/* ============================================
   SPACE FORCE SPELLING - FULL STYLES v2
   ============================================ */

/* Local font faces — offline compatible */
@font-face{font-family:'Orbitron';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/Orbitron-Regular.woff2') format('woff2')}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/Orbitron-Bold.woff2') format('woff2')}
@font-face{font-family:'Orbitron';font-style:normal;font-weight:900;font-display:swap;src:url('fonts/Orbitron-Black.woff2') format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/Nunito-Regular.woff2') format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/Nunito-Bold.woff2') format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:800;font-display:swap;src:url('fonts/Nunito-ExtraBold.woff2') format('woff2')}
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('fonts/Nunito-Black.woff2') format('woff2')}

*{margin:0;padding:0;box-sizing:border-box}
:root{
  --space:#0a0e27;--space2:#141830;
  --neon-blue:#00d4ff;--neon-pink:#ff2d7b;--neon-green:#39ff14;
  --neon-yellow:#ffd700;--neon-orange:#ff6b35;--neon-purple:#b44dff;
  --saber-blue:#4488ff;--saber-red:#ff4444;
  --white:#e8eaf6;--gray:#6b7280;
  --card:rgba(20,24,48,.92);--radius:16px;--radius-sm:10px;
  --shadow:0 0 20px rgba(0,212,255,.15);
  --glow-g:0 0 15px rgba(57,255,20,.5);--glow-p:0 0 15px rgba(255,45,123,.5);
}
body{font-family:'Nunito',sans-serif;background:var(--space);color:var(--white);min-height:100vh;overflow-x:hidden}

/* ===== STARS ===== */
#stars{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.star{position:absolute;border-radius:50%;background:#fff;animation:twinkle var(--dur) ease-in-out infinite}
@keyframes twinkle{0%,100%{opacity:var(--min-o)}50%{opacity:1}}

