/* ══════════════════════════════════════════
   TOKENS
══════════════════════════════════════════ */
:root {
  --bg:     #F0EDE5;
  --s1:     #E6E1D7;
  --forest: #2D3A2E;
  --sage:   #5E8B62;
  --sage-d: #3E6542;
  --moss:   #88B87A;
  --ink:    #28231A;
  --ink-m:  #5A5045;
  --ink-d:  #8C7E6F;
  --ink-p:  #F8F5EF;
  --br:     rgba(60,50,35,.09);
  --ff:     'Fraunces', serif;
  --fb:     'Atkinson Hyperlegible', sans-serif;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration:        .01ms !important;
    transition-duration:       .01ms !important;
    animation-iteration-count: 1     !important;
  }
}


/* ══════════════════════════════════════════
   RESET & BASE
══════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  font-size: 14px;
  scroll-behavior: smooth;
}

body {
  background:   var(--bg);
  color:        var(--ink);
  font-family:  var(--fb);
  line-height:  1.65;
  overflow-x:   hidden;
}

/* Subtle noise texture — matches brand guidelines */
body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.018'/%3E%3C/svg%3E");
  background-size: 256px;
}

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb { background: var(--sage-d); border-radius: 2px; }


/* ══════════════════════════════════════════
   ANIMATIONS
══════════════════════════════════════════ */
@keyframes fu {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(6px); }
}

.animate-1 { animation: fu 0.8s 0.10s ease both; }
.animate-2 { animation: fu 0.8s 0.22s ease both; }
.animate-3 { animation: fu 0.8s 0.38s ease both; }
.animate-4 { animation: fu 0.8s 0.52s ease both; }
.animate-5 { animation: fu 0.8s 0.66s ease both; }
.animate-6 { animation: fu 0.8s 0.80s ease both; }


/* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
.hero {
  position:   relative;
  min-height: 100vh;
  display:    flex;
  align-items: center;
  justify-content: center;
  z-index:    1;
  overflow:   hidden;
}

.hero-watermark {
  position:       absolute;
  inset:          0;
  display:        flex;
  align-items:    center;
  justify-content: center;
  opacity:        0.035;
  pointer-events: none;
  z-index:        0;
}

.hero-watermark svg {
  width:  700px;
  height: 700px;
}

.hero-content {
  position:        relative;
  z-index:         1;
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  text-align:      center;
  padding:         40px 24px;
}

.hero-mark {
  margin-bottom: 28px;
  filter: drop-shadow(0 20px 60px rgba(45,58,46,.14));
}

.wordmark {
  font-family:            var(--ff);
  font-style:             italic;
  font-optical-sizing:    auto;
  font-variation-settings: 'opsz' 144, 'wght' 700;
  font-size:              clamp(48px, 8vw, 80px);
  letter-spacing:         -0.035em;
  line-height:            0.9;
  color:                  var(--ink);
  margin-bottom:          18px;
}

.wordmark .a,
.footer-wm .a { color: var(--sage); }

.tagline {
  font-family:            var(--ff);
  font-style:             italic;
  font-optical-sizing:    auto;
  font-variation-settings: 'opsz' 20, 'wght' 300;
  font-size:              15px;
  letter-spacing:         0.1em;
  color:                  var(--ink);
  margin-bottom:          32px;
}

.rule {
  width:      min(340px, 80vw);
  height:     1px;
  background: linear-gradient(to right, transparent, var(--ink-d), transparent);
  margin-bottom: 32px;
}

.audience {
  font-size:      13px;
  color:          var(--ink-d);
  letter-spacing: 0.02em;
  margin-bottom:  28px;
}

.audience-text {
  display: inline;
}

.audience-cursor {
  display:          inline-block;
  width:            1.5px;
  height:           1.1em;
  background:       var(--sage);
  vertical-align:   middle;
  animation:        blink 1s step-end infinite;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

.caret {
  display:         flex;
  align-items:     center;
  justify-content: center;
  color:           var(--ink-d);
  text-decoration: none;
  animation:       fu 0.8s 0.80s ease both, bounce 1.8s 1.65s ease-in-out infinite;
  transition:      color 0.2s;
}

.caret:hover { color: var(--sage); }


/* ══════════════════════════════════════════
   PILLARS
══════════════════════════════════════════ */
.pillars {
  position:  relative;
  z-index:   1;
  padding:   96px 40px;
  background: var(--bg);
}

.pillars-inner {
  max-width: 960px;
  margin:    0 auto;
  display:   grid;
  grid-template-columns: repeat(3, 1fr);
  gap:       20px;
}

.pillar-card {
  background:    var(--s1);
  border:        1px solid var(--br);
  border-top:    2px solid var(--sage);
  border-radius: 10px;
  padding:       32px 28px;
  opacity:       0;
  transform:     translateY(18px);
  transition:    opacity 0.6s ease, transform 0.6s ease;
}

.pillar-card.visible {
  opacity:   1;
  transform: none;
}

.pillar-eye {
  display:         block;
  font-family:     var(--fb);
  font-size:       9.5px;
  font-weight:     700;
  letter-spacing:  0.22em;
  text-transform:  uppercase;
  color:           var(--sage);
  margin-bottom:   14px;
}

