*{margin:0;padding:0;box-sizing:border-box}:root{--gold: #f0c75e;--hp: #e74c3c;--mp: #3498db;--xp: #9b59b6;--panel: rgba(12, 14, 24, .92);--panel-border: rgba(240, 199, 94, .35);--text: #e8e4d8;--dim: #9a958a;font-family:Avenir Next,Segoe UI,system-ui,sans-serif}html,body{width:100%;height:100%;overflow:hidden;background:#07080d;color:var(--text)}#app,#app canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#ui{position:absolute;inset:0;pointer-events:none;user-select:none;-webkit-user-select:none}h1,h2,h3,.title-font{font-family:Palatino,Georgia,serif;letter-spacing:.06em}button{pointer-events:auto;font:inherit;color:var(--text);background:linear-gradient(180deg,#3c345ce6,#221e38f2);border:1px solid var(--panel-border);border-radius:8px;padding:10px 26px;font-size:17px;cursor:pointer;transition:transform .08s,box-shadow .12s,filter .12s}button:hover:not(:disabled){filter:brightness(1.25);box-shadow:0 0 18px #f0c75e40;transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.38;cursor:default}button.primary{background:linear-gradient(180deg,#8a6d2c,#5d4717);font-weight:600}button.danger{background:linear-gradient(180deg,#7a2c2c,#4d1414)}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(ellipse at 50% 35%,#282446e0,#05060af5 75%);pointer-events:auto;z-index:50;animation:fadeIn .35s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.screen .game-title{font-size:clamp(44px,8vw,84px);background:linear-gradient(180deg,#ffe9a8,#c8932a 60%,#8a5d12);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 40px rgba(240,199,94,.18);margin-bottom:-6px}.screen .subtitle{color:var(--dim);font-size:18px;letter-spacing:.25em;text-transform:uppercase;margin-bottom:26px}.screen .menu-col{display:flex;flex-direction:column;gap:12px;min-width:280px}.screen .menu-col button{font-size:19px;padding:13px 30px}.screen .fine-print{position:absolute;bottom:18px;color:#565248;font-size:12px}.big-label{font-size:42px}.death-title{color:#ff5a4a;text-shadow:0 0 30px rgba(255,60,40,.4)}.share-btn{background:linear-gradient(135deg,#503c82d9,#32285ae6);border-color:#a078ff66}.share-btn:hover{border-color:#b48cffb3;filter:brightness(1.2)}.share-preview{margin-top:18px;display:flex;justify-content:center}.share-canvas-preview{max-width:min(560px,90vw);height:auto;border-radius:10px;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 40px #0009;display:block;width:100%}.victory-title{background:linear-gradient(180deg,#fff8d8,#ffd75e 55%,#cf8c1c);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-line{color:var(--dim);font-size:17px}.stat-line b{color:var(--gold)}.class-row{display:flex;gap:22px;flex-wrap:wrap;justify-content:center}.class-card{pointer-events:auto;width:250px;padding:22px 20px 18px;background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;text-align:center;cursor:pointer;transition:transform .12s,box-shadow .15s,border-color .15s}.class-card:hover{transform:translateY(-6px);box-shadow:0 14px 38px #00000080,0 0 24px var(--cc, rgba(240,199,94,.3));border-color:var(--cc, var(--gold))}.class-card .class-emoji{font-size:52px;display:block;margin-bottom:8px}.class-card h3{font-size:24px;color:var(--cc, var(--gold));margin-bottom:4px}.class-card .class-tag{color:var(--dim);font-size:13px;min-height:34px;margin-bottom:10px}.class-card .class-stats{font-size:13px;text-align:left;color:#c7c2b4;line-height:1.7}.class-card .class-stats b{color:var(--text)}#hud{position:absolute;inset:0;pointer-events:none}.hud-corner{position:absolute;top:14px;left:14px;width:290px}.portrait-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.portrait{width:52px;height:52px;border-radius:10px;flex:none;background:var(--panel);border:2px solid var(--panel-border);display:flex;align-items:center;justify-content:center;font-size:28px}.level-badge{position:absolute;transform:translate(34px,18px);background:#1c1828;border:1px solid var(--gold);color:var(--gold);font-size:11px;font-weight:700;border-radius:9px;padding:1px 6px}.bars{flex:1;display:flex;flex-direction:column;gap:4px}.bar{position:relative;height:16px;background:#0000009e;border:1px solid rgba(255,255,255,.14);border-radius:5px;overflow:hidden}.bar.xp-bar{height:7px}.bar .fill{position:absolute;inset:0;transform-origin:left;transition:transform .15s ease-out;border-radius:4px}.bar.hp-bar .fill{background:linear-gradient(180deg,#ff7561,var(--hp) 55%,#a82315)}.bar.mp-bar .fill{background:linear-gradient(180deg,#6fc0ff,var(--mp) 55%,#1d6fa8)}.bar.xp-bar .fill{background:linear-gradient(180deg,#c187e8,var(--xp))}.bar .bar-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;text-shadow:0 1px 2px #000}.gold-row{margin-top:5px;font-size:14px;color:var(--gold);display:flex;gap:14px}.gold-row .sp-alert{color:#7ef29a;animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.45}}#floor-banner{position:absolute;top:13%;left:50%;transform:translate(-50%);text-align:center;opacity:0;transition:opacity .5s;pointer-events:none}#floor-banner .floor-num{font-size:46px;font-family:Palatino,Georgia,serif;color:var(--gold);text-shadow:0 0 30px rgba(240,199,94,.5),0 2px 6px #000}#floor-banner .floor-theme{font-size:19px;letter-spacing:.3em;text-transform:uppercase;color:#d8d2c0;text-shadow:0 1px 4px #000}#floor-banner.show{opacity:1}#boss-bar{position:absolute;top:16px;left:50%;transform:translate(-50%);width:min(560px,46vw);display:none}#boss-bar.show{display:block}#boss-bar .boss-name{text-align:center;font-family:Palatino,Georgia,serif;font-size:19px;color:#ffb09a;text-shadow:0 1px 4px #000;margin-bottom:3px}#boss-bar .bar{height:18px;border-color:#ff785a73}#boss-bar .fill{background:linear-gradient(180deg,#ff9b6b,#d8403c 60%,#7c1410)}.hud-right{position:absolute;top:14px;right:14px;width:200px;display:flex;flex-direction:column;gap:10px;align-items:flex-end}#minimap{width:180px;height:180px;border-radius:10px;border:1px solid var(--panel-border);background:#080910c7}#quest-box{width:200px;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;padding:10px 12px;font-size:13px}#quest-box .quest-title{color:var(--gold);font-weight:700;font-size:12px;letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}#quest-box .quest-text{color:#d6d1c2;line-height:1.45}#quest-box .quest-text.done{color:#7ef29a}#hotbar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;gap:8px;align-items:flex-end}.slot{position:relative;width:56px;height:56px;background:var(--panel);border:1px solid rgba(255,255,255,.18);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:26px;box-shadow:0 4px 14px #00000073}.slot.locked{opacity:.35;filter:grayscale(1)}.slot .keycap{position:absolute;top:-7px;left:-5px;background:#2a2438;border:1px solid rgba(255,255,255,.25);border-radius:5px;font-size:10px;font-weight:700;padding:1px 5px;color:#cfc9ba}.slot .cost{position:absolute;bottom:1px;right:4px;font-size:10px;color:var(--mp);font-weight:700;text-shadow:0 1px 2px #000}.slot .count{position:absolute;bottom:1px;right:4px;font-size:11px;color:var(--text);font-weight:700;text-shadow:0 1px 2px #000}.slot .cd-overlay{position:absolute;left:0;right:0;bottom:0;height:0%;background:#0a0c16d1;border-radius:0 0 9px 9px;pointer-events:none}.slot .cd-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;color:#fff;text-shadow:0 1px 3px #000}.slot.on-cd{filter:saturate(.4)}.slot.no-mana{box-shadow:inset 0 0 0 2px #3498db8c}.hotbar-gap{width:10px}#toasts{position:absolute;bottom:110px;left:50%;transform:translate(-50%);display:flex;flex-direction:column-reverse;align-items:center;gap:6px;pointer-events:none}.toast{background:var(--panel);border:1px solid var(--panel-border);border-radius:8px;padding:7px 18px;font-size:15px;color:var(--gold);animation:toastIn .25s ease,toastOut .5s ease 2.6s forwards;text-shadow:0 1px 3px #000}.toast.big{font-size:19px;padding:10px 26px}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}}@keyframes toastOut{to{opacity:0;transform:translateY(-10px)}}#controls-hint{position:absolute;bottom:16px;left:16px;font-size:12px;color:#6e695e;line-height:1.7;text-shadow:0 1px 2px #000}#controls-hint b{color:#aaa493}.panel-wrap{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#04050999;backdrop-filter:blur(3px);pointer-events:auto;z-index:40;animation:fadeIn .2s ease}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;padding:26px 30px;min-width:360px;max-width:min(860px,92vw);max-height:86vh;overflow-y:auto;box-shadow:0 24px 80px #000000a6}.panel h2{color:var(--gold);margin-bottom:16px;font-size:26px;text-align:center}.panel .menu-col{display:flex;flex-direction:column;gap:10px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:12px 0;font-size:15px}.settings-row input[type=range]{width:180px;pointer-events:auto;accent-color:var(--gold)}.settings-row input[type=checkbox]{width:18px;height:18px;pointer-events:auto;accent-color:var(--gold)}.save-data-section{margin-top:18px;border-top:1px solid rgba(255,255,255,.1);padding-top:14px}.save-data-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--dim);margin-bottom:10px}.save-data-row{display:flex;gap:10px;flex-wrap:wrap}.save-data-row button{flex:1;min-width:130px}.import-msg{font-size:13px;margin-top:8px;min-height:18px}.st-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.st-points{font-size:16px;color:#7ef29a;font-weight:700}.st-tier{margin-bottom:18px}.st-tier-label{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:4px;margin-bottom:10px}.st-tier-label .lock-note{color:#c0604a;float:right;letter-spacing:0;text-transform:none}.st-nodes{display:flex;gap:12px;flex-wrap:wrap}.st-node{width:224px;background:#ffffff0b;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:11px 12px;position:relative}.st-node.maxed{border-color:var(--gold);background:#f0c75e12}.st-node.locked{opacity:.45}.st-node .st-name{font-weight:700;font-size:15px;margin-bottom:2px}.st-node .st-name .st-kind{font-size:10px;font-weight:600;letter-spacing:.08em;color:var(--dim);margin-left:6px;text-transform:uppercase}.st-node .st-name .st-kind.active-kind{color:#6fc0ff}.st-node .st-rank{position:absolute;top:10px;right:12px;font-size:13px;color:var(--gold);font-weight:700}.st-node .st-desc{font-size:12.5px;color:#bdb8aa;line-height:1.5;min-height:36px;margin:4px 0 8px}.st-node button{font-size:13px;padding:5px 14px;border-radius:6px;width:100%}#hurt-vignette{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(ellipse at center,transparent 55%,rgba(190,20,10,.55) 100%)}#hurt-vignette.flash{opacity:1;transition:opacity .06s}@media (max-width: 900px){.hud-right,#controls-hint{display:none}}.class-section-label{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);width:100%;text-align:center;margin-bottom:-6px;display:flex;align-items:center;justify-content:center;gap:10px}.premium-label{color:var(--gold)}.premium-badge{font-size:10px;background:linear-gradient(135deg,#8a6d2c,#5d4717);color:var(--gold);border-radius:5px;padding:2px 6px;vertical-align:middle;letter-spacing:.05em;text-transform:uppercase}.class-card.class-locked{opacity:.85}.class-lock-overlay{margin-top:10px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;color:var(--gold)}.small-btn{font-size:13px!important;padding:5px 14px!important}.shop-card{display:flex;align-items:center;gap:14px;padding:14px;margin-bottom:12px;background:#ffffff0a;border:1px solid var(--panel-border);border-radius:12px}.shop-card.shop-focus{border-color:var(--gold);box-shadow:0 0 20px #f0c75e33}.shop-emoji{font-size:42px;flex:none}.shop-info{flex:1}.shop-info h3{font-size:20px;color:var(--gold);margin-bottom:4px}.shop-info p{font-size:13px;color:var(--dim);margin-bottom:6px}.shop-skills{font-size:12px;color:#aaa}.shop-action{flex:none;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.shop-price{font-size:22px;font-weight:700;color:var(--gold)}.shop-owned{font-size:15px;color:#7ef29a}.btn-buy{pointer-events:auto;text-decoration:none;display:inline-block;font:inherit;color:var(--text);background:linear-gradient(180deg,#8a6d2c,#5d4717);font-weight:600;border:1px solid var(--panel-border);border-radius:8px;padding:8px 20px;font-size:15px;cursor:pointer;transition:filter .12s}.btn-buy:hover{filter:brightness(1.25)}.shop-bundle{display:flex;align-items:center;gap:12px;justify-content:center;padding:12px;background:#f0c75e12;border:1px solid var(--gold);border-radius:10px;margin:8px 0}.shop-note{font-size:12px;color:var(--dim);text-align:center;margin-top:10px}.restore-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;font-size:13px;color:var(--dim)}.restore-form{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:8px}.restore-form input[type=email]{background:#ffffff14;border:1px solid rgba(255,255,255,.2);border-radius:7px;color:#fff;padding:7px 12px;font-size:14px;width:240px;outline:none}.restore-form input[type=email]:focus{border-color:var(--gold)}.restore-msg{width:100%;text-align:center;font-size:13px;min-height:18px}.floor-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:5px;max-width:520px;margin:0 auto}.floor-btn{padding:0;width:100%;aspect-ratio:1;font-size:13px;font-weight:700;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:6px;cursor:pointer;transition:background .1s}.floor-btn:hover:not(:disabled){background:#f0c75e33;border-color:var(--gold)}.floor-btn.active{background:linear-gradient(180deg,#8a6d2c,#5d4717);border-color:var(--gold);color:var(--gold)}.floor-btn.locked{opacity:.2;cursor:default}.inv-panel{min-width:min(720px,94vw)}.inv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:10px}.inv-tabs{display:flex;gap:6px}.inv-tab{padding:6px 14px!important;font-size:14px!important;background:#ffffff0f;border-radius:8px}.inv-tab.active{background:linear-gradient(180deg,#8a6d2c,#5d4717);color:var(--gold);font-weight:600}.inv-body{min-height:280px}.inv-empty{color:var(--dim);text-align:center;padding:40px 20px;font-size:15px}.equip-grid{display:flex;flex-direction:column;gap:10px}.equip-slot{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 14px}.equip-slot-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}.equip-item{display:flex;align-items:center;gap:12px}.ei-emoji{font-size:28px;flex:none}.ei-name{font-weight:700;font-size:15px;margin-bottom:2px}.ei-flavor{font-size:12px;color:var(--dim);margin-bottom:3px}.ei-mods{font-size:12px;color:#8ff2e0}.equip-empty{color:#4a4640;font-size:14px;font-style:italic}.equip-bonus{margin-top:10px;padding:8px 12px;background:#8ff2e012;border:1px solid rgba(143,242,224,.2);border-radius:8px;font-size:13px;color:#8ff2e0}.bag-grid{display:flex;flex-direction:column;gap:8px}.bag-item{display:flex;align-items:center;gap:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 14px}.bi-emoji{font-size:26px;flex:none}.bi-info{flex:1}.bi-name{font-weight:700;font-size:14px}.bi-count{color:var(--gold);font-size:13px}.mat-grid{display:flex;flex-wrap:wrap;gap:10px}.mat-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:10px;min-width:80px;font-size:24px}.mat-card.rarity-common{border-color:#ffffff26}.mat-card.rarity-uncommon{border-color:#8ff2e066}.mat-card.rarity-rare{border-color:#ff805080}.mat-card.rarity-epic{border-color:var(--gold);box-shadow:0 0 10px #f0c75e33}.mat-name{font-size:11px;color:var(--dim);text-align:center}.mat-count{font-size:14px;font-weight:700;color:var(--gold)}.craft-tier{margin-bottom:16px}.craft-tier-label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:4px;margin-bottom:10px}.craft-recipes{display:flex;flex-direction:column;gap:8px}.recipe-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:10px 14px}.recipe-card.recipe-locked{opacity:.65}.recipe-top{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}.recipe-emoji{font-size:26px;flex:none;margin-top:2px}.recipe-info{flex:1}.recipe-name{font-weight:700;font-size:15px;margin-bottom:3px}.recipe-mats{font-size:12px;margin:4px 0;display:flex;flex-wrap:wrap;gap:6px}.recipe-gold{font-size:12px;margin-top:2px}.mat-ok{color:#7ef29a}.mat-missing{color:#c0604a}
