/* Geogram marketing site — Cassandra-inspired layout, Geogram brand tokens */
/* Typography: Sofia Pro via Adobe Fonts (loaded in index.html). See docs/STYLE_GUIDE.md */

:root {
  --geogram-font-family: sofia-pro, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --geogram-max-width: 120rem;
  --geogram-section-pad: clamp(6rem, 12vw, 12rem);
  --geogram-gutter: clamp(2rem, 5vw, 4rem);
  --geogram-radius: 0.8rem;
  --geogram-nav-height: 8rem;
  --geogram-transition: 0.25s ease;
  --geogram-transition-slow: 0.55s cubic-bezier(0.22, 1, 0.36, 1);
  --geogram-reveal-distance: 2.8rem;
  --geogram-on-cta: #000;
  --geogram-btn-v2-fill: #0b071d;
}

/* Villain — dark (default superpower mode) */
:root,
[data-theme="villain"] {
  color-scheme: dark;
  --geogram-bg: #0b071d;
  --geogram-bg-elevated: #130c32;
  --geogram-body-bg: #000;
  --geogram-section-alt: #000;
  --geogram-text: #ffffff;
  --geogram-text-muted: #c8c8d4;
  --geogram-aqua: #00ffdd;
  --geogram-purple: #636bff;
  --geogram-accent: #8900fa;
  --geogram-link-hover: #7dfff0;
  --geogram-gradient-hero: radial-gradient(circle at 50% 100%, #240042 0%, #000 70%);
  --geogram-gradient-headline: linear-gradient(91deg, #341bf8 0%, #00ffea 56%, #2de5d5 100%);
  --geogram-gradient-cta: linear-gradient(66deg, #3640ff 0%, #33ebec 54%, #25f3a9 100%);
  --geogram-surface: rgba(19, 12, 50, 0.55);
  --geogram-surface-card: linear-gradient(145deg, rgba(19, 12, 50, 0.95) 0%, rgba(11, 7, 29, 0.85) 100%);
  --geogram-border-subtle: rgba(255, 255, 255, 0.06);
  --geogram-border-muted: rgba(255, 255, 255, 0.08);
  --geogram-border-strong: rgba(255, 255, 255, 0.12);
  --geogram-border-aqua: rgba(0, 255, 221, 0.35);
  --geogram-border-accent: rgba(137, 0, 250, 0.35);
  --geogram-shadow-sm: 0 4px 24px rgba(0, 0, 0, 0.25);
  --geogram-shadow-md: 0 12px 40px rgba(0, 0, 0, 0.35);
  --geogram-shadow-glow-aqua: 0 0 28px rgba(0, 255, 221, 0.4);
  --geogram-shadow-glow-purple: 0 0 20px rgba(137, 0, 250, 0.35);
  --geogram-work-glow-outer: rgba(0, 255, 221, 0.58);
  --geogram-work-glow-mid: rgba(99, 107, 255, 0.46);
  --geogram-work-glow-deep: rgba(137, 0, 250, 0.34);
  --work-glow-ring-duration: 7s;
  --work-glow-ambient-duration: 8.5s;
  --work-glow-ring-blur-extra: 100px;
  --geogram-header-top: linear-gradient(180deg, rgba(0, 0, 0, 0.85) 0%, transparent 100%);
  --geogram-header-scrolled: rgba(11, 7, 29, 0.96);
  --geogram-header-scrolled-line: rgba(255, 255, 255, 0.06);
  --geogram-nav-mobile-bg: rgba(11, 7, 29, 0.98);
  --geogram-hero-overlay: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(99, 107, 255, 0.12), transparent 70%);
  --geogram-orb-1: radial-gradient(circle, rgba(137, 0, 250, 0.45) 0%, transparent 70%);
  --geogram-orb-2: radial-gradient(circle, rgba(0, 255, 221, 0.28) 0%, transparent 70%);
  --geogram-orb-3: radial-gradient(circle, rgba(99, 107, 255, 0.35) 0%, transparent 70%);
  --geogram-outline-border: rgba(255, 255, 255, 0.5);
  --geogram-form-border: #130c32;
  --geogram-placeholder: #bababa;
  --geogram-form-success-bg: rgba(0, 255, 221, 0.1);
  --geogram-theme-toggle-bg: rgba(255, 255, 255, 0.08);
  --geogram-theme-toggle-inactive: rgba(255, 255, 255, 0.55);
  --plateau-viz-bg: var(--geogram-surface-card);
  --plateau-viz-border: var(--geogram-border-aqua);
  --plateau-viz-shadow: var(--geogram-shadow-md), 0 0 48px rgba(99, 107, 255, 0.08);
  --plateau-viz-inset: inset 0 1px 0 rgba(255, 255, 255, 0.06);
  --plateau-tab-bg: rgba(255, 255, 255, 0.06);
  --plateau-chart-stage: linear-gradient(135deg, rgba(99, 107, 255, 0.15) 0%, rgba(0, 0, 0, 0.35) 50%, rgba(0, 255, 221, 0.08) 100%);
  --plateau-chart-stage-enterprise: linear-gradient(135deg, rgba(137, 0, 250, 0.18) 0%, rgba(0, 0, 0, 0.4) 50%, rgba(0, 255, 221, 0.1) 100%);
  --plateau-chart-stage-fortune500: linear-gradient(135deg, rgba(52, 27, 248, 0.22) 0%, rgba(0, 0, 0, 0.45) 45%, rgba(37, 243, 169, 0.12) 100%);
  --plateau-chart-stage-shadow: inset 0 0 40px rgba(99, 107, 255, 0.12);
  --plateau-chart-stage-shadow-fortune500: inset 0 0 48px rgba(52, 27, 248, 0.15), 0 0 24px rgba(0, 255, 234, 0.08);
  --plateau-chart-plot-bg: rgba(0, 0, 0, 0.35);
  --plateau-chart-plot-border: rgba(255, 255, 255, 0.06);
  --plateau-chart-grid: rgba(255, 255, 255, 0.12);
  --plateau-bar-fill: linear-gradient(180deg, rgba(255, 255, 255, 0.14) 0%, rgba(99, 107, 255, 0.25) 100%);
  --plateau-bar-border: rgba(255, 255, 255, 0.12);
  --plateau-bar-sheen: rgba(255, 255, 255, 0.22);
  --plateau-gain-bg: rgba(11, 7, 29, 0.94);
  --plateau-gain-shadow: var(--geogram-shadow-sm);
  --plateau-path-filter: drop-shadow(0 0 4px rgba(0, 255, 221, 0.35));
  --plateau-disclaimer-bg: rgba(0, 0, 0, 0.3);
  --flow-line-track: rgba(255, 255, 255, 0.12);
  --flow-line-fill-shadow: none;
  --flow-icon-plan: linear-gradient(145deg, #7b82ff 0%, #4a52e8 45%, #341bf8 100%);
  --flow-icon-plan-border: rgba(123, 130, 255, 0.55);
  --flow-icon-market: linear-gradient(145deg, #5dffe8 0%, #00ffdd 40%, #25f3a9 100%);
  --flow-icon-market-border: rgba(0, 255, 221, 0.5);
  --flow-icon-geogram-bg: #0a0618;
  --flow-icon-geogram-border: rgba(0, 255, 221, 0.45);
  --flow-node-center-shadow: 0 0 32px rgba(0, 255, 221, 0.15);
}

/* Hero — light (clarity / daylight craft) */
[data-theme="hero"] {
  color-scheme: light;
  --geogram-bg: #f5f4fa;
  --geogram-bg-elevated: #ffffff;
  --geogram-body-bg: #ebe9f2;
  --geogram-section-alt: #ebe9f2;
  --geogram-text: #0b071d;
  --geogram-text-muted: #4a4860;
  --geogram-aqua: #009e8a;
  --geogram-purple: #4a52e8;
  --geogram-accent: #6b00c4;
  --geogram-link-hover: #007a6b;
  --geogram-gradient-hero: radial-gradient(circle at 50% 100%, #ddd6ff 0%, #f5f4fa 72%);
  --geogram-gradient-headline: linear-gradient(91deg, #341bf8 0%, #009e8a 56%, #2de5d5 100%);
  --geogram-gradient-cta: linear-gradient(66deg, #3640ff 0%, #33ebec 54%, #25f3a9 100%);
  --geogram-surface: rgba(255, 255, 255, 0.85);
  --geogram-surface-card: linear-gradient(145deg, #ffffff 0%, #f0eef8 100%);
  --geogram-border-subtle: rgba(11, 7, 29, 0.08);
  --geogram-border-muted: rgba(11, 7, 29, 0.1);
  --geogram-border-strong: rgba(11, 7, 29, 0.14);
  --geogram-border-aqua: rgba(0, 158, 138, 0.35);
  --geogram-border-accent: rgba(107, 0, 196, 0.28);
  --geogram-shadow-sm: 0 4px 24px rgba(11, 7, 29, 0.08);
  --geogram-shadow-md: 0 12px 40px rgba(11, 7, 29, 0.12);
  --geogram-shadow-glow-aqua: 0 0 24px rgba(0, 158, 138, 0.2);
  --geogram-shadow-glow-purple: 0 0 20px rgba(107, 0, 196, 0.15);
  --geogram-work-glow-outer: rgba(0, 158, 138, 0.52);
  --geogram-work-glow-mid: rgba(74, 82, 232, 0.4);
  --geogram-work-glow-deep: rgba(107, 0, 196, 0.28);
  --work-glow-ring-duration: 7s;
  --work-glow-ambient-duration: 8.5s;
  --work-glow-ring-blur-extra: 100px;
  --geogram-header-top: linear-gradient(180deg, rgba(245, 244, 250, 0.92) 0%, transparent 100%);
  --geogram-header-scrolled: rgba(255, 255, 255, 0.96);
  --geogram-header-scrolled-line: rgba(11, 7, 29, 0.08);
  --geogram-nav-mobile-bg: rgba(255, 255, 255, 0.98);
  --geogram-hero-overlay: radial-gradient(ellipse 80% 50% at 50% 0%, rgba(99, 107, 255, 0.14), transparent 70%);
  --geogram-orb-1: radial-gradient(circle, rgba(137, 0, 250, 0.22) 0%, transparent 70%);
  --geogram-orb-2: radial-gradient(circle, rgba(0, 158, 138, 0.18) 0%, transparent 70%);
  --geogram-orb-3: radial-gradient(circle, rgba(99, 107, 255, 0.2) 0%, transparent 70%);
  --geogram-outline-border: rgba(11, 7, 29, 0.35);
  --geogram-form-border: rgba(11, 7, 29, 0.2);
  --geogram-placeholder: #7a7890;
  --geogram-form-success-bg: rgba(0, 158, 138, 0.08);
  --geogram-theme-toggle-bg: rgba(11, 7, 29, 0.06);
  --geogram-theme-toggle-inactive: rgba(11, 7, 29, 0.5);
  --plateau-viz-bg: linear-gradient(145deg, #ffffff 0%, #f0eef8 100%);
  --plateau-viz-border: var(--geogram-border-subtle);
  --plateau-viz-shadow: var(--geogram-shadow-md);
  --plateau-viz-inset: inset 0 1px 0 rgba(255, 255, 255, 0.95);
  --plateau-tab-bg: rgba(11, 7, 29, 0.04);
  --plateau-chart-stage: linear-gradient(135deg, rgba(99, 107, 255, 0.1) 0%, rgba(235, 233, 242, 0.95) 45%, rgba(0, 158, 138, 0.08) 100%);
  --plateau-chart-stage-enterprise: linear-gradient(135deg, rgba(107, 0, 196, 0.1) 0%, rgba(235, 233, 242, 0.95) 45%, rgba(0, 158, 138, 0.08) 100%);
  --plateau-chart-stage-fortune500: linear-gradient(135deg, rgba(52, 27, 248, 0.12) 0%, rgba(235, 233, 242, 0.95) 45%, rgba(37, 243, 169, 0.1) 100%);
  --plateau-chart-stage-shadow: inset 0 0 32px rgba(99, 107, 255, 0.08);
  --plateau-chart-stage-shadow-fortune500: inset 0 0 32px rgba(74, 82, 232, 0.1);
  --plateau-chart-plot-bg: rgba(255, 255, 255, 0.75);
  --plateau-chart-plot-border: var(--geogram-border-subtle);
  --plateau-chart-grid: rgba(11, 7, 29, 0.1);
  --plateau-bar-fill: linear-gradient(180deg, rgba(74, 82, 232, 0.15) 0%, rgba(74, 82, 232, 0.32) 100%);
  --plateau-bar-border: rgba(11, 7, 29, 0.1);
  --plateau-bar-sheen: rgba(255, 255, 255, 0.65);
  --plateau-gain-bg: #ffffff;
  --plateau-gain-shadow: var(--geogram-shadow-sm);
  --plateau-path-filter: none;
  --plateau-disclaimer-bg: rgba(255, 255, 255, 0.85);
  --flow-line-track: rgba(11, 7, 29, 0.12);
  --flow-line-fill-shadow: none;
  --flow-icon-plan: linear-gradient(145deg, #636bff 0%, #4a52e8 50%, #5336e8 100%);
  --flow-icon-plan-border: rgba(74, 82, 232, 0.45);
  --flow-icon-market: linear-gradient(145deg, #33ebec 0%, #00c9b0 50%, #25f3a9 100%);
  --flow-icon-market-border: rgba(0, 158, 138, 0.4);
  --flow-icon-geogram-bg: #ffffff;
  --flow-icon-geogram-border: rgba(0, 158, 138, 0.4);
  --flow-node-center-shadow: var(--geogram-shadow-md);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

body {
  margin: 0;
  font-family: var(--geogram-font-family);
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.65;
  color: var(--geogram-text);
  background: var(--geogram-body-bg);
  -webkit-font-smoothing: antialiased;
  transition:
    background-color var(--geogram-transition),
    color var(--geogram-transition);
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

a {
  color: var(--geogram-aqua);
  text-decoration: none;
  transition: color var(--geogram-transition), opacity var(--geogram-transition);
}

a:hover,
a:focus-visible {
  color: var(--geogram-link-hover);
}

:focus-visible {
  outline: 2px solid var(--geogram-aqua);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 10000;
  padding: 0.8rem 1.6rem;
  background: var(--geogram-aqua);
  color: var(--geogram-on-cta);
  border-radius: var(--geogram-radius);
}

.skip-link:focus {
  top: 1rem;
}

/* Header */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: var(--geogram-nav-height);
  display: flex;
  align-items: center;
  padding: 0 var(--geogram-gutter);
  background: var(--geogram-header-top);
  overflow: visible;
  transition: background var(--geogram-transition), box-shadow var(--geogram-transition);
}

.site-header.is-scrolled {
  background: var(--geogram-header-scrolled);
  box-shadow: 0 1px 0 var(--geogram-header-scrolled-line);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.site-header__inner {
  width: 100%;
  max-width: var(--geogram-max-width);
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  overflow: visible;
}

.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;
}

/* Logo + hidden theme reveal */
.site-brand {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
  position: relative;
  z-index: 1001;
}

.site-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  text-decoration: none;
  color: var(--geogram-text);
  transition: color var(--geogram-transition);
}

.site-logo:hover .site-logo__mark,
.site-logo:focus-visible .site-logo__mark {
  transform: scale(1.04);
}

[data-theme="villain"] .site-logo:hover,
[data-theme="villain"] .site-logo:focus-visible {
  color: var(--geogram-aqua);
}

.site-logo__mark {
  flex-shrink: 0;
  display: block;
  width: 4.7rem;
  height: 4.7rem;
  transition: transform var(--geogram-transition);
}

.site-logo__wordmark {
  font-size: clamp(2.4rem, 3.2vw, 2.9rem);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1;
  text-transform: lowercase;
  color: inherit;
}

/* Hero: black wordmark only; mark stays brand gradient */
[data-theme="hero"] .site-logo,
[data-theme="hero"] .site-logo:hover,
[data-theme="hero"] .site-logo:focus-visible {
  color: #0b071d;
}

.site-logo__reg {
  font-size: 0.42em;
  font-weight: 500;
  line-height: 0;
  margin-left: 0.06em;
  vertical-align: super;
  opacity: 0.85;
}

.site-nav {
  display: flex;
  align-items: center;
  gap: 3.2rem;
  list-style: none;
  margin: 0;
  padding: 0;
  margin-left: auto;
}

.site-nav a {
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--geogram-text);
}

.site-nav a:hover {
  color: var(--geogram-aqua);
}

/* Nav primary CTA — same v2 button, slightly tighter than hero/contact */
.site-nav .btn--primary-v2 {
  padding: 1rem 2.4rem;
  flex-shrink: 0;
}

.site-nav a.btn--primary-v2,
.site-nav a.btn--primary-v2:hover {
  color: #fff;
}

/* Hero / Villain — hidden until you get close, then BAM */
.theme-reveal {
  position: relative;
  flex-shrink: 0;
}

/* Invisible proximity field (cursor approach + open panel) */
.theme-reveal::before {
  content: "";
  position: absolute;
  left: -1.6rem;
  top: -0.8rem;
  width: min(40rem, calc(100vw - 2rem));
  height: 32rem;
  z-index: 0;
  pointer-events: auto;
}

/* Subtle affordance beside the home link — hover the logo area to reveal theme panel */
.theme-reveal__trigger {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  opacity: 0.35;
  transition:
    opacity 0.35s ease,
    transform 0.4s cubic-bezier(0.34, 1.4, 0.64, 1);
}

.theme-reveal__hint {
  display: block;
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  background: var(--geogram-aqua);
  box-shadow: 0 0 0 0 transparent;
  animation: theme-hint-pulse 3s ease-in-out infinite;
}

@keyframes theme-hint-pulse {
  0%,
  100% {
    transform: scale(0.85);
    opacity: 0.45;
    box-shadow: 0 0 0 0 rgba(0, 255, 221, 0);
  }
  50% {
    transform: scale(1);
    opacity: 0.9;
    box-shadow: 0 0 12px rgba(0, 255, 221, 0.55);
  }
}

.site-brand:hover .theme-reveal__trigger,
.site-brand:focus-within .theme-reveal__trigger,
.theme-reveal.is-open .theme-reveal__trigger,
.theme-reveal__trigger:focus-visible {
  opacity: 1;
}

.theme-reveal__panel {
  position: absolute;
  left: -0.4rem;
  top: calc(100% + 1.4rem);
  z-index: 1100;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1.4rem;
  width: min(38rem, calc(100vw - var(--geogram-gutter) * 2));
  min-width: 28rem;
  padding: 2rem 2rem 2.2rem;
  border-radius: calc(var(--geogram-radius) + 0.6rem);
  background: var(--geogram-bg-elevated);
  border: 1px solid var(--geogram-border-aqua);
  box-shadow:
    var(--geogram-shadow-md),
    0 0 48px rgba(99, 107, 255, 0.15);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: scale(0.4) translateY(-1.6rem);
  transform-origin: top left;
  filter: blur(8px);
  -webkit-filter: blur(8px);
  transition: none;
}

.theme-reveal__burst {
  position: absolute;
  left: 2rem;
  top: -1rem;
  width: 10rem;
  height: 10rem;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(0, 255, 221, 0.55) 0%,
    rgba(137, 0, 250, 0.35) 35%,
    transparent 70%
  );
  opacity: 0;
  pointer-events: none;
  z-index: -1;
}

.site-brand:hover .theme-reveal__panel,
.site-brand:focus-within .theme-reveal__panel,
.theme-reveal.is-open .theme-reveal__panel {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  filter: blur(0);
  -webkit-filter: blur(0);
  animation: theme-reveal-bam 0.5s cubic-bezier(0.18, 1.15, 0.32, 1) forwards;
}

.site-brand:hover .theme-reveal__burst,
.site-brand:focus-within .theme-reveal__burst,
.theme-reveal.is-open .theme-reveal__burst,
.theme-reveal.is-impact .theme-reveal__burst {
  animation: theme-reveal-flash 0.55s ease-out forwards;
}

.theme-reveal.is-impact .theme-reveal__panel {
  animation: theme-reveal-bam 0.45s cubic-bezier(0.18, 1.2, 0.32, 1) forwards;
}

@keyframes theme-reveal-bam {
  0% {
    opacity: 0;
    transform: scale(0.4) translateY(-1.6rem);
    filter: blur(10px);
    -webkit-filter: blur(10px);
  }
  55% {
    opacity: 1;
    transform: scale(1.04) translateY(0.2rem);
    filter: blur(0);
    -webkit-filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
    filter: blur(0);
    -webkit-filter: blur(0);
  }
}

@keyframes theme-reveal-flash {
  0% {
    opacity: 0.9;
    transform: scale(0.2);
  }
  100% {
    opacity: 0;
    transform: scale(2.2);
  }
}

.theme-reveal__header {
  text-align: center;
}

.theme-reveal__label {
  margin: 0 0 0.4rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
  opacity: 0;
  transform: translateY(0.6rem);
}

.theme-reveal__tagline {
  margin: 0;
  font-size: 1.3rem;
  font-weight: 500;
  color: var(--geogram-text-muted);
  opacity: 0;
  transform: translateY(0.5rem);
}

.site-brand:hover .theme-reveal__label,
.site-brand:focus-within .theme-reveal__label,
.theme-reveal.is-open .theme-reveal__label {
  animation: theme-reveal-label 0.4s 0.06s ease-out forwards;
}

.site-brand:hover .theme-reveal__tagline,
.site-brand:focus-within .theme-reveal__tagline,
.theme-reveal.is-open .theme-reveal__tagline {
  animation: theme-reveal-label 0.4s 0.12s ease-out forwards;
}

@keyframes theme-reveal-label {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.theme-reveal__choices {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.2rem;
}

.theme-reveal__choice {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
  padding: 1rem;
  border: 2px solid var(--geogram-border-subtle);
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  font-family: inherit;
  text-align: left;
  color: var(--geogram-text);
  background: var(--geogram-theme-toggle-bg);
  cursor: pointer;
  opacity: 0;
  transform: scale(0.6) translateY(1rem);
  transition:
    border-color var(--geogram-transition),
    box-shadow var(--geogram-transition),
    transform var(--geogram-transition-slow);
}

.site-brand:hover .theme-reveal__choice,
.site-brand:focus-within .theme-reveal__choice,
.theme-reveal.is-open .theme-reveal__choice {
  animation: theme-reveal-choice 0.42s cubic-bezier(0.22, 1.2, 0.36, 1) forwards;
}

.site-brand:hover .theme-reveal__choice:nth-child(1),
.site-brand:focus-within .theme-reveal__choice:nth-child(1),
.theme-reveal.is-open .theme-reveal__choice:nth-child(1) {
  animation-delay: 0.1s;
}

.site-brand:hover .theme-reveal__choice:nth-child(2),
.site-brand:focus-within .theme-reveal__choice:nth-child(2),
.theme-reveal.is-open .theme-reveal__choice:nth-child(2) {
  animation-delay: 0.18s;
}

@keyframes theme-reveal-choice {
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.theme-reveal__choice:hover {
  border-color: var(--geogram-border-aqua);
  transform: translateY(-3px);
}

.theme-reveal__choice.is-active {
  border-color: var(--geogram-border-aqua);
  box-shadow: var(--geogram-shadow-sm);
}

.theme-reveal__choice--hero.is-active {
  box-shadow: 0 0 28px rgba(51, 235, 236, 0.35);
}

.theme-reveal__choice--villain.is-active {
  box-shadow: 0 0 28px rgba(137, 0, 250, 0.4);
}

/* Mini scene visuals */
.theme-reveal__scene {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  border-radius: var(--geogram-radius);
  overflow: hidden;
}

.theme-reveal__scene--hero {
  background: linear-gradient(180deg, #7dd3fc 0%, #e0f2fe 45%, #fef9c3 100%);
}

.theme-reveal__scene-sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(165deg, rgba(255, 255, 255, 0.5) 0%, transparent 50%);
}

.theme-reveal__scene-sun {
  position: absolute;
  top: 18%;
  right: 16%;
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff 0%, #fde047 35%, #f59e0b 100%);
  box-shadow:
    0 0 24px rgba(253, 224, 71, 0.9),
    0 0 48px rgba(245, 158, 11, 0.5);
}

.theme-reveal__scene--villain {
  background: linear-gradient(180deg, #1a0a32 0%, #0b071d 55%, #000 100%);
}

.theme-reveal__scene-night {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 110%, rgba(137, 0, 250, 0.35), transparent 55%);
}

.theme-reveal__scene-moon {
  position: absolute;
  top: 16%;
  left: 14%;
  width: 3.6rem;
  height: 3.6rem;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, #f5f0ff 0%, #c4b5fd 45%, #7c3aed 100%);
  box-shadow:
    0 0 20px rgba(196, 181, 253, 0.7),
    inset -0.6rem -0.4rem 0 rgba(11, 7, 29, 0.5);
}

.theme-reveal__scene-stars {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(1px 1px at 12% 22%, #fff, transparent),
    radial-gradient(1px 1px at 28% 38%, rgba(255, 255, 255, 0.9), transparent),
    radial-gradient(1.5px 1.5px at 52% 18%, #fff, transparent),
    radial-gradient(1px 1px at 72% 32%, rgba(0, 255, 221, 0.9), transparent),
    radial-gradient(1px 1px at 88% 48%, #fff, transparent),
    radial-gradient(1px 1px at 42% 58%, rgba(255, 255, 255, 0.8), transparent);
  opacity: 0.85;
}

.theme-reveal__choice-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  text-align: center;
}

.theme-reveal__choice-text {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.theme-reveal__mode {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.45rem 1rem;
  border-radius: 999px;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.theme-reveal__mode-icon {
  font-size: 1.3rem;
  line-height: 1;
}

.theme-reveal__mode--light {
  color: #0b5e52;
  background: rgba(0, 255, 221, 0.15);
  border: 1px solid rgba(0, 255, 221, 0.35);
}

.theme-reveal__mode--dark {
  color: #e8d4ff;
  background: rgba(137, 0, 250, 0.2);
  border: 1px solid rgba(137, 0, 250, 0.45);
}

[data-theme="hero"] .theme-reveal__panel {
  background: linear-gradient(160deg, #ffffff 0%, #f0eef8 100%);
}

[data-theme="villain"] .theme-reveal__panel {
  background: linear-gradient(160deg, #1a1238 0%, #0b071d 100%);
  border-color: rgba(137, 0, 250, 0.45);
}

[data-theme="villain"] .theme-reveal__tagline {
  color: var(--geogram-text-muted);
}

.nav-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 0.5rem;
  width: 4.4rem;
  height: 4.4rem;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 2.4rem;
  height: 2px;
  background: var(--geogram-text);
  transition: transform var(--geogram-transition), opacity var(--geogram-transition);
}

.nav-toggle[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
}

.nav-toggle[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Sections */
.site-main section {
  padding: var(--geogram-section-pad) var(--geogram-gutter);
}

.section-inner {
  width: 100%;
  max-width: var(--geogram-max-width);
  margin: 0 auto;
}

.eyebrow {
  display: block;
  margin-bottom: 1.2rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
}

.section-title {
  margin: 0 0 2rem;
  font-size: clamp(3.2rem, 5vw, 5.6rem);
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: -0.02em;
}

.section-lead {
  margin: 0 0 4rem;
  max-width: 68rem;
  font-size: 1.8rem;
  color: var(--geogram-text-muted);
}

/* Hero */
.hero {
  min-height: 100vh;
  display: flex;
  align-items: center;
  padding-top: calc(var(--geogram-nav-height) + 4rem);
  padding-bottom: var(--geogram-section-pad);
  background: var(--geogram-gradient-hero);
  position: relative;
  overflow: hidden;
}

.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--geogram-hero-overlay);
  pointer-events: none;
  will-change: transform;
  transform: translate3d(0, var(--hero-parallax, 0), 0);
}

.hero__ambient {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}

.hero__orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  -webkit-filter: blur(60px);
  opacity: 0.55;
  will-change: transform;
}

.hero__orb--1 {
  width: min(42vw, 48rem);
  height: min(42vw, 48rem);
  top: 8%;
  right: -8%;
  background: var(--geogram-orb-1);
  animation: hero-float 14s ease-in-out infinite;
}

.hero__orb--2 {
  width: min(36vw, 40rem);
  height: min(36vw, 40rem);
  bottom: 12%;
  left: -6%;
  background: var(--geogram-orb-2);
  animation: hero-float 18s ease-in-out infinite reverse;
}

.hero__orb--3 {
  width: min(28vw, 32rem);
  height: min(28vw, 32rem);
  bottom: 28%;
  right: 22%;
  background: var(--geogram-orb-3);
  animation: hero-float 12s ease-in-out infinite 2s;
}

@keyframes hero-float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  50% {
    transform: translate3d(0, -2.4rem, 0) scale(1.04);
  }
}

.hero .section-inner {
  position: relative;
  z-index: 1;
}

.hero__eyebrow {
  margin-bottom: 1.6rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
}

.hero__title {
  margin: 0 0 1.6rem;
  max-width: 16ch;
  font-size: clamp(4.4rem, 8.5vw, 8.8rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.03em;
  background: var(--geogram-gradient-headline);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  text-wrap: balance;
}

.hero__tagline {
  margin: 0 0 2.4rem;
  font-size: clamp(2rem, 3vw, 2.8rem);
  font-weight: 500;
  color: var(--geogram-text);
  max-width: 36ch;
}

.hero__copy {
  margin: 0 0 4rem;
  max-width: 56rem;
  font-size: 1.8rem;
  color: var(--geogram-text-muted);
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1.4rem 3.2rem;
  border-radius: 999px;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform var(--geogram-transition), box-shadow var(--geogram-transition), opacity var(--geogram-transition);
}

.btn:hover {
  transform: translateY(-2px);
}

/* Primary CTA — v2 (square blur + cursor shine) */
@property --v2-ring-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

@property --v2-shine-opacity {
  syntax: "<number>";
  inherits: false;
  initial-value: 0;
}

.btn--primary-v2 {
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: visible;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  background: transparent;
  color: #fff;
  text-shadow: none;
  --v2-glow-x: 0px;
  --v2-glow-y: 0px;
  --v2-shine-opacity: 0;
  box-shadow:
    0 0 22px rgba(54, 64, 255, 0.32),
    0 0 36px rgba(0, 255, 221, 0.2);
  transition:
    transform var(--geogram-transition),
    box-shadow var(--geogram-transition),
    border-color var(--geogram-transition),
    --v2-shine-opacity 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.btn--primary-v2::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -3;
  width: 9rem;
  height: 9rem;
  border-radius: 0.35rem;
  background: conic-gradient(
    from 0deg,
    #341bf8 0deg,
    #3640ff 72deg,
    #00ffdd 144deg,
    #33ebec 216deg,
    #636bff 288deg,
    #341bf8 360deg
  );
  filter: blur(38px);
  -webkit-filter: blur(38px);
  opacity: 0.62;
  transform: translate(calc(-50% + var(--v2-glow-x)), calc(-50% + var(--v2-glow-y))) rotate(0deg);
  animation: styles-cta-v2-spin 2.2s linear infinite;
  pointer-events: none;
  transition:
    opacity var(--geogram-transition),
    filter var(--geogram-transition);
}

.btn--primary-v2::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--geogram-btn-v2-fill);
  clip-path: inset(0 round 999px);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

.btn--primary-v2:hover {
  color: #fff;
}

.btn--primary-v2.btn--primary-v2--active {
  color: #fff;
  border: 1px solid transparent;
  background:
    linear-gradient(var(--geogram-btn-v2-fill), var(--geogram-btn-v2-fill)) padding-box,
    conic-gradient(
      from var(--v2-ring-angle, 0deg),
      transparent 0deg,
      rgba(255, 255, 255, calc(0.12 * var(--v2-shine-opacity))) 8deg,
      rgba(255, 255, 255, calc(0.88 * var(--v2-shine-opacity))) 24deg,
      rgba(0, 255, 221, calc(0.72 * var(--v2-shine-opacity))) 34deg,
      rgba(255, 255, 255, calc(0.35 * var(--v2-shine-opacity))) 48deg,
      rgba(54, 64, 255, calc(0.35 * var(--v2-shine-opacity))) 62deg,
      transparent 88deg,
      transparent 360deg
    ) border-box;
  background-clip: padding-box, border-box;
  --v2-shine-opacity: 1;
  box-shadow:
    0 0 32px rgba(54, 64, 255, 0.62),
    0 0 56px rgba(0, 255, 221, 0.48),
    0 0 80px rgba(99, 107, 255, 0.28);
}

.btn--primary-v2.btn--primary-v2--active::before {
  opacity: 0.78;
  filter: blur(42px) brightness(1.28) saturate(1.12);
  -webkit-filter: blur(42px) brightness(1.28) saturate(1.12);
  animation: styles-cta-v2-spin 0.75s linear infinite;
}

.btn--primary-v2.btn--primary-v2--active::after {
  inset: 1px;
  background: var(--geogram-btn-v2-fill);
  clip-path: inset(0 round 999px);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

@keyframes styles-cta-v2-spin {
  to {
    transform: translate(calc(-50% + var(--v2-glow-x)), calc(-50% + var(--v2-glow-y))) rotate(360deg);
  }
}

.btn--outline {
  border-color: var(--geogram-outline-border);
  color: var(--geogram-text);
  background: transparent;
}

.btn--outline:hover {
  border-color: var(--geogram-aqua);
  color: var(--geogram-aqua);
  box-shadow: var(--geogram-shadow-glow-purple);
}

/* Services grid (Featured projects pattern) */
.services {
  background: var(--geogram-bg);
}

.services__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr));
  gap: 2.4rem;
  margin-top: 2rem;
}

.service-card {
  padding: 3.2rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
  box-shadow: var(--geogram-shadow-sm);
  transition:
    border-color var(--geogram-transition),
    transform var(--geogram-transition-slow),
    box-shadow var(--geogram-transition-slow),
    background var(--geogram-transition);
}

.service-card::before {
  content: "";
  display: block;
  width: 3.2rem;
  height: 3px;
  margin-bottom: 2rem;
  border-radius: 999px;
  background: var(--geogram-gradient-cta);
  opacity: 0.85;
  transition: width var(--geogram-transition-slow), opacity var(--geogram-transition);
}

.service-card:hover {
  border-color: var(--geogram-border-aqua);
  transform: translateY(-6px);
  box-shadow: var(--geogram-shadow-md), 0 0 32px rgba(99, 107, 255, 0.12);
}

.service-card:hover::before {
  width: 4.8rem;
  opacity: 1;
}

.service-card h3 {
  margin: 0 0 1.2rem;
  font-size: 2rem;
  font-weight: 600;
  color: var(--geogram-aqua);
}

.service-card p {
  margin: 0;
  font-size: 1.5rem;
  color: var(--geogram-text-muted);
}

/* Focus / What we do */
.focus {
  background: var(--geogram-section-alt);
}

.focus__columns {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
  gap: 4rem;
  margin-top: 2rem;
}

.focus__block {
  padding: 3.6rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
  transition:
    border-color var(--geogram-transition),
    transform var(--geogram-transition-slow),
    box-shadow var(--geogram-transition-slow),
    background var(--geogram-transition);
}

.focus__block:hover {
  border-color: var(--geogram-border-accent);
  transform: translateY(-4px);
  box-shadow: var(--geogram-shadow-md);
}

.focus__block h3 {
  margin: 0 0 1.6rem;
  font-size: 2.4rem;
  font-weight: 600;
}

.focus__block p {
  margin: 0;
  color: var(--geogram-text-muted);
}

/* About */
.about {
  background: var(--geogram-bg);
}

.about__grid,
.about__mission,
.about__partner-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(30rem, 1fr));
  gap: 4rem;
  margin-top: 2rem;
  align-items: start;
}

.about__block {
  margin-top: clamp(5rem, 10vw, 8rem);
}

.about__block-title {
  margin: 0.8rem 0 1.6rem;
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  font-weight: 600;
  line-height: 1.2;
}

.about__block-lead {
  max-width: 72rem;
  margin: 0 0 2.4rem;
  color: var(--geogram-text-muted);
}

.about__panel-title {
  margin: 0 0 1.6rem;
  font-size: 2rem;
  font-weight: 600;
  color: var(--geogram-aqua);
}

.about__panel > p:last-child {
  margin-bottom: 0;
}

.about__credibility {
  margin-top: 2rem !important;
  padding-top: 2rem;
  border-top: 1px solid var(--geogram-border-muted);
  font-size: 1.5rem !important;
}

.about__cap-list--values {
  margin-top: 2rem;
  grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr));
}

.about__execute-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1.2rem;
  max-width: 56rem;
}

.about__execute-list li {
  position: relative;
  padding-left: 2rem;
  color: var(--geogram-text-muted);
}

.about__execute-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.75em;
  width: 0.6rem;
  height: 0.6rem;
  border-radius: 50%;
  background: var(--geogram-gradient-cta);
}

.about__panel {
  margin: 0;
  padding: 3.6rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
  box-shadow: var(--geogram-shadow-sm);
  transition:
    border-color var(--geogram-transition),
    transform var(--geogram-transition-slow),
    box-shadow var(--geogram-transition-slow),
    background var(--geogram-transition);
}

.about__panel:hover {
  border-color: var(--geogram-border-aqua);
  transform: translateY(-4px);
  box-shadow: var(--geogram-shadow-md), 0 0 32px rgba(99, 107, 255, 0.1);
}

.about__panel > p {
  margin: 0 0 2.4rem;
  color: var(--geogram-text-muted);
}

.about__awards {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2.4rem;
}

.about__award {
  display: inline-block;
  padding: 0.6rem 1.4rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
  border: 1px solid var(--geogram-border-aqua);
  border-radius: 999px;
  background: var(--geogram-form-success-bg);
}

.about__pullquote {
  margin: 0;
  padding: 2rem 0 0;
  border-top: 1px solid var(--geogram-border-muted);
}

.about__pullquote p {
  margin: 0;
  font-size: 1.8rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--geogram-text);
}

.about__pullquote p::before {
  content: "“";
  color: var(--geogram-purple);
}

.about__capabilities-title {
  margin: 0 0 2rem;
  font-size: 2rem;
  font-weight: 600;
  color: var(--geogram-aqua);
}

.about__cap-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1.6rem;
}

.about__cap {
  padding: 2rem 2.4rem;
  border-radius: var(--geogram-radius);
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
  transition:
    border-color var(--geogram-transition),
    transform var(--geogram-transition-slow),
    box-shadow var(--geogram-transition-slow),
    background var(--geogram-transition);
}

.about__cap:hover {
  border-color: var(--geogram-border-accent);
  transform: translateX(6px);
  box-shadow: -4px 8px 32px rgba(99, 107, 255, 0.12);
}

.about__cap strong {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--geogram-text);
}

.about__cap span {
  display: block;
  font-size: 1.5rem;
  color: var(--geogram-text-muted);
}

/* About page */
.page-about .site-main {
  padding-top: 0;
}

.about-hero {
  min-height: calc(100vh - var(--geogram-nav-height));
  padding-top: calc(var(--geogram-nav-height) + 4rem);
}

.about-hero__orb-extra {
  width: min(22vw, 26rem);
  height: min(22vw, 26rem);
  top: 42%;
  left: 38%;
  background: var(--geogram-orb-3);
  opacity: 0.4;
  animation: hero-float 16s ease-in-out infinite 1s;
}

.about-hero__scroll {
  position: absolute;
  bottom: 3.2rem;
  left: 50%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.8rem;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  transform: translateX(-50%);
  transition: color var(--geogram-transition);
}

.about-hero__scroll:hover {
  color: var(--geogram-aqua);
}

.about-hero__scroll-line {
  display: block;
  width: 1px;
  height: 4.8rem;
  background: linear-gradient(180deg, var(--geogram-aqua), transparent);
  animation: about-scroll-pulse 2s ease-in-out infinite;
}

@keyframes about-scroll-pulse {
  0%,
  100% {
    opacity: 0.35;
    transform: scaleY(0.65);
    transform-origin: top;
  }
  50% {
    opacity: 1;
    transform: scaleY(1);
    transform-origin: top;
  }
}

/* Transition bands */
.about-band {
  position: relative;
  overflow: hidden;
  padding: 2.4rem 0;
  background: var(--geogram-section-alt);
  border-block: 1px solid var(--geogram-border-subtle);
}

.about-band__shine {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(0, 255, 221, 0.08) 45%,
    rgba(99, 107, 255, 0.12) 55%,
    transparent 100%
  );
  animation: about-band-shine 6s ease-in-out infinite;
  pointer-events: none;
}

@keyframes about-band-shine {
  0%,
  100% {
    transform: translateX(-30%);
    opacity: 0.5;
  }
  50% {
    transform: translateX(30%);
    opacity: 1;
  }
}

.about-band__track {
  overflow: hidden;
  mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}

.about-band__content {
  display: flex;
  align-items: center;
  gap: 2.4rem;
  width: max-content;
  padding-inline: 2rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
  white-space: nowrap;
  animation: about-band-scroll 32s linear infinite;
}

.about-band--reverse .about-band__content {
  animation-direction: reverse;
  animation-duration: 38s;
}

.about-band__dot {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: var(--geogram-gradient-cta);
  flex-shrink: 0;
}

@keyframes about-band-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* Story + plateau visual */
.about-story {
  padding: var(--geogram-section-pad) 0;
  background: var(--geogram-bg);
}

.about-story__layout {
  display: grid;
  grid-template-columns: 1fr minmax(32rem, 1fr);
  gap: clamp(3rem, 6vw, 8rem);
  align-items: center;
}

.plateau-viz {
  margin: 0;
  padding: 3.6rem 2.8rem 2.8rem;
  border-radius: calc(var(--geogram-radius) + 1.2rem);
  background: var(--plateau-viz-bg);
  border: 1px solid var(--plateau-viz-border);
  box-shadow: var(--plateau-viz-shadow), var(--plateau-viz-inset);
}

.plateau-viz__label {
  margin: 0 0 0.8rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
}

.plateau-viz__intro {
  margin: 0 0 2rem;
  font-size: 1.4rem;
  line-height: 1.5;
  color: var(--geogram-text-muted);
}

.plateau-viz__tabs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.8rem;
  margin-bottom: 2.4rem;
}

