/* ===========================================================
   LINKBE — design system
   Built directly on clay.com's visual language: warm oat
   neutrals, black type/actions, one blueberry accent, and a
   rotating set of candy-colored section themes — applied to
   an SEO agency for fitness & wellness brands.
   =========================================================== */

:root{
  /* --- exact tokens read from clay.com's live CSS (:root custom properties) --- */
  --ink:#000000;                 /* --loam..colors--text / primary-action */
  --ink-soft:#55534e;            /* oat-800 */
  --ink-faint:#85817a;           /* oat-700 */
  --paper:#ffffff;               /* clay.com reads as flat white, not oat-tinted */
  --paper-sunk:#f5f5f3;          /* light neutral surface, not cream */
  --surface:#ffffff;
  --border:#e6e6e3;
  --border-strong:#d6d6d1;

  --accent:#3859f9;              /* blueberry-400 / primary-accent */
  --accent-ink:#002f67;          /* blueberry-900 */
  --accent-soft:#d7ebfe;         /* blueberry-100 */

  --cta:#fcbe11;                 /* lemon-300 — Clay's "Get a demo" fill */
  --cta-ink:#000000;

  /* section themes — exact pastel panel backgrounds captured from
     clay.com's home-feature_item cards, paired with the matching
     accent step from that hue's real swatch ramp. Matcha (5th panel)
     is Linkbe's own addition, since Clay only themes 4 sections —
     tinted to the same ~96% lightness as the other four. */
  --t-blue-bg:#f0f8ff;    --t-blue-ac:#3859f9; --t-blue-ink:#002f67;   /* blueberry */
  --t-tang-bg:#fff3ed;    --t-tang-ac:#fa6900; --t-tang-ink:#c34e1b;  /* tangerine-600/700 */
  --t-lime-bg:#fcfee2;    --t-lime-ac:#7f7f00; --t-lime-ink:#102b02; /* lime-400/500 */
  --t-drag-bg:#fff0fa;    --t-drag-ac:#ff52c2; --t-drag-ink:#8b045c; /* dragonfruit-600/900 */
  --t-mat-bg:#eafcef;     --t-mat-ac:#02693e;  --t-mat-ink:#03331d;  /* matcha-700/900 */

  --r-btn:.5rem;      /* --loam..components---button--border-radius, exact */
  --r-card:0rem;      /* --loam..components---card--border-radius, exact — Clay cards stay square */
  --r-panel:3rem;     /* --_layout---radius--large, exact — reserved for whole-section panels */
  --r-pill:999px;

  /* exact cubic-bezier curves captured from clay.com's stylesheet */
  --ease-out: cubic-bezier(.16,1,.3,1);       /* expo.out */
  --ease-bounce: cubic-bezier(.175,.885,.32,1.275); /* back.out(1.7) */
  --ease-inout: cubic-bezier(.86,0,.07,1);    /* expo.inOut */

  color-scheme: light;
}

*,*::before,*::after{box-sizing:border-box;}
/* NOTE: no overflow-x:hidden on html/body — that trick breaks position:sticky
   in most browsers (it turns body into its own scroll container, which
   sticky elements like the nav and the service-panel stack can't see past).
   The actual horizontal-overflow bug was fixed at the source instead: every
   CSS Grid in this file uses minmax(0,1fr) tracks so content can't force a
   row wider than the viewport. */
html{overscroll-behavior-y:none;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Schibsted Grotesk',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  position:relative;
  overscroll-behavior-y:none;
}
img{max-width:100%;display:block;}
a{color:inherit;}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:2.5px solid var(--accent);outline-offset:2px;border-radius:2px;
}
::selection{background:var(--accent);color:#fff;}

h1,h2,h3,h4{
  font-family:'Schibsted Grotesk',sans-serif;
  font-weight:650;
  letter-spacing:-.03em;
  line-height:1.02;
  margin:0;
  text-wrap:balance;
}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;}
.eyebrow{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  font-size:.74rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:700;
  display:inline-flex;align-items:center;gap:8px;
}
p{margin:0;}
.lede{font-size:1.14rem;color:var(--ink-soft);line-height:1.55;max-width:52ch;}

