:root{--ink: #1e1b3a;--ink-soft: #4b4576;--ink-faint: #8b86ad;--paper: #ffffff;--paper-2: #f6f4ff;--paper-3: #ece8ff;--brand: #6d28d9;--brand-2: #8b5cf6;--brand-3: #c4b5fd;--good: #16a34a;--good-soft: #dcfce7;--warn: #f59e0b;--warn-soft: #fef3c7;--bad: #e11d48;--bad-soft: #ffe4e6;--info: #0284c7;--info-soft: #e0f2fe;--maths: #f97316;--english: #0ea5e9;--science: #22c55e;--geography: #14b8a6;--typing: #a855f7;--coding: #ef4444;--finance: #047857;--r-sm: 10px;--r-md: 16px;--r-lg: 24px;--r-xl: 34px;--r-full: 999px;--shadow-sm: 0 2px 0 rgba(30, 27, 58, .12);--shadow-md: 0 6px 0 rgba(30, 27, 58, .14), 0 10px 24px -12px rgba(30, 27, 58, .5);--shadow-lg: 0 12px 0 rgba(30, 27, 58, .12), 0 26px 50px -20px rgba(30, 27, 58, .55);--font: "Baloo 2", "Comic Sans MS", "Trebuchet MS", "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--font-num: "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;--tap: 56px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper-2);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}body{-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}button{font-family:inherit}h1,h2,h3,h4{margin:0;line-height:1.15;font-weight:800}p{margin:0;line-height:1.5}:focus-visible{outline:4px solid var(--brand-2);outline-offset:3px;border-radius:8px}.app{min-height:100%;display:flex;flex-direction:column;background:radial-gradient(1200px 600px at 10% -10%,#ede9fe 0%,transparent 60%),radial-gradient(1000px 500px at 100% 0%,#fce7f3 0%,transparent 55%),var(--paper-2)}.shell{width:min(1180px,100%);margin:0 auto;padding:0 20px 64px;flex:1}.stack{display:flex;flex-direction:column}.row{display:flex;align-items:center}.wrap{flex-wrap:wrap}.center{justify-content:center}.between{justify-content:space-between}.gap-1{gap:6px}.gap-2{gap:12px}.gap-3{gap:18px}.gap-4{gap:28px}.grow{flex:1}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.tiny{font-size:13px}.small{font-size:15px}.big{font-size:22px}.tabnum{font-variant-numeric:tabular-nums;font-family:var(--font-num)}.hidden{display:none!important}.topbar{position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd1;border-bottom:3px solid rgba(109,40,217,.1)}.topbar-inner{width:min(1180px,100%);margin:0 auto;padding:10px 20px;display:flex;align-items:center;gap:14px}@media (max-width: 480px){.topbar-inner{padding:8px 10px;gap:5px}.topbar-inner .icon-btn{width:42px;height:42px;font-size:1.05rem}.topbar-inner .who{padding:3px 6px}}.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:20px;color:var(--brand);background:none;border:0;cursor:pointer;padding:6px 8px;border-radius:var(--r-md)}.brand:hover{background:var(--paper-3)}.brand .logo{font-size:28px}.btn{--btn-bg: var(--brand);--btn-ink: #fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;cursor:pointer;font-weight:800;font-size:18px;padding:14px 26px;min-height:var(--tap);border-radius:var(--r-full);background:var(--btn-bg);color:var(--btn-ink);box-shadow:0 5px #00000038;transition:transform 90ms ease,box-shadow 90ms ease,filter .12s ease;display:inline-flex;align-items:center;justify-content:center;gap:10px;line-height:1}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #00000038}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:0 5px #0000001f}.btn.lg{font-size:22px;padding:18px 36px;min-height:66px}.btn.sm{font-size:15px;padding:9px 16px;min-height:42px;box-shadow:0 3px #0003}.btn.wide{width:100%}.btn.ghost{--btn-bg: transparent;--btn-ink: var(--brand);box-shadow:none;border:3px solid var(--brand-3)}.btn.ghost:active:not(:disabled){transform:translateY(2px);box-shadow:none}.btn.soft{--btn-bg: var(--paper-3);--btn-ink: var(--brand);box-shadow:0 4px #d5ccf7}.btn.good{--btn-bg: var(--good)}.btn.warn{--btn-bg: var(--warn);--btn-ink: #422006}.btn.bad{--btn-bg: var(--bad)}.btn.dark{--btn-bg: var(--ink)}.icon-btn{width:48px;height:48px;border-radius:var(--r-full);border:0;background:var(--paper-3);color:var(--brand);font-size:21px;cursor:pointer;display:grid;place-items:center;box-shadow:0 3px #d5ccf7;transition:transform 90ms ease,background .12s;flex:none}.icon-btn:hover{background:var(--brand-3)}.icon-btn:active{transform:translateY(3px);box-shadow:none}.icon-btn.on{background:var(--brand);color:#fff;box-shadow:0 3px #4c1d95}.card{background:var(--paper);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-md);border:3px solid rgba(109,40,217,.08)}.panel{background:var(--paper);border-radius:var(--r-lg);border:3px solid var(--paper-3);padding:18px}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--r-full);background:var(--paper-3);color:var(--brand);font-weight:800;font-size:14px;white-space:nowrap}.pill.good{background:var(--good-soft);color:#14532d}.pill.warn{background:var(--warn-soft);color:#78350f}.pill.bad{background:var(--bad-soft);color:#9f1239}.pill.info{background:var(--info-soft);color:#075985}.bar{height:16px;border-radius:var(--r-full);background:var(--paper-3);overflow:hidden;box-shadow:inset 0 2px 4px #1e1b3a1f}.bar>i{display:block;height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,var(--brand-2),var(--brand));transition:width .4s cubic-bezier(.2,.9,.3,1)}.bar.thin{height:10px}@keyframes pop-in{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.06);opacity:1}to{transform:scale(1)}}@keyframes rise-in{0%{transform:translateY(18px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-9px)}40%{transform:translate(9px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes pulse-ring{0%{box-shadow:0 0 #6d28d973}to{box-shadow:0 0 0 22px #6d28d900}}@keyframes spin{to{transform:rotate(360deg)}}.pop-in{animation:pop-in .32s cubic-bezier(.2,1.2,.3,1) both}.rise-in{animation:rise-in .32s ease both}.shake{animation:shake .42s ease}.bob{animation:bob 2.4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--brand-3);border-radius:99px;border:3px solid var(--paper-2)}::-webkit-scrollbar-thumb:hover{background:var(--brand-2)}.mascot{overflow:visible}.mascot .wing{transform-origin:center;transition:transform .3s ease}.mascot-cheer .wing-l{transform:rotate(-32deg) translateY(-8px)}.mascot-cheer .wing-r{transform:rotate(32deg) translateY(-8px)}.mascot-cheer .sparkles{animation:pop-in .5s ease both}.mascot-think .pupil{transform:translate(-3px,-2px)}.mascot.is-speaking .beak{animation:beak-talk .26s ease-in-out infinite alternate;transform-origin:60px 58px}.mascot-happy,.mascot-cheer{animation:bob 2.6s ease-in-out infinite}@keyframes beak-talk{0%{transform:scaleY(1)}to{transform:scaleY(1.5)}}.brand-text{display:none}@media (min-width: 620px){.brand-text{display:inline}}.who{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 6px;border-radius:var(--r-full);border:3px solid var(--pc, var(--brand-3));background:#fff;cursor:pointer;box-shadow:0 3px #1e1b3a1a}.who:hover{background:var(--paper-2)}.who-avatar{width:38px;height:38px;border-radius:var(--r-full);background:color-mix(in srgb,var(--pc, var(--brand)) 20%,white);display:grid;place-items:center;font-size:22px}.who-meta{display:none;flex-direction:column;align-items:flex-start;line-height:1.15}.who-meta b{font-size:15px}.who-meta .tiny{color:var(--ink-faint)}@media (min-width: 720px){.who-meta{display:flex}}.voice-note{width:min(1180px,100%);margin:12px auto 0;padding:10px 16px;display:flex;align-items:center;gap:10px;background:var(--warn-soft);color:#78350f;border-radius:var(--r-md);font-size:14px;font-weight:600}.voice-note .grow,.voice-note span:first-child{flex:1}.hero-title{font-size:clamp(30px,5vw,46px);color:var(--brand)}.hero-sub{font-size:19px;color:var(--ink-soft);margin-top:4px}.wave{display:inline-block;animation:wave 2.2s ease-in-out infinite;transform-origin:70% 70%}@keyframes wave{0%,60%,to{transform:rotate(0)}20%{transform:rotate(18deg)}40%{transform:rotate(-10deg)}}.section-title{font-size:22px;margin:30px 0 14px;color:var(--ink-soft)}.profiles{display:flex;flex-direction:column;align-items:center;padding-top:44px}.profiles-hero{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:center;text-align:center;margin-bottom:34px}@media (min-width: 640px){.profiles-hero{text-align:left}}.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:20px;width:100%;max-width:780px}.profile-card{position:relative;background:#fff;border-radius:var(--r-lg);border:4px solid var(--pc, var(--brand-3));box-shadow:var(--shadow-md);overflow:hidden}.profile-card.add{border-style:dashed;border-color:var(--brand-3);background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:28px 16px;min-height:178px;color:var(--brand)}.profile-card.add:hover{background:#fff}.profile-main{width:100%;border:0;background:none;cursor:pointer;padding:24px 16px 20px;display:flex;flex-direction:column;align-items:center;gap:4px}.profile-main:hover{background:var(--paper-2)}.profile-avatar{font-size:46px;width:82px;height:82px;border-radius:var(--r-full);background:color-mix(in srgb,var(--pc, var(--brand)) 18%,white);display:grid;place-items:center;margin-bottom:6px}.profile-name{font-size:19px}.profile-del{position:absolute;top:8px;right:8px;width:30px;height:30px;border-radius:50%;border:0;background:var(--paper-3);color:var(--ink-faint);cursor:pointer;font-size:13px;opacity:0;transition:opacity .15s}.profile-card:hover .profile-del{opacity:1}.profile-del:hover{background:var(--bad-soft);color:var(--bad)}.hub-hero{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#fff;border-radius:var(--r-xl);padding:22px 26px;margin-top:22px;box-shadow:var(--shadow-md);border:3px solid rgba(109,40,217,.08)}.hub-hero-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.hub-xp{display:flex;align-items:center;gap:12px;margin-top:12px;max-width:460px}.hub-xp .bar{flex:1}.continue-card{width:100%;margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;border:0;cursor:pointer;border-radius:var(--r-lg);background:linear-gradient(120deg,var(--brand),#9333ea);color:#fff;box-shadow:0 8px #4c1d95,0 20px 36px -18px #4c1d95e6;text-align:left;transition:transform .1s ease,box-shadow .1s ease}.continue-card:active{transform:translateY(5px);box-shadow:0 3px #4c1d95}.continue-left{display:flex;align-items:center;gap:16px}.continue-left>div{display:flex;flex-direction:column;gap:2px}.continue-left .tiny:first-child{opacity:.75;letter-spacing:.09em;font-weight:800}.continue-left b{font-size:22px}.continue-left .muted{color:#fffc!important}.continue-emoji{font-size:44px}.continue-go{width:52px;height:52px;flex:none;border-radius:50%;background:#fff3;display:grid;place-items:center;font-size:20px;animation:pulse-ring 2.4s ease-out infinite}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}.subject-card{text-align:left;border:0;cursor:pointer;background:#fff;border-radius:var(--r-lg);padding:20px;display:flex;flex-direction:column;gap:6px;border-bottom:7px solid var(--sc);box-shadow:var(--shadow-md);transition:transform .12s ease}.subject-card:hover{transform:translateY(-4px)}.subject-card.planned{opacity:.72;background:repeating-linear-gradient(135deg,#fff,#fff 12px,#faf8ff 12px,#faf8ff 24px)}.subject-top{display:flex;align-items:center;justify-content:space-between}.subject-emoji{font-size:42px}.subject-title{font-size:21px}.subject-foot{margin-top:8px;color:var(--ink-faint)}.hub-note{margin-top:24px;text-align:center}.path-head{display:flex;align-items:center;gap:16px;padding:24px 0 18px;border-bottom:4px solid color-mix(in srgb,var(--sc) 25%,white);margin-bottom:22px}.path-emoji{font-size:46px}.path-title{font-size:clamp(25px,4vw,34px)}.level{background:#fff;border-radius:var(--r-lg);border:3px solid color-mix(in srgb,var(--lc) 22%,white);margin-bottom:18px;overflow:hidden;box-shadow:var(--shadow-sm)}.level-head{width:100%;border:0;cursor:pointer;background:color-mix(in srgb,var(--lc) 9%,white);display:flex;align-items:center;gap:16px;padding:18px 20px;text-align:left}.level-head:hover{background:color-mix(in srgb,var(--lc) 15%,white)}.level-emoji{font-size:34px}.level-title{font-size:20px;color:var(--lc)}.level-progress{display:flex;align-items:center;gap:10px;margin-top:8px;max-width:420px}.level-progress .bar{flex:1}.level-chev{font-size:22px;color:var(--lc);transition:transform .2s}.level-chev.up{transform:rotate(180deg)}.trail{list-style:none;margin:0;padding:12px 18px 26px;position:relative}.trail-node{position:relative;padding:10px 0 10px 38px}.trail-line{position:absolute;left:15px;top:0;bottom:0;width:5px;border-radius:3px;background:repeating-linear-gradient(to bottom,var(--lc) 0 10px,transparent 10px 18px);opacity:.35}.trail-node.done .trail-line{opacity:.9;background:var(--lc)}.trail-node:before{content:"";position:absolute;left:8px;top:30px;width:19px;height:19px;border-radius:50%;background:#fff;border:4px solid var(--lc);opacity:.5;z-index:1}.trail-node.done:before{background:var(--lc);opacity:1}.trail-node.started:before{opacity:.85}.topic-card{width:100%;border-radius:var(--r-md);border:3px solid var(--paper-3);background:#fff;overflow:hidden;transition:border-color .14s}.topic-card:hover{border-color:var(--lc)}.topic-main{width:100%;text-align:left;cursor:pointer;display:flex;align-items:center;gap:14px;padding:14px 16px;border:0;background:none}.topic-main:hover{background:color-mix(in srgb,var(--lc) 6%,white)}.topic-modes{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 11px}.mode-btn{border:2px solid var(--paper-3);background:var(--paper-2);border-radius:var(--r-full);padding:6px 13px;font-family:inherit;font-size:13px;font-weight:800;color:var(--ink-soft);cursor:pointer;transition:all .12s}.mode-btn:hover{transform:translateY(-1px)}.mode-btn.learn:hover{background:var(--brand);color:#fff;border-color:var(--brand)}.mode-btn.practice:hover{background:var(--info);color:#fff;border-color:var(--info)}.mode-btn.challenge:hover{background:var(--warn);color:#422006;border-color:var(--warn)}.mode-btn.say{margin-left:auto;padding:6px 11px}.trail-node.done .topic-card{background:color-mix(in srgb,var(--lc) 7%,white);border-color:color-mix(in srgb,var(--lc) 35%,white)}.topic-emoji{font-size:32px;flex:none}.topic-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.topic-info b{font-size:17px}.topic-skills{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}.skill-chip{font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:var(--r-full);background:var(--paper-3);color:var(--ink-soft)}.topic-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.stars{display:inline-flex;gap:2px}.star{filter:grayscale(1);opacity:.35;transition:all .2s}.star.on{filter:none;opacity:1;animation:pop-in .38s cubic-bezier(.2,1.4,.3,1) both}.ring{position:relative;display:grid;place-items:center}.ring svg{position:absolute;top:0;right:0;bottom:0;left:0}.ring-label{position:relative;font-weight:800}.modal-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#1e1b3a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px;overflow-y:auto}.modal{position:relative;background:#fff;border-radius:var(--r-lg);padding:30px;width:min(480px,100%);box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.modal.wide{width:min(760px,100%)}.modal-x{position:absolute;top:14px;right:14px}.field{display:flex;flex-direction:column;gap:7px}.field>span:first-child{font-weight:800;font-size:15px}.input{font-family:inherit;font-size:17px;padding:13px 16px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:var(--paper-2);color:var(--ink);width:100%}.input:focus{outline:none;border-color:var(--brand-2);background:#fff}.range{width:100%;height:34px;accent-color:var(--brand);cursor:pointer}.pick-row{display:flex;gap:8px;flex-wrap:wrap}.pick{width:50px;height:50px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:#fff;font-size:25px;cursor:pointer;display:grid;place-items:center}.pick.on{border-color:var(--brand);background:var(--paper-3);transform:scale(1.06)}.pick.swatch{border-radius:50%}.toggle-row{display:flex;flex-direction:column;gap:12px;margin-top:16px}.toggle{display:flex;align-items:center;gap:12px;border:0;background:none;cursor:pointer;padding:4px}.toggle-track{width:52px;height:30px;border-radius:99px;background:var(--paper-3);position:relative;transition:background .18s;flex:none}.toggle.on .toggle-track{background:var(--good)}.toggle-knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 4px #00000040;transition:transform .18s cubic-bezier(.2,1,.3,1)}.toggle.on .toggle-knob{transform:translate(22px)}.parent-head{display:flex;align-items:center;gap:16px;padding:24px 0 16px;flex-wrap:wrap}.tabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tab{border:0;cursor:pointer;padding:11px 20px;border-radius:var(--r-full);background:#fff;color:var(--ink-soft);font-weight:800;font-size:15px;box-shadow:var(--shadow-sm)}.tab.on{background:var(--brand);color:#fff}.panel-title{font-size:18px;margin-bottom:8px}.panel.danger{border-color:var(--bad-soft)}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}.stat-card{background:#fff;border-radius:var(--r-lg);padding:18px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:var(--shadow-sm);border:3px solid var(--paper-3)}.stat-emoji{font-size:26px}.stat-value{font-size:27px}.spark{display:flex;align-items:flex-end;gap:5px;height:130px;margin:14px 0 6px}.spark-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%}.spark-stack{flex:1;width:100%;display:flex;flex-direction:column-reverse;justify-content:flex-start;border-radius:6px;overflow:hidden;background:var(--paper-2)}.spark-right{background:var(--good);width:100%;border-radius:6px 6px 0 0;min-height:0}.spark-wrong{background:var(--bad);width:100%;min-height:0}.weak-row{width:100%;text-align:left;cursor:pointer;display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:var(--paper-2)}.weak-row:hover{border-color:var(--brand-3);background:#fff}.level-row{display:flex;align-items:center;gap:12px;padding:9px 0}.level-row-emoji{font-size:22px}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:14px;margin-top:12px}.badge-card{background:var(--paper-2);border-radius:var(--r-md);padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;border:3px solid var(--paper-3);opacity:.6}.badge-card.earned{opacity:1;background:#fff;border-color:var(--warn);box-shadow:var(--shadow-sm)}.badge-big{font-size:38px}.badge-chip{display:flex;align-items:center;gap:10px;background:var(--warn-soft);color:#78350f;padding:10px 16px;border-radius:var(--r-full);border:3px solid var(--warn)}.badge-emoji{font-size:26px}.voice-status{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:var(--r-md);margin-bottom:16px}.voice-status.ok{background:var(--good-soft)}.voice-status.warn{background:var(--warn-soft)}.empty-note{text-align:center;padding:60px 20px}.empty-note h3{margin:12px 0 6px;font-size:24px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:90;display:flex;align-items:center;gap:12px;background:#fff;padding:14px 22px;border-radius:var(--r-full);box-shadow:var(--shadow-lg);border:3px solid var(--brand-3)}.toast-emoji{font-size:26px}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:80}.gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 500px at 50% 0%,#ede9fe,var(--paper-2))}.gate-card{background:#fff;border-radius:var(--r-xl);padding:38px 34px;width:min(620px,100%);text-align:center;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;gap:14px}.gate-title{font-size:clamp(24px,4.4vw,34px);color:var(--brand)}.gate-lead{color:var(--ink-soft);font-size:16.5px;max-width:46ch}.gate-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:6px}.gate-steps{text-align:left;background:var(--paper-2);border-radius:var(--r-md);padding:16px 20px;width:100%}.gate-steps ol{margin:8px 0 0;padding-left:22px;font-size:14.5px;color:var(--ink-soft);line-height:1.7}.gate-url{background:var(--paper-3);color:var(--brand);padding:8px 14px;border-radius:var(--r-full);word-break:break-all;font-family:var(--font-num)}.gate-foot{max-width:48ch}.parent-avatar{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;font-size:28px;flex:none}.tab-lock{font-size:11px;margin-left:5px;opacity:.7}.gate-panel{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:34px 24px}.gate-q{font-size:30px;font-weight:900;color:var(--brand);display:flex;align-items:center;gap:12px}.gate-input{width:116px;font-size:26px;text-align:center;font-weight:900}.verdict{display:flex;gap:14px;align-items:flex-start;background:linear-gradient(120deg,#f5f3ff,#fff);border-color:var(--brand-3)}.verdict-emoji{font-size:30px;flex:none}.verdict p{font-size:16.5px;line-height:1.6}.rec{width:100%;text-align:left;cursor:pointer;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:var(--paper-2);font-family:inherit}.rec:hover{background:#fff;transform:translate(3px)}.rec-high{border-color:color-mix(in srgb,var(--bad) 35%,white);background:#fff5f6}.rec-medium{border-color:color-mix(in srgb,var(--warn) 40%,white);background:#fffbeb}.rec-emoji{font-size:27px;flex:none}.rec-go{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:13px;flex:none}.spark.tall{height:150px;gap:3px}.key-dot{width:11px;height:11px;border-radius:3px;display:inline-block;vertical-align:-1px;margin-right:5px}.key-dot.good{background:var(--good)}.key-dot.bad{background:var(--bad)}.two-col{display:grid;grid-template-columns:1fr;gap:18px}@media (min-width: 860px){.two-col{grid-template-columns:1fr 1fr}}.strong-panel{border-color:color-mix(in srgb,var(--good) 30%,white)}.weak-panel{border-color:color-mix(in srgb,var(--bad) 30%,white)}.skill-row{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:var(--r-md);background:var(--paper-2);border-left:6px solid var(--paper-3)}.skill-good{border-left-color:var(--good)}.skill-bad{border-left-color:var(--bad)}.skill-warn{border-left-color:var(--warn)}.skill-emoji{font-size:25px;flex:none}.bars{display:flex;flex-direction:column;gap:9px}.bar-row{display:grid;grid-template-columns:minmax(110px,1.1fr) 3fr auto auto;align-items:center;gap:10px}.bar-label{font-size:14px;font-weight:700}.bar-track{height:20px;border-radius:var(--r-full);background:var(--paper-3);overflow:hidden}.bar-track>i{display:block;height:100%;border-radius:var(--r-full);transition:width .5s cubic-bezier(.2,.9,.3,1)}.bar-track>i.good{background:var(--good)}.bar-track>i.warn{background:var(--warn)}.bar-track>i.bad{background:var(--bad)}.bar-value{font-size:14px;font-weight:800;min-width:42px;text-align:right}.bar-n{min-width:34px;text-align:right}.topic-table-wrap{overflow-x:auto;margin-top:12px}.topic-table{border-collapse:collapse;width:100%;font-size:14px;min-width:720px}.topic-table th{text-align:left;padding:9px 11px;background:var(--paper-3);color:var(--brand);font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.topic-table th:first-child{border-radius:var(--r-sm) 0 0 var(--r-sm)}.topic-table th:last-child{border-radius:0 var(--r-sm) var(--r-sm) 0}.topic-table td{padding:9px 11px;border-bottom:2px solid var(--paper-2);white-space:nowrap}.topic-table tr.row-good td:first-child{box-shadow:inset 4px 0 0 var(--good)}.topic-table tr.row-warn td:first-child{box-shadow:inset 4px 0 0 var(--warn)}.topic-table tr.row-bad td:first-child{box-shadow:inset 4px 0 0 var(--bad)}.link-btn{border:0;background:none;font-family:inherit;font-size:inherit;font-weight:700;color:var(--brand);cursor:pointer;padding:0;text-align:left}.link-btn:hover:not(:disabled){text-decoration:underline}.link-btn:disabled{color:var(--ink-faint);cursor:default}.session-row{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:var(--r-md);background:var(--paper-2);flex-wrap:wrap}.session-when{min-width:88px}.family-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.family-card{background:var(--paper-2);border-radius:var(--r-lg);padding:16px;border:3px solid var(--paper-3);display:flex;flex-direction:column;gap:12px}.family-card.current{border-color:var(--pc);background:#fff}.family-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:24px;background:color-mix(in srgb,var(--pc) 20%,white);flex:none}.family-stats{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;font-size:13px;color:var(--ink-soft)}.family-stats b{color:var(--ink)}.family-lists{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mini-list{margin:4px 0 0;padding-left:15px;font-size:12.5px;color:var(--ink-soft);line-height:1.55}.family-spark{display:flex;gap:3px}.family-spark span{flex:1;height:18px;border-radius:3px;background:var(--paper-3)}.family-spark span.on{background:var(--good)}.welcome{max-width:720px}.welcome-hero{display:flex;align-items:center;gap:22px;flex-wrap:wrap;justify-content:center;text-align:center;padding:40px 0 26px}@media (min-width: 640px){.welcome-hero{text-align:left}}.welcome-card{display:flex;flex-direction:column;gap:14px}.pw-wrap{position:relative}.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:none;font-size:19px;cursor:pointer;padding:6px}.gate-pw{max-width:300px;text-align:center}.profile-card.kid{cursor:pointer;padding:24px 16px 20px;display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff}.profile-card.kid:hover{transform:translateY(-4px)}.profile-card.kid:active{transform:translateY(2px)}.parent-door{margin:32px auto 0;display:block;border:3px dashed var(--brand-3);background:transparent;color:var(--ink-soft);border-radius:var(--r-full);padding:12px 24px;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer}.parent-door:hover{background:#fff;color:var(--brand);border-color:var(--brand)}.no-kids{text-align:center;padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:10px}.secret-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.secret-pick{width:74px;height:74px;font-size:38px;cursor:pointer;border-radius:var(--r-lg);border:4px solid var(--paper-3);background:#fff;display:grid;place-items:center;box-shadow:0 4px #e6e1fb}.secret-pick:hover{border-color:var(--brand-2);transform:translateY(-2px)}.secret-pick:active{transform:translateY(3px);box-shadow:none}.child-admin-grid{display:flex;flex-direction:column;gap:10px;margin-top:14px}.child-admin{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--r-md);background:var(--paper-2);border-left:6px solid var(--pc, var(--brand-3));flex-wrap:wrap}.seg{display:flex;gap:6px;background:var(--paper-2);padding:5px;border-radius:var(--r-full);width:fit-content}.seg-btn{border:0;background:transparent;font-family:inherit;font-size:14px;font-weight:800;color:var(--ink-soft);padding:9px 18px;border-radius:var(--r-full);cursor:pointer}.seg-btn.on{background:var(--brand);color:#fff;box-shadow:0 2px #4c1d95}.err-details{width:100%;text-align:left;margin-top:6px}.err-details summary{cursor:pointer}.err-pre{max-height:220px;overflow:auto;background:var(--paper-2);padding:12px;border-radius:var(--r-sm);font-size:11.5px;white-space:pre-wrap;color:var(--ink-soft);margin-top:8px}.face{display:inline-grid;place-items:center;flex:none;overflow:hidden;border-radius:50%;background:color-mix(in srgb,var(--pc, var(--brand)) 18%,white);line-height:1}.face img{width:100%;height:100%;object-fit:cover;display:block}.face.big-face{border:4px solid var(--pc, var(--brand-3));margin-bottom:6px}.photo-picker{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--paper-2);border-radius:var(--r-md);padding:12px}.photo-preview{width:76px;height:76px;border-radius:50%;overflow:hidden;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--pc, var(--brand)) 18%,white);border:4px solid var(--pc, var(--brand-3))}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-emoji{font-size:38px}.voice-status.info{background:var(--info-soft)}.admin{max-width:1320px}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:24px 0 14px}.admin-brand{display:flex;align-items:center;gap:14px}.admin-logo{font-size:42px}.scope-note{display:flex;gap:12px;align-items:flex-start;background:var(--info-soft);color:#075985;border-radius:var(--r-md);padding:12px 16px;margin-bottom:18px}.scope-note p{line-height:1.55}.admin-drill-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 0 0}.finding{display:flex;gap:10px;align-items:flex-start;padding:11px 14px;border-radius:var(--r-md);background:var(--paper-2);font-size:14.5px;line-height:1.5;border-left:6px solid var(--paper-3)}.finding-bad{border-left-color:var(--bad);background:#fff5f6}.finding-warn{border-left-color:var(--warn);background:#fffbeb}.finding-good{border-left-color:var(--good);background:var(--good-soft)}.finding-info{border-left-color:var(--info);background:var(--info-soft)}.mini-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 16px;font-size:13.5px;color:var(--ink-soft)}.mini-stats b{color:var(--ink);font-size:16px}.dist-row{display:grid;grid-template-columns:minmax(120px,1.2fr) 3fr auto auto;align-items:center;gap:10px}.dist-label{font-size:14px;font-weight:700}.dist-meta{min-width:92px;text-align:right}.bar-track>i.brand{background:linear-gradient(90deg,var(--brand-2),var(--brand))}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.admin-child-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;padding:10px 13px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:var(--paper-2);font-family:inherit}.admin-child-row:hover{background:#fff;border-color:var(--brand-3)}.admin-child-face{font-size:26px}.hours{display:flex;align-items:flex-end;gap:3px;height:120px}.hour-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;position:relative}.hour-col>span{width:100%;background:var(--brand-2);border-radius:4px 4px 0 0;min-height:2px}.hour-col>i{position:absolute;bottom:-16px;font-style:normal}.import-result{background:var(--paper-2);border-radius:var(--r-sm);padding:12px;font-size:12.5px;white-space:pre-wrap;margin-top:12px}.audit-row{display:flex;gap:10px;align-items:baseline;padding:6px 10px;border-radius:var(--r-sm);background:var(--paper-2)}.audit-row b{font-family:var(--font-num)}.accent-tag{margin-left:8px;font-size:12px;font-weight:700;background:var(--paper-3);color:var(--brand);padding:2px 9px;border-radius:var(--r-full)}.accent-row{display:flex;gap:8px;flex-wrap:wrap}.accent-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 14px;min-width:92px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:#fff;cursor:pointer;font-family:inherit;position:relative}.accent-chip:hover{border-color:var(--brand-3)}.accent-chip.on{border-color:var(--brand);background:var(--paper-3)}.accent-chip.missing{opacity:.55}.accent-flag{font-size:24px}.accent-none{font-size:9.5px;font-weight:800;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em}.voice-groups{display:flex;flex-direction:column;gap:14px;max-height:340px;overflow-y:auto;padding-right:4px}.voice-group{border:3px solid var(--paper-3);border-radius:var(--r-md);overflow:hidden}.voice-group-head{display:flex;justify-content:space-between;align-items:center;padding:8px 13px;background:var(--paper-2);font-weight:800;font-size:14px;color:var(--ink-soft)}.voice-row{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 13px;border-top:2px solid var(--paper-2)}.voice-row.on{background:var(--good-soft)}.voice-pick{flex:1;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:none;cursor:pointer;font-family:inherit;text-align:left;padding:6px 0}.voice-name{font-size:13.5px;font-weight:700}.voice-tier{font-size:10.5px;font-weight:800;padding:2px 8px;border-radius:var(--r-full);background:var(--paper-3);color:var(--ink-soft);white-space:nowrap}.voice-tier.tier-neural{background:var(--good-soft);color:#14532d}.voice-tier.tier-network{background:var(--info-soft);color:#075985}.voice-tier.tier-basic{background:var(--bad-soft);color:#9f1239}.lesson{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:radial-gradient(900px 500px at 15% -10%,#ede9fe 0%,transparent 60%),radial-gradient(700px 400px at 100% 10%,#fce7f3 0%,transparent 55%),var(--paper-2)}.lesson-bar{display:flex;align-items:center;gap:14px;padding:12px 18px;background:#ffffffd9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:3px solid rgba(109,40,217,.1);flex:none}.lesson-bar-progress{flex:1;display:flex;align-items:center;gap:12px}.lesson-bar-progress .bar{flex:1}.lesson-body{flex:1;overflow-y:auto;padding:20px 18px 24px;display:flex;flex-direction:column;align-items:center;gap:18px}.lesson-guide{display:flex;align-items:center;gap:14px;width:min(820px,100%)}.guide-bubble{flex:1;position:relative;background:#fff;border:3px solid var(--brand-3);border-radius:var(--r-lg);padding:16px 62px 16px 20px;box-shadow:var(--shadow-sm);min-height:60px;display:flex;align-items:center}.guide-bubble:before{content:"";position:absolute;left:-13px;top:30px;width:20px;height:20px;background:#fff;border-left:3px solid var(--brand-3);border-bottom:3px solid var(--brand-3);transform:rotate(45deg)}.guide-bubble p{font-size:clamp(17px,2.4vw,21px);font-weight:700}.guide-bubble .speak-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.lesson-stage{width:min(820px,100%);background:#fff;border-radius:var(--r-xl);padding:clamp(18px,3vw,32px);box-shadow:var(--shadow-md);border:3px solid rgba(109,40,217,.08);animation:rise-in .28s ease both}.lesson-foot{flex:none;display:flex;align-items:center;gap:14px;padding:14px 18px;background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:3px solid rgba(109,40,217,.1)}.lesson-foot.has-right{background:var(--good-soft);border-top-color:var(--good)}.lesson-foot.has-wrong{background:var(--warn-soft);border-top-color:var(--warn)}.feedback{display:flex;align-items:center;gap:12px;font-weight:800;font-size:18px}.feedback-right{color:#14532d}.feedback-wrong{color:#78350f}.feedback-emoji{font-size:26px;flex:none}.feedback-why{display:block;font-size:14.5px;font-weight:600;font-style:normal;opacity:.85;margin-top:2px}.mode-pill{background:var(--paper-3);color:var(--brand)}.mode-pill.mode-practice{background:var(--info-soft);color:#075985}.mode-pill.mode-challenge{background:var(--warn-soft);color:#78350f}.topic-pill{display:none}@media (min-width: 720px){.topic-pill{display:inline-flex}}.done-score{font-size:56px;font-weight:900;color:var(--brand)}.lesson-done{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:20px;overflow-y:auto;background:radial-gradient(800px 500px at 50% 0%,#ede9fe,var(--paper-2))}.done-card{background:#fff;border-radius:var(--r-xl);padding:34px 30px;text-align:center;width:min(560px,100%);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;gap:12px}.done-title{font-size:34px;color:var(--brand)}.done-stars{margin:6px 0}.done-stats{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;margin:8px 0 4px}.done-stat{display:flex;flex-direction:column}.done-stat b{font-size:26px;color:var(--brand)}.done-stat span{font-size:12.5px;color:var(--ink-faint)}.done-levelup{background:var(--warn-soft);color:#78350f;padding:10px 22px;border-radius:var(--r-full);font-weight:800;border:3px solid var(--warn)}.done-badges{display:flex;flex-direction:column;gap:8px;align-items:center;margin-top:6px}.done-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:12px}.visual-stack{display:flex;flex-direction:column;gap:18px;align-items:center;margin-bottom:14px}.v-counters{display:flex;flex-direction:column;align-items:center;gap:8px}.v-counter-grid{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:560px}.v-counter{animation:pop-in .34s cubic-bezier(.2,1.3,.3,1) both;line-height:1}.v-counter.hi{filter:drop-shadow(0 0 8px var(--warn))}.v-label{font-size:20px;font-weight:800;color:var(--brand)}.v-groups{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center}.v-group{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px;border-radius:var(--r-lg);background:var(--paper-2);border:3px dashed var(--brand-3);min-width:90px}.v-group-items{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;max-width:220px}.v-group-num{font-size:24px;color:var(--brand)}.v-symbol{font-size:34px;font-weight:900;color:var(--ink-soft)}.v-result{font-size:40px;font-weight:900;color:var(--good);min-width:66px;text-align:center}.v-bignum{display:flex;flex-direction:column;align-items:center}.v-bignum-emoji{font-size:46px}.v-bignum-value{font-size:clamp(48px,12vw,96px);font-weight:900;color:var(--brand);line-height:1}.v-bignum-word{font-size:22px;color:var(--ink-soft);text-transform:capitalize}.v-numline,.numline-track{width:100%}.v-numline-track,.numline-track{position:relative;height:92px;margin:20px 0 8px;padding:0 4px}.v-numline-rule,.numline-rule{position:absolute;left:0;right:0;top:46px;height:6px;background:var(--brand-3);border-radius:3px}.v-tick,.numline-tick{position:absolute;top:34px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.v-tick-mark,.numline-mark{width:5px;height:22px;border-radius:3px;background:var(--brand-2)}.v-tick.hi .v-tick-mark,.numline-tick.hi .numline-mark{background:var(--warn);height:30px}.numline-tick.active .numline-mark{background:var(--good);height:30px}.v-tick-num,.numline-num{font-size:13px;font-weight:800;color:var(--ink-soft)}.v-jump,.numline-hop{position:absolute;top:8px;height:40px}.v-frames,.tf-frames{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.v-tenframe,.tf-frame{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:6px;background:var(--paper-2);border:4px solid var(--brand);border-radius:var(--r-md)}.v-cell{width:34px;height:34px;border-radius:8px;background:#fff;border:2px solid var(--brand-3)}.v-cell.on{background:var(--warn);border-color:var(--warn)}.v-blocks{display:flex;gap:22px;flex-wrap:wrap;justify-content:center;align-items:flex-end}.v-blockcol{display:flex;flex-direction:column;align-items:center;gap:6px}.v-blockrow{display:flex;gap:4px;flex-wrap:wrap;justify-content:center;max-width:220px;align-items:flex-end}.v-blockrow.ones{max-width:100px}.blk-hundred{width:44px;height:44px;background:#6d28d9;border-radius:4px;display:block;background-image:linear-gradient(#ffffff33 1px,transparent 1px),linear-gradient(90deg,#ffffff33 1px,transparent 1px);background-size:4.4px 4.4px}.blk-ten{width:11px;height:44px;background:#0ea5e9;border-radius:3px;display:block;background-image:linear-gradient(#ffffff44 1px,transparent 1px);background-size:100% 4.4px}.blk-one{width:11px;height:11px;background:#f97316;border-radius:2px;display:block}.blk-thousand{font-size:34px}.v-array,.arr-grid{display:flex;flex-direction:column;align-items:center;gap:10px}.v-array-grid{display:grid;gap:6px;justify-content:center}.v-array-grid .v-counter{font-size:27px}.v-array-label{font-size:19px;font-weight:700;color:var(--ink-soft)}.v-fraccircle,.frac-circle{width:min(230px,70vw);height:auto}.v-fracbar,.frac-bar{display:flex;gap:3px;width:min(420px,90%);height:66px;border:4px solid #4c1d95;border-radius:var(--r-sm);padding:3px;background:#fff}.v-fracseg,.frac-seg{flex:1;border-radius:4px;background:#f1eefe}.v-fracseg.on{background:var(--maths)}.v-clock,.clock-face{width:min(250px,70vw);height:auto}.v-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;width:min(560px,100%)}.v-steps li{display:flex;align-items:flex-start;gap:12px;background:var(--paper-2);border-radius:var(--r-md);padding:13px 16px;font-size:17px;border-left:6px solid var(--brand-2)}.v-step-n{width:27px;height:27px;flex:none;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px}.v-expr{font-weight:900;color:var(--brand);background:var(--paper-2);padding:16px 30px;border-radius:var(--r-lg);letter-spacing:.04em;text-align:center}.v-column,.col-paper{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:34px;font-weight:800;display:inline-flex;flex-direction:column;align-items:flex-end;background:var(--paper-2);padding:16px 22px;border-radius:var(--r-md);min-width:190px}.v-col-row{display:flex;gap:4px}.v-col-row span{width:34px;text-align:center}.v-col-row.carries{font-size:17px;color:var(--bad);height:22px}.v-col-row.ans{color:var(--good)}.v-col-op{color:var(--ink-soft)}.v-col-rule{height:4px;background:var(--ink);width:100%;margin:5px 0;border-radius:2px}.v-shapes{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.v-shape{display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 18px;background:var(--paper-2);border-radius:var(--r-md);min-width:96px}.v-shape-glyph{font-size:42px}.v-table-wrap{width:100%;overflow-x:auto}.v-table{border-collapse:collapse;margin:0 auto;font-size:16px}.v-table th,.v-table td{padding:9px 15px;border:2px solid var(--paper-3);text-align:center}.v-table th{background:var(--brand);color:#fff}.v-table tr:nth-child(2n) td{background:var(--paper-2)}.act-heading{font-size:clamp(21px,3.4vw,28px);color:var(--brand);text-align:center;margin-bottom:10px}.act-body{font-size:clamp(16px,2.3vw,19px);text-align:center;color:var(--ink-soft);margin-bottom:16px;max-width:640px;margin-left:auto;margin-right:auto}.act-aside{display:flex;gap:10px;align-items:center;background:var(--warn-soft);color:#78350f;padding:13px 18px;border-radius:var(--r-md);font-weight:700;margin-top:16px;border-left:6px solid var(--warn)}.act-aside-emoji{font-size:22px}.act-subprompt{display:flex;align-items:center;justify-content:center;gap:10px;font-size:19px;font-weight:800;margin:16px 0 12px}.tile{border:4px solid var(--paper-3);background:#fff;border-radius:var(--r-lg);padding:16px 14px;min-height:78px;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 5px #e6e1fb;transition:transform 90ms,border-color .14s,background .14s}.tile:hover:not(:disabled){border-color:var(--brand-2);transform:translateY(-2px)}.tile:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #e6e1fb}.tile.big{min-height:104px}.tile-emoji{font-size:clamp(26px,5vw,38px);line-height:1.1}.tile-label{font-size:clamp(20px,3.6vw,30px);font-weight:900;color:var(--ink)}.tile-sub{font-size:13px;color:var(--ink-faint)}.tile-right{border-color:var(--good);background:var(--good-soft);box-shadow:0 5px #86efac;animation:pop-in .3s ease}.tile-wrong{border-color:var(--bad);background:var(--bad-soft);box-shadow:0 5px #fda4af;opacity:.75}.tile:disabled{cursor:not-allowed}.choice-grid{display:grid;gap:12px;width:100%}.tap-field{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:22px;background:var(--paper-2);border-radius:var(--r-lg);border:4px dashed var(--brand-3);min-height:150px;align-items:center}.tap-field.done{border-style:solid;border-color:var(--good);background:var(--good-soft)}.tap-object{position:relative;border:0;background:none;cursor:pointer;padding:6px;border-radius:var(--r-md);transition:transform .13s}.tap-object:hover{transform:scale(1.12)!important}.tap-emoji{font-size:clamp(36px,7vw,52px);display:block;line-height:1}.tap-object.counted .tap-emoji{filter:saturate(.35) brightness(1.15)}.tap-badge{position:absolute;top:-4px;right:-4px;width:27px;height:27px;border-radius:50%;background:var(--good);color:#fff;font-size:14px;font-weight:900;display:grid;place-items:center;border:3px solid #fff}.tap-counter{display:flex;align-items:center;justify-content:center;gap:12px;margin:14px 0}.tap-counter b{font-size:34px;color:var(--brand)}.act-keypad{display:flex;flex-direction:column;align-items:center;gap:16px}.keypad-equation,.keypad-display{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:clamp(30px,6vw,46px);font-weight:900;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;background:var(--paper-2);padding:14px 26px;border-radius:var(--r-lg)}.keypad-slot,.keypad-display{min-width:96px;text-align:center;border-bottom:5px solid var(--brand-2);color:var(--brand)}.keypad-slot.ok,.keypad-display.ok{color:var(--good);border-color:var(--good)}.keypad-unit{font-size:20px;color:var(--ink-soft)}.keypad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:min(300px,100%)}.key,.col-keys .key{font-family:var(--font-num);font-size:26px;font-weight:800;padding:16px 0;min-height:60px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:#fff;color:var(--ink);cursor:pointer;box-shadow:0 4px #e6e1fb;transition:transform 80ms}.key:hover:not(:disabled){background:var(--paper-2)}.key:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #e6e1fb}.key.alt{background:var(--paper-3);color:var(--brand)}.key:disabled{opacity:.4;cursor:not-allowed}.keypad-check{width:min(300px,100%)}.pattern-strip{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:20px;background:var(--paper-2);border-radius:var(--r-lg)}.pattern-cell{width:66px;height:66px;border-radius:var(--r-md);background:#fff;border:3px solid var(--paper-3);display:grid;place-items:center;font-size:34px;font-weight:900;color:var(--brand)}.pattern-blank{color:var(--brand-2);animation:pulse-ring 1.8s ease-out infinite;border-radius:50%;width:44px;height:44px;display:grid;place-items:center}.act-speed{display:flex;flex-direction:column;align-items:center;gap:18px;transition:background .2s;border-radius:var(--r-lg)}.act-speed.ready{text-align:center;gap:12px}.speed-badge{font-size:60px;animation:bob 1.6s ease-in-out infinite}.speed-hud{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.speed-q{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:clamp(38px,9vw,68px);font-weight:900;color:var(--brand);padding:16px 0}.act-speed.flash-ok{background:var(--good-soft)}.act-speed.flash-no{background:var(--bad-soft)}.speed-final{text-align:center}.draggable{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.draggable.is-dragging{opacity:.28;cursor:grabbing}.draggable.is-locked{cursor:default;opacity:.6}.drag-ghost{position:fixed;z-index:999;pointer-events:none;transform:scale(1.1) rotate(-3deg);filter:drop-shadow(0 12px 18px rgba(30,27,58,.4))}.dropzone{transition:background .14s,border-color .14s,transform .14s}.dropzone.is-over{border-color:var(--good)!important;background:var(--good-soft)!important;transform:scale(1.03)}.chip{display:inline-flex;align-items:center;gap:7px;padding:11px 17px;border-radius:var(--r-full);background:#fff;border:3px solid var(--brand-3);font-weight:800;font-size:19px;box-shadow:0 3px #1e1b3a1a;cursor:pointer}.chip.small{font-size:16px;padding:7px 13px}.chip.ok{border-color:var(--good);background:var(--good-soft)}.chip.no{border-color:var(--bad);background:var(--bad-soft)}.chip-emoji{font-size:22px}.bucket-tray,.order-tray,.coin-tray,.pv-tray{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;min-height:66px;align-items:center;padding:12px;background:var(--paper-2);border-radius:var(--r-lg);border:3px dashed var(--brand-3);margin-bottom:16px}.tray-empty{color:var(--ink-faint);font-weight:700}.bucket-row{display:grid;gap:12px;margin-bottom:18px}.bucket{border:4px dashed var(--brand-3);border-radius:var(--r-lg);padding:12px;background:#fff;display:flex;flex-direction:column;gap:8px;min-height:150px}.bucket-head{display:flex;align-items:center;gap:8px;justify-content:center;font-size:15px;text-align:center}.bucket-emoji{font-size:24px}.bucket-body{flex:1;display:flex;flex-wrap:wrap;gap:7px;align-content:flex-start;justify-content:center}.bucket-hint{color:var(--ink-faint);font-size:13px;align-self:center}.act-buckets,.act-order,.act-match,.act-placevalue,.act-money,.act-numline,.act-tenframe,.act-fraction,.act-array,.act-clock,.act-coords,.act-barchart,.act-column,.act-swipe{display:flex;flex-direction:column;align-items:center;gap:14px}.order-axis{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--ink-soft)}.order-arrow{font-size:22px;color:var(--brand)}.order-slots{display:grid;gap:10px;width:100%}.order-slot{position:relative;border:4px dashed var(--brand-3);border-radius:var(--r-md);min-height:86px;padding:20px 6px 6px;display:grid;place-items:center;background:#fff}.order-slot.ok{border-color:var(--good);background:var(--good-soft);border-style:solid}.order-slot.no{border-color:var(--bad);background:var(--bad-soft);border-style:solid}.slot-index{position:absolute;top:4px;left:8px;font-size:12px;font-weight:800;color:var(--ink-faint)}.slot-empty{width:34px;height:34px;border-radius:50%;background:var(--paper-3)}.match-wrap{position:relative;display:flex;gap:clamp(30px,12vw,110px);width:100%;justify-content:center}.match-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;width:100%;height:100%}.match-col{display:flex;flex-direction:column;gap:12px;flex:1;max-width:240px}.match-drop{border-radius:var(--r-md)}.match-card{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;min-height:60px;background:#fff;border:3px solid var(--brand-3);border-radius:var(--r-md);font-weight:800;font-size:19px;box-shadow:0 3px #1e1b3a14}.match-card.linked{border-color:var(--brand);background:var(--paper-3)}.match-emoji{font-size:24px}.match-dot{position:absolute;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background:var(--brand-2);border:3px solid #fff}.match-dot.right{right:-9px}.match-dot.left{left:-9px}.pv-target{font-size:22px;font-weight:800}.pv-target b{color:var(--brand);font-size:30px}.pv-source{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px;background:#fff;border:3px solid var(--brand-3);border-radius:var(--r-md);min-width:72px}.pv-board{display:grid;gap:10px;width:100%}.pv-col{border:4px dashed var(--brand-3);border-radius:var(--r-md);background:#fff;display:flex;flex-direction:column;min-height:190px;overflow:hidden}.pv-col-head{background:var(--paper-3);padding:7px;text-align:center;font-weight:800;font-size:13.5px;color:var(--brand)}.pv-col-body{flex:1;display:flex;flex-wrap:wrap;gap:4px;padding:8px;align-content:flex-start;justify-content:center}.pv-col-foot{display:flex;align-items:center;justify-content:center;gap:10px;padding:7px;border-top:2px solid var(--paper-3)}.icon-btn.sm{width:34px;height:34px;font-size:17px}.pv-total{font-size:21px;padding:10px 22px;border-radius:var(--r-full);background:var(--paper-2)}.pv-total.ok{background:var(--good-soft);color:#14532d}.pv-total.no{background:var(--bad-soft);color:#9f1239}.money-target{font-size:21px;font-weight:800}.money-target b{color:var(--brand);font-size:28px}.coin{min-width:62px;height:62px;border-radius:50%;background:radial-gradient(circle at 32% 28%,#fde68a,#f59e0b);border:4px solid #b45309;color:#451a03;font-weight:900;font-size:15px;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px #92400e}.coin.note{border-radius:var(--r-sm);width:92px;height:54px;background:linear-gradient(120deg,#86efac,#22c55e);border-color:#15803d;color:#052e16;box-shadow:0 4px #166534}.purse{width:100%;min-height:170px;border:4px dashed var(--brand-3);border-radius:var(--r-lg);background:#fff;padding:14px;display:flex;flex-direction:column;gap:10px}.purse-label{font-weight:800;color:var(--ink-soft)}.purse-body{flex:1;display:flex;flex-wrap:wrap;gap:9px;justify-content:center;align-items:center;align-content:center}.purse-total{text-align:center;font-size:19px;font-weight:800;padding:9px;border-radius:var(--r-md);background:var(--paper-2)}.purse-total.ok{background:var(--good-soft);color:#14532d}.purse-total.no{background:var(--bad-soft);color:#9f1239}.numline-value,.tf-count{display:flex;flex-direction:column;align-items:center}.numline-value b,.tf-count b{font-size:38px;color:var(--brand)}.numline-value b.ok,.tf-count b.ok{color:var(--good)}.numline-value b.no,.tf-count b.no{color:var(--bad)}.numline-track{touch-action:none;cursor:pointer;padding-bottom:20px}.numline-marker{position:absolute;top:0;transform:translate(-50%);transition:left .19s cubic-bezier(.2,1,.3,1);pointer-events:none}.numline-marker-emoji{font-size:40px;display:block;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}.numline-marker.ok .numline-marker-emoji{animation:bob .6s ease-in-out 2}.numline-marker.no .numline-marker-emoji{animation:shake .4s ease}.numline-hops{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.tf-cell{width:52px;height:52px;border-radius:var(--r-sm);background:#fff;border:3px solid var(--brand-3);cursor:pointer;display:grid;place-items:center;padding:0}.tf-cell:hover{background:var(--paper-2)}.tf-cell.on{background:var(--paper-3);border-color:var(--brand)}.tf-dot{font-size:27px;line-height:1}.tf-controls{display:flex;gap:14px}.frac-goal{font-size:21px;font-weight:800;display:flex;align-items:center;gap:10px}.frac-inline{display:inline-flex;flex-direction:column;align-items:center;line-height:1;font-size:19px;color:var(--brand)}.frac-inline i{display:block;width:100%;height:3px;background:var(--brand);margin:2px 0}.frac-slice{cursor:pointer;fill:#f1eefe;stroke:#4c1d95;stroke-width:3;transition:fill .15s}.frac-slice:hover{fill:#e0d9fb}.frac-slice.on{fill:var(--maths)}.frac-seg{cursor:pointer;transition:background .15s}.frac-seg:hover{background:#e0d9fb}.frac-seg.on{background:var(--maths)}.frac-readout{font-size:19px;padding:9px 20px;border-radius:var(--r-full);background:var(--paper-2)}.frac-readout.ok{background:var(--good-soft);color:#14532d}.frac-readout.no{background:var(--bad-soft);color:#9f1239}.arr-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center}.arr-stepper{display:flex;flex-direction:column;align-items:center;gap:5px}.arr-num{font-size:27px;min-width:42px;text-align:center;color:var(--brand)}.arr-times{font-size:27px;font-weight:900;color:var(--ink-soft)}.arr-grid{display:grid;gap:6px;justify-content:center;padding:16px;background:var(--paper-2);border-radius:var(--r-lg);min-height:90px}.arr-dot{font-size:24px;line-height:1;animation:pop-in .26s ease both}.arr-readout{font-size:23px;font-weight:800;padding:9px 22px;border-radius:var(--r-full);background:var(--paper-2)}.arr-readout.ok{background:var(--good-soft);color:#14532d}.arr-readout.no{background:var(--bad-soft);color:#9f1239}.clock-readout{font-size:38px;font-weight:900;color:var(--brand)}.clock-face{touch-action:none}.clock-face.ok circle:first-child{stroke:var(--good)}.clock-face.no circle:first-child{stroke:var(--bad)}.clock-face .hand{cursor:grab}.clock-face .hand:active{cursor:grabbing}.clock-nudges{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.act-balance{display:flex;flex-direction:column;align-items:center;gap:20px}.bal-scene{position:relative;width:min(520px,100%);padding-top:20px}.bal-beam{display:flex;justify-content:space-between;gap:16px;transform:rotate(var(--tilt, 0deg));transform-origin:center bottom;transition:transform .5s cubic-bezier(.2,1,.3,1);border-bottom:8px solid var(--brand);border-radius:4px;padding-bottom:8px}.bal-pan{flex:1;background:var(--paper-2);border:4px solid var(--brand-3);border-radius:var(--r-lg);padding:12px;min-height:118px;display:flex;flex-direction:column;align-items:center;gap:6px}.bal-value{font-size:30px;font-weight:900;color:var(--brand)}.bal-items{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;font-size:17px}.bal-post{width:22px;height:40px;background:var(--brand);margin:0 auto;border-radius:0 0 8px 8px}.bal-question{display:flex;align-items:center;gap:16px;font-size:30px;font-weight:900}.bal-slot{min-width:62px;height:62px;border-radius:var(--r-md);border:4px dashed var(--brand-2);color:var(--brand-2);display:grid;place-items:center}.bal-slot.filled{border-style:solid;background:var(--paper-3);color:var(--brand)}.bal-options{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.bal-opt{border:4px solid var(--paper-3);background:#fff;cursor:pointer;border-radius:var(--r-lg);padding:12px 22px;min-width:118px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:0 5px #e6e1fb;font-family:inherit}.bal-opt:hover:not(:disabled){border-color:var(--brand-2)}.bal-sym{font-size:34px;font-weight:900;color:var(--brand)}.bal-opt.ok{border-color:var(--good);background:var(--good-soft)}.bal-opt.no{border-color:var(--bad);background:var(--bad-soft);opacity:.7}.coord-goal{font-size:20px;font-weight:800}.coord-wrap{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:6px;width:min(420px,100%)}.coord-ylabels{display:flex;flex-direction:column;justify-content:space-between;font-size:12px;font-weight:800;color:var(--ink-soft);padding:0 4px}.coord-xlabels{grid-column:2;display:flex;justify-content:space-between;font-size:12px;font-weight:800;color:var(--ink-soft)}.coord-grid{position:relative;aspect-ratio:1;background:#fff;border-radius:var(--r-sm)}.coord-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.coord-node{position:absolute;width:26px;height:26px;transform:translate(-50%,50%);border-radius:50%;border:0;background:transparent;cursor:pointer;padding:0}.coord-node:hover{background:#8b5cf647}.coord-node.on{background:var(--brand);border:4px solid #fff;box-shadow:0 0 0 3px var(--brand)}.coord-node.ok{background:var(--good);box-shadow:0 0 0 3px var(--good)}.coord-node.no{background:var(--bad);box-shadow:0 0 0 3px var(--bad)}.coord-readout{font-weight:800;color:var(--ink-soft)}.bc-data{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.bc-plot{display:flex;gap:8px;width:100%;height:250px}.bc-yaxis{display:flex;flex-direction:column;justify-content:space-between;font-size:12px;font-weight:800;color:var(--ink-soft)}.bc-area{flex:1;display:flex;gap:10px;align-items:flex-end;background:repeating-linear-gradient(to top,var(--paper-2) 0 1px,transparent 1px 10%);border-left:4px solid var(--ink);border-bottom:4px solid var(--ink);padding:0 10px;touch-action:none}.bc-col{flex:1;height:100%;position:relative;display:flex;align-items:flex-end}.bc-hit{position:absolute;top:0;right:0;bottom:0;left:0;cursor:ns-resize}.bc-bar{width:100%;border-radius:8px 8px 0 0;cursor:ns-resize;position:relative;min-height:3px;transition:height 90ms linear}.bc-bar.ok{outline:4px solid var(--good)}.bc-bar.no{outline:4px solid var(--bad)}.bc-val{position:absolute;top:-24px;left:50%;transform:translate(-50%);font-weight:900;font-size:15px;color:var(--ink)}.bc-xaxis{display:flex;gap:10px;width:100%;padding-left:34px}.bc-xaxis span{flex:1;text-align:center;font-size:13px;font-weight:700}.swipe-hud{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.swipe-stage{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.swipe-side{flex:none;width:clamp(78px,18vw,130px);display:flex;flex-direction:column;align-items:center;gap:5px;padding:16px 8px;border-radius:var(--r-lg);background:var(--paper-2);border:4px dashed var(--brand-3);text-align:center;font-size:14px;transition:all .16s}.swipe-side.lit{border-color:var(--good);background:var(--good-soft);transform:scale(1.06)}.swipe-side-emoji{font-size:30px}.swipe-deck{position:relative;flex:1;max-width:300px;height:210px}.swipe-card{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border:4px solid var(--brand-3);border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow-md);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.swipe-card:active{cursor:grabbing}.swipe-card.behind{transform:scale(.94) translateY(10px);opacity:.55;z-index:-1}.swipe-card-emoji{font-size:46px}.swipe-card-text{font-size:clamp(28px,6vw,44px);font-weight:900;color:var(--brand)}.swipe-card-sub{font-size:14px;color:var(--ink-faint)}.swipe-done{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.swipe-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.act-swipe.flash-ok .swipe-deck{filter:drop-shadow(0 0 16px var(--good))}.act-swipe.flash-no .swipe-deck{filter:drop-shadow(0 0 16px var(--bad))}.col-paper{align-items:flex-end}.col-line{display:flex;gap:4px}.col-cell{width:38px;text-align:center;display:inline-grid;place-items:center}.col-line.marks{height:26px;font-size:16px}.col-mark.carry{color:var(--bad);font-size:17px}.col-mark.borrow{color:var(--info);font-size:15px}.col-op{color:var(--ink-soft)}.col-rule{height:4px;background:var(--ink);width:100%;margin:6px 0;border-radius:2px}.col-line.answer .col-digit{color:var(--good)}.col-digit.active{color:var(--brand);background:var(--paper-3);border-radius:8px;width:100%;animation:pulse-ring 1.8s ease-out infinite}.col-digit.waiting{color:var(--ink-faint)}.col-cell.struck{text-decoration:line-through;color:var(--ink-faint)}.col-prompt{font-size:18px;font-weight:700;text-align:center;max-width:480px}.col-keys{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:min(340px,100%)}.col-done{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:21px}@media (max-width: 560px){.lesson-guide{flex-direction:row;align-items:flex-start}.lesson-guide .mascot{width:64px;height:64px}.guide-bubble{padding:12px 54px 12px 14px}.bucket-row{grid-template-columns:1fr 1fr!important}.order-slots{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))!important}.match-wrap{gap:22px}.match-card{font-size:16px;padding:11px;min-height:52px}.tf-cell{width:40px;height:40px}.done-actions{flex-direction:column;width:100%}.done-actions .btn{width:100%}}.worked{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.worked-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;width:100%}.worked-badge{background:var(--warn-soft);color:#78350f;font-weight:800;font-size:13px;padding:5px 13px;border-radius:var(--r-full);white-space:nowrap}.worked-title{font-size:clamp(17px,3vw,22px);font-weight:800;color:var(--brand)}.worked-rail{list-style:none;display:flex;gap:8px;margin:0;padding:0;flex-wrap:wrap;justify-content:center}.worked-dot{width:34px;height:34px;border-radius:50%;border:3px solid var(--paper-3);background:#fff;color:var(--ink-faint);font-family:inherit;font-weight:800;font-size:14px;cursor:pointer;transition:all .16s}.worked-dot:hover{border-color:var(--brand-3)}.worked-dot.done{background:var(--good-soft);border-color:var(--good);color:#14532d}.worked-dot.on{background:var(--brand);border-color:var(--brand);color:#fff;transform:scale(1.12)}.worked-stage{width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--paper-2);border-radius:var(--r-lg);padding:20px 18px;min-height:190px;justify-content:center;animation:rise-in .3s ease both}.worked-caption{font-size:clamp(16px,2.6vw,20px);font-weight:700;text-align:center;max-width:44ch;line-height:1.5}.worked-note{display:flex;gap:10px;align-items:flex-start;background:#fff;border-left:5px solid var(--warn);border-radius:var(--r-md);padding:10px 14px;font-size:14px;color:var(--ink-soft);max-width:46ch}.worked-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:center}.worked-done{display:flex;align-items:center;gap:12px;background:var(--good-soft);color:#14532d;border-radius:var(--r-lg);padding:12px 20px;width:100%}.sim{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.sim-head{display:flex;align-items:center;justify-content:space-between;width:100%;gap:12px;flex-wrap:wrap}.sim-title{font-size:17px;font-weight:800;color:var(--ink-soft)}.sim-progress{font-weight:800;color:var(--brand)}.sim-badge{padding:6px 14px;border-radius:var(--r-full);background:var(--paper-3);color:var(--brand);font-weight:800;font-size:14px;white-space:nowrap}.sim-badge.on{background:var(--good-soft);color:#14532d}.sim-badge.warn{background:var(--warn-soft);color:#78350f}.sim-badge.phase-solid{background:#dbeafe;color:#1e40af}.sim-badge.phase-liquid{background:#cffafe;color:#155e75}.sim-badge.phase-gas{background:#f3e8ff;color:#6b21a8}.sim-goal{font-size:clamp(16px,2.6vw,20px);font-weight:800;text-align:center;background:var(--paper-2);padding:11px 20px;border-radius:var(--r-md);width:100%;border-left:6px solid var(--brand-2)}.sim-note{font-size:14.5px;line-height:1.6;color:var(--ink-soft);background:var(--paper-2);padding:12px 16px;border-radius:var(--r-md);width:100%}.sim-control{width:100%;display:grid;gap:16px}.sim-control.two{grid-template-columns:1fr}@media (min-width: 620px){.sim-control.two{grid-template-columns:1fr 1fr}}.sim-slider{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:15px}.sim-slider .range{accent-color:#22c55e}.range.thermo{accent-color:#e05252}.sim-choices{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.sim-tray{display:flex;gap:9px;flex-wrap:wrap;justify-content:center;padding:12px;background:var(--paper-2);border-radius:var(--r-lg);border:3px dashed var(--brand-3);width:100%}.sim-done{display:flex;align-items:center;gap:12px;padding:12px 20px;background:var(--good-soft);color:#14532d;border-radius:var(--r-full);font-weight:800}.sim-facts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px;width:100%}.sim-facts li{background:var(--paper-2);border-radius:var(--r-md);padding:10px 14px;font-size:14.5px;border-left:5px solid #22c55e}.diagram-wrap{position:relative;width:min(560px,100%);margin:0 auto;padding:0 clamp(72px,22%,118px)}.diagram-svg{width:100%;height:auto;display:block;max-height:60vh;background:#fbfdff;border-radius:var(--r-lg);border:3px solid var(--paper-3)}.diagram-figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:8px}.diagram-figure figcaption{font-size:13.5px;font-weight:700;color:var(--ink-faint)}.hotspot-hit{fill:#6d28d900;cursor:pointer}.hotspot-hit:hover{fill:#22c55e38}.hotspot-dot{fill:#fff;stroke:#243b53;stroke-width:3}.hotspot-dot.on{fill:#22c55e}.hotspot.done .hotspot-dot{fill:#16a34a}.hotspot-tick{fill:#16a34a;stroke:#fff;stroke-width:3}.hotspot.wrong circle{fill:#e11d48}.diagram-labels{position:absolute;inset:0 clamp(72px,22%,118px);pointer-events:none}.label-group{position:absolute;left:0;right:0;height:0}.label-leader{position:absolute;top:0;height:2.5px;background:repeating-linear-gradient(90deg,#22c55e 0 6px,transparent 6px 10px)}.diagram-label{position:absolute;top:0;transform:translateY(-50%);background:#fff;border:2.5px solid #22c55e;color:#14532d;padding:3px 10px;border-radius:var(--r-full);font-size:12.5px;font-weight:800;white-space:nowrap;box-shadow:0 2px 6px #0000001f}.diagram-label.left{right:calc(100% + 8px)}.diagram-label.right{left:calc(100% + 8px)}@media (max-width: 520px){.diagram-label{font-size:11px;padding:2px 7px}}.label-spot{position:absolute;width:46px;height:46px;transform:translate(-50%,-50%);border-radius:50%;border:3px dashed var(--brand-2);background:#ffffffb3}.label-spot.is-over{border-color:#16a34a!important;background:var(--good-soft)!important}.label-spot.no{border-color:#e11d48;background:var(--bad-soft)}.particle-box{width:100%}.particle-canvas{width:100%;height:240px;display:block;background:linear-gradient(#f7fbff,#eaf4fb);border-radius:var(--r-lg);border:3px solid var(--paper-3)}.particle-scale{display:flex;justify-content:space-between;margin-top:8px;font-size:12.5px;font-weight:700;color:var(--ink-faint)}.particle-scale .on{color:var(--brand)}.circuit-svg{width:min(440px,100%);height:auto;background:#fbfdff;border-radius:var(--r-lg);border:3px solid var(--paper-3)}.wire.live{filter:drop-shadow(0 0 4px #f0a500)}.bulb-glow{animation:pulse-ring 2s ease-out infinite}.material-chip{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 12px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:#fff;cursor:pointer;font-family:inherit;font-size:22px;min-width:84px}.material-chip:hover{border-color:var(--brand-2)}.material-chip.tested{opacity:.85}.material-chip .tag{font-size:10.5px;font-weight:800;padding:2px 7px;border-radius:var(--r-full)}.material-chip .tag.ok{background:var(--good-soft);color:#14532d}.material-chip .tag.no{background:var(--bad-soft);color:#9f1239}.tank{position:relative;width:min(400px,100%);height:220px;border:4px solid #5b6b7d;border-top:none;border-radius:0 0 16px 16px;overflow:hidden;background:#f7fbff}.tank-water{position:absolute;left:0;right:0;bottom:0;height:62%;background:linear-gradient(#7cc4e8,#4a9fd0)}.tank-surface{height:5px;background:#bfe3f7}.tank-item{position:absolute;left:50%;top:6%;transform:translate(-50%);font-size:46px;transition:top 1.4s cubic-bezier(.4,.1,.5,1)}.tank-item.floating{top:30%}.tank-item.sinking{top:76%}.tank-done{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-weight:800;color:#14532d;background:#ffffffd9}.shadow-svg,.magnet-svg,.wave-svg,.cycle-svg,.orbit-svg,.plant-svg{width:min(460px,100%);height:auto;border-radius:var(--r-lg);display:block}.shadow-svg,.magnet-svg,.wave-svg{border:3px solid var(--paper-3);background:#fbfdff}.mag-mover{transition:transform .5s cubic-bezier(.3,1.4,.4,1)}.mag-attract .mag-mover{transform:translate(-28px)}.mag-repel .mag-mover{transform:translate(30px)}.track{width:100%}.track-surface{position:relative;height:92px;border-radius:var(--r-md);border:3px solid var(--paper-3);overflow:hidden}.track-surface[data-surface=ice]{background:linear-gradient(#eaf6fd,#cfe8f7)}.track-surface[data-surface=wood]{background:linear-gradient(#e8d3b5,tan)}.track-surface[data-surface=carpet]{background:linear-gradient(#e2d1e8,#c9a7d8)}.track-surface[data-surface=sand]{background:linear-gradient(#f5e6c8,#e6cf9b)}.track-zone{position:absolute;top:0;bottom:0;background:#22c55e47;border-left:3px dashed #16a34a;border-right:3px dashed #16a34a;display:grid;place-items:center;font-size:22px}.track-box{position:absolute;bottom:8px;font-size:34px;transform:translate(-50%)}.track-ruler{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:var(--ink-faint);padding:4px 2px}.surface-row{display:flex;gap:7px;flex-wrap:wrap}.surface-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 11px;border-radius:var(--r-md);border:3px solid var(--paper-3);background:#fff;cursor:pointer;font-family:inherit;font-size:20px}.surface-chip.on{border-color:#22c55e;background:var(--good-soft)}.cycle-wrap{position:relative;width:min(460px,100%)}.cycle-spot{position:absolute;transform:translate(-50%,-50%);min-width:40px;padding:5px 11px;border-radius:var(--r-full);border:3px solid var(--brand-2);background:#fffffff0;font-weight:800;font-size:12.5px;cursor:pointer;color:var(--brand)}.cycle-spot:hover{background:#fff}.cycle-spot.done{border-color:#16a34a;background:var(--good-soft);color:#14532d}.cycle-spot.no{border-color:#e11d48;background:var(--bad-soft);animation:shake .4s}.plant-stage{width:100%;display:flex;flex-direction:column;align-items:center;gap:10px}.plant-svg{border:3px solid var(--paper-3)}.plant-health{display:flex;align-items:center;gap:12px;width:min(400px,100%)}.plant-health .bar{flex:1}.exchange-board{display:grid;gap:10px;width:100%}.exchange-col{border:4px dashed var(--brand-3);border-radius:var(--r-md);background:#fff;display:flex;flex-direction:column;min-height:210px;overflow:hidden;transition:background .25s,border-color .25s}.exchange-col.receiving{border-color:var(--good);background:var(--good-soft);animation:pop-in .42s ease}.exchange-col.sending{border-color:var(--warn);background:var(--warn-soft)}.exchange-head{background:var(--paper-3);color:var(--brand);padding:7px;text-align:center;font-weight:800;font-size:13.5px}.exchange-body{flex:1;display:flex;flex-wrap:wrap;gap:4px;padding:9px;align-content:flex-start;justify-content:center}.exchange-empty{color:var(--ink-faint);font-size:12px;align-self:center}.exchange-count{text-align:center;font-size:24px;font-weight:900;color:var(--brand);padding:2px}.exchange-actions{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px;border-top:2px solid var(--paper-3);flex-wrap:wrap}.break-btn{font-size:11.5px;padding:4px 9px;min-height:30px}.eq-equation{font-family:var(--font-num);font-size:clamp(28px,6vw,42px);font-weight:900;color:var(--brand);display:flex;align-items:center;gap:16px;background:var(--paper-2);padding:12px 28px;border-radius:var(--r-lg)}.eq-equals{color:var(--ink-soft)}.eq-scene{width:min(520px,100%);padding-top:14px}.eq-beam{display:flex;justify-content:space-between;gap:18px;border-bottom:8px solid var(--brand);border-radius:4px;padding-bottom:8px;transform:rotate(0);transform-origin:center bottom;transition:transform .4s cubic-bezier(.2,1,.3,1)}.eq-scene.tipped .eq-beam{transform:rotate(-7deg)}.eq-pan{flex:1;background:var(--paper-2);border:4px solid var(--brand-3);border-radius:var(--r-lg);padding:12px;min-height:104px;display:flex;align-items:center;justify-content:center}.eq-blocks{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;align-items:center}.eq-x{width:40px;height:40px;border-radius:var(--r-sm);background:var(--brand);color:#fff;font-weight:900;font-size:20px;display:grid;place-items:center}.eq-unit{width:20px;height:20px;border-radius:5px;background:var(--maths);border:2px solid #b45309;display:block}.eq-post{width:24px;height:40px;background:var(--brand);margin:0 auto;border-radius:0 0 8px 8px}.eq-steps{margin:0;padding-left:22px;font-size:14px;color:var(--ink-soft);line-height:1.8;width:100%}.wall{position:relative;width:100%;display:flex;flex-direction:column;gap:5px}.wall-guide{position:absolute;top:-4px;bottom:-4px;width:3px;background:repeating-linear-gradient(180deg,var(--bad) 0 7px,transparent 7px 12px);z-index:2;pointer-events:none}.wall-row{display:flex;gap:2px;height:38px;position:relative}.wall-row.target{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}.wall-seg{flex:1;border:2px solid var(--brand-3);border-radius:4px;background:#fff;cursor:pointer;font-family:inherit;padding:0;display:grid;place-items:center;transition:background .14s;min-width:0}.wall-seg:hover:not(:disabled){background:var(--paper-3)}.wall-seg.on{background:var(--maths);border-color:#b45309}.wall-seg.on .wall-label{color:#fff}.wall-seg:disabled{cursor:default}.wall-label{font-size:10.5px;font-weight:800;color:var(--ink-faint);overflow:hidden;white-space:nowrap}.wall-row.matched .wall-seg.on{background:var(--good);border-color:#14532d}.wall-tick{position:absolute;right:-4px;top:50%;transform:translate(100%,-50%);font-size:12px;font-weight:800;color:var(--good);white-space:nowrap}.prob-face{font-size:44px;font-weight:900;color:var(--brand);min-height:56px;display:grid;place-items:center}.prob-chart{display:flex;align-items:flex-end;gap:8px;height:150px;width:100%;padding:0 6px;border-bottom:4px solid var(--ink)}.prob-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}.prob-bar{width:100%;background:linear-gradient(var(--brand-2),var(--brand));border-radius:6px 6px 0 0;min-height:3px;position:relative;transition:height .26s cubic-bezier(.2,.9,.3,1)}.prob-bar i{position:absolute;top:-19px;left:50%;transform:translate(-50%);font-size:11.5px;font-weight:800;font-style:normal;color:var(--ink-soft)}.prob-col b{font-size:14px}.prob-readout{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;text-align:center}.prob-readout>div{background:var(--paper-2);border-radius:var(--r-md);padding:10px 6px;display:flex;flex-direction:column;gap:2px}.prob-readout b{font-size:20px;color:var(--brand)}.angle-svg{width:min(420px,100%);height:auto;touch-action:none;background:#fbfdff;border-radius:var(--r-lg);border:3px solid var(--paper-3);cursor:crosshair}.angle-handle{cursor:grab}.angle-handle:active{cursor:grabbing}.sim-badge.angle-acute{background:var(--info-soft);color:#075985}.sim-badge.angle-right{background:var(--good-soft);color:#14532d}.sim-badge.angle-obtuse{background:var(--warn-soft);color:#78350f}.sim-badge.angle-straight{background:var(--paper-3);color:var(--brand)}.sim-badge.angle-reflex{background:var(--bad-soft);color:#9f1239}.rect-grid{display:grid;gap:3px;justify-content:center;padding:14px;background:var(--paper-2);border-radius:var(--r-lg);min-height:90px;align-content:center}.rect-cell{width:26px;height:26px;border-radius:4px;background:var(--maths);border:2px solid #b45309;display:block}.rect-readout{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%}.rect-stat{background:var(--paper-2);border-radius:var(--r-md);padding:11px;display:flex;flex-direction:column;align-items:center;gap:2px}.rect-stat b{font-size:26px;color:var(--brand)}.rect-stat.ok{background:var(--good-soft)}.rect-stat.ok b{color:#14532d}.rect-stat.no{background:var(--bad-soft)}.rect-stat.no b{color:#9f1239}.rect-controls{display:flex;gap:22px;justify-content:center;flex-wrap:wrap}.rect-stepper{display:flex;flex-direction:column;align-items:center;gap:4px}.rect-num{font-size:24px;min-width:36px;text-align:center;color:var(--brand)}.rect-found{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.machine{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;width:100%}.machine-in{display:flex;align-items:center;gap:8px}.machine-input{width:88px;text-align:center;font-size:22px;font-weight:900;font-family:var(--font-num)}.machine-box{width:128px;height:104px;border-radius:var(--r-lg);background:linear-gradient(160deg,var(--brand-2),var(--brand));color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:19px;font-weight:900;box-shadow:0 6px #4c1d95}.machine-cogs{font-size:28px;display:block}.machine-box.working .machine-cogs{animation:spin .9s linear infinite}.machine-out{display:flex;flex-direction:column;align-items:center;background:var(--paper-2);border-radius:var(--r-md);padding:12px 20px;min-width:92px}.machine-out b{font-size:28px;color:var(--brand)}.machine-table{border-collapse:collapse;font-family:var(--font-num)}.machine-table th,.machine-table td{padding:5px 22px;border:2px solid var(--paper-3);text-align:center;font-size:16px}.machine-table th{background:var(--brand);color:#fff;font-size:13px}.zoom-line{width:100%}.zoom-track{position:relative;height:84px;cursor:pointer;touch-action:none;padding:0 4px}.zoom-rule{position:absolute;left:0;right:0;top:40px;height:6px;background:var(--brand-3);border-radius:3px}.zoom-tick{position:absolute;top:28px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:3px}.zoom-mark{width:4px;height:20px;border-radius:2px;background:var(--brand-2)}.zoom-num{font-size:11px;font-weight:800;color:var(--ink-soft)}.zoom-marker{position:absolute;top:0;transform:translate(-50%);font-size:26px;transition:left .2s cubic-bezier(.2,1,.3,1)}.zoom-marker.ok{filter:drop-shadow(0 0 6px var(--good))}.zoom-marker.no{animation:shake .4s ease}.zoom-segments{display:flex;gap:3px;margin-top:4px}.zoom-seg{flex:1;border:2px dashed var(--brand-3);border-radius:6px;background:var(--paper-2);cursor:pointer;padding:5px 0;font-size:13px}.zoom-seg:hover{background:var(--paper-3);border-color:var(--brand-2)}.zoom-seg.holds{border-style:solid;border-color:var(--good);background:var(--good-soft)}.zoom-readout{font-weight:700;color:var(--ink-soft);text-align:center}@media (max-width: 560px){.rect-cell{width:18px;height:18px}.eq-x{width:32px;height:32px;font-size:16px}.machine-box{width:104px;height:88px}.machine-table th,.machine-table td{padding:4px 14px}}.act-code{display:grid;gap:14px}.code-brief{display:grid;gap:6px}.code-prompt{font-size:1.15rem;font-weight:800;color:var(--ink);margin:0}.code-goal{margin:0;font-weight:700;color:#7c2d12;background:var(--warn-soft);border-radius:var(--r-md);padding:8px 14px;display:inline-block;justify-self:start}.code-layout{display:grid;gap:14px;grid-template-columns:1fr;align-items:start}@media (min-width: 900px){.code-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.code-layout:not(.has-stage){grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}}.code-side{display:grid;gap:10px;align-content:start;min-width:0}.code-editor{display:flex;overflow:hidden;background:#1a1a2e;color:#e7e5f5;border-radius:var(--r-md);border:3px solid #2d2b55;font-family:ui-monospace,Cascadia Code,Fira Code,Consolas,monospace;font-size:clamp(.85rem,2.5vw,1rem);line-height:1.65}.code-editor.is-readonly{border-color:#3f3d70}.code-gutter{display:flex;flex-direction:column;padding:12px 0;background:#15152b;border-right:2px solid #2d2b55;-webkit-user-select:none;user-select:none}.code-lineno{padding:0 10px;text-align:right;color:#5f5c93;min-width:2.6em;font-variant-numeric:tabular-nums}.code-lineno[role=button]{cursor:pointer}.code-lineno[role=button]:hover{background:#2d2b55;color:#c4b5fd}.code-lineno.is-active{background:var(--brand);color:#fff;font-weight:800}.code-lineno.is-bad{background:var(--bad);color:#fff;font-weight:800}.code-surface{position:relative;flex:1;min-width:0;padding:12px 0}.code-paint{margin:0;white-space:pre;overflow-x:auto}.code-row{padding:0 14px;min-height:1.65em;border-left:4px solid transparent}.code-row.is-active{background:#8b5cf638;border-left-color:var(--brand-2)}.code-row.is-bad{background:#e11d4838;border-left-color:var(--bad)}.code-input{position:absolute;top:12px;right:0;bottom:12px;left:0;width:100%;height:calc(100% - 24px);padding:0 14px 0 18px;margin:0;border:0;resize:none;background:transparent;color:transparent;caret-color:#fff;font:inherit;line-height:inherit;white-space:pre;overflow:auto;outline:none;-webkit-text-fill-color:transparent}.code-input::selection{background:#8b5cf673}.tok-kw{color:#c4b5fd;font-weight:700}.tok-str{color:#86efac}.tok-num{color:#fdba74}.tok-com{color:#6b6a9a;font-style:italic}.code-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.code-tip{margin:0;font-size:.9rem;color:var(--ink-soft)}.code-ref summary{cursor:pointer;font-weight:700;color:var(--brand)}.code-ref pre{background:var(--paper-3);border-radius:var(--r-sm);padding:10px 12px;overflow-x:auto;font-size:.9rem;margin:8px 0 0}.code-out,.code-vars{background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);overflow:hidden}.code-out-head{background:var(--paper-3);padding:6px 12px;font-weight:800;font-size:.9rem;color:var(--brand)}.code-out-body{padding:10px 12px;min-height:74px;max-height:220px;overflow:auto;font-family:ui-monospace,Consolas,monospace;font-size:.95rem}.code-out-line{padding:1px 0;color:var(--ink);word-break:break-word}.code-out-empty{color:var(--ink-faint);font-style:italic}.code-error{margin-top:8px;padding:10px 12px;border-radius:var(--r-sm);background:var(--bad-soft);color:#881337;font-family:inherit}.code-hint{margin-top:6px;font-size:.9rem;color:#9f1239}.code-vars-grid{display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px}.code-vars-empty{padding:10px 12px;color:var(--ink-faint);font-style:italic}.var-box{display:grid;gap:2px;min-width:74px;border:3px solid var(--brand-3);border-radius:var(--r-sm);padding:6px 10px;background:var(--paper-2);transition:transform .2s ease,background .3s ease,border-color .3s ease}.var-name{font-size:.78rem;font-weight:800;color:var(--brand)}.var-value{font-family:ui-monospace,Consolas,monospace;font-size:1.05rem;font-weight:800;color:var(--ink)}.var-box.is-changed{background:var(--warn-soft);border-color:var(--warn);transform:scale(1.08)}.code-verdict{border-radius:var(--r-md);padding:10px 14px;font-weight:800}.code-verdict.is-good{background:var(--good-soft);color:#14532d}.code-verdict.is-bad{background:var(--warn-soft);color:#78350f}.code-hintbox,.code-moral{background:var(--info-soft);color:#075985;border-radius:var(--r-md);padding:10px 14px;font-weight:700}.code-solution{background:#1a1a2e;color:#e7e5f5;border-radius:var(--r-md);padding:12px 14px;overflow-x:auto;font-size:.9rem}.code-caption{display:flex;gap:10px;align-items:center;background:var(--brand);color:#fff;border-radius:var(--r-lg);padding:12px 18px;font-weight:700;font-size:1.02rem;min-height:58px}.cap-mascot{font-size:1.6rem;flex:none}.code-question{display:grid;gap:10px}.code-ask{margin:0;font-weight:800;font-size:1.05rem}.code-because{margin:0;background:var(--good-soft);color:#14532d;padding:10px 14px;border-radius:var(--r-md);font-weight:700}.mono{font-family:ui-monospace,Consolas,monospace}.predict-banner{background:var(--warn-soft);color:#78350f;font-weight:800;border-radius:var(--r-md);padding:8px 14px}.predict-grid{display:grid;gap:10px;grid-template-columns:1fr}@media (min-width: 620px){.predict-grid{grid-template-columns:1fr 1fr}}.predict-curtain{display:grid;place-items:center;gap:6px;text-align:center;border:3px dashed var(--brand-3);border-radius:var(--r-md);padding:28px 16px;color:var(--ink-soft)}.predict-curtain span{font-size:2.4rem}.predict-curtain p{margin:0;font-weight:700}.fix-report{background:var(--bad-soft);color:#881337;font-weight:700;border-radius:var(--r-md);padding:10px 14px}.block-editor{display:grid;gap:12px}.block-palette{display:grid;gap:10px;background:var(--paper-2);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:10px 12px}.palette-group{display:grid;gap:6px}.palette-label{font-size:.8rem;font-weight:800;color:var(--ink-soft)}.palette-items{display:flex;flex-wrap:wrap;gap:8px}.blk{--blk-bg: var(--brand);--blk-edge: #4c1d95;background:var(--blk-bg);color:#fff;border:0;border-radius:12px;box-shadow:0 4px 0 var(--blk-edge);font-family:inherit;font-weight:800;touch-action:none}.blk-blue{--blk-bg: #2563eb;--blk-edge: #1e3a8a}.blk-green{--blk-bg: #16a34a;--blk-edge: #14532d}.blk-amber{--blk-bg: #d97706;--blk-edge: #78350f}.blk-violet{--blk-bg: #7c3aed;--blk-edge: #4c1d95}.blk-orange{--blk-bg: #ea580c;--blk-edge: #7c2d12}.blk-rose{--blk-bg: #e11d48;--blk-edge: #881337}.blk-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;cursor:pointer;font-size:.92rem;transition:transform .12s ease}.blk-chip:hover{transform:translateY(-2px)}.blk-chip:active{transform:translateY(2px);box-shadow:0 1px 0 var(--blk-edge)}.block-stack{background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:10px 12px 14px;min-height:160px}.stack-head,.stack-foot{display:flex;justify-content:space-between;align-items:center;font-weight:800;color:var(--ink-faint);font-size:.9rem;padding:2px 0}.stack-empty{color:var(--ink-faint);font-style:italic;padding:18px 4px}.blk-list{display:grid;gap:6px;padding:2px 0;border-radius:var(--r-sm)}.blk-list.is-target{background:#8b5cf614}.blk-container{padding-bottom:6px}.blk-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:9px 12px;cursor:grab}.blk-emoji{font-size:1.15rem}.blk-label{font-size:.95rem}.blk.is-dragging{opacity:.4}.blk.is-running{outline:4px solid var(--warn);animation:blk-pulse .6s ease-in-out infinite alternate}@keyframes blk-pulse{to{transform:scale(1.02)}}.blk-body{margin:0 10px 0 22px;padding:6px 8px;background:#ffffff38;border-left:5px solid rgba(255,255,255,.5);border-radius:10px;min-height:34px}.blk-else{padding:2px 14px;font-size:.85rem;opacity:.9}.blk-arg{display:inline-flex;align-items:center;gap:4px}.blk-word{font-weight:700;font-size:.85rem;opacity:.92}.blk-num{min-width:1.6em;text-align:center;background:#fffffff2;color:var(--ink);border-radius:8px;padding:1px 7px;font-variant-numeric:tabular-nums}.blk-step{width:26px;height:26px;border:0;border-radius:8px;background:#ffffff47;color:#fff;font-size:1.1rem;font-weight:800;cursor:pointer;line-height:1}.blk-step:hover{background:#ffffff73}.blk-text,.blk-select{border:0;border-radius:8px;padding:3px 8px;font-family:inherit;font-weight:700;color:var(--ink);background:#fffffff2;max-width:140px}.blk-x{margin-left:auto;width:26px;height:26px;border:0;border-radius:8px;cursor:pointer;background:#0003;color:#fff;font-weight:800;line-height:1}.blk-x:hover{background:#00000061}.blk-tail{min-height:10px;position:relative}.blk-tail.is-open{min-height:30px}.blk-here{font-size:.78rem;color:var(--ink-faint);font-style:italic}.blk-drop-line{height:6px;border-radius:99px;background:var(--brand-2);margin:2px 0;animation:blk-drop .5s ease-in-out infinite alternate}@keyframes blk-drop{0%{opacity:.5}to{opacity:1}}.code-bridge{display:grid;gap:8px}.bridge-panel{background:#1a1a2e;border-radius:var(--r-md);overflow:hidden;border:3px solid #2d2b55}.bridge-tabs{display:flex;gap:0;background:#15152b}.bridge-tab{flex:1;border:0;background:transparent;color:#8f8cc4;padding:8px 12px;font-family:inherit;font-weight:800;cursor:pointer}.bridge-tab.is-on{background:#2d2b55;color:#fff}.bridge-code{margin:0;padding:12px 14px;overflow-x:auto;color:#e7e5f5;font-family:ui-monospace,Consolas,monospace;font-size:.92rem;line-height:1.6}.bridge-note{margin:0;padding:8px 14px 10px;color:#a5a1d4;font-size:.85rem;background:#15152b}.code-stage{display:grid;gap:8px;justify-items:center;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:12px}.robot-grid{position:relative;display:grid;border-radius:var(--r-sm);overflow:hidden;background:#e0f2fe;max-width:100%}.robot-cell{border:1px solid rgba(148,163,184,.45);display:grid;place-items:center;font-size:1.4rem;position:relative}.robot-cell.is-wall{background:#64748b;border-color:#475569}.robot-cell.is-painted{background:#fde68a}.robot-cell.is-goal{background:#bbf7d0}.robot-brick{position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:4px;background:repeating-linear-gradient(0deg,#94a3b8 0,#94a3b8 6px,#64748b 6px,#64748b 8px)}.robot-star{filter:drop-shadow(0 2px 3px rgba(0,0,0,.3));animation:star-bob 1.4s ease-in-out infinite alternate}@keyframes star-bob{to{transform:translateY(-3px) scale(1.08)}}.robot-bot{position:absolute;top:0;left:0;display:grid;place-items:center;transition:transform .32s cubic-bezier(.4,.1,.3,1.2);pointer-events:none}.robot-face{display:grid;place-items:center;transition:transform .28s ease}.robot-body{font-size:1.7rem}.robot-nose{position:absolute;bottom:-2px;font-size:.72rem;color:var(--brand)}.robot-bot.is-bumped .robot-body{animation:bump .3s ease 3}@keyframes bump{25%{transform:translate(-4px) rotate(-10deg)}75%{transform:translate(4px) rotate(10deg)}}.turtle-canvas{width:100%;max-width:320px;height:auto;background:var(--paper-2);border-radius:var(--r-sm)}.turtle-marker{transition:transform .25s ease}.stage-readout{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;font-size:.88rem;color:var(--ink-soft)}.stage-readout b{color:var(--ink)}.stage-line{color:var(--brand);font-weight:800}.stage-says{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.stage-bubble{background:var(--paper-3);color:var(--brand);border-radius:var(--r-full);padding:4px 12px;font-weight:700;font-size:.9rem}@media (prefers-reduced-motion: reduce){.robot-bot,.robot-face,.turtle-marker,.var-box{transition:none}.robot-star,.blk-drop-line,.blk.is-running,.robot-bot.is-bumped{animation:none}}.blk-teal{--blk-bg: #0d9488;--blk-edge: #134e4a}.blk-indigo{--blk-bg: #4f46e5;--blk-edge: #312e81}.act-geo{display:grid;gap:14px}.geo-prompt{margin:0;font-size:1.15rem;font-weight:800;color:var(--ink)}.geo-goal{margin:0;justify-self:start;background:var(--warn-soft);color:#7c2d12;border-radius:var(--r-md);padding:8px 14px;font-weight:700}.geo-note{margin:0;color:var(--ink-soft);font-weight:700;text-align:center}.geo-moral{background:var(--info-soft);color:#075985;border-radius:var(--r-md);padding:10px 14px;font-weight:700}.geo-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.geo-readout{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;font-size:.92rem;color:var(--ink-soft)}.geo-readout b{color:var(--ink);font-size:1.05rem}.geo-caption-bar{display:flex;gap:10px;align-items:center;background:var(--geography);color:#fff;border-radius:var(--r-lg);padding:12px 18px;font-weight:700;font-size:1.02rem;min-height:58px}.geo-caption-bar .cap-mascot{font-size:1.6rem;flex:none}.geo-verdict{border-radius:var(--r-md);padding:10px 14px;font-weight:800}.geo-verdict.is-good{background:var(--good-soft);color:#14532d}.geo-verdict.is-bad{background:var(--warn-soft);color:#78350f}.geo-map,.geo-globe{margin:0;display:grid;gap:6px;justify-items:center;width:100%}.geo-map svg,.geo-globe svg{width:100%;height:auto;max-width:720px;display:block}.geo-map.is-compact svg{max-width:460px}.geo-caption{font-size:.88rem;color:var(--ink-soft);font-weight:700;text-align:center}.geo-land{fill:var(--lc);stroke:#fff;stroke-width:1.2;stroke-linejoin:round;transition:fill .2s ease,filter .2s ease,transform .2s ease;transform-origin:center}.geo-land.is-clickable{cursor:pointer}.geo-land.is-clickable:hover{filter:brightness(1.12)}.geo-land.is-target{filter:drop-shadow(0 0 6px rgba(255,255,255,.95));stroke:#fff;stroke-width:2.4}.geo-land.is-found{fill:var(--good)}.geo-land.is-wrong{fill:var(--bad);animation:geo-shake .4s ease}@keyframes geo-shake{25%{transform:translate(-2px)}75%{transform:translate(2px)}}.geo-line{stroke:#0c4a6e;stroke-width:.7;opacity:.55;fill:none}.geo-line--solid{stroke-width:1.2;opacity:.85}.geo-line--dash{stroke-dasharray:3 3}.geo-line-label{font-size:4px;font-weight:800;fill:#0c4a6e;opacity:.8;font-family:inherit}.geo-land-label{font-size:6.5px;font-weight:800;fill:#1f2937;text-anchor:middle;font-family:inherit;paint-order:stroke;stroke:#ffffffd9;stroke-width:1.6}.geo-ocean-label{font-size:5px;font-weight:700;fill:#075985;font-style:italic;text-anchor:middle;font-family:inherit;opacity:.85}.geo-pin-dot{fill:var(--bad);stroke:#fff;stroke-width:1.6}.geo-pin-label{font-size:5px;font-weight:800;fill:var(--ink);text-anchor:middle;font-family:inherit;paint-order:stroke;stroke:#fff;stroke-width:1.8}.pin-wrap{cursor:crosshair}.geo-axis{stroke:#0c4a6e;stroke-width:1.5;stroke-dasharray:4 3;opacity:.7}.geo-globe-marker{fill:var(--bad);stroke:#fff;stroke-width:2}.geo-ray{stroke:#fbbf24;stroke-width:2;stroke-linecap:round;opacity:.8}.find-banner{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;background:var(--lc, var(--brand));color:#fff;border-radius:var(--r-lg);padding:10px 18px;font-weight:800;font-size:1.1rem}.find-emoji{font-size:1.6rem}.find-count{margin-left:auto;font-size:.85rem;opacity:.9}.compass-dial{width:min(280px,78vw);margin:0 auto;touch-action:none;cursor:grab}.compass-dial svg{width:100%;height:auto}.dial-face{fill:#fff;stroke:var(--ink-faint);stroke-width:3}.dial-inner{fill:var(--paper-2);stroke:var(--paper-3);stroke-width:2}.dial-point{font-size:13px;font-weight:800;fill:var(--ink-soft);text-anchor:middle;font-family:inherit}.dial-point.is-major{font-size:17px;fill:var(--ink)}.dial-point.is-target{fill:var(--good)}.dial-needle{transition:transform .25s cubic-bezier(.3,.9,.4,1.2)}.needle-n{fill:#e11d48}.needle-s{fill:#cbd5e1}.dial-hub{fill:var(--ink)}.climate-stage{display:grid;gap:12px;align-items:center}@media (min-width: 720px){.climate-stage{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}}.climate-panel{display:grid;gap:10px}.climate-badge{display:flex;gap:10px;align-items:center;border-radius:var(--r-md);padding:10px 16px;font-size:1.15rem;color:#1f2937}.climate-emoji{font-size:1.6rem}.climate-desc{margin:0;font-weight:700;color:var(--ink-soft)}.climate-bars{display:grid;gap:8px}.climate-bars label{display:grid;grid-template-columns:1fr 2fr auto;gap:8px;align-items:center;font-size:.85rem;font-weight:700;color:var(--ink-soft)}.climate-bars .bar{height:12px;background:var(--paper-3);border-radius:var(--r-full);overflow:hidden}.climate-bars .bar i{display:block;height:100%;background:#fbbf24;transition:width .2s ease}.climate-bars .bar--warm i{background:linear-gradient(90deg,#38bdf8,#fbbf24,#ef4444)}.climate-slider{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-weight:800;color:var(--ink-soft);font-size:.85rem}.climate-slider input{width:100%;accent-color:var(--geography)}.plates-stage{background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:8px}.plates-stage svg{width:100%;height:auto}.plate-mantle{fill:#7f1d1d;opacity:.85}.plate{stroke:#78350f;stroke-width:2;transition:transform .5s ease}.plate--a{fill:#a16207}.plate--b{fill:#b45309}.plate-mountain{fill:#57534e;stroke:#44403c;stroke-width:2}.plate-magma{fill:#f97316}.plate-emoji{font-size:20px;text-anchor:middle}.river-stage{background:#bae6fd;border-radius:var(--r-md);overflow:hidden}.river-stage svg{width:100%;height:auto;display:block}.river-land{fill:#86efac}.river-water{fill:#38bdf8}.river-sea{fill:#0284c7}.river-stop circle{fill:#fff;stroke:var(--ink-faint);stroke-width:2;transition:r .2s ease}.river-stop.is-passed circle{fill:var(--good);stroke:#fff}.river-stop.is-now circle{fill:var(--bad);stroke:#fff;stroke-width:3}.river-emoji{font-size:16px;text-anchor:middle}.river-panel{background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:10px 14px}.river-panel b{font-size:1.05rem}.river-panel p{margin:4px 0 0;color:var(--ink-soft);font-weight:700}@media (prefers-reduced-motion: reduce){.dial-needle,.plate,.geo-land,.climate-bars .bar i{transition:none}.geo-land.is-wrong{animation:none}}.act-fin{display:grid;gap:14px}.fin-prompt{margin:0;font-size:1.15rem;font-weight:800;color:var(--ink)}.fin-goal{margin:0;justify-self:start;background:var(--warn-soft);color:#7c2d12;border-radius:var(--r-md);padding:8px 14px;font-weight:700}.fin-note{margin:0;color:var(--ink-soft);font-size:.88rem;font-weight:600}.fin-moral{background:var(--info-soft);color:#075985;border-radius:var(--r-md);padding:10px 14px;font-weight:700}.fin-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.fin-caption-bar{display:flex;gap:10px;align-items:center;background:#047857;color:#fff;border-radius:var(--r-lg);padding:12px 18px;font-weight:700;font-size:1.02rem;min-height:58px}.fin-caption-bar .cap-mascot{font-size:1.6rem;flex:none}.fin-verdict{border-radius:var(--r-md);padding:12px 16px;font-weight:800}.fin-verdict.is-good{background:var(--good-soft);color:#14532d}.fin-verdict.is-bad{background:var(--warn-soft);color:#78350f}.fin-smallprint{margin-top:8px;font-size:.78rem;font-weight:600;opacity:.8}.fin-readout{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;font-size:.88rem;color:var(--ink-soft)}.fin-readout b{color:var(--ink);font-size:1.02rem}.fin-readout .is-good b{color:var(--good)}.fin-readout .is-bad b{color:var(--bad)}.fin-sliders{display:grid;gap:10px}.fin-sliders label{display:grid;grid-template-columns:8em 1fr 3.5em;gap:10px;align-items:center;font-weight:700;color:var(--ink-soft);font-size:.88rem}.fin-sliders input{width:100%;accent-color:var(--good)}.fin-sliders b{text-align:right;color:var(--ink)}.fin-chart{margin:0;display:grid;gap:6px}.fin-chart svg{width:100%;height:auto;max-width:560px;margin:0 auto;display:block;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md)}.fin-grid{stroke:var(--paper-3);stroke-width:1}.fin-axis-line{stroke:var(--ink-faint);stroke-width:1}.fin-axis{font-size:7px;font-weight:700;fill:var(--ink-faint);text-anchor:end;font-family:inherit}.fin-axis--x{text-anchor:middle}.fin-line{fill:none;stroke:var(--c);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.fin-legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.fin-key{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:var(--ink-soft)}.fin-key i{width:14px;height:4px;border-radius:2px;background:var(--c)}.fin-key b{color:var(--ink)}.fin-caption{font-size:.85rem;color:var(--ink-soft);text-align:center;font-weight:700}.fin-figure{display:grid;place-items:center;font-size:2.4rem;gap:8px}.budget-income{display:flex;flex-wrap:wrap;gap:12px;align-items:baseline;justify-content:center;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:10px 16px;font-weight:700;color:var(--ink-soft)}.budget-income b{color:var(--ink);font-size:1.25rem}.budget-income .is-good b{color:var(--good)}.budget-jars{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width: 640px){.budget-jars{grid-template-columns:repeat(3,1fr)}}.jar{display:grid;gap:8px;align-content:start;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:12px}.jar.is-short{border-color:var(--bad)}.jar-head{display:flex;gap:8px;align-items:center;font-size:1rem}.jar-emoji{font-size:1.4rem}.jar-pct{margin-left:auto;font-weight:800;color:var(--jc)}.jar-glass{position:relative;height:90px;border-radius:var(--r-sm);background:var(--paper-2);border:2px solid var(--paper-3);overflow:hidden;display:grid;place-items:center}.jar-fill{position:absolute;left:0;right:0;bottom:0;background:var(--jc);opacity:.28;transition:height .25s ease}.jar-amount{position:relative;font-weight:800;color:var(--ink)}.jar-desc{margin:0;font-size:.78rem;color:var(--ink-soft);font-weight:600}.jar-warn{margin:0;font-size:.78rem;color:var(--bad);font-weight:800}.jar-buttons{display:flex;gap:8px;justify-content:center}.jar-buttons .btn{min-width:56px}.infl-stage{display:grid;gap:10px;grid-template-columns:1fr}@media (min-width: 640px){.infl-stage{grid-template-columns:repeat(3,1fr)}}.infl-panel{display:grid;gap:4px;text-align:center;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:10px}.infl-label{font-size:.78rem;font-weight:700;color:var(--ink-soft)}.infl-amount{font-size:1.3rem;color:var(--ink)}.infl-amount.is-bad{color:var(--bad)}.infl-amount small{font-size:.7rem;color:var(--ink-faint);font-weight:700}.infl-loaves{display:flex;flex-wrap:wrap;gap:3px;justify-content:center;font-size:1.3rem;min-height:2rem}.infl-more{font-size:.9rem;font-weight:800;color:var(--ink-soft);align-self:center}.invest-bar{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;justify-content:center;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:10px 16px;font-weight:700;color:var(--ink-soft)}.invest-bar b{color:var(--ink);font-size:1.3rem}.invest-bar .is-good{color:var(--good)}.invest-bar .is-bad{color:var(--bad)}.invest-progress{position:relative;height:14px;border-radius:var(--r-full);background:var(--paper-3);overflow:visible}.invest-progress-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,#4ade80,#16a34a);transition:width .4s cubic-bezier(.3,.9,.4,1.2)}.invest-goal-flag{position:absolute;right:-12px;top:-6px;font-size:1.1rem}.asset-grid{display:grid;gap:10px;grid-template-columns:1fr}@media (min-width: 560px){.asset-grid{grid-template-columns:1fr 1fr}}@media (min-width: 900px){.asset-grid{grid-template-columns:repeat(3,1fr)}}.asset{display:grid;gap:6px;align-content:start;background:var(--paper);border:3px solid var(--paper-3);border-left:8px solid var(--ac);border-radius:var(--r-md);padding:10px 12px}.asset-head{display:flex;gap:8px;align-items:center}.asset-emoji{font-size:1.4rem}.asset-desc{margin:0;font-size:.8rem;color:var(--ink-soft);font-weight:600}.asset-stats{display:flex;gap:12px;font-size:.78rem;color:var(--ink-soft);font-weight:700}.asset-stats b{color:var(--ac)}.asset-amount{font-size:1.15rem;font-weight:800;color:var(--ink);text-align:center}.asset-buttons{display:flex;gap:8px;justify-content:center}.asset-buttons .btn{min-width:56px}.holdings{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.holding{font-size:.82rem;font-weight:700;color:var(--ink-soft);background:var(--paper);border:2px solid var(--ac);border-radius:var(--r-full);padding:4px 12px}.holding b{color:var(--ink)}.year-log{display:grid;gap:6px;max-height:220px;overflow:auto}.year-row{display:grid;grid-template-columns:4.5em 8.5em 1fr auto;gap:8px;align-items:center;background:var(--paper);border-radius:var(--r-sm);padding:6px 10px;font-size:.82rem;font-weight:700;color:var(--ink-soft);border-left:5px solid var(--paper-3)}.year-row.is-crash{border-left-color:var(--bad);background:var(--bad-soft)}.year-row.is-boom{border-left-color:var(--good);background:var(--good-soft)}.year-row.is-inflation{border-left-color:var(--warn);background:var(--warn-soft)}.year-note{color:var(--ink-faint);font-weight:600}.year-row b{color:var(--ink)}@media (max-width: 560px){.year-row{grid-template-columns:3.5em 1fr auto}.year-note{display:none}}@media (prefers-reduced-motion: reduce){.jar-fill,.invest-progress-fill{transition:none}}.act-eng{display:grid;gap:14px}.eng-prompt{margin:0;font-size:1.15rem;font-weight:800;color:var(--ink)}.eng-goal{margin:0;justify-self:start;background:var(--warn-soft);color:#7c2d12;border-radius:var(--r-md);padding:8px 14px;font-weight:700}.eng-note{margin:0;color:var(--ink-soft);font-size:.88rem;text-align:center;font-weight:600}.eng-moral{background:var(--info-soft);color:#075985;border-radius:var(--r-md);padding:10px 14px;font-weight:700}.eng-controls{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.eng-readout{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;font-size:.9rem;color:var(--ink-soft)}.eng-readout b{color:var(--ink)}.eng-readout .is-bad b{color:var(--bad)}.eng-caption-bar{display:flex;gap:10px;align-items:center;background:var(--english);color:#fff;border-radius:var(--r-lg);padding:12px 18px;font-weight:700;font-size:1.02rem;min-height:58px}.eng-caption-bar .cap-mascot{font-size:1.6rem;flex:none}.eng-verdict{border-radius:var(--r-md);padding:12px 16px;font-weight:800}.eng-verdict.is-good{background:var(--good-soft);color:#14532d}.eng-verdict.is-bad{background:var(--warn-soft);color:#78350f}.eng-stage{display:grid;gap:12px;place-items:center;min-height:120px;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:18px 14px}.eng-figure{font-size:2.6rem}.eng-text{margin:0;font-size:1.15rem;line-height:1.8;color:var(--ink);text-align:center;max-width:40ch}.eng-sliders{display:grid;gap:8px}.eng-sliders label{display:grid;gap:6px;font-weight:700;color:var(--ink-soft);font-size:.88rem}.eng-sliders input{width:100%;accent-color:var(--english)}.blend-row,.blend-track{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}.blend-track{gap:var(--gap, 20px);transition:gap .15s linear}.blend-part{display:grid;place-content:center;min-width:62px;padding:12px 16px;border:3px solid var(--english);border-radius:var(--r-md);background:var(--paper);color:var(--english);font-size:clamp(1.6rem,6vw,2.4rem);font-weight:800;font-family:ui-rounded,Segoe UI,system-ui,sans-serif;opacity:.25;transform:scale(.94);transition:opacity .25s ease,transform .25s ease,background .25s ease;cursor:pointer}.blend-part.is-on{opacity:1;transform:scale(1)}.blend-part.is-joined{background:var(--english);color:#fff;border-radius:6px}.blend-arrow{font-size:1.6rem;color:var(--ink-faint)}.blend-word,.blend-result{font-size:clamp(2rem,9vw,3.2rem);font-weight:800;color:var(--good);letter-spacing:.04em;font-family:ui-rounded,Segoe UI,system-ui,sans-serif;animation:eng-pop .35s ease}@keyframes eng-pop{0%{transform:scale(.7);opacity:0}}.sentence-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.sentence-word{font-size:clamp(1.1rem,4vw,1.6rem);font-weight:700;color:var(--ink);background:var(--paper-2);border-radius:var(--r-sm);padding:6px 12px;opacity:.2;transition:opacity .3s ease}.sentence-word.is-on{opacity:1}.build-picture{font-size:3.4rem;text-align:center}.build-slots{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.build-slot{display:grid;place-content:center;width:clamp(46px,12vw,62px);height:clamp(56px,14vw,72px);border:3px dashed var(--brand-3);border-radius:var(--r-md);background:var(--paper);font-size:clamp(1.6rem,6vw,2.2rem);font-weight:800;color:var(--ink);font-family:ui-rounded,Segoe UI,system-ui,sans-serif}.build-slot.is-filled{border-style:solid;border-color:var(--good);background:var(--good-soft)}.build-slot.is-now{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-3)}.build-tiles{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.build-tile{width:clamp(46px,12vw,60px);height:clamp(46px,12vw,60px);border:0;border-radius:var(--r-md);background:var(--brand);color:#fff;box-shadow:0 4px #4c1d95;font-family:ui-rounded,Segoe UI,system-ui,sans-serif;font-size:clamp(1.3rem,5vw,1.8rem);font-weight:800;cursor:pointer;transition:transform .1s ease}.build-tile:hover{transform:translateY(-2px)}.build-tile:active{transform:translateY(3px);box-shadow:0 1px #4c1d95}.build-tile.is-wrong{background:var(--bad);box-shadow:0 4px #881337;animation:eng-shake .3s ease}@keyframes eng-shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.punct-sentence{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:16px;font-size:clamp(1.1rem,4vw,1.5rem);line-height:2.2}.punct-group{display:inline-flex;align-items:baseline}.punct-word{font-weight:700;color:var(--ink)}.punct-slot{min-width:26px;height:30px;margin:0 1px;border:2px dashed var(--paper-3);border-radius:6px;background:transparent;color:var(--ink-faint);font-family:inherit;font-size:1.1rem;font-weight:800;cursor:pointer;line-height:1}.punct-slot:hover{border-color:var(--brand-3);background:var(--paper-2)}.punct-slot.is-set{border-style:solid;border-color:var(--brand);background:var(--brand);color:#fff}.punct-slot.is-wrong{border-color:var(--bad);background:var(--bad);color:#fff}.punct-slot.is-missed{border-color:var(--warn);background:var(--warn-soft);color:#78350f}.tag-sentence{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:16px}.tag-word{border:3px solid var(--paper-3);border-radius:var(--r-md);background:var(--paper);color:var(--ink);font-family:inherit;font-size:clamp(1rem,3.6vw,1.3rem);font-weight:700;padding:8px 14px;cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .1s ease}.tag-word:hover:not(:disabled){transform:translateY(-2px);border-color:var(--wc)}.tag-word.is-right{background:var(--wc);border-color:var(--wc);color:#fff}.tag-word.is-wrong{background:var(--bad-soft);border-color:var(--bad);color:#881337}.read-passage{background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:16px 20px;display:grid;gap:10px;justify-items:start}.read-passage h3{margin:0;color:var(--english);font-size:1.1rem}.read-passage p{margin:0;font-size:clamp(1rem,3.4vw,1.15rem);line-height:1.9;color:var(--ink);max-width:62ch}.read-question{display:grid;gap:12px}.read-kind{justify-self:start;font-size:.8rem;font-weight:800;border-radius:var(--r-full);padding:4px 12px}.read-kind.is-retrieval{background:var(--info-soft);color:#075985}.read-kind.is-inference{background:var(--warn-soft);color:#78350f}.read-ask{margin:0;font-size:1.08rem;font-weight:800;color:var(--ink)}.read-options{display:grid;gap:10px;grid-template-columns:1fr}@media (min-width: 620px){.read-options{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion: reduce){.blend-part,.blend-track,.sentence-word,.build-tile,.tag-word{transition:none}.blend-word,.blend-result,.build-tile.is-wrong{animation:none}}.race{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:18px 16px 14px;border:3px solid var(--paper-3)}.race--night{background:linear-gradient(180deg,#1e1b4b,#4c1d95);color:#fff}.race--day{background:linear-gradient(180deg,#bae6fd,#dcfce7)}.race--sea{background:linear-gradient(180deg,#7dd3fc,#0ea5e9)}.race-scene{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.race-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;opacity:.8;animation:twinkle 2.5s ease-in-out infinite alternate}@keyframes twinkle{to{opacity:.2}}.race-hills{position:absolute;left:0;right:0;bottom:0;height:46%;background:radial-gradient(60px 40px at 15% 100%,#86efac 60%,transparent 61%),radial-gradient(90px 55px at 48% 100%,#4ade80 60%,transparent 61%),radial-gradient(70px 45px at 82% 100%,#86efac 60%,transparent 61%)}.race-waves{position:absolute;left:0;right:0;bottom:0;height:30%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.35) 0 14px,transparent 14px 30px);opacity:.5}.race-track{position:relative;height:54px;margin:22px 34px 8px 6px;background:#ffffff59;border-radius:var(--r-full);box-shadow:inset 0 2px 6px #0f172a2e}.race-fill{position:absolute;inset:0 auto 0 0;border-radius:var(--r-full);background:linear-gradient(90deg,#ffffff8c,#ffffffd9);transition:width .32s cubic-bezier(.3,.9,.4,1.2)}.race-mile{position:absolute;top:8px;bottom:8px;width:3px;background:#0f172a38;border-radius:3px}.race-mile.is-passed{background:var(--good)}.race-racer{position:absolute;top:50%;font-size:2.1rem;line-height:1;transform:translate(-50%,-50%);transition:left .32s cubic-bezier(.3,.9,.4,1.2);filter:drop-shadow(0 3px 4px rgba(15,23,42,.35))}.race-boost{position:absolute;left:100%;top:4px;font-size:.9rem}.race-goal{position:absolute;right:-30px;top:50%;transform:translateY(-50%);font-size:2rem}.race-meta{display:flex;justify-content:space-between;align-items:center;font-weight:800;font-size:.9rem;padding:0 6px}.race-streak{color:var(--warn)}.race--night .race-streak{color:#fde047}.race-word{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;font-family:ui-monospace,Consolas,monospace;font-size:clamp(1.8rem,8vw,3rem);font-weight:800}.race-word .ch{padding:2px 6px;border-radius:8px;color:var(--ink-faint)}.race-word .ch.is-done{color:var(--good)}.race-word .ch.is-now{background:var(--brand);color:#fff}.act-quest{display:grid;gap:14px}.quest-question{display:grid;gap:12px}.quest-ask{margin:0;font-size:clamp(1.05rem,3vw,1.3rem);font-weight:800;color:var(--ink);text-align:center}.act-type{display:grid;gap:14px}.type-brief{display:grid;gap:6px}.type-prompt{margin:0;font-size:1.15rem;font-weight:800;color:var(--ink)}.type-goal{margin:0;justify-self:start;display:inline-block;background:var(--warn-soft);color:#7c2d12;border-radius:var(--r-md);padding:8px 14px;font-weight:700}.type-caption{display:flex;gap:10px;align-items:center;background:var(--typing);color:#fff;border-radius:var(--r-lg);padding:12px 18px;font-weight:700;font-size:1.02rem;min-height:58px}.type-caption .cap-mascot{font-size:1.6rem;flex:none}.type-tip{margin:0;color:var(--ink-soft);font-size:.92rem;text-align:center}.type-moral{background:var(--info-soft);color:#075985;border-radius:var(--r-md);padding:10px 14px;font-weight:700}.type-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center}.typing-stage{display:grid;gap:10px;justify-items:center;grid-template-columns:minmax(0,1fr);width:100%}.kbd{display:grid;gap:6px;width:100%;max-width:min(780px,100%);grid-template-columns:minmax(0,1fr);background:linear-gradient(180deg,#e2e8f0,#cbd5e1);border-radius:18px;padding:12px;box-shadow:inset 0 2px 6px #ffffffb3,0 8px #94a3b8,0 18px 30px -18px #0f172ab3;-webkit-user-select:none;user-select:none}.kbd.is-compact{max-width:620px;padding:8px;gap:4px}.kbd-row{display:flex;gap:6px;min-width:0}.kbd.is-compact .kbd-row{gap:4px}.kbd-key{position:relative;flex:1 1 0;min-width:0;aspect-ratio:1 / 1;max-height:46px;display:grid;place-content:center;gap:0;border:0;border-radius:9px;background:#fff;box-shadow:0 3px #94a3b8,inset 0 -3px 6px #94a3b840;font-family:inherit;font-weight:800;font-size:.95rem;color:var(--ink);cursor:pointer;transition:transform .06s ease,background .15s ease,box-shadow .06s ease;border-bottom:5px solid var(--fc, transparent)}.kbd.is-compact .kbd-key{max-height:34px;font-size:.8rem;border-radius:7px}.kbd-key.is-special{aspect-ratio:auto;font-size:.72rem;color:var(--ink-soft);background:#f1f5f9}.kbd-key.is-space{aspect-ratio:auto;height:34px}.kbd-key.is-home{background:#fff7ed}.kbd-face{line-height:1;text-transform:none}.kbd-upper{position:absolute;top:3px;left:6px;font-size:.62rem;color:var(--ink-faint);font-weight:700}.kbd-bump{position:absolute;bottom:6px;left:50%;transform:translate(-50%);width:14px;height:3px;border-radius:3px;background:var(--ink-faint)}.kbd-key.is-dim{opacity:.32;filter:grayscale(1)}.kbd-key.is-target{background:var(--fc, var(--brand));color:#fff;transform:translateY(2px);box-shadow:0 1px #0f172a59,0 0 0 4px #ffffffd9,0 0 0 8px var(--fc, var(--brand));opacity:1;filter:none;animation:kbd-call 1.1s ease-in-out infinite;z-index:2}.kbd-key.is-target .kbd-upper{color:#ffffffd9}@keyframes kbd-call{50%{box-shadow:0 1px #0f172a59,0 0 0 6px #ffffffe6,0 0 0 12px var(--fc, var(--brand))}}.kbd-key.is-shift{background:var(--brand-3);color:var(--brand);opacity:1;filter:none}.kbd-key.is-down{transform:translateY(3px);box-shadow:0 0 #94a3b8;background:var(--paper-3)}.kbd-key.is-wrong{background:var(--bad);color:#fff;opacity:1;filter:none;animation:kbd-shake .3s ease}@keyframes kbd-shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.hands{width:100%;max-width:min(470px,100%);display:grid;gap:4px;justify-items:center}.hands svg{width:100%;height:auto}.hand-palm{fill:#fde8d7;stroke:#e5c3a6;stroke-width:3}.hand-finger rect{fill:#fde8d7;stroke:#e5c3a6;stroke-width:3;transition:y .16s ease,height .16s ease,fill .16s ease}.hand-finger.is-active rect{fill:var(--fc);stroke:#fff;stroke-width:3;filter:drop-shadow(0 0 10px var(--fc))}.hand-label{font-family:inherit;font-weight:800;font-size:13px;fill:#a1866c;text-anchor:middle;pointer-events:none}.hand-finger.is-active .hand-label{fill:#fff}.hand-thumb rect{fill:#fde8d7}.hand-shift rect{fill:var(--brand-3);stroke:var(--brand);stroke-width:3}.hand-shift .hand-label{fill:var(--brand);font-size:15px}.hands-caption{margin:0;font-weight:800;color:var(--ink-soft);text-align:center;font-size:.95rem;min-height:1.4em}.finger-legend{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.legend-chip{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:800;color:var(--ink-soft);background:var(--paper);border-radius:var(--r-full);padding:3px 9px;border:2px solid var(--paper-3)}.legend-chip i{width:10px;height:10px;border-radius:50%;background:var(--fc)}.type-line,.type-paper{background:var(--paper);border:3px solid var(--paper-3);border-radius:var(--r-md);padding:16px 18px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:clamp(1.15rem,3.6vw,1.7rem);line-height:1.9;letter-spacing:.06em;word-break:break-word;min-height:68px}.act-type--line.is-big .type-line{font-size:clamp(1.6rem,6vw,2.6rem)}.type-line .ch{border-radius:5px;padding:2px 1px;transition:background .12s ease,color .12s ease}.type-line .ch.is-space{white-space:pre}.type-line .ch.is-done{color:var(--good)}.type-line .ch.is-now{background:var(--brand);color:#fff;box-shadow:0 0 0 3px var(--brand-3)}.type-line .ch.is-now.is-space{background:var(--brand)}.type-line .ch.is-wrong{background:var(--bad);animation:kbd-shake .25s ease}.type-paper{font-size:clamp(1.3rem,4vw,2rem);display:flex;align-items:center}.paper-caret{display:inline-block;width:3px;height:1.3em;margin-left:2px;background:var(--brand);animation:caret 1s steps(2) infinite}@keyframes caret{50%{opacity:0}}.type-progress{height:12px;background:var(--paper-3);border-radius:var(--r-full);overflow:hidden}.type-progress-fill{height:100%;border-radius:var(--r-full);background:linear-gradient(90deg,var(--brand-2),var(--brand));transition:width .2s ease}.type-readout{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}.type-readout .stat{font-size:.92rem;color:var(--ink-soft)}.type-readout .stat b{color:var(--ink);font-size:1.1rem}.type-readout .stat.is-good b{color:var(--good)}.type-readout .stat.is-bad b{color:var(--bad)}.type-verdict{border-radius:var(--r-md);padding:12px 16px;font-weight:800}.type-verdict.is-good{background:var(--good-soft);color:#14532d}.type-verdict.is-bad{background:var(--warn-soft);color:#78350f}.find-target{display:grid;justify-items:center;gap:4px}.find-letter{display:grid;place-content:center;width:clamp(96px,26vw,140px);height:clamp(96px,26vw,140px);border-radius:28px;background:var(--fc, var(--brand));color:#fff;font-size:clamp(3rem,12vw,4.6rem);font-weight:800;line-height:1;box-shadow:0 8px #0f172a2e;animation:find-pop .3s ease}@keyframes find-pop{0%{transform:scale(.85)}}.find-count{font-weight:800;color:var(--ink-faint)}.find-done{font-size:4rem}@media (max-width: 620px){.kbd{padding:8px;gap:3px}.kbd-row{gap:3px}.kbd-key{border-radius:6px;font-size:.7rem;border-bottom-width:3px;overflow:hidden}.kbd-key.is-special{font-size:.5rem;letter-spacing:-.03em}.kbd-key.is-space{height:26px}.kbd-upper{display:none}.kbd-bump{width:8px;height:2px;bottom:3px}}@media (prefers-reduced-motion: reduce){.kbd-key.is-target,.race-star,.find-letter,.paper-caret{animation:none}.race-racer,.race-fill,.hand-finger rect{transition:none}}.placement{max-width:720px;margin:0 auto;padding:20px 16px 48px}.place-card{background:var(--paper);border:2px solid var(--paper-3);border-radius:24px;padding:28px 24px 24px;text-align:center;box-shadow:var(--shadow-md);display:grid;justify-items:center;gap:14px}.place-card h1{margin:0;font-size:clamp(1.4rem,4.5vw,2rem);line-height:1.15}.place-lead{margin:0;max-width:46ch;color:var(--ink-soft);font-size:1.02rem;line-height:1.5}.place-points{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:8px;text-align:left;font-size:.94rem;color:var(--ink-soft)}.place-points li{background:var(--paper-2);border-radius:12px;padding:10px 14px}.place-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:6px}.place-bar{display:flex;align-items:center;gap:12px;margin-bottom:18px}.place-bar>.bar,.place-bar>.bar-thin{flex:1;min-width:0}.place-question{background:var(--paper);border:2px solid var(--paper-3);border-radius:22px;padding:20px 18px;box-shadow:var(--shadow-sm)}.place-question>.tiny{display:block;text-align:center;margin-bottom:10px;letter-spacing:.04em;text-transform:uppercase}.place-ask{display:flex;align-items:center;gap:10px;background:var(--paper-2);border-radius:16px;padding:12px 16px;margin-bottom:16px}.place-ask p{margin:0;flex:1;min-width:0;font-size:1.05rem;font-weight:600;line-height:1.35}.lesson-stage.is-moving{opacity:.45;transform:translate(-10px);transition:opacity .18s ease,transform .18s ease}.place-hint{text-align:center;margin:16px 0 0}.place-result{display:grid;justify-items:center;gap:2px;background:var(--paper-2);border-radius:18px;padding:16px 22px;min-width:220px}.place-emoji{font-size:2.4rem}.place-result b{font-size:1.25rem}.place-sub{margin:10px 0 0;font-size:.95rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.place-choices{display:grid;gap:10px;width:100%;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.place-choice{display:grid;justify-items:center;gap:3px;padding:16px 12px;border:2px solid var(--paper-3);border-radius:18px;background:var(--paper);cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;font:inherit;color:inherit;text-align:center}.place-choice:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}.place-choice.is-suggested{border-color:var(--good);background:color-mix(in srgb,var(--good) 8%,var(--paper))}.place-choice-emoji{font-size:1.7rem}.course-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:14px}.course-card{background:var(--paper);border:2px solid var(--paper-3);border-left:6px solid var(--sc, var(--paper-3));border-radius:18px;padding:14px 16px;display:grid;gap:12px;align-content:start}.course-card.is-off{opacity:.62;border-left-color:var(--paper-3);background:var(--paper-2)}.course-head{display:flex;align-items:center;gap:12px}.course-head .grow{display:grid;gap:1px;min-width:0}.course-head .grow b{font-size:1.05rem}.course-emoji{font-size:1.8rem}.switch{display:grid;justify-items:center;gap:3px;cursor:pointer;flex-shrink:0}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:46px;height:26px;border-radius:13px;background:var(--paper-3);border:2px solid var(--paper-3);display:block;position:relative;transition:background .15s ease,border-color .15s ease}.switch-knob{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--paper);box-shadow:0 1px 3px #00000040;transition:transform .15s ease}.switch input:checked+.switch-track{background:var(--good);border-color:var(--good)}.switch input:checked+.switch-track .switch-knob{transform:translate(20px)}.switch input:focus-visible+.switch-track{outline:3px solid var(--brand-2);outline-offset:2px}.course-level{display:grid;gap:1px;background:var(--paper-2);border-radius:12px;padding:10px 12px}.course-review{border-radius:12px;padding:10px 12px;font-size:.9rem;display:grid;gap:8px;justify-items:start;line-height:1.4}.course-review.is-right{background:color-mix(in srgb,var(--good) 12%,transparent)}.course-review.is-move-up{background:color-mix(in srgb,var(--info) 14%,transparent)}.course-review.is-move-down{background:color-mix(in srgb,var(--warn) 16%,transparent)}.course-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between}.course-buttons{display:flex;gap:8px;flex-wrap:wrap}.course-levels{display:grid;gap:8px;border-top:1px dashed var(--paper-3);padding-top:12px}.level-pick{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;text-align:left;padding:9px 12px;border:2px solid var(--paper-3);border-radius:12px;background:var(--paper);cursor:pointer;font:inherit;color:inherit}.level-pick>span:first-child{grid-row:1 / 3;font-size:1.4rem}.level-pick:hover{border-color:var(--sc, var(--brand))}.level-pick.is-on{border-color:var(--good);background:color-mix(in srgb,var(--good) 9%,var(--paper))}.trial-presets{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.trial-chip{padding:7px 14px;border-radius:999px;border:2px solid var(--paper-3);background:var(--paper);cursor:pointer;font:inherit;font-size:.9rem;color:inherit}.trial-chip.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,var(--paper));font-weight:600}.check-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;cursor:pointer}.check-row input{margin-top:3px;width:18px;height:18px}.check-row>span{display:grid;gap:2px}.trial-preview{margin-top:14px;display:grid;gap:6px}.trial-preview-card{border:2px dashed var(--paper-3);border-radius:14px;padding:14px 16px;background:var(--paper-2);display:grid;gap:4px}.access-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--paper-3);border-radius:12px;background:var(--paper-2)}.access-row .grow{display:grid;gap:1px;min-width:160px}.access-buttons{display:flex;gap:6px;flex-wrap:wrap}.scope-note.warn{background:color-mix(in srgb,var(--warn) 14%,transparent);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.trial-banner{display:flex;align-items:center;gap:10px;padding:9px 16px;background:color-mix(in srgb,var(--brand) 14%,var(--paper));border-bottom:1px solid var(--paper-3);font-size:.9rem}.trial-banner>span:first-child{flex:1;min-width:0}.trial-banner.is-over{background:color-mix(in srgb,var(--warn) 18%,var(--paper))}.trial-gate{max-width:620px;margin:0 auto;padding:40px 16px;display:grid;place-items:center;min-height:100vh}.trial-card{background:var(--paper);border:2px solid var(--paper-3);border-radius:26px;padding:32px 26px;text-align:center;display:grid;justify-items:center;gap:14px;box-shadow:var(--shadow-md)}.trial-emoji{font-size:3rem}.trial-card h1{margin:0;font-size:clamp(1.4rem,5vw,2rem)}.trial-lead{margin:0;max-width:42ch;color:var(--ink-soft);line-height:1.5}.trial-price{font-size:1.15rem;font-weight:700;background:color-mix(in srgb,var(--good) 12%,var(--paper-2));border-radius:14px;padding:14px 22px}.trial-contact{margin:0}.trial-keep{background:var(--paper-2);border-radius:14px;padding:12px 16px;max-width:44ch}.trial-keep p{margin:0}.trial-actions{display:grid;justify-items:center;gap:8px;margin-top:4px}.trial-why{max-width:44ch;margin:0;line-height:1.5;text-align:left;background:var(--paper-2);border-radius:12px;padding:12px 14px}@media (max-width: 480px){.place-card{padding:22px 16px 18px;border-radius:20px}.place-choices,.course-grid{grid-template-columns:1fr}.access-row{align-items:flex-start}}.invite-hero{display:flex;flex-wrap:wrap;gap:18px;align-items:center}.invite-hero-text{flex:1 1 260px;min-width:0}.invite-hero-text h2{margin:0 0 6px}.invite-hero-text p{margin:0;line-height:1.5}.invite-code{flex:0 1 240px;display:grid;justify-items:center;gap:2px;padding:16px 20px;border:3px dashed var(--brand-3);border-radius:20px;background:var(--paper-2);cursor:pointer;font:inherit;color:inherit;transition:transform .12s ease,border-color .12s ease,background .12s ease}.invite-code:hover{transform:translateY(-2px);border-color:var(--brand);background:var(--paper-3)}.invite-code b{font-family:var(--font-num);white-space:nowrap;font-size:clamp(1.25rem,4.4vw,1.9rem);letter-spacing:.06em;color:var(--brand);line-height:1.1}.invite-code>.tiny:first-child{letter-spacing:.12em;color:var(--ink-faint)}.invite-offer{display:flex;gap:14px;align-items:flex-start;background:color-mix(in srgb,var(--good) 8%,var(--paper));border:2px solid color-mix(in srgb,var(--good) 28%,transparent)}.invite-offer-emoji{font-size:1.8rem;line-height:1}.invite-offer b{display:block;margin-bottom:4px}.invite-offer p{margin:0;line-height:1.45}.invite-message{margin:12px 0;padding:14px 16px;background:var(--paper-2);border-radius:14px;border-left:4px solid var(--brand-3);white-space:pre-wrap;word-break:break-word;font-family:var(--font);font-size:.95rem;line-height:1.5;-webkit-user-select:text;user-select:text}.invite-input{font-family:var(--font-num);font-size:1.15rem;letter-spacing:.12em;text-transform:uppercase;max-width:210px;align-self:center;width:auto}.good-text{color:var(--good)}.warn-text{color:#b45309}.ref-modes{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:14px 0}.ref-mode{display:grid;gap:3px;text-align:left;padding:13px 15px;border:2px solid var(--paper-3);border-radius:14px;background:var(--paper);cursor:pointer;font:inherit;color:inherit}.ref-mode:hover{border-color:var(--brand-3)}.ref-mode.on{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 7%,var(--paper))}.ref-numbers{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.ref-preview{margin-top:14px;padding:12px 15px;border-radius:12px;background:var(--paper-2);display:grid;gap:3px}.ref-row{border:1px solid var(--paper-3);border-radius:14px;padding:12px 14px;background:var(--paper-2);display:grid;gap:8px}.ref-row.is-flagged{border-color:color-mix(in srgb,var(--warn) 55%,transparent);background:color-mix(in srgb,var(--warn) 10%,var(--paper))}.ref-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.ref-row-head .grow{display:grid;gap:1px;min-width:150px}.ref-links{list-style:none;margin:0;padding:0;display:grid;gap:5px}.ref-links li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:6px 10px;border-radius:10px;background:var(--paper)}@media (max-width: 480px){.invite-hero{flex-direction:column;align-items:stretch}.invite-code{flex:1 1 auto}.invite-tab .seg{width:100%}.invite-tab .seg-btn{flex:1}.ref-modes,.ref-numbers{grid-template-columns:1fr}}.admin{max-width:1080px;margin:0 auto;padding:16px}.admin-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 0 14px}.admin-mark{font-size:1.9rem}.admin-mark.big{font-size:3rem}.admin-gate{display:grid;place-items:center;min-height:100vh;padding:20px}.admin-gate-card{max-width:420px;width:100%;display:grid;justify-items:center;text-align:center}.admin-gate-card h1{margin:8px 0 0;font-size:1.5rem}.admin-gate-card .field{width:100%;text-align:left}.admin-gate-card .btn{width:100%}.admin-code{display:block;margin-top:6px;padding:8px 10px;border-radius:8px;background:var(--paper-3);font-family:var(--font-num);font-size:.75rem;word-break:break-all}.admin-loading{text-align:center;color:var(--ink-faint)}.spin{display:inline-block;animation:admin-spin 1s linear infinite}@keyframes admin-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spin{animation:none}}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.admin-stat{background:var(--paper);border:2px solid var(--paper-3);border-radius:16px;padding:16px;display:grid;justify-items:center;gap:2px;text-align:center}.admin-stat b{font-size:1.7rem;line-height:1.1}.admin-stat-emoji{font-size:1.5rem}.admin-stat.is-good{border-color:color-mix(in srgb,var(--good) 40%,transparent)}.admin-stat.is-warn{border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.family-row{background:var(--paper);border:1px solid var(--paper-3);border-left:5px solid var(--paper-3);border-radius:14px;padding:13px 15px;display:grid;gap:8px}.family-row.is-subscribed{border-left-color:var(--good)}.family-row.is-trial{border-left-color:var(--brand-2)}.family-row.is-lapsed{border-left-color:var(--warn)}.family-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.family-main .grow{display:grid;gap:1px;min-width:180px}.family-kids{list-style:none;margin:0;padding:0;display:grid;gap:4px}.family-kids li{padding:6px 10px;border-radius:9px;background:var(--paper-2);font-size:.9rem}.kid-card{padding:12px 14px;border-radius:12px;background:var(--paper-2);display:grid;gap:6px}.audit-list{display:grid;gap:2px;max-height:460px;overflow-y:auto}.audit-row{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:baseline;padding:7px 10px;border-radius:8px}.audit-row:nth-child(odd){background:var(--paper-2)}@media (max-width: 560px){.admin-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.audit-row{grid-template-columns:1fr;gap:2px}}.invite-share{display:grid;gap:10px;flex:1 1 300px;min-width:0}.invite-link{display:grid;justify-items:center;gap:2px;padding:14px 18px;border:3px solid var(--good);border-radius:18px;background:color-mix(in srgb,var(--good) 8%,var(--paper));cursor:pointer;font:inherit;color:inherit;transition:transform .12s ease,background .12s ease}.invite-link:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--good) 14%,var(--paper))}.invite-link b{font-family:var(--font-num);font-size:clamp(.85rem,2.6vw,1.05rem);color:var(--good);word-break:break-all;line-height:1.25}.invite-link>.tiny:first-child,.invite-code>.tiny:first-child{letter-spacing:.12em;color:var(--ink-faint)}.tt-days{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tt-day{min-width:58px;padding:11px 12px;border-radius:12px;border:2px solid var(--paper-3);background:var(--paper);font:inherit;font-weight:800;color:var(--ink-soft);cursor:pointer}.tt-day.on{border-color:var(--brand);background:var(--brand);color:#fff}.tt-day:disabled{opacity:.6;cursor:default}.tt-times{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}.tt-times .field{max-width:150px}.tt-upcoming{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 13px;border-radius:12px;background:var(--paper-2);border-left:4px solid var(--paper-3)}.tt-upcoming .grow{display:grid;gap:1px;min-width:160px}.tt-upcoming.is-excused{border-left-color:var(--warn)}.tt-upcoming.is-kept{border-left-color:var(--good)}.tt-history{display:grid;gap:2px;margin-top:12px;max-height:320px;overflow-y:auto}.tt-hist-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;padding:7px 10px;border-radius:8px}.tt-hist-row:nth-child(odd){background:var(--paper-2)}.tt-hist-row.is-missed b{color:#b45309}.tt-hist-row.is-kept b{color:var(--good)}.tt-hist-row.is-reversed b{color:var(--ink-faint)}.landing{min-height:100%;background:var(--paper-2);overflow-x:hidden}.lp-brand{display:flex;align-items:center;gap:10px;max-width:1120px;margin:0 auto;padding:18px 24px 0}.lp-brand-mark{font-size:1.8rem;line-height:1}.lp-brand-lockup{display:grid;line-height:1.05}.lp-brand-lockup b{font-size:1.5rem;color:var(--brand);letter-spacing:-.01em}.lp-brand-lockup span{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.lp-hero{background:radial-gradient(1000px 420px at 78% -8%,rgba(139,92,246,.18),transparent 62%),linear-gradient(180deg,#fff 0%,var(--paper-2) 100%);padding-bottom:8px}.lp-hero-inner{max-width:1120px;margin:0 auto;padding:28px 24px 8px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:32px;align-items:center}.lp-hero-copy{min-width:0}.lp-kicker{display:inline-block;padding:7px 15px;border-radius:var(--r-full);background:var(--brand);color:#fff;font-weight:800;font-size:.85rem;letter-spacing:.02em;margin-bottom:16px}.lp-headline{margin:0 0 14px;font-size:clamp(2rem,6vw,3.4rem);line-height:1.05;letter-spacing:-.02em}.lp-sub{margin:0 0 12px;font-size:clamp(1.02rem,2.3vw,1.25rem);line-height:1.5;color:var(--ink-soft);max-width:46ch}.lp-subjects{margin:0 0 22px;font-weight:800;color:var(--brand);font-size:clamp(.95rem,2.1vw,1.08rem);letter-spacing:.01em}.lp-cta-block{display:grid;justify-items:start;gap:6px}.lp-cta{border:0;cursor:pointer;font:inherit;font-weight:900;font-size:clamp(1rem,2.6vw,1.18rem);color:#fff;background:var(--good);padding:17px 30px;border-radius:var(--r-full);box-shadow:0 6px #0f7a37,0 14px 28px -12px #16a34acc;transition:transform .1s ease,box-shadow .1s ease;text-align:left;max-width:100%}.lp-cta:hover{transform:translateY(-2px);box-shadow:0 8px #0f7a37,0 18px 32px -12px #16a34ad9}.lp-cta:active{transform:translateY(3px);box-shadow:0 3px #0f7a37}.lp-trial{margin:10px 0 0;font-size:1rem}.lp-trial b{color:var(--good)}.lp-cta-sub{margin:0;font-size:.85rem;color:var(--ink-faint)}.lp-hero-art{position:relative;display:grid;place-items:center;min-height:260px}.lp-orbit{position:absolute;font-size:2rem;background:#fff;border-radius:50%;width:60px;height:60px;display:grid;place-items:center;box-shadow:var(--shadow-md);animation:lp-float 5s ease-in-out infinite}.lp-orbit-1{top:2%;left:6%;animation-delay:0s}.lp-orbit-2{top:16%;right:2%;animation-delay:.7s}.lp-orbit-3{bottom:20%;left:0;animation-delay:1.4s}.lp-orbit-4{bottom:2%;right:12%;animation-delay:2.1s}.lp-orbit-5{top:46%;right:16%;animation-delay:2.8s}@keyframes lp-float{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-12px) rotate(4deg)}}@media (prefers-reduced-motion: reduce){.lp-orbit{animation:none}}.lp-trust{list-style:none;max-width:1120px;margin:8px auto 0;padding:20px 24px 30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.lp-trust li{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;background:#fff;border-radius:16px;padding:14px 16px;box-shadow:var(--shadow-sm)}.lp-trust-emoji{grid-row:1 / 3;font-size:1.7rem}.lp-band{max-width:1120px;margin:0 auto;padding:46px 24px}.lp-h2{margin:0 0 10px;font-size:clamp(1.4rem,4vw,2.1rem);line-height:1.15;text-align:center}.lp-lead{margin:0 auto 26px;max-width:60ch;text-align:center;color:var(--ink-soft);font-size:clamp(.98rem,2.1vw,1.1rem);line-height:1.55}.lp-centre{text-align:center}.lp-video-band{padding-top:10px}.lp-video-frame{max-width:780px;margin:0 auto 10px;border-radius:22px;overflow:hidden;background:#0b0a18;box-shadow:var(--shadow-lg);aspect-ratio:16 / 9}.lp-video-frame video{width:100%;height:100%;display:block;object-fit:cover}.lp-pitch{background:transparent}.lp-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:stretch;max-width:880px;margin:0 auto}.lp-compare-card{border-radius:20px;padding:20px;display:grid;gap:8px;align-content:start;background:#fff;box-shadow:var(--shadow-sm);border:2px solid var(--paper-3)}.lp-compare-card.is-before{opacity:.85}.lp-compare-card.is-after{border-color:var(--good);background:color-mix(in srgb,var(--good) 6%,#fff);box-shadow:var(--shadow-md)}.lp-compare-emoji{font-size:2.1rem}.lp-compare-card b{font-size:1.1rem}.lp-compare-card ul{margin:0;padding-left:18px;display:grid;gap:6px}.lp-compare-card li{color:var(--ink-soft);line-height:1.4}.lp-arrow{align-self:center;font-size:2rem;color:var(--brand-3);font-weight:900}.lp-subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.lp-subject{background:#fff;border-radius:18px;padding:18px;display:grid;gap:4px;align-content:start;border-top:5px solid var(--sc, var(--brand));box-shadow:var(--shadow-sm);transition:transform .13s ease,box-shadow .13s ease}.lp-subject:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.lp-subject-emoji{font-size:2rem}.lp-subject b{font-size:1.05rem}.lp-subject-count{margin-top:6px;font-size:.78rem;font-weight:800;color:var(--sc, var(--brand));letter-spacing:.02em}.lp-steps-band{background:#fff;max-width:none}.lp-steps-band>.lp-h2,.lp-steps-band>.lp-lead{max-width:1120px;margin-inline:auto}.lp-steps{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.lp-step{position:relative;padding:22px 20px 20px;border-radius:18px;background:var(--paper-2);display:grid;gap:6px;align-content:start}.lp-step-n{position:absolute;top:-12px;left:20px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:var(--brand);color:#fff;font-weight:900;font-size:.95rem}.lp-step-emoji{font-size:1.9rem;margin-top:4px}.lp-step b{font-size:1.08rem}.lp-step p{margin:0;color:var(--ink-soft);line-height:1.5}.lp-closing{display:grid;justify-items:center;gap:10px;text-align:center;padding-bottom:54px}.lp-closing .lp-cta{text-align:center;margin-top:8px}.lp-foot{border-top:1px solid var(--paper-3);padding:22px 24px 34px;display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;justify-content:center;background:#fff}.lp-foot-brand b,.lp-foot a{color:var(--brand)}@media (max-width: 820px){.lp-hero-inner{grid-template-columns:1fr;gap:12px}.lp-hero-art{min-height:210px;order:-1}.lp-orbit{width:48px;height:48px;font-size:1.5rem}.lp-compare{grid-template-columns:1fr}.lp-arrow{transform:rotate(90deg);justify-self:center}}@media (max-width: 480px){.lp-band{padding:34px 16px}.lp-hero-inner{padding:20px 16px 8px}.lp-brand,.lp-trust{padding-inline:16px}.lp-cta{width:100%;text-align:center;padding-inline:18px}.lp-cta-block{justify-items:stretch}.lp-trial,.lp-cta-sub{text-align:center}}.lp-signin{margin-left:auto;border:2px solid var(--paper-3);background:var(--paper);color:var(--brand);font:inherit;font-weight:800;font-size:.9rem;padding:8px 18px;border-radius:var(--r-full);cursor:pointer}.lp-signin:hover{border-color:var(--brand-3);background:var(--paper-2)}.signin-note{margin-top:16px;padding:12px 14px;background:var(--paper-2);border-radius:12px}.signin-note p{margin:0;line-height:1.5}.already-have{margin-top:14px;padding:16px;border-radius:14px;background:color-mix(in srgb,var(--good) 9%,var(--paper));border:2px solid color-mix(in srgb,var(--good) 32%,transparent);display:grid;gap:8px;justify-items:start}.already-have p{margin:0}.forgot-row{margin-top:16px;text-align:center}.forgot-box{margin-top:10px;padding:14px;border-radius:12px;background:var(--paper-2);display:grid;gap:10px;justify-items:center;text-align:center}.forgot-box.is-sent{background:color-mix(in srgb,var(--good) 10%,var(--paper));border:2px solid color-mix(in srgb,var(--good) 30%,transparent)}.forgot-box p{margin:0}