@media (min-width: 640px) {
  .plateau-viz__tabs {
    grid-template-columns: repeat(4, 1fr);
  }
}

.plateau-viz__tab {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  padding: 1rem 0.6rem;
  font-family: inherit;
  color: var(--geogram-text-muted);
  background: var(--plateau-tab-bg);
  border: 1px solid var(--geogram-border-subtle);
  border-radius: var(--geogram-radius);
  cursor: pointer;
  overflow: hidden;
  -webkit-appearance: none;
  appearance: none;
  outline: none;
  transition: border-color var(--geogram-transition);
}

.plateau-viz__tab::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background: var(--geogram-gradient-cta);
  opacity: 0;
  transition: opacity var(--geogram-transition);
  pointer-events: none;
  transform: translateZ(0);
}

.plateau-viz__tab-inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  max-width: 100%;
  pointer-events: none;
}

.plateau-viz__tab-title {
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  color: inherit;
}

.plateau-viz__tab-sub {
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.2;
  text-transform: none;
  text-align: center;
  color: inherit;
  opacity: 0.85;
}

.plateau-viz__tab:hover {
  border-color: var(--geogram-border-aqua);
  color: var(--geogram-aqua);
}

.plateau-viz__tab.is-active {
  color: var(--geogram-on-cta);
  background: transparent;
  border-color: transparent;
}

.plateau-viz__tab.is-active::before {
  opacity: 1;
  inset: -1px;
}

.plateau-viz__tab.is-active .plateau-viz__tab-sub {
  opacity: 1;
}

.plateau-viz__tab:focus-visible {
  outline: 2px solid var(--geogram-aqua);
  outline-offset: 2px;
}

@media (min-width: 640px) {
  .plateau-viz__tab-title {
    font-size: 1.05rem;
  }
}

.plateau-viz__panel[hidden] {
  display: none;
}

.plateau-chart {
  display: grid;
  grid-template-columns: 5.6rem 1fr;
  gap: 1.6rem;
  align-items: stretch;
}

.plateau-chart__yaxis {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 26rem;
  padding: 1.6rem 0 5.6rem;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--geogram-text-muted);
  text-align: right;
}

.plateau-chart--enterprise .plateau-chart__yaxis,
.plateau-chart--fortune500 .plateau-chart__yaxis {
  font-size: 1rem;
}

.plateau-chart__stage {
  position: relative;
  padding: 0.4rem;
  border-radius: calc(var(--geogram-radius) + 0.6rem);
  background: var(--plateau-chart-stage);
  box-shadow: var(--plateau-chart-stage-shadow);
}

.plateau-chart--enterprise .plateau-chart__stage {
  background: var(--plateau-chart-stage-enterprise);
}

.plateau-chart--fortune500 .plateau-chart__stage {
  background: var(--plateau-chart-stage-fortune500);
  box-shadow: var(--plateau-chart-stage-shadow-fortune500);
}

.plateau-chart__plot {
  position: relative;
  height: 26rem;
  padding: 1.6rem 1.2rem 5.6rem;
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  border: 1px solid var(--plateau-chart-plot-border);
  background: var(--plateau-chart-plot-bg);
  overflow: hidden;
}

.plateau-chart__grid {
  position: absolute;
  inset: 1.6rem 1.2rem 5.6rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  pointer-events: none;
}

.plateau-chart__grid span {
  display: block;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--plateau-chart-grid) 20%,
    var(--plateau-chart-grid) 80%,
    transparent
  );
}

.plateau-chart__connector {
  position: absolute;
  inset: 1.6rem 1.2rem 5.6rem;
  width: calc(100% - 2.4rem);
  height: calc(100% - 7.2rem);
  overflow: visible;
  pointer-events: none;
}

.plateau-chart__area {
  opacity: 0;
  transition: opacity 1s ease 0.2s;
}

.plateau-viz.is-lit .plateau-viz__panel.is-active .plateau-chart__area {
  opacity: 1;
}

