@font-face{font-family:"Press Start 2P";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/PressStart2P-Regular.woff2) format("woff2")}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/PixelifySans-Variable.woff2) format("woff2")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--dungeon-bg: #0a0a0f;--leather: #221610;--leather-dark: #150e08;--wood-dark: #1d1410;--bronze: #5a4426;--gold: #c9a227;--gold-light: #e8c96a;--parchment: #e6d6ae;--torch-orange: #ff8c00;--torch-yellow: #ffd700;--blood-red: #c0392b;--bone-white: #e8dcc8;--hp-green: #27ae60;--hp-low: #e74c3c;--gold-coin: #f1c40f;--ui-border: var(--bronze);--pixel-font: "Pixelify Sans", system-ui, sans-serif;--display-font: "Press Start 2P", system-ui, monospace;--cp-wood-dark:#14121e;--cp-wood-frame:#3f3f74;--cp-wood-hi:#6a6ab0;--cp-panel:#222034;--cp-panel-edge:#2c2a46;--cp-slot-empty:#191726;--cp-header:#45283c;--cp-header-dark:#2a1726;--cp-header-hi:#6a3f5a;--cp-btn:#49662f;--cp-btn-dark:#2f4420;--cp-btn-hi:#6d9447;--cp-ink-light:#ece9f7;--cp-ink-dark:#c7c3e0;--cp-accent:#ac3232;--cp-accent-hi:#d05a5a}html,body{width:100%;height:100%;overflow:hidden;background:var(--dungeon-bg);font-family:var(--pixel-font);color:var(--bone-white);cursor:crosshair;user-select:none}#game-canvas{position:fixed;top:0;left:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none}#ui-overlay{position:fixed;inset:0;z-index:10;pointer-events:none}.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#05050ae0;opacity:0;pointer-events:none;transition:opacity .3s ease}.screen.active{opacity:1;pointer-events:all}.screen-inner{display:flex;flex-direction:column;align-items:center;gap:24px;padding:42px 52px;border:3px solid var(--bronze);outline:1px solid rgba(201,162,39,.45);outline-offset:-9px;background:radial-gradient(ellipse at 50% 0%,rgba(201,162,39,.07),transparent 60%),linear-gradient(160deg,var(--leather) 0%,var(--leather-dark) 100%);box-shadow:0 0 60px #c9a2271f,0 0 0 1px #000c,inset 0 0 50px #000000a6;position:relative;max-height:92vh;overflow-y:auto}.screen-inner:before,.screen-inner:after{content:"⚜";position:absolute;color:var(--gold);font-size:16px;opacity:.85;text-shadow:0 0 8px rgba(201,162,39,.6)}.screen-inner:before{top:8px;left:14px}.screen-inner:after{bottom:8px;right:14px}.screen-inner.compact{padding:32px 44px;gap:18px}.title-block{text-align:center;line-height:1.15}.title-glow{font-family:var(--display-font);font-size:clamp(40px,9vw,76px);color:var(--torch-orange);text-shadow:0 0 20px var(--torch-orange),0 0 40px rgba(255,140,0,.5);letter-spacing:.06em;animation:flicker 3s infinite}.title-main{font-family:var(--display-font);font-size:clamp(32px,7vw,60px);color:var(--parchment);letter-spacing:.06em;text-shadow:0 0 12px rgba(232,201,106,.4)}.title-sub{font-size:clamp(13px,2vw,17px);color:var(--gold);letter-spacing:.4em;margin-top:8px;opacity:.9}@keyframes flicker{0%,to{opacity:1}92%{opacity:1}93%{opacity:.7}94%{opacity:1}96%{opacity:.85}97%{opacity:1}}.class-select{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}.class-select-label{font-size:clamp(13px,1.8vw,17px);color:var(--gold);letter-spacing:.28em}.class-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;justify-content:center}.class-card,.lobby-slot,.lobby-class-card{font-family:var(--pixel-font);display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px;min-width:118px;background:linear-gradient(170deg,#241a12,#170f0a);border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.25);outline-offset:-5px;color:var(--bone-white);cursor:pointer;transition:transform .08s,border-color .15s,box-shadow .15s}.class-card:hover,.lobby-class-card:hover{transform:translateY(-3px);border-color:var(--gold)}.class-card.selected,.lobby-class-card.selected{border-color:var(--gold);outline-color:#e8c96a99;box-shadow:0 0 18px #c9a22759,inset 0 0 14px #c9a2271f;background:linear-gradient(170deg,#2d2013,#1d1409)}.class-icon{font-size:clamp(20px,3vw,28px);line-height:1}.mage-icon{color:#6cf;text-shadow:0 0 10px #4af}.archer-icon{color:#2ecc71;text-shadow:0 0 10px rgba(46,204,113,.6)}.warrior-icon{color:#e74c3c;text-shadow:0 0 10px rgba(231,76,60,.6)}.ninja-icon{color:#aab7c4;text-shadow:0 0 10px rgba(170,183,196,.6)}.priest-icon{color:gold;text-shadow:0 0 10px rgba(255,215,0,.6)}.witch-icon{color:#9b59b6;text-shadow:0 0 10px rgba(155,89,182,.6)}.class-name{font-family:var(--display-font);font-size:clamp(16px,2.2vw,22px);color:var(--gold-light);letter-spacing:.1em}.class-desc{font-size:clamp(10px,1.3vw,13px);color:#e8dcc899;line-height:1.5;text-align:center;letter-spacing:.06em}.class-card.locked{filter:grayscale(1) brightness(.6);cursor:not-allowed}.class-card.locked:hover{transform:none;border-color:var(--bronze)}.class-card.locked .class-desc{color:#e8a078d9}#class-record{font-size:clamp(11px,1.5vw,14px);color:#c9a227bf;letter-spacing:.12em;margin-top:4px}.new-record{font-family:var(--display-font);font-size:clamp(16px,2.6vw,24px);color:var(--gold-coin);letter-spacing:.2em;text-shadow:0 0 16px rgba(241,196,15,.9);animation:pulse-gold 1.2s ease-in-out infinite}.new-record.hidden{display:none}.name-picker{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}#hero-name,#join-code{font-family:var(--display-font);font-size:clamp(17px,2.4vw,22px);letter-spacing:.12em;text-align:center;color:var(--parchment);background:linear-gradient(180deg,#120c07,#241a12);border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.25);outline-offset:-5px;padding:8px 14px;width:min(260px,70%);cursor:text}#hero-name:focus,#join-code:focus{border-color:var(--gold);outline-color:#e8c96a80}#hero-name::placeholder,#join-code::placeholder{color:#e8dcc84d}.mode-select{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;width:100%}.mode-btn{font-family:var(--display-font);font-size:clamp(14px,2vw,18px);letter-spacing:.1em;color:#e8dcc88c;background:linear-gradient(180deg,#241a12,#170f0a);border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.2);outline-offset:-5px;padding:8px 20px;cursor:pointer;transition:color .15s,border-color .15s,box-shadow .15s}.mode-btn:hover{border-color:var(--gold)}.mode-btn.selected{color:var(--gold-light);border-color:var(--gold);box-shadow:0 0 14px #c9a22759,inset 0 0 10px #c9a2271f}.forge-btn span{color:var(--gold-coin)}.forge-inner{min-width:min(460px,92vw)}.forge-hint{font-size:clamp(10px,1.4vw,13px);opacity:.7;letter-spacing:.12em}.forge-list{display:flex;flex-direction:column;gap:10px;width:100%;max-height:50vh;overflow-y:auto}.forge-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(170deg,#241a12,#170f0a);border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.2);outline-offset:-5px}.forge-row .f-icon{font-size:clamp(16px,2.4vw,22px);width:30px;text-align:center}.forge-row .f-info{flex:1;display:flex;flex-direction:column;gap:3px}.forge-row .f-name{font-family:var(--display-font);font-size:clamp(13px,1.8vw,17px);color:var(--gold-light);letter-spacing:.08em}.forge-row .f-desc{font-size:clamp(10px,1.3vw,12.5px);color:#e8dcc8a6}.forge-row .f-pips{font-size:clamp(9px,1.2vw,12px);color:var(--gold);letter-spacing:2px}.forge-row .f-buy{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);color:var(--gold-coin);background:linear-gradient(180deg,#2d2013,#1a120a);border:2px solid var(--bronze);padding:8px 14px;cursor:pointer;white-space:nowrap}.forge-row .f-buy:hover:not(:disabled){border-color:var(--gold)}.forge-row .f-buy:disabled{opacity:.35;cursor:not-allowed}.forge-row .f-buy.maxed{color:#2ecc71}.color-picker{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.color-label{font-size:clamp(13px,1.8vw,17px);color:var(--gold);letter-spacing:.28em}.color-row{display:flex;align-items:center;gap:20px}#color-preview{width:72px;height:84px;image-rendering:pixelated;background:#0006;border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.3);outline-offset:-4px}.color-sliders{display:flex;flex-direction:column;gap:8px}.cslider{display:flex;align-items:center;gap:10px;font-size:clamp(12px,1.6vw,15px)}.ch{width:14px;font-family:var(--display-font)}.ch.r{color:#e74c3c}.ch.g{color:#2ecc71}.ch.b{color:#3498db}.cslider input[type=range]{-webkit-appearance:none;appearance:none;width:clamp(110px,18vw,190px);height:10px;background:linear-gradient(180deg,#120c07,#241a12);border:1px solid var(--bronze);cursor:pointer}.cslider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:13px;height:18px;background:linear-gradient(180deg,var(--gold-light),var(--gold) 60%,#8a6a2f);border:1px solid #4a3018;cursor:pointer}.cslider input[type=range]::-moz-range-thumb{width:13px;height:18px;background:linear-gradient(180deg,var(--gold-light),var(--gold) 60%,#8a6a2f);border:1px solid #4a3018;border-radius:0;cursor:pointer}.cval{min-width:34px;text-align:right;color:var(--parchment)}.toggle-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.aim-toggle{font-family:var(--display-font);font-size:clamp(14px,2vw,18px);letter-spacing:.1em;color:#e8dcc899;background:linear-gradient(180deg,#241a12,#170f0a);border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.2);outline-offset:-5px;padding:8px 22px;cursor:pointer;transition:color .15s,border-color .15s,box-shadow .15s}.aim-toggle:hover{border-color:var(--gold)}.aim-toggle.on{color:var(--gold-light);border-color:var(--gold);box-shadow:0 0 14px #c9a22759,inset 0 0 10px #c9a2271f}.instructions{display:flex;flex-direction:column;gap:8px;font-size:clamp(12px,1.6vw,15px);letter-spacing:.05em;border-top:1px solid rgba(201,162,39,.25);border-bottom:1px solid rgba(201,162,39,.25);padding:14px 0;width:100%}.inst-row{display:flex;gap:12px;align-items:center;color:#e8dcc8bf}.key,.lobby-chip{font-family:var(--display-font);background:linear-gradient(180deg,#2d2013,#1a120a);border:1px solid var(--bronze);color:var(--gold-light);padding:2px 8px;font-size:inherit;min-width:76px;text-align:center;box-shadow:0 2px #00000080,inset 0 1px #c9a22740}.btn-pixel{font-family:var(--display-font);font-size:clamp(18px,2.6vw,24px);letter-spacing:.1em;color:var(--wood-dark);background:linear-gradient(180deg,var(--gold-light) 0%,var(--gold) 45%,#8a6a2f 100%);border:2px solid #4a3018;padding:10px 34px;cursor:pointer;position:relative;box-shadow:inset 0 1px #ffebb4a6,0 4px #4a3018,0 7px 10px #00000080;text-shadow:0 1px 0 rgba(255,235,180,.5);transition:transform .05s,box-shadow .05s,filter .1s}.btn-pixel:hover{filter:brightness(1.12)}.btn-pixel:active{transform:translateY(3px);box-shadow:inset 0 1px #ffebb4a6,0 1px #4a3018}.btn-pixel.secondary{background:linear-gradient(180deg,#3a2d1e,#241a12);color:var(--bone-white);border-color:var(--bronze);box-shadow:inset 0 1px #c9a22733,0 4px #120c07,0 6px 8px #0006;text-shadow:none}.btn-pixel.secondary:hover{filter:brightness(1.25)}#btn-update.hidden{display:none}.share-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn-pixel.share{background:linear-gradient(180deg,#4ee07c,#25d366 45%,#128c4b);border-color:#0b5c31;color:#06281a;box-shadow:inset 0 1px #c8ffdc99,0 4px #0b5c31,0 7px 10px #00000080;text-shadow:0 1px 0 rgba(200,255,220,.45);font-size:clamp(14px,2vw,19px)}.btn-pixel.share.telegram{background:linear-gradient(180deg,#54c8f0,#229ed9 45%,#0e6e9e);border-color:#084d70;color:#04222f;box-shadow:inset 0 1px #c8ebff99,0 4px #084d70,0 7px 10px #00000080;text-shadow:0 1px 0 rgba(200,235,255,.45)}.footer-hint{font-size:clamp(11px,1.4vw,14px);color:#e8dcc873;letter-spacing:.06em;text-align:center;font-style:italic}.pause-title{font-family:var(--display-font);font-size:clamp(26px,4.5vw,40px);color:var(--gold);letter-spacing:.2em;text-shadow:0 0 16px rgba(201,162,39,.7)}.levelup-sub{font-size:clamp(13px,1.8vw,17px);color:var(--gold);letter-spacing:.28em}.levelup-cards{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.levelup-cards .shop-item{min-width:130px;padding:16px 14px}.shop-inner{min-width:min(480px,92vw)}.shop-title{font-family:var(--display-font);font-size:clamp(26px,4.5vw,40px);color:var(--gold-light);letter-spacing:.2em;text-shadow:0 0 14px rgba(232,201,106,.5)}.shop-gold{font-size:clamp(14px,2vw,18px);color:#e8dcc899;letter-spacing:.15em}.shop-gold span{color:var(--gold-coin);text-shadow:0 0 8px rgba(241,196,15,.6)}.shop-main{display:flex;gap:16px;width:100%;align-items:stretch}.shop-items{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1}.shop-stats{display:flex;flex-direction:column;gap:3px;padding:10px 14px;border:1px solid var(--bronze);outline:1px solid rgba(201,162,39,.2);outline-offset:-4px;background:#00000059;min-width:170px;max-height:320px;overflow-y:auto}.stat-line{display:flex;justify-content:space-between;gap:12px;font-size:clamp(11px,1.4vw,13px);color:#e8dcc8b3;letter-spacing:.04em}.stat-line span:last-child{color:var(--gold-light)}.shop-effects{display:flex;flex-direction:column;gap:2px;align-items:center}.fx-pos,.fx-neg{font-size:clamp(10px,1.3vw,12.5px);letter-spacing:.04em}.fx-pos{color:#2ecc71}.fx-neg{color:#e74c3c}.shop-item{font-family:var(--pixel-font);display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 10px;background:linear-gradient(170deg,#241a12,#170f0a);border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.2);outline-offset:-5px;color:var(--bone-white);cursor:pointer;transition:transform .08s,border-color .15s}.shop-item:hover:not(:disabled){transform:translateY(-2px);border-color:var(--gold)}.shop-item:disabled{opacity:.35;cursor:not-allowed}.shop-item.sold{opacity:.3;justify-content:center;cursor:default}.shop-icon{font-size:clamp(17px,2.6vw,24px);line-height:1}.heal-icon{color:#2ecc71}.maxhp-icon{color:#e74c3c}.dmg-icon{color:#e67e22}.spd-icon{color:#3498db}.shop-name{font-family:var(--display-font);font-size:clamp(13px,1.8vw,17px);color:var(--gold-light);letter-spacing:.08em}.shop-price{font-size:clamp(12px,1.6vw,15px);color:var(--gold-coin)}.shop-price:after{content:" ¤";opacity:.6}.shop-bottom{display:flex;gap:12px;width:100%;justify-content:center}.shop-item.small{flex-direction:row;padding:8px 18px;font-size:clamp(12px,1.6vw,15px);gap:6px}.shop-item.small span{color:var(--gold-coin)}.shop-left{display:flex;flex-direction:column;gap:10px;flex:1;min-width:0}.shop-section-label{font-family:var(--display-font);font-size:clamp(12px,1.7vw,15px);color:var(--gold);letter-spacing:.2em;text-align:center;margin-top:4px}.shop-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.slot-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:1px solid var(--bronze);background:linear-gradient(180deg,#1b130b,#120c07);min-width:0}.slot-chip.empty{opacity:.45}.slot-chip .slot-ico{font-size:clamp(14px,2.2vw,20px);line-height:1}.slot-chip .slot-lbl{font-family:var(--pixel-font);font-size:clamp(8px,1.2vw,11px);color:var(--parchment);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.shop-equip{display:grid;grid-template-columns:1fr 1fr;gap:10px;min-height:72px}.cmp-up{color:var(--hp-green);font-size:clamp(10px,1.4vw,13px)}.cmp-down{color:var(--hp-low);font-size:clamp(10px,1.4vw,13px)}.cmp-same{color:#e8dcc880;font-size:clamp(10px,1.4vw,13px)}.gameover-title{font-family:var(--display-font);font-size:clamp(40px,8vw,70px);color:var(--blood-red);letter-spacing:.12em;text-shadow:0 0 24px var(--blood-red),0 0 48px rgba(192,57,43,.4);animation:pulse-red 1.5s ease-in-out infinite}@keyframes pulse-red{0%,to{text-shadow:0 0 24px var(--blood-red),0 0 48px rgba(192,57,43,.4)}50%{text-shadow:0 0 40px var(--blood-red),0 0 80px rgba(192,57,43,.6)}}.skull{font-size:clamp(28px,7vw,60px);animation:skull-bob 2s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(192,57,43,.6))}@keyframes skull-bob{0%,to{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-6px) rotate(5deg)}}.stats-block{display:flex;flex-direction:column;gap:8px;width:100%;border:1px solid var(--bronze);outline:1px solid rgba(201,162,39,.2);outline-offset:-4px;padding:14px 24px;background:#0000004d}.stat-row{display:flex;justify-content:space-between;font-size:clamp(13px,1.9vw,17px);color:var(--bone-white);gap:40px;letter-spacing:.1em}.stat-row span:last-child{color:var(--gold-light)}.victory-title{font-family:var(--display-font);font-size:clamp(34px,7vw,60px);color:var(--gold-coin);letter-spacing:.1em;text-shadow:0 0 24px rgba(241,196,15,.8),0 0 48px rgba(241,196,15,.4);animation:pulse-gold 1.5s ease-in-out infinite}@keyframes pulse-gold{0%,to{text-shadow:0 0 24px rgba(241,196,15,.8),0 0 48px rgba(241,196,15,.4)}50%{text-shadow:0 0 40px rgba(241,196,15,1),0 0 80px rgba(241,196,15,.6)}}.trophy{font-size:clamp(28px,7vw,60px);animation:skull-bob 2s ease-in-out infinite;filter:drop-shadow(0 0 14px rgba(241,196,15,.7))}#boss-bar{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none}#boss-bar.hidden{display:none}#boss-name{font-family:var(--display-font);font-size:clamp(16px,2.4vw,22px);color:var(--blood-red);letter-spacing:.25em;text-shadow:0 0 12px var(--blood-red)}#boss-hp-wrap{width:clamp(200px,40vw,460px);height:14px;background:#120c07;border:2px solid var(--bronze);outline:1px solid rgba(201,162,39,.3);outline-offset:-4px;box-shadow:inset 0 0 6px #000000e6,0 0 12px #c0392b4d}#boss-hp{height:100%;width:100%;background:linear-gradient(to right,#7b241c,#e74c3c);transition:width .2s ease}#hurt-flash{position:fixed;inset:0;z-index:4;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(192,57,43,.45) 100%);opacity:0}#hurt-flash.show{animation:hurt-fade .4s ease-out forwards}@keyframes hurt-fade{0%{opacity:1}to{opacity:0}}#touch-ui{display:none}#touch-ui.enabled{display:block}#hud.hidden+#touch-ui{display:none}#joystick-base{position:fixed;width:116px;height:116px;border:3px solid rgba(201,162,39,.5);border-radius:50%;background:#140e0859;transform:translate(-50%,-50%);display:none;z-index:7;pointer-events:none}#joystick-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--gold-light),var(--gold) 60%,#8a6a2f);border:2px solid #4a3018;transform:translate(-50%,-50%);box-shadow:0 2px 8px #0009}#btn-touch-special,#btn-touch-sprint,#btn-touch-pause{position:fixed;z-index:7;font-family:var(--display-font);border-radius:50%;border:3px solid var(--bronze);background:#140e088c;color:var(--gold-light);pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent}#btn-touch-special{right:24px;bottom:36px;width:84px;height:84px;font-size:34px;color:#d2a0e8;border-color:#6c3483;box-shadow:0 0 16px #9b59b659;overflow:hidden}#btn-touch-special:after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(rgba(0,0,0,.6) calc(var(--cd, 0) * 1%),transparent 0);pointer-events:none}#btn-touch-special.ready{color:#f3d9ff;border-color:#b56be0;box-shadow:0 0 24px #9b59b6bf}#btn-touch-sprint{right:122px;bottom:24px;width:64px;height:64px;font-size:28px;color:var(--gold-coin)}#btn-touch-sprint.held{background:#c9a22766}#btn-touch-pause{right:12px;top:76px;width:44px;height:44px;font-size:14px}#wave-announce{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--display-font);font-size:clamp(28px,5vw,44px);color:var(--torch-orange);text-shadow:0 0 20px var(--torch-orange),0 2px 0 rgba(0,0,0,.6);letter-spacing:.18em;pointer-events:none;z-index:6;text-align:center;opacity:0}#wave-announce.hidden{display:none}#wave-announce.show{animation:wave-in 2.5s forwards}@keyframes wave-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}70%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1)}}#hud{position:fixed;top:0;left:0;right:0;z-index:5;display:flex;justify-content:space-between;align-items:flex-start;padding:10px 16px;pointer-events:none;background:linear-gradient(to bottom,rgba(5,5,10,.85) 0%,transparent 100%)}#hud.hidden{display:none}.hud-label{font-size:clamp(11px,1.5vw,14px);color:#c9a227d9;letter-spacing:.18em;margin-bottom:3px}.gold-label{color:#f1c40fb3;margin-top:6px}#hud-left{display:flex;flex-direction:column}#hud-name{font-family:var(--display-font);font-size:clamp(15px,2.2vw,21px);color:var(--parchment);letter-spacing:.08em;margin-bottom:4px;text-shadow:0 0 8px rgba(232,201,106,.3)}.xp-label{margin-top:6px;color:#66ccffb3}#xp-bar-wrap{width:clamp(76px,12vw,150px);height:7px;background:#120c07;border:2px solid var(--bronze);box-shadow:inset 0 0 4px #000c}#xp-bar{height:100%;width:0%;background:linear-gradient(to right,#2980b9,#6cf);transition:width .2s ease}#hp-bar-wrap{width:clamp(90px,14vw,170px);height:13px;background:#120c07;border:2px solid var(--bronze);position:relative;box-shadow:inset 0 0 4px #000c}#hp-bar{height:100%;width:100%;background:linear-gradient(to right,var(--hp-low),var(--hp-green));transition:width .15s ease,background .3s}.st-label{margin-top:6px;color:#f1c40fb3}#st-bar-wrap{width:clamp(76px,12vw,150px);height:9px;background:#120c07;border:2px solid var(--bronze);box-shadow:inset 0 0 4px #000c}#st-bar{height:100%;width:100%;background:linear-gradient(to right,#d4ac0d,#f1c40f);transition:width .1s linear}#st-bar.recovering{background:linear-gradient(to right,#935116,#ca6f1e)}.sp-label{margin-top:6px;color:#9b59b6d9}#sp-bar-wrap{width:clamp(66px,10vw,130px);height:9px;background:#120c07;border:2px solid var(--bronze);box-shadow:inset 0 0 4px #000c}#sp-bar{height:100%;width:100%;background:linear-gradient(to right,#6c3483,#9b59b6);transition:width .1s linear}#sp-bar.ready{background:linear-gradient(to right,#9b59b6,#d2a0e8);box-shadow:0 0 8px #9b59b6cc}#hud-center{text-align:center}#wave-display{font-family:var(--display-font);font-size:clamp(24px,4vw,38px);color:var(--torch-orange);text-shadow:0 0 12px var(--torch-orange);line-height:1}#wave-timer{font-family:var(--display-font);font-size:clamp(14px,2vw,18px);color:#e8dcc8bf;line-height:1.2}#combo-display{font-family:var(--display-font);font-size:clamp(15px,2.4vw,22px);color:var(--gold-coin);text-shadow:0 0 10px rgba(241,196,15,.7);letter-spacing:.08em;line-height:1.3;animation:combo-pop .25s ease-out}#combo-display.hidden{display:none}@keyframes combo-pop{0%{transform:scale(1.4)}to{transform:scale(1)}}#hud-right{text-align:right}#score-display,#gold-display{font-family:var(--display-font);font-size:clamp(16px,2.4vw,24px);color:var(--parchment);line-height:1.1}#gold-display{color:var(--gold-coin);text-shadow:0 0 8px rgba(241,196,15,.5)}.instructions.hidden-inst{display:none}.robo-icon{color:#6cf;text-shadow:0 0 10px rgba(102,204,255,.6)}.title-glow,.title-main{font-size:clamp(20px,5vw,38px)!important;line-height:1.15}.title-sub{font-size:clamp(8px,1.5vw,11px)!important;letter-spacing:2px}.shop-title{font-size:clamp(13px,2.6vw,20px)!important;letter-spacing:1px}.gameover-title,.victory-title{font-size:clamp(16px,3.4vw,28px)!important;line-height:1.2}.pause-title,.levelup-sub,.shop-gold,.footer-hint,.color-label,.class-name,.hud-label,.stat-row,.stat-line,.shop-name,.f-name{letter-spacing:.5px}#wave-display{font-size:clamp(16px,3vw,26px)!important}#score-display,#gold-display{font-size:clamp(12px,2vw,18px)!important}.btn-pixel{font-size:clamp(11px,1.8vw,15px)!important}.screen{background:radial-gradient(circle at 50% -10%,#2a1d12,#0a0a0f 60%)}.screen-inner{background:var(--cp-panel);color:var(--cp-ink-dark);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 0 0 3px var(--cp-wood-frame),inset 0 0 0 6px var(--cp-wood-dark),0 6px #00000080;border-radius:0}.shop-title,.pause-title,.victory-title,.gameover-title,.title-sub{display:inline-block;background:var(--cp-header);color:var(--cp-ink-light);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 3px 0 var(--cp-header-hi),inset 0 -3px 0 var(--cp-header-dark),0 3px #0006;padding:8px 16px;margin-bottom:14px;text-shadow:0 2px 0 rgba(0,0,0,.35)}.gameover-title,.victory-title{animation:none}.btn-pixel{font-family:var(--display-font);color:var(--cp-ink-light);background:var(--cp-btn);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 3px 0 var(--cp-btn-hi),inset 0 -4px 0 var(--cp-btn-dark),0 3px #0006;border-radius:0;padding:12px 18px;transition:transform .05s}.btn-pixel:hover{filter:brightness(1.06)}.btn-pixel:active{transform:translateY(3px);box-shadow:inset 0 3px 0 var(--cp-btn-hi),inset 0 -2px 0 var(--cp-btn-dark)}.btn-pixel.secondary{background:var(--cp-wood-frame);box-shadow:inset 0 3px 0 var(--cp-wood-hi),inset 0 -4px #7a5020,0 3px #0006}.class-card,.lobby-slot,.lobby-class-card{background:var(--cp-panel-edge);color:var(--cp-ink-dark);border:3px solid var(--cp-wood-dark);box-shadow:inset 2px 2px #00000038,inset -2px -2px #ffffff40;border-radius:0}.class-card.selected,.lobby-class-card.selected{background:var(--cp-btn);color:var(--cp-ink-light);box-shadow:inset 0 3px 0 var(--cp-btn-hi),inset 0 -3px 0 var(--cp-btn-dark)}.class-card.locked{opacity:.5;filter:none}.mode-btn,.aim-toggle{font-family:var(--display-font);color:var(--cp-ink-light);background:var(--cp-header);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 3px 0 var(--cp-header-hi),inset 0 -3px 0 var(--cp-header-dark),0 2px #0006;border-radius:0}.mode-btn.selected,.aim-toggle.on{background:var(--cp-btn);box-shadow:inset 0 3px 0 var(--cp-btn-hi),inset 0 -3px 0 var(--cp-btn-dark)}#hero-name,#join-code{background:var(--cp-panel);color:var(--cp-ink-dark);border:3px solid var(--cp-wood-dark);border-radius:0;font-family:var(--pixel-font)}.cslider input[type=range]{border-color:var(--cp-wood-dark)}.cslider input[type=range]::-webkit-slider-thumb{background:var(--cp-btn);border-color:var(--cp-wood-dark)}.cslider input[type=range]::-moz-range-thumb{background:var(--cp-btn);border-color:var(--cp-wood-dark)}.class-name{font-size:clamp(9px,1.5vw,12px)!important}.class-desc,.footer-hint,.inst-row,.cval,.cdesc{font-size:clamp(9px,1.4vw,12px)!important}.title-glow,.title-main{color:#9a9af0!important;text-shadow:0 3px 0 rgba(0,0,0,.5)!important;animation:none!important}.class-select-label,.color-label,.cval,.ch,.footer-hint,.inst-row,#class-record,.name-picker .color-label,.levelup-sub{color:var(--cp-ink-dark)!important}.inst-row .key,.lobby-chip{color:var(--cp-ink-light)!important;background:var(--cp-header);border-color:var(--cp-wood-dark)}.class-card .class-name{color:var(--cp-ink-light)!important}.class-card .class-desc{color:var(--cp-ink-dark)!important}.class-card.selected .class-name,.class-card.selected .class-desc{color:var(--cp-ink-light)!important}.fx-pos,.cmp-up{color:#8fbf6a!important}.fx-neg,.cmp-down{color:#d9605a!important}#hud-left,#hud-center,#hud-right{background:var(--cp-panel);color:var(--cp-ink-light);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 0 0 2px var(--cp-wood-frame),0 3px #00000073;border-radius:0;padding:8px 10px}.hud-label{color:var(--cp-ink-dark);font-family:var(--display-font)}#hud-name,#score-display,#wave-timer{color:var(--cp-ink-light);text-shadow:none}#wave-display{color:var(--cp-accent-hi);text-shadow:0 2px 0 rgba(0,0,0,.5)}#gold-display{color:#d8b24a}#combo-display{color:#e8c34a}#hp-bar-wrap,#xp-bar-wrap,#st-bar-wrap,#sp-bar-wrap{background:#14121e;border:3px solid var(--cp-wood-dark);box-shadow:inset 0 0 0 1px #000;border-radius:0;overflow:hidden}#hp-bar,#xp-bar,#st-bar,#sp-bar{border-radius:0}#boss-bar{background:var(--cp-panel);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 0 0 2px var(--cp-wood-frame);border-radius:0}#boss-name{color:var(--cp-accent-hi)}#boss-hp-wrap{background:#14121e;border:2px solid var(--cp-wood-dark);border-radius:0}.shop-item.offer,.shop-item.small{background:var(--cp-panel-edge);color:var(--cp-ink-light);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 2px #ffffff0f,inset 0 -3px #00000059;border-radius:0}.shop-item.offer:hover:not(:disabled){filter:brightness(1.12);transform:translateY(-2px)}.shop-name{color:var(--cp-ink-light)}.shop-price{color:#e0b24a;font-family:var(--display-font)}.slot-chip{background:var(--cp-panel-edge);border:3px solid var(--cp-wood-dark);box-shadow:inset 2px 2px #0000004d,inset -2px -2px #ffffff0f;border-radius:0}.slot-chip.empty{background:var(--cp-slot-empty)}.slot-lbl,.shop-section-label{color:var(--cp-ink-dark)}.shop-stats{background:var(--cp-panel-edge);border:3px solid var(--cp-wood-dark);box-shadow:inset 0 0 0 2px var(--cp-wood-frame);border-radius:0;color:var(--cp-ink-light)}.stat-line{border-bottom:2px dotted rgba(199,195,224,.2)}.stat-line span:last-child{color:#8fbf6a}.shop-price:after{content:" G";opacity:1}.btn-pixel:disabled,.btn-pixel.secondary:disabled{opacity:.5;cursor:not-allowed;filter:none;transform:none}#room-screen :focus-visible,#lobby-screen :focus-visible,#desync-screen :focus-visible,#btn-coop:focus-visible,#btn-relay-flag:focus-visible{outline:2px solid var(--cp-ink-light);outline-offset:2px}#btn-coop,#btn-create-room,#btn-join-room,#btn-retry-join,#btn-room-back,#btn-copy-link,#btn-start-run,#btn-leave-room,#btn-desync-close,#btn-relay-flag,#join-code,.lobby-class-card{min-height:44px}#btn-retry-join.hidden,#btn-join-room.hidden,#btn-start-run.hidden,#lobby-empty-hint.hidden,#net-badge.hidden,#btn-relay-flag.hidden{display:none}.room-sep{color:var(--cp-ink-dark);font-size:clamp(11px,1.5vw,14px);letter-spacing:.2em}.room-join{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}#join-code{text-transform:uppercase;letter-spacing:.3em;width:min(260px,80%)}#room-status,#lobby-status{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);line-height:1.5;color:var(--cp-ink-dark);text-align:center;min-height:1.5em}#room-error{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);line-height:1.5;color:var(--cp-accent-hi);text-align:center;max-width:34ch;min-height:1.5em}#lobby-code{font-family:var(--display-font);font-size:clamp(20px,5vw,38px);line-height:1.15;color:var(--cp-ink-light);letter-spacing:.18em}.lobby-link-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;width:100%}#lobby-link{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);background:var(--cp-panel);color:var(--cp-ink-dark);border:3px solid var(--cp-wood-dark);border-radius:0;padding:8px 10px;width:min(280px,60%);text-overflow:ellipsis;user-select:text;cursor:text}#lobby-slots,#lobby-class{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.lobby-slot{gap:8px;min-width:96px}.lobby-slot.empty{background:var(--cp-slot-empty)}.lobby-avatar{width:48px;height:56px;image-rendering:pixelated}.lobby-slot.connecting .lobby-avatar{opacity:.5}.lobby-name{font-family:var(--display-font);font-size:clamp(11px,1.8vw,15px);color:var(--cp-ink-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:12ch}.lobby-class-name,.lobby-ping{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);color:var(--cp-ink-dark)}.lobby-chips{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.lobby-chip{min-width:0;padding:2px 8px;font-size:clamp(9px,1.2vw,11px)}.lobby-class-card{min-width:0;padding:8px 12px;gap:4px;font-family:var(--display-font);font-size:clamp(11px,1.8vw,15px)}.lobby-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;width:100%}#lobby-mode{font-family:var(--display-font);font-size:clamp(11px,1.8vw,15px);color:var(--cp-ink-dark)}#lobby-empty-hint{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);line-height:1.5;color:var(--cp-ink-dark);text-align:center;max-width:34ch}.lobby-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}.desync-title{background:var(--cp-accent)!important}.desync-body{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);line-height:1.5;color:var(--cp-ink-dark);text-align:center;max-width:40ch}.desync-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}.desync-label{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);color:var(--cp-ink-dark)}#desync-ours,#desync-theirs{font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);font-weight:600;color:var(--cp-ink-light);user-select:text;cursor:text;overflow-wrap:anywhere}#net-badge{position:fixed;left:12px;bottom:12px;z-index:11;display:flex;align-items:center;gap:8px;pointer-events:none;background:var(--cp-panel);border:3px solid var(--cp-wood-dark);padding:8px 10px;font-family:var(--pixel-font);font-size:clamp(11px,1.5vw,14px);color:var(--cp-ink-dark)}#btn-relay-flag{pointer-events:auto;cursor:pointer;font-family:var(--display-font);font-size:clamp(9px,1.2vw,11px);color:var(--cp-ink-light);background:var(--cp-accent);border:3px solid var(--cp-wood-dark);border-radius:0;padding:6px 10px}#touch-ui.enabled~#net-badge{left:50%;bottom:12px;transform:translate(-50%)}
