.guardian-rich-ritual {
  position: absolute;
  inset: 2.5%;
  z-index: 2;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.guardian-rich-ritual__geometry {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.guardian-rich-ritual__organic,
.guardian-rich-ritual__lattice,
.guardian-rich-ritual__nodes,
.guardian-rich-ritual__seal {
  transform-origin: 50% 50%;
}

.guardian-rich-ritual__ring {
  fill: none;
  stroke: rgba(122, 225, 239, 0.24);
  stroke-width: 0.18;
  stroke-dasharray: 0.8 1.1;
  vector-effect: non-scaling-stroke;
  opacity: 0.28;
}

.guardian-rich-ritual__ring:nth-child(2) {
  stroke: rgba(229, 195, 104, 0.3);
}

.guardian-rich-ritual__ring:nth-child(3) {
  stroke: rgba(171, 104, 214, 0.34);
}

.guardian-rich-ritual__ray {
  stroke: rgba(220, 236, 215, 0.16);
  stroke-width: 0.14;
  stroke-dasharray: 0.6 1.4;
  vector-effect: non-scaling-stroke;
  opacity: 0.08;
}

.guardian-rich-ritual__node {
  fill: #8de8e8;
  stroke: rgba(255, 238, 175, 0.82);
  stroke-width: 0.14;
  opacity: 0.18;
}

.guardian-rich-ritual__seal {
  opacity: 0;
  transform: scale(0.62);
}

.guardian-rich-ritual__seal-circle,
.guardian-rich-ritual__key {
  fill: none;
  stroke: #f1d174;
  stroke-width: 0.42;
  vector-effect: non-scaling-stroke;
}

.guardian-rich-ritual__key {
  stroke: #fff0b2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.guardian-rich-ritual__analysis {
  position: absolute;
  bottom: max(1rem, env(safe-area-inset-bottom));
  left: 50%;
  display: grid;
  width: min(88%, 32rem);
  transform: translateX(-50%);
  color: rgba(145, 233, 235, 0.86);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: clamp(0.58rem, 2.4vw, 0.72rem);
  letter-spacing: 0.12em;
  text-align: center;
}

.guardian-rich-ritual__analysis span {
  grid-area: 1 / 1;
  opacity: 0;
  transform: translateY(0.35rem);
  transition: opacity 240ms ease, transform 240ms ease;
}

.guardian-rich-ritual[data-phase="phase-scan"] [data-rich-line="scan"],
.guardian-rich-ritual[data-phase="sigil"] [data-rich-line="sigil"],
.guardian-rich-ritual[data-phase="resonance"] [data-rich-line="resonance"] {
  opacity: 1;
  transform: translateY(0);
}

.guardian-rich-ritual[data-phase="phase-scan"] .guardian-rich-ritual__organic {
  animation: guardian-rich-organic-scan 3.8s linear infinite;
}

.guardian-rich-ritual[data-phase="phase-scan"] .guardian-rich-ritual__ring {
  animation: guardian-rich-ring-write 820ms ease-out both;
  animation-delay: calc(var(--rich-ring-index) * 110ms);
}

.guardian-rich-ritual[data-phase="converging"] .guardian-rich-ritual__organic {
  animation: guardian-rich-organic-collapse 1.45s cubic-bezier(.55,.05,.4,1) both;
}

.guardian-rich-ritual[data-phase="converging"] .guardian-rich-ritual__ray {
  animation: guardian-rich-ray 680ms ease-out both;
  animation-delay: calc(var(--rich-ray-index) * 34ms);
}

.guardian-rich-ritual[data-phase="converging"] .guardian-rich-ritual__node {
  animation: guardian-rich-node 760ms ease-in both;
  animation-delay: calc(var(--rich-node-index) * 28ms);
}

.guardian-rich-ritual[data-phase="sigil"] .guardian-rich-ritual__seal,
.guardian-rich-ritual[data-phase="pillar"] .guardian-rich-ritual__seal,
.guardian-rich-ritual[data-phase="resonance"] .guardian-rich-ritual__seal {
  opacity: 0.94;
  transform: scale(1);
  transition: opacity 520ms ease, transform 760ms cubic-bezier(.2,.8,.2,1);
}

.guardian-rich-ritual[data-phase="sigil"] .guardian-rich-ritual__seal {
  animation: guardian-rich-seal-set 1.2s ease-out both;
}

.guardian-rich-ritual[data-phase="resonance"] .guardian-rich-ritual__organic {
  animation: guardian-rich-resonance 1.4s ease-in-out infinite alternate;
}

.guardian-rich-ritual[data-phase="resonance"] .guardian-rich-ritual__node {
  opacity: 0.72;
}

.guardian-rich-ritual[data-phase="flash"],
.guardian-rich-ritual[data-phase="revealed"] {
  opacity: 0.42;
  transition: opacity 720ms ease;
}

.guardian-rich-ritual[data-paused="true"] *,
.guardian-rich-ritual[data-paused="true"] {
  animation-play-state: paused !important;
}

@keyframes guardian-rich-organic-scan {
  to { transform: rotate(360deg); }
}

@keyframes guardian-rich-ring-write {
  from {
    opacity: 0;
    stroke-dashoffset: 28;
  }
  to {
    opacity: 0.72;
    stroke-dashoffset: 0;
  }
}

@keyframes guardian-rich-organic-collapse {
  0% { opacity: 0.54; transform: rotate(0) scale(1); }
  72% { opacity: 0.92; transform: rotate(64deg) scale(0.34); }
  100% { opacity: 0.3; transform: rotate(86deg) scale(0.2); }
}

@keyframes guardian-rich-ray {
  from { opacity: 0; }
  45% { opacity: 0.7; }
  to { opacity: 0.08; }
}

@keyframes guardian-rich-node {
  from { opacity: 0.18; }
  55% { opacity: 1; }
  to { opacity: 0.12; }
}

@keyframes guardian-rich-seal-set {
  from { opacity: 0; transform: scale(0.5) rotate(-18deg); }
  62% { opacity: 1; transform: scale(1.08) rotate(3deg); }
  to { opacity: 0.94; transform: scale(1) rotate(0); }
}

@keyframes guardian-rich-resonance {
  from { opacity: 0.38; transform: scale(0.94) rotate(-3deg); }
  to { opacity: 0.82; transform: scale(1.04) rotate(3deg); }
}

@media (max-width: 760px) {
  .guardian-rich-ritual {
    inset: 1%;
  }

  .guardian-rich-ritual__analysis {
    bottom: 0.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .guardian-rich-ritual *,
  .guardian-rich-ritual {
    animation: none !important;
    transition-duration: 80ms !important;
  }

  .guardian-rich-ritual[data-phase="sigil"] .guardian-rich-ritual__seal,
  .guardian-rich-ritual[data-phase="pillar"] .guardian-rich-ritual__seal,
  .guardian-rich-ritual[data-phase="resonance"] .guardian-rich-ritual__seal {
    opacity: 0.72;
    transform: scale(1);
  }
}
