@font-face{font-family:Barlow;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/reference-0.ttf) format("truetype")}@font-face{font-family:Barlow;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/reference-1.ttf) format("truetype")}@font-face{font-family:Barlow;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/reference-2.ttf) format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/reference-3.ttf) format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/reference-4.ttf) format("truetype")}@font-face{font-family:Barlow Condensed;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/reference-5.ttf) format("truetype")}@font-face{font-family:DM Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/reference-6.ttf) format("truetype")}:root{color-scheme:light;--ink: #182337;--muted: #59616c;--paper: #f4f5f3;--surface: #ffffff;--green: #172e50;--border: #c9cfd3;--accent: #e6eaed;--focus: #172e50;--danger: #973f35;--button-ink: #ffffff;--display: "Barlow Condensed", "Arial Narrow", sans-serif;--hint-water: #acd4e7;--hint-land: #eef0ea;--hint-area-border: #ffffff;--hint-origin-fill: #d6c2ea;--hint-origin-stroke: #7b5ea7;--hint-dest-fill: #b9e3c6;--hint-dest-stroke: #2f7d5f;--hint-both-fill: #f0dda6;--hint-both-stroke: #9a7b2e;font-family:Barlow,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}@media (prefers-color-scheme: dark){:root{--hint-water: #37677d;--hint-land: #2c3330;--hint-area-border: #3c4741;--hint-origin-fill: #4b3a66;--hint-origin-stroke: #b79bdb;--hint-dest-fill: #234a3a;--hint-dest-stroke: #6fc79a;--hint-both-fill: #4d4326;--hint-both-stroke: #cbb06a}}body{margin:0;background:var(--paper)}button,select,textarea{font:inherit}button,select{min-height:46px}button{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:9px;padding:11px 16px;font-weight:600;cursor:pointer;touch-action:manipulation}button:hover:not(:disabled){border-color:var(--green);background:var(--accent)}button:disabled{color:#737971;background:#eceee7;cursor:default}button.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover:not(:disabled){background:color-mix(in srgb,var(--green) 88%,var(--paper))}button.primary:disabled{background:#eceee7;color:#737971;border-color:var(--border)}:focus-visible{outline:3px solid var(--focus);outline-offset:4px}[tabindex="-1"]:focus{outline:3px solid var(--focus);outline-offset:5px;border-radius:5px}a{color:var(--green);text-underline-offset:4px}p{line-height:1.6}h1,h2,h3,h4,p{margin-top:0}h3{font-size:1.25rem}.eyebrow{display:block;font-size:.68rem;font-weight:750;letter-spacing:.12em;line-height:1.6;color:var(--muted);text-transform:uppercase}.app-shell{width:100%;max-width:480px;margin-inline:auto;min-height:100vh;display:flex;flex-direction:column}.app-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--paper) 90%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.app-top-inner{max-width:1000px;margin:0 auto;padding:14px 24px 12px}.app-top-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.how-to-play-button{min-height:38px;padding:7px 12px;font-size:.83rem;white-space:nowrap}.tutorial-page{width:100%}.tutorial-page>.panel-inner{max-width:1000px}.tutorial-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:12px}.tutorial-heading .panel-title{margin:6px 0 0}.tutorial-journey{margin:8px 0 0;font-size:1.05rem;font-weight:650}.tutorial-best-route{max-width:720px;margin-bottom:16px}.tutorial-best-route>p{margin:0 0 8px;font-weight:650}.tutorial-route-steps{margin:0;padding-left:22px}.tutorial-route-steps li{padding-left:2px;line-height:1.45}.tutorial-route-steps li+li{margin-top:5px}.tutorial-heading .panel-title:focus{outline:none}.tutorial-guide{position:sticky;top:75px;z-index:19;display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:720px;margin:0 0 18px;padding:10px 14px;border:1px solid var(--border);border-left:5px solid var(--green);border-radius:12px;background:var(--surface);box-shadow:0 12px 30px #12213024}.tutorial-page .selection-column button:disabled{opacity:.38;cursor:default}.tutorial-page .tutorial-target{position:relative;z-index:1;outline:4px solid var(--green);outline-offset:4px;box-shadow:0 0 0 9px #147b4926}.tutorial-guide h2{margin:0;font-family:var(--display);font-size:1.1rem}.tutorial-scroll{flex:0 0 40px;width:40px;height:40px;min-height:40px;padding:0;font-size:1.5rem;line-height:1}.tutorial-footer{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px;padding-bottom:40px}.tutorial-page .route-content:not([hidden]){animation:none}.app-brand{border-bottom:3px solid #c73832;padding-bottom:5px;display:inline-flex;align-items:center;gap:4px;font-size:.95rem;font-weight:800;letter-spacing:-.02em;white-space:nowrap}.app-brand-logo{display:block;width:32px;height:32px;object-fit:contain}.round-line{position:relative;height:76px;margin-top:8px}.round-line-bar,.round-line-progress{position:absolute;top:42px;height:4px;border-radius:2px}.round-line-bar{background:var(--border)}.round-line-progress{background:var(--ink);transition:width .48s cubic-bezier(.62,0,.3,1)}.round-stop{position:absolute;top:36px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.round-dot{width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:4px solid var(--ink);background:var(--paper);transition:background .4s ease}.round-stop.is-visited .round-dot{background:var(--ink)}.round-stop.is-current .round-dot{background:var(--green);border-color:var(--green)}.round-label{font-size:.72rem;font-weight:600;color:var(--muted);white-space:nowrap}.round-stop.is-current .round-label{color:var(--ink)}.round-train{position:absolute;top:6px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;transition:left .48s cubic-bezier(.62,0,.3,1)}.round-train-body{display:flex;align-items:center;gap:3px;width:46px;height:18px;box-sizing:border-box;border-radius:5px 10px 10px 5px;background:var(--green);padding:0 7px}.round-train-body i{width:7px;height:6px;border-radius:1.5px;background:var(--paper)}.round-train-pointer{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--green);margin-top:-1px}.round-train-streaks{position:absolute;left:-20px;top:8px;display:flex;flex-direction:column;gap:5px}.round-train-streaks i{display:block;height:3px;border-radius:2px;background:var(--green);opacity:0}.round-train-streaks i:first-child{width:20px}.round-train-streaks i:last-child{width:12px}.round-line.is-moving .round-train{animation:tvl-bob .28s ease-in-out infinite}.round-line.is-moving .round-train-streaks i{animation:tvl-streak .42s linear infinite}.round-line.is-moving .round-train-streaks i:last-child{animation-delay:.14s}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.app-stage{flex:1;overflow:clip}.stage-track{display:flex;align-items:flex-start;transition:transform .48s cubic-bezier(.62,0,.3,1)}.stage-panel{flex:0 0 100%;min-width:100%}.stage-panel.is-leaving{pointer-events:none}.panel-inner{max-width:1000px;margin:0 auto;padding:26px 24px 44px}.panel-head{margin:0 0 22px}.panel-kicker{margin:0 0 8px;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.panel-title{margin:0;font-size:clamp(2.4rem,8vw,3.8rem);line-height:.96;font-weight:800;letter-spacing:-.04em}.start-panel{max-width:620px}.start-lede{font-size:1.1rem;color:var(--muted);margin:20px 0 24px}.start-steps{list-style:none;margin:0;padding:0;display:grid;gap:16px;counter-reset:start-step}.start-steps li{display:grid;grid-template-columns:30px 1fr;gap:14px;align-items:start;font-size:1.02rem;line-height:1.5}.start-steps li:before{counter-increment:start-step;content:counter(start-step);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--ink);font-size:.85rem;font-weight:700}.testing-tools{margin-top:2rem;padding-bottom:7rem;border-top:1px dashed var(--border)}.testing-tools-actions{display:flex;flex-wrap:wrap;gap:.75rem}.app-actions{position:sticky;bottom:0;z-index:20;background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border)}.app-actions-inner{max-width:640px;margin:0 auto;padding:14px 24px}.cta{width:100%;height:56px;border-radius:28px;border:0;background:var(--ink);color:var(--paper);font-size:1.02rem;font-weight:700}.cta:hover:not(:disabled){background:color-mix(in srgb,var(--green) 88%,var(--paper));border-color:transparent}.cta:disabled{opacity:.5}@keyframes tvl-bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,-2px)}}@keyframes tvl-streak{0%{transform:translate(0);opacity:.9}to{transform:translate(-24px);opacity:0}}.quiet{color:var(--muted);font-size:.8rem;line-height:1.6}.experiment{padding:0 0 8px}.empty-state{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:32px 26px;box-shadow:0 12px 30px #25362908}.empty-state h2{font-family:ui-serif,Georgia,serif;font-weight:500;font-size:1.8rem;margin-bottom:12px}.empty-state code{font-family:ui-monospace,monospace;font-size:.85em;background:#eceee7;padding:2px 5px;border-radius:4px}.trial-heading{display:flex;align-items:center;justify-content:center;gap:16px;padding:22px 26px 16px}.trial-heading h2{font-size:1rem;margin:0}.badge{font-size:.72rem;background:#e9eddc;padding:7px 12px;border-radius:100px;font-weight:650}.journey-heading{display:grid;grid-template-columns:1fr 30px 1fr;gap:16px;margin:0 26px;padding:18px 0 24px;border-bottom:1px solid var(--border)}.journey-heading strong{display:block;font-size:1.2rem;letter-spacing:-.025em;margin-top:4px}.journey-arrow{align-self:center;color:var(--green);font-size:1.6rem}.feedback{font-size:.83rem;margin:0;padding:18px 26px;min-height:60px;color:var(--green)}.feedback:empty{padding-top:0;padding-bottom:0;min-height:0}.route-content{padding-top:20px}.progress{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:0 26px 26px;font-size:.77rem}.progress strong{color:var(--green)}.progress span{color:var(--muted)}.best-possible{margin-left:auto;color:var(--green);font-weight:600;background:var(--accent);border-radius:999px;padding:3px 10px;font-size:.77rem}.route-totals .undos{color:var(--danger);font-weight:600;white-space:nowrap}.build-layout{padding:0 26px 24px}.route-column-stack{min-width:0;max-width:640px}.route-totals{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--border);font-size:.8rem;font-weight:600;color:var(--muted)}.route-totals-counts{display:flex;flex-wrap:wrap;gap:4px 12px}.route-totals .give-up{flex-shrink:0;min-height:32px;padding:5px 10px}.route-column-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}.route-column-head>h3{margin:0}.route-column-head .best-possible{margin-left:auto}.undo-step{display:block;margin-top:12px;min-height:44px;max-width:100%;padding:8px 12px;font-size:.8rem;color:var(--green);border-color:var(--green);background:var(--accent)}.route-chain{list-style:none;padding:0;margin:0;--rail-x: 13px}.route-node{position:relative;padding:0 0 20px 40px}.route-node:before{content:"";position:absolute;left:calc(var(--rail-x) - 1px);top:26px;bottom:0;border-left:2px solid #a3b99e;pointer-events:none}.route-node--pending:before{border-left:2px dashed #698071}.node-dot{display:grid;place-items:center;position:absolute;top:0;left:calc(var(--rail-x) - 13px);width:26px;height:26px;border-radius:50%;background:var(--green);color:#fff;font-size:.7rem;border:4px solid #fffefa}.station strong{display:block;font-size:.94rem;padding-top:4px}.station-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px}.station-bearing{color:var(--muted);font-size:.72rem;white-space:nowrap}.line-segment{margin-top:18px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.leg-stops{font-size:.72rem;color:var(--green);font-weight:600}.leg-passed{display:block;margin-top:6px;font-size:.72rem;color:var(--muted);line-height:1.5}.line-chip{font-size:.73rem;display:inline-block;padding:5px 9px;border:1px solid #d7ddd0;background:#f1f3ec;border-radius:5px}.picker-node{position:relative;padding:0 0 22px 40px}.picker-node:before{content:"";position:absolute;left:calc(var(--rail-x) - 1px);top:28px;bottom:0;border-left:2px dashed #98a89a;pointer-events:none}.picker-node.is-settled:before{border-left-style:solid}.picker-dot{position:absolute;top:1px;left:calc(var(--rail-x) - 13px);width:26px;height:26px;border-radius:50%;border:2px dashed #b4bfae;background:#f4f6ee}.picker-body{min-width:0;max-width:560px}.picker-body .selection-column,.picker-body .selection-column.is-pattern{background:transparent;border:0;padding:0}.destination-node{position:relative;display:grid;gap:6px;padding:0 0 4px 40px}.destination-dot{z-index:2;top:0;left:calc(var(--rail-x) - 13px);background:var(--paper);color:var(--green);border:2px solid var(--green);font-size:.55rem}.destination-node strong{font-size:.94rem}.selection-column{min-width:0;background:#f5f6ef;border:1px solid #e1e5d8;padding:20px;border-radius:12px}.selection-column.is-pattern{background:color-mix(in srgb,var(--line-color, #265647) 12%,#fffefa);border-color:color-mix(in srgb,var(--line-color, #265647) 26%,#e1e5d8)}.selection-column h3{font-size:1.2rem;margin-bottom:8px;letter-spacing:-.03em}.selection-column h4{font-size:.85rem;margin:18px 0 10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.selection-column p{font-size:.8rem}.selection-column p.eyebrow{font-size:.65rem;margin-bottom:8px}.line-options,.pattern-options{display:grid;gap:9px}.line-options button,.pattern-options button{display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;font-size:.88rem}.line-options button:hover:not(:disabled){border-color:var(--line-color, var(--green));background:color-mix(in srgb,var(--line-color, #265647) 12%,#fffefa)}.pattern-options button>span:first-child{display:grid;gap:3px}.pattern-options small{color:var(--muted);font-size:.75rem}.station-options{display:grid;grid-template-columns:1fr;gap:8px}.station-options button{text-align:left;padding:12px 10px}.station-options strong,.station-card strong{display:block;font-size:.78rem;line-height:1.4}.line-labels{display:flex;flex-wrap:wrap;gap:4px 7px;margin-top:8px}.line-labels span.line-label{font-size:.62rem;font-weight:500;border-bottom:1px solid #c4cebc;padding-bottom:2px;display:inline-flex;align-items:center;gap:5px}.line-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:none;border:1px solid rgba(0,0,0,.15)}.line-option-label{display:inline-flex;align-items:center;gap:8px}.selection-status{min-height:35px;font-size:.75rem;margin-bottom:10px;color:var(--green)}.connect-destination{width:100%;margin-bottom:16px}.arrival-summary{margin:0 0 14px;font-size:.85rem;font-weight:600;color:var(--green)}.route-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 26px 26px;padding:20px 0 0;border-top:1px solid var(--border)}.route-actions button{font-size:.78rem}.route-actions .primary{margin-left:auto}.result-panel{padding:12px 8px 26px}.result-panel h3{margin:0 0 6px}.result-score{margin:0 0 12px;color:var(--muted);font-size:.9rem}.result-routes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;margin-top:10px}.result-route h4{margin:0 0 4px}.leg-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.leg{border-left:3px solid var(--border);padding-left:12px}.leg-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.leg-service{font-size:.75rem;color:var(--muted)}.leg-route{margin-top:6px;font-size:.85rem;font-weight:600}button.give-up{border-color:#cbb0b0;color:var(--danger)}.hints{margin:0 26px 26px;padding:20px 0 0;border-top:1px solid var(--border)}.hints-head h3{margin:0 0 4px}.hint-list{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.hint-card{border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface)}.hint-card.is-used{background:var(--surface)}.hint-card>button{width:100%;text-align:left;font-size:.8rem}.hint-title{margin:0 0 10px;font-weight:600;font-size:.8rem}.hint-map{margin:10px 0 0}.hint-map svg{width:100%;height:auto;display:block}.hint-map-water{fill:var(--hint-water);stroke:var(--border)}.hint-map-area{fill:var(--hint-land);stroke:var(--hint-area-border);stroke-width:.75;stroke-linejoin:round}.hint-map-area.is-origin{fill:var(--hint-origin-fill);stroke:var(--hint-origin-stroke)}.hint-map-area.is-destination{fill:var(--hint-dest-fill);stroke:var(--hint-dest-stroke)}.hint-map-area.is-both{fill:var(--hint-both-fill);stroke:var(--hint-both-stroke)}.hint-map-arrow{stroke:var(--hint-area-border);stroke-width:.75;stroke-linejoin:round}.hint-map-arrow.is-origin{fill:var(--hint-origin-stroke)}.hint-map-arrow.is-destination{fill:var(--hint-dest-stroke)}.hint-map-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:.78rem}.hint-map-legend span{display:inline-flex;align-items:center;gap:6px}.hint-map-legend em{color:var(--muted);font-style:normal}.hint-swatch{width:11px;height:11px;border-radius:3px;display:inline-block;vertical-align:middle}.hint-title .hint-swatch{margin-right:6px}.hint-swatch.is-origin{background:var(--hint-origin-fill);border:1px solid var(--hint-origin-stroke)}.hint-swatch.is-destination{background:var(--hint-dest-fill);border:1px solid var(--hint-dest-stroke)}.hint-swatch.is-both{background:var(--hint-both-fill);border:1px solid var(--hint-both-stroke)}.hint-attribution{margin:14px 0 0;font-size:.68rem;line-height:1.4;color:var(--muted)}.hint-line-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:.8rem}.hint-line-list li{display:flex;align-items:center;gap:8px}.result-hints{margin:18px 0 0;font-size:.8rem;color:var(--muted)}.result-undos{margin:6px 0 0;font-size:.8rem;color:var(--muted)}.session-summary{margin-top:0}.score-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:8px 0 16px}.score-hero h1{margin:0}.score-rank{color:var(--green);font-weight:750;font-size:clamp(1.5rem,4vw,2rem);min-height:2.8em;display:grid;align-items:center}.score-rank p{margin:0;line-height:1.3}.share-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}.copy-status{font-size:.8rem;min-height:1.2em;margin-bottom:0}.pressure-gauge{width:100%;max-width:300px;justify-self:center}.pressure-gauge svg{width:100%;display:block;overflow:visible}.gauge-bezel{fill:#3a2e18}.gauge-screw{fill:#6e5323}.gauge-hub{fill:#5a4319}.gauge-readout-frame{fill:#1e1e1c}.gauge-face{fill:#f4efe3}.gauge-face-edge{fill:none;stroke:#000;stroke-opacity:.18;stroke-width:3}.gauge-band{fill:none;stroke-width:8}.gauge-band-0{stroke:#9fb0bc}.gauge-band-1{stroke:#5f8dae}.gauge-band-2{stroke:#d99a2b}.gauge-band-3{stroke:#b3261e}.gauge-tick{stroke:#2b2720;stroke-width:1.2}.gauge-tick.is-major{stroke:#1e1c18;stroke-width:2.6}.gauge-label{font-family:var(--display);font-size:10px;font-weight:600;letter-spacing:2.4px;fill:#6e6656;text-anchor:middle}.gauge-unit{font-size:9px;letter-spacing:2px}.gauge-number{font-family:var(--display);font-size:15px;font-weight:600;fill:#2b2720;text-anchor:middle;dominant-baseline:central}.gauge-readout{font-family:DM Mono,ui-monospace,monospace;font-weight:500;font-size:16px;letter-spacing:2px;fill:#f1c96b;text-anchor:middle}.gauge-needle{fill:#b3261e;transform-origin:150px 150px;transform:rotate(var(--angle))}.gauge-needle-edge{stroke:#7a1712;stroke-width:1}.gauge-glint{fill:none;stroke:#fff;stroke-opacity:.45;stroke-width:3;stroke-linecap:round}.summary-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-top:28px}.summary-heading h3{margin:0}.summary-heading>span{color:var(--muted);font-size:.8rem}.summary-list{list-style:none;margin:16px 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.summary-round{border:1px solid var(--border);border-top:3px solid var(--green);border-radius:4px 4px 14px 14px;padding:18px;background:var(--surface)}.summary-round.is-gave-up{border-top-color:#9a766a}.summary-round-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.summary-round-top strong{font-size:1.4rem}.summary-round-top small{font-size:.7rem;font-weight:400;color:var(--muted)}.summary-journey{font-weight:600;line-height:1.5}.summary-outcome{font-size:.85rem;font-weight:600}.summary-meta{margin:6px 0 0;font-size:.75rem;color:var(--muted);line-height:1.5}.score-rules{padding:16px 0;font-size:.85rem;color:var(--muted);border-top:1px solid var(--border);line-height:1.7}.score-rules summary{cursor:pointer;color:var(--ink)}.score-rules-table{width:100%;border-collapse:collapse;margin-top:16px;text-align:left}.score-rules-table caption{text-align:left;color:var(--ink);font-weight:600;margin-bottom:12px}.score-rules-table th,.score-rules-table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:top}.score-rules-table thead{background:var(--accent);color:var(--ink)}.score-rules-table tbody th{color:var(--ink);font-weight:600}.score-rules-table th span{display:block;margin-top:4px;color:var(--muted);font-weight:400}.score-rules-table td,.score-rules-table th:last-child{text-align:right;white-space:nowrap}.score-rules-table td{color:var(--green);font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}.score-rules-notes{padding-left:20px}.score-rules-notes li+li{margin-top:8px}.manual-share{display:grid;gap:8px;margin-top:16px}.manual-share textarea{width:100%;min-height:160px;padding:12px;font:inherit}@media (max-width: 680px){.pressure-gauge{max-width:300px}.summary-list{grid-template-columns:1fr}.summary-heading{align-items:start;flex-direction:column;gap:6px}}@media (max-width: 680px){.app-top-inner{padding:12px 18px 10px}.panel-inner{padding:20px 18px 36px}.round-label{font-size:.64rem}.app-actions-inner{padding:12px 18px}.trial-heading{padding:18px}.badge{font-size:.64rem}.journey-heading{display:flex;justify-content:space-evenly}.journey-heading strong{font-size:1rem}.feedback{padding:16px 18px}.progress{margin-inline:18px}.build-layout{padding-inline:18px}.route-chain{padding-left:14px}.selection-column{padding:16px}.route-actions .primary{width:100%;margin-left:0}.route-actions>button:not(.primary){flex:1}.route-actions,.hints{margin-inline:18px}}@media (prefers-reduced-motion: reduce){.stage-track,.round-line-progress,.round-train{transition-duration:1ms}.round-line.is-moving .round-train,.round-line.is-moving .round-train-streaks i{animation:none}}@media (prefers-reduced-motion: no-preference){button{transition:background-color .12s,border-color .12s}}.route-column--complete{--arrival-green: #167047;background:#e6f1e8;border:1px solid #9bbb9f;border-radius:16px;padding:20px;animation:route-ticket-reveal .5s ease-out both}.route-complete-heading{display:flex;align-items:center;gap:12px;color:var(--arrival-green);border-bottom:2px dashed #9bbb9f;padding-bottom:20px;margin-bottom:24px}.route-complete-heading>span{display:grid;place-items:center;flex-shrink:0;border:2px solid currentColor;border-radius:50%;width:36px;height:36px}.route-complete-heading strong,.route-complete-heading small{display:block}.route-complete-heading strong{text-transform:uppercase;letter-spacing:.08em}.route-complete-heading small{margin-top:4px}.route-column--complete .route-node:before{border-left:4px solid var(--arrival-green);left:calc(var(--rail-x) - 2px);transform-origin:top;animation:route-rail-fill .7s ease-out both}.route-column--complete .node-dot{background:var(--arrival-green);color:#fff;border-color:#e6f1e8}.route-column--complete .destination-dot{font-size:14px;animation:route-destination-lock .5s .6s both}.route-column--complete .picker-node{margin-top:12px;padding:0}.route-column--complete .picker-node:before,.route-column--complete .picker-dot{display:none}.route-column--complete .connect-destination{width:100%;background:var(--arrival-green);border-color:var(--arrival-green)}@keyframes route-ticket-reveal{0%{transform:translateY(8px);opacity:.5}to{transform:translateY(0);opacity:1}}@keyframes route-rail-fill{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes route-destination-lock{0%{transform:scale(.6)}70%{transform:scale(1.25)}to{transform:scale(1)}}@media (prefers-reduced-motion: reduce){.route-column--complete,.route-column--complete *,.route-column--complete *:before{animation:none!important}}.round-score{padding:0 8px;margin-bottom:0}.round-score-stops{list-style:none;padding:0;margin:0 0 8px}.round-score-stops li{display:grid;grid-template-columns:24px 1fr auto;gap:12px;align-items:center;padding:14px 0;position:relative}.round-score-stops li:before{content:"";position:absolute;left:9px;top:0;bottom:0;width:3px;background:var(--green)}.round-score-stops li:first-child:before{top:50%}.round-score-stops li:last-child:before{bottom:50%}.round-score-node{position:relative;z-index:1;width:21px;height:21px;border:3px solid var(--green);background:var(--paper);border-radius:50%}.round-score-stops strong{font-size:22px;font-variant-numeric:tabular-nums}.round-score-stops small{display:block;font-size:12px;color:var(--muted);margin-top:6px}.round-score-arrival .round-score-node{background:var(--green);box-shadow:0 0 0 5px var(--accent)}.round-score-stops .round-score-earned{font-size:clamp(48px,10vw,60px);color:var(--green);letter-spacing:-3px}.round-perfect{display:flex;gap:12px;align-items:center;background:var(--accent);border-radius:12px;padding:16px;margin-bottom:8px;color:var(--green)}.round-perfect>span{font-size:30px}.round-perfect p{margin:4px 0 0;color:var(--ink);font-size:13px}.round-score-total{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 0;border-top:1px solid var(--border)}.round-score-total strong{font-size:32px;font-variant-numeric:tabular-nums}.round-score-total small{font-size:14px;font-weight:500}@media (prefers-reduced-motion: no-preference){.round-score-reveal{animation:round-score-node-reveal .75s ease-out both}}@keyframes round-score-node-reveal{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.app-top-row{justify-content:space-between;flex-wrap:wrap}.app-brand,.panel-title,.eyebrow,.panel-kicker,.cta,.share-actions button{font-family:var(--display);text-transform:uppercase}.app-brand{font-size:16px;font-weight:700;letter-spacing:.16em}.panel-title{font-weight:700;letter-spacing:.01em}.eyebrow{letter-spacing:.18em}.cta,button.primary{background:var(--green);color:var(--button-ink);border-color:var(--green)}.cta,.share-actions button{border-radius:10px;min-height:54px;font-size:18px;letter-spacing:.12em}.daily-label{color:var(--muted);font-size:12px;margin:10px 0 0}.daily-loading{padding-top:56px}.daily-countdown{color:var(--muted);font-size:13px;line-height:1.8}.daily-countdown strong{font-family:DM Mono,monospace;color:var(--ink);font-size:20px}.statistics{max-width:680px;padding-top:36px;padding-bottom:48px}.statistics h1:focus{outline:none}.statistics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0 36px}.statistics-grid>div{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px 8px;text-align:center}.statistics-grid dt{color:var(--muted);font-size:12px}.statistics-grid dd{font-family:Barlow Condensed,sans-serif;font-weight:600;font-size:36px;margin:4px 0 0}.rank-distribution{list-style:none;padding:0;margin:20px 0}.rank-distribution li{display:grid;grid-template-columns:minmax(110px,1fr) minmax(40px,1fr) 28px;align-items:center;gap:12px;margin:14px 0;font-size:14px}.distribution-track{height:22px;background:var(--surface);border-radius:4px;overflow:hidden}.distribution-track>div{height:100%;background:var(--green)}.statistics-note{margin-top:28px}@media (max-width: 420px){.header-controls{width:100%;justify-content:space-between}.statistics-grid{gap:8px}}.line-options button,.pattern-options button,.station-options button{--ink: #182337;--muted: #59616c;background:#fffefa;color:var(--ink)}.pattern-options button:hover:not(:disabled),.station-options button:hover:not(:disabled){background:var(--accent)}.line-labels span.line-label,.hint-line-list li{color:#27271f;padding:4px 6px;border-radius:4px}.node-dot{border-color:var(--paper);background:var(--accent);color:var(--green)}.picker-dot{background:var(--surface)}.route-column--complete{--ink: #24392d;--muted: #4d6656;--green: #167047;--paper: #e6f1e8;--accent: #d4e6d6;--border: #9bbb9f;color:var(--ink)}.route-column--complete .connect-destination{color:#fff}.route-column--complete .connect-destination:hover:not(:disabled){background:#115a39;border-color:#115a39}.route-column--complete .connect-destination:focus-visible{outline-color:var(--arrival-green)}.score-hero{gap:0}.score-hero .pressure-gauge{margin-top:0}.score-rank{display:flex;flex-direction:column;gap:8px;margin-top:28px;min-height:112px;color:var(--ink)}.score-rank .rank-label{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--green)}.rank-dot{width:10px;height:10px;border-radius:50%}.score-rank .rank-name{font-family:var(--display);font-size:36px;font-weight:700;line-height:1;text-transform:uppercase;letter-spacing:.01em;max-width:340px}.score-rank .rank-quip{font-size:16px;font-weight:400;line-height:1.45;color:var(--muted);max-width:300px}.share-actions{margin-top:22px}@media (prefers-reduced-motion: reduce){.gauge-needle{transition:none}}.journey-intro{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:center;align-items:center;min-height:240px;align-content:center;border-bottom:0}.journey-intro>*{min-width:0;overflow-wrap:anywhere;opacity:0}.journey-intro.is-active{animation:journey-out .4s ease 3.2s both}.journey-intro.is-active>*{animation:journey-in .45s ease both}.journey-intro.is-active>:nth-child(2){animation-delay:.45s}.journey-intro.is-active>:nth-child(3){animation-delay:.9s}.route-content:not([hidden]){animation:journey-in .3s ease both}@keyframes journey-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes journey-out{to{opacity:0}}@media (prefers-reduced-motion: reduce){.journey-intro,.journey-intro>*,.route-content:not([hidden]){animation:none}}.score-rank .next-stop{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:14px 4px;margin:14px auto 0;width:100%;max-width:390px;font-size:15px;font-weight:500}.next-stop>:last-child{text-align:right}.next-stop .eyebrow{font-size:13px;color:var(--muted);flex-shrink:0}.route-content--complete,.route-content--results{padding-top:0}.panel-inner--results,.panel-inner:has(.route-content--results){padding-top:8px}.app-actions--results{position:static}.selection-column .line-choice-heading{font-size:1rem}
