:root {
  color-scheme: dark;
  --ink: #efecec;
  --focus: #f4d224;
  --font-display: "Cinzel", Georgia, "Times New Roman", serif;
  --font-copy: "Source Serif 4", Georgia, "Times New Roman", serif;
  --release-art-gap: 22px;
  --section-gap: 44px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  background: #080d0f;
}

body {
  min-width: 280px;
  margin: 0;
  overflow-x: hidden;
  background: #080d0f;
  color: var(--ink);
  font-family: var(--font-display);
  font-weight: 400;
  text-transform: uppercase;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.poster {
  position: relative;
  width: 100%;
  height: max(100svh, 700px);
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
}

.hero,
.hero__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.hero {
  z-index: -1;
  background: #080d0f;
}

.hero__image {
  display: block;
  object-fit: cover;
  object-position: 50% 22.5%;
}

.artist__title,
.contact__title,
.release__status,
.copyright small {
  margin: 0;
  font: inherit;
}

.artist__title {
  position: absolute;
  top: 3.9%;
  left: 2.65%;
  line-height: 0;
}

.artist__title a {
  display: block;
}

.artist__title img {
  display: block;
  width: clamp(190px, 16.1vw, 240px);
  height: auto;
}

.composition {
  position: absolute;
  top: 24.6%;
  left: 50%;
  display: flex;
  width: min(420px, 94vw);
  flex-direction: column;
  align-items: center;
  gap: var(--section-gap);
  transform: translateX(-50%);
  text-align: center;
}

.release {
  display: flex;
  width: 100%;
  flex-direction: column;
  align-items: center;
  gap: var(--section-gap);
}

.release__art {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--release-art-gap);
}

.release__wings,
.release__title {
  display: block;
  height: auto;
}

.release__wings {
  width: clamp(110px, min(11.1vw, 19vh), 166px);
}

.release__title {
  width: clamp(220px, min(21.8vw, 40vh), 324px);
}

.release__status {
  white-space: nowrap;
  font-size: clamp(23px, 2.08vw, 30.5px);
  line-height: 1.3;
  letter-spacing: .015em;
}

.contact {
  width: min(300px, 80vw);
}

.instagram-follow {
  display: flex;
  width: min(380px, 92vw);
  flex-direction: column;
  align-items: center;
  gap: 18px;
}

.instagram-follow__copy {
  margin: 0;
  color: var(--ink);
  font-family: var(--font-copy);
  font-size: 15.5px;
  line-height: 1.2;
  text-transform: none;
}

.instagram-follow__link {
  display: inline-flex;
  width: min(278px, calc(100vw - 32px));
  min-height: 49px;
  padding: 9px 11px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ink);
  border-radius: 8px;
  background: rgb(5 10 12 / 15%);
  color: var(--ink);
  font-size: 20px;
  line-height: 1;
  text-decoration: none;
  transition: background-color 150ms ease, color 150ms ease;
}

.contact__title {
  font-size: clamp(14px, 1.22vw, 18.5px);
  line-height: 1.5;
}

.contact__links {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
}

.icon-link {
  display: inline-flex;
  width: 52px;
  height: 44px;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  transition: opacity 150ms ease;
}

.icon-link img {
  display: block;
  height: auto;
}

.icon-link__email {
  width: 38px;
}

.copyright {
  position: absolute;
  bottom: 2.25%;
  left: 1.9%;
  line-height: 1;
}

.copyright small {
  font-size: clamp(14px, 1.18vw, 17px);
  letter-spacing: .005em;
}

.icon-link:hover {
  opacity: .72;
}

.instagram-follow__link:hover {
  background: var(--ink);
  color: #101719;
}

a:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 4px;
}

@media (max-width: 700px), (max-aspect-ratio: 3 / 4) {
  .poster {
    height: max(100svh, 760px);
  }

  .hero__image {
    object-position: 50% 50%;
  }

  .artist__title {
    top: 3.2%;
    left: 50%;
    transform: translateX(-50%);
  }

  .artist__title img {
    width: clamp(184px, 50vw, 260px);
  }

  .composition {
    top: 21.15%;
  }

  .release__wings {
    width: 160px;
  }

  .release__title {
    width: min(314px, calc(100vw - 32px));
  }

  .release__status {
    font-size: 30px;
    line-height: 1.3;
  }

  .contact {
    width: min(300px, 84vw);
  }

  .contact__title {
    font-size: 17.5px;
  }

  .contact__links {
    gap: 1px;
    margin-top: 4px;
  }

  .copyright {
    right: 0;
    bottom: 3.75%;
    left: 0;
    text-align: center;
  }

  .copyright small {
    font-size: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
