/* ==========================================================================
   Evidence homepage - Full Elevate brand. Tokens from ../full-elevate/elevate-tokens.css
   Spacing (margin/padding/gap) is on the 4px grid per the brand rule.
   ========================================================================== */
:root{--dur:.18s;}   /* local UI timing (elevate-tokens defines --dur-reveal/--ease-silk) */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{scroll-behavior:auto;}   /* Lenis owns smoothing; CSS smooth conflicts with it */
body{font-family:var(--font-body);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;line-height:1.5;font-variant-numeric:tabular-nums;overflow-x:hidden;}
a{color:inherit;text-decoration:none;}
/* near-invisible copy-variant toggle (review aid) */
.copy-toggle{position:fixed;right:8px;bottom:8px;z-index:200;width:10px;height:10px;padding:0;border:0;border-radius:50%;background:var(--slate-300);opacity:.14;cursor:pointer;transition:opacity .2s ease;}
.copy-toggle:hover{opacity:.5;}
.wrap{max-width:1200px;margin:0 auto;padding:0 var(--space-md);width:100%;}
.eyebrow{font-size:15px;font-weight:600;color:var(--green-700);margin:0 0 16px;letter-spacing:.01em;}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-size:15px;font-weight:600;padding:12px 20px;border:0;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;transition:background var(--dur) ease, transform .15s ease;}
.btn--primary{background:var(--forest);color:var(--lime);}
.btn--primary:hover{background:var(--green-900);}
.btn--tertiary{background:transparent;color:var(--ink);}
.btn--tertiary:hover{background:var(--fill-2);}
.btn--lg{font-size:17px;padding:16px 28px;}

/* ---------- nav ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,0.82);backdrop-filter:saturate(140%) blur(12px);transition:transform .3s var(--ease-silk);}
.nav--hidden{transform:translateY(-100%);}
.nav__in{max-width:1280px;margin:0 auto;padding:16px 28px;display:flex;align-items:center;gap:28px;}
.nav__logo{display:flex;align-items:center;color:var(--forest);}
.nav__logo svg{height:26px;width:auto;display:block;}
.nav__menu{display:flex;align-items:center;gap:8px;}
.nav__item{position:relative;}
.nav__link{display:inline-flex;align-items:center;gap:8px;background:transparent;border:0;font-family:var(--font-body);font-size:15px;font-weight:600;color:var(--ink);padding:8px 16px;border-radius:var(--radius-pill);cursor:pointer;}
.nav__link:hover{background:var(--fill-2);}
.nav__chev{width:15px;height:15px;display:inline-flex;transition:transform var(--dur) ease;}
.nav__chev svg{width:15px;height:15px;}
.nav__item.is-open .nav__chev{transform:rotate(180deg);}
.nav__right{margin-left:auto;display:flex;align-items:center;gap:16px;}
.nav__login{font-size:15px;font-weight:600;color:var(--ink);padding:8px 16px;border-radius:var(--radius-pill);}
.nav__login:hover{background:var(--fill-2);}

/* mega-menus */
.mega{position:absolute;top:calc(100% + 12px);left:0;background:#fff;border-radius:var(--radius-card);padding:16px;box-shadow:0 18px 50px rgba(15,23,42,0.13);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--dur) ease, transform var(--dur) ease, visibility var(--dur);z-index:60;}
.nav__item.is-open .mega{opacity:1;visibility:visible;transform:none;}
.mega--products{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:620px;}
.ptile{display:flex;gap:16px;align-items:flex-start;padding:16px;border-radius:var(--radius-input);transition:background var(--dur) ease;}
.ptile:hover{background:var(--fill-1);}
.ptile__ic{flex:none;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--lime-300);color:var(--forest);}
.ptile__ic svg{width:16px;height:16px;}
.ptile__ic--a{background:var(--lime-300);color:var(--forest);}
.ptile__ic--b{background:var(--blueberry);color:var(--blueberry-companion);}
.ptile__ic--c{background:var(--grapefruit);color:var(--grapefruit-companion);}
.ptile__ic--d{background:var(--lemon);color:var(--lemon-companion);}
.ptile__b{display:flex;flex-direction:column;gap:4px;}
.ptile__t{font-size:16px;font-weight:700;color:var(--ink);font-family:var(--font-display);letter-spacing:-.01em;}
.ptile__d{font-size:14px;color:var(--slate-600);line-height:1.4;}
.mega--res{display:flex;flex-direction:column;gap:4px;width:380px;}
.rrow{display:flex;gap:16px;align-items:flex-start;padding:16px;border-radius:var(--radius-input);transition:background var(--dur) ease;}
.rrow:hover{background:var(--fill-1);}
.rrow__ic{flex:none;width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:var(--lime-100);color:var(--forest);}
.rrow__ic svg{width:18px;height:18px;}
.rrow__b{display:flex;flex-direction:column;gap:2px;}
.rrow__t{font-size:15px;font-weight:700;color:var(--ink);}
.rrow__d{font-size:14px;color:var(--slate-600);line-height:1.4;}

