/* Veludurthi Technologies marketing site — layout on top of the Nocturne design-system tokens (styles.css). */

/* Theme: dark is the default look; [data-theme="light"] flips the page-level
   tokens the layout below reads from. Component tokens in styles.css (--color-bg,
   --color-text, etc.) are re-pointed here too so shared classes like .btn/.input
   follow the same switch without touching styles.css. */
:root {
  --page-bg: #161826;
  --page-bg-alt: #1a1c2c;
  --page-text: #e9e9ed;
  --page-text-dim-82: rgba(233,233,237,.82);
  --page-text-dim-75: rgba(233,233,237,.75);
  --page-text-dim-72: rgba(233,233,237,.72);
  --page-text-dim-68: rgba(233,233,237,.68);
  --page-text-dim-66: rgba(233,233,237,.66);
  --page-text-dim-65: rgba(233,233,237,.65);
  --page-text-dim-62: rgba(233,233,237,.62);
  --page-text-dim-60: rgba(233,233,237,.6);
  --page-text-dim-58: rgba(233,233,237,.58);
  --page-text-dim-55: rgba(233,233,237,.55);
  --page-text-dim-50: rgba(233,233,237,.5);
  /* dim-45 through dim-22 are floored at .5 alpha (~4.5:1 contrast on
     --page-bg) — WCAG AA minimum for small text; anything lower fails AA
     regardless of hue at this background. Names are kept as-is so no
     usage site needs to change. */
  --page-text-dim-45: rgba(233,233,237,.5);
  --page-text-dim-42: rgba(233,233,237,.5);
  --page-text-dim-40: rgba(233,233,237,.5);
  --page-text-dim-32: rgba(233,233,237,.5);
  --page-text-dim-30: rgba(233,233,237,.5);
  --page-text-dim-22: rgba(233,233,237,.5);
  --page-divider: rgba(233,233,237,.1);
  --page-divider-strong: rgba(233,233,237,.14);
  --page-divider-soft: rgba(233,233,237,.09);
  --page-hairline: rgba(233,233,237,.12);
  --page-track: rgba(233,233,237,.12);
  --page-accent: #9184d9;
  --page-accent-light: #b5abfc;
  --page-accent-lilac: #d2cefd;
  --page-nav-bg: rgba(22,24,38,.82);
  --page-card-bg: #161826;
  --page-scrim-strong: rgba(22,24,38,.94);
  --page-scrim-mid: rgba(22,24,38,.92);
  --page-scrim-soft: rgba(22,24,38,.6);
  --page-scrim-fade: rgba(22,24,38,.55);
  --page-scrim-zero: rgba(22,24,38,0);
  --page-stage-bg-a: rgba(43,39,65,.85);
  --page-stage-bg-b: rgba(22,24,38,.95);
  --page-stage-bg-c: rgba(43,39,65,.7);
  --page-stage-bg-d: rgba(22,24,38,.96);
  --page-selection: rgba(145,132,217,.3);
}

