/* ==========================================================================
   Now Tech — design tokens
   Fonte: Now Tech Design System (OKLCH — não converter para hex).
   ========================================================================== */
@import url("https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800&family=Spline+Sans+Mono:wght@400;500&display=swap");

:root{
  /* ink (neutros azul-carvão) */
  --ink-950:oklch(.185 .028 260);--ink-900:oklch(.245 .030 259);--ink-800:oklch(.315 .032 259);--ink-700:oklch(.395 .031 258);--ink-600:oklch(.500 .026 258);
  --ink-500:oklch(.605 .022 257);--ink-400:oklch(.715 .019 256);--ink-300:oklch(.835 .014 255);--ink-200:oklch(.905 .010 254);--ink-100:oklch(.952 .007 254);--ink-50:oklch(.978 .005 254);
  --white:#FFFFFF;

  /* blue (primária) */
  --blue-900:oklch(.300 .115 258);--blue-800:oklch(.375 .145 257);--blue-700:oklch(.455 .170 257);--blue-600:oklch(.515 .178 256);--blue-500:oklch(.595 .170 255);
  --blue-400:oklch(.685 .145 253);--blue-300:oklch(.785 .105 251);--blue-200:oklch(.878 .060 250);--blue-100:oklch(.935 .033 250);--blue-50:oklch(.972 .016 250);

  /* aqua (acento "now") */
  --cyan-700:oklch(.555 .115 213);--cyan-600:oklch(.665 .125 208);--cyan-500:oklch(.775 .115 203);--cyan-400:oklch(.835 .095 201);--cyan-200:oklch(.905 .055 200);--cyan-100:oklch(.958 .026 200);

  /* status */
  --red-600:oklch(.565 .185 22);

  /* superfícies */
  --surface-page:var(--white);
  --surface-subtle:var(--ink-50);
  --surface-card:var(--white);
  --surface-inverse:var(--ink-900);
  --surface-brand-subtle:var(--blue-50);

  /* controles */
  --control-bg:var(--white);
  --control-bg-hover:var(--ink-50);
  --surface-hover:var(--ink-100);

  /* texto */
  --text-strong:var(--ink-900);
  --text-body:var(--ink-700);
  --text-muted:var(--ink-500);
  --text-faint:var(--ink-400);
  --text-brand:var(--blue-600);

  /* linhas */
  --border-subtle:var(--ink-200);
  --border-default:var(--ink-300);
  --border-strong:var(--ink-400);

  /* gradientes */
  --grad-now:linear-gradient(135deg,var(--blue-600) 0%,var(--cyan-500) 100%);
  --grad-ink:linear-gradient(180deg,var(--ink-900) 0%,var(--ink-950) 100%);

  /* glass */
  --glass-inverse:color-mix(in oklab,var(--ink-950) 70%,transparent);

  /* tipografia */
  --font-core:"Onest","Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"Spline Sans Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-16:16px;--fs-18:18px;--fs-20:20px;
  --ls-display:-0.032em;--ls-heading:-0.02em;--ls-tight:-0.01em;--ls-label:0.06em;--ls-eyebrow:0.14em;
  --type-display:800 clamp(40px,6.4vw,76px)/1.05 var(--font-core);
  --type-h1:800 clamp(32px,4.2vw,48px)/1.18 var(--font-core);
  --type-h2:700 30px/1.28 var(--font-core);
  --type-h3:700 20px/1.28 var(--font-core);
  --type-lead:500 20px/1.6 var(--font-core);
  --type-body:400 16px/1.6 var(--font-core);
  --type-body-sm:400 14px/1.6 var(--font-core);
  --type-ui:600 14px/1.2 var(--font-core);
  --type-eyebrow:700 12px/1.2 var(--font-core);
  --type-mono:400 13px/1.5 var(--font-mono);

  /* espaçamento */
  --container-max:1720px;--gutter-lg:64px;
  --section-y:112px;--section-y-lg:144px;

  /* raios */
  --r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-full:999px;

  /* controles */
  --control-sm:32px;--control-md:40px;--control-lg:48px;

  /* sombras (cool-tinted, nunca preto puro) */
  --shadow-xs:0 1px 2px rgba(16,24,45,.06);
  --shadow-sm:0 1px 3px rgba(16,24,45,.07),0 1px 2px rgba(16,24,45,.04);
  --shadow-md:0 4px 12px -2px rgba(16,24,45,.10),0 2px 4px rgba(16,24,45,.05);
  --shadow-lg:0 16px 40px -12px rgba(16,24,45,.18),0 4px 10px rgba(16,24,45,.05);

  /* motion */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --t-control:all 120ms var(--ease-out);
  --t-surface:all 180ms var(--ease-out);
}

