/* ==========================================================================
   EP01-ZIEMIANIE.CSS — Lokalne style scenek dla Odcinka 1
   Wyłącznie unikalne klasy scenek (bez duplikowania globals.css / episode-engine.css)
   ========================================================================== */

.ep01-stage {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #9AD3EE 0%, #C5E8F7 34%, #EAF6F3 58%, #6FB34C 66%, #4E8C34 100%);
  overflow: hidden;
}

.ep01-scene-svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}

.ep01-wide-sky {
  fill: #C5E8F7;
}

.ep01-wide-grass {
  fill: #6FB34C;
}

/* Chmurka wskazówki po dotknięciu elementu w scence */
.ep01-scene-tip {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  max-width: min(86%, 540px);
  padding: 10px 18px;
  border-radius: 999px;
  background: rgba(255, 253, 246, 0.96);
  border: 2px solid var(--ink-main);
  box-shadow: 0 6px 18px rgba(36, 48, 38, 0.14);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--ink-main);
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.ep01-scene-tip.is-visible {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Wspólne kontury i wypełnienia cel-shadingowe Ziemian i rekwizytów */
.ep01-outline {
  fill: none;
  stroke: #243026;
  stroke-width: 3.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ep01-hit-area {
  fill: transparent;
}

.ep01-interactive-prop {
  cursor: default;
}

.ep01-stage[data-phase="CHOICE"] .ep01-interactive-prop,
.ep01-stage[data-phase="CHOICE"] .ep01-hit-area,
.ep01-stage[data-phase="FEEDBACK"] .ep01-interactive-prop,
.ep01-stage[data-phase="FEEDBACK"] .ep01-hit-area {
  cursor: pointer;
}

.ep01-ground-shadow {
  fill: rgba(36, 48, 38, 0.16);
}

/* Ławka parkowa */
.ep01-bench-metal {
  fill: #455650;
  stroke: #243026;
  stroke-width: 3;
  stroke-linejoin: round;
}

.ep01-wood-shadow { fill: #9b643b; }
.ep01-wood-main { fill: #c68652; }
.ep01-wood-light { fill: #dfaa74; }

/* Ziemianin */
.ep01-skin-shadow { fill: #dca681; }
.ep01-skin-main { fill: #f4c8a6; }
.ep01-skin-light { fill: #ffe0c4; }

.ep01-neck {
  fill: #dca681;
  stroke: #243026;
  stroke-width: 3.2;
}

.ep01-shirt-shadow { fill: #356e91; }
.ep01-shirt-main { fill: #4d94be; }
.ep01-shirt-light { fill: #78bae0; }

.ep01-pants-shadow { fill: #394858; }
.ep01-pants-main { fill: #516478; }
.ep01-pants-light { fill: #6c8198; }

.ep01-shoe {
  fill: #d96b4e;
  stroke: #243026;
  stroke-width: 3.2;
  stroke-linejoin: round;
}

.ep01-hair {
  fill: #5a3c2c;
  stroke: #243026;
  stroke-width: 3.2;
  stroke-linejoin: round;
}

.ep01-eye-white {
  fill: #ffffff;
  stroke: #243026;
  stroke-width: 2.2;
}

.ep01-eye-pupil { fill: #243026; }
.ep01-eye-glint { fill: #ffffff; }

.ep01-earthling-head {
  transform-origin: 0px -96px;
  transition: transform 0.65s ease-in-out;
}

.ep01-earthling-eyes {
  transform-origin: 3px -136px;
  transition: transform 0.55s ease;
  animation: ep01-blink 4.6s ease-in-out infinite;
}

.ep01-earthling-pupils {
  animation: ep01-eye-wander 9.5s ease-in-out infinite;
}

.ep01-stage[data-beat="earthling-speak"] .ep01-earthling-head,
.ep01-stage[data-beat="bubu-enter"] .ep01-earthling-head,
.ep01-stage[data-beat="bubu-think"] .ep01-earthling-head {
  transform: rotate(-7deg);
}

.ep01-stage[data-phase="CHOICE"] .ep01-earthling-head,
.ep01-stage[data-phase="FEEDBACK"] .ep01-earthling-head {
  animation: ep01-lazy-head 8.5s ease-in-out infinite;
}

.ep01-stage[data-beat="earthling-speak"] .ep01-earthling-pupils {
  animation: none;
  transform: translate(1.5px, -2.5px);
}

.ep01-mouth {
  fill: none;
  stroke: #243026;
  stroke-width: 3;
  stroke-linecap: round;
}

.ep01-mouth-talk {
  fill: #8d493a;
  stroke: #243026;
  stroke-width: 2.6;
  opacity: 0;
  transform-origin: 4px -114px;
}

.ep01-mouth-surprised {
  fill: #8d493a;
  stroke: #243026;
  stroke-width: 2.6;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.ep01-mouth-smile {
  opacity: 0;
}

.ep01-earthling-brows {
  transition: transform 0.3s ease;
}

.ep01-brow {
  fill: none;
  stroke: #3f281d;
  stroke-width: 2.8;
  stroke-linecap: round;
}

.ep01-earthling[data-mood="smile"] .ep01-mouth-dreamy,
.ep01-earthling[data-mood="smile"] .ep01-mouth-talk,
.ep01-earthling[data-mood="smile"] .ep01-mouth-surprised,
.ep01-earthling[data-mood="surprised"] .ep01-mouth-dreamy,
.ep01-earthling[data-mood="surprised"] .ep01-mouth-talk,
.ep01-earthling[data-mood="surprised"] .ep01-mouth-smile {
  opacity: 0;
}

.ep01-earthling[data-mood="smile"] .ep01-mouth-smile,
.ep01-earthling[data-mood="surprised"] .ep01-mouth-surprised {
  opacity: 1;
}

.ep01-earthling[data-mood="surprised"] .ep01-earthling-brows {
  transform: translateY(-4px);
}

.ep01-earthling[data-mood="smile"] .ep01-earthling-brows {
  transform: translateY(-2px);
}

.ep01-earthling[data-mood="surprised"] .ep01-earthling-head {
  transform: rotate(5deg);
}

.ep01-earthling[data-mood="surprised"] .ep01-earthling-pupils {
  animation: none;
  transform: translate(2.5px, -3.5px);
}

.ep01-stage[data-beat="earthling-speak"] .ep01-mouth-dreamy {
  opacity: 0;
}

.ep01-stage[data-beat="earthling-speak"] .ep01-mouth-talk {
  opacity: 1;
  animation: ep01-mouth-speak 0.42s ease-in-out infinite;
}

/* Książka */
.ep01-book-cover {
  fill: #2f7a64;
  stroke: #243026;
  stroke-width: 3;
  stroke-linejoin: round;
}

.ep01-book-pages {
  fill: #fffdf6;
  stroke: #243026;
  stroke-width: 2.6;
  stroke-linejoin: round;
}

.ep01-book-lines {
  fill: none;
  stroke: #9aa79c;
  stroke-width: 2.2;
  stroke-linecap: round;
}

/* Chmurka myśli i jej stopniowe rozwijanie z głowy */
.ep01-thought-dot {
  fill: #f6fbff;
  stroke: #243026;
  stroke-width: 3;
  opacity: 1;
  transform: scale(1);
  transition: opacity 0.35s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.ep01-thought-dot-1 {
  transform-origin: -52px 52px;
}

.ep01-thought-dot-2 {
  transform-origin: -34px 36px;
  transition-delay: 0.35s;
}

.ep01-thought-body {
  opacity: 1;
  transform: scale(1);
  transform-origin: -25px 15px;
  transition: opacity 0.65s ease 0.7s, transform 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.7s;
  animation: ep01-float 4.2s ease-in-out infinite;
}

.ep01-stage[data-phase="WAITING_START"] .ep01-thought-dot,
.ep01-stage[data-beat="setup"] .ep01-thought-dot,
.ep01-stage[data-phase="WAITING_START"] .ep01-thought-body,
.ep01-stage[data-beat="setup"] .ep01-thought-body {
  opacity: 0;
  transform: scale(0.15);
  transition-delay: 0s;
}

.ep01-thought-shadow { fill: #d5e6f4; }
.ep01-thought-main { fill: #f5faff; }
.ep01-thought-light { fill: #ffffff; }

.ep01-dream-planet {
  fill: #7f8ce0;
  stroke: #243026;
  stroke-width: 2.4;
}

.ep01-dream-ring {
  fill: none;
  stroke: #f3c14b;
  stroke-width: 3.4;
}

.ep01-dream-star {
  fill: #f6c945;
  stroke: #243026;
  stroke-width: 1.8;
  stroke-linejoin: round;
}

/* Warianty zawartości chmurki */
.ep01-thought-balloon,
.ep01-thought-eureka {
  opacity: 0;
  transition: opacity 0.25s ease;
}

.ep01-stage[data-outcome="literal"] .ep01-thought-dream,
.ep01-stage[data-outcome="eureka"] .ep01-thought-dream {
  opacity: 0;
}

.ep01-stage[data-outcome="literal"] .ep01-thought-balloon {
  opacity: 1;
}

.ep01-stage[data-outcome="eureka"] .ep01-thought-eureka {
  opacity: 1;
}

.ep01-balloon-body {
  fill: #cfd8dc;
  stroke: #243026;
  stroke-width: 2.6;
}

.ep01-balloon-knot {
  fill: #b0bec5;
  stroke: #243026;
  stroke-width: 2;
}

.ep01-balloon-string {
  fill: none;
  stroke: #546e7a;
  stroke-width: 2.2;
  stroke-linecap: round;
}

.ep01-bulb-glow {
  fill: rgba(255, 224, 102, 0.45);
}

.ep01-bulb-glass {
  fill: #ffe066;
  stroke: #243026;
  stroke-width: 2.6;
  stroke-linejoin: round;
}

.ep01-bulb-base {
  fill: #90a4ae;
  stroke: #243026;
  stroke-width: 2.2;
}

.ep01-bulb-rays {
  fill: none;
  stroke: #f59f00;
  stroke-width: 3.2;
  stroke-linecap: round;
}

/* Dymek wypowiedzi Ziemianina — pojawia się przy mówieniu i zostaje widoczny w powietrzu */
.ep01-speech-bubble {
  opacity: 1;
  transition: opacity 0.35s ease;
}

.ep01-stage[data-phase="WAITING_START"] .ep01-speech-bubble,
.ep01-stage[data-beat="setup"] .ep01-speech-bubble,
.ep01-stage[data-beat="cloud-grow"] .ep01-speech-bubble {
  opacity: 0;
}

.ep01-speech-box {
  fill: #fffdf6;
  stroke: #243026;
  stroke-width: 3.2;
}

.ep01-speech-text {
  font-family: var(--font-main);
  font-size: 21px;
  font-weight: 800;
  fill: #243026;
}

/* Spokojne animacje GPU (transform / opacity) */
.ep01-earthling-upper {
  transform-origin: 0px 0px;
  animation: ep01-breathe 3.8s ease-in-out infinite;
}

.ep01-stage[data-beat="earthling-speak"] .ep01-earthling-upper {
  animation: ep01-sigh 2.1s ease-in-out 1;
}

.ep01-stage[data-phase="CHOICE"] .ep01-earthling-upper {
  animation: ep01-lazy-sigh 8.5s ease-in-out infinite;
}

.ep01-stage[data-phase="CHOICE"] .ep01-interactive-prop:not(.is-discovered):not(.is-pulsed) {
  animation: ep01-prop-glint 5.2s ease-in-out infinite;
}

.ep01-stage[data-phase="CHOICE"] .ep01-thought-cloud:not(.is-discovered):not(.is-pulsed) {
  animation-delay: 2.6s;
}

.ep01-book.is-pulsed .ep01-prop-nudge,
.ep01-thought-cloud.is-pulsed .ep01-prop-nudge {
  animation: ep01-nudge 0.45s ease;
}

@keyframes ep01-breathe {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-2.5px); }
}

@keyframes ep01-sigh {
  0% { transform: translateY(0px) scaleY(1); }
  38% { transform: translateY(-6px) scaleY(1.03); }
  100% { transform: translateY(0px) scaleY(1); }
}

@keyframes ep01-lazy-sigh {
  0%, 55%, 100% { transform: translateY(0px) scaleY(1); }
  25% { transform: translateY(-2.5px) scaleY(1.01); }
  70% { transform: translateY(-5.5px) scaleY(1.025); }
  85% { transform: translateY(0px) scaleY(1); }
}

@keyframes ep01-lazy-head {
  0%, 100% { transform: rotate(-2deg); }
  25% { transform: rotate(-7deg); }
  50% { transform: rotate(3deg); }
  75% { transform: rotate(-6deg); }
}

@keyframes ep01-blink {
  0%, 92%, 100% { transform: scaleY(1); }
  95% { transform: scaleY(0.08); }
}

@keyframes ep01-eye-wander {
  0%, 100% { transform: translate(0px, 0px); }
  22% { transform: translate(1.8px, -2.5px); }
  45% { transform: translate(-2.2px, -0.5px); }
  68% { transform: translate(2.2px, 0.5px); }
  85% { transform: translate(0.5px, -2.2px); }
}

@keyframes ep01-mouth-speak {
  0%, 100% { transform: scaleY(0.35); }
  50% { transform: scaleY(1.1); }
}

@keyframes ep01-float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-6px); }
}

@keyframes ep01-nudge {
  0% { transform: scale(1); }
  45% { transform: scale(1.04); }
  100% { transform: scale(1); }
}

@keyframes ep01-prop-glint {
  0%, 72%, 100% {
    filter: drop-shadow(0 0 0 rgba(255, 209, 102, 0));
  }
  84% {
    filter: drop-shadow(0 0 10px rgba(255, 209, 102, 0.85));
  }
}

/* ==========================================================================
   SCENKA 2: Boisko do koszykówki („Bułka z masłem!”)
   ========================================================================== */

.ep01-court-fence {
  opacity: 0.9;
}

.ep01-fence-rail {
  fill: none;
  stroke: #566b62;
  stroke-width: 5;
  stroke-linecap: round;
}

.ep01-fence-post {
  fill: #455650;
  stroke: #243026;
  stroke-width: 2.6;
}

.ep01-court-surface {
  fill: #d98b5f;
  stroke: #243026;
  stroke-width: 3.2;
  stroke-linejoin: round;
}

.ep01-court-key {
  fill: #c47449;
}

.ep01-court-lines {
  fill: none;
  stroke: #fffdf6;
  stroke-width: 3.4;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.92;
}

.ep01-hoop-pole-shadow { fill: #43534d; }
.ep01-hoop-pole-main { fill: #5e726a; }
.ep01-hoop-pole-light { fill: #7f968d; }

.ep01-hoop-board {
  fill: #fffdf6;
  stroke: #243026;
  stroke-width: 3.4;
  stroke-linejoin: round;
}

.ep01-hoop-board-square {
  fill: none;
  stroke: #e05a47;
  stroke-width: 3.2;
  stroke-linejoin: round;
}

.ep01-hoop-rim {
  fill: none;
  stroke: #e86f38;
  stroke-width: 5.5;
  stroke-linecap: round;
}

.ep01-net-mesh {
  fill: none;
  stroke: #f5f8fa;
  stroke-width: 2.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ep01-hoop-net {
  transform-origin: -70px -242px;
}

.ep01-swish-stars,
.ep01-highfive-stars {
  opacity: 0;
  pointer-events: none;
}

.ep01-swish-star,
.ep01-highfive-star {
  transform-box: fill-box;
  transform-origin: center;
  opacity: 0;
}

/* Chłopcy i piłka */
.ep01-jersey1-shadow { fill: #c98f2b; }
.ep01-jersey1-main { fill: #f2b84b; }
.ep01-jersey1-light { fill: #ffd77a; }

.ep01-jersey2-shadow { fill: #b33f30; }
.ep01-jersey2-main { fill: #e05a47; }
.ep01-jersey2-light { fill: #f48474; }

.ep01-shoe-alt {
  fill: #3d7d67;
  stroke: #243026;
  stroke-width: 3.2;
  stroke-linejoin: round;
}

.ep01-cap {
  fill: #356e91;
  stroke: #243026;
  stroke-width: 3.2;
  stroke-linejoin: round;
}

.ep01-boy1-arm-left,
.ep01-boy1-arm-right,
.ep01-boy2-arm-left,
.ep01-boy2-arm-right {
  fill: none;
  stroke: #243026;
  stroke-width: 7.5;
  stroke-linecap: round;
}

.ep01-boy1-arm-right {
  transform-origin: 19px -110px;
}

.ep01-boy2-arm-right {
  transform-origin: 20px -114px;
  transition: transform 0.35s ease;
}

.ep01-boy2-turn {
  transform-origin: 0px 0px;
}

.ep01-ball-shadow { fill: #b85322; }
.ep01-ball-main { fill: #e87735; }
.ep01-ball-light { fill: #ff9f5a; }

.ep01-ball-seams {
  fill: none;
  stroke: #243026;
  stroke-width: 2.4;
  stroke-linecap: round;
}

.ep01-boy1-mouth-talk,
.ep01-boy1-mouth-cheer,
.ep01-boy2-mouth-talk,
.ep01-boy2-mouth-cheer {
  opacity: 0;
}

.ep01-boy2-tongue {
  fill: #f08080;
  stroke: #243026;
  stroke-width: 2.2;
  stroke-linejoin: round;
  opacity: 0;
  transition: opacity 0.25s ease;
}

/* Poprawne punkty obrotu oczu i ust chłopców (bez skakania poza twarz) */
.ep01-boy1 .ep01-earthling-eyes,
.ep01-boy2 .ep01-earthling-eyes,
.ep01-boy1-mouth-talk,
.ep01-boy2-mouth-talk {
  transform-box: fill-box;
  transform-origin: center;
}

.ep01-boy2-head {
  transform-box: fill-box;
  transform-origin: bottom center;
  transition: transform 0.35s ease;
}

.ep01-boy2-pupils {
  transition: transform 0.35s ease;
}

/* Dymki dialogowe w Scence 2 */
.ep01-speech-boy1,
.ep01-speech-boy2 {
  opacity: 0;
  transition: opacity 0.3s ease;
}

.ep01-stage[data-scene="r2"][data-beat="boy1-ask"] .ep01-speech-boy1,
.ep01-stage[data-scene="r2"][data-beat="boy2-reply"] .ep01-speech-boy1 {
  opacity: 1;
}

.ep01-stage[data-scene="r2"][data-beat="boy2-reply"] .ep01-speech-boy2,
.ep01-stage[data-scene="r2"][data-beat="bubu-enter"] .ep01-speech-boy2,
.ep01-stage[data-scene="r2"][data-beat="bubu-think"] .ep01-speech-boy2,
.ep01-stage[data-scene="r2"][data-beat="bubu-ask"] .ep01-speech-boy2,
.ep01-stage[data-scene="r2"][data-phase="CHOICE"] .ep01-speech-boy2,
.ep01-stage[data-scene="r2"][data-phase="FEEDBACK"] .ep01-speech-boy2 {
  opacity: 1;
}

/* Animacja mówienia chłopców */
.ep01-stage[data-scene="r2"][data-beat="boy1-ask"] .ep01-boy1-mouth-idle {
  opacity: 0;
}
.ep01-stage[data-scene="r2"][data-beat="boy1-ask"] .ep01-boy1-mouth-talk {
  opacity: 1;
  animation: ep01-mouth-speak 0.38s ease-in-out infinite;
}

.ep01-stage[data-scene="r2"][data-beat="boy2-reply"] .ep01-boy2-mouth-idle {
  opacity: 0;
}
.ep01-stage[data-scene="r2"][data-beat="boy2-reply"] .ep01-boy2-mouth-talk {
  opacity: 1;
  animation: ep01-mouth-speak 0.38s ease-in-out infinite;
}

/* Podrzut piłki przy przechwałce („Ha! Bułka z masłem!”) */
.ep01-stage[data-scene="r2"][data-beat="boy2-reply"] .ep01-ball-flight {
  animation: ep01-ball-heft 0.7s ease-in-out 2;
}

/* Skupiona poza celowania do kosza (uniesiona piłka, głowa w górę, zmrużone oczy i koniuszek języczka) */
.ep01-stage[data-scene="r2"][data-beat="bubu-enter"] .ep01-boy2-arm-right,
.ep01-stage[data-scene="r2"][data-beat="bubu-think"] .ep01-boy2-arm-right,
.ep01-stage[data-scene="r2"][data-beat="bubu-ask"] .ep01-boy2-arm-right,
.ep01-stage[data-scene="r2"][data-phase="CHOICE"] .ep01-boy2-arm-right {
  animation: ep01-aim-arm 1.75s ease-in-out infinite;
}

.ep01-stage[data-scene="r2"][data-beat="bubu-enter"] .ep01-boy2-head,
.ep01-stage[data-scene="r2"][data-beat="bubu-think"] .ep01-boy2-head,
.ep01-stage[data-scene="r2"][data-beat="bubu-ask"] .ep01-boy2-head,
.ep01-stage[data-scene="r2"][data-phase="CHOICE"] .ep01-boy2-head {
  transform: rotate(-13deg);
}

.ep01-stage[data-scene="r2"][data-beat="bubu-enter"] .ep01-boy2-eyes,
.ep01-stage[data-scene="r2"][data-beat="bubu-think"] .ep01-boy2-eyes,
.ep01-stage[data-scene="r2"][data-beat="bubu-ask"] .ep01-boy2-eyes,
.ep01-stage[data-scene="r2"][data-phase="CHOICE"] .ep01-boy2-eyes {
  animation: none;
  transform: scaleY(0.62);
}

.ep01-stage[data-scene="r2"][data-beat="bubu-enter"] .ep01-boy2-pupils,
.ep01-stage[data-scene="r2"][data-beat="bubu-think"] .ep01-boy2-pupils,
.ep01-stage[data-scene="r2"][data-beat="bubu-ask"] .ep01-boy2-pupils,
.ep01-stage[data-scene="r2"][data-phase="CHOICE"] .ep01-boy2-pupils {
  transform: translate(2.2px, -2.2px);
}

.ep01-stage[data-scene="r2"][data-beat="bubu-enter"] .ep01-boy2-tongue,
.ep01-stage[data-scene="r2"][data-beat="bubu-think"] .ep01-boy2-tongue,
.ep01-stage[data-scene="r2"][data-beat="bubu-ask"] .ep01-boy2-tongue,
.ep01-stage[data-scene="r2"][data-phase="CHOICE"] .ep01-boy2-tongue {
  opacity: 1;
}

.ep01-stage[data-scene="r2"][data-beat="bubu-enter"] .ep01-ball-flight,
.ep01-stage[data-scene="r2"][data-beat="bubu-think"] .ep01-ball-flight,
.ep01-stage[data-scene="r2"][data-beat="bubu-ask"] .ep01-ball-flight,
.ep01-stage[data-scene="r2"][data-phase="CHOICE"] .ep01-ball-flight {
  animation: ep01-aim-ball 1.75s ease-in-out infinite;
}

/* Błędna odpowiedź (literal): konsternacja */
.ep01-stage[data-scene="r2"][data-outcome="literal"] .ep01-boy2-head {
  transform: rotate(5deg);
}

.ep01-stage[data-scene="r2"][data-outcome="literal"] .ep01-boy2-tongue {
  opacity: 0;
}

.ep01-stage[data-scene="r2"][data-outcome="literal"] .ep01-boy2-eyes {
  animation: ep01-blink 4.6s ease-in-out infinite;
  transform: none;
}

.ep01-stage[data-scene="r2"][data-outcome="literal"] .ep01-boy2-pupils {
  transform: none;
}

.ep01-stage[data-scene="r2"][data-outcome="literal"] .ep01-boy2-arm-right {
  animation: none;
  transform: rotate(-10deg);
}

.ep01-stage[data-scene="r2"][data-outcome="literal"] .ep01-ball-flight {
  animation: none;
}

/* Poprawna odpowiedź (eureka): wyskok z rzutem + paraboliczny lot + furkot siatki + radość + przybicie piątki! */
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-head {
  animation: ep01-boy2-head-eureka 3.0s ease-in-out forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-tongue {
  opacity: 0;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-eyes {
  animation: ep01-blink 4.6s ease-in-out infinite;
  transform: none;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-pupils {
  animation: ep01-boy2-pupils-eureka 3.0s ease-in-out forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-turn {
  animation: ep01-boy2-turn-to-friend 0.01s steps(1, end) 2.75s forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy1-step {
  animation: ep01-boy1-highfive-step 0.72s ease-in-out 2.95s forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-step {
  animation: ep01-boy2-highfive-step 0.72s ease-in-out 2.95s forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy1-arm-right {
  animation: ep01-boy1-highfive-arm 1.05s ease-in-out 2.90s forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-arm-right {
  animation:
    ep01-boy2-throw-arm 1.3s ease-out forwards,
    ep01-boy2-highfive-arm 1.05s ease-in-out 2.90s forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-ball-flight {
  animation: ep01-ball-arc 1.3s linear forwards;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-hoop-net {
  animation: ep01-net-swish 1.5s ease-in-out 0.88s 1;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-swish-stars,
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-highfive-stars {
  opacity: 1;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-swish-star-main {
  animation: ep01-star-burst-up 1.55s ease-out 0.88s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-swish-star-left {
  animation: ep01-star-burst-left 1.45s ease-out 0.90s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-swish-star-right {
  animation: ep01-star-burst-right 1.45s ease-out 0.92s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-swish-star-top-left {
  animation: ep01-star-burst-up-left 1.6s ease-out 0.95s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-swish-star-top-right {
  animation: ep01-star-burst-up-right 1.55s ease-out 0.97s both;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-highfive-star-main {
  animation: ep01-star-burst-up 1.5s ease-out 3.24s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-highfive-star-left {
  animation: ep01-star-burst-left 1.4s ease-out 3.26s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-highfive-star-right {
  animation: ep01-star-burst-right 1.4s ease-out 3.28s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-highfive-star-top-left {
  animation: ep01-star-burst-up-left 1.55s ease-out 3.31s both;
}
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-highfive-star-top-right {
  animation: ep01-star-burst-up-right 1.5s ease-out 3.33s both;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy1 .ep01-boy-cheer-group {
  animation:
    ep01-boy-cheer 0.52s ease-in-out 0.92s 3,
    ep01-boy-highfive-jump 0.72s ease-in-out 2.95s 1;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2 .ep01-boy-cheer-group {
  animation:
    ep01-boy2-throw-and-cheer 2.6s ease-in-out,
    ep01-boy-highfive-jump 0.72s ease-in-out 2.95s 1;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy1-mouth-idle,
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-mouth-idle {
  opacity: 0;
}

.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy1-mouth-cheer,
.ep01-stage[data-scene="r2"][data-outcome="eureka"] .ep01-boy2-mouth-cheer {
  opacity: 1;
}

.ep01-hoop.is-pulsed .ep01-prop-nudge,
.ep01-basketball.is-pulsed .ep01-prop-nudge {
  animation: ep01-nudge 0.45s ease;
}

@keyframes ep01-aim-arm {
  0%, 100% { transform: rotate(-116deg); }
  50% { transform: rotate(-126deg); }
}

@keyframes ep01-aim-ball {
  0%, 100% { transform: translate(-8px, -60px); }
  50% { transform: translate(-11px, -68px); }
}

@keyframes ep01-boy2-throw-arm {
  0% { transform: rotate(-120deg); }
  12% { transform: rotate(-132deg); }
  26% { transform: rotate(-82deg); }
  65% { transform: rotate(-82deg); }
  100% { transform: rotate(-30deg); }
}

@keyframes ep01-boy2-throw-and-cheer {
  0% { transform: translateY(0); }
  4% { transform: translateY(5px); }
  11% { transform: translateY(-24px); }
  22%, 36% { transform: translateY(0); }
  44% { transform: translateY(-18px); }
  52% { transform: translateY(0); }
  60% { transform: translateY(-18px); }
  68% { transform: translateY(0); }
  76% { transform: translateY(-14px); }
  85%, 100% { transform: translateY(0); }
}

@keyframes ep01-ball-heft {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}

@keyframes ep01-ball-arc {
  0% { transform: translate(-9px, -63px) rotate(0deg); }
  8% { transform: translate(-11px, -58px) rotate(-10deg); }
  22% { transform: translate(10px, -96px) rotate(25deg); }
  30% { transform: translate(44px, -174px) rotate(95deg); }
  37% { transform: translate(74px, -218px) rotate(155deg); }
  45% { transform: translate(109px, -241px) rotate(225deg); }
  53% { transform: translate(143px, -235px) rotate(295deg); }
  61% { transform: translate(177px, -200px) rotate(365deg); }
  68% { transform: translate(207px, -146px) rotate(425deg); }
  74% { transform: translate(207px, -98px) rotate(465deg); }
  82% { transform: translate(207px, -12px) rotate(510deg); }
  90% { transform: translate(207px, 84px) rotate(545deg); }
  95% { transform: translate(211px, 58px) rotate(560deg); }
  100% { transform: translate(214px, 84px) rotate(570deg); }
}

@keyframes ep01-net-swish {
  0% { transform: scaleX(1) scaleY(1) skewX(0deg) rotate(0deg); }
  10% { transform: scaleX(1.28) scaleY(0.78) skewX(-8deg) rotate(3deg); }
  22% { transform: scaleX(0.86) scaleY(1.18) skewX(11deg) rotate(-5deg); }
  36% { transform: scaleX(1.16) scaleY(0.90) skewX(-9deg) rotate(4deg); }
  50% { transform: scaleX(0.93) scaleY(1.08) skewX(6deg) rotate(-3deg); }
  64% { transform: scaleX(1.06) scaleY(0.96) skewX(-4deg) rotate(2deg); }
  78% { transform: scaleX(0.98) scaleY(1.02) skewX(2deg) rotate(-1deg); }
  90% { transform: scaleX(1.01) scaleY(0.99) skewX(-0.8deg) rotate(0.4deg); }
  100% { transform: scaleX(1) scaleY(1) skewX(0deg) rotate(0deg); }
}

@keyframes ep01-star-burst-up {
  0% { opacity: 0; transform: translate(0, 10px) scale(0.2) rotate(0deg); }
  20% { opacity: 1; transform: translate(0, -10px) scale(1.22) rotate(8deg); }
  45% { opacity: 1; transform: translate(0, -28px) scale(1) rotate(16deg); }
  100% { opacity: 0; transform: translate(-4px, -74px) scale(0.4) rotate(32deg); }
}

@keyframes ep01-star-burst-left {
  0% { opacity: 0; transform: translate(8px, 8px) scale(0.2); }
  20% { opacity: 1; transform: translate(-8px, -8px) scale(1.2); }
  45% { opacity: 1; transform: translate(-22px, -22px) scale(1); }
  100% { opacity: 0; transform: translate(-48px, -54px) scale(0.35); }
}

@keyframes ep01-star-burst-right {
  0% { opacity: 0; transform: translate(-8px, 8px) scale(0.2); }
  20% { opacity: 1; transform: translate(8px, -8px) scale(1.2); }
  45% { opacity: 1; transform: translate(22px, -24px) scale(1); }
  100% { opacity: 0; transform: translate(48px, -58px) scale(0.35); }
}

@keyframes ep01-star-burst-up-left {
  0% { opacity: 0; transform: translate(6px, 10px) scale(0.2) rotate(0deg); }
  22% { opacity: 1; transform: translate(-6px, -12px) scale(1.18) rotate(-10deg); }
  48% { opacity: 1; transform: translate(-14px, -32px) scale(0.95) rotate(-20deg); }
  100% { opacity: 0; transform: translate(-30px, -78px) scale(0.3) rotate(-36deg); }
}

@keyframes ep01-star-burst-up-right {
  0% { opacity: 0; transform: translate(-6px, 10px) scale(0.2); }
  22% { opacity: 1; transform: translate(6px, -12px) scale(1.18); }
  48% { opacity: 1; transform: translate(15px, -30px) scale(0.95); }
  100% { opacity: 0; transform: translate(32px, -74px) scale(0.3); }
}

@keyframes ep01-boy-cheer {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-18px); }
}

@keyframes ep01-boy2-head-eureka {
  0%, 82% { transform: rotate(-10deg); }
  92%, 100% { transform: rotate(-3deg); }
}

@keyframes ep01-boy2-pupils-eureka {
  0%, 82% { transform: translate(2px, -2px); }
  92%, 100% { transform: translate(0, 0); }
}

@keyframes ep01-boy2-turn-to-friend {
  0% { transform: scaleX(1); }
  100% { transform: scaleX(-1); }
}

@keyframes ep01-boy1-highfive-step {
  0% { transform: translateX(0); }
  42% { transform: translateX(34px); }
  100% { transform: translateX(12px); }
}

@keyframes ep01-boy2-highfive-step {
  0% { transform: translateX(0); }
  42% { transform: translateX(-34px); }
  100% { transform: translateX(-12px); }
}

@keyframes ep01-boy-highfive-jump {
  0% { transform: translateY(0); }
  12% { transform: translateY(4px); }
  44% { transform: translateY(-24px); }
  82% { transform: translateY(0); }
  91% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

@keyframes ep01-boy1-highfive-arm {
  0% { transform: rotate(0deg); }
  34% { transform: rotate(-108deg); }
  44% { transform: rotate(-102deg); }
  100% { transform: rotate(0deg); }
}

@keyframes ep01-boy2-highfive-arm {
  0% { transform: rotate(-30deg); }
  34% { transform: rotate(-94deg); }
  44% { transform: rotate(-88deg); }
  100% { transform: rotate(0deg); }
}

@media (prefers-reduced-motion: reduce) {
  .ep01-earthling-upper,
  .ep01-earthling-head,
  .ep01-earthling-eyes,
  .ep01-earthling-pupils,
  .ep01-boy2-head,
  .ep01-boy2-eyes,
  .ep01-boy2-pupils,
  .ep01-boy2-turn,
  .ep01-boy1-step,
  .ep01-boy2-step,
  .ep01-thought-body,
  .ep01-mouth-talk,
  .ep01-interactive-prop,
  .ep01-prop-nudge,
  .ep01-ball-flight,
  .ep01-boy1-arm-right,
  .ep01-boy2-arm-right,
  .ep01-hoop-net,
  .ep01-swish-stars,
  .ep01-swish-star,
  .ep01-highfive-stars,
  .ep01-highfive-star,
  .ep01-boy-cheer-group {
    animation: none !important;
    transition: none !important;
  }
}
