:root {
  --vp-font-sans: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  --vp-font-serif: "Merriweather", "Playfair Display", Georgia, serif;
  --vp-font-display: "Space Grotesk", "Plus Jakarta Sans", var(--vp-font-sans);

  --vp-color-white: #ffffff;
  --vp-color-black: #000000;
  --vp-color-white-rgb: 255 255 255;
  --vp-color-black-rgb: 0 0 0;
  --vp-color-slate-50: #f8fafc;
  --vp-color-slate-100: #f1f5f9;
  --vp-color-slate-200: #e2e8f0;
  --vp-color-slate-300: #cbd5e1;
  --vp-color-slate-400: #94a3b8;
  --vp-color-slate-500: #64748b;
  --vp-color-slate-600: #475569;
  --vp-color-slate-700: #334155;
  --vp-color-slate-800: #1e293b;
  --vp-color-slate-900: #0f172a;
  --vp-color-slate-950: #020617;
  --vp-color-slate-400-rgb: 148 163 184;
  --vp-color-slate-500-rgb: 100 116 139;
  --vp-color-slate-800-rgb: 30 41 59;
  --vp-color-slate-850-rgb: 23 32 51;
  --vp-color-slate-900-rgb: 15 23 42;
  --vp-color-slate-950-rgb: 2 6 23;
  --vp-color-gray-50: #f9fafb;
  --vp-color-gray-100: #f3f4f6;
  --vp-color-gray-200: #e5e7eb;
  --vp-color-gray-500: #6b7280;
  --vp-color-blue-50: #eff6ff;
  --vp-color-blue-100: #dbeafe;
  --vp-color-blue-600: #2563eb;
  --vp-color-blue-700: #1d4ed8;
  --vp-color-indigo-300: #a5b4fc;
  --vp-color-indigo-500: #6366f1;
  --vp-color-sky-400: #38bdf8;
  --vp-color-sky-100: #e0f2fe;
  --vp-color-sky-900: #0c4a6e;
  --vp-color-teal-500: #14b8a6;
  --vp-color-neutral-950: #0a0a0a;
  --vp-color-gold: #d4af37;

  /* Template palette variables (03/04) */
  --vp-color-luxury-base-rgb: 3 8 15;
  --vp-color-luxury-surface-rgb: 8 18 33;
  --vp-color-luxury-gold-rgb: 212 175 55;
  --vp-color-luxury-golddim-rgb: 138 113 34;
  --vp-color-luxury-text-rgb: 245 245 240;
  --vp-color-luxury-muted-rgb: 156 163 175;

  --vp-color-advisor-navy-rgb: 11 22 40;
  --vp-color-advisor-offwhite-rgb: 248 246 242;
  --vp-color-advisor-ivory-rgb: 255 255 255;
  --vp-color-advisor-border-rgb: 232 227 217;
  --vp-color-advisor-charcoal-rgb: 45 55 72;
  --vp-color-advisor-gold-rgb: 184 151 42;

  --vp-color-brand-base-rgb: 253 251 247;
  --vp-color-brand-dark-rgb: 28 25 23;
  --vp-color-brand-moss-rgb: 44 62 53;
  --vp-color-brand-sage-rgb: 227 232 229;
  --vp-color-brand-gold-rgb: 212 175 55;
  --vp-color-thought-surface-rgb: 255 252 245;
  --vp-color-thought-surface-alt-rgb: 247 243 236;
  --vp-color-thought-copy-rgb: 61 59 56;
  --vp-color-thought-ink-rgb: 31 29 27;
  --vp-color-thought-accent-rgb: 106 124 92;
  --vp-color-thought-soft-gold-rgb: 181 160 95;

  /* Template palette variables (05) */
  --vp-color-strategy-brand-50-rgb: 239 246 255;
  --vp-color-strategy-brand-100-rgb: 219 234 254;
  --vp-color-strategy-brand-200-rgb: 191 219 254;
  --vp-color-strategy-brand-300-rgb: 147 197 253;
  --vp-color-strategy-brand-400-rgb: 96 165 250;
  --vp-color-strategy-brand-500-rgb: 59 130 246;
  --vp-color-strategy-brand-600-rgb: 37 99 235;
  --vp-color-strategy-brand-700-rgb: 29 78 216;
  --vp-color-strategy-brand-800-rgb: 30 64 175;
  --vp-color-strategy-brand-900-rgb: 30 58 138;
  --vp-color-strategy-brand-950-rgb: 23 37 84;

  /* Template palette variables (08) */
  --vp-color-essential-brand-sky-rgb: 14 165 233;
  --vp-color-essential-brand-mint-rgb: 15 118 110;
  --vp-color-essential-brand-dark-rgb: 2 6 23;
  --vp-color-essential-brand-surface-rgb: 248 250 252;

  /* Template palette variables (06) */
  --vp-color-cfo-navy-rgb: 10 17 40;
  --vp-color-cfo-navy-light-rgb: 21 30 63;
  --vp-color-cfo-lime-rgb: 156 197 68;
  --vp-color-cfo-cream-rgb: 245 241 232;

  /* Template palette variables (09) */
  --vp-color-cmo-obsidian-rgb: 5 5 5;
  --vp-color-cmo-charcoal-rgb: 15 15 15;
  --vp-color-cmo-chalk-rgb: 237 237 237;
  --vp-color-cmo-subtle-rgb: 136 136 136;
  --vp-color-cmo-accent-rgb: 59 130 246;
  --vp-color-cmo-accent-alt-rgb: 236 72 153;

  /* Template palette variables (01/02) */
  --vp-color-essential-free-accent-rgb: 0 71 171;
  --vp-color-independent-primary-rgb: 37 99 235;

  /* Template palette variables (07) */
  --vp-color-coach-sage-50-rgb: 244 247 245;
  --vp-color-coach-sage-100-rgb: 230 237 232;
  --vp-color-coach-sage-200-rgb: 205 219 209;
  --vp-color-coach-sage-300-rgb: 168 194 175;
  --vp-color-coach-sage-400-rgb: 124 154 130;
  --vp-color-coach-sage-500-rgb: 93 125 100;
  --vp-color-coach-sage-600-rgb: 73 100 80;
  --vp-color-coach-sage-700-rgb: 61 81 65;
  --vp-color-coach-terracotta-50-rgb: 253 248 244;
  --vp-color-coach-terracotta-100-rgb: 250 238 228;
  --vp-color-coach-terracotta-200-rgb: 244 219 200;
  --vp-color-coach-terracotta-300-rgb: 236 196 165;
  --vp-color-coach-terracotta-400-rgb: 212 165 116;
  --vp-color-coach-terracotta-500-rgb: 196 138 82;
  --vp-color-coach-terracotta-600-rgb: 182 117 67;
  --vp-color-coach-moss-100-rgb: 227 235 229;
  --vp-color-coach-moss-200-rgb: 200 215 204;
  --vp-color-coach-moss-400-rgb: 119 153 129;
  --vp-color-coach-moss-500-rgb: 87 122 98;
  --vp-color-coach-moss-600-rgb: 68 97 77;
  --vp-color-coach-moss-700-rgb: 61 90 71;
  --vp-color-coach-cream-50-rgb: 254 253 251;
  --vp-color-coach-cream-100-rgb: 250 248 245;
  --vp-color-coach-cream-200-rgb: 245 241 235;
  --vp-color-coach-charcoal-100-rgb: 231 231 231;
  --vp-color-coach-charcoal-200-rgb: 209 209 209;
  --vp-color-coach-charcoal-300-rgb: 176 176 176;
  --vp-color-coach-charcoal-400-rgb: 136 136 136;
  --vp-color-coach-charcoal-500-rgb: 109 109 109;
  --vp-color-coach-charcoal-600-rgb: 93 93 93;
  --vp-color-coach-charcoal-700-rgb: 79 79 79;
  --vp-color-coach-charcoal-800-rgb: 69 69 69;
  --vp-color-coach-charcoal-900-rgb: 45 52 54;
  --vp-color-coach-input-border-rgb: 217 225 219;
  --vp-color-coach-ink-rgb: 31 41 55;
  --vp-color-coach-sage-label-rgb: 74 95 82;
  --vp-color-coach-sage-hover-rgb: 103 128 109;

  /* Template palette variables (10) */
  --vp-color-gtm-void-rgb: 3 3 3;
  --vp-color-gtm-panel-rgb: 10 10 10;
  --vp-color-gtm-line-rgb: 31 31 31;
  --vp-color-gtm-highlight-rgb: 51 51 51;
  --vp-color-gtm-text-main-rgb: 237 237 237;
  --vp-color-gtm-text-muted-rgb: 179 179 179;
  --vp-color-gtm-text-dark-rgb: 138 138 138;
  --vp-color-gtm-accent-rgb: 59 130 246;
  --vp-color-gtm-glow-rgb: 99 102 241;
  --vp-color-gtm-premium-mid-rgb: 224 231 255;
  --vp-color-gtm-premium-sky-rgb: 147 197 253;

  /* Template palette variables (11) */
  --vp-color-interim-blackops-rgb: 15 23 42;
  --vp-color-interim-redops-rgb: 20 184 166;
  --vp-color-interim-creamops-rgb: 248 250 252;
  --vp-color-interim-steel-rgb: 17 24 39;
  --vp-color-interim-graphite-rgb: 39 46 56;
  --vp-color-interim-surface-1-rgb: 19 28 46;
  --vp-color-interim-surface-2-rgb: 18 29 50;
  --vp-color-interim-surface-3-rgb: 26 35 54;
  --vp-color-interim-input-border-rgb: 43 49 61;
  --vp-color-interim-cream-soft-rgb: 245 243 236;
  --vp-color-interim-alert-rgb: 220 38 38;

  /* Template palette variables (12) */
  --vp-color-strategy-navy-rgb: 11 17 32;
  --vp-color-strategy-slate-rgb: 51 65 85;
  --vp-color-strategy-accent-rgb: 36 80 176;
  --vp-color-strategy-paper-rgb: 248 250 252;
  --vp-color-strategy-surface-rgb: 255 255 255;

  /* Template palette variables (13) */
  --vp-color-board-black-rgb: 5 5 5;
  --vp-color-board-dark-rgb: 15 15 15;
  --vp-color-board-charcoal-rgb: 26 26 26;
  --vp-color-board-gold-rgb: 198 168 89;
  --vp-color-board-gold-dim-rgb: 138 114 36;
  --vp-color-board-silver-rgb: 234 234 234;
  --vp-color-board-gray-rgb: 168 168 168;
  --vp-color-board-cream-rgb: 254 243 199;
  --vp-color-board-silver-soft-rgb: 192 192 192;
  --vp-color-board-surface-rgb: 20 20 20;
  --vp-color-board-border-rgb: 42 42 42;
}

