/* Sambhar motion
   - Gated behind html.js (no-JS = content always visible)
   - Scroll reveals: .reveal + .is-visible (once) — smoother fade + travel
   - Home hero: .home-anim (logo always opaque; tagline/CTAs fade in)
   - Selective breathing: hero logo + food/media images (not menu dishes)
   - Kolam: untouched (lives in main.css)
*/

.js .reveal {
	opacity: 0;
	transform: translateY(1.75rem);
	filter: blur(2px);
	transition:
		opacity 1s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
		transform 1s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
		filter 0.9s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
	transition-delay: var(--delay, 0ms);
	will-change: opacity, transform, filter;
}

.js .reveal-up { transform: translateY(2rem); }
.js .reveal-left { transform: translateX(-1.5rem); filter: blur(2px); }
.js .reveal-right { transform: translateX(1.5rem); filter: blur(2px); }
.js .reveal-scale { transform: translateY(1rem) scale(0.97); filter: blur(2px); }

.js .reveal.is-visible {
	opacity: 1;
	transform: none;
	filter: none;
	will-change: auto;
}

.js .reveal-stagger > .reveal {
	opacity: 0;
	transform: translateY(1.35rem);
	filter: blur(1.5px);
}
.js .reveal-stagger > .reveal.is-visible {
	opacity: 1;
	transform: none;
	filter: none;
}

.js .type-line {
	display: inline-block;
	opacity: 0;
	transform: translateY(0.7em);
	transition:
		opacity 0.9s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
		transform 0.9s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
	transition-delay: var(--delay, 0ms);
}
.js .type-line.is-visible {
	opacity: 1;
	transform: none;
}

.js .hero-cta-pop {
	opacity: 0;
	transform: translateY(0.85rem) scale(0.98);
	transition:
		opacity 0.75s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)),
		transform 0.75s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
	transition-delay: var(--delay, 0ms);
}
.js .hero-cta-pop.is-visible {
	opacity: 1;
	transform: none;
}

.eyebrow-line {
	position: relative;
}
.eyebrow-line::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: -0.35rem;
	width: 3.5rem;
	height: 2px;
	background: var(--primary-container, #f7b928);
	transform: translateX(-50%);
}

/* —— HOME-01 hero entrance —— */
@keyframes homeRise {
	from { transform: translateY(1rem); }
	to { transform: none; }
}
@keyframes homeRiseFade {
	from {
		opacity: 0;
		transform: translateY(1.1rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

.page-home .home-anim {
	animation-duration: 0.9s;
	animation-timing-function: var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
	animation-fill-mode: both;
}
.page-home .hero-brand.home-anim {
	opacity: 1;
	animation-name: homeRise;
}
.page-home .hero-tagline.home-anim,
.page-home .hero-ctas.home-anim {
	animation-name: homeRiseFade;
}
.page-home .home-anim-delay-1 { animation-delay: 0.14s; }
.page-home .home-anim-delay-2 { animation-delay: 0.28s; }
.page-home .home-anim-delay-3 { animation-delay: 0.4s; }

/* Logo stays readable; never force-hide hero brand */
.page-home .hero .hero-brand.home-anim {
	opacity: 1 !important;
}

body.page-home {
	overflow-x: hidden;
	overflow-y: visible;
	height: auto;
	max-height: none;
}

/* —— Image soft zoom on reveal —— */
.signature-media {
	overflow: hidden;
}
.js .story-media img,
.js .signature-media img,
.js .card-media img {
	transform: scale(1.05);
	transition: transform 1.15s var(--ease, cubic-bezier(0.22, 1, 0.36, 1));
	transform-origin: center center;
	will-change: transform;
}
.js .story-media.reveal.is-visible img,
.js .reveal.is-visible .story-media img,
.js .reveal.is-visible .signature-media img,
.js .reveal.is-visible .card-media img,
.js .about-swiper.reveal.is-visible .card-media img,
.js .signature-track.reveal.is-visible .signature-media img {
	transform: scale(1);
	animation: mediaBreath 6s ease-in-out 1.25s infinite;
}

/* —— Breathing (selective) —— */
@keyframes logoBreath {
	0%,
	100% { transform: scale(1); }
	50% { transform: scale(1.028); }
}
@keyframes mediaBreath {
	0%,
	100% { transform: scale(1); }
	50% { transform: scale(1.018); }
}
@keyframes branchBreath {
	0%,
	100% { transform: translateY(0); }
	50% { transform: translateY(-3px); }
}

.page-home .hero-logo {
	transform-origin: center center;
	animation: logoBreath 5.5s ease-in-out 1.1s infinite;
	will-change: transform;
}

.js .branch-card--map.reveal.is-visible {
	animation: branchBreath 5.5s ease-in-out 1.1s infinite;
}

/* Menu dish filter enter — match global curve, no continuous breath */
.menu-dish.is-filtering-in {
	animation: menuIn 0.65s var(--ease, cubic-bezier(0.22, 1, 0.36, 1)) both;
}
@keyframes menuIn {
	from {
		opacity: 0;
		transform: translateY(0.65rem);
	}
	to {
		opacity: 1;
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.js .reveal,
	.js .reveal-stagger > .reveal,
	.js .type-line,
	.js .hero-cta-pop,
	.page-home .home-anim {
		opacity: 1 !important;
		transform: none !important;
		filter: none !important;
		transition: none !important;
		animation: none !important;
		will-change: auto !important;
	}
	.js .story-media img,
	.js .signature-media img,
	.js .card-media img,
	.page-home .hero-logo,
	.js .branch-card--map.reveal.is-visible {
		transform: none !important;
		animation: none !important;
		will-change: auto !important;
		transition: none !important;
	}
	.brand {
		animation: none !important;
	}
	.nav-primary,
	.nav-primary .nav-list > li,
	.nav-primary a::after,
	.nav-toggle span,
	.site-header,
	.brand-logo {
		transition: none !important;
	}
	.nav-primary .nav-list > li {
		opacity: 1;
		transform: none;
	}
	.menu-dish.is-filtering-in { animation: none; }
	html { scroll-behavior: auto; }
}

/* Mobile: shorter travel, less GPU work; no blur / lighter breath */
@media (max-width: 639px) {
	.js .reveal,
	.js .reveal-up {
		transform: translateY(1.1rem);
		filter: none;
	}
	.js .reveal-left,
	.js .reveal-right {
		transform: translateY(1.1rem);
		filter: none;
	}
	.js .reveal-scale {
		filter: none;
	}
	.js .reveal,
	.js .reveal-stagger > .reveal {
		transition-duration: 0.75s;
	}
	.js .story-media img,
	.js .signature-media img,
	.js .card-media img {
		transform: scale(1.03);
	}
	.page-home .hero-logo {
		animation-duration: 6.5s;
	}
	.js .branch-card--map.reveal.is-visible {
		animation: none;
	}
}
