/* ==========================================================
   Loading Animation — Angelina Moura Symbol with wave fill
   ========================================================== */

.app-loading {
  font-family: 'Lora', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  top: 10em;
}

.app-loading p {
  display: block;
  font-size: 1.17em;
  margin-inline-start: 0;
  margin-inline-end: 0;
  font-weight: normal;
}

/* Container for the symbol animation */
.brand-loading {
  position: relative;
  width: 120px;
  height: 120px;
}

/* Base symbol — outline/ghost version */
.brand-loading__symbol {
  width: 120px;
  height: 120px;
  position: relative;
  overflow: hidden;
  border-radius: 8px;
}

.brand-loading__symbol svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* The SVG path in its muted state */
.brand-loading__symbol .symbol-bg {
  fill: #e8d5cb;
}

/* Wave fill overlay — clips the colored symbol */
.brand-loading__fill {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 8px;
  animation: fill-up 2.4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.brand-loading__fill svg {
  width: 100%;
  height: 100%;
  display: block;
}

.brand-loading__fill .symbol-fill {
  fill: #b13c17;
}

/* Wave element that creates the water surface effect */
.brand-loading__wave {
  position: absolute;
  top: 0;
  left: -50%;
  width: 200%;
  height: 100%;
  background: #f9ede5;
  border-radius: 38% 42% 38% 42%;
  animation: wave-rotate 2s linear infinite;
}

/* Fill-up animation: moves the mask from bottom to top */
@keyframes fill-up {
  0% {
    clip-path: inset(100% 0 0 0);
  }
  80% {
    clip-path: inset(0% 0 0 0);
  }
  90% {
    clip-path: inset(0% 0 0 0);
  }
  100% {
    clip-path: inset(100% 0 0 0);
  }
}

/* Wave surface rotation for organic feel */
@keyframes wave-rotate {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Subtle pulse on the background symbol */
@keyframes pulse-soft {
  0%,
  100% {
    opacity: 0.4;
  }
  50% {
    opacity: 0.7;
  }
}

.brand-loading__symbol .symbol-bg {
  animation: pulse-soft 2.4s ease-in-out infinite;
}

/* Loading text */
.brand-loading__text {
  margin-top: 1.5rem;
  color: #831434;
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  text-align: center;
  animation: fade-text 2.4s ease-in-out infinite;
}

@keyframes fade-text {
  0%,
  100% {
    opacity: 0.5;
  }
  50% {
    opacity: 1;
  }
}