[data-theme="light"] {
  --page-bg: #f5f4fb;
  --page-bg-alt: #eeecf9;
  --page-text: #1c1d29;
  --page-text-dim-82: rgba(28,29,41,.82);
  --page-text-dim-75: rgba(28,29,41,.75);
  --page-text-dim-72: rgba(28,29,41,.72);
  --page-text-dim-68: rgba(28,29,41,.68);
  --page-text-dim-66: rgba(28,29,41,.66);
  --page-text-dim-65: rgba(28,29,41,.65);
  --page-text-dim-62: rgba(28,29,41,.62);
  /* dim-60 down to dim-22 are floored at .62 alpha (~4.5:1 on --page-bg) —
     WCAG AA minimum for small text; every one of these tokens is used on
     text under 16px, so anything lower fails AA regardless of hue. Values
     step down in tiny increments only to preserve relative ordering
     between class names; visually they read as one muted tier. */
  --page-text-dim-60: rgba(28,29,41,.62);
  --page-text-dim-58: rgba(28,29,41,.62);
  --page-text-dim-55: rgba(28,29,41,.62);
  --page-text-dim-50: rgba(28,29,41,.62);
  --page-text-dim-45: rgba(28,29,41,.62);
  --page-text-dim-42: rgba(28,29,41,.62);
  --page-text-dim-40: rgba(28,29,41,.62);
  --page-text-dim-32: rgba(28,29,41,.62);
  --page-text-dim-30: rgba(28,29,41,.62);
  --page-text-dim-22: rgba(28,29,41,.62);
  --page-divider: rgba(28,29,41,.1);
  --page-divider-strong: rgba(28,29,41,.14);
  --page-divider-soft: rgba(28,29,41,.09);
  --page-hairline: rgba(28,29,41,.12);
  --page-track: rgba(28,29,41,.12);
  --page-accent: #6f61c9;
  --page-accent-light: #7a6cd6;
  --page-accent-lilac: #5d51ab;
  --page-nav-bg: rgba(245,244,251,.85);
  --page-card-bg: #f5f4fb;
  --page-scrim-strong: rgba(245,244,251,.94);
  --page-scrim-mid: rgba(245,244,251,.92);
  --page-scrim-soft: rgba(245,244,251,.6);
  --page-scrim-fade: rgba(245,244,251,.55);
  --page-scrim-zero: rgba(245,244,251,0);
  --page-stage-bg-a: rgba(215,211,240,.85);
  --page-stage-bg-b: rgba(245,244,251,.95);
  --page-stage-bg-c: rgba(215,211,240,.7);
  --page-stage-bg-d: rgba(245,244,251,.96);
  --page-selection: rgba(111,97,201,.22);

  --color-bg: var(--page-bg);
  --color-surface: #ffffff;
  --color-text: var(--page-text);
  --color-accent: var(--page-accent);
  --color-divider: rgba(28,29,41,.16);
}

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--page-bg);
  color: var(--page-text);
  font-family: "Inter", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
  transition: background-color .25s ease, color .25s ease;
}
a { color: var(--page-accent-lilac); text-decoration: none; }
a:hover { color: var(--page-accent-light); }
::selection { background: var(--page-selection); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

.scene-canvas { display: block; width: 100%; height: 100%; }
.scene-canvas.is-orbitable { cursor: grab; touch-action: pan-y pinch-zoom; }
.scene-canvas.is-orbitable.is-grabbing { cursor: grabbing; }
.scene-canvas.is-orbitable:focus-visible { outline: 2px solid var(--page-accent); outline-offset: -2px; }

.wrap { max-width: 1240px; margin: 0 auto; }
.eyebrow { margin: 0 0 26px; font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--page-accent-light); }
.h2 { margin: 0; font-size: clamp(30px,4vw,56px); font-weight: 500; line-height: 1.06; letter-spacing: -.028em; }
.section-intro { margin: 26px 0 0; max-width: 64ch; font-size: 16px; line-height: 1.7; color: var(--page-text-dim-60); }
.muted { color: var(--page-text-dim-55); }
.lead { font-size: 19px; line-height: 1.6; color: var(--page-text-dim-82); }
.col-label { margin: 0 0 14px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--page-accent-light); }
.col-label-muted { color: var(--page-text-dim-45); }

/* header */
.nav-bar {
  position: sticky; top: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 14px 40px; background: var(--page-nav-bg); backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--page-divider);
}
.brand { display: flex; align-items: center; gap: 12px; color: var(--page-text); }
.brand-mark { display: block; width: 64px; height: 34px; }
.brand-wordmark { display: block; height: 52px; width: auto; }
.brand-wordmark-light { display: none; }
[data-theme="light"] .brand-wordmark-dark { display: none; }
[data-theme="light"] .brand-wordmark-light { display: block; }
.nav-links { display: flex; align-items: center; gap: 28px; font-size: 13px; color: var(--page-text-dim-62); }
.nav-links a:not(.btn) { color: inherit; }
.nav-cta { font-size: 13px; }

.nav-controls { display: flex; align-items: center; gap: 10px; }

.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 999px; border: 1px solid var(--page-divider-strong);
  background: transparent; color: var(--page-text); cursor: pointer; flex: none;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.theme-toggle:hover { border-color: var(--page-accent); color: var(--page-accent-light); }
.theme-toggle .icon-moon { display: none; }
[data-theme="light"] .theme-toggle .icon-sun { display: none; }
[data-theme="light"] .theme-toggle .icon-moon { display: block; }

.menu-toggle {
  display: none; flex-direction: column; justify-content: center; align-items: center; gap: 4px;
  width: 36px; height: 36px; border-radius: 8px; border: 1px solid var(--page-divider-strong);
  background: transparent; cursor: pointer; flex: none;
}
.menu-toggle span { display: block; width: 16px; height: 1.5px; background: var(--page-text); transition: transform .2s ease, opacity .2s ease; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

@media (max-width: 860px) {
  .menu-toggle { display: flex; }
  .nav-links {
    position: fixed; inset: 65px 0 auto 0; z-index: 39; flex-direction: column; align-items: stretch;
    gap: 0; padding: 8px 24px 24px; background: var(--page-nav-bg); backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--page-divider);
    transform: translateY(-8px); opacity: 0; pointer-events: none; visibility: hidden;
    transition: transform .22s ease, opacity .22s ease, visibility .22s;
  }
  .nav-links.is-open { transform: translateY(0); opacity: 1; pointer-events: auto; visibility: visible; }
  .nav-links a:not(.btn) { padding: 14px 0; border-bottom: 1px solid var(--page-divider-soft); font-size: 15px; }
  .nav-cta { margin-top: 16px; justify-content: center; }
}