.plateau-chart__path {
  stroke-dasharray: 140;
  stroke-dashoffset: 140;
  filter: var(--plateau-path-filter);
  transition: stroke-dashoffset 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.plateau-viz.is-lit .plateau-viz__panel.is-active .plateau-chart__path {
  stroke-dashoffset: 0;
}

.plateau-chart__gain {
  position: absolute;
  top: 38%;
  left: 50%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.8rem 1.2rem;
  border-radius: 999px;
  background: var(--plateau-gain-bg);
  border: 1px solid var(--geogram-border-aqua);
  box-shadow: var(--plateau-gain-shadow);
  transform: translate(-50%, -50%) scale(0.85);
  opacity: 0;
  transition:
    opacity 0.6s ease 0.5s,
    transform 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.5s;
  pointer-events: none;
}

.plateau-viz.is-lit .plateau-viz__panel.is-active .plateau-chart__gain {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.plateau-chart__gain-value {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  background: var(--geogram-gradient-headline);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.plateau-chart__gain-sub {
  font-size: 1rem;
  font-weight: 500;
  color: var(--geogram-text-muted);
  white-space: nowrap;
}

.plateau-chart__bars {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(3rem, 12%, 6rem);
  height: 100%;
  padding: 0 1rem;
}

.plateau-chart__col {
  flex: 0 1 10rem;
  width: 100%;
  max-width: 11rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.2rem;
  height: 100%;
  justify-content: flex-end;
}

.plateau-chart__bar {
  position: relative;
  width: min(100%, 8rem);
  height: var(--bar-pct, 50%);
  min-height: 2.4rem;
  display: flex;
  align-items: flex-end;
}

.plateau-chart__bar-fill {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 0.8rem 0.8rem 0 0;
  background: var(--plateau-bar-fill);
  border: 1px solid var(--plateau-bar-border);
  box-shadow: inset 0 1px 0 var(--plateau-bar-sheen);
  transform-origin: bottom;
  transform: scaleY(0);
  transition:
    transform 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.1s,
    background var(--geogram-transition-slow),
    border-color var(--geogram-transition),
    box-shadow var(--geogram-transition-slow);
}

.plateau-chart__bar-fill::after {
  content: "";
  position: absolute;
  top: 0;
  left: 12%;
  right: 12%;
  height: 35%;
  border-radius: 0.8rem 0.8rem 0 0;
  background: linear-gradient(180deg, var(--plateau-bar-sheen), transparent);
  pointer-events: none;
}

.plateau-chart__bar--goal .plateau-chart__bar-fill {
  background: var(--geogram-gradient-cta);
  border-color: rgba(0, 255, 221, 0.35);
}

.plateau-viz.is-lit .plateau-viz__panel.is-active .plateau-chart__bar-fill {
  transform: scaleY(1);
}

.plateau-viz.is-lit .plateau-viz__panel.is-active .plateau-chart__col:nth-child(2) .plateau-chart__bar-fill {
  transition-delay: 0.4s;
}

.plateau-viz.is-lit .plateau-viz__panel.is-active .plateau-chart__bar--goal .plateau-chart__bar-fill {
  box-shadow: var(--geogram-shadow-glow-aqua), inset 0 1px 0 var(--plateau-bar-sheen);
}

.plateau-chart__col-label {
  margin: 0;
  text-align: center;
  font-size: 1.2rem;
  line-height: 1.4;
  color: var(--geogram-text-muted);
}

.plateau-chart__col-label strong {
  display: block;
  font-size: clamp(1.4rem, 2.5vw, 1.8rem);
  font-weight: 700;
  color: var(--geogram-text);
}

.plateau-chart__col-label span {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.1rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.plateau-chart__col:has(.plateau-chart__bar--goal) .plateau-chart__col-label strong {
  color: var(--geogram-aqua);
}

.plateau-viz__meta {
  display: grid;
  gap: 1.2rem;
  margin: 2rem 0 0;
  padding: 1.6rem 0 0;
  border-top: 1px solid var(--geogram-border-muted);
}

.plateau-viz__meta div {
  display: grid;
  gap: 0.3rem;
}

.plateau-viz__meta dt {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
}

.plateau-viz__meta dd {
  margin: 0;
  font-size: 1.4rem;
  line-height: 1.45;
  color: var(--geogram-text-muted);
}

.plateau-viz__disclaimer {
  margin: 2.4rem 0 0;
  padding: 1.6rem 1.8rem;
  font-size: 1.2rem;
  line-height: 1.55;
  color: var(--geogram-text-muted);
  background: var(--plateau-disclaimer-bg);
  border: 1px solid var(--geogram-border-muted);
  border-radius: var(--geogram-radius);
}

.plateau-viz__disclaimer::before {
  content: "Disclaimer · ";
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
  font-size: 1rem;
}

/* Stats strip */
.about-stats {
  padding: clamp(4rem, 8vw, 6rem) 0;
  background: var(--geogram-section-alt);
}

.about-stats__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.about-stats__item {
  padding: 3.2rem 2.4rem;
  text-align: center;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
  transition:
    transform var(--geogram-transition-slow),
    border-color var(--geogram-transition),
    box-shadow var(--geogram-transition-slow);
}

.about-stats__item:hover {
  transform: translateY(-6px);
  border-color: var(--geogram-border-aqua);
  box-shadow: var(--geogram-shadow-md), 0 0 40px rgba(99, 107, 255, 0.15);
}

.about-stats__value {
  display: block;
  margin-bottom: 1rem;
  font-size: clamp(3.2rem, 5vw, 4.8rem);
  font-weight: 700;
  line-height: 1;
  background: var(--geogram-gradient-headline);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.about-stats__label {
  display: block;
  font-size: 1.5rem;
  color: var(--geogram-text-muted);
  line-height: 1.5;
}

/* Values section */
.about-values {
  padding: var(--geogram-section-pad) 0;
  background: var(--geogram-bg);
}

/* Flow pipeline */
.about-flow {
  padding: var(--geogram-section-pad) 0;
  background: var(--geogram-gradient-hero);
  position: relative;
  overflow: hidden;
}

.about-flow::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--geogram-hero-overlay);
  pointer-events: none;
}

.about-flow .section-inner {
  position: relative;
  z-index: 1;
}

.about-flow__pipeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2.4rem;
  margin: 4rem 0;
  padding-top: 2rem;
}

.about-flow__line {
  position: absolute;
  top: 4.8rem;
  left: 12%;
  right: 12%;
  height: 3px;
  background: var(--flow-line-track);
  border-radius: 999px;
  overflow: hidden;
}

.about-flow__line-fill {
  display: block;
  height: 100%;
  width: 0%;
  background: var(--geogram-gradient-cta);
  border-radius: inherit;
  box-shadow: var(--flow-line-fill-shadow);
  transition: width 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.about-flow__pipeline.is-active .about-flow__line-fill {
  width: 100%;
}

.about-flow__node {
  position: relative;
  z-index: 1;
  padding: 2.4rem 2rem 2rem;
  text-align: center;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
  opacity: 0.72;
  transform: translateY(1.6rem);
  transition:
    opacity var(--geogram-transition-slow),
    transform var(--geogram-transition-slow),
    border-color var(--geogram-transition),
    box-shadow var(--geogram-transition-slow);
}

.about-flow__pipeline.is-active .about-flow__node {
  opacity: 1;
  transform: translateY(0);
}

.about-flow__pipeline.is-active .about-flow__node:nth-child(2) {
  transition-delay: 0.15s;
}

.about-flow__pipeline.is-active .about-flow__node:nth-child(3) {
  transition-delay: 0.3s;
}

.about-flow__pipeline.is-active .about-flow__node:nth-child(4) {
  transition-delay: 0.45s;
}

.about-flow__node--center {
  border-color: var(--geogram-border-aqua);
  box-shadow: var(--flow-node-center-shadow);
}

.about-flow__icon {
  width: 6.4rem;
  height: 6.4rem;
  margin: 0 auto 1.6rem;
  border-radius: 50%;
  border: 2px solid var(--geogram-border-subtle);
  flex-shrink: 0;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.about-flow__icon--plan {
  background: var(--flow-icon-plan);
  border-color: var(--flow-icon-plan-border);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.about-flow__icon--geogram {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem;
  background: var(--flow-icon-geogram-bg);
  border-color: var(--flow-icon-geogram-border);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.about-flow__bug {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
}

.about-flow__icon--market {
  background: var(--flow-icon-market);
  border-color: var(--flow-icon-market-border);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.about-flow__node h3 {
  margin: 0 0 0.8rem;
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--geogram-aqua);
}

.about-flow__node p {
  margin: 0;
  font-size: 1.4rem;
  color: var(--geogram-text-muted);
}

.about-flow .about__partner-grid {
  margin-top: 2rem;
}

/* Execute orbit visual */
.about-execute {
  padding: var(--geogram-section-pad) 0;
  background: var(--geogram-bg);
}

.about-execute__layout {
  display: grid;
  grid-template-columns: minmax(24rem, 0.9fr) 1fr;
  gap: clamp(3rem, 6vw, 8rem);
  align-items: center;
}

.about-execute__visual {
  position: relative;
  aspect-ratio: 1;
  max-width: 36rem;
  margin: 0 auto;
}

.about-execute__rotator {
  position: absolute;
  inset: 0;
  animation: about-orbit-spin 56s linear infinite;
}

.about-execute__spokes {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.about-execute__spoke {
  stroke: var(--geogram-aqua);
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-dasharray: 72;
  stroke-dashoffset: 72;
  opacity: 0.35;
  animation: about-execute-spoke-pulse 2.8s ease-in-out infinite;
}

.about-execute__spoke:nth-child(1) {
  animation-delay: 0s;
}

.about-execute__spoke:nth-child(2) {
  animation-delay: 0.55s;
}

.about-execute__spoke:nth-child(3) {
  animation-delay: 1.1s;
}

.about-execute__spoke:nth-child(4) {
  animation-delay: 1.65s;
}

.about-execute__spoke:nth-child(5) {
  animation-delay: 2.2s;
}

@keyframes about-execute-spoke-pulse {
  0%,
  100% {
    stroke-dashoffset: 72;
    opacity: 0.2;
  }
  45%,
  55% {
    stroke-dashoffset: 0;
    opacity: 0.9;
  }
}

.about-execute__ring {
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  border: 1px dashed var(--geogram-border-aqua);
  opacity: 0.45;
  pointer-events: none;
}

.about-execute__core {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 8rem;
  height: 8rem;
  border-radius: 50%;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--geogram-on-cta);
  background: var(--geogram-gradient-cta);
  box-shadow: var(--geogram-shadow-glow-aqua);
  transform: translate(-50%, -50%);
}

.about-execute__orbit {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.about-execute__orbit li {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  transform: rotate(var(--orbit-angle)) translateY(-14rem);
}

.about-execute__orbit li span {
  display: inline-block;
  padding: 0.8rem 1.4rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
  white-space: nowrap;
  border: 1px solid var(--geogram-border-aqua);
  border-radius: 999px;
  background: var(--geogram-surface);
  transform: translate(-50%, -50%);
  animation: about-orbit-spin 56s linear infinite reverse;
}

.about-execute__orbit li:nth-child(1) {
  --orbit-angle: 0deg;
}

.about-execute__orbit li:nth-child(2) {
  --orbit-angle: 72deg;
}

.about-execute__orbit li:nth-child(3) {
  --orbit-angle: 144deg;
}

.about-execute__orbit li:nth-child(4) {
  --orbit-angle: 216deg;
}

.about-execute__orbit li:nth-child(5) {
  --orbit-angle: 288deg;
}

@keyframes about-orbit-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Finale */
.about-finale {
  position: relative;
  padding: clamp(8rem, 16vw, 14rem) 0;
  overflow: hidden;
  text-align: center;
  background: var(--geogram-section-alt);
}

.about-finale__ambient {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

.about-finale__ambient .hero__orb {
  opacity: 0.45;
}

.about-finale__inner {
  position: relative;
  z-index: 1;
  max-width: 64rem;
  margin: 0 auto;
}

.about-finale__title {
  margin: 0 0 1.6rem;
  font-size: clamp(3.6rem, 7vw, 6.4rem);
  font-weight: 700;
  line-height: 1.05;
  background: var(--geogram-gradient-headline);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.about-finale__lead {
  margin: 0 0 3.2rem;
  font-size: 1.8rem;
  color: var(--geogram-text-muted);
}

.about__cta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.6rem;
  margin-top: 0;
}

@media (max-width: 991px) {
  .about-story__layout,
  .about-execute__layout {
    grid-template-columns: 1fr;
  }

  .plateau-viz {
    order: -1;
    max-width: 40rem;
    margin: 0 auto;
  }

  .about-flow__pipeline {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-top: 0;
  }

  .about-flow__line {
    display: none;
  }

  .about-stats__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .about-hero__scroll {
    display: none;
  }

  .plateau-chart__yaxis {
    height: 22rem;
    padding-bottom: 5.2rem;
  }

  .plateau-chart__plot {
    height: 22rem;
    padding-bottom: 5.2rem;
  }

  .plateau-chart__connector {
    inset: 1.6rem 1rem 5.2rem;
    width: calc(100% - 2rem);
    height: calc(100% - 6.8rem);
  }

  .plateau-chart__grid {
    inset: 1.6rem 1rem 5.2rem;
  }

  .plateau-chart__bars {
    gap: 2rem;
  }

  .plateau-chart__col {
    max-width: 8rem;
  }

  .plateau-chart__gain {
    padding: 0.6rem 1rem;
  }

  .plateau-chart__gain-value {
    font-size: 1.3rem;
  }

  .about-execute__orbit li {
    transform: rotate(var(--orbit-angle)) translateY(-11rem);
  }

  .about-execute__orbit li span {
    font-size: 1rem;
    padding: 0.6rem 1rem;
  }
}

/* Services page */
.page-services .site-main {
  padding-top: 0;
}

.services-hero {
  min-height: calc(70vh - var(--geogram-nav-height));
  padding-top: calc(var(--geogram-nav-height) + 4rem);
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

.services-overview {
  background: var(--geogram-section-alt);
}

.services-overview__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  gap: 2.4rem;
  margin-top: 2.4rem;
}

.service-card--link {
  position: relative;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}

.service-card--link::before {
  margin-bottom: 1.4rem;
}

.service-card__index {
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.18em;
  color: var(--geogram-text-muted);
}

.service-card__cue {
  margin-top: auto;
  padding-top: 1.6rem;
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--geogram-aqua);
  opacity: 0;
  transform: translateX(-0.4rem);
  transition:
    opacity var(--geogram-transition),
    transform var(--geogram-transition);
}

.service-card--link:hover .service-card__cue,
.service-card--link:focus-visible .service-card__cue {
  opacity: 1;
  transform: translateX(0);
}

.services-detail {
  background: var(--geogram-bg);
}

.services-detail--alt {
  background: var(--geogram-section-alt);
}

.services-detail__layout {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(3rem, 6vw, 6rem);
  align-items: start;
}

.services-detail__intro .section-title {
  margin-bottom: 1.6rem;
}

.services-detail__cta {
  margin-top: 2.8rem;
}

.services-detail__list {
  max-width: none;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem 2.4rem;
  padding: 3rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
  box-shadow: var(--geogram-shadow-sm);
}

.services-detail__list li {
  font-weight: 500;
  color: var(--geogram-text);
}

/* Process */
.services-process__grid {
  counter-reset: none;
  list-style: none;
  margin: 2.4rem 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 2rem;
}

.services-step {
  position: relative;
  padding: 2.8rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
  box-shadow: var(--geogram-shadow-sm);
  transition:
    border-color var(--geogram-transition),
    transform var(--geogram-transition-slow),
    box-shadow var(--geogram-transition-slow),
    background var(--geogram-transition);
}

.services-step:hover {
  border-color: var(--geogram-border-aqua);
  transform: translateY(-6px);
  box-shadow: var(--geogram-shadow-md), 0 0 32px rgba(99, 107, 255, 0.12);
}

.services-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin-bottom: 1.6rem;
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  border-radius: 50%;
  background: var(--geogram-gradient-cta);
}

.services-step h3 {
  margin: 0 0 0.8rem;
  font-size: 1.9rem;
  font-weight: 600;
  color: var(--geogram-aqua);
}

.services-step p {
  margin: 0;
  font-size: 1.45rem;
  color: var(--geogram-text-muted);
}

.services-engage {
  background: var(--geogram-section-alt);
}

@media (max-width: 991px) {
  .services-detail__layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .services-detail__list {
    grid-template-columns: 1fr;
    padding: 2.4rem;
  }
}

/* Services — kinetic hero (Lusion-inspired line reveal) */
.services-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: calc(92vh - var(--geogram-nav-height));
}

.services-hero__headline {
  margin: 1.2rem 0 2.8rem;
  max-width: 18ch;
  font-size: clamp(3.6rem, 9vw, 9.6rem);
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.03em;
  text-wrap: balance;
  color: var(--geogram-text);
}

.services-hero__line {
  display: block;
  overflow: hidden;
  padding-bottom: 0.14em;
  margin-bottom: -0.14em;
}

.services-hero__line-text {
  display: inline-block;
  will-change: transform;
}

/* Cinematic line-mask reveal: text slides up from behind the clip */
.services-hero__line-text.reveal {
  opacity: 1;
  transform: translate3d(0, 110%, 0);
  transition: transform 0.95s cubic-bezier(0.16, 1, 0.3, 1);
}

.services-hero__line-text.reveal.is-visible {
  transform: translate3d(0, 0, 0);
}

.services-hero__line--accent .services-hero__line-text {
  background: linear-gradient(
    100deg,
    #341bf8 0%,
    #00ffea 30%,
    #2de5d5 50%,
    #00ffea 70%,
    #341bf8 100%
  );
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: services-gradient-flow 8s linear infinite;
}

@keyframes services-gradient-flow {
  from {
    background-position: 0% 50%;
  }
  to {
    background-position: 220% 50%;
  }
}

/* Slow-drifting ambient orbs on the services hero */
.services-hero .hero__orb {
  animation: services-orb-drift 18s ease-in-out infinite;
}

.services-hero .hero__orb--2 {
  animation-duration: 23s;
  animation-direction: reverse;
}

.services-hero .hero__orb--3 {
  animation-duration: 27s;
}

@keyframes services-orb-drift {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  33% {
    transform: translate3d(4%, -6%, 0) scale(1.08);
  }
  66% {
    transform: translate3d(-5%, 4%, 0) scale(0.95);
  }
}

/* Interactive constellation canvas behind the hero */
.services-hero__canvas {
  position: absolute;
  inset: -4rem;
  width: calc(100% + 8rem);
  height: calc(100% + 8rem);
  z-index: 0;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.4s ease;
  will-change: transform;
}

.services-hero__canvas.is-ready {
  opacity: 1;
}

.services-hero .section-inner {
  z-index: 2;
  will-change: transform;
}

/* Animated aurora behind the expertise board */
.expertise {
  position: relative;
  overflow: hidden;
}

.expertise > .section-inner {
  position: relative;
  z-index: 1;
}

.expertise__aurora {
  position: absolute;
  top: -20%;
  left: 50%;
  width: 120rem;
  max-width: 150%;
  height: 80rem;
  transform: translateX(-50%);
  background:
    radial-gradient(closest-side, rgba(99, 107, 255, 0.22), transparent 70%),
    radial-gradient(closest-side, rgba(0, 255, 221, 0.16), transparent 70%),
    radial-gradient(closest-side, rgba(137, 0, 250, 0.18), transparent 70%);
  background-repeat: no-repeat;
  background-position: 30% 35%, 70% 30%, 55% 70%;
  background-size: 55% 55%, 50% 50%, 48% 52%;
  filter: blur(40px);
  -webkit-filter: blur(40px);
  opacity: 0.7;
  pointer-events: none;
  animation: expertise-aurora 22s ease-in-out infinite;
}

[data-theme="hero"] .expertise__aurora {
  opacity: 0.5;
}

@keyframes expertise-aurora {
  0%,
  100% {
    background-position: 30% 35%, 70% 30%, 55% 70%;
  }
  33% {
    background-position: 55% 25%, 40% 55%, 70% 45%;
  }
  66% {
    background-position: 25% 60%, 65% 50%, 40% 35%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .services-hero__canvas {
    display: none;
  }

  .expertise__aurora {
    animation: none;
  }
}

/* Areas of expertise — expanding columns */
.expertise {
  background: var(--geogram-bg);
}

.expertise__board {
  display: flex;
  gap: 1.2rem;
  margin-top: 3.2rem;
}

.expertise__col {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1 1 0%;
  min-width: 0;
  border: 1px solid var(--geogram-border-subtle);
  border-radius: calc(var(--geogram-radius) + 0.6rem);
  background: var(--geogram-surface-card);
  box-shadow: var(--geogram-shadow-sm);
  overflow: hidden;
  transition:
    flex-grow 0.65s cubic-bezier(0.16, 1, 0.3, 1),
    border-color var(--geogram-transition),
    box-shadow var(--geogram-transition);
}

.expertise__col.is-active {
  flex-grow: 5;
  border-color: var(--geogram-border-aqua);
  box-shadow: var(--geogram-shadow-md), 0 0 44px rgba(99, 107, 255, 0.16);
}

.expertise__toggle {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.6rem;
  flex: 0 0 auto;
  width: 100%;
  padding: 2.6rem 2.2rem;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.expertise__index {
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  background: var(--geogram-gradient-headline);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.expertise__title {
  margin: 0;
  font-size: clamp(2.2rem, 2.4vw, 3.2rem);
  font-weight: 600;
  line-height: 1.05;
  color: var(--geogram-text);
  white-space: nowrap;
}

.expertise__teaser {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 500;
  color: var(--geogram-text-muted);
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transition:
    opacity var(--geogram-transition),
    max-height var(--geogram-transition);
}

.expertise__cue {
  display: none;
  flex-shrink: 0;
  width: 1.1rem;
  height: 1.1rem;
  border-right: 2px solid var(--geogram-aqua);
  border-bottom: 2px solid var(--geogram-aqua);
  transform: rotate(45deg);
  transition: transform var(--geogram-transition);
}

.expertise__col.is-active .expertise__teaser {
  opacity: 1;
  max-height: 6rem;
}

.expertise__col.is-active .expertise__cue {
  transform: rotate(-135deg);
}

.expertise__panel {
  height: 0;
  padding: 0 2.6rem;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.expertise__col.is-active .expertise__panel {
  height: auto;
  padding: 0 2.8rem 3rem;
  opacity: 1;
  pointer-events: auto;
}

.expertise__lead {
  margin: 0 0 2rem;
  max-width: 52ch;
  font-size: 1.7rem;
  color: var(--geogram-text-muted);
}

.expertise__list {
  max-width: none;
  margin-bottom: 2.4rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem 2.4rem;
}

/* Desktop: collapsed columns show a vertical title */
@media (min-width: 992px) {
  /* Fixed height so the widening transition never reflows siblings below. */
  .expertise__board {
    height: 56rem;
  }

  .expertise__col:not(.is-active) .expertise__toggle {
    height: 100%;
  }

  .expertise__col:not(.is-active) .expertise__title {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
  }

  /* Keep the panel laid out at its expanded width while the column animates
     open, so content is revealed by the clip instead of reflowing tall. */
  .expertise__col.is-active .expertise__panel {
    width: max(100%, 46rem);
  }
}

/* Mobile/tablet: stacked tap accordion */
@media (max-width: 991px) {
  .expertise__board {
    flex-direction: column;
    gap: 1rem;
  }

  .expertise__col,
  .expertise__col.is-active {
    flex-grow: 0;
  }

  .expertise__toggle {
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    gap: 1.4rem;
    padding: 2rem 2.2rem;
  }

  .expertise__index {
    order: -1;
  }

  .expertise__teaser {
    display: none;
  }

  .expertise__cue {
    display: block;
    margin-left: auto;
  }

  .expertise__panel {
    padding: 0 2.2rem;
  }

  .expertise__col.is-active .expertise__panel {
    padding: 0 2.2rem 2.6rem;
  }
}

@media (max-width: 540px) {
  .expertise__list {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .expertise__col,
  .expertise__panel,
  .expertise__teaser,
  .expertise__cue {
    transition: none;
  }
}

/* Velocity-reactive marquee: band leans with scroll speed */
.page-services .about-band__track {
  transform: skewX(var(--band-skew, 0deg));
  transform-origin: center;
  will-change: transform;
  transition: transform 0.4s ease-out;
}

/* Expertise: content rises in each time a discipline opens */
.expertise__col.is-active .expertise__lead {
  animation: expertise-rise 0.55s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.expertise__col.is-active .expertise__list li {
  animation: expertise-rise 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.expertise__col.is-active .expertise__list li:nth-child(1) {
  animation-delay: 0.06s;
}
.expertise__col.is-active .expertise__list li:nth-child(2) {
  animation-delay: 0.12s;
}
.expertise__col.is-active .expertise__list li:nth-child(3) {
  animation-delay: 0.18s;
}
.expertise__col.is-active .expertise__list li:nth-child(4) {
  animation-delay: 0.24s;
}
.expertise__col.is-active .expertise__list li:nth-child(5) {
  animation-delay: 0.3s;
}
.expertise__col.is-active .expertise__list li:nth-child(6) {
  animation-delay: 0.36s;
}

.expertise__col.is-active .expertise__panel .btn {
  animation: expertise-rise 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
  animation-delay: 0.42s;
}

@keyframes expertise-rise {
  from {
    opacity: 0;
    transform: translate3d(0, 1.6rem, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* Auto-play progress sliver on the active discipline */
.expertise__col.is-active::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  width: 100%;
  background: var(--geogram-gradient-cta);
  transform: scaleX(0);
  transform-origin: left;
  opacity: 0;
}

.expertise__board.is-playing .expertise__col.is-active::after {
  opacity: 1;
  animation: expertise-countdown var(--expertise-interval, 4200ms) linear;
}

@keyframes expertise-countdown {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

/* Process: scroll-linked progress line + sequential step glow */
.services-process__bar {
  display: block;
  height: 3px;
  margin-top: 3.2rem;
  border-radius: 3px;
  background: var(--geogram-border-subtle);
  overflow: hidden;
}

.services-process__bar-fill {
  display: block;
  height: 100%;
  width: 100%;
  border-radius: 3px;
  background: var(--geogram-gradient-cta);
  transform: scaleX(0);
  transform-origin: left;
  will-change: transform;
}

.services-step__num {
  transition:
    transform var(--geogram-transition-slow),
    box-shadow var(--geogram-transition-slow);
}

.services-step.is-reached .services-step__num {
  transform: scale(1.08);
  box-shadow: 0 0 0 6px rgba(99, 107, 255, 0.12), 0 0 28px rgba(0, 255, 221, 0.35);
}

@media (prefers-reduced-motion: reduce) {
  .services-hero__line-text.reveal,
  .services-hero .hero__orb,
  .services-hero__line--accent .services-hero__line-text,
  .page-services .about-band__track {
    animation: none;
    transition: none;
    transform: none;
  }

  .services-hero__line-text.reveal {
    opacity: 1;
  }

  .expertise__col.is-active .expertise__lead,
  .expertise__col.is-active .expertise__list li,
  .expertise__col.is-active .expertise__panel .btn {
    animation: none;
  }

  .expertise__board.is-playing .expertise__col.is-active::after {
    animation: none;
    opacity: 0;
  }

  .services-process__bar-fill {
    transform: scaleX(1);
  }

  .services-step.is-reached .services-step__num {
    transform: none;
  }
}

/* Work page */
.page-work .site-main {
  padding-top: var(--geogram-nav-height);
}

.work-page-header {
  padding-top: clamp(4rem, 8vw, 8rem);
  padding-bottom: 0;
  background: var(--geogram-gradient-hero);
}

.work-page-header__lead {
  margin-bottom: 3.2rem;
}

.work-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1.6rem 2.4rem;
  padding: 2rem 0 0;
  border-top: 1px solid var(--geogram-border-muted);
}

.work-toolbar__filter {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1.2rem 1.6rem;
  min-width: min(100%, 28rem);
}

.work-toolbar__label {
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  white-space: nowrap;
}

.work-toolbar__select-wrap {
  position: relative;
  flex: 1;
  min-width: 18rem;
  max-width: 32rem;
}

.work-toolbar__select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 1.6rem;
  width: 0.8rem;
  height: 0.8rem;
  border-right: 2px solid var(--geogram-aqua);
  border-bottom: 2px solid var(--geogram-aqua);
  transform: translateY(-65%) rotate(45deg);
  pointer-events: none;
}

.work-toolbar__select {
  width: 100%;
  appearance: none;
  padding: 1.2rem 4rem 1.2rem 1.6rem;
  font-family: inherit;
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--geogram-text);
  background: var(--geogram-bg-elevated);
  border: 1px solid var(--geogram-border-strong);
  border-radius: 999px;
  cursor: pointer;
  transition:
    border-color var(--geogram-transition),
    box-shadow var(--geogram-transition),
    background var(--geogram-transition);
}

.work-toolbar__select:hover,
.work-toolbar__select:focus {
  border-color: var(--geogram-border-aqua);
  outline: none;
}

.work-toolbar__select:focus-visible {
  box-shadow: 0 0 0 3px rgba(0, 255, 221, 0.25);
}

.work-toolbar__count {
  margin: 0;
  font-size: 1.4rem;
  color: var(--geogram-text-muted);
}

.work-portfolio {
  padding-top: clamp(3rem, 6vw, 5rem);
  background: var(--geogram-bg);
}

.work-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(2rem, 4vw, 3.2rem);
}

/* superglow-transition — portfolio hover glow (see docs/STYLE_GUIDE.md)
   Layers: ::before conic ring | ::after halo | __link::before ambient | __visual::after sweep
   Tokens: --work-glow-ring-duration, --work-glow-ambient-duration, --work-glow-ring-blur-extra */

.work-card {
  position: relative;
  isolation: isolate;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  overflow: visible;
  background: transparent;
  border: 1px solid transparent;
  transition:
    opacity var(--geogram-transition),
    transform var(--geogram-transition-slow);
}

.work-card::before {
  content: "";
  position: absolute;
  inset: calc(-8px - var(--work-glow-ring-blur-extra) * 0.35);
  z-index: 0;
  border-radius: inherit;
  opacity: 0;
  background: conic-gradient(
    from 0deg,
    var(--geogram-aqua),
    var(--geogram-purple),
    var(--geogram-accent),
    var(--geogram-aqua)
  );
  filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  -webkit-filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  transform: rotate(0deg) scale(1);
  transition: opacity 0.55s ease-out;
  pointer-events: none;
  will-change: transform, filter;
}

.work-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  opacity: 0;
  box-shadow:
    0 0 0 1px var(--geogram-border-aqua),
    0 0 28px var(--geogram-work-glow-outer),
    0 0 56px var(--geogram-work-glow-mid);
  transition: opacity 0.4s ease;
  pointer-events: none;
}

.work-card.is-hidden {
  display: none;
}

.work-card:not(.is-hidden):hover,
.work-card:not(.is-hidden):focus-within {
  transform: translateY(-4px);
}

.work-card:not(.is-hidden):hover::before,
.work-card:not(.is-hidden):focus-within::before {
  opacity: 0.92;
  animation: work-card-ring-orbit var(--work-glow-ring-duration) linear infinite;
  animation-delay: var(--work-glow-delay, 0s);
}

.work-card:not(.is-hidden):hover::after,
.work-card:not(.is-hidden):focus-within::after {
  opacity: 1;
  animation: work-card-halo-flow var(--work-glow-ring-duration) linear infinite;
  animation-delay: var(--work-glow-delay, 0s);
}

.work-card:nth-child(2n) {
  --work-glow-delay: -2.6s;
}

.work-card:nth-child(3n) {
  --work-glow-delay: -4.1s;
}

.work-card:nth-child(4n + 3) {
  --work-glow-delay: -1.2s;
}

.work-card__link {
  position: relative;
  z-index: 1;
  display: block;
  overflow: hidden;
  border-radius: inherit;
  color: inherit;
  text-decoration: none;
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
  transition:
    border-color var(--geogram-transition),
    background var(--geogram-transition);
}

.work-card__link::before {
  content: "";
  position: absolute;
  inset: -12px;
  z-index: 0;
  border-radius: inherit;
  opacity: 0;
  background:
    radial-gradient(ellipse 62% 52% at 22% 88%, var(--geogram-work-glow-outer), transparent 66%),
    radial-gradient(ellipse 56% 48% at 82% 14%, var(--geogram-work-glow-mid), transparent 64%),
    radial-gradient(ellipse 44% 40% at 55% 45%, var(--geogram-work-glow-deep), transparent 72%);
  filter: blur(24px);
  -webkit-filter: blur(24px);
  transform: scale(1) translate(0, 0);
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
  will-change: transform, opacity, filter;
}

.work-card:not(.is-hidden):hover .work-card__link::before,
.work-card:not(.is-hidden):focus-within .work-card__link::before {
  opacity: 0.7;
  animation: work-card-ambient-drift var(--work-glow-ambient-duration) cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
  animation-delay: calc(var(--work-glow-delay, 0s) + 0.4s);
}

.work-card:not(.is-hidden):hover .work-card__link,
.work-card:not(.is-hidden):focus-within .work-card__link {
  border-color: var(--geogram-border-aqua);
}

.work-card__visual,
.work-card__body {
  position: relative;
  z-index: 1;
}

@keyframes work-card-ambient-drift {
  0%,
  100% {
    transform: scale(1.02) translate(-1.5%, 1%);
    filter: blur(22px);
    -webkit-filter: blur(22px);
    opacity: 0.55;
  }

  33% {
    transform: scale(1.1) translate(2%, -1.5%);
    filter: blur(28px);
    -webkit-filter: blur(28px);
    opacity: 0.8;
  }

  66% {
    transform: scale(1.05) translate(-0.5%, 2%);
    filter: blur(24px);
    -webkit-filter: blur(24px);
    opacity: 0.65;
  }
}

@keyframes work-card-ring-orbit {
  0% {
    transform: rotate(0deg) scale(1);
    filter: blur(calc(16px + var(--work-glow-ring-blur-extra))) saturate(1.12);
    -webkit-filter: blur(calc(16px + var(--work-glow-ring-blur-extra))) saturate(1.12);
  }

  8.33% {
    transform: rotate(30deg) scale(1.015);
    filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.14);
    -webkit-filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.14);
  }

  16.66% {
    transform: rotate(60deg) scale(1.02);
    filter: blur(calc(20px + var(--work-glow-ring-blur-extra))) saturate(1.16);
    -webkit-filter: blur(calc(20px + var(--work-glow-ring-blur-extra))) saturate(1.16);
  }

  25% {
    transform: rotate(90deg) scale(1.01);
    filter: blur(calc(19px + var(--work-glow-ring-blur-extra))) saturate(1.15);
    -webkit-filter: blur(calc(19px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  }

  33.33% {
    transform: rotate(120deg) scale(1.02);
    filter: blur(calc(21px + var(--work-glow-ring-blur-extra))) saturate(1.17);
    -webkit-filter: blur(calc(21px + var(--work-glow-ring-blur-extra))) saturate(1.17);
  }

  41.66% {
    transform: rotate(150deg) scale(1.015);
    filter: blur(calc(20px + var(--work-glow-ring-blur-extra))) saturate(1.16);
    -webkit-filter: blur(calc(20px + var(--work-glow-ring-blur-extra))) saturate(1.16);
  }

  50% {
    transform: rotate(180deg) scale(1);
    filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.14);
    -webkit-filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.14);
  }

  58.33% {
    transform: rotate(210deg) scale(1.015);
    filter: blur(calc(19px + var(--work-glow-ring-blur-extra))) saturate(1.15);
    -webkit-filter: blur(calc(19px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  }

  66.66% {
    transform: rotate(240deg) scale(1.02);
    filter: blur(calc(21px + var(--work-glow-ring-blur-extra))) saturate(1.17);
    -webkit-filter: blur(calc(21px + var(--work-glow-ring-blur-extra))) saturate(1.17);
  }

  75% {
    transform: rotate(270deg) scale(1.01);
    filter: blur(calc(20px + var(--work-glow-ring-blur-extra))) saturate(1.16);
    -webkit-filter: blur(calc(20px + var(--work-glow-ring-blur-extra))) saturate(1.16);
  }

  83.33% {
    transform: rotate(300deg) scale(1.02);
    filter: blur(calc(22px + var(--work-glow-ring-blur-extra))) saturate(1.18);
    -webkit-filter: blur(calc(22px + var(--work-glow-ring-blur-extra))) saturate(1.18);
  }

  91.66% {
    transform: rotate(330deg) scale(1.015);
    filter: blur(calc(19px + var(--work-glow-ring-blur-extra))) saturate(1.15);
    -webkit-filter: blur(calc(19px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  }

  100% {
    transform: rotate(360deg) scale(1);
    filter: blur(calc(16px + var(--work-glow-ring-blur-extra))) saturate(1.12);
    -webkit-filter: blur(calc(16px + var(--work-glow-ring-blur-extra))) saturate(1.12);
  }
}

@keyframes work-card-halo-flow {
  0%,
  100% {
    box-shadow:
      0 0 0 1px var(--geogram-border-aqua),
      0 0 26px var(--geogram-work-glow-outer),
      0 0 52px var(--geogram-work-glow-mid);
  }

  25% {
    box-shadow:
      0 0 0 1px rgba(0, 255, 221, 0.38),
      0 0 32px var(--geogram-work-glow-outer),
      0 0 60px var(--geogram-work-glow-mid),
      0 0 82px var(--geogram-work-glow-deep);
  }

  50% {
    box-shadow:
      0 0 0 2px rgba(0, 255, 221, 0.5),
      0 0 40px var(--geogram-work-glow-outer),
      0 0 74px var(--geogram-work-glow-mid),
      0 0 100px var(--geogram-work-glow-deep);
  }

  75% {
    box-shadow:
      0 0 0 1px rgba(0, 255, 221, 0.42),
      0 0 36px var(--geogram-work-glow-outer),
      0 0 66px var(--geogram-work-glow-mid),
      0 0 90px var(--geogram-work-glow-deep);
  }
}

[data-theme="hero"] .work-card:not(.is-hidden):hover::after,
[data-theme="hero"] .work-card:not(.is-hidden):focus-within::after {
  animation-name: work-card-halo-flow-hero;
}

@keyframes work-card-halo-flow-hero {
  0%,
  100% {
    box-shadow:
      0 0 0 1px var(--geogram-border-aqua),
      0 0 18px var(--geogram-work-glow-outer),
      0 0 36px var(--geogram-work-glow-mid);
  }

  50% {
    box-shadow:
      0 0 0 1px var(--geogram-border-aqua),
      0 0 28px var(--geogram-work-glow-outer),
      0 0 52px var(--geogram-work-glow-mid),
      0 0 68px var(--geogram-work-glow-deep);
  }
}

.work-card__visual::after {
  content: "";
  position: absolute;
  inset: -25%;
  opacity: 0;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    var(--geogram-work-glow-outer) 50deg,
    var(--geogram-work-glow-mid) 100deg,
    transparent 160deg
  );
  mix-blend-mode: soft-light;
  transition: opacity 0.4s ease;
  pointer-events: none;
  will-change: transform;
}

.work-card:not(.is-hidden):hover .work-card__visual::after,
.work-card:not(.is-hidden):focus-within .work-card__visual::after {
  opacity: 0.85;
  animation: work-card-ring-orbit var(--work-glow-ring-duration) linear infinite;
  animation-delay: var(--work-glow-delay, 0s);
}

[data-theme="hero"] .work-card__visual::after {
  mix-blend-mode: multiply;
}

[data-theme="hero"] .work-card:not(.is-hidden):hover .work-card__visual::after,
[data-theme="hero"] .work-card:not(.is-hidden):focus-within .work-card__visual::after {
  opacity: 0.75;
}

.work-card__link:hover,
.work-card__link:focus-visible {
  color: inherit;
}

.work-card__visual {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  display: flex;
  align-items: flex-end;
  padding: 2.4rem;
  background:
    radial-gradient(ellipse 70% 80% at 80% 20%, rgba(137, 0, 250, 0.35), transparent 55%),
    linear-gradient(145deg, rgba(54, 64, 255, 0.25) 0%, rgba(11, 7, 29, 0.95) 100%);
}

.work-card__visual--alt {
  background:
    radial-gradient(ellipse 60% 70% at 20% 30%, rgba(0, 255, 221, 0.2), transparent 55%),
    linear-gradient(145deg, rgba(99, 107, 255, 0.3) 0%, rgba(11, 7, 29, 0.95) 100%);
}

.work-card__visual--alt-2 {
  background:
    radial-gradient(ellipse 65% 75% at 50% 0%, rgba(137, 0, 250, 0.28), transparent 60%),
    linear-gradient(160deg, rgba(19, 12, 50, 0.9) 0%, #000 100%);
}

.work-card__visual-label,
.work-card__domain {
  position: relative;
  z-index: 1;
}

.work-card__visual-label {
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: rgba(255, 255, 255, 0.92);
}

.work-card__body {
  padding: 2rem 2.4rem 2.4rem;
}

.work-card__title {
  margin: 0 0 0.4rem;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.2;
}

.work-card__meta {
  margin: 0;
  font-size: 1.4rem;
  color: var(--geogram-aqua);
  letter-spacing: 0.04em;
}

.work-empty {
  margin: 4rem 0 0;
  text-align: center;
  font-size: 1.8rem;
  color: var(--geogram-text-muted);
}

.work-empty[hidden] {
  display: none;
}

.work-card__visual--has-img {
  display: block;
  padding: 0;
  align-items: stretch;
  background: #0a2a4a;
}

.work-card__visual--has-img::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, transparent 55%, rgba(3, 15, 26, 0.35) 100%);
  pointer-events: none;
}

.work-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

.work-card__visual--cttc {
  background: #0a2a4a;
}

.work-card__visual--amazon {
  background: #131a22;
}

.work-card__visual--riverside-county-innovation {
  background: #0d1a24;
}

.work-card__visual--riverside-county-innovation .work-card__img {
  object-position: center top;
}

.work-card__visual--riverside-county-opportunity-zones {
  background: #1a2838;
}

.work-card__visual--riverside-county-opportunity-zones .work-card__img {
  object-position: center top;
}

.work-card__visual--hillflights {
  background: #050505;
}

.case-study__hero-visual--hillflights {
  max-width: var(--geogram-max-width);
}

.case-study__hero-visual--hillflights .case-study__screenshot {
  background: #050505;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--jettcapital {
  background: #0c173a;
}

.case-study__hero-visual--jettcapital {
  max-width: var(--geogram-max-width);
}

.case-study__hero-visual--jettcapital .case-study__screenshot {
  background: #0c173a;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--palmerprotax {
  background: #0a1628;
}

.work-card__visual--palmerprotax-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(ellipse 70% 80% at 80% 20%, rgba(120, 193, 67, 0.14), transparent 55%),
    #0a1628;
  padding: clamp(2.4rem, 6vw, 3.6rem);
}

.work-card__visual--palmerprotax-logo::before {
  display: none;
}

.work-card__visual--palmerprotax-logo .work-card__img {
  width: auto;
  height: auto;
  max-width: min(96%, 30rem);
  max-height: 93%;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}

.case-study__hero-visual--palmerprotax {
  max-width: var(--geogram-max-width);
}

.case-study__hero-visual--palmerprotax .case-study__screenshot {
  background: #0a1628;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* Palmer ProTax brand system (case study) */
.page-case-study--palmerprotax {
  --palmer-navy: #0a1628;
  --palmer-green: #8bcf2a;
  --palmer-on-dark: #ffffff;
  --palmer-on-light-heading: #0a1628;
  --palmer-on-light-body: #0a1628;
  --palmer-on-dark-heading: #8bcf2a;
  /* Remap shared case-study CTTC tokens so Palmer pages never inherit CTTC colors */
  --cttc-brand-blue: #0a1628;
  --cttc-midnight: #0a1628;
  --cttc-nightfall: #051018;
  --cttc-spark: #8bcf2a;
  --cttc-glow-bright: #8bcf2a;
  --cttc-on-dark: #ffffff;
  --cttc-on-light-heading: #0a1628;
  --cttc-on-light-body: #0a1628;
  --cttc-on-dark-heading: #8bcf2a;
}

.page-case-study--palmerprotax .case-promise {
  border-color: rgba(139, 207, 42, 0.25);
  color: var(--palmer-on-dark);
  box-shadow:
    0 12px 40px rgba(10, 22, 40, 0.5),
    0 0 48px rgba(139, 207, 42, 0.08);
}

.page-case-study--palmerprotax .case-promise::before {
  background: linear-gradient(105deg, #0a1628 0%, #0d1f38 42%, #051018 100%);
}

.page-case-study--palmerprotax .case-promise::after {
  background: linear-gradient(180deg, #8bcf2a 0%, rgba(139, 207, 42, 0.55) 100%);
}

.page-case-study--palmerprotax .case-promise__text {
  font-family: Merriweather, Georgia, serif;
  color: var(--palmer-on-dark);
}

.page-case-study--palmerprotax .case-promise__accent {
  color: var(--palmer-green);
}

.page-case-study--palmerprotax .case-promise__cite {
  font-family: Jost, system-ui, sans-serif;
  color: var(--palmer-green);
}

.page-case-study--palmerprotax .case-framework__label {
  color: var(--palmer-on-light-heading);
}

[data-theme="villain"] .page-case-study--palmerprotax .case-framework__label {
  color: var(--palmer-on-dark-heading);
}

[data-theme="hero"] .page-case-study--palmerprotax .case-framework__item p {
  color: var(--palmer-on-light-body);
}

.page-case-study--palmerprotax .case-principle__title {
  color: var(--palmer-on-light-heading);
}

[data-theme="villain"] .page-case-study--palmerprotax .case-principle__title {
  color: var(--palmer-on-dark-heading);
}

.page-case-study--palmerprotax .case-rebrand__panel--after {
  border-color: rgba(139, 207, 42, 0.35);
  box-shadow: 0 0 40px rgba(139, 207, 42, 0.1);
}

.page-case-study--palmerprotax .case-rebrand__domain {
  color: var(--palmer-green);
}

.page-case-study--palmerprotax .case-rebrand__arrow {
  color: var(--palmer-green);
}

.page-case-study--palmerprotax .case-rebrand__panel--after .case-rebrand__shot-caption {
  color: var(--palmer-green);
}

.page-case-study--palmerprotax .case-brand-gallery {
  align-items: stretch;
}

.page-case-study--palmerprotax .case-brand-gallery__item {
  border-color: rgba(139, 207, 42, 0.18);
  display: flex;
  flex-direction: column;
}

.page-case-study--palmerprotax .case-brand-gallery__item--logo-primary,
.page-case-study--palmerprotax .case-brand-gallery__item--logo-horizontal {
  min-height: 18rem;
  justify-content: flex-start;
}

.page-case-study--palmerprotax .case-brand-gallery__item--portrait {
  min-height: 22rem;
  justify-content: flex-start;
}

.page-case-study--palmerprotax .case-brand-gallery__item--icon {
  display: flex;
  flex-direction: column;
  min-height: 22rem;
  padding: 0;
}

.page-case-study--palmerprotax .case-brand-gallery__item--logo-primary {
  background: #ffffff;
}

.page-case-study--palmerprotax .case-brand-gallery__item--logo img {
  flex: 1 1 auto;
  align-self: center;
  margin-block: auto;
  width: auto;
}

.page-case-study--palmerprotax .case-brand-gallery__item--icon img {
  flex: 1 1 auto;
  align-self: center;
  margin: auto;
  display: block;
  width: auto;
  max-height: 12rem;
  max-width: 12rem;
  object-fit: contain;
}

.page-case-study--palmerprotax .case-brand-gallery__item--icon figcaption {
  flex: 0 0 auto;
  margin-top: 0;
  width: 100%;
}

.page-case-study--palmerprotax .case-brand-gallery__item figcaption {
  color: var(--palmer-green);
  margin-top: auto;
}

.page-case-study--palmerprotax .case-brand-gallery__item--on-light figcaption {
  color: var(--palmer-on-light-body);
  background: #ffffff;
  border-top-color: rgba(10, 22, 40, 0.1);
}

.page-case-study--palmerprotax .case-brand__caption {
  color: var(--geogram-text-muted);
}

/* Palmer presentation deck — layered 3D parallax scene */
.palmer-deck-scene {
  position: relative;
  width: 100%;
  max-width: 120rem;
  margin-inline: auto;
}

.palmer-deck-scene__viewport {
  position: relative;
  width: 100%;
  aspect-ratio: 2400 / 1500;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid rgba(139, 207, 42, 0.22);
  overflow: hidden;
  background: #071220;
  cursor: grab;
  touch-action: none;
  user-select: none;
  isolation: isolate;
}

.palmer-deck-scene__viewport::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
  background:
    radial-gradient(ellipse 90% 70% at 72% 18%, rgba(139, 207, 42, 0.16), transparent 68%),
    radial-gradient(ellipse 120% 90% at 50% 50%, #0e1a2e 0%, #0a1628 52%, #071220 100%);
  pointer-events: none;
}

.palmer-deck-scene__viewport::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  pointer-events: none;
}

.palmer-deck-scene__viewport:active {
  cursor: grabbing;
}

.palmer-deck-scene__viewport:focus-visible {
  outline: 2px solid var(--palmer-green);
  outline-offset: 3px;
}

.palmer-deck-scene__stage {
  position: absolute;
  inset: 0;
  z-index: 1;
  transform-style: preserve-3d;
  will-change: transform;
}

.palmer-deck-scene__layer {
  --parallax-x: 0px;
  --parallax-y: 0px;
  --parallax-z: 0px;
  --layer-rotate: 0deg;
  position: absolute;
  transform-style: preserve-3d;
  transform: translate3d(var(--parallax-x), var(--parallax-y), var(--parallax-z)) rotate(var(--layer-rotate));
  border-radius: 1.8rem;
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.42),
    0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  will-change: transform;
}

.palmer-deck-scene__layer img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: inherit;
}

.palmer-deck-scene__layer--slide-01 {
  left: 7.5%;
  top: 17.3%;
  width: 33.3%;
}

.palmer-deck-scene__layer--slide-02 {
  left: 31.7%;
  top: 12%;
  width: 38.3%;
}

.palmer-deck-scene__layer--slide-05 {
  left: 59.2%;
  top: 21.3%;
  width: 34.2%;
}

.palmer-deck-scene__layer--slide-18 {
  left: 21.7%;
  top: 50.7%;
  width: 27.5%;
}

.palmer-deck-scene__copy {
  position: absolute;
  left: 7.5%;
  bottom: 11%;
  z-index: 3;
  pointer-events: none;
}

.palmer-deck-scene__title {
  margin: 0 0 0.4rem;
  font-family: Jost, system-ui, sans-serif;
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  font-weight: 600;
  color: rgba(255, 255, 255, 0.92);
}

.palmer-deck-scene__subtitle {
  margin: 0;
  font-family: Jost, system-ui, sans-serif;
  font-size: clamp(1.1rem, 1.6vw, 1.4rem);
  color: rgba(180, 190, 205, 0.88);
}

.palmer-deck-scene__hint {
  margin: 0.8rem 0 0;
  font-size: 1.2rem;
  text-align: center;
  color: var(--geogram-text-muted);
}

@media (prefers-reduced-motion: no-preference) {
  .palmer-deck-scene__viewport {
    perspective: 1600px;
    perspective-origin: 50% 42%;
    transform-style: preserve-3d;
  }
}

@media (prefers-reduced-motion: reduce) {
  .palmer-deck-scene__viewport {
    cursor: default;
  }

  .palmer-deck-scene__hint {
    display: none;
  }
}

.page-case-study--palmerprotax .case-deliverable h3 {
  color: var(--palmer-on-light-heading);
}

[data-theme="villain"] .page-case-study--palmerprotax .case-deliverable h3 {
  color: var(--palmer-on-dark-heading);
}

.page-case-study--palmerprotax .case-deliverable a {
  color: var(--palmer-green);
}

/* Palmer discovery deck — bento slide mosaic */
.case-palmer-deck {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 2rem);
  margin-top: clamp(2.4rem, 4vw, 3.6rem);
  max-width: 120rem;
}

.case-palmer-slide {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
  grid-column: span 6;
  box-shadow: var(--geogram-shadow-sm);
}

.page-case-study--palmerprotax .case-palmer-slide {
  border-color: rgba(139, 207, 42, 0.2);
}

.page-case-study--palmerprotax .case-palmer-slide--hero {
  border-color: rgba(139, 207, 42, 0.4);
  box-shadow:
    0 0 0 1px rgba(139, 207, 42, 0.1) inset,
    0 20px 48px rgba(0, 0, 0, 0.28);
}

.case-palmer-slide img {
  display: block;
  width: 100%;
  height: auto;
}

.case-palmer-slide figcaption {
  margin: 0;
  padding: 0.9rem 1.2rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  border-top: 1px solid var(--geogram-border-subtle);
}

.page-case-study--palmerprotax .case-palmer-slide figcaption {
  color: rgba(139, 207, 42, 0.92);
}

.case-palmer-slide--full {
  grid-column: 1 / -1;
}

.case-palmer-slide--wide {
  grid-column: span 8;
}

.case-palmer-slide--feature {
  grid-column: span 7;
}

.case-palmer-slide--half {
  grid-column: span 6;
}

.case-palmer-slide--compact {
  grid-column: span 5;
}

.case-palmer-slide--third {
  grid-column: span 4;
}

.case-palmer-slide--chart {
  grid-column: span 4;
  opacity: 0.94;
}

.page-case-study--palmerprotax .case-palmer-slide--chart figcaption {
  color: var(--geogram-text-muted);
  font-size: 1.1rem;
}

.page-case-study--palmerprotax .case-deliverable a:hover {
  color: var(--geogram-text);
}

.page-case-study--palmerprotax .case-swatch__name,
.page-case-study--palmerprotax .case-swatch__hex {
  color: var(--palmer-on-dark);
}

.page-case-study--palmerprotax .case-swatch--on-light .case-swatch__name,
.page-case-study--palmerprotax .case-swatch--on-light .case-swatch__hex {
  color: var(--palmer-on-light-body);
}

.page-case-study--palmerprotax .case-type-sample__label {
  color: var(--palmer-on-light-heading);
}

[data-theme="villain"] .page-case-study--palmerprotax .case-type-sample__label {
  color: var(--palmer-on-dark-heading);
}

.case-brand-gallery__item--on-dark {
  padding: 2.4rem;
  background: #0a1628;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
}

.case-brand-gallery__item--on-light {
  padding: 2.4rem;
  background: #ffffff;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
}

.case-brand-gallery__item--on-dark img,
.case-brand-gallery__item--on-light img {
  display: block;
  margin-inline: auto;
  max-height: 8rem;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

.case-brand-gallery__item--on-light img {
  max-height: 9rem;
}

.case-brand-gallery__item--logo {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 12rem;
}

.case-brand-gallery__item--logo img {
  max-height: 5.6rem;
}

.case-brand-gallery__item--logo-stacked img,
.case-brand-gallery__item--logo-primary img {
  max-height: 12rem;
  max-width: min(100%, 36rem);
  width: auto;
  height: auto;
  object-fit: contain;
}

.case-brand-gallery__item--logo-horizontal img {
  max-height: 8rem;
  max-width: min(100%, 32rem);
}

.case-brand-gallery__item--icon img {
  max-height: 7.2rem;
  max-width: 7.2rem;
}

.work-card__visual--fighting-season {
  background: #1a1510;
}

.work-card__visual--fighting-season .work-card__img {
  object-position: center 35%;
}

.case-study__hero-visual--fighting-season {
  max-width: var(--geogram-max-width);
}

.case-study__hero-visual--fighting-season .case-study__screenshot {
  background: #1a1510;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.case-study__video {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
  background: #050608;
}

.case-study__video:focus-visible {
  outline: 2px solid var(--geogram-aqua);
  outline-offset: 3px;
}

.case-fighting-season-maps {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 2.4rem;
  margin-top: 2.4rem;
}

.case-fighting-season-maps__item {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: #0a0e12;
}

.case-fighting-season-maps__video {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
  background: #0a0e12;
}

.case-fighting-season-maps__item figcaption {
  margin: 0;
  padding: 1rem 1.4rem;
  font-size: 1.3rem;
  color: var(--geogram-aqua);
  letter-spacing: 0.04em;
  border-top: 1px solid var(--geogram-border-subtle);
}

.case-fighting-season-maps__video:focus-visible {
  outline: 2px solid var(--geogram-aqua);
  outline-offset: -2px;
}

@media (min-width: 900px) {
  .case-fighting-season-maps--duo {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-fighting-season-maps--duo .case-fighting-season-maps__item--wide {
    grid-column: 1 / -1;
  }
}

.case-fighting-season-facts__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.6rem;
  margin-top: 2.4rem;
}

.case-fighting-season-facts__item {
  padding: 2rem 2.4rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
}

.case-fighting-season-facts__value {
  display: block;
  margin-bottom: 0.6rem;
  font-size: clamp(2.8rem, 4vw, 3.6rem);
  font-weight: 600;
  line-height: 1;
  color: var(--geogram-aqua);
}

.case-fighting-season-facts__label {
  display: block;
  font-size: 1.4rem;
  line-height: 1.45;
  color: var(--geogram-text-muted);
}

@media (min-width: 768px) {
  .case-fighting-season-facts__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.work-card__visual--springbirdbus {
  background: #1a5f7a;
}

.work-card__visual--navistar {
  background: #061018;
}

.work-card__visual--navistar .work-card__img {
  object-fit: cover;
  object-position: center 42%;
}

.case-study__hero-visual--navistar {
  max-width: min(56rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--navistar .case-study__screenshot {
  background: #061018;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--diverse-surface-solutions {
  background: #1a2a35;
}

.work-card__visual--heinz-kraft {
  background: #4a1810;
}

.work-card__visual--heinz-kraft .work-card__img {
  object-position: center;
}

.work-card__visual--arbonne {
  background: #1a2e24;
}

.work-card__visual--arbonne .work-card__img {
  object-position: center;
}

.case-study__hero-visual--arbonne {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--arbonne .case-study__screenshot {
  background: #1a2e24;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.case-study__hero-visual--heinz-kraft {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--heinz-kraft .case-study__screenshot {
  background: #2a0f0a;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--byd {
  background: #1a2838;
}

.work-card__visual--byd .work-card__img {
  object-position: center;
}

.case-study__hero-visual--byd {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--byd .case-study__screenshot {
  background: #1a2838;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--byd-transit {
  background: #0d1f2d;
}

.work-card__visual--byd-transit .work-card__img {
  object-position: center;
}

.case-study__hero-visual--byd-transit {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--byd-transit .case-study__screenshot {
  background: #0d1f2d;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--byd-solving-the-problem {
  background: #e8e8e8;
}

.work-card__visual--byd-solving-the-problem .work-card__img {
  object-position: center;
}

.case-study__hero-visual--byd-solving-the-problem {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--byd-solving-the-problem .case-study__screenshot {
  background: #e8e8e8;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--byd-california-dreaming {
  background: #2a2218;
}

.work-card__visual--byd-california-dreaming .work-card__img {
  object-position: center 30%;
}

.case-study__hero-visual--byd-california-dreaming {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--byd-california-dreaming .case-study__screenshot {
  background: #2a2218;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--byd-ca-hearts-byd {
  background: #1a2838;
}

.work-card__visual--byd-ca-hearts-byd .work-card__img {
  object-position: center;
}

.case-study__hero-visual--byd-ca-hearts-byd {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--byd-ca-hearts-byd .case-study__screenshot {
  background: #1a2838;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.work-card__visual--diverse-surface-solutions .work-card__img {
  object-position: center;
}

.case-study__hero-visual--diverse-surface-solutions {
  max-width: min(72rem, 100%);
  margin-inline: auto;
}

.case-study__hero-visual--diverse-surface-solutions .case-study__screenshot {
  background: #1a2a35;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.case-dss-logo {
  margin: 0;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid rgba(0, 174, 239, 0.18);
  background:
    radial-gradient(ellipse 80% 80% at 50% 0%, rgba(0, 174, 239, 0.08), transparent 70%),
    var(--geogram-surface-card);
  text-align: center;
}

.case-dss-logo__gif {
  display: block;
  width: min(100%, 42rem);
  height: auto;
  margin: 0 auto;
  border-radius: calc(var(--geogram-radius) * 0.5);
}

.case-dss-logo figcaption {
  margin-top: 1.2rem;
  font-size: 1.35rem;
  line-height: 1.45;
  color: var(--geogram-text-muted);
  text-align: center;
}

.case-dss-video {
  margin: 0;
}

.case-dss-video__player {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  border: 1px solid rgba(0, 174, 239, 0.18);
  background: #061018;
}

.case-dss-video figcaption {
  margin-top: 1rem;
  font-size: 1.35rem;
  line-height: 1.45;
  color: var(--geogram-text-muted);
  text-align: center;
}

.case-dss-stats__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
  margin-top: 2.4rem;
}

.case-dss-stats__item {
  min-width: 0;
  padding: clamp(1.4rem, 2vw, 2rem) clamp(1.2rem, 1.8vw, 1.8rem);
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid rgba(0, 174, 239, 0.18);
  background:
    radial-gradient(ellipse 80% 80% at 50% 0%, rgba(0, 174, 239, 0.08), transparent 70%),
    var(--geogram-surface-card);
  overflow: hidden;
}

.case-dss-stats__value {
  display: block;
  margin-bottom: 0.6rem;
  font-size: clamp(1.5rem, 2.2vw, 2rem);
  font-weight: 600;
  line-height: 1.15;
  color: #4ec8f5;
}

.case-dss-stats__label {
  display: block;
  font-size: clamp(1.25rem, 1.35vw, 1.4rem);
  line-height: 1.45;
  color: var(--geogram-text-muted);
  overflow-wrap: break-word;
}

@media (min-width: 1200px) {
  .case-dss-stats__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .case-dss-stats__grid {
    grid-template-columns: 1fr;
  }
}

.case-navistar-pullquote {
  margin: 2.4rem 0;
  padding: 1.6rem 0 1.6rem 2rem;
  border-left: 3px solid #4ec8f5;
  font-size: clamp(2rem, 3.2vw, 2.8rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: var(--geogram-text);
}

/* Navistar — interactive upside-down print ad */
.navistar-ad__preview {
  display: flex;
  align-items: center;
  gap: clamp(1rem, 2.4vw, 1.8rem);
  overflow: visible;
}

.navistar-ad__frame {
  position: relative;
  flex: 1;
  min-width: 0;
}

.navistar-ad__flip-btn {
  flex-shrink: 0;
  z-index: 2;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-width: 5.6rem;
  padding: 1.2rem 1rem;
  border: 1px solid rgba(78, 200, 245, 0.65);
  border-radius: 1.2rem;
  background: rgba(6, 16, 24, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: #e8f7ff;
  font-family: inherit;
  font-size: 1.35rem;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: 0.03em;
  text-align: center;
  cursor: pointer;
  box-shadow:
    0 0 0 1px rgba(0, 255, 221, 0.12),
    0 0 28px rgba(0, 174, 239, 0.22),
    0 12px 32px rgba(0, 0, 0, 0.35);
  transition:
    border-color var(--geogram-transition),
    background var(--geogram-transition),
    box-shadow var(--geogram-transition),
    transform var(--geogram-transition);
}

.navistar-ad__flip-btn:hover,
.navistar-ad__flip-btn:focus-visible {
  border-color: var(--geogram-aqua);
  background: rgba(6, 16, 24, 0.98);
  box-shadow:
    0 0 0 1px rgba(0, 255, 221, 0.28),
    0 0 36px rgba(0, 255, 221, 0.28),
    0 14px 36px rgba(0, 0, 0, 0.4);
  transform: translateY(-2px);
  outline: none;
}

.navistar-ad__flip-icon {
  display: inline-block;
  font-size: 2.2rem;
  line-height: 1;
}

.navistar-ad__flip-label {
  display: block;
  max-width: 6.5rem;
}

@media (max-width: 520px) {
  .navistar-ad__preview {
    flex-direction: column;
    align-items: stretch;
  }

  .navistar-ad__flip-btn {
    flex-direction: row;
    justify-content: center;
    min-width: 0;
    width: 100%;
    padding: 1rem 1.4rem;
    border-radius: 999px;
  }

  .navistar-ad__flip-label {
    max-width: none;
  }
}

.navistar-ad-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  pointer-events: none;
}

.navistar-ad-lightbox[hidden] {
  display: none;
}

.navistar-ad-lightbox.is-active {
  pointer-events: auto;
  cursor: pointer;
}

.navistar-ad-lightbox__scrim {
  position: absolute;
  inset: 0;
  background: rgba(3, 11, 20, 0);
  transition: background 0.45s ease;
  pointer-events: none;
}

.navistar-ad-lightbox__card {
  pointer-events: auto;
  cursor: pointer;
}

.navistar-ad-lightbox.is-dark .navistar-ad-lightbox__scrim {
  background: rgba(3, 11, 20, 0.9);
}

.navistar-ad-lightbox__stage {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.navistar-ad-lightbox__card {
  --navistar-card-padding: 20px;
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  max-height: 90vh;
  padding: var(--navistar-card-padding);
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  border: none;
  background: #061018;
  isolation: isolate;
  overflow: visible;
  transform-origin: center center;
  transition: transform 0.88s cubic-bezier(0.4, 0.12, 0.18, 1);
  will-change: transform;
}

.navistar-ad-lightbox__image {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  flex: 1;
  min-height: 0;
  object-fit: contain;
  border-radius: calc(var(--geogram-radius) * 0.5);
  background: #061018;
}

.navistar-ad-lightbox__glow {
  position: absolute;
  inset: calc(-12px - var(--work-glow-ring-blur-extra) * 0.2);
  z-index: -1;
  overflow: visible;
  pointer-events: none;
  border-radius: inherit;
  opacity: 0;
  transition: opacity 0.52s ease;
}

.navistar-ad-lightbox.is-glowing .navistar-ad-lightbox__glow {
  opacity: 1;
}

.navistar-ad-lightbox__glow-ring {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  background: conic-gradient(
    from 0deg,
    var(--geogram-aqua),
    var(--geogram-purple),
    var(--geogram-accent),
    var(--geogram-aqua)
  );
  filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  -webkit-filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  transform: rotate(0deg) scale(1);
  transition: opacity 0.52s ease;
  will-change: transform, filter;
}

.navistar-ad-lightbox__glow-ambient {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  background:
    radial-gradient(ellipse 62% 52% at 22% 88%, var(--geogram-work-glow-outer), transparent 66%),
    radial-gradient(ellipse 56% 48% at 82% 14%, var(--geogram-work-glow-mid), transparent 64%),
    radial-gradient(ellipse 44% 40% at 55% 45%, var(--geogram-work-glow-deep), transparent 72%);
  filter: blur(28px);
  -webkit-filter: blur(28px);
  transition: opacity 0.52s ease;
  will-change: transform, opacity, filter;
}

.navistar-ad-lightbox__glow-halo {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  opacity: 0;
  box-shadow:
    0 0 28px var(--geogram-work-glow-outer),
    0 0 56px var(--geogram-work-glow-mid),
    0 0 84px var(--geogram-work-glow-deep);
  transition: opacity 0.52s ease;
  pointer-events: none;
}

.navistar-ad-lightbox.is-glowing .navistar-ad-lightbox__glow-ring {
  opacity: 0.92;
  animation: work-card-ring-orbit var(--work-glow-ring-duration) linear infinite;
}

.navistar-ad-lightbox.is-glowing .navistar-ad-lightbox__glow-ambient {
  opacity: 0.7;
  animation: work-card-ambient-drift var(--work-glow-ambient-duration) cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
}

.navistar-ad-lightbox.is-glowing .navistar-ad-lightbox__glow-halo {
  opacity: 1;
  animation: navistar-ad-halo-flow var(--work-glow-ring-duration) linear infinite;
}

@keyframes navistar-ad-halo-flow {
  0%,
  100% {
    box-shadow:
      0 0 28px var(--geogram-work-glow-outer),
      0 0 56px var(--geogram-work-glow-mid),
      0 0 84px var(--geogram-work-glow-deep);
  }

  50% {
    box-shadow:
      0 0 40px var(--geogram-work-glow-outer),
      0 0 74px var(--geogram-work-glow-mid),
      0 0 100px var(--geogram-work-glow-deep);
  }
}

.navistar-ad-lightbox__close {
  position: fixed;
  top: clamp(1rem, 2.5vw, 1.6rem);
  right: clamp(1rem, 2.5vw, 1.6rem);
  z-index: 2;
  width: 3.6rem;
  height: 3.6rem;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  color: #fff;
  font-size: 2.4rem;
  line-height: 1;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.35s ease,
    border-color var(--geogram-transition),
    background var(--geogram-transition);
}

.navistar-ad-lightbox__close:not([hidden]) {
  opacity: 1;
  pointer-events: auto;
}

.navistar-ad-lightbox__close:hover,
.navistar-ad-lightbox__close:focus-visible {
  border-color: var(--geogram-aqua);
  background: rgba(0, 0, 0, 0.72);
  outline: none;
}

body.navistar-ad-lightbox-open {
  overflow: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .navistar-ad-lightbox__card,
  .navistar-ad-lightbox__scrim,
  .navistar-ad-lightbox__glow,
  .navistar-ad-lightbox__glow-ring,
  .navistar-ad-lightbox__glow-ambient,
  .navistar-ad-lightbox__glow-halo,
  .navistar-ad-lightbox__close {
    transition: none;
  }

  .navistar-ad-lightbox.is-glowing .navistar-ad-lightbox__glow-ring,
  .navistar-ad-lightbox.is-glowing .navistar-ad-lightbox__glow-ambient,
  .navistar-ad-lightbox.is-glowing .navistar-ad-lightbox__glow-halo {
    animation: none;
    opacity: 0.55;
  }
}

.case-navistar-stats__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.6rem);
  margin-top: 2.4rem;
}

.case-navistar-stats__item {
  min-width: 0;
  padding: clamp(1.4rem, 2vw, 2rem) clamp(1.2rem, 1.8vw, 1.8rem);
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid rgba(0, 174, 239, 0.18);
  background:
    radial-gradient(ellipse 80% 80% at 50% 0%, rgba(0, 174, 239, 0.08), transparent 70%),
    var(--geogram-surface-card);
  overflow: hidden;
}

.case-navistar-stats__value {
  display: block;
  margin-bottom: 0.6rem;
  font-size: clamp(1.6rem, 2.4vw, 2.6rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #4ec8f5;
  overflow-wrap: anywhere;
}

.case-navistar-stats__label {
  display: block;
  font-size: clamp(1.25rem, 1.35vw, 1.4rem);
  line-height: 1.45;
  color: var(--geogram-text-muted);
  overflow-wrap: break-word;
}

@media (min-width: 1200px) {
  .case-navistar-stats__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .case-navistar-stats__grid {
    grid-template-columns: 1fr;
  }
}

.case-study__hero-visual--springbirdbus {
  max-width: var(--geogram-max-width);
}

.case-study__hero-visual--springbirdbus .case-study__screenshot {
  background: #87ceeb;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.08);
}

.case-hq2-stats {
  max-width: 120rem;
}

.case-hq2-stats__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.6rem;
  margin-top: 2rem;
}

.case-hq2-stats__item {
  padding: 2rem 1.8rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
  text-align: center;
}

.case-hq2-stats__value {
  display: block;
  margin-bottom: 0.6rem;
  font-size: clamp(2.4rem, 4vw, 3.4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--geogram-aqua);
}

.case-hq2-stats__label {
  display: block;
  font-size: 1.35rem;
  line-height: 1.45;
  color: var(--geogram-text-muted);
}

.case-hq2-brochure {
  max-width: 120rem;
}

.case-hq2-brochure__specs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.6rem;
  margin: 2.4rem 0 3.2rem;
}

.case-hq2-brochure__spec {
  padding: 2rem 1.6rem;
  text-align: center;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid rgba(255, 153, 0, 0.28);
  background: linear-gradient(145deg, rgba(35, 47, 62, 0.92) 0%, rgba(19, 26, 34, 0.98) 100%);
}

.case-hq2-brochure__spec-value {
  display: block;
  margin-bottom: 0.5rem;
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #ff9900;
}

.case-hq2-brochure__spec-label {
  display: block;
  font-size: 1.3rem;
  line-height: 1.4;
  color: rgba(255, 255, 255, 0.72);
}

.case-hq2-brochure__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-bottom: 1.6rem;
}

.case-hq2-brochure__item {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
}

.case-hq2-brochure__item img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
}

.case-hq2-brochure__item figcaption {
  margin: 0;
  padding: 1rem 1.4rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  border-top: 1px solid var(--geogram-border-subtle);
}

.case-hq2-brochure__item--wide {
  margin-bottom: 2.4rem;
}

.case-hq2-brochure__intro {
  margin-bottom: 2.4rem;
}

/* HQ2 spread mosaic — varied sizes woven through case study sections */
.case-hq2-mosaic {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 2rem);
  margin: clamp(2.4rem, 4vw, 3.6rem) 0;
  max-width: 120rem;
  align-items: start;
}

.case-hq2-spread {
  display: flex;
  flex-direction: column;
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
  grid-column: span 6;
  box-shadow: var(--geogram-shadow-sm);
}

.case-hq2-spread img {
  display: block;
  width: 100%;
  height: auto;
}

.case-hq2-spread figcaption {
  margin: 0;
  display: flex;
  align-items: center;
  min-height: 3.8rem;
  padding: 0.9rem 1.2rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  border-top: 1px solid var(--geogram-border-subtle);
}

.case-hq2-spread--opening {
  margin: 0 0 clamp(2.4rem, 4vw, 4rem);
  border-color: rgba(255, 153, 0, 0.35);
  box-shadow:
    0 0 0 1px rgba(255, 153, 0, 0.12) inset,
    0 20px 48px rgba(0, 0, 0, 0.32);
}

.case-hq2-spread--opening figcaption {
  color: #ff9900;
}

.case-hq2-spread--full {
  grid-column: 1 / -1;
}

.case-hq2-spread--wide {
  grid-column: span 8;
}

.case-hq2-spread--narrow {
  grid-column: span 4;
}

.case-hq2-spread--third {
  grid-column: span 4;
}

.case-hq2-spread--tall {
  grid-column: span 5;
}

.case-hq2-spread--feature {
  grid-column: span 7;
}

.case-hq2-mosaic--lifestyle .case-hq2-spread:nth-child(3n + 1) {
  grid-column: span 7;
}

.case-hq2-mosaic--lifestyle .case-hq2-spread:nth-child(3n + 2) {
  grid-column: span 5;
}

.case-hq2-mosaic--lifestyle .case-hq2-spread:nth-child(3n) {
  grid-column: 1 / -1;
}

/* Case study */
.page-case-study .site-main {
  padding-top: var(--geogram-nav-height);
}

.case-study__hero {
  padding: clamp(3rem, 6vw, 6rem) var(--geogram-gutter) 0;
  background: var(--geogram-gradient-hero);
}

.case-study__back {
  margin: 0 0 2rem;
  font-size: 1.4rem;
}

.case-study__back a {
  color: var(--geogram-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}

.case-study__back a:hover {
  color: var(--geogram-aqua);
}

.case-study__title {
  margin: 0 0 1.6rem;
  font-size: clamp(3.2rem, 5.5vw, 5.6rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
  max-width: 20ch;
}

.case-study__title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(1.2rem, 3vw, 2.4rem);
  margin-bottom: 1.6rem;
}

.case-study__title-row .case-study__title {
  margin: 0;
  flex: 1;
  min-width: 0;
}

.case-study__award--title {
  flex-shrink: 0;
  margin: 0;
  max-width: min(28rem, 40%);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.case-study__subtitle {
  margin: 0 0 2.4rem;
  max-width: 56rem;
  font-size: 1.8rem;
  color: var(--geogram-text-muted);
  line-height: 1.55;
}

.case-study__subtitle strong {
  color: var(--geogram-aqua);
  font-weight: 600;
}

.case-study__award {
  display: inline-flex;
  align-items: center;
  gap: 1.4rem;
  padding: 1.2rem 1.6rem 1.2rem 1.2rem;
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  border: 1px solid rgba(255, 255, 255, 0.14);
}

.case-study__award--overlay {
  position: absolute;
  top: 1.2rem;
  right: 1.2rem;
  z-index: 2;
  margin: 0;
  max-width: min(30rem, calc(100% - 2.4rem));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.case-study__award--gold {
  background:
    linear-gradient(135deg, rgba(212, 168, 67, 0.22) 0%, rgba(245, 223, 160, 0.14) 42%, rgba(184, 134, 42, 0.2) 100%),
    var(--geogram-surface-card);
  border-color: rgba(212, 168, 67, 0.55);
  box-shadow:
    0 0 0 1px rgba(212, 168, 67, 0.18) inset,
    0 12px 32px rgba(0, 0, 0, 0.28),
    0 0 40px rgba(212, 168, 67, 0.12);
}

.case-study__award--silver {
  background:
    linear-gradient(135deg, rgba(196, 202, 210, 0.22) 0%, rgba(232, 236, 240, 0.14) 42%, rgba(148, 156, 168, 0.2) 100%),
    var(--geogram-surface-card);
  border-color: rgba(196, 202, 210, 0.55);
  box-shadow:
    0 0 0 1px rgba(196, 202, 210, 0.18) inset,
    0 12px 32px rgba(0, 0, 0, 0.28),
    0 0 40px rgba(196, 202, 210, 0.1);
}

.case-study__award--silver .case-study__award-label {
  color: #d8dee6;
}

.case-study__award-icon {
  flex-shrink: 0;
  width: 4.8rem;
  height: auto;
  padding: 0.5rem 0.6rem;
  border-radius: 0.6rem;
  background: rgba(0, 0, 0, 0.35);
  filter: invert(1) brightness(1.15) contrast(0.92);
}

.case-study__award-copy {
  display: grid;
  gap: 0.2rem;
}

.case-study__award-label {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #f0d078;
}

.case-study__award-org {
  font-size: 1.3rem;
  color: var(--geogram-text-muted);
}

[data-theme="hero"] .case-study__award--gold {
  background:
    linear-gradient(135deg, rgba(212, 168, 67, 0.28) 0%, rgba(245, 223, 160, 0.18) 42%, rgba(184, 134, 42, 0.24) 100%),
    #fff;
  box-shadow:
    0 0 0 1px rgba(154, 114, 36, 0.22) inset,
    0 12px 28px rgba(17, 24, 39, 0.12);
}

[data-theme="hero"] .case-study__award--silver {
  background:
    linear-gradient(135deg, rgba(148, 156, 168, 0.2) 0%, rgba(232, 236, 240, 0.28) 42%, rgba(108, 116, 128, 0.18) 100%),
    #fff;
  box-shadow:
    0 0 0 1px rgba(108, 116, 128, 0.2) inset,
    0 12px 28px rgba(17, 24, 39, 0.12);
}

[data-theme="hero"] .case-study__award--silver .case-study__award-label {
  color: #5c6570;
}

[data-theme="hero"] .case-study__award-label {
  color: #9a7224;
}

.case-study__hero-actions {
  margin-bottom: 3.2rem;
}

.case-study__hero-visual {
  margin: clamp(2.4rem, 4vw, 4rem) auto 0;
  padding: clamp(2rem, 3vw, 3.2rem) var(--geogram-gutter) clamp(3rem, 5vw, 4.8rem);
  width: min(100%, var(--geogram-max-width));
  border-top: 1px solid var(--geogram-border-muted);
  background: transparent;
}

.case-study__hero .section-inner > .case-study__hero-visual {
  margin-left: 0;
  margin-right: 0;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.case-study__hero-visual--cttc {
  max-width: var(--geogram-max-width);
}

.case-study__hero-visual--hq2 {
  padding-top: clamp(2.4rem, 4vw, 3.6rem);
}

.case-study__hero-media {
  position: relative;
}

.case-study__hero-visual--hq2 .case-study__screenshot {
  background: #172a3d;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.case-study__hero-visual--rivco-innovation {
  padding-top: clamp(2.4rem, 4vw, 3.6rem);
}

.case-study__hero-visual--rivco-innovation .case-study__screenshot {
  background: #0d1a24;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.case-study__hero-visual--rivco-oz {
  padding-top: clamp(2.4rem, 4vw, 3.6rem);
}

.case-study__hero-visual--rivco-oz .case-study__screenshot {
  background: #1a2838;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.06);
}

.case-study__screenshot {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  box-shadow:
    var(--geogram-shadow-md),
    0 0 48px rgba(0, 140, 186, 0.2);
  border: 1px solid var(--geogram-border-subtle);
}

.case-study__screenshot-caption {
  margin: 1.2rem 0 0;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  color: var(--geogram-text-muted);
}

.case-study__body {
  padding: var(--geogram-section-pad) var(--geogram-gutter);
  background: var(--geogram-bg);
}

.case-study__section {
  margin-bottom: clamp(4rem, 8vw, 7rem);
  max-width: 72rem;
}

.case-study__section--immersive {
  max-width: 120rem;
}

.case-study__section--immersive > .case-study__heading,
.case-study__section--immersive > p,
.case-study__section--immersive > .case-study__section-lead,
.case-study__section--immersive > .case-study__list {
  max-width: 72rem;
}

.case-study__section--immersive .case-hq2-stats__grid {
  margin-top: 2.4rem;
  gap: 2rem;
}

.case-study__section--immersive .case-hq2-stats__item {
  padding: 2.6rem 2rem;
}

.case-study__section--immersive .case-hq2-stats__value {
  font-size: clamp(2.8rem, 4.5vw, 4.2rem);
}

.case-study__section--immersive .case-hq2-stats__label {
  font-size: 1.45rem;
}

.case-study__section--immersive .case-hq2-mosaic {
  margin-top: 3.6rem;
  gap: clamp(1.6rem, 2.5vw, 2.4rem);
}

.case-study__section--immersive .case-hq2-spread figcaption {
  min-height: 4.6rem;
  padding: 1.1rem 1.5rem;
  font-size: 1.35rem;
}

.case-hq2-spread--breakout {
  width: 100%;
  max-width: none;
  margin-top: 3.2rem;
}

.case-hq2-mosaic--duo {
  align-items: start;
}

.case-hq2-mosaic--duo .case-hq2-spread--feature {
  grid-column: span 8;
}

.case-hq2-mosaic--duo .case-hq2-spread--tall {
  grid-column: span 4;
}

.case-hq2-mosaic--challenge .case-hq2-spread--feature {
  grid-column: span 8;
}

.case-hq2-mosaic--challenge .case-hq2-spread--tall {
  grid-column: span 4;
}

.case-hq2-mosaic--built .case-hq2-spread--feature {
  grid-column: span 8;
}

.case-hq2-mosaic--built .case-hq2-spread--tall {
  grid-column: span 4;
}

.case-study__section > p {
  margin: 0 0 1.6rem;
  color: var(--geogram-text-muted);
  font-size: 1.7rem;
  line-height: 1.65;
}

.case-study__heading {
  margin: 0 0 2rem;
  font-size: clamp(2.4rem, 3.5vw, 3.2rem);
  font-weight: 600;
  color: var(--geogram-text);
}

.case-study__code {
  font-size: 0.92em;
  padding: 0.15em 0.5em;
  border-radius: 0.4rem;
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
  color: var(--geogram-aqua);
}

.case-study__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1rem;
}

.case-study__list li {
  position: relative;
  padding-left: 1.6rem;
  color: var(--geogram-text-muted);
  font-size: 1.55rem;
  line-height: 1.6;
}

.case-study__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--geogram-aqua);
  box-shadow: 0 0 10px rgba(0, 255, 221, 0.35);
}

.case-study__list strong {
  color: var(--geogram-text);
  font-weight: 600;
}

.page-case-study .case-deliverable a {
  color: var(--geogram-aqua);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.page-case-study .case-deliverable a:hover {
  color: var(--geogram-text);
}

.case-rebrand {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: clamp(1.6rem, 3vw, 2.4rem);
  align-items: stretch;
  max-width: 120rem;
}

.case-rebrand__panel {
  display: flex;
  flex-direction: column;
  margin: 0;
  border-radius: calc(var(--geogram-radius) + 0.6rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
  overflow: hidden;
}

.case-rebrand__panel--before {
  opacity: 0.92;
}

.case-rebrand__panel--before .case-rebrand__shot {
  filter: saturate(0.88);
}

.case-rebrand__panel--after {
  border-color: var(--geogram-border-aqua);
  box-shadow: 0 0 40px rgba(0, 255, 221, 0.1);
}

.case-rebrand__copy {
  padding: 2.4rem;
  flex: 0 0 auto;
}

.case-rebrand__label {
  margin: 0 0 1.2rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
}

.case-rebrand__name {
  margin: 0 0 1rem;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--geogram-text);
}

.case-rebrand__domain {
  margin: 0 0 1.2rem;
  font-size: 2rem;
  font-weight: 700;
  color: var(--geogram-aqua);
  letter-spacing: -0.02em;
}

.case-rebrand__note {
  margin: 0;
  font-size: 1.4rem;
  color: var(--geogram-text-muted);
  line-height: 1.5;
}

.case-rebrand__arrow {
  display: flex;
  align-items: center;
  align-self: center;
  font-size: 2.4rem;
  color: var(--geogram-purple);
  font-weight: 300;
}

.case-rebrand__shot {
  margin: 0;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--geogram-border-subtle);
}

.case-rebrand__img {
  display: block;
  width: 100%;
  height: auto;
}

.case-rebrand__shot-caption {
  margin: 0;
  padding: 1.2rem 1.8rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  background: var(--geogram-surface);
}

.case-rebrand__panel--after .case-rebrand__shot-caption {
  color: var(--geogram-aqua);
}

.case-rebrand__shot-inner {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 14rem;
  padding: 2.4rem;
}

.case-rebrand__shot--legacy .case-rebrand__shot-inner {
  background:
    linear-gradient(145deg, rgba(255, 255, 255, 0.04) 0%, transparent 55%),
    #12121a;
}

.case-rebrand__legacy-wordmark {
  margin: 0;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-align: center;
  color: rgba(255, 255, 255, 0.28);
}

.case-rebrand__shot--brand-preview .case-rebrand__shot-inner {
  position: relative;
  overflow: hidden;
  background: #0a1628;
}

.case-rebrand__shot--brand-preview-light .case-rebrand__shot-inner {
  background: #ffffff;
  overflow: visible;
}

.case-rebrand__shot--brand-preview .case-rebrand__img {
  position: relative;
  z-index: 1;
  width: auto;
  max-width: min(100%, 24rem);
  max-height: 11rem;
  height: auto;
  object-fit: contain;
}

.case-rebrand__shot--brand-preview-horizontal .case-rebrand__shot-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3rem);
  overflow: visible;
}

.case-rebrand__shot--brand-preview-horizontal .case-rebrand__img {
  width: min(100%, 36rem);
  max-width: 100%;
  max-height: none;
  height: auto;
}

.page-case-study--palmerprotax .case-rebrand__shot--brand-preview-horizontal .case-rebrand__img {
  width: min(100%, 40rem);
}

/* CTTC brand system (case study) */
.page-case-study {
  /* Fixed CTTC tokens — AA contrast pairs, theme-independent */
  --cttc-brand-blue: #1d4289;
  --cttc-midnight: #071d49;
  --cttc-nightfall: #051c2c;
  --cttc-spark: #ffcd00;
  --cttc-glow-bright: #7de8ff; /* 6.8:1 on Brand Blue */
  --cttc-on-dark: #ffffff;
  --cttc-on-light-heading: #1d4289; /* 9.6:1 on white */
  --cttc-on-light-body: #071d49; /* 16.4:1 on white */
  --cttc-on-dark-heading: #7de8ff; /* on villain surface cards */
}

.case-brand {
  max-width: 120rem;
}

.case-brand--guide {
  padding-top: clamp(2rem, 4vw, 4rem);
  border-top: 1px solid var(--geogram-border-muted);
}

.case-promise {
  position: relative;
  margin: 2.4rem 0 3.2rem;
  padding: clamp(2.4rem, 5vw, 3.6rem) clamp(2.4rem, 5vw, 3.6rem) clamp(2.4rem, 5vw, 3.6rem) clamp(2.8rem, 5vw, 4rem);
  border: 1px solid rgba(0, 181, 226, 0.22);
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  overflow: hidden;
  isolation: isolate;
  color: var(--cttc-on-dark);
  box-shadow:
    0 12px 40px rgba(5, 28, 44, 0.45),
    0 0 48px rgba(0, 181, 226, 0.12);
}

.case-promise::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(
    105deg,
    #1d4289 0.5%,
    #0f2f5c 42%,
    #051c2c 99.5%
  );
}

.case-promise::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  width: 5px;
  background: linear-gradient(180deg, #ffcd00 0%, #00b5e2 100%);
}

.case-promise__text,
.case-promise__cite {
  position: relative;
  z-index: 2;
}

.case-promise__text {
  margin: 0 0 1.2rem;
  max-width: 52rem;
  font-family: "Bodoni Moda", Georgia, serif;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 600;
  font-style: italic;
  line-height: 1.28;
  color: var(--cttc-on-dark);
  text-wrap: balance;
}

.case-promise__accent {
  font-style: italic;
  color: var(--cttc-spark); /* 6.4:1 on Brand Blue, 11.6:1 on Nightfall */
}

.case-promise__cite {
  display: block;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 1.2rem;
  font-style: normal;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cttc-glow-bright);
}

.case-framework {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
  gap: 1.6rem;
  margin-bottom: 3.2rem;
}

.case-framework__item {
  padding: 2rem;
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
}

.case-framework__label {
  margin: 0 0 0.8rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cttc-on-light-heading);
}

[data-theme="villain"] .page-case-study .case-framework__label {
  color: var(--cttc-on-dark-heading);
}

.case-framework__item p {
  margin: 0;
  font-size: 1.45rem;
  color: var(--geogram-text-muted);
  line-height: 1.5;
}

[data-theme="hero"] .page-case-study .case-framework__item p {
  color: var(--cttc-on-light-body);
  opacity: 0.88;
}

.case-brand__figure {
  margin: 0 0 3.2rem;
}

.case-brand__spread {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
}

.case-brand__caption {
  margin: 1rem 0 0;
  font-size: 1.3rem;
  color: var(--geogram-text-muted);
  text-align: center;
}

.case-principles {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(28rem, 1fr));
  gap: 2rem;
}

.case-principle {
  padding: 2.4rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface);
}

.case-principle__title {
  margin: 0 0 1rem;
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--cttc-on-light-heading);
}

[data-theme="villain"] .page-case-study .case-principle__title {
  color: var(--cttc-on-dark-heading);
}

.case-principle p {
  margin: 0;
  font-size: 1.45rem;
  color: var(--geogram-text-muted);
  line-height: 1.55;
}

.case-brand__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: clamp(2rem, 4vw, 3.2rem);
  align-items: center;
  margin-bottom: 3.2rem;
}

.case-brand__cover-wrap {
  margin: 0;
}

.case-brand__cover {
  display: block;
  width: 100%;
  height: auto;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  box-shadow: var(--geogram-shadow-md);
}

.case-brand__intro-copy p {
  margin: 0 0 1.6rem;
  font-size: 1.6rem;
  color: var(--geogram-text-muted);
  line-height: 1.6;
}

.case-brand__toc {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.8rem;
}

.case-brand__toc li {
  padding: 0.9rem 1.4rem;
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--geogram-text);
  border-left: 3px solid #1d4289;
  background: var(--geogram-surface-card);
  border-radius: 0 var(--geogram-radius) var(--geogram-radius) 0;
}

.case-brand-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem;
  margin-bottom: 3.2rem;
}

.case-brand-gallery__item {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
}

.case-brand-gallery__item--on-light {
  background: #ffffff;
}

.case-brand-gallery__item--on-dark {
  background: #0a1628;
}

.case-brand-gallery__item--wide {
  grid-column: 1 / -1;
}

.case-brand-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
}

.case-brand-gallery__item figcaption {
  margin: 0;
  padding: 1rem 1.4rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  border-top: 1px solid var(--geogram-border-subtle);
}

.case-portal-gallery {
  display: grid;
  grid-template-columns: minmax(10rem, 0.22fr) minmax(0, 1fr);
  gap: clamp(1.2rem, 2vw, 2rem);
  margin-top: 2.4rem;
  max-width: 120rem;
}

.case-portal-gallery__item {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
}

.case-portal-gallery__item--nav {
  align-self: start;
}

.case-portal-gallery__item--main {
  min-width: 0;
}

.case-portal-gallery__item--full {
  grid-column: 1 / -1;
}

.case-portal-gallery__public {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1.2rem, 2vw, 2rem);
  padding-top: clamp(0.8rem, 1.5vw, 1.6rem);
  border-top: 1px solid var(--geogram-border-muted);
}

.case-portal-gallery__item img {
  display: block;
  width: 100%;
  height: auto;
}

.case-portal-gallery__item figcaption {
  margin: 0;
  padding: 1rem 1.4rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  border-top: 1px solid var(--geogram-border-subtle);
}

.case-study__section--gallery {
  max-width: 120rem;
}

.case-study__section-lead {
  max-width: 72rem;
  margin: 0 0 1.6rem;
  color: var(--geogram-text-muted);
  font-size: 1.7rem;
  line-height: 1.65;
}

/* CTTC domain acquisition (case study) */
.case-domain {
  max-width: 120rem;
}

.case-domain__stage {
  position: relative;
  margin-top: 2rem;
  padding: clamp(2.8rem, 5vw, 4.4rem);
  border: 1px solid rgba(0, 181, 226, 0.22);
  border-radius: calc(var(--geogram-radius) + 0.6rem);
  overflow: hidden;
  isolation: isolate;
  box-shadow:
    0 12px 40px rgba(5, 28, 44, 0.35),
    0 0 48px rgba(0, 181, 226, 0.1);
}

.case-domain__stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(125deg, #1d4289 0%, #0f2f5c 45%, #051c2c 100%);
}

.case-domain__stage::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  width: 5px;
  background: linear-gradient(180deg, #ffcd00 0%, #00b5e2 100%);
}

.case-domain__eyebrow,
.case-domain__shift,
.case-domain__lead,
.case-domain__layout {
  position: relative;
  z-index: 2;
}

.case-domain__eyebrow {
  margin: 0 0 1.6rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--cttc-glow-bright);
}

