/* ============================================================
   KADD TECNOLOGIA — Awwwards-grade build
   ============================================================ */

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

:root {
  --bg: #040207;
  --bg2: #08040c;
  --bg3: #0e0712;
  --ink: #f4eef5;
  --ink-dim: rgba(244, 238, 245, 0.5);
  --ink-faint: rgba(244, 238, 245, 0.1);
  --line: rgba(244, 238, 245, 0.08);
  --violet: #ff1fb0;
  --violet-soft: #ff58c8;
  --violet-deep: #5a0a55;
  --magenta: #ff1fb0;
  --magenta-deep: #b3127d;
  --glow: rgba(255, 31, 176, 0.32);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

html {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
html.lenis,
html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
  overscroll-behavior: contain;
}
.lenis.lenis-stopped {
  overflow: hidden;
}

body {
  font-family:
    "Almarai",
    -apple-system,
    sans-serif;
  background: var(--bg);
  color: var(--ink);
  overflow-x: clip; /* clip instead of hidden allows position: sticky to work */
  cursor: none;
}

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

.serif {
  font-family: "Instrument Serif", serif;
  font-style: italic;
  font-weight: 400;
}

/* ============================================================
   CUSTOM CURSOR
   ============================================================ */
.cursor-dot,
.cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  will-change: transform;
}
.cursor-dot {
  width: 7px;
  height: 7px;
  background: var(--magenta);
  transform: translate(-50%, -50%);
}
.cursor-ring {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  transform: translate(-50%, -50%);
  transition:
    width 0.3s var(--ease),
    height 0.3s var(--ease),
    background 0.3s var(--ease),
    border-color 0.3s var(--ease);
}
.cursor-ring.hover {
  width: 64px;
  height: 64px;
  background: rgba(255, 255, 255, 0.1);
  border-color: transparent;
}
.cursor-ring.hide {
  opacity: 0;
}
@media (hover: none) {
  body {
    cursor: auto;
  }
  .cursor-dot,
  .cursor-ring {
    display: none;
  }
}

/* ============================================================
   LANG DROPDOWN
   ============================================================ */
.lang-dropdown {
  position: relative;
  margin-right: 16px;
}
.lang-flag-icon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}
.lang-dropdown-toggle {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 30px;
  color: #fff;
  cursor: pointer;
  padding: 6px 10px;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.3s ease;
}
.lang-dropdown-toggle:hover {
  background: rgba(255, 255, 255, 0.1);
}
.lang-dropdown-toggle .chevron-down {
  transition: transform 0.3s ease;
}
.lang-dropdown.open .lang-dropdown-toggle .chevron-down {
  transform: rotate(180deg);
}
.lang-dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: rgba(10, 10, 10, 0.8);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  list-style: none;
  padding: 8px;
  margin: 0;
  min-width: 80px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  z-index: 100;
}
.lang-dropdown.open .lang-dropdown-menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.lang-dropdown-menu li {
  margin: 0;
  padding: 0;
}
.lang-dropdown-menu .lang-btn {
  background: transparent;
  border: none;
  color: #fff;
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  border-radius: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
  opacity: 0.7;
}
.lang-dropdown-menu .lang-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  opacity: 1;
}
.lang-dropdown-menu .lang-btn.active {
  opacity: 1;
  background: rgba(255, 255, 255, 0.05);
}
@media (max-width: 880px) {
  .lang-dropdown {
    margin-right: 0;
  }
}

/* ============================================================
   LOADER
   ============================================================ */
.loader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

/* Background animated orb */
.loader-bg-orb {
  position: absolute;
  width: 60vw;
  height: 60vw;
  max-width: 600px;
  max-height: 600px;
  background: radial-gradient(circle, var(--magenta) 0%, transparent 70%);
  border-radius: 50%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0.15;
  filter: blur(80px);
  animation: loaderPulse 3s ease-in-out infinite alternate;
}

@keyframes loaderPulse {
  0% { transform: translate(-50%, -50%) scale(1); opacity: 0.1; }
  100% { transform: translate(-50%, -50%) scale(1.1); opacity: 0.25; }
}

/* Noise overlay */
.loader-grain {
  position: absolute;
  inset: 0;
  opacity: 0.04;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Central content container */
.loader-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
}

/* Logo Reveal */
.loader-logo-wrap {
  overflow: hidden;
  height: 32px;
}
.loader-logo {
  height: 32px;
  width: auto;
  opacity: 0;
  transform: translateY(100%);
}

.loader-count-wrap {
  overflow: hidden;
  display: flex;
  align-items: baseline;
  justify-content: center;
}
.loader-count {
  font-family: "Instrument Serif", serif;
  font-size: clamp(80px, 12vw, 160px);
  font-weight: 400;
  font-style: italic;
  line-height: 1;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: #fff;
  opacity: 0;
}
.loader-percent {
  font-size: clamp(24px, 3vw, 40px);
  color: var(--magenta);
  font-weight: 300;
  margin-left: 8px;
  opacity: 0;
}

/* Thin progress bar at the bottom */
.loader-bar-wrap {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: rgba(255, 255, 255, 0.05);
  z-index: 3;
}
.loader-bar {
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, var(--violet-deep), var(--magenta), var(--violet-soft));
  box-shadow: 0 0 10px var(--glow);
}

/* ============================================================
   NAV (FLOATING & HAMBURGER)
   ============================================================ */
nav {
  position: fixed;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 48px);
  max-width: 1320px;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  background: rgba(14, 7, 18, 0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 100px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
  transition: all 0.4s var(--ease);
}
.nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}
.nav-logo img {
  height: 28px;
  width: auto;
  display: block;
}
.nav-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* Navigation Diagonal/Secondary Button */
.nav-diag-btn {
  padding: 12px 24px;
  font-size: 13px;
}

/* HAMBURGER BTN */
.hamburger-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  cursor: none;
  z-index: 1001;
  transition:
    background 0.3s var(--ease),
    border-color 0.3s var(--ease);
}
.hamburger-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  border-color: rgba(255, 255, 255, 0.25);
}
.hamburger-line {
  width: 18px;
  height: 2px;
  background: #fff;
  transition:
    transform 0.4s var(--ease),
    width 0.4s var(--ease),
    background 0.4s var(--ease);
}
.hamburger-btn.is-active {
  background: transparent;
  border-color: transparent;
}
.hamburger-btn.is-active .hamburger-line {
  background: #fff;
}
.hamburger-btn.is-active .hamburger-line:nth-child(1) {
  transform: translateY(4px) rotate(45deg);
  width: 22px;
}
.hamburger-btn.is-active .hamburger-line:nth-child(2) {
  transform: translateY(-4px) rotate(-45deg);
  width: 22px;
}

/* FULLSCREEN MENU OVERLAY */
.menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  display: flex;
  visibility: hidden;
  pointer-events: none;
}
.menu-overlay.is-active {
  visibility: visible;
  pointer-events: auto;
}
.menu-overlay-bg {
  position: absolute;
  inset: 0;
  background: var(--bg);
  clip-path: circle(0% at calc(100% - 60px) 48px);
  transition: clip-path 0.8s cubic-bezier(0.7, 0, 0.3, 1);
}
.menu-overlay.is-active .menu-overlay-bg {
  clip-path: circle(150% at calc(100% - 60px) 48px);
}
.menu-overlay-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 70% 30%,
    rgba(255, 31, 176, 0.08),
    transparent 60%
  );
  pointer-events: none;
}

