/* 의식(Ritual) 모션 시스템 */

@keyframes shimmer {
  0%, 100% { background-position: 120% 0; }
  50% { background-position: -20% 0; }
}

@keyframes float-slow {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-14px) rotate(.6deg); }
}

@keyframes float-frag {
  0%, 100% { transform: translateY(0) rotate(-6deg); }
  50% { transform: translateY(-20px) rotate(10deg); }
}

@keyframes glow-pulse {
  0%, 100% { box-shadow: 0 0 22px rgba(240, 201, 135, .16); }
  50% { box-shadow: 0 0 34px rgba(240, 201, 135, .34); }
}

@keyframes spin-border {
  to { --btn-angle: 360deg; }
}
@property --btn-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

/* 스크롤 등장 — JS가 있을 때만 숨김 */
.js .reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity var(--dur-scene) var(--ease-ritual),
    transform var(--dur-scene) var(--ease-ritual);
  transition-delay: var(--reveal-delay, 0ms);
}
.js .reveal.shown { opacity: 1; transform: none; }

/* 히어로 순차 등장 */
.js .hero .stage-in {
  opacity: 0;
  transform: translateY(22px);
  animation: stage-in var(--dur-scene) var(--ease-ritual) forwards;
  animation-delay: var(--stage-delay, 0ms);
}
@keyframes stage-in {
  to { opacity: 1; transform: none; }
}

/* 카드 뒤집기 금가루 */
.spark {
  position: absolute;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--gold-bright);
  box-shadow: 0 0 8px var(--candle);
  pointer-events: none;
  animation: spark-burst .9s var(--ease-ritual) forwards;
}
@keyframes spark-burst {
  0% { opacity: 1; transform: translate(0, 0) scale(1); }
  100% { opacity: 0; transform: translate(var(--sx, 0), var(--sy, -60px)) scale(.2); }
}

/* 모션 최소화 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .js .reveal { opacity: 1; transform: none; }
  .js .hero .stage-in { opacity: 1; transform: none; animation: none; }
}
