@import url('./vendor/fonts.css');
:root{font-family:'DM Sans',sans-serif;color:#172220;background:#ecefe8;font-synthesis:none;--lime:#d8fc50;--ink:#151b19;--pink:#fa5591;--mono:'Space Mono',monospace;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #fb5491;outline-offset:4px}button{border:0}a{color:inherit}button:disabled{opacity:.5}#app{height:100svh;min-height:680px;display:flex;flex-direction:column;padding:0 26px}.topbar{height:82px;flex:none;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cad0c7;gap:20px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-size:19px;font-weight:800;letter-spacing:-.7px}.brand-mark{background:var(--ink);color:var(--lime);width:37px;height:39px;border-radius:10px 3px 10px 3px;display:grid;place-items:center;font-size:34px;font-family:var(--display);font-style:italic;line-height:1;padding-bottom:5px}.brand-light{font-weight:500}.edition{font:12px var(--mono);letter-spacing:.5px;display:flex;align-items:center;gap:8px}.edition-num{color:#89928a;margin-left:15px}.live-dot{width:7px;height:7px;background:#446143;border-radius:50%}.header-actions{display:flex;align-items:center;gap:20px}.text-button{background:none;font-size:13px;font-weight:600}.text-button span{padding-left:10px}.icon-button{width:35px;height:35px;border:1px solid #bdc4ba;background:transparent;border-radius:50%;font-size:24px;position:relative}.sound-slash{position:absolute;left:5px;top:3px;color:#536050;font-size:25px}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 298px;gap:0;flex:1;min-height:0;margin-top:20px;overflow:hidden;border-radius:12px 12px 5px 5px;background:#141b18}.game-shell{position:relative;min-height:520px;overflow:hidden;background:#79c8b8}#game{width:100%;height:100%;display:block;touch-action:none;outline:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,#073e3830,transparent 25%,transparent 80%,#1b403314)}.game-top{position:absolute;top:23px;left:25px;right:25px;display:flex;justify-content:space-between;align-items:center;gap:12px}.location-chip{font:11px var(--mono);font-weight:700;background:#ffffffa6;backdrop-filter:blur(8px);padding:7px 10px;border:1px solid #ffffff8f;display:flex;gap:10px;align-items:center;border-radius:4px}.location-chip span{background:#243c33;color:#ecf5d8;padding:2px 5px}.run-hud{display:flex;align-items:center;gap:8px;background:#ffffffab;padding:8px 12px;border-radius:5px;font:20px var(--display);font-weight:700;backdrop-filter:blur(8px)}.sugar-icon{color:#b98410;font-size:20px}.hud-divider{height:16px;width:1px;background:#a1b6a6;margin:0 7px}.hud-unit{font-size:13px;font-family:var(--mono)}.pause-button{background:none;border-left:1px solid #a1b6a6;margin-left:8px;padding-left:12px;font-weight:bold}.start-screen{position:absolute;top:19%;left:6%;width:80%;pointer-events:none}.start-screen>*{pointer-events:auto}.eyebrow{font:12px var(--mono);font-weight:700;letter-spacing:1px;display:flex;align-items:center;gap:10px}.eyebrow>span{height:7px;width:7px;background:var(--pink);border-radius:50%}h1{font:italic 900 clamp(76px,8.8vw,145px)/.79 var(--display);letter-spacing:-3px;transform:rotate(-4deg);margin:27px 0 25px 0;text-shadow:2px 3px 0 #f5f4dc;position:relative;max-width:600px;color:#1c382e}h1 span{color:#faffdf;-webkit-text-stroke:2px #243e30;text-shadow:5px 5px 0 #243e30}h1 i{font:20px var(--mono);position:absolute;margin:12px}.start-screen>p{font-size:15px;font-weight:500;line-height:1.55;margin:35px 0 23px;max-width:300px;text-shadow:0 1px 8px #e9efcc}.primary-button{background:var(--lime);color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:20px;font-family:var(--display);font-size:24px;font-weight:700;padding:17px 22px;width:276px;box-shadow:4px 4px 0 #182c22;border:1px solid #203528;transition:transform .15s,box-shadow .15s}.primary-button:hover{transform:translate(-1px,-2px);box-shadow:6px 7px 0 #182c22;background:#e3ff7b}.primary-button:active{transform:translate(3px,3px);box-shadow:0 0 0 #182c22}.primary-button b{font:27px sans-serif;font-weight:400}.start-note{font:10px var(--mono);letter-spacing:.5px;margin-top:17px}.game-bottom{position:absolute;left:25px;right:25px;bottom:25px;display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.threat{width:210px;color:#ecf9e4;text-shadow:0 1px 8px #28574c}.threat-heading{display:flex;flex-direction:column;gap:5px;font:10px var(--mono)}.threat-heading strong{font:12px var(--display);font-weight:600;letter-spacing:1.2px}.threat-track{height:5px;background:#18382f55;margin-top:10px;border:1px solid #ffffff50;border-radius:4px}.threat-track i{display:block;height:100%;width:25%;background:var(--lime);transition:width .6s,background .6s}.world-caption{display:flex;flex-direction:column;align-items:flex-end;gap:7px;color:#edfae0;text-shadow:0 1px 8px #28574c}.world-caption span{font:10px var(--mono)}.world-caption strong{font:15px var(--display);font-weight:600;letter-spacing:1px}.lab-panel{color:#e8ecde;display:flex;flex-direction:column;padding:25px 23px 19px;overflow:auto;background:#171e1b}.panel-heading{display:flex;align-items:center;gap:8px;border-bottom:1px solid #354038;padding-bottom:17px}.panel-heading h2{font:11px var(--mono);margin:0;letter-spacing:.5px}.mini-cross{font-size:25px;color:var(--lime);line-height:20px}.serial{font:10px var(--mono);color:#829184;margin-left:auto}.subject{display:flex;align-items:center;justify-content:space-between;margin:23px 0 20px}.subject h3{font:600 32px var(--display);margin:0}.subject p{font-size:11px;color:#93a196;margin:5px 0}.subject-badge{border:1px solid #5d6f3d;color:var(--lime);font:9px var(--mono);padding:7px 9px;transform:rotate(7deg);text-align:center}.subject-badge b{font-size:8px;font-weight:400}.mode-control{display:flex;background:#0c130f;border:1px solid #3a4537;border-radius:5px;padding:4px}.mode-control button{flex:1;background:transparent;color:#abb7a9;font-size:12px;font-weight:600;padding:10px 3px;border-radius:3px}.mode-control button.selected{background:var(--lime);color:#172510}.brain-module{margin-top:25px}.module-heading{display:flex;justify-content:space-between;align-items:center;font:10px var(--mono);color:#a1afa0}.status-chip{font:9px var(--mono);border:1px solid #586f35;border-radius:2px;color:#c5e880;padding:3px 5px}#brain{width:100%;height:143px;display:block}.brain-caption{display:flex;justify-content:space-between;font:9px var(--mono);color:#90a483;border-bottom:1px solid #354038;padding-bottom:16px}.thought-block{padding:19px 0 15px;border-bottom:1px solid #354038}.micro-label{font:10px var(--mono);color:#90a08f;letter-spacing:.6px}.thought-block>div{display:flex;gap:9px;align-items:baseline}.thought-arrow{color:var(--lime);font-size:25px}.thought-block p{font-size:14px;line-height:1.45;color:#e4ecdf;margin:8px 0 0}.action-readout{display:flex;align-items:center;justify-content:space-between;padding:16px 0}.action-keys{display:flex;gap:5px}.action-keys span{width:26px;height:26px;border:1px solid #465440;display:grid;place-items:center;border-radius:3px;color:#8a9e7e;font-size:16px;transition:background .1s}.action-keys span.active{background:var(--lime);color:#172510}.run-stats{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #354038;padding:17px 0}.run-stats>div{display:flex;flex-direction:column;gap:7px}.run-stats>div+div{padding-left:15px;border-left:1px solid #354038}.run-stats span{font:9px var(--mono);color:#9baa93}.run-stats span small{font-size:7px;display:block;margin-top:3px;color:#75816e}.run-stats strong{font:600 27px var(--display);letter-spacing:1px}.run-stats strong small{font:12px var(--mono);color:#809873}.how-to{margin-top:20px}.how-to p{font-size:11px;color:#c4cdbb;line-height:1.8;margin:9px 0}.how-to p span{display:block}.how-to kbd{display:inline-grid;place-items:center;background:#303d2b;border-radius:3px;width:18px;height:19px;color:#d1e4bf;font:12px var(--mono);margin-right:4px}.how-to p.muted{color:#819077;font-size:11px;line-height:1.6}.lab-footer{margin-top:auto;padding-top:22px}.lab-footer>span{font-size:10px;color:#b3c3a3}.lab-footer button{background:none;color:#a3b78d;font-size:10px;padding:0 0 0 7px;text-decoration:underline;text-underline-offset:3px}.lab-footer p{font-size:9px;color:#77876b;line-height:1.5;margin:8px 0 0}.bottom-bar{height:42px;flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;font:9px var(--mono);color:#61705c;letter-spacing:.5px}.bottom-bar>span:nth-child(2){color:#3c5134}.bottom-bar i{color:#5b802d;margin-left:6px}#event-toast{position:absolute;top:18%;left:50%;transform:translate(-50%,-15px) rotate(-3deg);white-space:nowrap;background:var(--lime);padding:9px 20px;box-shadow:3px 3px 0 #1e392c;color:#203226;font:italic 800 27px var(--display);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}#event-toast.show{opacity:1;transform:translate(-50%,0) rotate(-3deg)}#hit-flash{position:absolute;inset:0;background:#ff458967;opacity:0;pointer-events:none;transition:opacity .15s}.end-screen,.pause-screen,.error-screen{position:absolute;inset:0;background:#daeabae0;backdrop-filter:blur(9px);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px;z-index:5}.end-screen h2{font:italic 900 104px/.8 var(--display);letter-spacing:-1px;margin:27px 0 10px;transform:rotate(-5deg)}.end-screen h2 em{color:#ef4389;-webkit-text-stroke:1px #3c2c32;text-shadow:3px 3px #293c2a}.end-screen p{font-size:14px}.result-stamp{font:10px var(--mono);border:1px solid #203b29;padding:7px;transform:rotate(2deg)}.results{display:flex;gap:25px;margin:15px 0 30px}.results>div{display:flex;flex-direction:column;gap:4px}.results strong{font:600 35px var(--display)}.results span{font:9px var(--mono)}.pause-screen h2{font:italic 900 68px/.92 var(--display);margin:0 0 30px}.error-screen{background:#e5e9da}.error-screen p{max-width:390px;font-size:15px;line-height:1.5}[hidden]{display:none!important}.touch-controls{display:none}dialog{width:min(570px,calc(100% - 28px));background:#ecf0dc;color:#213526;border:1px solid #314933;padding:38px;max-height:90svh;box-shadow:8px 8px 0 #141e1580}dialog::backdrop{background:#0d1d17a8;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:18px;top:12px;font-size:29px;background:none}.dialog-close:hover{color:#dd377e}dialog h2{font:italic 800 55px/.95 var(--display);margin:24px 0}dialog h3{font:600 25px var(--display);margin:25px 0 10px}dialog p{font-size:15px;line-height:1.65}dialog .credit{font:12px var(--mono)}body.playing .start-screen{display:none}body.playing .world-caption{opacity:.7}
@media(min-width:1550px){.play-layout{grid-template-columns:minmax(0,1fr) 330px}.lab-panel{padding:29px}.start-screen{top:22%}.subject h3{font-size:38px}#brain{height:185px}.how-to p{font-size:13px}.brain-caption,.micro-label,.module-heading{font-size:11px}}
@media(max-height:800px) and (min-width:901px){#app{min-height:620px}.topbar{height:64px}.play-layout{margin-top:14px}.lab-panel{padding-top:19px;padding-bottom:15px}.subject{margin:14px 0}.brain-module{margin-top:17px}#brain{height:110px}.thought-block{padding:12px 0}.run-stats{padding:12px 0}.how-to{margin-top:12px}.lab-footer{padding-top:12px}.action-readout{padding:12px 0}.subject h3{font-size:29px}.game-shell{min-height:520px}.start-screen{top:18%}h1{font-size:clamp(70px,8.8vw,132px)}.start-screen>p{margin-top:28px}.start-note{margin-top:12px}}
@media(max-width:1100px){#app{padding:0 16px}.play-layout{grid-template-columns:minmax(0,1fr) 260px}.lab-panel{padding:20px 17px}.edition{display:none}.start-screen{left:6%;top:23%}h1{font-size:clamp(76px,10vw,120px)}.location-chip{font-size:9px}.game-top{left:17px;right:17px}.world-caption{display:none}.start-screen>p{font-size:14px}.primary-button{width:245px;font-size:22px}}
@media(max-width:760px){#app{height:auto;min-height:100svh;padding:0 10px}.topbar{height:62px;gap:10px}.brand{font-size:16px;gap:8px}.brand-mark{width:29px;height:31px;font-size:28px;border-radius:7px 2px}.header-actions{gap:9px}.text-button{font-size:11px}.text-button span{padding-left:1px}.icon-button{height:30px;width:30px;font-size:20px}.sound-slash{font-size:22px}.play-layout{display:flex;flex-direction:column;margin-top:10px;overflow:visible}.game-shell{height:calc(100svh - 82px);min-height:560px;max-height:880px;border-radius:9px 9px 0 0}.start-screen{top:18%;left:8%}h1{font-size:clamp(88px,20vw,148px)}.start-screen>p{font-size:14px;margin-top:30px}.game-top{top:15px;left:13px;right:13px}.location-chip{padding:5px;font-size:8px;gap:5px}.run-hud{padding:6px 8px;font-size:18px;gap:5px}.hud-divider{margin:0 2px}.pause-button{margin-left:2px;padding-left:7px}.game-bottom{left:18px;bottom:20px;right:18px}.threat{width:175px}.lab-panel{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;padding:22px;border-radius:0 0 8px 8px}.panel-heading,.subject,.mode-control,.lab-footer{grid-column:1/-1}.subject{margin:18px 0}.subject h3{font-size:32px}.subject p{font-size:12px}.mode-control button{font-size:14px;padding:12px}.brain-module{grid-column:1;grid-row:4/7;margin-top:20px}#brain{height:140px}.brain-caption{font-size:8px}.thought-block{grid-column:2;padding-top:20px}.thought-block p{font-size:13px}.action-readout{grid-column:2;display:block;padding:12px 0}.action-keys{margin-top:10px}.run-stats{grid-column:2}.run-stats span{font-size:8px}.how-to{grid-column:1/-1;display:none}.lab-footer{padding-top:20px;display:flex;flex-wrap:wrap;gap:0}.lab-footer p{width:100%;font-size:10px}.bottom-bar{font-size:8px;height:39px}.bottom-bar>span:last-child{display:none}.touch-controls{position:absolute;bottom:68px;left:50%;transform:translateX(-50%);display:none;gap:9px}.touch-controls button{height:45px;width:49px;background:#f5fbe2c9;color:#213a2d;backdrop-filter:blur(5px);border:1px solid #fff9;border-radius:8px;font-size:24px;touch-action:none}body.playing .touch-controls{display:flex}.touch-controls button:active{background:var(--lime)}.start-note{font-size:9px}#event-toast{top:15%;font-size:24px}.end-screen h2{font-size:98px}.results{gap:20px}.result-stamp{font-size:8px}.results span{font-size:8px}dialog{padding:30px 24px}dialog h2{font-size:48px}}
.edition,.text-button{font-size:14px}.location-chip,.eyebrow,.start-note,.threat-heading,.threat-heading strong,.world-caption span,.panel-heading h2,.serial,.subject-badge,.subject-badge b,.module-heading,.status-chip,.brain-caption,.micro-label,.run-stats span,.run-stats span small,.lab-footer>span,.lab-footer button,.lab-footer p,.bottom-bar,.result-stamp,.results span{font-size:12px}.subject p,.mode-control button,.how-to p,.how-to p.muted{font-size:13px}.lab-footer p{line-height:1.6}.bottom-bar{font-size:10px}.run-stats span small{font-size:10px}.subject-badge b{font-size:10px}.mode-control button{white-space:nowrap}.brain-caption{font-size:10px}.status-chip{font-size:10px}.panel-heading{gap:7px}.lab-footer button{padding-left:0;margin-top:7px}.lab-footer>span{display:block}.lab-footer p{font-size:11px}.how-to .micro-label{font-size:11px}.subject p{font-size:12px}.start-note{font-size:10px}
@media(max-width:1100px){.location-chip{font-size:10px}.mode-control button{font-size:12px}.panel-heading h2{font-size:10px}.micro-label{font-size:10px}.bottom-bar{font-size:9px}}
@media(max-width:760px){.location-chip{font-size:9px}.mode-control button{font-size:14px}.lab-footer button{margin:0 0 0 10px}.results span{font-size:10px}.bottom-bar{font-size:8px}.result-stamp{font-size:9px}.threat-heading{font-size:10px}.start-screen .eyebrow{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}.primary-button:hover{transform:none}}
.edition,.edition-num,.location-chip,.eyebrow,.start-note,.threat-heading,.threat-heading strong,.world-caption span,.panel-heading h2,.serial,.subject-badge,.subject-badge b,.module-heading,.status-chip,.brain-caption,.micro-label,.run-stats span,.run-stats span small,.lab-footer>span,.lab-footer button,.lab-footer p,.bottom-bar,.result-stamp,.results span,.how-to .micro-label,.start-screen .eyebrow{font-size:12px}.mode-control button{font-size:14px}.start-note{letter-spacing:0}.brain-caption{font-size:12px}.lab-footer p{line-height:1.55}.panel-heading h2{font-size:12px}.subject-badge{padding:6px}.subject-badge b{font-size:12px}.run-stats span small{font-size:12px;line-height:1.4}.result-stamp{max-width:100%;line-height:1.5}.action-readout{gap:8px}.action-keys{gap:4px;flex:none}.lab-footer>span{line-height:1.5}
@media(max-width:760px){.text-button{font-size:12px}.location-chip{font-size:12px}.location-chip span{padding:2px 4px}.bottom-bar>span:first-child{display:none}.bottom-bar{justify-content:center}.game-bottom .threat-heading{font-size:12px}.brain-caption{font-size:10px}.lab-footer button{margin-top:0}.lab-footer>span{font-size:12px}.results{gap:17px}.results span{font-size:12px}.start-note{font-size:11px}.result-stamp{font-size:12px}.panel-heading h2{font-size:12px}}
/* Rail-yard edition: sunny blue city, vivid transit colors, yellow arcade title. */
:root{background:#edf1f6;color:#182e4b}.game-shell{background:#78cceb}.vignette{background:linear-gradient(0deg,#122a555c,transparent 30%,transparent 86%,#3a76a313)}h1{color:#163c71;text-shadow:2px 3px 0 #fff4ce}h1 span{color:#ffe269;-webkit-text-stroke:2px #213e75;text-shadow:5px 5px 0 #213e75}.start-screen>p{color:#173458;text-shadow:0 1px 7px #ffffff,0 0 18px #ffffffbd}.start-screen .eyebrow,.start-note{color:#183858;text-shadow:0 0 8px #e1f4ff}.location-chip{background:#fff7dfdd;color:#233b66}.location-chip span{background:#314980;color:#ffe789}.run-hud{background:#fff7dfdf;color:#283d6b}.game-bottom{filter:drop-shadow(0 2px 3px #14214b)}.end-screen,.pause-screen{background:#d6e6f0e6;color:#203c6e}.end-screen h2 em{text-shadow:3px 3px #283e70}.error-screen{background:#d8e8ee}.end-screen .primary-button,.pause-screen .primary-button{color:#172f48}

