.birthday-card,
.birthday-home-hint {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.birthday-card {
  display: block;
  width: 100%;
  min-height: 260px;
  margin-bottom: 42px;
  padding: clamp(28px, 5vw, 54px);
  text-align: left;
  cursor: pointer;
}

.birthday-card::before,
.birthday-home-hint::before {
  content: '';
  position: absolute;
  inset: -44%;
  z-index: -1;
  background:
    radial-gradient(circle at 18% 18%, rgba(255, 255, 255, .8), transparent 18%),
    conic-gradient(from 120deg, rgba(234, 111, 145, .28), rgba(255, 213, 105, .22), rgba(164, 221, 255, .24), rgba(234, 111, 145, .28));
  animation: birthdayAura 12s linear infinite;
}

.birthday-card h2 {
  max-width: 680px;
  margin: 0 0 12px;
  color: var(--ink);
  font-size: clamp(2.1rem, 5vw, 4.8rem);
  line-height: .95;
}

.birthday-card p {
  max-width: 640px;
  color: var(--muted);
  font-size: 1.05rem;
  line-height: 1.85;
}

.birthday-pill {
  display: inline-flex;
  margin-bottom: 18px;
  padding: 7px 14px;
  color: white;
  border-radius: 999px;
  background: linear-gradient(135deg, #ef6f9b, #ffb668);
  box-shadow: 0 12px 28px rgba(234, 111, 145, .32);
  font-weight: 900;
}

.birthday-mini-cake {
  position: absolute;
  right: clamp(20px, 5vw, 70px);
  bottom: 18px;
  width: clamp(154px, 22vw, 230px);
  height: auto;
  opacity: .98;
  filter: drop-shadow(0 22px 30px rgba(147, 68, 94, .24));
}

.birthday-home-hint {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  margin: -6px 0 22px;
  padding: 18px 22px;
  border: 1px solid rgba(255, 255, 255, .76);
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}

.birthday-home-hint span {
  display: grid;
  width: 58px;
  height: 58px;
  place-items: center;
  color: white;
  border-radius: 20px;
  background: linear-gradient(135deg, #ef6f9b, #ffba79);
  box-shadow: 0 14px 30px rgba(234, 111, 145, .28);
  font-weight: 900;
}

.birthday-home-hint strong {
  display: block;
  font-size: clamp(1.2rem, 2.4vw, 1.9rem);
}

.birthday-home-hint em {
  color: var(--muted);
  font-style: normal;
}

.birthday-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: none;
  overflow: auto;
  padding: clamp(16px, 3vw, 46px);
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 160, 190, .2), transparent 28%),
    radial-gradient(circle at 84% 14%, rgba(255, 214, 119, .12), transparent 25%),
    linear-gradient(135deg, rgba(18, 14, 21, .96), rgba(69, 42, 58, .94));
}

.birthday-overlay.open {
  display: block;
}

.birthday-stage {
  position: relative;
  display: grid;
  max-width: 1240px;
  min-height: calc(100vh - 92px);
  margin: 0 auto;
  overflow: hidden;
  place-items: center;
  color: white;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 34px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .035)),
    radial-gradient(circle at 62% 42%, rgba(255, 172, 200, .16), transparent 38%);
  box-shadow: 0 34px 90px rgba(0, 0, 0, .42);
  backdrop-filter: blur(26px);
}

.birthday-stage::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .32;
  background-image:
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: radial-gradient(circle at 50% 40%, black, transparent 72%);
}

.birthday-fluid {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
}

.birthday-content {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(320px, .96fr) minmax(360px, 1fr);
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  width: 100%;
  padding: clamp(34px, 6vw, 78px);
}

.birthday-opening {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  opacity: 1;
  transition: opacity .7s ease, transform .8s ease;
}

.cake-draw .birthday-opening,
.cake-ready .birthday-opening {
  opacity: 0;
  transform: scale(1.06);
}

