/* Motion language adapted from the kim-brooks funnel pair. Content stays readable without JS. */
:root{--ease:cubic-bezier(.22,.68,0,1)}
html.smooth-wheel{scroll-behavior:auto}
/* Pre-reveal translateX must never widen the page */
html.js body{overflow-x:hidden}

/* Base scroll reveals: only when JS is present */
html.js .rv{opacity:0;transform:translateY(30px);
  transition:opacity .85s var(--ease),transform .85s var(--ease),filter .85s var(--ease)}
html.js .rv.in{opacity:1;transform:none}
html.js .rv.funnel-left{transform:translateX(-56px) translateY(16px);filter:blur(7px)}
html.js .rv.funnel-right{transform:translateX(56px) translateY(16px);filter:blur(7px)}
html.js .rv.funnel-left.in,html.js .rv.funnel-right.in{transform:none;filter:blur(0)}

/* Word-by-word heading reveal */
.funnel-words .funnel-word{display:inline-block;opacity:0;filter:blur(11px);
  transform:translateY(.5em) rotateX(-16deg);transform-origin:center bottom;
  transition:opacity .68s var(--ease),filter .68s var(--ease),transform .68s var(--ease);
  transition-delay:calc(var(--word-index)*48ms)}
.in .funnel-words .funnel-word,.funnel-words.in .funnel-word{
  opacity:1;filter:blur(0);transform:none}

/* Breathing primary CTAs (TDE orange) */
@keyframes ctaBreathe{
  0%,100%{transform:translateY(0) scale(1);
    box-shadow:0 18px 34px -20px rgba(216,94,54,.85),0 0 0 0 rgba(239,113,71,0)}
  50%{transform:translateY(-3px) scale(1.02);
    box-shadow:0 24px 42px -18px rgba(216,94,54,.9),0 0 20px 2px rgba(239,113,71,.28)}
}
html.js .rv.in .btn.breathe{animation:ctaBreathe 3.4s ease-in-out infinite}

/* Best-value tag settle-in and gentle float */
@keyframes tagFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
html.js .rv.in .tag{animation:tagFloat 4.2s ease-in-out 1.2s infinite}

@media(max-width:900px){
  html.js .rv.funnel-left{transform:translateX(-24px) translateY(14px);filter:blur(5px)}
  html.js .rv.funnel-right{transform:translateX(24px) translateY(14px);filter:blur(5px)}
}

/* Infinite marquee strip */
section.marquee{padding:0;overflow:hidden;border-block:1px solid var(--line);background:var(--marquee-bg,#efe0c9)}
.marquee__track{display:flex;width:max-content;padding-block:.95rem;animation:slide 44s linear infinite}
@media(max-width:699px){.marquee__track{animation-duration:30s}}
.marquee__set{display:flex;align-items:center;gap:clamp(1.5rem,3vw,2.75rem);margin:0;padding:0 clamp(1.5rem,3vw,2.75rem) 0 0;list-style:none}
.marquee__set li{display:flex;align-items:center;gap:clamp(1.5rem,3vw,2.75rem);font-family:var(--font-head);font-size:clamp(1rem,1.8vw,1.35rem);line-height:1;letter-spacing:.045em;text-transform:uppercase;color:var(--marquee-ink,#6b5a48);white-space:nowrap}
.marquee__set li::after{content:"";flex:none;width:7px;height:7px;background:var(--accent-dark);transform:rotate(45deg)}
@keyframes slide{from{transform:none}to{transform:translateX(-50%)}}

/* Pointer-tilt on offer cards */
html.js .card.rv.in{transform:perspective(800px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:opacity .85s var(--ease),filter .85s var(--ease),transform .2s ease}

/* Proximity glow border */
[data-glow-card]{--glow-active:0;--glow-angle:0deg;isolation:isolate;position:relative}
[data-glow-card]::before{content:"";position:absolute;z-index:4;inset:0;padding:2px;pointer-events:none;border-radius:inherit;background:conic-gradient(from var(--glow-angle),transparent 0 38%,var(--accent) 47%,var(--gold) 52%,transparent 62%);opacity:var(--glow-active);transition:opacity 180ms ease;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  html.js .rv,html.js .rv.funnel-left,html.js .rv.funnel-right,.funnel-word{
    opacity:1!important;filter:none!important;transform:none!important;transition:none!important}
  html.js .rv.in .btn.breathe,html.js .rv.in .tag{animation:none!important}
  .marquee__track{animation:none}
  [data-glow-card]::before{display:none}
}
