:root{--paper:#f4efe4;--paper2:#ebe3d2;--ink:#17231d;--ink2:#4a5a51;--rule:#cbbfa6;--accent:#0f5a3c;--accent2:#b4532a;--gold:#a9822f;--card:#fbf8f1}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#121814;--paper2:#1a221d;--ink:#ece6d8;--ink2:#a8b3ab;--rule:#34413a;--accent:#5fbf8f;--accent2:#e28a5d;--gold:#d4ae5c;--card:#18201b}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.7 "Source Serif 4",Georgia,serif}
a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--accent2)}
.mono,.kicker,.meta,nav,.tag,.qnum{font-family:"IBM Plex Mono",ui-monospace,monospace}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
header.top{border-bottom:3px double var(--rule);background:var(--paper)}
.masthead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:18px 0 10px;flex-wrap:wrap}
.brand{font-family:Fraunces,Georgia,serif;font-weight:800;font-size:30px;letter-spacing:-.5px;color:var(--ink);text-decoration:none}
.brand small{display:block;font:500 11px "IBM Plex Mono",monospace;letter-spacing:2px;text-transform:uppercase;color:var(--ink2)}
nav{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;text-transform:uppercase;letter-spacing:1px}
nav a{color:var(--ink);text-decoration:none}nav a:hover{color:var(--accent)}
.ticker{border-top:1px solid var(--rule);font:12px "IBM Plex Mono",monospace;color:var(--ink2);padding:6px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ticker b{color:var(--accent)}
.hero{padding:48px 0 28px;border-bottom:1px solid var(--rule)}
.kicker{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--accent2)}
h1,h2,h3{font-family:Fraunces,Georgia,serif;line-height:1.2;letter-spacing:-.3px}
.hero h1{font-size:clamp(34px,6vw,58px);margin:10px 0 14px;max-width:850px}
.hero p{max-width:680px;color:var(--ink2);font-size:19px}
.cta{display:inline-block;background:var(--accent);color:#fff;padding:12px 20px;text-decoration:none;font:600 14px "IBM Plex Mono",monospace;letter-spacing:.5px;border-radius:2px}
.cta:hover{background:var(--accent2);color:#fff}
.section-title{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid var(--ink);margin:42px 0 0;padding-bottom:6px}
.section-title h2{margin:0;font-size:22px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0;border-left:1px solid var(--rule)}
.card{padding:22px 20px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);text-decoration:none;color:var(--ink);background:transparent;display:block}
.card:hover{background:var(--card)}
.card h3{margin:8px 0;font-size:21px}.card p{margin:0;color:var(--ink2);font-size:15px}
.tag{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--accent)}
.qnum{float:right;font-size:11px;color:var(--gold)}
article.post{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:48px;padding:40px 0}
.post h1{font-size:clamp(30px,5vw,46px);margin:8px 0 12px}
.lede{font-size:20px;color:var(--ink2);border-left:3px solid var(--gold);padding-left:16px}
.meta{font-size:12px;color:var(--ink2);margin:14px 0 26px}
.content h2{font-size:27px;margin:38px 0 10px;padding-top:12px;border-top:1px solid var(--rule)}
.content ul,.content ol{padding-left:22px}.content li{margin:6px 0}
ol.check{list-style:none;padding-left:0}ol.check li{padding-left:30px;position:relative}
ol.check li:before{content:"";position:absolute;left:0;top:7px;width:16px;height:16px;border:1.5px solid var(--accent);border-radius:2px}
.note{background:var(--paper2);border:1px solid var(--rule);padding:14px 18px;margin:22px 0}
.note span{font:600 11px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:2px;color:var(--accent2)}.note p{margin:6px 0 0}
.ezbox{border:2px solid var(--accent);padding:20px;margin:34px 0;background:var(--card)}
.ezbox h3{margin:0 0 6px}
.faq details{border-bottom:1px solid var(--rule);padding:12px 0}.faq summary{cursor:pointer;font-weight:600}
aside.side{position:sticky;top:20px;align-self:start;font-size:14px}
aside.side h4{font:600 11px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:2px;border-bottom:1px solid var(--ink);padding-bottom:6px;margin:0 0 8px}
aside.side ol{padding-left:18px;margin:0 0 26px}aside.side li{margin:5px 0}
.queries{list-style:none;padding:0;margin:0 0 26px}.queries li{font:12px "IBM Plex Mono",monospace;color:var(--ink2);padding:4px 0;border-bottom:1px dotted var(--rule)}
.related a{display:block;padding:8px 0;border-bottom:1px solid var(--rule);text-decoration:none}
footer{border-top:3px double var(--rule);margin-top:50px;padding:28px 0 40px;font-size:14px;color:var(--ink2)}
footer .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
footer a{color:var(--ink)}
table.qtable{width:100%;border-collapse:collapse;font-size:14px}table.qtable td,table.qtable th{border-bottom:1px solid var(--rule);padding:8px 6px;text-align:left;vertical-align:top}
table.qtable th{font:600 11px "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:1px}
figure.cover{margin:0 0 26px;border:1px solid var(--rule)}figure.cover img{display:block;width:100%;height:auto}figure.cover figcaption{font:12px "IBM Plex Mono",monospace;color:var(--ink2);padding:8px 12px;border-top:1px solid var(--rule)}
.card img{display:block;width:100%;height:auto;aspect-ratio:1200/630;border:1px solid var(--rule);margin-bottom:12px}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:36px;align-items:center}.hero-grid img{width:100%;height:auto;border:1px solid var(--rule)}
@media (max-width:860px){.hero-grid{grid-template-columns:1fr}}
@media (max-width:860px){article.post{grid-template-columns:1fr;gap:10px}aside.side{position:static}}