.gift-burst {
  position: fixed;
  inset: 0;
  z-index: 20000;
  display: grid;
  place-items: center;
  pointer-events: none;
  background: rgba(18, 12, 9, 0.28);
  opacity: 0;
  transition: opacity 0.35s ease, background 0.6s ease;
}
.gift-burst.is-ready {
  opacity: 1;
}
.gift-burst.is-burst {
  background: rgba(18, 12, 9, 0.08);
}
.gift-burst.is-done {
  opacity: 0;
}
.gift-burst__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.gift-burst__box {
  position: relative;
  width: 92px;
  height: 92px;
  transform: scale(0.72);
  transition: transform 0.38s cubic-bezier(0.2, 1.4, 0.3, 1);
}
.gift-burst.is-ready .gift-burst__box {
  transform: scale(1);
}
.gift-burst.is-burst .gift-burst__box {
  transform: scale(1.18);
  opacity: 0;
  transition: transform 0.28s ease, opacity 0.22s ease;
}
.gift-burst__body {
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 0;
  height: 62px;
  background: linear-gradient(180deg, #c45a4a 0%, #9b2f28 100%);
  border-radius: 6px;
  box-shadow: 0 10px 22px rgba(0, 0, 0, 0.28);
}
.gift-burst__lid {
  position: absolute;
  left: 4px;
  right: 4px;
  top: 12px;
  height: 22px;
  background: linear-gradient(180deg, #e07a68 0%, #c45a4a 100%);
  border-radius: 5px;
  z-index: 2;
  transform-origin: 20% 100%;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.3, 1);
}
.gift-burst.is-burst .gift-burst__lid {
  transform: translate(-18px, -46px) rotate(-28deg);
}
.gift-burst__ribbon-v {
  position: absolute;
  left: 50%;
  top: 12px;
  bottom: 0;
  width: 14px;
  margin-left: -7px;
  background: #c9a882;
  z-index: 3;
}
.gift-burst__ribbon-h {
  position: absolute;
  left: 10px;
  right: 10px;
  top: 42px;
  height: 14px;
  background: #c9a882;
  z-index: 3;
}
.gift-burst__bow {
  position: absolute;
  left: 50%;
  top: 0;
  width: 36px;
  height: 22px;
  margin-left: -18px;
  z-index: 4;
}
.gift-burst__bow::before,
.gift-burst__bow::after {
  content: "";
  position: absolute;
  top: 0;
  width: 20px;
  height: 20px;
  background: #d4b48a;
  border-radius: 50% 50% 50% 8px;
}
.gift-burst__bow::before {
  left: 0;
  transform: rotate(-28deg);
}
.gift-burst__bow::after {
  right: 0;
  transform: rotate(28deg);
}
