.logo-mark[data-astro-cid-27oicc4y]{flex:none;display:block}.site-header[data-astro-cid-nen7h5rs]{z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0}.header-inner[data-astro-cid-nen7h5rs]{justify-content:space-between;align-items:center;gap:1.5rem;height:4rem;display:flex}.logo[data-astro-cid-nen7h5rs]{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--color-text-logo);white-space:nowrap;align-items:center;gap:.55rem;font-size:1.3rem;font-weight:700;text-decoration:none;display:flex}.logo[data-astro-cid-nen7h5rs]:hover{color:var(--color-accent)}.desktop-nav[data-astro-cid-nen7h5rs]{gap:1.5rem;display:flex}.nav-link[data-astro-cid-nen7h5rs]{color:var(--color-text);border-bottom:2px solid #0000;padding:.25rem 0;font-size:.95rem;font-weight:600;text-decoration:none}.nav-link[data-astro-cid-nen7h5rs]:hover,.nav-link[data-astro-cid-nen7h5rs].active{color:var(--color-accent);border-bottom-color:var(--color-sun)}.nav-group[data-astro-cid-nen7h5rs]{position:relative}.nav-group-btn[data-astro-cid-nen7h5rs]{font-family:inherit;line-height:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:.35rem;display:flex}#projects-menu[data-astro-cid-nen7h5rs]{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:13rem;max-height:calc(100dvh - 5rem);box-shadow:var(--shadow-soft);margin:0;padding:.5rem;list-style:none;display:none;position:absolute;top:100%;left:-1rem;overflow-y:auto}html.js .nav-group-btn[data-astro-cid-nen7h5rs][aria-expanded=true]+#projects-menu[data-astro-cid-nen7h5rs],html:not(.js) .nav-group[data-astro-cid-nen7h5rs]:hover #projects-menu[data-astro-cid-nen7h5rs],html:not(.js) .nav-group[data-astro-cid-nen7h5rs]:focus-within #projects-menu[data-astro-cid-nen7h5rs]{display:block}#projects-menu[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{color:var(--color-text);border-radius:var(--radius-sm);padding:.55rem;text-decoration:none;display:block}#projects-menu[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,#projects-menu[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{background:var(--color-bg-warm);color:var(--color-accent)}.ext-icon[data-astro-cid-nen7h5rs]{width:.8em;height:.8em;margin-left:.2em}.subscribe-pill[data-astro-cid-nen7h5rs]{color:var(--color-accent);background:var(--color-bg-warm);border-radius:var(--radius-pill);padding:.45rem 1rem;font-size:.9rem;font-weight:700;text-decoration:none}.subscribe-pill[data-astro-cid-nen7h5rs]:hover{background:var(--color-sun);color:var(--color-text-logo)}.desktop-only[data-astro-cid-nen7h5rs]{display:block}.mobile-menu-btn[data-astro-cid-nen7h5rs]{cursor:pointer;background:0 0;border:none;padding:.5rem;display:none}.hamburger[data-astro-cid-nen7h5rs]{background:var(--color-text-logo);width:22px;height:2px;display:block;position:relative}.hamburger[data-astro-cid-nen7h5rs]:before,.hamburger[data-astro-cid-nen7h5rs]:after{content:"";background:var(--color-text-logo);width:22px;height:2px;position:absolute;left:0}.hamburger[data-astro-cid-nen7h5rs]:before{top:-7px}.hamburger[data-astro-cid-nen7h5rs]:after{top:7px}.mobile-menu-btn[data-astro-cid-nen7h5rs][aria-expanded=true] .hamburger[data-astro-cid-nen7h5rs]{background:0 0}.mobile-menu-btn[data-astro-cid-nen7h5rs][aria-expanded=true] .hamburger[data-astro-cid-nen7h5rs]:before{transform:rotate(45deg)translate(5px,5px)}.mobile-menu-btn[data-astro-cid-nen7h5rs][aria-expanded=true] .hamburger[data-astro-cid-nen7h5rs]:after{transform:rotate(-45deg)translate(5px,-5px)}.mobile-nav-overlay[data-astro-cid-nen7h5rs]{background:var(--color-bg);z-index:99;padding:var(--spacing-lg) var(--spacing-md);overscroll-behavior:contain;display:none;position:fixed;inset:4rem 0 0;overflow-y:auto}.mobile-nav-overlay[data-astro-cid-nen7h5rs][aria-hidden=false]{display:block}.mobile-nav[data-astro-cid-nen7h5rs]{flex-direction:column;gap:.5rem;display:flex}.mobile-nav-link[data-astro-cid-nen7h5rs]{color:var(--color-text);border-bottom:1px solid var(--color-border);padding:.75rem 0;font-size:1.25rem;font-weight:500;text-decoration:none}.mobile-nav-link[data-astro-cid-nen7h5rs]:hover,.mobile-nav-link[data-astro-cid-nen7h5rs].active,.mobile-nav-link[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--color-accent)}.mobile-nav-group[data-astro-cid-nen7h5rs]{flex-direction:column;display:flex}.mobile-nav-label[data-astro-cid-nen7h5rs]{padding:.75rem 0;font-size:1.25rem;font-weight:600}.mobile-nav-group[data-astro-cid-nen7h5rs] .mobile-nav-link[data-astro-cid-nen7h5rs]{padding-left:1rem}@media (prefers-reduced-motion:no-preference){.nav-link[data-astro-cid-nen7h5rs]{transition:color .15s,border-color .15s}.subscribe-pill[data-astro-cid-nen7h5rs]{transition:background-color .15s,color .15s}.hamburger[data-astro-cid-nen7h5rs]{transition:background .2s}.hamburger[data-astro-cid-nen7h5rs]:before,.hamburger[data-astro-cid-nen7h5rs]:after{transition:transform .2s}}@media (width<=900px){.desktop-nav[data-astro-cid-nen7h5rs],.desktop-only[data-astro-cid-nen7h5rs]{display:none}.mobile-menu-btn[data-astro-cid-nen7h5rs]{display:block}}.social-icons[data-astro-cid-o2gh7vpa]{gap:1rem;margin:0;padding:0;list-style:none;display:flex}.social-icons[data-astro-cid-o2gh7vpa] a[data-astro-cid-o2gh7vpa]{color:var(--color-text);align-items:center;text-decoration:none;transition:color .2s;display:flex}.social-icons[data-astro-cid-o2gh7vpa] a[data-astro-cid-o2gh7vpa]:hover{color:var(--color-accent)}.site-footer[data-astro-cid-jo6i4kqk]{background-color:var(--color-bg-green);border-top:2px solid var(--color-sprout);padding:var(--spacing-xl) 0 var(--spacing-md);margin-top:var(--spacing-xl)}.footer-band[data-astro-cid-jo6i4kqk]{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.footer-logo[data-astro-cid-jo6i4kqk]{font-family:var(--font-heading);color:var(--color-text-logo);margin-bottom:var(--spacing-sm);align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;display:flex}.footer-links[data-astro-cid-jo6i4kqk]{flex-direction:column;gap:.6rem;display:flex}.footer-links[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{flex-wrap:wrap;justify-content:flex-end;gap:.4rem 1.25rem;padding:0;list-style:none;display:flex}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--color-text);font-size:.92rem;font-weight:600;text-decoration:none}.footer-links[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]:hover{color:var(--color-accent);text-decoration:underline;text-decoration-color:var(--color-sun)}.footer-bottom[data-astro-cid-jo6i4kqk]{margin-top:var(--spacing-lg);padding-top:var(--spacing-sm);border-top:1px solid var(--color-border);color:var(--color-text-light);font-size:.8rem}.footer-bottom[data-astro-cid-jo6i4kqk] p[data-astro-cid-jo6i4kqk]{margin-bottom:.25rem}.footer-bottom[data-astro-cid-jo6i4kqk] a[data-astro-cid-jo6i4kqk]{color:var(--color-text-light)}@media (width<=640px){.footer-links[data-astro-cid-jo6i4kqk] ul[data-astro-cid-jo6i4kqk]{justify-content:flex-start}}:root{--color-bg:#fbf7ec;--color-bg-white:#fffdf7;--color-bg-green:#eef3e5;--color-bg-warm:#fbe7b8;--color-bg-blue:#e6eff2;--color-bg-peach:#f6e7da;--color-border:#dfe7d4;--color-text:#4c5d51;--color-text-light:#6f6750;--color-text-logo:#21342a;--color-accent:#2f6b3f;--color-accent-hover:#24563a;--color-on-accent:#fbf7ec;--color-sprout:#86b46f;--color-sun:#f1b544;--color-sun-text:#85601a;--color-sun-border:#ecd48f;--color-panel:#2f4d5c;--color-panel-cell:#46707f;--color-sky-border:#bcd3db;--color-success:#24563a;--color-error:#b3261e;--color-code-bg:#1f2d26;--color-code-text:#f3efe2;--color-shadow:#2f6b3f59;--font-heading:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"Bricolage Grotesque", system-ui, sans-serif;--fs-page-title:clamp(2.2rem, 4.4vw, 3.4rem);--max-width:1100px;--spacing-xs:.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:4rem;--radius-sm:.5rem;--radius-md:14px;--radius-lg:2rem;--radius-pill:999px;--shadow-soft:0 8px 24px -14px var(--color-shadow);--shadow-hover:0 12px 28px -14px var(--color-shadow);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-micro:.12s;--dur-short:.22s;--dur-long:.42s}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.7}body:after{content:"";pointer-events:none;z-index:9999;opacity:.03;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.7' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='256' height='256' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");position:fixed;inset:0}img{max-width:100%;height:auto;display:block}a{color:var(--color-accent);text-underline-offset:2px;text-decoration:underline 1px;transition:color .2s}a:hover{color:var(--color-accent-hover)}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--color-text-logo);letter-spacing:-.02em;text-wrap:balance;line-height:1.15}h1{letter-spacing:-.035em;font-size:clamp(2.6rem,5.5vw,4.3rem);font-weight:700;line-height:1.03}h2{letter-spacing:-.025em;font-size:1.85rem;font-weight:700}h3{font-size:1.35rem;font-weight:700}h4{font-size:1.1rem;font-weight:600}p{margin-bottom:1rem}p:last-child{margin-bottom:0}strong{font-weight:600}em{font-style:italic}ul,ol{padding-left:1.5rem}.legal-prose h2{margin:var(--spacing-lg) 0 var(--spacing-xs);font-size:1.5rem}.legal-prose ul{margin-bottom:1rem}.container{max-width:var(--max-width);padding:0 var(--spacing-md);margin:0 auto}.section{padding:var(--spacing-lg) 0}.btn{border-radius:var(--radius-pill);font-family:var(--font-body);text-align:center;cursor:pointer;white-space:nowrap;border:none;padding:.8rem 1.5rem;font-size:.95rem;font-weight:700;text-decoration:none;transition:background-color .15s,color .15s,box-shadow .15s;display:inline-block}.btn:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.btn-primary{background:var(--color-accent);color:var(--color-on-accent)}.btn-primary:hover{background:var(--color-accent-hover);color:var(--color-on-accent)}.btn-outline{color:var(--color-accent);box-shadow:inset 0 0 0 1.5px var(--color-accent);background-color:#0000}.btn-outline:hover{background-color:var(--color-bg-green);color:var(--color-accent-hover)}.panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin:var(--spacing-lg) auto;max-width:var(--max-width)}.bg-warm{background-color:var(--color-bg-warm)}.bg-blue{background-color:var(--color-bg-blue)}.bg-peach{background-color:var(--color-bg-peach)}.bg-green{background-color:var(--color-bg-green)}.bg-white{background-color:var(--color-bg-white)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-nav{z-index:1000;background:var(--color-accent);color:var(--color-on-accent);border-radius:var(--radius-sm);padding:.5rem 1.5rem;font-weight:600;text-decoration:none;position:absolute;top:-100%;left:50%;transform:translate(-50%)}.skip-nav:focus{color:var(--color-on-accent);top:.5rem}.section-rule{border:none;border-top:2px solid var(--color-sprout);width:60px;margin:var(--spacing-sm) 0 0 0}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes wipe{0%{clip-path:inset(-10px 100% -10px -10px)}to{clip-path:inset(-10px)}}@keyframes unfurl{0%{opacity:0;transform:scale(0)rotate(-40deg)}to{opacity:1;transform:none}}.js .fade-up{opacity:0;transition:opacity var(--dur-long) var(--ease-out), transform var(--dur-long) var(--ease-out);transform:translateY(8px)}.js .fade-up.visible{opacity:1;transform:translateY(0)}.fade-up.delay-1{transition-delay:70ms}.fade-up.delay-2{transition-delay:.14s}.fade-up.delay-3{transition-delay:.21s}.fade-up.delay-4{transition-delay:.28s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}a,.btn{transition:none}.fade-up,.fade-up.visible{opacity:1;transition:none;transform:none}}@media print{.fade-up{opacity:1!important;transition:none!important;transform:none!important}}@media (width<=900px){.panel{padding:var(--spacing-md) var(--spacing-md)}}@media (width<=640px){html{font-size:15px}h2{font-size:1.4rem}h3{font-size:1.15rem}.container{padding:0 var(--spacing-sm)}.section{padding:var(--spacing-md) 0}.panel{border-radius:var(--radius-md);padding:var(--spacing-md) var(--spacing-sm);margin:var(--spacing-md) var(--spacing-sm)}}
