.mh-iso-sep-host {
  position: relative;
  isolation: isolate;
}

.mh-iso-sep-host:not(.mh-iso-sep-outside-yes) {
  overflow: hidden;
}

.mh-iso-sep-host.mh-iso-sep-outside-yes {
  overflow: visible;
}

.mh-iso-sep-host.mh-iso-sep-static-bg-yes {
  overflow: visible;
}

/* In static mode, sticky must stay in a non-transformed context.
   Elementor motion effects can apply transform/filter on the host itself. */
.mh-iso-sep-host.mh-iso-sep-static-bg-yes.elementor-motion-effects-element,
.mh-iso-sep-host.mh-iso-sep-static-bg-yes.elementor-motion-effects-element-type-background {
  transform: none !important;
  filter: none !important;
  backdrop-filter: none !important;
  will-change: auto !important;
}

/* Elementor motion effects on the same host conflict with static background mode.
   Force-disable them only when static mode is enabled. */
.mh-iso-sep-host.mh-iso-sep-static-bg-yes > .elementor-motion-effects-container {
  display: none !important;
}

.mh-iso-sep-host.mh-iso-sep-static-bg-yes .elementor-motion-effects-layer {
  display: none !important;
}

.mh-iso-sep {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--mh-iso-scene-height, calc(var(--mh-iso-grass-height, 120px) + 168px));
  pointer-events: none;
  z-index: var(--mh-iso-scene-z-index, 1);
  overflow: visible;
  contain: layout;
}

.mh-iso-sep-host.mh-iso-sep-full-yes .mh-iso-sep {
  top: 0;
  bottom: 0;
  height: auto;
}

.mh-iso-sep__sticky-stage {
  position: absolute;
  inset: 0;
  overflow: visible;
  pointer-events: none;
  z-index: var(--mh-iso-scene-z-index, 1);
  isolation: isolate;
}

.mh-iso-sep__sticky-pin {
  position: sticky;
  top: var(--mh-iso-static-offset, 0px);
  left: 0;
  width: 100%;
  height: max(1px, calc(100vh - var(--mh-iso-static-offset, 0px)));
  height: max(1px, calc(100dvh - var(--mh-iso-static-offset, 0px)));
  overflow: hidden;
  pointer-events: none;
  z-index: var(--mh-iso-scene-z-index, 1);
}

.mh-iso-sep__sticky-pin > .mh-iso-sep {
  top: 0;
  bottom: auto;
  height: 100%;
}

.mh-iso-sep__sticky-pin > .mh-iso-sep__reward-layer {
  position: absolute;
  inset: 0;
  height: 100%;
}

.mh-iso-sep.mh-iso-sep--paused * {
  animation-play-state: paused !important;
}

@media (max-width: 767px) {
  .mh-iso-sep-host.mh-iso-sep-mobile-disable-yes .mh-iso-sep *,
  .mh-iso-sep-host.mh-iso-sep-mobile-disable-yes .mh-iso-sep *::before,
  .mh-iso-sep-host.mh-iso-sep-mobile-disable-yes .mh-iso-sep *::after {
    animation: none !important;
    transition: none !important;
  }

  .mh-iso-sep-host.mh-iso-sep-mobile-disable-yes > .mh-iso-sep__reward-layer {
    display: none;
  }
  .mh-iso-sep-host.mh-iso-sep-mobile-disable-yes .mh-iso-sep__sticky-pin > .mh-iso-sep__reward-layer {
    display: none;
  }

  .mh-iso-sep-host.mh-iso-sep-mobile-disable-yes .mh-iso-sep__winter-layer {
    display: none;
  }
}

/* Keep normal container content above the background scene by default. */
.mh-iso-sep-host > :not(.mh-iso-sep):not(.mh-iso-sep__reward-layer):not(.mh-iso-sep__sticky-stage) {
  position: relative;
  z-index: 2;
}

.mh-iso-sep__reward-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: visible;
  z-index: var(--mh-iso-reward-z-index, 30);
}

.mh-iso-sep__debug {
  position: absolute;
  top: var(--mh-iso-debug-y, 10px);
  left: var(--mh-iso-debug-x, 10px);
  transform: var(--mh-iso-debug-transform, none);
  z-index: 120;
  margin: 0;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(7, 17, 28, 0.72);
  border: 1px solid rgba(136, 173, 201, 0.32);
  color: #e8f4ff;
  font: 600 11px/1.35 "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  white-space: pre;
  pointer-events: none;
}

