/* Cmajor Works v12 — restrained motion system */

:root {
  --cmw-ease: cubic-bezier(.22, 1, .36, 1);
  --cmw-shift: 0px;
  --cmw-progress: 0;
}

.cmw-scroll-progress {
  position: fixed;
  z-index: 200;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  pointer-events: none;
  transform: scaleX(var(--cmw-progress));
  transform-origin: 0 50%;
  background: linear-gradient(90deg,
    var(--brand-pink, #ef4f9a),
    var(--brand-yellow, #e7cc36),
    var(--brand-blue, #496aff),
    var(--brand-violet, #9a64e8));
  box-shadow: 0 0 16px rgba(73, 106, 255, .34);
}

.site-header {
  transition:
    background-color .45s var(--cmw-ease),
    box-shadow .45s var(--cmw-ease),
    border-color .45s var(--cmw-ease);
}

.site-header .site-logo img {
  transition: transform .5s var(--cmw-ease), opacity .35s ease;
  transform-origin: left center;
}

.site-header.is-scrolled {
  background: rgba(246, 240, 228, .94);
  border-color: rgba(18, 18, 18, .24);
  box-shadow: 0 12px 38px rgba(18, 18, 18, .08);
}

.site-header.is-scrolled .site-logo img {
  transform: scale(.92);
}

/* Reveal only becomes active after JavaScript has attached observers. */
.motion-ready .cmw-reveal {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0, 30px, 0);
  transition:
    opacity .8s var(--cmw-ease),
    transform .9s var(--cmw-ease),
    filter .8s var(--cmw-ease);
  transition-delay: var(--cmw-delay, 0ms);
  will-change: opacity, transform;
}

.motion-ready .cmw-reveal.cmw-from-left {
  transform: translate3d(-32px, 0, 0);
}

.motion-ready .cmw-reveal.cmw-from-right {
  transform: translate3d(32px, 0, 0);
}

.motion-ready .cmw-reveal.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
}

.motion-ready .artist-preview-card.cmw-reveal.is-visible:hover,
.motion-ready .artist-preview-card.cmw-reveal.is-visible:focus-visible {
  transform: translate3d(0, -4px, 0);
}

.motion-ready .member-card.cmw-reveal.is-visible:hover,
.motion-ready .member-card.cmw-reveal.is-visible:focus-visible {
  transform: translate3d(-3px, -3px, 0);
}

.motion-ready .contact-form-main.cmw-reveal.is-visible:focus-within {
  transform: translate3d(0, -3px, 0);
}

.hero-copy,
.hero-photo-wall {
  transform: translate3d(0, var(--cmw-shift), 0);
  will-change: transform;
}

.hero-copy {
  transition: transform .12s linear;
}

.hero-photo-wall {
  transition: transform .16s linear, box-shadow .5s var(--cmw-ease);
}

.hero-photo-wall:hover {
  box-shadow: 0 34px 96px rgba(18, 18, 18, .2);
}

.brand-spectrum i {
  animation: cmw-spectrum-pulse 3.6s ease-in-out infinite;
}

.brand-spectrum i:nth-child(2) { animation-delay: .14s; }
.brand-spectrum i:nth-child(3) { animation-delay: .28s; }
.brand-spectrum i:nth-child(4) { animation-delay: .42s; }
.brand-spectrum i:nth-child(5) { animation-delay: .56s; }
.brand-spectrum i:nth-child(6) { animation-delay: .7s; }

.proof-strip {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.proof-strip::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(110deg,
    transparent 0 38%,
    rgba(255, 255, 255, .07) 46%,
    rgba(73, 106, 255, .13) 50%,
    transparent 57% 100%);
  transform: translateX(-100%);
  animation: cmw-proof-sweep 8s ease-in-out infinite;
}

.section-kicker,
.home-section-label p,
.event-schedule-head > p {
  position: relative;
}

.section-kicker::after,
.event-schedule-head > p::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 1px;
  margin: 0 0 3px 12px;
  background: currentColor;
  opacity: .45;
  vertical-align: middle;
  transition: width .8s var(--cmw-ease) .15s;
}

.is-visible .section-kicker::after,
.section-kicker.is-visible::after,
.event-schedule-head.is-visible > p::after {
  width: clamp(30px, 5vw, 72px);
}

.artist-preview-card,
.artist-list-card,
.talent-card,
.media-card,
.event-card,
.feature-grid article,
.service-grid > div,
.news-list article,
.home-news-list article {
  backface-visibility: hidden;
}

.artist-preview-media,
.artist-list-media,
.talent-media,
.media-image,
.profile-image,
.artist-detail-hero figure,
.audition-band-visual figure {
  isolation: isolate;
}

.artist-preview-media::after,
.artist-list-media::after,
.talent-media::after,
.media-image::after {
  content: "";
  z-index: 2;
  pointer-events: none;
  position: absolute;
  inset: 0;
  background: linear-gradient(112deg, transparent 25%, rgba(255,255,255,.22) 48%, transparent 69%);
  transform: translateX(-130%);
  transition: transform .95s var(--cmw-ease);
}

.artist-preview-card:hover .artist-preview-media::after,
.artist-list-card:hover .artist-list-media::after,
.talent-card:hover .talent-media::after,
.media-card:hover .media-image::after,
.artist-preview-card:focus-visible .artist-preview-media::after,
.artist-list-card:focus-visible .artist-list-media::after,
.talent-card:focus-visible .talent-media::after,
.media-card:focus-visible .media-image::after {
  transform: translateX(130%);
}

.cmw-glow {
  position: relative;
}

.cmw-glow::before {
  content: "";
  z-index: 4;
  pointer-events: none;
  position: absolute;
  inset: 0;
  opacity: 0;
  background: radial-gradient(220px circle at var(--cmw-x, 50%) var(--cmw-y, 50%), rgba(255,255,255,.16), transparent 68%);
  transition: opacity .3s ease;
}

.cmw-glow:hover::before,
.cmw-glow:focus-visible::before {
  opacity: 1;
}

.home-event {
  background-size: 125% 125%, 132% 132%, auto;
  animation: cmw-event-atmosphere 13s ease-in-out infinite alternate;
}

.event-card {
  isolation: isolate;
}

.event-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, #ff70b6, #8ca1ff, transparent);
  transition: width .65s var(--cmw-ease);
}

.event-card:hover::after,
.event-card:focus-visible::after {
  width: 100%;
}

.audition-band-visual figure:first-child {
  animation: cmw-photo-float-a 7.5s ease-in-out infinite;
}

.audition-band-visual figure:last-child {
  animation: cmw-photo-float-b 8.5s ease-in-out infinite;
}

.intro-mark,
.audition-star,
.audition-badge {
  animation: cmw-mark-float 6s ease-in-out infinite;
}

.footer-logo::before {
  animation: cmw-footer-light 8s ease-in-out infinite alternate;
}

.profile-image::before,
.artist-detail-hero figure::before {
  transition: transform .8s var(--cmw-ease), inset .8s var(--cmw-ease);
}

.profile-image:hover::before,
.artist-detail-hero figure:hover::before {
  transform: rotate(-1deg) translate3d(6px, -5px, 0);
}

.contact-form-main,
.contact-summary {
  transition: box-shadow .45s var(--cmw-ease), transform .45s var(--cmw-ease);
}

.contact-form-main:focus-within {
  box-shadow: 0 30px 82px rgba(18, 18, 18, .1);
  transform: translateY(-3px);
}

@keyframes cmw-spectrum-pulse {
  0%, 100% { opacity: .55; transform: scale(.86); }
  50% { opacity: 1; transform: scale(1.18); }
}

@keyframes cmw-proof-sweep {
  0%, 18% { transform: translateX(-100%); }
  60%, 100% { transform: translateX(100%); }
}

@keyframes cmw-event-atmosphere {
  from { background-position: 74% 45%, 59% 74%, 0 0; }
  to { background-position: 86% 54%, 67% 66%, 0 0; }
}

@keyframes cmw-photo-float-a {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(-1.5deg); }
  50% { transform: translate3d(0, -8px, 0) rotate(-.8deg); }
}

