@keyframes download-rise-in {
  from {
    opacity: 0;
    transform: translateY(18px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes download-stage-in {
  from {
    opacity: 0;
    transform: translateY(30px) scale(0.985);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes download-stars-orbit {
  from {
    transform: rotate(0turn) scale(var(--download-star-scale));
  }

  to {
    transform: rotate(1turn) scale(var(--download-star-scale));
  }
}

@keyframes download-stars-pulse {
  0%,
  100% {
    opacity: var(--download-star-opacity-low);
  }

  42% {
    opacity: var(--download-star-opacity-high);
  }

  68% {
    opacity: var(--download-star-opacity-mid);
  }
}

@keyframes download-sparkle-pulse {
  0%,
  100% {
    opacity: calc(var(--download-sparkle-strength) * 0.54);
    transform: translate3d(-50%, -50%, 0) scale(0.86);
  }

  46% {
    opacity: var(--download-sparkle-strength);
    transform: translate3d(-50%, -50%, 0) scale(1.08);
  }

  72% {
    opacity: calc(var(--download-sparkle-strength) * 0.72);
    transform: translate3d(-50%, -50%, 0) scale(0.96);
  }
}

@media (max-width: 1120px) {
  .download-hero-layout {
    grid-template-columns: 1fr;
    gap: 34px;
    justify-items: center;
  }

  .download-hero-content {
    align-items: center;
    max-width: 720px;
    text-align: center;
  }

  .download-actions {
    justify-content: center;
  }

  .download-platform-options {
    justify-content: center;
  }

  .download-platform-note {
    text-align: center;
  }
}

@media (orientation: portrait) {
  .download-hero-layout {
    grid-template-columns: 1fr;
    gap: 34px;
    justify-items: center;
  }

  .download-hero-content {
    align-items: center;
    max-width: 720px;
    text-align: center;
  }

  .download-actions,
  .download-platform-options {
    justify-content: center;
  }

  .download-platform-note {
    text-align: center;
  }
}

@media (max-width: 1120px), (orientation: portrait) {
  .download-hero-content {
    order: 1;
  }

  .download-product-stage {
    order: 2;
  }

  .download-feature-list {
    position: static;
    grid-template-columns: minmax(86px, 1fr) minmax(228px, 1.7fr) minmax(
        112px,
        1fr
      );
    justify-content: center;
    justify-items: stretch;
    order: 3;
    width: min(540px, calc(100vw - 96px));
    text-align: left;
  }

  .download-feature-list li {
    text-align: left;
  }

  .download-feature-list li:nth-child(3n + 2) {
    text-align: center;
  }

  .download-feature-list li:nth-child(3n) {
    text-align: right;
  }
}

@media (max-width: 900px) {
  .download-brand-lockup {
    top: 32px;
    left: 28px;
  }

  .download-hero {
    min-height: 100svh;
    padding-top: 104px;
  }

  .download-hero h1 {
    font-size: 56px;
  }
}

@media (max-width: 720px) {
  .download-main {
    padding-top: 0;
  }

  .download-hero {
    min-height: 100svh;
    padding: 118px 18px 30px;
    margin: 0;
    border-radius: 0;
  }

  .download-brand-lockup {
    top: 22px;
    left: 18px;
  }

  .download-brand-mark {
    width: 22px;
    height: 26px;
  }

  .download-hero h1 {
    font-size: 40px;
    line-height: 1.04;
  }

  .download-actions {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .download-primary,
  .download-secondary {
    justify-content: center;
  }

  .download-platform-options,
  .download-platform-note,
  .download-feature-list {
    width: 100%;
  }

  .download-feature-list {
    grid-template-columns: repeat(2, max-content);
    justify-content: center;
    justify-items: center;
    width: calc(100vw - 36px);
    margin: 0;
    text-align: center;
  }

  .download-feature-list li,
  .download-feature-list li:nth-child(3n),
  .download-feature-list li:nth-child(3n + 2) {
    text-align: center;
  }

  .download-tune-panel {
    top: auto;
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: auto;
    max-height: 44svh;
    border-radius: 20px;
  }
}

@media (max-width: 460px) {
  .download-hero {
    padding-inline: 14px;
  }

  .download-hero h1 {
    font-size: 34px;
  }

  .download-primary {
    padding-right: 18px;
    padding-left: 18px;
  }

  .download-product-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .download-hero-content,
  .download-product-stage {
    animation: none;
  }

  .download-parallax-sky,
  .download-parallax-stars,
  .download-parallax-sparkles {
    transform: translate3d(-50%, 0, 0);
  }

  .download-parallax-sky::before,
  .download-parallax-stars,
  .download-parallax-sparkles,
  .download-parallax-city,
  .download-parallax-mid,
  .download-parallax-front {
    transition: none;
  }

  .download-parallax-city {
    transform: none;
  }

  .download-parallax-mid {
    transform: none;
  }

  .download-parallax-front {
    transform: translate3d(-50%, 0, 0);
  }

  .download-star-batch.is-batch-one,
  .download-star-batch.is-batch-two,
  .download-star-batch.is-batch-three,
  .download-star-batch.is-batch-four,
  .download-star-sparkle {
    animation: none;
  }

  .download-primary,
  .download-secondary {
    transition: none;
  }

  .download-primary::before,
  .download-primary::after {
    transition: none;
  }

  .download-primary:hover,
  .download-secondary:hover {
    transform: none;
  }

  .download-editor-toggle,
  .download-tune-header button {
    transition: none;
  }

  .download-editor-toggle:hover,
  .download-editor-toggle:active,
  .download-tune-header button:hover,
  .download-tune-header button:active {
    transform: none;
  }
}