.pillar-heading {
  font-family:            var(--ff);
  font-style:             italic;
  font-optical-sizing:    auto;
  font-variation-settings: 'opsz' 36, 'wght' 600;
  font-size:              22px;
  letter-spacing:         -0.015em;
  line-height:            1.1;
  color:                  var(--ink);
  margin-bottom:          12px;
}

.pillar-body {
  font-size:   13px;
  line-height: 1.7;
  color:       var(--ink-m);
}


/* ══════════════════════════════════════════
   CAPTURE
══════════════════════════════════════════ */
.capture {
  position:        relative;
  background:      var(--forest);
  padding:         100px 40px;
  display:         flex;
  align-items:     center;
  justify-content: center;
  overflow:        hidden;
  z-index:         1;
}

.capture-watermark {
  position:       absolute;
  display:        flex;
  align-items:    center;
  justify-content: center;
  left: 0;
  bottom: 0;
  opacity:        0.04;
  pointer-events: none;
}

.capture-watermark svg {
  width:  600px;
  height: 600px;
}

.capture-content {
  position:        relative;
  z-index:         1;
  display:         flex;
  flex-direction:  column;
  align-items:     center;
  text-align:      center;
  max-width:       520px;
  width:           100%;
}

.capture-heading {
  font-family:            var(--ff);
  font-style:             italic;
  font-optical-sizing:    auto;
  font-variation-settings: 'opsz' 72, 'wght' 700;
  font-size:              clamp(28px, 5vw, 44px);
  letter-spacing:         -0.025em;
  line-height:            1.05;
  color:                  var(--ink-p);
  margin-bottom:          14px;
}

.capture-sub {
  font-size:     14px;
  color:         var(--ink-p);
  line-height:   1.6;
  margin-bottom: 36px;
}

.capture-form {
  display:   flex;
  gap:       10px;
  width:     100%;
}

.capture-form input[type="email"] {
  flex:        1;
  min-width:   0;
  background:  rgba(255,255,255,.06);
  border:      1px solid rgba(255,255,255,.15);
  border-radius: 8px;
  padding:     12px 16px;
  font-family: var(--fb);
  font-size:   14px;
  color:       var(--ink-p);
  outline:     none;
  transition:  border-color 0.2s;
}

.capture-form input[type="email"]::placeholder { color: rgba(248,245,239,.48); }
.capture-form input[type="email"]:focus        { border-color: var(--sage); }

.capture-form button {
  flex-shrink:     0;
  background:      var(--moss);
  color:           var(--ink);
  border:          none;
  border-radius:   8px;
  padding:         12px 22px;
  font-family:     var(--fb);
  font-size:       10px;
  font-weight:     700;
  letter-spacing:  0.16em;
  text-transform:  uppercase;
  cursor:          pointer;
  transition:      background 0.2s;
  white-space:     nowrap;
}

.capture-form button:hover  { background: var(--sage); }
.capture-form button:active { background: var(--sage); transform: translateY(1px); }

.capture-privacy {
  margin-top:  14px;
  font-size:   11px;
  color:        var(--ink-p);
}

.capture-privacy a {
  color:         var(--ink-p);
  text-decoration: none;
  border-bottom:   1px solid var(--ink-p);
  transition:      border-color 0.2s, color 0.2s;
}

.capture-privacy a:hover {
  color:        rgba(248,245,239,.7);
  border-color: rgba(248,245,239,.4);
}

.capture-note {
  font-size:   12px;
  color:         var(--ink-p);
  min-height:  18px;
  letter-spacing: 0.02em;
}

.sr-only {
  position:   absolute;
  width:      1px;
  height:     1px;
  padding:    0;
  margin:     -1px;
  overflow:   hidden;
  clip:       rect(0,0,0,0);
  white-space: nowrap;
  border:     0;
}


/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
.footer {
  position:        relative;
  z-index:         1;
  background:      var(--bg);
  border-top:      1px solid var(--br);
  padding:         20px 40px;
  display:         flex;
  align-items:     center;
  justify-content: space-between;
}

.footer-brand {
  display:     flex;
  align-items: center;
  gap:         10px;
}

.footer-wm {
  font-family:            var(--ff);
  font-style:             italic;
  font-optical-sizing:    auto;
  font-variation-settings: 'opsz' 20, 'wght' 700;
  font-size:              18px;
  letter-spacing:         -0.02em;
  line-height:            1;
  color:                  var(--ink);
}

.footer-copy {
  font-size:      11px;
  color:          var(--ink);
  letter-spacing: 0.06em;
}


/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media (max-width: 640px) {
  .pillars        { padding: 72px 20px; }
  .pillars-inner  { grid-template-columns: 1fr; gap: 14px; }

  .capture        { padding: 80px 20px; }
  .capture-form   { flex-direction: column; }
  .capture-form button { width: 100%; padding: 14px; }

  .footer         { padding: 16px 20px; }
}

@media (max-width: 400px) {
  .wordmark { font-size: 44px; }
}


.sr-only {
  position:absolute;
  left:-10000px;
  top:auto;
  width:1px;
  height:1px;
  overflow:hidden;
}