.menu-overlay-content {
  position: relative;
  z-index: 2;
  width: 100%;
  height: 100%;
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 100px 40px;
  opacity: 0;
  transform: translateY(20px);
  transition:
    opacity 0.6s 0.2s,
    transform 0.6s 0.2s;
}
.menu-overlay.is-active .menu-overlay-content {
  opacity: 1;
  transform: translateY(0);
}

.fullscreen-nav-links {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.fullscreen-nav-links li {
  overflow: hidden;
}
.fullscreen-nav-links a {
  display: inline-block;
  font-size: clamp(48px, 8vw, 110px);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.03em;
  color: var(--ink);
  text-decoration: none;
  position: relative;
  transition:
    color 0.4s var(--ease),
    padding-left 0.4s var(--ease);
}
.fullscreen-nav-links a:hover {
  color: var(--magenta);
  padding-left: 24px;
}
.fullscreen-nav-links a::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 0;
  height: 6px;
  background: var(--magenta);
  transform: translateY(-50%);
  transition: width 0.4s var(--ease);
}
.fullscreen-nav-links a:hover::before {
  width: 12px;
}

.menu-info {
  margin-top: 80px;
  display: flex;
  gap: 80px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding-top: 40px;
}
.menu-info-col {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.menu-info-col.mobile-lang-col {
  display: none; /* Hide on desktop by default */
}
.menu-info-col span {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--ink-dim);
  margin-bottom: 8px;
}
.menu-info-col a {
  color: var(--ink);
  text-decoration: none;
  font-size: 15px;
  font-weight: 300;
  transition: color 0.3s;
}
.menu-info-col a:hover {
  color: var(--magenta);
}

.mobile-diag-btn-wrapper {
  display: none; /* Hide on desktop by default */
}

@media (max-width: 880px) {
  nav {
    top: 12px;
    padding: 6px 16px;
    width: calc(100% - 32px);
  }
  .nav-diag-btn {
    display: none !important;
  }
  .nav-right .lang-dropdown {
    display: flex; /* Show top nav lang dropdown on mobile */
    align-items: center;
  }
  .menu-info {
    flex-direction: column;
    gap: 40px;
    margin-top: 40px;
  }
  .mobile-diag-btn-wrapper {
    display: flex; /* Show in hamburger menu on mobile */
    margin-top: 32px;
  }
  .menu-info-col.mobile-lang-col {
    display: flex; /* Show in hamburger menu on mobile */
  }
}

/* ============================================================
   BUTTONS (magnetic)
   ============================================================ */
.btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-family: "Almarai", sans-serif;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  padding: 16px 30px;
  border-radius: 100px;
  border: none;
  text-decoration: none;
  cursor: none;
  will-change: transform;
  overflow: hidden;
}
.btn span,
.btn svg {
  position: relative;
  z-index: 2;
}
.btn-primary {
  background: var(--ink);
  color: var(--bg);
}
.btn-primary::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--violet);
  border-radius: 100px;
  transform: scale(0);
  transform-origin: center;
  transition: transform 0.5s var(--ease);
  z-index: 1;
}
.btn-primary:hover {
  color: #fff;
}
.btn-primary:hover::before {
  transform: scale(1.5);
}
.btn-ghost {
  background: rgba(236, 233, 247, 0.06);
  color: var(--ink);
  border: 1px solid var(--line);
  backdrop-filter: blur(10px);
}
.btn-ghost::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(236, 233, 247, 0.1);
  transform: translateY(101%);
  transition: transform 0.45s var(--ease);
  z-index: 1;
}
.btn-ghost:hover::before {
  transform: translateY(0);
}
.btn svg {
  width: 14px;
  height: 14px;
}

/* ============================================================
   LAYOUT
   ============================================================ */