.case-domain__shift {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 1.8rem);
  margin-bottom: 2rem;
}

.case-domain__from,
.case-domain__to {
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.case-domain__from {
  color: rgba(255, 255, 255, 0.45);
  text-decoration: line-through;
  text-decoration-thickness: 3px;
}

.case-domain__from code {
  font-family: inherit;
  font-size: inherit;
  color: inherit;
  background: none;
  padding: 0;
}

.case-domain__to {
  color: #fff;
}

.case-domain__to strong {
  font-weight: 700;
  color: var(--cttc-spark);
}

.case-domain__arrow {
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 300;
  color: var(--cttc-glow-bright);
}

.case-domain__lead {
  margin: 0 0 2.8rem;
  max-width: 72rem;
  font-size: clamp(1.6rem, 2.2vw, 1.85rem);
  line-height: 1.65;
  color: rgba(255, 255, 255, 0.88);
}

.case-domain__lead a {
  color: var(--cttc-glow-bright);
}

.case-domain__lead code {
  color: rgba(255, 255, 255, 0.75);
}

.case-domain__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 4vw, 3.2rem);
  align-items: start;
}

.case-domain__points {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1.4rem;
}

.case-domain__points li {
  margin: 0;
  padding: 1.6rem 1.8rem;
  border-radius: calc(var(--geogram-radius) + 0.2rem);
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.06);
}

