*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html,
body {
  height: 100%;
  background: #000000;
  overflow: hidden;
}

body {
  overflow: hidden;
  cursor: default;
}

/* Camada de efeitos (raios + brasas) atrás da logo */
#fx {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

.stage {
  position: relative;
  z-index: 1;
  overflow: hidden;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: max(24px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right))
           max(24px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
}

/* Aura verde pulsando atrás da logo */
.stage::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(900px, 130vw);
  height: min(900px, 130vw);
  translate: -50% -50%;
  background: radial-gradient(circle, rgba(52, 168, 83, 0.22) 0%, rgba(52, 168, 83, 0.07) 38%, transparent 68%);
  opacity: 0;
  animation: aura 5s ease-in-out 1s infinite;
  pointer-events: none;
}

.logo {
  position: relative;
  display: block;
  width: auto;
  height: auto;
  max-width: min(420px, 70vw);
  max-height: 60vh;
  opacity: 0;
  transform: translateY(8px);
  filter: drop-shadow(0 0 0 rgba(80, 255, 140, 0));
  transition: opacity 0.9s ease, transform 0.9s ease, filter 0.8s ease-out;
  animation: float 6s ease-in-out 1s infinite;
}

.logo.is-visible {
  opacity: 1;
  transform: none;
}

/* Quando o raio acerta: clarão rápido e decaimento lento */
.logo.strike {
  filter: drop-shadow(0 0 26px rgba(90, 255, 150, 0.85)) brightness(1.35);
  transition: opacity 0.9s ease, transform 0.9s ease, filter 0.05s linear;
}

@keyframes float {
  0%, 100% { translate: 0 0; }
  50%      { translate: 0 -7px; }
}

@keyframes aura {
  0%, 100% { opacity: 0.35; scale: 0.94; }
  50%      { opacity: 1;    scale: 1.06; }
}

@media (prefers-reduced-motion: reduce) {
  .logo,
  .stage::before {
    animation: none;
    transition: none;
    transform: none;
  }
  .stage::before { opacity: 0.6; }
}
