:root {
	--ease-pop: cubic-bezier(.34, 1.56, .64, 1);
	--ease-out: cubic-bezier(.22, .8, .3, 1);
}

/* Scroll reveal ---------------------------------------------------------------- */
.has-motion .reveal {
	opacity: 0;
	translate: 0 30px;
	transition:
		opacity .55s var(--ease-out) var(--reveal-delay, 0ms),
		translate .7s var(--ease-pop) var(--reveal-delay, 0ms),
		scale .7s var(--ease-pop) var(--reveal-delay, 0ms),
		rotate .7s var(--ease-pop) var(--reveal-delay, 0ms);
}
.has-motion .reveal--stamp { scale: .9; rotate: -3deg; }
.has-motion .reveal--stamp:nth-child(even) { rotate: 3deg; }
.has-motion .reveal.is-visible { opacity: 1; translate: 0 0; scale: 1; rotate: 0deg; }

/* Hero entrance ------------------------------------------------------------------ */
.has-motion .hero-enter {
	animation: kk-stamp-in .75s var(--ease-pop) both;
	animation-delay: var(--reveal-delay, 0ms);
}
@keyframes kk-stamp-in {
	0% { opacity: 0; translate: 0 26px; scale: .88; rotate: -3deg; }
	60% { opacity: 1; }
	100% { opacity: 1; translate: 0 0; scale: 1; rotate: 0deg; }
}

/* Activity tab panel swap */
.has-motion .panel-pop { animation: kk-panel-pop .5s var(--ease-pop) both; }
@keyframes kk-panel-pop {
	from { opacity: 0; scale: .94; rotate: -2deg; }
	to { opacity: 1; scale: 1; rotate: 0deg; }
}

/* Floating circles ------------------------------------------------------------------ */
.has-motion .bob { animation: kk-bob 5.5s ease-in-out infinite; animation-delay: var(--bob-delay, 0s); }
@keyframes kk-bob {
	0%, 100% { translate: 0 0; }
	50% { translate: 0 -12px; }
}
.has-motion .home-hero__price-badge { animation: kk-wobble 4s ease-in-out infinite; transform-origin: center; }
@keyframes kk-wobble {
	0%, 100% { rotate: 0deg; scale: 1; }
	50% { rotate: 4deg; scale: 1.04; }
}

/* Buttons & pills: lift on hover, press into the shadow on click -------------------- */
.site-nav__link, .site-nav__cta, .site-nav__social, .play-tab, .carousel__arrow, .carousel__arrow--prev, .carousel__arrow--next, .btn,
.about-why__btn, .activities-hero__btn, .blog-featured__btn, .blog-list__more-btn, .book-form__btn,
.contact-location__card-btn, .contact-form__btn, .home-hero__btn, .home-pass__btn, .home-benefits__btn,
.home-gallery__btn, .passes-pass__btn, .post-body__cta-btn, .home-visit__btn, .cta-card__btn {
	transition: translate .18s var(--ease-out), box-shadow .18s var(--ease-out), background-color .2s ease, color .2s ease;
}
.home-hero__btn svg, .home-pass__btn svg, .home-benefits__btn svg, .about-why__btn svg, .activities-hero__btn svg,
.blog-featured__btn svg, .book-form__btn svg, .contact-form__btn svg, .passes-pass__btn svg, .post-body__cta-btn svg,
.cta-card__btn svg, .home-visit__btn svg, .post-card__more svg, .home-gallery__btn svg, .contact-location__card-btn svg {
	transition: translate .25s var(--ease-pop);
}

@media (hover: hover) {
	.site-nav__link:hover, .site-nav__cta:hover, .site-nav__social:hover, .carousel__arrow:hover, .carousel__arrow--prev:hover, .carousel__arrow--next:hover, .btn:hover,
	.about-why__btn:hover, .activities-hero__btn:hover, .blog-featured__btn:hover, .blog-list__more-btn:hover, .book-form__btn:hover,
	.contact-location__card-btn:hover, .contact-form__btn:hover, .home-hero__btn:hover, .home-pass__btn:hover, .home-benefits__btn:hover,
	.home-gallery__btn:hover, .passes-pass__btn:hover, .post-body__cta-btn:hover, .home-visit__btn:hover, .cta-card__btn:hover {
		translate: -2px -2px;
		box-shadow: 7px 8px 0 var(--kk-navy);
	}
	.site-header--on-yellow .site-nav__link.is-active:hover,
	.site-nav__cta.is-active:hover { box-shadow: 7px 8px 0 var(--kk-pink); }
	.site-header--on-navy .site-nav__cta:hover { box-shadow: 7px 8px 0 var(--kk-yellow); }
	.play-tab:not(.is-active):hover { translate: -2px -2px; box-shadow: 4px 5px 0 var(--kk-navy); }

	.home-hero__btn:hover svg, .home-pass__btn:hover svg, .home-benefits__btn:hover svg, .about-why__btn:hover svg,
	.activities-hero__btn:hover svg, .blog-featured__btn:hover svg, .book-form__btn:hover svg, .contact-form__btn:hover svg,
	.passes-pass__btn:hover svg, .post-body__cta-btn:hover svg, .cta-card__btn:hover svg, .home-visit__btn:hover svg,
	.post-card__more:hover svg, .home-gallery__btn:hover svg, .contact-location__card-btn:hover svg { translate: 4px 0; }
}
.site-nav__link:active, .site-nav__cta:active, .site-nav__social:active, .play-tab:active, .carousel__arrow:active, .carousel__arrow--prev:active, .carousel__arrow--next:active, .btn:active,
.about-why__btn:active, .activities-hero__btn:active, .blog-featured__btn:active, .blog-list__more-btn:active, .book-form__btn:active,
.contact-location__card-btn:active, .contact-form__btn:active, .home-hero__btn:active, .home-pass__btn:active, .home-benefits__btn:active,
.home-gallery__btn:active, .passes-pass__btn:active, .post-body__cta-btn:active, .home-visit__btn:active, .cta-card__btn:active {
	translate: 4px 5px;
	box-shadow: 0 0 0 transparent;
}