.case-domain__points strong {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 1.45rem;
  color: #fff;
}

.case-domain__points span {
  display: block;
  font-size: 1.4rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.78);
}

.case-domain__figure {
  margin: 0;
  overflow: hidden;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: #fff;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
}

.case-domain__img {
  display: block;
  width: 100%;
  height: auto;
}

.case-domain__caption {
  margin: 0;
  padding: 1rem 1.4rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  border-top: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
}

.case-expo {
  margin-top: clamp(3.2rem, 6vw, 5rem);
  padding-top: clamp(2.4rem, 4vw, 3.2rem);
  border-top: 1px solid var(--geogram-border-muted);
  max-width: 120rem;
}

.case-expo__lead {
  margin: 0 0 2.4rem;
  max-width: 72rem;
  font-size: 1.6rem;
  line-height: 1.65;
  color: var(--geogram-text-muted);
}

.case-expo__figure {
  margin: 0 0 2rem;
  border-radius: calc(var(--geogram-radius) + 0.6rem);
  overflow: hidden;
  border: 1px solid var(--geogram-border-subtle);
  background: var(--geogram-surface-card);
  box-shadow:
    var(--geogram-shadow-md),
    0 0 48px rgba(29, 66, 137, 0.15);
}

.case-expo__img {
  display: block;
  width: 100%;
  height: auto;
  vertical-align: middle;
}