/* hero */
.hero { position: relative; min-height: 88vh; display: grid; align-items: center; border-bottom: 1px solid var(--page-divider); overflow: hidden; }
.hero .scene-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-scrim { position: absolute; inset: 0; background: radial-gradient(120% 80% at 12% 40%, var(--page-scrim-mid) 0%, var(--page-scrim-fade) 45%, var(--page-scrim-zero) 75%); pointer-events: none; }
.hero-inner { position: relative; padding: 120px 40px 130px; max-width: 1240px; margin: 0 auto; width: 100%; pointer-events: none; }
.hero-inner a, .hero-inner button { pointer-events: auto; }
.hero-title { margin: 0; max-width: 15ch; font-size: clamp(40px,6.2vw,88px); font-weight: 500; line-height: 1.03; letter-spacing: -.03em; text-wrap: balance; }
.hero-sub { margin: 28px 0 0; max-width: 56ch; font-size: 17px; line-height: 1.6; color: var(--page-text-dim-66); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.hero-actions .btn { font-size: 14px; padding: 12px 20px; }
.hero-strip { position: absolute; left: 40px; bottom: 26px; display: flex; gap: 26px; font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--page-text-dim-32); }
@media (max-width: 640px) { .hero-strip { display: none; } }

.drag-hint {
  position: absolute; right: 40px; bottom: 26px; z-index: 2; margin: 0;
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; letter-spacing: .04em; color: var(--page-text-dim-55);
  pointer-events: none; opacity: 1; transition: opacity .5s ease;
}
.drag-hint svg { flex: none; opacity: .8; }
.drag-hint.is-hidden { opacity: 0; }
@media (max-width: 640px) { .drag-hint { display: none; } }

/* philosophy */
.philosophy { padding: 120px 40px; border-bottom: 1px solid var(--page-divider); }
.philosophy-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.1fr); gap: 80px; align-items: start; }
.philosophy-words { display: grid; gap: 4px; font-size: clamp(30px,3.6vw,52px); font-weight: 500; line-height: 1.08; letter-spacing: -.025em; }
.philosophy-words .accent { color: var(--page-accent-light); }
.philosophy-copy { display: grid; gap: 26px; padding-top: 8px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
@media (max-width: 900px) { .philosophy-grid { grid-template-columns: 1fr; gap: 40px; } }

/* what we build */
.section-build { padding: 120px 40px; border-bottom: 1px solid var(--page-divider); }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(196px,1fr)); gap: 2px; margin-top: 64px; background: var(--page-divider); }
.build-card { background: var(--page-card-bg); padding: 0 0 30px; }
.card-scene-wrap { height: 220px; background: linear-gradient(180deg,var(--page-stage-bg-c),var(--page-scrim-zero)); }
.build-card-body { padding: 0 26px; }
.build-card-body h3 { margin: 0 0 10px; font-size: 19px; font-weight: 500; letter-spacing: -.01em; }
.build-card-body p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--page-text-dim-58); }

/* akshara */
.section-akshara { padding: 120px 40px; border-bottom: 1px solid var(--page-divider); background: linear-gradient(180deg,var(--page-card-bg),var(--page-bg-alt) 60%,var(--page-card-bg)); }
.akshara-kicker { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.akshara-kicker .eyebrow { margin: 0; }
.kicker-note { font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--page-text-dim-40); }
.akshara-title { margin: 24px 0 0; font-size: clamp(32px,4.4vw,62px); letter-spacing: -.03em; line-height: 1.04; }
.akshara-lead { margin: 22px 0 0; max-width: 44ch; font-size: 20px; line-height: 1.5; color: var(--page-accent-lilac); }
.akshara-stage { height: min(60vh,520px); margin: 56px 0 0; border: 1px solid var(--page-divider); border-radius: 8px; overflow: hidden; position: relative; background: radial-gradient(70% 70% at 50% 45%,var(--page-stage-bg-a),var(--page-stage-bg-b)); }
.stage-caption { position: absolute; left: 22px; bottom: 18px; font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--page-text-dim-45); }
.akshara-cols { display: grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap: 44px; margin-top: 64px; }
.feature-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; font-size: 15px; color: var(--page-text-dim-72); }
.feature-list li { padding-bottom: 10px; border-bottom: 1px solid var(--page-divider-soft); }
.feature-list li.no-border { border-bottom: none; padding-bottom: 0; }
.akshara-arch { border-left: 1px solid var(--page-hairline); padding-left: 28px; }
.arch-copy { margin: 0 0 18px; font-size: 14px; line-height: 1.7; color: var(--page-text-dim-60); }
.arch-tree { font-family: ui-monospace,Menlo,monospace; font-size: 11.5px; line-height: 1.9; color: var(--page-text-dim-50); white-space: pre; margin: 0; }

