/* ============ RESET & BASE ============ */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root,
[data-theme="dark"] {
  --bg: #07070d;
  --bg-2: #0c0c18;
  --surface: rgba(255, 255, 255, 0.04);
  --surface-2: rgba(255, 255, 255, 0.06);
  --border: rgba(255, 255, 255, 0.08);
  --border-2: rgba(255, 255, 255, 0.14);
  --text: #f5f5f7;
  --text-dim: #a4a4b3;
  --text-muted: #6b6b7a;
  --grid-line: rgba(255, 255, 255, 0.03);
  --particle: rgba(255, 255, 255, 0.5);
  --nav-scrolled: rgba(7, 7, 13, 0.7);

  /* Tells the browser to render native form widgets (including <option> dropdowns) in dark mode */
  color-scheme: dark;

  --accent-1: #7c5cff;   /* violet */
  --accent-2: #00e5ff;   /* cyan */
  --accent-3: #ff4ecd;   /* pink */
  --gradient: linear-gradient(135deg, #7c5cff 0%, #00e5ff 50%, #ff4ecd 100%);
  --gradient-soft: linear-gradient(135deg, rgba(124, 92, 255, 0.18), rgba(0, 229, 255, 0.18));

  --radius: 16px;
  --radius-lg: 24px;

  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);

  --container: 1200px;
}

/* ============ LIGHT THEME ============ */
[data-theme="light"] {
  --bg: #f5f6fa;
  --bg-2: #ffffff;
  --surface: rgba(15, 15, 30, 0.04);
  --surface-2: rgba(15, 15, 30, 0.06);
  --border: rgba(15, 15, 30, 0.08);
  --border-2: rgba(15, 15, 30, 0.16);
  --text: #0a0a18;
  --text-dim: #4a4a58;
  --text-muted: #7a7a88;
  --grid-line: rgba(15, 15, 30, 0.06);
  --particle: rgba(20, 20, 40, 0.45);
  --nav-scrolled: rgba(255, 255, 255, 0.7);

  color-scheme: light;
}

/* Light theme: tailored overrides for elements with hardcoded dark assumptions */
[data-theme="light"] body {
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(124, 92, 255, 0.10), transparent 60%),
    radial-gradient(ellipse 60% 50% at 90% 10%, rgba(0, 229, 255, 0.08), transparent 60%),
    var(--bg);
}
[data-theme="light"] .orb { opacity: 0.22; }
[data-theme="light"] .grid-overlay {
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
}

/* Loader */
[data-theme="light"] .loader-bar { background: rgba(0, 0, 0, 0.06); }

/* Cards become elevated white tiles */
[data-theme="light"] .card {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
  box-shadow: 0 1px 3px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] .card:hover {
  background: #ffffff;
  box-shadow: 0 18px 40px -12px rgba(124, 92, 255, 0.25);
}
[data-theme="light"] .feature {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
}
[data-theme="light"] .logo-chip,
[data-theme="light"] .hero-stats,
[data-theme="light"] .badge,
[data-theme="light"] .btn-ghost,
[data-theme="light"] .nav-cta,
[data-theme="light"] .services-cta,
[data-theme="light"] .theme-toggle,
[data-theme="light"] .float {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.08);
}
[data-theme="light"] .project { background: #ffffff; }

/* Browser/code mockups stay dark — they represent device screens */
/* but tweak shadow for contrast on light bg */
[data-theme="light"] .code-window,
[data-theme="light"] .browser-window {
  box-shadow:
    0 30px 60px -15px rgba(15, 15, 30, 0.18),
    0 0 60px -20px rgba(124, 92, 255, 0.3);
}

/* Logos that were forced white via URL — invert to dark in light mode */
[data-theme="light"] .invert-on-light img { filter: invert(1); }

/* Scroll indicator wheel needs visibility */
[data-theme="light"] .mouse { border-color: var(--text-muted); }

/* Nav links underline */
[data-theme="light"] .nav-toggle span { background: var(--text); }

/* Custom cursor — switch from white-on-dark to dark-on-light */
[data-theme="light"] .cursor { border-color: rgba(15, 15, 30, 0.6); mix-blend-mode: normal; }
[data-theme="light"] .cursor-dot { background: #0a0a18; mix-blend-mode: normal; }

/* Eyebrow */
[data-theme="light"] .eyebrow.light {
  background: rgba(15, 15, 30, 0.06);
  border-color: rgba(15, 15, 30, 0.12);
  color: var(--text);
}

html {
  scroll-behavior: smooth;
}

html,
body {
  background: var(--bg);
  color: var(--text);
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* `clip` prevents horizontal scroll WITHOUT breaking position: sticky.
     `hidden` would create a scroll container and disable sticky on descendants. */
  overflow-x: clip;
}

body {
  min-height: 100vh;
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(124, 92, 255, 0.18), transparent 60%),
    radial-gradient(ellipse 60% 50% at 90% 10%, rgba(0, 229, 255, 0.12), transparent 60%),
    var(--bg);
}

img,
svg {
  display: block;
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

button {
  font: inherit;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
}

ul {
  list-style: none;
}

::selection {
  background: var(--accent-1);
  color: #fff;
}

/* Scrollbar */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--bg); }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--accent-1), var(--accent-2));
  border-radius: 8px;
}

.gradient {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
}

/* ============ LOADER ============ */
.loader {
  position: fixed;
  inset: 0;
  background: var(--bg);
  z-index: 9999;
  display: grid;
  place-items: center;
  transition: opacity 0.6s var(--ease), visibility 0.6s var(--ease);
}
.loader.hidden {
  opacity: 0;
  visibility: hidden;
}
.loader-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}
.loader-logo {
  width: 78px;
  height: 78px;
  border-radius: 18px;
  background: #000;
  border: 1px solid rgba(27, 160, 255, 0.25);
  display: grid;
  place-items: center;
  padding: 10px;
  box-shadow:
    0 0 60px rgba(27, 160, 255, 0.55),
    0 0 120px rgba(27, 160, 255, 0.25),
    inset 0 0 20px rgba(27, 160, 255, 0.08);
  animation: pulse 1.4s ease-in-out infinite;
}
.loader-logo svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 0 8px rgba(27, 160, 255, 0.7));
  animation: logo-glow 2.4s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 60px rgba(27, 160, 255, 0.55), 0 0 120px rgba(27, 160, 255, 0.25); }
  50%      { transform: scale(1.08); box-shadow: 0 0 80px rgba(27, 160, 255, 0.8), 0 0 160px rgba(27, 160, 255, 0.4); }
}
@keyframes logo-glow {
  0%, 100% { filter: drop-shadow(0 0 6px rgba(27, 160, 255, 0.6)); }
  50%      { filter: drop-shadow(0 0 14px rgba(27, 160, 255, 1)); }
}

.loader-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  background: linear-gradient(90deg, #1ba0ff, #ffffff, #1ba0ff);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: name-shine 3s linear infinite;
}
@keyframes name-shine {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
.loader-bar {
  width: 200px;
  height: 2px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 2px;
  overflow: hidden;
}
.loader-bar span {
  display: block;
  height: 100%;
  width: 30%;
  background: var(--gradient);
  border-radius: 2px;
  animation: load 1.2s var(--ease) infinite;
}
@keyframes load {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(400%); }
}

/* ============ CURSOR ============ */
.cursor,
.cursor-dot {
  position: fixed;
  pointer-events: none;
  z-index: 9998;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  mix-blend-mode: difference;
}
.cursor {
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  transition: width 0.3s var(--ease), height 0.3s var(--ease), background 0.3s var(--ease);
}
.cursor-dot {
  width: 4px;
  height: 4px;
  background: #fff;
}
.cursor.hover {
  width: 60px;
  height: 60px;
  background: rgba(255, 255, 255, 0.1);
  border-color: transparent;
}
@media (max-width: 900px) {
  .cursor, .cursor-dot { display: none; }
}

/* ============ SCROLL PROGRESS ============ */
.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  width: 0%;
  background: var(--gradient);
  z-index: 9997;
  transition: width 0.1s linear;
  box-shadow: 0 0 12px rgba(124, 92, 255, 0.6);
}

/* ============ NAV ============ */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 20px 0;
  transition: padding 0.4s var(--ease), background 0.4s var(--ease), backdrop-filter 0.4s var(--ease);
}
.nav.scrolled {
  padding: 12px 0;
  background: var(--nav-scrolled);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
}
.nav-container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: -0.02em;
}
.logo-mark {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #000;
  border: 1px solid rgba(27, 160, 255, 0.3);
  display: grid;
  place-items: center;
  padding: 4px;
  box-shadow: 0 4px 20px rgba(27, 160, 255, 0.35);
  transition: box-shadow 0.4s var(--ease), transform 0.4s var(--ease);
}

/* Image-based brand logo — used in nav header + footer.
   The source PNG (dawki_logo_transparent.png) has a transparent background,
   so it composites cleanly on any surface — no blend-mode tricks needed. */
.logo-img-wrap {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: transform 0.4s var(--ease);
  margin-right: auto; /* pin logo to the left of the nav */
}
.logo-img {
  height: 88px;
  width: auto;
  display: block;
  filter: drop-shadow(0 0 14px rgba(27, 160, 255, 0.35));
  transition: filter 0.4s var(--ease), transform 0.4s var(--ease);
}
.logo-img-wrap:hover .logo-img {
  filter: drop-shadow(0 0 24px rgba(27, 160, 255, 0.7));
  transform: translateY(-1px);
}

/* Footer variant — bigger so it anchors the brand column */
.fx-logo .logo-img { height: 80px; }

/* Mobile sizing */
@media (max-width: 720px) {
  .logo-img { height: 44px; }
  .fx-logo .logo-img { height: 60px; }
}
.logo-mark svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 0 4px rgba(27, 160, 255, 0.5));
}
.logo:hover .logo-mark {
  box-shadow: 0 6px 28px rgba(27, 160, 255, 0.55);
  transform: translateY(-1px);
}
.nav-links {
  display: flex;
  gap: 36px;
}
.nav-links a {
  font-size: 14px;
  color: var(--text-dim);
  position: relative;
  transition: color 0.3s var(--ease);
}
.nav-links a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 1px;
  background: var(--gradient);
  transition: width 0.3s var(--ease);
}
.nav-links a:hover {
  color: var(--text);
}
.nav-links a:hover::after { width: 100%; }

/* Active page indicator */
.nav-links a.active {
  color: var(--text);
}
.nav-links a.active::after {
  width: 100%;
}
.nav-cta {
  font-size: 14px;
  font-weight: 600;
  padding: 10px 18px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: all 0.3s var(--ease);
}
.nav-cta:hover {
  background: var(--surface-2);
  border-color: var(--border-2);
  transform: translateY(-2px);
}
/* Theme toggle button */
.theme-toggle {
  position: relative;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.3s var(--ease);
  overflow: hidden;
  color: var(--text);
}
.theme-toggle:hover {
  background: var(--surface-2);
  border-color: var(--border-2);
  transform: translateY(-2px) rotate(15deg);
}
.theme-toggle svg {
  width: 17px;
  height: 17px;
  position: absolute;
  transition: transform 0.5s var(--ease), opacity 0.35s var(--ease);
}
/* Dark theme: show sun (click → switch to light) */
.theme-toggle .ti-sun {
  transform: rotate(0) scale(1);
  opacity: 1;
}
.theme-toggle .ti-moon {
  transform: rotate(-90deg) scale(0);
  opacity: 0;
}
/* Light theme: show moon (click → switch to dark) */
[data-theme="light"] .theme-toggle .ti-sun {
  transform: rotate(90deg) scale(0);
  opacity: 0;
}
[data-theme="light"] .theme-toggle .ti-moon {
  transform: rotate(0) scale(1);
  opacity: 1;
}

.nav-toggle {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
}
.nav-toggle span {
  width: 22px;
  height: 2px;
  background: var(--text);
  border-radius: 2px;
  transition: 0.3s var(--ease);
}

@media (max-width: 820px) {
  .nav-links, .nav-cta { display: none; }
  .nav-toggle { display: flex; }
  .nav-links.open {
    display: flex;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    gap: 0;
    background: rgba(7, 7, 13, 0.95);
    backdrop-filter: blur(20px);
    border-top: 1px solid var(--border);
  }
  .nav-links.open li { padding: 16px 24px; border-bottom: 1px solid var(--border); }
}

/* ============ HERO ============ */
.hero {
  position: relative;
  min-height: 100vh;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 120px 24px 80px;
}
.hero-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.hero-bg canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: 0.55;
  animation: drift 18s ease-in-out infinite;
  will-change: transform;
}
.orb-1 {
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  top: -10%;
  left: -10%;
}
.orb-2 {
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, #00e5ff, transparent 70%);
  bottom: -20%;
  right: -10%;
  animation-delay: -6s;
  opacity: 0.4;
}
.orb-3 {
  width: 400px;
  height: 400px;
  background: radial-gradient(circle, #ff4ecd, transparent 70%);
  top: 40%;
  left: 50%;
  transform: translateX(-50%);
  animation-delay: -12s;
  opacity: 0.3;
}
@keyframes drift {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%      { transform: translate(60px, -40px) scale(1.08); }
  66%      { transform: translate(-40px, 30px) scale(0.95); }
}
.grid-overlay {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 40%, transparent 90%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 40%, transparent 90%);
}

.hero-content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 1280px;
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  align-items: center;
  gap: 64px;
}
.hero-text {
  text-align: left;
}
@media (max-width: 980px) {
  .hero-content {
    grid-template-columns: 1fr;
    gap: 48px;
    max-width: 720px;
  }
  .hero-text { text-align: center; }
}

.badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border-2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-size: 13px;
  color: var(--text-dim);
  margin-bottom: 32px;
}
.badge-dot {
  width: 8px;
  height: 8px;
  background: #00ff88;
  border-radius: 50%;
  box-shadow: 0 0 12px #00ff88;
  animation: blink 2s ease-in-out infinite;
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.4; }
}

.hero-title {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(2.5rem, 8vw, 6rem);
  font-weight: 700;
  line-height: 1.02;
  letter-spacing: -0.04em;
  margin-bottom: 28px;
}
.hero-title .line {
  display: block;
  overflow: hidden;
}
.hero-title .word {
  display: inline-block;
  transform: translateY(110%);
  animation: rise 1s var(--ease-out) forwards;
}
.hero-title .line:nth-child(1) .word:nth-child(1) { animation-delay: 0.1s; }
.hero-title .line:nth-child(1) .word:nth-child(2) { animation-delay: 0.2s; }
.hero-title .line:nth-child(2) .word { animation-delay: 0.35s; }
.hero-title .line:nth-child(3) .word { animation-delay: 0.5s; }
@keyframes rise {
  to { transform: translateY(0); }
}

.hero-sub {
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  color: var(--text-dim);
  max-width: 540px;
  margin: 0 0 40px;
}

.hero-cta {
  display: flex;
  gap: 16px;
  justify-content: flex-start;
  flex-wrap: wrap;
  margin-bottom: 56px;
}

@media (max-width: 980px) {
  .hero-sub { margin: 0 auto 40px; }
  .hero-cta { justify-content: center; }
}

/* Buttons */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 16px 28px;
  border-radius: 100px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  overflow: hidden;
}
.btn svg {
  width: 18px;
  height: 18px;
  transition: transform 0.3s var(--ease);
}
.btn:hover svg { transform: translateX(4px); }
.btn-primary {
  background: var(--gradient);
  color: #fff;
  box-shadow: 0 10px 40px -10px rgba(124, 92, 255, 0.6);
}
.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #ff4ecd, #00e5ff, #7c5cff);
  opacity: 0;
  transition: opacity 0.4s var(--ease);
  z-index: 0;
}
.btn-primary:hover::before { opacity: 1; }
.btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 50px -10px rgba(124, 92, 255, 0.8);
}
.btn-primary > * { position: relative; z-index: 1; }

.btn-ghost {
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
  backdrop-filter: blur(10px);
}
.btn-ghost:hover {
  background: var(--surface-2);
  transform: translateY(-3px);
}
.btn-large {
  padding: 20px 36px;
  font-size: 16px;
}

/* Stats */
.hero-stats {
  display: inline-flex;
  align-items: center;
  gap: 32px;
  padding: 18px 32px;
  border-radius: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  width: fit-content;
}
.stat-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 28px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
}
.stat-label {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 4px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.stat-divider {
  width: 1px;
  height: 36px;
  background: var(--border-2);
}
@media (max-width: 640px) {
  .hero-stats { gap: 16px; padding: 16px 20px; }
  .stat-num { font-size: 22px; }
  .stat-label { font-size: 10px; }
  .stat-divider { height: 28px; }
}

/* Scroll indicator */
.scroll-indicator {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: var(--text-muted);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  animation: float-down 2.4s ease-in-out infinite;
  z-index: 3;
}
@keyframes float-down {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50%      { transform: translateX(-50%) translateY(8px); }
}
.mouse {
  width: 22px;
  height: 36px;
  border: 1.5px solid var(--text-muted);
  border-radius: 12px;
  display: flex;
  justify-content: center;
  padding-top: 6px;
}
.wheel {
  width: 3px;
  height: 6px;
  background: var(--text);
  border-radius: 3px;
  animation: wheel 1.6s ease-in-out infinite;
}
@keyframes wheel {
  0%   { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(12px); opacity: 0; }
}

/* ============ HERO VISUAL — NEW (cycling website previews) ============ */
.visual-stack.new {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 460px;
  display: flex;
  align-items: center;
  justify-content: center;
  transform:
    rotateY(calc(-3deg + var(--mx, 0) * 6deg))
    rotateX(calc(2deg + var(--my, 0) * -4deg));
  transition: transform 0.4s var(--ease);
  animation: stack-float 6s ease-in-out infinite;
  will-change: transform;
}

.hero-browser {
  position: relative;
  width: 100%;
  max-width: 540px;
  border-radius: 14px;
  background: rgba(12, 12, 24, 0.9);
  border: 1px solid var(--border-2);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow:
    0 40px 90px -20px rgba(0, 0, 0, 0.65),
    0 0 70px -15px rgba(124, 92, 255, 0.5);
  overflow: hidden;
  z-index: 2;
}
[data-theme="light"] .hero-browser {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.1);
  box-shadow: 0 40px 90px -20px rgba(15, 15, 30, 0.25);
}
.hero-browser .window-bar {
  background: rgba(0, 0, 0, 0.35);
  padding: 12px 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
[data-theme="light"] .hero-browser .window-bar {
  background: linear-gradient(180deg, #f8f8fc, #efeff5);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.hero-browser .window-url {
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1;
  max-width: 280px;
  margin: 0 auto;
  padding: 4px 14px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.05);
  font-family: 'Space Grotesk', monospace;
  font-size: 11px;
  color: var(--text-dim);
}
[data-theme="light"] .hero-browser .window-url { background: rgba(0, 0, 0, 0.05); }
.hero-browser .window-url .lock { font-size: 9px; opacity: 0.6; }
.hero-browser .bar-spacer { width: 33px; flex-shrink: 0; }

/* Cycling pages container */
.hero-pages {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 11;
  background: linear-gradient(180deg, #0a0a18, #06060d);
  overflow: hidden;
}
[data-theme="light"] .hero-pages {
  background: linear-gradient(180deg, #ffffff, #f5f6fa);
}

/* Each page swaps in via .active class with fade+slide */
.hero-page {
  position: absolute;
  inset: 0;
  padding: 18px 20px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  opacity: 0;
  transform: translateY(20px) scale(0.98);
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
  pointer-events: none;
}
.hero-page.active {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
/* Stagger child reveals on each page */
.hero-page > * {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.5s var(--ease) 0.2s, transform 0.5s var(--ease) 0.2s;
}
.hero-page.active > *               { opacity: 1; transform: translateY(0); }
.hero-page.active > *:nth-child(2)  { transition-delay: 0.3s; }
.hero-page.active > *:nth-child(3)  { transition-delay: 0.4s; }
.hero-page.active > *:nth-child(4)  { transition-delay: 0.5s; }
.hero-page.active > *:nth-child(5)  { transition-delay: 0.6s; }

/* ============ Page 1: Agency mockup ============ */
.hp-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
[data-theme="light"] .hp-nav { border-color: rgba(0, 0, 0, 0.05); }
.hp-logo {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
}
.hp-logo-dot {
  width: 10px;
  height: 10px;
  border-radius: 4px;
  background: var(--gradient);
  box-shadow: 0 0 8px rgba(124, 92, 255, 0.5);
}
.hp-nav-links { display: flex; gap: 14px; font-size: 9px; color: var(--text-dim); letter-spacing: 0.06em; }
.hp-nav-cta {
  font-size: 9px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 100px;
  background: var(--gradient);
  color: #fff;
  letter-spacing: 0.04em;
}

.hp-hero {
  text-align: center;
  padding: 18px 8px 8px;
}
.hp-eyebrow {
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-2);
  margin-bottom: 6px;
}
.hp-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--text);
  margin-bottom: 6px;
}
.hp-title em {
  font-style: normal;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hp-sub {
  font-size: 10px;
  color: var(--text-dim);
  margin-bottom: 10px;
}
.hp-buttons {
  display: flex;
  gap: 6px;
  justify-content: center;
}
.hp-btn {
  font-size: 9px;
  font-weight: 600;
  padding: 6px 14px;
  border-radius: 100px;
  letter-spacing: 0.02em;
}
.hp-btn.solid {
  background: var(--gradient);
  color: #fff;
  box-shadow: 0 6px 14px -4px rgba(124, 92, 255, 0.5);
}
.hp-btn.ghost {
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
}

.hp-services {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  margin-top: 6px;
}
.hp-svc {
  padding: 10px 8px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}
.hp-svc-ic {
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: var(--gradient);
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 11px;
  margin-bottom: 2px;
}
.hp-svc b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 9px;
  font-weight: 600;
  color: var(--text);
}
.hp-svc i {
  font-style: normal;
  font-size: 8px;
  color: var(--text-muted);
}

/* ============ Page 2: E-commerce mockup ============ */
.hp-shop-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
[data-theme="light"] .hp-shop-bar { border-color: rgba(0, 0, 0, 0.05); }
.hp-search {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
  margin: 0 12px;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.05);
  font-size: 8px;
  color: var(--text-muted);
}
[data-theme="light"] .hp-search { background: rgba(0, 0, 0, 0.05); }
.hp-cart {
  position: relative;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: var(--surface);
  display: grid;
  place-items: center;
  font-size: 10px;
}
.hp-cart-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  min-width: 12px;
  height: 12px;
  border-radius: 100px;
  background: #ff4ecd;
  font-size: 7px;
  font-weight: 700;
  color: #fff;
  display: grid;
  place-items: center;
  padding: 0 3px;
}