.mh-iso-sep__debug-characters {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: var(--mh-iso-debug-chars-y, 0px);
  z-index: 4;
  display: none;
  align-items: flex-end;
  gap: 0;
  pointer-events: none;
}

.mh-iso-sep__debug-character + .mh-iso-sep__debug-character {
  margin-left: var(--mh-iso-debug-chars-gap, 12px);
}

.mh-iso-sep__debug-character {
  width: var(--mh-iso-debug-chars-width, 66px);
  height: calc(var(--mh-iso-debug-chars-width, 66px) * 1.8788);
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: hidden;
}

.mh-iso-sep__debug-character > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
}

.mh-iso-sep__tone-resource {
  filter: brightness(1) contrast(1);
}

.mh-iso-sep-host.mh-iso-sep-resource-night-yes .mh-iso-sep__tone-resource {
  animation: mh-iso-resource-night-tone var(--mh-iso-cycle-duration, 120s) linear infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s);
  will-change: filter;
}

/* Keep hangar squash animation untouched and tone only its visual content. */
.mh-iso-sep-host.mh-iso-sep-resource-night-yes .mh-iso-sep__hangar.mh-iso-sep__tone-resource {
  animation: none;
}

.mh-iso-sep-host.mh-iso-sep-resource-night-yes .mh-iso-sep__hangar.mh-iso-sep__tone-resource > .mh-iso-sep__hangar-svg-slot {
  filter: brightness(1) contrast(1);
  animation: mh-iso-resource-night-tone var(--mh-iso-cycle-duration, 120s) linear infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s);
  will-change: filter;
}

.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__sky-layer,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__stars,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__stars-rotor,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__orbiter--sun,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__orbiter--moon,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__body--sun,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__body--moon,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__star {
  animation: none !important;
  transition: none !important;
}

.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__tone-resource,
.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__hangar.mh-iso-sep__tone-resource > .mh-iso-sep__hangar-svg-slot {
  animation: none !important;
}

.mh-iso-sep-host.mh-iso-sep-scroll-time-yes .mh-iso-sep__hangar.mh-iso-sep__tone-resource {
  filter: none !important;
}

.mh-iso-sep-host.mh-iso-sep-scroll-time-yes.mh-iso-sep-resource-night-yes .mh-iso-sep__tone-resource {
  filter:
    brightness(calc(1 - ((1 - var(--mh-iso-resource-night-brightness, 0.79)) * var(--mh-iso-resource-night-live, 0))))
    contrast(calc(1 + ((var(--mh-iso-resource-night-contrast, 1.105) - 1) * var(--mh-iso-resource-night-live, 0))));
}

.mh-iso-sep-host.mh-iso-sep-scroll-time-yes.mh-iso-sep-resource-night-yes .mh-iso-sep__hangar.mh-iso-sep__tone-resource {
  filter: none !important;
}

.mh-iso-sep-host.mh-iso-sep-scroll-time-yes.mh-iso-sep-resource-night-yes .mh-iso-sep__hangar.mh-iso-sep__tone-resource > .mh-iso-sep__hangar-svg-slot {
  filter:
    brightness(calc(1 - ((1 - var(--mh-iso-resource-night-brightness, 0.79)) * var(--mh-iso-resource-night-live, 0))))
    contrast(calc(1 + ((var(--mh-iso-resource-night-contrast, 1.105) - 1) * var(--mh-iso-resource-night-live, 0))));
}

@keyframes mh-iso-resource-night-tone {
  0%,
  12% {
    filter: brightness(var(--mh-iso-resource-night-brightness, 0.79)) contrast(var(--mh-iso-resource-night-contrast, 1.105));
  }
  22% {
    filter: brightness(calc((1 + var(--mh-iso-resource-night-brightness, 0.79)) * 0.5)) contrast(calc((1 + var(--mh-iso-resource-night-contrast, 1.105)) * 0.5));
  }
  34%,
  62% {
    filter: brightness(1) contrast(1);
  }
  74% {
    filter: brightness(calc((1 + var(--mh-iso-resource-night-brightness, 0.79)) * 0.5)) contrast(calc((1 + var(--mh-iso-resource-night-contrast, 1.105)) * 0.5));
  }
  86%,
  100% {
    filter: brightness(var(--mh-iso-resource-night-brightness, 0.79)) contrast(var(--mh-iso-resource-night-contrast, 1.105));
  }
}

