/* ===========================================================================
   FutrGC — Evergreen.
   Rebuilt 27 August 2026 to the design in _MOCKUPS-2026-08 (rebuild 3,
   26 Aug). Replaces the previous stylesheet wholesale rather than layering
   over it, so the site is the mock-up's design rather than a hybrid of two.

   Two rules this file must never break:
   1. Every style lives here. The site's own CSP sets style-src 'self', so an
      inline <style> block or a style="" attribute is silently dropped. That is
      exactly the bug that left the passcode gate open for weeks.
   2. Fonts are self-hosted. font-src 'self' means Google Fonts will not load.
   =========================================================================== */

/* --- 1. Fonts, self-hosted ------------------------------------------------ */
@font-face{font-family:'Poppins';src:url('../fonts/poppins-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/poppins-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Poppins';src:url('../fonts/poppins-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('../fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

/* --- 2. Tokens ------------------------------------------------------------ */
:root{
  --bone:#F5F3EE; --white:#FFFFFF; --paper:#FFFFFF;
  --forest:#1F4D3A; --forest-2:#173A2C; --deep:#14241C;
  --leaf:#46C988; --leaf-deep:#29774C; --leaf-soft:rgba(70,201,136,.12);
  --sage:#EAF3EC; --sage-2:#E2EEE6;
  --ink:#12211A; --muted:#5A6B5F; --line:#E5E6DF;
  --on-dark:#CFE0D2; --on-dark-soft:rgba(245,243,238,.72); --line-dark:rgba(245,243,238,.14);

  --t1:clamp(2.15rem,5.6vw,68px);
  --t2:clamp(1.7rem,3.4vw,42px);
  --t3:28px; --t4:21px; --t5:20px; --t6:17px; --t7:15px; --t8:12px; --t9:11px;

  --sans:'Poppins',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;

  --radius:16px; --radius-sm:12px; --maxw:1180px;
  --sec-y:76px;
  --ease:cubic-bezier(.4,0,.2,1);
}

/* --- 3. Reset and base ---------------------------------------------------- */
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bone);color:var(--ink);font-family:var(--sans);font-weight:400;
     font-size:var(--t6);line-height:1.64;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4,h5{font-family:var(--sans);font-weight:700;line-height:1.17;letter-spacing:-.02em;color:var(--ink)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
ul,ol{list-style:none}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--leaf);outline-offset:3px;border-radius:4px}

.container{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,32px);width:100%}
.skip{position:absolute;left:-9999px;top:0;background:var(--forest);color:var(--bone);
      padding:12px 20px;border-radius:0 0 var(--radius-sm) 0;font-size:var(--t7);font-weight:600;z-index:200}
.skip:focus{left:0}

/* --- 4. Type -------------------------------------------------------------- */
.d1{font-size:var(--t1);max-width:17ch}
.d2{font-size:var(--t2);max-width:22ch}
.h2{font-size:var(--t2);max-width:24ch}
.h3{font-size:var(--t3);max-width:20ch}
.eyebrow{display:block;font-size:var(--t8);font-weight:600;letter-spacing:.18em;
         text-transform:uppercase;color:var(--leaf-deep)}
.lead{font-size:var(--t5);color:var(--muted);line-height:1.55}
.lead--wide{max-width:58ch}
.sm{font-size:var(--t7);line-height:1.6}
.muted{color:var(--muted)}
.measure{max-width:62ch}
.measure-sm{max-width:48ch}
.rule{height:1px;background:var(--line);border:0;margin:var(--t3) 0}

.prose p{font-size:var(--t7);color:var(--muted);line-height:1.68;margin-bottom:14px}
.prose p:last-child{margin-bottom:0}
.prose strong{color:var(--ink);font-weight:600}
.prose ul{margin:0 0 14px}
.prose li{font-size:var(--t7);color:var(--muted);line-height:1.68;padding-left:20px;position:relative;margin-bottom:9px}
.prose li::before{content:'';position:absolute;left:0;top:.62em;width:7px;height:7px;
                  border-radius:50%;background:var(--leaf)}

