/* ============ HDA Premium global upgrades ============ */
:root {
  --ember: #F97316;
  --ember-deep: #EA580C;
  --ink: #0B1020;
  --indigo-deep: #1E1B4B;
}

/* Nicer selection & scrollbar */
::selection { background: #F97316; color: #fff; }
html { scroll-behavior: smooth; }
body { text-rendering: optimizeLegibility; }

/* Refined heading tracking for Sora */
h1,h2,h3,h4,.font-display { letter-spacing: -0.025em; font-feature-settings: "ss01","cv11"; }

/* ============ Animated aurora background ============ */
.aurora { position: relative; isolation: isolate; }
.aurora::before,
.aurora::after {
  content: ""; position: absolute; inset: -20%; z-index: -1;
  background:
    radial-gradient(40% 60% at 20% 30%, rgba(249,115,22,.35), transparent 60%),
    radial-gradient(50% 60% at 80% 20%, rgba(76,29,149,.45), transparent 60%),
    radial-gradient(40% 50% at 60% 90%, rgba(59,130,246,.28), transparent 60%);
  filter: blur(60px);
  animation: aurora-shift 18s ease-in-out infinite alternate;
}
.aurora::after { animation-duration: 24s; animation-direction: alternate-reverse; opacity: .7; }
@keyframes aurora-shift {
  0%   { transform: translate3d(0,0,0) scale(1); }
  50%  { transform: translate3d(3%, -2%, 0) scale(1.05); }
  100% { transform: translate3d(-3%, 2%, 0) scale(1.02); }
}

/* ============ Shimmer gradient text ============ */
.text-shimmer {
  background: linear-gradient(90deg, #F97316 0%, #FDBA74 30%, #EA580C 60%, #F97316 100%);
  background-size: 200% 100%;
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmer 6s linear infinite;
}
@keyframes shimmer { to { background-position: -200% 0; } }

/* ============ Reveal variants (stagger via data-delay) ============ */
[data-reveal-up]    { opacity:0; transform: translateY(28px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
[data-reveal-left]  { opacity:0; transform: translateX(-28px); transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
[data-reveal-right] { opacity:0; transform: translateX(28px);  transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
[data-reveal-scale] { opacity:0; transform: scale(.94);         transition: opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.in[data-reveal-up], .in[data-reveal-left], .in[data-reveal-right], .in[data-reveal-scale] { opacity:1; transform:none; }

/* Stagger children */
[data-stagger] > * { opacity:0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
[data-stagger].in > * { opacity:1; transform:none; }
[data-stagger].in > *:nth-child(1){transition-delay:.05s}
[data-stagger].in > *:nth-child(2){transition-delay:.12s}
[data-stagger].in > *:nth-child(3){transition-delay:.19s}
[data-stagger].in > *:nth-child(4){transition-delay:.26s}
[data-stagger].in > *:nth-child(5){transition-delay:.33s}
[data-stagger].in > *:nth-child(6){transition-delay:.40s}
[data-stagger].in > *:nth-child(7){transition-delay:.47s}
[data-stagger].in > *:nth-child(8){transition-delay:.54s}
[data-stagger].in > *:nth-child(9){transition-delay:.61s}

/* ============ Premium card interactions ============ */
.card-lift { transition: transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s ease, border-color .3s ease; will-change: transform; }
.card-lift:hover { transform: translateY(-6px); box-shadow: 0 30px 70px -30px rgba(30,27,75,.35), 0 10px 25px -15px rgba(249,115,22,.25); }

/* Spotlight follows cursor on cards with data-spotlight */
[data-spotlight] { position: relative; overflow: hidden; }
[data-spotlight]::before {
  content:""; position:absolute; inset:0; pointer-events:none; opacity:0;
  background: radial-gradient(600px circle at var(--mx,50%) var(--my,50%), rgba(249,115,22,.18), transparent 40%);
  transition: opacity .3s ease;
}
[data-spotlight]:hover::before { opacity:1; }

/* Magnetic button visual */
.magnetic { transition: transform .25s cubic-bezier(.22,1,.36,1); will-change: transform; }

/* Gradient border card */
.grad-border { position: relative; }
.grad-border::before {
  content:""; position:absolute; inset:0; border-radius: inherit; padding:1px;
  background: linear-gradient(135deg, rgba(249,115,22,.6), rgba(76,29,149,.5) 60%, rgba(59,130,246,.4));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude; pointer-events:none;
}

/* Marquee logos (already used) — add fade edges via mask */
.marquee-mask { -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }

/* Blob */
@keyframes blob { 0%,100%{border-radius:42% 58% 63% 37% / 43% 45% 55% 57%} 50%{border-radius:58% 42% 33% 67% / 55% 63% 37% 45%} }
.blob { animation: blob 12s ease-in-out infinite; }

/* Underline flourish for links */
.link-flourish { position: relative; }
.link-flourish::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background: linear-gradient(90deg,#F97316,#4C1D95); transform: scaleX(0); transform-origin: right; transition: transform .35s ease; }
.link-flourish:hover::after { transform: scaleX(1); transform-origin: left; }

/* Goal planner interactive buttons */
.goal-tab-btn {
  transition: all .3s cubic-bezier(.22,1,.36,1);
}
.goal-tab-btn.active {
  border-color: var(--ember);
  box-shadow: 0 4px 20px -5px rgba(249,115,22,0.15);
  background-color: rgba(249,115,22,0.03);
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
