@font-face{font-family:Fraunces;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/fraunces-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/fraunces-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url(/fonts/nunito-sans-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url(/fonts/nunito-sans-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-display: "Fraunces", Georgia, serif;--font-ui: "Nunito Sans", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--paper: #FFF4E2;--paper-2: #FFFBF3;--card: #FFFFFF;--ink: #1B1B2F;--ink-soft: #51506B;--ink-faint: #656379;--rule: #E2D7C2;--teal: #0E9594;--coral: #F0604A;--yellow: #F5C04E;--accent: var(--teal);--focus: var(--coral);--ok: #0F7F4F;--sky: #CFF0EF;--halftone: #9FDAD9;--code-bg: #1E1E33;--code-bar-bg: #171729;--code-fg: #E8E6F5;--code-dim: #9A98BC;--code-title: #FFD9A0;--code-rule: #3A3A5E;--code-hl: rgba(245, 192, 78, .13);--code-hl-edge: var(--yellow);--diff-add: rgba(118, 217, 160, .13);--diff-del: rgba(255, 138, 122, .13);--tok-redact: #807EA8;--shadow-hard: 6px 6px 0 var(--ink);--shadow-hard-sm: 4px 4px 0 var(--ink);--redact-bg: var(--ink)}html[data-theme=dark]{--paper: #141019;--paper-2: #1C1724;--card: #241E2F;--ink: #FFF3E3;--ink-soft: #C9C1D4;--ink-faint: #9C93A9;--rule: #3C3349;--sky: #0F3B3C;--halftone: #1E5A59;--teal: #46D2CE;--coral: #FF8168;--yellow: #FFD277;--ok: #5FD186;--code-bg: #15111C;--code-bar-bg: #0F0C14;--shadow-hard: 6px 6px 0 #080510;--shadow-hard-sm: 4px 4px 0 #080510;--redact-bg: #453B55}.v-xss{--v: #D4660A;--v-soft: #FDEBD6;--v-ink: #7A3A00}.v-idor{--v: #7340D4;--v-soft: #EDE5FD;--v-ink: #3E1B80}.v-ssrf{--v: #0B8584;--v-soft: #D7F2F1;--v-ink: #04504F}.v-auth{--v: #C7304B;--v-soft: #FBE1E6;--v-ink: #7A1226}.v-race{--v: #2A8C4C;--v-soft: #DDF3E3;--v-ink: #11512A}.v-sqli{--v: #A32C7D;--v-soft: #FBE3F2;--v-ink: #5E0E46}.v-leak{--v: #2B5FC4;--v-soft: #E0E9FC;--v-ink: #16357A}html[data-theme=dark] .v-xss{--v: #FFA85C;--v-soft: #3A2512;--v-ink: #FFD6AE}html[data-theme=dark] .v-idor{--v: #B193FF;--v-soft: #2A1F4D;--v-ink: #DED2FF}html[data-theme=dark] .v-ssrf{--v: #45CECC;--v-soft: #123A3A;--v-ink: #B8F0EF}html[data-theme=dark] .v-auth{--v: #FF7E95;--v-soft: #3E1823;--v-ink: #FFD0D9}html[data-theme=dark] .v-race{--v: #5FD186;--v-soft: #11331F;--v-ink: #C4F0D3}html[data-theme=dark] .v-sqli{--v: #F58FD0;--v-soft: #3A1230;--v-ink: #FBD6EE}html[data-theme=dark] .v-leak{--v: #7FA6FF;--v-soft: #182748;--v-ink: #CFDCFF}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--font-ui);font-size:17px;line-height:1.65;font-optical-sizing:auto}img,svg{max-width:100%}a{color:inherit}button{font:inherit;color:inherit}h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip{position:absolute;left:1rem;top:-4rem;z-index:60;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:6px;text-decoration:none;transition:top .15s}.skip:focus{top:1rem}.wrap{width:min(1180px,100% - 2.5rem);margin-inline:auto}[hidden]{display:none!important}.progress{position:fixed;inset:0 0 auto;height:3px;z-index:50;transform-origin:0 50%;transform:scaleX(0);background:var(--v, var(--accent));will-change:transform}.site-head{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(9px);border-bottom:3px solid var(--ink)}.site-head .wrap{display:flex;align-items:center;gap:1.2rem;height:68px}.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--teal);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.brand-mark svg{width:22px;height:22px}.brand-name{font-family:var(--font-display);font-weight:900;font-size:1.22rem;letter-spacing:-.015em}.brand-name em{font-style:normal;color:var(--coral)}.site-nav{margin-left:auto;display:flex;align-items:center;gap:.35rem}.site-nav a{text-decoration:none;font-weight:700;font-size:.92rem;padding:.45rem .8rem;border-radius:9px;border:2px solid transparent}.site-nav a:hover{border-color:var(--ink);background:var(--yellow);color:#1b1b2f}.site-nav a[aria-current]{background:var(--sky);border-color:var(--ink)}.head-tools{display:flex;gap:.4rem}.icon-btn{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;background:var(--card);border:2px solid var(--ink);border-radius:9px;padding:.4rem .7rem;font-size:.82rem;font-weight:700;box-shadow:2px 2px 0 var(--ink)}.icon-btn:active{transform:translate(2px,2px);box-shadow:none}.icon-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}html[data-theme=dark] .icon-sun{display:none}html:not([data-theme=dark]) .icon-moon{display:none}.nav-toggle{display:none}.hero{position:relative;padding:3.2rem 0 0;overflow:hidden;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:var(--sky);z-index:-2}.hero:after{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(var(--halftone) 2.1px,transparent 2.2px);background-size:13px 13px;-webkit-mask-image:linear-gradient(to bottom,#000 35%,transparent 100%);mask-image:linear-gradient(to bottom,#000 35%,transparent 100%)}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:2rem;align-items:center}p.hero-kicker{display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;max-width:none;font-family:var(--font-mono);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;background:var(--card);border:2px solid var(--ink);border-radius:999px;padding:.3rem .8rem;box-shadow:3px 3px 0 var(--ink)}.hero h1{font-family:var(--font-display);font-weight:900;font-size:clamp(2.3rem,5vw,3.6rem);line-height:1.03;letter-spacing:-.025em;margin:1.1rem 0 0;font-variation-settings:"SOFT" 20,"WONK" 1,"opsz" 90}.hero h1 .mark{position:relative;z-index:0;white-space:nowrap}.hero h1 .mark:after{content:"";position:absolute;left:-.08em;right:-.08em;bottom:.04em;height:.34em;background:var(--yellow);border-radius:3px;z-index:-1}html[data-theme=dark] .hero h1 .mark:after{background:var(--yellow);height:.15em;bottom:-.02em;left:-.04em;right:-.04em;border-radius:4px}.hero p:not(.hero-kicker){margin-top:1.05rem;font-size:1.08rem;max-width:34ch;color:var(--ink-soft)}html[data-theme=dark] .hero p:not(.hero-kicker){color:var(--ink)}.hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}.btn{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;font-weight:800;font-size:.95rem;padding:.66rem 1.15rem;border:3px solid var(--ink);border-radius:12px;box-shadow:var(--shadow-hard-sm);background:var(--card);transition:transform .12s,box-shadow .12s}.btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}.btn:active{transform:translate(4px,4px);box-shadow:none}.btn-primary{background:var(--coral);color:#fff}html[data-theme=dark] .btn-primary{color:#2a0c04}.hero-art{position:relative}.sticker{position:absolute;background:var(--paper-2);border:3px solid var(--ink);border-radius:10px;box-shadow:var(--shadow-hard-sm);padding:.5rem .7rem;max-width:190px;line-height:1.35}.sticker b{display:block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;color:var(--v, var(--teal))}.sticker span{font-size:.82rem;font-weight:600}.sticker-1{top:4%;right:-2%;transform:rotate(2.2deg)}.sticker-2{bottom:18%;left:-4%;transform:rotate(-2.6deg)}.torn{display:block;width:100%;height:74px;margin:1.6rem 0 -1px}.torn path{fill:var(--paper)}.scene{--sc-stroke: var(--ink);--sc-shoe: #FFF8EC;--sc-eye: #FFFFFF;--sc-pupil: #1B1B2F;--sc-rack: #2F3356;--sc-slot: #474C77;--sc-glass: #DFF6F5;--sc-clue: #1B1B2F;display:block;width:100%;height:auto}html[data-theme=dark] .scene{--sc-rack: #2B3550;--sc-slot: #44506F;--sc-shoe: #F4E8D4;--sc-glass: #A8E6E4}.scene [class^=sc-]{stroke:var(--sc-stroke);stroke-linecap:round;stroke-linejoin:round}.scene .sc-ground{fill:color-mix(in srgb,var(--teal) 32%,var(--paper));stroke-width:3.5}.scene .sc-rack{fill:var(--sc-rack);stroke-width:4}.scene .sc-slot{fill:var(--sc-slot);stroke-width:2}.scene .sc-led-a{fill:var(--teal);stroke-width:1.6}.scene .sc-led-b{fill:var(--coral);stroke-width:1.6}.scene .sc-led-c{fill:var(--yellow);stroke-width:1.6}.scene .sc-cable{fill:none;stroke:var(--teal);stroke-width:5}.scene .sc-cable-b{fill:none;stroke:var(--coral);stroke-width:5}.scene .sc-body{fill:var(--teal);stroke-width:4.5}.scene .sc-spot{fill:var(--coral);stroke-width:2.5}.scene .sc-limb{fill:none;stroke-width:6}.scene .sc-shoe{fill:var(--sc-shoe);stroke-width:3.5}.scene .sc-eye{fill:var(--sc-eye);stroke-width:3}.scene .sc-pupil{fill:var(--sc-pupil);stroke:none}.scene .sc-mouth{fill:none;stroke-width:3.5}.scene .sc-ant{fill:none;stroke-width:4}.scene .sc-antdot{fill:var(--yellow);stroke-width:3}.scene .sc-ring{fill:var(--coral);stroke-width:4}.scene .sc-glass{fill:var(--sc-glass);stroke-width:4}.scene .sc-shine{fill:none;stroke:#fff;stroke-width:4.5;opacity:.8}.scene .sc-handle{stroke-width:11;fill:none}.scene .sc-clue{font-family:var(--font-mono);font-size:13px;font-weight:700;fill:var(--sc-clue);stroke:none}.section{padding:.5rem 0 4rem}.section-head{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.3rem}.section-head h2{font-family:var(--font-display);font-weight:900;font-size:clamp(1.7rem,3.4vw,2.3rem);letter-spacing:-.02em;font-variation-settings:"SOFT" 20,"WONK" 1}.section-head p{color:var(--ink-soft);font-size:.95rem;margin-left:auto;font-family:var(--font-mono)}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.9rem}.filters a,.filters button{cursor:pointer;background:var(--card);border:2.5px solid var(--ink);color:inherit;border-radius:999px;padding:.36rem .85rem;font-weight:700;font-size:.86rem;display:inline-flex;align-items:center;gap:.45rem;text-decoration:none;box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s}.filters .dot{width:9px;height:9px;border-radius:50%;background:var(--v, var(--ink));border:1.5px solid var(--ink)}.filters a:hover,.filters button:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.filters .is-active{background:var(--v, var(--yellow));color:#fff;transform:translate(3px,3px);box-shadow:none}.filters .is-active .dot{background:#fff}.filters [data-filter=all].is-active{background:var(--ink);color:var(--paper)}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem}.card{position:relative;display:flex;flex-direction:column;background:var(--card);border:3px solid var(--ink);border-radius:16px;box-shadow:var(--shadow-hard);overflow:hidden;transition:transform .14s,box-shadow .14s}.card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--ink)}.card-cover{position:relative;height:104px;background:var(--v-soft);border-bottom:3px solid var(--ink);overflow:hidden;display:flex;align-items:center;padding-left:1.1rem}.card-cover:after{content:"";position:absolute;inset:0;background-image:radial-gradient(color-mix(in srgb,var(--v) 45%,transparent) 2px,transparent 2.1px);background-size:12px 12px;-webkit-mask-image:linear-gradient(115deg,transparent 38%,#000 100%);mask-image:linear-gradient(115deg,transparent 38%,#000 100%)}.card-sigil{font-family:var(--font-display);font-weight:900;font-size:2.5rem;line-height:1;color:var(--v);letter-spacing:-.04em;position:relative;z-index:1;-webkit-text-stroke:1.5px var(--ink)}.card-body{padding:1.1rem 1.2rem 1.25rem;display:flex;flex-direction:column;flex:1}.tag{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;font-family:var(--font-mono);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;background:var(--v);color:#fff;border:2px solid var(--ink);border-radius:999px;padding:.2rem .62rem;text-decoration:none}html[data-theme=dark] .tag{color:#12132a}.card h3{font-family:var(--font-display);font-weight:900;font-size:1.22rem;line-height:1.2;letter-spacing:-.015em;margin:.7rem 0 .45rem}.card h3 a{text-decoration:none}.card h3 a:after{content:"";position:absolute;inset:0}.card p{color:var(--ink-soft);font-size:.93rem}.card-foot{margin-top:auto;padding-top:.95rem;display:flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:.74rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em}.card-foot .bounty{margin-left:auto;color:#1b1b2f;background:var(--yellow);border:2px solid var(--ink);border-radius:6px;padding:.05rem .4rem;font-weight:700}.card.is-feature{grid-column:1 / -1}.card.is-feature .card-cover{height:140px}.card.is-feature .card-sigil{font-size:3.4rem}.card.is-feature h3{font-size:1.75rem}.card.is-feature p{font-size:1rem;max-width:62ch}.empty{border:3px dashed var(--rule);border-radius:16px;padding:2.5rem;text-align:center;color:var(--ink-faint)}.site-foot{border-top:3px solid var(--ink);background:var(--paper-2);padding:2.4rem 0 2rem}.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}.foot-grid h4{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.6rem}.foot-grid ul{list-style:none;padding:0;display:grid;gap:.35rem;font-size:.92rem}.foot-grid p{font-size:.95rem;max-width:40ch}.foot-grid a{text-decoration-thickness:2px;text-underline-offset:3px}.foot-note{margin-top:2rem;padding-top:1.1rem;border-top:2px dashed var(--rule);font-size:.84rem;color:var(--ink-faint);display:flex;flex-wrap:wrap;gap:.8rem}.foot-note span:last-child{margin-left:auto;font-family:var(--font-mono)}.article-head{padding:2.4rem 0 1.4rem;position:relative}.article-head:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--v-soft);border-bottom:3px solid var(--ink)}.crumbs{font-family:var(--font-mono);font-size:.78rem;color:var(--ink-soft);margin-bottom:1rem}.article-head h1{font-family:var(--font-display);font-weight:900;letter-spacing:-.025em;font-size:clamp(2rem,4.4vw,3rem);line-height:1.06;max-width:19ch;margin-top:.6rem;font-variation-settings:"SOFT" 20,"WONK" 1,"opsz" 90}.article-meta{display:flex;flex-wrap:wrap;gap:.6rem 1.1rem;margin-top:1.1rem;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.article-layout{display:grid;grid-template-columns:232px minmax(0,1fr);gap:3rem;align-items:start;padding:2.4rem 0 3rem;max-width:1010px;margin-inline:auto}.toc{position:sticky;top:96px}.toc h2{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.7rem}.toc ol{list-style:none;margin:0;padding:0;border-left:3px solid var(--rule)}.toc a{display:block;padding:.33rem 0 .33rem .9rem;margin-left:-3px;border-left:3px solid transparent;text-decoration:none;font-size:.9rem;color:var(--ink-soft);line-height:1.35}.toc .lvl-3 a{padding-left:1.6rem;font-size:.84rem}.toc a:hover{color:var(--ink)}.toc a.is-current{color:var(--v);font-weight:800;border-left-color:var(--v)}.toc-foot{margin-top:1.4rem;font-family:var(--font-mono);font-size:.74rem;color:var(--ink-faint);line-height:1.5}.prose{max-width:64ch;font-size:18px;line-height:1.68}.prose>*+*{margin-top:1.15rem}.prose>p:first-child{font-size:1.2rem;line-height:1.55;font-weight:600;color:var(--ink)}.prose h2{font-family:var(--font-display);font-weight:900;font-size:1.68rem;letter-spacing:-.02em;line-height:1.2;margin-top:2.9rem;scroll-margin-top:92px;position:relative;font-variation-settings:"SOFT" 20,"WONK" 1}.prose h2:before{content:"";position:absolute;left:-1.15rem;top:.45em;width:7px;height:.62em;background:var(--v);border-radius:2px}.prose h3{font-family:var(--font-display);font-weight:700;font-size:1.24rem;letter-spacing:-.015em;margin-top:2rem;scroll-margin-top:92px}.prose h2+*,.prose h3+*{margin-top:.85rem}.prose a{color:var(--v-ink);text-decoration-thickness:2px;text-underline-offset:3px}html[data-theme=dark] .prose a{color:var(--v)}.prose strong{font-weight:800}.prose em{font-style:italic}.prose hr{border:0;border-top:2px dashed var(--rule);margin:2.2rem 0}.prose ul,.prose ol{padding-left:1.4rem}.prose li+li{margin-top:.4rem}.prose li::marker{color:var(--v);font-weight:700}.prose blockquote{border-left:4px solid var(--v);padding:.2rem 0 .2rem 1.1rem;color:var(--ink-soft);font-style:italic}.prose :not(pre)>code{font-family:var(--font-mono);font-size:.86em;background:var(--v-soft);border:1px solid color-mix(in srgb,var(--v) 35%,transparent);border-radius:5px;padding:.08em .33em;overflow-wrap:anywhere;-webkit-box-decoration-break:clone;box-decoration-break:clone}.prose table{width:100%;border-collapse:collapse;font-size:.93rem}.prose th,.prose td{text-align:left;padding:.5rem .7rem;border-bottom:1px solid var(--rule)}.prose th{font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.redacted{font-family:var(--font-mono);letter-spacing:-.04em;background:var(--redact-bg);color:var(--redact-bg);border-radius:2px;padding:0 .12em;user-select:none}.callout{border:3px solid var(--ink);border-radius:14px;box-shadow:var(--shadow-hard-sm);padding:1.1rem 1.25rem}.callout>*+*{margin-top:.7rem}.callout-tldr{background:var(--sky)}html[data-theme=dark] .callout-tldr{background:#123437}.callout-note{background:var(--paper-2)}.callout-warn{background:color-mix(in srgb,var(--coral) 16%,var(--paper-2))}.callout-label{font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--label-fg, #0A6E6D)}html[data-theme=dark] .callout-label{--label-fg: var(--teal)}.callout-warn .callout-label{--label-fg: #A8341F}html[data-theme=dark] .callout-warn .callout-label{--label-fg: var(--coral)}.callout p{font-size:.97rem}.factbox{display:grid;grid-template-columns:172px minmax(0,1fr);border:3px solid var(--ink);border-radius:14px;overflow:hidden;box-shadow:var(--shadow-hard-sm);background:var(--card);margin:1.8rem 0 2.2rem}.fact-sev{display:flex;flex-direction:column;justify-content:center;gap:.18rem;padding:1rem 1.1rem;border-right:3px solid var(--ink);background:var(--sev-bg, var(--sky));color:var(--sev-fg, var(--ink))}.fact-sev-label{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;opacity:.92}.fact-sev-value{font-family:var(--font-display);font-weight:900;font-size:1.62rem;line-height:1;letter-spacing:-.025em;font-variation-settings:"SOFT" 20,"WONK" 1}.fact-sev-score{font-family:var(--font-mono);font-size:.76rem;opacity:1}.is-critical{--sev-bg: var(--coral);--sev-fg: #FFFFFF;--sev-accent: var(--coral)}.is-high{--sev-bg: var(--yellow);--sev-fg: #1B1B2F;--sev-accent: var(--yellow)}.is-medium{--sev-bg: var(--sky);--sev-fg: #1B1B2F;--sev-accent: var(--teal)}.is-low{--sev-bg: var(--paper-2);--sev-fg: var(--ink);--sev-accent: var(--ink-faint)}html[data-theme=dark] .fact-sev{background:color-mix(in srgb,var(--sev-accent) 18%,var(--card));color:var(--sev-accent)}html[data-theme=dark] .fact-sev-label{opacity:.85}.fact-list{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--rule);margin:0}.fact{background:var(--card);padding:.8rem 1rem .85rem}.fact-wide{grid-column:1 / -1}.fact dt{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-faint)}.fact dd{margin:.28rem 0 0;font-weight:800;font-size:1rem;line-height:1.35}.fact-vector dd{font-family:var(--font-mono);font-size:.76rem;font-weight:400;color:var(--ink-soft);overflow-wrap:anywhere}.prose .steps{list-style:none;counter-reset:s;padding:0;display:grid;gap:.75rem}.prose .steps li{counter-increment:s;position:relative;margin:0;padding:.8rem 1rem .8rem 3.2rem;background:var(--card);border:2.5px solid var(--ink);border-radius:12px;box-shadow:3px 3px 0 var(--ink);font-size:.97rem}.prose .steps li:before{content:counter(s);position:absolute;left:.75rem;top:.72rem;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--v);color:#fff;border:2.5px solid var(--ink);font-family:var(--font-mono);font-weight:700;font-size:.85rem}html[data-theme=dark] .prose .steps li:before{color:#12132a}.prose .steps li>strong:first-child,.prose .takeaways li>strong:first-child{display:block}.prose .steps li>p,.prose .takeaways li>p{margin:0}.prose .takeaways{list-style:none;padding:0;display:grid;gap:.9rem}.prose .takeaways li{position:relative;margin:0;padding-left:2.1rem;font-size:.97rem}.prose .takeaways li:before{content:"✶";position:absolute;left:0;top:-.1rem;font-size:1.25rem;color:var(--v)}.shot{margin:2rem 0}.shot p{margin:0}.shot img{display:block;width:100%;height:auto;border:3px solid var(--ink);border-radius:12px;box-shadow:var(--shadow-hard-sm)}.shot figcaption{margin-top:.7rem;font-size:.85rem;color:var(--ink-faint);font-style:italic}.timeline{list-style:none;padding:0;margin:1.6rem 0;border-left:3px dashed var(--rule)}.timeline li{position:relative;padding:0 0 1.1rem 1.5rem}.timeline li:before{content:"";position:absolute;left:-9px;top:.45rem;width:15px;height:15px;border-radius:50%;background:var(--card);border:3px solid var(--v)}.timeline time{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);display:block}.tl-what{font-weight:800}.tl-note{display:block;font-size:.91rem;color:var(--ink-soft)}figure.code{margin:1.9rem 0;background:var(--code-bg);border:3px solid var(--ink);border-radius:12px;box-shadow:5px 5px 0 var(--ink);overflow:hidden}.code-bar{display:flex;align-items:center;gap:.6rem;padding:.5rem .5rem .5rem .9rem;background:var(--code-bar-bg);border-bottom:1px solid #2E2E4C;font-family:var(--font-mono);font-size:.76rem;letter-spacing:.02em}.code-title{color:var(--code-title);font-weight:700}.code-lang{margin-left:auto;color:var(--code-dim);text-transform:lowercase;letter-spacing:.06em;font-size:.7rem}.code-copy{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .55rem;cursor:pointer;font-family:var(--font-mono);font-size:.7rem;color:var(--code-dim);background:transparent;border:1px solid var(--code-rule);border-radius:6px;transition:color .15s,border-color .15s}.code-copy svg{fill:none;stroke:currentColor;stroke-width:1.5}.code-copy:hover{color:var(--code-fg);border-color:var(--code-fg)}.code-copy.is-done{color:#76d9a0;border-color:currentColor}figure.code pre{margin:0;padding:.95rem 0 1.05rem;overflow-x:auto;font-family:var(--font-mono);font-size:.845rem;line-height:1.62;color:var(--code-fg);background:none!important;tab-size:2}figure.code code{display:block;min-width:max-content;background:none}.code-line{display:block;padding:0 1.1rem}.code-line:empty:before{content:" "}.code-line.is-hl{background:var(--code-hl);box-shadow:inset 3px 0 0 var(--code-hl-edge)}.code-line.is-add{background:var(--diff-add)}.code-line.is-del{background:var(--diff-del)}.tok-redact{color:var(--tok-redact);letter-spacing:-.04em;user-select:none}figure.code pre::-webkit-scrollbar{height:9px}figure.code pre::-webkit-scrollbar-thumb{background:var(--code-rule);border-radius:9px}.article-foot{border-top:3px solid var(--ink);background:var(--sky);padding:2.2rem 0}html[data-theme=dark] .article-foot{background:#123437}.author-card{display:flex;gap:1.1rem;align-items:center;max-width:640px}.author-card .ava{flex:0 0 auto;width:66px;height:66px;border-radius:50%;border:3px solid var(--ink);background:var(--card);display:grid;place-items:center;box-shadow:3px 3px 0 var(--ink)}.author-card h3{font-family:var(--font-display);font-weight:900;font-size:1.15rem}.author-card p{font-size:.93rem;color:var(--ink-soft)}html[data-theme=dark] .author-card p{color:var(--ink-soft)}.next-up{margin-top:2rem;display:grid;gap:.6rem}.next-up h4{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.next-up a{display:flex;align-items:center;gap:.7rem;text-decoration:none;background:var(--card);border:2.5px solid var(--ink);border-radius:12px;padding:.7rem .9rem;box-shadow:3px 3px 0 var(--ink);font-weight:700}.next-up a:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.next-up .mini-tag{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;background:var(--v-soft);color:var(--v-ink);border:2px solid var(--ink);border-radius:999px;padding:.1rem .5rem}html[data-theme=dark] .next-up .mini-tag{color:var(--v-ink)}.page-narrow{--page-measure: 43.25rem}.page-narrow>*{max-width:var(--page-measure);margin-inline:auto}.page-narrow .prose{max-width:var(--page-measure)}.page-head{padding:2.4rem 0 1.2rem}.page-head h1{font-family:var(--font-display);font-weight:900;font-size:clamp(2rem,4.4vw,2.9rem);letter-spacing:-.025em;font-variation-settings:"SOFT" 20,"WONK" 1}.page-body{padding-bottom:4rem}@media(max-width:1080px){.article-layout{grid-template-columns:minmax(0,1fr);gap:1.5rem}.toc{position:static;border:2.5px solid var(--ink);border-radius:12px;padding:.9rem 1rem;background:var(--card)}.toc ol{display:flex;flex-wrap:wrap;gap:.1rem .4rem;border-left:0}.toc a{padding:.25rem .55rem;border-left:0;border:2px solid transparent;border-radius:999px}.toc .lvl-3{display:none}.toc a.is-current{border-color:var(--v);background:var(--v-soft)}.toc-foot{display:none}.prose{max-width:none}.prose h2:before{display:none}}@media(max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:1.2rem}.hero-art{max-width:460px;margin-inline:auto;width:100%}.sticker-1{right:0}.sticker-2{left:0}.cards{grid-template-columns:minmax(0,1fr)}.foot-grid{grid-template-columns:1fr 1fr}}@media(max-width:680px){body{font-size:16px}.wrap{width:min(1180px,100% - 1.8rem)}.site-head .wrap{height:60px;gap:.6rem}.brand-name{font-size:.98rem;white-space:nowrap}.brand-mark{width:32px;height:32px;border-radius:9px}.brand-mark svg{width:18px;height:18px}[data-theme-toggle] [data-theme-label]{display:none}[data-theme-toggle]{padding:.4rem .55rem}.nav-toggle{display:inline-flex}.site-nav{position:absolute;top:60px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:.25rem;padding:.8rem 1.1rem 1.1rem;background:var(--paper);border-bottom:3px solid var(--ink)}.site-nav.is-open{display:flex}.site-nav a{border:2px solid var(--ink);background:var(--card)}.head-tools{margin-left:auto}.sticker{display:none}.hero{padding-top:2rem}.prose{font-size:17px}.factbox{grid-template-columns:minmax(0,1fr)}.fact-sev{flex-direction:row;align-items:baseline;gap:.7rem;border-right:0;border-bottom:3px solid var(--ink);padding:.7rem 1rem}.fact-sev-label{display:none}.fact-sev-score{margin-left:auto}.fact-list{grid-template-columns:minmax(0,1fr)}.hero-kicker{font-size:.68rem;padding:.28rem .7rem}.foot-grid{grid-template-columns:minmax(0,1fr)}.article-head h1{max-width:none}.card.is-feature .card-sigil{font-size:2.6rem}.card.is-feature h3{font-size:1.35rem}}@media print{.site-head,.site-foot,.toc,.progress,.code-copy,.article-foot{display:none!important}body{background:#fff;color:#000}figure.code{box-shadow:none}}.article-lead{font-size:18px;max-width:64ch;margin-bottom:2.2rem}.article-lead .factbox{margin:0 0 1.4rem}@media(max-width:1080px){.article-lead{max-width:none}}.code-bar.is-http{padding-left:.6rem}.code-bar.is-http .code-title{color:var(--code-fg);font-weight:400;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-bar.is-http .code-lang{text-transform:uppercase;letter-spacing:.12em;font-size:.64rem}.http-method,.http-status{flex:0 0 auto;display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.7rem;font-weight:700;letter-spacing:.06em;padding:.18rem .5rem;border-radius:6px;border:1.5px solid currentColor}.http-method{color:var(--yellow)}.http-status.is-2xx{color:#76d9a0}.http-status.is-3xx{color:var(--yellow)}.http-status.is-4xx,.http-status.is-5xx{color:#ff8a7a}.http-status.is-1xx{color:#9a98bc}.code-bar.is-http:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:currentColor;opacity:.22}.code-bar.is-request{color:var(--yellow)}.code-bar.is-response{color:#9a98bc}.code-bar.is-2xx{color:#76d9a0}.code-bar.is-3xx{color:var(--yellow)}.code-bar.is-4xx,.code-bar.is-5xx{color:#ff8a7a}.code-bar.is-http{position:relative}.code-bar.is-http .code-copy{color:var(--code-dim)}.bounty-band{font-family:var(--font-mono);font-weight:700;letter-spacing:.01em;white-space:nowrap;text-transform:none}.fact .bounty-band{font-size:.95rem}.pager{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:2.6rem;padding-top:1.6rem;border-top:2px dashed var(--rule)}.pager .btn{font-size:.9rem;padding:.55rem 1rem}.pager .btn.is-off{opacity:.4;box-shadow:none;cursor:default}.pager .btn.is-off:hover{transform:none;box-shadow:none}.pager-count{margin-inline:auto;order:0;font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase}@media(max-width:560px){.pager{gap:.6rem}.pager-count{order:2;width:100%;text-align:center;margin:.4rem 0 0}}.code-wrap-toggle{display:inline-flex;align-items:center;padding:.3rem .45rem;cursor:pointer;color:var(--code-dim);background:transparent;border:1px solid var(--code-rule);border-radius:6px;transition:color .15s,border-color .15s}.code-wrap-toggle svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.code-wrap-toggle:hover{color:var(--code-fg);border-color:var(--code-fg)}.code-wrap-toggle[aria-pressed=true]{color:var(--code-title);border-color:currentColor}figure.code.is-wrapped pre{overflow-x:hidden}figure.code.is-wrapped code{min-width:0}figure.code.is-wrapped .code-line{white-space:pre-wrap;overflow-wrap:anywhere}.search-form{margin-bottom:1rem}.search-form input{width:100%;font:inherit;font-size:1.1rem;color:var(--ink);background:var(--card);border:3px solid var(--ink);border-radius:12px;padding:.8rem 1rem;box-shadow:var(--shadow-hard-sm)}.search-form input::placeholder{color:var(--ink-faint)}.search-form input:focus{outline:3px solid var(--focus);outline-offset:2px}.search-status{font-family:var(--font-mono);font-size:.8rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.4rem}.search-results{display:grid;gap:.8rem}.search-hit{display:block;text-decoration:none;background:var(--card);border:2.5px solid var(--ink);border-radius:12px;padding:.9rem 1.1rem;box-shadow:3px 3px 0 var(--ink);transition:transform .12s,box-shadow .12s}.search-hit:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--ink)}.search-hit-title{display:block;font-family:var(--font-display);font-weight:900;font-size:1.1rem;letter-spacing:-.015em;margin-bottom:.2rem}.search-hit-excerpt{display:block;font-size:.93rem;color:var(--ink-soft)}.search-hit-excerpt mark{background:var(--yellow);color:#1b1b2f;border-radius:3px;padding:0 .15em}
