.gift-runtime{
  position:fixed; inset:0; z-index:1000; display:grid; place-items:center; padding:24px;
  background:rgba(24,13,22,.72); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  opacity:1; transition:opacity .38s cubic-bezier(.32,.72,0,1);
}
.gift-runtime.is-hidden{opacity:0; pointer-events:none;}
.gift-runtime-card{
  width:min(340px,100%); padding:30px 26px 26px; text-align:center; color:#fff8f0;
  border:1px solid rgba(255,255,255,.18); border-radius:24px;
  background:linear-gradient(145deg,rgba(255,255,255,.16),rgba(255,255,255,.06));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 24px 70px rgba(8,3,10,.3);
}
.gift-runtime-mark{display:grid; place-items:center; width:42px; height:42px; margin:0 auto 14px; border-radius:50%; color:#ead9ac; background:rgba(234,217,172,.14); font-size:1.15rem; animation:runtime-pulse 1.8s ease-in-out infinite;}
.gift-runtime-title{margin:0; font:600 1.35rem/1.2 Georgia,serif;}
.gift-runtime-copy{margin:10px auto 0; max-width:28ch; color:rgba(255,248,240,.72); font:400 .9rem/1.55 system-ui,sans-serif;}
.gift-runtime-retry{min-height:44px; margin-top:20px; padding:10px 18px; border:1px solid rgba(255,255,255,.28); border-radius:999px; color:#2b1d29; background:#ead9ac; font:600 .86rem system-ui,sans-serif; cursor:pointer; transition:transform .25s cubic-bezier(.32,.72,0,1),filter .25s cubic-bezier(.32,.72,0,1);}
.gift-runtime-retry:hover{filter:brightness(1.06); transform:translateY(-2px);}
.gift-runtime-retry:active{transform:scale(.97);}
.gift-runtime-retry:focus-visible{outline:3px solid #fff; outline-offset:3px;}

button,[role="button"]{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}
.menu-btn,.continue-btn,.back-btn,.music-toggle,.song-play,.attachment-link{min-height:44px;}
[data-slot].no-photo{background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(0,0,0,.08));}
[data-reveal]{opacity:0;transform:translateY(20px);filter:blur(5px);transition:opacity .8s cubic-bezier(.32,.72,0,1),transform .8s cubic-bezier(.32,.72,0,1),filter .8s cubic-bezier(.32,.72,0,1);transition-delay:var(--reveal-delay,0ms)}
[data-reveal].is-visible{opacity:1;transform:none;filter:none}
@keyframes runtime-pulse{0%,100%{transform:scale(.94);opacity:.7}50%{transform:scale(1.08);opacity:1}}
@media (prefers-reduced-motion:reduce){.gift-runtime,.gift-runtime-mark,.gift-runtime-retry{transition:none;animation:none}[data-reveal]{opacity:1;transform:none;filter:none;transition:none}}