.mh-iso-sep__sky {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  z-index: 1;
  overflow: hidden;
  contain: paint;
  background: linear-gradient(180deg, #081127 0%, #12203f 56%, #20365d 100%);
}

.mh-iso-sep__sky::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      #01314B 0%,
      #01314B var(--mh-iso-top-dark-fade, 32%),
      rgba(1, 49, 75, 0.76) calc(var(--mh-iso-top-dark-fade, 32%) + 10%),
      rgba(1, 49, 75, 0) calc(var(--mh-iso-top-dark-fade, 32%) + 28%)
    );
}

.mh-iso-sep__sky-layer {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0;
  will-change: opacity;
  animation-duration: var(--mh-iso-cycle-duration, 120s);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s);
}

.mh-iso-sep__sky-layer--day {
  background: linear-gradient(180deg, #57a4e7 0%, #7ec0ef 54%, #a9d8f5 100%);
  animation-name: mh-iso-sky-day;
}

.mh-iso-sep__sky-layer--dawn {
  background: linear-gradient(180deg, #915f67 0%, #ca8a69 50%, #f2c48c 100%);
  animation-name: mh-iso-sky-dawn;
}

.mh-iso-sep__sky-layer--dusk {
  background: linear-gradient(180deg, #5e4264 0%, #8e5b68 48%, #c07a66 100%);
  animation-name: mh-iso-sky-dusk;
}

@keyframes mh-iso-sky-day {
  0% { opacity: 0; }
  16% { opacity: 0; }
  28% { opacity: 1; }
  56% { opacity: 1; }
  68% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes mh-iso-sky-dawn {
  0% { opacity: 0; }
  8% { opacity: 0; }
  18% { opacity: 0.9; }
  30% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes mh-iso-sky-dusk {
  0% { opacity: 0; }
  58% { opacity: 0; }
  72% { opacity: 0.88; }
  84% { opacity: 0; }
  100% { opacity: 0; }
}

.mh-iso-sep__stars {
  position: absolute;
  inset: 0;
  z-index: 3;
  opacity: 0;
  pointer-events: none;
  animation: mh-iso-stars-fade var(--mh-iso-cycle-duration, 120s) linear infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s);
  --mh-iso-stars-solid-end: clamp(18%, calc(var(--mh-iso-top-dark-fade, 32%) + 12%), 68%);
  --mh-iso-stars-fade-end: calc(var(--mh-iso-stars-solid-end) + 22%);
  -webkit-mask-image:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 1) 0%,
      rgba(0, 0, 0, 1) var(--mh-iso-stars-solid-end),
      rgba(0, 0, 0, 0.6) calc(var(--mh-iso-stars-solid-end) + 10%),
      rgba(0, 0, 0, 0) var(--mh-iso-stars-fade-end)
    );
  mask-image:
    linear-gradient(
      180deg,
      rgba(0, 0, 0, 1) 0%,
      rgba(0, 0, 0, 1) var(--mh-iso-stars-solid-end),
      rgba(0, 0, 0, 0.6) calc(var(--mh-iso-stars-solid-end) + 10%),
      rgba(0, 0, 0, 0) var(--mh-iso-stars-fade-end)
    );
}

.mh-iso-sep__stars-rotor {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(100% * var(--mh-iso-stars-rotor-scale, 1.9));
  height: calc(100% * var(--mh-iso-stars-rotor-scale, 1.9));
  transform: translate(-50%, -50%);
  transform-origin: 50% 50%;
  pointer-events: none;
  animation: mh-iso-stars-rotate var(--mh-iso-cycle-duration-2, 240s) linear infinite;
  animation-delay: var(--mh-iso-cycle-delay-2, 0s);
}

.mh-iso-sep__celestial {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  overflow: hidden;
  contain: paint;
  opacity: var(--mh-iso-show-celestial, 1);
}

.mh-iso-sep__orbiter {
  position: absolute;
  left: 50%;
  bottom: -2%;
  width: 0;
  height: var(--mh-iso-celestial-orbit-height, 124%);
  transform-origin: 50% 100%;
  will-change: transform;
}

.mh-iso-sep__orbiter--sun {
  animation: mh-iso-sun-orbit var(--mh-iso-cycle-duration, 120s) linear infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s);
}

.mh-iso-sep__orbiter--moon {
  animation: mh-iso-moon-orbit var(--mh-iso-cycle-duration, 120s) linear infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s);
}

