/* Immersive opening: the story sits inside the portrait instead of beside it. */
body.gift-home .gift-hero {
  position: relative;
  isolation: isolate;
  overflow: clip;
  padding-block: clamp(34px, 4vw, 62px) clamp(40px, 5vw, 78px);
  background:
    radial-gradient(ellipse at 73% 42%, rgba(255, 222, 174, .4), transparent 28%),
    radial-gradient(ellipse at 91% 18%, rgba(239, 189, 231, .33), transparent 31%),
    linear-gradient(118deg, #fff7f2 0%, #fff4ee 43%, #faedf7 100%);
}

body.gift-home .gift-hero::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  content: "";
  background:
    radial-gradient(ellipse 37% 55% at -2% 42%, rgba(255, 255, 255, .72), transparent 73%),
    radial-gradient(ellipse 32% 44% at 48% 12%, rgba(255, 230, 210, .35), transparent 74%),
    linear-gradient(104deg, rgba(255, 248, 244, .95) 0%, rgba(255, 246, 242, .55) 48%, rgba(255, 243, 246, .08) 78%);
  opacity: .92;
}

body.gift-home .gift-hero::after {
  position: absolute;
  z-index: 0;
  inset: auto -10% -38% 31%;
  height: 55%;
  border-radius: 50%;
  content: "";
  background: radial-gradient(ellipse at center, rgba(244, 187, 217, .36) 0%, rgba(242, 209, 246, .18) 42%, transparent 72%);
  filter: blur(38px);
  pointer-events: none;
}

body.gift-home .gift-hero__grid {
  position: relative;
  z-index: 2;
  align-items: center;
}

/* The left side bar is glass, with the portrait barely visible through it. */
body.gift-home .gift-hero__copy {
  position: relative;
  z-index: 2;
  max-width: min(585px, 100%);
  padding: clamp(27px, 3.15vw, 46px) clamp(24px, 3.2vw, 50px);
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 30px 46px 34px 26px;
  background: linear-gradient(130deg, rgba(255, 255, 255, .53), rgba(255, 249, 249, .3) 62%, rgba(250, 244, 255, .23));
  box-shadow:
    0 24px 64px rgba(124, 71, 93, .1),
    inset 0 1px 0 rgba(255, 255, 255, .8),
    inset -1px -1px 0 rgba(172, 112, 143, .055);
  -webkit-backdrop-filter: blur(19px) saturate(1.08);
  backdrop-filter: blur(19px) saturate(1.08);
  overflow: hidden;
}

body.gift-home .gift-hero__copy::before {
  display: none;
}

body.gift-home .gift-hero__copy > * { position: relative; z-index: 1; }

body.gift-home .gift-hero__copy h1 { max-width: 500px; }
body.gift-home .gift-hero__lead { max-width: 472px; }

/* Larger occasion choices now sit right after the story prompt. */
body.gift-home .gift-hero__copy .gift-chips {
  gap: 9px;
  margin-top: 23px;
  margin-bottom: 0;
}

body.gift-home .gift-hero__copy .gift-chips li {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid rgba(204, 111, 145, .17);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .74), rgba(255, 243, 247, .4));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .82), 0 7px 18px rgba(143, 74, 101, .055);
  color: #856b77;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .002em;
  transition: transform .38s cubic-bezier(.16, 1, .3, 1), border-color .32s ease, background .32s ease;
}

body.gift-home .gift-hero__copy .gift-chips li svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: none;
  stroke: #d35f82;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.55;
}

body.gift-home .gift-hero__copy .gift-chips li:hover {
  border-color: rgba(210, 88, 130, .32);
  background: rgba(255, 252, 253, .76);
  transform: translateY(-2px);
}

body.gift-home .gift-hero__copy .gift-hero__actions { margin-top: 22px; }

/* The woman, card, and ambient layers drift at different depths. */
body.gift-home .gift-hero__visual {
  z-index: 3;
  transform: translate3d(12px, -4px, 0);
  transition: transform 1.1s cubic-bezier(.16, 1, .3, 1);
}

body.gift-home .gift-hero__image-wrap {
  filter: drop-shadow(0 24px 36px rgba(120, 71, 90, .14));
  transition: transform 1.35s cubic-bezier(.16, 1, .3, 1), filter 1.1s ease;
}

body.gift-home .gift-hero__song-card {
  transform: translate3d(-17px, 16px, 0) rotate(-1.25deg);
  transition: transform 1.05s cubic-bezier(.16, 1, .3, 1), box-shadow .8s ease;
}

body.gift-home .gift-hero:hover .gift-hero__visual { transform: translate3d(19px, -10px, 0); }
body.gift-home .gift-hero:hover .gift-hero__image-wrap { transform: translate3d(9px, -11px, 0) scale(1.012); filter: drop-shadow(0 29px 43px rgba(120, 71, 90, .18)); }
body.gift-home .gift-hero:hover .gift-hero__song-card { transform: translate3d(-27px, 8px, 0) rotate(-2deg); }

/* Fine bands, warm sparks, and a floating line give the opening depth. */
body.gift-home .gift-hero__atmosphere {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
}

body.gift-home .gift-hero__atmosphere i { position: absolute; display: block; }

body.gift-home .gift-hero__atmosphere i:nth-child(1) {
  top: 16%;
  right: 7%;
  width: 43%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .86) 42%, rgba(242, 139, 178, .38) 72%, transparent);
  box-shadow: 0 0 12px rgba(255, 238, 247, .76);
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: gift-hero-ribbon-drift 11s ease-in-out infinite;
}

body.gift-home .gift-hero__atmosphere i:nth-child(2) {
  right: 11%;
  bottom: 8%;
  width: 32vw;
  height: 13vw;
  border: 1px solid rgba(255, 255, 255, .44);
  border-left-color: transparent;
  border-radius: 50%;
  box-shadow: 0 0 24px rgba(238, 184, 219, .14);
  transform: rotate(-10deg);
  animation: gift-hero-ring-drift 14s ease-in-out infinite;
}

body.gift-home .gift-hero__atmosphere i:nth-child(3) {
  top: 29%;
  right: 24%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fffdf7;
  box-shadow: 0 0 0 5px rgba(255, 246, 223, .2), 0 0 22px 5px rgba(255, 212, 183, .46);
  animation: gift-hero-sparkle 5.2s ease-in-out infinite;
}

body.gift-home .gift-hero__atmosphere i:nth-child(4) {
  top: 59%;
  right: 42%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 0 16px 4px rgba(243, 182, 220, .46);
  animation: gift-hero-sparkle 6.4s ease-in-out 1.7s infinite;
}

@keyframes gift-hero-ribbon-drift {
  0%, 100% { opacity: .45; translate: 0 0; }
  50% { opacity: .95; translate: -24px 9px; }
}

@keyframes gift-hero-ring-drift {
  0%, 100% { opacity: .4; transform: rotate(-10deg) scale(.96); }
  50% { opacity: .82; transform: rotate(-4deg) scale(1.04); }
}

@keyframes gift-hero-sparkle {
  0%, 100% { opacity: .25; transform: scale(.65); }
  48% { opacity: 1; transform: scale(1.15); }
}

@media (max-width: 760px) {
  body.gift-home .gift-hero { padding-block: 28px 42px; }

  body.gift-home .gift-hero::before {
    background-position: 77% 52%;
    background-size: auto 105%;
    opacity: .5;
  }

  body.gift-home .gift-hero__copy {
    border-radius: 24px 30px 28px 21px;
    padding: 25px 21px 28px;
  }

  body.gift-home .gift-hero__copy .gift-chips { gap: 7px; margin-top: 19px; }
  body.gift-home .gift-hero__copy .gift-chips li { min-height: 39px; padding: 8px 11px; font-size: 11.5px; }
  body.gift-home .gift-hero__copy .gift-chips li svg { width: 16px; height: 16px; }

  body.gift-home .gift-hero__visual,
  body.gift-home .gift-hero__song-card { transform: none; }

  body.gift-home .gift-hero__atmosphere i:nth-child(1) { top: 20%; right: -8%; width: 70%; }
  body.gift-home .gift-hero__atmosphere i:nth-child(2) { right: -14%; width: 78vw; height: 30vw; }
}

