/* COPYREND — vibes.css */

/* XP BAR */
#xp-bar{position:fixed;top:0;left:0;right:0;height:2px;z-index:500;pointer-events:none;}
#xp-fill{height:100%;width:0%;background:linear-gradient(90deg,#2e7fff,#2ed4bf,#3dcc7e,#e85fa0,#ff7a2e);background-size:300% 100%;animation:xp-shimmer 3s linear infinite;transition:width .1s linear;box-shadow:0 0 6px rgba(46,127,255,.5);}
@keyframes xp-shimmer{0%{background-position:0%}100%{background-position:300%}}

/* CURSOR GLOW — positioned via JS with rAF, no transition lag */
#cursor-glow{position:fixed;pointer-events:none;z-index:1;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(46,127,255,.045) 0%,transparent 70%);transform:translate(-50%,-50%);will-change:left,top;}

/* TRAIL DOTS */
.trail-dot{position:fixed;pointer-events:none;z-index:9999;width:4px;height:4px;border-radius:1px;background:var(--accent);opacity:0;transform:translate(-50%,-50%);will-change:transform,opacity;}

/* LIVE FEED */
#live-feed{position:fixed;bottom:20px;left:20px;z-index:400;display:flex;align-items:center;gap:8px;padding:8px 14px;background:rgba(8,13,20,.9);border:1px solid rgba(46,127,255,.15);border-radius:50px;backdrop-filter:blur(12px);font-size:11px;color:var(--muted);pointer-events:none;max-width:240px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;}
.lf-dot{width:5px;height:5px;border-radius:50%;background:#3dcc7e;flex-shrink:0;animation:lf-blink 1.4s infinite;}
@keyframes lf-blink{0%,100%{opacity:1;}50%{opacity:.3;}}
.lf-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
#live-feed.lf-change .lf-text{animation:lf-swap .3s ease;}
@keyframes lf-swap{0%{opacity:1;transform:translateY(0);}40%{opacity:0;transform:translateY(-5px);}60%{opacity:0;transform:translateY(5px);}100%{opacity:1;transform:translateY(0);}}

/* TOASTS */
#toast-wrap{position:fixed;bottom:56px;right:20px;z-index:450;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none;}
.toast{display:flex;align-items:center;gap:10px;padding:10px 14px;background:rgba(13,21,32,.95);border:1px solid rgba(46,127,255,.15);border-radius:10px;backdrop-filter:blur(12px);font-size:12px;color:var(--txt);max-width:220px;animation:toast-in .4s cubic-bezier(.34,1.56,.64,1) forwards,toast-out .3s ease 3.5s forwards;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;}
.toast-icon{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,var(--accent),#2ed4bf);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;}
.toast-msg{line-height:1.3;color:var(--muted);}
.toast-msg strong{color:var(--txt);display:block;font-size:11px;}
@keyframes toast-in{0%{opacity:0;transform:translateX(100%);}100%{opacity:1;transform:translateX(0);}}
@keyframes toast-out{0%{opacity:1;}100%{opacity:0;transform:translateX(110%);}}

/* LOGO BADGE */
#logo-badge-popup{position:fixed;top:64px;left:24px;z-index:500;background:linear-gradient(135deg,#ff7a2e,#e85fa0);border-radius:12px;padding:12px 18px;pointer-events:none;opacity:0;transform:scale(.8) translateY(-10px);transition:opacity .3s,transform .3s cubic-bezier(.34,1.56,.64,1);font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;}
#logo-badge-popup.show{opacity:1;transform:scale(1) translateY(0);}
.lbp-title{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:3px;}
.lbp-name{font-size:14px;font-weight:700;color:#fff;}

/* LEGENDARY */
#legendary-popup{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:rgba(8,13,20,.85);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity .4s;}
#legendary-popup.show{opacity:1;pointer-events:all;}
.legendary-inner{text-align:center;padding:48px;background:var(--card);border:1px solid var(--line);border-radius:24px;max-width:400px;animation:badge-pop .6s cubic-bezier(.34,1.56,.64,1) both;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;}
.legendary-title{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#ff7a2e;margin-bottom:12px;}
.legendary-icon{font-size:64px;margin:0 0 16px;line-height:1;}
.legendary-name{font-size:26px;font-weight:700;color:var(--txt);margin-bottom:8px;}
.legendary-sub{font-size:14px;color:var(--muted);margin-bottom:24px;line-height:1.6;}
.legendary-close{display:inline-block;padding:10px 24px;background:var(--accent);color:#fff;border-radius:6px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:none;transition:background .2s;font-family:inherit;}
.legendary-close:hover{background:var(--accent-h);}
@keyframes badge-pop{0%{opacity:0;transform:scale(.5);}60%{opacity:1;transform:scale(1.05);}100%{opacity:1;transform:scale(1);}}

/* CONFETTI */
.confetti-piece{position:fixed;pointer-events:none;z-index:9999;width:6px;height:6px;border-radius:1px;animation:confetti-fall 1.2s ease forwards;}
@keyframes confetti-fall{0%{opacity:1;transform:translate(0,0) rotate(0deg);}100%{opacity:0;transform:translate(var(--cx),var(--cy)) rotate(var(--cr));}}

/* LIKE */
.like-btn{transition:border-color .2s,color .2s,transform .15s;}
.like-btn:hover{transform:scale(1.05);}
.like-btn.liked .like-heart{animation:heart-pop .35s cubic-bezier(.34,1.56,.64,1);}
@keyframes heart-pop{0%{transform:scale(1);}50%{transform:scale(1.7);}100%{transform:scale(1);}}
.like-particle{position:absolute;pointer-events:none;font-size:10px;animation:like-fly .7s ease forwards;}
@keyframes like-fly{0%{opacity:1;transform:translate(-50%,-50%) scale(1);}100%{opacity:0;transform:translate(var(--tx),var(--ty)) scale(.5);}}

/* BG FLOATS */
.bg-float{position:fixed;pointer-events:none;z-index:0;opacity:0;animation:bg-float-up linear infinite;font-size:16px;}
@keyframes bg-float-up{0%{transform:translateY(100vh) rotate(0deg);opacity:0;}5%{opacity:.05;}90%{opacity:.03;}100%{transform:translateY(-100px) rotate(360deg);opacity:0;}}

/* FLOAT PARTICLE */
.float-particle{position:fixed;pointer-events:none;z-index:350;font-size:14px;opacity:0;animation:float-up 2.5s ease forwards;}
@keyframes float-up{0%{opacity:0;transform:translateY(0) scale(.6);}20%{opacity:1;transform:translateY(-20px) scale(1);}80%{opacity:.7;transform:translateY(-90px) scale(.9);}100%{opacity:0;transform:translateY(-130px) scale(.7);}}

/* STAT COUNTER */
.stat-counter{display:inline;transition:color .3s;}
.stat-counter.counting{color:var(--accent);}

/* PACKAGE SHINE & BUTTON BOUNCE */
.btn-primary{transition:background .2s,transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;}