/* ---------- layout ---------- */
.wrap{max-width:100rem;margin:0 auto;padding:0 clamp(20px,4vw,56px);position:relative;} /* default site container: 1600px */
.wrap-narrow{max-width:760px;margin:0 auto;padding:0 clamp(20px,4vw,56px);}
section{padding:clamp(3rem,2vw + 2.1rem,6rem) 0;} /* matches Clay's fluid --loam..section--padding clamp */
section.tight{padding:clamp(3rem,1.2vw + 2.3rem,4rem) 0;}
@media (max-width:720px){section{padding:60px 0;}section.tight{padding:40px 0;}}
.rule{border:none;border-top:1px solid var(--border);margin:0;}

.grid{display:grid;gap:22px;}
.g2{grid-template-columns:repeat(2,minmax(0,1fr));}
.g3{grid-template-columns:repeat(3,minmax(0,1fr));}
.g4{grid-template-columns:repeat(4,minmax(0,1fr));}
@media (max-width:900px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:600px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr);}}

/* page-frame guide lines removed — they were painting over body text */
.frame-line{display:none;}

/* ---------- buttons (with clay-style vertical label swap on hover) ---------- */
.btn{
  position:relative;
  font-family:'Schibsted Grotesk',sans-serif;
  font-size:.95rem;font-weight:600;
  text-decoration:none;
  display:inline-flex;align-items:center;gap:8px;
  padding:13px 24px;
  border-radius:var(--r-btn);
  border:1.5px solid transparent;
  cursor:pointer;
  overflow:hidden;
  transition:background .2s var(--ease-out), border-color .2s var(--ease-out), transform .2s var(--ease-bounce);
}
.btn:hover{transform:translateY(-2px);}
.btn-ink{background:var(--ink);color:var(--paper);}
.btn-ink:hover{background:#2a2a26;}
.btn-cta{background:var(--cta);color:var(--cta-ink);}
.btn-cta:hover{background:#e8ab00;}
.btn-outline{background:transparent;color:var(--ink);border-color:var(--border-strong);}
.btn-outline:hover{border-color:var(--ink);}
.btn-outline.on-dark{color:#fff;border-color:rgba(255,255,255,.4);}
.btn-outline.on-dark:hover{border-color:#fff;}
.btn-accent{background:var(--accent);color:#fff;}
.btn-accent:hover{background:var(--accent-ink);}
.btn-ghost{background:transparent;color:var(--accent);padding-left:0;padding-right:0;}

/* ---------- notice bar ---------- */
.notice{
  background:#1a1330;color:#f3f1ea;
  font-family:'JetBrains Mono',monospace;font-size:.78rem;
  text-align:center;padding:10px 16px;
}
.notice b{color:var(--cta);}

/* ---------- nav ---------- */
header.site{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:1px solid var(--border);}
.nav{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(20px,4vw,56px);max-width:100rem;margin:0 auto;gap:20px;position:relative;}
.brand-mark{font-family:'Schibsted Grotesk',sans-serif;font-weight:700;font-size:1.4rem;letter-spacing:-.02em;text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:8px;}
.brand-mark .dot{width:10px;height:10px;background:var(--accent);border-radius:50%;display:inline-block;}

.nav-links{display:flex;align-items:center;gap:2px;list-style:none;margin:0;padding:0;}
.nav-item{position:relative;}
.nav-links a.nav-link{
  position:relative;font-size:.92rem;font-weight:600;text-decoration:none;color:var(--ink-soft);
  padding:9px 16px;display:inline-block;border-radius:var(--r-pill);
  transition:color .2s ease;
}
.nav-links a.nav-link::before{
  content:"";position:absolute;inset:0;border-radius:var(--r-pill);
  background:var(--paper-sunk);transform:scale(.6);opacity:0;
  transition:transform .28s var(--ease-bounce), opacity .2s ease;
  z-index:-1;
}
.nav-links a.nav-link:hover::before,.nav-links a.nav-link.current::before{transform:scale(1);opacity:1;}
.nav-links a.nav-link:hover,.nav-links a.nav-link.current{color:var(--ink);}

.mega{
  position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(-8px) scale(.97);
  width:640px;max-width:82vw;
  background:var(--surface);border:1px solid var(--border);border-radius:1.5rem;
  box-shadow:0 20px 50px -20px rgba(20,15,5,.25);
  padding:14px;
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .22s var(--ease-out), transform .22s var(--ease-out), visibility .22s;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;
}
.nav-item:hover .mega{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1);}
.mega a{display:flex;flex-direction:column;gap:3px;padding:14px 16px;border-radius:1rem;text-decoration:none;color:var(--ink);transition:background .15s ease;}
.mega a:hover{background:var(--paper-sunk);}
.mega a .t{font-weight:650;font-size:.96rem;}
.mega a .d{font-size:.8rem;color:var(--ink-faint);line-height:1.4;}
@media (max-width:900px){.mega{display:none;}}

.nav-cta{display:flex;align-items:center;gap:14px;}

.nav-toggle{display:none;background:none;border:1.5px solid var(--border-strong);border-radius:var(--r-btn);width:44px;height:44px;align-items:center;justify-content:center;cursor:pointer;flex:none;}
.nav-toggle span,.nav-toggle span::before,.nav-toggle span::after{display:block;width:17px;height:2px;background:var(--ink);position:relative;transition:.2s;}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;}
.nav-toggle span::before{top:-5px;}
.nav-toggle span::after{top:5px;}
@media (max-width:900px){
  .nav-links{position:fixed;inset:66px 0 0 0;background:var(--paper);flex-direction:column;align-items:stretch;padding:18px;gap:2px;border-top:1px solid var(--border);transform:translateX(100%);transition:transform .3s var(--ease-out);overflow-y:auto;z-index:59;}
  .nav-links.open{transform:translateX(0);}
  .nav-links a.nav-link{width:100%;border-radius:var(--r-card);padding:16px;}
  .nav-links a.nav-link::before{border-radius:var(--r-card);}
  .nav-toggle{display:flex;}
  .nav-cta .btn-outline{display:none;}
}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;background:var(--paper);}
.hero .wrap{position:relative;z-index:2;padding-top:44px;padding-bottom:44px;}
.hero-grid{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:32px;align-items:start;}
.hero-media{width:100%;min-width:0;display:flex;justify-content:center;padding-top:8px;}
.hero-media img{width:100%;height:auto;max-height:400px;object-fit:contain;display:block;}
@media (max-width:860px){
  .hero-grid{grid-template-columns:minmax(0,1fr);}
  .hero-media{max-width:280px;margin:24px auto 0;}
  .hero-media img{max-height:280px;}
}
.hero h1{color:var(--ink);font-size:clamp(2.2rem,4.6vw,3.4rem);max-width:15ch;}
.hero .lede{color:var(--ink-soft);margin-top:16px;}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px;}
.hero-foot{margin-top:40px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.hero-foot span{font-family:'JetBrains Mono',monospace;font-size:.76rem;color:var(--ink-faint);}

.page-hero{padding:60px 0 48px;border-bottom:1px solid var(--border);}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.4rem);max-width:20ch;margin-top:12px;}
.page-hero .lede{margin-top:16px;}