/* ---------- hero ---------- */
.field{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;transition:opacity .5s ease;}
.field--dim{opacity:0;}
.field--front{z-index:3;}   /* the big FIRE dot + globe render here, in front of the slides */
/* dark-green backdrop for the globe section (technical = dark mode); fades in/out with the globe */
.darkbg{position:fixed;inset:0;z-index:2;background:var(--surface-dark);opacity:0;pointer-events:none;}
/* no z-index on .story, so its positioned children compete with the front canvas (z3):
   slides sit at z1 (behind the globe), the globe copy at z5 (in front of the globe). */
.story{position:relative;}
.beat{position:relative;min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:72px 24px;}
.beat__scrim{position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(46% 40% at 50% 42%, rgba(255,255,255,0.74) 0%, rgba(255,255,255,0.32) 52%, rgba(255,255,255,0) 74%);}
.beat__scrim--scan{background:radial-gradient(50% 44% at 50% 46%, rgba(255,255,255,0.80) 0%, rgba(255,255,255,0.40) 52%, rgba(255,255,255,0) 76%);}
.beat--hero{min-height:100vh;}   /* hero owns the first screen - next copy stays below the fold */
.hero__copy{position:relative;z-index:1;max-width:880px;}
/* funky warranty seal */
.seal{position:relative;margin:0 auto 24px;width:138px;height:138px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:var(--lime);background:radial-gradient(120% 120% at 50% 12%, #064a23 0%, var(--forest) 58%);box-shadow:0 22px 46px -14px rgba(0,46,17,0.6),0 4px 14px rgba(0,46,17,0.22),inset 0 0 0 1.5px rgba(134,239,172,0.55);}
.seal::before{content:"";position:absolute;inset:8px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(134,239,172,0.26);}
.seal__up{font-size:14px;font-weight:600;color:var(--lime-300);letter-spacing:.01em;}
.seal__big{font-family:var(--font-display);font-weight:700;font-size:46px;line-height:0.95;letter-spacing:-0.02em;color:var(--lime);}
.seal__sub{font-size:14px;font-weight:600;color:var(--lime-300);letter-spacing:.05em;}
@media(max-width:880px){.seal{width:124px;height:124px;}.seal__big{font-size:42px;}}
.hero__h{font-family:var(--font-display);font-weight:700;font-size:clamp(44px,7vw,92px);line-height:1.02;letter-spacing:-0.035em;color:var(--ink);margin:0;text-shadow:0 2px 22px rgba(255,255,255,0.95),0 0 8px rgba(255,255,255,0.9);}
.hero__sub{font-size:20px;line-height:1.55;color:var(--ink);max-width:30em;margin:24px auto 0;text-shadow:0 1px 14px rgba(255,255,255,0.95);}
.hero__lead{font-size:24px;line-height:1.5;color:var(--ink);max-width:34em;margin:24px auto 0;text-shadow:0 1px 14px rgba(255,255,255,0.95);}
.hero__qs{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 16px;max-width:42em;margin:16px auto 0;}
.hero__amp{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--ink);}
.hl{background:var(--lime-300);color:var(--forest);font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1.3;border-radius:7px;padding:4px 12px;text-shadow:none;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
.hl--grape{background:var(--grapefruit);color:var(--grapefruit-companion);}
.hero__cta{display:flex;gap:16px;justify-content:center;margin-top:36px;flex-wrap:wrap;}
/* ===== Beat 2: the FIREs slide ===== */
.beat--scan{min-height:140vh;}
.fires{position:relative;z-index:1;width:100%;max-width:1040px;margin:0 auto;text-align:center;}
.fires__h{font-family:var(--font-display);font-weight:700;font-size:clamp(48px,7vw,96px);line-height:1;letter-spacing:-0.04em;color:var(--ink);margin:0;}
.fires__sub{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,3vw,40px);line-height:1.1;letter-spacing:-0.02em;color:var(--ink);margin:8px 0 0;}
.fires__box{position:relative;background:var(--lime-300);border-radius:var(--radius-card);margin:32px auto 0;padding:28px;text-align:left;}
.fires__panel{position:relative;background:rgba(255,255,255,0.30);border-radius:20px;height:428px;padding:48px 0;}
/* the floating stat cards (Iteration-2 lime cards). Drop shadow is the agreed exception
   to the no-shadow rule for this hero moment: X0 Y25 blur50 spread-12 #002E11 @24% */
.fires__card{position:absolute;width:300px;box-shadow:0 25px 50px -12px rgba(0,46,17,0.24);}
/* desktop overlap: FRE is the raised front card (title clear); positions swapped vs the
   DOM order, which stays FRE-first so the stacked mobile view lists FRE first. */
.fires__card--fre{top:48px;left:50%;transform:translateX(-50%);z-index:4;}   /* centre, on top */
.fires__card--aff{top:152px;left:9%;z-index:2;}    /* side cards symmetric (9% each) so the trio centres */
.fires__card--fin{top:152px;right:9%;z-index:2;}
.fires__feats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px;padding:24px;}
.feat{text-align:left;}
.feat__ic{display:inline-flex;width:32px;height:32px;border-radius:12px;background:var(--forest);color:var(--lime-100);align-items:center;justify-content:center;margin-bottom:12px;}
.feat__ic svg{width:28px;height:28px;stroke-width:2.6;}
.feat h3{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-0.01em;color:var(--forest);margin:0 0 8px;}
.feat p{font-size:15px;line-height:1.5;color:var(--forest);margin:0;}
@media(max-width:880px){
  .fires__panel{height:auto;display:flex;flex-direction:column;gap:16px;background:transparent;}
  .fires__card{position:static;width:auto;transform:none;}
  .fires__feats{grid-template-columns:1fr;}
}

