@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/ibm-plex-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:100 700;font-display:swap;src:url(/fonts/ibm-plex-sans-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}:root{--font-ui:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--text:#3d3935;--text-h:#1f1d1a;--text-muted:#6b655d;--bg:#faf9f6;--bg-subtle:#f1efea;--surface:#fff;--border:#e3dfd7;--accent:#1d6f72;--accent-hover:#155a5c;--accent-light:#1d6f7217;--accent-mid:#1d6f722e;--success:#2f8f5b;--warning:#c98a1b;--error:#c8412b;--warning-light:#c98a1b1a;--warning-mid:#c98a1b33;--progress:#1d6f72;--bone:#e8e4dc;--bone-hi:#f4f1eb;--radius-sm:8px;--radius:12px;--radius-lg:16px;--shadow-card:0 1px 3px #1f1d1a12;--shadow-card-hover:0 4px 14px #1f1d1a1a;--stamp-l:.45;--stamp-c:.13;font:16px/1.5 var(--font-ui);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--text:#cfc9c0;--text-h:#f0ece5;--text-muted:#958f86;--bg:#171615;--bg-subtle:#23211f;--surface:#1f1e1c;--border:#353230;--accent:#6cbcbb;--accent-hover:#8fd0ce;--accent-light:#6cbcbb1f;--accent-mid:#6cbcbb38;--success:#5cc28a;--warning:#e0b04a;--error:#f0705a;--warning-light:#e0b04a1f;--warning-mid:#e0b04a3d;--progress:#6cbcbb;--bone:#2b2926;--bone-hi:#383532;--shadow-card:0 1px 3px #00000073;--shadow-card-hover:0 4px 14px #0000008c;--stamp-l:.8;--stamp-c:.11}}*{box-sizing:border-box}body{overscroll-behavior:none;margin:0}button,input,select,textarea{font-family:inherit}h1,h2,h3{color:var(--text-h);letter-spacing:-.01em;font-weight:600}.app{flex-direction:column;max-width:600px;min-height:100vh;margin:0 auto;padding:20px;display:flex}.app.error{justify-content:center;align-items:center;font-size:18px}.error-boundary{justify-content:center;align-items:center;min-height:100vh}.error-boundary-content{text-align:center;max-width:480px;padding:32px}.error-boundary-content h2{margin:0 0 12px;font-size:22px}.error-boundary-message{color:var(--text-muted,#999);word-break:break-word;margin-bottom:24px;font-size:14px}.error-boundary-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.error-boundary-btn{cursor:pointer;border:1px solid var(--border);color:var(--text);background:0 0;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s}.error-boundary-btn:hover{border-color:var(--accent);color:var(--accent)}.error-boundary-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.error-boundary-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.start-button,.restart-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:14px 32px;font-size:18px;font-weight:600;transition:background .2s}.start-button:hover,.restart-button:hover{background:var(--accent-hover)}.complete-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.menu-button{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:10px 24px;font-size:14px;transition:border-color .2s,color .2s}.menu-button:hover{border-color:var(--accent);color:var(--accent)}.challenge-spinner{vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:14px;height:14px;margin-right:8px;animation:.7s linear infinite challenge-spin;display:inline-block}.challenge-spinner-lg{vertical-align:middle;border-width:3px;width:28px;height:28px;margin-right:0}@keyframes challenge-spin{to{transform:rotate(360deg)}}.app-status-line{color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;padding:48px 0;font-size:16px;display:flex}.bone{background:var(--bone);color:#0000;border-color:#0000;border-radius:6px;display:block;position:relative;overflow:hidden}.bone:after{content:"";background:linear-gradient(90deg, transparent 0%, var(--bone-hi) 50%, transparent 100%);animation:1.6s ease-in-out infinite bone-shimmer;position:absolute;inset:0;transform:translate(-100%)}.bone-text{height:.9em;margin:.25em 0}.bone-pill{border-radius:999px}.bone-circle{border-radius:50%}@keyframes bone-shimmer{to{transform:translate(100%)}}@media (prefers-reduced-motion:reduce){.bone:after,.challenge-spinner{animation:none}}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (height<=740px){.phase-header .phase-title-native:not(.phase-title-native-tappable),.primer-header-label{display:none}.primer-header{padding:6px 12px}}.app.drill-shell{height:100dvh;min-height:0;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px));overflow:hidden}.drill-header{flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:56px;margin-bottom:0;padding:0;display:flex}.drill-header-lead{align-items:center;gap:4px;min-width:0;display:flex}.drill-header-controls{flex-shrink:0;align-items:center;gap:6px;display:flex}.drill-back-btn{border-radius:var(--radius);cursor:pointer;width:40px;height:44px;color:var(--text-h);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:-10px;padding:0;font-size:18px;line-height:1;transition:color .2s,background .2s;display:inline-flex}.drill-back-btn:hover{background:var(--accent-light);color:var(--accent)}.drill-header .audio-speed-btn,.drill-header .settings-gear-btn{border-radius:var(--radius-sm);min-width:34px;height:34px;font-size:13px}.drill-header .audio-speed-btn{border-width:1.5px;border-color:var(--text-h);color:var(--text-h);padding:0 10px}.drill-header .settings-gear-btn{color:var(--text-h);border:none}.drill-header .settings-gear-btn:hover{background:var(--accent-light);color:var(--accent)}.drill-progress-strip{flex:none;margin-top:0;margin-bottom:clamp(10px,2vh,18px)}.audio-speed-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);font-variant-numeric:tabular-nums;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;transition:border-color .2s,color .2s,background .2s}.audio-speed-btn:hover{border-color:var(--accent);color:var(--accent)}.audio-speed-btn.fast,.audio-speed-btn.slow{border-color:var(--accent);color:var(--text-h);background:var(--bg-subtle)}.volume-slider{cursor:pointer;align-items:center;gap:4px;display:inline-flex}.volume-icon{font-size:14px;line-height:1}.volume-slider input[type=range]{appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;width:60px;height:4px}.volume-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text-muted);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px;transition:background .15s}.volume-slider input[type=range]::-webkit-slider-thumb:hover{background:var(--accent)}.volume-slider input[type=range]::-moz-range-thumb{background:var(--text-muted);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px}.chime-toggle-btn{border:1px solid var(--border);cursor:pointer;width:24px;height:22px;color:var(--text-muted);background:0 0;border-radius:4px;padding:0;font-size:14px;line-height:1;transition:border-color .2s,color .2s,opacity .2s}.chime-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.chime-toggle-btn.off{opacity:.55}.module-name{min-width:0;color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.phase-header-slot.hidden,.text-toggle.hidden{visibility:hidden}.phase-header{margin-bottom:clamp(6px,1.5vh,16px)}.phase-progress{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:2px;font-size:11px}.phase-header h2{margin:0;font-size:17px;line-height:1.25}.phase-title-native{color:var(--text-muted);margin:2px 0 0;font-size:14px}.phase-title-native-tappable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:filter .18s ease-out}.phase-title-native-tappable:hover:not(.phase-title-native-blurred){opacity:.85}.phase-title-native-blurred{filter:blur(6px)}.phase-title-native-tappable:focus-visible{outline:2px solid var(--accent,#2563eb);outline-offset:2px;border-radius:3px}.prompt-nav-area{touch-action:pan-y;flex:auto;align-items:stretch;gap:4px;min-height:0;display:flex;position:relative;overflow:hidden}.prompt-nav-content{flex-direction:column;flex:auto;min-width:0;min-height:0;padding:0;display:flex}.step-nav{flex:none;justify-content:space-between;align-items:center;gap:12px;margin-bottom:clamp(4px,1vh,10px);display:flex}.step-nav-spacer{flex:1 1 0}.step-nav-link{min-width:0;height:40px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:14px;font-weight:600;transition:color .15s;display:inline-flex}.step-nav-link:hover{color:var(--accent-hover)}.step-nav-forward{margin-left:auto}.step-nav-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.prompt-display{background:var(--bg-subtle);text-align:center;border-radius:12px;margin-bottom:16px;padding:24px}.prompt-intent{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px;font-size:13px}.prompt-text-group{flex-direction:column;justify-content:center;gap:4px;min-height:80px;display:flex}.prompt-text{color:var(--text-h);font-size:32px;font-weight:600;line-height:1.3}.prompt-romanization{color:var(--text-muted);font-family:monospace;font-size:16px}.prompt-meaning{color:var(--text-muted);font-size:14px;font-style:italic}.prompt-register{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);opacity:.6;margin-top:4px;font-size:11px}.prompt-hidden-text{color:var(--text-muted);padding:20px 0;font-size:18px;font-style:italic}.audio-controls{justify-content:center;align-items:center;gap:10px;margin-bottom:8px;display:flex}.exchange-audio-bar{justify-content:flex-end}.exchange-audio-bar .audio-flag-btn{flex-shrink:0;justify-content:center;width:44px;height:44px;margin-right:-10px;padding:0}.exchange-audio-bar .audio-flag-btn .audio-flag-label{display:none}.exchange-audio-bar .audio-flag-btn svg{width:18px;height:18px}.audio-flag-btn{color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.audio-flag-btn:hover{color:var(--text-h);border-color:var(--border);background:var(--bg-subtle)}.audio-flag-btn.flagged{color:#d64545;background:#d6454514;border-color:#d64545}@media (prefers-color-scheme:dark){.audio-flag-btn.flagged{color:#fa4d56;background:#fa4d5624;border-color:#fa4d56}}.audio-flag-btn svg{flex-shrink:0}.audio-flag-btn.compact{opacity:.2;border:1px solid #0000;gap:0;padding:2px 4px}.audio-flag-btn.compact svg{width:12px;height:12px}.response-button:hover .audio-flag-btn.compact,.response-button:focus-within .audio-flag-btn.compact,.phrasebook-row:hover .audio-flag-btn.compact,.phrasebook-row:focus-within .audio-flag-btn.compact,.vocab-row:hover .audio-flag-btn.compact,.vocab-row:focus-within .audio-flag-btn.compact{opacity:.75}.audio-flag-btn.compact:hover,.audio-flag-btn.compact:focus-visible,.audio-flag-btn.compact.flagged{opacity:1}.audio-flag-btn.compact .audio-flag-label{display:none}@media (pointer:coarse){.audio-flag-btn.compact{opacity:.5}}.response-button,.phrasebook-row,.vocab-row{position:relative}.response-button .audio-flag-btn.compact,.phrasebook-row .audio-flag-btn.compact,.vocab-row .audio-flag-btn.compact{justify-content:center;align-items:center;min-width:24px;min-height:24px;display:inline-flex;position:absolute;bottom:4px;right:6px}.audio-controls.audio-flagged .replay-btn{border-color:var(--error);color:var(--error)}.exchange-audio-bar.audio-flagged .replay-btn{border-color:#0000}.audio-controls.audio-flagged .replay-btn:hover,.exchange-audio-bar.audio-flagged .replay-btn:hover,.exchange-audio-bar.audio-flagged .replay-btn.playing{background:#c8412b14}.replay-btn{border:2px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:24px;justify-content:center;align-items:center;gap:6px;padding:10px 24px;font-size:15px;font-weight:500;line-height:1;transition:background .2s,transform .1s;display:inline-flex}.replay-btn:hover{background:var(--accent-light)}.replay-btn:active{transform:scale(.96)}.replay-btn.playing{background:var(--accent-light)}.replay-btn svg{fill:currentColor;width:18px;height:18px;display:block}.audio-placeholder{text-align:center;color:var(--text-muted);margin-bottom:8px;padding:12px;font-size:14px;font-style:italic}.text-toggle{text-align:center;margin-bottom:24px}.show-text-button{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text);background:0 0;padding:6px 16px;font-size:13px;transition:border-color .2s}.show-text-button:hover{border-color:var(--accent);color:var(--accent)}.li-context{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:4px;margin-bottom:14px;padding:14px 16px;display:flex}.li-context-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.li-context-intent{color:var(--text);font-size:16px;font-style:italic}.primer-view{flex-direction:column;flex:auto;gap:clamp(6px,1.5vh,16px);min-height:0;padding-bottom:clamp(4px,1.5vh,20px);display:flex}.primer-header{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);flex-direction:column;gap:2px;padding:clamp(6px,1.5vh,16px) clamp(12px,3vw,18px);display:flex}.primer-header-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.primer-header-intent{color:var(--text);font-size:16px;font-style:italic}.primer-variants{flex-direction:column;flex:0 auto;gap:clamp(6px,1vh,12px);max-height:min(288px,35vh);padding-right:4px;display:flex;overflow-y:auto}.primer-variant-card{background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow-card);color:inherit;font:inherit;text-align:left;cursor:pointer;border:none;align-items:center;gap:12px;padding:clamp(6px,1.2vh,14px) clamp(12px,2vw,18px);transition:background .15s,box-shadow .15s,transform 80ms;display:flex}.primer-variant-card:hover:not(:disabled){box-shadow:var(--shadow-card-hover)}.primer-variant-card:active:not(:disabled){transform:scale(.995)}.primer-variant-card.playing{background:var(--accent-light)}.primer-variant-card:disabled{cursor:default}.primer-variant-main{flex-direction:column;flex:1;gap:2px;display:flex}.primer-variant-text{color:var(--text);font-size:18px;font-weight:500}.primer-variant-romanization{color:var(--text-muted);font-size:14px}.primer-variant-meaning{color:var(--text-muted);font-size:13px;font-style:italic}.primer-variant-audio{flex-shrink:0}.primer-play-btn{width:40px;height:40px;color:var(--accent);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.primer-variant-card:hover:not(:disabled) .primer-play-btn,.primer-play-btn.playing{background:var(--accent-light)}.primer-play-btn svg{fill:currentColor;width:16px;height:16px}.primer-start-btn{border-radius:var(--radius);background:var(--accent);width:100%;height:50px;color:var(--surface);cursor:pointer;border:none;justify-content:center;align-items:center;margin-top:auto;padding:0 20px;font-size:16px;font-weight:600;transition:background .15s,transform .1s;display:flex}.primer-start-btn:hover{background:var(--accent-hover)}.primer-start-btn:active{transform:scale(.98)}.response-buttons{padding-bottom:clamp(8px,1.5vh,16px)}.response-label{border-top:1px solid var(--border);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:clamp(8px,1.6vh,20px) 0 6px;padding-top:clamp(8px,1.4vh,14px);font-size:12px;font-weight:600}.response-button{border-radius:var(--radius);cursor:pointer;text-align:left;background:0 0;border:none;align-items:flex-start;width:100%;margin-bottom:2px;padding:12px 10px;transition:background .2s,opacity .2s;display:flex}.response-button:hover:not(:disabled){background:var(--accent-light)}.response-button:active:not(:disabled){background:var(--accent-mid)}.response-button.wrong{background:var(--bg-subtle);opacity:.55;cursor:default;animation:.32s response-wrong-shake}.response-button.wrong:hover{background:var(--bg-subtle)}@keyframes response-wrong-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.response-button.wrong{animation:none}}.response-button.correct,.response-button.correct:hover{background:var(--accent-light);color:var(--text-h);cursor:default;position:relative}.response-button.celebrate{box-shadow:0 0 0 0 var(--accent-mid);animation:.55s ease-out response-correct-pulse}@keyframes response-correct-pulse{0%{box-shadow:0 0 0 0 var(--accent-mid);transform:scale(1)}40%{box-shadow:0 0 0 10px var(--accent-light);transform:scale(1.02)}to{transform:scale(1);box-shadow:0 0 #0000}}@media (prefers-reduced-motion:reduce){.response-button.celebrate{animation:none}}.response-button .response-checkmark{background:var(--accent);width:28px;height:28px;color:var(--surface);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-left:12px;animation:.5s cubic-bezier(.2,1.4,.4,1) 80ms forwards quiz-check-pop;display:inline-flex;transform:scale(0)}@media (prefers-reduced-motion:reduce){.response-button.celebrate{animation:none}.response-button .response-checkmark{animation:none;transform:scale(1)}}.response-content{flex-direction:column;flex:1;display:flex}.response-text{color:var(--text-h);text-wrap:pretty;font-size:19px;font-weight:500;line-height:1.3}.response-romanization{color:var(--text-muted);margin-top:2px;font-size:13px;line-height:1.35}.response-action{color:var(--text-muted);opacity:.7;margin-top:4px;font-size:11px;font-style:italic}.response-right-col{flex-direction:column;flex-shrink:0;align-items:center;gap:6px;margin-top:-2px;margin-left:8px;display:flex}.response-right-col .audio-flag-btn.compact{position:static}.response-play-btn{cursor:pointer;width:40px;height:40px;color:var(--text-muted);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:color .2s,background .2s;display:flex}.response-play-btn:hover,.response-play-btn.playing{color:var(--accent);background:var(--accent-light)}.response-play-btn svg{fill:currentColor;width:16px;height:16px}.production-input{flex-direction:column;flex:auto;min-height:0;margin-top:0;padding-bottom:clamp(4px,1vh,16px);display:flex}.production-input>.production-form,.production-input>.production-voice-review,.production-input>.production-reveal,.production-input>.production-confirmation,.production-input>.input-action-bar{margin-top:auto}.production-label{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px;margin:0 -8px clamp(6px,1vh,14px);padding:3px 8px;font-size:14px;display:flex}.production-badge{letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-sm);background:var(--accent);color:var(--surface);padding:2px 8px;font-size:10px;font-weight:700}.production-form{flex-direction:column;gap:clamp(6px,1vh,10px);display:flex}.production-text-input{border:1.5px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);box-sizing:border-box;background:0 0;outline:none;padding:clamp(8px,1.4vh,14px) 16px;font-size:16px;transition:border-color .2s}.production-text-input:focus{border-color:var(--accent)}.production-text-input.wrong{border-color:var(--error);animation:.32s production-shake}@keyframes production-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.production-text-input.wrong{animation:none}}.production-submit-btn{border-radius:var(--radius);background:var(--accent);width:100%;height:50px;color:var(--surface);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0 20px;font-size:16px;font-weight:600;transition:background .2s;display:flex}.production-submit-btn:hover:not(:disabled){background:var(--accent-hover)}.production-submit-btn:disabled{opacity:.4;cursor:default}.production-hint{color:var(--error);margin:0;font-size:13px}.production-dictation-tip{color:var(--text-muted);max-width:34em;margin:6px 0 0;font-size:13px}.voice-level-meter{align-items:center;gap:3px;height:28px;margin:8px 0 0;display:flex}.voice-level-bar{background:var(--accent);transform-origin:50%;border-radius:2px;width:5px;height:100%;transition:transform 60ms linear;transform:scaleY(.15)}.production-status{align-items:center;min-height:22px;display:flex}.production-status-sibling{color:var(--text-muted);margin:0;font-size:12px;line-height:1.35;animation:.24s ease-out production-status-in}.production-status-label{letter-spacing:1px;text-transform:uppercase;background:var(--accent-mid);color:var(--accent);white-space:nowrap;border-radius:4px;margin-right:6px;padding:2px 8px;font-size:10px;font-weight:700}.production-status-variant{color:var(--text-h);word-break:break-word;font-size:14px}@keyframes production-status-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.production-input.sibling-nudge .production-label{box-shadow:0 0 0 2px var(--accent-mid);border-radius:10px;animation:1.1s ease-out 2 production-sibling-pulse}@keyframes production-sibling-pulse{0%{box-shadow:0 0 0 2px var(--accent-mid)}35%{box-shadow:0 0 0 3px var(--accent), 0 0 16px 4px var(--accent-mid)}to{box-shadow:0 0 0 2px var(--accent-mid)}}@media (prefers-reduced-motion:reduce){.production-input.sibling-nudge .li-context,.production-input.sibling-nudge .production-label{box-shadow:0 0 0 2px var(--accent-mid);animation:none}.production-status-sibling{animation:none}}.production-reveal{border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--surface);flex-direction:column;gap:clamp(4px,.6vh,8px);margin-bottom:8px;padding:clamp(10px,1.5vh,16px);display:flex}.production-reveal.correct{background:var(--accent-light);animation:.55s ease-out quiz-correct-pulse}.production-reveal-header{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0;font-size:11px}.production-you-said{border-bottom:1px dashed var(--border);flex-wrap:wrap;align-items:baseline;gap:6px;padding-bottom:clamp(4px,.6vh,8px);display:flex}.production-you-said-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:11px;font-weight:600}.production-you-said-value{color:var(--text);word-break:break-word;font-family:inherit;font-size:14px}.production-reveal-text{color:var(--text-h);font-size:clamp(16px,2.4vh,19px);font-weight:500;line-height:1.25}.production-reveal-romanization{color:var(--text-muted);font-size:13px;line-height:1.25}.production-reveal-meaning{color:var(--text-muted);font-size:12px;font-style:italic;line-height:1.25}.production-continue-btn{border-radius:var(--radius);background:var(--accent);width:100%;height:50px;color:var(--surface);cursor:pointer;border:none;justify-content:center;align-items:center;margin:clamp(6px,1vh,12px) 0 0;padding:0 20px;font-size:16px;font-weight:600;transition:background .2s;display:flex}.production-continue-btn:hover{background:var(--accent-hover)}.production-assist{border:none;border-left:3px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--surface);align-items:center;gap:12px;margin:0 0 14px;padding:12px 14px;display:flex}.production-assist-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.production-assist-label{letter-spacing:1px;text-transform:uppercase;color:var(--text-secondary);font-size:10px;font-weight:700}.production-assist-text{color:var(--text);overflow-wrap:break-word;font-size:22px;line-height:1.4}.production-assist-romanization{color:var(--text-secondary);font-size:14px}.production-assist-replay{width:40px;height:40px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .15s;display:inline-flex}.production-assist-replay:hover{background:var(--accent-light)}.assessment-header{justify-content:center;padding:4px 0 8px;display:flex}.assessment-badge{letter-spacing:.1em;border-radius:var(--radius-sm);vertical-align:middle;background:var(--success);color:var(--surface);padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.assessment-reply-notice{flex-direction:column;align-items:center;gap:12px;margin-top:auto;padding:16px 0 0;display:flex}.assessment-continue-btn{border-radius:var(--radius);background:var(--accent);width:100%;height:50px;color:var(--surface);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0 20px;font-size:16px;font-weight:600;transition:background .2s;display:flex}.assessment-continue-btn:hover{background:var(--accent-hover)}.listening-grade{flex-direction:column;gap:16px;display:flex}.listening-grade-audio{margin-bottom:4px}.listening-grade-definition{text-align:center;flex-direction:column;gap:6px;min-height:140px;padding:12px 0;display:flex}.listening-grade-definition-hidden{visibility:hidden}.listening-grade-definition .prompt-intent{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:13px}.listening-grade-definition .prompt-text{color:var(--text-h);font-size:22px;line-height:1.3}.listening-grade-definition .prompt-romanization{color:var(--text);font-size:16px;line-height:1.3}.listening-grade-definition .prompt-meaning{color:var(--text-muted);font-size:14px;line-height:1.3}.listening-grade-buttons{grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:auto;padding-bottom:20px;display:grid}.listening-grade-buttons-first-run{grid-template-columns:1fr}.listening-grade-btn{border:2px solid var(--border);cursor:pointer;color:var(--text-h);background:0 0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:84px;padding:16px 8px;transition:border-color .15s,background .15s,transform 50ms,color .15s,opacity .15s;display:flex}.listening-grade-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}.listening-grade-btn:active:not(:disabled){transform:translateY(1px)}.listening-grade-btn:disabled{opacity:.45;cursor:default}.listening-grade-btn-label{letter-spacing:.2px;color:var(--text-muted);text-align:center;font-size:12px;font-weight:500}.listening-grade-cross{color:var(--text)}.listening-grade-cross:hover:not(:disabled){border-color:var(--text-muted);color:var(--text-h)}.listening-grade-reveal{color:var(--text);border-style:dashed}.listening-grade-reveal.is-revealed{color:var(--text-muted);border-style:solid}.listening-grade-check{color:var(--accent);border-color:var(--accent)}.listening-grade-check:hover:not(:disabled){background:var(--accent-light)}.listening-grade-continue{color:var(--text)}.listening-grade-continue:hover:not(:disabled){border-color:var(--text-muted);color:var(--text-h)}.exchange-speaker{letter-spacing:.06em;text-transform:uppercase;min-width:8ch;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:1 1 0;min-width:0;margin-right:auto;font-size:12px;font-weight:600;overflow:hidden}.dialogue-exchange{flex-direction:column;flex:auto;gap:clamp(4px,1vh,12px);min-height:0;display:flex}.exchange-audio-bar,.exchange-grade-row-container{flex:none}.exchange-audio-bar{flex-wrap:wrap;row-gap:6px;margin-top:0;margin-bottom:0}.exchange-audio-bar .replay-btn{border-radius:var(--radius);border:2px solid #0000;flex-shrink:0;min-height:44px;padding-left:8px;padding-right:8px;font-weight:600}.exchange-audio-bar .replay-btn:hover,.exchange-audio-bar .replay-btn.playing{background:var(--accent-light)}.exchange-audio-bar .slow-replay-btn svg{fill:none;stroke:currentColor}.exchange-definition{text-align:left;flex-direction:column;flex:0 auto;gap:clamp(2px,.5vh,6px);min-height:0;padding:clamp(2px,.6vh,8px) 0;display:flex;overflow-y:auto}.exchange-definition-hidden{visibility:hidden}.exchange-definition .prompt-intent{color:var(--text-muted);letter-spacing:0;text-transform:none;margin-bottom:2px;font-size:13px}.exchange-definition .prompt-text{color:var(--text-h);letter-spacing:-.01em;text-wrap:pretty;font-size:clamp(21px,3.6vh,30px);font-weight:600;line-height:1.25}.exchange-definition .prompt-romanization{color:var(--text);font-size:15px;line-height:1.35}.exchange-definition .prompt-meaning{color:var(--text-muted);font-size:15px;line-height:1.4}.support-note{vertical-align:middle;align-items:center;line-height:1;display:inline-flex;position:relative}.support-note-trigger{border:1px solid var(--text-muted);width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;display:inline-flex}.support-note-tip{visibility:hidden;background:var(--bg-card,#2a2a2a);border:1px solid var(--border);width:max-content;max-width:260px;color:var(--text);pointer-events:none;z-index:10;border-radius:6px;padding:6px 10px;font-size:12px;line-height:1.4;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0000004d}.support-note-trigger:hover+.support-note-tip,.support-note-trigger:focus-visible+.support-note-tip,.support-note-tip[data-open=true]{visibility:visible}.exchange-li-intent{text-align:center;justify-content:center;align-items:center;min-height:0}.exchange-li-intent .prompt-intent{text-align:center}.exchange-li-intent .prompt-text{font-size:clamp(15px,2.2vh,18px);font-style:italic}.li-listening-section{border-top:1px dashed var(--border);flex:auto;min-height:0;padding-top:clamp(6px,1vh,12px);transition:opacity .22s ease-out,transform .22s ease-out;overflow-y:auto}.li-exchange>.exchange-production-slot{flex:0 auto}.li-exchange>.exchange-definition{flex:none}.li-listening-section[data-li-reply-gated=true]{opacity:0;pointer-events:none;transform:translateY(6px)}.li-listening-section[data-li-reply-gated=true] *{visibility:hidden}.li-listening-section>.dialogue-exchange{flex:0 auto;gap:clamp(4px,1vh,12px)}.production-confirmation{border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--surface);border:none;align-items:center;gap:clamp(6px,1.2vh,12px);margin-top:clamp(4px,.8vh,10px);padding:clamp(6px,1vh,12px) clamp(8px,1.5vw,16px);display:flex}.production-confirmation-correct{background:var(--accent-light)}.production-confirmation-icon{color:var(--success,#2e8b57);flex-shrink:0;font-size:clamp(16px,2.5vh,22px);font-weight:700}.production-confirmation-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.production-confirmation-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:600}.production-confirmation-text{color:var(--text-h);word-break:break-word;font-size:clamp(14px,2.1vh,17px);font-weight:500;line-height:1.25}.production-confirmation-meaning{color:var(--text-muted);font-size:12px;font-style:italic;line-height:1.2}.production-confirmation-replay{border:1px solid var(--border);background:var(--bg);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .12s ease-out,color .12s ease-out,background .12s ease-out;display:inline-flex}.production-confirmation-replay:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.production-confirmation-replay svg{fill:currentColor;width:14px;height:14px}.production-confirmation .production-continue-btn{flex-shrink:0;width:auto;margin:0;padding:clamp(6px,1vh,10px) clamp(10px,2vw,18px);font-size:13px}.exchange-grade-row-container{order:2;max-height:200px;overflow:hidden}.exchange-grade-row-container[data-collapsed=true]{pointer-events:none;max-height:0;margin-top:calc(0px - clamp(4px,1vh,12px));transition:max-height .28s cubic-bezier(.4,0,.2,1),margin .28s cubic-bezier(.4,0,.2,1)}.exchange-grade-row-container .exchange-grade-row{opacity:1;transition:opacity .15s ease-out}.exchange-grade-row-container[data-collapsed=true] .exchange-grade-row{opacity:0;transition:opacity 80ms ease-out}.exchange-grade-row{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.exchange-grade-row-first-run{grid-template-columns:1fr}.exchange-grade-row-no-reveal{grid-template-columns:1fr 1fr}.exchange-grade-row-pending-fail{grid-template-columns:1fr}.exchange-grade-btn{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);cursor:pointer;color:var(--text-h);border:none;flex-direction:column;justify-content:center;align-items:center;gap:clamp(2px,.5vh,6px);min-height:clamp(44px,7vh,72px);padding:clamp(6px,1.2vh,14px) 6px;transition:box-shadow .15s,background .15s,transform 50ms,color .15s,opacity .15s;display:flex}.exchange-grade-btn:hover:not(:disabled){background:var(--accent-light);box-shadow:var(--shadow-card-hover)}.exchange-grade-btn:active:not(:disabled){transform:translateY(1px)}.exchange-grade-btn:disabled{opacity:.45;cursor:default}.exchange-grade-btn-label{letter-spacing:.2px;color:var(--text-muted);text-align:center;font-size:12px;font-weight:500}.exchange-grade-btn-interval{color:var(--text-muted);opacity:.75;text-align:center;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:11px;font-weight:400;line-height:1.1}.exchange-grade-cross{color:var(--text)}.exchange-grade-cross:hover:not(:disabled){color:var(--text-h)}.exchange-grade-reveal{box-shadow:none;border:2px dashed var(--border);color:var(--text);background:0 0}.exchange-grade-reveal:hover:not(:disabled){box-shadow:none}.exchange-grade-reveal.is-revealed{color:var(--text-muted);border-style:solid}.exchange-grade-check{color:var(--accent)}.exchange-grade-row-first-run .exchange-grade-btn,.exchange-grade-row-pending-fail .exchange-grade-btn{background:var(--accent);height:50px;min-height:50px;box-shadow:none;color:var(--surface);flex-direction:row;gap:8px;padding:0 20px;font-size:16px;font-weight:600}.exchange-grade-row-first-run .exchange-grade-btn:hover:not(:disabled),.exchange-grade-row-pending-fail .exchange-grade-btn:hover:not(:disabled){background:var(--accent-hover);box-shadow:none}.exchange-grade-row-first-run .exchange-grade-btn-label,.exchange-grade-row-pending-fail .exchange-grade-btn-label{color:inherit;font-size:16px;font-weight:600}.exchange-grade-row-first-run .exchange-grade-btn svg,.exchange-grade-row-pending-fail .exchange-grade-btn svg{width:22px;height:22px}.exchange-production-slot{border:none;flex-direction:column;flex:auto;min-width:0;min-height:0;margin:0;padding:0;display:flex;overflow-y:auto}.exchange-production-slot[data-gated=true]{visibility:hidden}.comprehension-quiz{margin-top:auto;padding-bottom:20px}.quiz-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.quiz-mode-badge{background:var(--accent);color:#fff;letter-spacing:.5px;text-transform:uppercase;border-radius:3px;padding:2px 6px;font-size:10px}.quiz-options{flex-direction:column;gap:8px;display:flex}.quiz-option{border:2px solid var(--border);cursor:pointer;text-align:left;width:100%;color:var(--text-h);background:0 0;border-radius:10px;padding:14px 18px;font-size:15px;transition:border-color .2s,background .2s}.quiz-option:hover:not(:disabled){border-color:var(--accent);background:var(--accent-light)}.quiz-option.correct{border-color:var(--success);color:var(--success);cursor:default;background:#009e731a;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.quiz-option.celebrate{animation:.55s ease-out quiz-correct-pulse;box-shadow:0 0 #009e7373}.quiz-option .quiz-checkmark{background:var(--success);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;animation:.5s cubic-bezier(.2,1.4,.4,1) 80ms forwards quiz-check-pop;display:inline-flex;transform:scale(0)}@keyframes quiz-correct-pulse{0%{transform:scale(1);box-shadow:0 0 #009e7373}40%{transform:scale(1.025);box-shadow:0 0 0 10px #009e732e}to{transform:scale(1);box-shadow:0 0 #009e7300}}@keyframes quiz-check-pop{0%{transform:scale(0)rotate(-20deg)}70%{transform:scale(1.15)rotate(0)}to{transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.quiz-option.celebrate{animation:none}.quiz-option .quiz-checkmark{animation:none;transform:scale(1)}}.quiz-option.wrong{border-color:var(--error);color:var(--error);opacity:.6;cursor:default;background:#d55e0014}.quiz-option.revealed{opacity:.9}.quiz-give-up-btn{min-height:44px;color:var(--text-muted);text-underline-offset:3px;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-self:center;align-items:center;margin-top:4px;padding:0 14px;font-size:13px;text-decoration:underline;display:inline-flex}.quiz-give-up-btn:hover{color:var(--text)}.quiz-give-up-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.input-action-bar{margin-top:14px}.iab-verbs{gap:10px;display:flex}.iab-verb{border-radius:var(--radius);background:var(--bg-subtle);height:58px;color:var(--text-h);cursor:pointer;border:none;flex:1;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.iab-verb--speak{background:var(--accent);color:var(--surface)}.iab-verb--speak:hover:not(:disabled){background:var(--accent-hover)}.iab-verb--locked{background:var(--bg);border:1.5px dashed var(--border);color:var(--text-muted)}.iab-verb--locked:hover:not(:disabled){background:var(--bg-subtle)}.iab-verb:disabled{opacity:.5;cursor:default}.iab-priming{color:var(--text-muted);text-align:center;margin:8px 0 0;font-size:12px}.iab-recording{align-items:center;gap:10px;display:flex}.iab-cancel{border:1px solid var(--border);background:var(--bg);width:36px;height:36px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex:none;font-size:15px}.iab-stop{border:1.5px solid var(--accent);background:var(--accent-light);cursor:pointer;height:58px;color:var(--text-h);border-radius:14px;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.iab-rec-dot{background:var(--error);border-radius:50%;flex:none;width:10px;height:10px;animation:1.2s ease-in-out infinite iab-pulse}@keyframes iab-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.iab-rec-dot,.iab-spinner{animation:none}}.iab-rec-copy{text-align:left;font-size:14px;font-weight:600;line-height:1.25}.iab-rec-copy small{color:var(--text-muted);font-size:11px;font-weight:400;display:block}.iab-transcribing{border:1.5px solid var(--accent);background:var(--accent-light);height:58px;color:var(--text-h);border-radius:14px;justify-content:center;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.iab-spinner{border:2.5px solid var(--accent-mid);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:1s linear infinite iab-rotate}@keyframes iab-rotate{to{transform:rotate(360deg)}}.iab-compact{border:1px solid var(--border);background:var(--bg-subtle);width:100%;height:44px;color:var(--text-h);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.production-voice-review{background:var(--bg-subtle);border:1px solid var(--border);border-radius:14px;margin-top:14px;padding:14px}.review-heard-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin:0 0 4px;font-size:11px}.review-heard-text{color:var(--text-h);margin:0;font-size:18px;font-weight:600}.review-actions{margin-top:12px}.review-actions-row{gap:8px;display:flex}.review-actions-row .production-submit-btn,.review-retry-btn{flex:1}.review-retry-btn{border:1px solid var(--border);background:var(--bg);height:44px;color:var(--text-h);cursor:pointer;border-radius:10px;font-size:15px;font-weight:600}.review-edit-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin:10px auto 0;font-size:13px;display:block}.review-edit-link{color:var(--accent);text-decoration:underline}.signin-sheet-scrim{z-index:100;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.signin-sheet{background:var(--bg);border-radius:18px 18px 0 0;width:100%;max-width:560px;padding:20px 20px 24px}.signin-sheet-grab{background:var(--border);border-radius:2px;width:36px;height:4px;margin:0 auto 16px}.signin-sheet h3{color:var(--text-h);margin:0 0 6px;font-size:17px}.signin-sheet p{color:var(--text);margin:0 0 16px;font-size:14px}.signin-sheet-cta{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;height:48px;margin-bottom:8px;font-size:15px;font-weight:600}.signin-sheet-cta:hover{background:var(--accent-hover)}.signin-sheet-dismiss{width:100%;height:40px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:12px;font-size:14px}.signin-sheet{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));max-height:85vh;overflow-y:auto}@media (width>=640px){.signin-sheet-scrim{align-items:center;padding:24px}.signin-sheet{border-radius:18px;max-width:420px}.signin-sheet-grab{display:none}}.tree-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:20px;padding-bottom:12px;display:flex}.tree-header h2{margin:0;font-size:18px}.tree-map-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 16px;font-size:13px}.tree-flow{flex-direction:column;align-items:center;display:flex}.tree-node-group{flex-direction:column;align-items:center;width:100%;display:flex}.tree-node{border:2px solid var(--border);cursor:pointer;text-align:left;background:0 0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:12px 16px;transition:border-color .2s,background .2s;display:flex}.tree-node:hover{border-color:var(--accent);background:var(--accent-light)}.tree-node.practiced{border-color:var(--success)}.tree-node.edge-case{opacity:.8;border-style:dashed;margin-bottom:6px}.tree-node-number{background:var(--bg-subtle);width:28px;height:28px;color:var(--text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.tree-node.practiced .tree-node-number{background:var(--success);color:#fff}.tree-node-content{flex-direction:column;flex:1;display:flex}.tree-node-title{color:var(--text-h);font-size:15px;font-weight:500}.tree-node-title-native{color:var(--text-muted);font-size:13px}.tree-node-meta{color:var(--text-muted);opacity:.7;margin-top:2px;font-size:11px}.tree-node-check{color:var(--success);font-size:18px;font-weight:700}.quiz-accuracy{font-weight:600}.quiz-accuracy.high{color:var(--success)}.quiz-accuracy.mid{color:var(--warning)}.quiz-accuracy.low{color:var(--error)}.tree-connector{background:var(--border);width:2px;height:20px}.tree-edge-cases{border-top:1px solid var(--border);margin-top:24px;padding-top:16px}.tree-edge-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 12px;font-size:12px}.phrasebook{padding:0 0 24px}.phrasebook-empty{color:var(--text-muted);text-align:center;padding:24px 0;font-size:14px}.phrasebook-hint{color:var(--text-muted);margin:-8px 0 16px;font-size:13px}.phrasebook-search{align-items:center;gap:10px;margin:0 0 14px;display:flex}.phrasebook-search-input{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:14px;transition:border-color .15s}.phrasebook-search-input:focus{border-color:var(--accent)}.phrasebook-search-count{color:var(--text-muted);white-space:nowrap;font-size:12px}.phrasebook-group{margin-bottom:20px}.phrasebook-group-title{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin:0 0 8px;font-size:12px;font-weight:600}.phrasebook-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.phrasebook-row{border:1px solid var(--border);border-radius:10px;align-items:flex-start;gap:12px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.phrasebook-row.learner{background:color-mix(in srgb, var(--accent) 6%, transparent)}.phrasebook-row.playing{border-color:var(--accent)}.phrasebook-play{border:1px solid var(--border);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;flex:0 0 36px;justify-content:center;align-items:center;padding:0;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.phrasebook-play:hover{border-color:var(--accent);color:var(--accent)}.phrasebook-row.playing .phrasebook-play{background:var(--accent);border-color:var(--accent);color:#fff}.phrasebook-row-body{flex:auto;min-width:0}.phrasebook-speaker{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:2px;font-size:11px;font-weight:600}.phrasebook-row.learner .phrasebook-speaker{color:var(--accent)}.phrasebook-text{color:var(--text);word-wrap:break-word;font-size:16px;line-height:1.4}.phrase-slot{border:1px dashed var(--border);color:var(--text-muted);border-radius:4px;margin:0 1px;padding:1px 6px;font-size:.9em;font-style:italic;display:inline-block}.vocab-sheet{padding:0 0 24px}.vocab-controls{align-items:center;gap:10px;margin-bottom:12px;display:flex}.vocab-search-input{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:8px;outline:none;flex:1;padding:8px 12px;font-size:14px;transition:border-color .15s}.vocab-search-input:focus{border-color:var(--accent)}.vocab-match-count{color:var(--text-muted);margin:-6px 0 10px;font-size:12px}.vocab-toggle{border:1px solid var(--border);cursor:pointer;color:var(--text);background:0 0;border-radius:6px;padding:6px 14px;font-size:13px;transition:border-color .2s,color .2s,background .2s}.vocab-toggle:hover,.vocab-toggle.active{border-color:var(--accent);color:var(--accent)}.vocab-list{margin:0;padding:0;list-style:none}.vocab-row{border-bottom:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;padding:12px 8px}.vocab-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.vocab-row:first-child{border-top:1px solid var(--border)}.vocab-native{color:var(--text);font-size:18px;font-weight:600;line-height:1.3}.vocab-romanization{color:var(--text-muted);margin-top:2px;font-size:13px;font-style:italic}.vocab-meaning{color:var(--text);margin-top:4px;font-size:15px;transition:filter .15s,opacity .15s}.vocab-meaning.hidden{filter:blur(6px);opacity:.55;-webkit-user-select:none;user-select:none}.vocab-row-main{align-items:flex-start;gap:10px;display:flex}.vocab-row-text{flex:auto;min-width:0}.vocab-play{border:1px solid var(--border);width:34px;height:34px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;margin-top:2px;padding:0;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.vocab-play:hover{border-color:var(--accent);color:var(--accent)}.vocab-play.playing{background:var(--accent);border-color:var(--accent);color:#fff}.vocab-example{color:var(--text-muted);margin-top:8px;font-size:13px;line-height:1.4}.vocab-example-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:10px;font-weight:600}.vocab-example-text{color:var(--text)}.vocab-example-hit{background:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--text);border-radius:3px;padding:0 2px;font-weight:600}.vocab-example-meaning{color:var(--text-muted)}.vocab-empty{color:var(--text-muted);text-align:center;padding:24px 0;font-size:14px}.request-module{width:100%;max-width:600px}.request-module-back{margin:0 0 10px -8px}.request-module-header{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;display:flex}.request-module-header h1{margin:0;font-size:28px}.request-module-badge{background:var(--accent);color:#fff;text-transform:uppercase;letter-spacing:.5px;border-radius:4px;padding:3px 10px;font-size:11px;font-weight:600}.request-module-description{color:var(--text-muted);margin:0 0 24px;font-size:15px;line-height:1.5}.request-module-field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.request-module-label{color:var(--text);font-size:14px;font-weight:600}.request-module-field-help{color:var(--text-muted);margin:-2px 0 2px;font-size:13px;line-height:1.45}.request-module-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);resize:vertical;box-sizing:border-box;padding:12px 14px;font-family:inherit;font-size:15px;line-height:1.5;transition:border-color .2s}.request-module-input::placeholder{color:var(--text-muted);opacity:.6}.request-module-input:focus{border-color:var(--accent);outline:none}.request-module-form{flex-direction:column;gap:16px;display:flex}.request-module-submit{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;justify-content:center;align-self:flex-start;align-items:center;height:50px;padding:0 28px;font-size:16px;font-weight:600;transition:background .15s;display:inline-flex}.request-module-submit:hover:not(:disabled){background:var(--accent-hover)}.request-module-submit:disabled{opacity:.5;cursor:not-allowed}.request-module-error{color:var(--error);font-size:12px}.request-module-success{flex-direction:column;align-items:flex-start;gap:16px;padding:8px 0 4px;display:flex}.request-module-success p{color:var(--text-h);margin:0;font-size:15px;line-height:1.5}.request-module-status{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:24px 0;display:flex}.request-module-scenario-echo{color:var(--text-m);margin:0;font-size:14px;font-style:italic}@media (width<=480px){.app{padding:16px 12px}}.daily-practice-summary{background:var(--bg-subtle);border:1px solid var(--border);border-radius:10px;margin:20px 0;padding:16px 20px}.daily-practice-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.daily-practice-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);font-size:12px;font-weight:600}.daily-practice-mastered-tag{background:var(--accent);color:#fff;letter-spacing:.3px;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.daily-practice-stats{justify-content:space-around;gap:20px;display:flex}.daily-stat{flex-direction:column;flex:1 1 0;align-items:center;min-width:0;display:flex}.daily-stat-value{color:var(--text-h);font-size:28px;font-weight:700;line-height:1.1}.daily-stat-denom{color:var(--text-muted);font-size:16px;font-weight:500}.daily-stat-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-top:4px;font-size:11px}.daily-stat-sub{color:var(--text-muted);opacity:.8;margin-top:2px;font-size:11px}.challenge-mode-badge,.edge-case-badge{letter-spacing:.5px;vertical-align:middle;border-radius:3px;margin-left:8px;padding:1px 6px;font-size:9px;font-weight:700;display:inline-block}.challenge-mode-badge{color:#fff;background:#d946ef}.edge-case-badge{color:#fff;background:#e3a008}.request-module-gate-banner{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);border:none;margin:0 0 20px;padding:14px 16px}.request-module-gate-title{color:var(--text-h);margin:0 0 6px;font-size:15px;font-weight:600}.request-module-gate-body{color:var(--text-muted);margin:0;font-size:13px;line-height:1.45}.request-module-gate-body+.request-module-gate-body{margin-top:8px}.request-module-gate-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.request-module-gate-secondary{height:46px;color:var(--accent);background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;padding:0 20px;font-size:15px;font-weight:600;transition:background .15s;display:inline-flex}.request-module-gate-secondary:hover{background:var(--accent-light)}.request-module-resume-notice{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);border:none;justify-content:space-between;align-items:center;gap:12px;margin:0 0 20px;padding:12px 8px 12px 16px;display:flex}.request-module-resume-notice p{color:var(--text);margin:0;font-size:14px;line-height:1.45}.request-module-resume-notice-dismiss,.request-module-job-dismiss{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:0;flex:none;justify-content:center;align-items:center;padding:0;transition:color .15s;display:inline-flex}.request-module-resume-notice-dismiss:hover,.request-module-job-dismiss:hover{color:var(--text-h)}.request-module-disclosure{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:5px;padding:0;font-size:14px;font-weight:600;transition:color .15s;display:inline-flex}.request-module-disclosure:hover,.request-module-disclosure.open{color:var(--accent-hover)}.request-module-disclosure svg{transition:transform .15s}.request-module-supported{color:var(--text-muted);margin:4px 0 0;font-size:13px}.request-module-supported-help{margin:4px 0 8px;line-height:1.45}.request-module-supported-list{columns:2;margin:0;padding-left:18px;line-height:1.6}@media (width<=420px){.request-module-supported-list{columns:1}}.language-picker{flex-direction:column;gap:6px;display:flex;position:relative}.language-picker-list{z-index:20;background:var(--surface);border-radius:var(--radius);border:none;max-height:260px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 6px 20px #0000002e}.language-picker-option{border-radius:var(--radius-sm);cursor:pointer;min-height:44px;color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;font-size:15px;display:flex}.language-picker-option-active{background:var(--accent-light)}.language-picker-option-code{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.language-picker-empty{color:var(--text-muted);padding:8px 10px;font-size:13px;line-height:1.45}.language-picker-selected{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:12px;min-height:46px;padding:10px 14px;display:flex}.language-picker-selected-label,.subs-field-value{color:var(--text);font-size:15px;font-weight:600}.language-picker-change{min-height:44px;color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;margin:-10px -4px -10px auto;padding:0 4px;font-size:14px;font-weight:600;display:inline-flex}.language-picker-change:hover:not(:disabled){text-decoration:underline}.request-module-hint{color:var(--text-muted);margin:-8px 0 0;font-size:13px}.request-module-jobs{margin:0 0 28px}.request-module-jobs-title{color:var(--text);margin:0 0 4px;font-size:15px;font-weight:600}.request-module-jobs-hint{color:var(--text-muted);margin:0 0 12px;font-size:13px;line-height:1.45}.request-module-job-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.request-module-job{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);border:none;padding:14px 52px 14px 16px;position:relative}.request-module-job .library-card-lang{margin-bottom:8px}.request-module-job-scenario{color:var(--text-h);margin:0 0 8px;font-size:15px;line-height:1.45}.request-module-job-state{color:var(--text-muted);align-items:center;gap:8px;margin:0;font-size:13px;line-height:1.45;display:flex}.request-module-job-open{height:44px;margin-top:12px;padding:0 18px;font-size:15px}.request-module-job-dismiss{position:absolute;top:4px;right:4px}.request-module-job-next{color:var(--text-muted);margin:6px 0 0;font-size:13px;line-height:1.45}.request-module-job-retry{height:44px;color:var(--accent);background:var(--surface);border:1.5px solid var(--accent);border-radius:var(--radius);cursor:pointer;justify-content:center;align-items:center;margin-top:12px;padding:0 18px;font-size:15px;font-weight:600;transition:background .15s;display:inline-flex}.request-module-job-retry:hover{background:var(--accent-light)}.request-module-examples{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);margin:-4px 0 4px;padding:14px 12px}.request-module-examples-label{color:var(--text-h);margin:0 0 6px;padding:0 4px;font-size:13px;font-weight:600}.request-module-example-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.request-module-example{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;width:100%;min-height:44px;padding:8px 10px;transition:background .15s;display:block}.request-module-example:hover{background:var(--bg-subtle)}.request-module-example-shape{letter-spacing:.02em;color:var(--text-muted);margin-bottom:3px;font-size:12px;font-weight:600;display:block}.request-module-example-text{color:var(--text);font-size:13px;line-height:1.45;display:block}.request-module-tips{color:var(--text-muted);margin:14px 0 0;font-size:13px}.request-module-tips-list{margin:4px 0 0;padding-left:18px;line-height:1.5}.request-module-tips-list li+li{margin-top:8px}.request-module-tips-list strong{color:var(--text)}.app.completion-shell{height:100dvh;min-height:0;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));overflow:hidden}.module-complete{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.module-complete h2{margin:0;font-size:28px}.complete-title{color:var(--text-muted);font-size:16px}.module-complete.completion-screen{text-align:left;justify-content:flex-start;align-items:stretch;gap:0;min-height:0}.completion-scroll{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.completion-screen .module-eyebrow{margin-bottom:10px}.completion-screen h2{letter-spacing:-.02em;margin:0;font-size:30px;line-height:1.1}.completion-screen .complete-title{color:var(--text-h);text-wrap:pretty;margin:0;font-size:19px;font-weight:600}.complete-title-native{color:var(--text-muted);margin:2px 0 0;font-size:15px}.complete-body{color:var(--text-muted);margin:8px 0 0;font-size:14px}.completion-stamps .stamps-row{margin-top:14px;margin-bottom:16px}@keyframes completion-stamp-land{0%{transform:rotate(calc(var(--stamp-rot) - 14deg)) scale(1.25);opacity:0}to{transform:rotate(var(--stamp-rot)) scale(1);opacity:.8}}.completion-stamps-land .stamps-row-marks .date-stamp:first-child{animation:.24s ease-out both completion-stamp-land}@media (prefers-reduced-motion:reduce){.completion-stamps-land .stamps-row-marks .date-stamp:first-child{animation:none}}.session-summary{text-align:left;background:var(--bg-subtle);border-radius:10px;width:100%;max-width:400px;margin:8px auto 12px;padding:16px 20px}.completion-screen .session-summary{background:var(--surface);border-radius:var(--radius);max-width:none;box-shadow:var(--shadow-card);font-variant-numeric:tabular-nums;margin:4px 0 0}.session-summary h3{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 12px;font-size:13px}.completion-screen .session-summary h3{letter-spacing:.06em;font-size:11px;font-weight:600}.session-stat-grid{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:12px;display:grid}.session-stat{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.session-stat-value{font-variant-numeric:tabular-nums;color:var(--text-h);font-size:24px;font-weight:700;line-height:1.1}.session-stat-label{color:var(--text-muted);font-size:12px}.session-stat.pass .session-stat-value{color:var(--success)}.session-stat.struggle .session-stat-value{color:var(--warning)}.session-clean-note{color:var(--text-muted);margin:10px 0 0;font-size:12px}.session-revisit{margin-top:12px}.session-revisit h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin:0 0 6px;font-size:12px}.session-revisit-list{flex-direction:column;gap:2px;margin:0;padding-left:18px;font-size:13px;list-style:outside;display:flex}.completion-screen .complete-actions{background:var(--bg);flex:none;align-items:stretch;gap:10px;padding:12px 0 52px}.completion-screen .restart-button{border-radius:var(--radius);width:100%;height:50px;padding:0 20px;font-size:16px}.completion-screen .menu-button{border:1.5px solid var(--accent);border-radius:var(--radius);background:var(--surface);width:100%;height:46px;color:var(--accent);padding:0 20px;font-size:16px;font-weight:600}.completion-screen .menu-button:hover{background:var(--accent-light);border-color:var(--accent);color:var(--accent)}.progress-bar{flex-direction:column;gap:10px;width:100%;max-width:400px;margin:16px auto;display:flex}.completion-screen .progress-bar{max-width:none;margin:16px 0 4px}.progress-stat{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.progress-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);text-align:left;flex:1;font-size:12px}.progress-value{color:var(--text-h);font-size:13px;font-weight:600}.progress-track{background:var(--border);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-fill{background:var(--progress);border-radius:3px;height:100%;transition:width .3s}.content-report-context{background:var(--bg-subtle);text-align:center;border-radius:8px;margin-bottom:16px;padding:12px 16px}.content-report-phrase{margin-bottom:2px;font-size:20px;font-weight:600}.content-report-romanization{color:var(--text-muted);margin-bottom:2px;font-size:14px}.content-report-meaning{margin-bottom:6px;font-size:14px;font-style:italic}.content-report-meta{text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);font-size:11px}.feedback-fab{color:var(--accent);background:var(--bg);border:1px solid var(--accent);cursor:pointer;z-index:90;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:12px;font-weight:600;transition:background .2s,color .2s,border-color .2s,transform .1s;display:inline-flex;position:fixed;bottom:16px;right:16px;box-shadow:0 2px 8px #00000014}.feedback-fab:hover{background:var(--accent-light);border-color:var(--accent-hover);color:var(--accent-hover)}.feedback-fab:active{transform:translateY(1px)}.feedback-fab-label{line-height:1}@media (width<=480px){.feedback-fab{bottom:12px;right:12px}}.feedback-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.feedback-sheet{background:var(--bg);border:1px solid var(--border);border-radius:12px;width:100%;max-width:480px;max-height:90vh;padding:20px 22px;overflow-y:auto;box-shadow:0 12px 40px #0000004d}.feedback-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.feedback-title{color:var(--text-h);margin:0;font-size:18px}.feedback-close-x{border:1px solid var(--border);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:0;font-size:22px;line-height:1}.feedback-close-x:hover{border-color:var(--accent);color:var(--accent)}.feedback-form{flex-direction:column;gap:14px;display:flex}.feedback-field{flex-direction:column;gap:6px;display:flex}.feedback-label{color:var(--text-h);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.feedback-form textarea,.feedback-form input[type=text],.feedback-form input[type=email]{width:100%;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);resize:vertical;border-radius:8px;padding:10px 12px}.feedback-form textarea:focus,.feedback-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}.feedback-form textarea[aria-invalid=true],.feedback-form input[aria-invalid=true]{border-color:var(--error)}.feedback-intent{background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;margin:0;padding:10px 12px;display:flex}.feedback-intent legend{margin-bottom:4px;padding:0}.feedback-intent-option{cursor:pointer;align-items:baseline;gap:8px;padding:4px 2px;font-size:13px;display:flex}.feedback-intent-option input[type=radio]{flex-shrink:0}.feedback-intent-label{color:var(--text-h);font-weight:600}.feedback-intent-hint{color:var(--text-muted);font-size:11px}.flag-audio-picker{background:var(--bg-subtle);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;margin:0;padding:10px 12px;display:flex}.flag-audio-picker legend{margin-bottom:4px;padding:0}.flag-audio-option{cursor:pointer;border-radius:6px;align-items:flex-start;gap:8px;padding:6px 4px;font-size:13px;transition:background .1s;display:flex}.flag-audio-option:hover{background:var(--bg-hover,#0000000a)}.flag-audio-option input[type=checkbox]{flex-shrink:0;margin-top:2px}.flag-audio-option-body{flex-direction:column;gap:1px;min-width:0;display:flex}.flag-audio-option-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:10px;font-weight:600}.flag-audio-option-text{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.flag-audio-option-rom{color:var(--text-muted);font-size:12px}.flag-other-input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;width:100%;margin-top:4px;padding:6px 8px;font-size:13px}.flag-other-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-light);outline:none}.feedback-checkbox{background:var(--bg-subtle);border:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.feedback-checkbox input[type=checkbox]{flex-shrink:0;margin-top:2px}.feedback-checkbox-body{flex-direction:column;gap:4px;min-width:0;display:flex}.feedback-checkbox-label{color:var(--text-h);font-size:13px;font-weight:600}.feedback-checkbox-note{color:var(--text-muted);font-size:11px;line-height:1.45}.feedback-identity{background:var(--bg-subtle);border:1px dashed var(--border);border-radius:8px;flex-direction:column;gap:12px;padding:12px;display:flex}.feedback-error{color:var(--error);font-size:12px}.feedback-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.feedback-cancel,.feedback-submit{cursor:pointer;border-radius:8px;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.feedback-cancel{border:1px solid var(--border);color:var(--text);background:0 0}.feedback-cancel:hover{border-color:var(--accent);color:var(--accent)}.feedback-submit{background:var(--accent);border:1px solid var(--accent);color:#fff}.feedback-submit:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.feedback-submit:disabled{opacity:.6;cursor:not-allowed}.feedback-debug-copy{cursor:pointer;border:1px solid var(--border);color:var(--text-muted,#999);background:0 0;border-radius:8px;margin-right:auto;padding:10px 18px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.feedback-debug-copy:hover{border-color:var(--accent);color:var(--accent)}.feedback-debug-note{color:var(--text-muted,#999);text-align:right;margin-top:6px;font-size:12px}.feedback-success{flex-direction:column;align-items:flex-start;gap:16px;padding:8px 0 4px;display:flex}.feedback-success p{color:var(--text-h);margin:0;font-size:15px}.feedback-menu{flex-direction:column;gap:8px;display:flex}.menu-row{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;align-items:center;gap:12px;width:100%;padding:12px;transition:border-color .15s,background .15s;display:flex}.menu-row:hover:not(:disabled){border-color:var(--accent)}.menu-row:disabled,.menu-row.disabled{opacity:.6;cursor:default}.menu-icon{background:var(--accent-light);width:36px;height:36px;color:var(--accent);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.menu-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.menu-label{color:var(--text-h);font-size:15px;font-weight:600}.menu-hint{color:var(--text-muted);font-size:12px;line-height:1.4}.menu-meta{color:var(--accent);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.menu-meta.muted{color:var(--text-muted)}.feedback-menu-note{margin-top:12px}.feedback-sub{color:var(--text-muted);margin:-6px 0 0;font-size:13px;line-height:1.45}.feedback-note{color:var(--text-muted);margin:0;font-size:12px;line-height:1.45}.feedback-notice{border:1px solid var(--warning);background:color-mix(in srgb, var(--warning) 10%, transparent);color:var(--text-h);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45}.feedback-chips-field{border:none;margin:0;padding:0}.feedback-chips-field legend{margin-bottom:6px;padding:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);min-height:36px;color:var(--text-h);cursor:pointer;border-radius:999px;align-items:center;padding:0 14px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.chip:hover{border-color:var(--accent)}.chip.selected{border-color:var(--accent);background:var(--accent-light);color:var(--accent);font-weight:600}.line-list{flex-direction:column;gap:8px;display:flex}.line-row{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:12px;min-height:56px;padding:10px 12px;display:flex}.line-row.selected{border-color:var(--accent);background:var(--accent-light)}.line-play{border:1px solid var(--border);background:var(--bg);width:36px;height:36px;color:var(--accent);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.line-play:hover{border-color:var(--accent)}.line-body{text-align:left;cursor:pointer;min-width:0;font:inherit;background:0 0;border:none;flex-direction:column;flex:1;gap:2px;padding:0;display:flex}.line-who{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:10px;font-weight:600}.line-text{color:var(--text-h);overflow-wrap:anywhere;font-size:16px;line-height:1.3}.line-rom{color:var(--text-muted);font-size:12px}.line-check{border:1.5px solid var(--border);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.line-check.on{background:var(--accent);border-color:var(--accent)}.feedback-sub-lead{color:var(--text);margin-top:-4px;font-size:14px}.mini-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.mini-card-body{flex-direction:column;gap:2px;min-width:0;display:flex}.mini-card .flag-btn{border:1px solid var(--accent);background:var(--accent-light);width:28px;height:28px;color:var(--accent);border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.settings-gear-btn{border:1px solid var(--border);cursor:pointer;width:28px;height:26px;color:var(--text-muted);vertical-align:middle;background:0 0;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:0;transition:border-color .2s,color .2s;display:inline-flex}.settings-gear-btn:hover{border-color:var(--accent);color:var(--accent)}.settings-backdrop{z-index:100;background:#00000073;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=600px){.settings-backdrop{align-items:center;padding:16px}}.settings-sheet{background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;border:none;width:100%;max-width:420px;max-height:85vh;padding:20px 22px 28px;overflow-y:auto;box-shadow:0 -8px 40px #0000004d}@media (width>=600px){.settings-sheet{border-radius:var(--radius);box-shadow:0 12px 40px #0000004d}}.settings-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.settings-title{color:var(--text-h);margin:0;font-size:18px}.settings-close-x{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:0;flex:none;justify-content:center;align-items:center;margin:-8px -12px -8px 0;padding:0;transition:color .15s;display:inline-flex}.settings-close-x:hover{color:var(--accent)}.settings-group{border-bottom:1px solid var(--border);padding:14px 0}.settings-group:last-child{border-bottom:none}.settings-label{color:var(--text-h);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.settings-value{color:var(--text-muted);margin-left:6px;font-weight:400}.settings-hint{color:var(--text-muted);margin-top:2px;font-size:11px;font-weight:400;display:block}.settings-link-btn{min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;margin:-10px 0 -6px;padding:0;font-size:15px;font-weight:600;display:inline-flex}.settings-link-btn:hover{color:var(--accent-hover)}.settings-speed-options{flex-wrap:wrap;gap:6px;display:flex}.settings-speed-chip{border-radius:var(--radius-sm);background:var(--bg-subtle);cursor:pointer;min-height:44px;color:var(--text);font-variant-numeric:tabular-nums;border:none;align-items:center;padding:0 14px;font-size:14px;font-weight:600;transition:color .15s,background .15s;display:inline-flex}.settings-speed-chip:hover:not(.active){background:var(--accent-light);color:var(--accent)}.settings-speed-chip.active{background:var(--accent);color:#fff}.settings-range{cursor:pointer;width:100%;accent-color:var(--accent)}.settings-toggle-row{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.settings-toggle-row .settings-label{margin-bottom:0}.settings-sublabel{color:var(--text);font-size:13px;font-weight:400}.settings-hint+.settings-toggle-row,.settings-hint+.settings-speed-options,.settings-toggle-row+.settings-toggle-row{margin-top:10px}.settings-label-col{flex-direction:column;display:flex}.settings-label-col .settings-label{margin-bottom:0}.settings-toggle{background:var(--border);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;width:44px;height:24px;padding:0;transition:background .2s;position:relative}.settings-toggle.on{background:var(--accent)}.settings-toggle-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000040}.settings-toggle.on .settings-toggle-knob{transform:translate(20px)}.subs-prompt-backdrop{z-index:120;background:#00000073;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}@media (width>=600px){.subs-prompt-backdrop{align-items:center;padding:16px}}.subs-prompt-sheet{background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;border:none;width:100%;max-width:420px;max-height:85vh;padding:20px 22px 24px;overflow-y:auto;box-shadow:0 -8px 40px #0000004d}@media (width>=600px){.subs-prompt-sheet{border-radius:var(--radius);box-shadow:0 12px 40px #0000004d}}.subs-prompt-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.subs-prompt-title{color:var(--text-h);margin:0;font-size:18px}.subs-prompt-close-x{width:44px;height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:0;flex:none;justify-content:center;align-items:center;margin:-8px -12px -8px 0;padding:0;transition:color .15s;display:inline-flex}.subs-prompt-close-x:hover{color:var(--accent)}.subs-prompt-body{color:var(--text-muted);margin:0 0 16px;font-size:13px;line-height:1.5}.subs-prompt-rows{flex-direction:column;gap:8px;display:flex}.subs-prompt-row{text-align:left;border-radius:var(--radius);background:var(--surface);width:100%;min-height:44px;box-shadow:var(--shadow-card);color:var(--text);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 14px;font-size:15px;transition:box-shadow .15s,color .15s,background .15s;display:flex}.subs-prompt-row:hover{box-shadow:var(--shadow-card-hover)}.subs-prompt-row.active{background:var(--accent);color:#fff}.subs-prompt-default-note{color:var(--text-muted);font-size:13px;font-weight:400}.subs-prompt-row.active .subs-prompt-default-note{color:#ffffffbf}.subs-prompt-continue{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;width:100%;height:50px;margin-top:16px;padding:0 20px;font-size:16px;font-weight:600;transition:background .15s}.subs-prompt-continue:hover{background:var(--accent-hover)}.subs-prompt-footnote{color:var(--text-muted);text-align:center;margin:10px 0 0;font-size:11px}.settings-speed-options+.settings-hint{margin-top:8px}.subs-request{margin-top:10px}.subs-request-link{min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;margin:-10px 0;padding:0;font-size:13px;text-decoration:underline;display:inline-flex}.subs-request-link:hover{color:var(--accent)}.subs-request-form{gap:8px;display:flex}.subs-request-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:0;height:44px;color:var(--text);flex:1;padding:0 12px;font-size:14px;transition:border-color .15s}.subs-request-input:focus{border-color:var(--accent);outline:none}.subs-request-send{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;flex:none;height:44px;padding:0 16px;font-size:14px;font-weight:600;transition:background .15s}.subs-request-send:hover:not(:disabled){background:var(--accent-hover)}.subs-request-send:disabled{opacity:.5;cursor:default}.subs-request-thanks{color:var(--text-muted);margin:10px 0 0;font-size:13px}.login-screen{width:100%;max-width:400px;margin-inline:auto}.login-back-link{color:var(--text-muted);margin-bottom:16px;font-size:14px;text-decoration:none;transition:color .2s;display:inline-block}.login-back-link:hover{color:var(--text)}.login-heading{margin:0 0 4px;font-size:28px}.login-subheading{color:var(--text-muted);margin:0 0 20px;font-size:14px}.login-unavailable{color:var(--text-muted);margin:0 0 16px;font-size:15px}.login-oauth-group{flex-direction:column;gap:10px;margin:20px 0 0;display:flex}.login-webview-banner{border:1px solid var(--warning-border,#eab30880);background:var(--warning-bg,#eab30814);border-radius:8px;flex-direction:column;gap:8px;margin:20px 0 0;padding:14px 16px;display:flex}.login-webview-banner-title{color:var(--text);margin:0;font-size:14px;font-weight:600}.login-webview-banner-body{color:var(--text-muted);margin:0;font-size:13px;line-height:1.45}.login-webview-copy-btn{border:1px solid var(--border);background:var(--surface,#fff);color:var(--text);cursor:pointer;border-radius:6px;align-self:flex-start;padding:6px 12px;font-size:13px;font-weight:500}.login-webview-copy-btn:hover{background:var(--surface-hover,#0000000a)}.login-visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.login-oauth-btn{cursor:pointer;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;align-items:center;gap:12px;padding:12px 20px;font-size:15px;font-weight:600;transition:background .15s,border-color .15s;display:flex}.login-oauth-icon{flex-shrink:0;width:18px;height:18px}.login-oauth-label{text-align:center;flex:1;margin-right:30px}.login-oauth-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.login-oauth-btn:disabled{opacity:.5;cursor:not-allowed}.login-divider{color:var(--text-muted);align-items:center;gap:12px;margin:20px 0;font-size:13px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.login-form{flex-direction:column;gap:14px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-label{color:var(--text);font-size:14px;font-weight:600}.login-input{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);box-sizing:border-box;border-radius:8px;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.login-input:focus{border-color:var(--accent);outline:none}.login-input:disabled{opacity:.6}.login-error{color:var(--error);margin:0;font-size:13px}.login-submit{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:8px;width:100%;padding:12px 28px;font-size:16px;font-weight:600;transition:background .15s,border-color .15s}.login-submit:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-mode-toggle{color:var(--text-muted);text-align:center;margin:16px 0 0;font-size:14px}.login-mode-link{color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:14px;text-decoration:underline}.login-mode-link:hover{opacity:.8}.login-info{color:var(--text-muted);margin:0 0 4px;font-size:13px;line-height:1.45}.login-otp-actions{color:var(--text-muted);justify-content:center;align-items:center;gap:8px;margin:12px 0 0;font-size:13px;display:flex}.login-otp-sep{color:var(--text-muted);opacity:.6}.login-password-toggle-row{border-top:1px solid var(--border);text-align:center;margin:20px 0 0;padding-top:16px}.login-password-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:13px}.login-password-toggle:hover{color:var(--text)}.login-password-section{margin-top:12px}.login-password-form{margin-top:0}.auth-callback-error{width:100%;max-width:400px}.auth-callback-error h2{margin:0 0 12px;font-size:24px}.auth-callback-error-msg{color:var(--text-muted);margin:0 0 20px;font-size:14px;line-height:1.5}.auth-callback-back-link{color:var(--accent);text-underline-offset:2px;font-size:14px;text-decoration:underline;display:inline-block}.auth-callback-back-link:hover{opacity:.8}.app--wide{max-width:1120px}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:4px 0 14px;display:flex}.app-header-brand{color:var(--text-h);letter-spacing:-.02em;flex-shrink:0;font-size:19px;font-weight:700;text-decoration:none}.app-header-brand:hover{color:var(--accent)}.app-header-auth{align-items:center;gap:10px;min-width:0;display:flex}.app-header-user{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-size:13px;overflow:hidden}.app-header-auth-btn{background:var(--accent-light);color:var(--accent);cursor:pointer;white-space:nowrap;border:none;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:600;transition:background .15s}.app-header-auth-btn:hover{background:var(--accent-mid)}.app-header-auth-slot{width:64px;height:24px}.module-library{flex-direction:column;gap:14px;padding:0 0 32px;display:flex}.library-continue{border-radius:var(--radius);background:var(--bg-subtle);width:100%;color:var(--text-h);cursor:pointer;text-align:left;border:none;align-items:center;gap:14px;padding:12px 14px;transition:background .15s;display:flex}.library-continue:hover{background:var(--accent-light)}.library-continue-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.library-continue-label{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:600}.turn-strip{gap:2px;width:100%;margin-top:6px;display:flex}.turn-strip-seg{background:var(--text-muted);opacity:.35;border-radius:1px;height:5px}.turn-strip-seg.turn-strip-learner{background:var(--accent);opacity:.35}.turn-strip-seg.turn-strip-done{background:var(--text-h);opacity:1}.turn-strip-seg.turn-strip-done.turn-strip-learner{background:var(--accent);opacity:1}.library-continue-title{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.library-continue-play{background:var(--accent);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.library-section-head{justify-content:space-between;align-items:center;gap:12px;margin-top:2px;display:flex}.library-section-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:12px;font-weight:600}.library-make-module{color:var(--accent);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:6px;padding:6px 2px;font-size:14px;font-weight:600;transition:color .15s;display:inline-flex}.library-make-module:hover{color:var(--accent-hover)}.library-controls{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:44px;display:flex}.library-controls-right{align-items:center;gap:2px;margin-left:auto;display:flex}.library-icon-btn{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-h);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .15s;display:inline-flex}.library-icon-btn:hover{background:var(--accent-light);color:var(--accent)}.library-lang-select{align-items:center;display:inline-flex;position:relative}.library-lang-select select{appearance:none;border-radius:var(--radius-sm);max-width:150px;height:36px;color:var(--text-muted);cursor:pointer;text-overflow:ellipsis;background:0 0;border:none;outline:none;padding:0 22px 0 8px;font-size:13px;font-weight:500}.library-lang-select select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.library-lang-select-chevron{color:var(--text-muted);pointer-events:none;display:inline-flex;position:absolute;right:4px}.library-search-wrapper{flex:1;position:relative}.library-search-icon{color:var(--text-muted);pointer-events:none;display:inline-flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.library-search{box-sizing:border-box;border-radius:var(--radius-sm);width:100%;height:38px;box-shadow:var(--shadow-card);background:var(--surface);color:var(--text);border:none;outline:none;padding:0 32px;font-size:15px;transition:box-shadow .15s}.library-search::placeholder{color:var(--text-muted)}.library-search:focus{box-shadow:0 0 0 1.5px var(--accent)}.library-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 2px;font-size:18px;line-height:1;transition:color .15s;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.library-search-clear:hover{color:var(--text)}.library-sort{border-radius:var(--radius-sm);max-width:130px;height:38px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;outline:none;flex-shrink:0;padding:0 6px;font-size:13px;font-weight:500}.library-sort:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.library-scope{align-items:center;gap:18px;max-width:100%;display:inline-flex}.library-scope-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 0;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.library-scope-tab:hover{color:var(--text-h)}.library-scope-tab.active{color:var(--text-h);border-bottom-color:var(--text-h);font-weight:600}.library-empty{text-align:center;color:var(--text-muted);padding:40px 0;font-size:14px}.library-your-modules{flex-direction:column;gap:10px;display:flex}.library-your-modules-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:13px;font-weight:600}.library-grid{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}@media (width>=720px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}@media (width>=1040px){.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.library-card,.library-card-skeleton{text-align:left;background:var(--surface);border-radius:var(--radius);width:100%;height:100%;box-shadow:var(--shadow-card);color:var(--text);cursor:pointer;border:none;flex-direction:column;gap:3px;padding:14px 16px;transition:transform .12s,box-shadow .2s;display:flex;position:relative}.library-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.library-card.has-stamp .library-card-title{padding-right:56px}.library-card>.run-stamp{position:absolute;top:8px;right:12px}.library-card-skeleton{cursor:default}.library-card-title{letter-spacing:-.01em;color:var(--text-h);text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:17px;font-weight:600;line-height:1.25;display:-webkit-box;overflow:hidden}.library-card-native{color:var(--text-muted);font-size:13px}.library-card-context{color:var(--text);opacity:.8;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.library-card-generating-status{-webkit-line-clamp:unset;align-items:center;gap:6px;display:flex}.library-card-pending{box-shadow:inset 0 0 0 1px var(--border)}.library-card-foot{flex-wrap:wrap;align-items:center;gap:8px;margin-top:auto;padding-top:10px;display:flex}.library-card-lang,.module-lang-pill{--lang-h:200;border:1.5px solid oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));height:22px;color:oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:3px;flex:none;align-items:center;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.run-stamp{--lang-h:200;border:2px solid oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));box-shadow:inset 0 0 0 3px var(--surface), inset 0 0 0 4px oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));color:oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));opacity:.85;font-variant-numeric:tabular-nums;letter-spacing:-.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;transform:rotate(-9deg)}.run-stamp-sm{width:40px;height:40px;font-size:13px}.run-stamp-lg{width:52px;height:52px;font-size:16px}.library-card-progress{color:var(--accent);white-space:nowrap;font-size:12px;font-weight:500}@media (width<=480px){.library-continue-title{font-size:15px}.library-card,.library-card-skeleton{padding:13px 14px}.library-card-title{font-size:16px}}.library-card-tag{background:var(--accent-light);color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.library-card-tag-done{background:color-mix(in srgb, var(--success) 12%, transparent);color:var(--success)}.start-screen{gap:0}.start-topbar{justify-content:space-between;align-items:center;gap:12px;min-height:36px;margin-bottom:10px;display:flex}.start-topbar-actions{align-items:center;gap:8px;display:flex}.start-topbar .audio-speed-btn,.start-topbar .settings-gear-btn{border-radius:8px;min-width:34px;height:34px;font-size:13px}.start-topbar .audio-speed-btn{padding:0 10px}.back-button{cursor:pointer;color:var(--accent);background:0 0;border:none;border-radius:999px;align-items:center;gap:2px;padding:6px 12px 6px 8px;font-size:14px;font-weight:600;text-decoration:none;transition:background .2s;display:inline-flex}.back-button:hover{background:var(--accent-light)}.module-info{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.module-eyebrow{align-items:center;gap:10px;min-height:22px;display:flex}.module-eyebrow .run-stamp{box-shadow:inset 0 0 0 3px var(--bg), inset 0 0 0 4px oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));margin-left:auto}.module-eyebrow-meta{color:var(--text-muted);white-space:nowrap;font-size:12px;font-weight:500}.module-info h1{letter-spacing:-.02em;text-wrap:pretty;margin:2px 0 0;font-size:25px;font-weight:700;line-height:1.15}.module-title-native{color:var(--text-muted);margin:0;font-size:17px}.module-blurb{color:var(--text);opacity:.85;text-wrap:pretty;margin:2px 0 0;font-size:14px;line-height:1.45}.module-context{color:var(--text);background:var(--bg-subtle);border-radius:var(--radius);margin:4px 0 0;padding:12px 16px;font-size:14px;line-height:1.5}.module-disclosures{flex-wrap:wrap;gap:20px;margin-top:0;display:flex}.module-disclosure{min-height:40px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:0;align-items:center;gap:5px;padding:0;font-size:14px;font-weight:600;transition:color .15s;display:inline-flex}.module-disclosure:hover,.module-disclosure.open{color:var(--accent-hover)}.module-disclosure svg{transition:transform .15s}.cultural-notes-list{background:var(--bg-subtle);border-radius:var(--radius);color:var(--text);margin:4px 0 0;padding:12px 16px 12px 32px;font-size:14px;line-height:1.5}.cultural-notes-list li+li{margin-top:8px}.happy-path-preview{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);border:none;flex-direction:column;gap:10px;margin:0 0 14px;padding:12px 14px 10px;display:flex}.happy-path-btn{width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:14px;padding:0;display:flex}.happy-path-icon{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:background .15s,transform .12s;display:inline-flex}.happy-path-btn:hover .happy-path-icon{background:var(--accent-hover)}.happy-path-btn:active .happy-path-icon{transform:scale(.96)}.happy-path-label{flex-direction:column;gap:2px;min-width:0;display:flex}.happy-path-title{color:var(--text-h);font-size:15px;font-weight:600}.happy-path-sub{color:var(--text-muted);font-size:12px}.happy-path-speed{color:var(--accent);font-variant-numeric:tabular-nums;font-weight:600}.happy-path-bar{cursor:pointer;touch-action:none;padding:4px 0;position:relative}.happy-path-bar-track{background:var(--bg-subtle);border-radius:4px;gap:1px;height:8px;display:flex;position:relative;overflow:hidden}.happy-path-bar-section{background:var(--text-muted);opacity:.35;height:100%;transition:opacity .15s}.happy-path-bar-learner{background:var(--accent);opacity:.45}.happy-path-bar-section.active{opacity:1}.happy-path-bar:hover .happy-path-bar-section:not(.active){opacity:.6}.happy-path-bar-progress{pointer-events:none;border-right:2px solid var(--text-h);background:#ffffff40;height:100%;transition:width .1s linear;position:absolute;top:0;left:0}.happy-path-bar-tooltip{background:var(--text-h);max-width:280px;color:var(--bg);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;z-index:10;border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.4;position:absolute;bottom:calc(100% + 6px);left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 2px 8px #0003}.happy-path-bar-dot{vertical-align:middle;background:var(--text-muted);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.happy-path-bar-dot-learner{background:var(--accent)}.happy-path-subtitle{background:var(--bg);opacity:.8;border-radius:10px;flex-direction:column;gap:2px;min-height:56px;padding:9px 12px;transition:opacity .15s;display:flex}.happy-path-subtitle.live{opacity:1}.happy-path-subtitle-speaker{letter-spacing:.02em;color:var(--text-muted);font-size:12px;font-weight:600}.happy-path-speaker-learner{color:var(--accent)}.happy-path-subtitle-text{color:var(--text-h);text-wrap:pretty;font-size:17px;font-weight:500;line-height:1.35}.happy-path-subtitle-romanization{color:var(--text-muted);font-size:13px}.happy-path-subtitle-meaning{color:var(--text-muted);font-size:14px;line-height:1.35}.happy-path-subtitle .phrase-slot{background:var(--accent-light);color:var(--accent);border-radius:4px;padding:0 4px;font-size:.85em}.happy-path-subtitle-controls{justify-content:space-between;align-items:center;gap:12px;display:flex}.happy-path-subtitle-nav{align-items:center;gap:10px;display:flex}.happy-path-subtitle-step,.happy-path-transcript-toggle{color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 8px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.happy-path-subtitle-step:hover:not(:disabled),.happy-path-transcript-toggle:hover{background:var(--accent-light)}.happy-path-subtitle-step:disabled{color:var(--text-muted);opacity:.5;cursor:default}.happy-path-subtitle-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.happy-path-transcript-toggle{color:var(--accent)}.happy-path-transcript{border-top:1px solid var(--border);flex-direction:column;gap:2px;max-height:320px;margin:0;padding:8px 0 0;list-style:none;display:flex;overflow-y:auto}.happy-path-transcript-line{width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;grid-template-columns:72px minmax(0,1fr);gap:10px;padding:6px 8px;font-size:14px;line-height:1.4;display:grid}.happy-path-transcript-line:hover{background:var(--bg-subtle)}.happy-path-transcript-line.active{background:var(--accent-light)}.happy-path-transcript-speaker{letter-spacing:.02em;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;padding-top:3px;font-size:11px;font-weight:600;overflow:hidden}.happy-path-transcript-text{color:var(--text-h)}.happy-path-transcript-meaning{color:var(--text-muted)}.start-actions{flex-direction:column;align-items:stretch;gap:10px;display:flex}.start-screen .start-button{border-radius:var(--radius);width:100%;height:50px;padding:0 20px;font-size:16px}.conversation-button{border-radius:var(--radius);border:1.5px solid var(--accent);background:var(--surface);width:100%;height:46px;color:var(--accent);cursor:pointer;padding:0 20px;font-size:16px;font-weight:600;transition:background .15s,color .15s}.conversation-button:hover:not(:disabled){background:var(--accent-light)}.conversation-button:disabled,.start-screen .start-button:disabled{opacity:.7;cursor:default}.start-reference-row{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:8px;margin-top:10px;display:grid}.tree-button{border-radius:var(--radius);box-shadow:var(--shadow-card);background:var(--surface);color:var(--text-h);cursor:pointer;border:none;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 6px;font-size:13px;font-weight:600;transition:box-shadow .2s,background .2s;display:flex}.tree-button svg{color:var(--accent)}.tree-button:hover:not(:disabled){box-shadow:var(--shadow-card-hover);background:var(--accent-light)}.tree-button:disabled{opacity:.7;cursor:default}.reference-button-title{font-size:13px;font-weight:600}.stamps-row{margin-top:18px}.stamps-row-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.stamps-row-marks{gap:10px;margin-top:8px;display:flex;overflow:hidden}.date-stamp{--lang-h:200;--stamp-rot:-8deg;border:2px solid oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));width:58px;height:58px;box-shadow:inset 0 0 0 3px var(--bg), inset 0 0 0 4px oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));color:oklch(var(--stamp-l) var(--stamp-c) var(--lang-h));transform:rotate(var(--stamp-rot));opacity:.8;border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-items:center;display:flex}.date-stamp-date{letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:9px;font-weight:700}.date-stamp-code{letter-spacing:.06em;opacity:.8;font-size:8px;font-weight:600}.start-progress{margin-top:18px}.start-screen{padding-bottom:72px}@media (width<=380px){.module-info h1{font-size:23px}.happy-path-subtitle-text{font-size:17px}}.reroll-status{background:var(--accent-light);color:var(--accent);border-radius:999px;align-self:flex-start;align-items:center;gap:6px;margin-top:4px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.reroll-status-done{background:color-mix(in srgb, var(--success) 12%, transparent);color:var(--success)}.conversation-button{border:2px solid var(--accent);cursor:pointer;color:var(--accent);background:0 0;border-radius:8px;padding:10px 24px;font-size:15px;font-weight:600;transition:background .2s,color .2s}.conversation-button:hover:not(:disabled){background:var(--accent);color:#fff}.conversation-button:disabled{opacity:.65;cursor:wait}.conv2{flex-direction:column;min-height:100vh;display:flex}.conv2-scene{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:12px;padding:0 4px 12px;display:flex}.conv2-scene-glyph{background:var(--accent-light);border-radius:50%;flex-shrink:0;width:36px;height:36px}.conv2-scene-name{color:var(--text-h);font-size:13px;font-weight:600}.conv2-scene-sub{color:var(--text-muted);font-size:11px}.conv2-scroll{flex-direction:column;flex:1;gap:10px;padding:0 4px;display:flex;overflow-y:auto}.conv2-bubble{border-radius:14px;max-width:84%;padding:8px 12px}.conv2-bubble--them{background:var(--bg-subtle);border-bottom-left-radius:4px;align-self:flex-start}.conv2-bubble--you{background:var(--accent-light);border:1px solid var(--accent-mid);border-bottom-right-radius:4px;align-self:flex-end}.conv2-bubble--frozen{opacity:.72}.conv2-bubble--playing{border:1px solid var(--accent-mid);background:var(--bg)}.conv2-bubble-text{color:var(--text-h);font-size:15px}.conv2-bubble .audio-controls{justify-content:flex-start;margin-top:8px;margin-bottom:0}.conv2-bubble-caption{color:var(--text-muted);margin-bottom:2px;font-size:11px;font-style:italic}.conv2-bubble-muted{color:var(--text-muted);font-size:13px}.conv2-bubble--audio-only{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.conv2-bubble-gloss{color:var(--text-muted);margin-top:1px;font-size:11.5px}.conv2-scene-line{text-align:center;max-width:90%;color:var(--text-muted);align-self:center;padding:2px 8px;font-size:12px;font-style:italic}.conv2-mark{vertical-align:middle;margin-left:6px;font-size:10px;display:inline-block}.conv2-mark--supported{color:var(--warning)}.conv2-mark--free,.conv2-mark--judged{color:var(--text-muted)}.conv2-bubble-note{color:var(--text-muted);margin-top:3px;font-size:11.5px;font-style:italic}.conv2-reveal{border:1.5px dashed var(--accent);background:var(--bg);border-radius:14px 14px 4px;align-self:flex-end;max-width:88%;padding:10px 12px}.conv2-reveal-tag{letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:700}.conv2-reveal-text{color:var(--text-h);font-size:16px}.conv2-reveal-insert{width:100%;text-align:inherit;font:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;display:block}.conv2-reveal-romanization,.conv2-reveal-gloss{color:var(--text-muted);margin-top:1px;font-size:11.5px}.conv2-reveal-hint{color:var(--text-muted);margin-top:5px;font-size:11.5px}.conv2-take{border:1.5px dashed var(--accent);background:var(--bg);border-radius:14px 14px 4px;align-self:flex-end;max-width:88%;margin-left:auto;padding:10px 12px}.conv2-take-tag{letter-spacing:.06em;color:var(--accent);text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:700}.conv2-take-text{color:var(--text-h);font-size:16px}.conv2-take-caption{color:var(--text-muted);margin-top:5px;font-size:11.5px}.conv2-take-play-row{align-items:center;gap:8px;margin-top:10px;display:flex}.conv2-take-play{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:6px 14px;font-size:13px;line-height:1;display:inline-flex}.conv2-take-play:disabled{opacity:.5;cursor:default}.conv2-take-decide{align-items:center;gap:8px;margin-top:10px;display:flex}.conv2-take-retry,.conv2-take-send{text-align:center;cursor:pointer;border-radius:10px;flex:1;padding:9px 14px;font-size:14px}.conv2-take-retry{border:1px solid var(--border);background:var(--bg);color:var(--text-h)}.conv2-take-send{border:1px solid var(--accent);background:var(--accent);color:#fff;font-weight:600}.conv2-voice-mode{background:var(--bg-subtle);border-radius:8px;justify-content:center;align-self:center;gap:2px;width:fit-content;margin-bottom:8px;margin-left:auto;margin-right:auto;padding:2px;display:flex}.conv2-vm-opt{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:6px;padding:4px 12px;font-family:inherit;font-size:11px;font-weight:500;transition:background .15s,color .15s}.conv2-vm-opt--active{background:var(--accent);color:#fff;font-weight:600}.conv2-edge{padding:0 4px calc(12px + env(safe-area-inset-bottom,0px));margin-top:12px}.conv2-miss,.conv2-judging{color:var(--text-muted);text-align:center;margin-bottom:6px;font-size:12px}.conv2-recap-stars{gap:4px;margin:8px 0 0;display:flex}.conv2-star{fill:none;stroke:var(--border);stroke-width:1.5px;stroke-linejoin:round}.conv2-star--on{fill:#e8b04b;stroke:#e8b04b}.conv2-recap .complete-actions{align-items:stretch;width:100%;max-width:280px}.conv2-recap-detail{color:var(--text-muted);margin:0 0 8px;font-size:14px}.conv2-voice-strip{border:1px dashed var(--accent);width:100%;color:var(--text-h);font:inherit;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:10px;margin-bottom:6px;padding:8px 14px;display:flex}.conv2-voice-strip--endpointing{opacity:.7}.conv2-voice-strip-label{font-size:13px}.conv2-voice-done{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border-radius:999px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600}.conv2-mic-toggle--off{opacity:.4}.conv2-cue{color:var(--text-muted);text-align:center;margin-bottom:6px;font-size:12px}.conv2-band{gap:8px;display:flex}.conv2-input{border:1px solid var(--border);min-width:0;color:var(--text-h);background:var(--bg);border-radius:12px;flex:1;padding:11px 14px;font-size:15px}.conv2-send{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;padding:0 18px;font-size:14px;font-weight:600}.conv2-edge-hint{text-align:center;min-height:20px;margin-top:8px}.conv2-stuck{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:2px 8px;font-size:11px;text-decoration:underline}.conv2-continue{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:10px;margin-top:8px;padding:6px 14px;font-size:13px}.conv2-recap{padding:16px 4px}.conv2-recap-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px;font-weight:600}.conv2-recap-title{margin:0;font-size:28px}.conv2-recap-sub{color:var(--text-muted);margin:0;font-size:16px}.lab-app{flex-direction:column;gap:14px;max-width:560px;padding:16px 18px 40px;display:flex}.lab-topbar,.lab-rep-topbar{justify-content:space-between;align-items:center;min-height:32px;display:flex}.lab-exit-btn{border-radius:var(--radius);min-height:44px;color:var(--text-h);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-left:-10px;padding:0 12px 0 8px;font-family:inherit;font-size:14px;font-weight:600;transition:color .2s,background .2s;display:inline-flex}.lab-exit-btn:hover{background:var(--accent-light);color:var(--accent)}.lab-rep-counter{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:13px}.lab-eyebrow{color:var(--text-muted);letter-spacing:.02em;margin:0;font-size:13px}.lab-title{color:var(--text-h);margin:0;font-size:26px;font-weight:600;line-height:1.15}.lab-lede,.lab-message,.lab-empty,.lab-maintenance,.lab-summary-count,.lab-summary-still{color:var(--text-muted);margin:0;font-size:14px;line-height:1.5}.lab-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.lab-card-heading,.lab-summary-heading{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:6px;margin:0;font-size:12px;font-weight:600;display:flex}.lab-dot{border:1.5px solid var(--text-muted);flex:none;width:11px;height:11px}.lab-dot-unconfirmed{background:0 0;border-radius:50%}.lab-dot-effortful{background:linear-gradient(to right, var(--text-muted) 0 50%, transparent 50% 100%);border-radius:2px}.lab-dot-automatic{border-color:var(--accent);background:var(--accent);border-radius:2px;transform:rotate(45deg)}.lab-counts{gap:18px;margin:0;padding:0;list-style:none;display:flex}.lab-count{align-items:center;gap:6px;font-size:14px;display:flex}.lab-count-n{color:var(--text-h);font-variant-numeric:tabular-nums;font-weight:600}.lab-count-word{color:var(--text-muted)}.lab-word-list,.lab-summary-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lab-word{align-items:center;gap:8px;font-size:15px;display:flex}.lab-word-surface{color:var(--text-h);font-weight:500}.lab-word-state{color:var(--text-muted);flex:1;font-size:13px}.lab-pips{gap:3px;display:inline-flex}.lab-pip{border:1px solid var(--text-muted);border-radius:50%;width:6px;height:6px}.lab-pip.is-filled{border-color:var(--accent);background:var(--accent)}.lab-speed{align-items:center;gap:8px;display:flex}.lab-speed-group{border:1px solid var(--border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.lab-speed-btn{border:none;border-right:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;padding:7px 12px;font-family:inherit;font-size:13px}.lab-speed-btn:last-child{border-right:none}.lab-speed-btn.is-selected{background:var(--accent-light);color:var(--accent);font-weight:600}.lab-rep{flex-direction:column;gap:18px;display:flex}.lab-rep-voice{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.lab-voice-tag{border:1px solid var(--border);border-radius:999px;padding:2px 8px;font-size:11px}.lab-listen,.lab-anchor,.lab-reveal{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.lab-prev-card{border:1px solid var(--tint-edge);border-radius:var(--radius);background:var(--tint-wash);text-align:left;--tint:var(--accent);--tint-wash:var(--surface);--tint-edge:var(--border);flex-direction:column;align-self:stretch;gap:3px;padding:13px 16px;transition:border-color .24s,background-color .24s;animation:.22s ease-out lab-prev-in;display:flex;position:relative;overflow:hidden}.lab-prev-card.is-got{--tint:var(--accent);--tint-wash:var(--accent-light);--tint-edge:var(--accent-mid)}.lab-prev-card.is-missed{--tint:var(--warning);--tint-wash:var(--warning-light);--tint-edge:var(--warning-mid)}.lab-prev-sheen{pointer-events:none;background:linear-gradient(100deg, transparent 34%, var(--tint) 50%, transparent 66%);opacity:.22;background-size:260% 100%;animation:.62s ease-out both lab-prev-sweep;position:absolute;inset:0}.lab-prev-sheen.is-back{animation-name:lab-prev-sweep-back}@keyframes lab-prev-sweep{0%{opacity:.22;background-position:130% 0}70%{opacity:.22}to{opacity:0;background-position:-30% 0}}@keyframes lab-prev-sweep-back{0%{opacity:.22;background-position:-30% 0}70%{opacity:.22}to{opacity:0;background-position:130% 0}}.lab-prev-head{justify-content:space-between;align-items:center;gap:12px;min-height:20px;display:flex}.lab-prev-outcome{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;opacity:.68;margin:0;font-size:11px;font-weight:600}.lab-prev-undo{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.lab-prev-undo:after{content:"";position:absolute;inset:-12px}.lab-prev-undo:hover,.lab-prev-undo:focus-visible{color:var(--text-h)}.lab-prev-line{color:var(--text-h);opacity:.68;margin:0;font-size:19px;line-height:1.35}.lab-prev-target{background:var(--accent-mid);color:inherit;border-radius:3px;padding:0 2px}.lab-prev-sub{color:var(--text-muted);opacity:.68;margin:0;font-size:13px;line-height:1.45}@keyframes lab-prev-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.lab-listen-figure{justify-content:center;align-items:center;width:100%;min-height:120px;display:flex}.lab-wave{background:var(--border);border-radius:999px;width:96px;height:4px}.lab-wave.is-playing{background:var(--accent);animation:1.1s ease-in-out infinite lab-wave-pulse}.lab-wave.is-loading{background:linear-gradient(90deg, var(--border) 0%, var(--text-muted) 50%, var(--border) 100%);background-size:200% 100%;animation:1.2s linear infinite lab-wave-load}@keyframes lab-wave-pulse{0%,to{opacity:.65;transform:scaleX(.55)}50%{opacity:1;transform:scaleX(1)}}@keyframes lab-wave-load{0%{background-position:200% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.lab-wave.is-playing,.lab-wave.is-loading,.lab-prev-card{animation:none}.lab-prev-sheen{display:none}}.lab-listen-prompt,.lab-anchor-lead,.lab-reveal-lead{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:13px}.lab-listen-prompt{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:inline-flex}.lab-listen-prompt .support-note-tip{text-transform:none;letter-spacing:normal}.lab-speed .support-note-tip{left:auto;right:0;transform:none}.lab-listen-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.lab-replay-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;align-items:center;gap:7px;padding:9px 14px;font-family:inherit;font-size:14px;display:inline-flex}.lab-replay-btn.playing{border-color:var(--accent);color:var(--accent)}.lab-grade-row{gap:10px;width:100%;display:flex}.lab-grade-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);cursor:pointer;flex:1;padding:16px 10px;font-family:inherit;font-size:16px}.lab-grade-got{border-color:var(--accent);color:var(--accent);font-weight:600}.lab-anchor-statement{color:var(--text-h);margin:0;font-size:19px;line-height:1.35}.lab-reveal-line{color:var(--text-h);margin:0;font-size:24px;line-height:1.45}.lab-reveal-target{background:var(--accent-mid);color:inherit;border-radius:3px;padding:0 2px}.lab-reveal-romanization,.lab-reveal-gloss,.lab-reveal-word,.lab-reveal-note{color:var(--text-muted);margin:0;font-size:14px;line-height:1.5}.lab-reveal-word strong{color:var(--text-h)}.lab-reveal-note{font-size:13px}.lab-primary-btn,.lab-continue-btn{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;width:100%;padding:15px 18px;font-family:inherit;font-size:16px;font-weight:600}.lab-primary-btn:disabled{background:var(--bg-subtle);color:var(--text-muted);cursor:default}.lab-secondary-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;align-self:flex-start;padding:10px 16px;font-family:inherit;font-size:14px}.lab-summary{flex-direction:column;gap:18px;display:flex}.lab-summary-section{flex-direction:column;gap:8px;display:flex}.lab-summary-word{color:var(--text-h);font-size:16px}.lab-summary-parked{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.lab-summary-action{color:var(--accent);text-align:right;cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit;font-size:14px}.lab-entry-button{border-style:dashed}.lab-offline{gap:8px}.lab-offline-btn{text-align:center;align-self:stretch}.lab-offline-btn:disabled{color:var(--text-muted);cursor:default}.lab-offline-status{color:var(--text-muted);margin:0;font-size:13px}.lab-offline-bar{background:var(--bg-subtle);border-radius:2px;height:4px;overflow:hidden}.lab-offline-bar>span{background:var(--accent);height:100%;transition:width .2s;display:block}.lab-offline-note{color:var(--text-muted);margin:0;font-size:13px}@media (prefers-reduced-motion:reduce){.lab-offline-bar>span{transition:none}}.landing{width:100%;min-height:100vh;color:var(--text);background:var(--bg);overflow-x:clip}.landing-armed .landing-reveal{opacity:0;transition:opacity .7s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s), transform .7s cubic-bezier(.22, 1, .36, 1) var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(24px)}.landing-armed .landing-reveal.is-revealed{opacity:1;transform:translate(0,0)}.landing-container{width:100%;max-width:1080px;margin:0 auto;padding:0 24px}.landing-nav{z-index:10;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.4)blur(8px);backdrop-filter:saturate(1.4)blur(8px);border-bottom:1px solid #0000;transition:border-color .2s,box-shadow .25s,background .2s;position:sticky;top:0}.landing-nav.is-scrolled{background:color-mix(in srgb, var(--bg) 94%, transparent);border-bottom-color:var(--border);box-shadow:var(--shadow-card)}.landing-nav-inner{justify-content:space-between;align-items:center;gap:24px;max-width:1080px;margin:0 auto;padding:10px 24px;transition:padding .2s;display:flex}.landing-nav.is-scrolled .landing-nav-inner{padding-top:6px;padding-bottom:6px}.landing-logo{color:var(--text-h);letter-spacing:-.01em;font-size:20px;font-weight:700;text-decoration:none}.landing-nav-links{align-items:center;gap:20px;display:flex}.landing-nav-links a{color:var(--text);font-size:14px;font-weight:500;text-decoration:none}.landing-nav-links a:hover{color:var(--accent)}.landing-nav-links a.landing-nav-cta{border:1.5px solid var(--accent);border-radius:var(--radius);background:var(--surface);height:46px;color:var(--accent);align-items:center;padding:0 18px;font-size:15px;font-weight:600;transition:background .15s;display:inline-flex}.landing-nav-links a.landing-nav-cta:hover{background:var(--accent-light);color:var(--accent)}.landing-hero{text-align:center;background:var(--bg);--landing-scroll-y:0;justify-content:center;align-items:center;min-height:70vh;padding:88px 0 64px;display:flex;position:relative;overflow:hidden}.landing-hero-content{z-index:1;width:100%;position:relative}.landing-headline{letter-spacing:-.02em;color:var(--text-h);max-width:880px;margin:0 auto 24px;font-size:clamp(32px,5vw,56px);font-weight:700;line-height:1.1}.landing-subhead{color:var(--text);max-width:680px;margin:0 auto 36px;font-size:clamp(16px,1.6vw,20px);line-height:1.5}.landing-hero-ctas{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.landing-hero-turns{max-width:720px;margin:44px auto 0}.landing-hero-strip{margin-top:0}.landing-hero-strip .turn-strip-seg{height:8px}.landing-hero-turns-caption{color:var(--text-muted);text-align:center;margin-top:12px;font-size:13px;line-height:1.6}.landing-hero-turns-legend,.landing-hero-turns-meta{white-space:nowrap}.landing-hero-turn-dot{vertical-align:middle;border-radius:1px;width:12px;height:5px;display:inline-block}.landing-hero-turn-dot-other{background:var(--text-h)}.landing-hero-turn-dot-learner{background:var(--accent)}.landing-hero-turns-sep{background:var(--border);vertical-align:-2px;width:1px;height:12px;margin:0 8px;display:inline-block}.landing-btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;height:50px;padding:0 24px;font-size:16px;font-weight:600;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.landing-btn-primary{background:var(--accent);color:var(--surface)}.landing-btn-primary:hover{background:var(--accent-hover);color:var(--surface)}.landing-section{background:var(--bg);padding:96px 0 72px;scroll-margin-top:76px;position:relative}.landing-section>.landing-container{width:100%}.landing-split,.landing-anything,.landing-personas,.landing-faq{background:var(--bg-subtle)}.landing-section-title{color:var(--text-h);letter-spacing:-.01em;margin:0 0 24px;font-size:clamp(24px,3vw,32px);font-weight:700}.landing-lede{color:var(--text-h);margin:0 0 16px;font-size:clamp(18px,2vw,22px);line-height:1.4}.landing-body{color:var(--text);max-width:720px;margin:0 0 16px;font-size:17px;line-height:1.6}.landing-body-emphasis{color:var(--text-h);font-size:18px}.landing-split{padding:96px 0;scroll-margin-top:76px;position:relative}.landing-split-intro{text-align:center;max-width:720px;margin:0 auto 56px}.landing-split-intro-body{color:var(--text);margin:0;font-size:17px;line-height:1.55}.landing-split-container{grid-template-columns:minmax(280px,360px) 1fr;align-items:stretch;gap:64px;display:grid}.landing-split-phone-wrap{justify-content:center;align-self:center;display:flex}.landing-split-phone{--landing-device:color-mix(in srgb, var(--text-h) 45%, var(--bg));border-radius:var(--radius-lg);background:var(--landing-device);width:100%;max-width:280px;box-shadow:var(--shadow-card-hover);padding:9px}.landing-split-phone-frame{border-radius:var(--radius);background:var(--bg);flex-direction:column;width:100%;display:flex;position:relative;overflow:hidden}.landing-split-phone-notch{background:var(--landing-device);z-index:2;border-radius:999px;width:78px;height:18px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.landing-split-phone-screen{background:var(--bg);flex-direction:column;gap:12px;padding:30px 12px 18px;display:flex}.landing-split-phone-header{color:var(--text-h);text-align:center;border-bottom:1px solid var(--border);letter-spacing:-.01em;padding:4px 0 6px;font-size:13px;font-weight:600}.landing-split-bubble{border-radius:var(--radius);flex-direction:column;gap:3px;padding:10px 12px;font-size:12px;line-height:1.35;display:flex}.landing-split-bubble-them{background:var(--surface);box-shadow:var(--shadow-card);align-self:flex-start;max-width:94%}.landing-split-bubble-label{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:9px;font-weight:600}.landing-split-bubble-native{color:var(--text-h);font-size:13px;font-weight:500}.landing-split-bubble-roman{color:var(--text-muted);font-size:10px;font-style:italic}.landing-split-bubble-replay{color:var(--accent);align-self:flex-start;align-items:center;gap:4px;margin-top:4px;font-size:10px;font-weight:600;display:inline-flex}.landing-split-bubble-replay svg{fill:currentColor;width:9px;height:9px}.landing-split-phone-screen[data-phase="0"] .landing-split-bubble-replay{animation:1.1s ease-in-out infinite landing-split-pulse}@keyframes landing-split-pulse{0%,to{opacity:1}50%{opacity:.4}}.landing-split-reply{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);flex-direction:column;gap:4px;padding:10px 12px 12px;transition:border-color .22s;display:flex;position:relative}.landing-split-phone-screen[data-phase="1"] .landing-split-reply{border-color:var(--accent)}.landing-split-reply-label{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-size:9px;font-weight:600}.landing-split-reply-text{color:var(--text-h);flex-wrap:wrap;align-items:baseline;gap:2px;font-size:14px;font-weight:500;line-height:1.3;display:flex}.landing-split-reply-roman{color:var(--text-muted);font-size:10px;font-style:italic}.landing-split-typein{align-items:baseline;margin:0 1px;display:inline-flex;position:relative}.landing-split-typein-blank{border-bottom:2px solid var(--accent);width:28px;height:1.1em;transition:opacity .18s;display:inline-block;position:relative}.landing-split-typein-blank:after{content:"";background:var(--accent);width:2px;animation:1s step-end infinite landing-split-caret;position:absolute;top:0;bottom:4px;left:4px}.landing-split-typein-fill{background:var(--accent-light);color:var(--text-h);opacity:0;pointer-events:none;white-space:nowrap;border-radius:4px;padding:0 4px;font-weight:600;transition:opacity .18s 60ms,transform .22s cubic-bezier(.34,1.56,.64,1) 60ms;display:inline-block;position:absolute;left:0;transform:translateY(2px)}.landing-split-phone-screen[data-phase="1"] .landing-split-typein-blank{opacity:0}.landing-split-phone-screen[data-phase="1"] .landing-split-typein-blank:after{opacity:0;animation:none}.landing-split-phone-screen[data-phase="1"] .landing-split-typein-fill{opacity:1;position:static;transform:translateY(0)}@keyframes landing-split-caret{0%,50%{opacity:1}51%,to{opacity:0}}.landing-split-reply-check{background:var(--accent);width:18px;height:18px;color:var(--surface);opacity:0;border-radius:50%;justify-content:center;align-items:center;transition:opacity .2s 80ms,transform .22s cubic-bezier(.34,1.56,.64,1) 80ms;display:inline-flex;position:absolute;top:8px;right:10px;transform:scale(.6)}.landing-split-phone-screen[data-phase="1"] .landing-split-reply-check{opacity:1;transform:scale(1)}.landing-split-copy{flex-direction:column;justify-content:space-between;gap:40px;display:flex}.landing-split-panel{flex-direction:column;gap:10px;max-width:520px;display:flex}.landing-split-panel-index{color:var(--accent);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:700}.landing-split-panel h3{letter-spacing:-.01em;color:var(--text-h);margin:0;font-size:clamp(20px,2.2vw,26px);line-height:1.2}.landing-split-panel p{color:var(--text);margin:0;font-size:16px;line-height:1.5}@media (width<=880px){.landing-split{padding:56px 0}.landing-split-container{grid-template-columns:1fr;gap:40px}.landing-split-intro{margin-bottom:32px}.landing-split-intro-body{font-size:15px}.landing-split-copy{gap:40px}.landing-split-panel{max-width:100%}.landing-hero{min-height:auto;padding:72px 0 48px}.landing-section{padding:64px 0}}.landing-why-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:8px;display:grid}.landing-why-card{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);padding:24px;transition:transform .12s,box-shadow .2s}.landing-why-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.landing-why-card h3{color:var(--text-h);margin:0 0 8px;font-size:18px;line-height:1.3}.landing-why-card p{color:var(--text);margin:0;line-height:1.55}.landing-typewriter{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:14px;max-width:720px;min-height:60px;margin:28px 0;padding:8px 8px 8px 20px;font-size:16px;line-height:1.5;display:flex}.landing-typewriter-prefix{color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0;font-weight:500}.landing-typewriter-prefix:after{content:":"}.landing-typewriter-text{min-width:0;color:var(--text-h);word-break:break-word;flex:200px;font-style:italic}.landing-typewriter-caret{background:var(--accent);vertical-align:-.15em;width:2px;height:1.05em;margin-left:3px;animation:1s step-end infinite landing-caret-blink;display:inline-block}.landing-typewriter-button{background:var(--accent);height:44px;color:var(--surface);border-radius:var(--radius);-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;padding:0 18px;font-size:15px;font-weight:600;display:inline-flex}@keyframes landing-caret-blink{0%,50%{opacity:1}51%,to{opacity:0}}.landing-library-grid{grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px;display:grid}.landing-library-card{border-radius:var(--radius);background:var(--surface);height:100%;box-shadow:var(--shadow-card);color:var(--text);flex-direction:column;gap:3px;padding:14px 16px;text-decoration:none;transition:transform .12s,box-shadow .2s;display:flex}.landing-library-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.landing-library-title{letter-spacing:-.01em;color:var(--text-h);text-wrap:pretty;font-size:17px;font-weight:600;line-height:1.25}.landing-library-native{color:var(--text-muted);font-size:13px}.landing-library-foot{align-items:center;gap:8px;margin-top:auto;padding-top:10px;display:flex}.landing-library-cta{text-align:center;margin-top:24px}.landing-link{color:var(--accent);font-weight:600;text-decoration:none}.landing-link:hover{text-decoration:underline}.landing-persona-list{gap:20px;margin-top:8px;display:grid}.landing-persona{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:20px 24px}.landing-persona h3{color:var(--text-h);margin:0 0 6px;font-size:18px}.landing-persona p{margin:0;line-height:1.55}.landing-tier-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px;margin-bottom:24px;display:grid}.landing-tier-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px;margin-left:auto;margin-right:auto}.landing-tier{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);padding:28px}.landing-tier-highlight{box-shadow:var(--shadow-card), inset 0 0 0 2px var(--accent)}.landing-tier-name{color:var(--text-h);margin:0 0 8px;font-size:18px;font-weight:700}.landing-tier-price{color:var(--text-h);letter-spacing:-.02em;margin:0 0 12px;font-size:36px;font-weight:700}.landing-tier-price span{color:var(--text-muted);margin-left:6px;font-size:16px;font-weight:500}.landing-tier-desc{color:var(--text);margin:0;font-size:15px;line-height:1.5}.landing-pricing-soon{border-radius:var(--radius);background:var(--surface);max-width:820px;box-shadow:var(--shadow-card);color:var(--text);margin:0 auto 24px;padding:14px 18px;font-size:15px;line-height:1.5}.landing-pricing-soon strong{color:var(--text-h)}.landing-beta{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-card);text-align:center;margin-top:28px;padding:24px}.landing-beta-title{color:var(--text-h);margin:0 0 8px;font-size:20px}.landing-beta-desc{max-width:44ch;color:var(--text);margin:0 auto 16px;font-size:15px;line-height:1.5}.landing-faq-item{border-top:1px solid var(--border);padding:20px 0}.landing-faq-item:first-of-type{border-top:none;padding-top:8px}.landing-faq-item h3{color:var(--text-h);margin:0 0 8px;font-size:18px}.landing-faq-item p{color:var(--text);margin:0 0 12px;line-height:1.6}.landing-faq-item p:last-child{margin-bottom:0}.landing-faq-item a{color:var(--accent)}.landing-footer-cta{text-align:center;padding:88px 0}.landing-footer-headline{color:var(--text-h);letter-spacing:-.01em;margin:0 0 24px;font-size:clamp(26px,3.5vw,40px);font-weight:700}.landing-footer{border-top:1px solid var(--border);color:var(--text-muted);padding:24px 0;font-size:14px}.landing-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.landing-footer-links{gap:16px;display:flex}.landing-footer a{color:var(--text);text-decoration:none}.landing-footer a:hover{color:var(--accent)}@media (width<=880px){.landing-why-grid,.landing-library-grid,.landing-tier-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.landing-section{padding:48px 0}.landing-hero{padding:56px 0 40px}.landing-nav-links{gap:12px}.landing-nav-links a:not(.landing-nav-cta){display:none}.landing-why-grid,.landing-library-grid,.landing-tier-grid,.landing-tier-grid-2{grid-template-columns:1fr}.landing-typewriter{gap:10px;padding:12px}.landing-hero-turns-legend,.landing-hero-turns-meta{display:block}.landing-hero-turns-sep{width:24px;height:1px;margin:8px auto;display:block}}@media (prefers-reduced-motion:reduce){.landing-reveal,.landing-armed .landing-reveal,.landing-reveal.is-revealed{opacity:1;transition:none;transform:none}.landing-hero-content,.landing-nav,.landing-nav-inner,.landing-why-card,.landing-library-card,.landing-btn{transition:none}.landing-typewriter-caret{opacity:.7;animation:none}.landing-split-bubble-replay,.landing-split-reply,.landing-split-typein-blank,.landing-split-typein-blank:after,.landing-split-typein-fill,.landing-split-reply-check{transition:none!important;animation:none!important}}.privacy{background:var(--bg);min-height:100vh;color:var(--text);font-family:inherit;line-height:1.65}.privacy-nav{border-bottom:1px solid var(--border);background:var(--bg)}.privacy-nav-inner{justify-content:space-between;align-items:center;gap:12px;max-width:800px;margin:0 auto;padding:16px 24px;display:flex}.privacy-logo{color:var(--text);font-size:18px;font-weight:700;text-decoration:none}.privacy-nav-links{align-items:center;gap:12px;display:flex}.privacy-nav-cta{background:var(--accent);color:var(--accent-contrast,#fff);border-radius:8px;padding:8px 16px;font-weight:600;text-decoration:none}.privacy-container{max-width:720px;margin:0 auto;padding:48px 24px 80px}.privacy-container h1{margin:0 0 8px;font-size:36px}.privacy-container h2{margin:40px 0 12px;font-size:22px}.privacy-container p,.privacy-container ul{margin:0 0 16px;font-size:16px}.privacy-container ul{padding-left:22px}.privacy-container li{margin-bottom:6px}.privacy-container a{color:var(--accent)}.privacy-container code{background:var(--surface,#0000000d);border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.privacy-meta{color:var(--text-muted);margin-bottom:24px;font-size:14px}.privacy-back{border-top:1px solid var(--border);margin-top:48px;padding-top:24px}.privacy-back a{color:var(--text-muted);text-decoration:none}.privacy-back a:hover{color:var(--accent)}@media (width<=640px){.privacy-container{padding:32px 20px 64px}.privacy-container h1{font-size:28px}.privacy-container h2{font-size:20px}}.terms{background:var(--bg);min-height:100vh;color:var(--text);font-family:inherit;line-height:1.65}.terms-nav{border-bottom:1px solid var(--border);background:var(--bg)}.terms-nav-inner{justify-content:space-between;align-items:center;gap:12px;max-width:800px;margin:0 auto;padding:16px 24px;display:flex}.terms-logo{color:var(--text);font-size:18px;font-weight:700;text-decoration:none}.terms-nav-links{align-items:center;gap:12px;display:flex}.terms-nav-cta{background:var(--accent);color:var(--accent-contrast,#fff);border-radius:8px;padding:8px 16px;font-weight:600;text-decoration:none}.terms-container{max-width:720px;margin:0 auto;padding:48px 24px 80px}.terms-container h1{margin:0 0 8px;font-size:36px}.terms-container h2{margin:40px 0 12px;font-size:22px}.terms-container p,.terms-container ul{margin:0 0 16px;font-size:16px}.terms-container ul{padding-left:22px}.terms-container li{margin-bottom:6px}.terms-container a{color:var(--accent)}.terms-meta{color:var(--text-muted);margin-bottom:24px;font-size:14px}.terms-back{border-top:1px solid var(--border);margin-top:48px;padding-top:24px}.terms-back a{color:var(--text-muted);text-decoration:none}.terms-back a:hover{color:var(--accent)}@media (width<=640px){.terms-container{padding:32px 20px 64px}.terms-container h1{font-size:28px}.terms-container h2{font-size:20px}}.v2-drill,.v2-library{color:#222;max-width:720px;margin:0 auto;padding:24px 16px;font-family:system-ui,-apple-system,sans-serif}.v2-drill__topbar{justify-content:space-between;align-items:center;margin-bottom:16px;font-size:14px;display:flex}.v2-drill__progress{color:#666}.v2-drill__speed-btn{font:inherit;cursor:pointer;color:#444;background:#f0f0f4;border:1px solid #ccc;border-radius:999px;padding:2px 10px;font-size:13px}.v2-drill__speed-btn:hover{background:#e6e6ec}.v2-drill__header{margin-bottom:24px}.v2-drill__header h1{color:#555;margin:0 0 8px;font-size:18px}.v2-drill__cue{gap:8px;margin-bottom:8px;display:flex}.v2-drill__cue-tag{color:#335;text-transform:uppercase;letter-spacing:.04em;background:#eef;border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.v2-drill__cue-tag--learner{color:#353;background:#efe}.v2-drill__intent{color:#666;margin:0;font-size:14px;font-style:italic}.v2-drill__hatch-banner{background:#fff3cd;border-left:3px solid #ffc107;border-radius:4px;margin-bottom:16px;padding:8px 12px;font-size:14px}.v2-drill__hatch-banner code{background:#0000000d;border-radius:2px;padding:1px 4px;font-weight:600}.v2-drill__hatch-banner--interruption{background:#e7f0ff;border-left-color:#4a90e2}.v2-drill__prompt{text-align:center;background:#f8f8fa;border-radius:8px;margin-bottom:32px;padding:24px 16px}.v2-drill__play-btn{color:#fff;cursor:pointer;background:#335;border:none;border-radius:999px;margin-bottom:16px;padding:8px 20px;font-size:14px;display:inline-block}.v2-drill__play-btn:hover{background:#557}.v2-drill__prompt-text{margin-bottom:6px;font-size:28px;font-weight:600}.v2-drill__prompt-romanization{color:#888;margin-bottom:6px;font-size:14px}.v2-drill__prompt-meaning{color:#555;font-size:16px}.v2-drill__prompt-register{text-transform:uppercase;letter-spacing:.06em;color:#999;margin-top:8px;font-size:11px}.v2-drill__choices{gap:12px;display:grid}.v2-drill__choice{text-align:left;cursor:pointer;font:inherit;color:inherit;background:#fff;border:2px solid #ddd;border-radius:8px;padding:16px;transition:border-color .15s,background .15s}.v2-drill__choice:hover:not(:disabled){border-color:#88a}.v2-drill__choice:disabled{cursor:not-allowed;opacity:.6}.v2-drill__choice--wrong{background:#fee;border-color:#c66}.v2-drill__choice--correct{background:#efe;border-color:#6c6}.v2-drill__choice-text{margin-bottom:4px;font-size:18px}.v2-drill__choice-meaning{color:#888;font-size:13px}.v2-drill__footer{text-align:center;color:#aaa;margin-top:32px;font-size:11px}.v2-drill--hatch-exit{text-align:center;color:#888;padding:64px 16px;font-style:italic}.v2-drill--end h1{text-align:center;margin-top:48px}.v2-library__list{padding:0;list-style:none}.v2-library__list>li{border-bottom:1px solid #eee;padding:16px 0}.v2-library__pattern{color:#666;margin-top:4px;font-size:13px}.v2-library__links{margin-top:8px;font-size:13px}.v2-overview{color:#222;max-width:720px;margin:0 auto;padding:24px 16px;font-family:system-ui,-apple-system,sans-serif}.v2-overview__topbar{justify-content:space-between;align-items:center;margin-bottom:20px;font-size:14px;display:flex}.v2-overview__drill-link{color:#fff;background:#335;border-radius:999px;padding:4px 12px;font-size:13px;text-decoration:none}.v2-overview__drill-link:hover{background:#557}.v2-overview__header{border-bottom:1px solid #e0e0e8;margin-bottom:28px;padding-bottom:20px}.v2-overview__title{margin:0 0 4px;font-size:22px}.v2-overview__title-native{color:#555;margin-bottom:10px;font-size:18px}.v2-overview__meta-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.v2-overview__meta-chip{color:#444;background:#f0f0f4;border:1px solid #ddd;border-radius:4px;padding:2px 8px;font-size:12px;display:inline-block}.v2-overview__meta-chip--tag{color:#336;background:#e8edf5;border-color:#b8c8e8}.v2-overview__context{color:#555;margin:8px 0 12px;font-size:14px;font-style:italic;line-height:1.5}.v2-overview__speakers{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.v2-overview__speaker-chip{color:#333;background:#f5f5fa;border:1px solid #e0e0ea;border-radius:4px;padding:3px 10px;font-size:13px}.v2-overview__section{margin-bottom:32px}.v2-overview__section-heading{align-items:center;gap:8px;margin:0 0 10px;font-size:16px;font-weight:600;display:flex}.v2-overview__section-label{text-transform:uppercase;letter-spacing:.06em;color:#888;margin-right:6px;font-size:11px}.v2-overview__section-note{color:#666;margin:0 0 10px;font-size:13px;font-style:italic}.v2-overview__count-badge{color:#336;background:#eef;border-radius:999px;padding:1px 7px;font-size:12px;font-weight:500;display:inline-block}.v2-overview__toggle-btn{cursor:pointer;color:#444;background:#f0f0f4;border:1px solid #ccc;border-radius:999px;margin-left:auto;padding:2px 10px;font-family:inherit;font-size:12px}.v2-overview__toggle-btn:hover{background:#e6e6ec}.v2-overview__exchange-list{flex-direction:column;gap:6px;display:flex}.v2-overview__exchange-row{background:#fafafa;border:1px solid #e8e8ee;border-radius:6px;grid-template-columns:minmax(0,2fr) minmax(0,3fr) auto;align-items:start;gap:8px 12px;padding:10px 12px;font-size:13px;display:grid}.v2-overview__exchange-row--interruption{background:#f0f5ff;border-color:#b8d0f0}.v2-overview__exchange-row--hatch{background:#fff8ec;border-color:#e8d090}.v2-overview__exchange-id{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.v2-overview__exchange-id code{background:#0000000d;border-radius:3px;padding:1px 5px;font-size:12px}.v2-overview__exchange-intent{color:#555;font-style:italic;line-height:1.4}.v2-overview__exchange-meta{white-space:nowrap;color:#888;text-align:right;font-size:12px}.v2-overview__cue-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:3px;padding:1px 6px;font-size:11px;font-weight:500;display:inline-block}.v2-overview__cue-tag--opening{color:#1a5c1a;background:#d5e8d4}.v2-overview__cue-tag--setup{color:#0a3d6e;background:#dae8fc}.v2-overview__cue-tag--customization{color:#5a1a6e;background:#e1d5e7}.v2-overview__cue-tag--verification{color:#6e4a00;background:#fff2cc}.v2-overview__cue-tag--payment{color:#6e1a1a;background:#f8cecc}.v2-overview__cue-tag--closing{color:#3a3a3a;background:#e0e0e0}.v2-overview__cue-tag--learner{color:#155724;background:#d4edda}.v2-overview__origin-badge{color:#999;background:#f5f5f5;border-radius:3px;padding:1px 5px;font-family:monospace;font-size:11px}.v2-overview__hatch-list{flex-direction:column;gap:14px;display:flex}.v2-overview__hatch-card{background:#fffbf0;border:1px solid #e8d090;border-radius:8px;padding:14px 16px}.v2-overview__hatch-header{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.v2-overview__hatch-id{background:#0000000d;border-radius:3px;padding:2px 8px;font-size:14px;font-weight:600}.v2-overview__hatch-meta{color:#666;font-size:12px}.v2-overview__hatch-meta code{background:#0000000d;border-radius:2px;padding:1px 4px}.v2-overview__hatch-description{color:#666;margin:0 0 10px;font-size:13px;font-style:italic}.v2-overview__hatch-states{flex-direction:column;gap:8px;display:flex}.v2-overview__hatch-edges{background:#00000008;border-radius:4px;flex-direction:column;gap:4px;margin-top:6px;padding:8px 10px;font-size:12px;display:flex}.v2-overview__hatch-edge{color:#555;align-items:center;gap:6px;display:flex}.v2-overview__hatch-edge code{background:#0000000f;border-radius:2px;padding:1px 4px}.v2-overview__edge-arrow{color:#888;font-size:14px}.v2-overview__edge-via{color:#aaa;font-size:11px}.v2-overview__cultural-list{flex-direction:column;gap:8px;margin:0;padding-left:20px;display:flex}.v2-overview__cultural-item{color:#555;font-size:14px;line-height:1.5}.v2-overview__collapsed-hint{color:#888;margin:0;font-size:13px;line-height:1.5}.v2-overview__vocab-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.v2-overview__vocab-item{background:#fafafa;border:1px solid #eee;border-radius:4px;align-items:baseline;gap:10px;padding:6px 10px;font-size:13px;display:flex}.v2-overview__vocab-text{min-width:60px;font-size:15px;font-weight:500}.v2-overview__vocab-romanization{color:#888;font-size:12px}.v2-overview__vocab-meaning{color:#555}