.container {
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 40px;
}
section {
  position: relative;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 11px;
  font-weight: 400;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.eyebrow::before {
  content: "";
  width: 26px;
  height: 1px;
  background: var(--violet-soft);
}

/* reveal helpers (GSAP-driven) */
[data-reveal] {
  will-change: transform, opacity;
}
.line-mask {
  overflow: hidden;
  display: block;
}
.line-mask > * {
  display: block;
  will-change: transform;
}

/* ============================================================
   HERO (video background)
   ============================================================ */
.hero {
  position: relative;
  height: 100vh;
  min-height: 680px;
  overflow: hidden;
  background: #000;
}
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}
#hero-canvas {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  mix-blend-mode: screen;
}
/* magenta grade + darkening so text reads */
.hero-grade {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(
      120% 90% at 80% 10%,
      rgba(255, 31, 176, 0.2),
      transparent 55%
    ),
    radial-gradient(
      100% 80% at 0% 100%,
      rgba(90, 10, 85, 0.45),
      transparent 60%
    ),
    linear-gradient(
      90deg,
      rgba(4, 2, 7, 0.92) 0%,
      rgba(4, 2, 7, 0.55) 40%,
      rgba(4, 2, 7, 0.15) 70%,
      rgba(4, 2, 7, 0.5) 100%
    ),
    linear-gradient(to top, var(--bg) 1%, transparent 35%);
}
.hero-scanline {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 0.5;
  mix-blend-mode: overlay;
  background: repeating-linear-gradient(
    to bottom,
    rgba(255, 255, 255, 0.04) 0 1px,
    transparent 1px 3px
  );
}
.hero-grain {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  opacity: 0.06;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.hero-inner {
  position: relative;
  z-index: 4;
  height: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 0 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  pointer-events: none;
}
.hero-eyebrow {
  margin-bottom: 28px;
}
.hero-h1 {
  font-size: clamp(54px, 11vw, 190px);
  font-weight: 800;
  line-height: 0.86;
  letter-spacing: -0.045em;
  margin-bottom: 36px;
  text-shadow: 0 4px 60px rgba(0, 0, 0, 0.5);
}
.hero-h1 .serif {
  font-size: 0.92em;
  letter-spacing: -0.02em;
  color: var(--magenta);
}
.hero-sub {
  font-size: clamp(15px, 1.4vw, 19px);
  font-weight: 300;
  color: rgba(244, 238, 245, 0.78);
  max-width: 440px;
  line-height: 1.65;
  margin-bottom: 40px;
}
.hero-ctas {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  pointer-events: auto;
}
.hero-scroll {
  position: absolute;
  bottom: 36px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.hero-scroll-line {
  width: 1px;
  height: 46px;
  background: linear-gradient(to bottom, var(--magenta), transparent);
  position: relative;
  overflow: hidden;
}
.hero-scroll-line::after {
  content: "";
  position: absolute;
  top: -50%;
  left: 0;
  width: 100%;
  height: 50%;
  background: #fff;
  animation: scrollPulse 2s var(--ease) infinite;
}
@keyframes scrollPulse {
  0% {
    transform: translateY(-100%);
  }
  100% {
    transform: translateY(300%);
  }
}

/* ============================================================
   MARQUEE
   ============================================================ */
.marquee {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 36px 0;
  overflow: hidden;
  white-space: nowrap;
  background: linear-gradient(90deg, var(--bg2), #14060f, var(--bg2));
}
.marquee-track {
  display: inline-flex;
  gap: 60px;
  will-change: transform;
  animation: marqueeScroll 32s linear infinite;
}
.marquee:hover .marquee-track {
  animation-play-state: paused;
}
@keyframes marqueeScroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
.marquee-item {
  font-size: clamp(30px, 4.4vw, 64px);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(244, 238, 245, 0.3);
  display: inline-flex;
  align-items: center;
  gap: 60px;
}
.marquee-item .dot {
  color: var(--magenta);
  -webkit-text-stroke: 0;
  text-shadow: 0 0 16px var(--magenta);
}
.marquee-item.solid {
  color: var(--ink);
  -webkit-text-stroke: 0;
}
.marquee-item.grad {
  color: transparent;
  -webkit-text-stroke: 0;
  background: linear-gradient(90deg, var(--magenta), var(--violet-soft));
  -webkit-background-clip: text;
  background-clip: text;
}

/* ============================================================
   MANIFESTO (word highlight on scroll)
   ============================================================ */
.manifesto {
  padding: 200px 0;
}
.manifesto-eyebrow {
  margin-bottom: 64px;
}
.manifesto-text {
  font-size: clamp(28px, 4.2vw, 68px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  max-width: 1100px;
}
.manifesto-text .w {
  color: rgba(236, 233, 247, 0.14);
  transition: color 0.2s;
}
.manifesto-text .serif {
  font-size: 1em;
}

/* ============================================================
   COUNTERS (RESULTADOS)
   ============================================================ */
.counters {
  padding: 120px 0;
  border-top: 1px solid var(--line);
  position: relative;
  background: #000;
}
.counters .eyebrow {
  margin-bottom: 56px;
}

.bento-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 280px;
  gap: 2px; /* Hairline gap for mosaic look */
  background: #000;
  border: 1px solid rgba(255, 255, 255, 0.05); /* Outer container border */
}

.counter-cell {
  background: #040207;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.bg-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}

/* Grid positioning */
.bento-1 {
  grid-column: 1 / 2;
  grid-row: 1 / 2;
}
.bento-2 {
  grid-column: 1 / 2;
  grid-row: 2 / 3;
}
.bento-3 {
  grid-column: 2 / 4;
  grid-row: 1 / 2;
}
.bento-4 {
  grid-column: 2 / 3;
  grid-row: 2 / 3;
}
.bento-5 {
  grid-column: 3 / 4;
  grid-row: 2 / 3;
}
.bento-6 {
  grid-column: 4 / 5;
  grid-row: 1 / 3;
}

/* Content Wrapper */
.bento-content {
  position: relative;
  z-index: 10;
  padding: 32px;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
.text-bottom-left {
  justify-content: flex-end;
  align-items: flex-start;
}
.text-center {
  justify-content: flex-end;
  align-items: flex-start;
}
.text-top-left {
  justify-content: flex-start;
  align-items: flex-start;
}
.text-center-bottom {
  justify-content: flex-end;
  align-items: center;
  text-align: center;
}

/* Typo */
.counter-num {
  font-family: "Instrument Serif", serif;
  font-style: italic;
  font-size: clamp(48px, 5.5vw, 76px);
  font-weight: 400;
  letter-spacing: -0.02em;
  color: #fff;
  line-height: 1;
  margin-bottom: 6px;
  background: none;
  -webkit-text-fill-color: #fff;
  text-shadow: none;
}
.counter-label {
  font-size: 13px;
  font-weight: 400;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.4;
  text-shadow: none;
  border-top: none;
  padding-top: 0;
  letter-spacing: 0;
  text-transform: none;
}
.counter-cell:hover .counter-label {
  color: rgba(255, 255, 255, 0.9);
}

/* Icons & Logos */
.cell-icon {
  width: 24px;
  height: 24px;
  position: absolute;
  z-index: 10;
}
.top-left-icon {
  top: 32px;
  left: 32px;
}
.top-right-icon {
  top: 32px;
  right: 32px;
}
.cell-logo {
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 400;
  color: #fff;
  position: absolute;
  z-index: 10;
  letter-spacing: -0.02em;
}
.logo-mid-left {
  bottom: 96px;
  left: 32px;
}
.logo-group {
  position: absolute;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 8px;
}
.center-mid {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.inline-icon {
  position: relative;
  top: 0;
  left: 0;
}

/* --- CARD 1 (Top Left) --- */
.cell-1-bg {
  background: radial-gradient(circle at top left, #120e26, #040207 80%);
}

/* --- CARD 2 (Bottom Left) --- */
.cell-2-bg {
  background: radial-gradient(circle at center, #0e2041, #040207 70%);
}
.cell-2-blur-star {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 250px;
  height: 250px;
  filter: blur(12px);
  opacity: 0.8;
  z-index: 1;
  pointer-events: none;
}

/* --- CARD 3 (Wide Graph) --- */
.cell-3-bg {
  background: #000;
}
.cell-3-graph {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.cell-3-orb {
  position: absolute;
  top: 30px;
  right: 40px;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
}
.orb-core {
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50%;
  position: relative;
  z-index: 2;
}
.orb-halo {
  position: absolute;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(255, 255, 255, 0.8) 0%,
    rgba(0, 210, 255, 0.4) 40%,
    transparent 80%
  );
  box-shadow: 0 0 60px 20px rgba(0, 210, 255, 0.4);
  z-index: 1;
}
.horizontal-wide {
  flex-direction: row;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
.horizontal-wide .counter-label {
  max-width: 140px;
  text-align: right;
}

/* --- CARD 4 (Bottom Mid-Left) --- */
.cell-4-bg {
  background: radial-gradient(circle at bottom right, #110526, #040207 80%);
}
.cell-4-petals {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}
.petal {
  position: absolute;
  bottom: -20px;
  left: 50%;
  width: 60px;
  height: 180px;
  border-radius: 50px;
  background: radial-gradient(
    ellipse at top,
    rgba(0, 180, 255, 0.4),
    rgba(255, 31, 176, 0.1),
    transparent
  );
  transform-origin: bottom center;
  filter: blur(4px);
  mix-blend-mode: screen;
}
.p1 {
  transform: translateX(-50%) rotate(-60deg);
}
.p2 {
  transform: translateX(-50%) rotate(-40deg);
}
.p3 {
  transform: translateX(-50%) rotate(-20deg);
}
.p4 {
  transform: translateX(-50%) rotate(0deg);
}
.p5 {
  transform: translateX(-50%) rotate(20deg);
}
.p6 {
  transform: translateX(-50%) rotate(40deg);
}

/* --- CARD 5 (Bottom Mid-Right) --- */
.cell-5-bg {
  background: #000;
}
.cell-5-beam {
  position: absolute;
  top: 50%;
  left: 10%;
  right: 10%;
  height: 2px;
  background: #fff;
  z-index: 1;
  box-shadow:
    0 -30px 60px rgba(0, 210, 255, 0.5),
    0 30px 60px rgba(255, 31, 176, 0.5),
    0 0 10px #fff;
}
.bento-5 .bento-content {
  justify-content: flex-end;
  align-items: center;
  padding-bottom: 24px;
}

/* --- CARD 6 (Right Tall) --- */
.cell-6-bg {
  background: #040207;
}
.cell-6-img {
  position: absolute;
  inset: 0;
  background-image: url("assets/bg_horas.webp");
  background-size: cover;
  background-position: center;
  filter: grayscale(100%) contrast(1.2);
  mix-blend-mode: luminosity;
  opacity: 0.4;
  z-index: 1;
}
.cell-6-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(0, 210, 255, 0.1) 0%,
    transparent 40%,
    #000 90%
  );
  z-index: 2;
  pointer-events: none;
}
.bento-6 .bento-content {
  z-index: 10;
  justify-content: flex-end;
}
.bento-6 .counter-num {
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
}

/* --- Media Queries --- */
@media (max-width: 1024px) {
  .bento-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 260px;
  }
  .bento-1 {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
  }
  .bento-2 {
    grid-column: 1 / 2;
    grid-row: 2 / 3;
  }
  .bento-3 {
    grid-column: 2 / 4;
    grid-row: 1 / 2;
  }
  .bento-4 {
    grid-column: 2 / 3;
    grid-row: 2 / 3;
  }
  .bento-5 {
    grid-column: 3 / 4;
    grid-row: 2 / 3;
  }
  .bento-6 {
    grid-column: 1 / 4;
    grid-row: 3 / 4;
  }
}
@media (max-width: 760px) {
  .bento-grid {
    grid-template-columns: 1fr 1fr;
    grid-auto-rows: 240px;
  }
  .bento-1 {
    grid-column: 1 / 2;
    grid-row: 1 / 2;
  }
  .bento-2 {
    grid-column: 2 / 3;
    grid-row: 1 / 2;
  }
  .bento-3 {
    grid-column: 1 / 3;
    grid-row: 2 / 3;
  }
  .bento-4 {
    grid-column: 1 / 2;
    grid-row: 3 / 4;
  }
  .bento-5 {
    grid-column: 2 / 3;
    grid-row: 3 / 4;
  }
  .bento-6 {
    grid-column: 1 / 3;
    grid-row: 4 / 6;
  }
}
@media (max-width: 480px) {
  .bento-grid {
    grid-template-columns: 1fr;
    grid-auto-rows: 260px;
  }
  .bento-1,
  .bento-2,
  .bento-3,
  .bento-4,
  .bento-5,
  .bento-6 {
    grid-column: 1 / 2;
    grid-row: auto;
  }
}

/* ============================================================
   SHOWCASE — HORIZONTAL SCROLL
   ============================================================ */
.showcase {
  position: relative;
  background: var(--bg2);
}
.showcase-pin {
  height: 100vh;
  position: relative;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.showcase-pin::-webkit-scrollbar {
  display: none;
}
.showcase-pin.js-pinned {
  overflow: hidden;
  scroll-snap-type: none;
}

.showcase-video-wrap {
  position: absolute;
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 10;
  background: var(--bg2);
  will-change: opacity;
}
#showcaseVideo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 760px) {
  #showcaseVideo {
    object-fit: contain;
  }
}

.showcase-track {
  position: relative;
  z-index: 1;
  display: flex;
  height: 100%;
  width: 364vw; /* 100vw intro + 164vw panels + 100vw end */
  align-items: center;
  will-change: transform;
}
.showcase-intro {
  flex: 0 0 100vw;
  position: relative;
  padding: 0 10vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.showcase-intro h2 {
  font-size: clamp(48px, 8vw, 110px);
  font-weight: 800;
  line-height: 0.98;
  letter-spacing: -0.03em;
  margin: 24px 0;
}
.showcase-intro p {
  font-size: 18px;
  font-weight: 300;
  color: var(--ink-dim);
  max-width: 500px;
  line-height: 1.7;
}
.showcase-hint {
  margin-top: 40px;
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink-dim);
}
.showcase-hint svg {
  width: 38px;
}

.panel {
  flex: 0 0 38vw;
  min-width: 440px;
  height: 66vh;
  margin-right: 3vw;
  border-radius: 20px;
  border: 1px solid var(--line);
  background: var(--bg3);
  padding: 44px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
  position: relative;
  overflow: hidden;
  scroll-snap-align: center;
  will-change: transform;
}
.panel-media {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -15%;
  right: -15%;
  z-index: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.32;
  transition: opacity 0.6s var(--ease);
}
.panel:hover .panel-media {
  opacity: 0.6;
}
.panel-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      rgba(4, 2, 7, 0.2) 0%,
      rgba(4, 2, 7, 0.55) 55%,
      rgba(4, 2, 7, 0.92) 100%
    ),
    radial-gradient(
      120% 80% at 80% 0%,
      rgba(255, 31, 176, 0.22),
      transparent 60%
    );
}
.panel > .panel-top,
.panel > .panel-body {
  position: relative;
  z-index: 2;
}
.panel::before {
  content: "";
  position: absolute;
  top: -40%;
  right: -20%;
  width: 70%;
  height: 80%;
  z-index: 1;
  background: radial-gradient(circle, var(--glow), transparent 70%);
  opacity: 0.4;
  transition: opacity 0.5s;
}
.panel:hover::before {
  opacity: 0.8;
}
.panel-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.panel-num {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--magenta);
}
.panel-icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(255, 31, 176, 0.14);
  border: 1px solid rgba(255, 31, 176, 0.3);
  backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.panel-icon svg {
  width: 26px;
  height: 26px;
}
.panel-body {
  position: relative;
}
.panel-title {
  font-size: clamp(26px, 2.4vw, 38px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 18px;
}
.panel-desc {
  font-size: 15px;
  font-weight: 300;
  color: var(--ink-dim);
  line-height: 1.7;
  max-width: 90%;
}
.panel-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 28px;
}
.panel-tag {
  font-size: 11px;
  font-weight: 400;
  padding: 6px 14px;
  border-radius: 100px;
  border: 1px solid var(--line);
  color: var(--ink-dim);
}
.showcase-end {
  flex: 0 0 100vw;
  padding: 0 10vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.showcase-end h3 {
  font-size: clamp(48px, 6vw, 90px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
  margin-bottom: 40px;
}

@media (max-width: 760px) {
  .panel {
    min-width: 78vw;
    flex-basis: 78vw;
    height: 60vh;
    padding: 32px;
  }
  .showcase-intro {
    flex-basis: 100vw;
  }
}

/* ============================================================
   DIFFERENTIATORS — PREMIUM GLASS CARDS
   ============================================================ */
.diffs {
  padding: 160px 0 60px 0;
  position: relative;
  z-index: 1;
  background: #000;
  overflow: hidden;
}
.diffs::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    circle at 50% 0%,
    rgba(255, 31, 176, 0.05),
    transparent 60%
  );
  pointer-events: none;
}
.diffs-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 24px;
  margin-bottom: 40px;
  position: relative;
  z-index: 2;
}
.diffs-head h2 {
  font-size: clamp(34px, 4vw, 66px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 0.98;
  max-width: 600px;
}
.diffs-head p {
  font-size: 15px;
  font-weight: 300;
  color: var(--ink-dim);
  max-width: 320px;
  line-height: 1.7;
}

.diffs-thread {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.6;
}
.diffs-thread svg {
  width: 100%;
  height: 100%;
}

.diffs-list {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  margin-top: 60px;
}

/* --- Spatial Fade System (Apple Style) --- */
.diffs-list:has(.diffs-line:hover) .diffs-line {
  opacity: 0.2;
}
.diffs-list:has(.diffs-line:hover) .diffs-line:has(+ .diffs-line:hover),
.diffs-list:has(.diffs-line:hover) .diffs-line:hover + .diffs-line {
  opacity: 0.5;
}
.diffs-list:has(.diffs-line:hover) .diffs-line:hover {
  opacity: 1;
}

.diffs-line {
  display: flex;
  align-items: center;
  padding: 60px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  cursor: pointer;
  transition: all 0.5s cubic-bezier(0.1, 0.8, 0.2, 1);
  position: relative;
}

/* Background gradient on hover */
.diffs-line::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.03) 0%,
    transparent 100%
  );
  opacity: 0;
  transition: opacity 0.6s ease;
  z-index: 0;
  pointer-events: none;
}

