:root{color-scheme:dark;--bg:#111318;--panel:#1a1d24;--line:#333741;--text:#ececf0;--muted:#a9adb9;--gold:#e5bd76;--red:#ce6d72;font-family:"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.65}button,input{font:inherit}button{color:inherit;background:#252933;border:1px solid #424754;border-radius:6px;padding:.55rem .95rem;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}button:hover:enabled{background:#333946;border-color:var(--gold)}button:disabled{opacity:.45;cursor:wait}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:2.25rem;line-height:1.3;letter-spacing:.025em;margin-bottom:1rem}h2{font-size:1.15rem;margin:0}h3{font-size:1rem;margin-bottom:.7rem}p{margin-bottom:1rem}[hidden]{display:none!important}.topbar{max-width:1500px;margin:auto;padding:1.25rem 3rem;display:flex;align-items:center;gap:2rem;border-bottom:1px solid var(--line)}.brand{font-size:1.25rem;letter-spacing:.12em;font-weight:700}.brand span{display:block;font-size:.75rem;letter-spacing:.16em;color:var(--gold);font-weight:400}.edition{color:var(--muted);font-size:.875rem;margin-left:auto}.topbar button{font-size:.875rem;background:transparent}main{max-width:1500px;margin:auto;padding:2.5rem 3rem}.eyebrow{color:var(--gold);font-size:.75rem;letter-spacing:.13em;display:block;margin-bottom:.75rem}.section-heading,.run-heading{display:flex;justify-content:space-between;align-items:center;gap:2rem;margin:1.5rem 0 2rem}.section-heading p{color:var(--muted);margin:0}.characters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.character{text-align:left;display:flex;flex-direction:column;position:relative;min-height:350px;padding:1.5rem 1.2rem;border-top:3px solid var(--accent);overflow:hidden;background:linear-gradient(150deg,var(--surface),#191c22 70%);--accent:#d08672;--surface:#392a2a}.character-1{--accent:#86b7a5;--surface:#253932}.character-2{--accent:#d9bb74;--surface:#393424}.character-3{--accent:#af9ee3;--surface:#302a40}.character-4{--accent:#9fbbcf;--surface:#253542}.character:hover:enabled{transform:translateY(-5px);border-color:var(--accent);background:var(--surface)}.character-number{font-family:Georgia,serif;font-size:4.5rem;line-height:1.1;color:var(--accent);margin-bottom:2.5rem;opacity:.75}.character .eyebrow{color:var(--accent);font-size:.75rem;letter-spacing:.08em}.character h2{font-size:1.2rem;margin:.3rem 0 .9rem}.character p{font-size:.875rem;color:#bec0c9;line-height:1.8}.character-action{font-size:.875rem;margin-top:auto;padding-top:1rem;color:var(--accent)}.local-note{font-size:.8125rem;color:var(--muted);margin:1.5rem 0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:1.5rem;min-width:0}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.panel-heading>span{font-size:.875rem;color:var(--muted)}.primary{background:var(--gold);border-color:var(--gold);color:#1b1710;font-weight:650}.primary:hover:enabled{background:#f1cd8e}.stats{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:8px;margin:0 0 1.5rem;background:#181b21}.stat{padding:1rem 1.5rem;border-right:1px solid var(--line)}.stat:last-child{border:0}.stat span{display:block;color:var(--muted);font-size:.875rem}.stat strong{font-size:1.45rem;font-weight:550;font-variant-numeric:tabular-nums}.stat:first-child strong{color:#e88a8c}.stat:nth-child(2) strong,.stat:nth-child(4) strong{color:var(--gold)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:1.5rem}.play-area{display:grid;gap:1.5rem;align-content:start}.sidebar{align-self:start}.sidebar h2{margin-bottom:1rem}.sidebar h3{margin-top:1.75rem;color:#c8c9d0}.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.quick-actions button{font-size:.875rem;padding:.5rem .3rem}.inventory{display:flex;gap:.5rem;flex-wrap:wrap}.inventory span{padding:.25rem .6rem;border:1px solid #40434d;border-radius:4px;font-size:.875rem}.inventory button{font-size:.875rem;text-align:left}.boss{border-top:1px solid var(--line);margin:1.75rem 0 0;padding-top:1rem;color:var(--gold);font-size:.875rem}.enemies{display:flex;gap:1rem;flex-wrap:wrap}.enemy{flex:1 1 180px;text-align:left;min-width:0;padding:1rem;background:#24262e}.enemy[aria-pressed=true]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:#302d27}.enemy h3{font-size:1.1rem}.enemy p{font-size:.875rem;margin-bottom:.6rem}.enemy .intent{color:#efa3a0}.enemy progress{width:100%;height:7px;accent-color:var(--red);display:block;margin:.7rem 0}.status-text{font-size:.875rem;color:var(--muted);margin:.8rem 0 0;white-space:pre-wrap}.hand{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.8rem;align-items:stretch}.playing-card{position:relative;text-align:left;padding:1rem;min-height:235px;display:flex;flex-direction:column;align-items:flex-start;background:linear-gradient(160deg,#30323c,#23252c);border-color:#565b68}.playing-card:hover:enabled{transform:translateY(-3px)}.type-attack{border-top:3px solid #cc7b7b}.type-skill{border-top:3px solid #8faeba}.type-power{border-top:3px solid #b09ad3}.card-cost{display:inline-grid;place-items:center;min-width:2rem;min-height:2rem;padding:0 .2rem;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-size:1.1rem}.card-type{font-size:.75rem;color:var(--muted);position:absolute;right:1rem;top:1.2rem}.playing-card h3{margin:1rem 0 .5rem}.card-description{font-size:.875rem;white-space:pre-wrap;line-height:1.7}.card-preview{font-size:.8125rem;color:var(--gold)}.card-index{font-size:.75rem;color:var(--muted);margin-top:auto}.hint{font-size:.875rem;color:var(--muted)}.piles{display:flex;gap:.6rem;margin-top:1.25rem;flex-wrap:wrap}.piles button{font-size:.875rem;background:transparent}.node-view{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.9375rem;line-height:1.85;max-height:500px;overflow-y:auto}.choices{display:grid;gap:.65rem;margin-top:1rem}.choice{text-align:left;background:#282b31;border-left:3px solid var(--gold)}.console{margin-top:1.5rem}.log{max-height:320px;overflow-y:auto;scrollbar-color:#535560 transparent}.log-entry{border-bottom:1px solid var(--line);padding:1rem 0}.log-entry:first-child{padding-top:0}.log-command{color:var(--gold);font-family:Consolas,monospace;font-size:.875rem;margin-bottom:.5rem}.log pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:.9375rem;margin:0;color:#d0d2da}.command-hints{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}.hint-button{font: .8125rem Consolas,monospace;padding:.35rem .6rem;background:transparent}form{margin-top:1.25rem}form label{display:block;font-size:.875rem;margin-bottom:.5rem;color:var(--muted)}.command-line{display:flex;gap:.65rem}.command-line input{min-width:0;flex:1;border:1px solid #474d59;background:#11151b;border-radius:5px;color:var(--text);padding:.75rem 1rem}.confirmation{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:1rem;margin-bottom:1rem;background:#393124;border:1px solid #927444;border-radius:6px}.confirmation span{flex:1;min-width:200px}.error{white-space:pre-wrap;overflow-wrap:anywhere;padding:1rem;margin-bottom:1.5rem;background:#3b2228;border:1px solid #a35663;border-radius:7px}.loading{max-width:650px;margin:7rem auto;text-align:center}.loading p{color:var(--muted)}.loading progress{display:block;width:220px;height:5px;margin:2rem auto;accent-color:var(--gold)}footer{max-width:1500px;margin:1rem auto 0;border-top:1px solid var(--line);padding:1.5rem 3rem;display:flex;justify-content:space-between;color:var(--muted);font-size:.8125rem}
@media(min-width:1300px){.hand{grid-template-columns:repeat(auto-fit,minmax(160px,210px))}}@media(max-width:1100px){.characters{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace{grid-template-columns:minmax(0,1fr) 210px}.topbar,main,footer{padding-left:1.5rem;padding-right:1.5rem}.character{min-height:320px}.hand{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media(max-width:780px){.workspace{grid-template-columns:1fr}.characters{grid-template-columns:repeat(2,minmax(0,1fr))}.character{min-height:290px}.character-number{margin-bottom:1.5rem}.section-heading{display:block}.section-heading p{margin-top:1rem}.sidebar{display:block}.stats{grid-template-columns:repeat(3,1fr);gap:0}.stat{padding:.8rem;border:0}.stat strong{font-size:1.15rem}.edition{display:none}.topbar{gap:.7rem;padding:1rem}.topbar button{margin-left:auto}.brand{font-size:1.05rem}.brand span{font-size:.75rem}.topbar button{padding:.45rem .6rem}.panel{padding:1rem}main{padding:1.5rem 1rem}h1{font-size:1.8rem}.run-heading{align-items:start;gap:1rem}.run-heading button{font-size:.875rem}.hand{grid-template-columns:repeat(2,minmax(0,1fr))}.playing-card{min-height:220px}.panel-heading{flex-wrap:wrap}.loading{margin:4rem auto}.quick-actions{grid-template-columns:repeat(3,1fr)}footer{padding:1.25rem 1rem;gap:1rem}.command-line button{padding:.5rem .75rem}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* Relic details: native modal supports touch, keyboard focus and Escape. */
.inventory .relic-button{padding:.25rem .6rem;border-color:#66563b;color:var(--gold);overflow-wrap:anywhere;max-width:100%}
.relic-dialog{color:var(--text);background:var(--panel);border:1px solid #75613f;border-radius:10px;width:min(36rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:1.5rem;overflow:auto;box-sizing:border-box}
.relic-dialog::backdrop{background:rgb(0 0 0 / .7)}
.relic-dialog .panel-heading{align-items:flex-start}
.relic-dialog h2{color:var(--gold);overflow-wrap:anywhere}
.relic-dialog .panel-heading button{flex-shrink:0}
.relic-dialog h3{color:var(--muted);font-size:.875rem;margin-top:1.5rem;margin-bottom:.5rem}
.relic-info,.relic-story{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}
.relic-story{margin-bottom:0}
