:root{
  color-scheme:dark;
  --bg:#030713;
  --panel:rgba(7,16,34,.78);
  --line:rgba(93,211,255,.22);
  --cyan:#63e6ff;
  --blue:#248cff;
  --orange:#ff7041;
  --red:#ff3653;
  --green:#33f2ad;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:#effaff}
button{font:inherit}
#glcanvas{position:fixed;inset:0;width:100%;height:100%;display:block;background:radial-gradient(circle at 50% 45%,#182c52 0,#070c1c 42%,#02030a 100%)}
.scanlines{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.11;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(83,219,255,.055) 4px);mix-blend-mode:screen}

.bootShell{position:fixed;inset:0;z-index:20;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(315px,.72fr);gap:24px;align-items:center;padding:clamp(24px,5vw,74px);background:radial-gradient(circle at 22% 45%,rgba(0,119,255,.18),transparent 36%),linear-gradient(90deg,rgba(2,5,14,.93),rgba(2,5,14,.46) 60%,rgba(2,5,14,.84));transition:opacity .45s,visibility .45s}
.bootShell.hidden{opacity:0;visibility:hidden;pointer-events:none}
.heroCard,.missionCard{position:relative;border:1px solid var(--line);background:linear-gradient(145deg,rgba(10,19,41,.84),rgba(4,9,22,.68));box-shadow:0 30px 90px rgba(0,0,0,.44),inset 0 1px rgba(255,255,255,.06);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:28px;overflow:hidden}
.heroCard{padding:clamp(28px,4vw,58px)}
.heroCard:before{content:"";position:absolute;width:430px;height:430px;right:-185px;top:-215px;background:radial-gradient(circle,rgba(45,200,255,.23),transparent 68%);pointer-events:none}
.eyebrow{display:flex;align-items:center;gap:10px;letter-spacing:.18em;font-size:12px;font-weight:850;color:#92dfff}
.liveDot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#2fffb7;box-shadow:0 0 14px #2fffb7;animation:pulseDot 1.5s infinite}
@keyframes pulseDot{50%{opacity:.4;transform:scale(.75)}}
h1{position:relative;margin:18px 0 14px;font-size:clamp(46px,7.3vw,101px);line-height:.83;letter-spacing:-.075em;font-weight:950;text-shadow:0 0 38px rgba(0,134,255,.28)}
h1 span{color:transparent;-webkit-text-stroke:1.5px #64d8ff;text-shadow:0 0 28px rgba(0,170,255,.55)}
h1 small{display:inline-block;margin-left:18px;vertical-align:top;font-size:.18em;letter-spacing:.04em;color:#ff7952;border:1px solid rgba(255,105,70,.62);padding:7px 9px;border-radius:8px;text-shadow:none;transform:translateY(-8px)}
.lead{max-width:780px;margin:0 0 24px;font-size:clamp(16px,1.5vw,21px);line-height:1.55;color:#b8ccdb}
.featureRow{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 28px}
.featureRow span{font-size:12px;font-weight:760;letter-spacing:.02em;padding:8px 11px;border:1px solid rgba(91,203,255,.17);border-radius:99px;background:rgba(17,47,78,.42);color:#d9f5ff}
.buttons{display:flex;gap:12px;flex-wrap:wrap}
.buttons button{border:0;border-radius:13px;min-height:56px;padding:0 22px;font-weight:900;letter-spacing:.045em;cursor:pointer;transition:transform .18s,box-shadow .18s,filter .18s}
.buttons button:hover{transform:translateY(-2px);filter:brightness(1.08)}
.buttons button:active{transform:translateY(1px)}
.buttons button:disabled{opacity:.38;cursor:not-allowed;transform:none}
.primary{display:flex;align-items:center;gap:18px;color:#03101c;background:linear-gradient(110deg,#5be7ff,#1e8fff);box-shadow:0 12px 34px rgba(0,139,255,.34)}
.primary b{font-size:10px;background:rgba(1,15,26,.15);padding:5px 7px;border-radius:6px}
.secondary{color:#d9f7ff;background:rgba(14,35,58,.75);border:1px solid rgba(103,213,255,.22)!important}
.compat{min-height:22px;margin-top:18px;font-size:13px;color:#8aaec5}
.compat b{color:#bfefff}
.microcopy{margin-top:13px;max-width:720px;font-size:12px;line-height:1.48;color:#6d8fa5}

.missionCard{padding:0 25px 25px;align-self:stretch;max-height:700px;display:flex;flex-direction:column;justify-content:center}
.planetPreview{position:relative;height:190px;margin:0 -25px 22px;overflow:hidden;background:radial-gradient(circle at 25% 20%,#ffbb67 0 2.7%,rgba(255,75,16,.33) 3.6%,transparent 19%),radial-gradient(circle at 66% 16%,#d8f0ff 0 1.3%,rgba(46,112,255,.28) 2.4%,transparent 12%),linear-gradient(#080723 0 58%,#9d321c 59%,#32100e 100%)}
.planetPreview:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.7px);background-size:43px 37px;opacity:.36}
.ringPlanet{position:absolute;right:13%;top:37px;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 33% 28%,#bd8bdd,#3f315f 48%,#100d21 72%);box-shadow:0 0 22px rgba(159,114,255,.4);z-index:2}
.ringPlanet:after{content:"";position:absolute;left:-25px;top:20px;width:103px;height:19px;border:3px solid rgba(235,171,130,.72);border-radius:50%;transform:rotate(-12deg)}
.break{position:absolute;z-index:4;background:rgba(1,4,13,.8);border:2px solid #54dcff;box-shadow:0 0 18px #147dff,inset 0 0 18px rgba(32,177,255,.7);clip-path:polygon(50% 0,62% 29%,100% 38%,71% 58%,79% 100%,48% 76%,20% 96%,27% 60%,0 45%,36% 31%)}
.b1{left:9%;top:23px;width:83px;height:116px;transform:rotate(-8deg)}
.b2{left:34%;top:73px;width:65px;height:91px;transform:rotate(13deg)}
.b3{right:30%;top:104px;width:55px;height:70px;transform:rotate(-17deg)}
.b4{right:4%;bottom:-14px;width:92px;height:88px;transform:rotate(6deg)}
.missionCard h2{margin:0 0 15px;font-size:14px;letter-spacing:.18em;color:#71d9ff}
.missionCard ol{display:grid;gap:12px;margin:0;padding:0;list-style:none;counter-reset:mission}
.missionCard li{counter-increment:mission;display:grid;grid-template-columns:32px 1fr;column-gap:10px;align-items:start}
.missionCard li:before{content:counter(mission,decimal-leading-zero);font-size:11px;font-weight:900;color:#4fd6ff;border:1px solid rgba(79,214,255,.28);border-radius:7px;padding:5px;text-align:center;grid-row:1/3}
.missionCard li b{font-size:14px}
.missionCard li span{font-size:12px;color:#82a0b3;line-height:1.42}
.controls{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid rgba(102,204,255,.12);font-size:11px;color:#7e9eb2}
.controls strong{color:#c5efff}.controls span:before{content:"·";margin-right:10px;color:#31baff}

.hud{position:fixed;inset:0;z-index:10;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .25s}
.hud.visible{opacity:1;visibility:visible}
.hudTop,.weaponPanel,.instruction{background:linear-gradient(145deg,rgba(4,10,24,.80),rgba(5,17,34,.60));border:1px solid rgba(73,204,255,.26);box-shadow:0 12px 40px rgba(0,0,0,.3),inset 0 1px rgba(255,255,255,.05);backdrop-filter:blur(10px);border-radius:14px}
.hudTop{position:absolute;top:max(18px,env(safe-area-inset-top));padding:10px}
.leftPanel{left:max(18px,env(safe-area-inset-left));display:flex;gap:6px}
.rightPanel{right:max(58px,env(safe-area-inset-right));width:min(350px,40vw);display:grid;gap:8px;padding:11px 14px}
.metric{min-width:82px;padding:4px 12px;border-right:1px solid rgba(92,207,255,.15)}
.metric:last-child{border-right:0}
.metric label,.meterHead label,.weaponPanel small{display:block;font-size:9px;letter-spacing:.14em;font-weight:850;color:#6e9eb7}
.metric strong{display:block;margin-top:2px;font-size:19px;letter-spacing:.02em}
.scoreMetric strong{color:#6ae4ff;text-shadow:0 0 14px rgba(39,193,255,.55)}
.meterBlock{display:block}
.meterHead{display:flex;justify-content:space-between;gap:12px;align-items:center}
.meterHead strong{font-size:12px}
.meterTrack{height:6px;margin-top:6px;border-radius:20px;background:rgba(122,210,255,.10);overflow:hidden}
.meterTrack i{display:block;height:100%;transition:width .25s}
.healthTrack i{width:100%;background:linear-gradient(90deg,#1fcf8d,#49ffd0);box-shadow:0 0 10px #2dffc1}
.healthTrack i.danger{background:linear-gradient(90deg,#ff263f,#ff8b31);box-shadow:0 0 12px #ff354d}
.destructionTrack i{width:0;background:linear-gradient(90deg,#2389ff,#7a4eff,#ff713d);box-shadow:0 0 11px rgba(63,163,255,.85)}
.roomStatus{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-top:1px;font-size:8px;letter-spacing:.08em;color:#7699ae;text-transform:uppercase}
.audioToggle{pointer-events:auto;position:absolute;right:max(12px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));width:38px;height:38px;border:1px solid rgba(87,213,255,.25);border-radius:11px;background:rgba(5,15,32,.78);color:white;font-size:17px;cursor:pointer}
.weaponPanel{position:absolute;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);min-width:min(520px,78vw);padding:12px 16px;text-align:center}
.weaponPanel strong{display:block;margin:2px 0 8px;font-size:15px;color:#dff8ff}
.bonusProgress{position:relative;height:17px;overflow:hidden;border-radius:6px;background:rgba(43,126,180,.12);border:1px solid rgba(77,202,255,.12)}
.bonusProgress i{position:absolute;inset:0 auto 0 0;width:var(--progress);background:linear-gradient(90deg,rgba(20,105,255,.55),rgba(57,226,255,.65));box-shadow:0 0 16px rgba(45,201,255,.5);transition:width .25s}
.bonusProgress span{position:relative;z-index:1;display:block;line-height:15px;font-size:8px;font-weight:900;letter-spacing:.12em;color:#c7efff}
.instruction{position:absolute;left:max(18px,env(safe-area-inset-left));bottom:max(22px,env(safe-area-inset-bottom));max-width:min(390px,42vw);padding:10px 13px;font-size:11px;line-height:1.4;color:#90adbe}
.instruction b{font-size:10px;letter-spacing:.12em;color:#71dfff}

.toast{position:fixed;z-index:30;left:50%;top:42%;transform:translate(-50%,-50%) scale(.78);min-width:min(650px,84vw);padding:20px 28px;text-align:center;border:1px solid rgba(82,220,255,.36);border-radius:17px;background:linear-gradient(135deg,rgba(4,10,27,.94),rgba(7,34,58,.88));box-shadow:0 0 65px rgba(0,156,255,.24),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(15px);opacity:0;visibility:hidden;transition:.3s cubic-bezier(.2,.85,.25,1.2);pointer-events:none}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.toast strong{display:block;font-size:clamp(25px,4vw,52px);font-style:italic;letter-spacing:.04em;color:#68e1ff;text-shadow:0 0 26px rgba(37,187,255,.72)}
.toast span{display:block;margin-top:6px;font-size:13px;color:#a8c8d8}
.toast.bonus{border-color:rgba(255,147,44,.7);background:linear-gradient(135deg,rgba(20,7,12,.96),rgba(65,18,17,.91));box-shadow:0 0 90px rgba(255,75,31,.38)}
.toast.bonus strong{color:#ffb33c;text-shadow:0 0 30px rgba(255,75,20,.8);animation:bonusBeat .55s 3}
@keyframes bonusBeat{50%{transform:scale(1.08)}}
.crosshair{position:fixed;left:50%;top:50%;width:18px;height:18px;transform:translate(-50%,-50%);z-index:9;opacity:0;transition:opacity .2s;pointer-events:none}
.crosshair.visible{opacity:1}
.crosshair:before,.crosshair:after{content:"";position:absolute;background:#ff253f;box-shadow:0 0 8px #ff253f}
.crosshair:before{left:8px;top:0;width:2px;height:18px}.crosshair:after{left:0;top:8px;width:18px;height:2px}
.crosshair i{position:absolute;inset:5px;border:1px solid #ff5368;border-radius:50%}
.fatal{position:fixed;z-index:100;left:50%;bottom:30px;transform:translateX(-50%);display:none;max-width:90vw;padding:16px 20px;border:1px solid #ff5a67;border-radius:12px;background:#320812;color:#ffd4d8}
.fatal.show{display:block}

body:xr-overlay,body:xr-overlay #glcanvas{background:transparent!important}
body:xr-overlay .scanlines{display:none}
body:xr-overlay .hudTop,body:xr-overlay .weaponPanel,body:xr-overlay .instruction{background:rgba(3,9,20,.62)}
body:xr-overlay .toast{top:38%}

@media(max-width:850px){
  .bootShell{grid-template-columns:1fr;padding:18px;overflow:auto;align-items:start}
  .missionCard{display:none}
  .heroCard{margin:auto;padding:28px}
  .rightPanel{width:38vw}
  .metric{min-width:64px;padding:3px 7px}.metric strong{font-size:15px}
  .weaponPanel{min-width:52vw}.instruction{max-width:34vw}
}
@media(max-height:600px){
  .heroCard{padding:24px}.lead{font-size:15px}.featureRow{margin-bottom:16px}.missionCard{max-height:520px}.planetPreview{height:120px}.microcopy{display:none}
}


/* Riftbreaker MR 4.0 menu and overlays */
.menuCard{padding:clamp(28px,4vw,54px);min-height:min(760px,88vh);display:flex;flex-direction:column;justify-content:center}
.menuView{display:none;animation:menuIn .24s ease both}.menuView.active{display:block}
@keyframes menuIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mainMenu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:760px}
.menuAction{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:70px;padding:13px 17px;border:1px solid rgba(88,210,255,.19);border-radius:14px;background:linear-gradient(135deg,rgba(12,35,62,.78),rgba(4,13,29,.82));color:#eafaff;cursor:pointer;text-align:left;overflow:hidden;transition:transform .18s,border-color .18s,box-shadow .18s,filter .18s}
.menuAction:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(92,223,255,.08),transparent);transform:translateX(-110%);transition:transform .4s}
.menuAction:hover{transform:translateY(-2px);border-color:rgba(91,225,255,.55);box-shadow:0 10px 28px rgba(0,126,255,.18)}
.menuAction:hover:before{transform:translateX(110%)}
.menuAction b{font-size:14px;letter-spacing:.11em}.menuAction span{margin-top:4px;font-size:11px;color:#7ea7bd}
.menuAction:disabled{opacity:.38;cursor:not-allowed;transform:none}
.primaryAction{grid-column:1/-1;min-height:86px;color:#04111c;background:linear-gradient(110deg,#66ebff,#2c8fff 58%,#7066ff);border:0;box-shadow:0 16px 42px rgba(0,139,255,.34)}
.primaryAction b{font-size:22px}.primaryAction span{color:rgba(2,16,28,.72);font-weight:750}
.dangerAction{border-color:rgba(255,70,91,.20)}.dangerAction:hover{border-color:rgba(255,80,99,.58);box-shadow:0 10px 28px rgba(255,35,64,.12)}
.panelTitle{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:6px 0 12px;font-size:18px;font-weight:950;letter-spacing:.13em;color:#6de3ff}
.panelLead{margin:0 0 26px;color:#88a9bb;font-size:13px;line-height:1.5}
.menuBack,.widePanelButton{border:1px solid rgba(85,211,255,.26);border-radius:10px;background:rgba(9,30,50,.72);color:#dff8ff;padding:10px 15px;font-weight:850;letter-spacing:.08em;cursor:pointer}
.volumeControl{display:block;margin:18px 0 26px;padding:18px;border:1px solid rgba(79,205,255,.16);border-radius:15px;background:rgba(7,20,40,.58)}
.volumeControl>span{display:flex;justify-content:space-between;gap:20px;align-items:center}.volumeControl b{font-size:13px;letter-spacing:.09em}.volumeControl output{color:#61e7ff;font-weight:900}
.volumeControl input{width:100%;margin:18px 0 9px;accent-color:#39cfff}.volumeControl small{color:#7193a8;font-size:11px}
.widePanelButton{width:100%;min-height:48px}
.highscoreList{list-style:none;margin:0;padding:0;display:grid;gap:7px;counter-reset:rank;max-height:430px;overflow:auto}
.highscoreList li{counter-increment:rank;display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;min-height:44px;padding:8px 13px;border:1px solid rgba(79,205,255,.12);border-radius:11px;background:rgba(7,20,40,.55)}
.highscoreList li:before{content:counter(rank,decimal-leading-zero);font-size:11px;color:#69ddff;font-weight:950}.highscoreList strong{font-size:19px;letter-spacing:.04em}.highscoreList time{font-size:10px;color:#6f91a5}.highscoreList .emptyScore{grid-template-columns:1fr;text-align:center;color:#789bad;padding:24px}.highscoreList .emptyScore:before{display:none}
.earthPlanet{position:absolute;left:13%;top:31px;width:49px;height:49px;border-radius:50%;background:radial-gradient(circle at 30% 26%,#dff8ff 0 5%,#45aaf3 9% 34%,#24936e 35% 42%,#124b7b 45% 68%,#06152e 75%);box-shadow:0 0 18px rgba(61,177,255,.5);z-index:2}
.gameOverMenu{position:fixed;inset:0;z-index:45;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle,rgba(42,3,15,.38),rgba(1,4,12,.62));backdrop-filter:blur(8px);opacity:0;visibility:hidden;pointer-events:none;transition:.25s}
.gameOverMenu.visible{opacity:1;visibility:visible;pointer-events:auto}
.gameOverCard{width:min(560px,90vw);padding:30px;border:1px solid rgba(255,82,100,.46);border-radius:22px;background:linear-gradient(145deg,rgba(35,5,17,.95),rgba(6,14,31,.94));box-shadow:0 30px 90px rgba(0,0,0,.55),0 0 80px rgba(255,35,63,.16);text-align:center}
.gameOverCard>small{font-size:10px;letter-spacing:.22em;color:#ff7283}.gameOverCard h2{margin:7px 0 22px;font-size:clamp(27px,5vw,48px);font-style:italic;letter-spacing:.02em}
.finalScore{display:flex;align-items:end;justify-content:center;gap:14px}.finalScore span{font-size:10px;letter-spacing:.18em;color:#829fb1}.finalScore strong{font-size:48px;color:#68e7ff;text-shadow:0 0 25px rgba(43,194,255,.55)}
.finalRank{margin:7px 0 22px;color:#ffb541;font-size:12px;font-weight:900;letter-spacing:.12em}.gameOverButtons{display:flex;gap:10px;justify-content:center}.gameOverButtons button{min-width:150px;min-height:50px;border:1px solid rgba(93,218,255,.28);border-radius:11px;background:rgba(12,37,60,.82);color:#edfbff;font-weight:900;cursor:pointer}.gameOverButtons button:first-child{background:linear-gradient(110deg,#5ce6ff,#318dff);color:#04111d;border:0}.gameOverCard p{margin:16px 0 0;font-size:10px;color:#69899e}
body:xr-overlay .gameOverMenu{background:rgba(3,7,15,.42)}
@media(max-width:850px){.mainMenu{grid-template-columns:1fr}.primaryAction{grid-column:auto}.menuCard{min-height:auto}.gameOverButtons{flex-direction:column}.gameOverButtons button{width:100%}}

/* v4 wave/highscore refinements */
.waveMetric strong{color:#69eaff;text-shadow:0 0 16px rgba(74,220,255,.45)}
.menuAction:active{transform:translateY(0) scale(.985);filter:brightness(1.65);border-color:#eaffff;box-shadow:0 0 34px rgba(91,230,255,.62)}
.menuAction:focus-visible{outline:2px solid #8bedff;outline-offset:3px}
.highscoreList li{grid-template-columns:44px minmax(90px,1fr) 88px auto}
.highscoreList .scoreWave{font-size:10px;font-weight:900;letter-spacing:.08em;color:#ff936a;text-align:center}
.finalWave{margin:-10px 0 12px;font-size:16px;font-weight:950;letter-spacing:.16em;color:#69eaff;text-shadow:0 0 18px rgba(61,217,255,.42)}
.saveHighscore{width:100%;min-height:52px;margin:0 0 12px;border:1px solid rgba(255,197,83,.54);border-radius:12px;background:linear-gradient(110deg,#ffd76a,#ff8d52);color:#241006;font-weight:950;letter-spacing:.08em;cursor:pointer;box-shadow:0 10px 35px rgba(255,128,46,.18);transition:transform .16s,filter .16s,box-shadow .16s}
.saveHighscore:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 14px 38px rgba(255,128,46,.30)}
.saveHighscore:active{transform:scale(.985);filter:brightness(1.45)}
.saveHighscore:disabled{opacity:.52;cursor:default;transform:none;filter:none}
@media(max-width:850px){.highscoreList li{grid-template-columns:36px minmax(76px,1fr) 74px}.highscoreList time{display:none}}

/* Riftbreaker MR 5.0 pilot name and boss-era refinements */
.highscoreList li{grid-template-columns:44px 92px minmax(90px,1fr) 88px auto}
.highscoreList .scoreName{font-size:12px;font-weight:950;letter-spacing:.16em;color:#7cecff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pilotNameField{display:grid;gap:8px;margin:0 0 14px;text-align:left}
.pilotNameField span{font-size:10px;font-weight:950;letter-spacing:.15em;color:#8edff5}
.pilotNameField input{width:100%;height:56px;padding:0 16px;border:1px solid rgba(104,230,255,.48);border-radius:12px;outline:0;background:rgba(3,16,31,.9);color:#f4fdff;font:950 24px/1 system-ui,-apple-system,Segoe UI,sans-serif;letter-spacing:.28em;text-align:center;text-transform:uppercase;box-shadow:inset 0 0 24px rgba(47,182,255,.08),0 0 30px rgba(47,182,255,.08);transition:border-color .18s,box-shadow .18s,transform .18s}
.pilotNameField input:focus{border-color:#7defff;box-shadow:inset 0 0 28px rgba(47,182,255,.14),0 0 34px rgba(47,182,255,.22);transform:translateY(-1px)}
@media(max-width:850px){.highscoreList li{grid-template-columns:34px 68px minmax(70px,1fr) 64px}.highscoreList time{display:none}.highscoreList .scoreName{font-size:10px;letter-spacing:.10em}}
