/* ============ TOKENS ============ */
:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.5rem, 1rem + 4vw, 5rem);

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --radius-sm:.375rem; --radius-md:.5rem; --radius-lg:.75rem; --radius-full:9999px;
  --transition-interactive: 220ms cubic-bezier(.16,1,.3,1);

  --content: 1120px;

  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-body: 'EB Garamond', 'Georgia', serif;
}

/* Brand palette — light */
:root, [data-theme="light"] {
  --green: #1F4332;
  --green-deep: #14301F;
  --gold: #C49A45;
  --gold-soft: #d6b369;
  --ivory: #F7F4EC;

  --color-bg: #F7F4EC;
  --color-surface: #fffdf7;
  --color-surface-alt: #f1ece0;
  --color-text: #22281f;
  --color-text-muted: #5c6357;
  --color-border: #e0dccf;
}

/* Dark */
[data-theme="dark"] {
  --color-bg: #11241a;
  --color-surface: #16301f;
  --color-surface-alt: #143020;
  --color-text: #ece7d8;
  --color-text-muted: #b3b9a6;
  --color-border: #294636;
  --gold: #d6b369;
}

/* ============ BASE ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;scroll-behavior:smooth;scroll-padding-top:5rem;
}
body{
  min-height:100dvh;line-height:1.65;font-family:var(--font-body);
  font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);
  transition:background .4s ease,color .4s ease;
}
img,svg{display:block;max-width:100%;height:auto;}
ul[role=list],ol[role=list]{list-style:none;}
a{color:inherit;text-decoration:none;}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.08;text-wrap:balance;}
p{text-wrap:pretty;max-width:64ch;}
::selection{background:color-mix(in oklab,var(--gold) 35%,transparent);}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--radius-sm);}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}

.wrap{width:min(var(--content),100% - 2.5rem);margin-inline:auto;}

/* ============ HEADER ============ */
.site-header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in oklab,var(--color-bg) 88%,transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--color-border);
}
.header-inner{display:flex;align-items:center;gap:var(--space-6);padding-block:var(--space-4);}
.brand{display:flex;align-items:center;gap:var(--space-3);}
.brand-mark{width:34px;height:40px;color:var(--green);flex:none;}
[data-theme="dark"] .brand-mark{color:var(--gold);}
.brand-text{display:flex;flex-direction:column;line-height:1;}
.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.3rem;letter-spacing:.04em;color:var(--color-text);}
.brand-sub{font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-top:.25rem;}
.nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-6);font-size:var(--text-sm);letter-spacing:.02em;}
.nav a{color:var(--color-text-muted);transition:color var(--transition-interactive);}
.nav a:hover{color:var(--color-text);}
.nav-cta{color:var(--green)!important;font-weight:500;}
[data-theme="dark"] .nav-cta{color:var(--gold)!important;}
.theme-toggle{
  width:38px;height:38px;display:grid;place-items:center;border-radius:var(--radius-full);
  color:var(--color-text-muted);border:1px solid var(--color-border);
  transition:color var(--transition-interactive),border-color var(--transition-interactive);
}
.theme-toggle:hover{color:var(--gold);border-color:var(--gold);}

/* ============ HERO ============ */
.hero{position:relative;text-align:center;overflow:hidden;
  padding-block:clamp(var(--space-16),11vw,var(--space-32));
  background:
    radial-gradient(120% 90% at 50% -10%, color-mix(in oklab,var(--gold) 14%,transparent), transparent 55%),
    var(--color-bg);
}
.hero-inner{display:flex;flex-direction:column;align-items:center;}
.hero-mark{width:92px;height:108px;color:var(--green);margin-bottom:var(--space-6);}
[data-theme="dark"] .hero-mark{color:var(--gold);}
.eyebrow{font-size:.72rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-5);}
.hero h1{font-size:var(--text-3xl);font-weight:600;color:var(--color-text);letter-spacing:.005em;}
.hero-sub{font-size:var(--text-lg);color:var(--color-text-muted);max-width:54ch;margin:var(--space-6) auto var(--space-8);line-height:1.55;}
.hero-fade{position:absolute;inset-inline:0;bottom:0;height:120px;background:linear-gradient(to top,var(--color-bg),transparent);}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.06em;
  text-transform:uppercase;padding:.9rem 2rem;border-radius:var(--radius-full);
  transition:transform var(--transition-interactive),background var(--transition-interactive),box-shadow var(--transition-interactive);
}
.btn-primary{background:var(--green);color:var(--ivory);box-shadow:0 6px 18px color-mix(in oklab,var(--green) 35%,transparent);}
.btn-primary:hover{background:var(--green-deep);transform:translateY(-2px);}
[data-theme="dark"] .btn-primary{background:var(--gold);color:var(--green-deep);box-shadow:0 6px 18px color-mix(in oklab,var(--gold) 30%,transparent);}
[data-theme="dark"] .btn-primary:hover{background:var(--gold-soft);}
.btn-lg{font-size:var(--text-base);padding:1.1rem 2.4rem;text-transform:none;letter-spacing:.02em;}

