/* FCFW R35 Rev2 Hotfix 21 — first-visit public intro */
.fcfw-first-visit-intro[hidden] { display: none !important; }
.fcfw-first-visit-intro {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.16), transparent 38%),
    linear-gradient(145deg, #090b10 0%, #17110e 42%, #30080d 100%);
  color: #fff;
  opacity: 0;
  visibility: visible;
  pointer-events: none;
  overflow: hidden;
}
.fcfw-first-visit-intro::before {
  content: "";
  position: absolute;
  width: min(76vw, 760px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(180,18,41,.22), rgba(180,18,41,0) 68%);
  filter: blur(18px);
}
.fcfw-first-visit-intro.is-entering {
  animation: fcfwIntroOverlayIn .42s ease-out forwards;
}
.fcfw-first-visit-intro.is-leaving {
  animation: fcfwIntroOverlayOut .42s ease-in forwards;
}
.fcfw-first-visit-intro__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  width: min(92vw, 760px);
  text-align: center;
  transform: translateY(10px) scale(.985);
  opacity: 0;
}
.fcfw-first-visit-intro.is-entering .fcfw-first-visit-intro__inner {
  animation: fcfwIntroContentIn .52s .08s cubic-bezier(.2,.8,.2,1) forwards;
}
.fcfw-first-visit-intro__logo {
  display: block;
  width: clamp(110px, 20vw, 190px);
  height: clamp(110px, 20vw, 190px);
  object-fit: cover;
  border-radius: 24px;
  border: 3px solid rgba(255,255,255,.92);
  box-shadow: 0 22px 64px rgba(0,0,0,.45), 0 0 0 8px rgba(180,18,41,.14);
}
.fcfw-first-visit-intro__name {
  margin: 0;
  max-width: 760px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.65rem, 5vw, 3.65rem);
  font-weight: 900;
  letter-spacing: -.025em;
  line-height: 1.02;
  text-shadow: 0 3px 20px rgba(0,0,0,.65);
  opacity: 0;
  transform: translateY(8px);
}
.fcfw-first-visit-intro.is-entering .fcfw-first-visit-intro__name {
  animation: fcfwIntroNameIn .48s .28s ease-out forwards;
}
.fcfw-first-visit-intro__rule {
  width: min(250px, 42vw);
  height: 4px;
  border: 0;
  border-radius: 999px;
  margin: 0;
  background: linear-gradient(90deg, #f4c542, #fff3b0, #b5122b);
  box-shadow: 0 0 24px rgba(244,197,66,.28);
  opacity: 0;
  transform: scaleX(.35);
}
.fcfw-first-visit-intro.is-entering .fcfw-first-visit-intro__rule {
  animation: fcfwIntroRuleIn .5s .42s ease-out forwards;
}
@keyframes fcfwIntroOverlayIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fcfwIntroOverlayOut { from { opacity: 1; } to { opacity: 0; visibility: hidden; } }
@keyframes fcfwIntroContentIn { from { opacity: 0; transform: translateY(10px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes fcfwIntroNameIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes fcfwIntroRuleIn { from { opacity: 0; transform: scaleX(.35); } to { opacity: 1; transform: scaleX(1); } }
@media (max-width: 600px) {
  .fcfw-first-visit-intro { padding: 20px; }
  .fcfw-first-visit-intro__inner { gap: 15px; }
  .fcfw-first-visit-intro__logo { border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .fcfw-first-visit-intro,
  .fcfw-first-visit-intro *,
  .fcfw-first-visit-intro::before {
    animation: none !important;
    transition: none !important;
  }
}
