.petals-layer, .sparkles-layer {
  position: fixed; inset: 0; pointer-events: none; z-index: 2;
  display: none;
}
.petals-layer::before, .petals-layer::after {
  position: absolute;
  width: min(26vw, 300px);
  height: min(30vw, 340px);
  color: rgba(126, 145, 107, .58);
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.5rem, 5vw, 4.8rem);
  line-height: 1.15;
  letter-spacing: .15em;
  text-shadow: 14px 24px 0 rgba(190, 158, 92, .46), 44px 62px 0 rgba(126, 145, 107, .38);
  animation: floralFrame 14s ease-in-out infinite;
}
.petals-layer::before {
  content: '❀  ❁\A   ❀  ❧';
  white-space: pre;
  top: -2rem;
  right: -1rem;
  transform: rotate(16deg);
}
.petals-layer::after {
  content: '❧  ❀\A ❁  ❀';
  white-space: pre;
  left: -1rem;
  bottom: -2rem;
  transform: rotate(196deg);
  animation-delay: -6s;
}
.sparkles-layer::before, .sparkles-layer::after {
  content: '✦'; position: absolute; color: rgba(143,165,139,.35); animation: sparkles 8s linear infinite;
}
.sparkles-layer::before { left: 20%; bottom: 8%; }
.sparkles-layer::after { right: 20%; top: 20%; animation-duration: 10s; }
.section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.section::before,
.section::after {
  content: '❀  ❧\A   ❁  ❧';
  white-space: pre;
  position: absolute;
  display: block;
  z-index: 2;
  width: min(25vw, 280px);
  height: min(28vw, 320px);
  color: rgba(126, 145, 107, .5);
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.2rem, 4vw, 4rem);
  line-height: 1.25;
  letter-spacing: .12em;
  opacity: .95;
  text-shadow: 12px 22px 0 rgba(190, 158, 92, .62), 38px 58px 0 rgba(126, 145, 107, .48);
  background:
    radial-gradient(ellipse at 75% 18%, rgba(126, 145, 107, .7) 0 5%, transparent 5.8%),
    radial-gradient(ellipse at 55% 38%, rgba(190, 158, 92, .72) 0 4%, transparent 4.8%),
    linear-gradient(140deg, transparent 47%, rgba(126, 145, 107, .55) 48% 50%, transparent 51%);
  background-repeat: no-repeat;
  animation: sectionFloralSway 16s ease-in-out infinite;
  display: none;
}
.section::before {
  top: -2.5rem;
  right: -1rem;
  transform: rotate(18deg);
}
.section::after {
  bottom: -2.5rem;
  left: -1rem;
  transform: rotate(198deg);
  animation-delay: -8s;
}
.section > * {
  position: relative;
  z-index: 3;
}
@keyframes floralFrame {
  0%, 100% { translate: 0 0; }
  50% { translate: 0 8px; }
}
@keyframes sectionFloralSway {
  0%, 100% { translate: 0 0; rotate: 0deg; }
  50% { translate: 0 7px; rotate: 1.5deg; }
}
@keyframes sparkles {
  0% { transform: translateY(0) scale(0.9); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translateY(-20px) scale(1.1); opacity: 0; }
}
@keyframes bounceHint {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: .8; }
  50% { transform: translateX(-50%) translateY(8px); opacity: 1; }
}
