:root{--bg-0: #07120c;--bg-1: #0c1f15;--bg-2: #102a1c;--bg-3: #18402b;--bg-4: #235c3d;--ink-dim: #3f7d5a;--ink-mid: #6fcf97;--ink-hi: #b6ffd0;--ink-max: #e8fff1;--amber: #f2c14e;--amber-dk: #8a6a18;--red: #ff5d5d;--red-dk: #6e1414;--cyan: #5ad7ff;--cyan-dk: #144a5e;--magenta: #d98cff;--magenta-dk: #4a2161;--blockblue: #79b8ff;--rar-starter: var(--ink-dim);--rar-common: var(--ink-mid);--rar-uncommon: var(--cyan);--rar-rare: var(--amber);--rar-special: var(--magenta);--rar-boss: var(--red);--u: 8px;--border: 2px;--radius: 0px;--shadow-hard: 0 var(--border) 0 0 var(--bg-0)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg-0);color:var(--ink-mid);font-family:Courier New,DejaVu Sans Mono,ui-monospace,monospace;font-size:16px;line-height:1.3;-webkit-font-smoothing:none;font-smooth:never;image-rendering:pixelated;overflow:hidden;user-select:none;text-rendering:geometricPrecision}#frame{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(0deg,var(--bg-0),var(--bg-0) 2px,#060f0a 2px,#060f0a 4px);padding:8px}#app{position:relative;width:960px;height:600px;background:var(--bg-1);border:var(--border) solid var(--bg-4);box-shadow:0 0 0 4px var(--bg-0),0 0 24px #0009;overflow:hidden;transform-origin:center center;flex:0 0 auto}.screen{position:absolute;inset:0;display:flex;flex-direction:column;padding:var(--u)}.screen__body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--u)}.topbar{display:flex;align-items:center;gap:var(--u);height:40px;flex:0 0 auto;padding:0 var(--u);background:var(--bg-2);border:var(--border) solid var(--bg-4);font-size:13px;color:var(--ink-mid);white-space:nowrap}.topbar .stat{display:flex;align-items:center;gap:4px}.topbar .stat b{color:var(--ink-hi);font-weight:700}.topbar .stat.hp b{color:var(--ink-max)}.topbar .stat.gold b{color:var(--amber)}.topbar .spacer{flex:1 1 auto}.topbar .seed{color:var(--ink-dim);font-size:11px;letter-spacing:1px}.topbar .programs{display:flex;gap:4px;overflow:hidden}.h-title{color:var(--ink-max);font-size:22px;font-weight:700;letter-spacing:3px;text-shadow:var(--shadow-hard)}.h-sub{color:var(--ink-hi);font-size:15px;font-weight:700;letter-spacing:2px}.muted{color:var(--ink-dim);font-size:12px}.center{text-align:center}.btn{font-family:inherit;font-size:13px;letter-spacing:1px;color:var(--ink-hi);background:var(--bg-3);border:var(--border) solid var(--bg-4);padding:8px 14px;cursor:pointer;text-transform:uppercase;box-shadow:var(--shadow-hard);transition:none;white-space:nowrap}.btn:hover:not(:disabled),.btn.is-focus:not(:disabled){background:var(--bg-4);color:var(--ink-max);border-color:var(--ink-mid)}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:none}.btn:disabled{color:var(--ink-dim);background:var(--bg-2);border-color:var(--bg-3);cursor:not-allowed;box-shadow:none}.btn--primary{color:var(--bg-0);background:var(--ink-mid);border-color:var(--ink-hi)}.btn--primary:hover:not(:disabled),.btn--primary.is-focus:not(:disabled){background:var(--ink-hi);color:var(--bg-0)}.btn--danger{color:var(--ink-max);border-color:var(--red)}.btn--danger:hover:not(:disabled){background:var(--red-dk)}.btn--ghost{background:transparent;box-shadow:none}.btn--sm{font-size:11px;padding:5px 9px}.btn--wide{width:100%;text-align:center}.panel{background:var(--bg-2);border:var(--border) solid var(--bg-4);padding:var(--u)}.panel--raised{background:var(--bg-3)}.row{display:flex;gap:var(--u);align-items:center}.col{display:flex;flex-direction:column;gap:var(--u)}.wrap{flex-wrap:wrap}.fill{flex:1 1 auto;min-width:0}.scroll{overflow-y:auto;overflow-x:hidden}.scroll::-webkit-scrollbar{width:8px}.scroll::-webkit-scrollbar-track{background:var(--bg-1)}.scroll::-webkit-scrollbar-thumb{background:var(--bg-4);border:1px solid var(--bg-2)}.bar{position:relative;height:18px;background:var(--bg-0);border:var(--border) solid var(--bg-4);overflow:hidden}.bar__fill{position:absolute;inset:0 auto 0 0;height:100%;background:var(--ink-mid)}.bar__fill.hp{background:var(--ink-mid)}.bar__fill.hp.low{background:var(--red)}.bar__label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink-max);text-shadow:1px 1px 0 var(--bg-0);letter-spacing:1px}.trace{flex:0 0 auto}.trace__head{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-dim);margin-bottom:4px;letter-spacing:1px}.trace__head .val{color:var(--cyan)}.trace__segs{display:flex;gap:2px;height:16px}.trace__seg{flex:1 1 0;background:var(--bg-0);border:1px solid var(--bg-3)}.trace__seg.on{background:var(--cyan);border-color:var(--cyan)}.trace__seg.tier{border-color:var(--amber)}.trace__seg.on.warn{background:var(--amber);border-color:var(--amber)}.trace__seg.on.hot{background:var(--red);border-color:var(--red)}.trace__countdown{color:var(--red);font-weight:700;font-size:12px;letter-spacing:1px}.pips{display:flex;gap:3px;flex-wrap:wrap}.pip{display:inline-flex;align-items:center;gap:3px;font-size:10px;line-height:1;padding:2px 4px;background:var(--bg-0);border:1px solid var(--bg-4);color:var(--ink-mid);letter-spacing:.5px}.pip b{color:var(--ink-max);font-weight:700}.pip.buff{border-color:var(--cyan-dk);color:var(--cyan)}.pip.buff b{color:var(--cyan)}.pip.debuff{border-color:var(--red-dk);color:var(--red)}.pip.debuff b{color:var(--red)}.pip.block{border-color:var(--blockblue);color:var(--blockblue)}.pip.block b{color:var(--blockblue)}.card{position:relative;width:124px;height:186px;flex:0 0 auto;background:var(--bg-3);border:var(--border) solid var(--bg-4);display:flex;flex-direction:column;cursor:pointer;box-shadow:var(--shadow-hard);overflow:hidden}.card.playable:hover,.card.is-focus{border-color:var(--ink-hi);transform:translateY(-6px);box-shadow:0 8px 0 0 var(--bg-0)}.card.selected{border-color:var(--amber);transform:translateY(-10px);box-shadow:0 10px 0 0 var(--amber-dk)}.card.unplayable{cursor:not-allowed;opacity:.62}.card.unplayable:hover{transform:none}.card__cost{position:absolute;top:-2px;left:-2px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--amber);color:var(--bg-0);font-weight:700;font-size:14px;border:var(--border) solid var(--bg-0);z-index:2}.card__cost.unaffordable{background:var(--red)}.card__name{padding:6px 6px 4px 26px;font-size:11px;font-weight:700;color:var(--ink-max);letter-spacing:.5px;min-height:30px;line-height:1.15;border-bottom:1px solid var(--bg-4)}.card__type{padding:3px 6px;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--bg-0);background:var(--ink-dim)}.card__type.attack{background:var(--red)}.card__type.skill{background:var(--cyan)}.card__type.power{background:var(--magenta)}.card__type.status,.card__type.curse{background:var(--ink-dim)}.card__art{flex:1 1 auto;display:flex;align-items:center;justify-content:center;font-size:30px;color:var(--ink-hi);background:var(--bg-2);min-height:0}.card__desc{padding:4px 5px 5px;font-size:9px;line-height:1.2;color:var(--ink-mid);background:var(--bg-3);min-height:62px;max-height:62px;overflow:hidden}.card.upgraded .card__name{color:var(--amber)}.cardrow{display:flex;align-items:center;gap:var(--u);padding:6px var(--u);background:var(--bg-2);border:var(--border) solid var(--bg-4);cursor:pointer}.cardrow.is-focus,.cardrow:hover{border-color:var(--ink-hi);background:var(--bg-3)}.cardrow .cr-cost{width:22px;height:22px;display:flex;align-items:center;justify-content:center;background:var(--amber);color:var(--bg-0);font-weight:700;font-size:12px;flex:0 0 auto}.cardrow .cr-name{color:var(--ink-hi);font-weight:700;font-size:12px;width:150px;flex:0 0 auto}.cardrow .cr-desc{color:var(--ink-mid);font-size:11px;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.enemies{display:flex;gap:18px;align-items:flex-end;justify-content:center;flex-wrap:wrap;min-height:0}.ice{width:150px;background:var(--bg-2);border:var(--border) solid var(--bg-4);display:flex;flex-direction:column;cursor:pointer;position:relative}.ice.targetable:hover,.ice.is-focus{border-color:var(--red)}.ice.targeting-on{border-color:var(--amber);box-shadow:0 0 0 2px var(--amber-dk)}.ice.dead{opacity:.32;filter:grayscale(1);cursor:default}.ice__intent{height:26px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;font-weight:700;color:var(--bg-0);background:var(--ink-dim);letter-spacing:.5px}.ice__intent.attack{background:var(--red);color:var(--ink-max)}.ice__intent.defend{background:var(--blockblue);color:var(--bg-0)}.ice__intent.buff{background:var(--magenta);color:var(--bg-0)}.ice__intent.debuff,.ice__intent.attackDebuff{background:var(--amber);color:var(--bg-0)}.ice__intent.trace{background:var(--cyan);color:var(--bg-0)}.ice__intent.summon{background:var(--magenta);color:var(--bg-0)}.ice__sprite{height:64px;display:flex;align-items:center;justify-content:center;font-size:38px;color:var(--ink-hi);background:var(--bg-1)}.ice.elite .ice__sprite{color:var(--amber)}.ice.boss .ice__sprite{color:var(--red)}.ice__name{text-align:center;font-size:11px;color:var(--ink-hi);padding:3px;font-weight:700;letter-spacing:.5px}.ice.elite .ice__name:before{content:"★ ";color:var(--amber)}.ice.boss .ice__name:before{content:"☠ ";color:var(--red)}.ice__hp{padding:3px 5px 5px}.ice__pips{padding:0 4px 5px;min-height:16px}.ice__block{position:absolute;top:28px;right:4px;background:var(--blockblue);color:var(--bg-0);font-size:11px;font-weight:700;padding:1px 5px;border:1px solid var(--bg-0);z-index:3}.runner{display:flex;align-items:center;gap:var(--u);padding:var(--u);background:var(--bg-2);border:var(--border) solid var(--bg-4)}.runner__avatar{width:48px;height:48px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--ink-hi);background:var(--bg-1);border:var(--border) solid var(--bg-4)}.cycles{display:flex;gap:4px;align-items:center}.cyc{width:16px;height:16px;background:var(--bg-0);border:2px solid var(--amber-dk)}.cyc.on{background:var(--amber);border-color:var(--amber)}.map-wrap{position:relative;flex:1 1 auto;min-height:0;overflow:auto;background:var(--bg-1);border:var(--border) solid var(--bg-4)}.map-canvas{position:relative}.map-svg{position:absolute;inset:0;pointer-events:none}.mapnode{position:absolute;width:44px;height:44px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;font-size:20px;background:var(--bg-3);border:var(--border) solid var(--bg-4);color:var(--ink-mid);cursor:default;z-index:2}.mapnode.available{cursor:pointer;border-color:var(--ink-hi);color:var(--ink-max);box-shadow:0 0 0 2px var(--bg-0),0 0 10px var(--ink-dim)}.mapnode.available:hover,.mapnode.is-focus{background:var(--bg-4);border-color:var(--amber)}.mapnode.visited{border-color:var(--ink-dim);color:var(--ink-dim);background:var(--bg-2)}.mapnode.current{border-color:var(--amber);color:var(--amber);background:var(--bg-3);box-shadow:0 0 0 2px var(--amber-dk)}.mapnode.boss{width:56px;height:56px;font-size:26px;border-color:var(--red);color:var(--red)}.mapnode.elite{color:var(--amber)}.log{font-size:11px;color:var(--ink-dim);line-height:1.4}.log .e-dmg{color:var(--red)}.log .e-block{color:var(--blockblue)}.log .e-trace{color:var(--cyan)}.log .e-win{color:var(--ink-max)}.float{position:absolute;font-weight:700;font-size:18px;pointer-events:none;z-index:50;text-shadow:1px 1px 0 var(--bg-0);animation:floatUp .9s ease-out forwards}.float.dmg{color:var(--red)}.float.block{color:var(--blockblue)}.float.heal{color:var(--ink-hi)}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-34px)}}.reduced-motion .float{animation:none;opacity:0}.reduced-motion .card.playable:hover,.reduced-motion .card.is-focus,.reduced-motion .card.selected{transform:none}.overlay{position:absolute;inset:0;background:#07120cd6;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--u)}.modal{background:var(--bg-2);border:var(--border) solid var(--ink-mid);box-shadow:0 0 0 4px var(--bg-0);padding:calc(var(--u) * 1.5);max-width:560px;width:100%;max-height:90%;display:flex;flex-direction:column;gap:var(--u)}.title-screen{align-items:center;justify-content:center;gap:calc(var(--u) * 2)}.logo{font-size:64px;letter-spacing:12px;color:var(--ink-max);font-weight:700;text-shadow:3px 3px 0 var(--bg-0),0 0 16px var(--ink-dim)}.logo .z{color:var(--red)}.tagline{color:var(--ink-dim);letter-spacing:4px;font-size:13px}.menu{display:flex;flex-direction:column;gap:var(--u);width:300px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:4px var(--u)}.statline{display:flex;justify-content:space-between;font-size:12px;padding:3px 0;border-bottom:1px solid var(--bg-2)}.statline .k{color:var(--ink-dim)}.statline .v{color:var(--ink-hi);font-weight:700}.compendium-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.codex-item{padding:6px 8px;background:var(--bg-2);border:var(--border) solid var(--bg-4);font-size:11px}.codex-item.locked{opacity:.5}.codex-item .ci-name{color:var(--ink-hi);font-weight:700}.codex-item .ci-meta{color:var(--ink-dim);font-size:10px}.tabs{display:flex;gap:4px}.tab{font-size:12px;padding:6px 12px;background:var(--bg-2);border:var(--border) solid var(--bg-4);color:var(--ink-dim);cursor:pointer;letter-spacing:1px;text-transform:uppercase}.tab.active{background:var(--bg-3);color:var(--ink-max);border-color:var(--ink-hi)}.hand{display:flex;gap:8px;justify-content:center;align-items:flex-end;flex:0 0 auto;min-height:194px;padding-top:8px}.hand-empty{color:var(--ink-dim);font-size:12px;align-self:center}.piles{display:flex;gap:var(--u);font-size:11px;color:var(--ink-dim)}.piles b{color:var(--ink-mid)}.shop-item{display:flex;align-items:center;gap:var(--u)}.shop-price{color:var(--amber);font-weight:700;font-size:12px;width:64px;text-align:right;flex:0 0 auto}.shop-price.cant{color:var(--red)}.sold{color:var(--ink-dim);font-style:normal;letter-spacing:2px;font-size:12px;width:64px;text-align:right;flex:0 0 auto}.toggle{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--bg-2);font-size:13px;color:var(--ink-mid)}.keyhints{flex:0 0 auto;display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:var(--ink-dim);padding:4px var(--u) 0;letter-spacing:.5px}.keyhints kbd{background:var(--bg-3);border:1px solid var(--bg-4);color:var(--ink-mid);padding:1px 4px;font-size:10px}.notice{font-size:11px;color:var(--amber);padding:4px 8px;background:var(--bg-2);border:1px solid var(--amber-dk)}.notice.err{color:var(--red);border-color:var(--red-dk)}.choice{text-align:left;padding:10px 14px;white-space:normal;line-height:1.3}