/* Hover Image Reveal */
.dl-hover-img {
  position: absolute;
  top: 50%;
  right: 5%;
  width: 45vw;
  max-width: 600px;
  height: 380px;
  transform: translate(40px, -50%) scale(0.6) rotate(8deg);
  opacity: 0;
  border-radius: 30px;
  background-size: cover;
  background-position: center;
  z-index: 1;
  pointer-events: none;
  transition: all 0.8s cubic-bezier(0.1, 0.8, 0.2, 1);
  box-shadow:
    0 50px 100px rgba(0, 0, 0, 1),
    0 0 0 1px rgba(255, 255, 255, 0.08);
  filter: grayscale(10%) contrast(1.15);
}

.diffs-line:hover .dl-hover-img {
  opacity: 1;
  transform: translate(-40px, -50%) scale(1) rotate(-4deg);
}

/* The Racing Laser Line */
.diffs-line::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 0%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--magenta), #fff);
  transition: width 0.8s cubic-bezier(0.1, 0.8, 0.2, 1);
  box-shadow: 0 0 10px var(--magenta);
  z-index: 2;
  pointer-events: none;
}

.diffs-line:hover {
  padding-left: 40px;
  padding-right: 40px;
  /* Removed border-bottom hover color so the laser ::after shines instead */
}
.diffs-line:hover::before {
  opacity: 1;
}
.diffs-line:hover::after {
  width: 100%;
}