.mt-6{margin-top:16px}.mt-8{margin-top:22px}.mt-12{margin-top:34px}.mt-16{margin-top:44px}

/* --- 5. Buttons and links ------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:var(--t7);
     border-radius:999px;padding:13px 24px;cursor:pointer;border:1px solid transparent;
     transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}
.btn--primary{background:var(--forest);color:#fff}
.btn--primary:hover{background:var(--forest-2)}
.btn--sm{padding:10px 20px}
.btn--ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn--ghost:hover{border-color:var(--forest);color:var(--forest)}

.link{display:inline-block;font-size:var(--t7);font-weight:600;letter-spacing:.05em;
      color:var(--leaf-deep);border-bottom:1px solid var(--sage-2);padding-bottom:5px;
      transition:border-color .2s var(--ease)}
.link:hover{border-color:var(--leaf)}
.link__arrow{display:inline-block;transition:transform .2s var(--ease);margin-left:5px}
.link:hover .link__arrow{transform:translateX(3px)}

/* --- 6. Header ------------------------------------------------------------ */
.site-header{position:sticky;top:0;z-index:60;background:rgba(245,243,238,.88);
             backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);
             border-bottom:1px solid var(--line)}
.site-header__inner{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.wordmark{display:inline-flex;align-items:baseline;font-weight:700;font-size:var(--t4);
          line-height:1;letter-spacing:-.02em;color:var(--forest);white-space:nowrap}
.wordmark span{color:var(--leaf-deep)}
.nav__list{display:flex;gap:28px;align-items:center}
.nav__link{font-size:var(--t7);font-weight:500;color:var(--muted);white-space:nowrap;
           transition:color .2s var(--ease)}
.nav__link:hover{color:var(--ink)}
.nav__link[aria-current="page"]{color:var(--forest);font-weight:600}
.nav__cta .btn{color:#fff}
.nav-toggle{display:none;background:transparent;border:1px solid var(--line);border-radius:999px;
            height:42px;padding:0 18px;gap:11px;align-items:center;justify-content:center;
            cursor:pointer;font-size:var(--t7);font-weight:600;color:var(--ink)}
.nav-toggle__bars,.nav-toggle__bars::before,.nav-toggle__bars::after{
  display:block;width:17px;height:2px;background:var(--ink);border-radius:2px;position:relative;flex:0 0 auto}
.nav-toggle__bars::before,.nav-toggle__bars::after{content:'';position:absolute;left:0}
.nav-toggle__bars::before{top:-6px}.nav-toggle__bars::after{top:6px}

@media(max-width:900px){
  .nav-toggle{display:inline-flex}
  .nav{position:absolute;left:0;right:0;top:76px;background:var(--bone);
       border-bottom:1px solid var(--line);padding:18px clamp(20px,5vw,32px) 26px;display:none}
  .nav.is-open{display:block}
  .nav__list{flex-direction:column;align-items:flex-start;gap:16px}
  .nav__link{font-size:var(--t6)}
}

/* --- 7. Hero -------------------------------------------------------------- */
.hero{background:var(--forest);color:var(--bone);padding:84px 0 72px;position:relative;overflow:hidden}
.hero .eyebrow{color:var(--leaf)}
.hero h1,.hero .d1,.hero .d2{color:var(--bone)}
.hero__inner{position:relative;z-index:2}
.hero__body{margin-top:18px}
.hero .lead{color:var(--on-dark);max-width:56ch}
.hero .link{color:var(--leaf);border-color:rgba(70,201,136,.4)}
.hero .link:hover{border-color:var(--leaf)}
.hero .btn--primary{background:var(--leaf);color:var(--deep)}
.hero .btn--primary:hover{background:#3ab87a}
.hero__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px;align-items:center}
.hero__meta{margin-top:22px;font-size:var(--t7);color:var(--on-dark-soft);display:flex;
            gap:22px;flex-wrap:wrap}
@media(max-width:820px){.hero{padding:58px 0 52px}}

/* The contour surveys are drawn forest-on-bone, so they disappear against a
   forest band. The mock-up's hero is a flat colour field; that is what this is.
   The drawings keep their place inside the cards below, where they read. */
.hero__contours{display:none}

/* --- 8. Sections ---------------------------------------------------------- */
.section{padding:var(--sec-y) 0}
.section + .section{border-top:1px solid var(--line)}
.section--paper{background:var(--sage);border-top:1px solid var(--sage-2);border-bottom:1px solid var(--sage-2)}
.section--paper + .section{border-top:0}
.section--dark{background:var(--deep);color:var(--bone);border-top:0}
.section--dark + .section{border-top:0}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark .d1,.section--dark .d2,.section--dark .h2,.section--dark .h3{color:var(--bone)}
.section--dark .eyebrow{color:var(--leaf)}
.section--dark .lead,.section--dark .prose p,.section--dark .prose li,.section--dark .sm{color:var(--on-dark)}
.section--dark .link{color:var(--leaf);border-color:rgba(70,201,136,.4)}
.section--dark .btn--primary{background:var(--leaf);color:var(--deep)}
.section--dark .btn--primary:hover{background:#3ab87a}
.section--dark .rule{background:var(--line-dark)}

/* .band is a full-bleed photograph, edge to edge, with its caption under it. */
.band{margin:0;background:var(--forest-2)}
.band img{width:100%;height:auto;max-height:30rem;object-fit:cover;display:block}
.band figcaption{font-family:var(--mono);font-size:var(--t9);letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);background:var(--bone);
  padding:14px clamp(20px,5vw,32px);text-align:center;line-height:1.5;
  border-bottom:1px solid var(--line)}

/* --- 9. Split layout ------------------------------------------------------ */
.split{display:grid;grid-template-columns:minmax(150px,.5fr) 1.5fr;gap:clamp(28px,5vw,56px);align-items:start}
.split--wide-left{grid-template-columns:1.5fr minmax(150px,.62fr)}
.split--photo{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,56px);align-items:center}
.split.is-reversed .split__aside{order:2}
.split--photo.is-reversed > *:first-child{order:2}
@media(max-width:900px){
  .split,.split--wide-left,.split--photo{grid-template-columns:1fr;gap:28px}
  .split.is-reversed .split__aside{order:0}
  .split--photo.is-reversed > *:first-child{order:0}
}

/* --- 10. Cards ------------------------------------------------------------ */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:960px){.grid-3{grid-template-columns:1fr}}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
@media(max-width:960px){.grid-2{grid-template-columns:1fr}}

