/* Gridalyn dynamic enhancements. Lightweight, GPU-friendly, respects prefers-reduced-motion. */
html { scroll-behavior: smooth; }

image-slot { transition: transform .25s ease; display: block; }
image-slot:hover { transform: scale(1.02); }

a[rel*="sponsored"] { transition: transform .15s ease, filter .15s ease; }
a[rel*="sponsored"]:hover { transform: translateY(-2px); filter: brightness(1.06); }

header.gd-scrolled { box-shadow: 0 6px 20px rgba(0,0,0,.35); }

.gd-reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; }
.gd-reveal.gd-in { opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  image-slot, a[rel*="sponsored"] { transition: none !important; }
  .gd-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}


/* hero entrance animation */
section:first-of-type, article:first-of-type { animation: heroIn .8s ease both; }
@keyframes heroIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: translateY(0); } }

/* broaden hover coverage to all CTA-style links and buttons, not just sponsored links */
a[style*="oklch(0.74 0.16 55)"] { transition: transform .2s ease, filter .2s ease, box-shadow .2s ease; }
a[style*="oklch(0.74 0.16 55)"]:hover { filter: brightness(1.12); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.25); }
button:not(:disabled) { transition: transform .2s ease, filter .2s ease; }
button:not(:disabled):hover { filter: brightness(1.1); transform: translateY(-1px); }

@media (prefers-reduced-motion: reduce) {
  section:first-of-type, article:first-of-type { animation: none; }
  a, button { transition: none !important; }
  a:hover, button:hover { transform: none !important; }
}