/* ---------- marquee ---------- */
.marquee-wrap{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--paper-sunk);}
.marquee{display:flex;width:max-content;animation:marquee 32s linear infinite;}
.marquee-group{display:flex;align-items:center;gap:44px;padding:22px 22px;}
.marquee-group .chip{font-family:'JetBrains Mono',monospace;font-size:.86rem;color:var(--ink-soft);white-space:nowrap;display:flex;align-items:center;gap:10px;}
.marquee-group .chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.marquee{animation:none;}}

/* ---------- brand-fluency bento grid ---------- */
.stat-pair{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:28px;}
.stat-pair .bento-card.stat{flex:1;min-width:200px;grid-column:auto;border-radius:1rem;border:1px solid var(--border);background:var(--paper-sunk);
  flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;gap:2px;padding:18px 20px;}
.stat-pair .bento-card.stat .num{font-family:'Schibsted Grotesk',sans-serif;font-size:1.9rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1;}
.stat-pair .bento-card.stat .unit{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);}

.logowall{display:flex;flex-direction:column;gap:14px;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.logowall-row{display:flex;width:max-content;gap:14px;}
.logowall-row.dir-left{animation:wall-left 46s linear infinite;}
.logowall-row.dir-right{animation:wall-right 50s linear infinite;}
.logowall-tile{
  background:var(--surface);border:1px solid var(--border);border-radius:.9rem;
  padding:20px 30px;display:flex;align-items:center;justify-content:center;
  height:76px;min-width:150px;
}
.logowall-tile img{height:26px;width:auto;max-width:150px;object-fit:contain;display:block;}
.logowall-tile.dark{background:#1b1a18;}
@keyframes wall-left{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes wall-right{from{transform:translateX(-50%);}to{transform:translateX(0);}}
@media (prefers-reduced-motion: reduce){.logowall-row{animation:none;}}
@media (max-width:560px){.logowall-tile{padding:14px 20px;height:64px;min-width:120px;}.logowall-tile img{height:20px;}}

/* ---------- rotating "who we serve" ticker ---------- */
.ticker-wrap{display:flex;flex-direction:column;gap:0;max-width:420px;}
.ticker-wrap li{list-style:none;padding:14px 20px;border-radius:var(--r-pill);font-size:1.4rem;font-weight:650;letter-spacing:-.02em;color:var(--ink-faint);transition:color .35s var(--ease-out), background .35s var(--ease-out), padding-left .35s var(--ease-out);}
.ticker-wrap li.active{color:var(--ink);background:var(--paper-sunk);padding-left:28px;}

/* ---------- sticky stacked service panels (the clay.com signature) ---------- */
.stack{position:relative;}
.stack-panel{
  position:sticky;top:66px;
  min-height:auto;
  padding:70px 0 90px;
  border-top:1.5px solid rgba(0,0,0,.08);
}
.stack-panel:first-child{border-radius:var(--r-panel) var(--r-panel) 0 0;border-top:none;}
.stack-panel:last-child{padding-bottom:110px;}
.panel-blue{background:var(--t-blue-bg);}
.panel-tang{background:var(--t-tang-bg);}
.panel-lime{background:var(--t-lime-bg);}
.panel-drag{background:var(--t-drag-bg);}
.panel-mat{background:var(--t-mat-bg);}

.panel-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:50px;align-items:center;}
@media (max-width:860px){.panel-inner{grid-template-columns:minmax(0,1fr);}}
.panel-num{font-family:'JetBrains Mono',monospace;font-size:.8rem;opacity:.6;margin-bottom:14px;}
.panel-inner h2{font-size:clamp(1.8rem,3.4vw,2.6rem);}
.panel-inner .lede{margin-top:14px;color:inherit;opacity:.72;max-width:46ch;}
.panel-proof{margin-top:22px;font-size:.88rem;font-weight:600;padding:12px 16px;background:rgba(255,255,255,.55);border-radius:1rem;display:inline-block;}
.panel-card{background:rgba(255,255,255,.6);border:1px solid rgba(0,0,0,.06);border-radius:var(--r-card);padding:30px;backdrop-filter:blur(2px);}
.panel-card ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:9px;font-size:.92rem;}
.panel-cta{margin-top:24px;}
@media (max-width:860px){
  .panel-card{padding:22px;}
}

/* ---------- cards ---------- */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);padding:26px;}
.stat{display:flex;flex-direction:column;gap:2px;}
.stat .num{font-family:'Schibsted Grotesk',sans-serif;font-weight:700;font-size:2.6rem;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;}
.stat .unit{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-top:6px;}