.dl-num {
  font-family: "Instrument Serif", serif;
  font-style: italic;
  font-size: 32px;
  color: var(--ink-dim);
  width: 80px;
  flex-shrink: 0;
  transition: color 0.4s;
  position: relative;
  z-index: 2;
}

.diffs-line:hover .dl-num {
  color: var(--magenta);
}

.dl-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 2;
  transition: transform 0.6s cubic-bezier(0.1, 0.8, 0.2, 1);
}

.diffs-line:hover .dl-body {
  transform: translateX(16px);
}

.dl-title {
  font-size: clamp(24px, 3vw, 42px);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
  color: #fff;
  transition: all 0.4s;
}

.diffs-line:hover .dl-title {
  color: #fff;
  text-shadow: 0 0 24px rgba(255, 255, 255, 0.4);
}

.dl-content {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: all 0.6s cubic-bezier(0.1, 0.8, 0.2, 1);
}

.diffs-line:hover .dl-content {
  max-height: 150px;
  opacity: 1;
  margin-top: 16px;
}

.dl-content p {
  font-size: 18px;
  font-weight: 300;
  color: rgba(255, 255, 255, 0.6);
  max-width: 600px;
  line-height: 1.6;
  transition: color 0.4s;
}

.diffs-line:hover .dl-content p {
  color: rgba(255, 255, 255, 0.95);
}

/* The Display Area (Right side) */
.dl-icon {
  width: 200px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.8s cubic-bezier(0.1, 0.8, 0.2, 1);
  position: relative;
  z-index: 2;
  margin-left: 40px;
}

/* The display mesh background */
.dl-icon::before {
  content: "";
  position: absolute;
  inset: -20px;
  background: radial-gradient(
    circle at center,
    rgba(255, 31, 176, 0.15),
    transparent 70%
  );
  opacity: 0;
  transition: opacity 0.8s ease;
  z-index: 0;
  border-radius: 50%;
  filter: blur(20px);
}

/* The abstract particles (box-shadow trick) */
.dl-icon::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #fff;
  opacity: 0;
  transition: opacity 0.8s ease;
  box-shadow:
    40px -40px 0 1px rgba(255, 31, 176, 0.6),
    -30px 50px 0 0px rgba(0, 210, 255, 0.6),
    50px 30px 0 2px rgba(255, 255, 255, 0.4),
    -50px -20px 0 1px rgba(255, 31, 176, 0.8);
  animation: floatParticles 6s infinite alternate ease-in-out;
  z-index: 1;
}

@keyframes floatParticles {
  0% {
    transform: rotate(0deg) scale(1);
  }
  100% {
    transform: rotate(15deg) scale(1.1);
  }
}

.dl-icon svg {
  width: 100px;
  height: 100px;
  color: rgba(255, 255, 255, 0.04);
  position: relative;
  z-index: 2;
  transition: all 0.8s cubic-bezier(0.1, 0.8, 0.2, 1);
}

/* The trick to make stroke scale elegantly */
.dl-icon svg * {
  vector-effect: non-scaling-stroke;
  stroke-width: 1px !important;
  transition: all 0.6s ease;
}

/* The Breathing Glow animation */
@keyframes breathingGlow {
  0% {
    filter: drop-shadow(0 0 15px rgba(255, 31, 176, 0.2));
  }
  100% {
    filter: drop-shadow(0 0 35px rgba(255, 31, 176, 0.6));
  }
}

.diffs-line:hover .dl-icon::before {
  opacity: 1;
}
.diffs-line:hover .dl-icon::after {
  opacity: 1;
}

.diffs-line:hover .dl-icon svg {
  color: var(--magenta);
  transform: scale(1.3) rotate(5deg);
  animation: breathingGlow 2s infinite alternate ease-in-out;
}
.diffs-line:hover .dl-icon svg * {
  stroke-width: 1.5px !important;
}

@media (max-width: 760px) {
  .diffs {
    padding: 100px 0 320px 0;
  }
  .diffs-list {
    margin-top: 40px;
  }
  .diffs-line {
    flex-wrap: wrap;
    padding: 24px 0;
  }
  .diffs-line:hover {
    padding-left: 0;
    padding-right: 0;
    border-bottom: 1px solid rgba(255, 31, 176, 0.3);
  }
  .dl-num {
    width: 100%;
    font-size: 24px;
    margin-bottom: 12px;
  }
  .dl-icon {
    display: none;
  }
  .dl-title {
    font-size: 28px;
  }
  .diffs-line:hover .dl-content {
    max-height: 200px;
    margin-top: 12px;
  }
}

/* ============================================================
   PROCESS VERTICAL TIMELINE (Apple Style)
   ============================================================ */
.process-vertical {
  position: relative;
  background: var(--bg);
  border-top: 1px solid var(--line);
  padding: 160px 0;
  z-index: 10;
  overflow: hidden;
}

.pv-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.pv-mesh {
  position: absolute;
  inset: 0;
}
.pv-mesh i {
  position: absolute;
  border-radius: 50%;
  filter: blur(140px);
  opacity: 0.3;
}
.pv-mesh i.a {
  width: 50vh;
  height: 50vh;
  background: var(--violet-soft);
  top: 10%;
  right: 10%;
}
.pv-mesh i.c {
  width: 40vh;
  height: 40vh;
  background: #00d2ff;
  bottom: 20%;
  left: 10%;
  mix-blend-mode: screen;
  opacity: 0.15;
}