.hp-banner {
  padding: 10px 14px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(255, 78, 205, 0.18), rgba(255, 139, 61, 0.12));
  border: 1px solid rgba(255, 78, 205, 0.3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.hp-banner b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
}
.hp-banner-tag {
  font-size: 9px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 100px;
  background: linear-gradient(135deg, #ff4ecd, #ff8b3d);
  color: #fff;
}

.hp-products {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.hp-prod {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hp-prod-img {
  aspect-ratio: 1 / 1;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.2), rgba(0, 229, 255, 0.1));
  border: 1px solid rgba(255, 255, 255, 0.06);
  position: relative;
  overflow: hidden;
}
.hp-prod-img::after {
  content: '';
  position: absolute;
  inset: 30%;
  border-radius: 50%;
  background: var(--gradient);
  opacity: 0.5;
  filter: blur(8px);
}
.hp-prod-img.b { background: linear-gradient(135deg, rgba(255, 78, 205, 0.2), rgba(255, 139, 61, 0.1)); }
.hp-prod-img.c { background: linear-gradient(135deg, rgba(0, 255, 136, 0.2), rgba(0, 229, 255, 0.1)); }
.hp-prod-name {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 9px;
  font-weight: 600;
  color: var(--text);
}
.hp-prod-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.hp-prod-price {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hp-prod-add {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gradient);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 11px;
  line-height: 1;
}

/* ============ Page 2: Travel & Booking site — auto-scrolling reel ============ */
.bk {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #f4f7fb 0%, #e8edf4 100%);
  color: #0f1f33;
}
[data-theme="light"] .bk { background: linear-gradient(180deg, #ffffff 0%, #f0f4fa 100%); }

/* Sticky header */
.bk-head {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: rgba(244, 247, 251, 0.95);
  border-bottom: 1px solid rgba(15, 31, 51, 0.06);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  flex-shrink: 0;
  font-family: 'Space Grotesk', sans-serif;
}
.bk-brand {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #0f1f33;
}
.bk-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff7a59 0%, #ffc857 100%);
  box-shadow: 0 0 8px rgba(255, 122, 89, 0.5);
}
.bk-nav {
  display: flex;
  gap: 14px;
  font-size: 9px;
  font-weight: 500;
  color: #5a6a7e;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.bk-nav .bk-deal { color: #e94e3a; font-weight: 700; }
.bk-user { display: flex; align-items: center; gap: 8px; }
.bk-i {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(15, 31, 51, 0.06);
  display: grid;
  place-items: center;
  font-size: 12px;
  color: #0f1f33;
}
.bk-avatar {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2a7fdb, #6b3eff);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

/* Auto-scrolling viewport */
.bk-scroll {
  position: relative;
  flex: 1;
  overflow: hidden;
}
.bk-scroll-track {
  display: flex;
  flex-direction: column;
}
.bk-reel {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 14px;
  flex-shrink: 0;
  font-family: 'Space Grotesk', sans-serif;
}
.hero-page.active .bk-scroll-track {
  animation: bk-loop 18s linear infinite;
  will-change: transform;
}
@keyframes bk-loop {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}

/* Hero with stylized landscape */
.bk-hero {
  position: relative;
  padding: 18px 16px;
  border-radius: 16px;
  overflow: hidden;
  min-height: 150px;
  color: #fff;
  display: flex;
  align-items: flex-end;
}
.bk-hero-sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #ff7a59 0%, #ffc857 35%, #6db1d9 75%, #2a7fdb 100%);
}
.bk-hero-sun {
  position: absolute;
  top: 24%;
  right: 24%;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #ffe066 50%, transparent 70%);
  box-shadow: 0 0 30px rgba(255, 224, 102, 0.7);
  animation: bk-sun 6s ease-in-out infinite;
}
@keyframes bk-sun {
  0%, 100% { transform: translateY(0) scale(1); }
  50%      { transform: translateY(-3px) scale(1.05); }
}
.bk-hero-mountains {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 50%;
  background:
    /* far mountains */
    linear-gradient(135deg, transparent 30%, rgba(15, 31, 51, 0.35) 30%, rgba(15, 31, 51, 0.35) 60%, transparent 60%) bottom left/45% 70% no-repeat,
    linear-gradient(225deg, transparent 35%, rgba(15, 31, 51, 0.4) 35%, rgba(15, 31, 51, 0.4) 65%, transparent 65%) bottom right/55% 80% no-repeat,
    /* near silhouette */
    linear-gradient(180deg, transparent, rgba(15, 31, 51, 0.55) 70%);
}
.bk-hero-text {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.bk-hero-tag {
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}
.bk-hero-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}
.bk-hero-title em {
  font-style: italic;
  font-weight: 500;
  background: linear-gradient(90deg, #ffffff, #ffe9c2);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Search bar (sits below hero, looks like an overlap card) */
.bk-search {
  display: flex;
  align-items: center;
  gap: 0;
  padding: 8px 8px 8px 14px;
  border-radius: 100px;
  background: #ffffff;
  box-shadow: 0 12px 30px -10px rgba(15, 31, 51, 0.18), 0 0 0 1px rgba(15, 31, 51, 0.04);
  margin-top: -28px;
  position: relative;
  z-index: 2;
}
.bk-field {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 4px 10px;
  min-width: 0;
}
.bk-fl {
  font-size: 8px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8b9aac;
}
.bk-fv {
  font-size: 10px;
  font-weight: 600;
  color: #0f1f33;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bk-divider {
  width: 1px;
  height: 22px;
  background: rgba(15, 31, 51, 0.1);
  flex-shrink: 0;
}
.bk-search-btn {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff7a59, #e94e3a);
  color: #fff;
  border: none;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
  box-shadow: 0 6px 14px -4px rgba(233, 78, 58, 0.5);
}

/* Filter chips */
.bk-filters {
  display: flex;
  gap: 6px;
  overflow-x: hidden;
  padding-top: 2px;
}
.bk-filter {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border-radius: 100px;
  background: #ffffff;
  font-size: 10px;
  font-weight: 500;
  color: #5a6a7e;
  white-space: nowrap;
  border: 1px solid rgba(15, 31, 51, 0.06);
  flex-shrink: 0;
}
.bk-filter span { font-size: 11px; }
.bk-filter.active {
  background: #0f1f33;
  color: #ffffff;
  border-color: #0f1f33;
  font-weight: 600;
}

/* Section title */
.bk-st {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 0 2px;
}
.bk-st span {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: #0f1f33;
}
.bk-st em {
  font-style: normal;
  font-size: 9px;
  color: #6b7d92;
  font-weight: 500;
}

/* Stay cards */
.bk-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.bk-card {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.bk-card-img {
  position: relative;
  aspect-ratio: 4 / 5;
  border-radius: 12px;
  overflow: hidden;
  background: #c5d6e8;
}
/* Each destination has its own stylized landscape gradient */
.bk-card-img.d1 { background: linear-gradient(180deg, #6db1d9 0%, #2a7fdb 50%, #ff7a59 100%); }      /* Santorini sunset */
.bk-card-img.d2 { background: linear-gradient(180deg, #2c5e3f 0%, #4a8568 50%, #1a3528 100%); }     /* Forest cabin */
.bk-card-img.d3 { background: linear-gradient(180deg, #5fb892 0%, #2a7fdb 60%, #143356 100%); }     /* Bali */
.bk-card-img.d4 { background: linear-gradient(180deg, #b5d6e8 0%, #4a82b8 50%, #1f4366 100%); }     /* Lake Como */
.bk-card-img.d5 { background: linear-gradient(180deg, #f5b87a 0%, #e08a4a 50%, #8b3e1c 100%); }     /* Marrakech */
.bk-card-img.d6 { background: linear-gradient(180deg, #d8a8b8 0%, #6b4862 50%, #2c1f30 100%); }     /* Kyoto dusk */

/* Decorative landscape overlay */
.bk-card-img::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 40%;
  background:
    linear-gradient(135deg, transparent 35%, rgba(0, 0, 0, 0.3) 35%, rgba(0, 0, 0, 0.3) 60%, transparent 60%) bottom left/55% 80% no-repeat,
    linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.4));
}
.bk-card-img::before {
  content: '';
  position: absolute;
  top: 18%;
  right: 22%;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(255, 240, 200, 0.85);
  filter: blur(2px);
}

.bk-fav {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.85);
  display: grid;
  place-items: center;
  font-size: 12px;
  color: #0f1f33;
  z-index: 2;
  backdrop-filter: blur(6px);
}
.bk-fav.filled { color: #e94e3a; }

.bk-superhost {
  position: absolute;
  top: 6px;
  left: 6px;
  padding: 3px 8px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.95);
  color: #0f1f33;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  z-index: 2;
}

.bk-tag {
  position: absolute;
  top: 6px;
  left: 6px;
  padding: 3px 8px;
  border-radius: 100px;
  background: #0f1f33;
  color: #fff;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: 0.1em;
  z-index: 2;
}
.bk-tag.deal { background: #e94e3a; }
.bk-tag.new { background: linear-gradient(135deg, #ff7a59, #ffc857); }

.bk-card-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bk-card-row1 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}
.bk-card-row1 b {
  font-size: 10px;
  font-weight: 600;
  color: #0f1f33;
  letter-spacing: -0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bk-rate {
  font-size: 9px;
  color: #0f1f33;
  font-weight: 600;
  flex-shrink: 0;
}
.bk-loc {
  font-size: 9px;
  color: #6b7d92;
}
.bk-price {
  display: flex;
  align-items: baseline;
  gap: 2px;
  margin-top: 1px;
}
.bk-price b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: #0f1f33;
}
.bk-price span {
  font-size: 9px;
  color: #6b7d92;
}

/* Promo banner */
.bk-promo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-radius: 12px;
  background: linear-gradient(135deg, #ff7a59 0%, #e94e3a 100%);
  color: #fff;
  box-shadow: 0 10px 24px -8px rgba(233, 78, 58, 0.4);
}
.bk-promo-l { display: flex; flex-direction: column; gap: 2px; }
.bk-promo-l b {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.bk-promo-l em {
  font-style: normal;
  font-size: 8px;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.85);
  text-transform: uppercase;
}
.bk-promo-r {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  color: #e94e3a;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
}

/* Reviews */
.bk-reviews {
  padding: 14px 16px;
  border-radius: 12px;
  background: #ffffff;
  border: 1px solid rgba(15, 31, 51, 0.06);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bk-stars-row {
  display: flex;
  align-items: center;
  gap: 6px;
}
.bk-stars {
  color: #ffc857;
  font-size: 11px;
  letter-spacing: 0.1em;
  text-shadow: 0 0 6px rgba(255, 200, 87, 0.5);
}
.bk-stars-row b {
  font-size: 11px;
  font-weight: 700;
  color: #0f1f33;
}
.bk-stars-row em {
  font-style: normal;
  font-size: 9px;
  color: #6b7d92;
}
.bk-reviews p {
  font-size: 11px;
  line-height: 1.4;
  color: #0f1f33;
  font-style: italic;
  margin: 0;
}
.bk-rev-by {
  font-size: 9px;
  color: #6b7d92;
}

/* Footer mini */
.bk-foot {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 10px 4px 6px;
  border-top: 1px solid rgba(15, 31, 51, 0.08);
}
.bk-foot-col {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bk-foot-col b {
  font-size: 9px;
  font-weight: 700;
  color: #0f1f33;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.bk-foot-col span {
  font-size: 8px;
  color: #6b7d92;
}

/* ============ Page 3: SaaS Dashboard mockup ============ */
.hp-dash {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 10px;
  flex: 1;
  min-height: 0;
}
.hp-side {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 6px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.hp-side-item {
  font-size: 7px;
  color: var(--text-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 4px 6px;
  border-radius: 5px;
  white-space: nowrap;
}
.hp-side-item.active {
  background: var(--gradient-soft);
  color: var(--text);
  border: 1px solid rgba(124, 92, 255, 0.3);
}
.hp-main {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.hp-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
}
.hp-stat {
  padding: 8px 10px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--border);
}
.hp-stat-l {
  font-size: 7px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.hp-stat-v {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.01em;
}
.hp-stat-d {
  font-size: 7px;
  color: #00ff88;
  font-weight: 600;
}
.hp-chart {
  flex: 1;
  padding: 10px;
  border-radius: 8px;
  background: var(--surface);
  border: 1px solid var(--border);
  display: flex;
  align-items: flex-end;
  gap: 4px;
  min-height: 70px;
}
.hp-chart span {
  flex: 1;
  border-radius: 3px 3px 0 0;
  background: linear-gradient(180deg, #7c5cff, #00e5ff);
  opacity: 0.85;
  height: var(--h, 40%);
  animation: chart-grow 2s ease-in-out infinite;
  transform-origin: bottom;
}
.hp-chart span:nth-child(1) { animation-delay: -0.2s; }
.hp-chart span:nth-child(2) { animation-delay: -0.4s; }
.hp-chart span:nth-child(3) { animation-delay: -0.6s; }
.hp-chart span:nth-child(4) { animation-delay: -0.8s; }
.hp-chart span:nth-child(5) { animation-delay: -1.0s; }
.hp-chart span:nth-child(6) { animation-delay: -1.2s; }
.hp-chart span:nth-child(7) { animation-delay: -1.4s; }
@keyframes chart-grow {
  0%, 100% { transform: scaleY(0.85); }
  50%      { transform: scaleY(1); }
}

/* ============ Floating accent chips around the hero browser ============ */
.hfc {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(7, 7, 13, 0.9);
  border: 1px solid var(--border-2);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.55);
  white-space: nowrap;
  z-index: 4;
  animation: bob 6s ease-in-out infinite;
  will-change: transform;
}
[data-theme="light"] .hfc {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.08);
  box-shadow: 0 18px 40px -12px rgba(15, 15, 30, 0.18);
}
.hfc-ic {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  color: #fff;
  flex-shrink: 0;
}
.hfc-ic svg { width: 14px; height: 14px; }
.hfc-ic.ic-star  { background: linear-gradient(135deg, #ffd93d, #ff8b3d); box-shadow: 0 0 14px rgba(255, 217, 61, 0.5); }
.hfc-ic.ic-trend { background: linear-gradient(135deg, #00ff88, #00e5ff); box-shadow: 0 0 14px rgba(0, 255, 136, 0.45); }
.hfc-ic.ic-bolt  { background: linear-gradient(135deg, #7c5cff, #ff4ecd); box-shadow: 0 0 14px rgba(124, 92, 255, 0.5); }

.hfc-meta { display: flex; flex-direction: column; gap: 1px; }
.hfc-meta span {
  font-size: 9px;
  color: var(--text-muted);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-weight: 500;
}
.hfc-meta strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
}

.hfc-1 { top: 6%; left: -8%; animation-delay: 0s; }
.hfc-2 { top: 38%; right: -10%; animation-delay: -2s; }
.hfc-3 { bottom: 8%; left: -4%; animation-delay: -4s; }

@media (max-width: 980px) {
  .hfc-1 { left: -2%; }
  .hfc-2 { right: -2%; }
  .hfc-3 { left: -2%; }
  .hero-browser { max-width: 100%; }
}
@media (max-width: 560px) {
  .hfc { padding: 8px 10px; gap: 6px; }
  .hfc-ic { width: 22px; height: 22px; border-radius: 6px; }
  .hfc-meta strong { font-size: 11px; }
  .hfc-meta span { font-size: 8px; }
  .hp-title { font-size: 18px; }
}

/* ============ STATS / OUR IMPACT ============ */
.stats-section {
  position: relative;
  overflow: hidden;
}
.stats-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.stats-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.35;
  animation: drift 24s ease-in-out infinite;
}
.stats-orb-1 {
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  top: -20%;
  left: -10%;
}
.stats-orb-2 {
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, #00e5ff, transparent 70%);
  bottom: -30%;
  right: -10%;
  animation-delay: -10s;
}
.stats-grid-overlay {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size: 80px 80px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 80%);
}

.stats-section .container { position: relative; z-index: 1; }

.big-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 30px;
}
@media (max-width: 880px) {
  .big-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .big-stats { grid-template-columns: 1fr; }
}

.bstat {
  position: relative;
  padding: 40px 28px 36px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  text-align: center;
  overflow: hidden;
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease);
}
[data-theme="light"] .bstat { background: #ffffff; }
.bstat:hover {
  transform: translateY(-6px);
  border-color: rgba(124, 92, 255, 0.4);
}
.bstat::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gradient-soft);
  opacity: 0;
  transition: opacity 0.5s var(--ease);
  pointer-events: none;
}
.bstat:hover::before { opacity: 1; }

.bstat-num {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  position: relative;
  z-index: 1;
}
.bstat-value {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(3rem, 6vw, 4.8rem);
  font-weight: 700;
  line-height: 1;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.04em;
}
.bstat-suffix {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(1.4rem, 2.8vw, 2.2rem);
  font-weight: 600;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.02em;
}
.bstat-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-dim);
  margin-top: 12px;
  position: relative;
  z-index: 1;
}
.bstat-line {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0%;
  height: 2px;
  background: var(--gradient);
  transition: width 0.6s var(--ease);
}
.bstat:hover .bstat-line { width: 80%; }

/* ============ TESTIMONIALS — auto-cycling carousel ============ */
.testimonials {
  position: relative;
  overflow: hidden;
}
.t-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.t-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(100px);
  opacity: 0.3;
  animation: drift 28s ease-in-out infinite;
}
.t-orb-1 {
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, #ff4ecd, transparent 70%);
  top: 10%;
  left: -15%;
}
.t-orb-2 {
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  bottom: -10%;
  right: -10%;
  animation-delay: -14s;
}
.testimonials .container { position: relative; z-index: 1; }

/* ============ HAPPY CLIENTS — sliding logo marquee ============ */
.happy-clients {
  position: relative;
  padding: 80px 0 100px;
  overflow: hidden;
}
.hc-head {
  text-align: center;
  max-width: 640px;
  margin: 0 auto 48px;
}
.hc-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--text);
  margin: 0 0 12px;
  line-height: 1.1;
}
.gradient-orange {
  background: linear-gradient(135deg, #ff8b3d 0%, #ff4ecd 50%, #ffd93d 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.hc-sub {
  font-size: 1rem;
  color: var(--text-dim);
  margin: 0;
}

/* Full-bleed marquee */
.hc-marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 8px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.hc-track {
  display: flex;
  gap: 24px;
  width: max-content;
  padding: 8px 12px;
  animation: hc-scroll 60s linear infinite;
  will-change: transform;
}
.hc-marquee:hover .hc-track { animation-play-state: paused; }
@keyframes hc-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Logo card — clean white tile with subtle shadow */
.hc-logo {
  flex-shrink: 0;
  width: 180px;
  height: 110px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.06);
  box-shadow: 0 8px 24px -10px rgba(15, 23, 42, 0.15);
  display: grid;
  place-items: center;
  padding: 16px;
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
}
[data-theme="dark"] .hc-logo {
  background: #ffffff;
  border-color: rgba(255, 255, 255, 0.08);
}
.hc-logo:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 36px -12px rgba(15, 23, 42, 0.28);
}
.hc-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  transition: filter 0.3s var(--ease), transform 0.3s var(--ease);
}
.hc-logo:hover img { transform: scale(1.04); }

@media (max-width: 560px) {
  .hc-logo { width: 140px; height: 88px; padding: 12px; }
  .hc-track { gap: 14px; }
}

/* ====== Sliding marquee of review cards ====== */
.t-marquee {
  position: relative;
  width: 100%;
  margin-top: 48px;
  padding: 12px 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
  z-index: 1;
}
.t-marquee-track {
  display: flex;
  gap: 20px;
  width: max-content;
  padding: 8px 12px;
  animation: t-marquee-scroll 70s linear infinite;
  will-change: transform;
}
.t-marquee:hover .t-marquee-track { animation-play-state: paused; }
@keyframes t-marquee-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Review card — Google-style */
.t-rcard {
  width: 320px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 22px 24px;
  border-radius: 16px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 12px 32px -12px rgba(15, 23, 42, 0.18);
  position: relative;
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease);
  font-family: 'Inter', sans-serif;
  color: #0f172a;
}
.t-rcard:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -12px rgba(15, 23, 42, 0.25);
}
[data-theme="dark"] .t-rcard {
  background: #ffffff;
  border-color: rgba(255, 255, 255, 0.1);
}

/* Header row */
.t-rhead {
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
}
.t-ravatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--bg, linear-gradient(135deg, #7c5cff, #00e5ff));
  display: grid;
  place-items: center;
  color: #fff;
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.02em;
  flex-shrink: 0;
  box-shadow: 0 4px 10px -2px rgba(15, 23, 42, 0.18);
}
.t-rmeta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.t-rmeta strong {
  font-size: 14px;
  font-weight: 600;
  color: #0f172a;
  letter-spacing: -0.01em;
}
.t-rmeta span {
  font-size: 12px;
  color: #64748b;
}
.t-rgoogle {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
  align-self: flex-start;
}
.t-rgoogle svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* Stars + verified */
.t-rstars {
  display: flex;
  align-items: center;
  gap: 6px;
}
.t-rstars-mark {
  color: #fbbf24;
  font-size: 14px;
  letter-spacing: 0.05em;
  line-height: 1;
}
.t-rverified {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

/* Review text */
.t-rtext {
  font-size: 13.5px;
  line-height: 1.55;
  color: #334155;
  margin: 0;
  font-weight: 400;
  letter-spacing: -0.005em;
}

/* Mobile — slightly smaller cards */
@media (max-width: 560px) {
  .t-rcard { width: 280px; padding: 18px 18px 20px; }
  .t-rtext { font-size: 13px; }
  .t-marquee-track { gap: 14px; }
}

/* ============ FAQ — animated accordion ============ */
.faq {
  position: relative;
}
.faq-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 80px;
  align-items: flex-start;
}
@media (max-width: 980px) {
  .faq-grid { grid-template-columns: 1fr; gap: 48px; }
  .faq-head { text-align: center; }
}
.faq-head {
  position: sticky;
  top: 120px;
}
.faq-head .eyebrow,
.faq-head .section-title,
.faq-head .section-sub {
  text-align: left;
  margin-left: 0;
  max-width: 380px;
}
@media (max-width: 980px) {
  .faq-head { position: static; }
  .faq-head .eyebrow,
  .faq-head .section-title,
  .faq-head .section-sub {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
}
.faq-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 24px;
  padding: 14px 22px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  transition: all 0.3s var(--ease);
}
.faq-cta svg { width: 16px; height: 16px; transition: transform 0.3s var(--ease); }
.faq-cta:hover {
  background: var(--gradient);
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -8px rgba(124, 92, 255, 0.5);
}
.faq-cta:hover svg { transform: translateX(4px); }

.faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.faq-item {
  position: relative;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: border-color 0.4s var(--ease), background 0.4s var(--ease);
}
[data-theme="light"] .faq-item { background: #ffffff; }
.faq-item.open {
  border-color: rgba(124, 92, 255, 0.4);
  background: var(--surface-2);
  box-shadow: 0 12px 30px -10px rgba(124, 92, 255, 0.25);
}
[data-theme="light"] .faq-item.open { background: #ffffff; }

.faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px;
  background: none;
  border: none;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--text);
  text-align: left;
  cursor: pointer;
  transition: color 0.3s var(--ease);
}
.faq-q:hover { color: var(--accent-2); }
.faq-item.open .faq-q { color: var(--text); }

.faq-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border-2);
  display: grid;
  place-items: center;
  position: relative;
  flex-shrink: 0;
  transition: background 0.4s var(--ease), border-color 0.4s var(--ease), transform 0.4s var(--ease);
}
.faq-item.open .faq-icon {
  background: var(--gradient);
  border-color: transparent;
  transform: rotate(180deg);
}
.faq-icon .bar {
  position: absolute;
  background: var(--text);
  border-radius: 2px;
  transition: all 0.4s var(--ease);
}
.faq-icon .bar-h {
  width: 12px;
  height: 2px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.faq-icon .bar-v {
  width: 2px;
  height: 12px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.faq-item.open .faq-icon .bar { background: #fff; }
.faq-item.open .faq-icon .bar-v {
  transform: translate(-50%, -50%) rotate(90deg);
  opacity: 0;
}

.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease);
}
.faq-item.open .faq-a { max-height: 400px; }
.faq-a-inner {
  padding: 0 24px 22px;
  opacity: 0;
  transform: translateY(-8px);
  transition: opacity 0.4s var(--ease) 0.1s, transform 0.4s var(--ease) 0.1s;
}
.faq-item.open .faq-a-inner {
  opacity: 1;
  transform: translateY(0);
}
.faq-a-inner p {
  color: var(--text-dim);
  line-height: 1.65;
  font-size: 0.95rem;
  margin: 0;
  padding-top: 4px;
  border-top: 1px solid var(--border);
}

/* ============ DEV DOC SECTIONS (Mobile + Web Development) ============ */
.dev-doc { position: relative; }

.dd-grid {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 32px;
  align-items: start;
}
@media (max-width: 980px) {
  .dd-grid { grid-template-columns: 1fr; gap: 28px; }
}

/* ====== Vertical tab list (left) ====== */
.dd-tabs {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
}
.dd-tab {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 18px 20px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  text-align: left;
  cursor: pointer;
  transition: background 0.4s var(--ease), border-color 0.4s var(--ease), transform 0.4s var(--ease);
  width: 100%;
  font-family: inherit;
  color: var(--text);
}
[data-theme="light"] .dd-tab { background: #ffffff; }
.dd-tab:hover {
  background: var(--surface-2);
  border-color: var(--border-2);
  transform: translateX(2px);
}
.dd-tab.active {
  background: var(--surface-2);
  border-color: rgba(124, 92, 255, 0.5);
  box-shadow: 0 12px 30px -12px rgba(124, 92, 255, 0.35);
}
.dd-tab.active::before {
  content: '';
  position: absolute;
  left: 0;
  top: 12px;
  bottom: 12px;
  width: 3px;
  border-radius: 100px;
  background: var(--gradient);
  box-shadow: 0 0 12px rgba(124, 92, 255, 0.6);
}

.dd-tab-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-muted);
  letter-spacing: 0.08em;
  flex-shrink: 0;
  width: 28px;
  transition: color 0.4s var(--ease);
}
.dd-tab.active .dd-tab-num {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.dd-tab-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.dd-tab-text strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
}
.dd-tab-text em {
  font-style: normal;
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}

.dd-tab-arrow {
  width: 16px;
  height: 16px;
  color: var(--text-muted);
  flex-shrink: 0;
  transition: transform 0.4s var(--ease), color 0.4s var(--ease);
}
.dd-tab.active .dd-tab-arrow {
  color: var(--accent-2);
  transform: translateX(4px);
}

/* ====== Right panel ====== */
.dd-panel {
  position: relative;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  overflow: hidden;
  min-height: 520px;
}
[data-theme="light"] .dd-panel { background: #ffffff; }

.dd-panel-content {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  padding: 32px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
  pointer-events: none;
  overflow: auto;
}
.dd-panel-content.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
@media (max-width: 720px) {
  .dd-panel-content { grid-template-columns: 1fr; padding: 24px; gap: 20px; }
  .dd-panel { min-height: 760px; }
}

/* Stagger child reveal when panel becomes active */
.dd-panel-content > * > * {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
}
.dd-panel-content.active > * > * { opacity: 1; transform: translateY(0); }
.dd-panel-content.active .dd-info > *:nth-child(1) { transition-delay: 0.15s; }
.dd-panel-content.active .dd-info > *:nth-child(2) { transition-delay: 0.20s; }
.dd-panel-content.active .dd-info > *:nth-child(3) { transition-delay: 0.25s; }
.dd-panel-content.active .dd-info > *:nth-child(4) { transition-delay: 0.30s; }
.dd-panel-content.active .dd-info > *:nth-child(5) { transition-delay: 0.40s; }

/* Info column */
.dd-info {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.dd-platform-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #fff;
  flex-shrink: 0;
}
.dd-platform-icon svg { width: 26px; height: 26px; }
.dd-platform-icon.ios     { background: linear-gradient(135deg, #0a0a14, #2a2a3a); }
.dd-platform-icon.android { background: linear-gradient(135deg, #3ddc84, #1f8a4f); }
.dd-platform-icon.rn      { background: linear-gradient(135deg, #61dafb, #2a7fdb); color: #000; }
.dd-platform-icon.flutter { background: linear-gradient(135deg, #54c5f8, #0175c2); }
.dd-platform-icon.land    { background: linear-gradient(135deg, #ff7a59, #ffc857); }
.dd-platform-icon.saas    { background: linear-gradient(135deg, #7c5cff, #00e5ff); }
.dd-platform-icon.ecom    { background: linear-gradient(135deg, #ff4ecd, #ff8b3d); }
.dd-platform-icon.api     { background: linear-gradient(135deg, #00ff88, #00e5ff); color: #0a0a18; }

.dd-info h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
}
.dd-info p {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text-dim);
  margin: 0;
}

/* Feature list with check icons */
.dd-features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dd-features li {
  position: relative;
  padding-left: 28px;
  font-size: 0.9rem;
  color: var(--text-dim);
  line-height: 1.45;
}
.dd-features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gradient);
  box-shadow: 0 0 8px rgba(124, 92, 255, 0.4);
}
.dd-features li::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 8px;
  width: 5px;
  height: 9px;
  border-right: 1.8px solid #fff;
  border-bottom: 1.8px solid #fff;
  transform: rotate(45deg);
}
/* Stagger animate features themselves */
.dd-features li {
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
}
.dd-panel-content.active .dd-features li { opacity: 1; transform: translateX(0); }
.dd-panel-content.active .dd-features li:nth-child(1) { transition-delay: 0.45s; }
.dd-panel-content.active .dd-features li:nth-child(2) { transition-delay: 0.55s; }
.dd-panel-content.active .dd-features li:nth-child(3) { transition-delay: 0.65s; }
.dd-panel-content.active .dd-features li:nth-child(4) { transition-delay: 0.75s; }

/* Tech chip row */
.dd-tech {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}
.dd-chip {
  padding: 5px 12px;
  border-radius: 100px;
  background: var(--surface-2);
  border: 1px solid var(--border-2);
  font-family: 'Space Grotesk', monospace;
  font-size: 11px;
  font-weight: 500;
  color: var(--text);
  letter-spacing: 0.02em;
  transition: transform 0.3s var(--ease), background 0.3s var(--ease);
  opacity: 0;
  transform: scale(0.8);
}
.dd-panel-content.active .dd-chip {
  opacity: 1;
  transform: scale(1);
  transition: opacity 0.4s var(--ease), transform 0.4s var(--ease);
}
.dd-panel-content.active .dd-chip:nth-child(1) { transition-delay: 0.85s; }
.dd-panel-content.active .dd-chip:nth-child(2) { transition-delay: 0.92s; }
.dd-panel-content.active .dd-chip:nth-child(3) { transition-delay: 0.99s; }
.dd-panel-content.active .dd-chip:nth-child(4) { transition-delay: 1.06s; }
.dd-panel-content.active .dd-chip:nth-child(5) { transition-delay: 1.13s; }
.dd-panel-content.active .dd-chip:nth-child(6) { transition-delay: 1.20s; }
.dd-chip:hover {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  transform: translateY(-2px);
}

/* ====== Mockup containers (replaces code windows) ====== */
.dd-mock {
  position: relative;
  align-self: center;
  justify-self: center;
  width: 100%;
  max-width: 320px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Animated phone frame (shared by iOS / Android / Flutter) */
.ph-frame {
  position: relative;
  width: 220px;
  aspect-ratio: 9 / 18;
  border-radius: 32px;
  background: linear-gradient(145deg, #1f1f2e, #07070d);
  padding: 8px;
  border: 1.5px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 30px 70px -20px rgba(0, 0, 0, 0.65),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  animation: ph-float 5s ease-in-out infinite;
  will-change: transform;
  z-index: 2;
}
@keyframes ph-float {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50%      { transform: rotate(-3deg) translateY(-8px); }
}
.dd-mock:hover .ph-frame { animation-play-state: paused; }

/* Notch / camera */
.ph-notch {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: 80px;
  height: 18px;
  background: #000;
  border-radius: 100px;
  z-index: 3;
}
.ph-camera {
  position: absolute;
  top: 16px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 8px;
  background: #000;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.06);
  z-index: 3;
}

/* Screen */
.ph-screen {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 24px;
  overflow: hidden;
  background: linear-gradient(180deg, #0a0a18, #06060d);
  display: flex;
  flex-direction: column;
}

/* Glow halo behind phone */
.ph-glow {
  position: absolute;
  inset: 10% 10% 10% 10%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(124, 92, 255, 0.4), transparent 60%);
  filter: blur(40px);
  z-index: 0;
  animation: glow-pulse 4s ease-in-out infinite;
}
.ph-glow.android { background: radial-gradient(circle, rgba(61, 220, 132, 0.4), transparent 60%); }
.ph-glow.flutter { background: radial-gradient(circle, rgba(84, 197, 248, 0.4), transparent 60%); }
@keyframes glow-pulse {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.08); }
}

/* ====== iPhone-style mockup ====== */
.phone-ios { z-index: 2; }

.iphone {
  position: relative;
  width: 240px;
  aspect-ratio: 9 / 19;
  animation: ph-float 5s ease-in-out infinite;
  will-change: transform;
}
.dd-mock:hover .iphone { animation-play-state: paused; }

/* Side hardware buttons (visual detail) */
.iphone-btn {
  position: absolute;
  background: linear-gradient(180deg, #2a2a35 0%, #1a1a24 50%, #0e0e16 100%);
  border-radius: 1px;
  z-index: 1;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    inset 0 -1px 0 rgba(0, 0, 0, 0.6);
}
.iphone-btn-power {
  right: -2px;
  top: 30%;
  width: 3px;
  height: 56px;
  border-radius: 0 2px 2px 0;
}
.iphone-btn-vol-up {
  left: -2px;
  top: 22%;
  width: 3px;
  height: 38px;
  border-radius: 2px 0 0 2px;
}
.iphone-btn-vol-down {
  left: -2px;
  top: calc(22% + 48px);
  width: 3px;
  height: 38px;
  border-radius: 2px 0 0 2px;
}
.iphone-btn-mute {
  left: -2px;
  top: 13%;
  width: 3px;
  height: 16px;
  border-radius: 2px 0 0 2px;
}

/* Outer body — titanium-style frame */
.iphone-body {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 38px;
  background:
    linear-gradient(155deg, #3d3d4a 0%, #1a1a25 30%, #0a0a14 70%, #2a2a36 100%);
  padding: 5px;
  box-shadow:
    /* outer drop shadow */
    0 40px 80px -20px rgba(0, 0, 0, 0.8),
    /* glossy edge highlight (top-left) */
    inset 1px 1px 0 rgba(255, 255, 255, 0.18),
    /* shadow edge (bottom-right) */
    inset -1px -1px 0 rgba(0, 0, 0, 0.6),
    /* subtle ring around the screen */
    inset 0 0 0 1.5px rgba(0, 0, 0, 0.4);
}
.iphone-body::before {
  /* Inner bezel ring (chrome-y stainless feel) */
  content: '';
  position: absolute;
  inset: 4px;
  border-radius: 33px;
  background: linear-gradient(160deg, #1a1a24, #050508 50%, #1a1a24);
  z-index: 0;
}

/* Screen */
.iphone-screen {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 32px;
  overflow: hidden;
  background:
    radial-gradient(ellipse 100% 60% at 50% 0%, #1a1a2c 0%, #0a0a14 50%),
    linear-gradient(180deg, #0a0a14, #050509);
  z-index: 2;
  display: flex;
  flex-direction: column;
}

/* Dynamic Island */
.iphone-island {
  position: absolute;
  top: 9px;
  left: 50%;
  transform: translateX(-50%);
  width: 88px;
  height: 26px;
  background: #000;
  border-radius: 100px;
  z-index: 4;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
.iphone-island::after {
  /* Tiny camera dot inside the island */
  content: '';
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, #1a3a4a 30%, #061018 70%);
  box-shadow: inset 0 0 1px rgba(0, 200, 255, 0.4);
}

/* Status bar */
.iphone-status {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 22px 4px;
  font-family: 'SF Pro Display', 'Inter', -apple-system, sans-serif;
}
.iphone-time {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.01em;
  font-feature-settings: "tnum";
}
.iphone-status-right {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #fff;
}
.iphone-signal {
  display: inline-flex;
  align-items: flex-end;
  gap: 1.2px;
  height: 10px;
}
.iphone-signal i {
  display: block;
  width: 2.2px;
  background: #fff;
  border-radius: 0.5px;
}
.iphone-signal i:nth-child(1) { height: 3px; }
.iphone-signal i:nth-child(2) { height: 5px; }
.iphone-signal i:nth-child(3) { height: 7px; }
.iphone-signal i:nth-child(4) { height: 9px; }
.iphone-wifi { display: inline-flex; align-items: center; }
.iphone-wifi svg { width: 14px; height: 10px; color: #fff; }
.iphone-battery {
  position: relative;
  width: 22px;
  height: 11px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: 3px;
  padding: 1px;
}
.iphone-battery::after {
  /* battery cap */
  content: '';
  position: absolute;
  top: 50%;
  right: -2.5px;
  transform: translateY(-50%);
  width: 1.5px;
  height: 4px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 0 1px 1px 0;
}
.iphone-battery i {
  display: block;
  width: 80%;
  height: 100%;
  background: #fff;
  border-radius: 1.5px;
}

/* Page nav (iOS large title pattern) */
.iphone-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 18px 0;
  position: relative;
  z-index: 2;
}
.iphone-nav-back {
  font-family: 'SF Pro Display', 'Inter', -apple-system, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #007aff;
  letter-spacing: -0.01em;
}
.iphone-nav-action {
  font-size: 14px;
  color: #007aff;
  letter-spacing: 0.06em;
  line-height: 1;
}

/* Body content */
.iphone-body-inner {
  position: relative;
  z-index: 2;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 8px 18px 0;
}

.iphone-large-title {
  font-family: 'SF Pro Display', 'Inter', -apple-system, sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.04em;
  margin: 0;
  line-height: 1.1;
}

/* Profile card */
.iphone-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.05);
  border: 0.5px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.iphone-avatar-wrap {
  position: relative;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
}
.iphone-avatar {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 30% 30%, #a0c4ff, #5a7fff 40%, #2a4fff 80%);
  box-shadow:
    inset -3px -3px 6px rgba(0, 0, 0, 0.2),
    inset 3px 3px 6px rgba(255, 255, 255, 0.2);
}
.iphone-avatar-ring {
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, #007aff, #00e5ff, #7c5cff, #007aff);
  z-index: 0;
  animation: iphone-ring-spin 4s linear infinite;
  filter: blur(2px);
  opacity: 0.7;
}
@keyframes iphone-ring-spin {
  to { transform: rotate(360deg); }
}
.iphone-avatar-info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.iphone-avatar-info strong {
  font-family: 'SF Pro Display', 'Inter', -apple-system, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  letter-spacing: -0.01em;
}
.iphone-avatar-info span {
  font-size: 11px;
  color: rgba(235, 235, 245, 0.6);
  letter-spacing: -0.01em;
}

/* Stats with vertical separators (very iOS) */
.iphone-stats {
  display: flex;
  align-items: center;
  padding: 12px 6px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.05);
  border: 0.5px solid rgba(255, 255, 255, 0.08);
}
.iphone-stat {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.iphone-stat b {
  font-family: 'SF Pro Display', 'Inter', -apple-system, sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.02em;
  line-height: 1;
}
.iphone-stat span {
  font-size: 9px;
  color: rgba(235, 235, 245, 0.55);
  letter-spacing: -0.005em;
}
.iphone-stat-sep {
  width: 0.5px;
  height: 22px;
  background: rgba(255, 255, 255, 0.12);
}

/* iOS button (system blue with proper iOS shadow) */
.iphone-btn-cta {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 18px;
  border-radius: 14px;
  background: linear-gradient(180deg, #0a8aff 0%, #0066d6 100%);
  color: #fff;
  font-family: 'SF Pro Display', 'Inter', -apple-system, sans-serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  border: none;
  cursor: pointer;
  overflow: hidden;
  box-shadow:
    0 6px 14px -4px rgba(0, 122, 255, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
  animation: iphone-btn-glow 2.4s ease-in-out infinite;
}
.iphone-btn-cta > span {
  position: relative;
  z-index: 2;
}
@keyframes iphone-btn-glow {
  0%, 100% { box-shadow: 0 6px 14px -4px rgba(0, 122, 255, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.25); }
  50%      { box-shadow: 0 10px 24px -4px rgba(0, 122, 255, 0.85), inset 0 1px 0 rgba(255, 255, 255, 0.4); }
}
.iphone-cta-ripple {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.4);
  transform: translate(-50%, -50%) scale(0);
  animation: ios-ripple 2.4s ease-out infinite;
  z-index: 1;
}
@keyframes ios-ripple {
  0%   { transform: translate(-50%, -50%) scale(0); opacity: 0.6; }
  60%  { transform: translate(-50%, -50%) scale(20); opacity: 0; }
  100% { transform: translate(-50%, -50%) scale(0); opacity: 0; }
}

/* Tag chips */
.iphone-tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.iphone-tags span {
  font-family: 'SF Pro Display', 'Inter', -apple-system, sans-serif;
  font-size: 10px;
  font-weight: 500;
  padding: 5px 10px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: -0.005em;
}

/* Home indicator (thin pill at bottom) */
.iphone-home {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  width: 36%;
  height: 4px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.85);
  z-index: 5;
}

/* ====== Android phone content ====== */
.md-status {
  display: flex;
  justify-content: space-between;
  padding: 26px 14px 6px;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}
.md-icons { letter-spacing: 0.15em; }

.md-appbar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 14px;
  background: linear-gradient(180deg, rgba(61, 220, 132, 0.15), rgba(31, 138, 79, 0.05));
  border-bottom: 1px solid rgba(61, 220, 132, 0.2);
}
.md-back { font-size: 14px; color: #fff; }
.md-title { flex: 1; font-size: 12px; font-weight: 600; color: #fff; letter-spacing: -0.01em; }
.md-more { font-size: 14px; color: #fff; }

.md-body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 12px; position: relative; }

.md-card {
  padding: 12px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(61, 220, 132, 0.15), rgba(0, 0, 0, 0.2));
  border: 1px solid rgba(61, 220, 132, 0.2);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.md-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #3ddc84, #1f8a4f);
  margin-bottom: 4px;
  animation: md-avatar-pulse 3s ease-in-out infinite;
}
@keyframes md-avatar-pulse {
  0%, 100% { box-shadow: 0 0 12px rgba(61, 220, 132, 0.5); }
  50%      { box-shadow: 0 0 24px rgba(61, 220, 132, 0.9); }
}
.md-name { font-size: 11px; font-weight: 600; color: #fff; }
.md-handle { font-size: 9px; color: rgba(255, 255, 255, 0.5); }
.md-chips { display: flex; gap: 4px; margin-top: 4px; }
.md-chips span {
  padding: 2px 7px;
  border-radius: 100px;
  background: rgba(61, 220, 132, 0.18);
  color: #6deeb0;
  font-size: 7px;
  letter-spacing: 0.04em;
}

.md-list { display: flex; flex-direction: column; gap: 6px; }
.md-li {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  font-size: 9px;
  color: rgba(255, 255, 255, 0.8);
}
.md-li em {
  font-style: normal;
  margin-left: auto;
  color: #6deeb0;
  font-weight: 700;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
}
.md-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, #3ddc84, #1f8a4f);
  flex-shrink: 0;
}

.md-fab {
  position: absolute;
  right: 12px;
  bottom: 56px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, #3ddc84, #1f8a4f);
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  box-shadow: 0 8px 20px -4px rgba(61, 220, 132, 0.6);
  animation: md-fab-bob 3s ease-in-out infinite;
}
@keyframes md-fab-bob {
  0%, 100% { transform: translateY(0) scale(1); }
  50%      { transform: translateY(-3px) scale(1.06); }
}

.md-nav {
  display: flex;
  justify-content: space-around;
  padding: 8px 16px 12px;
  background: rgba(0, 0, 0, 0.3);
  border-top: 1px solid rgba(61, 220, 132, 0.15);
}
.md-nav span { font-size: 12px; color: rgba(255, 255, 255, 0.35); }
.md-nav .active { color: #6deeb0; }

/* ====== React Native dual phones ====== */
.dd-rn {
  flex-direction: column;
  gap: 16px;
  padding: 12px 0;
}
.rn-pair {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
}
.rn-mini {
  width: 110px;
  aspect-ratio: 9 / 18;
  border-radius: 18px;
  padding: 4px;
  animation: rn-bob 4s ease-in-out infinite;
}
.ios-mini { animation-delay: 0s; }
.android-mini { animation-delay: -1s; }
@keyframes rn-bob {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50%      { transform: translateY(-6px) rotate(2deg); }
}

.rn-bar {
  text-align: center;
  font-size: 7px;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 4px 0 5px;
  background: rgba(0, 0, 0, 0.4);
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
  border-radius: 14px 14px 0 0;
}
.ios-mini .rn-bar { color: #00e5ff; }
.android-mini .rn-bar { color: #6deeb0; }

.rn-screen {
  width: 100%;
  height: calc(100% - 22px);
  border-radius: 0 0 14px 14px;
  background: linear-gradient(180deg, #0a0a18, #06060d);
  padding: 12px 8px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.rn-block {
  height: 8px;
  border-radius: 3px;
  background: rgba(255, 255, 255, 0.08);
}
.rn-block-1 {
  height: 24px;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  opacity: 0.7;
  animation: rn-shimmer 2.5s ease-in-out infinite;
}
.rn-block-2 { width: 70%; }
.rn-block-3 { width: 50%; }
.rn-cta {
  margin-top: auto;
  padding: 5px 8px;
  border-radius: 100px;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  color: #fff;
  font-size: 7px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.04em;
  box-shadow: 0 4px 8px -2px rgba(124, 92, 255, 0.5);
}
@keyframes rn-shimmer {
  0%, 100% { opacity: 0.6; }
  50%      { opacity: 0.95; }
}

.rn-sync {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 14px;
  background: rgba(7, 7, 13, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(10px);
  overflow: hidden;
}
.rn-sync-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: linear-gradient(135deg, #ffd93d, #ff8b3d);
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 13px;
  flex-shrink: 0;
  animation: rn-bolt 0.8s ease-in-out infinite alternate;
}
@keyframes rn-bolt {
  from { transform: scale(1); }
  to   { transform: scale(1.1); }
}
.rn-sync-text { display: flex; flex-direction: column; gap: 1px; }
.rn-sync-text strong { font-size: 11px; font-weight: 600; color: #fff; }
.rn-sync-text span { font-size: 9px; color: rgba(255, 255, 255, 0.5); }
.rn-sync-pulse {
  position: absolute;
  top: 50%;
  right: 14px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 12px #00ff88;
  transform: translateY(-50%);
  animation: blink 1.4s ease-in-out infinite;
}

/* ====== Flutter phone content ====== */
.flutter-bg { background: linear-gradient(180deg, #02325d, #0a1929); }
.fl-status {
  display: flex;
  justify-content: space-between;
  padding: 28px 14px 8px;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}

.fl-hero {
  position: relative;
  margin: 0 12px 10px;
  padding: 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(84, 197, 248, 0.25), rgba(1, 117, 194, 0.15));
  border: 1px solid rgba(84, 197, 248, 0.2);
  overflow: hidden;
}
.fl-hero-blob {
  position: absolute;
  top: -10px;
  right: -10px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: radial-gradient(circle, #54c5f8, #0175c2);
  filter: blur(8px);
  animation: fl-blob 4s ease-in-out infinite;
}
@keyframes fl-blob {
  0%, 100% { transform: scale(1) translate(0, 0); }
  50%      { transform: scale(1.2) translate(-4px, 4px); }
}
.fl-hero-title {
  position: relative;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.02em;
}
.fl-hero-sub {
  position: relative;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.65);
  margin-top: 2px;
}

.fl-tree {
  margin: 0 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.fl-node {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 5px 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(84, 197, 248, 0.12);
  font-family: 'Space Grotesk', monospace;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.85);
  opacity: 0;
  animation: fl-node-in 4s ease-in-out infinite;
}
.fl-node.indent { margin-left: 10px; font-size: 8px; }
.fl-node span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: linear-gradient(135deg, #54c5f8, #0175c2);
  flex-shrink: 0;
}
.fl-1 { animation-delay: 0s; }
.fl-2 { animation-delay: 0.2s; }
.fl-3 { animation-delay: 0.4s; }
.fl-4 { animation-delay: 0.6s; }
@keyframes fl-node-in {
  0%      { opacity: 0; transform: translateX(-6px); }
  20%     { opacity: 1; transform: translateX(0); }
  85%     { opacity: 1; transform: translateX(0); }
  95%     { opacity: 0; transform: translateX(6px); }
  100%    { opacity: 0; }
}

.fl-fab {
  position: absolute;
  right: 16px;
  bottom: 18px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, #54c5f8, #0175c2);
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 14px;
  box-shadow: 0 8px 16px -4px rgba(84, 197, 248, 0.6);
}
.fl-fab span { position: relative; z-index: 1; }
.fl-fab-ripple {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(84, 197, 248, 0.5);
  animation: fl-ripple 2s ease-out infinite;
}
@keyframes fl-ripple {
  0%   { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(2); opacity: 0; }
}

/* ====== Laptop mockups (Web Development) ====== */
.dd-laptop {
  flex-direction: column;
  width: 100%;
  max-width: 400px;
}
.dd-laptop .lp-screen {
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(145deg, #1f1f2e, #07070d);
  border-radius: 12px 12px 4px 4px;
  padding: 8px 8px 10px;
  border: 1.5px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.6);
  transform: perspective(1200px) rotateX(2deg);
  animation: lp-float 5s ease-in-out infinite;
}
@keyframes lp-float {
  0%, 100% { transform: perspective(1200px) rotateX(2deg) translateY(0); }
  50%      { transform: perspective(1200px) rotateX(2deg) translateY(-6px); }
}

.lp-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 8px;
  background: linear-gradient(180deg, #2a2a3a, #1f1f2e);
  border-radius: 6px 6px 0 0;
  margin-bottom: 0;
}
.lp-dots { display: flex; gap: 4px; }
.lp-dots span { width: 7px; height: 7px; border-radius: 50%; }
.lp-dots span:nth-child(1) { background: #ff5f57; }
.lp-dots span:nth-child(2) { background: #febc2e; }
.lp-dots span:nth-child(3) { background: #28c840; }
.lp-url {
  flex: 1;
  text-align: center;
  padding: 3px 10px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.06);
  font-family: 'Space Grotesk', monospace;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.6);
  max-width: 200px;
  margin: 0 auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.lp-page {
  position: relative;
  width: 100%;
  height: calc(100% - 28px);
  background: #0a0a18;
  border-radius: 0 0 4px 4px;
  overflow: hidden;
  padding: 10px;
  display: flex;
  flex-direction: column;
}

/* Landing page mockup */
.lp-landing { gap: 8px; }
.lp-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 6px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.lp-logo {
  width: 40px;
  height: 10px;
  border-radius: 2px;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
}
.lp-nav-links { display: flex; gap: 6px; flex: 1; justify-content: center; }
.lp-nav-links span {
  width: 24px;
  height: 4px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.15);
}
.lp-nav-cta {
  padding: 3px 10px;
  border-radius: 100px;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  color: #fff;
  font-size: 7px;
  font-weight: 600;
}

.lp-hero-block {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  text-align: center;
  padding: 8px 0;
}
.lp-h-eyebrow {
  width: 50px;
  height: 4px;
  border-radius: 2px;
  background: rgba(0, 229, 255, 0.6);
  animation: lp-fade-in 5s ease-in-out infinite;
}
.lp-h-title {
  width: 80%;
  height: 12px;
  border-radius: 3px;
  background: linear-gradient(90deg, #fff, rgba(255, 255, 255, 0.4));
  animation: lp-fade-in 5s ease-in-out infinite;
  animation-delay: 0.2s;
}
.lp-h-title.short {
  width: 60%;
  background: linear-gradient(90deg, #7c5cff, #00e5ff);
  animation-delay: 0.4s;
}
.lp-h-sub {
  width: 70%;
  height: 4px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.2);
  animation: lp-fade-in 5s ease-in-out infinite;
  animation-delay: 0.6s;
}
.lp-h-cta {
  margin-top: 4px;
  padding: 5px 14px;
  border-radius: 100px;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  color: #fff;
  font-size: 8px;
  font-weight: 600;
  box-shadow: 0 4px 10px -2px rgba(124, 92, 255, 0.5);
  animation: lp-fade-in 5s ease-in-out infinite;
  animation-delay: 0.8s;
}
@keyframes lp-fade-in {
  0%, 100% { opacity: 0.4; transform: translateY(2px); }
  20%, 80% { opacity: 1; transform: translateY(0); }
}

.lp-features-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}
.lp-feat {
  height: 24px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.05);
  position: relative;
}
.lp-feat-ic {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  border-radius: 3px;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  opacity: 0.7;
}

/* SaaS dashboard mockup */
.lp-saas {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 6px;
  padding: 6px;
}
.lp-side {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 6px 4px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 4px;
}
.lp-side-item {
  height: 6px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.1);
}
.lp-side-item.active {
  background: linear-gradient(90deg, #7c5cff, #00e5ff);
  box-shadow: 0 0 6px rgba(124, 92, 255, 0.6);
}
.lp-main {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.lp-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4px;
}
.lp-stat {
  padding: 5px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.04);
}
.lp-stat-l {
  width: 60%;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.2);
  margin-bottom: 3px;
}
.lp-stat-v {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 700;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
}
.lp-stat-d {
  font-size: 6px;
  color: #00ff88;
  margin-top: 1px;
  font-weight: 600;
}
.lp-chart {
  flex: 1;
  display: flex;
  align-items: flex-end;
  gap: 3px;
  padding: 5px 6px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.04);
  min-height: 36px;
}
.lp-chart span {
  flex: 1;
  height: var(--h, 50%);
  border-radius: 2px 2px 0 0;
  background: linear-gradient(180deg, #7c5cff, #00e5ff);
  opacity: 0.85;
  transform-origin: bottom;
  animation: lp-chart-grow 2.4s ease-in-out infinite;
}
.lp-chart span:nth-child(1) { animation-delay: -0.0s; }
.lp-chart span:nth-child(2) { animation-delay: -0.2s; }
.lp-chart span:nth-child(3) { animation-delay: -0.4s; }
.lp-chart span:nth-child(4) { animation-delay: -0.6s; }
.lp-chart span:nth-child(5) { animation-delay: -0.8s; }
.lp-chart span:nth-child(6) { animation-delay: -1.0s; }
.lp-chart span:nth-child(7) { animation-delay: -1.2s; }
@keyframes lp-chart-grow {
  0%, 100% { transform: scaleY(0.85); }
  50%      { transform: scaleY(1); }
}

/* E-commerce mockup */
.lp-ecom { gap: 6px; }
.lp-shop-bar {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-bottom: 5px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.lp-search-bar {
  flex: 1;
  height: 6px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.08);
}
.lp-cart {
  position: relative;
  font-size: 11px;
  flex-shrink: 0;
  color: #fff;
}
.lp-cart-badge {
  position: absolute;
  top: -4px;
  right: -6px;
  background: #ff4ecd;
  color: #fff;
  font-size: 6px;
  font-weight: 700;
  padding: 1px 4px;
  border-radius: 100px;
}

.lp-banner {
  padding: 5px 10px;
  border-radius: 4px;
  background: linear-gradient(135deg, #ff4ecd, #ff8b3d);
  color: #fff;
  font-size: 8px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.06em;
  box-shadow: 0 4px 8px -2px rgba(255, 78, 205, 0.4);
}

.lp-products {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  flex: 1;
}
.lp-prod {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.lp-prod-img {
  flex: 1;
  border-radius: 3px;
  min-height: 30px;
  position: relative;
  overflow: hidden;
  animation: lp-prod-shimmer 3s ease-in-out infinite;
}
.lp-prod-img.p1 { background: linear-gradient(135deg, #ff4ecd, #7c5cff); }
.lp-prod-img.p2 { background: linear-gradient(135deg, #ff8b3d, #ffd93d); }
.lp-prod-img.p3 { background: linear-gradient(135deg, #00e5ff, #7c5cff); }
.lp-prod-img.p4 { background: linear-gradient(135deg, #00ff88, #00e5ff); }
@keyframes lp-prod-shimmer {
  0%, 100% { opacity: 0.85; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.02); }
}
.lp-prod-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.lp-prod-name {
  width: 60%;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.3);
}
.lp-prod-price {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 7px;
  font-weight: 700;
  color: #00e5ff;
}

/* Laptop base */
.dd-laptop .lp-base {
  position: relative;
  width: 110%;
  margin-left: -5%;
  height: 8px;
  background: linear-gradient(180deg, #2a2a36 0%, #1a1a24 60%, #0a0a14 100%);
  border-radius: 0 0 10px 10px;
}
.dd-laptop .lp-base::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background: #07070d;
  border-radius: 0 0 6px 6px;
}
.dd-laptop .lp-shadow {
  margin: 4px 6% 0;
  height: 12px;
  background: radial-gradient(ellipse, rgba(0, 0, 0, 0.4), transparent 70%);
  filter: blur(6px);
}

/* ====== API / Server flow visualization ====== */
.dd-api {
  flex-direction: column;
  gap: 18px;
  padding: 20px 0;
}
.api-stage {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 100%;
}
.api-node {
  position: relative;
  width: 70px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  z-index: 2;
}
.api-node-ic {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.2), rgba(0, 229, 255, 0.1));
  border: 1px solid rgba(124, 92, 255, 0.4);
  box-shadow: 0 0 20px rgba(124, 92, 255, 0.3);
  animation: api-node-glow 3s ease-in-out infinite;
}
.api-node-ic svg { width: 24px; height: 24px; }
.api-client .api-node-ic { animation-delay: 0s; }
.api-server .api-node-ic {
  background: linear-gradient(135deg, rgba(0, 229, 255, 0.3), rgba(0, 255, 136, 0.15));
  border-color: rgba(0, 229, 255, 0.5);
  box-shadow: 0 0 20px rgba(0, 229, 255, 0.4);
  animation-delay: -1s;
}
.api-db .api-node-ic {
  background: linear-gradient(135deg, rgba(255, 78, 205, 0.25), rgba(255, 139, 61, 0.1));
  border-color: rgba(255, 78, 205, 0.4);
  box-shadow: 0 0 20px rgba(255, 78, 205, 0.3);
  animation-delay: -2s;
}
@keyframes api-node-glow {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.06); }
}
.api-node span {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.02em;
}
.api-status {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border-radius: 100px;
  background: rgba(0, 255, 136, 0.12);
  border: 1px solid rgba(0, 255, 136, 0.3);
  font-size: 8px;
  font-weight: 600;
  color: #6deeb0;
  letter-spacing: 0.04em;
}
.api-pulse {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 6px #00ff88;
  animation: blink 1.4s ease-in-out infinite;
}

/* Animated request/response packets traveling along the lane */
.api-lane {
  position: relative;
  flex: 1;
  height: 48px;
  display: flex;
  align-items: center;
  margin: 0 -6px;
  z-index: 1;
}
.api-line {
  width: 100%;
  height: 1.5px;
  background: linear-gradient(90deg,
    rgba(124, 92, 255, 0.4) 0%,
    rgba(0, 229, 255, 0.5) 50%,
    rgba(255, 78, 205, 0.4) 100%);
  position: relative;
}
.api-line::after {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 30%;
  height: 4px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.7), transparent);
  border-radius: 2px;
  animation: api-pulse-line 2s linear infinite;
}
@keyframes api-pulse-line {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(330%); }
}

.api-pkt {
  position: absolute;
  top: 50%;
  font-family: 'Space Grotesk', monospace;
  font-size: 9px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 100px;
  white-space: nowrap;
  transform: translateY(-50%);
  box-shadow: 0 4px 12px -2px rgba(0, 0, 0, 0.3);
}
.api-req {
  left: 0;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  color: #fff;
  animation: api-pkt-fwd 4s ease-in-out infinite;
}
.api-res {
  right: 0;
  background: linear-gradient(135deg, #00e5ff, #00ff88);
  color: #fff;
  animation: api-pkt-back 4s ease-in-out infinite;
  animation-delay: -2s;
}
@keyframes api-pkt-fwd {
  0%   { left: 0%; opacity: 0; }
  10%  { opacity: 1; }
  45%  { left: calc(100% - 100px); opacity: 1; }
  50%  { opacity: 0; }
  100% { opacity: 0; }
}
@keyframes api-pkt-back {
  0%   { right: 0%; opacity: 0; }
  10%  { opacity: 1; }
  45%  { right: calc(100% - 110px); opacity: 1; }
  50%  { opacity: 0; }
  100% { opacity: 0; }
}

.api-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  width: 100%;
  margin-top: 8px;
}
.api-stat {
  text-align: center;
  padding: 12px 8px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
}
.api-stat-v {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.02em;
  line-height: 1;
}
.api-stat-v em {
  font-style: normal;
  font-size: 13px;
  margin-left: 2px;
}
.api-stat-l {
  font-size: 9px;
  color: var(--text-muted);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 4px;
}

/* On smaller screens, stack API flow */
@media (max-width: 720px) {
  .api-stage {
    flex-direction: column;
    gap: 12px;
  }
  .api-lane {
    width: 4px;
    height: 40px;
    margin: 0;
  }
  .api-line { width: 1.5px; height: 100%; background: linear-gradient(180deg, rgba(124, 92, 255, 0.4), rgba(0, 229, 255, 0.5), rgba(255, 78, 205, 0.4)); }
  .api-pkt { font-size: 8px; padding: 3px 8px; }
}

/* ====== Code window (legacy — kept for safety, no longer used) ====== */
.dd-code-window {
  align-self: start;
  border-radius: 12px;
  background: linear-gradient(180deg, #0d0d18, #06060d);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 18px 40px -12px rgba(0, 0, 0, 0.5);
  overflow: hidden;
  font-family: 'Space Grotesk', monospace;
}
.dd-code-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 14px;
  background: rgba(0, 0, 0, 0.4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.dd-code-dots {
  display: flex;
  gap: 5px;
}
.dd-code-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}
.dd-code-dots span:nth-child(1) { background: #ff5f57; }
.dd-code-dots span:nth-child(2) { background: #febc2e; }
.dd-code-dots span:nth-child(3) { background: #28c840; }
.dd-code-tab {
  font-family: 'Space Grotesk', monospace;
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  padding: 3px 10px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

/* Code body */
.dd-code {
  margin: 0;
  padding: 18px 18px 22px;
  font-family: 'Space Grotesk', monospace;
  font-size: 12.5px;
  line-height: 1.7;
  color: #d8d8e8;
  white-space: pre;
  overflow-x: auto;
  background: transparent;
}
.dd-code .kw  { color: #ff7eb6; font-weight: 600; }
.dd-code .cls { color: #82aaff; }
.dd-code .at  { color: #ffd93d; }
.dd-code .str { color: #c3e88d; }
.dd-code .num { color: #ffb13d; }
.dd-code .tag { color: #ff7eb6; }
.dd-code .cmt { color: #6b7588; font-style: italic; }

/* Stagger reveal each code line as panel activates */
.dd-code code {
  display: inline-block;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.5s var(--ease), transform 0.5s var(--ease);
  transition-delay: 0.3s;
}
.dd-panel-content.active .dd-code code {
  opacity: 1;
  transform: translateY(0);
}

/* Web doc section variant — slightly different orb tint */
.dev-doc-web::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 40% at 50% 30%, rgba(0, 229, 255, 0.06), transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.dev-doc-web .container { position: relative; z-index: 1; }

/* ============ HERO VISUAL (legacy code editor styles — kept for safety, no longer used) ============ */
.hero-visual {
  position: relative;
  perspective: 1600px;
  min-height: 460px;
  --mx: 0;
  --my: 0;
}
.visual-stack {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
  /* Combine baseline float with mouse tilt via CSS variables */
  transform:
    rotateY(calc(-6deg + var(--mx) * 8deg))
    rotateX(calc(4deg + var(--my) * -6deg));
  transition: transform 0.4s var(--ease);
  animation: stack-float 6s ease-in-out infinite;
  will-change: transform;
}
@keyframes stack-float {
  0%, 100% { translate: 0 0; }
  50%      { translate: 0 -12px; }
}

/* Live status pill (top-right of stack) */
.visual-status {
  position: absolute;
  top: -18px;
  right: 0;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  border-radius: 100px;
  background: rgba(7, 7, 13, 0.85);
  border: 1px solid var(--border-2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text);
  transform: translateZ(80px);
  box-shadow: 0 6px 20px -8px rgba(124, 92, 255, 0.5);
}
[data-theme="light"] .visual-status {
  background: rgba(255, 255, 255, 0.9);
}
.visual-status .status-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 10px #00ff88;
  animation: blink 1.4s ease-in-out infinite;
}
.visual-status.building .status-dot {
  background: #ffb13d;
  box-shadow: 0 0 10px #ffb13d;
}
.visual-status .status-text {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* Decorative connector between code & preview */
.connector {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 0;
  opacity: 0.5;
  animation: dash 8s linear infinite;
}
@keyframes dash {
  to { stroke-dashoffset: -50; }
}

.code-window,
.browser-window {
  position: absolute;
  border-radius: 14px;
  background: rgba(12, 12, 24, 0.85);
  border: 1px solid var(--border-2);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow:
    0 30px 80px -20px rgba(0, 0, 0, 0.6),
    0 0 60px -20px rgba(124, 92, 255, 0.4);
  overflow: hidden;
}

.code-window {
  top: 0;
  left: 0;
  width: 78%;
  z-index: 2;
  transform: translateZ(40px);
}
.browser-window {
  bottom: 0;
  right: 0;
  width: 70%;
  z-index: 1;
  transform: translateZ(0) translateY(40%);
  background: linear-gradient(180deg, rgba(20, 20, 40, 0.9), rgba(8, 8, 16, 0.95));
}

.window-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.window-dots {
  display: flex;
  gap: 6px;
}
.window-dots span {
  width: 11px;
  height: 11px;
  border-radius: 50%;
}
.window-dots span:nth-child(1) { background: #ff5f57; }
.window-dots span:nth-child(2) { background: #febc2e; }
.window-dots span:nth-child(3) { background: #28c840; }
.window-tab,
.window-url {
  font-family: 'Space Grotesk', monospace;
  font-size: 11px;
  color: var(--text-muted);
  padding: 4px 12px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.window-url::before {
  content: '🔒 ';
  opacity: 0.6;
}

/* Code block */
.code-block {
  margin: 0;
  padding: 18px 18px 22px;
  font-family: 'Space Grotesk', 'JetBrains Mono', monospace;
  font-size: 13px;
  line-height: 1.7;
  color: #d8d8e8;
  white-space: pre;
  overflow: hidden;
}
.code-block .ln {
  display: inline-block;
  width: 18px;
  color: var(--text-muted);
  opacity: 0.5;
  margin-right: 4px;
  user-select: none;
}
.code-block .tag  { color: #ff7eb6; }
.code-block .attr { color: #82aaff; }
.code-block .str  { color: #c3e88d; }
.code-block .key  {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 600;
}
.code-block .text { color: #e6e6f0; }
.code-block .caret {
  display: inline-block;
  width: 7px;
  height: 14px;
  background: var(--accent-2);
  margin-left: 2px;
  vertical-align: text-bottom;
  animation: blink-caret 1s steps(1) infinite;
  box-shadow: 0 0 8px var(--accent-2);
}
@keyframes blink-caret {
  50% { opacity: 0; }
}

/* Browser body */
.browser-body {
  padding: 24px 24px 28px;
  position: relative;
  min-height: 180px;
  transition: opacity 0.35s var(--ease), filter 0.35s var(--ease);
}
.browser-body.swapping {
  opacity: 0;
  filter: blur(8px);
}
/* Stagger reveal for elements as they appear */
.browser-body > * {
  animation: bp-rise 0.55s var(--ease-out) both;
}
.browser-body > *:nth-child(1) { animation-delay: 0.05s; }
.browser-body > *:nth-child(2) { animation-delay: 0.15s; }
.browser-body > *:nth-child(3) { animation-delay: 0.25s; }
.browser-body > *:nth-child(4) { animation-delay: 0.35s; }
@keyframes bp-rise {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Code block typing caret stays anchored */
.code-block {
  min-height: 220px;
  position: relative;
}
.code-block #codeOutput {
  display: inline;
}
.bp-tag {
  display: inline-block;
  font-size: 9px;
  letter-spacing: 0.2em;
  color: var(--accent-2);
  padding: 4px 8px;
  border-radius: 100px;
  background: rgba(0, 229, 255, 0.1);
  border: 1px solid rgba(0, 229, 255, 0.25);
  margin-bottom: 10px;
}
.bp-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 14px;
}
.bp-cta {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  padding: 8px 14px;
  border-radius: 100px;
  background: var(--gradient);
  color: #fff;
  margin-bottom: 16px;
  box-shadow: 0 8px 24px -8px rgba(124, 92, 255, 0.6);
  animation: cta-pulse 2.5s ease-in-out infinite;
}
@keyframes cta-pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.04); }
}
.bp-stats {
  display: flex;
  gap: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}
.bp-stats > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bp-stats b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
}
.bp-stats span {
  font-size: 9px;
  color: var(--text-muted);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Demo 2 — card grid preview */
.bp-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 12px;
}
.bp-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 14px 6px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.18), rgba(0, 229, 255, 0.08));
  border: 1px solid rgba(255, 255, 255, 0.08);
  transition: transform 0.3s var(--ease);
}
.bp-card span {
  font-size: 18px;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.bp-card b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.bp-meta {
  font-size: 10px;
  color: var(--text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* Demo 3 — interactive button preview */
.bp-title.small { font-size: 16px; margin-bottom: 12px; }
.bp-buttons {
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
.bp-btn {
  display: inline-flex;
  align-items: center;
  padding: 10px 18px;
  border-radius: 100px;
  background: var(--gradient);
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  box-shadow: 0 10px 30px -8px rgba(124, 92, 255, 0.6);
}
.bp-btn.pulse { animation: btn-pulse 2s ease-in-out infinite; }
@keyframes btn-pulse {
  0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 8px 20px -6px rgba(124, 92, 255, 0.5); }
  50%      { transform: translateY(-3px) scale(1.04); box-shadow: 0 18px 40px -8px rgba(124, 92, 255, 0.8); }
}

@media (max-width: 980px) {
  .hero-visual { min-height: 360px; max-width: 520px; margin: 0 auto; width: 100%; }
}
@media (max-width: 520px) {
  .hero-visual { min-height: 320px; }
  .code-block { font-size: 11px; padding: 14px; }
  .bp-title { font-size: 18px; }
}

/* Floating accent chips (business-friendly) */
.float {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 600;
  font-size: 13px;
  padding: 9px 14px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border-2);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  color: var(--text);
  z-index: 1;
  animation: float-y 6s ease-in-out infinite;
  will-change: transform;
  letter-spacing: -0.01em;
}
.float .float-ic {
  font-size: 14px;
  line-height: 1;
}
.float-1 { top: 14%; right: 46%; animation-delay: 0s; }
.float-1 .float-ic { color: #ffd93d; text-shadow: 0 0 8px rgba(255, 217, 61, 0.6); }
.float-2 { top: 22%; right: 4%; animation-delay: -2s; }
.float-2 .float-ic { color: #ffb13d; text-shadow: 0 0 8px rgba(255, 177, 61, 0.5); }
.float-3 { bottom: 18%; right: 48%; animation-delay: -4s; }
.float-3 .float-ic { color: #ff4ecd; text-shadow: 0 0 8px rgba(255, 78, 205, 0.5); }
.float-4 { bottom: 14%; right: 6%; animation-delay: -3s; }
.float-4 .float-ic { color: #00ff88; text-shadow: 0 0 8px rgba(0, 255, 136, 0.5); }
@keyframes float-y {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50%      { transform: translateY(-20px) rotate(2deg); }
}
@media (max-width: 820px) {
  .float { font-size: 14px; padding: 8px 12px; }
  .float-1 { top: 8%; left: 4%; }
  .float-2 { top: 12%; right: 4%; }
  .float-3 { bottom: 18%; left: 4%; }
  .float-4 { bottom: 22%; right: 4%; }
}

/* ============ SECTIONS (shared) ============ */
.section {
  position: relative;
  padding: 90px 0;
}
@media (max-width: 720px) {
  .section { padding: 60px 0; }
}
.section-head {
  max-width: 760px;
  margin: 0 auto 80px;
  text-align: center;
}
.eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent-2);
  padding: 6px 14px;
  border-radius: 100px;
  background: rgba(0, 229, 255, 0.08);
  border: 1px solid rgba(0, 229, 255, 0.2);
  margin-bottom: 20px;
}
.eyebrow.light {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
}
.section-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin-bottom: 20px;
}
.section-sub {
  color: var(--text-dim);
  font-size: 1.05rem;
  max-width: 580px;
  margin: 0 auto;
}

/* ============ SERVICES (sticky split layout) ============ */
.services .section-head { display: none; } /* old centered head replaced by sticky col */

.services-layout {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 80px;
}
/* heading on the LEFT (sticky), cards on the RIGHT (scrolling) */
.services-head-col  { min-width: 0; order: 1; height: 100%; }
.services-cards-col { min-width: 0; order: 2; }

.services-head-sticky {
  position: sticky;
  top: 120px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 8px 0;
}

.services-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  position: relative;
}
.eyebrow-pulse {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent-2);
  box-shadow: 0 0 10px var(--accent-2);
  animation: eb-pulse 1.6s ease-in-out infinite;
}
@keyframes eb-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.6); opacity: 0.5; }
}

.services-title {
  font-size: clamp(2.2rem, 4.6vw, 3.8rem);
  text-align: left;
  margin: 0;
  line-height: 1.05;
}
.services-sub {
  text-align: left;
  margin: 0;
  max-width: 480px;
  font-size: 1.05rem;
}

/* Framer-motion-style word reveal */
.text-anim .ta-line {
  display: block;
  overflow: hidden;
  padding-bottom: 4px;
}
.text-anim .ta-word {
  display: inline-block;
  transform: translateY(110%);
  opacity: 0;
  transition: transform 0.9s var(--ease-out), opacity 0.9s var(--ease-out);
}
.text-anim.in-view .ta-word { transform: translateY(0); opacity: 1; }
.text-anim.in-view .ta-line:nth-child(1) .ta-word              { transition-delay: 0.05s; }
.text-anim.in-view .ta-line:nth-child(2) .ta-word:nth-child(1) { transition-delay: 0.18s; }
.text-anim.in-view .ta-line:nth-child(2) .ta-word:nth-child(2) { transition-delay: 0.28s; }
.text-anim.in-view .ta-line:nth-child(3) .ta-word:nth-child(1) { transition-delay: 0.40s; }
.text-anim.in-view .ta-line:nth-child(3) .ta-word:nth-child(2) { transition-delay: 0.50s; }
.text-anim.in-view .ta-line:nth-child(4) .ta-word              { transition-delay: 0.62s; }

/* Continuous shine sweep on gradient words */
.shine {
  position: relative;
  background: linear-gradient(90deg, #7c5cff 0%, #00e5ff 30%, #ffffff 50%, #00e5ff 70%, #ff4ecd 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shine-sweep 4s linear infinite;
}
@keyframes shine-sweep {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* Progress indicator */
.services-progress {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 12px;
  font-family: 'Space Grotesk', sans-serif;
}
.progress-num {
  font-size: 28px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  min-width: 38px;
  letter-spacing: -0.02em;
  transition: transform 0.4s var(--ease);
}
.progress-num.bump {
  animation: numBump 0.5s var(--ease);
}
@keyframes numBump {
  0%   { transform: translateY(0); }
  40%  { transform: translateY(-6px); }
  100% { transform: translateY(0); }
}
.progress-bar {
  flex: 1;
  height: 3px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
  max-width: 240px;
}
.progress-fill {
  height: 100%;
  width: 16.66%;
  background: var(--gradient);
  border-radius: 100px;
  transition: width 0.6s var(--ease);
  box-shadow: 0 0 12px rgba(124, 92, 255, 0.6);
}
.progress-total {
  font-size: 14px;
  color: var(--text-muted);
  font-weight: 500;
}

/* Inline CTA */
.services-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  align-self: flex-start;
  margin-top: 8px;
  padding: 14px 22px;
  border-radius: 100px;
  font-size: 14px;
  font-weight: 600;
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
  backdrop-filter: blur(10px);
  transition: all 0.3s var(--ease);
}
.services-cta svg { width: 16px; height: 16px; transition: transform 0.3s var(--ease); }
.services-cta:hover {
  background: var(--gradient);
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow: 0 12px 30px -8px rgba(124, 92, 255, 0.6);
}
.services-cta:hover svg { transform: translateX(4px); }

/* Cards now stack vertically in single column */
.cards {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.services-cards-col .card {
  padding: 32px 28px;
}
.services-cards-col .card h3 {
  font-size: 1.4rem;
}
.services-cards-col .card-num {
  font-size: 13px;
  top: 22px;
  right: 24px;
}
.services-cards-col .card-icon {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  margin-bottom: 22px;
}
.services-cards-col .card-icon svg { width: 22px; height: 22px; }
.services-cards-col .card p { margin-bottom: 18px; }

/* Mobile */
@media (max-width: 980px) {
  .services-layout {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .services-head-col { order: -1; }
  .services-head-sticky { position: static; }
  .services-title, .services-sub { text-align: center; }
  .services-eyebrow,
  .services-cta,
  .services-progress { align-self: center; }
}

.card {
  position: relative;
  padding: 40px 32px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease), background 0.5s var(--ease);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
.card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gradient-soft);
  opacity: 0;
  transition: opacity 0.5s var(--ease);
  pointer-events: none;
}
.card:hover {
  transform: translateY(-8px);
  border-color: var(--border-2);
  background: var(--surface-2);
}
.card:hover::before { opacity: 1; }

.card-glow {
  position: absolute;
  top: 0;
  left: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(124, 92, 255, 0.4), transparent 70%);
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0;
  transition: opacity 0.5s var(--ease);
  pointer-events: none;
  transform: translate(-50%, -50%);
}
.card:hover .card-glow { opacity: 1; }

.card-num {
  position: absolute;
  top: 24px;
  right: 28px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text-muted);
  letter-spacing: 0.1em;
}
.card-icon {
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: var(--gradient);
  display: grid;
  place-items: center;
  margin-bottom: 28px;
  color: #fff;
  box-shadow: 0 10px 30px -10px rgba(124, 92, 255, 0.6);
  position: relative;
  z-index: 1;
}
.card-icon svg { width: 26px; height: 26px; }
.card h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  margin-bottom: 12px;
  letter-spacing: -0.02em;
  position: relative;
  z-index: 1;
}
.card p {
  color: var(--text-dim);
  margin-bottom: 24px;
  position: relative;
  z-index: 1;
}
.card-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: relative;
  z-index: 1;
}
.card-list li {
  font-size: 14px;
  color: var(--text-dim);
  padding-left: 20px;
  position: relative;
}
.card-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 9px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent-2);
  box-shadow: 0 0 10px var(--accent-2);
}

/* ============ TECH STACK ============ */
.stack {
  padding-top: 60px;
}
.stack-group {
  margin-bottom: 36px;
}
.stack-group:last-child {
  margin-bottom: 0;
}
.stack-label {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 5px 12px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border);
  margin-bottom: 18px;
  margin-left: 24px;
}

.marquee {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding: 16px 0;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.marquee-track {
  display: flex;
  gap: 16px;
  width: max-content;
  animation: marquee 38s linear infinite;
  will-change: transform;
}
.marquee.reverse .marquee-track {
  animation-direction: reverse;
  animation-duration: 44s;
}
.marquee:hover .marquee-track {
  animation-play-state: paused;
}
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.logo-chip {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 22px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  flex-shrink: 0;
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease), background 0.4s var(--ease);
  cursor: default;
}
.logo-chip:hover {
  transform: translateY(-4px);
  border-color: var(--border-2);
  background: var(--surface-2);
  box-shadow: 0 12px 30px -10px rgba(124, 92, 255, 0.4);
}
.logo-chip img {
  width: 24px;
  height: 24px;
  opacity: 0.85;
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease);
}
.logo-chip:hover img {
  opacity: 1;
  transform: scale(1.1);
}
.logo-chip span {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: var(--text-dim);
  white-space: nowrap;
  letter-spacing: -0.01em;
}
.logo-chip:hover span {
  color: var(--text);
}
.logo-chip.ai {
  border-color: rgba(124, 92, 255, 0.18);
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.06), rgba(0, 229, 255, 0.04));
}
.logo-chip.ai:hover {
  border-color: rgba(124, 92, 255, 0.4);
}

@media (max-width: 720px) {
  .logo-chip { padding: 12px 18px; }
  .logo-chip img { width: 20px; height: 20px; }
  .logo-chip span { font-size: 13px; }
  .stack-label { margin-left: 0; }
}

/* ============ WHY ============ */
.features {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
@media (max-width: 900px) { .features { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .features { grid-template-columns: 1fr; } }

.feature {
  position: relative;
  padding: 32px 24px;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease);
}
.feature:hover {
  transform: translateY(-6px);
  border-color: var(--accent-1);
}
.feature-ico {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: rgba(124, 92, 255, 0.12);
  border: 1px solid rgba(124, 92, 255, 0.3);
  display: grid;
  place-items: center;
  color: var(--accent-2);
  margin-bottom: 20px;
  transition: transform 0.4s var(--ease);
}
.feature-ico svg { width: 22px; height: 22px; }
.feature:hover .feature-ico {
  transform: rotate(-8deg) scale(1.05);
}
.feature h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
  margin-bottom: 8px;
  letter-spacing: -0.01em;
}
.feature p {
  font-size: 14px;
  color: var(--text-dim);
}

/* ============ DEVELOPMENT SHOWCASE (phone with auto-scrolling site) ============ */
.dev-showcase {
  position: relative;
  overflow: hidden;
}
.dsh-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.dsh-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.4;
}
.dsh-orb-1 {
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  top: -10%;
  left: -10%;
  animation: drift 22s ease-in-out infinite;
}
.dsh-orb-2 {
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, #00e5ff, transparent 70%);
  bottom: -20%;
  right: -10%;
  animation: drift 26s ease-in-out infinite;
  animation-delay: -8s;
}
.dsh-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

/* Left text */
.dsh-text { display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.dsh-title {
  text-align: left;
  font-size: clamp(2.2rem, 5vw, 3.6rem);
  margin: 0;
}
.dsh-sub {
  text-align: left;
  margin: 0;
  max-width: 480px;
}
.dsh-buttons { display: flex; gap: 14px; flex-wrap: wrap; }
.dsh-trust {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}
.dsh-stars {
  letter-spacing: 0.15em;
  color: #ffd93d;
  font-size: 14px;
  text-shadow: 0 0 12px rgba(255, 217, 61, 0.6);
}
.dsh-trust span {
  font-size: 14px;
  color: var(--text-dim);
}
.dsh-trust b { color: var(--text); font-weight: 700; }

/* Right visual */
.dsh-visual {
  position: relative;
  height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Laptop mockup running our website */
.dsh-laptop {
  position: relative;
  width: min(560px, 100%);
  z-index: 2;
}
.laptop-screen {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  background: linear-gradient(145deg, #1f1f2e, #07070d);
  border-radius: 14px 14px 4px 4px;
  padding: 10px 10px 12px;
  border: 1.5px solid rgba(255, 255, 255, 0.06);
  box-shadow:
    0 50px 100px -30px rgba(0, 0, 0, 0.7),
    0 0 80px -20px rgba(124, 92, 255, 0.4),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04);
  transform: perspective(1500px) rotateX(2deg);
  animation: laptop-float 6s ease-in-out infinite;
  will-change: transform;
}
@keyframes laptop-float {
  0%, 100% { transform: perspective(1500px) rotateX(2deg) translateY(0); }
  50%      { transform: perspective(1500px) rotateX(2deg) translateY(-10px); }
}
.laptop-screen-inner {
  width: 100%;
  height: 100%;
  border-radius: 6px;
  overflow: hidden;
  background: #f5f6fa;
  position: relative;
}

/* Browser-like bar at top of laptop screen */
.laptop-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  background: linear-gradient(180deg, #ffffff, #f1f1f5);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  position: relative;
  z-index: 4;
}
.laptop-dots { display: flex; gap: 5px; flex-shrink: 0; }
.laptop-dots span {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}
.laptop-dots span:nth-child(1) { background: #ff5f57; }
.laptop-dots span:nth-child(2) { background: #febc2e; }
.laptop-dots span:nth-child(3) { background: #28c840; }
.laptop-url {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 3px 12px;
  border-radius: 100px;
  background: rgba(0, 0, 0, 0.05);
  flex: 1;
  max-width: 240px;
  margin: 0 auto;
  font-family: 'Space Grotesk', monospace;
  font-size: 10px;
  color: rgba(0, 0, 0, 0.6);
}
.laptop-url img { width: 12px; height: 12px; border-radius: 2px; flex-shrink: 0; }
.laptop-url span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.laptop-spacer { width: 33px; flex-shrink: 0; }

/* Auto-scrolling dashboard content (two stacked copies = seamless loop) */
.laptop-content {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  animation: laptop-scroll 22s linear infinite;
  will-change: transform;
}
.dsh-laptop:hover .laptop-content,
.dsh-laptop:hover .laptop-screen { animation-play-state: paused; }
@keyframes laptop-scroll {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
.laptop-img {
  width: 100%;
  display: block;
  flex-shrink: 0;
}

/* Laptop base + hinge */
.laptop-base {
  position: relative;
  width: 110%;
  margin-left: -5%;
  height: 14px;
  background: linear-gradient(180deg, #2a2a36 0%, #1a1a24 60%, #0a0a14 100%);
  border-radius: 0 0 14px 14px;
  box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.6);
}
.laptop-hinge {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90px;
  height: 5px;
  background: linear-gradient(180deg, #07070d, #15151f);
  border-radius: 0 0 8px 8px;
}
.laptop-shadow {
  position: absolute;
  bottom: -30px;
  left: 8%;
  right: 8%;
  height: 30px;
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.5), transparent 70%);
  filter: blur(15px);
  z-index: -1;
}

/* (legacy phone styles kept for any leftover references) */
.dsh-phone {
  position: relative;
  width: 280px;
  height: 580px;
  perspective: 1000px;
  z-index: 2;
}
.phone-frame {
  position: relative;
  width: 100%;
  height: 100%;
  background: linear-gradient(145deg, #1f1f2e, #07070d);
  border-radius: 42px;
  padding: 12px;
  box-shadow:
    0 50px 100px -30px rgba(0, 0, 0, 0.6),
    0 0 80px -20px rgba(124, 92, 255, 0.4),
    inset 0 0 0 2px rgba(255, 255, 255, 0.06);
  transform: rotate(-3deg);
  transition: transform 0.6s var(--ease);
  animation: phone-float 6s ease-in-out infinite;
}
[data-theme="light"] .phone-frame {
  background: linear-gradient(145deg, #2a2a3a, #0a0a18);
}
@keyframes phone-float {
  0%, 100% { transform: rotate(-3deg) translateY(0); }
  50%      { transform: rotate(-3deg) translateY(-10px); }
}
.dsh-phone:hover .phone-frame { transform: rotate(0deg); animation-play-state: paused; }

.phone-notch {
  position: absolute;
  top: 18px;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 22px;
  background: #000;
  border-radius: 100px;
  z-index: 2;
}
.phone-screen {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 32px;
  overflow: hidden;
  background: linear-gradient(180deg, #0a0a18, #06060d);
}
.phone-screen::before,
.phone-screen::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  height: 60px;
  z-index: 3;
  pointer-events: none;
}
.phone-screen::before {
  top: 0;
  background: linear-gradient(180deg, #06060d, transparent);
}
.phone-screen::after {
  bottom: 0;
  background: linear-gradient(0deg, #06060d, transparent);
}

/* Auto-scrolling reel */
.phone-content {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  animation: reel-scroll 28s linear infinite;
  will-change: transform;
}
.dsh-phone:hover .phone-content { animation-play-state: paused; }
@keyframes reel-scroll {
  0%   { transform: translateY(0); }
  100% { transform: translateY(-50%); }
}
.phone-reel {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 56px 14px 24px;
  flex-shrink: 0;
}

/* Phone screen sections (mini-website inside) */
.ps-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 6px;
}
.ps-logo {
  display: flex;
  align-items: center;
  gap: 6px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  letter-spacing: -0.01em;
}
.ps-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--gradient);
  box-shadow: 0 0 8px rgba(124, 92, 255, 0.7);
}
.ps-burger { display: flex; flex-direction: column; gap: 2.5px; }
.ps-burger span { width: 14px; height: 1.5px; background: rgba(255, 255, 255, 0.6); border-radius: 1px; }

.ps-hero {
  padding: 18px 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.18), rgba(0, 229, 255, 0.08));
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.ps-eyebrow {
  font-size: 8px;
  font-weight: 600;
  color: #00e5ff;
  letter-spacing: 0.18em;
}
.ps-h-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #fff;
}
.ps-h-title em {
  font-style: normal;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ps-h-sub {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
}
.ps-h-cta {
  align-self: flex-start;
  padding: 6px 12px;
  border-radius: 100px;
  background: var(--gradient);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
  margin-top: 2px;
  box-shadow: 0 6px 16px -4px rgba(124, 92, 255, 0.6);
}

.ps-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
}
.ps-feat {
  padding: 10px 8px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ps-fic {
  font-size: 14px;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 2px;
}
.ps-feat b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  font-weight: 600;
  color: #fff;
}
.ps-feat em {
  font-style: normal;
  font-size: 8px;
  color: rgba(255, 255, 255, 0.45);
}

.ps-stats-row {
  display: flex;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
}
.ps-stats-row > div { flex: 1; display: flex; flex-direction: column; gap: 1px; }
.ps-stats-row b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ps-stats-row i {
  font-style: normal;
  font-size: 7px;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.5);
  text-transform: uppercase;
}

.ps-quote {
  padding: 14px 12px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 78, 205, 0.08), rgba(124, 92, 255, 0.05));
  border: 1px solid rgba(255, 255, 255, 0.06);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ps-q-stars { color: #ffd93d; font-size: 9px; letter-spacing: 0.1em; }
.ps-quote p {
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
  color: #fff;
}
.ps-q-author {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
}
.ps-avatar {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--gradient);
  flex-shrink: 0;
}
.ps-q-author span {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.ps-q-author b { font-size: 9px; color: #fff; font-weight: 600; }
.ps-q-author em {
  font-style: normal;
  font-size: 8px;
  color: rgba(255, 255, 255, 0.45);
}

.ps-pricing {
  padding: 14px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ps-tier {
  align-self: flex-start;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.2em;
  padding: 3px 8px;
  border-radius: 100px;
  background: rgba(0, 229, 255, 0.1);
  border: 1px solid rgba(0, 229, 255, 0.3);
  color: #8feaff;
}
.ps-price { display: flex; align-items: baseline; gap: 4px; }
.ps-price b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
}
.ps-price i { font-style: normal; font-size: 9px; color: rgba(255, 255, 255, 0.5); }
.ps-line { font-size: 10px; color: rgba(255, 255, 255, 0.65); }
.ps-pcta {
  align-self: stretch;
  padding: 8px;
  border-radius: 8px;
  border: 1px solid rgba(124, 92, 255, 0.4);
  background: rgba(124, 92, 255, 0.1);
  color: #fff;
  text-align: center;
  font-size: 10px;
  font-weight: 600;
  margin-top: 4px;
}
.ps-pcta.solid {
  background: var(--gradient);
  border-color: transparent;
  box-shadow: 0 6px 16px -4px rgba(124, 92, 255, 0.6);
}

.ps-cta-banner {
  padding: 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(255, 78, 205, 0.15), rgba(0, 229, 255, 0.08));
  border: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.ps-cta-banner b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
}
.ps-cta-banner em {
  font-style: normal;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.55);
}

.ps-footer {
  padding: 10px 4px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ps-f-row { font-size: 9px; color: rgba(255, 255, 255, 0.5); }
.ps-f-row.dim { color: rgba(255, 255, 255, 0.3); font-size: 8px; letter-spacing: 0.08em; }

/* Floating metric cards orbiting the phone */
.dsh-card {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 16px;
  background: rgba(7, 7, 13, 0.85);
  border: 1px solid var(--border-2);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: 0 20px 50px -15px rgba(0, 0, 0, 0.55), 0 0 30px -10px rgba(124, 92, 255, 0.4);
  white-space: nowrap;
  will-change: transform;
}
[data-theme="light"] .dsh-card {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.08);
  box-shadow: 0 16px 40px -12px rgba(15, 15, 30, 0.18);
}
.dsh-card-ic {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: #fff;
}
.dsh-card-ic svg { width: 16px; height: 16px; }
.ic-bolt  { background: linear-gradient(135deg, #ffd93d, #ff8b3d); box-shadow: 0 0 16px rgba(255, 139, 61, 0.5); }
.ic-chart { background: linear-gradient(135deg, #00e5ff, #7c5cff); box-shadow: 0 0 16px rgba(0, 229, 255, 0.5); }
.ic-code  { background: linear-gradient(135deg, #7c5cff, #ff4ecd); box-shadow: 0 0 16px rgba(124, 92, 255, 0.5); }
.ic-users { background: linear-gradient(135deg, #00ff88, #00e5ff); box-shadow: 0 0 16px rgba(0, 255, 136, 0.5); }

.dsh-card-meta { display: flex; flex-direction: column; gap: 1px; }
.dsh-card-meta span {
  font-size: 10px;
  color: var(--text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 500;
}
.dsh-card-meta strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
}

/* ====== Alternating layout variant ====== */
.dsh-flip .dsh-text   { order: 2; }
.dsh-flip .dsh-visual { order: 1; }

/* ====== Per-showcase color themes ====== */
/* AIGrowBot — orange / green */
.showcase-orange .dsh-orb-1 {
  background: radial-gradient(circle, #ff8b3d, transparent 70%);
}
.showcase-orange .dsh-orb-2 {
  background: radial-gradient(circle, #00e08a, transparent 70%);
}
.showcase-orange .badge-dot.green {
  background: #25D366;
  box-shadow: 0 0 12px #25D366;
}

/* Dawki — blue / cyan */
.showcase-blue .dsh-orb-1 {
  background: radial-gradient(circle, #1ba0ff, transparent 70%);
}
.showcase-blue .dsh-orb-2 {
  background: radial-gradient(circle, #00e5ff, transparent 70%);
}
.showcase-blue .badge-dot.blue {
  background: #1ba0ff;
  box-shadow: 0 0 12px #1ba0ff;
}

/* SmartCRM — violet / cyan */
.showcase-violet .dsh-orb-1 {
  background: radial-gradient(circle, #7c5cff, transparent 70%);
}
.showcase-violet .dsh-orb-2 {
  background: radial-gradient(circle, #ff4ecd, transparent 70%);
}
.showcase-violet .badge-dot.violet {
  background: #b794ff;
  box-shadow: 0 0 12px #7c5cff;
}

/* Generic colored badge dots */
.badge-dot.green { background: #25D366; box-shadow: 0 0 10px #25D366; }
.badge-dot.blue  { background: #1ba0ff; box-shadow: 0 0 10px #1ba0ff; }

/* New icon tile color variants for the floating cards */
.ic-msg    { background: linear-gradient(135deg, #25D366, #128C7E); box-shadow: 0 0 16px rgba(37, 211, 102, 0.5); }
.ic-trend  { background: linear-gradient(135deg, #ff8b3d, #ff4ecd); box-shadow: 0 0 16px rgba(255, 139, 61, 0.5); }
.ic-spark  { background: linear-gradient(135deg, #ffd93d, #ff8b3d); box-shadow: 0 0 16px rgba(255, 217, 61, 0.5); }
.ic-pulse  { background: linear-gradient(135deg, #00ff88, #00e5ff); box-shadow: 0 0 16px rgba(0, 255, 136, 0.5); }
.ic-cal    { background: linear-gradient(135deg, #1ba0ff, #7c5cff); box-shadow: 0 0 16px rgba(27, 160, 255, 0.5); }
.ic-rocket { background: linear-gradient(135deg, #00e5ff, #1ba0ff); box-shadow: 0 0 16px rgba(0, 229, 255, 0.5); }
.ic-star   { background: linear-gradient(135deg, #ffd93d, #ff8b3d); box-shadow: 0 0 16px rgba(255, 217, 61, 0.5); }
.ic-people { background: linear-gradient(135deg, #1ba0ff, #00e5ff); box-shadow: 0 0 16px rgba(27, 160, 255, 0.5); }

/* Card positions + per-card bobbing animations (positioned around the laptop) */
.dsh-c1 { top: 6%;  left: -6%;  animation: bob 5s ease-in-out infinite; }
.dsh-c2 { top: 18%; right: -8%; animation: bob 6s ease-in-out infinite; animation-delay: -1.5s; }
.dsh-c3 { bottom: 14%; left: -8%; animation: bob 5.5s ease-in-out infinite; animation-delay: -2.5s; }
.dsh-c4 { bottom: 4%;  right: -4%; animation: bob 6.5s ease-in-out infinite; animation-delay: -3.5s; }
@keyframes bob {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50%      { transform: translateY(-12px) rotate(1deg); }
}

/* Mobile */
@media (max-width: 980px) {
  .dsh-grid { grid-template-columns: 1fr; gap: 64px; }
  .dsh-text { align-items: center; text-align: center; }
  .dsh-title, .dsh-sub { text-align: center; }
  .dsh-buttons { justify-content: center; }
  .dsh-visual { height: 480px; }
  /* On mobile, always text first regardless of flip */
  .dsh-flip .dsh-text   { order: 1; }
  .dsh-flip .dsh-visual { order: 2; }
}
@media (max-width: 560px) {
  .dsh-laptop { width: 95%; }
  .dsh-visual { height: 360px; }
  .dsh-c1 { left: -2%; }
  .dsh-c2 { right: -2%; }
  .dsh-c3 { left: -2%; }
  .dsh-c4 { right: -2%; }
  .dsh-card { padding: 10px 12px; }
  .dsh-card-meta strong { font-size: 14px; }
  .laptop-url { font-size: 9px; max-width: 160px; }
}

/* ============ PROCESS / MOTION SHOWCASE ============ */
.process-flow {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  padding-top: 30px;
}

/* Connecting track + traveling spark */
.process-track {
  position: absolute;
  top: 80px;
  left: 12%;
  right: 12%;
  height: 2px;
  z-index: 0;
  pointer-events: none;
}
.track-line {
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(124, 92, 255, 0.4) 20%,
    rgba(0, 229, 255, 0.4) 50%,
    rgba(255, 78, 205, 0.4) 80%,
    transparent 100%);
  border-radius: 100px;
  position: relative;
}
.track-line::after {
  content: '';
  position: absolute;
  inset: -1px 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.04), transparent);
  background-size: 100px 100%;
  background-repeat: no-repeat;
  animation: track-sheen 4s linear infinite;
}
@keyframes track-sheen {
  0%   { background-position: -100px 0; }
  100% { background-position: 110% 0; }
}
.track-spark {
  position: absolute;
  top: 50%;
  left: 0;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #00e5ff 30%, transparent 70%);
  transform: translate(-50%, -50%);
  filter: drop-shadow(0 0 12px rgba(0, 229, 255, 0.9));
  animation: spark-travel 5s linear infinite;
  will-change: transform, left;
}
@keyframes spark-travel {
  0%   { left: 0%;   filter: drop-shadow(0 0 6px rgba(124, 92, 255, 0.6)); }
  25%  { left: 33%;  filter: drop-shadow(0 0 14px rgba(124, 92, 255, 1)); }
  50%  { left: 66%;  filter: drop-shadow(0 0 14px rgba(0, 229, 255, 1)); }
  75%  { left: 100%; filter: drop-shadow(0 0 14px rgba(255, 78, 205, 1)); }
  100% { left: 0%;   filter: drop-shadow(0 0 6px rgba(124, 92, 255, 0.6)); }
}

/* Each step */
.process-step {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 8px;
}
.step-orb {
  position: relative;
  width: 110px;
  height: 110px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.06), rgba(7, 7, 13, 0.8));
  border: 1px solid var(--border-2);
  display: grid;
  place-items: center;
  margin-bottom: 22px;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease);
}
[data-theme="light"] .step-orb {
  background: radial-gradient(circle at 30% 30%, #ffffff, #f0f0f8);
}
.step-orb svg {
  width: 64%;
  height: 64%;
}
.process-step:hover .step-orb {
  transform: translateY(-6px) scale(1.04);
  border-color: rgba(124, 92, 255, 0.5);
}
.orb-glow {
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: conic-gradient(from 0deg, #7c5cff, #00e5ff, #ff4ecd, #7c5cff);
  opacity: 0.4;
  filter: blur(12px);
  z-index: -1;
  animation: orb-rotate 6s linear infinite;
}
@keyframes orb-rotate {
  to { transform: rotate(360deg); }
}
.process-step:hover .orb-glow { opacity: 0.8; }

.step-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.2em;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: 8px;
}
.process-step h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.35rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.process-step p {
  font-size: 14px;
  color: var(--text-dim);
  max-width: 240px;
}

/* ====== Step 1: Radar ====== */
.anim-radar .r-sweep {
  animation: radar-rotate 3s linear infinite;
  transform-origin: 50% 50%;
}
@keyframes radar-rotate {
  to { transform: rotate(360deg); }
}
.anim-radar .r-ring {
  transform-origin: 50% 50%;
  animation: radar-pulse 3s ease-out infinite;
  opacity: 0;
}
.anim-radar .r-1 { animation-delay: 0s; }
.anim-radar .r-2 { animation-delay: -1s; }
.anim-radar .r-3 { animation-delay: -2s; }
@keyframes radar-pulse {
  0%   { transform: scale(0.4); opacity: 0; }
  20%  { opacity: 0.8; }
  100% { transform: scale(2.4); opacity: 0; }
}

/* ====== Step 2: Wireframe build ====== */
.anim-wireframe .wf {
  transform-origin: left center;
  animation: wf-build 4s ease-in-out infinite;
  opacity: 0;
}
.anim-wireframe .wf-1 { animation-delay: 0s; }
.anim-wireframe .wf-2 { animation-delay: 0.25s; }
.anim-wireframe .wf-3 { animation-delay: 0.5s; }
.anim-wireframe .wf-4 { animation-delay: 0.75s; }
.anim-wireframe .wf-5 { animation-delay: 1s; }
.anim-wireframe .wf-6 { animation-delay: 1.25s; }
@keyframes wf-build {
  0%   { transform: scaleX(0); opacity: 0; }
  15%  { transform: scaleX(1); opacity: 1; }
  60%  { transform: scaleX(1); opacity: 1; }
  75%  { transform: scaleX(1); opacity: 0; }
  100% { transform: scaleX(0); opacity: 0; }
}

/* ====== Step 3: Code lines typing ====== */
.anim-code .cl {
  stroke-dasharray: 60;
  stroke-dashoffset: 60;
  animation: code-draw 3.6s ease-in-out infinite;
}
.anim-code .cl-1 { animation-delay: 0s; }
.anim-code .cl-2 { animation-delay: 0.3s; }
.anim-code .cl-3 { animation-delay: 0.6s; }
.anim-code .cl-4 { animation-delay: 0.9s; }
@keyframes code-draw {
  0%   { stroke-dashoffset: 60; }
  30%  { stroke-dashoffset: 0; }
  70%  { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -60; }
}
.anim-code .code-bracket {
  animation: bracket-pulse 3s ease-in-out infinite;
  transform-origin: 50% 50%;
}
@keyframes bracket-pulse {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50%      { transform: scale(1.06); opacity: 1; }
}

/* ====== Step 4: Rocket ====== */
.anim-rocket .rocket-body {
  transform-origin: 50% 60%;
  animation: rocket-bob 2.4s ease-in-out infinite;
}
@keyframes rocket-bob {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50%      { transform: translateY(-6px) rotate(2deg); }
}
.anim-rocket .rocket-flame {
  transform-origin: 50% 60%;
  animation: flame-flicker 0.4s ease-in-out infinite alternate;
}
@keyframes flame-flicker {
  0%   { transform: scaleY(0.8) scaleX(0.95); opacity: 0.85; }
  100% { transform: scaleY(1.15) scaleX(1.05); opacity: 1; }
}
.anim-rocket .trail {
  stroke-dasharray: 4 4;
  animation: trail-fall 0.9s linear infinite;
}
.anim-rocket .t-2 { animation-duration: 1.2s; }
.anim-rocket .t-3 { animation-duration: 1.4s; }
@keyframes trail-fall {
  to { stroke-dashoffset: -16; }
}

/* Mobile */
@media (max-width: 880px) {
  .process-flow {
    grid-template-columns: 1fr;
    gap: 48px;
  }
  .process-track { display: none; }
  .step-orb { width: 96px; height: 96px; }
}

/* ============ PORTFOLIO ============ */
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
@media (max-width: 820px) { .portfolio-grid { grid-template-columns: 1fr; } }

.project {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease);
  cursor: pointer;
}
.project:hover {
  transform: translateY(-8px);
  border-color: var(--border-2);
}
.project-mockup {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.mockup-1 { background: linear-gradient(135deg, #1a1140 0%, #0a0a1f 100%); }
.mockup-2 { background: linear-gradient(135deg, #1a3a40 0%, #0a1a1f 100%); }
.mockup-3 { background: linear-gradient(135deg, #401a35 0%, #1f0a1a 100%); }
.mockup-4 { background: linear-gradient(135deg, #3a1a40 0%, #150a1f 100%); }
/* ============ IMAGE-BASED REAL SCREENSHOT PROJECT CARDS ============ */
/* Cards stay in the existing 2-column grid: AIGrowBot left, Dawki right */
.img-project {
  position: relative;
  display: block;
  text-decoration: none;
  color: inherit;
}

/* Override the default mockup gradient — image fills the area */
.img-project .img-mockup {
  background: #0a0a14;
  aspect-ratio: 16 / 10;
  position: relative;
  overflow: hidden;
}

/* Inner image container (below the browser bar) */
.img-shot {
  position: relative;
  width: 100%;
  height: calc(100% - 38px);
  overflow: hidden;
  background: #0a0a14;
}
.img-shot img {
  display: block;
  width: 100%;
  height: auto;
  min-height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform 6s linear, filter 0.5s var(--ease);
  will-change: transform;
  transform: translateY(0);
}
/* On hover: scroll the screenshot up to reveal the rest of the page */
.img-project:hover .img-shot img {
  transform: translateY(calc(-1 * (100% - 100%)));
  /* Travel down by the overflow amount */
  animation: img-scan 5s ease-in-out forwards;
  filter: brightness(1.05);
}
@keyframes img-scan {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(calc(-100% + 220px)); }
  100% { transform: translateY(0); }
}

/* Soft bottom darken so the meta text stays readable */
.img-shot::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 50%;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.35));
  pointer-events: none;
}

/* Card hover effect */
.img-project:hover {
  transform: translateY(-8px);
  border-color: rgba(124, 92, 255, 0.5);
  box-shadow: 0 30px 60px -20px rgba(124, 92, 255, 0.4);
}
.img-project:hover .visit-arrow {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  transform: translate(2px, -2px);
}
.img-project:hover .live-badge {
  transform: translateY(-2px);
}

/* Sheen sweep on hover */
.img-project::before {
  content: '';
  position: absolute;
  top: 38px;
  left: -50%;
  width: 50%;
  bottom: 0;
  background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.06), transparent);
  transform: skewX(-20deg);
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.6s var(--ease), left 1.2s var(--ease);
}
.img-project:hover::before {
  opacity: 1;
  left: 100%;
}

.mockup-aigrowbot     { background: linear-gradient(135deg, #0d1437 0%, #1c0b3a 50%, #06122a 100%); }
.mockup-dawki         { background: linear-gradient(135deg, #0a1d33 0%, #0e2a4a 50%, #051221 100%); }
.mockup-digitalgrafiks{ background: linear-gradient(135deg, #2a0a26 0%, #3a0d1f 45%, #1f0a2a 100%); }

/* Live project (anchor) */
a.project.live {
  display: block;
  text-decoration: none;
  color: inherit;
  position: relative;
}
a.project.live:hover .visit-arrow {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  transform: translate(2px, -2px);
}
a.project.live:hover .live-badge {
  transform: translateY(-2px);
}

.live-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(0, 255, 136, 0.4);
  font-family: 'Space Grotesk', sans-serif;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #fff;
  transition: transform 0.3s var(--ease);
}
.live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 8px #00ff88;
  animation: blink 1.4s ease-in-out infinite;
}

/* Browser-bar URL element (real-site cards) */
.browser-bar .bb-url {
  margin-left: 8px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 12px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.05);
  font-family: 'Space Grotesk', monospace;
  font-size: 10px;
  color: rgba(255, 255, 255, 0.7);
  flex: 1;
  min-width: 0;
}
.browser-bar .bb-url img {
  width: 12px;
  height: 12px;
  border-radius: 2px;
  flex-shrink: 0;
}
.browser-bar .bb-url span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Visit arrow on live cards */
.project-meta {
  align-items: center;
}
.visit-arrow {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
  transition: all 0.35s var(--ease);
  flex-shrink: 0;
}
.visit-arrow svg { width: 14px; height: 14px; }

/* Live mockup content (shared) */
.live-content {
  padding: 18px 20px;
  height: calc(100% - 38px);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* AIGrowBot mockup */
.ag-content { color: #e8e8ff; }
.ag-chip,
.dk-chip {
  display: inline-block;
  align-self: flex-start;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(124, 92, 255, 0.18);
  border: 1px solid rgba(124, 92, 255, 0.35);
  color: #c4b5ff;
}
.dk-chip {
  background: rgba(0, 229, 255, 0.12);
  border-color: rgba(0, 229, 255, 0.3);
  color: #8feaff;
}
.ag-title,
.dk-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #fff;
}
.ag-title em,
.dk-title em {
  font-style: normal;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ag-bars {
  flex: 1;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  padding: 8px 0;
}
.ag-bars span {
  flex: 1;
  height: var(--h, 50%);
  border-radius: 4px 4px 0 0;
  background: linear-gradient(180deg, #7c5cff, #00e5ff);
  opacity: 0.85;
  transform-origin: bottom;
  animation: ag-bar 2.6s ease-in-out infinite;
}
.ag-bars span:nth-child(1) { animation-delay: 0s; }
.ag-bars span:nth-child(2) { animation-delay: -0.3s; }
.ag-bars span:nth-child(3) { animation-delay: -0.6s; }
.ag-bars span:nth-child(4) { animation-delay: -0.9s; }
.ag-bars span:nth-child(5) { animation-delay: -1.2s; }
.ag-bars span:nth-child(6) { animation-delay: -1.5s; }
@keyframes ag-bar {
  0%, 100% { transform: scaleY(0.6); }
  50%      { transform: scaleY(1); }
}
.ag-pill {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 100px;
  background: rgba(0, 255, 136, 0.1);
  border: 1px solid rgba(0, 255, 136, 0.3);
  font-size: 10px;
  font-weight: 500;
  color: #6eebb0;
}
.ag-pulse {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #00ff88;
  box-shadow: 0 0 8px #00ff88;
  animation: blink 1.6s ease-in-out infinite;
}

/* Dawki InfoTech mockup */
.dk-content { color: #e8f4ff; }
.dk-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  flex: 1;
  margin-top: 4px;
}
.dk-tile {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 10px 12px;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(0, 229, 255, 0.1), rgba(124, 92, 255, 0.06));
  border: 1px solid rgba(255, 255, 255, 0.06);
  transition: transform 0.3s var(--ease);
}
a.project.live:hover .dk-tile { transform: translateY(-1px); }
.dk-tile b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  background: linear-gradient(135deg, #00e5ff, #7c5cff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.01em;
}
.dk-tile span {
  font-size: 9px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 2px;
}

/* Digital Grafiks mockup */
.dg-content { color: #ffe8f4; }
.dg-chip {
  display: inline-block;
  align-self: flex-start;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 100px;
  background: rgba(255, 78, 205, 0.14);
  border: 1px solid rgba(255, 78, 205, 0.35);
  color: #ffb8e0;
}
.dg-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: #fff;
}
.dg-title em {
  font-style: normal;
  background: linear-gradient(135deg, #ff4ecd, #ff8b3d 60%, #ffd93d);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.dg-palette {
  display: flex;
  gap: 8px;
  margin: 4px 0 2px;
}
.dg-palette span {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--c);
  box-shadow: 0 0 14px var(--c);
  animation: dg-bounce 2.4s ease-in-out infinite;
  will-change: transform;
}
.dg-palette span:nth-child(1) { animation-delay: 0s; }
.dg-palette span:nth-child(2) { animation-delay: -0.32s; }
.dg-palette span:nth-child(3) { animation-delay: -0.64s; }
.dg-palette span:nth-child(4) { animation-delay: -0.96s; }
.dg-palette span:nth-child(5) { animation-delay: -1.28s; }
@keyframes dg-bounce {
  0%, 100% { transform: translateY(0) scale(1); }
  50%      { transform: translateY(-5px) scale(1.05); }
}
.dg-row {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
}
.dg-aa {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(255, 78, 205, 0.12), rgba(255, 139, 61, 0.06));
  border: 1px solid rgba(255, 78, 205, 0.28);
  flex-shrink: 0;
}
.dg-aa span {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  background: linear-gradient(135deg, #ff4ecd, #ff8b3d);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.03em;
}
.dg-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.dg-meta b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #fff;
}
.dg-meta em {
  font-style: normal;
  font-size: 9px;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.browser-bar {
  display: flex;
  gap: 6px;
  padding: 14px 16px;
  background: rgba(0, 0, 0, 0.3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.browser-bar span {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.browser-bar span:nth-child(1) { background: #ff5f57; }
.browser-bar span:nth-child(2) { background: #febc2e; }
.browser-bar span:nth-child(3) { background: #28c840; }

.mockup-content {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  height: calc(100% - 38px);
}
.mock-hero {
  height: 60px;
  border-radius: 8px;
  background: var(--gradient);
  opacity: 0.6;
  animation: shimmer 3s ease-in-out infinite;
}
.mock-hero.tall { height: 100px; }
.mock-row {
  height: 12px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.1);
}
.mock-row.short { width: 60%; }
.mock-circle {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: var(--gradient);
  opacity: 0.7;
  animation: shimmer 3s ease-in-out infinite;
}
.mock-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  flex: 1;
}
.mock-grid.four { grid-template-columns: repeat(4, 1fr); }
.mock-grid span {
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.04);
}
.mock-grid span:nth-child(odd) {
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.2), rgba(0, 229, 255, 0.1));
}
@keyframes shimmer {
  0%, 100% { opacity: 0.5; }
  50%      { opacity: 0.8; }
}

.project::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 60%, rgba(124, 92, 255, 0.15));
  opacity: 0;
  transition: opacity 0.5s var(--ease);
  pointer-events: none;
}
.project:hover::after { opacity: 1; }

.project-meta {
  padding: 24px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.project-tag {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.project-meta h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.02em;
}

/* ============ CTA BANNER ============ */
.cta-banner {
  position: relative;
  padding: 140px 24px;
  overflow: hidden;
  background: linear-gradient(180deg, transparent, rgba(124, 92, 255, 0.04));
}
.cta-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.cta-orb {
  position: absolute;
  width: 700px;
  height: 700px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(124, 92, 255, 0.5), transparent 60%);
  filter: blur(100px);
  top: -30%;
  left: -10%;
  animation: drift 20s ease-in-out infinite;
}
.cta-orb-2 {
  background: radial-gradient(circle, rgba(0, 229, 255, 0.4), transparent 60%);
  top: auto;
  bottom: -30%;
  left: auto;
  right: -10%;
  animation-delay: -10s;
}
.cta-inner {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 760px;
}
.cta-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2rem, 5.5vw, 3.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.05;
  margin: 20px 0 20px;
}
.cta-sub {
  color: var(--text-dim);
  font-size: 1.1rem;
  margin-bottom: 40px;
}

/* ============ PRICING CALCULATOR ============ */
.calc-section {
  position: relative;
  overflow: hidden;
}
.calc-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.calc-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(110px);
  opacity: 0.32;
  animation: drift 24s ease-in-out infinite;
}
.calc-orb-1 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  top: -10%; left: -10%;
}
.calc-orb-2 {
  width: 540px; height: 540px;
  background: radial-gradient(circle, #00e5ff, transparent 70%);
  bottom: -20%; right: -10%;
  animation-delay: -12s;
}
.calc-section .container { position: relative; z-index: 1; }

/* Card wrapper */
.calc-card {
  max-width: 1080px;
  margin: 32px auto 0;
  padding: 40px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  display: flex;
  flex-direction: column;
  gap: 36px;
}
@media (max-width: 720px) {
  .calc-card { padding: 24px; gap: 28px; }
}

/* Step header */
.calc-step { display: flex; flex-direction: column; gap: 16px; }
.calc-step-head {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.calc-step-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  flex-shrink: 0;
}
.calc-step-head h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
}
.calc-step-rate {
  margin-left: auto;
  font-size: 12px;
  color: var(--text-muted);
  letter-spacing: 0.04em;
}

/* === Step 1: Build options (radio cards) === */
.calc-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
@media (max-width: 880px) { .calc-options { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .calc-options { grid-template-columns: 1fr; } }

.calc-opt { position: relative; cursor: pointer; }
.calc-opt input { position: absolute; opacity: 0; pointer-events: none; }
.calc-opt-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: 18px 18px 16px;
  border-radius: 14px;
  background: var(--surface-2);
  border: 1.5px solid var(--border);
  transition: all 0.35s var(--ease);
  position: relative;
  overflow: hidden;
}
.calc-opt-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gradient-soft);
  opacity: 0;
  transition: opacity 0.35s var(--ease);
  pointer-events: none;
}
.calc-opt:hover .calc-opt-card {
  transform: translateY(-3px);
  border-color: var(--border-2);
}
.calc-opt input:checked + .calc-opt-card {
  border-color: rgba(124, 92, 255, 0.6);
  background: var(--surface-2);
  box-shadow: 0 12px 30px -12px rgba(124, 92, 255, 0.4);
}
.calc-opt input:checked + .calc-opt-card::before { opacity: 1; }
.calc-opt input:focus-visible + .calc-opt-card {
  outline: 2px solid var(--accent-2);
  outline-offset: 2px;
}

.calc-opt-ic {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--gradient);
  color: #fff;
  margin-bottom: 4px;
  flex-shrink: 0;
}
.calc-opt-ic svg { width: 18px; height: 18px; }
.calc-opt-card strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
  position: relative;
  z-index: 1;
}
.calc-opt-card em {
  font-style: normal;
  font-size: 11px;
  color: var(--text-dim);
  position: relative;
  z-index: 1;
}
.calc-opt-card b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 16px;
  font-weight: 700;
  margin-top: 2px;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.02em;
  position: relative;
  z-index: 1;
}

/* === Step 2: Counter === */
.calc-counter {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border-radius: 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
}
.calc-btn-step {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
  font-size: 22px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s var(--ease);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  font-family: inherit;
  line-height: 1;
}
.calc-btn-step:hover {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  transform: scale(1.06);
}
.calc-btn-step:active { transform: scale(0.94); }
.calc-btn-step:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
}
.calc-btn-step:disabled:hover {
  background: var(--surface);
  color: var(--text);
  border-color: var(--border-2);
  transform: none;
}

.calc-count-display {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  min-width: 0;
}
.calc-count {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 32px;
  font-weight: 800;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.04em;
  line-height: 1;
  transition: transform 0.3s var(--ease);
}
.calc-count.bump { animation: countBump 0.4s var(--ease); }
@keyframes countBump {
  0%, 100% { transform: scale(1); }
  40%      { transform: scale(1.18); }
}
.calc-count-display em {
  font-style: normal;
  font-size: 11px;
  color: var(--text-muted);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-top: 2px;
}

.calc-counter-bar {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 6px;
  height: 2px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 100px;
  overflow: hidden;
}
.calc-counter-fill {
  height: 100%;
  width: 0%;
  background: var(--gradient);
  border-radius: 100px;
  transition: width 0.4s var(--ease);
  box-shadow: 0 0 10px rgba(124, 92, 255, 0.5);
}

/* === Step 3: Add-ons === */
.calc-addons {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
@media (max-width: 880px) { .calc-addons { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .calc-addons { grid-template-columns: 1fr; } }

.calc-addon { position: relative; cursor: pointer; }
.calc-addon input { position: absolute; opacity: 0; pointer-events: none; }
.calc-addon-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 14px 14px 14px;
  border-radius: 14px;
  background: var(--surface-2);
  border: 1.5px solid var(--border);
  transition: all 0.35s var(--ease);
  position: relative;
  overflow: hidden;
}
.calc-addon:hover .calc-addon-card {
  transform: translateY(-2px);
  border-color: var(--border-2);
}
.calc-addon input:checked + .calc-addon-card {
  border-color: rgba(124, 92, 255, 0.6);
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.12), rgba(0, 229, 255, 0.06));
  box-shadow: 0 10px 24px -10px rgba(124, 92, 255, 0.4);
}
.calc-addon input:checked + .calc-addon-card::after {
  content: '✓';
  position: absolute;
  top: 8px;
  right: 10px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--gradient);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: grid;
  place-items: center;
  box-shadow: 0 4px 10px -2px rgba(124, 92, 255, 0.5);
}
.calc-addon.featured .calc-addon-card {
  border-color: rgba(124, 92, 255, 0.35);
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.06), rgba(0, 229, 255, 0.03));
}

.calc-addon-ic {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: #fff;
  flex-shrink: 0;
}
.calc-addon-ic svg { width: 18px; height: 18px; }
.calc-addon-ic.ic-bolt   { background: linear-gradient(135deg, #00e5ff, #7c5cff); }
.calc-addon-ic.ic-spark  { background: linear-gradient(135deg, #7c5cff, #ff4ecd); box-shadow: 0 0 14px rgba(124, 92, 255, 0.45); }
.calc-addon-ic.ic-search { background: linear-gradient(135deg, #ff8b3d, #ff4ecd); }
.calc-addon-ic.ic-anim   { background: linear-gradient(135deg, #ffd93d, #ff8b3d); }
.calc-addon-ic.ic-cms    { background: linear-gradient(135deg, #00ff88, #00e5ff); color: #0a0a18; }
.calc-addon-ic.ic-shield { background: linear-gradient(135deg, #1ba0ff, #7c5cff); }

.calc-addon-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.calc-addon-text b {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
  display: flex;
  align-items: center;
  gap: 6px;
}
.calc-tag-hot {
  font-style: normal;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: 100px;
  background: linear-gradient(135deg, #ff4ecd, #ff8b3d);
  color: #fff;
}
.calc-addon-text em {
  font-style: normal;
  font-size: 11px;
  color: var(--text-dim);
  line-height: 1.3;
}
.calc-addon-price {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 12px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.01em;
  flex-shrink: 0;
  align-self: flex-end;
}

/* === Total row === */
.calc-total-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: 24px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.08), rgba(0, 229, 255, 0.04));
  border: 1px solid rgba(124, 92, 255, 0.2);
  align-items: center;
}
/* Solo variant — only the big total, centered, no breakdown column */
.calc-total-row.calc-total-row-solo {
  grid-template-columns: 1fr;
  padding: 32px 28px;
}
.calc-total-row-solo .calc-total {
  align-items: center;
  text-align: center;
}
@media (max-width: 720px) {
  .calc-total-row { grid-template-columns: 1fr; padding: 20px; }
}

/* Pages step — hidden when selected base build doesn't support extra pages */
.calc-pages-step {
  transition: opacity 0.4s var(--ease), max-height 0.5s var(--ease), margin 0.4s var(--ease);
  overflow: hidden;
  max-height: 200px;
}
.calc-pages-step.is-hidden {
  opacity: 0;
  max-height: 0;
  margin-top: 0;
  pointer-events: none;
}

.calc-total-breakdown {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 13px;
}
.calc-line {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--text-dim);
}
.calc-line span { letter-spacing: -0.005em; }
.calc-line em {
  font-style: normal;
  color: var(--text);
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 600;
}
.calc-line.calc-line-base em { color: var(--text); }
.calc-line.calc-line-add em {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.calc-total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  text-align: right;
}
@media (max-width: 720px) {
  .calc-total { align-items: flex-start; text-align: left; }
}
.calc-total-label {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.calc-total-label span {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}
.calc-total-label em {
  font-style: normal;
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 2px;
}
.calc-total-amount {
  display: flex;
  align-items: baseline;
  gap: 2px;
  margin-top: 4px;
}
.calc-total-amount small {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.calc-total-amount strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2.4rem, 5vw, 3.4rem);
  font-weight: 800;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.04em;
  line-height: 1;
  transition: transform 0.4s var(--ease), filter 0.4s var(--ease);
}
.calc-total-amount strong.calc-pop {
  animation: calc-pop 0.5s var(--ease);
}
@keyframes calc-pop {
  0%, 100% { transform: scale(1); }
  40%      { transform: scale(1.08); filter: drop-shadow(0 0 16px rgba(124, 92, 255, 0.5)); }
}

/* CTA */
.calc-cta {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 18px 32px;
  border-radius: 14px;
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  border: none;
  cursor: pointer;
  overflow: hidden;
  align-self: center;
  box-shadow: 0 14px 36px -10px rgba(37, 211, 102, 0.55);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.calc-cta > * { position: relative; z-index: 2; }
.calc-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 22px 48px -10px rgba(37, 211, 102, 0.8);
}
.calc-cta-shine {
  position: absolute;
  top: 0;
  left: -50%;
  width: 50%;
  height: 100%;
  background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.28), transparent);
  z-index: 1;
  animation: cf-shine 2.6s ease-in-out infinite;
}
.calc-cta-wa { width: 18px; height: 18px; }
.calc-cta-arr {
  width: 16px;
  height: 16px;
  transition: transform 0.3s var(--ease);
}
.calc-cta:hover .calc-cta-arr { transform: translateX(4px); }

.calc-note {
  text-align: center;
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
}

/* ============ CONTACT — Get in touch + WhatsApp form ============ */
.contact-section {
  position: relative;
  overflow: hidden;
  padding: 90px 0 120px;
}
@media (max-width: 720px) {
  .contact-section { padding: 60px 0 80px; }
}
.contact-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.contact-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(110px);
  opacity: 0.32;
  animation: drift 26s ease-in-out infinite;
}
.contact-orb-1 {
  width: 540px; height: 540px;
  background: radial-gradient(circle, #25D366, transparent 70%);
  top: -10%; left: -10%;
}
.contact-orb-2 {
  width: 580px; height: 580px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  bottom: -20%; right: -10%;
  animation-delay: -12s;
}
.contact-grid-overlay {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size: 70px 70px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, black 30%, transparent 80%);
}
.contact-section .container { position: relative; z-index: 1; }

/* Two-column contact grid */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 28px;
  margin-top: 32px;
}
@media (max-width: 980px) {
  .contact-grid { grid-template-columns: 1fr; }
}

/* ====== Get in touch card (left) ====== */
.ci-card {
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 32px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  position: relative;
  overflow: hidden;
}
[data-theme="light"] .ci-card { background: #ffffff; }
.ci-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 0% 0%, rgba(37, 211, 102, 0.06), transparent 50%);
  pointer-events: none;
}
.ci-head { position: relative; }
.ci-head h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0 0 8px;
}
.ci-head p {
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--text-dim);
  margin: 0;
}

.ci-methods {
  display: flex;
  flex-direction: column;
  gap: 10px;
  position: relative;
}
.ci-method {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  border-radius: 14px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  text-decoration: none;
  color: inherit;
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease), box-shadow 0.4s var(--ease);
  overflow: hidden;
}
[data-theme="light"] .ci-method { background: #f7f8fb; }
.ci-method:hover {
  transform: translateX(4px);
  border-color: var(--border-2);
  box-shadow: 0 12px 30px -12px rgba(124, 92, 255, 0.3);
}

.ci-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  color: #fff;
  position: relative;
}
.ci-icon svg { width: 20px; height: 20px; }
.ci-icon-email { background: linear-gradient(135deg, #ff8b3d, #ff4ecd); box-shadow: 0 6px 16px -4px rgba(255, 139, 61, 0.5); }
.ci-icon-phone { background: linear-gradient(135deg, #ff8b3d, #ffd93d); box-shadow: 0 6px 16px -4px rgba(255, 139, 61, 0.5); }
.ci-icon-wa    { background: linear-gradient(135deg, #25D366, #128C7E); box-shadow: 0 6px 16px -4px rgba(37, 211, 102, 0.5); }
.ci-method:hover .ci-icon { transform: scale(1.06) rotate(-3deg); transition: transform 0.4s var(--ease); }

.ci-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}
.ci-text span {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 500;
}
.ci-text strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
  word-break: break-all;
}
.ci-wa-num {
  background: linear-gradient(135deg, #25D366, #128C7E);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;
}
.ci-arrow {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border);
  display: grid;
  place-items: center;
  color: var(--text-dim);
  flex-shrink: 0;
  transition: all 0.3s var(--ease);
  opacity: 0;
  transform: translateX(-4px);
}
.ci-arrow svg { width: 14px; height: 14px; }
.ci-method:hover .ci-arrow { opacity: 1; transform: translateX(0); color: var(--text); }

.ci-method-wa {
  background: linear-gradient(135deg, rgba(37, 211, 102, 0.08), rgba(18, 140, 126, 0.04));
  border-color: rgba(37, 211, 102, 0.25);
}
[data-theme="light"] .ci-method-wa {
  background: linear-gradient(135deg, rgba(37, 211, 102, 0.08), rgba(18, 140, 126, 0.04));
}
.ci-method-wa:hover { border-color: rgba(37, 211, 102, 0.5); }
.ci-pulse {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 0 10px #25D366;
  animation: ci-pulse 1.6s ease-in-out infinite;
  pointer-events: none;
}
@keyframes ci-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.5); opacity: 0.4; }
}

.ci-social {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  position: relative;
}
.ci-social-label {
  font-size: 13px;
  color: var(--text-muted);
  font-weight: 500;
}
.ci-social-icons {
  display: flex;
  gap: 8px;
}
.ci-soc {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text-dim);
  transition: all 0.3s var(--ease);
}
.ci-soc svg { width: 16px; height: 16px; }
.ci-soc:hover {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px -4px rgba(124, 92, 255, 0.5);
}

/* ====== Send enquiry form (right) ====== */
.cf-card {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 32px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  position: relative;
  overflow: hidden;
}
[data-theme="light"] .cf-card { background: #ffffff; }
.cf-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 100% 0%, rgba(124, 92, 255, 0.06), transparent 50%);
  pointer-events: none;
}

.cf-head { position: relative; }
.cf-head h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0 0 8px;
}
.cf-head p {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.9rem;
  color: var(--text-dim);
  margin: 0;
}
.cf-wa-mini {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  flex-shrink: 0;
}
.cf-wa-mini svg { width: 11px; height: 11px; }

/* Form */
.cf-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
}
.cf-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 560px) {
  .cf-row { grid-template-columns: 1fr; }
  .ci-card, .cf-card { padding: 24px; }
}
.cf-field {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.cf-field label {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
}
.cf-field label em {
  font-style: normal;
  color: #ff4ecd;
  margin-left: 2px;
}
.cf-field input,
.cf-field select,
.cf-field textarea {
  width: 100%;
  padding: 12px 14px;
  border-radius: 10px;
  background: var(--surface-2);
  border: 1px solid var(--border);
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--text);
  transition: border-color 0.3s var(--ease), background 0.3s var(--ease), box-shadow 0.3s var(--ease);
  resize: vertical;
}
[data-theme="light"] .cf-field input,
[data-theme="light"] .cf-field select,
[data-theme="light"] .cf-field textarea {
  background: #f7f8fb;
}
.cf-field input::placeholder,
.cf-field textarea::placeholder { color: var(--text-muted); }
.cf-field input:focus,
.cf-field select:focus,
.cf-field textarea:focus {
  outline: none;
  border-color: rgba(124, 92, 255, 0.5);
  background: var(--surface);
  box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.12);
}
[data-theme="light"] .cf-field input:focus,
[data-theme="light"] .cf-field select:focus,
[data-theme="light"] .cf-field textarea:focus { background: #ffffff; }

.cf-field select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23a4a4b3' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
  /* Hint to browser for native dropdown rendering */
  color-scheme: dark;
}
[data-theme="light"] .cf-field select {
  color-scheme: light;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237a7a88' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
}

/* Explicit <option> styling — basic only.
   Don't style :checked / :hover — Windows layers its native checkmark on top
   and the result is visually broken (repeating chevron-like glyphs).
   With color-scheme: dark, the OS handles selected/hover state correctly. */
.cf-field select option {
  background-color: #0c0c18;
  color: #f5f5f7;
}
[data-theme="light"] .cf-field select option {
  background-color: #ffffff;
  color: #0a0a18;
}

/* Animated underline that pulses on focus */
.cf-field-line {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 0%;
  height: 2px;
  background: var(--gradient);
  border-radius: 100px;
  transition: width 0.4s var(--ease);
  pointer-events: none;
}
.cf-field input:focus ~ .cf-field-line,
.cf-field select:focus ~ .cf-field-line,
.cf-field textarea:focus ~ .cf-field-line { width: 100%; }

/* Submit button — WhatsApp-themed with shimmer */
.cf-submit {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 28px;
  border-radius: 14px;
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #fff;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.01em;
  border: none;
  cursor: pointer;
  overflow: hidden;
  box-shadow: 0 12px 30px -8px rgba(37, 211, 102, 0.5);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.cf-submit > * { position: relative; z-index: 2; }
.cf-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px -8px rgba(37, 211, 102, 0.7);
}
.cf-submit-shine {
  position: absolute;
  top: 0;
  left: -50%;
  width: 50%;
  height: 100%;
  background: linear-gradient(110deg, transparent, rgba(255, 255, 255, 0.25), transparent);
  z-index: 1;
  animation: cf-shine 2.6s ease-in-out infinite;
}
@keyframes cf-shine {
  0%   { left: -50%; }
  60%, 100% { left: 110%; }
}
.cf-submit-wa { width: 18px; height: 18px; }
.cf-submit-arr {
  width: 16px;
  height: 16px;
  transition: transform 0.3s var(--ease);
}
.cf-submit:hover .cf-submit-arr { transform: translateX(4px); }

.cf-note {
  text-align: center;
  font-size: 12px;
  color: var(--text-muted);
  margin: 0;
}

/* ============ LEGAL PAGES (privacy / terms / refund / sitemap) ============ */
.legal-page {
  min-height: 100vh;
}

/* "Back to home" button in nav */
.legal-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s var(--ease);
}
.legal-back svg {
  width: 16px;
  height: 16px;
  transition: transform 0.3s var(--ease);
}
.legal-back:hover {
  background: var(--gradient);
  border-color: transparent;
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px -8px rgba(124, 92, 255, 0.5);
}
.legal-back:hover svg { transform: translateX(-3px); }

/* Hero */
.legal-hero {
  position: relative;
  padding: 160px 24px 80px;
  overflow: hidden;
  text-align: center;
  border-bottom: 1px solid var(--border);
}
.legal-hero-bg { position: absolute; inset: 0; pointer-events: none; }
.legal-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(110px);
  opacity: 0.32;
  animation: drift 24s ease-in-out infinite;
}
.legal-orb-1 {
  width: 480px; height: 480px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  top: -10%; left: 10%;
}
.legal-orb-2 {
  width: 540px; height: 540px;
  background: radial-gradient(circle, #00e5ff, transparent 70%);
  top: 20%; right: -10%;
  animation-delay: -12s;
}
.legal-hero .container { position: relative; z-index: 1; }
.legal-hero .eyebrow { margin-bottom: 18px; }
.legal-title {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2.4rem, 6vw, 4.2rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  margin: 0 0 14px;
  line-height: 1.05;
  color: var(--text);
}
.legal-updated {
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin: 0;
}

/* Content layout — sticky TOC on left, article body on right */
.legal-content {
  padding: 80px 0 120px;
  position: relative;
}
.legal-grid {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 80px;
  align-items: flex-start;
}
@media (max-width: 880px) {
  .legal-grid { grid-template-columns: 1fr; gap: 32px; }
}

/* Sticky TOC */
.legal-toc {
  position: sticky;
  top: 100px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 20px 18px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 13px;
  line-height: 1.5;
}
.legal-toc h4 {
  margin: 0 0 8px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.legal-toc a {
  color: var(--text-dim);
  text-decoration: none;
  padding: 6px 8px;
  border-radius: 6px;
  transition: all 0.2s var(--ease);
  position: relative;
  border-left: 2px solid transparent;
  padding-left: 10px;
}
.legal-toc a:hover {
  color: var(--text);
  background: var(--surface-2);
  border-left-color: var(--accent-2);
  padding-left: 12px;
}

/* Article body */
.legal-body {
  max-width: 760px;
  font-size: 15.5px;
  line-height: 1.7;
  color: var(--text-dim);
}
.legal-body section {
  scroll-margin-top: 100px;
  margin-bottom: 48px;
}
.legal-body section:last-child { margin-bottom: 0; }
.legal-body h2 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
  position: relative;
}
.legal-body h2::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 60px;
  height: 1px;
  background: var(--gradient);
}
.legal-body p { margin: 0 0 16px; }
.legal-body p:last-child { margin-bottom: 0; }
.legal-body strong { color: var(--text); font-weight: 600; }
.legal-body em { color: var(--text); font-style: italic; }
.legal-body a {
  color: var(--accent-2);
  text-decoration: none;
  border-bottom: 1px solid rgba(0, 229, 255, 0.3);
  transition: all 0.2s var(--ease);
}
.legal-body a:hover {
  color: var(--text);
  border-bottom-color: var(--text);
}
.legal-body ul {
  margin: 0 0 16px;
  padding-left: 0;
  list-style: none;
}
.legal-body li {
  position: relative;
  padding-left: 22px;
  margin-bottom: 8px;
}
.legal-body li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gradient);
  box-shadow: 0 0 6px rgba(124, 92, 255, 0.4);
}

/* === Sitemap-specific layout === */
.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 24px;
}
.sitemap-block {
  padding: 28px;
  border-radius: 18px;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: border-color 0.4s var(--ease), transform 0.4s var(--ease);
}
.sitemap-block:hover {
  border-color: var(--border-2);
  transform: translateY(-4px);
}
.sitemap-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0 0 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--border);
}
.sitemap-num {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.sitemap-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sitemap-list li { margin: 0; padding: 0; }
.sitemap-list li::before { display: none; }
.sitemap-list a {
  display: grid;
  grid-template-columns: 24px 1fr;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  text-decoration: none;
  color: var(--text-dim);
  font-size: 14px;
  transition: all 0.25s var(--ease);
  border: 1px solid transparent;
}
.sitemap-list a:hover {
  background: var(--surface-2);
  color: var(--text);
  border-color: var(--border);
  transform: translateX(4px);
}
.sitemap-list a.active {
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.15), rgba(0, 229, 255, 0.05));
  border-color: rgba(124, 92, 255, 0.35);
  color: var(--text);
}
.sitemap-list .sm-arrow {
  color: var(--accent-2);
  font-weight: 700;
  font-family: 'Space Grotesk', sans-serif;
}
.sitemap-list a span:nth-of-type(1) { font-weight: 600; color: var(--text); }
.sitemap-list a em {
  font-style: normal;
  font-size: 12px;
  color: var(--text-muted);
  grid-column: 2;
}

/* Legal page footer (simplified) */
.legal-footer {
  padding: 40px 0;
  border-top: 1px solid var(--border);
  background: linear-gradient(180deg, transparent, rgba(7, 7, 13, 0.5));
}
.legal-foot-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--border);
}
.legal-foot-links {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  font-size: 14px;
}
.legal-foot-links a {
  color: var(--text-dim);
  text-decoration: none;
  transition: color 0.3s var(--ease);
}
.legal-foot-links a:hover { color: var(--text); }
.legal-foot-links a.active {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-weight: 600;
}
.legal-foot-links span { color: var(--text-muted); opacity: 0.5; }
.legal-foot-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--text-muted);
}
.legal-foot-cta {
  color: var(--accent-2);
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s var(--ease);
}
.legal-foot-cta:hover {
  color: var(--text);
  transform: translateX(2px);
}

/* Mobile tweaks */
@media (max-width: 720px) {
  .legal-hero { padding: 130px 16px 60px; }
  .legal-content { padding: 48px 0 80px; }
  .legal-toc { position: static; }
  .legal-body { font-size: 14.5px; }
  .legal-foot-top { flex-direction: column; align-items: center; text-align: center; }
  .legal-foot-bottom { flex-direction: column; text-align: center; }
}

/* ============ FLOATING CALL-TO BUTTON (fixed; scrolls to contact form) ============ */
.float-cta {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 90;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px 12px 14px;
  border-radius: 100px;
  background: linear-gradient(135deg, #25D366 0%, #128C7E 100%);
  color: #fff;
  text-decoration: none;
  box-shadow:
    0 14px 38px -10px rgba(37, 211, 102, 0.65),
    0 0 0 0 rgba(37, 211, 102, 0.45);
  transition: transform 0.4s var(--ease), box-shadow 0.4s var(--ease), opacity 0.4s var(--ease);
  /* Slide in from below on first paint */
  animation: fcta-enter 0.6s var(--ease-out) 0.8s backwards;
  font-family: 'Space Grotesk', 'Inter', sans-serif;
}
@keyframes fcta-enter {
  from { transform: translateY(80px) scale(0.9); opacity: 0; }
  to   { transform: translateY(0)   scale(1);   opacity: 1; }
}

/* Pulsing halo around the button (continuous, draws the eye) */
.float-cta .fcta-pulse {
  position: absolute;
  inset: 0;
  border-radius: 100px;
  pointer-events: none;
  box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7);
  animation: fcta-pulse 2.2s ease-out infinite;
}
@keyframes fcta-pulse {
  0%   { box-shadow: 0 0 0 0   rgba(37, 211, 102, 0.55); }
  70%  { box-shadow: 0 0 0 22px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0   rgba(37, 211, 102, 0); }
}

/* Icon (phone) — bouncing ring around it */
.float-cta .fcta-icon {
  position: relative;
  z-index: 2;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  animation: fcta-ring 1.6s ease-in-out infinite;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.float-cta .fcta-icon svg { width: 18px; height: 18px; }
@keyframes fcta-ring {
  0%, 100% { transform: rotate(0); }
  10%, 30% { transform: rotate(-12deg); }
  20%, 40% { transform: rotate(12deg); }
  50%      { transform: rotate(0); }
}

/* Label */
.float-cta .fcta-label {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 1px;
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.float-cta .fcta-label strong {
  font-size: 14px;
  font-weight: 700;
}
.float-cta .fcta-label em {
  font-style: normal;
  font-size: 10px;
  font-weight: 500;
  opacity: 0.85;
  letter-spacing: 0.04em;
}

/* Hover state — lift + intensify shadow */
.float-cta:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow:
    0 22px 50px -10px rgba(37, 211, 102, 0.85),
    0 0 0 0 rgba(37, 211, 102, 0.55);
}
.float-cta:active {
  transform: translateY(-1px) scale(0.98);
}

/* Hide the floating CTA when the contact section itself is on screen
   — set by JS via .float-cta.is-hidden */
.float-cta.is-hidden {
  opacity: 0;
  transform: translateY(40px) scale(0.9);
  pointer-events: none;
}

/* Mobile — collapse to circular icon-only button */
@media (max-width: 560px) {
  .float-cta {
    right: 16px;
    bottom: 16px;
    padding: 12px;
    border-radius: 50%;
  }
  .float-cta .fcta-label { display: none; }
  .float-cta .fcta-icon {
    width: 32px;
    height: 32px;
    background: transparent;
  }
}

/* Reduced motion — kill the wiggle and the pulse */
@media (prefers-reduced-motion: reduce) {
  .float-cta { animation: none; }
  .float-cta .fcta-pulse,
  .float-cta .fcta-icon { animation: none; }
}

/* ============ FOOTER (advanced) ============ */
.footer-x {
  position: relative;
  padding: 80px 0 28px;
  border-top: 1px solid var(--border);
  background: linear-gradient(180deg, transparent, rgba(7, 7, 13, 0.6));
}
[data-theme="light"] .footer-x {
  background: linear-gradient(180deg, transparent, rgba(245, 246, 250, 0.5));
}

.fx-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 56px;
  margin-bottom: 48px;
}
@media (max-width: 880px) {
  .fx-top { grid-template-columns: 1fr 1fr; gap: 40px; }
  .fx-brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .fx-top { grid-template-columns: 1fr; }
}

/* Brand column */
.fx-brand { display: flex; flex-direction: column; gap: 18px; max-width: 360px; }
.fx-pitch {
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-dim);
  margin: 0;
}
.fx-social { display: flex; gap: 8px; }
.fx-social a {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  background: var(--surface-2);
  border: 1px solid var(--border);
  color: var(--text-dim);
  transition: all 0.3s var(--ease);
}
.fx-social a svg { width: 14px; height: 14px; }
.fx-social a:hover {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  transform: translateY(-3px);
  box-shadow: 0 8px 20px -4px rgba(124, 92, 255, 0.5);
}

/* Link columns */
.fx-col { display: flex; flex-direction: column; gap: 14px; }
.fx-col h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text);
  margin: 0 0 4px;
}
.fx-col a {
  position: relative;
  font-size: 14px;
  color: var(--text-dim);
  text-decoration: none;
  transition: color 0.3s var(--ease), padding-left 0.3s var(--ease);
  width: fit-content;
}
.fx-col a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 1px;
  background: var(--gradient);
  transition: width 0.3s var(--ease);
}
.fx-col a:hover {
  color: var(--text);
  padding-left: 18px;
}
.fx-col a:hover::before { width: 12px; }

/* Divider */
.fx-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border-2), transparent);
  margin: 28px 0;
}

/* Payments row */
.fx-payments {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
}
.fx-pay-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text);
  flex-shrink: 0;
}
.fx-pay-label svg {
  width: 14px;
  height: 14px;
  color: #ffd93d;
  filter: drop-shadow(0 0 6px rgba(255, 217, 61, 0.5));
}
.fx-pay-label strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
}

.fx-pay-logos {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.fx-pay-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  min-width: 64px;
  padding: 0 14px;
  border-radius: 8px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.08);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
[data-theme="dark"] .fx-pay-logo {
  background: #ffffff;
}
.fx-pay-logo:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px -4px rgba(0, 0, 0, 0.25);
}
.fx-pay-logo img {
  height: 18px;
  width: auto;
  display: block;
}
/* === Payment marks (stylized text/SVG, render reliably without depending on a CDN) === */
.fx-pay-logo {
  font-family: 'Inter', system-ui, sans-serif;
}

/* Razorpay — blue arrow icon + wordmark */
.fxp-razor {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.fxp-razor svg { width: 16px; height: 16px; }
.fxp-razor em {
  font-style: normal;
  font-size: 13px;
  font-weight: 700;
  color: #0c2c63;
  letter-spacing: -0.02em;
}

/* UPI — bicolor (orange top half + green bottom half) typographic mark */
.fxp-upi {
  display: inline-flex;
  align-items: baseline;
  font-family: 'Inter', sans-serif;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
}
.fxp-upi .fxp-up {
  font-style: normal;
  background: linear-gradient(180deg, #ff8b3d 0%, #ff8b3d 50%, #25D366 50%, #25D366 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.fxp-upi .fxp-i {
  font-style: normal;
  color: #25D366;
  margin-left: 1px;
}

/* Mastercard — overlapping red + yellow circles + lowercase wordmark */
.fxp-mc {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.fxp-mc-circle {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.fxp-mc-red    { background: #eb001b; margin-right: -6px; }
.fxp-mc-yellow { background: #f79e1b; opacity: 0.92; mix-blend-mode: multiply; }
.fxp-mc em {
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  color: #0a1a2a;
  letter-spacing: 0.01em;
  margin-left: 4px;
  text-transform: lowercase;
  font-family: 'Inter', sans-serif;
  white-space: nowrap;
}

/* Visa — bold italic-ish wordmark in deep blue */
.fxp-visa {
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 18px;
  font-weight: 900;
  letter-spacing: -0.02em;
  font-style: italic;
  color: #1a1f71;
  line-height: 1;
}

/* Google Pay — multicolor G + grey "Pay" */
.fxp-gpay {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.fxp-g {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: conic-gradient(from -90deg, #4285F4 0% 25%, #34A853 25% 50%, #FBBC05 50% 75%, #EA4335 75% 100%);
  position: relative;
}
.fxp-g::after {
  content: '';
  position: absolute;
  inset: 2.5px;
  border-radius: 50%;
  background: #ffffff;
}
.fxp-g .fxp-g-blue {
  position: relative;
  z-index: 1;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 13px;
  font-weight: 800;
  font-style: normal;
  color: #4285F4;
  line-height: 1;
}
.fxp-gpay em {
  font-style: normal;
  font-size: 14px;
  font-weight: 600;
  color: #5f6368;
  letter-spacing: -0.01em;
}

/* Paytm — bold lowercase wordmark */
.fxp-paytm {
  display: inline-flex;
  align-items: baseline;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -0.04em;
  line-height: 1;
}
.fxp-paytm b {
  font-weight: 900;
  color: #002e6e;
}
.fxp-paytm i {
  font-style: normal;
  font-weight: 900;
  color: #00baf2;
}

/* RuPay — green Ru + orange Pay */
.fxp-rupay {
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -0.02em;
  line-height: 1;
}
.fxp-rupay b { color: #097969; }
.fxp-rupay i {
  font-style: normal;
  color: #f57215;
  font-weight: 900;
}

/* Bottom bar */
.fx-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.fx-copy {
  font-size: 13px;
  color: var(--text-muted);
}
.fx-bottom-links {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.fx-bottom-links a {
  font-size: 13px;
  color: var(--text-dim);
  transition: color 0.3s var(--ease);
}
.fx-bottom-links a:hover { color: var(--text); }
.fx-dot { color: var(--text-muted); opacity: 0.5; }

@media (max-width: 720px) {
  .fx-payments { flex-direction: column; align-items: flex-start; }
  .fx-bottom { flex-direction: column; align-items: center; text-align: center; }
}

/* ============ FOOTER (legacy — kept dormant) ============ */
.footer {
  padding: 60px 0 40px;
  border-top: 1px solid var(--border);
}
.footer-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
}
.footer-brand p {
  font-size: 13px;
  color: var(--text-muted);
  margin-top: 10px;
}
.footer-links {
  display: flex;
  gap: 28px;
}
.footer-links a {
  font-size: 14px;
  color: var(--text-dim);
  transition: color 0.3s var(--ease);
}
.footer-links a:hover { color: var(--text); }
.footer-meta {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: right;
  font-size: 12px;
  color: var(--text-muted);
}
@media (max-width: 720px) {
  .footer-inner { flex-direction: column; text-align: center; }
  .footer-meta { text-align: center; }
}

/* ============ REVEAL ANIMATION ============ */
[data-reveal] {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
}
[data-reveal].in {
  opacity: 1;
  transform: translateY(0);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-reveal] { opacity: 1; transform: none; }
  .hero-title .word { transform: none; animation: none; }
}

/* ============ E-COMMERCE HIGHLIGHT (section after Services) ============ */
.ecom-highlight {
  position: relative;
  overflow: hidden;
}
.eh-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.eh-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(110px);
  opacity: 0.3;
  animation: drift 26s ease-in-out infinite;
}
.eh-orb-1 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, #ff4ecd, transparent 70%);
  top: -10%; right: -10%;
}
.eh-orb-2 {
  width: 520px; height: 520px;
  background: radial-gradient(circle, #7c5cff, transparent 70%);
  bottom: -15%; left: -10%;
  animation-delay: -12s;
}
.ecom-highlight .container { position: relative; z-index: 1; }

.eh-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 8px;
}
@media (max-width: 980px) {
  .eh-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .eh-grid { grid-template-columns: 1fr; }
}

.eh-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.eh-card:hover {
  transform: translateY(-8px);
  border-color: rgba(124, 92, 255, 0.5);
  box-shadow: 0 30px 60px -20px rgba(124, 92, 255, 0.45);
}

.eh-card-img {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #0a0a14;
}
.eh-card-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  transition: transform 0.6s var(--ease), filter 0.4s var(--ease);
}
.eh-card:hover .eh-card-img img {
  transform: scale(1.04);
  filter: brightness(1.05);
}

/* Dark overlay with "View details →" CTA */
.eh-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(7, 7, 13, 0.85));
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 16px;
  opacity: 0;
  transition: opacity 0.4s var(--ease);
}
.eh-card:hover .eh-card-overlay { opacity: 1; }
.eh-card-cta {
  padding: 8px 14px;
  border-radius: 100px;
  background: var(--gradient);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: -0.01em;
  box-shadow: 0 8px 20px -6px rgba(124, 92, 255, 0.6);
  transform: translateX(20px);
  transition: transform 0.4s var(--ease);
}
.eh-card:hover .eh-card-cta { transform: translateX(0); }

.eh-card-meta {
  padding: 22px 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  position: relative;
}
.eh-card-tag {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-2);
}
.eh-card-meta h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
}
.eh-card-meta p {
  font-size: 13px;
  color: var(--text-dim);
  margin: 0;
}

.eh-cta-row {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 44px;
}

/* ============ E-COMMERCE DEDICATED PAGE (ecommerce.html) ============ */

/* Featured rows — alternating image / text layout */
.ep-showcase { padding: 80px 0 60px; }
.ep-feature {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
  padding: 48px 0;
}
.ep-feature.reverse .ep-feature-img { order: 2; }
.ep-feature.reverse .ep-feature-meta { order: 1; }
@media (max-width: 980px) {
  .ep-feature { grid-template-columns: 1fr; gap: 28px; padding: 32px 0; }
  .ep-feature.reverse .ep-feature-img { order: 1; }
  .ep-feature.reverse .ep-feature-meta { order: 2; }
}

.ep-feature-img {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--border-2);
  box-shadow: 0 30px 70px -20px rgba(0, 0, 0, 0.6),
              0 0 60px -20px rgba(124, 92, 255, 0.35);
  background: #0a0a14;
}
.ep-feature-img img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

.ep-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 100px;
  background: rgba(124, 92, 255, 0.12);
  border: 1px solid rgba(124, 92, 255, 0.3);
  color: #c4b5ff;
  margin-bottom: 14px;
}
.ep-feature-meta h2 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--text);
  margin: 0 0 14px;
}
.ep-feature-meta h2 em {
  font-style: normal;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ep-feature-meta p {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text-dim);
  margin: 0 0 18px;
}

.ep-features-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ep-features-list li {
  position: relative;
  padding-left: 26px;
  font-size: 0.92rem;
  color: var(--text-dim);
  line-height: 1.5;
}
.ep-features-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--gradient);
  box-shadow: 0 0 8px rgba(124, 92, 255, 0.5);
}
.ep-features-list li::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 10px;
  width: 4px;
  height: 8px;
  border-right: 1.6px solid #fff;
  border-bottom: 1.6px solid #fff;
  transform: rotate(45deg);
}

/* Includes grid */
.ep-includes {
  padding: 60px 0;
  background: linear-gradient(180deg, transparent, rgba(124, 92, 255, 0.03));
}
.ep-includes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 32px;
}
@media (max-width: 880px) { .ep-includes-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 520px) { .ep-includes-grid { grid-template-columns: 1fr; } }

.ep-inc-card {
  padding: 28px 24px;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease);
}
.ep-inc-card:hover {
  transform: translateY(-4px);
  border-color: var(--border-2);
}
.ep-inc-ic {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--bg, var(--gradient));
  margin-bottom: 18px;
  box-shadow: 0 10px 24px -8px rgba(124, 92, 255, 0.4);
}
.ep-inc-ic svg { width: 22px; height: 22px; }
.ep-inc-card h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0 0 8px;
}
.ep-inc-card p {
  font-size: 0.9rem;
  color: var(--text-dim);
  line-height: 1.55;
  margin: 0;
}

/* ===== 3D Coverflow slideshow (ecommerce.html) ===== */
.ep-slideshow {
  position: relative;
  padding: 70px 0 60px;
  overflow: hidden;
}

.ep-slide-stage {
  position: relative;
  width: 100%;
  height: clamp(380px, 58vw, 600px);
  perspective: 1800px;
  perspective-origin: 50% 45%;
  overflow: hidden;
  margin-top: 28px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}

.ep-slide-track {
  position: relative;
  width: 100%;
  height: 100%;
  transform-style: preserve-3d;
}

.ep-slide {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(620px, 70%);
  aspect-ratio: 16 / 10;
  margin: 0;
  transform-origin: center center;
  transform: translate(-50%, -50%);
  transition:
    transform 1s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.7s ease,
    filter 0.7s ease,
    box-shadow 0.7s ease,
    border-color 0.7s ease;
  border-radius: 20px;
  overflow: hidden;
  background: #0a0a14;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow:
    0 30px 60px -20px rgba(0, 0, 0, 0.75),
    0 0 60px -20px rgba(124, 92, 255, 0.35);
  pointer-events: none;
  will-change: transform, opacity, filter;
}
.ep-slide.active { pointer-events: auto; }

.ep-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  user-select: none;
  -webkit-user-drag: none;
  /* Subtle Ken Burns zoom on the active slide while it "holds" */
  transform: scale(1);
  transition: transform 0.7s ease;
  will-change: transform;
}
.ep-slide.active img {
  animation: epKenBurns var(--ep-hold, 3800ms) ease-out forwards;
}

@keyframes epKenBurns {
  0%   { transform: scale(1)    translate3d(0, 0, 0); }
  100% { transform: scale(1.07) translate3d(0, -1.5%, 0); }
}

/* Soft inner gloss to give slides depth */
.ep-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent 45%);
  pointer-events: none;
  z-index: 2;
}

/* Bottom darken so it reads against the page */
.ep-slide::before {
  content: '';
  position: absolute;
  inset: auto 0 0 0;
  height: 45%;
  background: linear-gradient(180deg, transparent, rgba(7, 7, 13, 0.55));
  pointer-events: none;
  z-index: 1;
}

/* Active slide gets brighter + bigger shadow + breathing glow */
.ep-slide.active {
  box-shadow:
    0 50px 100px -20px rgba(0, 0, 0, 0.9),
    0 0 0 1px rgba(124, 92, 255, 0.25) inset,
    0 0 120px -10px rgba(124, 92, 255, 0.65),
    0 0 60px -10px rgba(0, 229, 255, 0.35);
  border-color: rgba(124, 92, 255, 0.45);
  animation: epActiveBreath 3.6s ease-in-out infinite;
}

@keyframes epActiveBreath {
  0%, 100% {
    box-shadow:
      0 50px 100px -20px rgba(0, 0, 0, 0.9),
      0 0 0 1px rgba(124, 92, 255, 0.25) inset,
      0 0 120px -10px rgba(124, 92, 255, 0.55),
      0 0 60px -10px rgba(0, 229, 255, 0.3);
  }
  50% {
    box-shadow:
      0 50px 100px -20px rgba(0, 0, 0, 0.9),
      0 0 0 1px rgba(124, 92, 255, 0.35) inset,
      0 0 150px -10px rgba(124, 92, 255, 0.75),
      0 0 80px -10px rgba(0, 229, 255, 0.45);
  }
}

/* ----- Progress bar — fills during HOLD, resets on slide ----- */
.ep-slide-progress {
  position: relative;
  margin: 22px auto 0;
  width: min(280px, 60%);
  height: 3px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}
.ep-slide-progress-bar {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0%;
  background: linear-gradient(90deg, #7c5cff, #00e5ff);
  border-radius: inherit;
  box-shadow: 0 0 12px rgba(124, 92, 255, 0.6);
}
.ep-slide-progress-bar.running {
  animation: epProgressFill var(--ep-hold, 3800ms) linear forwards;
}
@keyframes epProgressFill {
  from { width: 0%; }
  to   { width: 100%; }
}
.ep-slide-progress-bar.paused {
  animation-play-state: paused;
}

/* Slide nav arrows */
.ep-slide-nav {
  position: absolute;
  top: 50%;
  z-index: 10;
  transform: translateY(-50%);
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(7, 7, 13, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: var(--text);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all 0.3s var(--ease);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.ep-slide-nav svg { width: 18px; height: 18px; }
.ep-slide-nav.prev { left: 16px; }
.ep-slide-nav.next { right: 16px; }
.ep-slide-nav:hover {
  background: var(--gradient);
  border-color: transparent;
  color: #fff;
  transform: translateY(-50%) scale(1.06);
  box-shadow: 0 10px 30px -8px rgba(124, 92, 255, 0.6);
}
@media (max-width: 560px) {
  .ep-slide-nav { width: 38px; height: 38px; }
  .ep-slide-nav.prev { left: 8px; }
  .ep-slide-nav.next { right: 8px; }
}

/* Dots row */
.ep-slide-dots {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 28px;
}
.ep-slide-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all 0.4s var(--ease);
}
.ep-slide-dot.active {
  width: 32px;
  border-radius: 100px;
  background: var(--gradient);
  box-shadow: 0 0 12px rgba(124, 92, 255, 0.6);
}
.ep-slide-dot:hover:not(.active) {
  background: rgba(255, 255, 255, 0.4);
}

/* Reduced motion — disable 3D rotation, just fade between slides */
@media (prefers-reduced-motion: reduce) {
  .ep-slide { transition: opacity 0.4s ease; }
  .ep-slide.active { animation: none; }
  .ep-slide.active img { animation: none; }
  .ep-slide-progress-bar.running { animation: none; width: 100%; }
}

/* ===== Case studies / Success stories ===== */
.ep-cases { padding: 60px 0 80px; }
.ep-cases-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
  margin-top: 36px;
}
@media (max-width: 980px) { .ep-cases-grid { grid-template-columns: 1fr; max-width: 520px; margin-left: auto; margin-right: auto; } }

.ep-case {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: transform 0.5s var(--ease), border-color 0.5s var(--ease), box-shadow 0.5s var(--ease);
}
.ep-case:hover {
  transform: translateY(-6px);
  border-color: rgba(124, 92, 255, 0.45);
  box-shadow: 0 24px 48px -16px rgba(124, 92, 255, 0.4);
}

.ep-case-hero {
  position: relative;
  padding: 28px 24px 30px;
  background: linear-gradient(135deg, var(--c1, #7c5cff), var(--c2, #00e5ff));
  overflow: hidden;
  color: #fff;
}
.ep-case-blob {
  position: absolute;
  top: -40%;
  right: -20%;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.25), transparent 60%);
  filter: blur(20px);
  animation: drift 16s ease-in-out infinite;
}
.ep-case-industry {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 5px 12px;
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  position: relative;
  z-index: 1;
}
.ep-case-metric {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  position: relative;
  z-index: 1;
}
.ep-case-metric strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2rem, 4.5vw, 2.6rem);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.25);
}
.ep-case-metric em {
  font-style: normal;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.85);
  letter-spacing: 0.02em;
}

.ep-case-body {
  padding: 22px 24px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ep-case-body h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  margin: 0;
  letter-spacing: -0.01em;
}
.ep-case-body > p {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--text-dim);
  margin: 0;
}
.ep-case-bullets {
  list-style: none;
  padding: 12px 0 0;
  margin: 0;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ep-case-bullets li {
  font-size: 0.82rem;
  color: var(--text-muted);
  display: flex;
  justify-content: space-between;
  gap: 8px;
}
.ep-case-bullets li strong {
  color: var(--text);
  font-weight: 700;
  font-family: 'Space Grotesk', sans-serif;
  letter-spacing: -0.01em;
}

/* ===== Post-launch services ===== */
.ep-postlaunch { padding: 60px 0; }
.ep-postlaunch-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 32px;
}
@media (max-width: 880px) { .ep-postlaunch-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .ep-postlaunch-grid { grid-template-columns: 1fr; } }

.ep-pl-card {
  position: relative;
  padding: 28px 24px 26px;
  border-radius: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease), box-shadow 0.4s var(--ease);
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}
.ep-pl-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at top right, rgba(124, 92, 255, 0.08), transparent 60%);
  opacity: 0;
  transition: opacity 0.4s var(--ease);
  pointer-events: none;
}
.ep-pl-card:hover {
  transform: translateY(-4px);
  border-color: rgba(124, 92, 255, 0.4);
  box-shadow: 0 16px 32px -12px rgba(124, 92, 255, 0.25);
}
.ep-pl-card:hover::before { opacity: 1; }

.ep-pl-num {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -0.04em;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
  margin-bottom: 4px;
}
.ep-pl-card h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
  margin: 0;
}
.ep-pl-card > p {
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--text-dim);
  margin: 0;
}
.ep-pl-bullets {
  list-style: none;
  padding: 12px 0 0;
  margin: 0;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.ep-pl-bullets li {
  position: relative;
  padding-left: 16px;
  font-size: 0.8rem;
  color: var(--text-muted);
  line-height: 1.45;
}
.ep-pl-bullets li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent-2);
}

/* ===== E-commerce FAQ — reuses the homepage .faq-list styling ===== */
.ep-faq { padding: 60px 0 80px; }
.ep-faq-list {
  max-width: 820px;
  margin: 36px auto 0;
}

/* ===== Stats bar (right under hero) ===== */
.ep-stats-bar {
  position: relative;
  padding: 0 0 24px;
  margin-top: -32px;
  z-index: 2;
}
.ep-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  padding: 28px 24px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.10), rgba(0, 229, 255, 0.05));
  border: 1px solid rgba(124, 92, 255, 0.25);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
@media (max-width: 720px) {
  .ep-stats-grid { grid-template-columns: repeat(2, 1fr); padding: 22px 16px; gap: 16px; }
}
.ep-stat-cell {
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ep-stat-num {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 2px;
  font-family: 'Space Grotesk', sans-serif;
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 1;
}
.ep-stat-num span {
  font-size: clamp(2rem, 4.5vw, 2.8rem);
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ep-stat-num em {
  font-style: normal;
  font-size: clamp(1.1rem, 2.2vw, 1.5rem);
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ep-stat-label {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}

/* ===== Industries grid ===== */
.ep-industries { padding: 60px 0; }
.ep-ind-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  margin-top: 28px;
}
@media (max-width: 980px) { .ep-ind-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .ep-ind-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 420px) { .ep-ind-grid { grid-template-columns: 1fr; } }

.ep-ind-card {
  position: relative;
  padding: 24px 20px 22px;
  border-radius: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease), box-shadow 0.4s var(--ease);
  overflow: hidden;
}
.ep-ind-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: var(--gradient-soft);
  opacity: 0;
  transition: opacity 0.4s var(--ease);
  pointer-events: none;
}
.ep-ind-card:hover {
  transform: translateY(-6px);
  border-color: rgba(124, 92, 255, 0.4);
  box-shadow: 0 18px 36px -12px rgba(124, 92, 255, 0.25);
}
.ep-ind-card:hover::before { opacity: 1; }
.ep-ind-ic {
  width: 42px;
  height: 42px;
  border-radius: 11px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--bg, var(--gradient));
  margin-bottom: 14px;
  box-shadow: 0 8px 18px -6px rgba(124, 92, 255, 0.4);
  position: relative;
  z-index: 1;
}
.ep-ind-ic svg { width: 20px; height: 20px; }
.ep-ind-card h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0 0 6px;
  position: relative;
  z-index: 1;
}
.ep-ind-card p {
  font-size: 0.82rem;
  line-height: 1.5;
  color: var(--text-dim);
  margin: 0;
  position: relative;
  z-index: 1;
}

