/* Leaders & Co. — motion layer
   Load after style.css. Everything here is gated behind html.lc-motion,
   which motion.js only adds when motion is allowed. No JS, no hiding.
   -------------------------------------------------------------------------- */

:root {
  --lc-ease: cubic-bezier(.16, 1, .3, 1);
  --lc-ink: #16140f;
  --lc-paper: #f6f1e7;
  --lc-card: #fffaf0;
  --lc-orange: #F26419;
  --lc-ember: #A8420B;
  --lc-muted: #57523f;
}

/* 1. Scroll progress hairline ------------------------------------------- */
.lc-progress {
  position: fixed; top: 0; left: 0; right: 0; height: 2px;
  background: var(--lc-orange);
  transform: scaleX(0); transform-origin: 0 50%;
  z-index: 9999; pointer-events: none;
}

/* 2. Fade up reveal ------------------------------------------------------ */
.lc-motion [data-lc-reveal] {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .34s var(--lc-ease), transform .34s var(--lc-ease);
  transition-delay: var(--lc-d, 0ms);
}
.lc-motion [data-lc-reveal].lc-in { opacity: 1; transform: none; }

/* Cards lift a touch on hover. No shadows, just movement and the hairline. */
.lc-motion [data-lc-card] {
  transition: opacity .34s var(--lc-ease), transform .4s var(--lc-ease), border-color .3s ease;
}
.lc-motion [data-lc-card].lc-in:hover { transform: translateY(-4px); border-color: var(--lc-ember); }

/* 3. Hero headline, word by word ---------------------------------------- */
.lc-word { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .06em; margin-bottom: -.06em; }
.lc-word > span { display: inline-block; }
.lc-motion .lc-word > span {
  transform: translateY(105%);
  transition: transform 1s var(--lc-ease);
  transition-delay: var(--lc-d, 0ms);
}
.lc-motion .lc-hero-in .lc-word > span { transform: none; }

/* 4. Photo reveal: wipe up, settle from a slight zoom ------------------- */
.lc-motion [data-lc-photo] {
  clip-path: inset(100% 0 0 0);
  transition: clip-path 1.3s var(--lc-ease);
  transition-delay: var(--lc-d, 0ms);
}
.lc-motion [data-lc-photo] img, .lc-motion img[data-lc-photo] {
  transform: scale(1.08);
  transition: transform 1.8s var(--lc-ease);
}
.lc-motion [data-lc-photo].lc-in { clip-path: inset(0 0 0 0); }
.lc-motion [data-lc-photo].lc-in img, .lc-motion img[data-lc-photo].lc-in { transform: scale(1); }

/* 5. Numbers ------------------------------------------------------------- */
[data-lc-count] { display: inline-block; white-space: nowrap; }
.lc-stat-bar {
  display: block; height: 1px; margin: 10px 0 8px; width: 48px;
  background: var(--lc-orange);
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform 1.2s var(--lc-ease);
  transition-delay: var(--lc-d, 0ms);
}
.lc-in .lc-stat-bar, .lc-in > .lc-stat-bar { transform: scaleX(1); }

/* 6. Logo marquee -------------------------------------------------------- */
.lc-marquee {
  background: var(--lc-card);
  border-top: 1px solid rgba(22, 20, 15, .12);
  border-bottom: 1px solid rgba(22, 20, 15, .12);
  padding: 34px 0 38px;
  overflow: hidden;
}
.lc-marquee__label {
  font-family: Inter, system-ui, sans-serif;
  font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--lc-ember);
  text-align: center; margin: 0 0 22px;
}
.lc-marquee__viewport {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
          mask-image: linear-gradient(90deg, transparent 0, #000 12%, #000 88%, transparent 100%);
}
.lc-marquee__track {
  display: flex; width: max-content;
  animation: lc-marquee var(--lc-marquee-speed, 38s) linear infinite;
}
.lc-marquee:hover .lc-marquee__track { animation-play-state: paused; }
.lc-marquee__group { display: flex; align-items: center; flex-shrink: 0; }
.lc-marquee__item {
  display: inline-flex; align-items: center;
  font-family: Anton, Impact, sans-serif; font-weight: 400;
  font-size: clamp(24px, 3vw, 34px); line-height: 1;
  color: var(--lc-ink); opacity: .38;
  padding: 0 clamp(26px, 3.4vw, 48px);
  transition: opacity .3s ease, color .3s ease;
  white-space: nowrap; text-decoration: none;
}
.lc-marquee__item:hover { opacity: 1; color: var(--lc-ink); }
.lc-marquee__dot { width: 6px; height: 6px; background: var(--lc-orange); flex-shrink: 0; }
@keyframes lc-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* The marquee also fades in as a whole */
.lc-motion .lc-marquee__item { opacity: 0; transform: translateY(12px); transition: opacity .8s var(--lc-ease), transform .8s var(--lc-ease); transition-delay: var(--lc-d, 0ms); }
.lc-motion .lc-marquee.lc-in .lc-marquee__item { opacity: .38; transform: none; }
.lc-motion .lc-marquee.lc-in .lc-marquee__item:hover { opacity: 1; transition-delay: 0ms; }

/* 7. Respect reduced motion everywhere ---------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .lc-marquee__track { animation: none; flex-wrap: wrap; justify-content: center; width: auto; }
  .lc-marquee__group[aria-hidden="true"] { display: none; }
  .lc-marquee__group { flex-wrap: wrap; justify-content: center; row-gap: 18px; }
  .lc-progress { display: none; }
}