.vp-template {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: hidden;
  font-size: 16px;
  line-height: 1.5;
}

.vp-template img,
.vp-template video,
.vp-template canvas,
.vp-template svg {
  max-width: 100%;
}

/* Typography fallbacks only for elements without explicit text size classes */
.vp-template h1:not([class*="text-"]) {
  font-size: clamp(2rem, 6.5vw, 5rem);
  line-height: 1.1;
}

.vp-template h2:not([class*="text-"]) {
  font-size: clamp(1.5rem, 4.2vw, 3rem);
  line-height: 1.15;
}

.vp-template h3:not([class*="text-"]) {
  font-size: clamp(1.125rem, 2.4vw, 1.75rem);
  line-height: 1.25;
}

/* Shared keyframes and utility animations */
@keyframes vp-reveal-up {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-reveal {
  animation: vp-reveal-up 1s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  opacity: 0;
}

@keyframes vp-slide-in-right {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes vp-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20px);
  }
}

.animate-float {
  animation: vp-float 6s ease-in-out infinite;
}

.animate-float-reverse {
  animation: vp-float 8s ease-in-out infinite reverse;
  animation-delay: -3s;
}

@keyframes vp-pulse-ring {
  0% {
    box-shadow: 0 0 0 0 rgb(var(--vp-color-essential-brand-mint-rgb) / 0.6);
  }
  100% {
    box-shadow: 0 0 0 14px rgb(var(--vp-color-essential-brand-mint-rgb) / 0);
  }
}

