/* Shared branded entrance — do not pull full home-fix.css onto other pages. */
.site-intro {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(circle at 50% 48%, rgba(195, 167, 77, .11), transparent 30%), #171816;
  opacity: 1;
  transition: opacity .18s ease;
}
.site-intro.leaving {
  opacity: 0;
  pointer-events: none;
}
.intro-ring {
  position: relative;
  width: 300px;
  height: 330px;
  display: grid;
  place-items: center;
  perspective: 900px;
}
.intro-ring::before,
.intro-ring::after {
  content: '';
  position: absolute;
  width: 270px;
  height: 270px;
  border: 1px solid rgba(195, 167, 77, .2);
  border-radius: 50%;
  animation: introRing .9s ease-out both;
}
.intro-ring::after {
  width: 330px;
  height: 330px;
  border-color: rgba(165, 236, 255, .08);
  animation-delay: .08s;
}
.intro-logo-crop {
  position: relative;
  z-index: 2;
  width: 300px;
  height: 300px;
  overflow: visible;
  background: transparent;
  animation: introFlip 1.45s cubic-bezier(.2, .75, .25, 1) both;
  backface-visibility: hidden;
}
.intro-logo-crop img {
  position: absolute;
  width: 400px;
  height: 400px;
  max-width: none;
  left: -50px;
  top: -50px;
  object-fit: contain;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 24px rgba(195, 167, 77, .16));
}
@keyframes introFlip {
  0% { opacity: 0; transform: rotateY(-105deg) scale(.82); }
  45% { opacity: 1; transform: rotateY(12deg) scale(1.02); }
  100% { opacity: 1; transform: rotateY(0) scale(1); }
}
@keyframes introRing {
  from { opacity: 0; transform: scale(.72); }
  to { opacity: .8; transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .site-intro { transition: none; }
  .intro-ring::before,
  .intro-ring::after,
  .intro-logo-crop { animation: none; }
}