.pv-container {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
}

.pv-intro {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 120px;
}
.pv-intro-title {
  font-size: clamp(36px, 4vw, 56px);
  line-height: 1.1;
  margin-bottom: 16px;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.pv-intro-desc {
  font-size: 18px;
  color: var(--ink-dim);
  line-height: 1.6;
}

/* Timeline Container */
.pv-timeline {
  position: relative;
  padding-bottom: 40px;
}

/* Central Spine */
.pv-spine {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 2px;
  background: rgba(255, 255, 255, 0.05);
  transform: translateX(-50%);
  z-index: 1;
}

.pv-spine-progress {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 0%; /* Animated by JS */
  background: var(--magenta);
  box-shadow: 0 0 15px var(--magenta);
}

.pv-spine-glow {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 12px;
  height: 12px;
  background: #fff;
  border-radius: 50%;
  transform: translate(-50%, 50%);
  box-shadow: 0 0 20px 8px rgba(255, 31, 176, 0.6);
  opacity: 0; /* Animated by JS alongside progress */
}

/* Steps */
.pv-steps {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 120px;
}

.pv-step {
  display: flex;
  position: relative;
  width: 100%;
  align-items: center;
}

.pv-step.left {
  justify-content: flex-start;
}
.pv-step.right {
  justify-content: flex-end;
}

/* The dot on the spine */
.pv-dot {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: var(--bg);
  border: 2px solid rgba(255, 255, 255, 0.2);
  z-index: 3;
  transition: all 0.4s ease;
}
.pv-dot.active {
  background: var(--magenta);
  border-color: var(--magenta);
  box-shadow: 0 0 20px var(--magenta);
  transform: translate(-50%, -50%) scale(1.3);
}

/* The Card */
.pv-card {
  width: 46%;
  position: relative;
  display: flex;
  gap: 24px;
  /* Hidden initially for GSAP */
  opacity: 0;
  visibility: hidden;
}

.pv-step.left .pv-card {
  text-align: right;
  flex-direction: row-reverse;
  padding-right: 60px;
}
.pv-step.right .pv-card {
  text-align: left;
  padding-left: 60px;
}

.pv-icon {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(14, 7, 18, 0.95);
  border: 1px solid rgba(255, 31, 176, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 20px rgba(255, 31, 176, 0.2);
  color: var(--magenta);
}
.pv-icon svg {
  width: 32px;
  height: 32px;
}

.pv-content {
  background: rgba(14, 7, 18, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  backdrop-filter: blur(12px);
  padding: 32px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  position: relative;
  flex: 1;
  overflow: hidden;
}

.pv-num {
  position: absolute;
  top: -10px;
  font-family: "Instrument Serif", serif;
  font-style: italic;
  font-size: 140px;
  color: rgba(255, 255, 255, 0.03);
  line-height: 1;
  pointer-events: none;
  z-index: 0;
}
.pv-step.left .pv-num {
  left: 10px;
  right: auto;
}
.pv-step.right .pv-num {
  right: 10px;
  left: auto;
}

.pv-content h3,
.pv-content p,
.pv-content ul {
  position: relative;
  z-index: 2;
}

.pv-content h3 {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 12px;
}
.pv-content p {
  font-size: 16px;
  font-weight: 300;
  color: var(--ink-dim);
  line-height: 1.6;
  margin-bottom: 24px;
}

.pv-content ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.pv-step.left .pv-content ul {
  align-items: flex-end;
}
.pv-step.right .pv-content ul {
  align-items: flex-start;
}

.pv-content ul li {
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
  background: rgba(255, 255, 255, 0.03);
  padding: 10px 16px;
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.02);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.pv-step.left .pv-content ul li {
  flex-direction: row-reverse;
}

.pv-content ul li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--violet-soft);
  flex-shrink: 0;
  box-shadow: 0 0 8px var(--violet-soft);
}

/* Mobile Adjustments */
@media (max-width: 900px) {
  .pv-spine {
    left: 40px;
    transform: none;
  }
  .pv-spine-glow {
    left: 1px;
    transform: translate(-50%, 50%);
  }
  .pv-dot {
    left: 41px;
  }

  .pv-step.left,
  .pv-step.right {
    justify-content: flex-start;
  }

  .pv-card {
    width: 100%;
    padding-left: 72px !important;
    padding-right: 0 !important;
    flex-direction: column !important;
    gap: 16px;
    text-align: left !important;
  }

  .pv-step.left .pv-num,
  .pv-step.right .pv-num {
    top: 20px;
    right: 24px;
    left: auto;
  }
  .pv-step.left .pv-content ul,
  .pv-step.right .pv-content ul {
    align-items: flex-start;
  }
  .pv-step.left .pv-content ul li {
    flex-direction: row;
  }
}

/* ============================================================
   PHILOSOPHY (video)
   ============================================================ */
.philosophy {
  padding: 480px 0 220px;
  position: relative;
  overflow: hidden;
  text-align: center;
  margin-top: 40px;
}
.philo-video-wrap {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 50vh;
  max-height: 500px;
  z-index: 0;
  pointer-events: none;
}
.philo-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.9;
}
.philo-fade-top {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 150px;
  background: linear-gradient(to bottom, var(--bg), transparent);
  z-index: 1;
}
.philo-fade-bottom {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 250px;
  background: linear-gradient(to top, var(--bg), transparent);
  z-index: 1;
}
.philo-inner {
  position: relative;
  z-index: 2;
}
.philo-h {
  font-size: clamp(36px, 6vw, 110px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 0.95;
  max-width: 1000px;
  margin: 0 auto;
}
.philo-h .serif {
  color: var(--violet-soft);
}
.philo-sub {
  margin: 40px auto 0;
  max-width: 540px;
  font-size: 16px;
  font-weight: 300;
  color: var(--ink-dim);
  line-height: 1.7;
}

/* Philosophy Pillars */
.philo-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  margin-top: 100px;
  text-align: left;
}
.philo-pillar {
  padding-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  position: relative;
  transition: border-color 0.4s var(--ease);
}
.philo-pillar:hover {
  border-color: var(--magenta);
}
.pp-num {
  font-family: "Instrument Serif", serif;
  font-style: italic;
  font-size: 48px;
  color: var(--magenta);
  margin-bottom: 24px;
}
.philo-pillar h4 {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--ink);
}
.philo-pillar p {
  font-size: 15px;
  font-weight: 300;
  color: var(--ink-dim);
  line-height: 1.6;
}

@media (max-width: 880px) {
  .philo-pillars {
    grid-template-columns: 1fr;
    gap: 60px;
    margin-top: 80px;
  }
  .philosophy {
    margin-top: 0;
    padding-top: 380px;
  }
  .counters {
    padding-bottom: 40px;
  }
  .philo-video-wrap {
    top: -40px;
    height: 55vh;
  }
  .philo-fade-top {
    height: 60px;
  }
}
/* ============================================================
   FINAL CTA
   ============================================================ */
