:root {
  --fx-red: #dc2626;
  --fx-ink: #18181b;
  --fx-soft-shadow: 0 18px 60px rgba(24, 24, 27, 0.14);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at var(--mx, 50%) var(--my, 18%), rgba(220, 38, 38, 0.11), transparent 24rem),
    linear-gradient(180deg, rgba(255,255,255,0.18), transparent 36rem);
  opacity: 0.9;
}

.scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: var(--scroll, 0%);
  height: 3px;
  z-index: 99999;
  background: linear-gradient(90deg, var(--fx-red), #18181b);
  transform-origin: left;
}

.fx-ready .reveal,
.fx-ready .section-num,
.fx-ready .hero-lead,
.fx-ready .pillar,
.fx-ready .tech-panel,
.fx-ready .case-card,
.fx-ready .svc-card,
.fx-ready .num-cell,
.fx-ready .process-step,
.fx-ready .channel-card,
.fx-ready .contact-card {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1), box-shadow 0.25s ease, border-color 0.25s ease;
}

.fx-ready .fx-inview {
  opacity: 1;
  transform: translateY(0);
}

.fx-ready .btn,
.fx-ready .nav-cta,
.fx-ready .svc-card,
.fx-ready .case-card,
.fx-ready .tech-panel,
.fx-ready .channel-card,
.fx-ready .contact-card,
.fx-ready .tl-content {
  will-change: transform;
}

.fx-ready .svc-card:hover,
.fx-ready .case-card:hover,
.fx-ready .tech-panel:hover,
.fx-ready .channel-card:hover,
.fx-ready .contact-card:hover,
.fx-ready .tl-content:hover {
  box-shadow: var(--fx-soft-shadow);
  transform: translateY(-5px);
}

.site-logo,
.footer-logo {
  filter: drop-shadow(0 0 0 rgba(220, 38, 38, 0));
  transition: filter 0.25s ease, transform 0.25s ease;
}

.logo-row:hover .site-logo,
.brand:hover .footer-logo {
  transform: translateY(-1px);
  filter: drop-shadow(0 10px 22px rgba(220, 38, 38, 0.22));
}

.fx-cursor {
  position: fixed;
  left: 0;
  top: 0;
  width: 18px;
  height: 18px;
  border: 1px solid rgba(220, 38, 38, 0.45);
  border-radius: 50%;
  pointer-events: none;
  z-index: 99998;
  opacity: 0;
  transform: translate3d(-50%, -50%, 0);
  transition: opacity 0.18s ease, width 0.18s ease, height 0.18s ease, border-color 0.18s ease;
  mix-blend-mode: multiply;
}

.fx-cursor.is-hot {
  width: 42px;
  height: 42px;
  border-color: rgba(220, 38, 38, 0.25);
}

nav.top.is-scrolled {
  box-shadow: 0 10px 35px rgba(24, 24, 27, 0.08);
}

@media (prefers-reduced-motion: reduce), (pointer: coarse) {
  body::before,
  .scroll-progress,
  .fx-cursor {
    display: none;
  }

  .fx-ready .reveal,
  .fx-ready .section-num,
  .fx-ready .hero-lead,
  .fx-ready .pillar,
  .fx-ready .tech-panel,
  .fx-ready .case-card,
  .fx-ready .svc-card,
  .fx-ready .num-cell,
  .fx-ready .process-step,
  .fx-ready .channel-card,
  .fx-ready .contact-card {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
