@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,300..800&family=Hanken+Grotesk:ital,wght@0,300..700;1,400&family=Instrument+Serif:ital@0;1&display=swap');

:root{

--bone-0:#FBF9F2; --bone-1:#F3F0E4; --bone-2:#E9E5D3; --bone-3:#DDD8C2;
--forest-9:#0E2415; --forest-8:#14311D; --forest-7:#1D4229; --forest-6:#2C5638; --moss-4:#66815F; --moss-2:#A9BCA0;
--chartreuse-5:#C8F04A; --chartreuse-6:#B4E42B; --chartreuse-7:#8FBF0F;
--clay-5:#D96B3B; 

--surface-page:var(--bone-0);
--surface-raised:var(--bone-1);
--surface-sunken:var(--bone-2);
--surface-inverse:var(--forest-9);
--surface-accent:var(--chartreuse-5);
--text-display:var(--forest-9);
--text-body:#22301F;
--text-muted:#5D6B54;
--text-on-inverse:var(--bone-0);
--text-muted-on-inverse:#9DB098;
--text-on-accent:var(--forest-9);
--accent:var(--chartreuse-5);
--accent-strong:var(--chartreuse-7);
--border-hairline:rgba(14,36,21,.22);
--border-hairline-inverse:rgba(251,249,242,.24);
--focus-ring:var(--chartreuse-7);
}
:root{
--font-display:'Bricolage Grotesque',sans-serif;
--font-body:'Hanken Grotesk',sans-serif;
--font-accent:'Instrument Serif',serif; 

--text-hero:clamp(3.5rem,9.5vw,10rem);
--text-h1:clamp(2.75rem,6.5vw,5.5rem);
--text-h2:clamp(2rem,4.2vw,3.5rem);
--text-h3:1.5rem;
--text-lead:clamp(1.125rem,1.6vw,1.375rem);
--text-body-size:1.0625rem;
--text-small:.875rem;
--text-label:.75rem;

--leading-display:.92;
--leading-tight:1.05;
--leading-body:1.55;
--track-display:-0.03em;
--track-label:.16em;
--weight-display:640;
--weight-display-heavy:750;
--weight-body:400;
--weight-medium:520;
}
:root{
--sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;
--section-y:clamp(96px,14vw,192px); 
--page-x:clamp(20px,4vw,64px); 
--page-max:1680px;
--gutter:clamp(16px,2vw,32px); 
}
:root{

--radius-0:0px;
--radius-pill:999px;
--radius-media:2px;
--hairline:1px solid var(--border-hairline);
--hairline-inverse:1px solid var(--border-hairline-inverse);
--shadow-none:none;
--overlay-scrim:linear-gradient(180deg,rgba(14,36,21,0) 40%,rgba(14,36,21,.72) 100%); 
--blur-nav:saturate(1.2) blur(12px); 
}
:root{
--ease-out:cubic-bezier(.16,1,.3,1); 
--ease-inout:cubic-bezier(.7,0,.2,1); 
--dur-fast:180ms; 
--dur-med:420ms; 
--dur-slow:900ms; 
}
body{margin:0;background:var(--surface-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--text-body-size);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
a{color:var(--text-display);text-decoration-color:var(--border-hairline);text-underline-offset:3px}
a:hover{color:var(--accent-strong)}
::selection{background:var(--accent);color:var(--text-on-accent)}

.wrap{max-width:var(--page-max);margin:0 auto;padding:0 var(--page-x)}
html{scroll-behavior:smooth}
body{overflow-x:hidden;transition:background-color .4s linear}
h1,h2,h3{font-family:var(--font-display);color:var(--text-display);letter-spacing:var(--track-display);text-transform:lowercase;margin:0}
em{font-family:var(--font-accent);font-style:italic;font-weight:400}
a{color:var(--text-display);text-decoration-color:var(--border-hairline);text-underline-offset:3px;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--accent-strong)}

.bg-shape{position:fixed;inset:0;z-index:0;pointer-events:none}
.bg-shape svg{position:absolute;inset:0;width:100%;height:100%;transition:opacity var(--dur-med) var(--ease-out)}
.bg-shape .tide{fill:none;stroke:rgba(14,36,21,.13);stroke-width:1}
.bg-shape .tide.accent{stroke:rgba(143,191,15,.4)}
.bg-shape .ripple{fill:none;stroke:rgba(14,36,21,.12);stroke-width:1}
.bg-shape .ripple.accent{stroke:rgba(143,191,15,.38)}
#ripple-svg{opacity:0}
body>*:not(.bg-shape):not(.cookie-pop){position:relative;z-index:1}
.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(251,249,242,.75);backdrop-filter:var(--blur-nav);-webkit-backdrop-filter:var(--blur-nav);border-bottom:var(--hairline)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
.wordmark{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-0.03em;color:var(--text-display);text-decoration:none;text-transform:lowercase}
.wordmark .ast{color:var(--accent-strong)}
.nav-links{display:none;align-items:center;gap:28px}
.nav-links a{font-size:15px;font-weight:520;text-decoration:none;text-transform:lowercase}