@media (prefers-reduced-motion: reduce) {
  body.gift-home .gift-hero *,
  body.gift-home .gift-hero *::before,
  body.gift-home .gift-hero *::after { animation: none !important; transition: none !important; }
}

/* Keep the opening copy free: no shared card around the headline and lead. */
body.gift-home .gift-hero__copy {
  padding: 4px 0 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  overflow: visible;
}

body.gift-home .gift-hero__copy::before { display: none; }

/* Expanded section navigation stays calm and readable on wide screens. */
body.gift-home .gift-nav {
  gap: 14px;
}

body.gift-home .gift-nav > a {
  white-space: nowrap;
  font-size: 11.5px;
}

body.gift-home #transformation-case,
body.gift-home #song-possibilities,
body.gift-home #possibilities-personalization,
body.gift-home #clip-formats {
  scroll-margin-top: 86px;
}

@media (max-width: 1230px) and (min-width: 901px) {
  body.gift-home .gift-header__inner {
    min-height: 66px;
    gap: 0;
  }

  body.gift-home .gift-header__actions {
    display: none;
  }

  body.gift-home .gift-menu-toggle {
    display: block;
    margin-left: auto;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: var(--radius-control);
    color: #755f68;
    font-size: 12px;
    font-weight: 750;
  }

  body.gift-home .gift-header:has(.gift-nav.is-open)::after {
    position: absolute;
    z-index: 1;
    top: 100%;
    right: 0;
    left: 0;
    height: 100vh;
    background: rgba(255, 249, 246, .58);
    content: "";
    pointer-events: none;
    -webkit-backdrop-filter: blur(8px) saturate(.72);
    backdrop-filter: blur(8px) saturate(.72);
  }

  body.gift-home .gift-nav {
    position: absolute;
    z-index: 3;
    top: calc(100% + 1px);
    right: 24px;
    left: 24px;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 8px;
    border: 1px solid rgba(162, 105, 123, .14);
    border-radius: var(--radius-card-sm);
    background: rgba(255, 253, 250, .99);
    box-shadow: 0 22px 56px rgba(91, 54, 69, .18);
    -webkit-backdrop-filter: blur(30px) saturate(1.04);
    backdrop-filter: blur(30px) saturate(1.04);
  }

  body.gift-home .gift-nav.is-open {
    display: flex;
  }

  body.gift-home .gift-nav > a,
  body.gift-home .gift-nav__mobile-actions a {
    padding: 12px;
  }

  body.gift-home .gift-nav__mobile-actions {
    display: flex;
    flex-direction: column;
  }

  body.gift-home .gift-nav__mobile-actions .gift-button {
    margin: 5px;
  }
}

