:root{color-scheme:dark;--ink:#dfe7cb;--muted:#91a395;--green:#badc8c;--border:#354b42;--amber:#dda466;--cyan:#81cbd1}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#102320;color:var(--ink);font-family:Consolas,'Courier New',monospace;display:flex;flex-direction:column}button{font:inherit;cursor:pointer;color:var(--ink);background:#233b31;border:1px solid #607553;padding:12px 19px;box-shadow:3px 3px 0 #0b1a16}button:hover{background:#345044;border-color:#b1cd89}button:focus-visible{outline:2px solid #e1f5ba;outline-offset:4px}.small{font-size:11px;padding:10px 13px;white-space:nowrap}.hidden{display:none!important}#topbar{flex:none;min-height:83px;display:flex;gap:20px;align-items:center;padding:16px 28px;background:#152823;border-bottom:1px solid var(--border);z-index:2}.brand{display:flex;align-items:center;gap:14px}.brand-mark{color:var(--green);font-size:34px}.brand h1{font:24px Georgia,serif;letter-spacing:5px;margin:0 0 6px}.brand span:not(.brand-mark){font-size:8px;letter-spacing:2px;color:#98ab96}.brand em{font-style:normal;margin-left:8px;border:1px solid #53634b;padding:2px 4px;letter-spacing:0}.run-stats{margin-left:auto;display:flex;gap:38px;text-align:right}.run-stats b{display:block;font-size:26px;font-weight:400;letter-spacing:1px}.run-stats span{font-size:8px;letter-spacing:1px;color:var(--muted)}#stage{position:relative;flex:1;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(45deg,#10231f,#10231f 4px,#112520 4px,#112520 8px)}#game{flex:none;image-rendering:pixelated;cursor:crosshair;outline:none}#game:focus-visible{outline:none}.stage-label{position:absolute;top:16px;left:26px;font-size:9px;letter-spacing:2px;color:#b0bc95;pointer-events:none;text-shadow:1px 2px #13281e}.stage-label #objective{display:block;font-size:8px;letter-spacing:1px;color:#93a78f;margin-top:8px}.diamond{color:#bdd78f;margin-right:5px}#toast{position:absolute;top:57px;left:50%;transform:translateX(-50%);max-width:80%;text-align:center;background:#14281fe8;border:1px solid #536c44;padding:9px 14px;font-size:11px;pointer-events:none;opacity:0;transition:opacity .2s}.map{position:absolute;right:23px;top:17px;background:#14271fe8;border:1px solid #546646;padding:6px}.map canvas{display:block;width:100px;height:100px;image-rendering:pixelated}.map span{display:block;text-align:center;font-size:7px;letter-spacing:1px;color:#a6b592;margin-top:4px}.map i{color:var(--green);font-style:normal}#bossbar{position:absolute;top:17px;left:50%;transform:translateX(-50%);width:min(390px,55%);background:#17261fee;border:1px solid #765542;padding:10px 13px;color:#e7bd88}#bossbar>div:first-child{display:flex;justify-content:space-between;gap:8px;font-size:10px;letter-spacing:1px}#bossbar small{display:block;font-size:8px;color:#bda68b;margin-top:5px}#bossfill{background:#d59a60}#bossbar .meter{margin-top:7px}.meter{height:4px;background:#314237;overflow:hidden}.meter i{display:block;height:100%;width:0;background:var(--green)}#commandbar{flex:none;background:#172a24;border-top:1px solid var(--border);padding:12px 26px 17px;z-index:2}.experience{display:flex;align-items:center;gap:18px;margin-bottom:14px}.experience>div:first-child{display:flex;justify-content:space-between;gap:20px;min-width:250px;font-size:9px;letter-spacing:1px}.experience>div:first-child span:last-child{color:var(--muted)}.experience>.meter{flex:1;height:3px}.commands{display:grid;grid-template-columns:1.05fr 1.25fr 1fr 1fr auto;gap:22px;align-items:center}.movement strong{display:block;font-size:9px;color:#d1d8b9;margin-bottom:7px;letter-spacing:1px}.movement span{display:block;font-size:8px;color:var(--muted);line-height:1.8}kbd{font:8px Consolas,monospace;display:inline-block;border:1px solid #5b7156;color:#c9dbb1;padding:2px 4px;background:#20362c;white-space:nowrap}.ability>div:first-child{display:flex;align-items:center;gap:8px}.ability strong{font-size:11px;white-space:nowrap}.ability b{margin-left:auto;font-size:8px;color:#acbe8a;font-weight:400;white-space:nowrap}.ability>span{display:block;font-size:8px;color:var(--muted);margin:8px 0}.ability .meter{height:3px}.ability .meter i{width:100%}.fury strong{color:var(--amber)}.fury .meter i{background:var(--amber)}.ward strong{color:var(--cyan)}.ward .meter i{background:var(--cyan)}.veil{position:absolute;inset:0;background:#081911b8;backdrop-filter:blur(3px);z-index:4;display:flex;align-items:center;justify-content:center;overflow:auto;padding:22px}.panel{width:min(650px,100%);max-height:100%;overflow:auto;text-align:center;padding:30px 38px;background:#192f27;border:1px solid #819466;box-shadow:8px 8px 0 #071b17,0 15px 80px #07191199}.eyebrow{font-size:9px;letter-spacing:3px;color:#b6ca8e}.panel h2{font:40px Georgia,serif;letter-spacing:5px;margin:17px 0 9px;color:#e4ebca}.panel h3{font:27px Georgia,serif;color:#dfe8bc;margin:16px 0}.panel p{font-size:11px;line-height:1.8;color:#aebfa4}.primary{background:#bed992;color:#172820;font-weight:bold;border-color:#daedb5;min-width:210px;margin-top:10px}.primary:hover{background:#d5ebaf;color:#172820}.lessons{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin:24px 0;text-align:left}.lessons strong{font-size:10px;color:#dce7bc;display:block;margin-bottom:7px}.lessons span{font-size:10px;color:#9eb397;line-height:1.7}.recordline{border-top:1px solid #3c523e;margin-top:22px;padding-top:15px;font-size:9px!important;color:#91a783!important}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.card{text-align:left;min-height:190px;padding:18px 13px;background:#213c2e;display:flex;flex-direction:column}.card .icon{font-size:29px;color:#bed692;margin:8px 0 14px}.card .family{font-size:8px;color:#9bb585;letter-spacing:1px}.card strong{font-size:12px;line-height:1.5;min-height:38px}.card .desc{font-size:10px;line-height:1.6;color:#adbf9f;margin-top:8px}.card .rank{margin-top:auto;padding-top:13px;font-size:8px;color:#d4dda7}.results{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}.results b{display:block;font-size:23px;color:#d6e6b1;font-weight:normal}.results span{font-size:8px;color:#9bae93}.buttons{display:flex;gap:14px;justify-content:center;align-items:center;margin-top:16px}.buttons .primary{margin:0}.build{font-size:9px;line-height:1.8;color:#a3b492;border-top:1px solid #40533d;padding-top:13px}.storage-note{color:#d7ac7d!important}@media(min-width:1600px){#topbar{padding-left:46px;padding-right:46px}#commandbar{padding-left:46px;padding-right:46px}.commands{gap:36px}}@media(max-width:1000px){.commands{grid-template-columns:1.3fr 1fr 1fr auto;gap:13px}.movement{display:none}.brand-mark{display:none}.map{display:none}.run-stats{gap:22px}}@media(max-width:650px){#topbar{min-height:72px;padding:12px;gap:9px}.brand h1{font-size:18px;letter-spacing:2px}.brand span:not(.brand-mark){font-size:6px;letter-spacing:0}.brand em{display:none}.run-stats{gap:12px}.run-stats b{font-size:19px}.run-stats span{font-size:6px;letter-spacing:0}#pause{padding:9px}.stage-label{left:13px;top:12px;font-size:8px}.stage-label #objective{font-size:7px}#commandbar{padding:10px 12px}.commands{grid-template-columns:1fr 1fr;gap:12px}.ritual{grid-column:1 / -1}.commands>#sound{position:absolute;right:12px;bottom:94px;padding:5px 8px;font-size:8px}.ritual>div:first-child{padding-right:65px}.experience{margin-bottom:12px;gap:10px}.experience>div:first-child{min-width:180px;font-size:8px;gap:9px}.ability>span{font-size:7px;white-space:nowrap}.ability strong{font-size:10px}.ability b{font-size:7px}.ability>div:first-child{gap:5px}.panel{padding:22px 18px}.panel h2{font-size:29px}.panel h3{font-size:23px}.lessons{gap:9px;margin:17px 0}.lessons strong{font-size:9px}.lessons span{font-size:8px}.cards{grid-template-columns:1fr;margin-top:14px;gap:8px}.card{min-height:0;padding:12px;display:grid;grid-template-columns:30px 1fr auto;column-gap:9px}.card .icon{grid-column:1;grid-row:1 / 4;font-size:24px;margin:7px 0}.card .family{grid-column:2;grid-row:1}.card strong{grid-column:2;grid-row:2;min-height:0;font-size:11px}.card .desc{grid-column:2;grid-row:3;margin-top:3px;font-size:9px}.card .rank{grid-column:3;grid-row:2;padding:0;font-size:7px}.veil{padding:12px}.panel .recordline{margin-top:15px;padding-top:10px}#bossbar{top:42px;width:90%;max-width:390px}#toast{top:88px;font-size:9px;max-width:90%}.buttons{flex-wrap:wrap}.results{gap:9px}.results b{font-size:19px}}@media(max-height:650px){.panel{padding-top:16px;padding-bottom:16px}.lessons{margin:12px 0}.panel h2{font-size:28px;margin-top:10px}.panel p{margin:8px 0}.recordline{margin-top:12px;padding-top:8px}.panel h3{margin:8px 0}.card{min-height:145px}.card .icon{margin:0 0 6px}.cards{margin-top:12px}}

/* Keep combat messages clear of the boss health bar. */
#stage:has(#bossbar:not(.hidden)) #toast{top:100px}@media(max-width:650px){#stage:has(#bossbar:not(.hidden)) #toast{top:125px}.ability>span{white-space:normal;line-height:1.5;min-height:21px}}
/* v0.3: doctrines, six-line builds and discovered knowledge */
.doctrines{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0 12px}.doctrine{text-align:left;padding:14px 11px;background:#203a2e;border-color:#526b4e}.doctrine[aria-pressed=true]{background:#354d32;border-color:#d2e9a8;box-shadow:inset 0 0 0 1px #b5cf89,3px 3px #0b1a16}.doctrine-icon{display:block;font-size:26px;color:#c4da9c;margin-bottom:10px}.doctrine strong{display:block;font-size:11px;margin-bottom:9px}.doctrine>span:last-child{font-size:9px;line-height:1.7;color:#b3c4a5;display:block}.doctrine-help{font-size:9px!important}.book-button{display:block;margin:13px auto 0;padding:8px 12px;font-size:10px;background:transparent;border-color:#4b6249}.quick-help{font-size:8px!important}.upgrade-build{font-size:9px;line-height:1.7;color:#afc28e;border:1px solid #405a40;padding:8px;margin-top:12px}.discoveries{text-align:left;margin:18px 0}.discoveries article{padding:13px;margin-bottom:9px;border:1px solid #4c6548;background:#21382c}.discoveries strong{font-size:13px;color:#cee4a9}.discoveries p{font-size:10px;margin:7px 0}.discoveries small{font-size:9px;color:#d4caa0}.discoveries .unknown{opacity:.65}.run-doctrine,.run-synergies{color:#c6d8a1!important}.build-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;font-size:9px;letter-spacing:1px;color:#acc28a}.build-strip details{position:relative;z-index:5}.build-strip summary{cursor:pointer;display:flex;align-items:center;gap:14px;list-style:none}.build-strip summary::-webkit-details-marker{display:none}#build-slots{display:flex;gap:5px}#build-slots>span{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid #546b49;background:#253c2c;width:31px;height:22px;font-size:15px;color:#d2e4af}#build-slots small{font-size:8px}#build-slots .empty{color:#6e8468;background:#192f25}#build-content{position:absolute;right:0;bottom:32px;width:300px;max-width:85vw;max-height:45vh;overflow:auto;box-shadow:5px 5px #0b1e17;background:#1b3327;border:1px solid #9cb678;padding:15px;font-size:10px;letter-spacing:0}#build-content p{padding:6px 0;margin:0;color:#c2d4ae;line-height:1.5}#build-content b{float:right}#build-content .synergy-list{margin-top:8px;border-top:1px solid #536746;color:#dedbb0}#wave-status{position:absolute;left:26px;top:55px;font-size:10px;color:#f2bd87;padding:8px;background:#2e3223e8;border:1px solid #b98f5e;pointer-events:none}#discovery-toast{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);width:min(450px,90%);background:#1a3328f5;border:1px solid #c4d78a;padding:13px;z-index:3;text-align:center;pointer-events:none}#discovery-toast strong{display:block;color:#e5eeb3;font-size:14px;margin-bottom:6px}#discovery-toast span{font-size:10px;line-height:1.7;color:#bfd4a4}button:disabled{cursor:default;opacity:.5}.panel{width:min(720px,100%)}
@media(max-width:650px){.doctrines{grid-template-columns:1fr;gap:7px;margin:13px 0}.doctrine{display:grid;grid-template-columns:29px 1fr;column-gap:10px;padding:9px 12px}.doctrine-icon{grid-column:1;grid-row:1/3;margin:2px 0;font-size:22px}.doctrine strong{grid-column:2;grid-row:1;font-size:11px;margin:0 0 4px}.doctrine>span:last-child{grid-column:2;grid-row:2;font-size:8px;line-height:1.5}.panel h2{margin-top:10px}.panel>p{font-size:10px}.book-button{font-size:9px;margin-top:10px}.build-strip{font-size:8px;letter-spacing:0}#build-slots{gap:3px}#build-slots>span{width:23px;height:19px;font-size:12px;gap:2px}.build-strip summary{gap:7px;font-size:7px}#wave-status{left:12px;top:45px;font-size:9px}#discovery-toast{bottom:10px;padding:10px}#discovery-toast strong{font-size:12px}#discovery-toast span{font-size:9px}.upgrade-build{font-size:8px}.commands>#sound{bottom:95px}.card .family{font-size:7px;line-height:1.5}}

.build-strip{flex-wrap:wrap}#enemy-scaling{color:#e6ad96;font-size:8px;letter-spacing:0}

#retreat-status{position:absolute;bottom:70px;left:50%;transform:translateX(-50%);padding:8px 12px;border:1px solid #e2bc7c;background:#202f29ed;color:#f6cf88;font-size:10px;z-index:4;pointer-events:none;text-align:center;max-width:85%}@media(max-width:650px){#retreat-status{font-size:9px;bottom:85px;width:80%}}

/* v0.8: relic information remains separate from spell and boss warnings. */
#commandbar:has(details[open]){z-index:6}
#relic-overview{letter-spacing:0;max-width:100%;color:#dfbbbc}#relic-name{font-size:9px}#relic-content{position:absolute;left:0;bottom:28px;width:290px;max-width:85vw;padding:14px;border:1px solid #ba929e;background:#24362f;line-height:1.7;box-shadow:4px 4px #0b1e17}
#tomb-status{position:absolute;left:16px;bottom:16px;max-width:38%;background:#202c30ed;border:1px solid #a389b6;color:#dec9ec;padding:8px;font-size:9px;pointer-events:none;z-index:2}
@media(max-width:650px){#tomb-status{bottom:auto;top:128px;left:12px;max-width:90%;font-size:8px;padding:6px}#relic-name{font-size:8px}.build-strip{gap:7px}#stage:has(#bossbar:not(.hidden)) #tomb-status{display:none}}

#relic-overview{position:relative;z-index:5}#relic-name{background:transparent;border:0;box-shadow:none;padding:3px 0;text-align:left;color:inherit}#relic-content[hidden]{display:none}#commandbar:has(.relic-open){z-index:6}

/* v0.94 — weathered stone, old brass and bone. The world sample is decorative. */
:root{--ink:#e4dfc8;--muted:#a5a393;--green:#bccf91;--border:#4f4c44;--amber:#e0aa70;--cyan:#97c3cc}
body{background:#171b20;color:var(--ink)}
#topbar,#commandbar{background:#232529;border-color:#626052;box-shadow:inset 0 3px #393a35,inset 0 -3px #171b20}
#topbar{padding-top:13px;padding-bottom:13px;border-bottom-width:3px}
.brand h1{font-family:Consolas,'Courier New',monospace;font-weight:bold;font-size:25px;letter-spacing:4px;color:#e7dcc0;text-shadow:2px 2px #0b1118}
.brand-mark{color:#b8aa80;text-shadow:2px 2px #10151c}.brand span:not(.brand-mark){color:#a8a28f}.brand em{border-color:#676451;color:#cbbd98}
.run-stats{gap:32px}.run-stats b{color:#e7dcc0;font-weight:bold;font-variant-numeric:tabular-nums}.run-stats>div{padding-left:16px;border-left:2px solid #454740}.run-stats span{font-size:9px;color:#aea995}
#stage{background:repeating-linear-gradient(90deg,#171c22 0px,#171c22 7px,#1a2025 7px,#1a2025 8px)}
.stage-label{color:#ccc1a1;text-shadow:2px 2px #151b20}.stage-label #objective{color:#aaa995}.diamond{color:#c5ad78}
button{border:2px solid #696752;background:#303631;color:#ded9bf;box-shadow:3px 3px #10161b,inset 0 2px #42493c;border-radius:0;transition:background .12s}
button:hover{background:#414b3d;border-color:#b8bd91}button:focus-visible{outline-color:#e4d494}
.primary{background:#bdc68b;border-color:#e0dbab;color:#232c25;box-shadow:3px 3px #10161b,inset 0 2px #e0dfa9}.primary:hover{background:#d4db9e;color:#202923}
kbd{background:#20252a;border-color:#686956;color:#d8d0ac;box-shadow:0 2px #11191d;padding:3px 5px;font-size:9px}
#commandbar{padding-top:12px;padding-bottom:12px;border-top-width:3px}
.build-strip{color:#bcbca4;letter-spacing:.5px;margin-bottom:10px}#build-slots>span{background:#303630;border-color:#6b6a55;color:#d6d9b4}#build-slots .empty{background:#242a29;color:#757b67}
#build-content,#relic-content{background:#252c2c;border:2px solid #868168;box-shadow:4px 4px #11181e;color:#ddd7bb}
.experience{margin-bottom:10px;gap:18px}.experience>.meter{height:6px;border:1px solid #78775b;background:#171d21}.meter{background:#151d21}.experience>div:first-child{font-size:10px}
.commands{gap:12px;grid-template-columns:1fr 1.3fr 1fr 1fr auto;align-items:stretch}
.movement{align-self:center}.movement strong{color:#c6c4aa}.movement span{color:#a4ab9c}
.ability{padding:10px 10px 8px;background:#1d2528;border:1px solid #535949;border-top:3px solid #879370;box-shadow:inset 0 1px #293530}
.ability.fury{border-top-color:#b77c50}.ability.ward{border-top-color:#6e9ba7}.ability strong{font-size:12px}.ability b{color:#c3cbac;font-size:9px}.ability>span{font-size:9px;line-height:1.5;min-height:27px;margin:7px 0}.ability .meter{height:4px}.ability-icon{width:24px;height:24px;flex:none;image-rendering:pixelated}
.ability>div:first-child{gap:7px}.commands>#sound{align-self:center}.map{background:#21292bed;border:2px solid #6d715a}.map span{color:#c0baa0}
#toast,#wave-status,#tomb-status,#retreat-status,#discovery-toast{background:#222b2def;box-shadow:3px 3px #10171d;border-width:2px;color:#d8d3b5}
#bossbar{background:#2e252bed;border:2px solid #9d7958;box-shadow:4px 4px #12181c;color:#e8c293}#bossfill{background:#c1815c}
.veil{background:#0d141bbd;backdrop-filter:none}
.panel{background:#282d2e;border:3px solid #827a60;box-shadow:inset 0 0 0 3px #363d38,8px 8px #11181e;padding:30px 34px}
.panel h2,.panel h3{font-family:Consolas,'Courier New',monospace;font-weight:bold;color:#e3d7b3;text-shadow:2px 2px #151c23}.panel h2{font-size:38px}.panel h3{font-size:25px}.panel p{color:#b8bba8;font-size:12px}.eyebrow{color:#c2b182}
.doctrine{background:#232b2d;border-color:#575f50}.doctrine[aria-pressed=true]{background:#3b4635;border-color:#ccd294;box-shadow:inset 0 0 0 2px #606e4a,3px 3px #10191d}.doctrine>span:last-child{color:#b5bfad}.doctrine strong{color:#e1d9b9}.doctrine-icon{color:#c2c797}
.card{background:#222b2d;border:2px solid #7f8264;border-top:5px solid #b6b78a;box-shadow:4px 4px #11191e}.card:hover{background:#344139}.card .family{color:#b3c397}.card strong{color:#eee0bb}.card .desc{color:#bfc7b5}.card .rank{color:#ddd4a5;border-top:1px solid #4f5b49;margin-top:14px}.card .icon{color:#c9d195}
.upgrade-build,.recordline,.build{border-color:#58604f;color:#b8bea4}.results{background:#202829;padding:15px;border-top:2px solid #74775b;border-bottom:2px solid #444d42}.results b{color:#e1d5b0}.results span{color:#abb69c}.discoveries article{background:#202b2b;border-color:#5b6853}
@media(max-width:1150px){.commands{grid-template-columns:1.3fr 1fr 1fr auto}.movement{display:none}.ability-icon{width:20px;height:20px}.ability strong{font-size:11px}.ability>div:first-child{gap:5px}.ability>span{font-size:8px}}
@media(max-width:650px){#topbar{padding:10px 12px;gap:8px;min-height:70px}.brand h1{font-size:18px;letter-spacing:2px}.run-stats{gap:9px}.run-stats>div{padding-left:6px;border-left-width:1px}.run-stats b{font-size:19px}.run-stats span{font-size:6px}.brand span:not(.brand-mark){font-size:6px}#commandbar{padding:9px 10px}.commands{grid-template-columns:1fr 1fr;gap:7px}.ability{padding:7px;border-top-width:2px}.ability strong{font-size:10px}.ability b{font-size:8px}.ability>span{font-size:8px;min-height:24px;margin:5px 0}.ability-icon{width:20px;height:20px}.ability kbd{font-size:8px;padding:2px 4px}.ritual>div:first-child{padding-right:0}.ritual>span{min-height:0}.commands>#sound{position:static;grid-column:1 / -1;justify-self:end;padding:4px 10px;min-height:25px;font-size:9px}.experience{gap:10px;margin-bottom:8px}.experience>div:first-child{font-size:8px;min-width:175px}.build-strip{gap:5px;margin-bottom:7px}.panel{padding:20px 15px}.panel h2{font-size:29px}.panel h3{font-size:22px}.panel p{font-size:10px}.card .rank{margin-top:0;border-top:0}.card{border-top-width:3px}.map{display:none}}

/* v0.95: settings stay outside the battlefield and wrap on small screens. */
.visual-settings{display:flex;flex-direction:column;justify-content:center;gap:8px}.visual-settings button{font-size:9px;padding:7px 9px;white-space:nowrap}
@media(max-width:650px){.visual-settings{grid-column:1 / -1;flex-direction:row;justify-content:flex-end}.visual-settings #sound{position:static}.visual-settings button{padding:4px 9px;min-height:25px}}

/* v0.96 — Gravekeeper's desk. Static patina; no full-screen filters or animation. */
:root{--ink:#e1d6b9;--muted:#b0ae97;--green:#b8c58c;--amber:#d7a471;--cyan:#9fc2c7;--border:#665d48}
body{background:#131b1d;color:var(--ink)}
#topbar,#commandbar{background-color:#292d2a;background-image:repeating-linear-gradient(0deg,transparent 0 7px,#11191924 7px 8px),linear-gradient(100deg,#38382e,#252d2b 43%,#34342d);border-color:#8b7954;box-shadow:inset 0 2px #b09c693d,inset 0 -4px #131b1d,0 2px #101719}
#topbar{min-height:86px;border-bottom:4px double #8b7954;padding-top:10px;padding-bottom:10px;gap:22px}
.brand{gap:9px}.brand-mark{display:block!important;width:48px;height:48px;flex:none;font-size:0;background:var(--seal-legion) center / 48px no-repeat;image-rendering:pixelated}
.brand h1{font-family:Georgia,'Times New Roman',serif;font-size:27px;letter-spacing:5px;color:#e3d0a6;text-shadow:0 2px #101719;margin-bottom:5px}.brand span:not(.brand-mark){color:#b0a386;letter-spacing:1.7px}.brand em{background:#192322;border:1px solid #776a4f;color:#c7b88f}
.run-stats{gap:12px}.run-stats>div{position:relative;min-width:82px;padding:7px 15px;border:1px solid #74684b;border-top:2px solid #a08b5d;background:#151f1fc2;box-shadow:inset 0 0 0 3px #262e28,2px 2px #121b1b;text-align:center}.run-stats>div::after{content:'';position:absolute;right:3px;bottom:3px;width:3px;height:3px;background:#897753}.run-stats b{font-size:25px;color:#e5d6af}.run-stats span{font-size:8px;letter-spacing:1px;color:#b4ad93}
#pause{background:#3b3b2d;border-color:#9b885e;box-shadow:inset 0 0 0 2px #242d28,2px 3px #11191c;font-size:17px;padding:10px 14px}
#stage{background-color:#141d20;background-image:repeating-linear-gradient(90deg,transparent 0 47px,#91826408 47px 48px),linear-gradient(90deg,#161e20,#202725 50%,#161e20)}
.stage-label{padding:9px 12px;border-left:2px solid #a18b5c;background:linear-gradient(90deg,#182122e8,#18212200);font-size:9px;color:#d6c5a0;left:16px;top:14px}.stage-label #objective{color:#b4ae96}.diamond{color:#b9a373}
.map{border:3px double #97815b;padding:8px;background:#202a28;box-shadow:3px 4px #10191c}.map span{color:#bdb18f;letter-spacing:1px;margin-top:7px}
#commandbar{border-top:4px double #94805b;padding-top:11px;padding-bottom:12px}
.build-strip{border-bottom:1px solid #6a62474f;padding-bottom:9px;margin-bottom:9px;gap:10px;color:#bfb390}
#doctrine-label{font-size:9px;letter-spacing:.5px;color:#d3c399}#enemy-scaling{color:#c49d80;font-size:8px}
#build-slots>span{border:1px solid #8a7b54;background:#394130;box-shadow:inset 0 0 0 2px #232d27;width:34px;height:26px;color:#dfd5ac}#build-slots .empty{background:#1c2725;border-color:#555c49;color:#8d9277}
#build-content,#relic-content{border:3px double #9b8960;background:#242e2a;box-shadow:4px 5px #10191d;padding:14px;max-width:calc(100vw - 24px);color:#ded6b9}
#relic-name{border:1px solid #776a50;background:#202a27;color:#c9bd9a;padding:6px 9px;font-size:9px}
.experience{gap:15px;margin-bottom:12px}.experience>div:first-child{font-size:9px;letter-spacing:.6px;color:#d7c69b}.experience>.meter{height:7px;border:1px solid #857652;box-shadow:0 1px #0d171a,inset 0 1px #10191b}.meter i{background:linear-gradient(0deg,#879462,#cad09d);box-shadow:inset 0 1px #eee3b54f}
.commands{gap:13px;grid-template-columns:.95fr 1.3fr 1.1fr 1.1fr auto}.movement strong{color:#c9ba91;letter-spacing:1.2px}.movement span{color:#aeb09b}
.ability{position:relative;border:1px solid #73694d;border-top:3px solid #a9b77b;background:linear-gradient(125deg,#354331,#202b29 65%);padding:12px 12px 10px;box-shadow:inset 0 0 0 3px #131f2059,3px 3px #131c1d}
.ability::after{content:'';position:absolute;bottom:5px;right:5px;width:3px;height:3px;background:#817756;pointer-events:none}
.ability.fury{background:linear-gradient(125deg,#4b352c,#2d2926 65%);border-top-color:#c48c58}.ability.ward{background:linear-gradient(125deg,#304349,#222e31 65%);border-top-color:#8baeb5}
.ability strong{font-family:Georgia,'Times New Roman',serif;font-size:16px;color:#e3d4b0;letter-spacing:.3px}.fury strong{color:#e8bb88}.ward strong{color:#c8dfe0}.ability-icon{width:30px;height:30px;border:1px solid #958157;box-shadow:2px 2px #111b1e;image-rendering:pixelated}.ability b{font-size:9px;color:#d1d5b1}.ability>span{font-size:9px;color:#b9bba4;min-height:26px;margin:8px 0}.ability .meter{height:5px;border-bottom:1px solid #c0b88436}.fury .meter i{background:linear-gradient(0deg,#9c623e,#e0b071)}.ward .meter i{background:linear-gradient(0deg,#577e8a,#b0d4d4)}
kbd{background:#192422;border-color:#7b7859;color:#dfd4af;box-shadow:0 2px #0f191a;font-size:9px;padding:3px 5px}
button{border-color:#8b7955;background:linear-gradient(#3d4536,#30382e);color:#ded4b4;box-shadow:inset 0 1px #ccc29626,2px 3px #101a1b;transition:background-color .12s,border-color .12s}button:hover{background:#49513d;border-color:#c3b486}button:focus-visible{outline:2px solid #f1d7a0;outline-offset:3px}button:disabled{opacity:.5;cursor:default}
.primary{background:linear-gradient(#c1c994,#95a16d);color:#202b24;border:2px solid #d9d6a6;box-shadow:inset 0 0 0 2px #6b775249,3px 4px #10191b;letter-spacing:1.5px;padding:14px 23px}.primary:hover{background:#d1d5a1;color:#202b24}
.visual-settings{gap:7px}.visual-settings button{font-size:9px;padding:7px 8px;background:#232d28;border:1px solid #71674d;color:#bdb79c;box-shadow:none}
.veil{background:#10191dc9;padding:22px;backdrop-filter:none}
.panel{position:relative;width:min(740px,100%);padding:26px 32px 24px;border:4px double #ac9364;background-color:#2a302b;background-image:linear-gradient(135deg,#ad8d5120,transparent 42%),repeating-linear-gradient(0deg,transparent 0 5px,#0b17161b 5px 6px);box-shadow:inset 0 0 0 5px #161f21,inset 0 0 0 7px #75684b50,7px 9px #0e171b}
.panel::before{content:'';display:block;width:72px;height:72px;margin:0 auto 7px;background:var(--seal-legion) center / 72px no-repeat;image-rendering:pixelated;pointer-events:none}
.panel[data-state=upgrade]::before,.panel[data-state=book]::before{background-image:var(--seal-spectral)}.panel[data-state=defeat]::before{opacity:.6}
.panel .eyebrow{font-size:9px;color:#baaa7e;letter-spacing:2.4px}.panel h2,.panel h3{font-family:Georgia,'Times New Roman',serif;color:#e8d5a9;text-shadow:1px 3px #172020;font-weight:normal}.panel h2{font-size:44px;letter-spacing:8px;margin:8px 0 12px}.panel h3{font-size:29px;line-height:1.15;margin:12px 0}.panel p{font-size:11px;line-height:1.8;color:#c1c0a7}
.doctrines{gap:12px;margin:20px 0 13px}.doctrine{position:relative;text-align:center;padding:15px 11px;border:1px solid #746d50;background:#202a28;box-shadow:2px 3px #152020}.doctrine[aria-pressed=true]{background:linear-gradient(#454e36,#303c2e);border:2px solid #c0bd89;padding:14px 10px;box-shadow:inset 0 0 0 3px #1926227d,2px 3px #152020}.doctrine[aria-pressed=true]::after{content:'◆';position:absolute;top:-8px;left:calc(50% - 7px);font-size:14px;color:#ddd2a2;background:#333e30;padding:0 2px}.doctrine-icon{height:48px;margin:0 auto 10px;font-size:0;background:var(--seal-legion) center / 48px no-repeat;image-rendering:pixelated}#doctrine-plague .doctrine-icon{background-image:var(--seal-plague)}#doctrine-spectral .doctrine-icon{background-image:var(--seal-spectral)}.doctrine strong{font-family:Georgia,'Times New Roman',serif;font-size:17px;font-weight:normal;color:#e2d5b1;margin:5px 0 10px}.doctrine>span:last-child{font-size:10px;line-height:1.6;color:#c4c4a8}
.book-button{border:1px solid #746b4e;background:#202b27;color:#c5ba98;font-size:10px;padding:9px 14px}.quick-help{color:#aaa991!important;line-height:1.9!important}.recordline{border-top:3px double #716747;padding-top:13px;color:#b4aa87!important;line-height:1.8!important}
.cards{gap:13px;margin-top:18px}.card{position:relative;border:2px solid #92805a;border-top:5px solid #b7aa74;padding:17px 14px;background:linear-gradient(145deg,#414734,#242f29 60%);box-shadow:3px 4px #111c1d;min-height:216px}.card:hover{background:#424d37;border-color:#d3c48c}.card .family{font-size:8px;letter-spacing:1px;color:#c4c49b}.card .icon{align-self:center;text-align:center;width:46px;height:46px;padding:5px;border:1px solid #897953;background:#1e2925;color:#d1c698;box-shadow:inset 0 0 0 3px #313a2c;font-size:27px;margin:14px 0}.card strong{font-family:Georgia,'Times New Roman',serif;font-size:18px;line-height:1.2;color:#eadbb4;font-weight:normal}.card .desc{color:#c4c7ad;font-size:11px;line-height:1.55}.card .rank{color:#ddd1a3;border-top:1px solid #86744d;padding-top:12px;font-size:9px;letter-spacing:1px}
.upgrade-build{border:1px solid #746949;background:#202b25;color:#b9bea0;padding:10px;font-size:10px}.results{background:#1c2725;border:3px double #8a7954;padding:18px 10px}.results b{font-size:27px;color:#e3cea0}.results span{font-size:9px;color:#b6b095}.discoveries article{background:#202b27;border:1px solid #7d7151;border-left:4px solid #a69a68;padding:16px}.discoveries strong{color:#ded0a6;font-family:Georgia,serif;font-size:18px}.discoveries .unknown{border-left-color:#555d4c;color:#8c947d;opacity:.75}
#bossbar{border:3px double #c2996b;background:#35272a;box-shadow:3px 4px #141b1e;padding:10px 14px}#bossbar>div:first-child{color:#e6c295;font-size:11px}#bossfill{background:linear-gradient(#cf9875,#915449)}
#toast,#tomb-status,#wave-status,#retreat-status,#discovery-toast{border:2px solid #8e805a;background:#222d29f5;box-shadow:3px 4px #10191bc9;color:#e0d5b3;line-height:1.5}#wave-status,#retreat-status{border-color:#b58b5d}#discovery-toast{border:3px double #b9aa75}
@media(max-width:1250px){.commands{grid-template-columns:1.3fr 1.1fr 1.1fr auto}.movement{display:none}.ability strong{font-size:14px}.ability-icon{width:24px;height:24px}.ability{padding:10px 9px}.ability>div:first-child{gap:6px}}
@media(max-width:650px){#topbar{padding:8px 10px;min-height:76px;gap:8px}.brand{gap:5px}.brand-mark{width:28px;height:36px;background-size:36px}.brand h1{font-size:17px;letter-spacing:2px}.brand span:not(.brand-mark){font-size:6px;letter-spacing:0}.run-stats{gap:4px}.run-stats>div{min-width:43px;padding:5px 6px;border-top-width:1px;box-shadow:inset 0 0 0 1px #343a2e}.run-stats b{font-size:17px;letter-spacing:0}.run-stats span{font-size:6px;letter-spacing:0}.run-stats>div::after{display:none}#phase{display:block;max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#pause{padding:8px;font-size:14px}.stage-label{left:8px;top:8px;font-size:8px;padding:6px 8px}.stage-label #objective{font-size:7px}.commands{grid-template-columns:1fr 1fr;gap:8px}.ability{padding:8px}.ability strong{font-size:14px}.ability>span{font-size:8px;min-height:24px;margin:6px 0}.ritual>span{min-height:0}.ability-icon{width:24px;height:24px}.ability b{font-size:8px}.ability kbd{font-size:8px}#commandbar{padding:8px 10px}.build-strip{flex-wrap:wrap;gap:5px;padding-bottom:6px;margin-bottom:7px}#build-slots>span{width:26px;height:22px;font-size:12px}#build-slots{gap:3px}#doctrine-label{font-size:8px}#enemy-scaling{font-size:7px}#relic-name{font-size:8px;padding:4px 6px}.experience{margin-bottom:8px;gap:8px}.experience>div:first-child{font-size:8px;min-width:172px;letter-spacing:0}.visual-settings{gap:7px}.visual-settings button{padding:4px 8px;font-size:9px}.veil{padding:10px}.panel{padding:20px 16px;border-width:3px}.panel::before{width:48px;height:48px;background-size:48px;margin-bottom:6px}.panel h2{font-size:32px;letter-spacing:5px}.panel h3{font-size:24px}.panel .eyebrow{font-size:8px;letter-spacing:1.5px}.panel p{font-size:10px}.doctrines{gap:7px;margin:17px 0 12px}.doctrine{padding:11px 6px}.doctrine[aria-pressed=true]{padding:10px 5px}.doctrine-icon{height:36px;background-size:36px;margin-bottom:6px}.doctrine strong{font-size:13px;line-height:1.2;min-height:30px;margin:5px 0}.doctrine>span:last-child{font-size:9px}.primary{padding:12px 18px;letter-spacing:1px}.cards{gap:9px}.card{min-height:0;grid-template-columns:38px 1fr auto;padding:11px 10px;column-gap:10px;border-top-width:3px}.card .icon{width:34px;height:36px;font-size:22px;padding:3px;margin:6px 0}.card strong{font-size:16px;min-height:0}.card .desc{font-size:10px}.card .rank{border:0;font-size:8px;letter-spacing:0;padding:0}.card .family{font-size:7px}.upgrade-build{font-size:9px;padding:8px}.results{padding:12px 6px}.results b{font-size:22px}.results span{font-size:8px}}
@media(max-height:700px){.panel::before{width:40px;height:40px;background-size:40px}.panel{padding-top:19px;padding-bottom:19px}.panel h2{margin:8px 0}.doctrines{margin-top:12px}.doctrine-icon{height:32px;background-size:32px}.card{min-height:0}}
@media(prefers-reduced-motion:reduce){button,#toast{transition:none}}

/* Menus own the available height; combat controls return when the run starts. */
body[data-screen=menu] #commandbar,body[data-screen=book] #commandbar{display:none}
body[data-screen=menu] .stage-label,body[data-screen=book] .stage-label,body[data-screen=menu] .map,body[data-screen=book] .map{display:none}
.menu-controls{font-size:10px;color:#b9b394;margin:13px auto 0}.menu-controls summary{cursor:pointer;list-style:none;color:#c7bb91}.menu-controls summary::before{content:'+ ';color:#c6ce9d}.menu-controls[open] summary::before{content:'− '}.menu-controls .quick-help{margin:8px 0}
.panel[data-state=menu]::before{width:48px;height:48px;background-size:48px}.panel[data-state=menu] .recordline{margin-bottom:0}.panel[data-state=menu] h2{font-size:38px;margin-top:7px}.panel[data-state=menu] .doctrines{margin-top:16px}
@media(max-width:650px){.panel[data-state=menu] h2{font-size:30px}.panel[data-state=menu]{padding:18px 13px}.panel[data-state=menu] .doctrine{min-width:0}.panel[data-state=menu] .doctrine strong{font-size:13px}.menu-controls{font-size:9px}}
@media(max-width:650px){.panel[data-state=menu] .doctrine{display:grid;grid-template-columns:40px 1fr;column-gap:9px;text-align:left;align-items:center}.panel[data-state=menu] .doctrine-icon{display:block;grid-row:1 / 3;width:40px;height:40px;background-size:40px;margin:0}.panel[data-state=menu] .doctrine strong{min-height:0;margin:0 0 5px}.panel[data-state=menu] .doctrine>span:last-child{grid-column:2}}
body[data-screen=upgrade] #commandbar,body[data-screen=relic] #commandbar,body[data-screen=victory] #commandbar,body[data-screen=defeat] #commandbar{display:none}
@media(max-width:650px){.panel[data-state=upgrade]::before,.panel[data-state=relic]::before{width:32px;height:32px;background-size:32px}.panel[data-state=upgrade] h3{margin:8px 0}.panel[data-state=upgrade] .cards{margin-top:12px}.panel[data-state=upgrade] .recordline{margin-bottom:0}}

.panel[data-state=relic]::before{background-image:var(--panel-seal);background-size:contain;width:48px;height:64px}
/* v0.97: pointer capture owns one moving finger; scrolling stays in menus. */
#game{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
button,summary{touch-action:manipulation}
#touch-controls{display:none}.touch-mode #touch-controls{display:block;margin-top:8px}
.touch-actions{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.touch-actions button{min-height:44px;padding:8px 4px;font-size:11px;touch-action:manipulation;border-color:#9a895d}.touch-actions button[aria-pressed=true]{background:#788557;color:#fff1ca;border-color:#e4dca9;box-shadow:inset 0 0 0 2px #a8b078}.touch-actions [data-touch=fury]{border-top:3px solid #c48c58}.touch-actions [data-touch=ward]{border-top:3px solid #8baeb5}.touch-actions [data-touch=retreat][aria-pressed=true]{background:#755038}
#touch-hint{font-size:10px;color:#d0c6a4;line-height:1.5;text-align:center;min-height:15px;margin-top:5px}
.touch-mode .movement{display:none}.touch-mode .commands{grid-template-columns:1.2fr 1fr 1fr auto}.touch-mode #pause{min-width:44px;min-height:44px}.touch-mode .visual-settings button{min-height:36px}
@media(max-width:650px){.touch-mode .commands{grid-template-columns:1fr 1fr;gap:5px}.touch-mode .ability{padding:5px 7px}.touch-mode .ability>span{font-size:8px;min-height:0;margin:4px 0}.touch-mode .ability-icon{width:20px;height:20px}.touch-mode .ability strong{font-size:13px}.touch-mode .visual-settings{gap:5px}.touch-mode .visual-settings button{min-height:32px;font-size:9px;padding:5px 8px}.touch-mode .build-strip{gap:4px}.touch-actions button{font-size:10px}.touch-mode #commandbar{padding-bottom:max(8px,env(safe-area-inset-bottom))}.touch-mode .stage-label #objective{margin-top:4px}}
@media(max-height:520px) and (pointer:coarse){.touch-mode #topbar{min-height:55px;padding-top:4px;padding-bottom:4px}.touch-mode .ability>span,.touch-mode .build-strip,.touch-mode .experience{display:none}.touch-mode .ability{padding:5px}.touch-mode .commands{grid-template-columns:1fr 1fr 1fr auto}.touch-mode #commandbar{padding-top:5px}.touch-mode #touch-controls{margin-top:5px}.touch-mode .visual-settings{flex-direction:row}}

/* v0.98: explicit icons and an accessible, shared presentation toggle. */
#pause{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.pause-symbol{display:block;width:16px;height:20px;border-left:5px solid currentColor;border-right:5px solid currentColor;box-sizing:border-box}
.play-symbol{display:block;width:0;height:0;border-left:16px solid currentColor;border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:3px}
#details-toggle{min-height:44px;white-space:nowrap}#details-toggle[aria-pressed=true]{border-color:#c9b47c;background:#46503a;color:#fff0c1}
.panel>#details-toggle{display:block;margin:0 0 10px auto;font-size:10px;padding:6px 12px}
.visual-settings{flex-wrap:wrap}.ability>span{line-height:1.5;overflow-wrap:anywhere}
#build-content{max-height:240px;overflow:auto}#build-content p{line-height:1.5}
@media(max-width:650px){.ability>span{font-size:9px}.touch-mode .ability>span{font-size:9px}.panel>#details-toggle{margin-bottom:8px}.visual-settings #details-toggle{min-height:44px}}