/* ===== SCREENS ===== */
.screen{display:none;min-height:100vh;padding:20px;position:relative;z-index:1;animation:screenIn .5s cubic-bezier(.23,1,.32,1)}
.screen.active{display:flex;justify-content:center;align-items:center}
@keyframes screenIn{from{opacity:0;transform:translateY(40px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.hidden{display:none!important}

/* ===== COMMON ===== */
.back-btn{position:absolute;top:20px;left:20px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:var(--white);padding:8px 18px;border-radius:25px;font:700 .95rem 'Nunito',sans-serif;cursor:pointer;transition:.2s;z-index:10}
.back-btn:hover{background:rgba(255,255,255,.2)}
.section-title{font:900 2rem 'Orbitron',sans-serif;text-align:center;margin:50px 0 15px;background:linear-gradient(135deg,var(--neon-blue),var(--neon-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.big-btn{border:none;padding:16px 40px;border-radius:50px;font:800 1.1rem 'Nunito',sans-serif;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--neon-blue),var(--neon-purple));transition:.3s;box-shadow:var(--shadow)}
.big-btn:hover{transform:translateY(-3px);filter:brightness(1.15)}
.big-btn:active{transform:scale(.95)}
.big-btn.secondary{background:rgba(255,255,255,.1);border:2px solid var(--neon-blue)}

/* ===== TITLE ===== */
.title-wrap{text-align:center;max-width:650px}
.title-rocket{font-size:80px;animation:rocketFloat 3s ease-in-out infinite;filter:drop-shadow(0 0 15px rgba(255,107,53,.6))}
@keyframes rocketFloat{0%,100%{transform:translateY(0) rotate(-15deg)}50%{transform:translateY(-20px) rotate(-12deg)}}
.game-title{font:900 3rem 'Orbitron',sans-serif;line-height:1.2;margin:10px 0;background:linear-gradient(135deg,var(--neon-orange),var(--neon-yellow));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.game-title span{background:linear-gradient(135deg,var(--neon-blue),var(--neon-green));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.crew-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:20px 0}
.crew-member{display:flex;flex-direction:column;align-items:center;gap:4px}
.crew-member span{font-size:2.5rem}
.crew-member small{font-size:.7rem;color:var(--gray);font-weight:700}
.crew-row.celebrate .crew-member span{animation:rocketFloat 1.5s ease-in-out infinite}
.tagline{color:var(--gray);font-size:1rem;margin-bottom:20px}
.launch-btn{background:linear-gradient(135deg,var(--neon-orange),#ff3e00);font-size:1.2rem;margin-top:15px}
.continue-btn{background:linear-gradient(135deg,#00c9ff,#0057ff);font-size:1.2rem;margin-top:10px;margin-bottom:4px}

/* Player select */
.player-select{display:flex;gap:14px;justify-content:center;margin-bottom:15px}
.player-btn{padding:14px 24px;border-radius:var(--radius);border:2px solid rgba(255,255,255,.15);background:rgba(255,255,255,.05);color:var(--white);font:700 1rem 'Nunito',sans-serif;cursor:pointer;transition:.3s;text-align:center}
.player-btn:hover{border-color:var(--neon-blue);background:rgba(0,212,255,.1)}
.player-btn.selected{border-color:var(--neon-green);background:rgba(57,255,20,.12);box-shadow:var(--glow-g)}
.player-btn small{font-size:.7rem;opacity:.7}
.p2-name-area{margin-bottom:10px;display:flex;flex-direction:column;gap:8px;align-items:center}
.name-row{display:flex;gap:8px;align-items:center}
.name-row label{font-weight:700;font-size:.85rem;min-width:70px;text-align:right}
.name-row input{padding:6px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08);color:var(--white);font:700 .9rem 'Nunito',sans-serif;width:140px}

/* ===== SYSTEMS ===== */
.systems-wrap{max-width:800px;width:100%;text-align:center}
.system-cards{display:flex;flex-wrap:wrap;gap:18px;justify-content:center}
.sys-card{width:200px;padding:22px 15px;border-radius:var(--radius);border:2px solid transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;font-family:'Nunito',sans-serif;transition:.3s;position:relative;overflow:hidden}
.sys-card:hover{transform:translateY(-5px)}
.sys-card .sys-emoji{font-size:2.8rem}
.sys-card .sys-name{font:700 .95rem 'Orbitron',sans-serif}
.sys-card .sys-subtitle{font:600 .7rem 'Nunito',sans-serif;opacity:.6;font-style:italic}
.sys-card .sys-grade{font-size:.75rem;opacity:.7}
.sys-card .sys-desc{font-size:.65rem;opacity:.6;line-height:1.3;max-width:180px}
.sys-card .sys-species{font-size:1.4rem;letter-spacing:4px;margin:4px 0}
.sys-card .sys-progress{font-size:.75rem;margin-top:2px}
.sys-card .sys-reward{font-size:.6rem;padding:3px 8px;border-radius:8px;background:rgba(255,255,255,.06);margin-top:4px}
.sys-card .sys-reward.unlocked{background:rgba(57,255,20,.15);color:var(--neon-green)}
.sys-card.locked{opacity:.35;cursor:not-allowed}
.sys-card.locked::after{content:'🔒';position:absolute;top:10px;right:10px;font-size:1rem}
.hud-lives-top{text-align:center;margin-bottom:12px;font-size:1.3rem;letter-spacing:3px}

/* ===== MAP ===== */
.map-wrap{max-width:800px;width:100%;text-align:center}
.map-crew-mini{font-size:1.3rem;margin-bottom:20px;letter-spacing:2px}
.map-faint-risk{text-align:center;font:700 .75rem 'Nunito',sans-serif;color:var(--neon-pink);background:rgba(255,59,92,.12);border:1px solid rgba(255,59,92,.3);border-radius:8px;padding:4px 10px;margin:0 auto 8px;max-width:280px;animation:faintPulse 1.6s ease-in-out infinite}
@keyframes faintPulse{0%,100%{opacity:1}50%{opacity:.6}}
#system-subtitle{font:600 .8rem 'Nunito',sans-serif;opacity:.6;font-style:italic;margin-bottom:8px}
.planet-path{display:flex;flex-direction:column;align-items:center;gap:0;padding:20px 10px;border:1px solid transparent;border-radius:var(--radius);background:rgba(0,0,0,.15);overflow-y:auto;max-height:70vh}
.tier-row{display:flex;align-items:stretch;justify-content:center;gap:8px;padding:6px 0;flex-wrap:wrap}
.tier-row.tier-single{gap:0}
.tier-connector{display:flex;justify-content:center;align-items:center;gap:12px;height:20px;position:relative}
.tier-connector .tier-line{width:2px;height:20px;background:rgba(255,255,255,.15);border-radius:2px}
.tier-connector.fork .tier-line,.tier-connector.merge .tier-line{transform:skewX(8deg)}
.tier-connector.fork .tier-line:first-child,.tier-connector.merge .tier-line:last-child{transform:skewX(-8deg)}
.planet-node{display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;transition:.3s;padding:6px 8px;border-radius:10px;border:2px solid transparent;background:rgba(255,255,255,.03);min-width:68px;max-width:90px;flex:0 0 auto}
.planet-node:hover{transform:scale(1.08);background:rgba(255,255,255,.06)}
.planet-node.locked{opacity:.3;cursor:not-allowed;border-color:transparent}
.planet-node.locked:hover{transform:none;background:rgba(255,255,255,.03)}
.planet-node.current{animation:planetPulse 2s ease-in-out infinite;border-color:var(--neon-blue)}
.planet-node .p-icon{font-size:1.6rem}
.planet-node .p-name{font:700 .55rem 'Orbitron',sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80px}
.planet-node .p-theme{font:600 .45rem 'Nunito',sans-serif;opacity:.7}
.planet-node .p-species{font-size:.8rem;margin-top:1px}
.planet-node .p-diff{font-size:.5rem;margin-top:-2px;opacity:.8;letter-spacing:-1px}
.planet-node.completed .p-icon{filter:brightness(.6)}
.planet-node.completed::after{content:'✅';font-size:.6rem;margin-top:-3px}
/* Stop type visual accents */
.planet-node.stop-shop{border-left:3px solid #f368e0}
.planet-node.stop-repair{border-left:3px solid #ff9f43}
.planet-node.stop-cache{border-left:3px solid #feca57}
.planet-node.stop-trade{border-left:3px solid #1dd1a1}
.planet-node.stop-rest{border-left:3px solid #ffd700}
.planet-node.stop-supply{border-left:3px solid #39ff14}
.planet-node.stop-minigame{border-left:3px solid #00d4ff}
.planet-node.stop-boss{border-left:3px solid #ff4444}
/* Node hover preview tooltip */
.planet-node .p-preview{display:none;position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.9);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 12px;font-size:.65rem;white-space:nowrap;z-index:100;color:#fff;pointer-events:none}
.planet-node:hover .p-preview{display:block}
@keyframes planetPulse{0%,100%{filter:drop-shadow(0 0 5px var(--neon-blue))}50%{filter:drop-shadow(0 0 20px var(--neon-blue))}}

/* ===== SHOP & TRADE ===== */
.shop-wrap{max-width:600px;width:100%;margin:0 auto;padding:20px;text-align:center}
.shop-title{font:800 1.4rem 'Orbitron',sans-serif;margin-bottom:4px}
.shop-subtitle{font-size:.85rem;opacity:.7;margin-bottom:12px}
.shop-resources{display:flex;justify-content:center;gap:16px;margin-bottom:16px;font-size:1rem}
.shop-res{display:flex;align-items:center;gap:4px}
.shop-grid,.trade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:16px}
.shop-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);transition:.2s}
.shop-item:hover{background:rgba(255,255,255,.08);transform:translateY(-2px)}
.shop-item.shop-cant-afford{opacity:.4}
.shop-item-emoji{font-size:1.8rem}
.shop-item-name{font:700 .75rem 'Orbitron',sans-serif}
.shop-item-desc{font-size:.7rem;opacity:.7}
.shop-item-cost{font-size:.7rem;color:#feca57;margin-top:2px}
.shop-buy-btn{padding:4px 16px;border-radius:8px;border:none;background:var(--neon-blue);color:#fff;font:700 .7rem 'Nunito',sans-serif;cursor:pointer;margin-top:4px}
.shop-buy-btn:disabled{opacity:.3;cursor:not-allowed}
.shop-leave-btn{margin-top:12px}

/* ===== CUTSCENE ===== */
.cutscene-wrap{max-width:620px;width:100%;text-align:center;background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:var(--radius);transition:background-image .4s ease;position:relative}
.cutscene-wrap.has-bg{min-height:0}
.cutscene-wrap.has-bg::before{display:none}
.cutscene-wrap.has-bg .cutscene-scene{display:none}
.cutscene-wrap.has-bg .cutscene-location{display:none}
.cutscene-wrap.has-bg .cutscene-crew-bar{display:none}
.cutscene-wrap.has-bg .cutscene-mood{display:none}
.cutscene-wrap.has-bg .cutscene-img{display:block;width:100%;border-radius:var(--radius);margin-bottom:10px}
.cutscene-wrap.has-bg .cutscene-box{padding:12px 16px;margin-bottom:6px}
.cutscene-wrap.has-bg .cutscene-dialog{font-size:1.05rem;min-height:1.8em}
.cutscene-img{display:none}
.cutscene-location{font:800 .7rem 'Orbitron',sans-serif;color:var(--neon-blue);letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;opacity:.7}
.cutscene-scene{font-size:5rem;margin-bottom:10px;min-height:80px;animation:scenePop .6s cubic-bezier(.23,1,.32,1)}
@keyframes scenePop{from{transform:scale(0) rotate(-30deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
.cutscene-crew-bar{display:flex;justify-content:center;gap:6px;margin-bottom:12px;min-height:36px}
.cutscene-crew-bar .crew-pip{font-size:1.5rem;opacity:.3;transition:all .3s ease;filter:grayscale(.6)}
.cutscene-crew-bar .crew-pip.active{opacity:1;filter:none;transform:scale(1.25);text-shadow:0 0 10px rgba(255,255,255,.5)}
.cutscene-box{background:var(--card);border-radius:var(--radius);padding:25px;margin-bottom:12px;border:1px solid rgba(255,255,255,.08);text-align:left;position:relative;overflow:hidden}
.cutscene-box::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--neon-blue),var(--neon-purple),var(--neon-pink));animation:borderShimmer 3s linear infinite}
@keyframes borderShimmer{0%{background-position:0 0}100%{background-position:200% 0}}
.cutscene-box::before{background-size:200% 100%}
.cutscene-speaker{font:800 .9rem 'Orbitron',sans-serif;color:var(--neon-yellow);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.cutscene-dialog{font-size:1.15rem;line-height:1.6;color:var(--white);min-height:2.4em}
/* Speaker color classes */
.speaker-daddy{color:#ffffff}
.speaker-mommy{color:#cb7dff}
.speaker-sister{color:#ff69b4}
.speaker-brother{color:#39ff14}
.speaker-baby{color:#ffd700}
.speaker-abby{color:#ffb347}
.speaker-daisy{color:#87ceeb}
.speaker-narrator{color:var(--neon-blue)}
/* Cutscene control buttons */
.cutscene-controls{display:flex;align-items:center;justify-content:center;gap:10px}
.cs-ctrl-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);border-radius:50%;width:40px;height:40px;font-size:1rem;cursor:pointer;color:var(--white);transition:all .2s;display:flex;align-items:center;justify-content:center}
.cs-ctrl-btn:hover{background:rgba(255,255,255,.2)}
.cs-ctrl-btn.active{background:var(--neon-blue);border-color:var(--neon-blue);color:#fff;box-shadow:0 0 10px var(--neon-blue)}
.karaoke-word{display:inline-block;padding:0 2px;border-radius:4px;transition:color .15s,text-shadow .15s,transform .15s;color:rgba(255,255,255,.45)}
.karaoke-word.active{color:#ffd700;text-shadow:0 0 8px rgba(255,215,0,.7);transform:scale(1.12)}
.karaoke-word.spoken{color:var(--white)}
.typewriter-cursor{color:var(--neon-blue);animation:cursorBlink .6s step-end infinite;font-weight:100}
@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}
.cutscene-mood{font-size:.85rem;color:var(--neon-purple);font-style:italic;margin-top:12px;opacity:.9;padding-top:10px;border-top:1px solid rgba(255,255,255,.05)}
.cutscene-progress{display:flex;justify-content:center;gap:5px;margin-bottom:10px}
.cutscene-progress .cs-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.15)}
.cutscene-progress .cs-dot.done{background:var(--neon-blue)}
.cutscene-progress .cs-dot.current{background:var(--neon-yellow);box-shadow:0 0 6px var(--neon-yellow)}
.cutscene-next{background:linear-gradient(135deg,var(--neon-blue),var(--neon-purple))}

/* ===== BATTLE ===== */
.battle-wrap{max-width:650px;width:100%}
.battle-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;position:relative}
.battle-header .back-btn{position:static}
.battle-info{text-align:center}
.planet-label{font:700 1rem 'Orbitron',sans-serif;color:var(--neon-yellow);display:block}
.planet-biome{display:block;font:400 .65rem 'Exo 2',sans-serif;color:var(--neon-cyan);opacity:.8;letter-spacing:.05em;margin-top:1px}
.planet-context-line{font:600 .75rem 'Nunito',sans-serif;color:var(--neon-cyan);opacity:.75;text-align:center;min-height:1.1em;margin-bottom:4px;letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q-instruction{font:700 .8rem 'Nunito',sans-serif;color:var(--neon-yellow);text-align:center;margin-bottom:6px;opacity:.9;letter-spacing:.02em}
.q-instruction-line{display:block;font:700 .78rem 'Nunito',sans-serif;color:var(--neon-yellow);text-align:center;min-height:1.1em;margin:2px 0 6px;opacity:.9;letter-spacing:.02em;padding:0 8px}
.word-progress{font-size:.85rem;color:var(--gray)}
.score-badge{background:linear-gradient(135deg,var(--neon-yellow),var(--neon-orange));color:#1a0a00;padding:6px 16px;border-radius:20px;font-weight:900;font-size:1.05rem;position:relative}

/* Score popup */
.score-popup{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font:900 1rem 'Orbitron',sans-serif;color:var(--neon-green);pointer-events:none;animation:floatUp 1s ease-out forwards;white-space:nowrap;text-shadow:0 0 10px var(--neon-green)}

/* HUD */
.hud-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:6px 10px;background:rgba(255,255,255,.03);border-radius:var(--radius-sm)}
.hud-lives{font-size:1.3rem;letter-spacing:2px}
.hud-turn{font:700 .85rem 'Nunito',sans-serif;color:var(--neon-blue);text-align:center;flex:1}
.hud-powerups{display:flex;gap:6px}
.pu-btn{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);border-radius:8px;padding:4px 10px;font-size:1.1rem;cursor:pointer;transition:.2s;position:relative}
.pu-btn:hover{background:rgba(0,212,255,.15);border-color:var(--neon-blue)}
.pu-btn .pu-count{position:absolute;top:-6px;right:-6px;background:var(--neon-pink);color:#fff;font:800 .6rem 'Nunito',sans-serif;border-radius:50%;width:16px;height:16px;display:flex;align-items:center;justify-content:center}

/* Stage */
.stage{position:relative;height:170px;margin-bottom:12px;border-radius:var(--radius);background:linear-gradient(180deg,rgba(10,14,39,.5),rgba(20,24,48,.8));overflow:hidden;border:1px solid rgba(255,255,255,.05);transition:background .5s,border-color .5s}

/* Stop-type visual wrappers */
.stage.stop-battle{border-left:3px solid #ff2d7b;}
.stage.stop-boss{border-left:3px solid #ff4444;border-right:3px solid #ff4444;}
.stage.stop-supply{border-left:3px solid #39ff14;}
.stage.stop-minigame{border-left:3px solid #00d4ff;}
.stage.stop-rest{border-left:3px solid #ffd700;}
.stage.stop-fuel{border-left:3px solid #ff9f43;}
.stage.stop-research{border-left:3px solid #5f27cd;}
.stage.stop-water{border-left:3px solid #54a0ff;}
.ship-area{position:absolute;bottom:8px;left:6px;display:flex;flex-direction:row;gap:4px;align-items:flex-end;z-index:5;animation:shipHover 2s ease-in-out infinite}
@keyframes shipHover{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.ship-emoji{display:inline-block;transform:rotate(-30deg)}
.battle-crew-slot{display:flex;flex-direction:column;align-items:center;gap:2px;background:rgba(0,0,0,.5);border:1.5px solid var(--bcs-color,#666);border-radius:8px;padding:3px 5px;transition:all .3s;--bcs-color:#888}
.battle-crew-slot.bcs-active{border-color:var(--bcs-color);box-shadow:0 0 10px var(--bcs-color);animation:crewPulse .8s ease-in-out infinite}
.bcs-emoji{font-size:1.35rem;line-height:1;display:block}
.bcs-level{font-size:.45rem;font-weight:700;color:var(--bcs-color);font-family:'Orbitron',sans-serif;display:block}
.stage-biome-label{position:absolute;bottom:4px;right:8px;font:600 .58rem 'Nunito',sans-serif;color:rgba(255,255,255,.3);z-index:4;letter-spacing:.06em;text-transform:uppercase;pointer-events:none;max-width:55%;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.enemy-area{position:absolute;top:15px;right:30px;text-align:center;z-index:5}
.enemy-emoji{font-size:3rem;transition:.3s}
.enemy-name{font:700 .7rem 'Orbitron',sans-serif;margin-top:3px;color:var(--neon-pink)}
.enemy-hp-bar{width:80px;height:6px;border-radius:3px;background:rgba(255,255,255,.1);margin:0 auto 5px}
.enemy-hp-fill{height:100%;border-radius:3px;transition:width .5s;background:linear-gradient(90deg,var(--neon-green),var(--neon-yellow))}

/* Stage environment particles */
.stage-env{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
.stage-env-particle{position:absolute;font-size:1.2rem;opacity:0.12;animation:envFloat var(--dur,5s) ease-in-out infinite alternate}
@keyframes envFloat{0%{transform:translateY(0) translateX(0) rotate(0deg);opacity:.08}50%{opacity:.2}100%{transform:translateY(-30px) translateX(20px) rotate(15deg);opacity:.08}}

/* Stage FX */
.explosion-overlay{position:absolute;inset:0;z-index:10;display:none;pointer-events:none}
.explosion-overlay.show{display:block}
.boom{position:absolute;font-size:3rem;animation:boomAnim .8s ease-out forwards}
@keyframes boomAnim{0%{transform:scale(.3);opacity:1}100%{transform:scale(2);opacity:0}}
.saber-overlay{position:absolute;inset:0;z-index:10;display:none;pointer-events:none}
.saber-overlay.show{display:block}
.saber-blade{position:absolute;width:4px;height:0;border-radius:2px;top:50%;left:50%;animation:saberSlash .6s ease-out forwards}
.saber-blade.blue{background:var(--saber-blue);box-shadow:0 0 20px var(--saber-blue),0 0 40px var(--saber-blue);transform:rotate(-45deg);transform-origin:top center}
.saber-blade.red{background:var(--saber-red);box-shadow:0 0 20px var(--saber-red),0 0 40px var(--saber-red);transform:rotate(45deg);transform-origin:top center;animation-delay:.15s}
@keyframes saberSlash{0%{height:0;opacity:1}50%{height:150px;opacity:1}100%{height:150px;opacity:0}}
.laser-beam{position:absolute;bottom:55px;left:65px;width:0;height:3px;background:var(--neon-green);box-shadow:0 0 10px var(--neon-green);z-index:8;transition:width .2s;border-radius:2px}
.laser-beam.fire{width:70%;animation:laserPulse .3s ease-out}
@keyframes laserPulse{0%{opacity:1;height:3px}50%{opacity:1;height:6px}100%{opacity:0;height:2px}}
.stage.shake{animation:shakeAnim .5s ease}
@keyframes shakeAnim{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-6px)}20%,40%,60%,80%{transform:translateX(6px)}}
.stage.flash-green{box-shadow:inset 0 0 60px rgba(57,255,20,.3)}
.stage.flash-red{box-shadow:inset 0 0 60px rgba(255,45,123,.3)}
.enemy-emoji.hit{animation:enemyHit .4s ease}
@keyframes enemyHit{0%,100%{transform:scale(1)}50%{transform:scale(1.3);filter:brightness(3)}}
.enemy-emoji.dead{animation:enemyDead .8s ease-out forwards}
@keyframes enemyDead{to{transform:scale(.1) rotate(720deg);opacity:0}}

/* Streak popup */
.streak-popup{position:absolute;top:-40px;left:50%;transform:translateX(-50%);font:900 1.1rem 'Orbitron',sans-serif;color:var(--neon-orange);text-shadow:0 0 20px var(--neon-orange);z-index:30;pointer-events:none;animation:streakPop 1.5s ease-out forwards;white-space:nowrap}
@keyframes streakPop{0%{transform:translateX(-50%) scale(.5);opacity:1}30%{transform:translateX(-50%) scale(1.3)}100%{transform:translateX(-50%) translateY(-30px) scale(1);opacity:0}}

/* Challenge Card */
.challenge-card{background:var(--card);border-radius:var(--radius);padding:22px;border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow);position:relative}
.audio-row{display:flex;gap:10px;justify-content:center;margin-bottom:12px}
.audio-btn{background:rgba(0,212,255,.15);border:1px solid var(--neon-blue);color:var(--neon-blue);padding:8px 20px;border-radius:25px;font:700 .9rem 'Nunito',sans-serif;cursor:pointer;transition:.2s}
.audio-btn:hover{background:rgba(0,212,255,.3)}
.audio-btn.small{font-size:.8rem;padding:6px 14px}
.definition-box,.sentence-box{background:rgba(255,255,255,.04);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:8px;text-align:left}
.def-label,.sent-label{font:800 .7rem 'Nunito',sans-serif;text-transform:uppercase;letter-spacing:1px;color:var(--gray);margin-right:6px}
.def-text,.sent-text{font-size:1rem;color:var(--white)}
.sent-speaker{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:0 6px;vertical-align:middle;filter:grayscale(.3);transition:.2s}
.sent-speaker:hover{filter:none;transform:scale(1.2)}
.round-charge-bar{width:100%;height:10px;border-radius:5px;background:rgba(255,255,255,.08);overflow:hidden;margin:8px 0 2px}
.round-charge-fill{height:100%;border-radius:5px;width:0%;transition:width .5s;background:linear-gradient(90deg,var(--neon-orange),var(--neon-yellow))}
.round-charge-label{text-align:center;font:700 .75rem 'Nunito',sans-serif;color:var(--neon-yellow);margin-bottom:6px}
.word-display{display:flex;justify-content:center;align-items:center;gap:6px;margin:18px 0 12px;font:900 2.3rem 'Orbitron',sans-serif;letter-spacing:8px;min-height:55px}
.wd-letter{color:var(--white);transition:.3s}
.wd-blank{display:inline-flex;align-items:center;justify-content:center;min-width:30px;border-bottom:4px solid var(--neon-yellow);color:var(--neon-yellow);padding-bottom:2px;transition:.3s}
.wd-blank.filled{border-color:var(--neon-green);color:var(--neon-green);animation:letterPop .3s ease}
@keyframes letterPop{0%{transform:scale(1.5)}100%{transform:scale(1)}}
.wd-blank.wrong{border-color:var(--neon-pink);color:var(--neon-pink);animation:shakeAnim .3s ease}
.choices-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:12px 0}
.choice-btn{min-width:80px;padding:14px 22px;border-radius:var(--radius-sm);border:2px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:var(--white);font:800 1.4rem 'Orbitron',sans-serif;cursor:pointer;transition:.2s;letter-spacing:2px}
.choice-btn:hover{border-color:var(--neon-blue);background:rgba(0,212,255,.15);transform:scale(1.05)}
.choice-btn:active{transform:scale(.95)}
.choice-btn.correct{border-color:var(--neon-green);background:rgba(57,255,20,.2);color:var(--neon-green);box-shadow:var(--glow-g);animation:correctPop .4s ease}
@keyframes correctPop{0%{transform:scale(1.2)}100%{transform:scale(1)}}
.choice-btn.wrong{border-color:var(--neon-pink);background:rgba(255,45,123,.2);color:var(--neon-pink);animation:shakeAnim .3s ease}
.choice-btn:disabled{cursor:not-allowed;opacity:.5}
.feedback{text-align:center;margin-top:12px;font:800 1.05rem 'Nunito',sans-serif;min-height:25px;transition:.3s}
.feedback .fb-correct{color:var(--neon-green)}
.feedback .fb-wrong{color:var(--neon-pink)}
.feedback .fb-answer{color:var(--neon-yellow);font-family:'Orbitron',sans-serif;letter-spacing:3px}

/* ===== MINI-GAME COMMON ===== */
.mg-wrap{max-width:600px;width:100%;text-align:center;max-height:calc(100vh - 36px);overflow-y:auto}
.mg-title{font:900 1.8rem 'Orbitron',sans-serif;margin-bottom:10px;background:linear-gradient(135deg,var(--neon-orange),var(--neon-yellow));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.mg-sub{color:var(--gray);margin-bottom:15px}
.mg-hud{margin-bottom:15px}
.mg-hud-row{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.mg-charge-bar{flex:1;height:14px;border-radius:7px;background:rgba(255,255,255,.08);overflow:hidden}
.mg-charge-fill{height:100%;border-radius:7px;transition:width .4s;background:linear-gradient(90deg,var(--neon-blue),var(--neon-green))}
.mg-charge-label{font:700 .8rem 'Nunito',sans-serif;color:var(--gray);white-space:nowrap}
.mg-score{font:700 .9rem 'Orbitron',sans-serif;color:var(--neon-blue)}
.mg-timer{font:700 .9rem 'Nunito',sans-serif;color:var(--neon-orange)}
.mg-combo{font:900 .9rem 'Orbitron',sans-serif;color:var(--neon-yellow);min-width:80px;text-align:right}
.mg-combo.combo-flash{animation:comboFlash .6s ease}
@keyframes comboFlash{0%{transform:scale(1.5);text-shadow:0 0 20px var(--neon-yellow)}100%{transform:scale(1);text-shadow:none}}
.mg-score-row{display:none}
.mg-score-row.visible{display:flex!important;justify-content:space-between}
.mg-feedback{text-align:center;margin-top:15px;font:800 1.1rem 'Nunito',sans-serif;min-height:30px}

/* Champion banner for mini-games */
.mg-champion-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 14px;margin:8px auto;border-radius:14px;background:rgba(0,0,0,.45);border:2px solid rgba(255,255,255,.15);max-width:400px}
.mg-champ-avatar{font-size:2.2rem;filter:drop-shadow(0 0 6px rgba(255,255,255,.4))}
.mg-champ-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.mg-champ-name{font:900 .95rem 'Orbitron',sans-serif;color:#fff;text-shadow:0 0 8px rgba(255,255,255,.4)}
.mg-champ-element{font:700 .8rem 'Nunito',sans-serif;padding:2px 8px;border-radius:8px;display:inline-block}
.mg-champ-stats{display:flex;gap:10px;margin-top:2px}
.mg-stat{font:700 .75rem 'Nunito',sans-serif;color:#ccc}
.mg-stat .val{color:#fff}

/* Asteroid mini-game */
.mg-spell-phase{margin:15px 0}
.mg-letter-prompt{font:900 2rem 'Orbitron',sans-serif;color:var(--neon-yellow);margin-bottom:12px;min-height:40px}
.mg-letter-choices{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.mg-letter-choices .choice-btn{min-width:60px;padding:12px 18px;font-size:1.3rem}
.mg-shoot-phase{margin:15px 0}
.mg-field{position:relative;width:100%;height:280px;background:radial-gradient(ellipse at 50% 50%,rgba(0,40,80,.4),rgba(10,14,39,.9));border-radius:var(--radius);overflow:hidden;border:1px solid rgba(255,255,255,.08);cursor:crosshair;touch-action:none;transition:transform .05s}
.mg-field::after{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='4' height='4' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='1' cy='1' r='.5' fill='%23ffffff20'/%3E%3C/svg%3E");pointer-events:none;opacity:.3}
.mg-asteroid{position:absolute;cursor:pointer;transition:filter .15s;user-select:none;z-index:5;filter:drop-shadow(0 0 8px rgba(255,200,50,.4));font-size:1.8rem}
.mg-asteroid:hover{filter:brightness(1.4) drop-shadow(0 0 15px rgba(255,200,50,.7))!important}
.mg-asteroid:active{transform:scale(.8)!important;filter:brightness(2)!important}
.mg-asteroid-big{filter:drop-shadow(0 0 12px rgba(255,100,50,.6))!important}
.mg-asteroid.exploded{animation:asteroidExplode .5s ease-out forwards!important;pointer-events:none}
@keyframes asteroidExplode{0%{transform:scale(1);opacity:1;filter:brightness(3)}50%{transform:scale(1.8);opacity:.5}100%{transform:scale(0);opacity:0}}
.mg-asteroid.split-spawn{animation:splitSpawn .3s ease-out}
@keyframes splitSpawn{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.mg-field{height:320px}

/* Floating score */
.float-score{position:absolute;font:900 1.2rem 'Orbitron',sans-serif;color:var(--neon-yellow);z-index:25;pointer-events:none;animation:floatUp 1s ease-out forwards;text-shadow:0 0 15px var(--neon-yellow)}
@keyframes floatUp{0%{transform:translateY(0);opacity:1}100%{transform:translateY(-50px);opacity:0}}

/* Particles */
.particle{position:absolute;pointer-events:none;z-index:20;animation:particleBurst .7s ease-out forwards}
@keyframes particleBurst{0%{transform:translate(0,0) scale(1);opacity:1}100%{transform:translate(var(--px),var(--py)) scale(0);opacity:0}}

/* Obstacle Dodge mini-game */
.dodge-field{position:relative;width:100%;height:340px;background:linear-gradient(180deg,rgba(10,14,39,.8),rgba(20,24,48,.95));border-radius:var(--radius);overflow:hidden;border:1px solid rgba(255,255,255,.08);margin:10px 0;transition:transform .1s}
.dodge-field::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 59px,rgba(255,255,255,.03) 59px,rgba(255,255,255,.03) 60px);pointer-events:none;animation:scrollLines 2s linear infinite}
@keyframes scrollLines{from{background-position:0 0}to{background-position:0 60px}}
.dodge-ship{position:absolute;bottom:15px;font-size:2.5rem;transition:left .2s ease-out;z-index:5;filter:drop-shadow(0 0 10px rgba(0,212,255,.5))}
.dodge-ship.invincible{filter:hue-rotate(90deg) brightness(1.5) drop-shadow(0 0 15px rgba(57,255,20,.8))!important;animation:invinciblePulse .3s ease-in-out infinite alternate}
@keyframes invinciblePulse{from{filter:hue-rotate(80deg) brightness(1.3)}to{filter:hue-rotate(100deg) brightness(1.7)}}
.dodge-lanes{position:absolute;inset:0;display:flex}
.dodge-lane{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:10px;position:relative;border-right:1px solid rgba(255,255,255,.03)}
.dodge-lane:last-child{border-right:none}
.dodge-obstacle{font-size:2rem;position:absolute;z-index:3;filter:drop-shadow(0 0 5px rgba(255,100,50,.5));user-select:none}
.dodge-obstacle.hit{animation:boomAnim .5s ease-out forwards!important}
.dodge-collectible{font-size:1.8rem;position:absolute;z-index:3;animation:collectGlow 1s ease-in-out infinite alternate;user-select:none}
@keyframes collectGlow{from{filter:brightness(1)}to{filter:brightness(1.5) drop-shadow(0 0 10px rgba(255,215,0,.6))}}
.dodge-collectible.collected{animation:collectPop .4s ease-out forwards!important}
@keyframes collectPop{0%{transform:scale(1);opacity:1}100%{transform:scale(2) translateY(-20px);opacity:0}}
.dodge-controls{display:flex;gap:14px;justify-content:center;margin-top:10px}
.dodge-btn{padding:14px 34px;border-radius:var(--radius-sm);border:2px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);font-size:1.5rem;cursor:pointer;transition:.15s}
.dodge-btn:hover{border-color:var(--neon-blue);background:rgba(0,212,255,.15);transform:scale(1.05)}
.dodge-btn:active{transform:scale(.9);background:rgba(0,212,255,.25)}
.dodge-popup{position:absolute;font:900 1rem 'Orbitron',sans-serif;color:var(--neon-green);z-index:25;pointer-events:none;animation:dodgePopAnim 1s ease-out forwards;text-shadow:0 0 10px var(--neon-green);left:50%;transform:translateX(-50%)}
@keyframes dodgePopAnim{0%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.2)}100%{opacity:0;transform:translateX(-50%) translateY(-40px) scale(1)}}

/* Wire mini-game */
.mg-wire-word{font:900 2rem 'Orbitron',sans-serif;letter-spacing:6px;margin:15px 0;color:var(--neon-yellow)}
.mg-wire-panel{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:15px 0}
.wire-btn{padding:16px 30px;border-radius:var(--radius-sm);border:3px solid;cursor:pointer;font:800 1.2rem 'Orbitron',sans-serif;background:rgba(255,255,255,.05);transition:.2s;letter-spacing:3px;min-width:100px}
.wire-btn:hover{transform:scale(1.05);filter:brightness(1.2)}
.wire-btn.wire-red{border-color:#ff4444;color:#ff4444}
.wire-btn.wire-blue{border-color:#4488ff;color:#4488ff}
.wire-btn.wire-green{border-color:#39ff14;color:#39ff14}
.wire-btn.wire-yellow{border-color:#ffd700;color:#ffd700}
.wire-btn.clipped{opacity:.3;text-decoration:line-through;cursor:not-allowed}
.wire-btn.correct-wire{animation:wireGlow .6s ease;box-shadow:0 0 25px var(--neon-green)}
@keyframes wireGlow{0%,100%{filter:brightness(1)}50%{filter:brightness(2)}}

/* ===== TRACTOR BEAM MINI-GAME ===== */
.tractor-word-display{display:flex;gap:8px;justify-content:center;margin-bottom:12px;font:900 2rem 'Orbitron',sans-serif;letter-spacing:6px}
.tractor-letter-slot{display:inline-flex;align-items:center;justify-content:center;min-width:28px;border-bottom:4px solid var(--neon-blue);color:var(--neon-blue);padding-bottom:2px;transition:.3s}
.tractor-letter-slot.filled{border-color:var(--neon-green);color:var(--neon-green);animation:letterPop .3s ease}
.tractor-field{position:relative;width:100%;height:280px;background:linear-gradient(180deg,rgba(0,5,30,.9),rgba(10,14,39,.95));border-radius:var(--radius);overflow:hidden;border:1px solid rgba(0,212,255,.15);margin:10px 0}
.tractor-beam-ship{position:absolute;bottom:10px;transition:left .2s ease-out;z-index:10;text-align:center;width:16%}
.tractor-ship-emoji{font-size:2.5rem;display:block;filter:drop-shadow(0 0 10px rgba(0,212,255,.5))}
.tractor-ray{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);width:30px;height:260px;background:linear-gradient(180deg,transparent,rgba(0,212,255,.06),rgba(0,212,255,.15));clip-path:polygon(20% 0%,80% 0%,100% 100%,0% 100%);pointer-events:none;animation:tractorPulse 1.5s ease-in-out infinite alternate}
@keyframes tractorPulse{from{opacity:.5}to{opacity:1}}
.tractor-falling-letter{position:absolute;font:900 1.8rem 'Orbitron',sans-serif;color:var(--white);z-index:5;text-shadow:0 0 8px rgba(255,255,255,.3);user-select:none;transition:color .2s}
.tractor-falling-letter.correct{color:var(--neon-green);text-shadow:0 0 12px rgba(57,255,20,.5)}
.tractor-falling-letter.caught-correct{animation:tractorCatch .4s ease-out forwards;color:var(--neon-green)}
.tractor-falling-letter.caught-wrong{animation:tractorReject .4s ease-out forwards;color:var(--neon-pink)}
@keyframes tractorCatch{0%{transform:scale(1);opacity:1}100%{transform:scale(1.5) translateY(20px);opacity:0}}
@keyframes tractorReject{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3);color:var(--neon-pink)}100%{transform:scale(0);opacity:0}}

/* ===== PET BONUS ===== */
.pet-wrap{max-width:500px;width:100%;text-align:center}
.pet-emoji{font-size:5rem;margin-bottom:10px;animation:rocketFloat 2s ease-in-out infinite}
.pet-title{font:900 1.6rem 'Orbitron',sans-serif;color:var(--neon-yellow);margin-bottom:8px}
.pet-sub{color:var(--gray);margin-bottom:15px}
.pet-choices{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:10px 0}

/* ===== WIN ===== */
.win-wrap{text-align:center;max-width:550px;width:100%}
.win-emoji{font-size:80px;animation:rocketFloat 2s ease-in-out infinite}
.win-title{font:900 2rem 'Orbitron',sans-serif;margin:10px 0 20px;background:linear-gradient(135deg,var(--neon-yellow),var(--neon-orange));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.gameover-title{background:linear-gradient(135deg,var(--neon-pink),#ff6666)!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important}
.win-sub{color:var(--gray);margin-bottom:20px}
.win-stats{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:25px}
.ws{background:var(--card);border-radius:var(--radius-sm);padding:15px 20px;min-width:90px;border:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column}
.ws span{font:900 1.8rem 'Orbitron',sans-serif;color:var(--neon-blue)}
.ws small{font:700 .75rem 'Nunito',sans-serif;color:var(--gray);text-transform:uppercase}
.missed-section{margin-bottom:20px;text-align:left}
.missed-section h3{font:700 1rem 'Orbitron',sans-serif;color:var(--neon-pink);margin-bottom:10px;text-align:center}
.missed-item{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;margin-bottom:6px;border-radius:var(--radius-sm);background:rgba(255,45,123,.1);border-left:3px solid var(--neon-pink)}
.missed-item .mi-correct{color:var(--neon-green);font-weight:800;letter-spacing:1px}
.win-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.win-buttons .big-btn{background:linear-gradient(135deg,var(--neon-blue),var(--neon-purple))}

/* ===== CONFETTI ===== */
.confetti{position:fixed;top:-10px;pointer-events:none;z-index:9999;animation:confettiFall var(--dur,3s) ease-in forwards}
.confetti.shape-rect{width:8px;height:8px;border-radius:2px}
.confetti.shape-circle{width:8px;height:8px;border-radius:50%}
.confetti.shape-star{width:0;height:0;font-size:12px;background:none!important}
@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg)}100%{transform:translateY(105vh) rotate(var(--rot,720deg));opacity:0}}

/* ===== CUSTOMIZE FAMILY ===== */
.customize-wrap{max-width:550px;width:100%;text-align:center}
.customize-sub{color:var(--gray);margin-bottom:20px}
.crew-edit-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}
.crew-edit-row{display:flex;align-items:center;gap:12px;background:var(--card);border-radius:var(--radius-sm);padding:12px 16px}
.crew-emoji-pick{font-size:2.2rem;background:none;border:2px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);cursor:pointer;padding:6px 10px;transition:.2s;line-height:1}
.crew-emoji-pick:hover{border-color:var(--neon-blue);background:rgba(0,212,255,.1)}
.crew-name-input{flex:1;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:var(--white);font:700 1rem 'Nunito',sans-serif}
.crew-role-hint{font-size:.7rem;color:var(--gray);min-width:60px;text-align:right}
.text-btn{background:none;border:none;color:var(--neon-blue);font:700 .9rem 'Nunito',sans-serif;cursor:pointer;padding:8px;margin-top:8px;transition:.2s}
.text-btn:hover{color:var(--neon-yellow);text-decoration:underline}

/* ===== ANSWER LAYOUT VARIANTS ===== */
.choice-layout-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.choice-layout-pill{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.choice-layout-pill .choice-btn{border-radius:50px;padding:12px 28px;min-width:90px}
.choice-layout-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:380px;margin:12px auto}
.choice-layout-grid .choice-btn{width:100%;min-width:unset}
.choice-layout-large{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.choice-layout-large .choice-btn{padding:18px 32px;font-size:1.6rem;min-width:100px;border-width:3px}

/* ===== TOGGLE SWITCH ===== */
.option-row{margin:12px auto;text-align:center}
.toggle-label{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font:700 .95rem 'Nunito',sans-serif;color:var(--gray)}
.toggle-label input{display:none}
.toggle-slider{position:relative;width:44px;height:24px;background:#333;border-radius:12px;transition:.3s;flex-shrink:0}
.toggle-slider::after{content:'';position:absolute;left:3px;top:3px;width:18px;height:18px;background:#888;border-radius:50%;transition:.3s}
.toggle-label input:checked + .toggle-slider{background:var(--neon-green)}
.toggle-label input:checked + .toggle-slider::after{transform:translateX(20px);background:#fff}

/* ===== DIGRAPH PICKER ===== */
.digraph-choices{display:flex;gap:16px;justify-content:center;margin:16px 0}
.digraph-btn{font:900 1.6rem 'Nunito',sans-serif;min-width:80px;padding:16px 24px;border:3px solid rgba(255,255,255,.2);border-radius:16px;background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:.2s;letter-spacing:2px;text-transform:lowercase}
.digraph-btn:hover{background:rgba(255,255,255,.12);transform:scale(1.05)}
.digraph-btn.correct{background:var(--neon-green);color:#000;border-color:var(--neon-green);transform:scale(1.1)}
.digraph-btn.wrong{background:var(--neon-pink);border-color:var(--neon-pink);animation:headShake .5s}

/* ===== LINE MATCHING ===== */
.line-match-area{display:flex;justify-content:center;gap:0;margin:16px auto;max-width:420px;position:relative}
.line-match-col{display:flex;flex-direction:column;gap:14px;z-index:2}
.line-match-item{font:700 1rem 'Nunito',sans-serif;padding:10px 16px;border:2px solid rgba(255,255,255,.2);border-radius:12px;background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:.2s;text-align:center;min-width:70px;user-select:none}
.line-match-item.match-word{letter-spacing:2px;font-family:'Orbitron','Nunito',sans-serif;font-size:.9rem;min-width:90px}
.line-match-item.match-pattern{background:rgba(100,200,255,.1);border-color:rgba(100,200,255,.3);font-size:1.1rem;font-weight:900}
.line-match-item:hover{background:rgba(255,255,255,.12)}
.line-match-item.selected{border-color:var(--neon-yellow);box-shadow:0 0 10px rgba(255,215,0,.4)}
.line-match-item.matched{border-color:var(--neon-green);background:rgba(57,255,20,.1);opacity:.7;pointer-events:none}
.line-match-item.wrong{border-color:var(--neon-pink);animation:headShake .5s}
.line-match-svg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}
.line-match-svg line{stroke:var(--neon-green);stroke-width:2;stroke-dasharray:6 4;opacity:.7}
.line-match-spacer{width:60px;flex-shrink:0}
.match-instruction{font:700 1.1rem 'Nunito',sans-serif;color:var(--neon-yellow);text-shadow:0 0 8px rgba(255,215,0,.3)}

/* ===== BUBBLE POP ===== */
.bubble-grid{display:grid;gap:12px;justify-content:center;margin:16px auto;max-width:340px}
.bubble-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.bubble-cell{aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.3),rgba(100,200,255,.2) 60%,rgba(0,100,200,.12));border:2px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font:900 1.3rem 'Nunito',sans-serif;color:#fff;cursor:pointer;transition:.3s;user-select:none;position:relative;min-width:56px;min-height:56px;text-shadow:0 1px 4px rgba(0,0,0,.4)}
.bubble-cell::after{content:'';position:absolute;top:18%;left:22%;width:28%;height:18%;background:rgba(255,255,255,.35);border-radius:50%;transform:rotate(-30deg);pointer-events:none}
.bubble-cell:hover{transform:scale(1.1);border-color:rgba(255,255,255,.5);background:radial-gradient(circle at 35% 35%,rgba(255,255,255,.38),rgba(100,200,255,.25) 60%,rgba(0,100,200,.15))}
.bubble-cell.popped{background:rgba(255,255,255,.03);border-color:rgba(255,255,255,.08);cursor:default;transform:scale(.88);animation:bubblePop .3s ease-out}
.bubble-cell.popped::after{display:none}
.bubble-cell.popped.correct-reveal{border-color:var(--neon-green);color:var(--neon-green);text-shadow:0 0 10px rgba(57,255,20,.6)}
.bubble-cell.popped.chain-pop{opacity:.3;color:rgba(255,255,255,.4);text-shadow:none}
.bubble-cell.bubble-wobble{animation:bubbleWobble .4s ease-in-out;border-color:var(--neon-pink);color:var(--neon-pink)}
@keyframes bubblePop{0%{transform:scale(1.15)}50%{transform:scale(.82)}100%{transform:scale(.88)}}
@keyframes bubbleWobble{0%,100%{transform:translateX(0) rotate(0)}20%{transform:translateX(-8px) rotate(-5deg)}40%{transform:translateX(8px) rotate(5deg)}60%{transform:translateX(-5px) rotate(-3deg)}80%{transform:translateX(5px) rotate(3deg)}}

/* ===== MEMORY MATCH MINI-GAME ===== */
.mg-memory-grid-wrap{max-width:360px;margin:0 auto}
#mg-memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:16px}
.memory-card{aspect-ratio:0.75;border-radius:12px;cursor:pointer;perspective:600px;position:relative}
.memory-card .memory-front,.memory-card .memory-back{position:absolute;inset:0;border-radius:12px;display:flex;align-items:center;justify-content:center;backface-visibility:hidden;transition:transform .4s;font-size:.75rem;font-weight:700;padding:6px;text-align:center;word-break:break-word}
.memory-card .memory-front{background:linear-gradient(135deg,rgba(0,212,255,.2),rgba(180,77,255,.2));border:2px solid rgba(255,255,255,.2);font-size:1.5rem}
.memory-card .memory-back{background:var(--card);border:2px solid var(--neon-blue);transform:rotateY(180deg);color:var(--white)}
.memory-card.flipped .memory-front{transform:rotateY(180deg)}
.memory-card.flipped .memory-back{transform:rotateY(0deg)}
.memory-card.matched{opacity:.6;pointer-events:none}
.memory-card.matched .memory-back{border-color:var(--neon-green);box-shadow:0 0 10px rgba(57,255,20,.3)}
#mg-memory-score{font:700 .9rem 'Orbitron',sans-serif;color:var(--neon-blue);margin:8px 0}

/* ===== SIGNAL DECODER MINI-GAME ===== */
#mg-signal-encoded{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:12px 0;font-size:1.8rem}
.signal-code{transition:.3s;padding:4px 8px;border-radius:8px;border:2px solid transparent;min-width:36px;text-align:center}
.signal-code.signal-active{border-color:var(--neon-yellow);background:rgba(255,215,0,.1);animation:signalPulse 1s ease-in-out infinite}
.signal-code.signal-decoded{opacity:.5;font-size:1rem;font-weight:700;font-family:'Orbitron',sans-serif;color:var(--neon-green)}
@keyframes signalPulse{0%,100%{box-shadow:0 0 5px rgba(255,215,0,.2)}50%{box-shadow:0 0 15px rgba(255,215,0,.4)}}
#mg-signal-key{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:12px 0;padding:10px;border-radius:var(--radius);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
.signal-key-title{width:100%;text-align:center;font:700 .7rem 'Orbitron',sans-serif;color:var(--neon-orange);margin-bottom:4px}
.signal-pair{font-size:.85rem;padding:4px 10px;border-radius:8px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}
.signal-pair b{color:var(--neon-green)}
#mg-signal-choices{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:16px 0}
#mg-signal-progress{font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin:8px 0}

/* ===== BALLOON BLAST MINI-GAME ===== */
.balloon-mg-wrap{display:flex;flex-direction:column;align-items:center;position:relative;overflow:hidden}
.balloon-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin:4px 0 8px}
#mg-balloon-prompt-box{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);padding:8px 14px;font:600 .9rem 'Nunito',sans-serif;color:#dde;text-align:center;max-width:340px;margin-bottom:8px;min-height:36px}
.balloon-prompt-label{font:700 .75rem 'Orbitron',sans-serif;color:var(--neon-pink);margin-right:6px}
#mg-balloon-arena{position:relative;width:100%;max-width:480px;height:300px;margin:0 auto;overflow:hidden;border-radius:12px;background:linear-gradient(180deg,rgba(10,10,30,.6) 0%,rgba(20,20,60,.8) 100%);border:1px solid rgba(255,255,255,.1)}
.balloon-obj{position:absolute;bottom:-60px;display:flex;flex-direction:column;align-items:center;cursor:pointer;user-select:none;animation:balloonFloat linear forwards;transform-origin:center bottom}
.balloon-obj:hover .balloon-body{filter:brightness(1.3)}
.balloon-body{width:52px;height:64px;border-radius:50% 50% 48% 48%;display:flex;align-items:center;justify-content:center;font:700 .8rem 'Nunito',sans-serif;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.8);box-shadow:inset 0 -8px 12px rgba(0,0,0,.3),0 4px 10px rgba(0,0,0,.4);text-align:center;padding:4px;word-break:break-word;line-height:1.1}
.balloon-string{width:1px;height:18px;background:rgba(255,255,255,.4)}
.balloon-pop{animation:balloonPop .3s forwards !important}
.balloon-miss{animation:balloonMiss .4s forwards !important}
@keyframes balloonFloat{0%{bottom:-60px;opacity:1}100%{bottom:110%;opacity:.7}}
@keyframes balloonPop{0%{transform:scale(1);opacity:1}50%{transform:scale(1.6);opacity:.8}100%{transform:scale(0);opacity:0}}
@keyframes balloonMiss{0%{opacity:1}100%{opacity:0;transform:translateY(-20px)}}

/* ===== RHYME TIME MODE ===== */
.rhyme-prompt{font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-pink);margin-bottom:4px}
.rhyme-instruction{font:700 .85rem 'Orbitron',sans-serif;color:var(--neon-pink);margin-bottom:6px;text-align:center}
.rhyme-instruction strong{color:#fff}
.rhyme-target{font:900 2rem 'Orbitron',sans-serif;color:#fff;text-shadow:0 0 16px rgba(255,107,180,.5);margin:4px 0 8px}
.rhyme-hint-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:4px}
.rhyme-audio{margin-bottom:4px}
.choice-speaker{font-size:.65rem;opacity:.5;margin-left:6px;cursor:pointer;display:inline-block}
.choice-speaker:hover{opacity:1}
.choice-btn{display:flex;align-items:center;justify-content:center;gap:4px}

/* ===== DEFINITION MATCH MODE ===== */
.defmatch-instruction{font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
.defmatch-area{display:flex;gap:12px;width:100%;max-width:440px;margin:0 auto}
.defmatch-col{flex:1;display:flex;flex-direction:column;gap:8px}
.defmatch-item{background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.15);border-radius:var(--radius);padding:8px 10px;font:600 .8rem 'Nunito',sans-serif;color:#dde;cursor:pointer;transition:.2s;display:flex;align-items:center;gap:6px;min-height:38px}
.defmatch-item:hover{border-color:var(--neon-blue);background:rgba(0,212,255,.08)}
.defmatch-item.selected{border-color:var(--neon-blue);background:rgba(0,212,255,.15);box-shadow:0 0 8px rgba(0,212,255,.3)}
.defmatch-item.matched{border-color:var(--neon-green);background:rgba(57,255,20,.1);opacity:.7;pointer-events:none}
.defmatch-item.wrong{border-color:var(--neon-pink);background:rgba(255,45,123,.15);animation:shake .3s}
.defmatch-text{flex:1}
.defmatch-speaker{background:none;border:none;font-size:.75rem;cursor:pointer;opacity:.5;padding:2px 4px}
.defmatch-speaker:hover{opacity:1}
.defmatch-word .defmatch-text{font:700 .9rem 'Orbitron',sans-serif;color:#fff}
.defmatch-def .defmatch-text{font-style:italic;font-size:.75rem;line-height:1.3}

/* ===== COOKING CHALLENGE MINI-GAME ===== */
.cooking-mg-wrap{text-align:center}

/* ===== CLOZE PASSAGE MODE ===== */
.cloze-instruction{font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-orange);margin-bottom:8px;text-align:center}
.cloze-passage{max-width:440px;margin:0 auto 12px;text-align:left}
.cloze-line{font:600 .85rem 'Nunito',sans-serif;color:rgba(255,255,255,.45);padding:8px 10px;margin:4px 0;border-radius:var(--radius);background:rgba(255,255,255,.03);transition:.3s;display:flex;align-items:center;gap:6px;line-height:1.5}
.cloze-line.cloze-active{color:#fff;background:rgba(255,255,255,.08);border-left:3px solid var(--neon-orange)}
.cloze-line.cloze-done{color:rgba(57,255,20,.8);background:rgba(57,255,20,.05)}
.cloze-blank{display:inline-block;min-width:50px;border-bottom:2px dashed var(--neon-orange);color:var(--neon-orange);font:700 .9rem 'Orbitron',sans-serif;text-align:center;padding:0 4px;margin:0 2px;transition:.3s}
.cloze-blank.cloze-filled{border-bottom-color:var(--neon-green);color:var(--neon-green);border-bottom-style:solid}
.cloze-speaker{background:none;border:none;font-size:.7rem;cursor:pointer;opacity:.4;padding:2px;flex-shrink:0}
.cloze-speaker:hover{opacity:1}
.cloze-choices{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:400px;margin:0 auto}

/* ===== ROOT WORD BUILDER MODE ===== */
.rootword-instruction{font:700 .85rem 'Orbitron',sans-serif;color:var(--neon-yellow);margin-bottom:4px;text-align:center}
.rootword-hint{font:600 .8rem 'Nunito',sans-serif;color:#dde;margin-bottom:10px;text-align:center;font-style:italic}
.rootword-equation{display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0;flex-wrap:wrap}
.rootword-slot{padding:8px 14px;border-radius:var(--radius);font:700 1rem 'Orbitron',sans-serif;color:#fff;border:2px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);min-width:50px;text-align:center;transition:.3s}
.rootword-affix-slot{border-color:var(--neon-yellow);color:var(--neon-yellow)}
.rootword-root-slot{border-color:var(--neon-blue);color:var(--neon-blue)}
.rootword-result{border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.4)}
.rootword-result.cloze-filled{border-color:var(--neon-green);color:var(--neon-green)}
.rootword-affix-slot.cloze-filled{border-color:var(--neon-green);color:var(--neon-green)}
.rootword-plus,.rootword-equals{font:700 1.2rem 'Orbitron',sans-serif;color:rgba(255,255,255,.4)}
.rootword-audio{margin-top:6px}
.rootword-choice{display:flex;align-items:center;gap:6px}
.rw-choice-part{font:700 1rem 'Orbitron',sans-serif;color:var(--neon-yellow)}
.rw-choice-meaning{font:600 .7rem 'Nunito',sans-serif;color:rgba(255,255,255,.5);font-style:italic}

/* ===== ZERO GRAVITY MINI-GAME ===== */
.zerog-mg-wrap{text-align:center}
.zerog-hud{display:flex;justify-content:space-between;width:100%;max-width:380px;margin:0 auto;font:700 .75rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:6px}
.zerog-target{font:600 .85rem 'Nunito',sans-serif;color:#dde;margin:4px 0;padding:6px 12px;border-radius:var(--radius);background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;gap:8px}
.zerog-slots{display:flex;justify-content:center;gap:4px;margin:8px 0}
.zerog-slot{width:30px;height:38px;border:2px dashed rgba(255,255,255,.25);border-radius:6px;display:flex;align-items:center;justify-content:center;font:700 1.1rem 'Orbitron',sans-serif;color:#fff;transition:.2s}
.zerog-slot.filled{border-color:var(--neon-green);background:rgba(57,255,20,.12);border-style:solid}
.zerog-field{position:relative;width:100%;max-width:480px;height:240px;margin:0 auto;border-radius:var(--radius);background:radial-gradient(ellipse at center,rgba(0,212,255,.04),transparent 70%);overflow:hidden;border:1px solid rgba(255,255,255,.06)}
.zerog-letter{position:absolute;width:36px;height:36px;border-radius:50%;border:2px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font:700 1rem 'Orbitron',sans-serif;color:#fff;cursor:pointer;transition:background .15s,border-color .15s;user-select:none;touch-action:manipulation}
.zerog-letter:hover{border-color:var(--neon-green);background:rgba(57,255,20,.15)}
.zerog-letter.caught{background:rgba(57,255,20,.3);border-color:var(--neon-green);pointer-events:none;opacity:.3;transform:scale(.5);transition:.4s}
.zerog-letter.wrong-catch{background:rgba(255,45,123,.3);border-color:var(--neon-pink);animation:shake .3s}

/* ===== SHIP REPAIR MINI-GAME ===== */
.repair-mg-wrap{text-align:center}
.repair-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;margin:0 auto;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
.repair-ship{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:8px 0;min-height:60px}
.repair-part{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;border-radius:var(--radius);border:2px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);transition:.3s;min-width:50px}
.repair-part .part-emoji{font-size:1.6rem;filter:grayscale(1) brightness(.4);transition:filter .4s}
.repair-part .part-label{font:600 .6rem 'Nunito',sans-serif;color:rgba(255,255,255,.4);transition:color .3s}
.repair-part.fixed .part-emoji{filter:none}
.repair-part.fixed .part-label{color:var(--neon-green)}
.repair-part.fixed{border-color:var(--neon-green);background:rgba(57,255,20,.05)}
.repair-part.active{border-color:var(--neon-orange);background:rgba(255,165,0,.08);animation:repairPulse 1.5s infinite}
@keyframes repairPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 12px rgba(255,165,0,.25)}}
.repair-prompt{font:600 .85rem 'Nunito',sans-serif;color:#dde;margin:8px 0;padding:6px 12px;border-radius:var(--radius);background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;gap:8px}
.repair-prompt .repair-speaker{background:none;border:none;font-size:.85rem;cursor:pointer;opacity:.6}
.repair-prompt .repair-speaker:hover{opacity:1}
.repair-word-display{display:flex;justify-content:center;gap:4px;margin:8px 0}
.repair-choices{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;max-width:400px;margin:0 auto}

/* ===== TEMPLE SPRINT (Runner) MINI-GAME ===== */
.runner-mg-wrap{text-align:center}
.runner-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;margin:0 auto;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
.runner-field{position:relative;width:100%;max-width:420px;height:180px;margin:10px auto;background:linear-gradient(180deg,rgba(30,10,50,.8),rgba(60,20,80,.5));border-radius:var(--radius);border:1px solid rgba(255,255,255,.1);overflow:hidden;display:flex;align-items:center;justify-content:center}
.runner-avatar{font-size:2.5rem;z-index:2;animation:runnerBounce .6s infinite alternate}
@keyframes runnerBounce{0%{transform:translateY(0)}100%{transform:translateY(-8px)}}
.runner-obstacle{position:absolute;font-size:1.8rem;bottom:10px;animation:runnerSlide .8s ease-in forwards;z-index:1}
@keyframes runnerSlide{0%{top:-30px;opacity:0}30%{opacity:1}100%{top:80%;opacity:.6}}
.runner-prompt{font:700 1rem 'Orbitron',sans-serif;color:#eef;margin:8px 0;letter-spacing:4px}
.runner-next-letter{color:var(--neon-orange);font-size:1.2em;text-shadow:0 0 8px rgba(255,165,0,.5)}
.runner-lanes{display:flex;gap:10px;justify-content:center;margin:10px auto}
.runner-lane-btn{font:700 1.3rem 'Orbitron',sans-serif;width:80px;height:80px;border-radius:var(--radius);border:2px solid var(--neon-blue);background:rgba(0,195,255,.08);color:#eef;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center}
.runner-lane-btn:hover:not(:disabled){background:rgba(0,195,255,.2);transform:scale(1.08);box-shadow:0 0 12px rgba(0,195,255,.3)}
.runner-lane-btn:disabled{opacity:.5;cursor:default}
#mg-runner-feedback{font:600 .85rem 'Nunito',sans-serif;margin:8px 0;min-height:24px}

/* ===== LETTER LEAP (Frogger) MINI-GAME ===== */
.frogger-mg-wrap{text-align:center}
.frogger-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;margin:0 auto;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
#mg-frogger-word-display{font:700 1rem 'Orbitron',sans-serif;color:#eef;letter-spacing:4px;margin-bottom:8px}
.frogger-next{color:var(--neon-orange);font-size:1.2em;text-shadow:0 0 8px rgba(255,165,0,.5)}
.frogger-river{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px auto;max-width:380px}
.frogger-pad{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 14px;border-radius:50%;border:2px solid rgba(57,255,20,.3);background:rgba(57,255,20,.06);cursor:pointer;transition:.3s;min-width:60px;animation:froggerFloat 2.5s ease-in-out infinite alternate}
.frogger-pad:hover:not(:disabled){background:rgba(57,255,20,.15);transform:scale(1.1);box-shadow:0 0 14px rgba(57,255,20,.2)}
.frogger-pad:disabled{opacity:.5;cursor:default}
.pad-lily{font-size:1.4rem}
.pad-letter{font:700 1.1rem 'Orbitron',sans-serif;color:#eef}
.frogger-pad.frogger-correct{border-color:var(--neon-green);background:rgba(57,255,20,.2);animation:none;transform:scale(1.15)}
.frogger-pad.frogger-wrong{border-color:var(--neon-pink);background:rgba(255,45,123,.15);animation:shake .3s}
@keyframes froggerFloat{0%{transform:translateY(0)}100%{transform:translateY(-6px)}}
#mg-frogger-feedback{font:600 .85rem 'Nunito',sans-serif;margin:8px 0;min-height:24px}

/* ===== WORD SEARCH MINI-GAME ===== */
.ws-mg-wrap{text-align:center}
.ws-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;margin:0 auto;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
#mg-ws-grid{display:grid;gap:3px;max-width:320px;margin:8px auto}
.ws-cell{font:700 .85rem 'Orbitron',sans-serif;width:100%;aspect-ratio:1;border:1px solid rgba(255,255,255,.12);border-radius:4px;background:rgba(255,255,255,.04);color:#ccd;cursor:pointer;transition:.2s;display:flex;align-items:center;justify-content:center}
.ws-cell:hover{background:rgba(0,195,255,.12);border-color:var(--neon-blue)}
.ws-cell.ws-selected{background:rgba(0,195,255,.2);border-color:var(--neon-blue);color:#fff;box-shadow:0 0 6px rgba(0,195,255,.3)}
.ws-cell.ws-cell-found{background:rgba(57,255,20,.15);border-color:var(--neon-green);color:var(--neon-green);pointer-events:none}
#mg-ws-wordlist{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:8px 0}
.ws-word-item{font:600 .75rem 'Nunito',sans-serif;padding:3px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.15);color:#aab;transition:.3s}
.ws-word-item.ws-found{border-color:var(--neon-green);color:var(--neon-green);text-decoration:line-through;opacity:.6}
#mg-ws-feedback{font:600 .85rem 'Nunito',sans-serif;margin:8px 0;min-height:24px}

/* ===== LETTER ARCHER MINI-GAME ===== */
.archer-mg-wrap{text-align:center}
.archer-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;margin:0 auto;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
#mg-archer-word{font:700 1rem 'Orbitron',sans-serif;color:#eef;letter-spacing:4px;margin-bottom:8px}
.archer-next{color:var(--neon-orange);font-size:1.2em;text-shadow:0 0 8px rgba(255,165,0,.5)}
#mg-archer-sky{position:relative;width:100%;max-width:480px;height:240px;margin:8px auto;background:linear-gradient(180deg,rgba(10,10,40,.6),rgba(30,15,60,.4));border-radius:var(--radius);border:1px solid rgba(255,255,255,.1);overflow:hidden}
.archer-target{position:absolute;font:700 1.1rem 'Orbitron',sans-serif;padding:8px 14px;border-radius:50%;border:2px solid rgba(255,199,0,.4);background:rgba(255,199,0,.08);color:#ffe;cursor:pointer;transition:.2s;animation:archerFloat linear infinite;left:-50px}
.archer-target:hover{background:rgba(255,199,0,.2);transform:scale(1.15);box-shadow:0 0 12px rgba(255,199,0,.3)}
.archer-target.archer-hit{border-color:var(--neon-green);background:rgba(57,255,20,.25);pointer-events:none;animation:none;transform:scale(1.3);opacity:0;transition:.5s}
.archer-target.archer-miss{animation:shake .3s}
@keyframes archerFloat{0%{left:-50px}100%{left:calc(100% + 50px)}}
#mg-archer-bow{font-size:2rem;margin:8px 0}
#mg-archer-feedback{font:600 .85rem 'Nunito',sans-serif;margin:8px 0;min-height:24px}

/* ===== BLOCK BREAKER (Sliding Puzzle) MINI-GAME ===== */
.blocks-mg-wrap{text-align:center}
.blocks-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;margin:0 auto;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
#mg-blocks-target{font:700 .9rem 'Orbitron',sans-serif;color:#eef;margin-bottom:4px}
#mg-blocks-hint{font:500 .7rem 'Nunito',sans-serif;color:rgba(255,255,255,.5);margin-bottom:8px}
#mg-blocks-grid{display:grid;gap:6px;max-width:350px;margin:10px auto;justify-content:center}
.block-tile{font:700 1.3rem 'Orbitron',sans-serif;padding:14px;border-radius:var(--radius);border:2px solid rgba(0,195,255,.3);background:rgba(0,195,255,.06);color:#eef;cursor:pointer;transition:.25s;min-width:40px}
.block-tile:hover{background:rgba(0,195,255,.15);transform:scale(1.08);box-shadow:0 0 10px rgba(0,195,255,.25)}
.block-tile.block-selected{border-color:var(--neon-orange);background:rgba(255,165,0,.15);box-shadow:0 0 14px rgba(255,165,0,.3);transform:scale(1.1)}
.block-tile.block-correct{border-color:var(--neon-green);background:rgba(57,255,20,.1)}
#mg-blocks-feedback{font:600 .85rem 'Nunito',sans-serif;margin:8px 0;min-height:24px}

/* ===== COOKING HUD ===== */
.cooking-hud{display:flex;justify-content:space-between;width:100%;max-width:360px;margin:0 auto;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue);margin-bottom:8px}
.cooking-recipe{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:6px 0;min-height:40px}
.cooking-recipe-item{display:flex;flex-direction:column;align-items:center;font:600 .65rem 'Nunito',sans-serif;color:#8a8;opacity:.4;transition:.3s}
.cooking-recipe-item.added{opacity:1;color:var(--neon-green);transform:scale(1.1)}
.cooking-recipe-item .recipe-emoji{font-size:1.4rem}
.cooking-prompt{font:600 .85rem 'Nunito',sans-serif;color:#dde;margin:8px 0;padding:6px 12px;border-radius:var(--radius);background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;gap:8px}
.cooking-prompt .cook-speaker{background:none;border:none;font-size:.85rem;cursor:pointer;opacity:.6}
.cooking-prompt .cook-speaker:hover{opacity:1}
.cooking-word-display{display:flex;justify-content:center;gap:4px;margin:10px 0}
.cooking-slot{width:28px;height:36px;border:2px dashed rgba(255,255,255,.25);border-radius:6px;display:flex;align-items:center;justify-content:center;font:700 1.1rem 'Orbitron',sans-serif;color:#fff;transition:.2s}
.cooking-slot.filled{border-color:var(--neon-green);background:rgba(57,255,20,.1)}
.cooking-letters{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;margin:10px 0;max-width:340px}
.cooking-letter-btn{width:38px;height:42px;border-radius:8px;border:2px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font:700 1rem 'Orbitron',sans-serif;cursor:pointer;transition:.15s}
.cooking-letter-btn:hover{border-color:var(--neon-green);background:rgba(57,255,20,.1)}
.cooking-letter-btn.used{opacity:.25;pointer-events:none}
.cooking-letter-btn.wrong{border-color:var(--neon-pink);animation:shake .3s}

/* ===== REWARD EFFECTS ===== */
.mech-hint{background:rgba(57,255,20,.2) !important;border-color:var(--neon-green) !important;box-shadow:0 0 12px rgba(57,255,20,.4);transition:.15s}
.shadow-dim{opacity:.25;filter:blur(1px);transition:opacity 1s,filter 1s}

/* ===== RESOURCE BARS ===== */
.resource-bars-mini,.resource-bars-full{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:6px 0}
.resource-bar{display:flex;align-items:center;gap:4px;font:700 .7rem 'Nunito',sans-serif;color:#fff}
.resource-bars-full .resource-bar{gap:6px;font-size:.85rem;flex:1;min-width:100px}
.res-icon{font-size:1rem}
.res-track{width:50px;height:8px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden;position:relative}
.resource-bars-full .res-track{width:100%;height:12px;border-radius:6px}
.res-fill{height:100%;border-radius:inherit;transition:width .4s}
.res-val{min-width:20px;text-align:right;font-size:.7rem;opacity:.8}
.resource-low .res-track{animation:resLowPulse 1s infinite}
.resource-low .res-val{color:var(--neon-pink)}
@keyframes resLowPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 8px rgba(255,107,107,.5)}}

.sys-hud-row{display:flex;align-items:center;justify-content:center;gap:16px;margin:6px 0}

/* ===== FAMILY STATUS ===== */
.family-status-row,.family-status-grid{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:8px 0}
.family-member-status{display:flex;flex-direction:column;align-items:center;gap:2px;font:600 .65rem 'Nunito',sans-serif;color:#fff;padding:4px 6px;border-radius:8px;background:rgba(255,255,255,.04);min-width:44px}
.family-member-status.fainted{opacity:.4;filter:grayscale(.7)}
.member-avatar{font-size:1.2rem}
.member-name{font-size:.55rem;opacity:.7;max-width:50px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-mood{font-size:.85rem}
.member-items{font-size:.65rem;margin-top:1px}
.member-rpg-stats{display:flex;gap:6px;margin-top:2px}
.rpg-s{font:700 .6rem 'Nunito',sans-serif;color:#adf}
.inv-item-bonus{font:700 .65rem 'Nunito',sans-serif;color:var(--neon-green)}
.crew-fainted{opacity:.3;filter:grayscale(1)}

/* ===== LOOT RESULTS ===== */
.loot-results{margin:12px 0;padding:10px 16px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1)}
.loot-header{font:700 .85rem 'Orbitron',sans-serif;color:var(--neon-yellow);margin-bottom:6px}
.loot-resources{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:6px 0}
.loot-res{font:700 1rem 'Nunito',sans-serif;color:var(--neon-green)}
.loot-item-found{font:700 .85rem 'Nunito',sans-serif;color:var(--neon-blue);margin-top:8px;animation:lootPop .5s ease-out}
.loot-tier-bonus{font:700 .75rem 'Nunito',sans-serif;color:var(--neon-yellow,#ffe600);margin-top:6px;text-align:center;letter-spacing:.02em}
.loot-faint{font:700 .8rem 'Nunito',sans-serif;color:var(--neon-pink);margin-top:6px}
@keyframes lootPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}

/* ===== FAMILY PANEL SCREEN ===== */
.family-panel-wrap{max-width:600px;margin:0 auto;padding:20px;text-align:center}
.fp-section{margin:16px 0;padding:14px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.fp-heading{font:700 .85rem 'Orbitron',sans-serif;color:var(--neon-blue);margin:0 0 10px}
.inventory-grid{text-align:left}
.inv-empty{font:600 .85rem 'Nunito',sans-serif;color:rgba(255,255,255,.4);font-style:italic}
.inv-member-section{margin:10px 0}
.inv-member-header{font:700 .85rem 'Nunito',sans-serif;color:var(--neon-yellow);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.1)}
.inv-item{display:inline-flex;flex-direction:column;align-items:center;padding:6px 10px;margin:3px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);font-size:.8rem;gap:2px}
.inv-item-name{font-weight:700}
.inv-item small{font-size:.6rem;opacity:.5}
.title-btn-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:6px}

/* ===== TITLE STATS BAR ===== */
.title-stats-bar{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin:10px 0 4px;}
.title-stat-tile{
  display:flex;flex-direction:column;align-items:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:10px;padding:6px 14px;min-width:60px;
}
.tst-icon{font-size:1.15rem;line-height:1;}
.tst-val{font-size:1.05rem;font-weight:800;color:#fff;font-family:'Orbitron',sans-serif;margin-top:2px;}
.tst-label{font-size:.6rem;color:#888;margin-top:1px;white-space:nowrap;}

/* ===== TITLE CARD NAV ROW ===== */
.title-card-row{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;
  width:100%;max-width:400px;margin:10px auto 0;
}
.title-card{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  background:rgba(255,255,255,.05);border:2px solid rgba(255,255,255,.1);
  border-radius:14px;padding:12px 10px;cursor:pointer;transition:all .2s;
  position:relative;
}
.title-card:hover{border-color:var(--neon-blue);background:rgba(0,212,255,.07);transform:translateY(-2px);}
.title-card:active{transform:scale(.97);}
.tc-icon{font-size:1.5rem;line-height:1;}
.tc-label{font-size:.76rem;font-weight:700;color:#fff;margin-top:3px;}
.tc-sub{font-size:.62rem;color:#888;}

/* ===== DONATION PANEL ===== */
.donation-panel{
  width:100%;max-width:420px;margin:12px auto 0;
  background:linear-gradient(160deg,rgba(255,215,0,.08),rgba(255,107,53,.07));
  border:1px solid rgba(255,215,0,.25);border-radius:14px;
  padding:12px 14px;
}
.donation-title{
  font:800 .9rem 'Orbitron',sans-serif;
  color:var(--neon-yellow);text-align:center;letter-spacing:.02em;
}
.donation-copy{
  margin-top:6px;font-size:.78rem;line-height:1.45;
  color:#d5d8e4;text-align:center;
}
.donation-actions{
  margin-top:10px;display:flex;gap:8px;justify-content:center;flex-wrap:wrap;
}
.donation-btn{
  text-decoration:none;
  padding:8px 12px;border-radius:10px;
  border:1px solid rgba(255,255,255,.2);
  font:700 .76rem 'Nunito',sans-serif;
  transition:.2s;
}
.donation-btn:hover{transform:translateY(-2px);filter:brightness(1.08);}
.donation-btn-venmo{
  color:#d6f0ff;background:rgba(0,148,255,.15);border-color:rgba(0,148,255,.45);
  font-size:.82rem;padding:10px 20px;
}

/* ===== PROGRESS / MISSION LOG SCREEN ===== */
.progress-wrap{max-width:650px;padding:16px 16px 40px;width:100%;}
.prog-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 20px;}
.prog-stat{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);
  border-radius:10px;padding:10px 6px;
}
.prog-stat-icon{font-size:1.3rem;}
.prog-stat-val{font-size:1.1rem;font-weight:800;color:var(--neon-yellow);font-family:'Orbitron',sans-serif;margin-top:2px;}
.prog-stat-label{font-size:.62rem;color:#999;margin-top:2px;}
.prog-galaxies{display:flex;flex-direction:column;gap:10px;}
.prog-galaxy{
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1);
  border-radius:14px;padding:14px;
}
.prog-galaxy.locked{opacity:.4;}
.prog-gal-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.prog-gal-emoji{font-size:2rem;flex-shrink:0;}
.prog-gal-info{flex:1;text-align:left;}
.prog-gal-name{font-family:'Orbitron',sans-serif;font-size:.82rem;font-weight:700;color:#fff;display:block;}
.prog-grade-tag{font-size:.65rem;opacity:.5;font-family:'Nunito',sans-serif;font-weight:600;}
.prog-gal-sub{font-size:.68rem;color:#999;display:block;margin-top:3px;}
.prog-gal-badge{
  font-size:.68rem;font-weight:700;color:var(--neon-yellow);
  background:rgba(255,230,109,.1);border:1px solid rgba(255,230,109,.25);
  border-radius:8px;padding:4px 9px;white-space:nowrap;flex-shrink:0;
}
.prog-planet-grid{display:flex;gap:5px;flex-wrap:wrap;}
.prog-planet{
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:.8rem;background:rgba(255,255,255,.05);
  border:2px solid rgba(255,255,255,.1);transition:.2s;
  color:rgba(255,255,255,.25);
}
.prog-planet.complete{background:rgba(0,200,100,.12);border-color:rgba(0,200,100,.4);color:#0c8;}
.prog-planet.perfect{
  background:rgba(255,230,109,.12);border-color:var(--neon-yellow);
  color:var(--neon-yellow);box-shadow:0 0 8px rgba(255,230,109,.3);
}

/* ===== RESPONSIVE ===== */
@media(max-width:600px){
  .game-title{font-size:2rem}.title-rocket{font-size:60px}
  .crew-member span{font-size:2rem}
  .sys-card{width:160px;padding:16px 10px}
  .sys-card .sys-desc{display:none}
  .word-display{font-size:1.6rem;letter-spacing:4px}
  .choice-btn{min-width:60px;padding:10px 16px;font-size:1.1rem}
  .challenge-card{padding:16px}
  .stage{height:130px}
  .player-select{flex-direction:column;align-items:center}
  .mg-field{height:220px}
  .dodge-field{height:250px}
  .tractor-field{height:240px}
  .choice-layout-large .choice-btn{padding:14px 24px;font-size:1.3rem}
  .crew-edit-row{padding:10px 12px}
  .crew-emoji-pick{font-size:1.8rem}
  .digraph-btn{font-size:1.3rem;padding:12px 18px;min-width:64px}
  .line-match-item{font-size:.85rem;padding:8px 10px;min-width:56px}
  .line-match-spacer{width:36px}
  .bubble-cell{min-width:48px;min-height:48px;font-size:1.1rem}
  .planet-node{min-width:60px;padding:6px 8px}
  .planet-node .p-icon{font-size:1.6rem}
  .tier-row{gap:8px}
  #mg-memory-grid{grid-template-columns:repeat(4,1fr);gap:6px;padding:10px}
  #mg-signal-encoded{font-size:1.4rem}
  .signal-code{min-width:28px;padding:2px 4px}
  .resource-bars-mini .res-track{width:36px;height:6px}
  .resource-bars-mini .res-icon{font-size:.8rem}
  .family-member-status{min-width:36px;padding:3px 4px}
  .member-avatar{font-size:1rem}
  .loot-results{padding:8px 10px}
  .title-btn-row{flex-direction:column;align-items:center;gap:6px}
  .donation-actions{flex-direction:column;align-items:stretch}
  .donation-btn{text-align:center}
}

/* ===== SUPPLY STATION ===== */
.map-supply-btn-row{text-align:center;margin:8px 0}
.supply-station-btn{
  background:linear-gradient(135deg,#ff9f43,#54a0ff,#5f27cd);
  border:none;border-radius:12px;color:#fff;font-size:1rem;
  padding:10px 28px;cursor:pointer;font-weight:700;
  box-shadow:0 2px 12px rgba(255,159,67,.3);
  animation:supplyGlow 2s ease-in-out infinite alternate;
}
@keyframes supplyGlow{
  0%{box-shadow:0 2px 12px rgba(255,159,67,.3)}
  100%{box-shadow:0 4px 20px rgba(84,160,255,.5)}
}
.supply-station-btn:active{transform:scale(.96)}

.supply-station-wrap{
  max-width:420px;margin:0 auto;padding:24px 16px;text-align:center;
}
.supply-sub{color:#8892b0;margin:4px 0 12px;font-size:.95rem}
.supply-family-alert{margin:10px 0;text-align:left}
.supply-alert-line{
  background:rgba(255,100,100,.12);border-left:3px solid #ff6b6b;
  padding:6px 10px;margin:4px 0;border-radius:0 8px 8px 0;
  font-size:.85rem;color:#ffd;
}
.supply-missions{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.supply-card{
  display:flex;flex-direction:column;align-items:center;gap:4px;
  padding:18px 16px;border-radius:14px;cursor:pointer;
  border:2px solid transparent;transition:all .2s;
}
.supply-card:active{transform:scale(.97)}
.supply-food{background:linear-gradient(135deg,#ff9f4322,#ff6b3511);border-color:#ff9f4344}
.supply-water{background:linear-gradient(135deg,#54a0ff22,#0abde311);border-color:#54a0ff44}
.supply-oxygen{background:linear-gradient(135deg,#5f27cd22,#6c5ce711);border-color:#5f27cd44}
.supply-card-icon{font-size:2rem}
.supply-card-title{font-family:'Orbitron',sans-serif;font-size:1.1rem;font-weight:700;color:#e6f1ff}
.supply-card-desc{font-size:.85rem;color:#8892b0}
.supply-card-reward{font-size:.8rem;color:#64ffda;font-weight:600;margin-top:4px}

/* Supply Mission Screen */
.supply-mission-wrap{max-width:420px;margin:0 auto;padding:20px 16px}
.sm-header{
  display:flex;align-items:center;gap:10px;
  margin-bottom:16px;justify-content:center;
}
.sm-icon{font-size:1.6rem}
.sm-title{font-family:'Orbitron',sans-serif;font-size:1.1rem;font-weight:700;color:#e6f1ff}
.sm-progress{color:#8892b0;font-size:.9rem;margin-left:auto}
.sm-resource-preview{
  text-align:center;margin-bottom:12px;
  background:rgba(100,255,218,.08);border-radius:10px;padding:6px 12px;
}
.sm-res-icon{font-size:1.2rem}
.sm-res-earned{color:#64ffda;font-weight:700;font-size:1rem}
.sm-question-card{
  background:rgba(255,255,255,.04);border-radius:14px;
  padding:20px 16px;margin-bottom:12px;
}
.sm-question{font-size:1.15rem;color:#e6f1ff;margin-bottom:12px;line-height:1.5}
.sm-spell-prompt{font-size:.9rem;color:#8892b0;margin-bottom:6px}
.sm-spell-def{font-size:1rem;color:#ccd6f6;margin-bottom:10px;font-style:italic}
.sm-audio{margin-bottom:8px}
.sm-hint{margin:8px 0}
.sm-hint-btn{
  background:rgba(255,200,50,.12);border:1px solid #ffc83255;
  border-radius:8px;padding:6px 14px;color:#ffd;cursor:pointer;font-size:.85rem;
}
.sm-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sm-choice-btn{
  background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.12);
  border-radius:10px;padding:14px 10px;color:#e6f1ff;font-size:1rem;
  cursor:pointer;transition:all .15s;font-weight:600;
}
.sm-choice-btn:hover:not(:disabled){background:rgba(255,255,255,.1);border-color:#64ffda55}
.sm-choice-btn:active:not(:disabled){transform:scale(.96)}
.sm-choice-btn.correct{background:rgba(100,255,100,.2);border-color:#4caf50;color:#4caf50}
.sm-choice-btn.wrong{background:rgba(255,100,100,.2);border-color:#ff5252;color:#ff5252}
.sm-fact{margin-top:12px}
.sm-fact-box{
  background:rgba(100,200,255,.1);border:1px solid #54a0ff44;
  border-radius:10px;padding:10px 14px;font-size:.85rem;color:#b0d4ff;
  text-align:left;line-height:1.5;
}
.sm-feedback{text-align:center;margin:10px 0;min-height:28px}
.sm-fb-correct{color:#4caf50;font-weight:700;font-size:1rem}
.sm-fb-wrong{color:#ff5252;font-weight:700;font-size:.95rem}
.sm-family-cheer{
  text-align:center;font-size:.85rem;color:#8892b0;
  margin-top:8px;font-style:italic;
}

/* Supply Results */
.sr-family-reaction{margin:12px 0}
.sr-reaction-line{
  padding:6px 10px;font-size:.9rem;color:#ccd6f6;font-style:italic;
}

/* Low resource warnings on battle */
.resource-warning{
  position:absolute;top:60px;left:50%;transform:translateX(-50%);
  background:rgba(255,60,60,.15);border:1px solid #ff6b6b55;
  border-radius:10px;padding:6px 14px;font-size:.8rem;color:#ffa;
  z-index:10;animation:fadeInOut 3s forwards;
}
@keyframes fadeInOut{0%{opacity:0}10%{opacity:1}80%{opacity:1}100%{opacity:0}}

/* ===== SCRAMBLE MODE ===== */
.scramble-instruction{
  font-size:1rem;color:var(--neon-orange);display:block;margin-bottom:12px;font-weight:700;
}
.scramble-slots{
  display:flex;gap:6px;justify-content:center;margin-bottom:16px;flex-wrap:wrap;
}
.scramble-slot{
  width:38px;height:44px;border:2px dashed rgba(255,255,255,.25);border-radius:8px;
  display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:800;
  color:var(--white);background:rgba(255,255,255,.04);transition:all .2s;
  text-transform:uppercase;font-family:'Orbitron',sans-serif;
}
.scramble-slot.filled{
  border-color:var(--neon-blue);background:rgba(0,212,255,.12);
  animation:slotFill .25s ease-out;
}
@keyframes slotFill{0%{transform:scale(1.3)}100%{transform:scale(1)}}
.scramble-slots.scramble-correct .scramble-slot{
  border-color:var(--neon-green)!important;background:rgba(57,255,20,.15)!important;
}
.scramble-slots.scramble-wrong .scramble-slot{
  border-color:var(--neon-pink)!important;background:rgba(255,45,123,.15)!important;
  animation:shake .4s;
}
.scramble-tiles{
  display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:12px;
}
.scramble-tile{
  width:40px;height:44px;border:2px solid rgba(255,255,255,.2);border-radius:10px;
  background:rgba(0,212,255,.08);color:var(--white);font-size:1.3rem;font-weight:800;
  text-transform:uppercase;font-family:'Orbitron',sans-serif;cursor:pointer;
  transition:all .2s;
}
.scramble-tile:hover:not(.used){transform:scale(1.1);border-color:var(--neon-blue)}
.scramble-tile.used{
  opacity:.25;transform:scale(.9);pointer-events:none;
}
.scramble-undo{
  margin-top:6px;font-size:.85rem;padding:6px 16px;
}

/* ===== AUDIO ONLY MODE ===== */
.audio-only-instruction{
  font-size:1rem;color:var(--neon-purple);display:block;margin-bottom:10px;font-weight:700;
}

/* ===== CHARACTER SELECT ===== */
.character-select{margin:10px 0;}
.char-select-label{font-size:.9rem;color:var(--neon-blue);margin-bottom:6px;font-weight:700;}
.char-select-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.char-select-btn{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  background:var(--card);border:2px solid transparent;border-radius:var(--radius-sm);
  padding:8px 12px;cursor:pointer;transition:all .2s;color:var(--white);
}
.char-select-btn .char-emoji{font-size:1.8rem;}
.char-select-btn small{font-size:.7rem;opacity:.8;}
.char-select-btn:hover{border-color:var(--neon-blue);transform:scale(1.05);}
.char-select-btn.selected{
  border-color:var(--neon-green);background:rgba(57,255,20,.15);
  box-shadow:0 0 12px rgba(57,255,20,.4);
}
.chicken-status{
  font-size:.85rem;color:var(--neon-yellow);margin:8px 0;font-weight:700;
}

/* ===== CHICKEN RESCUE (System Win) ===== */
.chicken-rescue{
  background:rgba(255,215,0,.1);border:2px solid var(--neon-yellow);
  border-radius:var(--radius);padding:16px;margin:12px 0;text-align:center;
  animation:chickenPop .5s ease;
}
@keyframes chickenPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
.chicken-rescue-emoji{font-size:3rem;margin-bottom:4px;}
.chicken-rescue-name{font-size:1.3rem;font-weight:900;color:var(--neon-yellow);}
.chicken-rescue-breed{font-size:.85rem;color:var(--gray);margin:2px 0 8px;}
.chicken-egg-reward{
  font-size:.95rem;color:var(--neon-green);margin-top:8px;
  padding:8px;background:rgba(57,255,20,.08);border-radius:var(--radius-sm);
}
.chicken-count-display{
  font-size:1rem;color:var(--neon-yellow);font-weight:700;margin:8px 0;
}

/* ===== EVENT BANNERS (Daisy/Abby) ===== */
.event-banner{
  position:fixed;top:-80px;left:50%;transform:translateX(-50%);
  max-width:90vw;padding:12px 20px;border-radius:var(--radius);
  font-size:.9rem;font-weight:700;z-index:1000;
  transition:top .4s ease;text-align:center;
  box-shadow:0 4px 20px rgba(0,0,0,.5);
}
.event-banner.show{top:20px;}
.event-daisy{
  background:rgba(180,77,255,.92);border:2px solid var(--neon-purple);color:#fff;
}
.event-abby{
  background:rgba(255,159,67,.92);border:2px solid var(--neon-orange);color:#fff;
}

/* ===== STINKY OVERLAY (Abby) ===== */
.stinky-overlay{
  position:fixed;inset:0;z-index:999;pointer-events:none;
  display:flex;align-items:center;justify-content:center;
  font-size:5rem;opacity:.4;
  animation:stinkFade 5s ease forwards;
}
@keyframes stinkFade{0%{opacity:.6}100%{opacity:0}}
.audio-only-btn{
  font-size:1.2rem;padding:12px 24px;margin-bottom:16px;
  animation:audioPulse 2s ease-in-out infinite;
}
@keyframes audioPulse{0%,100%{box-shadow:0 0 8px rgba(180,77,255,.3)}50%{box-shadow:0 0 20px rgba(180,77,255,.6)}}
.audio-choice{letter-spacing:4px;font-size:1.1rem}

/* ===== SPEED ROUND MODE ===== */
.speed-timer-bar{
  width:100%;height:8px;background:rgba(255,255,255,.1);border-radius:4px;overflow:hidden;margin-bottom:4px;
}
.speed-timer-fill{
  height:100%;background:var(--neon-green);border-radius:4px;transition:width .1s linear;
}
.speed-timer-label{
  font-size:.85rem;color:var(--neon-orange);font-weight:700;margin-bottom:8px;
  font-family:'Orbitron',sans-serif;
}
.speed-word{display:flex;gap:2px;justify-content:center;margin:8px 0}

/* ===== BOSS BATTLE ===== */
.boss-enemy{
  transform:scale(1.2);filter:drop-shadow(0 0 15px rgba(255,0,0,.5));
}
.boss-enemy .enemy-emoji{font-size:3.5rem!important;animation:bossPulse 1.5s ease-in-out infinite}
@keyframes bossPulse{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.08);filter:brightness(1.3)}}

.boss-phase-banner{
  text-align:center;padding:8px 16px;margin-bottom:4px;
  background:linear-gradient(135deg,rgba(255,45,123,.12),rgba(0,212,255,.12));
  border:1px solid rgba(255,255,255,.15);border-radius:10px;
  font-family:'Orbitron',sans-serif;font-size:.9rem;font-weight:700;
  color:var(--neon-yellow);animation:phaseIn .5s ease-out;
}
.boss-phase-icon{font-size:1.3rem;margin-right:6px}
.boss-rally{font-size:.78rem;color:#ccc;font-style:italic;text-align:center;margin-top:4px;padding:4px 12px;animation:phaseIn .5s ease-out .2s both;}
@keyframes phaseIn{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}

/* Boss HP phase markers */
.boss-phase-marks{position:absolute;inset:0;pointer-events:none;}
.boss-phase-marks span{position:absolute;top:0;height:100%;width:2px;background:rgba(0,0,0,.6);}

/* Legendary loot */
.loot-item-legendary{color:var(--neon-yellow,#ffe66d);font-weight:700;animation:pulse .9s ease-in-out infinite alternate;}

.boss-subject-question{
  display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;
}
.boss-subj-icon{font-size:2rem}
.boss-subj-text{font-size:1.1rem;font-weight:700;color:var(--white);text-align:center}
.boss-subj-hint{font-size:.82em;color:#aaa;opacity:.75;margin-top:4px;padding:4px 8px}
.boss-hint-toggle{margin-top:6px;text-align:center}
.boss-hint-toggle summary{cursor:pointer;font-size:.82rem;color:#ffc832aa;list-style:none;padding:4px 12px;border:1px solid #ffc83233;border-radius:20px;display:inline-block}
.boss-hint-toggle summary::-webkit-details-marker{display:none}
.boss-hint-toggle[open] summary{color:var(--neon-yellow)}
.sm-choice-btn{display:flex;justify-content:space-between;align-items:center;gap:6px}
.sm-speaker{font-size:.8rem;opacity:.6;flex-shrink:0;cursor:pointer}
.sm-speaker:hover{opacity:1}

/* ===== MAP STOP TYPE STYLING ===== */
.planet-node.stop-supply{border-style:dashed}
.planet-node.stop-supply .p-icon{filter:hue-rotate(90deg)}
.planet-node.stop-rest{border-style:dotted;border-color:var(--neon-yellow)!important}
.planet-node.stop-minigame{border-style:double}
.planet-node.stop-boss .p-icon{font-size:1.4rem}
.planet-node.stop-boss.current{
  box-shadow:0 0 20px rgba(255,68,68,.4),inset 0 0 10px rgba(255,68,68,.1);
  animation:bossGlow 2s ease-in-out infinite;
}
@keyframes bossGlow{0%,100%{box-shadow:0 0 20px rgba(255,68,68,.3)}50%{box-shadow:0 0 35px rgba(255,68,68,.6)}}

/* ===== ACHIEVEMENTS & BADGES ===== */
.achievements-wrap{max-width:600px;margin:0 auto;padding:20px;text-align:center;}

/* ===== LAN CO-OP UI ===== */
.mp-section{
  width:100%;max-width:420px;margin:14px auto 0;
  background:rgba(0,212,255,.04);border:2px solid rgba(0,212,255,.18);
  border-radius:18px;padding:14px 16px 16px;
}
.mp-section-title{
  font-family:'Orbitron',sans-serif;font-size:.78rem;font-weight:700;
  color:var(--neon-cyan);letter-spacing:.1em;margin-bottom:10px;text-align:center;
}
.mp-name-row{margin-bottom:8px;}
.mp-text-input{
  background:rgba(255,255,255,.06);border:1.5px solid rgba(255,255,255,.18);
  border-radius:10px;color:#fff;font-size:.9rem;padding:8px 12px;
  width:100%;box-sizing:border-box;font-family:'Nunito',sans-serif;
}
.mp-text-input:focus{outline:none;border-color:var(--neon-cyan);}
.mp-btn-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.mp-btn{
  padding:8px 18px;border-radius:22px;border:2px solid currentColor;
  font-weight:700;font-size:.82rem;cursor:pointer;transition:all .18s;background:transparent;
}
.mp-host-btn{color:var(--neon-green);border-color:var(--neon-green);}
.mp-host-btn:hover{background:rgba(57,255,20,.12);}
.mp-join-btn{color:var(--neon-blue);border-color:var(--neon-blue);}
.mp-join-btn:hover{background:rgba(0,212,255,.12);}
.mp-leave-btn{color:#ff4444;border-color:#ff4444;margin-top:10px;}
.mp-leave-btn:hover{background:rgba(255,68,68,.12);}
.mp-or{font-size:.75rem;color:#666;flex-shrink:0;}
.mp-code-input{width:90px;text-align:center;letter-spacing:.15em;font-family:'Orbitron',sans-serif;font-size:.9rem;}
.mp-code-display{
  margin-top:12px;padding:10px 14px;
  background:rgba(0,212,255,.08);border:1px solid rgba(0,212,255,.3);
  border-radius:12px;font-size:.85rem;color:#aaa;
  display:flex;align-items:center;justify-content:center;gap:10px;
}
.mp-code-big{
  font-family:'Orbitron',sans-serif;font-size:1.8rem;font-weight:900;
  color:var(--neon-cyan);letter-spacing:.25em;
}
.mp-copy-btn{
  background:none;border:1px solid rgba(0,212,255,.4);border-radius:8px;
  color:var(--neon-cyan);padding:4px 10px;cursor:pointer;font-size:.8rem;
}
.mp-copy-btn:hover{background:rgba(0,212,255,.12);}
.mp-status{font-size:.78rem;color:#aaa;margin-top:8px;text-align:center;min-height:1.3em;}
.mp-player-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;justify-content:center;}
.mp-player-chip{
  padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:700;
  background:rgba(0,212,255,.15);color:var(--neon-cyan);border:1px solid rgba(0,212,255,.3);
}

/* ===== CREW SELECTION SCREEN ===== */
#screen-crew-select{
  height:100vh;
  overflow-y:auto;
  align-items:flex-start; /* override .screen.active center; crew content starts at top */
  padding:0;
}
.crew-select-wrap{
  max-width:480px;margin:0 auto;padding:16px 12px 24px;
  display:flex;flex-direction:column;gap:14px;
}
.crew-select-title{
  font-family:'Orbitron',sans-serif;font-size:1.3rem;font-weight:900;
  color:var(--neon-cyan);text-align:center;margin:8px 0 0;
}
.crew-select-planet-info{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:rgba(255,255,255,.05);border-radius:10px;padding:8px 14px;
  flex-wrap:wrap;
}
.csp-icon{font-size:1.4rem}
.csp-name{font-family:'Orbitron',sans-serif;font-size:1rem;font-weight:700;color:#fff}
.csp-type{font-size:.75rem;font-weight:600}
.csp-biome{font-size:.7rem;color:#aaa;background:rgba(255,255,255,.07);border-radius:6px;padding:1px 6px}
.crew-select-hint{
  text-align:center;font-size:.8rem;color:#bbb;margin:0;line-height:1.5;
}
.crew-select-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;
}
.crew-select-card{
  background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.12);
  border-radius:14px;padding:10px 8px;text-align:center;cursor:pointer;
  transition:all .2s;position:relative;
  --cls-color:#888;
}
.crew-select-card:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}
.crew-select-card.selected{
  border-color:var(--cls-color);
  background:color-mix(in srgb, var(--cls-color) 15%, transparent);
  box-shadow:0 0 14px color-mix(in srgb, var(--cls-color) 40%, transparent);
}
.crew-select-card.fainted-card{opacity:.4;cursor:not-allowed}
.csc-avatar{font-size:2rem;display:block;margin-bottom:4px}
.csc-name{font-weight:700;font-size:.85rem;color:#fff;display:block}
.csc-class{font-size:.7rem;font-weight:600;margin:2px 0;display:block}
.csc-level{font-size:.9rem;font-weight:900;color:var(--neon-yellow,#ffe600);display:block}
.csc-xp-bar{
  height:4px;background:rgba(255,255,255,.15);border-radius:2px;margin:4px 0;overflow:hidden;
}
.csc-xp-fill{
  height:100%;background:linear-gradient(90deg,var(--cls-color),#fff);border-radius:2px;
  transition:width .4s;
}
.csc-specialty{font-size:.65rem;color:#bbb;display:block;margin:2px 0}
.csc-stats{font-size:.65rem;color:#aaa;display:block}
.csc-fainted{font-size:.7rem;color:#ff4444;font-weight:700;margin-top:4px}
.csc-check{
  position:absolute;top:6px;right:8px;font-size:.8rem;font-weight:900;
  color:var(--cls-color,#0f0);
}

/* Mission type cards */
.mission-type-section{display:flex;flex-direction:column;gap:8px}
.mission-type-label{font-size:.8rem;color:var(--neon-yellow,#ffe600);font-weight:700;margin:0}
.mission-type-cards{display:flex;gap:8px;flex-wrap:wrap}
.mission-type-card{
  flex:1;min-width:100px;background:rgba(255,255,255,.06);
  border:2px solid rgba(255,255,255,.12);border-radius:10px;
  padding:8px 6px;text-align:center;cursor:pointer;transition:all .2s;
}
.mission-type-card.selected{
  border-color:var(--neon-cyan);
  background:rgba(0,212,255,.12);
}
.mission-type-card:hover{background:rgba(255,255,255,.1)}
.mtc-icon{font-size:1.4rem;display:block;margin-bottom:3px}
.mtc-name{font-size:.75rem;font-weight:700;color:#fff;display:block}
.mtc-desc{font-size:.65rem;color:#aaa;display:block;margin-top:3px}

/* Crew select footer */
.crew-select-footer{
  display:flex;flex-direction:column;gap:8px;align-items:center;
  position:sticky;
  bottom:0;
  background:linear-gradient(0deg, var(--space) 80%, transparent);
  padding:14px 12px 16px;
  margin:0 -12px;
  z-index:20;
}
.crew-select-power{
  font-size:.75rem;color:#ccc;text-align:center;line-height:1.5;
  background:rgba(255,255,255,.05);border-radius:8px;padding:8px 12px;width:100%;box-sizing:border-box;
}
.csp-spec{font-size:.7rem;color:var(--neon-cyan)}
.crew-launch-btn{
  background:linear-gradient(135deg,var(--neon-cyan),var(--neon-purple,#b44dff));
  border:none;border-radius:16px;color:#000;font-family:'Orbitron',sans-serif;
  font-size:1rem;font-weight:900;padding:14px 32px;cursor:pointer;
  transition:all .2s;width:100%;
}
.crew-launch-btn:disabled{
  background:rgba(255,255,255,.07);
  border:2px dashed rgba(255,255,255,.3);
  color:rgba(255,255,255,.45);
  box-shadow:none;
  cursor:not-allowed;
}
.crew-launch-btn:not(:disabled):hover{transform:scale(1.03);filter:brightness(1.15)}

/* ===== CREW EQUIPMENT PANEL ===== */
.crew-equip-panel{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  padding:12px 10px;
  margin:4px 0 8px;
}
.cep-title{
  font-size:.75rem;font-weight:700;color:var(--neon-cyan,#00eeff);
  letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;text-align:center;
}
.cep-slots-row{
  display:flex;gap:8px;flex-wrap:wrap;justify-content:center;
}
.cep-slot{
  flex:1 1 120px;max-width:160px;
  background:rgba(255,255,255,.05);
  border:1.5px dashed rgba(255,255,255,.2);
  border-radius:10px;
  padding:8px 10px;
  cursor:pointer;
  text-align:center;
  transition:border-color .2s, background .2s;
}
.cep-slot.has-item{
  border-style:solid;
  border-color:var(--neon-cyan,#00eeff);
  background:rgba(0,238,255,.07);
}
.cep-slot:hover{ border-color:rgba(0,238,255,.6); background:rgba(0,238,255,.1); }
.cep-slot-emoji{ font-size:1.4rem;display:block;margin-bottom:2px; }
.cep-slot-name{ font-size:.65rem;color:#ccc;font-weight:600; }
.cep-slot-desc{ font-size:.55rem;color:#888;margin-top:2px;font-style:italic;line-height:1.3; }
.cep-slot-who{ font-size:.6rem;color:var(--neon-cyan,#00eeff);margin-bottom:4px;font-weight:700; }

/* Item picker popover */
.cep-picker{
  display:none;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
  padding:8px;
  background:rgba(0,0,0,.55);
  border-radius:10px;
  border:1px solid rgba(255,255,255,.08);
}
.cep-picker.open{ display:flex; }
.cep-picker-item{
  flex:1 1 90px;max-width:120px;
  display:flex;flex-direction:column;align-items:center;
  gap:2px;background:rgba(255,255,255,.06);
  border:1.5px solid rgba(255,255,255,.12);
  border-radius:8px;padding:6px 8px;
  cursor:pointer;transition:border-color .18s,background .18s;
  font-size:.6rem;color:#bbb;text-align:center;
}
.cep-picker-item:hover{ border-color:var(--neon-cyan,#00eeff);background:rgba(0,238,255,.1); }
.cep-picker-item.active{
  border-color:var(--neon-cyan,#00eeff);background:rgba(0,238,255,.15);color:#fff;
}
.cep-picker-item.taken{
  opacity:.45;cursor:not-allowed;border-style:dashed;
}
.cep-picker-item.taken:hover{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.06);}
.cep-picker-item.taken .cep-picker-desc{color:#e85;}
.cep-picker-emoji{ font-size:1.15rem; }
.cep-picker-name{ font-weight:700;font-size:.6rem; }
.cep-picker-desc{ font-size:.52rem;color:#888;font-style:italic;line-height:1.25; }
.cep-picker-unequip{
  width:100%;text-align:center;font-size:.6rem;color:#888;
  cursor:pointer;margin-top:4px;text-decoration:underline;
}
.cep-picker-unequip:hover{color:#ccc;}

/* ===== CREW STATION PANEL ===== */
.crew-station-panel{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.1);
  border-radius:12px;
  padding:12px 10px;
  margin:4px 0 8px;
}
.station-title{
  font:700 .75rem 'Orbitron',sans-serif;color:var(--neon-orange);
  letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;text-align:center;
}
.station-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.station-card{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:10px 8px;border-radius:10px;
  border:1.5px dashed rgba(255,255,255,.2);
  background:rgba(255,255,255,.03);cursor:pointer;transition:.2s;text-align:center;
}
.station-card:hover{border-color:var(--neon-orange);background:rgba(255,165,0,.06)}
.station-card.station-filled{border-style:solid;border-color:var(--neon-orange);background:rgba(255,165,0,.08)}
.station-icon{font-size:1.3rem}
.station-name{font:700 .7rem 'Orbitron',sans-serif;color:#dde}
.station-desc{font-size:.5rem;color:#888;line-height:1.3}
.station-assigned{font:600 .65rem 'Nunito',sans-serif;color:var(--neon-orange);margin-top:2px}

/* ===== ROLE REQUIREMENT BADGE ON MAP ===== */
.p-role{font:600 .5rem 'Nunito',sans-serif;color:var(--neon-orange);display:block;margin-top:1px}
.p-urgent{font:700 .5rem 'Nunito',sans-serif;color:var(--neon-pink);display:block;animation:urgentPulse 1.2s infinite}
@keyframes urgentPulse{0%,100%{opacity:1}50%{opacity:.5}}
/* Rarity label colours */
.cep-rarity-common{color:#aaa;}
.cep-rarity-uncommon{color:#7be36e;}
.cep-rarity-rare{color:#9b7bff;}

/* ===== MODE SELECT SCREEN ===== */
.mode-select-wrap{
  max-width:560px;margin:0 auto;padding:16px 14px 32px;
  display:flex;flex-direction:column;gap:18px;
}
.mode-select-header{text-align:center;padding-top:8px;}
.mode-select-rocket{font-size:2.4rem;margin-bottom:4px;}
.mode-select-title{
  font-family:'Orbitron',sans-serif;font-size:1.5rem;font-weight:900;
  color:var(--neon-cyan);margin:0 0 4px;
}
.mode-select-sub{color:rgba(255,255,255,.6);font-size:.9rem;margin:0;}
.mode-cards-row{
  display:flex;flex-direction:column;gap:14px;
}
@media(min-width:520px){.mode-cards-row{flex-direction:row;}}
.mode-card{
  flex:1;background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.15);
  border-radius:18px;padding:20px 18px;cursor:pointer;text-align:left;
  display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden;
  transition:border-color .2s,transform .15s,box-shadow .2s;
}
.mode-card:hover,.mode-card:focus{
  border-color:var(--neon-cyan);transform:translateY(-2px);
  box-shadow:0 4px 24px rgba(0,212,255,.25);
}
.mode-card:active{transform:scale(.97);}
.mode-card-story{border-color:rgba(0,212,255,.3);}
.mode-card-arcade{border-color:rgba(250,204,21,.3);}
.mode-card-arcade:hover{border-color:#facc15;box-shadow:0 4px 24px rgba(250,204,21,.25);}
.mode-card-locked{opacity:.6;cursor:not-allowed;}
.mode-card-locked:hover{transform:none!important;box-shadow:none!important;}
.mode-card-icon{font-size:2.2rem;line-height:1;}
.mode-card-title{
  font-family:'Orbitron',sans-serif;font-size:1.15rem;font-weight:900;
  color:#fff;
}
.mode-card-desc{color:rgba(255,255,255,.75);font-size:.87rem;line-height:1.45;}
.mode-card-tags{display:flex;flex-wrap:wrap;gap:6px;}
.mode-tag{
  font-size:.72rem;background:rgba(255,255,255,.1);border-radius:8px;
  padding:2px 8px;color:rgba(255,255,255,.7);
}
.mode-card-cta{
  font-family:'Orbitron',sans-serif;font-size:.85rem;font-weight:700;
  color:var(--neon-cyan);margin-top:4px;
}
.mode-card-arcade .mode-card-cta{color:#facc15;}
.mode-lock-overlay{
  position:absolute;inset:0;background:rgba(0,0,0,.65);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  border-radius:16px;
}
.mode-lock-icon{font-size:2rem;}
.mode-lock-msg{color:rgba(255,255,255,.85);font-size:.85rem;font-weight:600;}

/* ===== ARCADE CONFIG SCREEN ===== */
.arcade-config-wrap{
  max-width:480px;margin:0 auto;padding:16px 14px 32px;
  display:flex;flex-direction:column;gap:14px;
}
.arcade-config-sub{color:rgba(255,255,255,.6);font-size:.9rem;margin:0 0 4px;}
.arcade-section-label{
  font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:700;
  color:rgba(255,255,255,.5);letter-spacing:.08em;text-transform:uppercase;margin:4px 0 0;
}
.arcade-mode-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
}
.arcade-mode-btn{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);
  border-radius:10px;padding:9px 6px;font-size:.82rem;font-weight:600;color:rgba(255,255,255,.75);
  cursor:pointer;transition:border-color .15s,background .15s;text-align:center;
}
.arcade-mode-btn.selected{
  background:rgba(0,212,255,.18);border-color:var(--neon-cyan);color:#fff;
}
.arcade-mode-btn:hover{border-color:rgba(0,212,255,.5);}
.arcade-diff-row,.arcade-grade-row{display:flex;flex-wrap:wrap;gap:9px;}
.arcade-diff-btn,.arcade-grade-btn{
  flex:1;min-width:60px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.15);border-radius:10px;
  padding:9px 6px;font-size:.88rem;font-weight:600;color:rgba(255,255,255,.75);
  cursor:pointer;transition:border-color .15s,background .15s;text-align:center;
}
.arcade-diff-btn.selected,.arcade-grade-btn.selected{
  background:rgba(250,204,21,.18);border-color:#facc15;color:#fff;
}
.arcade-diff-btn:hover,.arcade-grade-btn:hover{border-color:#facc15;}
.arcade-hs-row{
  display:flex;align-items:center;gap:10px;
  background:rgba(250,204,21,.08);border-radius:10px;padding:8px 12px;
}
.arcade-hs-label{font-size:.9rem;color:rgba(255,255,255,.6);}
.arcade-hs-val{font-family:'Orbitron',sans-serif;font-size:1.1rem;font-weight:900;color:#facc15;}

/* ===== ARCADE RUN SCREEN ===== */
.arcade-run-wrap{
  max-width:480px;margin:0 auto;padding:12px 12px 24px;
  display:flex;flex-direction:column;gap:12px;
}
.arcade-run-header{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:rgba(0,0,0,.3);border-radius:12px;padding:8px 12px;
}
.arcade-run-info{display:flex;flex-direction:column;gap:2px;flex:1;}
.arcade-run-mode{font-family:'Orbitron',sans-serif;font-size:.8rem;font-weight:700;color:var(--neon-cyan);}
.arcade-run-diff{font-size:.75rem;color:rgba(255,255,255,.6);}
.arcade-run-score-box{
  display:flex;flex-direction:column;align-items:center;min-width:64px;
}
.arc-score-label{font-size:.65rem;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.05em;}
.arc-score-val{
  font-family:'Orbitron',sans-serif;font-size:1.4rem;font-weight:900;color:#facc15;
}
.arcade-lives{font-size:1.35rem;letter-spacing:2px;}
.arc-streak-box{
  background:rgba(255,165,0,.15);border-radius:8px;padding:4px 10px;
  font-size:.9rem;font-weight:700;color:#ffa500;
}
.arcade-question-area{
  flex:1;min-height:280px;background:rgba(255,255,255,.04);border-radius:16px;
  padding:18px 14px;display:flex;flex-direction:column;gap:12px;
  transition:background .3s;position:relative;
}
.arc-q-prompt{display:flex;flex-direction:column;gap:8px;}
.arc-sentence{font-size:1.0rem;color:rgba(255,255,255,.85);line-height:1.5;}
.arc-def{font-size:.88rem;color:rgba(255,255,255,.6);font-style:italic;}
.arc-word-display{
  font-family:'Orbitron',sans-serif;font-size:1.6rem;font-weight:900;
  color:#fff;text-align:center;letter-spacing:.06em;word-break:break-word;
}
.arc-word-display.big{font-size:2rem;}
.arc-speak-row{display:flex;justify-content:center;}
.arc-speak-btn{
  background:rgba(0,212,255,.12);border:1px solid rgba(0,212,255,.3);
  border-radius:20px;padding:6px 18px;font-size:.85rem;color:var(--neon-cyan);cursor:pointer;
}
.arc-speak-btn:hover{background:rgba(0,212,255,.22);}
.arc-fill-input{
  width:100%;box-sizing:border-box;background:rgba(255,255,255,.08);
  border:2px solid rgba(255,255,255,.2);border-radius:12px;
  padding:12px 14px;font-size:1.1rem;color:#fff;outline:none;
  font-family:'Nunito',sans-serif;
}
.arc-fill-input:focus{border-color:var(--neon-cyan);}
.arc-submit-btn{margin:0 0 4px;}
.arc-scramble-tiles{
  display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:8px 0;
}
.arc-tile{
  background:rgba(0,212,255,.18);border:1px solid rgba(0,212,255,.4);
  border-radius:8px;padding:8px 12px;font-size:1.3rem;font-weight:900;
  color:#fff;font-family:'Orbitron',sans-serif;min-width:36px;text-align:center;
}
.arc-choices{display:flex;flex-direction:column;gap:10px;}
.arc-choice-btn{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);
  border-radius:12px;padding:12px 16px;font-size:.95rem;color:#fff;
  cursor:pointer;text-align:left;transition:border-color .15s,background .15s;
}
.arc-choice-btn:hover{background:rgba(0,212,255,.15);border-color:var(--neon-cyan);}
.arc-choice-btn:disabled{opacity:.6;cursor:default;}
.arc-correct-reveal{
  position:absolute;bottom:12px;left:50%;transform:translateX(-50%);
  background:rgba(34,197,94,.25);border:1px solid #22c55e;border-radius:10px;
  padding:6px 16px;font-size:.95rem;font-weight:700;color:#86efac;
  pointer-events:none;white-space:nowrap;
}
.arc-math-hint,.arc-sci-fact{
  background:rgba(250,204,21,.08);border-radius:8px;padding:6px 10px;
  font-size:.83rem;color:rgba(255,255,255,.65);
}
.arc-quit-btn{margin-top:auto;background:rgba(255,255,255,.07)!important;font-size:.85rem!important;}

/* ===== ARCADE OVER SCREEN ===== */
.arc-over-hs{
  margin:8px auto;font-size:1rem;color:rgba(255,255,255,.7);text-align:center;
}
.arc-hs-new{
  font-family:'Orbitron',sans-serif;font-size:1.1rem;font-weight:900;
  color:#facc15;animation:pulseGlow 1s ease infinite alternate;
}
.arc-leaderboard{margin:12px auto;max-width:380px;}
.arc-lb-title{text-align:center;font-size:1rem;margin:8px 0 4px;color:#facc15;}
.arc-lb-table{width:100%;border-collapse:collapse;font-size:.78rem;color:rgba(255,255,255,.85);}
.arc-lb-table th{text-align:left;padding:4px 6px;border-bottom:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.5);font-weight:600;}
.arc-lb-table td{padding:4px 6px;border-bottom:1px solid rgba(255,255,255,.06);}
.arc-lb-table tr:first-child td{color:#facc15;font-weight:700;}
.arc-lb-empty{text-align:center;color:rgba(255,255,255,.4);font-size:.82rem;}

/* ===== MISSION LOG (story text overlay on stage) ===== */
.mission-log{
  position:absolute;
  bottom:6px;left:6px;right:6px;
  min-height:26px;
  background:rgba(0,0,0,.58);
  border:1px solid rgba(255,255,255,.08);
  border-radius:8px;
  padding:5px 10px;
  font-size:.68rem;
  color:rgba(255,255,255,.8);
  pointer-events:none;
  z-index:12;
  text-shadow:0 1px 4px #000;
  line-height:1.5;
  transition:opacity .4s;
}
.mission-log:empty{ opacity:0; }
.ml-entry{
  display:block;
  animation:mlFadeIn .3s ease;
}
@keyframes mlFadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}

/* ===== LEVEL SYSTEM UI ===== */
.member-level-badge{
  font-size:.65rem;font-weight:700;padding:1px 5px;
  border-radius:6px;background:rgba(255,255,255,.1);margin-left:2px;
}

/* Level-gated planet node */
.p-lvlgate{
  font-size:.55rem;font-weight:700;color:#ff9944;display:block;
  background:rgba(255,153,68,.15);border-radius:4px;padding:1px 4px;margin-top:1px;
}

/* ===== FLOATING DAMAGE NUMBER ===== */
.float-damage{
  position:fixed;pointer-events:none;z-index:9999;
  font-family:'Orbitron',sans-serif;font-size:1.4rem;font-weight:900;
  text-shadow:0 0 8px currentColor;
  animation:floatDmgAnim .9s ease-out forwards;
}
.float-damage.super-eff{font-size:1.7rem}
@keyframes floatDmgAnim{
  0%  {opacity:1;transform:translateY(0) scale(1)}
  60% {opacity:1;transform:translateY(-40px) scale(1.1)}
  100%{opacity:0;transform:translateY(-70px) scale(0.8)}
}

/* ===== BATTLE HUD CREW BAR ===== */
.hud-crew-bar{
  display:flex;align-items:center;gap:6px;justify-content:center;
  padding:4px 0;flex-wrap:wrap;
}
.hud-crew-member{
  display:flex;flex-direction:column;align-items:center;
  font-size:1.2rem;line-height:1;padding:4px 6px;border-radius:8px;
  border:2px solid transparent;transition:all .2s;
  --cls-color:#888;
}
.hud-crew-member.hud-crew-active{
  border-color:var(--cls-color);
  background:color-mix(in srgb, var(--cls-color) 20%, transparent);
  animation:crewPulse .8s ease-in-out;
}
@keyframes crewPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.15)}
}
.hud-crew-level{
  font-size:.55rem;font-weight:700;color:var(--cls-color,#aaa);
  font-family:'Orbitron',sans-serif;
}

/* ===== LEVEL-UP TOAST ===== */
.level-up-toast{
  position:fixed;top:80px;left:50%;transform:translateX(-50%) translateY(-20px);
  background:linear-gradient(135deg,rgba(20,8,40,.96),rgba(40,10,60,.96));
  border:2px solid var(--neon-yellow,#ffe600);border-radius:16px;
  padding:12px 20px;display:flex;align-items:center;gap:12px;
  z-index:10000;opacity:0;transition:all .4s cubic-bezier(.34,1.56,.64,1);
  pointer-events:none;min-width:200px;
}

/* ===== TYPE-IN MODE ===== */
.type-in-wrap{display:flex;gap:0.5rem;align-items:center;justify-content:center;padding:1rem}
.type-in-input{font-family:'Courier New',monospace;font-size:1.5rem;padding:0.8rem 1rem;background:#0a0f1a;color:#00ff88;border:2px solid #00ff8844;border-radius:8px;text-align:center;width:60%;max-width:300px;outline:none;caret-color:#00ff88}
.type-in-input:focus{border-color:#00ff88;box-shadow:0 0 15px #00ff8833}
.type-in-input::placeholder{color:#00ff8844;font-size:1rem}
.type-in-submit{padding:0.8rem 1.5rem;font-size:1.2rem;background:var(--neon-green,#00ff88);color:#000;border:none;border-radius:8px;cursor:pointer;font-weight:bold}
.type-in-submit:hover{opacity:.9}
.type-in-submit:disabled{opacity:.4;cursor:default}
.type-in-hear{font-size:1.5rem;cursor:pointer;background:none;border:none;padding:0.5rem}
.level-up-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.lu-emoji{font-size:2rem}
.lu-text{display:flex;flex-direction:column}
.lu-top{font-size:.65rem;font-weight:700;color:var(--neon-yellow,#ffe600);letter-spacing:.1em;text-transform:uppercase}
.lu-name{font-family:'Orbitron',sans-serif;font-size:1rem;font-weight:900;color:#fff}
.lu-class{font-size:.7rem;color:#bbb}
.game-event-toast{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:9999;
  background:rgba(0,0,0,.7);border:1px solid rgba(255,255,255,.15);
  border-radius:20px;padding:6px 14px;font-size:.9rem;color:#fff;
  animation:slideInRight .3s ease, fadeOut .5s ease 3s forwards;
}
@keyframes slideInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes fadeOut{from{opacity:1}to{opacity:0}}

/* Co-op turn indicator in battle */
.mp-turn-indicator{
  text-align:center;padding:6px 12px;margin:0 auto 6px;
  max-width:300px;border-radius:20px;font-weight:700;font-size:.82rem;
}
.mp-turn-mine{
  color:var(--neon-green);background:rgba(57,255,20,.08);
  padding:5px 18px;border-radius:20px;border:1px solid rgba(57,255,20,.3);display:block;
}
.mp-turn-wait{
  color:#aaa;background:rgba(255,255,255,.04);
  padding:5px 18px;border-radius:20px;border:1px solid rgba(255,255,255,.1);display:block;
}
.ach-summary{
  display:flex;justify-content:center;gap:18px;
  margin:14px 0 18px;font-size:.95rem;color:var(--text-secondary,#aaa);
}
.ach-summary span{font-weight:700;color:var(--neon-yellow,#ffe66d);}
.ach-category-tabs{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:16px;
}
.ach-tab{
  padding:6px 14px;border-radius:20px;border:2px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.06);color:#ccc;font-size:.82rem;cursor:pointer;
  transition:all .2s;
}
.ach-tab.active{border-color:var(--neon-yellow,#ffe66d);color:var(--neon-yellow,#ffe66d);background:rgba(255,230,109,.12);}
.ach-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;
}
.ach-card{
  background:rgba(255,255,255,.06);border:2px solid rgba(255,255,255,.1);
  border-radius:var(--radius,12px);padding:14px 8px;text-align:center;
  transition:all .3s;position:relative;
}
.ach-card.unlocked{border-color:var(--neon-yellow,#ffe66d);background:rgba(255,230,109,.08);}
.ach-card.ach-new{border-color:#a855f7;box-shadow:0 0 10px rgba(168,85,247,.4);}
.ach-card.locked{opacity:.55;filter:grayscale(.5);}
.ach-card .ach-emoji{font-size:2.2rem;display:block;margin-bottom:6px;}
.ach-card .ach-name{font-size:.78rem;font-weight:700;display:block;margin-bottom:4px;color:#fff;}
.ach-card .ach-desc{font-size:.68rem;color:#aaa;display:block;}
.ach-card.unlocked .ach-desc{color:#ccc;}
.ach-progress{margin-top:7px;background:rgba(255,255,255,.12);border-radius:4px;height:5px;overflow:hidden;}
.ach-progress-bar{height:100%;background:linear-gradient(90deg,#4ecdc4,#a855f7);border-radius:4px;transition:width .5s;}
.ach-progress-label{font-size:.58rem;color:#888;display:block;margin-top:3px;text-align:center;}
.ach-new-badge{
  display:inline-block;background:#ff6b6b;color:#fff;font-size:.58rem;font-weight:800;
  padding:2px 6px;border-radius:8px;vertical-align:middle;margin-left:5px;
  animation:badge-pulse 1s ease-in-out infinite alternate;
}
.ach-new-badge.hidden{display:none;}
@keyframes badge-pulse{from{opacity:.7}to{opacity:1;transform:scale(1.1);}}

/* Arcade Unlock badge on title screen */
.arcade-unlock-badge{
  display:inline-block;background:linear-gradient(135deg,#f7971e,#ffd200);color:#1a0a2e;font-size:.85rem;font-weight:800;
  padding:6px 16px;border-radius:20px;margin-bottom:8px;letter-spacing:.5px;
  animation:badge-pulse 1.2s ease-in-out infinite alternate;
  box-shadow:0 0 12px rgba(255,210,0,.5);
}
.arcade-unlock-badge.hidden{display:none;}

/* Achievement toast */
.ach-toast{
  position:fixed;top:-100px;left:50%;transform:translateX(-50%);
  background:linear-gradient(135deg,rgba(40,30,80,.95),rgba(60,20,100,.95));
  border:2px solid var(--neon-yellow,#ffe66d);border-radius:var(--radius,12px);
  padding:14px 24px;z-index:1100;display:flex;align-items:center;gap:12px;
  box-shadow:0 8px 32px rgba(0,0,0,.6);transition:top .5s cubic-bezier(.34,1.56,.64,1);
  max-width:90vw;
}
.ach-toast.show{top:24px;}
.ach-toast .ach-toast-emoji{font-size:2rem;}
.ach-toast .ach-toast-text{text-align:left;}
.ach-toast .ach-toast-label{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--neon-yellow,#ffe66d);display:block;}
.ach-toast .ach-toast-name{font-size:1rem;font-weight:700;color:#fff;display:block;}

/* ---------- ENEMY ABILITY SYSTEM ---------- */
.enemy-frozen{pointer-events:none !important;opacity:0.5;filter:hue-rotate(180deg);transition:all 0.3s;}
.enemy-hidden .choice-btn{opacity:0 !important;transition:opacity 0.3s;}
.enemy-rage{animation:enemyRage 0.5s ease infinite;}
@keyframes enemyRage{0%,100%{filter:drop-shadow(0 0 8px #ff0000);}50%{filter:drop-shadow(0 0 20px #ff4400);transform:scale(1.08);}}
.enemy-ability-flash{
  position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:999;
  font-size:2rem;font-weight:bold;color:#fff;
  text-shadow:0 0 20px rgba(255,0,0,0.8);
  animation:abilityFlash 1.5s ease-out forwards;pointer-events:none;
}
@keyframes abilityFlash{0%{opacity:1;transform:translate(-50%,-50%) scale(1.5);}100%{opacity:0;transform:translate(-50%,-50%) scale(0.8);}}

/* ===== GOD MODE PANEL ===== */
.god-panel{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:99999;display:flex;align-items:center;justify-content:center;}
.god-panel-inner{background:rgba(10,10,30,.98);border:2px solid var(--neon-orange);border-radius:20px;padding:20px;max-width:480px;width:90%;max-height:90vh;overflow-y:auto;}
.god-panel-header{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.god-panel-icon{font-size:1.5rem;}
.god-panel-title{font:900 1.1rem 'Orbitron',sans-serif;color:var(--neon-orange);flex:1;}
.god-close-btn{background:none;border:1px solid rgba(255,255,255,.3);border-radius:8px;color:#fff;padding:4px 10px;cursor:pointer;font-size:.9rem;}
.god-close-btn:hover{border-color:#fff;}
.god-section{margin-bottom:14px;}
.god-section-label{font:700 .72rem 'Orbitron',sans-serif;color:rgba(255,255,255,.5);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;}
.god-btn-row{display:flex;flex-wrap:wrap;gap:8px;}
.god-btn{padding:8px 14px;border-radius:10px;border:2px solid;font:700 .82rem 'Nunito',sans-serif;cursor:pointer;background:transparent;transition:.15s;}
.god-btn:hover{filter:brightness(1.2);transform:scale(1.03);}
.god-btn-green{color:var(--neon-green);border-color:var(--neon-green);}
.god-btn-green:hover{background:rgba(57,255,20,.15);}
.god-btn-blue{color:var(--neon-blue);border-color:var(--neon-blue);}
.god-btn-blue:hover{background:rgba(0,195,255,.15);}
.god-btn-yellow{color:var(--neon-yellow);border-color:var(--neon-yellow);}
.god-btn-yellow:hover{background:rgba(255,230,0,.15);}
.god-btn-orange{color:var(--neon-orange);border-color:var(--neon-orange);}
.god-btn-orange:hover{background:rgba(255,165,0,.15);}
.god-btn-purple{color:#b44dff;border-color:#b44dff;}
.god-btn-purple:hover{background:rgba(180,77,255,.15);}
.god-btn-cyan{color:var(--neon-cyan);border-color:var(--neon-cyan);}
.god-btn-cyan:hover{background:rgba(0,212,255,.15);}
.god-btn-red{color:var(--neon-pink);border-color:var(--neon-pink);}
.god-btn-red:hover{background:rgba(255,45,123,.15);}
.god-trigger{position:absolute;bottom:8px;right:12px;background:none;border:none;color:rgba(255,255,255,.18);font-size:.65rem;cursor:pointer;padding:4px 8px;transition:.2s;font-family:'Orbitron',sans-serif;}
.god-trigger:hover{color:rgba(255,255,255,.4);}
/* Co-op join URL display */
.mp-join-url-display{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;padding:8px 12px;background:rgba(0,212,255,.06);border-radius:10px;border:1px solid rgba(0,212,255,.2);}
.mp-join-url-label{font-size:.8rem;color:rgba(255,255,255,.6);}
.mp-join-url-text{font:700 .82rem 'Nunito',sans-serif;color:var(--neon-cyan);word-break:break-all;}

/* ===== STANDALONE INVENTORY SCREEN ===== */
.inventory-screen{padding:16px;max-width:600px;margin:0 auto}
.inventory-screen-wrap{display:flex;flex-direction:column;gap:16px;padding-bottom:80px}
.inventory-crew-card{background:rgba(0,0,30,.6);border:1px solid rgba(0,195,255,.2);border-radius:14px;padding:14px;transition:.2s}
.inventory-crew-card:hover{border-color:rgba(0,195,255,.4)}
.icc-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.icc-emoji{font-size:2rem}
.icc-info{display:flex;flex-direction:column;gap:2px}
.icc-name{font:700 1rem 'Orbitron',sans-serif;color:#eef}
.icc-status{font:600 .75rem 'Nunito',sans-serif;color:rgba(255,255,255,.5)}
.icc-equipped{margin-bottom:10px}
.inventory-item-equipped{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:rgba(57,255,20,.06);border:1px solid rgba(57,255,20,.3);border-radius:10px}
.inventory-item-equipped>span:first-child{font:700 .9rem 'Nunito',sans-serif;color:var(--neon-green)}
.inv-item-desc{font:500 .75rem 'Nunito',sans-serif;color:rgba(255,255,255,.6)}
.inventory-unequip-btn{align-self:flex-start;margin-top:4px;padding:4px 12px;border-radius:8px;border:1px solid var(--neon-pink);background:rgba(255,45,123,.08);color:var(--neon-pink);font:600 .78rem 'Nunito',sans-serif;cursor:pointer;transition:.2s}
.inventory-unequip-btn:hover{background:rgba(255,45,123,.2)}
.inv-no-item{font:500 .8rem 'Nunito',sans-serif;color:rgba(255,255,255,.3);padding:8px 0}
.inventory-item-list{display:flex;flex-direction:column;gap:6px}
.inventory-equip-btn{display:flex;flex-direction:column;align-items:flex-start;padding:8px 12px;border-radius:10px;border:1px solid rgba(0,195,255,.25);background:rgba(0,195,255,.05);color:#eef;font-size:.82rem;cursor:pointer;text-align:left;transition:.2s;line-height:1.4}
.inventory-equip-btn:hover:not(:disabled){background:rgba(0,195,255,.15);border-color:rgba(0,195,255,.5)}
.inventory-equip-btn:disabled{opacity:.4;cursor:default}
.inventory-equip-btn.inv-taken{border-color:rgba(255,255,255,.1);color:rgba(255,255,255,.4)}
.inv-no-items{font:500 .78rem 'Nunito',sans-serif;color:rgba(255,255,255,.25);padding:4px 0}
.inv-locked{text-align:center;padding:40px 20px;font:600 1rem 'Nunito',sans-serif;color:rgba(255,255,255,.5)}
.inv-map-btn{margin-left:8px}
.inv-rarity-common{color:rgba(255,255,255,.5);font-size:.7rem}
.inv-rarity-uncommon{color:var(--neon-blue);font-size:.7rem}
.inv-rarity-rare{color:var(--neon-orange);font-size:.7rem}

/* ===== SPACE RHYTHM MINI-GAME ===== */
.rhythm-mg-wrap{text-align:center;user-select:none}
.rhythm-hud{display:flex;justify-content:space-between;width:100%;max-width:400px;margin:0 auto 8px;font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-blue)}
#mg-rhythm-word{font:700 1rem 'Orbitron',sans-serif;color:#eef;letter-spacing:4px;margin-bottom:6px}
.rhythm-next{color:var(--neon-orange);font-size:1.2em;text-shadow:0 0 8px rgba(255,165,0,.5)}
.rhythm-field{position:relative;width:100%;max-width:420px;height:320px;margin:0 auto 8px;background:linear-gradient(180deg,rgba(5,5,20,.9),rgba(20,10,40,.7));border-radius:var(--radius);overflow:hidden;display:flex}
.rhythm-col{flex:1;position:relative;border-right:1px solid rgba(255,255,255,.06)}
.rhythm-col:last-child{border-right:none}
.rhythm-hit-zone{position:absolute;bottom:60px;left:0;right:0;height:40px;background:rgba(255,255,255,.05);border-top:2px solid rgba(0,195,255,.3);border-bottom:2px solid rgba(0,195,255,.3);pointer-events:none;transition:.2s}
.rhythm-hit-zone.active{background:rgba(0,195,255,.15);border-color:rgba(0,195,255,.8);box-shadow:0 0 16px rgba(0,195,255,.35)}
.rhythm-falling-letter{position:absolute;left:50%;transform:translateX(-50%);font:900 1.2rem 'Orbitron',sans-serif;width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.05);color:#eef;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:border-color .1s,background .1s}
.rhythm-falling-letter.is-needed{border-color:var(--neon-orange);color:var(--neon-orange);background:rgba(255,165,0,.1);box-shadow:0 0 12px rgba(255,165,0,.3)}
.rhythm-falling-letter.hit-perfect{border-color:var(--neon-green);background:rgba(57,255,20,.3);box-shadow:0 0 20px rgba(57,255,20,.5)}
.rhythm-falling-letter.hit-good{border-color:var(--neon-blue);background:rgba(0,195,255,.3)}
.rhythm-falling-letter.hit-miss{border-color:var(--neon-pink);background:rgba(255,45,123,.2)}
.rhythm-btn-row{display:flex;gap:8px;justify-content:center;max-width:420px;margin:0 auto}
.rhythm-col-btn{flex:1;height:60px;border-radius:12px;border:2px solid rgba(0,195,255,.4);background:rgba(0,195,255,.06);color:#eef;font:900 1.4rem 'Orbitron',sans-serif;cursor:pointer;transition:.12s;position:relative;overflow:hidden}
.rhythm-col-btn:active{background:rgba(0,195,255,.25);transform:scale(.96)}
.rhythm-col-btn.correct-flash{animation:rhythmCorrectFlash .3s ease-out}
.rhythm-col-btn.wrong-flash{animation:rhythmWrongFlash .3s ease-out}
@keyframes rhythmCorrectFlash{0%,100%{background:rgba(0,195,255,.06)}50%{background:rgba(57,255,20,.3);border-color:var(--neon-green)}}
@keyframes rhythmWrongFlash{0%,100%{background:rgba(0,195,255,.06)}50%{background:rgba(255,45,123,.25);border-color:var(--neon-pink)}}
.rhythm-feedback{font:700 1rem 'Nunito',sans-serif;min-height:28px;text-align:center;margin:6px 0;transition:.2s}
.rhythm-grade-screen{text-align:center;padding:20px}
.rhythm-grade-letter{font:900 4rem 'Orbitron',sans-serif;color:var(--neon-green);text-shadow:0 0 30px rgba(57,255,20,.6);margin:16px 0}
.rhythm-grade-letter.grade-b{color:var(--neon-blue);text-shadow:0 0 30px rgba(0,195,255,.6)}
.rhythm-grade-letter.grade-c{color:var(--neon-orange);text-shadow:0 0 30px rgba(255,165,0,.6)}
.rhythm-grade-letter.grade-d{color:var(--neon-pink);text-shadow:0 0 30px rgba(255,45,123,.6)}

/* ===== RUNNER SPEED STREAK BAR ===== */
.runner-streak-bar-wrap{width:100%;max-width:420px;margin:6px auto;height:8px;background:rgba(255,255,255,.08);border-radius:4px;overflow:hidden}
.runner-streak-bar{height:100%;background:linear-gradient(90deg,var(--neon-blue),var(--neon-orange));border-radius:4px;transition:width .3s ease;width:0%}
.runner-starfield{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.runner-star{position:absolute;top:50%;width:2px;height:2px;background:#fff;border-radius:50%;animation:starScroll linear infinite}
@keyframes starScroll{from{transform:translateX(0)}to{transform:translateX(-100vw)}}
.runner-obstacle-slide{position:absolute;font-size:1.5rem;display:flex;flex-direction:column;align-items:center;gap:0;z-index:2;top:20%;animation:obstacleScroll linear forwards}
@keyframes obstacleScroll{from{transform:translateX(420px)}to{transform:translateX(-80px)}}
.runner-obs-label{font:700 .65rem 'Orbitron',sans-serif;color:#ff6644;background:rgba(0,0,0,.6);padding:1px 4px;border-radius:4px}

/* ===== FROGGER → SPACE BLASTER ===== */
.blaster-field{position:relative;width:100%;max-width:420px;height:260px;margin:8px auto;background:linear-gradient(180deg,rgba(2,2,18,.95),rgba(15,5,35,.8));border-radius:var(--radius);border:1px solid rgba(255,255,255,.08);overflow:hidden}
.blaster-cannon{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:2rem;z-index:3}
.blaster-enemy{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;z-index:2;animation:enemyDescend linear forwards}
@keyframes enemyDescend{from{top:-60px}to{top:calc(100% + 10px)}}
.blaster-enemy-emoji{font-size:1.6rem}
.blaster-enemy-letter{font:700 1rem 'Orbitron',sans-serif;background:rgba(0,0,0,.7);padding:2px 6px;border-radius:6px;color:#eef;border:1px solid rgba(255,255,255,.2)}
.blaster-enemy.needed{animation-name:enemyDescend}
.blaster-enemy.needed .blaster-enemy-letter{border-color:var(--neon-orange);color:var(--neon-orange);box-shadow:0 0 10px rgba(255,165,0,.4)}
.blaster-enemy.explode{animation:enemyExplode .4s ease-out forwards}
@keyframes enemyExplode{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(2.2)}}
.blaster-enemy.enemy-faster{animation-duration:inherit}
.blaster-btn-row{display:flex;gap:8px;justify-content:center;max-width:420px;margin:4px auto}
.blaster-btn{flex:1;max-width:80px;height:70px;border-radius:10px;border:2px solid rgba(57,255,20,.4);background:rgba(57,255,20,.05);color:#eef;font:900 1.3rem 'Orbitron',sans-serif;cursor:pointer;transition:.15s}
.blaster-btn:active{background:rgba(57,255,20,.25);transform:scale(.94)}
.blaster-word-progress{font:700 .9rem 'Orbitron',sans-serif;letter-spacing:3px;color:#eef;margin:4px 0}
.blaster-progress-done{color:var(--neon-green)}
.blaster-progress-current{color:var(--neon-orange)}
.blaster-progress-left{opacity:.35}
#mg-frogger-feedback{font:600 .85rem 'Nunito',sans-serif;margin:8px 0;min-height:24px}

/* ===== ARCHER MOVING GALLERY ===== */
.archer-combo{font:700 .8rem 'Orbitron',sans-serif;color:var(--neon-yellow);min-height:20px;text-align:center;margin-bottom:4px}
.archer-target.correct-pulse{animation:archerCorrectPulse .5s ease-out}
@keyframes archerCorrectPulse{0%,100%{box-shadow:none}50%{box-shadow:0 0 20px rgba(57,255,20,.6);border-color:var(--neon-green)}}
.archer-targets-left{font:500 .75rem 'Nunito',sans-serif;color:rgba(255,255,255,.5);text-align:center;margin-bottom:4px}
.archer-target-slide-right{animation:archerSlideRight linear forwards}
.archer-target-slide-left{animation:archerSlideLeft linear forwards}
@keyframes archerSlideRight{0%{left:-65px}100%{left:calc(100% + 65px)}}
@keyframes archerSlideLeft{100%{left:-65px}0%{left:calc(100% + 65px)}}