/* ===== Pricing tiers ===== */
.ep-pricing { padding: 60px 0 80px; }
.ep-price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 36px;
}
@media (max-width: 980px) { .ep-price-grid { grid-template-columns: 1fr; max-width: 480px; margin-left: auto; margin-right: auto; } }

.ep-price-card {
  position: relative;
  padding: 32px 28px 28px;
  border-radius: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 18px;
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease);
}
.ep-price-card:hover {
  transform: translateY(-4px);
  border-color: var(--border-2);
}

/* Featured / popular tier */
.ep-price-featured {
  background: linear-gradient(180deg, rgba(124, 92, 255, 0.12), rgba(0, 229, 255, 0.04));
  border-color: rgba(124, 92, 255, 0.45);
  box-shadow: 0 20px 50px -16px rgba(124, 92, 255, 0.45);
}
@media (min-width: 981px) {
  .ep-price-featured { transform: translateY(-12px); }
  .ep-price-featured:hover { transform: translateY(-16px); }
}

.ep-price-badge {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  padding: 5px 14px;
  border-radius: 100px;
  background: var(--gradient);
  color: #fff;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  box-shadow: 0 8px 20px -4px rgba(124, 92, 255, 0.55);
  white-space: nowrap;
}

.ep-price-head { display: flex; flex-direction: column; gap: 6px; }
.ep-price-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-2);
}
.ep-price-head h3 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--text);
  margin: 0;
  line-height: 1.3;
}