/* intelligence */
.section-intelligence { padding: 120px 40px; border-bottom: 1px solid var(--page-divider); }
.intelligence-grid { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 72px; align-items: center; }
.capability-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; margin-top: 38px; background: var(--page-divider); }
.capability-grid div { background: var(--page-card-bg); padding: 16px 4px 16px 0; font-size: 14px; color: var(--page-text-dim-75); }
.capability-grid div:nth-child(2n) { padding: 16px 0 16px 16px; }
.intelligence-stage { position: relative; height: min(66vh,560px); }
.stage-labels { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--page-text-dim-42); }
@media (max-width: 900px) { .intelligence-grid { grid-template-columns: 1fr; gap: 40px; } }

/* process */
.section-process { padding: 120px 40px; border-bottom: 1px solid var(--page-divider); }
.process-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr); gap: 64px; margin-top: 56px; align-items: start; }
.stage-list { display: grid; gap: 2px; background: var(--page-divider); }
.stage-btn {
  display: flex; gap: 18px; align-items: flex-start; text-align: left;
  padding: 22px 20px 22px 0; border: 0; cursor: pointer; font: inherit;
  background: var(--page-card-bg); box-shadow: none; transition: background .2s ease, box-shadow .2s ease;
  width: 100%;
}
.stage-btn.is-active { background: color-mix(in srgb, var(--page-accent) 9%, transparent); box-shadow: inset 2px 0 0 var(--page-accent); }
.stage-num { font-family: ui-monospace,Menlo,monospace; font-size: 12px; color: var(--page-accent-light); min-width: 28px; }
.stage-text { display: grid; gap: 6px; text-align: left; }
.stage-name { font-size: 17px; font-weight: 500; color: var(--page-text); }
.stage-desc { font-size: 13.5px; line-height: 1.6; color: var(--page-text-dim-55); }
.build-stage { position: relative; height: min(64vh,540px); border: 1px solid var(--page-divider); border-radius: 8px; overflow: hidden; background: radial-gradient(70% 70% at 50% 55%,var(--page-stage-bg-c),var(--page-stage-bg-d)); }
.build-stage-labels { position: absolute; left: 20px; top: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 10.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--page-text-dim-40); }
.build-stage-caption { position: absolute; right: 20px; bottom: 18px; font-family: ui-monospace,Menlo,monospace; font-size: 11px; color: var(--page-text-dim-45); }
@media (max-width: 900px) { .process-grid { grid-template-columns: 1fr; gap: 32px; } }

/* principles */
.section-principles { padding: 120px 40px; border-bottom: 1px solid var(--page-divider); }
.principle-card { background: var(--page-card-bg); padding: 0 26px 32px; }
.principle-scene-wrap { height: 180px; margin: 0 -26px; }
.principle-card h3 { margin: 0 0 10px; font-size: 17px; font-weight: 500; }
.principle-card p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--page-text-dim-58); }

/* about */
.section-about { padding: 120px 40px; border-bottom: 1px solid var(--page-divider); }
.about-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 80px; align-items: start; }
.about-title { font-size: clamp(28px,3.4vw,46px); line-height: 1.08; letter-spacing: -.026em; }
.about-copy { display: grid; gap: 20px; font-size: 16px; line-height: 1.75; color: var(--page-text-dim-68); }
.about-copy p { margin: 0; }
.about-origin { margin-top: 18px; padding-top: 24px; border-top: 1px solid var(--page-hairline); }
.origin-copy { margin: 0; font-size: 15px; line-height: 1.75; color: var(--page-text-dim-60); }
@media (max-width: 900px) { .about-grid { grid-template-columns: 1fr; gap: 40px; } }

