:root{--gold:#d6b26e;--gold-hi:#f3d9a0;--gold-dim:#7d6538;--ink:#0b0a0c;--panel:#0e0b0ac7;--panel-border:#d6b26e47;--text:#eadfcf;--muted:#9d8f7c;--hp:#c8261d;--hp-hi:#ff5a47;--xp:#4fb6ff;--common:#b9b0a2;--rare:#4fa3ff;--epic:#b35cff;--legendary:#ffb23a;--display:"Cinzel", "Trajan Pro", Georgia, serif;--body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--text);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;background:#000;margin:0;overflow:hidden}#game{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='7' fill='none' stroke='%23f3d9a0' stroke-width='1.5'/%3E%3Ccircle cx='16' cy='16' r='1.6' fill='%23f3d9a0'/%3E%3Cpath d='M16 3v6M16 23v6M3 16h6M23 16h6' stroke='%23f3d9a0' stroke-width='1.5'/%3E%3C/svg%3E") 16 16,crosshair;width:100vw;height:100vh;display:block;position:fixed;inset:0}#ui{pointer-events:none;z-index:2;position:fixed;inset:0}#overlay{pointer-events:none;position:absolute;inset:0}.hidden{display:none!important}kbd{font-family:var(--body);letter-spacing:.04em;color:var(--gold-hi);border:1px solid var(--gold-dim);background:#000000b3;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700}.ico{display:block}#vignette-hurt,#vignette-low{opacity:0;pointer-events:none;position:absolute;inset:0}#vignette-hurt{background:radial-gradient(#0000 45%,#aa0a008c 100%)}#vignette-low{background:radial-gradient(#0000 55%,#78000099 100%)}#hud{position:absolute;inset:0}.hud-top-left{text-shadow:0 2px 6px #000;position:absolute;top:18px;left:22px}.floor-label{font-family:var(--display);color:var(--gold-hi);letter-spacing:.06em;flex-direction:column;font-size:22px;font-weight:700;display:flex}.floor-label small{font-family:var(--body);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:500}.counters{gap:14px;margin-top:8px;font-size:14px;display:flex}.counter{align-items:center;gap:5px;display:inline-flex}.counter.gold{color:#ffd27a}.counter.kills{color:#e7cfc2}.counter.time{color:var(--muted)}.counter b{font-weight:700}.hud-top-right{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:16px;right:18px}.minimap-frame{background:conic-gradient(#3a2d18,#d6b26e,#3a2d18,#8a6d38,#3a2d18);border-radius:50%;width:172px;height:172px;padding:3px;box-shadow:0 6px 24px #000000b3,inset 0 0 0 1px #0009}#minimap{background:#050403;border-radius:50%;width:166px;height:166px;display:block}#fps{font:600 12px var(--body);color:#9ef09e;background:#0000008c;border-radius:4px;padding:2px 7px}.hud-bottom{flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;bottom:18px;left:0;right:0}.vitals{align-items:center;gap:10px;width:min(560px,90vw);display:flex}.level-badge{border:2px solid var(--gold);background:radial-gradient(circle at 35% 30%,#3d3020,#120e0a 70%);border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;width:46px;height:46px;line-height:1;display:flex;box-shadow:0 0 14px #d6b26e59,0 4px 12px #000}.level-badge small{letter-spacing:.15em;color:var(--muted);font-size:8px}.level-badge b{font-family:var(--display);color:var(--gold-hi);font-size:18px}.bars{flex-direction:column;flex:1;gap:5px;display:flex}.hp-bar{background:#0a0403d9;border:1px solid #d6b26e73;border-radius:3px;height:20px;position:relative;overflow:hidden;box-shadow:0 4px 14px #0009}.hp-fill,.hp-lag{width:100%;position:absolute;top:0;bottom:0;left:0}.hp-lag{opacity:.55;background:#f0d8a0}.hp-fill{background:linear-gradient(180deg, var(--hp-hi), var(--hp) 55%, #7a120c);transition:width 80ms linear;box-shadow:inset 0 1px #ffffff40}#hp-text{letter-spacing:.04em;text-shadow:0 1px 3px #000;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;position:absolute;inset:0}.xp-bar{background:#000000b3;border-radius:3px;height:5px;overflow:hidden}.xp-fill{background:linear-gradient(90deg, #1f6fd1, var(--xp), #b8e6ff);width:0;height:100%;box-shadow:0 0 8px var(--xp);transition:width .2s ease-out}.abilities{gap:8px;display:flex}.slot{--p:0;width:58px;height:58px;color:var(--gold-hi);background:radial-gradient(circle at 50% 30%,#2b2219,#0d0a08 75%);border:1px solid #d6b26e8c;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 14px #000000b3,inset 0 0 12px #000c}.slot[data-ability=bolt] .slot-icon{color:#9fcaff}.slot[data-ability=dash] .slot-icon{color:#b5c7ff}.slot[data-ability=fireball] .slot-icon{color:#ff9a4a}.slot[data-ability=nova] .slot-icon{color:#9fe6ff}.slot[data-ability=chain] .slot-icon{color:#d8e3ff}.slot.flask .slot-icon{color:#ff5a6a}.slot-icon{filter:drop-shadow(0 0 6px)}.slot.cooling .slot-icon{filter:grayscale(.8)brightness(.55)}.slot-cd{background:conic-gradient(#000000b8 calc(var(--p) * 360deg), transparent 0);position:absolute;inset:0}.slot-cd-text{color:#fff;text-shadow:0 1px 4px #000;justify-content:center;align-items:center;font-size:17px;font-weight:800;display:flex;position:absolute;inset:0}.slot-charges{letter-spacing:1px;color:#b5c7ff;font-size:8px;position:absolute;top:3px;right:5px}.slot-count{color:#fff;text-shadow:0 1px 3px #000;font-size:14px;font-weight:800;position:absolute;top:3px;right:6px}.slot.empty .slot-icon{filter:grayscale()brightness(.4)}.slot kbd{padding:0 4px;font-size:9px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}#prompt{background:var(--panel);border:1px solid var(--panel-border);font-family:var(--display);color:var(--gold-hi);letter-spacing:.04em;border-radius:6px;align-items:center;gap:10px;padding:9px 16px;font-size:15px;font-weight:700;animation:.25s ease-out promptIn;display:flex;position:absolute;bottom:150px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #0009}#prompt kbd{padding:2px 8px;font-size:13px}@keyframes promptIn{0%{opacity:0;transform:translate(-50%,8px)}}#boss-bar{text-align:center;width:min(620px,60vw);position:absolute;top:22px;left:50%;transform:translate(-50%)}.boss-name{font-family:var(--display);letter-spacing:.14em;color:#ffcfb8;text-shadow:0 0 18px #ff3c14b3,0 2px 4px #000;text-transform:uppercase;margin-bottom:6px;font-size:20px;font-weight:900}.boss-track{background:#0a0202d9;border:1px solid #ff785080;border-radius:2px;height:14px;position:relative;overflow:hidden;box-shadow:0 0 20px #ff280a4d}.boss-fill,.boss-lag{width:100%;position:absolute;top:0;bottom:0;left:0}.boss-lag{opacity:.5;background:#ffe0b0}.boss-fill{background:linear-gradient(#ff6a3a,#b3160c 60%,#5e0703)}#toasts{flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:110px;left:50%;transform:translate(-50%)}.toast{font-family:var(--display);letter-spacing:.05em;color:var(--gold-hi);text-shadow:0 2px 6px #000;background:linear-gradient(90deg,#0000,#0a0806d9,#0000);padding:8px 18px;font-size:17px;font-weight:700;transition:opacity .5s,transform .5s;animation:.35s ease-out toastIn}.toast.out{opacity:0;transform:translateY(-10px)}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)scale(.96)}}#floor-title{text-align:center;opacity:0;text-shadow:0 4px 24px #000;position:absolute;top:26%;left:0;right:0}#floor-title.play{animation:3.5s ease-out forwards floorTitle}#floor-title small{font-family:var(--body);letter-spacing:.4em;text-transform:uppercase;color:var(--muted);font-size:14px;display:block}#floor-title h2{font-family:var(--display);letter-spacing:.12em;color:var(--gold-hi);background:linear-gradient(#fff3d6,#d6b26e 60%,#8a6a32);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:6px 0;font-size:clamp(42px,7vw,86px);font-weight:900}#floor-title em{font-family:var(--display);color:#ff8a6a;letter-spacing:.1em;font-style:normal}@keyframes floorTitle{0%{opacity:0;filter:blur(6px);transform:scale(1.08)}18%{opacity:1;filter:blur();transform:scale(1)}75%{opacity:1}to{opacity:0;transform:scale(.98)}}.screen{pointer-events:auto;background:radial-gradient(#00000059,#000c);justify-content:center;align-items:center;animation:.3s ease-out screenIn;display:flex;position:absolute;inset:0}@keyframes screenIn{0%{opacity:0}}#menu{background:linear-gradient(90deg,#000000d1 0%,#00000073 38%,#0000 62%),radial-gradient(at 70% 55%,#0000 30%,#0009 100%);justify-content:flex-start;padding-left:max(24px,7vw)}.menu-inner{flex-direction:column;align-items:flex-start;gap:16px;display:flex}#menu .menu-buttons{width:320px}#menu .best{align-items:flex-start}.logo{font-family:var(--display);letter-spacing:.04em;background:linear-gradient(#fff6e0 0%,#f0cf8a 38%,#a37a36 70%,#4f3614 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 6px 30px #ff963c40)drop-shadow(0 4px 4px #000);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(56px,11vw,140px);font-weight:900;line-height:1}.logo span{font-weight:500}.tagline{font-family:var(--display);letter-spacing:.35em;text-transform:uppercase;color:var(--muted);text-shadow:0 2px 6px #000;margin:0 0 18px;font-size:13px}.menu-buttons{flex-direction:column;gap:10px;min-width:280px;display:flex}.btn{pointer-events:auto;font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--text);border:1px solid var(--panel-border);cursor:pointer;background:linear-gradient(#282018e6,#0e0b09eb);border-radius:4px;padding:13px 26px;font-size:16px;font-weight:700;transition:all .15s;box-shadow:0 4px 16px #00000080}.btn:hover{color:#fff;border-color:var(--gold);transform:translateY(-1px);box-shadow:0 0 22px #d6b26e4d,0 4px 16px #00000080}.btn.primary{color:#1a1206;text-shadow:0 1px #ffffff59;background:linear-gradient(#f6dea5,#c99a4e 60%,#8a632a);border-color:#f3d9a0}.btn.primary:hover{color:#000;box-shadow:0 0 30px #ffbe5a8c,0 4px 16px #00000080}.btn.danger:hover{border-color:#ff6a4a;box-shadow:0 0 22px #ff46284d}.best{color:var(--muted);text-shadow:0 2px 6px #000;flex-direction:column;align-items:center;gap:2px;margin-top:16px;font-size:13px;display:flex}.best b{font-family:var(--display);color:var(--gold-hi);font-size:20px}.menu-foot{color:#eadfcf73;letter-spacing:.05em;font-size:12px;position:absolute;bottom:16px;left:max(24px,7vw)}.panel{background:var(--panel);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:8px;flex-direction:column;gap:14px;width:min(460px,92vw);max-height:90vh;padding:26px 30px;display:flex;overflow-y:auto;box-shadow:0 20px 60px #000c,inset 0 1px #ffffff0a}.panel.wide{width:min(860px,94vw)}.panel h2{font-family:var(--display);color:var(--gold-hi);letter-spacing:.08em;text-align:center;margin:0 0 4px;font-size:28px}.panel h3{font-family:var(--display);color:var(--gold);letter-spacing:.08em;margin:0 0 10px;font-size:16px}.howto-grid{grid-template-columns:1fr 1fr;gap:26px;display:grid}@media (max-width:720px){.howto-grid{grid-template-columns:1fr}}.keys,.tips{color:var(--text);flex-direction:column;gap:8px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.keys kbd{margin-right:3px}.tips li{color:#d4c7b4;line-height:1.45}.c-xp{color:var(--xp)}.c-shrine{color:#b07aff}.c-boss{color:#ff6a4a}.muted{color:var(--muted);margin:0;font-size:13px}.setting{flex-direction:column;gap:6px;font-size:13px;display:flex}.setting label{color:#d4c7b4;justify-content:space-between;display:flex}.setting.check label{cursor:pointer;justify-content:flex-start;gap:8px}.setting output{color:var(--gold-hi);font-weight:600}.seg{border:1px solid var(--panel-border);border-radius:4px;display:flex;overflow:hidden}.seg button{color:var(--muted);border:none;border-right:1px solid var(--panel-border);font-family:var(--body);cursor:pointer;background:#00000059;flex:1;padding:8px 0;font-size:13px;font-weight:600}.seg button:last-child{border-right:none}.seg button.active{color:#150f06;background:linear-gradient(#d6b26e,#8a632a)}input[type=range]{width:100%;accent-color:var(--gold)}input[type=checkbox]{accent-color:var(--gold);width:15px;height:15px}.boons-title{text-align:center;margin-top:8px!important}.boons{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.boon{background:#0006;border:1px solid;border-radius:4px;align-items:center;gap:5px;padding:4px 8px;font-size:12px;display:inline-flex}.boon span{color:var(--text)}.r-common{color:var(--common)}.r-rare{color:var(--rare)}.r-epic{color:var(--epic)}.r-legendary{color:var(--legendary)}#levelup{background:radial-gradient(#28190559,#000000d1)}.levelup-inner{text-align:center}.levelup-inner h2{font-family:var(--display);letter-spacing:.1em;background:linear-gradient(#fff6e0,#e0b867 60%,#8a6a32);-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 20px #ffaa3c59);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(32px,5vw,54px);font-weight:900}.levelup-inner p{color:var(--muted);letter-spacing:.05em;margin:6px 0 28px}.cards{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.card{pointer-events:auto;text-align:center;cursor:pointer;width:230px;min-height:300px;color:inherit;font-family:var(--body);background:linear-gradient(#221b14f2,#0a0807f7);border:1px solid;border-radius:10px;flex-direction:column;align-items:center;gap:10px;padding:20px 18px 16px;transition:transform .15s,box-shadow .15s;animation:.45s cubic-bezier(.2,.9,.3,1.2) both cardIn;display:flex;box-shadow:0 16px 40px #000000b3,inset 0 0 40px #0009}.card:hover{transform:translateY(-8px)scale(1.03);box-shadow:0 0 36px,0 16px 40px #000000b3}@keyframes cardIn{0%{opacity:0;transform:translateY(40px)scale(.9)}}.card.r-common{color:var(--common)}.card.r-rare{color:var(--rare)}.card.r-epic{color:var(--epic)}.card.r-legendary{color:var(--legendary)}.card-rarity{letter-spacing:.3em;text-transform:uppercase;font-size:10px;font-weight:800}.card-icon{filter:drop-shadow(0 0 10px);background:radial-gradient(circle,#ffffff14,#0000 70%);border:1px solid;border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;display:flex}.card h3{font-family:var(--display);color:#fff3dc;letter-spacing:.04em;margin:4px 0 0;font-size:19px}.card p{color:#cfc2ae;flex:1;margin:0;font-size:14px;line-height:1.45}.card-foot{width:100%;color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}#death{background:radial-gradient(#28000059,#000000e6)}.panel.death h2{color:#ff7a5a;text-shadow:0 0 30px #ff280a80;font-size:clamp(30px,5vw,46px)}.new-record{text-align:center;color:var(--legendary);font-family:var(--display);letter-spacing:.1em;margin:0}.death-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 10px;display:grid}.death-stats div{background:#00000059;border:1px solid #d6b26e26;border-radius:6px;flex-direction:column;align-items:center;padding:10px 6px;display:flex}.death-stats small{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:10px}.death-stats b{font-family:var(--display);color:var(--gold-hi);font-size:22px}.death-stats .score{grid-column:span 3}.death-stats .score b{font-size:30px}#fade{opacity:0;pointer-events:none;background:#000;transition:opacity .6s;position:absolute;inset:0}#fade.on{opacity:1}#loading{z-index:10;background:radial-gradient(#1a130c,#000 70%);justify-content:center;align-items:center;transition:opacity .8s;display:flex;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}.loading-inner{flex-direction:column;align-items:center;gap:18px;display:flex}.loading-logo{font-family:var(--display);letter-spacing:.04em;color:var(--gold-hi);text-shadow:0 0 30px #ff963c59;font-size:54px;font-weight:900}.loading-logo span{font-weight:500}.loading-bar{background:#d6b26e33;width:220px;height:2px;overflow:hidden}.loading-bar div{background:var(--gold);width:40%;height:100%;animation:1.1s ease-in-out infinite loadbar}.loading-bar div.determinate{width:0;transition:width .3s;animation:none}@keyframes loadbar{0%{transform:translate(-100%)}to{transform:translate(250%)}}#loading p{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0;font-size:13px}#loading.error p{color:#ff8a6a;letter-spacing:.05em;text-transform:none;text-align:center;max-width:420px}#loading.error .loading-bar{display:none}@media (max-width:760px){.slot{width:44px;height:44px}.slot .ico{width:22px;height:22px}.minimap-frame{width:120px;height:120px}#minimap{width:114px;height:114px}}#gen-indicator{font-family:var(--display);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);z-index:3;font-size:13px;animation:1.2s ease-in-out infinite pulseText;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}@keyframes pulseText{50%{opacity:.4}}
