.dc-search-overlay{
  position:absolute; inset:0;
  display:none; place-items:center;
  background: radial-gradient(circle at 50% 30%, rgba(255,255,255,.82), rgba(255,255,255,.55));
  backdrop-filter: blur(6px);
  z-index: 50;
  overflow:hidden;
}
.dc-search-overlay.is-active{ display:grid; animation: dcFadeIn .18s ease-out; }
.dc-search-overlay.is-hiding{ animation: dcFadeOut .18s ease-out forwards; }

@keyframes dcFadeIn{ from{opacity:0} to{opacity:1} }
@keyframes dcFadeOut{ from{opacity:1} to{opacity:0} }

.dc-search-overlay-text{
  margin-top: 14px;
  font-weight: 700;
  font-size: 18px;
  opacity:.92;
  animation: dcTextPulse 1s ease-in-out infinite;
}
@keyframes dcTextPulse{ 0%,100%{ transform:translateY(0); opacity:.9 } 50%{ transform:translateY(-2px); opacity:1 } }

.dc-giftbox{
  position: relative;
  width: 160px; height: 160px;
  transform: translateZ(0);
  animation: dcBoxBounce .9s cubic-bezier(.2,.8,.2,1) infinite;
}
@keyframes dcBoxBounce{ 0%,100%{ transform: translateY(0) scale(1) } 50%{ transform: translateY(-10px) scale(1.03) } }

.dc-giftbox-box{
  position:absolute; left:18px; right:18px; bottom:18px; height:92px;
  border-radius: 18px;
  background: linear-gradient(135deg, #ff7a18, #fdda24);
  box-shadow: 0 20px 40px rgba(0,0,0,.15);
}
.dc-giftbox-lid{
  position:absolute; left:10px; right:10px; top:32px; height:44px;
  border-radius: 18px;
  background: linear-gradient(135deg, #ff4d4d, #ff8a8a);
  transform-origin: 50% 100%;
}
.dc-giftbox-ribbon{
  position:absolute; left:50%; top:34px; bottom:18px; width:18px;
  transform:translateX(-50%);
  border-radius: 12px;
  background: rgba(255,255,255,.86);
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
.dc-search-overlay.is-opening .dc-giftbox-lid{
  animation: dcLidOpen .45s cubic-bezier(.2,.9,.2,1) forwards;
}
@keyframes dcLidOpen{ 0%{ transform: rotate(0deg) translateY(0) } 100%{ transform: rotate(-18deg) translateY(-18px) } }

.dc-confetti{
  position:absolute; inset:0;
  width:100%; height:100%;
  pointer-events:none;
}

@media (prefers-reduced-motion: reduce){
  .dc-search-overlay-text,
  .dc-giftbox{ animation: none !important; }
  .dc-search-overlay.is-opening .dc-giftbox-lid{ animation: none !important; }
}
