:root{--background:#faf9f5;--text-primary:#141413;--text-muted:#b0aea5;--text-inverse:#faf9f5;--surface-light:#f0eee6;--surface-medium:#e3dacc;--surface-accent-green:#bcd1ca;--surface-accent-purple:#cbcadb;--surface-accent-blue:#6a9bcc;--border-strong:#141413;--border-subtle:#d1cfc5;--link-hover:#1a1918;--focus-ring:#9c9a92;--button-primary-bg:#141413;--button-primary-bg-hover:#3d3d3a;--button-secondary-fg:#141413;--button-secondary-bg-hover:#141413;--button-secondary-fg-hover:#faf9f5;--dark-background:#141413;--dark-surface-secondary:#1f1e1d;--dark-text-primary:#faf9f5;--dark-text-muted:#b0aea5;--dark-border-subtle:#5e5d59;--font-sans:"Schibsted Grotesk", ui-sans-serif, system-ui, sans-serif;--font-serif:"Source Serif 4", "Times New Roman", Times, serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-display:64px;--fs-h1:44px;--fs-h2:25px;--fs-body:16px;--fs-small:15px;--fs-caption:12px;--fs-code:16px;--lh-tight:1.2;--lh-body:1.5;--fw-regular:400;--fw-bold:700;--space-1:8px;--space-2:12px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--space-7:64px;--space-8:96px;--page-margins:64px;--gap-md:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:1000px;--z-nav:10;--z-skip:101;--z-header:9999;--dur-fast:.1s;--dur-base:.2s;--dur-med:.4s;--dur-slow:.5s;--ease-std:cubic-bezier(.77, 0, .175, 1);--ease-out:cubic-bezier(.165, .84, .44, 1);--container-max:1400px;--header-height:68px}*{box-sizing:border-box}html,body{background:var(--background);color:var(--text-primary);font-family:var(--font-serif);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-regular);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);font-weight:var(--fw-regular);line-height:var(--lh-tight);letter-spacing:-.01em;margin:0}p{margin:0}a{color:var(--text-primary);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out);text-decoration:none}::selection{background:var(--surface-medium);color:var(--text-primary)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#d1cfc5;border:3px solid #faf9f5;border-radius:1000px}.lp-codewin ::selection{color:#faf9f5;background:#3d3d3a}@keyframes lp-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.button-primary,.button-secondary,.button-ghost{font-family:var(--font-serif);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;font-size:16px;font-weight:400;line-height:1.2;text-decoration:none;display:inline-flex}.button-primary{background:var(--button-primary-bg);color:var(--text-inverse);border:1px solid var(--button-primary-bg);border-radius:var(--radius-md);transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);padding:10px 18px}.button-primary:hover{background:var(--button-primary-bg-hover);border-color:var(--button-primary-bg-hover);color:var(--text-inverse)}.button-primary:active{transform:translateY(1px)}.button-primary:disabled{opacity:.5;cursor:not-allowed}.button-secondary{color:var(--button-secondary-fg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);background:0 0;padding:10px 18px}.button-secondary:hover{background:var(--button-secondary-bg-hover);color:var(--button-secondary-fg-hover)}.button-secondary:active{transform:translateY(1px)}.button-secondary:disabled{opacity:.5;cursor:not-allowed}.button-ghost{color:var(--text-primary);transition:color var(--dur-fast) var(--ease-out);background:0 0;border:none;padding:4px 6px}.button-ghost:hover{color:var(--link-hover);text-decoration:underline}.nav-link{color:var(--text-primary);font-family:var(--font-serif);transition:color var(--dur-fast) var(--ease-out);padding:8px 12px;font-size:15px;font-weight:400;text-decoration:none}.nav-link:hover{color:var(--link-hover)}.link-secondary{color:var(--dark-text-muted);font-size:15px;text-decoration:none}.link-secondary:hover{color:var(--dark-text-primary)}.tag{border-radius:var(--radius-full);background:var(--surface-light);color:var(--text-primary);font-family:var(--font-serif);border:1px solid var(--border-subtle);align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.prose{color:#2a2a27}.prose>:first-child{margin-top:0}.prose h2{font-family:var(--font-sans);letter-spacing:-.02em;margin:44px 0 12px;scroll-margin-top:96px;font-size:28px;line-height:1.2}.prose h3{font-family:var(--font-sans);letter-spacing:-.01em;margin:30px 0 8px;scroll-margin-top:96px;font-size:20px;line-height:1.25}.prose p{margin:16px 0 0;font-size:17px;line-height:1.7}.prose ul,.prose ol{flex-direction:column;gap:8px;margin:16px 0 0;padding-left:22px;display:flex}.prose li{font-size:17px;line-height:1.6}.prose li>ul,.prose li>ol{margin-top:8px}.prose a{color:#141413;text-underline-offset:3px;text-decoration:underline}.prose a:hover{color:var(--link-hover)}.prose strong{font-weight:700}.prose blockquote{border-left:3px solid var(--surface-accent-green);color:#5f5d56;margin:22px 0 0;padding:4px 0 4px 18px;font-style:italic}.prose hr{border:none;border-top:1px solid var(--border-subtle);margin:32px 0}.prose code{font-family:var(--font-mono);background:var(--surface-light);border:1px solid var(--border-subtle);color:#3d3d3a;border-radius:6px;padding:2px 6px;font-size:.88em}.prose pre{background:#1c1b19;border:1px solid #2c2b28;border-radius:12px;margin:20px 0 0;padding:18px 20px;overflow-x:auto}.prose pre code{font-family:var(--font-mono);color:#d9d6cd;background:0 0;border:none;border-radius:0;padding:0;font-size:13.5px;line-height:1.7}.prose table{border-collapse:collapse;width:100%;margin:20px 0 0;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border-subtle);text-align:left;vertical-align:top;padding:8px 12px}.prose thead{background:var(--surface-light)}.prose th{font-family:var(--font-sans);font-weight:600}