.ep-price-amount {
  display: flex;
  align-items: baseline;
  gap: 2px;
}
.ep-price-amount small {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 22px;
  font-weight: 700;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ep-price-amount strong {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(2.4rem, 5vw, 3.2rem);
  font-weight: 800;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  letter-spacing: -0.04em;
  line-height: 1;
}
.ep-price-meta {
  font-size: 12px;
  color: var(--text-muted);
  letter-spacing: 0.04em;
  margin-top: -4px;
}

.ep-price-features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 9px;
  flex: 1;
  border-top: 1px solid var(--border);
  padding-top: 18px;
}
.ep-price-features li {
  position: relative;
  padding-left: 24px;
  font-size: 0.88rem;
  color: var(--text-dim);
  line-height: 1.45;
}
.ep-price-features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 6px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--gradient);
  box-shadow: 0 0 6px rgba(124, 92, 255, 0.4);
}
.ep-price-features li::after {
  content: '';
  position: absolute;
  left: 4px;
  top: 8px;
  width: 4px;
  height: 7px;
  border-right: 1.6px solid #fff;
  border-bottom: 1.6px solid #fff;
  transform: rotate(45deg);
}
.ep-price-features li strong {
  color: var(--text);
  font-weight: 700;
}

/* CTAs inside tiers */
.ep-price-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 22px;
  border-radius: 100px;
  background: var(--surface-2);
  border: 1px solid var(--border-2);
  color: var(--text);
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s var(--ease);
  align-self: stretch;
}
.ep-price-cta svg { width: 14px; height: 14px; transition: transform 0.3s var(--ease); }
.ep-price-cta:hover {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -8px rgba(124, 92, 255, 0.5);
}
.ep-price-cta:hover svg { transform: translateX(3px); }
.ep-price-cta-primary {
  background: var(--gradient);
  color: #fff;
  border-color: transparent;
  box-shadow: 0 12px 28px -8px rgba(124, 92, 255, 0.5);
}
.ep-price-cta-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 40px -10px rgba(124, 92, 255, 0.7);
}

