/* ===== Bonasera Tennis — V3 Modern Play (shared styles) ===== */
html { scroll-behavior: smooth; scroll-padding-top: 6rem; height: 100%; }
body { font-family: 'Nunito', sans-serif; color: #0a3d20; padding-top: 5rem;
  display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh;
  background:
    radial-gradient(ellipse 55% 40% at 15% 8%, rgba(34,197,94,.16), transparent 60%),
    radial-gradient(ellipse 50% 40% at 90% 30%, rgba(163,230,53,.16), transparent 60%),
    radial-gradient(ellipse 60% 50% at 40% 80%, rgba(22,163,74,.12), transparent 60%),
    #f0fdf4;
}
/* keep the footer pinned to the bottom of the viewport on short pages, at any screen size */
footer.bg-leaf-950 { margin-top: auto; }
.deep-gradient { background: linear-gradient(135deg, #052e16 0%, #166534 45%, #16a34a 85%, #4ade80 125%); }
.mid-gradient { background: linear-gradient(135deg, #15803d 0%, #22c55e 60%, #86efac 120%); }
.tile { background: rgba(255,255,255,.82); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(22,101,52,.13); }
.text-grad { background: linear-gradient(95deg, #15803d, #65a30d); -webkit-background-clip: text; background-clip: text; color: transparent; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }
.pop { transition: transform .22s ease, box-shadow .22s ease; }
.pop:hover { transform: translateY(-6px); box-shadow: 0 24px 44px -18px rgba(21,128,61,.38); }

.float-1 { animation: floaty 7s ease-in-out infinite; }
.float-2 { animation: floaty 9s ease-in-out 1.2s infinite; }
@keyframes floaty { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-22px) rotate(8deg); } }

.marquee-track { display: flex; width: max-content; animation: marquee 24s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }

.flash-target { animation: flash 1.6s ease; }
@keyframes flash { 0% { box-shadow: inset 0 0 0 3px rgba(34,197,94,.85); } 100% { box-shadow: inset 0 0 0 3px transparent; } }

/* pill page tabs */
.tab-link { transition: background-color .2s ease, color .2s ease; }

/* signature scroll animation: parallax hero balls */
.parallax { will-change: transform; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .float-1, .float-2, .marquee-track { animation: none; }
}