@keyframes vp-pulse-glow {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.8; }
}

@keyframes vp-gradient-x {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes vp-sweep {
  0% {
    opacity: 0;
    transform: translateY(-10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes vp-spin-slow {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes vp-blob {
  0% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(30px, -50px) scale(1.1); }
  66% { transform: translate(-20px, 20px) scale(0.9); }
  100% { transform: translate(0, 0) scale(1); }
}

@keyframes vp-fade-in {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-marquee {
  animation: vp-marquee var(--vp-marquee-duration, 36s) linear infinite;
}

.animate-spin-slow {
  animation: vp-spin-slow 24s linear infinite;
}

.animate-blob {
  animation: vp-blob 10s infinite;
}

.animate-fade-in {
  animation: vp-fade-in 0.4s ease-out forwards;
}

.animate-pulse-slow {
  animation: vp-pulse-glow 8s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

/* Shared reveal primitives (fallback; template-level styles can override) */
.vp-template :where(.reveal, .reveal-up, .scroll-animate) {
  opacity: 0;
  transform: translate3d(0, 24px, 0);
  transition: opacity 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}

.vp-template :where(.scroll-animate-left, .scroll-animate-right) {
  opacity: 0;
  transition: opacity 0.8s cubic-bezier(0.2, 0.8, 0.2, 1), transform 0.8s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}

.vp-template :where(.scroll-animate-left) {
  transform: translate3d(-30px, 0, 0);
}

.vp-template :where(.scroll-animate-right) {
  transform: translate3d(30px, 0, 0);
}

.vp-template :where(
  .reveal.active,
  .reveal.visible,
  .reveal.is-visible,
  .reveal-up.active,
  .reveal-up.visible,
  .reveal-up.is-visible,
  .scroll-animate.active,
  .scroll-animate.visible,
  .scroll-animate.is-visible,
  .scroll-animate-left.active,
  .scroll-animate-left.visible,
  .scroll-animate-left.is-visible,
  .scroll-animate-right.active,
  .scroll-animate-right.visible,
  .scroll-animate-right.is-visible,
  .reveal-visible
) {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* CSS-only reveal mode (used by template 13) */
@keyframes vp-reveal-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}

.vp-template.vp-reveal-css :where(.reveal) {
  opacity: 0;
  transform: none;
  transition: none;
  animation: vp-reveal-fade 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}

.vp-template.vp-reveal-css :where(.reveal.delay-0) { animation-delay: 0ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-50) { animation-delay: 50ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-100) { animation-delay: 100ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-150) { animation-delay: 150ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-200) { animation-delay: 200ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-250) { animation-delay: 250ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-300) { animation-delay: 300ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-350) { animation-delay: 350ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-400) { animation-delay: 400ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-450) { animation-delay: 450ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-500) { animation-delay: 500ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-600) { animation-delay: 600ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-700) { animation-delay: 700ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-800) { animation-delay: 800ms; }
.vp-template.vp-reveal-css :where(.reveal.delay-900) { animation-delay: 900ms; }

@media (prefers-reduced-motion: reduce) {
  .vp-template :where(.reveal, .reveal-up, .scroll-animate, .scroll-animate-left, .scroll-animate-right) {
    opacity: 1;
    transform: none;
    transition: none;
    animation: none;
  }
}

.vp-gold-dot-grid {
  background-image: radial-gradient(var(--vp-color-gold) 1px, transparent 1px);
  background-size: 32px 32px;
}

.vp-bg-white { background-color: var(--vp-color-white) !important; }
.vp-bg-black { background-color: var(--vp-color-black) !important; }
.vp-bg-slate-50 { background-color: var(--vp-color-slate-50) !important; }
.vp-bg-slate-100 { background-color: var(--vp-color-slate-100) !important; }
.vp-bg-slate-200 { background-color: var(--vp-color-slate-200) !important; }
.vp-bg-slate-300 { background-color: var(--vp-color-slate-300) !important; }
.vp-bg-slate-500 { background-color: var(--vp-color-slate-500) !important; }
.vp-bg-slate-700 { background-color: var(--vp-color-slate-700) !important; }
.vp-bg-slate-800 { background-color: var(--vp-color-slate-800) !important; }
.vp-bg-slate-900 { background-color: var(--vp-color-slate-900) !important; }
.vp-bg-slate-950 { background-color: var(--vp-color-slate-950) !important; }
.vp-bg-gray-50 { background-color: var(--vp-color-gray-50) !important; }
.vp-bg-gray-100 { background-color: var(--vp-color-gray-100) !important; }
.vp-bg-blue-100 { background-color: var(--vp-color-blue-100) !important; }
.vp-bg-blue-600 { background-color: var(--vp-color-blue-600) !important; }
.vp-bg-indigo-500 { background-color: var(--vp-color-indigo-500) !important; }
.vp-bg-sky-400 { background-color: var(--vp-color-sky-400) !important; }
.vp-bg-sky-900 { background-color: var(--vp-color-sky-900) !important; }
.vp-bg-teal-500 { background-color: var(--vp-color-teal-500) !important; }

.vp-text-white { color: var(--vp-color-white) !important; }
.vp-text-black { color: var(--vp-color-black) !important; }
.vp-text-slate-100 { color: var(--vp-color-slate-100) !important; }
.vp-text-slate-200 { color: var(--vp-color-slate-200) !important; }
.vp-text-slate-300 { color: var(--vp-color-slate-300) !important; }
.vp-text-slate-400 { color: var(--vp-color-slate-400) !important; }
.vp-text-slate-500 { color: var(--vp-color-slate-500) !important; }
.vp-text-slate-600 { color: var(--vp-color-slate-600) !important; }
.vp-text-slate-700 { color: var(--vp-color-slate-700) !important; }
.vp-text-slate-800 { color: var(--vp-color-slate-800) !important; }
.vp-text-slate-900 { color: var(--vp-color-slate-900) !important; }
.vp-text-gray-500 { color: var(--vp-color-gray-500) !important; }
.vp-text-indigo-300 { color: var(--vp-color-indigo-300) !important; }
.vp-text-neutral-950 { color: var(--vp-color-neutral-950) !important; }

.vp-border-white { border-color: var(--vp-color-white) !important; }
.vp-border-slate-100 { border-color: var(--vp-color-slate-100) !important; }
.vp-border-slate-200 { border-color: var(--vp-color-slate-200) !important; }
.vp-border-slate-300 { border-color: var(--vp-color-slate-300) !important; }
.vp-border-slate-400 { border-color: var(--vp-color-slate-400) !important; }
.vp-border-slate-500 { border-color: var(--vp-color-slate-500) !important; }
.vp-border-slate-600 { border-color: var(--vp-color-slate-600) !important; }
.vp-border-slate-800 { border-color: var(--vp-color-slate-800) !important; }
.vp-border-slate-900 { border-color: var(--vp-color-slate-900) !important; }
.vp-border-blue-700 { border-color: var(--vp-color-blue-700) !important; }
.vp-border-gray-200 { border-color: var(--vp-color-gray-200) !important; }
.vp-border-sky-100 { border-color: var(--vp-color-sky-100) !important; }

.vp-from-slate-50 {
  --tw-gradient-from: var(--vp-color-slate-50) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.vp-from-slate-700 {
  --tw-gradient-from: var(--vp-color-slate-700) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(51 65 85 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.vp-from-slate-900 {
  --tw-gradient-from: var(--vp-color-slate-900) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.vp-from-slate-950 {
  --tw-gradient-from: var(--vp-color-slate-950) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(2 6 23 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.vp-to-blue-50 { --tw-gradient-to: var(--vp-color-blue-50) var(--tw-gradient-to-position); }
.vp-to-slate-400 { --tw-gradient-to: var(--vp-color-slate-400) var(--tw-gradient-to-position); }
.vp-to-slate-500 { --tw-gradient-to: var(--vp-color-slate-500) var(--tw-gradient-to-position); }
.vp-to-slate-900 { --tw-gradient-to: var(--vp-color-slate-900) var(--tw-gradient-to-position); }

.vp-via-slate-200 {
  --tw-gradient-via-position: ;
  --tw-gradient-to: rgb(226 232 240 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--vp-color-slate-200) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.vp-via-slate-700 {
  --tw-gradient-via-position: ;
  --tw-gradient-to: rgb(51 65 85 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--vp-color-slate-700) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.vp-from-white {
  --tw-gradient-from: var(--vp-color-white) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.vp-to-white {
  --tw-gradient-to: var(--vp-color-white) var(--tw-gradient-to-position);
}

.vp-via-white {
  --tw-gradient-via-position: ;
  --tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--vp-color-white) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

.vp-from-black {
  --tw-gradient-from: var(--vp-color-black) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.vp-to-black {
  --tw-gradient-to: var(--vp-color-black) var(--tw-gradient-to-position);
}

.vp-via-black {
  --tw-gradient-via-position: ;
  --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--vp-color-black) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

/* VP_OPACITY_UTILITIES */
.vp-bg-black-o-5 { background-color: rgba(0, 0, 0, 0.05) !important; }
.vp-bg-black-o-80 { background-color: rgba(0, 0, 0, 0.8) !important; }
.vp-bg-black-o-90 { background-color: rgba(0, 0, 0, 0.9) !important; }
.vp-bg-indigo-500-o-10 { background-color: rgba(99, 102, 241, 0.1) !important; }
.vp-bg-indigo-500-o-20 { background-color: rgba(99, 102, 241, 0.2) !important; }
.vp-bg-sky-400-o-10 { background-color: rgba(56, 189, 248, 0.1) !important; }
.vp-bg-sky-900-o-6 { background-color: rgba(12, 74, 110, 0.06) !important; }
.vp-bg-slate-50-o-50 { background-color: rgba(248, 250, 252, 0.5) !important; }
.vp-bg-slate-800-o-30 { background-color: rgba(30, 41, 59, 0.3) !important; }
.vp-bg-slate-800-o-50 { background-color: rgba(30, 41, 59, 0.5) !important; }
.vp-bg-slate-900-o-10 { background-color: rgba(15, 23, 42, 0.1) !important; }
.vp-bg-slate-950-o-80 { background-color: rgba(2, 6, 23, 0.8) !important; }
.vp-bg-slate-950-o-90 { background-color: rgba(2, 6, 23, 0.9) !important; }
.vp-bg-white-o-10 { background-color: rgba(255, 255, 255, 0.1) !important; }
.vp-bg-white-o-20 { background-color: rgba(255, 255, 255, 0.2) !important; }
.vp-bg-white-o-5 { background-color: rgba(255, 255, 255, 0.05) !important; }
.vp-bg-white-o-60 { background-color: rgba(255, 255, 255, 0.6) !important; }
.vp-bg-white-o-80 { background-color: rgba(255, 255, 255, 0.8) !important; }
.vp-bg-white-o-90 { background-color: rgba(255, 255, 255, 0.9) !important; }
.vp-bg-white-o-95 { background-color: rgba(255, 255, 255, 0.95) !important; }
.vp-bg-white-o-0-02 { background-color: rgba(255, 255, 255, 0.02) !important; }
.vp-bg-white-o-0-03 { background-color: rgba(255, 255, 255, 0.03) !important; }
.vp-border-blue-700-o-10 { border-color: rgba(29, 78, 216, 0.1) !important; }
.vp-border-gray-200-o-70 { border-color: rgba(229, 231, 235, 0.7) !important; }
.vp-border-slate-200-o-60 { border-color: rgba(226, 232, 240, 0.6) !important; }
.vp-border-slate-200-o-70 { border-color: rgba(226, 232, 240, 0.7) !important; }
.vp-border-white-o-10 { border-color: rgba(255, 255, 255, 0.1) !important; }
.vp-border-white-o-15 { border-color: rgba(255, 255, 255, 0.15) !important; }
.vp-border-white-o-20 { border-color: rgba(255, 255, 255, 0.2) !important; }
.vp-border-white-o-25 { border-color: rgba(255, 255, 255, 0.25) !important; }
.vp-border-white-o-5 { border-color: rgba(255, 255, 255, 0.05) !important; }
.vp-border-white-o-50 { border-color: rgba(255, 255, 255, 0.5) !important; }
.vp-ring-white-o-10 { --tw-ring-color: rgba(255, 255, 255, 0.1) !important; }
.vp-from-black-o-80 { --tw-gradient-from: rgba(0, 0, 0, 0.8) var(--tw-gradient-from-position); --tw-gradient-to: rgba(0, 0, 0, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.vp-from-slate-950-o-30 { --tw-gradient-from: rgba(2, 6, 23, 0.3) var(--tw-gradient-from-position); --tw-gradient-to: rgba(2, 6, 23, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.vp-text-slate-500-o-80 { color: rgba(100, 116, 139, 0.8) !important; }
.vp-text-white-o-40 { color: rgba(255, 255, 255, 0.4) !important; }
.vp-text-white-o-50 { color: rgba(255, 255, 255, 0.5) !important; }
.vp-text-white-o-60 { color: rgba(255, 255, 255, 0.6) !important; }
.vp-text-white-o-70 { color: rgba(255, 255, 255, 0.7) !important; }
.vp-text-white-o-80 { color: rgba(255, 255, 255, 0.8) !important; }
.vp-text-white-o-85 { color: rgba(255, 255, 255, 0.85) !important; }
.vp-text-white-o-90 { color: rgba(255, 255, 255, 0.9) !important; }
.vp-to-blue-50-o-30 { --tw-gradient-to: rgba(239, 246, 255, 0.3) var(--tw-gradient-to-position); }
.vp-via-black-o-80 { --tw-gradient-via-position: ; --tw-gradient-to: rgba(0, 0, 0, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgba(0, 0, 0, 0.8) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.vp-via-slate-900-o-8 { --tw-gradient-via-position: ; --tw-gradient-to: rgba(15, 23, 42, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgba(15, 23, 42, 0.08) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.vp-via-white-o-20 { --tw-gradient-via-position: ; --tw-gradient-to: rgba(255, 255, 255, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgba(255, 255, 255, 0.2) var(--tw-gradient-via-position), var(--tw-gradient-to); }

/* Shared mobile menu patterns */
.mobile-menu {
  transform: translateX(100%);
  transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  will-change: transform;
}

.mobile-menu.active {
  transform: translateX(0);
}

#mobile-menu.open {
  transform: translateX(0);
}

#mobile-menu-toggle {
  display: none;
}

#mobile-menu-toggle:checked ~ .mobile-menu-container {
  display: block;
}

.mobile-menu-container {
  display: none;
}

/* Shared marquee baseline */
.logo-marquee,
.marquee {
  overflow: hidden;
  position: relative;
}

.logo-marquee-track,
.logo-track,
.marquee-track,
.vp-marquee-track {
  display: flex;
  width: max-content;
  will-change: transform;
}

@keyframes vp-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

.vp-marquee-track {
  animation: vp-marquee var(--vp-marquee-duration, 36s) linear infinite;
}

/* Shared animation delay utilities (replace inline animation-delay) */
.vp-anim-delay-100 { animation-delay: 100ms !important; }
.vp-anim-delay-200 { animation-delay: 200ms !important; }
.vp-anim-delay-300 { animation-delay: 300ms !important; }
.vp-anim-delay-400 { animation-delay: 400ms !important; }
.vp-anim-delay-2000 { animation-delay: 2s !important; }

/* Shared read-more / view-more pattern */
.vp-readmore {
  --vp-readmore-lines: 4;
}

:root.vp-js-ready .vp-readmore :where([data-readmore-content]) {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--vp-readmore-lines);
  overflow: hidden;
}

:root.vp-js-ready .vp-readmore.is-expanded :where([data-readmore-content]) {
  display: block;
  -webkit-line-clamp: unset;
  overflow: visible;
}

.vp-readmore :where([data-readmore-toggle]) {
  margin-top: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  opacity: 0.78;
  cursor: pointer;
}

.vp-readmore :where([data-readmore-toggle]):hover {
  opacity: 1;
}

.vp-readmore :where([data-readmore-toggle])[hidden] {
  display: none !important;
}

/* Shared tiny-label utilities with mobile readability defaults */
.vp-label-9 {
  font-size: 0.5625rem !important;
  line-height: 0.875rem !important;
}

.vp-label-10 {
  font-size: 0.625rem !important;
  line-height: 0.9375rem !important;
}

/* Shared letter-spacing utilities (replacing arbitrary tracking classes) */
.vp-track-008 { letter-spacing: 0.08em !important; }
.vp-track-015 { letter-spacing: 0.15em !important; }
.vp-track-018 { letter-spacing: 0.18em !important; }
.vp-track-02 { letter-spacing: 0.2em !important; }
.vp-track-024 { letter-spacing: 0.24em !important; }
.vp-track-025 { letter-spacing: 0.25em !important; }
.vp-track-03 { letter-spacing: 0.3em !important; }
.vp-track-04 { letter-spacing: 0.4em !important; }

@media (min-width: 768px) {
  .mobile-menu-container {
    display: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .logo-marquee-track,
  .logo-track,
  .marquee-track,
  .vp-marquee-track {
    animation: none !important;
  }
}

/* Phase 2: mobile-first rebuild with desktop parity lock */
@media (max-width: 1023px) {
  .vp-label-9,
  .vp-label-10 {
    font-size: 0.75rem !important;
    line-height: 1rem !important;
  }

  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) {
    overflow-x: clip;
  }

  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) main > section[class*="py-24"],
  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) main > section[class*="py-32"] {
    padding-top: 5rem !important;
    padding-bottom: 5rem !important;
  }

  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) [class*="text-[9px]"],
  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) [class*="text-[10px]"],
  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) [class*="text-[11px]"] {
    font-size: 0.75rem !important;
    line-height: 1.25rem !important;
  }

  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) [class*="text-[15px]"] {
    font-size: 0.9375rem !important;
    line-height: 1.5rem !important;
  }

  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) button,
  :where(
    .vp-mobile-lock-thought,
    .vp-mobile-lock-interim,
    .vp-mobile-lock-board,
    .vp-mobile-lock-cmo,
    .vp-mobile-lock-coach,
    .vp-mobile-lock-essential-free,
    .vp-mobile-lock-independent-free,
    .vp-mobile-lock-exec-authority,
    .vp-mobile-lock-senior-strategist,
    .vp-mobile-lock-cfo,
    .vp-mobile-lock-essential,
    .vp-mobile-lock-gtm,
    .vp-mobile-lock-strategy
  ) a[class*="px-"][class*="py-"] {
    min-height: 44px;
  }

  .vp-mobile-lock-thought #mobile-menu {
    width: min(90vw, 22rem);
  }

  .vp-mobile-lock-thought #testimonial-track {
    grid-template-columns: 1fr !important;
    overflow: visible !important;
  }

  .vp-mobile-lock-thought .testimonial-card {
    padding: 1.5rem !important;
  }

  .vp-mobile-lock-thought h1 {
    text-wrap: balance;
  }

  .vp-mobile-lock-interim #hero .grid {
    gap: 2rem;
  }

  .vp-mobile-lock-interim #hero h1,
  .vp-mobile-lock-interim h2 {
    text-wrap: balance;
  }

  .vp-mobile-lock-interim #trust .logo-pill {
    width: 88px;
    height: 50px;
  }

  .vp-mobile-lock-interim #trust .logo-pill img {
    width: 42px;
    height: 42px;
  }

  .vp-mobile-lock-board #header {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .vp-mobile-lock-board #nav-overlay nav {
    gap: 1.1rem;
  }

  .vp-mobile-lock-board #story .grid {
    gap: 2rem;
  }

  .vp-mobile-lock-board #story h1 {
    font-size: clamp(2.25rem, 11.2vw, 3.6rem);
    line-height: 0.96;
  }

  .vp-mobile-lock-board #services > .max-w-7xl > .grid:last-child,
  .vp-mobile-lock-board #featured .max-w-7xl > .grid {
    gap: 1rem;
  }

  .vp-mobile-lock-board #services > .max-w-7xl > .grid:last-child > div,
  .vp-mobile-lock-board #featured .max-w-7xl > .grid > .group {
    padding: 1.5rem;
  }

  .vp-mobile-lock-board #story .flex.flex-col.gap-16 {
    gap: 2rem;
  }

  .vp-mobile-lock-board .bg-noise {
    opacity: 0.025;
  }

  .vp-mobile-lock-cmo #mobile-menu {
    overflow-y: auto;
  }

  .vp-mobile-lock-cmo #mobile-menu a {
    line-height: 1.1;
  }

  .vp-mobile-lock-cmo #hero .grid {
    gap: 2rem;
  }

  .vp-mobile-lock-cmo #hero .mt-12.pt-8.border-t {
    grid-template-columns: 1fr;
    gap: 1rem;
    max-width: 20rem;
  }

  .vp-mobile-lock-cmo #contact .absolute.bottom-0.right-0 {
    width: min(72vw, 340px);
    height: min(72vw, 340px);
  }

  .vp-mobile-lock-coach #hero .grid {
    gap: 2rem;
  }

  .vp-mobile-lock-coach #hero .max-w-7xl {
    padding-top: 1.5rem;
    padding-bottom: 3rem;
  }

  .vp-mobile-lock-coach #mobile-menu .mobile-link {
    line-height: 1.08;
  }

  .vp-mobile-lock-coach #clients .grid > * {
    height: 100%;
  }

  .vp-mobile-lock-essential-free nav .max-w-7xl {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .vp-mobile-lock-essential-free nav .mobile-menu-container {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
  }

  .vp-mobile-lock-essential-free main > header:first-of-type {
    min-height: auto;
    padding-top: 6rem;
    padding-bottom: 4rem;
  }

  .vp-mobile-lock-essential-free main > header:first-of-type h1 {
    font-size: clamp(2.15rem, 10vw, 3.25rem);
  }

  .vp-mobile-lock-independent-free #navbar .max-w-7xl {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .vp-mobile-lock-independent-free header#about {
    padding-top: 6rem;
    padding-bottom: 4rem;
  }

  .vp-mobile-lock-independent-free header#about .grid {
    gap: 2.25rem;
  }

  .vp-mobile-lock-independent-free header#about h1 {
    font-size: clamp(2.2rem, 10vw, 3.3rem);
    line-height: 1.08;
  }

  .vp-mobile-lock-independent-free header#about img {
    max-width: 270px;
  }

  .vp-mobile-lock-independent-free #mobile-menu {
    padding: 5rem 1.5rem 2rem;
  }

  .vp-mobile-lock-independent-free #mobile-menu-btn,
  .vp-mobile-lock-gtm #mobile-menu-btn,
  .vp-mobile-lock-strategy #open-menu-btn {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .vp-mobile-lock-exec-authority header.fixed .max-w-7xl {
    height: 4.25rem;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .vp-mobile-lock-exec-authority header.fixed label[for="menu-toggle"] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
  }

  .vp-mobile-lock-exec-authority #mobile-menu {
    width: min(88vw, 20rem);
    padding: 5.5rem 1.5rem 2rem;
  }

  .vp-mobile-lock-exec-authority #home {
    padding-top: 6rem;
    padding-bottom: 4rem;
  }

  .vp-mobile-lock-exec-authority #home h1 {
    font-size: clamp(2.25rem, 10vw, 3.25rem);
    line-height: 1.02;
  }

  .vp-mobile-lock-senior-strategist main {
    margin-left: 0 !important;
  }

  .vp-mobile-lock-senior-strategist aside.glass-surface {
    width: min(84vw, 280px);
  }

  .vp-mobile-lock-senior-strategist label[aria-label="Open menu"] {
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
  }

  .vp-mobile-lock-senior-strategist main > .max-w-7xl {
    padding-top: 5.5rem;
    padding-bottom: 4rem;
  }

  .vp-mobile-lock-senior-strategist #about h2 {
    font-size: clamp(2.25rem, 10.5vw, 3.5rem);
    line-height: 1.02;
  }

  .vp-mobile-lock-cfo #mobile-menu-button {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .vp-mobile-lock-cfo main > section:first-of-type {
    min-height: auto;
    padding-top: 6.5rem;
    padding-bottom: 4rem;
  }

  .vp-mobile-lock-cfo main > section:first-of-type .grid {
    gap: 2rem;
  }

  .vp-mobile-lock-cfo main > section:first-of-type h1 {
    font-size: clamp(2.25rem, 10.5vw, 3.75rem) !important;
  }

  .vp-mobile-lock-essential #hero {
    padding-top: 7rem;
    padding-bottom: 4.5rem;
  }

  .vp-mobile-lock-essential #hero h1 {
    font-size: clamp(2.15rem, 10.2vw, 3.4rem);
    line-height: 1.06;
  }

  .vp-mobile-lock-essential nav[aria-label="Primary"] {
    top: 0.75rem;
  }

  .vp-mobile-lock-essential #hero .max-w-sm {
    max-width: 17.5rem;
  }

  .vp-mobile-lock-gtm #navbar .max-w-7xl {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .vp-mobile-lock-gtm #mobile-menu {
    padding-bottom: 1rem;
  }

  .vp-mobile-lock-gtm main > section:first-of-type {
    min-height: auto;
    padding-top: 6.5rem;
    padding-bottom: 4.5rem;
  }

  .vp-mobile-lock-gtm main > section:first-of-type .grid {
    gap: 2rem;
  }

  .vp-mobile-lock-gtm main > section:first-of-type h1 {
    font-size: clamp(2.2rem, 10.5vw, 3.6rem);
    line-height: 0.98;
  }

  .vp-mobile-lock-strategy #navbar {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
  }

  .vp-mobile-lock-strategy main > section:first-of-type {
    padding-top: 6.5rem;
    padding-bottom: 4rem;
  }

  .vp-mobile-lock-strategy main > section:first-of-type h1 {
    font-size: clamp(2.2rem, 10.4vw, 3.7rem);
    line-height: 0.98;
  }

  .vp-mobile-lock-strategy #mobile-menu {
    padding-top: 5rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  .vp-mobile-lock-strategy #home .grid.grid-cols-3 {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .vp-mobile-lock-strategy #diagnostic .vp-bg-white .flex.items-center.justify-between {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }

  .vp-mobile-lock-strategy #engagement-models .interactive-card.relative > .absolute.top-0.right-0 {
    top: 0.75rem;
    right: 0.75rem;
    border-radius: 9999px;
    padding: 0.35rem 0.6rem;
  }
}
