:root{--bg:#fafafa;--surface:#fff;--surface2:#f2f2f2;--surface3:#e7e7e7;--ink:#0b0b0b;--ink2:#4d4d4d;--ink3:#8a8a8a;--line:#e3e3e3;--line2:#cfcfcf;--btn:#0b0b0b;--btn-ink:#fff;--sb-w:272px;--tp-w:384px;--tb-h:57px;--radius:16px;--shadow:0 1px 2px #0000000d, 0 8px 24px #0000000d;--shadow-lg:0 2px 4px #0000000f, 0 20px 44px #0000001a;--spring:cubic-bezier(.34,1.45,.44,1);--spring-soft:cubic-bezier(.22,1.15,.36,1);--ease:cubic-bezier(.4,0,.2,1);--nav-h:68px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--font-read:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-read-alt:"Atkinson Hyperlegible","Inter",system-ui,-apple-system,"Segoe UI",sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0a0a0a;--surface:#161616;--surface2:#1f1f1f;--surface3:#2b2b2b;--ink:#f5f5f5;--ink2:#b8b8b8;--ink3:#7d7d7d;--line:#262626;--line2:#3d3d3d;--btn:#f5f5f5;--btn-ink:#0b0b0b;--shadow:0 1px 2px #00000080, 0 8px 24px #00000059;--shadow-lg:0 2px 4px #00000080, 0 20px 44px #00000080}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}body.read-alt{--font-read:var(--font-read-alt)}button{cursor:pointer;font-family:inherit}input,select,textarea{color:var(--ink);font-family:inherit;font-size:16px}a{color:var(--ink);text-underline-offset:3px;-webkit-text-decoration-color:var(--line2);text-decoration-color:var(--line2)}h1,h2,h3,h4{letter-spacing:-.02em;margin:0;line-height:1.2}p{margin:0}:focus-visible{outline:2.5px solid var(--ink);outline-offset:2px;border-radius:6px}.wrap{max-width:940px;padding:0 16px calc(var(--nav-h) + 88px);margin:0 auto}@media (min-width:760px){.wrap{padding:0 24px calc(var(--nav-h) + 88px)}}.toolbar{z-index:40;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);min-height:var(--tb-h);align-items:center;gap:10px;padding:8px 16px;display:flex;position:sticky;top:0}.tb-title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.tutor-toggle{border:1.5px solid var(--line2);background:var(--surface);color:var(--ink);transition:transform .3s var(--spring), background .2s, color .2s, border-color .2s;border-radius:999px;flex:none;align-items:center;gap:7px;padding:8px 15px;font-size:13.5px;font-weight:600;display:inline-flex}.tutor-toggle svg{width:17px;height:17px}.tutor-toggle:active{transform:scale(.95)}.tutor-toggle[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.tb-ava{background:var(--ink);width:34px;height:34px;color:var(--bg);transition:transform .3s var(--spring);border:0;border-radius:50%;flex:none;place-items:center;font-size:12.5px;font-weight:700;display:grid}.tb-ava:active{transform:scale(.93)}@media (max-width:1023.5px){.tutor-toggle{display:none}}.brand{letter-spacing:-.02em;align-items:center;gap:9px;font-size:16.5px;font-weight:700;display:flex}.brand .mark{background:var(--ink);width:31px;height:31px;color:var(--bg);border-radius:9px;flex:none;place-items:center;display:grid}.brand .mark svg{width:18px;height:18px}.toolbar .spacer{flex:1}.streak{background:var(--surface2);color:var(--ink);border:1px solid var(--line);border-radius:999px;align-items:center;gap:5px;padding:8px 12px;font-size:13px;font-weight:700;display:flex}.voice-toggle{background:var(--surface);border:1px solid var(--line);color:var(--ink2);transition:transform .3s var(--spring), border-color .2s;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:700;display:flex}.voice-toggle:active{transform:scale(.95)}.voice-toggle.on{color:var(--ink);border-color:var(--ink)}.tabbar{z-index:50;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);position:fixed;bottom:0;left:0;right:0}.tabbar-in{grid-template-columns:repeat(6,1fr);max-width:940px;margin:0 auto;display:grid}.tab{color:var(--ink3);transition:color .25s, transform .3s var(--spring);background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:9px 2px 8px;font-size:10.5px;font-weight:700;display:flex;position:relative}.tab:active{transform:scale(.92)}.tab svg{width:22px;height:22px;transition:transform .35s var(--spring)}.tab.active{color:var(--ink)}.tab.active svg{transform:translateY(-1px)scale(1.08)}.tab .dot{width:4px;height:4px;transition:background .2s, transform .35s var(--spring);background:0 0;border-radius:50%}.tab.active .dot{background:var(--ink);transform:scale(1.25)}.view{animation:viewin .45s var(--spring-soft)}@keyframes viewin{0%{opacity:0;transform:translateY(10px)scale(.995)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.view{animation:none}*{transition-duration:.01ms!important}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--sp-5)}.card+.card,.q-card+.q-card,.card+.q-card,.q-card+.card{margin-top:16px}.conf-row.chart-row{align-items:flex-start}.conf-row.chart-row .nm{flex:0 0 92px}.conf-row.chart-row .val{flex:1;min-width:0}.btn{background:var(--btn);color:var(--btn-ink);transition:transform .3s var(--spring), opacity .2s, background .2s;will-change:transform;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.96)}.btn.ghost{background:var(--surface);color:var(--ink);border:1.5px solid var(--line2)}.btn.soft{background:var(--surface2);color:var(--ink)}.btn.small{padding:8px 16px;font-size:14px}.btn.block{width:100%;display:flex}.btn:disabled{opacity:.4;cursor:not-allowed}.btn svg{width:17px;height:17px}.chip{border:1.5px solid var(--line);background:var(--surface);color:var(--ink2);transition:transform .3s var(--spring), background .2s, color .2s, border-color .2s;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;display:inline-flex}.chip:active{transform:scale(.95)}.chip.sel{border-color:var(--ink);background:var(--ink);color:var(--bg)}.tag{letter-spacing:.07em;text-transform:uppercase;background:var(--surface2);color:var(--ink2);border-radius:8px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-block}.tag.ok{background:var(--ink);color:var(--bg)}.tag.bad{background:var(--surface);color:var(--ink);border:1px solid var(--ink)}.muted{color:var(--ink2)}.small{font-size:14px}.tiny{font-size:12px}.kicker{letter-spacing:.02em;color:var(--ink3);font-size:12px;font-weight:600}.progressbar{background:var(--surface2);border-radius:99px;height:8px;overflow:hidden}.progressbar>i{background:var(--ink);height:100%;transition:width .8s var(--spring-soft);border-radius:99px;display:block}input[type=text],input[type=date],input[type=number],select,textarea{background:var(--surface);border:1.5px solid var(--line);border-radius:12px;width:100%;padding:12px 16px;transition:border-color .2s}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none}textarea{resize:vertical;min-height:74px}label.flabel{margin:18px 0 8px;font-size:14px;font-weight:700;display:block}label.flabel:first-child{margin-top:0}.secttl{margin:var(--sp-8) 0 var(--sp-2);letter-spacing:-.02em;font-size:21px;font-weight:700}.secttl:first-child{margin-top:24px}.grid2{gap:var(--sp-3);display:grid}@media (min-width:640px){.grid2{grid-template-columns:1fr 1fr}}.grid3{gap:var(--sp-3);display:grid}@media (min-width:760px){.grid3{grid-template-columns:1fr 1fr 1fr}}.press{transition:transform .3s var(--spring)}.press:active{transform:scale(.98)}.ring{flex:none;width:58px;height:58px;position:relative}.ring svg{transform:rotate(-90deg)}.ring .track{stroke:var(--surface3)}.ring .val{stroke:var(--ink);stroke-linecap:round;transition:stroke-dashoffset 1s var(--spring-soft)}.ring b{place-items:center;font-size:13px;font-weight:700;display:grid;position:absolute;inset:0}.toast-wrap{left:50%;bottom:calc(var(--nav-h) + 18px);z-index:90;pointer-events:none;gap:8px;width:min(92vw,430px);display:grid;position:fixed;transform:translate(-50%)}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);animation:toastin .5s var(--spring);border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.toast.bye{animation:toastout .35s var(--ease) forwards}@keyframes toastin{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:none}}@keyframes toastout{to{opacity:0;transform:translateY(10px)scale(.97)}}@media (prefers-reduced-motion:reduce){.toast,.toast.bye{animation:none}}#onboarding{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.ob-wrap{flex-direction:column;flex:1;width:100%;max-width:600px;margin:0 auto;padding:20px 18px 30px;display:flex}.ob-step{animation:viewin .45s var(--spring-soft)}.ob-dots{gap:4px;margin:8px 0 24px;display:flex}.ob-dots i{background:var(--surface3);border-radius:99px;flex:1;height:4.5px;transition:background .3s}.ob-dots i.done{background:var(--ink)}.ob h1{letter-spacing:-.025em;margin-bottom:9px;font-size:28px;font-weight:700}.ob .sub{color:var(--ink2);margin-bottom:22px;font-size:15px;line-height:1.55}.ob-foot{gap:10px;margin-top:auto;padding-top:26px;display:flex}.ob-foot .btn{flex:1}.opt-list{gap:10px;display:grid}.opt{text-align:left;background:var(--surface);border:1.5px solid var(--line);width:100%;color:var(--ink);transition:transform .3s var(--spring), border-color .2s, background .2s;border-radius:16px;align-items:flex-start;gap:12px;padding:16px;font-size:15.5px;font-weight:600;display:flex}.opt:active{transform:scale(.985)}.opt small{color:var(--ink2);margin-top:2px;font-size:13px;font-weight:500;line-height:1.45;display:block}.opt.sel{border-color:var(--ink);background:var(--surface2)}.opt .radio{border:2px solid var(--line2);border-radius:50%;flex:none;width:22px;height:22px;margin-top:1px;transition:border-color .2s;position:relative}.opt.sel .radio{border-color:var(--ink)}.opt.sel .radio:after{content:"";background:var(--ink);animation:pop .35s var(--spring);border-radius:50%;position:absolute;inset:4px}.opt .tick{border:2px solid var(--line2);color:#0000;border-radius:7px;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;transition:all .2s;display:grid}.opt.sel .tick{background:var(--ink);border-color:var(--ink);color:var(--bg)}.opt .tick svg{width:13px;height:13px}@keyframes pop{0%{transform:scale(.4)}to{transform:scale(1)}}.chiprow{gap:var(--sp-2);flex-wrap:wrap;display:flex}.conf-row{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.conf-row:last-child{border-bottom:0}.conf-row .nm{flex:1;font-size:14.5px;font-weight:600}.seg{background:var(--surface2);border-radius:11px;gap:3px;padding:3px;display:flex}.seg button{color:var(--ink2);transition:all .25s var(--spring-soft);background:0 0;border:0;border-radius:9px;padding:8px 12px;font-size:12.5px;font-weight:700}.seg button.sel{background:var(--surface);color:var(--ink);box-shadow:0 1px 5px #00000024}.hero-card{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);border:0;border-radius:24px;margin-top:16px;padding:24px}.hero-card h1{color:var(--bg);letter-spacing:-.025em;font-size:25px}.hero-card .sub{opacity:.72;margin-top:6px;font-size:14.5px;line-height:1.55}.countdown-row{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.cd{background:color-mix(in srgb, var(--bg) 12%, transparent);border:1px solid color-mix(in srgb, var(--bg) 20%, transparent);border-radius:12px;padding:8px 12px}.cd b{font-size:19px;line-height:1.1;display:block}.cd span{opacity:.75;font-size:12px;font-weight:600}.plan-item{border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--ink);background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:12px;padding:12px 0;display:flex}.plan-item:last-child{border-bottom:0;padding-bottom:2px}.plan-ic{background:var(--surface2);width:42px;height:42px;color:var(--ink);border-radius:12px;flex:none;place-items:center;display:grid}.plan-ic svg{width:20px;height:20px}.plan-item .go{color:var(--ink3);flex:none;align-items:center;margin-left:auto;display:flex}.course-row{border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--ink);background:0 0;border-top:0;border-left:0;border-right:0;align-items:center;gap:12px;padding:12px 0;display:flex}.course-row:last-child{border-bottom:0}.course-ic{width:44px;height:44px;color:var(--bg);background:var(--ink);border-radius:12px;flex:none;place-items:center;display:grid}.course-ic svg{width:22px;height:22px}.course-head{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);border-radius:24px;margin-top:16px;padding:24px}.course-head h1{color:var(--bg);letter-spacing:-.02em;font-size:24px}.course-head p{color:inherit;opacity:.85;max-width:54ch;margin-top:6px;font-size:14.5px;line-height:1.55}.lesson-row{text-align:left;background:var(--surface);border:1px solid var(--line);width:100%;color:var(--ink);box-shadow:var(--shadow);transition:transform .3s var(--spring), border-color .2s;border-radius:16px;align-items:center;gap:12px;margin-top:12px;padding:16px;display:flex}.lesson-row:active{transform:scale(.985)}.lesson-row .num{background:var(--surface2);width:38px;height:38px;color:var(--ink2);transition:all .3s var(--spring);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:700;display:grid}.lesson-row.done .num{background:var(--ink);color:var(--bg)}.lesson-body{font-family:var(--font-read);max-width:68ch;font-size:17px;line-height:1.6}.lesson-body h3{font-family:var(--font-read);letter-spacing:-.01em;margin:24px 0 8px;font-size:17px;font-weight:700}.lesson-body h3:first-child{margin-top:4px}.lesson-body p{margin:0 0 12px}.lesson-body ul{margin:0 0 16px;padding-left:20px}.lesson-body li{margin-bottom:8px}.lesson-body table.data{font-family:var(--font-read);font-size:15px;line-height:1.55}.lesson-body b,.lesson-body strong{font-weight:600}table.data{border-collapse:collapse;background:var(--surface);width:100%;font-family:Inter,sans-serif;font-size:14px}table.data th{background:var(--surface2);text-align:left;letter-spacing:.05em;text-transform:uppercase;color:var(--ink2);border-bottom:1.5px solid var(--line);padding:8px 12px;font-size:12px}table.data td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 12px;line-height:1.5}table.data tr:last-child td{border-bottom:0}.tblwrap{border:1px solid var(--line);border-radius:12px;margin:12px 0 16px;overflow-x:auto}.tblwrap table.data{margin:0}.callout{font-size:16px;line-height:1.6;font-family:var(--font-read);border-radius:12px;margin:16px 0;padding:16px}.callout.trick{background:var(--surface2);border:1.5px dashed var(--line2)}.callout.warn{background:var(--surface);border:1.5px solid var(--ink)}.callout.key{background:var(--surface2);border:1px solid var(--line)}.callout .ttl{letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px;font-size:12px;font-weight:700}.listen-bar{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);top:calc(var(--tb-h) + 8px);z-index:5;border-radius:16px;align-items:center;gap:12px;margin:16px 0;padding:12px;display:flex;position:sticky}.listen-bar .lbl{flex:1;font-size:13.5px;font-weight:700}.wave{align-items:center;gap:3px;height:20px;display:flex}.wave i{background:var(--ink3);border-radius:99px;width:3.5px;height:6px;transition:background .2s}.speaking .wave i{background:var(--ink);animation:.9s ease-in-out infinite wv}.wave i:nth-child(2){animation-delay:.12s}.wave i:nth-child(3){animation-delay:.24s}.wave i:nth-child(4){animation-delay:.36s}.wave i:nth-child(5){animation-delay:.48s}@keyframes wv{0%,to{height:6px}50%{height:18px}}@media (prefers-reduced-motion:reduce){.speaking .wave i{height:12px;animation:none}}.q-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.q-stem{font-family:var(--font-read);font-size:17px;font-weight:500;line-height:1.6}.q-opts{gap:8px;margin-top:16px;display:grid}.q-opt{text-align:left;background:var(--surface);border:1.5px solid var(--line);width:100%;color:var(--ink);transition:transform .3s var(--spring), border-color .2s, background .2s;border-radius:12px;align-items:flex-start;gap:12px;padding:12px 16px;font-size:15px;line-height:1.5;display:flex;position:relative}.q-opt:active{transform:scale(.99)}.q-opt .ltr{background:var(--surface2);width:25px;height:25px;color:var(--ink2);border-radius:8px;flex:none;place-items:center;font-size:12.5px;font-weight:700;transition:all .25s;display:grid}.q-opt.sel{border-color:var(--ink);background:var(--surface2)}.q-opt.sel .ltr{background:var(--ink);color:var(--bg)}.q-opt.right{border-color:var(--ink);background:var(--surface2);padding-right:94px}.q-opt.right .ltr{background:var(--ink);color:var(--bg)}.q-opt.right:after{content:"✓Correct";letter-spacing:.05em;color:var(--ink);white-space:nowrap;font-size:11px;font-weight:700;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.q-opt.wrong{border-color:var(--ink);background:var(--surface);animation:shake .4s var(--ease);border-style:dashed;padding-right:94px}.q-opt.wrong .ltr{background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}.q-opt.wrong:after{content:"✕Your pick";letter-spacing:.05em;color:var(--ink2);white-space:nowrap;font-size:11px;font-weight:700;position:absolute;top:50%;right:14px;transform:translateY(-50%)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.q-opt.wrong{animation:none}}.q-opt:disabled{cursor:default}.why{border-top:1.5px dashed var(--line);animation:viewin .4s var(--spring-soft);gap:10px;margin-top:14px;padding-top:13px;display:grid}.why .row{gap:8px;font-size:14px;line-height:1.55;display:flex}.why .row .ltr{border-radius:7px;flex:none;place-items:center;width:22px;height:22px;font-size:11.5px;font-weight:700;display:grid}.why .row.good .ltr{background:var(--ink);color:var(--bg)}.why .row.bad .ltr{background:var(--surface3);color:var(--ink2)}.timer-chip{font-variant-numeric:tabular-nums;background:var(--surface2);border-radius:9px;padding:6px 11px;font-size:13.5px;font-weight:700}.timer-chip.low{background:var(--ink);color:var(--bg)}.timer-chip,.stat b,.score-hero .big,.cd b,.ring b,table.data,.streak{font-variant-numeric:tabular-nums}.chat-log{gap:12px;margin-top:16px;display:grid}.bubble{max-width:88%;font-family:var(--font-read);animation:viewin .4s var(--spring-soft);border-radius:16px;padding:12px 16px;font-size:15.5px;line-height:1.6}.bubble.them{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-bottom-left-radius:6px;justify-self:start}.bubble.me{background:var(--ink);color:var(--bg);border-bottom-right-radius:6px;justify-self:end}.bubble .who{letter-spacing:.07em;text-transform:uppercase;opacity:.6;margin-bottom:4px;font-size:11px;font-weight:700}.typing{align-items:center;gap:5px;padding:4px 2px;display:inline-flex}.typing i{background:var(--ink3);border-radius:50%;width:7px;height:7px;animation:1.1s ease-in-out infinite tp}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes tp{0%,60%,to{opacity:.45;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.typing i{animation:none}}.ask-bar{gap:8px;margin-top:12px;display:flex}.ask-bar input{flex:1}.icon-btn{border:1.5px solid var(--line);background:var(--surface);width:48px;height:48px;color:var(--ink2);transition:transform .3s var(--spring), background .2s;border-radius:12px;flex:none;place-items:center;display:grid}.icon-btn:active{transform:scale(.93)}.icon-btn svg{width:20px;height:20px}.icon-btn.rec{background:var(--ink);border-color:var(--ink);color:var(--bg);animation:1.2s infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--ink) 35%, transparent)}50%{box-shadow:0 0 0 9px #0000}}@media (prefers-reduced-motion:reduce){.icon-btn.rec{animation:none}}.quick-chips{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.room{color:#f5f5f5;border:1px solid var(--line);box-shadow:var(--shadow-lg);background:#0c0c0c;border-radius:24px;margin-top:16px;overflow:hidden}.room-stage{background:radial-gradient(120% 90% at 50% 0,#262626 0%,#0c0c0c 65%);flex-direction:column;justify-content:center;align-items:center;min-height:350px;padding:28px 18px 22px;display:flex;position:relative}.tutor-name{background:#ffffff1a;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:12.5px;font-weight:700;display:flex;position:absolute;top:14px;left:14px}.live-dot{background:#fff;border-radius:50%;width:8px;height:8px}.room.speaking .live-dot{animation:1s infinite pulse}.avatar{filter:drop-shadow(0 14px 28px #00000073);width:172px;height:172px}.avatar .mouth{transform-origin:50%;transform-box:fill-box}.room.speaking .avatar .mouth{animation:.3s ease-in-out infinite alternate talk}@keyframes talk{0%{transform:scaleY(.3)}to{transform:scaleY(1.2)}}.avatar .eyes{transform-origin:50%;transform-box:fill-box;animation:4.6s infinite blink}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.08)}}.avatar .bob{animation:3.6s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3.5px)}}@media (prefers-reduced-motion:reduce){.room.speaking .avatar .mouth,.avatar .eyes,.avatar .bob{animation:none}}.caption{font-family:var(--font-read);text-align:center;background:#ffffff14;border:1px solid #ffffff1a;border-radius:12px;max-width:560px;min-height:56px;margin-top:16px;padding:12px 16px;font-size:17px;line-height:1.6}.self-view{width:102px;height:130px;animation:viewin .4s var(--spring-soft);background:#000;border:2px solid #ffffff59;border-radius:14px;display:none;position:absolute;top:14px;right:14px;overflow:hidden}.self-view.on{display:block}.self-view video{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.self-view .cam-off{color:#bdbdbd;text-align:center;place-items:center;padding:6px;font-size:11px;display:grid;position:absolute;inset:0}.room-controls{background:#ffffff0a;flex-wrap:wrap;justify-content:center;gap:12px;padding:16px;display:flex}.rctl{color:#fff;width:54px;height:54px;transition:transform .3s var(--spring), background .2s;background:#ffffff1f;border:0;border-radius:50%;place-items:center;display:grid}.rctl svg{width:24px;height:24px}.rctl.main{color:#0b0b0b;background:#fff;width:64px;height:64px}.rctl.end{color:#fff;background:0 0;box-shadow:inset 0 0 0 2px #ffffffd9}.rctl.on{color:#0b0b0b;background:#fff}.rctl:active{transform:scale(.92)}.rctl:disabled{opacity:.35}.ptt-hint{text-align:center;color:#9a9a9a;background:#ffffff0a;padding:0 16px 14px;font-size:12.5px;line-height:1.5}.agenda{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.agenda .step{text-align:center;background:var(--surface2);min-width:118px;color:var(--ink3);transition:all .35s var(--spring-soft);border-radius:11px;flex:1;padding:10px 6px;font-size:12px;font-weight:700}.agenda .step.now{background:var(--ink);color:var(--bg);transform:scale(1.02)}.agenda .step.done{background:var(--surface3);color:var(--ink)}.agenda .step.done:before{content:"✓ ";font-weight:700}.transcript{gap:9px;max-height:260px;margin-top:12px;display:grid;overflow-y:auto}.transcript .line{font-family:var(--font-read);font-size:14.5px;line-height:1.6}.transcript .line b.t{color:var(--ink)}.transcript .line b.s{color:var(--ink3)}.palette{grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px;display:grid}.palette button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink2);transition:all .2s var(--spring-soft);border-radius:8px;padding:8px 0;font-size:13px;font-weight:700}.palette button.answered{background:var(--surface3);color:var(--ink);border-color:var(--surface3)}.palette button.now{background:var(--ink);color:var(--bg);border-color:var(--ink)}.flashcard{perspective:1200px;touch-action:pan-y;margin-top:14px}.fc-inner{min-height:238px;transition:transform .55s var(--spring-soft);transform-style:preserve-3d;cursor:pointer;position:relative}.fc-inner.flipped{transform:rotateY(180deg)}.fc-inner.dragging{transition:none}@media (prefers-reduced-motion:reduce){.fc-inner{transition:none}}.fc-face{backface-visibility:hidden;text-align:center;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:24px;flex-direction:column;justify-content:center;align-items:center;padding:26px;display:flex;position:absolute;inset:0}.fc-front{background:var(--ink);color:var(--bg)}.fc-front .big{letter-spacing:-.01em;font-size:24px;font-weight:700;line-height:1.32}.fc-back{background:var(--surface);color:var(--ink);transform:rotateY(180deg)}.fc-back .big{font-size:18.5px;font-weight:600;line-height:1.5}.fc-face .hint{letter-spacing:.08em;text-transform:uppercase;opacity:.55;font-size:11px;font-weight:700;position:absolute;bottom:15px}.fc-grade{gap:12px;margin-top:16px;display:flex}.fc-grade .btn{flex:1}.drag-meter{color:var(--ink3);justify-content:space-between;margin-top:10px;padding:0 4px;font-size:12px;font-weight:700;display:flex}.heat{grid-template-columns:repeat(auto-fill,minmax(106px,1fr));gap:8px;margin-top:12px;display:grid}.heat .cell{border:1px solid var(--line);border-radius:12px;padding:12px;font-size:13px;font-weight:700;line-height:1.35}.heat .cell span{opacity:.75;margin-top:2px;font-size:11px;font-weight:600;display:block}.h-strong{background:var(--ink);color:var(--bg);border-color:var(--ink)}.h-mid{background:var(--surface3);color:var(--ink)}.h-weak{background:var(--surface);color:var(--ink);border:1.5px dashed var(--line2)}.h-none{background:var(--surface);color:var(--ink3)}.stat-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--line);text-align:center;box-shadow:var(--shadow);border-radius:16px;padding:15px 10px}.stat b{letter-spacing:-.02em;font-size:23px;display:block}.stat span{color:var(--ink2);font-size:12px;font-weight:600}footer.foot{text-align:center;color:var(--ink3);margin-top:36px;font-size:12.5px;line-height:1.75}.hidden{display:none!important}.backlink{color:var(--ink2);transition:transform .3s var(--spring);background:0 0;border:0;align-items:center;gap:6px;padding:16px 0 0;font-size:14px;font-weight:700;display:inline-flex}.backlink:active{transform:scale(.96)}.backlink svg{width:16px;height:16px}.res-row{border-bottom:1px solid var(--line);align-items:flex-start;gap:12px;padding:16px 0;display:flex}.res-row:last-child{border-bottom:0}.score-hero{text-align:center;padding:10px 0 4px}.score-hero .big{letter-spacing:-.03em;animation:pop .5s var(--spring);font-size:52px;font-weight:700;line-height:1}.hdr-btn{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--ink);transition:transform .3s var(--spring), border-color .2s;border-radius:12px;flex:none;place-items:center;display:grid}.hdr-btn:active{transform:scale(.93)}.hdr-btn svg{width:20px;height:20px}.tutor-fab{right:16px;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 16px);z-index:60;background:var(--ink);width:56px;height:56px;color:var(--bg);box-shadow:var(--shadow-lg);transition:transform .35s var(--spring), opacity .25s;border:0;border-radius:50%;place-items:center;display:grid;position:fixed}.tutor-fab svg{width:24px;height:24px}.tutor-fab:active{transform:scale(.92)}.tutor-fab.hide{opacity:0;pointer-events:none;transform:scale(.75)}@media (min-width:1024px){.tutor-fab{display:none}}.tutor-scrim{z-index:70;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .3s var(--ease), visibility 0s linear .3s;background:#0a0a0a61;position:fixed;inset:0}.tutor-scrim.open{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .3s var(--ease)}.tutor-panel{z-index:80;background:var(--surface);border-left:1px solid var(--line);width:min(432px,100vw);height:100dvh;box-shadow:var(--shadow-lg);visibility:hidden;transition:transform .45s var(--spring-soft), visibility 0s linear .45s;flex-direction:column;display:flex;position:fixed;top:0;right:0;transform:translate(105%)}.tutor-panel.open{visibility:visible;transition:transform .45s var(--spring-soft);transform:none}.tp-head{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px;display:flex}.tp-ava{background:var(--ink);width:40px;height:40px;color:var(--bg);border-radius:50%;flex:none;place-items:center;display:grid}.tp-ava svg{width:19px;height:19px}.tp-head .who{flex:1;min-width:0}.tp-head .who b{margin-bottom:3px;font-size:16px;display:block}.tp-ctx{background:var(--surface2);border-bottom:1px solid var(--line);color:var(--ink2);padding:12px 16px;font-size:13px;font-weight:600;line-height:1.45}.tp-offline{background:var(--ink);color:var(--bg);border-bottom:1px solid var(--line);padding:11px 16px;font-size:13px;font-weight:600;line-height:1.5}.tp-log{flex:1;align-content:start;gap:12px;padding:16px;display:grid;overflow-y:auto}.tp-log .bubble{max-width:94%}.tp-chips{flex-wrap:wrap;gap:8px;padding:12px 16px 0;display:flex}.tp-ask{align-items:center;gap:8px;padding:12px 16px;display:flex}.tp-field{flex:1;position:relative}.tp-field input{border-radius:999px;width:100%;padding-right:46px}.mic-in{width:36px;height:36px;color:var(--ink2);transition:background .2s, color .2s, transform .3s var(--spring);background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.mic-in svg{width:19px;height:19px}.mic-in:active{transform:translateY(-50%)scale(.92)}.mic-in.rec{background:var(--ink);color:var(--bg);animation:1.2s infinite pulse}.send-btn{background:var(--ink);width:44px;height:44px;color:var(--bg);transition:transform .3s var(--spring);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.send-btn svg{width:19px;height:19px}.send-btn:active{transform:scale(.92)}.hdr-btn.voice-toggle{padding:0}.hdr-btn.voice-toggle.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.mini-player{z-index:6;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lg);animation:viewin .4s var(--spring-soft);border-radius:14px;align-items:center;gap:10px;margin-top:20px;padding:10px 12px;display:flex;position:sticky;bottom:12px}.mp-btn{background:color-mix(in srgb, var(--bg) 16%, transparent);width:38px;height:38px;color:var(--bg);transition:transform .3s var(--spring);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.mp-btn:active{transform:scale(.92)}.mp-btn svg{width:17px;height:17px}.mp-mid{flex:1;min-width:0}.mp-title{white-space:nowrap;text-overflow:ellipsis;margin-bottom:5px;font-size:12.5px;font-weight:600;overflow:hidden}.mp-bar{background:color-mix(in srgb, var(--bg) 24%, transparent);border-radius:99px;height:5px;overflow:hidden}.mp-bar i{background:var(--bg);height:100%;transition:width .35s var(--ease);border-radius:99px;display:block}.mp-speed{color:var(--bg);font-variant-numeric:tabular-nums;background:0 0;border:0;flex:none;padding:8px 6px;font-size:13px;font-weight:700}.rctl.rec{color:#0b0b0b;background:#fff;animation:1.2s infinite pulse-w}.rctl.off{color:#fff;box-shadow:inset 0 0 0 2px #ffffff8c}@keyframes pulse-w{0%,to{box-shadow:0 0 #ffffff59}50%{box-shadow:0 0 0 9px #0000}}@media (prefers-reduced-motion:reduce){.rctl.rec{animation:none}}.tp-hint{padding:0 16px calc(12px + env(safe-area-inset-bottom))}@media (prefers-reduced-motion:reduce){.tutor-panel{transition:none}}.sidebar{z-index:86;border-right:1px solid var(--line);background:var(--surface);visibility:hidden;width:min(300px,86vw);height:100dvh;transition:transform .45s var(--spring-soft), visibility 0s linear .45s;flex-direction:column;padding:24px 16px;display:flex;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-106%)}body.sb-open .sidebar{visibility:visible;box-shadow:var(--shadow-lg);transition:transform .45s var(--spring-soft);transform:none}.sb-scrim{z-index:85;opacity:0;pointer-events:none;visibility:hidden;transition:opacity .3s var(--ease), visibility 0s linear .3s;background:#0a0a0a61;position:fixed;inset:0}body.sb-open .sb-scrim{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .3s var(--ease)}.sidebar .brand{padding:2px 8px;font-size:17.5px}.side-nav{gap:4px;margin-top:24px;display:grid}.side-nav .tab{color:var(--ink2);border-radius:12px;flex-direction:row;justify-content:flex-start;gap:12px;padding:11px 13px;font-size:14px}.side-nav .tab svg{width:20px;height:20px}.side-nav .tab.active{background:var(--surface2);color:var(--ink)}.side-nav .tab.active svg{transform:none}.side-profile{background:var(--surface2);border-radius:16px;margin-top:auto;padding:16px}.side-profile .who{align-items:center;gap:11px;display:flex}.side-profile .avatar-dot{background:var(--ink);width:40px;height:40px;color:var(--bg);border-radius:50%;flex:none;place-items:center;font-size:15px;font-weight:700;display:grid}.side-profile .meta{color:var(--ink2);justify-content:space-between;margin-top:13px;font-size:12.5px;font-weight:600;display:flex}.side-profile .voice-toggle{justify-content:center;width:100%;margin-top:13px}.kbd-hint{display:none}.lesson-side,.qz-rail,.room-rail{align-content:start;gap:16px;display:grid}.lesson-side .card,.qz-rail .card,.room-rail .card,.lesson-side .card+.card,.qz-rail .card+.card,.room-rail .card+.card{margin-top:0}.ob-side{display:none}.ob-main{flex-direction:column;flex:1;display:flex}.ob-step h1{letter-spacing:-.025em;margin-bottom:9px;font-size:28px;font-weight:700;line-height:1.15}.ob-step .sub{color:var(--ink2);margin-bottom:22px;font-size:15px;line-height:1.55}.ob-stepitem{color:var(--ink3);border-radius:9px;align-items:center;gap:11px;padding:6px 9px;font-size:13.5px;font-weight:600;display:flex}.ob-stepitem .n{border:1.5px solid var(--line);border-radius:50%;flex:none;place-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:grid}.ob-stepitem.now{color:var(--ink);background:var(--surface2)}.ob-stepitem.now .n{background:var(--ink);color:var(--bg);border-color:var(--ink)}.ob-stepitem.done{color:var(--ink2)}.ob-stepitem.done .n{background:var(--surface3);border-color:var(--surface3);color:var(--ink)}@media (min-width:1024px){.ob-wrap{grid-template-columns:400px minmax(0,1fr);gap:64px;max-width:1180px;padding:6vh 34px 64px;display:grid}.ob-side{align-self:start;display:block;position:sticky;top:6vh}.ob-side h2{letter-spacing:-.02em;margin-top:24px;font-size:29px;line-height:1.18}.ob-side>p.lede{margin-top:12px;font-size:15px;line-height:1.65}.ob-steps{gap:4px;margin-top:32px;display:grid}.ob-note{margin-top:26px;line-height:1.6}.ob-brand-m,.ob-tutor-btn{display:none}@media (min-width:1024px){.ob-tutor-btn{margin-top:18px;display:inline-flex}}.ob-dots{display:none}.ob-main{max-width:620px}.ob-step h1{font-size:31px}}.grid2>.card+.card,.grid3>.card+.card{margin-top:0}@media (hover:hover){.btn:hover{transform:translateY(-1px)}.opt:hover,.q-opt:hover{border-color:var(--ink2)}.lesson-row:hover,.plan-item:hover{border-color:var(--line2)}.course-row:hover{background:var(--surface2)}.chip:hover{border-color:var(--ink2);color:var(--ink)}.tab:hover{color:var(--ink)}.rctl:hover{background:#ffffff38}.rctl.main:hover{background:#e8e8e8}}@media (min-width:1024px){.kbd-hint,.app-shell{display:block}.app-main{margin-left:var(--sb-w);min-width:0;height:100dvh;transition:margin-left .45s var(--spring-soft), margin-right .45s var(--spring-soft);overflow-y:auto}body.sb-hidden .app-main{margin-left:0}body.tutor-docked .app-main{margin-right:var(--tp-w)}.tabbar{display:none}.wrap{max-width:1260px;margin:0;padding:32px 42px 72px}.toolbar{padding:8px 42px}.sidebar{width:var(--sb-w);z-index:30;visibility:visible;box-shadow:none;transition:transform .45s var(--spring-soft), visibility 0s;transform:none}body.sb-hidden .sidebar{visibility:hidden;transition:transform .45s var(--spring-soft), visibility 0s linear .45s;transform:translate(-106%)}.sb-scrim{display:none}.tutor-panel{width:var(--tp-w);box-shadow:none}.tutor-scrim{display:none}body.tutor-docked .wrap{max-width:1020px}body.tutor-docked .lesson-grid,body.tutor-docked .qz-grid,body.tutor-docked .room-grid,body.tutor-docked .ngn-grid,body.tutor-docked .home-grid,body.tutor-docked .bowtie-grid{grid-template-columns:minmax(0,1fr)}body.tutor-docked .lesson-side,body.tutor-docked .qz-rail,body.tutor-docked .room-rail,body.tutor-docked .ngn-case{position:static}.hero-card{padding:30px 32px}.hero-card h1{font-size:30px}.home-grid{gap:var(--sp-6);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;display:grid}.catalog-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.catalog-grid .lesson-row{margin-top:0}.lesson-list{grid-template-columns:1fr 1fr;gap:12px;display:grid}.lesson-list .lesson-row{margin-top:0}.lesson-grid{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:24px;display:grid}.lesson-side{gap:16px;display:grid;position:sticky;top:24px}.lesson-side .card{margin-top:0}.lesson-body{max-width:68ch}.listen-bar{top:calc(var(--tb-h) + 12px)}.qz-grid{grid-template-columns:minmax(0,1fr) 302px;align-items:start;gap:24px;display:grid}.qz-rail{gap:16px;display:grid;position:sticky;top:24px}.qz-rail .card{margin-top:0}.palette{grid-template-columns:repeat(5,1fr);gap:7px;margin-top:10px;display:grid}.palette button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink2);transition:all .2s var(--spring-soft);border-radius:9px;padding:8px 0;font-size:13px;font-weight:700}.palette button.answered{background:var(--surface3);color:var(--ink);border-color:var(--surface3)}.palette button.now{background:var(--ink);color:var(--bg);border-color:var(--ink)}.ngn-grid{grid-template-columns:410px minmax(0,1fr);align-items:start;gap:24px;display:grid}.ngn-case{position:sticky;top:24px}.bowtie-grid{grid-template-columns:1fr 1fr 1fr;align-items:start;gap:16px;display:grid}.bowtie-grid .q-card{margin-top:0}.room-grid{grid-template-columns:minmax(0,1fr) 384px;align-items:start;gap:24px;display:grid}.room-rail{gap:16px;display:grid;position:sticky;top:24px}.room-rail .card,.room-rail .card+.card{margin-top:0}.room-stage{min-height:440px}.room .avatar{width:208px;height:208px}.transcript{max-height:300px}.flashcard,.fc-grade,.drag-meter{max-width:620px;margin-left:auto;margin-right:auto}.fc-grade{margin-top:14px}.strat-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.strat-grid .card,.strat-grid .card+.card{margin-top:0}.heat{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (min-width:1500px){.catalog-grid{grid-template-columns:1fr 1fr 1fr}.wrap{max-width:1380px}}@media (min-width:1900px){.wrap{max-width:1560px}}html,body{height:100%}#__next-root{min-height:100dvh}.demo-banner{z-index:95;background:var(--ink);color:var(--bg);letter-spacing:.01em;text-align:center;padding:7px 14px;font-size:12.5px;font-weight:600;position:sticky;top:0}.demo-banner a{color:var(--bg);text-underline-offset:3px;text-decoration:underline}.auth-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);width:100%;max-width:420px;box-shadow:var(--shadow-lg);padding:28px 24px}.auth-card h1{margin:14px 0 6px;font-size:24px}.auth-card .sub{color:var(--ink2);margin-bottom:8px;font-size:14.5px;line-height:1.55}.auth-alt{color:var(--ink3);align-items:center;gap:12px;margin:18px 0;font-size:12px;font-weight:600;display:flex}.auth-alt:before,.auth-alt:after{content:"";background:var(--line);flex:1;height:1px}.auth-err{background:var(--surface2);border:1px solid var(--ink);border-radius:12px;margin-top:14px;padding:10px 14px;font-size:14px;font-weight:600}.side-nav a.tab{width:100%;text-decoration:none}.side-nav .tab{border-radius:12px;flex-direction:row;justify-content:flex-start;gap:10px;width:100%;padding:10px 12px;font-size:14px}.side-nav .tab .dot{display:none}.side-nav .tab.active{background:var(--surface2)}main.wrap{display:block}a.lesson-row,a.course-row{text-decoration:none}.fcard{text-align:center;cursor:pointer;place-items:center;min-height:210px;padding:28px;display:grid}.fcard .face{max-width:52ch;font-size:19px;font-weight:600;line-height:1.5}select,input[type=email],input[type=password]{background:var(--surface);border:1.5px solid var(--line);border-radius:12px;width:100%;padding:12px 16px}.tp-log .bubble p{white-space:pre-wrap}.streaming-caret:after{content:"▍";opacity:.6}.kb-result{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);margin-top:10px;padding:14px 16px}.kb-result .prov{color:var(--ink2);margin-top:6px;font-size:12px;font-weight:600}
