/* Ritual Preloader - full screen overlay */
body.ritual-preloader-active { overflow: hidden; height: 100vh; }

.ritual-preloader {
  position: fixed; inset: 0; z-index: 99999;
  background: radial-gradient(800px 600px at 50% 40%, rgba(62,29,96,0.22), rgba(62,29,96,0) 60%),
              linear-gradient(180deg, #0b0a0f, #0f0d14);
  display: grid; place-items: center; overflow: hidden;
  transition: opacity 900ms ease, visibility 900ms ease;
}
.ritual-preloader.fade-out { opacity: 0; visibility: hidden; }

.rp-center { position: relative; width: 68vmin; height: 68vmin; }
.rp-circle {
  position: absolute; inset: 0; border-radius: 50%;
  border: 1px solid rgba(168,137,62,0.2);
  box-shadow: 0 0 50px rgba(168,137,62,0.1), inset 0 0 100px rgba(94,43,138,0.2);
}
.rp-ring { position: absolute; inset: 8%; border: 1px dashed rgba(176,19,43,0.28); border-radius: 50%; }
.rp-ring2{ position: absolute; inset: 16%; border: 1px solid rgba(168,137,62,0.18); border-radius: 50%; }

.rp-runes { position: absolute; inset: 0; border-radius: 50%; animation: rp-rotate 20s linear infinite; }
.rp-rune { position: absolute; width: 14px; height: 14px; border-radius: 50%;
  background: radial-gradient(circle, #a8893e, rgba(168,137,62,0) 70%);
  box-shadow: 0 0 16px rgba(168,137,62,0.35);
}
/* place 16 runes */
.rp-rune:nth-child(1)  { transform: rotate(0deg) translateY(-30vmin); }
.rp-rune:nth-child(2)  { transform: rotate(22.5deg) translateY(-30vmin); }
.rp-rune:nth-child(3)  { transform: rotate(45deg) translateY(-30vmin); }
.rp-rune:nth-child(4)  { transform: rotate(67.5deg) translateY(-30vmin); }
.rp-rune:nth-child(5)  { transform: rotate(90deg) translateY(-30vmin); }
.rp-rune:nth-child(6)  { transform: rotate(112.5deg) translateY(-30vmin); }
.rp-rune:nth-child(7)  { transform: rotate(135deg) translateY(-30vmin); }
.rp-rune:nth-child(8)  { transform: rotate(157.5deg) translateY(-30vmin); }
.rp-rune:nth-child(9)  { transform: rotate(180deg) translateY(-30vmin); }
.rp-rune:nth-child(10) { transform: rotate(202.5deg) translateY(-30vmin); }
.rp-rune:nth-child(11) { transform: rotate(225deg) translateY(-30vmin); }
.rp-rune:nth-child(12) { transform: rotate(247.5deg) translateY(-30vmin); }
.rp-rune:nth-child(13) { transform: rotate(270deg) translateY(-30vmin); }
.rp-rune:nth-child(14) { transform: rotate(292.5deg) translateY(-30vmin); }
.rp-rune:nth-child(15) { transform: rotate(315deg) translateY(-30vmin); }
.rp-rune:nth-child(16) { transform: rotate(337.5deg) translateY(-30vmin); }

.rp-glyph { position: absolute; inset: 32% 32%; border-radius: 50%;
  border: 1px solid rgba(176,19,43,0.25);
  display: grid; place-items: center; color: #a8893e; font-size: clamp(1.2rem, 2.2vw, 1.8rem);
  text-shadow: 0 0 18px rgba(168,137,62,0.35);
}

.rp-particles { position: absolute; inset: -10%; pointer-events: none; }
.rp-particle { position: absolute; width: 2px; height: 2px; border-radius: 50%; background: radial-gradient(circle, #ffd28a, rgba(255,210,138,0)); opacity: 0.8; animation: rp-float 6s ease-in-out infinite; }

.rp-progress { position: absolute; bottom: -48px; left: 50%; transform: translateX(-50%); width: 220px; height: 4px; border-radius: 999px; background: rgba(168,137,62,0.12); overflow: hidden; }
.rp-progress .bar { height: 100%; width: 0; background: linear-gradient(90deg, rgba(94,43,138,0.2), rgba(168,137,62,0.65), rgba(176,19,43,0.35)); box-shadow: 0 0 16px rgba(168,137,62,0.35); transition: width 300ms ease; }
.rp-label { position: absolute; bottom: -74px; left: 50%; transform: translateX(-50%); color: #d7d0e6; opacity: 0.9; font-size: 0.9rem; letter-spacing: 1px; }

@keyframes rp-rotate { to { transform: rotate(360deg); } }
@keyframes rp-float { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-24px) } }
