:root {
  color-scheme: light;
  --forest: #07503f;
  --bone: #f7f6ef;
  --lime: #e8fe85;
  --charcoal: #212529;
  --white: #fff;
  --font-sans: Inter, ui-sans-serif, system-ui, sans-serif;
  --font-display: "Source Serif 4", Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; padding-top: 26px; background: var(--bone); color: var(--charcoal); font-family: var(--font-sans); }
a { color: inherit; text-decoration: none; }
.intro-curtain { position: fixed; z-index: 30; inset: 0; background: var(--bone); transform: translateY(0); pointer-events: none; }
.intro-curtain.is-rising { transform: translateY(-100%); transition: transform 1.15s cubic-bezier(.72, 0, .24, 1); }
.announcement { position: fixed; z-index: 12; inset: 0 0 auto; display: grid; place-items: center; height: 26px; overflow: hidden; padding: 0 12px; background: var(--lime); color: var(--charcoal); font-family: var(--font-display); font-size: 13px; line-height: 1; text-align: center; white-space: nowrap; }
.announcement-small { display: none; }

.masthead {
  position: fixed;
  z-index: 11;
  top: 26px;
  right: 10px;
  left: 10px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  height: 134px;
  padding: 0 clamp(22px, 4.2vw, 72px);
  background: transparent;
  color: var(--white);
  transition: left .4s ease, right .4s ease, height .4s ease, background-color .4s ease;
}
.masthead.is-fixed { right: 0; left: 0; height: 74px; background: var(--forest); }
.nav-left, .nav-right { display: flex; align-items: center; gap: clamp(16px, 2.2vw, 34px); }
.nav-left a, .team-link { font-family:var(--font-sans); font-size:16px; font-weight:400; opacity:.92; transition:font-size .35s cubic-bezier(.2,.75,.2,1), opacity .2s ease; }
.masthead.is-fixed .nav-left a, .masthead.is-fixed .team-link { font-size:13px; }
.nav-left a:hover, .team-link:hover { opacity: .65; }
.wordmark { display: grid; justify-items: center; line-height: 1; }
.wordmark > span { font-family: var(--font-display); font-size: 29px; font-weight: 500; letter-spacing: -.04em; }
.wordmark i { color: var(--lime); font-style: normal; }
.wordmark small { margin-top: 5px; font-size: 8px; letter-spacing: .14em; }
.nav-right { justify-content: flex-end; }
.contact-pill { display:inline-flex; align-items:center; gap:12px; padding:10px 18px; border-radius:999px; background:var(--white); color:var(--charcoal); font-family:var(--font-sans); font-size:13px; font-weight:500; transition:background .2s ease, transform .2s ease; }
.contact-pill:hover { background: var(--lime); transform: translateY(-1px); }
.menu-toggle, .mobile-menu { display: none; }

