:root{
  --white:#ffffff;
  --gray:#c4c4c4;
  --dim:#7a7a7a;
  --card-bg:rgba(12,12,12,0);
  --card-border:rgba(255,255,255,.10);
  --font-display:"Syne",sans-serif;
  --font-body:"Outfit",system-ui,sans-serif;
  --font-mono:"JetBrains Mono",monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{
  font-family:var(--font-body);
  background:#000;
  color:var(--white);
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
}
.hidden{display:none !important}
::selection{background:#fff;color:#000}

.enter{
  position:fixed;inset:0;z-index:50;
  display:flex;align-items:center;justify-content:center;
  background:#000;cursor:pointer;
  transition:opacity .7s ease, transform .7s ease;
}
.enter.fade{opacity:0;transform:scale(1.04);pointer-events:none}
.enter-text{
  font-family:var(--font-mono);
  font-size:13px;letter-spacing:.5em;text-transform:uppercase;
  padding-left:.5em;
  color:var(--gray);position:relative;
  animation:breathe 2.4s ease-in-out infinite;
}
.enter-text::after{
  content:"";position:absolute;left:0;right:0;bottom:-12px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);
  animation:scan 2.4s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes scan{0%,100%{transform:scaleX(.3);opacity:.3}50%{transform:scaleX(1);opacity:1}}

.bg{position:fixed;inset:-30px;z-index:-3;background-size:cover;background-position:center;filter:grayscale(.2)}
.bg video,.bg img{width:100%;height:100%;object-fit:cover}
.bg-overlay{position:fixed;inset:0;z-index:-2}
.bg-overlay::after{
  content:"";position:fixed;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;opacity:.6;
}
.particles{position:fixed;inset:0;z-index:-1;pointer-events:none}

.grain{
  position:fixed;inset:-50%;z-index:1;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain .4s steps(2) infinite;
}
@keyframes grain{
  0%{transform:translate(0,0)}25%{transform:translate(-5%,3%)}
  50%{transform:translate(4%,-4%)}75%{transform:translate(-3%,-2%)}
  100%{transform:translate(3%,4%)}
}

.content{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;
  perspective:1100px;
}
@keyframes fadeUp{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}

.card .bio,.card .views,.card .links{
  animation:rise .7s cubic-bezier(.2,.8,.2,1) both;
}
.card .bio{animation-delay:.35s}
.card .views{animation-delay:.55s}
.card .links{animation-delay:.75s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

.card{
  position:relative;
  width:min(430px,92vw);
  border-radius:24px;
  padding:38px 30px 32px;
  text-align:center;
  background:var(--card-bg);
  backdrop-filter:blur(5px) saturate(1.05);
  -webkit-backdrop-filter:blur(5px) saturate(1.05);
  box-shadow:0 30px 80px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.08);
  transition:transform .25s cubic-bezier(.2,.8,.2,1);
  transform-style:preserve-3d;
  will-change:transform;
  animation:fadeUp .9s cubic-bezier(.2,.8,.2,1) both;
  overflow:hidden;
}
.card::before{
  content:"";position:absolute;inset:0;border-radius:24px;padding:1px;
  background:conic-gradient(from var(--a,0deg),rgba(255,255,255,.05),rgba(255,255,255,.7),rgba(255,255,255,.05),rgba(255,255,255,.6),rgba(255,255,255,.05));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  animation:spin 6s linear infinite;pointer-events:none;
}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes spin{to{--a:360deg}}
.spotlight{
  position:absolute;inset:0;border-radius:24px;pointer-events:none;z-index:0;
  opacity:0;transition:opacity .3s ease;
  background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.16),transparent 60%);
}
.card:hover .spotlight{opacity:1}
.card > *:not(.spotlight){position:relative;z-index:1}

.avatar-wrap{
  position:relative;width:116px;height:116px;margin:0 auto 18px;
  border-radius:50%;padding:3px;
  background:conic-gradient(from 0deg,#fff,#555,#fff,#333,#fff);
  animation:spin 8s linear infinite, float 4s ease-in-out infinite;
  box-shadow:0 0 40px rgba(255,255,255,.18);
  transition:transform .3s ease;
}
.avatar-wrap.glow::after{
  content:"";position:absolute;inset:-8px;border-radius:50%;z-index:-1;
  background:radial-gradient(circle,rgba(255,255,255,.45),transparent 70%);
  animation:pulse 2.6s ease-in-out infinite;
}
.avatar-wrap:hover{transform:scale(1.06)}
.avatar{
  width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;background:#0a0a0a;
  animation:spin 8s linear infinite reverse;
}
@keyframes float{0%,100%{margin-top:0}50%{margin-top:-8px}}
@keyframes pulse{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.7;transform:scale(1.12)}}

