@font-face{font-family:Noto Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-latin-ext-400.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Noto Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/noto-sans-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/noto-sans-latin-ext-500.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Noto Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-sans-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-sans-latin-ext-600.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Noto Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-latin-ext-700.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Noto Sans KR;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-kr-400.woff2) format("woff2")}@font-face{font-family:Noto Sans KR;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/noto-sans-kr-700.woff2) format("woff2")}:root{color-scheme:light dark;--font-sans: "Noto Sans", "Noto Sans KR", "Helvetica Neue", Helvetica, Arial, sans-serif;--bg: #fbf7ef;--panel: #ffffff;--panel-alt: #f3eedd;--text: #222222;--muted: #595959;--accent: #0b5fa5;--accent-strong: #074a82;--accent-soft: #d8ecf9;--error: #8a1a1a;--error-soft: #f6d8d8;--border: #b9b2a0;--border-strong: #7a715c;--focus: #0b5fa5;--visited: #5a2a8a}@media(prefers-color-scheme:dark){:root{--bg: #1c1a15;--panel: #262319;--panel-alt: #302b1e;--text: #ece6d8;--muted: #b0a890;--accent: #5b9bd1;--accent-strong: #8cc3ec;--accent-soft: #22384a;--error: #e08585;--error-soft: #3a1f1f;--border: #4d4736;--border-strong: #6e654c;--focus: #5b9bd1;--visited: #b79ae0}.success{color:#8fdb9c;background:#16321c;border-color:#3f8f52}.hint{color:#e8c887;background:#3a2c0d;border-color:#caa23e}.dashboard-box.dashboard-review-active{background:#3a2c0d;border-color:#caa23e}.dashboard-box.dashboard-review-active h2{color:#e8c887}.answer-correct{border-color:#3f8f52;border-left-color:#3f8f52;background:#16321c;color:#8fdb9c}.answer-wrong{border-color:#d1615f;border-left-color:#d1615f;background:#3a1616;color:#ff9b9b}.rank-up{color:#8fdb9c}.rank-down{color:#ff9b9b}.dashboard-illustration{filter:invert(1)}}*{box-sizing:border-box}html{font-size:17px;background:var(--bg)}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation:none}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.5}a{color:var(--accent);text-decoration:underline}a:visited{color:var(--visited)}a:hover{color:var(--accent-strong);text-decoration:underline}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:var(--panel-alt);border-bottom:2px solid var(--border-strong)}.nav-back{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .5rem;margin-left:-.5rem;color:var(--text);text-decoration:none;border-radius:4px;border:2px solid transparent}.nav-back:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong);text-decoration:none}.nav-back svg{display:block}.brand{display:inline-flex;align-items:center}.brand-logo{display:block;width:auto;height:2.6rem;object-fit:contain}@media(prefers-color-scheme:dark){.brand-logo{filter:invert(1)}}.badge-beta{display:inline-block;padding:.1rem .5rem;border:1px solid var(--accent);border-radius:999px;background:var(--accent-soft);color:var(--accent-strong);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1.5}.bar .who{margin-left:auto;color:var(--muted)}.lang-switch{display:inline-flex;gap:.35rem;font-size:.85rem}.lang-link{color:var(--muted);text-decoration:none;padding:.15rem .3rem;border-radius:4px}.lang-link:hover{color:var(--accent-strong);background:var(--accent-soft)}.lang-link.active{color:var(--text);font-weight:700;text-decoration:underline}.btn,.btn-link{display:inline-block;border:2px solid var(--border-strong);background:var(--panel);color:var(--text);padding:.45rem .9rem;border-radius:4px;font-size:1rem;font-family:inherit;cursor:pointer;text-decoration:none;line-height:1.15}.btn:visited{color:var(--text)}.btn:hover,.btn-link:hover{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-strong);text-decoration:none}.btn-link{background:transparent;border-color:transparent;color:var(--accent);text-decoration:underline;padding:.45rem .25rem}.btn-link:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong);text-decoration:underline}.btn-primary,.btn-primary:visited{border-color:var(--accent-strong);background:var(--accent);color:#fff}.btn-primary:hover,.btn-primary:visited:hover{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.btn-danger,.btn-danger:visited{border-color:var(--error);background:var(--error);color:#fff}.btn-danger:hover,.btn-danger:visited:hover{border-color:var(--error);background:var(--error-soft);color:var(--error)}.danger-zone{border-color:var(--error)}.danger-zone legend{color:var(--error)}.inline{margin:0}.card{max-width:34rem;margin:2.5rem auto;padding:1.75rem;background:var(--panel);border:2px solid var(--border-strong);border-radius:8px}.card h1{margin-top:0;font-size:1.5rem}.reference-page{max-width:min(60rem,calc(100vw - 1.5rem))}.reference-content h2{margin:1.75rem 0 .5rem;font-size:1.2rem}.reference-content p,.reference-content ul,.reference-content ol{margin:.75rem 0}.reference-hangul{padding:.8rem 1rem;background:var(--panel-alt);border-left:4px solid var(--accent);border-radius:4px;font-size:1.7rem;font-weight:600;letter-spacing:.08em;white-space:pre-line}.reference-table-wrap{margin:1rem 0;overflow-x:auto}.reference-table{width:100%;border-collapse:collapse;font-size:1.05rem}.reference-table caption{margin-bottom:.4rem;text-align:left;color:var(--muted)}.reference-table th,.reference-table td{padding:.55rem .75rem;border:1px solid var(--border);text-align:left;white-space:nowrap}.reference-table th{background:var(--panel-alt);font-weight:700}.reference-nav{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap}.reference-nav-prev,.reference-nav-next{flex:1;display:flex;min-width:0}.reference-nav-next{justify-content:flex-end}.reference-content .tts-btn{width:1.5rem;height:1.5rem;margin-left:.3rem;font-size:.75rem}.reference-callout{margin:1.25rem 0;padding:.8rem 1rem;background:var(--accent-soft);border:2px solid var(--accent);border-radius:6px}.reference-callout h2{margin:0 0 .35rem}.reference-callout p{margin:0}.form{display:flex;flex-direction:column;gap:1rem}.form label{display:flex;flex-direction:column;gap:.35rem;font-size:1rem;font-weight:600;color:var(--text)}.form input,.form textarea{padding:.55rem .7rem;background:var(--panel);color:var(--text);border:2px solid var(--border-strong);border-radius:4px;font-size:1rem;font-family:inherit}.form textarea{resize:vertical;line-height:1.4}.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.error{color:var(--error);background:var(--error-soft);border:2px solid var(--error);padding:.5rem .75rem;border-radius:4px;font-weight:600}.success{color:#1a5a1a;background:#dcf3dc;border:2px solid #1a5a1a;padding:.5rem .75rem;border-radius:4px;font-weight:600}.hint{color:#6a4a0a;background:#fbeec6;border:2px solid #b8860b;padding:.5rem .75rem;border-radius:4px;font-weight:600}.muted{color:var(--muted);font-size:.95rem}@media(max-width:30rem){.card{margin:1rem;padding:1.25rem}.bar{flex-wrap:wrap;gap:.5rem;padding:.6rem .75rem}.bar .who{margin-left:0}}.vocab .ko{font-size:1.8rem;margin:.25rem 0}.vocab .meta{color:var(--muted);margin:.25rem 0 1rem}.vocab .examples{list-style:none;padding-left:0;display:flex;flex-direction:column;gap:.75rem}.vocab .examples .ko{font-weight:600;margin:0}.vocab .examples .en{color:var(--muted);margin:.15rem 0 0}.vocab .reveal{margin:1rem 0}.vocab .reveal .meaning{font-size:1.15rem;font-weight:600}.review-form{display:flex;gap:.75rem;flex-direction:row;flex-wrap:wrap}.quiz{border:2px solid var(--border-strong);border-radius:8px;padding:1rem 1.25rem;background:var(--panel-alt);margin:1rem 0}.quiz .quiz-ko{font-size:1.6rem;margin:0 0 .5rem;letter-spacing:.02em}.quiz .quiz-en{margin:0;color:var(--muted)}.quiz .highlight{color:var(--accent-strong);font-weight:700;background:var(--accent-soft);padding:0 .15rem;border-radius:3px}.quiz-form{display:flex;flex-direction:column;gap:.75rem;max-width:22rem}.quiz-form label{display:flex;flex-direction:column;gap:.35rem;font-weight:600}.quiz-form input[type=text]{padding:.55rem .7rem;background:var(--panel);color:var(--text);border:2px solid var(--border-strong);border-radius:4px;font-size:1.2rem;font-family:inherit}.quiz-form input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-fieldset{border:2px solid var(--border-strong);border-radius:6px;padding:1rem 1.25rem;margin:0}.form-fieldset legend{font-weight:600;padding:0 .4rem}.radio{display:flex;align-items:center;gap:.5rem;font-weight:400;padding:.35rem 0;cursor:pointer}.radio input[type=radio]{width:1.1rem;height:1.1rem;accent-color:var(--accent)}kbd{background:var(--panel-alt);border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:4px;padding:.05rem .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.tts-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;margin-left:.5rem;vertical-align:middle;border:2px solid var(--border-strong);border-radius:50%;background:var(--panel);color:var(--accent);font-size:1rem;line-height:1;cursor:pointer;padding:0;transition:background .1s,border-color .1s}.tts-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.tts-btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.tts-btn.tts-playing{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.tts-btn.tts-btn-nudge{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);animation:tts-btn-nudge 1.2s ease-in-out 3}@keyframes tts-btn-nudge{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@media(prefers-reduced-motion:reduce){.tts-btn.tts-btn-nudge{animation:none}}.tts-blocked{margin-top:.5rem;font-size:.85rem}.answer-row{display:flex;align-items:stretch;gap:.4rem}.answer-row>input[type=text]{flex:1 1 auto;min-width:0}.vkbd-toggle{flex:0 0 auto;align-self:stretch;border:2px solid var(--border-strong);border-radius:4px;background:var(--panel);color:var(--accent-strong);font-weight:700;font-size:1rem;font-family:inherit;cursor:pointer;padding:0 .7rem;line-height:1.15;transition:background .1s,border-color .1s}.vkbd-toggle:hover{border-color:var(--accent);background:var(--accent-soft)}.vkbd-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.vkbd-toggle.vkbd-toggle-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.vkbd{position:fixed;z-index:50;background:var(--panel);border:2px solid var(--border-strong);border-radius:8px;box-shadow:0 6px 20px #0000002e;padding:.6rem;font-family:var(--font-sans);user-select:none;max-width:calc(100vw - 1rem)}.vkbd-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;padding:0 .15rem}.vkbd-title{font-size:.85rem;color:var(--muted);font-weight:600}.vkbd-close{border:none;background:transparent;color:var(--muted);font-size:1rem;cursor:pointer;padding:.1rem .4rem;border-radius:4px;line-height:1}.vkbd-close:hover{background:var(--accent-soft);color:var(--accent-strong)}.vkbd-grid{display:flex;flex-direction:column;gap:.3rem}.vkbd-row{display:flex;gap:.3rem;justify-content:center}.vkbd-row.vkbd-bottom{margin-top:.2rem}.vkbd-key{position:relative;width:2.4rem;height:2.6rem;border:1.5px solid var(--border);border-bottom-width:2.5px;border-radius:5px;background:var(--panel);color:var(--text);font-family:inherit;font-size:1.1rem;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:background .08s,border-color .08s,transform .05s;touch-action:manipulation}.vkbd-key:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.vkbd-key:active{transform:translateY(1px);background:var(--accent-soft)}.vkbd-key-pressed{transform:translateY(1px);background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.vkbd-key:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.vkbd-main{font-weight:600}.vkbd-alt{position:absolute;top:2px;right:4px;font-size:.6rem;color:var(--muted);font-weight:600}.vkbd-key-shifted .vkbd-main{color:var(--accent-strong)}.vkbd-shift{width:3.4rem;font-size:.85rem}.vkbd-shift-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.vkbd-space{flex:1 1 auto;min-width:6rem;font-size:.85rem}.vkbd-backspace{width:3.4rem;font-size:1rem}@media(max-width:30rem){.vkbd{left:.5rem!important;right:.5rem;padding:.45rem}.vkbd-key{width:1.9rem;height:2.2rem;font-size:.95rem}.vkbd-shift,.vkbd-backspace{width:2.7rem}}.landing{max-width:62rem;margin:2.5rem auto;padding:0 1.75rem}.landing-hero{max-width:34rem;margin:0 auto 2.5rem;text-align:center}.landing-hero h1{margin:0 0 .75rem;font-size:2rem}.landing-tagline{margin:0 0 1rem;font-size:1.1rem}.landing-beta-note{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:0 0 1.5rem;color:var(--muted)}.landing-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.landing-features .dashboard-box{text-align:center}.landing-features .dashboard-box h2{color:var(--accent-strong)}@media(max-width:30rem){.landing{margin:1.5rem auto;padding:0 1rem}.landing-hero h1{font-size:1.6rem}}.dashboard{max-width:62rem;margin:2.5rem auto;padding:0 1.75rem}.dashboard h1{margin:0 0 1.25rem;font-size:1.5rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem}.dashboard-box{padding:1.5rem;background:var(--panel);border:2px solid var(--border-strong);border-radius:8px}.dashboard-box h2{margin:0 0 .75rem;font-size:1.15rem}.dashboard-box-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.dashboard-box-heading>h2,.dashboard-box-heading>div{flex:1 1 auto;min-width:0}.dashboard-illustration{flex:0 0 auto;width:4.5rem;height:4.5rem;object-fit:contain;opacity:.72}.lesson-welcome .dashboard-box-heading h2{margin-top:0}.dashboard-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin:0}.dashboard-box.progress-breakdown{grid-column:1 / -1}.dashboard-box.dashboard-study-active{background:var(--accent-soft);border-color:var(--accent)}.dashboard-box.dashboard-study-active h2{color:var(--accent-strong)}.dashboard-box.dashboard-review-active{background:#fbeec6;border-color:#b8860b}.dashboard-box.dashboard-review-active h2{color:#6a4a0a}.dashboard-reference-points{list-style:none;padding:0;margin:.5rem 0 1rem;display:flex;flex-direction:column;gap:.5rem}.dashboard-reference-points li{padding:.3rem 0 .3rem .75rem;border-left:4px solid var(--accent)}.dashboard-reference-points a{font-weight:600}@media(max-width:30rem){.dashboard{margin:1rem auto;padding:0 1rem}.dashboard-box{padding:1.1rem}.dashboard-illustration{width:4rem;height:4rem}}.chapter-groups{list-style:none;padding:0;margin:.5rem 0 1rem}.chapter-groups li{margin:.6rem 0}.chapter-progress-bar{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:.5rem;margin:.3rem 0 0;border:2px solid var(--border-strong);border-radius:999px;overflow:hidden;background:var(--panel-alt);color:var(--accent)}.chapter-progress-bar::-webkit-progress-bar{background:var(--panel-alt)}.chapter-progress-bar::-webkit-progress-value{background:var(--accent)}.chapter-progress-bar::-moz-progress-bar{background:var(--accent)}.chapter-progress-label{margin:.35rem 0 0;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}.breakdown{border-collapse:collapse;width:100%;margin:.5rem 0 1rem;font-size:.95rem}.breakdown th,.breakdown td{text-align:right;padding:.3rem .5rem;border-bottom:1px solid var(--border, #ddd)}.breakdown th:first-child,.breakdown td:first-child{text-align:left}.breakdown th{font-weight:600;color:var(--muted)}.breakdown-total{font-weight:600;border-top:2px solid var(--border, #ccc)}.upcoming-forecast{border-collapse:collapse;margin:.5rem 0 0;font-variant-numeric:tabular-nums}.upcoming-forecast th,.upcoming-forecast td{text-align:right;padding:.2rem .5rem}.upcoming-forecast th:first-child{text-align:left;padding-left:0}.rank-change{font-weight:600;margin:.5rem 0}.rank-up{color:#2a7a2a}.rank-down{color:#b44}:root{--prompt-vocab: #8a5a0a;--prompt-grammar: #a53249;--prompt-hangul: #2f5f8a}.prompt.prompt-vocab{color:var(--prompt-vocab)}.prompt.prompt-grammar{color:var(--prompt-grammar)}.prompt.prompt-hangul{color:var(--prompt-hangul)}.quiz-form .prompt input[type=text]{border-left-width:.45rem;border-left-style:solid}.quiz-form .prompt.prompt-vocab input[type=text]{border-left-color:var(--prompt-vocab)}.quiz-form .prompt.prompt-grammar input[type=text]{border-left-color:var(--prompt-grammar)}.quiz-form .prompt.prompt-hangul input[type=text]{border-left-color:var(--prompt-hangul)}.quiz-form .prompt input[type=text]:focus{box-shadow:0 0 0 3px var(--accent-soft)}.quiz.prompt-vocab{background:var(--prompt-vocab);border-color:var(--prompt-vocab);color:#fff}.quiz.prompt-grammar{background:var(--prompt-grammar);border-color:var(--prompt-grammar);color:#fff}.quiz.prompt-hangul{background:var(--prompt-hangul);border-color:var(--prompt-hangul);color:#fff}.quiz.prompt-vocab .quiz-ko,.quiz.prompt-grammar .quiz-ko,.quiz.prompt-hangul .quiz-ko{color:#fff}.quiz.prompt-vocab .quiz-en,.quiz.prompt-grammar .quiz-en,.quiz.prompt-hangul .quiz-en{color:#ffffffd9}.quiz.prompt-vocab .tts-btn,.quiz.prompt-grammar .tts-btn,.quiz.prompt-hangul .tts-btn{background:#ffffff2e;border-color:#ffffffd9;color:#fff}.quiz.prompt-vocab .tts-btn:hover,.quiz.prompt-grammar .tts-btn:hover,.quiz.prompt-hangul .tts-btn:hover{background:#ffffff4d;border-color:#fff;color:#fff}.quiz.prompt-vocab .highlight,.quiz.prompt-grammar .highlight,.quiz.prompt-hangul .highlight{background:#ffffff40;color:#fff}.quiz-page{max-width:none;margin:0;padding:1.5rem clamp(1rem,3vw,2.5rem) 3rem;text-align:center}.quiz-page h1{margin-top:0;font-size:1.5rem;text-align:center}.quiz-page .quiz{--quiz-tts-size: clamp(2rem, 4vw, 2.75rem);--quiz-tts-inset: clamp(.5rem, 1.5vw, 1rem);position:relative;width:100%;height:clamp(9rem,25vw,15rem);margin:1.5rem 0;padding:clamp(1rem,3vw,2rem) max(clamp(1rem,4vw,3rem),calc(var(--quiz-tts-size) + var(--quiz-tts-inset) + .5rem));border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;overflow:hidden;text-align:center}.quiz-page .quiz .quiz-ko{font-size:clamp(2.2rem,7vw,5.5rem);margin:0;letter-spacing:.03em;line-height:1.15;text-align:center}.quiz-page .quiz .quiz-en{font-size:clamp(1.05rem,2.6vw,1.8rem);margin:0;text-align:center}.quiz-page .quiz .tts-btn{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;font-size:.425em;width:2em;height:2em;padding:0;margin-left:.5em;border-radius:50%}.quiz-page .quiz>.tts-btn{position:absolute;top:calc(50% - var(--quiz-tts-size) / 2);right:var(--quiz-tts-inset);width:var(--quiz-tts-size);height:var(--quiz-tts-size);margin:0;font-size:calc(var(--quiz-tts-size) * .45)}.quiz-page .quiz-form{max-width:42rem;margin:1.5rem auto 0;display:flex;flex-direction:column;align-items:center;gap:.9rem;text-align:center}.quiz-page .quiz-form>.prompt{margin:0;text-align:center;font-size:1rem;font-weight:600}.quiz-page .quiz-form>.muted,.quiz-page .quiz-form>.rank-change{text-align:center}.quiz-page .answer-row{display:flex;gap:.6rem;align-items:stretch;justify-content:center;width:100%}.quiz-page .answer-row>input[type=text]{flex:1 1 auto;min-width:0;font-size:2rem;padding:.7rem 1rem;border-left-width:.45rem;border-left-style:solid}.quiz-page .answer-row>input[type=text]::placeholder{color:#999;opacity:1}.quiz-page .answer-row .btn{flex:0 0 auto;font-size:1.4rem;padding:.7rem 1.6rem}.quiz-page .answer-row .answer-go{align-self:stretch;display:inline-flex;align-items:center;justify-content:center;width:3.4rem;padding:0}.quiz-page .answer-row .answer-go svg{width:1.6rem;height:1.6rem;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.quiz-page .answer-row .vkbd-toggle{flex:0 0 auto;align-self:stretch;font-size:1.2rem;padding:0 1rem}.quiz-page .answer-row .answer-display{flex:1 1 auto;min-width:0;font-size:2rem;padding:.7rem 1rem;border:2px solid var(--border-strong);border-left-width:.45rem;border-left-style:solid;background:var(--panel);color:var(--text);cursor:default}.quiz-page .answer-row .answer-display:read-only:focus{outline:2px solid var(--focus);outline-offset:2px}.answer-correct{border-color:#2a7a2a;border-left-color:#2a7a2a;background:#dcf3dc;color:#1a5a1a}.answer-wrong{border-color:#b44;border-left-color:#b44;background:#fbe0e0;color:#8a1a1a}.answer-status{flex:0 0 auto;align-self:center;font-size:1.2rem;font-weight:700;white-space:nowrap}.quiz-page .expected-answer{width:100%;margin:.25rem 0 0;padding:.7rem 1rem;border:2px solid var(--border-strong);border-radius:6px;background:var(--panel-alt);color:var(--muted);font-size:1rem;text-align:center}.quiz-page .expected-answer strong{margin-left:.35rem;color:var(--text);font-size:2rem;line-height:1.2}.quiz-page .answer-row.prompt-vocab>input[type=text]{border-left-color:var(--prompt-vocab)}.quiz-page .answer-row.prompt-grammar>input[type=text]{border-left-color:var(--prompt-grammar)}.vkbd-slot:empty{display:none}.vkbd-slot{margin-top:.5rem;display:flex;justify-content:center}.vkbd-inline{position:static;background:var(--panel);border:2px solid var(--border-strong);border-radius:10px;box-shadow:0 4px 14px #00000014;padding:.8rem;user-select:none;font-family:inherit}.vkbd-inline .vkbd-grid,.vkbd-inline .vkbd-row{gap:.4rem}.vkbd-inline .vkbd-key{width:3.4rem;height:3.8rem;font-size:1.6rem;border-radius:6px}.vkbd-inline .vkbd-alt{font-size:.75rem}.vkbd-inline .vkbd-shift,.vkbd-inline .vkbd-backspace{width:4.6rem;font-size:1rem}.vkbd-inline .vkbd-space{min-width:9rem;font-size:1rem}.vkbd-inline .vkbd-title{font-size:.95rem}.vkbd-inline .vkbd-close{font-size:1.2rem}@media(max-width:30rem){.quiz-page{padding:1rem .6rem 2rem}.quiz-page .answer-row{flex-wrap:wrap}.quiz-page .answer-row>input[type=text]{font-size:1.6rem}.quiz-page .answer-row .btn{font-size:1.2rem;padding:.6rem 1.2rem}.vkbd-inline .vkbd-key{width:2.6rem;height:3rem;font-size:1.3rem}.vkbd-inline .vkbd-shift,.vkbd-inline .vkbd-backspace{width:3.6rem}.vkbd-inline .vkbd-space{min-width:7rem}}.study-progress{margin:.5rem 0 1.25rem}.study-progress-bar{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:.5rem;border:2px solid var(--border-strong);border-radius:999px;overflow:hidden;background:var(--panel-alt);color:var(--accent)}.study-progress-bar::-webkit-progress-bar{background:var(--panel-alt)}.study-progress-bar::-webkit-progress-value{background:var(--accent)}.study-progress-bar::-moz-progress-bar{background:var(--accent)}.study-progress-label{margin:.35rem 0 0;color:var(--muted);font-size:.9rem;font-variant-numeric:tabular-nums}.site-footer{display:flex;justify-content:center;gap:1.25rem;padding:1.5rem 1.25rem 2.5rem;color:var(--muted);font-size:.85rem}.site-footer a{color:var(--muted)}.site-footer a:hover{color:var(--accent-strong)}.version-indicator{position:fixed;right:.35rem;bottom:.25rem;z-index:2;color:#9a9a9a;font-size:.6rem;line-height:1;letter-spacing:.02em;font-variant-numeric:tabular-nums;pointer-events:none;user-select:none}.table-scroll{max-width:100%;overflow-x:auto;background:linear-gradient(to right,var(--panel) 30%,rgba(255,255,255,0)) 0 0,linear-gradient(to left,var(--panel) 30%,rgba(255,255,255,0)) 100% 0,linear-gradient(to right,#00000029,#0000) 0 0,linear-gradient(to left,#00000029,#0000) 100% 0;background-repeat:no-repeat;background-size:1.5rem 100%,1.5rem 100%,.6rem 100%,.6rem 100%;background-attachment:local,local,scroll,scroll}.dashboard-box,.dashboard-grid>*{min-width:0}.answer-row{flex-wrap:wrap}.lesson-page{overflow-wrap:anywhere}.hangul-jamo{font-size:1.6em;line-height:1;vertical-align:-.1em;margin-right:.2rem}.lesson-page progress{width:100%}.lesson-example{font-size:2rem}.lesson-prompt{font-size:1.25rem}.lesson-list{padding-left:1.4rem}.lesson-list li{margin-bottom:.4rem}.lesson-list [lang=ko]{font-size:1.15rem;font-weight:700}.lesson-welcome{margin:1.5rem 0}.lesson-welcome .dashboard-actions{gap:1rem}summary{cursor:pointer;padding:1rem 0}.lesson-with-rails,.flow-with-rails{--lesson-rail-width: 2.75rem;--lesson-rail-gap: .375rem;position:relative;width:calc(100% - 2 * (var(--lesson-rail-width) + var(--lesson-rail-gap)) - 1rem);margin-left:auto;margin-right:auto}.lesson-nav-back,.lesson-nav-next,.flow-nav-back,.flow-nav-next{position:absolute;top:-2px;bottom:-2px;width:var(--lesson-rail-width);display:flex}.lesson-nav-back,.flow-nav-back{right:calc(100% + var(--lesson-rail-gap) + 2px)}.lesson-nav-next,.flow-nav-next{left:calc(100% + var(--lesson-rail-gap) + 2px)}.lesson-step-nav .btn,.flow-nav .btn{width:100%;padding:0;display:flex;align-items:center;justify-content:center;border-radius:8px}.lesson-step-nav svg,.flow-nav svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.lesson-step-nav .btn:disabled,.flow-nav .btn:disabled{opacity:.4;cursor:default}.lesson-step-nav .btn:focus-visible,.flow-nav .btn:focus-visible{outline:3px solid var(--focus);outline-offset:2px}@media(max-width:30rem){.lesson-with-rails,.flow-with-rails{padding:.75rem}}.syllable-build{margin:1.5rem 0;text-align:center}.syllable-build-parts{display:flex;justify-content:center;align-items:center;gap:.6rem}.syllable-build-parts>div{flex:1;max-width:9rem;min-width:0}.syllable-build [lang=ko]{display:block;font-size:3rem;line-height:1.5}.syllable-build small{display:block}.syllable-build-result{margin:.75rem 0}.syllable-build-result strong{border:2px solid var(--border-strong);border-radius:.5rem;width:5rem;margin:auto}.syllable-build figcaption{margin-top:.75rem;color:var(--muted)}.lesson-sound-link{appearance:none;border:0;border-bottom:2px solid var(--accent);border-radius:.2rem;background:color-mix(in srgb,var(--accent) 10%,transparent);color:inherit;padding:0 .15em;font:inherit;font-family:"Noto Sans KR",var(--font-sans);font-weight:700;cursor:pointer}.lesson-sound-link:hover,.lesson-sound-link:focus-visible{background:color-mix(in srgb,var(--accent) 20%,transparent)}.lesson-sound-link.tts-playing{background:color-mix(in srgb,var(--accent) 30%,transparent)}.lesson-sounds{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.lesson-sounds h3,.lesson-sounds p{margin:0 0 .65rem}.lesson-sound-list{display:flex;flex-wrap:wrap;gap:.65rem}.lesson-sound-chip{display:inline-flex;align-items:center;gap:.55rem;min-height:2.75rem;border:1px solid var(--border);border-radius:999px;background:var(--panel);color:var(--text);padding:.45rem .85rem;font:inherit;font-family:"Noto Sans KR",var(--font-sans);cursor:pointer}.lesson-sound-chip [lang=ko]{font-size:1.25rem;font-weight:700}.lesson-sound-chip svg{width:1rem;height:1rem;fill:currentColor;flex:none}.lesson-sound-chip:hover,.lesson-sound-chip:focus-visible{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--panel))}.lesson-sound-chip.tts-playing{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--panel))}.lesson-roman{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.lesson-roman-list{display:flex;flex-wrap:wrap;gap:.65rem;margin:0}.lesson-roman-list>div{display:inline-flex;align-items:baseline;gap:.55rem;min-height:2.75rem;border:1px solid var(--border);border-radius:.5rem;padding:.45rem .85rem}.lesson-roman-list dt{font-family:"Noto Sans KR",var(--font-sans);font-size:1.25rem;font-weight:700}.lesson-roman-list dd{margin:0;font-size:1.1rem}.lesson-roman-list .lesson-roman-letter{border-color:var(--accent)}.lesson-panel{max-width:46rem;margin:1.5rem auto 0;text-align:left}.lesson-panel>summary{display:flex;width:fit-content;margin:0 auto;list-style:none;cursor:pointer}.lesson-panel>summary::-webkit-details-marker{display:none}.lesson-panel[open]>summary{margin-bottom:1rem}.lesson-panel:not([open]) .lesson-panel-hide,.lesson-panel[open] .lesson-panel-show{display:none}.lesson-panel-body{border:1px solid var(--border);border-radius:.5rem;background:var(--panel);padding:1rem clamp(1rem,3vw,1.5rem)}.lesson-panel-title{margin-top:0}.lesson-sound-link:disabled,.lesson-sound-chip:disabled{opacity:.5;cursor:not-allowed}
