:root,:root[data-theme=green]{--bg: #050805;--fg: #33ff66;--dim: #1f9a45;--amber: #ffb000;--danger: #ff5a5a;--success: #9dff9d;--system: #7fb3ff;--combat: #ffa040;--glow: 1}:root[data-theme=amber]{--bg: #0a0700;--fg: #ffb000;--dim: #9c6c00;--amber: #ffe08a;--danger: #ff6b6b;--success: #ffd75e;--system: #8fd3ff;--combat: #ff7f50}:root[data-theme=plain]{--bg: #000000;--fg: #e8e8e8;--dim: #9a9a9a;--amber: #ffffff;--danger: #ff7b7b;--success: #b8ffb8;--system: #9cc4ff;--combat: #ffb37a;--glow: 0}:root{--font: "IBM Plex Mono", "Cascadia Mono", "Consolas", "DejaVu Sans Mono", monospace}html,body,#root{height:100%;margin:0;overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px}*{box-sizing:border-box}pre{font-family:inherit}:root{scrollbar-width:thin;scrollbar-color:var(--dim) transparent}.frame{position:fixed;left:0;right:0;top:var(--vv-top, 0px);height:100%;height:var(--app-height, 100dvh)}.terminal{display:flex;flex-direction:column;height:100%;max-width:100ch;margin:0 auto;padding-top:env(safe-area-inset-top);padding-left:max(1.5ch,env(safe-area-inset-left));padding-right:max(1.5ch,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom)}:root.kb-open .terminal,:root.kb-open .title{padding-bottom:0}.log{flex:1;min-height:0;overflow-y:auto;padding:1em 0 .5em;white-space:pre-wrap;overflow-wrap:anywhere}.line{margin:0;line-height:1.45}.line.gap{height:.7em}.line.dim,.line.echo,.dim{color:var(--dim)}.line.heading,.line.emph,.heading{color:var(--amber)}.line.danger{color:var(--danger)}.line.success{color:var(--success)}.line.system{color:var(--system)}.line.combat{color:var(--combat)}.line.netmap{color:var(--system);white-space:pre;overflow-x:auto;overscroll-behavior-x:contain}.status .hp{color:var(--success)}.status .hp.mid{color:var(--combat)}.status .hp.low{color:var(--danger)}.status .room{color:var(--dim)}.panel.death{border-color:var(--danger)}.panel.death .heading{color:var(--danger);letter-spacing:.3ch}.panel.win{border-color:var(--success)}.panel.win .heading{color:var(--success);letter-spacing:.3ch}.panel p{margin:.3em 0}.unrevealed{visibility:hidden}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.netpane{margin:.8em 0 0;padding:.5em 1ch;border:1px solid var(--system);color:var(--system);font:inherit;font-size:.92em;line-height:1.35;white-space:pre;overflow-x:auto}.netpane.mid{border-color:var(--combat)}.netpane.low{border-color:var(--danger)}.cmd{display:flex;align-items:center;border-top:1px solid var(--dim);padding:.45em 0}.cmd .prompt{margin-right:1ch;color:var(--amber)}.input-wrap{position:relative;flex:1}.cmd input,.title input{width:100%;background:transparent;border:0;outline:0;color:inherit;font:inherit;caret-color:var(--fg);padding:0;margin:0}.ghost{position:absolute;inset:0;pointer-events:none;white-space:pre;overflow:hidden}.ghost .typed{visibility:hidden}.ghost .rest{color:var(--dim);opacity:.8}.status{display:flex;gap:2ch;flex-wrap:wrap;align-items:baseline;border-top:1px solid var(--dim);padding:.35em 0 .5em;color:var(--amber);font-size:.9em}.status .grow{flex:1}button.link{background:none;border:0;padding:0;margin:0;color:var(--fg);font:inherit;cursor:pointer;text-align:left}button.link:hover,button.link:focus-visible{color:var(--amber);outline:none;text-decoration:underline}button.link.active{color:var(--amber)}button.link.danger{color:var(--danger)}.title{display:flex;flex-direction:column;justify-content:center;height:100%;max-width:100ch;margin:0 auto;padding-top:env(safe-area-inset-top);padding-left:max(1.5ch,env(safe-area-inset-left));padding-right:max(1.5ch,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom)}.title .banner{color:var(--amber);margin:0 0 .5em;line-height:1.15;overflow:hidden}.title .banner-lg{font-size:min(15px,calc((100vw - 24px) / (59 * .62)))}.title .banner-sm{display:none;font-size:min(15px,calc((100vw - 24px) / (29 * .62)))}.title .menu{display:flex;flex-direction:column;gap:.6em;margin:1.5em 0;font-size:1.05em}.title .seed-row{display:flex;gap:1ch;align-items:baseline}.title .seed-row input{width:24ch;border-bottom:1px solid var(--dim)}.title .hint{margin-top:1em}.title .records{margin:0}.title .kit-row{display:flex;gap:0;flex-wrap:wrap;align-items:baseline}.success{color:var(--success)}.panel.wide{min-width:min(80ch,94vw);max-height:var(--app-height, 90dvh);overflow-y:auto}.unlock-list{list-style:none;margin:.8em 0 0;padding:0}.unlock-list li{display:grid;grid-template-columns:22ch 10ch 1fr auto;gap:1ch;align-items:baseline;padding:.25em 0}.unlock-list li.owned .unlock-name{color:var(--success)}.unlock-list .unlock-cost{color:var(--amber)}.unlock-list button.link:disabled{color:var(--dim);cursor:default;text-decoration:none}@media(max-width:70ch){.unlock-list li{grid-template-columns:1fr auto}.unlock-list .unlock-desc{grid-column:1 / -1}}.overlay{position:fixed;top:var(--vv-top, 0px);left:0;right:0;bottom:auto;height:100%;height:var(--app-height, 100dvh);background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10}.panel{min-width:min(44ch,90vw);max-width:100%;max-height:var(--app-height, 90dvh);overflow-y:auto;border:1px solid var(--dim);background:var(--bg);padding:1em 2ch 1.2em}.panel .heading{margin:0 0 .8em}.panel .row{display:flex;gap:2ch;margin:.4em 0}.panel .row-label{width:14ch;color:var(--dim)}.panel .row-choices{display:flex;gap:1ch}.panel-actions{display:flex;gap:3ch;margin-top:1.2em}.panel .token-row{display:flex;gap:1ch;align-items:baseline}.panel .token-row input{width:30ch;background:transparent;border:0;border-bottom:1px solid var(--dim);outline:0;color:inherit;font:inherit}.panel .token{word-break:break-all;margin:.2em 0 .4em}.panel .small{font-size:.85em;max-width:60ch}.status .danger{color:var(--danger)}@media(pointer:coarse){.cmd,.title input,.panel input{font-size:16px}}@media(max-width:640px){.title .banner-lg{display:none}.title .banner-sm{display:block}.title{justify-content:flex-start;padding-top:calc(1.5em + env(safe-area-inset-top));overflow-y:auto}.title .seed-row{flex-wrap:wrap}.title .seed-row input{width:auto;flex:1;min-width:12ch}.status{gap:1ch;font-size:.78em}.status .grow,.status .room{display:none}.status .break{flex-basis:100%;height:0}.overlay{align-items:flex-start;padding:calc(1.5em + env(safe-area-inset-top)) 1ch 1.5em;overflow-y:auto}.panel{max-width:100%;padding:1em 1.5ch 1.2em}.panel .row{flex-direction:column;gap:.2em;margin:.6em 0}.panel .row-label{width:auto}.panel .token-row{flex-wrap:wrap;width:100%}.panel .token-row input{width:100%;min-width:0}}@media(pointer:coarse){button.link{position:relative;touch-action:manipulation}button.link:after{content:"";position:absolute;inset:-11px -8px}.panel .row-choices,.panel-actions,.panel .token-row{gap:3ch}}.quickbar{display:flex;gap:1ch;align-items:center;padding:.4em 0;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.quickbar::-webkit-scrollbar{display:none}.chip{flex:none;background:none;border:1px solid var(--dim);border-radius:0;padding:.3em 1ch;color:var(--fg);font:inherit;line-height:1.2;white-space:nowrap;cursor:pointer;touch-action:manipulation}.chip:hover,.chip:focus-visible{border-color:var(--fg);outline:none}.chip-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 55%,transparent)}.chip-info{color:var(--dim)}.chip.armed{color:var(--bg);background:var(--danger);border-color:var(--danger)}.chip.kbtoggle{position:sticky;right:0;margin-left:auto;background:var(--bg);box-shadow:-1ch 0 0 var(--bg);color:var(--amber);border-color:color-mix(in srgb,var(--amber) 45%,transparent)}.netpane.compact{white-space:normal;overflow-x:visible;display:flex;flex-direction:column;gap:.35em;max-height:40%;overflow-y:auto;flex:none}.netpane.compact .net-head{display:flex;flex-direction:column}.netpane.compact .net-layer{display:flex;flex-wrap:wrap;gap:.4em 1ch;align-items:baseline}.netpane.compact .net-node{border:1px solid var(--dim);padding:0 .5ch;color:var(--dim)}.netpane.compact .net-node.seen{color:var(--system)}.netpane.compact .net-node.here{color:var(--bg);background:var(--system);border-color:var(--system)}.netpane.compact .net-node.iced{border-color:var(--danger)}.netpane.compact .net-ice{color:var(--danger)}.netpane.compact .net-node.here .net-ice{color:var(--bg)}.netpane.compact .net-foot{display:flex;flex-wrap:wrap;gap:0 2ch;border-top:1px solid var(--dim);padding-top:.3em}.crt .terminal,.crt .title,.crt .panel{text-shadow:0 0 2px currentColor,0 0 8px color-mix(in srgb,currentColor 35%,transparent)}:root[data-theme=plain] .crt .terminal,:root[data-theme=plain] .crt .title,:root[data-theme=plain] .crt .panel{text-shadow:none}.crt .terminal,.crt .title{animation:crt-flicker 8s infinite}.crt:before,.crt:after{content:"";position:fixed;top:var(--vv-top, 0px);left:0;right:0;bottom:auto;height:100%;height:var(--app-height, 100dvh);pointer-events:none}.crt:before{background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%);z-index:20}.crt:after{background:repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.22) 2px 4px);z-index:21}@keyframes crt-flicker{0%,to{opacity:1}49%{opacity:1}50%{opacity:.985}52%{opacity:.97}54%{opacity:1}}@media(prefers-reduced-motion:reduce){.crt .terminal,.crt .title{animation:none}}