.ep-price-footnote {
  text-align: center;
  font-size: 13px;
  color: var(--text-muted);
  margin: 36px 0 0;
}
.ep-price-footnote a {
  color: var(--accent-2);
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s var(--ease);
}
.ep-price-footnote a:hover { color: var(--text); }

/* ===== Integration sections (payments / shipping / marketing / cms) ===== */
.ep-integration {
  padding: 60px 0;
  position: relative;
}
.ep-integration + .ep-integration {
  padding-top: 20px;
}

.ep-int-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin: 32px 0 28px;
}
@media (max-width: 880px) { .ep-int-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .ep-int-grid { grid-template-columns: repeat(2, 1fr); } }

.ep-int-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 18px 14px;
  border-radius: 14px;
  background: #ffffff;
  border: 1px solid rgba(15, 23, 42, 0.06);
  text-align: center;
  transition: transform 0.35s var(--ease), box-shadow 0.35s var(--ease);
  min-height: 96px;
}
[data-theme="dark"] .ep-int-chip {
  background: #ffffff;
  border-color: rgba(255, 255, 255, 0.08);
}
.ep-int-chip:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 30px -10px rgba(15, 23, 42, 0.3);
}
.ep-int-chip img {
  max-width: 100px;
  max-height: 40px;
  width: auto;
  height: 36px;
  object-fit: contain;
  object-position: center;
}
.ep-int-chip span:not([class]) {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  color: #0f172a;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

/* Text-style brand marks (for brands not on the icon CDN) */
.ep-int-text {
  /* same base — different content */
}
.ep-int-text > span:first-child {
  display: inline-flex;
  align-items: baseline;
  gap: 1px;
  font-family: 'Inter', system-ui, sans-serif;
  font-size: 17px;
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1;
  white-space: nowrap;
}

.ep-tx-upi b {
  background: linear-gradient(180deg, #ff8b3d 0%, #ff8b3d 50%, #25D366 50%, #25D366 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ep-tx-upi i { font-style: normal; color: #25D366; }

.ep-tx-rupay b { color: #097969; }
.ep-tx-rupay i { font-style: normal; color: #f57215; }

.ep-tx-cod {
  background: linear-gradient(135deg, #0a8aff 0%, #0066d6 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ep-tx-shiprocket b { color: #592e8b; }
.ep-tx-shiprocket i { font-style: normal; color: #f86344; font-size: 15px; }

.ep-tx-delhivery b {
  background: linear-gradient(90deg, #d92e2e, #a01a1a);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ep-tx-bluedart b { color: #0f3a8a; }
.ep-tx-bluedart i { font-style: normal; color: #e83a45; }

.ep-tx-ekart b {
  background: linear-gradient(90deg, #2874f0, #ffe11b);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.ep-tx-indiapost b { color: #b81111; }
.ep-tx-indiapost i { font-style: normal; color: #ed8b00; }

.ep-tx-aramex b {
  color: #d3232a;
  text-transform: lowercase;
  font-style: italic;
}

.ep-tx-dtdc b {
  color: #d9261c;
  letter-spacing: -0.04em;
}

/* Integration feature bullets */
.ep-int-features {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 28px;
  max-width: 920px;
}
@media (max-width: 720px) {
  .ep-int-features { grid-template-columns: 1fr; gap: 10px; }
}
.ep-int-features li {
  position: relative;
  padding-left: 26px;
  font-size: 0.92rem;
  color: var(--text-dim);
  line-height: 1.55;
}
.ep-int-features li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 7px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--gradient);
  box-shadow: 0 0 8px rgba(124, 92, 255, 0.4);
}
.ep-int-features li::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 10px;
  width: 4px;
  height: 8px;
  border-right: 1.6px solid #fff;
  border-bottom: 1.6px solid #fff;
  transform: rotate(45deg);
}
.ep-int-features li strong { color: var(--text); font-weight: 700; }

/* Soft background tints per category (subtle) */
.ep-int-payments::before,
.ep-int-shipping::before,
.ep-int-marketing::before,
.ep-int-cms::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
.ep-int-payments::before { background: radial-gradient(ellipse 60% 50% at 10% 50%, rgba(0, 229, 255, 0.04), transparent 60%); }
.ep-int-shipping::before { background: radial-gradient(ellipse 60% 50% at 90% 50%, rgba(255, 139, 61, 0.05), transparent 60%); }
.ep-int-marketing::before { background: radial-gradient(ellipse 60% 50% at 50% 50%, rgba(124, 92, 255, 0.05), transparent 60%); }
.ep-int-cms::before { background: radial-gradient(ellipse 60% 50% at 70% 50%, rgba(0, 255, 136, 0.04), transparent 60%); }
.ep-integration .container { position: relative; z-index: 1; }

/* Tech stack */
.ep-stack { padding: 60px 0; }
.ep-stack-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  max-width: 820px;
  margin: 32px auto 0;
}
.ep-stack-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border-2);
  transition: transform 0.3s var(--ease), background 0.3s var(--ease);
}
.ep-stack-chip:hover {
  transform: translateY(-3px);
  background: var(--surface-2);
}
.ep-stack-chip img { width: 22px; height: 22px; }
.ep-stack-chip span {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  letter-spacing: -0.01em;
}

/* Process timeline */
.ep-process { padding: 60px 0; }
.ep-timeline {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  position: relative;
  margin-top: 32px;
}
@media (max-width: 880px) {
  .ep-timeline { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
  .ep-timeline { grid-template-columns: 1fr; }
}

.ep-step {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 24px 18px;
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
}
.ep-step-num {
  display: inline-grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--bg-2);
  border: 1.5px solid rgba(124, 92, 255, 0.5);
  margin: 0 auto 14px;
  font-family: 'Space Grotesk', sans-serif;
  font-size: 16px;
  font-weight: 700;
  background-clip: padding-box;
  background-image: linear-gradient(135deg, rgba(124, 92, 255, 0.12), rgba(0, 229, 255, 0.06));
  color: transparent;
  -webkit-background-clip: text;
  position: relative;
}
.ep-step-num::after {
  content: attr(data-num);
}
/* Fallback — just show the num colorfully */
.ep-step-num {
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.15), rgba(0, 229, 255, 0.08));
}
.ep-step-num,
.ep-step-num::before {
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.ep-step h4 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 6px;
}
.ep-step p {
  font-size: 0.85rem;
  color: var(--text-dim);
  line-height: 1.5;
  margin: 0;
}

/* CTA */
.ep-cta { padding: 60px 0 100px; }
.ep-cta-card {
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  padding: 56px 40px;
  border-radius: var(--radius-lg);
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.12), rgba(0, 229, 255, 0.05));
  border: 1px solid rgba(124, 92, 255, 0.3);
  text-align: center;
  overflow: hidden;
}
.ep-cta-card::before {
  content: '';
  position: absolute;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(124, 92, 255, 0.3), transparent 60%);
  top: -50%;
  right: -20%;
  filter: blur(60px);
  z-index: 0;
}
.ep-cta-card > * { position: relative; z-index: 1; }
.ep-cta-card h2 {
  font-family: 'Space Grotesk', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--text);
  margin: 0 0 14px;
}
.ep-cta-card p {
  font-size: 1rem;
  color: var(--text-dim);
  max-width: 540px;
  margin: 0 auto 28px;
  line-height: 1.6;
}
.ep-cta-buttons {
  display: flex;
  gap: 14px;
  justify-content: center;
  flex-wrap: wrap;
}
@media (max-width: 720px) {
  .ep-cta-card { padding: 40px 24px; }
}

/* ============================================================
   MOBILE-FRIENDLY PASS — every section tuned for phones & tablets
   Tablet (≤ 880px), large phone (≤ 720px), small phone (≤ 480px)
   ============================================================ */

/* Prevent any element from causing horizontal scroll on phones */
@media (max-width: 720px) {
  html, body { overflow-x: clip; }
  img, svg, video, canvas { max-width: 100%; height: auto; }

  /* Tighter container gutters */
  .container { padding: 0 18px; }

  /* All buttons get touch-friendly minimum height */
  .btn, .nav-cta, .cf-submit, .calc-cta, .calc-btn-step,
  .t-arrow, .visit-arrow, .ci-method, .legal-back, .faq-cta {
    min-height: 44px;
  }
}

/* ===== Tablet ===== */
@media (max-width: 880px) {
  /* Section heads breathe a bit less */
  .section-head { margin-bottom: 48px; }

  /* Hero stack & text */
  .hero { padding: 110px 18px 70px; }
  .hero-title { font-size: clamp(2.2rem, 8vw, 4rem); }

  /* Showcase laptops — slightly smaller so they fit */
  .dd-laptop { max-width: 100%; }
}

/* ===== Phone (≤ 720px) ===== */
@media (max-width: 720px) {

  /* ===== NAV — make hamburger work cleanly ===== */
  .nav-container { padding: 0 16px; gap: 12px; }
  .nav-cta { padding: 8px 14px; font-size: 13px; }

  /* ===== HERO ===== */
  .hero { padding: 100px 16px 60px; min-height: auto; }
  .hero-content { gap: 36px; }
  .hero-title { font-size: clamp(2rem, 9vw, 3.4rem); line-height: 1.04; }
  .hero-sub { font-size: 0.95rem; max-width: 100%; }
  .hero-cta { gap: 10px; flex-wrap: wrap; justify-content: center; }
  .hero-cta .btn { flex: 1 1 auto; min-width: 140px; justify-content: center; }
  .hero-stats { gap: 14px; padding: 14px 18px; }
  .stat-num { font-size: 20px; }
  .stat-label { font-size: 9px; }
  .stat-divider { height: 26px; }

  /* Hide decorative floating chips around hero — they overlap content on small screens */
  .float { display: none; }

  /* Hero visual cycler — keep on but tighter */
  .hero-visual { min-height: 360px; }
  .hero-browser { max-width: 100%; }

  /* Floating accent chips around hero browser — pull in tight to edges */
  .hfc { padding: 8px 10px; gap: 6px; }
  .hfc-ic { width: 22px; height: 22px; border-radius: 6px; }
  .hfc-ic svg { width: 12px; height: 12px; }
  .hfc-meta strong { font-size: 11px; }
  .hfc-meta span { font-size: 8px; }
  .hfc-1 { left: -2%; top: 4%; }
  .hfc-2 { right: -2%; top: 24%; }
  .hfc-3 { left: -2%; bottom: 4%; }

  /* Scroll indicator — hide on phones, hero is short */
  .scroll-indicator { display: none; }

  /* ===== SERVICES — sticky split → vertical stack ===== */
  .services-head-sticky { position: static; gap: 16px; padding: 0; }
  .services-progress { gap: 10px; }
  .progress-bar { max-width: 100%; }
  .services-cards-col .card { padding: 24px 20px; }

  /* ===== TECH STACK ===== */
  .stack { padding-top: 40px; }
  .stack-group { margin-bottom: 28px; }
  .stack-label { margin-left: 18px; }
  .logo-chip { padding: 10px 14px; gap: 8px; }
  .logo-chip img { width: 18px; height: 18px; }
  .logo-chip span { font-size: 12px; }

  /* ===== WHY ===== */
  .features { gap: 14px; }
  .feature { padding: 24px 20px; }

  /* ===== STATS / OUR IMPACT ===== */
  .big-stats { gap: 14px; }
  .bstat { padding: 28px 18px; }

  /* ===== DEV SHOWCASE — laptop + floating cards ===== */
  .dsh-grid { gap: 36px; }
  .dsh-visual { height: auto; min-height: 380px; padding: 32px 0; }
  .dsh-laptop { width: 92%; }

  /* Reposition floating cards so they don't overflow */
  .dsh-card { padding: 8px 12px; gap: 8px; }
  .dsh-card-ic { width: 28px; height: 28px; border-radius: 8px; }
  .dsh-card-ic svg { width: 14px; height: 14px; }
  .dsh-card-meta strong { font-size: 13px; }
  .dsh-card-meta span { font-size: 9px; }
  .dsh-c1 { top: 0; left: -2%; }
  .dsh-c2 { top: 18%; right: -2%; }
  .dsh-c3 { bottom: 22%; left: -2%; }
  .dsh-c4 { bottom: 6%; right: -2%; }

  /* ===== HOW WE BUILD (process) ===== */
  .process-flow { gap: 32px; padding-top: 12px; }
  .step-orb { width: 84px; height: 84px; }
  .process-step h3 { font-size: 1.2rem; }
  .process-step p { font-size: 13px; max-width: 100%; }

  /* ===== DEV DOCS (Mobile + Web Development) ===== */
  .dd-grid { gap: 18px; }
  .dd-tabs { flex-direction: row; overflow-x: auto; gap: 8px; padding-bottom: 4px; }
  .dd-tabs::-webkit-scrollbar { display: none; }
  .dd-tab { flex: 0 0 auto; padding: 12px 14px; gap: 10px; min-width: 200px; }
  .dd-tab-num { width: auto; font-size: 11px; }
  .dd-tab-text strong { font-size: 13px; }
  .dd-tab-text em { font-size: 10px; }
  .dd-panel { min-height: 540px; }
  .dd-panel-content { padding: 22px 18px; gap: 18px; }
  .dd-info h3 { font-size: 1.25rem; }
  .dd-info p { font-size: 0.88rem; }
  .dd-features li { font-size: 0.85rem; padding-left: 24px; }
  .dd-chip { font-size: 10px; padding: 4px 10px; }

  /* ===== TESTIMONIALS ===== */
  .t-marquee { padding: 4px 0; }

  /* ===== FAQ ===== */
  .faq-grid { gap: 32px; }
  .faq-q { padding: 18px 18px; font-size: 0.98rem; gap: 12px; }
  .faq-a-inner { padding: 0 18px 18px; }
  .faq-icon { width: 26px; height: 26px; }

  /* ===== HAPPY CLIENTS ===== */
  .happy-clients { padding: 56px 0 72px; }
  .hc-head { margin-bottom: 32px; }
  .hc-track { gap: 12px; }

  /* ===== PRICING CALCULATOR ===== */
  .calc-section { padding: 60px 0; }
  .calc-card { padding: 22px 18px; gap: 24px; border-radius: 18px; }
  .calc-step { gap: 12px; }
  .calc-step-head h3 { font-size: 1.05rem; }
  .calc-options { gap: 10px; }
  .calc-opt-card { padding: 14px 14px 12px; }
  .calc-opt-ic { width: 32px; height: 32px; border-radius: 8px; }
  .calc-opt-ic svg { width: 16px; height: 16px; }
  .calc-opt-card strong { font-size: 13px; }
  .calc-opt-card em { font-size: 10px; }
  .calc-counter { padding: 14px 16px; gap: 12px; }
  .calc-btn-step { width: 44px; height: 44px; font-size: 22px; }
  .calc-count { font-size: 26px; }
  .calc-count-display em { font-size: 9px; }
  .calc-addons { gap: 8px; }
  .calc-addon-card { padding: 12px; gap: 10px; }
  .calc-addon-ic { width: 32px; height: 32px; border-radius: 8px; }
  .calc-addon-ic svg { width: 15px; height: 15px; }
  .calc-addon-text b { font-size: 12px; }
  .calc-addon-text em { font-size: 10px; }
  .calc-total-row.calc-total-row-solo { padding: 22px 18px; }
  .calc-total-amount strong { font-size: clamp(2.2rem, 11vw, 3rem); }
  .calc-total-amount small { font-size: 18px; }
  .calc-cta { padding: 14px 22px; font-size: 14px; width: 100%; }
  .calc-note { font-size: 11px; }

  /* ===== CONTACT ===== */
  .contact-section { padding: 56px 0 72px; }
  .ci-card, .cf-card { padding: 22px 18px; }
  .ci-head h3, .cf-head h3 { font-size: 1.3rem; }
  .ci-method { padding: 14px 14px; gap: 12px; }
  .ci-icon { width: 38px; height: 38px; }
  .ci-icon svg { width: 16px; height: 16px; }
  .ci-text strong { font-size: 13px; }
  .ci-text span { font-size: 10px; }
  .ci-arrow { width: 26px; height: 26px; }
  .cf-form { gap: 14px; }
  .cf-field input, .cf-field select, .cf-field textarea {
    padding: 12px 14px;
    font-size: 16px; /* prevents iOS auto-zoom on focus */
  }
  .cf-submit { padding: 14px 22px; font-size: 14px; width: 100%; }

  /* ===== FOOTER (advanced) ===== */
  .footer-x { padding: 56px 0 24px; }
  .fx-top { gap: 32px; margin-bottom: 32px; }
  .fx-pitch { font-size: 13px; }
  .fx-col h4 { font-size: 13px; }
  .fx-col a { font-size: 13px; }
  .fx-divider { margin: 22px 0; }
  .fx-payments { gap: 16px; }
  .fx-pay-logo { height: 34px; min-width: 56px; padding: 0 10px; }
  .fx-pay-logo img { height: 16px; }
  .fx-bottom { gap: 12px; }
  .fx-copy, .fx-bottom-links a { font-size: 12px; }

  /* ===== Floating CTA — already collapses on phones; nudge a touch ===== */
  .float-cta { right: 14px; bottom: 14px; }

  /* ===== HERO STATS — wrap on small screens ===== */
  .hero-stats { flex-wrap: wrap; justify-content: center; }
  .stat-divider { display: none; }
}

/* ===== Small phone (≤ 480px) ===== */
@media (max-width: 480px) {
  .container { padding: 0 16px; }

  /* Hero */
  .hero-title { font-size: clamp(1.85rem, 9vw, 2.6rem); }
  .hero-sub { font-size: 0.9rem; }
  .badge { padding: 6px 12px; font-size: 11px; }
  .hero-cta .btn { width: 100%; }
  .hero-stats { padding: 12px 14px; gap: 10px; }
  .stat-num { font-size: 18px; }

  /* Section heads */
  .section-title { font-size: clamp(1.7rem, 7vw, 2.4rem); }
  .section-sub { font-size: 0.92rem; }
  .eyebrow { font-size: 11px; padding: 5px 12px; }

  /* Hero visual */
  .hero-visual { min-height: 320px; }
  .hero-pages { aspect-ratio: 16 / 14; }

  /* Showcase visuals */
  .dsh-laptop { width: 96%; }
  .laptop-bar { padding: 5px 8px; gap: 8px; }
  .laptop-url { font-size: 8px; max-width: 140px; }
  .laptop-dots span { width: 7px; height: 7px; }

  /* Hide some floating cards if too crowded */
  .dsh-c4 { display: none; } /* keep top-left, top-right, bottom-left only */

  /* Cards / panels — extra tight */
  .card { padding: 22px 18px; }
  .feature { padding: 22px 18px; }
  .bstat { padding: 24px 16px; }
  .ci-card, .cf-card, .calc-card { padding: 20px 16px; }

  /* Calculator on tiny phones */
  .calc-options { grid-template-columns: 1fr; }
  .calc-addons { grid-template-columns: 1fr; }
  .calc-total-amount strong { font-size: 2.4rem; }

  /* Reviews / testimonials */
  .t-rcard { width: 260px; padding: 16px 16px 18px; }
  .t-rtext { font-size: 12.5px; }

  /* Logo chips marquee */
  .logo-chip { padding: 8px 12px; gap: 6px; }

  /* Footer payments stack tight */
  .fx-pay-logos { gap: 6px; justify-content: center; }
  .fx-pay-logo { height: 32px; min-width: 50px; padding: 0 8px; }
  .fx-bottom-links { gap: 8px; }

  /* Process orbs smaller */
  .step-orb { width: 76px; height: 76px; }

  /* Floating CTA — keep icon-only (already from earlier rule) */
  .float-cta { padding: 12px; bottom: 12px; right: 12px; }
}

/* ===== Tap-target safety on every clickable thing ===== */
@media (hover: none) and (pointer: coarse) {
  a, button, .btn, .nav-links a, .fx-col a, .fx-bottom-links a {
    -webkit-tap-highlight-color: rgba(124, 92, 255, 0.2);
  }
  /* Disable the custom cursor on touch */
  .cursor, .cursor-dot { display: none !important; }
}

/* ============================================================
   Tab-change inquiry popup (ecommerce.html)
   ============================================================ */
.inq-pop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  transition: opacity 0.35s ease;
}
.inq-pop.is-open {
  display: flex;
  opacity: 1;
}

.inq-pop-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4, 4, 12, 0.78);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  cursor: pointer;
}