.mh-iso-sep__body {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  border-radius: 50%;
  will-change: transform, opacity;
}

.mh-iso-sep__body--sun {
  width: clamp(26px, 4.4vw, 58px);
  height: clamp(26px, 4.4vw, 58px);
  background:
    radial-gradient(circle at 34% 34%, rgba(255, 251, 232, 0.98) 0%, rgba(255, 231, 129, 0.94) 36%, rgba(255, 187, 61, 0.92) 72%, rgba(233, 133, 15, 0.86) 100%);
  box-shadow:
    0 0 0 0.8px rgba(255, 243, 189, 0.74),
    0 0 18px rgba(255, 198, 82, 0.58),
    0 0 36px rgba(255, 169, 44, 0.35);
  animation:
    mh-iso-sun-visibility var(--mh-iso-cycle-duration, 120s) linear infinite,
    mh-iso-celestial-pulse 7.8s ease-in-out infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s), 0s;
}

.mh-iso-sep__body--moon {
  width: clamp(22px, 3.9vw, 52px);
  height: clamp(22px, 3.9vw, 52px);
  background:
    radial-gradient(circle at 34% 30%, rgba(255, 255, 255, 0.98) 0%, rgba(230, 238, 255, 0.94) 48%, rgba(171, 185, 220, 0.9) 100%);
  box-shadow:
    0 0 0 0.8px rgba(214, 224, 245, 0.65),
    0 0 14px rgba(166, 184, 232, 0.46),
    0 0 28px rgba(113, 139, 215, 0.28);
  animation:
    mh-iso-moon-visibility var(--mh-iso-cycle-duration, 120s) linear infinite,
    mh-iso-celestial-pulse 9.4s ease-in-out infinite;
  animation-delay: var(--mh-iso-cycle-delay, 0s), 0s;
}

.mh-iso-sep__body--moon::after {
  content: '';
  position: absolute;
  inset: 22% 28% 34% 24%;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 28%, rgba(145, 160, 196, 0.38), rgba(145, 160, 196, 0.06));
}

@keyframes mh-iso-sun-orbit {
  from { transform: translateX(-50%) rotate(-135deg); }
  to { transform: translateX(-50%) rotate(225deg); }
}

@keyframes mh-iso-moon-orbit {
  from { transform: translateX(-50%) rotate(45deg); }
  to { transform: translateX(-50%) rotate(405deg); }
}

@keyframes mh-iso-sun-visibility {
  0% { opacity: 0; }
  12% { opacity: 0; }
  22% { opacity: 0.82; }
  34% { opacity: 0.98; }
  62% { opacity: 0.98; }
  74% { opacity: 0.18; }
  82% { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes mh-iso-moon-visibility {
  0% { opacity: 0.95; }
  16% { opacity: 0.95; }
  28% { opacity: 0.25; }
  36% { opacity: 0; }
  64% { opacity: 0; }
  74% { opacity: 0.35; }
  86% { opacity: 0.95; }
  100% { opacity: 0.95; }
}

@keyframes mh-iso-celestial-pulse {
  0% { transform: translateX(-50%) scale(0.98); }
  50% { transform: translateX(-50%) scale(1.03); }
  100% { transform: translateX(-50%) scale(0.98); }
}

@keyframes mh-iso-stars-fade {
  0% { opacity: 1; }
  12% { opacity: 0.94; }
  24% { opacity: 0.3; }
  38% { opacity: 0.06; }
  62% { opacity: 0.06; }
  76% { opacity: 0.34; }
  88% { opacity: 0.9; }
  100% { opacity: 1; }
}

@keyframes mh-iso-stars-rotate {
  from { transform: translate(-50%, -50%) rotate(0deg) scale(1); }
  to { transform: translate(-50%, -50%) rotate(360deg) scale(1); }
}

.mh-iso-sep__star {
  position: absolute;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.98) 0%, rgba(221, 235, 255, 0.82) 58%, rgba(200, 220, 255, 0) 100%);
  box-shadow: 0 0 4px rgba(189, 213, 255, 0.42);
  animation: mh-iso-star-twinkle var(--mh-iso-star-twinkle-duration, 3.2s) ease-in-out infinite;
  animation-delay: var(--mh-iso-star-twinkle-delay, 0s);
}

