.game-page {
  overflow: hidden;
  min-width: 320px;
  min-height: 100svh;
  color: #082f62;
  background:
    radial-gradient(circle at 50% 35%, rgba(89, 191, 246, 0.34), transparent 42%),
    #061f43;
  font-family: "Mulmaru", Pretendard, sans-serif;
  overscroll-behavior: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
}

.game-page *,
.game-page *::before,
.game-page *::after {
  -webkit-user-drag: none;
  -webkit-tap-highlight-color: transparent;
}

.game-shell {
  display: grid;
  min-height: 100svh;
  place-items: center;
}

.game-canvas {
  position: relative;
  width: min(100vw, 56.25svh, 1080px);
  height: min(100svh, 177.7778vw, 1920px);
  overflow: hidden;
  background: #d9efff;
  box-shadow: 0 0 70px rgba(0, 0, 0, 0.48);
  container-type: inline-size;
  isolation: isolate;
  touch-action: manipulation;
}

.game-canvas img {
  max-width: none;
  pointer-events: none;
}

.game-canvas [hidden] {
  display: none !important;
}

.game-canvas button,
.game-canvas a {
  font-family: inherit;
}

.game-title-screen,
.game-instructions-screen,
.game-play-screen,
.game-over-screen {
  position: absolute;
  inset: 0;
}

