:root{--bg:#fbfbf9;--bg2:#f2f3ef;--card:#fff;--ink:#141821;--ink2:#383e4d;--mute:#5d6373;--line:#e2e4e9;--line2:#cfd3db;--acc:#4338ca;--acc2:#5b52e0;--acc-bg:#eef0ff;--acc-line:#c9ccfb;--a:#0072b2;--b:#d55e00;--c:#009e73;--a-ink:#005d92;--b-ink:#ad4c00;--c-ink:#00785a;--a-bg:rgba(0,114,178,.12);--b-bg:rgba(213,94,0,.12);--c-bg:rgba(0,158,115,.14);--ok:#047857;--ok-bg:#e7f6ef;--bad:#b42318;--bad-bg:#fdeceb;--warn:#8a5a00;--warn-bg:#fff6e0;--r:12px;--r2:8px;--sh:0 1px 2px rgba(20,24,33,.05),0 6px 18px -6px rgba(20,24,33,.10);--f:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;--fm:"Cambria Math",Cambria,"STIX Two Text","Times New Roman",Times,"Noto Serif",serif;--fc:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;--grid:rgba(20,24,33,.045);--a-o:#d1e6f1;--b-o:#f7e2d1;--c-o:#d1eee6;--y-bg:#fdf0c2;--y:#b7791f}@media (prefers-color-scheme:dark){:root{--bg:#0f1117;--bg2:#151821;--card:#181b24;--ink:#e9ebf1;--ink2:#c6cad5;--mute:#9ba2b3;--line:#272b37;--line2:#353b4b;--acc:#a5a8ff;--acc2:#8b8ff9;--acc-bg:#1d2040;--acc-line:#3a3f7a;--a:#56b4e9;--b:#f0883e;--c:#3cc79c;--a-ink:#7cc5ef;--b-ink:#f5a465;--c-ink:#62d5b0;--a-bg:rgba(86,180,233,.16);--b-bg:rgba(240,136,62,.16);--c-bg:rgba(60,199,156,.16);--ok:#4ade80;--ok-bg:#12261c;--bad:#f87171;--bad-bg:#2c1414;--warn:#fbbf24;--warn-bg:#2a2210;--sh:0 1px 2px rgba(0,0,0,.3),0 6px 18px -6px rgba(0,0,0,.5);--grid:rgba(255,255,255,.04);--a-o:#263d4f;--b-o:#48332a;--c-o:#20413e;--y-bg:#3d3414;--y:#f2c94c}:root .tx-w{fill:#0f1117}}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:1rem}body{margin:0;background:var(--bg);color:var(--ink);font:400 1.0625rem/1.68 var(--f);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--acc);text-decoration-thickness:.07em;text-underline-offset:.18em}a:hover{color:var(--acc2);text-decoration-thickness:.12em}:focus-visible{outline:3px solid var(--acc2);outline-offset:2px;border-radius:4px}img,svg{max-width:100%}h1,h2,h3,h4{overflow-wrap:break-word;line-height:1.2;letter-spacing:-.015em;margin:2em 0 .6em;font-weight:750;text-wrap:balance}h1{font-size:clamp(2rem,1.3rem + 3vw,3rem);letter-spacing:-.03em;margin:.2em 0 .35em;font-weight:820}h2{font-size:clamp(1.45rem,1.2rem + 1vw,1.85rem);letter-spacing:-.022em}h3{font-size:1.22rem}h4{font-size:1.05rem}p,ul,ol,dl,table,figure,blockquote{margin:0 0 1.15em}ul,ol{padding-left:1.4em}li{margin:.3em 0}li::marker{color:var(--mute)}strong,b{font-weight:680}hr{border:0;border-top:1px solid var(--line);margin:2.5em 0}code,kbd{font:500 .88em var(--fc);background:var(--bg2);border:1px solid var(--line);border-radius:5px;padding:.08em .35em}pre{font:.86rem/1.55 var(--fc);background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2);padding:1rem 1.1rem;overflow-x:auto;margin:0 0 1.3em}pre code{background:none;border:0;padding:0;font-size:inherit}blockquote{margin-left:0;padding:.2em 0 .2em 1.1em;border-left:3px solid var(--acc-line);color:var(--ink2);font-style:italic}.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:.6rem 1rem;z-index:9;border-radius:0 0 8px 0}.skip:focus{left:0}.nw{white-space:nowrap}.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wrap{max-width:74rem;margin:0 auto;padding:0 1.25rem}.hd{border-bottom:1px solid var(--line);background:var(--card)}.hd-in{display:flex;align-items:center;gap:1.5rem;min-height:3.75rem;flex-wrap:wrap}.logo{display:inline-flex;align-items:center;gap:.55rem;color:var(--ink);text-decoration:none;font-weight:650;letter-spacing:-.02em;font-size:1.06rem;white-space:nowrap}.logo:hover{color:var(--ink)}.logo b{font-weight:820;color:var(--c-ink)}.logo small{font-size:.8em;color:var(--mute);font-weight:500}.logo-i{flex:none;width:30px;height:30px}.lg-a{fill:var(--a)}.lg-b{fill:var(--b)}.lg-c{fill:var(--c)}.lg-t{fill:var(--card);stroke:var(--ink);stroke-width:1.4;stroke-linejoin:round}.nav{margin-left:auto;min-width:0}.nav ul{display:flex;gap:.15rem;list-style:none;margin:0;padding:0}.nav li{margin:0}.nav a{display:block;padding:.45rem .7rem;border-radius:8px;color:var(--ink2);text-decoration:none;font-size:.94rem;font-weight:560;white-space:nowrap}.nav a:hover{background:var(--bg2);color:var(--ink)}.nav a[aria-current],.nav a.on{color:var(--acc);background:var(--acc-bg)}@media (max-width:960px){.hd-in{gap:0;padding-top:.55rem}.nav{margin:0 -1.25rem;width:calc(100% + 2.5rem);overflow-x:auto;scrollbar-width:none;-webkit-mask:linear-gradient(90deg,#000 88%,transparent)}.nav::-webkit-scrollbar{display:none}.nav ul{padding:.35rem 1rem .5rem}.nav a{padding:.5rem .65rem}}.ph{background:var(--bg2);border-bottom:1px solid var(--line);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px;padding:1.6rem 0 1.9rem}.ph .wrap>*{max-width:50rem}.crumbs ol{display:flex;flex-wrap:wrap;gap:.2rem .5rem;list-style:none;margin:0 0 .9rem;padding:0;font-size:.86rem;color:var(--mute)}.crumbs li{margin:0}.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--line2)}.crumbs a{color:var(--mute);text-decoration:none}.crumbs a:hover{color:var(--acc);text-decoration:underline}.lede{font-size:clamp(1.08rem,1rem + .4vw,1.24rem);line-height:1.6;color:var(--ink2);margin:0 0 1rem}.meta{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;font-size:.86rem;color:var(--mute);margin:0}.meta span+span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--line2);vertical-align:middle;margin:-2px .85rem 0 -.6rem}.page{display:grid;grid-template-columns:minmax(0,1fr);gap:0 3rem;padding-top:2rem;padding-bottom:3rem}.prose{max-width:46rem;width:100%;min-width:0;overflow-wrap:break-word}.page:not(.has-toc) .prose{margin:0 auto}@media (min-width:1100px){.page.has-toc{grid-template-columns:minmax(0,46rem) 15.5rem;justify-content:center}.page.has-toc .prose{grid-column:1;grid-row:1}.side{grid-column:2;grid-row:1}.toc{position:sticky;top:1.25rem}}.prose>h2:first-child,.prose>h3:first-child{margin-top:.3em}.prose h2{padding-top:.2em}.toc{font-size:.9rem;margin-bottom:1.5rem}.toc details{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:.2rem .9rem}.toc summary{cursor:pointer;font-weight:650;padding:.6rem 0;list-style-position:inside;color:var(--ink2)}.toc ol{list-style:none;margin:0 0 .7rem;padding:0;counter-reset:t}.toc li{margin:0;counter-increment:t}.toc a{display:flex;gap:.5rem;padding:.32rem 0;color:var(--ink2);text-decoration:none;line-height:1.35}.toc a::before{content:counter(t);color:var(--mute);font-variant-numeric:tabular-nums;min-width:1.2em;font-size:.85em;padding-top:.08em}.toc a:hover{color:var(--acc)}.m{font-family:var(--fm);font-size:1.1em;white-space:nowrap;line-height:1}@media (max-width:600px){.m{white-space:normal}.m .rad,.m .fr,.m sup,.m sub,.eq .m{white-space:nowrap}}.m i{font-style:italic;padding-right:.04em}.m sup,.m sub{font-size:.7em;line-height:0}.m sup{vertical-align:.62em}.m sub{vertical-align:-.3em}.m .tx,.m .fn{font-style:normal}.m .fn{margin-right:.12em}.m .fn+sup{margin-left:-.12em;margin-right:.1em}.fr{position:relative;display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;font-size:.92em;margin:0 .12em;line-height:1.15}.fr>span:first-child{border-bottom:.07em solid currentColor;padding:0 .15em .06em}.fr>span:last-child{padding:.06em .15em 0}.rad{white-space:nowrap}.rc{border-top:.075em solid currentColor;padding:.08em .08em 0 .06em;margin-left:.02em}.rad .ix{font-size:.6em;vertical-align:.9em;margin-right:-.35em}.ov{border-top:.07em solid currentColor;padding-top:.05em}.vec,.hat{position:relative;display:inline-block}.vec::after{content:"→";position:absolute;left:0;right:0;top:-.72em;text-align:center;font-size:.7em;font-style:normal}.hat::after{content:"^";position:absolute;left:0;right:0;top:-.55em;text-align:center;font-size:.8em;font-style:normal}.bx{border:1.5px solid currentColor;padding:.15em .35em;border-radius:4px}.ka{color:var(--a-ink)}.kb{color:var(--b-ink)}.kc{color:var(--c-ink)}.kacc{color:var(--acc)}.eq{position:relative;display:block;text-align:center;margin:.4em 0 1.2em;padding:.85em 1em;overflow-x:auto;line-height:1.5}.eq .ln{display:block;padding:.18em 0;white-space:nowrap}.eq.al{display:grid;grid-template-columns:max-content max-content;justify-content:center;align-items:baseline;gap:.3em 0}.eq.al .l{text-align:right;white-space:nowrap}.eq.al .r{text-align:left;white-space:nowrap;padding-left:.28em}.eq .m,.eq.al>span{font-size:1.2em}.eq.big .m{font-size:1.6em}.box,.eq.boxed{border:1px solid var(--line);background:var(--card);border-radius:var(--r);box-shadow:var(--sh)}.box{padding:1.1rem 1.25rem;margin:0 0 1.4em}.box>:last-child{margin-bottom:0}.note,.tip,.warn,.key{border-radius:var(--r);padding:1rem 1.15rem;margin:0 0 1.4em;border:1px solid var(--line);background:var(--card);position:relative}.note>:last-child,.tip>:last-child,.warn>:last-child,.key>:last-child{margin-bottom:0}.note>:first-child,.tip>:first-child,.warn>:first-child,.key>:first-child{margin-top:0}.note{border-left:4px solid var(--a)}.tip{border-left:4px solid var(--c);background:var(--c-bg)}.warn{border-left:4px solid var(--b);background:var(--b-bg)}.key{border:1.5px solid var(--acc-line);background:var(--acc-bg)}.key>p:first-child strong:first-child,.note>p:first-child strong:first-child,.tip>p:first-child strong:first-child,.warn>p:first-child strong:first-child{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin-bottom:.15rem}.ex{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:1.1rem 1.25rem .4rem;margin:0 0 1.5em;box-shadow:var(--sh)}.ex>h3,.ex>h4{margin:0 0 .5em;font-size:1.08rem}.ex .ans{font-weight:650;border-top:1px dashed var(--line2);padding-top:.7em;margin-top:.2em}ol.steps{list-style:none;padding:0}ol.steps>li{position:relative;padding-left:2.4rem;margin:.75em 0}ol.steps>li::before{content:counter(list-item);position:absolute;left:0;top:.05em;width:1.65rem;height:1.65rem;border-radius:50%;background:var(--acc-bg);color:var(--acc);font-weight:750;font-size:.85rem;display:grid;place-items:center;border:1px solid var(--acc-line)}details{margin:0 0 1em}summary{cursor:pointer}details.sol{border:1px solid var(--line);border-radius:var(--r2);background:var(--bg2);padding:0 1rem}details.sol>summary{padding:.6rem 0;font-weight:650;color:var(--acc)}details.sol[open]{padding-bottom:.4rem;background:var(--card)}details.sol>:not(summary):first-of-type{margin-top:.2em}.hint{color:var(--mute);font-size:.95em}details.sol.hint-d>summary{color:var(--mute)}details.sol.hint-d[open]{background:var(--bg2)}details.sol .ans{font-weight:650;border-top:1px dashed var(--line2);padding-top:.6em}.cols{display:grid;gap:1.4rem;align-items:start;margin:0 0 1.5em}@media (min-width:700px){.cols{grid-template-columns:1fr 1fr}.cols.c3{grid-template-columns:repeat(3,1fr)}.cols.wide-l{grid-template-columns:3fr 2fr}}.cols>*{margin-bottom:0;min-width:0}.cols.stretch{align-items:stretch}.cols.stretch>*{height:100%}.pill{display:inline-block;font-size:.78rem;font-weight:650;padding:.12rem .55rem;border-radius:99px;background:var(--bg2);border:1px solid var(--line);color:var(--ink2);vertical-align:middle}.pill.l1{background:var(--c-bg);color:var(--c-ink);border-color:transparent}.pill.l2{background:var(--a-bg);color:var(--a-ink);border-color:transparent}.pill.l3{background:var(--b-bg);color:var(--b-ink);border-color:transparent}.pill.l4{background:var(--acc-bg);color:var(--acc);border-color:transparent}.pill.l5{background:var(--ink);color:var(--bg);border-color:transparent}dl.defs dt{font-weight:700;margin-top:1.1em;scroll-margin-top:1rem}dl.defs dd{margin:.2em 0 0;color:var(--ink2)}.meta-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:0 0 .8rem;padding:0;list-style:none}.meta-row li{margin:0;font-size:.8rem;font-weight:600;padding:.15rem .6rem;border-radius:99px;background:var(--bg2);border:1px solid var(--line);color:var(--ink2)}.big-num{font-size:2.1rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}.scrollbox{max-height:26rem;overflow:auto}.tw{position:relative;overflow-x:auto;margin:0 0 1.5em;border:1px solid var(--line);border-radius:var(--r);background:var(--card)}table{border-collapse:collapse;width:100%;font-size:.95rem;margin:0;font-variant-numeric:tabular-nums}th,td{padding:.55rem .8rem;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--bg2);font-weight:650;font-size:.88rem;color:var(--ink2)}tr:last-child td{border-bottom:0}td.n,th.n{text-align:right}td.c,th.c{text-align:center}caption{caption-side:bottom;font-size:.85rem;color:var(--mute);padding:.6rem .8rem;text-align:left}figure{margin:0 0 1.6em}.fig{position:relative;border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:1rem;box-shadow:var(--sh)}.fig.plain{border:0;box-shadow:none;background:none;padding:0}@media (max-width:600px){.prose .fig:not(.plain){margin-left:-.6rem;margin-right:-.6rem;padding:.55rem}.prose .fig.anim:not(.plain){padding-top:2.6rem}}figcaption{font-size:.88rem;color:var(--mute);margin-top:.75rem;line-height:1.5;text-align:center}.dg{display:block;margin:0 auto;height:auto;font-family:var(--f);overflow:visible}.fig .dg{max-height:30rem}.fig.sm .dg{max-width:min(100%,20rem)}.fig.md .dg{max-width:min(100%,28rem)}.fig.ms .dg{max-width:min(100%,24rem)}.fig.tall .dg{max-height:none}.fig.xs .dg{max-width:min(100%,14rem)}.fig.lg .dg{max-width:min(100%,36rem)}.ln,.ln-a,.ln-b,.ln-c,.ln-m,.ln-acc{fill:none;stroke-linecap:round;stroke-linejoin:round}.ln{stroke:var(--ink);stroke-width:2}.ln-a{stroke:var(--a);stroke-width:3}.ln-b{stroke:var(--b);stroke-width:3}.ln-c{stroke:var(--c);stroke-width:3}.ln-m{stroke:var(--mute);stroke-width:1.5}.ln-acc{stroke:var(--acc);stroke-width:2.5}.thin{stroke-width:1}.thick{stroke-width:4}.sw1{stroke-width:1}.sw2{stroke-width:2}.sw3{stroke-width:3}.sw5{stroke-width:5}.sw6{stroke-width:6}.sw8{stroke-width:8}.dash{stroke-dasharray:6 5}.dot-line{stroke-dasharray:1.5 4.5;stroke-linecap:round}.fa{fill:var(--a-bg);stroke:var(--a);stroke-width:1.5}.fb{fill:var(--b-bg);stroke:var(--b);stroke-width:1.5}.fc{fill:var(--c-bg);stroke:var(--c);stroke-width:1.5}.fm{fill:var(--bg2);stroke:var(--line2);stroke-width:1.5}.facc{fill:var(--acc-bg);stroke:var(--acc);stroke-width:1.5}.fw{fill:var(--card);stroke:var(--ink);stroke-width:2;stroke-linejoin:round}.fa-o{fill:var(--a-o);stroke:var(--a);stroke-width:1.5}.fb-o{fill:var(--b-o);stroke:var(--b);stroke-width:1.5}.fc-o{fill:var(--c-o);stroke:var(--c);stroke-width:1.5}.fy{fill:var(--y-bg);stroke:var(--y);stroke-width:1.5}.fa-s{fill:var(--a)}.fb-s{fill:var(--b)}.fc-s{fill:var(--c)}.facc-s{fill:var(--acc)}.fink{fill:var(--ink)}.fpaper{fill:var(--card)}.fmute{fill:var(--mute)}.ns{stroke:none}.dg .thin{stroke-width:1}.dg .thick{stroke-width:4}.dg .sw1{stroke-width:1}.dg .sw2{stroke-width:2}.dg .sw3{stroke-width:3}.dg .sw5{stroke-width:5}.dg .sw6{stroke-width:6}.dg .sw8{stroke-width:8}.dg .hair{stroke-width:.6}.op5{opacity:.5}.op3{opacity:.3}.ra{fill:none;stroke:var(--ink);stroke-width:1.5}.arc{fill:none;stroke:var(--ink2);stroke-width:1.5}.arc-a{fill:none;stroke:var(--a);stroke-width:1.75}.arc-b{fill:none;stroke:var(--b);stroke-width:1.75}.fmov{fill:var(--warn-bg);stroke:var(--warn);stroke-width:1.5}.pt{fill:var(--ink)}.grid{stroke:var(--line);stroke-width:1;fill:none}.axis{stroke:var(--mute);stroke-width:1.5;fill:none}.cell{stroke:var(--card);stroke-width:1.2}.tx{fill:var(--ink);font-size:15px;font-family:var(--f)}.tx-a{fill:var(--a-ink)}.tx-b{fill:var(--b-ink)}.tx-c{fill:var(--c-ink)}.tx-m{fill:var(--mute)}.tx-acc{fill:var(--acc)}.tx-w{fill:#fff}.it{font-family:var(--fm);font-style:italic}.sm{font-size:12.5px}.lg{font-size:19px}.xl{font-size:26px}.xxl{font-size:34px}.bd{font-weight:700}.mid{text-anchor:middle}.end{text-anchor:end}.halo{paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round}.draw{stroke-dasharray:1}.pop,.spin-in{transform-box:fill-box;transform-origin:center}.js .anim:not(.play) .draw{stroke-dashoffset:1}.js .anim:not(.play) :is(.fade,.pop,.rise,.slide-l,.slide-r){opacity:0}.play .draw{animation:pt-draw 1s ease-in-out both}.play .fade{animation:pt-fade .7s ease both}.play .pop{animation:pt-pop .55s cubic-bezier(.3,1.4,.6,1) both}.play .rise{animation:pt-rise .6s ease both}.play .slide-l{animation:pt-sl .7s ease both}.play .slide-r{animation:pt-sr .7s ease both}.pulse{animation:pt-pulse 2.4s ease-in-out infinite}.d1{animation-delay:.35s!important}.d2{animation-delay:.7s!important}.d3{animation-delay:1.05s!important}.d4{animation-delay:1.4s!important}.d5{animation-delay:1.75s!important}.d6{animation-delay:2.1s!important}.d7{animation-delay:2.45s!important}.d8{animation-delay:2.8s!important}.d9{animation-delay:3.15s!important}.d10{animation-delay:3.5s!important}.d11{animation-delay:3.85s!important}.d12{animation-delay:4.2s!important}.d13{animation-delay:4.55s!important}.d14{animation-delay:4.9s!important}.d15{animation-delay:5.25s!important}.d16{animation-delay:5.6s!important}.d17{animation-delay:5.95s!important}.d18{animation-delay:6.3s!important}.d19{animation-delay:6.65s!important}.d20{animation-delay:7.0s!important}@keyframes pt-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes pt-fade{from{opacity:0}to{opacity:1}}@keyframes pt-pop{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}@keyframes pt-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes pt-sl{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}@keyframes pt-sr{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}@keyframes pt-pulse{0%,100%{opacity:1}50%{opacity:.45}}.fig.anim:not(.plain){padding-top:2.7rem}.ctl{position:absolute;top:.55rem;right:.55rem;display:flex;gap:.3rem;z-index:1}.ctl button{font:600 .76rem var(--f);color:var(--ink2);background:var(--card);border:1px solid var(--line2);border-radius:99px;padding:.3rem .65rem;cursor:pointer;min-height:30px}.ctl button:hover{color:var(--acc);border-color:var(--acc-line)}.paused *{animation-play-state:paused!important}@media (prefers-reduced-motion:reduce){.js .anim:not(.play) .draw{stroke-dashoffset:0}.js .anim:not(.play) :is(.fade,.pop,.rise,.slide-l,.slide-r){opacity:1}*,*::before,*::after{animation:none!important;transition:none!important}}.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));gap:.9rem;margin:0 0 1.6em}.cards li{margin:0}.card{display:flex;flex-direction:column;gap:.3rem;height:100%;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:var(--r);background:var(--card);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}.card:hover{border-color:var(--acc-line);transform:translateY(-2px);box-shadow:var(--sh);color:var(--ink)}.card-k{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:650}.card-k:empty{display:none}.card-t{font-weight:700;line-height:1.3;color:var(--acc);letter-spacing:-.01em}.card-d{font-size:.88rem;color:var(--mute);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pn{display:grid;grid-template-columns:1fr 1fr;gap:.9rem;margin:3rem 0 1.5rem}.pn a{display:flex;flex-direction:column;padding:.85rem 1.05rem;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;font-weight:650;background:var(--card);line-height:1.35}.pn a:hover{border-color:var(--acc-line)}.pn span{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mute);font-weight:600;margin-bottom:.2rem}.pn-n{text-align:right;grid-column:2}.rel{margin-top:2.5rem;border-top:1px solid var(--line);padding-top:1.5rem}.rel-h{font-weight:750;font-size:1.15rem;margin-bottom:.9rem}.faq details{border-bottom:1px solid var(--line);margin:0;padding:.15rem 0}.faq details:first-of-type{border-top:1px solid var(--line)}.faq summary{font-weight:650;padding:.8rem 2rem .8rem 0;list-style:none;position:relative}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";position:absolute;right:.3rem;top:.65rem;font-size:1.3rem;color:var(--mute);font-weight:400}.faq details[open] summary::after{content:"−"}.faq details>:not(summary){color:var(--ink2)}.sources{font-size:.9rem;color:var(--ink2)}.sources li{margin:.45em 0}.tool{border:1.5px solid var(--acc-line);border-radius:16px;background:var(--card);padding:1.25rem;margin:0 0 2em;box-shadow:var(--sh)}.tool>h2:first-child,.tool>h3:first-child{margin-top:0;font-size:1.15rem}.tool-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.8rem;margin-bottom:1rem;align-items:end}.tool-grid.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-grid.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-grid.g4{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr))}.fld{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;font-weight:620;color:var(--ink2);margin:0}.fld .u{font-weight:400;color:var(--mute)}input,select,textarea,button{font:inherit;color:inherit}.fld input,.fld select,.tool input[type=text],.tool input[type=number],.tool select{width:100%;min-height:2.9rem;padding:.55rem .75rem;border:1.5px solid var(--line2);border-radius:10px;background:var(--bg);font-size:1.05rem;font-variant-numeric:tabular-nums;color:var(--ink)}.fld input:focus,.tool select:focus,.tool input:focus{outline:none;border-color:var(--acc2);box-shadow:0 0 0 3px var(--acc-bg)}.fld.a input{border-left:5px solid var(--a)}.fld.b input{border-left:5px solid var(--b)}.fld.c input{border-left:5px solid var(--c)}.fld input[aria-invalid=true]{border-color:var(--bad);background:var(--bad-bg)}.fld input.out{background:var(--c-bg);border-color:var(--c);font-weight:700}.seg{display:inline-flex;flex-wrap:wrap;gap:.3rem;padding:.25rem;background:var(--bg2);border:1px solid var(--line);border-radius:12px;margin:0 0 1rem}.seg label{margin:0;cursor:pointer}.seg input{position:absolute;opacity:0;pointer-events:none}.seg span{display:block;padding:.45rem .85rem;border-radius:9px;font-size:.92rem;font-weight:600;color:var(--ink2)}.seg input:checked+span{background:var(--card);color:var(--acc);box-shadow:var(--sh)}.seg input:focus-visible+span{outline:3px solid var(--acc2)}.row{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:0 0 1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.75rem;padding:.55rem 1.1rem;border-radius:10px;border:1.5px solid var(--acc);background:var(--acc);color:#fff;font-weight:650;cursor:pointer;text-decoration:none;font-size:.97rem}@media (prefers-color-scheme:dark){.btn{color:#0f1117}}.btn:hover{background:var(--acc2);border-color:var(--acc2);color:#fff}@media (prefers-color-scheme:dark){.btn:hover{color:#0f1117}}.btn.ghost{background:transparent;color:var(--acc)}.btn.ghost:hover{background:var(--acc-bg)}.btn.sm{min-height:2.2rem;padding:.3rem .75rem;font-size:.88rem}.out{margin:0}.res{border-radius:12px;background:var(--bg2);border:1px solid var(--line);padding:1rem 1.1rem;margin:0 0 1rem}.res:empty{display:none}.res-big{font-size:1.5rem;font-weight:780;letter-spacing:-.02em;line-height:1.3;margin:0 0 .3rem}.res-big .m{font-size:1em}.res-sub{color:var(--mute);font-size:.92rem;margin:0}.res.ok{background:var(--ok-bg);border-color:transparent}.res.bad{background:var(--bad-bg);border-color:transparent;color:var(--bad)}.res.warn{background:var(--warn-bg);border-color:transparent}.work{font-size:.98rem}.work>p:first-child{font-weight:700;margin-bottom:.4rem}.work ol{margin:0;padding-left:1.3em}.work li{margin:.35em 0}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.6rem;margin:0 0 1rem;padding:0;list-style:none}.kv li{margin:0;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem}.kv li>span{display:block;font-size:.82rem;color:var(--mute);font-weight:600}.kv b{font-size:1.12rem;font-variant-numeric:tabular-nums}.kv small{display:block;font-size:.8rem;color:var(--mute);margin-top:.1rem}.tool-fig{margin:0;border-radius:12px;background:var(--bg);border:1px solid var(--line);padding:.6rem}.tool-fig svg{display:block;width:100%;height:auto;max-height:22rem}.tool-cols{display:grid;gap:1.2rem}@media (min-width:760px){.tool-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}.tool-note{font-size:.85rem;color:var(--mute);margin:.6rem 0 0}.copy{margin-left:auto}.handle{cursor:grab;touch-action:none}.knob{stroke:var(--card);stroke-width:3}.xp-read{text-align:center;font-size:1.08rem;margin:.8rem 0 .4rem;line-height:1.9}.chk{display:inline-flex;gap:.5rem;align-items:center;font-size:.93rem;font-weight:600;color:var(--ink2);cursor:pointer;min-height:2.2rem}.chk input{width:1.15rem;height:1.15rem;accent-color:var(--acc)}.xp .row{justify-content:center;margin:.3rem 0 0}.xp .dg{overflow:hidden;max-height:none;width:100%;max-width:min(100%,30rem)}.hero-fig .ctl{top:0;left:0;right:auto}.handle:focus{outline:none}.handle:focus circle{stroke:var(--acc2);stroke-width:4}.handle:active{cursor:grabbing}.q{border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;margin:0 0 1rem;background:var(--card)}.q.right{border-color:var(--ok);background:var(--ok-bg)}.q.wrong{border-color:var(--bad);background:var(--bad-bg)}.choices{list-style:none;padding:0;display:grid;gap:.45rem}.choices li{margin:0}.choices label{display:flex;gap:.6rem;align-items:center;border:1px solid var(--line2);border-radius:10px;padding:.55rem .8rem;cursor:pointer;background:var(--card)}.choices input:checked+span{font-weight:650}.ws-head{display:none}.ws{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1rem;counter-reset:w}.ws>li{counter-increment:w;border:1px solid var(--line);border-radius:var(--r2);padding:.75rem .9rem 1.6rem;margin:0;background:var(--card);break-inside:avoid;position:relative}.ws>li::before{content:counter(w) ".";font-weight:750;margin-right:.35rem}.ws.wide{grid-template-columns:1fr}.ws svg{display:block;margin:.4rem auto 0;max-height:9rem;width:100%}.ws>li.big{grid-column:1/-1}.ws>li.big svg{max-height:15rem}.ws .space{display:block;height:3.2rem}.akey{border-top:2px dashed var(--line2);margin-top:2rem;padding-top:1rem}.akey ol{columns:2 15rem;column-gap:2rem}.akey li{break-inside:avoid}.print-only{display:none}.ans-line{display:block;border-bottom:1px solid var(--line2);height:1.7rem;margin-top:.5rem}.home .hero{background:var(--bg2);border-bottom:1px solid var(--line);background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:24px 24px}.hero-in{display:grid;gap:2rem;align-items:center;padding:2.4rem 0 2.6rem}@media (min-width:900px){.hero-in{grid-template-columns:1.05fr .95fr;padding:3.4rem 0}}.hero h1{font-size:clamp(2.3rem,1.4rem + 3.6vw,3.6rem);margin-top:0}.hero .lede{font-size:clamp(1.1rem,1rem + .5vw,1.3rem)}.hero-eq{font-family:var(--fm);font-size:clamp(2rem,1.4rem + 2.6vw,3.1rem);margin:.2rem 0 1.2rem;letter-spacing:.01em;white-space:nowrap}.hero-eq i{font-style:italic}.hero-eq sup{font-size:.6em}.hero-fig{margin:0}.hero-fig svg{display:block;width:100%;max-width:30rem;height:auto;margin:0 auto}.band{padding:3rem 0;border-bottom:1px solid var(--line)}.band.alt{background:var(--bg2)}.band h2{margin-top:0}.band-head{max-width:46rem;margin-bottom:1.5rem}.band-head p{color:var(--ink2);font-size:1.06rem}.home .prose-w{max-width:46rem}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;list-style:none;padding:0;margin:0 0 1rem}.tiles li{margin:0}.tile{display:block;height:100%;border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.15rem;background:var(--card);text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s}.tile:hover{border-color:var(--acc-line);transform:translateY(-2px);color:var(--ink)}.tile svg{display:block;width:3rem;height:3rem;margin-bottom:.6rem}.tile b{display:block;color:var(--acc);font-size:1.05rem;margin-bottom:.25rem}.tile span{font-size:.9rem;color:var(--mute);line-height:1.5;display:block}.ft{border-top:1px solid var(--line);background:var(--card);padding:2.5rem 0 2rem;font-size:.9rem;margin-top:1rem}.ft-top{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;margin-bottom:1.6rem}.ft-top p{margin:0;color:var(--mute)}.ft-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:1.4rem 1.6rem}.ft-h{font-weight:750;margin:0 0 .45rem}.ft-h a{color:var(--ink);text-decoration:none}.ft-cols ul{list-style:none;margin:0;padding:0}.ft-cols li{margin:.18rem 0}.ft-cols a{color:var(--mute);text-decoration:none;display:inline-block;padding:.12rem 0}.ft-cols a:hover{color:var(--acc);text-decoration:underline}.ft-cols .more{color:var(--acc)}.ft-bot{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;border-top:1px solid var(--line);margin:2rem 0 0;padding-top:1.2rem;color:var(--mute)}.ft-bot a{color:var(--mute)}@media print{:root{--bg:#fff;--card:#fff;--bg2:#f4f4f4}body{font-size:11.5pt;background:#fff;color:#000}.hd,.ft,.side,.crumbs,.pn,.rel,.ctl,.no-print,.meta,.skip,.tool-ctl{display:none!important}.ph{background:none;border:0;padding:0 0 .5rem}.page{padding:0;display:block}.prose{max-width:none}.fig,.ex,.box,.tool,.card{box-shadow:none}a{color:#000;text-decoration:none}.print-only{display:block}.ws-head{display:flex;justify-content:space-between;gap:2rem;margin:0 0 1rem;font-size:11pt}.ws-head span{flex:1;border-bottom:1px solid #000;padding-bottom:.2rem}.ws{grid-template-columns:repeat(2,1fr);gap:.6rem}.ws>li{border-color:#999}.akey{break-before:page;border:0}.ph:has(+ .page .t-worksheet) .lede{display:none}.t-worksheet .ws{grid-template-columns:repeat(3,1fr);gap:.45rem}.t-worksheet .ws.wide{grid-template-columns:1fr}.t-worksheet .ws>li{padding:.4rem .55rem 1rem;font-size:10.5pt}.t-worksheet .ws svg{max-height:6.2rem}.t-worksheet .ws .space{height:2.2rem}.grid{stroke:#b5b9c2}h1{font-size:20pt;margin:0 0 .3rem}details{display:block}details>summary{list-style:none}h2,h3{break-after:avoid}figure,.ex,.q{break-inside:avoid}.js .anim:not(.play) .draw{stroke-dashoffset:0}.js .anim:not(.play) :is(.fade,.pop,.rise,.slide-l,.slide-r){opacity:1}*{animation:none!important}}