.mh-iso-sep__star--bright {
  box-shadow:
    0 0 5px rgba(229, 240, 255, 0.55),
    0 0 9px rgba(197, 218, 255, 0.38);
}

@keyframes mh-iso-star-twinkle {
  0% { transform: scale(0.88); }
  40% { transform: scale(1.15); }
  100% { transform: scale(0.9); }
}

.mh-iso-sep__blades {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--mh-iso-grass-height, 120px);
  overflow: hidden;
  z-index: 5;
  box-shadow: inset 0 -8px 10px rgba(24, 74, 31, 0.16);
}

.mh-iso-sep__tuft,
.mh-iso-sep__tuft::before,
.mh-iso-sep__tuft::after {
  background:
    linear-gradient(
      170deg,
      color-mix(in srgb, var(--mh-iso-grass-top, #67c97a) 88%, white 12%) 0%,
      var(--mh-iso-blade-color, #2a8f45) 42%,
      color-mix(in srgb, var(--mh-iso-grass-bottom, #1f7a3a) 92%, black 8%) 100%
    );
}

.mh-iso-sep__tuft {
  position: absolute;
  bottom: -1px;
  width: var(--tuft-width, 4px);
  height: var(--tuft-height, 56px);
  transform-origin: 50% 100%;
  border-radius: 82% 18% 66% 26% / 85% 20% 70% 15%;
  box-shadow:
    inset 0 0 0.45px rgba(255, 255, 255, 0.26),
    inset -0.8px -2px 1.2px rgba(13, 49, 23, 0.24);
  animation-name: mh-iso-tuft-sway;
  animation-duration: var(--tuft-duration, 3.2s);
  animation-delay: var(--tuft-delay, 0s);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

.mh-iso-sep__tuft::before,
.mh-iso-sep__tuft::after {
  content: '';
  position: absolute;
  bottom: 0;
  width: calc(var(--tuft-width, 4px) * 0.84);
  border-radius: 82% 18% 66% 26% / 85% 20% 70% 15%;
  box-shadow:
    inset 0 0 0.35px rgba(255, 255, 255, 0.18),
    inset -0.6px -1.4px 1px rgba(13, 49, 23, 0.18);
}

.mh-iso-sep__tuft::before {
  height: calc(var(--tuft-height, 56px) * 0.78);
  left: calc(var(--tuft-width, 4px) * -0.62);
  transform-origin: 50% 100%;
  transform: rotate(calc(var(--tuft-spread, 12deg) * -1));
}

.mh-iso-sep__tuft::after {
  height: calc(var(--tuft-height, 56px) * 0.66);
  left: calc(var(--tuft-width, 4px) * 0.62);
  transform-origin: 50% 100%;
  transform: rotate(var(--tuft-spread, 12deg));
}

.mh-iso-sep__tuft--alt {
  border-radius: 68% 32% 84% 20% / 84% 16% 88% 12%;
  opacity: 0.9;
}

.mh-iso-sep-host.mh-iso-sep-grass-anim-no .mh-iso-sep__tuft {
  animation: none !important;
  transform: translateX(var(--tuft-shift, 0px)) rotate(calc(var(--tuft-rot, 4deg) * -0.28));
}

.mh-iso-sep-host.mh-iso-sep-show-grass-no .mh-iso-sep__blades {
  display: none !important;
}

@keyframes mh-iso-tuft-sway {
  0% {
    transform: translateX(var(--tuft-shift, 0px)) rotate(calc(var(--tuft-rot, 4deg) * -0.68));
  }
  50% {
    transform: translateX(calc(var(--tuft-shift, 0px) * -1)) rotate(var(--tuft-rot, 4deg));
  }
  100% {
    transform: translateX(var(--tuft-shift, 0px)) rotate(calc(var(--tuft-rot, 4deg) * -0.68));
  }
}

.mh-iso-sep__hangar {
  position: absolute;
  left: var(--mh-iso-hangar-x, 72%);
  bottom: var(--mh-iso-hangar-y, 0px);
  width: var(--mh-iso-hangar-width, 30%);
  aspect-ratio: 242 / 107;
  transform: translateX(-50%);
  transform-origin: 50% 92%;
  will-change: transform;
  z-index: 4;
  pointer-events: auto;
}

.mh-iso-sep__hangar-squash-target {
  transform-box: fill-box;
  transform-origin: 50% 92%;
  will-change: transform;
}

.mh-iso-sep__hangar-squash-target--squash {
  animation: mh-iso-hangar-target-squash 420ms cubic-bezier(0.19, 0.76, 0.24, 1);
}

.mh-iso-sep__hangar-svg #hangar,
.mh-iso-sep__hangar-svg [id="hangar"],
.mh-iso-sep__hangar-svg [data-name="hangar"] {
  transform-box: fill-box;
  transform-origin: 50% 92%;
}

@keyframes mh-iso-hangar-target-squash {
  0% { transform: scale(1, 1); }
  27% { transform: scale(1.045, 0.93); }
  56% { transform: scale(0.985, 1.035); }
  100% { transform: scale(1, 1); }
}

.mh-iso-sep__hangar-shadow {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 2px;
  height: 14%;
  background: radial-gradient(ellipse at center, rgba(11, 22, 28, 0.2), rgba(11, 22, 28, 0));
  filter: blur(1.4px);
}

.mh-iso-sep__hangar-svg-slot,
.mh-iso-sep__hangar-svg,
.mh-iso-sep__hangar-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.mh-iso-sep__hangar-svg {
  filter: drop-shadow(0 8px 14px rgba(23, 37, 46, 0.18));
}

.mh-iso-sep__hangar-fallback {
  border-radius: 4px;
  background: linear-gradient(180deg, #667079 0%, #454d54 100%);
}

.mh-iso-sep__winter-layer {
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  overflow: hidden;
  opacity: var(--mh-iso-show-winter-activity, 0);
}

.mh-iso-sep__winter-vehicle {
  position: absolute;
  left: 0;
  bottom: calc(var(--mh-iso-winter-door-bottom, 0px) + var(--mh-iso-winter-vehicle-y, 0px));
  width: var(--mh-iso-winter-vehicle-width, 120px);
  max-width: min(58vw, 460px);
  transform: translate3d(var(--mh-iso-winter-x, -260px), 0, 0) scale(var(--mh-iso-winter-scale, 1));
  transform-origin: 50% 78%;
  opacity: 0;
  transition: transform var(--mh-iso-winter-move-ms, 1320ms) linear, opacity var(--mh-iso-winter-fade-ms, 280ms) linear;
  will-change: opacity, transform;
}

.mh-iso-sep__winter-vehicle-body {
  display: block;
  width: 100%;
  transform: scaleX(var(--mh-iso-winter-dir, 1));
  transform-origin: 50% 50%;
}

.mh-iso-sep__winter-rig {
  position: relative;
  display: block;
  width: 100%;
  --mh-iso-winter-car-width: 74%;
  --mh-iso-winter-car-x: 26%;
  animation: mh-iso-winter-suspension var(--mh-iso-winter-bounce-duration, 2.8s) ease-in-out infinite;
  animation-delay: var(--mh-iso-winter-bounce-delay, 0s);
  transform-origin: 50% 82%;
}

.mh-iso-sep__winter-part {
  display: block;
}

.mh-iso-sep__winter-part--car {
  position: relative;
  z-index: 2;
  width: var(--mh-iso-winter-car-width, 100%);
  margin-left: var(--mh-iso-winter-car-x, 0%);
}

.mh-iso-sep__winter-part--trailer {
  position: absolute;
  left: var(--mh-iso-winter-trailer-x, -34%);
  bottom: 0;
  width: var(--mh-iso-winter-trailer-width, 50%);
  z-index: 1;
  pointer-events: none;
  overflow: visible;
}

.mh-iso-sep__winter-remorque {
  position: relative;
  display: block;
  width: 100%;
  z-index: 2;
}

.mh-iso-sep__winter-boat {
  position: absolute;
  left: 12%;
  width: 76%;
  bottom: calc(31% + var(--mh-iso-winter-boat-y, 0px));
  z-index: 1;
  pointer-events: none;
  transform: scale(calc(var(--mh-iso-winter-boat-scale, 100) / 100));
  transform-origin: 50% 100%;
}

.mh-iso-sep__winter-svg--boat {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 5px 10px rgba(15, 32, 49, 0.24));
}

.mh-iso-sep__winter-svg {
  display: block;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 7px 14px rgba(15, 32, 49, 0.35));
}

.mh-iso-sep__reward {
  position: absolute;
  left: var(--coin-x, 70%);
  bottom: var(--mh-iso-coin-bottom, var(--mh-iso-reward-start-bottom, 10px));
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  font-weight: 700;
  color: #8a580f;
  animation: mh-iso-coin-float var(--mh-iso-reward-duration, 1320ms) ease-out forwards;
  z-index: 1;
  will-change: transform, opacity;
}

.mh-iso-sep__reward--coin {
  width: var(--mh-iso-reward-size, 26px);
  height: var(--mh-iso-reward-size, 26px);
  border-radius: 50%;
  background: radial-gradient(circle at 28% 28%, #fff6c9, #ffcb47 46%, #e09b1f 100%);
  border: 1px solid rgba(128, 83, 12, 0.48);
  box-shadow: 0 6px 12px rgba(255, 179, 32, 0.38), inset 0 0 0 1px rgba(255, 243, 187, 0.4);
  color: #8a580f;
  font-size: calc(var(--mh-iso-reward-size, 26px) * 0.54);
  line-height: calc(var(--mh-iso-reward-size, 26px) - 2px);
}

.mh-iso-sep__reward--coin.mh-iso-sep__reward--svg {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.mh-iso-sep__reward-coin-svg {
  display: block;
  width: 100%;
  height: 100%;
}

.mh-iso-sep__reward--bill {
  width: calc(var(--mh-iso-reward-size, 26px) * 1.48);
  height: calc(var(--mh-iso-reward-size, 26px) * 0.84);
  border-radius: calc(var(--mh-iso-reward-size, 26px) * 0.2);
  background: linear-gradient(180deg, #f7f0c8 0%, #e7dfa8 100%);
  border: 1px solid rgba(122, 109, 59, 0.52);
  box-shadow: 0 7px 12px rgba(138, 121, 62, 0.28), inset 0 0 0 1px rgba(255, 255, 255, 0.28);
  font-size: calc(var(--mh-iso-reward-size, 26px) * 0.46);
  line-height: 1;
}

.mh-iso-sep__reward--bill::before {
  content: '';
  position: absolute;
  inset: calc(var(--mh-iso-reward-size, 26px) * 0.12) calc(var(--mh-iso-reward-size, 26px) * 0.23);
  border-radius: calc(var(--mh-iso-reward-size, 26px) * 0.15);
  border: 1px dashed rgba(122, 109, 59, 0.35);
}

@keyframes mh-iso-coin-float {
  0% {
    opacity: 0;
    transform: translate3d(-50%, calc(var(--mh-iso-reward-size, 26px) * 0.4), 0) scale(0.84);
  }
  22% {
    opacity: 1;
    transform: translate3d(-50%, calc(var(--mh-iso-reward-size, 26px) * -0.38), 0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate3d(-50%, calc(var(--mh-iso-reward-rise-height, 72px) * -1), 0) scale(0.96);
  }
}

@keyframes mh-iso-winter-suspension {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
  }
  22% {
    transform: translate3d(0, calc(var(--mh-iso-winter-suspension-level, 18) * -0.095px), 0) scale3d(
      calc(1 - (var(--mh-iso-winter-suspension-level, 18) * 0.00110)),
      calc(1 + (var(--mh-iso-winter-suspension-level, 18) * 0.00175)),
      1
    );
  }
  48% {
    transform: translate3d(0, calc(var(--mh-iso-winter-suspension-level, 18) * 0.145px), 0) scale3d(
      calc(1 + (var(--mh-iso-winter-suspension-level, 18) * 0.00135)),
      calc(1 - (var(--mh-iso-winter-suspension-level, 18) * 0.00200)),
      1
    );
  }
  68% {
    transform: translate3d(0, calc(var(--mh-iso-winter-suspension-level, 18) * -0.052px), 0) scale3d(
      calc(1 - (var(--mh-iso-winter-suspension-level, 18) * 0.00078)),
      calc(1 + (var(--mh-iso-winter-suspension-level, 18) * 0.00110)),
      1
    );
  }
}

@media (prefers-reduced-motion: reduce) {
  .mh-iso-sep * {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
  }
}