/* ==========================================================================
   Base
   ========================================================================== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);letter-spacing:var(--ls-tight)}
h1,h2,h3{margin:0;color:var(--text-strong);letter-spacing:var(--ls-heading)}
p{margin:0}
a{color:var(--text-brand);text-decoration:none;transition:var(--t-control)}
a:hover{color:var(--blue-700)}
img{max-width:100%}
section{scroll-margin-top:88px}
input::placeholder,textarea::placeholder{color:var(--ink-500)}
::selection{background:var(--cyan-200);color:var(--ink-900)}
:focus-visible{outline:2px solid var(--blue-600);outline-offset:2px}
.container{max-width:var(--container-max);margin:0 auto;padding:0 clamp(20px,4vw,var(--gutter-lg))}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-brand)}
.skip-link{position:absolute;top:-48px;left:12px;z-index:100;background:var(--blue-600);color:#fff;padding:10px 16px;border-radius:var(--r-sm);transition:top 120ms}
.skip-link:focus{top:12px;color:#fff}

/* icons — lucide outline masked with currentColor, same technique as the design system */
.icon{display:inline-block;flex:0 0 auto;background:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-position:center;mask-position:center}
.icon--mail{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/mail.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/mail.svg)}
.icon--message-circle{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/message-circle.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/message-circle.svg)}
.icon--shield-check{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/shield-check.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/shield-check.svg)}
.icon--circle-check{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/circle-check.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/circle-check.svg)}
.icon--arrow-right{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/arrow-right.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/arrow-right.svg)}
.icon--search{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/search.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/search.svg)}
.icon--layers{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/layers.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/layers.svg)}
.icon--gauge{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/gauge.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/gauge.svg)}
.icon--sparkles{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/sparkles.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/sparkles.svg)}
.icon--monitor{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/monitor.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/monitor.svg)}
.icon--menu{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/menu.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/menu.svg)}
.icon--x{-webkit-mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/x.svg);mask-image:url(https://unpkg.com/lucide-static@0.544.0/icons/x.svg)}

/* ==========================================================================
   Logo
   ========================================================================== */
.logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none}
.logo__mark{display:block;flex:0 0 auto}
.logo__word{font:800 20px/1 var(--font-core);letter-spacing:-0.038em;color:var(--white);white-space:nowrap}
.logo__word span{color:var(--cyan-500)}
.logo--light .logo__word{color:var(--text-strong)}
.logo--light .logo__word span{color:var(--blue-600)}

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--control-md);padding:0 18px;
  font:var(--type-ui);letter-spacing:-.005em;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;
  transition:var(--t-control);text-decoration:none}
