

:root {

  --page-max: 1440px;

  --page-pad: 12px;
  --grid-cols: 12;
  --gutter: 12px;
  --header-h: 72px;

  --header-pad-inline: 20px;

  --logo-w: 110px;

  --hero-h1: clamp(1.75rem, 5.333vw + .45rem, 5.25rem);

  --hero-pulse-cycle: 9s;
  --marquee-h: 120px;

  --marquee-dur: 65s;

  --marquee-cap-size: clamp(1.13rem, .57vw + .99rem, 1.5rem);
  --marquee-cap-fit: 4.2vw;

  --showcase-gap: 20px;
  --showcase-title-max: 500px;

  --showcase-body-gap: 40px;

  --quote-size-ramp: clamp(1.75rem, 1.5238vw + 1.3785rem, 2.75rem);
  --quote-size: var(--quote-size-ramp);

  --quote-mark-size: 2.49em;

  --quote-mark-rise-ratio: 1.97;
  --quote-mark-rise: calc(var(--quote-mark-rise-ratio) * 1em);

  --quote-mark-fg: #a9a9a9;

  --quote-meta-fg: #212529;
  --quote-lh: 1.25;

  --showcase-anchor: 10px;

  --showcase-frame-pad: var(--space-base);
  --showcase-card-pad: var(--space-base);
  --showcase-intro-gap: var(--space-m);

  --cursor-size: 100px;
  --cursor-blur: 10px;
  --cursor-dur: .5s;
  --cursor-tint: .1;

  --fwt-cta-gap: var(--space-l);

  --where-card-pad: var(--space-m);
  --where-arrow-w: var(--card-arrow-w);
  --where-card-min: 0px;

  --team-tile-gap: var(--space-s);
  --team-band-inset: var(--space-xs);

  --team-slide-dur: .5s;
  --team-img-dur: 1s;
  --team-delay: .5s;
  --team-scale-in: 1.1;
  --team-scale-out: .95;
  --team-swap-ms: 2000;

  --team-band-h: max(80vh, 100vw);

  --cta-card-pad: var(--space-l) var(--space-base) var(--space-base);

  --footer-icon: 28px;
  --footer-icon-gap: var(--space-m);
  --footer-contact-gap: var(--space-m);
  --footer-legal-lh: 20px;

  --footer-legal-gap: 40px;
  --footer-stack-gap: 40px;
  --footer-menu-gap: var(--space-base);
  --footer-menu-mt: var(--space-2xl);

  --footer-menu-lh: 24px;

  --footer-peek: 75px;

  --footer-band-gap: var(--space-2xl);

  --hwh-card-text: clamp(1.25rem, 1.06vw + 0.81rem, 1.75rem);
  --hwh-pill-pad-inline: 28px;
  --hwh-chev-fg: #656565;
  --hwh-ghost-fg: #bbbbbb;

  --hwh-reveal-dur: 1.4s;

  --space-2xs: 4px;
  --space-xs: 8px;
  --space-s: 12px;
  --space-base: 16px;
  --space-m: 24px;
  --space-l: 32px;
  --space-xl: 48px;
  --space-2xl: 64px;

  --spec-col-gap: 96px;
  --spec-row-gap: var(--space-2xl);
  --spec-text-size: 19px;
  --spec-text-size-mobile: 1rem;

  --extgal-col-gap: 11.2%;
  --extgal-row-gap: 19px;
  --extgal-wide-aspect: var(--gal-wide-aspect);
  --extgal-tall-w: 51.2%;

  --gal-tall-aspect: 4 / 5;
  --gal-wide-aspect: 25 / 16;

  --intgal-tall-w: 22.6%;
  --intgal-wide-w: 44.14%;
  --intgal-indent: 25%;
  --intgal-row-gap: 17px;

  --card-arrow-w: 40px;

  --section-pad: 64px;
  --section-gap: 40px;
  --footer-pad: 64px;

  --ink: #000000;
  --body-ink: #000000;

  --paper: #f6f6f6;
  --white: #ffffff;
  --paper-warm: #f7f3ea;
  --gray: #d5d5d5;
  --tint-4: rgba(0, 0, 0, .04);
  --tint-20: rgba(0, 0, 0, .2);
  --tint-40: rgba(0, 0, 0, .4);
  --scrim: rgba(0, 0, 0, .3);
  --scrim-video: rgba(0, 0, 0, .5);

  --accent-mint:     linear-gradient(90deg, #c5e5e5 -6.14%, #ebf0f0 108.04%);
  --accent-lime:     linear-gradient(90deg, #dfeea8 -4.05%, #fff2e0 106.71%);
  --accent-lavender: linear-gradient(90deg, #d0d0f0 -6.61%, #f1eae0 102.48%);
  --accent-green:    linear-gradient(90deg, #92e437 -120%, #ebfadb 100%);
  --surface-mint:    #e4efe8;
  --accent-green-bright: #00f781;

  --stage-buying:  linear-gradient(90deg, #b9eaa1 0%, #e3f7c5 100%);
  --stage-develop: linear-gradient(90deg, #e9bce5 0%, #faf0f8 100%);
  --stage-design:  linear-gradient(90deg, #ffdbb9 0%, #ffe7e0 100%);
  --stage-build:   linear-gradient(90deg, #88b3dd 0%, #e1f1e7 100%);
  --stage-plan:    linear-gradient(90deg, #bef7fe 0%, #e0f5e2 100%);
  --stage-sell:    linear-gradient(90deg, #e6c34f, 22%, #f2e9a0);

  --cv-card-grad:  linear-gradient(90deg, #b6e09e 0%, #dbf4bd 100%);

  --fg: var(--ink);
  --body-fg: var(--body-ink);
  --bg: var(--paper);

  --radius-pill: 16px;
  --radius-btn: 12px;

  --font-sans: "Inter", helvetica, Roboto, "Helvetica Neue", "Arial Nova", "Nimbus Sans", Arial, sans-serif;
  --fw-extralight: 200;
  --fw-light: 300;
  --fw-medium: 500;
  --fw-bold: 700;
  --fw-black: 900;

  --font-display: "Plus Jakarta Sans", var(--font-sans);

  --ease-enter: cubic-bezier(.22, 1, .36, 1);
  --ease-swap: cubic-bezier(.65, 0, .35, 1);
  --reveal-dur: 1s;

  --showcase-recede-scale: .85;

  --aspect-wide: 16 / 9;
  --aspect-portrait: 403 / 480;
  --cv-card-aspect: 62 / 85;
  --aspect-services: 1400 / 782;
  --aspect-bridging: 1400 / 782;
}

@media (min-width: 768px) {
  :root { --page-pad: 32px; }
}

@media (min-width: 769px) {
  :root {
    --showcase-frame-pad: var(--space-l);
    --showcase-card-pad: var(--space-m);
    --showcase-intro-gap: 40px;

    --where-card-pad: var(--space-l);
    --where-card-min: 320px;

    --team-band-inset: calc(var(--page-pad) - var(--team-tile-gap) / 2);
    --team-band-h: 33.3333vw;
  }
}

@media (min-width: 1024px) {
  :root {
    --section-pad: 100px;
    --section-gap: 80px;
    --footer-pad: 40px;
    --fwt-cta-gap: 40px;
    --cta-card-pad: 40px;

    --footer-menu-gap: var(--space-s);
    --footer-menu-mt: 0;
    --footer-band-gap: 280px;
    --footer-stack-gap: 0;
  }
}

[data-theme="light"] { --fg: var(--ink);   --body-fg: var(--body-ink); --bg: var(--paper); }
[data-theme="dark"]  { --fg: var(--paper); --body-fg: var(--paper);     --bg: var(--ink);   }
