:root{--paper:#fbfbfa;--paper-2:#f2f2f0;--ink:#101010;--ink-2:#3a3a3a;--ink-3:#6e6e6e;--rule:#e3e3e0;--rule-strong:#111;--accent:#c0341a;--accent-bg:#fbe9e4;--font-display:"Inter Tight", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--fs-micro:.6875rem;--fs-small:.8125rem;--fs-body:1.0625rem;--fs-lead:1.1875rem;--fs-h3:1.25rem;--fs-h2:1.5rem;--fs-h1:clamp(2rem, 6vw, 3rem);--fs-display:clamp(2.5rem, 9vw, 4.25rem);--lh-display:1.15;--lh-h1:1.15;--lh-head:1.25;--lh-body:1.65;--lh-small:1.4;--lh-micro:1;--tr-micro:.09em;--tr-lead:-.005em;--tr-h3:-.01em;--tr-h2:-.015em;--tr-h1:-.025em;--tr-display:-.035em;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--s9:96px;--s10:128px;--measure:34em;--col:min(680px, 100% - var(--s5) * 2);--col-read:min(calc(34 * var(--fs-body)), 100% - var(--s5) * 2);--col-wide:min(1080px, 100% - var(--s5) * 2);--breakout:min(1080px, 100vw - var(--s5) * 2);--radius:2px;color-scheme:light dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0e0e0e;--paper-2:#1a1a19;--ink:#f2f2f0;--ink-2:#c9c9c5;--ink-3:#8a8a86;--rule:#262625;--rule-strong:#f2f2f0;--accent:#ff6b47;--accent-bg:#2a140f}}:root[data-theme=dark]{--paper:#0e0e0e;--paper-2:#1a1a19;--ink:#f2f2f0;--ink-2:#c9c9c5;--ink-3:#8a8a86;--rule:#262625;--rule-strong:#f2f2f0;--accent:#ff6b47;--accent-bg:#2a140f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin-wght.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Tight;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-tight-latin-wght.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink-2);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);font-synthesis-weight:none;text-rendering:optimizelegibility;margin:0}@media (prefers-reduced-motion:no-preference){body{transition:background-color .2s,color .2s}a{transition:text-decoration-thickness .12s}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.col{width:var(--col);margin-inline:auto}.col-read{width:var(--col-read);margin-inline:auto}.col-wide{width:var(--col-wide);margin-inline:auto}h1,h2,h3{font-family:var(--font-display);color:var(--ink);text-wrap:balance;margin:0}h1{font-size:var(--fs-h1);font-weight:700;line-height:var(--lh-h1);letter-spacing:var(--tr-h1)}h2{font-size:var(--fs-h2);font-weight:600;line-height:var(--lh-head);letter-spacing:var(--tr-h2)}h3{font-size:var(--fs-h3);font-weight:600;line-height:var(--lh-head);letter-spacing:var(--tr-h3)}p{margin:0 0 var(--s5)}a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline 1px}a:hover{text-decoration-thickness:2px}::selection{background:var(--accent-bg);color:var(--ink)}:where(a,button,input,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:1px}.skip-link{left:var(--s4);top:calc(-1 * var(--s9));z-index:10;background:var(--paper);color:var(--ink);padding:var(--s2) var(--s4);border:1px solid var(--rule-strong);position:absolute}.skip-link:focus{top:var(--s4)}.micro{font-family:var(--font-body);font-size:var(--fs-micro);font-weight:600;line-height:var(--lh-micro);letter-spacing:var(--tr-micro);text-transform:uppercase;color:var(--ink-3);font-variant-numeric:tabular-nums}.micro--accent{color:var(--accent)}.masthead{padding-block:var(--s5) var(--s4)}.masthead__inner{align-items:baseline;gap:var(--s5);flex-wrap:wrap;display:flex}.wordmark{font-family:var(--font-display);font-size:var(--fs-h3);letter-spacing:var(--tr-h3);color:var(--ink);margin-right:auto;font-weight:700;text-decoration:none}.wordmark:hover{text-decoration:none}.nav{gap:var(--s5);display:flex}.nav a{color:var(--ink-3);text-decoration:none}.nav a:hover{color:var(--ink)}.nav a[aria-current=page]{color:var(--accent)}.rule-strong{border:0;border-top:1px solid var(--rule-strong);margin:0}.footer{margin-top:var(--s10);border-top:1px solid var(--rule);padding-block:var(--s5) var(--s7);font-size:var(--fs-small);line-height:var(--lh-small);color:var(--ink-3)}.footer__inner{gap:var(--s5);flex-wrap:wrap;display:flex}.footer a{color:var(--ink-3)}.footer a:hover{color:var(--accent)}.index{margin:0;padding:0;list-style:none}.index__item{border-bottom:1px solid var(--rule)}.index__item:last-child{border-bottom:0}.index__link{gap:var(--s5);padding-block:var(--s5);color:inherit;grid-template-columns:8.75rem 1fr;align-items:baseline;text-decoration:none;display:grid}.index__link:hover{text-decoration:none}.index__link:hover .index__meta{gap:var(--s2);flex-direction:column;display:flex}.index__title{color:var(--accent)}.index__meta{gap:var(--s2);flex-direction:column;display:flex}.index__title{font-family:var(--font-display);font-size:var(--fs-h3);letter-spacing:var(--tr-h3);font-weight:600;line-height:var(--lh-head);color:var(--ink);margin:0 0 var(--s2)}.index__standfirst{color:var(--ink-3);font-size:var(--fs-small);line-height:var(--lh-small);margin:0}@media (width<=620px){.index__link{gap:var(--s3);grid-template-columns:1fr}.index__meta{gap:var(--s3);flex-direction:row}}.post__header{padding-block:var(--s8) var(--s7)}.post__meta{margin-bottom:var(--s4);display:block}.post__series{margin-top:var(--s3);display:block}.post__standfirst{font-size:var(--fs-lead);letter-spacing:var(--tr-lead);color:var(--ink-3);margin:var(--s5) 0 0}.prose{max-width:none}.prose h2{margin-top:var(--s7);margin-bottom:var(--s5)}.prose h3{margin-top:var(--s6);margin-bottom:var(--s3)}.prose ul,.prose ol{margin:0 0 var(--s5);padding-left:var(--s5)}.prose li{margin-bottom:var(--s2)}.prose img{max-width:100%;height:auto}.prose blockquote{margin:0 0 var(--s5);padding-left:var(--s4);border-left:1px solid var(--rule);color:var(--ink-3)}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--paper-2);border-radius:var(--radius);padding:.1em .35em;font-size:.875em}.codeblock{margin:0 0 var(--s5);position:relative}.codeblock pre{padding:var(--s4);background:var(--paper-2);border-radius:var(--radius);font-size:var(--fs-small);line-height:var(--lh-small);margin:0;overflow-x:auto}.codeblock pre code{font-family:var(--font-mono)}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important;background-color:#0000!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important;background-color:#0000!important}}.copy{top:var(--s2);right:var(--s2);font:600 var(--fs-micro)/1 var(--font-body);letter-spacing:var(--tr-micro);text-transform:uppercase;color:var(--ink-3);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius);padding:var(--s1) var(--s2);cursor:pointer;opacity:0;position:absolute}.codeblock:hover .copy,.copy:focus-visible{opacity:1}@media (hover:none){.copy{opacity:1}}@media (width>=900px){.prose .codeblock,.prose>table,.prose>figure{width:var(--breakout);max-width:none;margin-inline:calc((100% - var(--breakout)) / 2)}}.series-list{margin-top:var(--s8);padding-top:var(--s5);border-top:1px solid var(--rule)}.series-list ol{margin:var(--s3) 0 0;padding-left:var(--s5);font-size:var(--fs-small)}
