@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/assets/nunito-latin-wght-normal-BzFMHfZw.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#fff;--bg-raised:#f7f7f7;--bg-elev:#fff;--stroke:#e5e5e5;--stroke-strong:#afafaf;--text:#4b4b4b;--text-dim:#777;--text-muted:#afafaf;--text-on-accent:#fff;--brand:#ff9600;--brand-edge:#cc6e00;--brand-glow:#ff96004d;--success:#58cc02;--success-edge:#46a302;--info:#1cb0f6;--info-edge:#1487bc;--energy:#ffc800;--energy-edge:#d19e00;--energy-text:#b78600;--danger:#ff4b4b;--danger-edge:#c93b3b;--r-btn:16px;--r-card:20px;--r-sheet:24px;--font:"Nunito Variable", "Nunito", "Rubik", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.btn{font-family:var(--font);letter-spacing:.5px;border-radius:var(--r-btn);cursor:pointer;height:52px;color:var(--text-on-accent);background:var(--brand);box-shadow:0 4px 0 var(--brand-edge);-webkit-user-select:none;user-select:none;border:0;padding:0 24px;font-size:16px;font-weight:800;transition:transform .1s,box-shadow .1s,filter .15s}.btn:hover{filter:brightness(1.06)}.btn:active{box-shadow:none;transform:translateY(4px)}.btn:disabled{background:var(--bg-raised);color:var(--text-muted);box-shadow:0 4px 0 var(--stroke);cursor:default}.btn:disabled:hover{filter:none}.btn:disabled:active{box-shadow:0 4px 0 var(--stroke);transform:none}.btn--danger{background:var(--danger);box-shadow:0 4px 0 var(--danger-edge)}.btn--danger:active{box-shadow:none}.btn--success{background:var(--success);box-shadow:0 4px 0 var(--success-edge)}.btn--success:active{box-shadow:none}.btn--ghost{color:var(--info);border:2px solid var(--stroke);box-shadow:0 2px 0 var(--stroke);background:#fff}.btn--ghost:active{box-shadow:none;transform:translateY(2px)}.icon-btn{border:2px solid var(--stroke);width:52px;height:52px;color:var(--text);cursor:pointer;box-shadow:0 3px 0 var(--stroke);background:#fff;border-radius:50%;place-items:center;font-size:21px;transition:transform 80ms,border-color .15s,background .15s,box-shadow 80ms;display:grid}.icon-btn:hover{border-color:var(--stroke-strong)}.icon-btn:active{box-shadow:none;transform:translateY(3px)}.icon-btn--active{background:var(--info);border-color:var(--info);box-shadow:0 3px 0 var(--info-edge);color:#fff}.icon-btn--danger{background:var(--danger);border-color:var(--danger);box-shadow:0 3px 0 var(--danger-edge);color:#fff}.icon-btn--mic{background:var(--brand);border-color:var(--brand);color:#fff;width:72px;height:72px;box-shadow:0 4px 0 var(--brand-edge);font-size:28px;animation:2s ease-in-out infinite mic-pulse}.icon-btn--mic.muted{background:var(--bg-raised);color:var(--text-muted);border-color:var(--stroke);box-shadow:0 4px 0 var(--stroke);animation:none}@keyframes mic-pulse{50%{box-shadow:0 4px 0 var(--brand-edge), 0 0 24px var(--brand-glow)}}.ctrl{justify-items:center;gap:5px;display:grid}.ctrl__label{color:var(--text-dim);font-size:11px;font-weight:700}.lesson{max-width:540px;min-height:100dvh;padding:12px 16px calc(16px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.topbar{align-items:center;gap:12px;padding:6px 0 12px;display:flex}.progress{background:var(--stroke);border-radius:8px;flex:1;height:14px;overflow:hidden}.progress__fill{background:var(--success);border-radius:8px;height:100%;transition:width .3s ease-out;box-shadow:inset 0 2px #ffffff59}.badge{background:var(--bg-raised);border:2px solid var(--stroke);color:var(--text-dim);border-radius:999px;align-items:center;gap:5px;padding:4px 12px;font-size:14px;font-weight:800;display:inline-flex}.badge--energy{color:var(--energy-text)}.badge--success{color:var(--success-edge);border-color:var(--success);background:var(--success-tint)}.objectives{flex-wrap:wrap;justify-content:center;gap:8px;margin:2px 0 8px;display:flex}.chip{background:var(--bg-raised);border:2px solid var(--stroke);color:var(--text-dim);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:700;transition:all .25s;display:inline-flex}.chip--done{border-color:var(--success);color:var(--success-edge);background:#e8f8d9;animation:.35s chip-pop}@keyframes chip-pop{40%{transform:scale(1.12)}}.hero{place-items:center;padding:8px 0 4px;display:grid}.hero__ring{border:3px solid var(--stroke);width:clamp(200px,56vw,235px);height:clamp(200px,56vw,235px);box-shadow:0 0 calc(10px + var(--speak-level,0) * 70px) color-mix(in srgb, var(--brand) calc(22% + var(--speak-level,0) * 60%), transparent);background:radial-gradient(circle at 50% 32%,#fff3dd,#fde8c4 70%);border-radius:50%;place-items:center;transition:box-shadow .12s,border-color .25s;display:grid}.hero__ring--listening{border-color:var(--info)}.hero__status{color:var(--text-dim);min-height:20px;margin-top:10px;font-size:14px;font-weight:700}.stage{border-radius:var(--r-sheet);border:3px solid var(--stroke);background:radial-gradient(120% 90% at 50% 24%, var(--stage-a,#fff3dd), var(--stage-b,#fde8c4) 78%);min-height:300px;max-height:min(58vh,620px);box-shadow:0 4px 0 var(--stroke), 0 0 calc(8px + var(--speak-level,0) * 60px) color-mix(in srgb, var(--brand) calc(18% + var(--speak-level,0) * 55%), transparent);flex:1;transition:box-shadow .12s,border-color .25s;position:relative;overflow:hidden}.stage--listening{border-color:var(--info)}.stage__status{z-index:2;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:2px solid var(--stroke);color:var(--text-dim);white-space:nowrap;background:#ffffffd1;border-radius:999px;padding:5px 14px;font-size:13.5px;font-weight:800;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.stage__topline{z-index:2;pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;top:10px;left:12px;right:12px}.now-line{text-align:center;height:96px;color:var(--text);flex-shrink:0;justify-content:center;align-items:center;padding:4px 8px;font-size:22.5px;font-weight:800;line-height:1.35;display:flex;overflow:hidden}.now-line>span{max-height:100%}.now-line--long{font-size:17.5px}.now-line--xlong{font-size:14.5px;font-weight:700}.now-line .en{color:var(--info)}.en--tappable{font:inherit;color:inherit;cursor:pointer;text-underline-offset:3px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:1.5px;-webkit-text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);text-decoration-color:color-mix(in srgb, currentColor 45%, transparent);background:0 0;border:0;margin:0;padding:0}.en--tappable:hover{text-decoration-color:currentColor}.en--tappable:focus-visible{outline:2px solid var(--info);outline-offset:2px;border-radius:4px}.now-line--user{color:var(--text-dim);font-weight:600}.history{height:128px;color:var(--text-muted);border-top:2px solid var(--stroke);flex-shrink:0;padding-top:8px;font-size:13.5px;line-height:1.5;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 14px);mask-image:linear-gradient(#0000,#000 14px)}.history .msg{margin:4px 0}.history .msg--user{color:var(--text-dim)}.history .msg .en{color:color-mix(in srgb, var(--info) 60%, var(--text-muted))}.controls{justify-content:center;align-items:flex-start;gap:16px;padding-top:14px;display:flex}.dock{border:2px solid var(--stroke);width:fit-content;box-shadow:0 4px 0 var(--stroke);background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:8px;margin:14px auto 0;padding:8px;display:flex}.dock__btn{border:2px solid var(--stroke);background:var(--bg-raised);width:52px;height:52px;color:var(--text-dim);cursor:pointer;border-radius:50%;place-items:center;transition:transform .12s,background .18s,color .18s,border-color .18s;display:grid}.dock__btn:hover{border-color:var(--stroke-strong);color:var(--text)}.dock__btn:active{transform:scale(.93)}.dock__btn:focus-visible{outline:3px solid var(--info);outline-offset:3px}.dock__btn:disabled{cursor:not-allowed;opacity:.55;animation:none}.dock__btn--on{background:var(--info);border-color:var(--info);color:#fff}.dock__btn--danger{background:var(--danger);border-color:var(--danger);color:#fff}.dock__btn--mic{background:var(--brand);border-color:var(--brand);color:#fff;width:68px;height:68px;box-shadow:0 0 0 0 var(--brand-glow);animation:2.2s ease-in-out infinite dock-pulse}.dock__btn--mic.is-muted{background:var(--bg-raised);color:var(--text-muted);border-color:var(--stroke);animation:none}@keyframes dock-pulse{50%{box-shadow:0 0 0 12px color-mix(in srgb, var(--brand) 12%, transparent)}}.dock-status{text-align:center;color:var(--text-muted);min-height:18px;margin-top:8px;font-size:13px;font-weight:800}.lp-hero{background:radial-gradient(60% 55% at 12% 8%,#fff1d8 0%,#0000 60%),radial-gradient(55% 50% at 88% 12%,#dff0ff 0%,#0000 62%),radial-gradient(50% 60% at 70% 100%,#ffe9f4 0%,#0000 60%),#fff;position:relative;overflow:hidden}.lp-hero:before{content:"";pointer-events:none;background-image:linear-gradient(#4b4b4b0d 1px,#0000 1px),linear-gradient(90deg,#4b4b4b0d 1px,#0000 1px);background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 0%,#0000 78%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 0%,#0000 78%)}.lp-wrap{max-width:1080px;margin:0 auto;padding:0 20px;position:relative}.lp-pill{border:2px solid var(--stroke);color:var(--text-dim);box-shadow:0 3px 0 var(--stroke);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:13.5px;font-weight:800;display:inline-flex}.app-nav{align-items:center;gap:8px;display:flex}.app-nav a{padding:6px 10px;font-size:14.5px}@media (width<=700px){.app-nav{flex-basis:100%;order:1;justify-content:space-between;gap:0}}@media (width<=420px){.app-nav a{padding:6px 8px;font-size:13px}}.lp-stage{aspect-ratio:1;border:3px solid var(--stroke);width:min(100%,420px);box-shadow:0 10px 0 var(--stroke), 0 30px 60px #ff96002e;background:radial-gradient(120% 90% at 50% 22%,#fff6e6,#ffe3ef 78%);border-radius:38px;margin:0 auto;position:relative;overflow:hidden}.lp-stage__badge{z-index:3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:2px solid var(--stroke);color:var(--text-dim);white-space:nowrap;background:#ffffffe6;border-radius:999px;align-items:center;gap:7px;padding:6px 14px;font-size:13px;font-weight:800;display:inline-flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.lp-bubble{z-index:4;border:2px solid var(--stroke);color:var(--text);box-shadow:0 4px 0 var(--stroke);white-space:nowrap;background:#fff;border-radius:999px;padding:8px 15px;font-size:14.5px;font-weight:800;animation:4.5s ease-in-out infinite float-y;position:absolute}.lp-card{border:2px solid var(--stroke);border-radius:var(--r-card);box-shadow:0 4px 0 var(--stroke);box-sizing:border-box;background:#fff;height:100%;padding:22px}.lp-ico{color:#fff;border-radius:14px;place-items:center;width:46px;height:46px;display:grid;box-shadow:0 3px #0000001f}.lp-section-title{text-align:center;margin:0 0 8px;font-size:clamp(24px,3.4vw,32px);font-weight:900}.lp-section-sub{text-align:center;color:var(--text-dim);margin:0 0 26px;font-size:16px}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.9s linear infinite spin}@keyframes skel-breathe{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.9;transform:scale(1.03)}}.avatar-skeleton{animation:1.8s ease-in-out infinite skel-breathe}.sheet{background:var(--bg-elev);border-radius:var(--r-sheet) var(--r-sheet) 0 0;border:2px solid var(--stroke);max-width:480px;padding:18px 20px calc(20px + env(safe-area-inset-bottom));z-index:20;border-bottom:0;margin:0 auto;animation:.22s sheet-up;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #0000002e}@keyframes sheet-up{0%{opacity:0;transform:translateY(30%)}}.sheet__title{margin-bottom:10px;font-weight:800}.sheet .phrase{color:var(--info);margin:8px 0 2px;font-size:17px;font-weight:700}.sheet .phrase-ru{color:var(--text-dim);margin-bottom:6px;font-size:13px}.error-toast{border:2px solid var(--danger);border-radius:var(--r-btn);color:#a33;background:#ffecec;margin:8px 0;padding:10px 14px;font-size:13px}.ai-note{color:var(--text-muted);text-align:center;padding-top:8px;font-size:11px}@keyframes float-y{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes bob{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-6px)rotate(1.5deg)}}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}60%{transform:scale(1.06)}to{opacity:1;transform:scale(1)}}@keyframes slide-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)}75%{transform:rotate(6deg)}}@keyframes confetti-fall{0%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(var(--cx,0), var(--cy,90px)) rotate(var(--cr,260deg))}}@keyframes eq{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes pulse-ring{0%{box-shadow:0 0 #ff960073}70%{box-shadow:0 0 0 14px #ff960000}to{box-shadow:0 0 #ff960000}}@keyframes shine{to{background-position:200%}}.anim-pop{animation:.4s cubic-bezier(.34,1.56,.64,1) both pop-in}.anim-up{animation:.45s both slide-up}.float{animation:3.5s ease-in-out infinite float-y}.bob{animation:3s ease-in-out infinite bob}.reveal{opacity:0;transition:opacity .55s,transform .55s cubic-bezier(.22,1,.36,1);transform:translateY(22px)}.reveal.visible{opacity:1;transform:none}.lift{transition:transform .18s,box-shadow .18s}.lift:hover{transform:translateY(-4px)}.grad-text{background:linear-gradient(90deg, var(--brand), #ff6a3d 50%, var(--brand));color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:6s linear infinite shine}.eq{align-items:flex-end;gap:4px;height:26px;display:inline-flex}.eq span{background:var(--brand);transform-origin:bottom;border-radius:3px;width:5px;height:100%;animation:1.1s ease-in-out infinite eq}.eq span:nth-child(2){background:var(--info);animation-delay:.15s}.eq span:nth-child(3){background:var(--success);animation-delay:.3s}.eq span:nth-child(4){background:var(--energy);animation-delay:.45s}.eq span:nth-child(5){background:var(--brand);animation-delay:.6s}.bubble{border:2px solid var(--stroke);box-shadow:0 3px 0 var(--stroke);background:#fff;border-radius:14px 14px 14px 4px;padding:7px 12px;font-size:14px;font-weight:800;animation:4s ease-in-out infinite float-y;position:absolute}.confetti-host{pointer-events:none;position:absolute;inset:0;overflow:visible}.confetti-bit{border-radius:2px;width:8px;height:12px;animation:.9s ease-out forwards confetti-fall;position:absolute;top:0;left:50%}.path{padding:6px 0 20px;position:relative}.path:before{content:"";border-left:3px dashed var(--stroke);position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.path-unit{z-index:1;text-align:center;background:var(--unit-color,var(--brand));color:#fff;border-radius:999px;width:fit-content;margin:18px auto 14px;padding:8px 18px;font-size:14px;font-weight:900;position:relative;box-shadow:0 4px #00000026}.path-row{z-index:1;align-items:center;gap:12px;margin:14px 0;display:flex;position:relative}.path-row--left{flex-direction:row;padding-right:12%}.path-row--right{text-align:right;flex-direction:row-reverse;padding-left:12%}.path-node{border:3px solid var(--stroke);width:62px;height:62px;color:var(--text-dim);box-shadow:0 4px 0 var(--stroke);cursor:pointer;background:#fff;border-radius:50%;flex-shrink:0;place-items:center;font-size:22px;font-weight:900;transition:transform .12s;display:grid}.path-node:hover{transform:scale(1.06)}.path-node:active{transform:scale(.95)translateY(2px)}.path-node--done{background:var(--success);border-color:var(--success-edge);color:#fff;box-shadow:0 4px 0 var(--success-edge)}.path-node--current{background:var(--brand);border-color:var(--brand-edge);color:#fff;box-shadow:0 4px 0 var(--brand-edge);animation:2s ease-out infinite pulse-ring}.path-node--locked{background:var(--bg-raised);border-color:var(--stroke);color:var(--text-muted);box-shadow:0 4px 0 var(--stroke)}.path-node--locked:hover{transform:none}.path-unit--done{background:var(--success)}.path-label{cursor:pointer}.path-label b{font-size:14.5px;display:block}.path-label span{color:var(--text-dim);font-size:12px}.unit-done{z-index:1;text-align:center;background:var(--success-tint);border:2px solid var(--success);border-radius:var(--r-card);width:fit-content;max-width:340px;color:var(--success-edge);justify-items:center;gap:4px;margin:16px auto 6px;padding:14px 18px;display:grid;position:relative}.unit-done b{font-size:15px}.unit-done span{color:var(--text-dim);font-size:12.5px;font-weight:600}.flip-scene{perspective:900px}.flip-card{width:100%;min-height:210px;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.34,1.3,.64,1);position:relative}.flip-card.flipped{transform:rotateY(180deg)}.flip-face{backface-visibility:hidden;background:var(--bg-raised);border:2px solid var(--stroke);border-radius:var(--r-card);place-items:center;padding:18px;display:grid;position:absolute;inset:0}.flip-face--back{transform:rotateY(180deg)}.onboard{z-index:50;background:var(--bg);place-items:center;padding:20px;display:grid;position:fixed;inset:0}:root{--brand-tint:#fff3dd;--success-tint:#e8f8d9;--info-tint:#e8f4fd;--danger-tint:#ffecec;--danger-text:#b3261e;--h-control:38px;--h-row:40px}.btn--sm{height:var(--h-control);letter-spacing:.2px;box-shadow:0 3px 0 var(--brand-edge);padding:0 16px;font-size:14px}.btn--sm:active{box-shadow:none;transform:translateY(3px)}.btn--sm.btn--danger{box-shadow:0 3px 0 var(--danger-edge)}.btn--sm.btn--success{box-shadow:0 3px 0 var(--success-edge)}.btn--sm.btn--ghost{box-shadow:0 3px 0 var(--stroke)}.btn--sm.btn--danger:active,.btn--sm.btn--success:active,.btn--sm.btn--ghost:active,.btn--flat{box-shadow:none}.btn--flat:active{transform:none}.input,.select,.textarea{font-family:var(--font);color:var(--text);background:var(--bg);border:2px solid var(--stroke);height:var(--h-control);border-radius:12px;width:100%;padding:0 12px;font-size:14px;font-weight:600;transition:border-color .12s,box-shadow .12s}.textarea{resize:vertical;height:auto;padding:10px 12px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--text-muted);font-weight:600}.input:hover,.select:hover,.textarea:hover{border-color:var(--stroke-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--info);box-shadow:0 0 0 3px var(--info-tint);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background:var(--bg-raised);color:var(--text-muted)}.input--invalid,.input--invalid:focus{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-tint)}.input--mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:13px}.select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);background-position:calc(100% - 15px) 17px,calc(100% - 10px) 17px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:30px}.field{gap:5px;display:grid}.field__label{color:var(--text-dim);font-size:12px;font-weight:700}.field__hint{color:var(--text-muted);font-size:11px;font-weight:600}.field__hint--mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.field__error{color:var(--danger-text);font-size:12px;font-weight:700}.check{cursor:pointer;align-items:flex-start;gap:9px;font-size:14px;line-height:1.45;display:flex}.check input{width:19px;height:19px;accent-color:var(--success);flex-shrink:0;margin:1px 0 0}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--text-dim);border-bottom:2px solid var(--stroke);white-space:nowrap;background:var(--bg);padding:10px 12px;font-size:12px;font-weight:800}.table td{border-bottom:1.5px solid var(--stroke);vertical-align:middle;height:var(--h-row);padding:9px 12px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--bg-raised)}.table tbody tr.is-clickable{cursor:pointer}.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:13px}.seg{background:var(--bg-raised);border:2px solid var(--stroke);border-radius:999px;padding:2px;display:inline-flex}.seg__item{font-family:var(--font);color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:800;transition:background .12s,color .12s}.seg__item:hover{color:var(--text)}.seg__item--on{background:var(--bg);color:var(--text);box-shadow:0 1px 3px #0000001f}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--info);outline-offset:2px}.linklike{cursor:pointer;font-family:var(--font);color:var(--info);background:0 0;border:0;padding:0;font-size:13.5px;font-weight:700}.linklike:hover{text-decoration:underline}.lesson--conversation{gap:8px;max-width:640px;min-height:0}.lesson--conversation .stage{flex:none;height:clamp(260px,45dvh,470px);min-height:240px;max-height:none}.stage--speaking{border-color:var(--brand)}.lesson--conversation .now-line{text-align:left;justify-content:flex-start;height:auto;min-height:64px;max-height:120px;padding:8px 10px;font-size:18px;overflow:auto}.now-line__speaker{letter-spacing:.4px;color:var(--text-dim);margin-bottom:3px;font-size:11px;font-weight:800;display:block}.now-line__placeholder{color:var(--text-muted);font-size:13px;font-weight:600}.conversation-history{border-top:1px solid var(--stroke)}.conversation-history summary{cursor:pointer;color:var(--text-dim);padding:8px 4px;font-size:12.5px;font-weight:800}.conversation-history summary span{color:var(--text-muted);margin-left:5px}.conversation-history .history{border:0;height:auto;max-height:160px;padding:4px 8px;-webkit-mask-image:none;mask-image:none}.conversation-controls{z-index:5;padding:8px 0 max(2px,env(safe-area-inset-bottom));background:linear-gradient(#0000,#fff 10%);position:sticky;bottom:0}.dock--labeled{border-radius:24px;align-items:start;gap:8px;width:fit-content;max-width:100%;margin-top:0;padding:10px 12px 8px}.dock__control{align-content:start;justify-items:center;gap:6px;min-width:58px;display:grid}.dock__control>span{color:var(--text-dim);white-space:nowrap;font-size:10.5px;font-weight:800}.dock--labeled .dock__btn{width:48px;height:48px}.dock--labeled .dock__btn--mic{width:56px;height:56px;margin-top:-4px;margin-bottom:-4px}.conversation-controls .dock-status{color:var(--text);margin-top:10px;font-size:13px}.conversation-controls__hint{text-align:center;min-height:17px;color:var(--text-dim);margin-top:3px;font-size:11.5px}.lesson-turn-note{color:var(--text-dim);background:var(--info-tint);border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.55}.text-action{color:var(--info);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.access-page{max-width:560px;margin:0 auto;padding:24px 16px}.access-page h1{margin:0 0 16px;font-size:24px}.access-notice{text-align:left;color:var(--text);background:#fff8e9;border:1.5px solid #eac98f;border-radius:16px;align-items:flex-start;gap:11px;margin:14px 0;padding:15px;font-size:14px;line-height:1.5;display:flex}.access-notice>svg{color:var(--brand-edge);flex-shrink:0;margin-top:2px}.access-notice p{color:var(--text-dim);margin:5px 0 12px}.access-notice .btn{margin:0 8px 8px 0;text-decoration:none;display:inline-flex}.access-notice__secondary{font-size:12.5px}.access-notice .text-action{display:inline-block}.lesson--report{min-height:0;padding-top:30px;padding-bottom:30px}.result-card{border:2px solid var(--stroke);background:var(--bg-raised);text-align:center;border-radius:24px;padding:24px 20px;position:relative}.result-card__symbol{background:var(--info-tint);width:64px;height:64px;color:var(--info);border-radius:50%;place-items:center;margin:0 auto 12px;display:grid}.result-card__symbol--passed{background:var(--success-tint);color:var(--success-edge)}.result-card h1{margin:0 0 10px;font-size:24px;line-height:1.25}.result-card__summary,.result-card__note{color:var(--text-dim);font-size:13.5px;line-height:1.55}.result-card__note svg{vertical-align:middle;display:inline-block!important}.result-objectives{text-align:left;gap:8px;margin:18px 0;display:grid}.result-objectives>div{border:1px solid var(--stroke);background:#fff;border-radius:12px;align-items:center;gap:9px;padding:10px 12px;font-size:13.5px;display:flex}.result-objectives small{color:var(--text-muted);margin-left:auto;font-size:10.5px}.result-objectives__done{color:var(--success-edge)}.result-reward{background:var(--success-tint);color:var(--success-edge);border-radius:12px;align-items:center;gap:8px;padding:12px;font-size:14px;font-weight:800;display:flex}.result-errors{text-align:left;background:#fff;border-radius:14px;padding:14px;font-size:14px}.result-errors h2{margin:0 0 12px;font-size:16px}.result-errors>div{margin-bottom:12px}.result-errors s{color:var(--text-muted);margin-right:8px}.result-errors b{color:var(--success-edge)}.result-errors p{color:var(--text-dim);margin:3px 0;font-size:13px}.result-actions{gap:10px;margin-top:18px;display:grid}.result-actions .btn{justify-content:center;align-items:center;gap:8px;width:100%;display:flex}@media (width<=420px){.lesson--conversation{padding-left:10px;padding-right:10px}.dock--labeled{gap:3px;padding:9px 6px 7px}.dock__control{min-width:54px}.dock__control>span{font-size:10px}.lesson--conversation .stage{height:clamp(245px,40dvh,370px)}.lesson--conversation .now-line{min-height:54px;max-height:100px;font-size:16px}.result-card{padding:20px 14px}}.course-map{max-width:760px;margin:0 auto;padding:24px 18px 40px}.course-map__heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.course-map h1{margin:0 0 6px;font-size:clamp(22px,3vw,28px);line-height:1.2}.course-map__heading p{color:var(--text-dim);margin:0;font-size:13px}.course-tutor{border:1.5px solid var(--stroke);cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:left;background:#fff;border-radius:18px;align-items:center;gap:12px;padding:12px 15px;display:flex}.course-tutor small,.course-current small{letter-spacing:.6px;color:var(--text-dim);margin-bottom:3px;font-size:10px;font-weight:900;display:block}.course-tutor b{font-size:16px}.course-tutor__change{color:var(--info);margin-left:auto;font-size:13px;font-weight:800}.course-progress{color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;gap:10px;margin:16px 0;font-size:13px;display:flex}.course-progress .progress{flex-basis:100%;height:8px}.course-current{background:#f3faec;border:1.5px solid #c4dfa9;border-radius:20px;justify-content:space-between;align-items:center;gap:18px;margin:20px 0;padding:19px;display:flex}.course-current h2{margin:2px 0 6px;font-size:19px;line-height:1.35}.course-current p{color:var(--text-dim);margin:0;font-size:12.5px}.course-current .btn{flex-shrink:0;align-items:center;gap:9px;height:44px;font-size:14px;display:flex}.course-units{gap:12px;margin-top:22px;display:grid}.course-unit{border:1.5px solid var(--stroke);background:#fff;border-radius:18px;overflow:hidden}.course-unit>summary{cursor:pointer;align-items:center;gap:12px;padding:14px 16px;list-style:none;display:flex}.course-unit>summary::-webkit-details-marker{display:none}.course-unit>summary>svg{color:var(--text-muted);transition:transform .15s}.course-unit[open]>summary>svg{transform:rotate(180deg)}.course-unit__number{color:#fff;border-radius:12px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:17px;font-weight:900;display:grid}.course-unit summary small{color:var(--text-muted);letter-spacing:.7px;font-size:9.5px;font-weight:800;display:block}.course-unit summary b{margin-top:2px;font-size:15px;display:block}.course-unit__count{color:var(--text-dim);white-space:nowrap;margin-left:auto;font-size:12px}.course-lessons{border-top:1px solid var(--stroke);padding:5px 10px 10px;display:grid}.course-lesson{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:12px 8px;display:flex}.course-lesson:hover,.course-lesson:focus-visible{background:var(--bg-raised)}.course-lesson--current{background:#fff5e4}.course-lesson--locked{color:#767b83}.course-lesson__symbol{width:36px;height:36px;color:var(--text-dim);background:var(--bg-raised);border:1.5px solid var(--stroke);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.course-lesson--current .course-lesson__symbol{background:var(--brand);border-color:var(--brand);color:#fff}.course-lesson--done .course-lesson__symbol{background:var(--success-tint);color:var(--success-edge);border-color:#c4dfa9}.course-lesson__text{flex:1;min-width:0}.course-lesson__text b{font-size:14px;line-height:1.4;display:block}.course-lesson__text small{color:var(--text-dim);margin-top:3px;font-size:11.5px;display:block}.course-lesson__index{color:var(--text-muted);font-size:11px}.course-locked-hint{color:var(--brand-edge);margin:0 8px 10px 56px;font-size:12px;line-height:1.5}@media (width<=520px){.course-map{padding:18px 14px 30px}.course-map__heading .badge{flex-shrink:0;padding:4px 8px;font-size:11px}.course-current{flex-direction:column;align-items:stretch;gap:14px;padding:16px}.course-current .btn{justify-content:center}}.guest-badge{color:var(--text-dim);background:var(--bg-raised);border:1px solid var(--stroke);border-radius:7px;padding:3px 7px;font-size:10px;font-weight:800;text-decoration:none}.result-objectives small{color:var(--text-dim)}.result-objectives__done,.result-reward{color:#2d7100}
