:root{--paper:#F4F6F3;--ink:#22262B;--muted:#59616A;--asphalt:#2C3036;--marking:#F5B800;--green:#0F6B4B;--rule:#D5DAD3;--white:#fff}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Source Serif 4",Georgia,serif;font-size:1.125rem;line-height:1.7}
h1,h2,h3,.brand,nav,.meta,.tag{font-family:"Bricolage Grotesque","Trebuchet MS",system-ui,sans-serif}
a{color:var(--green);text-underline-offset:3px}
a:focus-visible,button:focus-visible{outline:3px solid var(--marking);outline-offset:2px}
.wrap{max-width:68rem;margin:0 auto;padding:0 1.25rem}
header.site{border-bottom:1px solid var(--rule);background:var(--white)}
header.site .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;padding-top:.9rem;padding-bottom:.9rem}
.brand{font-weight:800;font-size:1.4rem;color:var(--ink);text-decoration:none;letter-spacing:-.01em;border-bottom:4px solid var(--marking);line-height:1.1}
nav a{color:var(--ink);text-decoration:none;font-weight:600;margin-right:1.1rem;font-size:1rem}
nav a:last-child{margin-right:0}
nav a:hover{text-decoration:underline;text-decoration-color:var(--marking);text-decoration-thickness:3px}
.hero{padding:2.5rem 0 1rem}
.hero h1{font-size:clamp(2rem,5.5vw,3.4rem);line-height:1.08;margin:0 0 .6rem;letter-spacing:-.02em;max-width:18ch;font-weight:800}
.hero p.lede{max-width:40rem;color:var(--muted);margin:0 0 1.5rem}
.sidewall{background:var(--asphalt);color:#EDEDE8;border-radius:1.2rem;padding:1.6rem 1.4rem 1.3rem}
.sidewall .code{display:grid;grid-template-columns:repeat(6,auto);justify-content:start;gap:.2rem 1.4rem;font-family:"Bricolage Grotesque",system-ui,sans-serif}
.sidewall .tok{font-size:clamp(1.7rem,6vw,3.2rem);font-weight:700;letter-spacing:.04em;border-bottom:4px solid var(--marking);padding-bottom:.15rem;line-height:1.1}
.sidewall .lab{font-size:.85rem;line-height:1.3;color:#C9CCC6;padding-top:.4rem;max-width:9rem;font-family:"Source Serif 4",Georgia,serif}
.sidewall .foot{margin:1.2rem 0 0;font-size:1rem;color:#C9CCC6}
.sidewall .foot a{color:var(--marking)}
@media(max-width:640px){.sidewall .code{grid-template-columns:repeat(3,auto);gap:1.1rem 1.1rem}}
section.group{padding:2.4rem 0 .5rem}
section.group h2{font-size:1.7rem;margin:0 0 .3rem;letter-spacing:-.01em}
section.group p.intro{margin:0 0 1rem;color:var(--muted)}
ul.posts{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
ul.posts li{padding:1.1rem 0;border-bottom:1px solid var(--rule)}
ul.posts a.title{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-weight:700;font-size:1.3rem;color:var(--ink);text-decoration:none;line-height:1.25}
ul.posts a.title:hover{text-decoration:underline;text-decoration-color:var(--marking);text-decoration-thickness:3px}
ul.posts p{margin:.3rem 0 0;color:var(--muted);max-width:44rem;font-size:1.02rem;line-height:1.55}
.meta{font-size:.95rem;color:var(--muted)}
article.post{max-width:42rem;padding:2.2rem 0 1rem}
article.post h1{font-size:clamp(1.9rem,5vw,2.8rem);line-height:1.12;margin:.2rem 0 .6rem;letter-spacing:-.02em;font-weight:800}
article.post h2{font-size:1.5rem;margin:2.2rem 0 .3rem;line-height:1.2}
article.post h3{font-size:1.15rem;margin:1.5rem 0 .2rem}
article.post p,article.post li{max-width:40rem}
article.post li{margin:.3rem 0}
.key{background:var(--white);border-left:6px solid var(--marking);padding:.9rem 1.1rem;margin:1.5rem 0;border-radius:0 .6rem .6rem 0}
.key p{margin:0}
table{border-collapse:collapse;width:100%;margin:1.2rem 0;font-size:1rem;font-family:"Bricolage Grotesque",system-ui,sans-serif}
th,td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--rule)}
th{border-bottom:2px solid var(--ink)}
.table-scroll{overflow-x:auto}
figure.hero-img{margin:1rem 0 1.6rem;max-width:22rem}
@media(max-width:640px){figure.hero-img{max-width:12.5rem}figure.hero-img figcaption{font-size:.85rem;line-height:1.4}}
figure.hero-img img{display:block;width:100%;height:auto;border-radius:.7rem}
figure.hero-img figcaption{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:.92rem;color:var(--muted);margin-top:.5rem}
.related{max-width:42rem;border-top:2px solid var(--ink);margin:2.5rem 0 1rem;padding-top:1rem}
.related h2{font-size:1.2rem;margin:0 0 .4rem}
.related ul{padding-left:1.1rem;margin:0}
.page{max-width:42rem;padding:2.2rem 0 1rem}
.page h1{font-size:2.3rem;margin:0 0 .8rem;letter-spacing:-.02em}
.page h2{font-size:1.3rem;margin-top:1.8rem}
footer.site{margin-top:3rem;background:var(--asphalt);color:#C9CCC6;padding:1.8rem 0;font-size:.98rem}
footer.site a{color:#EDEDE8}
footer.site .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem 2rem}
@media(prefers-reduced-motion:no-preference){.sidewall .tok{transition:border-color .2s}}
