/* ========================================================================== */
/* DESIGN SYSTEM NORK - UTILITIES & MOTION ENGINE                             */
/* ========================================================================== */

.text-gradient-gold {
  background: linear-gradient(180deg, #ffffff 0%, var(--color-accent-gold-light) 60%, var(--color-accent-gold) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline;
}

.text-gradient-silver {
  background: linear-gradient(180deg, #ffffff 0%, var(--color-accent-silver-light) 60%, var(--color-accent-silver) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline;
}

.text-gold { color: var(--color-accent-gold-light) !important; }
.text-silver { color: var(--color-accent-silver-light) !important; }
.text-muted { color: var(--color-text-muted) !important; }
.text-secondary { color: var(--color-text-secondary) !important; }
.text-white { color: var(--color-text-primary) !important; }
.text-success { color: var(--color-success) !important; }

.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }

.flex { display: flex !important; }
.flex-col { display: flex !important; flex-direction: column !important; }
.items-center { align-items: center !important; }
.justify-center { justify-content: center !important; }
.justify-between { justify-content: space-between !important; }
.flex-wrap { flex-wrap: wrap !important; }
.shrink-0 { flex-shrink: 0 !important; }

.gap-1 { gap: var(--space-1) !important; }
.gap-2 { gap: var(--space-2) !important; }
.gap-3 { gap: var(--space-3) !important; }
.gap-4 { gap: var(--space-4) !important; }
.gap-6 { gap: var(--space-6) !important; }
.gap-8 { gap: var(--space-8) !important; }

.w-full { width: 100% !important; }
.h-full { height: 100% !important; }

/* MOTION ENGINE & REVEAL ANIMATIONS */
.motion-reveal {
  opacity: var(--opacity-0);
  transform: translateY(var(--transform-initial-y));
  transition: opacity var(--duration-slow) var(--ease-out-expo),
              transform var(--duration-slow) var(--ease-out-expo);
  will-change: transform, opacity;
}

.motion-reveal.is-visible {
  opacity: var(--opacity-full);
  transform: translateY(var(--space-0));
}

.motion-stagger-1 { transition-delay: calc(var(--duration-stagger-step) * 1); }
.motion-stagger-2 { transition-delay: calc(var(--duration-stagger-step) * 2); }
.motion-stagger-3 { transition-delay: calc(var(--duration-stagger-step) * 3); }
.motion-stagger-4 { transition-delay: calc(var(--duration-stagger-step) * 4); }
.motion-stagger-5 { transition-delay: calc(var(--duration-stagger-step) * 5); }

.js-disabled .motion-reveal {
  opacity: var(--opacity-full) !important;
  transform: none !important;
}

@keyframes pingDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
}

@keyframes orbitFloat1 {
  0% { transform: translate(0, 0) scale(0.95); }
  50% { transform: translate(-45px, 35px) scale(1.12); }
  100% { transform: translate(35px, -25px) scale(1.02); }
}

@keyframes orbitFloat2 {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(40px, -40px) scale(1.18); }
  100% { transform: translate(-25px, 30px) scale(0.92); }
}

@keyframes ringPulse {
  0% { transform: scale(0.2); opacity: 0.9; border-color: rgba(250, 204, 21, 0.5); }
  100% { transform: scale(1.5); opacity: 0; border-color: rgba(234, 179, 8, 0); }
}

@keyframes rayPulse {
  0% { opacity: 0.5; transform: rotate(-15deg) scale(0.95); }
  100% { opacity: 0.9; transform: rotate(-12deg) scale(1.08); }
}

@keyframes waveDash {
  0% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: 500; }
}

@keyframes twinkleFloat {
  0% { opacity: 0.2; transform: translateY(0) scale(0.8); }
  50% { opacity: 0.9; transform: translateY(-15px) scale(1.3); }
  100% { opacity: 0.3; transform: translateY(-30px) scale(0.9); }
}

@keyframes floatBadge {
  0% { transform: translateY(0); }
  100% { transform: translateY(-10px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .motion-reveal {
    opacity: var(--opacity-full) !important;
    transform: none !important;
  }
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Sprite de ícones SVG: presente no DOM, invisível no layout. */
.svg-sprite {
  display: none;
}

/* Link de pulo (usado pelo tema WordPress): some até receber foco. */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 999;
}

.skip-link:focus {
  left: var(--space-4);
  top: var(--space-4);
  width: auto;
  height: auto;
  clip: auto;
  padding: 10px var(--space-5);
  border-radius: var(--radius-md);
  background: var(--color-accent-gold);
  color: #0a0a0c;
  font-weight: 700;
  text-decoration: none;
}