.case-expo__caption {
  margin: 0;
  padding: 1.2rem 1.8rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
  border-top: 1px solid var(--geogram-border-subtle);
  text-align: center;
}

.case-expo__highlights {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr));
  gap: 1.2rem;
}

.case-expo__highlights li {
  padding: 1.4rem 1.6rem;
  font-size: 1.4rem;
  line-height: 1.55;
  color: var(--geogram-text-muted);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
  border-radius: var(--geogram-radius);
}

.case-expo__highlights strong {
  display: block;
  margin-bottom: 0.35rem;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cttc-on-light-heading);
}

[data-theme="villain"] .page-case-study .case-expo__highlights strong {
  color: var(--cttc-on-dark-heading);
}

.case-brand__tokens-heading {
  margin: 0 0 1.6rem;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--geogram-text);
}

.case-brand__tokens-heading:not(:first-child) {
  margin-top: 2.8rem;
}

.case-swatches {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 1.2rem;
}

.case-swatch {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 7rem;
  padding: 1rem;
  border-radius: var(--geogram-radius);
  background: var(--swatch);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.case-swatch--on-light {
  border-color: rgba(7, 29, 73, 0.12);
}

.case-swatch__name,
.case-swatch__hex {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--cttc-on-dark);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

.case-swatch--on-light .case-swatch__name,
.case-swatch--on-light .case-swatch__hex {
  color: var(--cttc-on-light-body);
  text-shadow: none;
}

.case-swatch__hex {
  font-weight: 400;
  opacity: 0.9;
}

.case-gradients {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1.2rem;
}

.case-gradient {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 5.6rem;
  overflow: hidden;
  border-radius: var(--geogram-radius);
  isolation: isolate;
  transform: translateZ(0);
}

.case-gradient::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 0;
  border-radius: inherit;
  background: var(--gradient);
  background-repeat: no-repeat;
  background-size: 100% 100%;
}

