:root{--ink:#111936;--muted:#5d6684;--mint:#00e0b8;--mint-dark:#008b74;--sun:#ffd327;--orange:#ff9f1c;--coral:#ff477e;--berry:#b42dff;--violet:#5f3bff;--sky:#14b8ff;--shadow:0 24px 46px rgba(29,39,86,.20);--soft-shadow:0 12px 24px rgba(29,39,86,.14)}
*{box-sizing:border-box}
html{min-height:100%;background:#f4fbff}
body{margin:0;min-height:100vh;color:var(--ink);font-family:'Nunito',sans-serif;background:radial-gradient(circle at 18% 12%,rgba(255,247,115,.95) 0 118px,transparent 120px),radial-gradient(circle at 82% 10%,rgba(0,223,255,.75) 0 150px,transparent 152px),radial-gradient(circle at 78% 88%,rgba(255,64,132,.72) 0 210px,transparent 212px),radial-gradient(circle at 10% 80%,rgba(0,224,184,.78) 0 174px,transparent 176px),linear-gradient(160deg,#3f35ff 0%,#23c8ff 32%,#77f4d2 58%,#ffe87a 100%);overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.95;background-image:radial-gradient(circle at 20% 25%,rgba(255,255,255,.95) 0 2px,transparent 3px),radial-gradient(circle at 72% 68%,rgba(255,255,255,.70) 0 2px,transparent 3px),linear-gradient(rgba(255,255,255,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.14) 1px,transparent 1px);background-size:92px 92px,116px 116px,36px 36px,36px 36px;mask-image:linear-gradient(180deg,rgba(0,0,0,.82),rgba(0,0,0,.28))}
body::after{content:"";position:fixed;left:50%;top:49%;width:min(1040px,92vw);height:520px;transform:translate(-50%,-50%) rotate(-1deg);border-radius:60px;pointer-events:none;z-index:-1;background:linear-gradient(105deg,rgba(255,255,255,.30),rgba(255,255,255,.08)),radial-gradient(circle at 18% 18%,rgba(255,211,39,.36),transparent 34%),radial-gradient(circle at 82% 30%,rgba(180,45,255,.24),transparent 34%),radial-gradient(circle at 45% 100%,rgba(0,224,184,.30),transparent 42%);box-shadow:0 40px 90px rgba(21,36,96,.22)}
button,a{font:inherit}
button:focus-visible,a:focus-visible{outline:4px solid rgba(255,191,47,.65);outline-offset:4px}
.app{width:min(1120px,100%);min-height:100vh;margin:0 auto;padding:14px 20px 104px;position:relative}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.back-btn{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:10px 16px;color:var(--ink);text-decoration:none;font-weight:900;background:linear-gradient(180deg,#ffffff,#ffe672);border:3px solid rgba(255,255,255,.95);border-radius:999px;box-shadow:0 7px 0 rgba(217,145,0,.55),var(--soft-shadow)}
.sound-btn{width:52px;height:52px;flex:0 0 52px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:3px solid rgba(255,255,255,.95);border-radius:50%;color:#172033;background:linear-gradient(180deg,#e7fbff,#14b8ff);box-shadow:0 7px 0 #087fb3,0 13px 24px rgba(20,184,255,.30),inset 0 1px 0 rgba(255,255,255,.52);cursor:pointer;font-size:1.35rem;line-height:1}
.session-pill{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border-radius:999px;background:linear-gradient(135deg,#111936,#4620a8 58%,#b42dff);color:#fff;font-weight:900;box-shadow:var(--soft-shadow)}
.hud{display:grid;grid-template-columns:1fr minmax(280px,1.35fr) 1fr;align-items:stretch;gap:14px;margin-bottom:8px}
.hud-card,.title-card{background:linear-gradient(145deg,rgba(17,25,54,.96),rgba(53,35,138,.94));border:3px solid rgba(255,255,255,.28);border-radius:24px;box-shadow:0 9px 0 rgba(17,25,54,.26),0 18px 34px rgba(17,25,54,.22);padding:12px 16px}
.hud-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:center}
.stat-label{display:block;color:rgba(255,255,255,.66);font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.stat-value{display:block;margin-top:2px;font-size:1.1rem;font-weight:1000;color:#fff}
.title-card{text-align:center;background:radial-gradient(circle at 12% 8%,rgba(255,211,39,.70),transparent 28%),radial-gradient(circle at 86% 4%,rgba(20,184,255,.50),transparent 32%),linear-gradient(145deg,#111936,#36208f 52%,#771ec2)}
.hud-title{margin:0;color:#fff;text-shadow:0 4px 0 rgba(17,25,54,.28);font-size:2rem;font-weight:1000;line-height:1.05;letter-spacing:0}
.subtitle{margin:6px 0 0;color:#ffe672;font-size:.98rem;font-weight:800}
.progress-bar{display:flex;justify-content:center;align-items:center;gap:10px;margin:2px auto 12px;max-width:820px;padding:8px 12px;border-radius:999px;background:linear-gradient(180deg,rgba(255,255,255,.30),rgba(255,255,255,.12));border:2px solid rgba(255,255,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.40),0 10px 24px rgba(17,25,54,.14)}
.progress-dot{position:relative;width:44px;height:44px;flex:0 0 44px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0;font-size:1rem;font-weight:1000;color:#5b647d;background:radial-gradient(circle at 32% 24%,#fff 0 18%,transparent 19%),linear-gradient(180deg,#fff,#dfe9ff);border:4px solid rgba(255,255,255,.95);box-shadow:0 7px 0 rgba(17,25,54,.18),0 12px 20px rgba(17,25,54,.18),inset 0 -5px 10px rgba(80,120,180,.16)}
.progress-dot.current{color:#fff;background:linear-gradient(145deg,#ff477e,#b42dff 55%,#5f3bff);transform:translateY(-4px) scale(1.08);box-shadow:0 0 0 5px rgba(255,255,255,.34),0 0 0 10px rgba(255,211,39,.28),0 11px 0 rgba(78,25,153,.62),0 20px 28px rgba(17,25,54,.28),inset 0 -6px 12px rgba(17,25,54,.20)}
.progress-dot.completed{color:#fff;background:linear-gradient(145deg,#ffd327,#ff9f1c)}
.progress-star{position:absolute;right:-8px;bottom:-3px;z-index:2;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#4b2a00;background:linear-gradient(180deg,#fff7a8,#ffd327);border:2px solid #fff;font-size:.6rem;box-shadow:0 3px 7px rgba(17,25,54,.20)}
.game-board{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:8px 20px 86px;overflow:hidden}
.mission-shell{width:100%;display:grid;grid-template-columns:minmax(0,1.16fr) minmax(270px,.84fr);gap:20px;align-items:stretch;padding:18px;border-radius:38px;background:linear-gradient(145deg,rgba(255,255,255,.28),rgba(255,255,255,.10)),radial-gradient(circle at 10% 14%,rgba(255,211,39,.22),transparent 36%),radial-gradient(circle at 88% 80%,rgba(255,71,126,.20),transparent 38%);border:4px solid rgba(255,255,255,.30);box-shadow:0 18px 50px rgba(18,27,74,.20)}
.visual-stage{width:100%;height:406px;min-height:386px;display:flex;align-items:center;justify-content:center;padding:22px 16px;background:radial-gradient(circle at 13% 12%,rgba(255,236,88,.52),transparent 30%),radial-gradient(circle at 90% 10%,rgba(181,100,255,.38),transparent 34%),radial-gradient(circle at 18% 94%,rgba(0,224,184,.34),transparent 40%),linear-gradient(145deg,#fffdf5 0%,#eff9ff 42%,#f1e7ff 100%);border:5px solid transparent;background-clip:padding-box;border-radius:30px;box-shadow:0 0 0 5px rgba(255,255,255,.72),0 0 0 11px rgba(255,211,39,.34),0 18px 34px rgba(17,25,54,.18),var(--shadow);position:relative;overflow:hidden}
.visual-stage::after{content:"";position:absolute;inset:18px;border-radius:24px;border:2px dashed rgba(95,59,255,.12);pointer-events:none}
.stage-stack{position:relative;z-index:1;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.equation-display{display:flex;align-items:center;justify-content:center;gap:12px;font-size:2.35rem;font-weight:1000;flex-wrap:wrap}
.eq-num,.eq-q{display:inline-flex;align-items:center;justify-content:center;min-width:78px;min-height:74px;padding:12px 22px;color:#fff;border:4px solid rgba(255,255,255,.86);border-radius:24px;box-shadow:0 9px 0 rgba(17,25,54,.20),0 16px 26px rgba(17,25,54,.18)}
.eq-num{background:linear-gradient(145deg,#14b8ff,#5f3bff)}
.eq-q{background:linear-gradient(145deg,#ff9f1c,#ff477e)}
.eq-num.filled,.eq-q.filled{background:linear-gradient(180deg,#d8fff6,#00e0b8);color:#063c34}
.eq-op{color:#5f3bff;font-size:1.75rem;text-shadow:0 2px 0 rgba(255,255,255,.72)}
.groups-section{display:grid;grid-template-columns:repeat(3,minmax(116px,1fr));gap:12px;justify-content:center;align-content:center;width:100%;max-width:570px}
.visual-group{background:linear-gradient(145deg,rgba(255,255,255,.88),rgba(255,255,255,.50));border:3px solid rgba(95,59,255,.18);border-radius:22px;padding:9px 10px;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;min-height:86px;box-shadow:0 9px 18px rgba(17,25,54,.12),inset 0 1px 0 rgba(255,255,255,.72)}
.group-badge{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;background:linear-gradient(145deg,#fff7b8,#ffd327);box-shadow:0 4px 0 rgba(217,145,0,.42);font-size:1.25rem}
.group-model{min-width:0;display:grid;gap:5px}
.group-label{font-size:.86rem;font-weight:1000;color:#111936;line-height:1}
.place-model{display:grid;gap:4px}
.tens-row,.ones-row{display:flex;align-items:center;gap:3px;flex-wrap:wrap;min-height:13px}
.ten-rod{width:22px;height:10px;border-radius:999px;background:linear-gradient(90deg,#14b8ff,#5f3bff);box-shadow:0 2px 0 rgba(17,25,54,.16)}
.one-dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(180deg,#ff7aa2,#ff477e);box-shadow:0 2px 0 rgba(145,20,70,.18)}
.visual-stage.dense-groups .stage-stack{gap:9px}
.visual-stage.dense-groups .equation-display{font-size:2.02rem;gap:9px}
.visual-stage.dense-groups .eq-num,.visual-stage.dense-groups .eq-q{min-width:66px;min-height:60px;padding:8px 16px;border-radius:20px}
.visual-stage.dense-groups .groups-section{grid-template-columns:repeat(3,minmax(104px,1fr));gap:8px}
.visual-stage.dense-groups .visual-group{min-height:72px;padding:7px 8px;border-width:2px;border-radius:18px;grid-template-columns:28px minmax(0,1fr)}
.visual-stage.dense-groups .group-badge{width:28px;height:28px;border-radius:10px;font-size:1rem}
.visual-stage.dense-groups .group-label{font-size:.78rem}
.visual-stage.dense-groups .ten-rod{width:18px;height:8px}.visual-stage.dense-groups .one-dot{width:7px;height:7px}
@keyframes popIn{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.14);opacity:1}100%{transform:scale(1);opacity:1}}
.coach-panel{display:flex;flex-direction:column;gap:12px;justify-content:center}
.answer-panel{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:12px}
.question-card{width:100%;padding:18px;text-align:center;background:radial-gradient(circle at 20% 0%,rgba(255,211,39,.32),transparent 34%),linear-gradient(145deg,#fff,#fff1f8);border:3px solid rgba(255,71,126,.38);border-radius:24px;box-shadow:0 9px 0 rgba(255,71,126,.18),0 16px 28px rgba(17,25,54,.14)}
.step-indicator{font-size:.92rem;font-weight:1000;padding:7px 14px;border-radius:999px;margin-bottom:12px;display:inline-flex;align-items:center;justify-content:center;min-height:34px;color:#111936;background:linear-gradient(180deg,#fff7b8,#ffd327);box-shadow:0 4px 0 rgba(217,145,0,.42)}
.question-text{margin:0 0 16px;color:var(--ink);font-size:1.18rem;font-weight:1000;line-height:1.35}
.options-row{width:100%;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:12px}
.choice-btn{min-height:66px;padding:12px 14px;color:#111827;border:0;border-radius:22px;background:linear-gradient(180deg,#fff7b8,#ffd327);box-shadow:0 8px 0 #d99100,0 14px 24px rgba(255,210,46,.34);cursor:pointer;font-size:1.24rem;font-weight:1000;line-height:1.15;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s ease,filter .18s ease}
.choice-btn:hover{transform:translateY(-4px);box-shadow:0 0 0 6px rgba(255,79,123,.28),0 8px 0 #d99100,0 18px 28px rgba(255,210,46,.34)}
.choice-btn:nth-child(2){background:linear-gradient(180deg,#e7fbff,#14b8ff);box-shadow:0 8px 0 #087fb3,0 14px 24px rgba(20,184,255,.30);color:#08243a}
.choice-btn:nth-child(3){background:linear-gradient(180deg,#f6e8ff,#c85cff);box-shadow:0 8px 0 #7421aa,0 14px 24px rgba(180,45,255,.25)}
.choice-btn:nth-child(4){background:linear-gradient(180deg,#ffe3ec,#ff7aa2);box-shadow:0 8px 0 #b91d4c,0 14px 24px rgba(255,71,126,.26)}
.choice-btn.correct{background:linear-gradient(180deg,#d8fff6,#00e0b8);box-shadow:0 8px 0 var(--mint-dark),0 14px 24px rgba(0,224,184,.30);color:#063c34;animation:correctPop .4s ease}
.choice-btn.wrong{background:linear-gradient(180deg,#ffe2df,#ff4f4f);box-shadow:0 8px 0 #bf2525,0 14px 24px rgba(255,79,79,.25);color:#fff;animation:shake .36s}
.choice-btn:disabled{cursor:not-allowed;filter:saturate(.75);opacity:.72;transform:none}
@keyframes correctPop{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
.guide-section{position:fixed;bottom:12px;left:50%;transform:translateX(-50%);z-index:40;width:min(940px,calc(100% - 32px));display:flex;align-items:flex-end;justify-content:center;gap:12px;pointer-events:none}
.guide-bubble{pointer-events:auto;max-width:760px;min-height:58px;padding:13px 18px;color:#172033;background:linear-gradient(145deg,#fff,#e7fff9);border:3px solid rgba(0,224,184,.42);border-radius:20px 20px 6px 20px;box-shadow:0 8px 0 rgba(0,139,116,.16),var(--soft-shadow);font-size:1.08rem;font-weight:900;line-height:1.35;text-align:center}
.guide-avatar{flex:0 0 auto;font-size:2.8rem;filter:drop-shadow(0 9px 12px rgba(24,32,52,.24))}
.modal,.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;background:rgba(16,24,40,.42);backdrop-filter:blur(10px)}
.modal.hidden,.overlay{display:none}.overlay.active{display:flex}
.modal-content,.overlay-content{width:min(520px,100%);text-align:center;padding:36px;border-radius:32px;background:radial-gradient(circle at 22% 8%,rgba(255,211,39,.30),transparent 34%),radial-gradient(circle at 82% 14%,rgba(20,184,255,.24),transparent 34%),linear-gradient(145deg,#fff,#f3fbff);border:3px solid rgba(255,255,255,.86);box-shadow:0 30px 80px rgba(16,24,40,.25);animation:modalAppear .45s cubic-bezier(.34,1.56,.64,1)}
@keyframes modalAppear{0%{opacity:0;transform:scale(.9) translateY(20px)}100%{opacity:1;transform:scale(1) translateY(0)}}
.modal-icon,.overlay-icon{width:92px;height:92px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;border-radius:28px;background:linear-gradient(135deg,var(--sky),var(--violet));color:#fff;font-size:3.7rem;font-weight:1000;box-shadow:0 18px 30px rgba(80,184,255,.24)}
.modal-content h2,.overlay-title{margin:0 0 10px;font-size:1.75rem;line-height:1.1;font-weight:1000;color:var(--ink)}
.modal-content p{margin:0 auto 24px;color:var(--muted);font-size:1.05rem;line-height:1.45;font-weight:800}
.btn-start-game,.btn-next{min-height:56px;padding:14px 30px;border:0;border-radius:999px;color:#172033;background:linear-gradient(180deg,#ffdb68,var(--sun));box-shadow:0 8px 0 #d69000,0 16px 24px rgba(255,191,47,.24);cursor:pointer;font-weight:1000;font-size:1.08rem}
.btn-start-game:hover,.btn-next:hover{transform:translateY(-3px);box-shadow:0 0 0 6px rgba(255,191,47,.24),0 8px 0 #d69000,0 18px 28px rgba(255,191,47,.25)}
.overlay-stars{font-size:2.2rem;margin:18px 0 22px;color:var(--sun)}
.confetti-container,.particle-container{position:fixed;pointer-events:none;z-index:99}
.particle{position:absolute;width:7px;height:7px;border-radius:50%;pointer-events:none;animation:particleBurst .7s ease-out forwards}
@keyframes particleBurst{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(0)}}
.confetti-piece{position:absolute;width:10px;height:10px;border-radius:3px;animation:confetti-fall 2s ease-out forwards}
@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0deg);opacity:1}100%{transform:translateY(100vh) rotate(720deg);opacity:0}}
@media(max-width:900px){.app{padding-inline:14px}.hud{grid-template-columns:1fr}.hud-card{grid-template-columns:repeat(4,minmax(0,1fr))}.mission-shell{grid-template-columns:1fr}.visual-stage{height:340px;min-height:320px}.answer-panel{max-width:720px;margin:0 auto}}
@media(max-width:560px){.app{padding:12px 10px 132px}.session-pill{display:none}.sound-btn{width:46px;height:46px;flex-basis:46px;font-size:1.18rem}.back-btn{min-height:44px;padding:8px 12px}.hud-title{font-size:1.45rem}.subtitle{font-size:.84rem}.hud-card{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}.progress-bar{flex-wrap:wrap;gap:8px;padding:7px 8px;border-radius:22px}.progress-dot{width:38px;height:38px;flex-basis:38px;font-size:.9rem;border-width:3px}.game-board{gap:12px;padding:8px 0 118px}.mission-shell{padding:10px;border-radius:28px}.visual-stage{height:320px;min-height:300px;padding:16px 8px;border-radius:22px}.equation-display{font-size:1.6rem;gap:7px}.eq-num,.eq-q{min-width:54px;min-height:54px;padding:8px 12px;border-radius:16px}.groups-section{grid-template-columns:repeat(2,minmax(110px,1fr));gap:8px}.visual-group{min-height:70px;padding:7px 8px;border-radius:16px}.options-row{gap:8px}.choice-btn{min-height:54px;font-size:1rem;border-radius:16px}.question-text{font-size:1.03rem}.guide-section{width:calc(100% - 18px);gap:8px;bottom:16px}.guide-bubble{font-size:.86rem;padding:10px 12px;min-height:52px}.guide-avatar{font-size:2.2rem}}
