/* FLICKER LINKS */

/* Always-on “loads weird” per-letter flicker for Elementor headings/links
   Apply class: flicker-hover on the Elementor widget wrapper (like you have)
*/

.flicker-hover {
  display: inline-block;
}

.flicker-hover .elementor-heading-title a {
  display: inline-block;
  text-decoration: none;
}

/* Each character span */
.flicker-hover .flicker-char {
  display: inline-block;
  will-change: transform, opacity;

  /* ALWAYS ON */
  animation-name: flicker-load;
  animation-timing-function: steps(2, end);
  animation-iteration-count: infinite;
  animation-duration: var(--flicker-dur, 0.35s);
  animation-delay: var(--flicker-delay, 0ms);
}

/* No color change, just subtle redraw/jitter */
@keyframes flicker-load {
  0% {
    opacity: 1;
    transform: translate(0);
  }

  10% {
    opacity: .9;
    transform: translate(0.2px, -0.1px);
  }

  22% {
    opacity: .55;
    transform: translate(-0.25px, 0.12px);
  }

  35% {
    opacity: 1;
    transform: translate(0);
  }

  55% {
    opacity: .8;
    transform: translate(0.15px, 0.18px);
  }

  75% {
    opacity: 1;
    transform: translate(0);
  }

  100% {
    opacity: 1;
    transform: translate(0);
  }
}

/* Accessibility */
@media (prefers-reduced-motion: reduce) {
  .flicker-hover .flicker-char {
    animation: none !important;
  }
}


/* =========================
   LOAD ANIMATION (reveal)
   ========================= */

.blink-reveal .char {
  opacity: 0;
  display: inline-block;
  animation: blinkIn 0.25s ease-in-out forwards;
}

@keyframes blinkIn {
  0% {
    opacity: 0;
  }

  40% {
    opacity: 1;
  }

  70% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}


/* =========================
   HOVER ANIMATION (strobe)
   ========================= */

.blink-hover:hover .word {
  animation-name: wordStrobeChaos;
  animation-duration: var(--strobeDur, 0.9s);
  animation-delay: var(--strobeDelay, 0s);
  animation-timing-function: steps(1, end);
  animation-iteration-count: infinite;
}

@keyframes wordStrobeChaos {
  0% {
    opacity: 1;
  }

  7% {
    opacity: 0;
  }

  12% {
    opacity: 1;
  }

  26% {
    opacity: 0;
  }

  31% {
    opacity: 1;
  }

  47% {
    opacity: 0;
  }

  50% {
    opacity: 1;
  }

  68% {
    opacity: 0;
  }

  72% {
    opacity: 1;
  }

  100% {
    opacity: 1;
  }
}



/* release */


/* ------------------------------------------------------------
   GLOBAL FIX (NO ABSOLUTE): Prevent squished / super-short
   YouTube/Vimeo embeds (including ACF WYSIWYG via shortcode)
------------------------------------------------------------ */

/* 1) Make YouTube/Vimeo iframes keep a sane aspect ratio */
.elementor-widget-shortcode iframe[src*="youtube.com"],
.elementor-widget-shortcode iframe[src*="youtu.be"],
.elementor-widget-shortcode iframe[src*="player.vimeo.com"],
iframe[src*="youtube.com"],
iframe[src*="youtu.be"],
iframe[src*="player.vimeo.com"] {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
  display: block !important;
}

/* 2) Elementor sometimes constrains the container height; let it expand */
.elementor-widget-shortcode .elementor-widget-container {
  height: auto !important;
}

/* 3) If WP adds oEmbed wrappers, make sure they don’t collapse */
.wp-embed-aspect-16-9,
.wp-block-embed__wrapper,
.wp-block-embed {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
}

/* 4) Optional: remove weird baseline whitespace around embeds */
.elementor-widget-shortcode .elementor-widget-container,
.wp-embed-aspect-16-9,
.wp-block-embed__wrapper {
  line-height: 0;
}

.page-music .page-header a,
.page-music .page-footer,
.page-music .page-footer a,
.page-music .page-footer .elementor-social-icon svg,
.page-music .page-header svg {
  color: #434E5D !important;
  fill: #434E5D !important;
}

.page-sign-up .page-header a,
.page-sign-up .page-footer,
.page-sign-up .page-footer a,
.page-sign-up .page-footer .elementor-social-icon svg,
.page-sign-up .page-header svg {
  color: #434E5D !important;
  fill: #434E5D !important;
}

.page-sign-up p {
  margin-top: 0;
  margin-bottom: 0;
}

/* logos */

.kun-logo-svg-light {
    fill: var(--e-global-color-e12cf3c);
}

.kun-logo-svg-dark {
    fill: var(--e-global-color-d932a42);
}

.releases-template-default .page-header a {
      color: var(--release-text-color) !important;
}

.releases-template-default .page-header svg {
      fill: var(--release-text-color) !important;
}

.releases-template-default .page-footer svg {
      fill: var(--release-text-color) !important;
}

.releases-template-default .page-footer a {
      color: var(--release-text-color) !important;
}

.releases-template-default .page-footer {
      color: var(--release-text-color) !important;
}