/* Original vector gift art, catalogue browsing, celebrations and VIP room arrivals. */
.modal.gift-modal{width:min(760px,100%);max-height:94dvh;padding:24px 26px 20px}
.gift-search{display:flex;align-items:center;gap:10px;margin:15px 0 12px;padding:0 12px;border:1px solid #e7dce4;border-radius:14px;background:#fff;height:46px;color:#a14d72}
.gift-search>svg{width:18px;height:18px}
.gift-search input{width:100%;min-width:0;height:42px;border:0;outline:0;background:transparent;font-size:14px}
.gift-search span{white-space:nowrap;font-size:11px;color:#918590}
.gift-categories{display:flex;gap:7px;overflow:auto;padding:3px 1px 10px;scrollbar-width:thin}
.gift-categories button{flex:0 0 auto;padding:8px 13px;border:1px solid #eee3eb;border-radius:999px;background:#fff;color:#776975;font-size:12px;font-weight:700}
.gift-categories button.active{background:#7d3f78;border-color:#7d3f78;color:#fff}
.gift-selected-preview{display:flex;align-items:center;gap:12px;min-height:66px;margin:0 0 10px;padding:8px 12px;border:1px solid #efdfeb;border-radius:14px;background:linear-gradient(110deg,#fff8fc,#fff5ec)}
.gift-selected-preview .gift-illustration{width:48px;height:48px;flex:0 0 48px}
.gift-selected-preview>div{display:grid;gap:4px}.gift-selected-preview b{font-size:13px;color:#493349}.gift-selected-preview span{font-size:11px;color:#8e7a89}
.gift-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;max-height:min(42dvh,400px);overflow:auto;padding:2px 3px 10px;overscroll-behavior:contain;scrollbar-width:thin}
.modal.gift-modal .gift-option{position:relative;min-width:0;min-height:122px;gap:3px;padding:8px 4px;border:1px solid #f0e5ed;border-radius:14px;background:linear-gradient(180deg,#fff,#fff9fc);color:#594754;transition:transform .16s,border-color .16s,box-shadow .16s}
.modal.gift-modal .gift-option:hover{transform:translateY(-2px);border-color:#e5a9c6;box-shadow:0 7px 18px #823b6312}
.modal.gift-modal .gift-option.selected{border-color:#d64c89;background:linear-gradient(160deg,#fff0f7,#fffaf0);box-shadow:0 0 0 2px #d64c8920,0 8px 20px #823b6318}
.gift-option strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.25}
.gift-option>span{font-size:9px;color:#968490}
.gift-illustration{display:block;width:68px;height:68px;overflow:visible;filter:drop-shadow(0 5px 5px #4a18451c)}
.gift-option .gift-illustration{width:68px;height:68px}
.gift-orb{stroke:#fff9;stroke-width:2}.gift-orb-glow{opacity:.7}
.gift-main{fill:var(--gift-primary);stroke:var(--gift-deep);stroke-width:2.3;stroke-linejoin:round}
.gift-line{fill:none;stroke:var(--gift-deep);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.gift-leaf{fill:#a9df9c;stroke:#388b68;stroke-width:2}.gift-shine{fill:var(--gift-light);stroke:var(--gift-deep);stroke-width:1.5;stroke-linejoin:round}
.gift-orbit{fill:none;stroke:#fff9;stroke-width:1.7;stroke-dasharray:3 5;transform-origin:48px 48px;animation:gift-orbit-spin 12s linear infinite}
.gift-spark{fill:#fff;stroke:#fff;stroke-width:1;transform-origin:center;animation:gift-sparkle 1.8s ease-in-out infinite alternate}
.gift-option.selected .gift-illustration{animation:gift-card-bob 1.5s ease-in-out infinite}
.gift-catalog-empty{grid-column:1/-1;padding:24px;text-align:center;color:#827683;font-size:13px}
#gift-load-more{margin:0 0 10px;min-height:39px;border-radius:11px}
.gift-send-button{min-height:48px;border-radius:13px;font-size:14px}
.gift-celebration{position:fixed;z-index:90;left:50%;top:48%;width:min(340px,calc(100vw - 34px));min-height:230px;transform:translate(-50%,-50%);display:grid;justify-items:center;align-content:center;gap:8px;padding:23px;border:1px solid #fff9;border-radius:26px;background:radial-gradient(circle at 50% 5%,#fff8d8,#fff7fb 43%,#f8eaff);box-shadow:0 25px 90px #29122b55;animation:gift-celebration-enter .46s cubic-bezier(.18,.85,.2,1.2) both;pointer-events:auto;overflow:hidden}
.gift-celebration__stage{position:relative;z-index:1;width:142px;height:142px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#fff 24%,#fff9 55%,transparent 72%);animation:gift-hero-float 1.35s ease-in-out infinite alternate}
.gift-celebration__stage .gift-illustration{width:134px;height:134px;filter:drop-shadow(0 12px 12px #6a2b6140)}
.gift-celebration__stage::before{content:"";position:absolute;z-index:0;inset:15% 8%;background:url('/assets/pingora-import/gifts/res/drawable-xxhdpi-v4/icon_big_gift.webp') center/contain no-repeat;opacity:.14;pointer-events:none}
.gift-send-button img{width:24px;height:24px;object-fit:contain}
.gift-selected-preview{position:relative;overflow:hidden}.gift-selected-preview>svg,.gift-selected-preview>div{position:relative;z-index:1}.gift-selected-svga{position:absolute;z-index:0;inset:0;display:flex;justify-content:flex-end;opacity:.4;pointer-events:none}.gift-selected-svga canvas{width:60px!important;height:60px!important;max-width:60px!important;max-height:60px!important;object-fit:contain}.room-arrival{overflow:hidden}.room-arrival-svga{position:absolute;z-index:0;inset:0 20px 0 auto;width:64px;opacity:.48;pointer-events:none}.room-arrival-svga canvas{width:auto!important;height:100%!important;max-height:66px!important;max-width:64px!important;object-fit:contain}.room-arrival>span,.room-arrival>.avatar,.room-arrival>b{position:relative;z-index:1}
.gift-celebration__svga{position:absolute;z-index:1;inset:0;display:grid;place-items:center;overflow:hidden;pointer-events:none;opacity:.84}.gift-celebration__svga canvas{display:block;width:auto;height:100%;max-width:min(88vw,360px);max-height:70dvh;aspect-ratio:var(--svga-ratio);object-fit:contain}
.gift-celebration__svga--fullscreen{position:fixed;z-index:89;inset:0;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;opacity:.92}.gift-celebration__svga--fullscreen canvas{width:min(76vw,320px);height:auto;max-width:76vw;max-height:70dvh}.gift-celebration.has-svga{z-index:90;left:0;top:0;transform:none;animation:none;min-height:0;width:100vw;height:100dvh;padding:0;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:none}.gift-celebration.has-svga .gift-celebration__stage,.gift-celebration.has-svga .gift-celebration__copy,.gift-celebration.has-svga .gift-celebration__sparks{display:none}.gift-celebration.has-svga .gift-celebration__close{position:fixed;z-index:91;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));pointer-events:auto;background:#fff;color:#46334b;box-shadow:0 3px 16px #27132755}
.room-controls #mic-toggle{position:relative;overflow:visible}.room-mic-svga{position:absolute;z-index:2;inset:-12px;width:calc(100% + 24px);height:calc(100% + 24px);display:grid;place-items:center;overflow:visible;pointer-events:none}.room-mic-svga canvas{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain}
.gift-celebration__stage--room-sprite::after{content:"";position:absolute;z-index:2;inset:-16px;background:center/contain no-repeat;pointer-events:none;animation-duration:960ms;animation-timing-function:steps(1,end);animation-iteration-count:3}.gift-celebration__stage--room-sprite[data-room-gift-level="1"]::after{animation-name:pingora-room-gift-1}.gift-celebration__stage--room-sprite[data-room-gift-level="2"]::after{animation-name:pingora-room-gift-2}.gift-celebration__stage--room-sprite[data-room-gift-level="3"]::after{animation-name:pingora-room-gift-3}
.gift-celebration__svga--gift{inset:50% auto auto 50%;width:94px;height:94px;transform:translate(-50%,-50%);opacity:.28}.gift-celebration__svga--gift canvas{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain}.gift-vector-fallback{display:none}.gift-ai-art{transform-box:fill-box;transform-origin:center;animation:gift-ai-signature var(--gift-duration,1s) ease-in-out infinite alternate}
@keyframes gift-ai-signature{from{transform:translateY(1px) rotate(calc(var(--gift-sway,0deg)*-.6)) scale(.96)}to{transform:translateY(-2px) rotate(var(--gift-sway,0deg)) scale(1.04)}}
@keyframes pingora-room-gift-1{0%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_0.webp')}12.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_1.webp')}25%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_2.webp')}37.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_3.webp')}50%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_4.webp')}62.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_5.webp')}75%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_6.webp')}87.5%,100%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level1_7.webp')}}
@keyframes pingora-room-gift-2{0%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_0.webp')}12.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_1.webp')}25%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_2.webp')}37.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_3.webp')}50%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_4.webp')}62.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_5.webp')}75%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_6.webp')}87.5%,100%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level2_7.webp')}}
@keyframes pingora-room-gift-3{0%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_0.webp')}12.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_1.webp')}25%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_2.webp')}37.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_3.webp')}50%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_4.webp')}62.5%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_5.webp')}75%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_6.webp')}87.5%,100%{background-image:url('/assets/pingora-import/gifts/res/drawable/baseroom_ic_gift_anim_level3_7.webp')}}
.gift-celebration__copy{position:relative;z-index:2;display:grid;gap:4px;text-align:center;color:#573455}.gift-celebration__copy strong{font-size:17px}.gift-celebration__copy span{font-size:12px;color:#886b87}
.gift-celebration__close{position:absolute;z-index:3;right:9px;top:9px;width:32px;height:32px;border-radius:50%;background:#fff9;color:#694869;font-size:22px}
.gift-celebration__sparks{position:absolute;left:50%;top:45%;width:1px;height:1px;pointer-events:none}
.gift-celebration__sparks i{position:absolute;width:8px;height:8px;border-radius:2px;background:hsl(var(--spark-hue) 85% 62%);animation:gift-burst .8s cubic-bezier(.1,.75,.25,1) var(--spark-delay) both}
.gift-celebration--2{box-shadow:0 0 0 1px #f0c563,0 25px 90px #29122b55}.gift-celebration--3{border-color:#ffe891;box-shadow:0 0 0 2px #f8d769,0 0 42px #ffd65a8c,0 25px 90px #29122b55}
.gift-celebration--2 .gift-celebration__stage{filter:drop-shadow(0 0 15px #f7c563)}.gift-celebration--3 .gift-celebration__stage{filter:drop-shadow(0 0 23px #ffc947);animation:gift-hero-float .9s ease-in-out infinite alternate}
.room-arrival{position:fixed;z-index:75;left:50%;top:calc(env(safe-area-inset-top,0px) + 82px);transform:translateX(-50%);width:min(390px,calc(100vw - 28px));display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid #fff9;border-radius:17px;background:linear-gradient(110deg,#142e39f5,#263544f2);box-shadow:0 14px 42px #10121a55;color:#fff;animation:room-arrival-in .46s cubic-bezier(.2,.85,.25,1.2) both;pointer-events:none}
.room-arrival>span{display:grid;gap:3px;flex:1;min-width:0}.room-arrival strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.room-arrival small{font-size:10px;color:#d5d8e2}.room-arrival>b{font-size:21px;color:#a8d9d3}
.room-arrival--vip-1{border-color:#bc9df4;box-shadow:0 0 0 1px #bc9df4,0 14px 42px #10121a55}.room-arrival--vip-1>b{color:#d1adff}
.room-arrival--vip-2{border-color:#f4c86b;background:linear-gradient(110deg,#24313b,#44313c);box-shadow:0 0 0 1px #f4c86b,0 0 24px #f4c86b5c,0 14px 42px #10121a55}.room-arrival--vip-2>b{color:#ffd86f;animation:gift-sparkle .8s infinite alternate}
.room-arrival--vip-3{border-color:#fff0a0;background:linear-gradient(110deg,#292240,#53364a);box-shadow:0 0 0 2px #ffe477,0 0 34px #f3bfff80,0 14px 42px #10121a55}.room-arrival--vip-3>b{color:#fff19b;animation:gift-sparkle .55s infinite alternate}
.room-arrival--video{left:50%;top:50%;width:min(84vw,360px);height:min(72dvh,640px);max-height:640px;aspect-ratio:9/16;box-sizing:border-box;transform:translate(-50%,-50%);flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:18px;border:1px solid #ffffff66;border-radius:24px;background:#17121e;color:#fff;box-shadow:0 22px 90px #090711aa;animation:room-video-arrival .45s cubic-bezier(.2,.85,.25,1.2) both;isolation:isolate}.room-arrival--video::before{content:"";position:absolute;z-index:0;inset:0;border-radius:inherit;background:linear-gradient(180deg,#100c1720 20%,#100c1740 48%,#100c17e8 100%);pointer-events:none}.room-arrival__video{position:absolute;z-index:-1;inset:0;width:100%;height:100%;border-radius:inherit;object-fit:cover;background:#17121e}.room-arrival--video>.avatar,.room-arrival--video>span,.room-arrival--video>b{z-index:1}.room-arrival--video>span{flex:0 0 auto;width:100%;text-shadow:0 2px 12px #090711}.room-arrival--video strong{font-size:17px}.room-arrival--video small{font-size:12px;color:#f0e8f5}.room-arrival--video>.avatar{width:60px;height:60px;flex-basis:60px;margin-bottom:10px}.room-arrival--video>b{position:absolute;right:18px;bottom:24px;font-size:28px}.room-arrival--video .gift-celebration__svga{display:none}@keyframes room-video-arrival{from{opacity:0;transform:translate(-50%,-50%) scale(.9);filter:blur(5px)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:none}}
@keyframes gift-orbit-spin{to{transform:rotate(360deg)}}@keyframes gift-sparkle{from{opacity:.55;transform:scale(.75) rotate(0)}to{opacity:1;transform:scale(1.15) rotate(25deg)}}
@keyframes gift-card-bob{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-3px) scale(1.035)}}
@keyframes gift-celebration-enter{from{opacity:0;transform:translate(-50%,-50%) scale(.72);filter:blur(5px)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:none}}
@keyframes gift-hero-float{from{transform:translateY(2px) rotate(-3deg)}to{transform:translateY(-7px) rotate(3deg)}}
@keyframes gift-burst{from{opacity:1;transform:translate(0,0) rotate(0) scale(.4)}to{opacity:0;transform:translate(var(--spark-x),var(--spark-y)) rotate(200deg) scale(1.1)}}
@keyframes room-arrival-in{from{opacity:0;filter:blur(6px);transform:translate(-50%,-18px) scale(.92)}to{opacity:1;filter:none;transform:translate(-50%,0) scale(1)}}
@keyframes vip-seat-glow{0%,100%{filter:drop-shadow(0 0 0 #b785f000)}50%{filter:drop-shadow(0 0 9px #b785f0aa)}}
@keyframes room-vip-arrival-1{0%,100%{outline:0 solid #c9a4f200;box-shadow:none}24%{outline:2px solid #c9a4f2;box-shadow:0 0 28px #b785f077}62%{outline:1px solid #c9a4f2aa;box-shadow:0 0 16px #b785f044}}
@keyframes room-vip-arrival-2{0%,100%{outline:0 solid #f4cf7d00;box-shadow:none}18%,48%{outline:2px solid #f4cf7d;box-shadow:0 0 32px #f4cf7d88,0 0 12px #fff1c455}34%,70%{outline:1px solid #f4cf7daa;box-shadow:0 0 14px #f4cf7d44}}
@keyframes room-vip-arrival-3{0%,100%{outline:0 solid #fff0a000;box-shadow:none}15%,43%,68%{outline:2px solid #fff0a0;box-shadow:0 0 40px #e6b9ff99,0 0 20px #ffe47799}29%,56%,84%{outline:1px solid #fff0a0aa;box-shadow:0 0 18px #e6b9ff55,0 0 9px #ffe47755}}
.room-layout.room-entering-vip-1 .room-banner{animation:room-vip-arrival-1 1.8s ease-out both}
.room-layout.room-entering-vip-2 .room-banner{animation:room-vip-arrival-2 1.8s ease-out both}
.room-layout.room-entering-vip-3 .room-banner{animation:room-vip-arrival-3 1.8s ease-out both}
@media(max-width:640px){.modal.gift-modal{padding:28px 16px max(18px,env(safe-area-inset-bottom));max-height:94dvh}.gift-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:39dvh}.modal.gift-modal .gift-option{min-height:109px}.gift-option .gift-illustration{width:59px;height:59px}.gift-option strong{font-size:9px}.gift-search{margin-top:13px}.gift-celebration{top:43%;min-height:210px}.room-arrival{top:calc(env(safe-area-inset-top,0px) + 60px)}}
@media(prefers-reduced-motion:reduce){.gift-illustration,.gift-orbit,.gift-spark,.gift-celebration,.gift-celebration__stage,.gift-celebration__sparks i,.room-arrival,.room-layout.room-entering-vip-1 .room-banner,.room-layout.room-entering-vip-2 .room-banner,.room-layout.room-entering-vip-3 .room-banner{animation:none!important;transition:none!important}.gift-option:hover{transform:none}}
.gift-illustration[data-gift-effect="bloom"] .gift-ai-art,.gift-celebration__stage[data-gift-effect="bloom"] .gift-ai-art{animation-name:gift-effect-bloom}.gift-illustration[data-gift-effect="orbit"] .gift-ai-art,.gift-celebration__stage[data-gift-effect="orbit"] .gift-ai-art{animation-name:gift-effect-orbit}.gift-illustration[data-gift-effect="bounce"] .gift-ai-art,.gift-celebration__stage[data-gift-effect="bounce"] .gift-ai-art{animation-name:gift-effect-bounce}.gift-illustration[data-gift-effect="ripple"] .gift-ai-art,.gift-celebration__stage[data-gift-effect="ripple"] .gift-ai-art{animation-name:gift-effect-ripple}.gift-illustration[data-gift-effect="spark"] .gift-ai-art,.gift-celebration__stage[data-gift-effect="spark"] .gift-ai-art{animation-name:gift-effect-spark}
.room-gift-notice{position:fixed;z-index:120;top:calc(env(safe-area-inset-top,0px) + 12px);left:50%;width:min(440px,calc(100vw - 28px));box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:9px 14px 9px 9px;border:1px solid #fff9;border-radius:18px;background:linear-gradient(115deg,#fff9fcf5,#fff0dcf5);box-shadow:0 12px 40px #28122940;color:#392b41;transform:translateX(-50%);animation:room-gift-notice-in .32s cubic-bezier(.2,.85,.3,1.25) both;pointer-events:none}.room-gift-notice__art{flex:0 0 54px;width:54px;height:54px}.room-gift-notice__art .gift-illustration{width:54px;height:54px;animation:gift-card-bob .8s ease-in-out infinite alternate}.room-gift-notice__copy{display:grid;gap:4px;min-width:0}.room-gift-notice__copy strong{font-size:14px;overflow-wrap:anywhere}.room-gift-notice__copy small{font-size:11px;color:#795d78}.chat-gift-card{display:flex;align-items:center;gap:10px;min-width:185px;max-width:260px;padding:8px 11px;border:1px solid #f0c8d9;border-radius:14px;background:linear-gradient(125deg,#fff5fb,#fff5e6);box-shadow:0 5px 16px #9f4c7218}.chat-gift-card>.gift-illustration{width:54px;height:54px;flex:0 0 54px;animation:gift-card-bob var(--gift-duration,1s) ease-in-out infinite alternate}.chat-gift-card>span{display:grid;gap:4px}.chat-gift-card strong{font-size:12px;color:#57334f}.chat-gift-card small{font-size:10px;color:#896b85}
@keyframes gift-effect-bloom{0%{transform:scale(.82) rotate(calc(var(--gift-sway,0deg)*-.5));filter:brightness(.95)}65%{transform:scale(1.13) rotate(calc(var(--gift-sway,0deg)*.7));filter:brightness(1.18)}100%{transform:scale(1) rotate(var(--gift-sway,0deg));filter:brightness(1)}}
@keyframes gift-effect-orbit{0%{transform:translate(-3px,2px) rotate(calc(var(--gift-sway,0deg)*-.7))}50%{transform:translate(3px,-2px) rotate(var(--gift-sway,0deg))}100%{transform:translate(-2px,-1px) rotate(calc(var(--gift-sway,0deg)*.45))}}
@keyframes gift-effect-bounce{0%{transform:translateY(3px) scale(.94)}55%{transform:translateY(-5px) scale(1.08)}100%{transform:translateY(0) scale(1)}}
@keyframes gift-effect-ripple{0%{transform:scale(.9);filter:drop-shadow(0 0 0 #fff0)}50%{transform:scale(1.08);filter:drop-shadow(0 0 8px #fff9)}100%{transform:scale(.98);filter:drop-shadow(0 0 2px #fff5)}}
@keyframes gift-effect-spark{0%{transform:rotate(calc(var(--gift-sway,0deg)*-.4)) scale(.94);filter:brightness(.9)}45%{transform:rotate(calc(var(--gift-sway,0deg)*1.3)) scale(1.12);filter:brightness(1.35)}100%{transform:rotate(var(--gift-sway,0deg)) scale(1);filter:brightness(1)}}
@keyframes room-gift-notice-in{from{opacity:0;transform:translate(-50%,-22px) scale(.96)}to{opacity:1;transform:translate(-50%,0) scale(1)}}
@media(prefers-reduced-motion:reduce){.room-gift-notice,.room-gift-notice__art .gift-illustration,.chat-gift-card>.gift-illustration{animation:none!important}}
.room-arrival--video .room-arrival__video{filter:hue-rotate(var(--vip-video-hue,0deg)) saturate(1.08)}
.room-arrival__identity{display:flex;align-items:center;gap:11px;min-width:0}.room-arrival__notice{display:grid;gap:3px;min-width:0}.room-arrival__notice strong{font-size:13px;overflow-wrap:anywhere}.room-arrival__notice small{font-size:10px;color:#f5eaff}.room-arrival__close{display:none}
.room-arrival--video{position:fixed!important;inset:0!important;z-index:9999!important;left:0!important;top:0!important;width:100vw!important;height:100dvh!important;max-height:none!important;aspect-ratio:auto!important;box-sizing:border-box;display:block!important;padding:0!important;overflow:hidden;border:0!important;border-radius:0!important;transform:none!important;background:transparent!important;box-shadow:none!important;isolation:isolate;animation:room-fullscreen-arrival .38s ease-out both;pointer-events:auto}
.room-arrival--video::before{inset:0!important;border-radius:0!important;background:radial-gradient(ellipse at center,transparent 34%,#09071128 100%)!important}
.room-arrival--video .room-arrival__video{position:absolute!important;z-index:0!important;inset:0!important;width:100%!important;height:100%!important;max-width:100vw;max-height:100dvh;border-radius:0!important;object-fit:contain!important;background:transparent!important}
.room-arrival--video .room-arrival__identity{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:auto;display:grid;justify-items:center;gap:0;padding:0;border:0;border-radius:50%;background:transparent;box-shadow:none;color:#fff}
.room-arrival--video .room-arrival__identity>.avatar{width:clamp(92px,25vw,148px);height:clamp(92px,25vw,148px);font-size:clamp(28px,8vw,48px);border:3px solid #fff;box-shadow:0 0 0 5px #ffffff40,0 0 36px #ffd77dbb,0 0 90px #bc82ff66;animation:room-avatar-arrival 1.15s ease-in-out infinite alternate}
.room-arrival--video .room-arrival__notice{position:absolute;z-index:4;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 84px);box-sizing:border-box;justify-items:center;gap:2px;padding:9px 16px;border:1px solid #ffffffa8;border-radius:999px;background:rgba(15,11,22,.88);box-shadow:0 6px 22px #08050c88;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;text-align:center;text-shadow:0 1px 3px #08050c;pointer-events:none}
.room-arrival--video .room-arrival__notice strong{font-size:clamp(13px,3.6vw,16px);font-weight:850;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;color:#fff}.room-arrival--video .room-arrival__notice small{font-size:clamp(10px,2.8vw,12px);line-height:1.3;color:#f5eaff}
.room-arrival--video .room-arrival__close{position:absolute;z-index:4;top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right));display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff80;border-radius:50%;background:#17121e88;color:#fff;font-size:30px;line-height:1;backdrop-filter:blur(8px);pointer-events:auto}
.room-arrival--video .room-arrival__spark{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);color:#ffe891;font-size:clamp(150px,55vw,340px);opacity:.2;pointer-events:none;animation:gift-sparkle .8s infinite alternate}
.room-arrival--video .gift-celebration__svga{display:none}
@keyframes room-fullscreen-arrival{from{opacity:0;filter:blur(4px)}to{opacity:1;filter:none}}
@keyframes room-avatar-arrival{from{filter:drop-shadow(0 0 10px #ffe89188);transform:scale(.97)}to{filter:drop-shadow(0 0 26px #ffe891);transform:scale(1.04)}}
@media(max-width:360px){.room-arrival--video .room-arrival__identity{width:92vw;padding:12px}.room-arrival--video .room-arrival__identity>.avatar{width:88px;height:88px}}
@media(prefers-reduced-motion:reduce){.room-arrival--video,.room-arrival--video .room-arrival__identity>.avatar{animation:none!important}}
.gift-celebration--cinematic{isolation:isolate;width:min(410px,calc(100vw - 30px));min-height:360px;padding:30px 22px;border-color:#fff;background:radial-gradient(ellipse at 50% 42%,hsl(var(--gift-hue) 90% 82% / .92),#fff9f6f5 43%,#f5e7ff 100%);box-shadow:0 0 0 1px hsl(var(--gift-hue) 90% 68% / .5),0 0 52px hsl(var(--gift-hue) 95% 62% / .45),0 28px 100px #29122b70;backdrop-filter:blur(12px)}
.gift-celebration--cinematic::before{content:"";position:absolute;inset:-35%;z-index:0;pointer-events:none;background:conic-gradient(from 0deg at 50% 49%,transparent 0 8deg,#fff9 10deg,transparent 19deg 48deg,#fff7 53deg,transparent 61deg 110deg,#fff8 118deg,transparent 128deg 230deg,#fff8 236deg,transparent 247deg);mix-blend-mode:screen;animation:gift-cinema-rays 9s linear infinite}
.gift-celebration__cinematic{position:absolute;z-index:0;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,hsl(var(--gift-hue) 100% 70% / .22),transparent 56%)}
.gift-celebration__cinematic::before{content:"";position:absolute;inset:12%;border:1px solid hsl(var(--gift-hue) 92% 65% / .65);border-radius:50%;box-shadow:0 0 24px hsl(var(--gift-hue) 100% 64% / .5),inset 0 0 23px #fff7;animation:gift-cinema-ring 2.2s ease-out infinite}
.gift-celebration__cinematic::after{content:"";position:absolute;top:-35%;left:-90%;width:42%;height:180%;transform:rotate(24deg);background:linear-gradient(90deg,transparent,#fff9 48%,hsl(var(--gift-hue) 100% 88% / .7),transparent);filter:blur(5px);animation:gift-cinema-sweep 1.35s .2s ease-in-out both}
.gift-celebration__cinematic i{position:absolute;left:50%;top:46%;width:clamp(5px,1.8vw,9px);height:clamp(22px,8vw,40px);border-radius:99px;background:linear-gradient(transparent,hsl(var(--flare-hue) 100% 72% / .92),#fff);box-shadow:0 0 14px hsl(var(--flare-hue) 100% 65% / .8);transform:rotate(var(--flare-angle)) translateY(-130px) scaleY(.2);opacity:0;animation:gift-cinema-flare .9s var(--flare-delay) cubic-bezier(.14,.72,.2,1) both}
.gift-celebration--cinematic .gift-celebration__stage{z-index:2;width:184px;height:184px;background:radial-gradient(circle,#fff 15%,#fff9 38%,hsl(var(--gift-hue) 100% 82% / .4) 58%,transparent 73%);filter:drop-shadow(0 0 24px hsl(var(--gift-hue) 100% 66% / .65));animation:gift-cinema-hero 1.5s cubic-bezier(.16,.8,.2,1) both, gift-hero-float 1.5s 1.5s ease-in-out infinite alternate}
.gift-celebration--cinematic .gift-celebration__stage .gift-illustration{width:164px;height:164px;filter:drop-shadow(0 15px 15px #61275a55)}
.gift-celebration--cinematic .gift-celebration__copy{z-index:3;padding:10px 18px;border:1px solid #fff9;border-radius:16px;background:#fff9;box-shadow:0 5px 22px #4c24421c;backdrop-filter:blur(8px)}
.gift-celebration--cinematic .gift-celebration__sparks{z-index:2;top:47%}.gift-celebration--cinematic .gift-celebration__sparks i{width:7px;height:11px;box-shadow:0 0 10px hsl(var(--spark-hue) 95% 60% / .8)}
.gift-celebration--cinematic .gift-celebration__close{z-index:4}
.gift-celebration--cinematic.gift-celebration--2{box-shadow:0 0 0 2px #fff8,0 0 65px hsl(var(--gift-hue) 95% 58% / .55),0 0 28px #f4c654,0 28px 100px #29122b70}
.gift-celebration--cinematic.gift-celebration--3{border-color:#fff3b8;box-shadow:0 0 0 2px #fff3b899,0 0 90px hsl(var(--gift-hue) 98% 60% / .75),0 0 34px #ffda63,0 28px 100px #29122b70}
.gift-celebration--cinematic.has-svga{background:transparent;backdrop-filter:none}.gift-celebration--cinematic.has-svga::before{display:none}.gift-celebration--cinematic.has-svga .gift-celebration__cinematic{opacity:.48}
/* Room celebration: float only the gift art over a soft, sparkling glow. */
.gift-celebration--cinematic:not(.has-svga){left:0;top:0;transform:none;animation:none;width:100vw;height:100dvh;min-height:0;padding:0;gap:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;pointer-events:none;overflow:hidden;align-content:center}
.gift-celebration--cinematic:not(.has-svga)::before{inset:0;mix-blend-mode:screen;opacity:.62;background:radial-gradient(ellipse at 50% 50%,hsl(var(--gift-hue) 100% 74% / .3),transparent 39%),radial-gradient(circle at 38% 43%,#fff 0 1.5px,transparent 3px),radial-gradient(circle at 63% 39%,#fff 0 2px,transparent 4px),radial-gradient(circle at 35% 57%,hsl(var(--gift-hue) 100% 88% / .9) 0 1px,transparent 3px),radial-gradient(circle at 66% 58%,#fff 0 1.5px,transparent 3px);animation:gift-sparkle 1.2s ease-in-out infinite alternate}
.gift-celebration--cinematic:not(.has-svga) .gift-celebration__cinematic{opacity:.76}
.gift-celebration--cinematic:not(.has-svga) .gift-celebration__cinematic::before{display:none}
.gift-celebration--cinematic:not(.has-svga) .gift-celebration__stage{width:clamp(164px,46vw,230px);height:clamp(164px,46vw,230px);background:radial-gradient(circle,hsl(var(--gift-hue) 100% 92% / .72),hsl(var(--gift-hue) 100% 78% / .25) 42%,transparent 72%);filter:drop-shadow(0 0 26px hsl(var(--gift-hue) 100% 66% / .8))}
.gift-celebration--cinematic:not(.has-svga) .gift-celebration__stage .gift-illustration{width:clamp(146px,41vw,204px);height:clamp(146px,41vw,204px)}
.gift-celebration--cinematic:not(.has-svga) .gift-celebration__copy,.gift-celebration--cinematic:not(.has-svga) .gift-celebration__close{display:none}
.gift-celebration--cinematic:not(.has-svga).gift-celebration--2,.gift-celebration--cinematic:not(.has-svga).gift-celebration--3{border:0;box-shadow:none}
@keyframes gift-cinema-rays{to{transform:rotate(360deg)}}@keyframes gift-cinema-ring{0%{transform:scale(.65) rotate(-12deg);opacity:0}25%{opacity:.9}100%{transform:scale(1.15) rotate(12deg);opacity:0}}@keyframes gift-cinema-sweep{0%{left:-90%;opacity:0}20%{opacity:1}100%{left:155%;opacity:0}}@keyframes gift-cinema-flare{0%{opacity:0;transform:rotate(var(--flare-angle)) translateY(-42px) scaleY(.15)}25%{opacity:1}100%{opacity:0;transform:rotate(var(--flare-angle)) translateY(-155px) scaleY(1)}}@keyframes gift-cinema-hero{0%{transform:scale(.25) rotate(-18deg);filter:brightness(2.4) drop-shadow(0 0 36px #fff)}65%{transform:scale(1.12) rotate(5deg)}100%{transform:scale(1) rotate(0);filter:brightness(1) drop-shadow(0 0 24px hsl(var(--gift-hue) 100% 66% / .65))}}
.romeo-shell[data-screen="room"] .seat--vip .mic-mark{z-index:3;border:1px solid hsl(var(--vip-hue) 90% 60% / .9);background:linear-gradient(145deg,#fff,#fff0f8);box-shadow:0 0 0 2px #fff,0 0 0 4px hsl(var(--vip-hue) 88% 66% / .48),0 0 13px hsl(var(--vip-hue) 95% 58% / .6);transition:box-shadow .2s ease,transform .2s ease}
.romeo-shell[data-screen="room"] .seat--vip .mic-mark svg{color:hsl(var(--vip-hue) 72% 43%)}
.romeo-shell[data-screen="room"] .seat--vip.speaking .mic-mark{transform:scale(1.13);animation:vip-mic-halo 1.1s ease-in-out infinite alternate}
.romeo-shell[data-screen="room"] .seat--vip.speaking .avatar{box-shadow:0 0 0 2px #fff,0 0 0 5px hsl(var(--vip-hue) 92% 65% / .78),0 0 24px hsl(var(--vip-hue) 92% 60% / .6)}
.romeo-shell[data-screen="room"] .seat--vip[data-vip-level="10"] .mic-mark::after,.romeo-shell[data-screen="room"] .seat--vip[data-vip-level="11"] .mic-mark::after,.romeo-shell[data-screen="room"] .seat--vip[data-vip-level="12"] .mic-mark::after,.romeo-shell[data-screen="room"] .seat--vip[data-vip-level="13"] .mic-mark::after,.romeo-shell[data-screen="room"] .seat--vip[data-vip-level="14"] .mic-mark::after,.romeo-shell[data-screen="room"] .seat--vip[data-vip-level="15"] .mic-mark::after{content:"✦";position:absolute;right:-6px;top:-7px;color:#e8b84c;font-size:10px;text-shadow:0 0 7px #ffd967}
.romeo-shell[data-screen="room"] .room-chat-line--vip{position:relative;isolation:isolate;overflow:hidden;padding:9px 11px;border:1px solid hsl(var(--vip-hue) 82% 68% / .58);border-radius:14px;background:linear-gradient(112deg,hsl(var(--vip-hue) 78% 97%),#fff 55%,hsl(calc(var(--vip-hue) + 28deg) 85% 95%));box-shadow:0 4px 16px hsl(var(--vip-hue) 68% 42% / .12),inset 0 0 0 1px #fff9}
.romeo-shell[data-screen="room"] .room-chat-line--vip::before{content:"";position:absolute;z-index:-1;inset:-20% auto -20% -42%;width:32%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.8;animation:vip-chat-sheen 3.4s ease-in-out infinite}
.romeo-shell[data-screen="room"] .room-chat-line--vip strong{display:flex;align-items:center;gap:7px;color:hsl(var(--vip-hue) 66% 34%);margin:0 0 3px;font-weight:800}
.romeo-shell[data-screen="room"] .room-chat-vip-badge{padding:2px 6px;border:1px solid hsl(var(--vip-hue) 75% 65% / .58);border-radius:999px;background:linear-gradient(110deg,#fff,hsl(var(--vip-hue) 90% 91%));color:hsl(var(--vip-hue) 70% 37%);font-size:9px;line-height:1.2;box-shadow:0 1px 5px hsl(var(--vip-hue) 70% 50% / .2)}
.romeo-shell[data-screen="room"] .room-chat-line__body{position:relative;display:block;color:#4c4050;line-height:1.5}
.romeo-shell[data-screen="room"] .room-chat-line--vip[data-vip-level="10"],.romeo-shell[data-screen="room"] .room-chat-line--vip[data-vip-level="11"],.romeo-shell[data-screen="room"] .room-chat-line--vip[data-vip-level="12"],.romeo-shell[data-screen="room"] .room-chat-line--vip[data-vip-level="13"],.romeo-shell[data-screen="room"] .room-chat-line--vip[data-vip-level="14"],.romeo-shell[data-screen="room"] .room-chat-line--vip[data-vip-level="15"]{border-color:#e5bd5d;background:linear-gradient(115deg,#fff9e4,#fff,#f9edff);box-shadow:0 0 0 1px #efcf7166,0 5px 20px #d2a52d20,inset 0 0 0 1px #fff}
@keyframes vip-mic-halo{from{box-shadow:0 0 0 2px #fff,0 0 0 4px hsl(var(--vip-hue) 88% 66% / .42),0 0 10px hsl(var(--vip-hue) 95% 58% / .5)}to{box-shadow:0 0 0 2px #fff,0 0 0 7px hsl(var(--vip-hue) 88% 66% / .24),0 0 20px hsl(var(--vip-hue) 95% 58% / .8)}}
@keyframes vip-chat-sheen{0%,55%{left:-42%;opacity:0}72%{opacity:.9}100%{left:130%;opacity:0}}
@media(prefers-reduced-motion:reduce){.gift-celebration--cinematic::before,.gift-celebration__cinematic::before,.gift-celebration__cinematic::after,.gift-celebration__cinematic i,.gift-celebration--cinematic .gift-celebration__stage,.gift-celebration--cinematic .gift-celebration__sparks i,.romeo-shell[data-screen="room"] .seat--vip.speaking .mic-mark,.romeo-shell[data-screen="room"] .room-chat-line--vip::before{animation:none!important;transition:none!important}}