.case-gradient__name {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 1rem;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--cttc-on-dark);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
}

.case-gradient:first-child .case-gradient__name {
  color: var(--cttc-on-light-body);
  text-shadow: none;
}

.case-type-sample {
  margin-top: 0.4rem;
}

.case-type-sample__inter,
.case-type-sample__bodoni {
  margin: 0 0 1.2rem;
  font-size: 1.55rem;
  line-height: 1.55;
  color: var(--geogram-text-muted);
}

.case-type-sample__inter {
  font-family: Inter, system-ui, sans-serif;
}

.case-type-sample__bodoni {
  font-family: "Bodoni Moda", Georgia, serif;
}

.case-type-sample__label {
  display: block;
  margin-bottom: 0.4rem;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cttc-on-light-heading);
}

[data-theme="villain"] .page-case-study .case-type-sample__label {
  color: var(--cttc-on-dark-heading);
}

.case-deliverables {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr));
  gap: 2.4rem;
  max-width: 96rem;
}

.case-deliverable {
  padding: 2.8rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface-card);
  border: 1px solid var(--geogram-border-subtle);
}

.case-deliverable h3 {
  margin: 0 0 1.2rem;
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--geogram-aqua);
}

.page-case-study .case-deliverable h3 {
  color: var(--cttc-on-light-heading);
}

[data-theme="villain"] .page-case-study .case-deliverable h3 {
  color: var(--cttc-on-dark-heading);
}

.case-deliverable p {
  margin: 0;
  font-size: 1.5rem;
  color: var(--geogram-text-muted);
  line-height: 1.55;
}

.case-study__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin: 2.4rem 0 0;
  padding: 0;
  list-style: none;
}

.case-study__tags li {
  padding: 0.6rem 1.4rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--geogram-aqua);
  border: 1px solid var(--geogram-border-aqua);
  border-radius: 999px;
  background: var(--geogram-form-success-bg);
}

.page-case-study .case-study__tags li {
  color: var(--cttc-on-light-heading);
  border-color: rgba(29, 66, 137, 0.35);
  background: rgba(29, 66, 137, 0.08);
}

[data-theme="villain"] .page-case-study .case-study__tags li {
  color: var(--cttc-on-dark-heading);
  border-color: rgba(125, 232, 255, 0.35);
  background: rgba(125, 232, 255, 0.08);
}

.page-case-study .case-study__code {
  color: var(--cttc-on-light-heading);
}

[data-theme="villain"] .page-case-study .case-study__code {
  color: var(--cttc-on-dark-heading);
}

.case-study__heading--sm {
  font-size: clamp(1.6rem, 2.2vw, 2rem);
  margin-bottom: 1.2rem;
}

.case-study__section .case-study__heading--sm:not(:first-child) {
  margin-top: clamp(2.4rem, 4vw, 3.6rem);
}

.case-study__related {
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.page-case-study .case-study__tags a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.page-case-study .case-study__tags a:hover {
  color: var(--geogram-aqua);
  border-color: rgba(0, 255, 221, 0.35);
}

.case-program-hub .work-grid {
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.case-study__footer {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
  margin-top: 2rem;
  padding-top: 3rem;
  border-top: 1px solid var(--geogram-border-muted);
}

@media (max-width: 767px) {
  .case-rebrand {
    grid-template-columns: 1fr;
  }

  .case-rebrand__arrow {
    justify-content: center;
    transform: rotate(90deg);
  }

  .case-brand__intro {
    grid-template-columns: 1fr;
  }

  .case-brand-gallery {
    grid-template-columns: 1fr;
  }

  .case-brand-gallery__item--wide {
    grid-column: auto;
  }

  .case-portal-gallery {
    grid-template-columns: 1fr;
  }

  .case-portal-gallery__item--nav {
    max-width: 18rem;
  }

  .case-portal-gallery__public {
    grid-template-columns: 1fr;
  }

  .case-domain__layout {
    grid-template-columns: 1fr;
  }

  .case-hq2-stats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-hq2-brochure__specs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .case-hq2-mosaic {
    grid-template-columns: 1fr;
  }

  .case-hq2-spread,
  .case-hq2-spread--full,
  .case-hq2-spread--wide,
  .case-hq2-spread--narrow,
  .case-hq2-spread--third,
  .case-hq2-spread--tall,
  .case-hq2-spread--feature,
  .case-hq2-mosaic--lifestyle .case-hq2-spread:nth-child(3n + 1),
  .case-hq2-mosaic--lifestyle .case-hq2-spread:nth-child(3n + 2),
  .case-hq2-mosaic--lifestyle .case-hq2-spread:nth-child(3n) {
    grid-column: 1 / -1;
  }

  .case-hq2-mosaic--duo .case-hq2-spread--feature,
  .case-hq2-mosaic--duo .case-hq2-spread--tall,
  .case-hq2-mosaic--challenge .case-hq2-spread--feature,
  .case-hq2-mosaic--challenge .case-hq2-spread--tall,
  .case-hq2-mosaic--built .case-hq2-spread--feature,
  .case-hq2-mosaic--built .case-hq2-spread--tall {
    grid-column: 1 / -1;
  }

  .case-palmer-deck {
    grid-template-columns: 1fr;
  }

  .case-palmer-slide,
  .case-palmer-slide--full,
  .case-palmer-slide--wide,
  .case-palmer-slide--feature,
  .case-palmer-slide--half,
  .case-palmer-slide--compact,
  .case-palmer-slide--third,
  .case-palmer-slide--chart {
    grid-column: 1 / -1;
  }

  .case-study__award--overlay {
    top: 0.8rem;
    right: 0.8rem;
    gap: 0.8rem;
    padding: 0.8rem 1rem 0.8rem 0.8rem;
    max-width: min(22rem, calc(100% - 1.6rem));
  }

  .case-study__title-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .case-study__award--title {
    max-width: 100%;
    gap: 0.8rem;
    padding: 0.8rem 1rem 0.8rem 0.8rem;
  }

  .case-study__award--title .case-study__award-icon {
    width: 3.6rem;
    padding: 0.35rem 0.45rem;
  }

  .case-study__award--title .case-study__award-label {
    font-size: 1.2rem;
  }

  .case-study__award--title .case-study__award-org {
    font-size: 1.1rem;
  }

  .case-study__award--overlay .case-study__award-icon {
    width: 3.6rem;
    padding: 0.35rem 0.45rem;
  }

  .case-study__award--overlay .case-study__award-label {
    font-size: 1.2rem;
  }

  .case-study__award--overlay .case-study__award-org {
    font-size: 1.1rem;
  }
}

/* Highlights */
.highlights {
  background: var(--geogram-section-alt);
}

.highlights__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(24rem, 1fr));
  gap: 2rem;
}

.highlight-item {
  padding: 2.4rem;
  border-left: 3px solid var(--geogram-purple);
  background: var(--geogram-surface);
  border-radius: 0 var(--geogram-radius) var(--geogram-radius) 0;
  transition:
    transform var(--geogram-transition-slow),
    border-color var(--geogram-transition),
    background var(--geogram-transition),
    box-shadow var(--geogram-transition-slow);
}

.highlight-item:hover {
  transform: translateX(6px);
  border-left-color: var(--geogram-aqua);
  background: var(--geogram-bg-elevated);
  box-shadow: -4px 8px 32px rgba(99, 107, 255, 0.15);
}

.highlight-item strong {
  display: block;
  margin-bottom: 0.6rem;
  font-size: 1.5rem;
  color: var(--geogram-text);
}

.highlight-item span {
  font-size: 1.4rem;
  color: var(--geogram-text-muted);
}

/* Home — Awards + Recognition */
.home-awards {
  background: #000;
  color: #fff;
  padding: clamp(6rem, 11vw, 11rem) 0;
  overflow: hidden;
}

.home-awards__layout {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
  gap: clamp(2.4rem, 5vw, 6rem);
  align-items: center;
  max-width: var(--geogram-max-width);
  margin: 0 auto;
  padding: 0 var(--geogram-gutter);
}

.home-awards__visual {
  position: relative;
  min-height: clamp(30rem, 46vw, 54rem);
  display: flex;
  align-items: center;
  justify-content: center;
}

.home-awards__scene {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  perspective: 1400px;
  perspective-origin: 40% 46%;
}

.home-awards__stage {
  --plaque-w: clamp(8.5rem, 10.5vw, 11.5rem);
  --plaque-h: calc(var(--plaque-w) * 3.85);
  --plaque-d: calc(var(--plaque-w) * 0.11);
  --addy-glass-end: 24%;
  --addy-gold-start: 25.5%;
  position: relative;
  transform-style: preserve-3d;
}

.home-awards__plaque {
  position: relative;
  width: var(--plaque-w);
  height: var(--plaque-h);
  transform-style: preserve-3d;
  transform: rotateY(-34deg) rotateX(17deg) rotateZ(1.5deg);
  animation: home-awards-sway 9.5s ease-in-out infinite alternate;
  will-change: transform;
}

.home-awards__plaque-face {
  position: absolute;
  box-sizing: border-box;
  backface-visibility: hidden;
}

.home-awards__plaque-face--front,
.home-awards__plaque-face--back {
  width: var(--plaque-w);
  height: var(--plaque-h);
}

.home-awards__plaque-face--front {
  overflow: hidden;
  padding: 0;
  transform: translateZ(calc(var(--plaque-d) / 2));
  background: #0a0a0a;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    inset -8px 0 20px rgba(255, 255, 255, 0.05);
}

.home-awards__plaque-face--back {
  transform: rotateY(180deg) translateZ(calc(var(--plaque-d) / 2));
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.08) var(--addy-glass-end), #111 var(--addy-gold-start), #9a7224 100%);
}

.home-awards__plaque-face--right,
.home-awards__plaque-face--left {
  width: var(--plaque-d);
  height: var(--plaque-h);
  left: calc((var(--plaque-w) - var(--plaque-d)) / 2);
}

.home-awards__plaque-face--right {
  transform: rotateY(90deg) translateZ(calc(var(--plaque-w) / 2));
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.12) var(--addy-glass-end), #111 var(--addy-gold-start), #c8943a 55%, #f0d078 72%, #b8862a 100%);
  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.28);
}

.home-awards__plaque-face--left {
  transform: rotateY(-90deg) translateZ(calc(var(--plaque-w) / 2));
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(255, 255, 255, 0.04) var(--addy-glass-end), #0a0a0a var(--addy-gold-start), #8a6820 100%);
}

.home-awards__plaque-face--top,
.home-awards__plaque-face--bottom {
  width: var(--plaque-w);
  height: var(--plaque-d);
  top: calc((var(--plaque-h) - var(--plaque-d)) / 2);
}

.home-awards__plaque-face--top {
  transform: rotateX(90deg) translateZ(calc(var(--plaque-h) / 2));
  background: #111;
}

.home-awards__plaque-face--bottom {
  transform: rotateX(-90deg) translateZ(calc(var(--plaque-h) / 2));
  background: #111;
}

.addy-award {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}

.addy-award__cap {
  flex: 0 0 3.2%;
  background: #111;
}

.addy-award__glass {
  flex: 0 0 20.8%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.55rem 0.65rem 0.45rem;
  background:
    linear-gradient(155deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.05) 42%, rgba(255, 255, 255, 0.12) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.14);
}

.addy-award__logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: invert(1) brightness(1.15) contrast(0.92);
  opacity: 0.92;
}

.addy-award__divider {
  flex: 0 0 1.5%;
  background: #111;
}

.addy-award__gold {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  padding: 1.2rem 0.75rem 1rem;
  background:
    linear-gradient(90deg, #9a7224 0%, #d4a843 16%, #f5dfa0 34%, #c8943a 50%, #f0d078 66%, #b8862a 84%, #9a7224 100%),
    repeating-linear-gradient(90deg, transparent 0, transparent 2px, rgba(0, 0, 0, 0.045) 2px, rgba(0, 0, 0, 0.045) 3px);
  background-blend-mode: normal, multiply;
}

.addy-award__level {
  margin: auto 0 0;
  padding-top: 1.6rem;
  font-size: clamp(0.62rem, 0.85vw, 0.78rem);
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: 0.04em;
  text-align: center;
  text-transform: uppercase;
  color: #111;
}

.addy-award__aaf {
  display: flex;
  align-items: flex-end;
  gap: 0.45rem;
  width: 100%;
  margin-top: auto;
  padding-bottom: 0.2rem;
  color: #111;
}

.addy-award__aaf-icon {
  flex-shrink: 0;
  width: 1.35rem;
  height: 1.35rem;
}

.addy-award__aaf-type {
  display: grid;
  gap: 0.1rem;
  min-width: 0;
}

.addy-award__aaf-mark {
  font-size: clamp(0.85rem, 1.1vw, 1rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: -0.03em;
}

.addy-award__aaf-name {
  font-size: clamp(0.42rem, 0.55vw, 0.52rem);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.addy-award__foot {
  flex: 0 0 3.5%;
  background: #111;
}

.home-awards__shadow {
  position: absolute;
  left: 50%;
  top: calc(var(--plaque-h) * 0.94);
  z-index: -1;
  width: calc(var(--plaque-w) * 0.95);
  height: calc(var(--plaque-w) * 0.34);
  transform: translateX(-40%) rotateX(82deg);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(0, 0, 0, 0.58) 0%, transparent 72%);
  filter: blur(12px);
  -webkit-filter: blur(12px);
  pointer-events: none;
}

@keyframes home-awards-sway {
  0% {
    transform: rotateY(-40deg) rotateX(18deg) rotateZ(2deg);
  }

  100% {
    transform: rotateY(-26deg) rotateX(15deg) rotateZ(0deg);
  }
}

.home-awards__content {
  min-width: 0;
}

.home-awards__title {
  margin: 0 0 clamp(4rem, 9vw, 11rem);
  font-size: clamp(4.8rem, 9.2vw, 11.2rem);
  font-weight: 600;
  line-height: 0.92;
  letter-spacing: -0.035em;
  color: #fff;
}

.home-awards__title-line {
  display: block;
}

.home-awards__meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: clamp(2.4rem, 4.5vw, 6.4rem);
  align-items: start;
}

.home-awards__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: clamp(1.2rem, 2vw, 1.8rem);
}

.home-awards__name {
  font-size: clamp(1.7rem, 2.2vw, 2.4rem);
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #fff;
}

.home-awards__copy {
  display: grid;
  gap: 1.6rem;
}

.home-awards__copy p {
  margin: 0;
  font-size: clamp(1.45rem, 1.65vw, 1.75rem);
  line-height: 1.55;
  color: #8f8f9a;
  max-width: 34rem;
}

@media (max-width: 991px) {
  .home-awards__layout {
    grid-template-columns: 1fr;
    gap: clamp(3rem, 8vw, 5rem);
  }

  .home-awards__visual {
    min-height: clamp(24rem, 52vw, 36rem);
    order: -1;
  }

  .home-awards__stage {
    --plaque-w: min(72vw, 14rem);
  }

  .home-awards__scene {
    perspective-origin: 50% 42%;
  }

  .home-awards__title {
    margin-bottom: clamp(3rem, 8vw, 5rem);
  }

  .home-awards__meta {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }
}

/* Contact */
.contact {
  background: var(--geogram-gradient-hero);
}

.contact__layout {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: clamp(3rem, 6vw, 8rem);
  align-items: start;
}

.contact__lead {
  margin-bottom: 0;
}

.contact-form {
  display: grid;
  gap: 2rem;
}

.form-group label {
  display: block;
  margin-bottom: 0.6rem;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  padding: 1.4rem 1.6rem;
  font-family: inherit;
  font-size: 1.6rem;
  color: var(--geogram-text);
  background: var(--geogram-bg);
  border: 1px solid var(--geogram-form-border);
  border-radius: var(--geogram-radius);
  transition:
    border-color var(--geogram-transition),
    background var(--geogram-transition);
}

.form-group input::placeholder,
.form-group textarea::placeholder {
  color: var(--geogram-placeholder);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--geogram-aqua);
}

.form-success {
  display: none;
  padding: 2rem;
  border-radius: var(--geogram-radius);
  background: var(--geogram-form-success-bg);
  border: 1px solid var(--geogram-aqua);
}

.form-success.is-visible,
.form-success:not([hidden]) {
  display: block;
}

.form-error {
  margin: 0 0 1.6rem;
  padding: 1.2rem 1.4rem;
  font-size: 1.4rem;
  line-height: 1.5;
  color: #ffb4b4;
  background: rgba(255, 80, 80, 0.12);
  border: 1px solid rgba(255, 120, 120, 0.35);
  border-radius: var(--geogram-radius);
}

.form-error[hidden] {
  display: none;
}

.form-honeypot {
  position: absolute;
  left: -10000px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.contact-form [type="submit"][disabled] {
  cursor: not-allowed;
  opacity: 0.7;
}

.form-success h3 {
  margin: 0 0 0.8rem;
  font-size: 2.4rem;
  color: var(--geogram-aqua);
}

/* Footer */
.site-footer {
  padding: 4rem var(--geogram-gutter) 2.4rem;
  background: var(--geogram-section-alt);
  border-top: 1px solid var(--geogram-border-muted);
  transition:
    background var(--geogram-transition),
    border-color var(--geogram-transition);
}

.site-footer__inner {
  max-width: var(--geogram-max-width);
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 2rem 3.2rem;
}

.site-footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 2.4rem;
  margin: 0;
  padding: 0;
}

.site-footer__nav a {
  font-size: 1.3rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--geogram-text-muted);
  text-decoration: none;
}

.site-footer__nav a:hover {
  color: var(--geogram-aqua);
}

.site-footer__copy {
  margin: 0;
  font-size: 1.3rem;
  color: var(--geogram-text-muted);
}

.site-footer__meta {
  max-width: var(--geogram-max-width);
  margin: 1.4rem auto 0;
}

.site-footer__legal {
  margin: 0;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: 0.01em;
  text-transform: none;
  color: var(--geogram-text-muted);
  opacity: 0.55;
}

.site-footer__legal a {
  color: inherit;
  text-decoration: none;
}

.site-footer__legal a:hover {
  opacity: 1;
  color: var(--geogram-aqua);
}

.site-footer__legal-sep {
  margin: 0 0.4em;
  opacity: 0.4;
}

/* Legal pages */
.page-legal .site-main {
  padding-top: var(--geogram-nav-height);
}

.legal-doc {
  max-width: 72rem;
  margin: 0 auto;
  padding: clamp(4rem, 8vw, 8rem) var(--geogram-gutter) clamp(6rem, 10vw, 10rem);
}

.legal-doc__header {
  margin-bottom: clamp(3rem, 6vw, 4.8rem);
  padding-bottom: 2.4rem;
  border-bottom: 1px solid var(--geogram-border-muted);
}