/* Gallery arrows: pointer cursor, arrow nudges in its direction */
.carousel__arrow, .carousel__arrow--prev, .carousel__arrow--next { cursor: pointer; }
.carousel__arrow--prev svg, .carousel__arrow--next svg { transition: translate .25s var(--ease-pop); }
@media (hover: hover) {
	.carousel__arrow--prev:hover svg { translate: -3px 0; }
	.carousel__arrow--next:hover svg { translate: 3px 0; }
	.carousel__arrow--prev:hover { background: var(--kk-yellow); }
}

/* Footer links: turn yellow, slide right, underline draws in ----------------------- */
.site-footer__menu-link, .site-footer__instagram {
	background-image: linear-gradient(var(--kk-yellow), var(--kk-yellow));
	background-repeat: no-repeat;
	background-position: 0 calc(100% - 4px);
	background-size: 0 2px;
	transition: color .2s ease, translate .25s var(--ease-pop), background-size .3s var(--ease-out);
}
.site-footer__instagram svg { stroke: currentColor; transition: rotate .35s var(--ease-pop), scale .35s var(--ease-pop); }
.site-footer__instagram svg circle[fill] { fill: currentColor; }
@media (hover: hover) {
	.site-footer__menu-link:hover, .site-footer__instagram:hover { color: var(--kk-yellow); translate: 4px 0; background-size: 100% 2px; }
	.site-footer__instagram:hover svg { rotate: -12deg; scale: 1.15; }
}
.site-footer__menu-link:focus-visible, .site-footer__instagram:focus-visible { color: var(--kk-yellow); background-size: 100% 2px; outline: none; }

/* Cards: lift and wiggle straight ----------------------------------------------------- */
.about-benefits__card, .book-tips__card, .contact-location__card, .home-pass__card, .home-reviews__card, .passes-faq__card,
.blog-featured, .post-card, .home-visit__info-card, .home-play__caption, .passes-pass__ticket, .about-why__stack {
	transition: transform .35s var(--ease-pop), translate .35s var(--ease-pop), box-shadow .3s ease;
}
@media (hover: hover) {
	.about-benefits__card:hover, .book-tips__card:hover, .contact-location__card:hover, .home-pass__card:hover,
	.home-reviews__card:hover, .passes-faq__card:hover, .home-visit__info-card:hover, .about-why__stack:hover {
		transform: none;
		translate: 0 -6px;
	}
	.blog-featured:hover, .post-card:hover { translate: 0 -6px; }
	.home-pass__card:hover { translate: 0 -8px; }
}

/* Photos: a playful bounce ------------------------------------------------------------- */
.photo-gallery__img, .home-gallery__img, .home-gallery__img--large, .home-gallery__img--small, .activities-list__img,
.activities-list__img--tilt-left, .activities-list__img--tilt-right, .passes-activities__img, .home-visit__img, .home-play__img,
.post-card__img, .blog-featured__img, .home-pass__card-img, .home-hero__img {
	transition: transform .4s var(--ease-pop), scale .4s var(--ease-pop), rotate .4s var(--ease-pop);
}
@media (hover: hover) {
	.photo-gallery__img:hover, .home-gallery__img:hover, .home-gallery__img--large:hover, .home-gallery__img--small:hover,
	.activities-list__img:hover, .passes-activities__img:hover, .home-visit__img:hover { scale: 1.03; rotate: -1deg; }
	.activities-list__img--tilt-left:hover, .activities-list__img--tilt-right:hover { transform: none; scale: 1.03; }
	.home-hero__img:hover { transform: rotate(0deg); scale: 1.02; }
	.post-card:hover .post-card__img, .blog-featured:hover .blog-featured__img { scale: 1.04; }
	.home-pass__card:hover .home-pass__card-img { scale: 1.06; }
}
.post-card__media, .blog-featured__media { overflow: hidden; }

/* Reduced motion --------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.has-motion .reveal { opacity: 1; translate: none; scale: none; rotate: none; }
}
