@font-face{font-family:Archivo;src:url(/fonts/archivo.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono.woff2)format("woff2");font-weight:100 900;font-display:swap}@view-transition{navigation:auto}:root{color-scheme:light dark;--paper:light-dark(#fff,#111);--ink:light-dark(#111,#f2f2f0);--concrete:light-dark(#ededeb,#1e1e1e);--muted:light-dark(#5c5c5c,#a3a3a0);--line:light-dark(#e4e4e2,#2c2c2c);--line-strong:light-dark(#8a8a87,#6e6e6c);--band:light-dark(#111,#0a0a0a);--band-fg:#f2f2f0;--ash:#bdbdbd;--band-line:#2c2c2c;--seal:#b0122c;--now-fg:light-dark(#8e0e23,#f4a3ae);--now-bg:light-dark(#f8e3e6,#3a1016);--focus:light-dark(#b0122c,#f2f2f0);--font:"Archivo", ui-sans-serif, system-ui, sans-serif;--mono:"Geist Mono", ui-monospace, "Cascadia Mono", monospace;--track-display:-.05em;--ease-out:cubic-bezier(.16, 1, .3, 1);--s-2xs:4px;--s-xs:8px;--s-sm:12px;--s-md:16px;--s-lg:24px;--s-xl:40px;--s-2xl:48px;--s-3xl:64px;--gutter:40px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--paper);color:var(--ink);font:400 16px/1.55 var(--font);-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--line-strong) var(--paper);hanging-punctuation:first last;scroll-padding-top:24px}body{text-rendering:optimizelegibility;min-height:100dvh;caret-color:var(--seal);flex-direction:column;margin:0;display:flex}main{flex:1}h1,h2,h3,h4{letter-spacing:var(--track-display);text-wrap:balance;margin:0;font-weight:800}p,ul,ol,dl,dd,figure,pre,blockquote{margin:0}p,li,dd{text-wrap:pretty}ul,ol{padding:0;list-style:none}img,svg{max-width:100%;display:block}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:2px}a:hover{text-decoration-color:var(--seal)}::selection{background:var(--ink);color:var(--paper)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.band :focus-visible{outline-color:var(--band-fg)}code,kbd,samp,pre{font-family:var(--mono);font-variant-ligatures:none;font-size:.92em}.num,td,.stat b{font-variant-numeric:tabular-nums}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{left:var(--s-md);background:var(--ink);color:var(--paper);z-index:10;padding:12px 16px;font-weight:700;position:absolute;top:-100px}.skip:focus{top:var(--s-md)}.wrap{width:100%;max-width:1180px;padding-inline:var(--gutter);margin-inline:auto}.wm{letter-spacing:-.055em;white-space:nowrap;font-weight:800;line-height:.9}.seal{background:var(--seal);vertical-align:top;width:.22em;height:.22em;margin-top:.1em;margin-left:.06em;display:inline-block}.lockup{letter-spacing:-.045em;font-weight:800;line-height:1}.lockup span{font-weight:400}.endorse{gap:6px;display:grid}.endorse .name{letter-spacing:-.045em;font-size:44px;font-weight:800;line-height:1}.endorse small{color:var(--muted);font-size:13px}.endorse small b{color:var(--ink);letter-spacing:-.03em;font-weight:800}.endorse small .seal{font-size:22px}.band .endorse small{color:var(--ash)}.band .endorse small b{color:var(--band-fg)}.topbar{background:var(--band);color:var(--band-fg);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.topbar .wrap{justify-content:space-between;gap:var(--s-md);padding-block:10px;display:flex}.topbar a{text-decoration:none}.topbar a:hover{text-decoration:underline;text-decoration-color:var(--band-fg)}.topbar .quiet{color:var(--ash)}.site-header .wrap{justify-content:space-between;align-items:center;gap:var(--s-lg);border-bottom:1px solid var(--line);padding-block:24px;display:flex}.site-header .home{view-transition-name:wordmark;font-size:28px;text-decoration:none}.site-header nav{gap:var(--s-lg);font-size:15px;font-weight:500;display:flex}.site-header nav a{white-space:nowrap;border-bottom:2px solid #0000;padding-block:11px 9px;text-decoration:none}.site-header nav a:hover{border-bottom-color:var(--ink)}.site-header nav a[aria-current=page]{border-bottom-color:var(--ink);font-weight:700}.site-footer{background:var(--band);color:var(--band-fg);margin-top:var(--s-3xl)}.site-footer .wrap{gap:var(--s-xl) var(--s-lg);padding-block:var(--s-2xl) var(--s-xl);grid-template-columns:1fr auto;display:grid}.site-footer .wm{font-size:44px}.site-footer nav{gap:0 var(--s-lg);flex-wrap:wrap;align-items:start;margin-top:-11px;font-size:15px;display:flex}.site-footer nav a{padding-block:11px;text-decoration:none;display:inline-block}.site-footer nav a:hover{text-decoration:underline;text-decoration-color:var(--band-fg)}.site-footer .legal{justify-content:space-between;align-items:center;gap:var(--s-md);padding-top:var(--s-lg);border-top:1px solid var(--band-line);color:var(--ash);flex-wrap:wrap;grid-column:1/-1;font-size:13px;display:flex}.theme-pick{gap:var(--s-xs);align-items:center;display:inline-flex}.theme-pick select{font:500 13px/1 var(--font);color:var(--band-fg);background:var(--band);border:1px solid var(--line-strong);border-radius:0;min-height:44px;padding:6px 8px}.lede{max-width:62ch;color:var(--muted);font-size:18px;line-height:1.5}.label{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:500}.note{color:var(--muted);max-width:70ch;font-size:14px}mark{background:var(--seal);color:#fff;padding:0 .08em}.s{border-top:1px solid var(--line);padding-block:96px}.s>.wrap>h2,.s .h2{margin-bottom:var(--s-md);max-width:18ch;font-size:clamp(34px,2.4rem + 1.2vw,56px);line-height:1}.s .lede{margin-bottom:var(--s-2xl)}.shead{align-items:center;gap:var(--s-md);margin-bottom:var(--s-xl);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:500;display:flex}.shead:after{content:"";background:currentColor;flex:1;height:2px}.shead b{color:light-dark(var(--seal),var(--now-fg));font-weight:700}.rules{gap:var(--s-xl) var(--s-lg);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.rules div{border-top:2px solid var(--ink);padding-top:var(--s-md)}.rules dt{letter-spacing:-.02em;margin-bottom:var(--s-xs);font-size:24px;font-weight:700}.rules dd{color:var(--muted);max-width:52ch;margin:0}@media (width<=900px){.rules{grid-template-columns:1fr}}.band .shead b{color:var(--band-fg)}.grid{gap:var(--s-lg);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.btn{font:700 15px/1 var(--font);border:2px solid var(--ink);background:var(--ink);color:var(--paper);cursor:pointer;border-radius:0;align-items:center;gap:10px;padding:15px 22px;text-decoration:none;transition:background-color .15s,color .15s;display:inline-flex}.btn:hover,.btn.secondary{background:var(--paper);color:var(--ink)}.btn.secondary:hover{background:var(--ink);color:var(--paper)}.btn.link{color:var(--ink);text-underline-offset:4px;background:0 0;border-color:#0000;padding-inline:0;text-decoration:underline 2px}.btn.link:hover{text-decoration-color:var(--seal)}.btn:disabled,.btn[aria-disabled=true]{background:var(--concrete);border-color:var(--concrete);color:#8a8a8a;cursor:progress}.band .btn{background:var(--band-fg);border-color:var(--band-fg);color:#111}.band .btn:hover{background:var(--band);color:var(--band-fg)}.band .btn:disabled{background:var(--concrete);border-color:var(--concrete);color:#8a8a8a;cursor:progress}.actions{gap:var(--s-md) var(--s-lg);flex-wrap:wrap;align-items:center;display:flex}.badge{letter-spacing:.01em;white-space:nowrap;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:700;line-height:1.2;display:inline-flex}.b-now{background:var(--now-bg);color:var(--now-fg)}.b-now:before{content:"";background:var(--seal);width:7px;height:7px}.b-next{background:var(--concrete);color:var(--ink)}.b-plan{border:1px solid var(--ink);padding:5px 9px}.b-low{color:var(--muted);border:1px solid var(--line);padding:5px 9px}.b-ok{background:var(--ink);color:var(--paper)}.band .b-ok{background:var(--band-fg);color:#111}table{border-collapse:collapse;width:100%;font-size:15px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:14px 12px 14px 0}th{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--ink);font-size:11px;font-weight:500}td b{font-weight:700}.table-scroll{overflow-x:auto}.code{background:var(--concrete);padding:var(--s-lg);font-family:var(--mono);white-space:pre;font-size:14px;line-height:1.7;overflow-x:auto}.code .c{color:var(--muted)}.code .ok{font-weight:600}.stats{gap:var(--s-lg);border-top:1px solid var(--line);padding-top:var(--s-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stat b{letter-spacing:-.05em;font-size:40px;font-weight:800;line-height:1;display:block}.stat span{color:var(--muted);font-size:14px}.band{background:var(--band);color:var(--band-fg)}.band .lede,.band .note{color:var(--ash)}.page-head{padding-block:96px 48px}.page-head h1{letter-spacing:-.06em;max-width:14ch;font-size:clamp(48px,7vw,96px);line-height:.92}.page-head p{margin-top:var(--s-lg)}.prose{max-width:60ch;padding-bottom:var(--s-3xl);gap:var(--s-md);display:grid}.prose h2{letter-spacing:-.03em;margin-top:var(--s-xl);font-size:28px}.prose ul{gap:var(--s-xs);display:grid}.prose li{padding-left:20px;position:relative}.prose li:before{content:"";background:var(--ink);width:8px;height:2px;position:absolute;top:.62em;left:0}@media (width<=900px){:root{--gutter:22px}.s{padding-block:72px}.site-header .wrap{padding-block:18px}.site-header .home{font-size:24px}.site-header nav{gap:var(--s-md);font-size:14px}.site-footer .wrap{grid-template-columns:1fr}.stats{gap:var(--s-sm);grid-template-columns:1fr 1fr 1fr}.stat b{font-size:30px}.stat span{font-size:13px}table{font-size:14px}}@media (width<=520px){.topbar .quiet,.topbar .hide-sm,.site-header nav a.hide-sm{display:none}.stats{gap:var(--s-sm);grid-template-columns:auto minmax(0,1fr)}.stat{grid-column:1/-1;grid-template-columns:subgrid;align-items:baseline;display:grid}}@media (width<=380px){.site-header nav a[href="/security/"]{display:none}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=600px){.site-header .wrap{flex-wrap:wrap;gap:8px}.site-header nav{justify-content:space-between;gap:12px;width:100%}.site-header nav a.hide-sm{display:none}.topbar{letter-spacing:.02em;text-transform:none}}