@keyframes cmw-photo-float-b {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(2deg); }
  50% { transform: translate3d(0, 7px, 0) rotate(1.2deg); }
}

@keyframes cmw-mark-float {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 -9px; }
}

@keyframes cmw-footer-light {
  from { opacity: .55; transform: translate3d(-5px, 2px, 0) scale(.94); }
  to { opacity: 1; transform: translate3d(7px, -3px, 0) scale(1.05); }
}

@media (max-width: 900px), (pointer: coarse) {
  .hero-copy,
  .hero-photo-wall {
    transform: none !important;
  }

  .motion-ready .cmw-reveal {
    filter: blur(2px);
    transform: translate3d(0, 18px, 0);
    transition-duration: .7s;
  }

  .motion-ready .cmw-reveal.is-visible {
    filter: none;
    transform: none;
  }

  .cmw-glow::before {
    display: none;
  }

  .home-event {
    animation-duration: 18s;
  }

  .audition-band-visual figure:first-child,
  .audition-band-visual figure:last-child {
    animation-duration: 10s;
  }
}

@media (max-width: 760px) {
  .cmw-scroll-progress { height: 2px; }

  .site-header.is-scrolled .site-logo img {
    transform: none;
  }

  .artist-preview-media::after,
  .artist-list-media::after,
  .talent-media::after,
  .media-image::after {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cmw-scroll-progress { display: none; }

  .motion-ready .cmw-reveal,
  .motion-ready .cmw-reveal.cmw-from-left,
  .motion-ready .cmw-reveal.cmw-from-right {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
    transition: none !important;
  }

  .hero-copy,
  .hero-photo-wall {
    transform: none !important;
    transition: none !important;
  }

  .brand-spectrum i,
  .proof-strip::after,
  .home-event,
  .audition-band-visual figure,
  .intro-mark,
  .audition-star,
  .audition-badge,
  .footer-logo::before {
    animation: none !important;
  }

  .artist-preview-media::after,
  .artist-list-media::after,
  .talent-media::after,
  .media-image::after,
  .event-card::after {
    display: none;
  }
}
