:root{color-scheme:light;--font-sans: "Nunito", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--font-headline: var(--font-sans);--font-mono: "JetBrains Mono", ui-monospace, monospace;--text-page-title: 1.625rem;--text-section-title: 1.25rem;--text-card-title: 1rem;--text-stat: 1.75rem;--text-lead: .9375rem;--text-body: .875rem;--text-small: .8125rem;--text-caption: .75rem;--text-label: .6875rem;--bg: #EEF7EC;--bg-2: rgba(14, 35, 24, .05);--bg-3: rgba(14, 35, 24, .09);--ink: #0E2318;--ink-2: #35493E;--ink-3: #4F6358;--card-surface: rgba(255, 255, 255, .9);--hair: rgba(14, 35, 24, .09);--hair-strong: rgba(14, 35, 24, .17);--leaf-vivid: #58CC02;--leaf-ink: #1E6B00;--leaf-soft: rgba(88, 204, 2, .16);--sky-vivid: #1CB0F6;--sky-ink: #075E99;--sky-soft: rgba(28, 176, 246, .16);--sunny-vivid: #FFC800;--sunny-ink: #7A5200;--sunny-soft: rgba(255, 200, 0, .22);--grape-vivid: #A560F0;--grape-ink: #6A32C0;--grape-soft: rgba(165, 96, 240, .15);--coral-vivid: #FF6B5A;--coral-ink: #A82818;--coral-soft: rgba(255, 107, 90, .16);--on-coral-ink: #FFFFFF;--accent: var(--leaf-vivid);--accent-face: #227600;--on-accent: #FFFFFF;--accent-base: #164F00;--accent-ink: #1E6B00;--accent-soft: rgba(88, 204, 2, .18);--accent-glow: rgba(88, 204, 2, .45);--blob-1: var(--accent);--blob-2: #00C2A8;--blob-3: #38A8F5;--blob-opacity: .55;--glass-bg: rgba(255, 255, 255, .64);--glass-bg-strong: rgba(255, 255, 255, .76);--glass-bg-inner: rgba(255, 255, 255, .5);--glass-fallback: #F9FCF8;--glass-border: rgba(255, 255, 255, .75);--glass-edge: rgba(14, 35, 24, .08);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(255, 255, 255, .25);--glass-sheen: rgba(255, 255, 255, .55);--blur-2: 24px;--saturate-2: 190%;--scrim: rgba(14, 35, 24, .32);--shadow-1: 0 1px 2px rgba(14, 35, 24, .05), 0 8px 24px -10px rgba(14, 35, 24, .16);--shadow-2: 0 2px 6px rgba(14, 35, 24, .06), 0 24px 48px -18px rgba(14, 35, 24, .28);--radius-card: 28px;--radius-chrome: 32px;--radius-control: 16px;--radius-pill: 999px;--spring-snappy: linear(0, .0787, .239, .427, .616, .767, .884, .969, 1.02, 1.05, 1.06, 1.05, 1.05, 1.04, 1.02, 1.02, 1.01, 1, 1, .998, .997, .997, .997, .998, .998, .999, .999, 1, 1);--spring-snappy-ms: .5s;--spring-bouncy: linear(0, .145, .45, .77, 1.01, 1.15, 1.19, 1.17, 1.11, 1.05, .999, .971, .963, .967, .979, .99, 1, 1.01, 1.01, 1.01, 1, 1, 1, .999, .999, .999, .999, 1, 1);--spring-bouncy-ms: .82s;--spring-gentle: linear(0, .0498, .155, .285, .417, .545, .652, .741, .813, .87, .914, .946, .968, .983, .994, 1, 1, 1.01, 1.01, 1.01, 1.01, 1, 1, 1, 1, 1, 1, 1, 1);--spring-gentle-ms: .65s;--spring: var(--spring-bouncy);--ease: cubic-bezier(.22, 1, .36, 1);--card: var(--card-surface);--goo-fill: color-mix(in srgb, var(--accent) 26%, #FFFFFF);--keyboard-inset: 0px}:root.dark,.dark{color-scheme:dark;--bg: #06120D;--bg-2: rgba(236, 247, 239, .06);--bg-3: rgba(236, 247, 239, .1);--ink: #ECF7EF;--ink-2: #BCD0C3;--ink-3: #9AB2A3;--card-surface: rgba(14, 30, 22, .94);--hair: rgba(236, 247, 239, .09);--hair-strong: rgba(236, 247, 239, .18);--leaf-vivid: #6AD61C;--leaf-ink: #8BE04A;--leaf-soft: rgba(106, 214, 28, .2);--sky-vivid: #3CBDF8;--sky-ink: #6CCBFA;--sky-soft: rgba(60, 189, 248, .2);--sunny-vivid: #FFC81F;--sunny-ink: #FFD84D;--sunny-soft: rgba(255, 200, 31, .18);--grape-vivid: #B584F5;--grape-ink: #D2B0FB;--grape-soft: rgba(181, 132, 245, .2);--coral-vivid: #FF8070;--coral-ink: #FF9E92;--coral-soft: rgba(255, 128, 112, .2);--on-coral-ink: #2E0803;--accent: var(--leaf-vivid);--accent-face: #6AD61C;--on-accent: #0B2100;--accent-base: #3A8C00;--accent-ink: #8BE04A;--accent-soft: rgba(106, 214, 28, .2);--accent-glow: rgba(106, 214, 28, .4);--blob-1: #3FA800;--blob-2: #00A38C;--blob-3: #1D7FD6;--blob-opacity: .6;--glass-bg: rgba(15, 34, 25, .66);--glass-bg-strong: rgba(12, 28, 21, .78);--glass-bg-inner: rgba(236, 247, 239, .05);--glass-fallback: #0F2219;--glass-border: rgba(236, 247, 239, .1);--glass-edge: rgba(0, 0, 0, .35);--glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .09), inset 0 -1px 0 rgba(255, 255, 255, .02);--glass-sheen: rgba(255, 255, 255, .1);--scrim: rgba(0, 0, 0, .5);--shadow-1: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -10px rgba(0, 0, 0, .55);--shadow-2: 0 2px 6px rgba(0, 0, 0, .35), 0 26px 52px -18px rgba(0, 0, 0, .7);--goo-fill: color-mix(in srgb, var(--accent) 30%, #0F2219)}:root[data-accent=sky]{--accent: var(--sky-vivid);--accent-face: #0767A8;--on-accent: #FFFFFF;--accent-base: #04466F;--accent-ink: #075E99;--accent-soft: rgba(28, 176, 246, .18);--accent-glow: rgba(28, 176, 246, .45)}:root.dark[data-accent=sky]{--accent-face: #3CBDF8;--on-accent: #002338;--accent-base: #0A7DB8;--accent-ink: #6CCBFA;--accent-soft: rgba(60, 189, 248, .2);--accent-glow: rgba(60, 189, 248, .4);--blob-1: #1D7FD6}:root[data-accent=sunny]{--accent: var(--sunny-vivid);--accent-face: #8F5F00;--on-accent: #FFFFFF;--accent-base: #5E3E00;--accent-ink: #7A5200;--accent-soft: rgba(255, 200, 0, .22);--accent-glow: rgba(255, 200, 0, .5)}:root.dark[data-accent=sunny]{--accent-face: #FFC81F;--on-accent: #2A1C00;--accent-base: #B98800;--accent-ink: #FFD84D;--accent-soft: rgba(255, 200, 31, .18);--accent-glow: rgba(255, 200, 31, .38);--blob-1: #C99400}:root[data-accent=grape]{--accent: var(--grape-vivid);--accent-face: #7038C8;--on-accent: #FFFFFF;--accent-base: #4B2090;--accent-ink: #6A32C0;--accent-soft: rgba(165, 96, 240, .16);--accent-glow: rgba(165, 96, 240, .45)}:root.dark[data-accent=grape]{--accent-face: #B584F5;--on-accent: #1C0840;--accent-base: #7A48C4;--accent-ink: #D2B0FB;--accent-soft: rgba(181, 132, 245, .2);--accent-glow: rgba(181, 132, 245, .4);--blob-1: #7A3FD6}:root[data-accent=coral]{--accent: var(--coral-vivid);--accent-face: #B42D1D;--on-accent: #FFFFFF;--accent-base: #7A1C10;--accent-ink: #A82818;--accent-soft: rgba(255, 107, 90, .16);--accent-glow: rgba(255, 107, 90, .45)}:root.dark[data-accent=coral]{--accent-face: #FF8070;--on-accent: #2E0803;--accent-base: #C4473A;--accent-ink: #FF9E92;--accent-soft: rgba(255, 128, 112, .2);--accent-glow: rgba(255, 128, 112, .4);--blob-1: #D64A3A}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100vh;overscroll-behavior:none}html,body{height:100%;overflow:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-body);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}#root{position:relative;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}button,input,textarea,select{font-family:inherit}:where(a,button,[role=button],[role=tab],input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px}.font-headline{font-family:var(--font-headline);font-weight:800;letter-spacing:-.015em}.mono{font-family:var(--font-mono)}.eyebrow{font-size:var(--text-label);line-height:1.3;letter-spacing:.08em;font-weight:800;text-transform:uppercase;color:var(--ink-3)}.page-h1{font-size:var(--text-page-title);line-height:1.15;font-weight:800;letter-spacing:-.02em;margin:0;color:var(--ink)}.page-sub{color:var(--ink-2);font-size:var(--text-lead);line-height:1.5;margin:6px 0 0}.section-title{font-size:var(--text-section-title);line-height:1.3;font-weight:800;letter-spacing:-.01em;color:var(--ink)}.ms{font-family:Material Symbols Rounded;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;font-variation-settings:"FILL" 0,"wght" 450,"opsz" 24;-webkit-user-select:none;user-select:none;transition:font-variation-settings .38s var(--spring-gentle)}.ms.fill{font-variation-settings:"FILL" 1,"wght" 600,"opsz" 24}.glass,.card{position:relative;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-highlight),0 0 0 .5px var(--glass-edge),var(--shadow-1)}.card{border-radius:var(--radius-card)}.glass-chrome{position:relative;background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(var(--blur-2)) saturate(var(--saturate-2));backdrop-filter:blur(var(--blur-2)) saturate(var(--saturate-2));border:1px solid var(--glass-border);box-shadow:var(--glass-highlight),0 0 0 .5px var(--glass-edge),var(--shadow-2)}.glass-inner{background:var(--glass-bg-inner);border:1px solid var(--hair);box-shadow:var(--glass-highlight)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass-chrome{background:var(--glass-fallback)}}.surface-solid{background:var(--glass-fallback)}.glass-field{width:100%;min-width:0;background:var(--bg-2);border:1px solid var(--hair-strong);border-radius:var(--radius-control);padding:12px 14px;font-size:16px;line-height:1.4;color:var(--ink);outline:none;transition:border-color .2s var(--spring-snappy),box-shadow .2s var(--spring-snappy);font-family:inherit}.glass-field::placeholder{color:var(--ink-3)}.glass-field:focus{border-color:var(--accent-ink);box-shadow:0 0 0 4px var(--accent-soft)}.glass-field:disabled{opacity:.5;cursor:not-allowed}.glass-field[aria-invalid=true]{border-color:var(--coral-ink)}select.glass-field option{background:var(--glass-fallback);color:var(--ink)}.field-label{display:block;margin-bottom:8px}.btn-primary,.btn-ghost,.btn-danger,.btn-plain{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-pill);font-family:var(--font-headline);font-size:var(--text-body);font-weight:800;letter-spacing:.005em;cursor:pointer;text-decoration:none;white-space:nowrap;-webkit-tap-highlight-color:transparent;transform:translateY(0) scale(1);transition:transform var(--spring-bouncy-ms) var(--spring-bouncy),box-shadow var(--spring-bouncy-ms) var(--spring-bouncy),background-color .2s var(--spring-snappy),filter .2s var(--spring-snappy)}.btn-primary{--ledge: 4px;min-height:48px;padding:10px 22px;border:0;background:var(--accent-face);color:var(--on-accent);box-shadow:inset 0 1px #ffffff47,0 var(--ledge) 0 var(--accent-base),0 10px 22px -8px var(--accent-glow)}.btn-primary:active:not(:disabled){transform:translateY(var(--ledge)) scale(.97);box-shadow:inset 0 1px #fff3,0 0 0 var(--accent-base),0 4px 10px -6px var(--accent-glow);transition-duration:90ms;transition-timing-function:var(--spring-snappy)}.btn-ghost{--ledge: 3px;min-height:44px;padding:9px 18px;background:var(--glass-bg-inner);color:var(--ink);border:1px solid var(--hair-strong);box-shadow:var(--glass-highlight),0 var(--ledge) 0 var(--hair-strong)}.btn-ghost:active:not(:disabled){transform:translateY(var(--ledge)) scale(.97);box-shadow:var(--glass-highlight);transition-duration:90ms}.btn-danger{--ledge: 3px;min-height:44px;padding:9px 18px;border:0;background:var(--coral-soft);color:var(--coral-ink);box-shadow:0 var(--ledge) 0 color-mix(in srgb,var(--coral-vivid) 45%,transparent)}.btn-danger:active:not(:disabled){transform:translateY(var(--ledge)) scale(.97);box-shadow:none;transition-duration:90ms}.btn-plain{min-height:40px;padding:8px 12px;border:0;background:transparent;color:var(--ink-2)}.btn-plain:active:not(:disabled){transform:scale(.96);background:var(--bg-2);transition-duration:90ms}.btn-sm{--ledge: 3px;min-height:36px;padding:6px 14px;font-size:var(--text-small)}.btn-block{width:100%}.btn-primary:disabled,.btn-ghost:disabled,.btn-danger:disabled,.btn-plain:disabled{opacity:.5;cursor:not-allowed}.link-action{display:inline-flex;align-items:center;gap:4px;min-height:32px;padding:0 4px;border:0;background:transparent;color:var(--accent-ink);font-size:var(--text-small);font-weight:800;cursor:pointer}.ico-btn{width:44px;height:44px;flex-shrink:0;border-radius:var(--radius-pill);border:1px solid var(--glass-border);background:var(--glass-bg-inner);box-shadow:var(--glass-highlight),0 0 0 .5px var(--glass-edge);color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;padding:0;transform:scale(1);transition:transform var(--spring-bouncy-ms) var(--spring-bouncy),color .2s var(--spring-snappy),background-color .2s var(--spring-snappy)}.ico-btn:active{transform:scale(.9);transition-duration:90ms}.ico-btn .dot{position:absolute;top:9px;right:9px;width:9px;height:9px;border-radius:999px;background:var(--coral-vivid);border:2px solid var(--glass-fallback)}.seg{display:flex;background:var(--bg-2);border:1px solid var(--hair);border-radius:999px;padding:4px;gap:2px}.seg button{flex:1;border:0;background:transparent;min-height:38px;padding:6px 10px;border-radius:999px;font-size:var(--text-small);font-weight:800;color:var(--ink-2);cursor:pointer;white-space:nowrap;transition:background-color .25s var(--spring-snappy),color .25s var(--spring-snappy),transform var(--spring-bouncy-ms) var(--spring-bouncy)}.seg button:active{transform:scale(.94);transition-duration:90ms}.seg button.on{background:var(--card-surface);box-shadow:var(--glass-highlight),0 1px 3px #0e23181f;color:var(--ink)}.seg .count{margin-left:6px;color:var(--ink-3);font-weight:700}.chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;min-height:36px;padding:6px 14px;border-radius:999px;border:1px solid var(--hair);background:var(--glass-bg-inner);color:var(--ink-2);font-size:var(--text-small);font-weight:800;cursor:pointer;white-space:nowrap;transition:background-color .2s var(--spring-snappy),color .2s var(--spring-snappy),transform var(--spring-bouncy-ms) var(--spring-bouncy)}.chip:active{transform:scale(.95);transition-duration:90ms}.chip.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent-ink) 40%,transparent);color:var(--accent-ink)}.toggle{width:44px;height:26px;border-radius:999px;background:var(--bg-3);position:relative;cursor:pointer;transition:background-color .25s var(--spring-snappy);border:1px solid var(--hair);padding:0;flex-shrink:0}.toggle:after{content:"";position:absolute;left:2px;top:2px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 1px 3px #0003;transition:transform var(--spring-bouncy-ms) var(--spring-bouncy)}.toggle.on{background:var(--accent-face)}.toggle.on:after{transform:translate(18px)}.dark .toggle.on:after{background:var(--on-accent)}.mode-chip{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:10px 16px;border-radius:20px;border:1px solid var(--hair);background:var(--glass-bg-inner);box-shadow:var(--glass-highlight);color:var(--ink);font-size:var(--text-lead);font-weight:800;text-align:left;cursor:pointer;transition:background-color .25s var(--spring-snappy),border-color .25s var(--spring-snappy),transform var(--spring-bouncy-ms) var(--spring-bouncy)}.mode-chip:active{transform:scale(.97);transition-duration:90ms}.mode-chip.on{background:var(--accent-soft);border-color:var(--accent-ink);color:var(--accent-ink)}.row-btn{width:100%;display:flex;align-items:center;gap:12px;padding:14px 18px;border:0;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:background-color .2s var(--spring-snappy)}.row-btn:active{background:var(--bg-2)}.row-list>*+*{border-top:1px solid var(--hair)}.icon-tile{display:inline-flex;width:40px;height:40px;flex-shrink:0;align-items:center;justify-content:center;border-radius:14px;background:var(--tile-bg, var(--accent-soft));color:var(--tile-fg, var(--accent-ink));box-shadow:var(--glass-highlight)}.blob-field{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none;background:radial-gradient(120% 80% at 50% 0%,color-mix(in srgb,var(--bg) 70%,#ffffff 30%),transparent 70%),var(--bg)}.dark .blob-field{background:radial-gradient(120% 80% at 50% 0%,#0B1D15,transparent 70%),var(--bg)}.blob{position:absolute;width:60vmax;height:60vmax;border-radius:50%;opacity:var(--blob-opacity);will-change:transform;animation:blob-drift var(--dur, 38s) ease-in-out infinite alternate;animation-delay:var(--delay, 0s)}.blob-1{top:-22vmax;left:-14vmax;background:radial-gradient(circle at center,var(--blob-1) 0%,color-mix(in srgb,var(--blob-1) 40%,transparent) 38%,transparent 68%);--dur: 42s}.blob-2{top:18vh;right:-24vmax;background:radial-gradient(circle at center,var(--blob-2) 0%,color-mix(in srgb,var(--blob-2) 40%,transparent) 36%,transparent 68%);--dur: 50s;--delay: -12s}.blob-3{bottom:-30vmax;left:18vw;width:52vmax;height:52vmax;background:radial-gradient(circle at center,var(--blob-3) 0%,color-mix(in srgb,var(--blob-3) 35%,transparent) 34%,transparent 66%);opacity:calc(var(--blob-opacity) * .75);--dur: 46s;--delay: -24s}@keyframes blob-drift{0%{transform:translateZ(0) rotate(0) scale(1)}33%{transform:translate3d(6vw,4vh,0) rotate(40deg) scale(1.12,.92)}66%{transform:translate3d(-4vw,8vh,0) rotate(-20deg) scale(.94,1.1)}to{transform:translate3d(3vw,-5vh,0) rotate(25deg) scale(1.06,.97)}}html.bg-paused .blob{animation-play-state:paused}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scrim);animation:fade-in .26s var(--ease)}.sheet-popup{position:relative;width:calc(100% - 16px);max-width:520px;max-height:calc(86dvh - var(--keyboard-inset, 0px));overflow-y:auto;overscroll-behavior:contain;margin:0 auto calc(8px + var(--keyboard-inset, 0px) + var(--tg-viewport-safe-area-inset-bottom, env(safe-area-inset-bottom)));padding:0 0 20px;border-radius:var(--radius-chrome);color:var(--ink);animation:sheet-in var(--spring-gentle-ms) var(--spring-gentle);transition:max-height .2s var(--ease),margin-bottom .2s var(--ease)}.sheet-grabber{width:40px;height:5px;border-radius:999px;background:var(--hair-strong);margin:10px auto 14px}.liquid-tabbar{pointer-events:auto;width:100%;max-width:460px;padding:6px;border-radius:999px}.liquid-tab{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:56px;min-width:0;padding:0 2px;border:0;background:transparent;border-radius:999px;color:var(--ink-2);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color .2s var(--spring-snappy)}.liquid-tab.on{color:var(--accent-ink)}.liquid-tab:focus-visible{outline-offset:-3px}.liquid-tab .ms{font-size:24px;transition:transform var(--spring-bouncy-ms) var(--spring-bouncy),font-variation-settings .38s var(--spring-gentle)}.liquid-tab.on .ms{transform:scale(1.08)}.tab-label{font-size:var(--text-label);font-weight:800;letter-spacing:.01em;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.goo-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.goo-blob{position:absolute;left:0;top:0;height:100%;border-radius:999px;background:var(--goo-fill)}.goo-blob.head{transition:transform var(--spring-snappy-ms) var(--spring-snappy)}.goo-blob.tail{transition:transform .9s var(--spring-gentle)}.countdown-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:999px;background:var(--sky-soft);color:var(--sky-ink);font-size:var(--text-small);font-weight:800;font-variant-numeric:tabular-nums}.countdown-chip.is-live{background:var(--coral-soft);color:var(--coral-ink)}.live-dot{position:relative;display:inline-block;width:8px;height:8px;flex-shrink:0;border-radius:999px;background:var(--coral-vivid)}.live-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--coral-vivid);animation:live-ripple 1.4s var(--spring-gentle) infinite}.lesson-live{overflow:hidden}.lesson-live:before{content:"";position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;pointer-events:none;background:radial-gradient(closest-side at 30% 40%,var(--accent-glow),transparent 70%),radial-gradient(closest-side at 75% 70%,color-mix(in srgb,var(--sky-vivid) 35%,transparent),transparent 70%);animation:blob-drift 9s ease-in-out infinite alternate;opacity:.8}.join-live{position:relative;isolation:isolate}.join-live:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;background:var(--accent);animation:live-ripple 1.6s var(--spring-gentle) infinite}.skeleton{background:linear-gradient(90deg,var(--bg-2),var(--bg-3),var(--bg-2));background-size:200% 100%;animation:skeleton-shimmer 1.4s linear infinite}.tap{transition:transform var(--spring-bouncy-ms) var(--spring-bouncy),opacity .15s var(--ease)}.tap:active{transform:scale(.96);transition-duration:90ms}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{scrollbar-width:none}.animate-in{animation:glass-fade-in .6s var(--spring-gentle) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{transform:translateY(calc(100% + 32px))}to{transform:translateY(0)}}@keyframes scale-in{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slide-up{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes glass-fade-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse-dot{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}@keyframes live-ripple{0%{transform:scale(.9);opacity:.55}to{transform:scale(1.5);opacity:0}}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.blob,.live-dot:after,.lesson-live:before,.join-live:after,.skeleton{animation:none}.btn-primary:active:not(:disabled),.btn-ghost:active:not(:disabled),.btn-danger:active:not(:disabled),.btn-plain:active:not(:disabled),.ico-btn:active,.seg button:active,.chip:active,.mode-chip:active,.tap:active{transform:none}.goo-blob.head,.goo-blob.tail{transition:transform 0ms}.sheet-popup{animation:fade-in .18s linear}.animate-in{animation:fade-in .2s linear both}}.practice-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 22px;text-align:center;overflow-y:auto;border-radius:var(--radius-card);border:1px solid var(--hair);background:var(--card-surface);box-shadow:var(--glass-highlight),var(--shadow-1);transition:opacity .25s var(--ease)}.practice-back{background:color-mix(in srgb,var(--grape-vivid) 8%,var(--card-surface))}.practice-hint{position:absolute;bottom:18px;display:inline-flex;align-items:center;gap:4px;font-size:var(--text-caption);font-weight:700;color:var(--ink-3)}.rate-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:8px 4px;border-radius:20px;border:1px solid var(--hair);box-shadow:var(--glass-highlight);font-size:var(--text-body);font-weight:800;cursor:pointer;transition:transform var(--spring-bouncy-ms) var(--spring-bouncy),opacity .2s var(--ease)}.rate-btn:active{transform:scale(.94);transition-duration:90ms}.rate-btn:disabled{opacity:.45;cursor:not-allowed}.progress-track{height:10px;border-radius:999px;background:var(--bg-3);overflow:hidden}.progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-face));transition:width var(--spring-gentle-ms) var(--spring-gentle)}@media(prefers-reduced-motion:reduce){.rate-btn:active{transform:none}}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:15px;font-size:24px;font-weight:900;color:var(--on-accent);background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.45),transparent 55%),var(--accent-face);box-shadow:inset 0 1px #ffffff59,0 3px 0 var(--accent-base),0 8px 18px -6px var(--accent-glow)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}.hw-rich p{margin:0 0 8px;font-size:var(--text-body);color:var(--ink);line-height:1.6}.hw-rich p:last-child{margin-bottom:0}.hw-rich h2,.hw-rich h3{margin:0 0 8px;color:var(--ink)}.hw-rich ul,.hw-rich ol{margin:0 0 8px;padding-left:22px;color:var(--ink)}.hw-rich blockquote{margin:0 0 8px;padding-left:12px;border-left:3px solid var(--hair-strong);color:var(--ink-2)}.hw-rich mark{background:var(--sunny-soft);color:var(--ink);border-radius:4px;padding:0 2px}.hw-gap{display:inline-block;min-width:64px;margin:0 2px;padding:2px 6px;border:none;border-bottom:2px solid var(--hair-strong);background:var(--bg-2);border-radius:6px 6px 0 0;font:inherit;font-weight:700;color:var(--ink);text-align:center}.hw-gap:focus{outline:none;border-bottom-color:var(--accent-ink);background:var(--accent-soft)}.hw-gap-read{min-height:28px;padding:2px 8px}.hw-option{display:flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border-radius:14px;border:1px solid var(--hair);background:var(--bg-2);color:var(--ink);font-size:var(--text-body);text-align:left;cursor:pointer;transition:background-color .2s var(--spring-snappy),border-color .2s var(--spring-snappy)}.hw-option:disabled{cursor:default}.hw-option[data-on]{border-color:var(--accent-ink);background:var(--accent-soft)}.hw-option-mark{display:inline-flex;flex-shrink:0;width:24px;height:24px;align-items:center;justify-content:center;border:1px solid var(--hair-strong);border-radius:50%;color:var(--ink-3);font-size:var(--text-caption);font-weight:800}.hw-option-mark[data-shape=square]{border-radius:6px}.hw-option[data-on] .hw-option-mark{border-color:transparent;background:var(--accent-face);color:var(--on-accent)}.hw-tf{min-height:44px;min-width:96px;padding:0 18px;border-radius:999px;border:1px solid var(--hair);background:var(--bg-2);color:var(--ink-2);font-size:var(--text-body);font-weight:800;cursor:pointer}.hw-tf[data-on]{border-color:var(--accent-ink);background:var(--accent-soft);color:var(--accent-ink)}
