/* Four-format cinematic showcase, based on the supplied composition. */
body.gift-home .gift-clip-formats {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding-block: clamp(78px, 8vw, 118px);
  background:
    radial-gradient(circle at 7% 12%, rgba(255, 238, 231, .58), transparent 30%),
    radial-gradient(circle at 93% 78%, rgba(222, 209, 241, .38), transparent 34%),
    repeating-linear-gradient(116deg, rgba(130, 103, 127, .035) 0 1px, transparent 1px 11px),
    repeating-linear-gradient(24deg, rgba(255, 255, 255, .16) 0 2px, transparent 2px 17px),
    linear-gradient(180deg, #fff9f8 0%, #fcf4f5 34%, #f8edf4 63%, #fff3f0 100%);
}

body.gift-home .gift-clip-formats::before,
body.gift-home .gift-clip-formats::after {
  position: absolute;
  z-index: -1;
  content: "";
  pointer-events: none;
}

body.gift-home .gift-clip-formats::before {
  inset: 0;
  opacity: .42;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(185, 156, 190, .2), transparent 60%),
    repeating-radial-gradient(ellipse at 16% 18%, rgba(255, 255, 255, .16) 0 1px, transparent 1px 13px);
  mix-blend-mode: soft-light;
}

body.gift-home .gift-clip-formats::after {
  right: -15%;
  bottom: -48%;
  left: -15%;
  height: 72%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(204, 177, 207, .16), transparent 68%);
  filter: blur(18px);
}

body.gift-home .gift-clip-formats__header {
  max-width: 820px;
  margin: 0 auto 42px;
  text-align: center;
}

body.gift-home .gift-clip-formats__header h2 {
  font-size: clamp(42px, 4.6vw, 64px);
  line-height: 1.02;
}

body.gift-home .gift-clip-formats__header > p:last-child {
  max-width: 620px;
  margin: 18px auto 0;
  color: #6f6471;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.55;
}

body.gift-home .gift-clip-formats__rail {
  position: relative;
}

body.gift-home .gift-clip-formats__grid {
  display: grid;
  max-width: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(8px, 1vw, 14px);
  margin: 0;
  overflow-x: auto;
  padding: 3px;
  scrollbar-width: none;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
}

body.gift-home .gift-clip-formats__grid::-webkit-scrollbar {
  display: none;
}

body.gift-home .gift-clip-format,
body.gift-home .gift-clip-formats.is-visible .gift-clip-format {
  position: relative;
  isolation: isolate;
  display: grid;
  min-width: 0;
  min-height: 570px;
  width: auto;
  aspect-ratio: auto;
  grid-template-rows: 94px minmax(0, 1fr) 54px 94px;
  align-items: stretch;
  gap: 0;
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .78);
  border-radius: 19px;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .64), rgba(255, 249, 250, .31)),
    rgba(255, 232, 225, .24);
  box-shadow:
    0 18px 42px rgba(132, 86, 104, .09),
    inset 0 1px 0 rgba(255, 255, 255, .9),
    inset 0 -1px 0 rgba(186, 122, 144, .07);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
  transform: none;
  scroll-snap-align: start;
  transform: none;
  transition: border-color .8s ease, background-color .8s ease, box-shadow .8s ease, transform .85s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format--story { background: linear-gradient(145deg, rgba(255, 255, 255, .66), rgba(255, 247, 245, .34)), rgba(255, 232, 225, .26); }
body.gift-home .gift-clip-format--hero { background: linear-gradient(145deg, rgba(255, 255, 255, .66), rgba(255, 244, 242, .34)), rgba(255, 225, 222, .25); }
body.gift-home .gift-clip-format--film { background: linear-gradient(145deg, rgba(255, 255, 255, .66), rgba(250, 246, 255, .36)), rgba(235, 226, 247, .27); }

body.gift-home .gift-clip-format::before,
body.gift-home .gift-clip-format::after,
body.gift-home .gift-clip-format__visual::after,
body.gift-home .gift-clip-format__overlay {
  display: none;
}

body.gift-home .gift-clip-format:hover,
body.gift-home .gift-clip-format:focus-visible,
body.gift-home .gift-clip-formats.is-visible .gift-clip-format:hover,
body.gift-home .gift-clip-formats.is-visible .gift-clip-format:focus-visible {
  border-color: rgba(255, 255, 255, .94);
  background-color: rgba(255, 249, 251, .45);
  box-shadow:
    0 22px 48px rgba(132, 86, 104, .12),
    inset 0 1px 0 rgba(255, 255, 255, .96),
    inset 0 -1px 0 rgba(186, 122, 144, .08);
  transform: translateY(-4px);
}

body.gift-home .gift-clip-format--film:hover,
body.gift-home .gift-clip-format--film:focus-visible {
  background-color: rgba(250, 247, 255, .5);
}

