.experienceSection { position: relative; width: 100%; padding-top: 3.75rem; padding-bottom: 5rem; } .timeline { display: flex; flex-direction: column; position: relative; margin-top: 1.25rem; } .timelineItem { display: flex; position: relative; min-height: 11.25rem; } .spineColumn { position: relative; width: 2.5rem; flex-shrink: 0; display: flex; flex-direction: column; align-items: center; } .nodeDot { position: relative; width: 0.875rem; height: 0.875rem; border-radius: 50%; background-color: var(--color-slate-400); margin-top: 0.375rem; z-index: 2; transition: background-color var(--motion-duration-fast) ease, box-shadow var(--motion-duration-default) ease; } .nodeCurrent { background-color: var(--accent-default); box-shadow: 0 0 0 4px rgba(61, 138, 250, 0.25); } .nodeCurrent::after { content: ''; position: absolute; inset: -0.375rem; border: 1px solid var(--accent-default); border-radius: 50%; opacity: 0; animation: currentRolePulse 2.4s var(--motion-ease-out) infinite; } @keyframes currentRolePulse { 0% { opacity: 0.45; transform: scale(0.7); } 70%, 100% { opacity: 0; transform: scale(1.35); } } .verticalLine { position: absolute; top: 1.25rem; bottom: 0.875rem; width: 2px; background-color: var(--border-strong); z-index: 1; transform-origin: top center; } :global(html[data-motion-ready='true']) .timelineItem[data-reveal] .verticalLine { transform: scaleY(0); transition: transform 600ms var(--motion-ease-in-out) 120ms; } :global(html[data-motion-ready='true']) .timelineItem[data-visible='true'] .verticalLine { transform: scaleY(1); } .itemContent { display: flex; flex-grow: 1; padding-inline-start: 1.25rem; padding-bottom: 2.25rem; gap: 2.25rem; } .identityCol, .detailsCol, .roleTitles { text-align: start; } @media (prefers-reduced-motion: reduce) { .nodeCurrent::after { animation: none; } :global(html[data-motion-ready='true']) .timelineItem[data-reveal] .verticalLine { transform: scaleY(1); } } .identityCol { width: 22.5rem; flex-shrink: 0; } .metaRow { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.875rem; } .dateBadge { font-size: var(--font-size-label-small); line-height: var(--line-height-label-small); font-weight: 700; letter-spacing: 0.08em; color: var(--text-muted); text-transform: uppercase; } .locationWrapper { display: inline-flex; align-items: center; gap: 0.25rem; font-size: var(--font-size-label-small); color: var(--text-muted); } .locationIcon { color: var(--text-muted); flex-shrink: 0; } .locationText { font-weight: 500; } .roleIdentityRow { display: flex; align-items: flex-start; gap: 0.625rem; } .logoContainer { width: 4.5rem; height: 4.5rem; border-radius: var(--radius-md); overflow: hidden; background: transparent; border: 0; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .logoImage { object-fit: contain; width: 100%; height: 100%; } .roleTitles { display: flex; flex-direction: column; padding-top: 0.25rem; } .roleTitle { font-size: var(--font-size-h3); line-height: var(--line-height-h3); font-weight: 700; color: var(--text-primary); margin-bottom: 0; } .companyName { font-size: var(--font-size-body-default); line-height: var(--line-height-body-default); color: var(--action-link); font-weight: 500; } .detailsCol { flex-grow: 1; max-width: 51.25rem; padding-top: 0.25rem; } .summary { max-width: 68ch; font-size: var(--font-size-body-default); line-height: var(--line-height-body-default); color: var(--text-secondary); margin-bottom: 0.75rem; } .bulletList { list-style: none; display: flex; flex-direction: column; gap: 0.5rem; } .bulletItem { display: flex; align-items: flex-start; gap: 0.625rem; } .bulletDot { width: 0.3125rem; height: 0.3125rem; border-radius: 50%; background-color: var(--text-muted); margin-top: 0.625rem; flex-shrink: 0; } .bulletText { max-width: 72ch; font-size: var(--font-size-body-default); line-height: var(--line-height-body-default); color: var(--text-secondary); } @media (max-width: 900px) { .experienceSection { padding-top: var(--space-8); padding-bottom: var(--space-9); } .timelineItem { min-height: 0; } .itemContent { flex-direction: column; gap: var(--space-4); padding-bottom: var(--space-7); } .identityCol, .detailsCol { width: 100%; max-width: none; } } @media (max-width: 650px) { .spineColumn { width: 1.5rem; } .itemContent { padding-inline-start: var(--space-3); } .metaRow { flex-wrap: wrap; } .logoContainer { width: 3.75rem; height: 3.75rem; } .roleTitle { font-size: 1.125rem; line-height: 1.625rem; } }