:root{--primary:#3b5bdb;--primary-dark:#2f4bb8;--primary-solid:#3b5bdb;--primary-solid-hover:#2f4bb8;--topbar-bg:#3b5bdb;--bg:#f6f7fb;--card:#fff;--text:#212529;--muted:#5f6673;--border:#e5e7eb;--accent:#f59f00;--kpron-text:#8a5a00;--soft:#eef2ff;--cyan:#0b7285;--kpron-bg:#fff8e6;--ex-text:#495057;--correct-bg:#d3f9d8;--green-text:#166534;--warn-bg:#fff3bf;--warn-text:#7a5c00;--wrong-bg:#ffe3e3;--red-text:#b02a2a}html.dark-pending{--primary:#8ba3ff;--primary-dark:#93a5ff;--primary-solid:#3d51c4;--primary-solid-hover:#33429f;--topbar-bg:#3d51c4;--bg:#10141b;--card:#1a1f2a;--text:#e6e9ef;--muted:#98a1b0;--border:#2c3442;--accent:#ffc93d;--kpron-text:#ffc93d;--soft:#232c44;--cyan:#6fd3e8;--kpron-bg:#3a3020;--ex-text:#c9d1dc;--correct-bg:#1e3526;--green-text:#51cf66;--warn-bg:#3a3318;--warn-text:#ffd43b;--wrong-bg:#3a2326;--red-text:#ff8787}*{box-sizing:border-box;margin:0;padding:0}body{font-family:"Pretendard Variable",Pretendard,"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;background:var(--bg);color:var(--text);line-height:1.7}a{color:var(--primary)}.wrap{max-width:880px;margin:0 auto;padding:0 20px}header.bar{background:var(--topbar-bg);color:#fff}header.bar .wrap{padding:14px 20px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}header.bar a{color:#fff;text-decoration:none;font-weight:800;font-size:20px;letter-spacing:-.5px}header.bar small{opacity:.88;font-size:12.5px}main{padding:0 0 30px}.crumb{font-size:13px;color:var(--muted);margin:20px 0 12px}.crumb a{display:inline-block;padding:5px 8px;text-decoration:none}.crumb a:hover{text-decoration:underline}h1{font-size:25px;line-height:1.4;letter-spacing:-.5px;color:var(--primary-dark)}h2.sec{font-size:17px;margin:26px 0 12px;color:var(--text)}.lead{font-size:14px;color:var(--muted);margin:8px 0 14px}.cta{display:inline-block;background:var(--primary-solid);color:#fff;text-decoration:none;font-weight:700;font-size:14px;border-radius:10px;padding:11px 18px;margin:2px 0 6px}.cta:hover{background:var(--primary-solid-hover)}h1 .lvl{font-size:12px;font-weight:700;border-radius:99px;padding:3px 10px;vertical-align:3px;margin-left:6px}.lvl-easy{background:var(--correct-bg);color:var(--green-text)}.lvl-mid{background:var(--warn-bg);color:var(--warn-text)}.lvl-hard{background:var(--wrong-bg);color:var(--red-text)}ol.words{list-style:none;display:grid;gap:12px;margin-top:6px}ol.words li{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:15px 17px}.w-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:5px}.w-word{font-size:19px;font-weight:800;color:var(--primary-dark);letter-spacing:-.3px;word-break:break-word}.w-ipa{font-size:13px;color:var(--muted)}.w-kr{font-size:13.5px;font-weight:700;color:var(--kpron-text);background:var(--kpron-bg);border-radius:6px;padding:1px 7px}.w-mean{font-size:15px;font-weight:700;margin-bottom:6px}.w-ex{font-size:13.5px;font-style:italic;color:var(--ex-text)}.w-expron{font-size:12.5px;font-weight:600;color:var(--cyan)}.w-exko{font-size:12.5px;color:var(--muted)}.pager{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-top:28px;font-size:14px;font-weight:700}.pager a{display:inline-block;padding:10px 0;text-decoration:none}.pager a:hover{text-decoration:underline}.pager .mid{font-weight:600;font-size:13px}.unitlist{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:6px}.unitlist a{display:block;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:13px 15px;text-decoration:none;color:var(--text)}.unitlist a:hover{border-color:var(--primary)}.unitlist b{display:block;font-size:11.5px;color:var(--primary);letter-spacing:.3px;margin-bottom:3px}.unitlist span{font-size:14.5px;font-weight:700}.unitlist em{display:block;font-size:12px;color:var(--muted);font-style:normal;margin-top:3px}footer.ft{border-top:1px solid var(--border);margin-top:34px;padding-top:16px;font-size:12.5px;color:var(--muted)}footer.ft a{display:inline-block;padding:5px 8px;text-decoration:none}footer.ft a:hover{text-decoration:underline}footer.ft p{margin-top:8px}.book-cover{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:20px 22px;margin:14px 0 22px}.book-cover .bc-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:14px}.book-cover .bc-meta div{background:var(--soft);border-radius:10px;padding:10px 12px}.book-cover .bc-meta b{display:block;font-size:11.5px;color:var(--muted);font-weight:700;margin-bottom:3px}.book-cover .bc-meta span{font-size:13px;color:var(--text)}.book-cover h2{font-size:15px;margin:16px 0 8px;color:var(--primary-dark)}.book-cover ul{margin:0;padding-left:18px;font-size:13.5px;color:var(--muted)}.book-cover li{margin-bottom:4px}.toc{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin-top:8px}.toc a{display:block;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:11px 14px;text-decoration:none;color:var(--text)}.toc a:hover{border-color:var(--primary)}.toc a[aria-current="page"]{border-color:var(--primary-solid);background:var(--soft)}.toc b{display:block;font-size:11.5px;color:var(--primary);letter-spacing:.3px;margin-bottom:3px}.toc span{font-size:14px;font-weight:700}.gram{margin:30px 0 0;padding-top:6px}.gram-head{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--border);padding-bottom:8px;margin-bottom:10px}.gram-no{flex:0 0 auto;background:var(--primary-solid);color:#fff;font-size:12px;font-weight:800;border-radius:6px;padding:3px 8px}.gram-head h2{font-size:19px;color:var(--primary-dark);letter-spacing:-.3px}.gram-sum{font-size:14px;color:var(--muted);margin:6px 0 16px}.chnav{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;margin-top:16px;padding-top:10px;border-top:1px dashed var(--border);font-size:13px;font-weight:700}.chnav a{text-decoration:none}.chnav a:hover{text-decoration:underline}.chnav .up{color:var(--muted)}.chnav .prev{color:var(--primary)}.chnav .next{color:var(--primary)}.chbar{position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:40;display:flex;gap:4px;align-items:center;max-width:min(560px,calc(100vw - 20px));background:var(--card);border:1px solid var(--border);border-radius:999px;box-shadow:0 8px 22px rgba(0,0,0,.18);padding:5px 8px;font-size:12.5px}.chbar[hidden]{display:none}.chbar a{display:block;text-decoration:none;padding:7px 9px;border-radius:999px;font-weight:700;color:var(--text);white-space:nowrap}.chbar a:hover{background:var(--soft);color:var(--primary)}.chbar-cur{flex:1 1 auto;min-width:0;text-align:center;font-weight:800;color:var(--primary-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.g-point{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:15px 17px;margin-bottom:12px}.g-point h3{font-size:15.5px;color:var(--text);margin-bottom:6px}.g-point p{font-size:13.5px;color:var(--text);line-height:1.75}.g-note{font-size:12.5px;color:var(--muted);background:var(--soft);border-radius:8px;padding:8px 11px;margin-top:8px}.gtable-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:10px 0 4px;padding-bottom:2px}.gtable{width:100%;min-width:340px;border-collapse:collapse;font-size:13px;margin:0}.gtable th,.gtable td{border:1px solid var(--border);padding:7px 10px;text-align:left;vertical-align:top}.gtable th{background:var(--soft);white-space:nowrap}@media (max-width:520px){.gtable{font-size:12.5px}.gtable th,.gtable td{padding:6px 8px}}.gex{margin:9px 0 0;padding-left:12px;border-left:3px solid var(--soft)}.gex .en{font-size:13.5px;font-weight:600;color:var(--text)}.gex .ko{font-size:12.5px;color:var(--muted)}.gmistake{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:12px;padding:13px 16px;margin-bottom:12px}.gmistake h3{font-size:14px;margin-bottom:6px}.gmistake ul{margin:0;padding-left:18px;font-size:13px;color:var(--muted)}.gmistake li{margin-bottom:4px}.gquiz{background:var(--card);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:12px;padding:13px 16px;margin-bottom:10px}.gquiz h3{font-size:14px;margin-bottom:6px}.gquiz-q{font-size:13.5px;font-weight:600;margin-bottom:7px}.gquiz-opts{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;margin:0}.gquiz-opts li{background:var(--soft);border-radius:8px;padding:7px 10px;font-size:13px}.gquiz details{margin-top:9px}.gquiz summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--primary);padding:12px 0}.gquiz .gquiz-a{font-size:12.5px;color:var(--muted);margin-top:6px}.gquiz .gquiz-a b{color:var(--text)}.gex-speak{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:6px;border:1px solid var(--border);border-radius:50%;background:var(--card);color:var(--cyan);cursor:pointer;font-size:12.5px;line-height:1;vertical-align:-5px}.gex-speak[hidden]{display:none}.gex-speak:hover{background:var(--soft)}.gex-speak:active{transform:scale(.93)}.gex-speak.speaking{background:var(--soft);border-color:var(--primary);box-shadow:0 0 0 3px var(--soft)}.cheat-grid{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:10px;margin-top:8px}.cheat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px}.cheat-card b{display:block;font-size:11.5px;color:var(--primary);letter-spacing:.3px;margin-bottom:3px}.cheat-card .cheat-title{display:block;font-size:14.5px;font-weight:800;margin-bottom:5px}.cheat-card p{font-size:12.5px;color:var(--muted);margin-bottom:6px}.cheat-card ul{margin:0 0 8px;padding-left:16px;font-size:12.5px;color:var(--text)}.cheat-card li{margin-bottom:3px}.cheat-card a{font-size:12.5px;font-weight:700;text-decoration:none}@media print{header.bar,footer.ft,.pager,.chbar,.chnav,.cta,.cheat-card a{display:none}body{background:#fff}.wrap{max-width:none;padding:0}.cheat-grid{grid-template-columns:1fr 1fr}.cheat-card{border-color:#bbb;page-break-inside:avoid}}