@font-face{font-family:Comic Neue;src:url(/fonts/ComicNeue-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Comic Neue;src:url(/fonts/ComicNeue-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Nunito;src:url(/fonts/Nunito-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Lora;src:url(/fonts/Lora-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Lora;src:url(/fonts/Lora-Bold.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/fonts/OpenDyslexic-Regular.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/fonts/OpenDyslexic-Bold.woff) format("woff");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:OpenDyslexic;src:url(/fonts/OpenDyslexic-Italic.woff) format("woff");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Courier Prime;src:url(/fonts/CourierPrime-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Courier Prime;src:url(/fonts/CourierPrime-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--pink-50: #fff6df;--pink-100: #ffe5ce;--pink-200: #ffd0ad;--pink-300: #ffb07b;--pink-400: #ff8b38;--pink-500: #ff5e5b;--pink-600: #df4444;--pink-700: #a83a24;--pink-800: #74301f;--pink-900: #4f2618;--purple-50: #f8f5ff;--purple-400: #a78bfa;--purple-500: #8b5cf6;--white: #ffffff;--gray-50: #fafafa;--gray-100: #f5f3f4;--gray-200: #e8e4e6;--gray-400: #b8aab2;--gray-600: #6b5e66;--gray-800: #362d32;--red-400: #f87171;--amber-400: #fbbf24;--emerald-400:#60d394;--sky-400: #60b8d3;--bg: var(--pink-50);--surface: var(--white);--surface-alt: var(--pink-100);--border: var(--pink-200);--border-light: var(--pink-100);--text: var(--pink-900);--text-secondary: var(--gray-600);--text-muted: var(--gray-400);--accent: var(--pink-500);--accent-hover: var(--pink-600);--accent-light: var(--pink-100);--accent-glow: rgba(255, 94, 91, .25);--success: var(--emerald-400);--success-light: #d1fae5;--danger: var(--red-400);--danger-light: #fee2e2;--warning: var(--amber-400);--warning-light: #fef3c7;--radius-sm: 10px;--radius: 16px;--radius-lg: 22px;--radius-full: 999px;--header-h: 72px;--controls-h: 72px;--icon-btn-inset: 13px;--display-font: "Avenir Next Condensed", "Trebuchet MS", "Gill Sans", sans-serif;--body-font: "Avenir Next", "Trebuchet MS", "Segoe UI", sans-serif;--font: var(--body-font);--font-mono: "SF Mono", ui-monospace, monospace;--font-size-base: 16px;--font-scale: 1;--text-2xs: .72rem;--text-xs: .82rem;--text-sm: .92rem;--text-base:1.02rem;--text-md: 1.12rem;--text-lg: 1.45rem;--ink: var(--text);--ink-soft: var(--text-secondary);--paper: var(--bg);--paper-deep: var(--border);--cream: #fff8ea;--orange: var(--pink-400);--coral: var(--accent);--launch-blue: #ff8f7a;--launch-mint: #ffa08c;--launch-violet: #ff8f7a;--toon-line: 3px solid var(--ink);--toon-line-thin: 2px solid var(--ink);--toon-shadow: 6px 6px 0 var(--ink);--toon-shadow-sm: 4px 4px 0 var(--ink);--toon-shadow-lg: 10px 10px 0 var(--ink), 0 22px 56px rgba(68, 43, 20, .18);--shadow-sm: 0 1px 2px rgba(79, 38, 24, .05);--shadow: 0 2px 8px rgba(79, 38, 24, .07);--shadow-lg: 0 4px 16px rgba(79, 38, 24, .1);--ease: cubic-bezier(.34, 1.56, .64, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1)}@media(prefers-color-scheme:dark){:root{--bg: #1f1620;--surface: #2a1f2b;--surface-alt: #332430;--border: #453040;--border-light: #3a2a37;--text: #f0e0ec;--text-secondary: #b8a0b2;--text-muted: #7a6072;--accent: #f261a4;--accent-hover: #f89bc8;--accent-light: #3d1a30;--accent-glow: rgba(242, 97, 164, .25);--cream: #322430;--launch-blue: #8a4568;--launch-mint: #7a3f5c;--launch-violet: #8a4568;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow: 0 2px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .4)}}html.theme-dark{--bg: #1f1620;--surface: #2a1f2b;--surface-alt: #332430;--border: #453040;--border-light: #3a2a37;--text: #f0e0ec;--text-secondary: #b8a0b2;--text-muted: #7a6072;--accent: #f261a4;--accent-hover: #f89bc8;--accent-light: #3d1a30;--accent-glow: rgba(242, 97, 164, .25);--cream: #322430;--launch-blue: #8a4568;--launch-mint: #7a3f5c;--launch-violet: #8a4568;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow: 0 2px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .4);#settingsPanel .settings-tab-btn:not(.active){color:#3d2a40}#settingsPanel .settings-tab-btn:not(.active):hover{color:#1a0f1e}}html.theme-light{--bg: #ffffff;--surface: #ffffff;--surface-alt: #f5f3f4;--border: #e8e4e6;--border-light: #f0edef;--text: #2d1c2a;--text-secondary: #6b5a68;--text-muted: #9a8596;--accent: #e0466e;--accent-hover: #c23a5e;--accent-light: #fce4ea;--accent-glow: rgba(224, 70, 110, .2);--cream: #fff8ea;--launch-blue: #ff8f7a;--launch-mint: #ffa08c;--launch-violet: #ff8f7a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow: 0 2px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .14)}@supports (color: color-mix(in srgb,red,blue)){:root{--cream: color-mix(in srgb, var(--surface) 88%, var(--bg));--launch-blue: color-mix(in srgb, var(--accent) 58%, var(--bg) 42%);--launch-mint: color-mix(in srgb, var(--accent) 48%, var(--bg) 52%);--launch-violet: color-mix(in srgb, var(--accent) 58%, var(--bg) 42%)}@media(prefers-color-scheme:dark){:root{--cream: color-mix(in srgb, var(--surface) 88%, var(--bg));--launch-blue: color-mix(in srgb, var(--accent) 58%, var(--bg) 42%);--launch-mint: color-mix(in srgb, var(--accent) 48%, var(--bg) 52%);--launch-violet: color-mix(in srgb, var(--accent) 58%, var(--bg) 42%)}}html.theme-dark,html.theme-light{--cream: color-mix(in srgb, var(--surface) 88%, var(--bg));--launch-blue: color-mix(in srgb, var(--accent) 58%, var(--bg) 42%);--launch-mint: color-mix(in srgb, var(--accent) 48%, var(--bg) 52%);--launch-violet: color-mix(in srgb, var(--accent) 58%, var(--bg) 42%)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:calc(var(--font-size-base) * var(--font-scale));height:100%;min-width:740px;overflow-x:auto;overscroll-behavior:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}body{height:100%;overscroll-behavior:none}body{font-family:var(--font);font-weight:700;background:var(--bg);color:var(--text);display:flex;flex-direction:column;min-width:740px;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-font-smoothing:antialiased}.ipad-orientation-notice{overflow:hidden;background:radial-gradient(circle at 20% 18%,rgba(255,139,56,.42),transparent 25rem),radial-gradient(circle at 82% 82%,rgba(90,169,255,.32),transparent 24rem),#17130f}.ipad-orientation-illustration{width:clamp(150px,38vw,270px);height:auto;overflow:visible}.ipad-orientation-notice .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.orientation-arrow,.orientation-arrow-head{fill:none;stroke:#71d99e;stroke-width:9;stroke-linecap:round;stroke-linejoin:round}.orientation-device{transform-box:fill-box;transform-origin:center;animation:ipad-rotate-prompt 2.4s ease-in-out infinite}@keyframes ipad-rotate-prompt{0%,18%,to{transform:rotate(0)}52%,72%{transform:rotate(90deg)}}@media(prefers-reduced-motion:reduce){.orientation-device{animation:none;transform:rotate(90deg)}}header{position:relative;height:var(--header-h);min-height:var(--header-h);background:var(--surface);font-family:var(--body-font);border-bottom:1px solid var(--border-light);padding:0 20px;display:flex;align-items:center;gap:0;z-index:2;box-shadow:var(--shadow-sm)}.header-spacer{flex:1;min-width:4px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0}#btnMaterials{font-size:var(--text-xs);display:flex;align-items:center;justify-content:flex-start;padding:4px 12px;white-space:nowrap;max-width:calc(100vw - 16px);max-width:380px;min-width:0;overflow:hidden;text-overflow:ellipsis}#btnMaterialsCtx{white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;min-width:0}#btnMaterials svg{flex-shrink:0}.brand-logo{height:52px;width:auto;flex-shrink:0;transform:translateY(3px);border-radius:14px;filter:drop-shadow(4px 4px 0 var(--ink)) drop-shadow(0 6px 10px rgba(68,43,20,.18))}.brand .logo-mark{font-weight:700;color:var(--text-secondary);font-size:var(--text-xs);background:var(--surface-alt);padding:2px 8px;border-radius:var(--radius-full)}.brand .subtitle{font-size:var(--text-xs);color:var(--text-muted)}.selector-group{display:flex;gap:12px;align-items:center;flex-shrink:0}.mode-pills{display:flex;align-items:center;gap:12px;flex-shrink:0}#btnModeProgrammed{position:relative}.my-menu-wrap{position:relative;flex-shrink:0;width:48px;height:48px;display:flex;align-items:center;justify-content:center}.my-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--radius-full);border:2px solid var(--ink);background:var(--surface);color:var(--ink);font-family:var(--display-font);font-size:var(--text-sm);font-weight:950;cursor:pointer;transition:background .2s,color .2s;flex-shrink:0}.my-btn:hover,.my-btn.guest{background:var(--ink);color:#fff8ea;color:var(--cream)}.my-btn.guest:hover{background:#fff8ea;background:var(--cream);color:var(--ink)}.my-btn-letter{line-height:1}.my-dropdown{display:none;position:fixed;top:54px;right:12px;min-width:180px;max-width:240px;background:var(--surface);border:var(--toon-line);border-radius:var(--radius-md);box-shadow:var(--toon-shadow-lg);z-index:10002;flex-direction:column;padding:6px 0;font-family:var(--body-font);font-weight:700}.my-dropdown.open{display:flex}.my-dropdown-user{padding:8px 16px 6px;font-size:var(--text-sm);font-weight:950;color:var(--ink);border-bottom:1px solid var(--border);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.my-dropdown-item{display:flex;align-items:center;gap:10px;padding:9px 16px;border:none;background:none;color:var(--text-secondary);font-size:var(--text-base);font-weight:700;font-family:inherit;cursor:pointer;text-align:left;transition:background .15s,color .15s}.my-dropdown-item:hover{background:var(--border);color:var(--ink)}.my-dropdown-item svg{flex-shrink:0;opacity:.7}.state-trigger-btn{min-height:48px;padding:0 10px;border-radius:var(--radius-full);justify-content:center}.state-trigger-pills{display:inline-flex;align-items:center;gap:8px}.state-trigger-pill{display:inline-flex;align-items:center;justify-content:center;min-height:48px;height:48px;padding:0 var(--icon-btn-inset);border:1.5px solid var(--border);border-radius:var(--radius-full);background:var(--surface-alt);color:var(--text)}.btn-icon-pill{margin:0;height:48px;min-width:0;padding-left:var(--icon-btn-inset);padding-right:var(--icon-btn-inset);border-radius:var(--radius-full);display:inline-flex;align-items:center;justify-content:center;gap:8px;box-sizing:border-box}.btn-icon-pill svg{width:22px;height:22px}.btn-icon-pill .pill-item{display:inline-flex;align-items:center;gap:6px}.btn-icon-pill .pill-icon svg,.btn-icon-pill .pill-glyph svg{width:22px;height:22px;display:block}.btn-icon-pill .pill-glyph{display:inline-flex;align-items:center;justify-content:center}.btn-icon-pill .pill-text{font-size:var(--text-base);font-weight:700;color:var(--text-secondary)}.btn-icon-pill .pill-text{white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.btn-icon-pill.active{background:linear-gradient(135deg,var(--pink-400),var(--accent));color:#fff;border-color:transparent;box-shadow:0 2px 8px var(--accent-glow)}.btn-icon-pill.active .pill-text,.btn-icon-pill.active .pill-icon{color:#fff}.btn-icon-pill .pill-sep{width:1px;height:16px;background:var(--border);border-radius:1px;margin:0 2px;align-self:center}.pill-flag{margin-left:6px;margin-right:6px;font-size:var(--text-base);line-height:1}.pill-flag svg{width:18px;height:14px;display:inline-block;vertical-align:-2px}.btn.with-label-icon{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;height:48px;border-radius:var(--radius-full)}.btn.with-label-icon svg{width:22px;height:22px}.state-trigger-pill-icon{min-width:36px;padding:0 8px}.state-trigger-pill-icon svg{width:20px;height:20px}.state-trigger-pill-glyph{min-width:36px;padding:0 8px;font-size:var(--text-base);font-weight:700;letter-spacing:-.02em}.voice-popover{font-family:var(--body-font);display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:14px 16px 24px;min-width:420px;max-width:min(640px,calc(100vw - 32px));z-index:10001;flex-direction:column;gap:12px}.voice-popover.open{display:flex}.top-popover-overlay{display:none;position:fixed;inset:0;background:#17130f59;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:10000;pointer-events:auto;cursor:default}.top-popover-overlay.open{display:block}.settings-popover,#settingsPanel{font-family:var(--body-font);position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:540px;max-width:calc(100vw - 32px);height:460px;overflow:hidden;padding:0;z-index:10001;border-top-width:2px;gap:0}.settings-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;overscroll-behavior:none;scrollbar-width:none;gap:0;margin:0;padding:0;background:var(--ink)}.settings-tabs::-webkit-scrollbar{display:none}.settings-tab-btn{flex:0 0 auto;padding:6px 14px 8px;border:var(--toon-line-thin);border-radius:20px 20px 0 0;margin-right:-2px;background:transparent;color:#ffffffd1;font-weight:700;font-size:var(--text-sm);cursor:pointer;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;transition:color .15s,background .15s,box-shadow .15s,transform .15s}.settings-tab-btn:hover{color:var(--white);background:#ffffff1f}@supports (color: color-mix(in srgb,red,blue)){.settings-tab-btn{color:color-mix(in srgb,var(--white) 82%,transparent)}.settings-tab-btn:hover{background:color-mix(in srgb,var(--white) 12%,transparent)}}.settings-tab-btn.active{background:var(--surface);color:var(--text);border-color:var(--ink);border-bottom-color:var(--surface);font-weight:950;box-shadow:3px 0 0 var(--ink)}.settings-tab-btn:first-child{margin-left:-3px}.settings-tab-btn:last-child{position:relative;left:0}.settings-slider-block{display:flex;flex-direction:column;gap:8px}.settings-close-abs{position:absolute;top:8px;right:12px;z-index:1}#settingsPanel>.settings-tabs{flex-shrink:0;padding-top:0}.settings-tab-content{flex:1;display:flex;flex-direction:column;gap:14px;min-height:0;overflow-y:auto;scrollbar-gutter:stable;scrollbar-width:thin;padding:15px 40px 0 20px;margin-top:-1px;background:var(--surface);position:relative;z-index:1;margin-right:-17px;font-weight:950}.settings-tab-content .btn,.settings-tab-content .voice-choice-btn,.settings-tab-content .font-family-options button{font-weight:950}.setting-row:has(.font-family-options){align-items:flex-start}#settingsTab_about{padding-top:2px}.settings-tab-content label{font-family:var(--display-font);font-weight:950;font-size:var(--text-base);letter-spacing:-.02em;margin-top:10px}.settings-tab-content label:first-child{margin-top:0}.settings-tab-content:after{content:"";flex:0 0 24px}.about-content{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 0 8px;text-align:center;font-family:var(--display-font);font-weight:950}.about-logo{display:block;height:64px;filter:drop-shadow(4px 4px 0 var(--ink)) drop-shadow(0 6px 10px rgba(68,43,20,.18))}.about-version{font-size:var(--text-base);font-weight:950;color:var(--accent);letter-spacing:-.02em}.about-syllabus-version{margin:-2px 0 16px;color:var(--text-secondary);font-size:var(--text-xs);font-weight:650;line-height:1.4}.about-legal-version{color:var(--text-muted);font-size:var(--text-2xs);font-weight:700;white-space:nowrap}.about-desc{font-size:var(--text-base);font-weight:950;color:var(--text-secondary);margin:0}.about-tagline{font-size:var(--text-base);font-weight:950;color:var(--text);margin:8px 0;max-width:340px;line-height:1.5}.about-quote{font-family:var(--display-font);font-size:var(--text-lg);font-weight:950;color:var(--accent);line-height:0;vertical-align:-.1em}.about-quote-start{vertical-align:-.25em;position:relative;left:-6px}.about-quote-end{vertical-align:-.25em;position:relative;left:3px}.account-user-label{font-family:var(--display-font);font-size:var(--text-sm);font-weight:950;color:var(--text-muted);letter-spacing:-.02em}.account-login-hint{font-family:var(--display-font);font-size:var(--text-sm);font-weight:950;color:var(--text-muted);margin:12px 0 0;line-height:1.5;letter-spacing:-.02em}.wizard-step-copy{color:var(--text-secondary);font-family:var(--display-font);font-size:var(--text-sm);font-weight:700;margin:-4px 0 2px}.wizard-mode-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:min(100%,520px);margin-top:12px}.wizard-mode-btn{--mode-color: var(--accent);display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;min-height:150px;padding:16px 14px;text-align:left;border:var(--toon-line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--cream) 88%,var(--mode-color) 12%);color:var(--ink);box-shadow:var(--toon-shadow);cursor:pointer;font-family:var(--display-font);transition:transform .15s,box-shadow .15s,background .15s}.wizard-mode-mark{display:grid;place-items:center;width:30px;height:30px;margin-bottom:2px;border:var(--toon-line-thin);border-radius:10px;background:var(--cream);color:var(--mode-color)}.wizard-mode-mark svg{display:block}.wizard-mode-btn[data-mode=guest]{--mode-color: #60d394}.wizard-mode-btn[data-mode=account]{--mode-color: #ff8b38}.wizard-mode-btn.wizard-mode-sel{outline:3px solid var(--mode-color);outline-offset:-3px;background:color-mix(in srgb,var(--cream) 80%,var(--mode-color) 20%)}.wizard-mode-btn:hover,.wizard-mode-btn.wizard-mode-sel:hover,.wizard-mode-btn:focus-visible{transform:translateY(-2px);background:color-mix(in srgb,var(--cream) 78%,var(--mode-color) 22%);box-shadow:8px 8px 0 var(--ink)}.wizard-mode-title{font-size:var(--text-md);font-weight:950}.wizard-mode-kicker{color:color-mix(in srgb,var(--mode-color) 80%,var(--ink) 20%);font-size:var(--text-2xs);font-weight:950;letter-spacing:.08em;text-transform:uppercase}.wizard-mode-pro{color:color-mix(in srgb,var(--mode-color) 78%,var(--ink) 22%);font-size:var(--text-sm);font-weight:800}.wizard-mode-con{color:var(--text-secondary);font-size:var(--text-xs);font-weight:700;line-height:1.35}@media(max-width:560px){.wizard-mode-choices{grid-template-columns:1fr}.wizard-mode-btn{min-height:0}}.login-dialog-overlay{display:none}.login-dialog-overlay.open{display:flex;align-items:center;justify-content:center}.login-dialog{width:min(420px,calc(100vw - 32px));padding:28px;border:var(--toon-line-thin);border-radius:28px;background:var(--surface);box-shadow:var(--toon-shadow-lg)}.login-step{display:none}.login-step.active{display:block;animation:wizardSlide .25s ease-out}.login-step-kicker{display:block;margin-bottom:10px;color:var(--accent);font-size:var(--text-xs);font-weight:950;letter-spacing:.08em;text-transform:uppercase}.login-back{display:block;margin:14px auto 0;padding:6px 16px;border:none;background:transparent;color:var(--text-secondary);font-family:var(--display-font);font-weight:700;font-size:var(--text-sm);cursor:pointer}.login-back:hover{color:var(--ink)}.login-back:hover{color:var(--accent)}.login-otp-to{margin:6px 0 0;color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.login-email-chip{display:inline-flex;max-width:100%;padding:7px 11px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-full);background:var(--accent-light);color:var(--text-secondary);font-size:var(--text-xs);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.login-resend{padding:0;border:0;background:transparent;color:var(--accent);cursor:pointer;font:800 var(--text-xs) var(--display-font)}.login-resend:hover{color:var(--accent-hover);text-decoration:underline}.login-resend:disabled{color:var(--text-muted);cursor:not-allowed;text-decoration:none}.login-field{display:grid;gap:6px;margin-top:14px;text-align:left;color:var(--text-secondary);font-size:var(--text-sm);font-weight:800}.login-field em{color:var(--text-muted);font-style:normal;font-weight:500}.login-privacy-consent{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;margin-top:14px;color:var(--text-secondary);font-size:var(--text-xs);font-weight:650;line-height:1.45;text-align:left}.login-privacy-consent input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--accent)}.login-privacy-consent a{color:var(--accent);font-weight:850}.wizard-legal-check{display:grid;grid-template-columns:auto 1fr;gap:7px;align-items:start;margin-top:12px;color:var(--text-secondary);font-family:var(--display-font);font-size:var(--text-2xs);font-weight:650;line-height:1.4;text-align:left}.wizard-legal-check input{width:18px;height:18px;margin:1px 0 0;accent-color:var(--accent)}.wizard-legal-check a{color:var(--accent);font-weight:850}.wizard-legal-error{margin:8px 0 0;color:var(--red);font-size:var(--text-2xs);font-weight:700;animation:wizardLegalShake .4s ease}@keyframes wizardLegalShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.login-field input{width:100%;box-sizing:border-box;padding:10px 12px;border:var(--toon-line-thin);border-radius:10px;background:var(--surface-alt);color:var(--ink);font:inherit}.login-otp-digits{display:flex;gap:10px;justify-content:center;margin-top:14px}.login-otp-digit{width:52px;height:64px;box-sizing:border-box;padding:0;border:var(--toon-line);border-radius:14px;background:var(--cream);color:var(--ink);font-family:var(--font-mono);font-size:1.8rem;font-weight:950;text-align:center;caret-color:var(--accent)}.login-otp-digit:focus{outline:3px solid var(--accent);outline-offset:-2px;border-color:var(--ink)}.login-error{min-height:18px;margin:10px 0 0;color:var(--danger, #c33);font-size:var(--text-sm)}.login-actions{display:flex;justify-content:space-between;gap:8px;margin-top:14px}.about-credit{font-size:var(--text-sm);font-weight:950;color:var(--text-secondary);margin:16px 0 0}.about-copyright{font-size:var(--text-xs);font-weight:950;color:var(--text-secondary);margin:0;opacity:.7}.about-copyright a{color:var(--accent);text-decoration:none}.about-copyright a:hover{text-decoration:underline}.about-contact{margin:0;color:var(--text-secondary);font-size:var(--text-xs);font-weight:700}.about-contact a{color:var(--accent);text-decoration:none}.about-contact a:hover{text-decoration:underline}.about-attribution{margin:0;color:var(--text-muted);font-size:var(--text-2xs);font-weight:700;opacity:.65;max-width:340px;line-height:1.4}.about-replay-btn{margin-top:16px;justify-content:center;width:70%}.about-replay-btn+.about-replay-btn{margin-top:10px}.settings-slider-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center}.settings-slider-row input[type=range]{width:100%;-webkit-appearance:none;appearance:none;height:8px;border-radius:4px;background:var(--border);box-shadow:2px 2px 0 var(--ink);outline:none;cursor:pointer}.settings-slider-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);border:var(--toon-line-thin);box-shadow:2px 2px 0 var(--ink);cursor:pointer;margin-top:-4px}.settings-slider-value{min-width:48px;text-align:right;font-family:var(--display-font);font-size:var(--text-base);font-weight:950;color:var(--text-secondary)}.settings-separator{border:none;border-top:1px solid var(--border);margin:16px 0 14px}.top-popover-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px}.top-popover-head span{font-size:var(--text-sm);font-weight:700;color:var(--text);display:flex;align-items:center;gap:6px}.top-popover-title-icon{width:18px;height:18px;flex-shrink:0}.top-popover-close{width:28px;height:28px;border:1.5px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .15s var(--ease)}.top-popover-close:hover{border-color:var(--accent);color:var(--accent);background:var(--surface-alt)}.top-popover-close{display:none}.voice-popover label{font-size:var(--text-sm);font-weight:950;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.voice-choice-block{display:flex;flex-direction:column;gap:8px}.voice-choice-group{display:flex;gap:6px;flex-wrap:wrap}.settings-select{width:100%;min-height:42px;padding:0 12px;border:var(--toon-line-thin);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text);font-family:var(--body-font);font-size:var(--text-sm);font-weight:700}.settings-select option{font-family:var(--body-font);font-size:var(--text-sm);font-weight:700}.setting-row-standalone .voice-choice-group{flex-wrap:nowrap}#settingsVoiceChoiceGroup{flex-wrap:wrap}#playbackSpeedChoiceGroup{flex-wrap:nowrap}#playbackSpeedChoiceGroup .voice-choice-btn{flex:1 1 0}.voice-choice-btn{white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.voice-flag{margin-left:6px;margin-right:6px;font-size:var(--text-base);line-height:1}.voice-flag svg{width:18px;height:14px;display:inline-block;vertical-align:-2px}.voice-choice-btn{font-family:var(--body-font);font-size:var(--text-sm);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:1 1 calc(50% - 6px);min-height:34px;padding:7px 10px;min-width:0;width:auto;border:1.5px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text-secondary);cursor:pointer;position:relative;overflow:hidden;transition:border-color .15s,background .15s,color .15s,transform .15s}#btnEndBehavior svg{width:26px;height:26px;display:block}.voice-choice-btn svg{width:18px;height:18px;flex-shrink:0}.voice-choice-btn span{line-height:1}.choice-glyph{display:inline-flex;align-items:center;justify-content:center;width:28px;height:20px;margin-right:6px;color:var(--text-muted)}.choice-glyph svg{width:18px;height:18px;display:block;color:currentColor}.choice-glyph{color:var(--text-secondary)}.svg-vertical{width:18px;height:18px}.voice-choice-btn:hover{border-color:var(--accent);color:var(--accent)}.voice-choice-btn.voice-cache-not-cached{color:var(--text-muted);border-color:var(--border);cursor:default}.voice-choice-btn.voice-cache-not-cached:hover{border-color:var(--border);color:var(--text-muted);background:var(--surface);transform:none;box-shadow:none}.voice-choice-btn.voice-cache-not-cached:active{transform:none;box-shadow:none;border-color:var(--border)}.voice-choice-btn.voice-cache-not-cached .voice-flag{opacity:.45}.voice-choice-btn.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.voice-choice-btn.voice-cache-preloading{color:var(--text-muted);border-color:var(--border);cursor:default;background:var(--surface);box-shadow:none}.voice-choice-btn.voice-cache-preloading:hover{border-color:var(--border);color:var(--text-muted);background:var(--surface);transform:none;box-shadow:none}.voice-choice-btn.voice-cache-preloading .voice-flag{opacity:.45}.voice-reset-btn{flex:1 1 100%}.voice-cache-dot{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;flex-shrink:0;margin-left:4px;line-height:1;border:1.5px solid transparent;transition:opacity .15s,color .15s,border-color .15s,background .15s}.voice-preview-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-left:auto;padding:0;border-radius:50%;flex-shrink:0;border:1.5px solid transparent;background:transparent;color:var(--text-muted);cursor:default;opacity:.35;line-height:1;transition:opacity .15s,color .15s,border-color .15s,background .15s}.voice-preview-btn svg{width:12px;height:12px;pointer-events:none}.voice-preview-btn.is-ready{color:var(--ink);border-color:var(--ink);background:var(--cream);opacity:.95;cursor:pointer}.voice-preview-btn.is-ready:hover{opacity:1;background:var(--surface);color:var(--accent);border-color:var(--accent)}.voice-preview-btn.is-disabled{pointer-events:none}.voice-preview-btn.is-previewing{color:var(--accent);border-color:var(--accent);background:var(--cream);opacity:1;animation:voice-dot-pulse .8s ease-in-out infinite}.voice-cache-dot svg{width:12px;height:12px}.voice-cache-dot.cached{color:var(--success);border-color:var(--success)}.voice-cache-dot.not-cached{color:var(--accent);border-color:var(--accent);cursor:pointer;opacity:.7}.voice-cache-dot.not-cached:hover{opacity:1;background:var(--accent-light)}.voice-cache-dot.preloading{opacity:1;color:var(--accent);border-color:var(--accent);background:var(--accent-light);animation:voice-dot-pulse .8s ease-in-out infinite}@keyframes voice-dot-pulse{0%,to{opacity:.7}50%{opacity:1}}.voice-download-progress{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--border);border-radius:0 0 999px 999px;overflow:hidden;pointer-events:none}.voice-download-progress-fill{height:100%;width:0%;background:var(--accent);border-radius:0 0 999px 999px;transition:width .3s ease}.voice-cache-storage-bar-wrap{display:flex;align-items:center;gap:8px}.voice-cache-storage-bar{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.voice-cache-storage-bar-fill{height:100%;width:0;background:var(--accent);border-radius:4px;transition:width .4s ease,background .3s ease}.voice-cache-storage-text{font-family:var(--display-font);font-size:var(--text-sm);font-weight:950;color:var(--text-secondary);white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.voice-cache-list{display:flex;flex-direction:column;gap:4px}.voice-cache-lang-header{font-family:var(--display-font);font-size:var(--text-sm);font-weight:950;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;padding:8px 0 4px}.voice-cache-item{display:flex;align-items:center;gap:6px;min-height:34px;padding:7px 10px;background:var(--surface);border:1.5px solid var(--border);border-radius:999px}.voice-cache-item-name{flex:1;display:flex;align-items:center;gap:4px;font-family:var(--display-font);font-size:var(--text-sm);font-weight:950;color:var(--text)}.voice-cache-item-size{font-family:var(--display-font);font-size:var(--text-xs);font-weight:950;color:var(--text-secondary)}.voice-cache-delete-btn{width:22px;height:22px;padding:0;border:1.5px solid var(--border);border-radius:50%;background:none;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,border-color .15s,background .15s;opacity:.7}.voice-cache-delete-btn svg{width:10px;height:10px}.voice-cache-delete-btn:hover{opacity:1;color:var(--danger);border-color:var(--danger);background:var(--danger-light)}.voice-cache-delete-btn:disabled{opacity:.4;cursor:not-allowed}.voice-cache-empty{font-family:var(--display-font);font-size:var(--text-xs);font-weight:950;color:var(--text-muted);font-style:italic}select{font-family:var(--body-font);font-size:var(--text-sm);font-weight:700;padding:6px 28px 6px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%236b5e66' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;transition:border-color .15s,box-shadow .15s}select:hover{border-color:var(--accent)}select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}body.dictation-active #top-panel{opacity:0;pointer-events:none}#top-panel{opacity:1;transition:opacity .35s ease}body.dictation-active #dictationArea{display:flex;animation:dictationSlideIn .3s cubic-bezier(.2,.9,.16,1) forwards}body.dictation-active header .btn:not(#btnModeProgrammed){pointer-events:none;opacity:.35}@keyframes dictationSlideIn{0%{transform:translateY(100%)}to{transform:translateY(0)}}body.dictation-active #dictationArea #dictationInput{flex:1;min-height:200px}body.dictation-exit #dictationArea{display:flex;pointer-events:none;animation:dictationSlideUp .3s cubic-bezier(.55,0,1,.45) forwards}body.dictation-exit #top-panel{opacity:1;transition:none}@keyframes dictationSlideUp{0%{transform:translateY(0)}to{transform:translateY(100%)}}#top-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;margin:0 calc(26px / var(--zoom, 1)) calc(16px / var(--zoom, 1));border:var(--toon-line);border-radius:var(--radius-lg)}.transcript-head{flex-shrink:0;background:var(--surface);display:flex;flex-direction:column;align-items:stretch;padding:14px 20px 10px;gap:1px}.transcript-scroll-shell{position:relative;flex:1;min-height:0}.transcript-scroll{position:relative;height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-top:4px}.transcript-scroll::-webkit-scrollbar{display:none}.transcript-scrollbar{position:absolute;z-index:8;top:8px;right:4px;bottom:8px;width:40px;pointer-events:none}.transcript-scrollbar:before{content:"";position:absolute;top:0;bottom:16px;left:50%;width:6px;transform:translate(-50%);border-radius:999px;background:var(--border);box-shadow:inset 0 1px #17130f1a}.transcript-scrollbar-thumb{position:absolute;top:0;left:0;width:40px;height:40px;min-height:40px;box-sizing:border-box;padding:0;border:var(--toon-line-thin);border-radius:50%;background:var(--accent);box-shadow:3px 3px 0 var(--ink);cursor:grab;pointer-events:auto;touch-action:none}.transcript-scrollbar-thumb:after{content:"";position:absolute;inset:3px;border:2.5px solid var(--white);border-radius:50%;pointer-events:none}.transcript-scrollbar-thumb:active{cursor:grabbing}.transcript-sticky-head,.dictation-sticky-head{position:relative;flex-shrink:0;background:var(--surface);display:flex;align-items:center;padding:calc(22px / var(--zoom, 1)) 20px calc(18px / var(--zoom, 1));gap:calc(8px / var(--zoom, 1));line-height:1;border-bottom:1px solid var(--border-light)}.dictation-single-row{flex-direction:row;align-items:center;justify-content:flex-start}.dictation-single-row .exercise-badge{margin-bottom:0}.dictation-timer{font-family:var(--display-font);font-size:var(--text-md);font-weight:700;color:var(--text-secondary);font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.dictation-dot{color:var(--text-muted);margin:0 2px;flex-shrink:0}.dictation-diff-display{display:none;padding:14px 16px;font-size:var(--text-md);line-height:1.8;flex:1;overflow-y:auto;color:var(--text);font-weight:700}.dictation-diff-correct{color:var(--text-secondary)}.dictation-diff-wrong{color:#ef4444;text-decoration:line-through;margin-right:4px}.dictation-diff-expected{color:#22c55e;margin-right:4px}.dictation-diff-missing{color:#22c55e;background:#22c55e1a;border-radius:2px;padding:0 2px;margin-right:2px}.dictation-diff-extra{color:#ef4444;text-decoration:line-through;margin-right:4px}.dictation-diff-ellipsis{color:var(--text-secondary);font-style:italic;opacity:.65}.dictation-diff-display .vocab-result-pill{display:inline-flex;vertical-align:middle;margin:0 5px 4px 1px;line-height:1.35;text-decoration:none}#transcriptText{padding:0 64px 42px 24px;user-select:none;-webkit-user-select:none}#transcriptText{position:relative;isolation:isolate}.transcript-paragraph{display:block;margin:0 0 .9em}.transcript-paragraph:last-child{margin-bottom:0}.transcript-paragraph.conversation-turn{margin-bottom:.7em}.speaker-label{display:inline-flex;align-items:center;position:relative;top:-.08em;margin-right:.38em;padding:.18em .62em;border:1.5px solid color-mix(in srgb,var(--accent) 55%,var(--border));border-radius:var(--radius-full);background:color-mix(in srgb,var(--accent) 15%,var(--surface));color:var(--accent);font-family:var(--display-font);font-size:.68em;font-weight:950;line-height:1.15;letter-spacing:.01em;white-space:nowrap;vertical-align:middle}.conversation-turn:nth-child(2n) .speaker-label{border-color:color-mix(in srgb,var(--repeat-color) 55%,var(--border));background:color-mix(in srgb,var(--repeat-color) 13%,var(--surface));color:var(--repeat-color)}.transcript-title-area,.dictation-title-area{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start}.transcript-title-area{align-items:stretch}.transcript-title-area{padding-top:10px}.title-book-row,.title-episode-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 0;width:100%;min-width:0}.book-title-group{display:flex;align-items:center;gap:8px;min-width:0;flex:0 1 auto}.episode-title-group{display:flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto}.book-row-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.book-row-controls .btn,.book-row-controls .transcript-visibility-control{flex-shrink:0}.episode-mastery{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.episode-mastery-coin{width:16px;height:16px;object-fit:contain;opacity:.3;filter:grayscale(1)}.episode-mastery-coin.earned{opacity:1;filter:none}.episode-mastery-title{margin-left:2px}.episode-mastery-title .episode-mastery-coin{width:19px;height:19px}#btnBookNext{margin-left:2px}.title-episode-row .title-nav-btn{position:relative;top:1px;margin:0 2px}.title-nav-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-full);flex-shrink:0;padding:0;transition:color .15s,background .15s,box-shadow .15s}.title-nav-btn:hover{color:var(--text);background:var(--surface-alt)}.title-nav-btn:disabled{opacity:.25;pointer-events:none}.transcript-head .exercise-badge,.transcript-sticky-head .exercise-badge,.dictation-sticky-head .exercise-badge{display:block;font-family:var(--display-font);font-size:var(--text-2xs);font-weight:950;letter-spacing:.06em;flex:0 1 auto;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 0 0 -1px;position:relative;top:-2px}.transcript-head h2,.transcript-sticky-head h2,.dictation-sticky-head h2{margin:0;font-family:var(--display-font);font-size:var(--text-sm);text-align:left}.transcript-head h2,.transcript-sticky-head h2{flex:0 1 auto;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dictation-sticky-head h2{font-size:var(--text-md);font-weight:950}.transcript-visibility-control{position:relative;display:inline-flex;flex-shrink:0;width:48px;height:48px;align-items:center;justify-content:center}.transcript-unlock-btn.btn.icon-only{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;padding:0!important;color:var(--accent);background:transparent;border:none;box-shadow:none;border-radius:0;transition:transform .15s ease,opacity .15s ease}.transcript-unlock-btn.btn.icon-only svg{width:18px;height:18px;flex-shrink:0;opacity:.65;filter:drop-shadow(0 0 3px rgba(0,0,0,.5));transition:opacity .15s ease}.transcript-unlock-btn.btn.icon-only:hover svg{opacity:1}.transcript-unlock-btn.btn.icon-only:hover{color:var(--accent);background:transparent;border:none;transform:translate(-50%,-50%) scale(1.15)}.transcript-unlock-btn.btn.icon-only:active{transform:translate(-50%,-50%) scale(.95)}.progress-container{position:relative;z-index:1;margin:calc(16px / var(--zoom, 1)) calc(26px / var(--zoom, 1));height:24px;flex-shrink:0;pointer-events:none}.progress-wrap{pointer-events:auto}.exercise-badge{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.15em;color:var(--accent);font-weight:700;margin-bottom:4px}#top-panel h2{font-size:var(--text-sm);font-weight:950;margin-bottom:10px;color:var(--text)}.transcript-blurred .word .word-text{color:transparent;-webkit-text-fill-color:transparent;text-shadow:0 0 var(--blur-radius) var(--blur-ink);transition:text-shadow .2s ease,color .2s ease}.transcript-blurred .sentence{cursor:default}.transcript-blurred .sentence.active{box-shadow:0 2px 8px var(--accent-glow)}.sentence{display:inline;position:relative;--blur-ink: var(--text);--blur-playhead-ink: var(--text);--blur-radius: .55em;line-height:2.2;font-size:var(--text-md);padding:3px 6px;border-radius:16px;transition:color .2s,transform .2s,filter .3s;cursor:pointer;will-change:auto;word-spacing:0;box-decoration-break:clone;-webkit-box-decoration-break:clone}.sentence.active{background:var(--accent);color:var(--text);--blur-ink: #fff;--blur-playhead-ink: var(--blur-ink);box-shadow:0 2px 8px var(--accent-glow)}.sentence.active.repeat{background:var(--repeat-color-bg);color:var(--text);--blur-ink: var(--gray-800);--blur-playhead-ink: var(--blur-ink);box-shadow:0 2px 8px var(--repeat-color-dim);animation:repeatPulse 1.2s ease-in-out infinite;box-decoration-break:clone;-webkit-box-decoration-break:clone}@keyframes repeatPulse{0%,to{box-shadow:0 2px 8px #fbbf2459}50%{box-shadow:0 2px 16px #fbbf248c}}.transcript-playhead{position:absolute;left:0;top:0;width:0;height:0;border-radius:16px;background:#fff9;box-shadow:0 0 0 3px #fff9;opacity:0;pointer-events:none;z-index:1}.transcript-playhead.visible{opacity:1}.transcript-playhead.no-transition{transition:none}.word{position:relative;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.word-text{position:relative;z-index:2}body.dragging-seek .sentence .word,body.dragging-seek .sentence .word-text{transition:none}.sentence.active .word.spoken{color:inherit}.sentence.active .word.speaking{color:var(--text);border-radius:16px}.transcript-blurred .sentence.active .word.spoken,.transcript-blurred .sentence.active.repeat .word.spoken{color:inherit}.transcript-blurred .sentence.active.repeat{color:var(--text)}.transcript-blurred .sentence.active .word.speaking,.transcript-blurred .sentence.active.repeat .word.speaking{border-radius:16px;box-shadow:none}.transcript-blurred .sentence.active .word.speaking .word-text,.transcript-blurred .sentence.active.repeat .word.speaking .word-text{color:transparent;-webkit-text-fill-color:transparent;text-shadow:0 0 var(--blur-radius) var(--blur-playhead-ink);opacity:1;will-change:text-shadow,color;transition:text-shadow .2s ease,color .2s ease}.transcript-blurred .sentence.active .word.speaking,.transcript-blurred .sentence.active.repeat .word.speaking{color:var(--text);text-shadow:none}.sentence.active.repeat .word.spoken{color:inherit}.sentence.active.repeat .word.speaking{color:var(--text)}.progress-wrap{position:absolute;inset:0;background:var(--border-light);border-radius:999px;cursor:pointer;overflow:hidden;box-shadow:inset 0 1px 3px #00000014}#progressSegments{position:absolute;inset:0;border-radius:inherit;overflow:hidden}.progress-fill{display:none;position:absolute;top:0;bottom:0;transition:width .15s linear,left .15s linear;pointer-events:none;z-index:3;border-radius:4px}.progress-segment{position:absolute;top:0;bottom:0;cursor:pointer;z-index:1;transition:background .15s}.progress-segment:nth-child(odd){background:transparent}.progress-segment:nth-child(2n){background:transparent}.progress-segment:hover{background:var(--accent-glow);z-index:2}.progress-segment.current{z-index:0;background:var(--accent-glow)}.progress-segment.current.repeat{background:var(--repeat-color-bar)}.progress-tick{position:absolute;top:0;bottom:0;width:2px;background:var(--gray-400);opacity:.4;border-radius:1px;cursor:pointer;z-index:4;transition:opacity .15s,background .15s}.progress-tick:hover{opacity:1;background:var(--accent)}.progress-thumb{position:absolute;top:-9px;width:40px;height:40px;margin-left:-20px;background:var(--accent);border-radius:50%;box-shadow:0 2px 8px var(--accent-glow);cursor:grab;z-index:5;opacity:0;transition:left .15s linear,transform .15s var(--ease),box-shadow .15s var(--ease),opacity .15s ease}.progress-thumb:hover{transform:scale(1.1);box-shadow:0 2px 14px var(--accent-glow)}.progress-thumb:active{cursor:grabbing;transform:scale(1.2);box-shadow:0 4px 20px var(--accent-glow)}.progress-thumb:after{content:"";position:absolute;inset:3px;border:2.5px solid var(--white);border-radius:50%;background:transparent}.progress-thumb-laps{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--display-font);font-weight:950;font-size:var(--text-2xs);color:var(--white);z-index:1;pointer-events:none}body.dictation-active .progress-thumb:after{display:none}body.dictation-active .progress-thumb-laps{font-size:var(--text-base)}body.dictation-live .progress-thumb{animation:thumbLivePulse 1s ease-in-out infinite;opacity:1}body.dictation-exit .progress-thumb{animation:none}@keyframes thumbLivePulse{0%,to{transform:scale(1)}15%{transform:scale(1.14)}30%{transform:scale(.94)}45%{transform:scale(1.06)}60%{transform:scale(1)}}.progress-thumb.gap{background:#22c55e;box-shadow:0 2px 12px #22c55e66;animation:thumbGapPulse .5s ease-in-out infinite}@keyframes thumbGapPulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}body.progress-snapping .progress-fill,body.progress-snapping .progress-thumb,body.progress-snapping .progress-segment{transition:none}.no-seek,.no-seek .progress-segment,.no-seek .progress-tick,.no-seek .progress-thumb{cursor:default;pointer-events:none}.no-seek .progress-segment:hover{background:inherit}.no-seek .progress-tick:hover{opacity:.4;background:var(--gray-400)}.no-seek .progress-thumb:hover,.no-seek .progress-thumb:active{transform:none;box-shadow:0 2px 8px var(--accent-glow)}.btn{font-family:var(--body-font);font-size:var(--text-sm);font-weight:700;margin:0;padding:6px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;transition:all .15s var(--ease);display:inline-flex;align-items:center;gap:4px;flex-shrink:0;letter-spacing:-.01em}.btn:hover{background:var(--surface-alt);border-color:var(--accent-light);transform:translateY(-1px);box-shadow:var(--shadow)}.btn:active{transform:scale(.95) translateY(0);box-shadow:none}.btn.primary{background:linear-gradient(135deg,var(--pink-400),var(--accent));color:#fff;border-color:transparent;box-shadow:0 2px 8px var(--accent-glow)}.btn.primary:hover,.btn-icon-pill.active:hover{background:linear-gradient(135deg,var(--accent),var(--pink-600));box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.btn svg{flex-shrink:0;vertical-align:middle}.btn:disabled,.btn[aria-disabled=true]{opacity:.42;cursor:default;pointer-events:none;transform:none;box-shadow:none}.btn.icon-only{margin:0;padding:0;font-size:var(--text-base);border-radius:var(--radius-full);width:48px;height:48px;justify-content:center}.btn.icon-only svg{width:22px;height:22px}.btn.ab-active{background:var(--repeat-color-bg);color:var(--text)}.btn.ab-active:hover{background:var(--repeat-color-bg)}.time-display{font-size:var(--text-base);font-weight:700;color:var(--text-secondary)}#coinBalance{font-size:var(--text-base);font-weight:700;color:var(--text-secondary);position:relative;top:2px;font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.controls-spacer{flex:1;min-width:4px}.controls-sep{width:1px;height:22px;background:var(--border);border-radius:1px;flex-shrink:0}#dictationArea{position:fixed;left:calc(26px / var(--zoom, 1));right:calc(26px / var(--zoom, 1));bottom:calc(16px / var(--zoom, 1));min-width:688px;z-index:80;background:var(--surface);border:var(--toon-line-thin);border-radius:var(--radius-lg);display:flex;flex-direction:column;overflow:hidden}#dictationArea.hidden{display:none}.dictation-input-wrap{position:relative;flex:1;display:flex;min-height:0}#dictationInput{font-family:var(--font);font-size:var(--text-md);font-weight:inherit;line-height:1.7;padding:calc(14px / var(--zoom, 1)) calc(24px / var(--zoom, 1));border:none;border-radius:0;background:var(--surface);color:var(--text);resize:none;width:100%;flex:1;min-height:0;user-select:text;-webkit-user-select:text;transition:border-color .2s,box-shadow .2s}#dictationInput:focus{outline:none;box-shadow:inset 4px 0 0 var(--accent)}#dictationInput::placeholder{color:var(--text-muted);font-style:italic}#dictationInput[readonly]{background:var(--surface-alt);cursor:default;user-select:none;-webkit-user-select:none}.action-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex-shrink:0}.score-display{display:none;position:fixed;inset:8% 12%;overflow:hidden;background:var(--cream);border:var(--toon-line);border-radius:var(--radius-lg);box-shadow:var(--toon-shadow-lg);z-index:86;flex-direction:column;font-family:var(--display-font)}.score-display.visible{display:flex}.score-backdrop{display:none;position:fixed;inset:0;background:#0000008c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:85}.score-backdrop.visible{display:block}.score-top-bar{display:flex;flex-direction:column;flex-shrink:0;padding:10px 20px 18px}.score-top-row{display:flex;align-items:center;gap:10px}.score-title{display:flex;align-items:center;gap:8px;font-size:var(--text-base);font-weight:950;font-family:var(--display-font);letter-spacing:-.02em;color:var(--ink);flex:1;min-width:0}.score-title-icon{width:18px;height:18px;flex-shrink:0}.score-top-sep{width:1px;height:20px;background:var(--border);flex-shrink:0;margin:0 5px}.score-top-actions{display:flex;align-items:center;gap:0;flex-shrink:0}.vocab-drill-actions{display:flex;align-items:center;align-self:flex-start;gap:6px;flex-shrink:0}.vocab-drill-btn{min-height:34px;height:34px;padding:0 11px;border:var(--toon-line-thin);border-radius:var(--radius-full);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;font-family:var(--display-font);font-size:var(--text-xs);font-weight:900;cursor:pointer}.vocab-drill-btn:hover:not(:disabled){background:var(--surface-alt);transform:translateY(-1px)}.vocab-drill-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.vocab-drill-btn svg{flex-shrink:0}.score-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0}.score-close:hover{color:var(--text)}.dictation-close{display:none;position:absolute;top:18px;right:20px;z-index:10}body.dictation-active .dictation-close.show{display:flex}@keyframes scoreIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.score-summary{display:flex;gap:14px;align-items:center}.score-circle{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:950;font-size:var(--text-md);color:#fff;flex-shrink:0;border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.score-excellent{background:var(--success)}.score-good{background:var(--sky-400)}.score-fair{background:#f59e0b}.score-poor{background:var(--danger)}.score-label{font-weight:950;font-size:var(--text-base)}.score-detail{font-size:var(--text-sm);color:var(--text-muted);margin-top:1px}.review-meta-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:10px}.review-content-path{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);min-width:0}.score-tab-content{display:none;flex:1;overflow-y:auto;flex-direction:column;gap:12px;padding:12px 24px 24px}.score-tab-content.visible{display:flex}.vocab-filter-bar{display:block;flex-shrink:0;padding:6px 0 4px}.vocab-filter-left{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;row-gap:16px;min-width:0;overflow-x:visible;padding-right:3px;width:100%}.vocab-filter-left>.vocab-filter-dim:nth-of-type(n+2){grid-column:1 / -1}.vocab-filter-left>.vocab-drill-actions{grid-column:2;grid-row:1}.vocab-filter-dim:last-child{margin-top:-1px}.vocab-stats{display:none}.vocab-stats strong{font-size:var(--text-md);font-family:var(--display-font);color:var(--ink);font-weight:950}#tabVocab{min-height:0}.vocab-filter-dim{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;padding:2px 0;margin:-2px 0}.filter-tags-wrap{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;flex-shrink:1;min-width:0;padding:2px 0;margin:-2px 0}.filter-tags-wrap::-webkit-scrollbar{display:none}.vocab-filter-label{font-size:var(--text-2xs);font-weight:950;font-family:var(--display-font);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-right:4px;min-width:32px;flex-shrink:0}.vocab-filter-note{font-size:var(--text-2xs);font-weight:400;color:var(--text-muted);margin-left:6px}.filter-scroll-arrow{display:none;flex-shrink:0;width:24px;height:100%;align-items:center;justify-content:center;color:var(--text-muted);font-size:1.6rem;line-height:1;pointer-events:none;margin-left:2px}.filter-scroll-arrow.on{display:flex;animation:scrollHintPulse 1.8s ease-in-out infinite}@keyframes scrollHintPulse{0%,to{opacity:.35;transform:translate(0)}50%{opacity:1;transform:translate(3px)}}.vocab-filter-tag{padding:5px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:950;border:1.5px solid #999;background:transparent;color:var(--text-secondary);cursor:pointer;transition:color .12s,background .12s,box-shadow .12s,border-color .12s;font-family:var(--display-font);letter-spacing:-.02em;flex-shrink:0}.vocab-filter-tag.freq-1{background:#d6f5db;border-color:#a9dab1}.vocab-filter-tag.freq-2{background:#f5edc7;border-color:#dbcf94}.vocab-filter-tag.freq-3{background:#f7dac9;border-color:#e1b398}.vocab-filter-tag.freq-4{background:#efc8c8;border-color:#da9595}.vocab-filter-tag.freq-5{background:#e9b4b4;border-color:#d47d7d}.vocab-filter-tag.freq-1.active{outline:2px solid hsl(130,60%,42%);outline-offset:-1px;color:var(--ink)}.vocab-filter-tag.freq-2.active{outline:2px solid hsl(50,70%,42%);outline-offset:-1px;color:var(--ink)}.vocab-filter-tag.freq-3.active{outline:2px solid hsl(22,80%,45%);outline-offset:-1px;color:var(--ink)}.vocab-filter-tag.freq-4.active{outline:2px solid hsl(0,62%,38%);outline-offset:-1px;color:var(--ink)}.vocab-filter-tag.freq-5.active{outline:2px solid hsl(0,60%,32%);outline-offset:-1px;color:var(--ink)}.vocab-filter-tag:not(.freq-1):not(.freq-2):not(.freq-3):not(.freq-4):not(.freq-5).active{background:var(--surface-alt);color:var(--ink);border-color:var(--ink);box-shadow:2px 2px 0 var(--ink)}.vocab-filter-tag.active{box-shadow:2px 2px 0 var(--ink)}.vocab-filter-tag:hover:not(.active){filter:brightness(.94)}.vocab-list{display:flex;flex-wrap:wrap;gap:12px 8px;align-content:flex-start;flex:1;min-height:240px}.vocab-word{position:relative;display:flex;align-items:center;justify-content:center;padding:3px 10px;border:var(--toon-line-thin);border-radius:var(--radius-full);box-shadow:3px 3px 0 var(--ink);font-size:var(--text-sm);font-weight:950;font-family:var(--font);letter-spacing:-.02em;color:var(--ink)}.vocab-word.new-pill{will-change:transform}.vocab-word.vocab-hidden{display:none}.vocab-word.new-pill{animation:vocabPinball .3s cubic-bezier(.25,1.1,.5,1) both}@keyframes vocabPinball{0%{opacity:0;transform:scale(.6) translateY(-6px)}60%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1) translateY(0)}}.vocab-word-text{font-weight:700}.vocab-word-count{background:#0000001f;color:var(--ink);border-radius:var(--radius-full);padding:2px 9px;font-size:var(--text-xs);font-weight:700;font-family:var(--display-font);min-width:22px;text-align:center}.vocab-remove-btn{position:absolute;right:-8px;top:-8px;width:20px;height:20px;border:1.5px solid var(--ink);border-radius:50%;background:var(--bg);box-shadow:1px 1px 0 var(--ink);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);padding:0;transition:opacity .15s;line-height:1;font-weight:700;opacity:0;pointer-events:none}.vocab-word:hover .vocab-remove-btn{opacity:1;pointer-events:auto}.empty-tab-msg{display:flex;align-items:center;justify-content:center;padding:48px 28px;color:var(--text-muted);font-size:var(--text-base);font-family:var(--display-font);font-weight:700;text-align:center;line-height:1.6;background:var(--surface);border-radius:var(--radius-sm);border:1px dashed var(--border)}.confirm-backdrop{display:none;position:fixed;inset:0;background:#00000080;z-index:10003}.confirm-backdrop.visible{display:block}.confirm-dialog{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#fff8ea;background:var(--cream);border:var(--toon-line);border-radius:var(--radius-lg);box-shadow:var(--toon-shadow-lg);padding:28px 28px 20px;z-index:10004;min-width:320px;max-width:440px;width:calc(100vw - 48px);flex-direction:column;gap:18px;font-family:var(--display-font)}.confirm-dialog.visible{display:flex}.confirm-icon{display:block;width:48px;height:48px;object-fit:contain;margin:0 auto 4px}.confirm-message{font-family:var(--display-font);font-weight:950;font-size:var(--text-base);letter-spacing:-.02em;line-height:1.55;color:var(--ink);white-space:pre-line;margin:0}.confirm-buttons{display:flex;gap:10px;justify-content:flex-end}.confirm-btn{padding:8px 20px;border-radius:var(--radius);font-weight:950;font-size:var(--text-base);font-family:var(--display-font);letter-spacing:-.02em;cursor:pointer;transition:all .15s;border:var(--toon-line-thin);box-shadow:var(--toon-shadow-sm)}.confirm-btn-cancel{background:var(--surface);color:var(--ink)}.confirm-btn-cancel:hover{background:var(--ink);color:var(--surface)}.confirm-btn-review{background:var(--surface);color:var(--accent);border-color:var(--accent)}.confirm-btn-review:hover{background:var(--accent-light)}.confirm-btn-ok{background:var(--accent);color:var(--bg);border-color:var(--ink)}.confirm-btn-ok:hover{filter:brightness(1.12)}.wizard-overlay.merge-mode,.wizard-overlay.login-mode,.wizard-overlay.legal-consent-mode{display:flex;z-index:1200;background:radial-gradient(circle at 10% 8%,rgba(255,139,56,.22),transparent 28rem),radial-gradient(circle at 88% 12%,rgba(90,169,255,.18),transparent 24rem),linear-gradient(135deg,rgba(23,19,15,.035) 25%,transparent 25%) 0 0 / 18px 18px,#fff6df;backdrop-filter:none}.wizard-overlay.merge-mode .wizard-loading,.wizard-overlay.merge-mode .wizard-card,.wizard-overlay.login-mode .wizard-loading,.wizard-overlay.login-mode .wizard-card,.wizard-overlay.login-mode .merge-dialog,.wizard-overlay.legal-consent-mode .wizard-loading,.wizard-overlay.legal-consent-mode .wizard-card,.wizard-overlay.legal-consent-mode .merge-dialog,.wizard-overlay.legal-consent-mode .login-dialog-overlay{display:none!important}.wizard-overlay.login-mode .login-dialog{border:var(--toon-line);box-shadow:var(--toon-shadow)}.wizard-overlay.legal-consent-mode .legal-consent-dialog{display:flex;flex-direction:column;align-items:center;gap:16px;width:min(480px,calc(100vw - 32px));padding:28px;border:var(--toon-line);border-radius:var(--radius-lg);background:var(--cream);box-shadow:var(--toon-shadow-lg);text-align:center;animation:wizardIn .3s cubic-bezier(.2,.9,.16,1)}.legal-consent-dialog{display:none}.legal-consent-dialog .wizard-title{margin:0}.legal-consent-view{display:inline-block;color:var(--accent);font-size:var(--text-base);font-weight:700;text-decoration:underline;text-underline-offset:3px}.legal-consent-check{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--text-sm);font-weight:700;color:var(--text-secondary);text-align:left}.legal-consent-check input[type=checkbox]{flex-shrink:0;margin-top:2px;accent-color:var(--accent)}.legal-consent-dialog .btn.primary:disabled{opacity:.45;cursor:not-allowed}.merge-dialog{display:none;width:min(620px,calc(100vw - 28px));max-height:calc(100vh - 48px);overflow-y:auto;padding:26px;border:var(--toon-line);border-radius:var(--radius-lg);background:var(--cream);box-shadow:var(--toon-shadow-lg);text-align:center}.merge-dialog.visible{display:block;animation:wizardIn .3s cubic-bezier(.2,.9,.16,1)}.merge-kicker{display:block;margin-bottom:6px;color:var(--accent);font-size:var(--text-xs);font-weight:950;letter-spacing:.08em;text-transform:uppercase}.merge-dialog h2{margin:0;color:var(--ink);font-family:var(--display-font);font-size:var(--text-lg);font-weight:950}.merge-message{max-width:430px;margin:8px auto 18px;color:var(--text-secondary);font-size:var(--text-sm);font-weight:700;line-height:1.35}.merge-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.merge-option{display:flex;min-height:170px;flex-direction:column;align-items:flex-start;gap:7px;padding:16px;border:var(--toon-line-thin);border-radius:var(--radius-md);color:var(--ink);cursor:pointer;font-family:var(--display-font);text-align:left;box-shadow:var(--toon-shadow-sm);transition:transform .15s,filter .15s}.merge-option:hover,.merge-option:focus-visible{transform:translateY(-2px);filter:brightness(1.04)}.merge-option-device{background:color-mix(in srgb,var(--sky-400) 20%,var(--surface))}.merge-option-cloud{background:color-mix(in srgb,var(--launch-mint) 30%,var(--surface))}.merge-option-art{display:grid;width:38px;height:38px;place-items:center;border:var(--toon-line-thin);border-radius:13px;background:var(--surface);font-size:24px;font-weight:950}.merge-option-title{font-size:var(--text-sm);font-weight:950;line-height:1.15}.merge-option-copy{color:var(--text-secondary);font-size:var(--text-xs);font-weight:700;line-height:1.35}.merge-cancel{margin-top:16px;border:0;background:transparent;color:var(--text-secondary);cursor:pointer;font:700 var(--text-sm) var(--display-font)}.merge-cancel:hover{color:var(--ink)}@media(max-width:560px){.merge-options{grid-template-columns:1fr}.merge-option{min-height:0}}.diff-output::-webkit-scrollbar{width:6px}.diff-output::-webkit-scrollbar-track{background:transparent}.diff-output::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.diff-output::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.settings-tab-content::-webkit-scrollbar{width:6px}.settings-tab-content::-webkit-scrollbar-track{background:transparent}.settings-tab-content::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.settings-tab-content::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.font-settings{position:relative;flex-shrink:0}.font-btn{font-weight:700;font-size:var(--text-sm)}.font-popover{display:none;position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:14px 16px;min-width:200px;z-index:50;flex-direction:column;gap:12px}.font-popover.open{display:flex}#settingsTab_appearance .font-popover{display:flex;position:static;top:auto;right:auto;background:transparent;border:none;border-radius:0;box-shadow:none;padding:0;min-width:auto;gap:16px}#settingsTab_appearance .top-popover-head{display:none}.font-popover label{font-size:var(--text-sm);font-weight:950;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em}.font-size-controls{display:flex;align-items:center;gap:0;border:var(--toon-line-thin);border-radius:var(--radius-sm);box-shadow:2px 2px 0 var(--ink)}.font-size-controls button{font-family:var(--body-font);font-size:var(--text-base);font-weight:700;flex:1;min-width:48px;height:34px;border:none;background:var(--surface);color:var(--text);cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center}.font-size-controls button:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.font-size-controls button:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.font-size-controls button:hover{background:var(--surface-alt)}.font-size-controls button:active{background:var(--accent-light)}.font-size-controls .font-size-label{flex:.8;min-width:48px;height:34px;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700;color:var(--accent);border-left:var(--toon-line-thin);border-right:var(--toon-line-thin);background:var(--surface-alt)}.font-family-options{display:flex;flex-wrap:wrap;gap:6px}.font-family-options button{font-size:var(--text-sm);padding:7px 14px;border:1.5px solid var(--border);border-radius:999px;background:var(--accent-light);color:var(--text);cursor:pointer;text-align:center;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;transition:background .15s,border-color .15s}.font-family-options button:hover{background:var(--border);border-color:var(--accent)}.font-family-options button.active{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.theme-hue-slider-wrap{display:flex;align-items:center;gap:10px}.theme-hue-slider-wrap input[type=range]{flex:1;min-width:0;height:10px;border-radius:5px;background:linear-gradient(to right,#d02525,#d07a25,#d0d025,#25d025,#25d0d0,#2525d0,#7a25d0,#d025d0,#d0257a,#d02525);box-shadow:2px 2px 0 var(--ink);-webkit-appearance:none;appearance:none;outline:none;cursor:pointer}.theme-hue-slider-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);border:var(--toon-line-thin);box-shadow:2px 2px 0 var(--ink);margin-top:-4px;cursor:pointer}.theme-hue-swatch{width:26px;height:26px;border-radius:50%;background:var(--accent);border:2px solid var(--border);flex-shrink:0}#themeGammaSlider,#themeContrastSlider,#themeSaturationSlider{width:100%;margin:4px 0 8px;height:10px;border-radius:5px;background:var(--border);box-shadow:2px 2px 0 var(--ink);-webkit-appearance:none;appearance:none;outline:none;cursor:pointer}#themeGammaSlider::-webkit-slider-thumb,#themeContrastSlider::-webkit-slider-thumb,#themeSaturationSlider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--surface);border:var(--toon-line-thin);box-shadow:2px 2px 0 var(--ink);margin-top:-6px;cursor:pointer}.theme-presets{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-2px 0 10px}.theme-preset-dot{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s;padding:0;position:relative}.theme-preset-dot:hover{transform:scale(1.15)}.theme-preset-dot.active{border-color:var(--text);transform:scale(1.1)}.theme-preset-delete{position:absolute;top:-5px;right:-5px;width:15px;height:15px;border-radius:50%;background:var(--ink);color:var(--bg);border:none;font-size:var(--text-2xs);font-weight:700;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s;padding:0}.theme-preset-dot:hover .theme-preset-delete,.theme-presets.editing .theme-preset-delete{opacity:.55}.theme-preset-delete:hover{opacity:.9!important}.theme-save-btn{width:26px;height:26px;border-radius:50%;border:2px dashed var(--border);background:transparent;color:var(--text-secondary);font-size:var(--text-base);font-weight:700;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;transition:border-color .15s,color .15s,background .15s;flex-shrink:0}.theme-save-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.loading-overlay{position:fixed;inset:0;background:#0a0a0feb;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1000;gap:16px}.loading-overlay.is-soft{background:#0a0a0f59!important;gap:0!important}.loading-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.loading-overlay.is-soft .loading-card{background:var(--cream);border:var(--toon-line);border-radius:var(--radius-lg);box-shadow:var(--toon-shadow-lg);padding:28px 28px 24px;min-width:280px;max-width:400px;width:calc(100vw - 48px);font-family:var(--body-font)}.loading-overlay.is-soft .loading-text{color:var(--ink);font-weight:700;font-size:var(--text-base);max-width:none}.loading-overlay.is-soft .loading-sub{color:color-mix(in srgb,var(--ink) 55%,transparent);margin-top:-8px}@supports not (color: color-mix(in srgb,black 50%,transparent)){.loading-overlay.is-soft .loading-sub{color:#281e148c}}.loading-overlay.is-soft .loading-bar{background:#0000001a;width:100%;max-width:240px}.loading-overlay.is-soft .loading-hint{color:color-mix(in srgb,var(--ink) 45%,transparent)}@supports not (color: color-mix(in srgb,black 50%,transparent)){.loading-overlay.is-soft .loading-hint{color:#281e1473}}.loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.15);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-wave{display:flex;align-items:center;gap:5px;height:44px}.loading-wave span{width:7px;height:14px;border-radius:var(--radius-full);background:var(--accent);animation:loading-wave-bounce 1s ease-in-out infinite}.loading-wave span:nth-child(1){animation-delay:0s}.loading-wave span:nth-child(2){animation-delay:.13s}.loading-wave span:nth-child(3){animation-delay:.26s}.loading-wave span:nth-child(4){animation-delay:.39s}.loading-wave span:nth-child(5){animation-delay:.52s}@keyframes loading-wave-bounce{0%,to{height:12px;opacity:.55}50%{height:42px;opacity:1}}.weave-anim{width:76px;height:56px;position:relative;border-radius:6px;overflow:hidden;flex-shrink:0}.weave-thread{position:absolute;left:0;width:100%;height:3px;border-radius:1.5px;animation:weave-warp 1.8s ease-in-out infinite}.weave-t1{top:5px;background:#ec7f51;animation-delay:0s}.weave-t2{top:14px;background:#e48f44;animation-delay:.12s}.weave-t3{top:23px;background:#dda23c;animation-delay:.24s}.weave-t4{top:32px;background:#d8b731;animation-delay:.36s}.weave-t5{top:41px;background:#d2cd2d;animation-delay:.48s}@keyframes weave-warp{0%,to{transform:scaleX(1);opacity:.5}50%{transform:scaleX(.3);opacity:1}}.weave-shuttle{position:absolute;top:0;left:0;width:6px;height:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 8px var(--accent-glow),0 0 16px var(--accent-glow);animation:weave-shuttle 1.5s ease-in-out infinite}@keyframes weave-shuttle{0%{left:2px;top:3px}8%{left:80%;top:6px}16%{left:90%;top:12px}24%{left:80%;top:18px}32%{left:10%;top:24px}40%{left:85%;top:30px}48%{left:90%;top:36px}56%{left:20%;top:42px}64%{left:80%;top:48px}72%{left:50%;top:50px}80%{left:4px;top:45px}88%{left:2px;top:36px}96%{left:10%;top:24px}to{left:2px;top:3px}}.weave-backdrop{display:none;position:fixed;inset:0;background:#0a0a0f99;z-index:600}.weave-backdrop.visible{display:block}.weave-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border:var(--toon-line);border-radius:var(--radius-lg);box-shadow:3px 3px 0 var(--ink),0 8px 32px #442b1426;padding:32px 28px 24px;z-index:601;flex-direction:column;align-items:center;gap:16px;min-width:340px;max-width:420px;font-family:var(--display-font)}.weave-modal.visible{display:flex}.weave-modal.estimated-progress .weave-shuttle{display:none}.weave-modal .create-close{position:absolute;top:10px;right:10px}.weave-status{font-size:var(--text-sm);font-weight:950;font-family:var(--display-font);letter-spacing:-.02em;color:var(--ink);text-align:center}.weave-progress-track{width:100%;height:6px;border-radius:var(--radius-full);background:var(--border);overflow:hidden}.weave-progress-fill{height:100%;width:0%;border-radius:var(--radius-full);background:var(--accent);transition:width .5s ease}.weave-progress-fill.indeterminate{width:30%;animation:indeterminate-bar 1.5s ease-in-out infinite}.weave-meta{font-size:var(--text-xs);font-weight:700;font-family:var(--display-font);letter-spacing:-.02em;color:var(--text-muted);text-align:center}.weave-anim-create{margin:0 auto 12px}.loading-overlay .loading-weave,.loading-overlay.loading-weaving .loading-spinner{display:none}.loading-overlay.loading-weaving .loading-weave{display:block}.loading-text{color:#ccc;font-size:var(--text-base);text-align:center;max-width:280px}.loading-bar-wrap{display:flex;align-items:center;gap:10px}.loading-bar{width:240px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.loading-bar-fill{height:100%;width:0%;background:var(--accent);border-radius:2px;transition:width .3s ease}.loading-bar-fill.indeterminate{width:30%;animation:indeterminate-bar 1.5s ease-in-out infinite}@keyframes indeterminate-bar{0%{transform:translate(-100%)}50%{transform:translate(233%)}to{transform:translate(-100%)}}.loading-pct{color:var(--accent);font-size:var(--text-sm);font-weight:700;min-width:36px;text-align:right}.loading-sub{color:#ffffff80;font-size:var(--text-xs);font-weight:700;margin-top:-10px}.loading-hint{color:#ffffff59;font-size:var(--text-sm);text-align:center;margin-top:4px}.loading-retry-wrap{display:none;margin-top:12px}.loading-overlay.has-error .loading-retry-wrap{display:block}.loading-overlay.has-error .loading-spinner,.loading-overlay.has-error .loading-wave,.loading-overlay.has-error .loading-sub,.loading-overlay.has-error .loading-bar-wrap,.loading-overlay.has-error .loading-hint{display:none}.loading-overlay.has-error .loading-text{color:#f88}.loading-retry-btn{padding:10px 28px;font-family:var(--font);font-weight:700;font-size:var(--text-base);color:#fff;background:var(--accent);border:none;border-radius:var(--radius-full);cursor:pointer;transition:background .2s,transform .1s}.loading-retry-btn:hover{background:var(--accent-hover)}.loading-retry-btn:active{transform:scale(.96)}.network-notice{display:none;position:fixed;top:0;left:0;right:0;z-index:999;background:#b71c1c;color:#fff;font-family:var(--font);font-weight:700;font-size:var(--text-sm);text-align:center;padding:10px 40px 10px 16px;line-height:1.4}.network-notice.visible{display:block}.network-notice-close{position:absolute;top:50%;right:10px;transform:translateY(-50%);background:none;border:none;color:inherit;cursor:pointer;padding:4px;opacity:.75}.network-notice-close:hover{opacity:1}.offline-notice{display:none;position:fixed;top:0;left:0;right:0;z-index:999;background:var(--ink);color:var(--cream);font-family:var(--body-font);font-weight:700;font-size:var(--text-sm);padding:12px 44px 12px 16px;line-height:1.45;border-bottom:var(--toon-line-thin);box-shadow:var(--toon-shadow-sm)}.offline-notice.visible{display:block}.offline-notice-inner{max-width:920px;margin:0 auto;text-align:left}.offline-notice-title{display:block;font-size:var(--text-base);font-weight:950;margin-bottom:4px}.offline-notice-body,.offline-notice-sync{margin:0;color:color-mix(in srgb,var(--cream) 88%,var(--ink) 12%)}.offline-notice-sync{margin-top:6px;font-size:var(--text-xs)}.offline-notice-close{position:absolute;top:10px;right:10px;background:none;border:none;color:inherit;cursor:pointer;font-size:var(--text-lg);line-height:1;padding:4px 8px;opacity:.75;font-weight:950}.offline-notice-close:hover{opacity:1}.offline-notice--ready{padding:10px 44px 10px 16px;text-align:center}.offline-notice--ready .offline-notice-inner{text-align:center}.offline-notice--ready .offline-notice-title[hidden],.offline-notice--ready .offline-notice-sync[hidden]{display:none}.offline-notice--ready .offline-notice-body{color:inherit}.offline-notice--ready .offline-notice-close{top:50%;transform:translateY(-50%)}@supports not (color: color-mix(in srgb,white 50%,black 50%)){.offline-notice-body,.offline-notice-sync{color:#f3ebe3}}.app-notice{display:none;position:fixed;top:0;left:0;right:0;z-index:998;background:var(--ink);color:var(--surface);font-family:var(--body-font);font-weight:700;font-size:var(--text-sm);text-align:center;padding:10px 40px 10px 16px;line-height:1.4}.app-notice.visible{display:block}.app-notice-close{position:absolute;top:50%;right:10px;transform:translateY(-50%);background:none;border:none;color:inherit;cursor:pointer;padding:4px;opacity:.75}.app-notice-close:hover{opacity:1}.countdown-overlay{display:none;position:absolute;inset:0;background:var(--surface);z-index:10;align-items:center;justify-content:center;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden}.countdown-overlay.active{display:flex}.countdown-ring{position:absolute;width:0;height:0;border-radius:50%;border:4px solid var(--accent);opacity:0;pointer-events:none}.countdown-ring.pulse{animation:countdownRing .75s ease-out forwards}@keyframes countdownRing{0%{width:80px;height:80px;opacity:.7;border-width:5px}to{width:340px;height:340px;opacity:0;border-width:1px}}.countdown-number{position:relative;z-index:1;font-family:var(--display-font);font-size:11rem;font-weight:950;color:var(--accent);text-shadow:0 0 40px var(--accent-glow),0 0 80px var(--accent-glow),3px 3px 0 var(--ink),6px 6px 0 rgba(23,19,15,.3);user-select:none;pointer-events:none}.countdown-number.pop{animation:countdownBurst .55s cubic-bezier(.2,.9,.16,1) forwards}@keyframes countdownBurst{0%{transform:scale(.15) rotate(-8deg);opacity:0;filter:blur(8px)}35%{transform:scale(1.3) rotate(3deg);opacity:1;filter:blur(0)}55%{transform:scale(.9) rotate(-1deg)}to{transform:scale(1) rotate(0);opacity:1;filter:blur(0)}}.countdown-number.go.pop{animation:countdownGoBurst .5s cubic-bezier(.2,.9,.16,1) forwards}@keyframes countdownGoBurst{0%{transform:scale(.1);opacity:0;filter:blur(12px)}30%{transform:scale(1.5);opacity:1;filter:blur(0)}50%{transform:scale(.85)}to{transform:scale(1);opacity:1;filter:blur(0)}}.wizard-overlay{position:fixed;inset:0;background:#0000008c;z-index:500;display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .3s ease-out}html[data-first-visit] .wizard-overlay{background:radial-gradient(circle at 10% 8%,rgba(255,139,56,.22),transparent 28rem),radial-gradient(circle at 88% 12%,rgba(90,169,255,.18),transparent 24rem),linear-gradient(135deg,rgba(23,19,15,.035) 25%,transparent 25%) 0 0 / 18px 18px,#fff6df;backdrop-filter:none}.wizard-overlay.active{display:flex}.wizard-loading{display:none;flex-direction:column;align-items:center;gap:16px}.wizard-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.12);border-top-color:var(--accent);border-radius:50%;animation:wz-spin .7s linear infinite}@keyframes wz-spin{to{transform:rotate(360deg)}}.wizard-overlay.wizard-ready .wizard-loading{display:none}.wizard-overlay.wizard-ready .wizard-card{display:flex}.wizard-card{background:#fffaf0;border:3px solid #17130f;box-shadow:11px 11px #17130f;border-radius:28px;width:560px;max-width:calc(100vw - 32px);max-height:calc(100vh - 48px);padding:32px 28px 48px;text-align:center;animation:wizardIn .4s cubic-bezier(.2,.9,.16,1);position:relative;display:flex;flex-direction:column;overflow-y:auto}@keyframes wizardIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.wizard-step-dots{display:flex;justify-content:center;gap:10px;margin-bottom:24px}.wizard-dot{width:10px;height:10px;border-radius:50%;background:var(--border);border:var(--toon-line-thin);transition:background .3s,transform .3s}.wizard-dot.active{background:var(--accent);transform:scale(1.3)}.wizard-dot.done{background:var(--ink)}.wizard-panels{position:relative;display:flex;flex-direction:column;flex:1;min-height:0}.wizard-panel{display:none;flex-direction:column;align-items:center;gap:16px;padding-bottom:20px;animation:wizardSlide .35s ease-out;width:100%}.wizard-panel.active{display:flex}.wizard-scroll{max-height:min(300px,45vh);overflow-y:auto;width:100%;padding:0 28px;scrollbar-width:thin;display:flex;flex-direction:column;gap:8px}@keyframes wizardSlide{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.wizard-welcome{margin-bottom:4px}.wizard-logo{width:204px;height:auto;margin-bottom:4px}.wizard-welcome-text{font-family:var(--display-font);font-weight:950;font-size:var(--text-sm);color:var(--text-secondary);margin:0}.wizard-title{font-family:var(--display-font);font-weight:950;font-size:clamp(var(--text-lg),4vw,2rem);margin:0 0 8px;letter-spacing:-.02em}.wizard-lang-choices{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}#settingsLangChoiceGroup{gap:6px}.wizard-lang-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 32px;border:var(--toon-line-thin);border-radius:var(--radius-lg);background:var(--surface-alt);box-shadow:var(--toon-shadow-sm);cursor:pointer;font-family:var(--display-font);font-weight:950;font-size:var(--text-md);color:var(--ink);transition:transform .15s,box-shadow .15s,border-color .15s;min-width:140px}.wizard-lang-btn:hover,.wizard-lang-btn:focus-visible{transform:translateY(-2px);box-shadow:var(--toon-shadow-md);border-color:var(--accent)}.wizard-lang-sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent);background:var(--accent-light)}.wizard-lang-flag{font-size:2.5rem;line-height:1}.wizard-level-choices{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.wizard-level-btn{padding:10px 18px;border:var(--toon-line-thin);border-radius:var(--radius-full);background:var(--surface-alt);box-shadow:var(--toon-shadow-sm);cursor:pointer;font-family:var(--display-font);font-weight:950;font-size:var(--text-base);color:var(--ink);transition:transform .15s,box-shadow .15s,border-color .15s}.wizard-level-btn:hover,.wizard-level-btn:focus-visible{transform:translateY(-1px);box-shadow:var(--toon-shadow-md)}.wizard-level-btn.no-content{opacity:.35;cursor:not-allowed;pointer-events:none}.wizard-level-btn.wizard-level-sel{outline:2px solid var(--accent);outline-offset:-1px}.wizard-back{margin-top:8px;padding:6px 16px;border:none;background:transparent;color:var(--text-secondary);font-family:var(--display-font);font-weight:700;font-size:var(--text-sm);cursor:pointer}.wizard-back:hover{color:var(--ink)}.tour-overlay{display:none;position:fixed;inset:0;z-index:9999;pointer-events:none}.tour-overlay.active{display:block}.tour-backdrop{position:fixed;inset:0;background:#17130fa6;z-index:0;pointer-events:none}.tour-highlight{position:fixed;z-index:1;border-radius:var(--radius);box-shadow:0 0 0 4px var(--accent),0 0 0 9999px #17130f8c;pointer-events:none;transition:all .3s ease}.tour-bubble{position:fixed;z-index:9998;background:var(--surface);border:var(--toon-line);border-radius:var(--radius-lg);box-shadow:var(--toon-shadow-lg);padding:20px 22px 16px;max-width:340px;min-width:220px;font-family:var(--body-font);transition:all .3s ease;pointer-events:all}.tour-step-counter{font-family:var(--display-font);font-size:var(--text-xs);font-weight:700;color:var(--text-muted);margin-bottom:6px}.tour-share-icon{display:flex;justify-content:center;margin:2px 0 10px}.tour-share-icon svg{width:44px;height:44px;color:var(--ink);filter:drop-shadow(0 2px 0 var(--ink))}.tour-inline-icon{display:inline-grid;width:1.35em;height:1.35em;margin:0 .12em;vertical-align:-.28em;place-items:center;color:var(--ink)}.tour-inline-icon svg{width:1em;height:1em}.tour-message{margin:0 0 10px;font-size:var(--text-base);font-weight:700;color:var(--text);line-height:1.5}.tour-bubble-install{width:min(680px,calc(100vw - 32px));min-width:0;max-width:none;max-height:calc(100vh - 32px)}.tour-bubble-install .tour-message{max-height:calc(100vh - 150px);overflow:auto;overscroll-behavior:contain}.pwa-install-guide-compact{display:grid;gap:10px}.pwa-install-guide-compact .pwa-guide-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.pwa-install-guide-compact .pwa-guide-toolbar-title,.pwa-install-guide-compact .pwa-guide-title,.pwa-install-guide-compact .pwa-guide-status,.pwa-install-guide-compact .pwa-guide-field,.pwa-install-guide-compact .pwa-guide-recommendation strong{font-weight:950}.pwa-install-guide-compact .pwa-guide-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pwa-install-guide-compact .pwa-guide-field{display:grid;gap:4px;color:var(--text-muted);font-size:var(--text-xs)}.pwa-install-guide-compact .pwa-guide-field select{width:100%;min-width:0;padding:7px 28px 7px 9px;border:var(--toon-line-thin);border-radius:var(--radius);background:var(--surface-alt);color:var(--text);font-family:var(--body-font);font-size:var(--text-sm);font-weight:700}.pwa-install-guide-compact .pwa-guide-status{justify-self:start;padding:5px 9px;border:var(--toon-line-thin);border-radius:var(--radius-full);background:var(--accent-light);font-size:var(--text-xs)}.pwa-install-guide-compact .pwa-guide-status-unsupported,.pwa-install-guide-compact .pwa-guide-status-unknown{background:var(--warning-light)}.pwa-install-guide-compact .pwa-guide-status-installed{background:var(--surface-alt)}.pwa-install-guide-compact .pwa-guide-detected,.pwa-install-guide-compact .pwa-guide-change-hint,.pwa-install-guide-compact .pwa-guide-explore,.pwa-install-guide-compact .pwa-guide-recommendation p{margin:0;color:var(--text-muted);font-size:var(--text-xs);font-weight:700}.pwa-install-guide-compact .pwa-guide-actions{display:grid;justify-items:start;gap:8px}.pwa-install-guide-compact .pwa-guide-explore{justify-self:start;padding:0;border:0;appearance:none;background:none;font-family:var(--body-font);font-size:var(--text-xs);font-weight:700;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.pwa-install-guide-compact .pwa-guide-explore:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.pwa-install-guide-compact .pwa-guide-title{margin:0;font-size:var(--text-md)}.pwa-install-guide-compact .pwa-guide-steps,.pwa-install-guide-compact .pwa-guide-recommendation ul{display:grid;gap:7px;margin:0;padding-left:22px;color:var(--text);font-size:var(--text-sm);font-weight:700;line-height:1.4}.pwa-install-guide-compact .pwa-guide-steps li::marker,.pwa-install-guide-compact .pwa-guide-recommendation li::marker{color:var(--accent);font-weight:950}.pwa-install-guide-compact .pwa-guide-recommendation{display:grid;gap:6px;padding:10px 12px;border:var(--toon-line-thin);border-radius:var(--radius);background:var(--surface-alt)}.tour-callout-ring{position:fixed;z-index:4100;pointer-events:none;box-shadow:0 0 0 3px var(--accent);background:transparent}.tour-callout-connector{position:fixed;z-index:4050;pointer-events:none;overflow:visible}.tour-callout-line{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}.tour-callout-arrow{fill:var(--ink)}.tour-callout{position:fixed;z-index:5100;background:var(--surface);border:var(--toon-line-thin);border-radius:var(--radius);box-shadow:var(--toon-shadow-sm);padding:10px 12px;max-width:200px;font-family:var(--body-font);pointer-events:none}.tour-callout-message{margin:0;font-size:var(--text-sm);font-weight:700;color:var(--text);line-height:1.4}.tour-hint{margin:0 0 12px;font-family:var(--display-font);font-size:var(--text-xs);font-weight:700;color:var(--accent);text-align:center}.tour-actions{display:flex;justify-content:space-between;align-items:center}.tour-btn{font-family:var(--body-font);font-size:var(--text-sm);font-weight:700;padding:7px 16px;border-radius:var(--radius-full);border:var(--toon-line-thin);cursor:pointer;transition:all .15s}.tour-btn-back{background:transparent;color:var(--text-muted);border-color:transparent}.tour-btn-back:hover{color:var(--text)}.tour-btn-next{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:2px 2px 0 var(--ink)}.tour-btn-next:hover{box-shadow:3px 3px 0 var(--ink);transform:translate(-1px,-1px)}.tour-btn-next.pulse{animation:tourNextPulse 1.8s ease-in-out infinite}@keyframes tourNextPulse{0%,to{box-shadow:2px 2px 0 var(--ink)}50%{box-shadow:2px 2px 0 var(--ink),0 0 0 6px color-mix(in srgb,var(--accent) 30%,transparent)}}.mp-overlay{position:fixed;inset:0;background:#0006;z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .32s ease,backdrop-filter .32s ease,-webkit-backdrop-filter .32s ease}.mp-overlay.open{opacity:1;pointer-events:auto}.mp-panel{position:fixed;top:0;left:0;bottom:0;width:428px;max-width:94vw;background:var(--surface);border-right:1.5px solid var(--border);box-shadow:6px 0 32px #0000002e;z-index:201;display:flex;flex-direction:column;opacity:0;transform:translate(-116%) scale(.98);transition:transform .42s cubic-bezier(.2,.9,.16,1),opacity .28s ease,box-shadow .42s ease;will-change:transform,opacity}.mp-panel.open{opacity:1;transform:translate(0) scale(1)}.mp-head{height:52px;min-height:52px;display:flex;align-items:center;padding:0 8px 0 18px;flex-shrink:0}.mp-title{flex:1;font-size:var(--text-base);display:flex;align-items:center;gap:8px}.mp-title-icon{width:18px;height:18px;flex-shrink:0;color:var(--accent);font-weight:700;letter-spacing:-.01em}.mp-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0}.mp-close:hover{color:var(--text);background:var(--gray-100)}#btnMaterials{order:1}#btnMyImport{order:2}.brand>.controls-sep{order:4}#coinBadge{order:5}.mi-book-header{display:flex;align-items:center;gap:8px;min-height:50px;padding:8px 10px 8px 16px;border-bottom:1px solid var(--border-light)}.mi-level-spacer{height:0;box-sizing:border-box;border-bottom:1.5px solid var(--ink)!important}.mi-book-header .mi-book-title{flex:1;min-width:0;color:color-mix(in srgb,var(--repeat-color) 60%,transparent);font-family:var(--display-font);font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mi-book-icon{color:color-mix(in srgb,var(--repeat-color) 60%,transparent)}.mi-book-title-input{flex:1;min-width:0;padding:5px 7px;border:1.5px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}.mi-icon-btn{width:30px;height:30px;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:color-mix(in srgb,var(--repeat-color) 60%,transparent);cursor:pointer;flex-shrink:0;font-family:var(--display-font);font-size:var(--text-base)}.mi-icon-btn:hover{color:var(--accent);background:var(--accent-light)}.mi-episode-list{display:none;padding:2px 0 6px}.mi-book.expanded .mi-episode-list{display:block}.mi-episode-row{position:relative;display:flex;align-items:center;gap:8px;min-height:42px;padding:7px 10px 7px 48px}.mi-episode-row:hover{background:color-mix(in srgb,var(--accent) 20%,var(--surface))}.mi-episode-row.active{background:color-mix(in srgb,var(--accent) 40%,var(--surface));box-shadow:inset 4px 0 0 var(--accent)}.mi-episode-row.active .mi-episode-title,.mi-episode-row.active .mi-exercise-num{color:var(--accent);font-weight:800}.mi-episode-title{flex:1;min-width:0;color:color-mix(in srgb,var(--repeat-color) 60%,transparent);font-family:var(--display-font);font-weight:950;font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mi-episode-row .mi-exercise-num{min-width:24px;color:color-mix(in srgb,var(--repeat-color) 60%,transparent);font-size:var(--text-2xs);font-family:var(--display-font)}.mi-empty{padding:36px 24px;text-align:center;color:var(--text-muted)}.mi-panel-actions{display:flex;flex-direction:column;gap:10px;margin:14px 16px 18px;width:calc(100% - 32px)}.mi-add-book{display:flex;align-items:center;justify-content:center;width:100%;margin:0;font-weight:700}#miImportPictureBtn{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-weight:700}.mp-create-new-content{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 32px);margin:18px 16px 24px}.mi-editor{width:820px;height:min(720px,88vh)}.mi-editor-body{display:flex;flex-direction:column;gap:8px;min-height:0}.mi-editor-title-input,.mi-editor-text{width:100%;box-sizing:border-box;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--body-font);font-size:var(--text-sm);padding:10px 12px}.mi-editor-title-input:focus,.mi-editor-text:focus{outline:2px solid var(--accent);outline-offset:1px}.mi-editor-title-input{font-weight:700}.mi-editor-text{flex:1;min-height:320px;max-height:none;resize:none;line-height:1.5}.mi-editor-hint{margin:2px 0 0;font-size:var(--text-xs);font-weight:700;color:var(--text-muted);line-height:1.45}.mi-editor-body .create-label{margin:4px 0 0}#miCharCount{float:right;color:var(--text-muted);font-weight:400}.mp-lang-bar{display:flex;padding:12px 14px 6px;gap:8px;flex-shrink:0;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.mp-lang-bar::-webkit-scrollbar{display:none}.mp-lang-btn{font-family:var(--body-font);font-size:var(--text-xs);font-weight:700;padding:7px 14px;border:1.5px solid var(--border);border-radius:var(--radius-full);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;flex-shrink:0;min-height:36px}.mp-lang-btn:hover{border-color:var(--accent);color:var(--accent)}.mp-lang-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.mp-level-bar{display:flex;padding:6px 14px 10px;gap:6px;overflow-x:auto;flex-shrink:0;border-bottom:1.5px solid var(--border-light);scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain}.mp-level-bar::-webkit-scrollbar{display:none}.mp-level-pill{font-family:var(--body-font);font-size:var(--text-2xs);font-weight:700;padding:5px 11px;border:1.5px solid var(--border);border-radius:var(--radius-full);background:transparent;color:var(--text-muted);cursor:pointer;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;transition:all .15s;flex-shrink:0;min-height:30px}.mp-level-pill:hover{color:var(--text-secondary);border-color:var(--border)}.mp-level-pill.has-content{color:var(--text-secondary)}.mp-level-pill.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent);font-weight:700}.mp-tree{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:6px 0 48px;-webkit-overflow-scrolling:touch}.mp-tree::-webkit-scrollbar{width:3px}.mp-tree::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.mp-part-header{display:flex;align-items:center;gap:8px;padding:13px 16px;cursor:pointer;transition:background .12s;user-select:none;-webkit-user-select:none;min-height:50px}.mp-part-header:hover{background:var(--surface-alt)}.mp-part-header:active{background:var(--accent-light)}.mp-chevron-sm{width:14px;height:14px;color:var(--text-muted);flex-shrink:0;transition:transform .2s var(--ease)}.mp-part.expanded>.mp-part-header .mp-chevron-sm,.mi-book.expanded>.mi-book-header .mp-chevron-sm{transform:rotate(90deg)}.mp-part-label{font-size:var(--text-sm);font-weight:950;font-family:var(--display-font);letter-spacing:-.02em;color:var(--text);flex:1;line-height:1.3;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.mp-part-icon{font-size:var(--text-md);flex-shrink:0}.mp-exercises{display:none}.mp-part.expanded>.mp-exercises{display:block}.mp-exercise{position:relative;display:flex;align-items:center;gap:8px;padding:11px 16px 11px 48px;cursor:pointer;transition:background .12s;user-select:none;-webkit-user-select:none;min-height:46px}.mp-exercise:hover{background:color-mix(in srgb,var(--accent) 20%,var(--surface))}.mp-exercise.active{background:color-mix(in srgb,var(--accent) 40%,var(--surface));box-shadow:inset 4px 0 0 var(--accent)}.mp-exercise.locked{opacity:.55;cursor:not-allowed}.mp-exercise.locked:hover{background:transparent}.mp-lock{display:inline-flex;align-items:center;margin-left:auto;color:var(--text-muted)}.mp-lock-icon{width:16px;height:16px}.mp-exercise-user .mp-exercise-num,.mp-exercise-user .mp-exercise-title,.mp-exercise-user.active .mp-exercise-num,.mp-exercise-user.active .mp-exercise-title{color:var(--accent)}.mp-exercise-num{font-size:var(--text-2xs);font-weight:700;font-family:var(--display-font);color:var(--text-muted);min-width:24px;flex-shrink:0}.mp-exercise.active .mp-exercise-num{color:var(--accent)}.mp-exercise-title{font-size:var(--text-sm);font-weight:400;font-family:var(--body-font);color:var(--text);flex:1;line-height:1.35;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.mp-exercise.active .mp-exercise-title{color:var(--accent)}.episode-mastery-list{margin-left:auto}.episode-mastery-list .episode-mastery-coin{width:15px;height:15px}.episode-paid-unlock-key{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;margin-left:4px;margin-right:2px;color:var(--text-secondary);opacity:.7}.episode-paid-unlock-key svg{width:13px;height:13px}.mp-empty{padding:40px 24px;text-align:center;color:var(--text-muted);font-size:var(--text-sm);line-height:1.7}.mp-trigger{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;height:48px;border-radius:var(--radius-full);background:var(--surface);border:1.5px solid var(--border);color:var(--text)}.mp-trigger svg{width:18px;height:18px;flex-shrink:0}#btnMaterialsCtx{white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}body{font-family:var(--font);background:var(--bg);background:radial-gradient(circle at 10% 6%,color-mix(in srgb,var(--orange) 20%,transparent),transparent 28rem),radial-gradient(circle at 92% 12%,color-mix(in srgb,var(--launch-blue) 16%,transparent),transparent 24rem),linear-gradient(135deg,rgba(23,19,15,.035) 25%,transparent 25%) 0 0 / 18px 18px,var(--bg)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.28;background-image:linear-gradient(rgba(23,19,15,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(23,19,15,.035) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 82%);mask-image:linear-gradient(to bottom,black,transparent 82%);z-index:0}@supports (color: color-mix(in srgb,red,blue)){body:before{mix-blend-mode:multiply}}body>*{position:relative}header{margin:calc(16px / var(--zoom, 1)) calc(26px / var(--zoom, 1)) 0;height:calc(var(--header-h) + 8px);min-height:calc(var(--header-h) + 8px);border:var(--toon-line);border-radius:var(--radius-full);background:var(--surface);background:color-mix(in srgb,var(--surface) 86%,var(--cream));box-shadow:var(--toon-shadow-sm);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.brand-logo{height:52px;filter:drop-shadow(2px 2px 0 var(--ink))}#top-panel{border:var(--toon-line-thin);border-radius:var(--radius-lg);background:radial-gradient(circle at 96% 10%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 18rem),color-mix(in srgb,var(--surface) 90%,var(--cream));box-shadow:var(--toon-shadow-sm)}#dictationArea{border:var(--toon-line-thin);box-shadow:var(--toon-shadow-sm)}.exercise-badge,.top-popover-head span,.mp-title,.settings-tab-btn,.voice-popover label,.setting-label,.time-display,#coinBalance,.mp-part-label,.mp-exercise-title{font-family:var(--display-font);font-weight:950;letter-spacing:-.02em}.exercise-badge{display:inline-flex;width:max-content;padding:7px 12px;border:var(--toon-line-thin);border-radius:var(--radius-full);color:#fff;background:var(--coral);box-shadow:3px 3px 0 var(--ink)}#top-panel h2{font-weight:950}#top-panel h2{margin-top:12px;font-size:var(--text-lg)}.sentence{font-size:var(--text-md);border-radius:18px;transition:background .2s,color .2s,transform .2s,filter .3s,box-shadow .2s}.sentence.active{background:var(--coral);color:var(--text);box-shadow:4px 4px 0 var(--ink)}.sentence.active.repeat{background:var(--repeat-color-bg);box-shadow:4px 4px 0 var(--ink);animation:none}.transcript-blurred .sentence.active,.transcript-blurred .sentence.active.repeat{box-shadow:4px 4px 0 var(--ink)}.progress-wrap{border:var(--toon-line-thin);background:var(--cream);box-shadow:inset 0 2px #17130f1a}.progress-fill{background:linear-gradient(90deg,var(--repeat-color),var(--repeat-color-light));opacity:1}.progress-thumb{border:var(--toon-line-thin);background:var(--accent);box-shadow:3px 3px 0 var(--ink)}.btn,.mp-lang-btn,.mp-level-pill,.voice-choice-btn,.font-family-options button,.theme-preset-dot{border:var(--toon-line-thin);border-radius:16px;background:var(--cream);color:var(--ink);box-shadow:3px 3px 0 var(--ink);font-family:var(--display-font);font-weight:700;transition:transform .15s var(--ease),box-shadow .15s var(--ease),background .15s}.font-family-options button[data-font=launch],.font-family-options button[data-font=launch].active{font-weight:700}.font-family-options button[data-font=mono]{letter-spacing:-.03em}.btn:hover,.mp-lang-btn:hover,.mp-level-pill:hover,.voice-choice-btn:hover,.font-family-options button:hover{transform:translate(1px,1px);border-color:var(--ink);background:var(--surface);box-shadow:2px 2px 0 var(--ink)}.btn:active,.mp-lang-btn:active,.mp-level-pill:active,.voice-choice-btn:active,.font-family-options button:active{transform:translate(3px,3px);box-shadow:none}.voice-choice-btn.voice-cache-not-cached:hover{transform:none;box-shadow:3px 3px 0 var(--ink);background:var(--cream)}.voice-choice-btn.voice-cache-not-cached:active{transform:none;box-shadow:3px 3px 0 var(--ink);border-color:var(--border)}.btn.primary,.btn-icon-pill.active,.mp-lang-btn.active{border-color:var(--ink);background:var(--coral);color:#fff;box-shadow:4px 4px 0 var(--ink);font-weight:950;text-shadow:0 0 .5px rgba(255,255,255,.6)}.btn.ab-active{box-shadow:4px 4px 0 var(--ink)}.btn.primary:hover,.btn-icon-pill.active:hover{background:var(--orange);box-shadow:2px 2px 0 var(--ink)}.btn.ab-active:hover{box-shadow:2px 2px 0 var(--ink)}.btn.icon-only,.btn.with-label-icon,.btn-icon-pill,.mp-trigger,.state-trigger-pill,.state-trigger-btn{border-radius:var(--radius-full)}.voice-cache-delete-btn{border:var(--toon-line-thin);border-radius:50%;background:var(--cream);color:var(--ink);box-shadow:3px 3px 0 var(--ink);font-family:var(--display-font);font-weight:700;opacity:1;width:26px;height:26px}.voice-cache-delete-btn svg{width:11px;height:11px}.voice-cache-delete-btn:hover{background:var(--danger-light);color:var(--danger);border-color:var(--danger);transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}.voice-cache-delete-btn:active{transform:translate(3px,3px);box-shadow:none}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--display-font);font-weight:700;font-size:var(--text-sm);color:var(--ink)}.checkbox-label input[type=checkbox]{appearance:none;-webkit-appearance:none;width:26px;height:26px;border:var(--toon-line-thin);border-radius:6px;background:var(--cream);box-shadow:2px 2px 0 var(--ink);cursor:pointer;flex-shrink:0;transform:translateY(-4px);transition:background .15s,box-shadow .15s,transform .15s}.checkbox-label input[type=checkbox]:checked{background:var(--accent);box-shadow:1px 1px 0 var(--ink);transform:translate(1px,-3px)}.checkbox-label input[type=checkbox]:checked:after{content:"";display:block;width:7px;height:12px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg) translate(1px,-1px);margin:4px 0 0 7px}.voice-cache-item{border:var(--toon-line-thin);border-radius:var(--radius-full);background:var(--cream);box-shadow:2px 2px 0 var(--ink)}.voice-cache-storage-bar{border:var(--toon-line-thin);border-radius:4px;background:var(--border);box-shadow:2px 2px 0 var(--ink)}.voice-cache-storage-bar-fill{border-radius:4px;background:var(--accent)}.voice-cache-dot.not-cached{border:var(--toon-line-thin);background:var(--cream);color:var(--ink);box-shadow:2px 2px 0 var(--ink);opacity:1;width:24px;height:24px}.voice-cache-dot.not-cached:hover{background:var(--surface);transform:translate(1px,1px);box-shadow:1px 1px 0 var(--ink)}.voice-cache-dot.preloading{border:var(--toon-line-thin);background:var(--cream);box-shadow:2px 2px 0 var(--ink);opacity:1;width:24px;height:24px}.state-trigger-pill{border:var(--toon-line-thin);background:var(--cream);box-shadow:2px 2px 0 var(--ink)}.btn-icon-pill .pill-text,.time-display,#coinBalance{color:var(--ink-soft)}.voice-popover,.font-popover,.score-display,.settings-popover{border:var(--toon-line);border-radius:var(--radius-lg);background:var(--cream);box-shadow:var(--toon-shadow-lg)}.top-popover-head{border-color:var(--ink)}.score-display{background:radial-gradient(circle at 96% 0%,rgba(113,217,158,.26),transparent 10rem),var(--cream)}.score-circle{border:var(--toon-line-thin);box-shadow:3px 3px 0 var(--ink)}.diff-output{border:var(--toon-line-thin);border-radius:var(--radius);background:var(--surface)}.mp-overlay{background:#17130f6b;backdrop-filter:blur(3px)}.mp-panel{margin:14px 0 14px 14px;height:calc(100vh / var(--zoom, 1) - 28px);bottom:auto;border:var(--toon-line);border-radius:var(--radius-lg);box-sizing:border-box;background:radial-gradient(circle at 80% 0%,color-mix(in srgb,var(--launch-blue) 18%,transparent),transparent 16rem),var(--cream);box-shadow:var(--toon-shadow-lg)}.mp-level-bar{border-color:var(--ink)}.mp-title{color:var(--ink);font-size:var(--text-md);font-family:var(--display-font);font-weight:950;letter-spacing:-.02em}.mp-level-pill.active,.voice-choice-btn.active,.font-family-options button.active{border-color:var(--ink);background:var(--accent);color:#fff;box-shadow:3px 3px 0 var(--ink);font-weight:950;text-shadow:0 0 .5px rgba(255,255,255,.6)}.mp-exercise.active .mp-exercise-title,.mp-exercise.active .mp-exercise-num{color:var(--accent);font-weight:800}.btn-danger{background:var(--pink-400);color:#fff;border-color:transparent}.btn-danger:hover{background:#e53e3e;border-color:transparent}.btn-danger:active{background:#c53030}.setting-group{margin-bottom:16px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}.setting-row-standalone{gap:8px}.setting-row-standalone>:not(.setting-label):not(.btn):not(.checkbox-label){flex:1 1 0;min-width:0}.setting-row:has(.checkbox-label) .setting-label{flex:1 1 0}.setting-row-standalone .btn{flex-shrink:0}.settings-input{border:var(--toon-line-thin);border-radius:var(--radius-sm);padding:6px 10px;font-size:var(--text-sm);font-family:var(--body-font);font-weight:700;background:var(--surface);color:var(--ink);flex:1;min-width:0}.setting-label{font-family:var(--display-font);font-weight:950;font-size:var(--text-base);color:var(--text);flex:0 0 40%;min-width:0;margin-bottom:2px;letter-spacing:-.02em}#settingsTab_general .setting-label{flex:0 0 40%}.setting-section-title{font-family:var(--display-font);font-weight:950;font-size:var(--text-base);color:var(--text);letter-spacing:-.02em;margin-right:auto}.setting-row-reset{display:flex;align-items:center;justify-content:flex-end;padding:4px 0}.reset-full-btn{width:70%;justify-content:center}.reset-full-btn:hover{color:#e53e3e}.reset-full-btn:active{color:#c53030}#btnResetFactory.reset-full-btn:hover{background:var(--danger);color:#fff;border-color:var(--danger)}#btnResetFactory.reset-full-btn:active{background:color-mix(in srgb,var(--danger) 82%,var(--ink) 18%);color:#fff;border-color:color-mix(in srgb,var(--danger) 82%,var(--ink) 18%)}.reset-full-btn.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.reset-full-btn.btn-danger:hover{background:var(--danger);color:#fff;border-color:var(--danger)}.reset-full-btn.btn-danger:active{background:color-mix(in srgb,var(--danger) 82%,var(--ink) 18%);color:#fff}.feedback-form{display:flex;flex-direction:column;gap:8px;max-width:620px;width:100%}.feedback-form label{margin-top:4px}.feedback-select,.feedback-input,.feedback-message{width:100%;box-sizing:border-box}.feedback-message{min-height:132px;resize:vertical;border:var(--toon-line-thin);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);color:var(--ink);font:700 var(--text-sm) var(--body-font)}.feedback-message:focus,.feedback-input:focus,.feedback-select:focus{outline:3px solid rgba(82,121,255,.25);outline-offset:1px}.feedback-count{align-self:flex-end;color:var(--text-muted);font:700 var(--text-xs) var(--body-font)}.feedback-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.feedback-status{min-height:20px;color:var(--text-secondary);font:800 var(--text-sm) var(--body-font)}.feedback-status.error{color:var(--danger)}.feedback-status.success{color:var(--success, #257a4a)}.feedback-submit{align-self:flex-start}.setting-hint{font-family:var(--body-font);font-weight:700;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4;margin:0 0 4px}#voiceManualPickHint{margin-top:8px;margin-bottom:0}#voiceHdDeviceHint{margin-top:6px;margin-bottom:0}.voice-slot-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:var(--radius-full);font-family:var(--body-font);font-size:var(--text-2xs);font-weight:950;line-height:1;flex-shrink:0;background:var(--ink);color:var(--cream)}.voice-slot-badge[hidden]{display:none}.voice-manual-pickers .voice-display-card.selection-locked,.voice-manual-pickers .voice-display-card.selection-locked:hover,.voice-manual-pickers .voice-display-card.selection-locked:active{border-color:var(--border);background:var(--cream);color:var(--text-secondary);box-shadow:3px 3px 0 var(--ink);cursor:default;transform:none}.voice-manual-pickers .voice-display-card.active,.voice-manual-pickers .voice-display-card.active:hover,.voice-manual-pickers .voice-display-card.active:active{border-color:var(--ink);background:var(--accent);color:#fff;box-shadow:3px 3px 0 var(--ink)}.voice-manual-pickers .voice-display-card.active .voice-slot-badge{background:#fff;color:var(--accent)}.voice-manual-pickers .voice-display-card .voice-cache-dot.not-cached{cursor:pointer}.voice-manual-pickers.is-random-locked .voice-choice-btn{color:var(--text-muted);border-color:var(--border);cursor:default;box-shadow:none;transform:none}.voice-manual-pickers.is-random-locked .voice-choice-btn:hover,.voice-manual-pickers.is-random-locked .voice-choice-btn:active{border-color:var(--border);color:var(--text-muted);background:var(--cream);transform:none;box-shadow:none}.voice-manual-pickers.is-random-locked .voice-choice-btn.active{background:var(--accent-light);border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 2px var(--accent-glow)}.voice-manual-pickers.is-random-locked .voice-choice-btn .voice-flag{opacity:.45}.voice-manual-pickers.is-random-locked .voice-cache-dot{pointer-events:auto;cursor:pointer}.voice-manual-pickers.is-random-locked .voice-preview-btn{pointer-events:auto}.voice-manual-pickers.is-random-locked .voice-preview-btn.is-ready{cursor:pointer;color:var(--ink);border-color:var(--ink);background:var(--cream);opacity:.95}.voice-manual-pickers.is-random-locked .voice-preview-btn.is-disabled{pointer-events:none;opacity:.4}.voice-manual-pickers.is-random-locked .voice-choice-btn.active .voice-preview-btn.is-ready,.voice-manual-pickers .voice-display-card.active .voice-preview-btn.is-ready{color:var(--ink);border-color:var(--ink);background:var(--cream);opacity:1}.voice-manual-pickers.is-random-locked .voice-choice-btn.active .voice-preview-btn.is-disabled,.voice-manual-pickers .voice-display-card.active .voice-preview-btn.is-disabled{color:var(--ink);border-color:var(--border);background:var(--cream);opacity:.55}.voice-manual-pickers .voice-display-card.active .voice-preview-btn.is-ready:hover,.voice-manual-pickers .voice-display-card.active .voice-preview-btn.is-previewing,.voice-manual-pickers.is-random-locked .voice-preview-btn.is-previewing{color:var(--accent);border-color:var(--accent);background:var(--cream);opacity:1}.voice-manual-pickers .voice-display-card.active .voice-cache-dot.cached{color:var(--ink);border-color:var(--ink);background:var(--cream)}.voice-manual-pickers .voice-display-card.active .voice-cache-dot.not-cached,.voice-manual-pickers .voice-display-card.active .voice-cache-dot.preloading{color:var(--accent);border-color:var(--accent);background:var(--cream)}.create-backdrop{display:none;position:fixed;inset:0;background:#17130f8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:75}.create-backdrop.visible{display:block}.create-modal{display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:640px;max-width:94vw;max-height:88vh;background:var(--surface);border:var(--toon-line);border-radius:var(--radius-lg);box-shadow:var(--toon-shadow-lg);z-index:76;flex-direction:column;font-family:var(--body-font);font-weight:700;overflow:visible}.create-modal.visible{display:flex}.create-top-bar{display:flex;align-items:center;padding:18px 20px 14px;border-bottom:2px solid var(--border);flex-shrink:0;gap:12px}.create-title{font-family:var(--display-font);font-weight:950;font-size:var(--text-md);color:var(--text);flex:1;display:flex;align-items:center;gap:6px}.create-title-icon{width:18px;height:18px;flex-shrink:0}.create-level-select{position:relative;margin-left:auto;margin-right:8px}.create-level-btn{display:flex;align-items:center;gap:5px;font-family:var(--display-font);font-size:var(--text-xs);font-weight:700;padding:3px 10px;border-radius:var(--radius-full);border:none;background:var(--accent-light);color:var(--accent);cursor:pointer;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.create-level-btn svg{flex-shrink:0;opacity:.7}.create-level-drop{display:none;position:absolute;top:100%;right:0;margin-top:4px;min-width:160px;max-height:300px;overflow-y:auto;background:var(--surface);border:var(--toon-line-thin);border-radius:var(--radius-sm);box-shadow:var(--toon-shadow-lg);z-index:100}.create-level-drop.open{display:block}.create-level-opt{display:block;width:100%;padding:7px 12px;font-family:var(--display-font);font-size:var(--text-sm);font-weight:700;color:var(--text);background:transparent;border:none;cursor:pointer;text-align:left}.create-level-opt:hover{background:var(--accent-light)}.create-level-opt.selected{color:var(--accent)}.create-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0}.create-close:hover{color:var(--text);background:var(--gray-100)}.create-body{padding:20px 24px;flex:1;overflow-y:auto;scrollbar-gutter:stable}.create-label{display:block;font-size:var(--text-sm);color:var(--text-muted);margin-bottom:10px}.create-episode-count{position:relative}.create-episode-btn{display:flex;align-items:center;gap:6px;font-family:var(--display-font);font-size:var(--text-sm);font-weight:700;padding:6px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.create-episode-btn svg{flex-shrink:0;margin-left:2px}.create-episode-drop{display:none;position:absolute;bottom:100%;left:0;margin-bottom:4px;min-width:100%;max-height:260px;overflow-y:auto;background:var(--surface);border:var(--toon-line-thin);border-radius:var(--radius-sm);box-shadow:var(--toon-shadow);z-index:10}.create-episode-drop.open{display:block}.create-episode-opt{display:block;width:100%;padding:8px 14px;font-family:var(--display-font);font-size:var(--text-sm);font-weight:700;color:var(--text);background:transparent;border:none;cursor:pointer;text-align:left;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis}.create-episode-opt:hover{background:var(--accent-light)}.create-episode-opt.selected{color:var(--accent)}.create-actions-spacer{flex:1}.create-textarea{width:100%;min-height:110px;max-height:240px;padding:14px 16px;font-size:var(--text-md);font-family:var(--body-font);font-weight:700;color:var(--text);background:var(--cream);border:var(--toon-line-thin);border-radius:var(--radius);resize:vertical;outline:none;box-sizing:border-box}.create-textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.create-textarea::placeholder{color:var(--text-muted);font-weight:700;opacity:.7}.create-char-count{text-align:right;font-family:var(--display-font);font-size:var(--text-2xs);font-weight:700;color:var(--text-muted);margin-top:6px}.create-result-title{font-family:var(--display-font);font-weight:950;font-size:var(--text-base);color:var(--text);margin-bottom:10px}.create-result-text{font-size:var(--text-sm);color:var(--text);line-height:1.6}.create-ep-block{margin-bottom:14px}.create-review-paragraph{margin-bottom:12px}.create-review-paragraph:last-child{margin-bottom:0}.create-ep-heading{font-family:var(--display-font);font-weight:950;font-size:var(--text-base);color:var(--text);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.create-toc-item{display:flex;align-items:baseline;gap:8px;padding:3px 0}.create-toc-num{font-size:var(--text-xs);font-weight:700;color:var(--accent);min-width:14px;flex-shrink:0}.create-toc-title{font-size:var(--text-sm);font-weight:700;color:var(--text);line-height:1.5}.create-body#createPage3{overflow-y:auto;max-height:420px}.create-actions,.create-review-actions{display:flex;gap:10px;padding:0 24px 18px;flex-shrink:0}.create-btn-cancel{margin-left:auto}.create-btn-generate svg,.create-btn-add svg{flex-shrink:0}.create-progress-track{width:100%;height:6px;border-radius:var(--radius-full);background:var(--border);overflow:hidden;margin-bottom:10px}.create-progress-fill{height:100%;width:0%;border-radius:var(--radius-full);background:var(--accent);transition:width .5s ease}.create-progress-info{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-muted);margin-bottom:12px}.create-progress-list{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto}.create-progress-list.multi-episode{height:240px;box-sizing:border-box}.create-progress-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:var(--text-sm);color:var(--text-muted)}.create-progress-item.done{color:var(--accent)}.create-progress-item.current{color:var(--text);font-weight:950}.create-progress-dot{width:8px;height:8px;border-radius:50%;background:var(--border);flex-shrink:0}.create-progress-item.done .create-progress-dot{background:var(--accent)}.create-progress-item.current .create-progress-dot{background:var(--accent);animation:createPulse 1s ease-in-out infinite}@keyframes createPulse{0%,to{opacity:1}50%{opacity:.3}}.mp-exercise-delete{display:flex;visibility:hidden;width:28px;height:28px;align-items:center;justify-content:center;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;font-size:var(--text-base);font-weight:700;line-height:1}.mp-exercise:hover .mp-exercise-delete{visibility:visible}.mp-exercise-delete:hover{color:color-mix(in srgb,var(--ink) 55%,#cc3333);background:color-mix(in srgb,var(--accent-light) 60%,#cc3333 10%)}.mp-exercise-user,.mp-exercise-user .mp-exercise-num,.mp-exercise-user .mp-exercise-title,.mp-exercise-user.active .mp-exercise-num,.mp-exercise-user.active .mp-exercise-title,.mp-exercise-user .mp-exercise-delete{color:color-mix(in srgb,var(--repeat-color) 60%,transparent)}.mp-exercise-user.active .mp-exercise-num,.mp-exercise-user.active .mp-exercise-title{color:var(--accent)}.mp-part[data-part-key^=my-episodes]>.mp-part-header .mp-part-label,.mp-part[data-part-key^=my-episodes]>.mp-part-header .mp-part-icon,.mp-part[data-part-key^=my-book-]>.mp-part-header .mp-part-label,.mp-part[data-part-key^=my-book-]>.mp-part-header .mp-part-icon{color:color-mix(in srgb,var(--repeat-color) 60%,transparent)}.mp-icon-svg{width:16px;height:16px;flex-shrink:0}.mp-add-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-full);border:none;background:transparent;color:var(--text-muted);cursor:pointer;flex-shrink:0;font-size:var(--text-base);font-weight:700;line-height:1;margin-left:auto;transition:background .15s,color .15s}.mp-add-btn:hover{color:color-mix(in srgb,var(--accent) 70%,#000);background:var(--accent-light)}.mp-book-delete{visibility:visible!important;margin-left:auto}.coin-badge{display:flex;align-items:center;gap:8px;height:48px;flex-shrink:0}.coin-badge-img{width:36px;height:36px;flex-shrink:0;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.15));position:relative;top:1px}.create-label{font-family:var(--display-font);font-weight:700}.create-result-title,.create-result-text{font-family:var(--font);font-weight:700}.coin-win-overlay{position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#17130fb8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:all;animation:coinWinFadeIn .25s ease-out}.coin-win-overlay.dismiss{animation:coinWinFadeOut .35s ease-in forwards}@keyframes coinWinFadeIn{0%{opacity:0}to{opacity:1}}@keyframes coinWinFadeOut{0%{opacity:1}to{opacity:0}}.coin-win-slots{display:flex;gap:24px;align-items:center}.coin-win-slot{width:100px;height:100px;border-radius:50%;border:2px dashed rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;transition:opacity .25s ease}.coin-win-slot-lg{width:130px;height:130px;border-color:transparent}.coin-win-slot-xl{width:260px;height:260px;border-radius:0;border-color:transparent;pointer-events:none}.coin-win-trunk{width:240px!important;height:240px!important;object-fit:fill!important;image-rendering:auto;transform:translateZ(0);backface-visibility:hidden}.coin-win-slot-coin{width:90px;height:90px;object-fit:contain;filter:drop-shadow(0 4px 16px rgba(0,0,0,.4));opacity:0;transform:scale(0) rotateY(180deg)}.coin-win-slot-coin.won{animation:coinWinSlotFlip .5s var(--slot-delay, 0s) cubic-bezier(.34,1.56,.64,1) forwards}@keyframes coinWinSlotFlip{0%{opacity:0;transform:scale(0) rotateY(180deg)}to{opacity:1;transform:scale(1) rotateY(0)}}.coin-win-single{width:120px;height:120px;object-fit:contain;animation:coinWinSingleBounce .55s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes coinWinSingleBounce{0%{transform:scale(0) rotate(-20deg);opacity:0}60%{transform:scale(1.12) rotate(3deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.coin-win-label{font-family:var(--display-font);font-weight:950;font-size:2.2rem;color:var(--white);text-shadow:0 2px 12px rgba(0,0,0,.5);text-align:center;opacity:0;animation:coinWinLabelBounce .6s .2s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes coinWinLabelBounce{0%{opacity:0;transform:scale(.3) translateY(20px)}60%{opacity:1;transform:scale(1.08) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes coinWinLabelIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.coin-bonus-badge{position:fixed;font-family:var(--display-font);font-weight:950;font-size:var(--text-lg);color:var(--amber-400);text-shadow:0 0 3px rgba(0,0,0,.5),1px 1px 0 rgba(0,0,0,.45),-1px -1px 0 rgba(0,0,0,.45),1px -1px 0 rgba(0,0,0,.45),-1px 1px 0 rgba(0,0,0,.45);pointer-events:none;z-index:10001;opacity:0;animation:coinBonusRise 2.5s ease-out forwards}@keyframes coinBonusRise{0%{transform:translate(-50%) scale(1);opacity:1}to{transform:translate(-50%,-60px) scale(.8);opacity:0}}.coin-particle{position:fixed;z-index:10001;pointer-events:none;border-radius:50%;animation:coinParticleBurst var(--dur) var(--delay) ease-out forwards}@keyframes coinParticleBurst{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}.coin-confetti{position:fixed;z-index:10001;pointer-events:none;border-radius:2px;animation:coinConfettiFall var(--dur) var(--delay) linear forwards}@keyframes coinConfettiFall{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translate(var(--dx),105vh) rotate(var(--rot));opacity:0}}.coin-win-collect{font-family:var(--display-font);font-weight:950;font-size:var(--text-base);padding:10px 32px;border-radius:var(--radius-full);border:none;cursor:pointer;background:#fbbf24;color:#17130f;box-shadow:0 0 20px #fbbf2459,0 4px 12px #0000004d;transition:transform .15s ease,box-shadow .15s ease;opacity:0;animation:coinWinLabelIn .35s .5s ease-out forwards}.coin-win-collect:hover{transform:scale(1.05);box-shadow:0 0 28px #fbbf2480,0 6px 16px #00000059}.coin-win-collect:active{transform:scale(.97)}.coin-shockwave{position:fixed;z-index:10000;pointer-events:none;border-radius:50%;border:3px solid #fbbf24;box-shadow:0 0 20px #fbbf2499,0 0 60px #fbbf244d;animation:coinShockwave var(--sw-dur, .6s) ease-out forwards}@keyframes coinShockwave{0%{transform:translate(-50%,-50%) scale(0);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.coin-fly{position:fixed;z-index:10001;pointer-events:none;object-fit:contain;filter:drop-shadow(0 4px 12px rgba(0,0,0,.35))}#btnClearInput{position:absolute!important;top:12px;right:17px;z-index:1}#btnClearInput:hover{box-shadow:none}#globalTooltip{position:fixed;padding:4px 10px;border-radius:var(--radius-sm);background:var(--ink);color:var(--bg);font-family:var(--body-font);font-size:var(--text-xs);font-weight:700;white-space:nowrap;max-width:calc(100vw - 16px);overflow:hidden;text-overflow:ellipsis;pointer-events:none;opacity:0;z-index:10000;transition:opacity .1s ease}#globalTooltip.show{opacity:1}.dictation-sticky-head{overflow:visible!important}@supports not (color: color-mix(in srgb,red,blue)){.wizard-mode-btn{background:var(--cream)}.wizard-mode-btn.wizard-mode-sel,.wizard-mode-btn:hover,.wizard-mode-btn.wizard-mode-sel:hover,.wizard-mode-btn:focus-visible{background:var(--surface-alt)}.wizard-mode-kicker,.wizard-mode-pro{color:var(--mode-color)}.speaker-label{border:1.5px solid var(--accent);background:var(--accent-light)}.conversation-turn:nth-child(2n) .speaker-label{border-color:var(--repeat-color, var(--accent));background:var(--surface-alt)}.merge-option-device,.merge-option-cloud,.mi-episode-row:hover,.mp-exercise:hover{background:var(--surface-alt)}.mi-episode-row.active,.mp-exercise.active{background:var(--accent-light)}.mp-exercise-user,.mp-exercise-user .mp-exercise-num,.mp-exercise-user .mp-exercise-title,.mp-exercise-user.active .mp-exercise-num,.mp-exercise-user.active .mp-exercise-title,.mp-exercise-user .mp-exercise-delete,.mp-part[data-part-key^=my-episodes]>.mp-part-header .mp-part-label,.mp-part[data-part-key^=my-episodes]>.mp-part-header .mp-part-icon,.mp-part[data-part-key^=my-book-]>.mp-part-header .mp-part-label,.mp-part[data-part-key^=my-book-]>.mp-part-header .mp-part-icon{color:var(--text-secondary)}.mp-exercise-user.active .mp-exercise-num,.mp-exercise-user.active .mp-exercise-title{color:var(--accent)}.mp-exercise-delete:hover{color:#c33;background:var(--accent-light)}#btnResetFactory.reset-full-btn:active,.reset-full-btn.btn-danger:active{background:var(--danger);border-color:var(--danger)}}
