:root{color-scheme:light;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:24px;--space-xl:40px;--space-2xl:64px;--space-3xl:96px;--space-4xl:144px;--text-xs:.8125rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:1.5625rem;--text-2xl:1.953rem;--text-3xl:2.441rem;--text-display-s:clamp(2.25rem, 4vw + .5rem, 3.75rem);--text-display:clamp(2.75rem, 5vw + 1rem, 5.25rem);--text-section:clamp(2rem, 2.5vw + 1rem, 3.5rem);--text-title:clamp(1.25rem, .75vw + .875rem, 1.625rem);--text-lead:clamp(1.125rem, .35vw + 1rem, 1.375rem);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.7, 0, .84, 0);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s;--color-error:oklch(52% .19 27);--color-success:oklch(50% .12 150);--container:1440px;--gutter:64px;--gap-columns:32px;--section-gap-s:120px;--section-gap:144px;--section-gap-l:176px;--z-base:1;--z-raised:10;--z-dropdown:100;--z-sticky:200;--z-sticky-nav:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--color-paper:oklch(98.6% .005 250);--color-paper-2:oklch(96.2% .008 252);--color-paper-3:oklch(93% .011 252);--color-ink:oklch(21% .028 262);--color-ink-2:oklch(36% .022 260);--color-muted:oklch(50% .018 258);--color-rule:oklch(90% .009 252);--color-rule-2:oklch(83% .012 252);--color-graphite:oklch(29% .105 264);--color-graphite-2:oklch(36% .12 263);--color-graphite-ink:oklch(96% .014 250);--color-graphite-muted:oklch(78% .05 256);--color-accent:oklch(52% .19 258);--color-accent-2:oklch(76% .13 254);--color-accent-wash:oklch(95% .028 256);--color-accent-ink:oklch(98.6% .005 250);--color-accent-wash-2:oklch(91.5% .045 256);--color-focus:oklch(52% .19 258);--color-accent-deep:oklch(43% .2 262);--color-accent-edge:oklch(39% .16 260);--color-glyph-1:oklch(89% .025 254);--color-glyph-2:oklch(81% .045 255);--color-glyph-3:oklch(70% .085 256);--color-glyph-4:oklch(60% .13 257);--color-graphite-glyph-1:oklch(33% .03 262);--color-graphite-glyph-2:oklch(41% .05 260);--color-graphite-glyph-3:oklch(53% .1 258);--color-key-face:oklch(99.4% .003 250);--color-key-edge:oklch(80% .016 254);--font-display:var(--font-familjen,"Familjen Grotesk", system-ui, sans-serif);--font-body:var(--font-plex,"IBM Plex Sans", system-ui, sans-serif);--font-outlier:var(--font-jetbrains,"JetBrains Mono", ui-monospace, monospace);--radius-card:8px;--radius-input:6px;--radius-pill:999px;--cell-w:8px;--cell-h:16px;--cut:8px;--cut-l:16px;--rule-hair:1px;--shadow-card:0 1px 2px oklch(21% .028 262/.06);--shadow-key:0 3px 0 0 var(--color-key-edge), 0 6px 8px -4px oklch(21% .028 262/.28), inset 0 1px 0 oklch(100% 0 0/.9);--shadow-key-accent:0 3px 0 0 var(--color-accent-edge), 0 6px 8px -4px oklch(30% .12 260/.45), inset 0 1px 0 oklch(100% 0 0/.22);--shadow-key-press:inset 0 1px 2px oklch(21% .028 262/.14);--tracking-display:-.028em;--display-weight:600;--measure:68ch;--text-prose:1.125rem;--nav-h:64px;--banner-h:40px}*,:before,:after{box-sizing:border-box}html{scrollbar-color:var(--color-muted) var(--color-paper);scroll-padding-top:var(--space-3xl)}body{background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-md);-webkit-font-smoothing:antialiased;caret-color:var(--color-accent);margin:0;line-height:1.55}::selection{background:color-mix(in oklab, var(--color-accent) 22%, transparent);color:var(--color-ink)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:inherit;text-underline-offset:.16em;text-decoration-thickness:1px}h1,h2,h3{font-family:var(--font-display);font-weight:var(--display-weight,700);font-synthesis:none;letter-spacing:var(--tracking-display);overflow-wrap:break-word;text-wrap:balance;min-width:0;margin:0;line-height:1.05}h1{max-width:20ch;font-size:var(--text-display)}h2{max-width:30ch;font-size:var(--text-section)}h3{max-width:40ch;font-size:var(--text-title);line-height:1.2}.lead{font-size:var(--text-lead);max-width:52ch;line-height:1.45}p{text-wrap:pretty;margin:0}p:not([class]){max-width:65ch}img,video{max-width:100%;height:auto;display:block}svg{display:block}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);box-sizing:border-box;margin-inline:auto}.num,.figure,td.num{font-variant-numeric:tabular-nums}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}[data-slot]{background:linear-gradient(160deg, var(--color-paper-2,var(--color-paper)), var(--color-paper-3,var(--color-paper)));position:relative;overflow:hidden}[data-slot]>img{object-fit:cover;z-index:1;width:100%;height:100%;position:absolute;inset:0}[data-slot]:has(>img)>:not(img):not([data-keep]){display:none!important}@media (width<=60rem){:root{--gutter:24px;--section-gap-s:80px;--section-gap:96px;--section-gap-l:120px}}@media (width<=40rem){:root{--gutter:16px;--section-gap-s:56px;--section-gap:72px;--section-gap-l:96px;--gap-columns:16px}}@media (prefers-reduced-motion:reduce){:not(.keep-motion),:not(.keep-motion):before,:not(.keep-motion):after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}[data-slot]:has(>img){isolation:isolate;background:var(--color-paper);outline:1px solid color-mix(in oklab, var(--color-ink) 8%, transparent);outline-offset:-1px}[data-slot]>img{z-index:0;filter:grayscale()contrast(1.08);mix-blend-mode:multiply}[data-slot]:has(>img):before{content:"";z-index:1;background:var(--color-graphite);mix-blend-mode:lighten;pointer-events:none;position:absolute;inset:0}html,body{overflow-x:clip}.key{justify-content:center;align-items:center;gap:var(--space-xs);min-height:48px;padding:0 var(--space-lg);border:var(--rule-hair) solid var(--color-rule-2);border-radius:var(--radius-input);background:var(--color-key-face);color:var(--color-ink);font:500 var(--text-md) / 1 var(--font-display);white-space:nowrap;cursor:pointer;box-shadow:var(--shadow-key);transition:transform var(--dur-micro) var(--ease-out), box-shadow var(--dur-micro) var(--ease-out), background-color var(--dur-short) var(--ease-out);text-decoration:none;display:inline-flex}.key:hover{transform:translateY(-1px)}.key:active{box-shadow:var(--shadow-key-press);transform:translateY(3px)}.key:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.key:disabled,.key[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none}.key svg{flex-shrink:0}.key--primary{background:var(--color-accent);border-color:var(--color-accent-edge);color:var(--color-accent-ink);box-shadow:var(--shadow-key-accent)}.key--primary:hover{background:var(--color-accent-deep)}.cut{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-card);background:var(--color-paper);box-shadow:var(--shadow-card)}@supports (corner-shape:bevel){.cut{border-radius:var(--cut-l) 4px var(--cut-l) 4px;corner-shape:bevel round bevel round}}.link{color:var(--color-ink);text-decoration:underline;text-decoration-color:var(--color-rule-2);text-underline-offset:.2em;transition:text-decoration-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out)}.link:hover{text-decoration-color:var(--color-accent)}.link:active{color:var(--color-accent)}.mono{font-family:var(--font-outlier);font-variant-numeric:tabular-nums}.cols{column-gap:var(--gap-columns);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.rows{border-top:var(--rule-hair) solid var(--color-rule);margin:0;padding:0;list-style:none}.row{gap:var(--space-xs) var(--gap-columns);padding-block:var(--space-lg);border-bottom:var(--rule-hair) solid var(--color-rule);transition:background-color var(--dur-short) var(--ease-out);grid-template-columns:9rem minmax(0,1fr) minmax(0,14rem);align-items:baseline;display:grid;position:relative}.row:hover{background:var(--color-paper-2)}.row time{color:var(--color-muted);font-size:var(--text-sm)}.row h3{max-width:36ch;color:var(--color-ink);font-weight:500}.row__link{border-radius:var(--space-2xs);position:absolute;inset:0}.row__link:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.row:hover h3{text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:.2em;text-decoration-thickness:1px}.row:active h3{color:var(--color-accent)}.row__meta{color:var(--color-muted);font-size:var(--text-sm);text-align:right;justify-self:end}@media (width<=48rem){.row{gap:var(--space-2xs);grid-template-columns:minmax(0,1fr)}.row__meta{text-align:left;justify-self:start}}.tags{gap:var(--space-2xs) var(--space-md);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.prose{max-width:var(--measure);font-size:var(--text-prose);color:var(--color-ink-2);line-height:1.7}.prose>*+*{margin-top:var(--space-md)}.prose p:not([class]){max-width:none}.prose h2,.prose h3,.prose h4{max-width:36ch;margin-top:var(--space-2xl);color:var(--color-ink);line-height:1.2}.prose h2{color:var(--color-accent-deep);font-size:var(--text-2xl)}.prose h3,.prose h4{font-size:var(--text-xl);font-weight:500}.prose h4{font-family:var(--font-display);letter-spacing:var(--tracking-display)}.prose h2+*,.prose h3+*,.prose h4+*{margin-top:var(--space-sm)}.prose a{color:var(--color-ink);text-decoration-color:var(--color-accent);text-underline-offset:.2em;transition:color var(--dur-short) var(--ease-out)}.prose a:hover{color:var(--color-accent)}.prose a:active{color:var(--color-accent-deep)}.prose strong{color:var(--color-ink);font-weight:500}.prose ul,.prose ol{padding-left:var(--space-lg)}.prose li+li{margin-top:var(--space-2xs)}.prose li::marker{color:var(--color-muted)}.prose img{border:var(--rule-hair) solid var(--color-rule);border-radius:var(--radius-input);background:var(--color-paper);box-shadow:var(--shadow-card)}.prose p:has(>img:only-child),.prose p:has(>a:only-child>img){margin-block:var(--space-xl)}.prose a:has(>img){border-radius:var(--radius-input);display:inline-block}.prose blockquote{padding:var(--space-md) var(--space-lg);background:var(--color-accent-wash);border:var(--rule-hair) solid var(--color-accent-wash-2);border-radius:var(--radius-input);color:var(--color-ink);margin-inline:0}.prose hr{border:0;border-top:var(--rule-hair) solid var(--color-rule);margin-block:var(--space-2xl)}.prose code{padding:var(--space-3xs) var(--space-2xs);border-radius:var(--space-2xs);background:var(--color-accent-wash);color:var(--color-accent-deep);font:.875em / 1.5 var(--font-outlier)}.prose pre{padding:var(--space-lg);border-radius:var(--radius-card);font-size:var(--text-sm);line-height:1.6;overflow-x:auto;background:var(--color-graphite)!important;color:var(--color-graphite-ink)!important}.prose pre code{color:inherit;background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:var(--text-md);font-variant-numeric:tabular-nums}.prose th,.prose td{padding:var(--space-sm) var(--space-md) var(--space-sm) 0;border-bottom:var(--rule-hair) solid var(--color-rule);text-align:left}.prose th{color:var(--color-ink);white-space:nowrap;font-weight:500}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.key,.row,.link{transition:none}.key:hover,.key:active{transform:none}}.consent[data-astro-cid-bm4qem4n]{z-index:var(--z-toast);padding-block:var(--space-lg);background:var(--color-graphite);color:var(--color-graphite-ink);border-top:var(--rule-hair) solid var(--color-graphite-2);position:fixed;inset:auto 0 0}.consent[data-astro-cid-bm4qem4n][hidden]{display:none}.consent__inner[data-astro-cid-bm4qem4n]{justify-content:space-between;align-items:center;gap:var(--space-md) var(--space-2xl);flex-wrap:wrap;display:flex}.consent__text[data-astro-cid-bm4qem4n]{flex:32rem;min-width:0}.consent[data-astro-cid-bm4qem4n] h2[data-astro-cid-bm4qem4n]{font:var(--display-weight) var(--text-title) / 1.2 var(--font-display);letter-spacing:var(--tracking-display);color:var(--color-graphite-ink);overflow-wrap:break-word}.consent[data-astro-cid-bm4qem4n] p[data-astro-cid-bm4qem4n]{margin-top:var(--space-2xs);color:var(--color-graphite-muted);max-width:64ch}.consent[data-astro-cid-bm4qem4n] a[data-astro-cid-bm4qem4n]{color:var(--color-graphite-ink);text-decoration:underline;text-decoration-color:var(--color-graphite-muted);text-underline-offset:.2em;transition:text-decoration-color var(--dur-short) var(--ease-out)}.consent[data-astro-cid-bm4qem4n] a[data-astro-cid-bm4qem4n]:hover{text-decoration-color:var(--color-accent-2)}.consent[data-astro-cid-bm4qem4n] a[data-astro-cid-bm4qem4n]:active{color:var(--color-accent-2)}.consent[data-astro-cid-bm4qem4n] a[data-astro-cid-bm4qem4n]:focus-visible{outline:2px solid var(--color-accent-2);outline-offset:2px}.consent__actions[data-astro-cid-bm4qem4n]{gap:var(--space-sm);flex-wrap:wrap;display:flex}.consent[data-astro-cid-bm4qem4n] .key[data-astro-cid-bm4qem4n]:focus-visible{outline-color:var(--color-accent-2)}@media (width<=40rem){.consent__actions[data-astro-cid-bm4qem4n],.consent__actions[data-astro-cid-bm4qem4n] .key[data-astro-cid-bm4qem4n]{flex:100%}}.foot[data-astro-cid-jo6i4kqk]{margin-top:var(--section-gap);background:var(--color-accent-wash);border-top:var(--rule-hair) solid var(--color-accent-wash-2);padding-block:var(--space-2xl) var(--space-xl)}.foot__inner[data-astro-cid-jo6i4kqk]{column-gap:var(--gap-columns);row-gap:var(--space-xl);grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;display:grid}.foot__close[data-astro-cid-jo6i4kqk]{grid-column:1/7}.foot__faces[data-astro-cid-jo6i4kqk]{margin-bottom:var(--space-md);display:flex}.foot__faces[data-astro-cid-jo6i4kqk] img{width:3.5rem;height:auto;box-shadow:0 0 0 3px var(--color-accent-wash);border-radius:50%}.foot__faces[data-astro-cid-jo6i4kqk] img+img{margin-left:calc(var(--space-sm) * -1)}.foot__sign[data-astro-cid-jo6i4kqk]{font:var(--display-weight) var(--text-2xl) / 1.1 var(--font-display);letter-spacing:var(--tracking-display);max-width:24ch}.foot__date[data-astro-cid-jo6i4kqk]{margin-top:var(--space-xs);color:var(--color-muted)}.foot__links[data-astro-cid-jo6i4kqk]{justify-self:end;gap:var(--space-2xs) var(--space-xs);flex-wrap:wrap;grid-column:7/-1;margin:0;padding:0;list-style:none;display:flex}.foot__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{min-height:44px;padding-inline:var(--space-sm);color:var(--color-ink-2);white-space:nowrap;border-radius:var(--radius-input);transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);align-items:center;text-decoration:none;display:inline-flex}.foot__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{background:var(--color-accent-wash-2);color:var(--color-accent-deep)}.foot__links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:active{background:var(--color-glyph-1)}.foot__legal[data-astro-cid-jo6i4kqk]{padding-top:var(--space-md);border-top:var(--rule-hair) solid var(--color-accent-wash-2);color:var(--color-muted);font-size:var(--text-sm);justify-content:space-between;gap:var(--space-xs) var(--space-lg);flex-wrap:wrap;grid-column:1/-1;display:flex}.foot__privacy[data-astro-cid-jo6i4kqk]{gap:var(--space-2xs) var(--space-lg);flex-wrap:wrap;display:flex}.foot__privacy[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk],.foot__privacy[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]{color:var(--color-ink-2);font:inherit;text-decoration:underline;text-decoration-color:var(--color-rule-2);text-underline-offset:.2em;cursor:pointer;transition:text-decoration-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);background:0 0;border:0;padding:0}.foot__privacy[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover,.foot__privacy[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]:hover{text-decoration-color:var(--color-accent)}.foot__privacy[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:active,.foot__privacy[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]:active{color:var(--color-accent)}.foot__privacy[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:focus-visible,.foot__privacy[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk]:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px;border-radius:2px}.foot__privacy[data-astro-cid-jo6i4kqk] button[data-astro-cid-jo6i4kqk][hidden]{display:none}@media (width<=60rem){.foot__close[data-astro-cid-jo6i4kqk],.foot__links[data-astro-cid-jo6i4kqk]{grid-column:1/-1;justify-self:start}.foot__links[data-astro-cid-jo6i4kqk]{margin-inline:calc(var(--space-sm) * -1)}}.release[data-astro-cid-nen7h5rs]{background:var(--color-graphite);color:var(--color-graphite-ink);font-size:var(--text-sm)}.release__inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:var(--space-md);min-height:var(--banner-h);padding-block:var(--space-xs);display:flex}.release[data-astro-cid-nen7h5rs] p[data-astro-cid-nen7h5rs]{max-width:none}.release[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--color-graphite-ink);white-space:nowrap;text-decoration-color:var(--color-graphite-muted);transition:text-decoration-color var(--dur-short) var(--ease-out)}.release[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{text-decoration-color:var(--color-accent-2)}.release[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:active{color:var(--color-accent-2)}.release[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:focus-visible{outline-color:var(--color-accent-2)}.bar[data-astro-cid-nen7h5rs]{z-index:var(--z-sticky-nav);background:color-mix(in oklab, var(--color-paper) 92%, transparent);backdrop-filter:saturate(1.4)blur(8px);border-bottom:var(--rule-hair) solid var(--color-rule);transition:transform var(--dur-short) var(--ease-out);position:sticky;top:0}.bar[data-astro-cid-nen7h5rs][data-away]{transition-timing-function:var(--ease-in);transform:translateY(-100%)}.bar__inner[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-lg);min-height:var(--nav-h);grid-template-columns:minmax(0,1fr) auto;display:grid}.wordmark[data-astro-cid-nen7h5rs]{font:var(--display-weight) var(--text-xl) / 1 var(--font-display);letter-spacing:var(--tracking-display);color:var(--color-ink);white-space:nowrap;justify-self:start;text-decoration:none}.wordmark[data-astro-cid-nen7h5rs] span[data-astro-cid-nen7h5rs]{color:var(--color-accent);font-weight:500}.wordmark[data-astro-cid-nen7h5rs]:hover span[data-astro-cid-nen7h5rs]{color:var(--color-accent-deep)}.wordmark[data-astro-cid-nen7h5rs]:active{color:var(--color-ink-2)}.bar__links[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-xs);margin-right:calc(var(--space-sm) * -1);justify-self:end;display:flex}.bar__links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-xs);min-height:44px;padding:0 var(--space-sm);border-radius:var(--radius-input);color:var(--color-ink-2);font-size:var(--text-md);white-space:nowrap;transition:background-color var(--dur-short) var(--ease-out), color var(--dur-short) var(--ease-out);text-decoration:none;display:inline-flex}.bar__links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover{background:var(--color-paper-2);color:var(--color-ink)}.bar__links[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:active{background:var(--color-paper-3)}.bar__rss[data-astro-cid-nen7h5rs] svg[data-astro-cid-nen7h5rs]{color:var(--color-accent);flex-shrink:0}@media (width<=40rem){.release__inner[data-astro-cid-nen7h5rs]{align-items:flex-start;gap:var(--space-2xs);flex-direction:column}.bar__site[data-astro-cid-nen7h5rs]{display:none!important}}@media (prefers-reduced-motion:reduce){.bar[data-astro-cid-nen7h5rs]{transition:none}}
