:root{--panel: rgba(22, 20, 30, .92);--panel-edge: #4a4458;--panel-hi: #6d6680;--gold: #ffd166;--text: #f2eee6;--muted: #a9a3b8;--slot: rgba(10, 9, 15, .75);--slot-edge: #2c2836;--font: "Trebuchet MS", "Segoe UI", Verdana, sans-serif;--head: "Arial Black", "Segoe UI Black", Impact, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0b0a10;color:var(--text);font-family:var(--font);user-select:none}#app{position:fixed;inset:0}.game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block}img{image-rendering:pixelated}.hud{position:absolute;inset:0;pointer-events:none}.crosshair{position:absolute;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);mix-blend-mode:difference}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#fff}.crosshair:before{left:8px;top:0;width:2px;height:18px}.crosshair:after{top:8px;left:0;width:18px;height:2px}.bottom{position:absolute;bottom:8px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:3px}.stat-rows{width:100%;display:flex;justify-content:space-between;align-items:flex-end}.row-left,.row-right{display:flex;flex-direction:column;gap:2px}.row-right{align-items:flex-end}.hearts,.food,.armor,.air{display:flex;height:19px}.food{flex-direction:row-reverse}.ic{width:19px;height:19px;margin-right:-1px;filter:drop-shadow(1px 1px 0 rgba(0,0,0,.5))}.ic-stack{position:relative;width:18px;height:19px;display:inline-block}.ic-stack .ic{position:absolute;left:0;top:0}.hearts.low .ic{animation:heartShake .5s infinite}.hearts.low .ic:nth-child(2n){animation-delay:.15s}.hearts.hurt{animation:hurtFlash .4s}@keyframes heartShake{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes hurtFlash{0%{filter:brightness(3)}to{filter:none}}.creative .stat-rows,.creative .xp{visibility:hidden}.xp{position:relative;width:100%;height:8px;background:#111;border:2px solid #000;border-radius:1px}.xp-fill{height:100%;width:0;background:linear-gradient(#b6ff6a,#5fbf1f);box-shadow:0 0 6px #8f4;transition:width .25s}.xp-level{position:absolute;left:50%;top:-15px;transform:translate(-50%);font:bold 16px var(--head);color:#9cff4f;text-shadow:2px 2px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000}.hotbar{display:flex;gap:0;padding:3px;background:#00000073;border:2px solid rgba(0,0,0,.6);border-radius:3px}.slot{position:relative;width:46px;height:46px;background:var(--slot);border:2px solid var(--slot-edge);box-shadow:inset 2px 2px #00000080,inset -1px -1px #ffffff0d;display:flex;align-items:center;justify-content:center}.slot img{width:36px;height:36px;pointer-events:none;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.35))}.slot.hot{width:50px;height:50px;border-color:transparent;background:#1e1c2899}.slot.hot.sel{border:3px solid #fff;box-shadow:0 0 0 2px #000,0 0 12px #ffffff80;background:#504c648c;z-index:1;transform:scale(1.06)}.slot .count{position:absolute;right:3px;bottom:1px;font:bold 15px var(--font);color:#fff;text-shadow:2px 2px 0 #3a3a3a;pointer-events:none}.slot .dur{position:absolute;left:5px;right:5px;bottom:4px;height:3px;background:#000}.slot .dur div{height:100%}.slot .glint{position:absolute;inset:4px;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(200,120,255,.55) 45%,transparent 60%);background-size:300% 100%;animation:glint 2.4s linear infinite;mix-blend-mode:screen}@keyframes glint{0%{background-position:150% 0}to{background-position:-150% 0}}.held-name{position:absolute;bottom:118px;left:50%;transform:translate(-50%);font:bold 17px var(--font);text-shadow:2px 2px 0 #000;opacity:0;white-space:nowrap}.info{position:absolute;top:10px;left:12px;font:bold 14px var(--font);color:#fff;text-shadow:1px 1px 0 #000,0 0 6px rgba(0,0,0,.6);opacity:.9}.compass{position:absolute;top:10px;left:50%;transform:translate(-50%);padding:4px 12px;background:#00000073;border:1px solid rgba(255,255,255,.15);border-radius:12px;font:13px var(--font);color:#eee;text-shadow:1px 1px 0 #000;white-space:nowrap}.compass .arrow{display:inline-block;color:var(--gold);transition:transform .15s}.tracker{position:absolute;top:40px;right:12px;max-width:280px;font:13px var(--font);text-shadow:1px 1px 0 #000}.tracker .q{background:#0006;padding:6px 10px;margin-bottom:4px;border-left:3px solid var(--gold)}.tracker .q b{color:var(--gold)}.effects{position:absolute;top:34px;left:12px;display:flex;gap:6px}.eff{padding:2px 8px;border-radius:10px;background:#00000080;font:bold 12px var(--font);text-transform:capitalize}.eff-speed{color:#8fe3ff}.eff-strength{color:#ffae5c}.eff-regen{color:#ff8fb0}.debug{position:absolute;top:60px;left:12px;font:12px monospace;background:#0000008c;padding:6px 8px;display:none}.vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 50%,rgba(140,0,0,.75) 100%);opacity:0;transition:opacity .3s}.flash{position:absolute;inset:0;opacity:0}.fade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}.boss-bar{position:absolute;top:34px;left:50%;transform:translate(-50%);width:min(520px,70vw);display:none;text-align:center}.boss-name{font:bold 17px var(--head);letter-spacing:1px;color:#ffcf9f;text-shadow:2px 2px 0 #000;margin-bottom:4px}.boss-track{height:12px;background:#1a0508;border:2px solid #000;box-shadow:0 0 0 1px #6a2a33}.boss-fill{height:100%;background:linear-gradient(#ff5a6e,#a3122a);transition:width .2s;box-shadow:0 0 10px #f34}.toasts{position:absolute;top:70px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:6px}.toast{padding:8px 18px;background:#100e16d9;border:2px solid var(--panel-edge);border-radius:4px;text-align:center;animation:toastIn .35s cubic-bezier(.2,1.5,.5,1);transition:opacity .5s,transform .5s;min-width:220px}.toast.out{opacity:0;transform:translateY(-8px)}.toast .t-title{font:bold 17px var(--font);text-shadow:2px 2px 0 #000}.toast .t-sub{font:13px var(--font);color:var(--muted);margin-top:2px}.t-level{border-color:#9cff4f}.t-level .t-title{color:#b6ff6a}.t-skill{border-color:#7fc7ff}.t-skill .t-title{color:#a9dcff}.t-warn .t-title{color:#ff8a7a}.t-good .t-title{color:#9f9}.t-epic{border-color:#c48bff;background:#1e0e2ee6;box-shadow:0 0 24px #a05aff66}.t-epic .t-title{color:#e3c4ff;font-size:21px}.t-discover{border-color:var(--gold);background:#281e0ae0}.t-discover .t-title{color:var(--gold);font-size:20px;letter-spacing:1px}.t-quest{border-color:var(--gold)}.t-quest .t-title{color:var(--gold)}@keyframes toastIn{0%{opacity:0;transform:translateY(-16px) scale(.9)}to{opacity:1;transform:none}}.pickups{position:absolute;right:14px;bottom:90px;display:flex;flex-direction:column;align-items:flex-end;gap:3px}.pickup{display:flex;align-items:center;gap:6px;padding:3px 10px 3px 4px;background:#00000080;border-radius:3px;font:13px var(--font);text-shadow:1px 1px 0 #000}.pickup img{width:22px;height:22px}.pickup b{color:#b6ff6a}.pickup.pop{animation:pop .25s}@keyframes pop{0%{transform:scale(1.25)}to{transform:scale(1)}}.screen-wrap{position:absolute;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px);animation:fadeIn .15s}@keyframes fadeIn{0%{opacity:0}}.screen-row{display:flex;gap:10px;align-items:flex-start}.panel{background:var(--panel);border:3px solid #000;box-shadow:inset 0 0 0 2px var(--panel-edge),inset 3px 3px 0 2px var(--panel-hi),0 10px 40px #0009;padding:14px 16px;border-radius:4px;animation:panelIn .18s cubic-bezier(.2,1.4,.5,1)}@keyframes panelIn{0%{transform:scale(.94);opacity:0}}.panel-title{font:bold 18px var(--head);letter-spacing:1px;color:var(--gold);text-shadow:2px 2px 0 #000;margin-bottom:10px}.sub-title{font:bold 13px var(--font);color:var(--muted);margin-bottom:4px}.grid9{display:grid;grid-template-columns:repeat(9,46px);gap:2px}.grid9.hotrow{margin-top:8px}.grid2{display:grid;grid-template-columns:repeat(2,46px);gap:2px}.grid3{display:grid;grid-template-columns:repeat(3,46px);gap:2px}.inv-grid{margin-top:12px}.craft{display:flex;align-items:center;gap:12px}.slot.big{width:58px;height:58px}.slot.big img{width:44px;height:44px}.slot:hover{background:#504c64a6}.arrow-right{width:34px;height:22px;position:relative;background:linear-gradient(90deg,#6d6680 0 70%,transparent 70%);clip-path:polygon(0 30%,60% 30%,60% 0,100% 50%,60% 100%,60% 70%,0 70%)}.arrow-right.progress{background:#3a3546}.arrow-right .prog{height:100%;width:0;background:linear-gradient(90deg,#fff6c8,#ffd166)}.inv-top{display:flex;gap:14px;align-items:flex-start}.armor-col{display:flex;flex-direction:column;gap:2px}.ph-head:after,.ph-chest:after,.ph-legs:after,.ph-feet:after{position:absolute;font-size:22px;opacity:.18;pointer-events:none}.ph-head:after{content:"⛑"}.ph-chest:after{content:"👕"}.ph-legs:after{content:"👖"}.ph-feet:after{content:"👢"}.slot.filled:after{display:none}.char-card{width:200px;font-size:13px;background:#0000004d;padding:8px 10px;border:1px solid #2c2836;min-height:190px}.cc-level{font-size:16px;margin-bottom:6px}.cc-level b{color:#9cff4f}.pp{color:var(--gold);font-size:12px;animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.5}}.cc-skill{margin:5px 0}.cc-skill b{float:right}.cc-bar{height:4px;background:#000;margin-top:2px}.cc-bar div{height:100%}.cc-stats{margin-top:8px;color:var(--muted)}.craft-box{margin-left:auto}.furnace-row{display:flex;align-items:center;gap:16px;justify-content:center;padding:6px 0}.furnace-col{display:flex;flex-direction:column;align-items:center;gap:4px}.flame{--burn: 0;width:20px;height:20px;background:linear-gradient(to top,#ff7a1a calc(var(--burn) * 100%),#3a3546 calc(var(--burn) * 100%));clip-path:polygon(50% 0,80% 40%,100% 75%,70% 100%,30% 100%,0 75%,20% 40%)}.hint{font-size:12px;color:var(--muted)}.btn{font:bold 15px var(--font);color:var(--text);background:linear-gradient(#5b5570,#3c374c);border:2px solid #000;box-shadow:inset 0 2px #ffffff2e,inset 0 -3px #00000059;padding:10px 18px;cursor:pointer;border-radius:3px;text-shadow:1px 1px 0 #000;transition:transform .08s,filter .08s}.btn:hover{filter:brightness(1.2);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.btn.primary{background:linear-gradient(#6aa84f,#3f7a2b)}.btn.danger{background:linear-gradient(#a84f4f,#7a2b2b)}.btn.small{padding:4px 10px;font-size:12px}.btn small{display:block;font-weight:400;font-size:12px;color:#d8d3e6;margin-top:2px}.chest .btn.small{margin-top:8px}.recipe-book{width:214px;background:var(--panel);border:3px solid #000;box-shadow:inset 0 0 0 2px var(--panel-edge);padding:10px;border-radius:4px;max-height:470px;display:flex;flex-direction:column;animation:panelIn .18s}.rb-search{width:100%;padding:6px 8px;background:#0e0d14;border:1px solid #3a3546;color:var(--text);font:13px var(--font);margin-bottom:8px;outline:none}.rb-list{display:grid;grid-template-columns:repeat(4,44px);gap:3px;overflow-y:auto;padding-right:2px}.rb-item{position:relative;width:44px;height:44px;background:#3c141480;border:2px solid #2c2836;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.55}.rb-item.ok{background:#2846288c;opacity:1;border-color:#3d5a35}.rb-item.ok:hover{background:#466e3cb3}.rb-item img{width:32px;height:32px}.rb-item .count{position:absolute;right:2px;bottom:0;font:bold 12px var(--font);text-shadow:1px 1px 0 #000}.rb-empty{grid-column:1 / -1;color:var(--muted);font-size:12px}.creative-pal{width:300px;max-height:470px;overflow:hidden;display:flex;flex-direction:column}.pal-list{display:grid;grid-template-columns:repeat(6,44px);gap:3px;overflow-y:auto}.cursor-stack{position:fixed;width:46px;height:46px;margin:-23px 0 0 -23px;pointer-events:none;z-index:50;display:none;background:none;border:none}.cursor-stack img{width:40px;height:40px}.cursor-stack .count{position:absolute;right:0;bottom:0;font:bold 15px var(--font);text-shadow:2px 2px 0 #333}.tooltip{position:fixed;z-index:60;pointer-events:none;display:none;background:#100418f2;border:2px solid #2b0f45;box-shadow:inset 0 0 0 1px #5a2a8a;padding:6px 10px;max-width:280px;font-size:13px}.tt-name{font:bold 15px var(--font)}.tt-ench{color:#b49cff}.tt-stat{color:#9fd8ff}.tt-dur{color:var(--muted);font-size:12px}.tt-desc{color:#c9c3d9;font-size:12px;margin-top:3px;font-style:italic}.perks{width:min(960px,94vw)}.perk-points{margin-bottom:10px;font-size:15px}.perk-points b{color:var(--gold)}.perk-points .glow{animation:pulse 1s infinite}.perk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.perk-col{background:#00000040;padding:8px;border:1px solid #2c2836}.perk-head{font:bold 17px var(--head)}.perk-head b{float:right;color:#fff}.perk{margin-top:8px;padding:7px 9px;border:2px solid #2c2836;background:#ffffff08;cursor:pointer;transition:transform .08s}.perk:hover{transform:translate(2px)}.perk-name{font-weight:700}.perk-desc{font-size:12px;color:#cfc9dc}.perk-req{font-size:11px;color:var(--muted);margin-top:2px}.perk.locked{opacity:.45}.perk.can{border-color:var(--c);box-shadow:0 0 10px color-mix(in srgb,var(--c) 40%,transparent)}.perk.owned{background:color-mix(in srgb,var(--c) 22%,transparent);border-color:var(--c)}.perk.owned .perk-req{color:var(--c)}.menu{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:30}.title-menu{background:radial-gradient(ellipse at center,#0000 30%,#0000008c)}.logo{font:900 92px var(--head);letter-spacing:4px;text-shadow:0 6px 0 #2a1b0e,0 10px 30px rgba(0,0,0,.6);line-height:1;animation:logoIn .8s cubic-bezier(.2,1.4,.5,1)}.logo span:first-child{color:#8fd14f;-webkit-text-stroke:3px #1d3410}.logo span:last-child{color:#c9925a;-webkit-text-stroke:3px #3a2410}.logo.small{font-size:46px}@keyframes logoIn{0%{transform:translateY(-30px) scale(.8);opacity:0}}.tagline{font:italic bold 18px var(--font);color:#ffe9a8;text-shadow:2px 2px 0 #000;margin:10px 0 28px;animation:bob 2.4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-3px) rotate(-1deg)}}.menu-buttons{display:flex;flex-direction:column;gap:10px;width:320px}.menu-buttons .btn{font-size:18px;padding:12px}.foot{position:absolute;bottom:14px;font-size:12px;color:#fff9;text-shadow:1px 1px 0 #000}.dialog{background:#0009}.dialog>*{max-width:640px}.dialog h2{font:bold 26px var(--head);color:var(--gold);text-shadow:3px 3px 0 #000;margin:0 0 14px}.dialog label{display:flex;flex-direction:column;gap:4px;width:360px;margin:6px 0;font-size:14px;color:var(--muted)}.dialog label.check{flex-direction:row;align-items:center;gap:8px;color:var(--text)}.dialog input:not([type]),.dialog input[type=text]{padding:8px 10px;background:#0e0d14;border:2px solid #3a3546;color:var(--text);font:15px var(--font);outline:none}.dialog input[type=range]{accent-color:#8fd14f}.dialog .row{display:flex;gap:10px;margin-top:16px}.mode-pick{display:flex;gap:10px;margin:10px 0}.mode-pick .btn{width:220px;text-align:left}.mode-pick .btn.sel{box-shadow:0 0 0 3px var(--gold),inset 0 2px #ffffff2e}.pause .btn{width:300px;margin:5px}.world-list{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}.world-row{display:flex;gap:6px}.world-row .btn:first-child{width:440px;text-align:left}.howto{overflow-y:auto}.howto .cols{display:flex;gap:28px;max-width:900px;background:var(--panel);padding:18px 22px;border:3px solid #000;box-shadow:inset 0 0 0 2px var(--panel-edge)}.howto .cols>div{flex:1}.howto h3{color:var(--gold);margin:0 0 8px;font-family:var(--head)}.howto td{padding:3px 10px 3px 0;font-size:14px}.howto td:first-child{color:#9cff4f;font-weight:700;white-space:nowrap}.howto li,.howto p{font-size:14px;line-height:1.45;color:#ddd8e8}.death{background:#78000073;animation:fadeIn 1s}.death h1{font:900 64px var(--head);color:#ff6b6b;text-shadow:4px 4px 0 #300;margin:0 0 10px}.death p{font-size:18px;margin:4px;text-shadow:2px 2px 0 #000}.death .sub,.victory .sub{color:#e8c8c8;font-size:14px;margin-bottom:18px}.death .btn{width:260px;margin:5px}.victory{background:radial-gradient(ellipse,#3c145ab3,#000000d9);animation:fadeIn 2s;text-align:center}.victory h1{font:900 60px var(--head);color:#ffd166;text-shadow:0 0 30px #c48bff,4px 4px 0 #2a0a3a;margin:0 0 10px}.victory p{max-width:560px;font-size:17px;line-height:1.5}.victory .stats{display:flex;gap:18px;margin:18px 0}.victory .stats div{background:#0006;padding:10px 16px;border:2px solid #5a2a8a;font-size:13px;color:var(--muted)}.victory .stats b{display:block;font-size:26px;color:#fff}.loading{background:#0b0a10 radial-gradient(ellipse at center,#1d1a28,#0b0a10)}.load-bar{width:320px;height:12px;border:2px solid #000;background:#1b1824;margin:24px 0 10px;box-shadow:0 0 0 2px #3a3546}.load-bar div{height:100%;width:0;background:linear-gradient(#8fd14f,#4f8a2b);transition:width .2s}.load-text{color:var(--muted);font-size:14px}.click-to-play{background:#00000059;cursor:pointer}.ctp{font:bold 30px var(--head);color:#fff;text-shadow:3px 3px 0 #000;padding:18px 36px;border:3px solid #fff;animation:pulse 1.4s infinite}.hint-box{position:absolute;left:14px;bottom:120px;max-width:330px;padding:10px 14px 10px 44px;background:#0e0c14d9;border:2px solid #5a5070;border-left:4px solid var(--gold);border-radius:4px;font:14px/1.4 var(--font);color:#eee;text-shadow:1px 1px 0 #000;opacity:0;transform:translate(-20px);transition:opacity .4s,transform .4s}.hint-box.in{opacity:1;transform:none}.hint-box b{color:var(--gold)}.hint-ic{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;background:var(--gold);color:#2a1b0e;font:bold 16px/24px var(--head);text-align:center;text-shadow:none}.t-ach{border-color:#9cff4f;background:#121e0ce6;display:flex;flex-direction:column}.t-ach .t-title{color:#c8ff8a;display:flex;align-items:center;justify-content:center;gap:8px}.ach-ic{width:28px;height:28px;image-rendering:pixelated}.ach-xp{color:#9cff4f;font-weight:700}.map-panel{padding-bottom:10px}.map-canvas{display:block;border:2px solid #000;box-shadow:0 0 0 2px #3a3546;cursor:grab;image-rendering:pixelated}.map-legend{margin-top:8px;font-size:12px;color:var(--muted);display:flex;gap:14px;align-items:center}.map-legend i{display:inline-block;width:10px;height:10px;margin-right:5px;border:1px solid #000}.hud.underwater:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#14468c2e,#0519468c);pointer-events:none}.toasts{max-height:calc(50vh - 110px);overflow:hidden;padding:0 20px 6px;transition:top .25s}.hud.boss-on .toasts{top:92px;max-height:calc(50vh - 132px)}.toast{max-width:min(520px,80vw)}.toast.out{transition:opacity .4s,transform .4s}.toast.bump{animation:pop .25s}.menu{justify-content:safe center;overflow-y:auto;padding:16px 0;box-sizing:border-box}#app:has(.menu.dialog) .hud,#app:has(.menu.death) .hud .toasts,#app:has(.menu.victory) .hud,#app:has(.menu.dialog) .hint-box,#app:has(.menu.victory) .hint-box,#app:has(.menu.death) .hint-box{opacity:0;transition:opacity .2s}.dialog{background:#06050ab8;backdrop-filter:blur(3px)}.card{background:var(--panel);border:3px solid #000;box-shadow:inset 0 0 0 2px var(--panel-edge),inset 3px 3px 0 2px var(--panel-hi),0 10px 40px #0009;padding:18px 22px;border-radius:4px;display:flex;flex-direction:column;align-items:center;animation:panelIn .18s cubic-bezier(.2,1.4,.5,1)}.card h2{margin-top:0}.card .row{justify-content:center}.set-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 28px}.settings .set-grid label{width:300px;display:grid;grid-template-columns:1fr auto;align-items:center}.settings .set-grid label span{color:#fff;font-weight:700}.settings .set-grid label input{grid-column:1 / -1;width:100%;margin:4px 0 0}.set-checks{display:flex;gap:28px;margin-top:8px}.set-checks label{width:auto!important}.pause-card{flex-direction:row;align-items:stretch;gap:22px}.pause-card .pause-actions{display:flex;flex-direction:column;align-items:center}.pause .btn{width:260px;margin:4px 0}.keys{width:300px;border-left:2px solid #2c2836;padding-left:20px}.keys h3{font:bold 15px var(--head);color:var(--gold);margin:2px 0 8px;letter-spacing:.5px}.keys table{border-collapse:collapse;width:100%}.keys td{padding:2px 0;font-size:13px;color:#ddd8e8}.keys td:first-child{width:96px}kbd{display:inline-block;min-width:14px;padding:1px 6px;font:bold 11.5px var(--font);color:#fff;text-align:center;background:linear-gradient(#5b5570,#3c374c);border:1px solid #000;border-bottom-width:3px;border-radius:3px;margin-right:2px}.esc-hint{margin-top:10px;font-size:12px;color:var(--muted)}.howto .cols{max-width:1100px}.howto .cols>div{min-width:0}.howto ul{margin:0 0 10px;padding-left:18px}.howto li b{color:#ffe9a8}@media (min-width: 1700px) and (min-height: 950px){.screen-wrap>*,.menu>.card,.menu>.cols,.howto>*,.death>*,.victory>*{zoom:1.2}.hud .bottom,.hud .tracker,.hud .toasts,.hud .compass,.hud .boss-bar,.hud .info,.hint-box{zoom:1.15}.tooltip{font-size:15px;max-width:320px}}@media (max-height: 760px){.howto h2,.dialog h2{margin-bottom:8px}.howto .cols{padding:12px 18px}.howto li,.howto p,.howto td{font-size:13px;line-height:1.35}}.dialog>.card{max-width:none}.keys td:first-child{width:112px;white-space:nowrap}#app:has(.menu) .hud .crosshair{display:none}.hotbar{counter-reset:hb}.slot.hot{counter-increment:hb}.slot.hot:before{content:counter(hb);position:absolute;left:3px;top:1px;font:bold 10px var(--font);color:#ffffff73;text-shadow:1px 1px 0 #000;pointer-events:none}.slot.hot.sel:before{color:#ffffffd9}.feats{margin-top:12px}.feats-head{font-size:13px;color:var(--muted);margin-bottom:6px}.feats-head b{color:#9cff4f}.feats-grid{display:flex;flex-wrap:wrap;gap:4px}.feat{display:flex;align-items:center;gap:5px;padding:3px 8px 3px 4px;background:#0000004d;border:1px solid #2c2836;font-size:11px;color:#6c6680}.feat img{width:20px;height:20px;filter:grayscale(1) brightness(.4)}.feat.got{color:#d8f5c0;border-color:#3d5a35;background:#28462859}.feat.got img{filter:none}.chest-btns{display:flex;gap:6px;margin-top:8px}.chest-btns .btn.small{margin-top:0!important}.creative-pal{width:344px!important}.sort-btn{margin-top:8px}.save-ind{position:absolute;right:14px;bottom:14px;z-index:40;font:bold 12px var(--font);color:#cfe9b8;text-shadow:1px 1px 0 #000;opacity:0;transition:opacity .4s;pointer-events:none}.save-ind:before{content:"■ ";color:#9cff4f;animation:pulse .8s infinite}.save-ind.on{opacity:.85}.load-tip{margin-top:18px;max-width:520px;text-align:center;font:italic 14px var(--font);color:#ffe9a8;text-shadow:1px 1px 0 #000}.tracker .rq{min-width:200px;background:linear-gradient(90deg,#0000008c,#00000040);border-left:3px solid var(--gold);padding:6px 12px 7px 10px;border-radius:0 3px 3px 0}.tracker .rq.main{border-left-color:#ffb340}.tracker .rq.ready{border-left-color:#9cff4f;box-shadow:0 0 14px #9cff4f2e}.tracker .rq.pulse{animation:rqPulse .6s ease-out}@keyframes rqPulse{0%{transform:translate(-6px);filter:brightness(1.8)}to{transform:none;filter:none}}.rq-title{font:bold 14px var(--font);color:var(--gold);margin-bottom:2px;letter-spacing:.3px}.rq.main .rq-title{color:#ffc966}.rq-obj{font-size:12.5px;color:#e9e4f4;line-height:1.45}.rq-obj b{color:#fff;font-weight:700;margin-left:4px}.rq-obj.ok{color:#9cff4f}.rq-turn{font-size:12.5px;color:#b6ff6a;margin-top:2px;animation:pulse 1.4s infinite}.btn.gold{background:linear-gradient(#b8913a,#7d5d1c)}.btn.glow{animation:btnGlow 1.2s infinite}.btn.bye{background:linear-gradient(#4a4458,#2e2a3a)}@keyframes btnGlow{0%,to{box-shadow:inset 0 2px #ffffff2e,0 0 #9cff4f99}50%{box-shadow:inset 0 2px #ffffff2e,0 0 14px 3px #9cff4f8c}}.badge{display:inline-block;font-style:normal;width:18px;height:18px;line-height:18px;border-radius:50%;text-align:center;font:900 13px var(--head);margin-left:4px;vertical-align:1px;border:2px solid #000;animation:badgeBob 1s ease-in-out infinite}.badge.e{background:#ffd166;color:#3a2400}.badge.q{background:#9cff4f;color:#183a00}@keyframes badgeBob{50%{transform:translateY(-2px) scale(1.08)}}.ri,.chip{position:relative;display:inline-flex;align-items:center;justify-content:center}.ri{width:38px;height:38px;background:var(--slot);border:2px solid var(--slot-edge);box-shadow:inset 2px 2px #00000080}.ri img{width:28px;height:28px;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.35))}.ri b{position:absolute;right:2px;bottom:0;font:bold 13px var(--font);text-shadow:2px 2px 0 #333;color:#fff}.ri.ench:after,.chip.ench:after{content:"";position:absolute;inset:3px;pointer-events:none;background:linear-gradient(110deg,transparent 30%,rgba(200,120,255,.55) 45%,transparent 60%);background-size:300% 100%;animation:glint 2.4s linear infinite;mix-blend-mode:screen}.ri.short{border-color:#6a2a2a}.ri.short b{color:#ff8a7a}.chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.chip{gap:4px;padding:3px 8px 3px 4px;background:#00000059;border:1px solid #3a3546;border-radius:3px;font:bold 13px var(--font)}.chip img{width:24px;height:24px;image-rendering:pixelated}.chip b{color:#fff}.chip b:before{content:"×";color:var(--muted);margin-right:1px;font-weight:400}.chip.chip-xp{color:#b6ff6a;padding:6px 10px}.tw-hid{visibility:hidden}.tt-warn{color:#ff8a7a;font-size:12px;margin-top:2px}.rpg-npc{width:min(620px,92vw);padding:16px 18px 14px}.npc-head{display:flex;gap:16px;align-items:flex-start}.npc-portrait{flex:none;width:120px;height:120px;border:3px solid #000;box-shadow:inset 0 0 0 2px var(--panel-edge),0 4px #0006;background:#000;position:relative}.npc-portrait canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.k-elder .npc-portrait{box-shadow:inset 0 0 0 2px #8a6ab8,0 0 18px #c48bff59}.npc-main{flex:1;min-width:0}.npc-name{font:bold 20px var(--head);color:var(--gold);text-shadow:2px 2px 0 #000;letter-spacing:.5px}.npc-title{font-size:12.5px;color:var(--muted);margin:1px 0 8px;text-transform:uppercase;letter-spacing:1.2px}.npc-text{min-height:84px;font-size:15.5px;line-height:1.5;color:#f6f1e6;background:#0000004d;border:1px solid #2c2836;padding:9px 12px;border-radius:3px;cursor:pointer;position:relative}.npc-text:before{content:"";position:absolute;left:-9px;top:18px;border:8px solid transparent;border-right-color:#2c2836;border-left:0}.npc-card{display:none;margin-top:12px;padding:10px 12px;background:#00000047;border:1px solid #3a3546;border-radius:3px;animation:fadeIn .25s}.npc-card.show{display:block}.npc-card.main{border-color:#7d5d1c;background:linear-gradient(#3c280a59,#00000040)}.npc-card.ready{border-color:#4f8a2b;box-shadow:0 0 16px #9cff4f1f inset}.npc-card.lore{background:none;border:none;padding:0}.npc-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;justify-content:flex-end}.npc-btns .btn{min-width:96px}.lore-list{display:flex;flex-wrap:wrap;gap:6px}.lore-list .btn.sel{background:linear-gradient(#8a6ab8,#5a3a7a)}.qc-head{display:flex;align-items:center;gap:8px;margin-bottom:5px}.qc-tag{font:bold 10px var(--font);text-transform:uppercase;letter-spacing:1px;padding:2px 6px;border-radius:2px;background:#3c374c;color:#d8d3e6}.npc-card.main .qc-tag,.qc-tag.main{background:#7d5d1c;color:#ffe2a0}.qc-tag.done{background:#2f5a1e;color:#c9ff9a}.qc-title{font:bold 16px var(--font);color:#fff;text-shadow:1px 1px 0 #000}.qc-title.big{font:bold 21px var(--head);color:var(--gold);letter-spacing:.5px}.qc-desc{font-size:13px;color:#cfc9dc;line-height:1.45;margin-bottom:6px}.qc-rew-label{font:bold 11px var(--font);text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-top:8px}.obj{margin:5px 0}.obj-row{display:flex;justify-content:space-between;font-size:13px}.obj-row b{color:#fff}.obj.ok .obj-row{color:#9cff4f}.obj-bar{height:5px;background:#0b0a10;border:1px solid #000;margin-top:2px}.obj-bar div{height:100%;background:linear-gradient(#ffe08a,#d9a531);transition:width .3s}.obj.ok .obj-bar div{background:linear-gradient(#c6ff8a,#5fbf1f)}.rpg-trade-row{align-items:flex-start}.rpg-trade{width:430px;display:flex;flex-direction:column}.trade-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.mini-portrait{width:56px;height:56px;image-rendering:pixelated;border:2px solid #000;box-shadow:inset 0 0 0 1px var(--panel-edge)}.trade-name{flex:1}.trade-name .npc-name{font-size:17px}.trade-name .npc-title{margin:0}.coin-count{display:flex;align-items:center;gap:4px;padding:4px 10px 4px 6px;background:#0006;border:1px solid #5a4a1a;border-radius:14px;font:bold 16px var(--font);color:var(--gold)}.coin-count img{width:22px;height:22px;image-rendering:pixelated}.trade-list{display:flex;flex-direction:column;gap:4px;max-height:380px;overflow-y:auto;padding-right:3px}.trade-row{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 4px;background:#ffffff0a;border:2px solid #2c2836;cursor:pointer;transition:background .1s,transform .08s}.trade-row:hover{background:#6ea0502e;border-color:#3d5a35;transform:translate(2px)}.trade-row.sell .tr-arrow{color:var(--gold)}.trade-row.cant{opacity:.6}.trade-row.cant:hover{background:#a03c3c26;border-color:#5a2a2a}.trade-row.sold{opacity:.35;filter:grayscale(.8)}.trade-row.shake{animation:tradeShake .3s}@keyframes tradeShake{20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.tr-give{display:flex;gap:3px}.tr-arrow{font-size:18px;color:#8a849a;width:18px;text-align:center}.tr-name{flex:1;font-size:13px;line-height:1.2;min-width:0}.tr-name small{display:block;color:#b49cff;font-size:11px}.trade-row.sell .tr-name small{color:var(--muted)}.tr-stock{font-size:11px;color:var(--muted);text-align:right;white-space:nowrap}.trade-quip{margin-top:8px;min-height:18px;font-size:13px;font-style:italic;color:#e6dcc0}.rpg-pack .inv-grid{margin-top:0}.spark{position:fixed;z-index:70;width:6px;height:6px;pointer-events:none;box-shadow:0 0 6px currentColor;animation:spark .75s ease-out forwards}@keyframes spark{0%{transform:translate(0) scale(1.2);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(.3);opacity:0}}.rpg-ench{position:relative;overflow:hidden;background:radial-gradient(ellipse at 30% 30%,rgba(80,40,130,.45),transparent 70%),var(--panel)}.ench-row{display:flex;gap:18px;align-items:flex-start;width:430px}.ench-left{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 10px;background:#0000004d;border:1px solid #3a2a55}.ench-lab{font:bold 11px var(--font);color:#b49cff;text-transform:uppercase;letter-spacing:1px}.ench-item{box-shadow:0 0 0 1px #5a3a8a,0 0 16px #aa64ff59,inset 2px 2px #00000080}.ench-item.flare{animation:flare .8s ease-out}@keyframes flare{0%{box-shadow:0 0 0 2px #fff,0 0 60px 20px #c88cfff2}to{box-shadow:0 0 0 1px #5a3a8a,0 0 16px #aa64ff59}}.ph-dust:after{content:"✦";position:absolute;font-size:22px;opacity:.2;color:#c9a0ff;pointer-events:none}.ench-offers{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}.ench-offer{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;padding:6px 10px;background:linear-gradient(90deg,#5a328c8c,#2818428c);border:2px solid #4a2f75;cursor:pointer;transition:transform .08s,background .1s}.ench-offer:hover{transform:translate(3px);background:linear-gradient(90deg,#8250c8b3,#3c226099);border-color:#8a5fd0}.ench-offer.no{filter:grayscale(.75) brightness(.7);cursor:not-allowed}.ench-offer.bind{background:linear-gradient(90deg,#285a8c8c,#1828428c);border-color:#2f5a8a}.eo-runes{font:18px Segoe UI Historic,Segoe UI Symbol,serif;color:#e3c4ff;letter-spacing:3px;text-shadow:0 0 8px rgba(200,140,255,.8);white-space:nowrap;overflow:hidden}.ench-offer.bind .eo-runes{font:bold 15px var(--font);letter-spacing:0;color:#bfe0ff;text-shadow:none}.eo-sub{grid-row:2;font-size:11px;color:#a88fd0}.ench-offer.bind .eo-sub{color:#b49cff}.eo-cost{grid-row:1 / 3;grid-column:2;display:flex;gap:8px;align-items:center}.eo-cost .dust{display:flex;align-items:center;gap:1px;font:bold 13px var(--font);color:#d8c4ff}.eo-cost .dust img{width:20px;height:20px;image-rendering:pixelated}.eo-cost .lv{min-width:28px;text-align:center;font:bold 16px var(--head);color:#9cff4f;text-shadow:1px 1px 0 #000,0 0 6px rgba(140,255,80,.6);padding:2px 6px;background:#00000059;border-radius:3px}.ench-offer.no .lv{color:#ff8a7a;text-shadow:1px 1px 0 #000}.ench-empty{font-size:13px;color:var(--muted);padding:18px 10px;text-align:center;border:1px dashed #4a2f75;font-style:italic}.ench-info{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:12.5px;color:var(--muted)}.ench-info b{color:#e3c4ff}.ench-info b.lvl{color:#9cff4f}.ench-info .pw{flex:1;height:6px;background:#0b0a10;border:1px solid #000}.ench-info .pw i{display:block;height:100%;background:linear-gradient(90deg,#6a3ab0,#d68cff);box-shadow:0 0 8px #b06aff}.ench-runes{position:absolute;inset:0;pointer-events:none;overflow:hidden}.rune{position:absolute;font:16px Segoe UI Historic,Segoe UI Symbol,serif;color:#d9b8ff;text-shadow:0 0 8px #a060ff,0 0 2px #fff;opacity:0;animation:runeIn 1.3s ease-in forwards}.rune.out{animation:runeOut 1.1s ease-out forwards;font-size:20px}@keyframes runeIn{0%{opacity:0;transform:translate(0) scale(.6)}25%{opacity:1}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.3) rotate(90deg)}}@keyframes runeOut{0%{opacity:1;transform:translate(0) scale(1.4)}to{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.6)}}.rpg-journal{width:min(840px,94vw)}.jr-top{display:flex;align-items:baseline;justify-content:space-between}.jr-stats{display:flex;gap:14px;font-size:13px;color:var(--muted);align-items:center}.jr-stats span{display:flex;align-items:center;gap:4px}.jr-stats img{width:20px;height:20px;image-rendering:pixelated}.jr-stats b{color:#fff}.jr-cols{display:flex;gap:12px;height:400px}.jr-list{width:260px;flex:none;overflow-y:auto;background:#0000004d;border:1px solid #2c2836;padding:6px}.jr-sec{font:bold 11px var(--font);text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin:8px 4px 4px}.jr-sec:first-child{margin-top:2px}.jr-item{display:flex;gap:8px;align-items:center;padding:6px 8px;cursor:pointer;border:1px solid transparent;font-size:13.5px}.jr-item:hover{background:#ffffff0d}.jr-item.sel{background:#ffd1661a;border-color:#7d5d1c}.jr-item.c-main .ji-title{color:#ffc966}.jr-item.done .ji-title{color:#7d778a}.jr-item.done .ji-mark{color:#4f8a2b}.jr-item.ready .ji-mark{color:#9cff4f;animation:pulse 1s infinite}.ji-mark{width:12px;text-align:center;color:var(--gold);font-weight:700}.jr-detail{flex:1;overflow-y:auto;background:#00000038;border:1px solid #2c2836;padding:12px 14px}.jr-detail .btn{margin-top:12px}.jr-giver{font-size:12px;color:var(--muted);margin:-2px 0 8px;font-style:italic}.jr-turn{margin-top:8px;color:#b6ff6a;font-size:13px}.jr-empty{color:var(--muted);font-size:14px;line-height:1.5;padding:30px 20px;text-align:center}.jr-foot{margin-top:8px;text-align:center}.ench-got{display:inline-block;font:bold 14px var(--font);color:#e3c4ff;font-style:normal;text-shadow:0 0 8px rgba(200,140,255,.7);margin-bottom:4px}.k-hermit .npc-portrait{box-shadow:inset 0 0 0 2px #5a7a3a,0 0 16px #78b4504d}.k-hermit .npc-name{color:#b8e08a}