.btn{display:inline-flex;align-items:center;gap:10px;padding:13px 26px;font-family:var(--font-body);font-weight:600;font-size:16px;line-height:1;border-radius:var(--radius-pill);border:1px solid transparent;background:var(--accent);color:var(--text-on-accent);cursor:pointer;text-decoration:none;text-transform:lowercase;transition:all var(--dur-fast) var(--ease-out)}
.btn:hover{background:var(--surface-inverse);color:var(--text-on-inverse)}
.btn:active{transform:scale(.98)}
.btn .arr{display:inline-block;transition:transform var(--dur-fast) var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}
.btn.lg{padding:18px 32px;font-size:18px}
.btn.sm{padding:8px 18px;font-size:14px}
.btn:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

.hero{padding-top:140px}
.hero h1{font-weight:var(--weight-display-heavy);font-size:var(--text-hero);line-height:var(--leading-display);max-width:9em}
.hero h1 .ast{color:var(--accent-strong)}
.hero-row{display:grid;gap:var(--gutter);align-items:end;margin:40px 0 0}
.hero-row p{margin:0;font-size:var(--text-lead);line-height:1.4;max-width:44ch}

.label{display:inline-block;font-size:var(--text-label);font-weight:700;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted)}
.label.inverse{color:var(--text-muted-on-inverse)}
.label.accent{color:var(--accent-strong)}

section{padding:var(--section-y) 0 0}
.h-big{font-weight:640;font-size:var(--text-h1);line-height:var(--leading-tight);margin:16px 0 48px;max-width:14em}

.entry{display:grid;grid-template-columns:1fr;gap:12px 20px;align-items:baseline;padding:24px 0;border-top:var(--hairline)}
.entry h3{font-weight:640;font-size:clamp(1.25rem,2vw,1.75rem);letter-spacing:-0.02em}
.entry p{margin:0;font-size:var(--text-small);color:var(--text-muted);line-height:1.45;max-width:52ch}
.entries{border-bottom:var(--hairline)}

.support{border-bottom:var(--hairline);margin-top:calc(var(--section-y)*0.5);padding:0}
.support .wrap{padding-top:24px;padding-bottom:12px;text-align:center}
.support-logos{display:flex;align-items:center;justify-content:center;gap:clamp(48px,8vw,120px);padding-top:28px;padding-bottom:72px;margin-bottom:60px;flex-wrap:wrap}
.support-logos a{display:inline-flex;align-items:center}
.support-logos img{height:clamp(30px,3.6vw,46px);width:auto;display:block;opacity:.85;transition:opacity var(--dur-base,0.3s) var(--ease-out,ease)}
.support-logos a:hover img{opacity:1}

.inverse{background:var(--surface-inverse);color:var(--text-on-inverse);padding-bottom:var(--section-y)}
.inverse h2{color:var(--text-on-inverse)}
.inverse .entry{border-top:var(--hairline-inverse)}
.inverse .entry p{color:var(--text-muted-on-inverse);font-size:var(--text-body-size);max-width:60ch}
.inverse .entries{border-bottom:var(--hairline-inverse)}
.events-grid{display:grid;gap:48px}
.events-head h2{font-weight:640;font-size:var(--text-h1);line-height:var(--leading-tight);margin:4px 0 0;max-width:9em}
.events-rows{display:grid;gap:20px}@media (min-width:900px){.events-rows{grid-template-columns:repeat(3,1fr)}}.event-row{padding:32px 28px;border:var(--hairline-inverse);background:rgba(251,249,242,0.04)}
.event-row h3{color:var(--text-on-inverse);font-weight:640;font-size:clamp(1.6rem,3vw,2.5rem);letter-spacing:-0.02em;line-height:1.05}
.event-row p{margin:14px 0 0;color:var(--text-muted-on-inverse);max-width:52ch;line-height:1.55}
.events-close{margin:36px 0 0;font-family:var(--font-accent);font-style:italic;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.25;color:var(--text-on-inverse)}
.events-close .ast{color:var(--accent)}
@media (min-width:900px){.events-close{grid-column:1/-1}}

.hubs-grid{display:grid;gap:var(--gutter)}
.hubs-grid>p{margin:0;font-size:var(--text-lead);line-height:1.5;max-width:52ch}
.hubs-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hubs-list li{padding:20px 22px;border:var(--hairline);background:var(--surface-raised,rgba(14,36,21,0.03));font-family:var(--font-display);font-weight:640;font-size:clamp(1.1rem,1.6vw,1.4rem);letter-spacing:-0.02em;color:var(--text-display);text-transform:lowercase}
.hubs-note{margin:0 0 20px;color:var(--text-muted)}

.connect h2 .ast{color:var(--accent-strong)}
.aud .entry h3{font-size:clamp(1.5rem,2.6vw,2.25rem)}
.aud .entry p{font-size:var(--text-body-size)}

