:root{--bg:#f3f5f8;--surface:#fff;--surface-2:#eaeef4;--text:#161a22;--muted:#626b7a;--border:#dfe4ec;--accent:#2a4fd6;--accent-ink:#1c3aa8;--accent-soft:#e8edfd;--code-bg:#f5f7fa;--code-text:#161a22;--tk-k:#cf222e;--tk-s:#0a3069;--tk-c:#6e7781;--tk-n:#0550ae;--tk-a:#8250df;--tk-t:#953800;--green:#18794a;--blue:#2a63d6;--purple:#7a4fd3;--orange:#c75a13;--red:#c92f3a;--teal:#177f86;--brown:#8b5a2b;--indigo:#4d46d3;--gray:#5c6674;--slate:#3d6b8e;--rose:#b5325a;--cyan:#0e7490;--amber:#a16207;--lime:#4d7c0f;--sky:#0369a1;--plum:#86198f;--shadow:0 1px 2px #141c2d0f, 0 6px 20px #141c2d0f;--on:#fff;--mark:#facc156b;--g:var(--accent);--c:var(--accent);--sb:232px;--toc:208px;--read:760px;--bar:56px;--top:100px}[data-theme=dark]{--bg:#0f1217;--surface:#171b22;--surface-2:#1f2530;--text:#e7eaf0;--muted:#9aa4b5;--border:#283040;--accent:#8ea4ff;--accent-ink:#b8c6ff;--accent-soft:#1f2a4d;--code-bg:#11151c;--code-text:#e7eaf0;--tk-k:#ff7b72;--tk-s:#a5d6ff;--tk-c:#8b949e;--tk-n:#79c0ff;--tk-a:#d2a8ff;--tk-t:#ffa657;--green:#4cc07a;--blue:#7fa6ff;--purple:#b79cff;--orange:#f0954a;--red:#ff7b83;--teal:#4cc9c0;--brown:#d7a26b;--indigo:#a9a3ff;--gray:#aeb7c4;--slate:#8fb8dc;--rose:#ff8fb0;--cyan:#5ed3e8;--amber:#e9b949;--lime:#a3e635;--sky:#7dd3fc;--plum:#e879f9;--shadow:0 1px 2px #0006, 0 8px 24px #00000059;--on:#0f1217;--mark:#facc153d}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.75 Segoe UI,Pretendard,Malgun Gothic,Apple SD Gothic Neo,sans-serif}a{color:var(--accent);text-decoration:none}button{font:inherit;cursor:pointer}code,pre{font-family:Cascadia Code,D2Coding,Consolas,monospace}h1,h2,h3{text-wrap:balance}.num{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.topbar{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.bar1{height:var(--bar);align-items:center;gap:14px;padding:0 20px;display:flex}.brand{color:var(--text);align-items:center;gap:10px;margin-right:6px;font-size:16px;font-weight:700;display:flex}.brand .mark{background:var(--text);width:26px;height:26px;color:var(--bg);border-radius:7px;place-items:center;font-size:13px;font-weight:800;display:grid}.groups{background:var(--surface-2);border-radius:9px;gap:2px;padding:3px;display:flex}.groups button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:5px 12px;font-size:13px;font-weight:600}.groups button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.search{border:1px solid var(--border);background:var(--bg);width:220px;color:var(--text);font:inherit;border-radius:8px;padding:7px 10px;font-size:13px}.topbar .prog{color:var(--muted);align-items:center;gap:10px;margin-left:auto;font-size:13px;display:flex}.topbar .bar{background:var(--surface-2);border-radius:3px;width:140px;height:6px;overflow:hidden}.topbar .bar i{background:var(--accent);height:100%;transition:width .3s;display:block}.cats{height:calc(var(--top) - var(--bar));border-top:1px solid var(--border);scrollbar-width:none;align-items:center;gap:6px;padding:0 20px;display:flex;overflow-x:auto}.cats .cat{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;padding:5px 11px;font-size:13px;font-weight:600;display:inline-flex}.cats .cat:hover{background:var(--surface-2);color:var(--text)}.cats .cat.on{background:var(--surface-2);color:var(--text);border-color:var(--c)}.cats .cat .cnt{color:var(--muted);font-size:11px;font-weight:500}.icon-btn{border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--text);border-radius:8px;place-items:center;padding:0;font-size:15px;display:grid}.nav-toggle{display:none}.layout{grid-template-columns:var(--sb) minmax(0, 1fr);min-height:calc(100vh - var(--top));display:grid}.sidebar{top:var(--top);height:calc(100vh - var(--top));background:var(--surface);border-right:1px solid var(--border);padding:12px 12px 24px;position:sticky;overflow-y:auto}.layout.nosb{grid-template-columns:minmax(0,1fr)}.sbwrap{top:var(--top);height:calc(100vh - var(--top));z-index:6;align-self:start;position:sticky}.sbwrap .sidebar{height:100%;position:static}.sb-handle{border:1px solid var(--border);background:var(--surface);width:24px;height:48px;color:var(--muted);cursor:pointer;box-shadow:var(--shadow);z-index:2;border-radius:8px;padding:0;font-size:16px;position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.sb-handle:hover{color:var(--text);border-color:var(--text)}.layout.sb-folded{grid-template-columns:12px minmax(0,1fr)}.sb-folded .sbwrap{background:var(--surface-2);border-right:1px solid var(--border)}.sb-folded .sidebar{width:var(--sb);box-shadow:var(--shadow);transition:transform .15s;position:absolute;top:0;left:0;transform:translate(-100%)}.sb-folded .sbwrap.peek .sidebar{transform:none}.sb-folded .sb-handle{right:-24px}.sb-folded .sbwrap.peek .sb-handle{right:auto;left:calc(var(--sb) - 12px)}.content{min-width:0;padding:28px 32px 80px}.panel-head{border-bottom:2px solid var(--c);gap:2px;margin-bottom:6px;padding:4px 8px 10px;display:grid}.panel-head strong{font-size:14px}.panel-head small,.panel-head .cnt{color:var(--muted);font-size:11.5px}.hit .group-title{color:var(--muted);align-items:center;gap:6px;margin:10px 8px 4px;font-size:11px;font-weight:600;display:flex}.sidebar ul{margin:0;padding:0;list-style:none}.sidebar li a{color:var(--muted);border-radius:6px;grid-template-columns:20px 1fr;align-items:baseline;gap:6px;padding:5px 8px;font-size:13px;line-height:1.45;display:grid}.sidebar li a:hover{background:var(--surface-2);color:var(--text)}.sidebar li a .n{text-align:right;font-size:11px}.sidebar li.done a .n{color:var(--green)}.empty{color:var(--muted);text-align:center;margin-top:20px;font-size:13px}.home{gap:28px;max-width:1080px;margin:0 auto;display:grid}.hero{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;grid-template-columns:1fr auto;align-items:center;gap:24px;padding:22px 26px;display:grid}.hero .eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.hero h1{margin:4px 0 2px;font-size:22px}.hero .sub{color:var(--muted);font-size:14px}.hero .cta{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:9px;align-items:center;gap:8px;padding:9px 16px;font-size:14px;font-weight:600;display:inline-flex}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface)}.ring{background:conic-gradient(var(--accent) calc(var(--p) * 1%), var(--surface-2) 0);border-radius:50%;place-items:center;width:112px;height:112px;display:grid}.ring b{background:var(--surface);border-radius:50%;place-items:center;width:86px;height:86px;font-size:22px;font-weight:700;display:grid}.ring b small{color:var(--muted);text-align:center;font-size:11px;font-weight:500;line-height:1.2;display:block}.gsec{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px 20px}.gsec h2{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin:0 0 14px;padding-bottom:12px;font-size:16px;font-weight:700;display:flex}.gsec h2 .k{background:var(--text);width:24px;height:24px;color:var(--bg);border-radius:7px;place-items:center;font-size:12px;font-weight:800;display:grid}.gsec h2>span:not(.k){color:var(--muted);font-size:13px;font-weight:400}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.card{background:var(--bg);border:1px solid var(--border);border-top:3px solid var(--c);border-radius:12px;flex-direction:column;gap:10px;padding:16px 16px 12px;display:flex}.card header{align-items:center;gap:8px;display:flex}.card header h3{margin:0;font-size:15px;font-weight:700}.card header small{color:var(--muted);font-size:12.5px}.card header .cnt{color:var(--muted);margin-left:auto;font-size:12px}.mini{background:var(--surface-2);border-radius:2px;height:4px;overflow:hidden}.mini i{background:var(--accent);height:100%;display:block}.card ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.card ol a{color:var(--text);border-radius:6px;grid-template-columns:24px 1fr;gap:6px;padding:4px 6px;font-size:13.5px;line-height:1.45;display:grid}.card ol a:hover{background:var(--surface-2)}.card ol .n{color:var(--muted);text-align:right;font-size:12px}.card ol .done a{color:var(--muted)}.card ol .done .n{color:var(--green)}.card .more{border-top:1px dashed var(--border);margin-top:auto;padding-top:6px}.card .more summary{cursor:pointer;color:var(--accent);padding:0 6px;font-size:12.5px;list-style:none}.card .more summary::-webkit-details-marker{display:none}.card .more[open] summary{display:none}.lesson{grid-template-columns:minmax(0, var(--read)) var(--toc);justify-content:center;gap:40px;display:grid}.lhead{max-width:calc(var(--read) + var(--toc) + 40px);grid-column:1/-1;justify-self:center;width:100%}.run-guide{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--surface);border-radius:10px;margin-top:32px;padding:14px 16px;font-size:13.5px}.markdown .run-guide h3{margin:0 0 6px;font-size:14px}.markdown .run-guide p{color:var(--muted);margin:0}.markdown .run-guide pre{margin:10px 0 0;padding:10px 12px;font-size:12.5px}.crumb{color:var(--muted);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.cats .cat{background:var(--surface-2);color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.lhead h1{margin:6px 0 4px;font-size:28px;line-height:1.3}.lhead .sub{color:var(--muted);font-size:15px}.meta{color:var(--muted);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;margin-top:12px;padding:12px 0;font-size:13px;display:flex}.meta b{color:var(--text);font-weight:600}.done-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;margin-left:auto;padding:6px 12px;font-size:13px;font-weight:600}.done-btn.is-done{color:var(--green);border-color:var(--green)}.markdown{min-width:0}.markdown>h1:first-child{display:none}.markdown h2{scroll-margin-top:calc(var(--top) + 14px);align-items:center;gap:10px;margin:40px 0 12px;font-size:21px;display:flex}.markdown h2 .k{color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.markdown h3{scroll-margin-top:calc(var(--top) + 14px);margin:26px 0 8px;font-size:17px}.markdown h4{margin:20px 0 8px;font-size:15px}.markdown p{margin:0 0 14px}.markdown blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;margin:0 0 18px;padding:12px 16px}.markdown blockquote p{margin:0}.markdown ul,.markdown ol{margin:0 0 14px;padding-left:24px}.markdown li{margin:4px 0}.markdown table{border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:8px;width:100%;margin:0 0 18px;font-size:14px;display:table;overflow:hidden}.markdown th{background:var(--surface-2);text-align:left;padding:8px 12px;font-weight:600}.markdown td{border-top:1px solid var(--border);vertical-align:top;padding:8px 12px}.markdown tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--surface-2) 45%, transparent)}.markdown td code,.markdown th code{white-space:normal;word-break:break-all}.markdown :not(pre)>code{background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:13px}.markdown hr{border:0;border-top:1px solid var(--border);margin:28px 0}.markdown details{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin:0 0 12px;padding:0 16px}.markdown details summary{cursor:pointer;color:var(--text);align-items:center;gap:10px;padding:12px 0;font-weight:600;list-style:none;display:flex}.markdown details summary::-webkit-details-marker{display:none}.markdown details summary:after{content:"▶";color:var(--muted);margin-left:auto;font-size:11px;transition:transform .15s}.markdown details[open] summary{border-bottom:1px solid var(--border);margin-bottom:12px}.markdown details[open] summary:after{transform:rotate(90deg)}.markdown img{max-width:100%}.code-block{border:1px solid var(--border);background:var(--code-bg);border-radius:10px;margin:0 0 18px;overflow:hidden}.code-bar{color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface);align-items:center;padding:5px 12px;font-size:12px;display:flex}.copy-btn{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:5px;margin-left:auto;padding:2px 8px;font-size:12px}.copy-btn:hover{color:var(--text)}.code-block pre{color:var(--code-text);tab-size:4;margin:0;padding:12px 14px;font-size:13.5px;line-height:1.65;overflow-x:auto}.tk-k{color:var(--tk-k);font-weight:600}.tk-s{color:var(--tk-s)}.tk-c{color:var(--tk-c);font-style:italic}.tk-n{color:var(--tk-n)}.tk-a{color:var(--tk-a)}.tk-t{color:var(--tk-t)}.toc{top:calc(var(--top) + 20px);align-self:start;font-size:13px;position:sticky}.toc strong{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;font-size:11px;font-weight:600;display:block}.toc ul{border-left:2px solid var(--border);margin:0;padding:0;list-style:none}.toc li a{color:var(--muted);border-left:2px solid #0000;margin-left:-2px;padding:4px 12px;line-height:1.4;display:block}.toc li.h3 a{padding-left:24px;font-size:12.5px}.toc li.on a{color:var(--accent-ink);border-left-color:var(--accent);font-weight:600}.toc li a:hover{color:var(--text)}.lesson-footer{grid-column:1}.pager{grid-template-columns:1fr 1fr;gap:12px;margin-top:36px;display:grid}.pager a{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;gap:2px;padding:12px 14px;display:grid}.pager a small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11.5px}.pager a span{font-size:14px;font-weight:600}.pager a.next{text-align:right}@media (width<=1180px){.lesson{grid-template-columns:minmax(0, var(--read))}.toc{display:none}}@media (width<=860px){.nav-toggle{display:grid}.sbwrap{display:contents}.sb-handle{display:none}.layout.sb-folded,.layout{grid-template-columns:1fr}.bar1{gap:8px;padding:0 12px}.search{flex:1;width:130px;min-width:0}.cats{padding:0 12px}.sidebar,.sbwrap .sidebar,.sb-folded .sidebar{left:0;top:var(--top);height:calc(100vh - var(--top));z-index:10;width:280px;box-shadow:var(--shadow);transition:transform .2s;position:fixed;transform:translate(-100%)}.sidebar.open,.sbwrap .sidebar.open{transform:none}.content{padding:18px 16px 60px}.hero{grid-template-columns:1fr}.ring,.topbar .prog{display:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important}html{scroll-behavior:auto}}.refs{border:1px dashed var(--border);color:var(--muted);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:32px;padding:14px 16px;font-size:13.5px;display:flex}.refs a{color:var(--accent);font-weight:600}.tabs{max-width:calc(var(--read) + var(--toc) + 40px);width:100%;top:var(--top);z-index:5;background:var(--bg);flex-wrap:wrap;grid-column:1/-1;justify-self:center;gap:6px;margin-bottom:8px;padding:8px 0;display:flex;position:sticky}.tabs a{border:1px solid var(--border);background:var(--surface);color:var(--muted);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.tabs a .n{background:var(--surface-2);border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;display:grid}.tabs a:hover{color:var(--text);border-color:var(--muted)}.tabs .step{flex-shrink:0;gap:6px;margin-left:auto;display:inline-flex}.tabs .step a.go{background:var(--text);border-color:var(--text);color:var(--bg);font-weight:600}.tabs .step .off{border:1px solid var(--border);color:var(--border);border-radius:999px;align-items:center;padding:6px 12px;font-size:12.5px;display:inline-flex}.tabs a.on .n{color:inherit;background:#ffffff40}.markdown>div>h1:first-child{display:none}.markdown h2{margin-top:8px}.secnav{grid-template-columns:1fr auto 1fr;align-items:stretch;gap:12px;margin-top:36px;display:grid}.secnav a{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;gap:2px;padding:12px 14px;display:grid}.secnav a small{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:11.5px}.secnav a span{font-size:14px;font-weight:600}.secnav a.next{text-align:right}.secnav .pos{color:var(--muted);align-self:center;padding:0 6px;font-size:13px}.fold{border:1px solid var(--border);background:var(--surface);border-radius:10px;margin:0 0 12px;padding:0 18px}.fold>summary{cursor:pointer;scroll-margin-top:calc(var(--top) + 14px);align-items:center;gap:10px;padding:14px 0;font-size:19px;font-weight:700;list-style:none;display:flex}.fold>summary::-webkit-details-marker{display:none}.fold>summary .k{color:var(--accent-ink);background:var(--accent-soft);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:700}.fold>summary:after{content:"▶";color:var(--muted);margin-left:auto;font-size:11px;transition:transform .15s}.fold[open]>summary{border-bottom:1px solid var(--border);margin-bottom:14px}.fold[open]>summary:after{transform:rotate(90deg)}.fold>div{padding-bottom:6px}.is-fold .toc li.on a{color:var(--accent-ink)}@media (width<=860px){.tabs{top:var(--top);scrollbar-width:thin;flex-wrap:nowrap;width:auto;max-width:none;margin:0 -16px 8px;padding:8px 16px 6px;position:sticky;overflow-x:auto}.secnav{background:var(--surface);border-top:1px solid var(--border);grid-template-columns:1fr auto 1fr;gap:8px;margin:28px -16px 0;padding:8px 16px;position:sticky;bottom:0}.secnav a{padding:8px 10px}.secnav a span{font-size:13px}}.lesson.gram .subtabs{flex-wrap:wrap;gap:6px;margin:4px 0 18px;display:flex}.lesson.gram .subtabs button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.lesson.gram .subtabs button:hover{color:var(--text);background:var(--surface-2)}.lesson.gram .subtabs button.on{background:var(--green);color:#fff;border-color:var(--green)}.lesson.gram .subtabs .n{opacity:.85;font-size:11px}.lesson.gram .markdown h3{border-bottom:2px solid var(--border);margin-top:6px;padding-bottom:8px;font-size:21px}.lesson.gram .markdown p{font-size:15.5px}.ex{border:1px solid var(--border);border-left:4px solid var(--green);background:var(--surface);border-radius:12px;gap:6px;margin:0 0 18px;padding:14px 16px;display:grid}.ex-en{font-size:17px;font-weight:600;line-height:1.5}.ex-ko{color:var(--muted);margin:-4px 0 6px;font-size:14px}.ex-ok,.ex-bad{border-radius:8px;padding:8px 12px;font-size:15.5px;font-weight:600}.ex-ok{background:color-mix(in srgb, var(--green) 14%, transparent);color:var(--green)}.ex-ok:before{content:"✔ "}.ex-bad{background:color-mix(in srgb, var(--red) 12%, transparent);color:var(--red)}.ex-bad:before{content:"✖ "}.ex-gap{height:4px}.ex-formula{background:color-mix(in srgb, var(--purple) 12%, transparent);color:var(--purple);border-radius:12px;margin:0 0 18px;padding:10px 16px;font-family:ui-monospace,Consolas,monospace;font-size:15px;font-weight:700;display:inline-block}.lesson.gram .subnav{justify-content:space-between;gap:10px;margin:8px 0 24px;display:flex}.lesson.gram .subnav button,.lesson.gram .subnav a{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;padding:9px 14px;font-size:13px;font-weight:600}.lesson.gram .subnav .go{background:var(--green);color:#fff;border-color:var(--green)}.brand{border-right:1px solid var(--border);gap:11px;margin-right:10px;padding-right:20px}.brand .mark{background:var(--g);width:34px;height:34px;color:var(--on);box-shadow:0 3px 10px color-mix(in srgb, var(--g) 35%, transparent);border-radius:10px;font-size:16px}.brand .name{letter-spacing:-.02em;font-size:18px;font-weight:800;line-height:1.15;display:grid}.brand .name small{letter-spacing:0;color:var(--muted);font-size:11px;font-weight:600}.groups{background:0 0;align-self:stretch;gap:2px;padding:0}.groups button{height:100%;color:var(--muted);box-shadow:none;border-bottom:3px solid #0000;border-radius:0;padding:0 14px;font-size:15px;font-weight:700}.groups button:hover{color:var(--text);background:0 0}.groups button.on{color:var(--text);border-bottom-color:var(--g);box-shadow:none;background:0 0}.search{width:260px;margin-left:auto}.cats{background:var(--bg);border-top-color:var(--border);gap:2px}.cats-label{border-right:1px solid var(--border);color:var(--g);flex-shrink:0;margin-right:10px;padding-right:14px;font-size:12px;font-weight:800}.cats .cat{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;align-self:stretch;padding:0 12px;font-weight:600}.cats .cat:hover{color:var(--text);background:0 0}.cats .cat.on{color:var(--c);border-bottom-color:var(--c);background:0 0;font-weight:800}.cats .cat .cnt{color:var(--muted);opacity:.8;font-weight:500}.home .hero{background:color-mix(in srgb, var(--g) 8%, var(--surface));border-color:color-mix(in srgb, var(--g) 28%, var(--border));box-shadow:none;border-radius:20px;padding:28px 32px}.home .hero .eyebrow{background:var(--g);color:var(--on);letter-spacing:.02em;text-transform:none;border-radius:999px;padding:3px 11px;font-weight:700;display:inline-block}.home .hero h1{margin:10px 0 4px;font-size:28px}.home .btn{border-radius:12px;padding:11px 20px;font-size:15px}.home .btn.primary{background:var(--g);border-color:var(--g);color:var(--on);box-shadow:0 6px 16px color-mix(in srgb, var(--g) 30%, transparent)}.home .ring{background:conic-gradient(var(--g) calc(var(--p) * 1%), color-mix(in srgb, var(--g) 16%, var(--surface)) 0);width:132px;height:132px}.home .ring b{width:104px;height:104px;font-size:26px;font-weight:800}.home .gsec{background:0 0;border:0;padding:0}.home .gsec h2{border-bottom:0;padding-bottom:0;font-size:18px}.home .gsec h2 .k{background:var(--g);width:28px;height:28px;color:var(--on);border-radius:8px}.home .grid{gap:16px}.home .card{background:var(--surface);border-top-width:1px;border-top-color:var(--border);box-shadow:var(--shadow);border-radius:16px;gap:0;padding:0 0 10px;transition:transform .15s,box-shadow .15s;overflow:hidden}.home .card:hover{transform:translateY(-2px);box-shadow:0 2px 4px #141c2d0f,0 14px 32px #141c2d1a}.home .card header{background:color-mix(in srgb, var(--c) 10%, var(--surface));gap:12px;padding:14px 16px}.home .card header>div{min-width:0;display:grid}.home .card .badge{background:var(--c);width:38px;height:38px;color:var(--on);border-radius:11px;flex-shrink:0;place-items:center;font-size:15px;font-weight:800;display:grid}.home .card header .cnt{background:var(--surface);color:var(--c);border-radius:999px;padding:3px 10px;font-weight:800}.home .mini{background:color-mix(in srgb, var(--c) 14%, var(--surface));border-radius:0}.home .mini i{background:var(--c)}.home .card ol{padding:8px 10px 0}.home .card ol a{grid-template-columns:22px 1fr;align-items:center;gap:10px}.home .card ol .n,.sidebar li a .n{border:1.5px solid color-mix(in srgb, var(--c) 45%, transparent);width:22px;height:22px;color:var(--c);text-align:center;border-radius:50%;place-items:center;font-size:10.5px;font-weight:800;display:grid}.home .card ol .done .n,.sidebar li.done a .n{background:var(--c);border-color:var(--c);color:var(--on)}.home .card .more{border-top:1px solid var(--border);color:var(--c);margin:auto 10px 0;padding:8px 6px 0;font-size:12.5px;font-weight:700;text-decoration:none;display:block}.home .card .more:hover{text-decoration:underline}.home .card header{box-sizing:border-box;height:84px}.home .card header h3{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.home .card header small{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.panel-head{background:color-mix(in srgb, var(--c) 10%, var(--surface));border-bottom:0;border-radius:12px;margin-bottom:8px;padding:10px 12px}.panel-head strong{color:var(--c);font-size:15px}.sidebar li a{border-radius:9px;grid-template-columns:22px 1fr;align-items:center;gap:9px}.sidebar li.on a{background:color-mix(in srgb, var(--c) 12%, var(--surface));color:var(--c);font-weight:700}.sidebar li.on a .n{background:var(--c);border-color:var(--c);color:var(--on)}.lhead{background:color-mix(in srgb, var(--c) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--c) 26%, var(--border));border-radius:18px;margin-bottom:10px;padding:20px 26px 4px}.lhead h1{font-size:30px}.lhead .crumb .chip{color:var(--c);font-weight:700}.meta{border-top-color:color-mix(in srgb, var(--c) 22%, var(--border));border-bottom:0}.tabs a:hover{border-color:var(--c);color:var(--c)}.tabs a.on{background:var(--c);border-color:var(--c);color:var(--on)}.tabs a.on .n{background:var(--on);color:var(--c)}.tabs .step a.go{background:var(--c);border-color:var(--c);color:var(--on)}.markdown h2{background:linear-gradient(var(--c), var(--c)) left bottom / 56px 3px no-repeat;padding-bottom:12px;font-size:23px}.markdown h2 .k,.fold>summary .k{background:var(--c);width:32px;height:32px;color:var(--on);border-radius:50%;flex-shrink:0;place-items:center;padding:0;font-size:12.5px;font-weight:800;display:grid}.lesson:not(.gram) .markdown h3{align-items:center;gap:9px;display:flex}.lesson:not(.gram) .markdown h3:before{content:"";background:var(--c);border-radius:3px;flex-shrink:0;width:5px;height:1.05em}.markdown strong{background:linear-gradient(transparent 60%, var(--mark) 60%)}.markdown blockquote{border:1px solid color-mix(in srgb, var(--c) 24%, var(--border));background:color-mix(in srgb, var(--c) 7%, var(--surface));border-radius:12px}.markdown blockquote.callout{--k:var(--blue);border-color:color-mix(in srgb, var(--k) 32%, var(--border));background:color-mix(in srgb, var(--k) 8%, var(--surface))}.callout.note{--k:var(--gray)}.callout.warn{--k:var(--amber)}.callout.key{--k:var(--green)}.co-t{color:var(--k);align-items:center;gap:7px;margin-bottom:2px;font-size:13px;font-weight:800;display:flex}.co-t:before{content:"★";background:var(--k);width:18px;height:18px;color:var(--on);border-radius:50%;place-items:center;font-size:10px;display:grid}.callout.note .co-t:before{content:"i"}.callout.warn .co-t:before{content:"!"}.callout.key .co-t:before{content:"✓"}.markdown table{border-color:color-mix(in srgb, var(--c) 26%, var(--border));border-radius:12px}.markdown th{background:color-mix(in srgb, var(--c) 10%, var(--surface));color:var(--c);font-weight:700}.code-block{border-radius:12px}.code-bar{background:color-mix(in srgb, var(--c) 6%, var(--surface))}.code-bar>span{background:var(--c);color:var(--on);border-radius:5px;padding:0 8px;font-weight:700}.toc li.on a{color:var(--c);border-left-color:var(--c)}.secnav a:hover,.pager a:hover{border-color:var(--c)}@media (width<=860px){.brand{border-right:0;margin-right:0;padding-right:0}.brand .name small,.cats-label{display:none}.groups button{padding:0 8px;font-size:14px}.lhead{padding:16px 18px 2px}.lhead h1{font-size:24px}.home .hero{padding:20px}}.guide-back{z-index:60;background:#0a0e168c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.guide{background:var(--surface);width:min(640px,100%);max-height:calc(100vh - 32px);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.guide header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 14px;display:flex}.guide header nav{background:var(--surface-2);border-radius:9px;gap:2px;margin-right:auto;padding:3px;display:flex;overflow-x:auto}.guide header nav button{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:5px 10px;font-size:13px}.guide header nav button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:700}.guide-art{background:var(--bg);border-bottom:1px solid var(--border);place-items:center;height:210px;padding:28px 18px 14px;display:grid;overflow:hidden}.guide-text{min-height:132px;padding:16px 20px 4px}.guide-text h3{margin:0 0 8px;font-size:17px}.guide-text p{color:var(--text);margin:0 0 6px;font-size:14px;line-height:1.6}.guide-text a{margin-top:4px;font-size:13px;font-weight:600;display:inline-block}.guide footer{color:var(--muted);justify-content:space-between;align-items:center;padding:12px 14px;font-size:13px;display:flex}.guide footer .btn:disabled{opacity:.4;cursor:default}.gm-top,.gm-page,.gm-code,.gm-steps{width:100%;max-width:560px;font-size:12px}.gm-top{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px}.gm-bar{align-items:center;gap:8px;padding:8px 10px;display:flex}.gm-brand{align-items:center;gap:5px;margin-right:auto;font-weight:700;display:flex}.gm-brand i{background:var(--accent);width:20px;height:20px;color:var(--surface);border-radius:6px;place-items:center;font-size:11px;font-style:normal;display:grid}.gm-groups{background:var(--surface-2);border-radius:7px;gap:1px;padding:2px;display:flex}.gm-groups b,.gm-tabs b{color:var(--muted);white-space:nowrap;border-radius:5px;padding:2px 6px;font-weight:500}.gm-groups b.on{background:var(--surface);color:var(--text);font-weight:700}.gm-search{border:1px solid var(--border);width:74px;color:var(--muted);background:var(--bg);border-radius:6px;padding:3px 6px}.gm-btn{border:1px solid var(--border);border-radius:6px;place-items:center;width:22px;height:22px;display:grid}.gm-cats{border-top:1px solid var(--border);align-items:center;gap:10px;padding:7px 10px;display:flex}.gm-cats small{color:var(--muted);font-weight:700}.gm-cats b{color:var(--c);font-weight:600}.gm-page{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:10px;gap:10px;padding:12px 14px;display:grid}.gm-title{font-size:15px;font-weight:700}.gm-meta,.gm-gen{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gm-pill{border:1px solid var(--border);color:var(--text);background:var(--surface);white-space:nowrap;border-radius:7px;padding:3px 9px}.gm-pill.strong{background:var(--accent);border-color:var(--accent);color:var(--surface)}.gm-pill.yellow{color:#3b2f00;background:#facc15;border-color:#eab308;font-weight:700}.gm-grow{flex:1}.gm-tabs{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding-bottom:8px;display:flex}.gm-tabs b.on{color:var(--accent);font-weight:700}.gm-step{color:var(--accent);white-space:nowrap;padding:2px 6px;font-weight:600}.gm-lines{gap:6px;width:100%;display:grid}.gm-lines i{background:var(--surface-2);border-radius:4px;height:7px}.gm-slide{font-size:14px;font-weight:700}.gm-prog{background:var(--surface-2);border-radius:5px;height:10px;overflow:hidden}.gm-prog i{background:#58cc02;height:100%;display:block}.gm-run{border-left:3px solid var(--accent);gap:6px;padding-left:10px;display:grid}.gm-code{color:#e7eaf0;white-space:pre;background:#0f1217;border-radius:8px;margin:0;padding:10px 12px;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.6;overflow:hidden}.gm-steps{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.gm-steps div{border:2px solid var(--border);background:var(--surface);text-align:center;opacity:.55;border-radius:12px;gap:2px;padding:10px 8px;font-weight:700;display:grid}.gm-steps div small{color:var(--muted);font-size:10px}.gm-steps .done{opacity:1;border-color:#58cc02}.gm-steps .open{opacity:1;border-color:#1cb0f6}.gm-hl{outline-offset:3px;border-radius:8px;outline:2px solid #f97316;animation:1.6s ease-in-out infinite gm-pulse;display:inline-flex;position:relative}.gm-hl:after{content:attr(data-tip);color:#fff;white-space:nowrap;background:#f97316;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}@keyframes gm-pulse{50%{outline-color:#f9731659}}.guide-text.long{max-height:40vh;padding-bottom:12px;overflow-y:auto}.guide-text h4{margin:14px 0 6px;font-size:14px}.guide-text ul{margin:0 0 6px;padding-left:20px;font-size:14px;line-height:1.6}.guide-text code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:12.5px}.guide-text .gm-code{white-space:pre-wrap;margin:6px 0 8px}.gm-table{border-collapse:collapse;width:100%;margin:4px 0 8px;font-size:13px}.gm-table th,.gm-table td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:5px 8px}.gm-table th{background:var(--surface-2)}@media (width<=560px){.gm-groups b:nth-child(n+4){display:none}.gm-steps{grid-template-columns:repeat(2,1fr)}.guide-art{height:230px}}.page{max-width:var(--read);margin:0 auto}.site-footer{max-width:var(--read);border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:64px auto 0;padding:20px 0 8px;font-size:13px;display:flex}.site-footer nav{flex-wrap:wrap;gap:16px;display:flex}.site-footer a,.site-footer button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.site-footer a:hover,.site-footer button:hover{color:var(--text)}.ad{place-items:center;display:grid;overflow:hidden}.ad-rail{top:calc(var(--top) + 20px);z-index:4;width:160px;height:600px;display:none;position:fixed}.ad-rail-l{left:8px}.ad-rail-r{right:8px}@media (width>=1440px){.layout.nosb~div .ad-rail{display:grid}}@media (width>=1392px){.layout.sb-folded~div .ad-rail-r{display:grid}}@media (width>=1612px){.layout~div .ad-rail-r{display:grid}}.ad-anchor{z-index:6;width:min(728px,100%);position:fixed;bottom:0;left:50%;transform:translate(-50%)}.ad-anchor .ad-preview{border-radius:10px 10px 0 0;height:90px}.ad-anchor button{border:1px solid var(--border);background:var(--surface);width:56px;height:24px;color:var(--muted);cursor:pointer;border-bottom:0;border-radius:8px 8px 0 0;margin:0 auto;padding:0;display:block}.ad-bottom{max-width:var(--read);min-height:100px;margin:40px auto 0}.ad-preview{border:2px dashed var(--border);color:var(--muted);background:var(--surface-2);border-radius:10px;font-size:12px}.guide.sync{gap:10px;padding:20px 22px;overflow:auto}.guide.sync h2{margin:0;font-size:18px}.guide.sync p{margin:0}.guide.sync .muted{color:var(--muted);font-size:13px}.sync-code{letter-spacing:1px;border:1px dashed var(--border);background:var(--surface-2);text-align:center;-webkit-user-select:all;user-select:all;border-radius:10px;padding:10px 12px;font:600 20px/1.4 ui-monospace,Consolas,monospace}.sync-row{flex-wrap:wrap;gap:8px;display:flex}.sync-row.end{justify-content:flex-end}.sync-row input{border:1px solid var(--border);background:var(--bg);min-width:220px;color:var(--text);border-radius:8px;flex:1;padding:8px 10px;font-family:ui-monospace,Consolas,monospace}.sync-row button{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:8px 12px}.sync-row button.primary{background:var(--g);border-color:var(--g);color:var(--on)}.sync-row button.danger{color:#d1242f;border-color:#d1242f}.sync-row button:disabled{opacity:.5;cursor:default}.sync-msg{color:var(--g);font-size:13px}h1,h2,h3,.hero h1,.lhead h1{word-break:keep-all;overflow-wrap:anywhere}@media (width<=860px){.brand .name,.groups button{white-space:nowrap}.search{min-width:56px}.sidebar.open,.sbwrap .sidebar.open{width:min(320px,86vw);box-shadow:0 0 0 100vmax #0a0e1673}.lhead .crumb .chip{box-shadow:none;background:0 0;border:0;padding:0}.tabs{scrollbar-width:none;justify-self:stretch;min-width:0;margin-bottom:4px;padding-top:6px;padding-bottom:6px}.tabs::-webkit-scrollbar{display:none}.lesson{row-gap:12px}}@media (width<=480px){.brand .name{display:none}.groups button{padding:0 6px}}.level-row{scrollbar-width:none}.level-row::-webkit-scrollbar{display:none}
