.boundary-scene{display:grid;justify-items:center;gap:12px;padding:18px;border-radius:8px;background:linear-gradient(180deg,#eef6ff,#fff);border:1px solid rgba(19,127,236,.16);text-align:center}.boundary-scene p{margin:0;color:var(--muted);font-weight:750}.boundary-scene--no{background:linear-gradient(180deg,#fff1f2,#fff);border-color:#dc262629}.boundary-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.boundary-choice{min-height:88px;border:2px solid rgba(31,41,55,.12);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-weight:850;padding:14px;box-shadow:0 12px 24px #0f172a14}.boundary-choice.is-selected{border-color:var(--blue);background:#eaf3fe}.boundary-choice.is-correct{border-color:#2f8a46;background:#ecfdf5}.boundary-choice.is-wrong{border-color:#dc2626;background:#fff1f2}.boundary-choice-grid--multi .boundary-choice{display:flex;align-items:center;justify-content:flex-start;gap:10px;text-align:left}.boundary-choice__check{display:grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border-radius:8px;border:2px solid rgba(31,41,55,.16);color:#fff;background:#fff;font-weight:900}.boundary-choice.is-selected .boundary-choice__check{border-color:var(--blue);background:var(--blue)}.boundary-no-button{width:min(100%,360px);min-height:132px;margin:0 auto;display:grid;place-items:center;border:0;border-radius:8px;background:#dc2626;color:#fff;font:inherit;font-size:clamp(3.4rem,18vw,6.5rem);font-weight:1000;letter-spacing:0;box-shadow:0 22px 46px #dc262647;animation:boundary-no-pulse .9s ease-in-out infinite}.boundary-no-button.is-pressed{animation:none;transform:scale(.98)}@keyframes boundary-no-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}.child-safety-card{position:relative;display:grid;gap:18px;padding:22px 20px;overflow:hidden;border-color:#d6dfeb;border-radius:24px;background:linear-gradient(180deg,#fffffffa,#f4fafff2),#fff;box-shadow:0 18px 32px #1d242e14}.phone-shell.phone-shell--soft:has(.bottom-nav):has(.child-safety-card) .phone-scroll{padding-bottom:calc(58px + env(safe-area-inset-bottom,0px))}.phone-scroll:has(.child-safety-card)>.practice-actions{margin-top:8px}.child-safety-card:after{content:"";position:absolute;inset:auto -14px -28px auto;width:118px;height:118px;border-radius:999px;background:#137fec14;pointer-events:none}.child-safety-card>*{position:relative;z-index:1}.child-safety-celebration{pointer-events:none;position:absolute;inset:0;overflow:hidden;z-index:3}.child-safety-confetti{position:absolute;top:-18px;width:10px;height:18px;border-radius:3px;opacity:0;animation:child-safety-fall 1.65s cubic-bezier(.2,.72,.26,1) forwards;box-shadow:22vw 10px #ffd54f,-18vw -4px #137fec,36vw -10px #2f8a46}.child-safety-confetti:after{content:none}.child-safety-confetti.c1{left:4%;background:#137fec;animation-delay:0s}.child-safety-confetti.c2{left:14%;background:#ffd54f;animation-delay:.11s}.child-safety-confetti.c3{left:24%;background:#2f8a46;animation-delay:.04s}.child-safety-confetti.c4{left:34%;background:#ff8b5e;animation-delay:.19s}.child-safety-confetti.c5{left:44%;background:#ef476f;animation-delay:.08s}.child-safety-confetti.c6{left:54%;background:#137fec;animation-delay:.24s}.child-safety-confetti.c7{left:64%;background:#ffd54f;animation-delay:.15s}.child-safety-confetti.c8{left:74%;background:#2f8a46;animation-delay:.28s}.child-safety-confetti.c9{left:84%;background:#ff8b5e;animation-delay:.06s}.child-safety-confetti.c10{left:94%;background:#137fec;animation-delay:.2s}.child-safety-confetti:nth-child(n+11){animation-delay:.34s}.child-safety-confetti:nth-child(n+21){animation-delay:.62s}.child-safety-confetti:nth-child(3n){animation-duration:2.25s}.child-safety-confetti:nth-child(4n){margin-left:12px}.child-safety-confetti:nth-child(5n){margin-left:-10px}.child-safety-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.child-safety-card__top>div{display:grid;gap:8px;min-width:0}.child-safety-card__top h2{margin:0;line-height:1.05}.child-safety-card__top .practice-prompt{margin:0;line-height:1.45}.child-safety-card__top>button{flex:0 0 auto}.child-safety-visual{display:inline-grid;place-items:center;width:108px;height:108px;border:2px solid rgba(19,127,236,.14);border-radius:28px;background:radial-gradient(circle at top,rgba(255,213,79,.38),transparent 54%),linear-gradient(180deg,#fff,#eff6ff);box-shadow:inset 0 -4px #005baf14,0 10px 20px #1d242e0f}.child-safety-visual img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.child-safety-cta{min-height:62px;border-radius:22px;font-size:18px;font-weight:950;box-shadow:inset 0 -5px #00438073,0 12px 22px #137fec24;touch-action:manipulation}.child-safety-secondary{justify-self:center;color:var(--blue-dark);font-weight:900}.helpline-carousel{display:block}.helpline-carousel__card{grid-area:card;position:relative;display:grid;justify-items:center;gap:10px;min-height:314px;padding:22px 20px 24px;border:2px solid #cfe0f8;border-radius:28px;background:radial-gradient(circle at 86% 9%,rgba(255,213,79,.4),transparent 17%),linear-gradient(180deg,#fff,#f4f9ff 72%,#fff9ea);text-align:center;box-shadow:inset 0 -4px #137fec14,0 12px 24px #1d242e0f}.helpline-carousel__card:after{content:"";position:absolute;inset:12px 12px auto auto;width:30px;height:30px;border-radius:999px;background:#ffd54f4d}.helpline-carousel__card strong{font-size:26px;line-height:1.2;max-width:100%;overflow-wrap:anywhere}.helpline-carousel__card span{color:var(--muted);font-size:15px;line-height:1.4}.helpline-carousel__card b{color:var(--blue-dark);font-size:44px;line-height:1;letter-spacing:.08em}.helpline-carousel .child-safety-visual{width:120px;height:120px;border-radius:30px}.helpline-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px}.helpline-progress-row:after{content:""}.helpline-progress-row>.mini-action{justify-self:start;min-height:44px;min-width:96px;margin:0;border-color:#b8d6f7;background:#fff;color:var(--blue-dark);box-shadow:inset 0 -4px #137fec24,0 8px 18px #1d242e0f}.helpline-progress-row>.mini-action:disabled{cursor:default;opacity:.52;transform:none}.helpline-progress-dots{display:flex;justify-content:center;gap:10px}.helpline-progress-dots__dot{width:14px;height:14px;border-radius:999px;background:#d7dde5;transition:transform .16s ease,background .16s ease}.helpline-progress-dots__dot.is-seen{background:#9fc5ef}.helpline-progress-dots__dot.is-active{transform:scale(1.2);background:var(--blue)}@keyframes flipCard{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}@keyframes pulseMatch{0%{transform:scale(1);opacity:1}50%{transform:scale(1.08)}to{transform:scale(1)}}@keyframes shimmer{0%,to{box-shadow:0 0 #7fcf9099}50%{box-shadow:0 0 0 6px #7fcf9000}}@keyframes wiggleNo{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.helpline-memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;perspective:1200px}.helpline-memory-card{position:relative;min-height:150px;padding:0;border:0;background:transparent;touch-action:manipulation;cursor:pointer;perspective:1000px}.helpline-memory-card.is-matched{cursor:default;pointer-events:none}.helpline-memory-card.is-wrong-pair{cursor:default;animation:wiggleNo .4s ease-in-out}.helpline-memory-card__face{display:grid;align-content:center;justify-items:center;gap:8px;width:100%;min-height:150px;padding:14px 10px;border:2.5px solid #d6deea;border-radius:26px;text-align:center;background:linear-gradient(180deg,#fff,#f8fbff 68%,#fff8ec);transition:transform .28s cubic-bezier(.68,-.55,.265,1.55),box-shadow .24s ease,border-color .24s ease,background .24s ease;transform-style:preserve-3d;backface-visibility:hidden}.helpline-memory-card.is-flipped .helpline-memory-card__face--front{transform:rotateY(0)}.helpline-memory-card.is-flipped .helpline-memory-card__face--back{transform:rotateY(180deg)}.helpline-memory-card__face--front,.helpline-memory-card__face--back{position:absolute;inset:0;border-radius:26px}.helpline-memory-card__face--front{transform:rotateY(180deg);background:linear-gradient(180deg,#fff,#f4f9ff 68%,#fef5dc)}.helpline-memory-card__face--back{background:radial-gradient(circle at top left,rgba(255,255,255,.25),transparent 50%),linear-gradient(135deg,#4a9eff,#137fec,#0b62ba);box-shadow:inset 0 -6px #00438066;color:#fff;display:grid;place-items:center}.helpline-memory-card:not(.is-matched):hover .helpline-memory-card__face,.helpline-memory-card:not(.is-matched):focus-visible .helpline-memory-card__face{transform:translateY(-4px) scale(1.02);box-shadow:0 16px 32px #137fec33}.helpline-memory-card:not(.is-matched){cursor:pointer}.helpline-memory-card__face strong,.helpline-memory-card__face small{line-height:1.3;color:#1b3f7b;position:relative;z-index:1;max-width:100%;overflow-wrap:anywhere}.helpline-memory-card__face strong{font-size:15px;font-weight:700}.helpline-memory-card__face small{font-size:12px;color:#6b7c92}.helpline-memory-card .child-safety-visual{width:70px;height:70px;border-radius:20px}.helpline-memory-card__face--back:before{content:"?";position:absolute;inset:0;display:grid;place-items:center;font-size:52px;font-weight:900;color:#fff9;text-shadow:0 2px 8px rgba(0,67,128,.3)}.helpline-memory-card.is-wrong-pair .helpline-memory-card__face{border-color:#ff8b5e;background:linear-gradient(180deg,#fff5f1,#ffe7db 76%);box-shadow:inset 0 -4px #ff6b6b2e,0 12px 22px #ff6b6b1f}.helpline-memory-card.is-matched .helpline-memory-card__face--front{border-color:#7fcf90;background:linear-gradient(180deg,#fff,#eefbee 65%,#e0f5df);box-shadow:inset 0 -4px #2673372e,0 14px 28px #7fcf9026;animation:pulseMatch .5s cubic-bezier(.34,1.56,.64,1)}.helpline-memory-card.is-matched:after{content:"✓";position:absolute;top:8px;right:8px;width:28px;height:28px;background:linear-gradient(135deg,#7fcf90,#5db873);color:#fff;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:16px;box-shadow:0 4px 12px #7fcf9066;animation:shimmer .8s ease-out}.helpline-choice-scene,.helpline-dialer__scene{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;padding:16px;border:2px solid #cfdff0;border-radius:26px;background:linear-gradient(180deg,#fffdf7,#e8f1ff);box-shadow:0 18px 50px #376cb414}.helpline-choice-scene--scenario{grid-template-columns:1fr;justify-items:stretch;padding:16px}.helpline-choice-scene--scenario .helpline-choice-scene__copy{order:1}.helpline-choice-scene--scenario .child-safety-visual{order:2;width:100%;height:auto;aspect-ratio:16 / 9;border-radius:24px}.helpline-choice-scene__copy,.helpline-dialer__copy{display:grid;gap:6px}.helpline-choice-scene__copy strong,.helpline-dialer__copy strong{font-size:20px;color:#1b3f7b}.helpline-choice-scene__copy p,.helpline-dialer__copy p{color:var(--muted);font-size:15px;line-height:1.5}.helpline-choice-options{display:grid;gap:12px}.helpline-choice-option{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;width:100%;padding:14px;border:2px solid #d7dde5;border-radius:26px;background:linear-gradient(180deg,#fff,#f4f9ff 78%,#fffaf0);text-align:left;box-shadow:inset 0 -4px #137fec14,0 8px 20px #1d242e0d;touch-action:manipulation;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.helpline-choice-option:hover,.helpline-choice-option:focus-visible{transform:translateY(-2px)}.helpline-choice-option.is-selected{border-color:#8eb9e9}.helpline-choice-option.is-correct{border-color:#7fcf90;background:linear-gradient(180deg,#fff,#edfbee 78%,#e4f6e3);box-shadow:inset 0 -4px #26733724,0 8px 20px #26733714}.helpline-choice-option.is-wrong{border-color:#ff8b5e;background:linear-gradient(180deg,#fff,#fff6ef 78%,#ffe7da);box-shadow:inset 0 -4px #ff6b6b24,0 8px 20px #ff6b6b14}.helpline-choice-option__copy{display:grid;gap:4px;min-width:0}.helpline-choice-option__copy strong{font-size:19px;line-height:1.2;overflow-wrap:anywhere}.helpline-choice-option__copy b{color:var(--blue-dark);font-size:26px;line-height:1;letter-spacing:.06em}.helpline-dialer{display:grid;gap:16px;padding:22px;border:2px solid #d7dde5;border-radius:32px;background:linear-gradient(180deg,#fff,#f3f8ff 68%,#fff8f2);box-shadow:inset 0 -4px #137fec14}.helpline-dialer__screen{display:grid;place-items:center;min-height:100px;padding:14px 18px;border:2px solid #b4cff0;border-radius:26px;background:linear-gradient(180deg,#eef7ff,#dfeeff);box-shadow:inset 0 -3px #1048941a}.helpline-dialer__screen span{color:var(--blue-dark);font-size:32px;font-weight:900;letter-spacing:.18em}.helpline-dialer__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.helpline-dialer__key{min-height:80px;border:0;border-radius:28px;background:linear-gradient(180deg,#fff,#f4f9ff);color:#143c7b;font-size:30px;font-weight:900;box-shadow:inset 0 -5px #137fec24,0 12px 22px #1d242e14;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;touch-action:manipulation}.helpline-dialer__key:hover,.helpline-dialer__key:focus-visible{transform:translateY(-1px);box-shadow:inset 0 -5px #137fec2e,0 14px 26px #1d242e1f;background:linear-gradient(180deg,#fff,#e9f1ff)}.helpline-dialer__key:last-child{grid-column:2}.helpline-dialer__actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:10px;align-items:center}.helpline-dialer__actions .mini-action,.helpline-dialer__actions .primary-action{margin-top:0}.helpline-voice-service{display:grid;gap:14px}.helpline-voice-service__number{display:grid;place-items:center;min-height:124px;border:2px solid #b4cff0;border-radius:28px;background:radial-gradient(circle at 80% 18%,rgba(255,213,79,.36),transparent 24%),linear-gradient(180deg,#eef7ff,#dfeeff);box-shadow:inset 0 -4px #1048941a;text-align:center}.helpline-voice-service__number span{color:#4b607a;font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.helpline-voice-service__number strong{color:var(--blue-dark);font-size:54px;line-height:1;letter-spacing:.12em}.helpline-voice-service__visual{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;padding:14px;border:2px solid #d7dde5;border-radius:26px;background:linear-gradient(180deg,#fff,#f4f9ff 78%,#fffaf0)}.helpline-voice-service__visual .child-safety-visual{width:118px;height:118px}.helpline-voice-service__visual p{margin:0;color:var(--muted);line-height:1.5}.helpline-voice-target{margin:0}.child-safety-feedback{margin-top:0}@keyframes child-safety-fall{0%{opacity:0;transform:translate3d(0,-40px,0) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate3d(-28px,680px,0) rotate(560deg)}}@media(max-width:430px){.child-safety-card{padding:20px 18px;border-radius:22px}.child-safety-card__top{gap:12px}.child-safety-card__top h2{font-size:23px}.helpline-memory-grid{gap:12px}.helpline-memory-card,.helpline-memory-card__face{min-height:138px}.helpline-choice-option{padding:12px;border-radius:24px}.helpline-choice-option .child-safety-visual{width:92px;height:92px;border-radius:24px}}@media(max-width:380px){.child-safety-card__top,.helpline-choice-scene,.helpline-dialer__scene,.helpline-dialer__actions{grid-template-columns:1fr}.child-safety-card__top{display:grid}.helpline-carousel__card{min-height:284px}.helpline-carousel .child-safety-visual{width:108px;height:108px}.helpline-memory-card,.helpline-memory-card__face{min-height:116px}.helpline-memory-card .child-safety-visual{width:58px;height:58px;border-radius:18px}.helpline-memory-card__face strong{font-size:14px}.helpline-dialer__grid{gap:8px}.helpline-dialer__key{min-height:62px;border-radius:20px}.helpline-voice-service__visual{grid-template-columns:1fr}.helpline-voice-service__visual .child-safety-visual{width:100%;height:auto;aspect-ratio:1 / 1}}.phonics-stage{position:relative;padding:24px 0 18px;border-radius:28px;background:linear-gradient(145deg,#fef4f8,#f0e8ff 40%,#e2f6f0);overflow:hidden}.phonics-stage:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 20%,rgba(255,182,193,.25) 0%,transparent 50%),radial-gradient(circle at 88% 75%,rgba(167,139,250,.18) 0%,transparent 50%),radial-gradient(circle at 50% 5%,rgba(255,213,79,.15) 0%,transparent 40%);pointer-events:none;z-index:0}.phonics-stage>*{position:relative;z-index:1}.phonics-stage__header{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:16px;padding:0 20px}.phonics-stage__header .eyebrow{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;background:#ffffffb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#7c3aed;font-size:12px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.phonics-stage__header h1{margin:0;color:#312e81;font-size:22px;line-height:1.25;text-align:center}.phonics-level-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 14px;border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.phonics-level-badge--sound{background:linear-gradient(135deg,#fce4ec,#f8bbd0);color:#880e4f}.phonics-level-badge--image{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);color:#1b5e20}.phonics-level-badge--blend{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#0d47a1}.phonics-hero-letter{display:flex;align-items:center;justify-content:center;width:140px;height:140px;margin:12px auto 16px;border-radius:32px;background:linear-gradient(145deg,#fff,#f3e8ff);border:4px solid rgba(167,139,250,.3);box-shadow:0 8px 32px #7c3aed26,inset 0 -4px #a78bfa1f;animation:phonics-pop .5s cubic-bezier(.34,1.56,.64,1)}.phonics-hero-letter span{font-size:80px;font-weight:900;color:#5b21b6;line-height:1;text-shadow:0 2px 0 rgba(91,33,182,.15)}@keyframes phonics-pop{0%{opacity:0;transform:scale(.4) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}.phonics-emoji-hero{display:flex;flex-direction:column;align-items:center;gap:8px;margin:12px auto 16px;animation:phonics-float 3s ease-in-out infinite}.phonics-emoji-hero__icon{display:flex;align-items:center;justify-content:center;width:130px;height:130px;border-radius:50%;background:linear-gradient(145deg,#fff,#fffde7);border:4px solid rgba(255,213,79,.4);box-shadow:0 8px 32px #ff98001f,inset 0 -4px #ffd54f26;font-size:70px;line-height:1}.phonics-emoji-hero__word{padding:6px 18px;border-radius:999px;background:#ffffffd1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#b45309;font-size:20px;font-weight:900;letter-spacing:.02em}@keyframes phonics-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.phonics-blend-display{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px auto 8px;padding:16px 20px;flex-wrap:wrap}.phonics-blend-letter{display:flex;align-items:center;justify-content:center;width:64px;height:72px;border-radius:18px;background:linear-gradient(145deg,#fff,#ede9fe);border:3px solid rgba(167,139,250,.35);box-shadow:0 4px 16px #7c3aed1a,inset 0 -3px #a78bfa1a;font-size:38px;font-weight:900;color:#6d28d9;animation:phonics-pop .5s cubic-bezier(.34,1.56,.64,1) both}.phonics-blend-letter:nth-child(2){animation-delay:.1s}.phonics-blend-letter:nth-child(3){animation-delay:.2s}.phonics-blend-letter:nth-child(4){animation-delay:.3s}.phonics-blend-letter:nth-child(5){animation-delay:.4s}.phonics-blend-letter:nth-child(6){animation-delay:.5s}.phonics-blend-letter:nth-child(7){animation-delay:.6s}.phonics-blend-plus{font-size:28px;font-weight:900;color:#a78bfa;opacity:.7}.phonics-blend-emoji{display:flex;align-items:center;justify-content:center;margin:4px auto 12px;font-size:56px;line-height:1;animation:phonics-float 3s ease-in-out infinite}.phonics-prompt{margin:0;padding:0 20px;color:#4c1d95;font-size:17px;font-weight:750;line-height:1.4;text-align:center}.phonics-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 16px}.phonics-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:72px;padding:14px 8px;border:3px solid rgba(167,139,250,.2);border-radius:20px;background:#ffffffe0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#374151;font-size:22px;font-weight:900;cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease;box-shadow:0 3px 12px #0000000d,inset 0 -3px #0000000a}.phonics-option:active{transform:scale(.94)}.phonics-option:hover{border-color:#7c3aed59;box-shadow:0 4px 18px #7c3aed1f,inset 0 -3px #0000000a}.phonics-option.is-correct{border-color:#16a34a;background:linear-gradient(145deg,#dcfce7,#bbf7d0);color:#166534;box-shadow:0 0 0 3px #16a34a26,0 4px 18px #16a34a1f;animation:phonics-correct-bounce .5s cubic-bezier(.34,1.56,.64,1)}.phonics-option.is-wrong{border-color:#ef4444;background:linear-gradient(145deg,#fef2f2,#fecaca);color:#991b1b;animation:phonics-shake .45s ease}.phonics-option__sound-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:999px;background:#7c3aed14;color:#7c3aed}@keyframes phonics-correct-bounce{0%{transform:scale(1)}30%{transform:scale(1.12)}60%{transform:scale(.96)}to{transform:scale(1)}}@keyframes phonics-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.phonics-listen-button{display:inline-flex;align-items:center;gap:8px;margin:0 auto;padding:10px 22px;border:2px solid rgba(124,58,237,.2);border-radius:999px;background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#6d28d9;font-size:14px;font-weight:800;cursor:pointer;transition:background .15s ease,border-color .15s ease}.phonics-listen-button:hover{background:#fffffff2;border-color:#7c3aed66}.phonics-listen-row{display:flex;justify-content:center;margin-top:10px;margin-bottom:6px}.phonics-celebration{position:fixed;inset:0;pointer-events:none;z-index:999;overflow:hidden}.phonics-confetti{position:absolute;top:-20px;width:12px;height:12px;border-radius:3px;animation:phonics-fall 1.4s ease-in forwards}.phonics-confetti.c1{left:5%;background:#f472b6;animation-delay:0s}.phonics-confetti.c2{left:15%;background:#fbbf24;animation-delay:.08s;border-radius:999px}.phonics-confetti.c3{left:25%;background:#34d399;animation-delay:.16s}.phonics-confetti.c4{left:35%;background:#60a5fa;animation-delay:.04s;border-radius:999px}.phonics-confetti.c5{left:45%;background:#a78bfa;animation-delay:.12s}.phonics-confetti.c6{left:55%;background:#fb923c;animation-delay:.2s;border-radius:999px}.phonics-confetti.c7{left:65%;background:#f472b6;animation-delay:.07s}.phonics-confetti.c8{left:75%;background:#4ade80;animation-delay:.15s;border-radius:999px}.phonics-confetti.c9{left:85%;background:#818cf8;animation-delay:.1s}.phonics-confetti.c10{left:92%;background:#fcd34d;animation-delay:.06s;border-radius:999px}.phonics-confetti.c11{left:10%;background:#38bdf8;animation-delay:.22s}.phonics-confetti.c12{left:30%;background:#e879f9;animation-delay:.18s;border-radius:999px}.phonics-confetti.c13{left:50%;background:#fca5a5;animation-delay:.14s}.phonics-confetti.c14{left:70%;background:#86efac;animation-delay:.24s;border-radius:999px}.phonics-confetti.c15{left:80%;background:#fde68a;animation-delay:.03s}.phonics-confetti.c16{left:40%;background:#c4b5fd;animation-delay:.11s;border-radius:999px}@keyframes phonics-fall{0%{opacity:1;transform:translateY(0) rotate(0) scale(1)}to{opacity:0;transform:translateY(100vh) rotate(720deg) scale(.3)}}.phonics-complete{display:flex;flex-direction:column;align-items:center;gap:8px;margin:16px 0;padding:20px;border-radius:24px;background:linear-gradient(145deg,#ffffffe6,#fde68a4d);border:2px solid rgba(251,191,36,.25)}.phonics-complete__stars{display:flex;gap:4px;font-size:38px;line-height:1}.phonics-complete__stars span{opacity:.25;transition:opacity .25s ease,transform .25s ease}.phonics-complete__stars span.is-lit{opacity:1;animation:phonics-star-pop .4s cubic-bezier(.34,1.56,.64,1) both}.phonics-complete__stars span.is-lit:nth-child(2){animation-delay:.15s}.phonics-complete__stars span.is-lit:nth-child(3){animation-delay:.3s}@keyframes phonics-star-pop{0%{transform:scale(.3) rotate(-15deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.phonics-complete strong{color:#92400e;font-size:20px;font-weight:900}.phonics-feedback{display:flex;align-items:center;justify-content:center;gap:8px;margin:12px 16px;padding:14px 18px;border-radius:16px;font-weight:800;font-size:16px;animation:phonics-pop .3s cubic-bezier(.34,1.56,.64,1)}.phonics-feedback--correct{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:2px solid rgba(22,163,74,.2);color:#166534}.phonics-feedback--wrong{background:linear-gradient(135deg,#fef2f2,#fecaca);border:2px solid rgba(239,68,68,.2);color:#991b1b}:root{--eklavya-blue: #137fec;--eklavya-blue-600: #0e6bcc;--eklavya-blue-50: #eaf3fe;--font-display: "Instrument Serif", Georgia, serif;--font-sans: "Manrope", system-ui, -apple-system, sans-serif;--surface: #f9f7f2;--surface-dim: #ece9e1;--card: #ffffff;--ink: #1b1c19;--muted: #5b6170;--line: #dfddd6;--line-strong: #c3c7d0;--blue: #137fec;--blue-dark: #005baf;--yellow: #ffd54f;--yellow-dark: #a98100;--green: #267337;--green-soft: #dff3dc;--orange: #ffb74d;--orange-soft: #fff0d8;--red-soft: #ffe1e1;--shadow-soft: 0 18px 60px rgba(25, 29, 35, .12);color:var(--ink);font-family:Noto Sans Kannada,Nirmala UI,Tunga,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis-weight:none}.hygiene-activity{display:grid;gap:16px}.hygiene-sequence-slots,.hygiene-sort-bins{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.hygiene-slot,.hygiene-sort-bin,.hygiene-draggable-card{border:2px solid rgba(31,41,55,.1);border-radius:8px;background:#fff7ed;color:#111827;font:inherit}.hygiene-slot{min-height:92px;display:grid;align-content:center;justify-items:center;gap:8px;padding:12px}.hygiene-slot.is-filled{border-color:#34d399;background:#ecfdf5}.hygiene-slot-number{display:grid;width:28px;height:28px;place-items:center;border-radius:999px;background:#2563eb;color:#fff;font-weight:800}.hygiene-slot-empty{width:52px;height:32px;border:2px dashed rgba(31,41,55,.2);border-radius:8px}.hygiene-card-tray{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}.hygiene-draggable-card{min-height:72px;padding:12px;cursor:grab;font-weight:800;box-shadow:0 10px 24px #0f172a14}.hygiene-draggable-card.is-selected{border-color:#2563eb;background:#eff6ff}.hygiene-sort-bin{min-height:140px;padding:14px;background:#f0fdf4}.hygiene-sort-bin:nth-child(2){background:#fef2f2}.hygiene-bin-stack{display:grid;gap:8px;margin-top:12px}.hygiene-bin-card{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:8px;background:#ffffffd9;font-weight:750}.letter-builder{position:relative;display:grid;justify-items:center;gap:16px;padding:16px;border:2px solid #d8e8fb;border-radius:8px;background:#f7fbff;overflow:hidden}.letter-builder__picture{display:grid;width:min(100%,220px);aspect-ratio:1;place-items:center;border-radius:8px;background:linear-gradient(180deg,#fff8d8,#eaf3fe);border:2px solid rgba(19,127,236,.14)}.letter-builder__picture span{font-size:96px;line-height:1}.letter-builder__target{display:inline-flex;align-items:baseline;justify-content:center;gap:10px;flex-wrap:wrap;color:var(--blue-dark);line-height:1.1;text-align:center}.letter-builder__target span{color:var(--muted);font-size:18px;font-weight:800}.letter-builder__target strong{color:var(--blue-dark);font-size:32px;font-weight:950}.letter-builder__slots,.letter-builder__tray{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.letter-builder__slot,.letter-builder__tile{display:grid;width:64px;height:64px;place-items:center;border-radius:8px;font:inherit;font-size:22px;font-weight:900;letter-spacing:0}.letter-builder__slot{border:2px dashed rgba(31,41,55,.24);background:#fff;color:var(--ink)}.letter-builder__slot.is-filled{border-style:solid;border-color:#34d399;background:#ecfdf5;animation:letter-slot-pop .18s ease-out}.letter-builder__slot>span:empty{width:24px;height:6px;border-radius:999px;background:#1f29372e}.letter-builder__tile{border:0;background:#ffe8ef;color:#1f2937;box-shadow:inset 0 -5px #be185d29,0 10px 20px #0f172a14;cursor:grab}.letter-builder__tile:nth-child(2n){background:#e0f2fe;box-shadow:inset 0 -5px #0284c724,0 10px 20px #0f172a14}.letter-builder__tile:nth-child(3n){background:#dcfce7;box-shadow:inset 0 -5px #16a34a24,0 10px 20px #0f172a14}.letter-builder__tile.is-selected{outline:3px solid var(--blue);outline-offset:2px}.letter-builder.is-complete .letter-builder__slots{animation:letter-block-merge .42s ease-out}.letter-builder__confetti{position:absolute;inset:0;pointer-events:none}.letter-builder__confetti span{position:absolute;top:45%;left:50%;width:9px;height:14px;border-radius:3px;background:#137fec;animation:letter-confetti .76s ease-out forwards}.letter-builder__confetti span:nth-child(2n){background:#ffd54f}.letter-builder__confetti span:nth-child(3n){background:#2f8a46}.letter-builder__confetti span:nth-child(1){--x: -92px;--y: -72px}.letter-builder__confetti span:nth-child(2){--x: -58px;--y: -98px}.letter-builder__confetti span:nth-child(3){--x: -24px;--y: -66px}.letter-builder__confetti span:nth-child(4){--x: 18px;--y: -104px}.letter-builder__confetti span:nth-child(5){--x: 54px;--y: -74px}.letter-builder__confetti span:nth-child(6){--x: 94px;--y: -48px}.letter-builder__confetti span:nth-child(7){--x: -78px;--y: 20px}.letter-builder__confetti span:nth-child(8){--x: -32px;--y: 48px}.letter-builder__confetti span:nth-child(9){--x: 42px;--y: 42px}.letter-builder__confetti span:nth-child(10){--x: 86px;--y: 12px}@keyframes letter-slot-pop{0%{transform:scale(.9)}to{transform:scale(1)}}@keyframes letter-block-merge{0%,to{gap:10px;transform:scale(1)}55%{gap:2px;transform:scale(1.04)}}@keyframes letter-confetti{0%{opacity:1;transform:translate(-50%,-50%) scale(.6) rotate(0)}to{opacity:0;transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1) rotate(220deg)}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}button,input,select{font:inherit}button{cursor:pointer}body{background:linear-gradient(90deg,rgba(19,127,236,.05),transparent 18%,transparent 82%,rgba(38,115,55,.06)),var(--surface);color:var(--ink);font-family:var(--font-sans),"Noto Sans Kannada","Nirmala UI","Tunga",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.brand-logo{height:28px;width:auto}.app-root{min-height:100vh;display:grid;place-items:center;padding:24px}.app-root--group{display:block;padding:0}.phone-shell{position:relative;display:flex;flex-direction:column;width:min(100%,410px);height:min(880px,calc(100vh - 48px));min-height:min(880px,calc(100vh - 48px));overflow:hidden;scrollbar-width:none;border:8px solid var(--surface-dim);border-radius:36px;background:var(--surface);box-shadow:var(--shadow-soft);padding:24px}.phone-shell::-webkit-scrollbar{display:none}.phone-shell--soft{background:#f4f2ec}.phone-shell:has(.bottom-nav),.phone-shell:has(.auth-footer){padding-bottom:24px}.phone-scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:12px 0 26px;scrollbar-width:none}.phone-scroll::-webkit-scrollbar{display:none}.phone-shell:has(.bottom-nav) .phone-scroll{padding-bottom:calc(112px + env(safe-area-inset-bottom,0))}.phone-shell:has(.auth-footer) .phone-scroll{padding-bottom:calc(96px + env(safe-area-inset-bottom,0))}.phone-shell:not(:has(.phone-scroll)){overflow-y:auto}.phone-shell:not(:has(.phone-scroll)):has(.bottom-nav){padding-bottom:132px}.phone-shell:not(:has(.phone-scroll)):has(.auth-footer){padding-bottom:112px}.phone-header,.top-brand{flex:0 0 auto;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:80px;margin:-24px -24px 0;padding:24px 24px 12px;background:linear-gradient(180deg,#f4f2ecfa,#f4f2ecf5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.phone-header strong,.top-brand strong,.top-brand>span:not(.header-spacer){flex:1;min-width:0}.phone-header strong{display:inline-flex;align-items:center;justify-content:center;gap:9px;color:transparent;font-size:0}.phone-header strong:before{content:"";width:28px;height:28px;background:url(/eklavya-logo.png) center / contain no-repeat}.phone-header strong:after{content:"Eklavya";color:var(--blue-dark);font-size:18px;font-weight:900;line-height:1}.top-brand>span:not(.header-spacer){justify-content:center;text-align:center}.header-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;min-width:48px}.phone-header>.header-actions,.top-brand>.header-actions{margin-left:auto}.section-score-bar{align-items:center;background:linear-gradient(135deg,#eef8ff,#fff9dd);border:1px solid rgba(14,113,190,.18);border-radius:18px;box-shadow:0 8px 18px #1a4c7414;display:grid;flex:0 0 auto;gap:10px;grid-template-columns:auto minmax(0,1fr) auto;margin:0 0 10px;padding:8px 12px}.section-score-bar__icon{align-items:center;background:#e0f2ff;border-radius:50%;color:#0874c9;display:inline-flex;height:30px;justify-content:center;width:30px}.section-score-bar__copy{display:grid;gap:1px;min-width:0}.section-score-bar__copy strong{color:#17273d;font-size:.92rem}.section-score-bar__value{color:#066bb7;font-size:1.35rem;letter-spacing:-.04em}.header-listen-row{display:flex;justify-content:flex-end;min-height:40px;margin:-4px 0 12px}.header-listen-row .audio-button{flex:0 0 auto}.language-menu{position:relative;z-index:30;display:inline-flex}.lang-toggle{align-self:center;align-items:center;gap:2px;padding:3px;border-radius:999px;background:#14181e0f;border:1px solid var(--line)}.lang-toggle__opt{appearance:none;border:none;background:transparent;color:var(--muted);padding:5px 11px;font-size:12px;font-weight:800;line-height:1;border-radius:999px;cursor:pointer;transition:background .12s ease,color .12s ease}.lang-toggle__opt[aria-pressed=true]{background:var(--surface);color:var(--blue-dark);box-shadow:0 2px 6px #14181e1f}.header-spacer{width:84px;height:48px}.phone-header--tall{align-items:flex-start}.top-brand{color:var(--blue-dark);font-size:18px;font-weight:900}.icon-button,.audio-button{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:0;border-radius:999px;background:#ffffffdb;color:#2d3748}.audio-button{background:var(--blue);color:#fff;box-shadow:inset 0 -4px #0043808c}.audio-button--compact{width:40px;height:40px}.phone-header--question-audio .audio-button{display:none}.phone-header--question-audio{position:relative;justify-content:center;min-height:48px}.phone-header--question-audio>.icon-button{position:absolute;left:0}.phone-header--question-audio .header-actions{position:absolute;right:0}.phone-header--question-audio>.language-menu{position:absolute;right:0}.gili-button{position:relative;width:84px;height:84px;border:4px solid #f2c231;border-radius:999px;background:radial-gradient(circle at 50% 35%,#fef5c8,var(--yellow));box-shadow:inset 0 -5px #a9810052}.gili-face{position:absolute;inset:13px 17px 18px;display:block;border-radius:48% 48% 44% 44%;background:linear-gradient(150deg,#83d36a,#238342)}.gili-face:before,.gili-face:after{content:"";position:absolute;bottom:5px;width:16px;height:28px;border-radius:999px 999px 8px 8px;background:#2c9d51}.gili-face:before{left:-7px;transform:rotate(-24deg)}.gili-face:after{right:-7px;transform:rotate(24deg)}.gili-eye{position:absolute;top:14px;width:10px;height:10px;border-radius:999px;background:#111827;z-index:1}.gili-eye--left{left:14px}.gili-eye--right{right:14px}.gili-beak{position:absolute;left:50%;top:26px;width:18px;height:12px;border-radius:0 0 14px 14px;background:var(--orange);transform:translate(-50%);z-index:1}.gili-audio{position:absolute;right:-5px;bottom:2px;display:grid;width:30px;height:30px;place-items:center;border:3px solid var(--surface);border-radius:999px;background:var(--blue);color:#fff}.brand-lockup{display:grid;gap:22px;justify-items:center;padding-top:30px;text-align:center}.brand-lockup h1{margin:0;color:var(--blue-dark);font-size:48px;line-height:1}.brand-subtitle,.mode-panel p,.ladder-intro p,.math-prompt p,.dashboard-main p,.console-main p{color:var(--muted)}.eyebrow,.mode-pill{margin:0 0 6px;color:#374151;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.splash-screen{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:28px}.mode-panel{display:grid;gap:16px}.prompt-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px}.prompt-row>h1,.prompt-row>h2{flex:1 1 auto;min-width:0}.prompt-row .audio-button{flex:none}.prompt-row--center{justify-content:center;flex-wrap:wrap}.prompt-row--center>h1,.prompt-row--center>h2{flex:0 1 auto}.prompt-row h2,.speech-card h1,.tap-training h1,.home-greeting h1,.recommendation-card h2,.ladder-intro h1,.odu-stage h1,.math-prompt h1,.garden-hero h1{margin:0;font-size:34px;line-height:1.25}.mode-card,.avatar-card,.primary-action,.secondary-action,.quick-actions button,.secondary-link,.presenter-toggle button,.roster-card button,.load-next-card button{min-height:64px;border-radius:24px;font-weight:800}.mode-card{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:14px;padding:20px;border:2px solid var(--line);background:var(--card);color:var(--ink);text-align:left;box-shadow:inset 0 -4px 0 var(--line)}.secondary-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:transparent;color:var(--blue-dark)}.speech-card,.recommendation-card,.profile-strip,.placement-sample,.feedback-card,.metric-card,.heat-panel,.roster-panel,.routine-panel{border:2px solid var(--line);border-radius:20px;background:var(--card)}.speech-card{position:relative;display:flex;gap:12px;align-items:center;margin:24px 0;padding:18px}.teacher-login-panel{display:grid;gap:14px;margin-top:28px;padding:24px;border:2px solid var(--line);border-radius:20px;background:var(--card)}.teacher-login-panel h1,.teacher-login-panel p{margin:0}.teacher-login-panel h1{color:var(--blue-dark);font-size:34px;line-height:1.15}.teacher-login-panel p{color:var(--muted)}.teacher-login-icon{display:inline-grid;width:62px;height:62px;place-items:center;border-radius:999px;background:var(--green-soft);color:var(--green)}.teacher-login-form{display:grid;gap:12px;margin-top:8px}.teacher-login-form label{color:#313846;font-size:14px;font-weight:850}.teacher-login-form input{width:100%;min-height:52px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:10px 12px}.teacher-login-error{padding:12px;border:2px solid #df8a8a;border-radius:12px;background:var(--red-soft);color:#742a2a;font-weight:800}.learner-access-card{display:grid;gap:14px;margin-bottom:18px;padding:18px;border:2px solid var(--line);border-radius:20px;background:var(--card)}.learner-access-card .prompt-row{display:grid;gap:12px}.learner-access-card h2{margin:0;font-size:24px;line-height:1.18}.learner-access-site{display:inline-flex;margin-top:4px;color:var(--blue-dark);font-size:13px;font-weight:850;text-decoration:none}.learner-access-help{margin:0;color:var(--muted);font-size:13px;font-weight:750;line-height:1.35}.learner-access-help--compact{margin-top:-2px}.segmented-control{display:inline-flex;flex:0 0 auto;gap:4px;padding:4px;border:1px solid var(--line);border-radius:999px;background:#f3f7fb}.segmented-control button{display:inline-flex;align-items:center;gap:5px;min-height:34px;border:0;border-radius:999px;background:transparent;color:var(--muted);padding:0 12px;font-size:12px;font-weight:900}.segmented-control button.is-active{background:#fff;color:var(--blue-dark);box-shadow:0 1px 4px #1f29371f}.learner-access-form{display:grid;gap:10px}.learner-access-form label{color:#313846;font-size:13px;font-weight:850}.learner-access-form input,.learner-access-form select{width:100%;min-height:48px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:10px 12px}.learner-access-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;border-radius:18px}.learner-access-modes button{justify-content:center;min-height:44px;border-radius:14px;padding:0 10px;text-align:center}.learner-demo-action{margin-bottom:0;border-color:#b9d8c1;background:var(--green-soft);color:#155020}.learner-demo-action:hover{border-color:#82bd8f;background:#dcf3df}.signin-screen{flex:1;display:flex;flex-direction:column;gap:14px}.signin-screen .icon-button{width:44px;height:44px;background:#ffffffe6;box-shadow:0 1px #1f29370a}.signin-screen .gili-button{width:66px;height:66px;border-width:3px;box-shadow:inset 0 -4px #a9810042}.signin-screen .gili-face{inset:10px 13px 14px}.signin-screen .gili-face:before,.signin-screen .gili-face:after{bottom:4px;width:13px;height:22px}.signin-screen .gili-face:before{left:-5px}.signin-screen .gili-face:after{right:-5px}.signin-screen .gili-eye{top:11px;width:8px;height:8px}.signin-screen .gili-eye--left{left:11px}.signin-screen .gili-eye--right{right:11px}.signin-screen .gili-beak{top:21px;width:15px;height:10px}.signin-screen .gili-audio{right:-5px;bottom:5px;width:24px;height:24px}.signin-screen .gili-audio svg{width:13px;height:13px}.signin-screen .speech-card{margin:0;padding:16px;align-items:center;justify-content:space-between;gap:12px;border-radius:16px;border-color:#d8d5cc;box-shadow:0 1px #1f293708}.signin-screen .speech-card h1{max-width:230px;font-size:clamp(26px,7vw,31px);line-height:1.13;letter-spacing:0}.signin-screen .audio-button--compact{flex:0 0 auto;width:38px;height:38px;box-shadow:inset 0 -3px #0043808c}.signin-screen .learner-access-card{gap:12px;margin-bottom:0;padding:16px;border-radius:16px;border-color:#d8d5cc;box-shadow:0 1px #1f293708}.signin-screen .learner-access-card .prompt-row{gap:10px}.signin-screen .learner-access-card h2{font-size:21px;line-height:1.12}.signin-screen .learner-access-site{margin-top:2px;font-size:11px;line-height:1.2}.signin-screen .learner-access-help{font-size:12px;line-height:1.35}.signin-screen .segmented-control{padding:3px;border-radius:15px;background:#f4f9ff}.signin-screen .learner-access-modes button{min-height:38px;padding:0 6px;border-radius:12px;gap:4px;font-size:10px;line-height:1.05}.signin-screen .learner-access-modes button svg{flex:0 0 auto;width:13px;height:13px}.signin-screen .learner-access-form{gap:9px}.signin-screen .learner-access-form label{font-size:12px;line-height:1.1}.signin-screen .learner-access-form input,.signin-screen .learner-access-form select{min-height:48px;border-width:1px;border-color:#d8d5cc;border-radius:13px;box-shadow:inset 0 1px #1f293708}.signin-screen .learner-access-form input:focus,.signin-screen .learner-access-form select:focus{outline:2px solid rgba(19,127,236,.22);outline-offset:2px;border-color:#9bc8f7}.signin-screen .secondary-action{min-height:54px;margin-top:4px;border-width:1px;border-color:#d8d5cc;border-radius:999px;background:#fff;color:var(--blue-dark);box-shadow:inset 0 -2px #dfddd6a6}.signin-screen .secondary-action:hover{border-color:#b8d6f7;background:#f8fbff}.signin-screen .learner-demo-action{margin-top:2px;background:#fff;color:var(--blue-dark);border-color:#d8d5cc}.avatar-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.avatar-card{display:grid;gap:10px;justify-items:center;min-height:160px;padding:16px;border:2px solid var(--line);background:var(--card);box-shadow:inset 0 -5px 0 var(--line);color:var(--ink);font-size:24px;font-weight:800}.avatar-token{display:inline-grid;width:68px;height:68px;place-items:center;border-radius:999px;color:#123;font-size:28px;font-weight:900}.skip-button{border:0;background:transparent;color:var(--muted);font-weight:800}.tap-training{display:grid;min-height:680px;align-content:center;justify-items:center;gap:32px;text-align:center}.tap-target{display:grid;width:190px;height:190px;place-items:center;border:0;border-radius:999px;background:var(--yellow);color:#6e5100;box-shadow:inset 0 -9px 0 var(--yellow-dark);animation:breathe 1.9s ease-in-out infinite}.tap-hint{position:relative;width:80px;height:70px}.tap-hint span{position:absolute;inset:4px 18px;border-radius:24px 24px 10px 10px;background:var(--blue);transform:rotate(-22deg);animation:tap 1.1s ease-in-out infinite}.tiny-note{max-width:280px;color:var(--muted);font-size:13px}.home-greeting{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:4px 0 14px}.mode-pill{display:inline-flex;margin-bottom:8px;padding:5px 10px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:900;line-height:1;text-transform:uppercase}.home-greeting .gili-button{width:58px;height:58px;border-width:3px;box-shadow:inset 0 -4px #a981003d}.home-greeting .gili-face{inset:9px 12px 13px}.home-greeting .gili-face:before,.home-greeting .gili-face:after{bottom:4px;width:12px;height:20px}.home-greeting .gili-face:before{left:-5px}.home-greeting .gili-face:after{right:-5px}.home-greeting .gili-eye{top:10px;width:7px;height:7px}.home-greeting .gili-eye--left{left:10px}.home-greeting .gili-eye--right{right:10px}.home-greeting .gili-beak{top:19px;width:14px;height:9px}.home-greeting .gili-audio{right:-6px;bottom:3px;width:23px;height:23px}.home-greeting .gili-audio svg{width:13px;height:13px}.recommendation-card{position:relative;overflow:hidden;display:grid;gap:24px;padding:26px}.recommendation-card--student{gap:0;padding:0;border-radius:16px;border-color:#d8d5cc;box-shadow:0 1px #1f293708}.student-today-image{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover}.student-today-body{display:grid;gap:13px;padding:16px}.student-today-body .prompt-row{flex-wrap:nowrap;gap:10px}.student-today-body .prompt-row h2{font-size:25px;line-height:1.1}.student-today-body .audio-button--compact{flex:0 0 auto;width:38px;height:38px;box-shadow:inset 0 -3px #0043808c}.grid-paper{position:absolute;inset:0 0 0 auto;width:92px;opacity:.5;background-image:linear-gradient(var(--line) 2px,transparent 2px),linear-gradient(90deg,var(--line) 2px,transparent 2px);background-size:22px 22px}.akshara-row{display:flex;gap:18px}.akshara-row span,.choice-row button,.akshara-builder button,.number-options button{display:grid;min-width:76px;min-height:76px;place-items:center;border:2px solid #e5bd2c;border-radius:18px;background:var(--yellow);color:#655000;font-size:46px;font-weight:900;box-shadow:inset 0 -5px 0 var(--yellow-dark)}.primary-action{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;border:0;border-radius:999px;background:var(--blue);color:#fff;box-shadow:inset 0 -5px 0 var(--blue-dark);padding:0 24px}.primary-action--green{background:var(--green);box-shadow:inset 0 -5px #155020}.primary-action--giant{min-height:58px;border-radius:17px;font-size:18px;font-weight:950}.primary-action--inline{width:auto;min-width:190px}.secondary-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-bottom:10px;border:2px solid var(--line);border-radius:999px;background:var(--card);color:var(--blue-dark);padding:0 22px}.profile-strip{display:flex;justify-content:space-between;gap:16px;margin:12px 0;padding:16px;border-radius:16px;border-color:#d8d5cc}.profile-strip strong{display:block;font-size:20px}.profile-strip span{display:block;color:var(--muted)}.today-token{display:inline-grid;width:fit-content;min-width:116px;min-height:78px;place-items:center;border:3px solid #e5bd2c;border-radius:22px;background:var(--yellow);color:#655000;padding:0 24px;font-size:42px;line-height:1;box-shadow:inset 0 -6px 0 var(--yellow-dark)}.today-sentence{margin:0;color:var(--muted);font-size:20px;font-weight:800;line-height:1.35}.today-sentence--recommendation{color:#1f2937;font-size:15px;font-weight:850;line-height:1.4}.home-progress-card{display:grid;gap:9px;padding:13px;border:2px solid #d8e8fb;border-radius:18px;background:#f4f9ff}.home-progress-card__top,.home-progress-card__bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.home-progress-card__top{color:#263f63;font-size:12px;font-weight:950;text-transform:uppercase}.home-progress-card__top strong{display:inline-flex;min-height:26px;align-items:center;border-radius:999px;background:#e3f0ff;color:var(--blue-dark);padding:0 9px;font-size:12px}.home-progress-track{height:10px;overflow:hidden;border-radius:999px;background:#d6dde8}.home-progress-track span{display:block;max-width:100%;height:100%;border-radius:inherit;background:var(--blue);box-shadow:inset 0 -2px 0 var(--blue-dark)}.home-progress-card__bottom{color:#5a6880;font-size:12px;font-weight:900}.home-progress-card__bottom span:last-child{display:inline-flex;align-items:center;gap:4px;color:var(--green)}.garden-badge{display:grid;width:72px;height:72px;place-items:center;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:20px;font-weight:900}.quick-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.quick-actions--simple{margin-top:14px}.quick-actions button{display:grid;place-items:center;gap:8px;min-height:82px;border:2px solid var(--line);border-bottom-width:5px;border-bottom-color:#c9c5bb;border-radius:20px;background:var(--card);color:var(--ink);font-size:16px;font-weight:900;box-shadow:0 8px 18px #1f293712;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background-color .14s ease}.quick-actions button:hover{transform:translateY(-2px);border-color:#b8d6f7;border-bottom-color:var(--blue-dark);background:#f8fbff;box-shadow:0 12px 24px #137fec21}.quick-actions button:active{transform:translateY(2px);border-bottom-width:2px;box-shadow:0 5px 12px #1f293714}.quick-actions button:focus-visible{outline:3px solid rgba(19,127,236,.28);outline-offset:3px}.bottom-nav{position:absolute;left:0;right:0;bottom:0;width:auto;display:grid;grid-template-columns:repeat(3,1fr);min-height:82px;margin:0;border-top:2px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;padding-bottom:env(safe-area-inset-bottom,0)}.auth-footer{position:absolute;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:center;justify-content:center;min-height:72px;width:auto;margin:0;border-top:2px solid var(--line);background:#fffffff5;color:var(--blue-dark);font-weight:900;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-bottom:env(safe-area-inset-bottom,0)}.auth-footer span{display:inline-flex;align-items:center;gap:10px}.bottom-nav button{display:grid;place-items:center;border:0;background:transparent;color:#273041;font-size:13px;font-weight:800}.bottom-nav .active{margin:10px;border-radius:999px;background:var(--yellow)}.ladder-intro,.math-prompt,.garden-hero{margin:28px 0;text-align:center}.ladder{display:grid;gap:0}.ladder-rung{position:relative;display:grid;grid-template-columns:36px 1fr;align-items:center;gap:14px;min-height:58px;padding:8px 4px;border:0;border-radius:0;background:transparent;color:var(--muted);font-weight:800;cursor:default;transition:color .16s ease,transform .16s ease}.placement-ladder{position:relative;padding:2px 0 4px}.placement-ladder:before{content:"";position:absolute;left:21px;top:21px;bottom:21px;width:2px;border-radius:999px;background:#dedbd2}.ladder-rung__marker{position:relative;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:2px solid #dedbd2;border-radius:999px;background:var(--surface);color:#6d7282;font-size:14px;line-height:1}.ladder-rung__label{display:flex;align-items:center;min-height:42px;color:#626877;font-size:20px;line-height:1.2}.ladder-rung.is-active,.ladder-rung.is-complete{color:var(--green)}.ladder-rung.is-complete .ladder-rung__marker{border-color:var(--green);background:var(--green);color:#fff}.ladder-rung.is-complete .ladder-rung__label{color:var(--green)}.ladder-rung.is-current{color:#875100;transform:none}.ladder-rung.is-current:before{content:none}.ladder-rung.is-current .ladder-rung__marker{border-color:var(--orange);background:var(--orange);color:#fff}.ladder-rung.is-current .ladder-rung__label{color:#875100}.ladder-rung.is-locked{background:transparent;color:#6d7282}.ladder-rung.is-preview .ladder-rung__marker{background:#fbfaf7}.placement-completion-bar{display:flex;align-items:center;gap:12px;min-height:68px;margin:18px 0;padding:0 18px;border:2px solid #a6d5ac;border-radius:18px;background:var(--green-soft);color:var(--green);font-size:18px;font-weight:900;box-shadow:inset 0 -3px #2673371f}.placement-completion-bar__icon{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:var(--green);color:#fff}.placement-completion-bar__icon svg{flex:0 0 auto;stroke-width:3}.placement-sample{margin:22px 0;padding:20px}.placement-replay{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;width:100%;margin:0;padding:0 16px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:15px;font-weight:900;box-shadow:inset 0 -4px 0 var(--blue-dark),0 10px 22px #137fec33;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease;animation:actionNudge 2.6s ease-in-out infinite}.placement-replay:hover{transform:translateY(-1px);background:var(--eklavya-blue-600);box-shadow:inset 0 -4px 0 var(--blue-dark),0 14px 28px #137fec42}.placement-replay:active{transform:translateY(2px);box-shadow:inset 0 -2px 0 var(--blue-dark),0 6px 14px #137fec2e}.placement-replay svg{flex:0 0 auto}.placement-tts-control{display:grid;gap:11px;width:100%;padding:14px;border:2px solid #d8e8fb;border-radius:18px;background:#f4f9ff}.placement-tts-control__top{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#263f63;font-size:12px;font-weight:950;text-transform:uppercase}.placement-tts-control__top strong{display:inline-flex;min-height:26px;align-items:center;border-radius:999px;background:#e3f0ff;color:var(--blue-dark);padding:0 9px;font-size:12px}.placement-speed-slider{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;color:#5a6880;font-size:12px;font-weight:900}.placement-speed-slider input{width:100%;min-width:0;height:28px;accent-color:var(--blue);cursor:pointer}.placement-choice-row button{min-width:90px;padding:0 14px;font-size:clamp(30px,9vw,46px)}.placement-choice-row--stack{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.placement-choice-row--stack button{width:100%;min-width:0;min-height:58px;justify-content:center;padding:0 12px;overflow:hidden;font-size:clamp(18px,4.9vw,22px);line-height:1.05;text-align:center;text-overflow:ellipsis;white-space:normal}.placement-choice-row--stack button:nth-child(3){grid-column:1 / -1}.placement-choice-row button:focus-visible,.placement-replay:focus-visible{outline:3px solid rgba(19,127,236,.35);outline-offset:4px}.placement-step{display:grid;gap:12px;overflow:hidden}.placement-step h2{overflow-wrap:anywhere}.placement-target,.placement-passage{color:#525a70;line-height:1.45;overflow-wrap:anywhere}.placement-target{display:block;padding:12px 14px;border-radius:16px;background:#fffaf0;color:var(--ink);font-size:clamp(25px,7.2vw,34px);font-weight:900;line-height:1.2;box-shadow:inset 0 -3px #ffb74d47}.placement-target.voice-target--word{font-size:clamp(34px,11vw,54px);letter-spacing:0;text-align:center}.placement-passage{font-size:clamp(18px,4.8vw,22px)}.placement-passage--muted{padding-bottom:2px}.placement-done{margin-top:18px;margin-bottom:18px}.voice-capture-root{display:grid;gap:12px;width:100%;margin-top:6px}.voice-capture-mic,.voice-capture-stop,.voice-capture-link{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;border-radius:999px;font-weight:900;transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease}.voice-capture-mic{width:100%;min-width:0;border:0;background:var(--blue);color:#fff;padding:0 16px;box-shadow:inset 0 -4px 0 var(--blue-dark),0 12px 24px #137fec38;animation:actionNudge 2.6s ease-in-out infinite}.voice-capture-mic span:last-child{min-width:0;overflow-wrap:anywhere}.voice-capture-mic:hover{transform:translateY(-1px);background:var(--eklavya-blue-600);box-shadow:inset 0 -4px 0 var(--blue-dark),0 16px 30px #137fec47}.voice-capture-mic:active,.voice-capture-stop:active,.voice-capture-link:active{transform:translateY(2px)}.voice-capture-mic-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:#ffffff29}.voice-capture-listening,.voice-capture-transcribing,.voice-capture-echo{display:grid;justify-items:center;gap:10px;width:100%;padding:16px;border:2px solid #b9d8ff;border-radius:18px;background:#f3f8ff;color:#12345a}.voice-capture-listening p,.voice-capture-transcribing p{margin:0;font-size:14px;font-weight:900}.voice-capture-orb{position:relative;display:grid;width:58px;height:58px;place-items:center;border-radius:999px;background:var(--blue);color:#fff;box-shadow:0 0 #137fec5c;animation:voicePulse 1.35s ease-out infinite}.voice-capture-wave{display:flex;align-items:end;justify-content:center;gap:4px;height:24px}.voice-capture-wave i{display:block;width:5px;height:10px;border-radius:999px;background:var(--blue);animation:voiceBars .78s ease-in-out infinite}.voice-capture-wave i:nth-child(2){animation-delay:.1s}.voice-capture-wave i:nth-child(3){animation-delay:.2s}.voice-capture-wave i:nth-child(4){animation-delay:.3s}.voice-capture-stop{width:100%;border:0;background:#2a2f3a;color:#fff;box-shadow:inset 0 -4px #111827,0 10px 20px #11182729}.voice-capture-transcribing svg:first-child{color:var(--blue);animation:spin .85s linear infinite}.voice-capture-transcribing svg:last-child{color:#4d6d96}.voice-capture-echo{align-items:start;justify-items:stretch;text-align:left}.voice-capture-echo small{color:#4d5e7a;font-size:12px;font-weight:900;text-transform:uppercase}.voice-capture-echo strong{color:var(--ink);font-size:18px;line-height:1.3;overflow-wrap:anywhere}.voice-capture-verdict{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:fit-content;min-height:34px;margin:-2px auto 0;padding:0 12px;border-radius:999px;font-size:13px;font-weight:950}.voice-capture-verdict--pass{background:var(--green-soft);color:var(--green)}.voice-capture-verdict--retry{background:var(--orange-soft);color:#865100}.voice-capture-link{justify-self:center;min-height:38px;border:0;background:transparent;color:var(--blue-dark);padding:0 10px;font-size:13px}.voice-capture-root--error{padding:14px;border:2px solid #ffcaca;border-radius:18px;background:var(--red-soft)}.voice-capture-error-title,.voice-capture-error-body{margin:0}.voice-capture-error-title{color:#7a1d1d;font-weight:950}.voice-capture-error-body{color:#714141;font-size:13px}.voice-capture-error-body--alt{color:#875151}@keyframes voicePulse{0%{box-shadow:0 0 #137fec57}70%{box-shadow:0 0 0 16px #137fec00}to{box-shadow:0 0 #137fec00}}@keyframes voiceBars{0%,to{height:8px;opacity:.55}50%{height:24px;opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes actionNudge{0%,72%,to{transform:translateY(0);box-shadow:inset 0 -4px 0 var(--blue-dark),0 12px 24px #137fec38}82%{transform:translateY(-2px);box-shadow:inset 0 -4px 0 var(--blue-dark),0 18px 30px #137fec4d}90%{transform:translateY(0)}}.inline-practice-panel{display:grid;gap:12px;margin:18px 0;padding:16px;border:2px solid #d8d5cc;border-radius:18px;background:var(--card);box-shadow:0 1px #1f293708}.inline-practice-panel .panel-title{margin-bottom:0}.inline-practice-panel h2{margin:0;font-size:18px;line-height:1.2}.inline-practice-empty{margin:0;color:var(--muted);font-size:13px;font-weight:800}.inline-practice-list{display:grid;gap:10px}.inline-practice-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:74px;padding:12px;border:1px solid #d8d5cc;border-radius:14px;background:#fcfbf8;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.inline-practice-card:hover{transform:translateY(-1px);border-color:#b8d6f7;box-shadow:0 8px 18px #1f293714}.inline-practice-card strong,.inline-practice-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inline-practice-card strong{font-size:14px}.inline-practice-card span{margin-top:3px;color:var(--muted);font-size:12px;font-weight:800}.inline-practice-card .mini-action{margin-top:0;white-space:nowrap}.choice-row{display:flex;justify-content:space-between;gap:12px}.odu-stage{display:grid;min-height:330px;align-content:center;justify-items:center;gap:14px;margin-top:10px;text-align:center}.odu-stage .gili-button{width:68px;height:68px;border-width:3px;box-shadow:inset 0 -4px #a9810042}.odu-stage .gili-face{inset:10px 13px 14px}.odu-stage .gili-face:before,.odu-stage .gili-face:after{bottom:4px;width:13px;height:22px}.odu-stage .gili-face:before{left:-5px}.odu-stage .gili-face:after{right:-5px}.odu-stage .gili-eye{top:11px;width:8px;height:8px}.odu-stage .gili-eye--left{left:11px}.odu-stage .gili-eye--right{right:11px}.odu-stage .gili-beak{top:21px;width:15px;height:10px}.odu-stage .gili-audio{right:-5px;bottom:5px;width:24px;height:24px}.odu-stage .gili-audio svg{width:13px;height:13px}.odu-stage h1{max-width:290px;font-size:clamp(25px,7vw,32px);line-height:1.15}.odu-stage p{margin:0;color:var(--muted);font-size:17px;font-weight:750}.reading-word{margin:10px 0 4px;min-width:min(100%,235px);min-height:86px;border:2px solid #d8e8fb;border-bottom:5px solid var(--blue-dark);border-radius:18px;background:#f4f9ff;color:var(--ink);padding:0 22px;font-size:78px;font-weight:900;line-height:1.1;box-shadow:0 10px 22px #137fec1f;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease,background-color .14s ease}.reading-word:hover{transform:translateY(-2px);border-color:#9bc8f7;background:#f8fbff;box-shadow:0 14px 28px #137fec2e}.reading-word:active{transform:translateY(2px);border-bottom-width:3px;box-shadow:0 7px 16px #137fec21}.reading-word:focus-visible,.akshara-builder button:focus-visible{outline:3px solid rgba(19,127,236,.28);outline-offset:3px}.reading-word--coach{color:#7b4b00;border-color:var(--orange);border-bottom-color:var(--orange);background:#fff6e7;box-shadow:0 10px 22px #ffb74d2e}.akshara-builder{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.akshara-builder button{min-width:62px;min-height:54px;border:2px solid #cfd8e5;border-radius:13px;background:#fff;color:#273041;padding:0 12px;font-size:29px;box-shadow:inset 0 -3px #9aa5b5,0 6px 14px #1f293714;transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}.akshara-builder button:hover{transform:translateY(-1px);border-color:#9bc8f7}.akshara-builder button:active{transform:translateY(2px);box-shadow:inset 0 -1px #9aa5b5,0 3px 8px #1f293714}.presenter-toggle{display:grid;gap:10px;margin:2px 0 14px;padding:12px;border:1px dashed var(--line-strong);border-radius:16px;background:#ffffffb8}.presenter-toggle p{margin:0;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.presenter-toggle div{display:flex;gap:8px}.presenter-toggle button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:42px;border:0;border-radius:12px;background:#eef3fa;color:#263243;font-size:11px;font-weight:850}.presenter-toggle button:hover{background:#e4edf8}.feedback-card{display:grid;gap:8px;margin:18px 0 16px;padding:18px 20px;border-radius:18px;border:2px solid;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.feedback-card strong{font-size:20px;font-weight:900}.feedback-card p,.feedback-card span{margin:0;color:var(--muted)}.feedback-card--success{background:linear-gradient(135deg,#e8fbe3,#f0fdef);border-color:#7fcf90;box-shadow:0 8px 20px #7fcf9026;animation:feedbackBounce .5s cubic-bezier(.34,1.56,.64,1)}.feedback-card--success strong{color:#2d7a3f}.feedback-card--coach{background:linear-gradient(135deg,#fff9e6,#fffaf0);border-color:#ffa947;box-shadow:0 8px 20px #ffa9471f;animation:feedbackPulse .6s ease}.feedback-card--coach strong{color:#d97b2f}@keyframes feedbackBounce{0%{transform:scale(.92) translateY(8px);opacity:0}60%{transform:scale(1.04)}to{transform:scale(1);opacity:1}}@keyframes feedbackPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.ten-frame{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:30px 0;padding:18px;border:2px solid var(--line);border-radius:20px;background:var(--card)}.counter{aspect-ratio:1;border:2px dashed var(--line-strong);border-radius:14px;background:#f4f2ec}.counter.is-filled{border-style:solid;border-color:#e5bd2c;background:radial-gradient(circle at 35% 30%,#ffe999,var(--yellow));box-shadow:inset 0 -3px 0 var(--yellow-dark)}.number-options{display:flex;justify-content:center;gap:16px;margin-bottom:20px}.number-options button.is-selected{outline:4px solid var(--blue)}.garden-hero{display:grid;justify-items:center}.garden-hero--personalized{position:relative;gap:14px;margin:22px 0 18px;padding:18px;overflow:hidden;border:2px solid #cfe5d1;border-radius:26px;background:linear-gradient(180deg,#eaf6ff 0 42%,#f4fbec 42% 100%);box-shadow:inset 0 -5px #2673371f}.garden-hero--personalized h2{position:relative;z-index:1;margin:0;color:#174c2a;font-size:28px;line-height:1.1}.garden-hero--personalized p{position:relative;z-index:1;margin:0;color:#384252;font-size:15px;font-weight:750;line-height:1.42}.garden-sky{position:absolute;inset:0;pointer-events:none}.garden-sky span{position:absolute;display:block;width:42px;height:42px;border-radius:999px;background:#ffd54fd9}.garden-sky span:nth-child(1){top:14px;right:18px}.garden-sky span:nth-child(2),.garden-sky span:nth-child(3){width:54px;height:18px;border-radius:999px;background:#ffffffd1}.garden-sky span:nth-child(2){top:38px;left:22px}.garden-sky span:nth-child(3){top:74px;right:72px}.garden-child-card{position:relative;z-index:1;display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;width:100%;gap:14px;padding:14px;border:2px solid rgba(255,255,255,.72);border-radius:22px;background:#ffffffc7;text-align:left}.garden-child-card h1{margin:0;color:#162439;font-size:30px;line-height:1.06}.garden-avatar{display:grid;width:72px;height:72px;place-items:center;border:4px solid #fff;border-radius:999px;color:#172033;font-size:30px;font-weight:950;box-shadow:0 8px 20px #1f293729}.garden-level-pill{display:inline-flex;align-items:center;gap:6px;min-height:30px;margin-top:8px;border-radius:999px;background:var(--blue);color:#fff;padding:0 10px;font-size:12px;font-weight:900}.plant-plot{position:relative;display:flex;align-items:end;justify-content:center;gap:8px;width:260px;height:190px;margin-bottom:20px;border:2px solid var(--line);border-radius:26px;background:linear-gradient(#eff8ef,#fff);overflow:hidden}.plant-plot--progress{z-index:1;width:min(100%,292px);height:166px;margin:0;border-color:#b9d8bd;background:linear-gradient(180deg,#fff3,#fff0),linear-gradient(#dcf2ff 0 54%,#e7f7dc 54% 100%);box-shadow:0 14px 28px #26733724}.plant-plot:after{content:"";position:absolute;left:0;right:0;bottom:0;height:54px;background:#9a6b43}.plant-plot span{position:relative;z-index:1;width:22px;height:72px;border-radius:999px 999px 0 0;background:var(--green)}.plant-plot span:before,.plant-plot span:after{content:"";position:absolute;top:18px;width:28px;height:18px;border-radius:999px 999px 999px 0;background:#75c86e}.plant-plot span:before{right:10px;transform:rotate(-30deg)}.plant-plot span:after{left:10px;transform:rotate(30deg) scaleX(-1)}.plant-plot--progress span{height:48px;margin-bottom:18px;transform-origin:bottom center}.plant-plot--progress span.is-grown:nth-child(2n){height:64px}.plant-plot--progress span.is-grown:nth-child(3n){height:82px}.plant-plot--progress span.is-seedling{width:18px;height:28px;background:#5fa455}.garden-progress-card{position:relative;z-index:1;display:grid;width:100%;gap:9px;padding:14px;border:2px solid #d7e9d9;border-radius:18px;background:#ffffffe6;text-align:left}.garden-progress-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.garden-progress-card__top span{display:inline-flex;align-items:center;gap:7px;color:#174c2a;font-size:14px;font-weight:900}.garden-progress-card__top strong{color:var(--blue-dark);font-size:24px;line-height:1}.garden-progress-bar{height:16px;overflow:hidden;border-radius:999px;background:#e3e7de}.garden-progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--blue))}.garden-progress-card small{color:var(--muted);font-size:12px;font-weight:900}.garden-stat-row{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px}.garden-stat{display:grid;justify-items:center;gap:3px;min-height:74px;padding:9px 6px;border:1px solid rgba(31,41,55,.08);border-radius:16px;background:#ffffffd1;color:#425062;font-size:11px;font-weight:850;text-align:center}.garden-stat strong{color:#1b2433;font-size:22px;line-height:1}.outcome-list{display:grid;gap:9px;max-height:480px;overflow:auto;padding-bottom:18px}.outcome-row{width:100%;display:grid;grid-template-columns:14px 1fr;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:inherit;text-align:left}button.outcome-row{cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}button.outcome-row:hover{transform:translateY(-1px);border-color:#9bc8f7;box-shadow:0 8px 18px #1f293714}.outcome-list--garden{max-height:none;padding-bottom:20px}.garden-domain-rows{display:grid;gap:9px}.outcome-row--mastered{border-color:#a9d8ae;background:#f1fbef}.outcome-row--practising{border-color:#efd27d;background:#fff8df}.outcome-row__icon{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;background:#eef3fb;color:var(--blue-dark)}.outcome-row--mastered .outcome-row__icon{background:var(--green-soft);color:var(--green)}.outcome-row--practising .outcome-row__icon{background:#fff1bf;color:#8a6300}.outcome-list--garden .outcome-row{grid-template-columns:34px minmax(0,1fr) 24px}.outcome-row__sprout{color:#93a09a}.outcome-row--mastered .outcome-row__sprout,.outcome-row--practising .outcome-row__sprout{color:var(--green)}.outcome-row strong,.outcome-row span{display:block}.outcome-row span{color:var(--muted)}.empty-state-card,.curriculum-hero,.curriculum-section{margin-top:20px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card)}.empty-state-card{display:grid;justify-items:center;gap:12px;color:var(--muted);text-align:center}.curriculum-hero h1,.curriculum-hero p{margin:0}.curriculum-hero h1{margin-bottom:8px;font-size:28px;line-height:1.14}.curriculum-hero>p:last-of-type{color:var(--muted)}.curriculum-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.curriculum-stat-grid article{display:grid;gap:4px;min-height:86px;padding:14px;border-radius:14px;background:#f3f7fb}.curriculum-stat-grid strong{color:var(--blue-dark);font-size:28px;line-height:1}.curriculum-stat-grid span,.curriculum-outcome-card p,.gap-card p,.track-card p,.practice-card p,.practice-picker span{margin:0;color:var(--muted);font-size:13px}.curriculum-outcome-grid,.gap-list,.track-list{display:grid;gap:10px}.curriculum-domain{display:grid;gap:10px;margin-bottom:12px}.curriculum-domain.is-open{margin-bottom:20px}.curriculum-domain__head{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:10px 12px;border:1.5px solid var(--line);border-radius:14px;background:var(--surface, #fff);text-align:left;cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease}.curriculum-domain__head:hover{border-color:#9bc8f7;box-shadow:0 6px 14px #1f293712}.curriculum-domain.is-open .curriculum-domain__head{border-bottom-left-radius:0;border-bottom-right-radius:0}.curriculum-domain__chevron{flex:none;color:var(--muted);transition:transform .18s ease}.curriculum-domain.is-open .curriculum-domain__chevron{transform:rotate(90deg)}.curriculum-domain__head h3{margin:0;font-size:15px;font-weight:800;color:var(--ink)}.curriculum-domain__icon{flex:none;color:var(--green)}.curriculum-domain__count{margin-left:auto;font-size:12px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}.curriculum-domain__bar{position:relative;flex:none;width:56px;height:6px;border-radius:999px;background:var(--surface-dim);overflow:hidden}.curriculum-domain__bar>span{position:absolute;inset:0 auto 0 0;min-width:6px;background:var(--green);border-radius:999px;transition:width .24s ease}.panel-title--split{justify-content:space-between;gap:12px}.panel-title--split>div{display:inline-flex;align-items:center;gap:8px;min-width:0}.panel-title--split>span{flex:0 0 auto;color:var(--muted);font-size:12px;font-weight:900}.activity-catalog{display:grid;gap:8px;max-height:560px;overflow:auto;padding-right:2px}.activity-catalog-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:58px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);padding:8px 10px;text-align:left;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background-color .14s ease}.activity-catalog-row:hover{transform:translateY(-1px);border-color:#b8d6f7;box-shadow:0 8px 18px #1f293714}.activity-catalog-row.is-complete{border-color:#9cd5a6;background:#f1fbef;box-shadow:inset 4px 0 #65b86d}.activity-catalog-row.is-progress{border-color:#efd27d;background:#fff8df;box-shadow:inset 4px 0 0 var(--orange)}.activity-catalog-row.is-complete .activity-catalog-row__index{background:var(--green-soft);color:var(--green)}.activity-catalog-row.is-progress .activity-catalog-row__index{background:#fff1bf;color:#8a6300}.activity-catalog-row__index{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:999px;background:#eef3fa;color:var(--blue-dark);font-size:12px;font-weight:900}.activity-catalog-row__body{display:grid;min-width:0;gap:2px}.activity-catalog-row__body strong,.activity-catalog-row__body span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-catalog-row__body strong{font-size:13px}.activity-catalog-row__body span,.activity-catalog-row__meta{color:var(--muted);font-size:11px;font-weight:800}.activity-catalog-row__meta{max-width:76px;overflow-wrap:anywhere;text-align:right}.activity-catalog-row__meta small{display:block;margin-bottom:3px;color:inherit;font-size:10px;font-weight:950;text-transform:uppercase}.curriculum-outcome-card,.gap-card,.track-card{border:1px solid var(--line);border-radius:14px;background:#fcfbf8}.curriculum-outcome-card{display:grid;grid-template-columns:14px 1fr;gap:10px;align-items:center;padding:9px 12px}.curriculum-outcome-card.is-clickable{cursor:pointer;transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease}.curriculum-outcome-card.is-clickable:hover{transform:translateY(-1px);border-color:#9bc8f7;box-shadow:0 8px 18px #1f293714}.curriculum-outcome-card.is-complete.is-clickable:hover{box-shadow:inset 4px 0 #65b86d,0 8px 18px #1f293714}.curriculum-outcome-card.is-progress.is-clickable:hover{box-shadow:inset 4px 0 0 var(--orange),0 8px 18px #1f293714}.curriculum-outcome-card>div{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:10px;row-gap:5px;min-width:0}.curriculum-outcome-card>div>strong{grid-column:1;grid-row:1;min-width:0;margin-bottom:0}.curriculum-outcome-card .mini-action{grid-column:2;grid-row:1}.curriculum-outcome-card__meta{grid-column:1 / -1;grid-row:2;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.curriculum-outcome-card__meta:empty{display:none}.curriculum-outcome-card.is-complete{border-color:#9cd5a6;background:#f1fbef;box-shadow:inset 4px 0 #65b86d}.curriculum-outcome-card.is-progress{border-color:#efd27d;background:#fff8df;box-shadow:inset 4px 0 0 var(--orange)}.curriculum-outcome-card strong,.track-card strong{display:block;margin-bottom:4px}.curriculum-status-pill{display:inline-flex;align-items:center;min-height:26px;margin:0;border-radius:999px;background:#ffffffd1;color:#425062;padding:0 9px;font-size:11px;font-weight:950}.curriculum-outcome-card.is-complete .curriculum-status-pill{color:#174c2a}.curriculum-outcome-card.is-progress .curriculum-status-pill{color:#7a5200}.gap-card{display:grid;gap:10px;padding:14px;background:#fff8ed;border-color:#f2d3a4}.gap-card__head{display:flex;align-items:center;gap:10px}.gap-card b{color:#6b4700}.track-card{padding:14px}.mini-action{display:inline-flex;align-items:center;justify-content:center;justify-self:start;gap:6px;min-height:34px;margin-top:2px;padding:0 12px;border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:12px;font-weight:900}.practice-card{margin-top:18px;padding:18px;border:2px solid var(--line);border-radius:20px;background:var(--card)}.practice-card h2,.practice-card p{margin:0}.practice-smart-hint{margin-top:14px;padding:12px 14px;border:1px solid #d8e8fb;border-radius:14px;background:#f4f9ff;color:#314866;font-size:14px;font-weight:800;line-height:1.35}.practice-card{display:grid;gap:14px}.practice-question-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.practice-card h2{font-size:22px;line-height:1.2}.practice-prompt{font-size:18px}.practice-card--evs h2{font-size:28px;line-height:1.15}.practice-card--evs .practice-prompt{font-size:23px;line-height:1.35;font-weight:800}.practice-image-frame{width:100%;overflow:hidden;border:2px solid var(--line);border-radius:16px;background:#f7fafc}.practice-image{display:block;width:100%;aspect-ratio:3 / 2;object-fit:cover}.practice-detail{display:block;color:var(--blue-dark);font-size:32px;line-height:1.15}.practice-word-build-object{display:grid;justify-items:center;gap:10px;margin:12px auto 18px}.practice-word-build-object__halo{display:grid;width:132px;height:132px;place-items:center;border-radius:999px;background:radial-gradient(circle,#fffdf2 0 48%,#fff5b7 49% 66%,#ffec9733 67% 100%),linear-gradient(180deg,#fff8cf,#fffdf5);color:#222f47;font-size:76px;box-shadow:0 0 0 8px #ffefae6b,0 18px 34px #7f672129,inset 0 -7px 18px #f6cd5247}.practice-word-build-object__label{display:inline-flex;max-width:min(220px,100%);min-height:36px;align-items:center;justify-content:center;border-radius:999px;background:#fff;color:#9a6038;padding:7px 18px;font-size:18px;font-weight:950;line-height:1.2;text-align:center;overflow-wrap:anywhere;box-shadow:0 10px 22px #7c522c1f}.practice-passage{max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fcfbf8;padding:14px;color:var(--ink)!important;font-size:15px!important;line-height:1.7;white-space:pre-line}.poem-tts-control{display:grid;gap:12px;width:100%;padding:12px;border:2px solid #d8e8fb;border-radius:18px;background:#f4f9ff}.poem-tts-control__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.poem-listen-button{display:inline-flex;min-height:48px;min-width:0;max-width:100%;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;background:var(--blue);color:#fff;padding:0 18px;font-size:16px;font-weight:950;line-height:1.2;box-shadow:inset 0 -4px 0 var(--blue-dark),0 10px 22px #137fec33}.poem-listen-button svg{flex:0 0 auto}.poem-tts-rate{display:inline-flex;min-height:30px;flex:0 0 auto;align-items:center;border-radius:999px;background:#e3f0ff;color:var(--blue-dark);padding:0 10px;font-size:12px;font-weight:950}.poem-speed-slider{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;color:#5a6880;font-size:12px;font-weight:900}.poem-speed-slider input{width:100%;min-width:0;height:28px;accent-color:var(--blue);cursor:pointer}@media(max-width:380px){.poem-tts-control__top{align-items:stretch;flex-direction:column}.poem-listen-button{width:100%}.poem-tts-rate{align-self:flex-start}}.practice-visuals,.practice-choices{display:flex;flex-wrap:wrap;gap:10px}.practice-visuals{max-width:100%;overflow:hidden;padding-right:2px;box-sizing:border-box;align-items:center}.practice-visuals span{display:inline-grid;box-sizing:border-box;min-width:54px;min-height:54px;place-items:center;border:2px solid var(--line);border-radius:16px;background:#f3f7fb;color:var(--blue-dark);padding:8px 12px;font-size:24px;font-weight:900}.practice-visuals--dense{gap:6px}.practice-visuals--dense span:not(.practice-visuals__operator){min-width:38px;min-height:38px;border-radius:12px;padding:4px 6px;font-size:19px}.practice-visuals span.practice-visuals__coin{position:relative;min-width:68px;min-height:68px;border-color:#e8c25d;border-radius:20px;background:#fff7df;color:#6e4b00;font-size:0;box-shadow:inset 0 -4px #b8840038,0 8px 16px #6e4b0014}.practice-visuals span.practice-visuals__coin:before{content:"";display:block;width:42px;height:42px;border:3px solid #f0b52f;border-radius:999px;background:radial-gradient(circle at 35% 28%,#fff2a8 0 18%,transparent 19%),linear-gradient(145deg,#ffd766,#f7b733);box-shadow:inset 0 -4px #99620038,0 3px #7a530029}.practice-visuals span.practice-visuals__coin:after{content:attr(data-value);position:absolute;inset:0;display:grid;place-items:center;color:#734d00;font-size:17px;font-weight:950}.practice-visuals span.practice-visuals__operator{min-width:30px;min-height:30px;border:0;border-radius:999px;background:#eef3fa;color:#32435a;padding:0;font-size:24px;line-height:1;box-shadow:none}.practice-visuals span.practice-visuals__operator--minus{background:var(--orange-soft);color:#875100}.practice-visuals span.practice-visuals__removed{position:relative;min-width:54px;min-height:54px;border-color:#f2bf8a;background:#fff3e4;color:#6f4b13;opacity:.82}.practice-visuals span.practice-visuals__removed:after{content:"";position:absolute;left:10px;right:10px;top:50%;height:4px;border-radius:999px;background:#df5b45;transform:rotate(-18deg)}.practice-visuals--dense span.practice-visuals__removed{min-width:38px;min-height:38px;border-radius:12px;padding:4px 6px;font-size:19px}.practice-visuals--dense span.practice-visuals__removed:after{left:7px;right:7px;height:3px}.practice-visuals span.practice-visuals__sep{min-width:0;width:2px;min-height:32px;padding:0;border:none;border-radius:0;background:var(--line);align-self:center}.practice-visuals span.practice-position-scene{position:relative;width:min(250px,100%);min-width:220px;min-height:168px;border-color:#c7d5e5;border-radius:20px;background:linear-gradient(180deg,#f7fbff 0 62%,#edf8ef 63% 100%);overflow:hidden;padding:0;box-shadow:inset 0 -3px #2f4a7014,0 8px 18px #293d5b14;perspective:380px}.practice-visuals span.practice-position-scene:after{content:"";position:absolute;left:22px;right:22px;bottom:18px;height:16px;border-radius:999px;background:#435b7e1a;filter:blur(2px)}.practice-visuals span.practice-position-scene:before{content:"";position:absolute;left:20px;right:20px;top:63%;height:1px;background:#6a81a229}.practice-visuals span.practice-position-scene__anchor,.practice-visuals span.practice-position-scene__subject{position:absolute;display:grid;box-sizing:border-box;min-width:0;min-height:0;width:auto;height:auto;place-items:center;border:0;border-radius:0;background:transparent;color:inherit;padding:0;font-size:1rem;box-shadow:none}.practice-position-scene__anchor{z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);filter:drop-shadow(0 9px 8px rgba(31,41,55,.16))}.practice-position-scene__subject{z-index:3;filter:drop-shadow(0 7px 7px rgba(31,41,55,.22))}.practice-position-scene--above .practice-position-scene__anchor{top:66%}.practice-position-scene--above .practice-position-scene__subject{left:50%;top:24%;transform:translate(-50%,-50%)}.practice-position-scene--on .practice-position-scene__anchor{top:66%}.practice-position-scene--on .practice-position-scene__subject{left:50%;top:56%;transform:translate(-50%,-50%);filter:drop-shadow(0 5px 5px rgba(31,41,55,.18))}.practice-position-scene--below .practice-position-scene__anchor{top:35%}.practice-position-scene--below .practice-position-scene__subject{left:50%;bottom:14px;transform:translate(-50%)}.practice-position-scene--inside .practice-position-scene__anchor{top:54%;transform:translate(-50%,-50%) scale(1.05)}.practice-position-scene--inside .practice-position-scene__subject{left:50%;top:52%;transform:translate(-50%,-50%) scale(.74)}.practice-position-scene--beside .practice-position-scene__anchor{left:66%;top:55%}.practice-position-scene--beside .practice-position-scene__subject{left:30%;top:55%;transform:translate(-50%,-50%)}.practice-position-scene--near .practice-position-scene__anchor{left:55%;top:56%}.practice-position-scene--near .practice-position-scene__subject{left:41%;top:56%;transform:translate(-50%,-50%)}.practice-position-scene--far .practice-position-scene__anchor{left:82%;top:55%}.practice-position-scene--far .practice-position-scene__subject{left:17%;top:55%;transform:translate(-50%,-50%) scale(.9)}.practice-position-scene--far:before{left:74px;right:74px;top:55%;height:4px;border-radius:999px;background:repeating-linear-gradient(90deg,rgba(61,104,154,.28) 0 9px,transparent 9px 17px)}.practice-position-scene--left .practice-position-scene__anchor,.practice-position-scene--right .practice-position-scene__subject{left:72%;top:55%;transform:translate(-50%,-50%) rotateY(-12deg)}.practice-position-scene--left .practice-position-scene__subject,.practice-position-scene--right .practice-position-scene__anchor{left:28%;top:55%;transform:translate(-50%,-50%) rotateY(12deg)}.practice-position-scene--left .practice-position-scene__subject,.practice-position-scene--right .practice-position-scene__subject{filter:drop-shadow(0 10px 10px rgba(31,41,55,.25))}.practice-position-scene--front .practice-position-scene__anchor{left:50%;top:39%;z-index:1;opacity:.78;transform:translate(-50%,-50%) scale(.76);filter:drop-shadow(0 4px 4px rgba(31,41,55,.14))}.practice-position-scene--front .practice-position-scene__subject{left:50%;top:65%;z-index:4;transform:translate(-50%,-50%) scale(1.08);filter:drop-shadow(0 12px 10px rgba(31,41,55,.26))}.practice-position-scene--behind .practice-position-scene__subject{left:50%;top:39%;z-index:1;opacity:.78;transform:translate(-50%,-50%) scale(.76);filter:drop-shadow(0 4px 4px rgba(31,41,55,.14))}.practice-position-scene--behind .practice-position-scene__anchor{left:50%;top:65%;z-index:4;transform:translate(-50%,-50%) scale(1.08);filter:drop-shadow(0 12px 10px rgba(31,41,55,.26))}.practice-choices button{flex:1 1 42%;min-height:58px;border:2px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);padding:8px 12px;font-weight:900}.practice-choices--large-emoji button{min-height:88px;display:inline-flex;align-items:center;justify-content:center;gap:10px;flex-direction:column;font-size:15px;line-height:1.18;white-space:pre-line}.practice-choices--large-emoji svg{flex:0 0 auto;vertical-align:middle}.practice-choices button.is-correct{border-color:#9cd5a6;background:var(--green-soft);color:var(--green)}.practice-choices button.is-wrong{border-color:var(--orange);background:var(--orange-soft);color:#7a4c00}.build-face-activity{display:grid;gap:16px}.build-face-board{position:relative;display:grid;place-items:center;padding:10px;border:2px solid #d7e4f1;border-radius:22px;background:#eef4fb;overflow:hidden;transition:box-shadow .22s ease}.build-face-board.is-complete{box-shadow:inset 0 0 0 3px #2f86d640,0 14px 34px #2f86d633}.build-face-stage{position:relative;width:min(300px,82vw);touch-action:none}.build-face-head-img{display:block;width:100%;height:auto;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}.bf-place{position:absolute;transform:translate(-50%,-50%);pointer-events:none}.bf-place img{display:block;width:100%;height:auto;filter:drop-shadow(0 3px 4px rgba(60,45,25,.18));-webkit-user-drag:none}.bf-mirror{transform:scaleX(-1)}.bf-place.is-ghost{opacity:.26}.bf-place.is-ghost img{filter:grayscale(.2)}.bf-place.is-ghost.is-armed{animation:bf-ghost-pulse 1.1s ease-in-out infinite}@keyframes bf-ghost-pulse{0%,to{opacity:.34}50%{opacity:.7}}.bf-place--eyes.is-reacting img{transform-origin:center;animation:bf-eyes 1.1s ease-in-out}@keyframes bf-eyes{0%{transform:scale(.7)}32%{transform:scale(1.06) scaleY(1)}48%{transform:scaleY(.12)}60%{transform:scaleY(1)}76%{transform:scaleY(.12)}90%,to{transform:scaleY(1)}}.bf-place--mouth.is-reacting img{transform-origin:center;animation:bf-mouth .7s ease-out}@keyframes bf-mouth{0%{transform:scale(.6)}45%{transform:scale(1.18)}70%{transform:scale(.95)}to{transform:scale(1)}}.bf-place--nose.is-reacting img{transform-origin:center;animation:bf-nose .7s ease-out}@keyframes bf-nose{0%{transform:scale(.6) translateY(0)}40%{transform:scale(1.12) translateY(-8%)}62%{transform:scale(1) translateY(3%)}to{transform:scale(1) translateY(0)}}.bf-place--ear-left.is-reacting{animation:bf-ear-left .7s ease-out}.bf-place--ear-right.is-reacting{animation:bf-ear-right .7s ease-out}@keyframes bf-ear-left{0%{transform:translate(-50%,-50%) scale(.6) rotate(0)}35%{transform:translate(-50%,-50%) scale(1.08) rotate(-14deg)}62%{transform:translate(-50%,-50%) scale(1) rotate(6deg)}to{transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes bf-ear-right{0%{transform:translate(-50%,-50%) scale(.6) rotate(0)}35%{transform:translate(-50%,-50%) scale(1.08) rotate(14deg)}62%{transform:translate(-50%,-50%) scale(1) rotate(-6deg)}to{transform:translate(-50%,-50%) scale(1) rotate(0)}}.bf-place:not(.is-ghost):not(.is-reacting):not(.is-preset) img{animation:bf-pop-in .24s ease-out}.bf-place.is-preset img{animation:none}@keyframes bf-pop-in{0%{transform:scale(.7)}70%{transform:scale(1.08)}to{transform:scale(1)}}.build-face-hit{position:absolute;border-radius:14px}.build-face-hit.is-armed{cursor:pointer}.build-face-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.bf-confetti{position:absolute;top:-12px;width:9px;height:9px;border-radius:2px;opacity:0;animation:bf-confetti-fall 1.2s ease-in forwards}.bf-confetti--1{left:12%;background:#2f86d6;animation-delay:0ms}.bf-confetti--2{left:24%;background:#ffd54f;animation-delay:90ms}.bf-confetti--3{left:38%;background:#63a92e;animation-delay:40ms}.bf-confetti--4{left:50%;background:#ef7d57;animation-delay:.15s}.bf-confetti--5{left:62%;background:#2f86d6;animation-delay:70ms}.bf-confetti--6{left:74%;background:#ffd54f;animation-delay:.2s}.bf-confetti--7{left:86%;background:#63a92e;animation-delay:.12s}.bf-confetti--8{left:94%;background:#ef7d57;animation-delay:30ms}@keyframes bf-confetti-fall{0%{transform:translateY(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translateY(340px) rotate(320deg);opacity:0}}.build-face-tray{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.build-face-piece{display:grid;place-items:center;min-width:0;min-height:80px;border:2px solid var(--line);border-radius:18px;background:#fff;padding:8px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color .14s ease,background-color .14s ease,box-shadow .14s ease,opacity .14s ease,transform .24s cubic-bezier(.2,.8,.2,1)}.build-face-piece-img{width:100%;height:56px;object-fit:contain;pointer-events:none;-webkit-user-drag:none}.build-face-piece:hover{border-color:#9fc4ee;background:#f3f9ff}.build-face-piece:active{cursor:grabbing}.build-face-piece.is-selected{border-color:#2f86d6;background:#eaf3ff;box-shadow:0 0 0 3px #2f86d633}.build-face-piece.is-returning{border-color:var(--orange);background:var(--orange-soft);animation:build-face-return .36s ease-out}.build-face-piece.is-snapped{opacity:.4;border-color:#9cd5a6;background:var(--green-soft)}.build-face-piece:disabled{cursor:default}.build-face-piece.is-dragging-source{opacity:.35;border-color:#9fc4ee}.build-face-drag-ghost{position:fixed;z-index:9999;width:72px;height:72px;object-fit:contain;transform:translate(-50%,-50%) scale(1.1) rotate(-3deg);pointer-events:none;filter:drop-shadow(0 8px 10px rgba(40,30,15,.28))}@keyframes build-face-return{0%{transform:translateY(-8px) rotate(-3deg)}50%{transform:translateY(0) rotate(3deg)}to{transform:translateY(0) rotate(0)}}.alphabet-stage{display:grid;gap:16px;overflow:hidden;border:2px solid #d6e4f2;border-radius:22px;background:radial-gradient(circle at 18% 12%,rgba(255,213,79,.34),transparent 28%),radial-gradient(circle at 84% 20%,rgba(38,115,55,.15),transparent 26%),linear-gradient(180deg,#f8fcff,#fffaf0);padding:18px;box-shadow:0 18px 42px #2339561f}.alphabet-stage__header{display:grid;gap:8px}.alphabet-stage__header h1{margin:0;color:var(--blue-dark);font-size:28px;line-height:1.05}.alphabet-listen-button,.alphabet-repeat-panel button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;width:fit-content;border:0;border-radius:999px;background:var(--blue);color:#fff;padding:0 14px;font-weight:900;box-shadow:0 10px 20px #137fec33}.alphabet-hero-letter{position:relative;display:grid;min-height:150px;place-items:center;border:3px solid #f2c95e;border-radius:26px;background:linear-gradient(145deg,#fff7c9,#fff 46%,#e9f6ff);box-shadow:inset 0 -8px #ffb74d38,0 14px 28px #4b5e7821}.alphabet-hero-letter span{color:#21466f;font-size:clamp(82px,25vw,132px);font-weight:950;line-height:.95;text-shadow:0 4px 0 #fff,0 9px 18px rgba(33,70,111,.18)}.alphabet-hero-letter small{position:absolute;right:18px;bottom:14px;display:grid;width:58px;height:58px;place-items:center;border:2px solid #c9dbef;border-radius:18px;background:#fff;color:var(--green);font-size:34px;font-weight:950}.number-reading-stage{background:radial-gradient(circle at 16% 12%,rgba(255,213,79,.32),transparent 28%),radial-gradient(circle at 84% 20%,rgba(47,138,70,.15),transparent 26%),linear-gradient(180deg,#f8fcff,#fffaf0)}.number-reading-hero{gap:10px;min-height:168px;padding:18px}.number-reading-hero span{font-size:clamp(78px,23vw,128px)}.number-reading-hero small{position:static;width:auto;min-width:72px;max-width:100%;height:auto;min-height:42px;padding:8px 14px;border-radius:999px;font-size:clamp(17px,4.5vw,24px);line-height:1.15;text-align:center;overflow-wrap:anywhere}.number-reading-visuals{display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-height:178px;overflow:auto;border:2px solid #dce8f4;border-radius:20px;background:#ffffffb8;padding:12px}.number-reading-visuals span{display:inline-grid;min-width:42px;min-height:42px;place-items:center;border:2px solid #d6e4f2;border-radius:14px;background:#fff;color:var(--blue-dark);padding:6px 9px;font-size:22px;font-weight:950}.number-reading-visuals--dense{gap:6px}.number-reading-visuals--dense span{min-width:34px;min-height:34px;border-radius:11px;padding:4px 7px;font-size:18px}.number-reading-visuals .number-reading-object{padding:0}.number-reading-visuals__sep{flex-basis:100%;min-width:0!important;min-height:0!important;height:0;border:0!important;padding:0!important;background:transparent!important}.number-reading-stage .alphabet-cloud-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.number-reading-stage .alphabet-cloud{aspect-ratio:1;min-width:0;min-height:0;width:100%;max-width:92px;justify-self:center;border-radius:999px;padding:8px}.number-reading-stage .alphabet-cloud span{display:block;width:100%;color:#0867b8;font-size:clamp(31px,10vw,43px);line-height:.95;text-align:center;white-space:nowrap;transform:scale(var(--number-choice-scale, 1));transform-origin:center}.alphabet-prompt{margin:0;color:#26384d;font-size:19px;font-weight:900}.alphabet-cloud-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.alphabet-cloud{position:relative;display:grid;min-height:92px;place-items:center;border:0;border-radius:42px;background:#fff;color:var(--blue-dark);padding:12px;box-shadow:inset 0 -5px #137fec1c,0 12px 24px #2f4a701f;animation:alphabet-float 3.8s ease-in-out infinite;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease}.alphabet-cloud:nth-child(2){animation-delay:.32s}.alphabet-cloud:nth-child(3){animation-delay:.64s}.alphabet-cloud span{font-size:clamp(34px,10vw,54px);font-weight:950;line-height:1}.alphabet-cloud:active{transform:translateY(2px) scale(.98)}.alphabet-cloud.is-correct{background:#f0fbef;color:var(--green);animation:alphabet-pop .52s ease-out}.alphabet-cloud.is-correct:after{content:"★";position:absolute;right:10px;top:4px;color:#f3b51e;font-size:25px;animation:alphabet-star-dust .72s ease-out both}.alphabet-cloud.is-wrong{background:var(--red-soft);color:#842929;animation:alphabet-shake .26s ease-in-out}.alphabet-repeat-panel,.alphabet-speak-panel,.alphabet-match-panel{display:grid;gap:12px;border:2px solid #dce8f4;border-radius:18px;background:#ffffffd1;padding:14px}.alphabet-repeat-panel strong{color:#24364b;font-size:24px;line-height:1.18}.alphabet-score{display:flex;justify-content:center;gap:8px;color:#d9d3c6;font-size:34px;line-height:1}.alphabet-score span{transform:scale(.92);transition:color .18s ease,transform .18s ease}.alphabet-score span.is-lit{color:#f5b91f;transform:scale(1.16);text-shadow:0 5px 12px rgba(245,185,31,.28)}.alphabet-match-panel{grid-template-columns:1fr;align-items:center}.alphabet-match-panel.is-correct{border-color:#9cd5a6;background:#f1fbef}.alphabet-match-panel.is-wrong{border-color:#e8a4a4;background:#fff1f1}.alphabet-match-dropzone{display:grid;grid-template-columns:minmax(96px,1fr) minmax(74px,.72fr);align-items:center;gap:12px}.alphabet-match-card{display:grid;min-height:118px;place-items:center;border:3px solid #f2c95e;border-radius:24px;background:#fff9dc;color:var(--blue-dark);font-size:74px;font-weight:950}.alphabet-match-slot{display:grid;min-height:94px;place-items:center;border:3px dashed #b9d3ef;border-radius:999px;background:#ffffffd6;color:#8aa5c0;font-size:52px;font-weight:950;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.alphabet-match-slot.is-filled{border-style:solid;color:var(--green);transform:scale(1.03)}.alphabet-match-slot.is-correct{border-color:#65b86d;background:var(--green-soft);color:var(--green)}.alphabet-match-slot.is-wrong{border-color:#df5b5b;background:var(--red-soft);color:#842929}.alphabet-match-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.alphabet-match-options button{min-height:68px;border:2px solid #d6e4f2;border-radius:18px;background:#fff;color:var(--green);font-size:42px;font-weight:950;touch-action:none;cursor:grab;box-shadow:inset 0 -4px #26733714,0 8px 18px #2f4a7014;transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}.alphabet-match-options button:active{cursor:grabbing;transform:scale(.97)}.alphabet-match-options button.is-selected{border-color:var(--green);background:var(--green-soft)}.alphabet-match-options button.is-correct{border-color:#65b86d;background:var(--green-soft);color:var(--green)}.alphabet-match-options button.is-wrong{border-color:#df5b5b;background:var(--red-soft);color:#842929;animation:alphabet-shake .26s ease-in-out}.alphabet-smile{display:flex;align-items:center;justify-content:center;gap:10px;border-radius:18px;background:#fff6d2;color:#795500;padding:14px;font-size:20px;font-weight:950;animation:alphabet-pop .52s ease-out}.alphabet-smile span{color:#f5b91f;font-size:32px}@keyframes alphabet-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes alphabet-pop{0%{transform:scale(.92)}70%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes alphabet-star-dust{0%{opacity:0;transform:translateY(8px) scale(.4) rotate(-16deg)}35%{opacity:1}to{opacity:0;transform:translateY(-26px) scale(1.4) rotate(20deg)}}@keyframes alphabet-shake{0%,to{transform:translate(0)}35%{transform:translate(-5px)}70%{transform:translate(5px)}}.practice-actions{display:grid;gap:6px;margin-top:14px}.voice-practice-navigation{display:grid;grid-template-columns:auto 1fr minmax(132px,auto);align-items:center;gap:10px;padding-top:2px}.voice-practice-navigation>.mini-action{margin:0}.voice-practice-navigation>button:disabled{cursor:not-allowed;opacity:.42}.voice-practice-navigation__position{color:var(--muted);font-size:13px;font-weight:900;text-align:center}.voice-practice-navigation__next{min-height:46px;padding:0 16px}.practice-sequence-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin:14px 0 4px}.practice-sequence-navigation>span{color:var(--muted);font-size:.88rem;font-weight:800;white-space:nowrap}.practice-sequence-navigation>button{min-height:48px;justify-content:center}.practice-sequence-navigation>button:disabled{cursor:default;opacity:.42}.practice-sequence-navigation__next{justify-self:stretch}.practice-sequence-navigation__hint{grid-column:1 / -1;color:var(--muted);font-size:.82rem;font-weight:750;text-align:center}.voice-capture-auto-retry{color:var(--muted);font-size:.82rem;font-weight:750;text-align:center}.practice-picker{display:grid;gap:8px;max-height:none;overflow:visible;padding-right:0;scrollbar-width:none}.practice-picker::-webkit-scrollbar{display:none}.practice-picker button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:10px 12px;text-align:left;transition:background-color .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}.practice-picker button:hover{transform:translateY(-1px);border-color:#b8d6f7;box-shadow:0 7px 16px #1f293714}.practice-picker button.is-active{border-color:var(--blue);background:#eef6ff}.practice-picker button.is-correct{border-color:#9cd5a6;background:#f1fbef;color:#174c2a;box-shadow:inset 4px 0 #65b86d}.practice-picker button.is-wrong{border-color:#e8a4a4;background:#fff1f1;color:#6f2424;box-shadow:inset 4px 0 #df5b5b}.practice-picker button.is-active.is-correct{border-color:#65b86d;background:#eaf8e7}.practice-picker button.is-active.is-wrong{border-color:#df5b5b;background:#ffe9e9}.practice-picker__main{display:grid;min-width:0;gap:3px}.practice-picker__main strong,.practice-picker__main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.practice-picker__status{flex:0 0 auto;display:inline-flex;align-items:center;min-height:28px;border-radius:999px;background:#ffffffd1;padding:0 9px;font-size:11px;font-weight:950}.practice-picker button.is-correct .practice-picker__status{color:#174c2a}.practice-picker button.is-wrong .practice-picker__status{color:#7a2525}.status-dot{display:inline-block;width:12px;height:12px;border-radius:999px}.status-dot--mastered{background:var(--green)}.status-dot--practising{background:var(--yellow)}.status-dot--not-yet{background:#dedbd5}.console-shell,.dashboard-shell{display:grid;grid-template-columns:320px 1fr;min-height:100vh;background:var(--surface)}.console-nav,.dashboard-nav{display:grid;align-content:start;gap:28px;padding:28px 22px;background:#f1efea;border-right:2px solid var(--line)}.console-nav h1,.dashboard-nav h1{margin:0;color:var(--blue-dark);font-size:42px;line-height:1}.console-nav p,.dashboard-nav p{margin:6px 0 0;color:#2d3442}.console-nav nav,.dashboard-nav nav{display:grid;gap:12px}.console-nav a,.dashboard-nav a,.console-nav nav button{display:flex;align-items:center;gap:14px;min-height:54px;border:0;border-left:4px solid transparent;background:transparent;color:#2d3442;font-size:17px;font-weight:800;text-align:left}.console-nav .active,.dashboard-nav .active{border-left-color:var(--green);color:var(--green)}.console-main,.dashboard-main{padding:36px 40px}.console-header,.dashboard-header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px;border-bottom:2px solid var(--line);padding-bottom:22px}.console-header h1,.dashboard-header h1{margin:0;font-size:40px;line-height:1.1}.console-grid{display:grid;grid-template-columns:minmax(0,2fr) 380px;gap:28px}.roster-panel,.routine-panel,.heat-panel{padding:24px}.panel-title{display:flex;align-items:center;gap:10px;margin-bottom:18px}.panel-title h2,.panel-title p{margin:0}.panel-title--spread{justify-content:space-between;align-items:flex-start}.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:16px}.roster-card{display:grid;grid-template-columns:68px 1fr;gap:14px;align-items:start;padding:18px;border:2px solid var(--line);border-radius:12px;background:#fcfbf8}.roster-card.is-active{border-color:var(--blue);box-shadow:0 0 0 3px #137fec1f}.roster-card h3,.roster-card p{margin:0}.roster-card button{grid-column:1 / -1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line-strong);background:var(--card)}.mini-meter{width:100%;height:9px;margin-top:14px;overflow:hidden;border-radius:999px;background:var(--line)}.mini-meter span{display:block;height:100%;border-radius:inherit;background:var(--green)}.load-next-card{display:grid;grid-template-columns:54px 1fr 180px;gap:18px;align-items:center;margin-top:24px;padding:24px;border-radius:18px;background:linear-gradient(135deg,#ffe79b,var(--yellow));box-shadow:inset 0 -5px 0 var(--yellow-dark)}.load-next-card h3,.load-next-card p{margin:0}.load-next-card button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:#fff}.routine-panel{display:grid;align-content:start;gap:14px}.routine-item{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:start;min-height:106px;padding:18px;border:0;border-radius:12px;background:#fcfbf8;color:var(--ink);text-align:left}.routine-item strong,.routine-item small{display:block}.routine-item small{margin-top:4px;color:var(--muted);font-size:15px}.square-check{display:grid;width:30px;height:30px;place-items:center;border:2px solid #7b8494;border-radius:6px;color:#fff}.square-check.is-checked{border-color:var(--green);background:var(--green)}.routine-progress{display:grid;gap:8px;margin-top:18px;padding-top:18px;border-top:2px solid var(--line)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:28px;margin-bottom:28px}.metric-card{min-height:300px;padding:28px}.metric-card h2,.metric-card p{margin:0 0 18px}.metric-card--yellow{background:linear-gradient(135deg,#ffe9a6,var(--yellow));border-color:#d6a900}.metric-card--yellow blockquote{margin:28px 0 0;padding:18px;border-radius:10px;background:#ffffff73;color:#6f5400}.big-number{display:block;color:var(--blue-dark);font-size:70px;line-height:1}.metric-card--yellow .big-number{color:#745700}.donut{--value: 62;display:grid;width:180px;height:180px;place-items:center;margin:30px auto 0;border-radius:999px;background:radial-gradient(circle at center,var(--card) 0 52%,transparent 53%),conic-gradient(var(--green) calc(var(--value) * 1%),var(--line) 0)}.donut strong,.donut span{grid-area:1 / 1}.donut strong{margin-top:-20px;font-size:44px}.donut span{margin-top:48px;color:var(--muted)}.legend-row{display:flex;flex-wrap:wrap;gap:16px}.legend-row span{display:inline-flex;align-items:center;gap:7px}.heat-table-wrap{overflow:auto}.heat-table{width:100%;min-width:1180px;border-collapse:collapse}.heat-table th,.heat-table td{border-bottom:1px solid var(--line);padding:10px;text-align:left}.heat-table th{background:#f2f0eb;color:#273041;font-size:14px}.heat-table td:first-child,.heat-table th:first-child{position:sticky;left:0;z-index:1;min-width:180px;background:#fff}.heat-cell{display:block;width:48px;height:34px;border-radius:6px}.heat-cell--mastered{background:var(--green)}.heat-cell--practising{background:var(--yellow)}.heat-cell--not-yet{background:#dedbd5}.dashboard-footer-note{display:flex;gap:10px;align-items:baseline;justify-content:center;margin-top:18px;color:var(--muted)}.dashboard-footer-note strong{color:var(--blue-dark);font-size:28px}.admin-login-shell,.admin-shell{min-height:100vh;background:var(--surface)}.ui-card{overflow:hidden;border:1px solid var(--line);border-radius:8px;background:var(--card);box-shadow:none}.ui-card-header{display:grid;gap:6px;padding:22px 22px 0}.ui-card-title{margin:0;color:var(--blue-dark);font-size:22px;line-height:1.18}.ui-card-description{margin:0;color:var(--muted);font-size:14px;font-weight:750;line-height:1.45}.ui-card-content{padding:18px 22px 22px}.ui-button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:8px;padding:9px 14px;background:var(--green);color:#fff;font:inherit;font-weight:850;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.ui-button:hover{background:#226c4d}.ui-button:disabled{cursor:not-allowed;opacity:.65}.ui-button--secondary{border-color:var(--line-strong);background:#fff;color:var(--blue-dark)}.ui-button--secondary:hover,.ui-button--ghost:hover{background:#eef3f0}.ui-button--ghost{border-color:var(--line);background:var(--card);color:var(--blue-dark)}.ui-button--danger{background:#8a1f1f;color:#fff}.ui-button--danger:hover{background:#721818}.ui-input,.ui-select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;color:var(--ink);font:inherit;padding:8px 10px}.ui-field{display:grid;gap:7px;color:#313846;font-size:14px;font-weight:850}.ui-badge{display:inline-flex;width:fit-content;align-items:center;justify-content:center;border:1px solid transparent;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:850;line-height:1.2;white-space:nowrap}.ui-badge--neutral{border-color:var(--line);background:#f7f7f5;color:#394150}.ui-badge--info{border-color:#a8d0e8;background:#eaf5fb;color:#245470}.ui-badge--success{border-color:#9bcf9f;background:#edf8ec;color:#276244}.ui-badge--warning{border-color:#e1bd6d;background:#fff6df;color:#7a5416}.ui-badge--danger{border-color:#d99a9a;background:var(--red-soft);color:#8a1f1f}.ui-table-wrap{width:100%;overflow-x:auto}.ui-table{width:100%;min-width:720px;border-collapse:collapse}.ui-table th,.ui-table td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left;vertical-align:top}.ui-table th{background:#f2f0eb;color:#273041;font-size:14px}.ui-table td{color:#293242}.ui-empty-state{display:grid;gap:6px;padding:18px;border:1px dashed var(--line-strong);border-radius:8px;background:#fcfbf8;color:var(--muted)}.ui-empty-state strong{color:var(--blue-dark)}.ui-empty-state p{margin:0;line-height:1.45}.admin-login-shell{display:grid;place-items:center;padding:28px}.admin-login-card,.admin-panel,.admin-metric-card{border:2px solid var(--line);border-radius:8px;background:var(--card)}.admin-login-card{width:min(100%,460px);padding:32px;box-shadow:var(--shadow-soft)}.admin-login-card h1,.admin-login-card p{margin:0 0 12px}.admin-shell{display:block}.admin-mobile-topbar,.admin-nav-scrim,.admin-nav-close{display:none}.admin-nav{position:fixed;top:0;bottom:0;left:0;display:flex;width:280px;height:100vh;flex-direction:column;gap:24px;padding:24px 18px 86px;overflow:hidden;border-right:1px solid #dedbd5;background:#fbfaf7;z-index:20}.admin-nav-brand__copy{display:block}.admin-nav h1,.admin-nav p{margin:0}.admin-nav h1{color:var(--blue-dark);font-size:25px;line-height:1.12}.admin-nav p{margin-top:5px;color:var(--muted);font-size:13px;font-weight:800}.admin-nav nav{display:grid;gap:8px}.admin-nav a,.admin-nav nav button,.admin-logout{display:flex;align-items:center;gap:10px;min-height:44px;border:0;border-radius:8px;background:transparent;color:#2d3442;font-weight:850;padding:0 12px;text-align:left;transition:none}.admin-nav a:not(.active):hover,.admin-nav nav button:not(.active):hover,.admin-logout:hover{background:#f2f0eb}.admin-nav a.active,.admin-nav nav button.active{background:var(--green-soft);color:#174c2a;box-shadow:inset 4px 0 0 var(--green),inset 0 0 0 1px #b8d9be}.admin-nav a.active:hover,.admin-nav nav button.active:hover{background:var(--green-soft)}.admin-nav nav button.admin-start-class{margin-top:10px;border-radius:8px;background:var(--green-soft);color:var(--green)}.start-class h2{margin:0 0 4px}.start-class-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:10px}.start-class-student{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;padding:12px 16px;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:inherit;font-size:17px;font-weight:800;text-align:left;cursor:pointer}.start-class-student:hover,.start-class-student:focus-visible{border-color:var(--green);color:var(--green)}.admin-logout{position:absolute;bottom:18px;left:18px;width:calc(100% - 36px);margin-top:auto;color:#8a1f1f}.admin-brand-mark{display:inline-grid;width:46px;height:46px;place-items:center;margin-bottom:14px;border-radius:999px;background:var(--green-soft);color:var(--green)}.admin-main{margin-left:280px;padding:32px 40px}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px;border-bottom:2px solid var(--line);padding-bottom:22px}.admin-header h1,.admin-header p{margin:0}.admin-header h1{margin-bottom:8px;font-size:38px;line-height:1.1}.admin-login-submit{width:100%;margin-top:4px}.admin-dashboard-stack{display:grid;gap:20px}.admin-overview-hero{display:grid;gap:10px;padding:0 0 4px}.admin-overview-hero h2{margin:0;color:var(--blue-dark);font-size:32px;line-height:1.08}.admin-overview-hero p{max-width:820px;margin:0;color:#3b4556;font-weight:750;line-height:1.45}.admin-overview-hero__meta{display:flex;flex-wrap:wrap;gap:8px}.admin-overview-hero__meta span{border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:#f7f7f5;color:#394150;font-size:13px;font-weight:850}.admin-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.admin-kpi-card{display:grid;grid-template-columns:auto 1fr;gap:12px;min-height:132px;padding:18px}.admin-kpi-card p,.admin-kpi-card span{margin:0;color:var(--muted);font-size:13px;font-weight:800}.admin-kpi-card strong{display:block;margin:4px 0;color:var(--blue-dark);font-size:34px;line-height:1}.admin-kpi-icon{display:inline-grid;width:42px;height:42px;place-items:center;border-radius:999px}.admin-kpi-icon--info{background:#eaf5fb;color:#245470}.admin-kpi-icon--success{background:#edf8ec;color:#276244}.admin-kpi-icon--warning{background:#fff6df;color:#7a5416}.admin-insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.attention-card{min-width:0}.attention-list{display:grid;gap:10px}.attention-row{display:grid;width:100%;min-width:0;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8;color:inherit;padding:12px;text-align:left;cursor:pointer}.attention-row:hover,.attention-row:focus-visible,.attention-row.is-selected{border-color:#b8d9be;background:#f3faf2}.attention-row__main{display:grid;min-width:0;gap:3px}.attention-row__main strong,.attention-row__main span{min-width:0;overflow-wrap:anywhere}.attention-row__main strong{color:var(--blue-dark);font-size:15px;line-height:1.2}.attention-row__main span{color:var(--muted);font-size:13px;font-weight:800}.attention-row__metrics{display:flex;flex-wrap:wrap;grid-column:1 / -1;gap:6px}.attention-filter-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px}.attention-filter-clear{min-height:30px;padding:0 10px}.academic-chart-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.academic-chart-card{min-width:0}.trend-bar-chart{display:grid;min-width:0;min-height:154px;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:10px}.trend-bar{display:grid;min-width:0;grid-template-rows:1fr auto auto auto;align-items:end;gap:5px;text-align:center}.trend-bar__track{display:flex;width:100%;height:92px;align-items:flex-end;border-radius:8px;background:#f0eee8;overflow:hidden}.trend-bar__fill{display:block;width:100%;height:var(--bar-value);border-radius:8px 8px 0 0;background:#2f6690;transition:height .18s ease}.trend-bar__fill--success{background:#2f7d4e}.trend-bar__fill--warning{background:#c58a24}.trend-bar strong,.trend-bar span,.trend-bar small{min-width:0;overflow-wrap:anywhere}.trend-bar strong{color:var(--blue-dark);font-size:17px;line-height:1.1}.trend-bar span{color:#4a5568;font-size:12px;font-weight:850}.trend-bar small{color:var(--muted);font-size:11px;font-weight:800}.support-chart-list{display:grid;gap:12px}.support-chart-row{display:grid;width:100%;min-width:0;grid-template-columns:minmax(0,1fr) minmax(72px,1fr) auto;align-items:center;gap:10px;border:1px solid transparent;border-radius:8px;background:transparent;color:inherit;padding:8px;text-align:left;cursor:pointer}.support-chart-row:disabled{cursor:default}.support-chart-row:not(:disabled):hover,.support-chart-row:not(:disabled):focus-visible,.support-chart-row.is-selected{border-color:#b8d9be;background:#f3faf2}.support-chart-row__label{min-width:0;color:#303a49;font-weight:850;overflow-wrap:anywhere}.support-chart-row__track{display:block;min-width:0;height:10px;border-radius:999px;background:#f0eee8;overflow:hidden}.support-chart-row__track span{display:block;width:var(--bar-value);height:100%;border-radius:inherit;background:#c58a24}.support-area-list,.support-learner-list{display:grid;gap:10px}.support-area-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);color:#303a49;font-weight:800}.support-area-row:last-child{border-bottom:0}.admin-filter-row{display:grid;grid-template-columns:minmax(220px,360px);gap:12px;margin-bottom:14px}.support-learner-row{display:grid;grid-template-columns:minmax(160px,1fr) auto auto;gap:10px 14px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8}.support-learner-row strong,.support-learner-row p{margin:0}.support-learner-row strong{color:var(--blue-dark)}.support-learner-row p{margin-top:3px;color:var(--muted);font-size:13px;font-weight:750}.support-learner-row__metrics,.support-learner-row__reasons{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-start}.support-learner-row__reasons{grid-column:1 / -2}.support-learner-row__action{display:flex;justify-content:flex-end}.learner-progress-modal{display:grid;gap:16px}.learner-progress-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-right:36px}.learner-progress-header h3,.learner-progress-header p,.learner-progress-section h4{margin:0}.learner-progress-header h3{color:var(--blue-dark);font-size:26px;line-height:1.12}.learner-progress-header p{margin-top:4px;color:var(--muted);font-size:13px;font-weight:800}.learner-progress-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.learner-progress-metrics>div{display:grid;min-width:0;gap:3px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8;padding:12px}.learner-progress-metrics span,.learner-progress-metrics small{min-width:0;color:var(--muted);font-size:12px;font-weight:800;overflow-wrap:anywhere}.learner-progress-metrics strong{min-width:0;color:var(--blue-dark);font-size:23px;line-height:1.08;overflow-wrap:anywhere}.learner-progress-section{display:grid;gap:9px}.learner-progress-section h4,.learner-progress-actions>span{color:#303a49;font-size:14px;font-weight:900}.learner-progress-tags{display:flex;flex-wrap:wrap;gap:7px}.learner-attempt-list{display:grid;gap:8px}.learner-attempt-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8;padding:10px 12px}.learner-attempt-row strong,.learner-attempt-row span{display:block;min-width:0;overflow-wrap:anywhere}.learner-attempt-row strong{color:var(--blue-dark);font-size:14px}.learner-attempt-row span{margin-top:2px;color:var(--muted);font-size:12px;font-weight:800}.learner-progress-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:14px}.admin-alert{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:14px 16px;border:2px solid var(--line);border-radius:8px;background:#fff;color:#263040;font-weight:750}.admin-alert--success{border-color:#9bcf9f;background:#edf8ec}.admin-alert--error{border-color:#df8a8a;background:var(--red-soft)}.admin-credentials-list{display:flex;flex-wrap:wrap;gap:8px}.admin-credentials{display:inline-flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:6px;background:#fff}.admin-credentials code{padding:3px 6px;border-radius:5px;background:#202633;color:#fff;font-weight:850}.admin-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.admin-metric-card{display:grid;gap:8px;min-height:150px;padding:20px}.admin-metric-card span{display:inline-grid;width:44px;height:44px;place-items:center;border-radius:999px;background:#eaf3ff;color:var(--blue-dark)}.admin-metric-card p{margin:0;color:var(--muted);font-weight:800}.admin-metric-card strong{color:var(--blue-dark);font-size:44px;line-height:1}.admin-workspace{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.4fr);gap:24px;align-items:start}.admin-workspace--section{align-items:stretch}.admin-workspace--teachers{display:flex;flex-direction:column;gap:24px}.admin-panel{padding:22px}.admin-panel--forms{display:grid;gap:18px}.admin-panel--directory{display:grid;gap:0}.admin-subform{padding:18px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8}.admin-subform h3{margin:0 0 14px;font-size:20px}.admin-form,.admin-form label{display:grid;gap:8px}.admin-form{gap:12px}.admin-form label,.admin-checkbox{color:#313846;font-size:14px;font-weight:850}.admin-form input,.admin-form select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;color:var(--ink);padding:8px 10px}.admin-form-row,.admin-inline-fields{display:grid;gap:12px}.admin-form-row{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-inline-fields{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-stepper{display:inline-flex;align-items:center;gap:8px;width:fit-content;margin:-4px 0 8px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:12px;font-weight:850}.admin-stepper span{display:inline-flex;align-items:center;min-height:30px;border-radius:6px;padding:0 10px;white-space:nowrap}.admin-stepper span.is-active{background:var(--green-soft);color:#174c2a}.admin-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.learner-credentials-modal{display:grid;gap:14px;min-width:min(360px,82vw);padding:22px}.learner-credentials-summary{display:grid;gap:6px}.learner-credentials-summary h3,.learner-credentials-summary p{margin:0}.learner-credentials-summary h3{color:var(--blue-dark);font-size:22px}.learner-credentials-summary p{color:var(--muted);font-size:14px;font-weight:750;line-height:1.4}.learner-credential-row{display:grid;gap:6px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8}.learner-credential-row span{color:var(--muted);font-size:13px;font-weight:850}.learner-credential-row strong{color:var(--blue-dark);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:20px;overflow-wrap:anywhere}.admin-checkbox{grid-template-columns:20px 1fr;align-items:center}.admin-checkbox input{width:18px;min-height:18px}.admin-note{padding:14px;border:1px dashed var(--line-strong);border-radius:8px;background:#fff;color:var(--muted);line-height:1.45}.admin-table-wrap{overflow-x:auto}.admin-table-wrap h3{margin:0 0 12px}.admin-table{width:100%;min-width:520px;border-collapse:collapse}.admin-table th,.admin-table td{border-bottom:1px solid var(--line);padding:12px 14px;text-align:left}.admin-table th{background:#f2f0eb;color:#273041;font-size:14px}.admin-table td{color:#293242}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes tap{0%,to{transform:translateY(0) rotate(-22deg)}50%{transform:translateY(-20px) rotate(-22deg)}}@media(max-width:980px){.console-shell,.dashboard-shell,.admin-shell{grid-template-columns:1fr}.console-nav,.dashboard-nav,.admin-nav{position:static;display:grid;grid-template-columns:auto 1fr;width:auto;height:auto;min-height:auto;align-items:center;gap:12px;padding-bottom:28px;overflow:visible}.console-nav nav,.dashboard-nav nav,.admin-nav nav{grid-column:1 / -1;grid-template-columns:repeat(3,1fr)}.console-grid,.metric-grid,.admin-workspace,.admin-metric-grid{grid-template-columns:1fr}.admin-main{margin-left:0;padding:28px 22px}.admin-kpi-grid,.admin-insight-grid,.academic-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-logout{position:static;grid-column:1 / -1;left:auto;bottom:auto;width:100%;margin-top:0}.roster-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media(max-width:640px){.app-root{min-height:100dvh;padding:0}.phone-shell{height:100vh;min-height:100vh;height:100dvh;min-height:100dvh;width:100%;border:0;border-radius:0}.console-main,.dashboard-main,.admin-main{margin-left:0;padding:24px 16px}.admin-main{padding:72px 12px 18px}.console-header,.dashboard-header,.admin-header{align-items:flex-start;flex-direction:column}.admin-mobile-topbar{position:fixed;top:0;right:0;left:0;z-index:30;display:flex;min-height:58px;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#fbfaf7f5;padding:8px 12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.admin-mobile-menu-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:40px;border:1px solid #b8d9be;border-radius:8px;background:var(--green-soft);color:#174c2a;padding:0 12px;font:inherit;font-weight:850}.admin-mobile-title{display:grid;min-width:0;gap:1px}.admin-mobile-title strong,.admin-mobile-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-mobile-title strong{color:var(--blue-dark);font-size:17px;line-height:1.15}.admin-mobile-title span{color:var(--muted);font-size:12px;font-weight:850}.admin-nav-scrim{position:fixed;inset:0;z-index:35;border:0;background:#14141475;padding:0}.admin-shell--nav-open .admin-nav-scrim{display:block}.admin-nav{position:fixed;top:0;bottom:0;left:0;z-index:40;display:flex;width:min(78vw,296px);height:100dvh;min-height:100dvh;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px;border-right:1px solid var(--line);background:#fbfaf7;padding:16px 12px;overflow-y:auto;box-shadow:24px 0 60px #161c262e;transform:translate(-105%);transition:transform .18s ease;visibility:hidden;pointer-events:none}.admin-shell--nav-open .admin-nav{transform:translate(0);visibility:visible;pointer-events:auto}.admin-nav-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-nav-brand__copy{display:flex;min-width:0;align-items:center;gap:10px}.admin-brand-mark{width:38px;height:38px;margin-bottom:0}.admin-nav h1{font-size:20px}.admin-nav-close{display:inline-flex;position:relative;width:44px;height:44px;flex:0 0 auto;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:var(--blue-dark);padding:0}.admin-nav-close:before{position:absolute;inset:5px;border:1px solid var(--line);border-radius:8px;background:#fff;content:""}.admin-nav-close svg{position:relative;z-index:1;width:18px;height:18px}.admin-nav nav{display:grid;width:100%;grid-template-columns:1fr;gap:8px;margin-top:4px;align-content:start;overflow:visible;padding-bottom:0}.admin-nav nav button{width:100%;min-height:40px}.admin-logout{border-top:1px solid var(--line);border-radius:0;min-height:40px;margin-top:8px;padding-top:12px}.admin-form-row,.admin-inline-fields{grid-template-columns:1fr}.admin-form-actions{flex-direction:column-reverse;width:100%}.admin-form-actions .ui-button{width:100%}.admin-kpi-grid,.admin-insight-grid,.academic-chart-grid,.admin-filter-row,.support-learner-row{grid-template-columns:1fr}.admin-overview-hero{gap:8px;padding:2px 2px 0}.admin-overview-hero h2{font-size:25px;line-height:1.08}.admin-overview-hero p{font-size:14px}.admin-overview-hero__meta{gap:6px}.admin-overview-hero__meta span{padding:6px 8px;font-size:12px}.admin-dashboard-stack{gap:12px}.admin-kpi-grid{gap:8px}.admin-kpi-card{min-height:0;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px}.admin-kpi-icon{width:34px;height:34px}.admin-kpi-card p,.admin-kpi-card span{font-size:12px}.admin-kpi-card strong{margin:2px 0;font-size:28px}.trend-bar-chart{min-height:132px;gap:8px}.trend-bar__track{height:76px}.support-chart-row{grid-template-columns:minmax(0,1fr) auto}.support-chart-row__track{grid-column:1 / -1;grid-row:2}.attention-row,.support-learner-row{grid-template-columns:1fr}.attention-row__metrics,.support-learner-row__reasons{grid-column:auto}.support-learner-row__action{justify-content:flex-start}.learner-progress-header{display:grid;padding-right:34px}.learner-progress-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.learner-progress-actions{align-items:flex-start;flex-direction:column}.ui-card-header{padding:14px 14px 0}.ui-card-title{font-size:20px}.ui-card-content{padding:12px 14px 14px}.support-area-row{padding:9px 0}.admin-filter-row{grid-template-columns:1fr}.ui-empty-state{padding:13px}.roster-grid,.load-next-card{grid-template-columns:1fr}}.reward-burst{position:absolute;inset:0;z-index:50;pointer-events:none;display:flex;align-items:center;justify-content:center;overflow:visible}.reward-burst .reward-mascot{font-size:96px;line-height:1;filter:drop-shadow(0 6px 18px rgba(19,127,236,.35));transform-origin:center;animation:reward-pop .6s ease-out forwards}.reward-burst .reward-confetti{position:absolute;top:50%;left:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%) scale(0);opacity:0;animation-duration:1.2s;animation-timing-function:cubic-bezier(.16,.84,.44,1);animation-fill-mode:forwards}.reward-burst .reward-confetti.c1{background:var(--eklavya-blue);animation-name:reward-scatter-1}.reward-burst .reward-confetti.c2{background:#ffd54f;animation-name:reward-scatter-2}.reward-burst .reward-confetti.c3{background:#2f8a46;animation-name:reward-scatter-3}.reward-burst .reward-confetti.c4{background:#ff6b6b;animation-name:reward-scatter-4}.reward-burst .reward-confetti.c5{background:var(--eklavya-blue);animation-name:reward-scatter-5}.reward-burst .reward-confetti.c6{background:#ffd54f;animation-name:reward-scatter-6}.reward-burst .reward-confetti.c7{background:#2f8a46;animation-name:reward-scatter-7}.reward-burst .reward-confetti.c8{background:#ff6b6b;animation-name:reward-scatter-8}.reward-burst .reward-confetti.c9{background:#ffd54f;animation-name:reward-scatter-9}.reward-burst .reward-confetti.c10{background:#ff6b6b;animation-name:reward-scatter-10}@keyframes reward-pop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:1}}@keyframes reward-scatter-1{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% + 120px),calc(-50% - 110px)) scale(1);opacity:0}}@keyframes reward-scatter-2{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% - 130px),calc(-50% - 90px)) scale(1);opacity:0}}@keyframes reward-scatter-3{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% + 150px),calc(-50% + 80px)) scale(1);opacity:0}}@keyframes reward-scatter-4{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% - 140px),calc(-50% + 110px)) scale(1);opacity:0}}@keyframes reward-scatter-5{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% + 60px),calc(-50% - 150px)) scale(1);opacity:0}}@keyframes reward-scatter-6{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% - 70px),calc(-50% + 140px)) scale(1);opacity:0}}@keyframes reward-scatter-7{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% + 170px),calc(-50% + 10px)) scale(1);opacity:0}}@keyframes reward-scatter-8{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% - 160px),calc(-50% - 20px)) scale(1);opacity:0}}@keyframes reward-scatter-9{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% + 30px),calc(-50% + 160px)) scale(1);opacity:0}}@keyframes reward-scatter-10{0%{transform:translate(-50%,-50%) scale(0);opacity:0}20%{opacity:1}to{transform:translate(calc(-50% - 40px),calc(-50% - 170px)) scale(1);opacity:0}}.reward-burst{position:fixed;inset:0;z-index:1000;overflow:hidden}.reward-burst .reward-mascot{display:none}.reward-burst .reward-confetti{top:-18px;left:50%;width:10px;height:18px;border-radius:3px;opacity:0;transform:translateZ(0) rotate(0);animation-name:reward-fall!important;animation-duration:1.65s;animation-timing-function:cubic-bezier(.2,.72,.26,1);animation-fill-mode:forwards;box-shadow:22vw 10px #ffd54f,-18vw -4px #137fec,36vw -10px #2f8a46}.reward-burst .reward-confetti.c1{left:8%;background:#137fec;animation-delay:0s}.reward-burst .reward-confetti.c2{left:18%;background:#ffd54f;animation-delay:.08s}.reward-burst .reward-confetti.c3{left:29%;background:#2f8a46;animation-delay:.02s}.reward-burst .reward-confetti.c4{left:41%;background:#ff6b6b;animation-delay:.14s}.reward-burst .reward-confetti.c5{left:52%;background:#8b5cf6;animation-delay:.04s}.reward-burst .reward-confetti.c6{left:63%;background:#ffd54f;animation-delay:.18s}.reward-burst .reward-confetti.c7{left:73%;background:#137fec;animation-delay:.1s}.reward-burst .reward-confetti.c8{left:82%;background:#2f8a46;animation-delay:.22s}.reward-burst .reward-confetti.c9{left:91%;background:#ff6b6b;animation-delay:.06s}.reward-burst .reward-confetti.c10{left:96%;background:#ffd54f;animation-delay:.16s}@keyframes reward-fall{0%{opacity:0;transform:translate3d(0,-40px,0) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate3d(-28px,112vh,0) rotate(560deg)}}.profile-hero{display:grid;grid-template-columns:76px 1fr auto;gap:18px;align-items:center;background:var(--card);border-radius:var(--radius-lg, 1rem);padding:20px;margin-top:12px;box-shadow:var(--shadow-sm)}.profile-avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-display);font-size:36px;font-weight:700}.profile-hero h1{margin:0 0 4px;font-family:var(--font-display);font-size:28px}.profile-hero p{margin:0;font-size:14px;color:var(--foreground-subtle)}.profile-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0}.profile-stats article{background:var(--card);border-radius:var(--radius, .75rem);padding:16px;text-align:center;box-shadow:var(--shadow-sm)}.profile-stats article strong{display:block;font-family:var(--font-display);font-size:32px;color:var(--eklavya-blue);line-height:1}.profile-stats article span{display:block;margin-top:6px;font-size:13px;color:var(--foreground-subtle)}.profile-actions{display:flex;flex-direction:column;gap:12px;margin-top:8px}.voice-capture-root{display:flex;flex-direction:column;align-items:center;gap:12px;margin:18px 0 6px}.voice-capture-mic,.voice-capture-stop,.voice-capture-link{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:14px 28px;min-height:56px;font-family:var(--font-sans);font-size:17px;font-weight:800;cursor:pointer;transition:transform .1s ease,box-shadow .15s ease}.voice-capture-mic{background:var(--eklavya-blue);color:#fff;box-shadow:var(--shadow-primary)}.voice-capture-mic:hover{box-shadow:var(--shadow-primary-hover)}.voice-capture-mic:active{transform:scale(.98)}.voice-capture-stop{background:#e11d48;color:#fff;box-shadow:0 8px 30px #e11d4859}.voice-capture-stop:active{transform:scale(.98)}.voice-capture-link{background:transparent;color:var(--eklavya-blue);padding:8px 12px;min-height:32px;font-size:14px;text-decoration:underline}.voice-capture-pulse-wrap{display:grid;place-items:center;width:84px;height:84px}.voice-capture-pulse{display:block;width:24px;height:24px;border-radius:999px;background:#e11d48;color:transparent;box-shadow:0 0 #e11d488c;animation:voice-capture-pulse 1.1s ease-out infinite}@keyframes voice-capture-pulse{0%{transform:scale(.9);box-shadow:0 0 #e11d488c}70%{transform:scale(1.2);box-shadow:0 0 0 22px #e11d4800}to{transform:scale(.9);box-shadow:0 0 #e11d4800}}.voice-capture-spinner{display:block;width:36px;height:36px;border:4px solid rgba(19,127,236,.18);border-top-color:var(--eklavya-blue);border-radius:999px;animation:voice-capture-spin .9s linear infinite}@keyframes voice-capture-spin{to{transform:rotate(360deg)}}.voice-capture-status{margin:0;font-size:14px;color:var(--foreground-subtle);font-weight:700}.voice-capture-echo{margin:0;font-family:var(--font-display);font-size:22px;text-align:center;color:var(--foreground);padding:12px 16px;background:var(--eklavya-blue-50, #eaf3fe);border-radius:12px;width:100%}.voice-capture-verdict{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:999px;font-weight:700;font-size:14px}.voice-capture-verdict--pass{background:#10b98126;color:#047857}.voice-capture-verdict--retry{background:#f59e0b26;color:#b45309}.voice-capture-error{background:#e11d4814;color:#b91c4a;padding:12px 16px;border-radius:12px;font-size:14px;text-align:center}.modal-backdrop{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{width:min(600px,90vw);max-height:90vh;overflow-y:auto;background:var(--surface);border-radius:16px;padding:24px;position:relative}.modal-close{position:absolute;top:12px;right:12px;border:none;background:transparent;cursor:pointer;font-size:24px}.modal-close.ui-button{width:36px;min-height:36px;padding:0;border-radius:999px}.admin-muted{color:var(--muted)}.row-actions{display:inline-flex;align-items:center;gap:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#fff}.row-delete,.row-action{width:36px;height:36px;border:0;border-radius:0;background:#fff;color:#2d3442}.row-delete.ui-button,.row-action.ui-button{min-height:36px;padding:0}.row-actions>:not(:first-child){border-left:1px solid var(--line)}.row-delete{color:#8a1f1f}.row-delete:hover,.row-action:hover{background:#f7f5f0}.row-action--reset{color:#275a76}.row-action--reset:hover{background:#e7f3f7;border-color:#9bc7d5}.admin-form-help{margin:-4px 0 8px;color:var(--muted);font-size:14px}.danger-action{background:#8a1f1f;box-shadow:inset 0 -5px #5e1414}.danger-action:hover{background:#761a1a}.admin-confirm h3{margin:0 0 8px}.admin-confirm p{margin:0 0 20px;color:var(--muted)}.admin-confirm-actions{display:flex;gap:12px;justify-content:flex-end}.secondary-action--inline{width:auto;min-width:120px;margin-bottom:0}.panel-title--with-action{display:flex;justify-content:space-between;align-items:center;gap:16px}.panel-teachers-header,.panel-schools-header,.panel-learners-header{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:74px;padding:16px 18px;border-bottom:1px solid var(--line);background:#fff}.panel-teachers-header__content,.panel-schools-header__content,.panel-learners-header__content{display:flex;align-items:center;min-width:0;gap:12px}.panel-teachers-header__content h2,.panel-schools-header__content h2,.panel-learners-header__content h2{margin:0;color:var(--blue-dark);font-size:25px;line-height:1.15}.panel-header-icon{display:inline-grid;width:38px;height:38px;flex:0 0 auto;place-items:center;border:1px solid #d8e6da;border-radius:8px;background:#f2f8f3;color:var(--green)}.panel-schools-header__actions{display:flex;gap:10px;flex-shrink:0}.panel-header-action.ui-button{min-height:40px;min-width:0;padding:8px 13px;border-radius:7px;white-space:nowrap}.admin-schools-workspace{display:grid;gap:18px}.school-setup-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:0}.school-setup-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.school-setup-step{display:grid;gap:10px;min-height:92px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8}.school-setup-step>div:first-child{display:flex;align-items:start;justify-content:space-between;gap:10px}.school-setup-step span,.table-primary-cell span{color:var(--muted);font-size:12px;font-weight:850}.school-setup-step strong{color:var(--blue-dark);font-size:22px;line-height:1;white-space:nowrap}.school-setup-bar{height:8px;overflow:hidden;border-radius:999px;background:#e4e1d8}.school-setup-bar span{display:block;height:100%;min-width:4px;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--blue))}.school-table{min-width:930px}.school-admin-table{min-width:760px}.table-primary-cell{display:grid;gap:3px;min-width:0}.table-primary-cell strong,.table-primary-cell span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-workspace--learners{display:block}.learner-directory-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 18px 0;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fcfbf8}.learner-directory-controls label{display:grid;gap:7px;color:#313846;font-size:14px;font-weight:850}.learner-directory-controls input,.learner-directory-controls select{width:100%;min-height:44px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;color:var(--ink);padding:8px 10px}.learner-directory-summary{margin:0;padding:13px 18px 12px;color:var(--muted);font-size:14px;font-weight:800}@media(max-width:768px){.panel-teachers-header,.panel-schools-header,.panel-learners-header{flex-direction:column;align-items:flex-start}.panel-header-action.ui-button{width:100%}.learner-directory-controls{grid-template-columns:1fr;width:100%}.school-setup-card__header{align-items:flex-start}.school-setup-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.school-setup-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.school-setup-card .ui-card-content{padding:8px 12px 12px}.school-setup-card__header{align-items:center;padding:12px 12px 0}.school-setup-card__header .ui-card-title{font-size:20px}.school-setup-card__header .ui-badge{padding:4px 8px;font-size:11px}.school-setup-step{min-height:0;gap:5px;padding:8px 5px}.school-setup-step>div:first-child{display:grid;gap:3px;justify-content:center;text-align:center}.school-setup-step span{font-size:10px;line-height:1.12}.school-setup-step strong{font-size:17px}.school-setup-bar{height:4px}.panel-teachers-header,.panel-schools-header,.panel-learners-header{min-height:auto;flex-direction:row;align-items:center;padding:12px}.panel-teachers-header__content,.panel-schools-header__content,.panel-learners-header__content{gap:9px}.panel-header-icon{width:34px;height:34px}.panel-teachers-header__content h2,.panel-schools-header__content h2,.panel-learners-header__content h2{font-size:20px}.panel-header-action.ui-button{width:auto;min-height:36px;padding:7px 10px;font-size:13px}.learner-directory-controls{margin:10px 12px 0;padding:10px}.learner-directory-summary,.ui-table th,.ui-table td{padding:10px 12px;font-size:13px}.ui-table-wrap{overflow-x:visible}.ui-table{min-width:0}.ui-table thead{display:none}.ui-table,.ui-table tbody,.ui-table tr,.ui-table td{display:block;width:100%}.ui-table tbody{display:grid;gap:10px;padding:0 12px 12px}.ui-table tr{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px}.ui-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:0;padding:7px 0;color:#293242;text-align:right}.ui-table td:before{content:attr(data-label);flex:0 0 min(42%,132px);color:var(--muted);font-size:11px;font-weight:850;line-height:1.35;text-align:left}.ui-table td:not([data-label]){display:block;text-align:left}.ui-table td:not([data-label]):before{content:none}.ui-table td[data-label=School],.ui-table td[data-label=Admin],.ui-table td[data-label=Teacher],.ui-table td[data-label=Learner]{display:block;padding-bottom:10px;border-bottom:1px solid var(--line);text-align:left}.ui-table td[data-label=School]:before,.ui-table td[data-label=Admin]:before,.ui-table td[data-label=Teacher]:before,.ui-table td[data-label=Learner]:before{display:block;margin-bottom:4px}.ui-table .row-actions{justify-content:flex-end}.table-primary-cell strong,.table-primary-cell span{white-space:normal}}@media(max-width:860px){.admin-main{margin-left:0;padding:72px 12px 18px}.admin-mobile-topbar{position:fixed;top:0;right:0;left:0;z-index:30;display:flex;min-height:58px;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#fbfaf7f5;padding:8px 12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.admin-mobile-menu-button{display:flex;min-height:40px;align-items:center;justify-content:center;gap:10px;border:1px solid #b8d9be;border-radius:8px;background:var(--green-soft);color:#174c2a;padding:0 12px;font:inherit;font-weight:850}.admin-mobile-title{display:grid;min-width:0;gap:1px}.admin-mobile-title strong,.admin-mobile-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-mobile-title strong{color:var(--blue-dark);font-size:17px;line-height:1.15}.admin-mobile-title span{color:var(--muted);font-size:12px;font-weight:850}.admin-nav-scrim{position:fixed;inset:0;z-index:35;border:0;background:#14141475;padding:0}.admin-shell--nav-open .admin-nav-scrim{display:block}.admin-nav{position:fixed;top:0;bottom:0;left:0;z-index:40;display:flex;width:min(78vw,360px);height:100dvh;min-height:100dvh;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:28px;border-right:1px solid #e5e7eb;background:#fff;padding:28px 22px 22px;overflow-y:auto;box-shadow:24px 0 60px #0f172a2e;transform:translate(-105%);visibility:hidden;pointer-events:none;transition:transform .18s ease}.admin-shell--nav-open .admin-nav{transform:translate(0);visibility:visible;pointer-events:auto}.admin-nav-brand{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-nav-brand__copy{display:flex;min-width:0;align-items:center;gap:14px}.admin-brand-mark{width:44px;height:44px;margin-bottom:0}.admin-nav h1{font-size:22px;line-height:1.05;white-space:nowrap}.admin-nav p{margin-top:5px;font-size:13px}.admin-nav-close{display:inline-flex;position:relative;width:44px;height:44px;flex:0 0 auto;align-items:center;justify-content:center;border:0;border-radius:10px;background:transparent;color:#0f172a;padding:0}.admin-nav-close:before{position:absolute;inset:5px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 4px 10px #0f172a0f;content:""}.admin-nav-close svg{position:relative;z-index:1;width:18px;height:18px}.admin-nav nav{display:grid;width:100%;grid-template-columns:1fr;gap:18px;margin-top:28px;align-content:start;overflow:visible;padding-bottom:0}.admin-nav nav button{width:100%;min-height:48px;justify-content:flex-start;gap:16px;border-radius:10px;padding:0 12px;background:transparent;color:#0f172a;font-size:20px;font-weight:750}.admin-nav nav button svg{width:24px;height:24px;color:#0f172a}.admin-nav nav button.active{background:#f1f5f9;color:#0f172a;box-shadow:none}.admin-logout{position:static;width:100%;min-height:54px;justify-content:center;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#7f1d1d;margin-top:auto;padding:0 14px;box-shadow:0 6px 16px #0f172a0d}.admin-dashboard-stack{gap:12px}.admin-overview-hero{gap:8px;padding:2px 2px 0}.admin-overview-hero h2{font-size:25px;line-height:1.08}.admin-overview-hero p{font-size:14px}.admin-overview-hero__meta{gap:6px}.admin-overview-hero__meta span{padding:6px 8px;font-size:12px}.admin-insight-grid,.academic-chart-grid,.admin-filter-row,.support-learner-row{grid-template-columns:1fr}.admin-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.admin-kpi-card{min-height:0;grid-template-columns:1fr;gap:7px;padding:10px}.admin-kpi-icon{width:30px;height:30px}.admin-kpi-card p,.admin-kpi-card span{font-size:11px}.admin-kpi-card strong{margin:2px 0;font-size:24px}.trend-bar-chart{min-height:122px;gap:7px}.trend-bar__track{height:68px}.trend-bar strong{font-size:15px}.trend-bar span,.trend-bar small{font-size:10px}.learner-progress-modal{gap:12px}.learner-progress-header h3{font-size:22px}.learner-progress-metrics{grid-template-columns:1fr;gap:8px}.learner-progress-metrics>div{padding:10px}.learner-progress-metrics strong{font-size:21px}.learner-attempt-row{grid-template-columns:1fr;align-items:start}.ui-card-header{padding:14px 14px 0}.ui-card-title{font-size:20px}.ui-card-content{padding:12px 14px 14px}.ui-empty-state{padding:13px}.support-area-row{padding:9px 0}.school-setup-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.school-setup-card .ui-card-content{padding:8px 12px 12px}.school-setup-card__header{align-items:center;padding:12px 12px 0}.school-setup-card__header .ui-card-title{font-size:20px}.school-setup-card__header .ui-badge{padding:4px 8px;font-size:11px}.school-setup-step{min-height:0;gap:5px;padding:8px 5px}.school-setup-step>div:first-child{display:grid;gap:3px;justify-content:center;text-align:center}.school-setup-step span{font-size:10px;line-height:1.12}.school-setup-step strong{font-size:17px}.school-setup-bar{height:4px}.panel-teachers-header,.panel-schools-header,.panel-learners-header{min-height:auto;flex-direction:row;align-items:center;padding:12px}.panel-teachers-header__content,.panel-schools-header__content,.panel-learners-header__content{gap:9px}.panel-header-icon{width:34px;height:34px}.panel-teachers-header__content h2,.panel-schools-header__content h2,.panel-learners-header__content h2{font-size:20px}.panel-header-action.ui-button{width:auto;max-width:150px;min-height:36px;padding:7px 9px;font-size:12px;line-height:1.15;white-space:normal}.learner-directory-controls{grid-template-columns:1fr;width:auto;margin:10px 12px 0;padding:10px}.learner-directory-summary{padding:10px 12px;font-size:13px}.ui-table-wrap{overflow-x:visible}.ui-table{min-width:0}.ui-table thead{display:none}.ui-table,.ui-table tbody,.ui-table tr,.ui-table td{display:block;width:100%}.ui-table tbody{display:grid;gap:10px;padding:0 12px 12px}.ui-table tr{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 12px}.ui-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:0;padding:7px 0;color:#293242;font-size:13px;text-align:right}.ui-table td:before{content:attr(data-label);flex:0 0 min(42%,132px);color:var(--muted);font-size:11px;font-weight:850;line-height:1.35;text-align:left}.ui-table td:not([data-label]){display:block;text-align:left}.ui-table td:not([data-label]):before{content:none}.ui-table td[data-label=School],.ui-table td[data-label=Admin],.ui-table td[data-label=Teacher],.ui-table td[data-label=Learner]{display:block;padding-bottom:10px;border-bottom:1px solid var(--line);text-align:left}.ui-table td[data-label=School]:before,.ui-table td[data-label=Admin]:before,.ui-table td[data-label=Teacher]:before,.ui-table td[data-label=Learner]:before{display:block;margin-bottom:4px}.ui-table .row-actions{justify-content:flex-end}.table-primary-cell strong,.table-primary-cell span{white-space:normal}}