body.gift-home .gift-clip-format__heading {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 15px 12px 10px;
  text-align: center;
  transition: transform .42s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__heading strong {
  color: #43313b;
  font-family: "Playfair Display", Georgia, serif;
  font-size: clamp(21px, 1.72vw, 26px);
  font-weight: 600;
  letter-spacing: -.025em;
  line-height: 1.05;
  transition: color .3s ease, letter-spacing .42s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__heading small {
  margin-top: 5px;
  color: #7f6873;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.38;
  transition: color .3s ease, transform .42s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__included {
  align-self: flex-start;
  margin-top: 3px;
  padding: 5px 9px;
  border-radius: 999px;
  background: linear-gradient(105deg, #f1627b, #c98ddb);
  color: #fff;
  font-family: Manrope, Arial, sans-serif;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
}

body.gift-home .gift-clip-format:hover .gift-clip-format__heading,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__heading {
  transform: translateY(-2px);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__heading strong,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__heading strong {
  color: #b94b68;
  letter-spacing: -.035em;
}

body.gift-home .gift-clip-format:hover .gift-clip-format__heading small,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__heading small {
  color: #745c67;
  transform: translateY(1px);
}

body.gift-home .gift-clip-format__visual {
  position: relative;
  inset: auto;
  display: block;
  min-height: 0;
  margin: 0 10px;
  overflow: hidden;
  border: 0;
  border-radius: 13px;
  background: transparent;
  transition: border-radius .8s cubic-bezier(.16, 1, .3, 1), transform .85s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__visual::after {
  content: "";
  position: absolute;
  z-index: 3;
  inset: -20% -55%;
  display: block;
  background: linear-gradient(112deg, transparent 34%, rgba(255, 255, 255, .08) 43%, rgba(255, 255, 255, .38) 50%, rgba(255, 255, 255, .08) 57%, transparent 66%);
  opacity: 0;
  pointer-events: none;
  transform: translateX(-58%);
  transition: opacity .55s ease, transform 1.8s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__art,
body.gift-home .gift-clip-format:hover .gift-clip-format__art,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__art {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.94) contrast(.98);
  transform: scale(1.001);
  transition: filter .7s ease, transform 1.1s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__art,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__art {
  filter: saturate(1.03) contrast(1.01);
  animation: gift-clip-art-drift 5.6s ease-in-out infinite;
}

body.gift-home .gift-clip-format:hover .gift-clip-format__visual,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__visual {
  border-radius: 17px;
  transform: translateY(-1px);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__visual::after,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__visual::after {
  opacity: .72;
  transform: translateX(58%);
}

body.gift-home .gift-clip-format--live .gift-clip-format__art { object-position: 58% center; }
body.gift-home .gift-clip-format--story .gift-clip-format__art { object-position: 58% center; }
body.gift-home .gift-clip-format--hero .gift-clip-format__art { object-position: 61% center; }
body.gift-home .gift-clip-format--film .gift-clip-format__art { object-position: 65% center; }

body.gift-home .gift-clip-format__player {
  display: grid;
  grid-template-columns: 24px 28px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 7px;
  margin: 7px 10px 0;
  padding: 0 10px;
  border: 1px solid rgba(255, 255, 255, .7);
  border-radius: 10px;
  background: rgba(255, 255, 255, .34);
  -webkit-backdrop-filter: blur(12px) saturate(1.06);
  backdrop-filter: blur(12px) saturate(1.06);
  transition: border-color .7s ease, background-color .7s ease, transform .8s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__player i {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: #d88296;
  color: #fff;
  font-size: 8px;
  font-style: normal;
  transition: background-color .7s ease, transform .8s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__player small {
  color: #9b858e;
  font-size: 9px;
}

body.gift-home .gift-clip-format__player b {
  position: relative;
  display: block;
  height: 2px;
  background: rgba(139, 100, 115, .16);
}

body.gift-home .gift-clip-format__player b::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 34%;
  background: #dc7991;
  transition: width 1.4s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__player,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__player {
  border-color: rgba(183, 71, 104, .2);
  background: rgba(255, 255, 255, .68);
  transform: translateY(-1px);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__player i,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__player i {
  background: #c95070;
  transform: scale(1.045);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__player b::before,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__player b::before {
  width: 76%;
}

body.gift-home .gift-clip-format__player--wave b {
  height: 18px;
  background: repeating-linear-gradient(90deg, rgba(218, 112, 140, .58) 0 1px, transparent 1px 4px);
  clip-path: polygon(0 42%, 5% 20%, 10% 38%, 15% 8%, 20% 34%, 25% 16%, 30% 45%, 35% 12%, 40% 35%, 45% 4%, 50% 32%, 55% 15%, 60% 39%, 65% 9%, 70% 30%, 75% 17%, 80% 45%, 85% 14%, 90% 36%, 95% 22%, 100% 42%, 100% 58%, 95% 78%, 90% 64%, 85% 86%, 80% 55%, 75% 83%, 70% 70%, 65% 91%, 60% 61%, 55% 85%, 50% 68%, 45% 96%, 40% 65%, 35% 88%, 30% 55%, 25% 84%, 20% 66%, 15% 92%, 10% 62%, 5% 80%, 0 58%);
}

body.gift-home .gift-clip-format__player--wave b::before { display: none; }

body.gift-home .gift-clip-format__strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 3px;
  margin: 7px 10px 0;
  overflow: hidden;
  border-radius: 8px;
}

body.gift-home .gift-clip-format__strip i {
  min-width: 0;
  background-image: url("../assets/images/clip-formats/musical-film-v1.png");
  background-size: 430% auto;
  background-position: 45% 50%;
  transform: scale(1.001);
  transition: filter .7s ease, transform .9s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format__strip i:nth-child(2) { background-position: 57% 50%; }
body.gift-home .gift-clip-format__strip i:nth-child(3) { background-position: 68% 50%; }
body.gift-home .gift-clip-format__strip i:nth-child(4) { background-position: 79% 50%; }
body.gift-home .gift-clip-format__strip i:nth-child(5) { background-position: 90% 50%; }

body.gift-home .gift-clip-format:hover .gift-clip-format__strip i,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__strip i {
  filter: saturate(1.08);
  transform: scale(1.045);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__strip i:nth-child(2),
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__strip i:nth-child(2) { transition-delay: .035s; }
body.gift-home .gift-clip-format:hover .gift-clip-format__strip i:nth-child(3),
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__strip i:nth-child(3) { transition-delay: .07s; }
body.gift-home .gift-clip-format:hover .gift-clip-format__strip i:nth-child(4),
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__strip i:nth-child(4) { transition-delay: .105s; }
body.gift-home .gift-clip-format:hover .gift-clip-format__strip i:nth-child(5),
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__strip i:nth-child(5) { transition-delay: .14s; }

body.gift-home .gift-clip-format__description {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 11px 15px 15px;
  color: #6f5b66;
  font-size: 12px;
  line-height: 1.5;
  text-align: center;
  transition: color .7s ease, transform .8s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-clip-format:hover .gift-clip-format__description,
body.gift-home .gift-clip-format:focus-visible .gift-clip-format__description {
  color: #5f4a54;
  transform: translateY(-1px);
}

@keyframes gift-clip-art-drift {
  0%, 100% { transform: scale(1.018) translate3d(0, 0, 0); }
  50% { transform: scale(1.034) translate3d(-.65%, -.45%, 0); }
}

body.gift-home .gift-clip-formats__arrow {
  position: absolute;
  z-index: 8;
  top: 50%;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  padding: 0 0 3px;
  border: 1px solid rgba(137, 93, 108, .17);
  border-radius: 50%;
  background: #fffdfb;
  color: #8d7480;
  font-family: Georgia, serif;
  font-size: 25px;
  line-height: 1;
  box-shadow: none;
  transform: translateY(-50%);
  cursor: pointer;
}

body.gift-home .gift-clip-formats__arrow--prev { left: -19px; }
body.gift-home .gift-clip-formats__arrow--next { right: -19px; }

@media (max-width: 1080px) {
  body.gift-home .gift-clip-formats__grid {
    grid-template-columns: repeat(4, minmax(270px, 1fr));
    margin-inline: -3px;
  }

  body.gift-home .gift-clip-formats__arrow--prev { left: -13px; }
  body.gift-home .gift-clip-formats__arrow--next { right: -13px; }
}

@media (max-width: 760px) {
  body.gift-home .gift-clip-formats {
    padding-block: 72px 78px;
  }

  body.gift-home .gift-clip-formats__header {
    margin-bottom: 30px;
    text-align: left;
  }

  body.gift-home .gift-clip-formats__header h2 {
    font-size: clamp(39px, 11vw, 50px);
  }

  body.gift-home .gift-clip-formats__header > p:last-child {
    margin-left: 0;
  }

  body.gift-home .gift-clip-formats__grid {
    grid-template-columns: repeat(4, minmax(278px, 82vw));
    gap: 12px;
    margin-inline: -4px;
    padding-inline: 4px;
  }

  body.gift-home .gift-clip-format,
  body.gift-home .gift-clip-formats.is-visible .gift-clip-format {
    min-height: 560px;
  }

  body.gift-home .gift-clip-formats__arrow {
    top: calc(50% + 18px);
  }

  body.gift-home .gift-clip-formats__arrow--prev { left: -9px; }
  body.gift-home .gift-clip-formats__arrow--next { right: -9px; }
}

@media (max-width: 430px) {
  body.gift-home .gift-clip-formats__header > p:last-child {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.gift-home .gift-clip-format,
  body.gift-home .gift-clip-format *,
  body.gift-home .gift-clip-format:hover,
  body.gift-home .gift-clip-format:focus-visible {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }
}
