*{margin:0;padding:0;box-sizing:border-box;}
        body{overflow:hidden;background:#0e0a06;font-family:'Cinzel',serif;}
        canvas{display:block;touch-action:none;}

        /* ══ HUD ══ */
        #hud{position:absolute;top:0;left:0;right:0;padding:10px 16px;display:flex;align-items:center;gap:12px;background:rgba(10,0,25,.58);backdrop-filter:blur(14px) saturate(1.2);border-bottom:1px solid rgba(160,80,255,.14);pointer-events:none;}
        .hud-block{display:flex;flex-direction:column;gap:2px;}
        .hud-label{font-size:8px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(180,140,255,.45);}
        .hud-val{font-family:'Cinzel Decorative',serif;font-size:16px;font-weight:700;color:#c0a0ff;text-shadow:0 0 10px rgba(160,80,255,.8);}
        #spell-hud{display:flex;align-items:center;gap:5px;}
        #spell-icon{font-size:18px;}
        #spell-name-hud{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}
        .hud-sep{width:1px;height:32px;background:rgba(160,80,255,.18);margin:0 2px;}
        #hp-bar-wrap{flex:1;display:flex;flex-direction:column;gap:3px;max-width:240px;}
        #hp-bar-track{height:7px;background:rgba(255,255,255,.06);border-radius:4px;overflow:hidden;border:1px solid rgba(160,80,255,.18);}
        #hp-bar-fill{height:100%;width:100%;border-radius:4px;transition:width .25s,background .4s;box-shadow:0 0 8px rgba(255,51,102,.5);}
        .hp-label-row{display:flex;justify-content:space-between;}
        #wave-badge{margin-left:auto;background:rgba(100,0,200,.3);border:1px solid rgba(180,80,255,.3);border-radius:8px;padding:5px 12px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(200,160,255,.8);white-space:nowrap;}

        /* ══ MINIMAP ══ */
        #minimap{position:absolute;bottom:14px;right:14px;width:110px;height:110px;border-radius:10px;border:1px solid rgba(160,80,255,.35);background:rgba(2,0,12,.78);backdrop-filter:blur(8px);overflow:hidden;pointer-events:none;box-shadow:0 8px 32px rgba(0,0,0,.5), 0 0 0 1px rgba(160,80,255,.1);}
        #minimap canvas{width:100%;height:100%;}

        /* ══ SCREENS ══ */
        .screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,rgba(80,0,160,.4) 0%,rgba(2,0,8,.97) 70%);text-align:center;padding:20px;overflow-y:auto;}
        .screen.hidden{display:none;}
        .screen-glyph{font-size:56px;margin-bottom:6px;animation:pglow 2.5s ease-in-out infinite alternate;}
        @keyframes pglow{from{filter:drop-shadow(0 0 8px rgba(160,80,255,.4));transform:scale(1);}to{filter:drop-shadow(0 0 28px rgba(220,120,255,1));transform:scale(1.06);}}
        .screen-title{font-family:'Cinzel Decorative',serif;font-size:clamp(1.7rem,5.5vw,3rem);font-weight:900;background:linear-gradient(135deg,#c0a0ff 0%,#ff80cc 50%,#80d0ff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;line-height:1.1;}
        .screen-sub{font-size:clamp(.7rem,2vw,.88rem);color:rgba(180,140,255,.6);letter-spacing:.09em;text-transform:uppercase;margin-bottom:22px;line-height:1.8;max-width:460px;}
        .rune-btn{background:linear-gradient(135deg,rgba(100,0,200,.5),rgba(160,0,120,.4));border:1px solid rgba(180,80,255,.5);color:#d0b0ff;font-family:'Cinzel',serif;font-size:clamp(.82rem,2vw,.98rem);font-weight:700;letter-spacing:.08em;padding:12px 30px;border-radius:8px;cursor:pointer;transition:all .2s;text-transform:uppercase;box-shadow:0 0 20px rgba(120,0,255,.3);}
        .rune-btn:hover{background:linear-gradient(135deg,rgba(130,0,255,.7),rgba(200,0,150,.5));border-color:rgba(200,120,255,.9);color:#fff;box-shadow:0 0 35px rgba(160,0,255,.6);transform:translateY(-2px);}
        .go-stats{display:flex;gap:22px;justify-content:center;flex-wrap:wrap;margin-bottom:22px;}
        .go-stat{text-align:center;}
        .go-stat-val{font-family:'Cinzel Decorative',serif;font-size:1.6rem;font-weight:700;color:#c0a0ff;text-shadow:0 0 12px rgba(160,80,255,.8);line-height:1;}
        .go-stat-lbl{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(180,140,255,.45);margin-top:3px;}

        /* ══ SPELL SELECT ══ */
        #screen-spell{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,rgba(60,0,130,.45) 0%,rgba(2,0,8,.97) 70%);padding:20px;overflow-y:auto;}
        .spell-select-title{font-family:'Cinzel Decorative',serif;font-size:clamp(1.4rem,4vw,2.2rem);font-weight:900;background:linear-gradient(135deg,#c0a0ff,#ff80cc,#80d0ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:6px;}
        .spell-select-sub{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(180,140,255,.5);margin-bottom:24px;}
        .spell-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:540px;width:100%;}
        @media(max-width:480px){.spell-grid{grid-template-columns:repeat(2,1fr);}}
        @media(max-width:600px){
            #hud{font-size:.7rem;padding:6px 10px 6px 10px;}
            .hud-val{font-size:1.05rem;}
            .shop-card{padding:10px 8px;min-height:90px;}
            .sc-icon{font-size:1.4rem;}
            .sc-n{font-size:.68rem;}
            .sc-d{font-size:.58rem;}
            #wave-badge{font-size:.62rem;padding:5px 10px;}
            .wave-panel{padding:16px 12px;}
            .shop-title{font-size:.75rem;}
            #lb-panel{padding:16px 14px;}
        }
        .spell-choice{background:rgba(20,0,50,.6);border:1.5px solid rgba(160,80,255,.25);border-radius:14px;padding:18px 12px;cursor:pointer;transition:all .22s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px;}
        .spell-choice:hover{transform:translateY(-3px);box-shadow:0 0 24px var(--sc);}
        .sc-emoji{font-size:2.2rem;}
        .sc-name{font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#d0b0ff;}
        .sc-flavor{font-size:.62rem;color:rgba(180,140,255,.5);line-height:1.45;}
        .sc-tag{font-size:.58rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 9px;border-radius:5px;margin-top:2px;}

        /* ══ WAVE / SHOP ══ */
        #screen-wave{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:rgba(2,0,10,.9);backdrop-filter:blur(8px);}
        #screen-wave.show{display:flex;}
        .wave-panel{background:linear-gradient(145deg,rgba(14,0,36,.97),rgba(8,0,20,.97));border:1px solid rgba(160,80,255,.32);border-radius:20px;padding:24px 20px;text-align:center;max-width:500px;width:95%;box-shadow:0 0 60px rgba(100,0,255,.22);max-height:92vh;overflow-y:auto;}
        .wave-title{font-family:'Cinzel Decorative',serif;font-size:1.15rem;color:#d0b0ff;margin-bottom:3px;text-shadow:0 0 10px rgba(160,80,255,.6);}
        .wave-sub{font-size:.63rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(180,140,255,.35);margin-bottom:14px;}
        .wave-stats{display:flex;gap:16px;justify-content:center;margin-bottom:14px;}
        .divider{height:1px;background:rgba(160,80,255,.13);margin:12px 0;}
        .shop-title{font-family:'Cinzel Decorative',serif;font-size:.9rem;color:#ffe080;margin-bottom:3px;}
        .shop-sub{font-size:.6rem;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,200,100,.3);margin-bottom:9px;}
        .shop-coins{font-size:.7rem;color:rgba(255,220,80,.85);margin-bottom:10px;letter-spacing:.06em;}
        .shop-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px;margin-bottom:12px;}
        @media(max-width:420px){.shop-grid{grid-template-columns:1fr 1fr;}}
        .shop-card{background:rgba(50,32,0,.35);border:1px solid rgba(200,160,40,.16);border-radius:10px;padding:10px 8px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;}
        .shop-card:hover:not(.cant-afford):not(.sold-out){background:rgba(90,60,0,.5);border-color:rgba(255,200,80,.48);transform:translateY(-2px);box-shadow:0 0 14px rgba(200,150,0,.22);}
        .shop-card.sold-out{opacity:.28;cursor:default;}
        .shop-card.cant-afford{opacity:.42;cursor:default;}
        .sc-icon{font-size:1.4rem;}
        .sc-n{font-size:.64rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#ffe080;}
        .sc-d{font-size:.56rem;color:rgba(255,220,120,.45);line-height:1.3;text-align:center;}
        .sc-c{font-size:.64rem;color:#ffd040;font-weight:700;margin-top:1px;}
        .sc-owned-badge{position:absolute;top:4px;right:6px;font-size:.5rem;color:rgba(255,200,80,.42);letter-spacing:.05em;}
        .shop-skip{background:rgba(50,30,70,.3);border:1px solid rgba(160,80,255,.22);color:rgba(180,140,255,.6);font-family:'Cinzel',serif;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:9px 20px;border-radius:7px;cursor:pointer;transition:all .2s;width:100%;}
        .shop-skip:hover{background:rgba(90,0,180,.32);border-color:rgba(180,80,255,.48);color:#c0a0ff;}

        /* ══ LEADERBOARD ══ */
        #lb-panel{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(145deg,rgba(14,0,36,.98),rgba(8,0,20,.98));border:1px solid rgba(160,80,255,.35);border-radius:18px;padding:24px 22px;width:min(420px,94vw);max-height:85vh;overflow-y:auto;display:none;z-index:200;box-shadow:0 0 60px rgba(100,0,255,.3);}
        #lb-panel.show{display:block;}
        #lb-overlay{position:absolute;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);display:none;z-index:199;}
        #lb-overlay.show{display:block;}
        .lb-title{font-family:'Cinzel Decorative',serif;font-size:1.1rem;color:#d0b0ff;text-align:center;margin-bottom:4px;}
        
        .lb-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;margin-bottom:5px;background:rgba(255,255,255,.03);}
        .lb-row.top1{background:rgba(255,200,0,.08);border:1px solid rgba(255,200,0,.2);}
        .lb-row.top2{background:rgba(180,180,180,.06);border:1px solid rgba(180,180,180,.15);}
        .lb-row.top3{background:rgba(180,90,0,.08);border:1px solid rgba(180,90,0,.2);}
        .lb-rank{font-size:.75rem;font-weight:700;width:22px;text-align:center;flex-shrink:0;}
        .lb-name{flex:1;font-size:.78rem;color:#c0a0ff;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
        .lb-score{font-family:'Cinzel Decorative',serif;font-size:.9rem;color:#d0b0ff;}
        .lb-meta{font-size:.58rem;color:rgba(160,120,255,.45);white-space:nowrap;}
        .lb-empty{text-align:center;color:rgba(160,120,255,.4);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:20px 0;}
        .lb-close{position:absolute;top:14px;right:16px;background:none;border:none;color:rgba(180,140,255,.5);font-size:1.1rem;cursor:pointer;transition:color .15s;}
        .lb-close:hover{color:#c0a0ff;}
        #lb-btn{position:absolute;top:54px;right:14px;background:rgba(80,0,160,.35);border:1px solid rgba(160,80,255,.3);color:rgba(200,160,255,.75);font-family:'Cinzel',serif;font-size:.62rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:7px;cursor:pointer;transition:all .18s;pointer-events:all;}
        #lb-btn:hover{background:rgba(120,0,255,.5);color:#d0b0ff;}

        /* ══ CONTROLS HINT ══ */
        #controls-hint{position:absolute;bottom:14px;left:14px;font-size:.57rem;letter-spacing:.07em;text-transform:uppercase;color:rgba(160,120,255,.26);pointer-events:none;line-height:2;}
    
.jvds-strip.open ~ * { transition: margin-top .25s ease; }
/* ══════════════════════════════════════════════════════════ */

/* ── MOBILE PATCH ── */
@media(max-width:420px){
  #hud{padding:5px 8px;gap:6px;}
  .hud-val{font-size:.95rem;}
  .hud-label{font-size:.42rem;}
  .spell-grid{grid-template-columns:repeat(2,1fr) !important;}
  .shop-card{padding:8px 6px;min-height:80px;}
  #wave-badge{font-size:.58rem;padding:4px 8px;}
}
#boss-intro.show{display:flex;}
@keyframes bossIntroAnim{from{opacity:0;transform:scale(.7);}to{opacity:1;transform:scale(1);}}