.btn:active{transform:translateY(1px)}
.btn--lg{height:var(--control-lg);padding:0 24px;font-size:var(--fs-15)}
.btn--sm{height:var(--control-sm);padding:0 12px;font-size:13px}
.btn--primary{background:var(--blue-600);color:var(--white);border-color:var(--blue-600);box-shadow:var(--shadow-xs)}
.btn--primary:hover{background:var(--blue-700);border-color:var(--blue-700);color:var(--white)}
.btn--inverse{background:var(--text-strong);color:var(--surface-page);border-color:var(--text-strong)}
.btn--inverse:hover{background:var(--ink-100);border-color:var(--ink-100);color:var(--text-strong)}
.btn--outline-inverse{height:var(--control-lg);padding:0 22px;border:1px solid rgba(255,255,255,.20);color:var(--white);font:var(--type-ui);font-size:var(--fs-15)}
.btn--outline-inverse:hover{background:rgba(255,255,255,.07);color:var(--white)}
.btn .icon{width:16px;height:16px}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:clamp(16px,3vw,32px);
  height:72px;padding:0 clamp(20px,4vw,var(--gutter-lg));background:var(--glass-inverse);
  backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.14)}
.site-nav{display:flex;flex-wrap:wrap;gap:4px;margin-right:auto}
.site-nav a{padding:8px 12px;border-radius:var(--r-xs);font:var(--type-ui);color:var(--ink-300);text-decoration:none}
.site-nav a:hover{color:var(--white);background:rgba(255,255,255,.07)}
.header-cta{flex:0 0 auto}
.nav-toggle{display:none;flex:0 0 auto;align-items:center;justify-content:center;width:40px;height:40px;
  border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.20);background:transparent;color:var(--white);cursor:pointer}
.nav-toggle .icon{width:20px;height:20px}
.nav-toggle .icon--x{display:none}

@media (max-width:860px){
  .site-nav{position:fixed;inset:72px 0 auto 0;flex-direction:column;gap:0;margin:0;padding:8px 20px 20px;
    background:var(--ink-950);border-bottom:1px solid rgba(255,255,255,.14);
    transform:translateY(-8px);opacity:0;pointer-events:none;transition:var(--t-surface)}
  .site-nav a{padding:14px 8px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.08)}
  .site-header.is-open .site-nav{transform:translateY(0);opacity:1;pointer-events:auto}
  .nav-toggle{display:inline-flex}
  .site-header.is-open .nav-toggle .icon--menu{display:none}
  .site-header.is-open .nav-toggle .icon--x{display:inline-block}
  .header-cta{display:none}
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero{position:relative;background:var(--grad-ink);overflow:hidden}

/* aurora — soft drifting gradient blobs replace the old hairline grid */
.hero__aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;opacity:.85}
.aurora-blob{position:absolute;border-radius:50%;filter:blur(40px);will-change:transform}
.aurora-blob--1{top:-8%;right:-6%;width:600px;height:600px;
  background:radial-gradient(circle,rgba(37,99,235,.55) 0%,rgba(37,99,235,0) 70%);
  animation:aurora-drift-1 24s var(--ease-in-out,ease-in-out) infinite}
.aurora-blob--2{top:22%;left:-12%;width:480px;height:480px;
  background:radial-gradient(circle,rgba(56,189,248,.42) 0%,rgba(56,189,248,0) 70%);
  animation:aurora-drift-2 30s var(--ease-in-out,ease-in-out) infinite}
.aurora-blob--3{bottom:-18%;right:22%;width:440px;height:440px;
  background:radial-gradient(circle,rgba(37,99,235,.38) 0%,rgba(37,99,235,0) 70%);
  animation:aurora-drift-3 20s var(--ease-in-out,ease-in-out) infinite}
@keyframes aurora-drift-1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-46px,34px) scale(1.08)}}
@keyframes aurora-drift-2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(54px,-24px) scale(1.05)}}
@keyframes aurora-drift-3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-34px,-30px) scale(1.1)}}

/* faint grain — adds depth without a repeating grid pattern */
.hero__noise{position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:120px 120px}

/* spotlight — subtle cyan glow that follows the pointer */
.hero__spotlight{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s var(--ease-out);
  background:radial-gradient(circle 480px at var(--mx,50%) var(--my,18%),rgba(56,189,248,.16),transparent 72%)}
.hero:hover .hero__spotlight{opacity:1}

@media (prefers-reduced-motion:reduce){
  .aurora-blob{animation:none}
}

