@property --scroll-progress{syntax: "<number>"; inherits: true; initial-value: 0;}@property --ambient-hue{syntax: "<number>"; inherits: false; initial-value: 310;}@property --ambient-chroma{syntax: "<number>"; inherits: false; initial-value: .008;}:root{--color-bg: oklch(.978 .008 75);--color-surface: oklch(.96 .012 70);--color-ink: oklch(.2 .02 310);--color-primary: oklch(.42 .13 310);--color-primary-hover: oklch(.36 .14 310);--color-accent: oklch(.62 .155 55);--color-accent-hover: oklch(.56 .16 55);--color-muted: oklch(.5 .015 60);--color-border: oklch(.88 .015 70);--color-surface-hover: oklch(.94 .015 70);--font-body: "Atkinson Hyperlegible Next", system-ui, sans-serif;--font-heading: "Asimovian", system-ui, sans-serif;--color-wash: oklch(.42 .13 310 / .06);--max-width: 1100px;--nav-height: 68px;--radius: 6px;--transition: .2s ease-out;--section-gap: clamp(3rem, 6vw, 5rem);--ease-out-expo: cubic-bezier(.16, 1, .3, 1)}[data-theme=dark]{--color-bg: oklch(.13 .018 310);--color-surface: oklch(.17 .022 310);--color-ink: oklch(.91 .012 70);--color-primary: oklch(.7 .12 310);--color-primary-hover: oklch(.76 .125 310);--color-accent: oklch(.72 .145 55);--color-accent-hover: oklch(.77 .15 55);--color-muted: oklch(.58 .012 60);--color-border: oklch(.25 .02 310);--color-surface-hover: oklch(.21 .025 310);--color-wash: oklch(.7 .12 310 / .08)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:106.25%;color:var(--color-ink);background-color:var(--color-bg);line-height:1.65;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition),color var(--transition)}body{min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:600;line-height:1.25;color:var(--color-ink);text-wrap:balance;letter-spacing:-.015em}h1{font-size:clamp(2.8rem,5vw + 1.5rem,4.5rem);font-weight:700;letter-spacing:-.035em;line-height:1.05}h2{font-size:clamp(1.5rem,2.5vw + .75rem,2.2rem)}h3{font-size:clamp(1.15rem,1.5vw + .55rem,1.5rem)}p,li,blockquote{max-width:68ch}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-primary-hover)}img{max-width:100%;height:auto;display:block}.container{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.section{padding:var(--section-gap) 0}.prose{text-wrap:pretty}.prose h1{margin-bottom:1.25rem}.prose h2{margin-top:2.5rem;margin-bottom:1rem}.prose h3{margin-top:2rem;margin-bottom:.75rem}.prose h4{margin-top:1.5rem;margin-bottom:.5rem}.prose p{margin-bottom:1.1rem}.prose ul,.prose ol{margin-bottom:1.1rem;padding-left:1.5rem}.prose li{margin-bottom:.35rem}.prose a{color:var(--color-primary);text-decoration:underline;text-decoration-color:#6334814d;text-underline-offset:3px;transition:text-decoration-color var(--transition)}.prose a:hover{text-decoration-color:var(--color-primary)}.prose blockquote{border-left:3px solid var(--color-accent);padding:1rem 1.25rem;color:var(--color-muted);margin-bottom:1.1rem;font-style:italic;background:var(--color-wash);border-radius:0 var(--radius) var(--radius) 0}.prose strong{font-weight:700}.prose code{font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:.88em;background:var(--color-surface);padding:.15em .4em;border-radius:3px}.prose pre{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem 1.5rem;overflow-x:auto;margin-bottom:1.1rem}.prose pre code{background:none;padding:0;font-size:.85em}.prose hr{border:none;height:1px;background:var(--color-border);margin:2rem 0}.prose table{width:100%;border-collapse:collapse;margin-bottom:1.1rem;font-size:.95em}.prose th,.prose td{padding:.6rem .75rem;border-bottom:1px solid var(--color-border);text-align:left}.prose th{font-weight:600;color:var(--color-ink)}.prose img{border-radius:var(--radius);margin:1.5rem 0}.kicker{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.25em;color:var(--color-accent);margin-bottom:.75rem;position:relative;display:inline-block;padding-left:1.5rem}.kicker:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:1rem;height:2px;background:var(--color-accent)}.tag{display:inline-block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.3rem .85rem;border-radius:100px;background:var(--color-wash);color:var(--color-primary);border:1px solid var(--color-primary);transition:background var(--transition),color var(--transition),border-color var(--transition)}.tag:hover{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.tags{display:flex;gap:.5rem;flex-wrap:wrap}.skip-to-content{position:absolute;top:-100%;left:1rem;padding:.75rem 1.25rem;background:var(--color-primary);color:#fff;font-weight:600;font-size:.85rem;border-radius:var(--radius);z-index:200;transition:top .2s ease-out}.skip-to-content:focus{top:.75rem;color:#fff}.grain:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;z-index:1;mix-blend-mode:multiply}[data-theme=dark] .grain:before{mix-blend-mode:soft-light;opacity:.06}.grain{position:relative}.wash-bg{background-color:var(--color-wash)}.divider{height:2px;background:linear-gradient(to right,var(--color-primary),var(--color-accent),transparent);border:none;margin:0}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fade-up .7s var(--ease-out-expo) both}.animate-in-delay-1{animation-delay:.12s}.animate-in-delay-2{animation-delay:.26s}.animate-in-delay-3{animation-delay:.42s}.animate-in-delay-4{animation-delay:.58s}@keyframes track-scroll{to{--scroll-progress: 1}}html{animation:track-scroll linear;animation-timeline:scroll()}@keyframes scroll-reveal{0%{opacity:0;transform:translateY(2rem)}to{opacity:1;transform:translateY(0)}}@supports (animation-timeline: view()){.scroll-reveal{animation:scroll-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 35%}}@keyframes ambient-drift{0%{--ambient-hue: 310;--ambient-chroma: .008}33%{--ambient-hue: 340;--ambient-chroma: .012}66%{--ambient-hue: 55;--ambient-chroma: .01}to{--ambient-hue: 310;--ambient-chroma: .008}}.ambient-bg{animation:ambient-drift 25s ease-in-out infinite;background-color:oklch(.978 var(--ambient-chroma) var(--ambient-hue))}[data-theme=dark] .ambient-bg{background-color:oklch(.13 var(--ambient-chroma) var(--ambient-hue))}::view-transition-old(root),::view-transition-new(root){animation-duration:.25s;animation-timing-function:cubic-bezier(.16,1,.3,1)}::view-transition-old(post-title){animation:none;mix-blend-mode:normal}::view-transition-new(post-title){animation:none;mix-blend-mode:normal}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.ambient-bg{animation:none;background-color:var(--color-wash)}.scroll-reveal{animation:none;opacity:1;transform:none}}.theme-toggle.svelte-1cmi4dh{background:none;border:1px solid var(--color-border);border-radius:50%;color:var(--color-muted);cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;transition:color var(--transition),border-color var(--transition),transform .5s cubic-bezier(.16,1,.3,1)}.theme-toggle.svelte-1cmi4dh:hover{color:var(--color-ink);border-color:var(--color-muted)}.theme-toggle.svelte-1cmi4dh:active{transform:rotate(180deg) scale(.9)}
