:root{--bg:#fff;--bg-soft:#f6f7f8;--bg-code:#f6f7f8;--fg:#1f2328;--fg-muted:#626a73;--fg-faint:#8b929a;--line:#e3e5e8;--line-strong:#d0d4d9;--accent:#0b63ce;--flash:#fff6d6;--high:#c62a2f;--medium:#c25400;--low:#9a6b00;--nit:#7b838c;--add:#1a7f37;--del:#c62a2f;--hl-keyword:#a3247a;--hl-string:#0a6b3d;--hl-number:#0550ae;--hl-comment:#7b838c;--hl-title:#6639ba;--hl-type:#953800;--hl-attr:#0550ae;--hl-meta:#7b838c;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;--bar:48px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111315;--bg-soft:#181b1e;--bg-code:#181b1e;--fg:#e4e6e9;--fg-muted:#9aa1a9;--fg-faint:#6d747c;--line:#262a2e;--line-strong:#353a40;--accent:#6cb0ff;--flash:#2b2a1c;--high:#ff6b6b;--medium:#ff9a4d;--low:#e3b341;--nit:#8b929a;--add:#4ac26b;--del:#ff7b72;--hl-keyword:#ff7ab2;--hl-string:#7ee0a1;--hl-number:#79c0ff;--hl-comment:#7d858d;--hl-title:#d2a8ff;--hl-type:#ffa657;--hl-attr:#79c0ff;--hl-meta:#8b929a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111315;--bg-soft:#181b1e;--bg-code:#181b1e;--fg:#e4e6e9;--fg-muted:#9aa1a9;--fg-faint:#6d747c;--line:#262a2e;--line-strong:#353a40;--accent:#6cb0ff;--flash:#2b2a1c;--high:#ff6b6b;--medium:#ff9a4d;--low:#e3b341;--nit:#8b929a;--add:#4ac26b;--del:#ff7b72;--hl-keyword:#ff7ab2;--hl-string:#7ee0a1;--hl-number:#79c0ff;--hl-comment:#7d858d;--hl-title:#d2a8ff;--hl-type:#ffa657;--hl-attr:#79c0ff;--hl-meta:#8b929a;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--bar) + 16px)}body{background:var(--bg);color:var(--fg);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}code,kbd,pre{font-family:var(--mono);font-size:.875em}kbd{border:1px solid var(--line-strong);text-align:center;border-bottom-width:2px;border-radius:4px;min-width:1.5em;padding:0 .35em;font-size:.8em;line-height:1.5;display:inline-block}[hidden]{display:none!important}.bar{z-index:10;height:var(--bar);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:0 16px;display:flex;position:sticky;top:0}.brand{color:var(--fg);flex:none;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.brand:hover{text-decoration:none}.bar-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--fg-muted);flex:1;font-size:13px;overflow:hidden}.bar-actions{gap:4px;display:flex}.bar button{height:28px;color:var(--fg-muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:0 10px;font-size:13px}.bar button:hover{color:var(--fg);background:var(--bg-soft)}.bar button[aria-pressed=true]{color:var(--fg);border-color:var(--line-strong);background:var(--bg-soft)}.bar .theme{place-items:center;width:28px;padding:0;display:grid}.layout{grid-template-columns:minmax(0,1fr);max-width:1180px;margin:0 auto;padding:0 16px;display:grid}.main{width:100%;min-width:0;max-width:780px;margin:0 auto;padding:40px 0 24px}.side{display:none}@media (min-width:1080px){.layout.has-toc{grid-template-columns:240px minmax(0,1fr);gap:56px}.layout.has-toc .main{margin:0}.side{top:var(--bar);max-height:calc(100vh - var(--bar));scrollbar-width:thin;align-self:start;padding:40px 0 24px;display:block;position:sticky;overflow-y:auto}}.toc{font-size:13px}.toc-label{color:var(--fg-faint);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;font-size:11px;font-weight:600}.toc a{color:var(--fg-muted);border-radius:5px;margin-left:-8px;padding:3px 8px;display:block}.toc a:hover{color:var(--fg);background:var(--bg-soft);text-decoration:none}.toc a.current{color:var(--fg);background:var(--bg-soft)}.toc-head{margin-top:4px;font-weight:600}.outline{margin:0 0 8px;padding:0;list-style:none}.outline .depth-3 a{padding-left:20px}.is-review .outline a{grid-template-columns:8px 1fr;align-items:baseline;column-gap:8px;display:grid}.outline-title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.outline-loc{font-family:var(--mono);color:var(--fg-faint);white-space:nowrap;text-overflow:ellipsis;grid-column:2;font-size:11px;overflow:hidden}.foot{max-width:780px;color:var(--fg-faint);text-align:center;margin:0 auto;padding:24px 16px 48px;font-size:12px}@media (hover:none){.foot{display:none}}.status{text-align:center;color:var(--fg-muted);padding:80px 16px}.start{max-width:560px;margin:0 auto;padding:14vh 16px 48px}.start h1{letter-spacing:-.01em;margin:0 0 8px;font-size:24px;line-height:1.3}.lead{color:var(--fg-muted);margin:0 0 24px}.open{gap:8px;display:flex}.open input{border:1px solid var(--line-strong);background:var(--bg);min-width:0;height:38px;color:var(--fg);font:14px var(--mono);border-radius:8px;flex:1;padding:0 12px}.open input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 20%, transparent);outline:none}.primary{background:var(--fg);height:38px;color:var(--bg);border:0;border-radius:8px;padding:0 18px;font-size:14px;font-weight:600}.primary:hover{opacity:.88}.hint{min-height:1.6em;color:var(--high);margin:8px 0 24px;font-size:13px}.muted{color:var(--fg-muted)}.small{font-size:13px}.prose{overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose p,.prose ul,.prose ol,.prose blockquote,.prose .code,.prose .table,.prose details{margin:0 0 16px}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{letter-spacing:-.01em;margin:32px 0 12px;line-height:1.3;position:relative}.prose h1{margin-top:0;font-size:28px}.prose h2{border-bottom:1px solid var(--line);padding-bottom:6px;font-size:20px}.prose h3{font-size:16px}.prose h4,.prose h5,.prose h6{font-size:15px}.anchor{color:var(--fg-faint);opacity:0;padding-right:6px;font-weight:400;position:absolute;right:100%}h1:hover>.anchor,h2:hover>.anchor,h3:hover>.anchor,h4:hover>.anchor,.anchor:focus-visible{opacity:1}.anchor:hover{color:var(--accent);text-decoration:none}.prose ul,.prose ol{padding-left:1.6em}.prose li+li{margin-top:4px}.prose li>p{margin-bottom:8px}.prose li>input[type=checkbox]{vertical-align:middle;margin:0 .4em 0 -1.3em}.prose ul:has(>li>input[type=checkbox]){list-style:none}.prose blockquote{border-left:3px solid var(--line-strong);color:var(--fg-muted);padding:0 0 0 14px}.prose hr{border:0;border-top:1px solid var(--line);margin:32px 0}.prose img{border-radius:4px;max-width:100%;height:auto}.prose :not(pre)>code{background:var(--bg-code);border:1px solid var(--line);border-radius:4px;padding:.15em .35em;font-size:.85em}.table{overflow-x:auto}.prose table{border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:14px}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:6px 12px}.prose th{background:var(--bg-soft);font-weight:600}.code{border:1px solid var(--line);background:var(--bg-code);border-radius:8px;position:relative}.code-bar{pointer-events:none;justify-content:space-between;align-items:center;padding:4px 6px 0 12px;display:flex;position:absolute;top:0;left:0;right:0}.code-lang{color:var(--fg-faint);font:11px var(--mono)}.code .copy{pointer-events:auto;opacity:0;transition:opacity .12s}.code:hover .copy,.code .copy:focus-visible{opacity:1}@media (hover:none){.code .copy{opacity:1}}.copy{border:1px solid var(--line-strong);background:var(--bg);height:24px;color:var(--fg-muted);border-radius:5px;padding:0 8px;font-size:12px}.copy:hover{color:var(--fg)}.prose pre{tab-size:4;margin:0;padding:26px 14px 12px;line-height:1.5;overflow-x:auto}.prose pre code{font-size:13px}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-literal,.hljs-doctag{color:var(--hl-keyword)}.hljs-string,.hljs-regexp,.hljs-template-tag,.hljs-selector-attr{color:var(--hl-string)}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-variable.constant_{color:var(--hl-number)}.hljs-comment,.hljs-quote{color:var(--hl-comment);font-style:italic}.hljs-title,.hljs-section,.hljs-title.function_{color:var(--hl-title)}.hljs-type,.hljs-title.class_,.hljs-class .hljs-title{color:var(--hl-type)}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-name,.hljs-selector-class,.hljs-selector-id{color:var(--hl-attr)}.hljs-meta,.hljs-tag{color:var(--hl-meta)}.hljs-section,.hljs-strong{font-weight:600}.hljs-emphasis{font-style:italic}.hljs-link{color:var(--accent)}.hljs-addition{color:var(--add);background:color-mix(in srgb, var(--add) 12%, transparent)}.hljs-deletion{color:var(--del);background:color-mix(in srgb, var(--del) 12%, transparent)}.source{border:1px solid var(--line);background:var(--bg-code);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:0;padding:16px;font-size:13px;line-height:1.55}.sev-high{--sev:var(--high)}.sev-medium{--sev:var(--medium)}.sev-low{--sev:var(--low)}.sev-nit{--sev:var(--nit)}.dot{background:var(--sev,var(--nit));border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.review-head{margin-bottom:40px}.eyebrow{font:13px var(--mono);gap:6px;margin-bottom:6px;display:flex}.review-repo,.review-num{color:var(--fg-muted)}.review-head h1{letter-spacing:-.015em;margin:0 0 10px;font-size:26px;line-height:1.25}.byline{color:var(--fg-muted);margin:0 0 20px;font-size:14px}.byline strong{color:var(--fg);font-weight:600}.ref{background:var(--bg-soft);color:var(--fg);border-radius:4px;padding:.1em .4em;font-size:12.5px}.diffstat{font-family:var(--mono);font-size:13px}.add{color:var(--add)}.del{color:var(--del)}.meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px 24px;margin:0;padding:14px 0;display:grid}.meta dt{color:var(--fg-faint);letter-spacing:.06em;text-transform:uppercase;grid-row:1;font-size:11px;font-weight:600}.meta dd{grid-row:2;margin:0;font-size:14px}@media (max-width:640px){.meta{grid-template-columns:1fr 1fr}.meta dt,.meta dd{grid-row:auto}.meta dd{margin-bottom:4px}}.mono{font-family:var(--mono);font-size:13px}.disclaimer{color:var(--fg-faint);margin:12px 0 0;font-size:12.5px}.review h2{letter-spacing:.06em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 16px;font-size:13px;font-weight:600;position:relative}.review-summary{margin-bottom:48px}.review-summary .prose{font-size:16px}.review-findings{margin-bottom:40px}.review-findings h2{margin-right:16px;display:inline-block}.filter{vertical-align:1px;flex-wrap:wrap;gap:6px;margin-bottom:16px;display:inline-flex}.chip{border:1px solid var(--line-strong);height:26px;color:var(--fg);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;display:inline-flex}.chip:hover{background:var(--bg-soft)}.chip[aria-pressed=false]{color:var(--fg-faint);border-style:dashed}.chip[aria-pressed=false] .dot{box-shadow:inset 0 0 0 1.5px var(--sev);background:0 0}.empty{color:var(--fg-muted)}.finding{border-top:1px solid var(--line);padding:24px 0 28px;transition:background-color 1.2s}.finding-head{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.finding-num{min-width:1.4em;color:var(--fg-faint);font:13px var(--mono);flex:none}.finding-num:hover{color:var(--accent);text-decoration:none}.badge{background:color-mix(in srgb, var(--sev) 12%, transparent);height:20px;color:var(--sev);letter-spacing:.02em;border-radius:999px;flex:none;align-items:center;gap:5px;padding:0 8px;font-size:11.5px;font-weight:600;display:inline-flex;position:relative;top:-1px}.badge .dot{width:6px;height:6px}.finding h3{letter-spacing:-.01em;margin:0;font-size:17px;line-height:1.35}.finding h3 code{font-size:.85em}.finding-loc{font:12.5px var(--mono);align-items:center;gap:8px;min-width:0;margin:0 0 14px calc(1.4em + 10px);display:flex}.finding-loc .path{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;min-width:0;overflow:hidden}.path-inner{direction:ltr;unicode-bidi:embed}.finding-loc .dir{color:var(--fg-muted)}.finding-loc .file{color:var(--fg)}.finding-loc a.path:hover .file{color:var(--accent)}.finding-loc .copy{height:20px;font:11px var(--sans);opacity:0;flex:none}.finding:hover .finding-loc .copy,.finding-loc .copy:focus-visible{opacity:1}@media (hover:none){.finding-loc .copy{display:none}}.finding>.prose,.finding>.block{margin-left:calc(1.4em + 10px)}@media (max-width:640px){.finding-loc,.finding>.prose,.finding>.block{margin-left:0}}.finding>.prose+.prose,.finding>*+.block{margin-top:14px}.block-label{color:var(--fg-faint);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-size:11px;font-weight:600}.scenario>.prose{border-left:2px solid color-mix(in srgb, var(--sev) 55%, transparent);padding-left:12px}.verification{color:var(--fg-muted);font-size:13.5px}.verification-label{color:var(--add);letter-spacing:.06em;text-transform:uppercase;margin-right:8px;font-size:11px;font-weight:600;display:inline-block}.verification-label:before{content:"✓ "}.verification>p:first-of-type{display:inline}.dropped{border-top:1px solid var(--line);margin-bottom:40px;padding-top:16px}.dropped>summary{cursor:pointer;color:var(--fg-muted);font-size:14px;font-weight:600}.dropped>summary:hover{color:var(--fg)}.dropped p{margin:8px 0;font-size:13px}.dropped ul{margin:8px 0 0;padding:0;list-style:none}.dropped li{border-bottom:1px solid var(--line);padding:8px 0;font-size:14px}.dropped li:last-child{border-bottom:0}.dropped-title{color:var(--fg-muted);text-decoration:line-through;-webkit-text-decoration-color:var(--fg-faint);text-decoration-color:var(--fg-faint)}.dropped .loc{color:var(--fg-faint);margin-left:8px;font-size:12px}.dropped-reason{color:var(--fg-muted);margin-top:2px;font-size:13px;display:block}.dropped code:not(.loc){font-size:.85em}.flash{border-radius:2px;animation:1.6s ease-out flash}@keyframes flash{0%,30%{background-color:var(--flash);box-shadow:0 0 0 10px var(--flash)}to{background-color:#0000;box-shadow:0 0 0 10px #0000}}@media (prefers-reduced-motion:reduce){.flash{animation:none}}@media print{.bar,.side,.foot,.copy,.filter,.anchor{display:none!important}.layout.has-toc{display:block}.finding{break-inside:avoid}.dropped:not([open])>:not(summary){display:block}}
