: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;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:15px}*{box-sizing:border-box}.frame{height:100%}.terminal{display:flex;flex-direction:column;height:100%;max-width:100ch;margin:0 auto;padding:0 1.5ch}.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)}.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:0 1.5ch}.title .banner{color:var(--amber);margin:0 0 .5em;font-size:clamp(8px,1.6vw,15px);line-height:1.15;overflow-x:auto}.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:90vh;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;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10}.panel{min-width:min(44ch,90vw);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)}.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{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.55) 100%);z-index:20}.crt:after{content:"";position:fixed;inset:0;pointer-events:none;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}}