.cloud{
  position:absolute;color:rgba(255,255,255,.85);pointer-events:none;z-index:2;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));
  animation:cloudFloat 5s ease-in-out infinite;
}
.cloud svg{display:block}
.cloud.c1{top:-6px;left:-14px;width:30px;animation-delay:0s}
.cloud.c2{top:6px;right:-18px;width:36px;animation-delay:1.2s}
.cloud.c3{bottom:-4px;left:6px;width:26px;animation-delay:2.4s}
.cloud.c4{bottom:8px;right:-6px;width:22px;animation-delay:.6s}
@keyframes cloudFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

.cursor-dot,.cursor-ring{
  position:fixed;top:0;left:0;z-index:100;pointer-events:none;
  border-radius:50%;transform:translate(-50%,-50%);opacity:0;
  transition:opacity .3s ease;
}
.cursor-dot{width:7px;height:7px;background:#fff;box-shadow:0 0 10px rgba(255,255,255,.8)}
.cursor-ring{
  width:34px;height:34px;border:1.5px solid rgba(255,255,255,.5);
  transition:width .25s ease,height .25s ease,border-color .25s ease,opacity .3s ease,background .25s ease;
}
body.custom-cursor,body.custom-cursor *{cursor:none !important}
.cursor-ring.hovering{
  width:48px;height:48px;border-color:#fff;background:rgba(255,255,255,.08);
}
.ripple{
  position:fixed;z-index:98;pointer-events:none;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.6);
  transform:translate(-50%,-50%);
  animation:rippleOut .6s cubic-bezier(.2,.7,.3,1) forwards;
}
@keyframes rippleOut{
  0%{width:0;height:0;opacity:.8}
  100%{width:120px;height:120px;opacity:0}
}

.trail{
  position:fixed;z-index:99;pointer-events:none;border-radius:50%;
  background:#fff;transform:translate(-50%,-50%);
  box-shadow:0 0 8px rgba(255,255,255,.7);
  animation:trailFade .65s ease-out forwards;
}
@keyframes trailFade{
  0%{opacity:.9;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(.2) translateY(10px)}
}

