:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#f9f9f7;--surface:#fcfcfb;--surface-2:#f3f2ee;--ink:#0b0b0b;--ink-2:#52514e;--muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--border:#0b0b0b1a;--focus:#2a78d6;--land:#dcdbd4;--deep:#0d2a4a;--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--s6:#008300;--s7:#4a3aa7;--s8:#e34948;--seq-100:#cde2fb;--seq-200:#9ec5f4;--seq-300:#6da7ec;--seq-400:#3987e5;--seq-500:#256abf;--seq-600:#184f95;--seq-700:#0d366b;--div-mid:#f0efec;--good:#0ca30c;--warning:#fab219;--serious:#ec835a;--critical:#d03b3b;--good-text:#006300;--band:#2a78d61a;--band-inner:#2a78d62e}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#222220;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--focus:#3987e5;--land:#2e2e2b;--deep:#071a30;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;--div-mid:#383835;--good-text:#0ca30c;--band:#3987e529;--band-inner:#3987e547}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#0d0d0d;--surface:#1a1a19;--surface-2:#222220;--ink:#fff;--ink-2:#c3c2b7;--muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--focus:#3987e5;--land:#2e2e2b;--deep:#071a30;--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--s6:#008300;--s7:#9085e9;--s8:#e66767;--div-mid:#383835;--good-text:#0ca30c;--band:#3987e529;--band-inner:#3987e547}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--page);color:var(--ink);font-feature-settings:"kern";margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit;-webkit-text-decoration-color:var(--axis);text-decoration-color:var(--axis);text-underline-offset:3px}a:hover{text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:3px}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.25}h1{font-size:26px}h2{font-size:18px}h3{font-size:15px}p{margin:0}code,.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em}.num{font-variant-numeric:tabular-nums}.shell{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);min-height:100vh;display:grid;overflow-x:clip}.topbar{z-index:20;background:color-mix(in srgb, var(--page) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding-bottom:16px;position:sticky;top:0}.brand{align-items:center!important}.brand-mark{color:var(--seq-500);flex:none}.topbar-waves{pointer-events:none;height:24px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.topbar-waves svg{width:200%;height:100%;animation:linear infinite drift;position:absolute;bottom:0;left:0}.topbar-waves path{fill:currentColor}.topbar-waves .w1{color:var(--seq-200);opacity:.7;animation-duration:40s}.topbar-waves .w2{color:var(--seq-300);opacity:.55;animation-duration:28s;animation-direction:reverse}.topbar-waves .w3{color:var(--seq-500);opacity:.5;animation-duration:18s}@keyframes drift{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.topbar-waves svg{animation:none}}:root[data-theme=dark] .topbar-waves .w1{color:var(--seq-600);opacity:.6}:root[data-theme=dark] .topbar-waves .w2{color:var(--seq-500);opacity:.45}:root[data-theme=dark] .topbar-waves .w3{color:var(--seq-400);opacity:.35}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])) .topbar-waves .w1{color:var(--seq-600);opacity:.6}:root:where(:not([data-theme=light])) .topbar-waves .w2{color:var(--seq-500);opacity:.45}:root:where(:not([data-theme=light])) .topbar-waves .w3{color:var(--seq-400);opacity:.35}}.topbar-inner{align-items:center;gap:24px;max-width:1280px;margin:0 auto;padding:10px 24px;display:flex}.brand{white-space:nowrap;align-items:baseline;gap:10px;text-decoration:none;display:flex}.brand b{letter-spacing:-.01em;font-size:16px}.brand span{color:var(--muted);font-size:13px}.nav{scrollbar-width:none;gap:2px;min-width:0;display:flex;overflow-x:auto}.nav a{color:var(--ink-2);white-space:nowrap;border-radius:6px;padding:6px 10px;font-size:14px;text-decoration:none}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a.active{color:var(--ink);background:var(--surface-2);font-weight:600}.topbar .spacer{flex:1}.page{width:100%;max-width:1280px;margin:0 auto;padding:28px 24px 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 24px;margin-bottom:20px;display:flex}.page-head>div{min-width:0;max-width:100%}.page-head .lede{color:var(--ink-2);max-width:72ch;margin-top:6px}.eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px;font-size:12px}.grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}@media (width<=960px){.cols-3,.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.cols-2,.cols-3,.cols-4{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}.page{padding:20px 16px 48px}.topbar-inner{flex-wrap:wrap;gap:6px 12px;padding:8px 16px}.topbar .nav{order:3;width:100%;margin:0 -10px}.brand span{display:none}input[type=search]{width:100%;min-width:0}}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:0;padding:16px 18px}.card-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.card-head .sub{color:var(--muted);font-size:13px}.card .note{color:var(--ink-2);margin-top:10px;font-size:13px}.stat .label{color:var(--ink-2);font-size:13px}.stat .value{letter-spacing:-.02em;margin-top:2px;font-size:26px;font-weight:600}.stat .detail{color:var(--muted);margin-top:2px;font-size:12.5px}.toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:16px;display:flex}.seg{background:var(--surface-2);border-radius:8px;padding:2px;display:inline-flex}.seg button{color:var(--ink-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 10px;font-size:13px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--border);font-weight:600}.btn{border:1px solid var(--border);background:var(--surface);color:var(--ink);font:inherit;cursor:pointer;border-radius:7px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2)}.btn.icon{justify-content:center;width:32px;height:32px;padding:6px}.btn.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}.btn.primary:hover{opacity:.88}.btn:disabled{opacity:.5;cursor:default}select,input[type=search],input[type=text],textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:6px 10px;font-size:14px}input[type=search]{min-width:220px}label.check{color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:inline-flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--axis);white-space:nowrap;padding:6px 10px;font-size:12.5px;font-weight:600}td{border-bottom:1px solid var(--grid);vertical-align:top;padding:6px 10px}td.r,th.r{text-align:right;font-variant-numeric:tabular-nums}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}.badge{border:1px solid var(--border);color:var(--ink-2);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:1px 8px;font-size:12px;display:inline-flex}.badge .dot{border-radius:50%;width:7px;height:7px}.dot.high{background:var(--critical)}.dot.medium{background:var(--serious)}.dot.low{background:var(--warning)}.dot.method{background:var(--muted)}.dot.good{background:var(--good)}.callout{border-left:3px solid var(--s1);background:var(--surface-2);color:var(--ink-2);border-radius:0 8px 8px 0;padding:10px 14px;font-size:14px}.chart{width:100%;position:relative}.chart svg{display:block;overflow:visible}.chart .tick text{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart .grid line{stroke:var(--grid);stroke-width:1px}.chart .baseline{stroke:var(--axis);stroke-width:1px}.chart .crosshair{stroke:var(--axis);stroke-width:1px;pointer-events:none}.legend{color:var(--ink-2);flex-wrap:wrap;gap:4px 14px;margin:0 0 8px;font-size:12.5px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{border-radius:2px;width:12px;height:10px;display:inline-block}.legend i.line{border-radius:1px;height:2px}.tooltip{pointer-events:none;z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:140px;max-width:280px;padding:8px 10px;font-size:12.5px;position:absolute;box-shadow:0 4px 16px #0000001f}.tooltip .t-head{color:var(--muted);margin-bottom:4px}.tooltip .t-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.tooltip .t-row .k{color:var(--ink-2);align-items:center;gap:6px;display:inline-flex}.tooltip .t-row .k i{border-radius:1px;width:10px;height:2px;display:inline-block}.tooltip .t-row b{font-variant-numeric:tabular-nums;color:var(--ink)}.skeleton{color:var(--muted);padding:24px 0}.error{color:var(--critical)}.footer{border-top:1px solid var(--border);color:var(--muted);font-size:12.5px}.footer-inner{grid-template-columns:1.3fr 1fr 1.2fr;gap:24px 40px;max-width:1280px;margin:0 auto;padding:8px 24px 20px;font-size:13.5px;line-height:1.55;display:grid}.footer-col h4{text-transform:uppercase;letter-spacing:.07em;color:#ffffff8c;margin:2px 0 8px;font-size:12px;font-weight:600}.footer-col ul{gap:4px;margin:0 0 12px;padding:0;list-style:none;display:grid}.footer-col p+p{margin-top:6px}.footer-brand{color:#fff;align-items:center;gap:8px;margin-bottom:6px;font-size:15px;display:flex}.footer-brand .brand-mark{color:var(--seq-200)}.footer-muted{color:#ffffff80;font-size:12.5px}.footer-cite{color:#ffffffb8}.footer a{text-decoration-color:#ffffff59}.footer a:hover{text-decoration-color:#fff}.cc-badge{color:#fff;border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:12.5px;text-decoration:none;display:inline-flex}.cc-badge:hover{border-color:#fff9}.footer-bottom{color:#ffffff8c;border-top:1px solid #ffffff1f;flex-wrap:wrap;gap:6px 10px;max-width:1280px;margin:0 auto;padding:12px 24px 22px;font-size:12.5px;display:flex}@media (width<=760px){.footer-inner{grid-template-columns:minmax(0,1fr);gap:18px;padding:8px 16px 16px}.footer-bottom{padding:12px 16px 20px}}.prose{max-width:76ch}.prose p+p,.prose p+ul,.prose ul+p{margin-top:10px}.prose h2{margin:28px 0 8px}.prose h3{margin:18px 0 6px}.prose ul{margin:8px 0;padding-left:20px}.prose li+li{margin-top:4px}.eq{background:var(--surface-2);white-space:pre;border-radius:6px;margin:8px 0;padding:8px 12px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;overflow-x:auto}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.info-btn{vertical-align:middle;width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;margin:-4px 0 -4px 2px;padding:0;display:inline-flex}.info-btn:hover,.info-btn[aria-expanded=true]{color:var(--ink);background:var(--surface-2)}.info-card{z-index:100;background:var(--surface);width:320px;max-width:calc(100vw - 16px);color:var(--ink);border:1px solid var(--border);text-align:left;text-transform:none;letter-spacing:0;white-space:normal;border-radius:10px;padding:12px 14px 14px;font-size:13.5px;font-weight:400;line-height:1.5;animation:.12s ease-out info-in;position:fixed;box-shadow:0 12px 32px #00000029}.info-card:focus{outline:none}.info-card.sheet{width:auto;max-width:none;bottom:8px;left:8px;right:8px;visibility:visible!important}.info-card p{color:var(--ink-2)}.info-card p+p{margin-top:8px}.info-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.info-head h3{font-size:14px}.info-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:18px;line-height:1}.info-close:hover{color:var(--ink)}.info-more{color:var(--s1);margin-top:10px;font-size:13px;text-decoration:none;display:inline-block}.info-more:hover{text-decoration:underline}@keyframes info-in{0%{opacity:0;transform:translateY(-2px)}}@media (prefers-reduced-motion:reduce){.info-card{animation:none}}.card[id]{scroll-margin-top:72px}math.formula{color:var(--ink);font-size:1.05em}math.formula.block{margin:6px 0}.info-formula{background:var(--surface-2);border-radius:8px;margin:8px 0 4px;padding:6px 10px;overflow-x:auto}.eq-block math.formula.block{margin:14px 0 2px;font-size:1.1em}.eq-block .note{margin-top:2px}.wheel-hint{color:#fff;pointer-events:none;z-index:5;background:#00000052;border-radius:8px;place-items:center;font-size:15px;font-weight:600;animation:.15s ease-out info-in;display:grid;position:absolute;inset:0}.elsewhere{background:var(--surface-2);border-radius:8px;gap:12px;padding:12px 14px;display:grid}.elsewhere p{color:var(--ink-2);font-size:13.5px}.chips{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--ink-2);border-radius:999px;align-items:baseline;gap:6px;padding:2px 9px;font-size:12.5px;text-decoration:none;display:inline-flex}a.chip:hover{color:var(--ink);border-color:var(--axis)}.chip .num,.chip.muted{color:var(--muted)}.chip.strong{color:var(--ink);border-color:var(--s1)}.waves{pointer-events:none;overflow:hidden}.waves svg{width:200%;height:100%;animation:linear infinite drift;position:absolute;bottom:0;left:0}.waves path{fill:currentColor}.waves .w2{animation-direction:reverse}@media (prefers-reduced-motion:reduce){.waves svg{animation:none}}.hero{background:linear-gradient(180deg, color-mix(in srgb, var(--seq-100) 60%, var(--page)) 0%, color-mix(in srgb, var(--seq-100) 25%, var(--page)) 100%);margin:-28px calc(50% - 50vw) 20px;padding:30px calc(50vw - 50%) 60px;position:relative}:root[data-theme=dark] .hero{background:linear-gradient(180deg, color-mix(in srgb, var(--seq-700) 45%, var(--page)) 0%, var(--page) 100%)}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])) .hero{background:linear-gradient(180deg, color-mix(in srgb, var(--seq-700) 45%, var(--page)) 0%, var(--page) 100%)}}.hero .page-head{z-index:1;margin-bottom:0;position:relative}.hero-waves{position:absolute;bottom:0;left:0;right:0}.hero-waves .w1{color:var(--seq-200);opacity:.55;animation-duration:48s}.hero-waves .w2{color:var(--seq-300);opacity:.4;animation-duration:34s}.hero-waves .w3{color:var(--page);opacity:1;animation-duration:26s}@media (width<=680px){.hero{margin-top:-20px;padding-top:22px;padding-bottom:54px}}.footer{background:var(--deep);color:#ffffffb8;border-top:0;margin-top:24px;padding-top:40px;position:relative}.footer a{color:#fff}.footer-waves{position:absolute;top:0;left:0;right:0}.footer-waves .w1{color:var(--seq-500);opacity:.5;animation-duration:44s}.footer-waves .w2{color:var(--seq-600);opacity:.7;animation-duration:30s}.footer-waves .w3{color:var(--deep);opacity:1;animation-duration:22s}.footer-waves{background:var(--page)}.wave-loader{color:var(--muted);align-items:center;gap:10px;padding:24px 0;font-size:14px;display:inline-flex}.wave-loader svg{overflow:hidden}.wave-loader path{fill:none;stroke:var(--seq-400);stroke-width:2.4px;stroke-linecap:round;stroke-dasharray:22 66;animation:1.1s linear infinite wave-run}@keyframes wave-run{to{stroke-dashoffset:-88px}}@media (prefers-reduced-motion:reduce){.wave-loader path{stroke-dasharray:none;animation:none}}:root[data-theme=dark] .hero-waves .w1{color:var(--seq-600);opacity:.5}:root[data-theme=dark] .hero-waves .w2{color:var(--seq-500);opacity:.35}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])) .hero-waves .w1{color:var(--seq-600);opacity:.5}:root:where(:not([data-theme=light])) .hero-waves .w2{color:var(--seq-500);opacity:.35}}
