@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff) format("woff")}:root{--scale: 1;--bg: #050a07;--panel: #0a130d;--fg: #9dffb0;--bright: #e6fff0;--dim: #4f9166;--faint: #2a4f37;--amber: #ffcf66;--red: #ff7a6b;--cyan: #7fe9ff;--pink: #ff9df0;--yes: #5dff8f;--glow: 0 0 6px color-mix(in srgb, currentColor 55%, transparent);color-scheme:dark}:root[data-contrast=high]{--bg: #000;--panel: #0b0b0b;--fg: #ffffff;--bright: #ffffff;--dim: #b8b8b8;--faint: #6a6a6a;--amber: #ffd400;--red: #ff8ad1;--cyan: #6fd3ff;--pink: #ffb000;--yes: #6fd3ff}:root[data-crt=off]{--glow: none}*{box-sizing:border-box}html{font-size:calc(15px * var(--scale));-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:IBM Plex Mono,ui-monospace,Cascadia Mono,Consolas,Courier New,monospace;line-height:1.45;text-shadow:var(--glow);overscroll-behavior:none}h1,h2,p,pre,ol,ul,table{margin:0}ol,ul{padding:0;list-style:none}b{color:var(--bright);font-weight:600}kbd{font:inherit;border:1px solid var(--dim);padding:0 .4em;color:var(--bright)}.crt-overlay{position:fixed;inset:0;pointer-events:none;z-index:50;background:repeating-linear-gradient(to bottom,#0000 0 2px,#00000038 3px),radial-gradient(ellipse at center,#0000 60%,#00000073)}:root[data-crt=off] .crt-overlay{display:none}.btn{font:inherit;color:var(--fg);background:transparent;border:1px solid var(--dim);padding:.55em 1.1em;cursor:pointer;text-shadow:inherit;text-align:center;letter-spacing:.04em}.btn:hover:not(:disabled),.btn.on{background:var(--fg);color:var(--bg);text-shadow:none}.btn:focus-visible,input:focus-visible,select:focus-visible,.tbtn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.btn:disabled{opacity:.45;cursor:default}.btn.small{padding:.15em .6em;font-size:.85rem}.btn.big{padding:.8em 1.2em;font-weight:600;font-size:1.1rem}.btn small{display:block;font-weight:400;font-size:.78rem;opacity:.8;letter-spacing:0}.screen{min-height:100dvh;padding:1.5rem 1rem 3rem}.title-wrap,.page,.report-wrap{max-width:44rem;margin:0 auto}.title-wrap{text-align:center;padding-top:4vh}.logo{display:inline-block;text-align:left;color:var(--dim);font-size:.95rem;line-height:1.15}h1{font-size:clamp(1.6rem,6vw,2.6rem);letter-spacing:.22em;color:var(--bright);margin:.6rem 0 .4rem;font-weight:600}.tagline{color:var(--dim);margin-bottom:1.6rem}.menu{display:grid;gap:.7rem;max-width:26rem;margin:0 auto 1.5rem}.difficulty{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:26rem;margin:0 auto}.difficulty .btn{padding:.5em .2em;font-size:.9rem}.difficulty-blurb{margin:.5rem 0 1.1rem}.fine{color:var(--dim);font-size:.85rem;margin:.9rem 0}.status{color:var(--amber);margin:.9rem 0;min-height:1.4em}.page h1{font-size:1.5rem;margin-bottom:1rem}.page h2{font-size:1rem;color:var(--amber);margin:1.4rem 0 .35rem;letter-spacing:.08em}.page p{margin-bottom:.6rem}.page>.btn{margin-top:1.2rem}.tabs{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1rem}table{border-collapse:collapse;width:100%}.board caption{text-align:left;color:var(--amber);padding-bottom:.4rem}.board th,.board td,.rules td{text-align:left;padding:.2rem .6rem .2rem 0;border-bottom:1px dashed var(--faint);vertical-align:top}.board th{color:var(--dim);font-weight:400;font-size:.8rem}.board .r{text-align:right}.board tr.you td{color:var(--cyan)}.rules td:first-child{color:var(--bright);font-weight:600;width:34%}.cast{color:var(--dim);font-size:.85rem;columns:3 11rem;column-gap:1.2rem}.settings{display:grid;gap:.9rem;max-width:30rem}.field{display:grid;gap:.25rem;color:var(--dim);font-size:.85rem}.check{display:flex;gap:.6rem;align-items:center}input[type=text],select{font:inherit;color:var(--bright);background:var(--panel);border:1px solid var(--dim);padding:.45em .6em;text-transform:uppercase}select{text-transform:none}input[type=checkbox],input[type=range]{accent-color:var(--fg);width:1.2em;height:1.2em}input[type=range]{width:100%}.report{border:1px solid var(--dim);background:var(--panel);padding:1rem;overflow-x:auto;font-size:min(.95rem,calc((100vw - 4.2rem) / 34));line-height:1.4;color:var(--fg);width:fit-content;max-width:100%;margin:0 auto}.report-wrap{text-align:center}.report-wrap .report{text-align:left}.report-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;align-items:end;margin-top:1.2rem}.report-actions .field{text-align:left}.name-check{display:flex;gap:.35rem;align-items:center;justify-content:center;min-height:1.8em;margin-top:.6rem;font-size:.9rem;color:var(--dim)}.name-check svg{width:1.4em;height:1.4em;flex:none}.name-check.ok{color:var(--yes)}.name-check.bad{color:var(--red)}.screen.game{height:100dvh;min-height:0;max-width:900px;margin:0 auto;padding:.5rem .6rem;display:flex;flex-direction:column;gap:.45rem;overflow:hidden}.screen.game[hidden]{display:none}.hud{border:1px solid var(--faint);background:var(--panel);padding:.3rem .7rem}.hud-top{display:flex;align-items:center;gap:.8rem}.hud-stats{flex:1;min-width:0;display:grid;grid-template-columns:repeat(4,max-content);column-gap:1.3rem;color:var(--dim);font-size:.88rem}.hud-item{white-space:nowrap}.hud-buttons{flex:none;display:flex;gap:.4rem}.hud-status{display:flex;gap:.8rem;align-items:baseline;min-height:1.45em;color:var(--dim);font-size:.88rem;white-space:nowrap;overflow:hidden}.hud-gary{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.meter-turn{margin-left:auto;flex:none;min-width:9ch;text-align:right;color:var(--cyan);font-weight:600;font-size:.88rem}.meter{display:flex;gap:.8rem;align-items:baseline;white-space:pre;margin-top:.1rem;min-height:1.5em;overflow:hidden}.meter-label{color:var(--dim);font-size:.88rem}.meter.u1 .meter-bar,.meter.u1 .meter-pct{color:var(--amber)}.meter.u2 .meter-bar,.meter.u2 .meter-pct{color:var(--red)}.meter-fault{flex:none;color:var(--red);font-weight:600}.play{flex:1;min-height:0;display:flex;flex-direction:column;gap:.45rem}.tower{position:relative;flex:none;border:1px solid var(--faint);background:var(--panel);padding:.4rem .7rem;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;overflow:hidden;--bfs: max(8.5px, min(1.02rem, calc((min(100vw, 900px) - 2.8rem) / 29.6), calc((100dvh - 20.5rem) / 31)))}.tower-main{min-width:0;display:flex;flex-direction:column;min-height:calc(var(--bfs) * 1.38 * 20.5 + 1.5rem)}.tower-title{color:var(--dim);font-size:.78rem;letter-spacing:.12em;margin-bottom:.2rem}.building{position:relative;white-space:pre;font-size:var(--bfs);line-height:1.38;--lh: 1.38em;width:49ch;margin-top:auto}.building .row{height:1.38em}.building .row.cur{background:color-mix(in srgb,var(--fg) 9%,transparent)}.num,.wall,.track{color:var(--dim)}.unk{color:var(--faint)}.known{color:var(--bright)}.stale{color:var(--amber);opacity:.75}.gone{color:var(--faint);text-decoration:line-through}.key{color:var(--pink)}.wing{color:var(--cyan)}.hint{color:var(--amber)}.w{font-weight:600}.u0 .pb,.w.u0{color:var(--fg)}.u1 .pb,.w.u1{color:var(--amber)}.u2 .pb,.w.u2{color:var(--red)}.w.u2,.blink,.fault{animation:blink .7s steps(2,jump-none) infinite}.fault,.fl-bad{color:var(--red);font-weight:600}.car{position:absolute;left:0;top:0;width:5ch;height:1.38em;color:var(--cyan);font-weight:600;background:var(--panel);will-change:transform}.car.open{color:var(--bright)}.shake{animation:shake .5s linear}@keyframes blink{0%{opacity:1}to{opacity:.35}}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-.5ch,.1em)}30%{transform:translate(.5ch,-.1em)}45%{transform:translate(-.35ch,.05em)}60%{transform:translate(.35ch)}80%{transform:translate(-.15ch)}}:root[data-motion=reduce] .w.u2,:root[data-motion=reduce] .blink,:root[data-motion=reduce] .fault,:root[data-motion=reduce] .shake{animation:none}.tower-side{position:relative;min-width:0;border-left:1px dashed var(--faint)}.side-inner{position:absolute;inset:0 0 0 .9rem;overflow:hidden;display:flex;flex-direction:column;gap:.3rem}.tower-side h2{font-size:.78rem;letter-spacing:.12em;color:var(--dim);font-weight:400}.banner{padding:.35rem .6rem;border:1px solid var(--amber);background:var(--bg);color:var(--amber);font-size:.85rem;white-space:normal}.banner-new{border-color:var(--cyan);color:var(--cyan)}.banner-fault{border-color:var(--red);color:var(--red)}.radio-line{display:none;font-size:.8rem;color:var(--dim);min-height:2.9em;white-space:normal;overflow:hidden}.radio li,.radio-line span{font-size:.82rem;color:var(--dim)}.radio li{padding:.1rem 0}.radio li:first-child{color:var(--fg)}.radio .good b,.radio-line .good b{color:var(--bright)}.radio .ok,.radio .warn,.radio-line .ok,.radio-line .warn{color:var(--amber)}.radio .bad,.radio-line .bad{color:var(--red)}.radio .new,.radio-line .new{color:var(--cyan)}.overlay{position:absolute;inset:0;z-index:6;display:grid;place-items:center;padding:.6rem;overflow:auto;background:color-mix(in srgb,var(--bg) 82%,transparent)}.overlay[hidden]{display:none}.is-paused .overlay{background:var(--bg)}.is-paused .building{visibility:hidden}.overlay-box{max-width:30rem;max-height:100%;overflow:auto;border:1px solid var(--dim);background:var(--panel);padding:.8rem 1.2rem;text-align:center;font-size:.9rem}.overlay-box h2{color:var(--bright);font-size:1.05rem;letter-spacing:.1em;margin-bottom:.5rem}.overlay-box p{margin-bottom:.5rem}.overlay-box .keys{color:var(--dim)}.overlay-actions{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}.panels{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.panel{border:1px solid var(--faint);background:var(--panel);padding:.4rem .7rem;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--faint) transparent}.panel h2{font-size:.78rem;letter-spacing:.12em;color:var(--dim);font-weight:400;margin-bottom:.3rem;position:sticky;top:-.4rem;background:var(--panel);padding:.2rem 0}.pax{padding:.3rem 0;border-top:1px dashed var(--faint)}.pax:first-child{border-top:0}.pax-top{display:flex;gap:.5rem;align-items:baseline;font-size:.85rem}.pw{color:var(--bg);background:var(--amber);text-shadow:none;padding:0 .35em;font-weight:600}.pg{color:var(--cyan);font-weight:600}.pk{color:var(--bright);font-weight:600;white-space:nowrap}.pn{color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pb{margin-left:auto;white-space:pre}.pt{color:var(--fg);margin:.1rem 0}.pt:before,.pt:after{content:'"'}.chip{display:inline-block;font-size:.72rem;color:var(--pink);border:1px solid color-mix(in srgb,var(--pink) 50%,transparent);padding:0 .4em;letter-spacing:.03em}.pax.wanted .chip{color:var(--red);border-color:var(--red)}.pax.golden .chip,.pax.golden .pk{color:var(--amber);border-color:var(--amber)}.empty{color:var(--faint);font-size:.85rem}.cash-layer{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}.cash{position:absolute;font-weight:600;font-size:1.7rem;color:var(--bright);white-space:nowrap;text-shadow:0 0 10px color-mix(in srgb,var(--fg) 80%,transparent),0 0 2px var(--bg)}.cash.ok{color:var(--amber)}.touch{display:none;gap:.5rem;grid-template-columns:1fr 1.2fr 1fr;padding-bottom:env(safe-area-inset-bottom)}.tbtn{font:inherit;font-weight:600;font-size:1.05rem;color:var(--fg);background:var(--panel);border:1px solid var(--dim);min-height:3.8rem;text-shadow:inherit;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer}.tbtn.down,.tbtn:active{background:var(--fg);color:var(--bg);text-shadow:none}.tbtn-doors{color:var(--cyan);border-color:var(--cyan)}.tbtn-side{display:none}.has-wing .touch{grid-template-columns:.6fr 1fr 1.1fr 1fr .6fr}.has-wing .tbtn-side{display:block}@media(pointer:coarse),(max-width:40rem){.touch{display:grid}.tower{--bfs: max(8.5px, min(1.02rem, calc((min(100vw, 900px) - 2rem) / 29.6), calc((100dvh - 25.5rem) / 31)))}}@media(max-width:46rem){.screen.game{padding:.35rem .4rem;gap:.35rem}.play,.panels{gap:.35rem}.tower{grid-template-columns:minmax(0,1fr);gap:.3rem;padding:.3rem .4rem;justify-items:center}.tower-title,.tower-side h2,.radio{display:none}.tower-main{min-height:calc(var(--bfs) * 1.38 * 20.5)}.tower-side{border-left:0;justify-self:stretch}.side-inner{position:static}.radio-line{display:block}.banner{min-height:2.9em;font-size:.8rem;padding:.2rem .5rem}.banner:not([hidden])~.radio-line{display:none}.panel{padding:.3rem .5rem}.hud{padding:.25rem .5rem}.hud-stats{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:.8rem;font-size:.8rem}.hud-status,.meter-turn{font-size:.8rem}.cash{font-size:1.4rem}}@media(max-width:34rem){.panels{grid-template-columns:1fr;overflow-y:auto;align-content:start}.panel{overflow:visible}.panel h2{position:static}.meter-label{display:none}}@media print{:root{--bg: #fff;--panel: #fff;--fg: #000;--bright: #000;--dim: #000;--glow: none}body{background:#fff;color:#000;text-shadow:none}.crt-overlay,.no-print,.screen:not(#s-report){display:none!important}.screen{min-height:0;padding:0}.report{border:0;font-size:11pt;color:#000;padding:0}}