.inq-pop-card {
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(124, 92, 255, 0.18), transparent 60%),
    radial-gradient(120% 80% at 100% 100%, rgba(0, 229, 255, 0.14), transparent 60%),
    linear-gradient(180deg, #0e0e1a, #07070d);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 22px;
  padding: 32px 28px 28px;
  color: var(--text);
  box-shadow:
    0 40px 80px -20px rgba(0, 0, 0, 0.7),
    0 0 0 1px rgba(124, 92, 255, 0.18) inset,
    0 0 80px -20px rgba(124, 92, 255, 0.5);
  transform: translateY(20px) scale(0.96);
  opacity: 0;
  transition:
    transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.45s ease;
}
.inq-pop.is-open .inq-pop-card {
  transform: translateY(0) scale(1);
  opacity: 1;
}

.inq-pop-close {
  position: absolute;
  top: 14px;
  right: 14px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text);
  cursor: pointer;
  display: grid;
  place-items: center;
  transition: all 0.25s var(--ease);
}
.inq-pop-close svg { width: 16px; height: 16px; }
.inq-pop-close:hover {
  background: rgba(255, 255, 255, 0.12);
  transform: rotate(90deg);
}

.inq-pop-head { margin-bottom: 22px; }
.inq-pop-eyebrow {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #00e5ff;
  background: rgba(0, 229, 255, 0.1);
  border: 1px solid rgba(0, 229, 255, 0.25);
  border-radius: 999px;
  padding: 5px 12px;
  margin-bottom: 14px;
}
.inq-pop-head h3 {
  font-size: clamp(22px, 4vw, 28px);
  font-weight: 800;
  line-height: 1.18;
  margin: 0 0 8px;
  background: linear-gradient(135deg, #ffffff 0%, #c7c0ff 60%, #00e5ff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.inq-pop-head p {
  margin: 0;
  color: var(--muted, rgba(255, 255, 255, 0.6));
  font-size: 14px;
  line-height: 1.5;
}

.inq-pop-form { display: flex; flex-direction: column; gap: 14px; }

.inq-pop-field { display: flex; flex-direction: column; gap: 6px; }
.inq-pop-field span {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.75);
}
.inq-pop-field input,
.inq-pop-field textarea {
  width: 100%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 12px 14px;
  color: var(--text);
  font: inherit;
  font-size: 14px;
  resize: none;
  transition: border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}
