@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.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}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-ext.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-cyrillic.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-cyrillic-ext.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:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/outfit-latin.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}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/outfit-latin-ext.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}:root{--bg-base:#0a0c0b;--bg-raised:#222019;--bg-card:#161917;--bg-input:#1d211e;--border-subtle:#343a35;--border-strong:#474e48;--text-primary:#f4f6f5;--text-secondary:#a9b3ae;--text-tertiary:#808b85;--accent:#ffb224;--accent-hover:#ffc24f;--accent-press:#e09612;--accent-ink:#1a1200;--accent-soft:#ffb2241f;--accent-line:#ffb2244d;--accent-strong:#ffb224;--ok:#3ecf7f;--ok-soft:#3ecf7f1f;--ok-ink:#04240f;--err:#ff6b6b;--err-soft:#ff6b6b1f;--err-ink:#2a0505;--warn:#ffc53d;--warn-soft:#ffc53d1f;--cat-1:#5ec8a0;--cat-2:#5aa9e6;--cat-3:#c89be8;--cat-4:#e8a05a;--cat-5:#e67f8f;--cat-6:#7fc8d6;--ink-fixed:#12100e;--scrim:#0000008c;--fs-display:clamp(40px, 1.66rem + 3.46vw, 68px);--lh-display:1.02;--ls-display:-.03em;--fs-h1:clamp(30px, 1.45rem + 1.73vw, 44px);--lh-h1:1.08;--ls-h1:-.022em;--fs-h2:clamp(22px, 1.2rem + .74vw, 28px);--lh-h2:1.16;--ls-h2:-.02em;--fs-xl:clamp(20px, 1.13rem + .49vw, 24px);--lh-xl:1.22;--ls-xl:-.015em;--fs-h3:clamp(18px, 1.07rem + .25vw, 20px);--lh-h3:1.28;--ls-h3:-.01em;--fs-lg:clamp(17px, 1.03rem + .12vw, 18px);--lh-lg:1.5;--fs-md:15px;--lh-md:1.5;--fs-base:16px;--lh-base:1.55;--fs-sm:14px;--lh-sm:1.45;--fs-xs:12px;--lh-xs:1.4;--ls-xs:.06em;--fw-regular:400;--fw-medium:500;--fw-semi:600;--fw-bold:700;--fs-specimen:clamp(32px, 1.28rem + 2.96vw, 56px);--fs-specimen-lg:48px;--fs-specimen-md:38px;--fs-specimen-sm:30px;--font-display:"Outfit", "Inter", system-ui, sans-serif;--font-ui:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-target:"Inter", "Noto Sans SC", "Hiragino Sans", "Yu Gothic", "Malgun Gothic", "Apple SD Gothic Neo", system-ui, sans-serif;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--section-y:clamp(56px, 1.8rem + 6.9vw, 112px);--pad-screen:clamp(14px, .5rem + 1.6vw, 24px);--pad-card:clamp(18px, .5rem + 2.6vw, 36px);--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-full:999px;--shadow-sm:0 1px 2px #00000047;--shadow-md:0 8px 24px -8px #00000073;--shadow-lg:0 24px 64px -24px #0009;--dur-fast:.12s;--dur:.2s;--dur-slow:.32s;--ease:cubic-bezier(.2,.8,.2,1);--container:1120px;--container-narrow:720px;--container-app:560px;--container-content:900px;--container-wide:1080px;--focus-ring:0 0 0 2px var(--bg-base), 0 0 0 4px var(--accent)}body.light{--bg-base:#fbfbfa;--bg-raised:#e7e8e3;--bg-card:#fff;--bg-input:#f1f2f0;--border-subtle:#d5d7d1;--border-strong:#b8bcb5;--text-primary:#141715;--text-secondary:#54605a;--text-tertiary:#59645e;--accent:#b87400;--accent-hover:#9c6200;--accent-press:#7e4f00;--accent-ink:#1a1200;--accent-strong:#7e4f00;--accent-soft:#b874001a;--accent-line:#b8740047;--ok:#127a45;--err:#c0392b;--ok-ink:#fff;--err-ink:#fff;--warn:#8a6100;--warn-soft:#8a61001a;--ok-soft:#127a451a;--err-soft:#c0392b1a;--shadow-sm:0 1px 2px #0000000f;--shadow-md:0 8px 24px -8px #0000001f;--shadow-lg:0 24px 64px -24px #00000029}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--fs-base);line-height:var(--lh-base);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh}#root{z-index:1;min-height:100dvh;position:relative}body:after{content:"";z-index:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}body.light:after{opacity:.02}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--ls-h2);text-wrap:balance}h1{font-size:var(--fs-h1);line-height:var(--lh-h1);letter-spacing:var(--ls-h1)}h2{font-size:var(--fs-h2);line-height:var(--lh-h2)}h3{font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3)}p{text-wrap:pretty}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit}.lang-target{font-family:var(--font-target)}.container{width:100%;max-width:var(--container);padding-inline:var(--space-5);margin-inline:auto}.container--narrow{max-width:var(--container-narrow)}.container--app{max-width:var(--container-app)}:target,section[id]{scroll-margin-top:calc(64px + var(--space-4))}.skip-link{left:var(--space-4);top:calc(-1 * var(--space-10));z-index:100;padding:var(--space-3) var(--space-4);border-radius:var(--r-md);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-sm);font-weight:var(--fw-semi);transition:top var(--dur) var(--ease);position:absolute}.skip-link:focus{top:var(--space-4)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.js-reveal [data-reveal]{opacity:0;transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);transition-delay:calc(min(var(--stagger,0), 4) * 60ms);transform:translateY(12px)}.js-reveal [data-reveal].is-in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.js-reveal [data-reveal]{opacity:1;transform:none}}:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{box-shadow:var(--focus-ring);outline:none}.icon{flex-shrink:0;display:block}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-5);border-radius:var(--r-md);font-family:var(--font-ui);font-size:var(--fs-base);font-weight:var(--fw-semi);text-align:center;white-space:nowrap;cursor:pointer;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);border:1px solid #0000;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover:not(:disabled){background:var(--accent-hover)}.btn--primary:active:not(:disabled){background:var(--accent-press);transform:translateY(1px)}.btn--secondary{background:var(--bg-input);border-color:var(--border-strong);color:var(--text-primary)}.btn--secondary:hover:not(:disabled){border-color:var(--accent);background:var(--bg-card)}.btn--secondary:active:not(:disabled){transform:translateY(1px)}.btn--ghost{color:var(--text-primary);background:0 0}.btn--ghost:hover:not(:disabled){background:var(--bg-input)}.btn--ghost:active:not(:disabled){transform:translateY(1px)}.btn--danger{border-color:var(--err);color:var(--err);background:0 0}.btn--danger:hover:not(:disabled){background:var(--err-soft)}.btn--sm{min-height:36px;padding:0 var(--space-3);font-size:var(--fs-sm)}.btn--md{min-height:44px}.btn--lg{min-height:52px;padding:0 var(--space-6);font-size:var(--fs-lg)}.btn--pill{border-radius:var(--r-full);padding-inline:var(--space-6)}.btn--block{width:100%}.btn--icon{border-radius:var(--r-md);width:44px;min-height:44px;padding:0}@media (pointer:fine){.btn--icon.btn--sm{width:36px;min-height:36px}}.field{gap:var(--space-2);flex-direction:column;display:flex}.field-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.input,.textarea{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-md);color:var(--text-primary);font-family:var(--font-ui);font-size:var(--fs-base);line-height:var(--lh-base);transition:border-color var(--dur-fast) var(--ease)}.input::placeholder,.textarea::placeholder{color:var(--text-tertiary)}.input:focus-visible,.textarea:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring)}.textarea{resize:vertical;min-height:96px}.field-hint{font-size:var(--fs-sm);color:var(--text-tertiary)}.field-error{font-size:var(--fs-sm);color:var(--err);font-weight:var(--fw-medium)}.input[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--err)}.card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--space-5)}.card--interactive{cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}.card--interactive:hover:not([aria-disabled=true]){border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card--interactive:active:not([aria-disabled=true]){transform:translateY(0)}.chip{align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-full);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);display:inline-flex}@media (pointer:fine){.chip{min-height:36px}}.chip:hover{border-color:var(--border-strong);color:var(--text-primary)}.chip--selected{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-strong)}.chip--static{cursor:default}.chip--static:hover{border-color:var(--border-subtle);color:var(--text-secondary)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--r-sm);background:var(--bg-input);color:var(--text-secondary);font-size:var(--fs-xs);font-weight:var(--fw-semi);line-height:1.5;display:inline-flex}.badge--accent{background:var(--accent-soft);color:var(--accent-strong)}.badge--ok{background:var(--ok-soft);color:var(--ok)}.badge--err{background:var(--err-soft);color:var(--err)}.badge--warn{background:var(--warn-soft);color:var(--warn)}.eyebrow{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--accent-strong);display:block}.skeleton{background:var(--bg-input);border-radius:var(--r-md);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--text-primary) 6%, transparent), transparent);animation:1.4s infinite skeleton-sweep;position:absolute;inset:0;transform:translate(-100%)}@keyframes skeleton-sweep{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.skeleton:after{background:color-mix(in srgb, var(--text-primary) 4%, transparent);animation:none;transform:none}}.progress-ring{display:block}.progress-ring-track{stroke:var(--bg-input)}.progress-ring-fill{transition:stroke-dashoffset var(--dur-slow) var(--ease)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:var(--r-full);width:18px;height:18px;animation:.7s linear infinite spinner-turn}@keyframes spinner-turn{to{transform:rotate(360deg)}}.modal-scrim{z-index:3000;background:var(--scrim);padding:var(--space-5);animation:modal-fade var(--dur) var(--ease);place-items:center;display:grid;position:fixed;inset:0}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal-card{width:100%;max-width:440px;max-height:calc(100dvh - var(--space-8));background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:var(--space-5);gap:var(--space-4);animation:modal-rise var(--dur) var(--ease);flex-direction:column;display:flex;overflow-y:auto}@keyframes modal-rise{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.modal-card--danger{border-color:color-mix(in srgb, var(--err) 45%, var(--border-strong))}.modal-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.modal-title{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--fw-semi);color:var(--text-primary);margin:0}.modal-close{color:var(--text-tertiary);flex-shrink:0;margin:-4px -4px 0 0}.modal-close:hover{color:var(--text-primary)}.modal-body{color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-base)}.modal-body p{margin:0 0 var(--space-3)}.modal-body p:last-child{margin-bottom:0}.modal-body strong{color:var(--text-primary);font-weight:var(--fw-semi)}.modal-actions{gap:var(--space-2);flex-direction:column;display:flex}@media (width>=640px){.modal-actions{flex-direction:row;justify-content:flex-end}}.notice{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-sm);text-align:left;border:1px solid #0000;display:flex}.notice--err{background:var(--err-soft);border-color:var(--err);color:var(--err)}.notice--warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.notice--ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.notice-icon{flex-shrink:0;margin-top:1px}.section{padding-block:var(--section-y);border-top:1px solid var(--border-subtle);position:relative}.glow-behind{position:relative}.glow-behind:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side, var(--accent-soft), transparent 70%);position:absolute;inset:-8% -12%}.section--raised{background:var(--bg-raised)}.section-title{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:var(--fw-bold);margin-top:var(--space-2)}.section-sub{max-width:60ch;margin-top:var(--space-3);color:var(--text-secondary);font-size:var(--fs-lg);line-height:var(--lh-lg)}.wordmark{align-items:center;gap:var(--space-2);line-height:1;display:inline-flex}.wordmark-mark{flex-shrink:0;display:block}.wordmark-text{font-family:var(--font-display);font-weight:var(--fw-semi);letter-spacing:-.02em;font-size:calc(var(--wm-size,28px) * .82);color:currentColor}.sitenav{z-index:40;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);background:0 0;border-bottom:1px solid #0000;position:sticky;top:0}.sitenav--scrolled{background:color-mix(in srgb, var(--bg-base) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom-color:var(--border-subtle)}.sitenav-inner{align-items:center;gap:var(--space-4);min-height:64px;display:flex}.sitenav-brand{min-height:44px;padding:var(--space-2);border-radius:var(--r-md);color:var(--text-primary);align-items:center;margin-inline-start:calc(-1 * var(--space-2));display:inline-flex}.sitenav-links{align-items:center;gap:var(--space-1);margin-inline-start:var(--space-4);display:none}.sitenav-link{align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);transition:color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);text-decoration:none;display:inline-flex}.sitenav-link:hover{color:var(--text-primary);background:var(--bg-input)}.sitenav-actions{align-items:center;gap:var(--space-2);margin-inline-start:auto;display:flex}.sitenav-login,.sitenav-cta{display:none}.sitenav-lang{position:relative}.sitenav-langbtn{gap:var(--space-1)}.sitenav-caret{transition:transform var(--dur-fast) var(--ease)}.sitenav-caret--open{transform:rotate(180deg)}.sitenav-langmenu{top:calc(100% + var(--space-2));z-index:50;min-width:232px;padding:var(--space-2);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);gap:2px;display:grid;position:absolute;left:0}.sitenav-langitem{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--r-sm);color:var(--text-secondary);font-size:var(--fs-sm);transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);text-decoration:none;display:flex}.sitenav-langitem:hover{background:var(--bg-input);color:var(--text-primary)}.sitenav-langitem--active{color:var(--accent-strong);background:var(--accent-soft)}.sitenav-langname{font-weight:var(--fw-medium)}.sitenav-langmeta{color:var(--text-tertiary);font-size:var(--fs-xs)}.sitenav-sheet{z-index:60;background:var(--bg-base);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.sitenav-sheet-top{min-height:64px;color:var(--text-primary);justify-content:space-between;align-items:center;display:flex}.sitenav-sheet-body{gap:var(--space-3);padding-block:var(--space-4) var(--space-8);flex-direction:column;display:flex}.sitenav-sheet-link{padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-size:var(--fs-lg);font-weight:var(--fw-medium);text-decoration:none}.sitenav-sheet-eyebrow{margin-top:var(--space-4)}.sitenav-sheet-langs{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.hero{padding-block:var(--space-8) var(--section-y);background:radial-gradient(120% 80% at 78% 12%, #ffb22412, transparent 60%), linear-gradient(var(--bg-base), var(--bg-base));border-top:none}body.light .hero{background:radial-gradient(120% 80% at 78% 12%, #b874000d, transparent 60%), linear-gradient(var(--bg-base), var(--bg-base))}.hero-inner{gap:var(--space-8);align-items:center;display:grid}.hero-copy{min-width:0}.hero-title{margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);font-weight:var(--fw-bold)}.hero-title-accent{color:var(--accent-strong)}.hero-sub{max-width:52ch;margin-top:var(--space-4);color:var(--text-secondary);font-size:var(--fs-lg);line-height:var(--lh-lg)}.hero-cta-row{align-items:stretch;gap:var(--space-3);margin-top:var(--space-6);flex-direction:column;display:flex}@media (width>=640px){.hero-cta-row{flex-flow:wrap;align-items:center}}.hero-proof{align-items:center;gap:var(--space-4);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.hero-proof-text{color:var(--text-tertiary);font-size:var(--fs-sm)}.hero-langs{align-items:center;gap:var(--space-2);margin-top:var(--space-6);flex-wrap:wrap;display:flex}.hero-langs-all{min-height:44px;padding-inline:var(--space-3);color:var(--accent-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium);align-items:center;text-decoration:none;display:inline-flex}@media (pointer:fine){.hero-langs-all{min-height:36px}}.hero-langs-all:hover{text-decoration:underline}button.hero-langs-all{padding-inline:var(--space-3);cursor:pointer;font:inherit;background:0 0;border:0}.hero-visual{justify-content:center;display:flex}.how-steps{gap:var(--space-6);margin-top:var(--space-7);list-style:none;display:grid}.how-step{gap:var(--space-4);grid-template-columns:40px 1fr;display:grid;position:relative}.how-step:not(:last-child) .how-step-marker:after{content:"";top:40px;bottom:calc(-1 * var(--space-6));background:var(--border-subtle);width:1px;position:absolute;left:50%}.how-step-marker{border-radius:var(--r-full);border:1px solid var(--accent-line);background:var(--accent-soft);place-items:center;width:40px;height:40px;display:grid;position:relative}.how-step-num{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--accent-strong)}.how-step-body{min-width:0}.how-step-title{align-items:center;gap:var(--space-2);font-size:var(--fs-h3);line-height:var(--lh-h3);display:flex}.how-step-icon{color:var(--accent-strong);flex-shrink:0}.how-step-text{max-width:60ch;margin-top:var(--space-2);color:var(--text-secondary);line-height:var(--lh-base)}.feature-grid{gap:var(--space-4);margin-top:var(--space-7);display:grid}.feature-card{gap:var(--space-3);flex-direction:column;display:flex}.feature-icon-wrap{border-radius:var(--r-md);background:var(--accent-soft);width:44px;height:44px;color:var(--accent-strong);place-items:center;display:grid}.feature-title{font-size:var(--fs-h3);line-height:var(--lh-h3)}.feature-desc{max-width:60ch;color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-base)}.pricing-grid{gap:var(--space-4);margin-top:var(--space-7);align-items:start;display:grid}.pricing-card{flex-direction:column;display:flex;position:relative}.pricing-card--pro{border-color:var(--accent-line)}.pricing-flag{top:var(--space-4);right:var(--space-4);position:absolute}.pricing-name{font-size:var(--fs-h3);line-height:var(--lh-h3)}.pricing-price{margin-top:var(--space-2);font-family:var(--font-display);font-size:var(--fs-h1);letter-spacing:var(--ls-h1);line-height:1;font-weight:var(--fw-bold)}.pricing-per{font-family:var(--font-ui);font-size:var(--fs-base);font-weight:var(--fw-regular);color:var(--text-tertiary);letter-spacing:0}.pricing-note{margin-top:var(--space-2);color:var(--text-tertiary);font-size:var(--fs-sm)}.pricing-perks{gap:var(--space-3);margin-block:var(--space-5);font-size:var(--fs-sm);line-height:var(--lh-sm);list-style:none;display:grid}.pricing-perks li{gap:var(--space-2);color:var(--text-secondary);grid-template-columns:20px 1fr;align-items:start;display:grid}.pricing-tick{color:var(--ok);margin-top:1px}.pricing-card .btn{margin-top:auto}.faq-list{gap:var(--space-2);margin-top:var(--space-7);display:grid}.faq-item{border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-card)}.faq-q{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);cursor:pointer;font-size:var(--fs-lg);font-weight:var(--fw-medium);list-style:none;display:flex}.faq-q::-webkit-details-marker{display:none}.faq-caret{color:var(--text-tertiary);transition:transform var(--dur-fast) var(--ease);flex-shrink:0}.faq-item[open] .faq-caret{transform:rotate(180deg)}.faq-a{padding:0 var(--space-5) var(--space-5);max-width:70ch;color:var(--text-secondary);line-height:var(--lh-base)}.founder-card{gap:var(--space-3);border-color:var(--border-strong);flex-direction:column;display:flex}.founder-lead{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-h3);font-weight:var(--fw-semi)}.founder-body{max-width:68ch;color:var(--text-secondary);line-height:var(--lh-base)}.founder-mail{align-items:center;gap:var(--space-2);min-height:44px;margin-top:var(--space-2);color:var(--accent-strong);font-weight:var(--fw-medium);text-decoration:none;display:inline-flex}.founder-mail:hover{text-decoration:underline}.founder-actions{align-items:center;gap:var(--space-4);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.founder-actions .founder-mail{margin-top:0}.founder-more{color:var(--text-secondary);font-weight:var(--fw-medium);text-underline-offset:3px;align-items:center;min-height:44px;text-decoration:underline;display:inline-flex}.founder-more:hover{color:var(--text-primary)}.cta-strip{text-align:center}.cta-strip .section-sub{margin-inline:auto}.cta-strip .btn{margin-top:var(--space-6)}.cta-strip-note{margin-top:var(--space-4);color:var(--text-tertiary);font-size:var(--fs-sm)}.sitefooter{border-top:1px solid var(--border-subtle);background:var(--bg-base);padding-top:var(--space-8)}.sitefooter-cols{gap:var(--space-6);display:grid}.sitefooter-col{gap:var(--space-2);flex-direction:column;display:flex}.sitefooter-col--brand{gap:var(--space-3);color:var(--text-primary)}.sitefooter-tagline{max-width:34ch;color:var(--text-tertiary);font-size:var(--fs-sm);line-height:var(--lh-sm)}.sitefooter-head{font-family:var(--font-ui);font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--text-tertiary);margin-bottom:var(--space-1)}.sitefooter-link{align-self:flex-start;align-items:center;gap:var(--space-2);min-height:44px;color:var(--text-secondary);font-size:var(--fs-sm);transition:color var(--dur-fast) var(--ease);text-decoration:none;display:inline-flex}.sitefooter-link:hover{color:var(--accent-strong)}.sitefooter-linkbtn{text-align:left;padding:0}.sitefooter-langs{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sitefooter-bar{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-8);padding-block:var(--space-4);border-top:1px solid var(--border-subtle);display:flex}.sitefooter-copy{color:var(--text-tertiary);font-size:var(--fs-sm)}.pd-stage{width:100%;max-width:380px;padding-block:var(--space-4);position:relative}.pd-stage:before{content:"";z-index:0;background:radial-gradient(closest-side, var(--accent-soft), transparent 72%);pointer-events:none;position:absolute;inset:-12% -20%}.pd-callout{z-index:2;width:var(--callout-w,150px);color:var(--text-tertiary);font-size:var(--fs-sm);line-height:var(--lh-sm);display:none;position:absolute}.pd-callout:after{content:"";background:var(--border-strong);height:1px;position:absolute}.pd-callout--answer{top:34%;right:calc(100% + var(--space-5));text-align:right}.pd-callout--answer:after{top:.7em;left:calc(100% + var(--space-2));width:var(--space-4)}.pd-callout--chat{bottom:20%;left:calc(100% + var(--space-5))}.pd-callout--chat:after{top:.7em;right:calc(100% + var(--space-2));width:var(--space-4)}.pd-captions{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);display:none}.pd-caption{align-items:flex-start;gap:var(--space-2);min-width:0;color:var(--text-tertiary);font-size:var(--fs-sm);line-height:var(--lh-sm);flex:1;display:flex}.pd-caption svg{color:var(--accent-strong);flex-shrink:0;margin-top:2px}@media (width>=640px){.feature-grid,.pricing-grid,.sitefooter-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.sitenav-login,.sitenav-cta{display:inline-flex}}@media (width>=900px){.sitenav-links{display:flex}.sitenav-burger{display:none}.section-title{font-size:calc(var(--fs-h2) * 1.15)}.hero-inner{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}.hero-visual{justify-content:flex-end}.how-steps{gap:var(--space-7)}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sitefooter-cols{gap:var(--space-7);grid-template-columns:1.4fr 1fr 1.2fr 1.2fr}.pd-captions{display:flex}}.hero-visual{container:demo/inline-size}@container demo (width>=620px){.pd-callout{display:block}.pd-captions{display:none}}.pd-frame{z-index:1;background:var(--bg-card);border:8px solid var(--border-strong);outline:1px solid var(--border-subtle);outline-offset:-9px;width:100%;max-width:360px;box-shadow:var(--shadow-lg);aspect-ratio:9/15;-webkit-user-select:none;user-select:none;border-radius:44px;flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.pd-topbar{font-size:var(--fs-xs);color:var(--text-secondary);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px 10px;display:flex}.pd-topbar-title{color:var(--text-primary);font-weight:700;font-size:var(--fs-sm)}.pd-topbar-flags,.pd-topbar-streak{font-size:var(--fs-xs);color:var(--text-secondary);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.pd-progress{background:var(--bg-input);border-radius:var(--r-full);flex-shrink:0;height:6px;margin:0 16px 14px;overflow:hidden}.pd-progress-fill{border-radius:var(--r-full);background:linear-gradient(90deg, var(--accent), var(--accent-press));width:45%;height:100%}.pd-body{padding:0 16px 16px}.pd-instruction{font-size:var(--fs-xs);letter-spacing:1px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:10px;font-weight:700}.pd-prompt-card{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-align:center;margin-bottom:14px;padding:16px 14px}.pd-prompt-word{font-size:var(--fs-xl);letter-spacing:-.5px;font-weight:800}.pd-speak-row{justify-content:center;gap:8px;margin-top:12px;display:flex}.pd-chip{line-height:1;font-size:var(--fs-xs);color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-full);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.pd-options{flex-direction:column;gap:8px;display:flex}.pd-option{border:1.5px solid var(--border-subtle);border-radius:var(--r-md);font-size:var(--fs-sm);background:var(--bg-card);transition:border-color var(--dur-slow), background var(--dur-slow), color var(--dur-slow);padding:11px 14px;font-weight:600;position:relative}.pd-option--picked{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.pd-option--correct{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 14%, transparent);color:var(--ok)}.pd-tick{font-weight:800;position:absolute;right:14px}.pd-chat{background:var(--bg-card);border-top:1px solid var(--border-subtle);height:56%;box-shadow:var(--shadow-md);border-radius:22px 22px 28px 28px;flex-direction:column;transition:transform .5s cubic-bezier(.22,1,.36,1);display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(102%)}.pd-chat--open{transform:translateY(0)}.pd-chat-head{border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:8px;padding:12px 16px;display:flex}.pd-chat-avatar{font-size:16px}.pd-chat-name{font-size:var(--fs-sm);font-weight:700}.pd-chat-msgs{flex-direction:column;flex:1;justify-content:flex-end;gap:8px;padding:12px 14px;display:flex;overflow:hidden}.pd-msg{max-width:86%;font-size:var(--fs-xs);border-radius:var(--r-lg);animation:pd-pop var(--dur-slow) ease-out;padding:9px 12px;line-height:1.5}.pd-msg--user{background:linear-gradient(135deg, var(--accent), var(--accent-press));color:var(--accent-ink);border-bottom-right-radius:5px;align-self:flex-end}.pd-msg--ai{background:var(--bg-input);border:1px solid var(--border-subtle);border-bottom-left-radius:5px;align-self:flex-start}@keyframes pd-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.pd-msg--thinking{align-items:center;gap:4px;padding:12px;display:flex}.pd-msg--thinking span{background:var(--text-secondary);border-radius:50%;width:5px;height:5px;animation:1.1s infinite pd-blink}.pd-msg--thinking span:nth-child(2){animation-delay:.18s}.pd-msg--thinking span:nth-child(3){animation-delay:.36s}@keyframes pd-blink{0%,to{opacity:.25}50%{opacity:1}}.pd-chat-input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-full);flex-shrink:0;align-items:center;gap:8px;margin:0 12px 14px;padding:9px 12px;display:flex}.pd-chat-input-text{font-size:var(--fs-xs);color:var(--text-primary);text-align:left;flex:1;min-height:16px}.pd-caret{background:var(--accent);vertical-align:-2px;width:1.5px;height:13px;animation:1s step-end infinite pd-caret;display:inline-block}@keyframes pd-caret{50%{opacity:0}}.pd-chat-send{background:linear-gradient(135deg, var(--accent), var(--accent-press));width:22px;height:22px;color:var(--accent-ink);font-size:var(--fs-xs);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.pd-fab{background:linear-gradient(135deg, var(--accent), var(--accent-press));width:40px;height:40px;font-size:var(--fs-lg);box-shadow:var(--shadow-md);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:14px;right:14px}@media (prefers-reduced-motion:reduce){.pd-chat{transition:none}.pd-msg,.pd-caret,.pd-msg--thinking span{animation:none}}.gd-card{gap:var(--space-6);margin-top:var(--space-7);border-color:var(--border-strong);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.gd-step{gap:var(--space-3);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.gd-step-label{align-items:center;gap:var(--space-2);color:var(--text-secondary);display:flex}.gd-step-num{border-radius:var(--r-full);background:var(--accent);width:20px;height:20px;color:var(--accent-ink);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:0;place-items:center;display:grid}.gd-langs{gap:var(--space-2);flex-wrap:wrap;display:flex}.gd-hint{color:var(--text-tertiary);font-size:var(--fs-sm);line-height:var(--lh-sm);margin:-2px 0 10px}.gd-examples{gap:var(--space-2);display:grid}.gd-example{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);background:var(--bg-input);border:1px dashed var(--border-strong);border-radius:var(--r-md);color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-sm);text-align:left;transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);display:flex}.gd-example svg{color:var(--text-tertiary);flex-shrink:0;margin-top:3px}.gd-example:hover:not(:disabled) svg{color:var(--accent-strong)}.gd-example:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}.gd-example:disabled{opacity:.45;cursor:not-allowed}.gd-field{grid-template-columns:minmax(0,1fr);min-width:0;display:grid;position:relative}.gd-textarea{min-width:0;max-width:100%;min-height:104px}.gd-count{right:var(--space-3);bottom:var(--space-2);color:var(--text-tertiary);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;position:absolute}.gd-count--full{color:var(--warn)}.gd-error{margin-top:var(--space-1)}.gd-result{margin-top:var(--space-6);padding:var(--space-5);background:var(--bg-card);border:1px solid var(--accent-line);border-radius:var(--r-lg);box-shadow:var(--shadow-md);text-align:left;animation:gd-reveal var(--dur-slow) var(--ease)}@keyframes gd-reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.gd-result{animation:none}}.gd-result-head{align-items:center;gap:var(--space-3);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex}.gd-result-emoji{border-radius:var(--r-md);background:var(--accent-soft);width:44px;height:44px;font-size:var(--fs-xl);flex-shrink:0;place-items:center;line-height:1;display:grid}.gd-result-title{font-size:var(--fs-h3);line-height:var(--lh-h3)}.gd-result-sub{color:var(--text-secondary);font-size:var(--fs-sm);margin-top:2px}.gd-lessons{gap:var(--space-4);margin-top:var(--space-4);list-style:none;display:grid}.gd-lesson{gap:var(--space-3);grid-template-columns:24px 1fr;display:grid}.gd-lesson-n{color:var(--text-tertiary);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;text-align:right;padding-top:2px}.gd-lesson-main{gap:var(--space-2);min-width:0;display:grid}.gd-lesson-title{align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--fs-base);font-weight:var(--fw-semi);letter-spacing:0;display:flex}.gd-lesson-emoji{font-size:var(--fs-base);line-height:1}.gd-words{gap:var(--space-1);list-style:none;display:grid}.gd-word{align-items:baseline;gap:var(--space-2);font-size:var(--fs-sm);line-height:var(--lh-sm);flex-wrap:wrap;display:flex}.gd-word-target{font-weight:var(--fw-medium);color:var(--text-primary)}.gd-word-reading{color:var(--text-tertiary);font-size:var(--fs-xs)}.gd-word-en{color:var(--text-secondary)}.gd-lesson--pending .gd-lesson-n{opacity:.5}.gd-sk{border-radius:var(--r-sm);height:12px;display:block}.gd-sk--title{width:62%;height:16px;margin-bottom:var(--space-1)}.gd-sk--word{width:88%}.gd-sk--short{width:54%}.gd-waiting{margin-top:var(--space-4);color:var(--text-tertiary);font-size:var(--fs-sm)}.gd-save{gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border-subtle);display:grid}.gd-save-copy{color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-base)}.gd-savebar{z-index:30;background:color-mix(in srgb, var(--bg-card) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom,0);position:fixed;bottom:0;left:0;right:0}.gd-savebar-inner{justify-content:space-between;align-items:center;gap:var(--space-4);padding-block:var(--space-3);display:flex}.gd-savebar-text{color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium)}@media (width>=640px){.gd-save{grid-template-columns:1fr auto;align-items:center}}.pr-card{margin-top:var(--space-6);padding:var(--space-6);text-align:center;justify-items:center;gap:var(--space-2);display:grid}.pr-word{font-family:var(--font-target);font-size:var(--fs-h2);font-weight:var(--fw-semi);margin:0;line-height:1.15}.pr-reading{font-size:var(--fs-sm);color:var(--text-tertiary);letter-spacing:.04em;margin:0}.pr-en{color:var(--text-secondary);margin:0}.pr-actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.pr-heard,.pr-rating{margin:var(--space-2) 0 0;font-size:var(--fs-sm)}.pr-heard{color:var(--text-secondary);font-style:italic}.pr-rating{font-weight:var(--fw-semi)}.pr-speak--on{animation:.8s infinite pulse-lumi}.appframe{background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-md);z-index:1;position:relative;overflow:hidden}.appframe-bar{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--bg-input);font-size:var(--fs-sm);display:flex}.frame-bar-title{font-weight:var(--fw-semi)}.frame-bar-meta,.frame-bar-icon{color:var(--text-tertiary);margin-left:auto;display:inline-flex}.frame-bar-icon{color:var(--accent-strong);margin-left:0}.frame-bar-emoji{font-size:15px}.appframe-body{gap:var(--space-3);padding:var(--space-4);flex-direction:column;display:flex}.frame-label{color:var(--text-tertiary);font-size:var(--fs-xs);font-weight:var(--fw-semi);letter-spacing:var(--ls-xs);text-transform:uppercase}.frame-input{padding:var(--space-3);border:1px solid var(--accent-line);border-radius:var(--r-md);background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-sm);line-height:var(--lh-sm)}.frame-caret{background:var(--accent);vertical-align:-2px;width:1.5px;height:1em;margin-left:1px;display:inline-block}.frame-levels{gap:var(--space-2);flex-wrap:wrap;display:flex}.frame-level{padding:4px var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--r-full);color:var(--text-tertiary);font-size:var(--fs-xs)}.frame-level--on{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-strong);font-weight:var(--fw-semi)}.frame-lessons{gap:var(--space-3);list-style:none;display:grid}.frame-lesson{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-input);display:grid}.frame-lesson-title{font-size:var(--fs-sm);font-weight:var(--fw-semi)}.frame-lesson-words{gap:var(--space-2);flex-wrap:wrap;display:flex}.frame-word{padding:2px var(--space-2);border-radius:var(--r-sm);background:var(--bg-card);color:var(--text-secondary);font-size:var(--fs-xs)}.frame-prompt{padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--r-md);background:var(--bg-input);text-align:center;gap:2px;display:grid}.frame-prompt-word{font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-semi)}.frame-prompt-gloss{color:var(--text-tertiary);font-size:var(--fs-xs)}.frame-msg{max-width:88%;padding:var(--space-2) var(--space-3);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:var(--lh-sm)}.frame-msg--user{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px;align-self:flex-end}.frame-msg--ai{align-self:flex-start;gap:var(--space-2);border:1px solid var(--border-subtle);background:var(--bg-input);border-bottom-left-radius:4px;display:flex}.frame-msg-mark{color:var(--accent-strong);flex-shrink:0;margin-top:2px}.frame-path{gap:var(--space-2);list-style:none;display:grid}.frame-path-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);font-size:var(--fs-sm);display:flex}.frame-path-dot{border-radius:var(--r-full);border:1px solid var(--border-strong);width:22px;height:22px;color:var(--text-tertiary);flex-shrink:0;place-items:center;display:grid}.frame-path-row--done .frame-path-dot{background:var(--ok);color:var(--ok-ink);border-color:#0000}.frame-path-row--now{border-color:var(--accent-line);background:var(--accent-soft);font-weight:var(--fw-semi)}.frame-path-row--now .frame-path-dot{background:var(--accent);color:var(--accent-ink);border-color:#0000}.frame-path-row--locked{color:var(--text-tertiary)}.frame-due{gap:var(--space-2);list-style:none;display:grid}.frame-due-row{gap:0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--r-md);font-size:var(--fs-sm);grid-template-columns:1fr auto;display:grid}.frame-due-word{font-weight:var(--fw-semi)}.frame-due-gloss{color:var(--text-tertiary);font-size:var(--fs-xs);grid-column:1}.frame-due-when{color:var(--text-tertiary);font-size:var(--fs-xs);white-space:nowrap;grid-area:1/2/span 2;align-self:center}.frame-due-when--now{color:var(--accent-strong);font-weight:var(--fw-semi)}.how-step-frame{margin-top:var(--space-4);grid-column:2}.lang-grid{gap:var(--space-3);margin-top:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;display:grid}.lang-card{height:100%;padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--r-lg);background:var(--bg-card);flex-direction:column;gap:2px;text-decoration:none;display:flex}.lang-card:hover{border-color:var(--card-accent,var(--border-strong))}.lang-card-sample{color:var(--card-accent,var(--accent-strong));font-size:var(--fs-h3);font-weight:var(--fw-semi);min-height:1.3em;line-height:1.3}.lang-card-name{font-weight:var(--fw-semi);font-size:var(--fs-sm)}.lang-card-meta{color:var(--text-tertiary);font-size:var(--fs-xs)}.lang-frames{gap:var(--space-6);margin-top:var(--space-8);display:grid}.lang-frame-item{flex-direction:column;align-items:flex-start;display:flex}.lang-frame-title{margin-top:var(--space-4);font-size:var(--fs-h3)}.lang-frame-text{max-width:52ch;margin-top:var(--space-2);color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-base)}@media (width>=640px){.lang-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lang-frames{gap:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=900px){.lang-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.how-step{align-items:start;gap:var(--space-6);grid-template-columns:40px minmax(0,1fr) minmax(0,420px)}.how-step-frame{grid-area:1/3;margin-top:0}}.hero-cta-row--member{display:none}.home-screen{min-height:100dvh}.home-screen--member .hero-cta-row{display:none}.home-screen--member .hero-cta-row--member{display:flex}.cta-strip-link{font:inherit;color:var(--accent-strong);text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.cta-strip-link:hover{color:var(--text-primary)}.legal-screen{background:var(--bg-base);flex-direction:column;min-height:100dvh;display:flex}.legal-topbar{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;max-width:var(--container);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);margin-inline:auto;display:flex}.legal-home{min-height:44px;padding-inline:var(--space-2);border-radius:var(--r-md);color:var(--text-primary);align-items:center;margin-inline-start:calc(-1 * var(--space-2));display:inline-flex}.legal-main{padding-block:var(--space-8) var(--space-10);flex:1}.legal-prose{width:100%;max-width:68ch;padding-inline:var(--space-5);margin-inline:auto}.legal-title{margin-top:var(--space-2);font-size:var(--fs-h1);line-height:var(--lh-h1)}.legal-title:focus:not(:focus-visible){outline:none}.legal-lede{margin-top:var(--space-4);color:var(--text-secondary);font-size:var(--fs-lg);line-height:var(--lh-lg)}.legal-meta{margin-top:var(--space-4);color:var(--text-tertiary);font-size:var(--fs-sm)}.legal-prose h2{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);font-size:var(--fs-h3);line-height:var(--lh-h3)}.legal-prose p{margin-top:var(--space-4);color:var(--text-secondary)}.legal-prose ul{margin-top:var(--space-4);padding-inline-start:var(--space-5)}.legal-prose li{margin-top:var(--space-2);color:var(--text-secondary)}.legal-prose strong{color:var(--text-primary);font-weight:var(--fw-semi)}.legal-prose a{color:var(--accent-strong);text-decoration:underline}.legal-prose a:hover{text-decoration:none}.legal-signoff{margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--border-subtle)}.who-grid{gap:var(--space-4);margin-top:var(--space-6);grid-template-columns:1fr;display:grid}.who-card-text{color:var(--text-secondary);line-height:var(--lh-base)}.phrase-grid{gap:var(--space-3);margin-top:var(--space-6);grid-template-columns:1fr 1fr;list-style:none;display:grid}.phrase-card{gap:var(--space-1);padding:var(--space-4);flex-direction:column;min-width:0;display:flex}.phrase-target{font-size:var(--fs-lg);font-weight:var(--fw-semi);font-family:var(--font-target);overflow-wrap:anywhere}.phrase-reading{color:var(--text-tertiary);font-size:var(--fs-sm)}.phrase-english{color:var(--text-secondary);font-size:var(--fs-sm);overflow-wrap:anywhere}.phrase-grid--situations{grid-template-columns:1fr;padding-inline-start:0}.phrase-grid--situations>.phrase-card{color:inherit;padding:var(--space-5);gap:var(--space-2);margin-top:0}.compare-table{margin-top:var(--space-6);gap:var(--space-5);display:grid}.compare-head{display:none}.compare-topic{font-size:var(--fs-h3);line-height:var(--lh-h3);margin:0}.compare-row p{margin-top:var(--space-2)}.compare-label{font-weight:var(--fw-semi);color:var(--text-primary)}@media (width>=640px){.who-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.phrase-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.phrase-grid--situations{grid-template-columns:repeat(2,minmax(0,1fr))}}.notify-stack{top:var(--space-4);z-index:2000;width:min(400px, calc(100vw - var(--space-6)));pointer-events:none;flex-direction:column;display:flex;position:fixed;left:50%;transform:translate(-50%)}.notify-stack>*{pointer-events:auto}.notify-stack>*+*{margin-top:var(--space-2)}.toast-host:empty{margin-top:0}.offline-banner{align-items:flex-start;gap:var(--space-3);background:var(--bg-card);border:1px solid color-mix(in srgb, var(--warn) 45%, transparent);border-radius:var(--r-lg);padding:var(--space-3) var(--space-4);box-shadow:var(--shadow-lg);animation:notify-drop var(--dur-slow) var(--ease);display:flex}@keyframes notify-drop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.offline-banner-body{gap:var(--space-3);flex:1;align-items:flex-start;min-width:0;display:flex}.offline-banner-icon{color:var(--warn);flex-shrink:0;margin-top:2px}.offline-banner-text{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.offline-banner-text strong{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary)}.offline-banner-rows{gap:var(--space-1) var(--space-3);display:grid}@media (width>=640px){.offline-banner-rows{grid-template-columns:1fr 1fr}}.offline-row{align-items:center;gap:var(--space-1);font-size:var(--fs-xs);line-height:var(--lh-xs);display:flex}.offline-row--ok{color:var(--ok)}.offline-row--no{color:var(--text-secondary)}.offline-row-icon{flex-shrink:0}.offline-banner-close{color:var(--text-secondary);flex-shrink:0}.offline-banner-close:hover{color:var(--text-primary)}.toast-host{gap:var(--space-2);flex-direction:column;display:flex}.toast{align-items:flex-start;gap:var(--space-3);background:var(--bg-card);border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);box-shadow:var(--shadow-lg);animation:notify-drop var(--dur-slow) var(--ease);border-left-width:3px;display:flex}.toast-icon{flex-shrink:0;margin-top:1px}.toast-msg{min-width:0;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-primary);flex:1}.toast-close{color:var(--text-tertiary);flex-shrink:0}.toast-close:hover{color:var(--text-primary)}.toast--info .toast-icon{color:var(--accent-strong)}.toast--info{border-left-color:var(--accent)}.toast--ok .toast-icon{color:var(--ok)}.toast--ok{border-left-color:var(--ok)}.toast--warn .toast-icon{color:var(--warn)}.toast--warn{border-left-color:var(--warn)}.toast--err .toast-icon{color:var(--err)}.toast--err{border-left-color:var(--err)}.app{overflow-anchor:none;width:100%;min-height:100dvh;position:relative;overflow-x:clip}@keyframes bounce{0%{transform:translateY(0)scale(1)}to{transform:translateY(-14px)scale(1.05)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.chat-fab{border-radius:var(--r-lg);background:var(--accent);width:52px;height:52px;color:var(--accent-ink);box-shadow:var(--shadow-md);z-index:100;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);border:none;justify-content:center;align-items:center;display:flex;position:absolute;bottom:140px;right:20px}.chat-fab:hover{transform:scale(1.06)}.chat-fab--open{background:var(--bg-input);color:var(--text-primary);box-shadow:var(--shadow-sm)}.chat-panel.chat-panel--closed{display:none}.chat-panel{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-xl);width:calc(100% - 32px);max-height:min(680px,100dvh - 180px);box-shadow:var(--shadow-lg);z-index:99;flex-direction:column;display:flex;position:absolute;bottom:158px;right:16px;overflow:hidden}.chat-header{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px 10px;display:flex}.chat-header-title{font-size:var(--fs-sm);color:var(--text-primary);font-weight:800}.chat-header-hint{font-size:var(--fs-xs);color:var(--text-secondary)}.chat-header-hint strong{color:var(--accent)}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:12px;display:flex;overflow-y:auto}.chat-msg{align-items:flex-end;gap:8px;display:flex}.chat-msg--user{flex-direction:row-reverse}.chat-msg-icon{flex-shrink:0;font-size:18px;line-height:1}.chat-msg-bubble{border-radius:var(--r-lg);max-width:78%;font-size:var(--fs-sm);padding:8px 12px;font-weight:500;line-height:1.45}.chat-msg--ai .chat-msg-bubble{background:var(--bg-input);color:var(--text-primary);border-bottom-left-radius:4px}.chat-msg--user .chat-msg-bubble{background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:4px}.chat-msg-bubble--loading{align-items:center;gap:4px;padding:10px 14px;display:flex}.chat-dot{background:var(--text-secondary);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite chat-bounce}.chat-dot:nth-child(2){animation-delay:.2s}.chat-dot:nth-child(3){animation-delay:.4s}@keyframes chat-bounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}.chat-input-row{border-top:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex}.chat-mic-btn{border-radius:var(--r-md);background:var(--bg-input);border:1px solid var(--border-subtle);width:44px;height:44px;font-size:var(--fs-base);transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-mic-btn:hover{border-color:var(--accent)}.chat-mic-btn--active{background:var(--err);border-color:var(--err);animation:1s ease-in-out infinite mic-pulse}.chat-input{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-md);min-width:0;min-height:44px;font-size:var(--fs-base);color:var(--text-primary);transition:border-color var(--dur-fast);outline:none;flex:1;padding:7px 10px}.chat-input:focus-visible{border-color:var(--accent)}.chat-input::placeholder{color:var(--text-secondary)}.chat-send-btn{border-radius:var(--r-md);background:var(--accent);width:44px;height:44px;color:var(--accent-ink);font-size:var(--fs-base);transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);border:none;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.chat-send-btn:hover:not(:disabled){background:var(--accent-press)}.chat-send-btn:disabled{background:var(--bg-input);color:var(--text-secondary);cursor:not-allowed}@media (pointer:fine){.chat-mic-btn,.chat-send-btn{width:34px;height:34px}}.onboard-screen,.results-screen,.login-screen{width:100%;max-width:var(--container-app);margin-inline:auto}@media (width>=900px){.login-screen{max-width:var(--container-content)}}.select-screen,.path-screen,.profile-screen,.words-screen{width:100%;max-width:var(--container-app);margin-inline:auto}@media (width>=640px){.select-screen,.path-screen,.profile-screen,.words-screen{max-width:var(--container-content)}}@media (width>=1200px){.select-screen,.path-screen,.profile-screen,.words-screen{max-width:var(--container-wide)}}@media (width>=900px){.app--with-nav .select-screen,.app--with-nav .path-screen,.app--with-nav .profile-screen,.app--with-nav .words-screen{max-width:none}.chat-panel{width:min(420px,100% - 32px)}}.offline-gate{z-index:60;background:var(--bg-base);padding:var(--space-5);place-items:center;display:grid;position:fixed;inset:0}.offline-gate-card{text-align:center;align-items:center;gap:var(--space-3);flex-direction:column;max-width:380px;display:flex}.offline-gate-icon{color:var(--warn)}.offline-gate-title{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:var(--fw-semi);color:var(--text-primary);margin:0}.offline-gate-sub{margin:0 0 var(--space-2);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-secondary)}.chat-empty{gap:var(--space-3);padding:var(--space-2) var(--space-1);text-align:center;display:grid}.chat-empty-lead{color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-sm)}.chat-openers{gap:var(--space-2);flex-wrap:wrap;justify-content:center;display:flex}.chat-opener{min-height:44px;padding:var(--space-2) var(--space-3);background:var(--bg-input);border:1px dashed var(--border-strong);border-radius:var(--r-md);color:var(--text-secondary);font-size:var(--fs-sm);transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}.chat-opener:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}@media (pointer:fine){.chat-opener{min-height:0}}.chat-opener:disabled{opacity:.45;cursor:not-allowed}.chat-header-hint--low{color:var(--warn);font-weight:var(--fw-semi)}.chat-pro-link{color:var(--accent-strong);font:inherit;font-weight:var(--fw-semi);background:0 0;padding:0;text-decoration:underline}.chat-caret{vertical-align:text-bottom;background:currentColor;width:2px;height:1em;margin-left:2px;animation:1s steps(2,start) infinite chat-caret-blink;display:inline-block}@keyframes chat-caret-blink{50%{opacity:0}}:root{--app-nav-h:0px;--app-rail-w:208px}.app-nav{z-index:40;background:var(--bg-card);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom,0);position:fixed;inset:auto 0 0}.app-nav-brand{display:none}.app-nav-home{align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2);border-radius:var(--r-md);cursor:pointer;background:0 0;border:0;display:flex}.app-nav-home:hover{background:var(--bg-input)}.app-nav-collapse{display:none}.app-nav-list{margin:0;padding:0;list-style:none;display:flex}@media (width>=640px){.app-nav-list{width:100%;max-width:420px;margin-inline:auto}}.app-nav-item{flex:1;min-width:0}.app-nav-btn{width:100%;min-height:56px;padding:var(--space-2) var(--space-1);color:var(--text-tertiary);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.app-nav-btn:hover{color:var(--text-secondary)}.app-nav-btn--active{color:var(--accent-strong)}.app-nav-btn--active .app-nav-label{font-weight:600}.app-nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}@media (width>=900px){.app-nav{width:var(--app-rail-w);border-top:0;border-right:1px solid var(--border-subtle);padding:var(--space-5) var(--space-3);inset:0 auto 0 0;overflow:visible}.app-nav-home{justify-content:flex-start;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-2) var(--space-3)}.app-nav-brand{width:100%;margin-bottom:var(--space-5);justify-content:flex-start;display:flex}.app-nav-collapse{align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--r-md);color:var(--text-tertiary);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:0;margin-top:auto;display:flex}.app-nav-collapse:hover{background:var(--bg-input);color:var(--text-secondary)}.app-nav{flex-direction:column;display:flex}.app-nav-list{gap:var(--space-1);flex-direction:column}.app-nav-btn{justify-content:flex-start;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--r-md);font-size:var(--fs-sm);flex-direction:row}.app-nav-btn--active{background:var(--accent-soft)}}.app--with-nav{--app-nav-h:56px;background:var(--bg-base)}@media (width>=900px){.app--with-nav{--app-nav-h:0px;padding-left:var(--app-rail-w)}}.app--with-nav .path-scroll,.app--with-nav .profile-scroll,.app--with-nav .words-scroll{scroll-padding-block-end:calc(var(--app-nav-h) + var(--space-4))}.app--with-nav .select-screen{padding-bottom:calc(var(--app-nav-h) + var(--space-7))}@media (width>=900px){.app--nav-collapsed{--app-rail-w:72px}.app--nav-collapsed .app-nav .wordmark-text,.app--nav-collapsed .app-nav-label{display:none}.app--nav-collapsed .app-nav-btn,.app--nav-collapsed .app-nav-home,.app--nav-collapsed .app-nav-collapse{justify-content:center;gap:0;padding-inline:0}.app--nav-collapsed .app-nav-brand{justify-content:center}}.results-screen{align-items:center;gap:var(--space-4);width:100%;max-width:var(--container-app);padding:var(--space-6) var(--space-5) var(--space-8);text-align:center;flex-direction:column;flex:1;margin-inline:auto;display:flex;overflow-y:auto}.results-rank{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.results-rank-icon{border-radius:var(--r-full);background:var(--bg-input);border:1px solid var(--border-subtle);width:80px;height:80px;color:var(--text-secondary);animation:results-pop var(--dur-slow) var(--ease);place-items:center;display:grid}@keyframes results-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:none}}.results-rank-label{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--text-secondary)}.results-rank--gold .results-rank-icon{background:var(--warn-soft);border-color:color-mix(in srgb, var(--warn) 50%, transparent);color:var(--warn)}.results-rank--gold .results-rank-label{color:var(--warn)}.results-rank--accent .results-rank-icon{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent-strong)}.results-rank--accent .results-rank-label{color:var(--accent-strong)}.results-title{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:var(--fw-semi);color:var(--text-primary);margin:0}.results-subtitle{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-secondary);margin:0}.results-xp{justify-content:center;align-items:baseline;gap:var(--space-2);margin:var(--space-2) 0 0;display:flex}.results-xp-num{font-family:var(--font-display);font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:var(--ls-display);font-weight:var(--fw-bold);color:var(--accent-strong);font-variant-numeric:tabular-nums}.results-xp-unit{font-size:var(--fs-lg);font-weight:var(--fw-semi);color:var(--text-secondary)}.results-stats{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.results-stat{align-items:center;gap:var(--space-1);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--space-3) var(--space-4);flex-direction:column;min-width:84px;display:flex}.results-stat-num{font-family:var(--font-display);font-size:var(--fs-h3);line-height:1.1;font-weight:var(--fw-semi);color:var(--text-primary);font-variant-numeric:tabular-nums}.results-stat-lbl{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary);font-weight:var(--fw-medium)}.results-words{width:100%;margin-top:var(--space-2);border-collapse:collapse;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-align:left;overflow:hidden}.results-words th{padding:var(--space-2) var(--space-4);background:var(--bg-input);font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--text-secondary)}.results-words td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border-subtle);vertical-align:top;font-size:var(--fs-sm);line-height:var(--lh-sm)}.results-words td:first-child{flex-direction:column;gap:2px;display:flex}.results-word-target{font-weight:var(--fw-semi);color:var(--text-primary)}.results-word-reading{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-tertiary)}.results-word-hint{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--accent-strong)}.results-word-en{color:var(--text-secondary)}.results-screen:not(:has(.results-words)){justify-content:center}.results-actions{gap:var(--space-2);width:100%;margin-top:var(--space-3);flex-direction:column;display:flex}.conv-screen{background:var(--bg-base);height:100dvh;max-width:var(--container-app);box-shadow:0 0 0 1px var(--border-subtle), var(--shadow-lg);flex-direction:column;margin:0 auto;display:flex;position:relative;overflow:hidden}.conv-topbar{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex}.conv-close-btn{flex-shrink:0}.conv-course-info{text-align:center;flex-direction:column;flex:1;align-items:center;gap:1px;min-width:0;display:flex}.conv-course-name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.conv-course-step{font-size:var(--fs-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums}.conv-streak{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--r-full);background:var(--warn-soft);color:var(--warn);font-size:var(--fs-sm);font-weight:var(--fw-semi);font-variant-numeric:tabular-nums;flex-shrink:0;display:inline-flex}.lesson-skeleton{gap:var(--space-4);padding:var(--space-6) var(--space-5);width:100%;max-width:var(--container-app);flex-direction:column;flex:1;margin-inline:auto;display:flex}.lesson-skeleton-prompt{border-radius:var(--r-lg);height:140px}.lesson-skeleton-options{gap:var(--space-3);flex-direction:column;display:flex}.lesson-skeleton-option{height:56px}.lesson-skeleton-footer{border-radius:var(--r-md);height:52px;margin-top:auto}.dl-lesson-header{flex-shrink:0;align-items:center;gap:14px;padding:14px 20px 10px;display:flex}.dl-progress-track{border-radius:var(--r-full);background:var(--bg-input);flex:1;height:8px;overflow:hidden}.dl-progress-fill{border-radius:var(--r-full);background:var(--accent);height:100%;transition:width var(--dur-slow) var(--ease)}.dl-progress-dots{flex-shrink:0;gap:3px;display:flex}.dl-progress-dots .seg{border-radius:var(--r-full);background:var(--bg-input);width:5px;height:5px;transition:background-color var(--dur) var(--ease)}.dl-progress-dots .seg.filled{background:var(--accent)}.dl-progress-count{font-size:var(--fs-xs);color:var(--text-secondary);white-space:nowrap;flex-shrink:0;font-weight:700}.dl-exercise-area{padding:var(--pad-screen) var(--pad-screen) calc(52px + var(--space-5));flex-direction:column;flex:1;justify-content:safe center;align-items:center;gap:16px;display:flex;overflow-y:auto}.dl-instruction{font-size:var(--fs-base);color:var(--text-secondary);text-align:center;text-transform:uppercase;letter-spacing:.6px;width:100%;font-weight:700;font-size:var(--fs-xs)}.dl-prompt-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-xl);text-align:center;width:100%;max-width:var(--container-app);box-shadow:var(--shadow-sm);flex-direction:column;align-items:center;gap:8px;padding:32px 24px;display:flex;position:relative}.dl-prompt-word{font-family:var(--font-target);font-size:var(--fs-specimen);font-weight:var(--fw-semi);color:var(--text-primary);line-height:1.1}.dl-prompt-hint{font-size:var(--fs-sm);color:var(--accent);opacity:.8;font-style:italic}.dl-prompt-reading{font-size:var(--fs-sm);color:var(--accent);letter-spacing:.04em;opacity:.85;margin-top:2px}.dl-option-reading{font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:.03em;margin-top:2px;font-weight:500;display:block}.dl-option.correct .dl-option-reading,.dl-option.wrong .dl-option-reading{color:inherit;opacity:.8}.dl-pair-reading{font-size:var(--fs-xs);color:var(--text-secondary);letter-spacing:.03em;margin-top:2px;display:block}.dl-correct-reading{color:var(--accent);margin-left:4px;font-style:italic}.dl-speak-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.dl-listen-btn,.dl-slow-btn,.dl-speak-btn{justify-content:center;align-items:center;gap:6px;line-height:1;display:inline-flex}.dl-listen-btn{border-radius:var(--r-xl);border:1px solid var(--border-subtle);min-height:44px;color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast);background:0 0;margin-top:10px;padding:6px 16px;font-weight:600}.dl-slow-btn{border-radius:var(--r-xl);border:1px solid var(--border-subtle);min-height:44px;color:var(--text-secondary);font-size:var(--fs-sm);cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);background:0 0;margin-top:10px;padding:6px 14px;font-weight:600}.dl-slow-btn:hover{border-color:var(--accent);color:var(--text-primary)}.dl-slow-btn--on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent)}.dl-audio-controls{flex-direction:column;align-items:center;gap:2px;display:flex}.dl-audio-controls .dl-slow-btn{margin-top:6px}.flash-audio-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.flash-audio-row .dl-slow-btn,.flash-audio-row .dl-listen-btn,.flash-audio-row .dl-speak-btn{margin-top:0}.dl-listen-btn:hover{border-color:var(--text-secondary);color:var(--text-primary)}.dl-speak-btn{border-radius:var(--r-xl);border:1px solid var(--accent);min-height:44px;color:var(--accent);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);background:0 0;margin-top:10px;padding:6px 16px;font-weight:600}.dl-speak-btn:hover{background:var(--accent);color:var(--accent-ink)}.dl-speak-btn--active{background:var(--accent);color:var(--accent-ink);animation:.8s infinite pulse-lumi}@keyframes pulse-lumi{0%,to{opacity:1}50%{opacity:.6}}.dl-heard{font-size:var(--fs-sm);color:var(--text-secondary);word-break:break-word;margin-top:8px;font-style:italic}.dl-pronounce-rating{font-size:var(--fs-sm);margin-top:8px;font-weight:600}.dl-options{width:100%;max-width:var(--container-app);flex-direction:column;gap:10px;display:flex}.dl-option{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--r-lg);font-size:var(--fs-md);color:var(--text-primary);text-align:left;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding:15px 20px;font-weight:700;line-height:1.3}.dl-option:hover:not(:disabled){border-color:var(--accent-line);background:var(--accent-soft)}.dl-option.selected{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent-strong)}.dl-option.correct{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.dl-option.wrong{border-color:var(--err);background:var(--err-soft);color:var(--err)}.dl-option:disabled{cursor:not-allowed}.dl-type-area{width:100%;max-width:var(--container-app);flex-direction:column;align-items:center;gap:10px;display:flex}.dl-type-input{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--r-lg);width:100%;font-size:var(--fs-lg);color:var(--text-primary);text-align:center;transition:border-color var(--dur-fast), box-shadow var(--dur-fast);outline:none;padding:15px 18px;font-weight:700}.dl-type-input:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring)}.dl-type-input::placeholder{color:var(--text-secondary);font-weight:400;font-size:var(--fs-md)}.dl-type-input.correct{border-color:var(--ok);color:var(--ok);background:color-mix(in srgb, var(--ok) 6%, transparent)}.dl-type-input.wrong{border-color:var(--err);color:var(--err);background:color-mix(in srgb, var(--err) 6%, transparent)}.dl-correct-answer{font-size:var(--fs-sm);color:var(--text-secondary);text-align:center}.dl-correct-answer strong{color:var(--text-primary)}.dl-spelling-note{font-size:var(--fs-xs);color:var(--text-secondary);text-align:center;margin-top:6px}.dl-spelling-note strong{color:var(--ok);font-weight:700}.flash-wrap{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.flash-dots{gap:6px;display:flex}.flash-dot{border-radius:var(--r-full);background:var(--border-subtle);width:8px;height:8px;transition:background var(--dur), width var(--dur)}.flash-dot--active{background:var(--accent);width:20px}.flash-dot--done{background:var(--accent);opacity:.4}.flash-card{width:100%;max-width:var(--container-app);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-xl);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 24px 24px;display:flex}.flash-target{font-size:var(--fs-specimen-md);color:var(--text-primary);letter-spacing:-.5px;font-weight:800;line-height:1.1}.tap-block{align-items:center;gap:var(--space-3);flex-direction:column;width:100%;display:flex}.tap-phrase{line-height:1.35}.tap-word{border-radius:var(--r-xs);font:inherit;color:inherit;letter-spacing:inherit;cursor:pointer;text-underline-offset:.16em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.08em;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);background:0 0;border:0;margin:0;padding:0 .06em;display:inline}.tap-word:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.tap-word--on{text-decoration-style:solid;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.tap-def{align-items:flex-start;gap:var(--space-2);width:100%;max-width:28rem;padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-md);text-align:left;display:flex}.tap-def-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tap-def-word{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary)}.tap-def-gloss{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-secondary);overflow-wrap:anywhere}.tap-def-close{flex-shrink:0;margin-block-start:-4px}.flash-reading{font-size:var(--fs-base);color:var(--accent);letter-spacing:.04em;font-weight:600}.flash-divider{background:var(--border-subtle);border-radius:var(--r-full);width:40px;height:2px;margin:4px 0}.flash-english{font-size:var(--fs-lg);color:var(--text-secondary);font-weight:500}.flash-speak-btn{border:1px solid var(--border-subtle);background:var(--bg-base);cursor:pointer;width:48px;height:48px;transition:background var(--dur-fast), border-color var(--dur-fast), transform var(--dur-fast);border-radius:50%;justify-content:center;align-items:center;margin-top:8px;display:flex}.flash-speak-btn:hover{background:var(--bg-card);border-color:var(--accent);transform:scale(1.08)}.flash-speak-btn:active{transform:scale(.95)}.dl-pairs-wrap{align-items:center;gap:var(--space-3);flex-direction:column;width:100%;display:flex}.dl-pairs{width:100%;max-width:var(--container-app);grid-template-columns:1fr 1fr;gap:10px;display:grid}.dl-pairs-col{flex-direction:column;gap:10px;display:flex}.dl-pair-btn{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:var(--r-lg);font-size:var(--fs-sm);color:var(--text-primary);text-align:center;cursor:pointer;width:100%;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);padding:14px 10px;font-weight:700;line-height:1.3}.dl-pair-btn:hover:not([aria-disabled=true]){border-color:var(--accent);background:var(--accent-soft)}.dl-pair-btn.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.dl-pair-btn.matched{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 10%, transparent);color:var(--ok);opacity:.8;cursor:default}.dl-pair-btn.wrong{border-color:var(--err);background:color-mix(in srgb, var(--err) 10%, transparent);color:var(--err);animation:.4s shakeX}.dl-pair-btn .tap-block{gap:0}.dl-pair-phrase{font:inherit;font-weight:inherit;line-height:inherit;color:inherit}.tap-def--pairs{max-width:var(--container-app)}@keyframes shakeX{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.dl-feedback-banner{background:0 0;flex-shrink:0;padding:10px 20px}.dl-feedback-banner.correct,.dl-feedback-banner.wrong{background:0 0}.dl-feedback-inner{max-width:var(--container-app);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);align-items:center;gap:12px;margin:0 auto;padding:12px 16px;display:flex}.dl-feedback-banner.correct .dl-feedback-inner{border-color:var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}.dl-feedback-banner.wrong .dl-feedback-inner{border-color:var(--err);background:color-mix(in srgb, var(--err) 8%, transparent)}.dl-feedback-text{font-size:var(--fs-sm);color:var(--text-primary);flex:1;font-weight:600;line-height:1.4}.dl-footer{padding:8px 20px max(var(--space-5), env(safe-area-inset-bottom));background:var(--bg-base);border-top:1px solid var(--border-subtle);flex-direction:column;flex-shrink:0;align-items:center;display:flex}.dl-footer.correct{background:var(--bg-base);border-top-color:color-mix(in srgb, var(--ok) 20%, transparent)}.dl-footer.wrong{background:var(--bg-base);border-top-color:color-mix(in srgb, var(--err) 20%, transparent)}.dl-check-btn{width:100%;max-width:var(--container-app);background:var(--accent);border-radius:var(--r-lg);font-size:var(--fs-md);color:var(--accent-ink);letter-spacing:.3px;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);box-shadow:0 4px 20px color-mix(in srgb, var(--accent) 35%, transparent);padding:15px;font-weight:800}.dl-check-btn:hover:not(:disabled){background:var(--accent-press);box-shadow:0 6px 24px color-mix(in srgb, var(--accent) 45%, transparent);transform:translateY(-1px)}.dl-check-btn:active:not(:disabled){box-shadow:0 2px 12px color-mix(in srgb, var(--accent) 30%, transparent);transform:translateY(1px)}.dl-check-btn:disabled{background:var(--bg-input);color:var(--text-secondary);box-shadow:none;cursor:not-allowed}.dl-continue-btn{width:100%;max-width:var(--container-app);background:var(--accent);border-radius:var(--r-md);font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--accent-ink);letter-spacing:.3px;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);box-shadow:0 4px 20px color-mix(in srgb, var(--ok) 30%, transparent);padding:15px}.dl-continue-btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.dl-continue-btn:active{transform:translateY(1px)}.dl-results{text-align:center;flex-direction:column;flex:1;align-items:center;gap:20px;padding:32px 24px 40px;display:flex;overflow-y:auto}.dl-results-icon{animation:results-pop var(--dur-slow) var(--ease);font-size:56px}.dl-results-title{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--fw-semi);color:var(--text-primary)}.quiz-header{flex-shrink:0;align-items:center;gap:12px;padding:10px 20px 6px;display:flex}.quiz-badge{font-size:var(--fs-xs);color:var(--warn);white-space:nowrap;background:color-mix(in srgb, var(--warn) 10%, transparent);border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);border-radius:var(--r-full);padding:4px 12px;font-weight:800}.quiz-counter{font-size:var(--fs-sm);color:var(--text-secondary);white-space:nowrap;font-weight:800}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--err) 50%, transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb, var(--err) 0%, transparent)}}.char-picker{gap:var(--space-2);width:100%;max-width:var(--container-app);padding:var(--space-3);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);margin-top:var(--space-2);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}.char-picker-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(44px,1fr));display:grid}.char-picker-btn{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-sm);min-width:44px;height:44px;font-family:var(--font-target);font-size:var(--fs-lg);color:var(--text-primary);box-shadow:0 1px 0 var(--border-strong);transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);justify-content:center;align-items:center;display:flex}.char-picker-btn:hover{background:var(--accent-soft);border-color:var(--accent-line)}.char-picker-btn:active{box-shadow:none;background:var(--accent-soft);transform:translateY(1px)}.char-picker-btn--space{color:var(--text-secondary);font-size:var(--fs-sm);grid-column:1/-1}.char-picker-back{background:var(--bg-input);border:1px solid var(--border-strong);border-radius:var(--r-sm);min-height:44px;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);justify-content:center;align-self:stretch;align-items:center;gap:var(--space-2);box-shadow:0 1px 0 var(--border-strong);transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);display:flex}.char-picker-back:hover{background:var(--bg-card);color:var(--text-primary)}.char-picker-back:active{box-shadow:none;transform:translateY(1px)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.wg-wrap{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--space-5) var(--space-4);gap:var(--space-4);flex-direction:column;display:flex}.wg-header{justify-content:space-between;align-items:center;display:flex}.wg-title{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--text-secondary)}.wg-score{align-items:center;gap:var(--space-1);font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--warn);font-variant-numeric:tabular-nums;display:flex}.wg-timer-track{background:var(--bg-input);border-radius:var(--r-full);height:6px;overflow:hidden}.wg-timer-fill{background:var(--accent);border-radius:var(--r-full);height:100%;transition:width var(--dur-fast) linear, background-color var(--dur) var(--ease)}.wg-timer-fill--low{background:var(--err)}.wg-prompt{align-items:center;gap:var(--space-2);padding:var(--space-1) 0;flex-direction:column;display:flex}.wg-prompt-label{font-size:var(--fs-sm);color:var(--text-secondary)}.wg-prompt-word{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:var(--fw-semi);color:var(--text-primary)}.wg-streak{align-items:center;gap:var(--space-1);font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--warn);animation:pop var(--dur) var(--ease);display:flex}@keyframes pop{0%{transform:scale(.8)}60%{transform:scale(1.2)}to{transform:scale(1)}}.wg-options{gap:var(--space-2);flex-direction:column;display:flex}.wg-opt{width:100%;min-height:44px;padding:var(--space-3) var(--space-4);border-radius:var(--r-md);border:1px solid var(--border-subtle);background:var(--bg-input);color:var(--text-primary);font-size:var(--fs-base);font-weight:var(--fw-medium);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}.wg-options[aria-disabled=true]{pointer-events:none}@media (hover:hover) and (pointer:fine){.wg-opt:hover{background:var(--accent-soft);border-color:var(--accent);transform:translateY(-1px)}}.wg-opt--correct{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.wg-opt--wrong{background:var(--err-soft);border-color:var(--err);color:var(--err)}@media (width>=900px){.conv-screen{max-width:640px}.dl-exercise-area{gap:20px;padding:28px 28px 16px}}@media (width>=1200px){.conv-screen{border-radius:var(--r-xl);max-width:840px;height:calc(100dvh - 48px);margin:24px auto;overflow:hidden}.dl-exercise-area{gap:24px;padding:36px 36px 20px}.dl-prompt-card{padding:40px 32px}.dl-prompt-word{font-size:var(--fs-specimen-lg)}.dl-options{grid-template-columns:1fr 1fr;display:grid}.conv-screen:has(.chat-panel){grid-template:"top tutor""body tutor"1fr"foot tutor"/minmax(0,1fr) 360px;max-width:1160px;display:grid}.conv-topbar{grid-area:top}.dl-exercise-area{grid-area:body}.dl-footer{grid-area:foot}.chat-fab{display:none}.chat-panel,.chat-panel.chat-panel--closed{border-left:1px solid var(--border-subtle);width:auto;max-height:none;box-shadow:none;border-radius:0;grid-area:tutor;display:flex;position:static}.dl-exercise-area{padding-bottom:20px}}.dl-no-voice{font-size:var(--fs-xs);color:var(--text-secondary);text-align:center;max-width:380px;margin:10px auto 0;line-height:1.5}.dl-prompt-card--listen{flex-direction:column;align-items:center;gap:10px;padding:32px 20px;display:flex}.dl-audio-btn{border:2px solid var(--accent-line);background:var(--accent-soft);width:88px;height:88px;color:var(--text-primary);cursor:pointer;transition:transform var(--dur-fast) ease, border-color var(--dur-fast) ease;border-radius:50%;justify-content:center;align-items:center;display:flex}.dl-audio-btn:hover{border-color:var(--accent);transform:scale(1.04)}.dl-audio-btn:active{transform:scale(.97)}.dl-audio-hint{font-size:var(--fs-xs);color:var(--text-secondary)}.dl-audio-reveal{font-size:var(--fs-xl);flex-direction:column;align-items:center;gap:2px;margin-top:6px;font-weight:800;display:flex}.dl-audio-reading{font-size:var(--fs-sm);color:var(--text-secondary);font-weight:600}.dl-produce-card{flex-direction:column;align-items:center;gap:6px;display:flex}.dl-produce-ask{font-size:var(--fs-xs);color:var(--text-secondary)}.dl-produce-word{font-size:var(--fs-specimen-sm);letter-spacing:-.5px;font-weight:800}.dl-produce-gloss{font-size:var(--fs-sm);color:var(--text-secondary)}.dl-produce-input{width:100%;max-width:520px;font-family:inherit;font-size:var(--fs-base);color:var(--text-primary);background:var(--bg-input);border:2px solid var(--border-subtle);border-radius:var(--r-lg);resize:none;box-sizing:border-box;margin:14px auto 0;padding:14px 16px;line-height:1.5;display:block}.dl-produce-input:focus-visible{border-color:var(--accent)}.dl-produce-input:disabled{opacity:.75}.dl-produce-feedback{background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-align:left;width:100%;max-width:520px;margin:14px auto 0;padding:14px 16px}.dl-produce-verdict{font-size:var(--fs-md);color:var(--accent);margin:0 0 8px;font-weight:800}.dl-produce-fixed{font-size:var(--fs-lg);margin:0 0 8px;font-weight:700;line-height:1.45}.dl-produce-note{font-size:var(--fs-sm);color:var(--text-secondary);margin:0;line-height:1.55}.dl-produce-actions{align-items:center;gap:12px;width:100%;display:flex}.dl-produce-actions .dl-check-btn{flex:1}.dl-produce-skip{color:var(--text-secondary);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:10px 8px}.dl-produce-skip:hover{color:var(--text-primary)}.dl-tip{align-items:flex-start;gap:var(--space-2);width:100%;max-width:var(--container-app);margin-bottom:var(--space-3);padding:var(--space-3);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-md);text-align:left;animation:dl-tip-in var(--dur) var(--ease);display:flex}@keyframes dl-tip-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.dl-tip-mark{color:var(--accent-strong);flex-shrink:0;margin-top:1px}.dl-tip-text{color:var(--text-primary);font-size:var(--fs-sm);line-height:var(--lh-base)}.dl-ask-why{margin-top:var(--space-2);padding:var(--space-2);color:var(--accent-strong);font-size:var(--fs-sm);font-weight:var(--fw-medium);background:0 0}.dl-ask-why:hover{text-decoration:underline}@media (height<=560px){.conv-screen{max-width:none}.conv-topbar{padding:6px 16px}.dl-footer{padding:6px 20px max(var(--space-3), env(safe-area-inset-bottom))}.dl-exercise-area{padding:10px var(--pad-screen) 8px;gap:10px}.dl-prompt-word{font-size:var(--fs-specimen-sm)}.chat-fab{bottom:var(--space-3);right:var(--space-3);width:44px;height:44px}}.select-screen{--picker-col:640px;flex-direction:column;align-items:center;gap:0;min-height:100dvh;padding:0 24px 40px;display:flex}@media (width>=900px){.select-screen{--picker-col:860px}}@media (width>=1200px){.select-screen{--picker-col:1120px}}.select-greeting{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;font:inherit;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;margin:0;padding:0;display:flex}@media (hover:hover) and (pointer:fine){.select-greeting:hover{color:var(--text-primary)}}@media (width>=900px){.select-greeting{display:none}}.select-hero{justify-items:center;gap:var(--space-2);margin-block:var(--space-7) var(--space-8);text-align:center;display:grid}.select-sub{color:var(--text-secondary);font-size:var(--fs-base)}.select-label{width:100%;max-width:var(--picker-col,640px);box-sizing:border-box;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary);align-self:center;margin-bottom:12px;font-weight:800}.select-method-note{font-size:var(--fs-xs);color:var(--text-secondary);text-align:center;max-width:320px;margin-top:28px;line-height:1.6}.path-screen{height:calc(100dvh - var(--app-nav-h));background:var(--bg-base);--path-col:860px;--path-rail:340px;flex-direction:column;display:flex;overflow:hidden;container:screen/inline-size}.path-topbar{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);z-index:10;flex-direction:column;flex-shrink:0;display:flex}.path-topbar-nav{align-items:center;gap:10px;padding:10px 14px 6px;display:flex}.path-course-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.path-sample{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);line-height:1.2}.path-lang-name{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary)}.path-topbar-pills{align-items:center;gap:var(--space-2);flex:1;justify-content:flex-end;display:flex}.path-pill{align-items:center;gap:var(--space-1);border-radius:var(--r-full);padding:var(--space-1) var(--space-3);font-size:var(--fs-sm);font-weight:var(--fw-semi);white-space:nowrap;display:flex}.path-pill--streak{background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);color:var(--warn)}.path-scroll{padding:var(--space-4) var(--space-4) var(--space-9);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow-y:auto}.path-unit{gap:var(--space-3);flex-direction:column;display:flex}.path-chapter-header{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);text-align:left;background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--unit-color,var(--accent));border-radius:var(--r-md);cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);display:flex}.path-chapter-header:hover{background:var(--bg-input)}.path-chapter-emoji{border-radius:var(--r-sm);width:36px;height:36px;font-size:var(--fs-h3);background:color-mix(in srgb, var(--unit-color,var(--accent)) 16%, transparent);flex-shrink:0;place-items:center;display:grid}.path-chapter-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.path-chapter-title{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary)}.path-chapter-progress{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary)}.path-chapter-done{color:var(--ok)}.path-chapter-ring{flex-shrink:0;place-items:center;display:grid;position:relative}.path-chapter-tick{color:var(--ok);place-items:center;display:grid;position:absolute}.path-chapter-chevron{color:var(--text-tertiary);transition:transform var(--dur) var(--ease);flex-shrink:0}.path-chapter-chevron--open{transform:rotate(180deg)}.path-unit-body{gap:var(--space-3);flex-direction:column;display:flex}.path-unit-body[hidden]{display:none}.path-lock-hint{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-input);border-radius:var(--r-sm);font-size:var(--fs-xs);line-height:var(--lh-sm);color:var(--text-secondary);margin:0;display:flex}.path-lock-hint strong{color:var(--text-primary);font-weight:var(--fw-semi)}.path-lock-hint svg{flex-shrink:0}.path-continue{align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-left:3px solid var(--unit-color,var(--accent));border-radius:var(--r-lg);box-shadow:var(--shadow-sm);grid-template-columns:auto 1fr;display:grid}.path-continue-ring{place-items:center;display:grid;position:relative}.path-continue-pct{font-size:var(--fs-xs);line-height:1;font-weight:var(--fw-semi);color:var(--text-primary);font-variant-numeric:tabular-nums;position:absolute}.path-continue-body{flex-direction:column;gap:2px;min-width:0;display:flex}.path-continue-eyebrow{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--text-tertiary)}.path-continue-title{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--fw-semi);color:var(--text-primary)}.path-continue-meta{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary)}.path-continue-btn{grid-column:1/-1;width:100%}@media (width>=640px){.path-continue{grid-template-columns:auto 1fr auto}.path-continue-btn{grid-column:auto;width:auto}}.path-row-card{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-md);text-align:left;cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);display:flex}.path-row-card:hover{border-color:var(--border-strong);background:var(--bg-input)}.path-row-icon{border-radius:var(--r-sm);background:var(--bg-input);width:38px;height:38px;color:var(--text-secondary);flex-shrink:0;place-items:center;display:grid}.path-review-card{border-color:var(--accent-line)}.path-review-card:hover{border-color:var(--accent)}.path-review-icon{background:var(--accent-soft);color:var(--accent-strong)}.path-row-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.path-row-text strong{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary)}.path-row-sub{font-size:var(--fs-xs);line-height:var(--lh-sm);color:var(--text-secondary)}.path-row-go{color:var(--text-tertiary);flex-shrink:0}.path-row-card:hover .path-row-go{color:var(--text-primary)}.path-card-grid{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;display:grid}.path-card{align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-3) var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);text-align:center;flex-direction:column;display:flex;position:relative}.path-card:hover:not([aria-disabled=true]){border-color:var(--accent);background:var(--accent-soft)}.path-card--done{border-color:color-mix(in srgb, var(--ok) 40%, transparent);background:color-mix(in srgb, var(--ok) 6%, transparent)}.path-card--current{border-color:var(--card-accent,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb, var(--card-accent,var(--accent)) 20%, transparent)}.path-card--locked{cursor:not-allowed;background:var(--bg-input);border-style:dashed}.path-card--locked .path-card-emoji{opacity:.4}.path-card--locked .path-card-title{color:var(--text-secondary)}.path-card-emoji{font-size:28px;line-height:1}.path-card-title{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary);line-height:var(--lh-sm)}.path-card-check,.path-card-play,.path-card-lock{top:var(--space-2);right:var(--space-2);border-radius:var(--r-full);place-items:center;width:20px;height:20px;display:grid;position:absolute}.path-card-check{color:var(--ok);background:color-mix(in srgb, var(--ok) 16%, transparent)}.path-card-play{color:var(--accent-ink);background:var(--card-accent,var(--accent))}.path-card-lock{color:var(--text-tertiary);background:var(--bg-card)}.path-complete{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);text-align:center;flex-direction:column;display:flex}.path-complete-icon{border-radius:var(--r-full);background:var(--warn-soft);border:1px solid color-mix(in srgb, var(--warn) 45%, transparent);width:72px;height:72px;color:var(--warn);place-items:center;display:grid}.path-complete h2{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--fw-semi);color:var(--text-primary);margin:0}.path-complete p{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-secondary);margin:0}.path-goal-banner{align-items:center;gap:var(--space-2) var(--space-3);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:var(--space-3) var(--space-4);grid-template-columns:auto 1fr;display:grid}@media (width>=640px){.path-goal-banner{grid-template-columns:auto 1fr auto}}.path-goal-icon{color:var(--accent-strong);flex-shrink:0;place-items:center;display:grid}.path-goal-text{flex:1;min-width:0}.path-goal-label{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);color:var(--accent-strong);text-transform:uppercase;margin-bottom:2px;display:block}.path-goal-desc{-webkit-line-clamp:2;line-clamp:2;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-secondary);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.path-goal-edit{justify-self:start;align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-3);border-radius:var(--r-full);background:var(--bg-card);border:1px solid var(--accent-line);color:var(--accent-strong);font-size:var(--fs-xs);font-weight:var(--fw-semi);cursor:pointer;transition:background-color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);white-space:nowrap;grid-column:1/-1;display:flex}.path-goal-edit:hover{border-color:var(--accent);background:var(--accent-soft)}@media (pointer:fine){.path-goal-edit{min-height:36px}}@media (width>=640px){.path-goal-edit{grid-column:auto}}.path-goal-banner--empty .path-goal-desc{-webkit-line-clamp:3;line-clamp:3}.path-goal-relink{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--r-md);color:var(--text-secondary);font-size:var(--fs-sm);text-align:left;cursor:pointer;background:0 0;display:flex}.path-goal-relink:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--text-primary)}.path-goal-relink svg{color:var(--accent-strong);flex-shrink:0}.path-goal-edit--cta{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.path-goal-edit--cta:hover{background:var(--accent-hover);border-color:var(--accent-hover)}@container screen (width>=700px){.path-scroll{padding:20px 24px 80px}.path-scroll>*{width:100%;max-width:var(--path-col);margin-inline:auto}}@container screen (width>=1240px){.path-scroll{grid-template-columns:minmax(0, var(--path-col)) var(--path-rail);place-content:start center;align-items:start;gap:var(--space-3) var(--space-5);grid-auto-flow:dense;padding:28px 32px 80px;display:grid}.path-continue{justify-items:start;gap:var(--space-3);grid-template-columns:1fr}.path-scroll>*{max-width:none;margin-inline:0}.path-unit{grid-column:1}.path-goal-banner,.path-goal-relink,.path-continue,.path-row-card{grid-column:2}}.select-pro-chip{font-size:var(--fs-xs);letter-spacing:.6px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-full);padding:2px 7px;font-weight:800}.course-continue{width:100%;max-width:var(--picker-col,640px);box-sizing:border-box;flex-direction:column;gap:10px;margin:0 auto 24px;display:flex}.course-resume{background:var(--bg-card);border:1px solid var(--card-accent,var(--border-subtle));border-radius:var(--r-lg);color:var(--text-primary);text-align:left;align-items:center;gap:14px;padding:14px 16px;font-family:inherit;display:flex}.course-resume:hover{border-color:var(--accent)}.course-resume-sample{width:76px;font-size:var(--fs-lg);font-weight:var(--fw-semi);color:var(--text-primary);overflow-wrap:anywhere;flex-shrink:0;line-height:1.2}.course-resume-body{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.course-resume-name{font-size:var(--fs-base);font-weight:800}.course-resume-track{border-radius:var(--r-xs);background:var(--bg-input);height:5px;overflow:hidden}.course-resume-fill{background:var(--accent);border-radius:var(--r-xs);height:100%;transition:width var(--dur-slow) ease;display:block}.course-resume-meta{font-size:var(--fs-xs);color:var(--text-secondary)}.course-resume-due{color:var(--accent);font-weight:700}.course-resume-go{color:var(--text-tertiary);flex-shrink:0}.course-grid{width:100%;max-width:var(--picker-col,640px);box-sizing:border-box;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px;margin:0 auto;display:grid}.course-tile{background:var(--bg-card);border:1px solid var(--border-subtle);border-top:3px solid var(--card-accent,var(--accent));border-radius:var(--r-lg);color:var(--text-primary);flex-direction:column;align-items:center;gap:4px;padding:18px 10px 14px;font-family:inherit;display:flex}.course-tile:hover{border-color:var(--accent)}.course-tile-sample{min-height:2.4em;font-size:var(--fs-h3);font-weight:var(--fw-semi);color:var(--text-primary);overflow-wrap:anywhere;place-items:center;line-height:1.2;display:grid}.course-tile-name{font-size:var(--fs-sm);font-weight:700}.course-tile-meta{font-size:var(--fs-xs);color:var(--text-secondary)}.path-done-card{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-lg);box-sizing:border-box;align-items:center;gap:14px;width:calc(100% - 32px);max-width:620px;margin:0 auto 12px;padding:14px 16px;display:flex}.path-done-icon{flex-shrink:0;font-size:26px}.path-done-body{flex-direction:column;gap:3px;min-width:0;display:flex}.path-done-title{font-size:var(--fs-md);font-weight:800}.path-done-sub{font-size:var(--fs-xs);color:var(--text-secondary);line-height:1.5}.login-screen{min-height:100dvh;padding:var(--space-6) var(--space-5);place-items:center;display:grid;position:relative}.login-panel{gap:var(--space-6);justify-items:center;width:100%;display:grid}.login-hero{text-align:center;gap:var(--space-3);justify-items:center;display:grid}.login-sub{max-width:34ch;color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-sm)}.login-card{gap:var(--space-4);flex-direction:column;width:100%;max-width:400px;display:flex}.login-card form{gap:var(--space-4);flex-direction:column;display:flex}.login-lede{color:var(--text-secondary);font-size:var(--fs-sm);line-height:var(--lh-base)}.login-tabs{background:var(--bg-input);border-radius:var(--r-md);padding:3px;display:flex}.login-tab{border-radius:var(--r-sm);min-height:44px;color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-semi);transition:background-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);flex:1}.login-tab--active{background:var(--accent-soft);color:var(--accent-strong)}@media (pointer:fine){.login-tab{min-height:38px}}.login-fields{gap:var(--space-4);flex-direction:column;display:flex}.login-pw{position:relative}.login-pw .input{padding-right:48px}.login-pw-toggle{width:44px;min-height:44px;right:var(--space-1);color:var(--text-tertiary);place-items:center;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.login-pw-toggle:hover{color:var(--text-primary)}.login-back{top:var(--space-4);left:var(--space-4);position:absolute}.login-forgot{padding:var(--space-2);color:var(--text-secondary);font-size:var(--fs-sm);background:0 0;align-self:center;text-decoration:underline}.login-forgot:hover{color:var(--text-primary)}@media (width>=900px){.login-panel{align-items:center;gap:var(--space-8);grid-template-columns:1fr 400px;justify-items:stretch;max-width:900px}.login-hero{text-align:left;justify-items:start}.login-hero .login-sub{font-size:var(--fs-lg);max-width:30ch}}.profile-screen{height:calc(100dvh - var(--app-nav-h));background:var(--bg-base);flex-direction:column;display:flex;overflow:hidden}.profile-topbar{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;display:flex}.profile-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-semi);color:var(--text-primary);text-align:center;flex:1;margin:0}.profile-scroll{padding:var(--space-4);gap:var(--space-4);flex-direction:column;flex:1;display:flex;overflow-y:auto}.profile-hero{background:var(--bg-card);border:1px solid color-mix(in srgb, var(--level-color,var(--accent)) 30%, var(--border-subtle));border-radius:var(--r-xl);padding:var(--space-6) var(--space-5) var(--space-5);align-items:center;gap:var(--space-1);flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden}.profile-hero:before{content:"";border-radius:var(--r-full);background:radial-gradient(circle, color-mix(in srgb, var(--level-color,var(--accent)) 18%, transparent), transparent 70%);pointer-events:none;width:200px;height:200px;position:absolute;top:-40px;left:50%;transform:translate(-50%)}.profile-avatar-wrap{margin-bottom:var(--space-2);place-items:center;display:grid;position:relative}.profile-avatar-inner{place-items:center;display:grid;position:absolute}.profile-level-badge{border-radius:var(--r-full);width:30px;height:30px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--ink-fixed);border:2px solid var(--bg-card);justify-content:center;align-items:center;display:flex;position:absolute;bottom:2px;right:2px}.profile-name{font-family:var(--font-display);font-size:var(--fs-h3);line-height:var(--lh-h3);letter-spacing:var(--ls-h3);font-weight:var(--fw-semi);color:var(--text-primary);margin:0}.profile-email{font-size:var(--fs-sm);color:var(--text-secondary);margin:0}.profile-rank-title{align-items:center;gap:var(--space-2);margin:var(--space-1) 0 0;font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary);display:flex}.profile-rank-dot{border-radius:var(--r-full);flex-shrink:0;width:10px;height:10px}.profile-xp-bar-wrap{width:100%;margin-top:var(--space-4)}.profile-xp-bar-track{background:var(--bg-input);border-radius:var(--r-full);width:100%;height:10px;overflow:hidden}.profile-xp-bar-fill{border-radius:var(--r-full);height:100%;transition:width var(--dur-slow) var(--ease)}.profile-xp-label{margin:var(--space-2) 0 0;font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-secondary);text-align:center}.profile-xp-label strong{color:var(--text-primary);font-weight:var(--fw-semi)}.profile-days{width:100%;margin-top:var(--space-5)}.profile-days-row{gap:var(--space-2);grid-template-columns:repeat(7,1fr);margin:0;padding:0;list-style:none;display:grid}.profile-day{align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.profile-day-dot{border-radius:var(--r-full);background:var(--bg-input);border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--ok);place-items:center;display:grid}.profile-day--on .profile-day-dot{background:var(--ok-soft);border-color:color-mix(in srgb, var(--ok) 55%, transparent)}.profile-day--today .profile-day-dot{border-color:var(--accent);border-width:2px}.profile-day-letter{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-tertiary)}.profile-day--today .profile-day-letter{color:var(--text-primary);font-weight:var(--fw-semi)}.profile-days-note{margin:var(--space-3) 0 0;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-tertiary);text-align:center}.profile-stats-grid{gap:var(--space-3);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.profile-stat{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--space-4) var(--space-2);align-items:center;gap:var(--space-1);flex-direction:column;display:flex}.profile-stat-val{align-items:center;gap:var(--space-1);font-family:var(--font-display);font-size:var(--fs-h3);font-weight:var(--fw-semi);color:var(--text-primary);line-height:1.1;display:flex}.profile-stat-icon{color:var(--accent-strong)}.profile-stat-lbl{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary);font-weight:var(--fw-medium);text-align:center}.profile-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);padding:var(--space-5) var(--space-4);gap:var(--space-3);flex-direction:column;display:flex}.profile-section-title{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);color:var(--text-secondary);text-transform:uppercase;margin:0}.profile-course-row{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-input);border-radius:var(--r-md);border:1px solid #0000;border-left:3px solid var(--course-color,var(--accent));transition:border-color var(--dur-fast) var(--ease);display:flex}.profile-course-sample{min-width:3ch;font-size:var(--fs-lg);font-weight:var(--fw-medium);color:var(--text-primary);flex-shrink:0}.profile-course-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.profile-course-name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary)}.profile-course-count{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary)}.profile-course-chevron{color:var(--text-tertiary);flex-shrink:0}.profile-levels-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.profile-level-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--r-md);border:1px solid #0000;display:flex}.profile-level-row--current{background:var(--bg-input);border-color:var(--border-subtle)}.profile-level-row:not(.profile-level-row--reached) .profile-level-avatar{opacity:.5}.profile-level-avatar{flex-shrink:0;display:flex}.profile-level-info{gap:var(--space-2);flex:1;align-items:baseline;min-width:0;display:flex}.profile-level-num{font-size:var(--fs-xs);line-height:var(--lh-xs);font-weight:var(--fw-semi);color:var(--text-tertiary);min-width:34px}.profile-level-name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-secondary)}.profile-level-row--reached .profile-level-name{color:var(--text-primary)}.profile-level-xp{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-tertiary);font-variant-numeric:tabular-nums;flex-shrink:0}.profile-level-here{flex-shrink:0}.profile-level-check{width:20px;color:var(--ok);flex-shrink:0;justify-content:center;align-items:center;display:flex}.onboard-screen{background:var(--bg-base);flex-direction:column;height:100dvh;display:flex}.onboard-topbar{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;display:flex}.onboard-course{text-align:center;flex-direction:column;gap:1px;min-width:0;display:flex}.onboard-sample{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);line-height:1.2}.onboard-lang{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary)}.onboard-body{padding:var(--space-5) var(--space-4) var(--space-8);gap:var(--space-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.onboard-ai-bubble{gap:var(--space-3);align-items:flex-start;display:flex}.onboard-ai-avatar{border-radius:var(--r-full);background:var(--accent-soft);border:1px solid var(--accent-line);flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.onboard-ai-text{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-sm) var(--r-lg) var(--r-lg) var(--r-lg);padding:var(--space-4);font-size:var(--fs-base);line-height:var(--lh-base);color:var(--text-primary);flex:1;min-width:0}.onboard-ai-text p{margin:0 0 var(--space-2)}.onboard-ai-text p:last-child{margin:0}.onboard-input-wrap{gap:var(--space-3);flex-direction:column;display:flex}.onboard-examples{gap:var(--space-2);flex-wrap:wrap;display:flex}.onboard-textarea{resize:none;min-height:150px}.onboard-generating{text-align:center;padding:var(--space-5) var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.onboard-gen-icon{border-radius:var(--r-full);background:var(--accent-soft);border:1px solid var(--accent-line);width:52px;height:52px;color:var(--accent-strong);margin-bottom:var(--space-1);place-items:center;display:grid}.onboard-gen-title{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);margin:0}.onboard-gen-sub{color:var(--text-secondary);font-size:var(--fs-sm);margin:0}.onboard-levels{margin:var(--space-2) 0 0;border:0;min-width:0;padding:0}.onboard-level-grid{gap:var(--space-2);flex-direction:column;width:100%;display:flex}.onboard-level-btn{align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--r-md);border:1px solid var(--border-subtle);background:var(--bg-card);cursor:pointer;text-align:left;transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);display:flex}.onboard-level-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft);transform:translateY(-1px)}.onboard-level-btn:disabled{cursor:not-allowed;background:var(--bg-input);border-style:dashed;transform:none}.onboard-level-btn:disabled .onboard-level-emoji{opacity:.45}.onboard-level-btn:disabled .onboard-level-label{color:var(--text-secondary)}.onboard-level-gate{margin:var(--space-3) 0 0;font-size:var(--fs-xs);line-height:var(--lh-sm);color:var(--text-tertiary);text-align:center}.onboard-field-label{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--text-secondary);margin-bottom:var(--space-2);padding:0;display:block}.onboard-field-hint{font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-secondary);margin:0}.onboard-level-emoji{flex-shrink:0;font-size:26px;line-height:1}.onboard-level-label{font-size:var(--fs-base);font-weight:var(--fw-semi);color:var(--text-primary);flex:1}.onboard-level-desc{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary);text-align:right}.profile-identity,.profile-sections{gap:var(--space-4);flex-direction:column;display:flex}@media (width>=900px){.profile-scroll{align-items:start;gap:var(--space-4) var(--space-5);padding:var(--space-5);grid-template-rows:auto auto;grid-template-columns:340px minmax(0,1fr);display:grid}.profile-identity{grid-area:1/1/span 2}.profile-scroll>.plan-card{grid-area:1/2}.profile-sections{grid-area:2/2}}.crash-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:100dvh;padding:32px 24px;display:flex}.crash-emoji{font-size:44px}.crash-title{font-size:var(--fs-xl);margin:0;font-weight:800}.crash-sub{color:var(--text-secondary);font-size:var(--fs-md);max-width:380px;margin:0;line-height:1.6}.crash-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.crash-btn{background:linear-gradient(135deg, var(--accent), var(--accent-press));border-radius:var(--r-md);color:var(--accent-ink);font-family:inherit;font-size:var(--fs-md);cursor:pointer;border:none;padding:12px 22px;font-weight:700}.crash-btn--ghost{border:1px solid var(--border-subtle);color:var(--text-secondary);background:0 0}.plan-card{gap:var(--space-3);text-align:left;flex-direction:column;display:flex}.plan-card--pro{border-color:var(--accent-line);background:linear-gradient(180deg, var(--accent-soft), var(--bg-card))}.plan-card-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.plan-card-name{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-semi);color:var(--text-primary);margin:0;display:flex}.plan-card-sub{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-secondary);margin:0}.plan-perks{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.plan-perks li{align-items:flex-start;gap:var(--space-2);font-size:var(--fs-sm);line-height:var(--lh-sm);color:var(--text-primary);display:flex}.plan-perk-check{color:var(--accent-strong);flex-shrink:0;margin-top:1px}.plan-card-note{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--text-secondary);text-align:center;margin:0}.plan-card-error{margin:0}.plan-card--offer{border-color:var(--accent-line);background:radial-gradient(120% 100% at 0% 0%, var(--accent-soft), transparent 60%), var(--bg-card);box-shadow:var(--shadow-md)}.plan-card--offer .plan-card-head{justify-content:flex-start}.plan-card-mark{color:var(--accent-strong);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-md);flex-shrink:0;place-items:center;width:44px;height:44px;display:grid}.plan-card-mark--inline{width:auto;height:auto;padding:var(--space-1);background:0 0;border:none}.plan-card-price{font-family:var(--font-display);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:var(--fw-semi);color:var(--text-primary)}.plan-card-per{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.pro-banner{width:100%;max-width:var(--picker-col,640px);text-align:left;color:var(--text-primary);border:1px solid var(--accent-line);border-radius:var(--r-lg);background:radial-gradient(120% 140% at 0% 0%, var(--accent-soft), transparent 65%), var(--bg-card);cursor:pointer;align-items:center;gap:14px;margin:0 auto 20px;padding:14px 18px;font-family:inherit;display:flex}.pro-banner:hover{border-color:var(--accent)}.pro-banner-mark{color:var(--accent-strong);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-md);flex-shrink:0;justify-content:center;place-items:center;width:38px;height:38px;display:flex}.pro-banner-text{flex-direction:column;gap:2px;min-width:0;display:flex}.pro-banner-title{font-size:var(--fs-md);font-weight:800}.pro-banner-sub{font-size:var(--fs-xs);color:var(--text-secondary)}.pro-banner-arrow{color:var(--text-tertiary);flex-shrink:0;margin-left:auto}.plan-card-price--soon{font-size:var(--fs-lg);letter-spacing:0;color:var(--text-secondary)}.plan-card-note--free{text-align:left;margin-top:var(--space-1)}.profile-danger{margin-top:var(--space-5);padding:var(--space-5) var(--space-4);border:1px solid color-mix(in srgb, var(--err) 40%, var(--border-subtle));border-radius:var(--r-lg);background:var(--bg-card);gap:var(--space-3);flex-direction:column;display:flex}.profile-danger-title{font-size:var(--fs-xs);line-height:var(--lh-xs);letter-spacing:var(--ls-xs);font-weight:var(--fw-semi);text-transform:uppercase;color:var(--err);margin:0}.profile-danger-row{gap:var(--space-4);flex-direction:column;align-items:flex-start;display:flex}.profile-danger-copy{font-size:var(--fs-sm);line-height:var(--lh-base);color:var(--text-secondary);margin:0}@media (width>=640px){.profile-danger-row{flex-direction:row;justify-content:space-between;align-items:center}.profile-danger-row .btn{flex-shrink:0}}.words-screen{height:calc(100dvh - var(--app-nav-h));background:var(--bg-base);flex-direction:column;display:flex;overflow:hidden}.words-topbar{background:var(--bg-card);border-bottom:1px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex}.words-title{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:var(--fw-semi);color:var(--text-primary);text-align:center;flex:1;margin:0}.words-topbar-spacer{flex-shrink:0;width:36px}.words-scroll{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.wl-summary{gap:10px;display:flex}.wl-stat{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);flex-direction:column;flex:1;align-items:center;gap:2px;padding:14px 8px;display:flex}.wl-stat-num{font-size:var(--fs-xl);color:var(--text-primary);font-weight:900;line-height:1}.wl-stat-lbl{font-size:var(--fs-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.wl-stat--known{border-color:color-mix(in srgb, var(--ok) 35%, transparent)}.wl-stat--known .wl-stat-num{color:var(--ok)}.wl-stat--learning{border-color:color-mix(in srgb, var(--accent) 35%, transparent)}.wl-stat--learning .wl-stat-num{color:var(--accent)}.wl-stat--shaky{border-color:color-mix(in srgb, var(--err) 35%, transparent)}.wl-stat--shaky .wl-stat-num{color:var(--err)}.wl-seen-note{font-size:var(--fs-xs);color:var(--text-secondary);text-align:center;margin:-2px 0 2px}.wl-practise-btn{width:100%}.wl-group{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);overflow:hidden}.wl-group-head{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:14px 16px;display:flex}.wl-group-head:hover{background:var(--bg-input)}.wl-group-head--open{border-bottom:1px solid var(--border-subtle)}.wl-group-icon{flex-shrink:0;place-items:center;display:grid}.wl-group-icon--shaky{color:var(--err)}.wl-group-icon--learning{color:var(--accent-strong)}.wl-group-icon--known{color:var(--ok)}.wl-group-name{font-size:var(--fs-sm);color:var(--text-primary);flex:1;font-weight:800}.wl-group-count{font-size:var(--fs-xs);color:var(--text-secondary);background:var(--bg-input);border-radius:var(--r-xl);padding:2px 10px;font-weight:800}.wl-group-chevron{color:var(--text-tertiary);transition:transform var(--dur) var(--ease);flex-shrink:0}.wl-group-chevron--open{transform:rotate(180deg)}.wl-group-body{padding:6px 0 8px}@media (width>=900px){.wl-group-body{column-gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.wl-group-blurb,.wl-group-none{grid-column:1/-1}}.wl-group-blurb{font-size:var(--fs-xs);color:var(--text-secondary);margin:0;padding:4px 16px 10px;line-height:1.5}.wl-group-none{font-size:var(--fs-sm);color:var(--text-secondary);margin:0;padding:0 16px 6px}.wl-row{border-left:3px solid #0000;justify-content:space-between;align-items:center;gap:12px;padding:9px 16px;display:flex}.wl-row--shaky{border-left-color:var(--err)}.wl-row--learning{border-left-color:var(--accent)}.wl-row--known{border-left-color:var(--ok)}.wl-word{flex-direction:column;gap:1px;min-width:0;display:flex}.wl-target{font-size:var(--fs-sm);color:var(--text-primary);font-weight:800}.wl-reading{font-size:var(--fs-xs);color:var(--accent)}.wl-english{font-size:var(--fs-xs);color:var(--text-secondary)}.wl-meta{flex-shrink:0;align-items:center;gap:8px;display:flex}.wl-bar{border-radius:var(--r-xs);background:var(--bg-input);width:46px;height:5px;overflow:hidden}.wl-bar-fill{background:var(--ok);border-radius:var(--r-xs);height:100%;display:block}.wl-row--shaky .wl-bar-fill{background:var(--err)}.wl-row--learning .wl-bar-fill{background:var(--accent)}.wl-count{font-size:var(--fs-xs);color:var(--text-secondary);font-variant-numeric:tabular-nums;min-width:30px}.wl-due{font-size:var(--fs-xs);color:var(--text-secondary);text-align:right;min-width:62px}.wl-empty{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:48px 24px;display:flex}.wl-empty-icon{border-radius:var(--r-full);background:var(--bg-input);border:1px solid var(--border-subtle);width:60px;height:60px;color:var(--text-tertiary);place-items:center;display:grid}.wl-empty-title{font-size:var(--fs-lg);color:var(--text-primary);margin:0;font-weight:900}.wl-empty-sub{font-size:var(--fs-sm);color:var(--text-secondary);max-width:320px;margin:0;line-height:1.6}.profile-course-row--link{cursor:pointer;text-align:left;width:100%}.profile-course-row--link:hover{border-top-color:var(--border-strong);border-right-color:var(--border-strong);border-bottom-color:var(--border-strong)}.profile-course-row--link:hover .profile-course-chevron{color:var(--text-primary)}.pref-row{align-items:center;gap:var(--space-4);text-align:left;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:var(--r-md);width:100%;padding:var(--space-4);cursor:pointer;transition:border-color var(--dur-fast) var(--ease);display:flex}.pref-row:hover:not(:disabled){border-color:var(--border-strong)}.pref-row:disabled{opacity:.7;cursor:default}.pref-row--on{border-color:color-mix(in srgb, var(--ok) 45%, transparent)}.pref-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pref-name{font-size:var(--fs-sm);font-weight:var(--fw-semi);color:var(--text-primary)}.pref-sub{font-size:var(--fs-xs);line-height:var(--lh-sm);color:var(--text-secondary)}.pref-switch{border-radius:var(--r-full);background:var(--bg-base);border:1px solid var(--border-strong);width:44px;height:26px;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease);flex-shrink:0;position:relative}.pref-switch--on{background:var(--ok);border-color:var(--ok)}.pref-knob{border-radius:var(--r-full);background:var(--text-tertiary);width:18px;height:18px;transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease);position:absolute;top:3px;left:3px}.pref-switch--on .pref-knob{background:var(--ok-ink);transform:translate(18px)}.profile-topbar-spacer{flex-shrink:0;width:36px}.profile-signout{margin-top:var(--space-6);justify-content:flex-start;display:flex}@media (width>=900px){.words-scroll>*{width:100%;max-width:860px;margin-inline:auto}.app--with-nav .profile-scroll{width:100%;max-width:var(--container-wide);margin-inline:auto}.profile-topbar,.words-topbar{padding-inline:max(var(--space-3), calc((100% - var(--container-wide)) / 2))}}