.hero-story-stage { position: relative; }
.hero { position: sticky; z-index: 0; top: 36px; display: grid; height: calc(100svh - 46px); min-height: 650px; margin: 10px; overflow: hidden; place-items: center; isolation: isolate; border: 1px solid rgba(7,80,63,.1); border-radius: 20px; color: var(--white); background: #7d8059; }
.hero-video, .hero-wash { position: absolute; z-index: -1; inset: 0; width: 100%; height: 100%; }
.hero-video { object-fit: cover; object-position: center 54%; opacity: 0; }
.hero-video.is-playing { opacity: 1; }
.hero-wash { background: linear-gradient(180deg, rgba(7, 38, 29, .48) 0%, rgba(12, 30, 22, .08) 25%, rgba(12, 30, 22, .12) 42%, rgba(12, 30, 22, .54) 100%); }
.hero-copy { width: min(860px, calc(100% - 40px)); padding: 95px 0 112px; text-align: center; text-shadow: 0 1px 22px rgba(15, 28, 18, .23); animation: arrive .8s cubic-bezier(.2,.7,.25,1) both; }
.hero-eyebrow { margin: 0 0 22px; font-size: 11px; font-weight: 500; letter-spacing: .17em; text-transform: uppercase; }
.hero h1 { margin: 0; font-family: var(--font-display); font-size: clamp(58px, 7.4vw, 102px); font-weight: 300; line-height: .91; letter-spacing: -.038em; }
.hero h1 em { font-weight: 400; font-style: normal; }
.finale-title { max-height: 0; margin: 0; overflow: hidden; opacity: 0; font-family: var(--font-display); font-size: clamp(58px, 7.4vw, 102px); font-weight: 300; line-height: .91; letter-spacing: -.038em; transition: opacity .8s ease, max-height .8s ease, margin-top .8s ease; }
.finale-title em { font-weight: 400; font-style: normal; }
.finale-title.is-visible { max-height: 220px; margin-top: 28px; opacity: 1; }
.hero-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.pill { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:46px; padding:10px 22px; border:1px solid transparent; border-radius:999px; font-family:var(--font-sans); font-size:14px; font-weight:500; text-shadow:none; transition:transform .2s ease, background .2s ease, color .2s ease; }
.pill:hover { transform: translateY(-2px); }
.pill-primary { background: var(--forest); color: var(--white); }
.pill-primary:hover { background: #0c6650; }
.pill-quiet { border-color: rgba(255,255,255,.8); color: var(--white); backdrop-filter: blur(4px); }
.pill-quiet:hover { background: rgba(255,255,255,.16); }
.field-stories { position: relative; z-index: 2; padding: 34px 12px 90px; background: var(--bone); }
.stories-heading { width:100%; margin:0 auto 24px; padding:clamp(30px,5vw,60px) 0; border-radius:30px; background:var(--bone); }
.stories-heading > p, .story-copy > p:first-child { margin: 0 0 15px; color: #536457; font-size: 10px; font-weight: 500; letter-spacing: .14em; }
.stories-heading h2 { margin: 0; font-family: var(--font-display); font-size: clamp(46px, 6vw, 76px); font-weight: 300; line-height: .98; letter-spacing: -.035em; }
.stories-heading > span { display:block; max-width:56ch; margin-top:20px; color:#464b44; font-size:16px; line-height:1.55; }
.story-row { display: grid; width:100%; grid-template-columns:minmax(0,3fr) minmax(0,2fr); align-items:stretch; gap:16px; margin:0 auto 22px; background:transparent; }
.story-row[id] { scroll-margin-top:90px; }
.story-row:last-child { margin-bottom: 0; }
.story-row--sage .story-copy { background:#e6ecd5; }
.story-row--peach .story-copy { background:#fceace; }
.story-row--sky .story-copy { background:#b2cee7; }
.story-row--reverse { grid-template-columns:minmax(0,2fr) minmax(0,3fr); }
.story-row--reverse img { grid-column: 2; grid-row: 1; }
.story-row--reverse .story-copy { grid-column: 1; grid-row: 1; }
.story-row img { display:block; width:100%; height:auto; min-height:360px; aspect-ratio:1.55; object-fit:cover; border-radius:30px; }
.story-copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(28px,4.4vw,58px); border-radius:30px; }
.story-copy h3 { max-width:12ch; margin:0 0 20px; font-family:var(--font-display); font-size:clamp(37px,4.4vw,58px); font-weight:300; line-height:1.02; letter-spacing:-.025em; }
.story-copy > p:last-child { max-width:46ch; margin:0; color:#464b44; font-size:16px; line-height:1.65; }
.story-row.has-reveal img, .story-row.has-reveal .story-copy { opacity: 0; transition: opacity .8s ease, transform .9s cubic-bezier(.2,.75,.2,1), clip-path 1s cubic-bezier(.2,.75,.2,1); }
.story-row:not(.story-row--reverse).has-reveal img { clip-path: inset(0 100% 0 0); transform: translateX(-34px); }
.story-row:not(.story-row--reverse).has-reveal .story-copy { transform: translateX(30px); transition-delay: .12s; }
.story-row--reverse.has-reveal img { clip-path: inset(0 0 0 100%); transform: translateX(34px); }
.story-row--reverse.has-reveal .story-copy { transform: translateX(-30px); transition-delay: .12s; }
.story-row.has-reveal.is-revealed img, .story-row.has-reveal.is-revealed .story-copy { opacity: 1; clip-path: inset(0); transform: translateX(0); }
.partner-benefits { width:100%; margin:58px auto 22px; padding:clamp(30px,5vw,58px); border-radius:30px; background:var(--forest); color:var(--white); }
.partner-inner { width:100%; margin:0 auto; }
.partner-inner > header { max-width:700px; margin-bottom:calc(48px + 2lh); }
.partner-inner > header > p { margin:0 0 14px; color:var(--lime); font-size:10px; font-weight:500; letter-spacing:.14em; }
.partner-benefits h2 { margin:0; font-family:var(--font-display); font-size:clamp(42px,5.5vw,66px); font-weight:300; line-height:.98; letter-spacing:-.03em; }
.partner-inner > header > span { display:block; max-width:56ch; margin-top:20px; color:rgba(255,255,255,.86); font-size:16px; line-height:1.6; }
.partner-grid { display:grid; width:100%; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(16px,2vw,24px); }
.partner-grid article { min-height:190px; padding:26px; border-radius:20px; color:var(--charcoal); }
.partner-grid article:nth-child(1) { background:#e6ecd5; }
.partner-grid article:nth-child(2) { background:#fceace; }
.partner-grid article:nth-child(3) { background:#b2cee7; }
.partner-grid article:nth-child(4) { background:#efefef; }
.partner-grid article > span { font-size:10px; }
.partner-grid h3 { margin:25px 0 10px; font-family:var(--font-display); font-size:25px; font-weight:400; line-height:1; }
.partner-grid p { margin:0; font-size:13px; line-height:1.5; }
.impact-strip { display:grid; grid-auto-rows:1fr; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; width:100%; margin:22px auto 0; overflow:hidden; border-radius:30px; background:rgba(241,239,223,.25); color:var(--white); }
.impact-strip > div { display:flex; min-width:0; min-height:300px; flex-direction:column; align-items:center; justify-content:flex-start; padding:42px clamp(20px,4vw,52px) 30px; background:var(--forest); text-align:center; }
.impact-strip strong { color:var(--lime); font-family:var(--font-display); font-size:clamp(116px,11vw,156px); font-weight:300; line-height:.9; letter-spacing:-.04em; font-variant-numeric:lining-nums tabular-nums; font-feature-settings:"lnum" 1,"tnum" 1; }
.impact-strip span { display:flex; align-items:flex-end; justify-content:center; min-height:2.8em; max-width:19ch; margin-top:20px; font-size:20px; line-height:1.4; text-align:center; }
.sites-map { position:relative; isolation:isolate; overflow:hidden; min-height:640px; margin:0 12px; border-radius:30px; background:#263e2c url("assets/web/hero-gers-reference.png") center 52% / cover no-repeat; color:var(--white); }
.sites-map-shade { position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(15,43,31,.79),rgba(15,43,31,.46) 55%,rgba(15,43,31,.31)); }
.sites-map-content { display:grid; grid-template-columns:minmax(260px,.8fr) minmax(380px,1.2fr); align-items:center; gap:clamp(40px,8vw,120px); width:calc(100% - 24px); min-height:640px; margin:auto; padding:70px 0; }
.sites-heading { padding-left:clamp(20px,3vw,44px); }
.sites-heading p { margin:0 0 16px; color:var(--lime); font-size:10px; font-weight:500; letter-spacing:.15em; }
.sites-heading h2 { margin:0; color:var(--white); font-family:var(--font-display); font-size:clamp(48px,6vw,76px); font-weight:300; line-height:.96; letter-spacing:-.035em; }
.sites-heading > span { display:block; max-width:30ch; margin-top:24px; color:rgba(255,255,255,.88); font-size:15px; line-height:1.6; }
.gers-map-wrap { width:min(100%,490px); justify-self:center; }
.gers-map { display:block; width:100%; height:auto; overflow:visible; }
.gers-outline { fill:rgba(241,239,223,.15); stroke:rgba(241,239,223,.92); stroke-width:2.2; stroke-linejoin:round; }
.map-point circle:first-child { fill:var(--lime); stroke:rgba(241,239,223,.9); stroke-width:2; }
.map-point-core { fill:var(--forest); }
.map-point text { fill:var(--white); font-family:var(--font-sans); font-size:13px; font-weight:500; paint-order:stroke; stroke:rgba(15,43,31,.5); stroke-width:3px; stroke-linejoin:round; }
.map-point .map-caption { fill:var(--lime); font-size:8px; letter-spacing:.12em; }
.map-point--saintclar circle:first-child { r:14px; }
.map-note { margin:10px 0 0; color:rgba(255,255,255,.8); font-size:11px; text-align:center; }
.contact-section { scroll-margin-top:90px; padding:clamp(48px,7vw,88px) 12px; background:var(--bone); }
.contact-inner { width:100%; margin:0 auto; }
.contact-heading { max-width:1000px; margin-bottom:48px; }
.contact-heading > p { margin:0 0 20px; color:#536457; font-size:14px; font-weight:500; letter-spacing:.12em; line-height:1.4; }
.contact-heading h2 { margin:0; font-family:var(--font-display); font-size:clamp(58px,6.5vw,84px); font-weight:300; line-height:.98; letter-spacing:-.025em; }
.contact-details { display:grid; grid-auto-rows:1fr; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.contact-details > div { min-height:180px; padding:24px; border-radius:20px; background:#fff; }
.contact-details span { display:block; margin-bottom:14px; color:#536457; font-size:13px; font-weight:500; letter-spacing:.12em; text-transform:uppercase; }
.contact-details a, .contact-details address, .contact-details p { margin:0; font-size:18px; line-height:1.5; font-style:normal; overflow-wrap:anywhere; }
.contact-details a { display:block; text-decoration:underline; text-decoration-color:#c3cda7; text-underline-offset:4px; }
.next-step { display: flex; justify-content: space-between; gap: 16px; padding: 18px clamp(22px, 4vw, 60px); color: #596153; font-size: 10px; }
.next-step span:first-child { letter-spacing: .11em; }

@keyframes arrive { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; } .story-row.has-reveal img, .story-row.has-reveal .story-copy { opacity: 1; clip-path: none; transform: none; } }

@media (max-width: 820px) {
  .masthead { top: 26px; right: 10px; left: 10px; height: 68px; padding-inline: 20px; }
  .masthead.is-fixed { right: 0; left: 0; height: 68px; }
  .nav-left, .team-link { display: none; }
  .nav-right { gap: 10px; }
  .contact-pill { display: none; }
  .wordmark { grid-column: 1; grid-row: 1; justify-self: start; }
  .nav-right { grid-column: 3; grid-row: 1; }
  .menu-toggle { display: grid; place-content: center; gap: 5px; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; background: transparent; color: white; }
  .menu-toggle span { display: block; width: 16px; height: 1px; background: currentColor; }
  .mobile-menu:not([hidden]) { position: fixed; z-index: 10; top: 94px; right: 10px; left: 10px; display: grid; padding: 20px 24px 28px; border-radius: 0 0 18px 18px; background: var(--forest); color: white; }
  .mobile-menu a { display: flex; justify-content: space-between; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(255,255,255,.18); font-family: var(--font-display); font-size: 25px; }
  .hero { top:36px; height:calc(100svh - 46px); min-height:620px; }
  .hero-video { object-position: 48% center; }
  .hero-copy { padding-block: 74px 102px; }
  .hero h1 { font-size: clamp(56px, 11vw, 78px); }
  .finale-title { font-size: clamp(56px, 11vw, 78px); }
  .hero-eyebrow { max-width: 330px; margin-inline: auto; line-height: 1.5; }
  .field-stories { padding:28px 10px 58px; }
  .stories-heading { margin-bottom:16px; padding:30px 0; }
  .story-row, .story-row--reverse { grid-template-columns:1fr; gap:12px; margin-bottom:18px; }
  .story-row--reverse img, .story-row--reverse .story-copy { grid-column: 1; grid-row: auto; }
  .story-row img { height:auto; min-height:0; aspect-ratio:1.35; }
  .story-copy { padding:30px 24px 34px; }
  .story-copy h3 { max-width: 16ch; font-size: clamp(38px, 8vw, 50px); }
  .story-copy > p:last-child { font-size: 15px; }
  .partner-benefits { margin-top:42px; padding:30px 0; }
  .partner-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .partner-grid article { min-height:175px; }
  .impact-strip { grid-template-columns:1fr; }
  .impact-strip > div { min-height:250px; }
  .contact-section { padding-inline:10px; }
  .contact-details { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-details > div { min-height:140px; padding:20px; }
  .sites-map { min-height:0; }
  .sites-map { margin-inline:10px; }
  .sites-map-shade { background:rgba(15,43,31,.66); }
  .sites-map-content { grid-template-columns:1fr; gap:26px; width:100%; min-height:0; padding:64px 0; }
  .sites-heading { padding-inline:18px; }
  .sites-heading h2 { font-size:clamp(46px,10vw,64px); }
  .gers-map-wrap { width:min(100%,430px); }
}
@media (max-width: 480px) {
  .announcement { font-size: 12px; }
  .announcement-wide { display: none; }
  .announcement-small { display: inline; }
  .hero { min-height: max(620px, calc(100svh - 46px)); margin:8px; border-radius:17px; }
  .hero-video { object-position: 44% center; }
  .hero-wash { background: linear-gradient(180deg, rgba(7, 38, 29, .48), rgba(12, 30, 22, .08) 22%, rgba(12, 30, 22, .25) 38%, rgba(12, 30, 22, .64)); }
  .hero-copy { width: calc(100% - 36px); padding-block: 82px 112px; }
  .hero h1 { font-size: clamp(50px, 13vw, 62px); }
  .finale-title { font-size: clamp(50px, 13vw, 62px); }
  .hero-actions { gap: 9px; margin-top: 24px; }
  .pill { min-height:44px; padding:9px 17px; font-size:13px; }
  .stories-heading h2 { font-size:42px; }
  .stories-heading > span { font-size:14px; }
  .partner-grid { grid-template-columns:1fr; }
  .contact-details { grid-template-columns:1fr; }
  .contact-details > div { min-height:150px; padding:18px; }
  .contact-details p { font-size:18px; }
  .partner-grid article { min-height:145px; }
  .impact-strip strong { font-size:clamp(84px,28vw,112px); }
  .next-step { flex-direction: column; gap: 7px; font-size: 9px; }
  .sites-map-content { width:100%; padding:54px 0; }
  .gers-map-wrap { width:100%; }
  .map-point text { font-size:15px; }
}
