/* A fixed, clockwise route. Only the traveller moves, so labels stay readable. */
.flywheel-pin{background:radial-gradient(ellipse at 77% 53%,#edf4dc 0,transparent 55%),#fafbf7}
.route-map{position:relative;width:100%;max-width:640px;aspect-ratio:1;justify-self:center;isolation:isolate}
.route-map:before{content:'';position:absolute;inset:14%;border:1px solid #e4eadb;border-radius:32%;background:linear-gradient(150deg,#ffffffb8,#f3f7e600);z-index:-1;transform:rotate(-7deg)}
.route-map:after{content:'';position:absolute;inset:20%;border:1px solid #e3eacf;border-radius:29%;z-index:-1;transform:rotate(8deg)}
.route-map svg{display:block;width:100%;height:100%;overflow:visible}
.route-bed{stroke:#e1e9d8;stroke-width:22;fill:none}
.route-rail{stroke:#fbfdf6;stroke-width:10;fill:none}
.route-progress{stroke:#cee969;stroke-width:12;stroke-linecap:round;fill:none}
.route-direction{fill:none;stroke:#7c9360;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.route-stop .station-card{fill:#fff;stroke:#e0e7d6;stroke-width:1.4;filter:drop-shadow(0 5px 8px #3d57260a);transition:fill .2s,stroke .2s}
.route-stop .station-kicker{font-size:13px;letter-spacing:1.4px;fill:#82916e;font-weight:500}
.route-stop .station-name{font-size:24px;letter-spacing:-.7px;fill:#365037;font-weight:650}
.route-stop .station-platform{stroke:#c8d5b8;stroke-width:2;fill:none}
.route-stop .station-dot{fill:#fff;stroke:#9fb582;stroke-width:3;transition:fill .2s,stroke .2s}
.route-stop.is-active .station-card{fill:#dbfe63;stroke:#bed954}
.route-stop.is-active .station-name{fill:#233920}
.route-stop.is-active .station-kicker{fill:#637c2d}
.route-stop.is-active .station-dot{fill:#dbfe63;stroke:#5e793c}
.route-traveller{filter:drop-shadow(0 4px 5px #28462026)}
.route-traveller .train-body{fill:#294731;stroke:#fff;stroke-width:3}
.route-traveller .train-window{fill:#dbfe63}
.route-traveller .train-tail{fill:#91aa7a}
.route-center{position:absolute;inset:33% 29%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.route-center .route-kicker{font-size:8px;letter-spacing:.15em;color:#81936e;line-height:1.4}
.route-center .route-counter{font-size:clamp(44px,5.4vw,80px);line-height:1.1;letter-spacing:-.07em;font-weight:550;color:#29452c;margin:10px 0 7px;font-variant-numeric:tabular-nums}
.route-center .route-current-label{font-size:16px;letter-spacing:-.04em;color:#506943;line-height:1.5;font-weight:550;white-space:nowrap}
.route-center .route-center-note{font-size:8px;color:#8c9b7a;letter-spacing:.05em;margin-top:9px;line-height:1.4}
.route-return{position:absolute;bottom:0;left:0;width:100%;text-align:center;font-size:10px;color:#859775;letter-spacing:.01em}
.route-return span{color:#69813f;margin-right:6px}
.wheel-pinned .route-map{width:min(620px,calc(var(--motion-height,100svh) - 170px));max-width:100%}
.flywheel-section[data-returning=true] .route-counter{color:#759536}
.flywheel-section .wheel-reading h3{word-break:keep-all}
@media(max-width:1190px){.route-center .route-current-label{font-size:13px}.route-center .route-counter{font-size:60px}.route-center .route-center-note{font-size:6px}.route-return{font-size:8px}}
@media(max-width:999px){.route-center .route-counter{font-size:50px}.route-center .route-current-label{font-size:12px}.route-center .route-kicker{font-size:6px}.route-center .route-center-note{font-size:5px}.route-return{font-size:8px}}
@media(max-width:680px){
 .wheel-pinned .flywheel-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(200px,1fr);gap:14px;justify-items:center;align-content:center}
 .wheel-pinned .flywheel-intro{margin-top:10px}
 .wheel-pinned .wheel-reading{min-height:166px}
 .wheel-pinned .wheel-reading h3{font-size:12px;line-height:1.4}
 .wheel-pinned .wheel-reading p{font-size:10px;line-height:1.7}
 .route-map{max-width:380px;margin:25px auto 0}
 .wheel-pinned .route-map{height:100%;width:auto;max-height:320px;max-width:100%;min-width:0;aspect-ratio:1;align-self:center;justify-self:center;margin:0}
 .route-center .route-counter{font-size:44px;margin:6px 0 4px}
 .route-center .route-current-label{font-size:10px}
 .route-center .route-kicker{font-size:5px}
 .route-center .route-center-note{font-size:4px;margin-top:5px}
 .wheel-pinned .route-center .route-counter{font-size:34px;margin:4px 0 3px}
 .wheel-pinned .route-center .route-current-label{font-size:8px}
 .wheel-pinned .route-center .route-kicker{font-size:4px}
 .wheel-pinned .route-center .route-center-note{display:none}
 .route-return{font-size:8px;bottom:-5px}
 .wheel-pinned .route-return{font-size:6px}
 .route-stop .station-name{font-size:26px}
}
@media(max-width:360px){.wheel-pinned .wheel-reading h3{font-size:11px}.wheel-pinned .wheel-reading p{font-size:9px}.wheel-pinned .route-center .route-counter{font-size:30px}.wheel-pinned .route-center .route-current-label{font-size:7px}}
@media(prefers-reduced-motion:reduce){.route-stop .station-card,.route-stop .station-dot{transition:none}.route-traveller{display:none}}
