:root {
    --bg-sky: #a0d8ff;
    --bg-cloud: #f0f8ff;
    --bg-grass: #5e9c4a;
    --text-dark: #222;
    --text-blue: #2c4a9c;
    --text-orange: #e67e22;
    --accent-green: #2ecc71;
    
    --font-title: 'Press Start 2P', cursive;
    --font-body: 'VT323', monospace;
}

body {
    margin: 0;
    padding: 20px;
    font-family: var(--font-body);
    background: linear-gradient(#87ceeb, #e0f0ff);
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    overflow-x: hidden;
}

/* Tarjeta principal con animaciÃ³n de entrada */
.server-card {
    width: 100%;
    max-width: 820px;
    background: linear-gradient(to bottom, var(--bg-sky) 0%, var(--bg-sky) 55%, var(--bg-grass) 55%, var(--bg-grass) 100%);
    border: 6px solid #000;
    border-radius: 12px;
    box-shadow: 12px 12px 0 #00000088;
    position: relative;
    overflow: hidden;
    padding: 50px 40px;
    animation: cardEnter 1.2s ease-out forwards;
    box-sizing: border-box;
    opacity: 0;
    transform: translateY(60px);
}

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

/* Nubes flotantes */
.server-card::before,
.server-card::after {
    content: '';
    position: absolute;
    background: var(--bg-cloud);
    border: 3px solid #fff;
    border-radius: 50px;
    box-shadow: 0 0 0 3px #000;
    opacity: 0.85;
    animation: cloudFloat 28s linear infinite;
}

.server-card::before {
    width: 180px; height: 70px;
    top: 25px; left: -40px;
    box-shadow: 45px 15px 0 -10px var(--bg-cloud), 70px 25px 0 -8px #fff;
    animation-duration: 32s;
}

.server-card::after {
    width: 220px; height: 90px;
    top: -15px; right: -60px;
    box-shadow: -55px 30px 0 -15px var(--bg-cloud), -80px 35px 0 -12px #fff;
    animation-duration: 38s;
    animation-direction: reverse;
}

@keyframes cloudFloat {
    0%   { transform: translateX(-25px); }
    100% { transform: translateX(35px); }
}

/* Contenido */
.content {
    position: relative;
    z-index: 10;
    text-align: center;
}

/* TÃ­tulo con glitch */
.header h1 {
    font-family: var(--font-title);
    font-size: 2.4rem;
    margin: 0 0 8px 0;
    text-transform: uppercase;
    letter-spacing: 4px;
    color: #fff;
    -webkit-text-stroke: 3px #000;
    text-shadow: 5px 5px 0 #000;
}

@keyframes titleGlitch {
    0%, 100% { transform: translate(0); }
    20% { transform: translate(-2px, 2px); }
    40% { transform: translate(-2px, -2px); }
    60% { transform: translate(2px, 2px); }
    80% { transform: translate(2px, -2px); }
}

.header h2 {
    font-size: 1.9rem;
    margin: 0 0 40px 0;
    color: #222;
    animation: fadeInUp 1.5s ease-out 0.4s both;
}

/* Botones */
.join-section {
    display: flex;
    justify-content: center;
    gap: 22px;
    flex-wrap: wrap;
    margin-bottom: 45px;
}

.join-button {
    font-family: var(--font-title);
    font-size: 1.25rem;
    padding: 18px 36px;
    border: 5px solid #000;
    border-radius: 8px;
    cursor: pointer;
    text-transform: uppercase;
    color: #fff;
    -webkit-text-stroke: 1.5px #000;
    text-shadow: 3px 3px 0 #000;
    box-shadow: 6px 6px 0 #000;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    min-width: 260px;
    line-height: 1.4;
}

.join-button::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 40%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.35), transparent);
    transition: 0.7s;
}

.join-button:hover::before {
    left: 250%;
}

.join-button:hover {
    transform: translateY(-8px) scale(1.05);
    box-shadow: 10px 12px 0 #000;
}

.join-button:active {
    transform: translateY(3px) scale(0.98);
    box-shadow: 3px 3px 0 #000;
}

.join-java { background-color: #4a8c5f; }
.join-bedrock { background-color: #e67e22; }

.ip-text {
    font-size: 1.15rem;
    opacity: 0.95;
    display: block;
    margin-top: 4px;
}

/* Discord */
.discord-section {
    margin-bottom: 50px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 15px;
    font-size: 1.75rem;
}

.discord-label {
    color: var(--text-blue);
    font-weight: bold;
    text-transform: uppercase;
}

.discord-link {
    color: var(--text-orange);
    text-decoration: none;
    border-bottom: 3px dashed var(--text-orange);
    transition: all 0.3s ease;
}

.discord-link:hover {
    color: #ff9f1c;
    transform: scale(1.08);
}

/* Mensajes con animaciÃ³n */
.messages-container {
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: flex-end;
    max-width: 88%;
    margin: 0 auto;
}

.message-bubble {
    background: #fff;
    border: 4px solid #000;
    padding: 14px 20px;
    border-radius: 8px;
    position: relative;
    font-size: 1.32rem;
    line-height: 1.4;
    box-shadow: 5px 5px 0 #00000055;
    opacity: 0;
    transform: translateY(30px) scale(0.95);
    animation: bubblePop 0.9s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.message-bubble:nth-child(1) { animation-delay: 0.7s; }
.message-bubble:nth-child(2) { animation-delay: 1.1s; }
.message-bubble:nth-child(3) { animation-delay: 1.5s; }

@keyframes bubblePop {
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Tooltip */
.copy-tooltip {
    position: fixed;
    background: #1a1a1a;
    color: #fff;
    padding: 14px 26px;
    border-radius: 8px;
    font-size: 1.15rem;
    box-shadow: 6px 6px 0 #000;
    border: 3px solid #fff;
    display: none;
    z-index: 1000;
    font-family: var(--font-body);
    animation: tooltipPop 0.4s ease;
}

@keyframes tooltipPop {
    0% { transform: scale(0.5) translate(-50%, -50%); opacity: 0; }
    100% { transform: scale(1) translate(-50%, -50%); opacity: 1; }
}

/* Responsividad */
@media (max-width: 650px) {
    .server-card { padding: 35px 20px; }
    .header h1 { font-size: 1.85rem; }
    .header h2 { font-size: 1.55rem; }
    .join-button { font-size: 1.1rem; padding: 16px 28px; min-width: 220px; }
    .message-bubble { font-size: 1.22rem; }
}

/* Botón del Mapa */
.map-button {
    background-color: #e74c3c !important;   /* Rojo atractivo para mapa */
    border-color: #c0392b;
}

.map-button:hover {
    background-color: #c0392b !important;
    transform: translateY(-8px) scale(1.05);
    box-shadow: 10px 12px 0 #000;
}

.map-section {
    display: flex;
    justify-content: center;
}