/* ===== stat cards (ported from the App showcase) ===== */
.w{border-radius:var(--radius-card);padding:24px;display:flex;flex-direction:column;}
.w--card{background:#fff;}
.w__head{display:flex;align-items:flex-start;gap:8px;margin-bottom:24px;}
.w__name{font-size:16px;font-weight:600;line-height:1.25;color:var(--slate-600);margin-right:auto;}
.w__ic{flex:none;width:20px;height:20px;color:var(--slate-500);display:inline-flex;}
.w__ic svg{width:20px;height:20px;}
.w__num{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,4vw,56px);line-height:1;letter-spacing:-0.03em;color:var(--ink);font-variant-numeric:tabular-nums;display:flex;align-items:flex-start;}
.w__cur{font-size:0.46em;font-weight:700;margin-right:0.06em;margin-top:0.16em;}
.w__sub{font-size:14px;color:var(--slate-500);margin-top:12px;}
.w__foot{font-size:14px;line-height:1.4;color:var(--slate-600);margin-top:12px;}
.w__foot strong{color:var(--ink);font-weight:700;}
.w__foot .pos{color:var(--green-700);font-weight:700;}
.it2 .w__ic{width:32px;height:32px;border-radius:12px;background:var(--lime-100);color:var(--forest);align-items:center;justify-content:center;}
.it2 .w__ic svg{width:28px;height:28px;stroke-width:2.6;}
.w__demo{font-size:14px;font-weight:600;line-height:1.2;color:var(--lemon-companion);background:var(--lemon);padding:4px 8px;border-radius:var(--radius-pill);}
.w__info{flex:none;width:16px;height:16px;color:var(--slate-500);display:inline-flex;}
.w__info svg{width:16px;height:16px;}
/* "FIRE" tag that floats by each ignited ember (tangerine pairing) */
.fire-tag{position:fixed;left:0;top:0;z-index:5;pointer-events:none;background:var(--tangerine);color:var(--tangerine-companion);font-family:var(--font-body);font-weight:700;font-size:14px;line-height:1;letter-spacing:.04em;padding:4px 8px;border-radius:var(--radius-pill);white-space:nowrap;transition:opacity .15s ease;}

