.firework-layer{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:30}
.layout-live-guide{position:fixed;transform:translate(-50%,-50%);border:2px dashed rgba(45,245,204,.9);background:rgba(45,245,204,.06);box-sizing:border-box;pointer-events:none;z-index:20000;color:white;font:700 14px Segoe UI,sans-serif;text-shadow:0 1px 3px #000;display:flex;align-items:flex-start;justify-content:center;padding:5px;border-radius:8px}
.firework-safe{position:absolute;left:0;right:0;pointer-events:none}
.firework-slot{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;text-align:center}
.gift-shot{position:absolute;left:50%;bottom:-120px;transform:translateX(-50%);width:96px;height:96px;border-radius:50%;
display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);border:3px solid rgba(255,255,255,.8);
box-shadow:0 0 28px rgba(255,255,255,.55);animation:giftRise 1.05s cubic-bezier(.22,.8,.2,1) forwards}
.gift-shot img.profile{width:86px;height:86px;border-radius:50%;object-fit:cover}
.gift-burst{position:relative;left:auto;top:auto;transform:scale(.2);transform-origin:50% 50%;opacity:0;text-align:center;
animation:giftBurst 1.35s ease-out forwards}
.gift-burst img.gift{object-fit:contain;filter:drop-shadow(0 0 24px rgba(255,255,255,.9))}
.gift-meta{font-family:system-ui,sans-serif;font-weight:900;color:#fff;text-shadow:0 2px 8px #000;margin-top:14px;white-space:nowrap!important;display:inline-block;width:auto!important;max-width:none!important;overflow:visible!important;word-break:keep-all!important;overflow-wrap:normal!important}
.spark{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;animation:spark 1s ease-out forwards}
@keyframes giftRise{0%{bottom:-120px;transform:translateX(-50%) scale(.6)}80%{bottom:54%;transform:translateX(-50%) scale(1.08)}100%{bottom:58%;transform:translateX(-50%) scale(.2);opacity:0}}
@keyframes giftBurst{0%{opacity:0;transform:scale(.2)}20%{opacity:1;transform:scale(1.22)}65%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.85)}}
@keyframes spark{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.1)}}
/* V1.58 EPIC ENERGY GIFT FIREWORK */
.epic-flash{
  position:fixed; inset:0; pointer-events:none; z-index:9997;
  background:radial-gradient(circle at var(--fx) var(--fy),
    rgba(255,255,255,.68) 0%,
    rgba(37,244,238,.28) 8%,
    rgba(255,79,163,.14) 18%,
    rgba(255,215,0,.06) 30%,
    transparent 48%);
  mix-blend-mode:screen;
  animation:epicFlash .55s ease-out forwards;
}
.epic-ring{
  position:fixed; pointer-events:none; z-index:9998;
  left:var(--x); top:var(--y);
  width:48px; height:48px; border-radius:50%;
  transform:translate(-50%,-50%) scale(.25);
  border:4px solid rgba(255,255,255,.95);
  box-shadow:
    0 0 18px rgba(255,255,255,.95),
    0 0 42px rgba(37,244,238,.78),
    inset 0 0 22px rgba(255,79,163,.52);
  animation:epicRing 1.05s cubic-bezier(.15,.72,.18,1) forwards;
}
.epic-ring.r2{
  border-color:rgba(255,215,0,.88);
  box-shadow:
    0 0 18px rgba(255,215,0,.8),
    0 0 38px rgba(255,79,163,.72);
  animation-delay:.12s;
}
.epic-ray{
  position:fixed; pointer-events:none; z-index:9996;
  left:var(--x); top:var(--y);
  width:4px; height:var(--len);
  transform-origin:50% 0%;
  transform:translate(-50%,0) rotate(var(--rot)) scaleY(.15);
  border-radius:999px;
  background:linear-gradient(to bottom, rgba(255,255,255,.95), rgba(37,244,238,.62), transparent);
  filter:drop-shadow(0 0 8px rgba(255,79,163,.8));
  opacity:0;
  animation:epicRay .85s ease-out forwards;
}
.epic-star{
  position:fixed; pointer-events:none; z-index:9999;
  left:var(--x); top:var(--y);
  width:8px; height:8px;
  border-radius:50%;
  background:white;
  box-shadow:0 0 9px white,0 0 18px rgba(37,244,238,.95),0 0 28px rgba(255,79,163,.7);
  transform:translate(-50%,-50%);
  animation:epicStar var(--dur) cubic-bezier(.14,.76,.2,1) forwards;
}
@keyframes epicFlash{
  0%{opacity:0;transform:scale(.7)}
  14%{opacity:1}
  100%{opacity:0;transform:scale(1.12)}
}
@keyframes epicRing{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.2)}
  14%{opacity:1}
  100%{opacity:0;transform:translate(-50%,-50%) scale(8.5)}
}
@keyframes epicRay{
  0%{opacity:0;transform:translate(-50%,0) rotate(var(--rot)) scaleY(.1)}
  16%{opacity:.95}
  100%{opacity:0;transform:translate(-50%,0) rotate(var(--rot)) scaleY(1)}
}
@keyframes epicStar{
  0%{opacity:1;transform:translate(-50%,-50%) scale(.7)}
  72%{opacity:.92}
  100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.12)}
}


