.player{width:100%;container-type:inline-size;container-name:player}.stage{position:relative;width:100%;aspect-ratio:16 / 9;max-height:74vh;margin:0 auto;container-type:inline-size;overflow:hidden;isolation:isolate;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid var(--ink);color:var(--fg);background:var(--bg);transition:background .9s ease}@container player (max-width: 600px){.stage{aspect-ratio:1 / 1;max-height:none}}.theme-intro{--bg: #0f172a;--fg: #ffffff;--soft: #cbd5e1;--acc: #a3e635;--panel: #1e293b}.theme-body-a{--bg: #f6f3ec;--fg: #0f172a;--soft: #475569;--acc: #4a8500;--panel: #ffffff}.theme-body-b{--bg: #e9f1dc;--fg: #0f172a;--soft: #475569;--acc: #4a8500;--panel: #ffffff}.theme-outro{--bg: #14532d;--fg: #ffffff;--soft: #d9f99d;--acc: #a3e635;--panel: #166534}.stage-pattern{position:absolute;inset:-40px;z-index:0;opacity:.55;pointer-events:none;background-image:radial-gradient(color-mix(in srgb,var(--fg) 14%,transparent) 1.2px,transparent 1.2px);background-size:22px 22px;animation:pattern-drift 40s linear infinite}.is-paused .stage-pattern{animation-play-state:paused}@keyframes pattern-drift{to{transform:translate(22px,22px)}}.stage-title{position:absolute;top:3cqw;left:3.4cqw;z-index:3;max-width:70%;font-family:var(--pixel);font-size:max(11px,1.5cqw);color:var(--acc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene{position:absolute;inset:0;z-index:1;display:grid;padding:8cqw 5cqw 7cqw;gap:4cqw}.tr-fade{animation:tr-fade .6s ease both}.tr-push{animation:tr-push .6s cubic-bezier(.2,.8,.2,1) both}.tr-wipe{animation:tr-wipe .7s cubic-bezier(.6,0,.2,1) both}.tr-rise{animation:tr-rise .6s cubic-bezier(.2,.8,.2,1) both}.tr-zoom{animation:tr-zoom .7s cubic-bezier(.2,.8,.2,1) both}@keyframes tr-fade{0%{opacity:0}}@keyframes tr-push{0%{opacity:0;transform:translate(6%)}}@keyframes tr-wipe{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes tr-rise{0%{opacity:0;transform:translateY(5%)}}@keyframes tr-zoom{0%{opacity:0;transform:scale(1.05);filter:blur(6px)}}.layout-text{grid-template-columns:1fr;align-content:center}.layout-text .scene-text{max-width:84%}.layout-text .heading{font-size:max(20px,5.6cqw)}.layout-text .t-title .heading{font-size:max(26px,7.4cqw)}.layout-text .facts li,.layout-text .steps li,.layout-text .ticks li{font-size:max(14px,2.7cqw)}.layout-text .facts,.layout-text .steps,.layout-text .ticks{gap:1.6cqw}.layout-text.v-center{justify-items:center;text-align:center}.layout-text.v-center .heading:after{margin-left:auto;margin-right:auto}.layout-text.v-center .facts,.layout-text.v-center .ticks{align-items:center}.layout-text.v-center .facts li:before{display:none}.layout-text.v-center .t-definition .rule{margin-left:auto;margin-right:auto}.layout-text.v-columns .scene-text{max-width:100%;display:grid;grid-template-columns:.9fr 1.1fr;gap:5cqw;align-items:center}.layout-text.v-columns .heading{font-size:max(22px,6cqw);margin:0}.layout-text.v-columns .highlight{grid-column:2;justify-self:start}@container (max-width: 560px){.layout-text.v-columns .scene-text{grid-template-columns:1fr;gap:3cqw}.layout-text.v-columns .highlight{grid-column:1}}.layout-split-right{grid-template-columns:1.05fr 1fr;align-items:center}.layout-split-left{grid-template-columns:1fr 1.05fr;align-items:center}.layout-split-left .frame{order:1}.layout-split-left .scene-text,.layout-split-right .frame{order:2}.layout-split-right .scene-text{order:1}.layout-hero{padding:0;grid-template-rows:1fr auto}.layout-hero .frame{position:absolute;inset:0;width:100%;height:100%;border:0;align-self:stretch}.layout-hero .frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0f172a33,#0f172a66,#0f172af2 80%)}.layout-hero .scene-text{grid-row:2;padding:0 5cqw 8cqw;--fg: #ffffff;--soft: #e2e8f0;color:#fff}.layout-picture{grid-template-rows:1fr auto;gap:2cqw}.layout-picture .frame{height:100%;min-height:0}.layout-picture .frame.k-diagram img{object-fit:contain;background:#fff}.layout-picture .heading{font-size:max(16px,3cqw);margin:0}.layout-picture .heading:after{display:none}.layout-picture .facts{flex-direction:row;flex-wrap:wrap;gap:.6cqw 2.4cqw;margin-top:1cqw}@container (max-width: 560px){.scene{padding:11cqw 6cqw 10cqw;gap:4cqw}.layout-split-right,.layout-split-left{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;align-items:start}.layout-split-right .frame,.layout-split-left .frame{order:1;height:100%;min-height:0}.layout-split-right .scene-text,.layout-split-left .scene-text{order:2}.layout-text .scene-text{max-width:100%}.layout-hero .scene-text{padding:0 6cqw 12cqw}}.frame{position:relative;margin:0;overflow:hidden;height:74%;align-self:center;border:1px solid color-mix(in srgb,var(--fg) 18%,transparent);background:var(--panel)}.frame img{width:100%;height:100%;object-fit:cover;display:block;animation:img-in .8s ease both}.f-top img{object-position:50% 20%}.f-bottom img{object-position:50% 80%}.f-left img{object-position:20% 50%}.f-right img{object-position:80% 50%}.is-playing .m-in img{animation:img-in .8s ease both,m-in 12s ease-out both}.is-playing .m-out img{animation:img-in .8s ease both,m-out 12s ease-out both}.is-playing .m-pan-left img{animation:img-in .8s ease both,m-pan-left 12s ease-in-out both}.is-playing .m-pan-right img{animation:img-in .8s ease both,m-pan-right 12s ease-in-out both}.is-playing .layout-picture .frame img{animation:img-in .8s ease both,m-in-soft 12s ease-out both}.frame.k-diagram img{object-fit:contain;background:#fff}.is-playing .frame.k-diagram img{animation:img-in .8s ease both,m-in-soft 12s ease-out both}@keyframes img-in{0%{opacity:0}}@keyframes m-in{0%{transform:scale(1)}to{transform:scale(1.12)}}@keyframes m-in-soft{0%{transform:scale(1)}to{transform:scale(1.04)}}@keyframes m-out{0%{transform:scale(1.14)}to{transform:scale(1.02)}}@keyframes m-pan-left{0%{transform:scale(1.12) translate(3%)}to{transform:scale(1.12) translate(-3%)}}@keyframes m-pan-right{0%{transform:scale(1.12) translate(-3%)}to{transform:scale(1.12) translate(3%)}}.scene-text{position:relative;z-index:1;min-width:0}.heading{font-family:var(--pixel);font-weight:600;font-size:max(18px,4.4cqw);line-height:1.08;margin:0 0 1.6cqw;animation:rise .55s ease both}.heading:after{content:"";display:block;width:6cqw;height:max(2px,.45cqw);background:var(--acc);margin-top:1.2cqw}.t-title .heading{font-size:max(24px,6.2cqw)}.facts,.steps,.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.2cqw}.facts li,.steps li,.ticks li{font-size:max(13px,2.1cqw);line-height:1.35;display:flex;gap:1.4cqw;align-items:baseline}.facts li{color:var(--soft)}.facts li:before{content:"";flex:none;width:.9cqw;height:.9cqw;min-width:6px;min-height:6px;background:var(--acc);transform:translateY(-.15em)}.steps li,.ticks li{color:var(--fg)}.steps b{font-family:var(--pixel);flex:none;display:grid;place-items:center;width:3.6cqw;height:3.6cqw;min-width:22px;min-height:22px;background:var(--acc);color:#0f172a;font-size:max(12px,1.8cqw)}.ticks li:before{content:"";flex:none;width:1.2cqw;height:.7cqw;min-width:9px;min-height:5px;border-left:2px solid var(--acc);border-bottom:2px solid var(--acc);transform:rotate(-45deg) translateY(-.2em)}.highlight{margin-top:2cqw;display:inline-flex;gap:1.2cqw;align-items:baseline;padding:1cqw 1.8cqw;background:var(--acc);color:#0f172a;font-weight:700;font-size:max(14px,2.4cqw)}.highlight .arrow{font-family:var(--pixel)}.t-definition .term{font-family:var(--pixel);font-weight:700;font-size:max(28px,7cqw);line-height:1;animation:rise .55s ease both}.t-definition .rule{width:10cqw;height:max(3px,.6cqw);background:var(--acc);margin:2.2cqw 0;animation:grow .6s ease .2s both;transform-origin:left}.t-definition .meaning{font-size:max(16px,3cqw);line-height:1.3;margin:0}.t-definition .sub{color:var(--soft);font-size:max(13px,2cqw);margin:1.4cqw 0 0}.compare{display:flex;flex-direction:column;border-top:1px solid color-mix(in srgb,var(--fg) 25%,transparent)}.compare-row{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid color-mix(in srgb,var(--fg) 25%,transparent)}.compare-row span{padding:1.3cqw 1.4cqw;font-size:max(13px,2.1cqw)}.compare-row span+span{border-left:1px solid color-mix(in srgb,var(--fg) 25%,transparent)}.compare-row span:first-child{font-weight:700}.quiz-label{font-family:var(--pixel);color:var(--acc);font-size:max(12px,1.8cqw);margin-bottom:1cqw}.quiz-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1.2cqw}.quiz-options li{display:flex;gap:1.6cqw;align-items:center;padding:1.2cqw 1.6cqw;font-size:max(13px,2.2cqw);border:1px solid color-mix(in srgb,var(--fg) 30%,transparent);transition:background .3s,opacity .3s,border-color .3s}.quiz-options b{font-family:var(--pixel);color:var(--acc)}.quiz-options li.correct{background:var(--acc);border-color:var(--acc);color:#0f172a}.quiz-options li.correct b{color:#0f172a}.quiz-options li.dim{opacity:.4}.reveal{opacity:0;animation:reveal-line .5s cubic-bezier(.2,.8,.2,1) forwards}.is-paused .scene .reveal{opacity:1;animation:none}@keyframes reveal-line{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}@keyframes grow{0%{transform:scaleX(0)}}.sticker{position:absolute;z-index:2;top:7cqw;right:4cqw;width:13cqw;max-width:130px;aspect-ratio:1;pointer-events:none;animation:pop .6s cubic-bezier(.2,1.4,.4,1) .6s both}.sticker img{width:100%;height:100%;object-fit:contain;animation:wobble 4s ease-in-out 1.4s infinite}@container (max-width: 560px){.sticker{top:10cqw;width:18cqw}}@keyframes pop{0%{opacity:0;transform:scale(.4) rotate(-10deg)}}@keyframes wobble{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg) translateY(-4%)}}.stage-cc{position:absolute;left:50%;bottom:4.8cqw;transform:translate(-50%);z-index:4;max-width:86%;padding:.8cqw 1.6cqw;background:#0f172ae0;color:#fff;font-size:max(12px,1.7cqw);text-align:center;line-height:1.35}.stage-overlay{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0f172a73;color:#fff;font-family:var(--pixel);font-size:max(14px,2cqw)}.play-big{width:max(52px,8cqw);height:max(52px,8cqw);background:var(--lime);color:#0f172a;display:grid;place-items:center}.stage-progress{position:absolute;left:3.4cqw;right:3.4cqw;bottom:2cqw;z-index:4;display:flex;gap:4px}.stage-progress span{flex:1;height:max(4px,.6cqw);background:color-mix(in srgb,var(--fg) 22%,transparent);overflow:hidden;position:relative}.stage-progress span.done{background:var(--acc)}.stage-progress span.current{background:color-mix(in srgb,var(--fg) 45%,transparent)}.stage-progress span.active:after{content:"";position:absolute;inset:0;background:var(--acc);transform-origin:left;animation:fill var(--dur, 6s) steps(16,end) forwards}@keyframes fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.player-controls{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}.scene-count{font-family:var(--pixel);font-size:.95rem}.tool-btn.on{border-color:var(--ink);background:var(--ink);color:#fff}.transcript{margin:10px 0 0;padding-left:20px;font-size:.92rem;color:var(--muted);display:flex;flex-direction:column;gap:6px}.transcript li{cursor:pointer}.transcript li.current,.transcript li strong{color:var(--ink)}@container (max-width: 560px){.scene .heading,.layout-text .heading,.layout-text.v-columns .heading{font-size:max(20px,8.6cqw)}.scene .t-title .heading,.layout-text .t-title .heading{font-size:max(24px,10cqw)}.scene .facts li,.scene .steps li,.scene .ticks li,.layout-text .facts li,.layout-text .steps li,.layout-text .ticks li{font-size:max(14px,4.8cqw)}.scene .facts,.scene .steps,.scene .ticks{gap:2.6cqw}.compare-row span,.quiz-options li{font-size:max(14px,4.1cqw);padding:2.2cqw 2.6cqw}.t-definition .term{font-size:max(28px,11cqw)}.t-definition .meaning{font-size:max(16px,5.2cqw)}.t-definition .sub{font-size:max(13px,3.8cqw)}.highlight{font-size:max(14px,4.4cqw);padding:1.8cqw 3cqw}.steps b{width:6.4cqw;height:6.4cqw;font-size:max(12px,3.4cqw)}.stage-title{font-size:max(11px,3cqw)}.quiz-label{font-size:max(12px,3.4cqw)}.layout-split-right,.layout-split-left{grid-template-rows:minmax(32%,1fr) auto;gap:3cqw}.layout-split-right .heading,.layout-split-left .heading{font-size:max(18px,6.6cqw);margin-bottom:1.6cqw}.layout-split-right .heading:after,.layout-split-left .heading:after{margin-top:1.6cqw}.layout-split-right .facts li,.layout-split-left .facts li,.layout-split-right .steps li,.layout-split-left .steps li{font-size:max(13px,4cqw)}.layout-split-right .facts,.layout-split-left .facts,.layout-split-right .steps,.layout-split-left .steps{gap:1.6cqw}.layout-split-right .highlight,.layout-split-left .highlight{font-size:max(13px,3.8cqw);margin-top:2.4cqw;padding:1.4cqw 2.4cqw}}@media(prefers-reduced-motion:reduce){.stage *,.stage-pattern{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.reveal{opacity:1}}.auth{--paper: #f6f2ea;--ink: #0f172a;--ink-soft: #5b6472;--hair: #d9d2c5;--lime: #a3e635;--lime-ink: #4d7c0f;position:relative;min-height:100vh;display:grid;grid-template-rows:1fr auto;place-items:center;padding:24px 16px;background:var(--paper);color:var(--ink);font-family:Public Sans,system-ui,sans-serif;overflow:hidden;background-image:radial-gradient(rgba(15,23,42,.06) 1px,transparent 1px);background-size:22px 22px}.doodles{position:absolute;inset:0;width:100%;height:100%;color:var(--ink);opacity:.55;pointer-events:none}.doodles .d{opacity:0;animation:ink .9s ease forwards}.doodles .d1{animation-delay:1.4s}.doodles .d2{animation-delay:1.55s}.doodles .d3{animation-delay:1.7s}.doodles .d4{animation-delay:1.85s}.doodles .d5{animation-delay:2s}.doodles .d6{animation-delay:2.1s}.doodles .d7{animation-delay:2.2s}.doodles .d8{animation-delay:2.3s}@keyframes ink{0%{opacity:0}to{opacity:1}}@media(max-width:760px){.doodles .d1,.doodles .d3,.doodles .d6,.doodles .d7,.doodles .d8{display:none}}.auth-card{position:relative;z-index:1;width:100%;max-width:400px;background:#fffdf9;border:1px solid var(--hair);border-radius:18px;padding:28px 28px 24px}.brand{position:relative;height:56px;margin-bottom:18px;display:flex;align-items:center}.brand-mark{width:48px;height:48px;border-radius:12px;position:absolute;left:50%;transform:translate(-50%) scale(1.25);transition:transform .6s cubic-bezier(.2,.9,.2,1),left .6s cubic-bezier(.2,.9,.2,1)}.brand-word{position:absolute;left:60px;font-weight:800;font-size:1.9rem;letter-spacing:-.03em;line-height:1;clip-path:inset(0 100% 0 0);transform:translate(-16px);opacity:0;transition:clip-path .6s ease .15s,transform .6s ease .15s,opacity .3s ease .15s}.w-nova{color:var(--ink)}.w-lern,.w-dot{color:#5ba300}.stage-1 .brand-mark,.stage-2 .brand-mark{left:0;transform:translate(0) scale(1)}.stage-1 .brand-word,.stage-2 .brand-word{clip-path:inset(0 0 0 0);transform:none;opacity:1}.auth-body{opacity:0;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease}.stage-2 .auth-body{opacity:1;transform:none}.auth-title{font-family:Pixelify Sans,Public Sans,sans-serif;font-weight:600;font-size:1.9rem;margin:0 0 4px}.auth-sub{color:var(--ink-soft);margin:0 0 18px;font-size:.95rem}.auth-error{margin:0 0 14px;padding:10px 12px;border-left:3px solid #dc2626;background:#fdf1f0;color:#991b1b;font-size:.9rem;border-radius:0 8px 8px 0}.auth-form{display:flex;flex-direction:column;gap:14px}.field-line{display:flex;flex-direction:column;gap:4px}.field-line span{font-size:.78rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.field-line input{font:inherit;font-size:1rem;padding:8px 0;border:0;border-bottom:1px solid var(--hair);background:transparent;color:var(--ink);outline:none;border-radius:0}.field-line input:focus{border-bottom-color:var(--ink)}.auth-primary{margin-top:6px;padding:13px 16px;border:0;border-radius:10px;background:var(--ink);color:#fff;font:inherit;font-weight:700;font-size:1rem;cursor:pointer}.auth-primary:hover:not(:disabled){background:#1e293b}.auth-primary:disabled{opacity:.5;cursor:not-allowed}.auth-or{display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-size:.78rem;margin:16px 0}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--hair)}.auth-google{width:100%;display:inline-flex;justify-content:center;align-items:center;gap:10px;padding:12px 16px;border:1px solid var(--hair);border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-weight:600;cursor:pointer}.auth-google:hover:not(:disabled){border-color:var(--ink)}.auth-google:disabled{opacity:.5;cursor:not-allowed}.auth-switch{margin:18px 0 0;text-align:center;font-size:.9rem;color:var(--ink-soft)}.auth-switch button{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--lime-ink);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.auth-foot{position:relative;z-index:1;font-family:Pixelify Sans,Public Sans,sans-serif;color:var(--ink-soft);font-size:1rem;padding-top:18px}@media(max-width:480px){.auth-card{padding:22px 20px 20px;border-radius:14px}.brand-word{font-size:1.7rem}}:root{--paper: #f6f3ec;--paper-2: #fffdf8;--ink: #0f172a;--ink-2: #334155;--muted: #6b7280;--hair: #d9d2c5;--green: #5ba300;--green-dark: #4a8500;--green-soft: #eaf5d8;--lime: #a3e635;--danger: #b91c1c;--danger-soft: #fbe9e7;--amber: #92400e;--amber-soft: #fdf1d6;--pixel: "Pixelify Sans", "Public Sans", system-ui, sans-serif;--body: "Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--radius: 6px;font-family:var(--body);color:var(--ink);background:var(--paper);accent-color:var(--green)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--paper);background-image:radial-gradient(rgba(15,23,42,.07) 1px,transparent 1px);background-size:24px 24px;-webkit-font-smoothing:antialiased}::selection{background:var(--lime);color:var(--ink)}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit}input,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--green);outline-offset:2px}h1,h2,h3{margin:0 0 8px;font-family:var(--pixel);font-weight:600;letter-spacing:0;line-height:1.1}h1{font-size:2.2rem}h2{font-size:1.45rem}h3{font-size:1.15rem}p{margin:0 0 10px;line-height:1.55}.muted{color:var(--muted)}.small{font-size:.85rem}.pixel{font-family:var(--pixel)}.sec{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:2px solid var(--green);margin-bottom:4px}.sec h2,.sec h1{margin:0}.shell{min-height:100vh;display:flex;flex-direction:column;padding-bottom:84px}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-bottom:1px solid var(--hair);background:var(--paper);position:sticky;top:0;z-index:10}.logo{display:inline-flex;align-items:center}.logo img{display:block}.avatar-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--ink);background:var(--ink);color:#fff;font-weight:700;overflow:hidden;padding:0;display:grid;place-items:center}.avatar-btn img{width:100%;height:100%;object-fit:cover}.content{flex:1;padding:28px 24px 40px;max-width:980px;width:100%;margin:0 auto}.bottomnav{position:fixed;left:0;right:0;bottom:0;z-index:20;height:68px;display:flex;justify-content:center;align-items:stretch;gap:4px;padding:0 8px;background:var(--paper);border-top:1px solid var(--hair)}.navlink{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:128px;padding:8px 10px;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;position:relative}.navlink svg{width:22px;height:22px}.navlink:hover,.navlink.active{color:var(--ink)}.navlink.active:after{content:"";position:absolute;left:22%;right:22%;bottom:8px;height:2px;background:var(--green)}@media(max-width:760px){.topbar{height:68px;padding:0 16px}.topbar .logo img{height:44px!important}.content{padding:18px 16px 32px}.bottomnav{height:64px}.navlink{min-width:0;flex:1;padding:6px 2px;font-size:.6rem;letter-spacing:.04em}.hide-mobile{display:none}}.stack{display:flex;flex-direction:column;gap:28px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:36px}@media(max-width:860px){.grid-2{grid-template-columns:1fr;gap:28px}}.card{padding:0}.card+.card{margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--radius);border:1px solid var(--ink);font-weight:600;background:var(--ink);color:#fff;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:#1e293b}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:hover:not(:disabled){background:var(--green-dark);border-color:var(--green-dark)}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--hair)}.btn.ghost:hover:not(:disabled){border-color:var(--ink);background:transparent}.btn.danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn.lg{padding:14px 22px;font-size:1.05rem}.btn.sm{padding:6px 12px;font-size:.85rem}.icon-btn{width:36px;height:36px;border-radius:var(--radius);border:1px solid var(--hair);background:transparent;display:grid;place-items:center}.icon-btn:hover:not(:disabled){border-color:var(--ink)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn.recording,.tool-btn.recording{color:var(--danger);border-color:var(--danger);animation:pulse 1.2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #b91c1c4d}50%{box-shadow:0 0 0 6px #b91c1c00}}.link-btn{background:none;border:0;color:var(--green-dark);font-weight:600;padding:0;text-decoration:underline;text-underline-offset:3px}.chip{display:inline-block;padding:2px 8px;border:1px solid var(--hair);border-radius:999px;font-size:.75rem;font-weight:600;color:var(--ink-2);white-space:nowrap}.score-pill{font-family:var(--pixel);font-size:1.05rem;font-weight:600;min-width:52px;text-align:right}.score-pill.good{color:var(--green-dark)}.score-pill.mid{color:var(--amber)}.score-pill.low{color:var(--danger)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-weight:600;font-size:.9rem}.input,textarea.input{padding:10px 12px;border:1px solid var(--hair);border-radius:var(--radius);background:var(--paper-2);width:100%;outline:none}.input:focus,textarea.input:focus{border-color:var(--ink)}textarea.input{resize:vertical;min-height:90px}.error-banner{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--danger-soft);color:var(--danger);padding:10px 14px;border-radius:var(--radius);margin-bottom:14px;font-size:.92rem}.error-banner .icon-btn{width:28px;height:28px;border:0;background:transparent;color:inherit}.fullscreen-center{min-height:100vh;display:grid;place-items:center}.spinner-wrap{display:inline-flex;align-items:center;gap:10px;color:var(--muted)}.spinner{border:3px solid var(--hair);border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.empty{padding:28px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.empty h3{margin-bottom:6px}.lesson-list,.exam-list{list-style:none;margin:0;padding:0}.lesson-item,.exam-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 2px;border-bottom:1px solid var(--hair)}.lesson-item:hover strong,.exam-item:hover strong{color:var(--green-dark)}.lesson-item-main{display:flex;flex-direction:column;gap:3px;min-width:0}.lesson-item-main strong{font-size:1.02rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-list{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto}.check-item{display:flex;align-items:center;gap:12px;padding:10px 2px;border-bottom:1px solid var(--hair);cursor:pointer}.check-item.selected strong{color:var(--green-dark)}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}@media(max-width:600px){.mode-grid{grid-template-columns:1fr}}.mode-card{border:0;border-right:1px solid var(--hair);padding:14px 12px;text-align:left;background:transparent}.mode-card:last-child{border-right:0}@media(max-width:600px){.mode-card{border-right:0;border-bottom:1px solid var(--hair)}.mode-card:last-child{border-bottom:0}}.mode-card.selected{background:var(--green-soft)}.mode-card.selected strong{color:var(--green-dark)}.mode-card strong{display:block;margin-bottom:2px}.greet{font-family:var(--pixel);font-weight:700;font-size:clamp(2rem,5vw,2.9rem);line-height:1.05;margin:6px 0 4px}.greet .dot{color:var(--green)}.greet-sub{color:var(--muted);font-size:1.02rem;margin:0 0 22px}.cta{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:18px 22px;border-radius:var(--radius);background:var(--green);color:#fff;border:1px solid var(--green)}.cta:hover{background:var(--green-dark)}.cta strong{font-family:var(--pixel);font-size:1.5rem;font-weight:600;display:block}.cta span{font-size:.9rem;opacity:.92}.cta svg{flex:none}.stats{display:flex;gap:28px;flex-wrap:wrap}.stat strong{display:block;font-family:var(--pixel);font-size:1.6rem;font-weight:600}.stat span{color:var(--muted);font-size:.82rem}.chat{display:flex;flex-direction:column;gap:22px;min-height:calc(100vh - 236px)}.chat-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.chat-scroll{display:flex;flex-direction:column;gap:26px;flex:1}.slogan{margin:auto 0;padding:48px 0 32px;text-align:center}.slogan h2{font-size:clamp(1.5rem,4vw,2.4rem);font-weight:600;margin-bottom:8px}.slogan p{color:var(--muted);margin:0}.turn{display:flex;flex-direction:column;gap:6px}.turn.user{align-items:flex-end}.turn-meta{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.msg{line-height:1.55}.msg.user{max-width:min(82%,640px);padding:12px 16px;border:1px solid var(--hair);border-radius:var(--radius);background:var(--paper-2);white-space:pre-wrap}.msg.assistant{padding:0 0 8px;border-bottom:1px solid var(--hair)}.msg.assistant :is(h1,h2,h3){margin-top:12px;font-size:1rem}.msg.assistant pre{background:var(--paper-2);padding:10px;border:1px solid var(--hair);border-radius:var(--radius);overflow:auto}.msg.assistant code{background:var(--paper-2);padding:1px 5px;border-radius:4px;font-size:.9em}.msg.assistant ul,.msg.assistant ol{padding-left:20px}.msg-files{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}.preparing{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.typing{display:inline-flex;gap:4px;align-items:center}.typing i{width:7px;height:7px;background:var(--green);animation:blink 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}.composer{border:1px solid var(--hair);border-radius:var(--radius);background:var(--paper-2);padding:10px 12px;position:sticky;bottom:76px}.composer:focus-within{border-color:var(--ink)}.composer.listening{border-color:var(--danger)}.composer textarea{width:100%;border:0;outline:none;resize:none;min-height:44px;max-height:160px;padding:6px 2px;background:transparent;font-size:1rem}.composer-bar{display:flex;align-items:center;justify-content:space-between;gap:8px}.tool-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:var(--radius);border:1px solid var(--hair);background:transparent;font-size:.85rem;font-weight:600}.tool-btn:hover:not(:disabled){border-color:var(--ink)}.tool-btn:disabled{opacity:.45;cursor:not-allowed}.attachments{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.attachment{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 4px;border:1px solid var(--hair);border-radius:var(--radius);font-size:.8rem}.attachment img{width:30px;height:30px;object-fit:cover;border-radius:4px}.attachment .file-ico{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--hair);border-radius:4px;font-weight:700;font-size:.6rem}.attachment button{border:0;background:transparent;color:var(--muted);font-size:1rem;padding:0 4px}.interim{color:var(--muted);font-style:italic}@media(max-width:760px){.composer{bottom:70px}.chat{min-height:calc(100vh - 182px)}}.question{padding:20px 0;border-bottom:1px solid var(--hair)}.q-num{font-family:var(--pixel);color:var(--green-dark);font-size:.95rem}.q-text{font-size:1.08rem;font-weight:600;margin:4px 0 12px}.options{display:flex;flex-direction:column;gap:6px}.option{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--hair);border-radius:var(--radius);cursor:pointer}.option.selected{border-color:var(--ink);background:var(--paper-2)}.option.correct{border-color:var(--green);background:var(--green-soft);color:var(--green-dark)}.option.wrong{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.feedback{margin-top:10px;padding:8px 0 0;border-top:1px dashed var(--hair);font-size:.92rem}.feedback.good{color:var(--green-dark)}.feedback.mid{color:var(--amber)}.feedback.low{color:var(--danger)}.result-hero{padding:8px 0 20px;border-bottom:2px solid var(--green)}.result-hero .big{font-family:var(--pixel);font-size:3.4rem;font-weight:700;line-height:1}.voice-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.step-title{display:flex;align-items:baseline;gap:10px;margin:22px 0 10px}.step-title h3{margin:0}.step-num{font-family:var(--pixel);color:var(--green-dark);font-size:1rem}.exam-timer{font-family:var(--pixel);font-size:1.05rem;color:var(--ink);font-variant-numeric:tabular-nums}.quick{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--hair)}
