@font-face{font-family:Space Grotesk;src:url(/fonts/space-grotesk-variable.woff2)format("woff2");font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root,:root[data-theme=dark]{color-scheme:dark;--color-bg:#0b0b0c;--color-surface:#1a1a1d;--color-wash:#131315;--color-text:#f5f3ef;--color-text-muted:#a9a59e;--color-accent-text:#e8a33d;--color-accent:#e8a33d;--color-on-accent:#0b0b0c;--color-control-border:#75716b;--color-focus:#f5f3ef;--color-divider:#2c2c30;--color-logo-bars:#e8a33d;--color-good:#7bd389;--color-serious:#f2907e}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){color-scheme:light;--color-bg:#f5f3ef;--color-surface:#e9e5de;--color-wash:#eeebe5;--color-text:#0b0b0c;--color-text-muted:#5a5650;--color-accent-text:#8a5410;--color-accent:#e8a33d;--color-on-accent:#0b0b0c;--color-control-border:#78736b;--color-focus:#0b0b0c;--color-divider:#d6d1c8;--color-logo-bars:#e8a33d;--color-good:#1d6b35;--color-serious:#a8341f}}:root[data-theme=light]{color-scheme:light;--color-bg:#f5f3ef;--color-surface:#e9e5de;--color-wash:#eeebe5;--color-text:#0b0b0c;--color-text-muted:#5a5650;--color-accent-text:#8a5410;--color-accent:#e8a33d;--color-on-accent:#0b0b0c;--color-control-border:#78736b;--color-focus:#0b0b0c;--color-divider:#d6d1c8;--color-logo-bars:#e8a33d;--color-good:#1d6b35;--color-serious:#a8341f}@media (prefers-contrast:more){:root:not([data-no-such-attribute]){--color-text-muted:var(--color-text);--color-divider:var(--color-control-border)}}:root{--font-sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--space-1:min(.25rem, 6px);--space-2:min(.5rem, 12px);--space-3:min(.75rem, 18px);--space-4:min(1rem, 24px);--space-6:min(1.5rem, 36px);--space-8:min(2rem, 48px);--space-12:min(3rem, 72px);--space-16:min(4rem, 96px);--inset-6:min(var(--space-6), 6vw);--inset-8:min(var(--space-8), 8vw);--radius:.375rem;--measure:66ch;--page-max:72rem}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}@supports (font:-apple-system-body) and (-webkit-touch-callout:none){html{font:-apple-system-body;font-family:var(--font-sans)}}body{background:var(--color-bg);min-height:100svh;color:var(--color-text);font-family:var(--font-sans);overflow-wrap:anywhere;flex-direction:column;margin:0;font-size:1.0625rem;line-height:1.6;display:flex}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);letter-spacing:-.01em;margin:0 0 var(--space-4);overflow-wrap:break-word;word-break:normal;font-weight:600;line-height:1.15}h1{letter-spacing:-.025em;font-size:min(clamp(2rem,1.4rem + 3vw,3.25rem),max(1.6rem,12vw));line-height:1.05}h2{letter-spacing:-.015em;font-size:min(clamp(1.5rem,1.2rem + 1.5vw,2.125rem),max(1.35rem,9vw));line-height:1.12}h3{letter-spacing:-.005em;font-size:1.25rem;line-height:1.25}p,ul,ol,dl{margin:0 0 var(--space-4);max-width:var(--measure)}code,kbd,samp,.mono{font-family:var(--font-mono);font-size:.92em}img,svg{max-width:100%;height:auto}a{color:inherit;text-underline-offset:.2em;text-decoration:underline 1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.skip-link{left:var(--space-4);top:var(--space-2);z-index:10;padding:var(--space-2) var(--space-4);background:var(--color-bg);color:var(--color-text);border:2px solid var(--color-focus);border-radius:var(--radius);position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}main:focus{outline:none}.wrap{width:100%;max-width:var(--page-max);padding-inline:var(--space-4);margin-inline:auto}@media (width>=48rem){.wrap{padding-inline:var(--space-8)}}main{padding-block:var(--space-12);flex:1}main.main--full{padding-block:0}.site-header .wrap{justify-content:space-between;align-items:center;gap:var(--space-3) var(--space-6);padding-block:var(--space-4);flex-wrap:wrap;display:flex}.home-link{text-decoration:none;display:inline-flex}.site-nav ul{align-items:center;gap:var(--space-2) var(--space-6);flex-wrap:wrap;max-width:none;margin:0;padding:0;list-style:none;display:flex}.site-nav a{padding-block:var(--space-2);text-decoration:none;display:inline-block}.site-nav a:hover,.site-nav a[aria-current=page]{text-decoration:underline 2px}.site-nav .nav-cta{min-height:2.75rem;padding:var(--space-2) var(--space-4)}.site-nav .nav-cta:hover{text-decoration:none}.site-footer{background:var(--color-surface);padding-block:var(--space-8);color:var(--color-text-muted);font-size:.95rem}.footer-columns{gap:var(--space-8) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));display:grid}.footer-title{color:var(--color-text);font-weight:600}.site-footer ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.site-footer p{margin:0 0 var(--space-2)}.logo{align-items:center;gap:var(--space-2);color:var(--color-text);display:inline-flex}.logo--stacked{gap:var(--space-4);flex-direction:column}.logo__mark{width:auto;height:36px}.logo--stacked .logo__mark{height:112px}.logo__n{fill:currentColor}.logo__bar{fill:var(--color-logo-bars)}.logo__word{font-family:var(--font-sans);letter-spacing:.18em;white-space:nowrap;font-size:20px;font-weight:500;line-height:1}.logo--stacked .logo__word{font-size:32px}.button{min-height:2.75rem;padding:var(--space-2) var(--space-6);border-radius:var(--radius);border:2px solid var(--color-control-border);color:var(--color-text);font:inherit;cursor:pointer;touch-action:manipulation;background:0 0;justify-content:center;align-items:center;font-weight:600;text-decoration:none;transition:transform .1s ease-out;display:inline-flex}.button:active{transform:scale(.97)}.button:hover{border-color:var(--color-text)}.button--primary{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent)}.button--primary:hover{border-color:var(--color-text)}.muted{color:var(--color-text-muted)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(1.5rem)}to{opacity:1;transform:none}}[data-rise]>*{animation:.65s cubic-bezier(.2,.7,.2,1) both rise}[data-rise]>:nth-child(2){animation-delay:90ms}[data-rise]>:nth-child(3){animation-delay:.18s}[data-rise]>:nth-child(4){animation-delay:.27s}[data-rise]>:nth-child(n+5){animation-delay:.36s}[data-rise=late]>:first-child{animation-delay:.2s}[data-rise=late]>:nth-child(2){animation-delay:.32s}[data-rise=late]>:nth-child(n+3){animation-delay:.44s}.motion [data-reveal]>*{opacity:0;transition:opacity .65s cubic-bezier(.2,.7,.2,1),transform .65s cubic-bezier(.2,.7,.2,1);transform:translateY(1.5rem)}.motion [data-reveal].is-revealed>*{opacity:1;transform:none}.motion [data-reveal]>:nth-child(2){transition-delay:90ms}.motion [data-reveal]>:nth-child(3){transition-delay:.18s}.motion [data-reveal]>:nth-child(4){transition-delay:.27s}.motion [data-reveal]>:nth-child(5){transition-delay:.36s}.motion [data-reveal]>:nth-child(n+6){transition-delay:.45s}@keyframes skeleton-in{0%{opacity:0}to{opacity:1}}@keyframes skeleton-pulse{0%{opacity:1}to{opacity:.45}}.skeleton{gap:var(--space-4);animation:.2s ease-out .3s both skeleton-in;display:grid}.skeleton[hidden]{display:none}.skeleton>*{background:color-mix(in srgb, var(--color-text) 9%, transparent);border-radius:var(--radius);animation:.9s ease-in-out infinite alternate skeleton-pulse}.skeleton__line{width:min(100%,22rem);height:1rem}.skeleton__line--short{width:min(60%,12rem)}.skeleton__block{height:7rem}.skeleton__row{height:3.25rem}@view-transition{navigation:auto}.site-header{view-transition-name:site-header}.sidebar{view-transition-name:app-sidebar}main{view-transition-name:page}::view-transition-old(page){animation:.16s ease-in both page-out}::view-transition-new(page){animation:.34s cubic-bezier(.2,.7,.2,1) both page-in}@keyframes page-out{to{opacity:0;transform:translateY(-.5rem)}}@keyframes page-in{0%{opacity:0;transform:translateY(1rem)}}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}.arrives:not([hidden]){transition:opacity .2s ease-out;@starting-style{opacity:0}}@supports (interpolate-size:allow-keywords) and selector(::details-content){:root{interpolate-size:allow-keywords}details::details-content{height:0;transition:height .25s cubic-bezier(.2, .7, .2, 1), content-visibility .25s allow-discrete;overflow:clip}details[open]::details-content{height:auto}@media (prefers-reduced-motion:reduce){details::details-content{transition:none}}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}
