/* ==========================================================================
   Events on Boat — cinematic motion layer
   A "film-like" animation system layered over style.css: intro curtain,
   letterboxed hero with Ken Burns + film grain + rising embers, word-by-word
   headline reveals, wipe-in imagery, parallax depth, flowing gradients,
   animated river waves and smooth cross-page transitions.
   Everything here is progressive enhancement: classes are added by
   js/cinematic.js, and prefers-reduced-motion switches it all off.
   ========================================================================== */

:root {
  --cine-ease: cubic-bezier(.16,1,.3,1);
  --cine-ease-io: cubic-bezier(.65,0,.35,1);
}

/* ---------- Cross-page transitions (Chromium View Transitions) ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: cineOut .45s var(--cine-ease-io) both; }
::view-transition-new(root) { animation: cineInPage .7s var(--cine-ease) both; }
@keyframes cineOut { to { opacity: 0; transform: scale(.985); filter: blur(6px); } }
@keyframes cineInPage { from { opacity: 0; transform: translateY(24px) scale(1.01); filter: blur(8px); } }

/* ---------- Intro curtain (first visit per session) ---------- */
.cine-intro {
  position: fixed; inset: 0; z-index: 5000; display: grid; place-items: center;
  background: var(--grad); background-size: 220% 220%;
  animation: gradFlow 6s ease-in-out infinite;
  clip-path: inset(0 0 0 0);
  transition: clip-path 1s var(--cine-ease-io);
  pointer-events: none;
}
.cine-intro.is-leaving { clip-path: inset(0 0 100% 0); }
.cine-intro-inner { display: flex; flex-direction: column; align-items: center; gap: 1rem; color: #fff; text-align: center; }
.cine-intro svg { width: 74px; height: 74px; }
.cine-intro svg * { stroke-dasharray: 260; stroke-dashoffset: 260; animation: cineDraw 1.2s var(--cine-ease) forwards; }
.cine-intro-name { font: 800 clamp(1.6rem, 4vw, 2.4rem) var(--font-body); letter-spacing: -.03em; overflow: hidden; }
.cine-intro-name span { display: inline-block; transform: translateY(110%); animation: cineRise .9s var(--cine-ease) .35s forwards; }
.cine-intro-tag { font-size: .8rem; letter-spacing: .32em; text-transform: uppercase; color: #F8D9A8; opacity: 0; animation: cineFade .8s ease .7s forwards; }
.cine-intro-bar { width: 160px; height: 2px; background: rgba(255,255,255,.2); border-radius: 2px; overflow: hidden; }
.cine-intro-bar::after { content: ''; display: block; height: 100%; background: linear-gradient(90deg, #F8D9A8, #fff); transform-origin: left; transform: scaleX(0); animation: cineLoad 1.3s var(--cine-ease-io) .2s forwards; }
@keyframes cineDraw { to { stroke-dashoffset: 0; } }
@keyframes cineRise { to { transform: none; } }
@keyframes cineFade { to { opacity: 1; } }
@keyframes cineLoad { to { transform: scaleX(1); } }

/* ---------- Scroll progress ---------- */
.cine-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1200; pointer-events: none;
  background: linear-gradient(90deg, var(--gold), #F6C564, var(--rose), #9A3524);
  transform-origin: left; transform: scaleX(var(--cine-progress, 0));
  box-shadow: 0 0 12px rgba(232,163,61,.7);
}

/* ---------- Flowing gradients: topbar, header, bands ---------- */
@keyframes gradFlow { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.cine .topbar,
.cine .site-header { background-size: 200% 100%; animation: gradFlow 14s ease-in-out infinite; }
.cine .urgency-bar,
.cine .countdown-band,
.cine .cta-band { background-size: 240% 240%; animation: gradFlow 10s ease-in-out infinite; }
.cine .site-header { transition: box-shadow var(--dur-base) var(--ease), backdrop-filter .4s; }
.cine .brand-icon svg { transition: transform .8s var(--cine-ease); }
.cine .brand:hover .brand-icon svg { transform: rotate(-8deg) translateY(-2px); }
.cine .brand-icon svg { animation: boatBob 4.5s ease-in-out infinite; }
@keyframes boatBob { 0%, 100% { translate: 0 0; rotate: 0deg; } 50% { translate: 0 -3px; rotate: -3deg; } }

/* Dropdown: cascade items in */
@media (min-width: 1101px) {
  .cine .has-drop .dropdown li { opacity: 0; transform: translateY(8px); transition: opacity .35s var(--cine-ease), transform .45s var(--cine-ease); }
  .cine .has-drop:hover .dropdown li,
  .cine .has-drop:focus-within .dropdown li { opacity: 1; transform: none; }
  .cine .has-drop .dropdown li:nth-child(2) { transition-delay: .04s; }
  .cine .has-drop .dropdown li:nth-child(3) { transition-delay: .08s; }
  .cine .has-drop .dropdown li:nth-child(4) { transition-delay: .12s; }
  .cine .has-drop .dropdown li:nth-child(5) { transition-delay: .16s; }
  .cine .dd-icon { transition: transform .4s var(--cine-ease), background .3s; }
  .cine .dropdown a:hover .dd-icon { transform: scale(1.12) rotate(-6deg); background: var(--grad); color: #fff; }
}
/* Mobile menu: slide panel + staggered links */
@media (max-width: 1100px) {
  .cine .main-nav { transition: transform .6s var(--cine-ease); }
  .cine .main-nav > ul > li { opacity: 0; transform: translateX(28px); transition: opacity .4s ease, transform .6s var(--cine-ease); }
  .cine .main-nav.open > ul > li { opacity: 1; transform: none; }
  .cine .main-nav.open > ul > li:nth-child(1) { transition-delay: .10s; }
  .cine .main-nav.open > ul > li:nth-child(2) { transition-delay: .15s; }
  .cine .main-nav.open > ul > li:nth-child(3) { transition-delay: .20s; }
  .cine .main-nav.open > ul > li:nth-child(4) { transition-delay: .25s; }
  .cine .main-nav.open > ul > li:nth-child(5) { transition-delay: .30s; }
  .cine .main-nav.open > ul > li:nth-child(6) { transition-delay: .35s; }
  .cine .main-nav.open > ul > li:nth-child(7) { transition-delay: .40s; }
  .cine .main-nav.open > ul > li:nth-child(8) { transition-delay: .45s; }
}

/* ---------- Hero: letterbox, Ken Burns, grain, light sweep, embers ---------- */
.cine .hero { isolation: isolate; }
.cine .hero-banner-full { overflow: hidden; }
.cine .hero-banner-full .hero-banner-photo { animation: kenburnsHero 18s ease-in-out infinite alternate; transform-origin: 60% 40%; }
@keyframes kenburnsHero { from { transform: scale(1.12) translate3d(1.5%, 1%, 0); } to { transform: scale(1) translate3d(0, 0, 0); } }

/* Letterbox bars that open like the start of a film */
.cine-letterbox { position: absolute; inset: 0; z-index: 6; pointer-events: none; }
.cine-letterbox::before,
.cine-letterbox::after { content: ''; position: absolute; left: 0; right: 0; height: 12%; background: #090E1C; animation: letterOpen 1.4s var(--cine-ease-io) .25s both; }
.cine-letterbox::before { top: 0; transform-origin: top; }
.cine-letterbox::after { bottom: 0; transform-origin: bottom; }
@keyframes letterOpen { from { transform: scaleY(4.2); } to { transform: scaleY(0); } }

/* Warm light leak sweeping across the frame */
.cine-sweep { position: absolute; inset: 0; z-index: 4; pointer-events: none; overflow: hidden; mix-blend-mode: screen; }
.cine-sweep::before { content: ''; position: absolute; top: -40%; bottom: -40%; left: -60%; width: 45%; background: linear-gradient(100deg, transparent, rgba(255,214,150,.28), rgba(255,255,255,.18), transparent); transform: skewX(-18deg); animation: lightSweep 9s var(--cine-ease-io) 1.4s infinite; }
@keyframes lightSweep { 0% { left: -60%; } 38%, 100% { left: 140%; } }
.cine-sweep::after { content: ''; position: absolute; width: 60%; aspect-ratio: 1; right: -18%; top: -30%; border-radius: 50%; background: radial-gradient(circle, rgba(232,163,61,.28), transparent 62%); animation: leakPulse 7s ease-in-out infinite alternate; }
@keyframes leakPulse { from { opacity: .35; transform: translate(0,0) scale(1); } to { opacity: .85; transform: translate(-6%, 8%) scale(1.15); } }

/* Film grain */
.cine-grain { position: absolute; inset: -50%; z-index: 5; pointer-events: none; opacity: .09; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1s steps(6) infinite; }
@keyframes grain { 0% { transform: translate(0,0); } 20% { transform: translate(-6%,4%); } 40% { transform: translate(5%,-7%); } 60% { transform: translate(-3%,9%); } 80% { transform: translate(8%,2%); } 100% { transform: translate(0,0); } }

/* Rising ember / diya-spark canvas */
.cine-embers { position: absolute; inset: 0; z-index: 4; width: 100%; height: 100%; pointer-events: none; }

/* River waves along the bottom edge of the hero (colour matches the next section via --wave-c) */
.cine-waves { position: absolute; left: 0; right: 0; bottom: -1px; z-index: 7; height: 56px; pointer-events: none; overflow: hidden; }
.cine-waves span { position: absolute; inset: 0; width: 200%; background: var(--wave-c, #FFFBF5);
  -webkit-mask-repeat: repeat-x; mask-repeat: repeat-x; -webkit-mask-size: 50% 100%; mask-size: 50% 100%; animation: waveMove 14s linear infinite; }
.cine-waves span:nth-child(1) { opacity: .35; animation-duration: 18s; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 30 C 240 6 480 6 720 30 S 1200 54 1440 30 V56 H0Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 30 C 240 6 480 6 720 30 S 1200 54 1440 30 V56 H0Z'/%3E%3C/svg%3E"); }
.cine-waves span:nth-child(2) { opacity: .6; animation-duration: 11s; animation-direction: reverse; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 38 C 360 18 540 52 720 38 S 1080 18 1440 38 V56 H0Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 38 C 360 18 540 52 720 38 S 1080 18 1440 38 V56 H0Z'/%3E%3C/svg%3E"); }
.cine-waves span:nth-child(3) { animation-duration: 8s; -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 46 C 240 36 480 56 720 46 S 1200 36 1440 46 V56 H0Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 56' preserveAspectRatio='none'%3E%3Cpath d='M0 46 C 240 36 480 56 720 46 S 1200 36 1440 46 V56 H0Z'/%3E%3C/svg%3E"); }
@keyframes waveMove { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Scroll cue */
@media (max-width: 760px) { .cine-waves { height: 30px; } }
.cine-has-intro .cine-letterbox::before, .cine-has-intro .cine-letterbox::after { animation-delay: 1.6s; }

/* Compact heroes: living aurora mesh behind the text */
.cine .hero-compact { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--cream-soft) 0%, var(--gold-soft) 100%); }
.cine-aurora { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.cine-aurora i { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; animation: auroraDrift 16s ease-in-out infinite alternate; }
.cine-aurora i:nth-child(1) { width: 46vw; height: 46vw; max-width: 620px; max-height: 620px; left: -10%; top: -60%; background: radial-gradient(circle, rgba(232,163,61,.75), transparent 65%); }
.cine-aurora i:nth-child(2) { width: 38vw; height: 38vw; max-width: 520px; max-height: 520px; right: -6%; top: -30%; background: radial-gradient(circle, rgba(154,53,36,.45), transparent 65%); animation-duration: 20s; animation-delay: -6s; }
.cine-aurora i:nth-child(3) { width: 30vw; height: 30vw; max-width: 420px; max-height: 420px; left: 40%; bottom: -70%; background: radial-gradient(circle, rgba(47,122,140,.4), transparent 65%); animation-duration: 13s; animation-delay: -3s; }
@keyframes auroraDrift { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(8%, 12%) scale(1.15); } 100% { transform: translate(-6%, 4%) scale(.95); } }
.cine .hero-compact .container { position: relative; z-index: 2; }
.cine .hero-compact .cine-embers { z-index: 1; }

/* ---------- Headline word reveal ---------- */
.cw { display: inline-block; overflow: hidden; vertical-align: bottom; padding-bottom: .08em; margin-bottom: -.08em; }
.cw > .cw-i { display: inline-block; transform: translateY(105%) rotate(4deg); transform-origin: left bottom; opacity: 0;
  transition: transform 1s var(--cine-ease), opacity .6s ease; transition-delay: calc(var(--wi, 0) * 55ms + var(--wd, 0ms)); }
.cine-split.is-in .cw > .cw-i { transform: none; opacity: 1; }
/* hero-compact heading uses its own reveal; cancel the base heroIn on split headings */
.cine .hero h1.cine-split { animation: none; }

/* Kicker: a gold rule draws in before the label */
.cine .kicker { display: inline-flex; align-items: center; gap: .6rem; }
.cine .kicker::before { content: ''; width: 28px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--gold), var(--rose)); transform-origin: left; transform: scaleX(0); transition: transform .9s var(--cine-ease) .1s; }
.cine .kicker.is-in::before,
.cine .is-in .kicker::before,
.cine .is-visible .kicker::before { transform: scaleX(1); }

/* ---------- Generic cinematic entrances ---------- */
.cine-up { opacity: 0; transform: translateY(40px) scale(.98); filter: blur(10px); }
.cine-left { opacity: 0; transform: translateX(-48px); filter: blur(8px); }
.cine-zoom { opacity: 0; transform: scale(.86); }
/* While entering, the entrance transition wins over component transitions; once done, theirs return */
.cine .cine-up:not(.is-done), .cine .cine-left:not(.is-done), .cine .cine-zoom:not(.is-done) {
  transition: opacity .9s var(--cine-ease), transform 1.1s var(--cine-ease), filter .9s var(--cine-ease);
  transition-delay: var(--cd, 0ms); }
.cine-up.is-in, .cine-left.is-in, .cine-zoom.is-in { opacity: 1; transform: none; filter: none; }

/* Upgrade the existing .reveal elements to the same blurred, cinematic rise */
.cine.js-reveal .reveal { transform: translateY(40px) scale(.985); filter: blur(8px); transition: opacity .9s var(--cine-ease), transform 1.1s var(--cine-ease), filter .9s var(--cine-ease); }
.cine.js-reveal .reveal.is-visible { transform: none; filter: none; }

/* Wipe that clips an image in place (for images that carry their own radius) */
.cine-wipe-self { clip-path: inset(100% 0 0 0 round 16px); transform: scale(1.08); transition: clip-path 1.3s var(--cine-ease-io), transform 1.8s var(--cine-ease); transition-delay: var(--cd, 0ms); }
.cine-wipe-self.is-in { clip-path: inset(0 0 0 0 round 16px); transform: none; }

/* Image wipe: a curtain lifts and the photo settles from a slow zoom */
.cine-wipe { clip-path: inset(100% 0 0 0 round 16px); transition: clip-path 1.3s var(--cine-ease-io); transition-delay: var(--cd, 0ms); }
.cine-wipe img { transform: scale(1.25); transition: transform 1.8s var(--cine-ease); transition-delay: var(--cd, 0ms); }
.cine-wipe.is-in { clip-path: inset(0 0 0 0 round 16px); }
.cine-wipe.is-in img { transform: scale(1); }
.cine-wipe.is-done { clip-path: none; }
.cine-wipe.is-done img { transition: transform var(--dur-slow) var(--ease); }
/* keep the existing hover zooms working after the entrance */
.card:hover .cine-wipe.is-done img,
.experience-card:hover .cine-wipe.is-done img,
.lightbox-item:hover .cine-wipe.is-done img { transform: scale(1.06); }

/* Parallax depth uses the independent `translate` property, so it never fights hover transforms */
.cine-parallax { translate: 0 var(--py, 0px); will-change: translate; }

/* Icons pop in with a spring when their row arrives */
.cine .is-in .cred-icon,
.cine .is-in .confirm-icon,
.cine .is-in .addon-icon,
.cine .is-in .theme-swatch,
.cine .is-in .pkg-tier { animation: iconPop .9s var(--cine-ease) backwards; animation-delay: calc(var(--cd, 0ms) + 150ms); }
@keyframes iconPop { 0% { transform: scale(0) rotate(-40deg); } 60% { transform: scale(1.18) rotate(6deg); } 100% { transform: none; } }
.cine .cred-icon { transition: transform .5s var(--cine-ease); }
.cine .cred-item:hover .cred-icon { transform: translateY(-4px) rotate(-8deg) scale(1.08); }

/* ---------- Cards & packages ---------- */
.cine .pkg.featured { animation: featuredGlow 3.6s ease-in-out infinite; }
@keyframes featuredGlow { 0%, 100% { box-shadow: 0 18px 36px -20px rgba(232,146,61,.45); } 50% { box-shadow: 0 24px 52px -16px rgba(232,146,61,.75), 0 0 0 1px rgba(232,163,61,.35); } }
.cine .pkg::before { background-size: 200% 100%; animation: gradFlow 6s ease-in-out infinite; }
.cine .pkg-flag { animation: flagBob 2.8s ease-in-out infinite; }
@keyframes flagBob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -3px; } }
.cine .confirm-card,
.cine .addon-card,
.cine .contact-card,
.cine .info-panel { transition: transform .5s var(--cine-ease), box-shadow .5s var(--cine-ease), border-color .3s; }
.cine .info-panel:hover { transform: translateY(-4px); box-shadow: 0 22px 44px -24px rgba(27,33,64,.35); }
.cine .addon-card:hover .addon-icon { transform: rotate(-10deg) scale(1.12); }
.cine .addon-icon { transition: transform .5s var(--cine-ease); }

/* Steps / timeline: numbers and the guide line animate with scroll */
.cine .step-num { display: inline-block; background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; background-size: 200% 100%; animation: gradFlow 6s ease-in-out infinite; }
.cine .timeline::after { content: ''; position: absolute; left: 54px; top: 0; width: 2px; height: 100%; background: linear-gradient(var(--gold), var(--rose)); transform-origin: top; transform: scaleY(var(--tl, 0)); transition: transform .2s linear; }
.cine .timeline-item.is-in::before { animation: dotPing 1.2s var(--cine-ease) both; }
@keyframes dotPing { 0% { box-shadow: 0 0 0 0 rgba(232,163,61,.7); transform: translateX(-50%) scale(.4); } 60% { transform: translateX(-50%) scale(1.3); } 100% { box-shadow: 0 0 0 10px rgba(232,163,61,0); transform: translateX(-50%) scale(1); } }

/* ---------- Soft aurora in tinted sections ---------- */
.cine .section-dark { position: relative; isolation: isolate; overflow: clip; }
.cine .section-dark::before { content: ''; position: absolute; z-index: -1; width: 60vw; max-width: 760px; aspect-ratio: 1; right: -20vw; top: -30%; border-radius: 50%; background: radial-gradient(circle, rgba(232,163,61,.18), transparent 62%); animation: auroraDrift 22s ease-in-out infinite alternate; pointer-events: none; }
.cine .section-dark::after { content: ''; position: absolute; z-index: -1; width: 50vw; max-width: 620px; aspect-ratio: 1; left: -18vw; bottom: -40%; border-radius: 50%; background: radial-gradient(circle, rgba(154,53,36,.1), transparent 62%); animation: auroraDrift 26s ease-in-out -8s infinite alternate; pointer-events: none; }

/* ---------- CTA band: drifting icon + periodic shine ---------- */
.cine .cta-band-icon { animation: ctaFloat 7s ease-in-out infinite; }
@keyframes ctaFloat { 0%, 100% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-14px,-12px) rotate(-6deg); } }
.cine .cta-band::after { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 35%, rgba(255,255,255,.14) 50%, transparent 65%); background-size: 250% 100%; animation: bandShine 6s ease-in-out infinite; pointer-events: none; }
@keyframes bandShine { 0% { background-position: 150% 0; } 50%, 100% { background-position: -50% 0; } }
.cine .cta-chip { transition: transform .4s var(--cine-ease), background .3s; }
.cine .cta-chip:hover { transform: translateY(-3px); background: rgba(255,255,255,.24); }

/* Buttons: idle shine on primary CTAs and a magnetic pull (translate set in JS) */
.cine .btn { transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), translate .5s var(--cine-ease); }
.cine .btn.is-magnet { transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), translate .12s linear; }
.cine .btn-primary::after { animation: idleShine 5.5s var(--cine-ease-io) 2s infinite; }
@keyframes idleShine { 0% { left: -60%; } 22%, 100% { left: 130%; } }
.cine .btn-primary:hover::after { animation: none; }
/* Click ripple */
.cine-ripple { position: absolute; border-radius: 50%; pointer-events: none; background: rgba(255,255,255,.45); transform: scale(0); animation: ripple .7s var(--cine-ease) forwards; }
@keyframes ripple { to { transform: scale(1); opacity: 0; } }

/* ---------- FAQ: smoother open ---------- */
.cine .faq-item { transition: background .4s var(--cine-ease), padding .4s var(--cine-ease); border-radius: 12px; }
.cine .faq-item.open { background: linear-gradient(90deg, var(--gold-soft), transparent 80%); padding-left: 1rem; }
.cine .faq-a-inner { animation: faqCine .6s var(--cine-ease) both; }
@keyframes faqCine { from { opacity: 0; transform: translateY(-10px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }

/* ---------- Gallery filter transitions ---------- */
.cine .gallery-filter.active { background-size: 200% 200%; animation: gradFlow 5s ease-in-out infinite; }
.cine [data-gallery-category].cine-pop { animation: galleryPop .7s var(--cine-ease) both; animation-delay: var(--cd, 0ms); }
@keyframes galleryPop { from { opacity: 0; transform: scale(.9) translateY(20px); filter: blur(6px); } to { opacity: 1; transform: none; filter: none; } }

/* ---------- Footer: animated river under the booking band ---------- */
.cine .site-footer a { transition: color .3s, padding-left .4s var(--cine-ease); }
.cine .footer-cols ul a:hover { padding-left: .35rem; }
.cine .footer-logo svg { animation: boatBob 4.5s ease-in-out infinite; }

/* WhatsApp float: gentle bob */
.cine .wa-float { animation: waBob 3.4s ease-in-out infinite; }
@keyframes waBob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -6px; } }

/* Soft cursor glow on fine pointers */
.cine-cursor { position: fixed; left: 0; top: 0; z-index: 1100; width: 380px; height: 380px; margin: -190px 0 0 -190px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(232,163,61,.12), transparent 60%); mix-blend-mode: multiply; opacity: 0; transition: opacity .5s; will-change: transform; }
.cine-cursor.is-on { opacity: 1; }

/* ---------- Reduced motion: switch the whole layer off ---------- */
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
  .cine-intro, .cine-letterbox, .cine-sweep, .cine-grain, .cine-embers, .cine-cursor, .cine-progress { display: none !important; }
  .cine-up, .cine-left, .cine-zoom, .cine-wipe, .cine-wipe-self, .cw > .cw-i, .cine.js-reveal .reveal, .cine [data-gallery-category].cine-pop { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
  .cine-wipe img { transform: none !important; }
}
