/* Индивидуальное оформление страницы СТИМУЛЯЦИЯ.exe. */
body.stimulation-page > header {
  overflow-x: clip;
}

body.stimulation-page .stimulation-viewport {
  position: relative;
  margin: 1em 4%;
  padding: 0 min(2ch, 4%);
  font: inherit;
  color: inherit;
  text-align: left;
}

body.stimulation-page .stimulation-copy,
body.stimulation-page .stimulation-live {
  margin: 0;
  padding: 0;
  font-family: inherit;
  font-size: clamp(2rem, 5.2vw, 2.35rem);
  font-weight: inherit;
  line-height: 1.02;
  letter-spacing: 0.025em;
  color: inherit;
  text-align: left;
}

body.stimulation-page .stimulation-copy {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-all;
  hyphens: none;
}

body.stimulation-page .stimulation-viewport.is-playing {
  height: var(--stimulation-height, 50vh);
  overflow: hidden;
  overflow-anchor: none;
}

body.stimulation-page .stimulation-live {
  height: 100%;
  overflow: hidden;
}

body.stimulation-page .stimulation-track {
  width: 100%;
  transform: translateY(0);
  transition: transform 115ms cubic-bezier(0.33, 0, 0.2, 1);
  will-change: transform;
}

body.stimulation-page .stimulation-track.is-shifting {
  transform: translateY(calc(-1 * var(--stimulation-shift, 1em)));
}

body.stimulation-page .stimulation-line {
  width: 100%;
  height: 1.02em;
  margin: 0;
  padding: 0;
  overflow: visible;
  white-space: nowrap;
  line-height: 1.02;
}

body.stimulation-page .stimulation-letter {
  display: inline-block;
  vertical-align: baseline;
  animation: stimulation-arrival 220ms linear both;
}

body.stimulation-page .stimulation-letter.is-small {
  font-size: 0.52em;
}

body.stimulation-page .stimulation-letter.is-large {
  font-size: 0.65em;
}

body.stimulation-page .stimulation-copy[hidden] {
  display: none;
}

@keyframes stimulation-arrival {
  0% {
    color: var(--red-bright, #c43543);
    filter: brightness(1.65);
    text-shadow:
      0 0 5px rgba(196, 53, 67, 0.95),
      0 0 12px rgba(158, 38, 50, 0.78);
  }
  42% {
    color: var(--red, #9e2632);
    filter: brightness(1.25);
    text-shadow: 0 0 7px rgba(158, 38, 50, 0.58);
  }
  100% {
    color: inherit;
    filter: brightness(1);
    text-shadow: inherit;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.stimulation-page .stimulation-track,
  body.stimulation-page .stimulation-letter {
    transition: none;
    animation: none;
  }
}
