body{

background:#0f172a;
background-image:url("terraria-bg-loop.jpg");
background-size:cover;
background-position:center;
background-repeat:no-repeat;
background-attachment:fixed;

font-family:'Inter',sans-serif;
color:white;

display:flex;
justify-content:center;
margin:0;
align-items:flex-start;
min-height:100vh;
padding:60px 20px 120px 20px;
overflow-y:auto;
overflow-x:hidden;

}

body::before{

content:"";
position:fixed;

top:0;
left:0;
right:0;
bottom:0;

background:rgba(0,0,0,0.65);

z-index:-1;

}

/* FIX BACKGROUND SCROLL MOBILE */

@media (max-width:600px){

body::before{
position:absolute;
height:200%;
}

}

/* CONTAINER */

.container{

display:flex;
flex-direction:column;
align-items:center;
gap:55px;

}

/* MAIN CARDS */

.card{

background:#1e293b;

padding:40px;

border-radius:16px;

width:90%;
max-width:480px;

border:1px solid rgba(255,255,255,0.05);

backdrop-filter:blur(6px);

opacity:0;
transform:translateY(25px);

box-shadow:
0 20px 50px rgba(0,0,0,0.6),
0 0 20px rgba(120,160,255,.08);
inset 0 1px 0 rgba(255,255,255,0.04);

transition: box-shadow .35s ease;

text-align:center;

}

.card:hover,
.world-progress-card:hover{

box-shadow:
0 20px 50px rgba(0,0,0,0.6),
0 0 25px rgba(120,160,255,.12),
0 0 8px rgba(120,160,255,.08);

}

body.loaded .card{

animation:cardFade .7s cubic-bezier(.22,.61,.36,1) forwards;

}


/* TITLE */

h1{

font-family:'Orbitron',sans-serif;
font-size:30px;
font-weight:600;
margin-bottom:35px;
margin-top:0;

}

/* STATS */

.stat{

margin:24px 0;

font-size:18px;

display:flex;
justify-content:space-between;

transition:.3s ease;

}

/* PLAYER BAR */

.player-bar{

width:100%;
height:14px;

background:#020617;

border-radius:8px;

margin-top:8px;

overflow:hidden;

}

.player-fill{

height:100%;

background:#22c55e;

width:0%;

transition:width .6s ease;

}

/* GENERIC PROGRESS */

.progress{

width:100%;
height:12px;

background:#020617;

border-radius:6px;

margin-top:6px;

overflow:hidden;

}

/* CPU RAM */

