:root{--font-body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Bricolage Grotesque", "Atkinson Hyperlegible", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Menlo, Consolas, monospace;--bg: #f6f8fb;--bg-tint: #eef3fb;--surface: #ffffff;--surface-2: #f1f4f9;--surface-3: #e6ebf3;--ink: #0f1b2d;--ink-2: #3c4a60;--muted: #56637a;--line: #d8e0ea;--line-strong: #b9c5d6;--brand: #2f55d4;--brand-ink: #ffffff;--brand-soft: #e3eaff;--brand-strong: #1f3fa8;--accent: #e8590c;--accent-soft: #fff0e6;--ok: #0d8a5f;--ok-soft: #e1f6ec;--warn: #a15c00;--warn-soft: #fff4dc;--bad: #c92a2a;--bad-soft: #ffe8e8;--info: #1971c2;--info-soft: #e5f1fc;--ap: #7b2cbf;--ap-soft: #f2e8fb;--cat-alkali-metal: #ffd6c9;--cat-alkaline-earth-metal: #ffe8b8;--cat-transition-metal: #d6e4ff;--cat-post-transition-metal: #d2efe6;--cat-metalloid: #e7f0c3;--cat-reactive-nonmetal: #c9f0d6;--cat-halogen: #c8ecf5;--cat-noble-gas: #e6dcfb;--cat-lanthanide: #fbd9ec;--cat-actinide: #f6d3dd;--cat-unknown: #e4e7ec;--radius-sm: 8px;--radius: 12px;--radius-lg: 18px;--shadow-1: 0 1px 2px rgba(15, 27, 45, .06), 0 1px 1px rgba(15, 27, 45, .04);--shadow-2: 0 6px 20px rgba(15, 27, 45, .08), 0 2px 6px rgba(15, 27, 45, .05);--shadow-3: 0 18px 50px rgba(15, 27, 45, .16);--focus: 0 0 0 3px color-mix(in srgb, var(--brand) 45%, transparent);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--sidebar-w: 248px;--topbar-h: 60px;--content-max: 1120px;--reading-max: 720px;--ease: cubic-bezier(.2, .7, .2, 1);--dur: .18s;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d1424;--bg-tint: #101a30;--surface: #141d31;--surface-2: #1a2540;--surface-3: #22304f;--ink: #e9eefa;--ink-2: #c0cbe0;--muted: #8e9bb5;--line: #27344f;--line-strong: #3a4a6b;--brand: #7f9cff;--brand-ink: #0b1226;--brand-soft: #1e2b52;--brand-strong: #a9bcff;--accent: #ff8f57;--accent-soft: #3a2316;--ok: #3ccf91;--ok-soft: #12352a;--warn: #f2b84b;--warn-soft: #3a2c10;--bad: #ff7b7b;--bad-soft: #3d1a1d;--info: #6cb3ff;--info-soft: #132b45;--ap: #c39bff;--ap-soft: #2b1d45;--cat-alkali-metal: #6b3426;--cat-alkaline-earth-metal: #5f4a1a;--cat-transition-metal: #263f70;--cat-post-transition-metal: #1f4d40;--cat-metalloid: #48541e;--cat-reactive-nonmetal: #1e5233;--cat-halogen: #1c4c5c;--cat-noble-gas: #43316f;--cat-lanthanide: #642a4c;--cat-actinide: #5c2735;--cat-unknown: #333a48;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 8px 24px rgba(0, 0, 0, .35);--shadow-3: 0 18px 50px rgba(0, 0, 0, .55);color-scheme:dark}}:root[data-theme=dark]{--bg: #0d1424;--bg-tint: #101a30;--surface: #141d31;--surface-2: #1a2540;--surface-3: #22304f;--ink: #e9eefa;--ink-2: #c0cbe0;--muted: #8e9bb5;--line: #27344f;--line-strong: #3a4a6b;--brand: #7f9cff;--brand-ink: #0b1226;--brand-soft: #1e2b52;--brand-strong: #a9bcff;--accent: #ff8f57;--accent-soft: #3a2316;--ok: #3ccf91;--ok-soft: #12352a;--warn: #f2b84b;--warn-soft: #3a2c10;--bad: #ff7b7b;--bad-soft: #3d1a1d;--info: #6cb3ff;--info-soft: #132b45;--ap: #c39bff;--ap-soft: #2b1d45;--cat-alkali-metal: #6b3426;--cat-alkaline-earth-metal: #5f4a1a;--cat-transition-metal: #263f70;--cat-post-transition-metal: #1f4d40;--cat-metalloid: #48541e;--cat-reactive-nonmetal: #1e5233;--cat-halogen: #1c4c5c;--cat-noble-gas: #43316f;--cat-lanthanide: #642a4c;--cat-actinide: #5c2735;--cat-unknown: #333a48;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 8px 24px rgba(0, 0, 0, .35);--shadow-3: 0 18px 50px rgba(0, 0, 0, .55);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-h) + 16px)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{max-width:100%}h1,h2,h3,h4{font-family:var(--font-display);line-height:1.2;letter-spacing:-.01em;margin:0 0 .5em;color:var(--ink)}h1{font-size:clamp(1.8rem,3vw + 1rem,2.6rem);font-weight:800}h2{font-size:clamp(1.35rem,1.2vw + 1rem,1.7rem);font-weight:700}h3{font-size:1.18rem;font-weight:700}h4{font-size:1rem;font-weight:700}p{margin:0 0 1em}a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--brand-strong)}code,kbd,.mono{font-family:var(--font-mono);font-size:.92em}kbd{border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:6px;padding:0 6px;background:var(--surface);font-size:.8em}hr{border:0;border-top:1px solid var(--line);margin:var(--space-5) 0}::selection{background:color-mix(in srgb,var(--brand) 30%,transparent)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:var(--brand);color:var(--brand-ink);padding:10px 14px;border-radius:var(--radius-sm);font-weight:700}.skip-link:focus{top:12px}.shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-w) 1fr;grid-template-rows:var(--topbar-h) 1fr;grid-template-areas:"side top" "side main"}.topbar{grid-area:top;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-5);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}.sidebar{grid-area:side;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);padding:var(--space-4) var(--space-3) var(--space-6);display:flex;flex-direction:column;gap:var(--space-1)}.main{grid-area:main;min-width:0;padding:var(--space-6) var(--space-5) var(--space-8)}.page{max-width:var(--content-max);margin:0 auto}.page.narrow{max-width:var(--reading-max)}.brand{display:flex;align-items:center;gap:10px;padding:6px 10px 18px;text-decoration:none;color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:1.4rem;letter-spacing:-.03em;white-space:nowrap}.nav-section{margin:14px 10px 6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);color:var(--ink-2);text-decoration:none;font-weight:600;font-size:.95rem}.nav-link svg{width:19px;height:19px;flex:none;opacity:.85}.nav-link:hover{background:var(--surface-2);color:var(--ink)}.nav-link[aria-current=page]{background:var(--brand-soft);color:var(--brand-strong)}.nav-link .pill{margin-left:auto}.menu-btn{display:none}.topbar .search-trigger{flex:1;max-width:520px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:inherit;font-size:.95rem;cursor:pointer;text-align:left}.topbar .search-trigger:hover{border-color:var(--line-strong)}.topbar .search-trigger kbd{margin-left:auto}.topbar-actions{margin-left:auto;display:flex;gap:var(--space-2);align-items:center}.scrim{display:none}@media(max-width:960px){.shell{grid-template-columns:1fr;grid-template-areas:"top" "main"}.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(300px,86vw);z-index:60;transform:translate(-102%);transition:transform var(--dur) var(--ease);box-shadow:var(--shadow-3)}.sidebar[data-open=true]{transform:none}.scrim[data-open=true]{display:block;position:fixed;inset:0;z-index:55;background:#050a1473}.menu-btn{display:inline-flex}.topbar{padding:0 var(--space-4)}.main{padding:var(--space-5) var(--space-4) var(--space-8)}.topbar .search-trigger kbd{display:none}}.btn{--btn-bg: var(--surface);--btn-fg: var(--ink);--btn-bd: var(--line-strong);display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:8px 16px;border-radius:10px;border:1px solid var(--btn-bd);background:var(--btn-bg);color:var(--btn-fg);font:inherit;font-weight:700;font-size:.95rem;line-height:1.2;cursor:pointer;text-decoration:none;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease);white-space:nowrap}.btn:hover{border-color:var(--ink-2);color:var(--btn-fg)}.btn:active{transform:translateY(1px)}.btn[disabled],.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.btn svg{width:18px;height:18px}.btn.primary{--btn-bg: var(--brand);--btn-fg: var(--brand-ink);--btn-bd: var(--brand)}.btn.primary:hover{--btn-bg: var(--brand-strong);--btn-bd: var(--brand-strong)}.btn.accent{--btn-bg: var(--accent);--btn-fg: #fff;--btn-bd: var(--accent)}.btn.ghost{--btn-bg: transparent;--btn-bd: transparent}.btn.ghost:hover{--btn-bg: var(--surface-2)}.btn.danger{--btn-fg: var(--bad)}.btn.sm{min-height:34px;padding:5px 12px;font-size:.88rem}.btn.icon{padding:0;width:42px}.btn.icon.sm{width:34px}.btn-row{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-1)}.card.flat{box-shadow:none}.card.tint{background:var(--surface-2)}.card.link{display:block;color:inherit;text-decoration:none;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.card.link:hover{border-color:var(--brand);box-shadow:var(--shadow-2);transform:translateY(-2px)}.card h3{margin-bottom:.3em}.grid{display:grid;gap:var(--space-4)}.grid.cols-2{grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack.sm{gap:var(--space-2)}.stack.lg{gap:var(--space-6)}.row{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.muted{color:var(--muted)}.small{font-size:.88rem}.tiny{font-size:.78rem}.center{text-align:center}.nowrap{white-space:nowrap}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:.76rem;font-weight:700;background:var(--surface-3);color:var(--ink-2);white-space:nowrap;line-height:1.6}.pill.brand{background:var(--brand-soft);color:var(--brand-strong)}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.ap{background:var(--ap-soft);color:var(--ap)}.pill.accent{background:var(--accent-soft);color:var(--accent)}.eyebrow{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--brand);margin-bottom:6px}.page-head{margin-bottom:var(--space-6)}.page-head p.lead{font-size:1.12rem;color:var(--ink-2);max-width:62ch}.breadcrumbs{display:flex;flex-wrap:wrap;gap:6px;font-size:.86rem;color:var(--muted);margin-bottom:var(--space-3);padding:0;list-style:none}.breadcrumbs li+li:before{content:"\203a";margin-right:6px;color:var(--line-strong)}.breadcrumbs a{color:var(--muted);text-decoration:none}.breadcrumbs a:hover{color:var(--brand);text-decoration:underline}.callout{border-radius:var(--radius);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-5);border:1px solid var(--line);border-left:5px solid var(--info);background:var(--info-soft);margin:var(--space-4) 0}.callout>:last-child{margin-bottom:0}.callout-title{font-weight:800;display:flex;align-items:center;gap:8px;margin-bottom:4px;font-size:.95rem}.callout.realworld{border-left-color:var(--ok);background:var(--ok-soft)}.callout.mistake{border-left-color:var(--bad);background:var(--bad-soft)}.callout.limit{border-left-color:var(--warn);background:var(--warn-soft)}.callout.ap{border-left-color:var(--ap);background:var(--ap-soft)}.callout.key{border-left-color:var(--brand);background:var(--brand-soft)}.callout.safety{border-left-color:var(--accent);background:var(--accent-soft)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>label,.label{font-weight:700;font-size:.9rem;color:var(--ink-2)}.field .hint{font-size:.8rem;color:var(--muted)}.field .err{font-size:.85rem;color:var(--bad);font-weight:600}.input,select.input,textarea.input{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;padding:9px 12px;min-height:44px;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input:focus{outline:none;border-color:var(--brand);box-shadow:var(--focus)}.input[aria-invalid=true]{border-color:var(--bad)}textarea.input{min-height:120px;resize:vertical;line-height:1.5}.input.mono{font-family:var(--font-mono)}.input-group{display:flex;align-items:stretch}.input-group .input{border-top-right-radius:0;border-bottom-right-radius:0;min-width:0}.input-group select.input{width:auto;border-radius:0 10px 10px 0;border-left:0;background:var(--surface-2)}.form-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.check{display:flex;align-items:center;gap:8px;cursor:pointer}.check input{width:18px;height:18px;accent-color:var(--brand)}.seg{display:inline-flex;flex-wrap:wrap;padding:4px;gap:4px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px}.seg button{font:inherit;font-weight:700;font-size:.88rem;border:0;background:transparent;color:var(--ink-2);padding:7px 12px;border-radius:9px;cursor:pointer;min-height:36px}.seg button[aria-pressed=true],.seg button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;margin-bottom:var(--space-5);scrollbar-width:none}.tabs button{font:inherit;font-weight:700;font-size:.95rem;background:none;border:0;border-bottom:3px solid transparent;padding:10px 14px;color:var(--muted);cursor:pointer;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--brand)}.bar{height:8px;background:var(--surface-3);border-radius:99px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--brand);border-radius:inherit;transition:width .4s var(--ease)}.bar.ok>span{background:var(--ok)}.bar.ap>span{background:var(--ap)}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table.data{width:100%;border-collapse:collapse;font-size:.95rem}table.data th,table.data td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}table.data th{background:var(--surface-2);font-weight:700;font-size:.85rem;color:var(--ink-2);white-space:nowrap}table.data tr:last-child td{border-bottom:0}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data input.input{min-height:36px;padding:5px 8px}.steps{counter-reset:step;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-3)}.steps>li{counter-increment:step;position:relative;padding-left:42px}.steps>li:before{content:counter(step);position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;background:var(--brand-soft);color:var(--brand-strong);font-weight:800;font-size:.85rem;display:grid;place-items:center}.math{display:block;font-family:var(--font-mono);font-size:.92rem;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-top:6px;white-space:pre-wrap;overflow-x:auto;color:var(--ink)}.result{border-radius:var(--radius);background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);padding:var(--space-4) var(--space-5)}.result .big{font-family:var(--font-display);font-size:clamp(1.4rem,2vw + 1rem,2rem);font-weight:800;color:var(--brand-strong);line-height:1.2;word-break:break-word}.error-box{border-radius:var(--radius);background:var(--bad-soft);color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 35%,transparent);padding:var(--space-3) var(--space-4);font-weight:600}.feedback{border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin-top:var(--space-3);border:1px solid}.feedback.ok{background:var(--ok-soft);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.feedback.bad{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}.feedback.info{background:var(--info-soft);border-color:color-mix(in srgb,var(--info) 40%,transparent)}.feedback-title{font-weight:800;margin-bottom:4px}.feedback.ok .feedback-title{color:var(--ok)}.feedback.bad .feedback-title{color:var(--bad)}.empty{text-align:center;padding:var(--space-7) var(--space-5);color:var(--muted);border:2px dashed var(--line);border-radius:var(--radius-lg)}.empty h3{color:var(--ink)}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brand);animation:spin .8s linear infinite}.loading{display:grid;place-items:center;gap:12px;padding:var(--space-8) 0;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.dialog-backdrop{position:fixed;inset:0;z-index:80;background:#050a1480;display:grid;place-items:start center;padding:10vh 16px 16px;animation:fade .12s ease}.dialog{width:min(680px,100%);max-height:80vh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-3)}@keyframes fade{0%{opacity:0}}.toasts{position:fixed;right:16px;bottom:16px;z-index:90;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 32px))}.toast{background:var(--ink);color:var(--bg);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow-3);font-weight:600;font-size:.92rem;animation:rise .2s var(--ease)}@keyframes rise{0%{transform:translateY(8px);opacity:0}}.chem{font-variant-numeric:lining-nums;white-space:nowrap}.chem sub,.chem sup{font-size:.7em;line-height:0}.prose{font-size:1.05rem;line-height:1.7}.prose p,.prose ul,.prose ol{max-width:70ch}.prose ul,.prose ol{padding-left:1.3em;margin:0 0 1em}.prose li{margin-bottom:.35em}.prose strong{color:var(--ink)}.term{border-bottom:2px dotted var(--brand);cursor:help;font-weight:700}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}:root[data-motion=reduce] *,:root[data-motion=reduce] *:before,:root[data-motion=reduce] *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}@media print{.sidebar,.topbar,.no-print,.toasts{display:none!important}.shell{display:block}.main{padding:0}body{background:#fff;color:#000;font-size:12pt}.card{box-shadow:none;break-inside:avoid}a{color:#000}}.question{border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-5);background:var(--surface)}.question .question{border-style:dashed;padding:var(--space-4)}.q-number{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:8px;background:var(--ink);color:var(--bg);font-weight:800;font-size:.85rem}.q-prompt{margin:6px 0 14px;font-size:1.05rem}.q-prompt p:last-child{margin-bottom:0}.choice{display:flex;align-items:flex-start;gap:12px;padding:11px 14px;border:1.5px solid var(--line);border-radius:12px;cursor:pointer;background:var(--surface);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.choice:hover{border-color:var(--line-strong)}.choice input{position:absolute;opacity:0;pointer-events:none}.choice:focus-within{box-shadow:var(--focus)}.choice[data-selected]{border-color:var(--brand);background:var(--brand-soft)}.choice[data-right]{border-color:var(--ok);background:var(--ok-soft)}.choice[data-wrong]{border-color:var(--bad);background:var(--bad-soft)}.choice[data-disabled]{cursor:default}.choice-letter{flex:none;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-weight:800;font-size:.85rem;background:var(--surface-3);color:var(--ink-2)}.choice[data-selected] .choice-letter{background:var(--brand);color:var(--brand-ink)}.choice-text{flex:1;min-width:0;padding-top:1px}.choice-why{display:block;margin-top:4px;font-size:.9rem;color:var(--ink-2)}.choice-icon{flex:none;margin-top:2px}.choice-icon.ok{color:var(--ok)}.choice-icon.bad{color:var(--bad)}.match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:10px;align-items:center;padding:8px 10px;border-radius:10px;border:1px solid var(--line)}.match-row[data-ok]{border-color:var(--ok);background:var(--ok-soft)}.match-row[data-bad]{border-color:var(--bad);background:var(--bad-soft)}.match-left{font-weight:700}@media(max-width:560px){.match-row{grid-template-columns:1fr}}.order-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.order-list li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.order-list li[data-ok=true]{border-color:var(--ok);background:var(--ok-soft)}.order-list li[data-ok=false]{border-color:var(--bad);background:var(--bad-soft)}.order-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);font-weight:800;font-size:.8rem;flex:none}.balance-eq{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:1.15rem}.eq-term{display:inline-flex;align-items:center;gap:4px}.eq-op{font-weight:700;color:var(--muted)}.input.coef{width:48px;min-height:40px;padding:4px;text-align:center;font-family:var(--font-mono);font-weight:700}.part{display:flex;gap:12px;align-items:flex-start}.part-label{font-weight:800;min-width:34px;padding-top:2px;color:var(--brand)}.hint-box{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:10px;background:var(--warn-soft);color:var(--ink);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}.hint-box svg{color:var(--warn);flex:none;margin-top:3px}.mistake-card{margin-top:12px;border-radius:var(--radius);padding:var(--space-4);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);background:var(--accent-soft)}.mistake-card svg{color:var(--accent)}.label-marker{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;display:grid;place-items:center;flex:none}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--space-6);align-items:start}.lesson-toc{position:sticky;top:calc(var(--topbar-h) + 20px);font-size:.9rem}.lesson-toc ol{list-style:none;padding:0;margin:0;border-left:2px solid var(--line)}.lesson-toc a{display:block;padding:5px 12px;color:var(--muted);text-decoration:none;margin-left:-2px;border-left:2px solid transparent}.lesson-toc a:hover{color:var(--ink)}.lesson-toc a[data-active]{color:var(--brand-strong);border-left-color:var(--brand);font-weight:700}@media(max-width:1100px){.lesson-layout{grid-template-columns:1fr}.lesson-toc{display:none}}.lesson-section{scroll-margin-top:calc(var(--topbar-h) + 20px);margin-bottom:var(--space-7)}.lesson-section>h2{display:flex;align-items:center;gap:10px}.lesson-section>h2 .sec-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-strong);flex:none}.block{margin-bottom:var(--space-5)}.vocab{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:var(--space-3)}.vocab-item{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;background:var(--surface)}.vocab-item dt{font-weight:800;font-family:var(--font-display)}.vocab-item dd{margin:4px 0 0;color:var(--ink-2);font-size:.95rem}.worked{border:1px solid var(--line);border-left:5px solid var(--brand);border-radius:var(--radius);padding:var(--space-4) var(--space-5);background:var(--surface)}.worked .answer{margin-top:12px;padding:10px 14px;border-radius:10px;background:var(--ok-soft);font-weight:700}.levels{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.levels .seg{margin:12px 12px 0}.levels-body{padding:var(--space-4) var(--space-5)}.key-points{list-style:none;padding:0;margin:0;display:grid;gap:10px}.key-points li{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.key-points li svg{color:var(--ok);flex:none;margin-top:3px}.widget-frame{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-4)}.widget-frame>.widget-title{font-weight:800;display:flex;gap:8px;align-items:center;margin-bottom:10px}.figure-frame{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:var(--space-4);text-align:center}.figure-frame figcaption{font-size:.9rem;color:var(--muted);margin-top:8px}.lesson-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-top:var(--space-6)}.lesson-nav a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);background:var(--surface)}.lesson-nav a:hover{border-color:var(--brand)}.lesson-nav .dir{font-size:.8rem;color:var(--muted);font-weight:700}.topic-card{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);background:var(--surface);display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.topic-card:hover{border-color:var(--brand);box-shadow:var(--shadow-2);transform:translateY(-2px)}.topic-card .num{background-image:linear-gradient(#00000052,#00000052);width:38px;height:38px;border-radius:11px;color:#fff;display:grid;place-items:center;font-weight:800;font-family:var(--font-display);flex:none}.topic-card[data-locked] .num{filter:grayscale(.8);opacity:.7}.lesson-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:inherit}.lesson-row:hover{border-color:var(--brand)}.status-dot{width:26px;height:26px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;flex:none;color:#fff}.status-dot[data-status=completed]{background:var(--ok);border-color:var(--ok)}.status-dot[data-status=started]{border-color:var(--brand);background:conic-gradient(var(--brand) 0 50%,transparent 50% 100%)}.hero{position:relative;border-radius:24px;padding:clamp(24px,5vw,48px);background:radial-gradient(1200px 400px at 110% -20%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 60%),radial-gradient(900px 500px at -10% 120%,color-mix(in srgb,var(--brand) 25%,transparent),transparent 60%),var(--surface);border:1px solid var(--line);overflow:hidden}.hero h1{font-size:clamp(2rem,4.5vw,3.2rem);max-width:18ch}.hero p{font-size:1.15rem;color:var(--ink-2);max-width:56ch}.stat{display:flex;flex-direction:column;gap:2px}.stat .v{font-family:var(--font-display);font-weight:800;font-size:1.8rem;line-height:1.1}.stat .l{color:var(--muted);font-size:.85rem;font-weight:600}.ptable{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:3px;min-width:860px}.ptable-wrap{overflow-x:auto;padding-bottom:8px}.el{aspect-ratio:1 / 1.12;border-radius:6px;border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);padding:3px 4px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;font:inherit;text-align:left;color:var(--ink);transition:transform .12s var(--ease),opacity .16s var(--ease),box-shadow .12s var(--ease);min-width:0}.el:hover,.el:focus-visible{transform:scale(1.12);z-index:2;box-shadow:var(--shadow-2);position:relative}.el[data-dim]{opacity:.18}.el[data-selected]{outline:3px solid var(--ink);outline-offset:1px}.el .z{font-size:.6rem;line-height:1;opacity:.8}.el .sym{font-family:var(--font-display);font-weight:800;font-size:clamp(.85rem,1.25vw,1.15rem);line-height:1}.el .nm{font-size:.5rem;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.legend{display:flex;flex-wrap:wrap;gap:6px}.legend button{font:inherit;font-size:.8rem;font-weight:700;border:1px solid var(--line);border-radius:999px;padding:4px 10px 4px 6px;display:inline-flex;align-items:center;gap:6px;background:var(--surface);color:var(--ink);cursor:pointer}.legend button[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.legend .sw{width:14px;height:14px;border-radius:4px;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent)}.search-input{width:100%;border:0;border-bottom:1px solid var(--line);padding:16px 18px;font:inherit;font-size:1.1rem;background:transparent;color:var(--ink)}.search-input:focus{outline:none}.search-results{list-style:none;margin:0;padding:8px;max-height:60vh;overflow:auto}.search-results a{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border-radius:10px;color:var(--ink);text-decoration:none}.search-results a[data-active],.search-results a:hover{background:var(--brand-soft)}.search-results .kind{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:70px;padding-top:3px}.flashcard{perspective:1200px;height:260px;cursor:pointer}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .45s var(--ease);transform-style:preserve-3d}.flashcard[data-flipped] .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-2);display:grid;place-items:center;padding:var(--space-5);text-align:center;font-size:1.2rem;overflow:auto}.flashcard-face.back{transform:rotateY(180deg);background:var(--brand-soft);font-size:1.05rem}.exam-bar{position:sticky;top:var(--topbar-h);z-index:20;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin:0 0 var(--space-4);border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-1)}.timer{font-family:var(--font-mono);font-weight:800;font-size:1.1rem}.timer[data-low]{color:var(--bad)}.qnav{display:flex;flex-wrap:wrap;gap:5px}.qnav button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;color:var(--ink);position:relative}.qnav button[data-answered]{background:var(--brand-soft);border-color:var(--brand)}.qnav button[data-current]{outline:2px solid var(--ink)}.qnav button[data-flag]:after{content:"";position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:var(--accent)}.qnav button[data-right]{background:var(--ok-soft);border-color:var(--ok)}.qnav button[data-wrong]{background:var(--bad-soft);border-color:var(--bad)}.lab-bench{border-radius:var(--radius-lg);border:1px solid var(--line);background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 6%,var(--surface)) 0%,var(--surface) 100%);padding:var(--space-4)}.sim-banner{display:flex;gap:8px;align-items:center;font-size:.85rem;font-weight:700;color:var(--warn);background:var(--warn-soft);border-radius:10px;padding:6px 10px;margin-bottom:var(--space-3)}.slider-row{display:grid;grid-template-columns:150px 1fr 90px;gap:10px;align-items:center}.slider-row input[type=range]{width:100%;accent-color:var(--brand)}@media(max-width:560px){.slider-row{grid-template-columns:1fr 80px}.slider-row>:first-child{grid-column:1 / -1}}.studio-canvas{position:relative;border-radius:var(--radius-lg);border:1px solid var(--line);background-color:var(--surface);background-image:radial-gradient(var(--line) 1px,transparent 1px);background-size:22px 22px;touch-action:none;-webkit-user-select:none;user-select:none}.split{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);align-items:start}@media(max-width:900px){.split{grid-template-columns:1fr}}@media(max-width:640px){.hide-sm{display:none}}.guided-page{max-width:820px}.crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-4);color:var(--muted)}.crumbs a{color:var(--ink-2)}.guided{scroll-margin-top:calc(var(--topbar-h) + 12px)}.guided-bar{position:sticky;top:var(--topbar-h);z-index:15;background:var(--bg);padding:10px 0 12px;display:flex;flex-direction:column;gap:8px}.guided-meter{display:flex;gap:3px}.guided-meter span{flex:1;height:6px;border-radius:3px;background:var(--surface-3);transition:background .25s}.guided-meter span[data-kind=question],.guided-meter span[data-kind=challenge]{background:color-mix(in srgb,var(--accent) 22%,var(--surface-3))}.guided-meter span[data-done]{background:var(--brand)}.guided-meter span[data-current]{background:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 30%,transparent)}.guided-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(18px,4vw,36px);box-shadow:var(--shadow-1);min-height:300px;animation:guided-in .28s ease-out}@keyframes guided-in{0%{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.guided-card{animation:none}}.guided-card .block:first-child{margin-top:0}.guided-kicker{margin:0;font-size:.8rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--brand)}.guided-title{font-family:var(--font-display);font-size:clamp(1.45rem,2.5vw + .8rem,2rem);line-height:1.15;margin:0;text-wrap:balance}.guided-lead{font-size:1.12rem;color:var(--ink-2);margin:0}.guided-nav{position:sticky;bottom:0;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0 calc(14px + env(safe-area-inset-bottom,0px));background:linear-gradient(to top,var(--bg) 70%,transparent)}.btn.lg{min-height:48px;padding:0 22px;font-size:1.05rem}.linkish{background:none;border:0;padding:0;font:inherit;color:var(--brand);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.linkish:focus-visible{outline:none;box-shadow:var(--focus);border-radius:4px}.term-pop{position:absolute;z-index:60;max-width:min(340px,calc(100vw - 32px));background:var(--surface);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:var(--shadow-3);padding:12px 14px;font-size:.95rem;line-height:1.45}.term-pop strong{display:block;margin-bottom:2px}.term-pop .small{margin-top:8px}.nav-more{width:100%;background:none;border:0;font:inherit;text-align:left;cursor:pointer;color:var(--muted);margin-top:6px}.search-trigger span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.search-trigger{min-width:0}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.guided-card .stack>.block,.guided-card .stack>.prose{margin-bottom:0}.next-up{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4);border-color:color-mix(in srgb,var(--brand) 35%,var(--line));background:linear-gradient(135deg,var(--brand-soft),var(--surface) 60%)}.how-steps{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.how-steps li{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.how-steps h3{margin:0 0 4px;font-size:1.05rem}.how-steps p{margin:0}.how-num{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand-soft);color:var(--brand-strong);font-weight:800;font-family:var(--font-display)}.auth-page{display:grid;grid-template-columns:minmax(0,440px) minmax(0,300px);grid-template-areas:"card perks" "footer perks";justify-content:center;align-items:start;gap:12px 40px;padding-block:clamp(8px,4vw,40px)}.auth-card{grid-area:card;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);padding:clamp(22px,4vw,36px);display:flex;flex-direction:column;gap:var(--space-4)}.auth-footer{grid-area:footer;text-align:center;color:var(--ink-2)}.auth-perks{grid-area:perks;padding-top:70px}.auth-perks h2{font-size:1rem;margin:0 0 10px}.auth-perks ul{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:10px}.auth-perks li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-2)}.auth-perks li svg{flex:none;color:var(--brand);margin-top:2px}@media(max-width:820px){.auth-page{grid-template-columns:minmax(0,480px);grid-template-areas:"card" "footer" "perks"}.auth-perks{padding-top:12px}}.auth-brand{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:1.5rem;letter-spacing:-.03em;color:var(--ink);text-decoration:none;align-self:flex-start}.auth-title{font-family:var(--font-display);font-size:clamp(1.5rem,2vw + 1rem,1.9rem);line-height:1.15;margin:0;text-wrap:balance}.auth-lead{margin:-6px 0 0;color:var(--ink-2)}.auth-who{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--radius);background:var(--surface-2)}.auth-who img,.auth-avatar{width:44px;height:44px;border-radius:50%;flex:none}.auth-avatar{display:grid;place-items:center;background:var(--brand-soft);color:var(--brand-strong)}.btn.block{width:100%;justify-content:center}.pw-wrap{position:relative}.pw-wrap .input{width:100%;padding-right:86px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;gap:4px;border:0;background:none;color:var(--ink-2);font:inherit;font-size:.85rem;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer}.pw-toggle:hover{background:var(--surface-2)}.pw-toggle:focus-visible{outline:none;box-shadow:var(--focus)}.pw-strength{margin-top:-8px}.pw-meter{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:6px}.pw-meter span{height:5px;border-radius:3px;background:var(--surface-3)}.pw-meter[data-score="1"] span:nth-child(-n+1){background:var(--bad)}.pw-meter[data-score="2"] span:nth-child(-n+2){background:var(--warn)}.pw-meter[data-score="3"] span{background:var(--ok)}.pw-strength ul{list-style:none;padding:0;margin:0;display:grid;gap:2px;font-size:.85rem;color:var(--muted)}.pw-strength li{display:flex;gap:6px;align-items:center}.pw-strength li[data-ok]{color:var(--ok)}.account-btn img{border-radius:50%}.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--brand);animation:pulse 1s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.3}}.tutor-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:16px 0 10px}.chat{display:flex;flex-direction:column;gap:12px;min-height:160px}.chat-empty{padding:18px;border:1px dashed var(--line-strong);border-radius:var(--radius)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font:inherit;font-size:.92rem;cursor:pointer;text-align:left}.chip:hover{border-color:var(--brand);background:var(--brand-soft)}.chip:focus-visible{outline:none;box-shadow:var(--focus)}.bubble{max-width:min(100%,680px);padding:12px 16px;border-radius:16px;border:1px solid var(--line);background:var(--surface);min-width:0}.bubble.user{align-self:flex-end;background:var(--brand-soft);border-color:color-mix(in srgb,var(--brand) 25%,var(--line));border-bottom-right-radius:4px}.bubble.assistant{align-self:flex-start;border-bottom-left-radius:4px}.bubble.error{background:var(--bad-soft);border-color:color-mix(in srgb,var(--bad) 35%,var(--line))}.bubble-who{font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}.bubble .question{margin-top:12px}.typing{display:inline-flex;gap:4px;padding:6px 0}.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:typing 1s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,80%,to{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.typing i,.sync-dot{animation:none}}.chat-input{position:sticky;bottom:0;display:flex;gap:10px;align-items:flex-end;margin-top:16px;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px));background:var(--bg)}.chat-input textarea{flex:1;min-width:0;resize:vertical;min-height:52px}.ai-box{margin-top:12px;padding:12px 14px;border-radius:var(--radius);background:color-mix(in srgb,var(--ap) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--ap) 25%,var(--line))}.ai-box-title{display:flex;align-items:center;gap:6px;font-weight:800;font-size:.85rem;color:var(--ap);margin-bottom:4px}.topbar .search-trigger{min-width:40px}.topbar-actions{flex:none}@media(max-width:600px){.topbar{gap:8px}.topbar .search-trigger span{display:none}.topbar .search-trigger{flex:0 0 auto;width:40px;height:40px;padding:0;justify-content:center;margin-right:auto}.hide-sm{display:none!important}}.example-btn{white-space:normal;text-align:left;max-width:100%;overflow-wrap:anywhere;height:auto;min-height:32px}.today-plan .plan-steps{list-style:none;margin:14px 0 12px;padding:0;display:grid;gap:8px}.today-plan .plan-steps li{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.today-plan .plan-steps li[data-done]{background:var(--surface-2)}.today-plan .plan-steps li[data-done] strong{color:var(--muted)}.today-plan .plan-check{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}.today-plan li[data-done] .plan-check{background:var(--ok);color:#fff}.today-plan .plan-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.today-plan .plan-text .small{overflow-wrap:anywhere}.today-plan .plan-steps .btn{flex:none}.today-plan .plan-time{display:grid;gap:6px}.welcome-empty{display:flex;flex-wrap:wrap;align-items:center;gap:16px}@media(max-width:520px){.today-plan .plan-steps li{flex-wrap:wrap}.today-plan .plan-text{flex:1 1 calc(100% - 42px)}.today-plan .plan-steps .btn{margin-left:42px}}.google-btn{gap:10px}.google-g{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--line-strong);font-family:var(--font-display);font-weight:800;font-size:.9rem;color:var(--brand);background:var(--surface)}.or-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:.85rem}.or-divider:before,.or-divider:after{content:"";flex:1;border-top:1px solid var(--line)}.hero .learner-count{display:inline-flex;align-items:center;gap:8px;margin:4px 0 0;padding:4px 12px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:.9rem;color:var(--ink-2);max-width:100%}.hero .learner-count svg{color:var(--brand);flex:none}.avatar{display:inline-grid;place-items:center;border-radius:50%;flex:none;line-height:1;-webkit-user-select:none;user-select:none}.profile-card{width:min(100%,380px);border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-2);overflow:hidden}.profile-banner{height:120px;background-size:cover;background-position:center}.profile-card.compact .profile-banner{height:72px}.profile-body{padding:0 18px 18px;position:relative}.profile-avatar-ring{display:inline-block;margin-top:-48px;padding:6px;border-radius:50%;background:var(--surface)}.profile-card.compact .profile-avatar-ring{margin-top:-40px}.profile-name{margin:6px 0 0;font-size:1.35rem;overflow-wrap:anywhere}.profile-handle{color:var(--ink-2);font-size:.92rem;overflow-wrap:anywhere}.profile-pronouns{color:var(--muted)}.profile-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.profile-section h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 4px}.profile-section p{margin:0}.profile-bio{white-space:pre-wrap;overflow-wrap:anywhere}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.profile-stats strong{display:block;font-family:var(--font-display);font-size:1.25rem}.profile-stats span{font-size:.75rem;color:var(--muted)}.profile-badges{display:flex;flex-wrap:wrap;gap:6px}.profile-editor{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:32px;align-items:start}.profile-editor .preview{position:sticky;top:calc(var(--topbar-h) + 20px)}@media(max-width:900px){.profile-editor{grid-template-columns:1fr}.profile-editor .preview{position:static;order:-1}}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px}.emoji-grid button{height:42px;border-radius:10px;border:1px solid var(--line);background:var(--surface);font-size:1.3rem;cursor:pointer}.emoji-grid button[aria-pressed=true]{border-color:var(--brand);box-shadow:inset 0 0 0 2px var(--brand)}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatches button{width:32px;height:32px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line-strong);cursor:pointer}.swatches button[aria-pressed=true]{box-shadow:0 0 0 3px var(--ink)}.username-field{position:relative}.username-field .at{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.username-field .input{padding-left:28px}.account-btn .avatar{font-size:13px}.swatches .custom-color{position:relative;display:inline-block;width:32px;height:32px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line-strong);overflow:hidden;cursor:pointer;background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.swatches .custom-color:focus-within{box-shadow:var(--focus)}.swatches .custom-color input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.upload-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.upload-row .file-btn{position:relative;overflow:hidden}.upload-row .file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.banner-thumb{width:120px;height:40px;border-radius:8px;background-size:cover;background-position:center;border:1px solid var(--line)}.role-badges{display:inline-flex;flex-wrap:wrap;gap:6px}.role-badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px 2px 8px;border-radius:999px;font-size:.8rem;font-weight:700;color:var(--ink);background:color-mix(in srgb,var(--role) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--role) 45%,var(--line))}.role-badges.small .role-badge{font-size:.72rem;padding:1px 8px 1px 6px}.role-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.role-dot.lg{width:14px;height:14px}.role-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.role-check{padding:6px 8px;border:1px solid var(--line);border-radius:10px}.mod-stat{text-align:left;font:inherit;cursor:pointer;color:inherit}.mod-stat:hover{border-color:var(--brand)}.announce-bar{padding:8px 16px;text-align:center;font-weight:700;font-size:.92rem;overflow-wrap:anywhere}.announce-bar.tone-brand{background:var(--brand);color:var(--brand-ink)}.announce-bar.tone-info{background:var(--info-soft);color:var(--info)}.announce-bar.tone-success{background:var(--ok-soft);color:var(--ok)}.announce-bar.tone-warning{background:var(--warn-soft);color:var(--warn)}.ban-notice{margin:0 0 16px}.scioly-links{display:flex;flex-wrap:wrap;gap:8px}.scioly-links .chip{display:inline-flex;align-items:center;gap:6px;text-decoration:none}.scioly-timer{position:sticky;top:64px;z-index:5;font-weight:700;font-variant-numeric:tabular-nums}.scioly-timer.over{border-color:var(--bad);color:var(--bad)}.powder-tests{display:flex;flex-wrap:wrap;gap:8px}.scioly-seasons{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:4px}.scioly-pick{display:grid;gap:6px;margin:16px 0}.scioly-pick select{max-width:100%}.scioly-history td{min-width:220px;line-height:1.6}.scioly-history th[scope=row]{white-space:nowrap}.sb-lobby{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}@media(max-width:760px){.sb-lobby{grid-template-columns:1fr}}.sb-rules ol{margin:0;padding-left:20px;display:grid;gap:8px}.sb-keys{display:flex;flex-wrap:wrap;gap:8px 16px}.sb-board{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch;margin-bottom:14px}.sb-score{background:var(--surface);border:2px solid var(--line);border-radius:var(--radius-lg);padding:10px 16px;display:flex;flex-direction:column;transition:border-color .15s,box-shadow .15s,opacity .15s}.sb-score.right{text-align:right}.sb-score.lit{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}.sb-score.locked{opacity:.55}.sb-score-name{font-size:.85rem;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-score-pts{font-family:var(--font-display);font-size:2.4rem;font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums}.sb-clock{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 6px}.sb-clock-time{font-family:var(--font-mono);font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums}.sb-clock-label{font-size:.8rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.sb-stage{position:relative;min-height:340px;display:flex;flex-direction:column;gap:14px}.sb-stage.bonus{border-color:var(--accent)}.sb-meta{flex-wrap:wrap;gap:8px}.sb-tag{font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--brand)}.sb-stage.bonus .sb-tag{color:var(--accent)}.sb-announce{font-family:var(--font-display);font-size:1.6rem;font-weight:700;margin:24px 0;text-align:center}.sb-stem{font-size:1.3rem;line-height:1.55;margin:0;min-height:3em}.sb-caret{display:inline-block;width:3px;height:1.1em;margin-left:4px;vertical-align:-.15em;background:var(--brand);animation:sb-blink 1s steps(2) infinite}@keyframes sb-blink{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.sb-caret{animation:none}}.sb-choices{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:6px;font-size:1.1rem}.sb-choices li{padding:4px 8px;border-radius:var(--radius-sm)}.sb-choices li.right{background:var(--ok-soft);color:var(--ink);font-weight:700}.sb-buzzers{display:flex;justify-content:center;gap:16px;margin-top:auto}.sb-buzz{width:150px;height:150px;border-radius:50%;border:6px solid color-mix(in srgb,var(--bad) 70%,black);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--bad) 70%,white),var(--bad) 60%);color:#fff;font:800 1.6rem var(--font-display);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;box-shadow:0 8px color-mix(in srgb,var(--bad) 60%,black),var(--shadow-2);transition:transform .06s,box-shadow .06s;touch-action:manipulation}.sb-buzz small{font:600 .7rem var(--font-body);opacity:.9;text-align:center;padding:0 10px}.sb-buzz:active:not(:disabled){transform:translateY(6px);box-shadow:0 2px color-mix(in srgb,var(--bad) 60%,black)}.sb-buzz:disabled{filter:grayscale(1);opacity:.45;cursor:not-allowed}.sb-buzz:focus-visible{outline:3px solid var(--brand);outline-offset:4px}.sb-buzzers.duo .sb-buzz:last-child{border-color:color-mix(in srgb,var(--info) 70%,black);background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--info) 70%,white),var(--info) 60%);box-shadow:0 8px color-mix(in srgb,var(--info) 60%,black),var(--shadow-2)}.sb-timer-bar{height:10px;border-radius:99px;background:var(--bg-tint);overflow:hidden;margin-top:4px}.sb-timer-bar span{display:block;height:100%;background:var(--brand);transition:width .05s linear}.sb-timer.warn strong,.sb-timer.warn span{color:var(--bad)}.sb-timer.warn .sb-timer-bar span{background:var(--bad)}.sb-mc{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sb-mc .btn{justify-content:flex-start;text-align:left;white-space:normal;height:auto;padding:10px 12px}.sb-mc .btn b{color:var(--brand);margin-right:6px}@media(max-width:560px){.sb-mc{grid-template-columns:1fr}.sb-buzz{width:120px;height:120px;font-size:1.3rem}.sb-score-pts{font-size:1.9rem}.sb-stem{font-size:1.15rem}}.sb-banner{background:var(--warn-soft);border:1px solid var(--warn);border-radius:var(--radius);padding:8px 12px;font-weight:700}.sb-rival{font-weight:700;margin:0;text-align:center;font-size:1.1rem}.sb-result{border-radius:var(--radius);padding:12px 14px;border:1px solid var(--line)}.sb-result.ok{background:var(--ok-soft);border-color:var(--ok)}.sb-result.bad{background:var(--bad-soft);border-color:var(--bad)}.sb-result-head{display:flex;align-items:center;gap:8px}.sb-result.ok .sb-result-head svg{color:var(--ok)}.sb-result.bad .sb-result-head svg{color:var(--bad)}.sb-paused{position:absolute;inset:0;background:color-mix(in srgb,var(--surface) 92%,transparent);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:inherit;z-index:2;font-size:1.3rem}.sb-review summary{cursor:pointer;font-weight:600}.sb-review.ok{border-left:4px solid var(--ok)}.sb-review.bad{border-left:4px solid var(--bad)}@media(hover:none){.sb-keyhint{display:none}}.purpose-picker{border:0;padding:0;margin:0;min-width:0}.purpose-picker legend{font-weight:700;margin-bottom:8px;padding:0}.purpose-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}.purpose-option{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;background:var(--surface)}.purpose-option>span:last-child{display:flex;flex-direction:column;min-width:0}.purpose-option input{position:absolute;opacity:0;pointer-events:none}.purpose-option.on{border-color:var(--brand);background:var(--brand-soft)}.purpose-option:focus-within{outline:2px solid var(--brand);outline-offset:2px}.purpose-emoji{font-size:1.4rem}.purpose-card.ask{border-color:var(--brand)}.teacher-req{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.purpose-bars{display:grid;gap:6px}.purpose-bar{display:grid;grid-template-columns:170px 1fr 48px;gap:8px;align-items:center;font-size:.9rem}.purpose-bar .track{height:10px;border-radius:99px;background:var(--bg-tint);overflow:hidden}.purpose-bar .track span{display:block;height:100%;background:var(--brand)}@media(max-width:560px){.purpose-bar{grid-template-columns:120px 1fr 40px}}.cls-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.cls-card{padding:0;overflow:hidden;display:flex;flex-direction:column}.cls-card-banner{color:#fff;padding:16px 16px 22px;min-height:92px;display:flex;flex-direction:column;gap:2px}.cls-card-banner strong{font-family:var(--font-display);font-size:1.25rem;line-height:1.2;overflow-wrap:anywhere}.cls-card-banner span{opacity:.9;font-size:.9rem}.cls-card-body{padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px}.cls-person{display:inline-flex;align-items:center;gap:10px;min-width:0}.cls-person-text{display:flex;flex-direction:column;min-width:0}.cls-person-text strong{overflow-wrap:anywhere}.cls-invite{gap:12px;flex-wrap:wrap}.cls-code-input{font-family:var(--font-mono);font-size:1.4rem;letter-spacing:.15em;text-transform:lowercase}.cls-page{display:flex;flex-direction:column;gap:14px}.cls-banner{color:#fff;border-radius:var(--radius-lg);padding:24px;min-height:150px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.cls-banner h1{color:#fff;margin:0;font-size:clamp(1.6rem,4vw,2.3rem);overflow-wrap:anywhere}.cls-banner p{margin:4px 0 0;opacity:.92}.cls-banner .pill{margin-top:8px;background:#fff3;color:#fff}.cls-codebox{background:#fff;color:#1b2433;border-radius:var(--radius);padding:10px 14px;display:flex;flex-direction:column;gap:4px}.cls-code{font-family:var(--font-mono);font-size:1.6rem;letter-spacing:.12em;color:#2f55d4}.cls-codebox .btn{background:#fff;color:#1b2433;border-color:#d0d7e2}.cls-stream{display:grid;grid-template-columns:200px minmax(0,1fr);gap:18px;align-items:start}@media(max-width:760px){.cls-stream{grid-template-columns:1fr}.cls-upcoming{order:2}}.cls-upcoming{display:flex;flex-direction:column;gap:10px}.cls-composer-closed{display:flex;align-items:center;gap:10px;color:var(--muted);text-align:left;cursor:pointer;font:inherit;width:100%}.cls-post{display:flex;flex-direction:column;gap:10px}.cls-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.cls-post-mini,.cls-work{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cls-post-mini>span:last-child,.cls-work-main{display:flex;flex-direction:column;flex:1;min-width:180px}.cls-work.archived{opacity:.6}.cls-work-stats{flex-basis:100%;padding-left:48px;color:var(--muted)}.cls-post-icon{width:36px;height:36px;border-radius:50%;color:#fff;display:inline-flex;align-items:center;justify-content:center;flex:none}.cls-post-icon.lg{width:48px;height:48px}.cls-topic{font-size:1.1rem;margin:6px 0 2px;padding-bottom:6px;border-bottom:2px solid var(--line)}.cls-attachments{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.cls-attachments li{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.cls-attachment{display:flex;align-items:center;gap:10px;padding:8px 10px;background:none;border:0;cursor:pointer;text-align:left;flex:1;min-width:0;color:var(--ink);font:inherit}.cls-attachment>span{display:flex;flex-direction:column;min-width:0}.cls-attachment strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.92rem}.cls-attachment svg{color:var(--brand);flex:none}.cls-comments{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:10px}.cls-comment{display:grid;grid-template-columns:1fr auto;gap:2px 8px}.cls-comment p{grid-column:1 / -1;margin:0 0 0 36px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem}.cls-comment-actions{grid-row:1;grid-column:2;display:flex;gap:2px}.cls-comment-form{gap:8px;flex-wrap:nowrap}.cls-comment-form .input{flex:1;min-width:0}.cls-people{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.cls-person-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--line)}.cls-grades th,.cls-grades td{white-space:nowrap}.cls-grades td.cls-missing{color:var(--bad);font-weight:700}.cls-detail{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}.cls-detail.with-side{grid-template-columns:minmax(0,1fr) 300px}@media(max-width:860px){.cls-detail.with-side{grid-template-columns:1fr}.cls-mywork{order:-1}}.cls-detail-head{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}.cls-detail-head h1{font-size:clamp(1.4rem,3.5vw,1.9rem);margin:0 0 2px;overflow-wrap:anywhere}.cls-activity{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cls-activity>span{display:flex;flex-direction:column;min-width:160px}.cls-mywork{position:sticky;top:76px}.cls-feedback{background:var(--brand-soft);border-radius:var(--radius);padding:10px 12px}.cls-subs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.cls-subs>li{border-bottom:1px solid var(--line)}.cls-sub-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 4px;background:none;border:0;cursor:pointer;font:inherit;color:var(--ink);text-align:left;flex-wrap:wrap}.cls-sub-row:hover{background:var(--bg-tint)}.cls-gradebox{padding:6px 4px 14px}.game-join{max-width:720px}.game-join h2{margin:0 0 10px;font-size:1.2rem}.game-join-form{display:grid;grid-template-columns:1fr 1fr auto;gap:8px}@media(max-width:560px){.game-join-form{grid-template-columns:1fr}}.game-pin{font-family:var(--font-mono);font-size:1.3rem;letter-spacing:.2em;text-align:center}.game-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:16px;max-width:720px}.game-links .card{display:flex;gap:12px;align-items:center}.game-links .card>span{display:flex;flex-direction:column}.game-links svg{color:var(--accent);flex:none}.game-sets{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.game-set{display:flex;flex-direction:column;gap:8px}.game-set h3{margin:0;font-size:1.15rem;overflow-wrap:anywhere}.game-set.archived{opacity:.6}.btn.disabled{pointer-events:none;opacity:.5}.ge-q.bad{border-color:var(--bad)}.ge-prompt{font-size:1.1rem}.ge-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}@media(max-width:600px){.ge-choices{grid-template-columns:1fr}}.ge-choice{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius);color:#fff}.ge-choice .input{background:#fffffff2;color:#1b2433;border-color:transparent}.ge-choice>span:not(.ge-shape){font-weight:700;padding:6px 4px}.ge-choice.right{outline:3px solid var(--ok);outline-offset:2px}.ge-shape{font-size:1.1rem;width:1.2em;text-align:center}.ge-sb-choices{display:grid;gap:6px}.ge-sb-choice{display:flex;align-items:center;gap:8px}.ge-sb-choice.right b{color:var(--ok)}.ge-sb-choice .input{flex:1}.ge-save{position:sticky;bottom:0;background:var(--bg);padding:12px 0}.gp-bar{height:8px;border-radius:99px;background:var(--bg-tint);overflow:hidden}.gp-bar span{display:block;height:100%;background:var(--brand);transition:width .2s}.gp-prompt{font-size:1.3rem;font-weight:600;margin:0;white-space:pre-wrap}.live-choice.c0,.ge-choice.c0{background:#c92a2a}.live-choice.c1,.ge-choice.c1{background:#1864ab}.live-choice.c2,.ge-choice.c2{background:#e67700}.live-choice.c3,.ge-choice.c3{background:#2b8a3e}.live-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}@media(max-width:560px){.live-choices:not(.host){grid-template-columns:1fr}}.live-choice{color:#fff;border:0;border-radius:var(--radius);padding:18px 16px;font:700 1.15rem var(--font-body);text-align:left;display:flex;align-items:center;gap:12px;min-height:72px;position:relative;cursor:pointer;overflow-wrap:anywhere}.live-choice>span{font-size:1.4rem}.live-choice:disabled{cursor:default}.live-choice.picked{outline:4px solid var(--ink);outline-offset:2px}.live-choice.wrong{opacity:.55}.live-choice.right{outline:4px solid var(--ok);outline-offset:3px}.live-choice.dim{opacity:.35}.live-choices.player .live-choice{min-height:96px;font-size:1.25rem}.live-count{position:absolute;right:14px;font-size:1.5rem}.live-host,.live-play{display:flex;flex-direction:column;gap:18px;padding:16px;max-width:1200px;margin:0 auto;width:100%}.live-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px}.live-pin-small b{font-family:var(--font-mono);letter-spacing:.1em}.live-score{font-weight:800;font-variant-numeric:tabular-nums}.live-lobby{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:20px 0}.live-join-hint{font-size:1.2rem;margin:0}.live-pin{font:800 clamp(3rem,12vw,6.5rem) var(--font-mono);letter-spacing:.12em;color:var(--brand);line-height:1}.live-players{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:900px;min-height:48px}.live-player-chip{background:var(--brand-soft);color:var(--ink);border:1px solid var(--line);border-radius:99px;padding:8px 14px;font:700 1rem var(--font-body);cursor:pointer;animation:live-pop .25s ease-out}.live-player-chip:hover{text-decoration:line-through}@keyframes live-pop{0%{transform:scale(.6);opacity:0}}@media(prefers-reduced-motion:reduce){.live-player-chip{animation:none}}.live-big-btn{font-size:1.15rem;padding:14px 28px}.live-stage{display:flex;flex-direction:column;gap:18px}.live-qhead{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-weight:700}.live-timer{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--brand);color:#fff;font:800 1.6rem var(--font-mono)}.live-prompt{text-align:center;font-size:clamp(1.5rem,3.6vw,2.6rem);margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.live-prompt.small-screen{font-size:1.2rem}.live-explain,.live-short-answer{text-align:center;font-size:1.15rem;margin:0}.live-board{list-style:none;counter-reset:rank;padding:0;margin:0 auto;width:min(560px,100%);display:flex;flex-direction:column;gap:6px}.live-board li{counter-increment:rank;display:flex;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;font-weight:700}.live-board[start="4"]{counter-reset:rank 3}.live-board li:before{content:counter(rank);color:var(--muted);margin-right:10px}.live-board li span{flex:1;overflow-wrap:anywhere}.live-board li.me{border-color:var(--brand);background:var(--brand-soft)}.live-podium{display:flex;justify-content:center;align-items:flex-end;gap:12px;flex-wrap:wrap}.live-podium>div{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:16px 20px;min-width:150px}.live-podium-1{order:2;padding-top:34px!important;border-color:#f59f00!important}.live-podium-2{order:1}.live-podium-3{order:3}.live-medal{font-size:2.4rem}.live-wait,.live-result{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 12px;border-radius:var(--radius-lg)}.live-wait h1,.live-result h1{margin:0;font-size:clamp(1.6rem,6vw,2.4rem)}.live-result.ok{background:var(--ok-soft)}.live-result.bad{background:var(--bad-soft)}.live-big-emoji{font-size:3.4rem}.live-points{font:800 2rem var(--font-display);margin:0}.live-answer{display:flex;flex-direction:column;gap:14px}.live-type{font-size:1.3rem;padding:14px}.pf-public{width:min(720px,100%);display:flex;flex-direction:column;gap:18px}.pf-public h2{margin:0;font-size:1.3rem}.pf-block h3{display:flex;align-items:center;gap:8px;font-size:1rem;margin:0 0 8px}.pf-block h3 svg{color:var(--accent)}.pf-stats{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))!important}.pf-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.pf-list li{border-left:3px solid var(--brand);padding:4px 0 4px 12px;display:flex;flex-direction:column;gap:2px}.pf-list li strong{overflow-wrap:anywhere}.pf-list li p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.95rem}.pf-edit{border:1px solid var(--line);border-radius:var(--radius);padding:12px;margin:0;display:flex;flex-direction:column;gap:8px;min-width:0}.chemdle .tabs{margin-bottom:12px}.chemdle-game{display:flex;flex-direction:column;gap:12px;max-width:760px}.chemdle-board{display:flex;flex-direction:column;gap:6px}.chemdle-row{display:grid;grid-template-columns:1.5fr repeat(6,1fr);gap:6px}.chemdle-row.head span{font-size:12px;color:var(--muted);text-align:center;font-weight:600}.chemdle-row.head span:first-child{text-align:left}.chemdle .tile{display:flex;align-items:center;justify-content:center;text-align:center;min-height:52px;padding:4px;border-radius:10px;background:var(--surface-3);color:var(--ink);font-size:13px;line-height:1.15;font-weight:600;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}.chemdle .tile.name{justify-content:flex-start;gap:6px;background:var(--surface);border:1px solid var(--line);padding:4px 10px}.chemdle .tile.name strong{font-size:18px;font-family:var(--font-display)}.chemdle .tile.ok{background:#157a52;color:#fff;border-color:transparent}.chemdle .tile.near{background:#e8b100;color:#1d1600}.chemdle .tile.off{background:var(--surface-3);color:var(--ink-2)}.chemdle-row.blank .tile{background:transparent;border:2px dashed var(--line)}.chemdle-row:not(.head):not(.blank) .tile{animation:chemdle-flip .35s ease both}.chemdle-row .tile:nth-child(2){animation-delay:.04s}.chemdle-row .tile:nth-child(3){animation-delay:.08s}.chemdle-row .tile:nth-child(4){animation-delay:.12s}.chemdle-row .tile:nth-child(5){animation-delay:.16s}.chemdle-row .tile:nth-child(6){animation-delay:.2s}.chemdle-row .tile:nth-child(7){animation-delay:.24s}@keyframes chemdle-flip{0%{transform:rotateX(90deg);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.chemdle-row .tile{animation:none!important}}.chemdle .tile.mini{display:inline-flex;min-height:0;padding:0 6px;border-radius:6px;font-size:12px}.chemdle-input{position:relative}.chemdle-input .input{flex:1;min-width:0}.chemdle-suggest{list-style:none;margin:4px 0 0;padding:4px;position:absolute;left:0;right:0;z-index:5;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0000001f}.chemdle-suggest button{display:flex;gap:8px;width:100%;text-align:left;padding:8px 10px;border:0;background:none;border-radius:6px;color:var(--ink);font:inherit;cursor:pointer}.chemdle-suggest button.on,.chemdle-suggest button:hover{background:var(--brand-soft)}.chemdle-suggest strong{min-width:28px}.chemdle-result{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.chemdle-result.won{border-color:#1f9d6a}.chemdle-answer{display:flex;flex-direction:column;align-items:center;justify-content:center;width:84px;height:84px;border-radius:12px;background:var(--brand-soft);color:var(--brand-strong);flex:none}.chemdle-answer strong{font-size:30px;font-family:var(--font-display);line-height:1}.chemdle-stats{display:flex;flex-direction:column;gap:12px}.chemdle-nums{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}.chemdle-nums div{display:flex;flex-direction:column}.chemdle-nums strong{font-size:22px;font-family:var(--font-display)}.chemdle-dist{display:flex;flex-direction:column;gap:4px}.chemdle-bar{display:flex;align-items:center;gap:8px}.chemdle-bar .tiny{width:10px}.chemdle-bar .fill{background:var(--surface-3);color:var(--ink-2);font-size:12px;font-weight:600;text-align:right;padding:2px 6px;border-radius:4px}.chemdle-bar .fill.on{background:#1f9d6a;color:#fff}.chemdle-how{max-width:760px;margin-top:16px}.chemdle-how summary{cursor:pointer}.chemdle-how li{margin:6px 0}@media(max-width:560px){.chemdle-row{grid-template-columns:1fr repeat(6,1fr);gap:4px}.chemdle .tile{font-size:10.5px;min-height:48px;padding:2px;border-radius:8px}.chemdle .tile.name{padding:2px 6px;justify-content:center}.chemdle .tile.name .small{display:none}.chemdle-row.head span{font-size:10px}}.notif,.notif-btn{position:relative}.notif-count{position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--bad);color:#fff;font-size:10.5px;font-weight:700;line-height:17px;text-align:center;pointer-events:none}.notif-panel{position:absolute;right:0;top:calc(100% + 6px);width:min(360px,calc(100vw - 24px));max-height:min(70vh,520px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #00000029;z-index:60;overflow:hidden}.notif-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line)}.notif-empty{padding:16px 14px;margin:0}.notif-list{list-style:none;margin:0;padding:4px;overflow-y:auto}.notif-item{display:flex;gap:10px;align-items:flex-start;width:100%;padding:10px;border:0;border-radius:8px;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.notif-item:hover,.notif-item:focus-visible{background:var(--surface-2)}.notif-item.unread{background:var(--brand-soft)}.notif-item.unread:hover{background:var(--surface-3)}.notif-icon{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-3);color:var(--ink-2)}.notif-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.notif-title{font-weight:600;font-size:14px;overflow-wrap:anywhere}.notif-body{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.notif-dot{flex:none;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--brand)}@media(max-width:560px){.notif-panel{position:fixed;right:12px;left:12px;top:60px;width:auto}}.report .report-top{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-bottom:14px;border-left:5px solid var(--line-strong)}.report .report-top.grade-strong{border-left-color:var(--ok)}.report .report-top.grade-good{border-left-color:var(--warn)}.report .report-top.grade-review{border-left-color:var(--bad)}.report-verdict{flex:1;min-width:220px}.report-verdict h2{margin:0 0 4px;font-size:1.25rem}.report-verdict p{margin:0;color:var(--ink-2)}.report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.report-stats .stat .v{font-size:1.4rem}.report-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px;margin-bottom:14px;align-items:start}@media(max-width:860px){.report-grid{grid-template-columns:1fr}}.report-h{font-size:1.1rem;margin:0 0 10px}.report-qs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.report-q{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:10px;background:var(--surface-2)}.report-q.bad{background:var(--bad-soft)}.report-mark{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;background:var(--surface-3);color:var(--ink-2)}.report-q.ok .report-mark{background:var(--ok);color:#fff}.report-q.bad .report-mark{background:var(--bad);color:#fff}.report-prompt{display:inline}.report-prompt p{display:inline;margin:0}.report-expl{margin-top:6px;padding:8px 10px;background:var(--surface);border-radius:8px}.report-skills,.report-mistakes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.report-skills li{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:14px}.report-topic{margin-bottom:12px}.report-list{list-style:none;margin:0;padding:0}.report-list a{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 6px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.report-list li:first-child a{border-top:0}.report-list a:hover .report-title{color:var(--brand);text-decoration:underline}.report-title{font-weight:600;overflow-wrap:anywhere}.report-score{font-weight:800;min-width:44px;text-align:right}.report-dot{width:12px;height:12px;border-radius:50%;background:var(--line-strong)}.report-dot.strong{background:var(--ok)}.report-dot.good{background:var(--warn)}.report-dot.review{background:var(--bad)}.report-dot.started{background:transparent;border:2px solid var(--line-strong)}@media(max-width:560px){.report-list a{grid-template-columns:12px minmax(0,1fr) auto}.report-list a .tiny{display:none}}@media print{.report .card{break-inside:avoid;box-shadow:none}.report-grid{grid-template-columns:1fr}}.report .btn-row .btn{white-space:normal;text-align:left;max-width:100%;height:auto;min-height:40px}.ptq-setup{display:flex;flex-direction:column;gap:18px;max-width:760px}.ptq-modes{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.ptq-mode{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px;border:2px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.ptq-mode.on{border-color:var(--brand);background:var(--brand-soft)}.ptq-mode svg{color:var(--brand)}.ptq-game{display:flex;flex-direction:column;gap:10px}.ptq-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;position:sticky;top:64px;z-index:5}.ptq-score{font-size:1.1rem;white-space:nowrap}.ptq-score strong{font-size:1.6rem;font-family:var(--font-display)}.ptq-clock{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-variant-numeric:tabular-nums;padding:4px 10px;border-radius:999px;background:var(--surface-2)}.ptq-clock.low{background:var(--bad-soft);color:var(--bad)}.ptq-input{display:flex;gap:8px;flex:1;min-width:260px}.ptq-input .input{flex:1;min-width:0;font-size:1.05rem}.ptq-msg{min-height:1.5em;margin:0}.ptq-table{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:3px}.ptq-gap{height:8px}.ptq-cell{aspect-ratio:1 / 1.1;border-radius:6px;border:1.5px dashed var(--line-strong);padding:2px 4px;display:flex;flex-direction:column;justify-content:space-between;min-width:0;overflow:hidden;color:var(--ink);background:var(--surface)}.ptq-cell .z{font-size:.6rem;opacity:.7;line-height:1}.ptq-cell .sym{font-weight:800;font-size:1.05rem;line-height:1;text-align:center}.ptq-cell .nm{font-size:.5rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ptq-cell.found,.ptq-cell.right{border:1px solid color-mix(in srgb,var(--ink) 14%,transparent);color:#0f1b2d}.ptq-cell.right{box-shadow:inset 0 0 0 2px var(--ok)}.ptq-cell.wrong,.ptq-cell.missed{border:1px solid var(--bad);background:var(--bad-soft);color:var(--bad)}.ptq-cell.target{border:2px solid var(--brand);background:var(--brand-soft);color:var(--brand-strong);animation:ptq-pulse 1.2s ease-in-out infinite}.ptq-cell.flash{animation:ptq-pop .5s ease}@keyframes ptq-pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--brand) 25%,transparent)}}@keyframes ptq-pop{0%{transform:scale(1.35)}to{transform:none}}@media(prefers-reduced-motion:reduce){.ptq-cell.target,.ptq-cell.flash{animation:none}}@media(max-width:760px){.ptq-table{gap:2px}.ptq-cell{border-radius:3px;padding:1px}.ptq-cell .nm{display:none}.ptq-cell .z{font-size:.45rem}.ptq-cell .sym{font-size:.68rem}.ptq-bar{top:56px;gap:8px}.ptq-input{min-width:100%}}@media(max-width:760px){.ptq-table[style*="repeat(8"] .ptq-cell .sym{font-size:1.1rem}.ptq-table[style*="repeat(8"] .ptq-cell .z{font-size:.6rem}}.rain{display:flex;flex-direction:column;gap:10px;max-width:760px}.rain-stats{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:10px 16px}.rain-stats>span{display:flex;flex-direction:column}.rain-stats strong{font-size:1.25rem;font-family:var(--font-display);font-variant-numeric:tabular-nums}.rain-stats .btn{margin-left:auto}.rain-lives{display:inline-flex;gap:4px;align-items:center;height:1.6rem}.rain-lives span{width:12px;height:12px;border-radius:50%;border:2px solid var(--line-strong)}.rain-lives span.on{background:var(--bad);border-color:var(--bad)}.rain-board{--tw: 76px;--th: 64px;position:relative;height:min(52vh,460px);min-height:280px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);overflow:hidden}.rain-board:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bad);opacity:.5}.rain-tile{position:absolute;width:var(--tw);height:var(--th);border-radius:8px;border:1px solid color-mix(in srgb,#0f1b2d 15%,transparent);color:#0f1b2d;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2px;line-height:1.1}.rain-tile strong{font-size:1.5rem;font-family:var(--font-display)}.rain-tile .nm{font-weight:700;font-size:.8rem;overflow-wrap:anywhere}.rain-tile.low{box-shadow:0 0 0 2px var(--bad)}.rain-pop{position:absolute;width:var(--tw);text-align:center;font-weight:800;color:var(--ok);pointer-events:none;animation:rain-pop .7s ease-out forwards}@keyframes rain-pop{to{transform:translateY(-24px);opacity:0}}@media(prefers-reduced-motion:reduce){.rain-pop{animation:none}}.rain-paused{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:color-mix(in srgb,var(--surface) 88%,transparent)}.rain-paused p{font-weight:800;font-size:1.3rem;margin:0}.rain-input{display:flex;gap:8px}.rain-input .input{flex:1;min-width:0;font-size:1.1rem}.rain-msg{margin:0;min-height:1.5em}.rain-msg.miss{color:var(--bad)}.rain-over{display:flex;flex-direction:column;gap:14px;max-width:760px}.rain-over h2{margin:0}.rain-practice{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.rain-practice li{display:flex;flex-direction:column;align-items:center;width:84px;padding:6px 4px;border-radius:8px;color:#0f1b2d;border:1px solid color-mix(in srgb,#0f1b2d 12%,transparent)}.rain-practice strong{font-size:1.3rem}@media(max-width:560px){.rain-board{--tw: 62px;--th: 54px;height:min(44vh,380px);min-height:240px}.rain-tile strong{font-size:1.2rem}.rain-tile .nm{font-size:.68rem}.rain-stats{gap:14px}}.buddies-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}@media(max-width:860px){.buddies-grid{grid-template-columns:1fr}}.buddy-list,.buddy-rows,.buddy-pick{list-style:none;margin:0;padding:0}.buddy-list a{display:flex;align-items:center;gap:10px;padding:10px 6px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none;border-radius:8px}.buddy-list li:first-child a{border-top:0}.buddy-list a:hover{background:var(--surface-2)}.buddy-list a .cls-person{flex:1;min-width:0}.buddy-list a.unread strong{color:var(--brand-strong)}.buddy-preview{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.buddy-list .cls-person-text{min-width:0}.buddy-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.buddy-unread{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--brand);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center}.buddy-rows li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);flex-wrap:wrap}.buddy-rows li:first-child{border-top:0}.buddy-incoming{border-color:var(--brand)}.buddy-at{font-weight:800;color:var(--muted)}.buddy-setting{border:0;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}.buddy-rules{margin:0;padding-left:18px;color:var(--ink-2)}.buddy-rules li{margin:4px 0}.buddy-chat-page{max-width:760px}.buddy-chat{display:flex;flex-direction:column;padding:0;overflow:hidden;height:min(78vh,760px);min-height:420px}.buddy-chat-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}.buddy-chat-who{color:var(--ink);text-decoration:none;min-width:0}.buddy-menu{position:relative}.buddy-menu-panel{position:absolute;right:0;top:calc(100% + 4px);z-index:10;display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:6px;min-width:190px}.buddy-menu-panel .btn{justify-content:flex-start}.danger-text{color:var(--bad)!important}.buddy-msgs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:2px;background:var(--surface-2)}.buddy-older{align-self:center;margin-bottom:8px}.buddy-empty{text-align:center;margin:auto;max-width:340px}.buddy-day{text-align:center;margin:10px 0 6px}.buddy-msg{display:flex;flex-direction:column;max-width:78%;margin-bottom:6px}.buddy-msg.mine{align-self:flex-end;align-items:flex-end}.buddy-msg.theirs{align-self:flex-start;align-items:flex-start}.buddy-bubble{padding:8px 12px;border-radius:16px;background:var(--surface);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:6px}.buddy-msg.mine .buddy-bubble{background:var(--brand);color:#fff;border-color:var(--brand);border-bottom-right-radius:4px}.buddy-msg.theirs .buddy-bubble{border-bottom-left-radius:4px}.buddy-share{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--surface-2);color:var(--ink);text-decoration:none;border:1px solid var(--line);white-space:normal}.buddy-share>span{display:flex;flex-direction:column;min-width:0}.buddy-msg.mine .buddy-share{background:#fff;color:#0f1b2d}.buddy-time{display:flex;gap:8px;margin-top:2px}.buddy-cant{padding:12px;margin:0;border-top:1px solid var(--line)}.buddy-compose{border-top:1px solid var(--line);padding:8px 10px;background:var(--surface)}.buddy-compose-row{display:flex;gap:6px;align-items:flex-end}.buddy-compose-row textarea{flex:1;min-width:0;resize:none;max-height:140px;min-height:0;height:42px;line-height:1.4;padding-top:9px;padding-bottom:9px}.buddy-warn{margin:0 0 6px;color:var(--bad)}.buddy-attach{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding:4px 8px;background:var(--brand-soft);border-radius:8px}.buddy-pick{margin-top:10px;max-height:50vh;overflow-y:auto}.buddy-pick button{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.buddy-pick button:hover,.buddy-pick button:focus-visible{background:var(--surface-2)}.buddy-quote{margin:0;padding:8px 12px;border-left:3px solid var(--line-strong);background:var(--surface-2);border-radius:6px;white-space:pre-wrap}.mod-chat{list-style:none;margin:0;padding:8px 10px;background:var(--surface-2);border-radius:8px;display:flex;flex-direction:column;gap:4px;font-size:14px}.mod-chat li.reported{background:var(--bad-soft);border-radius:6px;padding:2px 6px;font-weight:600}@media(max-width:560px){.buddy-chat{height:calc(100dvh - 140px);border-radius:0;margin:0 -16px;border-left:0;border-right:0}.buddy-msg{max-width:88%}}.ptq-label{font-size:.85rem;font-weight:700}.ptq-versions{display:flex;flex-wrap:wrap;gap:6px}.ptq-chip{padding:6px 12px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer}.ptq-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);font-weight:700}.ptq-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.ptq-opt{display:flex;flex-direction:column;gap:6px;min-width:0}.ptq-opt .seg{flex-wrap:wrap}.ptq-custom{display:flex;flex-direction:column;gap:12px;padding:12px;border:1px dashed var(--line-strong);border-radius:10px}.ptq-custom input[type=number]{width:90px}.ptq-checks{display:flex;flex-wrap:wrap;gap:6px}.ptq-check{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:8px;border:1px solid var(--line);font-size:.85rem;cursor:pointer;color:var(--ink)}.ptq-check:has(input[style]),.ptq-check[style]{color:#0f1b2d}.ptq .tabs{margin-bottom:14px}.et-tests{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.et-card{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.et-rules{margin:0;padding-left:18px;color:var(--ink-2)}.et-best{display:flex;gap:12px;align-items:center}.et-run{display:flex;flex-direction:column;gap:10px;max-width:900px}.et-progress{height:6px;border-radius:3px;background:var(--surface-3);overflow:hidden}.et-progress span{display:block;height:100%;background:var(--brand);transition:width .2s}.et-q{display:flex;flex-direction:column;gap:12px}.et-show{font-family:var(--font-display);font-size:clamp(2.2rem,7vw,3.6rem);font-weight:800;text-align:center;padding:18px 0 6px}.et-ask{text-align:center;margin:0;font-weight:600;color:var(--ink-2)}.et-result{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.et-review{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.et-review li{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px;background:var(--surface-2)}.et-review li.bad{background:var(--bad-soft)}.et-review li.ok .report-mark{background:var(--ok);color:#fff}.et-review li.bad .report-mark{background:var(--bad);color:#fff}.medal{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:.85rem;font-weight:700;vertical-align:middle}.medal.sm{font-size:.75rem;padding:1px 8px}.medal.gold{background:#fff4cc;color:#8a6100}.medal.silver{background:#eceff3;color:#4a5568}.medal.bronze{background:#fbe3d3;color:#8a4513}.profile-test-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-test-list li{display:flex;gap:12px;align-items:center}.profile-test-pct{font-family:var(--font-display);font-weight:800;font-size:1.5rem;min-width:64px}.acct{position:relative}.account-btn.needs{box-shadow:inset 0 0 0 2px var(--brand)}.acct-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:230px;padding:6px;display:flex;flex-direction:column;box-shadow:0 12px 32px #00000029}.acct-head{display:flex;flex-direction:column;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.acct-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.acct-item:hover,.acct-item:focus-visible{background:var(--surface-2)}.acct-item.primary{color:var(--brand-strong);font-weight:700}.acct-item.danger-text{border-top:1px solid var(--line);border-radius:0 0 8px 8px;margin-top:4px}.site-footer{display:flex;gap:10px;justify-content:center;align-items:center;padding:28px 16px 12px;color:var(--muted);font-size:.85rem}@media(max-width:560px){.acct-menu{position:fixed;right:12px;left:12px;top:60px;min-width:0}}.ai-stats{display:flex;flex-wrap:wrap;gap:8px}.ai-stat{display:flex;flex-direction:column;padding:6px 10px;border-radius:8px;background:var(--surface-2);min-width:92px}.ai-stat.warn{background:var(--warn-soft)}.ai-flag.high{border-left:4px solid var(--bad)}.ai-flag.medium,.fb-item.report{border-left:4px solid var(--warn)}.et-found{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.et-found li{padding:4px 10px;border-radius:8px;color:#0f1b2d;font-size:.9rem;border:1px solid color-mix(in srgb,#0f1b2d 12%,transparent)}.et-found li:first-child:not(.missed li){animation:ptq-pop .4s ease}.acct{display:flex;gap:6px;align-items:center}.lb-boards{display:flex;flex-direction:column;gap:10px}.lb-group{display:flex;flex-direction:column;gap:6px}.lb-card{max-width:760px}.lb-list{list-style:none;margin:0;padding:0}.lb-list li{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 6px;border-top:1px solid var(--line)}.lb-list li:first-child{border-top:0}.lb-list li.me{background:var(--brand-soft);border-radius:8px}.lb-rank{font-weight:800;font-size:1.1rem;text-align:center;font-variant-numeric:tabular-nums}.lb-who{color:var(--ink);text-decoration:none;min-width:0}.lb-value{font-weight:800;font-variant-numeric:tabular-nums}.lb-hide{margin-left:8px}.el-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:14px;align-items:start}@media(max-width:900px){.el-layout{grid-template-columns:1fr}}.el-mini{display:grid;grid-template-columns:repeat(18,1fr);gap:2px;margin-bottom:10px}.el-mini span{aspect-ratio:1;border-radius:2px;opacity:.55}.el-mini span.on{background:var(--ink);opacity:1;outline:2px solid var(--brand)}.el-neighbors{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:.9rem}.el-chips{display:flex;flex-wrap:wrap;gap:6px}.el-chip{padding:4px 9px;border-radius:8px;color:#0f1b2d;text-decoration:none;font-size:.9rem;border:1px solid color-mix(in srgb,#0f1b2d 12%,transparent)}.el-chip.on{outline:2px solid var(--brand)}.el-compounds{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.el-compounds a{text-decoration:none;color:var(--ink)}.el-index{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.el-index a{display:flex;flex-direction:column;padding:8px;border-radius:10px;color:#0f1b2d;text-decoration:none;border:1px solid color-mix(in srgb,#0f1b2d 12%,transparent);min-height:86px}.el-index a strong{font-size:1.5rem;font-family:var(--font-display)}.el-index a .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-online-code{font-family:var(--font-display);font-size:2.6rem;font-weight:800;letter-spacing:.18em;padding:8px 0;-webkit-user-select:all;user-select:all}.chemdle-hints{margin-top:10px}.chemdle-hints ul{list-style:none;padding:0;margin:0 0 6px;display:grid;gap:4px}.cls-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cls-cal-head{font-size:.75rem;font-weight:700;color:var(--muted);text-align:center;padding:4px 0}.cls-cal-day{min-height:84px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:2px;min-width:0}.cls-cal-day.out{opacity:.45}.cls-cal-day.today{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.cls-cal-num{font-size:.75rem;font-weight:700}.cls-cal-item{font-size:.72rem;line-height:1.25;padding:2px 4px;border-radius:4px;background:var(--brand-soft);color:inherit;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cls-cal-item.posts{background:var(--surface-2, var(--line))}@media(max-width:640px){.cls-cal-day{min-height:56px}.cls-cal-item{font-size:0;padding:0;height:6px}.cls-cal-head{font-size:.65rem}}.cls-rubric{width:100%;border-collapse:collapse;margin:6px 0}.cls-rubric td,.cls-rubric th{border-top:1px solid var(--line);padding:6px 4px;text-align:left;vertical-align:middle}.cls-rubric .num{text-align:right;white-space:nowrap}.cls-rubric input{width:64px;min-height:32px;padding:2px 6px;display:inline-block}.cls-rubric-edit{border:1px solid var(--line);border-radius:var(--radius);padding:10px;display:grid;gap:6px;margin:0}.live-player-chip.team-1,.live-team.team-1,.live-team-badge.team-1{--team: #e03131}.live-player-chip.team-2,.live-team.team-2,.live-team-badge.team-2{--team: #1971c2}.live-player-chip.team-3,.live-team.team-3,.live-team-badge.team-3{--team: #2f9e44}.live-player-chip.team-4,.live-team.team-4,.live-team-badge.team-4{--team: #e8a700}.live-player-chip[class*=team-]{box-shadow:inset 4px 0 0 var(--team)}.live-team-badge{display:inline-block;padding:4px 14px;border-radius:999px;background:var(--team);color:#fff;font-weight:800}.live-teams{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:10px 0}.live-team{border:2px solid var(--team);border-radius:var(--radius-lg);padding:8px 14px;display:grid;justify-items:center;min-width:120px;background:var(--surface);color:var(--ink, inherit)}.live-team b{font-size:1.6rem;line-height:1.1;color:var(--team)}.live-team small{color:var(--muted)}.live-team.mine{box-shadow:0 0 0 3px var(--team)}.ut-panel{display:grid;gap:6px}.ut-row{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:8px;color:inherit;text-decoration:none}.ut-row:hover{background:var(--brand-soft)}.ut-step{width:26px;height:26px;flex:none;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.8rem;border:2px solid var(--line);color:var(--muted)}.ut-step.done{background:var(--ok);border-color:var(--ok);color:#fff}.ut-bar{position:sticky;top:64px;z-index:5;margin-bottom:12px}.ut-growth{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}.ut-growth strong{font-size:1.3rem}.ut-review{display:grid;gap:4px;justify-items:start}.ut-review>.card,.ut-review>div:last-child{width:100%}.topic-tests{display:flex;gap:4px;flex-wrap:wrap}.teach-classes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.teach-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer;max-width:100%}.teach-chip[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);font-weight:700}.teach-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;vertical-align:middle}.teach-dot.lg{width:14px;height:14px}.teach-badge{background:var(--warn);color:#fff;border-radius:999px;font-size:.7rem;font-weight:800;padding:1px 6px}.teach-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:8px}.teach-tabs{margin-bottom:16px;overflow-x:auto}.teach-tabs button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.teach-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.teach-stat.warn .v{color:var(--warn)}.teach-stat.bad .v{color:var(--bad)}.teach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.teach-card{border-top:5px solid var(--brand);display:grid;gap:10px}.teach-kv{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:0}.teach-kv div{display:flex;justify-content:space-between;gap:6px;font-size:.9rem}.teach-kv dt{color:var(--muted)}.teach-kv dd{margin:0;font-weight:700}.teach-kv dd.warn,td.warn{color:var(--warn);font-weight:700}.teach-kv dd.bad,td.bad{color:var(--bad);font-weight:700}.teach-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}.teach-add{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.teach-table td,.teach-table th{vertical-align:middle}.teach-group{min-height:32px;padding:2px 8px;max-width:140px}.teach-bulk{background:var(--brand-soft);padding:8px 10px;border-radius:10px}.teach-gb-wrap{max-height:70vh}.teach-gb th.sticky,.teach-gb td.sticky,.teach-att-hist .sticky{position:sticky;left:0;background:var(--surface);z-index:1;min-width:140px}.teach-gb thead th{position:sticky;top:0;background:var(--surface);z-index:2}.teach-gb thead th.sticky{z-index:3}.teach-cell input{width:64px;min-height:30px;padding:2px 6px;text-align:right}.teach-cell.missing input,.teach-key.missing{background:color-mix(in srgb,var(--bad) 14%,transparent)}.teach-cell.waiting input,.teach-key.waiting{background:color-mix(in srgb,var(--warn) 16%,transparent)}.teach-key{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle;border:1px solid var(--line)}.teach-att{list-style:none;padding:0;margin:0;display:grid;gap:6px}.teach-att li{display:grid;grid-template-columns:minmax(150px,1.4fr) auto minmax(100px,1fr);gap:10px;align-items:center;padding:4px 0;border-bottom:1px solid var(--line)}.teach-att-btns{display:flex;gap:4px}.teach-att-btns button{width:38px;height:34px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:800;cursor:pointer}.teach-att-btns button[aria-checked=true].att-present{background:var(--ok);border-color:var(--ok);color:#fff}.teach-att-btns button[aria-checked=true].att-late{background:var(--warn);border-color:var(--warn);color:#fff}.teach-att-btns button[aria-checked=true].att-absent{background:var(--bad);border-color:var(--bad);color:#fff}.teach-att-btns button[aria-checked=true].att-excused{background:var(--brand);border-color:var(--brand);color:#fff}.teach-att-note{min-height:34px;padding:4px 8px}.att-cell.att-present{color:var(--ok)}.att-cell.att-late{color:var(--warn)}.att-cell.att-absent{color:var(--bad);font-weight:800}.att-cell.att-excused{color:var(--brand)}@media(max-width:640px){.teach-att li{grid-template-columns:1fr auto}.teach-att-note{grid-column:1 / -1}}.teach-student{display:grid;gap:10px;margin-top:8px}.teach-student h4{margin:6px 0;font-size:.95rem}.teach-name{font-weight:700;text-align:left}.teach-reports{display:grid;gap:16px}.report-doc{display:grid;gap:12px}.report-doc h3{font-size:1rem;margin:0 0 4px}.report-doc-head{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:2px solid var(--line);padding-bottom:10px}.report-doc-big{display:flex;gap:18px}.report-doc-big div{display:grid;text-align:center}.report-doc-big span{font-family:var(--font-display);font-size:1.6rem;font-weight:800}.report-doc-big small{color:var(--muted);font-size:.75rem}.report-table{width:100%;font-size:.85rem}@media print{.teach .page-head,.teach-classes,.teach-head,.teach-tabs{display:none!important}.report-doc{break-after:page;box-shadow:none;border:0}}.teach{min-width:0}.teach-tabs{max-width:100%}.report-doc{min-width:0;overflow-x:auto}.report-doc-big{flex-wrap:wrap}@media print{.report-doc{overflow:visible}}.topic-card.locked{opacity:.78}.topic-card.locked .num{filter:grayscale(.6)}.kind-pick{border:0;padding:0;margin:0;display:grid;gap:8px}.kind-opt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer}.kind-opt.on{border-color:var(--brand);background:var(--brand-soft)}.kind-opt.off{opacity:.55;cursor:not-allowed}.kind-opt input{margin-top:4px}.meet-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}.meet{display:grid;gap:10px;min-width:0}.meet-text{white-space:pre-wrap;overflow-wrap:anywhere}.meet-counts{white-space:nowrap}.meet-people{list-style:none;padding:0;margin:0;display:grid;gap:6px}.meet-people li{flex-wrap:wrap}.meet-att{border-top:1px solid var(--line);padding-top:10px}.unit-picker{display:grid;gap:8px}.unit-picker summary{cursor:pointer}.unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px}.syl-unit{font-weight:700}.exam-qs>li{margin-bottom:18px;break-inside:avoid}.exam-choices{margin:4px 0}.exam-space{height:56px}.exam-key>li{margin-bottom:8px}@media print{.exam-sheet{break-after:page;border:0;box-shadow:none;padding:0}.exam-sheet:last-child{break-after:auto}.syllabus{border:0;box-shadow:none;padding:0}}.present{position:fixed;inset:0;z-index:200;background:var(--bg);display:grid;grid-template-rows:auto 4px 1fr auto}.present-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--line)}.present-where{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.present-progress{background:var(--line)}.present-progress span{display:block;height:100%;background:var(--brand);transition:width .2s}.present-slide{overflow:auto;padding:clamp(16px,4vw,56px) max(16px,calc((100vw - 1100px)/2));font-size:clamp(1.05rem,1.6vw,1.45rem);min-width:0}.present-h{font-size:1.6em;margin-top:0}.present-title h1{font-size:clamp(2rem,5vw,3.6rem);margin:8px 0}.present-lead{font-size:1.2em;color:var(--muted, inherit)}.present-points li{margin-bottom:.6em;font-size:1.15em}.present-nav{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--line)}@media(max-width:600px){.present-bar .btn:last-child{display:none}}.trash-list summary{cursor:pointer}.trash-list ul{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}.trash-list li{flex-wrap:wrap}.cls-card-wrap{position:relative}.cls-card-del{position:absolute;top:8px;right:8px;z-index:1;background:#ffffffe6}.nb-page{--nb-paper: #fffdf6;--nb-grid: rgba(47, 85, 212, .09);--nb-margin: rgba(214, 51, 108, .45);--nb-ink: #1d2a4d;--nb-pencil: #2f3b66;display:grid;justify-items:center;gap:14px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .nb-page{--nb-paper: #1b2235;--nb-grid: rgba(127, 156, 255, .1);--nb-margin: rgba(255, 120, 160, .35);--nb-ink: #e9eefa;--nb-pencil: #c9d4ff}}:root[data-theme=dark] .nb-page{--nb-paper: #1b2235;--nb-grid: rgba(127, 156, 255, .1);--nb-margin: rgba(255, 120, 160, .35);--nb-ink: #e9eefa;--nb-pencil: #c9d4ff}.nb-hand{font-family:Caveat,Segoe Print,Bradley Hand,cursive;color:var(--nb-pencil);font-weight:700}.nb{width:min(100%,520px);display:grid;gap:12px;perspective:1600px}.nb.wide.open{width:min(100%,1060px)}.nb-cover{position:relative;display:grid;place-items:center;gap:18px;width:100%;aspect-ratio:3 / 4;max-height:74vh;border:0;border-radius:6px 14px 14px 6px;cursor:pointer;padding:32px 24px;color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.38) 0 22px,transparent 22px),radial-gradient(circle at 30% 40%,rgba(255,255,255,.35) 0 2px,transparent 3px) 0 0 / 23px 19px,radial-gradient(circle at 70% 20%,rgba(0,0,0,.3) 0 3px,transparent 4px) 0 0 / 31px 27px,radial-gradient(circle at 50% 80%,rgba(255,255,255,.25) 0 4px,transparent 5px) 0 0 / 43px 37px,radial-gradient(circle at 20% 60%,rgba(0,0,0,.22) 0 6px,transparent 7px) 0 0 / 57px 49px,radial-gradient(circle at 80% 70%,rgba(255,255,255,.18) 0 9px,transparent 10px) 0 0 / 71px 61px,var(--nb-cover);box-shadow:0 20px 40px #0a143240,inset -6px 0 12px #00000026;transform-origin:left center;animation:nb-in .5s ease-out}.nb-cover:focus-visible{outline:3px solid var(--brand);outline-offset:4px}.nb-cover-label{display:grid;gap:8px;width:min(100%,300px);background:#fffdf6;color:#1d2a4d;border-radius:10px;padding:16px 18px;box-shadow:0 2px #00000026;text-align:left;border:2px solid #1d2a4d}.nb-cover-kicker{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;text-align:center;border-bottom:2px solid #1d2a4d;padding-bottom:6px}.nb-cover-name{font-size:2rem;line-height:1.1;text-align:center;color:#2f3b66;overflow-wrap:anywhere}.nb-cover-row{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(29,42,77,.35);font-size:.85rem}.nb-cover-row .nb-hand{color:#2f3b66;font-size:1.25rem}.nb-cover-avatar{border-radius:50%;padding:4px;background:#ffffffd9}.nb-cover-hint{opacity:.85}@keyframes nb-in{0%{transform:rotateY(-8deg) translateY(8px);opacity:0}to{transform:none;opacity:1}}.nb-spread{display:grid;grid-template-columns:1fr;filter:drop-shadow(0 16px 26px rgba(10,20,50,.2))}.nb.wide .nb-spread{grid-template-columns:1fr 1fr}.nb.open .nb-spread{animation:nb-open .6s cubic-bezier(.2,.7,.2,1);transform-origin:left center}@keyframes nb-open{0%{transform:rotateY(55deg);opacity:.3}to{transform:none;opacity:1}}.nb-sheet{position:relative;min-width:0;min-height:560px;padding:22px 22px 34px 52px;color:var(--nb-ink);border-radius:4px 12px 12px 4px;display:grid;grid-template-rows:auto 1fr;gap:10px;background:linear-gradient(90deg,transparent 38px,var(--nb-margin) 38px 40px,transparent 40px),linear-gradient(var(--nb-grid) 1px,transparent 1px) 0 0 / 22px 22px,linear-gradient(90deg,var(--nb-grid) 1px,transparent 1px) 0 0 / 22px 22px,var(--nb-paper)}.nb.wide .nb-sheet.left{border-radius:12px 2px 2px 12px;box-shadow:inset -18px 0 22px -18px #00000059}.nb.wide .nb-sheet.right{border-radius:2px 12px 12px 2px;box-shadow:inset 18px 0 22px -18px #00000059}.nb.wide .nb-sheet.left:after{content:"";position:absolute;top:18px;bottom:18px;right:-7px;width:14px;z-index:1;background:radial-gradient(circle,#9aa3b5 0 3px,transparent 4px) 0 0 / 14px 26px repeat-y}.nb-blank{background:var(--nb-paper)}.nb-sheet-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-bottom:2px solid var(--nb-margin)}.nb-sheet-head h2{margin:0;font-size:2rem;line-height:1.1}.nb-meta{color:var(--muted)}.nb-sheet-body{min-width:0;display:grid;align-content:start;gap:10px;overflow-wrap:anywhere}.nb-pageno{position:absolute;bottom:10px;right:18px;color:var(--muted)}.nb-label{margin:6px 0 0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.nb-lines{margin:0;line-height:22px}.nb-note{margin:0;font-size:1.35rem}.nb-owner{display:flex;gap:16px;align-items:center}.nb-photo{position:relative;padding:6px;background:#fff;box-shadow:0 2px 6px #0003;transform:rotate(-3deg);flex:0 0 auto}.nb-photo .avatar{border-radius:2px}.nb-photo:before,.nb-photo:after{content:"";position:absolute;width:40px;height:14px;background:#ffe68cbf}.nb-photo:before{top:-6px;left:-12px;transform:rotate(-35deg)}.nb-photo:after{bottom:-6px;right:-12px;transform:rotate(-35deg)}.nb-name{font-size:2.3rem;line-height:1}.nb-stamps{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.nb-stamp{border:2px solid;border-radius:4px;padding:0 6px;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;transform:rotate(-4deg);opacity:.85}.nb-actions{margin-top:8px}.nb-table{width:100%;border-collapse:collapse}.nb-table th,.nb-table td{border:1.5px solid var(--nb-pencil);padding:4px 8px;text-align:left;font-weight:500;vertical-align:top}.nb-table td{font-size:1.35rem;white-space:nowrap;text-align:right}.nb-toc{list-style:none;margin:0;padding:0;display:grid;gap:2px;counter-reset:toc}.nb-toc li{display:flex;align-items:baseline;gap:6px;line-height:22px;counter-increment:toc}.nb-toc li:before{content:counter(toc) ".";width:1.8em;color:var(--muted);font-size:.85em;flex:0 0 auto}.nb-toc a{color:inherit;text-decoration:none}.nb-toc a:hover{text-decoration:underline}.nb-toc li.done a{text-decoration:line-through;text-decoration-color:var(--nb-margin)}.nb-toc .nb-dots{flex:1;border-bottom:1px dotted var(--muted);transform:translateY(-4px);min-width:12px}.nb-toc .nb-hand{font-size:1.2rem;min-width:2.2em;text-align:right}.nb-stickers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:14px}.nb-sticker{display:grid;place-items:center;gap:4px;aspect-ratio:1;border-radius:50%;padding:10px;text-align:center;font-size:.75rem;font-weight:700;background:radial-gradient(circle at 35% 30%,#fff 0 18%,transparent 19%),var(--brand-soft);color:var(--brand-strong);border:3px solid #fff;box-shadow:0 3px 8px #0000002e;transform:rotate(var(--tilt, 0deg))}.nb-sticker:nth-child(3n+2){background:radial-gradient(circle at 35% 30%,#fff 0 18%,transparent 19%),var(--ok-soft);color:var(--ok)}.nb-sticker:nth-child(3n+3){background:radial-gradient(circle at 35% 30%,#fff 0 18%,transparent 19%),var(--accent-soft);color:var(--accent)}.nb-entries{margin:0;padding-left:20px;display:grid;gap:14px}.nb-entries .nb-hand{font-size:1.2rem}.nb-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.nb-tabs{display:flex;gap:4px;overflow-x:auto;min-width:0;padding:2px}.nb-tab{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:.8rem;white-space:nowrap;cursor:pointer}.nb-tab[aria-current=page]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.nb-fine{max-width:420px;text-align:center}.person-link{color:inherit;text-decoration:none}.person-link:hover{text-decoration:underline}@media(max-width:520px){.nb-sheet{padding:18px 14px 34px 46px;min-height:0}.nb-sheet-head h2{font-size:1.7rem}.nb-owner{flex-direction:column;align-items:flex-start}.nb-table td{white-space:normal}.nb-tabs{display:none}}@media(prefers-reduced-motion:reduce){.nb-cover,.nb.open .nb-spread{animation:none}}.fun-fact{display:grid;gap:8px;border-left:5px solid var(--accent);background:linear-gradient(135deg,var(--accent-soft),var(--surface) 55%)}.fun-fact-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fun-fact-badge{font-size:1.3rem}.fun-fact-text{margin:0;font-size:1.02rem;line-height:1.55}.sb-explain{display:grid;gap:8px;margin-top:10px}.sb-recs ul{margin:4px 0 0;padding-left:18px}.sb-learn a{font-weight:600}.sb-drill-q{display:grid;gap:12px}.sb-drill-text{font-size:1.12rem;line-height:1.55;margin:0}.sb-drill-choices{display:grid;gap:8px}.sb-drill-choices button{text-align:left;justify-content:flex-start}.sb-drill-choices button.right{border-color:var(--ok);background:var(--ok-soft)}.sb-drill-choices button.wrong{border-color:var(--bad);background:var(--bad-soft, rgba(224, 49, 49, .08))}.sb-drill-filters{display:flex;gap:8px;flex-wrap:wrap}.sb-drill-filters .input{flex:1 1 160px;min-width:0}.sb-drill-score{display:flex;gap:12px;flex-wrap:wrap}.signin-wall{text-align:left}.signin-wall-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:var(--brand-soft);color:var(--brand)}.signin-wall-list{list-style:none;padding:0;margin:0;display:grid;gap:6px}.signin-wall-list li{display:flex;gap:8px;align-items:center}.signin-wall-list svg{color:var(--ok);flex:0 0 auto}.legal h2{margin-top:28px;font-size:1.2rem}.legal table{width:100%}.guest-note{margin:0 0 16px}span.num[style*=background]{background-image:linear-gradient(#00000052,#00000052)!important}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .el-chip{color:#eef2fb;border-color:#ffffff24}}:root[data-theme=dark] .el-chip{color:#eef2fb;border-color:#ffffff24}.next-up .muted{color:var(--ink-2)}.resume-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px;padding:8px 12px;border-radius:10px;background:var(--brand-soft);color:var(--ink);font-size:.92rem;animation:rise .35s ease both}.resume-note>span{flex:1 1 auto}.resume-note .btn{padding:4px 6px;min-height:0}.continue-card{display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:var(--radius-lg, 16px);border:1px solid var(--line);background:var(--surface);color:inherit;text-decoration:none;box-shadow:var(--shadow-1);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;animation:rise .4s ease both}.continue-card:hover{transform:translateY(-2px);border-color:var(--brand);box-shadow:0 10px 24px -14px color-mix(in srgb,var(--brand) 60%,transparent)}.continue-ring{--p: 0;flex:none;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:var(--brand);background:radial-gradient(closest-side,var(--surface) 76%,transparent 78% 100%),conic-gradient(var(--brand) calc(var(--p) * 360deg),var(--brand-soft) 0)}.continue-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.continue-text strong{font-size:1.08rem}.continue-eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--brand)}.continue-go{flex:none}@media(max-width:560px){.continue-go{display:none}}.row-meter{display:block;height:3px;margin-top:6px;border-radius:3px;background:var(--brand-soft);overflow:hidden;max-width:220px}.row-meter>span{display:block;height:100%;background:var(--brand)}.toast{display:flex;align-items:center;gap:12px}.toast-action{background:none;border:0;color:inherit;font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:2px 4px}:root{--paper-grid: rgba(47, 85, 212, .055);--spring: cubic-bezier(.34, 1.4, .64, 1)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper-grid: rgba(140, 165, 255, .06)}}:root[data-theme=dark]{--paper-grid: rgba(140, 165, 255, .06)}.main>.page,.main>div>.page{animation:page-in .38s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.grid>*,.shelf>*,.forum-list>li{animation:rise-in .45s var(--ease) both}.grid>:nth-child(2),.shelf>:nth-child(2){animation-delay:40ms}.grid>:nth-child(3),.shelf>:nth-child(3){animation-delay:80ms}.grid>:nth-child(4),.shelf>:nth-child(4){animation-delay:.12s}.grid>:nth-child(5),.shelf>:nth-child(5){animation-delay:.16s}.grid>:nth-child(6),.shelf>:nth-child(6){animation-delay:.2s}.grid>:nth-child(n+7){animation-delay:.24s}@keyframes rise-in{0%{opacity:0;transform:translateY(12px) scale(.985)}}.bar>span{transform-origin:left;animation:bar-fill .9s var(--ease) both;transition:width .5s var(--ease)}@keyframes bar-fill{0%{transform:scaleX(0)}}.btn{transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),transform .12s var(--ease),box-shadow var(--dur) var(--ease)}.btn.primary{box-shadow:inset 0 -2px #0000002e}.btn.primary:hover{transform:translateY(-1px);box-shadow:inset 0 -2px #0000002e,0 6px 16px -8px color-mix(in srgb,var(--brand) 70%,transparent)}.btn:active,.btn.primary:active{transform:translateY(1px) scale(.98)}.nav-link{position:relative;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),padding var(--dur) var(--ease)}.nav-link:hover{padding-left:13px}.nav-link[aria-current=page]:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--brand);animation:nav-mark .3s var(--spring) both}@keyframes nav-mark{0%{transform:scaleY(0)}}.brand{transition:letter-spacing .3s var(--ease)}.brand:hover{letter-spacing:-.015em}.toasts{right:auto;left:50%;transform:translate(-50%);align-items:center}.hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;background:linear-gradient(var(--paper-grid) 1px,transparent 1px) 0 0 / 22px 22px,linear-gradient(90deg,var(--paper-grid) 1px,transparent 1px) 0 0 / 22px 22px,var(--surface);border:1.5px solid var(--ink);box-shadow:6px 6px 0 var(--ink);border-radius:20px}.hero-copy{min-width:0;grid-column:1;grid-row:1}.hero h1{letter-spacing:-.03em;line-height:1.02}.hero .eyebrow{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--ink);color:var(--bg);letter-spacing:.08em}.hero-art{grid-column:2;grid-row:1;position:relative;width:clamp(180px,26vw,300px);aspect-ratio:1}.atom{width:100%;height:100%;overflow:visible}.atom .orbit{fill:none;stroke:var(--ink);stroke-width:1.6;opacity:.35;stroke-dasharray:3 5}.atom .electron{fill:var(--brand);offset-rotate:0deg;animation:orbit 3.6s linear infinite}.atom .electron.e1{fill:var(--accent);animation-duration:4.4s;animation-delay:-1.2s}.atom .electron.e2{fill:var(--ok);animation-duration:5.2s;animation-delay:-2.6s}@keyframes orbit{0%{offset-distance:0%}to{offset-distance:100%}}.atom .nucleus{transform-origin:150px 150px;animation:nucleus 2.8s ease-in-out infinite}.atom .p{fill:var(--accent);stroke:var(--ink);stroke-width:1.5}.atom .n{fill:var(--surface);stroke:var(--ink);stroke-width:1.5}@keyframes nucleus{50%{transform:scale(1.06)}}.float-tile{position:absolute;display:grid;place-items:center;width:46px;height:50px;border-radius:8px;background:var(--surface);border:1.5px solid var(--ink);box-shadow:3px 3px 0 var(--ink);font-family:var(--font-display);font-weight:800;font-size:1.2rem;color:var(--ink);animation:drift 6s ease-in-out infinite}.float-tile small{position:absolute;top:2px;left:5px;font-size:.6rem;font-weight:700;color:var(--muted)}.float-tile.t1{top:2%;left:4%;background:var(--cat-reactive-nonmetal)}.float-tile.t2{top:8%;right:0;background:var(--cat-halogen);animation-delay:-1.5s}.float-tile.t3{bottom:6%;left:0;background:var(--cat-noble-gas);animation-delay:-3s}.float-tile.t4{bottom:2%;right:8%;background:var(--cat-alkali-metal);animation-delay:-4.5s}@keyframes drift{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-9px) rotate(3deg)}}@media(max-width:760px){.hero{grid-template-columns:1fr;box-shadow:4px 4px 0 var(--ink)}.hero-art{grid-column:1;grid-row:1;width:132px;justify-self:end;margin:-8px -8px -40px 0;opacity:.9}.hero-art .float-tile{display:none}.hero-copy{grid-row:2}}.path-map{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:22px 14px;position:relative}.path-node{animation:rise-in .45s var(--ease) both}.path-node a{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:inherit;text-decoration:none;padding:6px;border-radius:14px}.path-node a:hover .path-tile{transform:translateY(-4px) rotate(-2deg);box-shadow:5px 7px 0 var(--ink)}.path-tile{position:relative;width:66px;height:72px;border-radius:12px;display:grid;place-items:center;background:var(--surface);border:1.5px solid var(--line-strong);color:var(--muted);transition:transform .25s var(--spring),box-shadow .25s var(--ease);font-family:var(--font-display)}.path-tile small{position:absolute;top:4px;left:7px;font-size:.66rem;font-weight:700;font-family:var(--font-body)}.path-tile b{font-size:1.6rem;font-weight:800;line-height:1}.path-ring{position:absolute;left:8px;right:8px;bottom:6px;height:4px;border-radius:4px;background:color-mix(in srgb,var(--ink) 12%,transparent);overflow:hidden}.path-ring:after{content:"";position:absolute;inset:0;width:calc(var(--p) * 100%);background:var(--ink);border-radius:inherit}.path-node.done .path-tile,.path-node.started .path-tile,.path-node.current .path-tile,.path-node.open .path-tile{border-color:var(--ink);color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.path-node.done .path-tile{background:color-mix(in srgb,var(--c) 32%,var(--surface))}.path-node.started .path-tile{background:color-mix(in srgb,var(--c) 14%,var(--surface))}.path-node.current .path-tile{background:var(--brand);color:var(--brand-ink);border-color:var(--ink);animation:here 2.2s ease-in-out infinite}.path-node.current .path-ring{background:#ffffff4d}.path-node.current .path-ring:after{background:var(--brand-ink)}.path-node.later .path-tile{border-style:dashed}@keyframes here{0%,to{box-shadow:3px 3px 0 var(--ink),0 0 color-mix(in srgb,var(--brand) 45%,transparent)}50%{box-shadow:3px 3px 0 var(--ink),0 0 0 10px transparent}}.path-label{display:flex;flex-direction:column;line-height:1.25}.path-label strong{font-size:.92rem}.path-node.current .path-label strong{color:var(--brand)}.shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.shelf-tile{display:flex;gap:14px;align-items:flex-start;padding:14px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:inherit;text-decoration:none;transition:border-color var(--dur),transform .25s var(--spring),box-shadow var(--dur)}.shelf-tile:hover{border-color:var(--ink);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--ink)}.shelf-tile>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.shelf-el{position:relative;flex:none;width:54px;height:58px;border-radius:9px;display:grid;place-items:center;background:var(--tile);border:1.5px solid var(--ink);color:var(--ink);font-family:var(--font-display);transition:transform .35s var(--spring)}.shelf-tile:hover .shelf-el{transform:rotate(-6deg) scale(1.06)}.shelf-el small{position:absolute;top:2px;left:5px;font-size:.62rem;font-weight:700}.shelf-el b{font-size:1.45rem;font-weight:800}.top-chip{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px 0 8px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font-weight:800;font-size:.88rem;text-decoration:none;transition:border-color var(--dur),transform .2s var(--spring)}.top-chip:hover{border-color:var(--ink);color:var(--ink);transform:translateY(-1px)}.chemdle-tiles{display:inline-grid;grid-template-columns:repeat(3,7px);gap:2px}.chemdle-tiles i{width:7px;height:14px;border-radius:2px;background:var(--line-strong)}.chemdle-chip.solved .chemdle-tiles i{background:var(--ok)}.chemdle-chip.playing .chemdle-tiles i:nth-child(1){background:var(--ok)}.chemdle-chip.playing .chemdle-tiles i:nth-child(2){background:var(--warn)}.chemdle-chip.new .chemdle-tiles i{animation:tile-wave 2.4s ease-in-out infinite}.chemdle-chip.new .chemdle-tiles i:nth-child(2){animation-delay:.15s}.chemdle-chip.new .chemdle-tiles i:nth-child(3){animation-delay:.3s}@keyframes tile-wave{0%,60%,to{background:var(--line-strong);transform:none}20%{background:var(--ok);transform:translateY(-2px)}}.chemdle-chip.solved svg{color:var(--ok)}.chip-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}@media(max-width:760px){.top-chip-label{display:none}.top-chip{padding:0 8px}}.cal-panel{width:min(340px,calc(100vw - 24px))}.cal-panel .notif-head{gap:6px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:8px 10px 6px}.cal-wd{text-align:center;font-size:.7rem;font-weight:800;color:var(--muted);padding:2px 0}.cal-day{position:relative;height:36px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;display:grid;place-items:center;padding-bottom:6px}.cal-day:hover{background:var(--surface-2)}.cal-day[data-today]{color:var(--brand);font-weight:800;box-shadow:inset 0 0 0 1.5px var(--brand)}.cal-day[aria-pressed=true]{background:var(--ink);color:var(--bg)}.cal-dots{position:absolute;bottom:4px;left:0;right:0;display:flex;justify-content:center;gap:2px}.cal-dots i{width:5px;height:5px;border-radius:50%}.cal-list{border-top:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:auto}.cal-list-head{display:flex;justify-content:space-between;align-items:center;padding:8px 14px 2px}.cal-empty{padding:6px 14px 14px;margin:0}.cal-swatch{flex:none;width:4px;align-self:stretch;border-radius:3px}.cal-item.done .notif-title{text-decoration:line-through;color:var(--muted)}.cal-btn{position:relative}.cal-count{position:absolute;top:2px;right:2px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--brand);color:var(--brand-ink);font-size:10.5px;font-weight:700;line-height:17px;text-align:center;pointer-events:none}.cal-item{display:flex;gap:10px;align-items:flex-start;width:100%;padding:10px;border:0;border-radius:8px;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.cal-item:hover,.cal-item:focus-visible{background:var(--surface-2)}.notif-panel{animation:pop-in .18s var(--ease) both;transform-origin:top right}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}}.tutor-fab{position:fixed;right:18px;bottom:18px;z-index:70;display:inline-flex;align-items:center;gap:10px;padding:7px 16px 7px 7px;border-radius:999px;border:1.5px solid var(--ink);background:var(--surface);color:var(--ink);font:inherit;font-weight:800;font-size:.92rem;cursor:pointer;box-shadow:4px 4px 0 var(--ink);transition:transform .2s var(--spring),box-shadow .2s var(--ease);animation:fab-in .5s var(--spring) .6s both}.tutor-fab:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--ink)}.tutor-fab:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}.tutor-fab-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--brand);color:#fff;flex:none}@keyframes fab-in{0%{opacity:0;transform:translateY(20px) scale(.8)}}@media(max-width:760px){.tutor-fab{padding:6px;right:12px;bottom:12px}.tutor-fab-label{display:none}}.tutor-panel{position:fixed;right:18px;bottom:18px;z-index:75;width:min(400px,calc(100vw - 24px));height:min(620px,calc(100vh - 100px));display:flex;flex-direction:column;background:var(--surface);border:1.5px solid var(--ink);border-radius:18px;box-shadow:6px 6px 0 var(--ink),var(--shadow-3);overflow:hidden;animation:panel-in .3s var(--spring) both;transform-origin:bottom right}@keyframes panel-in{0%{opacity:0;transform:translateY(16px) scale(.94)}}.tutor-panel-head{display:flex;align-items:center;gap:10px;padding:10px 10px 10px 14px;border-bottom:1px solid var(--line)}.tutor-panel-ctx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tutor-modes{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tutor-panel-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(var(--paper-grid) 1px,transparent 1px) 0 0 / 20px 20px,linear-gradient(90deg,var(--paper-grid) 1px,transparent 1px) 0 0 / 20px 20px}.tutor-panel-body .bubble{max-width:92%;animation:rise .25s var(--ease)}.tutor-panel-input{display:flex;gap:8px;padding:10px 12px 4px;border-top:1px solid var(--line);align-items:flex-end}.tutor-panel-input textarea{flex:1;resize:none;min-height:44px}.tutor-panel-foot{display:flex;gap:10px;padding:2px 14px 10px}@media(max-width:560px){.tutor-panel{right:0;left:0;bottom:0;width:100%;height:min(78vh,640px);border-radius:18px 18px 0 0;box-shadow:0 -10px 30px #0003}}.forum-head{display:flex;gap:12px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}.forum-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}.forum-filters .input{max-width:240px;min-height:36px}.forum-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.forum-row{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);color:inherit;text-decoration:none;transition:border-color var(--dur),transform .2s var(--spring),box-shadow var(--dur)}.forum-row:hover{border-color:var(--ink);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}.forum-row.removed{opacity:.6}.forum-cat{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--brand-soft);color:var(--brand-strong)}.cat-question.forum-cat,.pill.cat-question{background:var(--warn-soft);color:var(--warn)}.cat-resources.forum-cat,.pill.cat-resources{background:var(--ok-soft);color:var(--ok)}.cat-event.forum-cat,.pill.cat-event{background:var(--ap-soft);color:var(--ap)}.cat-off-topic.forum-cat,.pill.cat-off-topic{background:var(--accent-soft);color:var(--accent)}.forum-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.forum-row-title{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.forum-excerpt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forum-count{flex:none;display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:.85rem;color:var(--muted);padding-top:2px}.forum-empty{text-align:center;padding:32px 16px;border:1.5px dashed var(--line-strong);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted)}.forum-empty h3{color:var(--ink);margin:4px 0 0}.forum-title{margin:10px 0 8px}.forum-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0}.forum-replies{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.forum-reply{padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--surface);animation:rise-in .35s var(--ease) both}.forum-reply.answer{border:1.5px solid var(--ok);background:color-mix(in srgb,var(--ok-soft) 60%,var(--surface))}.forum-reply.hidden{opacity:.6;border-style:dashed}.chip[aria-checked=true],.chip[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}.guided-done{position:relative}.burst{position:absolute;left:44px;top:44px;width:0;height:0;pointer-events:none;z-index:2}.burst i{position:absolute;width:8px;height:12px;border-radius:2px;opacity:0;animation:burst 1.1s cubic-bezier(.2,.7,.3,1) forwards}@keyframes burst{0%{opacity:1;transform:translate(0) rotate(0)}70%{opacity:1}to{opacity:0;transform:translate(var(--x),calc(var(--y) + 60px)) rotate(var(--r))}}.guided-card{animation:guided-in .35s var(--ease) both}.card.link:hover,.topic-card:hover{box-shadow:4px 4px 0 var(--ink);transform:translate(-2px,-2px);border-color:var(--ink)}.topic-card .num,.num{transition:transform .3s var(--spring)}.topic-card:hover .num{transform:rotate(-6deg) scale(1.08)}.page-head h1{letter-spacing:-.025em}.eyebrow{letter-spacing:.1em}::selection{background:color-mix(in srgb,var(--brand) 28%,transparent)}.main:focus{outline:none;box-shadow:none}@media(max-width:560px){.hero .eyebrow{font-size:.68rem;border-radius:8px}}@media(max-width:560px){.topbar{gap:6px;padding:0 10px}.topbar-actions{gap:2px}.topbar-actions .btn.icon{width:36px}.hide-xs{display:none!important}}.backup-codes{list-style:none;margin:0;padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px;border:1.5px dashed var(--line-strong);border-radius:12px;background:var(--surface-2);counter-reset:code}.backup-codes li{counter-increment:code;display:flex;gap:8px;align-items:baseline}.backup-codes li:before{content:counter(code) ".";color:var(--muted);font-size:.8rem;min-width:1.4em}.backup-codes code{font-family:var(--font-mono);font-size:1.02rem;font-weight:700;letter-spacing:.06em;color:var(--ink);background:none}.backup-box{margin-top:4px}@media print{.backup-codes{border-color:#000;background:#fff}}.teach-steps{list-style:none;padding:0;margin:20px 0 28px;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.teach-steps li{display:flex;gap:12px;padding:14px;border:1.5px solid var(--ink);border-radius:14px;background:var(--surface);box-shadow:3px 3px 0 var(--ink);animation:rise-in .45s var(--ease) both}.teach-steps li:nth-child(2){animation-delay:60ms}.teach-steps li:nth-child(3){animation-delay:.12s}.teach-steps li:nth-child(4){animation-delay:.18s}.teach-steps h3{margin:0 0 4px;font-size:1.02rem}.teach-step-n{flex:none;display:grid;place-items:center;width:32px;height:36px;border-radius:7px;background:var(--brand);color:var(--brand-ink);font-family:var(--font-display);font-weight:800}.teach-tools{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.teach-tool{display:flex;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface)}.teach-tool>svg{flex:none;color:var(--brand);margin-top:2px}.guide section{margin-top:22px}.guide h2{font-size:1.2rem}.guide-glance{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.guide-glance h2{font-size:1rem;margin:0 0 6px}.guide-glance ul{margin:0;padding-left:20px}.guide-steps{list-style:none;padding:0;margin:12px 0 0;border-left:2px solid var(--line-strong)}.guide-steps>li{display:grid;grid-template-columns:74px 1fr;gap:14px;padding:12px 0 12px 14px;position:relative}.guide-steps>li:before{content:"";position:absolute;left:-7px;top:18px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--brand)}.guide-steps h3{margin:0 0 4px;font-size:1.02rem}.guide-time{font-family:var(--font-display);font-weight:800;color:var(--brand);padding-top:2px}.guide-q{margin:6px 0;padding:10px 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}.guide-key{margin:4px 0 0;color:var(--ok);font-weight:700}.guide-mis{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.guide-vocab{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 18px;margin:0}.guide-vocab dt{font-weight:800}.guide-vocab dd{margin:0;color:var(--ink-2)}.guide-diff{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.guide-diff h2{font-size:1rem;display:flex;gap:6px;align-items:center;margin:0 0 6px}.guide-diff ul{margin:0;padding-left:18px}.guide-key-list{padding-left:22px;display:flex;flex-direction:column;gap:12px}@media(max-width:560px){.guide-steps>li{grid-template-columns:1fr;gap:2px}}@media print{.guide .page-head .btn,.guide select{display:none!important}.guide-steps>li{break-inside:avoid}}.preset-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.preset{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border-radius:10px;border:1.5px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;transition:border-color var(--dur),transform .2s var(--spring),box-shadow var(--dur)}.preset:hover{border-color:var(--ink);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink)}.fun-fact{position:relative;border:1.5px solid var(--ink);border-left-width:1.5px;border-radius:6px;background:repeating-linear-gradient(var(--surface) 0 27px,color-mix(in srgb,var(--brand) 14%,transparent) 27px 28px) 0 44px / 100% 100% no-repeat,var(--surface);box-shadow:4px 4px 0 var(--ink);transform:rotate(-.4deg)}.fun-fact:before{content:"";position:absolute;top:-10px;left:50%;width:92px;height:20px;transform:translate(-50%) rotate(2deg);background:color-mix(in srgb,var(--accent) 35%,transparent);border-radius:2px}.fun-fact-label{font-family:var(--font-display);font-size:1.05rem;text-transform:none}.fun-fact-text{line-height:28px}.how-num{border-radius:7px!important;background:var(--ink)!important;color:var(--bg)!important;font-family:var(--font-display)}.lesson-row-wrap{display:flex;gap:6px;align-items:stretch}.lesson-row-wrap>.lesson-row{flex:1;min-width:0}.lesson-guide-link{flex:none;display:inline-flex;align-items:center;gap:4px;padding:0 10px;border-radius:var(--radius);border:1px solid var(--line);font-size:.82rem;font-weight:700;text-decoration:none;color:var(--ink-2);background:var(--surface)}.lesson-guide-link:hover{border-color:var(--ink);color:var(--ink)}