.game-loading-screen {
  display: grid;
  position: absolute;
  z-index: 100;
  inset: 0;
  place-content: center;
  justify-items: center;
  gap: 5cqw;
  padding: 8%;
  color: #fff;
  background:
    radial-gradient(circle at 50% 42%, rgba(99, 215, 255, 0.6), transparent 38%),
    linear-gradient(180deg, #178ad2, #0755a6 68%, #063a7d);
  text-align: center;
  transition: opacity 280ms ease, visibility 280ms ease;
}

.game-loading-screen.is-complete {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.game-loading-screen > img {
  width: 88%;
  height: auto;
  filter: drop-shadow(0 1.2cqw 0 rgba(4, 42, 92, 0.28));
}

.game-loading-spinner {
  width: 11cqw;
  aspect-ratio: 1;
  border: 1.5cqw solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff578;
  border-radius: 50%;
  animation: game-loading-spin 760ms steps(8, end) infinite;
}

.game-loading-screen p {
  margin: 0;
  font-size: clamp(18px, 4.2cqw, 45px);
  letter-spacing: -0.06em;
  text-shadow: 0 0.55cqw 0 #073e78;
}

.game-title-screen {
  z-index: 2;
  overflow: hidden;
  background: #bee8ff;
  transition: opacity 360ms ease, visibility 360ms ease;
}

.game-title-screen.is-leaving {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.game-title-scene {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.game-title-logo {
  position: absolute;
  z-index: 2;
  top: 57.5%;
  left: 3.52%;
  width: 92.96%;
  height: auto;
  filter: drop-shadow(0 1.1cqw 0 rgba(5, 42, 92, 0.22));
  animation: game-title-float 2.6s ease-in-out infinite;
}

.game-image-button {
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.game-image-button img {
  width: 100%;
  height: auto;
}

.game-start-button {
  position: absolute;
  z-index: 3;
  top: 82%;
  left: 25.42%;
  width: 49.17%;
  filter: drop-shadow(0 1.4cqw 0 rgba(3, 39, 84, 0.3));
  animation: game-start-pulse 1.15s ease-in-out infinite;
  transition: filter 120ms ease, transform 120ms ease;
}

.game-start-button:hover,
.game-start-button:focus-visible {
  filter: brightness(1.08) drop-shadow(0 1.4cqw 0 rgba(3, 39, 84, 0.3));
}

.game-start-button:active {
  transform: translateY(1cqw) scale(0.97);
}

.game-start-button:disabled {
  filter: grayscale(0.45) brightness(0.78);
  cursor: wait;
  animation: none;
}

.game-instructions-screen {
  z-index: 4;
  overflow: hidden;
  color: #082f62;
  background: #bee8ff;
  opacity: 0;
  transition: opacity 280ms ease;
}

.game-instructions-screen.is-visible {
  opacity: 1;
}

.game-instructions-screen.is-leaving {
  opacity: 0;
  pointer-events: none;
}

.game-instructions-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.68) saturate(0.82);
  scale: 1.03;
}

.game-instructions-panel {
  display: grid;
  position: absolute;
  z-index: 1;
  inset: 3.2% 4%;
  grid-template-rows: auto repeat(3, minmax(0, 1fr)) auto auto;
  gap: 2.2cqw;
  box-sizing: border-box;
  padding: 4.2cqw;
  border: 0.9cqw solid #073e78;
  background: rgba(244, 251, 255, 0.96);
  box-shadow:
    inset 0 0 0 0.7cqw #76d9ff,
    0 1.5cqw 0 rgba(3, 39, 84, 0.34);
}

.game-instructions-panel header {
  text-align: center;
}

.game-instructions-panel h2 {
  margin: 0;
  color: #0755a6;
  font-size: clamp(30px, 8.4cqw, 90px);
  line-height: 1;
  letter-spacing: -0.08em;
  text-shadow: 0 0.65cqw 0 #b6e9ff;
}

.game-instructions-panel header p {
  margin: 1.7cqw 0 0;
  font-size: clamp(16px, 3.5cqw, 38px);
  line-height: 1.25;
  letter-spacing: -0.06em;
}

.game-instruction-card {
  display: grid;
  min-height: 0;
  grid-template-columns: 45% 55%;
  align-items: center;
  overflow: hidden;
  border: 0.6cqw solid #168dd2;
  background: linear-gradient(135deg, #e8f8ff, #c9efff);
  box-shadow: inset 0 -0.9cqw 0 rgba(39, 151, 212, 0.2);
}

.game-instruction-card:nth-of-type(2) {
  background: linear-gradient(135deg, #fff7d9, #ffe7a4);
}

.game-instruction-card--bonus {
  background: linear-gradient(135deg, #fff0f1, #ffd0d5);
}

.game-instruction-card__visual {
  display: flex;
  position: relative;
  height: 100%;
  min-height: 0;
  align-items: center;
  justify-content: center;
  gap: 1.3cqw;
  padding: 1.2cqw;
  box-sizing: border-box;
}

.game-instruction-card__visual > span {
  flex: none;
  color: #0755a6;
  font-family: Pretendard, sans-serif;
  font-size: 5.5cqw;
  font-weight: 900;
}

.game-instruction-card__customer {
  width: 13cqw;
  max-height: 26cqw;
  object-fit: contain;
  object-position: center bottom;
}

.game-instruction-card__medicine {
  width: 9.5cqw;
  height: auto;
  object-fit: contain;
}

.game-instruction-card__medicine--energy {
  width: 6.4cqw;
}

.game-instruction-card__treatment {
  display: flex;
  flex: none;
  min-width: 10cqw;
  height: 23cqw;
  align-items: center;
  flex-direction: column;
  justify-content: flex-end;
  gap: 1.2cqw;
}

.game-instruction-card__key {
  width: 9cqw;
  height: auto;
  flex: none;
  filter: drop-shadow(0 0.5cqw 0 rgba(4, 48, 98, 0.24));
}

.game-instruction-card__prop-stack {
  display: block;
  position: relative;
  flex: none;
  width: 18cqw;
  height: 22cqw;
}

.game-instruction-card__prop {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 18cqw;
  height: auto;
  object-fit: contain;
}

.game-instruction-card__prop-lid {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 2.3cqw;
  width: 13.5cqw;
  height: auto;
  rotate: -11deg;
  transform-origin: 70% 80%;
  filter: drop-shadow(0 0.5cqw 0 rgba(82, 12, 19, 0.2));
}

.game-instruction-card__up {
  width: 9cqw;
  height: auto;
  filter: drop-shadow(0 0.5cqw 0 rgba(82, 12, 19, 0.24));
}

.game-instruction-card > p {
  margin: 0;
  padding: 2cqw 2.4cqw 2cqw 0;
  font-size: clamp(15px, 3.4cqw, 37px);
  line-height: 1.35;
  letter-spacing: -0.07em;
  word-break: keep-all;
}

.game-instruction-card > p strong {
  display: inline-block;
  margin-bottom: 0.9cqw;
  color: #0755a6;
  font-size: 1.17em;
}

.game-instructions-tip {
  margin: 0;
  color: #0755a6;
  font-size: clamp(14px, 3.1cqw, 34px);
  line-height: 1.25;
  text-align: center;
  letter-spacing: -0.07em;
}

.game-instructions-start {
  width: 49.17%;
  margin: 0 auto;
  filter: drop-shadow(0 1cqw 0 rgba(3, 39, 84, 0.3));
  animation: game-start-pulse 1.15s ease-in-out infinite;
  transition: filter 120ms ease, transform 120ms ease;
}

.game-instructions-start:hover,
.game-instructions-start:focus-visible {
  filter: brightness(1.08) drop-shadow(0 1cqw 0 rgba(3, 39, 84, 0.3));
}

.game-instructions-start:active {
  transform: translateY(1cqw) scale(0.97);
}

.game-instructions-start:disabled {
  filter: grayscale(0.45) brightness(0.78);
  cursor: wait;
  animation: none;
}

.game-play-screen {
  z-index: 1;
  overflow: hidden;
  background: #d9efff;
}

.game-depth {
  position: absolute;
  inset: 0;
  will-change: transform;
  transition: transform 90ms linear;
}

.game-depth--background {
  z-index: 0;
  inset: -1.5%;
}

.game-depth--background img,
.game-depth--counter img {
  width: 100%;
  height: 100%;
  object-fit: fill;
}

.game-depth--subject {
  z-index: 3;
}

.game-depth--counter {
  z-index: 5;
  inset: -1.5%;
  pointer-events: none;
}

.game-timer {
  position: absolute;
  z-index: 14;
  top: 1.3%;
  left: 2.18%;
  width: 95.65%;
  aspect-ratio: 1033 / 335;
  filter: drop-shadow(0 0.8cqw 0 rgba(5, 39, 82, 0.28));
}

.game-timer > img {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
}

.game-timer__track {
  position: absolute;
  z-index: 1;
  top: 46.6%;
  right: 3.9%;
  width: 74%;
  height: 28.5%;
  overflow: hidden;
  padding: 0.75cqw;
  background: #061f43;
  box-shadow: inset 0 0 0 0.65cqw #101d4b;
}

.game-timer__fill {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, #24a8ff, #62efff 60%, #fff58c);
  box-shadow: inset 0 -0.7cqw 0 rgba(9, 83, 174, 0.32);
  transform-origin: left center;
  transition: background 160ms ease;
}

.game-timer.is-low .game-timer__fill {
  background: linear-gradient(90deg, #ff3e4f, #ff864e 72%, #ffe477);
  animation: game-timer-warning 380ms steps(2, end) infinite;
}

.game-speech {
  position: absolute;
  z-index: 4;
  top: 20.5%;
  left: 4.4%;
  width: 91.2%;
  opacity: 0;
  transform: translateY(-2cqw) scale(0.94);
}

.game-speech.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: opacity 220ms ease 260ms, transform 280ms cubic-bezier(0.2, 0.9, 0.25, 1.25) 260ms;
}

.game-speech img {
  width: 100%;
  height: auto;
}

.game-speech p {
  position: absolute;
  z-index: 1;
  top: 23.5%;
  right: 7%;
  left: 7%;
  margin: 0;
  color: #0b376d;
  font-size: clamp(25px, 7.2cqw, 78px);
  letter-spacing: -0.06em;
  line-height: 1.15;
  text-align: center;
}

.game-customer {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: -5.5%;
  left: 0;
  height: 82%;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-28%) scale(0.72);
  transform-origin: 50% 100%;
}

.game-customer.is-entering {
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: opacity 180ms ease, transform 340ms cubic-bezier(0.15, 0.78, 0.24, 1.04);
}

.game-customer.is-leaving {
  opacity: 0;
  transform: translateY(7%) scale(1.03);
  transition: opacity 170ms ease, transform 190ms ease;
}

.game-customer.is-mistake {
  animation: game-customer-shake 360ms steps(4, end);
}

.game-customer img {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: auto;
  height: auto;
  max-width: none;
  transform: translateX(-50%);
  filter: drop-shadow(0 1.2cqw 1.2cqw rgba(13, 47, 80, 0.2));
}

.game-customer img[data-customer-sprite="stuffy-idle"] { width: 62.685%; }
.game-customer img[data-customer-sprite="stuffy-success"] { width: 63.333%; }
.game-customer img[data-customer-sprite="tired-idle"] { width: 64.074%; }
.game-customer img[data-customer-sprite="tired-success"] { width: 83.148%; }

.game-prop {
  position: absolute;
  z-index: 3;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}

.game-prop__item {
  position: absolute;
  inset: 0;
}

.game-prop.is-entering {
  opacity: 1;
  transition: opacity 180ms ease;
}

.game-prop.is-leaving {
  opacity: 0;
  transition: opacity 260ms ease;
}

.game-prop__body,
.game-prop__lid {
  position: absolute;
  height: auto;
  filter: drop-shadow(0 1.1cqw 0.8cqw rgba(10, 35, 64, 0.2));
}

.game-prop__body {
  z-index: 1;
  top: var(--body-y);
  left: var(--body-x);
  width: var(--body-width);
  animation: game-prop-arrive 420ms cubic-bezier(0.15, 0.78, 0.24, 1.04) both;
}

.game-prop__lid {
  z-index: 2;
  top: var(--lid-y);
  left: var(--lid-x);
  width: var(--lid-width);
  transition: translate 300ms cubic-bezier(0.34, 0.02, 0.76, 0.24), rotate 300ms ease-in;
  animation: game-prop-arrive 420ms cubic-bezier(0.15, 0.78, 0.24, 1.04) both;
}

.game-prop.is-open .game-prop__lid {
  animation: game-lid-fly 300ms cubic-bezier(0.34, 0.02, 0.76, 0.24) forwards;
}

.game-controls {
  position: absolute;
  z-index: 10;
  inset: 0;
  pointer-events: none;
}

.game-control-character {
  position: absolute;
  z-index: 0;
  bottom: 0;
  left: 50%;
  width: 50.556%;
  height: auto;
  transform: translateX(-50%);
  filter: drop-shadow(0 0.8cqw 0.8cqw rgba(7, 62, 120, 0.22));
  pointer-events: none;
}

.game-control {
  position: absolute;
  bottom: 5.2%;
  width: 22%;
  height: 24%;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
}

.game-control--left { left: 5.5%; }
.game-control--right { right: 5.5%; }

.game-control__key {
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 58.1%;
  aspect-ratio: 138 / 108;
  transform: translateX(-50%);
  filter: drop-shadow(0 0.8cqw 0 rgba(5, 34, 77, 0.28));
}

.game-control__key img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: auto;
}

.game-control__key-down,
.game-control.is-pressed .game-control__key-up {
  visibility: hidden;
}

.game-control.is-pressed .game-control__key-down {
  visibility: visible;
}

.game-control__medicine {
  display: grid;
  position: absolute;
  right: 0;
  bottom: 33%;
  left: 0;
  height: 44%;
  place-items: end center;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 110ms ease, transform 110ms ease;
}

.game-control__medicine.is-empty {
  opacity: 0;
  transform: translateY(-1.5cqw);
  transition: none;
}

.game-control__medicine img {
  width: auto;
  max-width: 65%;
  max-height: 100%;
  height: auto;
  filter: drop-shadow(0 0.8cqw 0.55cqw rgba(7, 62, 120, 0.22));
}

.game-control--right .game-control__medicine img {
  max-width: 50%;
  max-height: 82%;
}

.game-control.is-pressed {
  transform: translateY(0.8cqw);
}

.game-control:focus-visible,
.game-up-control:focus-visible,
.game-image-button:focus-visible,
.game-side-control:focus-visible {
  outline: 0.65cqw solid #fff578;
  outline-offset: 0.7cqw;
}

.game-up-control {
  position: absolute;
  z-index: 11;
  top: 65%;
  left: 41.8%;
  width: 16.4%;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
  filter: drop-shadow(0 0.8cqw 0 rgba(5, 34, 77, 0.28));
  animation: game-up-prompt 460ms steps(2, end) infinite;
  touch-action: manipulation;
}

.game-up-control img {
  width: 100%;
  height: auto;
}

.game-up-control__two {
  position: absolute;
  inset: 0;
  visibility: hidden;
}

.game-up-control.is-alternate .game-up-control__one,
.game-up-control.is-pressed .game-up-control__one {
  visibility: hidden;
}

.game-up-control.is-alternate .game-up-control__two,
.game-up-control.is-pressed .game-up-control__two {
  visibility: visible;
}

.game-up-control.is-pressed {
  transform: translateY(0.8cqw);
}

.game-flight {
  position: absolute;
  z-index: 13;
  height: auto;
  pointer-events: none;
  filter: drop-shadow(0 1cqw 0.65cqw rgba(7, 62, 120, 0.28));
}

.game-flight--left {
  bottom: 19%;
  left: 11.4%;
  width: 14.26%;
}

.game-flight--right {
  right: 11.8%;
  bottom: 18%;
  width: 6.8%;
}

.game-flight--left.is-flying {
  animation: game-medicine-left 360ms cubic-bezier(0.2, 0.8, 0.25, 1) both;
}

.game-flight--right.is-flying {
  animation: game-medicine-right 360ms cubic-bezier(0.2, 0.8, 0.25, 1) both;
}

.game-countdown {
  display: grid;
  position: absolute;
  z-index: 30;
  inset: 0;
  place-items: center;
  background: rgba(7, 48, 94, 0.18);
  pointer-events: none;
}

.game-countdown img {
  width: auto;
  max-width: 88%;
  max-height: 26%;
  height: auto;
  filter: drop-shadow(0 1.4cqw 0 rgba(4, 37, 84, 0.34));
  animation: game-countdown-pop 620ms cubic-bezier(0.18, 0.88, 0.25, 1.2) both;
}

.game-countdown img[hidden] {
  display: none;
}

.game-feedback {
  position: absolute;
  z-index: 20;
  top: 30%;
  right: 0;
  left: 0;
  margin: 0;
  color: #fff578;
  font-size: clamp(25px, 7.2cqw, 78px);
  letter-spacing: -0.06em;
  text-align: center;
  text-shadow: 0 0.7cqw 0 #073e78, 0 0 1.5cqw rgba(0, 0, 0, 0.28);
  pointer-events: none;
}

.game-feedback.is-negative { color: #ff8290; }
.game-feedback.is-visible { animation: game-feedback 780ms ease both; }

.game-over-screen {
  display: grid;
  z-index: 50;
  place-items: center;
  background: rgba(3, 26, 60, 0.64);
  opacity: 0;
  backdrop-filter: blur(0.25cqw);
  pointer-events: none;
}

.game-over-screen.is-visible {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 360ms ease;
}

.game-over-panel {
  position: relative;
  width: 92.87%;
  aspect-ratio: 1003 / 1017;
  filter: drop-shadow(0 2cqw 2cqw rgba(3, 25, 58, 0.4));
  animation: game-over-pop 520ms cubic-bezier(0.16, 0.86, 0.2, 1.15) both;
}

.game-over-panel > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.game-over-panel > p {
  position: absolute;
  z-index: 2;
  top: 39%;
  right: 8%;
  left: 8%;
  margin: 0;
  color: #123d70;
  font-size: clamp(30px, 7.8cqw, 84px);
  letter-spacing: -0.07em;
  line-height: 1.42;
  text-align: center;
}

.game-over-panel > p strong {
  color: #f34d62;
  font-size: 1.48em;
  font-weight: normal;
}

.game-retry-button {
  position: absolute;
  z-index: 3;
  bottom: 7.5%;
  left: 6.2%;
  width: 52.9%;
  filter: drop-shadow(0 1cqw 0 rgba(5, 38, 82, 0.3));
  transition: transform 120ms ease;
}

.game-retry-button:active {
  transform: translateY(0.8cqw) scale(0.97);
}

.game-share-button {
  position: absolute;
  z-index: 3;
  right: 6.2%;
  bottom: 7.5%;
  width: 31.4%;
  filter: drop-shadow(0 1cqw 0 rgba(5, 38, 82, 0.3));
  transition: transform 120ms ease;
}

.game-share-button:active {
  transform: translateY(0.8cqw) scale(0.97);
}

.game-share-status {
  position: absolute;
  z-index: 4;
  top: calc(100% + 2.5cqw);
  right: 0;
  left: 0;
  color: #fff;
  font-size: clamp(13px, 2.7cqw, 29px);
  text-align: center;
  text-shadow: 0 0.45cqw 0 #073e78, 0 0 1.2cqw rgba(0, 0, 0, 0.45);
}

.game-side-control {
  display: none;
  position: fixed;
  z-index: 80;
  top: 50%;
  width: 112px;
  min-height: 112px;
  padding: 15px 10px;
  place-items: center;
  gap: 8px;
  color: #fff;
  background: rgba(7, 62, 120, 0.84);
  border: 3px solid rgba(255, 255, 255, 0.78);
  border-radius: 16px;
  box-shadow: 0 7px 0 rgba(3, 35, 75, 0.28);
  font-size: 18px;
  font-family: "Mulmaru", Pretendard, sans-serif;
  font-weight: normal;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transform: translateY(-50%);
}

.game-side-control--home {
  right: calc(50% + min(28.125svh, 540px) + 24px);
}

.game-side-control--sound {
  left: calc(50% + min(28.125svh, 540px) + 24px);
}

.game-side-control__icon {
  width: 48px;
  height: 48px;
  object-fit: contain;
  filter: drop-shadow(0 3px 0 rgba(3, 35, 75, 0.35));
}

@media (min-width: 900px) and (min-aspect-ratio: 4 / 3) {
  .game-side-control {
    display: grid;
  }
}

@keyframes game-loading-spin {
  to { transform: rotate(1turn); }
}

@keyframes game-title-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-1.2cqw); }
}

@keyframes game-start-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.045); }
}

