:root{--paper:#f3f6fc;--surface:#fff;--ink:#142b50;--ink-soft:#4b6080;--rule:#d3deee;--accent:#2458e8;--accent-wash:#e3ebff;--subtle:#e3eaf6;--display:"Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--body:"Source Serif 4", Georgia, "Times New Roman", serif;--mono:"IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0c172b;--surface:#14243d;--ink:#e5edfc;--ink-soft:#a6b9d8;--rule:#2c4060;--accent:#8aacff;--accent-wash:#1c3260;--subtle:#203553;color-scheme:dark}}:root[data-theme=dark]{--paper:#0c172b;--surface:#14243d;--ink:#e5edfc;--ink-soft:#a6b9d8;--rule:#2c4060;--accent:#8aacff;--accent-wash:#1c3260;--subtle:#203553;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:18px;line-height:1.6}img{max-width:100%;height:auto}.wrap{max-width:1080px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0 auto}a{color:var(--accent);text-underline-offset:3px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}h1,h2,h3{font-family:var(--display);text-wrap:balance;letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.12}p{margin:0}.label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:12px;font-weight:500}.skip{position:absolute;left:-999px}.skip:focus{z-index:20;background:var(--surface);padding:8px 12px;top:16px;left:16px}header.site{z-index:5;background:color-mix(in srgb, var(--paper) 92%, transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);position:sticky;top:0}header.site .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-block:14px;display:flex}.brand{font-family:var(--display);color:var(--ink);font-size:18px;font-weight:700;text-decoration:none}nav{flex-wrap:wrap;align-items:center;gap:12px 20px;display:flex}nav a{font-family:var(--mono);color:var(--ink-soft);font-size:13px;text-decoration:none}nav a:hover{color:var(--accent)}.theme-toggle{font-family:var(--mono);color:var(--ink);background:var(--surface);border:1px solid var(--rule);cursor:pointer;border-radius:3px;min-height:44px;padding:10px 12px;font-size:12px;line-height:1.4}.theme-toggle:hover{color:var(--accent);border-color:var(--accent)}section{border-bottom:1px solid var(--rule)}section>.wrap{grid-template-columns:180px minmax(0,1fr);gap:40px;padding-block:72px;display:grid}.margin{flex-direction:column;gap:6px;padding-top:6px;display:flex}.content{flex-direction:column;gap:28px;min-width:0;display:flex}.content>.lede{max-width:62ch;color:var(--ink-soft)}h2{font-size:clamp(28px,4vw,40px)}@media (width<=760px){section>.wrap{grid-template-columns:minmax(0,1fr);gap:16px;padding-block:52px}.margin{flex-flow:wrap;gap:14px}}.hero>.wrap{padding-block:88px 72px}.hero h1{letter-spacing:-.025em;max-width:14ch;font-size:clamp(40px,7.2vw,80px)}.hero h1 em{color:var(--accent);font-style:normal}.hero .intro{max-width:58ch;color:var(--ink-soft);font-size:21px}.cta-row{flex-wrap:wrap;gap:12px;display:flex}.btn{font-family:var(--mono);border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:3px;padding:12px 18px;font-size:14px;font-weight:500;text-decoration:none}.btn.primary{background:var(--ink);color:var(--paper)}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary:hover{background:var(--accent);color:var(--paper)}.facts{flex-wrap:wrap;gap:10px 28px;padding-top:8px;display:flex}.facts span{font-family:var(--mono);color:var(--ink-soft);font-size:13px}.facts b{color:var(--ink);font-weight:500}.log{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.log li{border-bottom:1px solid var(--rule);grid-template-columns:150px minmax(0,1fr);gap:24px;padding-block:20px;display:grid}.log .tag{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.06em;padding-top:5px;font-size:12px}.log h3{margin-bottom:4px;font-size:21px}.log p{color:var(--ink-soft);max-width:60ch}@media (width<=560px){.log li{grid-template-columns:minmax(0,1fr);gap:6px}}.posts{border-top:1px solid var(--ink);flex-direction:column;display:flex}.post{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;padding-block:26px;display:grid}.post h3{font-size:clamp(22px,2.6vw,28px)}.post h3 a{color:var(--ink);text-decoration:none}.post h3 a:hover{color:var(--accent)}.post p{color:var(--ink-soft);grid-column:1/-1;max-width:64ch}.post .meta{white-space:nowrap;align-items:baseline;gap:10px;display:flex}.post time{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.chip{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;background:var(--subtle);color:var(--ink-soft);border-radius:2px;padding:3px 8px;font-size:11px}.chip.accent{background:var(--accent-wash);color:var(--accent)}@media (width<=560px){.post{grid-template-columns:minmax(0,1fr)}}.themes{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.theme{background:var(--surface);flex-direction:column;gap:8px;padding:24px;display:flex}.theme h3{font-size:20px}.theme p{color:var(--ink-soft);font-size:16.5px}.formats{flex-wrap:wrap;align-items:center;gap:8px;display:flex}@media (width<=640px){.themes{grid-template-columns:minmax(0,1fr)}}.work-group{flex-direction:column;display:flex}.work-group+.work-group{margin-top:12px}.work-group>.label{border-bottom:1px solid var(--ink);padding-bottom:10px}.work{border-bottom:1px solid var(--rule);grid-template-columns:220px minmax(0,1fr);gap:24px;padding-block:20px;display:grid}.work h3{font-size:19px}.work .role{font-family:var(--mono);color:var(--ink-soft);margin-top:4px;font-size:12.5px}.work p{color:var(--ink-soft);font-size:17px}.work .status{margin-top:8px}@media (width<=640px){.work{grid-template-columns:minmax(0,1fr);gap:6px}}.cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;display:grid}.cols p+p{margin-top:14px}.bring{flex-direction:column;gap:14px;margin:14px 0 0;padding:0;list-style:none;display:flex}.bring li{padding-left:18px;font-size:17px;position:relative}.bring li:before{content:"";background:var(--accent);width:8px;height:2px;position:absolute;top:.62em;left:0}.creds{flex-wrap:wrap;gap:8px;display:flex}@media (width<=760px){.cols{grid-template-columns:minmax(0,1fr)}}.contact h2{max-width:18ch;font-size:clamp(30px,5vw,52px)}.email-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.email{font-family:var(--mono);background:var(--surface);border:1px solid var(--rule);color:var(--ink);overflow-wrap:anywhere;border-radius:3px;padding:11px 14px;font-size:17px;text-decoration:none}.email:hover{border-color:var(--accent)}#copy-status{font-family:var(--mono);color:var(--accent);font-size:13px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:28px;display:flex}footer span,footer a{font-family:var(--mono);color:var(--ink-soft);font-size:12px}.article>.wrap{max-width:760px;padding-block:64px 80px;display:block}.article header{flex-direction:column;gap:16px;margin-bottom:40px;display:flex}.article h1{letter-spacing:-.02em;font-size:clamp(34px,5.5vw,54px)}.article .dek{color:var(--ink-soft);font-size:21px}.article .meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.prose{font-size:19px;line-height:1.7}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:1.8em;font-size:28px}.prose h3{margin-top:1.5em;font-size:22px}.prose blockquote{border-left:3px solid var(--accent);color:var(--ink-soft);margin-left:0;padding-left:20px}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose code{font-family:var(--mono);background:var(--subtle);border-radius:2px;padding:2px 5px;font-size:.85em}.prose pre{background:var(--surface);border:1px solid var(--rule);border-radius:3px;padding:16px;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--rule)}.back{font-family:var(--mono);font-size:13px;text-decoration:none}