/* globe beat - copy at top, globe fills the field behind */
.beat--globe{min-height:120vh;}
/* copy is FIXED-centred and fully JS-driven (see home.js) - it physically cannot scroll. Lines fade
   + slide in line-by-line on entry, then leave one-by-one as the globe explodes. transition:none so
   the per-frame scroll-driven updates apply instantly (the ease-in-out easing lives in the JS). */
.globe__copy{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:780px;padding:0 24px;text-align:center;z-index:5;pointer-events:none;}   /* in front of the globe (front canvas z3) */
.beat--globe .r{transition:none;}
/* globe copy: dark-mode deck reveal - white text, fade + slide-up (the base .r motion), staggered line by line */
.beat--globe .globe__h,.beat--globe .hero__lead{color:#fff;text-shadow:none;}
.beat--globe .globe__h{margin:0 0 32px;}                       /* generous spacing between the three headline lines */
.beat--globe .globe__h .hl{font-size:inherit;line-height:1.12;}   /* highlight sits at the headline size */
.beat--globe .hero__lead{margin:0 auto 8px;font-size:20px;max-width:42em;}
.beat--globe .globe__h + .hero__lead{margin-top:36px;}         /* gap between the two groups */
.globe__h{position:relative;z-index:2;font-family:var(--font-display);font-weight:700;font-size:clamp(32px,5vw,48px);line-height:1.1;letter-spacing:-0.03em;color:var(--ink);margin:0;text-shadow:0 2px 22px rgba(255,255,255,0.9),0 0 8px rgba(255,255,255,0.85);}
.globe__sub{font-size:18px;line-height:1.55;color:var(--ink);max-width:40em;margin:20px auto 0;text-shadow:0 1px 14px rgba(255,255,255,0.92);}

/* financial beat - product tiles, counting numbers */
.beat--fin{min-height:120vh;margin-top:-60vh;}   /* overlaps the globe's tail so financial appears sooner, as the globe finishes fading */
.fin__copy{position:relative;z-index:1;max-width:900px;width:100%;}
.fin__h{font-family:var(--font-display);font-weight:700;font-size:clamp(26px,3.4vw,46px);line-height:1.12;letter-spacing:-0.025em;color:var(--ink);margin:0 auto 12px;max-width:20ch;}
.fin__line{position:relative;z-index:2;margin:40px 0 0;}
.fin__line .hl{font-size:clamp(32px,5vw,48px);line-height:1.2;}   /* as big as the headline, still highlighted */
.fin__dots{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:0 auto 32px;max-width:640px;}
.fdot{display:inline-flex;align-items:center;gap:8px;background:var(--fill-1);border-radius:var(--radius-pill);padding:8px 16px;font-weight:700;font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;}
.fdot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tangerine-companion);}
.fin__tiles{position:relative;z-index:0;display:grid;grid-template-columns:1fr 1fr;gap:48px;max-width:860px;margin:64px auto 0;}
.fintile{min-height:208px;}
/* soft grey blurred oval behind the tiles so the white cards stand out on the white page */
.fin__tiles::before{content:"";position:absolute;left:50%;top:50%;width:118%;height:165%;transform:translate(-50%,-50%);background:var(--fill-2);border-radius:50%;filter:blur(48px);z-index:-1;}
.fin__tiles .w__num{font-size:clamp(40px,6vw,64px);padding-top:24px;}
@media(max-width:640px){.fin__tiles{grid-template-columns:1fr;}}
.tile{border-radius:var(--radius-card);padding:28px 32px;text-align:left;}
.tile--risk{background:var(--fill-1);}
.tile--retired{background:var(--lime-100);}
.tile__label{display:block;font-size:15px;font-weight:600;color:var(--slate-600);margin-bottom:8px;}
.tile__big{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,5vw,64px);line-height:1;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;}
.tile--risk .tile__big{color:var(--grapefruit-companion);}
.tile--retired .tile__big{color:var(--green-700);}
.tile__sub{font-size:15px;color:var(--slate-600);margin-top:16px;}
.tile__sub--down{color:var(--green-700);font-weight:600;}

