.site-header[data-astro-cid-fzpbxy5g]{z-index:10;background:var(--surface);border-bottom:1px solid var(--line);position:relative}.header-inner[data-astro-cid-fzpbxy5g]{justify-content:space-between;align-items:center;gap:2rem;min-height:82px;display:flex}.brand[data-astro-cid-fzpbxy5g]{align-items:center;gap:.8rem;text-decoration:none;display:inline-flex}.brand-mark[data-astro-cid-fzpbxy5g]{background:var(--accent);color:#15231b;width:42px;height:42px;font-family:var(--font-display);letter-spacing:-.08em;border-radius:12px;place-content:center;font-size:1rem;font-weight:800;display:grid}.brand-mark[data-astro-cid-fzpbxy5g] span[data-astro-cid-fzpbxy5g]{color:#f26845}.brand-name[data-astro-cid-fzpbxy5g]{color:var(--ink);letter-spacing:-.03em;font-size:.98rem;font-weight:700;display:grid}.brand-name[data-astro-cid-fzpbxy5g] small[data-astro-cid-fzpbxy5g]{color:var(--muted);letter-spacing:.12em;margin-top:.2rem;font-size:.55rem;font-weight:700}.primary-nav[data-astro-cid-fzpbxy5g]{align-items:center;gap:clamp(1rem,2vw,2rem);display:flex}.primary-nav[data-astro-cid-fzpbxy5g]>a[data-astro-cid-fzpbxy5g]{color:var(--muted);font-size:.87rem;font-weight:600;text-decoration:none;transition:color .16s;position:relative}.primary-nav[data-astro-cid-fzpbxy5g]>a[data-astro-cid-fzpbxy5g]:hover,.primary-nav[data-astro-cid-fzpbxy5g]>a[data-astro-cid-fzpbxy5g][aria-current=page]{color:var(--ink)}.primary-nav[data-astro-cid-fzpbxy5g]>a[data-astro-cid-fzpbxy5g][aria-current=page]:after{background:var(--accent-deep);content:"";height:2px;position:absolute;bottom:-.65rem;left:0;right:0}.theme-toggle[data-astro-cid-fzpbxy5g]{border:1px solid var(--line);min-height:40px;color:var(--ink);cursor:pointer;font:inherit;background:0 0;border-radius:999px;align-items:center;gap:.5rem;padding:0 .8rem;font-size:.78rem;font-weight:650;display:inline-flex}.theme-toggle[data-astro-cid-fzpbxy5g]:hover{border-color:var(--accent-deep)}.theme-icon[data-astro-cid-fzpbxy5g]{width:17px;height:17px}.menu-toggle[data-astro-cid-fzpbxy5g]{display:none}.skip-link[data-astro-cid-fzpbxy5g]{z-index:20;background:var(--accent);color:#132018;border-radius:.5rem;padding:.75rem 1rem;position:absolute;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link[data-astro-cid-fzpbxy5g]:focus{transform:translateY(0)}.sr-only[data-astro-cid-fzpbxy5g]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=760px){.header-inner[data-astro-cid-fzpbxy5g]{min-height:72px}.menu-toggle[data-astro-cid-fzpbxy5g]{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:12px;align-content:center;justify-items:center;gap:5px;width:44px;height:44px;display:grid}.menu-toggle[data-astro-cid-fzpbxy5g] span[data-astro-cid-fzpbxy5g]:not(.sr-only){background:var(--ink);border-radius:2px;width:18px;height:2px;transition:transform .16s}.menu-toggle[data-astro-cid-fzpbxy5g][aria-expanded=true] span[data-astro-cid-fzpbxy5g]:nth-last-child(2){transform:translateY(3.5px)rotate(45deg)}.menu-toggle[data-astro-cid-fzpbxy5g][aria-expanded=true] span[data-astro-cid-fzpbxy5g]:last-child{transform:translateY(-3.5px)rotate(-45deg)}.primary-nav[data-astro-cid-fzpbxy5g]{border-bottom:1px solid var(--line);background:var(--surface);align-items:stretch;gap:.25rem;padding:.75rem 1.25rem 1.25rem;display:none;position:absolute;top:calc(100% + 1px);left:0;right:0;box-shadow:0 18px 28px #0c151114}.primary-nav[data-astro-cid-fzpbxy5g].is-open{flex-direction:column;display:flex}.primary-nav[data-astro-cid-fzpbxy5g]>a[data-astro-cid-fzpbxy5g]{padding:.8rem .25rem}.primary-nav[data-astro-cid-fzpbxy5g]>a[data-astro-cid-fzpbxy5g][aria-current=page]:after{width:28px;bottom:.35rem;right:auto}.primary-nav[data-astro-cid-fzpbxy5g] .theme-toggle[data-astro-cid-fzpbxy5g]{align-self:flex-start;margin-top:.5rem}}.site-footer[data-astro-cid-nns7i3if]{color:#f4f4eb;background:#101a17;margin-top:7rem;padding:5rem 0 1.5rem}.footer-top[data-astro-cid-nns7i3if]{justify-content:space-between;align-items:end;gap:2rem;padding-bottom:4rem;display:flex}.footer-kicker[data-astro-cid-nns7i3if]{color:#aab7ae;letter-spacing:.12em;text-transform:uppercase;margin:0 0 1rem;font-size:.78rem;font-weight:700}h2[data-astro-cid-nns7i3if]{font-family:var(--font-display);letter-spacing:-.065em;margin:0;font-size:clamp(2.5rem,6vw,5.25rem);font-weight:550;line-height:.98}h2[data-astro-cid-nns7i3if] span[data-astro-cid-nns7i3if]{color:#c9ee69}.footer-contact[data-astro-cid-nns7i3if]{color:#f4f4eb;border:1px solid #45554c;border-radius:999px;justify-content:space-between;align-items:center;gap:1.4rem;min-width:190px;padding:1.1rem 1.25rem;font-size:.9rem;font-weight:650;text-decoration:none;transition:background .16s,color .16s;display:flex}.footer-contact[data-astro-cid-nns7i3if]:hover{color:#15231b;background:#c9ee69}.footer-bottom[data-astro-cid-nns7i3if]{color:#aab7ae;border-top:1px solid #344139;justify-content:space-between;align-items:center;gap:1.5rem;padding-top:1.35rem;font-size:.76rem;display:flex}.footer-bottom[data-astro-cid-nns7i3if] p[data-astro-cid-nns7i3if]{margin:0}.footer-dot[data-astro-cid-nns7i3if]{color:#c9ee69}.footer-links[data-astro-cid-nns7i3if]{gap:1.2rem;display:flex}.footer-links[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{color:#d2dbd4;text-decoration:none}.footer-links[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:#c9ee69}@media (width<=760px){.site-footer[data-astro-cid-nns7i3if]{margin-top:5rem;padding-top:3.5rem}.footer-top[data-astro-cid-nns7i3if]{flex-direction:column;align-items:start;padding-bottom:3rem}.footer-bottom[data-astro-cid-nns7i3if]{flex-direction:column;align-items:start}.footer-links[data-astro-cid-nns7i3if]{flex-wrap:wrap}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-body:"Avenir Next", Avenir, ui-sans-serif, system-ui, sans-serif;--font-display:"Avenir Next", Avenir, ui-sans-serif, system-ui, sans-serif;--font-mono:"DM Mono", ui-monospace, SFMono-Regular, monospace;--bg:#f5f6f0;--surface:#fffefa;--surface-soft:#edf0e8;--ink:#18231d;--muted:#68756c;--line:#e0e5dc;--line-strong:#c5d0c2;--accent:#c9ee69;--accent-deep:#78933f;--accent-text:#597332;--shadow:0 24px 70px #1a2a2217}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101714;--surface:#17211c;--surface-soft:#1e2b23;--ink:#eef3e9;--muted:#a0ada2;--line:#2c3b31;--line-strong:#405346;--accent:#c9ee69;--accent-deep:#c9ee69;--accent-text:#d0ec93;--shadow:0 24px 70px #0003}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{background:var(--bg);min-width:320px;color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body,button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit}::selection{color:#142018;background:#d8f59a}:focus-visible{outline-offset:4px;outline:3px solid #e48258}.wrap{width:min(1180px,100% - 3rem);margin-inline:auto}.text-link{color:var(--ink);align-items:center;gap:.5rem;font-size:.83rem;font-weight:750;text-decoration:none;display:inline-flex}.text-link span{color:var(--accent-text);transition:transform .16s}.text-link:hover span{transform:translate(2px,-2px)}.eyebrow{color:var(--muted)}.page-intro{color:#f0f3e9;background:#17231d;padding:5rem 0 4.5rem;position:relative;overflow:hidden}.page-intro:after{content:"";pointer-events:none;border:1px solid #c9ee691f;border-radius:50%;width:32rem;height:32rem;position:absolute;top:-11rem;right:2%;box-shadow:0 0 0 48px #c9ee6908,0 0 0 96px #c9ee6905}.page-intro-inner{z-index:1;position:relative}.page-intro .eyebrow{color:#c9ee69;letter-spacing:.14em;text-transform:uppercase;margin:0 0 .9rem;font-size:.7rem;font-weight:750}.page-intro h1{max-width:14ch;font-family:var(--font-display);letter-spacing:-.075em;margin:0;font-size:clamp(2.8rem,7vw,5.4rem);font-weight:550;line-height:.98}.page-intro .intro-copy{color:#b7c2b8;max-width:58ch;margin:1.25rem 0 0;font-size:1.02rem;line-height:1.75}.page-section{padding:4rem 0 0}.page-shell{width:min(900px,100% - 3rem);margin-inline:auto}.prose{color:var(--muted);font-size:1rem;line-height:1.85}.prose h2,.prose h3{color:var(--ink);font-family:var(--font-display);letter-spacing:-.04em;margin:2.4rem 0 .8rem}.prose h2{font-size:1.8rem}.prose h3{font-size:1.35rem}.prose p{margin:0 0 1.3rem}.prose a{color:var(--accent-text);text-underline-offset:3px;text-decoration-thickness:1px}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.35rem 0}.prose blockquote{border-left:3px solid var(--accent-deep);color:var(--ink);font-family:var(--font-display);margin:1.8rem 0;padding:.25rem 0 .25rem 1.2rem;font-size:1.2rem}.prose code:not(pre code){background:var(--surface-soft);color:var(--accent-text);font-family:var(--font-mono);border-radius:.3rem;padding:.15rem .36rem;font-size:.86em}.prose pre{border:1px solid var(--line);color:#e7eee1;font-family:var(--font-mono);background:#111a15;border-radius:.9rem;margin:1.5rem 0;padding:1.25rem;font-size:.82rem;line-height:1.75;position:relative;overflow:auto}.prose pre code{font-family:inherit}.copy-code{float:right;color:#d8e5d6;cursor:pointer;background:#1d2a22;border:1px solid #526054;border-radius:.45rem;margin:-.5rem -.5rem 0 .75rem;padding:.4rem .65rem;font-size:.68rem;position:sticky;top:.5rem}.copy-code:hover{color:#c9ee69;border-color:#c9ee69}.prose img{border-radius:.8rem;max-width:100%;height:auto}.article-grid,.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem;display:grid}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.tag-pills{flex-wrap:wrap;gap:.5rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.tag-pills a{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:999px;padding:.52rem .75rem;font-size:.75rem;font-weight:650;text-decoration:none;display:inline-flex}.tag-pills a:hover{border-color:var(--accent-deep);color:var(--accent-text)}@media (width<=900px){.article-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=650px){.wrap{width:min(100% - 2rem,1180px)}.page-shell{width:min(100% - 2rem,900px)}.page-intro{padding:4rem 0 3.5rem}.page-section{padding-top:3rem}.article-grid,.project-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
