:root{font-family:"Nunito",ui-rounded,system-ui,sans-serif;color:#302943;background:#fffaf4;--ink:#302943;--muted:#6d647c;--card:#fff;--line:#e9def0;--magic:#7451d6;--magic2:#d76fa6;--focus:#1967d2;font-size:16px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 10%,#f8e8ff 0,transparent 30%),radial-gradient(circle at 92% 30%,#e7f7ff 0,transparent 26%),#fffaf4}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:12px;z-index:10;background:#fff;padding:12px}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px clamp(16px,5vw,64px);background:#fffaf4e8;backdrop-filter:blur(18px);border-bottom:1px solid #ffffff80}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,var(--magic),var(--magic2));color:#fff;font-size:1.4rem}.brand span:last-child{display:grid}.brand small{font-size:.65rem;color:var(--muted);letter-spacing:.09em}.topbar nav{display:flex;gap:6px}.topbar button,.pill{border:0;background:#fff;border-radius:999px;padding:10px 14px;color:var(--ink);font-weight:800;box-shadow:0 6px 24px #412c6410}.pill{font-size:.78rem}main{max-width:1200px;margin:auto;padding:clamp(24px,5vw,72px)}.hero{min-height:68vh;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:42px}.hero h1{font-size:clamp(3rem,8vw,7rem);line-height:.95;margin:.12em 0 .25em;letter-spacing:-.055em}.hero p:not(.eyebrow){max-width:680px;font-size:1.2rem;line-height:1.7;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-weight:900;color:var(--magic);font-size:.78rem}.story-orb{justify-self:center;width:min(36vw,360px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff 0,#ffe2f0 24%,#9b7ee8 58%,#4d3298 100%);box-shadow:inset 0 0 70px #fff8,0 45px 100px #6c4bb74d;animation:float 5s ease-in-out infinite}.story-orb span{font-size:6rem;color:#fff;text-shadow:0 0 30px white}.panel{background:#ffffffd9;border:1px solid #fff;border-radius:36px;padding:clamp(22px,5vw,54px);box-shadow:0 30px 100px #4d37651b}.section-heading,.reader-toolbar{display:flex;justify-content:space-between;align-items:end;gap:32px}.section-heading>p{max-width:520px;color:var(--muted)}h2{font-size:clamp(2rem,5vw,4rem);margin:.15em 0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}.form-grid label,.form-grid fieldset{display:grid;gap:8px;font-weight:800}.form-grid fieldset{border:1px solid var(--line);border-radius:18px;padding:16px}.choice{display:flex!important;align-items:center;gap:9px;font-weight:700!important}input,select,button{font:inherit}input:not([type=checkbox]):not([type=radio]):not([type=range]),select{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;color:var(--ink)}button{border:0;border-radius:14px;padding:12px 17px;font-weight:900;cursor:pointer}.primary{background:linear-gradient(135deg,var(--magic),var(--magic2));color:#fff;box-shadow:0 14px 32px #7451d642}.secondary{background:#eee7f5;color:var(--ink)}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.progress-card{margin-top:24px;display:flex;align-items:center;gap:16px;background:#f6f0ff;border-radius:20px;padding:18px}.spinner{width:32px;height:32px;border:4px solid #d6c7f3;border-top-color:var(--magic);border-radius:50%;animation:spin .8s linear infinite}.reader-toolbar form{display:flex;gap:8px;align-items:end}.reader-toolbar label{font-size:.8rem}.book{margin:28px auto;max-width:820px;min-height:420px;background:#fffefb;border:1px solid #eadfcf;border-radius:28px;padding:clamp(24px,6vw,64px);box-shadow:0 20px 50px #5b453417;font-family:Georgia,serif;font-size:calc(1.18rem * var(--reader-scale,1));line-height:1.85}.book h3{font-family:inherit;font-size:1.8em;margin-top:0}.vocab-word{text-decoration:underline dotted 2px;text-underline-offset:5px;border-radius:4px;cursor:pointer;background:transparent;padding:0;border:0;font-family:inherit;font-size:inherit;font-weight:inherit}.vocab-word:hover,.vocab-word:focus{background:#fff0b5}.reader-controls,.feedback-grid,.dialog-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.feedback{text-align:center;margin-top:32px}.feedback-grid button{background:#f3ecff}.empty{text-align:center;color:var(--muted)}dialog{max-width:min(520px,90vw);border:0;border-radius:28px;padding:32px;box-shadow:0 35px 100px #24153866}dialog::backdrop{background:#20153280;backdrop-filter:blur(6px)}.dialog-close{position:absolute;right:14px;top:12px;border-radius:50%;font-size:1.4rem}.dialog-actions button{background:#ece4fb}#toast{position:fixed;left:50%;bottom:24px;translate:-50% 30px;opacity:0;background:#2e2640;color:#fff;padding:13px 18px;border-radius:16px;transition:.2s;pointer-events:none}#toast.show{translate:-50% 0;opacity:1}body.reduced-motion *{animation:none!important;scroll-behavior:auto!important}body.high-contrast{--ink:#000;--muted:#222;--line:#000;background:#fff}body.high-contrast .panel,body.high-contrast .book{border:2px solid #000}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{50%{transform:translateY(-18px) rotate(2deg)}}@media(max-width:800px){.topbar nav{display:none}.hero{grid-template-columns:1fr}.story-orb{width:58vw}.section-heading,.reader-toolbar{align-items:start;flex-direction:column}.form-grid{grid-template-columns:1fr}.reader-toolbar form{display:grid;width:100%}}.setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}.setup-card{display:grid;align-content:start;gap:12px;padding:22px;border:1px solid var(--line);border-radius:22px;background:#fff}.setup-card.wide{grid-column:1/-1}.setup-card h3{margin:0;font-size:1.25rem}.setup-card label{display:grid;gap:7px;font-weight:800}.setup-card fieldset{border:1px solid var(--line);border-radius:16px;padding:14px}.status-line{min-height:1.5em;color:var(--muted);margin:0}.setup-card .form-grid{margin:0}@media(max-width:800px){.setup-grid{grid-template-columns:1fr}.setup-card.wide{grid-column:auto}}

/* Sprint 11 — Wonder Math Lab visual teaching */
.math-lab-shell{position:relative;isolation:isolate;overflow:hidden;min-height:90vh;border-radius:42px;padding:clamp(22px,4vw,52px);background:radial-gradient(circle at 8% 0%,#6b4cf04d,transparent 34%),radial-gradient(circle at 100% 30%,#39d4ff38,transparent 30%),linear-gradient(145deg,#16132b 0%,#201744 48%,#101d38 100%);color:#f9f7ff;box-shadow:0 40px 120px #2113454d}.math-lab-aurora{position:absolute;inset:-35%;z-index:-1;background:conic-gradient(from 40deg,#9f7aea33,#42d9ff22,#ff8fc822,#9f7aea33);filter:blur(80px);animation:aurora-turn 24s linear infinite}.math-lab-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:28px}.math-lab-heading h2{margin:.08em 0;color:#fff;text-shadow:0 4px 30px #8d74ff44}.math-lab-heading>div:first-child>p:last-child{max-width:720px;color:#d8d2ee;line-height:1.65}.math-lab-status{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;min-width:230px;padding:14px 18px;border:1px solid #ffffff26;border-radius:20px;background:#ffffff0d;backdrop-filter:blur(18px)}.math-lab-status small{grid-column:2;color:#b9b2d0}.status-pulse{grid-row:1/3;width:12px;height:12px;border-radius:50%;background:#7af0c3;box-shadow:0 0 0 8px #7af0c31a,0 0 22px #7af0c3}.math-lab-layout{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:22px}.glass-card{border:1px solid #ffffff28;background:linear-gradient(150deg,#ffffff18,#ffffff08);backdrop-filter:blur(24px);box-shadow:inset 0 1px #ffffff2e,0 24px 70px #05081752}.cog-console{padding:20px;border-radius:30px;align-self:start}.professor-stage{position:relative;display:grid;place-items:center;height:230px;overflow:hidden;border-radius:24px;background:radial-gradient(circle at 50% 50%,#6f5ce352,transparent 42%),linear-gradient(#11182b99,#20153b99)}.cog-halo{position:absolute;border:1px solid #9aeaff55;border-radius:50%;animation:halo-pulse 4s ease-in-out infinite}.halo-one{width:158px;height:158px}.halo-two{width:205px;height:205px;animation-delay:-2s}.professor-cog{position:relative;width:112px;filter:drop-shadow(0 20px 25px #05061699);animation:cog-float 4s ease-in-out infinite}.cog-antenna{width:5px;height:24px;margin:auto;background:linear-gradient(#8cf4ff,#8b77ff);border-radius:8px;position:relative}.cog-antenna:before{content:"";position:absolute;width:13px;height:13px;left:-4px;top:-7px;border-radius:50%;background:#ff8fd1;box-shadow:0 0 20px #ff8fd1}.cog-face{position:relative;height:72px;border:2px solid #c6f7ff80;border-radius:38px 38px 30px 30px;background:linear-gradient(145deg,#dffcff,#7d78e8 75%);box-shadow:inset 0 8px 18px #ffffff88}.cog-eye{position:absolute;top:25px;width:11px;height:14px;border-radius:50%;background:#251d50;box-shadow:0 0 8px #fff}.cog-eye:first-child{left:28px}.cog-eye:nth-child(2){right:28px}.cog-smile{position:absolute;left:43px;top:44px;width:25px;height:12px;border-bottom:3px solid #362a67;border-radius:50%}.cog-body{display:grid;place-items:center;width:82px;height:64px;margin:-5px auto 0;border-radius:18px 18px 30px 30px;background:linear-gradient(145deg,#8268e8,#4b3a9b);font:900 1.5rem Georgia;color:#dffcff;border:1px solid #ffffff55}.floating-symbol{position:absolute;font:900 1.2rem Georgia;color:#b8f5ff;text-shadow:0 0 16px #58dfff;animation:symbol-drift 5s ease-in-out infinite}.symbol-one{left:15%;top:24%}.symbol-two{right:14%;top:20%;animation-delay:-2s}.symbol-three{right:18%;bottom:18%;animation-delay:-3.4s}.cog-message{position:relative;margin-top:-18px;padding:19px 17px 15px;border-radius:18px;background:#fff;color:#2d2850;box-shadow:0 16px 38px #04061655}.cog-message:before{content:"";position:absolute;top:-10px;left:50%;width:20px;height:20px;transform:translateX(-50%) rotate(45deg);background:#fff}.message-name{position:relative;color:#7451d6;font-weight:950;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.cog-message p{position:relative;margin:7px 0 0;line-height:1.45}.math-lesson-form{display:grid;gap:11px;margin-top:17px}.math-lesson-form label,.math-lesson-open label{display:grid;gap:5px;color:#d7d1ed;font-size:.77rem;font-weight:900}.math-lesson-form input,.math-lesson-form select,.math-lesson-open input{border-color:#ffffff24;background:#0e122a99;color:#fff}.math-form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.math-lesson-open{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid #ffffff20}.visual-workshop{min-width:0;padding:20px;border-radius:30px}.workshop-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;min-height:70px}.workshop-toolbar h3{margin:.1em 0;font-size:clamp(1.3rem,2.5vw,2rem);color:#fff}.workshop-kicker{margin:0;color:#7eeeff;text-transform:uppercase;font-size:.7rem;font-weight:950;letter-spacing:.14em}.track-switcher{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.track-chip{padding:8px 11px;border:1px solid #ffffff2e;border-radius:999px;background:#ffffff0e;color:#e9e5ff;font-size:.75rem}.track-chip[aria-pressed="true"]{background:linear-gradient(135deg,#7b61ff,#3bd6e8);color:#fff;box-shadow:0 8px 24px #5b6cf04d}.whiteboard-frame{position:relative;overflow:hidden;aspect-ratio:16/10;min-height:390px;margin-top:14px;border:1px solid #ffffff44;border-radius:27px;background:linear-gradient(150deg,#fcfeff,#eef5ff 62%,#f8efff);box-shadow:inset 0 1px #fff,0 25px 65px #05061573}.whiteboard-frame:before{content:"";position:absolute;inset:10px;border:1px solid #7451d61f;border-radius:20px;pointer-events:none}.whiteboard-grid{position:absolute;inset:0;background-image:linear-gradient(#7561bf0b 1px,transparent 1px),linear-gradient(90deg,#7561bf0b 1px,transparent 1px);background-size:31px 31px;mask-image:linear-gradient(to bottom,#000,transparent 93%)}.math-whiteboard{position:absolute;inset:0;width:100%;height:100%}.whiteboard-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;color:#5b5277;padding:30px}.whiteboard-empty span{font-size:3.2rem;color:#7961d6;filter:drop-shadow(0 0 18px #a893ff)}.whiteboard-empty strong{font-size:1.35rem;color:#302943}.whiteboard-empty p{max-width:520px;line-height:1.55}.scene-copy{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 7px 8px;color:#d8d2ed}.scene-copy p{margin:0;line-height:1.5}.scene-copy span{white-space:nowrap;font-size:.78rem;color:#99edff}.math-controls{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px}.math-controls button:not(.secondary){background:#ffffff18;color:#fff;border:1px solid #ffffff28}.math-controls button:hover{transform:translateY(-1px)}.math-accessibility-note{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 14px;border-radius:16px;background:#08112459;color:#b9c9e5;font-size:.79rem}.math-accessibility-note span{font-size:1.4rem;color:#75e8ff}.math-accessibility-note p{margin:0}.math-svg-title{font-family:Nunito,system-ui,sans-serif;font-weight:950;fill:#302943}.math-svg-label{font-family:Nunito,system-ui,sans-serif;font-weight:800;fill:#514768}.math-svg-equation{font-family:Georgia,serif;font-weight:900;fill:#2f2850}.math-node-primary{--node:#7451d6;--node2:#9b83ef}.math-node-secondary{--node:#2dbdcc;--node2:#7ce6ea}.math-node-accent{--node:#ef72b8;--node2:#ffbddf}.math-node-success{--node:#2eac78;--node2:#85e4bd}.math-counter{fill:var(--node,#7451d6);stroke:#fff;stroke-width:3;filter:url(#softShadow);transition:transform .2s}.math-counter:hover{transform:scale(1.08);transform-box:fill-box;transform-origin:center}.scene-enter{animation:scene-enter .45s cubic-bezier(.2,.8,.2,1)}body.reduced-motion .scene-enter{animation:none}.math-lab-shell button:focus-visible,.math-lab-shell input:focus-visible,.math-lab-shell select:focus-visible{outline-color:#79efff}.math-lab-shell .secondary{background:#ffffff12;color:#f4f0ff;border:1px solid #ffffff2a}@keyframes cog-float{50%{transform:translateY(-9px) rotate(1deg)}}@keyframes halo-pulse{50%{transform:scale(1.08);opacity:.45}}@keyframes symbol-drift{50%{transform:translateY(-13px) rotate(8deg)}}@keyframes aurora-turn{to{transform:rotate(360deg)}}@keyframes scene-enter{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}@media(max-width:980px){.math-lab-layout{grid-template-columns:1fr}.cog-console{display:grid;grid-template-columns:230px 1fr;gap:18px}.professor-stage{grid-row:1/4}.cog-message{margin:0}.math-lesson-form{margin:0}.math-lesson-open{grid-column:2}}@media(max-width:700px){.math-lab-shell{border-radius:25px;padding:16px}.math-lab-heading,.workshop-toolbar{align-items:flex-start;flex-direction:column}.math-lab-status{width:100%}.cog-console{display:block}.professor-stage{height:190px}.cog-message{margin-top:-16px}.math-lesson-form{margin-top:16px}.math-lesson-open{display:grid}.visual-workshop{padding:12px}.whiteboard-frame{min-height:330px;aspect-ratio:auto}.track-switcher{justify-content:flex-start}.scene-copy{align-items:flex-start;flex-direction:column}.math-form-actions{grid-template-columns:1fr}}
body.high-contrast .math-lab-shell{background:#000;color:#fff;border:3px solid #fff}body.high-contrast .glass-card{border:2px solid #fff;background:#000}body.high-contrast .whiteboard-frame{border:3px solid #000;background:#fff}body.high-contrast .track-chip{border:2px solid #fff}

/* Sprint 11.1 — Professor Character & Obsidian HoloSlate amendment */
:root{--holo-cyan:#6ff7ff;--holo-violet:#9f7cff;--holo-magenta:#ff8bda;--holo-gold:#ffd982;--obsidian:#050812;--obsidian-2:#0a1020;--obsidian-3:#11172a}
.math-lab-shell[data-render-tier="A"]{background:radial-gradient(circle at 8% 0%,#6b4cf02e,transparent 34%),radial-gradient(circle at 100% 30%,#39d4ff24,transparent 30%),linear-gradient(145deg,#0d1020 0%,#17122f 48%,#071426 100%)}
.professor-stage{height:280px;background:radial-gradient(circle at 50% 43%,#624fe652,transparent 34%),radial-gradient(circle at 50% 120%,#3de6ff24,transparent 44%),linear-gradient(160deg,#081123,#17102f 70%,#090d18);border:1px solid #ffffff18;box-shadow:inset 0 0 60px #5f4bd31f}
.halo-three{width:244px;height:244px;border-style:dashed;opacity:.36;animation-duration:9s}
.professor-cog-detailed{width:132px;transform-origin:50% 70%}
.professor-cog-detailed .cog-face{height:80px;border-radius:42px 42px 31px 31px;background:linear-gradient(145deg,#e9feff 0%,#8eefff 24%,#8b78ec 76%,#5945a7 100%);box-shadow:inset 0 10px 22px #ffffff9c,inset 0 -12px 20px #3a2b8e52,0 0 38px #77eaff38}
.cog-brow{position:absolute;top:19px;width:19px;height:4px;border-radius:999px;background:#30285e;transition:transform .28s ease}.brow-left{left:24px;transform:rotate(6deg)}.brow-right{right:24px;transform:rotate(-6deg)}
.eye-left{left:30px!important}.eye-right{right:30px!important}.cog-eye{top:31px!important;width:12px!important;height:15px!important;animation:cog-blink 5.6s infinite}
.cog-monocle{position:absolute;right:19px;top:22px;width:31px;height:31px;border:2px solid #bdfbff;border-radius:50%;box-shadow:0 0 16px #7ef4ff,inset 0 0 12px #7ef4ff55}.cog-monocle:after{content:"";position:absolute;width:18px;height:2px;background:#bdfbff;right:-14px;bottom:0;transform:rotate(52deg);transform-origin:left}
.cog-mouth{position:absolute;left:50%;top:55px;width:28px;height:11px;transform:translateX(-50%);border:3px solid #332b66;border-top:0;border-radius:0 0 20px 20px;background:#ffffff22;transform-origin:center top}
.professor-cog.is-speaking .cog-mouth,.professor-bubble.is-speaking .bubble-mouth{animation:cog-talk .22s ease-in-out infinite alternate}
.cog-body{position:relative;width:92px;height:70px;border-radius:20px 20px 34px 34px;background:linear-gradient(145deg,#9378f8,#4a358f 66%,#2d2269);box-shadow:inset 0 8px 16px #ffffff33,0 12px 34px #02040f99;overflow:visible}
.cog-core{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle,#eaffff 0 12%,#63f0ff 14% 22%,#7359e5 24% 55%,#251c61 58%);box-shadow:0 0 22px #61f1ff,0 0 42px #7b62ff;z-index:2}
.cog-core-ring{position:absolute;inset:10px;border:1px solid #dffcff77;border-radius:50%;animation:core-spin 8s linear infinite}
.cog-arm{position:absolute;top:92px;width:43px;height:12px;border-radius:999px;background:linear-gradient(90deg,#4f3998,#99f4ff);transform-origin:8px 50%;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.arm-left{left:-24px;transform:rotate(25deg)}.arm-right{right:-24px;transform:rotate(155deg);transform-origin:35px 50%}.cog-hand{position:absolute;right:-8px;top:-5px;width:18px;height:20px;border-radius:50% 50% 45% 45%;background:#c6fbff;box-shadow:0 0 12px #7cefff}.arm-right .cog-hand{left:-8px;right:auto}
.professor-stage[data-gesture="greet"] .arm-right{transform:rotate(210deg)}
.professor-stage[data-gesture="point"] .arm-right{transform:rotate(178deg) translateX(14px)}
.professor-stage[data-gesture="group"] .arm-left{transform:rotate(-5deg) translateX(10px)}.professor-stage[data-gesture="group"] .arm-right{transform:rotate(185deg) translateX(10px)}
.professor-stage[data-gesture="measure"] .arm-left{transform:rotate(4deg) scaleX(1.18)}.professor-stage[data-gesture="measure"] .arm-right{transform:rotate(176deg) scaleX(1.18)}
.professor-stage[data-gesture="pause"] .arm-left{transform:rotate(75deg)}.professor-stage[data-gesture="pause"] .arm-right{transform:rotate(105deg)}
.professor-stage[data-professor-state="hinting"] .cog-brow{transform:rotate(0deg) translateY(-2px)}
.professor-stage[data-professor-state="celebrate"] .professor-cog{animation:cog-celebrate .7s cubic-bezier(.2,.8,.2,1)}
.professor-object-dock{position:absolute;right:-50px;top:82px;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:1px solid #c9fbff99;background:radial-gradient(circle,#ffffff55,#61eaff22 42%,#6145cc33);box-shadow:0 0 22px #67eaff88,inset 0 0 20px #fff3;transition:all .45s ease;animation:object-hover 3.2s ease-in-out infinite}
.professor-object-symbol{font-size:1.35rem;color:#eaffff;text-shadow:0 0 14px #82f6ff}
.professor-object-dock[data-object="fraction-splitter"]{border-radius:16px;transform:rotate(45deg)}.professor-object-dock[data-object="fraction-splitter"] .professor-object-symbol{transform:rotate(-45deg)}
.professor-object-dock[data-object="time-dial"]{box-shadow:0 0 24px #ffd981aa,inset 0 0 18px #ffcb5a55}
.object-caption{position:absolute;left:14px;right:14px;bottom:12px;display:flex;justify-content:space-between;align-items:end;gap:8px;color:#c9f9ff;font-size:.68rem;letter-spacing:.03em}.object-caption small{color:#aaa4c3;text-align:right}
.premium-dialogue{overflow:hidden;border:1px solid #abf7ff66!important;background:linear-gradient(145deg,#10192be8,#151230dd 64%,#241545dc)!important;color:#f9fbff!important;backdrop-filter:blur(26px) saturate(135%);box-shadow:inset 0 1px #ffffff44,inset 0 0 28px #6cecff14,0 18px 50px #02040cb8,0 0 28px #6df3ff17!important}
.premium-dialogue:before{display:none}.premium-dialogue:after{content:"";position:absolute;inset:1px;border-radius:17px;background:linear-gradient(110deg,transparent 20%,#ffffff28 48%,transparent 72%);transform:translateX(-120%);animation:dialogue-sheen 8s ease-in-out infinite;pointer-events:none}
.dialogue-orbit{position:absolute;inset:-1px;border-radius:18px;pointer-events:none}.orbit-a{background:conic-gradient(from 0deg,transparent 0 72%,#7cf4ff 78%,transparent 84%);animation:dialogue-orbit 6.5s linear infinite;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);padding:1px;mask-composite:exclude}.orbit-b{inset:4px;background:conic-gradient(from 180deg,transparent 0 78%,#ff8bd7 83%,transparent 88%);animation:dialogue-orbit 10s linear reverse infinite;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);padding:1px;mask-composite:exclude}
.dialogue-header{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px}.premium-dialogue .message-name{color:#83f4ff}.dialogue-state{padding:4px 8px;border:1px solid #ffffff2b;border-radius:999px;background:#ffffff0c;color:#d9d4f2;font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.premium-dialogue p{font-size:.98rem}.dialogue-actions{position:relative;display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:9px;border-top:1px solid #ffffff1d;color:#aaa6c0;font-size:.67rem}.dialogue-mini-action{padding:5px 8px!important;border:1px solid #ffffff22!important;background:#ffffff0a!important;color:#c6fbff!important;font-size:.68rem!important}
.workshop-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.fullscreen-control{white-space:nowrap;padding:9px 12px;border:1px solid #7defff55;background:linear-gradient(135deg,#14233b,#1a1740);color:#dffcff;box-shadow:inset 0 1px #ffffff22,0 0 18px #5eecff16}.fullscreen-control[aria-pressed="true"]{background:linear-gradient(135deg,#2d2570,#0e5360)}
.obsidian-holoslate{isolation:isolate;background:radial-gradient(circle at 50% 48%,#132848 0%,#0a1427 28%,#050911 66%,#02040a 100%)!important;border-color:#7eeeff45!important;box-shadow:inset 0 1px #ffffff24,inset 0 0 80px #39e2ff0c,0 24px 80px #000c,0 0 34px #6cecff12!important}
.obsidian-holoslate:before{border-color:#79efff20!important;box-shadow:inset 0 0 32px #6aefff0a}.obsidian-holoslate:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 100%,#7358ff19,transparent 48%),linear-gradient(90deg,#4aeeff09 1px,transparent 1px);background-size:auto,80px 100%;pointer-events:none}
.obsidian-holoslate .whiteboard-grid{background-image:linear-gradient(#78efff0d 1px,transparent 1px),linear-gradient(90deg,#78efff0d 1px,transparent 1px);background-size:31px 31px;opacity:.65}.holoslate-scan{position:absolute;inset:0;z-index:1;background:linear-gradient(to bottom,transparent 0 46%,#7af3ff13 49%,#7af3ff24 50%,#7af3ff13 51%,transparent 54%);animation:holoslate-scan 8s linear infinite;pointer-events:none}.math-whiteboard{z-index:5;filter:drop-shadow(0 0 14px #69eaff22)}
.holo-emitter{position:absolute;top:13%;bottom:13%;z-index:4;width:28px;display:grid;place-items:center;pointer-events:none}.emitter-left{left:10px}.emitter-right{right:10px}.emitter-core{width:11px;height:52%;min-height:80px;border-radius:999px;background:linear-gradient(#8ff8ff,#7259dc 52%,#ff8bda);box-shadow:0 0 12px #78f5ff,0 0 28px #7358ff66}.emitter-ring{position:absolute;width:36px;height:36px;border:1px solid #a9faff88;border-radius:50%;animation:emitter-ring 4s linear infinite}.emitter-left .emitter-ring{top:18%}.emitter-right .emitter-ring{bottom:18%;animation-direction:reverse}.projection-beam{position:absolute;top:49%;width:36vw;max-width:390px;height:42%;opacity:.15;background:linear-gradient(90deg,#73efff88,transparent);clip-path:polygon(0 42%,100% 0,100% 100%,0 58%);filter:blur(5px)}.emitter-left .projection-beam{left:12px}.emitter-right .projection-beam{right:12px;transform:scaleX(-1)}
.convergence-zone{position:absolute;left:50%;top:50%;z-index:2;width:200px;height:200px;transform:translate(-50%,-50%);pointer-events:none}.convergence-zone span{position:absolute;inset:0;border:1px solid #80f4ff2e;border-radius:50%;animation:convergence-pulse 5s ease-in-out infinite}.convergence-zone span:nth-child(2){inset:28px;border-color:#a886ff2b;animation-delay:-1.7s}.convergence-zone span:nth-child(3){inset:58px;border-color:#ff8bd72a;animation-delay:-3.2s}
.obsidian-holoslate .whiteboard-empty{color:#a7b4cc}.obsidian-holoslate .whiteboard-empty strong{color:#e8fbff}.obsidian-holoslate .whiteboard-empty span{color:#7df6ff;filter:drop-shadow(0 0 18px #63eaff)}
.obsidian-holoslate .math-svg-title{fill:#ecfeff;text-shadow:0 0 12px #7cefff}.obsidian-holoslate .math-svg-label{fill:#d8e7f5}.obsidian-holoslate .math-svg-equation{fill:#ffffff}.obsidian-holoslate .math-counter{stroke:#dffcff;filter:url(#holoGlow)}
.projection-left{animation:project-left .65s cubic-bezier(.18,.82,.2,1) both}.projection-right{animation:project-right .65s cubic-bezier(.18,.82,.2,1) both}.projection-center{animation:project-center .55s cubic-bezier(.18,.82,.2,1) both}.projection-left,.projection-right,.projection-center{animation-delay:var(--projection-delay,0ms)}
.professor-bubble{position:absolute;z-index:10;right:22px;bottom:22px;display:grid;grid-template-columns:64px 0fr;align-items:center;gap:0;width:66px;min-height:66px;padding:0;border:1px solid #8ff8ff88;border-radius:999px;background:linear-gradient(145deg,#0d1830e8,#24134ae8);box-shadow:inset 0 1px #ffffff55,0 14px 35px #000a,0 0 25px #65efff42;color:#fff;overflow:hidden;transition:width .45s cubic-bezier(.2,.8,.2,1),grid-template-columns .45s ease,box-shadow .3s}.professor-bubble:hover,.professor-bubble[aria-expanded="true"],.visual-workshop:fullscreen .professor-bubble{width:min(390px,calc(100% - 44px));grid-template-columns:64px 1fr}.bubble-aura{position:absolute;left:4px;width:56px;height:56px;border-radius:50%;background:conic-gradient(#6ff7ff,#9877ff,#ff8bd8,#6ff7ff);filter:blur(6px);opacity:.42;animation:dialogue-orbit 5s linear infinite}.bubble-cog{position:relative;display:block;width:54px;height:54px;margin-left:5px;border-radius:50%;background:linear-gradient(145deg,#ddfeff,#806ee2 70%);box-shadow:inset 0 4px 12px #fff8;z-index:2}.bubble-eye{position:absolute;top:20px;width:7px;height:9px;border-radius:50%;background:#281f59}.bubble-eye.left{left:15px}.bubble-eye.right{right:15px}.bubble-mouth{position:absolute;left:50%;top:34px;width:15px;height:6px;transform:translateX(-50%);border-bottom:2px solid #30255e;border-radius:50%;transform-origin:center}.bubble-arm{position:absolute;top:31px;width:17px;height:4px;border-radius:5px;background:#aff8ff}.bubble-arm.left{left:-8px;transform:rotate(25deg)}.bubble-arm.right{right:-8px;transform:rotate(-25deg)}.bubble-object{position:absolute;right:-8px;top:-7px;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#162047;border:1px solid #8cf8ff;box-shadow:0 0 10px #71efff;font-size:.72rem}.bubble-dialogue{min-width:0;opacity:0;transform:translateX(-10px);text-align:left;transition:opacity .25s .16s,transform .25s .16s;pointer-events:none}.professor-bubble:hover .bubble-dialogue,.professor-bubble[aria-expanded="true"] .bubble-dialogue,.visual-workshop:fullscreen .bubble-dialogue{opacity:1;transform:none}.bubble-dialogue strong{display:block;color:#80f5ff;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.bubble-dialogue span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:14px;color:#f1f4ff;font-size:.8rem}
.visual-workshop:fullscreen{box-sizing:border-box;width:100vw;height:100vh;max-width:none;border-radius:0!important;padding:24px 28px;background:radial-gradient(circle at 50% 0%,#302061,#080c18 46%,#03050a)!important;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto}.visual-workshop:fullscreen .whiteboard-frame{min-height:0;height:100%;aspect-ratio:auto;margin-top:8px}.visual-workshop:fullscreen .workshop-toolbar{min-height:auto}.visual-workshop:fullscreen .math-accessibility-note{margin-top:8px}.visual-workshop:fullscreen .professor-bubble{right:28px;bottom:28px}.visual-workshop.fullscreen-fallback{position:fixed;inset:0;z-index:9999;box-sizing:border-box;border-radius:0!important;background:#070b17!important;overflow:auto}.visual-workshop.fullscreen-fallback .whiteboard-frame{height:calc(100vh - 260px);aspect-ratio:auto}
body.math-fullscreen-fallback{overflow:hidden}
body.high-contrast .premium-dialogue,body.high-contrast .obsidian-holoslate{border-color:#fff!important}body.high-contrast .obsidian-holoslate .math-svg-label,body.high-contrast .obsidian-holoslate .math-svg-title,body.high-contrast .obsidian-holoslate .math-svg-equation{fill:#fff!important}
@keyframes cog-blink{0%,45%,48%,100%{transform:scaleY(1)}46%,47%{transform:scaleY(.08)}}@keyframes cog-talk{from{height:5px;transform:translateX(-50%) scaleX(.8)}to{height:15px;transform:translateX(-50%) scaleX(1.08)}}@keyframes core-spin{to{transform:rotate(360deg)}}@keyframes object-hover{50%{transform:translateY(-5px) rotate(3deg)}}@keyframes cog-celebrate{25%{transform:translateY(-14px) rotate(-5deg)}55%{transform:translateY(-8px) rotate(5deg)}100%{transform:none}}@keyframes dialogue-orbit{to{transform:rotate(360deg)}}@keyframes dialogue-sheen{0%,62%{transform:translateX(-120%)}78%,100%{transform:translateX(120%)}}@keyframes holoslate-scan{from{transform:translateY(-55%)}to{transform:translateY(55%)}}@keyframes emitter-ring{to{transform:rotate(360deg) scale(1.12)}}@keyframes convergence-pulse{50%{transform:scale(1.12);opacity:.34}}@keyframes project-left{from{opacity:0;transform:translateX(-90px) scale(.72);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}@keyframes project-right{from{opacity:0;transform:translateX(90px) scale(.72);filter:blur(10px)}to{opacity:1;transform:none;filter:none}}@keyframes project-center{from{opacity:0;transform:scale(.55);filter:blur(12px)}to{opacity:1;transform:none;filter:none}}
body.reduced-motion .holoslate-scan,body.reduced-motion .dialogue-orbit,body.reduced-motion .convergence-zone span,body.reduced-motion .emitter-ring,body.reduced-motion .professor-object-dock,body.reduced-motion .cog-core-ring,body.reduced-motion .premium-dialogue:after{animation:none!important}body.reduced-motion .projection-left,body.reduced-motion .projection-right,body.reduced-motion .projection-center{animation:fade-only .2s ease both!important}@keyframes fade-only{from{opacity:0}to{opacity:1}}
@media(max-width:980px){.professor-stage{height:250px}.workshop-actions{width:100%;justify-content:space-between}.visual-workshop:fullscreen{padding:16px}.visual-workshop:fullscreen .scene-copy{display:none}}
@media(max-width:700px){.professor-bubble{right:12px;bottom:12px}.professor-bubble:hover,.professor-bubble[aria-expanded="true"],.visual-workshop:fullscreen .professor-bubble{width:calc(100% - 24px)}.holo-emitter{width:18px}.projection-beam{width:46vw}.fullscreen-control{width:100%}.workshop-actions{align-items:stretch;flex-direction:column}.visual-workshop:fullscreen{padding:10px}.visual-workshop:fullscreen .workshop-toolbar h3{font-size:1.05rem}.visual-workshop:fullscreen .math-controls{position:sticky;bottom:0;padding:8px;background:#080d19e8;backdrop-filter:blur(16px);border-radius:14px}.object-caption{font-size:.6rem}}
.whiteboard-empty[hidden]{display:none!important}

/* Sprint 12 — Wonder World family-facing shell */
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.form-note{grid-column:1/-1;margin:0;padding:11px 14px;border-radius:14px;background:#f6f0ff;color:var(--muted)}.active-profile{grid-column:1/-1;padding:16px 18px;border:1px solid #ddcff4;border-radius:18px;background:linear-gradient(135deg,#f8f3ff,#fff5fa);font-weight:900;color:#5b3eb1}.story-code{max-width:360px;padding:11px 14px;border:1px solid var(--line);border-radius:16px;background:#fff}.story-code summary,.math-live-connect summary{cursor:pointer;font-weight:900}.story-code form{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;margin-top:12px}.story-code label{grid-column:1}.story-library{margin:24px 0 8px}.story-library h3{margin:0 0 12px}.story-library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.story-library-card{display:grid;gap:5px;min-height:96px;text-align:left;border:1px solid var(--line);background:linear-gradient(145deg,#fff,#f8f2ff);box-shadow:0 12px 30px #4d376510}.story-library-card span,.library-empty{color:var(--muted)}.library-empty{padding:16px;border:1px dashed var(--line);border-radius:16px;text-align:center}.math-demo-launch{width:100%;margin-top:18px}.math-live-connect{margin-top:12px;padding:12px;border:1px solid #ffffff24;border-radius:15px;color:#d9d4f2}.math-live-connect[open] summary{margin-bottom:12px}.math-live-connect .math-lesson-form{margin-top:0}@media(max-width:700px){.hero-actions>*{width:100%}.story-code{max-width:none;width:100%}.story-code form{grid-template-columns:1fr}.story-library-grid{grid-template-columns:1fr}}

/* Sprint 13 — parent-approved learning plans */
.parent-plan-shell{position:relative;overflow:hidden}.parent-plan-shell::before{content:"";position:absolute;inset:0 auto auto 58%;width:34rem;height:34rem;border-radius:50%;background:radial-gradient(circle,rgba(133,91,255,.11),transparent 68%);pointer-events:none}.parent-plan-layout{position:relative;display:grid;grid-template-columns:minmax(19rem,.82fr) minmax(22rem,1.18fr);gap:1.4rem;align-items:start;margin-top:1rem}.plan-builder-card,.plan-summary-card,.plan-review-card{border:1px solid var(--line);border-radius:1.45rem;background:rgba(255,255,255,.88);box-shadow:0 20px 54px rgba(63,38,91,.08)}.plan-builder-card{padding:1.35rem;display:grid;gap:1rem}.plan-builder-card h3{margin:0}.goal-picker,.support-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:1rem;border:1px solid var(--line);border-radius:1rem}.goal-picker legend,.support-picker legend{font-weight:800;padding:0 .35rem}.goal-picker .choice,.support-picker .choice{margin:0;padding:.65rem .7rem;border-radius:.75rem;background:#f8f3ff}.label-help{font-size:.78rem;font-weight:500;color:var(--muted)}textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:13px;background:#fff;color:var(--ink);font:inherit}.plan-review-column{display:grid;gap:1rem}.plan-summary-card,.plan-review-card{padding:1.35rem}.plan-summary-card h3,.plan-review-card h3{margin:.15rem 0}.plan-summary-card.is-active{border-color:rgba(50,147,112,.34);background:linear-gradient(145deg,rgba(240,255,249,.96),rgba(255,255,255,.92))}.approved-plan-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.plan-review-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}.plan-status-badge{padding:.35rem .7rem;border-radius:999px;background:#fff0c8;color:#75520a;font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.plan-weeks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin:1rem 0}.plan-week{padding:1rem;border-radius:1rem;background:#f8f3ff;border:1px solid var(--line)}.plan-week h4{margin:0 0 .25rem}.plan-week>small{color:var(--muted)}.plan-week ul{padding-left:1.15rem;margin:.7rem 0 0}.plan-week li+li{margin-top:.35rem}.plan-guardrail{border-left:4px solid var(--magic);padding:.8rem 1rem;background:rgba(133,91,255,.07);border-radius:0 .85rem .85rem 0}.plan-guardrail p{margin:.25rem 0 0}.plan-actions{display:flex;gap:.65rem;flex-wrap:wrap;margin:1rem 0}.revision-panel{border-top:1px solid var(--line);padding-top:.9rem}.revision-panel summary{font-weight:800;cursor:pointer}.revision-panel form{display:grid;gap:.7rem;margin-top:.8rem}.revision-panel textarea{min-height:6rem;resize:vertical}.plan-experience-note{grid-column:1/-1;padding:.85rem 1rem;border-radius:.9rem;background:linear-gradient(135deg,rgba(55,172,131,.1),rgba(133,91,255,.08));border:1px solid rgba(55,172,131,.24);color:var(--ink)}
@media(max-width:900px){.parent-plan-layout{grid-template-columns:1fr}.plan-weeks{grid-template-columns:1fr}}@media(max-width:600px){.goal-picker,.support-picker{grid-template-columns:1fr}.plan-builder-card,.plan-summary-card,.plan-review-card{padding:1rem}}

/* Final non-3D product surfaces */
.final-shell{position:relative}.final-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.final-card{display:grid;align-content:start;gap:.85rem;padding:1.25rem;border:1px solid var(--line);border-radius:1.35rem;background:rgba(255,255,255,.92);box-shadow:0 18px 48px rgba(63,38,91,.08)}.final-card h3,.final-card h4{margin:0}.gentle-state{padding:1rem 1.1rem;border:1px dashed var(--line);border-radius:1rem;background:#fbf8ff;color:var(--muted)}.mission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-top:1rem}.mission-card{display:grid;align-content:start;gap:.7rem;padding:1.2rem;border:1px solid var(--line);border-radius:1.25rem;background:linear-gradient(145deg,#fff,#f7f3ff);transition:opacity .2s,border-color .2s}.mission-card h3,.mission-card p{margin:0}.mission-card small{color:var(--muted)}.mission-card.is-complete{border-color:#6bc49a;background:#f1fff8}.mission-card.is-skipped{opacity:.65}.mission-kind{justify-self:start;padding:.3rem .55rem;border-radius:999px;background:#eee5ff;color:#5738a8;font-size:.72rem;font-weight:850;text-transform:capitalize}.inline-actions{display:flex;flex-wrap:wrap;gap:.55rem}.inline-actions .quiet,.quiet{padding:.55rem .75rem;border:1px solid var(--line);background:#fff;color:var(--muted);box-shadow:none}.danger{background:#8e2940!important}.stack-list{display:grid;gap:.7rem}.stack-item{display:grid;gap:.45rem;padding:.9rem;border:1px solid var(--line);border-radius:1rem;background:#faf8ff}.stack-item p{margin:0;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.metric-grid>div{display:grid;padding:.75rem;border-radius:.85rem;background:#f6f0ff}.metric-grid strong{font-size:1.45rem;color:#5636aa}.metric-grid span{font-size:.78rem;color:var(--muted)}.boundary-notice{padding:.8rem;border-left:4px solid #5eaf8c;background:#effcf6}.worksheet-preview{margin-top:.8rem;padding:1rem;border:1px solid #bbb;background:#fff;color:#111}.worksheet-preview li{margin:.75rem 0}.library-search{width:min(100%,28rem);margin-bottom:1rem}.final-card fieldset{display:grid;gap:.45rem}.empty{color:var(--muted)}
@media(max-width:780px){.final-grid{grid-template-columns:1fr}.mission-grid{grid-template-columns:1fr}.topbar nav{overflow-x:auto;max-width:100%;padding-bottom:.25rem}}
@media print{body>*{display:none!important}body:has(.worksheet-preview) main,body:has(.worksheet-preview) #parent-hub,body:has(.worksheet-preview) .worksheet-preview{display:block!important}.worksheet-preview{position:fixed;inset:0;border:0;margin:0;padding:20mm;font-size:14pt}.worksheet-preview button{display:none!important}}