.final {
  padding: 180px 0 120px;
  text-align: center;
  position: relative;
  overflow: hidden;
  background: var(--bg);
  z-index: 50;
}
.final-bg {
  position: absolute;
  bottom: -8%;
  left: 0;
  right: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.final-bg-track {
  display: inline-flex;
  gap: 6vw;
  white-space: nowrap;
  animation: marqueeScroll 40s linear infinite;
  font-size: clamp(140px, 26vw, 440px);
  font-weight: 800;
  letter-spacing: -0.05em;
  color: rgba(236, 233, 247, 0.025);
}
.final-inner {
  position: relative;
  z-index: 2;
}
.final-h {
  font-size: clamp(46px, 10vw, 120px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 0.92;
  max-width: 1000px;
  margin: 0 auto 36px;
}
.final-h .serif {
  font-size: 1.1em;
}
.final-sub {
  max-width: 460px;
  margin: 0 auto 52px;
  font-size: 16px;
  font-weight: 300;
  color: var(--ink-dim);
  line-height: 1.7;
}
.final-big-btn {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  font-size: clamp(18px, 2vw, 26px);
  font-weight: 700;
  padding: 28px 52px;
}
@media (max-width: 600px) {
  .final-big-btn {
    width: 100%;
    max-width: 340px;
    justify-content: center;
    font-size: 20px;
    padding: 24px 20px;
  }
}

/* ============================================================
   FOOTER
   ============================================================ */
footer {
  border-top: 1px solid var(--line);
  padding: 80px 40px 48px;
  position: relative;
  z-index: 50;
  background: var(--bg);
}
.footer-grid {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 40px;
}
.footer-brand {
  font-size: clamp(40px, 6vw, 110px);
  font-weight: 800;
  letter-spacing: -0.04em;
  line-height: 0.9;
}
.footer-col {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.footer-col-title {
  font-size: 11px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--ink-dim);
  margin-bottom: 6px;
}
.footer-col a {
  color: var(--ink-dim);
  text-decoration: none;
  font-size: 14px;
  font-weight: 300;
  transition: color 0.3s;
}
.footer-col a:hover {
  color: var(--ink);
}
.footer-bottom {
  max-width: 1320px;
  margin: 80px auto 0;
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px;
  padding-top: 28px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  color: #ffffff;
}

.footer-powered {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.footer-powered span {
  font-size: 15px;
  font-weight: 500;
}

.footer-powered img {
  height: 26px;
  transition: all 0.3s var(--ease);
}

@media (max-width: 760px) {
  .footer-bottom {
    justify-content: center;
    text-align: center;
    gap: 32px;
  }
  .footer-powered {
    align-items: center;
    width: 100%;
  }
  .footer-powered img {
    height: 32px;
  }
}

/* ============================================================
   MODERN EFFECTS
   ============================================================ */
nav {
  transition:
    background 0.4s var(--ease),
    backdrop-filter 0.4s,
    padding 0.4s;
}
nav.scrolled {
  background: rgba(4, 2, 7, 0.7);
  backdrop-filter: blur(16px) saturate(1.2);
  border-bottom: 1px solid var(--line);
  padding-top: 16px;
  padding-bottom: 16px;
}
.cursor-ring.hover {
  background: rgba(255, 31, 176, 0.18);
  border-color: rgba(255, 88, 200, 0.5);
}

/* magenta mesh blobs behind dark sections */
.mesh {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.mesh i {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  opacity: 0.5;
  will-change: transform;
}
.mesh i.a {
  width: 540px;
  height: 540px;
  background: radial-gradient(circle, rgba(255, 31, 176, 0.3), transparent 68%);
  top: -10%;
  right: -6%;
}
.mesh i.b {
  width: 460px;
  height: 460px;
  background: radial-gradient(circle, rgba(120, 20, 140, 0.3), transparent 68%);
  bottom: -14%;
  left: -8%;
}
.mesh i.c {
  width: 320px;
  height: 320px;
  background: radial-gradient(
    circle,
    rgba(255, 88, 200, 0.18),
    transparent 70%
  );
  top: 40%;
  left: 45%;
}
.manifesto,
.counters,
.diffs,
.process,
.final {
  position: relative;
}
.manifesto > .container,
.counters > .container,
.diffs > .container,
.process > .container,
.final-inner {
  position: relative;
  z-index: 1;
}

/* glow accent on section eyebrows */
.eyebrow::before {
  background: var(--magenta);
  box-shadow: 0 0 10px var(--magenta);
}

/* glitch / RGB-split hover on headings */
[data-glitch] {
  position: relative;
}
[data-glitch].glitching {
  animation: glitchShake 0.34s steps(2) 1;
}
[data-glitch].glitching .line-mask > * {
  text-shadow:
    2.5px 0 var(--magenta),
    -2.5px 0 rgba(0, 210, 255, 0.7);
}
@keyframes glitchShake {
  0% {
    transform: translate(0, 0);
  }
  20% {
    transform: translate(-3px, 1px);
  }
  40% {
    transform: translate(3px, -1px);
  }
  60% {
    transform: translate(-2px, 0);
  }
  80% {
    transform: translate(2px, 1px);
  }
  100% {
    transform: translate(0, 0);
  }
}

/* link RGB hover for nav + footer */
.nav-links a:hover,
.footer-col a:hover {
  text-shadow:
    1.5px 0 var(--magenta),
    -1.5px 0 rgba(0, 200, 255, 0.5);
}

/* magnetic skew container (JS sets --skew) */
[data-skew] {
  transform: skewY(var(--skew, 0deg));
  will-change: transform;
}

/* primary button glow */
.btn-primary {
  box-shadow: 0 8px 30px rgba(255, 31, 176, 0.25);
}
.panel-icon,
.tilt-ic {
  box-shadow: 0 0 24px rgba(255, 31, 176, 0.12) inset;
}
.counter-num {
  filter: drop-shadow(0 4px 24px rgba(255, 31, 176, 0.18));
}

/* cursor trail dots */
.cursor-trail {
  position: fixed;
  top: 0;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--magenta);
  pointer-events: none;
  z-index: 99998;
  transform: translate(-50%, -50%);
  opacity: 0;
  will-change: transform, opacity;
}
@media (hover: none) {
  .cursor-trail {
    display: none;
  }
}

.showcase-track {
  width: 364vw;
}
.showcase-intro {
  width: 100vw;
  display: flex;
  justify-content: center;
}

/* --- BELIEF SCROLL SECTION --- */
.belief-scroll-section {
  position: relative;
  width: 100%;
  height: 100vh;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 50;
}

.bs-bg-video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
  transform: translateZ(0);
}

.bs-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #040207;
  opacity: 0;
  z-index: 2;
  will-change: opacity;
  transform: translateZ(0);
}

.bs-content {
  position: relative;
  z-index: 3;
  text-align: center;
  opacity: 0;
  transform: translateY(60px) translateZ(0);
  display: flex;
  flex-direction: column;
  align-items: center;
  will-change: transform, opacity;
}

.bs-logo-wrap {
  margin-bottom: 48px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 138px;
  height: 138px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  box-shadow: 0 0 40px rgba(255, 88, 200, 0.1);
}

.bs-logo-wrap img {
  height: 38px;
}

.bs-title {
  font-size: clamp(36px, 5.5vw, 72px);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 60px;
  max-width: 1000px;
  letter-spacing: -0.02em;
  color: #fff;
}

.bs-scroll-dot-wrap {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}

.bs-scroll-dot {
  width: 4px;
  height: 4px;
  background: var(--magenta);
  border-radius: 50%;
  box-shadow: 0 0 10px var(--magenta);
}

.showcase-end {
  width: 100vw;
  display: flex;
  justify-content: center;
  font-size: 3rem;
}

.cta-middle {
  margin-top: 0;
  padding: 160px 20px;
  position: relative;
  z-index: 99;
  display: flex;
  justify-content: center;
  overflow: hidden;
  box-shadow: 0 -30px 60px rgba(0, 0, 0, 0.5);
  border-top-left-radius: 40px;
  border-top-right-radius: 40px;
}


.cta-middle-mesh {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.cta-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(120px);
  opacity: 0.4;
  animation: floatOrb 10s infinite alternate ease-in-out;
}
.cta-orb-1 {
  width: 400px;
  height: 400px;
  background: rgba(255, 31, 176, 0.3);
  top: 0;
  left: -100px;
}
.cta-orb-2 {
  width: 500px;
  height: 500px;
  background: rgba(0, 210, 255, 0.2);
  bottom: -100px;
  right: -100px;
  animation-delay: -5s;
}

@keyframes floatOrb {
  0% {
    transform: translate(0, 0) scale(1);
  }
  100% {
    transform: translate(50px, -50px) scale(1.1);
  }
}

.cta-middle-box {
  max-width: 1100px;
  margin: 0 auto;
  padding: 120px 40px;
  position: relative;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 2;
}

.cta-middle-box:hover {
  /* No box styling on hover */
}

.cta-middle-bg {
  position: absolute;
  inset: 0;
  background-image: url("images/fundocta.webp");
  background-size: cover;
  background-position: center;
  z-index: 0;
  transition: transform 0.8s cubic-bezier(0.1, 0.8, 0.2, 1);
}

/* Dark overlay to ensure text readability and blend with edges */
.cta-middle-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    #040207,
    rgba(4, 2, 7, 0.1) 20%,
    rgba(4, 2, 7, 0.1) 80%,
    #040207
  );
  z-index: 1;
}

