:root{--bg:#f4f6f5;--panel:#fff;--ink:#1d2a36;--muted:#53606c;--accent:#155e75;--accent-ink:#fff;--border:#cdd6db;--focus:#ffbf1f;--capital:#1f78c8;--metro:#d8313f;--valley:#2b8a4b;--warn:#8a4b00;--hud-bg:#0f1a24db;--hud-ink:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-size:100%}.high-contrast{--bg:#fff;--panel:#fff;--ink:#000;--muted:#1a1a1a;--accent:#003c7a;--border:#000;--hud-bg:#000000f2}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:1rem/1.5 system-ui,Segoe UI,Arial,sans-serif;overflow:hidden}button,input,select{font:inherit}:focus-visible{outline:4px solid var(--focus);outline-offset:2px}a{color:var(--accent)}#view{touch-action:none;outline:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}.screen{background:var(--bg);z-index:20;padding:1.25rem clamp(1rem,3vw,2.5rem) 3rem;position:fixed;inset:0;overflow:auto}.screen[hidden],.screen.overlay[hidden]{display:none!important}h1:focus,h2:focus{outline:none}.screen.overlay{background:#0a121a8c;place-items:center;padding:1rem;display:grid}.screen.overlay>.card{width:100%;max-width:44rem;max-height:92vh;overflow:auto}.card{background:var(--panel);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem 1.5rem;box-shadow:0 6px 30px #0000001f}h1{margin:.2rem 0 .4rem;font-size:1.9rem;line-height:1.2}h2{margin:1.2rem 0 .5rem;font-size:1.35rem}h3{margin:1rem 0 .4rem;font-size:1.1rem}p{max-width:70ch}.muted{color:var(--muted)}.small{font-size:.9rem}.btn{border:2px solid var(--accent);background:var(--panel);min-width:2.75rem;min-height:2.75rem;color:var(--accent);cursor:pointer;border-radius:.5rem;padding:.55rem 1.1rem;font-weight:600}.btn.primary{background:var(--accent);color:var(--accent-ink)}.btn.big{padding:.8rem 1.4rem;font-size:1.2rem}.btn:disabled{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.stack>*+*{margin-top:.75rem}.chip{border:1px solid var(--border);background:var(--panel);border-radius:999px;align-items:center;gap:.35rem;padding:.1rem .55rem;font-size:.9rem;font-weight:600;display:inline-flex}.chip:before{content:"";background:var(--c,#888);border-radius:50%;width:.8rem;height:.8rem}.badge{color:var(--warn);background:#efe6d6;border-radius:.3rem;padding:.1rem .5rem;font-size:.8rem;font-weight:700;display:inline-block}.badge.tuned{color:#145c3e;background:#dcefe7}#screen-start{padding:0}.home{grid-template-columns:minmax(0,1.5fr) minmax(20rem,1fr);height:100%;display:grid}@media (max-width:900px){.home{grid-template-columns:1fr;height:auto}.home-map{height:70vh}}.home-map{border-right:1px solid var(--border);background:#eef3f2;flex-direction:column;min-height:0;display:flex;position:relative}.map-toolbar{border-bottom:1px solid var(--border);background:#ffffffb3;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.6rem .8rem;display:flex}.map-toolbar .btn.seg[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.zoom-group,.layer-group{flex-wrap:wrap;gap:.25rem;display:inline-flex}.map-attribution{text-align:right;color:#33404a;background:#ffffffbf;border-radius:.2rem;max-width:70%;padding:0 .3rem;font-size:.72rem;position:absolute;bottom:.3rem;right:.5rem}.map-attribution:empty{display:none}.map-legend{flex-wrap:wrap;gap:.4rem;margin-left:auto;display:flex}.map-slot{flex:1;min-height:0}.map-slot svg{width:100%;height:100%;display:block}.home-panel{background:var(--bg);padding:1.25rem 1.5rem 2rem;overflow:auto}.home-panel h2{align-items:center;gap:.5rem;margin:1rem 0 .4rem;font-size:1.15rem;display:flex}.home-panel .num{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:1.7rem;height:1.7rem;font-size:1rem;display:inline-grid}.muted-step{opacity:.6}.origin-cards{gap:.5rem;display:grid}.origin-card{text-align:left;border:2px solid var(--border);background:var(--panel);cursor:pointer;color:var(--ink);border-radius:.6rem;gap:.15rem;padding:.6rem .8rem;display:grid}.origin-card.selected{border-color:var(--accent);box-shadow:inset 5px 0 0 var(--accent);background:#e6f1f4}#dest{width:100%}.trip-summary{background:var(--panel);border:1px solid var(--border);border-radius:.7rem;margin:1rem 0;padding:.8rem 1rem}.trip-summary h2{margin:0 0 .4rem}.trip-summary ol{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.trip-summary li{border-left:6px solid var(--c,#999);padding:.2rem 0 .2rem .7rem}.trip-summary li.walk{color:var(--muted);border-left-style:dashed}.trip-summary .leg-line{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.85rem;font-weight:700;display:block}.trip-summary .headsigns{margin:.3rem 0;display:block}.headsign{color:#ffb629;letter-spacing:.02em;background:#111;border-radius:.2rem;padding:.05rem .45rem;font-family:ui-monospace,Consolas,monospace;font-weight:700;display:inline-block}.home-options{margin:.8rem 0}.home-options summary{cursor:pointer;align-items:center;gap:.4rem;min-height:2.75rem;font-weight:600;display:flex}.home-options summary:before{content:"▸";transition:transform .15s}.home-options[open] summary:before{transform:rotate(90deg)}.home-foot{margin-top:1.2rem}.line-map{font-family:system-ui,Segoe UI,Arial,sans-serif}.line-map .lm-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.line-map .lm-route-halo{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.line-map .lm-arrow{fill:none;stroke:#fff;stroke-width:.7px;stroke-linecap:round;stroke-linejoin:round}.line-map .lm-walk{stroke:#6b7780;stroke-width:1.2px;stroke-dasharray:1.2 1.2;fill:none}.line-map .lm-walk.on{stroke:#1d2a36;stroke-width:1.8px}.line-map .lm-river-band{fill:none;stroke:#cfe3ee;stroke-width:3.6px;stroke-linecap:round;stroke-linejoin:round}.line-map .lm-river{fill:#b9d7e8;stroke:#9cc4da;stroke-width:.3px}.line-map .lm-station circle{fill:#fff;stroke:#1d2a36;stroke-width:.6px;transition:r .2s}.line-map .lm-station.pickable{cursor:pointer}.line-map .lm-station.pickable:hover circle{fill:#fff1c6}.line-map .lm-station:focus-visible circle{stroke:var(--focus);stroke-width:1.4px}.line-map .lm-station.dim circle{stroke:#9aa5ad}.line-map .lm-station.endpoint circle{fill:var(--focus);stroke-width:.9px}.line-map .lm-station.origin circle{fill:#fff;stroke:var(--accent);stroke-width:1.3px}.line-map text{fill:#1d2a36;paint-order:stroke;stroke:#eef3f2;stroke-width:.9px;stroke-linejoin:round;pointer-events:none}.line-map text.dim{fill:#7d8a93}.line-map text.endpoint,.line-map text.terminus{font-weight:800}.line-map .lm-road{fill:none;stroke-linecap:round;stroke-linejoin:round}.line-map .lm-road.major{stroke:#f2d59b}.line-map .lm-road.collector{stroke:#fff}.line-map .lm-road.local{stroke:#fff;opacity:.9}.line-map.satellite .lm-road.major{stroke:#ffd67a}.line-map.satellite .lm-road.collector,.line-map.satellite .lm-road.local{stroke:#ffffff8c}.line-map .lm-park{fill:#b7d8a6;fill-opacity:.6;stroke:none}.line-map.satellite .lm-park{fill:#9fe07f;fill-opacity:.18}.line-map .lm-hood{fill:none;stroke:#7d8a93;stroke-dasharray:1.5 1;opacity:.8}.line-map.satellite .lm-hood{stroke:#fff9}.line-map .lm-hood-name{fill:#6f7c86;letter-spacing:.08em;font-weight:600}.line-map .lm-road-name{fill:#6b5a2e;font-style:italic}.line-map.satellite .lm-hood-name,.line-map.satellite .lm-road-name{fill:#fff;stroke:#0000008c!important}.line-map.satellite text{stroke:#141e28b3;fill:#fff}.line-map.satellite text.dim{fill:#d7dde2}.line-map .lm-leader{stroke:#5b6771;stroke-linecap:round}.line-map.zoomable{cursor:grab;touch-action:none}.line-map.zoomable.dragging{cursor:grabbing}.line-map .lm-you{fill:#ff4f8b;stroke:#fff;stroke-width:.7px}.line-map .lm-you-pulse{fill:#ff4f8b;opacity:.25;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite lm-pulse}.line-map .lm-you-label{fill:#b0144b;font-weight:800}@keyframes lm-pulse{0%{opacity:.5;transform:scale(.5)}to{opacity:0;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce){.line-map .lm-you-pulse{animation:none}}#hud-map{background:#eef3f2f0;border-radius:.6rem;flex-direction:column;width:min(22rem,34vw);height:min(16rem,30vh);transition:all .25s;display:flex;position:absolute;bottom:2rem;right:.8rem;overflow:hidden;box-shadow:0 4px 20px #00000059}#hud-map[hidden]{display:none}#hud-map.expanded{width:min(70rem,92vw);height:min(46rem,80vh);bottom:50%;right:50%;transform:translate(50%,50%)}.hud-map-title{background:var(--hud-bg);color:#fff;justify-content:space-between;gap:.5rem;padding:.25rem .6rem;font-size:.9rem;font-weight:700;display:flex}#hud-map-slot{flex:1;min-height:0}#hud-map-slot svg{width:100%;height:100%;display:block}.list{border:1px solid var(--border);background:var(--panel);border-radius:.5rem;max-height:46vh;margin:0;padding:0;list-style:none;overflow:auto}.list li+li{border-top:1px solid var(--border)}.list button{text-align:left;cursor:pointer;width:100%;min-height:2.75rem;color:var(--ink);background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:.4rem;padding:.6rem .8rem;display:flex}.list button[aria-pressed=true]{background:#fff1c6;font-weight:700}.search{border:2px solid var(--border);border-radius:.5rem;width:100%;min-height:2.75rem;padding:.5rem .75rem}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem;display:grid}.choice{border:2px solid var(--border);cursor:pointer;background:var(--panel);border-radius:.6rem;padding:.6rem .8rem;display:block}.choice:has(input:checked){border-color:var(--accent);background:#e6f1f4}.choice input{margin-right:.5rem;transform:scale(1.3)}fieldset{border:1px solid var(--border);border-radius:.6rem;padding:.6rem 1rem 1rem}legend{padding:0 .3rem;font-weight:700}label.field{gap:.3rem;margin:.6rem 0;display:grid}select{border:2px solid var(--border);background:var(--panel);border-radius:.5rem;min-height:2.75rem;padding:.4rem .6rem}input[type=range]{width:min(22rem,100%);min-height:2.75rem}.route-summary{border-left:5px solid var(--accent);background:#f0f6f8;border-radius:.3rem;padding:.6rem 1rem}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#hud[hidden]{display:none}#hud .pane{pointer-events:auto;background:var(--hud-bg);color:var(--hud-ink);border-radius:.6rem;padding:.7rem 1rem}#instruction{max-width:min(38rem,60vw);position:absolute;top:.8rem;left:.8rem}#instruction .step-text{font-size:1.3rem;font-weight:700;line-height:1.35}#instruction .step-detail{margin-top:.3rem;font-size:1.05rem}#instruction .step-count{opacity:.85;margin-bottom:.2rem;font-size:.85rem}#hud-buttons{flex-direction:column;align-items:stretch;gap:.5rem;display:flex;position:absolute;top:.8rem;right:.8rem}#hud-buttons .btn{background:var(--hud-bg);color:#fff;border-color:#fff9}#crosshair{width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute;top:50%;left:50%}#crosshair:before,#crosshair:after{content:"";background:#fff;position:absolute;box-shadow:0 0 2px #000}#crosshair:before{width:2px;height:16px;top:3px;left:10px}#crosshair:after{width:16px;height:2px;top:10px;left:3px}#verb{text-shadow:0 1px 3px #000;color:#fff;white-space:nowrap;font-size:1.15rem;font-weight:700;position:absolute;top:calc(50% + 22px);left:50%;transform:translate(-50%)}#captions{flex-direction:column;gap:.4rem;max-width:min(40rem,70vw);display:flex;position:absolute;bottom:5.5rem;left:.8rem}#captions .cap{color:#fff;background:#000c;border-radius:.4rem;padding:.4rem .7rem;font-size:1.05rem}#captions .cap.announce{border-left:5px solid #ff9c2a}#captions .cap.guide{border-left:5px solid #33d6ff}#hotbar{gap:.5rem;display:flex;position:absolute;bottom:.8rem;left:50%;transform:translate(-50%)}#hotbar .slot{pointer-events:auto;background:var(--hud-bg);color:#fff;text-align:left;cursor:pointer;border:3px solid #ffffff59;border-radius:.5rem;min-width:7.5rem;min-height:3.2rem;padding:.3rem .6rem}#hotbar .slot.active{border-color:var(--focus)}#hotbar .slot small{opacity:.8;display:block}#notice{max-width:min(34rem,80vw);position:absolute;top:9rem;left:50%;transform:translate(-50%)}#notice .pane{border:3px solid var(--focus)}#pause-banner{max-width:22rem;position:absolute;top:9rem;right:.8rem}#fps{color:#fff;text-shadow:0 1px 2px #000;font-size:.75rem;position:absolute;bottom:.4rem;right:.6rem}.sign-view{color:#fff;background:#10253d;border-radius:.5rem;padding:1.2rem 1.5rem;font-size:1.6rem;font-weight:700}.sign-view small{font-size:1.1rem;font-weight:500;display:block}.steps-list{counter-reset:s;padding:0;list-style:none}.steps-list li{counter-increment:s;border:1px solid var(--border);background:var(--panel);border-radius:.5rem;margin:.5rem 0;padding:.6rem .8rem .6rem 3rem;position:relative}.steps-list li:before{content:counter(s);background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:1.6rem;height:1.6rem;font-weight:700;display:grid;position:absolute;top:.55rem;left:.8rem}.steps-list li.current{border-width:3px;border-color:var(--accent)}.done-list li{margin:.3rem 0}.tripcard{border:3px solid var(--ink);color:#000;background:#fff;border-radius:.8rem;max-width:34rem;margin:0 auto;padding:1.2rem 1.4rem}.tripcard h2{margin-top:0}.tripcard .big{font-size:1.5rem;font-weight:800}.tripcard dl{grid-template-columns:max-content 1fr;gap:.3rem 1rem;display:grid}.tripcard dt{font-weight:700}@media print{body{background:#fff;overflow:visible}#view,#hud,.screen:not(#screen-card),.no-print{display:none!important}#screen-card{background:#fff;padding:0;position:static}}.gap-table{border-collapse:collapse;width:100%;font-size:.92rem}.gap-table th,.gap-table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.4rem .5rem}.table-wrap{overflow-x:auto}kbd{border:1px solid var(--border);background:#fff;border-bottom-width:3px;border-radius:.3rem;padding:0 .35rem;font-family:inherit;font-weight:700}body.pointer-free #crosshair,body.pointer-free #verb{display:none}#pointer-hint{color:#fff;text-align:right;text-shadow:0 1px 3px #000;font-weight:600}#pointer-banner{max-width:min(40rem,90vw);position:absolute;bottom:5rem;left:50%;transform:translate(-50%)}#pointer-banner .pane{border:3px solid #33d6ff}#hud kbd{color:inherit;background:#ffffff1f;border-color:#ffffff80;font-size:.85em}#notice kbd{color:inherit;background:#ffffff2e}
