.timeline-wrap{gap:var(--space-12);display:grid}.timeline{--rail:var(--size-node-lg);position:relative}.timeline__track{top:var(--space-4);bottom:var(--space-4);left:calc(var(--rail) / 2);width:var(--size-hairline);background:var(--tone-line-strong);position:absolute}.timeline__progress{background:var(--color-accent);box-shadow:var(--shadow-node);transform-origin:top;position:absolute;inset:0}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.timeline__progress{animation:linear both timeline-draw view();animation-range:entry 20% cover 65%}}}@keyframes timeline-draw{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.timeline__step{grid-template-columns:var(--rail) minmax(0, 1fr);column-gap:var(--space-6);padding-block:var(--space-6);display:grid;position:relative}.timeline__node{margin-top:var(--space-4);width:var(--rail);height:var(--rail);border-radius:var(--radius-round);border:var(--size-rule) solid var(--color-accent);background:var(--tone-bg);transition:background-color var(--transition-slow) var(--ease-standard), box-shadow var(--transition-slow) var(--ease-standard);transition-delay:var(--transition-base);grid-area:1/1}.timeline__step.is-revealed .timeline__node,html:not(.js) .timeline__node{background:var(--color-accent);box-shadow:var(--shadow-node)}.timeline__num{font-family:var(--font-mono);font-size:var(--font-size-3xl);line-height:var(--line-height-none);color:var(--tone-muted);grid-area:1/2}.timeline__body{gap:var(--space-2);margin-top:var(--space-4);flex-direction:column;grid-column:2;display:flex}.timeline__title{font-size:var(--font-size-xl);text-transform:uppercase}.timeline__desc{color:var(--tone-muted)}@media (width>=768px){.timeline__step{grid-template-columns:var(--rail) calc(var(--space-32) + var(--space-8)) minmax(0, 1fr);column-gap:var(--space-8);padding-block:var(--space-10);border-bottom:var(--size-hairline) solid var(--tone-line)}.timeline__num{font-size:var(--font-size-numeral)}.timeline__body{margin-top:var(--space-2);grid-area:1/3}}@media (width>=1024px){.timeline-wrap{gap:var(--space-16);grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start}.timeline-wrap__head{top:calc(var(--header-height) + var(--space-12));position:sticky}}.path{display:none}@media (width>=1024px){.timeline-wrap__head{gap:var(--space-10);flex-direction:column;display:flex}.path{isolation:isolate;padding:var(--space-8);border-radius:var(--radius-xl);border:var(--size-hairline) solid var(--tone-line);background:var(--tone-bg);display:block;position:relative;overflow:hidden}.path__glow{z-index:var(--z-base);width:var(--size-glow);max-width:var(--size-glow-max);aspect-ratio:1;background:var(--glow-radial);opacity:.3;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.path__list{--gap:var(--space-5);--progress:1;z-index:var(--z-content);gap:var(--gap);flex-direction:column;display:flex;position:relative}.path__list:before,.path__list:after{content:"";top:var(--space-2);bottom:var(--space-2);left:calc(var(--space-3) / 2 - var(--size-hairline) / 2);width:var(--size-hairline);background:var(--tone-line-strong);position:absolute}.path__list:after{background:var(--color-accent);box-shadow:var(--shadow-node);transform:scaleY(var(--path-progress,1));transform-origin:top;transition:transform var(--transition-slow) var(--ease-standard)}.path__item{align-items:center;gap:var(--space-4);color:var(--tone-muted);transition:color var(--transition-base) var(--ease-standard);display:flex;position:relative}.path__node{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-round);border:var(--size-rule) solid var(--color-accent);background:var(--tone-bg);transition:background-color var(--transition-base) var(--ease-standard), box-shadow var(--transition-base) var(--ease-standard), transform var(--transition-base) var(--ease-out);flex:none}.path__num{color:var(--tone-muted)}.path__label{font-family:var(--font-display);font-stretch:var(--font-stretch-wide);font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);text-transform:uppercase;letter-spacing:var(--tracking-tight)}.path__item .path__node{background:var(--color-accent);box-shadow:var(--shadow-node)}.path__item,.path__item .path__label{color:var(--tone-text)}:root.has-path .path__item:not(.is-lit) .path__node{background:var(--tone-bg);box-shadow:none}:root.has-path .path__item:not(.is-lit),:root.has-path .path__item:not(.is-lit) .path__label{color:var(--tone-muted)}:root.has-path .path__item.is-current .path__node{transform:scale(1.5)}}
