/* ============================================================================
   PRIME shared gift system (v155) - ONE place for Flow AND Videos.
   Served to both rooms. The client is /gift.js (window.PrimeGift).
   Sprite symbols (#g-rose .. #g-yacht) live in each page; the module reuses them.
   ============================================================================ */
.wGiftStrip{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:10px 0 2px}
.wGiftStripLbl{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--gold);text-transform:uppercase}
.wGiftChip{display:inline-flex;align-items:center;gap:5px;font-size:12px;background:rgba(212,175,90,.12);border:1px solid rgba(212,175,90,.35);border-radius:999px;padding:3px 9px}
.wGiftChip i{font-style:normal;opacity:.8}
.wGiftSheet{position:fixed;inset:0;z-index:2147483644;background:rgba(3,5,8,.66);display:flex;align-items:flex-end;justify-content:center;padding-bottom:calc(var(--prime-global-bottom-h,70px) + 10px)}
@media(min-width:600px){.wGiftSheet{align-items:center}}
.wGiftCard{width:100%;max-width:440px;background:linear-gradient(165deg,#161c27,#0c0f16);border:1px solid rgba(212,175,90,.3);border-radius:20px 20px 0 0;padding:18px 18px 22px;max-height:calc(100vh - var(--prime-global-bottom-h,70px) - 28px);overflow:auto;box-shadow:0 -20px 60px rgba(0,0,0,.6);animation:wGiftIn .34s cubic-bezier(.2,1.4,.4,1)}
@keyframes wGiftIn{from{transform:translateY(26px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.wGiftHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.wGiftHead b{font-size:16px}
.wGiftHead small{display:block;color:#9fa9b5;font-size:11.5px;font-weight:600;margin-top:2px}
.wGiftX{background:none;border:0;color:inherit;font-size:22px;line-height:1;cursor:pointer}
.wGiftList{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.wGiftItem{display:grid;gap:5px;justify-items:center;background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:12px 6px;color:inherit;cursor:pointer;font:inherit;transition:transform .16s,border-color .16s,background .16s}
.wGiftItem:hover{border-color:#D4AF5A;background:linear-gradient(160deg,rgba(212,175,90,.16),rgba(212,175,90,.04));transform:translateY(-2px)}
.wGiftIcon{font-size:24px}
.wGiftLbl{font-size:12px}
.wGiftItem b{font-size:12px;color:#D4AF5A}
.wGiftPinRow{margin-top:14px;border-top:1px solid rgba(255,255,255,.12);padding-top:12px;display:grid;gap:9px}
.wGiftPinRow label{display:grid;gap:6px;font-size:12px;font-weight:700}
.wGiftPinBox{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:none}
.pinCell{position:relative;display:block;height:96px}
.pinCell input{width:100%;height:100%;text-align:center;background:#0A0D12;border:2px solid rgba(212,175,90,.55);border-radius:18px;color:transparent;caret-color:#D4AF5A;font-size:56px;font-weight:900;line-height:1}
.pinCell input:focus{outline:none;border-color:#D4AF5A;box-shadow:0 0 0 3px rgba(212,175,90,.18);background:rgba(212,175,90,.08)}
.pinDot{position:absolute;inset:0;display:grid;place-items:center;font-size:66px;line-height:1;color:#fff;opacity:0;pointer-events:none}
.pinCell.filled .pinDot{opacity:1}
.wGiftHeadR{display:flex;align-items:center;gap:10px}
.wGiftRecharge{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:850;color:#141005;background:linear-gradient(145deg,#F0D68A,#D4AF5A);border-radius:999px;padding:6px 13px;text-decoration:none;box-shadow:0 6px 16px rgba(212,175,90,.35)}
.wGiftRecharge:hover{filter:brightness(1.06)}
.wGiftPinNote{font-size:12px;color:#9fe0a8}
.wGiftSendRow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.wGiftSendRow span{font-size:13px}
.wGiftSend{background:linear-gradient(145deg,#F0D68A,#D4AF5A);border:0;border-radius:999px;color:#141005;font-weight:800;padding:10px 18px;cursor:pointer}
.wGiftSend:disabled{opacity:.6}
.wGiftMsg{font-size:12px;color:#ff9d9d;min-height:14px}
.wGiftSheet[hidden],.wGiftPinRow[hidden],.wGiftStrip[hidden],.wGiftPinLabel[hidden],.wGiftPinNote[hidden]{display:none!important}
.wGiftCur{display:flex;gap:6px;margin-bottom:12px}
.wGiftCur button{flex:1;padding:8px 6px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(255,255,255,.04);color:inherit;font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.wGiftCur button.active{background:linear-gradient(145deg,#F0D68A,#D4AF5A);color:#141005;border-color:#D4AF5A}
.wGiftItemArt{width:46px;height:46px}
.wGiftChipArt{width:20px;height:20px}
.wGiftNoteArt{width:22px;height:22px}
.wGiftBtn{background:linear-gradient(145deg,#F0D68A,#D4AF5A)!important;color:#141005!important;border:0!important;font-weight:850;padding:0 16px;gap:7px}
.wGiftBtn:hover{filter:brightness(1.06)}
.wGiftBtn svg{width:18px;height:18px}
/* full-screen burst */
.wGiftBurst{position:fixed;inset:0;z-index:2147483646;display:flex;align-items:center;justify-content:center;pointer-events:none;background:radial-gradient(circle at 50% 44%,rgba(8,10,16,.82),rgba(3,5,9,.95));opacity:0;transition:opacity .42s ease}
.wGiftBurst.in{opacity:1}
.wGiftBurst[hidden]{display:none!important}
.wGiftBurstCard{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 38px;border-radius:26px;background:transparent;border:0;transform:scale(.4);opacity:0;transition:transform .5s cubic-bezier(.2,1.6,.35,1),opacity .4s}
.wGiftBurstCard.in{transform:scale(1);opacity:1}
.wGiftBurstCard.out{transform:scale(1.16);opacity:0}
.wGiftBurstGlow{position:absolute;left:50%;top:44%;width:300px;height:300px;margin:-150px 0 0 -150px;border-radius:50%;background:radial-gradient(circle,rgba(240,214,138,.62),transparent 62%);animation:giftGlow 1s ease-out forwards;pointer-events:none}
@keyframes giftGlow{from{transform:scale(.4);opacity:0}55%{opacity:1}to{transform:scale(1.6);opacity:0}}
.wGiftBurstArt{width:min(44vmin,330px);height:min(44vmin,330px);filter:drop-shadow(0 26px 60px rgba(0,0,0,.65));animation:giftFloat 1.7s ease-in-out infinite}
.wGiftBurstEmoji{font-size:min(38vmin,270px);line-height:1;animation:giftFloat 1.7s ease-in-out infinite}
.wGiftBurstTxt{text-align:center}
.wGiftBurstTxt b{display:block;font-size:clamp(20px,3.4vmin,30px);color:#fff}
.wGiftBurstTxt span{color:#c3cbd3;font-size:clamp(14px,2.2vmin,19px)}
@keyframes giftFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-9px) rotate(3deg)}}
/* v165: SCOPED to the burst card. The floating combo counter that gift.js
   injects is position:fixed;left:50%;top:24% and NEVER resets `right`, so this
   rule's right:10px landed on it. left:50% + right:10px on a fixed box forces
   the width to fill the gap - 490px on a 1000px screen - producing a gold bar
   that covered the global gift broadcast behind it. Scoped here, the small
   badge on the burst card keeps its styling and the floating counter is left
   to shrink-to-fit as gift.js intends. */
.wGiftBurstCard .wGiftCombo{position:absolute;top:6px;right:10px;background:linear-gradient(145deg,#F0D68A,#D4AF5A);color:#141005;font-weight:900;font-size:22px;border-radius:999px;padding:4px 14px;box-shadow:0 8px 22px rgba(0,0,0,.5)}
.wGiftBurstVid{width:100%;height:100%;object-fit:contain;background:#000}
.wGiftSparks{position:absolute;left:50%;top:42%;pointer-events:none}
.wGiftSparks span{position:absolute;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle,#FFF3B0,#F0D68A);animation:giftSpark .95s ease-out forwards}
@keyframes giftSpark{from{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.2);opacity:0}}
/* per-gift cinematics */
@keyframes gDoveIn{from{transform:translate(-60vw,-12px) rotate(-12deg);opacity:0}60%{opacity:1}to{transform:translate(0,0) rotate(0);opacity:1}}
@keyframes gRoar{0%{transform:scale(.3);opacity:0}45%{transform:scale(1.16)}58%{transform:scale(1) translateX(-4px)}70%{transform:scale(1) translateX(4px)}82%{transform:scale(1) translateX(-3px)}100%{transform:scale(1)}}
@keyframes gSpinIn{from{transform:scale(.2) rotate(-220deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}
@keyframes gRise{from{transform:translateY(42vh) scale(.4);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes gLaunch{from{transform:translateY(62vh) scale(.5);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
@keyframes gBoxOpen{0%{transform:scale(.55) rotate(-7deg);opacity:0}55%{transform:scale(1.2) rotate(5deg)}76%{transform:scale(1) rotate(-3deg)}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes gRev{from{transform:translateX(42vw) scale(.7);opacity:0}to{transform:translateX(0) scale(1);opacity:1}}
@keyframes gSail{from{transform:translateX(-42vw) translateY(6px);opacity:0}to{transform:translateX(0) translateY(0);opacity:1}}
.wGiftBurstArt.anim-dove{animation:gDoveIn .95s cubic-bezier(.2,.9,.3,1) both}
.wGiftBurstArt.anim-lion{animation:gRoar 1.1s ease-out both}
.wGiftBurstArt.anim-spin{animation:gSpinIn .85s cubic-bezier(.2,1.3,.4,1) both}
.wGiftBurstArt.anim-rise{animation:gRise .85s cubic-bezier(.2,1,.3,1) both}
.wGiftBurstArt.anim-launch{animation:gLaunch .75s cubic-bezier(.2,1,.3,1) both}
.wGiftBurstArt.anim-box{animation:gBoxOpen .95s cubic-bezier(.2,1.5,.4,1) both}
.wGiftBurstArt.anim-rev{animation:gRev .85s cubic-bezier(.2,1,.3,1) both}
.wGiftBurstArt.anim-sail{animation:gSail 1s ease-out both}
.wGiftBurstEmoji.anim-dove,.wGiftBurstEmoji.anim-lion,.wGiftBurstEmoji.anim-spin,.wGiftBurstEmoji.anim-rise,.wGiftBurstEmoji.anim-launch,.wGiftBurstEmoji.anim-box,.wGiftBurstEmoji.anim-rev,.wGiftBurstEmoji.anim-sail{animation:giftFloat 1.7s ease-in-out infinite}
/* arrival toast */
.wGiftNote{position:fixed;left:50%;top:calc(var(--prime-global-header-live-h,var(--prime-global-header-h,72px)) + 10px);z-index:2147483645;transform:translate(-50%,-160%);display:flex;align-items:center;gap:10px;padding:11px 18px;border-radius:999px;background:linear-gradient(145deg,#F0D68A,#D4AF5A);color:#141005;font-size:14px;font-weight:850;box-shadow:0 12px 34px rgba(0,0,0,.45);transition:transform .35s ease;pointer-events:none;max-width:92vw}
.wGiftNote[hidden]{display:none!important}
.wGiftNote.on{transform:translate(-50%,0)}
.wGiftNoteIcon{font-size:20px}
/* gift-arrival preview (videos) */
.wPreviewPlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:9;display:inline-flex;align-items:center;gap:10px;padding:16px 30px;border:0;border-radius:999px;background:linear-gradient(145deg,#F0D68A,#D4AF5A);color:#141005;font-size:17px;font-weight:900;cursor:pointer;box-shadow:0 14px 40px rgba(0,0,0,.55)}
.wPreviewPlay[hidden]{display:none!important}
#vPlayerWrap.preview::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,6,10,.32),rgba(4,6,10,.55));z-index:8;pointer-events:none}
/* gifted shelf (videos) */
.giftShelf{margin:6px 0 20px}
.giftRail{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}
.giftRailCard{flex:0 0 auto;width:196px;display:grid;gap:6px;text-align:left;background:none;border:0;color:inherit;cursor:pointer;font:inherit}
.giftRailThumb{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#0E1118;display:grid;place-items:center;border:1px solid rgba(212,175,90,.35)}
.giftRailThumb img{width:100%;height:100%;object-fit:cover}
.giftRailPh{font-size:34px}
.giftRailCard b{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.giftRailCard small{color:#D4AF5A;font-size:12px;font-weight:700}
.topGifters{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.gifterChip{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;background:rgba(212,175,90,.12);border:1px solid rgba(212,175,90,.35);border-radius:999px;padding:5px 11px}
.gifterChip i{font-style:normal;width:18px;height:18px;border-radius:50%;background:linear-gradient(145deg,#F0D68A,#D4AF5A);color:#141005;display:grid;place-items:center;font-size:11px;font-weight:900}
.gifterChip b{color:#D4AF5A}
a.gifterChip{text-decoration:none;color:inherit}
a.gifterChip:hover{border-color:#D4AF5A;background:rgba(212,175,90,.2)}
.giftPeriod{display:flex;gap:6px}
.giftPeriod .chip{padding:6px 12px;font-size:12px;cursor:pointer;border:1px solid rgba(255,255,255,.18)}
.giftPeriod .chip.active{background:linear-gradient(145deg,#F0D68A,#D4AF5A);color:#141005;border-color:#D4AF5A;font-weight:800}
.giftPrize{margin:8px 0 12px;padding:10px 14px;border-radius:12px;background:rgba(212,175,90,.1);border:1px solid rgba(212,175,90,.35);font-size:13px;font-weight:700}
/* gift icons - Microsoft Fluent 3D emoji, transparent PNG (v158) */
.giftPhoto{object-fit:contain;object-position:center;background:transparent;border:0;border-radius:0;display:inline-block;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}
img.wGiftBurstArt{filter:drop-shadow(0 22px 50px rgba(0,0,0,.62))}
img.wGiftItemArt{border-radius:0}
img.wGiftChipArt{border-radius:0}
img.wGiftNoteArt{border-radius:0}
/* ---- alpha/transparent cinematics (v160): composite over the stream, no backdrop ---- */
.wGiftBurst--alpha{background:transparent}
.wGiftBurst--alpha .wGiftBurstVid{background:transparent}
.wGiftBurst--alpha .wGiftBurstCard{background:transparent;border:0}
/* ---- combo tiers: the more that is sent, the hotter it looks ---- */
.wGiftBurst.tier-2 .wGiftBurstGlow{width:360px;height:360px;margin:-180px 0 0 -180px}
.wGiftBurst.tier-3 .wGiftBurstGlow{width:420px;height:420px;margin:-210px 0 0 -210px;background:radial-gradient(circle,rgba(255,196,90,.72),transparent 62%)}
.wGiftBurst.tier-4 .wGiftBurstGlow{width:480px;height:480px;margin:-240px 0 0 -240px;background:radial-gradient(circle,rgba(255,170,60,.8),transparent 62%)}
.wGiftBurst.tier-3 .wGiftCombo,.wGiftBurst.tier-4 .wGiftCombo{font-size:28px;padding:6px 18px}
.wGiftBurst.tier-4 .wGiftBurstTxt b{font-size:clamp(24px,4vmin,34px)}
/* apng / image cinematic (v160) */
.wGiftBurstImg{width:min(78vmin,540px);height:auto;filter:drop-shadow(0 26px 60px rgba(0,0,0,.6))}
.wGiftBurst--alpha .wGiftBurstImg{filter:drop-shadow(0 20px 46px rgba(0,0,0,.55))}
/* svga / pag canvas host */
.wGiftBurst svg,.wGiftBurst canvas{max-width:100%;max-height:100%}