.card{background:var(--white);border:1px solid var(--line);border-left:4px solid var(--leaf);
      border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;
      transition:border-color .2s var(--ease),transform .2s var(--ease)}
.card:hover{border-color:rgba(31,77,58,.34);border-left-color:var(--leaf)}
a.card:hover{transform:translateY(-2px)}
.card--flat{border-left-width:1px;border-left-color:var(--line)}
.card__eyebrow{padding:26px 26px 0;margin-bottom:9px}
.card__format{padding:0 26px;margin-bottom:9px}
.eyebrow--series{font-size:var(--t6);margin-bottom:9px}
.card__title{padding:0 26px;margin-bottom:11px}
.card__body{padding:0 26px;flex:1}
.card__foot{padding:18px 26px 26px;margin-top:auto}
.card__visual{height:184px;flex:0 0 184px;background-color:var(--forest-2);background-size:cover;
              background-position:center;border-bottom:1px solid var(--line)}
.card__photo{border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0;
             height:184px;flex:0 0 184px;overflow:hidden}
.card__photo img{height:184px;width:100%;object-fit:cover;aspect-ratio:auto}
/* A card that is a published rule: no eyebrow, no foot, so it supplies its own
   top and bottom padding. Used for the three standards on About. */
.card--rule .card__title{padding-top:26px}
.card--rule .card__body{padding-bottom:26px}
.card--rule .card__title{font-size:var(--t5);line-height:1.28}
.section--dark .card{background:var(--forest-2);border-color:rgba(245,243,238,.12)}
.section--dark .card .card__title{color:var(--bone)}
.section--dark .card .prose p{color:var(--on-dark)}

