:root{--bg:#eef2f6;--surface:#fbfcfe;--ink:#18212e;--muted:#566274;--grid:#dde5ee;--axis:#8d9aab;--line:#c9d3df;--accent:#1f55d0;--accent-soft:#e2eafb;--deriv:#b8236f;--tangent:#c65a06;--good:#1b7a46;--good-soft:#e1f2e8;--bad:#b3261e;--bad-soft:#fbe4e2;--font-display:"Bricolage Grotesque","Avenir Next","Segoe UI",sans-serif;--font-body:"Source Serif 4",Georgia,"Times New Roman",serif;--font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;--r:10px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d131c;--surface:#141c28;--ink:#e4eaf3;--muted:#9aa7b8;--grid:#1f2a39;--axis:#4f5d70;--line:#2a3647;--accent:#7aa2ff;--accent-soft:#1a2741;--deriv:#ff78b9;--tangent:#ffa04d;--good:#5fd08f;--good-soft:#13291d;--bad:#ff8a80;--bad-soft:#2f1716;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d131c;--surface:#141c28;--ink:#e4eaf3;--muted:#9aa7b8;--grid:#1f2a39;--axis:#4f5d70;--line:#2a3647;--accent:#7aa2ff;--accent-soft:#1a2741;--deriv:#ff78b9;--tangent:#ffa04d;--good:#5fd08f;--good-soft:#13291d;--bad:#ff8a80;--bad-soft:#2f1716;color-scheme:dark}*{box-sizing:border-box}body{color:var(--ink);font:17px/1.6 var(--font-body);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 64px}body,body:before{background:var(--bg)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:10}.wrap{max-width:980px;margin:0 auto}h1,h2,h3,h4{font-family:var(--font-display);text-wrap:balance;line-height:1.15;margin:0}p{margin:0}a{color:var(--accent)}.mono{font-family:var(--font-mono);font-size:.85em}header.hero{padding-block:40px 20px;display:grid;grid-gap:14px;gap:14px}.eyebrow{font:600 12px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.hero h1{font-size:clamp(34px,6vw,58px);font-weight:800;letter-spacing:-.02em}.hero h1 .prime{color:var(--deriv)}.hero p.lede{max-width:62ch;color:var(--muted);font-size:18px}.legend{display:flex;flex-wrap:wrap;gap:8px 18px;font:13px var(--font-mono);color:var(--muted)}.legend span:before{content:"";display:inline-block;width:18px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px;background:currentColor}.legend .lf{color:var(--accent)}.legend .ld{color:var(--deriv)}.legend .lt{color:var(--tangent)}section.topic{padding-block:28px 8px;display:grid;grid-gap:22px;gap:22px;scroll-margin-top:60px}.topic-head{display:grid;grid-gap:6px;gap:6px;border-top:3px solid var(--ink);padding-top:14px}.topic-head .num{font:700 14px var(--font-mono);color:var(--accent)}.topic-head h2{font-size:clamp(28px,4.4vw,40px);font-weight:700;letter-spacing:-.01em}.topic-head p{color:var(--muted);max-width:64ch}h3{font-size:21px;font-weight:700;margin-top:8px}.prose{grid-gap:12px;max-width:68ch}.prose,.rules{display:grid;gap:12px}.rules{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:12px}.rule{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;min-width:0;display:grid;grid-gap:4px;gap:4px;align-content:start}.rule .tag{font:600 11px var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.rule.key{border:2px solid var(--accent)}.lab{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;grid-gap:12px;gap:12px;min-width:0}.lab-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;align-items:baseline}.lab-head h4{font-size:17px}.lab-head .tag{font:600 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--tangent)}.lab canvas{width:100%;display:block;border-radius:8px;touch-action:none}.lab .tall{aspect-ratio:16/9}.lab .short{aspect-ratio:16/6}.lab .square{aspect-ratio:1/1;max-width:520px;margin:0 auto}.controls{flex-wrap:wrap;gap:10px 22px;font:13px var(--font-mono)}.controls,.controls label{display:flex;align-items:center}.controls label{gap:8px}.controls input[type=range]{width:170px;accent-color:var(--accent)}.btn,.controls button,.controls select{font:600 13px var(--font-mono);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}.btn:hover,.controls button:hover{border-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.readout{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:8px;gap:8px}.readout div{background:var(--bg);border-radius:8px;padding:8px 10px;font:13px/1.4 var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:0}.readout b{display:block;font-size:17px;color:var(--ink)}.readout .c-f{color:var(--accent)}.readout .c-d{color:var(--deriv)}.readout .c-t{color:var(--tangent)}.note{font-size:15px;color:var(--muted)}.callout{border-left:4px solid var(--tangent);padding:4px 0 4px 14px;font-size:16px}.examples{display:grid;grid-gap:12px;gap:12px}.ex{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;grid-gap:8px;gap:8px;min-width:0}.ex .label{font:600 12px var(--font-mono);color:var(--muted);letter-spacing:.05em;text-transform:uppercase}.steps{margin:0;padding-left:2em;display:grid;grid-gap:6px;gap:6px}.steps li::marker{font-family:var(--font-mono);color:var(--accent);font-size:.85em}.why{color:var(--muted);font-style:italic}.practice{display:grid;grid-gap:10px;gap:10px}.prob{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;grid-gap:8px;gap:8px;min-width:0}.prob.done{border-color:var(--good);background:linear-gradient(var(--good-soft),var(--good-soft)) padding-box}.prob-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.prob-top .q{min-width:0}.src{font:600 11px var(--font-mono);color:var(--muted);letter-spacing:.05em;display:block;margin-bottom:2px}a.src{color:var(--accent);text-decoration:none;width:-moz-fit-content;width:fit-content}.got{flex:none;font:600 12px var(--font-mono);display:flex;gap:6px;align-items:center;color:var(--muted);cursor:pointer;white-space:nowrap}.got input{accent-color:var(--good);width:16px;height:16px}details{border-top:1px dashed var(--line);padding-top:6px}details summary{cursor:pointer;font:600 13px var(--font-mono);color:var(--accent);list-style:none}details summary::-webkit-details-marker{display:none}details summary:before{content:"+ "}details[open] summary:before{content:"− "}details>div{padding:8px 0 4px;display:grid;grid-gap:6px;gap:6px}.ans{background:var(--accent-soft);border-radius:8px;padding:6px 10px}.traps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:10px;gap:10px}.trap{border-radius:var(--r);padding:12px 14px;background:var(--bad-soft);display:grid;grid-gap:4px;gap:4px;min-width:0}.trap b{font-family:var(--font-display);color:var(--bad)}.quiz{grid-gap:12px;gap:12px}.qq,.quiz{display:grid}.qq{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;grid-gap:10px;gap:10px;min-width:0}.opts{display:flex;flex-wrap:wrap;gap:8px}.opts button{font:15px var(--font-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 12px;cursor:pointer;min-width:0}.opts button.right{background:var(--good-soft);border-color:var(--good)}.opts button.wrong{background:var(--bad-soft);border-color:var(--bad)}.fb{font-size:15px;color:var(--muted)}.score{font:600 14px var(--font-mono)}.sheet{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:12px;gap:12px}.sheet .rule h4{font-size:15px}footer{padding-top:48px;color:var(--muted);font-size:14px}@media (max-width:520px){body{font-size:16px}.controls input[type=range]{width:130px}.lab .short{aspect-ratio:16/8}}.ex,.examples,.practice,.prob,.prose,.qq,.quiz,details>div{grid-template-columns:minmax(0,1fr)}.ex p,.prob .q,.prob p,.prose p,.qq p,.rule p,.steps{overflow-x:auto;overflow-y:hidden}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html{scroll-behavior:smooth}.katex{font-size:1.06em}.math-display{overflow-x:auto;overflow-y:hidden;padding-block:4px}.ex .katex,.prob p .katex{white-space:nowrap}.topbar{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);z-index:20;margin-inline:calc(-1 * max(16px, env(safe-area-inset-left, 0px)));padding:10px max(16px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);border-bottom:1px solid var(--line)}.topbar-inner{max-width:980px;margin:0 auto;gap:12px;min-width:0}.brand,.topbar-inner{display:flex;align-items:center}.brand{flex:none;gap:8px;text-decoration:none;color:var(--ink);font:800 17px/1 var(--font-display);letter-spacing:-.01em}.brand-mark{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--ink);color:var(--bg);font:700 15px/1 var(--font-body);font-style:italic}.navlinks{flex:1 1;min-width:0;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;padding:2px}.navlinks::-webkit-scrollbar{display:none}.navlink{position:relative;flex:none;text-decoration:none;color:var(--muted);font:600 13px/1 var(--font-mono);padding:9px 11px;border-radius:999px;transition:color .2s}.navlink:hover{color:var(--ink)}.navlink.active{color:var(--bg)}.navlink .pill{position:absolute;inset:0;border-radius:999px;background:var(--ink);z-index:-1}.navlink span{position:relative}.navtools{display:flex;align-items:center}.count{font:600 12px var(--font-mono);color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.iconbtn{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}.iconbtn:hover{border-color:var(--accent)}.scrollbar{position:fixed;left:0;right:0;top:env(safe-area-inset-top,0);height:3px;transform-origin:0 50%;z-index:30;background:linear-gradient(90deg,var(--accent),var(--deriv),var(--tangent))}.home-hero{padding-block:48px 28px;display:grid;grid-gap:16px;gap:16px;position:relative}.home-hero h1{font-size:clamp(38px,7vw,72px);font-weight:800;letter-spacing:-.03em;line-height:1.02;display:flex;flex-wrap:wrap;gap:0 .25em}.home-hero h1 .word{display:inline-block}.home-hero h1 .prime{color:var(--deriv)}.hero-graph{width:100%;max-width:560px;height:auto;overflow:hidden;border-radius:12px;background:var(--surface);border:1px solid var(--line)}.cta-row{display:flex;flex-wrap:wrap}.cta,.cta-row{gap:10px;align-items:center}.cta{display:inline-flex;padding:12px 18px;border-radius:12px;text-decoration:none;font:700 15px/1 var(--font-display);background:var(--ink);color:var(--bg)}.cta.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.ring-wrap{display:flex;align-items:center;gap:14px}.ring-wrap p{font:13px/1.4 var(--font-mono);color:var(--muted)}.ring-wrap b{color:var(--ink);font-size:18px;display:block}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:14px;gap:14px;padding-bottom:24px}.card{position:relative;display:grid;grid-gap:10px;gap:10px;align-content:start;padding:18px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;min-width:0;height:100%}.card:hover{border-color:var(--accent)}.card .num{font:700 13px var(--font-mono);color:var(--accent)}.card h3{font-size:21px;margin:0}.card p{color:var(--muted);font-size:15px}.card .bar{height:6px;border-radius:6px;background:var(--grid);overflow:hidden}.card .bar>div{height:100%;background:var(--good);border-radius:6px;transform-origin:0 50%}.card .meta{display:flex;justify-content:space-between;font:12px var(--font-mono);color:var(--muted)}.card .go{position:absolute;right:16px;top:16px;color:var(--muted)}.sec-hero{padding-block:36px 4px;display:grid;grid-gap:10px;gap:10px}.sec-hero .big{font:800 clamp(56px,11vw,120px)/.9 var(--font-display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:1.5px var(--ink)}.sec-hero h1{font-size:clamp(30px,5vw,46px);font-weight:700;letter-spacing:-.015em}.sec-hero p{color:var(--muted);max-width:64ch}.sec-progress{display:flex;align-items:center;gap:12px;font:13px var(--font-mono);color:var(--muted)}.sec-progress .bar{flex:0 1 240px;height:6px;border-radius:6px;background:var(--grid);overflow:hidden}.sec-progress .bar>div{height:100%;background:var(--good);transform-origin:0 50%}.blocks{display:grid;grid-gap:22px;gap:22px;padding-top:12px}.blocks>*{min-width:0}.celebrate{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:12px;background:var(--good-soft);border:1px solid var(--good);font-weight:600}.pager{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;padding-top:40px}.pager a{display:grid;grid-gap:4px;gap:4px;padding:16px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-decoration:none;color:var(--ink);min-width:0}.pager a:hover{border-color:var(--accent)}.pager a.next{text-align:right;grid-column:2}.pager small{font:12px var(--font-mono);color:var(--muted)}.pager b{font-family:var(--font-display)}.reveal-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:0;padding:6px 0;cursor:pointer;color:var(--accent);font:600 13px var(--font-mono)}.reveal-btn .chev{display:inline-block}.reveal-body{overflow:hidden}.reveal-body>div{padding:6px 0 8px;display:grid;grid-gap:6px;gap:6px;grid-template-columns:minmax(0,1fr)}.reveals{border-top:1px dashed var(--line);padding-top:4px;display:grid}.check{flex:none;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:6px 10px 6px 6px;cursor:pointer;color:var(--muted);font:600 12px var(--font-mono);white-space:nowrap}.check.on{border-color:var(--good);color:var(--good)}.check .box{width:20px;height:20px;border-radius:6px;border:2px solid;display:grid;place-items:center}.check.on .box{background:var(--good);border-color:var(--good)}.check svg{width:14px;height:14px}.src-link{color:var(--accent);text-decoration:none;width:-moz-fit-content;width:fit-content}.src-link,.src-link+span,.src-text{font:600 11px var(--font-mono);letter-spacing:.05em;display:block;margin-bottom:2px}.src-link+span,.src-text{color:var(--muted)}@media (max-width:640px){.brand-name,.count{display:none}.pager{grid-template-columns:1fr}.pager a.next{grid-column:1}.prob-top{flex-direction:column}}.mini-graph{width:100%;max-width:360px;height:auto;display:block;margin:4px 0;background:var(--bg);border-radius:10px}h3[id]{scroll-margin-top:80px}.compare{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}.compare table{width:100%;border-collapse:collapse;font-size:15px;min-width:420px}.compare td,.compare th{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.compare tr:last-child td,.compare tr:last-child th{border-bottom:0}.compare thead th{font:600 12px var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--bg)}.compare tbody th{font:600 13px var(--font-mono);color:var(--muted);white-space:nowrap}.flashdeck{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;grid-gap:14px;gap:14px;min-width:0}.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.controls .seg button{border:0;border-radius:0;background:var(--bg)}.controls .seg button+button{border-left:1px solid var(--line)}.controls .seg button.on{background:var(--ink);color:var(--bg)}.fc-progress{display:flex;align-items:center;gap:12px;font:13px var(--font-mono);color:var(--muted);flex-wrap:wrap}.fc-progress .bar{flex:1 1 160px;max-width:280px;height:6px;border-radius:6px;background:var(--grid);overflow:hidden}.fc-progress .bar>div{height:100%;background:var(--good);transform-origin:0 50%}.fc-stage{perspective:1200px;min-height:240px}.fc-slot,.fc-stage{display:grid}.fc-card{all:unset;display:block;cursor:pointer;border-radius:16px}.fc-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.fc-face{min-height:240px;border-radius:16px;padding:20px;display:grid;grid-gap:10px;gap:10px;align-content:center;justify-items:center;text-align:center;border:1px solid var(--line);background:var(--bg);min-width:0}.fc-front{background:linear-gradient(160deg,var(--accent-soft),var(--bg))}.fc-back{background:var(--good-soft);border-color:var(--good)}.fc-tag{font:600 11px var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}.fc-math{font-size:clamp(22px,5vw,32px);overflow-y:hidden;padding-block:6px}.fc-math,.fc-small{max-width:100%;overflow-x:auto}.fc-small{font-size:15px;color:var(--muted)}.fc-hint{font:12px var(--font-mono);color:var(--muted)}.fc-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.fc-actions button{font:700 15px var(--font-display);padding:14px;border-radius:12px;cursor:pointer;border:1px solid var(--line);color:var(--ink)}.fc-actions button:disabled{opacity:.45;cursor:not-allowed}.fc-again{background:var(--bad-soft);border-color:var(--bad)!important}.fc-got{border-color:var(--good)!important}.fc-done,.fc-got{background:var(--good-soft)}.fc-done{display:grid;grid-gap:10px;gap:10px;justify-items:center;text-align:center;align-content:center;padding:24px;border-radius:16px;border:1px solid var(--good)}.fc-star{font-size:40px;color:var(--good)}.compare tbody th:has(.katex){font:inherit;color:var(--ink);white-space:normal}.fc-small{overflow-y:hidden;padding-block:4px}.update-toast{position:fixed;z-index:40;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom, 0px));margin:0 auto;max-width:560px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;background:var(--ink);color:var(--bg);box-shadow:0 12px 40px rgba(0,0,0,.28)}.update-dot{width:10px;height:10px;border-radius:50%;background:var(--good);flex:none}.update-text{flex:1 1 200px;min-width:0;display:grid;grid-gap:2px;gap:2px;font-size:15px;line-height:1.4}.update-text span{opacity:.8;font-size:14px}.update-actions{display:flex;gap:8px;margin-left:auto}.update-actions button{font:700 14px var(--font-display);border-radius:10px;padding:9px 14px;cursor:pointer;border:1px solid color-mix(in srgb,var(--bg) 35%,transparent)}.update-later{background:transparent;color:var(--bg)}.update-go{background:var(--bg);color:var(--ink)}:root{--cur-default:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M3 2 L3 22 L8.4 17.2 L11.8 25 L15 23.6 L11.6 16 L18.6 16 Z%27 fill=%27%2318212e%27 stroke=%27%23ffffff%27 stroke-width=%271.6%27 stroke-linejoin=%27round%27/%3E%3Ctext x=%2721%27 y=%2729%27 font-family=%22Georgia, %27Times New Roman%27, serif%22 font-size=%2715%27 font-weight=%27700%27 font-style=%27italic%27 text-anchor=%27start%27 fill=%27%2318212e%27 stroke=%27%23ffffff%27 stroke-width=%273%27 paint-order=%27stroke%27 stroke-linejoin=%27round%27%3E%E2%88%AB%3C/text%3E%3C/svg%3E") 3 2,auto;--cur-pointer:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M3 2 L3 22 L8.4 17.2 L11.8 25 L15 23.6 L11.6 16 L18.6 16 Z%27 fill=%27%231f55d0%27 stroke=%27%23ffffff%27 stroke-width=%271.6%27 stroke-linejoin=%27round%27/%3E%3Ctext x=%2718%27 y=%2730%27 font-family=%22Georgia, %27Times New Roman%27, serif%22 font-size=%2713%27 font-weight=%27700%27 text-anchor=%27start%27 fill=%27%231f55d0%27 stroke=%27%23ffffff%27 stroke-width=%273%27 paint-order=%27stroke%27 stroke-linejoin=%27round%27%3E%CE%A3%3C/text%3E%3C/svg%3E") 3 2,pointer;--cur-text:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M11.5 5 H20.5 M16 5 V27 M11.5 27 H20.5%27 stroke=%27%23ffffff%27 stroke-width=%274.5%27 stroke-linecap=%27round%27 fill=%27none%27/%3E%3Cpath d=%27M11.5 5 H20.5 M16 5 V27 M11.5 27 H20.5%27 stroke=%27%2318212e%27 stroke-width=%272%27 stroke-linecap=%27round%27 fill=%27none%27/%3E%3Ctext x=%2721%27 y=%2713%27 font-family=%22Georgia, %27Times New Roman%27, serif%22 font-size=%2712%27 font-weight=%27700%27 font-style=%27italic%27 text-anchor=%27start%27 fill=%27%23b8236f%27 stroke=%27%23ffffff%27 stroke-width=%273%27 paint-order=%27stroke%27 stroke-linejoin=%27round%27%3E%E2%88%82%3C/text%3E%3C/svg%3E") 16 16,text;--cur-drag:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M16 3 V12 M16 20 V29 M3 16 H12 M20 16 H29%27 stroke=%27%23ffffff%27 stroke-width=%274.5%27 stroke-linecap=%27round%27/%3E%3Cpath d=%27M16 3 V12 M16 20 V29 M3 16 H12 M20 16 H29%27 stroke=%27%2318212e%27 stroke-width=%272%27 stroke-linecap=%27round%27/%3E%3Ccircle cx=%2716%27 cy=%2716%27 r=%273.2%27 fill=%27%2318212e%27 stroke=%27%23ffffff%27 stroke-width=%271.6%27/%3E%3Ctext x=%2721%27 y=%2712%27 font-family=%22Georgia, %27Times New Roman%27, serif%22 font-size=%2711%27 font-weight=%27700%27 text-anchor=%27start%27 fill=%27%23c65a06%27 stroke=%27%23ffffff%27 stroke-width=%273%27 paint-order=%27stroke%27 stroke-linejoin=%27round%27%3E%CE%94%3C/text%3E%3C/svg%3E") 16 16,crosshair;--cur-grab:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M16 3 V12 M16 20 V29 M3 16 H12 M20 16 H29%27 stroke=%27%23ffffff%27 stroke-width=%274.5%27 stroke-linecap=%27round%27/%3E%3Cpath d=%27M16 3 V12 M16 20 V29 M3 16 H12 M20 16 H29%27 stroke=%27%23b8236f%27 stroke-width=%272%27 stroke-linecap=%27round%27/%3E%3Ccircle cx=%2716%27 cy=%2716%27 r=%273.2%27 fill=%27%23b8236f%27 stroke=%27%23ffffff%27 stroke-width=%271.6%27/%3E%3Ctext x=%2721%27 y=%2712%27 font-family=%22Georgia, %27Times New Roman%27, serif%22 font-size=%2711%27 font-weight=%27700%27 text-anchor=%27start%27 fill=%27%23b8236f%27 stroke=%27%23ffffff%27 stroke-width=%273%27 paint-order=%27stroke%27 stroke-linejoin=%27round%27%3E%E2%88%87%3C/text%3E%3C/svg%3E") 16 16,crosshair;--cur-slide:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Cpath d=%27M4 16 H28 M4 16 L9 11 M4 16 L9 21 M28 16 L23 11 M28 16 L23 21%27 stroke=%27%23fff%27 stroke-width=%274.5%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 fill=%27none%27/%3E%3Cpath d=%27M4 16 H28 M4 16 L9 11 M4 16 L9 21 M28 16 L23 11 M28 16 L23 21%27 stroke=%27%2318212e%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27 fill=%27none%27/%3E%3Ctext x=%2716%27 y=%2711%27 font-family=%22Georgia, %27Times New Roman%27, serif%22 font-size=%2712%27 font-weight=%27700%27 text-anchor=%27middle%27 fill=%27%231f55d0%27 stroke=%27%23ffffff%27 stroke-width=%273%27 paint-order=%27stroke%27 stroke-linejoin=%27round%27%3E%C2%B1%3C/text%3E%3C/svg%3E") 16 16,ew-resize;--cur-no:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2732%27 height=%2732%27 viewBox=%270 0 32 32%27%3E%3Ctext x=%2716%27 y=%2723%27 font-family=%22Georgia, %27Times New Roman%27, serif%22 font-size=%2722%27 font-weight=%27700%27 text-anchor=%27middle%27 fill=%27%23b3261e%27 stroke=%27%23ffffff%27 stroke-width=%273%27 paint-order=%27stroke%27 stroke-linejoin=%27round%27%3E%E2%88%85%3C/text%3E%3C/svg%3E") 16 16,not-allowed}@media (pointer:fine){body,html{cursor:var(--cur-default)}.ans,.katex,.lede,.math-display,.note,.why,h1,h2,h3,h4,li,p,td,th{cursor:var(--cur-text)}.card,.card *,.navlink,.navlink *,[role=button],a,a *,button,button *,input[type=checkbox],label,label *,select,summary{cursor:var(--cur-pointer)!important}input[type=range]{cursor:var(--cur-slide)!important}.lab canvas{cursor:var(--cur-drag)!important}.lab canvas:active{cursor:var(--cur-grab)!important}button:disabled,button:disabled *{cursor:var(--cur-no)!important}}.sheet-card{all:unset;box-sizing:border-box;cursor:pointer;text-align:left;font:inherit;color:var(--ink);display:grid;grid-gap:6px;gap:6px;align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;min-width:0}.sheet-card:hover{border-color:var(--accent)}.sheet-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sheet-card h4{font-size:16px}.sheet-card>div{min-width:0;overflow-x:auto;overflow-y:hidden}.sheet-more{font:600 12px var(--font-mono);color:var(--accent);margin-top:4px}.modal-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:color-mix(in srgb,var(--ink) 45%,transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.modal{width:min(680px,100%);max-height:min(86vh,100%);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--surface);color:var(--ink);border-radius:18px;border:1px solid var(--line);box-shadow:0 24px 70px rgba(0,0,0,.3);overflow:hidden}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:22px}.modal-x{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink)}.modal-x:hover{border-color:var(--accent);color:var(--accent)}.modal-body{overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 18px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr)}.modal-body .math-display,.modal-body .steps,.modal-body p{overflow-x:auto;overflow-y:hidden}.modal-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 18px;border-top:1px solid var(--line);background:var(--bg)}.modal-foot .btn{text-decoration:none}@media (max-width:520px){.modal-backdrop{place-items:end center;padding-bottom:0}.modal{border-radius:18px 18px 0 0;max-height:88vh;padding-bottom:env(safe-area-inset-bottom,0)}}@media (pointer:fine){.modal-x,.sheet-card,.sheet-card *{cursor:var(--cur-pointer)!important}}.sheet-card .katex{font-size:.98em}.modal-backdrop{animation:modal-fade-in .2s ease both}.modal{animation:modal-pop-in .3s cubic-bezier(.22,1,.36,1) both}.modal-backdrop.closing{animation:modal-fade-out .2s ease both;pointer-events:none}.modal-backdrop.closing .modal{animation:modal-pop-out .2s ease both}@keyframes modal-fade-in{0%{opacity:0}}@keyframes modal-fade-out{to{opacity:0}}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(32px) scale(.96)}}@keyframes modal-pop-out{to{opacity:0;transform:translateY(24px) scale(.97)}}@media (prefers-reduced-motion:reduce){.modal,.modal-backdrop,.modal-backdrop.closing,.modal-backdrop.closing .modal{animation:none}}.modal-body{grid-auto-rows:max-content;align-content:start}.modal-body p{padding-block:.4em;margin-block:-.2em}.steps{padding-block:.3em}.gen{display:grid;grid-gap:14px;gap:14px;min-width:0}.gen-stats{font:12px var(--font-mono);color:var(--muted)}.gen-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;grid-gap:12px;gap:12px;min-width:0}.gen-tag{font:600 11px var(--font-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--tangent)}.gen-q{font-size:19px;overflow-x:auto;overflow-y:hidden;padding-block:.3em}.gen-answer{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font:600 13px var(--font-mono)}.checker-form input,.gen-answer input{font:16px var(--font-mono);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-width:0}.gen-answer input{width:170px}.checker-form input:focus,.gen-answer input:focus{outline:2px solid var(--accent);outline-offset:1px}.gen-verdict{font-weight:600;padding:8px 12px;border-radius:10px}.gen-verdict.right{background:var(--good-soft);color:var(--good)}.gen-verdict.wrong{background:var(--bad-soft);color:var(--bad)}.gen-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.gen-buttons .btn{font-size:13px}.gen-next{margin-left:auto;padding:10px 16px;border:0;cursor:pointer;font-size:14px}.gen-hint,.gen-sol{overflow:hidden}.gen-hint>div{background:var(--accent-soft);border-radius:10px;padding:10px 14px}.gen-steps{display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr);padding-top:4px}.gen-steps>*{overflow-x:auto;overflow-y:hidden;padding-block:.25em}.gen-self{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:10px;font-size:15px}.gen-self button{font:700 14px var(--font-display);padding:9px 14px;border-radius:10px;border:1px solid var(--line);cursor:pointer;color:var(--ink)}.gen-loading{padding:40px;text-align:center;color:var(--muted);font:13px var(--font-mono);border:1px dashed var(--line);border-radius:14px}.checker-presets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font:12px var(--font-mono);color:var(--muted)}.checker-presets .btn{font-size:12px;padding:5px 9px}.checker-form{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:10px 12px;gap:10px 12px;align-items:center;font:600 14px var(--font-mono)}.checker-form .cta{grid-column:1/-1;justify-self:start;border:0;cursor:pointer}@media (max-width:520px){.checker-form{grid-template-columns:minmax(0,1fr)}.gen-next{margin-left:0}}.acct-signin{font:700 13px var(--font-display);padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:var(--ink);color:var(--bg);cursor:pointer;white-space:nowrap}.acct-avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;overflow:hidden;border:2px solid var(--accent);background:var(--accent-soft);color:var(--accent);font:700 15px var(--font-display);cursor:pointer;padding:0;flex:none}.acct-avatar img{width:100%;height:100%;object-fit:cover}.acct-avatar.big{width:52px;height:52px;font-size:22px;cursor:default}.acct-modal{width:min(440px,100%)}.acct-who{display:flex;gap:12px;align-items:center}.acct-who div{display:grid;min-width:0}.acct-who span{color:var(--muted);font-size:14px;overflow-wrap:anywhere}.acct-status{background:var(--good-soft);color:var(--good);border-radius:10px;padding:8px 12px;font-size:15px}.acct-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:700 15px var(--font-display);cursor:pointer}.acct-google:hover{border-color:var(--accent)}.acct-or{display:flex;align-items:center;gap:10px;color:var(--muted);font:12px var(--font-mono)}.acct-or:after,.acct-or:before{content:"";flex:1 1;height:1px;background:var(--line)}.acct-form{display:grid;grid-gap:10px;gap:10px}.acct-form label{display:grid;grid-gap:4px;gap:4px;font:600 13px var(--font-mono);color:var(--muted)}.acct-form input{font:16px var(--font-body);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.acct-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.acct-form .cta{border:0;cursor:pointer;justify-content:center}.acct-form .cta:disabled,.acct-google:disabled{opacity:.6;cursor:progress}.acct-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.acct-links button{background:none;border:0;padding:4px 0;color:var(--accent);font:600 13px var(--font-mono);cursor:pointer}@media (pointer:fine){.acct-avatar,.acct-google,.acct-links button,.acct-signin{cursor:var(--cur-pointer)!important}}.navlinks{mask-image:linear-gradient(90deg,transparent,#000 10px,#000 calc(100% - 18px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 10px,#000 calc(100% - 18px),transparent);padding-inline:8px}.tools{position:relative;flex:none}.tools-btn{display:inline-flex;align-items:center;gap:6px;background:none;border:1px solid var(--line);cursor:pointer}.tools-btn.active{border-color:transparent}.tools-btn svg{position:relative}.tools-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:30;width:min(320px,calc(100vw - 32px));padding:6px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:0 16px 40px rgba(0,0,0,.18);transform-origin:top right}.tools-item,.tools-menu{display:grid;grid-gap:2px;gap:2px}.tools-item{padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}.tools-item b{font:700 15px var(--font-display)}.tools-item span{font-size:13px;color:var(--muted);line-height:1.35}.tools-item:focus-visible,.tools-item:hover{background:var(--bg);outline:none}.tools-item.on{background:var(--accent-soft)}.tools-item.on b{color:var(--accent)}.count{display:inline-flex;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;background:var(--good-soft);color:var(--good)}.navtools{gap:8px}@media (max-width:900px){.count{display:none}}@media (max-width:640px){.tools-btn{padding-inline:9px}}@media (pointer:fine){.tools-btn,.tools-btn *,.tools-item,.tools-item *{cursor:var(--cur-pointer)!important}}.sheet{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.sheet-card .math-display .katex{font-size:.92em}@media (max-width:760px){.topbar-inner{flex-wrap:wrap;row-gap:8px}.tools{margin-left:auto}.navlinks{order:10;flex:1 0 100%;margin-inline:-8px}.tools-menu{position:fixed;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));top:calc(100% + 6px);width:auto;transform-origin:top center}}.navtools{flex:none}@media (max-width:760px){.tools{flex:0 1 auto;min-width:0}.tools-btn{max-width:100%}.tools-btn>span:not(.pill){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.topbar-inner{gap:8px}}@media (max-width:380px){.acct-signin{padding:7px 9px;font-size:12px}.iconbtn{width:32px;height:32px}}