@layer ds-sections {
  /* #region MARK:panorama */
  .ds-panorama {
    position: relative;
    padding-bottom: clamp(24px, 3vw, 40px);
    background: var(--ds-white);
  }

  .ds-panorama__inner {
    position: relative;
  }

  .ds-panorama__img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: 50% 52%;
    background: var(--ds-night);
  }

  .ds-panorama__label {
    position: absolute;
    right: var(--ds-edge);
    bottom: calc(clamp(24px, 3vw, 40px) * -1 + 4px);
    display: grid;
    gap: 0.9em;
    padding: clamp(12px, 1.5vw, 24px) clamp(16px, 2.1vw, 32px) clamp(12px, 1.6vw, 26px);
    background: var(--ds-label);
    color: var(--ds-white);
    line-height: 1;
  }

  .ds-panorama__station {
    color: var(--ds-label-accent);
    font-size: clamp(10px, 0.9vw, 13px);
    font-weight: 700;
    letter-spacing: 0.12em;
  }

  .ds-panorama__name {
    padding-left: 0.1em;
    font-family: var(--ds-font-en);
    font-size: clamp(11px, 1.15vw, 17px);
    font-weight: 500;
    line-height: 2;
    letter-spacing: 0.34em;
  }

  @media (min-width: 640px) {
    .ds-panorama__img {
      aspect-ratio: 16 / 9;
    }
  }

  @media (min-width: 1024px) {
    .ds-panorama__img {
      aspect-ratio: 2.2;
    }
  }
  /* #endregion */
}

/* #region MARK:panorama */
.is-motion .ds-panorama {
  padding-bottom: 0;
  background: var(--ds-night);
}

.is-motion .ds-panorama__inner {
  height: 100vh;
  height: 100lvh;
  overflow: hidden;
}

.is-motion .ds-panorama__media {
  position: absolute;
  inset: 0;
  transform-origin: 50% 42%;
}

.is-motion .ds-panorama__img {
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: cover;
  object-position: 50% 42%;
}

.is-motion .ds-panorama__label {
  bottom: calc(100lvh - 100svh + var(--ds-header-h) + clamp(24px, 6vh, 64px));
  z-index: 1;
}

.is-motion .ds-panorama__veil {
  --ds-pano-rx: 0.1%;
  --ds-pano-ry: 0.1%;
  position: absolute;
  inset: 0;
  background: radial-gradient(var(--ds-pano-rx) var(--ds-pano-ry) at 50% 50%,
    transparent 0 58%,
    color-mix(in srgb, var(--ds-steel) 30%, transparent) 74%,
    color-mix(in srgb, var(--ds-night) 70%, transparent) 100%);
  pointer-events: none;
}

.is-motion .ds-panorama__gl {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  pointer-events: none;
}
/* #endregion */