/* ---------- warranty: put our money where our mouth is ---------- */
.beat--warranty{min-height:130vh;}
/* fixed-centred + JS-driven (like the globe copy) so it pops in place and never scrolls */
.warr{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:900px;padding:0 24px;z-index:5;pointer-events:none;}
.beat--warranty .r{transition:none;}
.warr__card{position:relative;background:var(--surface-dark);border-radius:28px;padding:56px 48px;text-align:center;}
.warr__shield{display:flex;width:72px;height:72px;border-radius:20px;background:rgba(255,255,255,0.12);color:var(--lime);align-items:center;justify-content:center;margin:0 auto 28px;}
.warr__shield svg{width:44px;height:44px;stroke-width:2.4;}
.warr__h{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,4.2vw,54px);line-height:1.12;letter-spacing:-0.03em;color:#fff;margin:0 auto;max-width:20ch;}
.warr__amt{color:var(--lime);}
.warr__body{max-width:640px;margin:36px auto 0;}
.warr__p{font-size:22px;line-height:1.55;color:var(--ink);margin:0 0 16px;}   /* body copy = Slate-900 on white, never grey */
.warr__link{margin-top:16px;}   /* btn--primary btn--lg handles the rest */

/* ---------- three messages: stacking cards (each row pins + the next stacks over it) ---------- */
.stack-sec{position:relative;z-index:1;background:var(--canvas);padding:var(--space-2xl) 24px;}
.stack-list{max-width:1200px;margin:0 auto;display:flex;flex-direction:column;gap:120px;}
.srow{position:sticky;display:flex;gap:48px;align-items:center;padding:48px;border-radius:32px;overflow:hidden;}
.srow:nth-child(1){top:96px;}
.srow:nth-child(2){top:128px;}
.srow:nth-child(3){top:160px;}
.srow--lime{background:var(--lime-300);}
.srow--lemon{background:var(--lemon);}
.srow--blueberry{background:var(--blueberry);}
.srow__h{flex:1;font-family:var(--font-display);font-weight:700;font-size:clamp(36px,4.4vw,64px);line-height:1.05;letter-spacing:-0.02em;margin:0;}
.srow--lime .srow__h{color:var(--forest);}
.srow--lemon .srow__h{color:var(--lemon-companion);}
.srow--blueberry .srow__h{color:var(--blueberry-companion);}
.srow__panel{flex:1;display:flex;align-items:center;justify-content:center;min-height:400px;background:rgba(255,255,255,0.32);border-radius:32px;padding:48px;overflow:hidden;}
.srow__stack{position:relative;width:400px;max-width:100%;}
.srow__front{position:relative;z-index:2;}
.srow__behind{position:absolute;left:50%;top:42%;width:100%;height:100%;background:#fff;border-radius:24px;z-index:1;}
.swidget{width:100%;border-radius:24px;}
/* the white card + the widget each carry a shadow in the row's dark companion colour at 24% */
.srow--lime .swidget,.srow--lime .srow__behind{box-shadow:0 25px 50px -12px rgba(0,46,17,0.24);}
.srow--lemon .swidget,.srow--lemon .srow__behind{box-shadow:0 25px 50px -12px rgba(75,62,0,0.24);}
.srow--blueberry .swidget,.srow--blueberry .srow__behind{box-shadow:0 25px 50px -12px rgba(5,53,80,0.24);}
.swidget--lime{background:var(--lime-300);}
.swidget--lime .w__name,.swidget--lime .w__num,.swidget--lime .w__foot,.swidget--lime .w__foot strong{color:var(--forest);}
.swidget--lime .w__ic{background:rgba(255,255,255,0.55);}
.w__fic{flex:none;width:16px;height:16px;display:inline-flex;}
.w__fic svg{width:16px;height:16px;}
.warr-foot{display:flex;align-items:center;gap:4px;}
@media(max-width:820px){
  .srow{position:static;flex-direction:column;align-items:flex-start;padding:28px;gap:28px;}
  .stack-list{gap:28px;}
  .srow__panel{width:100%;min-height:320px;}
}

/* ---------- three firsts ---------- */
.firsts{padding:var(--space-2xl) 0;background:var(--canvas);position:relative;z-index:1;}
.sect__h{font-family:var(--font-display);font-weight:700;font-size:clamp(30px,4vw,52px);line-height:1.05;letter-spacing:-0.03em;color:var(--ink);margin:0 0 var(--space-lg);}
.fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:880px){.fgrid{grid-template-columns:1fr;}}
.fcard{background:var(--fill-1);border-radius:var(--radius-card);padding:36px;}
.fcard--green{background:var(--lime-300);}
.fcard__ic{display:inline-flex;width:52px;height:52px;border-radius:14px;background:#fff;color:var(--forest);align-items:center;justify-content:center;margin-bottom:24px;}
.fcard--green .fcard__ic{background:var(--forest);color:var(--lime);}
.fcard__ic svg{width:26px;height:26px;}
.fcard h3{font-family:var(--font-display);font-weight:700;font-size:24px;letter-spacing:-0.02em;color:var(--ink);margin:0 0 12px;}
.fcard p{font-size:17px;line-height:1.55;color:var(--ink);margin:0;}
.fcard--green h3,.fcard--green p{color:var(--forest);}

/* ---------- footer (scaffold) ---------- */
.foot{background:var(--surface-dark);color:#fff;padding:var(--space-2xl) 0 var(--space-lg);margin-top:var(--space-2xl);position:relative;z-index:1;}
.foot__in{display:grid;grid-template-columns:1.2fr 2.4fr;gap:var(--space-xl);align-items:start;}
@media(max-width:880px){.foot__in{grid-template-columns:1fr;gap:var(--space-lg);}}
.foot__mark{display:block;color:var(--lime);margin-bottom:16px;}
.foot__mark svg{height:38px;width:auto;display:block;}
.foot__tag{font-family:var(--font-display);font-weight:700;font-size:22px;color:var(--lime);margin:0;letter-spacing:-0.01em;}
.foot__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
@media(max-width:680px){.foot__cols{grid-template-columns:repeat(2,1fr);}}
.foot__col h4{font-size:14px;font-weight:700;color:var(--lime-300);margin:0 0 16px;}
.foot__col a{display:block;font-size:15px;color:rgba(255,255,255,0.86);padding:8px 0;}
.foot__col a:hover{color:#fff;}
.foot__legal{display:flex;justify-content:space-between;margin-top:var(--space-xl);padding-top:var(--space-md);border-top:1px solid rgba(255,255,255,0.12);font-size:14px;color:rgba(255,255,255,0.5);}

/* ---------- reveal ---------- */
.r{opacity:0;transform:translateY(20px);transition:opacity .6s var(--ease-silk),transform .6s var(--ease-silk);}
.r.in{opacity:1;transform:none;}
/* opacity-only reveal for elements that carry their own positioning transform (the floating cards) */
.rf{opacity:0;transition:opacity .55s var(--ease-silk);}
.rf.in{opacity:1;}
@media(prefers-reduced-motion:reduce){
  .r{opacity:1;transform:none;transition:none;}
  .rf{opacity:1;transition:none;}
  .nav{transition:none;}
  html{scroll-behavior:auto;}
}
