:root{
  --gold:#ffcf3a; --gold2:#ff8a00; --fire:#ff3d00; --ink:#0b0710; --pane:rgba(12,6,20,.62);
  --f-ui:'Fira Sans Extra Condensed','Helvetica Neue',Arial,sans-serif;
  --f-metal:'Metal Mania','Fira Sans Extra Condensed',serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:#000;color:#fff;font-family:var(--f-ui);user-select:none;-webkit-user-select:none}
#gl{position:fixed;inset:0;width:100%;height:100%;display:block;outline:none}
.hidden{display:none!important}

/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;pointer-events:none;z-index:5}
.hud-box{position:absolute;display:flex;align-items:center;gap:.35em;font-weight:900;font-style:italic;font-size:clamp(26px,3.6vw,46px);
  color:var(--gold);text-shadow:0 3px 0 #7a2c00,0 0 14px rgba(255,120,0,.55),2px 2px 0 #000,-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000;letter-spacing:.02em;transition:transform .12s}
.hud-box.bump{transform:scale(1.25)}
#hud-cymbals{left:2.2vw;top:1.8vh}
#hud-crates{left:50%;top:1.8vh;transform:translateX(-50%);opacity:0;transition:opacity .35s}
#hud-crates.show{opacity:1}
#hud-lives{right:2.2vw;top:1.8vh}
#hud-score{position:absolute;left:2.4vw;top:calc(1.8vh + 62px);font:900 italic clamp(15px,1.6vw,22px) var(--f-ui);color:#fff;opacity:.85;text-shadow:1px 1px 0 #000,0 0 8px #000}
.ico{display:inline-block;width:1.15em;height:1.15em;background-size:contain;background-repeat:no-repeat;background-position:center;filter:drop-shadow(0 2px 2px rgba(0,0,0,.7))}
#hud-dragon{position:absolute;right:2.4vw;top:calc(1.8vh + 1.5em);display:flex;gap:6px}
#hud-dragon i{width:22px;height:28px;border-radius:50% 50% 46% 46%/60% 60% 40% 40%;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.25)}
#hud-dragon i.on{background:radial-gradient(circle at 35% 30%,#fff6c2,#ffb300 40%,#e8480c 75%);border-color:#fff3b0;box-shadow:0 0 12px #ff9d00}

#hud-groove{position:absolute;left:50%;bottom:2.4vh;transform:translateX(-50%);display:flex;align-items:center;gap:14px}
#beat-ring{position:relative;width:58px;height:58px}
#beat-core{position:absolute;inset:14px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#fff,#ffcf3a 35%,#ff5a00 75%,#6a1400);box-shadow:0 0 16px #ff7a00;transform:scale(.8)}
#beat-approach{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(255,220,120,.9);box-shadow:0 0 10px rgba(255,160,40,.8)}
#groove-bar{width:min(34vw,360px);height:16px;border-radius:9px;background:rgba(0,0,0,.55);border:2px solid rgba(255,255,255,.28);overflow:hidden;box-shadow:0 0 12px rgba(0,0,0,.6) inset}
#groove-fill{height:100%;width:0%;background:linear-gradient(90deg,#ff2200,#ff8a00,#ffe14a,#fff);box-shadow:0 0 14px #ff6a00;transition:width .12s}
#groove-mult{font:900 italic 34px var(--f-ui);color:#fff;text-shadow:0 0 12px #ff5a00,2px 2px 0 #000;min-width:52px}
#groove-mult.hot{color:#ffe14a;animation:hot .4s infinite alternate}
@keyframes hot{from{transform:scale(1)}to{transform:scale(1.18)}}

#hud-level-name{position:absolute;left:50%;top:22vh;transform:translateX(-50%);font:900 italic clamp(34px,5vw,72px) var(--f-ui);color:#fff;
  text-shadow:0 0 22px #ff6a00,3px 3px 0 #000;opacity:0;transition:opacity .6s;white-space:nowrap;text-align:center}
#hud-hint{position:absolute;left:50%;top:15vh;transform:translateX(-50%);max-width:86vw;text-align:center;font:900 italic clamp(18px,2.2vw,30px) var(--f-ui);color:#fff;text-shadow:0 0 14px #ff6a00,2px 2px 0 #000;opacity:0;transition:opacity .4s;background:rgba(0,0,0,.35);padding:6px 18px;border-radius:12px}
#hud-hint.show{opacity:1}
#hud-level-name small{display:block;font-size:.42em;color:var(--gold);letter-spacing:.2em}
#hud-level-name.show{opacity:1}
#hud-boss{position:absolute;left:50%;top:9vh;transform:translateX(-50%);text-align:center}
#boss-name{font:900 italic 28px var(--f-ui);color:#fff;text-shadow:0 0 12px #f0f,2px 2px 0 #000}
#boss-bar{width:min(50vw,520px);height:14px;margin-top:6px;border:2px solid #fff;border-radius:8px;background:rgba(0,0,0,.6);overflow:hidden}
#boss-fill{height:100%;width:100%;background:linear-gradient(90deg,#ff1a6a,#ff8ad0);transition:width .3s}

/* ---------- popups & bubbles ---------- */
#popups,#bubbles{position:fixed;inset:0;pointer-events:none;z-index:6}
.pop{position:absolute;transform:translate(-50%,-50%);font:900 italic 34px var(--f-ui);color:#fff;white-space:nowrap;
  text-shadow:0 0 14px #ff6a00,2px 2px 0 #000,-2px -2px 0 #000;animation:pop 1s ease-out forwards}
.pop.beat{color:#ffe14a;font-size:28px}
.pop.big{font-size:64px;color:#ffe14a}
.pop.green{color:#9dff6a;text-shadow:0 0 14px #1f9d00,2px 2px 0 #000}
@keyframes pop{0%{opacity:0;transform:translate(-50%,-30%) scale(.5)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}30%{transform:translate(-50%,-55%) scale(1)}100%{opacity:0;transform:translate(-50%,-140%) scale(1)}}
.bubble{position:absolute;transform:translate(-50%,-100%);background:#fff;color:#111;font:800 18px var(--f-ui);padding:6px 12px;border-radius:14px;border:3px solid #111;
  white-space:nowrap;box-shadow:3px 3px 0 rgba(0,0,0,.35);animation:bub .25s ease-out}
.bubble:after{content:'';position:absolute;left:50%;bottom:-12px;margin-left:-8px;border:8px solid transparent;border-top:10px solid #111}
.bubble.shout{background:#ffe14a;font-size:22px}
@keyframes bub{from{transform:translate(-50%,-80%) scale(.4)}to{transform:translate(-50%,-100%) scale(1)}}
#fade{position:fixed;inset:0;background:#000;opacity:1;pointer-events:none;z-index:20;transition:opacity .5s}

/* ---------- screens ---------- */
.screen{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center}
#screen-loading{background:radial-gradient(circle at 50% 45%,#2a0b12,#000 70%);z-index:30}
.loading-text{font:64px var(--f-metal);color:var(--gold);text-shadow:0 0 30px #ff4a00}
.loading-sub{margin-top:12px;font:600 20px var(--f-ui);opacity:.8;letter-spacing:.12em}
#screen-title{justify-content:flex-start;padding-top:9vh;background:linear-gradient(180deg,rgba(0,0,0,.35),transparent 30%,transparent 72%,rgba(0,0,0,.55))}
.logo{font-family:var(--f-metal);font-size:clamp(56px,10.5vw,168px);line-height:.95;letter-spacing:.02em;display:flex;filter:drop-shadow(0 8px 0 rgba(0,0,0,.55)) drop-shadow(0 0 40px rgba(255,90,0,.55))}
.logo span{background:linear-gradient(180deg,#fffbe0 0%,#ffd84a 30%,#ff8a00 55%,#d42300 80%,#5a0800 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-stroke:2px #1a0400}
.logo .logo-b{background:linear-gradient(180deg,#e9fff5 0%,#7dffcf 28%,#18c28a 55%,#0b6b5c 80%,#032824 100%);-webkit-background-clip:text;background-clip:text}
.tagline{margin-top:1.4vh;font:800 italic clamp(14px,1.6vw,24px) var(--f-ui);letter-spacing:.14em;color:#fff;text-shadow:0 2px 6px #000}
.press{position:absolute;bottom:14vh;font:900 italic clamp(22px,2.6vw,40px) var(--f-ui);color:#fff;text-shadow:0 0 18px #ff6a00,2px 2px 0 #000;letter-spacing:.15em;background:transparent;border:0;min-height:44px;cursor:pointer}
.blink{animation:blink 1.1s infinite}
@keyframes blink{50%{opacity:.25}}
.credits{position:absolute;bottom:3vh;font:600 15px var(--f-ui);opacity:.75;letter-spacing:.1em;text-shadow:0 1px 3px #000}
.menu{position:absolute;bottom:10vh;display:flex;flex-direction:column;gap:8px;align-items:center}
.menu .item{font:900 italic clamp(22px,2.4vw,36px) var(--f-ui);color:rgba(255,255,255,.62);text-shadow:2px 2px 0 #000;letter-spacing:.08em;padding:2px 18px;cursor:pointer;pointer-events:auto}
.menu .item.sel{color:#ffe14a;text-shadow:0 0 18px #ff6a00,2px 2px 0 #000;transform:scale(1.08)}
.menu .item.dis{opacity:.35}

#screen-card{background:radial-gradient(ellipse at center,rgba(10,4,16,.55),rgba(0,0,0,.85))}
.card{width:min(820px,92vw);background:linear-gradient(160deg,rgba(40,14,30,.94),rgba(12,6,20,.96));border:3px solid #ffb300;border-radius:18px;padding:26px 34px;
  box-shadow:0 0 50px rgba(255,120,0,.35),0 20px 60px rgba(0,0,0,.7)}
.card h1{font:900 italic 44px var(--f-ui);color:#ffe14a;text-shadow:0 0 16px #ff5a00,2px 2px 0 #000;letter-spacing:.04em}
.card h2{font:700 18px var(--f-ui);color:#fff;opacity:.75;letter-spacing:.14em;margin-top:2px}
.card .lvls{margin-top:18px;display:flex;flex-direction:column;gap:8px}
.card .lv{display:flex;align-items:center;gap:14px;padding:10px 16px;border-radius:12px;background:rgba(255,255,255,.06);border:2px solid transparent;font:800 24px var(--f-ui);pointer-events:auto;cursor:pointer}
.card .lv.sel{border-color:#ffe14a;background:rgba(255,200,40,.14);box-shadow:0 0 18px rgba(255,160,0,.35)}
.card .lv.lock{opacity:.35}
.card .lv .n{color:#ffb300;min-width:48px}
.card .lv .t{flex:1}
.card .lv .st{font:700 17px var(--f-ui);opacity:.85;display:flex;gap:12px}
.card .lv .rec{color:#ffe14a}
.card .hint{margin-top:16px;font:600 16px var(--f-ui);opacity:.65;letter-spacing:.08em;text-align:center}
#screen-pause{background:rgba(5,0,10,.6);backdrop-filter:blur(6px)}
#screen-pause h1,#screen-result h1{font:900 italic 64px var(--f-ui);color:#ffe14a;text-shadow:0 0 18px #ff5a00,3px 3px 0 #000}
#screen-pause .menu,#screen-result .menu{position:static;margin-top:24px}
#screen-result{background:radial-gradient(ellipse at center,rgba(20,6,10,.55),rgba(0,0,0,.88))}
.tally{margin-top:18px;display:grid;grid-template-columns:auto auto;gap:6px 36px;font:800 28px var(--f-ui)}
.tally .k{opacity:.75;text-align:right}
.tally .v{color:#ffe14a;text-shadow:0 0 10px #ff6a00}
.record{margin-top:18px;font:900 italic 34px var(--f-ui);color:#fff;text-shadow:0 0 22px #ffd000;animation:hot .5s infinite alternate}
.help{margin-top:18px;font:600 17px var(--f-ui);opacity:.8;line-height:1.55;text-align:center}
.help b{color:#ffe14a}

/* ---------- drum solo ---------- */
#drumsolo{position:fixed;inset:0;z-index:7;pointer-events:none}
#ds-top{position:absolute;top:3vh;left:50%;transform:translateX(-50%);display:flex;gap:28px;align-items:baseline;font:900 italic 40px var(--f-ui);text-shadow:0 0 16px #ff5a00,2px 2px 0 #000}
#ds-title{font-family:var(--f-metal);color:#ffe14a;font-style:normal;font-size:48px}
#ds-combo{color:#9dff6a}
#ds-keys{position:absolute;bottom:3vh;left:50%;transform:translateX(-50%);display:flex;gap:min(9vw,120px);font:900 30px var(--f-ui);opacity:.8;text-shadow:2px 2px 0 #000}


/* Original school emblem, clipped from the untouched supplied reference. */
.school-logo{position:relative;display:block;flex:none;width:200px;aspect-ratio:862/800;filter:drop-shadow(0 10px 26px #000b)}
.school-logo-window{position:absolute;inset:0;z-index:1}
.school-logo-window img{display:block;width:100%;height:100%}
.school-logo-fallback[hidden],.school-logo-window[hidden]{display:none}
.school-logo-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#ff652c;font:900 clamp(26px,6vw,66px) var(--f-ui)}
.school-logo-fallback small{color:white;font:italic 24px Georgia}
.school-logo-title{width:clamp(120px,19vh,210px);margin-bottom:1vh}
#screen-title{padding-top:3vh}
#screen-title .logo{font-size:clamp(54px,8vw,118px)}
.school-logo-loading{width:min(36vh,280px);margin-bottom:14px}
.school-intro{position:fixed;inset:0;z-index:40;background:radial-gradient(ellipse at 50% 60%,#39281f,#1b1b1d 55%,#121215);display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden}
.school-logo-intro{width:min(60vh,86vw,560px);z-index:2}
.school-intro-playing .school-logo-intro{animation:school-logo-arrive 4.3s ease both}
.school-intro-lights{position:absolute;inset:-30%;opacity:.35;background:conic-gradient(from 145deg at 27% 10%,transparent 0deg,#ff812844 17deg,transparent 28deg),conic-gradient(from 186deg at 73% 10%,transparent 0deg,#ff812855 17deg,transparent 30deg);filter:blur(12px)}
.school-intro-playing .school-intro-lights{animation:school-light 4.3s ease both}
.school-intro-playing .school-intro-name{z-index:2;text-align:center;margin-top:14px;line-height:1.05}
.school-intro-name span{font-size:18px;letter-spacing:.25em;color:#e0c7b8;display:block;margin-bottom:5px}
.school-intro-name strong{font:clamp(48px,8vh,86px) var(--f-metal);color:#ffbd56;text-shadow:0 0 24px #ff733855}
.school-intro-playing .school-intro-name{animation:school-title-in 4.3s ease both}
#school-intro-skip{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));min-width:140px;min-height:48px;border:1px solid #ffb47688;border-radius:8px;background:#282326;color:#ffe2c4;font:700 17px var(--f-ui);padding:10px 18px;cursor:pointer;z-index:3}
#school-intro-skip small{display:block;font-size:11px;opacity:.7;margin-top:3px}
@keyframes school-logo-arrive{0%{opacity:0;transform:scale(.97)}16%{opacity:1;transform:scale(1)}36%{transform:scale(1.03)}56%,100%{transform:scale(1)}}
@keyframes school-light{0%{opacity:0;transform:scaleX(.7)}30%,100%{opacity:.6;transform:scaleX(1)}}
@keyframes school-title-in{0%,53%{opacity:0;transform:translateY(12px)}84%,100%{opacity:1;transform:translateY(0)}}
.school-hub-actions{position:fixed;z-index:9;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:9px;max-width:94vw}
.school-hub-actions button{font:800 16px var(--f-ui);min-height:44px;padding:9px 15px;color:#fff4dc;border:1px solid #ff9b50;border-radius:9px;background:#221d22ed;cursor:pointer}
.school-gallery{width:min(950px,94vw);max-height:90vh;overflow:auto}.school-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.school-gallery-tile{border:1px solid #ff9b5055;border-radius:10px;background:#ffffff09;padding:12px;color:#bbb}.school-gallery-tile.unlocked{border-color:#ffc563;color:#ffdc85}.school-gallery-tile strong{font-size:22px;display:block}.school-gallery-tile button{display:block;min-height:44px;padding:7px 12px;margin-top:8px;background:#ff6e29;border:0;border-radius:6px;font-weight:800;color:#211510;cursor:pointer}.school-gallery-banner{letter-spacing:.16em;color:#ffdda3;margin-top:10px}.school-gallery-tile small{display:block;margin-top:6px;font-size:14px}
@media(max-width:700px){.school-hub-actions{bottom:8px}.school-hub-actions button{font-size:12px;padding:8px}.school-gallery-grid{grid-template-columns:repeat(2,1fr)}.school-logo-title{width:120px}.tagline{font-size:11px;letter-spacing:.05em}#screen-title .menu{bottom:10vh}.school-logo-loading{width:56vw}.school-gallery{padding:18px}.credits{font-size:11px}}
@media(prefers-reduced-motion:reduce){.school-intro-playing *{animation:none!important}.school-intro-lights{display:none}.school-intro-name{opacity:1}.blink{animation:none}.school-logo-intro{transform:none}}

/* ---------- phones (body.mob, set by ui/mobile.js) ---------- */
.title-brand{display:contents}
body.mob #screen-title{flex-direction:row;justify-content:flex-start;align-items:center;padding:0 0 0 max(3vw,env(safe-area-inset-left))}
body.mob .title-brand{display:flex;flex-direction:column;align-items:center;width:50vw}
body.mob .school-logo-title{width:min(36vh,170px);margin-bottom:0}
body.mob #screen-title .logo{font-size:clamp(38px,14vh,74px)}
body.mob .tagline{font-size:clamp(9px,2.8vh,13px);letter-spacing:.06em;margin-top:.6vh;text-align:center}
body.mob #screen-title .press,body.mob #screen-title .menu{position:absolute;right:max(4vw,env(safe-area-inset-right));top:50%;bottom:auto;transform:translateY(-50%);width:min(44vw,340px)}
body.mob #screen-title .press{font-size:clamp(15px,5vh,22px);letter-spacing:.06em;padding:16px 10px;border-radius:16px;background:#e8541cdd;border:3px solid #ffd09a;box-shadow:0 6px 18px #0009;animation:none}
body.mob #screen-title .credits{font-size:10px;bottom:6px}
body.mob .menu{gap:clamp(5px,1.6vh,9px)}
body.mob .menu .item{font-size:clamp(14px,4.8vh,21px);padding:clamp(7px,2.2vh,11px) 16px;min-width:min(44vw,340px);text-align:center;border-radius:14px;background:#15131bdd;border:2px solid #ffffff30;color:#fff;letter-spacing:.04em}
body.mob .menu .item.sel{border-color:#ffb35a;color:#ffe14a;transform:none;background:#2a1d18ee}
body.mob #screen-pause,body.mob #screen-result{justify-content:center;padding:max(8px,env(safe-area-inset-top)) 12px 8px}
body.mob #screen-pause h1,body.mob #screen-result h1{font-size:clamp(24px,9vh,44px);margin:0}
body.mob #screen-pause .help{display:none}
body.mob #screen-pause .menu,body.mob #screen-result .menu{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;width:min(92vw,720px)}
body.mob #screen-pause .menu .item,body.mob #screen-result .menu .item{min-width:0}
body.mob .tally{font-size:clamp(13px,4.2vh,20px);gap:0 22px;margin-top:4px}
body.mob #screen-result .record{font-size:clamp(12px,4vh,18px)}
body.mob #screen-result .help{font-size:12px!important;margin-top:6px;max-width:92vw!important}
body.mob #screen-result .help b{font-size:26px!important}
body.mob #screen-card{padding:max(8px,env(safe-area-inset-top)) 8px 8px}
body.mob #screen-card .card{width:min(94vw,780px);max-height:calc(100vh - 16px);overflow-y:auto;padding:10px 16px 14px;touch-action:pan-y;-webkit-overflow-scrolling:touch}
body.mob .card h1{font-size:clamp(18px,6.5vh,30px);padding-right:78px}
body.mob .card h2{font-size:11px;letter-spacing:.06em}
body.mob .card .lvls{margin-top:8px;gap:6px}
body.mob .card .lv{font-size:clamp(13px,4.4vh,18px);padding:8px 12px;min-height:46px;gap:10px}
body.mob .card .lv .n{min-width:34px}
body.mob .card .lv .st{font-size:12px;gap:8px}
body.mob .card .hint{display:none}
body.mob .hud-box{font-size:clamp(20px,6.5vh,30px)}
body.mob #hud-crates{top:58px}
body.mob #hud-score{top:calc(1.8vh + 40px);font-size:13px}
body.mob #hud-dragon{top:calc(1.8vh + 36px)}
body.mob #hud-dragon i{width:15px;height:19px}
body.mob #hud-hint{top:60px;font-size:clamp(12px,4vh,17px);max-width:70vw}
body.mob #hud-level-name{top:20vh;font-size:clamp(20px,8vh,40px)}
body.mob #hud-groove{bottom:max(6px,env(safe-area-inset-bottom));transform:translateX(-50%) scale(.72);transform-origin:50% 100%}
body.mob #hud-boss{top:58px}
body.mob .school-hub-actions{bottom:max(10px,env(safe-area-inset-bottom))}
body.mob .school-hub-actions button{font-size:15px;min-height:50px;padding:10px 18px;border-radius:14px;border-width:2px}
body.mob .school-hub-actions button:first-child{background:#e8541cee;border-color:#ffd09a}
body.mob .school-hub-actions{z-index:12}
body:has(#screen-card:not(.hidden)) .school-hub-actions,body:has(#screen-pause:not(.hidden)) .school-hub-actions{display:none}
/* phones: every sub-menu */
body.mob .screen{touch-action:none}
body.mob .card .lvls .item{font:800 clamp(14px,4.4vh,18px) var(--f-ui);padding:9px 14px;min-height:46px;border-radius:12px;background:#ffffff10;border:2px solid transparent;display:flex;align-items:center;color:#fff;letter-spacing:.02em;text-shadow:none}
body.mob .card .lvls .item.sel{border-color:#ffe14a;background:#ffc82826;color:#ffe14a;transform:none}
body.mob .card .lvls .item.dis{opacity:.4}
body.mob .card>div:first-child[style*="Metal Mania"]{font-size:clamp(26px,10vh,44px)!important}
body.mob .school-gallery{max-height:calc(100vh - 16px)}
body.mob .school-gallery-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0}
body.mob .school-gallery-tile{padding:7px 9px;border-radius:10px}
body.mob .school-gallery-tile strong{font-size:13px}
body.mob .school-gallery-tile small{font-size:10px;margin-top:2px}
body.mob .school-gallery-tile button{min-height:38px;padding:5px 10px;margin-top:5px;font-size:12px}
body.mob .school-gallery-banner{font-size:11px;margin-top:4px}
body.mob .school-gallery .menu{margin-top:4px}
body.mob #ds-top{top:max(6px,env(safe-area-inset-top));font-size:22px;gap:14px}
body.mob #ds-title{font-size:26px}
body.mob .school-letter-banner{zoom:.78}
/* phones held upright (Crash's mobile runner is portrait too) */
@media (orientation: portrait){
  body.mob #screen-title{flex-direction:column;justify-content:flex-start;align-items:center;padding:3vh 0 0}
  body.mob .title-brand{width:94vw}
  body.mob .school-logo-title{width:min(44vw,210px)}
  body.mob #screen-title .logo{font-size:clamp(44px,15vw,74px)}
  body.mob .tagline{font-size:11px;max-width:90vw}
  body.mob #screen-title .press,body.mob #screen-title .menu{left:50%;right:auto;top:auto;bottom:max(4vh,16px);transform:translateX(-50%);width:86vw}
  body.mob #screen-title .menu{align-items:stretch}
  body.mob .menu .item{min-width:0;width:100%}
  body.mob #screen-title .credits{display:none}
  body.mob #screen-pause .menu,body.mob #screen-result .menu{grid-template-columns:1fr;width:86vw}
  body.mob .school-letter-banner{zoom:.62}
  body.mob #screen-card .card{width:95vw}
  body.mob .school-gallery-grid{grid-template-columns:repeat(2,1fr)}
  body.mob #hud-groove{bottom:calc(max(16px,env(safe-area-inset-bottom)) + min(118px,30vw));transform:translateX(-50%) scale(.6)}
  body.mob #mob-lanes{bottom:max(24px,env(safe-area-inset-bottom))}
  body.mob .school-hub-actions{top:62px;bottom:auto}
  body.mob #hud-hint{top:118px;max-width:94vw}
  body.mob #hud-level-name{top:24vh;width:92vw;white-space:normal;text-align:center;font-size:clamp(20px,7.4vw,34px);line-height:1.05}
  body.mob #hud-school-letters{top:74px!important;right:8px!important;font-size:12px!important;padding:6px 9px!important}
}
body:has(#dhs:not([hidden])) .school-hub-actions,body:has(#dh) .school-hub-actions{display:none!important}