/* --- 11. Facts ------------------------------------------------------------ */
.facts{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.fact{display:flex;justify-content:space-between;gap:18px;padding:14px 20px;
      border-bottom:1px solid var(--line);font-size:var(--t7);align-items:baseline}
.fact:last-child{border-bottom:none}
.fact__k{font-size:var(--t9);font-weight:600;letter-spacing:.1em;text-transform:uppercase;
         color:var(--muted);flex:0 0 auto}
.fact__v{text-align:right;color:var(--ink);font-weight:600;margin-left:auto}
.fact__note{text-align:right;color:var(--muted);font-size:var(--t7);flex:1 1 auto;
            padding-left:14px;min-width:0}
.fact__v + .fact__note{flex:0 1 auto}
.section--dark .facts{background:var(--forest-2);border-color:rgba(245,243,238,.12)}
.section--dark .fact{border-color:rgba(245,243,238,.1)}
.section--dark .fact__v{color:var(--bone)}
.section--dark .fact__k,.section--dark .fact__note{color:var(--on-dark-soft)}

/* --- 12. Steps ------------------------------------------------------------ */
.steps{display:grid;gap:2px;background:var(--line);border:1px solid var(--line);
       border-radius:var(--radius-sm);overflow:hidden}
.step{background:var(--white);padding:22px 24px;display:grid;
      grid-template-columns:auto 1fr;gap:6px 18px;align-items:baseline}
.step__n{font-family:var(--mono);font-size:var(--t9);letter-spacing:.12em;color:var(--leaf-deep);
         grid-row:1/3;padding-top:4px}
.step__t{font-size:var(--t4);font-weight:700;line-height:1.3}
.step__d{font-size:var(--t7);color:var(--muted);line-height:1.65}
.section--dark .steps{background:rgba(245,243,238,.12);border-color:rgba(245,243,238,.12)}
.section--dark .step{background:var(--forest-2)}
.section--dark .step__t{color:var(--bone)}
.section--dark .step__d{color:var(--on-dark)}

/* --- 13. Photography and frames ------------------------------------------- */
.shot{position:relative;margin:0;border:1px solid var(--line);border-radius:var(--radius);
      overflow:hidden;background:var(--bone)}
.shot img{width:100%;height:100%;object-fit:cover;aspect-ratio:3/2}
.shot--wide img{aspect-ratio:16/9}
.shot--tall{max-width:30rem}
.shot--tall img{aspect-ratio:4/5}
.shot figcaption{font-family:var(--mono);font-size:var(--t9);line-height:1.5;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);padding:12px 14px;background:var(--white);
  border-top:1px solid var(--line)}
.shot__cap{font-family:var(--mono);font-size:var(--t9);line-height:1.5;letter-spacing:.1em;
           text-transform:uppercase;color:var(--muted);padding:12px 0 0}

.frame{position:relative;border:1px solid var(--line);border-radius:var(--radius);
       background:var(--forest-2);aspect-ratio:3/2;display:flex;align-items:flex-end;overflow:hidden}
.frame--tall{aspect-ratio:4/5;min-height:20rem}
.frame__cap{font-family:var(--mono);font-size:var(--t9);line-height:1.4;text-transform:uppercase;
            letter-spacing:.12em;color:rgba(245,243,238,.62);padding:18px;position:relative;z-index:2}

/* --- 14. Contour drawings, redrawn dark to match the mock-up -------------- */
/* Forest-2 ground with leaf line work, the same idiom as the mock-up's panels.
   Inlined as data URIs because the deploy script serves .svg files correctly
   now, but a single request is still cheaper than four. */