.tag{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.05em;text-transform:uppercase;padding:5px 12px;border:1px solid var(--border-strong);border-radius:var(--r-pill);color:var(--ink-soft);display:inline-block;}
.tag.accent{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft);}

/* ---------- FAQ ---------- */
.faq-item{border-bottom:1px solid var(--border);}
.faq-item summary{padding:22px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;font-weight:650;font-size:1.12rem;letter-spacing:-.01em;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-family:'JetBrains Mono',monospace;font-size:1.5rem;color:var(--accent);flex:none;transition:transform .25s var(--ease-bounce);}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .a{padding:0 0 24px;color:var(--ink-soft);max-width:64ch;font-size:.97rem;line-height:1.6;}

/* ---------- pricing ---------- */
.price-card{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-card);padding:30px 26px;display:flex;flex-direction:column;gap:16px;}
.price-card.featured{border-color:var(--accent);background:var(--accent-soft);}
.price-card .amount{font-family:'Schibsted Grotesk',sans-serif;font-size:2.6rem;font-weight:700;letter-spacing:-.03em;}
.price-card .amount span{font-family:'JetBrains Mono',monospace;font-size:.85rem;font-weight:400;color:var(--ink-faint);}
.price-card ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.price-card li{font-size:.9rem;color:var(--ink-soft);padding-left:22px;position:relative;}
.price-card li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700;}

