:root{--gold:#c9a24a;--gold-d:#8a6a2a;--ink:#0b0a10;--panel:#14111b;--blood:#a82a2a;--mana:#3a6fd8;--text:#e6dfcf;--dim:#9a917f;--font:"Cinzel", "Trajan Pro", "Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{width:100%;height:100%;color:var(--text);font-family:var(--font);touch-action:none;-webkit-user-select:none;user-select:none;overscroll-behavior:none;background:#07060a;margin:0;padding:0;overflow:hidden}#game{width:100vw;height:100vh;outline:none;height:100dvh;display:block;position:fixed;top:0;bottom:0;left:0;right:0}#ui{pointer-events:none;position:fixed;top:0;bottom:0;left:0;right:0}button{color:inherit;font-family:inherit}.hidden{display:none!important}svg{width:100%;height:100%;display:block}.btn{pointer-events:auto;cursor:pointer;border:1px solid var(--gold-d);color:var(--text);letter-spacing:.14em;text-transform:uppercase;background:linear-gradient(#2a2234,#17121d);border-radius:2px;padding:10px 22px;font-size:15px;transition:transform 80ms,border-color .15s,background .15s;box-shadow:inset 0 0 0 1px #000,0 2px 8px #000a}.btn:hover:not(:disabled){border-color:var(--gold);background:linear-gradient(#3a2d48,#1f1827);outline:none}.btn:focus-visible{border-color:var(--gold);background:linear-gradient(#3a2d48,#1f1827);outline:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:default}.btn.small{padding:6px 12px;font-size:12px}.panel{pointer-events:auto;border:1px solid var(--gold-d);background:linear-gradient(#1b1624ee,#100c16f2);border-radius:3px;box-shadow:0 0 0 1px #000,inset 0 0 40px #000a,0 10px 40px #000c}.panel h2{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid #3a2f22;justify-content:space-between;align-items:center;margin:0;padding:10px 14px;font-size:14px;display:flex}.xbtn{width:28px;height:28px;color:var(--dim);cursor:pointer;pointer-events:auto;background:0 0;border:1px solid #0000;padding:4px}.xbtn:hover{color:var(--text);border-color:var(--gold-d)}#hud{position:absolute;top:0;bottom:0;left:0;right:0}.orb{bottom:calc(10px + env(safe-area-inset-bottom));pointer-events:auto;background:#0a0709;border:3px solid #3a2f22;border-radius:50%;width:112px;height:112px;position:absolute;overflow:hidden;box-shadow:0 0 0 2px #000,inset 0 0 22px #000d,0 0 20px #000c}.orb .fill{height:100%;transition:height .12s linear;position:absolute;bottom:0;left:0;right:0}.orb.hp{left:calc(14px + env(safe-area-inset-left))}.orb.hp .fill{background:radial-gradient(circle at 35% 25%,#ff6a5a,#b01e22 45%,#4a0a10)}.orb.mana{right:calc(14px + env(safe-area-inset-right))}.orb.mana .fill{background:radial-gradient(circle at 35% 25%,#8ab0ff,#2f55c0 45%,#101a50)}.orb.mana.res-oathbound .fill{background:radial-gradient(circle at 35% 25%,#ffe08a,#c8902a 45%,#503510)}.orb.mana.res-cinderwitch .fill{background:radial-gradient(circle at 35% 25%,#ffc080,#e0601c 45%,#50200a)}.orb .txt{text-shadow:0 1px 3px #000,0 0 6px #000;letter-spacing:.05em;place-items:center;font-size:15px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.orb:after{content:"";pointer-events:none;background:radial-gradient(circle at 30% 22%,#fff3,#0000 35%);border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0}#skillbar{bottom:calc(14px + env(safe-area-inset-bottom));pointer-events:auto;align-items:flex-end;gap:8px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.slot{cursor:pointer;color:#e8d8b0;background:linear-gradient(#241d2d,#120e18);border:2px solid #4a3b28;border-radius:4px;width:56px;height:56px;padding:10px;position:relative;box-shadow:inset 0 0 12px #000a,0 2px 8px #000a}.slot.locked{opacity:.45}.slot .key{color:var(--gold);text-shadow:0 1px 2px #000;font-size:10px;position:absolute;top:1px;left:3px}.slot .cd{transform-origin:bottom;background:#000b;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleY(0)}.slot .cdt{text-shadow:0 1px 3px #000;place-items:center;font-size:17px;display:grid;position:absolute;top:0;bottom:0;left:0;right:0}.slot.nores{border-color:#3a5aa8}.slot.nores:after{content:"";background:#2a3a8844;position:absolute;top:0;bottom:0;left:0;right:0}.slot.flash{animation:.25s flash}@keyframes flash{50%{background:#7a2020}}.slot.small{width:44px;height:44px;padding:7px}.slot .cnt{text-shadow:0 1px 2px #000;font-size:12px;position:absolute;bottom:1px;right:3px}.slot.pot-hp{color:#ff8a8a}.slot.pot-mana{color:#8ab0ff}#xpbar{bottom:calc(2px + env(safe-area-inset-bottom));background:#0008;border:1px solid #3a2f22;border-radius:3px;width:min(440px,52vw);height:6px;position:absolute;left:50%;overflow:hidden;transform:translate(-50%)}#xpbar i{background:linear-gradient(#e8d08a,#a87a2a);width:0;height:100%;display:block}#lvl{bottom:calc(76px + env(safe-area-inset-bottom));letter-spacing:.2em;color:var(--gold);text-shadow:0 1px 3px #000;white-space:nowrap;font-size:12px;position:absolute;left:50%;transform:translate(-50%)}#tracker{top:calc(12px + env(safe-area-inset-top));left:calc(14px + env(safe-area-inset-left));text-shadow:0 1px 4px #000,0 0 8px #000;max-width:340px;position:absolute}#tracker .name{letter-spacing:.15em;color:var(--gold);text-transform:uppercase;font-size:18px}#tracker .obj{color:var(--text);opacity:.85;margin-top:3px;font-size:13px;line-height:1.35}#tracker .counts{color:var(--dim);gap:12px;margin-top:6px;font-size:12px;display:flex}#tracker .counts b{color:var(--gold);font-weight:600}#minimap{top:calc(12px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));border:1px solid var(--gold-d);pointer-events:none;background:#0008;border-radius:3px;width:150px;height:150px;position:absolute}#topbtns{top:calc(170px + env(safe-area-inset-top));right:calc(12px + env(safe-area-inset-right));flex-direction:column;gap:6px;display:flex;position:absolute}#topbtns .xbtn{border:1px solid var(--gold-d);color:var(--text);background:#14111bcc;border-radius:3px;width:36px;height:36px;padding:6px}#bossbar{top:calc(14px + env(safe-area-inset-top));text-align:center;width:min(560px,46vw);position:absolute;left:50%;transform:translate(-50%)}#bossbar .n{letter-spacing:.3em;text-transform:uppercase;text-shadow:0 1px 4px #000;color:#f0d8b0;font-size:16px}.bar{background:#0a0507;border:1px solid #5a2a2a;border-radius:2px;height:12px;margin-top:4px;overflow:hidden;box-shadow:0 0 10px #000a}.bar i{background:linear-gradient(#e0483a,#7a1418);width:100%;height:100%;transition:width .15s;display:block}.bar.elite i{background:linear-gradient(#ffd060,#a06a10)}#target{top:calc(14px + env(safe-area-inset-top));text-align:center;letter-spacing:.12em;text-shadow:0 1px 3px #000;width:min(300px,36vw);font-size:13px;position:absolute;left:50%;transform:translate(-50%)}#toasts{pointer-events:none;flex-direction:column;align-items:center;gap:6px;width:min(600px,92vw);display:flex;position:absolute;top:30%;left:50%;transform:translate(-50%)}.toast{letter-spacing:.06em;text-align:center;text-shadow:0 1px 3px #000;background:#0b0810d8;border:1px solid #4a3b28;border-radius:2px;padding:8px 18px;font-size:15px;animation:4.2s forwards toast}.toast.good{border-color:var(--gold);color:#ffe7a8}.toast.warn{color:#ffb090;border-color:#a84a2a}@keyframes toast{0%{opacity:0;transform:translateY(8px)}8%{opacity:1;transform:none}82%{opacity:1}to{opacity:0}}#prompt{bottom:calc(110px + env(safe-area-inset-bottom));border:1px solid var(--gold-d);letter-spacing:.08em;white-space:nowrap;pointer-events:none;background:#0b0810d8;border-radius:3px;padding:6px 14px;font-size:14px;position:absolute;left:50%;transform:translate(-50%)}#prompt kbd{border:1px solid var(--gold);color:var(--gold);border-radius:3px;margin-right:6px;padding:1px 7px;font-family:inherit;display:inline-block}.dmg{text-shadow:0 0 3px #000,0 2px 4px #000;pointer-events:none;will-change:transform, opacity;white-space:nowrap;font-size:18px;font-weight:700;position:absolute}.dmg.crit{font-size:26px;color:#ffe070!important}.dmg.player{color:#ff5050}.dmg.enemy{color:#fff0d8}.dmg.heal{color:#70e070}.dmg.info{color:#ffd070;font-size:15px}.lootlabel{white-space:nowrap;cursor:pointer;pointer-events:auto;text-shadow:0 1px 2px #000;background:#0a0810d0;border:1px solid #000;border-radius:2px;padding:2px 8px;font-size:12px;position:absolute;transform:translate(-50%,-100%)}.lootlabel.hov{background:#1a1620;outline:1px solid #fff}#fade{opacity:0;pointer-events:none;z-index:50;background:#000;transition:opacity .32s;position:absolute;top:0;bottom:0;left:0;right:0}#fade.on{opacity:1}#vignette-warn{pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.screen{pointer-events:auto;z-index:30;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:16px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.screen.dim{background:radial-gradient(#0008,#000e)}.logo{letter-spacing:.22em;color:#f0d9a8;text-shadow:0 0 30px #ff8a3066,0 4px #000,0 0 2px #000;margin:0;padding-left:.22em;font-size:clamp(40px,9vw,96px);font-weight:700;line-height:1}.tag{letter-spacing:.6em;color:var(--gold);text-transform:uppercase;margin-bottom:18px;padding-left:.6em;font-size:clamp(11px,2vw,16px)}.menu{flex-direction:column;gap:10px;min-width:min(260px,70vw);display:flex}.cards{flex-wrap:wrap;justify-content:center;gap:18px;max-width:900px;display:flex}.card{cursor:pointer;text-align:left;border:1px solid var(--gold-d);background:linear-gradient(#1d1726ee,#0e0a13ee);border-radius:3px;width:270px;padding:16px;transition:transform .12s,border-color .12s}.card:hover,.card.sel{border-color:var(--gold);transform:translateY(-4px);box-shadow:0 0 24px #c9a24a44}.card h3{letter-spacing:.12em;color:#f0d9a8;margin:0 0 2px;font-size:20px}.card .sub{color:var(--gold);letter-spacing:.1em;margin-bottom:8px;font-size:12px}.card p{color:var(--dim);margin:0 0 8px;font-size:13px;line-height:1.45}.card ul{color:var(--text);margin:0;padding-left:16px;font-size:12px;line-height:1.6}.story{color:#d8cfbb;max-width:560px;font-size:clamp(14px,2.2vw,18px);font-style:italic;line-height:1.7}.help{color:var(--dim);max-width:640px;font-size:12px;line-height:1.8}.help b{color:var(--gold);font-weight:600}.kv{text-align:left;grid-template-columns:auto 1fr;gap:6px 18px;font-size:14px;display:grid}.kv b{color:var(--gold)}.panel.center{text-align:left;max-width:min(640px,94vw);max-height:88vh;overflow:auto}.panel .body{padding:14px;font-size:14px;line-height:1.6}.row{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:14px;display:flex}.row input[type=range]{width:160px;accent-color:var(--gold)}.row select{color:var(--text);border:1px solid var(--gold-d);background:#17121d;padding:4px 8px;font-family:inherit}.row input[type=checkbox]{width:20px;height:20px;accent-color:var(--gold)}.deathtxt{letter-spacing:.3em;color:#b02a2a;text-shadow:0 0 30px #000,0 3px #000;padding-left:.3em;font-size:clamp(34px,8vw,80px)}#invpanel{right:calc(10px + env(safe-area-inset-right));z-index:20;flex-direction:column;width:min(560px,96vw);max-height:92vh;display:flex;position:absolute;top:50%;transform:translateY(-50%)}#invpanel .cols{flex-wrap:wrap;gap:12px;padding:12px;display:flex;overflow:auto}.equip{grid-template-columns:repeat(3,62px);align-content:start;gap:6px;display:grid}.equip .eslot{width:62px;height:62px;position:relative}.bag{grid-template-columns:repeat(6,46px);align-content:start;gap:4px;display:grid}.cell{cursor:pointer;color:#5a5048;background:#0c0910;border:1px solid #3a2f22;border-radius:3px;width:46px;height:46px;padding:6px;position:relative}.eslot .cell{width:62px;height:62px;padding:12px}.eslot .lab{text-align:center;color:var(--dim);letter-spacing:.1em;pointer-events:none;text-transform:uppercase;font-size:9px;position:absolute;bottom:-1px;left:0;right:0}.cell.has{background:#181220}.cell.sel{outline:2px solid var(--gold)}.cell.over{outline:2px dashed #8ac}.cell.bad{border-color:#a03030}.stats{flex:1;min-width:150px;font-size:12px;line-height:1.7}.stats b{color:var(--gold);font-weight:600}.stats .gold{color:#f0d070;align-items:center;gap:6px;margin-top:6px;display:flex}.stats .gold i{width:16px;height:16px;display:inline-block}.tip{border:1px solid var(--gold-d);background:#0b0810;flex-basis:100%;min-height:90px;padding:10px 12px;font-size:13px;line-height:1.55}.tip .nm{letter-spacing:.05em;font-size:16px}.tip .sub{color:var(--dim);margin-bottom:4px;font-size:12px}.tip .aff{color:#8ab4ff}.tip .base{color:#ddd}.tip .up{color:#70d070}.tip .dn{color:#e07070}.tip .acts{gap:8px;margin-top:8px;display:flex}#codex{z-index:20;flex-direction:column;width:min(720px,96vw);max-height:90vh;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#codex .tabs{border-bottom:1px solid #3a2f22;display:flex}#codex .tab{color:var(--dim);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:12px}#codex .tab.on{color:var(--gold);border-color:var(--gold)}#codex .content{flex-direction:column;gap:12px;padding:14px;font-size:14px;line-height:1.55;display:flex;overflow:auto}.entry{background:#0d0a12;border:1px solid #3a2f22;padding:10px 12px}.entry.locked{opacity:.45}.entry h4{color:var(--gold);letter-spacing:.08em;margin:0 0 4px;font-size:14px}.entry p{color:#d8cfbb;margin:0;font-style:italic}.entry small{color:var(--dim)}#touch{pointer-events:none;display:none;position:absolute;top:0;bottom:0;left:0;right:0}body.touch #touch{display:block}#joy{pointer-events:none;background:#0006;border:2px solid #c9a24a88;border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;display:none;position:absolute}#joy i{background:#c9a24a66;border:2px solid #c9a24a;border-radius:50%;width:56px;height:56px;margin:-28px;position:absolute;top:50%;left:50%}.tbtn{border:2px solid var(--gold-d);color:#e8d8b0;pointer-events:auto;touch-action:none;background:#1a1422cc;border-radius:50%;width:64px;height:64px;padding:16px;position:absolute}.tbtn.big{width:82px;height:82px;padding:22px}.tbtn:active{border-color:var(--gold);background:#3a2d48}.tbtn .cd{transform-origin:bottom;background:#000a;border-radius:50%;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleY(0)}body.touch .orb{width:84px;height:84px;bottom:calc(6px + env(safe-area-inset-bottom))}body.touch .orb .txt{font-size:12px}body.touch #skillbar{display:none}body.touch #xpbar{width:40vw}body.touch #lvl{bottom:calc(24px + env(safe-area-inset-bottom))}body.touch #minimap{width:100px;height:100px}body.touch #topbtns{top:calc(118px + env(safe-area-inset-top))}body.touch #tracker{max-width:42vw}body.touch #tracker .obj{display:none}body.touch #prompt{bottom:calc(104px + env(safe-area-inset-bottom))}@media (max-width:760px){.orb{width:84px;height:84px}#invpanel{width:auto;left:2vw;right:2vw}.bag{grid-template-columns:repeat(6,42px)}.cell{width:42px;height:42px}#bossbar{width:56vw;top:calc(56px + env(safe-area-inset-top))}#target{top:calc(56px + env(safe-area-inset-top));width:50vw}}@media (prefers-reduced-motion:reduce){.toast{animation-duration:3s}}body.reduced .toast{opacity:1;animation:none}
