:root{--ink:#f2e8d5;--ink-dim:#b9ad97;--gold:#d9a44a;--gold-bright:#f0c46c;--panel:#16130fd1;--panel-border:#d9a44a73;--font-title:"Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);font-family:var(--font-ui);background:#0b0d0f;margin:0;overflow:hidden}[hidden]{display:none!important}#game-canvas{outline:none;width:100%;height:100%;display:block;position:fixed;inset:0}.screen{z-index:10;background:radial-gradient(#0a0e0c59,#050608d9);place-items:center;display:grid;position:fixed;inset:0}#menu{background:radial-gradient(at 50% 120%,#3c5a3c8c,#0000 60%),linear-gradient(#1a2430 0%,#0d1214 70%,#080a0b 100%)}.panel{background:var(--panel);border:1px solid var(--panel-border);text-align:center;border-radius:6px;min-width:min(420px,92vw);padding:32px 36px;box-shadow:0 20px 60px #0000008c}.title{font-family:var(--font-title);letter-spacing:.18em;color:var(--gold-bright);text-shadow:0 2px 18px #d9a44a59;margin:0;font-size:64px}h2{font-family:var(--font-title);letter-spacing:.08em;color:var(--gold-bright);margin:0 0 8px;font-weight:400}.subtitle{color:var(--ink-dim);margin:4px 0 24px;font-style:italic}.hint{color:var(--ink-dim);margin:16px 0 0;font-size:13px}.menu-form{text-align:left;flex-direction:column;gap:10px;display:flex}.menu-form label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim);font-size:13px}.seed-row{gap:8px;display:flex}input{min-width:0;font:16px var(--font-ui);color:var(--ink);background:#00000073;border:1px solid #f2e8d540;border-radius:4px;outline:none;flex:1;padding:10px 12px}input:focus{border-color:var(--gold)}button{font:600 15px var(--font-ui);letter-spacing:.04em;cursor:pointer;border-radius:4px;padding:10px 18px;transition:background .15s,border-color .15s}button.primary{color:#1b140a;background:linear-gradient(180deg, var(--gold-bright), var(--gold));border:1px solid #f7d993;margin-top:8px;padding:12px 18px;font-size:17px}button.primary:hover{background:linear-gradient(#f7d58a,#e3b25a)}button.secondary{color:var(--ink);background:#ffffff0f;border:1px solid #f2e8d540}button.secondary:hover{border-color:var(--gold)}.buttons{flex-direction:column;gap:10px;margin-top:16px;display:flex}.settings-dialog{width:min(1000px,94vw);max-width:94vw;max-height:92dvh;color:var(--ink);border:1px solid var(--panel-border);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#171a18;border-radius:6px;padding:0;box-shadow:0 20px 60px #0000008c}.settings-dialog::backdrop{background:#000000bf}.settings-dialog form{max-height:90dvh;overflow-y:auto}.settings-header,.settings-fields,.settings-actions{padding:20px 24px}.settings-header .hint{margin-top:8px}.settings-fields{gap:24px;padding-top:0;display:grid}.settings-fields fieldset{border:1px solid #f2e8d533;border-radius:4px;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 28px;min-width:0;margin:0;padding:16px;display:grid}.settings-fields legend{color:var(--gold-bright);padding:0 8px}.setting-field{grid-template-columns:minmax(0,1fr) 100px;align-items:center;gap:6px 12px;display:grid}.setting-field label{font-size:14px}.setting-field input{width:100%;padding:8px}.setting-field input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold);justify-self:end}.setting-field small{color:var(--ink-dim);overflow-wrap:anywhere;grid-column:1/-1;font-size:11px}.settings-actions{border-top:1px solid var(--panel-border);background:#171a18;flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex;position:sticky;bottom:0}.settings-actions .primary{margin:0;font-size:15px}@media (max-width:640px){.settings-fields fieldset{grid-template-columns:1fr}.settings-header,.settings-fields,.settings-actions{padding:14px}}.progress{background:#ffffff14;border-radius:3px;height:6px;margin-top:18px;overflow:hidden}.progress-bar{background:var(--gold);transform-origin:0;height:100%;transition:transform .1s linear;transform:scaleX(0)}.hud{pointer-events:none;z-index:5;text-shadow:0 1px 3px #000c;position:fixed;inset:0}.hud-clock{font-family:var(--font-title);letter-spacing:.05em;font-variant-numeric:tabular-nums;font-size:18px;transition:color 1.5s;position:absolute;top:16px;right:20px}.hud-clock.is-night{color:#b9c8ff}.hud-mobs{font:600 14px var(--font-ui);letter-spacing:.04em;color:#ff9c8a;opacity:0;transition:opacity .6s;position:absolute;top:42px;right:20px}.hud-mobs.is-visible{opacity:1}.hud-damage{opacity:0;background:radial-gradient(#0000 45%,#a00a008c 80%,#6e0000d9 100%);position:absolute;inset:0}.hud-damage.is-dead{background:radial-gradient(#5a000059 0%,#3c0000bf 60%,#140000f2 100%);transition:background 1.2s;opacity:1!important}.hud-glue{opacity:0;background:radial-gradient(#0000 50%,#ffbe284d 78%,#be7800a6 100%);transition:opacity .25s;position:absolute;inset:0}.hud-hits{width:0;height:0;position:absolute;top:50%;left:50%}.hud-hit{transform-origin:55px 150px;filter:drop-shadow(0 0 6px #ff2814cc);opacity:0;border-top:7px solid #ff3c28f2;border-radius:50% 50% 0 0/100% 100% 0 0;width:110px;height:34px;position:absolute;top:-150px;left:-55px}.hud-hit.is-glue{filter:drop-shadow(0 0 6px #ffb41ed9);border-top-color:#ffcd3cf2}.hud-zone{text-align:center;font-family:var(--font-title);letter-spacing:.2em;color:var(--ink);opacity:0;font-size:40px;transition:opacity 1.2s;position:absolute;top:18%;left:0;right:0}.hud-zone.is-visible{opacity:1;transition-duration:.6s}.hud-debug{color:#d8f0d0;background:#0000008c;border-radius:4px;margin:0;padding:8px 10px;font:12px/1.45 ui-monospace,Menlo,Consolas,monospace;position:absolute;top:12px;left:12px}.hud-help{text-align:center;color:#f2e8d5b3;font-size:12px;line-height:1.9;position:absolute;top:10px;left:240px;right:240px}.hud-crosshair{background:#ffffffd9;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000073}.hud-crosshair:after{content:"";opacity:0;border:2px solid #ffffffd9;border-radius:50%;transition:opacity .12s,transform .12s;position:absolute;inset:-9px;transform:scale(.4)}.hud-crosshair.is-target:after{opacity:1;transform:none}.hud-crosshair.is-blocked:after{border-color:#ff8c78e6}.hud-hitmarker{opacity:0;pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.hud-hitmarker i{transform-origin:1.5px 16px;background:#fff;border-radius:2px;width:3px;height:9px;position:absolute;top:-16px;left:-1.5px;box-shadow:0 0 0 1px #00000080}.hud-hitmarker i:first-child{transform:rotate(45deg)}.hud-hitmarker i:nth-child(2){transform:rotate(135deg)}.hud-hitmarker i:nth-child(3){transform:rotate(225deg)}.hud-hitmarker i:nth-child(4){transform:rotate(315deg)}.hud-hitmarker.is-kill i{background:#ff3b2f;box-shadow:0 0 6px #ff2814e6}.hud-hitnumbers{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hud-hitnumber{color:#fff;text-shadow:0 2px #0000008c,0 0 6px #0009;white-space:nowrap;opacity:0;will-change:transform, opacity;font-size:22px;font-weight:800;position:absolute}.hud-hitnumber.is-kill{color:#ffb02e;font-size:28px}.hud-target{text-align:center;opacity:0;width:260px;margin-left:-130px;transition:opacity .15s;position:absolute;top:calc(50% + 34px);left:50%}.hud-target.is-visible{opacity:1}.hud-target-name{font:700 14px var(--font-ui);letter-spacing:.06em;text-transform:uppercase}.hud-target.is-legendary .hud-target-name{color:#ffd27a;text-shadow:0 0 8px #ffb43cb3}.hud-target-bar{background:#00000080;border:1px solid #fff3;border-radius:3px;width:180px;height:6px;margin-top:5px;margin-left:auto;margin-right:auto;overflow:hidden}.hud-target-fill{transform-origin:0;background:linear-gradient(#ffd27a 0%,#e09a3a 100%);height:100%;transition:transform .12s ease-out}.hud-target-hint{color:#ffb4a6;margin-top:4px;font-size:12px}.hud-target-hint:empty{display:none}.hud-pickups{flex-direction:column-reverse;gap:4px;display:flex;position:absolute;bottom:66px;left:24px}.hud-pickup{font:700 15px var(--font-ui);border-left:3px solid var(--rarity-a,#8d9196);background:linear-gradient(90deg,#0000008c,#0000);align-items:center;gap:8px;padding:3px 12px 3px 4px;transition:opacity .4s,transform .4s;display:flex}.hud-pickup.is-leaving{opacity:0;transform:translate(-12px)}.hud-pickup .item-icon{width:26px;height:26px}.hud-pickup em{font:700 11px var(--font-ui);text-transform:uppercase;color:#1d1a17;background:#ffb03a;border-radius:3px;padding:0 5px;font-style:normal}.hud-glued{font:700 13px var(--font-ui);letter-spacing:.05em;color:#ffd45a;text-shadow:0 1px 2px #000c;opacity:0;background:#46280099;border:1px solid #ffcd50a6;border-radius:4px;align-items:center;gap:10px;padding:4px 10px;transition:opacity .2s,transform .2s;display:flex;position:absolute;bottom:74px;left:24px;transform:translateY(6px)}.hud-glued.is-visible{opacity:1;transform:none}.hud-glued-bar{background:#00000080;border-radius:3px;width:80px;height:6px;overflow:hidden}.hud-glued-fill{transform-origin:0;background:linear-gradient(90deg,#ffae2a,#ffe58a);height:100%}.hud-health{align-items:center;gap:10px;display:flex;position:absolute;bottom:24px;left:24px}.hud-health-icon{fill:#6ee36a;filter:drop-shadow(0 1px 2px #000c);width:22px;height:22px}.hud-health-bar{width:calc(260px * var(--health-scale,1));background:#00000080;border:2px solid #ffffff2e;border-radius:3px;height:18px;transition:width .4s ease-out;position:relative;overflow:hidden;transform:skew(-12deg);box-shadow:0 2px 8px #00000073}.hud-health-fill,.hud-health-trail{transform-origin:0;position:absolute;inset:0}.hud-health-trail{background:#ffffffd9}.hud-health-fill{background:linear-gradient(#8dff7a 0%,#43c83b 55%,#2f9c2a 100%);transition:transform .12s ease-out}.hud-health-value{min-width:3ch;font:700 20px var(--font-ui);font-variant-numeric:tabular-nums}.hud-armor .slot{border-radius:5px;width:40px;height:40px}.hud-armor .slot-pips{bottom:-1px}.hud-health.is-low .hud-health-fill{background:linear-gradient(#ff8a7a 0%,#e0443a 55%,#a82820 100%);animation:.9s ease-in-out infinite alternate health-low}.hud-health.is-low .hud-health-icon{fill:#ff6a5a}.hud-health.is-regen .hud-health-icon{animation:1.1s ease-in-out infinite alternate health-regen}@keyframes health-regen{to{fill:#e9ffb0;filter:drop-shadow(0 0 6px #f0ffa0e6)}}@keyframes health-low{to{filter:brightness(1.35)}}.hud-hotbar{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:24px;right:24px}.hud-hotbar-slots{align-items:flex-end;gap:6px;display:flex}.hud-hotbar-slots .slot{width:58px;height:58px;transition:width .12s,height .12s}.hud-hotbar-slots .slot.is-selected{width:70px;height:70px}.hud-item-name{font:700 16px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--rarity-text,var(--ink));opacity:0;transition:opacity .4s,transform .4s;transform:translateY(6px)}.hud-item-name.is-visible{opacity:1;transition-duration:.12s;transform:none}.hud-item-name.is-locked{color:#a9a49b}.hud-item-hint{font:600 13px var(--font-ui);color:#f2e8d5bf;background:#00000059;border-radius:3px;padding:2px 8px}.hud-item-hint:empty{display:none}.hud-item-hint[data-tone=ready]{color:#9ff07c}.hud-item-hint[data-tone=missing]{color:#ff9a86}.hud-item-hint[data-tone=max]{color:var(--gold-bright)}.hud-item-hint kbd{color:#fff;border-color:#9ff07c}[data-rarity=common]{--rarity-a:#8d9196;--rarity-b:#4d5157;--rarity-text:#d4d7db}[data-rarity=uncommon]{--rarity-a:#5fbf3a;--rarity-b:#2a6b1d;--rarity-text:#8be06a}[data-rarity=rare]{--rarity-a:#3fa2ff;--rarity-b:#1c4f9c;--rarity-text:#6fbaff}[data-rarity=epic]{--rarity-a:#c35bff;--rarity-b:#5d2391;--rarity-text:#d58bff}[data-rarity=legendary]{--rarity-a:#ffb03a;--rarity-b:#9c5a12;--rarity-text:#ffc861}.slot{background:#0a0c0e8c;border:2px solid #ffffff24;border-radius:6px;flex:none;width:56px;height:56px;position:relative;box-shadow:inset 0 0 0 1px #00000059}.slot[data-rarity]{background:linear-gradient(160deg, var(--rarity-a), var(--rarity-b));border-color:#ffffff47}.slot.is-selected{border-color:#fff;box-shadow:0 0 0 2px #00000080,0 0 14px #ffffff73}.slot-key{z-index:1;font:700 11px var(--font-ui);color:#ffffffd9;position:absolute;top:2px;left:5px}.slot-item{place-items:center;display:grid;position:absolute;inset:4px}.item-icon{filter:drop-shadow(0 2px 2px #0000008c);width:100%;height:100%}.slot-count{font:700 13px var(--font-ui);color:#fff;text-shadow:0 0 3px #000,0 1px 2px #000;position:absolute;bottom:-2px;right:0}.slot.is-locked .item-icon{filter:grayscale()brightness(.75);opacity:.45}.slot-pips{gap:2px;display:flex;position:absolute;bottom:-2px;left:3px;right:3px}.slot-pips i{background:#0000008c;border-radius:1px;flex:1;height:4px}.slot-pips i.on{background:#fff;box-shadow:0 0 3px #fff9}.slot-upgrade{width:20px;height:20px;animation:.9s ease-in-out infinite alternate slot-upgrade;position:absolute;top:-9px;right:-9px}.level-up-icon{filter:drop-shadow(0 1px 2px #000000b3);width:100%;height:100%;display:block}@keyframes slot-upgrade{to{transform:translateY(-3px)scale(1.08)}}.inventory{z-index:8;-webkit-user-select:none;user-select:none;background:#04060873;place-items:center;display:grid;position:fixed;inset:0}.inventory-panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:6px;flex-direction:column;gap:10px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);padding:18px 20px 14px;display:flex;overflow-y:auto;box-shadow:0 20px 60px #0000008c}.inventory-header h2{margin:0}.inventory-body{gap:18px;display:flex}.inventory-character{background:radial-gradient(at 50% 40%,#d9a44a29,#00000040 70%);border:1px solid #f2e8d51f;border-radius:6px;flex-direction:column;align-items:center;gap:6px;width:190px;padding:10px 8px;display:flex}.character-figure{filter:drop-shadow(0 6px 8px #00000073);width:170px;height:auto}.inventory-character-name{font:700 14px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--rarity-text,#a9a49b)}.inventory-character{--armor-metal:#9aa1a6;--armor-dark:#5d6368;--armor-edge:#d5dade;--armor-wrap:#3e2a1a}.inventory-character[data-armor-level="2"]{--armor-metal:#b9c2ca;--armor-dark:#67717b;--armor-edge:#f2f6f9;--armor-wrap:#3e7a32}.inventory-character[data-armor-level="3"]{--armor-metal:#7da6da;--armor-dark:#3c5d91;--armor-edge:#d4e7ff;--armor-wrap:#2b5597}.inventory-character[data-armor-level="4"]{--armor-metal:#ae86e0;--armor-dark:#5e3b91;--armor-edge:#f0dfff;--armor-wrap:#6b2e9c}.inventory-character[data-armor-level="5"]{--armor-metal:#e8b94a;--armor-dark:#9b6d1c;--armor-edge:#fff2bd;--armor-wrap:#a8431c}.character-figure .armor-metal{fill:var(--armor-metal)}.character-figure .armor-dark{fill:var(--armor-dark)}.character-figure .armor-dark-line{stroke:var(--armor-dark)}.character-figure .armor-edge{stroke:var(--armor-edge)}.character-figure .armor-edge-fill{fill:var(--armor-edge)}.character-figure .armor-wrap{fill:var(--armor-wrap)}.inventory-sections{flex-direction:column;gap:8px;width:560px;display:flex}.inventory-label{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim);margin-top:2px;font-size:12px}.inventory-gear,.inventory-buildings{grid-template-columns:1fr 1fr;gap:8px;display:grid}.inventory-resources{flex-wrap:wrap;gap:8px;display:flex}.inventory-powers{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.inventory-points{text-transform:none;letter-spacing:0;margin-left:6px}.inventory-points[data-tone=ready]{color:#8ff06a}.inventory-card.is-power{flex-direction:column;align-items:stretch;gap:6px}.inventory-card.is-power .card-detail,.inventory-card.is-power .card-cost{white-space:normal}.inventory-card{border:1px solid #f2e8d51a;border-left:3px solid var(--rarity-a,#f2e8d52e);background:#00000047;border-radius:6px;align-items:center;gap:10px;min-width:0;padding:8px 10px 8px 8px;display:flex}.inventory-card:hover{border-color:var(--gold-bright);border-left-color:var(--rarity-a,var(--gold-bright))}.inventory-card.is-resource{background:0 0;border:none;padding:0}.inventory-card.is-resource:hover .slot{border-color:var(--gold-bright)}.inventory-card.is-full .slot-count{color:#ffb03a}.card-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.card-name{font:700 15px var(--font-ui);color:var(--rarity-text,#a9a49b)}.inventory-card.is-gear{grid-template-rows:auto auto auto;grid-template-columns:auto minmax(0,1fr) auto;gap:1px 10px;display:grid}.inventory-card.is-gear .slot{grid-row:1/4}.inventory-card.is-gear .card-info{display:contents}.inventory-card.is-gear .card-name{grid-area:1/2}.inventory-card.is-gear .card-detail{grid-area:2/2}.inventory-card.is-gear .card-cost{grid-area:3/2/4/4}.inventory-card.is-gear .card-upgrade{grid-area:1/3/3/4;align-self:center}.card-detail,.card-cost{color:var(--ink-dim);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.card-cost[data-tone=ready]{color:#9ff07c}.card-cost[data-tone=missing]{color:#ff9a86}.card-cost[data-tone=max]{color:var(--gold-bright)}.card-upgrade{color:var(--ink-dim);background:#ffffff0d;border:1px solid #f2e8d533;flex:none;padding:6px 10px;font-size:12px}.card-upgrade:hover{border-color:#f2e8d573}.card-upgrade.is-ready{color:#102a0c;background:linear-gradient(#8ff06a,#45b832);border-color:#b9f7a0}.card-upgrade.is-ready:hover{background:linear-gradient(#a6f78a,#52c93e)}.card-upgrade.is-max{color:var(--gold-bright);cursor:default;background:0 0;border-color:#0000}.inventory-hint{color:var(--ink-dim);margin:4px 0 0;font-size:12px;line-height:1.7}.inventory-tooltip{z-index:2;pointer-events:none;border:1px solid var(--rarity-a,var(--panel-border));background:#0c0c0ef0;border-radius:4px;max-width:280px;padding:8px 12px;position:fixed;top:0;left:0;box-shadow:0 8px 24px #00000080}.inventory-tooltip strong{color:var(--rarity-text,#a9a49b);font-size:15px;display:block}.inventory-tooltip .tooltip-rarity{color:var(--rarity-text,var(--ink-dim));opacity:.85;font-size:12px}.inventory-tooltip p{color:var(--ink-dim);margin:6px 0 0;font-size:13px;line-height:1.4}.inventory-tooltip .tooltip-note{color:var(--gold-bright);margin-top:6px;font-size:12px;display:block}kbd{font:11px var(--font-ui);background:#0000004d;border:1px solid #f2e8d559;border-radius:3px;padding:1px 5px}.gameover{background:radial-gradient(#28000073,#080000e6)}.gameover-title{color:#ff8a70;font-size:40px}.gameover-cause{color:var(--ink-dim);margin:4px 0 18px}.gameover-cause strong{color:var(--ink)}.gameover-stats{justify-content:center;gap:28px;margin:0;display:flex}.gameover-stats dt{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-dim);font-size:12px}.gameover-stats dd{font:700 28px var(--font-ui);color:var(--gold-bright);margin:4px 0 0}
