:root{--motion-fast:160ms;--motion-state:320ms;--motion-ease:cubic-bezier(.2,0,0,1)}
.journey{display:grid;grid-template-columns:1fr 1fr;gap:8vw;padding:100px var(--g);background:#f5f5f5;position:relative}
.journey-sticky{position:sticky;top:36px;align-self:start}.journey h2{font-size:clamp(42px,5.5vw,80px)}
.journey-map{max-width:450px;margin:25px 0 20px}.journey-map svg{display:block;width:100%;height:auto;overflow:visible}.route-base{stroke:#d5d5d5;stroke-width:2}.route-fill{stroke:var(--blue);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 480ms var(--motion-ease)}
.journey-map circle{fill:#fff;stroke:#bbb;stroke-width:2;transition:fill var(--motion-state),stroke var(--motion-state)}.journey-map circle.reached{fill:var(--blue);stroke:var(--blue)}
.journey-readout{display:flex;align-items:baseline;gap:20px;border-top:1px solid #ccc;padding-top:15px}.journey-count{font-size:11px;font-variant-numeric:tabular-nums;color:var(--blue)}.journey-word{font-size:27px;letter-spacing:-.04em}
.journey-nav{display:flex;gap:8px;flex-wrap:wrap}.journey-nav a{font-size:11px;padding:10px 0;margin-right:18px;border-bottom:2px solid transparent;transition:border-color var(--motion-fast),color var(--motion-fast)}.journey-nav a span{margin-right:7px;color:#777}.journey-nav a[aria-current]{color:var(--blue);border-color:var(--blue)}.journey-hint{font-size:11px;margin-top:15px}
.journey-stage{min-height:440px;display:grid;grid-template-columns:45px 1fr;gap:22px;padding:55px 0;align-content:center;border-top:1px solid #ccc;scroll-margin-top:50px}.journey-stage:last-child{border-bottom:1px solid #ccc}.stage-number{font-size:14px;color:var(--blue);padding-top:4px}.journey-stage .eyebrow{margin-bottom:20px}.journey-stage h3{font-size:clamp(36px,4vw,58px);margin-bottom:25px}.journey-stage p:not(.eyebrow){font-size:17px;line-height:1.75}.journey-stage .stage-outcome{color:#111;margin:26px 0}.stage-outcome span{color:var(--blue);margin-right:15px}.journey-stage .quiet-link{margin-top:14px}.journey-stage.active h3{color:var(--blue)}.journey-stage h3{transition:color var(--motion-state)}
.motion-reveal{transition:opacity 480ms var(--motion-ease),transform 480ms var(--motion-ease)}.motion-reveal.waiting{opacity:0;transform:translateY(18px)}.service-row>b,.button>span,.quiet-link>span{transition:transform var(--motion-fast) var(--motion-ease)}.button:hover>span,.service-row:hover>b{transform:translate(3px,-3px)}.quiet-link:hover>span{transform:translateY(3px)}
.timeline details{position:relative;padding-left:24px}.timeline details:before{content:'';position:absolute;left:0;top:32px;width:7px;height:7px;background:#bbb;border-radius:50%;transition:background var(--motion-fast),box-shadow var(--motion-fast)}.timeline details[open]:before{background:var(--blue);box-shadow:0 0 0 5px #2454f41a}.timeline b{transition:transform var(--motion-state)}
@media(max-width:800px){.journey{display:block;padding:55px var(--g)}.journey-sticky{position:relative;top:auto}.journey-map{max-width:360px;margin:20px 0}.journey-map svg{height:160px}.journey h2{font-size:45px}.journey-nav{gap:0;justify-content:space-between}.journey-nav a{margin-right:0;font-size:10px}.journey-hint{margin-bottom:30px}.journey-stage{min-height:330px;padding:35px 0;grid-template-columns:28px 1fr;gap:12px}.journey-stage h3{font-size:35px}.journey-stage p:not(.eyebrow){font-size:15px}.journey-stage .button{font-size:12px;gap:16px}.timeline details{padding-left:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation:none!important;transition:none!important}.motion-reveal.waiting{opacity:1;transform:none}}
