:root{--bg:#f3f5f9;--surface:#fff;--surface2:#f0f3f8;--ink:#14171c;--muted:#5b6270;--line:#e2e6ed;--accent:#2f5bea;--onAccent:#fff;--accentSoft:#e6ecff;--accentText:#2445c7;--ok:#0f766e;--okBg:#ddf4ee;--warn:#9a5507;--warnBg:#fff1dc;--bad:#b42318;--badBg:#fde4e2;--delBg:#ffe3d4;--delInk:#9a3412;--addBg:#d9e4ff;--addInk:#1e3a8a;--info:#2445c7;--infoBg:#e6ecff;--sk:#e3e8f0;--scan:#2f5bea24;--shadow:0 1px 2px #14171c0d, 0 6px 20px #14171c0d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Plus Jakarta Sans,Noto Sans KR,system-ui,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#101216;--surface:#1a1d23;--surface2:#242831;--ink:#f1f2f5;--muted:#a6adba;--line:#2d323c;--accent:#7c9bff;--onAccent:#0b1020;--accentSoft:#222c4f;--accentText:#a9bdff;--ok:#4fd1b5;--okBg:#123a33;--warn:#f5b455;--warnBg:#3e2e12;--bad:#ff8f86;--badBg:#47201d;--delBg:#47240f;--delInk:#ffb48c;--addBg:#1d2b57;--addInk:#c3d3ff;--info:#a9bdff;--infoBg:#222c4f;--sk:#2e333d;--scan:#7c9bff2e;--shadow:none}}*{box-sizing:border-box}body{background:var(--bg);margin:0}#root{flex-direction:column;max-width:480px;min-height:100vh;margin:0 auto;display:flex}.app-header{justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.logo{letter-spacing:-.01em;align-items:center;gap:8px;font-size:16px;font-weight:800;display:flex}.logo-mark{background:var(--accent);width:28px;height:28px;color:var(--onAccent);border-radius:9px;justify-content:center;align-items:center;font-size:14px;display:flex}.page-intro{padding:8px 20px 4px}.page-intro h1{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:800;line-height:1.35}.page-intro p{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.5}.chips-section{flex-direction:column;gap:12px;padding:16px 20px 8px;display:flex}.chips-heading{justify-content:space-between;align-items:baseline;display:flex}.chips-heading h2{color:var(--muted);margin:0;font-size:13px;font-weight:700}.chips-legend{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{min-height:44px;font:inherit;cursor:pointer;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px;align-items:center;gap:6px;padding:0 14px;font-size:15px;font-weight:600;display:inline-flex}.chip[aria-pressed=true]{background:var(--accent);color:var(--onAccent);border-color:var(--accent)}.dot{background:var(--ok);border-radius:3px;width:6px;height:6px}.chip[aria-pressed=true] .dot{background:var(--onAccent)}.core-card{background:var(--surface);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;gap:6px;margin:16px 16px 0;padding:22px 20px 24px;display:flex}.core-label{color:var(--accentText);letter-spacing:.02em;font-size:12px;font-weight:700}.core-word{letter-spacing:-.03em;font-size:48px;font-weight:800;line-height:1.1}.core-meaning{margin:6px 0 0;font-size:16px;line-height:1.65}.section-title{justify-content:space-between;align-items:baseline;padding:28px 20px 10px;display:flex}.section-title h2{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:800}.section-title span{color:var(--muted);font-size:13px}.expr-list{flex-direction:column;gap:12px;margin:0;padding:0 16px;list-style:none;display:flex}.expr-card{background:var(--surface);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:14px;padding:20px;display:flex}.expr-head{justify-content:space-between;align-items:center;display:flex}.expr-phrase{letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.2}.expr-no{color:var(--muted);font-size:12px;font-weight:700}.expr-meaning{color:var(--accentText);margin-top:4px;font-size:15px;font-weight:600;display:block}.examples{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.example{background:var(--surface2);border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.example-en{margin:0;font-size:17px;font-weight:500;line-height:1.45}.example-en strong{color:var(--accentText);font-weight:800}.example-ko{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.spacer{flex-grow:1;min-height:32px}.bottom-bar{background:var(--bg);border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 16px 28px;display:flex;position:sticky;bottom:0}.bottom-hint{text-align:center;color:var(--muted);margin:0;font-size:13px}.btn-primary,.btn-secondary{width:100%;font:inherit;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:8px;font-weight:700;text-decoration:none;display:flex}.btn-primary{background:var(--accent);height:56px;color:var(--onAccent);border:none;font-size:17px}.btn-primary:disabled{background:var(--surface2);color:var(--muted);cursor:default}.btn-secondary{border:1.5px solid var(--line);background:var(--surface);height:52px;color:var(--ink);font-size:16px}@keyframes em-shimmer{0%,to{opacity:.55}50%{opacity:1}}@keyframes em-slide{0%{transform:translate(-100%)}to{transform:translate(260%)}}.sk{background:var(--sk);border-radius:6px;animation:1.4s ease-in-out infinite em-shimmer}.progress{background:var(--surface2);border-radius:3px;height:6px;overflow:hidden}.progress-bar{background:var(--accent);border-radius:3px;width:40%;height:100%;animation:1.3s ease-in-out infinite em-slide}.loading-title{margin:0;font-size:16px;font-weight:700}.loading-body{color:var(--muted);margin:0;font-size:13px;line-height:1.5}@media (prefers-reduced-motion:reduce){.sk,.progress-bar{animation:none}}.error-view{text-align:center;flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:14px;padding:48px 32px;display:flex}.error-icon{border-radius:24px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:6px;display:flex}.error-icon[data-tone=warn]{background:var(--warnBg);color:var(--warn)}.error-icon[data-tone=info]{background:var(--infoBg);color:var(--info)}.error-icon[data-tone=bad]{background:var(--badBg);color:var(--bad)}.error-code{color:var(--muted);letter-spacing:.04em;font-size:12px;font-weight:700}.error-title{margin:0;font-size:21px;font-weight:800;line-height:1.4}.error-body{color:var(--muted);margin:0;font-size:15px;line-height:1.65}.error-actions{flex-direction:column;gap:10px;width:100%;margin-top:8px;display:flex}.page-header{align-items:center;gap:4px;padding:6px 8px;display:flex}.back-button{width:44px;height:44px;color:var(--ink);border-radius:12px;justify-content:center;align-items:center;display:flex}.page-header-title{font-size:15px;font-weight:700}.word-pill{background:var(--accentSoft);color:var(--accentText);border-radius:999px;margin-left:6px;padding:3px 10px;font-size:13px;font-weight:700}.mission-head{flex-direction:column;gap:10px;padding:12px 20px 4px;display:flex}.mission-meta{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.level-badge{background:var(--warnBg);color:var(--warn);border-radius:8px;padding:4px 10px;font-weight:700}.mission-title{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800;line-height:1.35}.bubble-row{align-items:flex-start;gap:10px;padding:14px 16px 0;display:flex}.avatar{background:var(--accent);width:36px;height:36px;color:var(--onAccent);border-radius:18px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.bubble{background:var(--surface);box-shadow:var(--shadow);border-radius:4px 20px 20px;flex:1;padding:16px 18px}.bubble p{margin:0;font-size:15px;line-height:1.7}.block{flex-direction:column;gap:10px;padding:24px 20px 0;display:flex}.block-head{justify-content:space-between;align-items:baseline;display:flex}.block-head h2,.block-head label{margin:0;font-size:15px;font-weight:800}.block-head .hint{color:var(--muted);font-size:12px}.phrase-chip{min-height:44px;font:inherit;cursor:pointer;background:var(--surface);color:var(--ink);border:1.5px dashed var(--muted);border-radius:999px;align-items:center;gap:6px;padding:0 16px;font-size:16px;font-weight:700;display:inline-flex}.phrase-chip[data-used=true]{background:var(--accentSoft);color:var(--accentText);border:1.5px solid var(--accent)}.phrase-chip[aria-expanded=true]{box-shadow:0 0 0 3px var(--accentSoft)}.phrase-meaning{background:var(--surface2);border-radius:14px;align-items:center;gap:10px;padding:12px 14px;font-size:14px;display:flex}.phrase-meaning strong{color:var(--accentText);font-size:15px;font-weight:800}.conditions{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.conditions li{align-items:center;gap:10px;font-size:14px;line-height:1.5;display:flex}.bullet{background:var(--accent);border-radius:3px;flex-shrink:0;width:6px;height:6px}.writing{flex-direction:column;gap:8px;padding:24px 16px 0;display:flex}.writing .block-head{align-items:center;padding:0 4px}.used-count{color:var(--accentText);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.used-dot{background:var(--line);border-radius:4px;width:8px;height:8px}.used-dot[data-on=true]{background:var(--accent)}.essay{resize:vertical;background:var(--surface);width:100%;min-height:220px;color:var(--ink);font:inherit;border:1.5px solid var(--line);border-radius:18px;outline:none;padding:16px;font-size:18px;font-weight:500;line-height:1.6}.essay[aria-invalid=true]{border:2px solid var(--bad)}.essay-help{color:var(--muted);justify-content:space-between;gap:12px;padding:0 4px;font-size:13px;line-height:1.5;display:flex}.essay-help[data-error=true] .essay-message{color:var(--bad);font-weight:600}.essay-count{font-variant-numeric:tabular-nums;flex-shrink:0}.essay-count[data-over=true]{color:var(--bad);font-weight:700}@keyframes em-dot{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@keyframes em-spin{to{transform:rotate(360deg)}}@keyframes em-scan{0%{background-position:-180px 0}to{background-position:420px 0}}.typing-dots{align-items:center;gap:5px;height:16px;margin-bottom:10px;display:flex}.typing-dots span{background:var(--accent);border-radius:4px;width:7px;height:7px;animation:1.2s ease-in-out infinite em-dot}.typing-dots span:nth-child(2){animation-delay:.15s}.typing-dots span:nth-child(3){animation-delay:.3s}.card{background:var(--surface);box-shadow:var(--shadow);border-radius:22px;flex-direction:column;gap:8px;margin:16px 16px 0;padding:18px;display:flex}.card-label{color:var(--muted);font-size:12px;font-weight:700}.scan-text{white-space:pre-wrap;background-image:linear-gradient(90deg, transparent 0, var(--scan) 50%, transparent 100%);background-repeat:no-repeat;background-size:180px 100%;border-radius:6px;margin:0;font-size:19px;font-weight:500;line-height:1.65;animation:1.8s ease-in-out infinite em-scan}.steps{gap:4px;padding:20px}.step{min-height:44px;color:var(--muted);align-items:center;gap:12px;font-size:15px;display:flex}.step[data-state=done]{color:var(--ink)}.step[data-state=active]{color:var(--ink);font-weight:700}.step-icon{border:2px solid var(--line);border-radius:13px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}.step[data-state=done] .step-icon{background:var(--accent);color:var(--onAccent);border:none}.step[data-state=active] .step-icon{border:3px solid var(--accentSoft);border-top-color:var(--accent);animation:1s linear infinite em-spin}.steps-note{color:var(--muted);margin:8px 0 0;font-size:13px}.review-card{background:var(--accentSoft);box-shadow:none}.review-card .card-label{color:var(--accentText)}.review-phrase{margin:0;font-size:20px;font-weight:800}.review-meaning{margin:0;font-size:14px;line-height:1.6}.kept-text{background:var(--surface);text-align:left;border-radius:16px;flex-direction:column;gap:4px;width:100%;margin-top:6px;padding:14px 16px;display:flex}.kept-text span{color:var(--ok);font-size:12px;font-weight:700}.kept-text p{white-space:pre-wrap;margin:0;font-size:15px;line-height:1.5}@media (prefers-reduced-motion:reduce){.typing-dots span,.step-icon,.scan-text{animation:none!important}}.btn-primary[aria-disabled=true]{opacity:.45}.result-head{flex-direction:column;gap:12px;padding:10px 20px 0;display:flex}.result-mission{color:var(--muted);margin:0;font-size:13px}.stats{gap:8px;display:flex}.stat{background:var(--surface);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;flex:1;gap:2px;padding:12px 14px;display:flex}.stat-label{color:var(--muted);font-size:12px}.stat-value{font-size:20px;font-weight:800}.stat-value small{color:var(--muted);font-size:14px;font-weight:600}.whole-text{gap:16px;margin:20px 16px 0;padding:18px}.tabs{background:var(--surface2);border-radius:14px;gap:4px;padding:4px;display:flex}.tab{min-height:44px;font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:10px;flex:1;font-size:14px;font-weight:700}.tab[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.whole-en{white-space:pre-wrap;margin:0;font-size:20px;font-weight:600;line-height:1.6}.compare{flex-direction:column;gap:14px;display:flex}.compare-label{color:var(--muted);font-size:12px;font-weight:700}.compare-label[data-tone=accent]{color:var(--accentText)}.compare-text{margin:6px 0 0;font-size:17px;line-height:1.75}.divider{background:var(--line);height:1px}del.diff{background:var(--delBg);color:var(--delInk);border-radius:4px;padding:1px 3px;text-decoration-thickness:2px}ins.diff{background:var(--addBg);color:var(--addInk);border-radius:4px;padding:1px 3px;font-weight:800;text-decoration:none}.legend{color:var(--muted);gap:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:4px;display:flex}.legend i{border-radius:3px;width:10px;height:10px}.legend i[data-kind=del]{background:var(--delBg);border:1px solid var(--delInk)}.legend i[data-kind=add]{background:var(--addBg);border:1px solid var(--addInk)}.sentence-card{background:var(--surface);box-shadow:var(--shadow);border-radius:20px;flex-direction:column;gap:12px;padding:18px;display:flex}.sentence-row{align-items:flex-start;gap:12px;display:flex}.sentence-no{background:var(--surface2);width:24px;height:24px;color:var(--muted);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.sentence-texts{flex-direction:column;gap:8px;min-width:0;display:flex}.sentence-original{color:var(--muted);margin:0;font-size:16px;line-height:1.6}.sentence-corrected{margin:0;font-size:19px;font-weight:600;line-height:1.5}.reason{background:var(--surface2);border-radius:14px;margin:0;padding:12px 14px;font-size:14px;line-height:1.65}.checks{background:var(--surface);box-shadow:var(--shadow);border-radius:20px;margin:0 16px;padding:4px 18px;list-style:none}.check{align-items:flex-start;gap:12px;padding:14px 0;display:flex}.check+.check{border-top:1px solid var(--line)}.check-icon{border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.check-body{flex-direction:column;gap:4px;min-width:0;display:flex}.check-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.check-phrase{font-size:17px;font-weight:800}.check-badge{border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.check-tip{color:var(--muted);margin:0;font-size:14px;line-height:1.55}[data-status=ok] .check-icon,.check-badge[data-status=ok]{background:var(--okBg);color:var(--ok)}[data-status=warn] .check-icon,.check-badge[data-status=warn]{background:var(--warnBg);color:var(--warn)}[data-status=no] .check-icon,.check-badge[data-status=no]{background:var(--badBg);color:var(--bad)}.bubble[data-tone=soft]{background:var(--accentSoft);box-shadow:none}.bubble-label{color:var(--accentText);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.result-actions{border-top:1px solid var(--line);flex-direction:column;gap:10px;padding:12px 16px 28px;display:flex}