@keyframes game-timer-warning {
  50% { filter: brightness(1.42); }
}

@keyframes game-customer-shake {
  0%, 100% { translate: 0; }
  25% { translate: -1.6cqw; }
  50% { translate: 1.6cqw; }
  75% { translate: -0.8cqw; }
}

@keyframes game-prop-arrive {
  from { opacity: 0; scale: 0.7; translate: 0 -8cqw; }
  to { opacity: 1; scale: 1; translate: 0 0; }
}

@keyframes game-lid-fly {
  from { translate: 0 0; rotate: 0deg; }
  to { translate: 10cqw -120cqw; rotate: 42deg; }
}

@keyframes game-up-prompt {
  50% { filter: brightness(1.2) drop-shadow(0 0.8cqw 0 rgba(5, 34, 77, 0.28)); }
}

@keyframes game-medicine-left {
  0% { transform: translate(0, 0) rotate(-8deg) scale(1); }
  70% { transform: translate(245%, -380%) rotate(8deg) scale(1.16); }
  100% { opacity: 0; transform: translate(245%, -380%) rotate(8deg) scale(0.82); }
}

@keyframes game-medicine-right {
  0% { transform: translate(0, 0) rotate(7deg) scale(1); }
  70% { transform: translate(-470%, -290%) rotate(-8deg) scale(1.16); }
  100% { opacity: 0; transform: translate(-470%, -290%) rotate(-8deg) scale(0.82); }
}

@keyframes game-countdown-pop {
  0% { opacity: 0; transform: scale(0.5); }
  64% { opacity: 1; transform: scale(1.08); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes game-feedback {
  0% { opacity: 0; transform: translateY(2cqw) scale(0.7); }
  22% { opacity: 1; transform: translateY(0) scale(1.08); }
  72% { opacity: 1; }
  100% { opacity: 0; transform: translateY(-4cqw) scale(1); }
}

@keyframes game-over-pop {
  from { opacity: 0; transform: translateY(8%) scale(0.7); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .game-title-logo,
  .game-start-button,
  .game-instructions-start,
  .game-up-control,
  .game-timer.is-low .game-timer__fill {
    animation: none;
  }

  .game-depth {
    transition: none;
  }
}

@media (max-width: 520px) {
  .game-side-control { display: none; }
}