.hero__inner{position:relative;padding:clamp(72px,10vw,128px) clamp(20px,4vw,var(--gutter-lg)) clamp(72px,9vw,112px)}
.hero .eyebrow{color:var(--cyan-500);margin-bottom:16px}
.badge-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 11px;border-radius:var(--r-full);
  background:rgba(255,255,255,.10);color:var(--white);font:var(--type-eyebrow);font-size:var(--fs-12)}
.badge-pill__dot{width:6px;height:6px;border-radius:50%;background:var(--cyan-500)}
.hero h1{font:var(--type-display);letter-spacing:var(--ls-display);color:var(--white);margin:26px 0 0;max-width:16ch;text-wrap:balance}
.hero h1 .accent{background:var(--grad-now);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero__lead{font:var(--type-lead);color:var(--ink-300);max-width:56ch;margin:26px 0 40px;text-wrap:pretty}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero__stats{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,56px);margin-top:72px;border-top:1px solid rgba(255,255,255,.14);padding-top:32px}
.hero__stat-label{font:var(--type-eyebrow);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-400)}
.hero__stat-value{font:var(--type-h2);letter-spacing:var(--ls-display);color:var(--white);margin-top:8px}

/* ==========================================================================
   Sections
   ========================================================================== */
.section{padding:clamp(72px,9vw,112px) 0}
.section--subtle{background:var(--surface-subtle);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}
.section--inverse{background:var(--surface-inverse)}
.section h2{font:var(--type-h1);letter-spacing:var(--ls-display);margin:16px 0 12px;text-wrap:balance}
.section__lead{font:var(--type-lead);color:var(--text-muted);max-width:58ch}

/* services */
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:20px;margin-top:56px}
@media (min-width:900px){.services-grid{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1550px){.services-grid{grid-template-columns:repeat(5,1fr)}}
.service-card{background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--r-lg);
  box-shadow:var(--shadow-sm);padding:28px;transition:transform 180ms var(--ease-out),box-shadow 180ms var(--ease-out)}
.service-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.service-card__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:var(--r-md);background:var(--surface-brand-subtle);color:var(--text-brand);margin-bottom:20px}
.service-card__icon .icon{width:21px;height:21px}
.service-card h3{font:var(--type-h3)}
.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.tag-chip{display:inline-flex;align-items:center;height:26px;padding:0 10px;border-radius:var(--r-full);
  border:1px solid var(--border-subtle);font:var(--type-body-sm);font-size:var(--fs-12);color:var(--text-muted)}

/* process */
.process-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:clamp(20px,3vw,28px)}
@media (min-width:700px){.process-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.process-grid{grid-template-columns:repeat(4,1fr)}}
.process-step{padding-top:24px;border-top:2px solid var(--blue-600)}
.process-step__n{font:var(--type-mono);color:var(--text-brand);margin-bottom:12px}
.process-step h3{font:var(--type-h3);font-size:var(--fs-18)}
.process-step p{font:var(--type-body-sm);color:var(--text-muted);margin-top:10px}


/* faq */
.faq-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:clamp(32px,5vw,64px);align-items:start}
.faq-layout h2{max-width:18ch}
.faq-layout .section__lead{max-width:44ch;font:var(--type-body-sm);color:var(--text-muted);margin-top:20px}
.faq-list{display:flex;flex-direction:column;border-top:1px solid var(--border-subtle)}
.faq-item{border-bottom:1px solid var(--border-subtle)}
.faq-question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 0;
  background:none;border:0;cursor:pointer;text-align:left;font:var(--type-h3);font-size:var(--fs-18);color:var(--text-strong)}
.faq-question:hover{color:var(--text-brand)}
.faq-question__sign{flex:0 0 auto;font:var(--type-mono);font-size:var(--fs-18);color:var(--text-brand)}
.faq-answer{font:var(--type-body-sm);color:var(--text-muted);margin:0;padding:0 40px 24px 0;max-width:62ch;text-wrap:pretty;display:none}
.faq-item.is-open .faq-answer{display:block}