/* ============ SECTIONS ============ */
.section{padding-block:clamp(var(--space-16),9vw,var(--space-32));}
.section-alt{background:var(--color-surface-alt);}
.kicker{font-size:.72rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-4);}
.kicker-gold{color:var(--gold);}
.section-title{font-size:var(--text-2xl);color:var(--color-text);margin-bottom:var(--space-12);}
.section-title.light{color:var(--ivory);}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);}
.card{
  background:var(--color-surface);border:1px solid var(--color-border);
  border-radius:var(--radius-lg);padding:var(--space-8);
  transition:transform var(--transition-interactive),box-shadow var(--transition-interactive),border-color var(--transition-interactive);
}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 40px color-mix(in oklab,var(--green) 12%,transparent);border-color:var(--gold);}
.card-num{font-family:var(--font-display);font-size:1.4rem;color:var(--gold);display:block;margin-bottom:var(--space-3);}
.card h3{font-size:var(--text-xl);color:var(--color-text);margin-bottom:var(--space-3);}
.card p{color:var(--color-text-muted);font-size:var(--text-base);max-width:none;}

/* who / two-col */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center;}
.two-col .section-title{margin-bottom:0;}
.for-list{display:flex;flex-direction:column;gap:var(--space-6);}
.for-list li{font-size:var(--text-lg);color:var(--color-text-muted);padding-left:var(--space-6);border-left:2px solid var(--gold);line-height:1.45;}
.for-list strong{display:block;color:var(--color-text);font-weight:500;}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8);counter-reset:s;}
.steps li{display:flex;flex-direction:column;gap:var(--space-4);}
.step-n{
  width:48px;height:48px;border-radius:var(--radius-full);display:grid;place-items:center;
  font-family:var(--font-display);font-size:1.4rem;color:var(--green);
  border:1.5px solid var(--gold);
}
[data-theme="dark"] .step-n{color:var(--gold);}
.steps p{color:var(--color-text-muted);font-size:var(--text-lg);line-height:1.5;}

/* collective (dark band) */
.section-dark{
  background:
    radial-gradient(90% 120% at 50% 0%, color-mix(in oklab,var(--gold) 12%,transparent), transparent 50%),
    var(--green);
  text-align:center;
}
.collective-inner{display:flex;flex-direction:column;align-items:center;}
.collective-mark{width:72px;height:84px;color:var(--gold);margin-bottom:var(--space-5);}
.collective-body{color:color-mix(in oklab,var(--ivory) 82%,transparent);font-size:var(--text-lg);max-width:60ch;margin:0 auto;line-height:1.6;}
.founding{margin-top:var(--space-16);padding-top:var(--space-10);border-top:1px solid color-mix(in oklab,var(--gold) 40%,transparent);max-width:60ch;}
.founding h3{font-size:var(--text-xl);color:var(--gold);margin-bottom:var(--space-3);}
.founding p{color:color-mix(in oklab,var(--ivory) 80%,transparent);margin-inline:auto;}

/* contact */
.contact{text-align:center;}
.contact-inner{display:flex;flex-direction:column;align-items:center;}
.contact-body{color:var(--color-text-muted);font-size:var(--text-lg);max-width:52ch;margin:0 auto var(--space-8);line-height:1.55;}

/* ============ FOOTER ============ */
.site-footer{background:var(--green-deep);color:var(--ivory);padding-block:var(--space-12);}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap;}
.brand-footer .brand-mark{color:var(--gold);}
.brand-footer .brand-name{color:var(--ivory);}
.footer-meta{text-align:right;font-size:var(--text-sm);}
.footer-meta p{color:color-mix(in oklab,var(--ivory) 65%,transparent);}
.footer-meta a{color:var(--gold);}
.footer-meta a:hover{color:var(--gold-soft);}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:none;}

/* ============ RESPONSIVE ============ */
@media (max-width:860px){
  .cards,.steps{grid-template-columns:1fr;}
  .two-col{grid-template-columns:1fr;gap:var(--space-8);}
  .nav{display:none;}
}
