:root{--substrate: #F1F4F2;--substrate-2: #E7ECE8;--ink: #111614;--ink-soft: #44514D;--gfp: #11B981;--gfp-ink: #0A7A56;--mag: #D6248A;--mag-ink: #A8166C;--line: #D4DBD7;--glow: transparent;--btn-bg: #07684A;--btn-fg: #FFFFFF;--btn-bg-hover: #054F39;--btn-ghost-bd: #BFC9C4;--display: "Space Grotesk", system-ui, sans-serif;--body: "Spectral", Georgia, serif;--mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--measure: 36rem;--gutter: clamp(1.25rem, 5vw, 4rem);--section-y: clamp(3.5rem, 9vw, 7rem)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--substrate: #121917;--substrate-2: #1A2320;--ink: #ECF2EF;--ink-soft: #A3B4AE;--gfp: #2CE6A0;--gfp-ink: #6EF2BE;--mag: #FF4DA6;--mag-ink: #FF8AC6;--line: #2B3833;--glow: #2CE6A0;--btn-bg: #2CE6A0;--btn-fg: #06120E;--btn-bg-hover: #5BF0B6;--btn-ghost-bd: #3F4F49}}:root[data-theme=dark]{--substrate: #121917;--substrate-2: #1A2320;--ink: #ECF2EF;--ink-soft: #A3B4AE;--gfp: #2CE6A0;--gfp-ink: #6EF2BE;--mag: #FF4DA6;--mag-ink: #FF8AC6;--line: #2B3833;--glow: #2CE6A0;--btn-bg: #2CE6A0;--btn-fg: #06120E;--btn-bg-hover: #5BF0B6;--btn-ghost-bd: #3F4F49}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--substrate);color:var(--ink);font-family:var(--body);font-size:clamp(1.05rem,.4vw + 1rem,1.18rem);line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.04;letter-spacing:-.02em;margin:0}h1{font-size:clamp(2.5rem,6.5vw,4.6rem)}h2{font-size:clamp(1.7rem,3.5vw,2.5rem)}h3{font-size:1.15rem;letter-spacing:-.01em}p{margin:0 0 1.1rem}a{color:inherit;text-decoration-color:var(--gfp-ink);text-underline-offset:3px}a:hover{text-decoration-color:var(--mag-ink)}.eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gfp-ink);margin:0 0 1.1rem;display:flex;align-items:center;gap:.6rem}.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gfp);box-shadow:0 0 0 3px color-mix(in srgb,var(--gfp) 22%,transparent);flex:none}.mono{font-family:var(--mono)}.wrap{width:100%;max-width:66rem;margin-inline:auto;padding-inline:var(--gutter)}.measure{max-width:var(--measure)}.section{padding-block:var(--section-y)}.rule{height:1px;background:var(--line);border:0;margin:0}.btn{display:inline-block;font-family:var(--mono);font-size:.82rem;letter-spacing:.04em;padding:.7rem 1.2rem;border-radius:2px;text-decoration:none;border:1px solid var(--line);transition:background .15s ease,color .15s ease,border-color .15s ease}.btn-primary{background:var(--btn-bg);color:var(--btn-fg);border-color:var(--btn-bg)}.btn-primary:hover{background:var(--btn-bg-hover);border-color:var(--btn-bg-hover);color:var(--btn-fg)}.btn-ghost{border-color:var(--btn-ghost-bd);color:var(--ink)}.btn-ghost:hover{border-color:var(--gfp-ink);color:var(--gfp-ink)}.btn-row{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:2rem}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}:root{--spring: cubic-bezier(.22, 1, .36, 1)}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s var(--spring),transform .7s var(--spring);transition-delay:var(--rd, 0s)}.js .reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.js .reveal{opacity:1;transform:none;transition:none}}.btn:active{transform:translateY(1px)}a:focus-visible,.btn:focus-visible,.site-nav a:focus-visible,.brandmark:focus-visible{outline:2px solid var(--gfp-ink);outline-offset:3px;border-radius:2px}.post-wrap{max-width:40rem;margin-inline:auto;padding-inline:var(--gutter)}.post-header{padding-block:clamp(3rem,7vw,5rem) 2rem;border-bottom:1px solid var(--line)}.post-back{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gfp-ink);text-decoration:none}.post-title{font-family:var(--display);font-size:clamp(2rem,4.5vw,3.1rem);line-height:1.05;letter-spacing:-.02em;margin:1.4rem 0 1rem}.post-meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);display:flex;gap:.9rem;align-items:center}.post-dek{font-family:var(--body);font-style:italic;font-size:1.2rem;color:var(--ink-soft);margin:1.2rem 0 0}.post-body{padding-block:2.5rem 4rem;font-size:1.16rem;line-height:1.7}.post-body p{margin:0 0 1.3rem}.post-body h2{font-family:var(--display);font-size:1.5rem;letter-spacing:-.01em;margin:2.6rem 0 .9rem}.post-body h3{font-family:var(--display);font-size:1.15rem;margin:2rem 0 .7rem}.post-body a{color:var(--gfp-ink)}.post-body strong{font-weight:500;color:var(--ink)}.post-body em{color:var(--ink-soft)}.post-body ul,.post-body ol{padding-left:1.2rem;margin:0 0 1.3rem}.post-body li{margin:.4rem 0}.post-body blockquote{margin:1.8rem 0;padding:.2rem 0 .2rem 1.3rem;border-left:2px solid var(--gfp);font-family:var(--body);font-style:italic;color:var(--ink-soft);font-size:1.24rem;line-height:1.5}.post-body hr{border:0;height:1px;background:var(--line);margin:2.6rem 0}.post-body code{font-family:var(--mono);font-size:.86em;background:var(--substrate-2);padding:.12em .35em;border-radius:3px}.writing-list{list-style:none;padding:0;margin:2rem 0 0}.writing-item{border-top:1px solid var(--line);padding:1.6rem 0;display:block;text-decoration:none}.writing-item:last-child{border-bottom:1px solid var(--line)}.writing-item:hover .writing-title{color:var(--gfp-ink)}.writing-date{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.writing-title{font-family:var(--display);font-size:1.4rem;letter-spacing:-.01em;margin:.5rem 0 .4rem;transition:color .15s ease}.writing-dek{color:var(--ink-soft);margin:0;font-size:1.02rem}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:transparent;border:1px solid var(--btn-ghost-bd);border-radius:999px;cursor:pointer;color:var(--ink-soft);transition:color .15s ease,border-color .15s ease}.theme-toggle:hover{color:var(--gfp-ink);border-color:var(--gfp-ink)}.theme-toggle:focus-visible{outline:2px solid var(--gfp-ink);outline-offset:3px}.theme-toggle .i-sun{display:none}.theme-toggle .i-moon{display:block}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .theme-toggle .i-sun{display:block}:root:not([data-theme=light]) .theme-toggle .i-moon{display:none}}:root[data-theme=dark] .theme-toggle .i-sun{display:block}:root[data-theme=dark] .theme-toggle .i-moon{display:none}:root[data-theme=light] .theme-toggle .i-sun{display:none}:root[data-theme=light] .theme-toggle .i-moon{display:block}.site-header[data-astro-cid-5hce7sga]{position:sticky;top:0;z-index:10;backdrop-filter:blur(8px);background:color-mix(in srgb,var(--substrate) 80%,transparent);border-bottom:1px solid var(--line)}.header-inner[data-astro-cid-5hce7sga]{display:flex;align-items:center;justify-content:space-between;padding-block:.85rem}.brandmark[data-astro-cid-5hce7sga]{white-space:nowrap;display:inline-flex;align-items:center;gap:.55rem;font-family:var(--display);font-weight:600;font-size:.98rem;text-decoration:none;letter-spacing:-.01em}.header-right[data-astro-cid-5hce7sga]{display:flex;align-items:center;gap:1.25rem}.site-nav[data-astro-cid-5hce7sga]{display:flex;gap:1.5rem;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em}.site-nav[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]{text-decoration:none;color:var(--ink-soft);text-transform:lowercase}.site-nav[data-astro-cid-5hce7sga] a[data-astro-cid-5hce7sga]:hover{color:var(--gfp-ink)}@media (max-width: 680px){.site-nav[data-astro-cid-5hce7sga]{gap:1rem;font-size:.72rem}}@media (max-width: 440px){.site-nav[data-astro-cid-5hce7sga]{gap:.6rem;font-size:.66rem}.header-right[data-astro-cid-5hce7sga]{gap:.6rem}}.site-footer[data-astro-cid-5hce7sga]{border-top:1px solid var(--line);padding-block:3rem;margin-top:1rem}.footer-line[data-astro-cid-5hce7sga]{font-family:var(--body);font-style:italic;color:var(--ink-soft);max-width:var(--measure)}.footer-meta[data-astro-cid-5hce7sga]{font-size:.75rem;color:var(--ink-soft);margin:0}