/* founder */
.section-founder { padding: 100px 40px; border-bottom: 1px solid var(--page-divider); }
.founder-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); gap: 80px; align-items: start; }
.founder-title { font-size: clamp(26px,3vw,40px); line-height: 1.1; letter-spacing: -.024em; }
.founder-card { display: flex; gap: 20px; align-items: flex-start; flex-wrap: wrap; }
.founder-mark {
  display: block; flex: none; margin-top: 6px; width: 22px; height: 22px;
  border: 1.5px solid var(--page-accent); transform: rotate(45deg);
  box-shadow: 0 0 14px color-mix(in srgb, var(--page-accent) 55%, transparent);
}
.founder-bio { flex: 1 1 300px; }
.founder-name { margin: 0 0 4px; font-size: 20px; font-weight: 500; }
.founder-role { margin: 0 0 20px; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: var(--page-accent-light); }
.founder-desc { margin: 0; font-size: 15.5px; line-height: 1.75; color: var(--page-text-dim-65); }
@media (max-width: 900px) { .founder-grid { grid-template-columns: 1fr; gap: 32px; } }

/* future */
.section-future { position: relative; border-bottom: 1px solid var(--page-divider); min-height: 92vh; display: grid; align-items: center; overflow: hidden; }
.future-canvas { position: absolute; inset: 0; }
.future-scrim { position: absolute; inset: 0; background: linear-gradient(90deg,var(--page-scrim-strong) 0%,var(--page-scrim-soft) 42%,var(--page-scrim-zero) 78%); pointer-events: none; }
.future-inner { position: relative; max-width: 1240px; margin: 0 auto; width: 100%; padding: 130px 40px; pointer-events: none; }
.future-title { max-width: 18ch; font-size: clamp(32px,4.6vw,64px); line-height: 1.04; letter-spacing: -.03em; }
.future-copy { display: grid; gap: 20px; max-width: 60ch; margin-top: 28px; font-size: 16px; line-height: 1.75; color: var(--page-text-dim-68); }
.future-copy p { margin: 0; }
.future-more { margin-top: 44px; padding-top: 26px; border-top: 1px solid var(--page-divider-strong); max-width: 60ch; }
.more-title { margin: 0 0 10px; font-size: 19px; font-weight: 500; }
.more-copy { margin: 0; font-size: 15px; line-height: 1.7; color: var(--page-text-dim-58); }
.roadmap-row { display: flex; gap: 2px; margin-top: 26px; background: var(--page-hairline); }
.roadmap-item { background: var(--page-card-bg); padding: 14px 18px; font-size: 13px; color: var(--page-text-dim-30); }
.roadmap-item.is-live { padding-left: 0; color: var(--page-accent-lilac); }
.roadmap-item.is-dim { color: var(--page-text-dim-22); }

/* contact */
.section-contact { position: relative; border-bottom: 1px solid var(--page-divider); }
.contact-grid { padding: 120px 40px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 72px; align-items: center; }
.contact-form { display: grid; gap: 18px; max-width: 520px; margin-top: 36px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.field { display: grid; gap: 8px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--page-text-dim-50); }
.form-status { margin: 4px 0 0; font-size: 13px; color: var(--page-accent-light); min-height: 1em; }
.contact-stage { position: relative; height: min(72vh,600px); }
@media (max-width: 900px) {
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .form-row { grid-template-columns: 1fr; }
}

/* footer */
.site-footer { padding: 80px 40px 40px; }
.footer-grid { display: grid; grid-template-columns: minmax(0,1.4fr) repeat(4,minmax(0,.7fr)); gap: 48px; }
.footer-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.footer-brand .brand-mark { width: 60px; height: 60px; }
.footer-brand .brand-wordmark { height: 58px; }
.footer-tagline { margin: 0; max-width: 34ch; font-size: 15px; line-height: 1.6; color: var(--page-text-dim-60); }
.footer-heading { margin: 0 0 14px; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--page-text-dim-40); }
.footer-links { display: grid; gap: 10px; font-size: 14px; }
.footer-copy { margin: 64px 0 0; padding-top: 22px; border-top: 1px solid var(--page-divider); font-size: 12.5px; color: var(--page-text-dim-42); max-width: 1240px; margin-left: auto; margin-right: auto; }
@media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; } }

/* scroll reveal */
[data-reveal] {
  opacity: 0; transform: translateY(22px);
  transition: opacity .7s cubic-bezier(.16,.8,.3,1), transform .7s cubic-bezier(.16,.8,.3,1);
  transition-delay: var(--reveal-delay, 0s);
}
[data-reveal].is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}
