:root{--ink:#0d1117;--ink2:#3b434d;--mute:#6a727c;--line:#d5d9dd;--panel:#f2f4f5;--paper:#fff;--red:#e5322d;--red-d:#b81f1b;--yel:#ffe14d;
--serif:'Fraunces',Georgia,'Times New Roman',serif;--sans:'Inter Tight',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'IBM Plex Mono',ui-monospace,Menlo,monospace}
*,*::before,*::after{box-sizing:border-box;border-radius:0}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--red-d)}
:focus-visible{outline:3px solid var(--ink);outline-offset:2px;background:var(--yel)}
.wrap{max-width:1280px;margin:0 auto;padding:0 20px}
.mono,.meta{font-family:var(--mono);font-size:12.5px;letter-spacing:.02em}
.meta{color:var(--mute);margin:10px 0 0}.meta span::before{content:"";display:inline-block;width:6px;height:6px;background:var(--red);margin:0 10px 1px 10px}
.kicker{font:600 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--red-d);margin:0 0 14px}
.kicker a{text-decoration:none}.kicker.light{color:var(--yel)}
.rule-label{font:600 12px/1 var(--mono);text-transform:uppercase;letter-spacing:.14em;background:var(--ink);color:#fff;padding:7px 10px;display:inline-block}
.lead-head{border-top:3px solid var(--ink);margin-bottom:28px;height:auto}
.lead-head .rule-label{margin-top:-3px}
.btn{display:inline-block;background:var(--ink);color:#fff;font:600 15px/1 var(--sans);padding:16px 22px;text-decoration:none;border:2px solid var(--ink)}
.btn:hover{background:var(--yel);color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost:hover{background:var(--yel)}
.more{display:inline-block;font:600 14px/1 var(--sans);text-decoration:none;border-bottom:3px solid var(--yel);padding-bottom:4px}
.more::after{content:" \2192"}.more:hover{border-color:var(--red)}
/* top + masthead */
.topbar{background:var(--ink);color:#e8eaed;font:500 12px/1 var(--mono);letter-spacing:.04em}
.topbar-in{display:flex;justify-content:space-between;gap:12px;padding-top:9px;padding-bottom:9px}
.topbar-in span:first-child{display:none}
.mast{border-bottom:3px solid var(--ink)}
.mast>.wrap{display:flex;flex-direction:column;align-items:center;padding-top:22px;padding-bottom:14px;text-align:center}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--ink)}
.brand-name{font:900 34px/1 var(--serif);letter-spacing:-.02em;font-variation-settings:"opsz" 144}
.brand-the{font:500 italic 1em/1 var(--serif);color:var(--red-d);margin-right:.12em}
.brand-mark{width:44px;height:44px}
.mast-tag{margin:8px 0 0;font:500 italic 15px/1.3 var(--serif);color:var(--ink2)}
.sections{border-top:1px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:20}
.sections-in{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;white-space:nowrap}
.sections a{display:flex;gap:7px;align-items:baseline;padding:13px 11px;font:600 14px/1 var(--sans);text-decoration:none;border-right:1px solid var(--line)}
.sections a i{font:600 10.5px var(--mono);color:var(--red-d);font-style:normal}
.sections a:hover,.sections a[aria-current]{background:var(--yel);color:var(--ink)}
.sections .about-link{margin-left:auto;border-right:0;border-left:1px solid var(--line)}
/* hero */
.hero{border-bottom:1px solid var(--ink);background:var(--paper)}
.hero-grid{display:grid;gap:28px;padding-top:36px;padding-bottom:40px}
.hero h1{font:900 clamp(44px,7.4vw,96px)/.96 var(--serif);letter-spacing:-.035em;margin:0 0 22px;font-variation-settings:"opsz" 144}
.hero h1 em{font-style:italic;font-weight:500;background:linear-gradient(transparent 62%,var(--yel) 62% 92%,transparent 92%);padding:0 .06em}
.lede{font-size:19px;line-height:1.55;color:var(--ink2);max-width:60ch;margin:0 0 26px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.hero-art{position:relative;aspect-ratio:4/3;background:var(--panel);border:3px solid var(--ink);overflow:hidden;box-shadow:10px 10px 0 var(--yel)}
.hero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stamp{position:absolute;right:14px;top:14px;background:var(--red);color:#fff;font:600 11px/1.25 var(--mono);text-transform:uppercase;letter-spacing:.1em;padding:9px 11px;transform:rotate(4deg);z-index:2}
/* lead */
.lead{padding-top:48px}
.lead-card{display:grid;gap:22px;margin-bottom:12px}
.lead-img{position:relative;display:block;aspect-ratio:3/2;background:var(--panel);overflow:hidden;border:1px solid var(--ink)}
.lead-img img,.tile-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lead-body h2{font:900 clamp(30px,4.6vw,56px)/1.02 var(--serif);letter-spacing:-.025em;margin:0 0 16px}
.lead-body h2 a,.tile h3 a,.latest-list h3 a,.row h2 a,.rel h3 a,.sect-head h2 a{text-decoration:none}
.lead-body h2 a:hover,.tile h3 a:hover,.latest-list h3 a:hover,.row h2 a:hover,.rel h3 a:hover,.sect-head h2 a:hover{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px}
.lead-tldr{font-size:18px;color:var(--ink2);margin:0 0 6px}
/* latest */
.latest{padding-top:44px;padding-bottom:12px}
.latest-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.latest-list li{display:grid;grid-template-columns:56px 1fr;gap:6px;padding:20px 0;border-top:1px solid var(--line)}
.num{font:900 34px/1 var(--serif);color:var(--red);letter-spacing:-.03em}
.latest-list h3{font:700 22px/1.2 var(--serif);margin:0;letter-spacing:-.01em}
.latest-list .kicker{margin-bottom:8px}
/* requirements sheet */
.reqsheet{background:var(--panel);margin-top:56px;padding:52px 0 60px;border-top:3px solid var(--ink);border-bottom:1px solid var(--ink)}
.reqsheet .lead-head{border-color:var(--ink)}
.big{font:900 clamp(34px,5.4vw,68px)/1 var(--serif);letter-spacing:-.03em;margin:0 0 12px}
.sheet-intro{color:var(--ink2);max-width:56ch;margin:0 0 28px;font-size:18px}
.sheet{width:100%;border-collapse:collapse;background:var(--paper);border:2px solid var(--ink)}
.sheet th,.sheet td{padding:14px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);font-size:15px}
.sheet thead th{background:var(--ink);color:#fff;font:600 11.5px var(--mono);text-transform:uppercase;letter-spacing:.1em}
.sheet tbody th{font:700 20px/1.15 var(--serif)}.sheet tbody th a{text-decoration:none}.sheet tbody th a:hover{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px}
.sheet td:first-child{color:var(--red-d);font-weight:600;width:56px}
.sheet td:last-child{white-space:nowrap}
.sheet tbody tr:hover{background:#fffbe0}
.tick{display:inline-block;width:14px;height:14px;border:2px solid var(--ink);margin-right:8px;vertical-align:-2px;background:linear-gradient(135deg,transparent 45%,var(--ink) 45% 58%,transparent 58%)}
/* sections */
.sect{padding-top:60px}
.sect-head{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;align-items:end;border-top:3px solid var(--ink);padding-top:18px;margin-bottom:26px}
.sect-num{font:900 clamp(64px,10vw,128px)/.8 var(--serif);color:var(--yel);-webkit-text-stroke:2px var(--ink);letter-spacing:-.05em}
.sect-head h2{font:900 clamp(26px,3.6vw,44px)/1.02 var(--serif);letter-spacing:-.025em;margin:0 0 6px}
.sect-head p{margin:0;color:var(--ink2);max-width:56ch}
.sect-head .more{grid-column:1/-1;justify-self:start;margin-top:10px}
.sect-grid{display:grid;gap:26px}
.tile-art{position:relative;display:block;aspect-ratio:16/10;background:var(--panel);overflow:hidden;border:1px solid var(--ink);margin-bottom:14px}
.tile h3{font:700 22px/1.2 var(--serif);margin:0 0 8px;letter-spacing:-.01em}
.tile p{margin:0;color:var(--ink2);font-size:15.5px}.tile p.meta{margin-top:10px;color:var(--mute);font-size:12.5px}
.art-fallback{filter:grayscale(.2)}
.lead-img .art-fallback+img,.tile-art .art-fallback+img{z-index:1}
/* checklist band */
.checklist{background:var(--ink);color:#fff;margin-top:72px;padding:60px 0}
.check-grid{display:grid;gap:30px}
.checklist h2{font:900 clamp(34px,5vw,64px)/1 var(--serif);letter-spacing:-.03em;margin:0 0 12px}
.checklist p{color:#c9cfd6}
.checks{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid #3b434d}
.checks li{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-bottom:1px solid #3b434d;font:600 19px/1.3 var(--sans)}
.box{flex:none;width:26px;height:26px;border:3px solid var(--yel);position:relative;margin-top:1px}
.box::after{content:"";position:absolute;left:5px;top:-4px;width:9px;height:17px;border:solid var(--yel);border-width:0 5px 5px 0;transform:rotate(40deg)}
/* category */
.cat-head{padding:34px 0 40px;border-bottom:1px solid var(--ink);background:var(--paper)}
.cat-head-grid{display:grid;gap:26px}
.cat-head h1,.post-head h1{font:900 clamp(40px,7vw,92px)/.98 var(--serif);letter-spacing:-.035em;margin:0 0 18px;font-variation-settings:"opsz" 144}
.cat-art{position:relative;aspect-ratio:16/10;background:var(--yel);border:3px solid var(--ink);overflow:hidden;display:grid;place-items:center}
.cat-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cat-bignum{font:900 clamp(120px,24vw,260px)/1 var(--serif);color:var(--paper);-webkit-text-stroke:3px var(--ink);letter-spacing:-.06em}
.crumbs{font:500 12.5px var(--mono);color:var(--mute);display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.crumbs a{text-decoration:none;color:var(--ink)}.crumbs a:hover{text-decoration:underline}
.cat-body{display:grid;gap:36px;padding-top:36px;padding-bottom:20px}
.row{display:grid;grid-template-columns:52px 1fr;gap:6px;padding:24px 0;border-bottom:1px solid var(--line)}
.row:first-child{padding-top:0}
.row h2{font:700 24px/1.15 var(--serif);margin:0 0 8px;letter-spacing:-.015em}
.row p{margin:0;color:var(--ink2);font-size:16px}.row p.meta{margin-top:10px;color:var(--mute);font-size:12.5px}
.row-first h2{font-size:clamp(30px,4.2vw,48px);line-height:1.04;letter-spacing:-.025em;font-weight:900}
.row-first p{font-size:18px}
.rail-h{font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.12em;margin:0 0 12px;padding-bottom:10px;border-bottom:3px solid var(--ink)}
.rail ul,.rail-box ul{list-style:none;margin:0;padding:0}
.rail li a,.rail-box li a{display:block;padding:10px 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600;font-size:15px;line-height:1.3}
.rail li a:hover,.rail-box li a:hover{color:var(--red-d)}
.rail li a i{font:600 11px var(--mono);font-style:normal;color:var(--red-d);margin-right:8px}
.rail-box li.on a{background:var(--yel);padding-left:8px}
.empty{padding:30px;border:2px dashed var(--ink);font-weight:600}
/* article */
.post-head{padding:30px 0 34px;border-bottom:1px solid var(--ink)}
.post-head h1{font-size:clamp(34px,5.8vw,72px);max-width:20ch;line-height:1}
.post-head .meta{font-size:13px}
.post-grid{display:grid;gap:26px;padding-top:34px}
.post-rail{display:none}
.tldr{border:3px solid var(--ink);background:var(--yel);padding:22px 24px;margin:0 0 38px;position:relative;box-shadow:8px 8px 0 var(--ink)}
.tldr h2{font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.14em;margin:0 0 10px;color:var(--ink)}
.tldr p{margin:0;font:500 20px/1.45 var(--serif);color:var(--ink)}
.prose{max-width:72ch;font-size:18px;line-height:1.7;counter-reset:sec}
.prose>p:first-child::first-letter{font:900 4.6em/.8 var(--serif);float:left;padding:8px 12px 0 0;color:var(--red)}
.prose p{margin:0 0 1.15em}
.prose h2{font:900 clamp(26px,3.4vw,38px)/1.08 var(--serif);letter-spacing:-.025em;margin:2.2em 0 .6em;padding-top:18px;border-top:3px solid var(--ink);counter-increment:sec;position:relative}
.prose h2::before{content:counter(sec,decimal-leading-zero);display:block;font:600 12px var(--mono);letter-spacing:.14em;color:var(--red-d);margin-bottom:10px}
.prose h3{font:700 22px/1.2 var(--serif);margin:1.8em 0 .5em}
.prose ul,.prose ol{padding:0;margin:0 0 1.3em;list-style:none}
.prose li{position:relative;padding:8px 0 8px 36px;border-bottom:1px solid var(--line)}
.prose ul li::before{content:"";position:absolute;left:2px;top:14px;width:16px;height:16px;border:2px solid var(--ink);background:linear-gradient(135deg,transparent 44%,var(--red) 44% 60%,transparent 60%)}
.prose ol{counter-reset:li}.prose ol li{counter-increment:li}
.prose ol li::before{content:counter(li);position:absolute;left:0;top:8px;width:26px;height:26px;background:var(--ink);color:#fff;font:600 13px/26px var(--mono);text-align:center}
.prose li>ul,.prose li>ol{margin:8px 0 0}
.prose a{color:var(--ink);text-decoration-color:var(--red);text-decoration-thickness:2px}.prose a:hover{background:var(--yel)}
.prose blockquote{margin:1.8em 0;padding:6px 0 6px 24px;border-left:8px solid var(--yel);font:500 italic 24px/1.4 var(--serif)}
.prose blockquote p{margin:0}
.prose table{display:block;overflow-x:auto;border-collapse:collapse;margin:1.8em 0;width:100%;font-size:15.5px;line-height:1.45;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink)}
.prose th,.prose td{padding:12px 14px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);min-width:110px}
.prose thead th{background:var(--panel);font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.08em;border-bottom:2px solid var(--ink)}
.prose tbody tr:first-child td,.prose tbody tr:first-child th{border-top:0}
.prose td:first-child,.prose tbody th{font-weight:700}
.prose tbody tr:hover{background:#fffbe0}
.prose strong{font-weight:700}
.prose hr{border:0;border-top:1px solid var(--ink);margin:2em 0}
.prose img{height:auto;margin:1.5em 0}
.faq{max-width:72ch;margin-top:3em;background:var(--panel);padding:28px 24px;border:2px solid var(--ink)}
.faq>h2{font:900 clamp(26px,3.4vw,38px)/1.08 var(--serif);letter-spacing:-.025em;margin:0 0 14px}
.qa{border-top:1px solid var(--ink);padding:16px 0 4px}
.qa h3{font:700 20px/1.25 var(--serif);margin:0 0 8px;padding-left:38px;position:relative}
.qa h3::before{content:"Q";position:absolute;left:0;top:0;width:26px;height:26px;background:var(--ink);color:var(--yel);font:600 13px/26px var(--mono);text-align:center}
.qa p{margin:0 0 12px;padding-left:38px;color:var(--ink2);font-size:16.5px}
.related{margin-top:70px;padding-top:6px}
.rel-grid{display:grid;gap:0}
.rel{display:grid;grid-template-columns:52px 1fr;gap:4px;padding:18px 0;border-top:1px solid var(--line)}
.rel h3{font:700 20px/1.2 var(--serif);margin:0}.rel .meta{grid-column:2}
.catnav{background:var(--yel);border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);margin-top:56px}
.catnav-in{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding-top:18px;padding-bottom:18px}
.catnav a{font-weight:700;font-size:15px;text-decoration:underline;text-decoration-thickness:2px}
.about-grid{display:grid;gap:36px;padding-top:40px;padding-bottom:20px}
.notfound{list-style:none;padding:0;margin:30px 0 0;display:grid;gap:8px;font-weight:600}
/* footer */
.foot{background:var(--ink);color:#c9cfd6;margin-top:0;padding:48px 0 26px}
.foot-grid{display:grid;gap:30px}
.brand-foot{color:#fff}.brand-foot .brand-name{font-size:26px}.brand-foot .brand-the{color:var(--yel)}
.foot-about{max-width:42ch;font-size:15px;margin:14px 0 0}
.foot-h{font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--yel);margin:0 0 12px}
.foot ul{list-style:none;margin:0;padding:0}.foot li a{display:block;padding:5px 0;text-decoration:none;color:#fff;font-size:15px}.foot li a:hover{color:var(--yel)}
.foot-base{border-top:1px solid #3b434d;margin:34px 0 0;padding-top:18px;font-size:13px;color:#98a1ab}
.catnav+.foot{margin-top:0}
main{min-height:60vh}
@media(min-width:760px){
 body{font-size:17.5px}.wrap{padding:0 32px}
 .topbar-in span:first-child{display:inline}
 .hero-grid{grid-template-columns:1.25fr 1fr;align-items:center;gap:48px;padding-top:56px;padding-bottom:64px}
 .lead-card{grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
 .latest-list{grid-template-columns:repeat(3,1fr);column-gap:32px}.latest-list li{grid-template-columns:1fr;gap:10px}
 .sect-head{grid-template-columns:auto 1fr auto}.sect-head .more{grid-column:auto;margin:0 0 6px}
 .sect-grid{grid-template-columns:repeat(3,1fr);gap:32px}
 .check-grid{grid-template-columns:1fr 1.2fr;gap:70px}
 .cat-head-grid{grid-template-columns:1.3fr 1fr;align-items:center;gap:48px}
 .cat-body{grid-template-columns:1fr 280px;gap:64px}.rail{position:sticky;top:64px;align-self:start}
 .row{grid-template-columns:72px 1fr}.num{font-size:40px}
 .foot-grid{grid-template-columns:1.6fr 1fr 1fr}
 .rel-grid{grid-template-columns:repeat(2,1fr);column-gap:40px}
 .about-grid{grid-template-columns:1fr 280px;gap:64px}
}
@media(min-width:1040px){
 .post-grid{grid-template-columns:240px minmax(0,1fr);gap:60px}
 .post-rail{display:block}.rail-box{position:sticky;top:64px}
 .rel-grid{grid-template-columns:repeat(4,1fr)}.rel{grid-template-columns:1fr;border-top:3px solid var(--ink)}.rel .meta{grid-column:1}
 .sect-grid .tile-first{}
}
@media(max-width:759px){
 .brand-name{font-size:27px}.brand-mark{width:36px;height:36px}
 .prose{font-size:17px}.sheet th,.sheet td{padding:11px 10px}.sheet thead th:nth-child(3),.sheet tbody td:nth-child(3){display:none}
 .tldr{box-shadow:5px 5px 0 var(--ink)}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.tile-fb{position:absolute;inset:0;display:grid;place-items:center;font:900 120px/1 var(--serif);letter-spacing:-.05em;-webkit-text-stroke:2px var(--ink);color:transparent}
.tile-fb.f0{background:var(--yel)}.tile-fb.f1{background:var(--panel)}.tile-fb.f2{background:var(--red)}
.tile-fb.f0,.tile-fb.f1{color:#fff}.tile-fb.f2{color:var(--yel)}
@media(min-width:1040px){.sections a{font-size:13px;padding:13px 9px;gap:6px}.sections-in{overflow:visible}.sections .about-link{padding-left:14px;padding-right:14px}}
@media(max-width:759px){.hero-art{box-shadow:5px 5px 0 var(--yel);margin-right:5px}}