.move{margin-top:var(--section-y);padding-bottom:var(--section-y)}
.move h2{font-weight:var(--weight-display-heavy);font-size:var(--text-h1);line-height:var(--leading-display)}
.move-grid{display:grid;gap:48px;margin-top:48px;align-items:start}
.move-grid>p{margin:0;font-size:var(--text-lead);line-height:1.4;max-width:30ch}
.form{display:flex;flex-direction:column;gap:28px}
.field span{display:block;font-size:var(--text-label);font-weight:700;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}
.field input,.field textarea{width:100%;box-sizing:border-box;background:transparent;border:none;border-bottom:var(--hairline);padding:8px 0 10px;font-family:var(--font-body);font-size:18px;color:var(--text-display);resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-bottom:2px solid var(--accent-strong)}
.roles{display:flex;flex-wrap:wrap;gap:12px}
.roles label{position:relative;cursor:pointer}
.roles input{position:absolute;opacity:0;pointer-events:none}
.roles span{display:inline-block;padding:10px 22px;border:var(--hairline);border-radius:var(--radius-pill);font-size:15px;font-weight:520;text-transform:lowercase;transition:all var(--dur-fast) var(--ease-out)}
.roles input:checked+span{background:var(--surface-inverse);color:var(--text-on-inverse);border-color:var(--surface-inverse)}
.roles input:focus-visible+span{outline:2px solid var(--focus-ring);outline-offset:2px}

footer{background:var(--surface-inverse);padding:96px 0 48px}
.foot-grid{display:grid;gap:40px}
.foot-grid .wordmark{font-size:clamp(1.75rem,3vw,2.5rem)}
.foot-grid .wordmark .ast{color:var(--accent)}
footer .wordmark{color:var(--text-on-inverse)}
.foot-bottom a{color:var(--text-muted-on-inverse)}
.roles-set{border:none;margin:0;padding:0}
.foot-tag{margin:12px 0 0;color:var(--text-muted-on-inverse);text-transform:lowercase}
.foot-meta{display:flex;flex-direction:column;gap:8px;color:var(--text-on-inverse)}
.foot-meta a{color:var(--text-on-inverse);text-decoration:none}
.foot-meta a:hover{color:var(--accent)}
.foot-bottom{margin-top:80px;border-top:var(--hairline-inverse);padding-top:24px;font-size:13px;color:var(--text-muted-on-inverse)}

.reveal{opacity:0;transform:translateY(24px);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

@media (min-width:760px){
.nav-links{display:flex}
.hero-row{grid-template-columns:1fr minmax(280px,420px)}
.entry{grid-template-columns:1fr 1.2fr}
.hubs-grid{grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,80px)}
.move-grid{grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,80px)}
.foot-grid{grid-template-columns:2fr 1fr;align-items:start}
.foot-meta{text-align:right}
.foot-bottom{display:flex;justify-content:space-between}
}

.legal{padding:160px 0 var(--section-y)}.legal h1{font-weight:var(--weight-display-heavy);font-size:var(--text-h1);line-height:var(--leading-display)}
.legal-date{margin:20px 0 0;font-size:var(--text-label);font-weight:700;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--text-muted)}
.legal-body{max-width:68ch;margin-top:64px}
.legal-body h2{font-weight:640;font-size:clamp(1.5rem,2.4vw,2rem);letter-spacing:-0.02em;line-height:1.1;margin:56px 0 16px;padding-top:32px;border-top:var(--hairline)}
.legal-body h3{font-weight:640;font-size:1.2rem;letter-spacing:-0.01em;margin:32px 0 8px}
.legal-body p{margin:0 0 18px}
.legal-body a{word-break:break-word}
.notfound{min-height:100vh;display:flex;align-items:center}
.notfound h1{font-weight:var(--weight-display-heavy);font-size:var(--text-hero);line-height:var(--leading-display)}
.notfound h1 .ast{color:var(--accent-strong)}
.notfound p{margin:24px 0 36px;font-size:var(--text-lead);font-family:var(--font-accent);font-style:italic;color:var(--text-body)}
.cookie-pop{position:fixed;left:50%;bottom:auto;top:50%;z-index:60;width:calc(100% - 32px);background:var(--surface-page);border:var(--hairline);padding:24px;max-width:420px;opacity:0;transform:translate(-50%,calc(-50% + 24px));transition:opacity var(--dur-med) var(--ease-out),transform var(--dur-med) var(--ease-out)}
.cookie-pop.show{opacity:1;transform:translate(-50%,-50%)}
.cookie-pop h3{font-weight:640;font-size:1.25rem;letter-spacing:-0.02em;margin-bottom:8px}
.cookie-pop h3 .ast{color:var(--accent-strong)}
.cookie-pop p{margin:0 0 18px;font-size:var(--text-small);color:var(--text-muted);line-height:1.5}
.cookie-pop .row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cookie-pop .ghost{background:transparent;border:var(--hairline);color:var(--text-display)}
.cookie-pop .ghost:hover{background:var(--surface-inverse);color:var(--text-on-inverse)}