/* Primary hero actions follow the approved coral-to-pink sketch. */
body.gift-home .gift-header__actions .gift-button,
body.gift-home .gift-hero__actions > .gift-button {
  position: relative;
  gap: 11px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 9px;
  background: linear-gradient(104deg, #ff6872 0%, #f7627b 48%, #ee5a82 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 10px 24px rgba(226, 72, 111, .18);
  color: #fff !important;
}

body.gift-home .gift-header__actions .gift-button::after,
body.gift-home .gift-hero__actions > .gift-button::after {
  display: inline-block;
  flex: 0 0 auto;
  color: rgba(255, 255, 255, .94);
  content: "✦";
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
  text-shadow: 0 0 10px rgba(255, 255, 255, .46);
  transform: translateY(-.5px);
}

body.gift-home .gift-header__actions .gift-button:hover,
body.gift-home .gift-hero__actions > .gift-button:hover {
  background: linear-gradient(104deg, #ff7375 0%, #fa6680 48%, #f05d88 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 14px 29px rgba(226, 72, 111, .23);
  transform: translateY(-2px);
}

body.gift-home .gift-header__actions .gift-button:active,
body.gift-home .gift-hero__actions > .gift-button:active {
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 7px 17px rgba(226, 72, 111, .17);
  transform: translateY(0);
}

body.gift-home .gift-header__actions .gift-button {
  min-height: 40px;
  padding-inline: 16px 15px;
}

body.gift-home .gift-hero__actions > .gift-button {
  min-height: 56px;
  padding-inline: 25px 22px;
}

/* Preserve the full serif contours and gradient glyphs at the bottom of the hero title. */
body.gift-home .gift-hero h1 {
  overflow: visible;
  padding-bottom: .11em;
  line-height: .99;
}

body.gift-home .gift-hero__title-line {
  overflow: visible;
}

body.gift-home .gift-hero__title-accent {
  padding-bottom: .12em;
  margin-bottom: -.12em;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* The completed portrait is larger and lands exactly on the section edge. */
body.gift-home .gift-hero__visual {
  min-height: 610px;
}

body.gift-home .gift-hero__image-wrap {
  right: -64px;
  bottom: -78px;
  width: min(128%,735px);
  height: 705px;
  overflow: visible;
}

body.gift-home .gift-hero__image-wrap img {
  right: -20px;
  bottom: 0;
  width: 770px;
}

@media (max-width: 1100px) {
  body.gift-home .gift-hero__image-wrap { right: -78px; width: 720px; }
  body.gift-home .gift-hero__image-wrap img { width: 750px; }
}

@media (max-width: 760px) {
  body.gift-home .gift-hero h1 { line-height: 1.01; }
  body.gift-home .gift-hero__visual { min-height: 475px; }
  body.gift-home .gift-hero__image-wrap {
    right: calc(50% - 330px);
    bottom: -42px;
    width: 650px;
    height: 520px;
  }
  body.gift-home .gift-hero__image-wrap img { right: 0; width: 650px; }
}

/* Stage 6: premium musical composition for the first screen. */
body.gift-home .gift-hero {
  min-height: calc(100svh - 72px);
  padding-block: clamp(42px, 5vh, 68px) 0;
  background:
    radial-gradient(circle at 77% 47%, rgba(255, 207, 185, .42) 0, rgba(255, 224, 211, .2) 24%, transparent 46%),
    radial-gradient(circle at 94% 13%, rgba(228, 196, 242, .34) 0, transparent 37%),
    linear-gradient(108deg, #fffaf6 0%, #fff6f3 48%, #fcedf6 100%);
}

body.gift-home .gift-hero::before {
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(ellipse 40% 64% at 0 38%, rgba(255, 255, 255, .78), transparent 76%),
    linear-gradient(104deg, rgba(255, 251, 248, .84) 0%, rgba(255, 248, 245, .34) 52%, rgba(255, 245, 249, .03) 82%);
  opacity: 1;
}

body.gift-home .gift-hero::after {
  right: -12%;
  bottom: -30%;
  left: 43%;
  height: 50%;
  background: radial-gradient(ellipse at center, rgba(240, 189, 221, .24), rgba(247, 217, 225, .12) 48%, transparent 73%);
  filter: blur(52px);
}

body.gift-home .gift-hero__grid {
  min-height: clamp(620px, calc(100svh - 114px), 770px);
  align-items: center;
}

body.gift-home .gift-hero__copy {
  z-index: 5;
  align-self: center;
  padding-bottom: clamp(32px, 5vh, 62px);
}

body.gift-home .gift-hero__eyebrow {
  margin: 0 0 18px;
}

body.gift-home .gift-hero__copy h1 {
  max-width: 650px;
  text-wrap: balance;
}

body.gift-home .gift-hero__lead {
  color: #76636c;
  text-wrap: pretty;
}

body.gift-home .gift-hero__trust {
  color: #806570;
}

body.gift-home .gift-hero__atmosphere > i {
  display: none;
}

body.gift-home .gift-hero__music-scene {
  position: absolute;
  z-index: 1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

body.gift-home .gift-hero__wave {
  position: absolute;
  top: 29%;
  left: 18%;
  width: 102%;
  height: min(38vw, 454px);
  overflow: visible;
  filter: drop-shadow(0 4px 12px rgba(229, 104, 143, .18));
  animation: gift-hero-wave-drift 18s ease-in-out infinite alternate;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

body.gift-home .gift-hero__wave-line {
  fill: none;
  stroke: url(#giftHeroWave);
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

body.gift-home .gift-hero__wave-line--main { stroke-width: 1.55; opacity: .92; }
body.gift-home .gift-hero__wave-line--soft { stroke-width: 6.4; opacity: .09; }
body.gift-home .gift-hero__wave-line--fine { stroke-width: .8; opacity: .42; }
body.gift-home .gift-hero__wave-line--echo { stroke-width: .72; opacity: .25; }
body.gift-home .gift-hero__wave-line--echo-top { opacity: .18; }
body.gift-home .gift-hero__wave-line--echo-bottom { opacity: .24; }

body.gift-home .gift-hero__ornament {
  position: absolute;
  display: block;
  color: #ed7893;
  filter: drop-shadow(0 5px 11px rgba(221, 102, 145, .12));
  opacity: .64;
  animation: gift-hero-ornament-float var(--ornament-duration, 8.5s) ease-in-out var(--ornament-delay, 0s) infinite alternate;
}

body.gift-home .gift-hero__ornament svg { display: block; width: 100%; height: 100%; overflow: visible; }
body.gift-home .gift-hero__ornament--note svg,
body.gift-home .gift-hero__ornament--heart svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.15; }
body.gift-home .gift-hero__ornament--spark svg { fill: currentColor; stroke: none; }

body.gift-home .gift-hero__ornament--note-a { top: 19%; left: 54%; width: 28px; height: 28px; --ornament-duration: 9.8s; transform: rotate(-11deg); }
body.gift-home .gift-hero__ornament--note-b { top: 25%; left: 77%; width: 23px; height: 23px; color: #c785d7; --ornament-duration: 7.6s; --ornament-delay: -2.1s; transform: rotate(9deg); }
body.gift-home .gift-hero__ornament--note-c { top: 56%; left: 93%; width: 26px; height: 26px; color: #f08d75; --ornament-duration: 10.6s; --ornament-delay: -3.6s; transform: rotate(-6deg); }
body.gift-home .gift-hero__ornament--note-d { top: 72%; left: 69%; width: 20px; height: 20px; color: #d990c5; --ornament-duration: 8.7s; --ornament-delay: -1.3s; transform: rotate(13deg); }

body.gift-home .gift-hero__ornament--heart-a { top: 38%; left: 49%; width: 19px; height: 19px; --ornament-duration: 8.2s; --ornament-delay: -1.7s; transform: rotate(-9deg); }
body.gift-home .gift-hero__ornament--heart-b { top: 13%; left: 86%; width: 16px; height: 16px; color: #d69ad8; --ornament-duration: 10.2s; --ornament-delay: -4.1s; transform: rotate(10deg); }
body.gift-home .gift-hero__ornament--heart-c { top: 43%; left: 96%; width: 22px; height: 22px; color: #f0919f; --ornament-duration: 9.1s; --ornament-delay: -2.8s; transform: rotate(12deg); }
body.gift-home .gift-hero__ornament--heart-d { top: 78%; left: 82%; width: 17px; height: 17px; color: #c993df; --ornament-duration: 11.1s; --ornament-delay: -.8s; transform: rotate(-8deg); }

body.gift-home .gift-hero__ornament--spark {
  width: 7px;
  height: 7px;
  filter: drop-shadow(0 0 7px currentColor);
  animation-name: gift-hero-spark-breathe;
}

body.gift-home .gift-hero__ornament--spark-a { top: 22%; left: 65%; color: #ffab89; --ornament-duration: 5.8s; }
body.gift-home .gift-hero__ornament--spark-b { top: 31%; left: 90%; width: 5px; height: 5px; color: #ca96e1; --ornament-duration: 6.8s; --ornament-delay: -2.2s; }
body.gift-home .gift-hero__ornament--spark-c { top: 64%; left: 77%; width: 9px; height: 9px; color: #f48198; --ornament-duration: 7.4s; --ornament-delay: -4s; }
body.gift-home .gift-hero__ornament--spark-d { top: 74%; left: 96%; width: 6px; height: 6px; color: #f2a178; --ornament-duration: 6.2s; --ornament-delay: -1.1s; }
body.gift-home .gift-hero__ornament--spark-e { top: 12%; left: 72%; width: 5px; height: 5px; color: #db86bd; --ornament-duration: 5.4s; --ornament-delay: -3.2s; }
body.gift-home .gift-hero__ornament--spark-f { top: 18%; left: 94%; width: 6px; height: 6px; color: #f19a9e; --ornament-duration: 6.9s; --ornament-delay: -2.5s; }

body.gift-home .gift-hero__visual {
  z-index: 3;
  isolation: isolate;
  transform: translate3d(8px, -2px, 0);
}

body.gift-home .gift-hero__visual::before {
  z-index: 0;
  top: 48%;
  right: 160px;
  width: min(43vw, 580px);
  height: min(43vw, 580px);
  border-radius: 50%;
  background: radial-gradient(circle at 42% 40%, rgba(255, 252, 246, .7) 0 9%, rgba(255, 224, 207, .44) 35%, rgba(247, 200, 209, .19) 59%, rgba(221, 193, 236, .07) 73%, transparent 79%);
  filter: blur(17px);
  transform: translateY(-50%);
}

body.gift-home .gift-hero__visual::after {
  position: absolute;
  z-index: 1;
  top: 48%;
  right: 166px;
  width: min(40vw, 540px);
  height: min(40vw, 540px);
  border: 1px solid rgba(229, 127, 156, .055);
  border-right-color: rgba(187, 137, 221, .04);
  border-radius: 50%;
  box-shadow: 0 0 0 38px rgba(255, 255, 255, .03), 0 0 0 39px rgba(240, 161, 185, .018);
  content: "";
  opacity: .2;
  transform: translateY(-50%);
  pointer-events: none;
}

body.gift-home .gift-hero__image-wrap {
  z-index: 3;
  right: 112px;
  bottom: -53px;
  filter: drop-shadow(0 27px 42px rgba(111, 67, 88, .115));
}

body.gift-home .gift-hero__image-wrap::after { opacity: .42; }

body.gift-home .gift-hero__ready-card {
  position: absolute;
  z-index: 6;
  top: 54%;
  right: -45px;
  bottom: auto;
  display: grid;
  width: 226px;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 15px 16px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 22px 18px 23px 19px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .81), rgba(255, 246, 250, .58) 64%, rgba(244, 235, 255, .51));
  box-shadow: 0 21px 50px rgba(121, 77, 101, .15), inset 0 1px 0 rgba(255, 255, 255, .93);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  backdrop-filter: blur(18px) saturate(1.08);
  transform: rotate(-1.1deg);
  transition: transform .9s cubic-bezier(.16, 1, .3, 1), box-shadow .9s ease;
}

body.gift-home .gift-hero__ready-card::before {
  position: absolute;
  inset: 7px 12% auto;
  height: 1px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(242, 115, 146, .54), rgba(190, 136, 221, .38), transparent);
  content: "";
}

body.gift-home .gift-hero__ready-icon {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 1px solid rgba(226, 102, 141, .19);
  border-radius: 15px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .79), rgba(255, 232, 240, .62));
  color: #df6388;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .92), 0 7px 18px rgba(211, 92, 135, .09);
}

body.gift-home .gift-hero__ready-icon svg { width: 25px; height: 25px; overflow: visible; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.35; }
body.gift-home .gift-hero__ready-copy { display: grid; min-width: 0; gap: 1px; }
body.gift-home .gift-hero__ready-copy small { color: #876d79; font-size: 10px; font-style: normal; font-weight: 650; line-height: 1.25; }
body.gift-home .gift-hero__ready-copy strong { color: #432f3b; font-family: "Playfair Display", Georgia, serif; font-size: 17.5px; font-weight: 650; letter-spacing: -.018em; line-height: 1.16; white-space: nowrap; }
body.gift-home .gift-hero__ready-copy em { margin-top: 4px; color: #9a7184; font-size: 8.25px; font-style: normal; font-weight: 650; letter-spacing: .04em; line-height: 1.2; white-space: nowrap; }

body.gift-home .gift-hero:hover .gift-hero__visual { transform: translate3d(13px, -6px, 0); }
body.gift-home .gift-hero:hover .gift-hero__image-wrap { transform: translate3d(5px, -5px, 0) scale(1.006); filter: drop-shadow(0 30px 46px rgba(111, 67, 88, .135)); }
body.gift-home .gift-hero:hover .gift-hero__ready-card { transform: translate3d(-5px, -6px, 0) rotate(-1.8deg); box-shadow: 0 23px 54px rgba(121, 77, 101, .15), inset 0 1px 0 rgba(255, 255, 255, .92); }

@keyframes gift-hero-wave-drift {
  0% { opacity: .77; transform: translate3d(-10px, 2px, 0) scaleX(.995); }
  100% { opacity: 1; transform: translate3d(14px, -3px, 0) scaleX(1.008); }
}

@keyframes gift-hero-ornament-float {
  0% { margin-top: -2px; opacity: .42; }
  100% { margin-top: 4px; opacity: .78; }
}

@keyframes gift-hero-spark-breathe {
  0%, 100% { opacity: .22; transform: scale(.66); }
  46% { opacity: .94; transform: scale(1.12); }
}

@media (max-width: 1230px) {
  body.gift-home .gift-hero__wave { left: 12%; width: 110%; }
  body.gift-home .gift-hero__ready-card { top: 54%; right: 20px; bottom: auto; }
  body.gift-home .gift-hero__ornament--heart-c,
  body.gift-home .gift-hero__ornament--spark-d { display: none; }
}

@media (max-width: 1320px) and (min-width: 1231px) {
  body.gift-home .gift-hero__ready-card { right: 0; }
}

@media (max-width: 900px) {
  body.gift-home .gift-hero { min-height: auto; padding-top: 46px; }
  body.gift-home .gift-hero__grid { min-height: 0; }
  body.gift-home .gift-hero__copy { padding-bottom: 0; }
  body.gift-home .gift-hero__wave { top: 49%; left: -4%; width: 124%; height: 310px; opacity: .86; }
  body.gift-home .gift-hero__visual { transform: none; }
  body.gift-home .gift-hero__visual::before { right: calc(50% - 285px); width: 570px; height: 570px; }
  body.gift-home .gift-hero__visual::after { right: calc(50% - 255px); width: 510px; height: 510px; }
  body.gift-home .gift-hero__ready-card { top: 53%; right: max(18px, 5vw); bottom: auto; }
  body.gift-home .gift-hero__ornament--note-a { top: 55%; left: 12%; }
  body.gift-home .gift-hero__ornament--note-b { top: 63%; left: 76%; }
  body.gift-home .gift-hero__ornament--note-c { top: 79%; left: 88%; }
  body.gift-home .gift-hero__ornament--note-d,
  body.gift-home .gift-hero__ornament--heart-a,
  body.gift-home .gift-hero__ornament--spark-a { display: none; }
  body.gift-home .gift-hero__ornament--heart-b { top: 58%; left: 84%; }
  body.gift-home .gift-hero__ornament--heart-d { top: 82%; left: 18%; }
  body.gift-home .gift-hero__ornament--spark-b { top: 69%; left: 13%; }
  body.gift-home .gift-hero__ornament--spark-c { top: 72%; left: 79%; }
  body.gift-home .gift-hero__ornament--spark-e { top: 57%; left: 65%; }
}

@media (max-width: 560px) {
  body.gift-home .gift-hero { padding-top: 34px; }
  body.gift-home .gift-hero__music-scene { inset-inline: -1px; }
  body.gift-home .gift-hero__wave { top: 56%; left: -22%; width: 148%; height: 230px; }
  body.gift-home .gift-hero__visual::before { right: calc(50% - 225px); width: 450px; height: 450px; }
  body.gift-home .gift-hero__visual::after { right: calc(50% - 202px); width: 404px; height: 404px; box-shadow: 0 0 0 22px rgba(255, 255, 255, .04), 0 0 0 23px rgba(240, 161, 185, .026); }
  body.gift-home .gift-hero__ready-card {
    top: auto;
    right: 8px;
    bottom: 54px;
    width: 196px;
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 9px;
    padding: 12px 13px;
    border-radius: 18px 16px 20px 17px;
  }
  body.gift-home .gift-hero__ready-icon { width: 36px; height: 36px; border-radius: 13px; }
  body.gift-home .gift-hero__ready-icon svg { width: 22px; height: 22px; }
  body.gift-home .gift-hero__ready-copy small { font-size: 9px; }
  body.gift-home .gift-hero__ready-copy strong { font-size: 15.5px; }
  body.gift-home .gift-hero__ready-copy em { font-size: 7.8px; }
  body.gift-home .gift-hero__ornament--note-c,
  body.gift-home .gift-hero__ornament--heart-b,
  body.gift-home .gift-hero__ornament--spark-c { display: none; }
  body.gift-home .gift-hero__ornament--note-a { top: 61%; left: 8%; width: 21px; height: 21px; }
  body.gift-home .gift-hero__ornament--note-b { top: 68%; left: 84%; width: 20px; height: 20px; }
  body.gift-home .gift-hero__ornament--heart-d { top: 88%; left: 11%; width: 15px; height: 15px; }
  body.gift-home .gift-hero__ornament--spark-b { top: 72%; left: 10%; }
  body.gift-home .gift-hero__ornament--spark-e { top: 62%; left: 76%; }
}

/* Mobile composition: text flow and portrait are intentionally separate. */
@media (max-width: 768px) {
  body.gift-home .gift-hero__visual {
    min-height: 500px;
    margin-top: clamp(48px, 12vw, 56px);
    transform: none !important;
  }

  body.gift-home .gift-hero__image-wrap {
    right: auto;
    bottom: 0;
    left: calc(50% - 325px);
    width: 650px;
    height: 500px;
    transform: none !important;
  }

  body.gift-home .gift-hero__image-wrap img {
    right: 0;
    bottom: 0;
    width: 650px;
  }

  body.gift-home .gift-hero:hover .gift-hero__visual,
  body.gift-home .gift-hero:hover .gift-hero__image-wrap {
    transform: none !important;
  }

  body.gift-home .gift-hero__ready-card { display: none; }

  body.gift-home .gift-hero__wave {
    top: 61%;
    left: -18%;
    width: 142%;
    height: 205px;
    opacity: .56;
    filter: drop-shadow(0 2px 7px rgba(229, 104, 143, .1));
  }

  body.gift-home .gift-hero__wave-line--echo,
  body.gift-home .gift-hero__wave-line--fine { display: none; }

  body.gift-home .gift-hero__wave-line--main { stroke-width: 1.15; opacity: .62; }
  body.gift-home .gift-hero__wave-line--soft { stroke-width: 4; opacity: .055; }

  body.gift-home .gift-hero__visual::before {
    right: calc(50% - 220px);
    width: 440px;
    height: 440px;
    opacity: .72;
  }

  body.gift-home .gift-hero__visual::after { display: none; }

  body.gift-home .gift-hero__ornament { display: none; }
  body.gift-home .gift-hero__ornament--note-b,
  body.gift-home .gift-hero__ornament--heart-d { display: block; }

  body.gift-home .gift-hero__ornament--note-b { top: 69%; left: 83%; width: 18px; height: 18px; opacity: .48; }
  body.gift-home .gift-hero__ornament--heart-d { top: 86%; left: 12%; width: 14px; height: 14px; opacity: .42; }
}

@media (min-width: 768px) {
  body.gift-home .gift-hero__image-wrap img {
    transform: scale(1.05);
    transform-origin: 50% 50%;
  }
}

/* Tablet landscape: preserve every element without forcing the portrait into the copy column. */
@media (max-width: 1152px) and (min-width: 769px) {
  body.gift-home .gift-hero {
    min-height: auto;
    padding-top: 46px;
  }

  body.gift-home .gift-hero__grid {
    display: block;
    min-height: 0;
  }

  body.gift-home .gift-hero__copy {
    max-width: 680px;
    padding-bottom: 0;
  }

  body.gift-home .gift-hero__visual {
    min-height: 570px;
    margin-top: 52px;
    transform: none;
  }

  body.gift-home .gift-hero__image-wrap {
    right: auto;
    bottom: 0;
    left: calc(50% - 380px);
    width: 650px;
    height: 570px;
    transform: none;
  }

  body.gift-home .gift-hero__image-wrap img {
    right: 0;
    width: 650px;
  }

  body.gift-home .gift-hero__ready-card {
    top: 45%;
    right: 20px;
    bottom: auto;
  }

  body.gift-home .gift-hero__wave {
    top: 52%;
    left: 4%;
    width: 118%;
    height: 320px;
    opacity: .76;
  }

  body.gift-home .gift-hero__visual::before {
    right: auto;
    left: calc(50% - 290px);
    width: 560px;
    height: 560px;
  }

  body.gift-home .gift-hero__visual::after { display: none; }

  body.gift-home .gift-hero:hover .gift-hero__visual,
  body.gift-home .gift-hero:hover .gift-hero__image-wrap { transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  body.gift-home .gift-hero__wave,
  body.gift-home .gift-hero__ornament { animation: none !important; }
}

/* Stage 6.1: supplied reference artwork integrated as independent, controllable layers. */
body.gift-home .gift-hero {
  min-height: calc(100svh - 72px);
  padding-block: clamp(18px, 2.5vh, 32px) 0;
  background: linear-gradient(90deg, #fffaf7 0%, #fff8f6 36%, #fff4f5 62%, #fbe8f0 100%);
}

body.gift-home .gift-hero__bg-glow {
  position: absolute;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  opacity: .52;
  mix-blend-mode: normal;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
}

body.gift-home .gift-hero::before {
  z-index: 2;
  background:
    radial-gradient(ellipse 34% 62% at 0 43%, rgba(255, 255, 252, .56), transparent 76%),
    radial-gradient(ellipse 22% 42% at 58% 42%, rgba(255, 235, 216, .13), transparent 76%),
    linear-gradient(96deg, rgba(255, 253, 251, .42) 0%, rgba(255, 251, 249, .1) 48%, rgba(255, 248, 250, 0) 74%);
  pointer-events: none;
}

body.gift-home .gift-hero::after {
  z-index: 2;
  top: 18%;
  right: auto;
  bottom: auto;
  left: 48%;
  width: 520px;
  height: 520px;
  background: radial-gradient(ellipse at 54% 46%, rgba(255, 226, 205, .2), rgba(247, 199, 211, .08) 43%, transparent 72%);
  filter: blur(42px);
}

body.gift-home .gift-hero__music-scene {
  z-index: 3;
}

body.gift-home .gift-hero__music-scene > :not(.gift-hero__wave-glow-underlay):not(.gift-hero__wave-secondary):not(.gift-hero__wave-overlay) {
  display: none;
}

body.gift-home .gift-hero__wave-overlay {
  position: absolute;
  top: 0;
  right: auto;
  bottom: 0;
  left: 16%;
  width: 112%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .66;
  filter: saturate(.82) brightness(1.045) contrast(1.08);
  mix-blend-mode: normal;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .08) 12%, rgba(0, 0, 0, .45) 24%, #000 38%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .08) 12%, rgba(0, 0, 0, .45) 24%, #000 38%, #000 100%);
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
}

body.gift-home .gift-hero__grid {
  z-index: 4;
  min-height: clamp(600px, calc(100svh - 96px), 742px);
  align-items: start;
}

body.gift-home .gift-hero__copy {
  z-index: 20;
  align-self: start;
  margin-top: 88px;
  padding-bottom: clamp(18px, 2.8vh, 34px);
}

body.gift-home .gift-hero__eyebrow {
  margin-bottom: 16px;
}

body.gift-home .gift-hero__copy h1 {
  max-width: 680px;
  padding-bottom: .13em;
  color: #261d2f;
  font-size: clamp(70px, 4.5vw, 82px);
  font-weight: 500;
  letter-spacing: -.025em;
  line-height: .98;
}

body.gift-home .gift-hero__title-line:not(.gift-hero__title-accent) {
  color: #261d2f;
  background: none;
  opacity: 1;
  -webkit-text-fill-color: initial;
}

body.gift-home .gift-hero__title-accent {
  background: linear-gradient(90deg, #ff806f 0%, #f56782 48%, #e77ba5 100%);
  -webkit-background-clip: text;
  background-clip: text;
  opacity: 1;
  -webkit-text-fill-color: transparent;
}

body.gift-home .gift-hero__lead {
  max-width: 470px;
  margin-top: 18px;
  color: rgba(60, 49, 61, .68);
  font-size: 18px;
  line-height: 1.55;
}

body.gift-home .gift-hero__copy .gift-chips {
  gap: 8px;
  margin-top: 21px;
}

body.gift-home .gift-hero__copy .gift-chips li {
  min-height: 39px;
  padding: 8px 13px;
  border-color: rgba(211, 117, 145, .14);
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255, 255, 255, .75), rgba(255, 247, 246, .52));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .88), 0 7px 18px rgba(153, 87, 108, .045);
  color: #806c75;
  font-weight: 550;
}

body.gift-home .gift-hero__copy .gift-hero__actions {
  margin-top: 24px;
}

body.gift-home .gift-hero__actions > .gift-button {
  min-height: 57px;
  padding-inline: 26px 22px;
  border-radius: 11px;
  background: linear-gradient(106deg, #ff6f72 0%, #f8627d 52%, #ed628c 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 12px 28px rgba(226, 81, 113, .2), 0 0 30px rgba(248, 119, 139, .08);
}

body.gift-home .gift-arrow-link {
  color: #a95770;
  font-weight: 700;
}

body.gift-home .gift-arrow-link__play {
  width: 36px;
  height: 36px;
  border-color: rgba(239, 101, 130, .3);
  background: rgba(255, 251, 249, .64);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .82);
}

body.gift-home .gift-hero__trust {
  color: #7d6570;
  font-weight: 600;
}

body.gift-home .gift-hero__visual {
  z-index: 10;
  min-height: 610px;
  transform: translate3d(50px, -20px, 0);
}

body.gift-home .gift-hero__visual::before {
  z-index: 0;
  top: 46%;
  right: 86px;
  width: min(47vw, 640px);
  height: min(47vw, 640px);
  border-radius: 50%;
  background:
    radial-gradient(circle at 43% 40%, rgba(255, 251, 236, .78) 0 7%, rgba(255, 225, 201, .42) 31%, rgba(255, 201, 208, .18) 50%, transparent 72%);
  filter: blur(18px);
  opacity: .9;
}

body.gift-home .gift-hero__visual::after {
  display: none;
}

body.gift-home .gift-hero__image-wrap {
  z-index: 3;
  right: 20px;
  bottom: -56px;
  width: min(128%, 735px);
  height: 705px;
  filter: drop-shadow(-9px -4px 13px rgba(255, 240, 214, .23)) drop-shadow(9px 17px 31px rgba(125, 70, 92, .11));
}

body.gift-home .gift-hero__image-wrap::before {
  position: absolute;
  z-index: 0;
  inset: 7% 12% 8% 0;
  border-radius: 48%;
  background: radial-gradient(ellipse at 28% 37%, rgba(255, 246, 221, .5), rgba(255, 216, 197, .16) 42%, transparent 72%);
  filter: blur(26px);
  content: "";
  pointer-events: none;
}

body.gift-home .gift-hero__image-wrap img {
  mix-blend-mode: normal;
  filter: drop-shadow(-4px -1px 5px rgba(255, 244, 225, .19));
}

body.gift-home .gift-hero__ready-card {
  z-index: 30;
  isolation: isolate;
  top: 54%;
  right: -122px;
  overflow: hidden;
  width: 320px;
  min-height: 140px;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 18px;
  padding: 22px 24px;
  border: 0;
  border-radius: 22px 35px 26px 39px / 20px 30px 37px 27px;
  background:
    radial-gradient(130% 120% at 12% 0%, rgba(255, 255, 255, .78) 0%, rgba(255, 255, 255, .42) 42%, rgba(255, 255, 255, 0) 72%),
    linear-gradient(135deg, rgba(255, 255, 255, .52) 0%, rgba(255, 241, 247, .43) 50%, rgba(255, 217, 233, .34) 100%);
  box-shadow:
    0 22px 56px rgba(219, 72, 127, .17),
    0 8px 24px rgba(255, 140, 177, .14),
    0 2px 8px rgba(255, 255, 255, .22),
    inset 0 1px 0 rgba(255, 255, 255, .75),
    inset 0 -1px 0 rgba(235, 137, 173, .1);
  opacity: 1;
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  backdrop-filter: blur(18px) saturate(1.25);
  transform: rotate(-.65deg);
}

body.gift-home .gift-hero__ready-card::before {
  z-index: 2;
  inset: 0;
  height: auto;
  padding: 1px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .5) 40%, rgba(255, 179, 205, .38) 75%, rgba(255, 255, 255, .62));
  opacity: 1;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;
}

body.gift-home .gift-hero__ready-icon {
  width: 58px;
  height: 58px;
  border: 1px solid rgba(255, 255, 255, .62);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .72), rgba(255, 232, 241, .44));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 8px 22px rgba(232, 91, 138, .08);
}

body.gift-home .gift-hero__ready-icon svg {
  width: 27px;
  height: 27px;
  stroke-width: 1.25;
}

body.gift-home .gift-hero__ready-copy {
  gap: 0;
}

body.gift-home .gift-hero__ready-copy small {
  margin-bottom: 3px;
  color: rgba(58, 46, 58, .64);
  font-size: 14px;
  font-weight: 500;
  line-height: 18px;
}

body.gift-home .gift-hero__ready-copy strong {
  margin: 0;
  color: #302331;
  font-size: 25px;
  font-weight: 600;
  letter-spacing: -.015em;
  line-height: 1.05;
}

body.gift-home .gift-hero__ready-copy em {
  margin-top: 8px;
  color: rgba(73, 55, 70, .47);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .02em;
  line-height: 16px;
}

body.gift-home .gift-hero:hover .gift-hero__visual {
  transform: translate3d(53px, -22px, 0);
}

body.gift-home .gift-hero:hover .gift-hero__image-wrap {
  transform: translate3d(3px, -3px, 0) scale(1.004);
  filter: drop-shadow(-9px -4px 15px rgba(255, 240, 214, .25)) drop-shadow(10px 20px 35px rgba(125, 70, 92, .13));
}

body.gift-home .gift-hero:hover .gift-hero__ready-card {
  transform: translate3d(-4px, -5px, 0) rotate(-1deg);
}

@media (max-width: 1600px) and (min-width: 1153px) {
  body.gift-home .gift-hero__visual { transform: translate3d(30px, -20px, 0); }
  body.gift-home .gift-hero__image-wrap { right: 20px; }
  body.gift-home .gift-hero__ready-card {
    right: -10px;
    width: 310px;
  }
}

@media (max-width: 1320px) and (min-width: 1153px) {
  body.gift-home .gift-hero__image-wrap { right: 8px; }
  body.gift-home .gift-hero__ready-card { right: 0; width: 300px; }
}

@media (max-width: 1152px) and (min-width: 769px) {
  body.gift-home .gift-hero { padding-top: 38px; }
  body.gift-home .gift-hero__grid { min-height: 0; }
  body.gift-home .gift-hero__copy { margin-top: 0; }
  body.gift-home .gift-hero__visual { transform: none; }
  body.gift-home .gift-hero__wave-overlay {
    object-position: 58% center;
    opacity: .55;
    -webkit-mask-image: linear-gradient(90deg, transparent, rgba(0, 0, 0, .1) 24%, #000 52%);
    mask-image: linear-gradient(90deg, transparent, rgba(0, 0, 0, .1) 24%, #000 52%);
  }
  body.gift-home .gift-hero__image-wrap { right: auto; }
  body.gift-home .gift-hero__ready-card { top: 48%; right: 24px; }
}

@media (max-width: 768px) {
  body.gift-home .gift-hero {
    min-height: auto;
    padding-top: 34px;
  }

  body.gift-home .gift-hero__bg-glow {
    opacity: .5;
    object-position: 64% center;
  }

  body.gift-home .gift-hero__wave-overlay {
    top: auto;
    bottom: 0;
    height: 48%;
    object-position: 63% center;
    opacity: .34;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 38%, #000 100%);
    mask-image: linear-gradient(180deg, transparent, #000 38%, #000 100%);
  }

  body.gift-home .gift-hero__copy h1 {
    font-size: clamp(48px, 13.8vw, 64px);
    line-height: .98;
  }

  body.gift-home .gift-hero__copy {
    margin-top: 0;
    padding-bottom: 0;
  }

  body.gift-home .gift-hero__visual {
    min-height: 500px;
    margin-top: clamp(48px, 12vw, 56px);
    transform: none !important;
  }

  body.gift-home .gift-hero__image-wrap {
    right: auto;
    bottom: 0;
    left: calc(50% - 325px);
    width: 650px;
    height: 500px;
    transform: none !important;
  }

  body.gift-home .gift-hero__ready-card { display: none; }
}

@media (max-width: 430px) {
  body.gift-home .gift-hero__eyebrow {
    white-space: normal;
  }

  body.gift-home .gift-hero__copy h1 {
    font-size: clamp(40px, 10.8vw, 46px);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.gift-home .gift-hero__wave-overlay,
  body.gift-home .gift-hero__bg-glow {
    animation: none !important;
  }
}

/* Stage 6.2: reference-precision pass — lighter canvas, quieter artwork and balanced glass. */
body.gift-home .gift-hero {
  background: linear-gradient(90deg, #fff 0%, #fffdfa 38%, #fff9f8 64%, #f8edf3 100%);
}

body.gift-home .gift-hero__bg-glow {
  object-fit: contain;
  object-position: right top;
  opacity: .44;
  filter: saturate(.78) brightness(1.035);
}

body.gift-home .gift-hero::before {
  background:
    radial-gradient(ellipse 31% 58% at 0 43%, rgba(255, 255, 255, .62), transparent 76%),
    radial-gradient(ellipse 19% 38% at 57% 42%, rgba(255, 238, 224, .08), transparent 76%),
    linear-gradient(96deg, rgba(255, 255, 255, .5) 0%, rgba(255, 253, 252, .08) 50%, transparent 72%);
}

body.gift-home .gift-hero::after {
  left: 53%;
  width: 470px;
  height: 470px;
  background: radial-gradient(ellipse at 56% 46%, rgba(255, 230, 211, .14), rgba(247, 205, 217, .055) 44%, transparent 72%);
  filter: blur(46px);
}

body.gift-home .gift-hero__wave-overlay {
  left: 12%;
  width: 88%;
  object-fit: contain;
  object-position: right center;
  opacity: .58;
  filter: saturate(.78) brightness(1.055) contrast(1.04);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .05) 15%, rgba(0, 0, 0, .32) 34%, #000 48%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .05) 15%, rgba(0, 0, 0, .32) 34%, #000 48%, #000 100%);
}

body.gift-home .gift-hero__visual::before {
  right: 220px;
  width: min(42vw, 570px);
  height: min(42vw, 570px);
  background: radial-gradient(circle at 44% 40%, rgba(255, 252, 241, .62) 0 8%, rgba(255, 230, 211, .3) 31%, rgba(255, 207, 216, .12) 50%, transparent 72%);
  filter: blur(20px);
  opacity: .74;
}

body.gift-home .gift-hero__ready-card {
  top: 56.2%;
  right: -122px;
  display: flex;
  width: 318px;
  height: 140px;
  min-height: 140px;
  align-items: center;
  gap: 16px;
  padding: 22px 24px;
  border: 0;
  border-radius: 20px 47px 25px 41px / 18px 38px 39px 25px;
  background:
    radial-gradient(66% 96% at 100% 0%, rgba(255, 199, 225, .6), rgba(255, 222, 237, .24) 50%, transparent 74%),
    radial-gradient(62% 92% at 0% 100%, rgba(255, 202, 226, .48), rgba(255, 226, 239, .18) 48%, transparent 72%),
    radial-gradient(74% 70% at 10% 0%, rgba(255, 255, 255, .52), rgba(255, 255, 255, .18) 44%, transparent 68%),
    linear-gradient(145deg, rgba(255, 255, 255, .56), rgba(255, 239, 247, .42) 56%, rgba(255, 205, 226, .36));
  box-shadow:
    0 28px 62px rgba(231, 80, 137, .23),
    0 9px 27px rgba(255, 157, 191, .2),
    0 0 46px rgba(255, 255, 255, .34),
    inset 0 1px 0 rgba(255, 255, 255, .92),
    inset 0 -1px 0 rgba(255, 183, 211, .18);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
  backdrop-filter: blur(20px) saturate(1.3);
  transform: rotate(-1.05deg);
  transform-origin: 54% 48%;
}

body.gift-home .gift-hero__ready-card::before {
  padding: 1.5px;
  background:
    radial-gradient(circle at 8% 8%, rgba(255, 255, 255, .46), transparent 12%),
    radial-gradient(circle at 92% 10%, rgba(255, 255, 255, 1), transparent 22%),
    radial-gradient(circle at 7% 92%, rgba(255, 255, 255, .96), transparent 18%),
    radial-gradient(circle at 94% 88%, rgba(255, 255, 255, .78), transparent 16%),
    linear-gradient(135deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .5) 40%, rgba(255, 190, 216, .66) 74%, rgba(255, 255, 255, .98));
}

body.gift-home .gift-hero__ready-card::after {
  position: absolute;
  z-index: 0;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(ellipse 44% 25% at 20% 0%, rgba(255, 255, 255, .72), transparent 72%),
    radial-gradient(ellipse 35% 20% at 96% 100%, rgba(255, 255, 255, .48), transparent 74%),
    radial-gradient(circle at 3% 88%, rgba(255, 255, 255, .64), transparent 15%),
    linear-gradient(155deg, transparent 45%, rgba(248, 177, 206, .08) 100%);
  content: "";
  pointer-events: none;
}

body.gift-home .gift-hero__ready-icon,
body.gift-home .gift-hero__ready-copy {
  position: relative;
  z-index: 1;
}

body.gift-home .gift-hero__ready-icon {
  flex: 0 0 58px;
  width: 58px;
  height: 58px;
  border-color: rgba(255, 255, 255, .78);
  border-radius: 18px;
  background:
    radial-gradient(circle at 28% 18%, rgba(255, 255, 255, 1), rgba(255, 255, 255, .16) 46%, transparent 70%),
    linear-gradient(145deg, rgba(255, 255, 255, .9), rgba(255, 243, 248, .68) 56%, rgba(255, 229, 240, .28));
  color: #ff758d;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, .9),
    inset 0 -1px 0 rgba(202, 86, 130, .1),
    -11px 15px 38px rgba(255, 240, 247, .68),
    -7px 13px 32px rgba(241, 149, 182, .23),
    0 19px 40px rgba(225, 108, 151, .17);
}

body.gift-home .gift-hero__ready-icon::before {
  position: absolute;
  z-index: -1;
  inset: -10px -6px -17px -18px;
  border-radius: 24px;
  background: radial-gradient(ellipse at 36% 58%, rgba(255, 236, 244, .74), rgba(239, 147, 180, .2) 44%, transparent 74%);
  filter: blur(12px);
  content: "";
  pointer-events: none;
}

body.gift-home .gift-hero__ready-icon svg {
  width: 32px;
  height: 32px;
  stroke-width: 1.8;
}

body.gift-home .gift-hero__ready-icon circle {
  fill: none;
  stroke: currentColor;
}

body.gift-home .gift-hero__ready-copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
}

body.gift-home .gift-hero__ready-copy small { margin-bottom: 4px; }
body.gift-home .gift-hero__ready-copy strong { margin: 0; }
body.gift-home .gift-hero__ready-copy em { margin-top: 8px; }

body.gift-home .gift-hero__ready-copy small {
  color: rgba(55, 42, 54, .8);
  font-weight: 600;
}

body.gift-home .gift-hero__ready-copy em {
  color: rgba(69, 48, 64, .7);
  font-weight: 600;
}

body.gift-home .gift-hero:hover .gift-hero__ready-card {
  transform: translate3d(-3px, -3px, 0) rotate(-1.28deg);
  box-shadow:
    0 28px 62px rgba(231, 80, 137, .24),
    0 10px 27px rgba(255, 157, 191, .19),
    0 0 38px rgba(255, 255, 255, .24),
    inset 0 1px 0 rgba(255, 255, 255, .94),
    inset 0 -1px 0 rgba(255, 183, 211, .18);
}

@media (min-width: 1153px) {
  body.gift-home .gift-hero {
    min-height: clamp(660px, calc(100svh - 101px), 720px);
  }

  body.gift-home .gift-hero__grid {
    min-height: clamp(640px, calc(100svh - 121px), 696px);
  }

  body.gift-home .gift-hero__image-wrap {
    right: 145px;
    bottom: -74px;
    width: 680px;
    height: 705px;
  }

  body.gift-home .gift-hero__image-wrap img {
    transform: scale(.95);
    transform-origin: 50% 0;
  }

  body.gift-home .gift-hero:hover .gift-hero__image-wrap {
    transform: translate3d(2px, -2px, 0);
  }
}

@media (max-width: 1600px) and (min-width: 1153px) {
  body.gift-home .gift-hero__image-wrap { right: 120px; }
  body.gift-home .gift-hero__ready-card {
    right: -10px;
    width: 310px;
  }
}

@media (max-width: 1320px) and (min-width: 1153px) {
  body.gift-home .gift-hero__image-wrap { right: 94px; }
  body.gift-home .gift-hero__ready-card {
    right: 0;
    width: 300px;
    padding-inline: 21px;
  }
}

@media (max-width: 1152px) and (min-width: 769px) {
  body.gift-home .gift-hero__bg-glow {
    object-fit: cover;
    object-position: 64% center;
  }

  body.gift-home .gift-hero__wave-overlay {
    left: 4%;
    width: 96%;
    object-position: 62% center;
    opacity: .48;
  }

  body.gift-home .gift-hero__ready-card {
    top: 48%;
    right: 24px;
    width: 300px;
  }
}

@media (max-width: 768px) {
  body.gift-home .gift-hero {
    background: linear-gradient(90deg, #fff 0%, #fffdfb 62%, #fbf4f7 100%);
  }

  body.gift-home .gift-hero__bg-glow {
    object-fit: cover;
    object-position: 70% center;
    opacity: .32;
    filter: saturate(.72) brightness(1.05);
  }

  body.gift-home .gift-hero__wave-overlay {
    left: 8%;
    width: 92%;
    opacity: .22;
  }

  body.gift-home .gift-hero__ready-card { display: none; }
}

/* Stage 6.3: exported atmospheric underlay + independent secondary and main waves. */
body.gift-home .gift-hero {
  background: linear-gradient(90deg, #fff 0%, #fffefd 42%, #fffafa 70%, #fbf4f7 100%);
}

/* The previous full-frame artwork is intentionally retired: the supplied glow is local. */
body.gift-home .gift-hero__bg-glow {
  opacity: 0;
}

body.gift-home .gift-hero::before {
  z-index: 2;
  background:
    radial-gradient(ellipse 30% 58% at 0 42%, rgba(255, 255, 255, .68), transparent 76%),
    linear-gradient(96deg, rgba(255, 255, 255, .52) 0%, rgba(255, 255, 255, .12) 47%, transparent 70%);
}

body.gift-home .gift-hero::after {
  opacity: .18;
}

body.gift-home .gift-hero__music-scene {
  z-index: 3;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
}

body.gift-home .gift-hero__wave-glow-underlay,
body.gift-home .gift-hero__wave-secondary,
body.gift-home .gift-hero__wave-main {
  position: absolute;
  display: block;
  max-width: none;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
}

body.gift-home .gift-hero__wave-glow-underlay {
  z-index: 1;
  top: 0;
  right: 0;
  width: 84%;
  height: 100%;
  object-position: right center;
  opacity: .56;
  filter: saturate(.78) brightness(1.025);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .2) 12%, rgba(0, 0, 0, .72) 25%, #000 38%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .2) 12%, rgba(0, 0, 0, .72) 25%, #000 38%, #000 100%);
}

body.gift-home .gift-hero__wave-secondary {
  z-index: 2;
  top: 0;
  right: 0;
  width: 92%;
  height: 100%;
  object-position: right center;
  opacity: .43;
  filter: saturate(.72) brightness(1.04) contrast(.96);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .06) 16%, rgba(0, 0, 0, .32) 33%, rgba(0, 0, 0, .76) 49%, #000 62%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .06) 16%, rgba(0, 0, 0, .32) 33%, rgba(0, 0, 0, .76) 49%, #000 62%, #000 100%);
}

body.gift-home .gift-hero__wave-main {
  z-index: 3;
  top: 0;
  right: 0;
  bottom: auto;
  left: auto;
  width: 88%;
  height: 100%;
  object-fit: contain;
  object-position: right center;
  opacity: .54;
  filter: saturate(.76) brightness(1.055) contrast(1.03);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .04) 14%, rgba(0, 0, 0, .3) 32%, rgba(0, 0, 0, .82) 47%, #000 58%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .04) 14%, rgba(0, 0, 0, .3) 32%, rgba(0, 0, 0, .82) 47%, #000 58%, #000 100%);
}

body.gift-home .gift-hero__grid {
  position: relative;
  z-index: 4;
}

body.gift-home .gift-hero__visual {
  z-index: 10;
}

body.gift-home .gift-hero__visual::before {
  opacity: .34;
}

body.gift-home .gift-hero__copy {
  position: relative;
  z-index: 20;
}

body.gift-home .gift-hero__ready-card {
  z-index: 30;
}

@media (max-width: 1152px) and (min-width: 769px) {
  body.gift-home .gift-hero__wave-glow-underlay {
    width: 90%;
    opacity: .47;
    object-position: 68% center;
  }

  body.gift-home .gift-hero__wave-secondary {
    width: 96%;
    opacity: .34;
    object-position: 66% center;
  }

  body.gift-home .gift-hero__wave-main {
    width: 96%;
    opacity: .46;
    object-position: 64% center;
  }
}

@media (max-width: 768px) {
  body.gift-home .gift-hero {
    background: linear-gradient(90deg, #fff 0%, #fffefd 72%, #fbf5f8 100%);
  }

  body.gift-home .gift-hero__wave-glow-underlay {
    top: auto;
    bottom: 18px;
    width: 100%;
    height: 560px;
    opacity: .16;
    object-position: 68% center;
  }

  body.gift-home .gift-hero__wave-secondary {
    top: auto;
    bottom: 42px;
    width: 100%;
    height: 520px;
    opacity: .12;
    object-position: 66% center;
  }

  body.gift-home .gift-hero__wave-main {
    top: auto;
    bottom: 34px;
    width: 100%;
    height: 520px;
    opacity: .18;
    object-position: 65% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.gift-home .gift-hero__wave-glow-underlay,
  body.gift-home .gift-hero__wave-secondary,
  body.gift-home .gift-hero__wave-main {
    animation: none !important;
  }
}

/* Stage 6.4: uniform glass geometry, subtle depth and restored left portrait light. */
body.gift-home .gift-hero__wave-glow-underlay {
  width: 86%;
  opacity: .67;
  filter: saturate(.8) brightness(1.03);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .3) 11%, rgba(0, 0, 0, .82) 23%, #000 35%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, .3) 11%, rgba(0, 0, 0, .82) 23%, #000 35%, #000 100%);
}

body.gift-home .gift-hero__visual::before {
  right: 270px;
  opacity: .46;
}

body.gift-home .gift-hero__ready-card {
  border-radius: 32px;
  transform: perspective(1100px) rotateY(-4.8deg) rotateZ(-.35deg);
  transform-origin: 100% 50%;
}

body.gift-home .gift-hero:hover .gift-hero__ready-card {
  transform: perspective(1100px) translate3d(-2px, -2px, 0) rotateY(-5.2deg) rotateZ(-.45deg);
}

body.gift-home .gift-hero__ready-icon {
  border-color: rgba(255, 255, 255, .92);
  background:
    radial-gradient(circle at 28% 18%, #fff 0 24%, rgba(255, 255, 255, .98) 52%, rgba(255, 250, 252, .94) 76%, rgba(255, 242, 247, .88) 100%);
  box-shadow:
    inset 0 1px 0 #fff,
    inset 0 -1px 0 rgba(226, 154, 183, .08),
    -11px 15px 38px rgba(255, 244, 249, .76),
    -7px 13px 32px rgba(241, 149, 182, .2),
    0 19px 40px rgba(225, 108, 151, .14);
}

@media (max-width: 1152px) and (min-width: 769px) {
  body.gift-home .gift-hero__wave-glow-underlay {
    width: 92%;
    opacity: .55;
  }

  body.gift-home .gift-hero__visual::before {
    right: 210px;
    opacity: .4;
  }
}

@media (max-width: 768px) {
  body.gift-home .gift-hero__wave-glow-underlay {
    width: 100%;
    opacity: .18;
  }

  body.gift-home .gift-hero__visual::before {
    opacity: .28;
  }
}

/* Stage 6.5: clearer main wave and a more legible card perspective. */
body.gift-home .gift-hero__wave-main {
  opacity: .58;
  filter: saturate(.88) brightness(1.035) contrast(1.18);
}

body.gift-home .gift-hero__ready-card {
  transform: perspective(760px) rotateY(-8deg) rotateZ(-.3deg);
  transform-origin: 100% 50%;
}

body.gift-home .gift-hero:hover .gift-hero__ready-card {
  transform: perspective(760px) translate3d(-2px, -2px, 0) rotateY(-8.5deg) rotateZ(-.4deg);
}

@media (max-width: 1152px) and (min-width: 769px) {
  body.gift-home .gift-hero__wave-main {
    opacity: .49;
    filter: saturate(.84) brightness(1.04) contrast(1.14);
  }
}

@media (max-width: 768px) {
  body.gift-home .gift-hero__wave-main {
    opacity: .2;
    filter: saturate(.76) brightness(1.045) contrast(1.08);
  }
}

/* Stage 6.6: a cropped portion of the supplied glow softly crosses the portrait edge. */
body.gift-home .gift-hero__wave-glow-foreground {
  position: absolute;
  z-index: 12;
  top: -1px;
  right: calc((100vw - 1260px) / -2 + 50px);
  display: block;
  width: 86vw;
  height: 720px;
  object-fit: contain;
  object-position: right center;
  opacity: .3;
  filter: saturate(.76) brightness(1.07);
  mix-blend-mode: screen;
  -webkit-mask-image: radial-gradient(ellipse 16% 43% at 37% 51%, #000 0 18%, rgba(0, 0, 0, .8) 38%, rgba(0, 0, 0, .28) 61%, transparent 78%);
  mask-image: radial-gradient(ellipse 16% 43% at 37% 51%, #000 0 18%, rgba(0, 0, 0, .8) 38%, rgba(0, 0, 0, .28) 61%, transparent 78%);
  pointer-events: none;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
}

@media (max-width: 1600px) and (min-width: 1153px) {
  body.gift-home .gift-hero__wave-glow-foreground {
    right: calc((100vw - 1260px) / -2 + 30px);
  }
}

@media (max-width: 1152px) {
  body.gift-home .gift-hero__wave-glow-foreground {
    display: none;
  }
}

/* Stage 6.7: thicker, softly diffused glass rim on the time card. */
body.gift-home .gift-hero__ready-card::before {
  inset: -.7px;
  padding: 2.5px;
  opacity: .98;
  filter: blur(.55px) drop-shadow(0 0 2.5px rgba(255, 255, 255, .46));
}
