:root{--ui-page-bg:#0e0a07;--ui-panel-bg:#18120ceb;--ui-panel-bg-solid:#17110b;--ui-panel-bg-raised:#241b11;--ui-panel-vignette:linear-gradient(180deg, #5e401e38, #0000 38%, #0000003d);--ui-border:#6d5731;--ui-border-strong:#98783d;--ui-border-dim:#46381f;--ui-inlay:#0a0703;--ui-accent:#e0a935;--ui-accent-soft:#cfa75c;--ui-accent-glow:#e0a9354d;--ui-focus:#ffdf9e;--ui-text:#ecdfc3;--ui-text-bright:#f9f0da;--ui-text-dim:#b3a17f;--ui-heading:#e9c87f;--ui-key-bg:#2e2213;--ui-key-border:#8b6f3c;--ui-ready:#7fbf72;--ui-warn:#ffd27d;--ui-danger:#e25b52;--ui-danger-text:#ffc9c2;--ui-muted-state:#9b8e75;--ui-arcane:#8a76c0;--rarity-magic:#6da5ff;--rarity-rare:#f0c75e;--rarity-unique:#ff8000;--ui-font-heading:"Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;color:var(--ui-text);background:var(--ui-page-bg);font-synthesis:none;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;padding:clamp(1rem,3vw,2.5rem)}.technical-shell{width:min(100%,1080px);margin-inline:auto}body.combat-mode{width:100vw;height:100vh;padding:0;overflow:hidden}body.combat-mode #app,.combat-shell,.combat-shell .game-region,.combat-shell #game-host{width:100%;height:100%}.combat-shell{max-width:none;margin:0;position:relative}.combat-shell .diagnostic-shell,.combat-vitals-hud,.combat-minimap,.combat-action-hud,.combat-paused-hud,.item-menu{border:1px solid var(--ui-border);background-color:var(--ui-panel-bg);background-image:var(--ui-panel-vignette);box-shadow:inset 0 0 0 1px var(--ui-inlay), inset 0 0 0 2px var(--ui-border-dim), 0 .6rem 1.8rem #00000073;position:relative}.combat-shell .diagnostic-shell:after,.combat-vitals-hud:after,.combat-minimap:after,.combat-action-hud:after,.combat-paused-hud:after,.item-menu:after{content:"";background-image:linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft));pointer-events:none;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-size:.7rem 1px,1px .7rem,.7rem 1px,1px .7rem,.7rem 1px,1px .7rem,.7rem 1px,1px .7rem;position:absolute;inset:3px}.combat-shell .diagnostic-shell{z-index:2;pointer-events:none;border-radius:.45rem;width:auto;margin:0;padding:.65rem .8rem;position:absolute;top:1rem;left:1rem}.combat-shell .diagnostic-shell h1{font-size:clamp(1rem,2vw,1.25rem)}.combat-shell .boot-status,.combat-shell .persistence-fixture{display:none}.combat-shell .diagnostics{gap:.35rem .8rem;margin-top:.4rem;display:flex}.combat-shell .diagnostics>div{display:none}.combat-shell .diagnostics>.combat-essential-diagnostic{box-shadow:none;background:0 0;border:0;gap:.25rem;padding:0;font-size:.67rem;line-height:1.2;display:flex}.combat-shell .diagnostics>.combat-essential-diagnostic dd{margin:0}.combat-shell .shell-controls{z-index:2;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.combat-shell .shell-controls button,.combat-shell .shell-controls output{display:none}.combat-shell .shell-controls p{color:var(--ui-text);font-size:.85rem}.combat-vitals-stack{z-index:3;pointer-events:none;gap:.4rem;width:min(14rem,100vw - 2rem);display:grid;position:absolute;bottom:1rem;right:1rem}.combat-vitals-hud{pointer-events:none;border-radius:.45rem;gap:.45rem;width:100%;padding:.55rem .65rem;display:grid}.combat-minimap{z-index:3;pointer-events:none;border-radius:.45rem;gap:.25rem;width:min(11.5rem,100vw - 2rem);padding:.4rem .45rem .5rem;display:grid;position:absolute;top:1rem;right:1rem}.combat-minimap-label{color:var(--ui-heading);font-family:var(--ui-font-heading);letter-spacing:.09em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.combat-minimap-canvas{aspect-ratio:3/2;border-radius:.25rem;width:100%;display:block}.combat-minimap-void{fill:#0b0805}.combat-minimap-bounds{fill:none;stroke-width:22px;stroke-linejoin:miter}.combat-minimap-marker-player{fill:#e8f1ff}.combat-minimap-marker-enemy{fill:#ef476f}.combat-minimap-marker-elite{fill:#f59e0b}.combat-minimap-marker-boss{fill:#a855f7}.combat-minimap-marker-portal{fill:#64d8cb}.combat-minimap-marker-node{fill:#b45309}.combat-minimap-marker-forge{fill:#fb923c}.combat-minimap-marker-vendor{fill:#e8b86d}.combat-minimap-marker-quest{fill:#c084fc}.combat-action-hud{z-index:2;pointer-events:none;border-radius:.45rem;gap:.3rem;width:min(18rem,100vw - 2rem);padding:.4rem;display:grid;position:absolute;bottom:1rem;left:1rem}.combat-flask-list,.combat-ability-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.combat-flask-slot{border:1px solid var(--ui-border-dim);background:radial-gradient(circle at 50% 60%, #3a2c1a 0 22%, transparent 24%), var(--ui-panel-bg-raised);border-radius:.3rem;align-content:start;gap:.15rem;min-height:2.5rem;display:grid;position:relative;overflow:hidden}.combat-flask-slot kbd{position:absolute;top:.2rem;left:.2rem}.combat-flask-slot span{color:var(--ui-text);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:1.15rem;padding:0 .2rem .15rem;font-size:.52rem;line-height:1.15;display:-webkit-box;overflow:hidden}.combat-flask-slot[data-rarity=magic]{border-color:var(--rarity-magic)}.combat-flask-slot[data-rarity=rare]{border-color:var(--rarity-rare)}.combat-ability{border:1px solid var(--ui-border);background:radial-gradient(circle at 50% 48%, #3a2c1a 0 24%, transparent 26%), var(--ui-panel-bg-raised);min-width:0;min-height:4.2rem;box-shadow:inset 0 0 0 1px var(--ui-inlay);border-radius:.35rem;flex-direction:column;justify-content:space-between;gap:.15rem;padding:.3rem;display:flex;position:relative;overflow:hidden}.combat-ability[data-state=ready]{border-color:var(--ui-ready)}.combat-ability[data-state=busy],.combat-ability[data-state=insufficient-mana],.combat-ability[data-state=defeated]{border-color:var(--ui-border-dim);color:var(--ui-muted-state)}.combat-ability-cooldown{z-index:0;background:#080502bd;position:absolute;bottom:0;left:0;right:0}.combat-ability-heading,.combat-ability-state{z-index:1;position:relative}.combat-ability-heading{gap:.2rem;min-width:0;display:grid}.combat-ability kbd,.combat-flask-slot kbd{border:1px solid var(--ui-key-border);color:var(--ui-text-bright);background:var(--ui-key-bg);border-radius:.25rem;font-family:inherit;font-size:.66rem;font-weight:800;line-height:1}.combat-ability kbd{text-align:center;flex:none;min-width:1.55rem;padding:.28rem .3rem}.combat-ability strong{text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;line-height:1.15;overflow:hidden}.combat-ability-state{color:var(--ui-ready);align-self:end;font-size:.58rem;font-weight:700}.combat-ability[data-state=cooldown] .combat-ability-state{color:var(--ui-warn)}.combat-ability[data-state=busy] .combat-ability-state,.combat-ability[data-state=insufficient-mana] .combat-ability-state,.combat-ability[data-state=defeated] .combat-ability-state{color:var(--ui-muted-state)}.combat-statuses{flex-wrap:wrap;justify-content:center;gap:.3rem;display:flex}.combat-status{border:1px solid var(--ui-border);color:var(--ui-text);background:var(--ui-panel-bg-raised);border-radius:999px;padding:.18rem .42rem;font-size:.65rem}.combat-vitals-row{grid-template-columns:1.6rem 1fr;align-items:center;gap:.45rem;display:grid}.combat-vitals-label{color:var(--ui-heading);font-family:var(--ui-font-heading);letter-spacing:.08em;font-size:.7rem;font-weight:700}.combat-vitals-meter{border-radius:.25rem;height:.75rem;overflow:hidden}.combat-health-meter{background:#2a120e;border:1px solid #a3524d}.combat-vitals-meter span{height:100%;transition:width 80ms linear;display:block}.combat-health-meter span{background:#ef476f}.combat-vitals-row[data-state=dead] .combat-health-meter span{background:#737f8f}.combat-mana-meter{background:#101d2e;border:1px solid #4a6c96}.combat-mana-meter span{background:#3f8fe8}.combat-experience-meter{background:#1e1329;border:1px solid #77588f}.combat-experience-meter span{background:#9b5de5}.combat-paused-hud{z-index:2;border-color:var(--ui-accent-soft);color:var(--ui-heading);border-radius:.45rem;gap:.2rem;padding:.55rem .75rem;display:grid;position:absolute;top:8rem;left:1rem}.combat-menu-toggles{pointer-events:auto;justify-content:flex-end;gap:.35rem;display:flex}.inventory-menu-toggle,.character-menu-toggle{background:var(--ui-panel-bg-solid);pointer-events:auto;min-height:2.4rem;padding:.4rem .55rem}.inventory-menu-toggle kbd,.character-menu-toggle kbd,.item-menu kbd{border:1px solid var(--ui-key-border);color:var(--ui-text-bright);background:var(--ui-key-bg);font:inherit;border-radius:.25rem;padding:.15rem .32rem;font-size:.7rem;font-weight:800}.item-menu{z-index:4;border-color:var(--ui-border-strong);width:min(62rem,100% - clamp(1rem,6vw,4rem));height:min(44rem,100% - clamp(1rem,6vw,4rem));box-shadow:inset 0 0 0 1px var(--ui-inlay), inset 0 0 0 2px var(--ui-border-dim), 0 1.5rem 5rem #000000b3;background-color:#17110bfa;border-radius:.7rem;grid-template-rows:auto minmax(0,1fr);margin:auto;display:grid;position:absolute;inset:clamp(.5rem,3vw,2rem);overflow:hidden}.item-menu:focus{outline:2px solid var(--ui-focus);outline-offset:-4px}.item-menu>header{border-bottom:1px solid var(--ui-border-dim);justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.item-menu h2,.item-menu h3,.item-menu p{margin:0}.item-menu h2{color:var(--ui-text-bright);font-family:var(--ui-font-heading);letter-spacing:.02em;font-size:clamp(1.15rem,3vw,1.65rem)}.item-menu h3{color:var(--ui-heading);font-family:var(--ui-font-heading);letter-spacing:.07em;text-transform:uppercase;margin-bottom:.55rem;font-size:.86rem}.item-menu-layout{grid-template-columns:minmax(14rem,1.4fr) minmax(10rem,.85fr) minmax(13rem,1fr);gap:1rem;padding:1rem;display:grid;overflow:auto}.inventory-grid-scroll{max-height:min(32rem,58vh);margin-bottom:.7rem;padding-right:.25rem;overflow-y:auto}.inventory-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.inventory-slot{border-color:var(--ui-border-dim);background:var(--ui-panel-bg-raised);width:100%;min-height:3.6rem;padding:.35rem;font-size:.72rem;position:relative;overflow:hidden}.inventory-slot span{overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.inventory-slot small{position:absolute;bottom:.2rem;right:.25rem}.inventory-slot.selected,.equipment-slot.selected{border-color:var(--ui-focus);box-shadow:inset 0 0 0 1px var(--ui-focus)}.stone-choice ul{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.paper-doll{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:".helmet amulet""mainhand chest offhand""ring1 belt ring2"".boots.""flasks flasks flasks";gap:.45rem;display:grid}.doll-helmet{grid-area:helmet}.doll-amulet{grid-area:amulet;align-self:end}.doll-chest{grid-area:chest}.doll-main-hand{grid-area:mainhand}.doll-offhand{grid-area:offhand}.doll-belt{grid-area:belt}.doll-boots{grid-area:boots}.doll-ring-1{grid-area:ring1}.doll-ring-2{grid-area:ring2}.paper-doll-flasks{grid-area:flasks;grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.paper-doll-flask{border-style:dashed;gap:.15rem;min-height:3.4rem;padding:.3rem;display:grid}.paper-doll-flask kbd{border:1px solid var(--ui-key-border);min-width:1.2rem;color:var(--ui-text-bright);background:var(--ui-key-bg);font:inherit;text-align:center;border-radius:.25rem;justify-self:start;padding:.12rem .28rem;font-size:.62rem;font-weight:800}.paper-doll-flask strong{color:var(--ui-text-dim);letter-spacing:.05em;text-transform:uppercase;font-size:.58rem}.paper-doll-flask span{color:var(--ui-text-dim);font-size:.68rem}.equipment-slot{border-color:var(--ui-border);text-align:left;touch-action:none;gap:.2rem;width:100%;min-height:3.75rem;padding:.35rem;display:grid}.equipment-slot strong{color:var(--ui-heading);letter-spacing:.05em;text-transform:uppercase;font-size:.62rem}.equipment-slot span{color:var(--ui-text);overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.72rem;display:-webkit-box;overflow:hidden}.inventory-slot{touch-action:none}.inventory-slot[data-rarity=magic],.equipment-slot[data-rarity=magic]{border-color:var(--rarity-magic)}.inventory-slot[data-rarity=rare],.equipment-slot[data-rarity=rare]{border-color:var(--rarity-rare)}.inventory-slot[data-rarity=unique],.equipment-slot[data-rarity=unique]{border-color:var(--rarity-unique)}.item-menu-layout.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.equipment-slot.drop-valid{border-color:var(--ui-ready);box-shadow:inset 0 0 0 1px var(--ui-ready)}.equipment-slot.drop-invalid{border-color:var(--ui-border-dim);opacity:.45}.equipment-slot.drop-hover{background:#223018}.inventory-panel.drop-valid{outline:1px dashed var(--ui-ready);outline-offset:4px;border-radius:.45rem}.inventory-panel.drop-hover{background:#7fbf7214}.drag-ghost{z-index:6;border:1px solid var(--ui-accent);pointer-events:none;background:#17110bf2;border-radius:.35rem;max-width:11rem;padding:.3rem .5rem;font-size:.72rem;position:fixed;transform:translate(.75rem,.75rem)}.item-actions{gap:.45rem;margin-top:.7rem;display:grid}.item-actions button{text-align:left;min-height:2.3rem;padding:.4rem .55rem;font-size:.78rem}.unequip-button{border-color:var(--ui-border);min-height:2rem;padding:.3rem .45rem;font-size:.7rem}.item-tooltip{border:1px solid var(--ui-border);background:var(--ui-panel-bg-raised);min-height:12rem;box-shadow:inset 0 0 0 1px var(--ui-inlay);border-radius:.45rem;padding:.85rem}.item-tooltip.rarity-magic{border-color:var(--rarity-magic)}.item-tooltip.rarity-magic .item-rarity{color:var(--rarity-magic)}.item-tooltip.rarity-rare{border-color:var(--rarity-rare)}.item-tooltip.rarity-rare .item-rarity{color:var(--rarity-rare)}.item-tooltip.rarity-unique{border-color:var(--rarity-unique)}.item-tooltip.rarity-unique .item-rarity{color:var(--rarity-unique)}.item-tooltip h3{color:var(--ui-text-bright);letter-spacing:normal;text-transform:none;margin:.2rem 0 .45rem;font-size:1rem}.item-tooltip .item-rarity{color:var(--ui-text-dim);letter-spacing:.1em;text-transform:uppercase;font-size:.68rem;font-weight:800}.item-tooltip ul{gap:.35rem;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.item-tooltip li{color:var(--ui-text);font-size:.78rem}.item-tooltip li span{color:var(--ui-accent-soft);text-transform:uppercase;font-size:.65rem;font-weight:800}.item-tooltip li .affix-tier{border:1px solid var(--ui-border);color:var(--ui-text-dim);background:var(--ui-panel-bg-solid);border-radius:.25rem;padding:.05rem .3rem;font-size:.6rem}.item-tooltip li .affix-tier[data-tier="1"]{border-color:var(--rarity-rare);color:var(--ui-warn)}.item-tooltip-empty{color:var(--ui-text-dim);text-align:center;place-items:center;display:grid}.stone-choice{border:1px solid var(--ui-arcane);background:#1c1426;border-radius:.45rem;grid-column:1/-1;padding:.75rem}.stone-choice button{text-align:left;width:100%;min-height:2.3rem;padding:.4rem .55rem}.character-menu-layout{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-height:0;padding:1rem;display:grid;overflow:auto}.character-summary,.character-attribute-list,.character-passive-list,.character-loadout-list{margin:0;padding:0}.character-attribute-list,.character-passive-list,.character-loadout-list{gap:.55rem;list-style:none;display:grid}.character-attribute-list li,.character-passive-list li,.character-loadout-list li{border:1px solid var(--ui-border-dim);background:var(--ui-panel-bg-raised);border-radius:.45rem;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;display:flex}.character-attribute-list p,.character-passive-list p,.character-summary p{color:var(--ui-text-dim);margin:.25rem 0 0;font-size:.8rem}.character-derived-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem .8rem;margin:.75rem 0;display:grid}.character-derived-stats div{justify-content:space-between;gap:.5rem;display:flex}.character-derived-stats dt{color:var(--ui-text-dim)}.character-derived-stats dd{color:var(--ui-text-bright);margin:0}.character-spend-buttons,.character-loadout-choices{flex-wrap:wrap;align-items:flex-start;gap:.3rem;display:flex}.respec-button,.character-spend-buttons button,.character-passive-list button,.character-loadout-choices button{min-height:2rem;padding:.3rem .55rem}.combat-gathering{color:var(--ui-accent);margin-top:.25rem;font-size:.75rem;font-weight:700}.combat-zone{color:var(--ui-text-dim);margin-top:.25rem;font-size:.72rem}@media (width<=700px){.combat-vitals-stack{width:min(11.5rem,100vw - 1rem);bottom:.5rem;right:.5rem}.combat-action-hud{width:min(17rem,100vw - 1rem);padding:.3rem;bottom:.5rem;left:.5rem}.combat-flask-list,.combat-ability-list{gap:.25rem}.combat-ability{min-height:4rem;padding:.25rem}.combat-flask-slot{min-height:2.3rem}.combat-ability strong{font-size:.58rem}.combat-ability-state{text-overflow:ellipsis;font-size:.54rem;overflow:hidden}.inventory-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.item-menu-layout,.character-menu-layout{grid-template-columns:1fr 1fr}.item-tooltip,.stone-choice{grid-column:1/-1}}@media (width<=420px){.combat-vitals-stack{bottom:8.5rem}.item-menu-layout,.character-menu-layout{grid-template-columns:1fr}.item-tooltip,.stone-choice{grid-column:auto}}.combat-paused-hud strong{font-family:var(--ui-font-heading);letter-spacing:.14em;font-size:.85rem}.combat-paused-hud span{color:var(--ui-text);font-size:.75rem}.combat-shell #game-host{aspect-ratio:auto;box-shadow:none;border:0;border-radius:0}.diagnostic-shell,.game-region{width:100%}.diagnostic-shell{gap:1rem;margin-bottom:1.5rem;display:grid}.eyebrow{color:var(--ui-accent-soft);letter-spacing:.12em;text-transform:uppercase;margin:0 0 .35rem;font-size:.75rem;font-weight:700}h1{color:var(--ui-text-bright);font-family:var(--ui-font-heading);letter-spacing:.02em;margin:0;font-size:clamp(1.7rem,4vw,2.8rem)}.diagnostics{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin:0;display:grid}.diagnostics div,.boot-status,.persistence-fixture{border:1px solid var(--ui-border-dim);background:var(--ui-panel-bg-raised);border-radius:.55rem;padding:.85rem 1rem}.diagnostics dt{color:var(--ui-text-dim);text-transform:uppercase;font-size:.75rem}.diagnostics dd{overflow-wrap:anywhere;margin:.25rem 0 0}.skip-link{z-index:3;color:var(--ui-page-bg);background:var(--ui-text);border-radius:.35rem;padding:.65rem .8rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.boot-status{color:#cbe8c4;border-color:#3f7a48}.boot-status.error{border-color:var(--ui-danger);color:var(--ui-danger-text)}.persistence-fixture{gap:.8rem;display:grid}.persistence-fixture h2{margin:0}.persistence-fixture label{color:var(--ui-text);gap:.35rem;font-size:.85rem;display:grid}.persistence-fixture input,.persistence-fixture textarea,.persistence-fixture button{border:1px solid var(--ui-border);color:var(--ui-text);background:var(--ui-panel-bg-solid);font:inherit;border-radius:.4rem}.persistence-fixture input,.persistence-fixture textarea{width:100%;padding:.55rem .65rem}.persistence-fixture textarea{resize:vertical;font-family:ui-monospace,Cascadia Code,monospace;font-size:.75rem}.persistence-actions{flex-wrap:wrap;gap:.5rem;display:flex}.persistence-fixture button{cursor:pointer;padding:.5rem .75rem}.persistence-fixture button:hover{border-color:var(--ui-accent)}.persistence-status{border-left:3px solid var(--ui-border-strong);background:var(--ui-panel-bg-solid);margin:0;padding:.7rem .8rem}.persistence-status.saved,.persistence-status.loaded{border-color:#36a174}.persistence-status.recovered{color:#ffe5a6;border-color:#d3a13a}.persistence-status.error{border-color:var(--ui-danger);color:var(--ui-danger-text)}#game-host{aspect-ratio:16/9;border:1px solid var(--ui-border-dim);background:var(--ui-panel-bg-solid);border-radius:.7rem;width:100%;position:relative;overflow:hidden;box-shadow:0 1.5rem 4rem #0000004d}#game-canvas{outline:0;max-width:100%;max-height:100%;display:block;position:absolute;inset:0}#game-canvas:focus-visible{outline:3px solid var(--ui-accent);outline-offset:-3px}#game-canvas[hidden]{display:none}.boot-overlay{z-index:1;text-align:center;background:#0e0a07f0;place-content:center;gap:.75rem;padding:clamp(1rem,4vw,3rem);display:grid;position:absolute;inset:0}.boot-overlay.error{color:var(--ui-danger-text)}button{border:1px solid var(--ui-border-strong);min-height:2.75rem;color:inherit;background:var(--ui-panel-bg-raised);font:inherit;cursor:pointer;border-radius:.35rem;padding:.65rem .9rem}button:hover:not(:disabled){border-color:var(--ui-accent);box-shadow:0 0 .5rem var(--ui-accent-glow)}button:focus-visible,a:focus-visible{outline:3px solid var(--ui-focus);outline-offset:3px}.shell-controls{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding-block:1rem;display:flex}.shell-controls p{color:var(--ui-text);flex-basis:100%;margin:0}.shell-controls output{overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.combat-tutorial{z-index:3;border:1px solid var(--ui-border);background-color:var(--ui-panel-bg);background-image:var(--ui-panel-vignette);width:min(21rem,100vw - 2rem);box-shadow:inset 0 0 0 1px var(--ui-inlay), inset 0 0 0 2px var(--ui-border-dim), 0 .6rem 1.8rem #00000073;text-align:center;pointer-events:none;border-radius:.45rem;gap:.3rem;padding:.55rem .8rem .65rem;display:grid;position:absolute;top:1rem;left:50%;transform:translate(-50%)}.combat-tutorial:after{content:"";background-image:linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft));pointer-events:none;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-size:.7rem 1px,1px .7rem,.7rem 1px,1px .7rem,.7rem 1px,1px .7rem,.7rem 1px,1px .7rem;position:absolute;inset:3px}.combat-tutorial-heading{color:var(--ui-heading);font-family:var(--ui-font-heading);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:700}.combat-tutorial-prompt{color:var(--ui-text-bright);margin:0;font-size:.9rem;line-height:1.35}@media (width<=700px){.combat-tutorial{width:min(16rem,100vw - 1rem);padding:.4rem .6rem .5rem;top:.5rem}}.main-menu{z-index:10;background-color:var(--ui-page-bg);background-image:radial-gradient(120% 90% at 50% -20%,#e0a93524,#0000 55%),radial-gradient(130% 100% at 50% 115%,#5e401e42,#0000 60%);justify-content:center;align-items:center;padding:clamp(.75rem,3vh,2rem);display:flex;position:fixed;inset:0}.main-menu-panel{border:1px solid var(--ui-border);background-color:var(--ui-panel-bg);background-image:var(--ui-panel-vignette);width:min(34rem,100%);max-height:100%;box-shadow:inset 0 0 0 1px var(--ui-inlay), inset 0 0 0 2px var(--ui-border-dim), 0 0 4.5rem var(--ui-accent-glow), 0 1.2rem 3rem #0009;border-radius:.6rem;justify-items:center;gap:clamp(1rem,3.5vh,2.2rem);padding:clamp(1.25rem,4vh,2.75rem) clamp(1.25rem,5vw,3rem);display:grid;position:relative}.main-menu-panel:after{content:"";background-image:linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft)), linear-gradient(var(--ui-accent-soft), var(--ui-accent-soft));pointer-events:none;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-size:1.1rem 1px,1px 1.1rem,1.1rem 1px,1px 1.1rem,1.1rem 1px,1px 1.1rem,1.1rem 1px,1px 1.1rem;position:absolute;inset:4px}.main-menu-logo{filter:drop-shadow(0 .5rem 1.2rem #0000008c);width:min(26rem,100%);height:auto}.main-menu-actions{justify-items:stretch;gap:.75rem;width:min(15.5rem,100%);display:grid}.main-menu-button{border:1px solid var(--ui-border-strong);background-color:var(--ui-panel-bg-raised);background-image:var(--ui-panel-vignette);box-shadow:inset 0 0 0 1px var(--ui-inlay), 0 .35rem .9rem #0006;color:var(--ui-text-bright);font-family:var(--ui-font-heading);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:.4rem;padding:.7rem 1.2rem;font-size:1.05rem;font-weight:700;transition:border-color .12s,box-shadow .12s,color .12s;position:relative}.main-menu-button:hover:enabled,.main-menu-button:focus-visible{border-color:var(--ui-accent);box-shadow:inset 0 0 0 1px var(--ui-inlay), 0 0 1.1rem var(--ui-accent-glow), 0 .35rem .9rem #0006;color:var(--ui-focus)}.main-menu-button:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.main-menu-new-game{border-color:var(--ui-accent-soft);color:var(--ui-heading)}.main-menu-new-game:disabled{border-color:var(--ui-border-dim);color:var(--ui-muted-state);cursor:wait}.main-menu-continue:disabled{border-color:var(--ui-border-dim);color:var(--ui-muted-state);cursor:not-allowed;opacity:.75;background-image:none}.main-menu-note{color:var(--ui-text-dim);text-align:center;margin:-.35rem 0 0;font-size:.78rem;font-style:italic}.main-menu-build{color:var(--ui-text-dim);letter-spacing:.05em;margin:0;font-size:.72rem}@media (height<=560px){.main-menu-panel{gap:.7rem;padding:.9rem 1.5rem}.main-menu-logo{width:min(17rem,100%)}.main-menu-button{padding:.45rem 1rem}}.death-overlay{z-index:8;background:radial-gradient(120% 90%,#5a140e2e,#0000 70%),#0804029e;justify-content:center;align-items:center;padding:clamp(.75rem,3vh,2rem);display:flex;position:fixed;inset:0}.death-overlay-panel{border:1px solid var(--ui-border);background-color:var(--ui-panel-bg);background-image:var(--ui-panel-vignette);width:min(24rem,100%);box-shadow:inset 0 0 0 1px var(--ui-inlay), inset 0 0 0 2px var(--ui-border-dim), 0 0 3.5rem #e25b5238, 0 1.2rem 3rem #0009;text-align:center;border-radius:.6rem;justify-items:center;gap:.85rem;padding:clamp(1.1rem,3.5vh,2rem) clamp(1.1rem,4vw,2.4rem);display:grid;position:relative}.death-overlay-heading{color:var(--ui-danger-text);font-family:var(--ui-font-heading);letter-spacing:.08em;margin:0;font-size:1.6rem}.death-overlay-note{color:var(--ui-text-dim);margin:0;font-size:.85rem;font-style:italic}.death-respawn-button{border:1px solid var(--ui-border-strong);background-color:var(--ui-panel-bg-raised);background-image:var(--ui-panel-vignette);box-shadow:inset 0 0 0 1px var(--ui-inlay), 0 .35rem .9rem #0006;color:var(--ui-heading);font-family:var(--ui-font-heading);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:.4rem;padding:.65rem 1.2rem;font-size:1rem;font-weight:700;transition:border-color .12s,box-shadow .12s,color .12s}.death-respawn-button:hover,.death-respawn-button:focus-visible{border-color:var(--ui-accent);box-shadow:inset 0 0 0 1px var(--ui-inlay), 0 0 1.1rem var(--ui-accent-glow), 0 .35rem .9rem #0006;color:var(--ui-focus)}.death-respawn-button:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}
