:root{--bg-deep: #0a0520;--bg-card: #1a1050;--accent-yellow: #ffe94d;--accent-green: #39ff88;--accent-pink: #ff4dbd;--accent-blue: #4dc8ff;--text-main: #f0eaff;--text-muted: #a090cc;--problem-font: clamp(2.4rem, 8vw, 4rem);--btn-font: clamp(1.4rem, 4vw, 2rem)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Segoe UI,-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-main);background:linear-gradient(155deg,var(--bg-deep),#100840)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.85;background-image:linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#ffe94d,#ffe94d),linear-gradient(#fff,#fff),linear-gradient(#4dc8ff,#4dc8ff),linear-gradient(#fff,#fff),linear-gradient(#ffe94d,#ffe94d),linear-gradient(#fff,#fff),linear-gradient(#4dc8ff,#4dc8ff),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#ffe94d,#ffe94d),linear-gradient(#fff,#fff),linear-gradient(#fff,#fff),linear-gradient(#4dc8ff,#4dc8ff),linear-gradient(#fff,#fff),linear-gradient(#ffe94d,#ffe94d);background-size:3px 3px,2px 2px,2px 2px,3px 3px,2px 2px,2px 2px,3px 3px,2px 2px,2px 2px,3px 3px,2px 2px,2px 2px,3px 3px,2px 2px,2px 2px,2px 2px,3px 3px;background-position:4% 10%,12% 72%,29% 30%,40% 84%,53% 18%,64% 68%,74% 36%,82% 12%,90% 60%,96% 88%,7% 44%,18% 22%,25% 90%,34% 14%,46% 58%,58% 8%,69% 82%;background-repeat:no-repeat;animation:starDrift 14s linear infinite}@keyframes starDrift{0%{transform:translateZ(0)}to{transform:translate3d(-18px,14px,0)}}#root{position:relative;z-index:1}.app-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.screen{width:100%;max-width:600px;display:flex;flex-direction:column;align-items:center;gap:16px}.card{width:100%;background:#1a1050d1;border:1px solid rgba(77,200,255,.3);border-radius:24px;padding:32px 28px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 0 40px #4dc8ff1a,0 24px 56px #0009,inset 0 1px #ffffff12;text-align:center}.btn{border:none;border-radius:16px;cursor:pointer;font-family:inherit;font-weight:700;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.btn:active{transform:scale(.95)!important}.btn-launch{display:block;width:100%;padding:18px 24px;font-size:clamp(1.2rem,3.5vw,1.6rem);background:linear-gradient(135deg,var(--accent-yellow),#ffb347);color:#1a0840;box-shadow:0 4px 20px #ffe94d66;margin-top:16px}.btn-launch:hover{transform:translateY(-3px);box-shadow:0 8px 28px #ffe94d99;filter:brightness(1.08)}.btn-answer{min-height:72px;font-size:var(--btn-font);background:#4dc8ff1f;color:var(--text-main);border:2px solid rgba(77,200,255,.35);border-radius:16px}.btn-answer:hover{background:#4dc8ff40;border-color:var(--accent-blue);transform:translateY(-3px);box-shadow:0 6px 20px #4dc8ff59}.welcome-logo{font-size:5rem;line-height:1;margin-bottom:8px}.welcome-title{font-size:clamp(1.8rem,6vw,2.8rem);color:var(--accent-yellow);margin:0 0 12px;text-shadow:0 0 20px rgba(255,233,77,.5)}.welcome-sub{color:var(--text-muted);font-size:clamp(.95rem,2.5vw,1.1rem);margin:0 0 24px;line-height:1.5}.welcome-form{display:flex;flex-direction:column;gap:12px;text-align:left}.welcome-label{color:var(--accent-blue);font-size:1rem;font-weight:600}.welcome-input{padding:14px 16px;border-radius:12px;border:2px solid rgba(77,200,255,.4);background:#0a0520b3;color:var(--text-main);font-size:1.1rem;font-family:inherit}.welcome-input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #4dc8ff33}.hud{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 16px;background:#1a1050b3;border:1px solid rgba(77,200,255,.2);border-radius:16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hud-lives{display:flex;gap:4px;font-size:1.5rem}.life-off{opacity:.2;filter:grayscale(1)}.hud-level{font-size:1rem;font-weight:700;color:var(--accent-blue);text-transform:uppercase;letter-spacing:.06em}.hud-score{font-size:1.2rem;font-weight:700;color:var(--accent-yellow)}.story-beat{color:var(--text-muted);font-size:clamp(.9rem,2.4vw,1.05rem);margin:0 0 20px;line-height:1.5}.problem-text{font-size:var(--problem-font);font-weight:800;color:var(--text-main);margin:0 0 24px;text-shadow:0 0 24px rgba(77,200,255,.4);letter-spacing:-.01em}.answer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cadet-tag{color:var(--text-muted);font-size:.9rem;margin:0}@keyframes bounceIn{0%{transform:scale(.2);opacity:0}55%{transform:scale(1.25);opacity:1}75%{transform:scale(.9)}to{transform:scale(1)}}@keyframes slideUp{0%{transform:translateY(22px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideInProblem{0%{transform:translate(-28px) scale(.88);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes btnFadeUp{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes shakeIcon{0%,to{transform:translate(0) rotate(0)}15%{transform:translate(-14px) rotate(-6deg)}30%{transform:translate(12px) rotate(5deg)}45%{transform:translate(-9px) rotate(-3deg)}60%{transform:translate(7px) rotate(3deg)}75%{transform:translate(-4px) rotate(-1deg)}}@keyframes pulseGlow{0%,to{transform:scale(1);filter:drop-shadow(0 0 8px rgba(255,233,77,.5))}50%{transform:scale(1.18);filter:drop-shadow(0 0 28px rgba(255,233,77,1))}}@keyframes burstFloat{0%{transform:translateY(0) scale(.4) rotate(0);opacity:1}to{transform:translateY(-110vh) scale(1.4) rotate(720deg);opacity:0}}.bounce-in{animation:bounceIn .5s cubic-bezier(.36,.07,.19,.97) both}.slide-up{animation:slideUp .38s ease both}.slide-in-problem{animation:slideInProblem .42s cubic-bezier(.22,1,.36,1) both}.fade-in{animation:fadeIn .45s ease both}.btn-answer-anim{animation:btnFadeUp .38s ease both}.shake-icon{animation:shakeIcon .55s cubic-bezier(.36,.07,.19,.97) both}.pulse-glow{animation:pulseGlow 1.6s ease-in-out infinite}.starburst{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.starburst-particle{position:absolute;bottom:-5%;line-height:1;animation:burstFloat linear forwards}.overlay-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:12px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;animation:overlayIn .18s ease forwards}@keyframes overlayIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.overlay-correct{background:#0a2814eb;box-shadow:inset 0 0 120px #39ff8840}.overlay-wrong{background:#280519eb;box-shadow:inset 0 0 120px #ff4dbd33}.overlay-icon{font-size:5rem;line-height:1}.overlay-msg{font-size:clamp(1.6rem,5vw,2.4rem);font-weight:800;margin:0}.correct-msg{color:var(--accent-green)}.wrong-msg{color:var(--accent-pink)}.overlay-sub{font-size:clamp(1rem,3vw,1.4rem);color:var(--text-muted);margin:0}.overlay-sub strong{color:var(--text-main)}.levelup-icon,.gameover-icon{font-size:5rem;line-height:1;margin-bottom:8px}.levelup-title,.gameover-title{font-size:clamp(1.8rem,5vw,2.6rem);color:var(--accent-yellow);margin:0 0 8px;text-shadow:0 0 20px rgba(255,233,77,.4)}.levelup-name{color:var(--accent-blue);font-size:1.1rem;font-weight:700;margin:0 0 12px}.levelup-beat{color:var(--text-muted);font-size:clamp(.95rem,2.5vw,1.05rem);line-height:1.5;margin:0 0 16px}.levelup-score,.gameover-score{font-size:1.3rem;font-weight:700;color:var(--accent-yellow);margin:0 0 8px}.gameover-msg{color:var(--text-muted);font-size:clamp(.95rem,2.5vw,1.1rem);line-height:1.5;margin:0 0 16px}@media (max-width: 600px){.app-shell{padding:0;align-items:stretch}.screen{max-width:100%;min-height:100vh;justify-content:center;padding:16px}.card{border-radius:20px;padding:24px 18px}.btn-answer{min-height:80px}.hud{border-radius:14px}.fraction-screen{padding:8px;gap:6px}.fraction-target-card{padding:8px 14px;gap:12px}.frac-hint{display:none}.fraction-feedback{font-size:1rem;padding:10px 14px}}.fraction-screen{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:12px}.fraction-target-card{display:flex;align-items:center;gap:16px;padding:10px 18px;background:#1a1050d1;border:1px solid rgba(77,200,255,.3);border-radius:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.frac-instruction{color:var(--text-muted);font-size:1rem;flex-shrink:0}.frac-display{display:flex;flex-direction:column;align-items:center;gap:2px}.frac-num,.frac-den{font-size:clamp(1.5rem,5vw,2rem);font-weight:800;color:var(--accent-yellow);line-height:1;text-shadow:0 0 16px rgba(255,233,77,.5)}.frac-divider{display:block;width:48px;height:3px;background:var(--accent-yellow);border-radius:2px;box-shadow:0 0 8px #ffe94d80}.frac-hint{color:var(--text-muted);font-size:.9rem;flex:1;text-align:right}.fraction-canvas{width:100%;height:clamp(240px,46vh,340px);display:block;border-radius:16px;border:1px solid rgba(77,200,255,.15);background:#0a052073;touch-action:none;cursor:crosshair}.fraction-feedback{width:100%;padding:12px 20px;border-radius:12px;text-align:center;font-size:1.15rem;font-weight:700}.fb-hidden{visibility:hidden}.fb-correct{background:#39ff8826;border:1px solid #39ff88;color:#39ff88}.fb-wrong{background:#ff4dbd26;border:1px solid #ff4dbd;color:#ff4dbd}.frac-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0a0520d1;z-index:100;padding:20px}.difficulty-grid{display:flex;flex-direction:column;gap:10px;margin-top:8px}.btn-difficulty{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:14px;background:#ffffff0f;border:2px solid rgba(255,255,255,.12);color:var(--text-main);text-align:left;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease}.btn-difficulty:hover{transform:translateY(-2px);background:#ffffff1c}.diff-easy{border-color:#39ff8859}.diff-easy:hover{border-color:#39ff88}.diff-medium{border-color:#4dc8ff59}.diff-medium:hover{border-color:#4dc8ff}.diff-hard{border-color:#ff4dbd59}.diff-hard:hover{border-color:#ff4dbd}.diff-icon{font-size:1.1rem;flex-shrink:0;min-width:52px}.diff-label{font-size:1.15rem;font-weight:700;flex:1}.diff-desc{font-size:.85rem;color:var(--text-muted)}.btn-back{margin-top:12px;padding:10px 20px;border-radius:12px;background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--text-muted);font-size:.95rem;cursor:pointer;transition:color .12s ease,border-color .12s ease}.btn-back:hover{color:var(--text-main);border-color:#ffffff4d}.mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.mode-grid .btn-mode:last-child:nth-child(odd){grid-column:1 / -1}.btn-mode{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 12px;border-radius:16px;border:2px solid rgba(255,255,255,.12);background:#ffffff0f;color:var(--text-main);font-family:inherit;cursor:pointer;transition:transform .12s ease,border-color .12s ease,background .12s ease,box-shadow .12s ease}.btn-mode:hover{transform:translateY(-3px);background:#ffffff1c}.mode-icon{font-size:2rem;line-height:1}.mode-label{font-size:1rem;font-weight:700}.btn-mode-arithmetic{border-color:#ffe94d66}.btn-mode-arithmetic:hover{border-color:#ffe94d;box-shadow:0 4px 20px #ffe94d4d}.btn-mode-fractions{border-color:#ff4dbd66}.btn-mode-fractions:hover{border-color:#ff4dbd;box-shadow:0 4px 20px #ff4dbd4d}.btn-mode-geometry{border-color:#4dc8ff66}.btn-mode-geometry:hover{border-color:#4dc8ff;box-shadow:0 4px 20px #4dc8ff4d}.btn-mode-wordproblems{border-color:#39ff8866}.btn-mode-wordproblems:hover{border-color:#39ff88;box-shadow:0 4px 20px #39ff884d}.btn-mode-speeddrills{border-color:#ffa54d66}.btn-mode-speeddrills:hover{border-color:#ffa54d;box-shadow:0 4px 20px #ffa54d4d}.wp-screen{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px}.wp-card{text-align:left}.wp-story{color:var(--text-main);font-size:clamp(1rem,3vw,1.2rem);line-height:1.6;margin:0 0 12px}.wp-visual{font-size:clamp(1.2rem,3.5vw,1.6rem);text-align:center;margin:0 0 12px;letter-spacing:2px}.wp-question{color:var(--accent-yellow);font-size:clamp(1rem,3vw,1.15rem);font-weight:700;margin:0 0 16px;text-shadow:0 0 12px rgba(255,233,77,.3)}.wp-feedback{width:100%;padding:12px 20px;border-radius:12px;text-align:center;font-size:1.15rem;font-weight:700}.geo-screen{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:12px}.geo-canvas{width:100%;height:clamp(180px,32vh,260px);display:block;border-radius:16px;border:1px solid rgba(77,200,255,.15);background:#0a052073}.geo-card{text-align:center}.geo-question{color:var(--text-main);font-size:clamp(1rem,3vw,1.2rem);font-weight:600;margin:0 0 16px}.geo-feedback{width:100%;padding:12px 20px;border-radius:12px;text-align:center;font-size:1.15rem;font-weight:700}.speed-screen{width:100%;max-width:560px;display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:12px}.speed-timer-area{display:flex;align-items:center;gap:12px}.timer-bar-track{flex:1;height:14px;border-radius:7px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);overflow:hidden}.timer-bar-fill{height:100%;border-radius:7px;transition:width .1s linear}.timer-green{background:linear-gradient(90deg,#39ff88,#2ecc71);box-shadow:0 0 10px #39ff8866}.timer-yellow{background:linear-gradient(90deg,#ffe94d,#f1c40f);box-shadow:0 0 10px #ffe94d66}.timer-red{background:linear-gradient(90deg,#ff4dbd,#e74c3c);box-shadow:0 0 10px #ff4dbd66;animation:timerPulse .5s ease-in-out infinite}@keyframes timerPulse{0%,to{opacity:1}50%{opacity:.6}}.timer-text{color:var(--text-muted);font-size:1rem;font-weight:700;min-width:48px;text-align:right}.streak-badge{text-align:center;font-size:1.1rem;font-weight:700;color:var(--accent-yellow);padding:6px 16px;border-radius:12px;background:#ffe94d1a;border:1px solid rgba(255,233,77,.3)}.streak-glow{animation:pulseGlow 1.2s ease-in-out infinite;box-shadow:0 0 16px #ffe94d66}.speed-card{text-align:center}.speed-progress{text-align:center;color:var(--text-muted);font-size:.9rem}.btn-correct{background:#39ff8840!important;border-color:#39ff88!important;color:#39ff88!important}.btn-wrong{background:#ff4dbd40!important;border-color:#ff4dbd!important;color:#ff4dbd!important}@media (max-width: 600px){.mode-grid{gap:8px}.btn-mode{padding:12px 8px}.mode-icon{font-size:1.6rem}.mode-label{font-size:.85rem}.wp-screen,.geo-screen,.speed-screen{padding:8px;gap:6px}.geo-canvas{height:clamp(150px,28vh,220px)}}
