/* ============================================================
   Muckpro Dumpsters — motion layer v1
   Vanilla CSS. Pairs with /js/motion.js.
   Everything is gated behind html.mjs (set by motion.js) and
   prefers-reduced-motion, so with JS off or reduced motion on,
   the site renders exactly as before. No layout shift.
   ============================================================ */

@media (prefers-reduced-motion: no-preference){

  /* ---------- scroll reveals ---------- */
  html.mjs [data-reveal]{
    opacity:0;
    transform:translateY(22px);
    transition:opacity .65s ease, transform .65s cubic-bezier(.22,.7,.25,1);
    transition-delay:var(--d,0s);
    will-change:opacity,transform;
  }
  html.mjs [data-reveal="left"]{transform:translateX(-26px)}
  html.mjs [data-reveal="right"]{transform:translateX(26px)}
  html.mjs [data-reveal="zoom"]{transform:scale(.96)}
  html.mjs [data-reveal].mo-in{opacity:1;transform:none}

  /* ---------- hero entrance ---------- */
  html.mjs .page-hero .micro,
  html.mjs .hero .micro{animation:mo-rise .7s cubic-bezier(.22,.7,.25,1) both}
  html.mjs .page-hero h1,
  html.mjs .hero h1{animation:mo-rise .8s .08s cubic-bezier(.22,.7,.25,1) both}
  html.mjs .page-hero p,
  html.mjs .hero .sub{animation:mo-rise .8s .18s cubic-bezier(.22,.7,.25,1) both}
  html.mjs .page-hero .btn,
  html.mjs .hero-ctas{animation:mo-rise .8s .28s cubic-bezier(.22,.7,.25,1) both}
  html.mjs .page-hero .hero-stats{animation:mo-rise .8s .38s cubic-bezier(.22,.7,.25,1) both}
  @keyframes mo-rise{
    from{opacity:0;transform:translateY(24px)}
    to{opacity:1;transform:none}
  }

  /* subtle slow drift on hero background image (lives on ::before) */
  html.mjs .page-hero::before{
    animation:mo-drift 22s ease-in-out infinite alternate;
  }
  @keyframes mo-drift{
    from{transform:scale(1)}
    to{transform:scale(1.06)}
  }

  /* ---------- red underline sweep on section headings ---------- */
  html.mjs .content h2{position:relative}
  html.mjs .content h2::after{
    content:"";display:block;height:4px;width:0;margin-top:8px;
    border-radius:99px;background:var(--red,#DE010B);
    transition:width .7s cubic-bezier(.22,.7,.25,1) .15s;
  }
  html.mjs .content h2.mo-in::after{width:64px}

  /* ---------- image figures: soft settle ---------- */
  html.mjs .content figure img{transition:transform .5s ease, box-shadow .5s ease}
  html.mjs .content figure:hover img{transform:scale(1.015)}

  /* ---------- topbar: shadow after scroll ---------- */
  html.mjs .topbar{transition:box-shadow .25s ease}
  html.mjs .topbar.mo-scrolled{box-shadow:0 8px 26px rgba(14,13,12,.35)}

  /* ---------- buttons: sheen on hover ---------- */
  html.mjs .btn{position:relative;overflow:hidden}
  html.mjs .btn::after{
    content:"";position:absolute;top:0;bottom:0;left:-70%;width:45%;
    background:linear-gradient(105deg,transparent,rgba(255,255,255,.28),transparent);
    transform:skewX(-18deg);transition:left .45s ease;pointer-events:none;
  }
  html.mjs .btn:hover::after{left:120%}

  /* ---------- CTA band pulse ---------- */
  html.mjs .cta-band .btn-dark{animation:mo-pulse 3.2s ease-in-out infinite}
  @keyframes mo-pulse{
    0%,100%{box-shadow:0 0 0 0 rgba(14,13,12,.35)}
    50%{box-shadow:0 0 0 12px rgba(14,13,12,0)}
  }
}

/* ============ non-motion additions (always on) ============ */

/* hero stat strip */
.hero-stats{display:flex;gap:20px 36px;flex-wrap:wrap;justify-content:center;margin-top:30px}
.hero-stat{min-width:110px;text-align:center}
.hero-stat .n{font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.9rem;line-height:1;color:#fff}
.hero-stat .n small{font-size:1.1rem}
.hero-stat .l{font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.65);margin-top:5px}

/* static chips (non-link neighborhoods) */
.chip-cloud{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 8px}
.chip-cloud span{background:var(--white,#fff);border:1px solid rgba(14,13,12,.12);border-radius:999px;padding:8px 16px;font-size:.84rem;font-weight:600}

/* ============================================================
   v35 style picks (Darrell, 2026-09-11): menu F, panel P2,
   button 3 primary, button 8 on the hero CTA.
   Pure overrides of style.css — loads after it, no HTML edits
   needed on existing pages.
   ============================================================ */

/* ----- Menu button: F (skewed red tab, hard shadow) ----- */
.menu-btn{
  border:0;background:var(--red,#DE010B);border-radius:4px;
  padding:11px 16px;transform:skewX(-10deg);
  box-shadow:4px 4px 0 rgba(0,0,0,.55);
  font-weight:900;font-style:normal;text-transform:uppercase;
  transition:background .2s;
}
.menu-btn:hover{background:var(--red-dark,#8F1F17)}
.menu-btn:active{transform:skewX(-10deg) translate(2px,2px);box-shadow:2px 2px 0 rgba(0,0,0,.55)}

/* ----- Open menu: P2 (right side drawer, red rail) ----- */
.m-menu:not([hidden]),#m-menu:target{
  left:auto;right:0;top:0;bottom:0;
  width:min(400px,86vw);
  border-left:4px solid var(--red,#DE010B);border-bottom:none;
  box-shadow:-24px 0 60px rgba(0,0,0,.55);
}
@media (prefers-reduced-motion: no-preference){
  .m-menu:not([hidden]),#m-menu:target{animation:mo-drawer .32s cubic-bezier(.22,.7,.25,1)}
  @keyframes mo-drawer{from{transform:translateX(100%)}to{transform:none}}
}

/* ----- Primary buttons: 3 (hard offset shadow, presses down) ----- */
.btn-red{
  border-radius:10px;
  box-shadow:5px 5px 0 var(--black,#16130F);
  transition:transform .15s,box-shadow .15s,background .2s;
}
.btn-red:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--black,#16130F)}

/* ----- Hero CTA: 8 (gradient + pulse ring, one per page) ----- */
.hero .hero-ctas .btn-red,.hero>.wrap>.btn-red,.page-hero .btn-red{
  background:linear-gradient(135deg,var(--red,#DE010B),var(--red-dark,#8F1F17));
}
@media (prefers-reduced-motion: no-preference){
  .hero .hero-ctas .btn-red,.hero>.wrap>.btn-red,.page-hero .btn-red{
    animation:mo-cta-pulse 3s ease-in-out infinite;
  }
  @keyframes mo-cta-pulse{
    0%,100%{box-shadow:5px 5px 0 var(--black,#16130F),0 0 0 0 rgba(222,1,11,.45)}
    50%{box-shadow:5px 5px 0 var(--black,#16130F),0 0 0 12px rgba(222,1,11,0)}
  }
}

/* ----- Homepage hero video (silent loop) ----- */
.hero-video{position:absolute;inset:0;z-index:-2;overflow:hidden;background:var(--black,#16130F)}
.hero-video video{width:100%;height:100%;object-fit:cover;object-position:center 30%}
/* let the video breathe: lighter tint, text anchored low so the frame stays visible */
.hero:has(.hero-video) .tint{background:linear-gradient(180deg,rgba(14,13,12,.42) 0%,rgba(14,13,12,.18) 50%,rgba(14,13,12,.78) 100%)}
.hero:has(.hero-video){align-items:flex-end;padding-bottom:calc(12vh + 90px)}
.hero:has(.hero-video) h1{font-size:clamp(2rem,5.6vw,3.6rem)}
.hero:has(.hero-video) .sub{margin:14px auto 22px}

/* ----- v36.1 fixes ----- */
/* Desktop drawer: kill the old v20 centering padding, which resolves
   against the viewport and crushed the drawer content to a sliver */
@media(min-width:760px){
  .m-menu:not([hidden]),#m-menu:target{
    padding-left:24px;padding-right:24px;
  }
}