.cta-middle:hover .cta-middle-bg {
  transform: scale(1.03);
}

.cta-middle-glow {
  position: absolute;
  top: -150px;
  left: 50%;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    rgba(255, 31, 176, 0.2) 0%,
    transparent 70%
  );
  transform: translateX(-50%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
}

.cta-middle-content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.cta-middle-title {
  font-size: clamp(40px, 6vw, 76px);
  font-weight: 800;
  line-height: 1.05;
  color: #fff;
  margin-bottom: 24px;
  letter-spacing: -0.03em;
}

.cta-middle-title .serif {
  color: var(--magenta);
  font-family: "Instrument Serif", serif;
  font-style: italic;
  font-weight: 400;
}

.cta-middle-desc {
  font-size: clamp(18px, 2.5vw, 24px);
  color: rgba(255, 255, 255, 0.85);
  max-width: 680px;
  margin-bottom: 48px;
  line-height: 1.6;
}

.cta-middle-btn {
  font-size: 16px;
  font-weight: 700;
  padding: 22px 48px;
  border-radius: 100px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  position: relative;
  z-index: 1;
  background: linear-gradient(135deg, var(--magenta), #d800ff);
  color: #fff !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: none;
  box-shadow:
    0 15px 35px rgba(255, 31, 176, 0.4),
    inset 0 2px 0 rgba(255, 255, 255, 0.2);
  transition:
    transform 0.4s cubic-bezier(0.1, 0.8, 0.2, 1),
    box-shadow 0.4s ease;
  overflow: hidden;
}

.cta-middle-btn span,
.cta-middle-btn svg {
  position: relative;
  z-index: 1;
}

.cta-middle-btn svg {
  width: 16px;
  height: 16px;
  transition: transform 0.4s ease;
}

.cta-middle-btn:hover {
  transform: translateY(-2px);
  background: #fff;
}

.cta-middle-btn:hover svg {
  transform: translateX(6px) translateY(-6px);
}

@media (max-width: 768px) {
  .cta-middle-btn {
    font-size: 14px;
    padding: 16px 32px;
  }
  .cta-middle-btn svg {
    width: 16px;
    height: 16px;
  }
  .fullscreen-nav-links a {
    font-size: clamp(32px, 10vw, 48px);
  }
  .nav-diag-btn {
    display: inline-flex;
    padding: 8px 16px;
    font-size: 11px;
  }
}

 / *   = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 
       L A N G   S W I T C H E R 
       = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =   * / 
 . l a n g - s w i t c h e r   { 
     d i s p l a y :   f l e x ; 
     a l i g n - i t e m s :   c e n t e r ; 
     g a p :   8 p x ; 
     m a r g i n - r i g h t :   1 6 p x ; 
 } 
 . l a n g - b t n   { 
     b a c k g r o u n d :   t r a n s p a r e n t ; 
     b o r d e r :   1 p x   s o l i d   r g b a ( 2 5 5 ,   2 5 5 ,   2 5 5 ,   0 . 1 ) ; 
     b o r d e r - r a d i u s :   4 p x ; 
     c o l o r :   # f f f ; 
     c u r s o r :   p o i n t e r ; 
     p a d d i n g :   4 p x ; 
     f o n t - s i z e :   1 6 p x ; 
     l i n e - h e i g h t :   1 ; 
     t r a n s i t i o n :   a l l   0 . 3 s   e a s e ; 
     o p a c i t y :   0 . 5 ; 
     f i l t e r :   g r a y s c a l e ( 1 0 0 % ) ; 
 } 
 . l a n g - b t n : h o v e r   { 
     o p a c i t y :   0 . 8 ; 
     f i l t e r :   g r a y s c a l e ( 5 0 % ) ; 
 } 
 . l a n g - b t n . a c t i v e   { 
     o p a c i t y :   1 ; 
     f i l t e r :   g r a y s c a l e ( 0 % ) ; 
     b o r d e r - c o l o r :   r g b a ( 2 5 5 ,   2 5 5 ,   2 5 5 ,   0 . 3 ) ; 
 } 
 @ m e d i a   ( m a x - w i d t h :   8 8 0 p x )   { 
     . l a n g - s w i t c h e r   { 
         m a r g i n - r i g h t :   0 ; 
     } 
 } 
  
 
 / *   M O B I L E   L A N G   D R O P D O W N   O V E R R I D E S   * / 
 . m o b i l e - l a n g - c o l   { 
     d i s p l a y :   n o n e ; 
 } 
 @ m e d i a   ( m a x - w i d t h :   8 8 0 p x )   { 
     . n a v - r i g h t   . l a n g - d r o p d o w n   { 
         d i s p l a y :   n o n e ; 
     } 
     . m o b i l e - l a n g - c o l   { 
         d i s p l a y :   f l e x ; 
     } 
     . m o b i l e - l a n g - c o l   . l a n g - d r o p d o w n - m e n u   { 
         t o p :   a u t o ; 
         b o t t o m :   c a l c ( 1 0 0 %   +   8 p x ) ; 
         t r a n s f o r m :   t r a n s l a t e Y ( 1 0 p x ) ; 
     } 
     . m o b i l e - l a n g - c o l   . l a n g - d r o p d o w n . o p e n   . l a n g - d r o p d o w n - m e n u   { 
         t r a n s f o r m :   t r a n s l a t e Y ( 0 ) ; 
     } 
 } 
  
 