/* ===== Kulture Kast motion layer ===== */
/* 1. Halftone drift */
@keyframes kk-drift {
  0%   { background-position: 82% 40%, right -60px top -60px; opacity: .5; }
  50%  { background-position: 78% 44%, right -20px top -100px; opacity: .62; }
  100% { background-position: 86% 36%, right -90px top -30px; opacity: .5; }
}
.m-drift .hero::before { animation: kk-drift 28s ease-in-out infinite alternate; }

/* 2. K))) broadcast waves */
@keyframes kk-broadcast { 0% { opacity: .2; } 18% { opacity: 1; } 55%, 100% { opacity: .2; } }
.m-waves .hero-mark .wave { animation: kk-broadcast 1.8s ease-out infinite; }
.m-waves .hero-mark .wave.w2 { animation-delay: .22s; }
.m-waves .hero-mark .wave.w3 { animation-delay: .44s; }
@keyframes kk-glow { 0%, 100% { filter: drop-shadow(0 0 0 rgba(255,90,31,0)); } 25% { filter: drop-shadow(0 0 18px rgba(255,90,31,.35)); } }
.m-waves .hero-mark svg { animation: kk-glow 1.8s ease-out infinite; }

/* 3. Result stamp landing */
.card-stamp-wrap { position: relative; }
.card-stamp { position: absolute; right: -3%; bottom: 7%; width: 78%; max-width: 100%; transform: rotate(-8deg); pointer-events: none; filter: drop-shadow(0 6px 14px rgba(0,0,0,.45)); }
@keyframes kk-stamp { 0% { transform: scale(2.3) rotate(-20deg); opacity: 0; } 55% { transform: scale(.94) rotate(-7deg); opacity: 1; } 75% { transform: scale(1.03) rotate(-8.5deg); } 100% { transform: scale(1) rotate(-8deg); opacity: 1; } }
@keyframes kk-thump { 0%, 100% { transform: translate(0, 0); } 30% { transform: translate(-3px, 2px); } 55% { transform: translate(2px, -1px); } }
.m-stamp .card-stamp.play { animation: kk-stamp .6s cubic-bezier(.2,.9,.3,1.2) both; }
.m-stamp .card-stamp-wrap.play > img { animation: kk-thump .28s ease-out .3s; }

/* 4. Sections ease in on scroll (content is never hidden) */
.m-reveal .reveal { transition: transform .9s cubic-bezier(.2,.8,.2,1), opacity .9s ease; }
.m-reveal .reveal.pre { transform: translateY(56px); opacity: .25; }

@media (prefers-reduced-motion: reduce) {
  .m-drift .hero::before, .m-waves .hero-mark .wave, .m-waves .hero-mark svg, .m-stamp .card-stamp.play, .m-stamp .card-stamp-wrap.play > img { animation: none; }
  .m-reveal .reveal, .m-reveal .reveal.pre { transition: none; transform: none; opacity: 1; }
}
@media (max-width: 760px) { .card-stamp { right: 0; } .card-stamp-wrap { max-width: 260px; } }