.contour--table{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 220' preserveAspectRatio='xMidYMid slice'%3E%3Crect width='300' height='220' fill='%23173A2C'/%3E%3Cg fill='none' stroke='%2346C988' stroke-opacity='0.5' stroke-width='1'%3E%3Cellipse cx='150' cy='118' rx='108' ry='46'/%3E%3Cellipse cx='150' cy='118' rx='76' ry='32'/%3E%3Cellipse cx='150' cy='118' rx='44' ry='19'/%3E%3C/g%3E%3Cg fill='%2346C988' fill-opacity='0.85'%3E%3Ccircle cx='150' cy='72' r='3.4'/%3E%3Ccircle cx='216' cy='86' r='3.4'/%3E%3Ccircle cx='242' cy='118' r='3.4'/%3E%3Ccircle cx='216' cy='150' r='3.4'/%3E%3Ccircle cx='150' cy='164' r='3.4'/%3E%3Ccircle cx='84' cy='150' r='3.4'/%3E%3Ccircle cx='58' cy='118' r='3.4'/%3E%3Ccircle cx='84' cy='86' r='3.4'/%3E%3C/g%3E%3C/svg%3E")}
.contour--table-quiet{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 220' preserveAspectRatio='xMidYMid slice'%3E%3Crect width='300' height='220' fill='%23173A2C'/%3E%3Cg fill='none' stroke='%2346C988' stroke-opacity='0.32' stroke-width='1'%3E%3Cellipse cx='150' cy='118' rx='108' ry='46'/%3E%3Cellipse cx='150' cy='118' rx='76' ry='32'/%3E%3C/g%3E%3C/svg%3E")}
.contour--golf{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 220' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%231F4D3A'/%3E%3Cstop offset='1' stop-color='%230e1f17'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='300' height='220' fill='url(%23g)'/%3E%3Cpath d='M0 168 C 60 148, 110 176, 160 156 S 250 132, 300 150 L 300 220 L 0 220 Z' fill='%23173A2C'/%3E%3Cpath d='M0 190 C 70 176, 140 200, 210 182 S 260 172, 300 186 L 300 220 L 0 220 Z' fill='%2314241C'/%3E%3Cg fill='%2346C988' fill-opacity='0.7'%3E%3Ccircle cx='96' cy='112' r='3'/%3E%3Ccircle cx='118' cy='98' r='3'/%3E%3Ccircle cx='140' cy='112' r='3'/%3E%3Ccircle cx='118' cy='126' r='3'/%3E%3C/g%3E%3C/svg%3E")}
.contour--andes{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 220' preserveAspectRatio='xMidYMid slice'%3E%3Cdefs%3E%3ClinearGradient id='m' x1='0' y1='0' x2='0' y2='1'%3E%3Cstop offset='0' stop-color='%2329774C'/%3E%3Cstop offset='0.55' stop-color='%23173A2C'/%3E%3Cstop offset='1' stop-color='%230e1f17'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='300' height='220' fill='url(%23m)'/%3E%3Cpath d='M0 150 L 55 92 L 90 122 L 140 60 L 190 128 L 230 96 L 300 150 L 300 220 L 0 220 Z' fill='%2314241C' fill-opacity='0.92'/%3E%3Cpath d='M0 172 L 70 122 L 112 150 L 155 100 L 205 156 L 245 128 L 300 172 L 300 220 L 0 220 Z' fill='%2312211A'/%3E%3Ccircle cx='140' cy='60' r='3.4' fill='%23F5F3EE' fill-opacity='0.9'/%3E%3C/svg%3E")}
.frame.contour--andes,.frame.contour--golf,.frame.contour--table,
.frame--tall.contour--andes,.frame--tall.contour--golf{background-size:cover;background-position:center}

/* --- 15. Forms ------------------------------------------------------------ */
.form{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(24px,4vw,34px)}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form__row{display:flex;flex-direction:column;gap:7px}
.form__row--full{grid-column:1/-1}
@media(max-width:720px){.form__grid{grid-template-columns:1fr}}
.field__label{font-size:var(--t9);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.field__input{width:100%;background:var(--bone);border:1px solid var(--line);border-radius:10px;
              padding:12px 14px;font-size:var(--t7);transition:border-color .2s var(--ease)}
.field__input:focus{border-color:var(--leaf);outline:none}
textarea.field__input{min-height:120px;resize:vertical}
.form__foot{margin-top:22px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.hidden-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.section--dark .form{background:var(--forest-2);border-color:rgba(245,243,238,.12)}
.section--dark .field__input{background:rgba(0,0,0,.18);border-color:rgba(245,243,238,.18);color:var(--bone)}
.section--dark .field__label{color:var(--on-dark-soft)}

/* .field is used both for a form row wrapper and, historically, for the hero
   contour layers. Keep it inert so the two never collide. */
.field{display:block}

/* The closing call to action is a sage band, not another dark one. A dark
   section sitting directly on the forest footer reads as one unbroken mass —
   the mock-up breaks it with sage, and so does this. */
main > .section--dark:last-child{background:var(--sage);color:var(--ink);
  border-top:1px solid var(--sage-2);border-bottom:1px solid var(--sage-2)}
main > .section--dark:last-child h1,main > .section--dark:last-child h2,
main > .section--dark:last-child h3,main > .section--dark:last-child .d1,
main > .section--dark:last-child .d2,main > .section--dark:last-child .h2,
main > .section--dark:last-child .h3{color:var(--forest)}
main > .section--dark:last-child .eyebrow{color:var(--leaf-deep)}
main > .section--dark:last-child .lead,main > .section--dark:last-child .prose p,
main > .section--dark:last-child .prose li,main > .section--dark:last-child .sm{color:var(--muted)}
main > .section--dark:last-child .link{color:var(--leaf-deep);border-color:var(--sage-2)}
main > .section--dark:last-child .btn--primary{background:var(--forest);color:#fff}
main > .section--dark:last-child .btn--primary:hover{background:var(--forest-2)}
main > .section--dark:last-child .facts{background:var(--white);border-color:var(--line)}
main > .section--dark:last-child .fact{border-color:var(--line)}
main > .section--dark:last-child .fact__v{color:var(--ink)}
main > .section--dark:last-child .fact__k,main > .section--dark:last-child .fact__note{color:var(--muted)}
main > .section--dark:last-child .form{background:var(--white);border-color:var(--line)}
main > .section--dark:last-child .field__input{background:var(--bone);border-color:var(--line);color:var(--ink)}
main > .section--dark:last-child .field__label{color:var(--muted)}
main > .section--dark:last-child .frame{background:var(--forest-2)}
main > .section--dark:last-child .steps{background:var(--line);border-color:var(--line)}
main > .section--dark:last-child .step{background:var(--white)}
main > .section--dark:last-child .step__t{color:var(--ink)}
main > .section--dark:last-child .step__d{color:var(--muted)}

/* --- 16. Footer ----------------------------------------------------------- */
.site-footer{background:var(--forest-2);color:var(--bone);padding:0 0 38px;margin-top:0}
.site-footer::before{content:'';display:block;height:44px;
  background-image:radial-gradient(circle at 5px 50%,var(--leaf) 0 3.2px,transparent 3.4px);
  background-size:19px 100%;background-repeat:repeat-x;background-position:center;
  opacity:.5;border-bottom:1px solid var(--line-dark)}
.site-footer .wordmark{color:var(--bone)}
.site-footer .wordmark span{color:var(--leaf)}
.site-footer__top{display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap;padding-top:40px}
.site-footer__line{font-size:var(--t7);color:var(--on-dark-soft);max-width:32ch;line-height:1.66}
.site-footer__nav{display:flex;flex-direction:column;gap:9px}
.site-footer__nav a{font-size:var(--t7);color:var(--on-dark-soft);transition:color .2s var(--ease)}
.site-footer__nav a:hover{color:var(--bone)}
.site-footer__clause{margin-top:34px;padding-top:20px;border-top:1px solid var(--line-dark);
                     font-size:var(--t7);color:var(--on-dark-soft);max-width:70ch;line-height:1.66}
.site-footer__bottom{margin-top:18px;display:flex;justify-content:space-between;gap:16px;
                     flex-wrap:wrap;font-size:var(--t9);color:rgba(245,243,238,.6)}


/* --- 17. Sticky call to action ------------------------------------------- */
.sticky-cta{position:fixed;right:20px;bottom:20px;z-index:55;display:none}
.sticky-cta .btn{box-shadow:0 10px 30px rgba(18,33,26,.22)}
@media(max-width:900px){.sticky-cta{display:block}}

/* --- 18. Print ------------------------------------------------------------ */
@media print{
  .site-header,.sticky-cta,.skip,.hero__actions{display:none}
  .hero{background:none;color:var(--ink)}
  .hero h1,.hero .d1{color:var(--ink)}
  body{background:#fff}
}

/* --- 19. Reduced motion --------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* --- 20. Deck composition ------------------------------------------------- */
/* Added 28 August 2026: carries the pitch decks' composition onto the event
   pages. Photography behind a heavy scrim, a mono kicker above an oversized
   headline, the timeline strip, and the three-column mission block. Palette
   and type are unchanged — this is composition, not rebranding. */

.hero--shot{padding:0;background:var(--deep)}
.hero--shot .hero__frame{position:relative;isolation:isolate;
  min-height:clamp(26rem,62vh,40rem);display:flex;align-items:flex-end}
.hero--shot .hero__img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;z-index:0}
.hero--shot .hero__scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(12,26,19,.94) 0%,rgba(12,26,19,.86) 34%,
             rgba(12,26,19,.55) 62%,rgba(12,26,19,.34) 100%)}
.hero--shot .hero__inner{position:relative;z-index:2;width:100%;
  padding-top:clamp(56px,9vw,96px);padding-bottom:clamp(40px,6vw,64px)}
.hero--shot .hero__foot{position:relative;z-index:2}
@media(max-width:820px){
  .hero--shot .hero__scrim{background:linear-gradient(180deg,rgba(12,26,19,.72) 0%,rgba(12,26,19,.93) 55%)}
}

.kicker{display:block;font-family:var(--mono);font-size:var(--t9);
  letter-spacing:.24em;text-transform:uppercase;color:var(--leaf-deep);
  margin-bottom:18px}
.hero .kicker,.section--dark .kicker{color:var(--leaf)}

.d0{font-size:clamp(2.6rem,7.2vw,86px);line-height:1.02;letter-spacing:-.022em;
  font-weight:700;max-width:15ch}
.hero .d0{color:var(--bone)}

.stamp{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-family:var(--mono);font-size:var(--t9);letter-spacing:.16em;
  text-transform:uppercase;color:rgba(245,243,238,.62);
  padding:16px 0 22px;border-top:1px solid rgba(245,243,238,.16)}

/* Three-column mission block ---------------------------------------------- */
.mission{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,44px);
  margin-top:clamp(44px,7vw,84px)}
.mission__col{padding-top:20px;border-top:1px solid var(--line)}
.section--dark .mission__col{border-top-color:var(--line-dark)}
.mission__t{font-size:var(--t4);font-weight:700;line-height:1.3;margin-bottom:10px}
.mission__d{font-size:var(--t7);color:var(--muted);line-height:1.68}
.section--dark .mission__d{color:var(--on-dark)}
@media(max-width:900px){.mission{grid-template-columns:1fr;gap:26px}}

/* Timeline strip ----------------------------------------------------------- */
.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;
  margin-top:clamp(36px,5vw,56px)}
.timeline--4{grid-template-columns:repeat(4,1fr)}
.tl{padding:2px 20px 18px;border-left:1px solid var(--line);
  display:flex;flex-direction:column;min-height:14rem}
.tl--open{border-left:2px solid var(--leaf)}
.tl__time{font-family:var(--mono);font-size:var(--t9);letter-spacing:.14em;
  color:var(--leaf-deep);margin-bottom:9px}
.tl__t{font-size:var(--t6);font-weight:700;line-height:1.3;margin-bottom:8px}
.tl__d{font-size:var(--t7);color:var(--muted);line-height:1.62}
.tl__who{margin-top:auto;padding-top:18px;font-family:var(--mono);
  font-size:var(--t9);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.timeline__note{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);
  font-size:var(--t7);color:var(--muted);max-width:62ch;line-height:1.65}
@media(max-width:1000px){
  .timeline,.timeline--4{grid-template-columns:1fr 1fr}
  .tl{min-height:0;padding-bottom:26px}
}
@media(max-width:620px){.timeline,.timeline--4{grid-template-columns:1fr}}

/* Statement band ----------------------------------------------------------- */
.statement{font-size:var(--t2);font-weight:700;line-height:1.16;max-width:20ch}
.section--air{padding:clamp(88px,11vw,148px) 0}