.cpu-fill{

height:100%;

background:linear-gradient(90deg,#3b82f6,#60a5fa);

transition:width .6s ease;

}

.ram-fill{

height:100%;

background:linear-gradient(90deg,#f59e0b,#fbbf24);

transition:width .6s ease;

}

/* STATUS DOT */

.status-dot{

display:inline-block;

width:10px;
height:10px;

border-radius:50%;

margin-right:6px;

}

.online{

background:#22c55e;

box-shadow:0 0 6px #22c55e;

animation:pulse 2.5s infinite;

}

.offline{

background:#ef4444;

}

@keyframes pulse{

0%{box-shadow:0 0 4px #22c55e}

50%{box-shadow:0 0 14px #22c55e}

100%{box-shadow:0 0 4px #22c55e}

}

/* WORLD PROGRESS CARD */

.world-progress-card{

background:#1e293b;

padding:32px;

border-radius:16px;

width:90%;
max-width:480px;

opacity:0;
transform:translateY(25px);
animation-fill-mode:both;
border:1px solid rgba(255,255,255,0.05);

box-shadow:
0 20px 50px rgba(0,0,0,0.6),
0 0 20px rgba(120,160,255,.08);
inset 0 1px 0 rgba(255,255,255,0.04);

transition: box-shadow .35s ease;

text-align:center;

}

body.loaded .world-progress-card{

animation:cardFade .7s cubic-bezier(.22,.61,.36,1) .15s forwards;

}


/* WORLD TITLE */

.world-progress-title{

font-family:'Orbitron',sans-serif;

font-size:22px;

margin-bottom:18px;

}

.panel-title{

font-family:'Orbitron',sans-serif;

font-size:22px;

margin-bottom:18px;

text-align:center;

}

/* WORLD BAR */

.world-progress-bar{

width:100%;
height:22px;

background:#020617;

border-radius:12px;

overflow:hidden;

box-shadow:0 0 10px rgba(80,255,120,.15);

}

.world-fill{

height:100%;

background:linear-gradient(90deg,#22c55e,#4ade80,#a3e635);

width:0%;

transition:width .8s ease;

animation:glowBar 3s infinite alternate;

}

@keyframes glowBar{

0%{filter:brightness(1)}

100%{filter:brightness(1.2)}

}

.world-percent{

margin-top:10px;

font-size:16px;

opacity:.7;

}

.world-stage{

margin-top:6px;

font-weight:600;

font-size:18px;

color:#4ade80;

}

/* NO PLAYERS */

.no-players{

text-align:center;

padding:10px;

opacity:.7;

font-size:14px;

}

/* PLAYER LIST */

.player{

padding:8px 0;

display:flex;
justify-content:space-between;

animation:fadeIn .3s ease;

}

@keyframes fadeIn{

from{opacity:0;transform:translateY(6px)}

to{opacity:1}

}

/* WORLD META */

.world-row{

padding:6px 0;

display:flex;
justify-content:space-between;

}

.world-label{

opacity:.7;

}

.world-value{

font-weight:600;

}

/* TIME */

.time{

opacity:.6;

font-size:13px;

}

/* FLOATING BUTTONS */

.floating-btn{

position:fixed;

animation:floatBtn 4s ease-in-out infinite;

animation:cardFade .6s ease .3s;
animation-fill-mode:both;

bottom:25px;

width:72px;
height:72px;

border-radius:50%;

border:none;

font-size:30px;

cursor:pointer;

display:flex;
align-items:center;
justify-content:center;

background:#1e293b;

box-shadow:0 10px 25px rgba(0,0,0,0.5);

transition:.2s ease;

color:white;

z-index:20;

}

.floating-btn:hover{

transform:scale(1.1);

box-shadow:0 0 12px rgba(150,120,255,.4);

}

.floating-btn.active{

box-shadow:0 0 20px rgba(120,180,255,.6);

}

/* BUTTON POSITIONS */

.meta-btn{ right:200px }

.boss-btn{ right:120px }

.players-btn{ right:40px }

/* PANELS */

.panel{

position:fixed;

bottom:110px;

width:280px;

background:#1e293b;

padding:24px;

border-radius:16px;

box-shadow:0 20px 50px rgba(0,0,0,0.6);

opacity:0;

transform:translateY(20px);

pointer-events:none;

transition:transform .25s ease;

max-height:500px;

overflow:auto;

}

.panel.open{

opacity:1;

transform:translateY(0);

pointer-events:auto;

}

.meta-panel{ right:200px }

.boss-panel{ right:120px }

.players-panel{ right:40px }


/* SIGNATURE */

.signature{

position:fixed;

left:25px;
bottom:25px;

background:#1e293b;

padding:10px 16px;

border-radius:12px;
animation:cardFade .6s ease .45s;
animation-fill-mode:both;

-webkit-tap-highlight-color: transparent;

font-size:14px;

border:1px solid rgba(255,255,255,0.04);

backdrop-filter:blur(6px);

box-shadow:
0 10px 25px rgba(0,0,0,0.5),
0 0 10px rgba(120,160,255,.08);

color:#e2e8f0;

display:flex;
align-items:center;
gap:8px;

cursor:pointer;

z-index:10;

}

/* EMOJI ANIMATION */

.sig-emoji{

animation:emojiPulse 2.5s infinite;

}

@keyframes emojiPulse{

0%{
transform:scale(1);
filter:drop-shadow(0 0 2px #facc15);
}

50%{
transform:scale(1.25);
filter:drop-shadow(0 0 10px #facc15);
}

100%{
transform:scale(1);
filter:drop-shadow(0 0 2px #facc15);
}

}

@media (max-width:600px){

body{
padding-top:20px;
padding-bottom:20px;
overflow-y:auto;
min-height:100dvh;
overscroll-behavior-y:auto;
}


h1{
font-size:24px;
}

.card{
padding:28px;
}

.container{
margin-top:-10px;
}

.container{
transform:scale(.92);
}

.world-progress-card{
padding:28px;
}

.stat{
font-size:16px;
}

/* botones */

.floating-btn{
bottom:20px;
width:64px;
height:64px;
font-size:26px;
}

.meta-btn{ right:170px }
.boss-btn{ right:95px }
.players-btn{ right:20px }

/* firma */

.signature{
bottom:25px;
left:20px;
right:auto;
font-size:12px;
}

}

@media (max-width:600px){

.meta-panel{ right:40px }
.boss-panel{ right:40px }
.players-panel{ right:40px }

}

@media (max-width:600px){

.panel{
z-index:50;
}

.signature{
z-index:10;
}

.panel-title{

font-size:18px;
margin-bottom:14px;
text-align:center;
width:100%;

}

.panel{
padding:20px;
}

}


/* REMOVE MOBILE TAP HIGHLIGHT */

.floating-btn{
-webkit-tap-highlight-color: transparent;
}

/* REMOVE HOVER EFFECT ONLY (KEEP ACTIVE) */

@media (hover: none) and (pointer: coarse){

.floating-btn:hover:not(.active){

transform:none;
box-shadow:0 10px 25px rgba(0,0,0,0.5);

}

}

@keyframes floatBtn{

0%{ transform:translateY(0) }

50%{ transform:translateY(-2px) }

100%{ transform:translateY(0) }

}

@keyframes cardFade{

from{
opacity:0;
transform:translateY(25px);
}

to{
opacity:1;
transform:translateY(0);
}

}
