@font-face{font-family:tuble digits;src:url(/fonts/lato-bold-digits.woff2)format("woff2");unicode-range:U+30-39;font-display:swap}:root{--blue:#0019a8;--blue-deep:#00117a;--red:#dc241f;--ink:#10131a;--muted:#5a616b;--rule:#e0e3e6;--enamel:#fcfcfa;--tunnel:#121418;--amber:#ffb000;--yellow:#ffd300;--moquette:#1a2160;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;background-color:var(--moquette);background-image:radial-gradient(120% 90% at 50% 30%,#0000 40%,#04061e8c),repeating-linear-gradient(0deg,#ffffff09 0 1px,#0000 1px 4px),repeating-linear-gradient(90deg,#0000001f 0 1px,#0000 1px 4px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96' viewBox='0 0 96 96'%3E%3Crect width='96' height='96' fill='%23171e55'/%3E%3Cpath d='M0 0h24v24H0zM48 48h24v24H48z' fill='%231d2565'/%3E%3Cpath d='M4 20a16 16 0 0 1 16-16v16z' fill='%23a52d2b'/%3E%3Cpath d='M52 68a16 16 0 0 1 16-16v16z' fill='%23137c76'/%3E%3Cg fill='none' stroke='%23b8892a' stroke-width='3'%3E%3Ccircle cx='70' cy='22' r='6'/%3E%3Ccircle cx='22' cy='70' r='6'/%3E%3C/g%3E%3Crect x='34' y='9' width='18' height='5' rx='2.5' fill='%23137c76'/%3E%3Crect x='82' y='58' width='5' height='18' rx='2.5' fill='%23a52d2b'/%3E%3Crect x='9' y='34' width='5' height='18' rx='2.5' fill='%233d54b4'/%3E%3Crect x='58' y='82' width='18' height='5' rx='2.5' fill='%233d54b4'/%3E%3Cpath d='M42 42l6 6-6 6-6-6zM90 90l6 6-6 6-6-6zM-6 90l6 6-6 6-6-6zM90-6l6 6-6 6-6-6zM-6-6l6 6-6 6-6-6z' fill='%23cbc4b4'/%3E%3Cg fill='%23cbc4b4'%3E%3Ccircle cx='34' cy='28' r='1.4'/%3E%3Ccircle cx='82' cy='40' r='1.4'/%3E%3Ccircle cx='40' cy='80' r='1.4'/%3E%3C/g%3E%3C/svg%3E");font-family:tuble digits,Hammersmith One,Helvetica Neue,Arial,sans-serif;font-size:17px}*{box-sizing:border-box}body{min-height:100dvh;margin:0}#root{flex-direction:column;min-height:100dvh;display:flex}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.roundel{--d:100px;height:var(--d);min-width:calc(var(--d) * 1.24);place-items:center;display:inline-grid;position:relative}.roundel-ring{width:var(--d);height:var(--d);margin-left:calc(var(--d) / -2);border:calc(var(--d) * .175) solid var(--red);border-radius:50%;position:absolute;top:0;left:50%}.roundel-bar{min-width:calc(var(--d) * 1.24);height:calc(var(--d) * .2);padding:0 calc(var(--d) * .11);background:var(--blue);place-items:center;display:grid;position:relative}.roundel-name{color:#fff;font-family:Hammersmith One,Helvetica Neue,Arial,sans-serif;font-size:calc(var(--d) * .163);letter-spacing:.02em;text-transform:uppercase;white-space:nowrap;text-box:trim-both cap alphabetic;animation:name-in .32s var(--ease-out) both;line-height:1}@supports not (text-box:trim-both cap alphabetic){.roundel-name{translate:0 .05em}}.masthead{z-index:2;background:var(--tunnel);color:#fff;position:relative;box-shadow:0 2px #000,0 6px 16px #00000059}.masthead-inner{justify-content:space-between;align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:8px 16px;display:flex}.brand{color:#fff;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-roundel{--d:30px}.wordmark{letter-spacing:-.01em;padding-bottom:3px;font-size:28px;line-height:1}.edition{color:var(--amber);letter-spacing:.03em;text-shadow:0 0 6px #ffb00073;font-family:Doto,ui-monospace,monospace;font-size:16px;font-weight:800}.platform{--h:148px;--train-h:calc(var(--h) * .6);--u:calc(var(--train-h) / 100);height:var(--h);background:var(--tunnel);isolation:isolate;position:relative;overflow:hidden}.platform:after{content:"";z-index:5;pointer-events:none;background:radial-gradient(130% 160% at 50% 20%,#0000 50%,#00000061);position:absolute;inset:0}.wall{background-color:#eef0ec;background-image:linear-gradient(#ffffff73,#fff0 35%,#0000 60%,#00000024),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='20'%3E%3Crect width='40' height='20' fill='%23c9cec8'/%3E%3Cg fill='%23f1f3ef'%3E%3Crect x='.7' y='.7' width='18.6' height='8.6' rx='1.3'/%3E%3Crect x='20.7' y='.7' width='18.6' height='8.6' rx='1.3'/%3E%3Crect x='-9.3' y='10.7' width='18.6' height='8.6' rx='1.3'/%3E%3Crect x='10.7' y='10.7' width='18.6' height='8.6' rx='1.3'/%3E%3Crect x='30.7' y='10.7' width='18.6' height='8.6' rx='1.3'/%3E%3C/g%3E%3C/svg%3E");background-size:auto, calc(var(--h) * .2) calc(var(--h) * .1);background-position:top;position:absolute;inset:0 0 22%}.frieze{background:repeating-linear-gradient(90deg, #1532b4 0 calc(var(--h) * .08 - 1.5px), #0b1b78 0 calc(var(--h) * .08));border-block:2px solid #0a1050;height:8%;position:absolute;top:8%;left:0;right:0}.wall-roundel{--d:calc(var(--h) * .44);filter:drop-shadow(0 2px 2px #00000040);position:absolute;top:34%;left:50%;translate:-50%}.wall-roundel-left,.wall-roundel-right{display:none}.wall-roundel-left{left:calc(50% - 39vw)}.wall-roundel-right{left:calc(50% + 39vw)}.poster{aspect-ratio:3/4;height:42%;padding:calc(var(--h) * .03);border:calc(var(--h) * .018) solid #2a2e35;font-size:calc(var(--h) * .06);flex-direction:column;justify-content:flex-end;line-height:1.05;display:none;position:absolute;top:34%;box-shadow:0 2px 4px #00000040}.poster span:first-child{font-size:1.55em}.poster-pigeons{background:var(--yellow);color:var(--ink);right:calc(50% + 21vw)}.poster-stand{background:var(--red);color:#fff;left:calc(50% + 21vw)}.track{background:linear-gradient(#2b2e32,#16181b 30%,#75797d 30% 38%,#1d1f22 38% 70%,#75797d 70% 78%,#121416 78%);height:12%;position:absolute;bottom:12%;left:0;right:0}.train{z-index:1;height:var(--train-h);will-change:transform;position:absolute;bottom:13%;left:50%;transform:translate(calc(50vw + 2px))}.train-svg{width:auto;height:100%;display:block}.train-led{fill:var(--amber);font-family:Doto,ui-monospace,monospace;font-weight:800}.leaf{transition:transform .3s var(--ease-out)}.train[data-doors=closed] .leaf{transition:transform .24s var(--ease-in-out)}.train[data-doors=open] .leaf-l{transform:translate(-21px)}.train[data-doors=open] .leaf-r{transform:translate(21px)}.door-light{fill:#4a3712}.train[data-urgent] .door-light{animation:.6s step-end infinite door-light}.pigeon-aboard{opacity:0;transition:opacity .25s}.train[data-pigeon=aboard] .pigeon-aboard{opacity:1}.platform-edge{z-index:2;justify-content:center;align-items:flex-start;gap:calc(var(--h) * 1.15);background:linear-gradient(to bottom, #5a5e63 0 42%, var(--yellow) 42% 54%, #9a9e9f 54%, #868a8c);height:16%;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden;box-shadow:0 -2px #00000059}.mind-the-gap{padding-top:calc(var(--h) * .012);color:#f4f4f0;font-size:max(8px, calc(var(--h) * .048));letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;opacity:.92;flex:none;line-height:1}.pigeon{z-index:3;bottom:6%;left:calc(50% + var(--door) * var(--u));width:calc(var(--h) * .24);margin-left:calc(var(--h) * -.12);transform-origin:50% 100%;position:absolute}.pigeon-svg{width:100%;height:auto;display:block;overflow:visible}.pigeon-head{transform-box:fill-box;transform-origin:15% 90%;animation:peck 3.4s var(--ease-in-out) infinite}.page{flex:1;width:100%;max-width:640px;margin:0 auto;padding:16px 12px 28px}.panel{border:5px solid var(--blue);background:radial-gradient(circle at 11px 11px, #c3c8cd 0 2.6px, #8a9097 2.6px 3.4px, transparent 3.8px), radial-gradient(circle at calc(100% - 11px) 11px, #c3c8cd 0 2.6px, #8a9097 2.6px 3.4px, transparent 3.8px), radial-gradient(circle at 11px calc(100% - 11px), #c3c8cd 0 2.6px, #8a9097 2.6px 3.4px, transparent 3.8px), radial-gradient(circle at calc(100% - 11px) calc(100% - 11px), #c3c8cd 0 2.6px, #8a9097 2.6px 3.4px, transparent 3.8px), var(--enamel);border-radius:18px;padding:22px 18px 24px;position:relative;box-shadow:inset 0 0 0 2px #ffffffe6,0 1px #ffffff26,0 22px 44px -14px #0009}.intro,.prompt,.reveal,.summary{animation:screen-in .32s var(--ease-out) both}.notice{color:var(--muted);text-align:center;margin:16px 0 0}.footer{color:#dee2f5b8;text-shadow:0 1px 2px #06081ee6,0 0 6px #06081ecc;width:100%;max-width:640px;margin:0 auto;padding:0 18px 28px;font-family:Helvetica Neue,Arial,sans-serif;font-size:11px;line-height:1.5}.primary{background:var(--blue);color:#fff;width:100%;box-shadow:0 3px 0 var(--blue-deep);transition:transform .16s var(--ease-out), background-color .16s ease;border:none;border-radius:10px;margin-top:24px;padding:16px;font-size:20px;display:block}.primary:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.primary:hover,.go:hover:enabled{background:var(--blue-deep)}.choice:hover{background:#eef1fb}}.headline{color:var(--blue);text-wrap:balance;margin:2px 0 20px;font-size:clamp(30px,8.5vw,42px);font-weight:400;line-height:1.08}.rules{counter-reset:rule;margin:0 0 22px;padding:0;list-style:none}.rules li{counter-increment:rule;align-items:flex-start;gap:12px;margin-bottom:12px;font-size:19px;line-height:1.3;display:flex}.rules li:before{content:counter(rule);background:var(--blue);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;margin-top:-1px;font-size:15px;display:grid}.rules strong,.interchange-note strong{color:var(--blue);font-weight:400}.tier-key{border:2px solid var(--ink);border-radius:10px;margin:0;padding:0;list-style:none;overflow:hidden}.tier-key-row{border-left:8px solid var(--tier);background:#fff;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;padding:10px 16px 10px 10px;display:grid}.tier-key-row+.tier-key-row{border-top:1px solid var(--rule)}.tier-key-emoji{text-align:center;font-size:22px}.tier-key-name{font-size:18px;display:block}.tier-key-meaning{color:var(--muted);font-size:14px;display:block}.tier-key-points{color:var(--blue);font-size:19px}.interchange-note{align-items:center;gap:12px;margin:16px 0 0;line-height:1.35;display:flex}.interchange-symbol{border:5px solid var(--ink);background:#fff;border-radius:50%;flex:none;width:26px;height:26px}.tier-rush-hour{--tier:#dc241f;--tier-ink:#b81d19}.tier-off-peak{--tier:#00782a;--tier-ink:#00782a}.tier-night-tube{--tier:#1c1f5e;--tier-ink:#1c1f5e}.tier-ghost-station{--tier:#6950a1;--tier-ink:#5b4494}.tier-lost-train{--tier:#f2a900;--tier-ink:#7a5300}.line-progress{margin:0 0 14px;position:relative;overflow-x:clip}.line-stops{grid-template-columns:repeat(var(--stops), 1fr);margin:0;padding:0;list-style:none;display:grid;position:relative}.line-stops:before{content:"";left:calc(50% / var(--stops));right:calc(50% / var(--stops));background:var(--blue);border-radius:3px;height:6px;position:absolute;bottom:7px}.stop{flex-direction:column;align-items:center;display:flex;position:relative}.stop-emoji{height:24px;font-size:18px;line-height:24px}.stop-done .stop-emoji{animation:pop-in .3s var(--ease-out) both}.stop-mark{background:var(--blue);width:6px;height:9px;margin-bottom:13px}.stop-interchange .stop-mark{border:4px solid var(--ink);background:#fff;border-radius:50%;width:18px;height:18px;margin-bottom:1px}.line-train-track{pointer-events:none;height:0;transform:translateX(calc((var(--at) + .5) / var(--stops) * 100%));transition:transform .7s var(--ease-in-out);position:absolute;bottom:13px;left:0;right:0}.line-train{background:linear-gradient(to right, transparent 5px, #cfe0ea 5px 9px, transparent 9px 11px, #cfe0ea 11px 15px, transparent 15px 17px, #cfe0ea 17px 21px, transparent 21px) 0 3px / 100% 4px no-repeat, var(--red);width:26px;height:13px;box-shadow:0 0 0 2px var(--enamel);border-radius:7px 3px 2px 2px;position:absolute;bottom:-1px;left:-13px}.board{color:var(--amber);letter-spacing:.03em;text-shadow:0 0 6px #ffb00080;background:#0a0b0d radial-gradient(#ffb00014 .9px,#0000 1.1px) 0 0/4px 4px;border:3px solid #2a2d33;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-family:Doto,ui-monospace,monospace;font-size:20px;font-weight:800;display:flex;box-shadow:inset 0 2px 10px #000000e6}.board-left{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.board-right{font-variant-numeric:tabular-nums;white-space:nowrap}.board-urgent{color:#ff5b3a;text-shadow:0 0 6px #ff5b3a99}.board-urgent .board-right{animation:1s steps(2,start) infinite blink}.timer{background:var(--rule);border-radius:3px;height:6px;margin:8px 0 20px;overflow:hidden}.timer-fill{background:var(--blue);transform-origin:0;height:100%;transition:transform .1s linear}.timer-low{background:var(--red)}.lead{color:var(--muted);margin:0 0 4px;font-size:18px}.conditions{text-wrap:balance;margin:0;font-size:clamp(28px,7.6vw,38px);font-weight:400;line-height:1.12}.condition{display:block}.condition+.condition:before{content:"and ";color:var(--muted)}.fits{color:var(--muted);margin:10px 0 0}.question-compact .lead{font-size:15px}.question-compact .conditions{font-size:21px}.answer-form{margin-top:22px}.answer-field{gap:8px;display:flex}.answer-input{border:3px solid var(--ink);min-width:0;color:var(--ink);font:inherit;background:#fff;border-radius:10px;flex:1;padding:14px;font-size:22px}.answer-input:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 4px #0019a82e}.go{background:var(--blue);color:#fff;transition:transform .16s var(--ease-out);border:none;border-radius:10px;padding:0 22px;font-size:20px}.go:active:enabled{transform:scale(.97)}.go:disabled{opacity:.6}.feedback{min-height:64px}.hint{color:var(--red);animation:hint-in .2s var(--ease-out) both;margin:12px 0 0}.sending{color:var(--muted);margin:12px 0 0;animation:.2s .25s both fade-in}.choices,.tried{flex-wrap:wrap;gap:8px;margin:10px 0 0;padding:0;list-style:none;display:flex}.choice{border:2px solid var(--blue);color:var(--blue);transition:transform .16s var(--ease-out);background:#fff;border-radius:999px;padding:10px 16px;font-size:18px}.choice:active{transform:scale(.97)}.tried-chip{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red);animation:chip-in .22s var(--ease-out) both;border:1.5px solid #c9cdd2;border-radius:999px;padding:4px 11px;font-size:15px;text-decoration-thickness:2px}.link-button{color:var(--blue);background:0 0;border:none;padding:0;text-decoration:underline}.tier-banner{background:var(--tier);color:#fff;transform-origin:50% 60%;animation:banner-in .38s var(--ease-out) 80ms both;border-radius:10px;align-items:center;gap:12px;margin:18px 0 14px;padding:14px 16px;display:flex}.tier-lost-train.tier-banner{color:var(--ink)}.tier-banner-emoji{font-size:34px;line-height:1}.tier-banner-name{flex:1;font-size:26px}.tier-banner-points{font-size:26px}.reveal-body>*{animation:rise-in .36s var(--ease-out) both;animation-delay:.18s}.reveal-body>.whiteboard{animation-delay:.24s}.reveal-body>.whiteboard~*{animation-delay:.3s}.your-answer{margin:0 0 6px;font-size:26px}.explain{color:var(--muted);margin:0;line-height:1.4}.whiteboard{background:linear-gradient(160deg,#fff 30%,#f1f4f6);border:7px solid #cfd4d8;border-radius:5px;margin:20px 4px 6px;padding:12px 16px 16px;position:relative;rotate:-.5deg;box-shadow:inset 0 0 0 1px #a6adb4,0 0 0 1px #a6adb4,0 3px 6px #0000001f}.whiteboard:after{content:"";background:#b9bfc5;border-radius:0 0 3px 3px;height:6px;position:absolute;bottom:-13px;left:18%;right:18%}.whiteboard-title,.whiteboard-fact{margin:0;font-family:Permanent Marker,Marker Felt,Comic Sans MS,cursive}.whiteboard-title{color:var(--red);text-underline-offset:5px;margin-bottom:6px;font-size:20px;text-decoration:underline;text-decoration-thickness:2px}.whiteboard-fact{color:#1b3a9f;font-size:17px;line-height:1.4}.section-title{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:26px 0 8px;font-size:14px;font-weight:400}.station-name{flex-wrap:wrap;align-items:center;gap:2px 8px;display:inline-flex}.line-chips{gap:3px;display:inline-flex}.line-chip{background:var(--line);border-radius:2px;width:14px;height:7px;display:inline-block}.line-chip-overground{background:linear-gradient(var(--line) 0 32%, #fff 32% 68%, var(--line) 68%)}.bars,.deep-cuts{margin:0;padding:0;list-style:none}.bar{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 3.2em;align-items:center;gap:10px;padding:6px 0;display:grid}.bar-track{background:var(--rule);border-radius:5px;height:10px;overflow:hidden}.bar-fill{background:var(--blue);transform-origin:0;height:100%;transform:scaleX(var(--share));animation:bar-grow .65s var(--ease-out) both;animation-delay:calc(.32s + var(--i) * 50ms);display:block}.bar-mine .bar-fill{background:var(--red)}.bar-value,.deep-cut-share{color:var(--muted);text-align:right}.deep-cuts li{justify-content:space-between;gap:10px;padding:6px 0;display:flex}.summary{text-align:center}.result-train-frame{margin:12px -18px 0;padding:12px 0 2px;overflow:hidden}.result-train{justify-content:center;align-items:flex-end;animation:1.1s cubic-bezier(.16,.84,.3,1) both train-in;display:flex}.result-cab{border:2px solid #2b3138;background:linear-gradient(to bottom, #1c2630 0 42%, var(--red) 42%);border-right:none;border-radius:18px 3px 3px 7px;width:22px;height:44px}.result-car{background:linear-gradient(to bottom, #fdfdfb 0 72%, var(--tier) 72%);border:2px solid #2b3138;border-radius:6px 6px 3px 3px;place-items:center;width:clamp(34px,10vw,54px);height:44px;margin-left:3px;display:grid;position:relative}.result-window{width:76%;height:54%;animation:pop-in .32s var(--ease-out) both;animation-delay:calc(.65s + var(--i) * 70ms);background:#dfe7ec;border-radius:4px;place-items:center;margin-bottom:26%;font-size:clamp(15px,4.4vw,21px);line-height:1;display:grid}.result-car-interchange:after{content:"";border:3.5px solid var(--ink);background:#fff;border-radius:50%;width:14px;height:14px;position:absolute;top:-12px}.score{margin:10px 0 0}.score-value{color:var(--blue);font-variant-numeric:tabular-nums;font-size:72px;line-height:1.1}.score-best{color:var(--muted);font-size:26px}.shared{color:var(--muted);white-space:pre-line;margin:10px 0 0}.recap{text-align:left;border-top:1px solid var(--rule);margin:26px 0;padding:0;list-style:none}.recap-row{border-bottom:1px solid var(--rule);grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:12px 0;display:grid}.recap-emoji{text-align:center;font-size:22px}.recap-prompt{color:var(--muted);font-size:15px;display:block}.recap-answer{font-size:19px;display:block}.recap-wrong{text-decoration:line-through;-webkit-text-decoration-color:var(--red);text-decoration-color:var(--red)}.recap-score{justify-items:end;gap:3px;display:grid}.recap-tier{background:var(--tier);color:#fff;white-space:nowrap;border-radius:999px;padding:2px 8px;font-size:13px}.tier-lost-train .recap-tier{color:var(--ink)}.recap-points{color:var(--blue);font-size:19px}@media (width>=720px){.platform{--h:230px}.page{padding-top:28px}.panel{padding:30px 32px 32px}.result-train-frame{margin-inline:-32px}}@media (width>=900px){.poster{display:flex}}@media (width>=1100px) and (height>=760px){.platform{--h:270px}}@media (width>=1280px){.wall-roundel-left,.wall-roundel-right{display:inline-grid}}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}@keyframes banner-in{0%{opacity:0;transform:scale(.95)}}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}}@keyframes chip-in{0%{opacity:0;transform:scale(.9)}}@keyframes hint-in{0%{opacity:0;transform:translateY(-3px)}}@keyframes fade-in{0%{opacity:0}}@keyframes name-in{0%{opacity:0;transform:translateY(35%)}}@keyframes bar-grow{0%{transform:scaleX(0)}}@keyframes train-in{0%{opacity:0;transform:translate(55%)}}@keyframes blink{50%{opacity:.4}}@keyframes door-light{0%{fill:var(--amber)}50%{fill:#4a3712}}@keyframes peck{0%,64%,to{transform:none}72%{transform:rotate(32deg)translate(1px,2px)}79%{transform:none}85%{transform:rotate(28deg)translate(1px,2px)}92%{transform:none}}@media (prefers-reduced-motion:reduce){.intro,.prompt,.reveal,.summary,.reveal-body>*,.tier-banner,.roundel-name,.stop-done .stop-emoji,.result-train,.result-window,.tried-chip,.hint{animation-name:fade-in}.bar-fill,.pigeon-head,.board-urgent .board-right{animation:none}.train[data-urgent] .door-light{fill:var(--amber);animation:none}.leaf,.train[data-doors=closed] .leaf,.line-train-track,.primary,.go,.choice{transition:none}}