.legal-doc__title {
  margin: 0 0 1.2rem;
  font-size: clamp(3.2rem, 5vw, 5.2rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.legal-doc__updated {
  margin: 0;
  font-size: 1.3rem;
  color: var(--geogram-text-muted);
}

.legal-doc__body {
  display: grid;
  gap: 2.4rem;
}

.legal-doc section h2 {
  margin: 0 0 0.8rem;
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--geogram-text);
}

.legal-doc section p,
.legal-doc section li {
  margin: 0 0 0.8rem;
  font-size: 1.45rem;
  line-height: 1.7;
  color: var(--geogram-text-muted);
}

.legal-doc section p:last-child,
.legal-doc section li:last-child {
  margin-bottom: 0;
}

.legal-doc section ul {
  margin: 0 0 0.8rem;
  padding-left: 1.6rem;
}

.legal-doc a {
  color: var(--geogram-aqua);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.legal-doc a:hover {
  color: var(--geogram-text);
}

/* ============================================================
   Cinematic deep-space boot loader
   ============================================================ */
#page-loader {
  --boot-aqua: #00ffdd;
  --boot-blue: #636bff;
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.8rem, 4.5vh, 3rem);
  overflow: hidden;
  background:
    radial-gradient(140% 120% at 50% 50%, #060a1e 0%, #03040d 55%, #010206 100%);
  color: #cfe9ff;
  transition: opacity 0.8s ease, visibility 0.8s ease, filter 0.8s ease;
}

#page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  filter: blur(6px);
  -webkit-filter: blur(6px);
}

/* Hyperspace starfield (rendered on canvas) */
.boot__warp {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 1;
}

/* Aurora edge glow layers — blurred with CSS filters so they render
   in Safari, which ignores ctx.filter on 2d canvas contexts.
   Each layer sets its own blur strength via an inline style. */
.boot__warp-edge {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 1;
  pointer-events: none;
  mix-blend-mode: screen;
  transform: translateZ(0);
  will-change: opacity;
}

/* Soft centre vignette — leaves the outer rim clear for warp edge glow */
.boot__vignette {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: radial-gradient(
    circle at 50% 50%,
    transparent 36%,
    rgba(2, 3, 12, 0.42) 68%,
    transparent 100%
  );
}

/* Central stage with the Geogram mark */
.boot__stage {
  position: relative;
  z-index: 3;
  width: clamp(180px, 30vmin, 300px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
}

/* Edge glow is rendered on the warp canvas (sectional, speed-synced) */
.boot__glow {
  display: none;
}

.boot__ring {
  transform-box: fill-box;
  transform-origin: center;
}

.boot__mark {
  position: relative;
  z-index: 3;
  width: 92%;
  height: auto;
  overflow: visible;
  animation: boot-warp-in 1.3s cubic-bezier(0.16, 1, 0.3, 1) both,
    boot-float 6s ease-in-out 1.3s infinite;
}

.boot__mark {
  position: relative;
  width: 92%;
  height: auto;
  overflow: visible;
}

@keyframes boot-warp-in {
  0% {
    opacity: 0;
    transform: scale(0.12);
    filter: blur(24px);
    -webkit-filter: blur(24px);
  }
  60% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
    -webkit-filter: blur(0);
  }
}

@keyframes boot-float {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-2.4%) scale(1.025);
  }
}

/* Brand tagline */
.boot__tagline {
  position: relative;
  z-index: 3;
  margin: 0;
  font-size: clamp(0.82rem, 1.7vw, 1.05rem);
  letter-spacing: 0.36em;
  text-transform: uppercase;
  font-weight: 500;
  color: rgba(214, 234, 255, 0.82);
  text-indent: 0.36em;
  opacity: 0;
  animation: boot-tagline-in 1s ease 0.7s forwards;
}

.boot__tagline strong {
  font-weight: 700;
  background: linear-gradient(90deg, #00eafd, #00e3ae 45%, #636bff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@keyframes boot-tagline-in {
  from {
    opacity: 0;
    transform: translateY(8px);
    letter-spacing: 0.5em;
  }
  to {
    opacity: 1;
    transform: translateY(0);
    letter-spacing: 0.36em;
  }
}

/* Subtle progress beam */
.boot__bar {
  position: relative;
  z-index: 3;
  height: 1px;
  width: min(240px, 56vw);
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.boot__bar-fill {
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #636bff, #00eafd, #00e3ae);
  box-shadow: 0 0 10px rgba(0, 234, 253, 0.8);
  transition: width 0.2s linear;
}

/* Lightspeed jump on exit */
#page-loader.is-complete .boot__mark {
  animation: boot-warp-out 0.6s cubic-bezier(0.7, 0, 0.84, 0) forwards;
}

@keyframes boot-warp-out {
  to {
    transform: scale(1.45);
    opacity: 0;
    filter: blur(12px);
    -webkit-filter: blur(12px);
  }
}

@media (prefers-reduced-motion: reduce) {
  #page-loader .boot__warp,
  #page-loader .boot__glow,
  #page-loader .boot__mark,
  #page-loader .boot__tagline {
    animation: none !important;
  }
  #page-loader .boot__mark {
    opacity: 1;
    transform: none;
    filter: none;
    -webkit-filter: none;
  }
  #page-loader .boot__tagline {
    opacity: 1;
  }
}

/* Responsive */
@media (max-width: 991px) {
  .theme-reveal::before {
    width: min(36rem, calc(100vw - 2rem));
    height: 36rem;
  }

  .theme-reveal__trigger {
    opacity: 0.5;
    width: 2.4rem;
    height: 2.4rem;
  }

  .theme-reveal__panel {
    left: 50%;
    top: calc(100% + 1.2rem);
    width: min(34rem, calc(100vw - var(--geogram-gutter) * 2));
    min-width: 0;
    transform: translateX(-50%) scale(0.4) translateY(-1.2rem);
    transform-origin: top center;
  }

  .site-brand:hover .theme-reveal__panel,
  .site-brand:focus-within .theme-reveal__panel,
  .theme-reveal.is-open .theme-reveal__panel {
    animation-name: theme-reveal-bam-mobile;
  }

  @keyframes theme-reveal-bam-mobile {
    0% {
      opacity: 0;
      transform: translateX(-50%) scale(0.4) translateY(-1.2rem);
      filter: blur(10px);
      -webkit-filter: blur(10px);
    }
    55% {
      opacity: 1;
      transform: translateX(-50%) scale(1.04) translateY(0.15rem);
      filter: blur(0);
      -webkit-filter: blur(0);
    }
    100% {
      opacity: 1;
      transform: translateX(-50%) scale(1) translateY(0);
      filter: blur(0);
      -webkit-filter: blur(0);
    }
  }

  .theme-reveal__burst {
    left: 50%;
    top: 0.4rem;
    margin-left: -5rem;
  }

  .theme-reveal__choices {
    gap: 0.8rem;
  }

  .nav-toggle {
    display: flex;
  }

  .site-nav {
    position: fixed;
    top: var(--geogram-nav-height);
    right: 0;
    bottom: 0;
    width: min(32rem, 85vw);
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem;
    padding: 3rem var(--geogram-gutter);
    background: var(--geogram-nav-mobile-bg);
    transform: translateX(100%);
    transition: transform var(--geogram-transition);
  }

  .site-nav.is-open {
    transform: translateX(0);
  }

  .contact__layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  :root {
    --geogram-nav-height: 7rem;
  }

  .site-logo__mark {
    width: 3.65rem;
    height: 3.65rem;
  }

  .site-logo__wordmark {
    font-size: 2.2rem;
  }

  .hero__actions {
    flex-direction: column;
    align-items: stretch;
  }

  .btn {
    width: 100%;
  }

  .work-grid {
    grid-template-columns: 1fr;
  }

  .work-toolbar__select-wrap {
    max-width: none;
  }

  .theme-reveal__panel {
    width: calc(100vw - var(--geogram-gutter) * 2);
    min-width: 0;
    padding: 1.6rem;
  }

  .theme-reveal__choices {
    grid-template-columns: 1fr;
  }
}

/* Scroll reveal */
.reveal {
  opacity: 0;
  transform: translate3d(0, var(--geogram-reveal-distance), 0);
  transition:
    opacity var(--geogram-transition-slow),
    transform var(--geogram-transition-slow);
  transition-delay: var(--reveal-delay, 0ms);
}

.reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.reveal-stagger > * {
  opacity: 0;
  transform: translate3d(0, var(--geogram-reveal-distance), 0);
  transition:
    opacity var(--geogram-transition-slow),
    transform var(--geogram-transition-slow);
  transition-delay: calc(var(--reveal-index, 0) * 90ms);
}

.reveal-stagger.is-visible > * {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.hero .reveal {
  transition-delay: calc(var(--reveal-index, 0) * 100ms);
}

@media (prefers-reduced-motion: reduce) {
  .theme-reveal__trigger {
    animation: none;
    transition: none;
  }

  .theme-reveal__panel {
    filter: none;
    transition: opacity 0.15s ease, visibility 0.15s ease;
  }

  .site-brand:hover .theme-reveal__panel,
  .site-brand:focus-within .theme-reveal__panel,
  .theme-reveal.is-open .theme-reveal__panel {
    animation: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: scale(1) translateY(0);
    filter: none;
  }

  .theme-reveal__burst,
  .theme-reveal__label,
  .theme-reveal__tagline,
  .theme-reveal__choice {
    animation: none !important;
    opacity: 1;
    transform: none;
  }

  @media (max-width: 991px) {
    .site-brand:hover .theme-reveal__panel,
    .site-brand:focus-within .theme-reveal__panel,
    .theme-reveal.is-open .theme-reveal__panel {
      transform: translateX(-50%) scale(1) translateY(0);
    }
  }

  body,
  .site-footer,
  .site-logo__mark,
  .service-card,
  .focus__block,
  .about__panel,
  .about__cap,
  .work-card,
  .highlight-item,
  .form-group input,
  .form-group select,
  .form-group textarea {
    transition: none;
  }

  .reveal,
  .reveal-stagger > *,
  .hero__orb,
  .about-band__content,
  .about-band__shine,
  .about-hero__scroll-line {
    opacity: 1;
    transform: none;
    animation: none;
    transition: none;
  }

  .about-execute__rotator,
  .about-execute__orbit li span {
    animation: none;
  }

  .home-awards__plaque {
    animation: none;
    transform: rotateY(-33deg) rotateX(16deg) rotateZ(1deg);
  }

  .about-execute__spoke {
    stroke-dashoffset: 0;
    opacity: 0.45;
    animation: none;
  }

  .reveal.is-visible,
  .reveal-stagger.is-visible > * {
    opacity: 1;
    transform: none;
  }

  .plateau-chart__bar-fill,
  .plateau-chart__path,
  .plateau-chart__area,
  .plateau-chart__gain,
  .about-flow__line-fill,
  .about-flow__node {
    transition: none;
  }

  .plateau-viz.is-lit .plateau-chart__bar-fill {
    transform: scaleY(1);
  }

  .plateau-viz.is-lit .plateau-chart__path {
    stroke-dashoffset: 0;
  }

  .plateau-viz.is-lit .plateau-chart__area {
    opacity: 1;
  }

  .plateau-viz.is-lit .plateau-chart__gain {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }

  .about-flow__pipeline.is-active .about-flow__line-fill {
    width: 100%;
  }

  .about-flow__pipeline.is-active .about-flow__node {
    opacity: 1;
    transform: none;
  }

  .service-card:hover,
  .focus__block:hover,
  .highlight-item:hover,
  .about-stats__item:hover,
  .work-card:not(.is-hidden):hover,
  .work-card:not(.is-hidden):focus-within,
  .btn:hover {
    transform: none;
  }

  .work-card::before,
  .work-card::after,
  .work-card__link::before,
  .work-card__visual::after {
    animation: none !important;
    transition: none;
  }

  .work-card:not(.is-hidden):hover::before,
  .work-card:not(.is-hidden):focus-within::before {
    opacity: 0.9;
    transform: rotate(0deg) scale(1);
    filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.15);
    -webkit-filter: blur(calc(18px + var(--work-glow-ring-blur-extra))) saturate(1.15);
  }

  .work-card:not(.is-hidden):hover .work-card__link::before,
  .work-card:not(.is-hidden):focus-within .work-card__link::before {
    opacity: 0.65;
    transform: scale(1.04);
    filter: blur(24px);
    -webkit-filter: blur(24px);
  }

  .work-card:not(.is-hidden):hover::after,
  .work-card:not(.is-hidden):focus-within::after {
    opacity: 1;
    box-shadow:
      0 0 0 1px var(--geogram-border-aqua),
      0 0 40px var(--geogram-work-glow-outer),
      0 0 76px var(--geogram-work-glow-mid),
      0 0 100px var(--geogram-work-glow-deep);
  }

  .work-card:not(.is-hidden):hover .work-card__visual::after,
  .work-card:not(.is-hidden):focus-within .work-card__visual::after {
    opacity: 0.55;
    transform: none;
  }
}

/* ==========================================================================
   Style guide (/styles) — variant demos; production uses .btn--primary-v2
   ========================================================================== */

/* Legacy v1 gradient pill — reference on /styles only */
.page-styles .btn--primary {
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: hidden;
  border-color: transparent;
  background: transparent;
  color: var(--geogram-on-cta);
}

.page-styles .btn--primary::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--geogram-gradient-cta);
  clip-path: inset(0 round 999px);
  pointer-events: none;
}

.page-styles .btn--primary:hover {
  color: var(--geogram-on-cta);
  box-shadow: var(--geogram-shadow-glow-aqua);
}

.page-styles .site-main {
  padding-top: var(--geogram-nav-height);
}

.styles-main {
  background: var(--geogram-bg);
}

.styles-layout {
  display: grid;
  grid-template-columns: minmax(0, 22rem) minmax(0, 1fr);
  gap: clamp(3rem, 5vw, 6rem);
  max-width: calc(var(--geogram-max-width) + 8rem);
  margin: 0 auto;
  padding: clamp(4rem, 8vw, 8rem) var(--geogram-gutter);
}

.styles-nav {
  position: sticky;
  top: calc(var(--geogram-nav-height) + 2rem);
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 2rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
}

.styles-nav__title {
  margin: 0 0 1rem;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--geogram-text-muted);
}

.styles-nav a {
  font-size: 1.4rem;
  font-weight: 500;
  color: var(--geogram-text-muted);
}

.styles-nav a:hover {
  color: var(--geogram-aqua);
}

.styles-hero {
  margin-bottom: clamp(4rem, 8vw, 6rem);
  max-width: 72rem;
}

.styles-hero__title {
  margin: 0 0 1.6rem;
  font-size: clamp(3.6rem, 6vw, 5.6rem);
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.styles-hero__lead {
  margin: 0;
  font-size: 1.8rem;
  color: var(--geogram-text-muted);
  line-height: 1.6;
}

.styles-section {
  margin-bottom: clamp(5rem, 10vw, 8rem);
  padding-bottom: clamp(4rem, 8vw, 6rem);
  border-bottom: 1px solid var(--geogram-border-muted);
}

.styles-section__title {
  margin: 0 0 1.2rem;
  font-size: clamp(2.4rem, 4vw, 3.4rem);
  font-weight: 600;
}

.styles-section__lead {
  margin: 0 0 3rem;
  max-width: 68rem;
  font-size: 1.7rem;
  color: var(--geogram-text-muted);
  line-height: 1.6;
}

.styles-subtitle {
  margin: 3rem 0 1.6rem;
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--geogram-text);
}

.styles-token-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 1.6rem;
}

.styles-token {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
  padding: 1.2rem;
  border-radius: var(--geogram-radius);
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
}

.styles-token__swatch {
  height: 4.8rem;
  border-radius: 0.5rem;
  border: 1px solid var(--geogram-border-muted);
}

.styles-token code {
  font-size: 1.2rem;
  color: var(--geogram-text-muted);
}

.styles-gradient-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
  gap: 1.6rem;
}

.styles-gradient-chip {
  position: relative;
  min-height: 6rem;
  border-radius: var(--geogram-radius);
  overflow: hidden;
  border: 1px solid var(--geogram-border-subtle);
}

.styles-gradient-chip span {
  position: absolute;
  left: 1.2rem;
  bottom: 1.2rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: #fff;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
}

.styles-gradient-chip--hero span {
  color: var(--geogram-text);
  text-shadow: none;
}

.styles-type-stack {
  display: flex;
  flex-direction: column;
  gap: 1.6rem;
  max-width: 72rem;
}

.styles-type-display {
  margin: 0;
  font-size: clamp(2.8rem, 4vw, 4rem);
  font-weight: 600;
}

.styles-type-body {
  margin: 0;
  color: var(--geogram-text-muted);
}

.styles-type-meta {
  margin: 0;
  font-size: 1.3rem;
  color: var(--geogram-text-muted);
}

.styles-type-meta code {
  font-size: 1.2rem;
}

/* Button variant demos */
.styles-variant {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2.4rem;
  align-items: center;
  margin-bottom: 2.8rem;
  padding: 2.4rem;
  border-radius: calc(var(--geogram-radius) + 0.4rem);
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
}

.styles-variant__name {
  margin: 0 0 0.6rem;
  font-size: 1.7rem;
  font-weight: 600;
}

.styles-variant__class {
  margin: 0 0 0.8rem;
}

.styles-variant__class code {
  font-size: 1.3rem;
  color: var(--geogram-aqua);
}

.styles-variant__note,
.styles-variant__wcag {
  margin: 0 0 0.6rem;
  font-size: 1.4rem;
  color: var(--geogram-text-muted);
  line-height: 1.5;
}

.styles-variant__wcag {
  font-size: 1.3rem;
  font-style: italic;
}

.styles-variant__demo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 22rem;
  padding: 2rem 2.4rem;
  border-radius: var(--geogram-radius);
}

.styles-variant__demo--dark {
  background: #000;
}

.styles-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1.6rem;
  align-items: center;
}

.styles-form {
  max-width: 48rem;
}

.styles-card-demos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(26rem, 1fr));
  gap: 2.4rem;
  align-items: start;
}

.styles-work-card-sample {
  max-width: 32rem;
}

.styles-list {
  margin: 0;
  padding-left: 2rem;
  font-size: 1.6rem;
  color: var(--geogram-text-muted);
  line-height: 1.8;
}

.styles-theme-compare {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
}

.styles-theme-chip {
  display: grid;
  grid-template-columns: repeat(3, 4rem);
  grid-template-rows: auto 4rem;
  gap: 0.8rem;
  padding: 1.6rem;
  border-radius: var(--geogram-radius);
  background: var(--geogram-surface);
  border: 1px solid var(--geogram-border-subtle);
}

.styles-theme-chip__label {
  grid-column: 1 / -1;
  font-size: 1.4rem;
  font-weight: 600;
}

.styles-theme-chip__bg,
.styles-theme-chip__text,
.styles-theme-chip__accent {
  border-radius: 0.4rem;
  border: 1px solid var(--geogram-border-muted);
}

.page-styles .styles-variant__demo:has(.btn--primary-v2) {
  overflow: visible;
}

.page-styles .styles-variant__demo--dark .btn--primary-v4 {
  background: rgba(19, 12, 50, 0.78);
  color: #fff;
}

/* Primary v3 — aurora blur (diagonal gradient glow behind pill) */
.page-styles .btn--primary-v3 {
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: visible;
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: transparent;
  color: #fff;
  text-shadow: none;
}

.page-styles .btn--primary-v3::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: -2;
  width: 140%;
  height: 220%;
  border-radius: 999px;
  background: linear-gradient(
    128deg,
    #8900fa 0%,
    #3640ff 28%,
    #33ebec 55%,
    #25f3a9 78%,
    #8900fa 100%
  );
  transform: translate(-50%, -50%) rotate(-38deg);
  filter: blur(42px);
  -webkit-filter: blur(42px);
  opacity: 0.95;
  animation: styles-cta-aurora 16s ease-in-out infinite;
  pointer-events: none;
}

.page-styles .btn--primary-v3::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: #15132a;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}

.page-styles .btn--primary-v3:hover {
  color: #fff;
  border-color: rgba(125, 232, 255, 0.45);
}

.page-styles .styles-variant__demo:has(.btn--primary-v3) {
  overflow: visible;
}

/* Primary v4 — Geogram glass (surface + aqua border, brand orbs) */
.page-styles .btn--primary-v4 {
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid var(--geogram-border-aqua);
  background: rgba(19, 12, 50, 0.72);
  color: #fff;
  text-shadow: none;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: var(--geogram-shadow-sm);
}

.page-styles .btn--primary-v4::before {
  content: "";
  position: absolute;
  inset: -50% -30%;
  z-index: -2;
  border-radius: 50%;
  background: var(--geogram-orb-1);
  opacity: 0.55;
  animation: styles-cta-orb-drift 14s ease-in-out infinite;
  pointer-events: none;
}

.page-styles .btn--primary-v4::after {
  content: "";
  position: absolute;
  right: -25%;
  bottom: -60%;
  width: 80%;
  height: 120%;
  z-index: -2;
  border-radius: 50%;
  background: var(--geogram-orb-2);
  opacity: 0.5;
  animation: styles-cta-orb-drift 18s ease-in-out infinite reverse;
  pointer-events: none;
}

.page-styles .btn--primary-v4:hover {
  color: #fff;
  border-color: var(--geogram-aqua);
  background: rgba(19, 12, 50, 0.88);
  box-shadow: var(--geogram-shadow-glow-aqua);
  transform: translateY(-2px);
}

/* Primary v5 — Geogram superpower pulse (filled CTA + breathing glow) */
.page-styles .btn--primary-v5 {
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: hidden;
  border-color: transparent;
  background: transparent;
  color: #fff;
  text-shadow: 0 1px 2px rgba(11, 7, 29, 0.4);
  animation: styles-cta-geogram-pulse 3.6s ease-in-out infinite;
}

.page-styles .btn--primary-v5::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: var(--geogram-gradient-cta);
  background-size: 104% 100%;
  background-position: 2% 50%;
  clip-path: inset(0 round 999px);
}

.page-styles .btn--primary-v5:hover {
  color: #fff;
  transform: translateY(-2px);
  animation: none;
  box-shadow: var(--geogram-shadow-glow-aqua), var(--geogram-shadow-glow-purple);
}

@keyframes styles-cta-aurora {
  0%,
  100% {
    transform: translate(-50%, -50%) rotate(-34deg) scale(1.05);
    opacity: 0.88;
  }

  33% {
    transform: translate(-48%, -52%) rotate(-42deg) scale(1.12);
    opacity: 1;
  }

  66% {
    transform: translate(-52%, -48%) rotate(-50deg) scale(1.08);
    opacity: 0.92;
  }
}

@keyframes styles-cta-orb-drift {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }

  50% {
    transform: translate(8%, -6%) scale(1.08);
  }
}

@keyframes styles-cta-geogram-pulse {
  0%,
  100% {
    box-shadow:
      0 0 18px rgba(0, 255, 221, 0.28),
      0 0 36px rgba(99, 107, 255, 0.18);
  }

  50% {
    box-shadow:
      0 0 32px rgba(0, 255, 221, 0.48),
      0 0 56px rgba(137, 0, 250, 0.32);
  }
}

@media (prefers-reduced-motion: reduce) {
  .btn--primary-v2.btn--primary-v2--active {
    --v2-shine-opacity: 1;
  }

  .btn--primary-v2.btn--primary-v2--active::before {
    animation: none;
    transform: translate(-50%, -50%) rotate(-22deg);
  }

  .page-styles .btn--primary-v3::before {
    animation: none;
    transform: translate(-50%, -50%) rotate(-38deg) scale(1.05);
  }

  .page-styles .btn--primary-v4::before,
  .page-styles .btn--primary-v4::after,
  .page-styles .btn--primary-v5 {
    animation: none;
  }
}

@media (max-width: 900px) {
  .styles-layout {
    grid-template-columns: 1fr;
  }

  .styles-nav {
    position: static;
    flex-flow: row wrap;
  }

  .styles-variant {
    grid-template-columns: 1fr;
  }

  .styles-variant__demo {
    min-width: 0;
    width: 100%;
  }
}
