/* ===== INTRO — Logo + barra de carregamento ===== */
.intro {
  position: fixed;
  inset: 0;
  background: #0B1F3A;
  z-index: 9999;
  display: grid;
  place-items: center;
  transition: transform 1s cubic-bezier(.7, 0, .3, 1);
  will-change: transform;
}
.intro.is-out { transform: translateY(-100%); }
body.intro-locked { overflow: hidden; }

.intro__inner {
  text-align: center;
  padding: 0 24px;
  display: grid;
  justify-items: center;
  gap: 48px;
}

.intro__logo {
  width: 120px;
  height: auto;
  display: block;
  opacity: 0;
  transform: scale(0.85);
  animation: introLogo 1s cubic-bezier(.2, .7, .2, 1) 0.1s forwards;
}
@keyframes introLogo { to { opacity: 1; transform: scale(1); } }

.intro__bar {
  width: 220px;
  height: 1px;
  background: rgba(245, 242, 234, 0.15);
  position: relative;
  overflow: hidden;
}
.intro__bar-fill {
  position: absolute;
  inset: 0;
  background: #2E6FB8;
  transform: scaleX(0);
  transform-origin: left;
  animation: introBar 2.4s cubic-bezier(.7, 0, .3, 1) 0.4s forwards;
}
@keyframes introBar { to { transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
  .intro { transition: none; }
  .intro__logo, .intro__bar-fill { animation: none; opacity: 1; transform: none; }
}