table.compare{width:100%;border-collapse:collapse;font-size:.88rem;}
table.compare th,table.compare td{padding:14px 12px;border-bottom:1px solid var(--border);text-align:center;}
table.compare th:first-child,table.compare td:first-child{text-align:left;}
table.compare thead th{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;border-bottom:2px solid var(--ink);}
table.compare .col-head{font-family:'Schibsted Grotesk',sans-serif;font-size:1.15rem;font-weight:700;color:var(--ink);}
.table-scroll{overflow-x:auto;}

/* ---------- steps ---------- */
.step{display:grid;grid-template-columns:52px minmax(0,1fr);gap:16px;padding:26px 0;border-top:1px solid var(--border);}
.step:last-child{border-bottom:1px solid var(--border);}
.step .n{font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--accent);padding-top:4px;}
.step h3{font-size:1.35rem;margin-bottom:6px;letter-spacing:-.02em;}
.step p{color:var(--ink-soft);max-width:56ch;font-size:.94rem;}

.sticky-quote{position:sticky;top:100px;background:var(--surface);border:1px solid var(--border);border-radius:1.5rem;padding:36px;}
.sticky-quote p{font-family:'Schibsted Grotesk',sans-serif;font-size:1.4rem;font-weight:650;letter-spacing:-.02em;line-height:1.35;}
@media (max-width:900px){.sticky-quote{position:static;margin-top:8px;}}

/* ---------- forms ---------- */
label{display:block;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:7px;}
input,select,textarea{width:100%;font-family:'Schibsted Grotesk',sans-serif;font-size:.95rem;padding:12px 14px;border:1.5px solid var(--border-strong);border-radius:var(--r-btn);background:var(--surface);color:var(--ink);}
textarea{resize:vertical;min-height:100px;}
.field{margin-bottom:20px;}
.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;}
@media (max-width:600px){.field-row{grid-template-columns:minmax(0,1fr);}}

/* ---------- section head ---------- */
.section-head{max-width:640px;margin-bottom:46px;}
.section-head h2{font-size:clamp(1.9rem,4vw,2.7rem);margin-top:12px;}
.section-head .lede{margin-top:14px;}
.center{text-align:center;margin-left:auto;margin-right:auto;}

/* .bg-ink is an always-dark accent band (hero-weight emphasis, footer, pricing
   band) — it intentionally does NOT invert with the light/dark toggle, the
   same way clay.com's own dark sections stay dark regardless of OS theme. */
.bg-ink{background:#0d0d0c;color:#fefdfb;}
.bg-ink h2,.bg-ink h3{color:#fefdfb;}
.bg-sunk{background:var(--paper-sunk);}
.bg-accent{background:var(--accent);color:#fff;}
.bg-accent h2{color:#fff;}

.cta-band{padding:88px 0;text-align:center;}
.cta-band h2{font-size:clamp(2rem,5vw,3.1rem);max-width:18ch;margin:14px auto 0;}
.cta-band .lede{margin:16px auto 0;}
.cta-band .hero-cta{justify-content:center;margin-top:28px;}

/* ---------- footer ---------- */
footer.site{background:#0d0d0c;color:#fefdfb;padding:76px 0 30px;position:relative;z-index:2;}
footer.site a{color:#fefdfb;text-decoration:none;opacity:.75;}
footer.site a:hover{opacity:1;}
.foot-top{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr));gap:30px;padding-bottom:46px;border-bottom:1px solid rgba(254,253,251,.14);}
@media (max-width:900px){.foot-top{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:560px){.foot-top{grid-template-columns:minmax(0,1fr);}}
.foot-top h5{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(254,253,251,.48);margin-bottom:16px;font-weight:700;}
.foot-top ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:.9rem;}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:22px;font-family:'JetBrains Mono',monospace;font-size:.74rem;color:rgba(254,253,251,.5);}

/* ---------- scroll reveal (driven by GSAP ScrollTrigger, see animations.js) ---------- */
.reveal{opacity:1;}
.js .reveal{opacity:0;transform:translateY(26px);}
@media (prefers-reduced-motion: reduce){
  .js .reveal{opacity:1;transform:none;}
  *{transition-duration:.01ms !important;animation-duration:.01ms !important;}
}