/* V1.63 ANIMSTREAM-STYLE MULTI STAGE FIREWORK */
.fx-halo{position:fixed;pointer-events:none;z-index:9995;left:var(--x);top:var(--y);width:90px;height:90px;border-radius:50%;transform:translate(-50%,-50%) scale(.15);background:radial-gradient(circle,rgba(255,255,255,.90) 0%,rgba(255,215,0,.35) 24%,rgba(255,79,163,.18) 48%,transparent 72%);filter:blur(2px);animation:fxHalo 1.2s ease-out forwards}
.fx-shock{position:fixed;pointer-events:none;z-index:9997;left:var(--x);top:var(--y);width:64px;height:64px;border-radius:50%;transform:translate(-50%,-50%) scale(.15);border:7px solid var(--c1);box-shadow:0 0 15px #fff,0 0 35px var(--c1),0 0 65px var(--c2);animation:fxShock .9s cubic-bezier(.08,.7,.18,1) forwards}
.fx-shard{position:fixed;pointer-events:none;z-index:9999;left:var(--x);top:var(--y);width:var(--w);height:var(--h);border-radius:999px;background:linear-gradient(to bottom,#fff 0%,var(--c1) 36%,var(--c2) 70%,transparent 100%);filter:drop-shadow(0 0 7px var(--c1));transform:translate(-50%,-50%) rotate(var(--rot));transform-origin:50% 50%;animation:fxShard var(--dur) cubic-bezier(.1,.72,.18,1) forwards}
.fx-glitter{position:fixed;pointer-events:none;z-index:10000;left:var(--x);top:var(--y);width:var(--sz);height:var(--sz);background:#fff;clip-path:polygon(50% 0,61% 38%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 38%);filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px var(--c1));animation:fxGlitter var(--dur) ease-out forwards}
.gift-burst.animstream-pop{filter:drop-shadow(0 0 12px rgba(255,255,255,.75));}
.gift-burst.animstream-pop img.gift{animation:giftImagePop 1.05s cubic-bezier(.12,.8,.18,1) both}
.gift-burst.animstream-pop .gift-meta{text-shadow:0 3px 8px rgba(0,0,0,.9),0 0 10px rgba(255,255,255,.9),0 0 24px var(--metaGlow,#ffd700);backface-visibility:hidden}
@keyframes fxHalo{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}15%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(7.4)}}
@keyframes fxShock{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}12%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(6.8)}}
@keyframes fxShard{0%{opacity:1;transform:translate(-50%,-50%) rotate(var(--rot)) scaleY(.35)}70%{opacity:.92}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot)) scaleY(.05)}}
@keyframes fxGlitter{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(0deg)}16%{opacity:1;transform:translate(-50%,-50%) scale(1.4) rotate(40deg)}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.15) rotate(220deg)}}
@keyframes giftImagePop{0%{opacity:0;transform:scale(.25) rotate(-9deg)}35%{opacity:1;transform:scale(1.18) rotate(3deg)}58%{transform:scale(.96) rotate(-1deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
#lf-background{position:fixed;inset:0;pointer-events:none;overflow:hidden;isolation:isolate;z-index:0;opacity:.43;contain:layout style}
#lf-background[hidden]{display:none}
#lf-background *{pointer-events:none!important}
#lf-background .epic-flash{display:none}
#lf-background .gift-shot{background:transparent;border:0;box-shadow:none}
#lf-background .gift-shot img.profile{object-fit:contain;border-radius:0}
body>header,body>main,body>footer{position:relative;z-index:1}
body>header.site-nav{position:sticky;z-index:30}
.background-control{position:fixed;right:18px;bottom:16px;z-index:40;border:1px solid #ffffff25;border-radius:30px;background:#10131ee8;color:#aeb8cf;padding:9px 13px;font:11px "Segoe UI",sans-serif;backdrop-filter:blur(10px);cursor:pointer}
.background-control[aria-pressed=true]{color:#8ce4f4;border-color:#67e4ff40}
@media(max-width:760px){#lf-background{opacity:.32}.background-control{font-size:10px;right:12px;bottom:12px}}
