@font-face{font-family:barlow;font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/Barlow-Regular.woff2)format('woff2')}@font-face{font-family:barlow;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/Barlow-SemiBold.woff2)format('woff2')}@font-face{font-family:barlow condensed;font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/BarlowCondensed-SemiBold.woff2)format('woff2')}:root{--ink:#1d1f20;--steel:#5980a6;--steel-light:#94bce3;--paper:#f2f2f3;--night:#1d2d3d;--steel-deep:#416180;--steel-pale:#d6ebff;--grey:#5d5d60;--line:#d4d4d7;--bg:var(--paper);--surface:#ffffff;--text:var(--ink);--muted:var(--grey);--border:var(--grey);--rule:var(--line);--accent:var(--steel-deep);--accent-hover:var(--ink);--on-accent:#ffffff;--focus:var(--steel-deep);--hover-bg:var(--steel-pale);--logo-door:var(--steel);--font:'Barlow', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;--font-head:'Barlow Condensed', 'Barlow', system-ui, sans-serif;--mono:ui-monospace, 'SF Mono', 'Fira Code', Menlo, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:var(--night);--surface:#263a4e;--text:var(--paper);--muted:#b9c6d3;--border:#6f8ba8;--rule:#33475b;--accent:var(--steel-light);--accent-hover:#ffffff;--on-accent:var(--night);--focus:var(--steel-light);--hover-bg:#263a4e;--logo-door:var(--steel-light);color-scheme:dark}}:root[data-theme=dark]{--bg:var(--night);--surface:#263a4e;--text:var(--paper);--muted:#b9c6d3;--border:#6f8ba8;--rule:#33475b;--accent:var(--steel-light);--accent-hover:#ffffff;--on-accent:var(--night);--focus:var(--steel-light);--hover-bg:#263a4e;--logo-door:var(--steel-light);color-scheme:dark}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{margin:0;background:var(--bg);color:var(--text);font:1.0625rem/1.65 var(--font)}.wrap{max-width:68rem;margin-inline:auto;padding-inline:1.25rem}a{color:var(--accent);text-underline-offset:.2em}a:hover{color:var(--accent-hover)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:2px}main:focus{outline:none}h1,h2,h3{font-family:var(--font-head);font-weight:600;line-height:1.1;letter-spacing:0}h1{font-size:clamp(2.5rem,6vw,4rem);margin:0 0 1rem}h2{font-size:2.125rem;margin:3rem 0 .75rem}h3{font-size:1.625rem;margin:0 0 .25rem}ul{padding:0;margin:0;list-style:none}.sr,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip:focus{position:fixed;top:.5rem;left:.5rem;z-index:10;background:var(--accent);color:var(--on-accent);padding:.75rem 1rem;border-radius:.375rem}.site-header{border-bottom:1px solid var(--rule)}.bar{display:flex;align-items:center;gap:1.5rem;min-height:4rem}.brand{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--text)}.brand:hover{color:var(--text)}.logo{height:2rem;width:auto;display:block}.logo-door{fill:var(--logo-door)}.bar nav{margin-left:auto}.bar nav ul{display:flex;gap:.25rem}.bar nav a{display:inline-block;padding:.625rem .75rem;min-height:2.75rem;color:var(--text);text-decoration:none;border-radius:.375rem}.bar nav a:hover{text-decoration:underline;background:var(--hover-bg);color:var(--text)}.bar nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px}.icon-btn{width:2.75rem;height:2.75rem;display:grid;place-items:center;background:0 0;color:var(--text);border:1px solid var(--border);border-radius:.5rem;cursor:pointer}.icon-btn:hover{background:var(--hover-bg)}.i-moon{display:none}:root[data-theme=dark] .i-sun{display:none}:root[data-theme=dark] .i-moon{display:block}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .i-sun{display:none}:root:not([data-theme=light]) .i-moon{display:block}}.hero{padding-block:clamp(3rem,9vw,6.5rem)1rem}.hero h1{max-width:24ch}.lede{font-size:1.375rem;color:var(--muted);max-width:42rem;margin:0 0 2rem}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin:0}.btn{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1.25rem;background:var(--accent);color:var(--on-accent);font-weight:600;text-decoration:none;border-radius:.5rem;border:2px solid var(--accent)}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.btn.ghost{background:0 0;color:var(--text);border-color:var(--border)}.btn.ghost:hover{background:var(--hover-bg);border-color:var(--border);color:var(--text)}.section-intro{color:var(--muted);max-width:42rem;margin:0 0 1.5rem}.cards{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr))}.card{background:var(--surface);border:1px solid var(--rule);border-radius:.75rem;padding:1.5rem;display:flex;flex-direction:column}.card p{margin:.5rem 0 0}.tagline{color:var(--muted);font-weight:500}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.tags li{font:.8125rem var(--mono);color:var(--muted);border:1px solid var(--rule);border-radius:999px;padding:.125rem .625rem}.links{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:auto!important;padding-top:1.25rem;font-weight:600}.links a{display:inline-block;padding-block:.5rem;min-height:2.75rem}.posts li{padding-block:1rem;border-top:1px solid var(--rule)}.posts li:first-child{border-top:0}.posts h2,.posts h3{margin:0 0 .25rem;font-size:1.5rem}.posts p{margin:.25rem 0 0;color:var(--muted)}.prose{max-width:46rem;padding-block:3rem 4rem}.prose h2{font-size:1.875rem;margin-top:2.5rem}.prose p,.prose li{max-width:68ch}.prose ul{list-style:disc;padding-left:1.5rem}.prose li{margin-block:.4rem}.meta{color:var(--muted);margin-top:-.5rem}.prose pre{overflow-x:auto;background:var(--surface);border:1px solid var(--rule);border-radius:.5rem;padding:1rem;font-size:.875rem}.prose pre:focus-visible{outline-offset:0}code{font-family:var(--mono);font-size:.9em}:not(pre)>code{background:var(--surface);border:1px solid var(--rule);border-radius:.25rem;padding:.05em .35em}.prose table{border-collapse:collapse;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);padding:.5rem .75rem;text-align:left}.prose blockquote{margin-inline:0;padding-left:1rem;border-left:4px solid var(--border);color:var(--muted)}.site-footer{border-top:1px solid var(--rule);margin-top:4rem;padding-block:2rem;color:var(--muted)}.site-footer p{margin:0}@media(max-width:36rem){.bar{gap:.5rem}.bar nav a{padding-inline:.5rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}