.timeline{background:var(--color-surface);padding:5.5rem 0 6.5rem;position:relative;overflow:hidden}.timeline__decor{pointer-events:none;z-index:0;background-image:radial-gradient(#6d5ef859 1.6px,#0000 1.6px);background-size:14px 14px;width:6.5rem;height:6.5rem;position:absolute;top:2rem;left:max(0px,50% - 590px + 1rem)}.timeline__head{z-index:1;text-align:center;max-width:620px;margin:0 auto 4.5rem;padding-left:20px;padding-right:20px;position:relative}.timeline__eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary);margin-bottom:1rem;font-size:.8rem;font-weight:700;display:inline-block}.timeline__title{letter-spacing:-.02em;margin:0 0 1rem;font-size:clamp(1.75rem,3.5vw,2.5rem);line-height:1.15}.timeline__subtitle{color:var(--color-text-muted);margin:0;font-size:1.05rem}.timeline__steps{z-index:1;flex-direction:column;gap:4.5rem;max-width:880px;margin:0 auto;display:flex;position:relative}.timeline__line{background:var(--color-border);z-index:0;border-radius:999px;width:3px;position:absolute;top:0;bottom:0;left:50%;overflow:visible;transform:translate(-50%)}.timeline__line-fill{background:var(--color-primary);border-radius:999px;width:100%;height:0%;transition:height .12s ease-out;position:absolute;top:0;left:0}.timeline__line-fill:after{content:"";background:var(--color-primary);width:13px;height:13px;box-shadow:0 0 0 5px var(--color-surface), 0 0 16px 3px #14181f59;border-radius:50%;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.timeline__row{z-index:1;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:2rem;display:grid;position:relative}.timeline__row.will-animate{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(28px)}.timeline__row.will-animate.is-visible{opacity:1;transform:translateY(0)}.timeline__icon-slot{grid-column:1;justify-content:center;display:flex}.timeline__marker{z-index:2;background:var(--color-bg);border:2px solid var(--color-border);width:2.75rem;height:2.75rem;color:var(--color-text-muted);box-shadow:0 0 0 6px var(--color-surface);border-radius:50%;grid-column:2;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;transition:color .4s,border-color .4s,background .4s,transform .4s;display:flex;position:relative}.timeline__row.is-active .timeline__marker{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary);transform:scale(1.08)}.timeline__text-slot,.timeline__row--reverse .timeline__icon-slot{grid-column:3}.timeline__row--reverse .timeline__text-slot{grid-column:1}.timeline__icon{border:2px solid var(--color-border);background:var(--color-bg);width:5.5rem;height:5.5rem;color:var(--color-text-muted);border-radius:50%;justify-content:center;align-items:center;transition:color .4s,border-color .4s,background .4s,transform .4s,box-shadow .4s;display:flex}.timeline__row.is-active .timeline__icon{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:scale(1.06)}.timeline__icon svg{width:2.1rem;height:2.1rem}.timeline__text-slot h3{margin:0 0 .5rem;font-size:1.15rem;line-height:1.3}.timeline__text-slot p{color:var(--color-text-muted);margin:0;font-size:.9rem;line-height:1.55}.timeline__cta{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:1.35rem;max-width:480px;margin:5rem auto 0;display:flex;position:relative}.timeline__cta p{letter-spacing:-.01em;width:100%;margin:0;padding-left:5px;font-size:1.15rem;font-weight:600}@media (prefers-reduced-motion:reduce){.timeline__row,.timeline__marker,.timeline__icon,.timeline__line-fill{transition:none}}@media (width<=760px){.timeline__decor{display:none}.timeline__steps{gap:2.5rem;margin-left:15px;padding-right:20px}.timeline__line{left:1.375rem;transform:none}.timeline__row,.timeline__row--reverse{grid-template-columns:auto 1fr;column-gap:1.25rem}.timeline__icon-slot{display:none}.timeline__marker,.timeline__row--reverse .timeline__marker{box-shadow:0 0 0 6px var(--color-surface);grid-column:1}.timeline__text-slot,.timeline__row--reverse .timeline__text-slot{grid-column:2}}
