/* Custom styles, animations and the mobile menu (Tailwind lives in tailwind.css) */

/* Blueprint grid used behind dark heroes */
.bg-blueprint {
  background-image:
    linear-gradient(rgba(160, 179, 203, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(160, 179, 203, 0.08) 1px, transparent 1px);
  background-size: 48px 48px;
  background-position: -1px -1px;
}
.bg-blueprint-fade {
  -webkit-mask-image: radial-gradient(ellipse at 70% 40%, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse at 70% 40%, #000 30%, transparent 75%);
}

/* Header shadow once the page scrolls */
.site-header {
  transition: box-shadow 0.2s ease, background-color 0.2s ease;
}
.site-header.is-scrolled {
  box-shadow: 0 1px 0 rgba(22, 35, 58, 0.08), 0 8px 24px -12px rgba(22, 35, 58, 0.18);
}

/* Mobile menu */
.mobile-menu {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.28s ease;
}
.mobile-menu > div {
  overflow: hidden;
}
.mobile-menu.is-open {
  grid-template-rows: 1fr;
}
.mobile-menu details > summary {
  list-style: none;
  cursor: pointer;
}
.mobile-menu details > summary::-webkit-details-marker {
  display: none;
}
.mobile-menu details[open] .chevron {
  transform: rotate(180deg);
}
.menu-toggle .bar {
  transition: transform 0.25s ease, opacity 0.2s ease;
  transform-origin: center;
}
.menu-toggle[aria-expanded='true'] .bar-1 {
  transform: translateY(6px) rotate(45deg);
}
.menu-toggle[aria-expanded='true'] .bar-2 {
  opacity: 0;
}
.menu-toggle[aria-expanded='true'] .bar-3 {
  transform: translateY(-6px) rotate(-45deg);
}
body.menu-open {
  overflow: hidden;
}
@media (min-width: 1024px) {
  body.menu-open {
    overflow: auto;
  }
}

/* Tower illustration: floors light up one after another on load */
.tower-floor {
  opacity: 0.28;
  animation: floor-on 0.5s ease forwards;
}
@keyframes floor-on {
  to {
    opacity: 1;
  }
}
.tower-scan {
  animation: scan 6s ease-in-out infinite;
}
@keyframes scan {
  0%,
  100% {
    transform: translateY(0);
    opacity: 0;
  }
  10%,
  90% {
    opacity: 0.9;
  }
  50% {
    transform: translateY(420px);
  }
}

/* Scroll reveal (common.js adds .is-visible); content stays visible without JS */
.js .reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.js .reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Video placeholders */
.video-poster {
  background:
    radial-gradient(circle at 30% 20%, rgba(217, 35, 53, 0.22), transparent 55%),
    linear-gradient(160deg, #243650 0%, #0e1729 100%);
}
.video-poster .play {
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.video-card:hover .play {
  transform: scale(1.08);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .js .reveal {
    opacity: 1;
    transform: none;
  }
}