.inq-pop-field textarea { min-height: 84px; line-height: 1.5; }
.inq-pop-field input::placeholder,
.inq-pop-field textarea::placeholder {
  color: rgba(255, 255, 255, 0.32);
}
.inq-pop-field input:focus,
.inq-pop-field textarea:focus {
  outline: none;
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(124, 92, 255, 0.55);
  box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.18);
}
.inq-pop-field.has-error input,
.inq-pop-field.has-error textarea {
  border-color: rgba(255, 92, 92, 0.65);
  box-shadow: 0 0 0 4px rgba(255, 92, 92, 0.12);
}

.inq-pop-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), filter 0.25s ease;
  box-shadow: 0 14px 36px -12px rgba(124, 92, 255, 0.7);
}
.inq-pop-submit svg { width: 18px; height: 18px; transition: transform 0.3s var(--ease); }
.inq-pop-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 22px 50px -14px rgba(124, 92, 255, 0.85);
  filter: brightness(1.05);
}
.inq-pop-submit:hover svg { transform: translateX(3px); }
.inq-pop-submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}

.inq-pop-note {
  margin: 4px 0 0;
  text-align: center;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.45);
}

.inq-pop-success {
  text-align: center;
  padding: 12px 4px 6px;
}
.inq-pop-success-ring {
  width: 64px;
  height: 64px;
  margin: 0 auto 16px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #7c5cff, #00e5ff);
  box-shadow: 0 14px 36px -10px rgba(124, 92, 255, 0.7);
  animation: inqPopPop 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}
.inq-pop-success-ring svg { width: 28px; height: 28px; }
.inq-pop-success h4 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 800;
  color: var(--text);
}
.inq-pop-success p {
  margin: 0;
  color: var(--muted, rgba(255, 255, 255, 0.6));
  font-size: 14px;
}

@keyframes inqPopPop {
  0%   { transform: scale(0.3); opacity: 0; }
  60%  { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1);   opacity: 1; }
}

/* Mobile tweaks */
@media (max-width: 520px) {
  .inq-pop { padding: 16px; }
  .inq-pop-card { padding: 26px 20px 22px; border-radius: 18px; }
  .inq-pop-head h3 { font-size: 22px; }
  .inq-pop-close { top: 10px; right: 10px; width: 32px; height: 32px; }
}

@media (prefers-reduced-motion: reduce) {
  .inq-pop,
  .inq-pop-card { transition: opacity 0.2s ease; }
  .inq-pop-success-ring { animation: none; }
}

/* ==========================================================================
   GOOGLE ADS LANDING PAGES (body.lp)
   Conversion-focused styles for lp-web.html and lp-ecommerce.html.
   Reuses theme tokens from :root and existing .btn / .container utilities.
   ========================================================================== */

body.lp {
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(124, 92, 255, 0.18), transparent 60%),
    radial-gradient(ellipse 60% 50% at 90% 10%, rgba(0, 229, 255, 0.12), transparent 60%),
    var(--bg);
}

/* ---------- LP minimal nav ---------- */
.lp-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  background: rgba(7, 7, 13, 0.6);
  border-bottom: 1px solid var(--border);
}
.lp-nav-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.lp-nav-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  letter-spacing: -0.02em;
  font-size: 18px;
}
.lp-nav-logo img { height: 32px; width: auto; }
.lp-nav-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}
.lp-nav-phone {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 100px;
  border: 1px solid var(--border-2);
  background: var(--surface);
  font-size: 14px;
  font-weight: 600;
  color: var(--text);
  transition: background 0.3s var(--ease);
}
.lp-nav-phone:hover { background: var(--surface-2); }
.lp-nav-phone svg { width: 16px; height: 16px; }
.lp-nav-wa {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 100px;
  background: linear-gradient(135deg, #25D366, #1ebc59);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  box-shadow: 0 6px 20px -8px rgba(37, 211, 102, 0.6);
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.lp-nav-wa:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -8px rgba(37, 211, 102, 0.8); }
.lp-nav-wa svg { width: 16px; height: 16px; fill: currentColor; }
@media (max-width: 640px) {
  .lp-nav-phone span { display: none; }
  .lp-nav-wa span { display: none; }
  .lp-nav-phone, .lp-nav-wa { padding: 10px 12px; }
}

/* ---------- LP hero ---------- */
.lp-hero {
  position: relative;
  padding: 56px 0 80px;
  overflow: hidden;
}
.lp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 30%, rgba(124, 92, 255, 0.22), transparent 55%),
    radial-gradient(circle at 82% 20%, rgba(0, 229, 255, 0.18), transparent 55%);
  pointer-events: none;
  z-index: 0;
}
.lp-hero-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}
@media (max-width: 980px) {
  .lp-hero-grid { grid-template-columns: 1fr; gap: 36px; }
  .lp-hero { padding: 36px 0 52px; }
}

.lp-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent-2);
  padding: 6px 14px;
  border-radius: 100px;
  background: rgba(0, 229, 255, 0.08);
  border: 1px solid rgba(0, 229, 255, 0.2);
  margin-bottom: 18px;
}
.lp-eyebrow-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent-2);
  box-shadow: 0 0 10px var(--accent-2);
  animation: lp-pulse 1.6s ease-in-out infinite;
}
@keyframes lp-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.4); opacity: 0.6; }
}

.lp-h1 {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(2.2rem, 5.5vw, 3.8rem);
  font-weight: 800;
  line-height: 1.05;
  letter-spacing: -0.03em;
  margin: 0 0 18px;
}
.lp-h1 .grad {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.lp-sub {
  color: var(--text-dim);
  font-size: clamp(1rem, 1.4vw, 1.15rem);
  line-height: 1.6;
  margin: 0 0 26px;
  max-width: 540px;
}

.lp-trust-chips {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 28px;
  padding: 0;
}
.lp-trust-chips li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}
.lp-trust-chips li svg { width: 14px; height: 14px; color: var(--accent-2); }

.lp-hero-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 22px;
}
.lp-hero-cta-row .btn { padding: 14px 22px; font-size: 14.5px; }

.lp-hero-microcopy {
  font-size: 13px;
  color: var(--text-muted);
  display: flex;
  align-items: center;
  gap: 8px;
}
.lp-hero-microcopy svg { width: 14px; height: 14px; color: var(--accent-2); }

/* WhatsApp green button (used in hero CTA + final CTA) */
.btn-wa {
  background: linear-gradient(135deg, #25D366, #1ebc59) !important;
  color: #fff !important;
  box-shadow: 0 10px 36px -10px rgba(37, 211, 102, 0.6) !important;
}
.btn-wa::before { display: none !important; }
.btn-wa:hover { transform: translateY(-3px); box-shadow: 0 16px 44px -10px rgba(37, 211, 102, 0.85) !important; }
.btn-wa svg { fill: currentColor; }

/* ---------- LP hero FORM (right column) ---------- */
.lp-form-wrap {
  position: relative;
  padding: 28px 26px 24px;
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-2);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(124, 92, 255, 0.15);
}
.lp-form-wrap::after {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.35), rgba(0, 229, 255, 0.25), transparent 70%);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
          mask-composite: exclude;
  pointer-events: none;
}
.lp-form-title {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.lp-form-title svg { width: 22px; height: 22px; color: var(--accent-2); }
.lp-form-sub {
  font-size: 13.5px;
  color: var(--text-dim);
  margin: 0 0 18px;
}
.lp-form { display: flex; flex-direction: column; gap: 12px; }
.lp-form input,
.lp-form select,
.lp-form textarea {
  width: 100%;
  padding: 13px 14px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border-2);
  color: var(--text);
  font-family: inherit;
  font-size: 14.5px;
  outline: none;
  transition: border-color 0.25s var(--ease), background 0.25s var(--ease);
}
.lp-form input::placeholder,
.lp-form textarea::placeholder { color: var(--text-muted); }
.lp-form input:focus,
.lp-form select:focus,
.lp-form textarea:focus {
  border-color: var(--accent-1);
  background: rgba(0, 0, 0, 0.55);
}
.lp-form select { appearance: none; -webkit-appearance: none; background-image:
    linear-gradient(45deg, transparent 50%, var(--text-dim) 50%),
    linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-right: 36px;
}
.lp-form textarea { resize: vertical; min-height: 72px; }
.lp-form button[type="submit"] {
  margin-top: 6px;
  padding: 14px 20px;
  border-radius: 100px;
  background: var(--gradient);
  color: #fff;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  box-shadow: 0 10px 30px -10px rgba(124, 92, 255, 0.7);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
}
.lp-form button[type="submit"] svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transition: transform 0.3s var(--ease);
}
.lp-form button[type="submit"]:hover svg { transform: translateX(4px); }
.lp-form button[type="submit"]:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 16px 40px -10px rgba(124, 92, 255, 0.9);
}
.lp-form button[type="submit"].is-loading,
.lp-form button[type="submit"]:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}
.lp-form-note {
  font-size: 12px;
  color: var(--text-muted);
  text-align: center;
  margin: 8px 0 0;
}
.lp-form-err {
  margin: 8px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(255, 78, 205, 0.08);
  border: 1px solid rgba(255, 78, 205, 0.25);
  color: #ffb8e6;
  font-size: 13px;
}

/* Form success state */
.lp-form-success {
  text-align: center;
  padding: 16px 4px 8px;
  animation: lp-success-in 0.5s var(--ease);
}
@keyframes lp-success-in {
  0% { opacity: 0; transform: translateY(8px); }
  100% { opacity: 1; transform: translateY(0); }
}
.lp-form-success-ring {
  width: 72px;
  height: 72px;
  margin: 0 auto 18px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(135deg, #25D366, #1ebc59);
  box-shadow: 0 18px 40px -10px rgba(37, 211, 102, 0.7);
  animation: lp-pop 0.6s var(--ease);
}
@keyframes lp-pop {
  0% { transform: scale(0.4); opacity: 0; }
  60% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); }
}
.lp-form-success-ring svg { width: 32px; height: 32px; }
.lp-form-success h3 {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 1.4rem;
  font-weight: 800;
  margin: 0 0 6px;
}
.lp-form-success p { color: var(--text-dim); font-size: 14px; margin: 0 0 18px; }