/* contact */
.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:clamp(40px,6vw,80px);align-items:start}
.contact-copy .eyebrow{color:var(--cyan-500)}
.contact-copy h2{color:var(--white);margin:16px 0 0;max-width:20ch;text-wrap:balance}
.contact-copy__lead{font:var(--type-lead);color:var(--ink-300);margin:20px 0 36px;max-width:48ch}
.contact-channels{display:flex;flex-direction:column;gap:14px;border-top:1px solid rgba(255,255,255,.14);padding-top:28px}
.contact-channels__item{display:flex;align-items:center;gap:10px;font:var(--type-body-sm);color:var(--ink-300)}
.contact-channels__item .icon{width:16px;height:16px}
a.contact-channels__item:hover{color:var(--cyan-500)}

.contact-card{background:var(--ink-800);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-xl);
  box-shadow:var(--shadow-lg);padding:clamp(24px,3vw,32px)}
.contact-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}
.field{display:flex;flex-direction:column;gap:8px}
.field--full{grid-column:1/-1}
.field label{font:var(--type-eyebrow);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-400)}
.field input,.field select,.field textarea{height:44px;padding:0 14px;border-radius:var(--r-sm);
  border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.06);color:var(--white);
  font:var(--type-ui);font-size:var(--fs-15);outline:none;transition:var(--t-control);width:100%}
.field select option{color:var(--ink-900)}
.field textarea{height:auto;padding:12px 14px;font:var(--type-body-sm);resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan-500);box-shadow:0 0 0 3px rgba(56,189,248,.22)}
.field input.is-invalid,.field textarea.is-invalid{border-color:var(--red-600)}
.field__error{font:var(--type-body-sm);font-size:var(--fs-12);color:oklch(.720 .145 22);min-height:14px}
.field__hint{font:var(--type-body-sm);font-size:var(--fs-12);color:var(--ink-500)}
.form-footer{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:4px}
.form-footer__hint{font:var(--type-body-sm);font-size:var(--fs-12);color:var(--ink-500);max-width:26ch}

.success-state{display:flex;flex-direction:column;align-items:flex-start;gap:16px;padding:24px 0}
.success-state__icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:var(--r-md);background:rgba(56,189,248,.16);color:var(--cyan-500)}
.success-state__icon .icon{width:22px;height:22px}
.success-state h3{font:var(--type-h2);font-size:28px;letter-spacing:var(--ls-display);color:var(--white)}
.success-state p{font:var(--type-body-sm);color:var(--ink-300);max-width:40ch}
.success-state__protocol{font:var(--type-mono);font-size:var(--fs-12);color:var(--ink-500)}
.contact-form[hidden],.success-state[hidden]{display:none}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer{background:var(--ink-950);padding:72px 0 44px}
.site-footer .container{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:48px}
.footer-brand__tag{font:var(--type-eyebrow);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-500);margin-top:18px}
.footer-brand p{font:var(--type-body-sm);color:var(--ink-500);margin-top:8px;max-width:30ch}
.footer-cols{display:flex;flex-wrap:wrap;gap:clamp(28px,5vw,56px)}
.footer-col__title{font:var(--type-eyebrow);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--ink-400);margin-bottom:16px}
.footer-col__links{display:flex;flex-direction:column;gap:10px}
.footer-col__links a,.footer-col__links span{font:var(--type-body-sm);color:var(--ink-300)}
.footer-col__links a:hover{color:var(--white)}
.footer-bottom{max-width:var(--container-max);margin:48px auto 0;padding:24px clamp(20px,4vw,var(--gutter-lg)) 0;
  border-top:1px solid rgba(255,255,255,.08);font:var(--type-body-sm);font-size:var(--fs-12);color:var(--ink-600)}

/* ==========================================================================
   Scroll reveal — subtle fade/rise as sections enter the viewport
   ========================================================================== */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}
