@import "./styles.css";

@tailwind base;
@tailwind components;
@tailwind utilities;

body.page-home #services h2.font-serif.text-section-title {
  font-size: 48px;
}

/* Reveal — must follow Tailwind utilities */
.reveal {
  outline: none;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

noscript .reveal {
  opacity: 1 !important;
  transform: none !important;
}

html.js body.page-home .reveal {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition-property: opacity, transform !important;
  transition-duration: 0.9s !important;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}

html.js body.page-home .reveal.active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

html.js body.page-about .reveal,
html.js body.page-insights .reveal {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  transition-property: opacity, transform !important;
  transition-duration: 1.05s !important;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}

html.js body.page-services .reveal {
  opacity: 0;
  transform: translate3d(0, 12px, 0);
  transition-property: opacity, transform !important;
  transition-duration: 0.9s !important;
  transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1) !important;
}

html.js body.page-about .reveal.active,
html.js body.page-insights .reveal.active,
html.js body.page-services .reveal.active {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

@media (prefers-reduced-motion: reduce) {
  html.js .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Methodology — Nuvond Bridge highlight on hover */
#strategy .group:hover .method-bridge-rect {
  fill: rgba(187, 63, 23, 0.12);
  stroke-width: 0.6;
  stroke-opacity: 1;
}
#strategy .group:hover .method-bridge-text {
  fill: #bb3f17;
}

/* Insights Ledger — scroll-driven vertical carousel */
#ledger-carousel {
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}

#ledger-mobile-track {
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}

.ledger-item {
  transition:
    opacity 0.5s cubic-bezier(0.25, 1, 0.5, 1),
    transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: opacity, transform;
}

.ledger-item-btn:focus-visible {
  outline: 2px solid #c4a574;
  outline-offset: 4px;
}

.ledger-bg-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transform: scale(1.05);
  transition: opacity 0.6s ease, transform 0.6s ease;
  will-change: opacity, transform;
}

.ledger-bg-img.is-active {
  opacity: 1;
  transform: scale(1);
}

.ledger-bg-img--fallback {
  background: #171716;
}

.ledger-bg-gradient {
  background: radial-gradient(circle at 35% 50%, rgba(23, 23, 22, 0.15), rgba(10, 10, 10, 0.9));
}

@media (prefers-reduced-motion: reduce) {
  #ledger-carousel,
  #ledger-mobile-track,
  .ledger-item,
  .ledger-bg-img {
    transition: none !important;
  }
}
