@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ol,ul{margin:0}img,svg{max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}}@layer site{html{background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.6;overflow-x:hidden}a{color:var(--signal-text);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--signal-text);outline-offset:3px}code,kbd,.mono{font-family:var(--font-mono);font-size:.88em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{background:var(--ink);color:var(--paper);z-index:10;padding:8px 12px;position:absolute;top:0;left:-9999px}.skip:focus{top:8px;left:8px}.frame{max-width:var(--frame);padding-inline:var(--gutter);border-inline:1px dashed var(--line);margin-inline:auto}.rule{border-top:1px dashed var(--line)}.label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--graphite);font-size:.75rem}.label b{color:var(--ink);font-weight:600}.site-header{border-bottom:1px solid var(--line);background:var(--paper)}.site-header .frame{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:60px;padding-block:8px;display:flex}.brand{color:var(--ink);letter-spacing:-.01em;align-items:center;gap:10px;font-weight:650;text-decoration:none;display:inline-flex}.brand svg{width:26px;height:26px;color:var(--signal);flex:none}.brand small{font-family:var(--font-mono);color:var(--graphite);letter-spacing:.05em;font-size:.68rem;font-weight:400;display:block}.nav{flex-wrap:wrap;gap:4px 18px;padding:0;list-style:none;display:flex}.nav a{color:var(--ink-2);padding:6px 0;font-size:.95rem;text-decoration:none}.nav a:hover,.nav a[aria-current=page]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--signal)}.theme-toggle{border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer;font-family:var(--font-mono);color:var(--ink-2);background:0 0;padding:4px 10px;font-size:.72rem}h1{font-family:var(--font-display);letter-spacing:.005em;text-transform:uppercase;overflow-wrap:break-word;hyphens:manual;font-size:clamp(2.6rem,7vw,4.6rem);font-weight:800;line-height:.95}.page-h1{max-width:22ch;font-size:clamp(2.2rem,5.6vw,3.6rem)}h2{letter-spacing:-.015em;font-size:clamp(1.4rem,2.6vw,1.75rem);font-weight:700;line-height:1.2}h3{font-size:1.15rem;font-weight:700;line-height:1.3}.prose h2{border-top:1px dashed var(--line);margin-top:2.6rem;margin-bottom:.7rem;padding-top:1.2rem}.prose h3{margin-top:1.8rem;margin-bottom:.5rem}.prose p,.prose ul,.prose ol,.prose table,.prose figure,.prose .callout{margin-bottom:1.05rem}.prose{max-width:var(--measure)}.prose li{margin-bottom:.35rem}.prose ul,.prose ol{padding-left:1.3rem}.lead{color:var(--ink-2);max-width:60ch;font-size:1.2rem;line-height:1.55}.sheet{background:var(--sheet);border:1px solid var(--line-strong);padding:clamp(28px,5vw,56px) clamp(18px,4vw,48px);position:relative}.sheet:before{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:8px}.zones-x,.zones-y{font-family:var(--font-mono);color:var(--graphite);pointer-events:none;justify-content:space-around;font-size:.62rem;display:flex;position:absolute}.zones-x{padding-bottom:2px;top:-1px;left:8px;right:8px;transform:translateY(-100%)}.zones-y{flex-direction:column;padding-right:4px;top:8px;bottom:8px;left:-2px;transform:translate(-100%)}.hero{padding-block:clamp(36px,7vw,72px) clamp(32px,5vw,56px)}.hero-grid{grid-template-columns:minmax(0,1fr);gap:clamp(24px,4vw,48px);display:grid}@media (width>=900px){.hero-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:end}}.hero .lead{margin-top:22px}.hero-actions{flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:28px;display:flex}.sig .l1{display:block}.plot{color:var(--signal);display:block}.plot .w{white-space:nowrap;display:inline-block}.pl{display:inline-grid}.pl:before,.pl:after{content:attr(data-c);grid-area:1/1}.pl:after{visibility:hidden;font-weight:900}.pl:before{animation:plot .42s steps(6, end) calc(var(--i) * 75ms + .2s) both, bleed var(--d) ease-in-out calc(var(--i) * 75ms + .9s + var(--o)) infinite alternate;justify-self:center;font-weight:800}@keyframes plot{0%{opacity:0;color:var(--graphite);font-weight:120}60%{opacity:1;color:var(--graphite);font-weight:300}to{opacity:1;color:var(--signal);font-weight:800}}@keyframes bleed{0%{font-weight:800}to{font-weight:900}}@media (prefers-reduced-motion:reduce){.pl:before{opacity:1;font-weight:800;animation:none}}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid var(--ink);background:var(--ink);color:var(--paper);align-items:center;gap:10px;padding:11px 18px;font-weight:650;text-decoration:none;display:inline-flex}.btn:hover{background:var(--signal);border-color:var(--signal);color:var(--on-signal)}.btn.ghost{color:var(--ink);border-color:var(--line-strong);background:0 0}.btn.ghost:hover{border-color:var(--ink);color:var(--ink);background:0 0}.btn.small{padding:6px 12px;font-size:.9rem;font-weight:600}.titleblock{border:1.5px solid var(--ink);font-family:var(--font-mono);background:var(--sheet);font-size:.74rem}.titleblock .tb-row{border-top:1px solid var(--line-strong);grid-template-columns:7.5em minmax(0,1fr);display:grid}.titleblock .tb-row:first-child{border-top:0}.titleblock dt,.titleblock dd{margin:0;padding:6px 10px}.titleblock dt{color:var(--graphite);text-transform:uppercase;letter-spacing:.06em;border-right:1px solid var(--line-strong)}.titleblock dd{color:var(--ink);overflow-wrap:anywhere}.titleblock .tb-head{font-family:var(--font-display);text-transform:uppercase;border-bottom:1.5px solid var(--ink);letter-spacing:.02em;padding:8px 10px;font-size:1.35rem;font-weight:700}.sheets{grid-template-columns:minmax(0,1fr);gap:22px;padding:0;list-style:none;display:grid}@media (width>=760px){.sheets.two{grid-template-columns:repeat(2,minmax(0,1fr))}}.entry{background:var(--sheet);border:1px solid var(--line-strong);grid-template-rows:auto 1fr auto;padding:18px 18px 0;transition:border-color .15s;display:grid;position:relative}.entry:before{content:"";border:1px solid var(--line);pointer-events:none;position:absolute;inset:5px}.entry:hover{border-color:var(--ink)}.entry:focus-within{outline:2px solid var(--signal-text);outline-offset:3px}.entry .dim{height:14px;margin:0 4px 10px;position:relative}.entry .dim:before{content:"";border-top:1px solid var(--signal);transition:right .35s;position:absolute;top:7px;left:0;right:100%}.entry .dim:after{content:"";border-left:1px solid var(--signal);height:11px;position:absolute;top:2px;left:0}.entry:hover .dim:before,.entry:focus-within .dim:before{right:0}@media (prefers-reduced-motion:reduce){.entry .dim:before{transition:none}}.entry h3{margin:2px 4px 8px;font-size:1.2rem}.entry h3 a{color:var(--ink);text-decoration:none}.entry h3 a:after{content:"";position:absolute;inset:0}.entry h3 a:focus-visible{outline:none}.entry p{color:var(--ink-2);margin:0 4px 16px;font-size:.98rem}.entry .tb{border-top:1.5px solid var(--ink);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;grid-template-columns:repeat(4,auto);margin:0 -18px;font-size:.66rem;display:grid}.entry .tb span{border-left:1px solid var(--line-strong);color:var(--graphite);white-space:nowrap;text-overflow:ellipsis;padding:6px 8px;overflow:hidden}.entry .tb span:first-child{border-left:0}.entry .tb b{color:var(--ink);font-weight:600}.entry .thumb{color:var(--ink-2);margin:0 4px 14px}.entry .thumb svg{width:100%;height:auto;max-height:150px;display:block}.sheet-index{border-collapse:collapse;width:100%;font-size:.98rem}.sheet-index th{text-align:left;font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--graphite);border-bottom:1.5px solid var(--ink);padding:8px 10px;font-size:.7rem;font-weight:400}.sheet-index td{border-bottom:1px solid var(--line);vertical-align:top;padding:12px 10px}.sheet-index tr{position:relative}.sheet-index td.no{font-family:var(--font-mono);white-space:nowrap;font-size:.82rem}.sheet-index td a{color:var(--ink);font-weight:600;text-decoration:none}.sheet-index td a:after{content:"";position:absolute;inset:0}.sheet-index tr:hover td,.sheet-index tr:focus-within td{background:var(--paper-2)}.sheet-index tr:focus-within{outline:2px solid var(--signal-text);outline-offset:-2px}.sheet-index td.meta{font-family:var(--font-mono);color:var(--graphite);white-space:nowrap;font-size:.78rem}.sheet-index .desc{color:var(--ink-2);margin-top:2px;font-size:.9rem;font-weight:400;display:block}@media (width<=640px){.sheet-index .hide-sm{display:none}}.dims{grid-template-columns:minmax(0,1fr);gap:28px;display:grid}@media (width>=820px){.dims{grid-template-columns:repeat(3,minmax(0,1fr))}}.dimfact{padding-top:6px}.dimline{height:20px;color:var(--signal);margin-bottom:10px;position:relative}.dimline svg{width:100%;height:20px;display:block}.dimfact .v{font-family:var(--font-mono);color:var(--ink);font-size:2rem;font-weight:600;line-height:1.1}.dimfact p{color:var(--ink-2);margin-top:6px;font-size:.95rem}.section{padding-block:clamp(36px,6vw,64px)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;margin-bottom:24px;display:flex}.section-head p{color:var(--ink-2);max-width:56ch}.crumbs{font-family:var(--font-mono);color:var(--graphite);padding-top:22px;font-size:.75rem}.crumbs ol{flex-wrap:wrap;gap:4px;padding:0;list-style:none;display:flex}.crumbs li:not(:last-child):after{content:"/";color:var(--line-strong);margin-left:4px}.crumbs a{color:var(--ink-2)}.page-head{padding-block:18px 26px}.page-head .lead{margin-top:16px}.meta-strip{border:1px solid var(--line-strong);width:fit-content;max-width:100%;font-family:var(--font-mono);flex-wrap:wrap;margin-top:22px;font-size:.72rem;display:flex}.meta-strip>span{border-left:1px solid var(--line-strong);color:var(--graphite);text-transform:uppercase;letter-spacing:.05em;padding:6px 10px}.meta-strip>span:first-child{border-left:0}.meta-strip b,.meta-strip time{color:var(--ink);font-weight:600}.article{grid-template-columns:minmax(0,1fr);gap:40px;padding-bottom:64px;display:grid}@media (width>=1040px){.article{grid-template-columns:minmax(0,1fr) 260px}.article aside{align-self:start;position:sticky;top:16px}}.notes{border:1px solid var(--line-strong);background:var(--sheet);max-width:var(--measure);margin-bottom:26px;padding:16px 20px}.notes ol{margin-top:8px;padding-left:1.4rem}.notes li{margin-bottom:6px}.toc{font-size:.92rem}.toc ol{counter-reset:toc;margin-top:8px;padding:0;list-style:none}.toc li{counter-increment:toc;border-bottom:1px dashed var(--line);padding:4px 0}.toc li:before{content:counter(toc, decimal-leading-zero) " ";font-family:var(--font-mono);color:var(--graphite);font-size:.75rem}.toc a{color:var(--ink-2);text-decoration:none}.toc a:hover{color:var(--ink);text-decoration:underline}figure.fig{border:1px solid var(--line-strong);background:var(--sheet);padding:14px}figure.fig svg{width:100%;height:auto;color:var(--ink);display:block}figure.fig figcaption{color:var(--graphite);border-top:1px dashed var(--line);margin-top:10px;padding-top:8px;font-size:.86rem}.prose table{border-collapse:collapse;width:100%;font-size:.93rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line-strong);text-align:left;vertical-align:top;padding:7px 10px}.prose th{background:var(--paper-2);font-weight:650}.prose blockquote{border-left:3px solid var(--signal);color:var(--ink-2);margin-bottom:1rem;padding-left:14px}.callout{border:1px solid var(--line-strong);border-left:4px solid var(--signal);background:var(--sheet);max-width:var(--measure);padding:12px 16px}.callout .label{margin-bottom:4px;display:block}.callout p:last-child{margin-bottom:0}.ctl{white-space:nowrap;text-decoration:none}.ctl code{color:var(--ink);background:var(--paper-2);border:1px solid var(--line);border-radius:var(--radius);padding:0 4px;font-weight:600}.ctl .t{color:var(--ink-2);white-space:normal}.ctl:hover .t{text-decoration:underline}.term{text-underline-offset:.2em;color:inherit;text-decoration:underline dotted}.cite{vertical-align:super;font-size:.78em;line-height:0;font-family:var(--font-mono);text-decoration:none}.refs ol{padding-left:1.4rem;font-size:.93rem}.refs li{margin-bottom:10px}.refs .label{margin-left:4px}.revisions{border-collapse:collapse;width:100%;max-width:var(--measure);font-size:.88rem}.revisions th,.revisions td{border:1px solid var(--line-strong);text-align:left;padding:6px 10px}.revisions th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--graphite);font-size:.7rem;font-weight:400}.revisions td:first-child,.revisions td:nth-child(2){font-family:var(--font-mono);white-space:nowrap}details.faq{border-top:1px dashed var(--line);max-width:var(--measure);padding:10px 0}details.faq summary{cursor:pointer;font-weight:650}details.faq p{color:var(--ink-2);margin-top:8px}.tool{padding-bottom:64px}.tool fieldset{border:1px solid var(--line-strong);background:var(--sheet);margin:0 0 22px;padding:14px 18px 18px}.tool legend{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--graphite);padding:0 6px;font-size:.75rem}.traits{grid-template-columns:minmax(0,1fr);gap:8px 22px;display:grid}@media (width>=760px){.traits{grid-template-columns:repeat(2,minmax(0,1fr))}}.check{cursor:pointer;align-items:flex-start;gap:10px;padding:4px 0;display:flex}.check input{width:18px;height:18px;accent-color:var(--signal-text);flex:none;margin-top:3px}.toolbar{border-block:1px dashed var(--line);background:var(--paper);z-index:2;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 18px;padding:10px 0;display:flex;position:sticky;top:0}.toolbar .count{font-family:var(--font-mono);color:var(--ink-2);margin-right:auto;font-size:.8rem}.area{margin-top:30px}.area>h2{align-items:baseline;gap:12px;font-size:1.3rem;display:flex}.area>h2 .label{font-size:.72rem}.q{border:1px solid var(--line-strong);background:var(--sheet);margin-top:12px;padding:14px 16px}.q[hidden]{display:none}.q-head{align-items:flex-start;gap:12px;display:flex}.q-id{font-family:var(--font-mono);color:var(--graphite);min-width:3.6em;padding-top:4px;font-size:.72rem}.q h3{font-size:1.04rem;font-weight:650;line-height:1.4}.q .why{color:var(--ink-2);margin-top:6px;font-size:.93rem}.q .ev{color:var(--graphite);margin-top:4px;font-size:.88rem}.q .trace{border-top:1px dashed var(--line);margin-top:10px;padding-top:8px;font-size:.86rem}.q .trace ul{gap:6px;padding:0;list-style:none;display:grid}.q .trace .x{color:var(--graphite);font-family:var(--font-mono);font-size:.74rem}.q .scope-tag{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--line-strong);color:var(--ink-2);white-space:nowrap;margin-left:auto;padding:1px 6px;font-size:.66rem}.q .resp{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.q .resp select,.tool select,.tool input[type=text]{border:1px solid var(--line-strong);background:var(--paper);border-radius:var(--radius);min-height:36px;padding:6px 8px}.q .resp textarea,.tool textarea{border:1px solid var(--line-strong);background:var(--paper);border-radius:var(--radius);width:100%;min-height:60px;padding:6px 8px}.q[data-status=gap]{border-left:4px solid var(--gap)}.q[data-status=meets]{border-left:4px solid var(--ok)}.bl{font-family:var(--font-mono);border:1px solid var(--line-strong);color:var(--ink-2);margin-left:4px;padding:0 4px;font-size:.68rem}.matrix{border-collapse:collapse;font-size:.92rem}.matrix th,.matrix td{border:1px solid var(--line-strong);text-align:center;padding:6px 10px}.matrix th:first-child,.matrix td:first-child{text-align:left}.matrix td.y{color:var(--signal-text);font-weight:700}.el-form{grid-template-columns:minmax(0,1fr);align-items:end;gap:10px;display:grid}@media (width>=760px){.el-form{grid-template-columns:180px minmax(0,1fr) auto auto}}.el-form label{color:var(--ink-2);gap:4px;font-size:.85rem;display:grid}.el-form label.check{align-items:center;gap:8px;display:flex}.el-list{gap:6px;margin-top:12px;padding:0;list-style:none;display:grid}.el-list li{border:1px solid var(--line);background:var(--paper);flex-wrap:wrap;align-items:center;gap:10px;padding:3px 8px;display:flex}.el-list .k{font-family:var(--font-mono);text-transform:uppercase;color:var(--graphite);min-width:9em;font-size:.7rem}.el-list button{margin-left:auto}.threats{border-collapse:collapse;width:100%;font-size:.9rem}.threats th,.threats td{border:1px solid var(--line-strong);vertical-align:top;text-align:left;padding:8px}.threats th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--graphite);background:var(--paper-2);font-size:.68rem;font-weight:400}.threats .cat{font-family:var(--font-mono);white-space:nowrap;font-weight:600}.threats tr.hot td:first-child{box-shadow:inset 4px 0 0 var(--signal)}.table-wrap{max-width:100%;overflow-x:auto}.xw-search{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.xw-search label{color:var(--ink-2);gap:4px;font-size:.88rem;display:grid}.xw-search input{min-width:min(320px,100%)}.xw-result{margin-top:18px}.xw-result pre{white-space:pre-wrap;font-family:var(--font-body);background:var(--paper-2);border:1px solid var(--line);padding:12px;font-size:.93rem}.glossary dt{margin-top:20px;scroll-margin-top:20px;font-weight:700}.glossary dd{color:var(--ink-2);max-width:var(--measure);margin:4px 0 0}.site-footer{border-top:1px solid var(--line);margin-top:0}.site-footer .frame{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:28px 40px;display:grid}@media (width>=860px){.site-footer .frame{grid-template-columns:minmax(0,1fr) 360px}}.site-footer ul{flex-wrap:wrap;gap:6px 18px;padding:0;font-size:.92rem;list-style:none;display:flex}.site-footer a{color:var(--ink-2)}.site-footer p{color:var(--graphite);max-width:60ch;margin-top:10px;font-size:.88rem}@media print{.site-header,.site-footer,.toolbar,.no-print,.crumbs{display:none!important}body{color:#000;background:#fff}.frame{border:0;max-width:none}.q{break-inside:avoid}}}@font-face{font-family:Big Shoulders Stencil;src:url(/fonts/bss-wght-v1.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-wght-v1.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-wght-italic-v1.woff2)format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-400-v1.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/plex-mono-600-v1.woff2)format("woff2");font-weight:600;font-display:swap}:root{color-scheme:light;--paper:#fafaf8;--paper-2:#f3f3f0;--sheet:#fff;--line:#e4e5e1;--line-strong:#c4c5c0;--ink:#171816;--ink-2:#484946;--graphite:#6e6f6c;--signal:#f35b22;--signal-text:#b8410f;--on-signal:#171816;--grid:#1718160e;--ok:#2f6b3a;--gap:#a3341f;--font-display:"Big Shoulders Stencil", "Arial Narrow", Arial, sans-serif;--font-body:"Public Sans", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--measure:70ch;--frame:1180px;--gutter:clamp(16px, 4vw, 40px);--radius:2px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--paper:#1a1917;--paper-2:#211f1c;--sheet:#23221f;--line:#3a3936;--line-strong:#5a5853;--ink:#f1f0ec;--ink-2:#cfcec9;--graphite:#a3a29d;--signal:#f35b22;--signal-text:#f7834f;--on-signal:#171816;--grid:#ffffff0b;--ok:#7cc48a;--gap:#f28b74}}:root[data-theme=dark]{color-scheme:dark;--paper:#1a1917;--paper-2:#211f1c;--sheet:#23221f;--line:#3a3936;--line-strong:#5a5853;--ink:#f1f0ec;--ink-2:#cfcec9;--graphite:#a3a29d;--signal:#f35b22;--signal-text:#f7834f;--on-signal:#171816;--grid:#ffffff0b;--ok:#7cc48a;--gap:#f28b74}
