@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=IBM+Plex+Mono:wght@400;500;600&display=swap');
:root{color-scheme:dark;--ink:#101713;--paper:#e5e5cf;--lime:#c7ec8b;--muted:#859284}*{box-sizing:border-box}body{margin:0;background:var(--ink);color:var(--paper);font-family:'IBM Plex Mono',monospace;font-size:12px;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #475347;background:#19241d;transition:background .15s,transform .15s}button:hover{background:#334332}button:focus-visible{outline:2px solid var(--lime);outline-offset:4px}button:active{transform:translateY(2px)}[hidden]{display:none!important}canvas{position:fixed;inset:0;width:100%;height:100%;image-rendering:pixelated}.screen{position:fixed;inset:0}.menu-inner{position:relative;z-index:1;width:580px;padding:6vh 0 0 6vw}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--lime);display:flex;align-items:center;gap:10px}.eyebrow i{height:6px;width:6px;background:var(--lime)}h1{font-family:'Barlow Condensed',Impact,sans-serif;font-size:clamp(72px,8.5vw,138px);line-height:.85;font-weight:800;letter-spacing:-2px;margin:32px 0 24px}h1 span{display:block;font-size:.4em;letter-spacing:12px;color:var(--lime);margin-top:15px}.intro{color:#aeb7a7;line-height:1.7;font-size:13px}.setup{margin-top:28px;max-width:470px}.section-label{font-size:9px;letter-spacing:2px;color:var(--muted);margin:20px 0 12px}.mode{display:flex;gap:6px}.mode button{padding:9px 18px;font-size:10px}.mode .active{background:var(--lime);color:var(--ink);border-color:var(--lime)}.char-row{display:flex;gap:7px;margin-top:10px}.char-card{text-align:left;flex:1;padding:12px 10px;position:relative}.char-card.selected{border-color:var(--lime);background:#293a26}.char-card strong{display:block;margin-top:6px;font-family:'Barlow Condensed',sans-serif;font-size:20px;letter-spacing:1px}.char-card small{font-size:9px;color:#a7b3a2}.char-card canvas{position:static;width:35px;height:40px}.player-label{font-size:9px;color:var(--lime);margin-top:12px}.primary{background:var(--lime);color:var(--ink);border:0;font-family:'Barlow Condensed',Impact,sans-serif;font-size:26px;font-weight:700;letter-spacing:2px;padding:14px 20px;width:100%;display:flex;justify-content:space-between}.primary:hover{background:#d9ff9d}.controls{display:flex;flex-wrap:wrap;gap:15px;font-size:8px;color:var(--muted);margin-top:15px}.controls b{display:block;color:var(--paper);margin-bottom:5px}footer{font-size:8px;letter-spacing:1px;color:#788776;margin-top:28px}footer span{display:block;margin-top:8px}.title-art{position:absolute;right:10vw;top:13vh;width:30vw;height:70vh;pointer-events:none}.moon{width:145px;height:145px;border-radius:50%;background:#cad4ab;box-shadow:0 0 100px #d0e6a318;position:absolute;left:40%;top:0;opacity:.7}.art-caption{position:absolute;bottom:0;right:0;text-align:right;letter-spacing:2px;font-size:10px;line-height:2}.art-caption span{color:var(--muted);font-size:8px}#hud{position:fixed;inset:0;pointer-events:none;padding:20px 26px}.hud-top{display:flex;justify-content:space-between;align-items:center}.hud-top b{font-family:'Barlow Condensed',sans-serif;font-size:25px;letter-spacing:2px}.hud-top small{font-size:9px;color:#9aa992;letter-spacing:1px}#timer{font-size:26px;font-weight:600}#hud button{pointer-events:auto;padding:8px 10px;margin-left:8px}.xp{height:5px;background:#34432f;margin-top:14px}.xp i{display:block;height:100%;background:var(--lime);width:0}.hud-bottom{display:flex;justify-content:space-between;font-size:9px;color:#a8ba9b;margin-top:8px}#players{position:absolute;left:26px;bottom:22px;display:flex;gap:16px}.player-status{width:180px;background:#101713df;border:1px solid #3b4e38;padding:12px}.player-status strong{font-size:10px}.health{height:6px;background:#48302c;margin:8px 0}.health i{display:block;background:#b3cf80;height:100%}.weapons{font-size:9px;color:#b4beac;line-height:1.8}.shade{background:#080e0bd9;display:grid;place-items:center;backdrop-filter:blur(6px)}.modal{width:min(850px,90vw);text-align:center}.modal .eyebrow{justify-content:center}h2{font-family:'Barlow Condensed',Impact,sans-serif;font-size:64px;margin:15px 0;line-height:1}.modal p{color:#9eae97;line-height:1.8}#choices{display:flex;gap:12px;margin:32px 0}.upgrade{flex:1;text-align:left;padding:25px 20px;min-height:200px;border-top:3px solid var(--lime)}.upgrade .icon{font-size:30px;color:var(--lime)}.upgrade h3{font-family:'Barlow Condensed',sans-serif;font-size:28px;margin:20px 0 10px}.upgrade p{font-size:11px}.upgrade small{color:var(--lime)}#actions{display:flex;gap:12px;justify-content:center;margin-top:25px}.pad-hint{margin:14px 0 0;font-size:10px;letter-spacing:1px;color:var(--muted)}#actions button{padding:15px 30px}#toast{position:fixed;top:135px;width:100%;text-align:center;color:var(--lime);letter-spacing:3px;pointer-events:none;font-size:15px;text-shadow:0 2px 4px black}@media(max-height:800px){.menu-inner{padding-top:3vh}h1{margin-top:22px;font-size:90px}.intro{margin-bottom:0}.setup{margin-top:12px}.section-label{margin-top:13px}footer{margin-top:16px}}@media(max-width:700px){.menu-inner{width:100%;padding:25px}.title-art{display:none}h1{font-size:84px}.setup{max-width:none}#choices{flex-direction:column;gap:8px}.upgrade{min-height:0;padding:12px}.upgrade h3{display:inline;margin:0 10px}.upgrade p{margin:8px 0}h2{font-size:42px}.hud-top b{display:none}#objective{max-width:150px;text-align:right}#players{left:12px;gap:8px}.player-status{width:145px}footer{font-size:7px}}
#menu{overflow-y:auto}.menu-inner{padding-bottom:30px}#overlay{overflow-y:auto;padding:24px 0}@media(max-height:750px){h1{font-size:72px}.intro{font-size:11px}.char-card{padding:8px}.char-card canvas{width:26px;height:30px}.char-card strong{font-size:18px}.setup{margin-top:8px}}
/* V2: larger illustrated character selection, live garden tableau. */
.char-card canvas{width:70px;height:80px;display:block;margin:0 auto 4px}.char-card{text-align:center;background:#18251edc;border-color:#485847}.char-card.selected{background:#34432add;border-color:#c4dba2;box-shadow:inset 0 -3px #adc282}.moon{display:none}.title-art{right:7vw;top:15vh;height:70vh;width:35vw}.art-caption{background:#101713b8;padding:15px 20px;border-left:2px solid #81916b}.char-card strong{font-size:19px}.setup{margin-top:15px}#hud{background:linear-gradient(#09150ee8,transparent 125px)}.player-status{border-color:#708264;box-shadow:0 4px 20px #0005}.health i{background:linear-gradient(90deg,#81995e,#c7e19b)}@media(max-height:850px){.char-card canvas{width:44px;height:50px}.menu-inner{padding-top:20px}h1{font-size:80px;margin:20px 0}.intro{font-size:11px}.section-label{margin-top:12px}.char-card{padding:8px}.setup{margin-top:10px}}

#boss-hud{position:absolute;top:110px;left:50%;transform:translateX(-50%);width:min(440px,65vw);text-align:center;background:#17211be8;padding:10px 14px;border:1px solid #ac8463}#boss-hud span{display:block;font-size:12px;letter-spacing:2px;color:#edd6ad}#boss-phase{display:block;font-size:8px;color:#b8ac95;margin:7px}#boss-hud>div{height:6px;background:#49372e}#boss-health{display:block;height:100%;background:#d2a56f;width:100%}
/* V6: readable rewards and collections; six recipes must wrap. */
#choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.upgrade{min-width:0}#actions{flex-wrap:wrap}.dash-status{color:#e0c894;font-size:9px;margin:8px 0}.modal{padding:24px 0}#reward-feed{position:fixed;right:26px;bottom:26px;width:min(340px,38vw);padding:16px 18px;border:1px solid #b79b64;background:#152119f2;pointer-events:none;box-shadow:0 8px 28px #0006}#reward-feed>small{color:#dfbd79;letter-spacing:2px;font-size:9px}#reward-feed>div{margin-top:12px}#reward-feed b,#reward-feed span{display:block}#reward-feed b{font-size:12px;color:#f1ddb6}#reward-feed span{font-size:10px;line-height:1.6;margin-top:4px;color:#b4c0aa}@media(max-width:800px){#reward-feed{top:175px;bottom:auto;right:12px;width:260px;max-width:70vw}#choices{grid-template-columns:1fr}}
#regions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.region-card{padding:12px 8px;text-align:left;border-color:#485847}.region-card strong,.region-card small{display:block}.region-card strong{font-family:'Barlow Condensed',sans-serif;font-size:20px}.region-card small{font-size:8px;color:#a7b3a2;margin-top:5px}.region-card.selected{border-color:var(--lime);background:#34432a}#region-description{font-size:10px;line-height:1.6;color:#b5c2ab;min-height:32px}#region-caption{font-size:10px;color:var(--paper)}
.banish-choice{border-color:#d3947c}.banish-choice small,.banish-choice .icon{color:#e9aa92}
#choices.damage-reports{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.damage-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;margin:16px 0;font-size:11px}.damage-row b{color:#dfebc9}.damage-row i{grid-column:1/-1;height:3px;background:#a8c788}.damage-row small{grid-column:1/-1;font-size:9px;color:#9dac94}.damage-reports .upgrade{min-height:0}
/* Four heroes; keep every choice usable when the menu narrows. */
.char-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.char-card{min-width:0}.char-card strong{font-size:16px}.char-card small{display:block;line-height:1.5}@media(max-width:520px){.char-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fusion-controls{display:grid;gap:12px;margin-top:16px;text-align:left}.fusion-controls small{display:block;font-size:9px;line-height:1.6}.fusion-controls button{width:100%;margin-top:5px;padding:8px;font-size:9px}.fusion-controls button[aria-pressed="true"]{border-color:var(--lime);color:var(--lime);background:#293a26}.fusion-controls button:disabled{opacity:.5;cursor:default}
#pacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.pact-help{font-size:10px;line-height:1.6;color:#b5c2ab}.pact-card{min-width:0;padding:10px;text-align:left;border-color:#485847}.pact-card strong,.pact-card small{display:block}.pact-card strong{font-size:13px}.pact-card small{font-size:9px;line-height:1.6;margin-top:5px;color:#b5c2ab}.pact-card.selected{border-color:var(--lime);background:#34432a}.pact-card:disabled{opacity:.55;cursor:default}@media(max-width:420px){#pacts{grid-template-columns:1fr}}
#pact-options{border:1px solid #485847;padding:0 10px;background:#18251edc}#pact-options summary{cursor:pointer;padding:13px 0;font-size:11px;line-height:1.5;color:#d6e0c8}#pact-options[open]{padding-bottom:10px}#pact-options summary:focus-visible{outline:2px solid var(--lime);outline-offset:2px}
.controller-options{margin-top:12px;font-size:11px}.controller-options summary{cursor:pointer;padding:10px 0;color:#c4d3b6}.controller-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.controller-row span{margin-right:6px}.controller-row button{padding:8px;font-size:9px}.controller-row button[aria-pressed="true"]{border-color:var(--lime);background:#34432a}button:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.char-row{grid-template-columns:repeat(3,minmax(0,1fr))}.char-card:disabled{opacity:.55;cursor:default}.char-card:disabled small{color:#c0c7b7}

@media(max-width:520px){.char-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fusion-controls small{white-space:pre-line}
.recipe-hint{display:block;margin-top:12px;color:#c8dba4;line-height:1.6}
/* Gothic field HUD: ivory typography, tarnished copper, garnet vitality. */
:root{--ink:#171719;--paper:#e6dcc7;--lime:#c5a779;--muted:#9c978b}
h1,h2,.char-card strong,.region-card strong,.upgrade h3{font-family:Georgia,'Times New Roman',serif;font-weight:normal}h1{font-size:clamp(52px,6vw,92px);letter-spacing:-3px;line-height:1}h1 span{font-family:'IBM Plex Mono',monospace;font-size:.18em;letter-spacing:9px;margin-top:12px}.primary{font-family:Georgia,serif;font-size:22px;letter-spacing:3px;background:#b9a17b}.primary:hover{background:#d3be98}.char-card.selected,.region-card.selected{border-color:#ae906a;background:#30282a;box-shadow:inset 0 -2px #ad815b}.char-card{background:#1b1c20e8;border-color:#514a42}.char-card strong{letter-spacing:1px;font-size:16px}.char-card canvas{height:90px;width:78px}.char-card small{color:#b5afa1}
#hud{padding:12px 18px;background:linear-gradient(#111318e8,transparent 100px)}.hud-top{gap:16px}.hud-top b{font-family:Georgia,serif;font-weight:normal;letter-spacing:4px;font-size:21px}.hud-top b small{display:none}#timer{font-size:24px;color:#e1cba3;padding:5px 18px;border-bottom:1px solid #786245;font-variant-numeric:tabular-nums}#hud button{background:#1c1d22;border-color:#695840;padding:6px 9px;font-size:10px}.xp{height:4px;margin-top:9px;background:#252b32;border-bottom:1px solid #655540}.xp i{background:#91afbd}.hud-bottom{margin-top:6px;color:#c3b69d;font-size:9px;letter-spacing:1px}
#players{left:18px;bottom:16px;gap:12px}.player-status{width:248px;padding:9px 10px;background:#17191feF;border:1px solid #766043;box-shadow:inset 0 0 0 2px #242227,0 3px 10px #0006;display:grid;grid-template-columns:40px 1fr;gap:3px 10px}.hud-portrait{position:static;width:40px;height:48px;grid-row:1/3;background:#24252a;border-bottom:1px solid #6d5941}.player-vitals strong{display:flex;gap:9px;align-items:center;font-size:8px;color:#ac9270;letter-spacing:1px}.player-vitals strong span{font-family:Georgia,serif;font-size:14px;color:#e4d4ba}.player-vitals small{font-size:9px;color:#c6bba8}.health{height:7px;margin:7px 0 4px;background:#39252d;border:1px solid #5b3d40}.health i{background:#a64956;box-shadow:inset 0 1px #d08380}.dash-status{font-size:8px;color:#b9a382;margin:3px 0;grid-column:2}.equipment-slots{grid-column:1/-1;display:flex;gap:4px;margin-top:5px}.equipment-slot{position:relative;width:33px;height:28px;display:grid;place-items:center;background:#25252a;border:1px solid #514a40;color:#d5c2a0;font-size:16px}.equipment-slot b{position:absolute;right:2px;bottom:1px;font-size:7px;font-weight:normal;color:#c9c7b4}.equipment-slot.transformed{border-color:#b38c55;color:#ecd4a3}.equipment-slot.empty{color:#4e4b47;border-color:#343438}.relic-slots{grid-column:1/-1;display:flex;gap:10px;min-height:9px;color:#9aa89c;font-size:11px}.relic-slots b{font-size:7px;padding-left:2px}.hud-bottom #objective{max-width:60vw;text-align:right}#boss-hud{top:95px;background:#201a20eb;border-color:#88634c;padding:7px 12px}#boss-name{font-family:Georgia,serif}#boss-health{background:#9e5960}#toast{top:150px;color:#dfc7a0;font-size:12px;letter-spacing:2px}.art-caption{border-color:#9b7950;background:#19181bd9}.upgrade{border-top-color:#a98861;background:#1d1e23}.upgrade small{color:#c8b18d}
@media(max-width:600px){#hud{padding:10px}#players{left:10px;right:10px;bottom:10px;gap:6px}.player-status{width:min(248px,calc((100vw - 26px)/2));padding:7px;grid-template-columns:1fr;gap:2px}.hud-portrait{display:none}.dash-status{grid-column:1}.equipment-slot{width:calc((100% - 20px)/6);height:23px;font-size:12px}.player-vitals strong span{font-size:12px}.hud-top b{display:none}.char-card canvas{height:70px;width:60px}}

.archive-button{width:100%;padding:11px;margin-top:9px;letter-spacing:1px;font-size:10px}#choices.archive-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.archive-card{min-height:0;padding:18px}.archive-card h3{font-size:24px;margin:0 0 12px}.archive-card strong{font-size:11px;color:#cbb58e}.archive-card ul{list-style:none;padding:0;margin:0;line-height:1.8;font-size:11px}.archive-card .discovered{color:#c7d3b3}.archive-card .undiscovered{color:#92978f}@media(max-width:600px){#choices.archive-cards{grid-template-columns:1fr}}

.upgrade .upgrade-stats{color:#e0cfb0;border-block:1px solid #51483b;padding:8px 0;font-variant-numeric:tabular-nums;line-height:1.6;font-size:11px}

#choices.region-map-layout{grid-template-columns:minmax(0,1.4fr) minmax(220px,1fr);align-items:start;text-align:left;gap:24px}.region-map-frame{border:1px solid #82745b;background:#171e19;padding:6px}.region-map-frame canvas{position:static;inset:auto;display:block;width:100%;height:auto;image-rendering:pixelated}.region-map-list p{font-size:12px;line-height:1.7;border-bottom:1px solid #465044;padding:8px 0;margin:0}.region-map-list .region-map-legend{color:#9ea99b;border:0;margin-top:12px;font-size:11px}@media(max-width:700px){#choices.region-map-layout{grid-template-columns:1fr;gap:12px}}
#overlay:not([hidden])~#toast{visibility:hidden}
/* V137 — compact pixel inventory, shared experience and separate co-op vitals. */
#hud{padding:22px 14px 0;background:none;font-family:monospace;text-shadow:1px 1px #08090e}
#hud .xp{position:absolute;top:0;left:0;right:0;height:13px;margin:0;border:2px solid #191b26;box-shadow:0 2px #766b56;background:#252637}
#hud .xp i{background:#648dbb;box-shadow:inset 0 2px #a0bdd5,inset 0 -2px #3d547e;transition:none}
.hud-top{height:34px;align-items:start}.hud-top>b{display:none}
#timer{position:absolute;left:50%;transform:translateX(-50%);border:0;font: bold 28px monospace;color:#eee0bc;padding:0 12px;background:#171820e8;box-shadow:2px 2px #08090e;letter-spacing:2px}
.hud-top>div:last-child{margin-left:auto;padding:5px 7px;background:#171820ed;border-bottom:2px solid #74654a}.hud-top small{letter-spacing:0;font-size:8px}
#hud button{border:2px solid #77694e;box-shadow:inset 1px 1px #a69369,inset -1px -1px #393344;margin-left:5px;padding:4px 7px}
.hud-bottom{margin:0;font-size:10px;letter-spacing:0}.hud-bottom #objective{position:absolute;right:14px;top:65px;max-width:36vw;font-size:8px;background:#15161dcc;padding:4px}
#level{position:absolute;left:14px;top:24px;color:#ded0a9;font-weight:bold}
#players{left:14px;right:14px;top:52px;bottom:auto;display:flex;justify-content:space-between;align-items:start;gap:10px;pointer-events:none}
.player-status{width:254px;padding:7px;grid-template-columns:40px 1fr;gap:3px 8px;border:2px solid #847455;background:#171820ed;box-shadow:inset 2px 2px #b29b6d,inset -2px -2px #3e3640,2px 2px #08090e}
#players .player-status:nth-child(2){margin-top:44px}
#players .hud-portrait{display:block;position:static;inset:auto;width:40px;height:48px;grid-row:1/3;background:#30303c;border:2px solid #726552;box-shadow:inset 2px 2px #15141c;image-rendering:pixelated}
.player-vitals strong span{font: bold 12px monospace;letter-spacing:0}.player-vitals strong{font-size:9px;gap:6px}.player-vitals small{font-size:9px;line-height:12px}.health{height:10px;border:2px solid #15141c;background:#462933;margin:5px 0 3px}.health i{background:#ab4556;box-shadow:inset 0 2px #d87980,inset 0 -2px #6f3048}.dash-status{font-size:8px;grid-column:2;margin:0;color:#b7ab90}
.equipment-slots,.relic-slots{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:3px;margin:3px 0 0;min-height:0}
#players .equipment-slot{display:block;position:relative;width:100%;height:34px;background:#262633;border:2px solid #5d564b;box-shadow:inset 1px 1px #383947;pointer-events:auto}
.equipment-slot img{display:block;width:24px;height:24px;margin:1px auto;image-rendering:pixelated;filter:drop-shadow(1px 1px #0c1018)}
#players .equipment-slot b{right:0;bottom:-1px;min-width:9px;padding:1px;background:#12131d;color:#f0ddaa;font:bold 9px monospace;line-height:9px;text-align:center}
#players .equipment-slot.transformed{border-color:#b18a56}#players .equipment-slot.empty{border-color:#36333b;color:#55505b;background:#1d1e29;text-align:center;font-size:14px}
#players .passive-slot{border-color:#4e5e5b}#boss-hud{top:96px;max-width:calc(100vw - 570px)}
@media(max-width:800px){#players{top:auto;bottom:10px;left:10px;right:10px}#players .player-status:nth-child(2){margin-top:0}.player-status{width:254px;max-width:calc((100vw - 30px)/2);grid-template-columns:40px 1fr;padding:5px}#players>.player-status:only-child{max-width:254px}.player-vitals strong span{font-size:10px}#boss-hud{max-width:70vw;top:95px}.hud-bottom #objective{max-width:45vw}.hud-top small{display:none}}
@media(max-width:450px){#hud{padding-left:8px;padding-right:8px}#timer{font-size:21px;top:43px}#players{left:6px;right:6px;gap:6px}.player-status{max-width:calc((100vw - 18px)/2);grid-template-columns:28px 1fr;gap:3px 4px}#players .hud-portrait{width:28px;height:38px}.player-vitals strong{font-size:7px;gap:3px}.player-vitals strong span{font-size:8px}.player-vitals small,.dash-status{font-size:7px}#players .equipment-slot{height:27px;border-width:1px}.equipment-slot img{width:20px;height:20px}.equipment-slots,.relic-slots{gap:2px}#players .equipment-slot b{font-size:8px}.hud-bottom #objective{top:80px;max-width:90vw}#boss-hud{top:110px}}
@font-face{font-family:NocturnePixel;src:url('assets/ui/VT323-Regular.ttf') format('truetype');font-display:swap}
#hud,#hud button,#timer,.player-vitals strong span{font-family:NocturnePixel,monospace}
#timer{font-size:34px}.player-vitals strong span{font-size:17px}.player-vitals strong{font-size:12px}.player-vitals small{font-size:13px}.dash-status{font-size:12px}#level{font-size:17px}
.upgrade .icon img{display:block;width:48px;height:48px;image-rendering:pixelated;filter:drop-shadow(2px 2px #0c1018)}
.upgrade{border:2px solid #77694e;box-shadow:inset 2px 2px #a69369,inset -2px -2px #393344}.upgrade h3{font-family:NocturnePixel,monospace;font-size:30px;letter-spacing:0}
@media(max-width:450px){#timer{font-size:28px}.player-vitals strong span{font-size:12px}.player-vitals strong{font-size:10px}.player-vitals small,.dash-status{font-size:10px}}
/* V150 — portraits and a native-scale silhouette in character selection. */
#characters .char-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#characters .char-card{display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto 1fr;gap:3px 6px;padding:6px;text-align:left;align-items:start;border:2px solid #655944;box-shadow:inset 1px 1px #39333a;min-height:64px}
#characters .char-card.selected{border-color:#c6aa76;background:#302a2c;box-shadow:inset 0 -2px #8d704e}
#characters .char-card .selection-portrait{position:static;inset:auto;width:40px;height:48px;grid-row:1/3;margin:0;image-rendering:pixelated}
#characters .char-card strong{font:18px NocturnePixel,monospace;letter-spacing:0;margin:1px 0 0;line-height:1}
#characters .char-card small{font-size:8px;line-height:1.4;color:#beb299;overflow-wrap:break-word}
#characters .char-card:disabled{opacity:.65}
.character-detail{display:flex;gap:10px;align-items:center;margin:7px 0 14px;padding:5px 8px;background:#171820e8;border:1px solid #655944}
.character-detail canvas{position:static;inset:auto;flex:0 0 64px;width:64px;height:64px;image-rendering:pixelated}
.character-detail>div{min-width:0}.character-detail strong{font:16px NocturnePixel,monospace;color:#d4be91}.character-detail .pact-help{margin:4px 0;font-size:10px;line-height:1.5}
@media(max-width:520px){#characters .char-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* V157 — shared character portraits and equipment symbols in combat reports. */
.report-player{display:flex;align-items:center;gap:12px;text-align:left;border-bottom:2px solid #51483b;padding-bottom:10px}
.report-player canvas{position:static;inset:auto;flex:0 0 40px;width:40px;height:48px;image-rendering:pixelated;border:2px solid #847455;background:#30303c}
.report-player h3{margin:2px 0;font-size:26px}.report-player small{color:#b7ab90;font:14px NocturnePixel,monospace}
.damage-reports .report-totals{font-size:11px;line-height:1.7;text-align:left}
.damage-reports .damage-row{grid-template-columns:32px minmax(0,1fr) auto;gap:5px 8px;text-align:left;align-items:center;border-top:1px solid #3f3b36;padding-top:10px;margin:12px 0}
.report-source-icon{grid-row:1/4;width:32px;height:32px;display:grid;place-items:center;background:#262633;border:2px solid #5d564b;font:bold 10px monospace;color:#c7b791}
.report-source-icon.transformed{border-color:#b18a56}.report-source-icon img{width:24px;height:24px;image-rendering:pixelated}
.damage-row .report-source-name{line-height:1.4;overflow-wrap:anywhere}.damage-row .report-source-name small{display:block;color:#a79880;font-size:8px;margin-top:2px}
.damage-row .report-share{grid-column:2/-1;display:block;height:4px;background:#302e32}.damage-row .report-share i{display:block;height:4px;background:#9b9a72}
.damage-row .report-detail{grid-column:2/-1;color:#b7ad98;font-size:9px}.damage-row>b{font-variant-numeric:tabular-nums;color:#dfd2b1}
/* V162 — reward cards reuse inventory icons in the feed and loot history. */
#reward-feed{border:2px solid #847455;background:#171820f5;padding:10px 12px;box-shadow:inset 1px 1px #b29b6d,inset -1px -1px #3e3640,2px 2px #08090e}
#reward-feed>small{font:16px NocturnePixel,monospace;letter-spacing:0;color:#d4be91}
.reward-item{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;text-align:left;align-items:start}
.reward-item .reward-icon{display:grid;place-items:center;width:32px;height:32px;background:#262633;border:2px solid #5d564b;color:#a79c85}
.reward-item .reward-icon.transformed{border-color:#b18a56}.reward-icon img{width:24px;height:24px;image-rendering:pixelated}
.reward-copy{min-width:0}.reward-copy small{display:block;color:#a99b83;font-size:8px;letter-spacing:.4px}
.reward-copy b{display:block;font:19px NocturnePixel,monospace;color:#e0cfab;overflow-wrap:anywhere}
.reward-copy>span{display:block;font-size:10px;line-height:1.6;color:#b4b09e;margin-top:3px}
#reward-feed .reward-icon{display:grid;margin:0}#reward-feed .reward-copy b{font:19px NocturnePixel,monospace;color:#e0cfab}#reward-feed .reward-copy>span{margin-top:3px;color:#b4b09e}
/* V167 — ingredient icons and compact recipe rules. */
.recipe-heading{display:flex;gap:10px;align-items:center;text-align:left;min-height:48px}.recipe-heading>img{width:36px;height:36px;image-rendering:pixelated;flex:0 0 36px;background:#262633;border:2px solid #8e7554;padding:2px}
.recipe-heading h3{margin:0;font-size:25px;overflow-wrap:anywhere}.recipe-ingredients{margin:14px 0;padding:8px;background:#1b1e25;border:1px solid #4f4b42}
.recipe-ingredient{display:grid;grid-template-columns:24px minmax(0,1fr) 14px;gap:7px;align-items:center;text-align:left;font-size:10px;line-height:1.5}.recipe-ingredient img{width:24px;height:24px;image-rendering:pixelated}.recipe-ingredient b{color:#d1b985;font:18px NocturnePixel,monospace;text-align:center}
.recipe-plus{display:block;color:#90826b;font-size:12px;text-align:center;line-height:14px}.recipe-chest{display:block;margin-top:8px;padding-top:6px;border-top:1px solid #444137;color:#c3ac80;font:17px NocturnePixel,monospace;text-align:center}
.recipe-effect{display:block;text-align:left;line-height:1.7;color:#bbb3a2}
#recipe-help{margin:16px 0;padding:12px;border:2px solid #655944;background:#171820;text-align:left}#recipe-help summary{cursor:pointer;color:#d1ba8d;font:20px NocturnePixel,monospace}#recipe-help p{font-size:11px;line-height:1.7;color:#bdb6a6;margin:12px 0}#recipe-help b{color:#ddccac}
/* Equipment uses the same pixel portraits, icons and metal frames as the HUD. */
.build-card{min-width:0}.build-identity{display:flex;align-items:center;gap:10px}.build-identity .build-portrait{position:static;inset:auto;width:40px;height:48px;flex:none;background:#24252f;outline:2px solid #726552;image-rendering:pixelated}.build-card .build-identity h3{margin:0;font-size:30px}.build-identity span{font:18px NocturnePixel,monospace;color:#c9bda5}.build-card h4{font:20px NocturnePixel,monospace;color:#c9b18c;margin:16px 0 6px;border-bottom:2px solid #4b443d;padding-bottom:4px}.build-items{list-style:none;padding:0;margin:0;display:grid;gap:5px}.build-items li{display:flex;align-items:center;gap:10px;padding:6px;background:#171820;border:1px solid #45413d;min-width:0}.build-items li.transformed{border-color:#987c50}.build-items img{width:32px;height:32px;image-rendering:pixelated;flex:none}.build-items li>div{min-width:0}.build-items strong{display:block;font:21px/1.1 NocturnePixel,monospace;overflow-wrap:anywhere;color:#e2d3b7}.build-items small{display:block;font:14px/1.2 NocturnePixel,monospace}.build-ranks{display:flex;gap:3px;margin-top:4px}.build-ranks i{width:9px;height:3px;background:#3c3b43}.build-ranks i.filled{background:#ac9365}.build-stats{font-size:10px;line-height:1.5;margin:16px 0}.build-stats>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:10px;padding:5px 0;border-bottom:1px solid #353239}.build-stats dt{color:#a7a192}.build-stats dd{margin:0;color:#d3c7b2}.build-empty{color:#999588}.build-card .build-trait{font-size:10px}
#choices.build-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}#choices.build-layout>.build-card:only-child{grid-column:1/-1;width:min(100%,540px);justify-self:center}@media(max-width:700px){#choices.build-layout{grid-template-columns:minmax(0,1fr)}}
/* Pause: immediate objective and input help, optional detailed rules. */
#choices.pause-overview{display:block;margin:18px 0}.pause-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;text-align:left}.pause-controls>div{display:grid;grid-template-columns:32px minmax(0,1fr);gap:4px 8px;background:#171820;border:2px solid #77694e;padding:12px;box-shadow:inset 1px 1px #a69369,inset -1px -1px #393344}.pause-controls strong{grid-row:1/3;font:24px NocturnePixel,monospace;color:#d6bf92}.pause-controls span{font:19px NocturnePixel,monospace;color:#e1d1b3}.pause-controls small{font-size:10px;color:#b9ae99}.modal .pause-essential{font-size:11px;line-height:1.6}#pause-help{text-align:left;background:#171820;border:2px solid #655941;padding:10px 12px;margin-top:16px}#pause-help summary{cursor:pointer;font:20px NocturnePixel,monospace;color:#d5bc92}#pause-help summary:focus-visible{outline:2px solid #c7ba93;outline-offset:3px}.pause-rule-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}.pause-rule-grid h3{font:22px NocturnePixel,monospace;color:#cbb58c;margin:15px 0 6px}.modal .pause-rule-grid p{font-size:11px;line-height:1.6}
/* The active upgrade owner remains explicit during alternating co-op choices. */
#upgrade-owner{max-width:390px;margin:18px auto;padding:10px 14px;text-align:left;background:#171820;border:2px solid #77694e;box-shadow:inset 1px 1px #a69369,inset -1px -1px #393344}#upgrade-owner .build-identity h3{font:28px/1 NocturnePixel,monospace;color:#e1d1b3;margin:3px 0}#upgrade-owner small{font:15px NocturnePixel,monospace;color:#c8b18c}#upgrade-owner .build-identity span{font-size:16px}#upgrade-owner .build-identity>div{min-width:0}
/* Browser review: keep modal titles and boss labels in the pixel UI family. */
.modal h2{font-family:NocturnePixel,monospace;font-size:clamp(34px,4vw,52px);font-weight:400;line-height:1.05;letter-spacing:0;margin:14px 0}.modal>.eyebrow{font-family:NocturnePixel,monospace;font-size:15px;letter-spacing:1px}#actions button{font-family:NocturnePixel,monospace;font-size:20px;line-height:1.1}#boss-name{font-family:NocturnePixel,monospace;font-size:20px;letter-spacing:1px}
/* Compact level choices keep exact rules in an independent disclosure. */
#choices.level-choices{margin:20px 0;align-items:stretch}
.level-choices .upgrade{padding:16px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px;min-height:0}
.level-choices .upgrade h3{margin:0;font-size:28px;line-height:1.05}
.level-choices .upgrade p{margin:0;width:100%}
.level-choices .upgrade small{margin-top:auto;padding-top:6px}
#upgrade-help{border:1px solid #77694e;background:#171820;text-align:left;padding:12px 16px;margin:16px 0}
#upgrade-help summary{cursor:pointer;font:18px NocturnePixel,monospace;color:#c8b18c}
#upgrade-help h3{font:24px NocturnePixel,monospace;color:#e1d1b3;margin:12px 0 4px}
#upgrade-help p{font-size:11px;margin:6px 0}
#upgrade-help section+section{border-top:1px solid #51483b}
/* The bestiary uses real static sprites, at the same scale for every enemy. */
.bestiary-card{display:flex;flex-direction:column;align-items:stretch}
canvas.bestiary-portrait{position:static;inset:auto;order:-1;display:block;width:192px;height:112px;max-width:100%;align-self:center;image-rendering:pixelated;border:1px solid #51483b}
.bestiary-card h3{margin:12px 0 6px;line-height:1.05}
.bestiary-card small{margin-top:auto;padding-top:10px}
.bestiary-rules{border-top:1px solid #51483b;margin:12px 0;text-align:left}
.bestiary-rules summary{padding:10px 0;cursor:pointer;font:18px NocturnePixel,monospace;color:#c8b18c}
.bestiary-rules summary:focus-visible{outline:2px solid #c7ba93;outline-offset:3px}
.bestiary-rules[open]{border-bottom:1px solid #51483b}
#choices.bestiary-layout{align-items:start}
.report-equipment{margin:12px 0 16px;border-top:1px solid #766043;border-bottom:1px solid #51483b}
.report-equipment summary{padding:12px 0;font:18px NocturnePixel,monospace;color:#d4be91;cursor:pointer}
.report-equipment summary:focus-visible{outline:2px solid #c7ba93;outline-offset:3px}
.report-equipment h4{font:20px NocturnePixel,monospace;color:#c8b18c;margin:14px 0 6px}
.report-equipment .build-items{margin-bottom:14px}
#choices.damage-reports{align-items:start}
.run-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:22px 0;text-align:center}
.run-summary>div{padding:10px 6px;background:#1d1e23;border:1px solid #766043;box-shadow:inset 1px 1px #3b3740}
.run-summary dt{font:16px/1.1 NocturnePixel,monospace;color:#b9aa8e;min-height:2.2em}
.run-summary dd{font:30px/1 NocturnePixel,monospace;color:#e0cfab;margin:6px 0 0}
@media(max-width:600px){.run-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.run-summary dt{min-height:0}.run-summary>div{padding:8px}.run-summary dd{font-size:26px}}

/* HUD: separate rank progression from evolution/fusion identity. */
#players .equipment-ranks{position:absolute;left:2px;right:2px;bottom:1px;display:grid;grid-template-columns:repeat(5,1fr);gap:1px;height:2px}
#players .equipment-ranks i{background:#45424a}
#players .equipment-ranks i.filled{background:#bca477}
#players .passive-slot .equipment-ranks i.filled{background:#91a093}
#players .equipment-slot b{bottom:5px}
#players .equipment-form{position:absolute;left:0;top:0;padding:1px;background:#171820;color:#c4a578;font:9px/9px monospace;font-style:normal}

.hud-bonuses{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:3px;margin-top:2px}
.hud-bonus{display:flex;align-items:center;gap:3px;padding:1px 4px 1px 1px;background:#23262b;border:1px solid #5c574a;color:#bdbaaa;font:14px/12px NocturnePixel,monospace}
#players .hud-bonus canvas{position:static;inset:auto;display:block;width:20px;height:22px;image-rendering:pixelated}
.hud-bonus strong{display:block;color:#d8c8a6;font-weight:normal}
@media(max-width:450px){.hud-bonus{font-size:12px;line-height:12px}.hud-bonuses{gap:2px}.hud-bonus strong{display:inline;margin-left:4px}}
/* Programmatic arrow/gamepad focus must stay visible even when the browser's
   :focus-visible heuristic still considers the last input to be a pointer. */
#menu button:focus,#overlay button:focus,#menu summary:focus,#overlay summary:focus{
 outline:2px solid #c7ba93;outline-offset:4px;
}
#choices button.upgrade:focus{background:#303038;border-color:#c7ba93;box-shadow:inset 2px 2px #a69369,inset -2px -2px #393344;}

/* Level choices: solid owned ranks, an outlined offer, no blinking. */
.upgrade-ranks{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#c4b391;font:16px/16px NocturnePixel,monospace}
.upgrade-rank-pips{display:flex;gap:3px}
.upgrade-rank-pips i{display:block;width:9px;height:7px;background:#24242c;border:1px solid #514d53;box-shadow:0 1px #10131a}
.upgrade-rank-pips i.owned{background:#bca477;border-color:#bca477}
.upgrade-rank-pips i.offered{border-color:#d0b988;background:#39302a}
.passive-ranks .upgrade-rank-pips i.owned{background:#91a093;border-color:#91a093}
.passive-ranks .upgrade-rank-pips i.offered{border-color:#b2bfae;background:#2a3430}

/* Narrow level choices: keep identity beside its icon instead of stacking it. */
@media(max-width:700px){
 #choices.level-choices .upgrade{display:grid;grid-template-columns:40px minmax(0,1fr);gap:6px 8px;padding:12px;align-content:start}
 #choices.level-choices .upgrade>.icon{grid-column:1;grid-row:1/3;align-self:center}
 #choices.level-choices .upgrade>.icon img{width:36px;height:36px}
 #choices.level-choices .upgrade>h3{grid-column:2;font-size:24px;line-height:1.1}
 #choices.level-choices .upgrade>.upgrade-ranks{grid-column:2;gap:5px;font-size:14px;line-height:14px}
 #choices.level-choices .upgrade>p,#choices.level-choices .upgrade>small{grid-column:1/-1}
 #choices.level-choices .upgrade>.upgrade-stats{padding:5px 0}
 #choices.level-choices .upgrade>small{padding-top:2px}
}
@media(max-width:700px){
 #choices.level-choices~#actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
 #choices.level-choices~#actions button{min-width:0;min-height:44px;padding:8px 6px;font-size:18px;line-height:1.2}
}
/* Extra stage relics occupy a further row, with a quiet inset corner marker. */
#players .passive-slot.map-extra{border-color:#91a093;box-shadow:inset 2px 2px #65776b}
/* V231 — quiet chest receipts: snapshot ranks, no long combat descriptions. */
.reward-copy .reward-ranks,#reward-feed .reward-copy .reward-ranks{display:flex;align-items:center;gap:8px;margin-top:5px;font:16px NocturnePixel,monospace;line-height:1;color:#c6baa0}
.reward-ranks .reward-pips,#reward-feed .reward-ranks .reward-pips{display:flex;gap:3px;margin:0}
.reward-ranks>span,#reward-feed .reward-ranks>span{margin:0;font:inherit;color:inherit;line-height:1}
.reward-pips i{display:block;width:8px;height:6px;background:#292a31;border:1px solid #645b50;box-sizing:border-box}
.reward-pips i.owned{background:#918974;border-color:#aaa087}
.reward-pips i.gained{background:#b89a62;border-color:#dec49a;box-shadow:0 0 0 1px #403529}
#upgrade-owner .upgrade-pending{display:block;margin-top:8px;padding-top:6px;border-top:1px solid #494337;font-size:13px;line-height:1.3;color:#a69e8c}
/* V241 — compact, quiet grimoire filters. */
#recipe-filters{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;padding:10px;background:#171820;border:2px solid #655944}
#recipe-filters[hidden]{display:none}
#recipe-filters button{min-width:0;min-height:44px;padding:8px 10px;font:18px NocturnePixel,monospace;line-height:1.2;color:#bdb6a6;background:#24242c;border:2px solid #5e574b;box-shadow:inset 0 -2px #111219}
#recipe-filters button[aria-pressed=true]{color:#ead5ac;background:#3c352b;border-color:#b79b67;box-shadow:inset 0 -3px #806b48}
@media(max-width:480px){#recipe-filters{gap:6px;padding:6px}#recipe-filters button{flex:1 1 auto;font-size:16px}}
/* V248 — regional objective stays legible away from its altar. */
.hud-bottom #objective{white-space:pre-line;font:14px/1.25 NocturnePixel,monospace;color:#c7ba9d;padding:5px 7px;border:1px solid #57503f}
@media(max-width:450px){.hud-bottom #objective{font-size:13px}}
@media(min-width:801px){.hud-bottom #objective{left:50%;right:auto;transform:translateX(-50%);max-width:min(36vw,calc(100vw - 560px));text-align:center}}
/* V249 — six slots must fit inside each narrow co-op card. */
.equipment-slots,.relic-slots{grid-template-columns:repeat(6,minmax(0,1fr));min-width:0}
#players .equipment-slot{min-width:0}
#players .equipment-slot img{max-width:100%}
@media(max-width:450px){.player-status{grid-template-columns:28px minmax(0,1fr)}}
/* V250 — quiet one-second segments for temporary bonus duration. */
.bonus-duration{display:grid;gap:1px;height:3px;margin-top:3px;min-width:30px}
.bonus-duration i{display:block;background:#48483e}
.bonus-duration i.remaining{background:#b39b6b}
/* V251 — next chest transformation follows the same per-player priority as rewards. */
.hud-ready-recipe{grid-column:1/-1;display:flex;align-items:center;gap:5px;margin-top:3px;padding-top:4px;border-top:1px solid #6e6046;color:#c9b88e;min-width:0}
.hud-ready-recipe img{width:20px;height:20px;image-rendering:pixelated;flex:0 0 20px}
.hud-ready-recipe span{min-width:0}.hud-ready-recipe small{display:block;font:11px/1.2 NocturnePixel,monospace;color:#9d9989}
.hud-ready-recipe strong{display:block;font:14px/1.15 NocturnePixel,monospace;overflow-wrap:anywhere}
@media(max-width:450px){.hud-ready-recipe strong{font-size:12px}.hud-ready-recipe small{font-size:10px}}
/* V253 — a downed player's bar reports revival, never fictitious health. */
.health.revival-health{background:#272a26;border-color:#6b6952}
.health.revival-health i{background:#9b9b72;box-shadow:inset 0 1px #c1b48c}
/* Boss identity and health share the compact pixel language of the player HUD. */
#boss-hud{display:grid;grid-template-columns:48px minmax(0,1fr);gap:9px;text-align:left;align-items:center;border:2px solid #88634c;box-shadow:inset 0 0 0 1px #352831}
#boss-hud[hidden]{display:none}
#boss-portrait{width:48px;height:48px;image-rendering:pixelated;border:1px solid #766043;background:#232329}
#boss-hud>.boss-details{height:auto;min-width:0;background:none}
#boss-hud #boss-name{font-size:18px;line-height:1;letter-spacing:0}
#boss-phase{font-family:NocturnePixel,monospace;font-size:12px;line-height:1.1;margin:3px 0;color:#c3b29a}
#boss-meter{position:relative;height:7px;background:#39252d;border:1px solid #67434b;margin-top:4px}
#boss-threshold-marks{position:absolute;inset:0;pointer-events:none}.boss-threshold{position:absolute;top:0;bottom:0;width:1px;background:#ddc7a2}#boss-phase-thresholds{display:block;font-family:NocturnePixel,monospace;font-size:11px;line-height:1.1;color:#b8ac95;margin-top:2px}
#boss-health-text{display:block;font-family:NocturnePixel,monospace;font-size:13px;color:#cbb79b;margin-top:2px}
#boss-hud.furious{border-color:#aa6970}#boss-hud.furious #boss-phase{color:#deb0a7}
@media(max-width:450px){#boss-hud{grid-template-columns:36px minmax(0,1fr);gap:6px;width:90vw;max-width:90vw;padding:6px 8px}#boss-portrait{width:36px;height:36px}#boss-hud #boss-name{font-size:16px}#boss-phase{font-size:11px}#boss-health-text{font-size:12px}}
#boss-portrait{position:static;display:block;grid-column:1;grid-row:1;inset:auto}
#boss-hud>.boss-details{grid-column:2;grid-row:1}

#region-overview{font-size:11px;line-height:1.6;color:#c5c9b0;margin:10px 0 4px}#region-rules{margin-top:0}#region-rules #region-description{margin:10px 0 0}

.upgrade .upgrade-recipe{border-left:2px solid #a69b68;padding:5px 8px;margin:7px 0;background:#29302a;color:#c5c9a5;font-size:10px;line-height:1.5}.upgrade-recipe b,.upgrade-recipe span{display:block}.upgrade-recipe b{font-size:8px;letter-spacing:.04em;color:#d2bf8f}
/* V281 — paired, compact desktop equipment panels keep the arena centre open. */
#players .player-status:nth-child(2){border-color:#718a91;box-shadow:inset 2px 2px #91a3a5,inset -2px -2px #343e49,2px 2px #08090e}
@media(min-width:801px){
 #players .player-status{width:226px;padding:6px;grid-template-columns:32px minmax(0,1fr);gap:2px 6px}
 #players .player-status:nth-child(2){margin-top:0}
 #players .hud-portrait{width:32px;height:40px}
 #players .equipment-slot{height:30px}
 #players .player-vitals strong{gap:5px}
 #players .player-vitals strong span{font-size:14px}
 #players .health{margin-top:3px}
 #players .hud-ready-recipe{padding-top:3px;margin-top:2px}
 .hud-bottom #objective{max-width:min(40vw,calc(100vw - 500px))}
 #boss-hud{max-width:calc(100vw - 510px)}
}

.fusion-controls details{font-size:9px;line-height:1.6;color:#b7ad98}.fusion-controls summary{cursor:pointer;color:#d2c5a7}.fusion-controls details p{font-size:9px;margin:6px 0;line-height:1.6}

/* Grimoire search uses the existing parchment and dark-metal palette. */
#recipe-search{margin:16px 0 0;padding:10px;border:2px solid #655944;background:#171820}
#recipe-search[hidden]{display:none}
#recipe-search label{display:block;margin-bottom:6px;color:#c5ae81;font:16px NocturnePixel,monospace}
.recipe-search-row{display:flex;flex-wrap:wrap;gap:8px}
#recipe-query{flex:1 1 200px;min-width:0;width:100%;min-height:44px;box-sizing:border-box;padding:8px 10px;border:2px solid #655944;border-radius:0;background:#101219;color:#ead5ac;font:18px NocturnePixel,monospace}
#recipe-query::placeholder{color:#aaa393;opacity:1}
#recipe-query:focus-visible{outline:2px solid #dac08a;outline-offset:2px}
#recipe-clear{min-height:44px;padding:8px 10px;font:16px NocturnePixel,monospace}
#recipe-results{display:block;margin-top:8px;color:#bdb6a6}

/* Health-driven berserker meter: static pixel segments, no flashing. */
.hud-fury{grid-column:1/-1;color:#c8a58c;font-size:8px;line-height:1.5;padding:3px 0}
.hud-fury>div{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;margin-top:3px;height:3px}
.hud-fury i{background:#342e31}.hud-fury i.filled{background:#b76555}

/* Character arsenal: compact inventory strip, optional recipe ledger. */
.character-arsenal{margin:-8px 0 16px;border:1px solid #655944;background:#171820;color:#c9c0ad}
.arsenal-skills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#494236}
.arsenal-skill{display:flex;align-items:center;gap:8px;min-width:0;padding:9px;background:#202025}
.character-arsenal img{flex:0 0 24px;image-rendering:pixelated;object-fit:contain}
.arsenal-skill>div{min-width:0}.arsenal-skill small{display:block;font:8px monospace;color:#b6aa92;letter-spacing:.5px;line-height:1.5}
.arsenal-skill strong{display:block;font:17px NocturnePixel,monospace;line-height:1.2;color:#e1cfab;overflow-wrap:anywhere}
.arsenal-recipes summary{cursor:pointer;padding:10px 12px;font:16px NocturnePixel,monospace;color:#d1b98b;border-top:1px solid #655944}
.arsenal-recipes summary:focus-visible{outline:2px solid #c7ec8b;outline-offset:-3px}
.arsenal-recipes[open] summary{background:#29252b;border-bottom:1px solid #655944}
.arsenal-recipes article{padding:10px 12px;border-top:1px solid #39333a}.arsenal-recipes h4{display:flex;align-items:center;gap:8px;margin:0 0 7px;font:19px NocturnePixel,monospace;color:#e1cfab}
.arsenal-recipes h4 small{font:9px monospace;color:#b9a57f;margin-left:auto}
.arsenal-recipes p{font-size:10px;line-height:1.65;margin:7px 0;overflow-wrap:anywhere}.arsenal-recipes>.arsenal-rule{padding:0 12px}
.arsenal-recipes .arsenal-rule{color:#aba795}.arsenal-recipes .arsenal-recipe{padding:7px 9px;border-left:2px solid #b79963;background:#29262a;color:#dcc699}.arsenal-recipes .arsenal-recipe b{font:17px NocturnePixel,monospace}
.arsenal-fusion{background:#242129}@media(max-width:380px){.arsenal-skills{grid-template-columns:1fr}.arsenal-skill strong{font-size:18px}}
/* Necromancer occupancy: solid active slots, outlined calls, no flashing. */
.hud-summons{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px;margin:3px 0;color:#c4c6ad}
.hud-summon{display:flex;align-items:center;gap:4px;min-width:0;flex:1 1 100px;border-left:2px solid #5e736b;padding:3px 4px;background:#18201f}
.hud-summon img{width:18px;height:18px;image-rendering:pixelated;flex:none}
.hud-summon strong,.hud-summon small{display:block;font-size:9px;line-height:1.5;font-weight:normal}
.hud-summon strong{color:#d6cfb5}.hud-summon small{color:#99b0a6;font-size:8px}
.summon-slots{display:flex;gap:3px;margin-top:2px}.summon-slots i{width:12px;height:3px;border:1px solid #485a53;background:#28332f}
.summon-slots i.active{background:#a8b99c;border-color:#a8b99c}.summon-slots i.pending{border-color:#b9aa7d;background:transparent}
.hud-summon{pointer-events:auto}
/* Pause field guide: short effects first, complete mechanics on demand. */
#choices.pickup-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;align-items:start}
.pickup-card{min-width:0;text-align:left;border-top:2px solid #9c8054;background:#202322}
.pickup-card-head{display:flex;align-items:center;gap:10px;min-height:48px}.pickup-card-head canvas{position:static;width:40px;height:44px;flex:none;image-rendering:pixelated}.pickup-card-head h3{margin:0;overflow-wrap:anywhere}
.pickup-card .pickup-main-effect{font-size:13px;line-height:1.5;color:#e0c99e;margin:10px 0}
.pickup-facts{margin:0;display:grid;gap:8px}.pickup-facts dt{font-size:9px;text-transform:uppercase;color:#a5aa9e;letter-spacing:.06em}.pickup-facts dd{font-size:11px;line-height:1.6;color:#d0d0bc;margin:1px 0 0}
.pickup-card .pickup-current{border-left:2px solid #91b79c;padding:5px 8px;background:#24372e;color:#c2d8ba;font-size:11px;line-height:1.5}
.pickup-rules{margin-top:12px;border-top:1px solid #525347;padding-top:8px}.pickup-rules summary{cursor:pointer;color:#c2b392;font-size:11px;line-height:1.7}.pickup-rules summary:focus-visible{outline:2px solid #c3aa73;outline-offset:4px}.pickup-rules p{font-size:11px;line-height:1.7;overflow-wrap:anywhere}
.pickup-map-note{grid-column:1/-1;font-size:11px;line-height:1.7;color:#aeb6a7;border-left:2px solid #6c806d;padding:8px 12px}

.hud-tithe{grid-column:1/-1;color:#dfbdc7;font-size:12px;line-height:1.25;padding:4px 0;overflow-wrap:anywhere}.hud-tithe small{display:block;color:#bfb0b9;font-size:11px;line-height:1.3;margin-top:2px}

.planned-recipe{border:1px solid #736649;background:#1d2022;padding:10px 12px;text-align:left;color:#cdbd9e}.planned-recipe>strong{font:20px NocturnePixel,monospace}.planned-recipe>small{display:block;font-size:10px;margin-top:7px;color:#b5ad9d}.planned-ingredients{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.planned-ingredients>span{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:11px;border:1px solid #494642;padding:5px 7px}.planned-ingredients img{width:20px;height:20px;image-rendering:pixelated}.planned-ingredients b{color:#e0c698}.planned-ingredients .complete b{color:#a8c29b}.planned-ingredients small{flex-basis:100%;color:#bcb09c}.level-choices .recipe-slot-warning{padding:8px;border-left:2px solid #bb8760;background:#302823;color:#d7b794;font-size:11px;line-height:1.5}.recipe-slot-warning b,.recipe-slot-warning span{display:block}.recipe-slot-warning b{font:17px NocturnePixel,monospace;margin-bottom:4px}
/* Thin cycle indicator above the icon; rank marks remain below it. */
#players .weapon-recharge{position:absolute;left:11px;right:2px;top:2px;height:2px;background:#373842;pointer-events:auto}
#players .weapon-recharge i{display:block;height:100%;background:#93b5b0;transform-origin:left center}
#players .weapon-recharge.waiting{background:repeating-linear-gradient(90deg,#9b8969 0 2px,transparent 2px 4px)}
#players .weapon-recharge.down{background:#50404a}
#players .weapon-recharge.continuous i{background:#9c9fae}

/* Shared persistent gold, deliberately quieter than combat warnings. */
.gold-counter { color: #d2b67c; font-variant-numeric: tabular-nums; }
.gold-result dd { color: #d2b67c; }
#gold-run { position:absolute; left:116px; top:24px; font:17px NocturnePixel,monospace; background:#171820e8; padding:0 5px; }
@media(max-width:450px){#gold-run{left:105px;font-size:14px}}
#choices.camp-shop{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.camp-upgrade{background:#191a22;border:2px solid #77694e;padding:14px;text-align:left;display:grid;grid-template-columns:42px 1fr;gap:8px 12px}
.camp-upgrade>img{width:40px;height:40px;image-rendering:pixelated}.camp-upgrade h3{font:24px NocturnePixel,monospace;margin:0;color:#dfcfab}.camp-upgrade h3 small{font-size:18px;color:#b59b70}.camp-upgrade p{grid-column:1/-1;line-height:1.6;margin:0;color:#b9b6a6}.camp-upgrade button{grid-column:1/-1;font:18px NocturnePixel,monospace;padding:10px;color:#e1c68e}.camp-upgrade button:disabled{opacity:.55;cursor:default}
@media(max-width:600px){#choices.camp-shop{grid-template-columns:1fr}}
.camp-upgrade .recruit-portrait{position:static;inset:auto;width:40px;height:48px;image-rendering:pixelated}

/* Keep the optional seal objective separate from the current attack instruction. */
#boss-phase{white-space:pre-line}


#choices.refuge-residents{display:grid;grid-template-columns:1fr;gap:14px;text-align:left}
.refuge-resident{display:grid;grid-template-columns:54px minmax(0,1fr);gap:10px 16px;border:2px solid #70644f;background:#191b20;padding:18px;box-shadow:inset 2px 2px #35312b,inset -2px -2px #101218}
.refuge-emblem{align-self:center;background:#101318;border:2px solid #635b49;padding:7px;box-shadow:3px 3px #0b0c10}.refuge-emblem img{display:block;width:36px;height:36px;image-rendering:pixelated}
.refuge-resident.present{grid-template-columns:100px minmax(0,1fr)}
.refuge-emblem.refuge-portrait{padding:0;align-self:start}
.refuge-portrait img{width:96px;height:112px;object-fit:contain}
.refuge-resident.absent .refuge-emblem{filter:grayscale(1);opacity:.55}.refuge-resident.present{border-left:5px solid #b39762}.refuge-heading small{font:16px NocturnePixel,monospace;letter-spacing:1px;color:#b29766}.refuge-heading h3{font:28px NocturnePixel,monospace;margin:3px 0 6px;color:#e1d2ad}.refuge-heading strong{font:18px NocturnePixel,monospace;color:#b8bdb0}
.modal .refuge-resident p{grid-column:1/-1;font-size:12px;line-height:1.7;margin:0;color:#c4c0af}.modal .refuge-resident .refuge-words{border-left:2px solid #756b52;padding:10px 14px;background:#12161a;color:#d8c8a7}.refuge-resident button{grid-column:2;justify-self:start;font:19px NocturnePixel,monospace;padding:8px 12px}.refuge-resident button:focus-visible{outline:2px solid #e0c68d;outline-offset:3px}
@media(max-width:600px){.refuge-resident{padding:12px;gap:10px}.refuge-heading h3{font-size:24px}.refuge-resident button{grid-column:1/-1}}
.modal .refuge-resident .refuge-contract{border-top:1px solid #695d48;padding-top:12px;color:#d2bc8e}
.refuge-tableau{margin:0 0 4px;border:2px solid #77694e;background:#10151b;padding:6px;box-shadow:inset 1px 1px #aca079}.refuge-tableau canvas{position:static;inset:auto;display:block;width:100%;height:auto;image-rendering:pixelated}.refuge-tableau figcaption{font:15px NocturnePixel,monospace;letter-spacing:1px;color:#b3a17e;text-align:center;padding:8px 4px 3px}

/* Encounter windows: steady pixel gauge, no pulsing or screen glow. */
#boss-opportunity{margin-top:5px;color:#b9ac8d}
#boss-opportunity[hidden]{display:none}
#boss-opportunity-label{display:block;font-family:NocturnePixel,monospace;font-size:11px;line-height:1.15}
#boss-opportunity-meter{height:4px;margin-top:3px;border:1px solid #655744;background:#25232b}
#boss-opportunity-fill{display:block;height:100%;background:#b9a06e}
#boss-opportunity[data-tone="safe"]{color:#acd0b8}
#boss-opportunity[data-tone="safe"] #boss-opportunity-fill{background:#8cae9a}
#boss-opportunity[data-tone="heat"] #boss-opportunity-fill{background:#bd8960}

#boss-opportunity[data-tone="warning"]{color:#d9a7a1}
#boss-opportunity[data-tone="warning"] #boss-opportunity-fill{background:#bb7774}

.castle-ending{grid-column:1 / -1;margin-top:14px;padding:12px;border:1px solid #756454;background:#1c1c25;text-align:left}.castle-ending summary{cursor:pointer;color:#d2b98b;line-height:1.6}.castle-epilogue{max-width:64ch;margin:0 auto;text-align:left}.castle-epilogue h3{color:#d2b98b;font-size:14px;letter-spacing:1px}.castle-epilogue p{color:#c6bfb4;line-height:1.7;margin:12px 0;overflow-wrap:anywhere}.castle-ending:focus-within{outline:1px solid #c8ad80;outline-offset:3px}

.report-wounds{margin:12px 0;padding:12px;border:1px solid #665348;background:#232125}.report-wounds h4{margin:0 0 8px;color:#d4b99a}.report-wounds p,.report-wounds li{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.report-wounds ul{margin:8px 0;padding-left:18px}.report-wounds .report-wounds-note{color:#b9afa1;font-size:11px;margin-bottom:0}

/* V658: the lost chunk holds then drains; the actual meter stays immediate. */
.health{position:relative;overflow:hidden}.health>i{position:relative;z-index:1}.health .health-loss{position:absolute;top:0;bottom:0;background:#c09c73;box-shadow:inset 0 1px #e1c69b,inset 0 -1px #8a6557;pointer-events:none}
/* V661: defensive contributions remain readable beside offensive totals. */
.damage-row .report-detail{font-size:11px;line-height:1.5;overflow-wrap:anywhere}

/* Exploration memories precede the expandable completion catalogues. */
.archive-secret{border-color:#a38b57;box-shadow:inset 0 0 0 2px #353025;min-height:0}
.archive-secret h3{color:#e0c78c}.archive-secret p{font-size:12px;line-height:1.7}
.archive-card summary{cursor:pointer;color:#cbb58e;font-size:11px;padding:10px 4px;min-height:36px;letter-spacing:.6px}
.archive-card summary:hover{color:#f0dfb9}.archive-card summary:focus-visible{outline:2px solid #cbb58e;outline-offset:3px}
.archive-card details[open] summary{border-bottom:1px solid #655b47;margin-bottom:10px}

.hud-thorn-ward strong{font-size:12px}
.hud-thorn-ward small{font-size:11px;color:#b9c8bb}

/* Suture state must be readable while watching the moving link. */
.hud-steel-suture strong,.hud-grave-hook strong{font-size:11px;line-height:1.45}
.hud-steel-suture small,.hud-grave-hook small{font-size:10px;line-height:1.4;color:#b5c3b4}
.hud-steel-suture>span,.hud-grave-hook>span{min-width:0;overflow-wrap:break-word}

/* Seven destinations: retain readable names on narrow menus. */
@media(max-width:480px){#regions{grid-template-columns:repeat(2,minmax(0,1fr))}.region-card strong{font-size:18px}}

/* Regional trial rules span the resident card, including narrow screens. */
.refuge-resident .refuge-trial-rules{grid-column:1/-1;min-width:0;width:100%;box-sizing:border-box;background:#12161a;border:1px solid #695d48;padding:10px 12px}
.refuge-trial-rules summary{cursor:pointer;font:18px NocturnePixel,monospace;color:#d2bc8e;line-height:1.3;overflow-wrap:anywhere}
.modal .refuge-trial-rules p{margin-top:8px}
.refuge-trial-rules summary:focus-visible{outline:2px solid #e0c68d;outline-offset:3px}

/* Pin recall needs readable timing alongside the compact equipment slots. */
.hud-pilgrim-pins span{min-width:0}
.hud-pilgrim-pins strong{font-size:12px;line-height:1.3}
.hud-pilgrim-pins small{font-size:10px;line-height:1.35}

.last-rite-status{grid-column:1/-1;min-width:0;color:#c5b98b;font-size:11px;line-height:1.4;margin:3px 0;letter-spacing:.3px}
.hud-frost-prison span{min-width:0}
.hud-frost-prison strong{font-size:12px;line-height:1.3}
.hud-frost-prison small{font-size:10px;line-height:1.35}
/* Compact chest receipts keep the centre of a narrow battlefield visible. */
#reward-feed .reward-mobile-detail,#reward-feed .reward-feed-help{display:none}
@media(max-width:800px){
 #reward-feed{width:calc(100vw - 24px);max-width:390px;box-sizing:border-box;padding:7px 9px}
 #reward-feed:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 10px}
 #reward-feed>small{grid-column:1/-1;font-size:14px;line-height:1}
 #reward-feed>.reward-item{margin:0;grid-template-columns:22px minmax(0,1fr);gap:6px}
 #reward-feed>.reward-item:only-of-type{grid-column:1/-1}
 #reward-feed .reward-icon{width:22px;height:22px;border-width:1px}
 #reward-feed .reward-icon img{width:20px;height:20px}
 #reward-feed .reward-copy b{font-size:18px;line-height:1}
 #reward-feed .reward-copy small{font-size:8px;line-height:1.3;letter-spacing:0}
 #reward-feed .reward-detail{display:none}
 #reward-feed [data-kind="heal"] .reward-detail,#reward-feed .reward-mobile-detail{display:block;font:13px/1.1 NocturnePixel,monospace;margin-top:3px}
 #reward-feed .reward-copy .reward-ranks{flex-wrap:wrap;gap:4px;font-size:14px}
 #reward-feed .reward-ranks .reward-pips{gap:2px}
 #reward-feed .reward-feed-help{display:block;color:#b4b09e;font-size:12px;padding-top:3px;border-top:1px solid #51483b}
}
@media(max-width:800px) and (max-height:550px){
 #reward-feed{top:110px;max-width:260px}
 #reward-feed:not([hidden]){grid-template-columns:minmax(0,1fr)}
 #reward-feed>.reward-item{grid-column:1/-1}
}
.hud-blood-clock>span{min-width:0;overflow-wrap:break-word}
.hud-blood-clock strong{font-size:11px;line-height:1.4}
.hud-blood-clock small{font-size:10px;line-height:1.4;color:#c6b5ba}

/* Small-screen boss panel: give the actionable instruction the full width. */
@media(max-width:450px){
 #boss-hud{width:calc(100vw - 16px);max-width:calc(100vw - 16px);grid-template-columns:36px minmax(0,1fr) minmax(0,1fr);gap:3px 7px;padding:7px 8px}
 #boss-hud>.boss-details{display:contents}
 #boss-portrait{grid-column:1;grid-row:1/3;align-self:center}
 #boss-hud #boss-name{grid-column:2/4;grid-row:1;font-size:18px;line-height:1.05}
 #boss-meter{grid-column:2/4;grid-row:2;margin-top:0}
 #boss-health-text{grid-column:1/3;grid-row:3;font-size:13px;margin-top:0}
 #boss-phase-thresholds{grid-column:3;grid-row:3;text-align:right;font-size:12px;margin-top:0}
 #boss-phase{grid-column:1/-1;grid-row:4;font-size:16px;line-height:1.15;margin:3px 0 0;padding-top:5px;border-top:1px solid #57424a;overflow-wrap:break-word}
 #boss-opportunity{grid-column:1/-1;grid-row:5;margin-top:3px}
 #boss-opportunity-label{font-size:13px;line-height:1.15}
}

/* Boss objective duplicate: reclaim its mobile row without shrinking instructions. */
@media(max-width:450px){
 #hud:has(#boss-hud:not([hidden])) #objective[data-boss-duplicate="true"]{display:none}
 #hud:has(#objective[data-boss-duplicate="true"]) #boss-hud:not([hidden]){top:80px}
}

/* Desktop boss panel: reclaim duplicate objective space, keep instructions full width. */
@media(min-width:801px){
 #hud:has(#boss-hud:not([hidden])) #objective[data-boss-duplicate="true"]{display:none}
 #hud:has(#objective[data-boss-duplicate="true"]) #boss-hud:not([hidden]){top:66px}
 #boss-hud{grid-template-columns:40px minmax(0,1fr) minmax(0,1fr);gap:3px 8px;padding:7px 10px}
 #boss-hud>.boss-details{display:contents}
 #boss-portrait{width:40px;height:40px;grid-column:1;grid-row:1/4;align-self:center}
 #boss-hud #boss-name{grid-column:2/4;grid-row:1}
 #boss-meter{grid-column:2/4;grid-row:2;margin-top:0}
 #boss-health-text{grid-column:2;grid-row:3;margin-top:0}
 #boss-phase-thresholds{grid-column:3;grid-row:3;text-align:right;margin-top:0}
 #boss-phase{grid-column:1/-1;grid-row:4;font-size:14px;line-height:1.15;margin:2px 0 0;overflow-wrap:break-word}
 #boss-opportunity{grid-column:1/-1;grid-row:5;margin-top:2px}
}

/* PC keyboard settings: each player's complete controls stay in one column. */
#choices.keyboard-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;text-align:left}
.keyboard-player{background:#171820;border:2px solid #77694e;padding:14px;min-width:0}
.keyboard-player h3{font:26px NocturnePixel,monospace;color:#d6bf92;margin:0 0 12px}
.keyboard-player button{display:block;width:100%;text-align:left;font:19px NocturnePixel,monospace;line-height:1.2;padding:10px;margin:6px 0;min-height:44px}
.keyboard-player button[aria-pressed=true]{border-color:#dfc98d;background:#343024;color:#fff0cb}

.character-arsenal .arsenal-opening{margin:0;padding:11px 12px;border-bottom:1px solid #655944;font:18px/1.25 NocturnePixel,monospace;color:#d7cbb6;text-align:left}.arsenal-opening b{display:block;font:15px NocturnePixel,monospace;letter-spacing:.7px;color:#c5a878;margin-bottom:5px}

.entry-options{border:1px solid #655944;background:#171820;padding:12px;margin:12px 0}
.entry-options>small{display:block;font:16px NocturnePixel,monospace;color:#c5a878;margin-bottom:8px}
.entry-options>button{font:18px NocturnePixel,monospace;padding:9px 11px;margin:0 7px 7px 0}
.entry-options>button[aria-pressed=true]{border-color:#d3b97b;background:#383329;color:#f0ddba}
.entry-options>p{font:17px/1.3 NocturnePixel,monospace;color:#c4bba8;margin:3px 0}
/* End-of-run bridge to the shared camp economy, PC/laptop. */
.run-summary>.camp-budget{grid-column:1/-1;text-align:left;padding:12px 14px;border-color:#8c7953}
.run-summary .camp-budget dt{min-height:0;color:#d2b67c}
.run-summary .camp-budget dd{font:18px/1.25 NocturnePixel,monospace;margin-top:5px}
.run-summary .camp-budget small{display:block;margin-top:5px;font:15px/1.3 NocturnePixel,monospace;color:#b9aa8e}
/* Keep the shared-bank totals prominent and group their four income sources. */
.run-summary>.gold-breakdown{grid-column:span 3;padding:8px 10px}
.run-summary .gold-breakdown>dt{min-height:0;font-size:14px;color:#d2b67c}
.run-summary .gold-breakdown>dd{margin:5px 0 0}
.gold-breakdown dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:0}
.run-summary .gold-detail dt{font-size:14px;min-height:2.2em}
.run-summary .gold-detail dd{font-size:22px;margin:2px 0 0;color:#d2b67c;overflow-wrap:anywhere}
.gold-breakdown .gold-bonus{grid-column:1/-1;display:flex;justify-content:center;align-items:baseline;gap:8px;border-top:1px solid #4d4538;padding-top:4px}
.run-summary .gold-bonus dt{font-size:13px;min-height:0}
.run-summary .gold-bonus dd{font-size:16px;margin:0;color:#d2b67c}
.player-vitals .revival-protection{color:#b8d5c4;font-size:12px;white-space:nowrap}

/* Shared chest gold is shown once, with the first reward receipt. */
.reward-copy .reward-gold,#reward-feed .reward-copy .reward-gold{display:block;margin-top:6px;padding-top:5px;border-top:1px solid #655238;color:#dfbd79;font:16px/1.1 NocturnePixel,monospace}

.run-summary>.boss-result{grid-column:1/-1;text-align:left;padding:10px 14px;border-color:#70677d}
.run-summary .boss-result dt{min-height:0;font-size:15px;color:#c4afce}
.run-summary .boss-result dd{font:20px/1.2 NocturnePixel,monospace;margin:5px 0 0}
.boss-result strong{font-weight:normal}.boss-result small{display:block;margin-top:4px;font:16px/1.25 NocturnePixel,monospace;color:#c3b9a8}
.boss-result-meter{display:block;height:5px;background:#15151b;border:1px solid #514453;margin-top:7px;overflow:hidden}
.boss-result-meter i{display:block;height:100%;background:#a86779}

/* Complete ending illustration; the optional ending controls its visibility. */
.castle-epilogue-art{display:block;width:100%;max-width:640px;height:auto;object-fit:contain;margin:14px auto;border:1px solid #756454;box-sizing:border-box;image-rendering:pixelated}

#choices>.castle-epilogue-card{grid-column:1/-1;width:100%;text-align:left}
.castle-epilogue{max-width:640px}

/* V1158 : annonce de fusion ou d’évolution à l’ouverture d’un coffre — carte centrée, sur toute la largeur. */
#choices .upgrade.transformation-notice{grid-column:1/-1;width:100%;max-width:680px;margin:0 auto;box-sizing:border-box}
#choices .upgrade.transformation-notice .reward-copy>span,#choices .upgrade.transformation-notice>small{font-size:12px;line-height:1.5}
#choices .upgrade.transformation-notice .transformation-summary{margin:0 0 12px;font-size:16px;line-height:1.4;color:#f2e6c4}
/* Match the announcement box to its text so HUD clearance can place it accurately. */
#toast{left:50%;width:max-content;max-width:min(360px,calc(100% - 32px));transform:translateX(-50%)}
/* Leave room beside tall cooperative power-up indicators on compact laptops. */
@media(min-width:1001px) and (max-width:1300px){#boss-hud{width:400px}}

/* A fixed pixel cross on the existing boon icon: no panel flash or layout shift. */
.hud-bonus-healing{position:relative}
.hud-bonus-healing::after{content:"";position:absolute;left:14px;top:2px;width:7px;height:7px;background:#9ac4aa;clip-path:polygon(2px 0,5px 0,5px 2px,7px 2px,7px 5px,5px 5px,5px 7px,2px 7px,2px 5px,0 5px,0 2px,2px 2px);pointer-events:none}