/* ---------- LP client logo strip (autoscroll) ---------- */
.lp-client-strip {
  position: relative;
  padding: 26px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.02);
  overflow: hidden;
}
.lp-client-strip::before,
.lp-client-strip::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 80px;
  z-index: 2;
  pointer-events: none;
}
.lp-client-strip::before { left: 0; background: linear-gradient(90deg, var(--bg), transparent); }
.lp-client-strip::after  { right: 0; background: linear-gradient(-90deg, var(--bg), transparent); }
.lp-client-track {
  display: flex;
  gap: 56px;
  align-items: center;
  width: max-content;
  animation: lp-scroll 32s linear infinite;
}
.lp-client-strip.is-paused .lp-client-track { animation-play-state: paused; }
.lp-client-track > div {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--text-dim);
  white-space: nowrap;
  opacity: 0.65;
  transition: opacity 0.3s var(--ease), color 0.3s var(--ease);
}
.lp-client-track > div:hover { opacity: 1; color: var(--text); }
@keyframes lp-scroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* ---------- LP section wrapper ---------- */
.lp-section {
  position: relative;
  padding: 80px 0;
}
@media (max-width: 720px) {
  .lp-section { padding: 56px 0; }
}
.lp-section-head {
  max-width: 720px;
  margin: 0 auto 48px;
  text-align: center;
}
.lp-section-title {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 14px 0 14px;
}
.lp-section-title .grad {
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.lp-section-sub {
  color: var(--text-dim);
  font-size: 1.02rem;
  max-width: 560px;
  margin: 0 auto;
}

/* ---------- LP services grid (6 cards) ---------- */
.lp-services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 900px) { .lp-services-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lp-services-grid { grid-template-columns: 1fr; } }
.lp-svc-card {
  position: relative;
  padding: 24px;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease), background 0.4s var(--ease);
}
.lp-svc-card:hover {
  transform: translateY(-4px);
  border-color: rgba(124, 92, 255, 0.4);
  background: var(--surface-2);
}
.lp-svc-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.18), rgba(0, 229, 255, 0.18));
  border: 1px solid rgba(124, 92, 255, 0.25);
  margin-bottom: 16px;
  color: var(--accent-2);
}
.lp-svc-icon svg { width: 22px; height: 22px; }
.lp-svc-card h3 {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 8px;
}
.lp-svc-card p {
  color: var(--text-dim);
  font-size: 14.5px;
  line-height: 1.55;
  margin: 0;
}

/* ---------- LP case studies (3 cards) ---------- */
.lp-cases-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
@media (max-width: 900px) { .lp-cases-grid { grid-template-columns: 1fr; max-width: 540px; margin-inline: auto; } }
.lp-case {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--surface);
  border: 1px solid var(--border);
  transition: transform 0.4s var(--ease), border-color 0.4s var(--ease);
}
.lp-case:hover { transform: translateY(-6px); border-color: rgba(0, 229, 255, 0.35); }
.lp-case-img {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.18), rgba(0, 229, 255, 0.12));
}
.lp-case-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease);
}
.lp-case:hover .lp-case-img img { transform: scale(1.05); }
.lp-case-body { padding: 20px 22px 22px; }
.lp-case-tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-2);
  margin-bottom: 8px;
}
.lp-case h3 {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 10px;
}
.lp-case-outcome {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  background: rgba(124, 92, 255, 0.1);
  border: 1px solid rgba(124, 92, 255, 0.25);
  margin-top: 8px;
}
.lp-case-outcome strong {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 1.4rem;
  font-weight: 800;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
}
.lp-case-outcome span { color: var(--text-dim); font-size: 13px; }

/* ---------- LP process (5 steps) ---------- */
.lp-process {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 20px;
  counter-reset: lp-step;
}
@media (max-width: 980px) { .lp-process { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lp-process { grid-template-columns: 1fr; } }
.lp-step {
  position: relative;
  padding: 22px 18px;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--border);
}
.lp-step-num {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 2rem;
  font-weight: 800;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
  margin-bottom: 10px;
}
.lp-step h4 {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 6px;
}
.lp-step p {
  color: var(--text-dim);
  font-size: 13.5px;
  line-height: 1.55;
  margin: 0;
}

/* ---------- LP tech stack chips ---------- */
.lp-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  max-width: 880px;
  margin: 0 auto;
}
.lp-stack-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 100px;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--text);
  transition: border-color 0.3s var(--ease), transform 0.3s var(--ease);
}
.lp-stack-chip:hover { border-color: var(--accent-2); transform: translateY(-2px); }
.lp-stack-chip svg { width: 16px; height: 16px; color: var(--accent-2); }

/* ---------- LP why-us bullets ---------- */
.lp-why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
@media (max-width: 900px) { .lp-why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .lp-why-grid { grid-template-columns: 1fr; } }
.lp-why-item {
  padding: 22px;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--border);
}
.lp-why-stat {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 2rem;
  font-weight: 800;
  background: var(--gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  line-height: 1;
  margin-bottom: 8px;
}
.lp-why-item h4 {
  font-size: 1rem;
  font-weight: 700;
  margin: 0 0 6px;
}
.lp-why-item p { color: var(--text-dim); font-size: 13.5px; line-height: 1.5; margin: 0; }

/* ---------- LP testimonials (3-card simple) ---------- */
.lp-testi-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}
@media (max-width: 900px) { .lp-testi-grid { grid-template-columns: 1fr; max-width: 540px; margin-inline: auto; } }
.lp-testi-card {
  padding: 26px 24px;
  border-radius: var(--radius);
  background: var(--surface);
  border: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.lp-testi-stars { display: inline-flex; gap: 2px; color: #ffc83a; }
.lp-testi-stars svg { width: 16px; height: 16px; fill: currentColor; }
.lp-testi-quote {
  color: var(--text);
  font-size: 15px;
  line-height: 1.6;
  margin: 0;
}
.lp-testi-person {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
}
.lp-testi-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--gradient);
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 700;
  font-size: 14px;
}
.lp-testi-name { font-size: 14px; font-weight: 700; line-height: 1.2; }
.lp-testi-role { font-size: 12px; color: var(--text-dim); }

/* ---------- LP FAQ ---------- */
.lp-faq-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 820px;
  margin: 0 auto;
}
.lp-faq-item {
  border-radius: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: border-color 0.4s var(--ease), background 0.4s var(--ease);
}
.lp-faq-item.open {
  border-color: rgba(124, 92, 255, 0.4);
  background: var(--surface-2);
}
.lp-faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
  background: none;
  border: none;
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 1rem;
  font-weight: 600;
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.lp-faq-q:hover { color: var(--accent-2); }
.lp-faq-icon {
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border-2);
  display: grid;
  place-items: center;
  position: relative;
  flex-shrink: 0;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.3s var(--ease);
}
.lp-faq-item.open .lp-faq-icon {
  background: var(--gradient);
  border-color: transparent;
  transform: rotate(180deg);
}
.lp-faq-icon::before,
.lp-faq-icon::after {
  content: '';
  position: absolute;
  background: var(--text);
  border-radius: 2px;
  transition: all 0.3s var(--ease);
}
.lp-faq-icon::before { width: 10px; height: 2px; }
.lp-faq-icon::after { width: 2px; height: 10px; }
.lp-faq-item.open .lp-faq-icon::before,
.lp-faq-item.open .lp-faq-icon::after { background: #fff; }
.lp-faq-item.open .lp-faq-icon::after { transform: rotate(90deg); opacity: 0; }
.lp-faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.5s var(--ease);
}
.lp-faq-item.open .lp-faq-a { max-height: 500px; }
.lp-faq-a-inner {
  padding: 0 22px 20px;
  color: var(--text-dim);
  font-size: 14.5px;
  line-height: 1.65;
}

/* ---------- LP final CTA banner ---------- */
.lp-final-cta {
  position: relative;
  padding: 70px 0 90px;
  overflow: hidden;
}
.lp-final-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 30% 50%, rgba(124, 92, 255, 0.22), transparent 60%),
    radial-gradient(circle at 75% 50%, rgba(0, 229, 255, 0.18), transparent 60%);
  z-index: 0;
}
.lp-final-cta-inner {
  position: relative;
  z-index: 1;
  max-width: 860px;
  margin: 0 auto;
  padding: 40px 36px;
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  border: 1px solid var(--border-2);
  text-align: center;
  backdrop-filter: blur(14px);
}
.lp-final-cta-inner h2 {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.025em;
  margin: 0 0 12px;
}
.lp-final-cta-inner p {
  color: var(--text-dim);
  font-size: 1.05rem;
  max-width: 580px;
  margin: 0 auto 26px;
}
.lp-final-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}

/* ---------- LP slim footer ---------- */
.lp-footer {
  padding: 28px 0 40px;
  border-top: 1px solid var(--border);
  background: rgba(0, 0, 0, 0.3);
}
.lp-footer-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.lp-footer-meta {
  font-size: 13px;
  color: var(--text-muted);
}
.lp-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  font-size: 13px;
}
.lp-footer-links a { color: var(--text-dim); transition: color 0.3s var(--ease); }
.lp-footer-links a:hover { color: var(--accent-2); }

/* ---------- LP sticky mobile bar ---------- */
.lp-sticky-bar {
  position: fixed;
  left: 12px; right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 90;
  display: none;
  grid-template-columns: 1fr 1fr 1.2fr;
  gap: 8px;
  padding: 8px;
  border-radius: 100px;
  background: rgba(7, 7, 13, 0.85);
  border: 1px solid var(--border-2);
  box-shadow: 0 18px 50px -10px rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  transform: translateY(150%);
  transition: transform 0.5s var(--ease);
}
.lp-sticky-bar.is-visible { transform: translateY(0); }
.lp-sticky-bar a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 10px;
  border-radius: 100px;
  font-size: 13.5px;
  font-weight: 700;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.lp-sticky-bar .sb-call {
  background: var(--surface);
  border: 1px solid var(--border-2);
  color: var(--text);
}
.lp-sticky-bar .sb-wa {
  background: linear-gradient(135deg, #25D366, #1ebc59);
  color: #fff;
}
.lp-sticky-bar .sb-form {
  background: var(--gradient);
  color: #fff;
}
.lp-sticky-bar a svg { width: 16px; height: 16px; }
.lp-sticky-bar .sb-wa svg { fill: currentColor; }
@media (max-width: 980px) {
  .lp-sticky-bar { display: grid; }
  body.lp { padding-bottom: 76px; }  /* prevent sticky bar from covering footer */
}

/* ---------- LP calculator section tweaks (reuses existing .calc-* styles) ---------- */
body.lp .calc-section { padding: 70px 0; }
body.lp .calc-card { max-width: 980px; }

/* ---------- LP reveal animation (shares same hook as main site) ---------- */
body.lp [data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
body.lp [data-reveal].in {
  opacity: 1;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  body.lp [data-reveal] { opacity: 1; transform: none; }
  .lp-client-track { animation: none; }
}

/* ---------- Skip link for a11y ---------- */
.lp-skip {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--accent-1);
  color: #fff;
  padding: 10px 16px;
  border-radius: 0 0 8px 0;
  z-index: 200;
}
.lp-skip:focus { left: 0; }

/* ==========================================================================
   LIGHT-THEME OVERRIDES for landing pages
   Active when <html data-theme="light"> AND <body class="lp">.
   Keeps the violet/cyan/pink accent system, swaps surfaces to white/grey,
   text to dark navy, shadows soft and warm.
   ========================================================================== */

[data-theme="light"] body.lp {
  background:
    radial-gradient(ellipse 80% 60% at 20% 0%, rgba(124, 92, 255, 0.10), transparent 60%),
    radial-gradient(ellipse 60% 50% at 90% 10%, rgba(0, 229, 255, 0.08), transparent 60%),
    var(--bg);
}

/* ---- Nav: light glass ---- */
[data-theme="light"] body.lp .lp-nav {
  background: rgba(255, 255, 255, 0.7);
  border-bottom: 1px solid rgba(15, 15, 30, 0.06);
}
[data-theme="light"] body.lp .lp-nav-phone {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.08);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(15, 15, 30, 0.04);
}

/* ---- Hero glow halos: softer on light bg ---- */
[data-theme="light"] body.lp .lp-hero::before {
  background:
    radial-gradient(circle at 18% 30%, rgba(124, 92, 255, 0.14), transparent 55%),
    radial-gradient(circle at 82% 20%, rgba(0, 229, 255, 0.12), transparent 55%);
}

/* ---- Eyebrow chip ---- */
[data-theme="light"] body.lp .lp-eyebrow {
  background: rgba(0, 229, 255, 0.10);
  border-color: rgba(0, 180, 220, 0.25);
  color: #007a96;
}

/* ---- Trust chips ---- */
[data-theme="light"] body.lp .lp-trust-chips li {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.08);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(15, 15, 30, 0.04);
}

/* ---- Form ---- */
[data-theme="light"] body.lp .lp-form-wrap {
  background: #ffffff;
  border: 1px solid rgba(15, 15, 30, 0.08);
  box-shadow:
    0 30px 60px -20px rgba(15, 15, 30, 0.12),
    0 0 0 1px rgba(124, 92, 255, 0.10);
}
[data-theme="light"] body.lp .lp-form-wrap::after { display: none; }
[data-theme="light"] body.lp .lp-form input,
[data-theme="light"] body.lp .lp-form select,
[data-theme="light"] body.lp .lp-form textarea {
  background: #f5f6fa;
  border: 1px solid rgba(15, 15, 30, 0.10);
  color: var(--text);
}
[data-theme="light"] body.lp .lp-form input::placeholder,
[data-theme="light"] body.lp .lp-form textarea::placeholder { color: #8b8b95; }
[data-theme="light"] body.lp .lp-form input:focus,
[data-theme="light"] body.lp .lp-form select:focus,
[data-theme="light"] body.lp .lp-form textarea:focus {
  background: #ffffff;
  border-color: var(--accent-1);
  box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.10);
}
[data-theme="light"] body.lp .lp-form select {
  background-image:
    linear-gradient(45deg, transparent 50%, #6b6b7a 50%),
    linear-gradient(135deg, #6b6b7a 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

/* ---- Form success state ---- */
[data-theme="light"] body.lp .lp-form-err {
  background: rgba(255, 78, 205, 0.06);
  border-color: rgba(255, 78, 205, 0.25);
  color: #b8377d;
}

/* ---- Hero ghost button ---- */
[data-theme="light"] body.lp .btn-ghost {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.10);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .btn-ghost:hover {
  background: #ffffff;
  box-shadow: 0 8px 20px -8px rgba(124, 92, 255, 0.3);
}

/* ---- Microcopy + helper text ---- */
[data-theme="light"] body.lp .lp-hero-microcopy { color: #4a4a58; }
[data-theme="light"] body.lp .lp-form-sub { color: #4a4a58; }
[data-theme="light"] body.lp .lp-form-note { color: #6b6b7a; }

/* ---- Client logo strip ---- */
[data-theme="light"] body.lp .lp-client-strip {
  background: #ffffff;
  border-top-color: rgba(15, 15, 30, 0.06);
  border-bottom-color: rgba(15, 15, 30, 0.06);
}
[data-theme="light"] body.lp .lp-client-strip::before { background: linear-gradient(90deg, #ffffff, transparent); }
[data-theme="light"] body.lp .lp-client-strip::after  { background: linear-gradient(-90deg, #ffffff, transparent); }
[data-theme="light"] body.lp .lp-client-track > div { color: #6b6b7a; }
[data-theme="light"] body.lp .lp-client-track > div:hover { color: var(--text); }

/* ---- Section sub-text ---- */
[data-theme="light"] body.lp .lp-section-sub { color: #4a4a58; }

/* ---- Service cards ---- */
[data-theme="light"] body.lp .lp-svc-card {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
  box-shadow: 0 1px 3px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .lp-svc-card:hover {
  background: #ffffff;
  border-color: rgba(124, 92, 255, 0.4);
  box-shadow: 0 18px 40px -12px rgba(124, 92, 255, 0.20);
}
[data-theme="light"] body.lp .lp-svc-icon {
  background: linear-gradient(135deg, rgba(124, 92, 255, 0.10), rgba(0, 229, 255, 0.10));
  border-color: rgba(124, 92, 255, 0.20);
  color: #007a96;
}
[data-theme="light"] body.lp .lp-svc-card p { color: #4a4a58; }

/* ---- Alternating-section subtle bg (was rgba white) ---- */
[data-theme="light"] body.lp .lp-section[style*="background"] {
  background: #f5f6fa !important;
}

/* ---- Case studies ---- */
[data-theme="light"] body.lp .lp-case {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
  box-shadow: 0 1px 3px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .lp-case:hover {
  border-color: rgba(0, 229, 255, 0.4);
  box-shadow: 0 22px 50px -16px rgba(0, 180, 220, 0.25);
}
[data-theme="light"] body.lp .lp-case-tag { color: #007a96; }
[data-theme="light"] body.lp .lp-case-outcome {
  background: rgba(124, 92, 255, 0.08);
  border-color: rgba(124, 92, 255, 0.20);
}
[data-theme="light"] body.lp .lp-case-outcome span { color: #4a4a58; }

/* ---- Process steps ---- */
[data-theme="light"] body.lp .lp-step {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
  box-shadow: 0 1px 3px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .lp-step p { color: #4a4a58; }

/* ---- Tech stack chips ---- */
[data-theme="light"] body.lp .lp-stack-chip {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.08);
  color: var(--text);
  box-shadow: 0 1px 2px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .lp-stack-chip svg { color: #007a96; }
[data-theme="light"] body.lp .lp-stack-chip:hover {
  border-color: var(--accent-2);
  box-shadow: 0 8px 20px -8px rgba(0, 180, 220, 0.3);
}

/* ---- Why-us cards ---- */
[data-theme="light"] body.lp .lp-why-item {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
  box-shadow: 0 1px 3px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .lp-why-item p { color: #4a4a58; }

/* ---- Testimonials ---- */
[data-theme="light"] body.lp .lp-testi-card {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
  box-shadow: 0 1px 3px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .lp-testi-quote { color: var(--text); }
[data-theme="light"] body.lp .lp-testi-role { color: #6b6b7a; }

/* ---- FAQ ---- */
[data-theme="light"] body.lp .lp-faq-item {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.06);
  box-shadow: 0 1px 3px rgba(15, 15, 30, 0.04);
}
[data-theme="light"] body.lp .lp-faq-item.open {
  background: #ffffff;
  border-color: rgba(124, 92, 255, 0.4);
  box-shadow: 0 12px 30px -10px rgba(124, 92, 255, 0.20);
}
[data-theme="light"] body.lp .lp-faq-q { color: var(--text); }
[data-theme="light"] body.lp .lp-faq-icon {
  background: #f5f6fa;
  border-color: rgba(15, 15, 30, 0.10);
}
[data-theme="light"] body.lp .lp-faq-icon::before,
[data-theme="light"] body.lp .lp-faq-icon::after { background: var(--text); }
[data-theme="light"] body.lp .lp-faq-item.open .lp-faq-icon::before,
[data-theme="light"] body.lp .lp-faq-item.open .lp-faq-icon::after { background: #fff; }
[data-theme="light"] body.lp .lp-faq-a-inner { color: #4a4a58; }

/* ---- Final CTA banner ---- */
[data-theme="light"] body.lp .lp-final-cta::before {
  background:
    radial-gradient(circle at 30% 50%, rgba(124, 92, 255, 0.14), transparent 60%),
    radial-gradient(circle at 75% 50%, rgba(0, 229, 255, 0.12), transparent 60%);
}
[data-theme="light"] body.lp .lp-final-cta-inner {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.08);
  box-shadow: 0 30px 60px -20px rgba(15, 15, 30, 0.12);
}
[data-theme="light"] body.lp .lp-final-cta-inner p { color: #4a4a58; }

/* ---- Footer ---- */
[data-theme="light"] body.lp .lp-footer {
  background: #ffffff;
  border-top-color: rgba(15, 15, 30, 0.06);
}
[data-theme="light"] body.lp .lp-footer-meta { color: #6b6b7a; }
[data-theme="light"] body.lp .lp-footer-links a { color: #4a4a58; }
[data-theme="light"] body.lp .lp-footer-links a:hover { color: #007a96; }

/* ---- Sticky mobile bar ---- */
[data-theme="light"] body.lp .lp-sticky-bar {
  background: rgba(255, 255, 255, 0.95);
  border-color: rgba(15, 15, 30, 0.08);
  box-shadow: 0 18px 50px -10px rgba(15, 15, 30, 0.18);
}
[data-theme="light"] body.lp .lp-sticky-bar .sb-call {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.10);
  color: var(--text);
}

/* ---- Scrollbar on light theme ---- */
[data-theme="light"] body.lp::-webkit-scrollbar-track { background: #f5f6fa; }

/* ---- Calculator section: re-skin existing dark calc-* rules for light theme ---- */
[data-theme="light"] body.lp .calc-card {
  background: #ffffff;
  border: 1px solid rgba(15, 15, 30, 0.08);
  box-shadow: 0 30px 60px -20px rgba(15, 15, 30, 0.12);
}
[data-theme="light"] body.lp .calc-opt-card,
[data-theme="light"] body.lp .calc-addon-card {
  background: #f5f6fa;
  border-color: rgba(15, 15, 30, 0.08);
}
[data-theme="light"] body.lp .calc-opt input:checked + .calc-opt-card,
[data-theme="light"] body.lp .calc-addon input:checked + .calc-addon-card {
  background: #ffffff;
  border-color: var(--accent-1);
  box-shadow: 0 8px 24px -10px rgba(124, 92, 255, 0.35);
}
[data-theme="light"] body.lp .calc-opt-card strong,
[data-theme="light"] body.lp .calc-addon-text b { color: var(--text); }
[data-theme="light"] body.lp .calc-opt-card em,
[data-theme="light"] body.lp .calc-addon-text em { color: #6b6b7a; }
[data-theme="light"] body.lp .calc-opt-ic,
[data-theme="light"] body.lp .calc-addon-ic { color: #007a96; }
[data-theme="light"] body.lp .calc-step-head h3 { color: var(--text); }
[data-theme="light"] body.lp .calc-counter {
  background: #f5f6fa;
  border-color: rgba(15, 15, 30, 0.08);
}
[data-theme="light"] body.lp .calc-btn-step {
  background: #ffffff;
  border-color: rgba(15, 15, 30, 0.10);
  color: var(--text);
}
[data-theme="light"] body.lp .calc-count { color: var(--text); }
[data-theme="light"] body.lp .calc-count-display em { color: #6b6b7a; }
[data-theme="light"] body.lp .calc-total {
  background: #f5f6fa;
  border-color: rgba(15, 15, 30, 0.08);
}
[data-theme="light"] body.lp .calc-total-label span { color: var(--text); }
[data-theme="light"] body.lp .calc-total-label em { color: #6b6b7a; }
[data-theme="light"] body.lp .calc-note { color: #6b6b7a; }
[data-theme="light"] body.lp .calc-bg .calc-orb { opacity: 0.18; }

/* ==========================================================================
   LP HERO V2 — Dark "island" hero on a light page.
   Matches the reference: bg photo + dark overlay, pill badge, big bold H1
   with gradient on accent words, services-list line, CTA + description,
   4-stat row, tech-stack chip strip. Form stays on right.
   ========================================================================== */

body.lp .lp-hero {
  position: relative;
  padding: 88px 0 120px;
  overflow: hidden;
  /* Dark island even on light page.
     The bg photo lives at img/hero-bg.jpg (drop in your file).
     The dark gradient ON TOP keeps text readable regardless of photo. */
  background:
    linear-gradient(180deg, rgba(7, 7, 16, 0.78), rgba(7, 7, 16, 0.88)),
    url('img/hero-bg.jpg') center/cover no-repeat;
  background-color: #07070d; /* fallback if image missing */
  color: #f5f5f7;
  isolation: isolate; /* so blend-modes / blur don't leak */
}

/* Override light-theme defaults for everything INSIDE the hero */
[data-theme="light"] body.lp .lp-hero,
body.lp .lp-hero {
  color: #f5f5f7;
}

body.lp .lp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 32%, rgba(124, 92, 255, 0.30), transparent 55%),
    radial-gradient(circle at 88% 18%, rgba(0, 229, 255, 0.22), transparent 55%),
    radial-gradient(circle at 50% 100%, rgba(255, 78, 205, 0.16), transparent 60%);
  pointer-events: none;
  z-index: 0;
}

/* Subtle grid texture overlay (very faint, adds depth) */
body.lp .lp-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, #000 30%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 50%, #000 30%, transparent 100%);
  pointer-events: none;
  z-index: 0;
}

body.lp .lp-hero-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 64px;
  align-items: center;
}

@media (max-width: 980px) {
  body.lp .lp-hero { padding: 60px 0 72px; }
  body.lp .lp-hero-grid { grid-template-columns: 1fr; gap: 40px; }
}

/* ----- Pill badge ----- */
body.lp .lp-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 18px 8px 8px;
  border-radius: 100px;
  background: rgba(124, 92, 255, 0.12);
  border: 1px solid rgba(124, 92, 255, 0.35);
  margin-bottom: 28px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
body.lp .lp-hero-badge-ic {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #7c5cff, #00b4dc);
  color: #fff;
  box-shadow: 0 6px 14px -4px rgba(124, 92, 255, 0.6);
  flex-shrink: 0;
}
body.lp .lp-hero-badge-ic svg { width: 14px; height: 14px; }
body.lp .lp-hero-badge-text {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #c8baff;
}

/* ----- Hero H1 — bigger + bolder ----- */
body.lp .lp-h1,
[data-theme="light"] body.lp .lp-h1 {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(2.4rem, 5.8vw, 4.4rem);
  font-weight: 800;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: #fff;
  margin: 0 0 22px;
}
body.lp .lp-h1 .grad {
  background: linear-gradient(135deg, #b9aaff 0%, #7cd9ff 45%, #ff9be0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ----- Services-line subtitle ("Web Dev. SEO. Mobile Apps. Digital Marketing.") ----- */
body.lp .lp-hero-services {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: clamp(1.1rem, 1.7vw, 1.4rem);
  font-weight: 700;
  letter-spacing: -0.015em;
  margin: 0 0 28px;
  color: #f5f5f7;
}
body.lp .lp-hero-services .grad {
  background: linear-gradient(135deg, #b9aaff 0%, #7cd9ff 50%, #ff9be0 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ----- Schedule-a-call CTA + secondary CTA row ----- */
body.lp .lp-hero-cta-row { margin-bottom: 26px; }
body.lp .lp-hero-cta-row .btn-primary,
[data-theme="light"] body.lp .lp-hero-cta-row .btn-primary {
  padding: 18px 32px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  background: linear-gradient(135deg, #7c5cff 0%, #b27dff 50%, #ff8bd9 100%);
  color: #fff;
  box-shadow:
    0 18px 50px -12px rgba(124, 92, 255, 0.7),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset;
}
body.lp .lp-hero-cta-row .btn-primary svg {
  background: rgba(255, 255, 255, 0.18);
  width: 28px; height: 28px;
  padding: 6px;
  border-radius: 50%;
}
body.lp .lp-hero-cta-row .btn-ghost,
[data-theme="light"] body.lp .lp-hero-cta-row .btn-ghost {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #f5f5f7;
  backdrop-filter: blur(10px);
  box-shadow: none;
}
body.lp .lp-hero-cta-row .btn-ghost:hover {
  background: rgba(255, 255, 255, 0.10);
}

/* ----- Description paragraph under CTA ----- */
body.lp .lp-hero-desc {
  font-size: 15px;
  line-height: 1.65;
  color: #b4b4c5;
  max-width: 560px;
  margin: 0 0 36px;
  padding-top: 24px;
  border-top: 1px dashed rgba(255, 255, 255, 0.10);
}

/* ----- Stats row ----- */
body.lp .lp-hero-stats {
  display: grid;
  grid-template-columns: repeat(4, auto);
  gap: 36px;
  align-items: center;
  margin-bottom: 32px;
}
@media (max-width: 640px) {
  body.lp .lp-hero-stats { grid-template-columns: repeat(2, 1fr); gap: 20px 28px; }
}
body.lp .lp-hero-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
body.lp .lp-hero-stat-num {
  font-family: 'Space Grotesk', 'Inter', sans-serif;
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1;
  background: linear-gradient(135deg, #b9aaff, #7cd9ff);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
body.lp .lp-hero-stat-label {
  font-size: 12.5px;
  color: #b4b4c5;
  font-weight: 500;
}

/* ----- Tech stack chip strip ----- */
body.lp .lp-hero-tech {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
body.lp .lp-hero-tech-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.10);
  font-size: 13px;
  font-weight: 600;
  color: #f5f5f7;
  letter-spacing: -0.01em;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
body.lp .lp-hero-tech-chip-ic {
  width: 18px; height: 18px;
  border-radius: 4px;
  display: grid; place-items: center;
  flex-shrink: 0;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  font-family: 'Space Grotesk', sans-serif;
}
body.lp .lp-hero-tech-chip svg { width: 18px; height: 18px; flex-shrink: 0; }

/* Brand colors for each tech */
body.lp .ic-html { background: #e34f26; }
body.lp .ic-css  { background: #1572b6; }
body.lp .ic-js   { background: #f7df1e; color: #000; }
body.lp .ic-react{ background: #61dafb; color: #000; }
body.lp .ic-next { background: #000; border: 1px solid rgba(255,255,255,0.35); }
body.lp .ic-node { background: #339933; }
body.lp .ic-ts   { background: #3178c6; }
body.lp .ic-shop { background: #95bf47; }
body.lp .ic-woo  { background: #7f54b3; }
body.lp .ic-rzp  { background: #02042b; border: 1px solid rgba(255,255,255,0.25); }
body.lp .ic-stripe { background: #635bff; }
body.lp .ic-wa   { background: #25D366; }

/* ----- Hero form on dark island: switch from light to glass-on-dark ----- */
body.lp .lp-hero .lp-form-wrap,
[data-theme="light"] body.lp .lp-hero .lp-form-wrap {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.04));
  border: 1px solid rgba(255, 255, 255, 0.18);
  box-shadow:
    0 40px 80px -24px rgba(0, 0, 0, 0.6),
    0 0 0 1px rgba(124, 92, 255, 0.20);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
body.lp .lp-hero .lp-form-title,
[data-theme="light"] body.lp .lp-hero .lp-form-title { color: #fff; }
body.lp .lp-hero .lp-form-title svg,
[data-theme="light"] body.lp .lp-hero .lp-form-title svg { color: #7cd9ff; }
body.lp .lp-hero .lp-form-sub,
[data-theme="light"] body.lp .lp-hero .lp-form-sub { color: #b4b4c5; }
body.lp .lp-hero .lp-form input,
body.lp .lp-hero .lp-form select,
body.lp .lp-hero .lp-form textarea,
[data-theme="light"] body.lp .lp-hero .lp-form input,
[data-theme="light"] body.lp .lp-hero .lp-form select,
[data-theme="light"] body.lp .lp-hero .lp-form textarea {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #f5f5f7;
}
body.lp .lp-hero .lp-form input::placeholder,
body.lp .lp-hero .lp-form textarea::placeholder,
[data-theme="light"] body.lp .lp-hero .lp-form input::placeholder,
[data-theme="light"] body.lp .lp-hero .lp-form textarea::placeholder { color: #8b8b95; }
body.lp .lp-hero .lp-form input:focus,
body.lp .lp-hero .lp-form select:focus,
body.lp .lp-hero .lp-form textarea:focus,
[data-theme="light"] body.lp .lp-hero .lp-form input:focus,
[data-theme="light"] body.lp .lp-hero .lp-form select:focus,
[data-theme="light"] body.lp .lp-hero .lp-form textarea:focus {
  background: rgba(0, 0, 0, 0.55);
  border-color: #b9aaff;
  box-shadow: 0 0 0 4px rgba(124, 92, 255, 0.18);
}
body.lp .lp-hero .lp-form select,
[data-theme="light"] body.lp .lp-hero .lp-form select {
  background-image:
    linear-gradient(45deg, transparent 50%, #b4b4c5 50%),
    linear-gradient(135deg, #b4b4c5 50%, transparent 50%);
  background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
body.lp .lp-hero .lp-form-note,
[data-theme="light"] body.lp .lp-hero .lp-form-note { color: #8b8b95; }

/* ----- Hero nav recolor to fit dark ----- */
body.lp .lp-nav,
[data-theme="light"] body.lp .lp-nav {
  background: rgba(7, 7, 16, 0.65);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
body.lp .lp-nav-logo,
[data-theme="light"] body.lp .lp-nav-logo { color: #fff; }
body.lp .lp-nav-phone,
[data-theme="light"] body.lp .lp-nav-phone {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: #f5f5f7;
  box-shadow: none;
}
body.lp .lp-nav-phone:hover,
[data-theme="light"] body.lp .lp-nav-phone:hover { background: rgba(255, 255, 255, 0.10); }