.username{
  font-family:var(--font-display);
  font-size:32px;font-weight:800;letter-spacing:.01em;line-height:1.1;
  display:flex;align-items:center;justify-content:center;min-height:40px;
  position:relative;
  background:
    linear-gradient(110deg,transparent 42%,rgba(255,255,255,.95) 50%,transparent 58%),
    linear-gradient(180deg,#fff 0%,#fff 45%,#9a9a9a 100%);
  background-size:220% 100%,100% 100%;
  background-position:200% 0,0 0;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:glitch 4s steps(1) infinite, shimmer 3.5s ease-in-out infinite;
}
.glow{filter:drop-shadow(0 0 16px rgba(255,255,255,.45))}
@keyframes shimmer{0%{background-position:200% 0,0 0}55%,100%{background-position:-120% 0,0 0}}
@keyframes glitch{
  0%,92%,100%{transform:none;clip-path:none;filter:drop-shadow(0 0 16px rgba(255,255,255,.45))}
  93%{transform:translate(-3px,1px) skewX(-6deg);filter:drop-shadow(2px 0 rgba(255,255,255,.7))}
  94%{transform:translate(3px,-1px);clip-path:inset(40% 0 30% 0)}
  95%{transform:translate(-2px,0);clip-path:inset(10% 0 60% 0);filter:drop-shadow(-2px 0 rgba(180,180,180,.8))}
  96%{transform:translate(2px,1px) skewX(4deg);clip-path:inset(60% 0 5% 0)}
  97%{transform:none;clip-path:none}
}
.username .caret{
  display:inline-block;width:3px;height:.9em;margin-left:4px;border-radius:2px;
  background:#fff;-webkit-text-fill-color:#fff;
  animation:blink 1s steps(1) infinite;
}
@keyframes blink{50%{opacity:0}}

.bio{
  margin-top:10px;display:flex;flex-direction:column;gap:3px;
}
.bio-line{
  color:var(--gray);font-size:14px;font-weight:300;letter-spacing:.02em;
}
.bio-line:first-child{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:#fff;margin-bottom:3px;
}

.dcard{
  display:flex;align-items:center;gap:13px;margin:16px auto 0;
  padding:12px 14px;max-width:330px;text-align:left;
  border:1px solid rgba(255,255,255,.07);border-radius:16px;
  background:rgba(255,255,255,.015);
  backdrop-filter:blur(3px);
}
.dc-av-wrap{position:relative;flex:none}
.dc-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#111;display:block}
.dc-dot{
  position:absolute;right:-2px;bottom:-2px;width:15px;height:15px;border-radius:50%;
  border:3px solid #000;background:#555;
}
.dc-dot.online{background:#fff;animation:ping 1.8s ease-out infinite}
.dc-dot.idle{background:#b5b5b5}
.dc-dot.dnd{background:#888}
.dc-dot.offline{background:#444}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(255,255,255,.5)}100%{box-shadow:0 0 0 6px rgba(255,255,255,0)}}

.dc-mid{min-width:0;flex:1}
.dc-namerow{display:flex;align-items:center;gap:6px}
.dc-name{font-weight:600;font-size:15px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-tag{
  font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;
  padding:2px 6px;border-radius:6px;background:rgba(255,255,255,.12);color:#fff;flex:none;
  display:inline-flex;align-items:center;gap:4px;
}
.dc-tag img{width:13px;height:13px;border-radius:3px}
.dc-user{font-family:var(--font-mono);font-size:11px;color:var(--dim);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-state{font-size:12px;color:var(--gray);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.dc-badges img{
  width:20px;height:20px;border-radius:4px;
  background:rgba(255,255,255,.06);padding:1px;
  transition:transform .2s;
}
.dc-badges img:hover{transform:scale(1.25)}

.views{
  display:inline-flex;align-items:center;gap:7px;margin-top:16px;padding:6px 14px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;
  border:1px solid var(--card-border);border-radius:999px;color:var(--dim);
  background:rgba(255,255,255,.03);
}
.views svg{opacity:.8}

.links{display:flex;flex-wrap:wrap;justify-content:center;gap:13px;margin-top:26px}
.link{
  position:relative;width:48px;height:48px;border-radius:15px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.04);border:1px solid var(--card-border);
  color:var(--white);
  transition:transform .25s cubic-bezier(.2,.8,.2,1),color .25s,box-shadow .25s;
}
.link::before{content:"";position:absolute;inset:0;border-radius:15px;background:#fff;opacity:0;transform:scale(.85);transition:opacity .25s ease,transform .25s ease}
.link svg{width:22px;height:22px;position:relative;z-index:1;transition:transform .25s}
.link:hover{transform:translateY(-6px);color:#000;box-shadow:0 12px 28px rgba(255,255,255,.22)}
.link:hover::before{opacity:1;transform:scale(1)}
.link:hover svg{transform:scale(1.1)}
.tip{
  position:absolute;bottom:calc(100% + 10px);left:50%;
  transform:translateX(-50%) translateY(6px);
  padding:4px 9px;border-radius:7px;white-space:nowrap;
  font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;
  background:#fff;color:#000;
  opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;
  z-index:5;
}
.tip::after{
  content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);
  border:5px solid transparent;border-top-color:#fff;
}
.link:hover .tip{opacity:1;transform:translateX(-50%) translateY(0)}

.player{
  position:fixed;left:22px;bottom:22px;z-index:40;
  display:flex;align-items:center;gap:13px;padding:11px 15px;
  background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  box-shadow:0 12px 32px rgba(0,0,0,.5);
  animation:fadeUp .9s ease both;
}
.play-btn{
  width:38px;height:38px;border-radius:50%;background:#fff;color:#000;border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .2s;
}
.play-btn:hover{transform:scale(1.1);box-shadow:0 0 20px rgba(255,255,255,.4)}
.player-info{display:flex;flex-direction:column;gap:5px;min-width:96px}
.track-title{font-family:var(--font-mono);font-size:11px;color:var(--gray);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bars{display:flex;align-items:flex-end;gap:3px;height:14px}
.bars span{width:3px;height:100%;background:linear-gradient(180deg,#fff,#888);border-radius:2px;animation:eq 1s ease-in-out infinite}
.bars.paused span{animation-play-state:paused;opacity:.4}
.bars span:nth-child(2){animation-delay:.2s}
.bars span:nth-child(3){animation-delay:.4s}
.bars span:nth-child(4){animation-delay:.6s}
.bars span:nth-child(5){animation-delay:.8s}
@keyframes eq{0%,100%{height:20%}50%{height:100%}}
.volume{-webkit-appearance:none;appearance:none;width:72px;height:3px;border-radius:3px;background:rgba(255,255,255,.25);outline:none;cursor:pointer}
.volume::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.6)}
.volume::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:#fff}

@media (max-width:480px){
  .player{left:12px;right:12px;bottom:12px}
  .card{padding:32px 22px 28px}
  .username{font-size:28px}
}
