/* Aurora x Panda site — global */
html, body { margin: 0; padding: 0; }
* { box-sizing: border-box; }
body { overflow-x: hidden; cursor: none; }

/* selection */
::selection { background: var(--aurora-coral-500); color: #fff; }

/* custom cursor */
.aur-cursor {
  position: fixed; top: 0; left: 0; width: 14px; height: 14px;
  border-radius: 999px; background: var(--aurora-coral-500);
  pointer-events: none; z-index: 9999;
  transform: translate(-50%, -50%);
  transition: width 220ms var(--ease-out), height 220ms var(--ease-out),
              background 220ms var(--ease-out), border-radius 220ms var(--ease-out),
              opacity 220ms var(--ease-out);
  mix-blend-mode: normal;
}
.aur-cursor-ring {
  position: fixed; top: 0; left: 0; width: 38px; height: 38px;
  border-radius: 999px; border: 1.5px solid rgba(11,21,48,0.32);
  pointer-events: none; z-index: 9998;
  transform: translate(-50%, -50%);
  transition: width 320ms var(--ease-out), height 320ms var(--ease-out),
              border-color 220ms var(--ease-out), opacity 220ms var(--ease-out);
}
.aur-cursor.is-hover { width: 0; height: 0; opacity: 0; }
.aur-cursor-ring.is-hover { width: 64px; height: 64px; border-color: var(--aurora-coral-500); }
.aur-cursor.is-dark { background: #fff; }
.aur-cursor-ring.is-dark { border-color: rgba(255,255,255,0.4); }

@media (max-width: 880px) {
  body { cursor: auto; }
  .aur-cursor, .aur-cursor-ring { display: none; }
}

/* scroll reveal — keyframe based to avoid stuck-transition bug */
.reveal { opacity: 0; transform: translateY(24px); }
.reveal.in { animation: fadeRise 800ms var(--ease-out) forwards; }
.reveal-delay-1.in { animation-delay: 80ms; }
.reveal-delay-2.in { animation-delay: 160ms; }
.reveal-delay-3.in { animation-delay: 240ms; }
.reveal-delay-4.in { animation-delay: 320ms; }
.reveal-delay-5.in { animation-delay: 400ms; }

/* card reveal — used by PillarCard, ProjectCard, AwardRow, CountUpCell */
.card-reveal { opacity: 0; transform: translateY(28px); }
.card-reveal.in { animation: fadeRise 800ms var(--ease-out) forwards; }

/* word-by-word reveal — fade + small rise (no clipping needed, descenders safe) */
@keyframes wordRise {
  from { opacity: 0; transform: translateY(24%); }
  to   { opacity: 1; transform: translateY(0); }
}
.word-rise {
  display: inline-block;
  opacity: 0;
  transform: translateY(24%);
  animation: wordRise 900ms var(--ease-out) forwards;
}
@keyframes fadeRise {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* magnetic button */
.mag-btn { transition: transform 220ms var(--ease-out), box-shadow 220ms var(--ease-out); }

/* marquee */
.marquee { display: flex; overflow: hidden; gap: 0; }
.marquee-track { display: flex; gap: 64px; padding-right: 64px; flex-shrink: 0; animation: marquee 28s linear infinite; }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-100%); } }
.marquee:hover .marquee-track { animation-play-state: paused; }

/* hero glow blobs */
.glow-blob { position: absolute; border-radius: 50%; filter: blur(80px); pointer-events: none; }

/* link underline */
.aur-link {
  position: relative; text-decoration: none; color: inherit;
}
.aur-link::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 1px;
  background: currentColor; transform-origin: right;
  transform: scaleX(0); transition: transform 360ms var(--ease-out);
}
.aur-link:hover::after { transform-origin: left; transform: scaleX(1); }

/* sky gradient strip */
.sky-strip {
  background: linear-gradient(180deg,
    var(--aurora-navy-950) 0%,
    var(--aurora-navy-900) 30%,
    var(--aurora-navy-700) 60%,
    var(--aurora-blue-500) 80%,
    var(--aurora-coral-500) 95%,
    var(--aurora-orange-500) 100%);
}

/* dark surface */
.dark-surface { background: var(--aurora-navy-950); color: #fff; }
.dark-surface .aur-link { color: rgba(255,255,255,0.86); }