.opening-moon {
  position: absolute;
  top: clamp(28px, 8vh, 78px);
  left: clamp(34px, 11vw, 130px);
  width: clamp(70px, 12vw, 138px);
  aspect-ratio: 1;
  border-radius: 50%;
  background:
    radial-gradient(circle at 38% 34%, #fffdf2, #ffe8bd 48%, rgba(255, 216, 142, .12) 72%, transparent 74%);
  box-shadow: 0 0 48px rgba(255, 224, 159, .4);
  animation: openingGlow 4s ease-in-out both;
}

.opening-ribbon {
  position: absolute;
  left: -12%;
  top: 49%;
  width: 124%;
  height: 92px;
  border-radius: 999px;
  opacity: .72;
  background:
    linear-gradient(90deg, transparent, rgba(255, 141, 180, .36), rgba(255, 221, 148, .2), rgba(255, 141, 180, .34), transparent);
  transform: rotate(-8deg) scaleX(.1);
  transform-origin: 18% 50%;
  filter: blur(.4px);
  animation: ribbonUnfold 2.5s cubic-bezier(.16, 1, .3, 1) both;
}

.opening-note {
  position: absolute;
  right: clamp(36px, 12vw, 170px);
  top: clamp(84px, 21vh, 190px);
  padding: 12px 18px;
  color: #664c53;
  border: 1px solid rgba(255, 255, 255, .76);
  border-radius: 18px;
  background: rgba(255, 251, 244, .74);
  box-shadow: 0 18px 34px rgba(54, 32, 45, .18);
  font-weight: 900;
  transform: rotate(3deg) translateY(10px);
  animation: noteFloat 3.1s cubic-bezier(.16, 1, .3, 1) both;
}

.opening-gift {
  position: absolute;
  left: clamp(44px, 18vw, 230px);
  bottom: clamp(64px, 14vh, 150px);
  width: 118px;
  height: 118px;
  transform: translateY(36px) scale(.72);
  opacity: 0;
  animation: giftRise 2.9s .35s cubic-bezier(.16, 1, .3, 1) both;
}

.gift-box,
.gift-lid,
.gift-bow {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

.gift-box {
  bottom: 0;
  width: 96px;
  height: 72px;
  border-radius: 14px;
  background: linear-gradient(135deg, #ff9dbc, #ef6f9b);
  box-shadow: inset 0 10px 18px rgba(255,255,255,.32), 0 18px 28px rgba(40,21,30,.22);
}

.gift-lid {
  bottom: 66px;
  width: 112px;
  height: 28px;
  border-radius: 12px;
  background: linear-gradient(135deg, #fff1a8, #ffb567);
  animation: giftLid 2.4s 1.4s ease-in-out both;
}

.gift-bow {
  bottom: 88px;
  width: 58px;
  height: 28px;
}

.gift-bow::before,
.gift-bow::after {
  content: '';
  position: absolute;
  width: 32px;
  height: 24px;
  border-radius: 50% 50% 38% 50%;
  background: #fff0a8;
}

.gift-bow::before {
  left: 0;
  transform: rotate(-22deg);
}

.gift-bow::after {
  right: 0;
  transform: scaleX(-1) rotate(-22deg);
}

.opening-candle {
  position: absolute;
  left: clamp(180px, 30vw, 410px);
  top: clamp(140px, 34vh, 300px);
  width: 18px;
  height: 74px;
  border-radius: 999px;
  background: repeating-linear-gradient(135deg, #fff 0 8px, #ff7da9 9px 17px);
  box-shadow: 0 0 22px rgba(255, 150, 184, .24);
  transform: translateY(18px);
  opacity: 0;
  animation: candleAppear 2.8s .7s ease both;
}

.opening-candle span {
  position: absolute;
  left: 50%;
  top: -34px;
  width: 28px;
  height: 40px;
  transform: translateX(-50%);
  border-radius: 52% 48% 46% 46%;
  background: radial-gradient(circle at 50% 72%, #fff8cf, #ffd86b 42%, #ff7d6a 74%, transparent 76%);
  filter: drop-shadow(0 0 18px rgba(255, 191, 91, .85));
  animation: stickerFlame 1.5s ease-in-out infinite;
}

.opening-petals,
.opening-sparks {
  position: absolute;
  inset: 0;
}

.opening-petal,
.opening-spark {
  position: absolute;
  display: block;
}

.opening-petal {
  width: 18px;
  height: 12px;
  border-radius: 70% 20% 70% 20%;
  background: linear-gradient(135deg, #fff, #ff97ba);
  box-shadow: 0 0 14px rgba(255, 140, 179, .34);
  animation: petalGather 3.8s cubic-bezier(.16, 1, .3, 1) both;
}

.opening-spark {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #ffe28a;
  box-shadow: 0 0 18px rgba(255, 213, 112, .86);
  animation: sparkGather 3.5s cubic-bezier(.16, 1, .3, 1) both;
}

.opening-petal.p1 { left: 8%; top: 28%; --tx: 300px; --ty: 172px; animation-delay: .05s; }
.opening-petal.p2 { left: 16%; top: 62%; --tx: 260px; --ty: -40px; animation-delay: .16s; }
.opening-petal.p3 { left: 28%; top: 18%; --tx: 120px; --ty: 150px; animation-delay: .22s; }
.opening-petal.p4 { left: 43%; top: 12%; --tx: -38px; --ty: 178px; animation-delay: .3s; }
.opening-petal.p5 { left: 62%; top: 19%; --tx: -220px; --ty: 124px; animation-delay: .38s; }
.opening-petal.p6 { left: 76%; top: 36%; --tx: -330px; --ty: 60px; animation-delay: .46s; }
.opening-petal.p7 { left: 86%; top: 62%; --tx: -420px; --ty: -78px; animation-delay: .54s; }
.opening-petal.p8 { left: 58%; top: 76%; --tx: -140px; --ty: -190px; animation-delay: .62s; }
.opening-petal.p9 { left: 34%; top: 82%; --tx: 60px; --ty: -220px; animation-delay: .7s; }
.opening-petal.p10 { left: 12%; top: 78%; --tx: 270px; --ty: -210px; animation-delay: .78s; }
.opening-petal.p11 { left: 20%; top: 42%; --tx: 210px; --ty: 80px; animation-delay: .86s; }
.opening-petal.p12 { left: 50%; top: 38%; --tx: -70px; --ty: 55px; animation-delay: .94s; }
.opening-petal.p13 { left: 70%; top: 82%; --tx: -300px; --ty: -218px; animation-delay: 1.02s; }
.opening-petal.p14 { left: 89%; top: 20%; --tx: -500px; --ty: 126px; animation-delay: 1.1s; }
.opening-petal.p15 { left: 48%; top: 90%; --tx: -34px; --ty: -292px; animation-delay: 1.18s; }
.opening-petal.p16 { left: 5%; top: 48%; --tx: 340px; --ty: 24px; animation-delay: 1.26s; }
.opening-petal.p17 { left: 80%; top: 48%; --tx: -382px; --ty: 8px; animation-delay: 1.34s; }
.opening-petal.p18 { left: 38%; top: 27%; --tx: 44px; --ty: 120px; animation-delay: 1.42s; }

.opening-spark.s1 { left: 12%; top: 22%; --tx: 286px; --ty: 170px; animation-delay: .2s; }
.opening-spark.s2 { left: 24%; top: 66%; --tx: 202px; --ty: -80px; animation-delay: .38s; }
.opening-spark.s3 { left: 39%; top: 14%; --tx: 28px; --ty: 172px; animation-delay: .56s; }
.opening-spark.s4 { left: 55%; top: 22%; --tx: -118px; --ty: 118px; animation-delay: .74s; }
.opening-spark.s5 { left: 72%; top: 68%; --tx: -292px; --ty: -122px; animation-delay: .92s; }
.opening-spark.s6 { left: 84%; top: 32%; --tx: -430px; --ty: 78px; animation-delay: 1.1s; }
.opening-spark.s7 { left: 32%; top: 88%; --tx: 90px; --ty: -246px; animation-delay: 1.28s; }
.opening-spark.s8 { left: 68%; top: 12%; --tx: -254px; --ty: 178px; animation-delay: 1.46s; }
.opening-spark.s9 { left: 8%; top: 70%; --tx: 338px; --ty: -145px; animation-delay: 1.64s; }
.opening-spark.s10 { left: 90%; top: 82%; --tx: -496px; --ty: -210px; animation-delay: 1.82s; }
.opening-spark.s11 { left: 46%; top: 58%; --tx: -24px; --ty: -30px; animation-delay: 2s; }
.opening-spark.s12 { left: 64%; top: 44%; --tx: -206px; --ty: 6px; animation-delay: 2.18s; }

.cake-scene {
  position: relative;
  min-height: 510px;
}

.cake-aurora {
  position: absolute;
  inset: 12% 4% 0;
  border-radius: 50%;
  opacity: .78;
  background:
    radial-gradient(circle at 46% 42%, rgba(255, 235, 242, .44), transparent 24%),
    radial-gradient(circle at 50% 62%, rgba(255, 119, 164, .22), transparent 35%),
    radial-gradient(circle at 54% 78%, rgba(255, 213, 112, .12), transparent 42%);
  filter: blur(16px);
  animation: cakeGlow 5.8s ease-in-out infinite;
}

.sticker-cake-stage {
  position: absolute;
  left: 50%;
  bottom: 20px;
  width: min(560px, 92vw);
  transform: translateX(-50%) translateY(48px) scale(.82) rotate(-2deg);
  opacity: 0;
  transform-origin: 50% 78%;
  transition:
    opacity .7s ease,
    transform .9s cubic-bezier(.16, 1, .3, 1),
    filter .7s ease;
  filter: drop-shadow(0 28px 34px rgba(52, 31, 42, .2));
}

.cake-draw .sticker-cake-stage,
.cake-ready .sticker-cake-stage {
  opacity: 1;
  transform: translateX(-50%) translateY(0) scale(1) rotate(-1deg);
}

.cake-ready .sticker-cake-stage {
  animation: stickerSettle 4.8s ease-in-out infinite;
}

.sticker-cake-stage:hover {
  transform: translateX(-50%) translateY(-8px) scale(1.025) rotate(1deg);
}

.sticker-cake {
  display: block;
  width: 100%;
  height: auto;
}

.cake-color-fill {
  opacity: 0;
  transform: scale(.96);
  transform-origin: center;
}

.cake-draw .cake-color-fill,
.cake-ready .cake-color-fill {
  animation: cakeColorBloom .95s cubic-bezier(.16, 1, .3, 1) forwards;
}

.cake-draw .cake-middle,
.cake-ready .cake-middle { animation-delay: .22s; }
.cake-draw .cake-top,
.cake-ready .cake-top { animation-delay: .42s; }

.cake-doodle-lines path {
  stroke-dasharray: 920;
  stroke-dashoffset: 920;
}

.cake-draw .cake-doodle-lines path,
.cake-ready .cake-doodle-lines path {
  animation: cakeLineDraw 1.35s cubic-bezier(.16, 1, .3, 1) forwards;
}

.cake-draw .cake-doodle-lines path:nth-child(2),
.cake-ready .cake-doodle-lines path:nth-child(2) { animation-delay: .08s; }
.cake-draw .cake-doodle-lines path:nth-child(3),
.cake-ready .cake-doodle-lines path:nth-child(3) { animation-delay: .16s; }
.cake-draw .cake-doodle-lines path:nth-child(4),
.cake-ready .cake-doodle-lines path:nth-child(4) { animation-delay: .24s; }
.cake-draw .cake-doodle-lines path:nth-child(5),
.cake-ready .cake-doodle-lines path:nth-child(5) { animation-delay: .32s; }

.sticker-flame {
  transform-origin: center bottom;
  opacity: .38;
  animation: candleWarmup 2.1s ease-in-out infinite;
}

.cake-ready .sticker-flame {
  opacity: 1;
}

.cake-decoration path,
.cake-decoration circle {
  transform-origin: center;
  animation: stickerSparkle 4.6s ease-in-out infinite;
}

.birthday-copy {
  position: relative;
  transform: translateY(18px);
  opacity: 0;
  transition: opacity .8s ease, transform .8s cubic-bezier(.16, 1, .3, 1);
}

.cake-draw .birthday-copy,
.cake-ready .birthday-copy {
  opacity: 1;
  transform: translateY(0);
}

.birthday-copy-kicker {
  display: inline-flex;
  margin-bottom: 14px;
  color: rgba(255, 230, 238, .86);
  font-size: .88rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.birthday-copy h2 {
  margin: 0 0 18px;
  color: #fff;
  font-size: clamp(3rem, 8vw, 7.2rem);
  line-height: .92;
  text-shadow: 0 18px 42px rgba(0, 0, 0, .22);
}

.birthday-copy p {
  max-width: 590px;
  margin: 0 0 22px;
  color: rgba(255, 246, 249, .84);
  font-size: 1.08rem;
  line-height: 1.9;
}

.couple-illustration {
  width: min(100%, 560px);
  margin-top: 12px;
  border-radius: 28px;
  filter: drop-shadow(0 22px 28px rgba(0, 0, 0, .18));
}

.watercolor-person {
  transform-origin: center;
  animation: characterBreathe 5.6s ease-in-out infinite;
}

.girl {
  animation-delay: -1.4s;
}

.shared-cake {
  animation: sharedCakeGlow 2.8s ease-in-out infinite;
}

.petal-dots path,
.petal-dots circle {
  animation: petalBlink 4s ease-in-out infinite;
}

.birthday-close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 8;
  padding: 10px 16px;
  color: white;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: transform .2s ease, background .2s ease;
}

.birthday-close:hover {
  transform: translateY(-2px);
  background: rgba(255, 255, 255, .2);
}

@keyframes birthdayAura {
  to { transform: rotate(360deg); }
}

@keyframes openingGlow {
  0% { opacity: 0; transform: translateY(-30px) scale(.76); }
  38% { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: .7; transform: translateY(18px) scale(.9); }
}

@keyframes ribbonUnfold {
  0% { opacity: 0; transform: rotate(-8deg) scaleX(.08); }
  48% { opacity: .78; transform: rotate(-8deg) scaleX(1); }
  100% { opacity: .18; transform: rotate(-8deg) scaleX(1.06) translateY(48px); }
}

@keyframes noteFloat {
  0% { opacity: 0; transform: rotate(3deg) translateY(22px) scale(.92); }
  42% { opacity: 1; transform: rotate(-2deg) translateY(0) scale(1); }
  100% { opacity: .18; transform: rotate(2deg) translateY(36px) scale(.9); }
}

@keyframes giftRise {
  0% { opacity: 0; transform: translateY(48px) scale(.65) rotate(-5deg); }
  48% { opacity: 1; transform: translateY(0) scale(1) rotate(0deg); }
  100% { opacity: .2; transform: translateY(-18px) scale(.86) rotate(4deg); }
}

@keyframes giftLid {
  0%, 45% { transform: translateX(-50%) rotate(0deg); }
  70%, 100% { transform: translateX(-50%) translateY(-18px) rotate(-12deg); }
}

@keyframes candleAppear {
  0% { opacity: 0; transform: translateY(24px) scale(.74); }
  42% { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: .16; transform: translateY(-22px) scale(.78); }
}

@keyframes petalGather {
  0% { opacity: 0; transform: translate(0, 0) rotate(0deg) scale(.7); }
  34% { opacity: .95; transform: translate(0, 0) rotate(80deg) scale(1); }
  78% { opacity: 1; transform: translate(var(--tx), var(--ty)) rotate(250deg) scale(.86); }
  100% { opacity: 0; transform: translate(var(--tx), var(--ty)) rotate(310deg) scale(.25); }
}

@keyframes sparkGather {
  0% { opacity: 0; transform: translate(0, 0) scale(.6); }
  40% { opacity: 1; transform: translate(0, 0) scale(1); }
  84% { opacity: .9; transform: translate(var(--tx), var(--ty)) scale(.8); }
  100% { opacity: 0; transform: translate(var(--tx), var(--ty)) scale(.18); }
}

@keyframes cakeGlow {
  0%, 100% { opacity: .62; transform: scale(.96); }
  50% { opacity: .95; transform: scale(1.04); }
}

@keyframes cakeLineDraw {
  to { stroke-dashoffset: 0; }
}

@keyframes cakeColorBloom {
  0% { opacity: 0; transform: scale(.94); filter: saturate(.72); }
  100% { opacity: 1; transform: scale(1); filter: saturate(1); }
}

@keyframes candleWarmup {
  0%, 100% { transform: skewX(-4deg) scale(.96); filter: drop-shadow(0 0 10px rgba(255, 190, 91, .55)); }
  42% { transform: skewX(7deg) scale(1.12); filter: drop-shadow(0 0 22px rgba(255, 190, 91, .88)); }
  72% { transform: skewX(-2deg) scale(1); }
}

@keyframes stickerSettle {
  0%, 100% { transform: translateX(-50%) translateY(0) scale(1) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-8px) scale(1.012) rotate(.6deg); }
}

@keyframes stickerSparkle {
  0%, 100% { opacity: .74; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
}

@keyframes stickerFlame {
  0%, 100% { transform: skewX(-4deg) scale(1); opacity: .94; }
  38% { transform: skewX(7deg) scale(1.12); opacity: 1; }
  72% { transform: skewX(-2deg) scale(.96); opacity: .86; }
}

@keyframes characterBreathe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

@keyframes sharedCakeGlow {
  0%, 100% { filter: drop-shadow(0 0 0 rgba(255, 206, 120, 0)); }
  50% { filter: drop-shadow(0 0 18px rgba(255, 206, 120, .45)); }
}

@keyframes petalBlink {
  0%, 100% { opacity: .46; }
  50% { opacity: .9; }
}

@media (max-width: 900px) {
  .birthday-content {
    grid-template-columns: 1fr;
    padding-top: 74px;
  }

  .cake-scene {
    min-height: 430px;
  }

  .sticker-cake-stage {
    width: min(500px, 94vw);
  }

  .birthday-copy h2 {
    font-size: clamp(3rem, 16vw, 5.8rem);
  }
}

@media (max-width: 620px) {
  .birthday-card {
    min-height: auto;
    padding-bottom: 32px;
  }

  .birthday-mini-cake {
    position: relative;
    right: auto;
    bottom: auto;
    display: block;
    margin: 22px auto 0;
  }

  .birthday-home-hint {
    align-items: flex-start;
    flex-direction: column;
  }

  .birthday-overlay {
    padding: 10px;
  }

  .birthday-stage {
    min-height: calc(100vh - 20px);
    border-radius: 26px;
  }

  .birthday-content {
    gap: 18px;
  }

  .cake-scene {
    min-height: 350px;
  }

  .sticker-cake-stage {
    width: 365px;
    bottom: 0;
  }

  .opening-note {
    right: 18px;
    max-width: 220px;
    font-size: .85rem;
  }

  .opening-gift {
    left: 24px;
    width: 84px;
    height: 84px;
  }

  .gift-box { width: 72px; height: 56px; }
  .gift-lid { width: 84px; bottom: 50px; }
  .gift-bow { bottom: 70px; }

  .birthday-copy p {
    font-size: .98rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .birthday-card::before,
  .birthday-home-hint::before,
  .birthday-opening,
  .cake-aurora,
  .sticker-cake-stage,
  .cake-color-fill,
  .cake-doodle-lines path,
  .cake-decoration path,
  .cake-decoration circle,
  .sticker-flame,
  .watercolor-person,
  .shared-cake,
  .petal-dots path,
  .petal-dots circle {
    animation: none !important;
    transition: none !important;
  }

  .birthday-opening {
    opacity: 0;
  }

  .sticker-cake-stage {
    opacity: 1;
    transform: translateX(-50%) translateY(0) scale(1) rotate(-1deg);
  }

  .birthday-copy,
  .cake-color-fill,
  .sticker-flame {
    opacity: 1;
  }

  .cake-color-fill {
    transform: scale(1);
  }

  .birthday-copy {
    transform: none;
  }

  .cake-doodle-lines path {
    stroke-dashoffset: 0;
  }
}
