/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--world-sweep:0deg}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--radius-sm:.25rem;--radius-lg:.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.h-7{height:calc(var(--spacing) * 7)}.h-14{height:calc(var(--spacing) * 14)}.h-32{height:calc(var(--spacing) * 32)}.h-44{height:calc(var(--spacing) * 44)}.h-80{height:calc(var(--spacing) * 80)}.h-96{height:calc(var(--spacing) * 96)}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.ring,.shadow{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor)}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\[b\:QhLhE\\Y9\`VOiOa\`�\?clgm\\UHXPKYWg\?fi\]{b:QhLhEY9`VOiOa`�?clgmUHXPKYWg?fi}.\[bge\:TQK_iQKRjSU\]{bge:TQK iQKRjSU}}:root{--app:light-dark(#f6f7f4,#0f1512);--panel:light-dark(#fff,#161d19);--surface-subtle:light-dark(#eef2ec,#1c241f);--soft:light-dark(#e9f0ea,#22302a);--edge:light-dark(#e1e7df,#2a352f);--edge-strong:light-dark(#c5d1c2,#3c4a43);--ink:light-dark(#14211b,#e8eee9);--body:light-dark(#33443b,#c9d3cc);--muted:light-dark(#5f7068,#9aa89f);--faint:light-dark(#7f8e86,#6f7d75);--accent:light-dark(#1f5c3f,#7dbb95);--accent-fill:light-dark(#1f5c3f,#2f7b54);--accent-hover:light-dark(#174a32,#3a8b61);--accent-ink:light-dark(#fff,#fff);--accent-soft:light-dark(#ddebe1,#1e3a2c);--accent-gradient-from:light-dark(#1f5c3f,#2a6e4a);--accent-gradient-to:light-dark(#2a6e4a,#2f7b54);--accent-gradient:linear-gradient(135deg,var(--accent-gradient-from) 0%,var(--accent-gradient-to) 100%);--focus:light-dark(#1f5c3f,#7dbb95);--voice:light-dark(#0e7c86,#5cc8d2);--voice-bright:light-dark(#22b8cf,#22b8cf);--streak:light-dark(#9a6212,#e4b15a);--trade-customer-service:light-dark(#6b4fa8,#b59be8);--trade-dentistry:light-dark(#2b6f9a,#6fb6e0);--trade-hospitality:light-dark(#8a5e16,#e0b36a);--trade-logistics:light-dark(#2f7a45,#7fcf96);--trade-nursing:light-dark(#a0406e,#e38bb4);--trade-software:light-dark(#1f6f6f,#6fd0d0);--trade-tourism:light-dark(#a04e22,#eba27a);--group-daily:var(--trade-customer-service);--group-food:var(--trade-hospitality);--group-travel:var(--trade-tourism);--group-work:var(--trade-software);--group-health:var(--trade-nursing);--group-community:var(--trade-dentistry);--group-vietnam:var(--trade-logistics);--group-basics:var(--accent);--streak-bright:light-dark(#f0a22e,#f0a22e);--success:light-dark(#1e7f5c,#7fd3a8);--success-bright:light-dark(#4cc38a,#4cc38a);--success-soft:light-dark(#dcf2e8,#1b3328);--danger:light-dark(#a33b2c,#e28b7d);--danger-bright:light-dark(#e28b7d,#e28b7d);--danger-soft:light-dark(#f6e3df,#2c211f);--warning:light-dark(#8a5a1f,#e0b56b);--warning-soft:light-dark(#f8ecd6,#2b2519);--info:light-dark(#3f5f86,#9db6d8);--info-soft:light-dark(#e7edf5,#202a34);--rank-echo:light-dark(#6b7c72,#9aa89f);--rank-voice:light-dark(#4e7d62,#7dbb95);--rank-flow:light-dark(#2f6a8a,#7fb6d6);--rank-fluent:light-dark(#6a4fa0,#b39ddb);--rank-pro:light-dark(#a0621a,#e4b15a);--rank-master:light-dark(#8a2e3c,#e08a94);--rank-legend:light-dark(#1f1f1f,#f2e6c8);--r-sm:10px;--r-md:16px;--r-lg:22px;--radius-sm:var(--r-sm);--radius:var(--r-lg);--radius-lg:var(--r-lg);--pill:999px;--shadow-raise:0 10px 24px light-dark(#14211b1f,#0006);--shadow-float:0 14px 30px light-dark(#14211b2b,#00000080);--t-fast:.12s;--t-base:.2s;--t-slow:.25s;--control:40px;--control-sm:32px;--control-touch:44px;--sidebar:232px;--topbar:56px;--content-max:1160px;--gutter:40px;--font-ui:var(--font-sans-loaded,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);--font-display:var(--font-ui);--fs-display:32px;--fs-h1:26px;--fs-h2:18px;--fs-h3:15px;--fs-body:15px;--fs-small:13px;--fs-caption:12px;--fs-label:12px;--fs-figure-lg:44px;--fs-figure-md:24px;--fs-figure-sm:16px;--lh-tight:1.35;--lh-body:1.6;--lh-loose:1.7}:root[data-palette=violet]{--app:light-dark(#f5f3ff,#13102b);--panel:light-dark(#fff,#1c1840);--surface-subtle:light-dark(#f2effd,#241f4e);--soft:light-dark(#ece9ff,#2a2458);--edge:light-dark(#e6e2f7,#332c63);--edge-strong:light-dark(#cfc8ed,#4a4185);--ink:light-dark(#241d4d,#edeaff);--body:light-dark(#4a4470,#cfc9ee);--muted:light-dark(#65617f,#a49dcb);--faint:light-dark(#8b86a6,#7d77a6);--accent:light-dark(#5b4bd6,#b3a6ff);--accent-fill:light-dark(#6c5ce7,#6c5ce7);--accent-hover:light-dark(#5b4bd6,#7e6ff0);--accent-soft:light-dark(#ece9ff,#2b2560);--accent-gradient-from:light-dark(#5b4bd6,#4a3cc4);--accent-gradient-to:light-dark(#6c5ce7,#6c5ce7);--focus:light-dark(#6c5ce7,#b3a6ff);--voice:light-dark(#2064a8,#7fb6e6);--voice-bright:light-dark(#4da3f0,#4da3f0);--streak:light-dark(#a4530a,#f0b76a);--streak-bright:light-dark(#f59e0b,#f59e0b);--success-soft:light-dark(#dcf2e8,#1c3a2e);--danger-soft:light-dark(#fbe7ec,#33202a);--warning-soft:light-dark(#fff3e2,#2e2617);--info-soft:light-dark(#e8eefa,#202844);--chart-2:light-dark(#9a93c4,#8f88b8)}:root[data-palette=blue]{--app:light-dark(#f1f6ff,#0b1626);--panel:light-dark(#fff,#12203a);--surface-subtle:light-dark(#eaf1fc,#182b4a);--soft:light-dark(#dfebfb,#1e3455);--edge:light-dark(#d7e4f5,#26405f);--edge-strong:light-dark(#b6cce8,#3a5c84);--ink:light-dark(#12243d,#e6eefa);--body:light-dark(#33496b,#c5d5ea);--muted:light-dark(#4f6484,#9bb0cc);--faint:light-dark(#74879f,#74889f);--accent:light-dark(#0f5fa8,#8fc2ff);--accent-fill:light-dark(#1976d2,#1976d2);--accent-hover:light-dark(#1565c0,#2f86e0);--accent-soft:light-dark(#dfebfb,#1b3252);--accent-gradient-from:light-dark(#1565c0,#12538f);--accent-gradient-to:light-dark(#1976d2,#1976d2);--focus:light-dark(#1976d2,#8fc2ff);--voice:light-dark(#0e7c86,#5cc8d2);--voice-bright:light-dark(#22b8cf,#22b8cf);--streak:light-dark(#9a6212,#e4b15a);--streak-bright:light-dark(#f0a22e,#f0a22e);--success-soft:light-dark(#dcf2e8,#14352a);--danger-soft:light-dark(#fbe5e0,#331f1b);--warning-soft:light-dark(#fbf0da,#2c2418);--info-soft:light-dark(#e4edfb,#1b2c44);--chart-2:light-dark(#8aa3c4,#7e93b0)}:root[data-palette=pink]{--app:light-dark(#fff4f8,#1e0e17);--panel:light-dark(#fff,#2a1522);--surface-subtle:light-dark(#fdecf3,#351c2b);--soft:light-dark(#fce1ec,#3f2233);--edge:light-dark(#f6d8e4,#4b2a3c);--edge-strong:light-dark(#e8b6cb,#6b3e55);--ink:light-dark(#3b1526,#fbe9f1);--body:light-dark(#6b3a4e,#eac9d8);--muted:light-dark(#7e4a61,#c79cb0);--faint:light-dark(#a8808f,#9c7387);--accent:light-dark(#ad1457,#ff9ec4);--accent-fill:light-dark(#d81b60,#d81b60);--accent-hover:light-dark(#c2185b,#e8407c);--accent-soft:light-dark(#fce1ec,#3a1f2e);--accent-gradient-from:light-dark(#c2185b,#9e1047);--accent-gradient-to:light-dark(#d81b60,#d81b60);--focus:light-dark(#d81b60,#ff9ec4);--voice:light-dark(#0e7c86,#5cc8d2);--voice-bright:light-dark(#22b8cf,#22b8cf);--streak:light-dark(#9a6212,#e4b15a);--streak-bright:light-dark(#f0a22e,#f0a22e);--success-soft:light-dark(#dcf2e8,#16341f);--danger-soft:light-dark(#fbe3e3,#3a1d22);--warning-soft:light-dark(#fbefd9,#33251a);--info-soft:light-dark(#e9edf8,#24243f);--chart-2:light-dark(#c48aa3,#b07e93)}html{scroll-behavior:smooth}body,html{overscroll-behavior-y:none}body{background:var(--app);background-image:linear-gradient(180deg,var(--soft) 0,var(--surface-subtle) 34%,var(--app) 70%);color:var(--body);font-family:var(--font-ui);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;margin:0}a,button,input,select{-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}a,button,select{touch-action:manipulation}button{cursor:pointer}.figure{font-family:var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:-.01em;color:var(--ink);font-weight:600;line-height:1.1}.figure-lg{font-size:var(--fs-figure-lg)}.figure-md{font-size:var(--fs-figure-md)}.figure small,.figure-sm{font-size:var(--fs-figure-sm)}.figure small{color:var(--muted);letter-spacing:0;margin-left:2px;font-weight:500}.figure-lg small{font-size:var(--fs-small)}.skeleton{border-radius:var(--r-sm);background:linear-gradient(90deg,var(--surface-subtle) 0,var(--soft) 50%,var(--surface-subtle) 100%);background-size:200% 100%;animation:skeleton-sweep 1.4s ease-in-out infinite;display:block}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--surface-subtle);animation:none}}.row-list{border-top:1px solid var(--edge);margin:0;padding:0;list-style:none}.row{border-bottom:1px solid var(--edge)}.row-link{min-height:56px;color:inherit;border-radius:var(--r-sm);transition:background-color var(--t-fast) ease;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px 14px;padding:10px 4px;text-decoration:none;display:grid}a.row-link:hover{background:var(--surface-subtle)}a.row-link:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.row-mark{border-radius:var(--r-md);background:var(--soft);width:36px;height:36px;color:var(--accent);place-items:center;display:grid}.row-list.is-plates{border-top:0;gap:10px;display:grid}.row-list.is-plates .row{border-bottom:0;display:flex}.row-list.is-plates .row>*{flex-grow:1}.row-list.is-plates .row-link{background:var(--panel);border-radius:var(--r-md);box-shadow:var(--shadow-raise);padding:12px}.row-list.is-plates .row-mark{width:44px;height:44px}.row-list.is-plates .row-title{font-weight:700}.row-list.is-plates a.row-link:hover{background:var(--surface-subtle)}.row-text{gap:2px;min-width:0;display:grid}.row-title{font-size:var(--fs-h3);color:var(--ink);font-weight:600}.row-line{font-size:var(--fs-small);text-overflow:ellipsis;overflow:hidden}.row-line,.row-trailing{color:var(--muted);white-space:nowrap}.row-trailing{font-variant-numeric:tabular-nums;align-items:center;gap:8px;display:inline-flex}@media (max-width:600px){.row-link{min-height:60px;padding:10px 0}.row-line{white-space:normal}}button.row-link{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}button.row-link:hover{background:var(--surface-subtle)}button.row-link:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.row-trailing .language-mark{font-size:var(--fs-small);color:var(--accent);letter-spacing:.04em;font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}[tabindex]:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--focus);outline-offset:2px}a{color:inherit;text-decoration:none}button{border:1px solid var(--edge);background:var(--panel);color:var(--ink);border-radius:8px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{color:var(--ink)}small{font-size:var(--fs-caption)}h2{font-size:var(--fs-h2);line-height:var(--lh-tight)}h2,h3{font-weight:600}h3{font-size:var(--fs-h3);line-height:1.4}.display{font-family:var(--font-display);font-size:var(--fs-display);color:var(--ink);font-weight:500;line-height:1.25}.display,h2,h3,h4{letter-spacing:-.01em}h2,h3,h4{line-height:var(--lh-tight)}button,select{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}@media (hover:hover){:where(button:hover:not(:disabled)){background:var(--surface-subtle)}}code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}::selection{background:var(--edge-strong)}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);background:var(--surface-subtle);border-right:1px solid var(--edge);overscroll-behavior:contain;flex-direction:column;flex:none;padding:20px 14px;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto}.brand{font-family:var(--font-display);letter-spacing:-.3px;color:var(--ink);align-items:center;gap:10px;padding:4px 8px 14px;font-size:22px;font-weight:500;display:flex}.brand-mark{width:30px;height:30px;color:var(--accent-ink);background:var(--accent-fill);border-radius:9px;flex:none;place-items:center;display:grid}.brand-dot{color:var(--accent)}.nav-label{font-size:var(--fs-body);letter-spacing:normal;color:var(--muted);margin:14px 14px 6px;font-weight:700}.sidebar nav{gap:2px;margin-bottom:16px;display:grid}.sidebar-group{gap:4px;margin-bottom:10px;display:grid}.sidebar nav a{min-height:var(--control-touch);font-size:var(--fs-body);color:var(--body);border-radius:var(--pill);transition:background-color var(--t-fast) ease,color var(--t-fast) ease;align-items:center;gap:12px;padding:8px 14px;font-weight:600;line-height:1.3;display:flex}.sidebar nav a svg{opacity:.85;width:20px;height:20px}@media (hover:hover){.sidebar nav a:hover{background:var(--surface-subtle);color:var(--ink)}}.sidebar nav a.nav-active{background:var(--accent-soft);color:var(--accent);font-weight:700}.sidebar nav a svg{color:var(--faint);flex:none}.sidebar nav a.nav-active svg{color:var(--accent)}.sidebar nav a.is-operations{border-top:1px solid var(--edge);border-radius:var(--r-md);color:var(--muted);margin-top:14px;padding-top:14px;font-weight:600}.sidebar nav a.nav-active svg{opacity:1}.review-nav-count{min-width:20px;height:20px;font-size:var(--fs-label);border-radius:var(--pill);font-variant-numeric:tabular-nums;place-items:center;padding:0 6px;font-weight:600;display:inline-grid}.online-dot{background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px;display:inline-block}main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));flex-direction:column;min-width:0;min-height:100vh;display:flex}main>.site-footer{margin-top:auto}.topbar{height:var(--topbar);border-bottom:1px solid var(--edge);padding:0 max(var(--gutter),calc((100% - var(--content-max)) / 2 + var(--gutter)));font-size:var(--fs-small);background:var(--app);z-index:30;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.topbar>div:first-child{min-width:0;color:var(--ink);font-size:var(--fs-body);flex:none;align-items:center;gap:8px;font-weight:600;display:flex}.topbar>div:first-child>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.breadcrumb{color:var(--muted);font-weight:400}.crumb-divider{color:var(--edge-strong);padding:0 2px}.topbar-actions{flex:0 auto;align-items:center;gap:6px;min-width:0;display:flex}.account-user{min-height:var(--control-sm);border-radius:8px;gap:8px;max-width:220px;padding:0 10px;font-weight:500}.account-user>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}@media (hover:hover){.account-user:hover{background:var(--surface-subtle)}}.content{width:100%;min-width:0;max-width:var(--content-max);padding:32px var(--gutter) 48px;margin:0 auto}.page-heading{max-width:72ch;margin-bottom:28px}.eyebrow{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-weight:600}.eyebrow a{color:var(--accent);text-transform:none;letter-spacing:0;font-size:var(--fs-small);font-weight:500}.page-heading h1{font-family:var(--font-display);font-size:var(--fs-h1);line-height:var(--lh-tight);letter-spacing:-.015em;font-weight:800}.page-heading p{font-size:var(--fs-body);color:var(--muted);line-height:var(--lh-body);margin-top:10px}.page-meta{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;display:flex}.page-heading .page-meta{margin-top:10px}.mobile-break{display:none}.session-heading{justify-content:space-between;align-items:center;gap:20px;margin:32px 0 16px;display:flex}.session-heading h2{font-size:var(--fs-h2);margin:0;font-weight:600}.section-kicker{color:var(--muted)}.new-badge,.section-kicker{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;font-weight:600}.new-badge{vertical-align:2px;color:var(--accent);border:1px solid var(--edge-strong);background:0 0;border-radius:4px;margin-left:8px;padding:2px 6px;line-height:1.3;display:inline-block}h1 .new-badge{vertical-align:middle;margin-left:10px}.lesson-meta{color:var(--muted);font-size:var(--fs-small);align-items:center;gap:12px;display:flex}.level-pill{min-height:22px;font-size:var(--fs-caption);letter-spacing:.02em;color:var(--accent);background:var(--soft);font-variant-numeric:tabular-nums;border-radius:5px;align-items:center;padding:0 7px;font-weight:600;display:inline-flex}.session-progress{width:140px;font-size:var(--fs-caption);color:var(--muted)}.session-progress b{color:var(--accent);font-weight:600}.progress-track{background:var(--edge);border-radius:4px;height:4px;margin-top:8px;overflow:hidden}.progress-track i{background:var(--accent);height:100%;transition:width .25s;display:block}.button.primary,.play-button,.primary-action{min-height:var(--control-touch);background:var(--accent-gradient);color:var(--accent-ink);border-radius:var(--pill);box-shadow:var(--shadow-raise);font-size:var(--fs-body);letter-spacing:.005em;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-weight:700;text-decoration:none;transition:background-color .15s,box-shadow .15s,transform 80ms;display:inline-flex}.button.primary:hover:not(:disabled),.play-button:hover:not(:disabled),.primary-action:hover:not(:disabled){background:var(--accent-hover);color:var(--accent-ink);box-shadow:var(--shadow-float)}.button.primary:active:not(:disabled),.play-button:active:not(:disabled),.primary-action:active:not(:disabled){transform:translateY(1px)}.button,.secondary-action{min-height:var(--control);border:2px solid var(--edge);background:var(--panel);color:var(--accent);border-radius:var(--pill);font-size:var(--fs-body);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,transform 80ms;display:inline-flex}.button:hover:not(:disabled),.secondary-action:hover:not(:disabled){background:var(--surface-subtle)}.button:active:not(:disabled),.secondary-action:active:not(:disabled){transform:translateY(1px)}.button.quiet,.secondary-action.is-quiet{color:var(--muted);background:0 0;border-color:#0000}.text-button{font-size:var(--fs-small);color:var(--muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;padding:6px 8px;font-weight:500;display:inline-flex}.text-button:hover:not(:disabled){background:var(--surface-subtle);color:var(--ink);text-decoration:none}.text-button.is-accent{color:var(--accent)}.icon-button{width:var(--control-sm);height:var(--control-sm);border-radius:8px;display:inline-grid}.filter-chip,.level-chip,.tag-chip{min-height:var(--control-sm);border:1px solid var(--edge);background:var(--panel);color:var(--muted);border-radius:var(--pill);font-size:var(--fs-small);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.filter-chip:hover:not(:disabled),.level-chip:hover:not(:disabled),.tag-chip:hover:not(:disabled){background:var(--surface-subtle);color:var(--ink)}.filter-chip.is-selected,.filter-chip[aria-pressed=true],.level-chip.is-selected,.level-chip[aria-pressed=true],.tag-chip[aria-pressed=true]{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.filter-chip small,.level-chip small,.tag-chip small{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400}.field-input,textarea.field-input{min-height:var(--control);border:1px solid var(--edge-strong);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-body);border-radius:8px;width:100%;padding:0 12px;transition:border-color .15s,box-shadow .15s}.field-input::placeholder{color:var(--faint)}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge);outline:0}.field-label{font-size:var(--fs-small);color:var(--ink);margin-bottom:6px;font-weight:600;display:block}.field-hint{color:var(--muted);line-height:1.5}.field-error,.field-hint{font-size:var(--fs-caption);margin-top:6px}.field-error{color:var(--danger)}:root{--bar-control:38px}.language-switch,.rank-badge,.topbar-actions .auth-link{height:var(--bar-control);border-radius:var(--pill);box-sizing:border-box}.more-button,.topbar-actions .auth-link{border:2px solid var(--edge)}.more-button{width:var(--bar-control);height:var(--bar-control);border-radius:var(--pill);background:var(--panel);color:var(--muted);place-items:center;display:none}.more-button:hover{color:var(--ink);background:var(--surface-subtle)}@media (max-width:900px){.more-button{flex:none;width:44px;height:44px;display:grid}.topbar-actions .rank-badge{height:44px}.topbar-actions>.pill-group,.topbar-actions>.switch{display:none}}.streak-badge{height:var(--bar-control);border-radius:var(--pill);box-sizing:border-box;background:var(--surface-subtle);color:var(--muted);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:5px;padding:0 12px;font-weight:700;display:inline-flex}.streak-badge svg{fill:currentColor;stroke:none}.streak-badge.is-lit{background:var(--warning-soft);color:var(--streak)}.streak-badge.is-lit>svg{fill:var(--streak-bright)}.streak-badge-freeze{color:var(--info);display:inline-grid}.streak-badge-freeze svg{fill:none;stroke:currentColor;stroke-width:2.2px}@media (max-width:900px){.streak-badge{height:44px}}.topbar-actions .rank-badge{border-color:#0000}.topbar-actions .auth-link{min-height:0;color:var(--accent);background:var(--panel);align-items:center;padding:0 16px;font-weight:700;display:inline-flex}.topbar-actions{gap:10px}.sidebar-foot{border-top:1px solid var(--edge);gap:4px;margin-top:auto;padding-top:12px;display:grid}.sidebar-foot a,.sidebar-signout{min-height:var(--control-touch);border-radius:var(--pill);font-size:var(--fs-body);color:var(--muted);text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:8px 14px;font-weight:600;line-height:1.3;display:flex}.sidebar-foot a svg,.sidebar-signout svg{width:20px;height:20px;color:var(--faint);flex:none}.sidebar-foot a:hover,.sidebar-signout:hover{background:var(--surface-subtle);color:var(--ink)}.sidebar-foot a.nav-active{background:var(--accent-soft);color:var(--accent);font-weight:700}.sidebar-foot a.nav-active svg{color:var(--accent)}.rank-badge{background:var(--accent-soft);flex:none;align-items:center;gap:8px;padding:0 4px;text-decoration:none;display:inline-flex}.rank-badge.is-link:hover{background:var(--soft)}.rank-badge .rank-mark{flex:none;width:30px;height:30px}.rank-badge-name{color:var(--accent);font-size:var(--fs-caption);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-weight:700}.rank-badge.is-static{padding:0 14px 0 4px;display:none}@media (max-width:900px){.rank-badge.is-link{display:none}.rank-badge.is-static{display:inline-flex}}.rank-badge-profile{background:var(--panel);width:30px;height:30px;color:var(--accent);box-shadow:var(--shadow-raise);border-radius:50%;flex:none;place-items:center;margin-left:2px;display:grid}@media (max-width:400px){.rank-badge.is-static{padding:0 10px 0 3px}.rank-badge-name{font-size:var(--fs-caption)}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.stack{gap:14px}.stack,.stack-sm{align-content:start;display:grid}.stack-sm{gap:8px}.cluster{flex-wrap:wrap;gap:8px}.cluster,.split{align-items:center;display:flex}.split{justify-content:space-between;gap:12px}.pill-group{height:var(--bar-control);border:2px solid var(--edge);border-radius:var(--pill);background:var(--surface-subtle);box-sizing:border-box;align-items:center;gap:2px;padding:2px;display:inline-flex}.pill-group>button{border-radius:var(--pill);min-width:38px;height:100%;min-height:0;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;padding:0 12px;font-weight:700}.pill-group>button[aria-checked=true],.pill-group>button[aria-pressed=true]{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-raise)}.pill-group>button:hover:not([aria-pressed=true]):not([aria-checked=true]){color:var(--ink)}.switch{align-items:center;display:inline-flex;position:relative}.switch>input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-track{width:62px;height:var(--bar-control);border:2px solid var(--edge);border-radius:var(--pill);background:var(--surface-subtle);box-sizing:border-box;transition:background-color var(--t-base) ease,border-color var(--t-base) ease;display:inline-block;position:relative}.switch-knob{background:var(--panel);width:28px;height:28px;color:var(--muted);transition:transform var(--t-base) ease;border-radius:50%;place-items:center;display:grid;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px light-dark(#14211b2e,#0000006b)}.switch>input:checked+.switch-track{background:var(--accent-fill);border-color:var(--accent-fill)}.switch>input:checked+.switch-track .switch-knob{color:var(--accent);transform:translate(24px)}.switch>input:focus-visible+.switch-track{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){.switch-knob{transition:none}}.meter-bar{background:var(--accent-soft);height:8px;overflow:hidden}.meter-bar,.meter-bar>i{border-radius:var(--pill)}.meter-bar>i{height:100%;width:var(--fill,0);background:var(--accent-fill);display:block}dialog.sheet:modal{margin:auto auto 0}.sheet{border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--panel);width:100%;max-width:100%;color:var(--body);box-shadow:var(--shadow-float);border:0;padding:0}.sheet::backdrop{background:light-dark(#14211b59,#0009)}.sheet-body{padding:16px 18px max(16px,env(safe-area-inset-bottom));gap:4px;display:grid}.sheet-head{min-height:var(--control-touch);justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;display:flex}.sheet-head h2{font-size:var(--fs-h2);color:var(--ink);font-weight:700}.sheet-head .icon-button{border:2px solid var(--edge);border-radius:var(--pill);width:44px;height:44px;color:var(--muted)}.sheet-head .icon-button svg{transform:rotate(45deg)}.sheet-row{min-height:var(--control-touch);font-size:var(--fs-body);color:var(--ink);grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:12px;padding:4px 0;font-weight:600;display:grid}.sheet-row>svg{color:var(--faint)}.sheet-row>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sheet-links{border-top:1px solid var(--edge);gap:2px;margin-top:6px;padding-top:8px;display:grid}.sheet-links a,.sheet-links button{width:100%;min-height:var(--control-touch);color:var(--ink);font-size:var(--fs-body);text-align:left;background:0 0;border:0;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:12px;padding:4px 0;font-weight:600;display:grid}.sheet-links a:hover,.sheet-links button:hover{color:var(--accent)}.sheet-links svg{color:var(--faint)}.sheet-links a:hover svg,.sheet-links button:hover svg{color:var(--accent)}@media (min-width:900px){dialog.sheet:modal{margin:auto}.sheet{border-radius:var(--r-lg);width:min(100%,460px)}}body:has(dialog[open]),html:has(dialog[open]){overscroll-behavior:none;touch-action:none;overflow:hidden}.sheet{overscroll-behavior:contain;touch-action:pan-y;max-height:calc(100dvh - 16px);overflow-y:auto}.more-sheet .sheet-body{padding:16px 16px max(16px,env(safe-area-inset-bottom));gap:8px}.more-sheet .sheet-row{grid-template-columns:20px minmax(0,1fr) auto;min-height:56px}.more-sheet .sheet-row>span{white-space:normal;overflow:visible}.more-sheet .sheet-links svg,.more-sheet .sheet-row>svg{width:20px;height:20px}.more-sheet .pill-group{height:52px;box-shadow:none;width:104px}.more-sheet .pill-group>button{flex:1;min-width:44px;min-height:44px}.more-sheet .pill-group>button[aria-checked=true]{box-shadow:none}.more-sheet .switch{min-width:64px;min-height:44px}.more-sheet .switch-track{width:104px;height:52px}.more-sheet .switch-knob{width:40px;height:40px;top:4px;left:4px}.more-sheet .switch>input:checked+.switch-track .switch-knob{transform:translate(52px)}.more-sheet .sheet-links a,.more-sheet .sheet-links button{grid-template-columns:20px minmax(0,1fr);min-height:48px}@media (max-width:600px){.topbar>div.topbar-title{display:none}.topbar{justify-content:flex-end;padding-right:16px}.topbar-actions{gap:8px}.topbar-actions .auth-link{white-space:nowrap}}.plate{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);padding:16px}.plate-tight{padding:6px 16px}.plate-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.plate-head strong{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.tile-row{background:var(--panel);border-radius:var(--r-md);box-shadow:var(--shadow-raise);color:inherit;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.tile-row:hover{background:var(--surface-subtle)}.tile-row .row-mark{border-radius:var(--r-md);flex:none;width:44px;height:44px}.tile-row .row-text{flex-grow:1;min-width:0}.tile-row .row-title{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.tile-row .row-line{font-size:var(--fs-small);color:var(--muted)}.tile-row svg.row-chevron{color:var(--faint);flex:none}.row-mark.mark-library{color:light-dark(#2b6cb0,#8fc2ff);background:light-dark(#e8f3ff,#16283c)}.row-mark.mark-dictation{color:light-dark(#c2255c,#ff9ec4);background:light-dark(#ffeef5,#351826)}.row-mark.mark-professional{color:light-dark(#1e7f5c,#7fd3a8);background:light-dark(#eaf6ee,#16301f)}.row-mark.mark-videos{color:light-dark(#a4530a,#f0b76a);background:light-dark(#fff1e3,#33251a)}.row-mark.mark-ielts{color:light-dark(#5b4bd6,#b3a6ff);background:light-dark(#efebff,#221d46)}.row-mark.mark-ear{color:light-dark(#0e7c86,#5cc8d2);background:light-dark(#e6f6f8,#123037)}.row-mark.mark-listen{color:light-dark(#7a3fc4,#c9a6ff);background:light-dark(#f3ecff,#2a1f3d)}.warm-chip{border-radius:var(--pill);background:var(--warning-soft);color:var(--streak);font-size:var(--fs-h3);align-items:baseline;gap:6px;padding:8px 14px;font-weight:700;display:inline-flex}.warm-chip small{font-size:var(--fs-caption);opacity:.85;font-weight:400}.pinned-bar{z-index:5;margin:16px calc(var(--gutter) * -1) 0;padding:14px var(--gutter) max(14px,env(safe-area-inset-bottom));background:var(--panel);border-radius:var(--r-lg) var(--r-lg) 0 0;gap:12px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 24px light-dark(#14211b1f,#0006)}.pinned-bar>:last-child{flex-grow:1}.player-card,.recordings-card,.settings-card,.transcript-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-raise)}.settings-card{margin-bottom:16px;padding:22px 24px}.card-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.card-heading h3{font-size:var(--fs-h3);font-weight:600}.card-heading>span{font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.error-banner,.pending{border:1px solid var(--edge-strong);background:var(--danger-soft);color:var(--danger);border-radius:var(--radius-sm);font-size:var(--fs-small);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;line-height:1.5;display:flex}.error-banner button,.pending button{min-height:var(--control-sm);font-size:var(--fs-small);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.loading{text-align:center;color:var(--muted);font-size:var(--fs-small);border:1px dashed var(--edge);border-radius:var(--radius);padding:40px 20px}.loading:before{content:"";background:var(--accent);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:10px;animation:loading-pulse 1.2s ease-in-out infinite;display:inline-block}@keyframes loading-pulse{0%,to{opacity:.25}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.loading:before{opacity:.6;animation:none}}.empty-state{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);align-items:flex-start;gap:16px;padding:24px;display:flex}.empty-state .empty-icon{border-radius:var(--radius-sm);background:var(--surface-subtle);width:40px;height:40px;color:var(--muted);border:0;flex:none;place-items:center;display:grid}.empty-state strong{font-size:var(--fs-body);font-weight:600;display:block}.empty-state p{font-size:var(--fs-small);color:var(--muted);margin-top:4px;line-height:1.5}.empty-state .empty-action{min-height:var(--control-sm);border:1px solid var(--edge-strong);background:var(--panel);font-size:var(--fs-small);color:var(--accent);white-space:nowrap;border-radius:8px;align-self:center;margin-left:auto;padding:0 12px;font-weight:500}.empty-state .empty-action,.save-status{align-items:center;gap:6px;display:inline-flex}.save-status,footer{font-size:var(--fs-caption);color:var(--muted)}footer{border-top:1px solid var(--edge);justify-content:space-between;align-items:center;gap:15px;padding-top:16px;display:flex}.reading-note{font-size:var(--fs-small)}:root{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root[data-language=en]:not([data-language-ready]) body{visibility:hidden}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .select-trigger,:root:not([data-theme=light]) select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239fab9b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}}:root[data-theme=dark] .select-trigger,:root[data-theme=dark] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239fab9b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}*{box-sizing:border-box}dialog:modal{margin:auto}@media (hover:hover){:where(button:hover:not(:disabled)){background:var(--soft)}}.select{min-width:0;display:block;position:relative}.select-trigger,select{appearance:none;border:1px solid var(--edge);background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364705f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center/15px;width:100%;max-width:100%;min-height:44px;color:var(--ink);font:inherit;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border-radius:9px;padding:0 36px 0 13px;font-size:13px;line-height:1.3;transition:border-color .15s,background-color .15s,box-shadow .15s;overflow:hidden}select{width:auto}.select-value{text-overflow:ellipsis;display:block;overflow:hidden}@media (hover:hover){.select-trigger:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--edge-strong);background-color:var(--panel)}}.select-trigger:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.select-trigger[aria-expanded=true]{box-shadow:0 0 0 3px var(--edge);border-color:light-dark(#7fa070,#506f41)}.select-trigger:disabled,select:disabled{opacity:.45;cursor:not-allowed;background-color:var(--surface-subtle)}select:-moz-focusring{color:#0000;text-shadow:0 0 0 var(--ink)}.select-menu{z-index:57;overscroll-behavior:contain;background:var(--panel);border:1px solid var(--edge);border-radius:12px;max-height:300px;margin:0;padding:6px;list-style:none;animation:toast-in .15s;overflow-y:auto;box-shadow:0 12px 32px #1f2a2224}.select-option{min-height:40px;color:var(--ink);white-space:nowrap;cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:0 12px 0 8px;font-size:13px;display:flex}.select-option-check{width:16px;color:var(--accent);flex:none;place-items:center;display:grid}.select-option.is-active{background:var(--soft)}.select-option[aria-selected=true]{color:var(--accent);font-weight:600}.select-option[aria-disabled=true]{opacity:.45;cursor:not-allowed}.select-backdrop{display:none}.listen-speed,.mobile-level-filter,.privacy-field,.take-select-field,.then-and-now-field{font-size:var(--fs-caption);color:var(--muted);gap:6px;display:grid}.listen-speed{color:var(--muted);align-items:center;gap:6px;margin-left:auto;font-size:12px;display:inline-flex}.privacy-field{color:var(--accent);margin-top:14px;font-size:13px}.field-input{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:var(--ink);font:inherit;border-radius:9px;width:100%;padding:0 13px;font-size:13px}.field-input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.select-quiet .select-trigger,select.select-quiet{min-height:36px;color:var(--accent);background-color:#0000;background-position:right 8px center;background-size:13px;border-color:#0000;padding:0 28px 0 10px;font-size:12px}@media (hover:hover){.select-quiet .select-trigger:hover:not(:disabled),select.select-quiet:hover:not(:disabled){border-color:var(--edge);background-color:var(--surface-subtle)}}@media (max-width:600px){.field-input,.select-trigger,select{font-size:16px}.select-quiet .select-trigger,select.select-quiet{background-position:right 4px center;min-height:44px;padding:0 22px 0 4px;font-size:16px}.select-backdrop{z-index:56;background:light-dark(#1f2a2266,#e0efe466);display:block;position:fixed;inset:0}.select-menu{max-height:60vh;padding:10px 10px calc(10px + var(--tabbar-height,0px) + env(safe-area-inset-bottom,0px));border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0;animation:sheet-up .2s;position:fixed;inset:auto 0 0}.select-option{min-height:48px;font-size:16px}}@keyframes sheet-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.toast-stack{left:50%;bottom:calc(var(--tabbar-height,0px) + var(--dock-height,0px) + 16px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;gap:8px;width:min(440px,100% - 32px);display:grid;position:fixed;transform:translate(-50%)}.toast{pointer-events:auto;background:var(--body);color:var(--panel);border-radius:12px;align-items:center;gap:10px;padding:11px 10px 11px 14px;font-size:13px;line-height:1.5;animation:toast-in .22s;display:flex;box-shadow:0 10px 28px #1f2a2240}.toast>svg{flex:none}.toast-success>svg{color:var(--edge-strong)}.toast-error{background:var(--danger)}.toast-error>svg{color:var(--edge)}.toast-message{flex:1;min-width:0}.toast button{min-height:32px;color:var(--panel);white-space:nowrap;background:light-dark(#ffffff14,#1c252014);border:1px solid light-dark(#ffffff2e,#1c25202e);border-radius:8px;padding:4px 10px;font-size:12px}.toast button:hover:not(:disabled){background:light-dark(#ffffff26,#1c252026)}.toast .toast-close{color:light-dark(#ffffffb3,#1c2520b3);background:0 0;border-color:#0000;width:32px;padding:0;font-size:18px;line-height:1}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.back-to-top{right:20px;bottom:calc(var(--tabbar-height,0px) + var(--dock-height,0px) + 20px + env(safe-area-inset-bottom,0px));z-index:55;border:1px solid var(--edge);background:var(--panel);width:44px;height:44px;color:var(--accent);border-radius:50%;place-items:center;padding:0;animation:toast-in .2s;display:grid;position:fixed;box-shadow:0 6px 18px #1f2a2226}.back-to-top svg{transform:rotate(-90deg)}@media (hover:hover){.back-to-top:hover{background:var(--soft)}}@media (max-width:600px){.back-to-top{right:14px}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.practice-grid{grid-template-columns:minmax(0,1.5fr) minmax(270px,1fr);gap:20px;display:grid}.player-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden;box-shadow:0 3px 10px #29362003}.player-top{justify-content:space-between;padding:23px 24px 0}.live-label,.player-top{align-items:center;display:flex}.live-label{font-size:var(--fs-caption);letter-spacing:1.3px;color:light-dark(#8b9984,#5d6a56);gap:6px}.live-label span{background:light-dark(#9aab84,#4e5d39);border-radius:50%;width:5px;height:5px}.sentence-counter{color:light-dark(#9ca694,#525b4b);font-variant-numeric:tabular-nums;font-size:12px}.sentence-stage{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:223px;padding:15px 30px 22px;display:flex}.quote-mark{color:var(--edge);height:34px;font-size:54px;line-height:36px}.quote-mark,.sentence-stage h3{font-family:var(--font-display)}.sentence-stage h3{letter-spacing:-.6px;max-width:410px;font-size:30px;font-weight:400;line-height:1.3}.sentence-stage p{color:light-dark(#8c9883,#5f6a57);margin-top:14px;font-size:12px;line-height:1.7}.translation-toggle{font-size:var(--fs-caption);color:light-dark(#87967b,#616f55);text-underline-offset:3px;background:0 0;border:0;margin-top:12px;padding:5px;text-decoration:underline}.play-progress{color:light-dark(#a0a995,#515947);font-size:var(--fs-caption);font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:space-between;gap:7px;margin:0 27px;display:flex}.play-progress-track{background:var(--soft);border-radius:3px;width:100%;height:3px;overflow:hidden}.play-progress-track i{background:var(--faint);height:100%;display:block}.transport{justify-content:space-between;gap:12px;padding:20px 27px 24px}.play-button,.transport{align-items:center;display:flex}.play-button{background:var(--accent-fill);color:var(--accent-ink);border-radius:var(--r-md);border:0;gap:10px;min-height:45px;padding:12px 20px;font-size:12px}.play-button:hover:not(:disabled){background:var(--body)}.record-area{background:var(--surface-subtle);border-top:1px solid var(--soft);flex-wrap:wrap;gap:14px;padding:20px 24px}.record-area,.record-caption{align-items:center;display:flex}.record-caption{flex:1;gap:10px;min-width:130px}.record-caption strong{font-size:12px;font-weight:600;display:block}.record-caption small{font-size:var(--fs-caption);color:light-dark(#9ba390,#565d4c);margin-top:4px;line-height:1.6;display:block}.record-dot{background:var(--edge-strong);border-radius:50%;flex:none;width:7px;height:7px}.record-dot.active{background:light-dark(#bd5851,#c25d55);box-shadow:0 0 0 4px #f3ddd6}.record-button{background:var(--panel);border-color:var(--edge);align-items:center;gap:7px;min-height:42px;padding:10px 12px;font-size:12px;display:flex}.record-button.is-recording{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-bright)}.mic-meter{background:var(--edge);order:3;width:100%;height:4px}.shadow-note{font-size:var(--fs-caption);color:light-dark(#8a7844,#93814d);background:var(--surface-subtle);border:1px solid var(--edge);border-radius:9px;flex-basis:100%;order:6;padding:10px 12px;line-height:1.8}.mic-meter i{background:light-dark(#78a16c,#4b723f);height:100%;display:block}.transcript-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-direction:column;padding:23px 20px 20px;display:flex}.sentence-list{gap:9px;margin-top:21px;display:grid}.sentence-row{text-align:left;background:0 0;border-color:#0000;border-radius:9px;align-items:flex-start;gap:12px;padding:15px 12px;display:flex;position:relative}.sentence-row.selected{background:var(--soft);border-color:var(--edge)}.row-number{color:light-dark(#a5ae9a,#4d5543);font-size:12px;line-height:20px}.selected .row-number{color:light-dark(#6b8559,#6f895d)}.row-copy{flex:1}.row-copy strong{font-size:12px;font-weight:400;line-height:1.6;display:block}.row-copy small{font-size:var(--fs-caption);color:light-dark(#99a58c,#535e47);font-variant-numeric:tabular-nums;margin-top:9px;display:block}.sentence-done{color:light-dark(#6c9157,#5e8249)}.transcript-tip{font-size:var(--fs-caption);color:light-dark(#98a38b,#555f49);align-items:flex-start;gap:9px;margin-top:auto;padding:22px 9px 17px;line-height:1.8;display:flex}.transcript-tip svg{flex:none;margin-top:2px}.next-button{border-color:var(--soft);justify-content:space-between;align-items:center;padding:11px 15px;font-size:12px;display:flex}.recordings-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin-top:22px;padding:22px 25px}.recordings-card .card-heading h3{margin-top:7px;font-size:14px}.take-count{border:1px solid var(--soft);border-radius:5px;padding:6px 9px}.empty-takes{align-items:center;gap:17px;padding:24px 0 5px;display:flex}.empty-icon{border:1px dashed var(--edge);width:48px;height:48px;color:var(--edge-strong);border-radius:50%;place-items:center;display:grid}.empty-takes strong{color:light-dark(#7e8c72,#6b795f);font-size:12px;font-weight:400}.empty-takes p{color:light-dark(#a0a993,#515945);margin-top:7px;font-size:12px}.saved-takes{justify-content:space-between;gap:15px;margin-top:20px}.saved-takes,.take-select{align-items:center;display:flex}.take-select{gap:12px}.take-icon{background:var(--soft);color:light-dark(#71905d,#61804d);border-radius:10px;place-items:center;width:39px;height:39px;display:grid}.take-select label{font-size:var(--fs-caption);color:light-dark(#96a08a,#58614d);flex-direction:column;gap:5px;display:flex}.take-select select{width:100%}.saved-indicator{font-size:var(--fs-caption);color:light-dark(#809a6d,#597247);align-items:center;gap:4px;display:flex}.take-actions{gap:8px;display:flex}.take-actions button{align-items:center;gap:6px;padding:10px;font-size:12px;display:flex}.take-actions .compare-button{background:var(--soft);color:light-dark(#547b43,#759d64)}.guide{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;padding:16px;display:grid}.guide>div{padding-left:32px;position:relative}.step-no{font-family:var(--font-display);color:var(--muted);font-variant-numeric:tabular-nums;font-size:15px;position:absolute;top:1px;left:0}.guide h4{font-size:var(--fs-body);margin-bottom:4px;font-weight:600}.guide p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}@media (min-width:1500px){:root{--content-max:1240px;--gutter:48px}.content{padding-top:40px}.sentence-stage{min-height:270px}.sentence-stage h3{font-size:34px}}@media (max-width:1150px){:root{--gutter:28px}.sidebar{padding:16px 10px}.content{padding-top:28px}.practice-grid{grid-template-columns:minmax(0,1.3fr) minmax(240px,1fr);gap:15px}.transport{padding:18px}.play-button{padding:12px;font-size:12px}.sentence-stage{padding:15px 22px}.sentence-stage h3{font-size:26px}.saved-takes{flex-direction:column;align-items:flex-start}.record-area{padding:16px}.record-caption small{font-size:var(--fs-caption)}}@media (max-width:900px){:root{--sidebar:0px;--gutter:24px;--topbar:56px;--fs-h1:24px;--fs-display:28px;--fs-h3:16px;--fs-body:16px;--fs-figure-lg:40px}.sidebar{z-index:31;background:0 0;border:0;align-items:center;width:56px;height:56px;padding:10px;position:fixed;inset:0 auto auto 0;overflow:visible}.brand{gap:0;padding:0;font-size:0}.brand-dot,.nav-label,.sidebar nav,.sidebar-foot{display:none}.brand-mark{border-radius:10px;width:36px;height:36px}main{width:100%;margin-left:0}.topbar{padding:0 20px 0 58px}.content{padding-top:24px;padding-bottom:40px}.practice-grid{grid-template-columns:1fr}.transcript-card{padding:21px}.sentence-list{grid-template-columns:repeat(3,1fr)}.sentence-row{gap:7px;padding:12px 8px}.transcript-tip{margin-top:0;padding-top:16px}.next-button{width:100%;max-width:190px;margin-left:auto}.sentence-stage h3{max-width:440px;font-size:32px}.saved-takes{flex-direction:row;align-items:center}.saved-indicator{display:none}.guide p{font-size:12px}footer{flex-wrap:wrap}}@media (max-width:600px){:root{--gutter:16px;--topbar:56px;--fs-h1:24px;--fs-label:12px;--control:44px;--control-sm:44px}main :is(.text-button,.icon-button,.site-footer-column a,.session-step-open,.empty-action,.practice-steps button,.video-tabs button,.dictation-choice .filter-chip,.settings-index a,.group-chip,.level-chip,.filter-chip,.tag-chip){min-height:44px}.topbar{padding:0 16px 0 58px}.content{padding-top:20px;padding-bottom:32px}.mobile-break{display:block}.page-heading{margin-bottom:20px}.page-heading p{font-size:var(--fs-small)}.session-heading{flex-direction:column;align-items:flex-start;gap:15px;margin-top:28px}.session-heading h2{font-size:19px}.lesson-meta{font-size:12px}.session-progress{align-items:center;gap:12px;width:100%;font-size:12px;display:flex}.progress-track{flex:1;margin:0}.player-top{padding:20px 20px 0}.sentence-stage{min-height:240px;padding:22px}.sentence-stage h3{font-size:30px}.sentence-stage p{font-size:13px}.translation-toggle{min-height:44px;font-size:12px}.play-button{min-height:48px;font-size:12px}.record-area{gap:14px;padding:18px}.record-caption small,.record-caption strong{font-size:12px}.record-button{justify-content:center;width:100%;min-height:46px;font-size:13px}.sentence-list{grid-template-columns:1fr;gap:6px}.sentence-row{gap:13px;padding:12px}.row-copy strong{font-size:14px}.row-copy small{margin-top:5px;font-size:12px}.next-button,.row-number,.transcript-tip{font-size:12px}.next-button{max-width:none;min-height:44px}.card-heading h3{font-size:14px}.recordings-card{padding:20px}.empty-takes{gap:12px}.empty-takes strong{font-size:12px}.empty-takes p{font-size:12px;line-height:1.6}.empty-icon{flex:none}.saved-takes{flex-direction:column;align-items:stretch}.take-actions{flex-wrap:wrap}.take-actions button{min-height:44px;font-size:12px}.guide{grid-template-columns:1fr;gap:20px;padding:25px 5px}.guide h4{font-size:13px}.guide p,footer{font-size:12px}footer{line-height:1.7}.filter-chip,.level-chip,.tag-chip{min-height:40px}}.topbar{padding-top:env(safe-area-inset-top,0);height:calc(var(--topbar) + env(safe-area-inset-top,0px))}@media (max-width:900px){.sidebar{top:env(safe-area-inset-top,0)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.breadcrumb,.empty-takes p,.guide p,.lesson-meta,.page-heading p,.record-caption small,.row-copy small,.sentence-stage p,.transcript-tip,footer{color:var(--muted)}.primary-action.large{justify-content:center;width:100%;min-height:48px;font-size:15px}.primary-action.disabled{background:var(--edge-strong);border-color:var(--edge-strong);cursor:not-allowed}.library-toolbar{flex-wrap:wrap;gap:12px;margin:30px 0 22px}.library-toolbar,.search-field{align-items:center;display:flex}.search-field{border:1px solid var(--edge);background:var(--panel);color:var(--muted);min-height:var(--control);border-radius:8px;flex:1;gap:8px;min-width:220px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.search-field input{font-size:var(--fs-body);color:var(--ink);background:0 0;border:0;width:100%;padding:8px 0}.search-field input::placeholder{color:var(--faint)}.search-field input:focus{outline:none}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge)}.filter-row{flex-wrap:wrap;gap:6px;display:flex}.filter-chip span{font-variant-numeric:tabular-nums;color:var(--muted);font-size:var(--fs-caption)}.filter-chip.selected{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.filter-chip.selected span{color:var(--accent);opacity:.8}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.lesson-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:16px;padding:18px;transition:border-color .15s,background-color .15s;display:flex}.lesson-card:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}.lesson-card-art{background:var(--soft);width:48px;height:48px;color:var(--accent);font-family:var(--font-display);border-radius:10px;flex:none;place-items:center;font-size:17px;display:grid}.lesson-card-body{flex:1;min-width:0}.lesson-card-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.lesson-card-top h3{letter-spacing:-.3px;font-size:14px;font-weight:600}.lesson-card-body p{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:12px;line-height:1.7;display:-webkit-box;overflow:hidden}.lesson-card-meta{color:light-dark(#8b9685,#616b5b);font-size:var(--fs-caption);flex-wrap:wrap;align-items:center;gap:11px;margin-top:12px;display:flex}.imported-pill{color:light-dark(#6f8064,#77886c);align-items:center;gap:5px;display:inline-flex}.lesson-card-progress{font-size:var(--fs-caption);color:light-dark(#95a08d,#576150);margin-top:13px}.lesson-card-progress .progress-track{margin-bottom:7px}.state-pill{font-size:var(--fs-caption);white-space:nowrap;border-radius:5px;flex:none;padding:5px 8px}.state-new{background:var(--surface-subtle);color:light-dark(#7f8a78,#6d7867)}.state-inProgress{background:var(--soft);color:light-dark(#5c7f4d,#729663)}.state-completed{background:var(--soft);color:var(--accent)}.detail-grid{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr);margin-top:28px}.detail-grid,.detail-main{gap:20px;display:grid}.detail-facts{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);grid-template-columns:repeat(4,1fr);gap:12px;padding:20px;display:grid}.detail-facts span{font-size:var(--fs-caption);color:light-dark(#95a08d,#576150);display:block}.detail-facts b{font-variant-numeric:tabular-nums;margin-top:7px;font-size:17px;font-weight:600;display:block}.detail-block{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);padding:22px 24px}.detail-block h2{margin-bottom:15px;font-size:13px;font-weight:600}.target-list{gap:11px;margin:0;padding:0;list-style:none;display:grid}.target-list li{color:var(--muted);align-items:flex-start;gap:9px;font-size:12px;line-height:1.7;display:flex}.target-list svg{color:light-dark(#7c9c68,#557341);flex:none;margin-top:3px}.preview-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.preview-list li{border-radius:9px;align-items:flex-start;gap:12px;padding:12px 10px;display:flex}.preview-list li:nth-child(odd){background:var(--surface-subtle)}.detail-side{align-content:start;gap:12px;display:grid}.side-block{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);padding:18px 20px}.side-block h3{margin-bottom:9px;font-size:12px;font-weight:600}.side-block p{color:var(--muted);font-size:12px;line-height:1.7}.rights-note{font-size:var(--fs-caption);color:light-dark(#9aa48f,#545d4a);margin-top:7px}.side-block.danger{border-color:var(--edge)}.side-block.danger button{color:var(--danger);border-color:var(--edge);align-items:center;gap:7px;min-height:42px;margin-top:12px;padding:10px 13px;font-size:12px;display:inline-flex}.side-block.danger button:hover:not(:disabled){background:var(--surface-subtle)}.confirm-row{gap:8px}.confirm-row,.tag-row{flex-wrap:wrap;display:flex}.tag-row{gap:7px}.tag-pill{font-size:var(--fs-caption);background:var(--soft);color:light-dark(#71806a,#778670);border-radius:5px;padding:6px 9px}.relink-panel{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:15px;margin-bottom:20px;padding:20px;display:flex}.relink-icon{background:var(--warning-soft);color:light-dark(#8a7844,#93814d);border-radius:12px;flex:none;place-items:center;width:44px;height:44px;display:grid}.relink-panel div{flex:1;min-width:200px}.relink-panel strong{font-size:12px;font-weight:600;display:block}.relink-panel p{color:light-dark(#857e6a,#837c68);margin-top:6px;font-size:12px;line-height:1.7}.relink-error{color:var(--danger)}.relink-panel button{min-height:44px;padding:11px 15px;font-size:12px}.step-rail{flex-wrap:wrap;gap:10px;margin:28px 0 18px;padding:0;list-style:none;display:flex}.step-rail li{border:1px solid var(--edge);color:var(--muted);background:var(--panel);border-radius:10px;align-items:center;gap:9px;padding:10px 14px;font-size:12px;display:flex}.step-rail li.current{border-color:var(--edge-strong);color:var(--accent);font-weight:600}.step-rail li.done{color:light-dark(#6f8b60,#678358)}.step-number{background:var(--soft);width:22px;height:22px;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;display:grid}.step-rail li.current .step-number{background:var(--accent-fill);color:var(--accent-ink)}.import-card{border:1px solid var(--edge);border-radius:var(--radius);gap:20px;padding:26px}.file-drop,.import-card{background:var(--panel);display:grid}.file-drop{border:1px dashed var(--edge);border-radius:var(--radius);text-align:center;justify-items:center;gap:8px;width:100%;padding:38px 22px}.file-drop.is-over{background:var(--surface-subtle);border-color:light-dark(#9fb78e,#415631)}.file-drop strong{font-size:13px;font-weight:600}.file-drop small{font-size:var(--fs-caption);color:var(--muted)}.file-drop-icon{background:var(--soft);color:light-dark(#6f8b60,#678358);border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.import-note{font-size:var(--fs-caption);color:var(--muted);line-height:1.8}.media-summary{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;align-items:center;gap:13px;padding:15px 17px;display:flex}.media-icon{background:var(--soft);color:light-dark(#71905d,#61804d);border-radius:11px;flex:none;place-items:center;width:40px;height:40px;display:grid}.media-summary div{flex:1;min-width:0}.media-summary strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;display:block;overflow:hidden}.media-summary small{font-size:var(--fs-caption);color:var(--muted);margin-top:5px;display:block}.transcript-options{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.paste-panel{gap:9px;display:grid}.paste-panel label{color:light-dark(#7d8a74,#6d7a64);font-size:12px}.paste-panel textarea{border:1px solid var(--edge);resize:vertical;color:var(--ink);background:var(--panel);border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.7}.paste-panel button{min-height:44px;padding:11px;font-size:12px}.even-panel{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:15px;padding:18px;display:flex}.even-panel>div{flex:1;min-width:200px}.even-panel strong{font-size:12px;font-weight:600;display:block}.even-panel p{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.7}.even-panel label{font-size:var(--fs-caption);color:var(--muted);gap:6px;display:grid}.even-panel input{border:1px solid var(--edge);background:var(--panel);width:88px;color:var(--ink);font-variant-numeric:tabular-nums;border-radius:9px;padding:11px}.even-panel button{min-height:44px;padding:11px 15px;font-size:12px}.step-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.review-fields{grid-template-columns:1fr 1fr;gap:16px;display:grid}.review-fields label{color:light-dark(#7d8a74,#6d7a64);gap:7px;font-size:12px;display:grid}.review-fields input{border:1px solid var(--edge);background:var(--panel);color:var(--ink);border-radius:10px;min-height:44px;padding:12px;font-size:12px}.review-summary{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;gap:14px;display:flex}.issue-list{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;padding:15px 17px}.issue-heading{color:light-dark(#8a7844,#93814d);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.issue-list ul{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.issue{font-size:var(--fs-caption);color:light-dark(#7d7561,#8f8772);flex-wrap:wrap;align-items:baseline;gap:9px;line-height:1.7;display:flex}.issue-line{font-variant-numeric:tabular-nums;color:light-dark(#9a9280,#6d6655)}.issue-badge{font-size:var(--fs-caption);letter-spacing:.6px;background:var(--warning-soft);color:light-dark(#87795a,#8e8060);border-radius:4px;padding:3px 7px}.issue-rejected .issue-badge{background:var(--danger-soft);color:var(--danger)}.editor-toolbar{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px;padding:16px 20px;display:flex}.editor-counts{color:var(--muted);font-size:12px}.editor-counts b{color:var(--ink);font-weight:600}.playhead-readout{color:light-dark(#7d8a74,#6d7a64);font-variant-numeric:tabular-nums;align-items:center;gap:9px;font-size:12px;display:flex}.editor-history{gap:8px;display:flex}.editor-history button{align-items:center;gap:7px;min-height:42px;padding:10px 13px;font-size:12px;display:inline-flex}.edit-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.edit-row{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:14px;padding:18px 20px;display:grid}.edit-row.selected{border-color:var(--edge-strong);background:var(--surface-subtle)}.edit-row-head{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.row-number-button{color:light-dark(#a5ae9a,#4d5543);font-variant-numeric:tabular-nums;background:0 0;border:0;padding:8px 4px;font-size:12px}.selected .row-number-button{color:light-dark(#6b8559,#6f895d);font-weight:600}.icon-button{flex:none;place-items:center;width:36px;height:36px;padding:0;display:grid}.edit-bounds{flex-wrap:wrap;flex:1;gap:22px;display:flex}.bound-control{gap:6px;display:grid}.bound-label{font-size:var(--fs-caption);color:var(--muted)}.bound-value{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;font-weight:600}.bound-buttons{flex-wrap:wrap;gap:5px;display:flex}.bound-buttons button{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;border-radius:7px;min-height:34px;padding:7px 9px}.playhead-button{color:light-dark(#5f7f52,#739466)}.edit-field{font-size:var(--fs-caption);color:var(--muted);gap:7px;display:grid}.edit-field input,.edit-field textarea{border:1px solid var(--edge);color:var(--ink);background:var(--panel);resize:vertical;border-radius:10px;padding:11px 12px;font-family:inherit;font-size:13px;line-height:1.7}.edit-field input:focus,.edit-field textarea:focus{border-color:var(--edge-strong)}.edit-row-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.edit-row-actions button{align-items:center;gap:7px;min-height:40px;padding:9px 12px;font-size:12px;display:inline-flex}.dirty-note{color:light-dark(#9a8a55,#7e6e3a);margin-right:auto}.dirty-note,.stale-note{font-size:var(--fs-caption)}.stale-note{color:light-dark(#8a7844,#93814d);background:var(--surface-subtle);border:1px solid var(--edge);border-radius:9px;margin-top:12px;padding:10px 12px;line-height:1.7}.guided-intro .section-kicker{color:var(--muted)}.today-next-review{color:var(--muted);gap:8px;margin-top:24px;display:grid}.today-next-review a{min-height:44px;color:var(--accent);align-items:center;display:inline-flex}.guided-intro{gap:8px;margin-bottom:20px;display:grid}.guided-intro p{color:var(--muted);font-size:14px}.guided-intro button{justify-self:start;min-height:44px}.practice-guided .practice-grid{grid-template-columns:1fr}.practice-guided .page-heading h1{font-size:var(--fs-h1)}.practice-guided .page-heading p{color:var(--muted);font-size:14px}.practice-guided .guided-intro{margin-top:16px;margin-bottom:12px}.practice-guided .mic-hint:not(.mic-signal-hint),.practice-guided .mic-select,.practice-guided .page-heading .eyebrow,.practice-guided .quote-mark,.practice-guided .stage-actions{display:none}.practice-guided .sentence-stage{min-height:0;padding:20px 24px 16px}.practice-guided .run-idle,.practice-guided .sentence-counter,.practice-guided .sentence-stage p{color:var(--muted)}.practice-guided .transport{padding:12px 24px 16px}.practice-guided .record-area{padding:16px 24px}.practice-guided .record-caption small{color:var(--muted)}.practice-guided .recordings-card{margin-top:16px}.practice-guided .back-link,.practice-guided .loop-controls,.practice-guided .mark-button,.practice-guided .phrase-row,.practice-guided .rating-row,.practice-guided .reading-check,.practice-guided .session-heading,.practice-guided .transcript-card,.practice-guided .waveform-card{display:none}.guided-navigation,.session-next-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;display:flex}.guided-navigation button,.session-next-links a,.session-review-choice>button{min-height:44px}.guided-navigation span{color:var(--muted);font-size:14px}.session-review-choice{border-top:1px solid var(--edge);gap:14px;margin-top:20px;padding-top:20px;display:grid}.session-review-choice>p{color:var(--muted);font-size:14px}.session-review-choice .select-control{max-width:100%}.next-up{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:16px;padding:22px 24px;display:flex}.next-up h3{margin:9px 0 8px;font-size:15px;font-weight:600}.next-up p{color:var(--muted);max-width:560px;font-size:12px;line-height:1.7}@media (max-width:1150px){.detail-grid{grid-template-columns:1fr}.detail-facts{grid-template-columns:repeat(2,1fr)}.review-fields,.transcript-options{grid-template-columns:1fr}}@media (max-width:900px){.lesson-grid{grid-template-columns:1fr}.import-card{padding:20px}.edit-bounds{gap:14px}}@media (max-width:600px){.library-toolbar{gap:9px}.lesson-card{flex-direction:column;gap:13px}.lesson-card-art{width:46px;height:46px;font-size:16px}.detail-facts{grid-template-columns:1fr 1fr;padding:16px}.detail-block{padding:18px}.editor-toolbar{gap:11px;padding:14px}.edit-row{padding:15px}.bound-buttons button{min-height:38px}.step-rail li{padding:9px 11px;font-size:12px}.empty-action{margin-left:0}}.run-status{color:var(--muted);align-items:center;gap:8px;min-height:20px;margin:0 27px 12px;font-size:12px;display:flex}.run-status b{color:var(--ink)}.run-gap{color:light-dark(#5f7f52,#739466);font-weight:600}.run-stalled{color:light-dark(#96793f,#96793f)}.run-idle{color:light-dark(#a0a993,#515945)}.mark-button{font-size:var(--fs-caption);color:light-dark(#6b7a63,#7f8e76);letter-spacing:.4px;min-height:40px;padding:9px 12px}.follow-button{background:var(--soft);border-color:var(--edge);color:var(--muted);justify-content:center;align-items:center;gap:7px;min-height:42px;margin-top:10px;padding:10px;font-size:12px;display:flex}.sentence-row.sounding{box-shadow:inset 3px 0 #7d9b6b}.sentence-list{scroll-behavior:smooth}.loop-controls{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:18px;margin-top:22px;padding:20px 24px;display:grid}.mode-row{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.mode-chip{text-align:left;border-radius:12px;align-content:center;gap:5px;min-height:64px;padding:14px 15px;display:grid}.mode-chip strong{font-size:12px;font-weight:600}.mode-chip small{font-size:var(--fs-caption);color:var(--muted);line-height:1.5}.mode-chip.selected{background:var(--soft);border-color:var(--edge-strong)}.mode-chip.selected strong{color:var(--accent)}.mode-chip.selected small{color:light-dark(#6b8559,#6f895d)}.setting-row{flex-wrap:wrap;align-items:end;gap:18px;display:flex}.setting{font-size:var(--fs-caption);color:var(--muted);gap:6px;display:grid}.setting .select,.setting select{min-width:96px}.question-page{padding-bottom:48px}.question-layout{grid-template-columns:minmax(290px,360px) minmax(0,1fr);align-items:start;gap:22px;margin-top:34px;display:grid}.question-form,.question-results{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel)}.question-form{align-content:start;gap:17px;padding:24px;display:grid;position:sticky;top:22px}.question-form .card-heading{align-items:flex-start;padding-bottom:3px}.question-form .card-heading h2{letter-spacing:-.5px;margin-top:9px;font-size:20px;font-weight:600}.question-form .card-heading>span{font-size:var(--fs-caption);letter-spacing:.4px;color:light-dark(#6c8a5a,#688656);background:var(--soft);white-space:nowrap;border-radius:5px;padding:6px 8px}.question-form label{color:light-dark(#7d8a74,#6d7a64);gap:7px;font-size:12px;display:grid}.question-form input,.question-form textarea{border:1px solid var(--edge);background:var(--panel);width:100%;color:var(--ink);border-radius:9px;min-height:43px;padding:11px 12px;font-size:13px}.question-form .select,.question-form select{width:100%}.question-form textarea{resize:vertical;line-height:1.6}.question-form input:focus,.question-form textarea:focus{border-color:var(--edge-strong)}.question-form-grid{grid-template-columns:1fr 1fr 82px;gap:10px;display:grid}.question-rights-note{border:1px solid var(--edge);background:var(--surface-subtle);color:light-dark(#857e6a,#837c68);font-size:var(--fs-caption);border-radius:10px;padding:13px 14px;line-height:1.7}.question-rights-note strong{color:light-dark(#8a7844,#93814d);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.question-submit{border-radius:var(--r-md);background:var(--accent-fill);min-height:45px;color:var(--accent-ink);border:0;padding:12px 16px;font-size:12px;font-weight:600}.question-submit:hover:not(:disabled){background:var(--body)}.question-results{min-height:520px;padding:24px}.question-empty{text-align:center;min-height:468px;color:var(--muted);place-content:center;justify-items:center;gap:12px;padding:30px;display:grid}.question-empty h2{font-family:var(--font-display);color:var(--muted);font-size:22px;font-weight:400}.question-empty p{max-width:320px;font-size:12px;line-height:1.7}.question-empty-icon{background:var(--soft);color:light-dark(#71905d,#61804d);border-radius:50%;place-items:center;width:52px;height:52px;font-size:22px;display:grid}.question-spinner{border:3px solid var(--soft);border-top-color:var(--faint);border-radius:50%;width:28px;height:28px;animation:question-spin .8s linear infinite}@keyframes question-spin{to{transform:rotate(1turn)}}.question-result-head{border-bottom:1px solid var(--soft);justify-content:space-between;align-items:flex-start;gap:15px;padding-bottom:18px;display:flex}.question-result-head h2{font-family:var(--font-display);letter-spacing:-.5px;margin:8px 0 7px;font-size:26px;font-weight:400;line-height:1.35}.question-result-head p{color:var(--muted);font-size:12px}.question-count{font-size:var(--fs-caption);color:var(--muted);background:var(--surface-subtle);white-space:nowrap;font-variant-numeric:tabular-nums;border-radius:6px;padding:6px 10px}.question-provenance{color:var(--muted);font-size:var(--fs-caption);border-bottom:1px solid var(--soft);flex-wrap:wrap;gap:14px;padding:14px 0;display:flex}.question-provenance b{color:var(--muted);font-weight:600}.question-list{gap:12px;margin-top:18px;display:grid}.question-card{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;padding:17px 18px}.question-card-top{align-items:center;gap:10px;margin-bottom:11px;display:flex}.question-number{font-size:var(--fs-caption);color:light-dark(#6f8b60,#678358);font-variant-numeric:tabular-nums}.question-type{font-size:var(--fs-caption);letter-spacing:.5px;color:light-dark(#9aa48f,#545d4a);text-transform:uppercase}.question-card h3{font-family:var(--font-display);color:var(--body);font-size:17px;font-weight:400;line-height:1.5}.question-choices{counter-reset:choice;gap:7px;margin:14px 0 0;padding:0;list-style:none;display:grid}.question-choices li{counter-increment:choice;color:light-dark(#697861,#819179);align-items:flex-start;gap:9px;font-size:12px;line-height:1.6;display:flex}.question-choices li:before{content:counter(choice,upper-alpha);border:1px solid var(--edge);width:19px;height:19px;font-size:var(--fs-caption);color:light-dark(#78916b,#627a55);border-radius:50%;flex:none;place-items:center;display:grid}.question-card details{border-top:1px solid var(--soft);margin-top:14px;padding-top:11px}.question-card summary{font-size:var(--fs-caption);color:light-dark(#78916b,#627a55);cursor:pointer}.question-answer{background:var(--surface-subtle);color:var(--muted);border-radius:8px;margin-top:9px;padding:11px 12px;font-size:12px;line-height:1.7}.question-answer strong{color:var(--muted);font-weight:600}.question-answer p{margin-top:5px}@media (max-width:900px){.question-layout{grid-template-columns:1fr}.question-form{position:static}.question-results{min-height:380px}.question-empty{min-height:320px}}@media (max-width:600px){.question-form,.question-results{padding:18px}.question-form-grid{grid-template-columns:1fr 1fr}.question-form-grid label:last-child{grid-column:1/-1}.question-result-head{display:grid}.question-result-head h2{font-size:23px}}.catalog-stats{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.catalog-stats span{border:1px solid var(--edge);background:var(--panel);color:var(--muted);font-size:var(--fs-caption);border-radius:9px;padding:10px 13px}.catalog-stats b{color:var(--muted);font-weight:600}.lesson-catalog{flex-direction:column;min-height:0;display:flex}.lesson-save-bar{border-top:1px solid var(--edge);gap:14px;margin-top:16px;padding-top:16px;display:grid}.keep-lesson-compact{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.keep-lesson-compact button{align-items:center;gap:7px;min-height:44px;padding:0 14px;font-size:13px;display:inline-flex}.keep-lesson-compact.is-kept button{background:var(--soft);color:var(--accent);border-color:var(--edge)}.keep-lesson-compact span{color:var(--muted);font-size:12px;line-height:1.6}.keep-lesson-compact .keep-lesson-error{color:var(--danger);flex-basis:100%;margin:0;font-size:12px}.speak-recorder-title{align-items:center;gap:8px;display:inline-flex}.speak-recorder-title .new-badge{margin-left:0}.lesson-catalog,.lesson-detail{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius)}.lesson-list{gap:5px;margin-top:18px;display:grid}.lesson-detail{min-height:650px;padding:25px}.prompt-block{padding:24px 0 20px}.prompt-label{font-size:var(--fs-caption);letter-spacing:1.4px;color:light-dark(#91a087,#56644d);margin-bottom:10px;font-weight:600}.prompt-block h3{font-family:var(--font-display);color:var(--body);font-size:24px;font-weight:400;line-height:1.45}.prompt-block p{color:var(--muted);margin-top:7px;font-size:12px}.answer-block{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;padding:19px 20px}.answer-en{color:var(--accent);font-size:16px;line-height:1.75}.answer-vi{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.7}.follow-up-block,.tts-block{border-top:1px solid var(--soft);margin-top:17px;padding-top:14px}.follow-up-block summary,.tts-block summary{font-size:var(--fs-caption);color:light-dark(#78916b,#627a55);cursor:pointer}.follow-up-block ol{color:var(--muted);gap:8px;margin:12px 0 0;padding-left:20px;font-size:12px;line-height:1.6;display:grid}.tts-block pre{color:light-dark(#71806a,#778670);white-space:pre-wrap;background:var(--surface-subtle);border-radius:8px;margin-top:10px;padding:12px;font:11px/1.7 ui-monospace,SFMono-Regular,Menlo,monospace}.language-toggle{width:auto;min-width:var(--control-sm);font-size:var(--fs-label);letter-spacing:.06em;padding:0 8px;font-weight:700}.language-toggle:hover,.theme-toggle:hover{color:var(--ink);background:var(--surface-subtle);border-color:var(--edge)}.language-mark{width:19px;height:19px;font-size:var(--fs-caption);letter-spacing:.5px;color:var(--muted);place-items:center;font-weight:700;display:inline-grid}.auth-link{min-height:var(--control-sm);border:1px solid var(--edge-strong);font-size:var(--fs-small);color:var(--ink);background:var(--panel);border-radius:8px;align-items:center;padding:0 12px;font-weight:500;display:inline-flex}.auth-link:hover{background:var(--surface-subtle)}.auth-page{place-items:start center;padding-top:80px;display:grid}.auth-card{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius-lg);width:min(100%,400px);box-shadow:none;padding:36px 32px 28px}.auth-card h1{font-family:var(--font-display);letter-spacing:-.02em;margin-top:8px;font-size:28px;font-weight:400}.auth-intro{font-size:var(--fs-body);color:var(--muted);line-height:var(--lh-body);margin-top:8px}.auth-form{gap:16px;margin-top:24px;display:grid}.auth-form label{font-size:var(--fs-small);color:var(--ink);gap:6px;font-weight:600;display:grid}.auth-form input{border:1px solid var(--edge-strong);background:var(--panel);width:100%;color:var(--ink);font-size:var(--fs-body);min-height:var(--control-touch);border-radius:8px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge);outline:0}.auth-switch{font-size:var(--fs-small);text-align:center;color:var(--muted);margin-top:20px}.auth-switch a{color:var(--accent);text-underline-offset:3px;font-weight:500;text-decoration:underline}@media (max-width:900px){.lesson-list{grid-template-columns:1fr 1fr}.lesson-detail{min-height:500px}}@media (max-width:600px){.catalog-stats{grid-template-columns:1fr 1fr;display:grid}.lesson-list{grid-template-columns:1fr}.lesson-detail{padding:18px}.prompt-block h3{font-size:21px}}.hidden-sentence{justify-items:center;gap:10px;padding:14px 0;display:grid}.hidden-sentence p{text-align:center;max-width:34ch;color:var(--muted);font-size:13px;line-height:1.7}.reveal-button{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:var(--accent);border-radius:12px;padding:11px 18px;font-size:13px;font-weight:600}.reveal-button:hover{background:var(--soft)}.row-hidden{letter-spacing:3px;color:var(--edge-strong)}.phrase-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:12px;display:flex}.phrase-chip{border:1px solid var(--edge);background:var(--panel);min-height:40px;color:var(--muted);font-variant-numeric:tabular-nums;border-radius:999px;padding:9px 14px;font-size:12px}.phrase-chip.selected{background:var(--accent);border-color:var(--accent);color:var(--panel)}.phrase-chip:disabled{opacity:.45}.phrase-note{text-align:center;width:100%;font-size:var(--fs-caption);color:var(--muted);line-height:1.6}.ab-banner{border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;padding:11px 14px;font-size:12px;display:flex}.ab-banner b{font-variant-numeric:tabular-nums}.ab-banner .text-button{color:light-dark(#6b7a63,#7f8e76);margin-left:auto}.shortcut-dialog{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:calc(100vw - 34px);max-width:420px;color:var(--ink);padding:26px 28px}.shortcut-dialog::backdrop{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.shortcut-dialog::backdrop{background:color-mix(in srgb,var(--ink) 30%,transparent)}}.shortcut-dialog h2{font-family:var(--font-display);letter-spacing:-.5px;margin-bottom:18px;font-size:22px;font-weight:400}.shortcut-dialog dl{gap:11px;margin:0;display:grid}.shortcut-dialog dl>div{align-items:baseline;gap:14px;display:flex}.shortcut-dialog dt{flex:none;min-width:96px}.shortcut-dialog dd{color:var(--muted);margin:0;font-size:12px}.shortcut-dialog kbd{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-caption);background:var(--surface-subtle);border:solid var(--edge);border-width:1px 1px 2px;border-radius:6px;padding:5px 8px}.dialog-note{font-size:var(--fs-caption);color:var(--muted);margin:18px 0 16px;line-height:1.8}.shortcut-dialog>button{width:100%;min-height:44px;padding:11px;font-size:12px}.lookup-button{z-index:60;min-height:36px;color:var(--panel);letter-spacing:.2px;white-space:nowrap;-webkit-user-select:none;user-select:none;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:600;display:inline-flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 18px #25372e40}.lookup-button,.lookup-button:hover{background:var(--ink)}.lookup-dialog{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:calc(100vw - 32px);max-width:460px;max-height:calc(100vh - 48px);color:var(--ink);padding:0}.lookup-dialog::backdrop{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.lookup-dialog::backdrop{background:color-mix(in srgb,var(--ink) 30%,transparent)}}.lookup-dialog-body{overscroll-behavior:contain;box-sizing:border-box;max-height:calc(100dvh - 48px);padding:24px 28px 22px;overflow:auto}.lookup-dialog h2{font-family:var(--font-display);letter-spacing:-.5px;overflow-wrap:anywhere;margin-top:10px;font-size:26px;font-weight:400;line-height:1.3}.lookup-sound{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin-top:8px;font-size:14px;display:flex}.lookup-sound button{min-height:30px;padding:3px 12px;font-size:12px}.lookup-sound small{font-size:var(--fs-caption)}.lookup-section{margin-top:20px}.lookup-section h3{font-size:var(--fs-caption);letter-spacing:1.6px;color:light-dark(#919b88,#5d6654);text-transform:uppercase;margin-bottom:8px;font-weight:600}.lookup-translation{font-size:16px;line-height:1.6}.lookup-pending{color:var(--muted);font-size:13px;line-height:1.7}.lookup-link{color:var(--accent);text-underline-offset:3px;margin-top:8px;font-size:13px;text-decoration:underline;display:inline-block}.lookup-retry{min-height:32px;margin-top:8px;padding:4px 12px;font-size:12px}.lookup-senses{gap:10px;margin:0;display:grid}.lookup-senses>div{grid-template-columns:auto 1fr;align-items:baseline;gap:10px;display:grid}.lookup-senses dt{font-size:var(--fs-caption);color:light-dark(#87967b,#616f55);white-space:nowrap;font-style:italic}.lookup-senses dd{margin:0;font-size:14px;line-height:1.55}.lookup-senses em{color:var(--muted);margin-top:3px;font-size:13px;display:block}.lookup-close{width:100%;min-height:44px;margin-top:10px;padding:11px;font-size:13px;display:block}.lookup-save{box-sizing:border-box;background:var(--accent-fill);border:1px solid var(--accent-fill);border-radius:var(--r-md);width:100%;min-height:46px;color:var(--accent-ink);text-align:center;margin-top:2px;padding:11px 16px;font-size:14px;font-weight:600;line-height:1.3;display:block}.lookup-save:hover{background:var(--body);border-color:var(--body)}.lookup-save:disabled{opacity:.65;cursor:default}.lookup-save-error{color:var(--danger);margin:8px 0 0;font-size:12px;line-height:1.5}@media (max-width:600px){.lookup-dialog-body{padding:20px 18px 18px}.lookup-dialog h2{font-size:22px}}@media (max-width:900px){.mode-row{grid-template-columns:1fr}.loop-controls{padding:18px}}@media (max-width:600px){.run-status{margin:0 20px 10px}.transport{gap:8px}.mark-button{font-size:var(--fs-caption);padding:9px}.setting-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.setting{min-width:0}.setting .select,.setting select{width:100%;min-width:0}}.mic-select{font-size:var(--fs-caption);color:var(--muted);flex-basis:100%;order:2;align-items:center;gap:9px;display:flex}.mic-select .select,.mic-select select{flex:1;min-width:0}.mic-missing{color:var(--danger);flex-basis:100%;order:2;align-items:center;gap:9px;font-size:12px;display:flex}.mic-hint{font-size:var(--fs-caption);color:var(--muted);flex-basis:100%;order:5;line-height:1.7}.mic-meter.is-quiet i{background:light-dark(#c9a04f,#724c00)}.record-area .record-button{order:7}.record-area .text-button{order:8}.prefer-button{color:light-dark(#78846f,#74806b);align-items:center;gap:6px;min-height:40px;padding:9px 12px;font-size:12px;display:inline-flex}.prefer-button.pinned{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.signal-note{font-size:var(--fs-caption);border-radius:10px;align-items:flex-start;gap:9px;margin-top:12px;padding:11px 13px;line-height:1.8;display:flex}.signal-note svg{flex:none;margin-top:2px}.signal-warning{color:var(--danger)}.signal-info,.signal-warning{background:var(--surface-subtle);border:1px solid var(--edge)}.signal-info{color:light-dark(#8a7844,#93814d)}.rating-row{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;font-size:12px;display:flex}.rating-chip{color:light-dark(#78846f,#74806b);border-radius:9px;min-height:40px;padding:9px 13px;font-size:12px}.rating-chip.selected{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.capture-conditions{font-size:var(--fs-caption);color:light-dark(#a0a993,#515945);margin-top:12px;line-height:1.7}.session-summary{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);margin-top:22px;padding:22px 25px}.session-summary .card-heading h3{margin-top:7px;font-size:14px}.session-summary .card-heading button{min-height:42px;padding:10px 14px;font-size:12px}.summary-figures{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px;display:grid}.admin-figures b,.summary-figures b{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:25px;font-weight:400;display:block}.admin-figures span,.summary-figures span{font-size:var(--fs-caption);color:var(--muted);margin-top:5px;line-height:1.5;display:block}.rating-breakdown{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.rating-tally{background:var(--surface-subtle);color:var(--muted);border-radius:5px;padding:5px 9px}.rating-tally.confident{background:var(--soft);color:var(--accent)}.rating-tally.again{background:var(--danger-soft);color:var(--danger)}.summary-nudge{color:var(--muted);align-items:flex-start;gap:9px;margin-top:16px;font-size:12px;line-height:1.8;display:flex}.summary-nudge svg{color:light-dark(#7c9c68,#557341);flex:none;margin-top:3px}.summary-note{font-size:var(--fs-caption);color:light-dark(#a0a993,#515945);margin-top:14px;line-height:1.8}@media (max-width:900px){.summary-figures{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.prefer-button,.rating-chip{min-height:44px}.session-summary{padding:20px}}.confirm-dialog-field{font-size:var(--fs-small);color:var(--ink);gap:8px;margin-top:20px;font-weight:600;display:grid}.confirm-dialog-field input{border:1px solid var(--edge-strong);border-radius:var(--r-md);background:var(--panel);width:100%;min-height:48px;color:var(--ink);font:inherit;padding:10px 14px;font-size:16px;font-weight:400}.confirm-dialog-field input:focus-visible{border-color:var(--accent);outline:2px solid var(--focus);outline-offset:2px}.privacy-advanced{margin-bottom:14px}.privacy-advanced>summary{cursor:pointer;min-height:44px;color:var(--accent);align-items:center;padding:0 4px;font-size:13px;font-weight:600;display:flex}.privacy-advanced[open]>summary{margin-bottom:12px}.settings-danger{border-color:var(--edge);background:var(--panel)}.settings-page .privacy-inline-actions label{color:var(--muted);gap:6px;font-size:12px;display:grid}.settings-page .button.danger{background:var(--danger);border-color:var(--danger);color:var(--panel)}.settings-page .button{min-height:var(--control);font-size:var(--fs-body);padding:0 14px}.settings-card .card-heading h2{font-size:var(--fs-h3);margin-top:0;font-weight:600}.settings-note{color:var(--muted);max-width:70ch;margin-top:14px;font-size:12px;line-height:1.9}.settings-note code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--fs-caption);background:var(--surface-subtle);border-radius:4px;padding:2px 5px}.settings-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.settings-actions button:not(.primary-action){min-height:44px;padding:11px 15px;font-size:12px}.settings-hint{font-size:var(--fs-caption);color:var(--muted)}.restore-block{border-top:1px solid var(--edge);margin-top:26px;padding-top:22px}.restore-block h3{font-size:13px;font-weight:600}.restore-block .file-drop{margin-top:16px}.restore-outcome{background:var(--soft);color:var(--accent);border-radius:10px;align-items:flex-start;gap:9px;margin-top:16px;padding:12px 14px;font-size:12px;line-height:1.8;display:flex}.restore-outcome svg{flex:none;margin-top:2px}.usage-figures{grid-template-columns:repeat(4,1fr);gap:16px;margin-top:20px;display:grid}.usage-figures b{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:24px;font-weight:400;display:block}.usage-figures span{margin-top:5px;line-height:1.5;display:block}.usage-bar,.usage-figures span{font-size:var(--fs-caption);color:var(--muted)}.usage-bar{margin-top:20px}.usage-bar .progress-track{margin-bottom:8px}@media (max-width:900px){.usage-figures{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.settings-card{padding:20px}.usage-figures{grid-template-columns:1fr 1fr;gap:14px}}.draft-recovery{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:var(--radius);align-items:flex-start;gap:15px;margin-bottom:20px;padding:20px 22px;display:flex}.draft-icon{background:var(--warning-soft);color:light-dark(#8a7844,#93814d);border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.draft-recovery>div{flex:1;min-width:0}.draft-recovery strong{font-size:12px;font-weight:600;display:block}.draft-recovery>div>p{color:light-dark(#857e6a,#837c68);max-width:70ch;margin-top:7px;font-size:12px;line-height:1.9}.draft-list{gap:9px;margin:15px 0 0;padding:0;list-style:none;display:grid}.draft-list li{background:var(--panel);border:1px solid var(--edge);border-radius:10px;flex-wrap:wrap;align-items:center;gap:12px;padding:11px 13px;display:flex}.draft-copy{flex:1;min-width:160px}.draft-copy strong{color:var(--ink);font-size:12px;font-weight:400}.draft-copy small{font-size:var(--fs-caption);color:light-dark(#9a9280,#6d6655);margin-top:5px;display:block}.draft-actions{flex-wrap:wrap;gap:7px;display:flex}.draft-actions button{font-size:var(--fs-caption);align-items:center;gap:6px;min-height:40px;padding:9px 11px;display:inline-flex}@media (max-width:600px){.draft-recovery{padding:18px}.draft-actions button{min-height:44px}}.skip-link{z-index:5;background:var(--panel);border:1px solid var(--accent);color:var(--accent);border-radius:9px;padding:12px 16px;font-size:12px;position:absolute;top:12px;left:-9999px}.skip-link:focus{left:12px}@media (prefers-reduced-motion:reduce){.sentence-list{scroll-behavior:auto}}.review-figures{grid-template-columns:1fr;gap:4px;display:grid}.review-figures b{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:26px;font-weight:400;display:block}.review-figures span{font-size:var(--fs-caption);color:var(--muted);margin-top:5px;display:block}.review-note{color:var(--muted);margin-top:16px;font-size:12px;line-height:1.8}.review-card{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-float);border:0;margin-top:8px;padding:26px}.review-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.review-actions button:not(.play-button){min-height:44px;padding:11px 15px;font-size:12px}.review-section-title{font-size:var(--fs-h3);letter-spacing:-.1px;margin:0 0 10px;font-weight:600}.stage-actions{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:12px;display:flex}.note-list{gap:14px;margin:0;padding:0;list-style:none;display:grid}.note-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:18px;padding:20px 22px;display:flex}.note-body{flex:1;min-width:240px}.note-body strong{font-family:var(--font-display);font-size:19px;font-weight:400;line-height:1.45;display:block}.note-body>p{color:var(--muted);margin-top:9px;font-size:12px;line-height:1.8}.note-own{color:var(--muted);border-left:2px solid var(--edge);padding-left:11px}.note-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px}.note-meta,.note-missing{font-size:var(--fs-caption);margin-top:13px;display:flex}.note-missing{color:light-dark(#8a7844,#93814d);background:var(--surface-subtle);border:1px solid var(--edge);border-radius:9px;align-items:flex-start;gap:8px;padding:10px 12px;line-height:1.8}.note-missing svg{flex:none;margin-top:2px}.note-actions{align-items:center;gap:8px;display:flex}.note-actions button{place-items:center;width:44px;height:44px;padding:0;display:grid}@media (max-width:600px){.review-figures span{font-size:12px}}@media (max-width:900px){.review-figures{grid-template-columns:1fr 1fr}}@media (max-width:600px){.review-card{padding:20px}.note-card{padding:18px}}.auth-header{border-bottom:1px solid var(--edge);justify-content:space-between;align-items:center;gap:20px;padding:24px 32px;display:flex}.auth-header .brand{font-size:24px}.auth-header .brand,.auth-header a{align-items:center;min-height:44px;display:inline-flex}.auth-shell .auth-main{width:100%;margin-left:0}.auth-shell .auth-page{padding:48px var(--gutter);max-width:none}.guest-continue{text-align:center;border:1px solid var(--edge);min-height:44px;color:var(--accent);border-radius:9px;margin-top:22px;padding:12px;display:block}.guest-continue:hover{background:var(--soft)}.catalog-page .page-heading{background:0 0;border:0;max-width:none;padding:0}.catalog-page .page-heading p{max-width:64ch}.catalog-page .catalog-stats{gap:18px;margin-top:18px}.catalog-page .catalog-stats span{color:var(--muted);background:0 0;border:0;padding:0;font-size:14px}.level-intro{margin-top:30px;font-size:17px;font-weight:600}.level-intro span{color:var(--muted);margin-left:12px;font-size:14px;font-weight:400}.catalog-page .prompt-label,.catalog-page .section-kicker{color:var(--muted);letter-spacing:1.2px;font-size:12px}.catalog-page .lesson-list{grid-auto-rows:max-content;align-content:start}.catalog-page .lesson-detail{min-width:0;padding:30px;box-shadow:0 8px 32px #25372e05}.catalog-page .question-count{font-size:var(--fs-caption);color:var(--muted)}.catalog-page .prompt-block{padding:28px 0 24px}.catalog-page .prompt-block h3{color:var(--body);font-size:clamp(28px,2.5vw,36px);line-height:1.4}.catalog-page .prompt-block p{color:var(--muted);font-size:17px;line-height:1.65}.reading-practice{background:var(--surface-subtle);border:1px solid var(--edge);border-radius:var(--radius-lg);padding:26px;scroll-margin:30px}.reading-practice:focus-visible{outline-offset:3px;outline:2px solid light-dark(#83a67b,#486941)}.reading-caption{letter-spacing:1px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:18px;font-size:12px;display:flex}.reading-caption span:last-child{letter-spacing:0;font-size:14px}.reading-practice .answer-en{font-family:var(--font-display);color:var(--body);overflow-wrap:anywhere;font-size:clamp(24px,2.1vw,30px);line-height:1.65}.reading-start{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.reading-start p{color:var(--muted);max-width:26ch;font-size:14px;line-height:1.6}.learn-primary,.reading-controls .learn-primary{background:var(--accent-fill);border:1px solid var(--accent-fill);border-radius:8px;align-items:center;gap:12px;min-height:44px;padding:10px 18px;font-size:15px;font-weight:600;display:inline-flex}.learn-primary:hover:not(:disabled),.reading-controls .learn-primary:hover:not(:disabled){border-color:var(--accent-hover)}.reading-translation{border-top:1px solid var(--edge);color:var(--accent);margin-top:24px;padding-top:16px;font-size:16px;line-height:1.7}.reading-translation summary{cursor:pointer;min-height:44px;padding:11px 0;font-size:15px}.reading-translation p{margin-top:12px}.reading-note{color:var(--muted);margin-top:14px;font-size:13px;line-height:1.6}.reading-track{gap:6px;height:8px;display:flex}.reading-track i{border-radius:var(--pill);background:var(--edge);height:100%;transition:background-color var(--t-base) ease;flex:1}.reading-track i.is-done{background:var(--accent-fill)}.reading-hint{border-radius:var(--r-md);background:var(--accent-soft);color:var(--body);font-size:var(--fs-small);text-align:left;align-items:flex-start;gap:8px;margin-top:14px;padding:10px 12px;line-height:1.5;display:flex}.reading-hint svg{color:var(--accent);flex:none;margin-top:1px}.reading-stage{min-height:200px;padding:24px 0}.reading-position{color:var(--muted);margin-bottom:12px;font-size:14px;display:block}.reading-stage>p:last-child{color:var(--muted);margin-top:16px;font-size:15px;line-height:1.6}.reading-controls{flex-wrap:wrap;justify-content:space-between;gap:10px;display:flex}.reading-controls button{min-height:48px;padding:12px 16px;font-size:15px}.reading-reset{text-underline-offset:4px;color:var(--muted);background:0 0;border:0;margin-top:16px;padding:6px 0;font-size:14px;text-decoration:underline}.catalog-page .follow-up-block summary,.catalog-page .tts-block summary{color:var(--accent);min-height:44px;padding:12px 0;font-size:16px}.catalog-page .follow-up-block ol{color:var(--body);font-size:18px;line-height:1.7}.catalog-page .tts-block pre{color:var(--accent);font-size:15px}.auth-form label,.auth-intro,.auth-switch{color:var(--muted);font-size:16px;line-height:1.6}.auth-form input{min-height:50px;font-size:17px}@media (max-width:1100px){.catalog-page .lesson-detail,.reading-practice{padding:22px}}@media (max-width:900px){.catalog-page .lesson-list{max-height:260px}}@media (max-width:600px){.catalog-page .catalog-stats{gap:10px 16px}.catalog-page .lesson-detail,.reading-practice{padding:20px 16px}.level-intro span{margin:8px 0 0;display:block}.reading-controls button{flex:1;justify-content:center}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reading-track i{transition:none}}#current-lesson{scroll-margin-top:24px}@media (max-width:900px){.catalog-page .lesson-detail{grid-row:1}}.topic-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:0;display:flex}.level-chips{flex-wrap:wrap;gap:8px;display:flex}.level-chip strong{color:var(--ink);font-weight:600}.level-chip.selected strong{color:inherit}.topic-search{border:1px solid var(--edge);background:var(--panel);max-width:360px;color:var(--muted);border-radius:8px;flex:240px;align-items:center;gap:8px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.topic-search input{min-width:0;color:var(--ink);font-size:var(--fs-body);min-height:calc(var(--control) - 2px);background:0 0;border:0;flex:1}@media (max-width:900px){.search-field input,.topic-search input{font-size:16px}}@media (max-width:600px){.search-field input,.topic-search input{min-height:44px}}.topic-search input:focus{outline:none}.topic-search input::placeholder{color:var(--faint)}.topic-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge)}.group-chips{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:16px;display:flex}.chip-row-label{font-size:var(--fs-caption);color:var(--muted);flex:none;min-width:48px;margin-right:2px}.group-chip{min-height:var(--control-sm);border-radius:var(--pill);color:var(--muted);font-size:var(--fs-small);background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.group-chip strong{color:inherit;font-weight:500}.group-chip small{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.group-chip:hover{background:var(--surface-subtle);color:var(--ink)}.group-chip.selected{background:var(--soft);color:var(--accent)}.group-chip.selected strong{font-weight:600}.group-chip.selected small{color:var(--accent);opacity:.8}.topic-grid-heading{flex-wrap:wrap;align-items:baseline;gap:12px;margin-top:28px;display:flex}.topic-grid-heading h2{font-size:var(--fs-h2);letter-spacing:-.2px;color:var(--ink);font-weight:600}.topic-grid-heading span{font-size:var(--fs-small);color:var(--muted)}.topic-grid{grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:14px;margin-top:14px;padding:0;list-style:none;display:grid}.topic-empty{border:1px dashed var(--edge-strong);border-radius:var(--radius);text-align:center;font-size:var(--fs-body);color:var(--muted);margin-top:24px;padding:28px}.group-chip:focus-visible,.level-chip:focus-visible,.topic-card:focus-visible,.topic-more:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.topic-more{width:100%;min-height:var(--control);font-size:var(--fs-body);color:var(--accent);background:var(--panel);border:1px solid var(--edge);border-radius:8px;justify-content:center;align-items:center;gap:10px;margin-top:16px;padding:8px 20px;font-weight:500;display:flex}.topic-more:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--edge-strong)}.topic-more small{font-size:var(--fs-caption);color:var(--muted);background:var(--surface-subtle);border-radius:var(--pill);white-space:nowrap;padding:2px 8px;font-weight:500}@media (max-width:600px){.topic-search{max-width:none}.topic-grid{grid-template-columns:1fr}.level-chips{flex-wrap:wrap;gap:6px}.topic-header{grid-template-columns:auto 1fr;align-items:center;gap:10px 12px;margin-top:20px;display:grid}.catalog-page .catalog-stats{flex-wrap:wrap;gap:6px 16px;display:flex}.catalog-page .catalog-stats span{white-space:nowrap}.topbar-actions .auth-link{display:inline-flex}.sidebar .brand,.topbar-actions .auth-link{align-items:center;min-height:44px}}.offline-pill{font-size:var(--fs-caption);color:var(--muted);background:var(--soft);border-radius:5px;align-items:center;gap:5px;padding:3px 7px;display:inline-flex}.offline-pill.is-missing{color:light-dark(#8a7844,#93814d);background:var(--surface-subtle)}.offline-figures{flex-wrap:wrap;gap:18px 28px;margin-top:4px;display:flex}.offline-figures div{gap:2px;display:grid}.offline-figures b{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;font-size:22px;font-weight:400}.offline-figures span{color:var(--muted);font-size:12px}.offline-missing{color:light-dark(#8a7844,#93814d);font-size:12px;line-height:1.7}.outbox-badge{border:1px solid var(--edge-strong);background:var(--surface-subtle);color:light-dark(#7b6b3c,#a29262);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:6px 11px;font-size:12px;display:inline-flex}.outbox-badge:hover{background:var(--warning-soft)}.outbox-label{min-width:0;color:var(--body);overflow-wrap:anywhere;flex:180px;font-size:13px;font-weight:600}@media (max-width:600px){.outbox-badge{font-size:var(--fs-caption);padding:6px 9px}}.keep-lesson{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);flex-wrap:wrap;align-items:center;gap:14px;margin-top:20px;padding:16px 18px;display:flex}.keep-lesson.is-kept{border-color:var(--edge-strong);background:var(--surface-subtle)}.keep-lesson>div{flex:260px;min-width:0}.keep-lesson strong{color:var(--body);font-size:15px;font-weight:600;display:block}.keep-lesson p{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.65}.keep-lesson-error{color:var(--danger)}.keep-lesson button{flex:none;align-items:center;gap:7px;min-height:44px;padding:11px 15px;font-size:13px;display:inline-flex}.kept-lesson-list{gap:8px;margin:22px 0 0;padding:0;list-style:none;display:grid}.kept-lesson-list button{border:1px solid var(--edge);background:var(--panel);text-align:left;width:100%;min-height:48px;color:var(--body);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 14px;padding:13px 16px;font-size:14px;display:flex}.kept-lesson-list button.selected{border-color:var(--accent);background:var(--surface-subtle);font-weight:600}.kept-lesson-list small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.download-list{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.download-list li{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 14px;display:flex}.download-list a{min-width:0;color:var(--body);overflow-wrap:anywhere;flex:180px;font-size:13px;font-weight:600}.download-list a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.download-list span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.download-list button{flex:none;align-items:center;gap:6px;min-height:44px;padding:10px 13px;font-size:12px;display:inline-flex}@media (max-width:600px){.download-list li{gap:10px}.download-list button,.keep-lesson button{justify-content:center;width:100%}}.waveform-card{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);gap:16px;margin-top:18px;padding:22px 24px;display:grid}.waveform-card .card-heading h3{margin-top:6px;font-size:15px;font-weight:600}.waveform-empty{justify-items:start;gap:14px;display:grid}.waveform-empty p{color:var(--muted);max-width:62ch;font-size:13px;line-height:1.7}.waveform-row{gap:8px;display:grid}.waveform-labels{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:12px;display:flex}.waveform-labels strong{color:var(--accent);font-size:13px}.waveform-labels span{font-variant-numeric:tabular-nums}.waveform-track{border:1px solid var(--soft);background:var(--surface-subtle);border-radius:12px;height:72px;padding:6px}.waveform-signal{min-width:2px;height:100%}.waveform-canvas{width:100%;height:100%;display:block}.waveform-canvas,.waveform-signal.is-attempt .waveform-canvas{fill:var(--faint)}.waveform-flat{border-top:2px solid var(--edge-strong);height:100%}.waveform-offset{gap:12px}.waveform-offset,.waveform-offset label{flex-wrap:wrap;align-items:center;display:flex}.waveform-offset label{color:light-dark(#7d8a74,#6d7a64);gap:10px;font-size:12px}.waveform-offset input[type=range]{width:min(320px,60vw);accent-color:var(--accent)}.waveform-offset output{font-variant-numeric:tabular-nums;color:var(--accent);min-width:72px;font-size:13px}.waveform-note{color:var(--muted);max-width:74ch;font-size:12px;line-height:1.7}.waveform-error{color:var(--danger);font-size:13px;line-height:1.7}@media (max-width:600px){.waveform-card{padding:18px 16px}.waveform-track{height:60px}.waveform-offset input[type=range]{width:100%}}.then-and-now-card{border:1px solid var(--edge-strong);background:var(--surface-subtle);border-radius:var(--radius);gap:16px;margin-top:18px;padding:22px 24px;display:grid}.then-and-now-card .card-heading h3{margin-top:6px;font-size:15px;font-weight:600}.then-and-now-pair{color:light-dark(#7d9770,#5c744f);align-items:center;gap:14px;display:flex}.then-and-now-take{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);min-width:0;color:var(--muted);font-variant-numeric:tabular-nums;flex:1 1 0;gap:4px;padding:14px 16px;font-size:12px;display:grid}.then-and-now-take strong{color:var(--accent);font-size:15px}.then-and-now-take.is-now{border-color:var(--edge-strong);background:var(--soft)}.then-and-now-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;display:flex}.then-and-now-play{background:var(--accent-fill);border-color:var(--accent-fill);min-height:48px;color:var(--accent-ink);border-radius:12px;align-items:center;gap:10px;padding:12px 18px;font-size:15px;font-weight:600;display:inline-flex}.then-and-now-play:hover:not(:disabled){background:var(--accent-hover)}.then-and-now-actions label{color:light-dark(#7d8a74,#6d7a64);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.language-chips{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}:lang(ko):lang(ko){font-family:"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR",var(--font-ui)}:lang(ja):lang(ja){font-family:"Hiragino Sans","Yu Gothic","Noto Sans JP",var(--font-ui)}:lang(zh):lang(zh){font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",var(--font-ui)}.not-found{min-height:60vh}.not-found .page-heading p{max-width:48ch}.not-found-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}@media (max-width:600px){.not-found-actions a{flex:100%;justify-content:center}.then-and-now-card{padding:18px 16px}.then-and-now-pair{flex-direction:column;align-items:stretch}.then-and-now-pair>svg{align-self:center;transform:rotate(90deg)}.then-and-now-play{justify-content:center;width:100%}.then-and-now-actions label{width:100%}.then-and-now-actions .select,.then-and-now-actions select{flex:1}}.recordings-card .saved-takes{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:22px;margin-top:26px;display:grid}.recordings-card .take-select{flex-wrap:wrap;gap:14px;min-width:0;display:flex}.recordings-card .take-icon{border-radius:var(--radius);color:light-dark(#53784a,#789f6f);flex:none;width:46px;height:46px}.recordings-card .take-select label{min-width:180px;color:var(--muted);flex:1;font-size:14px;line-height:1.6}.recordings-card .take-select .select,.recordings-card .take-select select{width:100%;max-width:420px;margin-top:4px;display:block}.recordings-card .prefer-button{white-space:nowrap;border-radius:12px;flex:none;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-size:14px;display:inline-flex}.recordings-card .take-actions{border-bottom:1px solid var(--edge);flex-wrap:wrap;gap:10px;padding-bottom:22px;display:flex}.recordings-card .take-actions button{white-space:nowrap;border-radius:12px;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;font-size:16px}.recordings-card .take-actions .take-replay{background:var(--accent);border-color:var(--accent);color:light-dark(#fff,#1c2520);font-weight:600}.recordings-card .take-actions .take-replay:hover:not(:disabled){background:var(--body)}.recordings-card .take-actions .compare-button{background:var(--surface-subtle);color:var(--accent)}.recordings-card .take-actions button[aria-label]{flex:none;width:48px;padding:12px}.recordings-card .take-actions button[aria-label="Tải bản ghi xuống"]{margin-left:auto}.recordings-card .rating-row{background:var(--surface-subtle);border:1px solid var(--soft);border-radius:var(--radius);gap:10px;margin:0;padding:18px 20px}.recordings-card .rating-row>span{color:var(--accent);margin-right:auto;font-size:15px;font-weight:600}.recordings-card .rating-chip{background:var(--panel);min-height:44px;color:var(--muted);border-radius:10px;padding:10px 16px;font-size:15px}.recordings-card .rating-chip.selected{background:var(--accent);color:light-dark(#fff,#1c2520);border-color:var(--accent)}.recordings-card .signal-note{border-radius:12px;margin:0;padding:14px 18px;font-size:14px;line-height:1.7}.recordings-card .signal-note svg{flex:none;margin-top:4px}.recordings-card .stale-note{margin:0;font-size:14px;line-height:1.7}.recordings-card .take-details{color:var(--muted);font-size:14px;line-height:1.7}.recordings-card .take-details summary{cursor:pointer;width:fit-content;padding:4px 0}.recordings-card .capture-conditions{color:var(--muted);margin-top:8px;font-size:13px}.recordings-card button:focus-visible,.take-details summary:focus-visible{outline-offset:3px;outline:2px solid light-dark(#83a67b,#486941)}@media (max-width:600px){.recordings-card .saved-takes{gap:18px}.recordings-card .take-select{grid-template-columns:46px minmax(0,1fr);align-items:center;display:grid}.recordings-card .take-select label{width:100%;min-width:0}.recordings-card .take-select .select,.recordings-card .take-select select{max-width:100%}.recordings-card .prefer-button{grid-column:2;justify-self:start;margin-left:0}.recordings-card .take-actions button{padding:12px;font-size:14px}.recordings-card .take-actions .compare-button,.recordings-card .take-actions .take-replay{flex:calc(50% - 10px)}.recordings-card .take-actions button[aria-label="Tải bản ghi xuống"]{margin-left:0}.recordings-card .rating-row{padding:16px}.recordings-card .rating-row>span{width:100%;margin-bottom:4px}.recordings-card .rating-chip{flex:auto;padding:10px 12px;font-size:14px}}.account-learning-actions{background:var(--surface-subtle);border:1px solid var(--edge);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:18px 0;padding:10px 16px;display:flex}.account-action-done{min-height:36px;font-size:var(--fs-small);color:var(--accent);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.account-action-note{flex:220px;min-width:0}.account-callout button,.account-learning-actions button{min-height:44px;font-size:var(--fs-body);border-radius:10px;padding:10px 16px}.account-learning-actions button{color:var(--accent);background:var(--panel)}.account-learning-actions>p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.account-learning-actions .account-error{flex:1 0 100%}.account-callout{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);margin:24px 0;padding:20px 24px}.account-callout h2{font-size:var(--fs-h3);font-weight:600;line-height:1.4}.account-callout p{font-size:var(--fs-small);color:var(--muted);line-height:var(--lh-body);max-width:65ch;margin:6px 0 14px}.account-callout .text-button{margin:12px 0 0 18px;display:inline-block}.account-saved-section{margin:22px 0 30px}.account-section-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;margin-bottom:12px;display:flex}.account-section-heading h2{font-size:15px;font-weight:600}.account-section-heading h2 span{color:var(--muted);font-weight:400}.account-section-tools{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.account-section-tools .search-field{min-width:240px}.account-note-editor .text-button,.account-section-tools .text-button,.saved-item-meta .text-button,.saved-item-unsave{min-height:36px;color:var(--accent);border-radius:8px;padding:6px 8px;font-size:12px}.saved-item-unsave{color:var(--muted)}@media (hover:hover){.account-note-editor .text-button:hover,.account-section-tools .text-button:hover,.saved-item-meta .text-button:hover,.saved-item-unsave:hover{background:var(--soft)}}.account-saved-card{border:1px solid var(--edge);background:var(--panel);border-radius:12px;gap:8px;min-width:0;margin-top:8px;padding:16px 20px;display:grid}.saved-item-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.saved-item-head h3{overflow-wrap:anywhere;flex:1;min-width:0;font-size:15px;font-weight:600;line-height:1.5}.saved-item-head .saved-item-unsave{flex:none;margin:-6px -8px -6px 0}.account-saved-text{min-width:0;font-family:var(--font-display);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);flex:1;margin:0;font-size:19px;line-height:1.45}.saved-item-lesson .account-saved-text{font-family:var(--font-ui);margin-top:10px;font-size:15px;line-height:1.8}.account-translation{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin:0;font-size:13px;line-height:1.7}.saved-item-lesson summary{cursor:pointer;color:var(--accent);align-items:center;gap:6px;min-height:36px;font-size:12px;display:flex}.saved-item-lesson summary:before{content:"▸";font-size:var(--fs-caption)}.saved-item-lesson[open] summary:before{content:"▾"}.saved-item-lesson .account-translation{margin-top:8px}.account-note-editor{flex-wrap:wrap;align-items:flex-start;gap:6px;display:flex}.account-note-editor textarea{width:100%;min-width:0;font:inherit;border:1px solid #0000;border-left:2px solid var(--edge);color:var(--ink);resize:none;field-sizing:content;background:0 0;border-radius:0 8px 8px 0;flex:1;min-height:36px;padding:7px 10px;font-size:13px;line-height:1.6;overflow:hidden}.account-note-editor textarea::placeholder{color:light-dark(#a0a993,#515945)}.account-note-editor textarea:focus{border-color:var(--edge);border-left-color:var(--accent);background:var(--panel)}.account-note-editor .text-button:disabled{visibility:hidden}.account-note-editor .account-note-conflict{flex-basis:100%}.saved-item-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:2px 10px;font-size:12px;display:flex}.saved-item-meta a{color:var(--accent);text-underline-offset:3px;align-items:center;min-height:36px;text-decoration:underline;display:inline-flex}.account-note-conflict{border:1px solid var(--edge-strong);background:var(--surface-subtle);border-radius:12px;gap:12px;padding:16px;font-size:14px;display:grid}.account-note-conflict>p{margin:0;line-height:1.7}.account-note-version{background:var(--panel);border:1px solid var(--edge);border-radius:10px;gap:6px;padding:12px;display:grid}.account-note-origin{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:12px}.account-note-text{white-space:pre-wrap;color:var(--ink);margin:0;line-height:1.7}.account-note-version button{justify-self:start}.account-empty{color:var(--muted);padding:12px 0;font-size:13px;line-height:1.8}.account-empty a{color:var(--accent);text-decoration:underline}.account-review-card{margin:18px 0}.account-error,.account-learning-actions .account-error{color:var(--danger)}.account-alert{background:var(--warning-soft);color:var(--warning);padding:14px 24px;font-size:15px}.account-alert button{margin-left:12px;padding:8px}.account-user{min-width:0;max-width:180px;color:var(--ink);align-items:center;gap:6px;font-size:14px;display:inline-flex}.account-user:hover{color:var(--accent)}.account-user svg{color:var(--muted);flex:none}@media (max-width:600px){.account-saved-card{padding:14px}.account-callout{padding:20px 16px}.account-section-tools{width:100%}.account-section-tools .search-field{flex:1;min-width:0}.account-note-editor .text-button,.account-section-tools .text-button,.saved-item-meta .text-button,.saved-item-meta a,.saved-item-unsave{min-height:44px}.account-saved-text{font-size:17px}.account-learning-actions{padding:16px}.account-action-buttons button{flex:auto}.account-callout .text-button{margin-left:0}.account-section-heading h2{font-size:15px}.account-review-ratings button{flex:auto}.account-user{max-width:150px}.topbar-actions{gap:10px}.topbar-actions .text-button{white-space:nowrap}}.legal-page{font-size:17px;line-height:1.75}.legal-head{border-bottom:1px solid var(--edge);max-width:72ch;padding-bottom:20px}.legal-head h1{margin-block:6px 10px}.legal-contact{font-size:var(--fs-body);color:var(--muted);margin:0}.legal-layout{grid-template-columns:220px minmax(0,72ch);align-items:start;gap:48px;margin-top:28px;display:grid}.legal-toc{top:calc(var(--topbar) + 24px);font-size:var(--fs-small);line-height:1.5;position:sticky}.legal-toc-title{font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-weight:600;display:block}.legal-toc ol{counter-reset:toc;border-left:1px solid var(--edge);margin:0;padding:0;list-style:none}.legal-toc li{counter-increment:toc}.legal-toc a{min-height:36px;color:var(--muted);border-left:2px solid #0000;align-items:center;gap:8px;margin-left:-1px;padding:4px 12px;text-decoration:none;display:flex}.legal-toc a:before{content:counter(toc);font-variant-numeric:tabular-nums;color:var(--accent)}.legal-toc a:hover{color:var(--ink);border-left-color:var(--accent)}.legal-body>:first-child{margin-top:0}.legal-summary{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);margin-bottom:24px;padding:18px 22px}.legal-page .legal-summary h2{font-size:var(--fs-h3);margin:0 0 8px}.legal-summary ul{margin:0;padding-left:20px;list-style:outside}.legal-summary li::marker{color:var(--accent)}.legal-summary li+li{margin-top:6px}.legal-section{scroll-margin-top:calc(var(--topbar) + 16px);padding-top:8px}.legal-page .legal-part h3{font-size:var(--fs-body);margin:20px 0 4px;font-weight:600}.legal-part p{margin-top:0}@media (max-width:1100px){.legal-layout{grid-template-columns:minmax(0,1fr);gap:20px}.legal-toc{position:static}}.legal-page h1{font-size:clamp(32px,4vw,48px);line-height:1.2}.legal-page h2{margin-top:28px;font-size:25px}.legal-page h3{margin-top:24px;font-size:21px}.legal-page p{margin-block:14px}.legal-body a,.legal-contact a,.private-upload a{text-underline-offset:4px;text-decoration:underline}.privacy-panel{border:1px solid var(--edge);background:var(--panel);border-radius:18px;min-width:0;margin-block:24px;padding:24px}.privacy-panel fieldset{border:0;min-width:0;padding:0}.privacy-panel legend{font-weight:700}.privacy-panel label:not(.consent-check){gap:8px;margin-block:14px;display:grid}.privacy-panel input:not([type=checkbox]),.privacy-panel textarea{width:100%;max-width:100%;color:var(--body);border:1px solid var(--edge-strong);font:inherit;background:light-dark(#fff,#1c2520);border-radius:10px;padding:12px}.privacy-panel .select,.privacy-panel select{width:100%}.privacy-panel .button{white-space:normal;margin:8px 12px 8px 0}.auth-form .consent-check,.consent-check{min-height:44px;color:var(--body);align-items:flex-start;gap:12px;margin-block:18px;font-size:17px;line-height:1.6;display:flex}.auth-form .consent-check input[type=checkbox],.consent-check input[type=checkbox]{width:22px;height:22px;min-height:22px;accent-color:var(--accent);flex:0 0 22px;margin-top:3px}.consent-check a{color:var(--accent);text-underline-offset:3px;font-weight:600;text-decoration:underline}.consent-check a:hover{text-decoration-thickness:2px}.consent-check a:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}.privacy-notice{background:var(--surface-subtle);color:var(--body);border-left:4px solid light-dark(#60804e,#729360);border-radius:8px;padding:18px}.private-file{border-top:1px solid var(--edge);overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:12px;padding-block:16px;display:flex}.private-file>div{flex:280px}.private-upload{grid-column:1/-1;width:100%;font-size:17px}.private-upload .privacy-panel{max-width:850px}@media (max-width:600px){.privacy-panel{padding:18px}.legal-page{font-size:16px}.legal-summary{padding:16px}}.admin-console .button,.legal-page .button,.privacy-center .button,.privacy-panel .button,.private-upload .button{border:1px solid var(--edge-strong);background:var(--surface-subtle);min-height:48px;color:var(--body);font:inherit;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:12px 18px;font-weight:600;display:inline-flex}.admin-console .button.primary,.legal-page .button.primary,.privacy-center .button.primary,.private-upload .button.primary{background:var(--accent);border-color:var(--accent);color:light-dark(#fff,#1c2520)}.admin-console .button:disabled,.legal-page .button:disabled,.privacy-center .button:disabled,.private-upload .button:disabled{opacity:.5;cursor:not-allowed}.admin-console .button:focus-visible,.legal-page .button:focus-visible,.privacy-center .button:focus-visible,.privacy-panel .button:focus-visible,.private-upload .button:focus-visible{outline-offset:3px;outline:3px solid light-dark(#527f40,#6d9c5b)}.auth-card-register{width:min(100%,540px)}.required-mark{color:var(--danger);margin-left:3px;font-weight:600}.auth-form .registration-hint{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.registration-roles{border:0;grid-template-columns:1fr 1fr;gap:10px;min-width:0;padding:0;display:grid}.registration-roles legend{color:var(--body);margin-bottom:10px;font-size:14px;font-weight:600}.auth-form .registration-roles label{border:1px solid var(--edge);cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:12px;font-size:14px;display:flex}.auth-form .registration-roles label:has(input:checked){background:var(--surface-subtle);border-color:light-dark(#60804e,#729360)}.auth-form .registration-roles input{width:18px;height:18px;min-height:18px;accent-color:var(--accent);flex:0 0 18px;padding:0}.registration-roles small{color:var(--muted);margin-top:3px;font-size:12px;display:block}.auth-card-register .consent-check{gap:10px;margin:0;font-size:14px;line-height:1.6}.auth-card-register .privacy-notice{margin:0;padding:12px 14px;font-size:13px;line-height:1.6}.registration-roles input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (max-width:480px){.auth-card-register{padding:24px 20px}.registration-roles{grid-template-columns:1fr}}.auth-card-login{border-radius:20px;width:min(100%,460px);padding:36px;box-shadow:0 12px 40px #29362008}.auth-card-login h1{margin-top:12px;font-size:34px;line-height:1.2}.auth-card-login .auth-intro{margin-top:12px;font-size:15px;line-height:1.65}.auth-card-login .auth-form{gap:20px;margin-top:28px}.auth-card-login .auth-form label{color:var(--body);font-size:14px;font-weight:600}.auth-card-login .auth-form input{border-radius:10px;font-size:16px}.auth-form input::placeholder{color:light-dark(#84907f,#677262)}.auth-password-field{gap:7px;display:grid}.auth-password-input{position:relative}.auth-form .auth-password-input input{padding-right:68px}.auth-password-input button{min-width:54px;min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:8px;font-size:13px;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.auth-password-input button:hover{background:var(--surface-subtle)}.auth-card-login .question-submit{border-radius:10px;width:100%;min-height:50px;margin:4px 0 0;font-size:16px}.auth-card .auth-switch{margin-top:24px;font-size:14px}.auth-forgot{justify-content:center;align-items:center;margin-top:-4px;font-size:14px;display:flex}.auth-forgot a{color:var(--muted);text-underline-offset:3px;padding:8px 4px;text-decoration:underline}.auth-intro b{color:var(--ink)}.auth-card .guest-continue{border:0;border-top:1px solid var(--edge);border-radius:0;justify-content:center;align-items:center;gap:12px;margin-top:24px;padding:18px 0 0;font-size:14px;display:flex}.auth-card .guest-continue:hover{text-underline-offset:4px;background:0 0;text-decoration:underline}.auth-card a:focus-visible,.auth-password-input button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media (max-width:480px){.auth-shell .auth-page{padding:28px 16px}.auth-card-login{padding:28px 22px}.auth-card-login h1{font-size:30px}.auth-header{padding:20px}}@media (min-width:901px){.sidebar{overscroll-behavior:contain;overflow-y:auto}.sidebar>*{flex-shrink:0}}.privacy-hero p{max-width:64ch;color:var(--muted);font-size:16px;line-height:1.7}.privacy-promises{flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none;display:flex}.privacy-promises li{border:1px solid var(--edge);background:var(--surface-subtle);color:var(--body);border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:13px;display:inline-flex}.privacy-promises li:before{content:"";background:var(--faint);border-radius:50%;width:6px;height:6px}.privacy-hero+.privacy-notice{margin-top:24px;font-size:15px;line-height:1.6}.privacy-layout{grid-template-columns:minmax(0,1fr) minmax(280px,340px);align-items:start;gap:18px 24px;margin-top:28px;display:grid}.privacy-main{gap:18px;min-width:0;display:grid}.privacy-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);min-width:0;margin:0;padding:24px 26px}.privacy-card h2,.privacy-card>legend{color:var(--body);font-size:19px;font-weight:600;line-height:1.35}.privacy-card>legend{float:left;width:100%;margin-bottom:14px;padding:0}.privacy-card>legend+*{clear:both}.privacy-card h3{color:var(--body);font-size:16px;font-weight:600}.privacy-card a{text-underline-offset:3px;text-decoration:underline}.privacy-card-lead{max-width:68ch;color:var(--muted);margin-top:6px;font-size:14px;line-height:1.7}.privacy-hint{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.65}.privacy-card label:not(.consent-check){color:var(--body);gap:8px;margin-top:16px;font-size:14px;font-weight:600;display:grid}.privacy-card input:not([type=checkbox]){border:1px solid var(--edge);background:var(--panel);width:100%;max-width:440px;min-height:46px;color:var(--body);font:inherit;border-radius:10px;padding:10px 12px;font-size:15px;font-weight:400}.privacy-card .select,.privacy-card select{width:100%;max-width:440px}.privacy-card input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.privacy-card .consent-check{gap:10px;margin:12px 0 0;font-size:14px;line-height:1.6}.privacy-card .consent-check input[type=checkbox]{flex-basis:20px;width:20px;height:20px;min-height:20px;margin-top:2px}.privacy-card .button{gap:8px;margin-top:18px;font-size:15px}.privacy-card .button.danger{background:var(--danger);border-color:var(--danger);color:var(--panel)}.privacy-card .privacy-notice{margin:14px 0 0;padding:12px 14px;font-size:13px;line-height:1.6}.privacy-facts{margin:14px 0 0}.privacy-facts>div{border-top:1px solid var(--edge);gap:3px;padding:11px 0;display:grid}.privacy-facts dt{color:light-dark(#6b7a6d,#7d8c7f);font-size:12px}.privacy-facts dd{color:var(--body);overflow-wrap:anywhere;gap:2px;margin:0;font-size:14px;font-weight:600;line-height:1.5;display:grid}.privacy-card a.privacy-link{min-height:44px;color:var(--accent);align-items:center;gap:6px;margin-top:14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.privacy-card a.privacy-link:hover{text-decoration:underline}.privacy-signin{border-color:var(--edge);background:linear-gradient(135deg,var(--surface-subtle),var(--surface-subtle));padding:32px}.privacy-signin h2{margin-top:10px;font-family:Georgia,Times New Roman,serif;font-size:28px;font-weight:400;line-height:1.3}.privacy-controls{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.privacy-controls li{color:var(--body);align-items:center;gap:10px;font-size:15px;display:flex}.privacy-controls svg{color:light-dark(#4f7a52,#729e74);flex:none}.privacy-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px;display:flex}.privacy-card .privacy-actions a{min-height:46px;padding:12px 22px;font-size:15px;text-decoration:none}.privacy-subsection{border-top:1px solid var(--edge);margin-top:24px;padding-top:20px}.privacy-inline-actions{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:14px;display:flex}.privacy-inline-actions>label,.privacy-inline-actions>select{flex:260px;max-width:440px}.privacy-card .privacy-inline-actions .button,.privacy-card .privacy-inline-actions>label{margin-top:0}.privacy-files{margin:14px 0 0;padding:0;list-style:none}.privacy-card .private-file{border-top:1px solid var(--edge);padding-block:14px}.privacy-card .private-file p{color:var(--muted);margin-top:4px;font-size:13px}.privacy-card .private-file .button{min-height:40px;margin-top:0;padding:8px 14px;font-size:14px}.privacy-empty{border:1px dashed var(--edge);color:var(--muted);border-radius:12px;align-items:center;gap:10px;margin-top:16px;padding:16px;font-size:14px;display:flex}.privacy-danger{border-color:var(--edge);background:var(--panel)}.privacy-danger h2{color:var(--danger)}.privacy-message{border:1px solid var(--edge);background:var(--surface-subtle);color:var(--accent);border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:15px;display:flex}.privacy-footer{border-top:1px solid var(--edge);margin-top:32px;padding-top:18px}@media (max-width:1100px){.privacy-layout{grid-template-columns:minmax(0,1fr)}}@media (max-width:600px){.privacy-card{padding:20px 16px}.privacy-signin{padding:24px 18px}.privacy-signin h2{font-size:24px}.privacy-actions>a{flex:100%;justify-content:center}.privacy-inline-actions .button{flex:100%}}.pending-save-notice{z-index:40;border:1px solid var(--edge);background:var(--surface-subtle);color:light-dark(#6a4630,#dbb098);border-radius:16px;width:min(420px,100vw - 32px);padding:16px 18px;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 50px #3b2a1a1f}.pending-save-notice strong{color:light-dark(#4a2e1d,#ffdbc6);overflow-wrap:anywhere;font-size:15px;line-height:1.45;display:block}.pending-save-notice p{margin-top:4px;font-size:14px;line-height:1.6}.pending-save-notice.is-saved{border-color:var(--edge);background:var(--surface-subtle)}.pending-save-notice.is-saved strong{color:var(--accent)}.pending-save-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.pending-save-actions .primary-action,.pending-save-actions .secondary-action{min-height:40px;padding:9px 14px;font-size:14px}.pending-save-actions .text-button{color:var(--muted);font-size:14px}@media (max-width:600px){.pending-save-notice{bottom:16px;right:16px}.text-button{align-items:center;display:inline-flex}.bound-buttons button,.edit-row-actions button,.editor-history button,.mark-button,.row-number-button,.side-block.danger button,.text-button{min-height:44px}.icon-button{width:44px;height:44px}.lesson-listen .listen-options .select,.lesson-listen .listen-options select{max-width:none}}.lesson-listen .listen-timeline input,.video-transport .listen-timeline input{background:0 0}.lesson-listen .listen-timeline input::-webkit-slider-runnable-track,.video-transport .listen-timeline input::-webkit-slider-runnable-track{background:linear-gradient(to right,var(--accent) var(--listen-progress,0),var(--edge) 0);border-radius:5px;height:5px}.lesson-listen .listen-timeline input::-moz-range-track,.video-transport .listen-timeline input::-moz-range-track{background:linear-gradient(to right,var(--accent) var(--listen-progress,0),var(--edge) 0);border-radius:5px;height:5px}.lesson-listen .listen-timeline input::-webkit-slider-thumb,.video-transport .listen-timeline input::-webkit-slider-thumb{margin-top:-8px}@media (max-width:600px){.lesson-listen .listen-timeline input,.video-transport .listen-timeline input{height:44px;margin:0 0 4px;padding-block:19px}}.lesson-audio-label,.topic-audio-note{color:light-dark(#8a5a2b,#c28e5f);align-items:center;gap:6px;font-size:12px;font-weight:400;display:flex}.reading-practice.with-listening{background:var(--surface-subtle);padding:0;overflow:clip}.with-listening .reading-body{padding:25px 26px}.with-listening .reading-caption{font-size:var(--fs-caption);letter-spacing:1.1px;margin-top:8px;margin-bottom:12px}.with-listening .reading-caption span:last-child{font-size:12px}.lesson-listen{background:var(--panel);border-bottom:1px solid var(--edge);padding:24px 26px}.listen-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.listen-language{color:light-dark(#687768,#819081);font-size:var(--fs-caption)}.listen-description{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.65}.listen-transport{align-items:center;gap:16px;margin-top:23px;display:flex}.listen-play{background:var(--accent);border:1px solid var(--accent);width:54px;height:54px;color:var(--panel);border-radius:50%;flex:none;place-items:center;display:grid;box-shadow:0 4px 10px #376b4e15}.listen-play:hover:not(:disabled){background:var(--body)}.listen-timeline{flex:1;min-width:0}.listen-time{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;gap:8px;display:flex}.listen-time>span:last-child{white-space:nowrap}.listen-time i{color:light-dark(#a6b09e,#4b5343);margin:0 3px;font-style:normal}.listen-timeline input{appearance:none;cursor:pointer;width:100%;height:5px;accent-color:var(--accent);border-radius:5px;margin:18px 0 12px;display:block}.listen-timeline input::-webkit-slider-thumb{appearance:none;background:var(--accent);border:3px solid light-dark(#fff,#1c2520);border-radius:50%;width:15px;height:15px;box-shadow:0 0 0 1px #376b4e}.listen-timeline input::-moz-range-thumb{background:var(--accent);border:3px solid light-dark(#fff,#1c2520);border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 1px #376b4e}.listen-timeline input:disabled{cursor:default;opacity:.5}.listen-options{flex-wrap:wrap;align-items:center;gap:6px;margin-top:17px;display:flex}.listen-options button:not(.select-trigger),.listen-options label{min-height:40px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:7px 10px;font-size:12px;display:inline-flex}.listen-options label{margin-left:auto;padding-right:0}.listen-options .select,.listen-options select{max-width:150px}.listen-options .select,.listen-options .select-trigger{width:auto}.listen-options button[aria-pressed=true]{background:var(--soft);border-color:var(--edge);color:var(--accent)}.listen-options button:hover:not(:disabled){background:var(--surface-subtle)}.listen-error{color:var(--danger);margin-top:12px;font-size:13px;line-height:1.6}.listen-error button{min-height:36px;color:var(--danger);padding:5px 8px}.with-listening .reading-note{color:var(--muted);font-size:12px}.catalog-page .account-learning-actions{margin-top:22px}@media (max-width:1150px){.listen-language{font-size:var(--fs-caption)}}@media (max-width:600px){.lesson-listen,.with-listening .reading-body{padding:20px 16px}.listen-heading{gap:8px}.listen-language{margin-left:35px}.listen-transport{gap:12px}.listen-play{width:48px;height:48px}.listen-time{font-size:var(--fs-caption);flex-wrap:wrap}.listen-options{gap:2px}.listen-options button:not(.select-trigger),.listen-options label{font-size:var(--fs-caption);min-height:44px;padding:7px 6px}}.lesson-navigation{border-top:1px solid var(--edge);justify-content:space-between;align-items:center;gap:8px;margin-top:24px;padding-top:20px;display:flex}.lesson-navigation button{align-items:center;gap:8px;min-height:44px;padding:10px 12px;font-size:13px;display:flex}.lesson-navigation>span{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px}@media (max-width:380px){.lesson-navigation button{gap:5px;padding:10px 8px;font-size:12px}.lesson-navigation>span{font-size:var(--fs-caption)}}:root{--scroll-thumb:var(--edge-strong);--scroll-thumb-hover:light-dark(#8a9f80,#66796b)}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) transparent}@supports selector(::-webkit-scrollbar){*{scrollbar-width:auto;scrollbar-color:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-corner,::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);background-clip:padding-box;border:2px solid #0000;border-radius:999px;min-height:32px}::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover)}::-webkit-scrollbar-button{display:none}}@media (forced-colors:active){*{scrollbar-width:auto;scrollbar-color:auto}::-webkit-scrollbar-thumb{background:buttontext}.button,.field-input,.play-button,.primary-action,.record-button,.secondary-action,.select-trigger,.text-button,button,input,textarea{border:1px solid buttontext}:focus-visible{outline-offset:2px;outline:2px solid highlight}.filter-chip.selected,.is-selected,.level-chip.selected,.nav-active,.review-mode button.is-selected,.selected,.tab-current,[aria-checked=true],[aria-current=page],[aria-pressed=true],[aria-selected=true]{outline-offset:-3px;outline:3px solid highlight}.admin-bars-track i,.admin-calendar-day.level-1,.admin-calendar-day.level-2,.admin-calendar-day.level-3,.admin-calendar-day.level-4,.admin-score i:after,.mic-meter i,.play-progress-track i,.progress-track i{forced-color-adjust:none;background:highlight}.admin-bars-track,.admin-calendar-day,.admin-score i,.mic-meter,.play-progress-track,.progress-track{border:1px solid buttontext}.admin-chart polyline{stroke:canvastext}.admin-chart circle,.admin-chart-legend i,.admin-chart-tip i{fill:canvastext;forced-color-adjust:none;background:canvastext}.admin-chart-grid{stroke:graytext}.admin-chart-tip,.admin-delta,.admin-status,.admin-tip:after,.new-badge,.review-progress-tally i,.select-menu,.toast{border:1px solid canvastext}.skip-link:focus{border:2px solid highlight}}.review-agenda-heading{font-size:var(--fs-h3);margin:24px 0 10px;font-weight:600}.review-agenda-heading button{min-height:44px;padding:10px 12px;font-size:13px}.review-due-label{font-size:var(--fs-caption);color:var(--accent)}.review-due-label.overdue{color:var(--warning)}.review-agenda-note{font-size:var(--fs-small);color:var(--muted);line-height:1.6;font-size:var(--fs-caption);margin-top:14px}.review-load-more{min-height:var(--control);margin:14px auto;padding:8px 16px;display:block}.review-reminder{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius-lg);padding:24px}.review-reminder-heading{align-items:flex-start;gap:13px;display:flex}.review-reminder-heading>svg{color:light-dark(#63815a,#718f68);flex:none;margin-top:3px}.review-reminder-heading>div{flex:1}.review-reminder h2{font-size:18px;line-height:1.5}.review-reminder p{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.7}.review-reminder-heading>span{font-size:var(--fs-caption);background:var(--surface-subtle);white-space:nowrap;border-radius:7px;padding:6px 9px}.review-reminder-controls{flex-wrap:wrap;align-items:end;gap:12px;margin-top:20px;display:flex}.review-reminder-controls label{color:var(--muted);gap:8px;font-size:12px;display:grid}.review-reminder-controls input{border:1px solid var(--edge);background:var(--panel);max-width:100%;min-height:44px;color:var(--ink);border-radius:9px;padding:9px 12px}.review-reminder-controls button{min-height:44px;padding:10px 14px}.review-reminder .review-reminder-hint{color:light-dark(#6b7866,#818f7c);font-size:12px}.review-nav-count{background:var(--edge);text-align:center;min-width:23px;color:var(--accent);font-size:var(--fs-caption);border-radius:8px;margin-left:auto;padding:3px 6px}.review-nav-count+.nav-dot{margin-left:0}#account-review,#device-review{scroll-margin-top:24px}.review-manage>summary{cursor:pointer;min-height:44px;padding:16px 0;font-size:14px}@media (max-width:650px){.review-agenda-heading{align-items:start}.review-agenda-heading h2{font-size:18px}.review-reminder{padding:20px 16px}.review-reminder-heading{flex-wrap:wrap}.review-reminder-heading>span{margin-left:35px}.review-reminder-controls label{width:100%;min-width:0}.review-reminder-controls .select,.review-reminder-controls input,.review-reminder-controls select{width:100%}.review-reminder-controls button{flex:1;justify-content:center}}.saved-review-link{min-height:44px;color:var(--accent);text-underline-offset:4px;align-items:center;font-size:14px;text-decoration:underline;display:inline-flex}.confirm-dialog{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);width:calc(100vw - 32px);max-width:440px;max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:var(--shadow-float);padding:0}.confirm-dialog::backdrop{background:var(--ink)}@supports (color:color-mix(in lab,red,red)){.confirm-dialog::backdrop{background:color-mix(in srgb,var(--ink) 35%,transparent)}}.confirm-dialog form{padding:24px}.confirm-dialog h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight);color:var(--ink)}.confirm-dialog.is-danger h2{color:var(--danger)}.confirm-dialog-lead{color:var(--muted);margin-top:8px;font-size:14px;line-height:1.7}.confirm-dialog .consent-check{gap:10px;margin:14px 0 0;font-size:14px;line-height:1.6}.confirm-dialog .consent-check input[type=checkbox]{flex-basis:20px;width:20px;height:20px;min-height:20px;margin-top:2px}.confirm-dialog-password{color:var(--body);gap:8px;margin-top:20px;font-size:14px;font-weight:600;display:grid}.confirm-dialog-password input{border:1px solid var(--edge);background:var(--panel);width:100%;min-height:46px;color:var(--body);font:inherit;border-radius:10px;padding:10px 12px;font-size:16px;font-weight:400}.confirm-dialog-password input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.confirm-dialog-hint{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.6}.confirm-dialog .error-banner{margin-top:14px}.confirm-dialog-actions{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.confirm-dialog-actions .button{flex:140px;min-height:48px;margin:0;font-size:15px}.permission-list{gap:12px;margin-top:18px;display:grid}.permission-row{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);flex-wrap:wrap;align-items:center;gap:16px;padding:16px 18px;display:flex}.permission-row.is-on{border-color:var(--edge-strong);background:var(--surface-subtle)}.permission-copy{flex:260px;min-width:0}.permission-copy strong{color:var(--body);font-size:15px;font-weight:600;display:block}.permission-copy p{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.65}.permission-switch{background:0 0;border:0;flex:none;align-items:center;gap:10px;min-height:44px;padding:6px 8px;display:inline-flex}.permission-switch-track{background:var(--edge-strong);border-radius:999px;flex:none;width:50px;height:28px;transition:background .15s;display:block;position:relative}.permission-switch-knob{background:var(--panel);border-radius:50%;width:22px;height:22px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #25372e33}.permission-switch[aria-checked=true] .permission-switch-track{background:var(--accent)}.permission-switch[aria-checked=true] .permission-switch-knob{transform:translate(22px)}.permission-switch-label{color:var(--accent);white-space:nowrap;font-size:13px;font-weight:600}.permission-switch:disabled{opacity:.55;cursor:not-allowed}.permission-switch:focus-visible{outline-offset:3px;border-radius:10px;outline:3px solid light-dark(#83a67b,#486941)}.permission-blocked{color:light-dark(#8a5a2b,#c28e5f);flex:100%;margin:0;font-size:13px;line-height:1.6}@media (prefers-reduced-motion:reduce){.permission-switch-knob,.permission-switch-track{transition:none}}@media (max-width:600px){.confirm-dialog form{padding:20px 18px}.permission-row{gap:12px;padding:14px 16px}.permission-switch{justify-content:space-between;width:100%}}.review-mode-choice{border:0;min-width:0;margin:0;padding:0}.review-mode-choice legend{color:var(--muted);margin-bottom:8px;padding:0;font-size:12px}.review-mode-choice label{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:var(--body);cursor:pointer;border-radius:10px;align-items:center;gap:9px;padding:8px 12px;font-size:13px;display:flex}.review-mode-choice label+label{margin-top:6px}.review-mode-choice label.selected{border-color:var(--accent);background:var(--surface-subtle)}.review-mode-choice label:has(input:disabled){opacity:.55;cursor:not-allowed}.review-mode-choice input{width:18px;height:18px;min-height:18px;accent-color:var(--accent);flex:none;margin:0}.review-reminder .permission-switch{flex:none;margin-left:auto}.review-reminder .permission-blocked{margin-top:10px}@media (max-width:650px){.review-reminder .permission-switch{justify-content:space-between;width:100%;margin-left:0}}.admin-console .page-heading p{max-width:68ch;font-size:14px}.admin-attention{border:1px solid var(--edge-strong);border-radius:var(--radius);background:var(--warning-soft);margin-top:24px;padding:18px 22px}.admin-attention.is-clear{border-color:var(--edge);background:var(--success-soft)}.admin-attention h2{font-size:var(--fs-h3);color:var(--warning);align-items:center;gap:9px;font-weight:600;display:flex}.admin-attention.is-clear h2{color:var(--success)}.admin-attention p{font-size:var(--fs-small);color:var(--muted);margin-top:8px;line-height:1.6}.admin-attention ul{gap:10px;margin:14px 0 0;padding:0;list-style:none;display:grid}.admin-attention li{border:1px solid var(--edge);background:var(--panel);border-radius:12px;padding:12px 14px}.admin-attention li.admin-act{border-color:var(--edge-strong);background:var(--surface-subtle)}.admin-attention strong{color:var(--body);font-size:14px;font-weight:600;line-height:1.5;display:block}.admin-attention span{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.65;display:block}.admin-grid{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:18px;margin-top:22px;display:grid}.admin-grid .admin-card{margin-bottom:0}.admin-card{min-width:0}.admin-figures{grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:16px;margin-top:18px;display:grid}.admin-figures b.admin-alarm{color:var(--danger)}.admin-note{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.admin-note,.admin-note+.admin-bars,.admin-note+.admin-chart,.admin-note+.admin-list,.admin-note+.admin-status-list,.admin-note+.admin-table-wrap{margin-top:14px}.admin-copies code,.admin-issued code,.admin-log code,.admin-note code{border:1px solid var(--edge);background:var(--panel);overflow-wrap:anywhere;border-radius:6px;padding:2px 6px;font-size:12px}.admin-tally{gap:6px;margin:16px 0 0;display:grid}.admin-tally>div{border-radius:var(--radius-sm);background:var(--surface-subtle);justify-content:space-between;align-items:baseline;gap:12px;padding:8px 12px;display:flex}.admin-tally dt{color:var(--muted);font-size:13px}.admin-tally dd{color:var(--body);font-variant-numeric:tabular-nums;margin:0;font-size:14px;font-weight:600}.admin-log{gap:8px;margin:18px 0 0;padding:0;list-style:none;display:grid}.admin-log li{border:1px solid var(--edge);background:var(--surface-subtle);border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:12px 14px;font-size:13px;line-height:1.6;display:flex}.admin-log strong{color:var(--body);font-weight:600}.admin-log span{color:var(--muted);flex:200px}.admin-log time{color:var(--muted);font-size:12px}.admin-search{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:18px;display:flex}.admin-search label{min-width:0;color:var(--body);flex:220px;gap:8px;font-size:13px;font-weight:600;display:grid}.admin-search input{border:1px solid var(--edge);background:var(--panel);width:100%;min-height:48px;color:var(--body);font:inherit;border-radius:10px;padding:10px 12px;font-size:16px;font-weight:400}.admin-search input:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:light-dark(#7fa070,#506f41)}.admin-search .button{flex:none}.admin-copies{gap:12px;margin:18px 0 0;padding:0;list-style:none;display:grid}.admin-copies li{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px;display:flex}.admin-copies li>div:first-child{flex:260px;justify-items:start;gap:6px;min-width:0;display:grid}.admin-copies span{color:var(--muted);font-size:13px;line-height:1.6}.admin-copy-actions{flex-wrap:wrap;gap:10px;display:flex}.admin-console .button.danger{background:var(--danger);border-color:var(--danger);color:var(--panel)}.admin-issued{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface-subtle);justify-items:start;gap:10px;margin-top:18px;padding:18px;display:grid}.admin-issued strong{color:var(--body);font-size:14px;font-weight:600}.admin-issued code{letter-spacing:.5px;font-size:15px}.admin-issued p{color:var(--muted);font-size:13px;line-height:1.7}@media (max-width:600px){.admin-grid{grid-template-columns:1fr;gap:14px}.admin-attention{padding:16px 17px}.admin-copy-actions .button,.admin-search .button{width:100%}.admin-copies li{gap:12px}.admin-console .eyebrow,.admin-console .section-kicker,.admin-figures span{font-size:12px}}.tabbar{display:none}@media (max-width:900px){:root{--tabbar-height:62px}.tabbar{box-sizing:border-box;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));left:var(--sidebar);z-index:30;background:var(--panel);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:4px 6px max(4px,env(safe-area-inset-bottom));border:0;grid-template-columns:repeat(4,1fr);gap:0;margin:0;display:grid;position:fixed;bottom:0;right:0;box-shadow:0 -8px 24px light-dark(#14211b1f,#0006)}.tabbar a{border-radius:var(--r-md);min-height:52px;font-size:var(--fs-caption);color:var(--muted);text-align:center;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;font-weight:500;line-height:1.3;display:flex;position:relative}.tabbar .tab-current{color:var(--accent);background:var(--accent-soft);font-weight:700}.language-toggle,.theme-toggle{display:none}.tabbar .tab-icon{place-items:center;display:grid;position:relative}main{padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom))}}@media (max-width:600px){.tabbar{left:0}}.listen-dock{display:none}@media (max-width:900px){.listen-dock{z-index:29;left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background:var(--panel,var(--panel));border-top:1px solid var(--edge);align-items:center;gap:12px;padding:10px 14px;display:flex;position:fixed;box-shadow:0 -6px 18px #24362514}.listen-dock .listen-play{flex:none;justify-content:center;width:46px;height:46px;padding:0}.listen-dock-loop{border-radius:11px;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid}.listen-dock-loop[aria-pressed=true]{background:var(--soft);color:var(--accent);border-color:var(--edge-strong)}.listen-dock-copy{flex:1;gap:2px;min-width:0;display:grid}.listen-dock-copy span,.listen-dock-copy strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.listen-dock-copy strong{color:var(--ink);font-size:13px;font-weight:600}.listen-dock-copy span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.listen-dock-copy i{opacity:.5;padding:0 2px;font-style:normal}.is-studying{padding-bottom:calc(var(--tabbar-height) + 70px)}}@media (max-width:600px){.group-chips,.level-chips{scrollbar-width:none;flex-wrap:nowrap;min-width:0;max-width:100%;padding-block:3px;overflow-x:auto}.group-chips::-webkit-scrollbar,.level-chips::-webkit-scrollbar{display:none}.group-chip,.level-chip{flex:none}.topic-toolbar{gap:10px}}@media (max-width:900px){.lesson-switch{flex:none;align-items:center;gap:4px;display:flex}.lesson-switch button{width:44px;height:44px;color:var(--ink);border-radius:11px;place-items:center;padding:0;display:grid}.lesson-switch span{text-align:center;min-width:46px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.lesson-switch i{opacity:.5;padding:0 2px;font-style:normal}.listen-dock-bare{justify-content:flex-end}}.import-guide{margin-top:0}.ai-brief,.import-guide{border:1px solid var(--edge);background:var(--panel);border-radius:var(--radius);color:var(--ink);padding:20px 24px}.ai-brief{margin-top:16px}.ai-brief h2{font-size:var(--fs-h3);font-weight:600;line-height:1.4}.ai-brief>p{color:var(--muted);max-width:70ch;margin-top:6px;font-size:14px;line-height:1.65}.ai-brief-form{grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:12px;margin-top:16px;display:grid}.ai-brief-output{gap:10px;margin-top:14px;display:grid}.ai-brief-output textarea{border:1px solid var(--edge);background:var(--surface-subtle);width:100%;color:var(--ink);font:inherit;resize:vertical;border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.7}.ai-brief-output .primary-action{justify-self:start;align-items:center;gap:8px;display:inline-flex}.ai-brief-steps{gap:12px;margin:18px 0 0;padding-left:24px;list-style:decimal;display:grid}.ai-brief-steps li::marker{color:var(--accent);font-weight:600}.ai-brief-steps strong{font-size:14px}.ai-brief-steps p{color:var(--muted);margin-top:3px;font-size:13px;line-height:1.65}@media (max-width:600px){.ai-brief{padding:18px}.ai-brief-form{grid-template-columns:1fr 1fr}.ai-brief-topic{grid-column:1/-1}.ai-brief-output .primary-action{justify-content:center;justify-self:stretch}}.import-guide h2{font-size:var(--fs-h3);font-weight:600;line-height:1.4}.import-guide summary{font-size:var(--fs-body);color:var(--accent);cursor:pointer;align-items:center;gap:8px;min-height:40px;font-weight:500;line-height:1.4;list-style:none;display:flex}.import-guide summary::-webkit-details-marker{display:none}.import-guide summary:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:6px;height:6px;margin-left:2px;transition:transform .15s;transform:rotate(-45deg)}.import-guide details[open]>summary:before{transform:rotate(45deg)}.sample-start{margin:12px 0 4px}.sample-downloads ul{gap:10px;margin:8px 0 16px;padding:0;list-style:none;display:grid}.sample-downloads li{gap:2px;display:grid}.sample-downloads a{text-underline-offset:3px;align-items:center;min-height:44px;font-size:15px;text-decoration:underline;display:flex}.sample-downloads li span{color:var(--muted);font-size:13px;line-height:1.6}.sample-hint{border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--surface-subtle);font-size:var(--fs-small);color:var(--muted);padding:12px 14px;line-height:1.6}.import-guide ol{gap:14px;margin:16px 0;padding-left:24px;display:grid}.import-guide strong{font-size:15px}.import-guide p{color:var(--muted);margin-top:5px;font-size:14px;line-height:1.65}.import-guide p a{text-underline-offset:3px;text-decoration:underline}.import-page .import-card h2{scroll-margin-top:18px;font-size:20px}.import-page .import-note{font-size:14px;line-height:1.65}.import-page .import-note a{text-underline-offset:3px;text-decoration:underline}.import-page .paste-panel label,.import-page .review-fields label{color:var(--muted);font-size:14px;line-height:1.5}.import-page .even-panel input,.import-page .paste-panel textarea,.import-page .review-fields input{font-family:var(--font-ui);width:100%;min-width:0;font-size:16px}.import-page .even-panel input{max-width:100px}.import-page .even-panel p,.import-page .even-panel strong,.import-page .media-summary strong{font-size:14px}.import-page .step-actions button{min-height:48px;font-size:15px}.import-methods{flex-wrap:wrap;gap:8px;display:flex}.import-methods button{flex:1;min-height:46px;padding:10px 14px;font-size:14px}.import-methods button[aria-pressed=true]{background:var(--accent-fill);color:var(--accent-ink);border-color:var(--accent-fill)}.import-listen{min-width:0;color:var(--muted);gap:10px;font-size:14px;display:grid}.import-listen audio,.import-listen video{width:100%;max-height:250px;display:block}.import-auto-title{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.import-hearing{border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--surface-subtle);gap:4px;padding:12px 14px;font-size:14px;display:grid}.import-hearing small{color:var(--muted);font-size:13px;line-height:1.5}.import-hearing .text-button{justify-self:start;min-height:44px}.custom-lesson-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}@media (max-width:600px){.import-page{padding:20px var(--gutter)}.import-page .import-card{gap:16px;min-width:0;padding:16px}.import-guide{margin-top:18px;padding:18px}.import-page .file-drop{width:100%;min-width:0;padding:24px 14px}.import-page .file-drop strong{font-size:17px}.import-page .file-drop small{font-size:13px;line-height:1.6}.import-methods{grid-template-columns:1fr;display:grid}.import-page .step-rail{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.import-page .step-rail li{justify-content:center;gap:5px;padding:10px 4px;font-size:12px}.import-page .step-actions{flex-wrap:wrap;gap:12px}.import-page .step-actions .primary-action{flex:1;justify-content:center}.import-page .review-summary{overflow-wrap:anywhere}.editor-guide .secondary-action{width:100%}}.study-level{color:var(--accent);align-items:center;gap:10px;font-size:14px;display:flex}.study-level .select,.study-level select{max-width:100%}.lesson-inline-switch{display:none}@media (max-width:900px){.lesson-inline-switch{justify-content:flex-end;margin-top:12px;display:flex}.listen-dock{left:var(--sidebar)}}@media (max-width:600px){.listen-dock{left:0}.catalog-page{padding-top:16px}.topic-toolbar{gap:8px;margin-top:16px}.topic-search{flex-basis:100%;order:-1}.group-chips{margin-top:8px}.topic-grid-heading{gap:6px;margin-top:16px}.topic-grid-heading h2{font-size:18px}.topic-grid-heading span{font-size:12px}.topic-grid{gap:10px;margin-top:10px}.study-level{flex-wrap:wrap;grid-area:2/2;justify-self:end;gap:4px;max-width:170px;font-size:12px}.study-level .select,.study-level select{width:100%;min-width:0}.catalog-page .lesson-detail{padding:16px 12px}.catalog-page .prompt-block{padding:14px 0}.catalog-page .prompt-block h3{font-size:24px;line-height:1.3}.catalog-page .prompt-block p{font-size:15px;line-height:1.5}.catalog-page .prompt-label{font-size:var(--fs-caption);margin-bottom:6px}.lesson-listen{padding:14px 12px}.listen-transport{margin-top:12px}.listen-description{margin-top:8px;font-size:12px}.listen-language{display:none}}.saved-library .library-toolbar{margin-top:8px}.speak-recorder{border:1px solid var(--edge);background:var(--panel);text-align:left;border-radius:12px;gap:10px;margin-top:16px;padding:14px 16px;display:grid}.speak-recorder.is-row{background:0 0;border:0;gap:8px;padding:0}.speak-recorder.is-row.is-recording{background:0 0}.speak-recorder-line{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.speak-recorder.is-recording{border-color:var(--edge-strong);background:var(--panel)}.speak-recorder-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.speak-recorder-head strong{color:var(--ink);font-size:13px;font-weight:600}.speak-recorder-head>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.speak-recorder .mic-meter{order:0}.speak-recorder-actions{flex-wrap:wrap;gap:8px;display:flex}.speak-recorder-actions button{align-items:center;gap:7px;min-height:44px;padding:0 14px;font-size:13px;display:inline-flex}.speak-recorder.is-row .speak-recorder-actions{gap:10px}.speak-recorder.is-row .speak-recorder-actions button{min-height:48px;font-size:var(--fs-body);border:1px solid var(--edge-strong);background:var(--panel);color:var(--accent);border-radius:10px;margin:0;padding:0 18px;font-weight:600}.speak-recorder.is-row .speak-recorder-actions button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--soft)}.speak-recorder.is-row .speak-record.is-recording{color:var(--danger);background:var(--surface-subtle);border-color:light-dark(#c98b83,#7c4a44)}@media (max-width:600px){.speak-recorder.is-row .speak-recorder-actions{gap:8px}.speak-recorder.is-row .speak-recorder-actions button{font-size:var(--fs-small);padding:0 13px}}.speak-record.is-recording{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-bright)}.speak-play{background:var(--soft);color:var(--accent);border-color:var(--edge)}.speak-recorder .reading-note{margin:0}.speak-recorder-error{color:var(--danger)}.mic-memory-hint{border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--surface-subtle);color:var(--muted);text-align:left;align-items:flex-start;gap:10px;margin-top:4px;padding:10px 12px;display:flex}.mic-memory-hint>svg{color:var(--accent);flex:none;margin-top:2px}.mic-memory-hint p{font-size:var(--fs-small);flex:1;margin:0;line-height:1.6}.mic-memory-hint strong{color:var(--ink);font-weight:600}.mic-memory-hint .text-button{min-height:44px;font-size:var(--fs-small);flex:none;margin:-10px -4px -10px 0;padding:0 8px}.record-area .mic-memory-hint{flex-basis:100%}@media (max-width:600px){.speak-recorder-actions button{flex:auto;justify-content:center}}.reading-check{gap:10px;margin-top:12px;display:grid}.reading-check-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.reading-check-actions button{align-items:center;gap:8px;min-height:44px;padding:0 14px;font-size:13px;display:flex}.reading-check-note{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.reading-check-refused{background:var(--surface-subtle);border:1px solid var(--edge-strong);color:var(--ink);border-radius:11px;margin:0;padding:12px 14px;font-size:13px;line-height:1.7}.reading-check-result{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:12px;padding:16px 18px;display:grid}.reading-check-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.reading-check-score{font-size:var(--fs-body);color:var(--ink);margin:0;font-weight:700}.reading-check-again{min-height:44px;font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;padding:0 4px;font-weight:600;display:inline-flex}.reading-check-meter{border-radius:var(--pill);background:var(--soft);height:6px;overflow:hidden}.reading-check-meter i{border-radius:inherit;background:var(--accent);height:100%;display:block}.reading-check-caveat{font-size:var(--fs-caption);color:var(--muted);margin:-4px 0 0;line-height:1.5}.reading-check-line{color:var(--ink);flex-wrap:wrap;align-items:flex-start;gap:10px 6px;margin:4px 0 0;font-size:18px;line-height:1.4;display:flex}.read-word{border-radius:6px;align-items:baseline;padding:2px 4px;display:inline-flex}.read-word.is-different{background:var(--warning-soft);color:light-dark(#6f5020,#d8b77f);justify-items:start;gap:1px;display:inline-grid}.read-word.is-different .read-word-text{text-underline-offset:4px;-webkit-text-decoration:underline light-dark(#c69a4f,#9d7c47);text-decoration:underline light-dark(#c69a4f,#9d7c47);text-decoration-thickness:2px}.read-word.is-different small{font-size:var(--fs-caption);color:var(--muted);font-style:italic;line-height:1.3}.read-word.is-missing{color:var(--danger);background:var(--danger-soft);text-decoration:line-through;text-decoration-thickness:2px}.read-word.is-extra{border:1px dashed var(--edge-strong);color:var(--muted);font-size:15px}.reading-check-key{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;list-style:none;display:flex}.reading-check-key li{align-items:center;gap:6px;display:inline-flex}.reading-check-key li:before{content:"";border-radius:3px;width:10px;height:10px}.reading-check-key .is-different:before{background:var(--warning-soft);box-shadow:inset 0 -2px light-dark(#c69a4f,#9d7c47)}.reading-check-key .is-missing:before{background:var(--danger-soft);box-shadow:inset 0 0 0 1px var(--danger)}.reading-check-key .is-extra:before{border:1px dashed var(--edge-strong)}.reading-check-evidence{border-top:1px solid var(--edge);font-size:var(--fs-small);color:var(--muted);padding-top:4px}.reading-check-evidence summary{cursor:pointer;min-height:44px;color:var(--ink);align-items:center;gap:8px;font-weight:600;list-style:none;display:flex}.reading-check-evidence summary::-webkit-details-marker{display:none}.reading-check-evidence summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-left:2px;transition:transform .15s;transform:rotate(45deg)translateY(-2px)}.reading-check-evidence[open] summary:after{transform:rotate(-135deg)translateY(-1px)}@media (prefers-reduced-motion:reduce){.reading-check-evidence summary:after{transition:none}}.reading-check-evidence-body{border-radius:var(--radius-sm);background:var(--surface-subtle);gap:6px;margin:4px 0 8px;padding:12px 14px;display:grid}.reading-check-evidence-body p{margin:0;line-height:1.7}.reading-check-evidence-body p[lang]{font-size:var(--fs-body);color:var(--ink)}@media (max-width:600px){.reading-check-actions button{justify-content:center;width:100%}.reading-check-line{font-size:16px}.reading-check-result{padding:14px}}.site-footer{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--content-max) - 2 * var(--gutter));border-top:1px solid var(--edge);font-size:var(--fs-small);color:var(--muted);margin:56px auto 0;padding:32px 0 24px;line-height:1.6;display:block}.site-footer p{margin:0}.site-footer ul{margin:0;padding:0;list-style:none}.site-footer-top{grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr)) max-content;gap:32px 40px;display:grid}.site-footer-about{align-content:start;gap:10px;max-width:34ch;display:grid}.site-footer .brand{min-height:var(--control-touch);justify-self:start;gap:10px;padding:0;font-size:19px}.site-footer .brand-dot{display:inline}.site-footer .brand-mark{border-radius:8px;width:26px;height:26px}.site-footer-promise{font-size:var(--fs-caption);flex-wrap:wrap;gap:2px 12px;display:flex}.site-footer-promise li{align-items:center;gap:6px;display:inline-flex}.site-footer-promise li:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px}.site-footer-column h2{font-family:inherit;font-size:var(--fs-caption);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 8px;font-weight:600}.site-footer-column a{min-height:32px;color:var(--muted);align-items:center;text-decoration:none;display:inline-flex}.site-footer-column a:hover{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.site-footer-bottom{border-top:1px solid var(--edge);font-size:var(--fs-caption);padding-top:16px;margin-top:28px!important}@media (max-width:900px){.site-footer-top{grid-template-columns:repeat(2,minmax(0,1fr)) max-content}.site-footer-about{grid-column:1/-1;max-width:none}}@media (max-width:600px){.site-footer{margin-top:40px;padding:24px 0 20px}.site-footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}.site-footer-column:last-child{grid-column:1/-1}.site-footer-column a{min-height:44px}}.mobile-level-filter{display:none}.practice-steps{background:var(--surface-subtle);border-radius:var(--radius) var(--radius) 0 0;border:1px solid var(--edge);border-bottom:0;grid-template-columns:1fr 1fr;gap:4px;padding:6px;display:grid}.practice-steps button{min-height:40px;color:var(--muted);font-size:var(--fs-body);background:0 0;border:0;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 10px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.practice-steps button[aria-pressed=true]{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 1px 2px light-dark(#1f2d2614,#00000040)}.practice-steps button span{background:var(--edge);width:22px;height:22px;font-size:var(--fs-caption);color:var(--muted);border-radius:50%;place-items:center;display:grid}.practice-steps button[aria-pressed=true] span{background:var(--accent-fill);color:var(--accent-ink)}.reading-practice:not(.with-listening){padding:0}.reading-practice:not(.with-listening) .reading-body{padding:24px}.reading-body{scroll-margin-top:20px}.reading-reveal{background:var(--panel);border:1px solid var(--edge-strong);border-radius:var(--radius-sm);min-height:44px;color:var(--ink);margin-bottom:16px;padding:10px 16px;font-size:14px}.reading-reveal[aria-pressed=true]{background:var(--soft);border-color:var(--edge-strong);color:var(--accent)}.reading-reset{text-align:left;min-height:44px}.catalog-page .follow-up-block>summary{cursor:pointer;min-height:48px;color:var(--accent);padding:14px 0;font-size:15px;line-height:1.5}.catalog-page .reading-caption{letter-spacing:.8px;font-size:12px}.catalog-page .listen-time{font-size:13px}.catalog-page .listen-options button,.catalog-page .listen-options label{min-height:44px;font-size:14px}.catalog-page .listen-options .select-trigger,.catalog-page .listen-options select{min-height:44px}.catalog-page .listen-description{font-size:14px;line-height:1.6}.catalog-page .lesson-navigation{margin-top:16px}@media (max-width:900px){.catalog-page .lesson-detail{grid-row:2}.catalog-page .reading-controls{grid-template-columns:auto minmax(0,1fr);gap:8px;display:grid}.catalog-page .reading-controls button{min-height:52px;padding:12px;font-size:15px}.catalog-page .reading-start{gap:10px;margin-top:20px}.catalog-page .reading-start .learn-primary{justify-content:space-between;width:100%;min-height:52px}.catalog-page .reading-start p{max-width:none;font-size:14px}.catalog-page .reading-stage{min-height:160px;padding:20px 0 12px}.catalog-page .reading-stage .answer-en{font-size:26px;line-height:1.6}.catalog-page .reading-body{padding:18px 16px}}@media (max-width:600px){.catalog-page .topic-toolbar .level-chips{display:none}.catalog-page .group-chips{padding-bottom:2px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.catalog-page .study-level{width:100%;max-width:none;font-size:13px}.catalog-page .lesson-detail{border-radius:var(--radius-lg);min-height:0;padding:16px 12px}.catalog-page .prompt-block h3{font-size:25px;line-height:1.4}.catalog-page .lesson-listen{padding:16px 14px}.catalog-page .listen-description{margin-top:0}.catalog-page .listen-options{flex-wrap:wrap;justify-content:space-between;gap:4px;display:flex}.catalog-page .listen-options button,.catalog-page .listen-options label{padding:4px;font-size:13px}.catalog-page .listen-play{width:52px;height:52px}.catalog-page .listen-time{gap:4px;font-size:12px}.catalog-page .reading-practice .answer-en{font-size:23px;line-height:1.65}.catalog-page .reading-caption{gap:8px}.catalog-page .reading-note{font-size:13px}.catalog-page .lesson-navigation{flex-wrap:wrap;gap:8px}.catalog-page .lesson-navigation button{min-height:48px;padding:10px;font-size:14px}}textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge);outline:0}@media (min-width:901px){.sidebar{overflow-y:auto}}.practice-page .session-heading{margin-top:20px}.practice-page .lesson-meta{flex-wrap:wrap;gap:8px 12px}.practice-page .lesson-meta .text-button,.practice-page .lesson-meta>span{white-space:nowrap}.auth-intro,.error-banner{overflow-wrap:anywhere}.auth-shell .auth-main{padding-bottom:0}@media (max-width:900px){.edit-field input,.edit-field textarea,.import-page input:not([type=checkbox]):not([type=radio]),.import-page textarea,.settings-page input:not([type=checkbox]):not([type=radio]){font-size:16px}}@media (max-width:600px){.empty-state{flex-wrap:wrap;gap:12px;padding:20px}.empty-state>div{flex:200px;min-width:0}.empty-state .empty-action{font-size:var(--fs-body);align-self:flex-start;margin-left:52px}.saved-library .filter-row{scrollbar-width:none;width:100%;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));padding:2px var(--gutter);width:calc(100% + 2 * var(--gutter));flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.saved-library .filter-row::-webkit-scrollbar{display:none}.saved-library .filter-chip{flex:none}.edit-row-head{grid-template-columns:44px 44px minmax(0,1fr);align-items:center;display:grid}.edit-bounds{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.bound-control{align-content:start;min-width:0}.bound-buttons{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bound-buttons button{padding:8px 4px;font-size:12px}.bound-buttons .playhead-button{grid-column:1/-1}}:root{--chart-1:var(--accent);--chart-2:light-dark(#9aa686,#8f9c7b);--chart-3:light-dark(#b8895a,#c9975f);--chart-4:light-dark(#6d8fb0,#517292)}.admin-nav a{min-height:38px;font-size:var(--fs-small);color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;line-height:1.3;transition:background-color .15s,color .15s;display:flex}.admin-nav a svg{opacity:.85;flex:none}.admin-nav a:hover{background:var(--surface-subtle);color:var(--ink)}.admin-nav a.is-current{background:var(--soft);color:var(--accent);font-weight:600}.admin-main{min-width:0}.admin-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.admin-heading h1{font-family:var(--font-display);font-size:var(--fs-h1);letter-spacing:-.5px;font-weight:400;line-height:1.3}.admin-heading p{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--muted);max-width:70ch;margin-top:8px}.admin-heading-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-link{font-size:var(--fs-small);color:var(--accent);text-underline-offset:3px;font-weight:500;text-decoration:underline}.admin-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:18px;display:grid}.admin-kpi{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:6px;min-width:0;padding:14px 16px;display:grid}.admin-kpi-label{font-size:var(--fs-caption);color:var(--muted);line-height:1.4}.admin-kpi-label:first-letter{text-transform:uppercase}.admin-kpi-value{font-family:var(--font-display);color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:26px;font-weight:400;line-height:1.1}.admin-kpi-foot{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:12px;display:flex}.admin-delta{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.admin-delta.is-up{color:var(--success)}.admin-delta.is-down{color:var(--danger)}.admin-delta.is-flat{color:var(--muted)}.admin-tip{cursor:help;border-bottom:1px dotted light-dark(#9aa696,#515c4d);align-items:center;gap:4px;display:inline-flex;position:relative}.admin-tip svg{opacity:.55}.admin-tip:focus-visible:after,.admin-tip:hover:after{content:attr(data-tip);z-index:20;text-align:left;width:max-content;max-width:280px;color:var(--body);background:var(--panel);border:1px solid var(--edge);white-space:normal;border-radius:8px;padding:8px 10px;font-size:12px;font-weight:400;line-height:1.5;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 6px 18px #2936201a}.admin-panel{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);min-width:0;margin-bottom:18px;padding:20px 22px}.admin-panel.is-refreshing{opacity:.7}.admin-panel:has(>.admin-kpis:first-child){background:0 0;border:0;border-radius:0;padding:0}.admin-panel:has(>.admin-kpis:first-child) .admin-kpis:last-child{margin-bottom:0}.admin-panel-head{justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:14px;display:flex}.admin-panel-head h2{font-size:var(--fs-h3);letter-spacing:-.1px;margin-top:4px;font-weight:600}.admin-columns{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));align-items:start;gap:16px;display:grid}.admin-columns.is-thirds{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.admin-columns.is-pairs{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:900px){.admin-columns.is-pairs{grid-template-columns:1fr}}.admin-columns>.admin-panel{margin-bottom:18px}.admin-table-wrap{margin:0 -22px;padding:0 22px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}.admin-table th{text-align:left;font-size:var(--fs-caption);color:var(--muted);white-space:nowrap;padding:8px 10px;font-weight:600}.admin-table td,.admin-table th{border-bottom:1px solid var(--edge)}.admin-table td{vertical-align:middle;padding:10px}.admin-table tbody tr:hover{background:var(--surface-subtle)}.admin-table td.is-numeric,.admin-table th.is-numeric{text-align:right;font-variant-numeric:tabular-nums}.admin-table th[scope=row]{color:var(--ink);font-weight:600;font-size:var(--fs-small);white-space:nowrap}.admin-table-compact td,.admin-table-compact th{padding:8px 10px}.admin-user{gap:2px;min-width:160px;max-width:280px;display:grid}.admin-user strong{color:var(--ink);font-weight:600}.admin-user small{font-size:var(--fs-caption);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-lesson{gap:2px;min-width:180px;display:grid}.admin-lesson strong{color:var(--ink);font-weight:600;line-height:1.4}.admin-lesson small,.admin-status{font-size:var(--fs-caption);color:var(--muted)}.admin-status{border-radius:var(--pill);white-space:nowrap;background:var(--surface-subtle);padding:2px 8px;font-weight:600;display:inline-block}.admin-status.is-new{background:var(--info-soft);color:var(--info)}.admin-status.is-highly-active{background:var(--accent-fill);color:var(--accent-ink)}.admin-status.is-active{background:var(--success-soft);color:var(--success)}.admin-status.is-at-risk{background:var(--warning-soft);color:var(--warning)}.admin-status.is-inactive{background:var(--danger-soft);color:var(--danger)}.admin-score{justify-content:flex-end;align-items:center;gap:8px;min-width:96px;display:inline-flex}.admin-score i{background:var(--edge);border-radius:3px;width:56px;height:6px;display:block;position:relative;overflow:hidden}.admin-score i:after{content:"";background:var(--accent);width:inherit;position:absolute;inset:0}.admin-score b{font-variant-numeric:tabular-nums;text-align:right;min-width:2ch;font-weight:600}.admin-skeleton{background:linear-gradient(90deg,var(--soft),var(--edge),var(--soft));background-size:200% 100%;border-radius:6px;height:12px;animation:admin-shimmer 1.4s linear infinite;display:block}.admin-skeleton.is-tall{height:26px}.admin-skeleton.is-block{border-radius:var(--radius);margin-bottom:18px}.admin-skeleton-table{gap:12px;padding:10px 0;display:grid}.admin-skeleton-row{grid-auto-flow:column;gap:14px;display:grid}@keyframes admin-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.admin-skeleton{animation:none}}.admin-pagination{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:12px;display:flex}.admin-pagination>div{align-items:center;gap:10px;display:flex}.admin-pagination button{min-height:var(--control-sm);font-size:var(--fs-small);border:1px solid var(--edge-strong);background:var(--panel);color:var(--ink);border-radius:8px;padding:0 12px;font-weight:500}.admin-pagination button:disabled{opacity:.45;cursor:not-allowed}.admin-chips{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.admin-chips button{min-height:var(--control-sm);font-size:var(--fs-small);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--muted);align-items:center;gap:6px;padding:0 12px;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.admin-chips button:hover{background:var(--surface-subtle);color:var(--ink)}.admin-chips button b{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:400;font-size:var(--fs-caption)}.admin-chips button.is-selected{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.admin-chips button.is-selected b{color:var(--accent);opacity:.8}.admin-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:18px;display:flex}.admin-filter{font-size:var(--fs-caption);color:var(--muted);gap:6px;min-width:0;display:grid}.admin-filter.is-wide{flex:220px}.admin-filter span{font-weight:600}.admin-filter input{min-height:var(--control);border:1px solid var(--edge);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-body);border-radius:8px;padding:6px 10px}.admin-filter input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge);outline:0}.admin-filters .button{min-height:var(--control);font-size:var(--fs-body);padding:0 16px}.admin-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-list li{border-bottom:1px solid var(--edge);font-variant-numeric:tabular-nums;grid-template-columns:minmax(0,1.4fr) auto auto auto;align-items:center;gap:14px;padding:8px 0;font-size:13px;display:grid}.admin-list li:last-child{border-bottom:0}.admin-list small,.admin-list span{color:var(--muted);white-space:nowrap;font-size:12px}.admin-status-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-status-list li{color:var(--muted);grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:12px;font-size:12px;display:grid}.admin-status-list b{color:var(--ink);font-variant-numeric:tabular-nums;min-width:3ch;font-size:15px}.admin-chart{width:100%;position:relative}.admin-chart svg{display:block;overflow:visible}.admin-chart-grid{stroke:var(--soft)}.admin-chart-cursor{stroke:var(--edge-strong);stroke-dasharray:3 3}.admin-chart-label{font-size:var(--fs-caption);fill:var(--faint)}.admin-chart-tip{background:var(--panel);border:1px solid var(--edge);pointer-events:none;white-space:nowrap;z-index:5;border-radius:8px;gap:4px;padding:8px 10px;font-size:12px;display:grid;position:absolute;top:8px;transform:translate(-50%);box-shadow:0 6px 18px #2936201a}.admin-chart-tip strong{color:var(--ink);font-weight:600}.admin-chart-legend span,.admin-chart-tip span{color:var(--muted);align-items:center;gap:6px;display:flex}.admin-chart-tip b{color:var(--ink);font-variant-numeric:tabular-nums;margin-left:auto;padding-left:14px;font-weight:600}.admin-chart-legend i,.admin-chart-tip i{border-radius:2px;flex:none;width:10px;height:3px}.admin-chart-legend{flex-wrap:wrap;gap:16px;margin-top:8px;font-size:12px;display:flex}.admin-sparkline{display:block}.admin-bars{gap:8px;margin:0;padding:0;list-style:none;display:grid}.admin-bars li{grid-template-columns:minmax(80px,140px) minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13px;display:grid}.admin-bars-label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-bars-track{background:var(--soft);border-radius:4px;height:8px;overflow:hidden}.admin-bars-track i{background:var(--accent);height:100%;display:block}.admin-bars b{font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;font-weight:600}.admin-range{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.admin-range button{min-height:var(--control-sm);font-size:var(--fs-small);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--muted);padding:0 12px;font-weight:500}.admin-range button.is-selected{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.admin-range label{font-size:var(--fs-caption);color:var(--muted);gap:4px;display:grid}.admin-range input{min-height:var(--control-sm);border:1px solid var(--edge);background:var(--panel);color:var(--ink);font:inherit;font-size:var(--fs-small);border-radius:8px;padding:4px 8px}.admin-profile{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:22px;margin-bottom:18px;padding:18px 22px;display:flex}.admin-avatar{background:var(--soft);width:52px;height:52px;color:var(--accent);letter-spacing:.3px;border-radius:50%;flex:none;place-items:center;font-size:17px;font-weight:600;display:grid}.admin-profile-facts{flex-wrap:wrap;gap:26px;font-size:12px;display:flex}.admin-profile-facts>div{gap:4px;display:grid}.admin-profile-facts span{color:var(--muted)}.admin-profile-facts b{color:var(--ink);font-size:13px;font-weight:600}.admin-facts{gap:8px;margin:0;display:grid}.admin-facts>div{border-bottom:1px solid var(--edge);justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;display:flex}.admin-facts dt{color:var(--muted)}.admin-facts dd{color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-weight:600}.admin-score-total{align-items:baseline;gap:6px;margin-bottom:12px;display:flex}.admin-score-total b{font-family:var(--font-display);color:var(--ink);font-size:40px;font-weight:400;line-height:1}.admin-score-total span{color:var(--muted);font-size:13px}.admin-score-parts{gap:6px;margin:0;display:grid}.admin-score-parts>div{border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,1fr) auto 3.5em;align-items:baseline;gap:12px;padding:6px 0;font-size:13px;display:grid}.admin-score-parts dt{color:var(--muted)}.admin-score-parts dd{font-variant-numeric:tabular-nums;text-align:right;margin:0}.admin-score-parts dd.is-share{color:var(--ink);font-weight:600}.admin-calendar{padding-bottom:4px;overflow-x:auto}.admin-calendar-months{font-size:var(--fs-caption);color:var(--muted);grid-template-columns:repeat(53,12px);gap:3px;min-width:max-content;margin-bottom:4px;display:grid}.admin-calendar-months span{white-space:nowrap;overflow:visible}.admin-calendar-grid{grid-template-columns:repeat(53,12px);gap:3px;min-width:max-content;display:grid}.admin-calendar-week{grid-template-rows:repeat(7,12px);gap:3px;display:grid}.admin-calendar-day{background:var(--soft);cursor:pointer;border:1px solid #0000;border-radius:3px;width:12px;height:12px;padding:0;display:block}.admin-calendar-day.level-1{background:var(--edge)}.admin-calendar-day.level-2{background:var(--edge-strong)}.admin-calendar-day.level-3{background:var(--faint)}.admin-calendar-day.level-4{background:var(--accent)}.admin-calendar-day.is-visited{background:var(--panel);border-color:var(--edge-strong)}.admin-calendar-day.is-today{outline:1px solid var(--accent);outline-offset:1px}.admin-calendar-day.is-selected{box-shadow:0 0 0 2px #fff,0 0 0 4px #376b4e}.admin-calendar-day:disabled{opacity:.35;cursor:default}.admin-calendar-legend{font-size:var(--fs-caption);color:var(--muted);align-items:center;gap:5px;margin-top:10px;display:flex}.admin-calendar-legend .admin-calendar-day{cursor:default}.admin-day{border-top:1px solid var(--edge);margin-top:18px;padding-top:18px}.admin-day h3{margin-bottom:12px;font-size:15px;font-weight:600}.admin-event-counts{flex-wrap:wrap;gap:8px;margin:12px 0;padding:0;list-style:none;display:flex}.admin-event-counts li{border:1px solid var(--edge);color:var(--muted);border-radius:999px;align-items:baseline;gap:8px;padding:5px 10px;font-size:12px;display:inline-flex}.admin-event-counts b{color:var(--ink);font-variant-numeric:tabular-nums}.admin-timeline{gap:18px;margin:14px 0 0;padding:0;list-style:none;display:grid}.admin-timeline>li{border-left:2px solid var(--edge);padding-left:16px}.admin-timeline-session{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:6px;font-size:13px;display:flex}.admin-timeline-session strong{color:var(--ink);font-weight:600}.admin-timeline-session span{color:var(--muted);font-size:12px}.admin-timeline ol{gap:4px;margin:0;padding:0;list-style:none;display:grid}.admin-timeline-event{grid-template-columns:52px minmax(0,1fr);gap:10px;font-size:13px;line-height:1.5;display:grid}.admin-timeline-event time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.admin-timeline-event small{color:var(--muted);font-size:var(--fs-caption);display:block}.admin-timeline-event.kind-lesson_completed span,.admin-timeline-event.kind-lesson_started span{color:var(--ink);font-weight:600}.admin-timeline-event.kind-recording_completed span:before{content:"● ";color:light-dark(#bd5851,#c25d55);font-size:var(--fs-caption);vertical-align:middle}.admin-callout{border:1px solid var(--edge-strong);border-radius:var(--radius-sm);background:var(--warning-soft);font-size:var(--fs-small);color:var(--warning);margin-bottom:18px;padding:12px 16px;line-height:1.6}.admin-muted{color:var(--muted)}@media (max-width:900px){.admin-nav a{white-space:nowrap;min-height:44px;padding:8px 12px}.admin-columns{grid-template-columns:1fr}.admin-heading h1{font-size:26px}.admin-console .button,.admin-console a.button,.admin-console button{min-height:44px}.admin-calendar-day,.admin-calendar-legend .admin-calendar-day{min-height:0}}@media (max-width:600px){.admin-panel{padding:16px}.admin-table-wrap{margin:0 -16px;padding:0 16px}.admin-list li{grid-template-columns:1fr auto}.admin-list li small,.admin-list li span:nth-child(3){display:none}}.review-mode{flex-wrap:wrap;gap:8px;display:flex}.review-mode button{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:var(--body);border-radius:9px;align-items:center;gap:8px;padding:0 14px;font-size:13px;display:inline-flex}.review-mode button svg{color:light-dark(#7f9a70,#58724a)}.review-mode button.is-selected{background:var(--soft);color:var(--accent);border-color:light-dark(#7fa070,#506f41)}.review-studying{flex-direction:column;min-height:calc(100svh - 78px);display:flex}.review-session{min-height:0}.review-session,.review-study{flex-direction:column;flex:1;display:flex}.review-study{gap:14px}.review-flashcard{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);flex-direction:column;flex:1;gap:22px;padding:36px 28px 26px}.review-face,.review-flashcard{justify-content:center;display:flex}.review-face{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:16px 12px}.review-face-label{font-size:var(--fs-caption);letter-spacing:1.8px;color:light-dark(#8a987e,#5f6c53);font-weight:600}.review-answer h3,.review-cue{font-family:var(--font-display);letter-spacing:-.6px;max-width:30ch;font-size:32px;font-weight:400;line-height:1.3}.review-cue{color:var(--body)}.review-answer{border-top:1px solid var(--edge);flex-direction:column;align-items:center;gap:10px;width:100%;max-width:60ch;margin-top:12px;padding-top:26px;display:flex}.review-face-translation{color:var(--muted);max-width:52ch;font-size:15px;line-height:1.7}.review-flashcard.is-long .review-answer h3,.review-flashcard.is-long .review-cue{letter-spacing:-.2px;text-align:left;max-width:70ch;font-size:20px;line-height:1.6}.review-flashcard.is-long .review-answer{align-items:flex-start;max-width:70ch}.account-review-card .review-flashcard{flex:0 auto;min-height:0;padding:30px 28px 22px}.review-card-source{text-align:center;color:var(--muted);font-size:12px}.review-listen-big{border:1px solid var(--edge-strong);background:var(--surface-subtle);width:76px;height:76px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.review-listen-big:disabled{opacity:.45}.review-tools{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:10px;display:flex}.review-tools .play-button{min-height:44px}.review-grade kbd,.review-reveal kbd,.review-tools kbd{font-family:inherit;font-size:var(--fs-caption);opacity:.6;border:1px solid;border-radius:4px;margin-left:4px;padding:1px 5px}.review-tools .speak-recorder{background:0 0;border:0;gap:8px;margin:0;padding:0}.review-tools .speak-recorder-actions{align-items:center}.speak-recorder-status{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.review-bar{border:1px solid var(--edge);background:var(--panel);border-radius:12px;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;padding:12px 16px;display:grid}.review-progress{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;display:flex}.review-progress b{color:var(--body);font-weight:600}.review-progress-tally{font-variant-numeric:tabular-nums;gap:8px;display:flex}.review-progress-tally i{background:var(--soft);border-radius:999px;padding:2px 8px;font-style:normal}.review-progress-tally i.is-again{background:var(--warning-soft);color:light-dark(#8a5a1f,#c38f57)}.review-progress-tally i.is-okay{background:var(--info-soft);color:var(--info)}.review-progress-tally i.is-confident{background:var(--edge);color:var(--accent)}.review-reveal{justify-content:center;min-width:220px}.review-stop{color:var(--muted);text-underline-offset:3px;justify-self:end;min-height:44px;font-size:12px;text-decoration:underline}.review-grade{grid-template-columns:repeat(3,minmax(120px,1fr));gap:8px;display:grid}.review-grade button{border:1px solid var(--edge);background:var(--panel);min-height:56px;color:var(--body);border-radius:10px;justify-items:center;gap:2px;padding:8px 12px;display:grid}.review-grade button strong{font-size:13px;font-weight:600}.review-grade button span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.review-grade button:disabled{opacity:.5;cursor:not-allowed}.review-grade-again:not(:disabled):hover{border-color:var(--edge-strong);background:var(--warning-soft)}.review-grade-okay:not(:disabled):hover{border-color:var(--edge-strong);background:var(--info-soft)}.review-grade-confident:not(:disabled):hover{background:var(--surface-subtle);border-color:light-dark(#7fa070,#506f41)}@media (max-width:900px){.review-studying{min-height:calc(100vh - 68px - var(--tabbar-height,0px));min-height:calc(100svh - 68px - var(--tabbar-height,0px))}}@media (max-width:600px){.account-review-card .review-flashcard,.review-flashcard{gap:16px;padding:22px 16px 18px}.review-face{padding:8px 4px}.review-answer h3,.review-cue{font-size:24px}.review-answer{padding-top:18px}.review-bar{grid-template-columns:1fr;gap:10px;padding:12px}.review-progress{justify-content:center}.review-grade{grid-template-columns:repeat(3,1fr);gap:6px}.review-grade button{padding:8px 4px}.review-reveal{width:100%;min-width:0}.review-stop{justify-self:center}}.ipa{letter-spacing:.2px;color:light-dark(#6b7d6e,#788a7b);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-family:Charis SIL,Doulos SIL,Gentium Plus,Georgia,Times New Roman,serif;font-size:14px;line-height:1.6}.prompt-block .question-ipa{margin-top:6px;font-size:14px}.answer-ipa{text-align:center;max-width:60ch;margin-top:8px;margin-left:auto;margin-right:auto}.chunk-ipa{margin-top:6px;font-size:16px}.ipa-toggle{font-size:var(--fs-caption);border:1px solid var(--edge);background:var(--panel);color:var(--muted);border-radius:999px;min-height:26px;margin-left:12px;padding:2px 8px}.ipa-toggle[aria-pressed=true]{background:var(--edge);border-color:var(--edge-strong);color:var(--accent)}.vocabulary-block{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin-top:22px;padding:18px 20px}.vocabulary-block .prompt-label{align-items:center;gap:8px;margin-bottom:12px;display:flex}.vocabulary-block .prompt-label .new-badge{margin-left:0}.vocabulary-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.vocabulary-chips button{border:1px solid var(--edge);background:var(--surface-subtle);text-align:left;border-radius:12px;justify-items:start;gap:2px;min-height:44px;padding:8px 14px;display:grid}.vocabulary-chips button strong{color:var(--body);font-size:15px;font-weight:600}.vocabulary-chips button .ipa{font-size:13px}@media (hover:hover){.vocabulary-chips button:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}}.vocabulary-note{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.7}@media (max-width:600px){.ipa-toggle{min-height:44px;margin-top:6px;margin-left:0;padding:8px 12px;font-size:12px}.reading-caption span{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.chunk-ipa{font-size:15px}}.spoken-word{background:var(--accent-soft);color:light-dark(#1f3a2a,#e6f6ea);box-shadow:0 0 0 3px var(--accent-soft);border-radius:4px}.word-spans>span{-webkit-box-decoration-break:clone;box-decoration-break:clone}.rank-mark{border:1px solid var(--edge-strong);border-radius:50% 50% var(--radius-sm) var(--radius-sm);width:42px;height:46px;color:var(--ink);background:var(--panel);grid-template-columns:repeat(3,5px);align-items:end;gap:3px;padding:7px 8px 6px;display:inline-grid}.rank-mark i{background:currentColor;border-radius:4px 4px 1px 1px;width:5px;display:block}.rank-mark i:first-child{height:12px}.rank-mark i:nth-child(2){height:20px}.rank-mark i:nth-child(3){height:28px}.rank-mark b{font-weight:600;top:4px;right:6px}.rank-mark b,.rank-mark em{font-size:var(--fs-caption);position:absolute}.rank-mark em{background:var(--panel);border:1px solid var(--edge);border-radius:3px;padding:1px 4px;font-style:normal;line-height:1.2;bottom:-13px;right:-4px}.rank-mark-rookie{color:var(--muted)}.rank-mark-explorer{color:var(--info)}.rank-mark-speaker{color:var(--accent)}.rank-mark-fluent{color:var(--success)}.rank-mark-elite,.rank-mark-master{color:var(--warning)}.rank-mark-legend{color:var(--info);border-color:currentColor}.rank-mark-compact{grid-template-columns:repeat(3,3px);gap:2px;width:28px;height:31px;padding:4px 5px}.rank-mark-compact i{width:3px}.rank-mark-compact i:first-child{height:8px}.rank-mark-compact i:nth-child(2){height:13px}.rank-mark-compact i:nth-child(3){height:18px}.rank-mark-compact b,.rank-mark-compact em{display:none}@media (max-width:700px){.hall-achievements,.hall-columns{grid-template-columns:1fr;gap:0}.hall-achievements{gap:20px}}@media (max-width:600px){.rank-mark{flex:none}.hall-champion p{font-size:29px}}.rank-up-dialog{border:1px solid var(--edge-strong);border-radius:var(--radius-lg);background:var(--panel);width:min(440px,100vw - 32px);color:var(--ink);box-shadow:var(--shadow-float);padding:0}.rank-up-dialog::backdrop{background:light-dark(#1f2d2640,#0009)}.rank-up-dialog>div{text-align:center;justify-items:center;padding:38px 32px;display:grid}.rank-up-transition{font-family:var(--font-display);gap:5px;margin:18px 0 21px;font-size:21px;line-height:1.1;display:grid}.rank-up-transition span{color:var(--muted)}.rank-up-transition i{font-family:var(--font-ui);color:var(--accent);font-size:18px;font-style:normal}.rank-up-transition strong{color:var(--accent);font-weight:400}.rank-up-dialog .rank-mark{margin:0 0 20px;animation:rank-up-seal .48s ease-out}.rank-up-dialog h2{font-family:var(--font-display);font-size:29px;font-weight:400}.rank-up-dialog p{max-width:30ch;color:var(--muted);font-size:var(--fs-small);margin:9px 0 23px}.rank-up-dialog .primary-action{min-width:180px}@keyframes rank-up-seal{0%{opacity:0;transform:scale(.76)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.rank-up-dialog .rank-mark{animation:none}}.catalog-page .group-chips+.empty-state,.catalog-page .topic-toolbar+.empty-state,.video-filters+.empty-state,.video-filters+.loading{margin-top:24px}.video-head{margin-bottom:20px}.video-head h1{letter-spacing:-.6px;font-size:28px;line-height:1.25}.video-facts{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;gap:2px 0;margin-top:8px;display:flex}.video-facts span+span:before{content:"·";margin:0 8px}.video-layout{grid-template:"stage side""main side"1fr/minmax(0,1.6fr) minmax(320px,1fr);align-items:start;gap:16px 24px;display:grid}.video-sticky{grid-area:stage;min-width:0;scroll-margin-top:16px}.video-main{grid-area:main;align-content:start;gap:16px;min-width:0;display:grid}.video-side{grid-area:side;min-width:0}.video-stage{display:grid}.video-facade,.video-frame{aspect-ratio:16/9;border-radius:12px;grid-area:1/1;overflow:hidden}.video-frame{background:light-dark(#0f1512,#0b0f0d)}.video-frame.is-hidden{visibility:hidden}.video-frame iframe,.video-mount{border:0;width:100%;height:100%;display:block}.video-facade{background:var(--soft);align-content:center;place-items:center;gap:10px;display:grid;position:relative}.video-facade img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.video-facade-play{width:64px;height:64px;position:relative}.video-facade-label{color:var(--accent-ink);background:light-dark(#1c2520d9,#0b0f0dd9);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;position:relative}.video-privacy{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.6}.video-error{margin:12px 0 0}.video-error a{color:var(--accent);align-items:center;gap:4px;margin:5px;padding:7px 12px;display:inline-flex}.video-transport{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.video-step{border:1px solid var(--edge);background:var(--panel);width:44px;height:44px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.video-play{flex:none;width:48px;height:48px}.video-timeline{flex:160px;align-items:center;gap:10px;min-width:0;margin:0;display:flex}.video-timeline input{flex:1;min-width:0}.video-clock{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;flex:none}.video-clock i{opacity:.6;font-style:normal}.video-more{display:none}.video-options{align-items:center;gap:6px;display:flex}.video-option{border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:40px;color:var(--ink);font-size:var(--fs-small);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.video-option[aria-pressed=true]{border-color:var(--edge-strong);background:var(--accent-soft);color:var(--accent)}.video-mode{border-radius:var(--pill);background:var(--soft);grid-template-columns:1fr 1fr;gap:4px;margin-top:12px;padding:4px;display:grid}.video-mode button{border-radius:var(--pill);min-height:40px;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.video-mode button[aria-pressed=true]{background:var(--panel);color:var(--accent);box-shadow:0 1px 3px light-dark(#2936201f,#00000059)}.video-about{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel)}.video-about>summary{min-height:48px;font-size:var(--fs-small);color:var(--ink);cursor:pointer;align-items:center;padding:0 18px;font-weight:600;display:flex}.video-about-panel{padding:0 18px 18px}.video-tabs{border:0;border-bottom:1px solid var(--edge);background:0 0;border-radius:0;grid-template-columns:auto auto;justify-content:start;gap:0;margin:0 0 16px;padding:0}.video-tabs button{border-bottom:2px solid #0000;border-radius:0;min-height:36px;margin-bottom:-1px;padding:6px 12px}.video-tabs button[aria-pressed=true]{box-shadow:none;color:var(--accent);border-bottom-color:var(--accent);background:0 0}.video-tags{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.video-tags .filter-chip{border:1px solid var(--edge);background:var(--panel);text-decoration:none}.video-title-en{color:var(--muted);font-size:14px;line-height:1.5}.video-channel{color:var(--muted);margin-top:14px;font-size:12px}.video-description{margin-top:12px;font-size:14px;line-height:1.7}.video-youtube-link{min-height:44px;color:var(--accent);align-items:center;gap:6px;margin-top:8px;font-size:13px;display:inline-flex}.video-keys{margin:0}.video-side .transcript-card{max-height:calc(100vh - 40px);position:sticky;top:20px}.video-sentences{flex:1;grid-template-columns:1fr;min-height:0;overflow:auto}.video-transcript .follow-button{white-space:nowrap;border-radius:999px;margin:0;padding:10px 16px;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px light-dark(#2936201f,#00000059)}.video-sentences .sentence-row{color:var(--ink);border:1px solid #0000;align-items:flex-start;gap:10px}.video-sentences .row-number{font-variant-numeric:tabular-nums;min-width:38px}.video-transcript .row-copy strong{font-size:14px;line-height:1.7}.row-translation{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.6;display:block}.video-sentences .sentence-play{cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0;position:absolute;inset:0}.video-sentences .sentence-row.selected:hover,.video-sentences .sentence-row:hover{background:var(--soft)}.video-sentences .row-copy,.video-sentences .row-number{pointer-events:none;position:relative}.sentence-save{color:light-dark(#a5ae9a,#5b6553);background:0 0;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;padding:0;display:grid;position:relative}.sentence-save[aria-pressed=true]{color:var(--danger)}.sentence-save[aria-pressed=true] svg{fill:currentColor}@media (hover:hover){.sentence-save:hover{background:var(--edge);color:var(--ink)}.sentence-save[aria-pressed=true]:hover{color:var(--danger)}}.video-sentences .sentence-save{margin:-10px -8px -10px 0}.word-button{pointer-events:auto;min-height:44px;font:inherit;color:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:4px;margin:-10px 0;padding:0 1px;line-height:44px;-webkit-text-decoration:underline dotted light-dark(#9fb09a,#5f7060);text-decoration:underline dotted light-dark(#9fb09a,#5f7060);display:inline-block}@media (hover:hover){.word-button:hover{background:var(--edge);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}}.word-button:focus-visible{outline-offset:0}.transcript-error{margin:10px 0 0;font-size:12px;line-height:1.6}.video-transcript-tip{padding-bottom:6px}.video-sentences .sentence-row.practising{border-color:var(--edge-strong);background:var(--accent-soft)}.video-sentences .row-said{color:var(--accent);align-items:center;display:inline-flex}.video-practice{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);padding:20px 22px}.video-practice .line-card{gap:12px}.video-practice .reading-stage{min-height:0;padding:0}.video-practice .line-card-head{margin-bottom:8px}.video-practice .reading-stage .answer-en{font-family:var(--font-display);color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:clamp(22px,2vw,28px);font-weight:700;line-height:1.4}.video-practice .reading-hint{margin-top:8px}.video-practice-meaning{color:var(--muted);font-size:14px;line-height:1.6}.video-practice-said{font-size:var(--fs-caption);color:var(--accent);align-items:center;gap:4px;font-weight:600;display:inline-flex}.video-practice-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-top:12px;display:flex}.video-practice-pass{font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.video-practice-retry{font-size:var(--fs-small);color:var(--muted);flex:240px;line-height:1.6}.video-practice-skip{min-height:44px;font-size:var(--fs-small);margin-left:auto}.video-finish{justify-items:start;gap:12px;display:grid}.video-finish h2{font-family:var(--font-display);font-size:24px;font-weight:400}.video-finish-score{font-size:var(--fs-body);color:var(--muted)}.video-finish-actions{flex-wrap:wrap;gap:10px;display:flex}.video-finish-actions a{align-items:center;gap:8px;text-decoration:none;display:inline-flex}@media (max-width:900px){.video-layout{grid-template-rows:none;grid-template-columns:1fr;grid-template-areas:"stage""side""main";gap:14px}.video-layout[data-mode=shadow]{grid-template-areas:"stage""main""side"}.video-sticky{z-index:5;background:var(--app);padding-bottom:8px;scroll-margin-top:0;position:sticky;top:0}.video-side .transcript-card{max-height:none;padding:16px 12px 12px;position:relative}.video-sentences{max-height:max(180px,calc(100vh - var(--video-stage-height,50vh) - 96px - var(--tabbar-height,0px) - env(safe-area-inset-bottom,0px)));max-height:max(180px,calc(100svh - var(--video-stage-height,50vh) - 96px - var(--tabbar-height,0px) - env(safe-area-inset-bottom,0px)));margin-top:12px;overflow:auto}.video-transcript .follow-button{bottom:20px}.video-keys,.video-transcript-tip{display:none}.video-more{display:grid}.video-options{flex-wrap:wrap;flex-basis:100%;display:none}.video-options.is-open{display:flex}.video-mode button,.video-option{min-height:44px}}@media (max-width:600px){.video-room{padding-top:20px}.video-head{margin-bottom:16px}.video-head h1{font-size:22px}.video-transport{gap:6px;margin-top:8px}.video-play{width:44px;height:44px}.video-clock{display:none}.video-timeline{flex:1 1 0}.video-mode{margin-top:8px}.video-practice{padding:16px}.video-facade-play{width:56px;height:56px}.video-sentences .sentence-row{padding:12px 10px}.video-about>summary{padding:0 16px}.video-about-panel{padding:0 16px 16px}}.trade-art{--art-light:light-dark(#f4f6f3,#33403a);--art-dark:light-dark(#2f2e41,#d3d6de);border-radius:var(--radius);background:var(--trade);place-items:center;display:grid;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.trade-art{background:color-mix(in srgb,var(--trade) 14%,var(--panel))}}.trade-art{color:var(--trade)}.trade-art svg{width:100%;height:100%;padding:8%}.trade-art-small svg{padding:10%}.trade-art-tile{aspect-ratio:16/10;width:100%}.trade-art-small{flex:none;width:56px;height:56px}.professional-continue,.professional-next{border:1px solid var(--edge-strong);border-radius:var(--radius);background:linear-gradient(135deg,var(--soft),var(--panel));color:inherit;align-items:center;gap:16px;margin:4px 0 24px;padding:16px 20px;text-decoration:none;display:flex}@media (hover:hover){:is(.professional-continue,.professional-next):hover{box-shadow:0 4px 14px light-dark(#2936200f,#00000040)}}.professional-continue-text{flex:1;gap:3px;min-width:0;display:grid}.professional-continue-text strong{font-size:var(--fs-h2);font-weight:600}.professional-continue-text small{font-size:var(--fs-small);color:var(--muted)}.professional-go{min-height:var(--control);border-radius:var(--pill);background:var(--accent-fill);color:var(--accent-ink);white-space:nowrap;flex:none;align-items:center;gap:6px;padding:0 18px;font-weight:600;text-decoration:none;display:inline-flex}.professional-next.is-finished{flex-wrap:wrap;justify-content:space-between}.professional-trades{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.professional-trade{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;gap:6px;padding:12px 12px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:grid}@media (hover:hover){.professional-trade:hover{border-color:var(--edge-strong);box-shadow:0 4px 14px light-dark(#2936200f,#00000040)}}.professional-trade strong{font-size:var(--fs-h2);margin-top:6px;font-weight:600}.professional-trade small{font-size:var(--fs-small);color:var(--muted)}.professional-bar{background:var(--surface-subtle);border-radius:99px;height:6px;margin-top:4px;display:block;overflow:hidden}.professional-bar i{background:var(--accent);height:100%;display:block}.professional-track-head{align-items:flex-start;gap:18px;display:flex}.professional-track-head .page-heading{margin-bottom:18px}.professional-track-tally{font-size:var(--fs-small);color:var(--accent);font-weight:600}.professional-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.professional-search{min-height:var(--control);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--ink);font:inherit;flex:200px;padding:0 14px}.professional-path{gap:10px;margin:0;padding:0;list-style:none;display:grid}.professional-stop{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);overflow:hidden}.professional-stop-head{width:100%;min-height:56px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 16px;display:flex}.professional-stop-head:disabled{cursor:default;opacity:1}.professional-stop-head strong{flex:1;min-width:0;font-weight:600}.professional-stop-head small{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.professional-stop-number{background:var(--surface-subtle);width:30px;height:30px;font-size:var(--fs-small);border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.professional-stop-number.is-done{background:var(--accent-fill);color:var(--accent-ink)}.professional-steps{border-top:1px solid var(--edge);margin:0;padding:0 0 8px;list-style:none}.professional-step{min-height:48px;color:inherit;align-items:center;gap:12px;padding:6px 16px 6px 22px;text-decoration:none;display:flex;position:relative}.professional-step:before{content:"";border-left:2px solid var(--edge);position:absolute;top:0;bottom:0;left:36px}.professional-steps li:first-child .professional-step:before{top:50%}.professional-steps li:last-child .professional-step:before{bottom:50%}@media (hover:hover){.professional-step:hover{background:var(--surface-subtle)}}.professional-step.is-next{background:var(--soft);font-weight:600}.professional-dot{z-index:1;border:2px solid var(--accent);background:var(--panel);width:18px;height:18px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;margin-left:6px;display:grid;position:relative}.professional-dot[data-status=completed],.professional-dot[data-status=practised]{background:var(--accent-fill);border-color:var(--accent-fill)}.professional-dot[data-status=new]{border-color:var(--edge-strong)}.professional-step-title{flex:1;min-width:0}@media (max-width:1023px){.professional-trades{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:599px){.professional-trades{grid-template-columns:1fr}.professional-continue,.professional-next{flex-wrap:wrap}.professional-go{justify-content:center;width:100%;min-height:44px}.professional-track-head{gap:12px}.professional-search{min-height:44px}.professional-stop-head{min-height:52px}}.professional-guest-note{margin-top:22px}.scenario-intro .section-kicker{margin:18px 0 8px;display:block}.scenario-intro>.section-kicker:first-child{margin-top:0}.scenario-setting{font-size:14px;line-height:1.7}.scenario-setting-en{margin-top:6px}.scenario-intro-lead,.scenario-setting-en{color:var(--muted);font-size:12px;line-height:1.6}.scenario-intro-lead{margin-bottom:8px}.scenario-objectives{counter-reset:objective;gap:8px;margin:0;padding:0;list-style:none;display:grid}.scenario-objectives li{align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;display:flex}.scenario-objectives li svg{color:var(--accent);flex:none;margin-top:3px}.scenario-objectives li>span{gap:2px;display:grid}.scenario-objectives li strong{font-weight:600}.scenario-objectives li span span{color:var(--muted);font-size:12px}.scenario-skills{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.scenario-fold{border-top:1px solid var(--edge);margin-top:16px;padding-top:12px}.scenario-fold summary{cursor:pointer;min-height:44px;color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:12px;list-style:none;display:flex}.scenario-fold summary::-webkit-details-marker{display:none}.scenario-fold summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:7px;height:7px;margin:0 6px 3px 0;transition:transform .15s;transform:rotate(45deg)}.scenario-fold[open] summary:after{margin:3px 6px 0 0;transform:rotate(-135deg)}.scenario-fold summary .section-kicker{margin:0}.scenario-phrases{gap:8px;margin:6px 0 0;padding:0;list-style:none;display:grid}.scenario-phrases li{align-items:flex-start;gap:10px;display:flex}.scenario-phrases li>span{gap:2px;font-size:14px;line-height:1.5;display:grid}.scenario-phrases small{color:var(--muted);font-size:12px}.scenario-play{border:1px solid var(--edge);background:var(--panel);width:44px;height:44px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.scenario-play[aria-pressed=true]{background:var(--soft);border-color:var(--edge-strong)}.scenario-turn-note{color:var(--streak);font-size:12px;font-style:italic;line-height:1.6}.scenario-room.is-chat{max-width:800px}.chat-head{gap:10px;margin-bottom:8px;display:grid}.chat-head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.chat-head-title{min-width:0}.chat-head-title h1{font-size:var(--fs-h1);margin:0;line-height:1.25}.chat-head-title p{font-size:var(--fs-small);color:var(--muted);margin:4px 0 0}.chat-mode{border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);flex:none;padding:3px;display:inline-flex}.chat-mode button{border-radius:var(--pill);min-height:36px;color:var(--muted);font:inherit;font-size:var(--fs-small);cursor:pointer;background:0 0;border:0;padding:0 14px;font-weight:600}.chat-mode button[aria-pressed=true]{background:var(--accent-fill);color:var(--accent-ink)}.chat-mode button:disabled{cursor:default;opacity:.6}.chat-start{border:1px dashed var(--edge-strong);border-radius:var(--radius);background:var(--panel);gap:14px;margin:18px 0;padding:18px 20px;display:grid}.chat-start p{margin:0;line-height:1.7}.chat-start-actions{flex-wrap:wrap;gap:10px;display:flex}.chat-start-actions .secondary-action{align-items:center;gap:8px;display:inline-flex}.chat{flex-direction:column;gap:12px;margin:18px 0;padding:0;list-style:none;display:flex}.chat-bubble{border:1px solid var(--edge);background:var(--panel);border-radius:18px;gap:4px;max-width:82%;padding:10px 14px;display:grid}.chat-bubble.is-theirs{border-bottom-left-radius:6px;align-self:flex-start}.chat-bubble.is-yours{background:var(--soft);border-color:var(--edge-strong);border-bottom-right-radius:6px;align-self:flex-end}.chat-bubble.is-playing{border-color:var(--accent)}.chat-who{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chat-speaking{color:var(--accent)}.chat-score{border-radius:var(--pill);background:var(--surface-subtle);color:var(--body);align-items:center;gap:3px;padding:1px 8px;font-weight:600;display:inline-flex}.chat-score.is-pass{background:var(--accent-fill);color:var(--accent-ink)}.chat-text{margin:0;font-size:17px;line-height:1.55}.chat-meaning{font-size:var(--fs-small);color:var(--muted);margin:0;line-height:1.6}.chat-tools{gap:4px;margin-top:2px;display:flex}.chat-resume{margin:0 0 16px}.chat-resume .learn-primary{align-items:center;gap:8px;display:inline-flex}.chat-turn{border:2px solid var(--accent);border-radius:var(--radius);background:var(--panel);gap:8px;width:100%;padding:14px 16px;display:grid}.chat-turn-line{font-family:var(--font-display);overflow-wrap:anywhere;margin:0;font-size:clamp(20px,2vw,26px);line-height:1.45}.chat-compared{font-size:var(--fs-caption);color:var(--muted);margin:0}.chat-turn-tools{flex-wrap:wrap;gap:8px;display:flex}.chat-turn-tools button{min-height:var(--control-sm);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--body);font:inherit;font-size:var(--fs-small);align-items:center;gap:6px;padding:0 12px;display:inline-flex}.chat-turn-tools button[aria-pressed=true]{background:var(--soft);border-color:var(--edge-strong)}.chat-about,.chat-objectives{margin:8px 0}.chat-about summary,.chat-objectives summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.scenario-room.is-chat .lesson-dock .chat-turn{box-shadow:0 -6px 18px light-dark(#2936200f,#00000040)}@media (max-width:599px){.chat-bubble{max-width:94%}.chat-mode{width:100%}.chat-mode button{flex:1;min-height:44px}.chat-turn-tools button{min-height:44px}.chat-text{font-size:16px}}.scenario-next{text-align:center;justify-content:center;align-items:center;text-decoration:none;display:flex}.scenario-back{font-size:13px}@media (max-width:900px){.professional-figures{grid-template-columns:repeat(2,1fr)}.scenario-setting-en,.video-keys{display:none}}@media (max-width:600px){:is(.professional-hub,.professional-track,.scenario-room){padding-top:24px}:is(.professional-hub,.professional-track,.scenario-room) .page-heading{margin-bottom:24px}.professional-hub .professional-guest-note{margin-top:24px}.professional-track .professional-categories{gap:16px;margin-top:24px}.professional-figures,.professional-track-card{padding:16px}.professional-category-head{grid-template-columns:32px minmax(0,1fr) 20px;padding:12px 14px}.professional-category-count{grid-column:2;font-size:12px}.professional-category-body{padding:0 14px 14px}.professional-scenario-row{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:12px}.professional-scenario-id{grid-column:1/-1}.professional-state{grid-column:2}.scenario-back{padding:0 16px 16px}}.dictation-focus{margin-top:0}.dictation-focus p:not(.reading-note){font-size:var(--fs-body);line-height:1.7}.dictation-track-meta{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:8px}.page-meta.dictation-track-meta{margin:-16px 0 20px}.dictation-band{margin:0 0 24px}.dictation-band .section-kicker{margin-bottom:8px;display:block}.dictation-band-picker{flex-wrap:wrap;gap:8px;display:flex}.dictation-band-picker .filter-chip{min-height:var(--control);padding:0 14px}.dictation-band-picker .filter-chip[aria-checked=true]{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.dictation-band-picker .filter-chip[aria-checked=true] small{color:inherit}.dictation-band>.reading-note{margin-top:8px}.dictation-section-empty{margin:0}.dictation-next-up{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 32px;padding:14px 16px;display:flex}.dictation-next-up strong{color:var(--ink);font-weight:600}@media (max-width:600px){.dictation-next-up .primary-action{justify-content:center;width:100%}}.page-meta-note{color:var(--muted);flex-basis:100%}.dictation-focus-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.dictation-focus-list li{border:1px solid var(--edge);background:var(--app);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;min-height:36px;padding:6px 12px;font-size:13px;display:flex}.dictation-focus-list li b{font-variant-numeric:tabular-nums;color:var(--accent)}.dictation-focus .secondary-action{align-items:center;gap:8px;margin-top:12px;text-decoration:none;display:inline-flex}.dictation-section{margin-top:32px}.dictation-section:first-of-type{margin-top:0}.dictation-section .card-heading{flex-wrap:wrap;align-items:baseline;margin-bottom:12px}.dictation-section .card-heading h2{font-size:var(--fs-h2);flex:auto;margin:0;font-weight:600}.dictation-section .card-heading .section-kicker{flex-basis:100%}.dictation-section .card-heading .reading-note{flex:0 auto;margin:0}.dictation-exercises{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.dictation-section-more{margin:12px 0 0}.dictation-section-more .secondary-action{cursor:pointer}.dictation-exercise-card a{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;gap:4px;padding:16px 18px;text-decoration:none;transition:border-color .15s,background-color .15s;display:grid}@media (hover:hover){.dictation-exercise-card a:hover{border-color:var(--edge-strong);background:var(--surface-subtle)}}.dictation-exercise-card.is-completed a{background:var(--surface-subtle)}.dictation-exercise-id{font-size:var(--fs-label);letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums}.dictation-exercise-title{font-size:15px;font-weight:600;line-height:1.35}.dictation-exercise-en{font-size:var(--fs-small);color:var(--muted)}.dictation-exercise-meta{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:6px;display:flex}.dictation-exercise-state{font-size:var(--fs-caption);color:var(--muted);align-items:center;gap:6px;margin-top:2px;font-weight:500;display:inline-flex}.is-completed .dictation-exercise-state{color:var(--body)}.is-started .dictation-exercise-state{color:var(--info)}.dictation-guest-note{margin-top:22px}.dictation-segment-list{gap:4px;margin:0 0 12px;padding:0;list-style:none;display:grid}.dictation-segment-list button{width:100%;min-height:40px;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 10px;font-size:13px;display:grid}@media (hover:hover){.dictation-segment-list button:hover{background:var(--soft)}}.dictation-segment-list .is-current button{background:var(--soft);border-color:var(--edge-strong);font-weight:600}.dictation-segment-number{background:var(--app);border:1px solid var(--edge);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:26px;height:26px;font-size:12px;display:grid}.is-perfect .dictation-segment-number{background:var(--edge);border-color:var(--edge-strong);color:var(--body)}.is-tried .dictation-segment-number{background:var(--edge);border-color:var(--edge-strong);color:var(--warning)}.dictation-segment-speaker{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dictation-segment-state{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.dictation-intro .section-kicker{margin:20px 0 8px;display:block}.dictation-context{font-family:var(--font-display);letter-spacing:-.1px;max-width:60ch;font-size:18px;line-height:1.6}.dictation-objectives{gap:8px;margin:0;padding:0;list-style:none;display:grid}.dictation-objectives li{font-size:var(--fs-body);flex-wrap:wrap;align-items:flex-start;gap:10px;line-height:1.5;display:flex}.dictation-objectives li svg{color:var(--accent);flex:none;margin-top:3px}.dictation-objective-en{width:100%;font-size:var(--fs-caption);color:var(--muted);padding-left:24px}.dictation-speakers{flex-wrap:wrap;align-items:center;gap:6px;margin-top:16px;display:flex}.dictation-speakers-label{font-size:var(--fs-caption);color:var(--muted);margin-right:4px}.dictation-intro-start{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:20px;display:flex}.dictation-intro-start .reading-note{margin:0}.dictation-settings{border-top:1px solid var(--edge);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px 24px;margin:20px 0 0;padding-top:16px;display:grid}.dictation-settings .setting>span:first-child{font-size:var(--fs-caption);color:var(--muted);font-weight:600}.dictation-settings .reading-note{font-size:var(--fs-caption);margin:0}.dictation-choice{border:1px solid var(--edge);background:var(--panel);border-radius:8px;gap:0;width:max-content;max-width:100%;margin:4px 0;padding:2px;display:inline-flex}.dictation-choice .filter-chip{min-height:28px;color:var(--muted);background:0 0;border:0;border-radius:6px;padding:0 10px}.dictation-choice .filter-chip[aria-checked=true]{background:var(--soft);color:var(--accent);font-weight:600}.dictation-correction-head,.dictation-stage-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.dictation-stage-head .reading-position{margin:0}.dictation-speaker{font-size:var(--fs-caption);letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.dictation-transport{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.dictation-transport button{border:1px solid var(--edge);background:var(--panel);min-height:44px;color:inherit;border-radius:10px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;display:inline-flex}.dictation-play{font-weight:600;background:var(--soft)!important;border-color:var(--edge-strong)!important;color:var(--accent)!important}.dictation-rate{align-items:center;gap:8px;margin-left:auto;display:flex}.dictation-rate>span{color:var(--muted);font-size:12px}.dictation-count{background:var(--app);border:1px solid var(--edge);min-width:20px;height:20px;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--muted);border-radius:999px;place-items:center;padding:0 6px;display:inline-grid}.dictation-answer-label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.dictation-answer{border:1px solid var(--edge);background:var(--panel);width:100%;min-height:96px;color:var(--ink);font-family:var(--font-display);resize:vertical;border-radius:12px;padding:14px 16px;font-size:22px;line-height:1.5;display:block}.dictation-answer:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--edge);outline:0}.dictation-hints{border:1px dashed var(--edge);background:var(--app);border-radius:10px;margin:12px 0 0;padding:12px 14px;font-size:14px;line-height:1.7}.dictation-hints p{margin:0}.dictation-letters{letter-spacing:1px;flex-wrap:wrap;gap:6px 14px;font-family:ui-monospace,Menlo,monospace;display:flex}.dictation-letters b{color:var(--accent)}.dictation-hint-transcript{font-family:var(--font-display);font-size:18px}.dictation-confidence{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;font-size:13px;display:flex}.dictation-confidence .filter-chip[aria-checked=true]{background:var(--soft);border-color:var(--edge-strong);color:var(--accent)}.dictation-stage-actions{margin-top:18px}.dictation-stage-actions kbd{font-size:var(--fs-caption);opacity:.85;border:1px solid light-dark(#fff6,#1c252066);border-radius:5px;margin-left:6px;padding:1px 6px;font-family:ui-monospace,Menlo,monospace}.dictation-figures{color:var(--muted);font-variant-numeric:tabular-nums;margin:0;font-size:14px}.dictation-figures strong{color:var(--ink);font-size:16px}.dictation-result-line{border:1px solid var(--edge);background:var(--app);font-family:var(--font-display);border-radius:12px;flex-wrap:wrap;gap:8px 10px;margin:0 0 16px;padding:16px 18px;font-size:22px;line-height:1.6;display:flex}.dict-word{border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:2px 6px;display:inline-flex;position:relative}.dict-word s{text-decoration:line-through;-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger);color:var(--muted)}.dict-word b{font-weight:400}.dict-word ins{text-decoration:none}.dict-word.is-correct{color:var(--body)}.dict-word.is-spelling{background:var(--soft);box-shadow:inset 0 -2px light-dark(#e5c56a,#a68a3a)}.dict-word.is-wrong{background:var(--danger-soft)}.dict-word.is-missing{background:var(--info-soft);border:1px dashed var(--info)}.dict-word.is-extra{background:var(--soft)}.dict-word-tag{font-family:var(--font-ui);font-size:var(--fs-caption);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);line-height:1}.dictation-mistakes{gap:6px;margin:0 0 18px;padding:0;font-size:13px;line-height:1.6;list-style:none;display:grid}.dictation-mistakes strong{font-weight:600}.dictation-transcript{border:1px solid var(--edge);background:var(--panel);border-radius:12px;padding:16px 18px}.dictation-transcript-line{font-family:var(--font-display);margin:6px 0 8px;font-size:22px;line-height:1.55}.dictation-transcript-line .word-button{font:inherit;color:inherit;background:0 0;border:0;border-radius:4px;min-height:0;padding:0 1px}.dictation-transcript-line .spoken-word{background:var(--accent-soft);border-radius:4px}.dictation-translation{color:var(--muted);font-size:14px;line-height:1.6}.dictation-note{color:var(--streak);margin-top:8px;font-size:13px;font-style:italic;line-height:1.6}.dictation-phenomena{color:var(--muted);gap:4px;margin:8px 0 0;padding:0;font-size:12px;line-height:1.6;list-style:none;display:grid}.dictation-actions{margin-top:18px}.dictation-actions button,.dictation-stage-actions button,.dictation-transport button{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.dictation-actions button.is-saved{color:var(--accent)}.dictation-post-error{color:var(--warning)}.dictation-results h2{margin:6px 0 4px;font-size:24px;font-weight:600}.dictation-result-figures{grid-template-columns:repeat(4,1fr);margin:16px 0}.dictation-results .section-kicker{margin:18px 0 8px;display:block}.dictation-difficult{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dictation-difficult button{border:1px solid var(--edge);background:var(--app);width:100%;min-height:48px;color:inherit;text-align:left;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:grid}.dictation-difficult button .reading-note{margin:0}.dictation-suggestion{color:var(--accent);margin-top:18px;font-size:15px;font-weight:600}.dictation-results .reading-controls{margin-top:18px}.dictation-results .reading-controls a{justify-content:center;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.dictation-review-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.dictation-review-list a{border:1px solid var(--edge);background:var(--app);min-height:56px;color:inherit;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;padding:10px 14px;text-decoration:none;display:grid}.dictation-review-list a svg{color:var(--accent);grid-row:1/span 2}.dictation-review-title{font-size:14px;font-weight:600}.dictation-review-list .reading-note{margin:0}.dictation-review .settings-card{margin-top:18px}@media (max-width:900px){.dictation-result-figures{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){:is(.dictation-hub,.dictation-room,.dictation-review){padding-top:24px}:is(.dictation-hub,.dictation-room,.dictation-review) .page-heading{margin-bottom:24px}.dictation-hub .page-meta.dictation-track-meta{margin:-14px 0 24px}.dictation-hub .dictation-next-up{margin-bottom:24px;padding:16px}.dictation-hub .dictation-focus{padding:16px}.dictation-hub .dictation-section:not(:first-of-type){margin-top:24px}.dictation-hub .dictation-section-more{margin-top:16px}:is(.dictation-hub,.dictation-review) .dictation-exercises{gap:16px}:is(.dictation-hub,.dictation-room) .dictation-guest-note{margin-top:24px}.dictation-room .dictation-settings{margin-top:16px}.dictation-review .settings-card{margin-top:24px;padding:16px}.dictation-exercise-card a{padding:16px}.dictation-exercise-title{font-size:16px}.dictation-answer{min-height:88px;font-size:18px}.dictation-result-line{gap:6px 8px;padding:12px 14px;font-size:18px}.dictation-transcript-line{font-size:19px}.dictation-rate{width:100%;margin-left:0}.dictation-transport button{flex:1;justify-content:center}.dictation-segment-list button{min-height:44px}.dictation-stage-actions kbd{display:none}.dict-word-tag,.dictation-speaker,.dictation-word-tag{font-size:12px}}.dictation-exercise-test{color:var(--accent);font-weight:600}.ielts-tests-section{margin:0 0 32px}.ielts-tests-section .card-heading{flex-wrap:wrap;align-items:baseline;margin-bottom:6px}.ielts-tests-section .card-heading h2{font-size:var(--fs-h2);flex:auto;align-items:center;gap:8px;margin:0;font-weight:600;display:inline-flex}.ielts-tests-section>.reading-note{margin:0 0 12px}.ielts-test-cards{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:12px;display:grid}.ielts-test-cards .ielts-test{margin:0}.ielts-test .card-heading{flex-wrap:wrap;align-items:baseline;gap:6px 12px}.ielts-test .card-heading h2{font-size:var(--fs-h3);flex:auto;margin:0;font-weight:600}.ielts-test-state{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.ielts-parts{border-top:1px solid var(--edge);margin:12px 0 0;padding:0;list-style:none}.ielts-parts li{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:4px 12px;min-height:48px;padding:8px 0;display:grid}.ielts-part-name{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.ielts-part-title{text-overflow:ellipsis;overflow:hidden}.ielts-part-state,.ielts-part-title{font-size:var(--fs-small);color:var(--muted);white-space:nowrap}.ielts-part-state{font-variant-numeric:tabular-nums}.ielts-parts .text-button{white-space:nowrap;min-height:36px}.ielts-test-actions{flex-wrap:wrap;gap:8px 12px;margin-top:14px;display:flex}.ielts-tests .page-heading h1{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.ielts-tests .ielts-not-official{margin:-8px 0 20px}.ielts-tests .ielts-test{margin-bottom:16px}@media (max-width:600px){.ielts-tests{padding-top:24px}.ielts-tests .page-heading{margin-bottom:20px}.ielts-tests .ielts-not-official{margin:0 0 16px}.ielts-test{padding:16px}.ielts-parts li{grid-template-columns:auto minmax(0,1fr);padding:10px 0}.ielts-part-title{white-space:normal;grid-column:2}.ielts-part-state{grid-area:2/1/auto/2;font-size:12px}.ielts-parts .text-button{grid-area:2/2;justify-self:end;min-height:44px}.ielts-test-actions .primary-action,.ielts-test-actions .secondary-action{justify-content:center;width:100%}.ielts-tests-section .card-heading .text-button{min-height:44px}}.ielts-room-heading{margin-bottom:16px}.ielts-room-heading h1{font-size:var(--fs-h2)}.ielts-intro>p:first-child{font-size:var(--fs-body);margin:0 0 4px;line-height:1.7}.ielts-intro .ielts-parts li{grid-template-columns:auto minmax(0,1fr)}.ielts-intro .ielts-part-title{white-space:normal}.ielts-intro .xp-rule-line{margin-top:14px}.ielts-top.is-running{top:var(--topbar);z-index:20;border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);margin:0 0 20px;position:sticky;box-shadow:0 6px 18px #1f2a2214}.ielts-bar{flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.ielts-bar-part{white-space:nowrap;font-weight:600}.ielts-bar-phase{font-size:var(--fs-small);color:var(--muted);flex:auto;align-items:baseline;gap:8px;display:inline-flex}.ielts-bar-clock{font-size:var(--fs-h3);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.ielts-audio{box-sizing:border-box;width:100%;padding:10px 16px 0;display:block}.ielts-audio[hidden]{display:none}.ielts-layout{grid-template-columns:minmax(0,1fr) 232px;align-items:start;gap:24px;display:grid}.ielts-paper{gap:28px;min-width:0;display:grid}.ielts-part>h2{font-size:var(--fs-h2);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 4px;font-weight:600;display:flex}.ielts-part>h2 small{font-weight:500}.ielts-part>h2 small,.ielts-situation{font-size:var(--fs-small);color:var(--muted)}.ielts-situation{margin:0 0 16px}.ielts-part.is-current .ielts-situation{color:var(--ink)}.ielts-group{margin-top:16px}.ielts-group-head{margin-bottom:12px}.ielts-group-head .section-kicker{margin-bottom:4px;display:block}.ielts-instruction{margin:0;font-weight:600}.ielts-instruction-vi{font-size:var(--fs-small);color:var(--muted);margin:2px 0 0}.ielts-choice,.ielts-matches,.ielts-options,.ielts-sentences,.ielts-sheet,.ielts-table{background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius)}.ielts-sheet{gap:8px;padding:16px 20px;display:grid}.ielts-sheet-title{letter-spacing:.04em;text-transform:uppercase;font-weight:700;font-size:var(--fs-small);margin:0 0 4px}.ielts-line{line-height:2;font-size:var(--fs-body)}.ielts-gap{vertical-align:baseline;border:0;border-bottom:2px solid var(--edge-strong);background:var(--app);min-height:36px;color:var(--ink);font:inherit;border-radius:4px 4px 0 0;max-width:100%;margin:0 4px;padding:4px 8px;font-weight:600;line-height:1.4;display:inline-block}.ielts-gap:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-bottom-color:var(--accent)}.ielts-gap:disabled{color:var(--muted)}.ielts-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-body);padding:8px 12px 12px}.ielts-table caption{text-align:left;caption-side:top;padding:8px 8px 4px}.ielts-table td,.ielts-table th{text-align:left;vertical-align:top;border-top:1px solid var(--edge);padding:10px 8px;line-height:1.8}.ielts-table thead th{font-size:var(--fs-small);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-top:0}.ielts-table tbody th{white-space:nowrap;font-weight:600}.ielts-sentences{gap:6px;margin:0;padding:12px 20px 12px 40px;line-height:2;display:grid}.ielts-sentences li::marker{font-weight:700}.ielts-choice{gap:4px;min-width:0;margin:0 0 12px;padding:12px 18px 14px;display:grid}.ielts-choice legend{float:left;width:100%;margin:0 0 8px;padding:0;font-weight:500;line-height:1.6}.ielts-choice legend b{margin-right:6px}.ielts-option{cursor:pointer;border-radius:8px;align-items:center;gap:12px;min-height:40px;padding:4px 6px;display:flex}.ielts-option:hover{background:var(--surface-subtle)}.ielts-option input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin:0}.ielts-option b{margin-right:4px}.ielts-options{gap:4px;margin:0 0 12px;padding:12px 20px;line-height:1.7;list-style:none;display:grid}.ielts-match b,.ielts-options b{min-width:1.4em;font-weight:700;display:inline-block}.ielts-matches{margin:0;padding:6px 18px;list-style:none}.ielts-match{border-top:1px solid var(--edge);grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:12px;min-height:52px;padding:6px 0;display:grid}.ielts-match:first-child{border-top:0}.ielts-answer-sheet{top:calc(var(--topbar) + 80px);border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);padding:14px 16px;position:sticky}.ielts-answered{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin:0 0 10px}.ielts-cells{grid-template-columns:repeat(5,1fr);gap:6px;margin:0;padding:0;list-style:none;display:grid}.ielts-cells button{border:1px solid var(--edge);background:var(--app);width:100%;min-height:36px;color:var(--muted);font-size:var(--fs-small);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;padding:0}.ielts-cells button.is-answered{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.ielts-cells button[aria-current=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--ink);font-weight:700}@media (max-width:900px){.ielts-layout{grid-template-columns:minmax(0,1fr)}.ielts-answer-sheet{top:auto;bottom:var(--tabbar-height,0);margin-inline:calc(-1 * var(--gutter));padding:10px var(--gutter) max(10px,env(safe-area-inset-bottom,0px));border-radius:var(--r-lg) var(--r-lg) 0 0;border-inline:0;border-bottom:0;order:2;position:sticky;box-shadow:0 -6px 18px light-dark(#1f2a2214,#00000059)}.ielts-paper{order:1}.ielts-answered{margin-bottom:6px}.ielts-cells{margin-inline:calc(-1 * var(--gutter));padding:2px var(--gutter) 4px;scroll-padding-inline:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain;gap:6px;display:flex;overflow-x:auto}.ielts-cells::-webkit-scrollbar{display:none}.ielts-cells li{flex:none}.ielts-cells button{width:44px;min-height:44px}}@media (max-width:600px){.ielts-room{padding-top:20px}.ielts-room-heading{margin-bottom:12px}.ielts-top.is-running{margin-bottom:16px}.ielts-bar{gap:8px 12px;padding:10px 12px}.ielts-audio{padding:8px 12px 0}.ielts-bar .primary-action,.ielts-bar .secondary-action{flex:auto;min-height:44px}.ielts-paper{gap:24px}.ielts-sheet{padding:14px 16px}.ielts-line{font-size:16px;line-height:2.2}.ielts-gap{width:min(100%,12em);min-height:44px;font-size:16px}.ielts-gap[size="12"]{width:7em}.ielts-table{padding:8px;display:block;overflow-x:auto}.ielts-table td,.ielts-table th{padding:8px 6px;font-size:14px}.ielts-sentences{padding:12px 16px 12px 36px;font-size:16px}.ielts-choice{padding:12px 14px}.ielts-option{min-height:44px}.ielts-match{grid-template-columns:minmax(0,1fr) 96px}.ielts-intro{padding:16px}.ielts-intro .ielts-test-actions .primary-action,.ielts-intro .ielts-test-actions .secondary-action{justify-content:center;width:100%}}.ielts-summary{gap:6px;display:grid}.ielts-summary-raw{font-variant-numeric:tabular-nums;color:var(--muted);margin:0;font-size:40px;line-height:1.1}.ielts-summary-raw b{color:var(--ink);font-size:52px;font-weight:600}.ielts-summary-band{font-size:var(--fs-h3);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0;font-weight:600;display:flex}.ielts-summary-band small{font-size:var(--fs-small);color:var(--muted);font-weight:400}.ielts-summary .page-meta{margin:4px 0 0}.ielts-summary .xp-rule-line{margin-top:10px}.ielts-review-part{margin-top:28px}.ielts-review-part>h2{font-size:var(--fs-h2);flex-wrap:wrap;align-items:baseline;gap:6px 12px;margin:0 0 10px;font-weight:600;display:flex}.ielts-review-part>h2 small{font-size:var(--fs-small);color:var(--muted);font-weight:500}.ielts-review-rows{border-top:1px solid var(--edge);margin:0;padding:0;list-style:none}.ielts-review-row{border-bottom:1px solid var(--edge)}.ielts-review-row summary{cursor:pointer;grid-template-columns:32px 20px minmax(0,1fr) auto;align-items:center;gap:6px 12px;min-height:52px;padding:10px 4px;list-style:none;display:grid}.ielts-review-row summary::-webkit-details-marker{display:none}.ielts-review-row summary:hover{background:var(--surface-subtle)}.ielts-review-number{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}.ielts-review-mark{text-align:center;font-weight:700}.ielts-review-mark.is-correct{color:var(--success)}.ielts-review-mark.is-wrong{color:var(--danger)}.ielts-review-mark.is-blank{color:var(--faint)}.ielts-review-answers{flex-wrap:wrap;gap:2px 16px;min-width:0;display:flex}.ielts-review-answers small{color:var(--muted);margin-right:4px;font-weight:400}.ielts-review-printed{font-weight:600}.ielts-review-typed{color:var(--danger)}.ielts-review-reason{font-size:var(--fs-small);color:var(--muted);white-space:nowrap}.ielts-review-body{gap:8px;padding:4px 4px 16px 44px;display:grid}.ielts-segment-text{font-size:var(--fs-body);margin:0;line-height:1.8}.ielts-segment-text.is-whole{background:var(--soft);border-radius:6px;padding:4px 8px}.ielts-segment-translation{font-size:var(--fs-small);color:var(--muted);margin:0}.ielts-review-hint{margin:0}.ielts-review-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:4px;display:flex}.ielts-review-next{align-items:center;margin-top:28px}@media (max-width:600px){.ielts-review{padding-top:20px}.ielts-summary{padding:16px}.ielts-summary-raw{font-size:32px}.ielts-summary-raw b{font-size:44px}.ielts-review-row summary{grid-template-columns:28px 18px minmax(0,1fr);padding:10px 0}.ielts-review-reason{white-space:normal;grid-column:3;font-size:12px}.ielts-review-body{padding:4px 0 16px}.ielts-review-actions .secondary-action,.ielts-review-actions .text-button{min-height:44px}.ielts-review-next .primary-action,.ielts-review-next .secondary-action{justify-content:center;width:100%}}.admin-tabs{flex-wrap:wrap;gap:6px;margin:0 0 14px;display:flex}.admin-tabs a{min-height:var(--control-sm);border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--muted);font-size:var(--fs-small);align-items:center;padding:0 12px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.admin-tabs a:hover{background:var(--surface-subtle);color:var(--ink)}.admin-tabs a[aria-current=page]{background:var(--soft);border-color:var(--edge-strong);color:var(--accent);font-weight:600}.professional-filter-bar{flex-wrap:wrap;align-items:flex-end;gap:12px 16px;margin-bottom:18px;display:flex}.professional-filter-bar .setting{min-width:180px}@media (max-width:600px){.admin-tabs a{min-height:44px}.professional-filter-bar .setting{min-width:100%}}.admin-video-form{gap:4px;display:grid}.admin-video-form .admin-search{margin-top:10px}.admin-video-form .admin-search .setting,.admin-video-form .admin-search label{color:var(--muted);flex:220px;gap:6px;font-size:12px;display:grid}.admin-video-form .admin-video-url{flex:2 360px}.admin-video-form .primary-action{align-self:flex-end}.admin-video-form .admin-issued,.admin-video-form .error-banner{margin-top:14px}.admin-video-cell{align-items:flex-start;gap:12px;min-width:260px;display:flex}.admin-video-cell img{object-fit:cover;background:var(--soft);border-radius:8px;flex:none;width:96px;height:54px}.admin-video-cell div{gap:3px;min-width:0;display:grid}.admin-video-cell strong{font-size:13px;font-weight:600;line-height:1.4}.admin-video-cell span{color:var(--muted);overflow-wrap:anywhere;font-size:12px}.admin-video-level{white-space:nowrap;gap:4px;font-size:12px;display:grid}.admin-video-level small{font-size:var(--fs-caption);color:var(--muted);white-space:normal}.admin-video-state{justify-items:start;gap:5px;min-width:160px;display:grid}.admin-video-level .level-pill{justify-self:start}.admin-video-state small{color:var(--muted);font-size:12px;line-height:1.5}.admin-video-error{color:var(--danger)}.admin-video-actions{flex-wrap:wrap;gap:2px;display:flex}.admin-video-actions .text-button{min-height:36px;color:var(--accent)}@media (max-width:600px){.admin-video-actions .text-button{min-height:44px}.admin-video-cell,.admin-video-state{min-width:0}}.session-card{border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);border:0;margin:0 0 24px;overflow:hidden}.session-card-head{border-bottom:1px solid var(--edge);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 24px;padding:20px 24px 18px;display:flex}.session-card-title{flex:320px;min-width:0}.session-card-title h2{font-family:var(--font-display);letter-spacing:-.3px;font-size:22px;font-weight:400;line-height:1.3}.session-card-summary{font-size:var(--fs-small);line-height:var(--lh-body);color:var(--muted);max-width:64ch;margin-top:6px}.session-card-summary strong{color:var(--ink);font-weight:600}.session-actions{flex-wrap:wrap;flex:none;align-items:center;gap:8px;display:flex}.session-actions .secondary-action{text-decoration:none}.session-finished{color:var(--accent);gap:8px;font-weight:600;display:inline-flex}.session-finished,.session-level{font-size:var(--fs-small);align-items:center}.session-level{border-bottom:1px solid var(--edge);color:var(--muted);flex-wrap:wrap;gap:6px 12px;padding:10px 24px;display:flex}.session-level>span:first-child{color:var(--ink);font-weight:600}.session-level-note{color:var(--muted);font-size:var(--fs-caption)}.session-steps{gap:0;margin:0;padding:4px 8px;list-style:none;display:grid}.session-step{border-bottom:1px solid var(--edge);border-radius:8px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:52px;padding:8px 12px;display:grid}.session-step:last-child{border-bottom:0}.session-step.is-current{background:var(--soft)}.session-step.is-done{opacity:.6}.session-step-number{border:1px solid var(--edge-strong);width:26px;height:26px;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--muted);border-radius:50%;place-items:center;font-weight:600;display:grid}.session-step.is-current .session-step-number{background:var(--accent-fill);border-color:var(--accent-fill);color:var(--accent-ink)}.session-step.is-done .session-step-number{color:var(--accent);border-color:var(--accent)}.session-step-body{gap:1px;min-width:0;display:grid}.session-step-kind{font-size:var(--fs-body);font-weight:600}.session-step-why{font-size:var(--fs-caption);color:var(--muted);line-height:1.5}.session-step-state{font-size:var(--fs-caption);color:var(--accent);font-weight:600}.session-step-open{font-size:var(--fs-small);color:var(--accent);border-radius:6px;padding:8px 10px;font-weight:500}@media (hover:hover){.session-step-open:hover{background:var(--edge)}}.session-card-note{font-size:var(--fs-caption);color:var(--muted);border-top:1px solid var(--edge);padding:10px 20px 14px;line-height:1.5}.session-bar{width:calc(100% - 2 * var(--gutter));max-width:calc(var(--content-max) - 2 * var(--gutter));border:1px solid var(--edge-strong);border-radius:var(--radius);background:var(--soft);font-size:var(--fs-small);top:calc(var(--topbar) + 8px);z-index:20;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px auto -12px;padding:8px 8px 8px 14px;display:flex;position:sticky}.session-bar-label{color:var(--accent);align-items:center;gap:8px;font-weight:600;display:inline-flex}.session-bar-home{color:var(--muted);text-underline-offset:3px;padding:8px 4px;text-decoration:underline}.session-bar .primary-action{min-height:var(--control-sm);font-size:var(--fs-small);padding:0 12px}.ear-page .page-heading .eyebrow a{text-decoration:none}.ear-summary{margin-top:0}.ear-summary .dictation-track-meta{font-size:var(--fs-body);color:var(--ink);margin-top:0;font-weight:600}.ear-summary .reading-note{margin-top:6px}.ear-summary .section-kicker{margin-top:16px;display:block}.ear-all{margin-top:8px}.ear-all-title{font-size:var(--fs-h3);margin:0 0 4px;font-weight:600}.ear-feature-list{gap:0;margin:0;padding:0;list-style:none;display:grid}.ear-named{margin-top:8px}.ear-feature-link{border-bottom:1px solid var(--edge);min-height:44px;color:inherit;border-radius:6px;grid-template-columns:minmax(120px,1fr) minmax(80px,2fr) auto 16px;align-items:center;gap:12px;padding:8px;text-decoration:none;transition:background-color .15s;display:grid}.ear-feature-row:last-child .ear-feature-link{border-bottom:0}@media (hover:hover){.ear-feature-link:hover{background:var(--surface-subtle)}}.ear-feature-link>svg{color:var(--faint)}.ear-feature-name{font-size:var(--fs-body);font-weight:500}.ear-feature-row.is-named .ear-feature-name{font-weight:600}.ear-feature-bar{background:var(--soft);border-radius:4px;height:4px;overflow:hidden}.ear-feature-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .3s;display:block}.ear-feature-bar:empty{visibility:hidden}.ear-feature-figures{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.ear-feature-thin{color:var(--muted)}.ear-trend.is-trendBetter{color:var(--accent);font-weight:600}.ear-trend.is-trendWorse{color:var(--danger);font-weight:600}.ear-card .settings-card{margin-top:16px}.ear-card .page-heading h1:first-letter{text-transform:uppercase}.ear-why{margin-top:10px;font-size:14px;line-height:1.75}.ear-examples{font-family:var(--font-display);color:var(--accent);margin-top:12px;font-size:16px}.ear-listen-for{gap:8px;margin:10px 0 0;padding-left:20px;font-size:14px;line-height:1.7;display:grid}.ear-sample{margin-top:12px}.ear-sample-line{font-family:var(--font-display);letter-spacing:-.3px;font-size:22px;line-height:1.5}.ear-sample-feature{border-bottom:2px solid var(--accent);color:var(--accent)}.ear-sample-line .spoken-word{background:var(--soft);border-radius:4px}.ear-sample-translation{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.6}.ear-sample-speeds{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.ear-sample-speeds button{align-items:center;gap:6px;min-height:44px;padding:8px 14px;font-size:12px;display:inline-flex}.ear-sample-speeds button.is-active{background:var(--soft);border-color:var(--accent)}.ear-sample-source{color:var(--muted);margin-top:12px;font-size:12px}.ear-sample-source a{color:var(--accent);text-underline-offset:3px;align-items:center;gap:4px;text-decoration:underline;display:inline-flex}@media (max-width:900px){.session-bar{margin:8px auto -8px}}@media (max-width:600px){.session-card-head{padding:16px 16px 14px}.session-level{padding:10px 16px}.session-level-note{flex-basis:100%}.session-actions{width:100%}.session-actions .primary-action{flex:1;justify-content:center}.session-steps{padding:4px}.session-step{grid-template-columns:26px minmax(0,1fr) auto;padding:10px 8px}.session-step-open{padding:8px 6px}.session-card-note{padding:10px 12px 12px}.session-bar{margin:8px auto -4px;position:static}.ear-page{padding-top:24px}.ear-page .page-heading{margin-bottom:24px}.ear-page .settings-card{padding:16px}.ear-page .ear-all{margin-top:24px}.ear-page>.reading-note{margin-top:16px}.ear-page .page-heading .eyebrow a,.ear-sample-source a{align-items:center;min-height:44px;margin:-12px 0;display:inline-flex}.ear-feature-link{grid-template-columns:minmax(0,1fr) 16px;grid-template-areas:"name arrow""bar arrow""figures arrow";row-gap:0}.ear-feature-name{grid-area:name}.ear-feature-bar{grid-area:bar;margin-top:6px}.ear-feature-bar:empty{display:none}.ear-feature-figures{white-space:normal;grid-area:figures;margin-top:6px}.ear-feature-link>svg{grid-area:arrow}.ear-sample-line{font-size:19px}}.content.fame-page{--fame-gold:light-dark(#8a6a2b,#ddbe85);--fame-ink:light-dark(#1f2d26,#f5eddf);--fame-muted:light-dark(#5b695c,#b9b9b5);--fame-edge:light-dark(#d9d0bd,#514b40);--fame-panel:light-dark(#faf7f0,#18222c);--fame-on-gold:light-dark(#fff,#15202b);max-width:none;color:var(--fame-ink);background:light-dark(#f4efe4,#0c131b);padding:32px clamp(20px,5vw,72px) 64px}.fame-heading{text-align:center;padding:40px 0 32px;position:relative}.fame-page .section-kicker{color:var(--fame-gold)}.fame-heading h1{font-family:var(--font-display);letter-spacing:-.04em;color:var(--fame-ink);margin:12px 0;font-size:clamp(38px,5.5vw,76px);font-weight:400;line-height:1.12}.fame-heading p{color:var(--fame-muted);font-size:var(--fs-body)}.fame-heading .new-badge{color:var(--fame-gold);border-color:var(--fame-edge);font-size:12px}.fame-stage{border-top:1px solid var(--fame-edge);border-bottom:1px solid var(--fame-edge);padding:24px 0 0;position:relative}.fame-edition{font-size:var(--fs-caption);letter-spacing:.1em;color:var(--fame-muted);justify-content:space-between;gap:16px;display:flex}.fame-monument{isolation:isolate;place-items:center;height:350px;display:grid;position:relative}.fame-monument>.rank-mark{z-index:2;width:270px;height:270px}.fame-numeral{font-family:var(--font-display);color:light-dark(#8a6a2b14,#ddbe8512);letter-spacing:-.08em;font-size:340px;line-height:1;top:0;left:50%;transform:translate(-50%)}.fame-numeral,.fame-orbit{z-index:-1;position:absolute}.fame-orbit{border:1px solid light-dark(#8a6a2b40,#ddbe8540);border-radius:50%;width:310px;height:310px;top:5px;transform:rotate(-25deg)scaleX(1.4)}.fame-orbit:after{content:"";border:1px solid light-dark(#8a6a2b20,#ddbe8520);border-radius:50%;position:absolute;inset:20px}.fame-plinth{border:1px solid var(--fame-edge);background:light-dark(#e9e2d2,#1d252c);border-radius:50%;width:230px;height:30px;position:absolute;bottom:4px;box-shadow:0 9px light-dark(#d2c8b2,#080e16)}.fame-winner{text-align:center;padding:22px 0 32px}.fame-winner h2{font-family:var(--font-display);letter-spacing:-.025em;color:var(--fame-ink);margin:10px 0;font-size:clamp(32px,4vw,52px);font-weight:400}.fame-winner p{color:var(--fame-muted);font-size:var(--fs-small)}.fame-season-picker{border-top:1px solid var(--fame-edge);justify-content:center;display:flex}.fame-season-picker button{width:190px;color:var(--fame-muted);font-size:var(--fs-small);background:0 0;border:0;border-top:2px solid #0000;border-radius:0;justify-content:center;align-items:center;gap:12px;padding:14px;display:flex}.fame-season-picker button[aria-pressed=true]{border-top-color:var(--fame-gold);color:var(--fame-gold);background:light-dark(#8a6a2b0c,#ddbe850c)}.fame-season-picker .rank-mark{width:54px;height:54px}.fame-personal{grid-template-columns:1.2fr 1fr;align-items:center;gap:64px;padding:64px 0;display:grid}.fame-personal h2{font-family:var(--font-display);letter-spacing:-.035em;color:var(--fame-ink);margin:16px 0;font-size:clamp(32px,4vw,48px);font-weight:400;line-height:1.15}.fame-personal p{color:var(--fame-muted);max-width:42ch}.fame-personal-record{border:1px solid var(--fame-edge);background:var(--fame-panel);padding:28px 32px;position:relative}.fame-record-number{font-family:var(--font-display);color:var(--fame-gold);font-size:72px;line-height:1}.fame-personal-record h3{font-size:var(--fs-body);color:var(--fame-ink);margin:10px 0;font-weight:500}.fame-personal-record p{font-size:var(--fs-small)}.fame-personal-record :is(button,a){background:var(--fame-gold);border-color:var(--fame-gold);min-height:44px;color:var(--fame-on-gold);margin:24px 0 16px}.fame-personal-record small{font-size:var(--fs-caption);color:var(--fame-muted);display:block}.fame-values{border-top:1px solid var(--fame-edge);grid-template-columns:repeat(3,1fr);gap:32px;padding-top:32px;display:grid}.fame-values article>span{font-family:var(--font-display);color:var(--fame-gold);font-size:32px}.fame-values h3{font-size:var(--fs-h3);color:var(--fame-ink);margin:12px 0}.fame-values p{font-size:var(--fs-small);color:var(--fame-muted);max-width:30ch}.fame-page :focus-visible{outline:2px solid var(--fame-gold);outline-offset:4px}.fame-dialog{border:1px solid var(--fame-edge);width:calc(100vw - 32px);max-width:440px;color:var(--fame-ink);text-align:center;background:light-dark(#f4efe4,#111923);border-radius:8px;padding:32px}.fame-dialog::backdrop{background:light-dark(#1f2d2699,#050b12cc)}.fame-dialog>.text-button{min-height:44px;color:var(--fame-muted);margin-left:auto;display:block}.fame-dialog>.rank-mark{width:130px;height:130px;margin:12px auto;display:block}.fame-dialog>.section-kicker{display:block}.fame-dialog h2{font-family:var(--font-display);color:var(--fame-ink);margin:16px 0;font-size:28px}.fame-dialog p{color:var(--fame-muted);font-size:var(--fs-small)}.fame-dialog>.primary-action{background:var(--fame-gold);border-color:var(--fame-gold);min-height:44px;color:var(--fame-on-gold);margin-top:24px}@media (max-width:600px){.content.fame-page{padding:20px var(--gutter) 40px}.fame-heading{padding:0 0 28px}.fame-monument{height:285px}.fame-monument>.rank-mark{width:220px;height:220px}.fame-numeral{font-size:270px}.fame-orbit{width:235px;height:235px;top:12px;transform:rotate(-25deg)scaleX(1.2)}.fame-edition{letter-spacing:0;font-size:12px}.fame-personal{grid-template-columns:1fr;gap:24px;padding:40px 0}.fame-season-picker button{flex-direction:column;flex:1;gap:4px;padding:12px 6px}.fame-values{grid-template-columns:1fr;gap:28px}.fame-values article{grid-template-columns:40px 1fr;gap:0 16px;display:grid}.fame-values article>span{grid-row:1/3}.fame-values h3{margin:0 0 8px}.fame-values p{grid-column:2}}:root{--league-gold:light-dark(#8a6a2b,#dfc08a);--league-gold-soft:var(--warning-soft)}.rank-mark{--rank-metal:light-dark(#bc8d63,#bc8d63);--rank-highlight:light-dark(#ffe2bb,#ffe2bb);--rank-shadow:light-dark(#543b2c,#543b2c);--rank-gem:light-dark(#ddad7c,#ddad7c);width:100px;height:100px;color:var(--rank-metal);isolation:isolate;background:0 0;border:0;border-radius:0;flex:none;padding:0;display:inline-block;position:relative}.rank-mark-explorer{--rank-metal:light-dark(#96b5cc,#96b5cc);--rank-highlight:light-dark(#e8f7ff,#e8f7ff);--rank-shadow:light-dark(#354e68,#354e68);--rank-gem:light-dark(#72c1f2,#72c1f2)}.rank-mark-speaker{--rank-metal:light-dark(#d9ad51,#d9ad51);--rank-highlight:light-dark(#fff1b2,#fff1b2);--rank-shadow:light-dark(#715021,#715021);--rank-gem:light-dark(#ffc956,#ffc956)}.rank-mark-fluent{--rank-metal:light-dark(#68bba8,#68bba8);--rank-highlight:light-dark(#c3fff2,#c3fff2);--rank-shadow:light-dark(#235e57,#235e57);--rank-gem:light-dark(#63efd5,#63efd5)}.rank-mark-elite{--rank-metal:light-dark(#89a9e5,#89a9e5);--rank-highlight:light-dark(#e0ecff,#e0ecff);--rank-shadow:light-dark(#344974,#344974);--rank-gem:light-dark(#91c5ff,#91c5ff)}.rank-mark-master{--rank-metal:light-dark(#b38add,#b38add);--rank-highlight:light-dark(#f0d9ff,#f0d9ff);--rank-shadow:light-dark(#55336e,#55336e);--rank-gem:light-dark(#d39aff,#d39aff)}.rank-mark-legend{--rank-metal:light-dark(#e3b86a,#e3b86a);--rank-highlight:light-dark(#fff3b7,#fff3b7);--rank-shadow:light-dark(#78522a,#78522a);--rank-gem:light-dark(#ff886b,#ff886b)}.rank-mark svg{filter:drop-shadow(0 6px 5px light-dark(#00000026,#0006));width:100%;height:100%;display:block;overflow:visible}.rank-crown,.rank-frame{fill:var(--rank-metal);stroke:var(--rank-highlight);stroke-width:1.3px;stroke-linejoin:round}.rank-bevel{fill:var(--rank-shadow);stroke:var(--rank-highlight);stroke-width:.65px}.rank-face{fill:light-dark(#17212c,#17212c);stroke:var(--rank-metal);stroke-width:1.5px}.rank-crystal{fill:var(--rank-gem);stroke:var(--rank-highlight);stroke-width:.8px}.rank-facet{fill:var(--rank-shadow);opacity:.55}.rank-shine{fill:var(--rank-highlight);opacity:.85}.rank-wings{fill:var(--rank-shadow);stroke:var(--rank-metal);stroke-width:2px;stroke-linejoin:round}.rank-wing-tips{fill:var(--rank-metal);stroke:var(--rank-highlight);stroke-width:.8px}.rank-sovereign,.rank-star{fill:var(--rank-highlight);stroke:var(--rank-metal);stroke-width:1.1px}.rank-mark em{border:1px solid var(--rank-metal);color:var(--rank-highlight);letter-spacing:.12em;background:light-dark(#17212c,#17212c);border-radius:2px;padding:2px 9px;font-size:12px;bottom:0;left:50%;right:auto;transform:translate(-50%)}.rank-mark-compact{width:80px;height:80px;padding:0}.hall-champion>.rank-mark{width:160px;height:160px;box-shadow:none;background:0 0;border:0;padding:0}@media (max-width:600px){.rank-mark-compact{width:70px;height:70px}.hall-champion>.rank-mark{width:100px;height:100px}}.profile-progress{background:var(--edge);border-radius:var(--pill);height:6px;margin-top:20px;overflow:hidden}.profile-progress i{background:var(--accent);border-radius:inherit;height:100%;transition:width .25s;display:block}.rank-strip{border-radius:var(--radius-lg);background:var(--panel);min-height:132px;color:var(--ink);box-shadow:var(--shadow-raise);border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px 24px;margin-bottom:16px;padding:20px 26px;display:grid}.rank-strip>.rank-mark{width:92px;height:92px}.rank-strip-body{min-width:0}.rank-strip-rank{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.rank-strip-rank b{font-family:var(--font-display);font-size:22px;font-weight:400;line-height:1.2}.rank-strip-rank span{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.rank-strip .profile-progress{height:5px;margin-top:10px}.rank-strip-today{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px}.rank-strip-failed{min-height:0;padding:12px 16px;display:block}.rank-strip .new-badge{color:var(--accent);border-color:var(--accent);vertical-align:middle;margin-left:6px}.rank-strip-next{font-size:var(--fs-small);color:var(--accent);font-variant-numeric:tabular-nums;margin-top:8px;font-weight:600}.rank-strip-call{font-size:var(--fs-small);color:var(--muted);margin-top:4px}.rank-strip-link{min-height:40px;font-size:var(--fs-small);color:var(--accent);white-space:nowrap;align-items:center;gap:6px;font-weight:600;display:inline-flex}.rank-strip-link:hover{text-underline-offset:3px;text-decoration:underline}@media (max-width:700px){.rank-strip{grid-template-columns:auto minmax(0,1fr);gap:12px 16px;padding:16px 18px}.rank-strip>.rank-mark{align-self:start;width:64px;height:64px}.rank-strip-rank b{font-size:20px}.rank-strip-link{grid-column:1/-1;min-height:44px}}.fame-seasons{margin:0;padding:0;list-style:none}.fame-season{border-bottom:1px solid var(--fame-edge);grid-template-columns:160px minmax(0,1fr);align-items:center;gap:24px;padding:28px 0;display:grid}.fame-monument-small{height:160px}.fame-monument-small>.rank-mark{width:140px;height:140px}.fame-season-copy h2{font-family:var(--font-display);color:var(--fame-ink);margin:8px 0;font-size:clamp(28px,3vw,40px);font-weight:400}.fame-top{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.fame-top li{font-size:var(--fs-small);color:var(--fame-muted);grid-template-columns:40px minmax(0,1fr) auto;gap:12px;display:grid}.fame-top b{color:var(--fame-ink);font-weight:500}.fame-your-result{font-size:var(--fs-small);color:var(--fame-muted);margin-top:12px}.fame-your-result .text-button{min-height:44px;color:var(--fame-gold);margin-left:8px}.fame-archive-empty{text-align:center;color:var(--fame-muted);padding:40px 0}@media (max-width:600px){.fame-season{grid-template-columns:1fr;gap:12px}.fame-monument-small{height:120px}.fame-monument-small>.rank-mark{width:100px;height:100px}}:is(.profile-page,.league-page) :is(section,header,li)>div,:is(.profile-page,.league-page) :is(section,header,nav,article,dl,ul,ol){min-width:0}:is(.profile-page,.league-page) :is(h1,h2,h3,p,dd,dt,a,button){overflow-wrap:anywhere}:is(.profile-page,.league-page) dialog{overscroll-behavior:contain;max-height:calc(100dvh - 32px);overflow-y:auto}.xp-rule-line{font-size:var(--fs-small);color:var(--muted);margin:12px 0 0;line-height:1.6}.xp-rule-line a{color:var(--accent);text-underline-offset:3px;text-decoration:underline}.reading-start .xp-rule-line{flex-basis:100%;max-width:none;margin:0}:is(.today-page,.catalog-page,.practice-page,.saved-library,.settings-page) :is(section,article,header,li)>div{min-width:0}:is(.today-page,.catalog-page,.practice-page,.saved-library,.settings-page) :is(h1,h2,h3,p,dd){overflow-wrap:anywhere}.practice-page .practice-grid>*{min-width:0}.catalog-page .topic-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,252px),1fr))}.settings-page .usage-figures{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:900px){.settings-page .usage-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){:is(.today-page,.catalog-page,.practice-page,.settings-page){padding-top:24px}.today-page .session-card,:is(.today-page,.catalog-page,.practice-page,.settings-page) .page-heading{margin-bottom:24px}.today-page .rank-strip{gap:12px;padding:16px}.today-page .rank-strip>.rank-mark{width:52px;height:52px}.today-page .rank-strip-link{min-height:44px;padding:0}.today-page .guide{gap:24px;padding:24px 0}.catalog-page .topic-grid-heading{margin-top:24px}.catalog-page .lesson-detail,.catalog-page .lesson-listen{padding:16px}.catalog-page .reading-body{padding:16px 0}.practice-page :is(.player-top,.sentence-stage,.transport,.record-area,.recordings-card,.transcript-card){padding-inline:16px}.practice-page .sentence-stage{padding-block:24px}.practice-page .sentence-stage h3{font-size:clamp(24px,7vw,30px)}.practice-page .lesson-meta{gap:8px 12px}.practice-page .lesson-meta :is(span,.text-button){white-space:normal;overflow-wrap:anywhere}.practice-page .stage-actions{gap:4px 8px;margin-top:16px}.with-listening .reading-caption{margin-top:0;font-size:12px}.with-listening .reading-body{padding:16px}.saved-library .lesson-card{min-width:0}.settings-page :is(.settings-hint,.usage-figures span){font-size:12px}.settings-page .settings-actions{gap:12px;margin-top:16px}.settings-page .settings-actions>button{white-space:normal;max-width:100%}}.content.fame-page{min-width:0;margin-inline:0}.fame-page :is(section,header,article,li)>div{min-width:0}.fame-page :is(h1,h2,h3,p,b,small,.section-kicker){overflow-wrap:anywhere}.fame-page .fame-personal{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:32px}.fame-page .fame-values{grid-template-columns:repeat(3,minmax(0,1fr))}.fame-page .fame-edition{flex-wrap:wrap;gap:8px 16px}.fame-page .fame-top li{grid-template-columns:36px minmax(0,1fr) minmax(0,auto);align-items:baseline;padding-block:8px}.fame-page .fame-top li>span:last-child{text-align:right;overflow-wrap:anywhere}.fame-page .fame-your-result .text-button{white-space:normal;align-items:center;max-width:100%;margin:8px 0 0;display:flex}.fame-page .fame-dialog{overscroll-behavior:contain;max-width:min(440px,100% - 32px);max-height:calc(100dvh - 32px);overflow-y:auto}.fame-page .fame-dialog .primary-action,.fame-page .fame-personal-record :is(button,a){white-space:normal;overflow-wrap:anywhere;max-width:100%}@media (max-width:900px){.content.fame-page{padding:24px var(--gutter) 32px}.fame-page .fame-heading{padding:0 0 24px}.fame-page .fame-personal{grid-template-columns:minmax(0,1fr);gap:24px;padding:24px 0}.fame-page .fame-personal-record{padding:24px}.fame-page .fame-values{gap:24px;padding-top:24px}}@media (max-width:600px){.fame-page .fame-heading h1{font-size:clamp(32px,9vw,44px)}.fame-page .fame-stage{padding-top:24px}.fame-page .fame-archive-empty{text-align:left;padding:24px 0}.fame-page .fame-season{grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 0}.fame-page .fame-monument-small{height:120px}.fame-page .fame-monument-small>.rank-mark{width:112px;height:112px}.fame-page .fame-season-copy h2{margin:12px 0;font-size:28px;line-height:1.2}.fame-page .fame-top li{grid-template-columns:28px minmax(0,1fr) minmax(0,.65fr);gap:8px}.fame-page .fame-personal h2{margin:12px 0;font-size:32px}.fame-page .fame-personal-record{padding:16px}.fame-page .fame-record-number{overflow-wrap:anywhere;font-size:clamp(48px,16vw,64px)}.fame-page .fame-personal-record :is(button,a){width:100%;margin-block:16px}.fame-page .fame-values{grid-template-columns:minmax(0,1fr)}.fame-page .fame-values article{grid-template-columns:36px minmax(0,1fr);gap:0 12px}.fame-page .fame-dialog{padding:16px}.fame-page .fame-dialog>.primary-action{width:100%;margin-top:16px}}.rhythm{gap:14px;margin:0 0 16px;display:grid}.rhythm[aria-busy=true]{gap:14px;min-height:96px}.rhythm-skeleton{height:56px}.rhythm-guest{border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-subtle);color:var(--body);font-size:var(--fs-small);flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 24px;padding:8px 16px;display:flex}.rhythm-guest a{min-height:44px;color:var(--accent);align-items:center;font-weight:600;display:inline-flex}.streak{align-content:start;gap:12px;display:grid}.streak-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.streak-head strong{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.streak-count{border-radius:var(--pill);background:var(--warning-soft);color:var(--streak);font-size:var(--fs-h3);font-variant-numeric:tabular-nums;align-items:center;gap:6px;padding:5px 11px;font-weight:700;display:inline-flex}.streak-count svg{fill:var(--streak-bright);stroke:none}.figure-streak{color:var(--streak)}.streak-week{justify-content:space-between;gap:4px;margin:0;padding:0;list-style:none;display:flex}.streak-week li{justify-items:center;gap:6px;display:grid}.streak-week small{font-size:var(--fs-caption);color:var(--muted);font-weight:700}.streak-week li.is-today small{color:var(--accent)}.streak-cell{background:var(--surface-subtle);width:34px;height:34px;color:var(--edge-strong);border:2px solid #0000;border-radius:50%;place-items:center;display:grid}.streak-cell.is-learning{background:var(--warning-soft);color:var(--streak-bright)}.streak-cell.is-today{border-color:var(--accent)}.streak-cell svg{fill:currentColor;stroke:none}.streak-cell.is-frozen{background:var(--info-soft);color:var(--info)}.streak-cell.is-frozen svg{fill:none;stroke:currentColor;stroke-width:2px}.streak-freezes{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0;display:flex}.streak-freeze-count{color:var(--ink);align-items:center;gap:6px;font-weight:700;display:inline-flex}.streak-freeze-count svg{fill:none;stroke:var(--info);stroke-width:2px}.streak-line{font-size:var(--fs-small);color:var(--muted)}.streak-line.is-milestone{color:var(--streak);font-weight:600}.rhythm-today{align-items:center;gap:16px;min-width:0;display:flex}.rhythm-today-line{font-size:var(--fs-h3);align-items:center;gap:8px;font-weight:700;display:flex}.meter{flex:none;position:relative}.meter,.meter-ring{width:56px;height:56px}.meter-ring{transform:rotate(-90deg)}.meter-track{fill:none;stroke:var(--accent-soft);stroke-width:5px}.meter-fill{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset var(--t-slow) ease}.meter.is-met .meter-fill{stroke:var(--success)}.meter-figure{font-size:var(--fs-figure-sm);font-variant-numeric:tabular-nums;color:var(--ink);place-items:center;font-weight:600;display:grid;position:absolute;inset:0}.meter.is-met .meter-figure{color:var(--success)}@media (prefers-reduced-motion:reduce){.meter-fill{transition:none}}.rhythm-today-text{gap:8px;min-width:0;display:grid}.rhythm-today-line{font-size:var(--fs-body);color:var(--ink);font-variant-numeric:tabular-nums;font-weight:600}.rhythm.is-met .rhythm-today-line{color:var(--success)}.goal-chips{flex-wrap:nowrap;gap:6px;display:flex}.goal-chips .filter-chip{justify-content:center;min-width:44px;font-weight:700}.rhythm-offline{font-size:var(--fs-caption);color:var(--muted);grid-column:1/-1}.rhythm-goal-card .goal-chips{flex:none}.home-continue{border-radius:var(--r-lg);background:var(--accent-gradient);box-shadow:var(--shadow-float);border:0;gap:8px;margin:0 0 24px;padding:22px 24px;display:grid}.home-continue,.home-continue .eyebrow,.home-continue h2{color:var(--accent-ink)}.home-continue h2{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:800;line-height:1.25}.home-continue-line{font-size:var(--fs-small);color:var(--accent-ink);font-variant-numeric:tabular-nums}.home-continue-track{border-radius:var(--pill);background:light-dark(#ffffff47,#ffffff2e);height:8px;margin-top:4px;overflow:hidden}.home-continue-track i{border-radius:var(--pill);background:var(--streak-bright);height:100%;display:block}.home-continue .primary-action{background:var(--panel);color:var(--accent);box-shadow:none;justify-self:start;margin-top:4px}.home-continue .primary-action:hover:not(:disabled){background:var(--panel);color:var(--accent-hover);box-shadow:var(--shadow-raise)}.home-pending-line{width:min(100%,320px);height:28px}.home-pending-button{border-radius:8px;width:140px;height:44px}.home-section{margin:0 0 24px}.home-section-title{font-size:var(--fs-h2);margin:0 0 8px}.home-all-rooms{min-height:44px;color:var(--accent);font-weight:600;font-size:var(--fs-small);align-items:center;display:inline-flex}.session-card.is-compact{margin-bottom:24px}.session-fold summary{cursor:pointer;min-height:44px;color:var(--accent);font-size:var(--fs-small);align-items:center;padding:0 24px;font-weight:500;display:flex}@media (max-width:700px){.rhythm{grid-template-columns:1fr}.home-continue,.rhythm{padding:16px 18px}.session-fold summary{padding:0 18px}}.reading-result{text-align:center;justify-items:stretch;gap:14px;padding:4px 0 8px;display:grid}.reading-result-badge{background:var(--accent-soft);border:4px solid var(--accent-fill);width:84px;height:84px;color:var(--accent);border-radius:50%;justify-self:center;place-items:center;display:grid}.reading-result-title{font-family:var(--font-display);font-size:var(--fs-h1);font-weight:800;line-height:var(--lh-tight);color:var(--ink)}.reading-result-title:focus{outline:0}.reading-result-said{font-size:var(--fs-body);color:var(--muted)}.reading-result-figures{text-align:left;gap:12px;display:grid}.reading-result-figures-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.reading-result-figures-head span{font-size:var(--fs-small);color:var(--muted)}.reading-result-track{border-radius:var(--pill);background:var(--accent-soft);flex-basis:100%;height:10px;overflow:hidden}.reading-result-track i{border-radius:var(--pill);background:var(--accent-fill);height:100%;display:block}.reading-result-clean{font-size:var(--fs-small);color:var(--success)}.reading-result-slipped{text-align:left;gap:8px;display:grid}.reading-result-slipped p{font-size:var(--fs-small);color:var(--muted);font-weight:700}.reading-result-slipped>div{flex-wrap:wrap;gap:8px;display:flex}.reading-result-word{border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--ink);align-items:center;gap:4px;padding:4px 10px;font-weight:600;display:inline-flex}.reading-result-word small{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.reading-result-list{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);text-align:left;border-top:0;gap:0;margin:0;padding:6px 16px;list-style:none;display:grid}.reading-result-row{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px 12px;padding:12px 0;display:grid}.reading-result-row:last-child{border-bottom:0}.reading-result-index{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums}.reading-result-sentence{min-width:0;font-size:var(--fs-body);color:var(--ink);gap:2px;display:grid}.reading-result-sentence .ipa{font-size:var(--fs-caption)}.reading-result-play{border:1px solid var(--edge-strong);background:var(--panel);min-height:44px;color:var(--accent);font-size:var(--fs-small);font-variant-numeric:tabular-nums;border-radius:10px;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.reading-result-play[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--soft)}.reading-result-none,.reading-result-note{font-size:var(--fs-caption);color:var(--muted)}.reading-result-actions{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:4px;display:flex}@media (max-width:600px){.reading-result-row{grid-template-columns:auto minmax(0,1fr);gap:6px 10px}.reading-result-play,.reading-result-row .text-button{grid-column:2;justify-self:start}}.library-heading .eyebrow{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.library-pick{min-height:var(--control-touch);border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--accent);align-items:center;gap:6px;padding:0 14px;font-weight:700;display:inline-flex}.library-pick:hover{background:var(--surface-subtle)}.library-browse{color:var(--accent);margin-top:8px;padding:6px 0;font-weight:600}.library-filters{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:12px;display:flex}.library-filters .topic-search{flex:220px}.library-levels{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.library-lesson-level{min-height:20px;font-size:var(--fs-caption);color:var(--accent);background:var(--soft);border-radius:5px;align-items:center;margin-right:6px;padding:0 6px;font-weight:600;display:inline-flex}.library-more{margin-top:16px}.library-keep-row{border-top:1px solid var(--edge);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:24px;padding-top:16px;display:flex}.library-from-device{max-width:var(--content-max);font-size:var(--fs-small);color:var(--muted);margin:0 auto;padding:8px 16px}.library-skeleton-line{width:min(60%,280px);height:14px}.library-skeleton-title{width:min(90%,520px);height:30px;margin-top:10px}.library-skeleton-body{border-radius:var(--r-lg);height:220px;margin-top:20px;display:block}.library-bar{align-items:center;gap:12px;margin:0 0 12px;display:flex}.library-bar-text{flex-grow:1;gap:2px;min-width:0;display:grid}.library-bar-text span{font-size:var(--fs-small);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.library-bar-text strong{font-size:var(--fs-h3);color:var(--ink);font-weight:700}.is-speaking .reading-body{gap:14px;display:grid}.is-speaking .practice-steps,.is-speaking .reading-caption{display:none}.is-speaking .reading-practice{box-shadow:none;background:0 0;border:0;padding:0;overflow:visible}.is-speaking .reading-stage{background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);text-align:left;padding:22px 20px}.is-speaking .reading-position{font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;display:block}.is-speaking .reading-stage .answer-en{font-family:var(--font-display);font-size:var(--fs-display);color:var(--ink);margin-top:8px;font-weight:800;line-height:1.32}.is-speaking .reading-stage .chunk-ipa{color:var(--muted);margin-top:8px}.is-speaking .reading-note,.is-speaking .reading-reset,.is-speaking .reading-translation{display:none}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record{border-radius:var(--r-md);background:var(--accent-gradient);min-height:56px;color:var(--accent-ink);box-shadow:var(--shadow-raise);border:0;flex-grow:1;font-weight:700}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record svg{color:var(--accent-ink)}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record.is-recording{background:var(--danger-soft);color:var(--danger);box-shadow:none}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record.is-recording svg{color:var(--danger)}.is-speaking .speak-recorder.is-row>.speak-recorder-actions{min-height:56px}.is-speaking .reading-controls button{border-radius:var(--pill);min-height:54px}.palette-swatches{gap:8px;display:flex}.palette-swatch{min-height:var(--control-touch);border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);color:var(--ink);font-size:var(--fs-small);align-items:center;gap:8px;padding:0 16px 0 12px;font-weight:600;display:inline-flex}.palette-swatch span{border-radius:50%;flex:none;width:20px;height:20px}.palette-swatch.is-green span{background:linear-gradient(135deg,light-dark(#1f5c3f,#2a6e4a),light-dark(#2a6e4a,#2f7b54))}.palette-swatch.is-violet span{background:linear-gradient(135deg,light-dark(#5b4bd6,#4a3cc4),light-dark(#6c5ce7,#6c5ce7))}.palette-swatch.is-blue span{background:linear-gradient(135deg,light-dark(#1565c0,#12538f),light-dark(#1976d2,#1976d2))}.palette-swatch.is-pink span{background:linear-gradient(135deg,light-dark(#c2185b,#9e1047),light-dark(#d81b60,#d81b60))}.palette-swatch.is-chosen{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.palette-swatch:hover:not(.is-chosen){background:var(--surface-subtle)}.palette-swatch:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.palette-swatches{flex-wrap:wrap}@media (max-width:600px){.palette-swatches{grid-template-columns:1fr 1fr;width:100%;display:grid}.palette-swatch{justify-content:center}}@media (min-width:900px){.rhythm{grid-template-columns:1fr 1fr;align-items:start}.rhythm>.plate{height:100%}.today-page .row-list.is-plates{grid-template-columns:1fr 1fr;gap:12px;max-width:none;display:grid}.today-page section[aria-labelledby=home-review-title] .row-list.is-plates{grid-template-columns:1fr}.row-list.is-plates .row-line{white-space:normal}.streak-week{max-width:460px}}.today-page{--shadow-raise:0 2px 8px light-dark(#14211b08,#00000026);--shadow-float:0 6px 20px light-dark(#14211b14,#00000040)}.home-layout{grid-template-columns:minmax(0,1fr);gap:32px;margin-bottom:32px;display:grid}.home-learning,.home-progress{min-width:0}.home-learning{flex-direction:column;gap:24px;display:flex}.home-learning>.home-section-title,.home-learning>:is(.home-continue,.session-card,.guide,.home-section){margin:0}.today-page :is(.rank-strip,.session-card,.plate,.row-list.is-plates .row-link){border:1px solid var(--edge);box-shadow:var(--shadow-raise)}.home-continue h2{line-height:var(--lh-tight)}.home-continue{gap:12px;padding:24px}.home-continue .primary-action{min-height:48px;margin-top:8px}.home-learning .session-card-head{flex-direction:column;align-items:flex-start;gap:16px;padding:24px}.home-learning .session-card-title{flex:none;max-width:none}.home-learning .session-card h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.home-learning .session-actions{flex-wrap:wrap}.home-learning .session-fold summary{min-height:56px;padding:0 24px 12px}.today-page .guide{box-shadow:none;background:0 0;border:0;border-radius:0;gap:16px;padding:0;list-style:none}.today-page .guide li{min-width:0;padding-left:28px;position:relative}.today-page .guide strong{font-size:var(--fs-small);color:var(--ink);margin-bottom:4px;font-weight:700;display:block}.today-page .guide p{font-size:var(--fs-small)}.home-section-title{margin-bottom:12px;font-weight:700}.home-progress>.home-section-title{margin-bottom:16px}.home-progress .rank-strip{grid-template-columns:52px minmax(0,1fr);gap:12px;min-height:0;padding:20px}.home-progress .rank-strip>.rank-mark{width:52px;height:64px}.home-progress .rank-strip-rank{flex-wrap:wrap;gap:4px 8px}.home-progress .rank-strip-rank b{font-size:var(--fs-h2)}.home-progress .rank-strip-link{grid-column:2;justify-self:start;min-height:44px;padding:0}.home-progress .rhythm{grid-template-columns:minmax(0,1fr);gap:16px;margin:0;padding:0}.home-progress .rhythm-today,.home-progress .rhythm-today-line{flex-wrap:wrap}.home-progress .rhythm-guest{margin:0;padding:12px 16px}.home-learning .today-next-review{border-top:1px solid var(--edge);margin:0;padding:16px 0}.home-section-head{flex-wrap:wrap;margin-bottom:12px}.home-section-head .home-section-title{margin:0}.home-all-rooms{gap:8px}.today-page .home-explore .row-list.is-plates{gap:16px}.today-page .home-explore .row-link{border-radius:var(--r-md);padding:16px}@media (min-width:1151px){.home-layout{grid-template-rows:auto auto auto auto;grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);align-items:stretch;gap:24px 32px}.home-learning,.home-progress{grid-template-rows:subgrid;grid-row:1/5;gap:24px;display:grid}.home-learning{grid-column:1}.home-progress{grid-column:2}.home-layout .home-section-title{margin:0}.home-learning>.home-section{grid-row:4}.home-learning>.home-section>.home-section-title{margin-bottom:12px}.home-progress .rank-strip{align-content:start;margin:0}.home-progress .rank-strip>.rank-mark{align-self:start}.home-progress .rhythm{grid-template-rows:auto auto;align-items:stretch}.home-learning>.session-card{align-self:stretch}.home-learning>.home-continue{align-content:start}.home-learning>.guide{align-self:start}}@media (max-width:600px){.home-layout{gap:24px;margin-bottom:24px}.home-continue,.home-learning .session-card-head,.home-progress .rank-strip{padding:16px}.home-learning .session-fold summary{padding:0 16px 12px}.today-page .guide{grid-template-columns:1fr;gap:16px;padding:0}.home-learning .session-actions{width:100%}.home-learning .session-actions>a{white-space:normal;text-align:center;flex:1}.home-continue .primary-action{justify-self:stretch}}.page-layout{--shadow-raise:0 2px 8px light-dark(#14211b08,#00000026);--shadow-float:0 6px 20px light-dark(#14211b14,#00000040);grid-template-columns:minmax(0,1fr);gap:32px;margin-bottom:32px;display:grid}.page-layout :is(.plate,.row-list.is-plates .row-link,.empty-state){border:1px solid var(--edge);box-shadow:var(--shadow-raise)}.page-main,.page-side{flex-direction:column;gap:24px;min-width:0;display:flex}.page-section{gap:12px;min-width:0;display:grid}.page-section-title{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.page-section-head{flex-wrap:wrap;gap:4px 12px}.page-note,.page-section-head>span{font-size:var(--fs-small);color:var(--muted)}.page-note{line-height:1.6}.page-side .row-list.is-plates .row-link{border-radius:var(--r-md);padding:16px}@media (min-width:1151px){.page-layout{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);align-items:start}}@media (max-width:600px){.page-layout{gap:24px;margin-bottom:24px}}.league-standing{gap:20px;padding:24px;display:grid}.league-standing-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;display:grid}.league-standing-head>.rank-mark{width:112px;height:112px}.league-standing-rank{gap:4px;display:grid}.league-standing-name{font-size:var(--fs-h2);color:var(--ink);font-weight:700;line-height:var(--lh-tight)}.league-standing-place{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.league-standing-place strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;line-height:1.1}.league-standing-place span{font-size:var(--fs-small);color:var(--accent);font-weight:600}.league-standing-next{border-top:1px solid var(--edge);gap:8px;padding-top:20px;display:grid}.league-standing-next .split{font-size:var(--fs-body);color:var(--ink);flex-wrap:wrap;gap:4px 12px;font-weight:600}.league-standing-next .split b{color:var(--accent)}.league-standing-next .split b,.league-standing-next p{font-size:var(--fs-small);font-variant-numeric:tabular-nums}.league-standing-next p{color:var(--muted)}.league-next{justify-items:start;gap:8px;padding:24px;display:grid}.league-next h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.league-next p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.league-next .primary-action{min-height:48px;margin-top:8px}.league-rows{margin:0;padding:0;list-style:none;overflow:hidden}.league-row{border-bottom:1px solid var(--edge);font-variant-numeric:tabular-nums;grid-template-columns:44px 36px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:60px;padding:8px 16px;display:grid}.league-row:last-child{border-bottom:0}.league-row>.rank-mark{width:36px;height:36px}.league-row>.rank-mark svg{filter:none}.league-row-position{font-size:var(--fs-small);color:var(--muted);font-weight:700}.league-row-who{gap:2px;min-width:0;display:grid}.league-row-name{font-size:var(--fs-body);color:var(--ink);overflow-wrap:anywhere;align-items:center;gap:6px;min-width:0;font-weight:600;display:flex}.league-row-name .pet-art{flex:none}.league-row-rank{font-size:var(--fs-caption);color:var(--muted)}.league-row-score{font-size:var(--fs-small);color:var(--ink);text-align:right;white-space:nowrap;font-weight:600}.league-row.is-you{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.league-row.is-you :is(.league-row-position,.league-row-name,.league-row-score){color:var(--accent)}.league-ladder{margin:0;padding:0;list-style:none;overflow:hidden}.league-ladder li{border-bottom:1px solid var(--edge);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:56px;padding:6px 16px;display:grid}.league-ladder li:last-child{border-bottom:0}.league-ladder .rank-mark{width:44px;height:44px}.league-ladder .rank-mark svg{filter:none}.league-ladder-name{font-size:var(--fs-body);color:var(--ink);font-weight:600}.league-ladder-name small{font-size:var(--fs-small);color:var(--muted);font-weight:500;display:block}.league-ladder-stars{margin:10px 2px 0}.league-ladder .is-ahead .league-ladder-name{color:var(--muted);font-weight:500}.league-ladder .is-ahead .rank-mark{opacity:.55}.league-ladder .is-current{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.league-ladder .is-current .league-ladder-name,.league-ladder-here{color:var(--accent);font-weight:700}.league-ladder-here{border-radius:var(--pill);background:var(--panel);font-size:var(--fs-caption);white-space:nowrap;padding:2px 10px}.league-ladder-past{color:var(--success);display:inline-flex}.league-rules{gap:8px;padding:20px 16px 8px;display:grid}.league-rules-lead{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.league-rules ol{margin:0;padding:0;list-style:none}.league-rules li{border-bottom:1px solid var(--edge);font-size:var(--fs-small);grid-template-columns:minmax(96px,auto) minmax(0,1fr);gap:2px 16px;padding:10px 0;display:grid}.league-rules li:last-child{border-bottom:0}.rule-amount{color:var(--accent);white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:700}.rule-amount small{font-size:var(--fs-caption);color:var(--muted);font-weight:400;display:block}.rule-name{color:var(--ink);font-weight:600}.rule-limit{font-size:var(--fs-caption);color:var(--muted);grid-column:2}@media (max-width:600px){.league-next,.league-standing{padding:16px}.league-standing,.league-standing-head{gap:16px}.league-standing-head>.rank-mark{width:80px;height:80px}.league-standing-place strong{font-size:32px}.league-standing-next{padding-top:16px}.league-next .primary-action{justify-self:stretch}.league-ladder li,.league-row{padding-inline:12px}.league-row{grid-template-columns:36px 32px minmax(0,1fr) auto;gap:8px}.league-row>.rank-mark{width:32px;height:32px}.league-rules{padding:16px 12px 4px}.league-rules li{grid-template-columns:minmax(0,1fr)}.rule-limit{grid-column:1}}.profile-page{--profile-gold:var(--league-gold)}.profile-guest{flex-wrap:wrap;gap:12px;padding:24px;display:flex}.profile-identity{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px 20px;padding:24px;display:grid}.profile-avatar{background:var(--accent-soft);width:64px;height:64px;color:var(--accent);border-radius:50%;place-items:center;font-size:28px;font-weight:800;display:grid}.profile-identity-copy{gap:4px;min-width:0;display:grid}.profile-identity-copy h2{font-size:var(--fs-h1);font-weight:800;line-height:var(--lh-tight);overflow-wrap:anywhere}.profile-identity-copy p{font-size:var(--fs-small);color:var(--muted)}.profile-identity-copy .profile-week-line{color:var(--accent);font-weight:600}.profile-standing{gap:16px;padding:24px;display:grid}.profile-standing-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;display:grid}.profile-standing-head>.rank-mark{width:80px;height:80px}.profile-standing-name{font-size:var(--fs-h2);color:var(--ink);font-weight:700;line-height:var(--lh-tight)}.profile-standing-today{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px}.profile-meters{border-top:1px solid var(--edge);gap:16px;margin:0;padding-top:16px;display:grid}.profile-meters>div{gap:8px;display:grid}.profile-meters dt{font-size:var(--fs-small);color:var(--ink);font-weight:600}.profile-meters dd{gap:6px;margin:0;display:grid}.profile-meters dd span{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.profile-standing-links{flex-wrap:wrap;gap:4px 24px;display:flex}.profile-standing-links a{min-height:44px;font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.profile-highlight{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;padding:24px;display:grid}.profile-highlight-number{letter-spacing:-.03em;color:var(--profile-gold);font-variant-numeric:tabular-nums;font-size:72px;font-weight:800;line-height:1}.profile-highlight h3{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.profile-highlight p{font-size:var(--fs-small);color:var(--muted);margin:4px 0 12px}.profile-rhythm{grid-template-columns:minmax(0,1.2fr) minmax(220px,1fr);align-items:start;gap:16px 32px;padding:24px;display:grid}.profile-rhythm>.page-note{grid-column:1/-1}.profile-calendar{grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;width:100%;max-width:420px;display:grid}.profile-calendar-week{grid-template-rows:repeat(7,1fr);gap:4px;min-width:0;display:grid}.profile-calendar-day{aspect-ratio:1;background:var(--surface-subtle);border:1px solid #0000;border-radius:4px;display:block}.profile-calendar-day.level-1{background:var(--accent-soft)}.profile-calendar-day.level-2{background:var(--accent-fill)}@supports (color:color-mix(in lab,red,red)){.profile-calendar-day.level-2{background:color-mix(in srgb,var(--accent-fill) 45%,transparent)}}.profile-calendar-day.level-3{background:var(--accent-fill)}@supports (color:color-mix(in lab,red,red)){.profile-calendar-day.level-3{background:color-mix(in srgb,var(--accent-fill) 72%,transparent)}}.profile-calendar-day.level-4{background:var(--accent-fill)}.profile-calendar-day.is-today{border-color:var(--accent)}.profile-calendar-day.is-future{border-color:var(--edge);background:0 0}.profile-figures{margin:0;display:grid}.profile-figures>div{border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:12px;min-height:44px;padding:8px 0;display:grid}.profile-figures>div:last-child{border-bottom:0}.profile-figures dt{font-size:var(--fs-small);color:var(--muted)}.profile-figures dd{font-size:var(--fs-h2);color:var(--ink);font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:700}.profile-achievements{gap:20px;padding:8px 24px 20px;display:grid}.profile-earned{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:0 32px;margin:0;padding:0;list-style:none;display:grid}.profile-earned li{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 12px;padding:12px 0;display:grid}.profile-earned-mark{border:1px solid var(--profile-gold);width:28px;height:28px;color:var(--profile-gold);border-radius:50%;grid-row:1/3;place-items:center;display:grid}.profile-earned b,.profile-goal-copy b{font-size:var(--fs-body);color:var(--ink);font-weight:600}.profile-earned li>span:last-child,.profile-goal-copy span{font-size:var(--fs-caption);color:var(--muted)}.profile-goals h3{font-size:var(--fs-small);color:var(--muted);font-weight:700}.profile-goals ul{margin:0;padding:0;list-style:none}.profile-goals li{border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 16px;padding:14px 0;display:grid}.profile-goals li:last-child{border-bottom:0;padding-bottom:0}.profile-goal-copy{gap:2px;display:grid}.profile-goal-progress{font-size:var(--fs-small);color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.profile-goal-bar{grid-column:1/-1;height:6px}.profile-list{padding:4px 16px}.profile-list .row-list{border-top:0}.profile-list .row:last-child{border-bottom:0}@media (max-width:600px){.profile-guest,.profile-highlight,.profile-identity,.profile-rhythm,.profile-standing{padding:16px}.profile-guest>a{flex:1}.profile-identity{grid-template-columns:auto minmax(0,1fr);gap:12px 16px}.profile-identity>.secondary-action{grid-column:1/-1;justify-self:stretch}.profile-avatar{width:52px;height:52px;font-size:22px}.profile-standing-head>.rank-mark{width:64px;height:64px}.profile-highlight{gap:16px}.profile-highlight-number{font-size:56px}.profile-rhythm{grid-template-columns:minmax(0,1fr)}.profile-achievements{padding:4px 16px 16px}.profile-list{padding-inline:12px}}.saved-tabs{border:1px solid var(--edge);background:var(--surface-subtle);grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-width:560px;margin:0 0 24px;padding:4px;display:grid}.saved-tab,.saved-tabs{border-radius:var(--pill)}.saved-tab{min-height:44px;color:var(--muted);text-align:center;place-items:center;padding:4px 12px;display:grid}.saved-tab strong{font-size:var(--fs-small);font-weight:700;line-height:var(--lh-tight)}.saved-tab small{display:none}.saved-tab:hover:not(.is-current){color:var(--ink)}.saved-tab.is-current{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-raise)}.saved-tab:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.saved-page .page-main{gap:16px}.saved-account .account-section-heading,.saved-page .page-section-head{min-height:44px}.saved-page :is(.saved-library,.saved-notebook,.saved-kept){gap:16px;min-width:0;display:grid}.saved-page .library-toolbar{margin:0}.saved-page .library-toolbar .search-field{flex:100%}.saved-page .library-toolbar>.primary-action{margin-left:auto}.saved-page .lesson-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}.saved-page .note-list{margin:0}.kept-list{margin:0;padding:0 16px;list-style:none}.kept-list li{border-bottom:1px solid var(--edge);align-items:center;gap:12px;min-height:64px;padding:10px 0;display:flex}.kept-list li:last-child{border-bottom:0}.kept-list li a{flex:1;gap:2px;min-width:0;display:grid}.kept-list li a strong{font-size:var(--fs-body);color:var(--ink);overflow-wrap:anywhere;font-weight:600}.kept-list li a small{font-size:var(--fs-caption);color:var(--muted)}.kept-list li button{border-radius:var(--pill);min-height:44px;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex}.kept-list li button:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.saved-account>*{margin:0}.saved-account .account-saved-section{gap:12px;margin:0;display:grid}.saved-account .account-section-heading{margin:0}.saved-account .account-section-heading h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.saved-account .account-empty{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);padding:16px}.saved-account .account-saved-card{margin:0}.saved-account .account-callout{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);justify-items:start;gap:8px;margin:0;padding:24px;display:grid}.saved-account .account-callout h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.saved-account .account-callout p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.saved-account .account-callout .secondary-action{margin-top:8px}.saved-account .account-callout :is(.secondary-action,.text-button){min-height:44px}@media (max-width:600px){.saved-tabs{max-width:none}.saved-tab{padding-inline:6px}.saved-account .account-callout{padding:16px}.saved-account .account-section-tools:not(:has(.search-field)){width:auto}.saved-account .account-callout .secondary-action{justify-self:stretch}.kept-list{padding-inline:12px}}.review-status{gap:20px;padding:24px;display:grid}.review-status-head{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;display:grid}.review-due{border-radius:var(--r-md);background:var(--accent-soft);min-width:72px;height:72px;color:var(--accent);font-variant-numeric:tabular-nums;place-items:center;padding:0 12px;font-size:36px;font-weight:800;line-height:1;display:grid}.review-due-label{font-size:var(--fs-h2);color:var(--ink);font-weight:700;line-height:var(--lh-tight)}.review-tracked{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:4px}.review-start{border-top:1px solid var(--edge);flex-wrap:wrap;align-items:flex-end;gap:16px 24px;padding-top:20px;display:flex}.review-setting{gap:8px;min-width:0;display:grid}.review-setting>span{font-size:var(--fs-small);color:var(--ink);font-weight:600}.review-start>.primary-action{min-height:48px;margin-left:auto;padding-inline:24px}.review-done{gap:16px;padding:24px;display:grid}.review-done h3{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight)}.review-done .review-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.review-done .review-figures>div{border-radius:var(--r-md);background:var(--surface-subtle);gap:4px;padding:12px;display:grid}.review-done .review-figures b{font-family:var(--font-ui);font-size:var(--fs-h1);color:var(--ink);font-weight:800}.review-done .review-figures span{font-size:var(--fs-caption);color:var(--muted);margin:0}.review-done .review-actions{flex-wrap:wrap;justify-content:flex-start;gap:12px;display:flex}.review-done .review-actions :is(a,button){min-height:48px;font-size:var(--fs-body);padding:0 20px}.review-ladder{font-size:var(--fs-small);color:var(--body);padding:16px;line-height:1.7}.review-keys-list{margin:0;padding:4px 16px;display:grid}.review-keys-list>div{border-bottom:1px solid var(--edge);grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;min-height:48px;padding:6px 0;display:grid}.review-keys-list>div:last-child{border-bottom:0}.review-keys-list dt{gap:4px;display:flex}.review-keys-list dd{font-size:var(--fs-small);color:var(--body);margin:0}.review-keys-list kbd{background:var(--surface-subtle);min-width:28px;height:28px;color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-caption);border:solid var(--edge-strong);border-width:1px 1px 2px;border-radius:8px;place-items:center;padding:0 8px;font-weight:700;display:inline-grid}@media (max-width:900px){.review-keys{display:none}}@media (max-width:600px){.review-done,.review-status{padding:16px}.review-due{min-width:60px;height:60px;font-size:30px}.review-start{gap:16px;display:grid}.review-start>.primary-action{width:100%;margin-left:0}.review-done .review-figures{gap:8px}.review-done .review-figures>div{padding:10px 8px}.review-done .review-actions :is(a,button){flex:1}}.practice-sets-page h1 .new-badge{vertical-align:middle;margin-left:8px}.practice-sets-empty{justify-items:start;gap:16px;padding:24px;display:grid}.practice-sets-empty p{font-size:var(--fs-body);color:var(--body);line-height:1.6}.practice-set-list{gap:16px;margin:0;padding:0;list-style:none;display:grid}.practice-set{gap:12px;padding:20px 24px;display:grid}.practice-set.is-active{box-shadow:inset 3px 0 0 var(--accent),var(--shadow-raise)}.practice-set-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.practice-set-head h3{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight);color:var(--ink);overflow-wrap:anywhere}.practice-set-head p{font-size:var(--fs-small);color:var(--muted);margin-top:4px}.practice-set-following{border-radius:var(--pill);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-caption);flex:none;padding:2px 10px;font-weight:700}.practice-set-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;display:flex}.practice-set-foot>span{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums}.practice-set-actions{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.practice-set-actions .text-button{min-height:44px;color:var(--accent);padding:0 10px;font-weight:600}.practice-set-actions .practice-set-delete{color:var(--muted)}.practice-set-actions .practice-set-delete:hover{color:var(--danger)}.practice-set-actions :is(.primary-action,.secondary-action){min-height:44px}.practice-random{gap:12px;padding:16px;display:grid}.practice-random .pill-group{height:auto;min-height:var(--bar-control);border-radius:var(--r-md);flex-wrap:wrap}.practice-random .pill-group>button{min-height:36px}.practice-random>.secondary-action{justify-self:start}.set-filter{gap:20px;padding:24px;display:grid}.set-field{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.set-field>legend,.set-field>span{font-size:var(--fs-small);color:var(--ink);padding:0;font-weight:700}.set-field input[type=text]{border:1px solid var(--edge-strong);border-radius:var(--r-md);background:var(--panel);width:100%;min-height:48px;color:var(--ink);font:inherit;font-size:var(--fs-body);padding:10px 14px}.set-field input[type=text]:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-color:var(--accent)}.set-field .filter-chip{min-height:40px}.set-topics{margin-top:4px}.set-topics summary{min-height:44px;color:var(--accent);font-size:var(--fs-small);cursor:pointer;align-items:center;font-weight:600;display:flex}.set-topics .topic-search{max-width:none;min-height:44px;margin:4px 0 12px}.set-topic-chips{overscroll-behavior:contain;max-height:280px;padding:2px;overflow-y:auto}.set-check{min-height:44px;font-size:var(--fs-small);color:var(--body);align-items:center;gap:10px;display:flex}.set-check input{width:20px;height:20px;accent-color:var(--accent-fill);flex:none}.set-editor-actions{flex-wrap:wrap;gap:12px;display:flex}.set-editor-actions>*{min-height:48px}.set-lessons{margin:0;padding:4px 16px;list-style:none}.set-lessons[aria-busy=true]{opacity:.6}.set-found li,.set-lessons li{border-bottom:1px solid var(--edge);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:56px;padding:8px 0;display:grid}.set-found li:last-child,.set-lessons li:last-child{border-bottom:0}.set-found li>div,.set-lessons li>div{gap:2px;min-width:0;display:grid}.set-found strong,.set-lessons strong{font-size:var(--fs-small);color:var(--ink);overflow-wrap:anywhere;font-weight:600}.set-found li span:not(.library-lesson-level),.set-lessons li span:not(.library-lesson-level){font-size:var(--fs-caption);color:var(--muted);overflow-wrap:anywhere}.set-found .library-lesson-level,.set-lessons .library-lesson-level{margin:0}.set-lessons .icon-button{width:44px;height:44px;color:var(--muted)}.set-lessons .icon-button:hover{color:var(--danger)}.set-lessons .set-lessons-empty{font-size:var(--fs-small);color:var(--muted);display:block}.set-show-all{min-height:44px;color:var(--accent);justify-self:start;font-weight:600}.set-add{gap:8px;padding:16px;display:grid}.set-add .topic-search{max-width:none;min-height:44px}.set-found{margin:0;padding:0;list-style:none}.set-found .text-button{min-height:44px;color:var(--accent);padding:0 12px;font-weight:700}.practice-set-editor .page-side{gap:12px}.practice-set-heading-actions{margin-top:12px}.practice-set-heading-actions>*{min-height:44px}.practice-set-read{color:var(--success);font-size:var(--fs-small);align-items:center;gap:4px;font-weight:600;display:inline-flex}.library-heading-links{flex-wrap:wrap;align-items:center;gap:0 20px;display:flex}.library-heading-links .library-browse{align-items:center;gap:8px;min-height:44px;display:inline-flex}@media (max-width:600px){.practice-set,.practice-sets-empty,.set-filter{padding:16px}.practice-set-foot{justify-content:stretch;display:grid}.practice-set-actions{grid-template-columns:auto auto 1fr;gap:8px;display:grid}.practice-set-actions :is(.primary-action,.secondary-action){grid-column:1/-1;width:100%}.set-lessons{padding-inline:12px}.set-lessons li.is-folded{display:none}.set-lessons.is-open li.is-folded{display:grid}.set-editor-actions>*{flex:1}:is(.practice-random,.set-filter) .pill-group{flex-wrap:wrap;height:auto;min-height:52px}:is(.practice-random,.set-filter) .pill-group>button{flex:auto;min-height:44px}.set-field .filter-chip{min-height:44px}.practice-random>.secondary-action{justify-self:stretch}.practice-sets-page .page-note a{align-items:center;min-height:44px;display:inline-flex}}@media (min-width:601px){.set-show-all{display:none}}.library-room:not(.is-speaking) .reading-practice{background:0 0;border:0;border-radius:0;gap:16px;padding:0;display:grid;overflow:visible}.library-room:not(.is-speaking) :is(.lesson-listen,.reading-body){background:var(--panel);border:1px solid var(--edge);border-radius:var(--r-lg);box-shadow:var(--shadow-raise);padding:20px 24px}.library-room:not(.is-speaking) .reading-body{padding:24px}.library-room:not(.is-speaking) .reading-caption{font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;margin:0 0 12px;font-weight:700}.library-room:not(.is-speaking) .reading-caption span:last-child{text-transform:none;letter-spacing:0}.library-room:not(.is-speaking) .reading-practice .answer-en{font-family:var(--font-ui);color:var(--ink);font-size:20px;font-weight:500;line-height:1.7}.library-room:not(.is-speaking) .answer-ipa{text-align:left;max-width:none;margin:12px 0 0}.library-bar .library-pick{white-space:nowrap;flex:none}.library-room:not(.is-speaking) .reading-start .learn-primary{border-radius:var(--pill);background:var(--accent-gradient);min-height:48px;color:var(--accent-ink);font-size:var(--fs-body);box-shadow:var(--shadow-raise);border:0;align-items:center;gap:8px;padding:0 24px;font-weight:700;display:inline-flex}.library-room:not(.is-speaking) .reading-translation{color:var(--body);font-size:var(--fs-body);margin-top:16px}.library-room:not(.is-speaking) .reading-translation summary{color:var(--accent);font-weight:600}@media (max-width:600px){.library-room:not(.is-speaking) :is(.lesson-listen,.reading-body){padding:16px}.library-room:not(.is-speaking) .reading-practice .answer-en{font-size:18px}.library-room:not(.is-speaking) .reading-start .learn-primary{justify-content:center;width:100%}}.reading-reveal{gap:8px;display:inline-flex}.back-link,.reading-reveal{justify-content:center;align-items:center}.back-link{border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--muted);font-size:var(--fs-small);white-space:nowrap;place-self:start;gap:8px;margin:0 0 12px;padding:0 16px 0 12px;font-weight:600;text-decoration:none;display:inline-flex}.back-link:hover{background:var(--surface-subtle);color:var(--ink)}.back-link:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.back-link:disabled,.back-link[aria-disabled=true]{opacity:.5;cursor:not-allowed}.back-link[aria-disabled=true]:hover{background:var(--panel);color:var(--muted)}.back-link.is-icon{width:44px;height:44px;color:var(--accent);flex:none;margin:0;padding:0}.library-bar .back-link.is-icon{box-shadow:var(--shadow-raise)}.fame-heading>.back-link{border-color:var(--fame-edge);width:fit-content;color:var(--fame-muted);background:0 0;margin:0 0 24px;display:flex}.scenario-back{padding:0 26px 22px}.learn-primary,.reading-controls .learn-primary{border-radius:var(--pill);background:var(--accent-gradient);min-height:48px;color:var(--accent-ink);font-size:var(--fs-body);box-shadow:var(--shadow-raise);border:0;justify-content:center;gap:8px;padding:0 24px;font-weight:700}.learn-primary:hover:not(:disabled),.reading-controls .learn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:var(--shadow-float)}:is(.library-pick,.reading-reveal,.lesson-navigation button,.reading-controls button:not(.learn-primary)){border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--accent);font-size:var(--fs-small);justify-content:center;align-items:center;gap:8px;margin:0;padding:0 18px;font-weight:600;display:inline-flex}:is(.library-pick,.reading-reveal,.lesson-navigation button,.reading-controls button:not(.learn-primary)):hover:not(:disabled){background:var(--surface-subtle)}:is(.lesson-navigation button,.reading-controls button:not(.learn-primary)):disabled{color:var(--faint);border-color:var(--edge);background:var(--panel);opacity:.7}.speak-recorder.is-row .speak-recorder-actions button{border:2px solid var(--edge);border-radius:var(--pill)}.is-speaking .speak-recorder.is-row .speak-recorder-actions .speak-record,.is-speaking .speak-recorder.is-row>.mic-meter{border-radius:var(--pill)}.reading-controls{gap:12px}.room-grid{grid-template-columns:minmax(0,1fr);gap:16px;margin:0 0 32px;padding:0;list-style:none;display:grid}.room-card{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);height:100%;box-shadow:var(--shadow-raise);color:inherit;transition:box-shadow var(--t-base) ease,border-color var(--t-base) ease;grid-template-rows:auto auto 1fr auto auto;gap:8px;padding:24px;text-decoration:none;display:grid}.room-card:hover{border-color:var(--edge-strong);box-shadow:var(--shadow-float)}.room-card:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.room-card .row-mark{width:48px;height:48px;margin-bottom:8px}.room-card h2{font-size:var(--fs-h2);font-weight:700;line-height:var(--lh-tight);color:var(--ink)}.room-card>p{font-size:var(--fs-small);color:var(--muted);line-height:1.6}.room-card .room-card-status{border-radius:var(--r-md);background:var(--surface-subtle);color:var(--ink);overflow-wrap:anywhere;align-self:end;padding:8px 12px;font-weight:600}.room-card-go{min-height:44px;font-size:var(--fs-small);color:var(--accent);align-items:center;gap:6px;margin-top:4px;font-weight:700;display:inline-flex}.room-card:hover .room-card-go svg{transform:translate(2px)}@media (min-width:700px){.room-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1100px){.room-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:600px){.room-card{gap:6px;padding:16px}.room-card .row-mark{width:44px;height:44px;margin-bottom:4px}.room-grid{gap:12px;margin-bottom:24px}}.library-room:not(.is-speaking) .library-heading{max-width:760px;margin-inline:0}.lesson-column{gap:16px;max-width:760px;display:grid}.lesson-topline{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin-bottom:16px;display:flex}.lesson-topline-source{min-width:0;font-size:var(--fs-small);color:var(--muted);overflow-wrap:anywhere;font-weight:600}.lesson-menu-button{min-height:44px;font-size:var(--fs-small);padding:0 14px 0 18px}.library-room .practice-steps{display:none}.library-room:not(.is-speaking) .lesson-listen{padding:16px 20px}.library-room:not(.is-speaking) .lesson-listen .listen-transport{margin:0}.library-room:not(.is-speaking) .reading-start .learn-primary{justify-content:center;width:100%;min-height:52px}.library-room:not(.is-speaking) .reading-start{border-top:0;margin-top:20px;padding-top:0}.reading-extras summary{font-size:var(--fs-small)}.reading-extras .answer-ipa{color:var(--muted);margin:8px 0 12px}.reading-extras .reading-note{margin-top:8px}.library-room .lesson-column .vocabulary-block{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.library-room .lesson-column .vocabulary-block .prompt-label{margin-bottom:8px}.library-room .lesson-column .vocabulary-note{display:none}.lesson-menu .sheet-body{gap:8px}.lesson-menu .sheet-row{grid-template-columns:20px minmax(0,1fr) auto;min-height:56px}.lesson-menu .sheet-row .pill-group{flex-wrap:wrap;height:auto;min-height:44px}.lesson-menu .sheet-row .pill-group>button{min-width:44px;min-height:40px}.lesson-menu .sheet-links button{min-height:48px}.lesson-menu-invite{border:2px dashed var(--edge-strong);border-radius:var(--r-md);background:var(--surface-subtle);width:100%;color:var(--accent);text-align:left;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:12px;padding:14px 16px;display:grid}.lesson-menu-invite strong{font-size:var(--fs-body);color:var(--ink);display:block}.lesson-menu-invite small{font-size:var(--fs-small);color:var(--muted);margin-top:2px;line-height:1.5;display:block}.lesson-menu-toggle{min-width:96px;min-height:44px}.lesson-menu-toggle[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.lesson-menu-playback{border-top:1px solid var(--edge);padding-top:4px}.lesson-menu-keep{border-top:1px solid var(--edge);gap:8px;padding-top:12px;display:grid}@media (max-width:600px){.lesson-topline{align-items:stretch}.lesson-menu-button{flex:100%;justify-content:center}}.lesson-menu-link{text-align:left;gap:2px;display:grid}.lesson-menu-link small{font-size:var(--fs-small);color:var(--muted);font-weight:400}.lesson-menu .sheet-links button:has(.lesson-menu-link){align-items:start;height:auto;padding-block:10px}.room-cell{position:relative}.room-cell:has(.room-card-extra) .room-card{padding-bottom:24px}.room-card-extra{border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--accent);font-size:var(--fs-small);align-items:center;gap:6px;padding:0 14px;font-weight:700;display:inline-flex;position:absolute;bottom:24px;right:24px}.room-card-extra:hover{background:var(--surface-subtle)}.room-card-extra:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (max-width:600px){.room-card-extra{bottom:16px;right:16px}}.room-tabs{border:1px solid var(--edge);border-radius:var(--pill);background:var(--surface-subtle);grid-auto-flow:column;gap:4px;margin:0 0 16px;padding:4px;display:inline-grid}.room-tabs button{border-radius:var(--pill);min-height:44px;color:var(--muted);font-size:var(--fs-small);background:0 0;border:0;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:700;display:inline-flex}.room-tabs button[aria-current=page]{background:var(--panel);color:var(--accent);box-shadow:var(--shadow-raise);cursor:default}.room-tabs button:not([aria-current]):hover{color:var(--ink)}.room-tabs-count{border-radius:var(--pill);background:var(--accent-soft);min-width:22px;height:22px;color:var(--accent);font-size:var(--fs-caption);place-items:center;padding:0 6px;display:grid}@media (max-width:600px){.room-tabs{grid-template-columns:1fr 1fr;width:100%;display:grid}}.sidebar nav a.nav-label-link{border-radius:var(--r-sm);min-height:36px;color:var(--muted);margin:14px 0 2px;padding:4px 14px;font-weight:700}.sidebar nav a.nav-label-link:hover{color:var(--ink);background:0 0}.sidebar nav a.nav-label-link[aria-current=page]{color:var(--accent)}.sidebar-rooms{gap:2px}.room-switcher-button{border:2px solid var(--edge);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--ink);font-size:var(--fs-body);align-items:center;gap:10px;padding:0 14px 0 6px;font-weight:700;display:inline-flex}.room-switcher-button:hover{background:var(--surface-subtle)}.room-switcher-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.room-switcher-button .row-mark{border-radius:50%;width:32px;height:32px}.room-switcher-button>svg{color:var(--muted)}.room-switcher-name{white-space:nowrap}.room-switcher-strip{display:none}.room-switcher-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.room-switcher-item{border-radius:var(--r-md);min-height:60px;color:inherit;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 10px;text-decoration:none;display:grid}.room-switcher-item:hover{background:var(--surface-subtle)}.room-switcher-item[aria-current=page]{background:var(--accent-soft)}.room-switcher-item[aria-current=page]>svg{color:var(--accent)}.room-switcher-item>svg{color:var(--muted)}.room-switcher-item .row-mark{width:40px;height:40px}.room-switcher-text{gap:2px;min-width:0;display:grid}.room-switcher-text strong{font-size:var(--fs-body);color:var(--ink);font-weight:700}.room-switcher-text small{font-size:var(--fs-small);color:var(--muted);line-height:1.5}@media (max-width:900px){.topbar-title .room-switcher{display:none}.room-switcher-strip{width:100%;max-width:var(--content-max);padding:12px var(--gutter) 0;box-sizing:border-box;align-self:stretch;margin:0 auto;display:block}.room-switcher-strip .room-switcher-button{justify-content:flex-start;width:100%}.room-switcher-strip .room-switcher-name{text-align:left;flex:1}}.lesson-dock{margin-top:28px}.lesson-nav{justify-content:space-between;gap:12px;display:flex}.lesson-nav .secondary-action{min-height:44px}.lesson-line-controls{justify-content:space-between;gap:12px;display:flex}.lesson-line-controls .learn-primary{flex:1;max-width:320px;margin-left:auto}.line-card{gap:14px;display:grid}.line-card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.line-card-head .reading-position{margin:0}.line-card-head .sentence-save{margin:-10px -10px -10px 0}.line-speaker{color:var(--ink);font-weight:600}.line-speaker.is-you{color:var(--accent)}.dictation-room .dictation-heading,.dictation-room .dictation-practice{max-width:760px}@media (min-width:901px){.dictation-room .lesson-dock{max-width:760px}}.dictation-heading .dictation-context{color:var(--ink);margin-top:8px}.dictation-speak{border-top:1px solid var(--edge);gap:10px;margin-top:18px;padding-top:16px;display:grid}.dictation-speak h2{align-items:center;gap:8px;margin:0;display:flex}.scenario-room .lesson-finish,.scenario-room .page-heading{max-width:760px}@media (min-width:901px){.scenario-room .lesson-dock{max-width:760px}}.lesson-about{margin-top:12px}.lesson-about>summary{box-sizing:border-box;cursor:pointer;min-height:44px;padding:11px 0;font-weight:600;display:list-item}.lesson-frame .scenario-back{margin-top:16px;padding:0}.lesson-finish{border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);padding:24px}.lesson-finish,.lesson-finish-says{justify-items:start;gap:10px;display:grid}.lesson-finish h2{font-family:var(--font-display);margin:0;font-size:26px;font-weight:400;line-height:1.3}.lesson-finish p{color:var(--muted);margin:0}.lesson-finish-mark{background:var(--soft);width:40px;height:40px;color:var(--accent);border-radius:50%;place-items:center;display:grid}.lesson-finish-actions{flex-wrap:wrap;margin-top:6px}.lesson-finish .xp-rule-line{margin:2px 0 0}.scenario-menu-turns{gap:2px;margin:0;padding:0;list-style:none;display:grid}.scenario-menu-turn{border-radius:var(--r-md);text-align:left;width:100%;min-height:44px;color:var(--ink);background:0 0;border:0;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.scenario-menu-turn[aria-current=step]{background:var(--soft)}.scenario-menu-turn-number{font-variant-numeric:tabular-nums;min-width:22px;color:var(--muted);flex:none}.scenario-menu-turn-body{gap:2px;min-width:0;display:grid}.scenario-menu-turn-body span{text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-small);color:var(--muted);overflow:hidden}.scenario-menu-turn.is-you b{color:var(--accent)}.lesson-menu-about summary{box-sizing:border-box;cursor:pointer;min-height:44px;padding:11px 0;font-weight:600;display:list-item}.lesson-menu .dictation-settings{margin-top:8px}.lesson-menu .dictation-segment-list{margin:0 0 8px}@media (max-width:900px){:root{--lesson-dock-height:76px}.lesson-dock{z-index:29;box-sizing:border-box;min-height:var(--lesson-dock-height);left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background:var(--surface-subtle);border-top:1px solid var(--edge);flex-direction:column;justify-content:center;margin:0;padding:10px 16px;display:flex;position:fixed;box-shadow:0 -4px 16px light-dark(#2436250a,#00000052)}.lesson-frame:has(.lesson-dock){padding-bottom:calc(var(--lesson-dock-height) + 8px)}body:has(.lesson-dock) .back-to-top,body:has(.lesson-dock) .toast-stack{--dock-height:var(--lesson-dock-height)}.lesson-frame:has(input:focus,textarea:focus) .lesson-dock{display:none}.lesson-line-controls button,.lesson-nav .secondary-action{flex:1}}.account-gate{justify-items:start;gap:12px;max-width:560px;padding:28px;display:grid}.account-gate :is(h1,h2){font-size:var(--fs-h2);margin:0}.account-gate p{color:var(--muted);margin:0}.account-gate-gives{gap:8px;margin:4px 0;padding:0;list-style:none;display:grid}.account-gate-gives li{color:var(--ink);align-items:center;gap:10px;display:flex}.account-gate-gives svg{color:var(--accent);flex:none}.account-gate-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.account-gate.is-compact{max-width:none;padding:20px}@media (max-width:600px){.account-gate{padding:20px}.account-gate-actions>*{flex:100%;justify-content:center}}.lesson-bar{display:none}@media (max-width:900px){html[data-lesson]{--tabbar-height:0px}html[data-lesson] :is(.topbar,.room-switcher-strip,.tabbar,.sidebar){display:none}html[data-lesson] .lesson-bar{min-height:56px;padding:6px var(--gutter);border-bottom:1px solid var(--edge);background:var(--app);justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-bar .lesson-bar-close{min-height:44px;padding:0 18px}.lesson-bar-room{font-size:var(--fs-body);color:var(--ink);font-weight:600}}.video-grid{grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:20px 16px;margin:12px 0 0;padding:0;list-style:none;display:grid}.video-card,.video-continue-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);height:100%;color:inherit;grid-template-rows:auto 1fr;text-decoration:none;transition:border-color .15s;display:grid;overflow:hidden}@media (hover:hover){.video-card:hover,.video-continue-card:hover{border-color:var(--edge-strong)}}@media (prefers-reduced-motion:reduce){.video-card,.video-continue-card{transition:none}}.video-card-body{align-content:start;gap:8px;padding:12px 14px 14px;display:grid}.video-card-name{-webkit-line-clamp:2;min-height:2.8em;color:var(--ink);-webkit-box-orient:vertical;font-size:15px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.video-card-meta{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.video-thumb{aspect-ratio:16/9;background:var(--soft);display:block;position:relative;overflow:hidden}.video-thumb img{object-fit:cover;width:100%;height:100%;display:block}.video-duration{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;background:light-dark(#1c2520e6,#0b0f0de6);border-radius:6px;padding:2px 7px;bottom:10px;right:8px}.video-done,.video-duration{color:var(--accent-ink);position:absolute}.video-done{background:var(--accent-fill);font-size:var(--fs-caption);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-weight:600;display:inline-flex;top:8px;left:8px}.video-progress{background:light-dark(#1c252040,#0b0f0d80);height:4px;position:absolute;bottom:0;left:0;right:0}.video-progress i{width:var(--video-progress);background:var(--accent);height:100%;display:block}.video-languages{margin:0 0 24px}@media (max-width:600px){.video-languages .pill-group{height:52px}.video-languages .pill-group>button{flex:1;min-height:44px}.video-languages .pill-group{display:flex}}.video-continue{margin:0 0 28px}.video-continue h2{font-size:var(--fs-small);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-weight:600}.video-continue-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.video-filters{gap:12px;margin-bottom:8px;display:grid}.video-filter-bar{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.video-filter-bar .topic-search{min-height:var(--control)}.video-filter-selects{flex-wrap:wrap;gap:12px;display:flex}.video-filter-select{font-size:var(--fs-small);color:var(--muted);align-items:center;gap:8px;display:flex}.video-filter-select .select-trigger{min-width:180px}.video-filter-toggle{display:none}.video-clear{min-height:var(--control);font-size:var(--fs-small)}@media (max-width:1024px){.video-continue-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.video-catalogue .level-chips{width:calc(100% + 2 * var(--gutter));margin:0 calc(-1 * var(--gutter));padding:2px var(--gutter);scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.video-catalogue .level-chips .level-chip{flex:none}.video-filter-bar{gap:8px}.video-filter-bar .topic-search{flex:1 1 0;max-width:none}.video-filter-toggle{display:inline-flex}.video-filter-selects{flex-direction:column;gap:8px;width:100%;display:none}.video-filter-selects.is-open{display:flex}.video-filter-select{gap:4px;display:grid}.video-filter-select .select-trigger{width:100%}.video-grid{grid-template-columns:1fr;gap:10px}.video-card,.video-continue-card{grid-template-rows:none;grid-template-columns:120px minmax(0,1fr);align-items:stretch}.video-card .video-thumb,.video-continue-card .video-thumb{aspect-ratio:auto;min-height:72px}.video-card-body{gap:6px;padding:10px 12px}.video-card-name{min-height:0;font-size:14px}.video-continue-list{grid-template-columns:1fr;gap:10px}.video-duration{bottom:6px;right:6px}.video-done{padding:2px 6px;top:6px;left:6px}}.fame-page header .pill-group,.league-page .page-heading .pill-group{margin-top:14px}.profile-languages{border-top:1px solid var(--edge);gap:8px;margin:14px 0 0;padding:12px 0 0;list-style:none;display:grid}.profile-languages li{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.profile-languages b{color:var(--ink);font-weight:600}@media (max-width:600px){.admin-shell .pill-group button,.fame-page .pill-group button,.league-page .pill-group button{min-height:44px}}.admin-list-pair li{grid-template-columns:minmax(0,1fr) auto}.analytics-consent{left:50%;bottom:calc(var(--tabbar-height,0px) + var(--dock-height,0px) + 16px + env(safe-area-inset-bottom,0px));z-index:58;border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:min(560px,100% - 32px);box-shadow:var(--shadow-raise);font-size:var(--fs-small);gap:12px;padding:16px;line-height:1.5;display:grid;position:fixed;transform:translate(-50%)}.analytics-consent p{margin:0}.analytics-consent a{color:var(--accent)}.analytics-consent-actions{flex-wrap:wrap;gap:8px;display:flex}.analytics-consent-actions button{min-height:44px}.support-page{max-width:880px}.support-head{border-bottom:1px solid var(--edge);max-width:64ch;padding-bottom:20px}.support-head h1{margin-block:6px 10px;font-size:clamp(32px,4vw,48px);line-height:1.2}.support-head p{color:var(--muted);font-size:var(--fs-body);margin:0;line-height:1.6}.support-ways{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:24px;display:grid}.support-way{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);align-content:start;justify-items:start;gap:12px;padding:20px;display:grid}.support-way h2{font-size:var(--fs-h3);margin:0}.support-way p{color:var(--muted);font-size:var(--fs-small);margin:0;line-height:1.6}.support-way .learn-primary{text-decoration:none}.support-qr{border-radius:var(--radius-sm);width:min(320px,100%);height:auto}.support-notes{color:var(--muted);font-size:var(--fs-small);margin:24px 0 0;padding-left:20px;line-height:1.7}.support-actions{flex-wrap:wrap;gap:8px;display:flex}.console,.console-app{min-height:100vh}.console{grid-template-columns:240px minmax(0,1fr);display:grid}.console-sidebar{border-right:1px solid var(--edge);background:var(--panel);flex-direction:column;gap:18px;height:100vh;padding:18px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.console-brand{justify-items:start;gap:2px;display:grid}.console-brand .brand{padding:4px 8px}.console-brand-tag{border-radius:var(--pill);background:var(--soft);color:var(--accent);font-size:var(--fs-label);letter-spacing:.06em;text-transform:uppercase;margin-left:8px;padding:2px 8px;font-weight:600}.admin-nav{gap:16px;display:grid}.admin-nav-group{gap:2px;display:grid}.admin-nav-title{font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:2px 10px 4px;font-weight:600}.console-sidebar-foot{border-top:1px solid var(--edge);gap:4px;margin-top:auto;padding-top:12px;display:grid}.console-toggles{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 6px 8px;display:flex}.console-account,.console-foot-link{min-height:38px;font-size:var(--fs-small);color:var(--muted);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.console-foot-link:hover{background:var(--surface-subtle);color:var(--ink)}.console-account span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}main.console-main{width:100%;min-width:0;max-width:1360px;min-height:0;margin-left:0;padding:28px 40px 72px;display:block}.console-main .admin-heading{border-bottom:1px solid var(--edge);padding-bottom:18px}@media (max-width:1150px){.console{grid-template-columns:208px minmax(0,1fr)}main.console-main{padding:24px 24px 64px}}@media (max-width:900px){.console{grid-template-columns:1fr}.console-sidebar{z-index:20;height:auto;padding:8px var(--gutter) 0;border-right:0;border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;display:grid}.console-brand{align-items:center;gap:8px;display:flex}.console-brand-tag{margin-left:0}.console-sidebar-foot{border:0;grid-area:1/2;align-items:center;gap:4px;margin:0;padding:0;display:flex}.console-account,.console-toggles{display:none}.console-foot-link{justify-content:center;min-width:44px;min-height:44px;padding:0 10px}.admin-nav{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 8px;grid-column:1/-1;gap:2px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.admin-nav::-webkit-scrollbar{display:none}.admin-nav-group{display:contents}.admin-nav-title{display:none}main.console-main{padding:18px var(--gutter) 56px}}.admin-users-table td{white-space:nowrap}.admin-users-table td:first-child,.admin-users-table th:first-child{z-index:1;background:var(--panel);position:sticky;left:0}.admin-filters-toggle{display:none}@media (max-width:900px){.admin-filters-toggle{align-self:end;display:inline-flex}.admin-filters.is-collapsed .admin-filter:not(.is-wide),.admin-filters.is-collapsed>button[type=submit]{display:none}}.bank-language-switch{margin-bottom:20px}.library-level-heading{margin-top:8px}.library-level-heading h2{font-size:var(--fs-h3);margin:0 0 6px}.room-cell:has(.room-card-languages) .room-card{padding-bottom:88px}.room-cell:has(.room-card-languages) .room-card-extra{bottom:88px}.room-card-languages{flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;bottom:22px;left:24px;right:24px}@media (max-width:600px){.room-cell:has(.room-card-languages) .room-card{padding-bottom:78px}.room-cell:has(.room-card-languages) .room-card-extra{bottom:78px}.room-card-languages{bottom:16px;left:16px;right:16px}}.room-card-languages .filter-chip{white-space:nowrap;min-height:44px;padding:0 14px}.bank-language-switch.is-compact{border:1px solid var(--edge);border-radius:var(--pill);background:var(--panel);gap:4px;margin:0 0 12px;padding:4px;display:inline-flex}.bank-language-switch.is-compact .filter-chip{min-height:40px;box-shadow:none;background:0 0;border:0;padding:0 14px}.bank-language-switch.is-compact .filter-chip[aria-pressed=true]{background:var(--soft);color:var(--accent)}.new-bank-note{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-raise);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin:0 0 20px;padding:16px 18px;display:flex}.new-bank-note h2{font-size:var(--fs-h3);margin:0 0 4px}.new-bank-note p{color:var(--muted);font-size:var(--fs-small);margin:0;line-height:1.5}.new-bank-note-actions{flex-wrap:wrap;gap:8px;display:flex}.new-bank-note-actions button{min-height:44px}.live-line span.is-lit{background:var(--accent-soft);color:var(--accent);border-radius:4px;transition:background-color .12s}.live-line.is-scored span.is-heard{text-decoration:underline;-webkit-text-decoration-color:var(--success);text-decoration-color:var(--success);text-underline-offset:5px;text-decoration-thickness:2px}.live-line.is-scored span.is-unheard{color:var(--muted);-webkit-text-decoration:underline dashed;text-decoration:underline dashed;-webkit-text-decoration-color:var(--danger);text-decoration-color:var(--danger);text-underline-offset:5px;text-decoration-thickness:2px}.live-line span.is-late,.live-line span.is-stretched{color:var(--warning)}.live-line .live-mark{color:var(--warning);font-weight:700}.live-shadow{gap:8px;margin-bottom:12px;display:grid}.live-shadow-row{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.live-start{border:2px solid var(--accent);border-radius:var(--pill);background:var(--panel);min-height:44px;color:var(--accent);align-items:center;gap:8px;padding:0 18px;font-weight:700;display:inline-flex}.live-start:hover:not(:disabled){background:var(--accent-soft)}.live-shadow-hint{font-size:var(--fs-small);color:var(--muted)}.live-summary{color:var(--ink);margin:0;font-weight:600}.premium-card{gap:14px;display:grid}.premium-title{font-size:var(--fs-h3);color:var(--ink);align-items:center;gap:8px;font-weight:700;display:flex}.premium-state{font-size:var(--fs-body);gap:6px;display:grid}.premium-state span{color:var(--muted)}.premium-state .text-button{justify-self:start;min-height:44px}.premium-plans{margin:0;padding:0;list-style:none;display:grid}.premium-plans li{border-top:1px solid var(--edge);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;display:flex}.premium-plans li:last-child{border-bottom:1px solid var(--edge)}.premium-plans li>div{gap:2px;min-width:0;display:grid}.premium-plans strong{font-size:var(--fs-body);color:var(--ink)}.premium-plans span{font-size:var(--fs-small);color:var(--ink)}.premium-plans small{font-size:var(--fs-caption);color:var(--success)}.premium-plans button{flex:none;min-height:44px;padding:0 16px}.premium-terms{font-size:var(--fs-caption);color:var(--muted);line-height:1.6}.premium-terms a{text-underline-offset:3px;text-decoration:underline}.premium-card>.text-button{justify-self:start;min-height:44px}.premium-gate{gap:12px;max-width:640px;margin:24px auto;display:grid}.premium-gate h1{font-size:var(--fs-h1);line-height:1.25}.premium-gate>p{color:var(--muted);line-height:1.6}.premium-gate .premium-card{box-shadow:none;background:0 0;border:0;margin:8px 0 0;padding:0}.premium-gate-where{color:var(--ink);font-weight:600}.line-change{font-size:var(--fs-small);color:var(--muted);margin:0}.line-change.is-better{border-radius:var(--radius-sm);background:var(--success-soft);color:var(--success);gap:4px;padding:8px 12px;font-weight:600;display:grid}.line-change.is-better p{margin:0}.line-change-words{color:var(--ink);font-weight:400}.progress-week{gap:12px;display:grid}.progress-week>p{margin:0;line-height:1.6}.progress-week>.secondary-action{justify-self:start}.progress-words{gap:8px;display:grid}.progress-words>p{font-size:var(--fs-small);color:var(--muted);margin:0;font-weight:700}.progress-words>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.progress-chip{border-radius:var(--pill);background:var(--success-soft);color:var(--success);padding:6px 12px;font-weight:700;display:inline-flex}.progress-more{font-size:var(--fs-small);color:var(--muted)}.progress-best{border-top:1px solid var(--edge);gap:4px;padding-top:12px;display:grid}.progress-best p{margin:0}.progress-best-label{font-size:var(--fs-small);color:var(--muted);font-weight:700}.progress-best-text{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.progress-best-change{font-size:var(--fs-small);color:var(--success);font-weight:600}.progress-lesson{text-align:left;gap:12px;display:grid}.progress-lesson-title{color:var(--success);margin:0;font-weight:700}.progress-revisit{border-top:1px solid var(--edge);gap:8px;padding-top:12px;display:grid}.progress-revisit>p{margin:0}.progress-revisit ul{margin:0;padding:0;list-style:none;display:grid}.progress-revisit li+li{border-top:1px solid var(--edge)}.progress-revisit a{min-height:44px;color:var(--ink);gap:2px;padding:8px 0;text-decoration:none;display:grid}.progress-revisit a:hover .progress-revisit-text{text-decoration:underline}.progress-revisit-text{overflow-wrap:anywhere;font-weight:600}.progress-revisit-meta{font-size:var(--fs-small);color:var(--muted)}.progress-report-link{min-height:44px;color:var(--accent);justify-self:start;align-items:center;font-weight:600;display:inline-flex}.progress-report-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.progress-report-row>div{gap:4px;display:grid}.progress-report-row span{color:var(--muted);font-size:var(--fs-small);line-height:1.5}.settings-layout{gap:16px;display:grid}.settings-index{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 4px;gap:4px;display:flex;overflow-x:auto}.settings-index::-webkit-scrollbar{display:none}.settings-index a{min-height:var(--control-touch);border-radius:var(--pill);background:var(--panel);box-shadow:var(--shadow-raise);font-size:var(--fs-small);color:var(--muted);flex:none;align-items:center;padding:0 14px;font-weight:600;text-decoration:none;display:inline-flex}.settings-index a:hover{color:var(--ink)}.settings-sections{gap:32px;min-width:0;max-width:860px;display:grid}.settings-section{min-width:0;scroll-margin-top:calc(var(--topbar) + 16px)}.settings-section>.page-section-title{margin-bottom:12px}.settings-section-lead{font-size:var(--fs-small);color:var(--muted);max-width:70ch;margin:-4px 0 12px;line-height:1.6}.settings-section.is-danger>.page-section-title{color:var(--danger)}.settings-section .plate-tight{padding:0 20px}.settings-section .row-list{border-top:0}.settings-section .row:last-child{border-bottom:0}.settings-section .row-link{grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;min-height:64px;padding:16px 0}.settings-section .row-line{white-space:normal;line-height:1.55}.settings-section .row-trailing{white-space:normal;justify-content:flex-end}.settings-section .row-trailing .select{min-width:180px}.settings-section .row-trailing>span[id]{display:contents}.settings-section .row-body{gap:10px;padding:0 0 18px;display:grid}.settings-section .row-body .settings-hint{max-width:70ch;line-height:1.6}.settings-account-actions{gap:4px 16px}.settings-block{padding:18px 0}.settings-block:empty{display:none}.settings-block :is(.settings-card,.privacy-card,.review-reminder,.premium-card){box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.settings-block .privacy-advanced,.settings-block .privacy-card+:is(.privacy-card,.privacy-advanced){border-top:1px solid var(--edge);margin-top:18px;padding-top:18px}.settings-block :is(.privacy-card,.settings-card,.review-reminder) :is(h2,h3){font-size:var(--fs-h3);color:var(--ink);font-weight:600;line-height:var(--lh-tight)}.settings-block .privacy-card-lead,.settings-block .review-reminder-heading p{font-size:var(--fs-small);color:var(--muted);margin-top:4px;line-height:1.6}.settings-block .permission-row{padding:14px 16px}.settings-block .settings-note{font-size:var(--fs-small);margin-top:10px;line-height:1.6}.settings-block .settings-actions{margin-top:14px}@media (min-width:1100px){.settings-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:40px}.settings-index{top:calc(var(--topbar) + 24px);flex-direction:column;margin:0;padding:0;position:sticky;overflow:visible}.settings-index a{border-radius:var(--r-sm);min-height:44px;box-shadow:none;font-size:var(--fs-body);background:0 0;justify-content:flex-start;padding:0 14px}.settings-index a:hover{background:var(--surface-subtle)}}@media (max-width:600px){.settings-section .plate-tight{padding:0 16px}.settings-section .row-link{grid-template-columns:minmax(0,1fr);gap:10px}.settings-section .row-trailing{justify-content:flex-start}.settings-section .row-trailing .select{width:100%;min-width:0}}.progress-trend{border-top:1px solid var(--edge);gap:10px;padding-top:12px;display:grid}.progress-trend>p{margin:0}.progress-trend-weeks{grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.progress-trend-weeks li{grid-template-rows:auto 96px auto auto;justify-items:center;gap:4px;min-width:0;display:grid}.progress-trend-value{font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--muted)}.progress-trend-bar{border-radius:var(--r-sm);background:var(--surface-subtle);align-items:flex-end;width:100%;max-width:28px;height:96px;display:flex;overflow:hidden}.progress-trend-bar i{background:var(--accent);border-radius:var(--r-sm) var(--r-sm) 0 0;width:100%;display:block}.progress-trend-weeks li.is-empty .progress-trend-bar{border:1px dashed var(--edge);background:0 0}.progress-trend-improved{min-height:1.2em;font-size:var(--fs-caption);color:var(--success);font-variant-numeric:tabular-nums;font-weight:700}.progress-trend-day{font-size:var(--fs-caption);color:var(--muted);white-space:nowrap}.progress-trend .split{flex-wrap:wrap;gap:8px 12px}.pet-art{--pet-outline:light-dark(#2b232024,#ffffff47);--pet-ink:light-dark(#2b2320,#2b2320);display:block;overflow:visible}.pet-art.is-orange_cat{--pet-fur:light-dark(#f29a4b,#e48a3c);--pet-light:light-dark(#fff1de,#f6dec0);--pet-dark:light-dark(#c96a22,#b85e1b);--pet-inner:light-dark(#f7b9a6,#e9a391)}.pet-art.is-corgi{--pet-fur:light-dark(#e3a35e,#d69450);--pet-light:light-dark(#fff6ea,#f4e6d2);--pet-dark:light-dark(#b87533,#a86a2d);--pet-inner:light-dark(#f2c9a0,#e5b98f)}.pet-art.is-penguin{--pet-fur:light-dark(#34405a,#4a5878);--pet-light:light-dark(#f7f7f2,#eeeee6);--pet-dark:light-dark(#22293a,#22293a);--pet-inner:light-dark(#f7f7f2,#eeeee6)}.pet-art.is-fox{--pet-fur:light-dark(#ea6f2d,#dc6526);--pet-light:light-dark(#fff4ea,#f5e5d6);--pet-dark:light-dark(#3a2a22,#3a2a22);--pet-inner:light-dark(#f7c0a0,#eab091)}.pet-art.is-panda{--pet-fur:light-dark(#f6f6f1,#edede6);--pet-light:light-dark(#fff,#f7f7f2);--pet-dark:light-dark(#2b2b2e,#2b2b2e);--pet-inner:light-dark(#f2c6cf,#e7b6c0)}.pet-art.is-bunny{--pet-fur:light-dark(#f1e7ec,#e6d9e0);--pet-light:light-dark(#fffdfd,#f7f0f3);--pet-dark:light-dark(#c9b6bf,#bba6b0);--pet-inner:light-dark(#f6b8c8,#eba7b9)}.pet-art .pet-shadow{fill:var(--edge);opacity:.7}.pet-art :is(.pet-fur,.pet-light,.pet-dark){stroke:var(--pet-outline);stroke-width:1px}.pet-art .pet-fur{fill:var(--pet-fur)}.pet-art .pet-light{fill:var(--pet-light)}.pet-art .pet-dark{fill:var(--pet-dark)}.pet-art .pet-inner{fill:var(--pet-inner)}.pet-art .pet-stripe{fill:none;stroke:var(--pet-dark);stroke-width:3px;stroke-linecap:round}.pet-art .pet-whisker{fill:none;stroke:var(--pet-dark);stroke-width:1px;stroke-linecap:round;opacity:.55}.pet-art .pet-beak{fill:light-dark(#f4a024,#f4a024)}.pet-art .pet-eye{fill:var(--pet-ink)}.pet-art .pet-eye.is-light,.pet-art .pet-glint{fill:light-dark(#fff,#fff)}.pet-art .pet-line{fill:none;stroke:var(--pet-ink);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.pet-art.is-panda .pet-eyes .pet-line{stroke:light-dark(#fff,#fff)}.pet-art .pet-nose{fill:light-dark(#3a2b28,#3a2b28)}.pet-art .pet-mouth-open{fill:light-dark(#7a3b3b,#7a3b3b)}.pet-art .pet-cheek{fill:light-dark(#f7a3a8,#f7a3a8);opacity:.6}.pet-art .pet-spark{fill:light-dark(#f2b705,#f7c948)}.pet-art .pet-drop{fill:light-dark(#5aaee6,#7cc3f0)}.pet-art .pet-zzz{fill:none;stroke:var(--muted);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.pet-art .pet-breathe{transform-origin:60px 112px;animation:pet-breathe 3.6s ease-in-out infinite}.pet-art .pet-eyes{transform-box:fill-box;transform-origin:50%;animation:pet-blink 5.5s infinite}.pet-art.mood-excited .pet-eyes,.pet-art.mood-happy .pet-eyes,.pet-art.mood-sleepy .pet-eyes{animation:none}@keyframes pet-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.018,.982)}}@keyframes pet-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes pet-hop{0%,to{transform:translateY(0)}45%{transform:translateY(-10px)}}@media (prefers-reduced-motion:reduce){.pet-art .pet-breathe,.pet-art .pet-eyes{animation:none}}.pet-page{gap:24px;display:grid}.pet-heading{margin-bottom:0}.pet-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}.pet-choice{border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);text-align:center;transition:transform var(--t-fast) ease;align-content:start;justify-items:center;gap:8px;padding:20px 16px;display:grid}.pet-choice:focus-within,.pet-choice:hover{transform:translateY(-3px)}.pet-choice h2{font-size:var(--fs-h2);color:var(--ink);font-weight:700}.pet-traits{color:var(--accent);margin:0;font-weight:600}.pet-quote,.pet-traits{font-size:var(--fs-small)}.pet-quote{border-radius:var(--r-md);background:var(--surface-subtle);color:var(--body);margin:4px 0 8px;padding:10px 14px;font-style:italic;line-height:1.55}.pet-choice .primary-action{justify-content:center;width:100%;margin-top:auto}.pet-fair,.pet-name{text-align:center}.pet-name{justify-items:center;gap:10px;max-width:520px;margin:0 auto;padding:28px 24px;display:grid}.pet-name h1{font-size:var(--fs-h1)}.pet-name form{text-align:left;gap:8px;width:100%;display:grid}.pet-name-field{font-size:var(--fs-small);color:var(--ink);gap:6px;font-weight:600;display:grid}.pet-name-actions{justify-content:space-between;margin-top:8px}.pet-home{text-align:center;justify-items:center;gap:12px;max-width:620px;margin:0 auto;padding:20px 24px 24px;display:grid}.pet-home,.pet-home-top{width:100%}.pet-streak{font-size:var(--fs-small);color:var(--streak);align-items:center;gap:6px;font-weight:700;display:inline-flex}.pet-stage{justify-items:center;gap:6px;display:grid}.pet-bubble{border-radius:var(--r-lg);background:var(--surface-subtle);max-width:360px;color:var(--ink);margin:0;padding:10px 16px;font-weight:600;line-height:1.5;position:relative}.pet-home-name{font-size:var(--fs-h1);line-height:var(--lh-tight)}.pet-home-kind{font-size:var(--fs-small);color:var(--muted);margin:-6px 0 0}.pet-stats{text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;width:100%;margin:6px 0 0;display:grid}.pet-stat{gap:6px;display:grid}.pet-stat dt{font-size:var(--fs-small);color:var(--muted);align-items:center;gap:6px;font-weight:600;display:inline-flex}.pet-stat dd{gap:4px;margin:0;display:grid}.pet-stat dd>span{font-size:var(--fs-small);font-variant-numeric:tabular-nums;color:var(--ink)}.pet-care{grid-template-columns:1fr 1fr;gap:10px;width:100%;display:grid}.pet-care .secondary-action{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;min-height:56px;display:flex}.pet-care .secondary-action small{font-size:var(--fs-caption);color:var(--muted);flex-basis:100%;font-weight:400}.pet-today{border-top:1px solid var(--edge);text-align:left;gap:6px;width:100%;padding-top:12px;display:grid}.pet-today h2{font-size:var(--fs-h3);font-weight:700}.pet-today p{font-size:var(--fs-small);color:var(--muted);margin:0}.pet-learn{justify-content:center;width:100%;min-height:52px}.pet-learn.is-urged{animation:pet-hop .45s ease-out 2}.pet-rewards{margin:0;padding:0;list-style:none;display:grid}.pet-rewards li{border-bottom:1px solid var(--edge);min-height:44px;font-size:var(--fs-small);justify-content:space-between;align-items:center;gap:12px;display:flex}.pet-rewards li:last-child{border-bottom:0}.pet-reward-figures{color:var(--success);white-space:nowrap;font-weight:700}.pet-empty{font-size:var(--fs-small);color:var(--muted);margin:0;padding:14px 0}@media (max-width:900px){.pet-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.pet-choices{scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter) 12px;scrollbar-width:none;display:flex;overflow-x:auto}.pet-choices::-webkit-scrollbar{display:none}.pet-choice{scroll-snap-align:center;flex:0 0 82%}.pet-home{padding:16px}.pet-stats{grid-template-columns:1fr 1fr}.pet-stats .pet-stat:last-child{grid-column:1/-1}}@media (prefers-reduced-motion:reduce){.pet-choice{transition:none}.pet-choice:focus-within,.pet-choice:hover{transform:none}.pet-learn.is-urged{animation:none}}.pet-reaction{border-radius:var(--pill);background:var(--surface-subtle);font-size:var(--fs-small);color:var(--body);align-items:center;gap:10px;width:fit-content;max-width:100%;margin:0;padding:6px 12px 6px 6px;line-height:1.4;display:flex}.pet-reaction .pet-art{flex:none}.pet-reaction strong{color:var(--ink)}.pet-strip{color:inherit;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 16px 10px 10px;text-decoration:none;display:grid}.pet-strip:hover{background:var(--surface-subtle)}.pet-strip-text{gap:2px;min-width:0;display:grid}.pet-strip-text strong{font-size:var(--fs-h3);color:var(--ink)}.pet-strip-text>span{font-size:var(--fs-small);color:var(--muted);line-height:1.45}.pet-strip>svg:last-child{color:var(--muted)}.pet-art.is-owl{--pet-fur:light-dark(#8b6b4a,#7e6043);--pet-light:light-dark(#f3e3c7,#e8d5b4);--pet-dark:light-dark(#4e3826,#4e3826);--pet-inner:light-dark(#d9b98e,#cdab7f)}.pet-art.is-parrot{--pet-fur:light-dark(#3fae5c,#369c51);--pet-light:light-dark(#f6e27a,#ebd66c);--pet-dark:light-dark(#23743a,#23743a);--pet-inner:light-dark(#e5484d,#d93f44)}.pet-art.is-tiger{--pet-fur:light-dark(#f08a2b,#e27e22);--pet-light:light-dark(#fff6ec,#f4e7d8);--pet-dark:light-dark(#2d2420,#2d2420);--pet-inner:light-dark(#f7c0a0,#eab091)}.pet-art.is-dragon{--pet-fur:light-dark(#3fb6a8,#36a497);--pet-light:light-dark(#cff3ec,#bfe8e0);--pet-dark:light-dark(#1f6f67,#1f6f67);--pet-inner:light-dark(#f4c14f,#f4c14f)}.pet-art.is-phoenix{--pet-fur:light-dark(#f2603a,#e25530);--pet-light:light-dark(#ffd87a,#f7cc66);--pet-dark:light-dark(#b8361b,#b8361b);--pet-inner:light-dark(#ffb23f,#f7a732)}.pet-art.is-unicorn{--pet-fur:light-dark(#fbf7ff,#f0eaf8);--pet-light:light-dark(#fff,#f8f5fc);--pet-dark:light-dark(#c9b8f2,#bca9ea);--pet-inner:light-dark(#f7b8d8,#eda6cb)}.pet-art .pet-stripe.is-light{stroke:var(--pet-dark);stroke-width:1.6px;opacity:.45}.pet-art .pet-beak.is-hooked{fill:light-dark(#3a3a3a,#3a3a3a)}.pet-art .pet-mane{fill:light-dark(#c9b8f2,#bca9ea);stroke:light-dark(#f7b8d8,#eda6cb);stroke-width:2px}.pet-art .pet-horn{fill:light-dark(#f4c14f,#f4c14f);stroke:var(--pet-outline);stroke-width:1px}.pet-art .pet-horn-line{fill:none;stroke:light-dark(#c9952a,#c9952a);stroke-width:1.2px;stroke-linecap:round}.pet-art .pet-star{fill:light-dark(#f2b705,#f7c948);stroke:light-dark(#b98a04,#b98a04);stroke-width:.8px}.pet-art .pet-aura{fill:none;stroke:light-dark(#f2b705,#f7c948);stroke-width:2.5px;stroke-dasharray:4 7;opacity:.75;transform-origin:60px 66px;animation:pet-aura 12s linear infinite}.pet-art .pet-grow{transform-origin:60px 112px}.pet-art.stage-1 .pet-grow{transform:scale(.9)}.pet-art.stage-2 .pet-grow{transform:scale(.95)}.pet-art .pet-wear-b{fill:light-dark(#f7f3ea,#f7f3ea)}.pet-art .pet-wear-dark{fill:light-dark(#26272b,#26272b)}.pet-art .pet-wear-gold{fill:light-dark(#f2b705,#f7c948);stroke:light-dark(#b98a04,#b98a04);stroke-width:.8px}.pet-art .pet-wear-line{fill:none;stroke:light-dark(#26272b,#26272b);stroke-width:2px;stroke-linecap:round}.pet-art .pet-wear-line.is-wide{stroke-width:3.5px}.pet-art .pet-wear-stripe{fill:none;stroke:light-dark(#f7f3ea,#f7f3ea);stroke-width:2px}.pet-art .pet-lens{fill:light-dark(#a6d4ff59,#a6d4ff59);stroke:light-dark(#26272b,#26272b);stroke-width:2.2px}@keyframes pet-aura{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.pet-art .pet-aura{animation:none}}.league-row-name .pet-art :is(.pet-breathe,.pet-eyes,.pet-aura){animation:none}.pet-scene{place-items:center;width:100%;max-width:420px;display:grid;position:relative}.pet-room{z-index:0;width:100%;height:auto;position:absolute;inset:auto 0 6px}.pet-scene .pet-art{z-index:1;position:relative}.pet-room .pet-room-leaf{fill:light-dark(#4fa36a,#4fa36a)}.pet-room .pet-room-pot{fill:light-dark(#c9714a,#b8653f)}.pet-room .pet-room-shade{fill:light-dark(#f4d27a,#e8c36a)}.pet-room .pet-room-pole{fill:none;stroke:light-dark(#6b5b4d,#8a7a6c);stroke-width:3px;stroke-linecap:round}.pet-room .pet-room-glow{fill:light-dark(#f4d27a59,#f4d27a38)}.pet-room .pet-room-wood{fill:light-dark(#b98a5e,#9c7550)}.pet-room .pet-room-shelf{fill:none;stroke:light-dark(#8a6440,#7a5838);stroke-width:2.5px}.pet-room .pet-room-book.is-a{fill:light-dark(#3e7cb1,#3e7cb1)}.pet-room .pet-room-book.is-b{fill:light-dark(#d9483b,#d9483b)}.pet-room .pet-room-book.is-c{fill:light-dark(#f2b705,#f2b705)}.pet-cancel{justify-self:center;min-height:44px}.pet-evolution{gap:12px;display:grid}.pet-stage-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.pet-stage-track li{border-radius:var(--pill);background:var(--surface-subtle);height:8px}.pet-stage-track li.is-reached{background:var(--accent)}.pet-evolution-lead{color:var(--ink);margin:0;font-weight:600}.pet-requirements{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pet-requirement{font-size:var(--fs-small);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;display:grid}.pet-requirement>span:first-child{color:var(--body);align-items:center;gap:6px;display:inline-flex}.pet-requirement.is-done>span:first-child{color:var(--success);font-weight:600}.pet-requirement-figure{font-variant-numeric:tabular-nums;color:var(--muted)}.pet-requirement .meter-bar{grid-column:1/-1}.pet-dress{gap:14px;display:grid}.pet-slot{border-bottom:1px solid var(--edge);gap:8px;padding-bottom:14px;display:grid}.pet-slot:last-child{border-bottom:0;padding-bottom:0}.pet-slot-name{font-size:var(--fs-small);color:var(--muted);margin:0;font-weight:700}.pet-slot-items{flex-wrap:wrap;gap:8px;display:flex}.pet-item{border:1px solid var(--edge);border-radius:var(--r-md);background:var(--panel);min-height:44px;font:inherit;font-size:var(--fs-small);color:var(--ink);cursor:pointer;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:6px 14px;font-weight:600;display:inline-flex}.pet-item[aria-pressed=true]{border-color:var(--accent);background:var(--soft);color:var(--accent)}.pet-item:disabled{cursor:default}.pet-collection{gap:16px;display:grid}.pet-buddies{gap:10px;margin:0;padding:0;list-style:none;display:grid}.pet-buddy{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.pet-buddy>span{gap:2px;min-width:0;display:grid}.pet-buddy strong{color:var(--ink)}.pet-buddy small{font-size:var(--fs-small);color:var(--muted)}.pet-buddy.is-active strong{color:var(--accent)}.pet-adoptable{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pet-adoptable,.pet-discover{border-top:1px solid var(--edge);padding-top:12px}.pet-discover{gap:8px;display:grid}.pet-discover ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.pet-discover li{border-radius:var(--r-md);background:var(--surface-subtle);grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:8px;display:grid}.pet-discover li:not(.is-unlocked) .pet-art{filter:grayscale();opacity:.55}.pet-discover li>span:last-child{gap:2px;min-width:0;display:grid}.pet-discover strong{font-size:var(--fs-small);color:var(--ink)}.pet-discover small{font-size:var(--fs-caption);color:var(--muted);line-height:1.4}.pet-mystery{background:var(--panel);width:56px;height:56px;color:var(--muted);letter-spacing:-.05em;border-radius:50%;place-items:center;font-weight:800;display:grid}@media (max-width:600px){.pet-buddy{grid-template-columns:auto minmax(0,1fr)}.pet-buddy .secondary-action{grid-column:1/-1;justify-content:center}.pet-discover ul{grid-template-columns:1fr}}.pet-locked{border-top:1px solid var(--edge);padding-top:12px}.pet-locked>summary{min-height:44px;font-size:var(--fs-small);color:var(--muted);cursor:pointer;align-items:center;font-weight:700;display:flex}.pet-locked ul{gap:12px;margin:8px 0 0;padding:0;list-style:none;display:grid}.pet-locked li{font-size:var(--fs-small);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 12px;display:grid}.pet-locked-name{color:var(--ink);align-items:center;gap:6px;font-weight:600;display:inline-flex}.pet-locked-name small{color:var(--muted);font-weight:400}.pet-locked-need{color:var(--muted);grid-column:1/-1}.pet-locked li .pet-requirement-figure{grid-area:1/2}.pet-locked li .meter-bar{grid-column:1/-1}.pet-art{--pet-iris:light-dark(#6b4a2b,#6b4a2b)}.pet-art.is-owl,.pet-art.is-penguin{--pet-iris:light-dark(#c27a1a,#c27a1a)}.pet-art.is-fox,.pet-art.is-tiger{--pet-iris:light-dark(#3e7a3a,#3e7a3a)}.pet-art.is-bunny,.pet-art.is-unicorn{--pet-iris:light-dark(#7a4fb0,#7a4fb0)}.pet-art.is-dragon{--pet-iris:light-dark(#b8361b,#b8361b)}.pet-art.is-panda{--pet-iris:light-dark(#3a3a3e,#5a5a60)}.pet-art.stage-5:not(.is-panda){--pet-iris:light-dark(#c9952a,#e0ac3a)}.pet-art .pet-iris{fill:var(--pet-iris)}.pet-art:is(.stage-3,.stage-4) :is(.pet-fur,.pet-light,.pet-dark){stroke:light-dark(#2b232047,#fff6);stroke-width:1.3px}.pet-art.stage-5 :is(.pet-fur,.pet-dark){stroke:light-dark(#e0ac3a,#f7c948);stroke-width:1.5px}.pet-art .pet-cape{fill:light-dark(#7a2e4a,#9a3a5c);stroke:var(--pet-outline);stroke-width:1px}.pet-art .pet-cape.is-gold{fill:light-dark(#e0ac3a,#e0ac3a)}.pet-art .pet-curl{fill:none;stroke:var(--pet-dark);stroke-width:2.6px;stroke-linecap:round}.pet-art .pet-fluff{stroke-width:.8px}.pet-art .pet-line.is-brow{stroke-width:2.2px}.pet-art.is-panda .pet-line.is-brow{stroke:light-dark(#2b2b2e,#2b2b2e)}.companion{bottom:20px;left:var(--companion-left);z-index:28;width:var(--companion-size);height:var(--companion-size);pointer-events:none;transition:left 1.6s cubic-bezier(.45,.05,.4,1),bottom .7s cubic-bezier(.3,1.4,.5,1);position:fixed}.companion-body{transform-origin:50% 100%;display:block}.companion-mark{font-size:var(--fs-small);color:var(--muted);font-weight:700;line-height:1;position:absolute;top:-6px;right:-14px}.companion-mark:after,.companion-mark:before{display:inline-block}.companion.is-sleeping .companion-mark:before{content:"z";animation:companion-z 2.4s ease-in infinite}.companion.is-sleeping .companion-mark:after{content:"z";font-size:.8em;animation:companion-z 2.4s ease-in 1.2s infinite}.companion.is-tired .companion-mark:before{content:"z";opacity:.7;animation:companion-z 3.6s ease-in infinite}.companion.is-sleeping .companion-body{animation:companion-doze 3.2s ease-in-out infinite}.companion.is-tired .companion-body{animation:companion-yawn 3.6s ease-in-out infinite}.companion.is-waking .companion-body{animation:companion-stretch 1.2s ease-in-out}.companion.is-running .companion-body{animation:companion-trot .32s ease-in-out infinite}.companion.is-wandering .companion-body{animation:companion-wander 2.4s ease-in-out,companion-trot .36s ease-in-out infinite}.companion.is-listening .companion-body{transform:rotate(-6deg)}.companion.is-listening .companion-mark{border-right:2.5px solid var(--accent);border-top:2.5px solid #0000;border-bottom:2.5px solid #0000;border-left:0;border-radius:0 50% 50% 0;width:14px;height:22px;animation:companion-pulse 1s ease-in-out infinite;top:14px;right:-18px}.companion.is-thinking .companion-mark{border-radius:var(--pill);background:var(--panel);box-shadow:0 0 0 1px var(--edge);color:var(--accent);padding:4px 8px;top:-16px;right:-22px}.companion.is-thinking .companion-mark:before{content:"•••";letter-spacing:2px;animation:companion-pulse 1.2s ease-in-out infinite}.companion.is-celebrating .companion-mark{color:light-dark(#c9952a,#f2c14e);font-size:18px;top:-14px;right:-16px}.companion.is-celebrating .companion-mark:before{content:"✦";animation:companion-spark .9s ease-out 3}.companion.is-celebrating .companion-mark:after{content:"✧";margin-left:2px;font-size:.7em;animation:companion-spark .9s ease-out .3s 3}@keyframes companion-z{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}to{opacity:0;transform:translate(6px,-14px)}}@keyframes companion-doze{0%,to{transform:scale(1)}50%{transform:scale(1.03,.95)}}@keyframes companion-yawn{0%,to{transform:scale(1)}40%{transform:scale(.98,1.04)}60%{transform:scale(1.02,.96)}}@keyframes companion-stretch{0%{transform:scale(1)}35%{transform:scale(1.12,.84)}65%{transform:scale(.92,1.12)}to{transform:scale(1)}}@keyframes companion-trot{0%,to{transform:translateY(0)rotate(3deg)}50%{transform:translateY(-6px)rotate(-3deg)}}@keyframes companion-wander{0%,to{translate:0}50%{translate:-36px}}@keyframes companion-pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes companion-spark{0%{opacity:0;transform:scale(.4)translateY(4px)}40%{opacity:1;transform:scale(1.15)}to{opacity:0;transform:scale(.9)translateY(-10px)}}.companion.motion-off,.companion.motion-reduced{transition:none}.companion.motion-reduced .companion-body{animation:none}.companion.motion-off,.companion.motion-off *,.companion.motion-off :after,.companion.motion-off :before{animation:none!important}@media (prefers-reduced-motion:reduce){.companion{transition:none}.companion .companion-body{animation:none}}@media (min-width:901px){html[data-companion="1"] #main{padding-bottom:calc(var(--companion-size,72px) + 32px)}}.companion.is-perched{left:16px;bottom:var(--companion-bottom);z-index:30;transition:none}.companion.is-perched .companion-mark{font-size:var(--fs-caption);top:-10px;right:-12px}.companion.is-perched.is-listening .companion-mark{width:10px;height:16px;top:8px;right:-14px}.companion.is-perched.is-thinking .companion-mark{padding:2px 6px;top:-14px;right:-30px}.companion.is-perched.is-celebrating .companion-mark{font-size:14px;top:-12px;right:-14px}.companion.is-perched.is-wandering .companion-body{animation:none}@media (min-width:360px) and (max-width:900px){html[data-companion-seat="1"] .lesson-frame .lesson-dock{padding-left:68px}}.pet-world{pointer-events:none}.pet-world .world-back{z-index:-1;position:fixed;inset:0;overflow:hidden}.world-backdrop{-webkit-mask-image:linear-gradient(light-dark(#000,#f8f8f8) 45%,#0000),linear-gradient(90deg,#0000004d 0 60%,light-dark(#000,#f8f8f8) 80%);width:100%;height:56vh;position:absolute;top:0;left:0;mask-image:linear-gradient(light-dark(#000,#f8f8f8) 45%,#0000),linear-gradient(90deg,#0000004d 0 60%,light-dark(#000,#f8f8f8) 80%);-webkit-mask-composite:source-in;mask-composite:intersect}.world-front{left:var(--world-left);z-index:26;height:150px;position:fixed;bottom:0;right:0}.world-ground{width:100%;height:46px;position:absolute;bottom:0;left:0;right:0}.world-corner{width:170px;height:132px;position:absolute;bottom:30px}.world-corner.is-left{left:6px}.world-corner.is-right{right:6px}.world-prop{transform-box:fill-box;transform-origin:50% 100%;animation:world-sway 5s ease-in-out infinite}.world-corner.is-right .world-prop{animation-delay:-2.2s}.habitat-room{--w-far:light-dark(#f3e6d6,#2a231e);--w-frame:light-dark(#c9a27a,#6b5444);--w-sky:light-dark(#cfe6f5,#1e2a44);--w-curtain:light-dark(#e8a7a0,#7a4a48);--w-a:light-dark(#d9a86c,#8a6a45);--w-a2:light-dark(#c99155,#735638);--w-tape:light-dark(#f1d9a8,#9c8460);--w-b:light-dark(#e58ba5,#a35672);--w-c:light-dark(#d97d4e,#95553a);--w-d:light-dark(#6fae6a,#4e8a4c);--w-line:light-dark(#b4566f,#e3a2b6);--w-ground:light-dark(#c8a27c,#4a3a2e);--w-rug:light-dark(#e9c9a7,#5a4636);--w-particle:light-dark(#e7be6e,#e8c27a);--w-confetti:light-dark(#e58ba5,#e58ba5)}.habitat-snow{--w-far:light-dark(#bfd4e6,#26303b);--w-snowcap:light-dark(#fff,#c9d6e2);--w-near:light-dark(#d8e5f0,#323d49);--w-snow:light-dark(#fff,#dce6ef);--w-snow2:light-dark(#f7fafc,#e6edf3);--w-trunk:light-dark(#8b6b4e,#5e4734);--w-d:light-dark(#3f7f6a,#2f5e50);--w-coal:light-dark(#333,#111);--w-carrot:light-dark(#f08a3c,#d27030);--w-b:light-dark(#d9534f,#a63b38);--w-ground:light-dark(#e2ecf4,#3a4652);--w-particle:light-dark(#9dbcd6,#e6eef6);--w-confetti:light-dark(#7db7e8,#9ccbf2)}.habitat-forest{--w-far:light-dark(#d6e8cf,#1f2e22);--w-far2:light-dark(#a9cda4,#2a4430);--w-near:light-dark(#7fae7b,#355a3a);--w-d:light-dark(#4e8f55,#3f7a47);--w-stem:light-dark(#f2e6d3,#cdbfaa);--w-cap:light-dark(#d9534f,#b04440);--w-dot:light-dark(#fff,#eee);--w-trunk:light-dark(#8b6b4e,#5e4734);--w-ring:light-dark(#c9a27a,#8c7055);--w-ground:light-dark(#6e9e6b,#2e4a32);--w-particle:light-dark(#d9883e,#c97a35);--w-firefly:light-dark(#e8c93a,#f3d35c);--w-confetti:light-dark(#d9883e,#e0a050)}.habitat-bamboo{--w-far:light-dark(#e0edd6,#1e2b20);--w-far2:light-dark(#bfd9af,#2b4130);--w-near:light-dark(#9cc488,#3b5e3e);--w-d:light-dark(#7db36a,#5c9150);--w-node:light-dark(#5c8f4f,#3f6a3a);--w-leaf:light-dark(#6fa85e,#4f8746);--w-ground:light-dark(#cfe3bf,#2e4232);--w-particle:light-dark(#8bc27a,#6fa35f);--w-confetti:light-dark(#8bc27a,#9cd08a)}.habitat-meadow{--w-far:light-dark(#d4eec8,#1f3324);--w-near:light-dark(#b2de9b,#2f4d33);--w-cloud:light-dark(#fff,#3a4658);--w-d:light-dark(#6bb85a,#4e9a45);--w-stemline:light-dark(#4e9a45,#4e9a45);--w-petal:light-dark(#f28db2,#c76a8c);--w-petal2:light-dark(#f7d35c,#d6b23e);--w-heart:light-dark(#f7d35c,#f0c44a);--w-ground:light-dark(#8fcf73,#355a38);--w-particle:light-dark(#f59bbe,#d07a9a);--w-butterfly:light-dark(#8ec5f2,#8ec5f2);--w-confetti:light-dark(#f28db2,#f28db2)}.habitat-volcano{--w-far:light-dark(#5a4848,#1c1414);--w-near:light-dark(#6a5252,#251a1a);--w-glow:light-dark(#ff8a3d,#ff7a2a);--w-smoke:light-dark(#9a8f8f,#4a4242);--w-rock:light-dark(#5a4a4a,#2e2424);--w-rock2:light-dark(#6e5a5a,#3a2e2e);--w-ground:light-dark(#4a3c3c,#211919);--w-particle:light-dark(#ff9a4a,#ff8a3a);--w-confetti:light-dark(#ff8a3d,#ffb04a)}.pet-world{--w-night:light-dark(#12183875,#0009);--w-night-center:light-dark(#1218381a,#00000029);--w-sweep:light-dark(#ffd678f2,#ffd678d9);--w-moon:light-dark(#fff4cc,#fff1c2);--w-wave:var(--accent);--w-gold:light-dark(#e0a92e,#f2c14e)}.pet-world .w-far{fill:var(--w-far)}.pet-world .w-far2{fill:var(--w-far2)}.pet-world .w-near{fill:var(--w-near)}.pet-world .w-frame{fill:var(--w-frame)}.pet-world .w-sky{fill:var(--w-sky)}.pet-world .w-curtain{fill:var(--w-curtain)}.pet-world .w-a{fill:var(--w-a)}.pet-world .w-a2{fill:var(--w-a2)}.pet-world .w-tape{fill:var(--w-tape)}.pet-world .w-b{fill:var(--w-b)}.pet-world .w-c{fill:var(--w-c)}.pet-world .w-d{fill:var(--w-d)}.pet-world .w-line{fill:none;stroke:var(--w-line);stroke-width:2px;stroke-linecap:round}.pet-world .w-ground{fill:var(--w-ground)}.pet-world .w-rug{fill:var(--w-rug)}.pet-world .w-snowcap{fill:var(--w-snowcap)}.pet-world .w-snow{fill:var(--w-snow)}.pet-world .w-snow2{fill:var(--w-snow2);stroke:light-dark(#b9ccdc,#8ca0b3);stroke-width:1.5px}.pet-world .w-trunk{fill:var(--w-trunk)}.pet-world .w-coal{fill:var(--w-coal)}.pet-world .w-carrot{fill:var(--w-carrot)}.pet-world .w-stem{fill:var(--w-stem)}.pet-world .w-cap{fill:var(--w-cap)}.pet-world .w-dot{fill:var(--w-dot)}.pet-world .w-ring{fill:var(--w-ring)}.pet-world .w-node{fill:none;stroke:var(--w-node);stroke-width:2px}.pet-world .w-leaf{fill:var(--w-leaf)}.pet-world .w-cloud{fill:var(--w-cloud)}.pet-world .w-stemline{fill:none;stroke:var(--w-stemline);stroke-width:3px;stroke-linecap:round}.pet-world .w-petal{fill:var(--w-petal)}.pet-world .w-petal2{fill:var(--w-petal2)}.pet-world .w-heart{fill:var(--w-heart)}.pet-world .w-glow{fill:none;stroke:var(--w-glow);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 4px var(--w-glow))}.pet-world .w-smoke{fill:var(--w-smoke);opacity:.5}.pet-world .w-lava{fill:var(--w-glow);opacity:.8}.pet-world .w-rock{fill:var(--w-rock)}.pet-world .w-rock2{fill:var(--w-rock2)}.world-moon{fill:var(--w-moon)}.world-moon,.world-moon-glow,.world-moon-shade{opacity:0;transition:opacity 1.2s}.world-moon-shade{fill:var(--w-far)}.pet-world:is(.light-night,.light-dusk) .world-moon{opacity:.95}.pet-world:is(.light-night,.light-dusk) .world-moon-glow{opacity:1}.pet-world:is(.light-night,.light-dusk) .world-moon-shade{opacity:.85}.pet-world.stage-5 .world-backdrop{filter:drop-shadow(0 0 18px var(--w-gold))}.world-light{z-index:27;background:radial-gradient(ellipse 125% 95% at 50% 42%,var(--w-night-center) 52%,var(--w-night) 100%);opacity:0;transition:opacity 1.2s;position:fixed;inset:0}.pet-world.light-night .world-light{opacity:1}.pet-world.light-dusk .world-light{opacity:.6}.pet-world.light-focus .world-light{opacity:.3}@property --world-sweep{syntax:"<angle>";inherits:false;initial-value:0deg}.world-sweep{z-index:29;filter:drop-shadow(0 0 10px var(--w-sweep));background:conic-gradient(from var(--world-sweep),transparent 0deg,var(--w-sweep) 36deg,transparent 90deg);padding:9px;animation:world-sweep 1.2s ease-in-out forwards;position:fixed;inset:0;-webkit-mask-image:linear-gradient(light-dark(#000,#f8f8f8) 0 0),linear-gradient(light-dark(#000,#f8f8f8) 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.world-sweep:after{content:"";background:radial-gradient(circle at 50% 100%,#ffdc8c47,#0000 60%);animation:world-dawn 1.2s ease-out forwards;position:fixed;inset:0}.world-particles{position:absolute;inset:0}.world-particle{left:var(--x);width:var(--size);height:var(--size);background:var(--w-particle);opacity:.85;animation:world-fall var(--duration) linear var(--delay) infinite;border-radius:50%;position:absolute;top:-24px}.world-particle.is-leaf{width:calc(var(--size) * 2);border-radius:0 80%;animation-name:world-flutter}.world-particle.is-petal{width:calc(var(--size) * 1.6);border-radius:60% 0;animation-name:world-flutter}.world-particle.is-snow{background:var(--w-particle);box-shadow:0 0 4px var(--w-particle)}.world-particle:is(.is-dust,.is-ember){animation-name:world-rise;top:auto;bottom:-20px}.world-particle.is-ember{box-shadow:0 0 8px 2px var(--w-particle)}.world-particle.is-dust{opacity:.55;width:calc(var(--size) * .6);height:calc(var(--size) * .6)}.world-particle.is-firefly{top:auto;bottom:calc(10vh + var(--size) * 6);background:var(--w-firefly);box-shadow:0 0 10px 3px var(--w-firefly);animation-name:world-glimmer}.world-particle.is-butterfly{top:auto;bottom:calc(12vh + var(--size) * 5);width:calc(var(--size) * 2.4);height:calc(var(--size) * 1.6);background:0 0;animation-name:world-glimmer}.world-particle.is-butterfly:after,.world-particle.is-butterfly:before{content:"";background:var(--w-butterfly);border-radius:60% 60% 40% 40%;width:50%;height:100%;animation:world-flap .35s ease-in-out infinite alternate;position:absolute;top:0}.world-particle.is-butterfly:before{transform-origin:100%;left:0}.world-particle.is-butterfly:after{background:var(--w-particle);transform-origin:0;right:0}.pet-world.is-slow .world-particle{animation-duration:calc(var(--duration) * 3)}.pet-world.light-night .world-particle:not(.is-firefly,.is-ember){opacity:.35}.pet-world:is(.is-cheering,.light-dawn) .world-prop{animation:world-rustle .5s ease-in-out 3}.world-waves{left:var(--from-x);top:var(--from-y);z-index:29;position:fixed}.world-waves span{border-right:3.5px solid var(--w-wave);border-top:3.5px solid var(--w-wave);width:26px;height:26px;filter:drop-shadow(0 0 4px var(--w-wave));opacity:0;border-bottom:3.5px solid #0000;border-left:3.5px solid #0000;border-radius:50%;animation:world-wave 1.2s ease-out infinite;position:absolute;top:-13px;left:-13px}.world-waves span:nth-child(2){animation-delay:.4s}.world-waves span:nth-child(3){animation-delay:.8s}.world-burst{z-index:31;pointer-events:none;position:fixed;inset:0}.world-flash{background:radial-gradient(circle at 50% 40%,#ffe29673,#0000 65%);animation:world-flash .9s ease-out forwards;position:fixed;inset:0}.world-confetti span{left:var(--x);background:var(--w-confetti);width:9px;height:14px;animation:world-confetti var(--fall) ease-in var(--delay) forwards;border-radius:2px;position:fixed;top:-20px}.world-confetti span:nth-child(3n){background:var(--w-gold);border-radius:50%;width:8px;height:8px}.world-confetti span:nth-child(4n){background:var(--accent)}.world-banner{background:var(--panel);box-shadow:0 0 0 1px var(--edge),0 18px 48px #0000002e;border-radius:24px;justify-items:center;gap:6px;margin:0;padding:18px 34px 16px;animation:world-banner 2.6s ease-out forwards;display:grid;position:fixed;top:30vh;left:50%;transform:translate(-50%)}.world-banner strong{color:var(--w-gold);letter-spacing:.01em;font-size:40px;font-weight:800;line-height:1.1}.world-banner span{border-radius:var(--pill);background:var(--accent-soft);font-size:var(--fs-h3);color:var(--accent);font-variant-numeric:tabular-nums;padding:4px 16px;font-weight:800}.world-reward{left:var(--pet-x,50%);z-index:30;justify-items:center;gap:6px;display:grid;position:fixed;bottom:104px;transform:translate(-50%)}.world-reward-exp{border-radius:var(--pill);background:var(--w-gold);color:light-dark(#3a2a00,#1a1200);font-size:var(--fs-small);padding:3px 10px;font-weight:800;animation:world-reward 1.8s ease-out forwards}.world-level{border-radius:var(--pill);background:light-dark(#0000001f,#ffffff29);width:72px;height:6px;animation:world-level-show 2.4s forwards;display:block;overflow:hidden}.world-level span{border-radius:inherit;background:var(--w-gold);height:100%;animation:world-level-fill 1.2s ease-out .5s both;display:block}@keyframes world-level-fill{0%{width:var(--from)}to{width:var(--to)}}@keyframes world-level-show{0%,85%{opacity:1}to{opacity:0}}.companion.is-on-ui{bottom:var(--companion-bottom);z-index:30;transition:left .6s ease-out,bottom .7s cubic-bezier(.3,1.6,.5,1)}.companion.is-looping{offset-path:var(--loop);offset-rotate:auto;offset-anchor:50% 50%;transition:none;animation:companion-loop 2.4s cubic-bezier(.4,.05,.3,1) forwards;top:0;bottom:auto;left:0}.companion.is-looping .companion-body{animation:companion-trot .3s ease-in-out infinite}@keyframes companion-loop{0%{offset-distance:0}to{offset-distance:100%}}@keyframes world-sway{0%,to{transform:rotate(0)}50%{transform:rotate(1.2deg)}}@keyframes world-rustle{0%,to{transform:rotate(0)}30%{transform:rotate(3deg)}70%{transform:rotate(-2.5deg)}}@keyframes world-sweep{0%{--world-sweep:0deg;opacity:1}85%{opacity:1}to{--world-sweep:360deg;opacity:0}}@keyframes world-dawn{0%{opacity:0}35%{opacity:1}to{opacity:0}}@keyframes world-fall{0%{transform:translate(0)rotate(0)}to{transform:translate(6vw,110vh)rotate(260deg)}}@keyframes world-flutter{0%{transform:translate(0)rotate(0)}25%{transform:translate(3vw,28vh)rotate(90deg)}50%{transform:translate(-2vw,55vh)rotate(200deg)}75%{transform:translate(4vw,82vh)rotate(290deg)}to{transform:translate(1vw,112vh)rotate(380deg)}}@keyframes world-rise{0%{opacity:0;transform:translate(0)}15%{opacity:.9}to{opacity:0;transform:translate(-3vw,-70vh)}}@keyframes world-glimmer{0%,to{opacity:.2;transform:translate(0)}25%{opacity:1;transform:translate(2vw,-3vh)}50%{opacity:.5;transform:translate(4vw,1vh)}75%{opacity:1;transform:translate(1vw,4vh)}}@keyframes world-flap{0%{transform:scaleX(1)}to{transform:scaleX(.25)}}@keyframes world-wave{0%{opacity:0;transform:translate(0)scale(.6)}20%{opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(1.5);opacity:0}}@keyframes world-flash{0%{opacity:0}25%{opacity:1}to{opacity:0}}@keyframes world-confetti{0%{transform:translateY(0)rotate(0)}to{transform:translateY(112vh) rotate(calc(var(--spin) + 2turn))}}@keyframes world-banner{0%{opacity:0;transform:translate(-50%)scale(.6)}14%{opacity:1;transform:translate(-50%)scale(1.08)}22%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%)translateY(-12px)}}@keyframes world-reward{0%{opacity:0;transform:translateY(0)scale(.7)}20%{opacity:1;transform:translateY(-14px)scale(1.1)}to{opacity:0;transform:translateY(-60px)scale(.9)}}.pet-world.motion-reduced .world-banner,.pet-world.motion-reduced .world-prop{animation:none}.pet-world.is-paused *,.pet-world.is-paused :after,.pet-world.is-paused :before,.pet-world.motion-off *,.pet-world.motion-off :after,.pet-world.motion-off :before{animation-play-state:paused!important}.pet-world.motion-off .world-light,.pet-world.motion-off .world-moon{transition:none}@media (prefers-reduced-motion:reduce){.pet-world *{animation:none!important}.world-light{transition:none}}.world-depth{transform:translate(calc(var(--px,0) * -10px),calc(var(--py,0) * -6px));transition:transform .6s ease-out;position:absolute;inset:0}.pet-world .world-drift{animation:world-drift 38s linear infinite}.pet-world .world-smoke{transform-box:fill-box;transform-origin:50% 100%;animation:world-smoke 6s ease-in-out infinite}.pet-world .world-sway-far{transform-box:fill-box;transform-origin:50% 100%;animation:world-sway 7s ease-in-out infinite}.pet-world .world-curtain{transform-box:fill-box;transform-origin:50% 0;animation:world-sway 6s ease-in-out infinite}.world-rays{z-index:27;-webkit-mask-image:radial-gradient(circle at 100% 0,light-dark(#000,#f8f8f8) 0,#0000 70%);background:repeating-conic-gradient(from 200deg at 100% 0,#ffde9638 0deg 4deg,#0000 4deg 13deg);animation:world-rays 1.4s ease-out forwards;mask-image:radial-gradient(circle at 100% 0,light-dark(#000,#f8f8f8) 0,#0000 70%)}.world-frost,.world-rays{pointer-events:none;position:fixed;inset:0}.world-frost{z-index:26;background:radial-gradient(circle at 0 100%,light-dark(#ffffffbf,#bed7f02e) 0,#0000 22%),radial-gradient(circle at 100% 100%,light-dark(#ffffffbf,#bed7f02e) 0,#0000 22%),radial-gradient(circle at 100% 0,light-dark(#ffffff8c,#bed7f01f) 0,#0000 16%)}.world-season{inset:var(--topbar,64px) 0 0 0;position:absolute}.world-branch{width:min(360px,40vw);height:auto;position:absolute;top:0;right:0}.world-lanterns{width:min(420px,46vw);height:auto;position:absolute;top:-4px;right:2vw}.world-lantern{transform-box:fill-box;transform-origin:50% 0;animation:world-swing 4s ease-in-out infinite}.world-lights{width:100%;height:70px;position:absolute;top:0;left:0}.world-bulb{animation:world-twinkle 1.8s ease-in-out infinite}.world-bulb.is-0{fill:light-dark(#e2453c,#ff6b5e)}.world-bulb.is-1{fill:light-dark(#f2b705,#ffd54a)}.world-bulb.is-2{fill:light-dark(#2e9e5b,#5cd18a)}.world-bulb.is-3{fill:light-dark(#2f7bd9,#6ea8ff)}.world-sun{background:radial-gradient(circle,light-dark(#ffe08a,#ffd36b) 0 32%,light-dark(#ffe08a59,#ffd36b40) 33%,#0000 70%);width:120px;height:120px;top:2vh;right:6vw}.world-sun,.world-sun span{border-radius:50%;position:absolute}.world-sun span{background:repeating-conic-gradient(light-dark(#ffd66e4d,#ffd36b2e) 0 6deg,transparent 6deg 20deg);-webkit-mask-image:radial-gradient(circle,#0000 30%,light-dark(#000,#f8f8f8) 36%,#0000 70%);animation:world-turn 40s linear infinite;inset:-60px;mask-image:radial-gradient(circle,#0000 30%,light-dark(#000,#f8f8f8) 36%,#0000 70%)}.world-full-moon{background:radial-gradient(circle at 40% 40%,light-dark(#fff3c4,#ffe9a8),light-dark(#f5c95c,#e9b84a));border-radius:50%;width:96px;height:96px;position:absolute;top:3vh;right:8vw;box-shadow:0 0 60px 20px light-dark(#f5c95c59,#e9b84a4d)}.pet-world .w-branch{fill:none;stroke:light-dark(#7a5a44,#9c7a60);stroke-width:5px;stroke-linecap:round}.pet-world .w-apricot{fill:light-dark(#f5c12e,#f2c14e)}.pet-world .w-cherry{fill:light-dark(#f6a9c4,#e88aae)}.pet-world .w-pistil{fill:light-dark(#e07a2e,#f0a050)}.pet-world .w-maple{fill:light-dark(#e2622a,#f07a3a)}.pet-world .w-maple2{fill:light-dark(#f0a22a,#f5b44a)}.pet-world .w-string{stroke:light-dark(#9c7a60,#8a6e58);stroke-width:1.5px}.pet-world .w-gold{fill:light-dark(#e0a92e,#f2c14e)}.pet-world .w-lantern{fill:light-dark(#d9362b,#e5483c)}.pet-world .w-lantern-rib{fill:none;stroke:light-dark(#a52219,#b8342a);stroke-width:1.5px}.pet-world .w-tassel{stroke:light-dark(#e0a92e,#f2c14e);stroke-width:2px}.pet-world .w-star-lantern{fill:light-dark(#e5483c,#ff6b5e)}.pet-world .w-star-lantern2{fill:light-dark(#f2b705,#ffd54a)}.pet-world .w-wire{fill:none;stroke:light-dark(#3e4a3e,#8a978a);stroke-width:1.5px}.world-particle.is-envelope{width:calc(var(--size) * 1.6);height:calc(var(--size) * 2.2);background:light-dark(#d9362b,#e5483c);border-radius:2px;animation-name:world-flutter;box-shadow:inset 0 3px light-dark(#f2c14e,#f2c14e)}.world-particle.is-blossom{width:calc(var(--size) * 1.5);background:light-dark(#f6a9c4,#e88aae);border-radius:60% 0;animation-name:world-flutter}.season-tet .world-particle.is-blossom,.world-particle.is-blossom.is-apricot{background:light-dark(#f5c12e,#f2c14e)}.world-particle.is-maple{width:calc(var(--size) * 2.4);height:calc(var(--size) * 2.4);clip-path:polygon(50% 0,62% 30%,95% 22%,75% 50%,100% 65%,62% 66%,58% 100%,50% 78%,42% 100%,38% 66%,0 65%,25% 50%,5% 22%,38% 30%);background:light-dark(#e2622a,#f07a3a);border-radius:0;animation-name:world-flutter}.world-particle.is-mote{opacity:.7;background:light-dark(#f5c12e,#ffd36b);animation-name:world-rise;top:auto;bottom:-10px;box-shadow:0 0 6px light-dark(#f5c12e,#ffd36b)}.world-particle.is-glowlight{width:calc(var(--size) * 2);height:calc(var(--size) * 2);background:radial-gradient(circle,light-dark(#ffe08a,#ffd36b),#0000 70%);animation-name:world-rise;top:auto;bottom:-20px}.companion:before{content:"";z-index:-1;background:light-dark(#00000024,#0006);border-radius:50%;height:7px;position:absolute;bottom:-3px;left:18%;right:18%}.companion:is(.is-running,.is-looping,.is-wandering):after{content:"";background:light-dark(#8c786459,#c8beaa40);border-radius:50%;width:16px;height:10px;animation:world-dust .5s ease-out infinite;position:absolute;bottom:0;left:-6px}.companion.is-celebrating .companion-body{animation:companion-bounce .45s ease-out 4}.companion.is-on-ui .companion-body{animation:companion-land .5s ease-out}.world-paws{z-index:27;height:24px;position:fixed;bottom:12px;left:0;right:0}.world-paw{left:var(--x);fill:light-dark(#5a463266,#e6dcc859);opacity:0;width:18px;height:18px;transform:rotate(var(--tilt));animation:world-paw 2.2s ease-out var(--delay) forwards;position:absolute;bottom:0}@keyframes world-drift{0%{transform:translate(-6vw)}to{transform:translate(12vw)}}@keyframes world-smoke{0%,to{opacity:.5;transform:translateY(0)scale(1)}50%{opacity:.25;transform:translateY(-10px)scale(1.12)}}@keyframes world-rays{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes world-swing{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes world-twinkle{0%,to{opacity:1}50%{opacity:.35}}@keyframes world-turn{to{transform:rotate(1turn)}}@keyframes world-dust{0%{opacity:.8;transform:translate(0)scale(.4)}to{opacity:0;transform:translate(-14px,-6px)scale(1.4)}}@keyframes companion-bounce{0%,to{transform:translateY(0)scale(1)}20%{transform:translateY(0)scale(1.12,.86)}50%{transform:translateY(-14px)scale(.94,1.08)}80%{transform:translateY(0)scale(1.08,.92)}}@keyframes companion-land{0%{transform:scale(1)}30%{transform:scale(1.14,.82)}60%{transform:scale(.95,1.06)}to{transform:scale(1)}}@keyframes world-paw{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.companion.is-in-box{bottom:62px}.companion.is-in-box .companion-body{clip-path:inset(0 0 44%)}.companion.is-in-box:before{display:none}.companion.is-dragging{left:var(--world-left,0);--drag-to:calc((100vw - var(--world-left,0px)) / 2 - 36px);transition:none;animation:companion-drag 1.3s cubic-bezier(.3,.6,.4,1) forwards}.companion.is-dragging .companion-body{animation:companion-trot .3s ease-in-out 4}.companion.is-dragging.is-small{--drag-to:calc((100vw - var(--world-left,0px)) / 2 - 22px);bottom:calc(var(--lesson-dock-height,76px) + 10px)}.world-gift{left:var(--world-left,0);z-index:28;width:60px;height:60px;animation:world-gift-drag 2.6s cubic-bezier(.3,.6,.4,1) forwards;position:fixed;bottom:30px}.pet-world.is-compact .world-gift{bottom:calc(var(--lesson-dock-height,76px) + 12px)}.world-gift-box{fill:light-dark(#e2453c,#ff6b5e)}.world-gift-box2{fill:light-dark(#c9362e,#e5483c)}.world-gift-ribbon{fill:var(--w-gold)}.world-gift-lid{transform-box:fill-box;transform-origin:50% 100%;animation:world-gift-lid .6s ease-out 1.35s forwards}.world-gift-glow{fill:var(--w-gold);opacity:0;transform-box:fill-box;transform-origin:50%;animation:world-gift-glow .9s ease-out 1.35s forwards}.companion.is-sneaking{top:calc(var(--topbar,64px) - 26px);z-index:29;transition:none;animation:companion-sneak 2.4s linear forwards;bottom:auto;left:auto;right:-80px}.companion.is-sneaking .companion-body{animation:companion-trot .3s ease-in-out infinite}.companion.is-sneaking:before{display:none}.toast.is-pushed{animation:toast-pushed .45s ease-in forwards}@keyframes companion-drag{0%{transform:translate(-90px)}to{transform:translateX(var(--drag-to))}}@keyframes world-gift-drag{0%{transform:translate(-160px)}50%{transform:translateX(calc((100vw - var(--world-left,0px)) / 2 - 100px))}90%{opacity:1;transform:translateX(calc((100vw - var(--world-left,0px)) / 2 - 100px))}to{opacity:0;transform:translateX(calc((100vw - var(--world-left,0px)) / 2 - 100px))}}@keyframes world-gift-lid{to{opacity:0;transform:translate(-6px,-34px)rotate(-28deg)}}@keyframes world-gift-glow{0%{opacity:0;transform:scale(.2)}40%{opacity:.85}to{opacity:0;transform:scale(2.6)}}@keyframes companion-sneak{0%{transform:translate(0)}to{transform:translate(calc(-100vw - 80px))}}@keyframes toast-pushed{to{opacity:0;transform:translate(120%)rotate(6deg)}}.pet-world.is-compact .world-backdrop{height:42vh}.pet-world.is-compact .world-branch{width:46vw}.pet-world.is-compact .world-lanterns{width:60vw}.pet-world.is-compact .world-banner{padding:12px 22px;top:24vh}.pet-world.is-compact .world-banner strong{font-size:28px}.pet-world.is-compact .world-reward{bottom:calc(var(--lesson-dock-height,76px) + 56px)}.hanzi-line{overflow-wrap:anywhere}.hanzi-line ruby{ruby-position:over;ruby-align:center}.hanzi-line rt{font-family:var(--font-ui);letter-spacing:0;color:var(--muted);padding-bottom:.15em;font-size:max(12px,.42em);font-weight:500;line-height:1.1}.hanzi-line.is-both{line-height:2.2}.hanzi-line .hanzi-word+.hanzi-word{margin-left:.06em}.hanzi-pinyin-only{font-family:var(--font-ui);margin-right:.35em}.hanzi-line.is-pinyin .hanzi-punct{margin-right:.35em}.hanzi-word-button{all:unset;cursor:pointer;border-radius:4px}.hanzi-word-button:hover{background:var(--soft)}.hanzi-word-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hanzi-word-button[aria-expanded=true]{background:var(--accent-soft)}.hanzi-word-card{border:1px solid var(--edge);border-radius:var(--r-md);background:var(--surface-subtle);text-align:left;margin-top:10px;padding:12px 14px}.hanzi-word-card-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.hanzi-word-card-hanzi{color:var(--ink);font-size:24px}.hanzi-word-card-pinyin{font-size:var(--fs-body);color:var(--accent);font-weight:600}.hanzi-word-card-hsk{font-size:var(--fs-caption);color:var(--muted);border:1px solid var(--edge);border-radius:999px;padding:2px 8px}.hanzi-word-card-meaning{color:var(--body);font-size:var(--fs-body);margin-top:6px}.hanzi-word-card-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.hanzi-word-card-actions button{min-height:44px;font-size:var(--fs-small);align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.hanzi-translation{color:var(--muted);font-size:var(--fs-small);margin-top:8px;line-height:1.6}.admin-ok{color:var(--accent);font-size:var(--fs-small)}.admin-issues{flex-wrap:wrap;gap:6px;display:flex}.admin-issue{font-size:var(--fs-caption);color:var(--danger);background:var(--danger-soft);white-space:nowrap;border-radius:999px;padding:2px 8px}.admin-preview-actions{align-items:center;gap:12px;display:flex}.admin-lesson-preview h2{color:var(--ink);font-size:24px;line-height:2.2}.admin-lesson-preview .admin-note{margin-top:4px}.admin-preview-lines{gap:14px;margin:18px 0 0;padding-left:22px;display:grid}.admin-preview-lines .hanzi-line{color:var(--ink);font-size:22px}.admin-subheading{font-size:var(--fs-body);margin:24px 0 10px;font-weight:600}.admin-hanzi{font-size:18px}.pet-clap-paw{stroke:light-dark(#00000026,#ffffff26);stroke-width:1px;transform-box:fill-box;transform-origin:50%}.pet-art.is-clapping .pet-clap-paw.is-left{animation:pet-clap-left .34s ease-in-out infinite}.pet-art.is-clapping .pet-clap-paw.is-right{animation:pet-clap-right .34s ease-in-out infinite}.pet-clap-spark{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;opacity:0;animation:pet-clap-spark .34s ease-out infinite}@keyframes pet-clap-left{0%,to{transform:translate(-3px)rotate(-12deg)}50%{transform:translate(2.5px)rotate(0)}}@keyframes pet-clap-right{0%,to{transform:translate(3px)rotate(12deg)}50%{transform:translate(-2.5px)rotate(0)}}@keyframes pet-clap-spark{0%,40%{opacity:0}55%{opacity:1}to{opacity:0}}.companion-say{background:var(--panel);width:max-content;max-width:220px;color:var(--ink);border:1px solid var(--edge);box-shadow:var(--shadow-raise);font-size:var(--fs-small);text-align:center;white-space:normal;pointer-events:none;border-radius:14px;padding:6px 12px;font-weight:600;line-height:1.35;animation:companion-say 2.8s ease-out both;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.companion-say:after{content:"";border:6px solid #0000;border-top:6px solid var(--panel);margin-left:-6px;position:absolute;top:100%;left:50%}.companion.is-small .companion-say{max-width:160px;font-size:var(--fs-caption)}@keyframes companion-say{0%{opacity:0;transform:translate(-50%,6px)scale(.9)}10%,85%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-4px)}}.companion.motion-off .pet-clap-paw,.companion.motion-off .pet-clap-spark,.companion.motion-reduced .pet-clap-paw,.companion.motion-reduced .pet-clap-spark{animation:none}.companion.motion-off .companion-say,.companion.motion-reduced .companion-say{animation:companion-say-still 2.8s linear both}@keyframes companion-say-still{0%,90%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.pet-art.is-clapping .pet-clap-paw,.pet-clap-spark{animation:none}}.pet-care-hearts{pointer-events:none;color:light-dark(#e0526b,#f07a8f);width:0;height:0;position:absolute;top:18%;left:50%}.pet-care-hearts svg{fill:currentColor;opacity:0;animation:pet-heart-up 1.8s ease-out forwards;position:absolute}.pet-care-hearts svg:first-child{animation-delay:50ms;left:-46px}.pet-care-hearts svg:nth-child(2){animation-delay:.3s;left:-6px}.pet-care-hearts svg:nth-child(3){animation-delay:.55s;left:34px}@keyframes pet-heart-up{0%{opacity:0;transform:translateY(10px)scale(.6)}20%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-60px)scale(1.1)}}@media (prefers-reduced-motion:reduce){.pet-care-hearts svg{opacity:1;animation:none}}.pet-art{--pet-key-light:light-dark(#fff,#f5edff);--pet-shade:light-dark(#452d40,#191626)}.pet-lighting-highlight{stop-color:var(--pet-key-light);stop-opacity:.62}.pet-lighting-clear{stop-color:var(--pet-key-light);stop-opacity:0}.pet-lighting-shade{stop-color:var(--pet-shade);stop-opacity:.38}.pet-rim-light{fill:none;stroke:var(--pet-key-light);stroke-width:1.8px;stroke-linecap:round;opacity:.48}.pet-head-motion{transform-origin:60px 78px;animation:pet-head-curious 7s ease-in-out infinite}.pet-ear-motion{transform-origin:60px 32px;animation:pet-ear-flick 7s ease-in-out infinite}.pet-tail-motion{transform-origin:60px 98px;animation:pet-tail-swish 3.6s ease-in-out infinite}.pet-art:is(.is-penguin,.is-owl,.is-parrot,.is-dragon,.is-phoenix) .pet-tail-motion{transform-origin:60px 76px;animation:pet-wing-lift 3.2s ease-in-out infinite}.pet-art:is(.mood-sleepy,.mood-sad,.mood-missing_owner) :is(.pet-head-motion,.pet-ear-motion,.pet-tail-motion){animation:none}.pet-art.is-hopping .pet-breathe{animation:pet-spring-jump .9s cubic-bezier(.35,0,.25,1) 2}.pet-art.is-hopping .pet-shadow{transform-origin:60px 113px;animation:pet-jump-shadow .9s ease-in-out 2}.pet-art.is-clapping .pet-head-motion{animation:pet-happy-nod .68s ease-in-out infinite}@keyframes pet-head-curious{0%,35%,75%,to{transform:translateY(0)rotate(0)}45%,58%{transform:translateY(-1.2px)rotate(-4deg)}65%{transform:translateY(.5px)rotate(2deg)}}@keyframes pet-ear-flick{0%,38%,55%,to{transform:rotate(0)scaleY(1)}43%{transform:rotate(3deg)scaleY(.92)}48%{transform:rotate(-2deg)scaleY(1.04)}}@keyframes pet-tail-swish{0%,to{transform:rotate(-3deg)}50%{transform:rotate(5deg)}}@keyframes pet-wing-lift{0%,to{transform:scale(1)translateY(0)}50%{transform:scale(1.07,.94)translateY(-1px)}}@keyframes pet-happy-nod{0%,to{transform:rotate(-3deg)translateY(0)}50%{transform:rotate(3deg)translateY(2px)}}@keyframes pet-spring-jump{0%,to{transform:translateY(0)scale(1)}16%{transform:translateY(2px)scale(1.13,.84)}32%{transform:translateY(-11px)scale(.91,1.12)rotate(-5deg)}50%{transform:translateY(-19px)scale(1.02,.98)rotate(4deg)}72%{transform:translateY(0)scale(1.15,.82)}86%{transform:translateY(-3px)scale(.97,1.05)}}@keyframes pet-jump-shadow{0%,to{opacity:.7;transform:scaleX(1)}45%,55%{opacity:.28;transform:scaleX(.58)}72%{opacity:.8;transform:scaleX(1.18)}}.companion:is(.motion-reduced,.motion-off) .pet-art :is(.pet-head-motion,.pet-ear-motion,.pet-tail-motion),.league-row-name .pet-art *{animation:none}@media (prefers-reduced-motion:reduce){.pet-art *{transition:none!important;animation:none!important}}.pet-plush-motion,.pet-plush-turn{transform-box:fill-box;transform-origin:50% 100%}.pet-plush-turn{transform:scaleX(var(--plush-narrow,1)) skewY(calc(var(--plush-turn,0) * -3deg)) rotate(calc(var(--plush-turn,0) * 2.5deg));transition:transform .45s cubic-bezier(.3,1.3,.5,1)}.pet-plush-picture{filter:drop-shadow(0 1.5px 1.5px light-dark(#3a281826,#00000059))}.pet-plush .pet-plush-motion{animation:plush-breathe 3.4s ease-in-out infinite}.pet-plush.is-glad .pet-plush-motion{animation:plush-glad .9s cubic-bezier(.3,1.4,.5,1) infinite}.pet-plush.is-pleading .pet-plush-motion{animation:plush-plead 1.8s ease-in-out infinite}.pet-plush.is-sleepy .pet-plush-motion{animation:plush-doze 4.6s ease-in-out infinite}.pet-plush.is-sleepy .pet-plush-picture{filter:saturate(.75)brightness(.9)drop-shadow(0 1.5px 1.5px light-dark(#3a281826,#00000059))}@keyframes plush-breathe{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-2.5%)scale(.98,1.04)}}@keyframes plush-glad{0%,to{transform:translateY(0)scale(1)}30%{transform:translateY(-7%)scale(.97,1.04)}60%{transform:translateY(0)scale(1.04,.95)}}@keyframes plush-plead{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes plush-doze{0%,to{transform:translateY(2%)rotate(4deg)scaleY(.98)}50%{transform:translateY(2.5%)rotate(5deg)scale(1.01,.96)}}.companion.motion-off .pet-plush-motion,.companion.motion-reduced .pet-plush-motion{animation:none}.companion.motion-off .pet-plush-turn{transition:none}@media (prefers-reduced-motion:reduce){.pet-plush .pet-plush-motion{animation:none}.pet-plush-turn{transition:none}}.pet-collection-count{font-size:var(--fs-small);color:var(--muted);margin-left:6px;font-weight:500}.profile-pet{gap:16px;padding:20px;display:grid}.profile-pet-main{align-items:center;gap:18px;display:flex}.profile-pet-main .pet-art{flex:none}.profile-pet-text{flex:1;gap:6px;min-width:0;display:grid}.profile-pet-name{font-size:var(--fs-h2);color:var(--ink);font-weight:700}.profile-pet-kind{font-size:var(--fs-small);color:var(--muted)}.profile-pet-line{margin:0;font-style:italic}.profile-pet-level,.profile-pet-line{font-size:var(--fs-small);color:var(--body)}.profile-pet-level{gap:4px;display:grid}.profile-pet-level small{color:var(--muted);font-size:var(--fs-caption)}.profile-pet-stats{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;gap:14px;display:flex}.profile-pet-stats span{align-items:center;gap:5px;display:inline-flex}.profile-pet-others{border-top:1px solid var(--soft);flex-wrap:wrap;gap:10px 20px;margin:0;padding:12px 0 0;list-style:none;display:flex}.profile-pet-others li{align-items:center;gap:8px;display:flex}.profile-pet-others span{display:grid}.profile-pet-others small{font-size:var(--fs-caption);color:var(--muted)}.profile-pet-open{justify-self:start;align-items:center;gap:8px;min-height:44px;display:inline-flex}@media (max-width:520px){.profile-pet-main{text-align:center;flex-direction:column}.profile-pet-open,.profile-pet-stats{justify-content:center}.profile-pet-open{justify-self:stretch}}.pet-invite-dialog-art{justify-content:center;gap:4px;margin:6px 0 4px;display:flex}a.profile-pet-main{color:inherit;border-radius:var(--r-md);text-decoration:none}a.profile-pet-main:hover .profile-pet-name{color:var(--accent)}a.profile-pet-main:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.practice-suggest-levels{margin-bottom:12px}.practice-suggest-levels .pill-group{flex-wrap:wrap}.practice-suggest-levels .pill-group button{min-height:44px}@media (min-width:901px){.lesson-dock{z-index:25;border:1px solid var(--edge);border-radius:var(--r-lg);background:var(--panel);padding:10px 12px;position:sticky;bottom:16px}@supports (color:color-mix(in lab,red,red)){.lesson-dock{background:color-mix(in srgb,var(--panel) 92%,transparent)}}.lesson-dock{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 6px 20px light-dark(#2436251a,#0006)}}.library-switches{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:12px;display:flex}.library-switches .bank-language-switch.is-compact,.library-switches .room-tabs{margin:0}.library-room.is-speaking .library-bar{box-sizing:border-box;max-width:760px}@media (min-width:901px){.library-room.is-speaking .library-bar{padding-right:24px}}.pet-choice,.pet-slogan{position:relative}.pet-slogan{background:var(--surface-subtle);border:1px solid var(--edge);max-width:100%;color:var(--ink);font-size:var(--fs-small);text-align:center;border-radius:14px;align-self:center;margin:0 auto 4px;padding:6px 12px;font-weight:700;line-height:1.35;transition:transform .25s cubic-bezier(.3,1.5,.5,1),background .2s}.pet-slogan:after{content:"";border:6px solid #0000;border-top:6px solid var(--edge);margin-left:-6px;position:absolute;top:100%;left:50%}.pet-choice.is-dancing .pet-slogan{background:var(--accent-soft);transform:scale(1.06)translateY(-2px)}.pet-choice-art{transform-origin:50% 100%;display:inline-block}@keyframes pet-dance{0%,to{transform:rotate(0)translateY(0)}20%{transform:rotate(-7deg)translateY(-6%)}40%{transform:rotate(0)translateY(0)}60%{transform:rotate(7deg)translateY(-6%)}80%{transform:rotate(0)translateY(0)}}@media (prefers-reduced-motion:reduce){.companion.is-dancing .companion-body,.pet-choice.is-dancing .pet-choice-art{animation:none}}.practice-set-lessons-inline{margin-top:10px}.practice-set-finished-lessons{max-width:760px;margin-top:28px}.full-reading{text-align:left;gap:10px;margin:18px 0;padding:20px;display:grid}.full-reading-title{font-size:var(--fs-h2);color:var(--ink);font-weight:700}.full-reading-lead{font-size:var(--fs-small);color:var(--muted);margin:0}.full-reading-text{font-family:var(--font-display);color:var(--ink);margin:4px 0 6px;font-size:clamp(18px,1.6vw,22px);line-height:1.6}.pet-choice-art,.pet-home-art{transform-origin:50% 100%;display:inline-block}@keyframes pet-dance-hop{0%,to{transform:translateY(0)scale(1)}15%{transform:translateY(0)scale(1.08,.9)}40%{transform:translateY(-22%)scale(.95,1.06)}65%{transform:translateY(0)scale(1.06,.92)}80%{transform:translateY(-6%)}}.companion.is-dancing[data-dance=hop] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=hop],.pet-home-art.is-dancing[data-dance=hop]{animation:pet-dance-hop .8s ease-in-out infinite}@keyframes pet-dance-wiggle{0%,to{transform:rotate(0)}15%{transform:rotate(-12deg)}30%{transform:rotate(10deg)}45%{transform:rotate(-8deg)}60%{transform:rotate(6deg)}75%{transform:rotate(-3deg)}}.companion.is-dancing[data-dance=wiggle] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=wiggle],.pet-home-art.is-dancing[data-dance=wiggle]{animation:pet-dance-wiggle .9s ease-in-out infinite}@keyframes pet-dance-spin{0%{transform:rotate(0)translateY(0)}35%{transform:rotate(180deg)translateY(-10%)}70%{transform:rotate(1turn)translateY(0)}to{transform:rotate(1turn)}}.companion.is-dancing[data-dance=spin] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=spin],.pet-home-art.is-dancing[data-dance=spin]{animation:pet-dance-spin 1.4s ease-in-out infinite}@keyframes pet-dance-sway{0%,to{transform:rotate(0)translate(0)}25%{transform:rotate(-8deg)translate(-6%)}75%{transform:rotate(8deg)translate(6%)}}.companion.is-dancing[data-dance=sway] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=sway],.pet-home-art.is-dancing[data-dance=sway]{animation:pet-dance-sway 1.4s ease-in-out infinite}@keyframes pet-dance-bounce{0%,to{transform:translateY(0)scale(1)}20%{transform:translateY(-12%)scaleY(1.05)}40%{transform:translateY(0)scale(1.1,.88)}60%{transform:translateY(-8%)}80%{transform:translateY(0)scale(1.05,.95)}}.companion.is-dancing[data-dance=bounce] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=bounce],.pet-home-art.is-dancing[data-dance=bounce]{animation:pet-dance-bounce .9s ease-in-out infinite}@keyframes pet-dance-shimmy{0%,to{transform:translate(0)skew(0deg)}12%{transform:translate(-5%)skew(8deg)}25%{transform:translate(5%)skew(-8deg)}37%{transform:translate(-5%)skew(8deg)}50%{transform:translate(5%)skew(-8deg)}62%{transform:translate(0)skew(0deg)}}.companion.is-dancing[data-dance=shimmy] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=shimmy],.pet-home-art.is-dancing[data-dance=shimmy]{animation:pet-dance-shimmy 1s ease-in-out infinite}@keyframes pet-dance-wave{0%,to{transform:rotate(0)translateY(0)}20%{transform:rotate(-6deg)translateY(-4%)}40%{transform:rotate(6deg)translateY(-8%)}60%{transform:rotate(-6deg)translateY(-4%)}80%{transform:rotate(4deg)translateY(0)}}.companion.is-dancing[data-dance=wave] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=wave],.pet-home-art.is-dancing[data-dance=wave]{animation:pet-dance-wave 1.2s ease-in-out infinite}@keyframes pet-dance-flip{0%{transform:scaleX(1)translateY(0)}25%{transform:scaleX(-1)translateY(-14%)}50%{transform:scaleX(-1)translateY(0)}75%{transform:scaleX(1)translateY(-14%)}to{transform:scaleX(1)translateY(0)}}.companion.is-dancing[data-dance=flip] .companion-body,.pet-choice.is-dancing .pet-choice-art[data-dance=flip],.pet-home-art.is-dancing[data-dance=flip]{animation:pet-dance-flip 1.4s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.companion.is-dancing .companion-body,.pet-choice-art,.pet-home-art{animation:none!important}}.companion.motion-off.is-dancing .companion-body,.companion.motion-reduced.is-dancing .companion-body{animation:none!important}.pet-slot-items{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;display:grid}.pet-item{text-align:center;align-items:center;gap:8px;min-width:0;padding:12px;position:relative}.pet-item>span:last-of-type{line-height:var(--lh-body)}.pet-item>svg{position:absolute;top:10px;right:10px}.pet-item:disabled{opacity:1}.pet-item:hover:not(:disabled){background:var(--surface-subtle);border-color:var(--edge-strong)}.pet-item[aria-pressed=true]:hover{background:var(--soft);border-color:var(--accent)}.pet-outfit-preview{place-items:center;width:100%;height:112px;display:grid;position:relative}.pet-outfit-preview>.pet-art{z-index:1;position:relative}.pet-outfit-preview>.pet-room{bottom:0}.pet-outfit-preview .pet-art *{transition:none!important;animation:none!important}.pet-art .pet-wear{filter:drop-shadow(0 1.5px 1px light-dark(#38251859,#00000080));stroke-linejoin:round}.pet-art .pet-wear-a{stroke:light-dark(#9a302a,#9a302a);stroke-width:.8px}.pet-art .pet-wear-b{stroke:light-dark(#d5c9b6,#d5c9b6);stroke-width:.6px}.pet-art .pet-wear-seam{fill:none;stroke:light-dark(#fff,#fff);stroke-width:.8px;stroke-linecap:round;opacity:.45}@media (max-width:600px){.pet-slot-items{grid-template-columns:repeat(2,minmax(0,1fr))}}.pet-art .pet-wear-a{fill:var(--pet-cloth-fill)}.pet-art .pet-wear-gold{fill:var(--pet-metal-fill)}.pet-cloth-highlight{stop-color:light-dark(#f78370,#f78370)}.pet-cloth-base{stop-color:light-dark(#d9483b,#d9483b)}.pet-cloth-shade{stop-color:light-dark(#a52e2d,#a52e2d)}.pet-metal-highlight{stop-color:light-dark(#fff0a3,#fff0a3)}.pet-metal-base{stop-color:light-dark(#f2b705,#f2b705)}.pet-metal-shade{stop-color:light-dark(#bd7b17,#bd7b17)}.word-practice{gap:16px;min-width:0;margin-bottom:24px;scroll-margin-top:90px;display:grid}.word-practice-word{font-size:var(--fs-h1);overflow-wrap:anywhere}.word-practice-context{background:var(--surface-subtle);border-radius:var(--r-md);overflow-wrap:anywhere;padding:16px}.word-practice .progress-words{flex-wrap:wrap;gap:8px;display:flex}.word-practice .review-actions{flex-wrap:wrap}.word-practice>button{white-space:normal;justify-self:start;max-width:100%}.pet-challenge{gap:20px;margin-top:24px;scroll-margin-top:90px;display:grid}.pet-challenge-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.pet-challenge-heading>div{min-width:0}.pet-challenge-heading .meter{flex:none}.pet-challenge-reward{align-items:center;gap:16px;display:flex}.pet-challenge-reward .pet-art{flex:none}.pet-challenge-days{margin:0;padding:0;list-style:none}.pet-challenge-day{border-top:1px solid var(--edge);align-items:center;gap:12px;padding:14px 0;display:flex}.pet-challenge-day>div{overflow-wrap:anywhere;flex:1;min-width:0}.pet-challenge-day strong{font-size:var(--fs-body)}.pet-challenge-day p{color:var(--muted);font-size:var(--fs-small);margin-top:6px}.pet-challenge-number{border:1px solid var(--edge);border-radius:var(--pill);width:32px;height:32px;color:var(--muted);flex:none;place-items:center;display:grid}.pet-challenge-day.is-complete .pet-challenge-number{color:var(--success);background:var(--surface-subtle)}.pet-challenge-day.is-today .pet-challenge-number{color:var(--accent);border-color:var(--accent)}.pet-challenge-status{font-size:var(--fs-caption);color:var(--muted);flex:none}.pet-challenge-day.is-today .pet-challenge-status{color:var(--accent)}@media (max-width:600px){.pet-challenge-status{white-space:normal;text-align:right;max-width:66px}.pet-challenge-day{gap:10px}}.then-and-now-pickers{grid-template-columns:1fr 1fr;gap:16px;display:grid}.then-and-now-reference,.then-and-now-result{color:var(--body);overflow-wrap:anywhere}.then-and-now-result{line-height:var(--lh-body);margin-top:8px}.then-and-now-result p+p{margin-top:6px}.then-and-now-take-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.then-and-now-difference{color:var(--body);font-size:var(--fs-body)}.then-and-now-field .select{width:100%;min-width:0}@media (max-width:600px){.then-and-now-pickers{grid-template-columns:1fr}.then-and-now-take-actions button{min-height:44px}}.pet-fitting{border-bottom:1px solid var(--edge);grid-template-columns:minmax(0,280px) minmax(0,1fr);align-items:center;gap:24px;margin-bottom:16px;padding-bottom:24px;display:grid}.pet-fitting-art{background:var(--surface-subtle);border-radius:var(--radius);place-items:center;min-height:260px;display:grid;position:relative}.pet-fitting-art>.pet-art{z-index:1;max-width:100%;height:auto;position:relative}.pet-fitting-art>.pet-room{bottom:12px}.pet-fitting-copy{gap:12px;min-width:0;display:grid}.pet-fitting-copy p{color:var(--muted);line-height:var(--lh-body)}.pet-fitting-actions{flex-wrap:wrap;gap:12px;display:flex}.pet-fitting-actions button{min-height:var(--control-touch)}@media (max-width:600px){.pet-fitting{grid-template-columns:1fr;gap:16px}.pet-fitting-art{min-height:240px}.pet-fitting-copy h3{overflow-wrap:anywhere}}.activity{grid-template-columns:minmax(0,1.2fr) minmax(220px,1fr);align-items:start;gap:16px 32px;padding:24px;display:grid}.activity-calendar-wrap{gap:10px;display:grid}.activity .profile-calendar-day[title]{cursor:default}.activity .profile-calendar-day.level-1,.activity .profile-calendar-day.level-2,.activity .profile-calendar-day.level-3,.activity .profile-calendar-day.level-4{cursor:pointer}.profile-calendar-day.is-frozen{background:var(--info-soft);border-color:var(--info)}.profile-calendar-day.is-chosen{outline:2px solid var(--ink);outline-offset:1px}.activity-legend{font-size:var(--fs-caption);color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin:0;display:flex}.activity-legend span{align-items:center;gap:6px;display:inline-flex}.activity-legend i{width:12px;height:12px}.activity-skeleton{border-radius:var(--r-md);height:220px;display:block}.activity-days{grid-template-columns:minmax(200px,.8fr) minmax(0,1.6fr);align-items:start;gap:16px 32px;margin-top:16px;display:grid}.activity-day-list{margin:0;padding:0;list-style:none;display:grid}.activity-day-row{border:0;border-bottom:1px solid var(--edge);width:100%;min-height:44px;color:var(--ink);text-align:left;font-size:var(--fs-small);background:0 0;border-radius:0;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.activity-day-row span{color:var(--muted)}.activity-day-row:hover{background:var(--surface-subtle)}.activity-day-row.is-chosen{background:var(--accent-soft)}.activity-day-row.is-chosen strong{color:var(--accent)}.activity-detail{align-content:start;gap:12px;display:grid}.activity-detail-title{font-size:var(--fs-h3);margin:0}.activity-detail-figures{margin:0}.activity-detail-figures,.activity-room h4{color:var(--muted);font-size:var(--fs-small)}.activity-room h4{text-transform:uppercase;letter-spacing:.04em;margin:0 0 4px;font-weight:700}.activity-room ul{margin:0;padding:0;list-style:none;display:grid}.activity-room li{border-bottom:1px solid var(--edge);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:40px;padding:6px 0;display:grid}.activity-room li:last-child{border-bottom:0}.activity-tick{border:2px solid var(--edge);border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.activity-tick.is-done{border-color:var(--accent-fill);background:var(--accent-fill);color:var(--accent-ink)}.activity-tick svg{stroke:currentColor;fill:none}.activity-lesson{overflow-wrap:anywhere;min-width:0;color:var(--ink);font-size:var(--fs-small)}.activity-lesson-figures{color:var(--muted);font-size:var(--fs-caption);white-space:nowrap}@media (max-width:760px){.activity,.activity-days{grid-template-columns:minmax(0,1fr)}.activity{padding:16px}}.words-languages{margin:0 0 20px}.words-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;margin-bottom:24px;padding:24px;display:flex}.words-figures{gap:40px;margin:0;display:flex}.words-figures div{gap:4px;display:grid}.words-figures dt{font-size:var(--fs-small);color:var(--muted)}.words-figures dd{font-size:var(--fs-display);color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font-weight:800;line-height:1}.words-review-call .page-note{max-width:34ch;margin:0}.words-toolbar{flex-wrap:wrap;justify-content:space-between;gap:12px;margin-bottom:8px}.words-order,.words-toolbar{align-items:center;display:flex}.words-order{font-size:var(--fs-small);color:var(--muted);gap:10px}.words-list{margin:0;padding:0;list-style:none;display:grid}.words-row{border-bottom:1px solid var(--edge);grid-template-columns:32px minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:16px;min-height:64px;padding:8px 0;display:grid}.words-tick{border:2px solid var(--edge);color:#0000;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.words-tick svg{stroke:currentColor;fill:none;stroke-width:2.5px}.words-tick.is-known{background:var(--streak-bright);border-color:var(--streak-bright);color:light-dark(#2a1a04,#2a1a04)}.words-word{gap:2px;min-width:0;display:grid}.words-word strong{font-size:var(--fs-body);color:var(--ink);overflow-wrap:anywhere}.words-review-word small,.words-word small{color:var(--muted);font-size:var(--fs-caption)}.words-meaning{min-width:0;color:var(--muted);font-size:var(--fs-small);overflow-wrap:anywhere}.words-actions{gap:4px;display:flex}.words-actions .icon-button{border-radius:var(--pill);width:44px;height:44px;color:var(--muted)}.words-actions .icon-button:hover:not(:disabled){color:var(--ink);background:var(--surface-subtle)}.words-missed{flex-wrap:wrap;gap:8px;display:flex}.words-missed .filter-chip{min-height:40px}.words-review{gap:16px;max-width:640px;margin:0 auto;padding:28px;display:grid}.words-review-meaning{font-size:var(--fs-h2);color:var(--ink);margin:0;font-weight:700}.words-review-example{color:var(--muted);margin:0}.words-review-word{flex-wrap:wrap;align-items:baseline;gap:12px;margin:0;display:flex}.words-review-word strong{font-size:var(--fs-h1);color:var(--accent)}.words-ratings{flex-wrap:wrap;gap:10px;display:flex}.words-ratings button{flex:120px}@media (max-width:600px){.words-summary{padding:16px}.words-figures{gap:28px}.words-row{grid-template-columns:32px minmax(0,1fr) auto;gap:4px 12px}.words-meaning{grid-area:2/2}.words-actions{grid-area:1/3/span 2}.words-review{padding:18px}.words-languages .pill-group{height:52px;display:flex}.words-languages .pill-group>button,.words-toolbar .pill-group>button{flex:1;min-height:44px}.words-toolbar .pill-group{width:100%;height:52px;display:flex}}.topic-art{--art-light:light-dark(#f4f6f3,#33403a);--art-dark:light-dark(#2f2e41,#d3d6de);background:var(--group);place-items:center;display:grid;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.topic-art{background:color-mix(in srgb,var(--group) 14%,var(--panel))}}.topic-art{color:var(--group)}.topic-art svg{width:100%;height:100%;padding:10% 12% 18%}.topic-art-card{aspect-ratio:16/9;width:100%}.topic-art-hero{width:100%;height:100%;min-height:200px}.topic-card-group{border-top-right-radius:var(--radius);background:var(--panel);padding:4px 12px;position:absolute;bottom:0;left:0}@supports (color:color-mix(in lab,red,red)){.topic-card-group{background:color-mix(in srgb,var(--panel) 88%,transparent)}}.topic-card-group{font-size:var(--fs-small);color:var(--ink);font-weight:600}.library-today{border:1px solid var(--edge-strong);border-radius:var(--r-lg);background:var(--panel);box-shadow:var(--shadow-raise);grid-template-columns:minmax(0,1fr) minmax(0,320px);margin:4px 0 32px;display:grid;overflow:hidden}.library-today-text{align-content:start;gap:8px;padding:24px 28px;display:grid}.library-today-text h2{font-size:var(--fs-h1);font-weight:700;line-height:var(--lh-tight)}.library-today-goal{font-size:var(--fs-body);color:var(--ink);line-height:1.55}.library-today-meta,.library-today-question{font-size:var(--fs-small);color:var(--muted)}.library-today-meta{font-variant-numeric:tabular-nums}.library-today-steps{font-size:var(--fs-small);color:var(--muted);flex-wrap:wrap;gap:6px 18px;margin:6px 0 4px;padding:0;list-style:none;display:flex}.library-today-steps li{align-items:center;gap:6px;display:inline-flex}.library-today-steps li svg{color:var(--accent)}.library-today-actions{flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:8px;display:flex}.library-today-actions .text-button{min-height:var(--control-touch)}.library-today-art{display:block;position:relative}.library-topics .group-chips{margin:12px 0 14px}.topic-cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin:4px 0 0;padding:0;list-style:none;display:grid}.topic-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);width:100%;height:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;grid-template-rows:auto 1fr;padding:0;transition:border-color .15s,box-shadow .15s;display:grid;overflow:hidden}@media (hover:hover){.topic-card:hover{border-color:var(--edge-strong);box-shadow:0 4px 14px light-dark(#2936200f,#00000040)}}.topic-card-art{display:block;position:relative}.topic-card-body{align-content:start;gap:4px;padding:12px 14px 14px;display:grid}.topic-card-body strong{font-size:var(--fs-h3);font-weight:600;line-height:var(--lh-tight)}.topic-card-body small{font-size:var(--fs-small);color:var(--muted)}.topic-card-meta{font-size:var(--fs-caption);color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;display:flex}.topic-card-read{color:var(--success);align-items:center;gap:4px;font-weight:600;display:inline-flex}@media (max-width:720px){.library-today{grid-template-columns:1fr}.library-today-art{order:-1}.topic-art-hero{aspect-ratio:16/8;min-height:0}.library-today-text{padding:18px}.library-today-actions .primary-action{flex:100%;justify-content:center}}@media (max-width:600px){.topic-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.topic-card-body{padding:10px 12px 12px}.library-topics .group-chips{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.library-topics .group-chips .filter-chip{min-height:44px}}.your-word{min-height:var(--control-touch);border:1px solid var(--edge);border-radius:var(--pill);background:var(--soft);align-items:baseline;gap:8px;padding:6px 12px;display:inline-flex}.your-word span{font-size:var(--fs-small);color:var(--muted)}.correct-tick{vertical-align:middle;background:var(--success);color:light-dark(#fff,#0f1f17);border-radius:50%;flex:none;place-items:center;width:26px;height:26px;margin-right:8px;animation:correct-tick-in .28s ease-out;display:inline-grid}.correct-tick svg{stroke-width:3px}@keyframes correct-tick-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.correct-tick{animation:none}}.live-summary,.reading-check-score{flex-wrap:wrap;align-items:center;display:flex}.reading-result-row .correct-tick{width:22px;height:22px;margin:0}.your-words-heard{gap:8px;margin-top:12px;display:grid}.your-words-reviewed{font-size:var(--fs-small);color:var(--muted);margin:0}.your-word.is-heard{border-color:var(--success);align-items:center}.your-word .correct-tick{color:light-dark(#fff,#0f1f17);width:22px;height:22px;font-size:inherit;margin:0}.dialogue-chat .chat-who .correct-tick{width:20px;height:20px;margin-right:6px}.dialogue-said .read-word{padding:0 1px}.dialogue-said .read-word.is-missing{color:var(--muted);text-decoration:line-through}.dialogue-said .read-word.is-different{-webkit-text-decoration:underline wavy var(--warning);text-decoration:underline wavy var(--warning)}.dialogue-answer{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:12px;margin:8px 0 24px;padding:16px;display:grid}.dialogue-answer .prompt-label{margin:0}.dialogue-hints{gap:8px;margin:0;padding:0;list-style:none;display:grid}.dialogue-hints li{border-radius:var(--radius-sm);background:var(--soft);grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:10px 12px;display:grid}.dialogue-hint-text{font-weight:600;line-height:1.5}.dialogue-hint-meaning{font-size:var(--fs-small);color:var(--muted);grid-column:1;line-height:1.5}.dialogue-hints li .icon-button{grid-area:1/2/span 2}.dialogue-end{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:10px;margin:8px 0 24px;padding:20px;display:grid}.dialogue-end h2{align-items:center;margin:0;display:flex}.dialogue-end p{margin:0}.dialogue-hint-choice .page-note{margin:8px 0 0}@media (max-width:599px){.dialogue-hints li .icon-button{width:44px;height:44px}}.listen-page a.topic-card{text-decoration:none}.listen-head{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);grid-template-columns:160px 1fr;align-items:center;gap:20px;margin:8px 0 18px;padding:16px;display:grid}.listen-head-art{border-radius:var(--radius-sm);display:block;overflow:hidden}.listen-head-text h1{margin:4px 0 6px;font-size:clamp(22px,2.4vw,30px)}.listen-head-text p{margin:0 0 6px;line-height:1.6}.listen-speakers{color:var(--muted);font-size:var(--fs-small)}.listen-player{flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 18px;display:flex}.listen-player .primary-action{align-items:center;gap:8px;display:inline-flex}.listen-tabs{flex-wrap:wrap;max-width:100%;display:flex}.listen-tabs button{flex:1 0 auto}.listen-script-tools{justify-content:flex-end;margin:0 0 8px;display:flex}.listen-examples,.listen-gaps ol,.listen-lines,.listen-phrases,.listen-questions{margin:0;padding:0;list-style:none}.listen-line{border-radius:var(--radius-sm);grid-template-columns:auto 1fr;align-items:start;gap:12px;padding:10px 12px;display:grid}.listen-line.is-playing{background:var(--soft)}.listen-line p{margin:0;font-size:17px;line-height:1.6}.listen-line .is-spoken,.listen-speak .is-spoken{background:var(--accent-soft);color:var(--accent);border-radius:4px}.listen-line-who{font-size:var(--fs-caption);color:var(--muted);margin-bottom:2px;font-weight:700;display:block}.listen-line-vi{font-size:var(--fs-small);color:var(--muted);margin:4px 0 0;line-height:1.6}.listen-line-play{border:1px solid var(--edge);background:var(--panel);width:36px;height:36px;color:var(--accent);border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.listen-line-play[aria-pressed=true]{background:var(--accent-fill);color:var(--accent-ink);border-color:#0000}.listen-line-play:disabled{opacity:.4}.listen-quote{border-left:3px solid var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--surface-subtle);grid-template-columns:auto 1fr;align-items:center;gap:10px;margin:8px 0;padding:8px 12px;display:grid}.listen-quote p{margin:0;line-height:1.55}.listen-grammar,.listen-questions,.listen-quiz,.listen-speak,.listen-words{gap:14px;display:grid}.listen-question{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:10px;padding:14px 16px;display:grid}.listen-question-text{gap:2px;margin:0;font-weight:600;line-height:1.5;display:grid}.listen-examples small,.listen-gap small,.listen-question-text small{font-weight:400;font-size:var(--fs-small);color:var(--muted)}.listen-choices{gap:8px;display:grid}.listen-option{border:1px solid var(--edge);border-radius:var(--radius-sm);background:var(--panel);min-height:44px;color:var(--ink);font:inherit;text-align:left;padding:8px 14px}.listen-option[aria-checked=true]{border-color:var(--accent);background:var(--soft)}.listen-option.is-right{border-color:var(--success);background:var(--success-soft)}.listen-option.is-wrong{border-color:var(--danger);background:var(--danger-soft)}.listen-option:disabled{cursor:default;color:var(--ink);opacity:1}.listen-feedback{gap:4px;display:grid}.listen-right,.listen-wrong{align-items:center;margin:0;font-weight:600;display:flex}.listen-right{color:var(--success)}.listen-wrong{color:var(--danger)}.listen-right .correct-tick{width:22px;height:22px}.listen-result{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.listen-result p{align-items:center;margin:0;font-weight:700;display:flex}.listen-phrases{gap:12px;display:grid}.listen-phrase{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:6px;padding:14px 16px;display:grid}.listen-phrase-head{flex-wrap:wrap;align-items:baseline;gap:6px 12px;display:flex}.listen-phrase-head strong{font-size:18px}.listen-phrase-head .text-button{margin-left:auto}.listen-phrase-en{font-size:var(--fs-small);color:var(--muted);margin:0}.listen-examples{gap:6px;display:grid}.listen-examples li{gap:1px;line-height:1.5;display:grid}.listen-gaps{gap:10px;margin-top:8px;display:grid}.listen-gaps ol{gap:12px;display:grid}.listen-gap{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:6px;padding:12px 14px;display:grid}.listen-gap p{margin:0;line-height:1.6}.listen-blank{border-bottom:2px solid var(--accent);min-width:80px;color:var(--accent);margin:0 2px;padding:0 6px;font-weight:700;display:inline-block}.listen-blank.is-right{border-color:var(--success);color:var(--success)}.listen-blank.is-wrong{border-color:var(--danger);color:var(--danger)}.listen-grammar h2{margin:0}.listen-grammar-explain{margin:0;line-height:1.7}.listen-grammar .prompt-label{margin:6px 0 0}.listen-speak-card{gap:8px;display:grid}.listen-speak-text{font-family:var(--font-display);flex-wrap:wrap;align-items:center;margin:0;font-size:clamp(20px,2.2vw,28px);line-height:1.4;display:flex}.listen-speak .reading-track i.is-current{background:var(--accent-soft)}@media (max-width:599px){.listen-head{grid-template-columns:1fr;gap:12px}.listen-tabs{border-radius:var(--radius)}.listen-tabs button{padding:0 12px}.listen-head-art{max-width:140px}.listen-line-play{width:44px;height:44px}.listen-phrase-head .text-button{min-height:44px;margin-left:0}}.challenge-page{max-width:760px}.challenge-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--panel);gap:18px;margin:8px 0 24px;padding:24px;display:grid}.challenge-head{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;display:flex}.challenge-head .section-kicker{letter-spacing:.06em;align-items:center;gap:8px;display:inline-flex}.challenge-title{margin:0;font-size:clamp(20px,2.4vw,26px);line-height:1.35}.challenge-player{border-bottom:1px solid var(--edge);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding-bottom:18px;display:grid}.challenge-play{background:var(--ink);width:48px;height:48px;color:var(--panel);border:0;border-radius:50%;place-items:center;padding:0;display:grid}.challenge-play svg{margin-left:2px}.challenge-play[aria-pressed=true] svg{margin-left:0}.challenge-progress{border-radius:var(--pill);background:var(--edge);height:6px;position:relative;overflow:hidden}.challenge-progress i{border-radius:inherit;background:var(--accent-fill);transition:width .2s linear;position:absolute;inset:0 auto 0 0}.challenge-time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:var(--fs-small)}.challenge-question{gap:12px;display:grid}.challenge-question-text{gap:2px;margin:0;font-size:18px;font-weight:700;line-height:1.45;display:grid}.challenge-question-text small{font-weight:400;font-size:var(--fs-small);color:var(--muted)}.challenge-options{gap:6px;display:grid}.challenge-option{border-radius:var(--radius-sm);min-height:48px;color:var(--ink);font:inherit;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:14px;padding:6px 12px;font-size:17px;display:flex}.challenge-option:hover:not(:disabled){background:var(--surface-subtle)}.challenge-option:disabled{cursor:default;opacity:1;color:var(--ink)}.challenge-radio{border:2px solid var(--edge-strong);background:var(--panel);border-radius:50%;flex:none;width:24px;height:24px}.challenge-option[aria-checked=true] .challenge-radio{border-color:var(--ink);background:radial-gradient(circle,var(--ink) 0 35%,var(--panel) 38%)}.challenge-option.is-right{border-color:var(--success);background:var(--success-soft)}.challenge-option.is-right .challenge-radio{border-color:var(--success);background:radial-gradient(circle,var(--success) 0 35%,var(--panel) 38%)}.challenge-option.is-wrong{border-color:var(--danger);background:var(--danger-soft)}.challenge-option.is-wrong .challenge-radio{border-color:var(--danger);background:radial-gradient(circle,var(--danger) 0 35%,var(--panel) 38%)}.challenge-question .primary-action{justify-self:start}.challenge-result{gap:12px;display:grid}.challenge-verdict{align-items:center;margin:0;font-size:18px;font-weight:700;display:flex}.challenge-verdict.is-right{color:var(--success)}.challenge-verdict.is-wrong{color:var(--danger)}.challenge-streak{color:var(--streak);align-items:center;gap:6px;margin:0;font-weight:700;display:inline-flex}.challenge-lines{gap:8px;margin:0;padding:0;list-style:none;display:grid}.challenge-lines li{border-radius:var(--radius-sm);gap:2px;padding:8px 12px;line-height:1.5;display:grid}.challenge-lines li.is-evidence{border-left:3px solid var(--accent);background:var(--surface-subtle)}.challenge-lines small{color:var(--muted);font-size:var(--fs-small)}.challenge-actions{flex-wrap:wrap;gap:10px;display:flex}.challenge-actions .primary-action,.challenge-actions .secondary-action{align-items:center;gap:8px;text-decoration:none;display:inline-flex}.challenge-days{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}@media (max-width:599px){.challenge-card{padding:18px}.challenge-days .text-button{min-height:44px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}