.icon[data-v-1a94de23]{flex:none;display:block}.locale-switch[data-v-4781f593]{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.locale-half[data-v-4781f593]{min-width:34px;height:26px;color:var(--muted);letter-spacing:.02em;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;padding:0 6px;font-size:12px;font-weight:600;display:grid}.locale-half[data-v-4781f593]:hover{color:var(--ink)}.locale-half.on[data-v-4781f593]{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.theme-switch[data-v-4a412926]{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.theme-half[data-v-4a412926]{width:30px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.theme-half[data-v-4a412926]:hover{color:var(--ink)}.theme-half.on[data-v-4a412926]{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-sm)}.user-menu[data-v-5bd640ed]{position:relative}.user-btn[data-v-5bd640ed]{cursor:pointer;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:3px 6px 3px 3px;display:flex}.user-btn[data-v-5bd640ed]:hover{border-color:var(--border);background:var(--surface-2)}.user-chevron[data-v-5bd640ed]{transform:rotate(90deg)}.user-pop[data-v-5bd640ed]{z-index:40;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:244px;box-shadow:var(--shadow-md);padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.user-who[data-v-5bd640ed]{border-bottom:1px solid var(--border);gap:2px;margin:0;padding:8px 10px 10px;font-size:14px;display:grid}.user-who .mono[data-v-5bd640ed]{color:var(--muted);font-family:var(--font-mono);font-size:12.5px}.user-pop button[data-v-5bd640ed],.user-link[data-v-5bd640ed]{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:9px 10px;font-size:14px;text-decoration:none;display:grid}.user-pop button[data-v-5bd640ed]:hover,.user-link[data-v-5bd640ed]:hover{background:var(--surface-2)}.user-prefs[data-v-5bd640ed]{grid-template-columns:20px minmax(0,1fr) auto;align-items:center;column-gap:10px;padding:7px 10px;display:grid}.user-pref-label[data-v-5bd640ed]{color:var(--muted);grid-column:2;font-size:13.5px}.user-prefs .user-seg[data-v-5bd640ed]{grid-column:3;justify-self:end;width:96px}.user-prefs[data-v-5bd640ed] .user-seg .locale-half,.user-prefs[data-v-5bd640ed] .user-seg .theme-half{flex:1;min-width:0}.user-exit[data-v-5bd640ed]{color:var(--bad)}.bell[data-v-fcb41d77]{position:relative}.bell-btn[data-v-fcb41d77]{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:relative}.bell-btn[data-v-fcb41d77]:hover{border-color:var(--border);background:var(--surface-2)}.bell-btn.has-unread[data-v-fcb41d77]{color:var(--ink)}.bell-badge[data-v-fcb41d77]{background:var(--accent);min-width:16px;color:var(--accent-contrast,#fff);text-align:center;border-radius:999px;padding:0 4px;font-size:10.5px;font-weight:600;line-height:16px;position:absolute;top:-4px;right:-6px}.bell-pop[data-v-fcb41d77]{z-index:40;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:min(360px,100vw - 24px);box-shadow:var(--shadow-md);padding:6px;position:absolute;top:calc(100% + 8px);right:0}.bell-head[data-v-fcb41d77]{border-bottom:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;padding:8px 10px 6px;font-size:12.5px;display:flex}.bell-all[data-v-fcb41d77]{color:var(--accent-ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.bell-all[data-v-fcb41d77]:hover{text-decoration:underline}.bell-empty[data-v-fcb41d77]{color:var(--muted);margin:0;padding:14px 12px 16px;font-size:13.5px;line-height:1.45}.bell-list[data-v-fcb41d77]{max-height:min(420px,60vh);margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.bell-item[data-v-fcb41d77]{width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:flex-start;gap:9px;padding:9px 10px;display:flex}.bell-item[data-v-fcb41d77]:hover{background:var(--surface-2)}.bell-dot[data-v-fcb41d77]{background:var(--border);border-radius:999px;flex:none;width:7px;height:7px;margin-top:6px}.bell-item.unread .bell-dot[data-v-fcb41d77]{background:var(--accent)}.bell-item.unread .bell-title[data-v-fcb41d77]{font-weight:600}.bell-text[data-v-fcb41d77]{gap:1px;min-width:0;display:grid}.bell-title[data-v-fcb41d77]{font-size:14px}.bell-detail[data-v-fcb41d77]{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.bell-when[data-v-fcb41d77]{color:var(--muted);font-size:12px}.backdrop[data-v-0eb59b8b]{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sky[data-v-0eb59b8b]{background:linear-gradient(180deg, var(--bd-sky-top) 0%, var(--bd-sky-mid) 55%, var(--bd-sky-low) 100%);position:absolute;inset:0}.stars[data-v-0eb59b8b]{background:var(--night-sky);opacity:var(--bd-stars);background-size:300px 280px;animation:6s ease-in-out infinite twinkle-0eb59b8b;position:absolute;inset:0 0 45%}.sun[data-v-0eb59b8b]{background:radial-gradient(circle, var(--bd-sun) 0 45%, transparent 70%);filter:blur(1px);opacity:.85;border-radius:50%;width:180px;height:180px;position:absolute;bottom:26%;left:62%}.cloud[data-v-0eb59b8b]{background:var(--bd-cloud);opacity:.7;border-radius:999px;height:28px;animation:90s linear infinite drift-0eb59b8b;position:absolute}.cloud[data-v-0eb59b8b]:before{content:"";background:inherit;border-radius:50%;width:46%;height:160%;position:absolute;bottom:40%;left:22%}.c1[data-v-0eb59b8b]{width:150px;top:14%;left:12%}.c2[data-v-0eb59b8b]{width:110px;animation-duration:120s;animation-delay:-40s;top:26%;left:70%}.land[data-v-0eb59b8b]{width:100%;height:42vh;min-height:220px;position:absolute;inset:auto 0 0}.far[data-v-0eb59b8b]{fill:var(--bd-far)}.snow[data-v-0eb59b8b]{fill:var(--bd-snow)}.mid[data-v-0eb59b8b]{fill:var(--bd-mid)}.river[data-v-0eb59b8b]{fill:var(--bd-river)}.near[data-v-0eb59b8b]{fill:var(--bd-near)}.blades[data-v-0eb59b8b]{fill:none;stroke:var(--bd-near);stroke-width:3px;stroke-linecap:round}@keyframes twinkle-0eb59b8b{50%{opacity:calc(var(--bd-stars) * .5)}}@keyframes drift-0eb59b8b{0%{transform:translate(-10vw)}to{transform:translate(110vw)}}@media (prefers-reduced-motion:reduce){.stars[data-v-0eb59b8b],.cloud[data-v-0eb59b8b]{animation:none}}.toast[data-v-d464fb32]{align-items:center;gap:12px;display:flex}.toast-text[data-v-d464fb32]{cursor:pointer}.toast-action[data-v-d464fb32]{color:inherit;font:600 13px/1.4 var(--font-ui);cursor:pointer;opacity:.9;background:0 0;border:1px solid;border-radius:8px;flex:none;padding:4px 10px}.toast-action[data-v-d464fb32]:hover{opacity:1}.keys[data-v-d630a009]{gap:10px;margin:0;padding:0;list-style:none;display:grid}.keys li[data-v-d630a009]{align-items:baseline;gap:12px;font-size:14.5px;display:flex}.keys-combo[data-v-d630a009]{flex:none;gap:4px;min-width:76px;display:inline-flex}.keys kbd[data-v-d630a009]{border:1px solid var(--control-line);background:var(--surface-2);color:var(--ink);font:500 12.5px/1.5 var(--font-ui);border-bottom-width:2px;border-radius:6px;padding:2px 7px}.scroll-top[data-v-52f728d4]{z-index:40;border:1px solid var(--border);background:var(--surface);width:44px;height:44px;color:var(--ink);box-shadow:var(--shadow-md);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:fixed;bottom:22px;right:22px;transform:rotate(90deg)}.scroll-top[data-v-52f728d4]:hover{border-color:var(--accent);color:var(--accent-ink)}.up-enter-active[data-v-52f728d4],.up-leave-active[data-v-52f728d4]{transition:opacity .2s,transform .2s}.up-enter-from[data-v-52f728d4],.up-leave-to[data-v-52f728d4]{opacity:0;transform:rotate(90deg)translate(-10px)}@media (prefers-reduced-motion:reduce){.up-enter-active[data-v-52f728d4],.up-leave-active[data-v-52f728d4]{transition:none}}.tour[data-v-ae7bd9b2]{z-index:40;border:1px solid var(--border);background:var(--surface);width:min(320px,100vw - 44px);box-shadow:var(--shadow-md);pointer-events:none;border-radius:14px;padding:16px 18px 14px;position:fixed;bottom:78px;right:22px}.tour-actions[data-v-ae7bd9b2],.tour-actions[data-v-ae7bd9b2] *{pointer-events:auto}.tour-kicker[data-v-ae7bd9b2]{font:500 12px/1.4 var(--font-ui);color:var(--muted);align-items:center;gap:6px;margin:0 0 6px;display:flex}.tour-title[data-v-ae7bd9b2]{font:600 16px/1.3 var(--font-ui);color:var(--ink);margin:0 0 6px}.tour-text[data-v-ae7bd9b2]{font:400 13.5px/1.55 var(--font-ui);color:var(--muted);margin:0 0 12px}.tour-actions[data-v-ae7bd9b2]{align-items:center;gap:10px;display:flex}.tour-quiet[data-v-ae7bd9b2]{font:500 13px/1.4 var(--font-ui);color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 2px}.tour-quiet[data-v-ae7bd9b2]:hover{color:var(--ink);text-decoration:underline}.tour-enter-active[data-v-ae7bd9b2],.tour-leave-active[data-v-ae7bd9b2]{transition:opacity .25s,transform .25s}.tour-enter-from[data-v-ae7bd9b2],.tour-leave-to[data-v-ae7bd9b2]{opacity:0;transform:translateY(8px)}@media (prefers-reduced-motion:reduce){.tour-enter-active[data-v-ae7bd9b2],.tour-leave-active[data-v-ae7bd9b2]{transition:none}}.halo[data-v-6c1d1d1c]{fill:var(--accent-soft)}.ring[data-v-6c1d1d1c]{stroke:var(--accent);stroke-width:1.6px;stroke-dasharray:4 5;opacity:.75}.glyph[data-v-6c1d1d1c]{stroke:var(--accent-ink);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;fill:none}.sign-icon.earned .glyph[data-v-6c1d1d1c]{stroke:var(--accent-strong)}.sign-icon[data-v-6c1d1d1c]:not(.earned){filter:saturate(.25);opacity:.5}.ceremony[data-v-4c260e86]{z-index:90;background:color-mix(in srgb, var(--ink) 34%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.ceremony-card[data-v-4c260e86]{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:100%;max-width:360px;box-shadow:var(--shadow-lg);text-align:center;justify-items:center;gap:6px;padding:30px 30px 24px;display:grid}.ceremony-glow[data-v-4c260e86]{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 22%, transparent) 0%, transparent 68%);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.ceremony-kicker[data-v-4c260e86]{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin:0;font-size:12.5px;font-weight:700}.ceremony-title[data-v-4c260e86]{font-family:var(--font-display);margin:0;font-size:24px}.ceremony-hint[data-v-4c260e86]{color:var(--muted);margin:0 0 12px;font-size:14.5px}.ceremony-enter-active[data-v-4c260e86]{transition:opacity .28s}.ceremony-enter-active .ceremony-card[data-v-4c260e86]{transition:transform .34s cubic-bezier(.2,.9,.3,1.2)}.ceremony-enter-active .ceremony-icon[data-v-4c260e86]{transition:transform .5s cubic-bezier(.2,.9,.3,1.35)}.ceremony-enter-from[data-v-4c260e86]{opacity:0}.ceremony-enter-from .ceremony-card[data-v-4c260e86]{transform:translateY(14px)scale(.94)}.ceremony-enter-from .ceremony-icon[data-v-4c260e86]{transform:scale(.55)}.ceremony-leave-active[data-v-4c260e86]{transition:opacity .22s}.ceremony-leave-to[data-v-4c260e86]{opacity:0}@media (prefers-reduced-motion:reduce){.ceremony-enter-active[data-v-4c260e86],.ceremony-enter-active .ceremony-card[data-v-4c260e86],.ceremony-enter-active .ceremony-icon[data-v-4c260e86],.ceremony-leave-active[data-v-4c260e86]{transition:none}}.crumbs-bar[data-v-d7a477c3]{flex:0 auto;align-items:center;gap:6px;min-width:0;font-size:13px;display:flex;overflow:hidden}.crumb[data-v-d7a477c3]{text-overflow:ellipsis;white-space:nowrap;max-width:26ch;color:var(--muted);text-decoration:none;overflow:hidden}.crumb[data-v-d7a477c3]:hover{color:var(--ink)}.crumb.current[data-v-d7a477c3]{color:var(--ink);flex:0 auto;max-width:42ch;font-weight:600}.crumbs-sep[data-v-d7a477c3]{color:var(--faint)}@media (width<=700px){.crumb[data-v-d7a477c3]:not(.current),.crumbs-sep[data-v-d7a477c3]{display:none}.crumb.current[data-v-d7a477c3]{max-width:100%}}@media (width<=900px){.crumb[data-v-d7a477c3]{max-width:14ch}.crumb.current[data-v-d7a477c3]{max-width:20ch}}.studio-menu[data-v-c35f5e5e]{display:inline-flex;position:relative}.studio-btn[data-v-c35f5e5e]{color:var(--muted);font:600 13.5px/1 var(--font-ui);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:5px;padding:7px 12px;display:inline-flex}.studio-menu:hover .studio-btn[data-v-c35f5e5e],.studio-menu.is-open .studio-btn[data-v-c35f5e5e],.studio-menu.is-active .studio-btn[data-v-c35f5e5e]{color:var(--ink);background:var(--surface-2);border-color:var(--border)}.studio-chevron[data-v-c35f5e5e]{transition:transform .15s;transform:rotate(90deg)}.studio-menu.is-open .studio-chevron[data-v-c35f5e5e]{transform:rotate(270deg)}.studio-pop[data-v-c35f5e5e]{z-index:40;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-width:230px;box-shadow:var(--shadow-md);padding:6px;display:grid;position:absolute;top:calc(100% + 8px);left:0}.studio-item[data-v-c35f5e5e]{color:var(--ink);border-radius:8px;align-items:center;gap:9px;padding:8px 10px;font-size:14px;text-decoration:none;display:flex}.studio-item[data-v-c35f5e5e]:hover{background:var(--surface-2)}.studio-item .nav-count[data-v-c35f5e5e]{margin-left:auto}.studio-sep[data-v-c35f5e5e]{background:var(--border);height:1px;margin:5px 6px}.studio-hub[data-v-c35f5e5e]{color:var(--muted)}@media (width<=720px){.studio-pop[data-v-c35f5e5e]{position:fixed;top:60px;left:14px;right:14px}}.useful[data-v-9183888a]{border-top:1px solid var(--border);background:color-mix(in srgb, var(--surface-2) 35%, var(--surface));flex-wrap:wrap;align-items:baseline;gap:6px 18px;padding:12px 18px 16px;display:flex}.useful-title[data-v-9183888a]{color:var(--faint);font:600 12px/1 var(--font-ui);letter-spacing:.04em;text-transform:uppercase}.useful-link[data-v-9183888a]{color:var(--muted);font-size:13.5px;text-decoration:none}.useful-button[data-v-9183888a]{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-size:13.5px}.useful-link[data-v-9183888a]:hover,.useful-button[data-v-9183888a]:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.cookie-banner[data-v-23b15d5f]{z-index:60;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(760px,100% - 32px);box-shadow:var(--shadow-lg);color:var(--ink);align-items:center;gap:18px;padding:16px 18px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.cookie-title[data-v-23b15d5f]{font:700 15px/1.3 var(--font-ui);margin:0 0 4px}.cookie-text p[data-v-23b15d5f]{color:var(--muted);margin:0;font-size:13.5px;line-height:1.5}.cookie-link[data-v-23b15d5f]{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.cookie-actions[data-v-23b15d5f]{flex:none;grid-template-columns:1fr 1fr;gap:8px;display:grid}.cookie-btn[data-v-23b15d5f]{border:1px solid var(--ink);background:var(--surface);min-height:40px;color:var(--ink);font:600 14px/1.2 var(--font-ui);cursor:pointer;border-radius:999px;padding:8px 14px}.cookie-btn[data-v-23b15d5f]:hover{background:var(--surface-2)}.cookie-btn[data-v-23b15d5f]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cookie-enter-active[data-v-23b15d5f],.cookie-leave-active[data-v-23b15d5f]{transition:opacity .2s,transform .2s}.cookie-enter-from[data-v-23b15d5f],.cookie-leave-to[data-v-23b15d5f]{opacity:0;transform:translate(-50%,12px)}@media (width<=640px){.cookie-banner[data-v-23b15d5f]{flex-direction:column;align-items:stretch;gap:12px;padding:14px 16px;bottom:8px}}@media (prefers-reduced-motion:reduce){.cookie-enter-active[data-v-23b15d5f],.cookie-leave-active[data-v-23b15d5f]{transition:none}}@font-face{font-family:Onest;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/onest-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/onest-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/caveat-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/caveat-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+2000-206F,U+20AC,U+2122}:root{--paper:#f2efe7;--surface:#fffdf8;--surface-2:#eae5da;--ink:#1b1d22;--muted:#6a6459;--faint:#726c5c;--border:#e0d9cb;--border-strong:#cdc5b2;--bd-sky-top:#f6dccb;--bd-sky-mid:#f3d2cf;--bd-sky-low:#dfe3ec;--bd-sun:#fbe7a8;--bd-cloud:#fff8f2;--bd-stars:0;--bd-far:#b3afcf;--bd-snow:#f7f3fb;--bd-mid:#9cc3a0;--bd-river:#a9d2e3;--bd-near:#7fae83;--control-line:#8f8774;--focus-ring:#b56d14;--accent:#c8791a;--accent-ink:#8f5410;--accent-soft:#f6e9d6;--accent-strong:#a5620f;--accent-contrast:#fff;--service-paper:#efeae0;--service-tint:#e8e0cf;--service-line:#d8cdb5;--service-ink:#7a6534;--good:#2e7d57;--good-soft:#dcefe4;--good-contrast:#fff;--bad:#a93724;--bad-soft:#f6ded8;--shadow-sm:0 1px 2px #14141a0f, 0 1px 3px #14141a0d;--shadow-md:0 8px 24px #14141a1a, 0 2px 6px #14141a0f;--shadow-lg:0 24px 60px #14141a29, 0 6px 16px #14141a14;--radius:14px;--radius-sm:9px;--radius-lg:20px;--font-ui:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", system-ui, sans-serif;--font-display:"Onest", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--sunset-sky:linear-gradient(180deg, #f5d7c6 0%, #ecc7cc 55%, #d6c3d9 100%);--night-sky:radial-gradient(1.5px 1.5px at 30px 40px, #fff8eed9, transparent 60%), radial-gradient(1px 1px at 150px 110px, #fff8eeb3, transparent 60%), radial-gradient(1px 1px at 90px 190px, #fbe1a6bf, transparent 60%), radial-gradient(1.5px 1.5px at 210px 60px, #fff8ee99, transparent 60%), radial-gradient(1px 1px at 260px 230px, #fff8ee8c, transparent 60%), #1e2530;--page-bg:var(--sunset-sky);--page-bg-size:100% 100%;--maxw:clamp(960px, 94vw, 1720px);--readw:min(80ch, 100%);--shelf-bg:#1e2530;--shelf-card:#262f3dd1;--shelf-ink:#fff8ee;--shelf-muted:#fff8eea8;--shelf-accent:#e8a33d;--shelf-accent-ink:#f3bd72}@media (prefers-color-scheme:dark){:root{--paper:#2a2436;--surface:#2f2a3e;--surface-2:#3a3350;--ink:#f3ece6;--muted:#c3b8c3;--faint:#a99fae;--border:#463e5a;--border-strong:#5a5172;--bd-sky-top:#2a2340;--bd-sky-mid:#6b4566;--bd-sky-low:#d9876f;--bd-sun:#f4a77c;--bd-cloud:#8a5c78;--bd-stars:.75;--bd-far:#5d4d72;--bd-snow:#c9b3cf;--bd-mid:#3f5a52;--bd-river:#c98673;--bd-near:#2e4540;--page-bg:var(--night-sky);--page-bg-size:300px 280px;--control-line:#70717d;--focus-ring:#e8a33d;--accent:#e8a33d;--accent-ink:#f3bd72;--accent-soft:#35260f;--accent-strong:#e8a33d;--accent-contrast:#191203;--service-paper:#1a2029;--service-tint:#252d39;--service-line:#384252;--service-ink:#b6b1a5;--good:#3fb950;--good-soft:#10281a;--bad:#f0736a;--bad-soft:#331917;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 12px 32px #0000008c;--shadow-lg:0 30px 70px #000000a6}}:root[data-theme=light]{--page-bg:var(--sunset-sky);--page-bg-size:100% 100%;--accent-contrast:#fff;--paper:#f2efe7;--surface:#fffdf8;--surface-2:#eae5da;--ink:#1b1d22;--muted:#6a6459;--faint:#726c5c;--border:#e0d9cb;--border-strong:#cdc5b2;--bd-sky-top:#f6dccb;--bd-sky-mid:#f3d2cf;--bd-sky-low:#dfe3ec;--bd-sun:#fbe7a8;--bd-cloud:#fff8f2;--bd-stars:0;--bd-far:#b3afcf;--bd-snow:#f7f3fb;--bd-mid:#9cc3a0;--bd-river:#a9d2e3;--bd-near:#7fae83;--control-line:#8f8774;--focus-ring:#b56d14;--accent:#c8791a;--accent-ink:#8f5410;--accent-soft:#f6e9d6;--accent-strong:#a5620f;--service-paper:#efeae0;--service-tint:#e8e0cf;--service-line:#d8cdb5;--service-ink:#7a6534;--good:#2e7d57;--good-soft:#dcefe4;--good-contrast:#fff;--bad:#a93724;--bad-soft:#f6ded8;--shadow-sm:0 1px 2px #14141a0f, 0 1px 3px #14141a0d;--shadow-md:0 8px 24px #14141a1a, 0 2px 6px #14141a0f;--shadow-lg:0 24px 60px #14141a29, 0 6px 16px #14141a14}:root[data-theme=dark]{--paper:#2a2436;--surface:#2f2a3e;--surface-2:#3a3350;--ink:#f3ece6;--muted:#c3b8c3;--faint:#a99fae;--border:#463e5a;--border-strong:#5a5172;--bd-sky-top:#2a2340;--bd-sky-mid:#6b4566;--bd-sky-low:#d9876f;--bd-sun:#f4a77c;--bd-cloud:#8a5c78;--bd-stars:.75;--bd-far:#5d4d72;--bd-snow:#c9b3cf;--bd-mid:#3f5a52;--bd-river:#c98673;--bd-near:#2e4540;--page-bg:var(--night-sky);--page-bg-size:300px 280px;--control-line:#70717d;--focus-ring:#e8a33d;--accent:#e8a33d;--accent-ink:#f3bd72;--accent-soft:#35260f;--accent-strong:#e8a33d;--accent-contrast:#191203;--service-paper:#1a2029;--service-tint:#252d39;--service-line:#384252;--service-ink:#b6b1a5;--good:#3fb950;--good-soft:#10281a;--good-contrast:#06210c;--bad:#f0736a;--bad-soft:#331917;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 12px 32px #0000008c;--shadow-lg:0 30px 70px #000000a6}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui), sans-serif;color:var(--ink);background:var(--page-bg);background-color:var(--paper);background-size:var(--page-bg-size);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-attachment:fixed;margin:0;font-size:16px;line-height:1.6}a{color:var(--accent-ink);text-underline-offset:2px}a:hover{text-decoration:underline}img{max-width:100%}:focus-visible{outline:2.5px solid var(--focus-ring);outline-offset:2px;border-radius:4px}.app{max-width:var(--maxw);margin:22px auto 56px;padding:0 clamp(12px,2vw,28px)}.window{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:clip}.titlebar{background:color-mix(in srgb, var(--surface-2) 60%, var(--surface));border-bottom:1px solid var(--border);z-index:20;-webkit-backdrop-filter:saturate(180%)blur(12px);backdrop-filter:saturate(180%)blur(12px);align-items:center;gap:14px;padding:13px 18px;display:flex;position:sticky;top:0}.titlebar .tt{font:600 13px/1 var(--font-mono);color:var(--muted);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.titlebar .spacer{flex:1}.titlebar .brand{color:var(--ink);font:800 17px/1 var(--font-display), sans-serif;align-items:center;gap:10px;text-decoration:none;display:flex}.titlebar .brand img{border-radius:10px;box-shadow:0 2px 8px #00000040}@media (width<=700px){.titlebar .brand span{display:none}}.crumbs-row{background:color-mix(in srgb, var(--surface-2) 35%, var(--surface));border-bottom:1px solid var(--border);gap:8px;padding:8px 18px 9px}.crumbs-row .crumb{max-width:32ch}.theme-toggle{font:500 12px/1 var(--font-ui);color:var(--muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px}.theme-toggle:hover{border-color:var(--border-strong);color:var(--ink)}.nav-count{background:var(--accent);min-width:18px;height:18px;color:var(--accent-contrast,#fff);vertical-align:1px;border-radius:999px;place-items:center;margin-left:6px;padding:0 5px;font-size:11.5px;font-weight:700;display:inline-grid}.head-split{background:var(--border-strong);width:1px;height:22px;margin:0 4px}.head-search{border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;padding:0;display:inline-flex}.win-body{padding:34px clamp(20px,5vw,54px) 46px}.win-body.is-service{background:linear-gradient(var(--service-line), var(--service-line)) top / 100% 2px no-repeat, var(--service-paper)}h1.display{letter-spacing:-.02em;text-wrap:balance;margin:12px 0 10px;font-size:clamp(28px,5vw,46px);font-weight:800;line-height:1.05}.lede{color:var(--muted);text-wrap:pretty;max-width:72ch;font-size:clamp(16px,2.4vw,19px)}h1,h2,h3{font-family:var(--font-display), sans-serif}h2{letter-spacing:-.01em;text-wrap:balance;margin:2em 0 .5em;font-size:24px}h3{margin:1.6em 0 .4em;font-size:18px}p{max-width:none}.mono{font-family:var(--font-mono), monospace}.tnum{font-variant-numeric:tabular-nums}.btn{font:600 15px/1 var(--font-ui);cursor:pointer;border:1px solid #0000;border-radius:11px;align-items:center;gap:9px;padding:12px 20px;text-decoration:none;transition:transform 60ms,box-shadow .15s,background .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent-strong);color:var(--accent-contrast);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:color-mix(in srgb, var(--accent-strong) 86%, #000);text-decoration:none}.btn-ghost{background:var(--surface-2);color:var(--ink);border-color:var(--border)}.btn-ghost:hover{border-color:var(--border-strong);text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-lg{padding:15px 26px;font-size:16px}.hero{gap:6px;margin-bottom:8px;display:grid}.hero .meta-row{font:500 13.5px/1 var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:10px 22px;margin-top:16px;display:flex}.hero .meta-row b{color:var(--ink);font-weight:700}.namebar{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:12px;margin:26px 0 8px;padding:16px 18px;display:flex}.namebar label{font:600 13px/1 var(--font-ui);color:var(--muted)}.namebar input{min-width:180px;font:500 15px/1 var(--font-ui);color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:9px;flex:1;padding:11px 13px}.namebar input:focus{border-color:var(--accent);outline:none}.overall{align-items:center;gap:16px;margin:22px 0 4px;display:flex}.overall .bar{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex:1;height:10px;overflow:hidden}.overall .bar>span{background:linear-gradient(90deg, var(--accent), var(--accent-ink));border-radius:999px;height:100%;transition:width .5s cubic-bezier(.2,.8,.2,1);display:block}.overall .pct{font:700 15px/1 var(--font-mono);color:var(--ink);text-align:right;min-width:46px}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:26px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;box-shadow:var(--shadow-sm);flex-direction:column;min-height:172px;padding:20px 20px 18px;text-decoration:none;transition:transform .12s,box-shadow .2s,border-color .2s;display:flex;position:relative}.card:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);text-decoration:none;transform:translateY(-3px)}.card .top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.card .blk{font:700 12px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-ink)}.card h3{letter-spacing:-.01em;margin:12px 0 6px;font-size:19px}.card p{color:var(--muted);max-width:none;margin:0;font-size:14px}.card .foot{justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:16px;display:flex}.card .lessons-n{font:500 12.5px/1 var(--font-mono);color:var(--faint)}.ring{--p:0;flex:none;width:42px;height:42px}.ring svg{display:block;transform:rotate(-90deg)}.ring .track{stroke:var(--surface-2)}.ring .val{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1)}.ring.done .val{stroke:var(--good)}.ring .lbl{position:absolute}.chip{font:600 11.5px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--border);color:var(--muted);background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.chip.done{color:var(--good);background:var(--good-soft);border-color:#0000}.chip.started{color:var(--accent-ink);background:var(--accent-soft);border-color:#0000}.chip:before{content:"";opacity:.8;background:currentColor;border-radius:50%;width:7px;height:7px}.gate{grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;display:grid}.gate .panel{background:linear-gradient(180deg, var(--surface), color-mix(in srgb, var(--accent-soft) 40%, var(--surface)));border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:22px;display:flex}.gate .panel h3{margin:0;font-size:18px}.gate .panel p{color:var(--muted);max-width:none;margin:0 0 6px;font-size:14px}.gate .panel .btn{align-self:flex-start;margin-top:auto}.reader-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.crumbs{font:500 13px/1 var(--font-mono);color:var(--muted)}.crumbs a{color:var(--muted)}.steps{align-items:center;gap:6px;margin:22px 0 6px;display:flex}.steps .dot{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;flex:1;height:6px;transition:background .3s}.steps .dot.active{background:var(--accent);border-color:#0000}.steps .dot.seen{background:color-mix(in srgb, var(--accent) 45%, var(--surface-2));border-color:#0000}.step-count{font:600 12.5px/1 var(--font-mono);color:var(--muted);white-space:nowrap}.screen{animation:.35s fade}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.screen h2:first-child{margin-top:.2em}.screen ul,.screen ol{max-width:68ch;padding-left:1.3em}.screen li{margin:.3em 0}.screen blockquote{border-left:3px solid var(--accent);background:var(--surface-2);color:var(--ink);border-radius:0 10px 10px 0;margin:1.2em 0;padding:12px 18px}.screen code{font:500 .88em var(--font-mono);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:.15em .4em}.screen pre{color:#e8e6e0;font:500 13px/1.6 var(--font-mono);background:#14151a;border:1px solid #2b2e38;border-radius:12px;padding:16px 18px;overflow-x:auto}.screen pre code{color:inherit;font-size:inherit;background:0 0;border:none;padding:0}.skip-link{z-index:200;background:var(--accent-strong);color:var(--accent-contrast);font:600 14px/1 var(--font-ui);border-radius:10px;padding:9px 14px;text-decoration:none;transition:transform .15s;position:fixed;top:10px;left:10px;transform:translateY(-180%)}.skip-link:focus-visible{outline:2px solid var(--ink);outline-offset:2px;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.skip-link{transition:none}}.print-sheet{display:none}.tablewrap{border:1px solid var(--border);border-radius:12px;margin:1.2em 0;overflow-x:auto}.tablewrap.fade-right{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 34px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 34px),#0000 100%)}.tablewrap.fade-left{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 34px),#0000 100%);mask-image:linear-gradient(270deg,#000 calc(100% - 34px),#0000 100%)}.tablewrap.fade-left.fade-right{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 34px calc(100% - 34px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 34px calc(100% - 34px),#0000 100%)}.screen table{border-collapse:collapse;width:100%;min-width:460px;font-size:14.5px}.screen th,.screen td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:10px 14px}.screen thead th{background:var(--surface-2);font:700 12.5px/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.screen tbody tr:last-child td{border-bottom:none}.screen td.num,.screen th.num{font-variant-numeric:tabular-nums}.stat-row{flex-wrap:wrap;gap:14px;margin:1.4em 0;display:flex}.stat{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;flex:150px;padding:16px 18px}.stat .v{font:800 26px/1 var(--font-mono);letter-spacing:-.02em;color:var(--accent-ink);font-variant-numeric:tabular-nums}.stat .k{color:var(--muted);margin-top:6px;font-size:13px}.figure{color:#e8e6e0;font:500 12.5px/1.55 var(--font-mono);white-space:pre;background:#14151a;border:1px solid #2b2e38;border-radius:12px;margin:1.3em 0;padding:16px 18px;overflow-x:auto}.callout{background:var(--accent-soft);border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:12px;margin:1.4em 0;padding:16px 18px}.callout .tag{font:700 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink)}.callout p{margin:6px 0 0}.sources{color:var(--muted);margin-top:2em;font-size:13.5px}.sources summary{cursor:pointer;font:600 13px/1 var(--font-mono);color:var(--accent-ink)}.sources ol{margin:12px 0 0}.sources li{margin:.35em 0}.reader-nav{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;margin-top:34px;padding-top:22px;display:flex}.quiz-intro{text-align:center;padding:20px 0}.q-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px clamp(18px,4vw,30px)}.q-progress{font:600 12.5px/1 var(--font-mono);color:var(--muted);letter-spacing:.04em}.q-text{text-wrap:pretty;letter-spacing:-.01em;margin:12px 0 20px;font-size:19px;font-weight:650}.opts{gap:10px;display:grid}.opt{text-align:left;cursor:pointer;background:var(--surface);border:1.5px solid var(--border);font:500 15px/1.45 var(--font-ui);color:var(--ink);border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;transition:border-color .12s,background .12s;display:flex}.opt:hover:not(:disabled){border-color:var(--accent)}.opt .mk{background:var(--surface-2);border:1px solid var(--border);width:24px;height:24px;font:700 12px/1 var(--font-mono);color:var(--muted);border-radius:7px;flex:none;place-items:center;display:grid}.opt.selected{border-color:var(--accent-strong);background:var(--accent-soft);color:var(--accent-ink)}.opt.selected .mk{background:var(--accent-strong);color:var(--accent-contrast);border-color:#0000}.opt.correct{border-color:var(--good);background:var(--good-soft)}.opt.correct .mk{background:var(--good);color:#fff;border-color:#0000}.opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.opt.wrong .mk{background:var(--bad);color:#fff;border-color:#0000}.opt:disabled{cursor:default}.explain{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;margin-top:16px;padding:14px 16px;font-size:14.5px;animation:.3s fade}.explain b{color:var(--accent-ink)}.q-actions{justify-content:flex-end;margin-top:20px;display:flex}.result{text-align:center;padding:20px 0}.result .scorebig{font:800 64px/1 var(--font-mono);letter-spacing:-.03em;font-variant-numeric:tabular-nums}.result.pass .scorebig{color:var(--good)}.result.fail .scorebig{color:var(--bad)}.result .verdict{margin:6px 0 4px;font-size:20px;font-weight:700}.result .sub{color:var(--muted);max-width:46ch;margin:0 auto 22px}.result .actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.review{text-align:left;gap:12px;margin-top:30px;display:grid}.review .item{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:14px 16px}.review .item .qq{margin-bottom:8px;font-weight:650}.review .item .line{margin:3px 0;font-size:14px}.review .item .ok{color:var(--good)}.review .item .no{color:var(--bad)}.cert-page{background:var(--paper)}.cert-wrap{max-width:940px;margin:40px auto;padding:0 20px}.cert{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);border-radius:6px;padding:56px clamp(28px,6vw,72px) 48px;position:relative;overflow:hidden}.cert:before{content:"";border:2px solid var(--accent);opacity:.5;pointer-events:none;border-radius:4px;position:absolute;inset:14px}.cert:after{content:"";border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);pointer-events:none;border-radius:3px;position:absolute;inset:20px}.cert .inner{text-align:center;position:relative}.cert .kicker{font:700 13px/1 var(--font-mono);letter-spacing:.28em;text-transform:uppercase;color:var(--accent-ink)}.cert .cert-title{letter-spacing:-.02em;text-wrap:balance;margin:16px 0 4px;font-size:clamp(26px,5vw,40px);font-weight:800}.cert .awarded{color:var(--muted);margin:22px 0 6px;font-size:15px}.cert .name{letter-spacing:-.01em;color:var(--ink);border-bottom:2px solid var(--accent);margin:4px 0 20px;padding:0 24px 8px;font-size:clamp(30px,6vw,48px);font-weight:800;display:inline-block}.cert .blurb{max-width:54ch;color:var(--muted);margin:0 auto;font-size:15px}.cert .seal{text-align:center;background:radial-gradient(circle at 35% 30%, #f4c579, var(--accent) 70%);color:#4a2c07;width:108px;height:108px;font:800 12px/1.1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border:3px solid #fff3;border-radius:50%;place-items:center;margin:30px auto 8px;display:grid;box-shadow:0 6px 18px #c8791a66}.cert .meta{font:500 13px/1.4 var(--font-mono);color:var(--muted);flex-wrap:wrap;justify-content:center;gap:40px;margin-top:28px;display:flex}.cert .meta .lab{text-transform:uppercase;letter-spacing:.1em;color:var(--faint);margin-bottom:4px;font-size:10.5px;display:block}.cert .meta b{color:var(--ink);font-size:15px}.cert-actions{justify-content:center;gap:12px;margin:26px 0 60px;display:flex}.locked-note{text-align:center;color:var(--muted);padding:60px 20px}.locked-note .lock{font-size:40px}.center{text-align:center}.muted{color:var(--muted)}.hidden{display:none!important}.divider{background:var(--border);border:none;height:1px;margin:34px 0}.authbar{align-items:center;gap:12px;display:flex}.authbar .who{font:600 12.5px/1 var(--font-mono);color:var(--ink);border:1px solid var(--border);background:var(--surface-2);border-radius:999px;padding:5px 10px;text-decoration:none}.authbar .who:hover{border-color:var(--accent);text-decoration:none}.authbar .linkbtn{color:var(--muted);font:500 12.5px/1 var(--font-ui);cursor:pointer;background:0 0;border:none;padding:4px 6px}.authbar .linkbtn:hover{color:var(--ink)}.login{margin:24px 0 6px}.login-card{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);max-width:460px;padding:22px clamp(18px,4vw,26px)}.login-card h3{margin:0 0 6px;font-size:19px}.login-card p{color:var(--muted);max-width:none;margin:0 0 16px;font-size:13.5px}.login-card label{font:600 12.5px/1.2 var(--font-ui);color:var(--muted);margin-bottom:12px;display:block}.login-card input{width:100%;font:500 15px/1 var(--font-ui);color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:9px;margin-top:6px;padding:11px 13px;display:block}.login-card input:focus{border-color:var(--accent);outline:none}.login-actions{flex-wrap:wrap;gap:10px;margin-top:6px;display:flex}.login-err{color:var(--bad);min-height:1em;margin-top:10px;font-size:13px}.hero{align-items:center;gap:28px;display:flex}.hero-text{flex:1;min-width:0}.hero-art{flex:none;width:300px;max-width:40%;height:auto}@media (width<=720px){.hero{flex-direction:column}.hero-art{width:auto;max-width:80%}.titlebar{gap:8px;padding:9px 12px}.crumbs-row,.titlebar .head-split{display:none}}.card{overflow:hidden}.card-art{opacity:.26;pointer-events:none;z-index:0;width:52px;height:52px;position:absolute;top:60px;bottom:auto;right:14px}.card:hover .card-art{opacity:.5;transition:opacity .2s}.card .top,.card h3,.card p,.card .foot{z-index:1;position:relative}.card .foot .chip{z-index:2;position:relative}.prof-head{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.prof-art{flex:none;width:120px;height:120px}.prof-list{border:1px solid var(--border);border-radius:var(--radius);margin-top:26px;overflow:hidden}.prof-row{border-bottom:1px solid var(--border);grid-template-columns:84px 1fr auto auto;align-items:center;gap:14px;padding:13px 16px;font-size:14px;display:grid}.prof-row:last-child{border-bottom:none}.prof-row .prow-title{font-weight:600}.prof-row .prow-cell{color:var(--muted);white-space:nowrap;font-size:13px}@media (width<=640px){.prof-row{grid-template-columns:1fr auto}.prof-row .blk{display:none}}.lesson-body{max-width:760px}.lesson-body h1{margin:0 0 18px}.lesson-body h4{color:var(--muted);margin:1.3em 0 .3em;font-size:15px}.seal-img{width:116px;height:116px;margin:26px auto 6px;display:block}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}@media (width<=720px){.app{margin:14px auto 40px;padding:0 12px}.win-body{padding:26px 18px 34px}.gate{grid-template-columns:1fr}.result .scorebig{font-size:52px}}@page{size:portrait;margin:16mm 14mm}@page cert{size:landscape;margin:12mm}@media print{:root{--paper:#fff;--surface:#fff;--surface-2:#fff;--ink:#1b1d22;--muted:#555;--border:#ccc}body{background:#fff}.titlebar,.skip-link,.theme-toggle,.cert-actions,.app>.backlink{display:none!important}.cert-wrap{page:cert;max-width:none;margin:0}.cert{box-shadow:none;border:none}.print-sheet{display:block!important}.print-checklist{padding:0;list-style:none}.print-checklist li{margin:6px 0;padding-left:26px;position:relative}.print-checklist li:before{content:"";border:1px solid #555;border-radius:3px;width:13px;height:13px;position:absolute;top:2px;left:0}.print-notes-step{margin-top:10px}.print-note{break-inside:avoid;margin:8px 0}.print-note-quote{color:#444;border-left:2px solid #bbb;margin:0 0 4px;padding:0 0 0 12px;font-size:.9em;font-style:italic}.print-note-body{padding-left:14px}.print-note-body p{margin:0 0 4px}.print-sheet+article,.reader-nav,.rail,.speech,.reading-progress,.scroll-top,.step-nav,.gutter-button,.hero,.block-start,.ask-back{display:none!important}.split{max-width:none!important;display:block!important}.tile,.card{box-shadow:none;border:none;padding:0}.reading a[href^=http]:after{content:" (" attr(href) ")";color:#555;word-break:break-all;font-size:.85em}.reading pre,.print-part pre{white-space:pre-wrap;word-break:break-word}.tablewrap{overflow:visible;-webkit-mask-image:none!important;mask-image:none!important}.screen table{min-width:0}.reading h2,.reading h3,.print-part h2,.print-part h3{break-after:avoid}.reading pre,.reading table,.reading figure,.print-part pre,.print-part table,.print-part figure{break-inside:avoid}.reading .callout,.print-part .callout{break-inside:avoid;background:0 0;border:none;border-left:3px solid #555;border-radius:0;margin:12px 0;padding:4px 0 4px 14px}.print-part .lesson-variant[class*=variant-agent-]{break-inside:avoid;border-left:3px dashed #888;margin:12px 0;padding:4px 0 4px 14px}.print-part .variant-agent-claude:before,.print-part .variant-agent-codex:before{color:#555;letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-size:.8em;font-weight:600;display:block}.print-part .variant-agent-claude:before{content:"Claude Code"}.print-part .variant-agent-codex:before{content:"Codex"}.reading .lesson-grid,.print-part .lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:12px 0}}.admin-table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px}.admin-table th{font:700 11px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.admin-table tbody tr:hover td{background:var(--surface-2)}.admin-table td.mono,.admin-table .mono{font-family:var(--font-mono), monospace}.admin-table td.cell{text-align:center;color:var(--muted)}.admin-table td.cell.has{color:var(--ink);cursor:pointer;border-radius:6px}.admin-table td.cell.has:hover{background:var(--bad-soft);color:var(--bad);text-decoration:underline}.admin-table td.cell.has:hover:after{content:" ↺"}.adm-badge{font:700 10px/1.6 var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--accent-ink);background:var(--accent-soft);border-radius:999px;margin-left:8px;padding:1px 7px;display:inline-block}.btn.sm{padding:5px 10px;font-size:12.5px}.app.is-landing{max-width:none;margin:0;padding:0}.app.is-landing .window{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;border-radius:0;overflow:visible}.app.is-landing .titlebar{display:none}.app.is-landing .win-body{padding:0}@property --v{syntax:"<number>";inherits:true;initial-value:.5}@property --p{syntax:"<number>";inherits:true;initial-value:0}.page{grid-template-columns:minmax(0,1fr);gap:26px;display:grid}.page-head{flex-wrap:wrap;align-items:flex-end;gap:16px 24px;min-width:0;display:flex}.page-head .grow{flex:320px}.page-title{font-family:var(--font-display);letter-spacing:-.02em;margin:6px 0 4px;font-size:clamp(24px,3.4vw,36px);font-weight:800}.reader{max-width:var(--readw)}.reader-wide{max-width:none}.split{grid-template-columns:minmax(0,1fr);align-items:start;gap:clamp(18px,2.4vw,34px);display:grid}@media (width>=1100px){.split{grid-template-columns:minmax(0,1fr) clamp(300px,26vw,380px)}.split.left-rail{grid-template-columns:clamp(260px,22vw,340px) minmax(0,1fr)}.quiet .split{grid-template-columns:minmax(0,1fr)}}.rail{gap:16px;min-width:0;display:grid;position:sticky;top:82px}.rail>*{min-width:0}.stack{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.stack-sm{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row-tight{align-items:center;gap:8px;display:flex}.page-head .row-tight{flex-wrap:wrap;min-width:0}.spacer{flex:1}.right{margin-left:auto}.wrap-scroll{overflow-x:auto}.nav{font:600 13.5px/1 var(--font-ui);flex-wrap:wrap;align-items:center;gap:8px;display:flex}.nav a{color:var(--muted);border:1px solid #0000;border-radius:9px;padding:7px 12px;text-decoration:none}.nav a:hover{color:var(--ink);background:var(--surface-2);text-decoration:none}.nav a.router-link-active{color:var(--ink);background:var(--surface-2);border-color:var(--border)}.avatar{color:#fff;width:30px;height:30px;font:700 12px/1 var(--font-ui);letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar.lg{width:44px;height:44px;font-size:16px}.avatar.sm{width:24px;height:24px;font-size:10px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);gap:10px;padding:18px 20px;display:grid}.tile.pad-lg{padding:24px 26px}.tile-head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.tile-title{font-family:var(--font-display);font-size:16px;font-weight:700}.tile-hint{color:var(--muted);font-size:13.5px}.tiles{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:16px;display:grid}.badge{font:600 11.5px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:var(--surface-2);color:var(--muted);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.badge.ok{background:var(--good-soft);color:var(--good);border-color:#0000}.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:#0000}.badge.accent{background:var(--accent-soft);color:var(--accent-ink);border-color:#0000}.bar{background:var(--surface-2);border-radius:999px;height:8px;overflow:hidden}.bar>i{background:var(--accent);border-radius:999px;height:100%;transition:width .35s;display:block}.bar.slim{height:5px}.board{gap:2px;display:grid}.board-row{border-radius:10px;grid-template-columns:34px 30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;display:grid}.board-row:nth-child(odd){background:color-mix(in srgb, var(--surface-2) 55%, transparent)}.board-row.me{background:var(--accent-soft)}.board-rank{font:800 15px/1 var(--font-mono);color:var(--muted);text-align:center}.board-row.top1 .board-rank,.board-row.top2 .board-rank,.board-row.top3 .board-rank{color:var(--accent-ink)}.board-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.board-score{font:700 14px/1 var(--font-mono);font-variant-numeric:tabular-nums}.field{gap:6px;display:grid}.field>label{font:600 13px/1 var(--font-ui);color:var(--muted)}.field .hint{color:var(--faint);font-size:12.5px}.input,.textarea,.select{width:100%;font:400 15px/1.45 var(--font-ui);color:var(--ink);background:var(--surface);border:1px solid var(--control-line);border-radius:var(--radius-sm);padding:10px 12px}.textarea{resize:vertical;min-height:96px}:root{--control-h:38px}.toolbar-control{height:var(--control-h);padding-top:0;padding-bottom:0;font-size:14px}select.toolbar-control{padding-right:30px}.input.mono,.textarea.mono{font-family:var(--font-mono);font-size:13.5px}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);outline:none}.check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.form-error{background:var(--bad-soft);color:var(--bad);border-radius:var(--radius-sm);padding:10px 12px;font-size:14px}.form-ok{background:var(--good-soft);color:var(--good);border-radius:var(--radius-sm);padding:10px 12px;font-size:14px}.modal-backdrop{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10111665;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:min(680px,100%);max-height:min(86vh,900px);box-shadow:var(--shadow-lg);overflow:auto}.modal.wide{width:min(1080px,100%)}.modal-head{border-bottom:1px solid var(--border);background:var(--surface);z-index:2;align-items:center;gap:12px;padding:16px 20px;display:flex;position:sticky;top:0}.modal-title{font-size:16px;font-weight:700}.modal-body{gap:14px;padding:20px;display:grid}.modal-foot{border-top:1px solid var(--border);background:var(--surface);justify-content:flex-end;gap:10px;padding:14px 20px;display:flex;position:sticky;bottom:0}.icon-btn{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 8px;font-size:15px;line-height:1}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.toasts{z-index:120;gap:8px;max-width:min(420px,92vw);display:grid;position:fixed;bottom:18px;right:18px}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);padding:11px 14px;font-size:14px}.toast.ok{border-left-color:var(--good)}.toast.error{border-left-color:var(--bad)}.toast.info{border-left-color:var(--accent)}.hl{color:inherit;background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 0 -2px 0 var(--accent);cursor:pointer;border-radius:3px;padding:0 1px;transition:background .12s}.hl:hover{background:color-mix(in srgb, var(--accent) 30%, transparent)}.hl.stale{box-shadow:inset 0 -2px 0 var(--faint)}.hl-note{color:inherit;cursor:pointer;background:#b08a2e2e;border-radius:3px;padding:0 1px;transition:background .12s;box-shadow:inset 0 -2px #b08a2e8c}.hl-note:hover{background:#b08a2e52}.hl-note.stale{box-shadow:inset 0 -2px 0 var(--faint)}.hl-mentor{color:inherit;background:color-mix(in srgb, var(--accent) 20%, transparent);box-shadow:inset 0 -2px 0 var(--accent);cursor:pointer;border-radius:3px;padding:0 1px;transition:background .12s}.hl-mentor:hover{background:color-mix(in srgb, var(--accent) 34%, transparent)}.hl-mentor.stale{box-shadow:inset 0 -2px 0 var(--faint)}.hl-owner{color:inherit;cursor:pointer;background:#c0564029;border-radius:3px;padding:0 1px;transition:background .12s;box-shadow:inset 0 -2px #c056408c}.hl-owner:hover{background:#c056404d}.hl-owner.stale{box-shadow:inset 0 -2px 0 var(--faint)}.select-bubble{z-index:60;background:var(--ink);color:var(--paper);font:600 13px/1 var(--font-ui);box-shadow:var(--shadow-md);white-space:nowrap;border-radius:999px;gap:2px;padding:4px 6px;display:flex;position:absolute;transform:translate(-50%,-100%)}.select-bubble button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:6px;padding:4px 9px;display:inline-flex}.select-bubble button:hover{background:color-mix(in srgb, var(--paper) 18%, transparent)}.select-bubble:after{content:"";border:5px solid #0000;border-top-color:var(--ink);border-bottom:0;position:absolute;bottom:-5px;left:50%;translate:-50%}.comment{border-top:1px solid var(--border);gap:8px;padding:14px 0;display:grid}.comment:first-child{border-top:none}.comment-head{color:var(--muted);align-items:center;gap:9px;font-size:13px;display:flex}.comment-author{color:var(--ink);font-weight:700}.comment-body{font-size:15px}.comment-body p{margin:0 0 .5em}.comment-body :last-child{margin-bottom:0}.comment-quote{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface));color:var(--ink);border-radius:0 8px 8px 0;padding:9px 13px;font-size:14px}.comment-actions{gap:6px;font-size:12.5px;display:flex}.comment-actions button{color:var(--muted);cursor:pointer;font:600 12.5px/1 var(--font-ui);background:0 0;border:none;border-radius:6px;padding:3px 6px}.comment-actions button:hover{background:var(--surface-2);color:var(--ink)}.comment-actions button.liked{color:var(--accent-ink)}.comment-replies{border-left:2px solid var(--border);margin-left:22px;padding-left:14px;display:grid}.steps-nav{flex-wrap:wrap;gap:6px;display:flex}.step-dot{cursor:pointer;border:1px solid var(--border);background:var(--surface);width:30px;height:30px;font:600 12px/1 var(--font-mono);color:var(--muted);border-radius:9px}.step-dot.done{background:var(--good-soft);color:var(--good);border-color:#0000}.step-dot.current{border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 2px var(--accent-soft)}.step-body{font-size:16.5px;line-height:1.72}.quiet .step-body{font-size:18px;line-height:1.85}.step-body h3{font-size:19px}.step-body table{border-collapse:collapse;width:100%;margin:1em 0;font-size:14.5px}.step-body th,.step-body td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 11px}.step-body th{background:var(--surface-2);font-weight:700}.step-body pre{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;font-size:13.5px;overflow-x:auto}.step-body pre.fade-right{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 30px),#0000 100%)}.step-body pre.fade-left{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 30px),#0000 100%);mask-image:linear-gradient(270deg,#000 calc(100% - 30px),#0000 100%)}.step-body pre.fade-left.fade-right{-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 30px calc(100% - 30px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 30px calc(100% - 30px),#0000 100%)}.step-body :where(img,video){border-radius:var(--radius-sm);border:1px solid var(--border)}.step-body .task-list{gap:8px;margin:14px 0;padding:0;list-style:none;display:grid}.step-body .task-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px;padding:10px 12px;font-size:15px;line-height:1.45;display:grid}.step-body .task-item input{opacity:0;pointer-events:none;position:absolute}.step-body .task-item input:focus-visible+.check-mark{outline:2px solid var(--accent);outline-offset:2px}.step-body .task-item .check-mark{border:1px solid var(--border-strong);color:#0000;border-radius:6px;place-items:center;width:22px;height:22px;display:grid}.step-body .task-item.on{border-color:var(--good);background:var(--good-soft)}.step-body .task-item.on .check-mark{background:var(--good);color:#fff;border-color:#0000}.step-body .task-item.on .check-text{color:var(--muted)}.step-body table.task-table td{min-width:90px}.step-body .task-table input[data-cell-key]{border:1px dashed var(--border-strong);background:var(--surface);width:100%;min-width:80px;font:inherit;color:var(--ink);border-radius:6px;padding:6px 8px}.step-body .task-table input[data-cell-key]:focus{border:1px solid var(--accent);background:var(--surface-2);outline:none}.step-body .task-table td.filled input[data-cell-key]{border-style:solid;border-color:var(--good)}.step-body .task-table input[data-cell-key]:disabled{color:var(--ink);opacity:1;border-color:var(--border)}.step-body .callout{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);border-left-width:3px;margin:1.25em 0;padding:12px 16px 13px}.step-body .callout>:first-child{margin-top:0}.step-body .callout>:last-child{margin-bottom:0}.step-body .callout:before{color:var(--muted);font:600 11.5px/1.2 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;display:block}.step-body .callout-important{border-left-color:var(--accent-strong)}.step-body .callout-important:before{content:"Важно";color:var(--accent-ink)}.step-body .callout-example{border-left-color:var(--good)}.step-body .callout-example:before{content:"Пример";color:var(--good)}.step-body .callout-note{border-left-color:var(--border-strong)}.step-body .callout-note:before{content:"Заметка"}.step-body .lesson-variant{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);margin:1.25em 0;padding:12px 16px 13px;position:relative}.step-body .lesson-variant:before{content:attr(data-variant-label);color:var(--muted);font:600 11.5px/1.2 var(--font-ui);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;display:block}.step-body .lesson-variant>:last-child{margin-bottom:0}.step-body .lesson-variant.is-mine{border-style:solid;border-color:var(--accent);background:var(--surface-2)}.step-body .lesson-variant.is-mine:before{content:"Для вас · " attr(data-variant-label);color:var(--accent-ink)}.step-body .lesson-variant.is-other:not(.is-open){padding-bottom:12px}.step-body .lesson-variant.is-other:not(.is-open)>:not(.variant-toggle){display:none}.step-body .lesson-variant.is-other:before{margin-bottom:0}.step-body .variant-toggle{color:var(--accent-ink);font:500 13px/1.2 var(--font-ui);cursor:pointer;background:0 0;border:0;position:absolute;top:10px;right:12px}.step-body .variant-toggle:before{content:"показать"}.step-body .lesson-variant.is-open .variant-toggle:before{content:"скрыть"}.step-body .lesson-variant.is-open:before{margin-bottom:6px}.step-body .lesson-variant[class*=variant-level-]{border-style:solid;border-color:var(--border-strong)}.step-body .lesson-variant[class*=variant-level-]:after{content:attr(data-variant-hint);color:var(--muted);font:400 13px/1.45 var(--font-ui);margin-top:5px;display:block}.step-body .lesson-variant.variant-level-pro{border-color:var(--accent);background:var(--surface-2)}.step-body .lesson-variant.variant-level-pro:before{content:"Глубже · " attr(data-variant-label);color:var(--accent-ink)}.step-body .lesson-variant.variant-level-advanced:before{content:"Шаг дальше · " attr(data-variant-label)}.step-body .lesson-variant.variant-level-basic:before{content:"Для новичка · " attr(data-variant-label)}.step-body .lesson-variant[class*=variant-level-].is-mine:before{content:"Для вас · " attr(data-variant-label)}.step-body .lesson-variant.variant-agent-claude:before{content:"Claude Code"}.step-body .lesson-variant.variant-agent-codex:before{content:"Codex"}.step-body .variant-tabgroup{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);margin:1.25em 0;overflow:hidden}.step-body .variant-tabbar{border-bottom:1px solid var(--border);background:var(--surface-2);gap:2px;padding:6px 6px 0;display:flex}.step-body .variant-tab{color:var(--muted);font:600 12.5px/1.2 var(--font-ui);letter-spacing:.02em;cursor:pointer;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:0 0;border:0;padding:7px 12px 8px}.step-body .variant-tab:before{content:attr(data-tab-label)}.step-body .variant-tab:hover{color:var(--ink)}.step-body .variant-tab.has-notes:after{content:"";vertical-align:middle;background:#c05640;border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.step-body .variant-tab.active{color:var(--accent-ink);background:var(--surface);box-shadow:inset 0 -2px 0 var(--accent)}.step-body .variant-tabgroup .variant-panel{background:0 0;border:0;border-radius:0;margin:0;padding:12px 16px 13px}.step-body .variant-tabgroup .variant-panel:not(.is-active),.step-body .variant-tabgroup .variant-panel:before{display:none}@media print{.step-body .variant-tabbar{display:none}.step-body .variant-tabgroup .variant-panel:not(.is-active),.step-body .variant-tabgroup .variant-panel:before{display:block}.step-body .lesson-variant>:not(.variant-toggle){display:block!important}.step-body .variant-toggle{display:none}}.step-body .lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:18px;margin:1.25em 0;display:grid}.step-body .lesson-grid>.lesson-grid-cell>:first-child{margin-top:0}.step-body .lesson-grid>.lesson-grid-cell>:last-child{margin-bottom:0}.step-body .lesson-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}@media (width<=720px){.step-body .lesson-grid,.step-body .lesson-grid-3{grid-template-columns:1fr;gap:10px}}.step-body .callout-info{border-left-color:var(--accent)}.step-body .callout-info:before{content:"Подсказка";color:var(--accent-ink)}.step-body .callout-success{border-left-color:var(--good);background:var(--good-soft)}.step-body .callout-success:before{content:"Получилось";color:var(--good)}.step-body .callout-warning{border-left-color:var(--accent-strong);background:var(--accent-soft)}.step-body .callout-warning:before{content:"Осторожно";color:var(--accent-ink)}.step-body .callout-danger{border-left-color:var(--bad);background:var(--bad-soft)}.step-body .callout-danger:before{content:"Ошибка";color:var(--bad)}.step-body .lesson-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);margin:1.25em 0;padding:14px 18px}.step-body .lesson-card>:first-child,.step-body details>:nth-child(2){margin-top:0}.step-body .lesson-card>:last-child,.step-body details>:last-child{margin-bottom:0}.step-body details{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);margin:1em 0;padding:10px 16px}.step-body summary{cursor:pointer;font-weight:600}.step-body details[open]>summary{margin-bottom:8px}.step-body li>p,.step-body td>p,.step-body th>p{margin:0}.step-body li>p+p,.step-body td>p+p,.step-body th>p+p{margin-top:.4em}.step-media{gap:8px;display:grid}.step-media video,.step-media img{border-radius:var(--radius);border:1px solid var(--border);width:100%}.step-caption{color:var(--muted);font-size:13.5px}.order-list{counter-reset:ord;gap:8px;display:grid}.order-item{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.order-item[draggable=true]{cursor:grab}.order-item.dragging{opacity:.5}.order-index{font:700 13px/1 var(--font-mono);color:var(--muted);text-align:center}.order-move{gap:2px;display:grid}.order-move button{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);cursor:pointer;border-radius:6px;padding:1px 7px;font-size:11px;line-height:1.2}.order-item.correct{border-color:var(--good);background:var(--good-soft)}.order-item.wrong{border-color:var(--bad);background:var(--bad-soft)}.opt-explain{color:var(--muted);margin-top:4px;font-size:13px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;display:flex}.tabs button{cursor:pointer;color:var(--muted);font:600 14px/1 var(--font-ui);background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 14px}.tabs button.active{color:var(--ink);border-bottom-color:var(--accent)}.data-table{border-collapse:collapse;width:100%;font-size:14px}.data-table th,.data-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:10px 12px}.data-table th{color:var(--muted);font:600 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em}.data-table tr:hover td{background:color-mix(in srgb, var(--surface-2) 45%, transparent)}.tree-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font:inherit;text-align:left;align-items:center;gap:10px;padding:9px 12px;display:flex}.tree-item.muted-row{opacity:.55}.drag-handle{cursor:grab;color:var(--faint);-webkit-user-select:none;user-select:none}.editor-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}@media (width>=1200px){.editor-grid.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.empty{border:1px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--muted);padding:30px 22px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.note-card{text-align:left;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--ink);font:inherit;gap:7px;padding:12px 14px;display:grid}.note-card:hover{border-color:var(--accent)}.note-card.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.note-quote{color:var(--muted);-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.note-text{color:var(--ink);font-size:14px}.note-author{color:var(--faint);font-size:12.5px}.btn-go{background:var(--accent-strong);color:var(--accent-contrast);box-shadow:var(--shadow-sm);border-color:#0000}.btn-go:hover{background:color-mix(in srgb, var(--accent-strong) 86%, #000);text-decoration:none}[data-hint]{position:relative}[data-hint]:after{content:attr(data-hint);z-index:60;background:var(--ink);width:max-content;max-width:260px;color:var(--paper);text-align:center;white-space:normal;pointer-events:none;box-shadow:var(--shadow-md);border-radius:7px;padding:6px 9px;font-size:12.5px;font-weight:500;line-height:1.35;display:none;position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}[data-hint]:hover:after,[data-hint]:focus-visible:after{display:block}[data-hint][data-hint-below]:after{top:calc(100% + 7px);bottom:auto}[data-hint][data-hint-side=right]:after{left:auto;right:0;transform:none}.reading-now{background:var(--accent-soft);box-shadow:0 0 0 6px var(--accent-soft);border-radius:6px;transition:background .2s}@media (width<=720px){.nav{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;min-width:0;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000 100%);mask-image:linear-gradient(90deg,#000 calc(100% - 22px),#0000 100%)}.nav::-webkit-scrollbar{display:none}.nav a{white-space:nowrap}}.discussion-list{max-height:320px;overflow-y:auto}.discussion-msg{border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}
