/* =====================================================================
   RIDER'S CARTEL — Premium motion & finish layer  (premium.css)
   Native, dependency-free. Respects prefers-reduced-motion.
   ===================================================================== */

/* ---------- Scroll progress bar ---------- */
.rc-progress {
  position: fixed; top: 0; left: 0; height: 3px; width: 100%;
  transform: scaleX(0); transform-origin: 0 50%;
  background: linear-gradient(90deg, var(--gold), var(--gold-soft));
  z-index: 999; pointer-events: none;
  box-shadow: 0 0 12px rgba(212,169,87,0.5);
  will-change: transform;
}

/* ---------- Cinematic hero overlays (grain + vignette + sheen) ---------- */
.home-hero::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background:
    radial-gradient(ellipse at 50% 38%, transparent 40%, rgba(8,7,5,0.55) 100%);
  mix-blend-mode: multiply;
}
.home-hero .hero-grain {
  position: absolute; inset: 0; z-index: 1; pointer-events: none; opacity: 0.06;
  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='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}

/* (Ken-burns intentionally omitted — hero already uses scroll parallax;
   two transform sources would conflict.) */

/* ---------- Premium reveal system (richer than base data-anim) ---------- */
[data-rc] { opacity: 0; will-change: opacity, transform; }
@media (prefers-reduced-motion: no-preference) {
  [data-rc="up"]    { transform: translateY(38px); transition: opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
  [data-rc="left"]  { transform: translateX(-46px); transition: opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1); }
  [data-rc="right"] { transform: translateX(46px);  transition: opacity 1s cubic-bezier(.16,1,.3,1), transform 1s cubic-bezier(.16,1,.3,1); }
  [data-rc="zoom"]  { transform: scale(.94); filter: blur(8px); transition: opacity 1s ease, transform 1s cubic-bezier(.16,1,.3,1), filter 1s ease; }
  [data-rc="clip"]  { clip-path: inset(0 0 100% 0); transform: translateY(20px); transition: opacity .9s ease, transform 1s cubic-bezier(.16,1,.3,1), clip-path 1.1s cubic-bezier(.16,1,.3,1); }
}
[data-rc].rc-in { opacity: 1; transform: none; filter: none; clip-path: inset(0 0 0 0); }

/* Stagger children */
[data-rc-stagger] > * { opacity: 0; }
@media (prefers-reduced-motion: no-preference) {
  [data-rc-stagger] > * { transform: translateY(30px); transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1); }
}
[data-rc-stagger].rc-in > * { opacity: 1; transform: none; }

/* ---------- Magnetic / interactive buttons ---------- */
.btn, .nav-cta { will-change: transform; }
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .btn[data-magnetic], .nav-cta[data-magnetic] { transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s ease, background .25s ease, color .25s ease, border-color .25s ease; }
}

/* Gold sheen sweep on primary buttons */
.btn-gold { position: relative; overflow: hidden; }
.btn-gold::after {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,0.5), transparent);
  transform: skewX(-18deg); pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) and (hover: hover) {
  .btn-gold:hover::after { animation: rcSheen .85s ease; }
  @keyframes rcSheen { to { left: 160%; } }
}

/* ---------- Card spotlight (cursor-follow glow) ---------- */
.bike-card, .service-card, .path-card, .yt-card, .testimonial, .promise-card, .featured-img, .gallery-item {
  position: relative;
}
.rc-spot { position: relative; }
@media (hover: hover) {
  .rc-spot::before {
    content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
    border-radius: inherit; opacity: 0; transition: opacity .35s ease;
    background: radial-gradient(360px circle at var(--mx,50%) var(--my,50%), rgba(212,169,87,0.16), transparent 60%);
  }
  .rc-spot:hover::before { opacity: 1; }
}

/* ---------- Brand marquee ---------- */
.brand-marquee { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.brand-track { display: flex; gap: 28px; width: max-content; }
@media (prefers-reduced-motion: no-preference) {
  .brand-track { animation: rcMarquee 32s linear infinite; }
  .brand-marquee:hover .brand-track { animation-play-state: paused; }
  @keyframes rcMarquee { to { transform: translateX(-50%); } }
}
.brand-track span {
  flex: 0 0 auto;
  font-family: "Cinzel", serif; font-size: 16px; font-weight: 600;
  letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-soft);
  opacity: 0.8; padding: 14px 24px; border: 1px solid var(--line);
  border-radius: 2px; background: var(--bg-2); white-space: nowrap;
  transition: color .25s ease, border-color .25s ease, opacity .25s ease;
}
.brand-track span:hover { color: var(--gold); border-color: var(--gold); opacity: 1; }

/* ---------- Count-up numbers keep layout stable ---------- */
.trust-num { font-variant-numeric: tabular-nums; }

/* ---------- Nav: hide/show on scroll + solidify ---------- */
.nav { transition: transform .4s cubic-bezier(.16,1,.3,1), background .3s ease, box-shadow .3s ease; }
.nav.rc-nav-hidden { transform: translateY(-100%); }
.nav.rc-nav-scrolled { box-shadow: 0 8px 30px rgba(0,0,0,0.18); }

/* ---------- Reduced motion: force everything visible ---------- */
@media (prefers-reduced-motion: reduce) {
  .home-hero-video { animation: none !important; }
  [data-rc], [data-rc-stagger] > * { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
  .brand-track { animation: none !important; flex-wrap: wrap; justify-content: center; }
  .rc-progress { display: none; }
}
