:root{--bg:#3E3D39;--surface:#4a4944;--surface-2:#55544f;--text:#fff;--muted:#d0cfca;--line:rgba(255,255,255,.12);--accent:#DC0D63;--accent-dark:#1d1d1b;--shadow:0 20px 60px rgba(0,0,0,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 40px));margin:auto}.page-glow{position:fixed;border-radius:50%;filter:blur(100px);opacity:.15;pointer-events:none;z-index:-1}.page-glow-one{width:360px;height:360px;background:var(--accent);top:-120px;right:-80px}.page-glow-two{width:300px;height:300px;background:#fff;bottom:-160px;left:-80px}.site-header{position:sticky;top:0;z-index:50;background:rgba(62, 57, 60, 0.82);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.nav-wrapper{min-height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--accent);color:var(--accent-dark);font-family:Rajdhani,sans-serif;font-weight:800;box-shadow:0 10px 30px rgba(246, 67, 151, 0.25)}.brand strong,.brand small{display:block}.brand strong{font-family:Rajdhani,sans-serif;font-size:1.25rem;line-height:1}.brand small{font-size:.72rem;color:var(--muted);margin-top:4px}.main-nav{display:flex;align-items:center;gap:28px}.main-nav a{font-size:.93rem;color:var(--muted);transition:.25s}.main-nav a:hover{color:#fff}.nav-button{padding:11px 17px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:#fff!important}.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:1.5rem}
.hero{padding:92px 0 60px}.hero-grid,.competition-hero-grid,.platform-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:center}.eyebrow{display:inline-block;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.16em;font-size:.75rem;margin-bottom:18px}.hero h1,.competition-hero h1{font-family:Rajdhani,sans-serif;font-size:clamp(3.2rem,7vw,6.2rem);line-height:.93;margin:0 0 24px;letter-spacing:-.03em}.hero p,.competition-hero p{font-size:1.08rem;color:var(--muted);max-width:680px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 22px;border-radius:14px;font-weight:800;transition:.3s;border:1px solid transparent}.btn:hover{transform:translateY(-3px)}.btn-primary{background:var(--accent);color:var(--accent-dark);box-shadow:0 15px 35px rgba(246, 67, 237, 0.2)}.btn-outline{background:var(--bg);border-color:var(--line);color:#fff}.hero-stats{display:flex;gap:28px;margin-top:42px}.hero-stats div{display:flex;flex-direction:column}.hero-stats strong{font-family:Rajdhani,sans-serif;font-size:1.8rem}.hero-stats span{font-size:.75rem;color:var(--muted)}


.speed-card{position:relative;min-height:480px;border-radius:34px;background:linear-gradient(145deg,#554f54,#363136);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden;display:flex;align-items:center;justify-content:center}

.speed-ring{width:300px;
    height:300px;
    display:flex;
    align-items:center;
    justify-content:center;
    
    border-radius:50%;border:2px solid rgba(255,255,255,.18);display:grid;place-items:center;position:relative;animation:pulse 3.5s infinite}.speed-ring:before,.speed-ring:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(246, 67, 142, 0.3);inset:-28px}.speed-ring:after{inset:-58px;opacity:.5}
.speed-ring img{
   width:85%;
    height:85%;
    object-fit:contain;
    display:block;
}

.hero-logo{
    width:200px;
    height:200px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:auto;
    animation:heroFloat 4s ease-in-out infinite;
}

.hero-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
    display:block;
    filter:drop-shadow(0 18px 35px rgba(220,13,99,.35));
    animation:heroPulse 3s ease-in-out infinite;
}



.hero-map{
    display:flex;
    justify-content:center;
    align-items:center;
    margin-top:-150px;
    margin-bottom:10px;
}

.hero-map-image{
    width:100%;
    max-width:520px;
    height:auto;
    display:block;
    animation:floatMap 4s ease-in-out infinite;
    filter:drop-shadow(0 20px 45px rgba(220,13,99,.35));
    transition:.4s;
}

.hero-map-image:hover{
    transform:scale(1.05);
    filter:drop-shadow(0 25px 60px rgba(220,13,99,.55));
}

/* ===========================
   BOTÓN VOLVER ARRIBA
=========================== */

#btnUp{
    position:fixed;
    right:30px;
    bottom:30px;
    width:55px;
    height:55px;
    border:none;
    border-radius:50%;
    background:#DC0D63;
    color:#fff;
    font-size:20px;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    opacity:0;
    visibility:hidden;
    transition:.35s;
    z-index:9999;

    box-shadow:0 12px 35px rgba(220,13,99,.35);
}

#btnUp:hover{
    transform:translateY(-5px);
    background:#F21575;
    box-shadow:0 20px 45px rgba(220,13,99,.55);
}

#btnUp.show{
    opacity:1;
    visibility:visible;
}

/*==================================
  BANNER DEL EVENTO
==================================*/

.evento-banner{

    margin:55px 0;

}

.evento-banner-img{

    width:80%;

    display:block;

    border-radius:24px;

    border:1px solid rgba(255,255,255,.08);

    box-shadow:
        0 20px 60px rgba(0,0,0,.45);

    transition:.45s;

}

.evento-banner-img:hover{

    transform:translateY(-6px);

    box-shadow:
        0 28px 70px rgba(220,13,99,.22);

}

/* =========================================
   CRONOGRAMA Y MAPA DE LA COMPETENCIA
========================================= */

.evento-detalles-especiales{
    width:min(1180px, calc(100% - 40px));
    margin:50px auto;
    display:flex;
    flex-direction:column;
    gap:38px;
}

.evento-imagen-card{
    width:100%;
    padding:22px;
    border-radius:24px;
    overflow:hidden;
    background:
        linear-gradient(
            145deg,
            rgba(255,255,255,.06),
            rgba(255,255,255,.02)
        );
    border:1px solid rgba(255,255,255,.09);
    box-shadow:0 22px 60px rgba(0,0,0,.35);
}

.evento-imagen-titulo{
    margin-bottom:20px;
}

.evento-imagen-titulo span{
    display:block;
    margin-bottom:5px;
    color:#DC0D63;
    font-size:.76rem;
    font-weight:700;
    letter-spacing:2px;
    text-transform:uppercase;
}

.evento-imagen-titulo h2{
    margin:0;
    color:#fff;
    font-size:clamp(1.35rem, 2.3vw, 2rem);
}

.evento-detalle-img{
    width:100%;
    height:auto;
    display:block;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.08);
    transition:
        transform .4s ease,
        box-shadow .4s ease;
}

.evento-imagen-card:hover .evento-detalle-img{
    transform:scale(1.01);
    box-shadow:0 20px 50px rgba(220,13,99,.18);
}

/*==================================
DOCUMENTOS OFICIALES
==================================*/

.documentos-oficiales{

    margin-top:45px;

}

.documentos-grid{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:22px;

}

.documento-card{

    display:flex;

    align-items:center;

    gap:18px;

    padding:24px;

    border-radius:20px;

    text-decoration:none;

    color:#fff;

    background:linear-gradient(
        145deg,
        rgba(255,255,255,.06),
        rgba(255,255,255,.02)
    );

    border:1px solid rgba(255,255,255,.08);

    transition:.35s;

}

.documento-card:hover{

    transform:translateY(-6px);

    border-color:#DC0D63;

    box-shadow:0 20px 45px rgba(220,13,99,.18);

}

.documento-icono{

    width:68px;
    height:68px;

    border-radius:18px;

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

    background:linear-gradient(
        135deg,
        #DC0D63,
        #b90b54
    );

    color:#fff;

    font-size:28px;

    flex-shrink:0;

    box-shadow:
        0 12px 30px rgba(220,13,99,.35);

    transition:.35s;

}
.documento-card:hover .documento-icono{

    transform:rotate(-8deg) scale(1.08);

    box-shadow:
        0 18px 40px rgba(220,13,99,.55);

}

.documento-card h3{

    margin:0 0 6px;

    font-size:20px;

}

.documento-card p{

    margin:0;

    color:#bdbdbd;

    font-size:14px;

}

.disabled-doc{

    cursor:not-allowed;

}

.disabled-doc::after{

    content:"Próximamente";

    position:absolute;

    top:15px;
    right:15px;

    background:#DC0D63;

    color:#fff;

    font-size:11px;

    padding:4px 10px;

    border-radius:20px;

    font-weight:700;

}
/*==================================
 NEWSLETTER
==================================*/

.cta-newsletter{

    margin:90px auto;

    max-width:900px;

    padding:60px;

    border-radius:30px;

    text-align:center;

    background:
        linear-gradient(
            145deg,
            rgba(220,13,99,.18),
            rgba(62,61,57,.95)
        );

    border:1px solid rgba(220,13,99,.35);

    box-shadow:
        0 25px 70px rgba(0,0,0,.35);

}

.cta-badge{

    display:inline-block;

    padding:8px 18px;

    border-radius:50px;

    background:#DC0D63;

    color:#fff;

    font-size:.75rem;

    font-weight:700;

    letter-spacing:2px;

    margin-bottom:20px;

}

.cta-newsletter h2{

    color:#fff;

    font-size:40px;

    margin-bottom:15px;

}

.cta-newsletter p{

    color:#d5d5d5;

    max-width:650px;

    margin:0 auto 35px;

    line-height:1.8;

}

.newsletter-form{

    display:flex;

    justify-content:center;

    gap:15px;

    flex-wrap:wrap;

}

.newsletter-form input{

    width:420px;

    max-width:100%;

    padding:18px 22px;

    border:none;

    border-radius:60px;

    background:#ffffff;

    font-size:16px;

}

.newsletter-form button{

    padding:18px 34px;

    border:none;

    border-radius:60px;

    cursor:pointer;

    background:#DC0D63;

    color:#fff;

    font-weight:700;

    transition:.3s;

}

.newsletter-form button:hover{

    transform:translateY(-3px);

    box-shadow:
        0 15px 35px rgba(220,13,99,.45);

}

@media(max-width:768px){

    .cta-newsletter{

        padding:35px 25px;

    }

    .cta-newsletter h2{

        font-size:30px;

    }

    .newsletter-form{

        flex-direction:column;

    }

    .newsletter-form input,
    .newsletter-form button{

        width:100%;

    }

}

.form-message{
    margin-top:20px;
    padding:12px 18px;
    border-radius:12px;
    font-weight:600;
}

.form-message.success{
    color:#ffffff;
    background:rgba(29,185,84,.18);
    border:1px solid rgba(29,185,84,.45);
}

.form-message.error{
    color:#ffffff;
    background:rgba(220,13,99,.18);
    border:1px solid rgba(220,13,99,.45);
}
@media(max-width:900px){

    .documentos-grid{

        grid-template-columns:1fr;

    }

}

@media (max-width:600px){
    .evento-detalles-especiales{
        margin:32px 0;
        gap:24px;
    }

    .evento-imagen-card{
        padding:12px;
        border-radius:18px;
    }

    .evento-detalle-img{
        border-radius:12px;
    }
}


@keyframes floatMap{

    0%,100%{
        transform:translateY(0px);
    }

    50%{
        transform:translateY(-10px);
    }

}

@keyframes heroFloat{
    0%,
    100%{
        transform:translateY(0) rotate(0deg);
    }

    50%{
        transform:translateY(-16px) rotate(-2deg);
    }
}

@keyframes heroPulse{
    0%,
    100%{
        transform:scale(1);
        filter:drop-shadow(0 18px 35px rgba(220,13,99,.30));
    }

    50%{
        transform:scale(1.05);
        filter:drop-shadow(0 24px 48px rgba(220,13,99,.55));
    }
}

@keyframes pinBounce{

    0%,100%{
        transform:translateX(-50%) translateY(0);
    }

    50%{
        transform:translateX(-50%) translateY(-8px);
    }

}

.speed-card{
    position:relative;
    overflow:hidden;
}

.speed-lines{
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity:.35;
    background:
        linear-gradient(
            120deg,
            transparent 0%,
            transparent 38%,
            rgba(220,13,99,.35) 45%,
            transparent 52%,
            transparent 100%
        );
    background-size:220% 100%;
    animation:speedMove 3.5s linear infinite;
}

@keyframes speedMove{
    from{
        background-position:200% 0;
    }

    to{
        background-position:-200% 0;
    }
}

.speed-copy
{position:absolute;left:28px;right:28px;bottom:28px;padding:22px;border-radius:20px;background:rgba(20, 18, 19, 0.72);backdrop-filter:blur(8px)}.speed-copy span,.speed-copy small{display:block;color:var(--muted)}.speed-copy strong{display:block;font-family:Rajdhani,sans-serif;font-size:1.55rem;margin:4px 0}.section{padding:88px 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:36px}.section-heading h2,.platform-panel h2,.about-card h2{font-family:Rajdhani,sans-serif;font-size:clamp(2.2rem,4vw,3.7rem);line-height:1;margin:0}.section-heading p{max-width:500px;color:var(--muted)}.competition-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.competition-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;overflow:hidden;transition:.35s;box-shadow:0 15px 40px rgba(0,0,0,.14)}.competition-card:hover{transform:translateY(-10px);box-shadow:var(--shadow)}.card-image{display:block;position:relative;overflow:hidden}.card-image img{width:100%;height:235px;object-fit:cover;transition:.5s}.competition-card:hover .card-image img{transform:scale(1.06)}.status-badge{position:absolute;top:18px;left:18px;padding:8px 12px;border-radius:999px;background:rgba(62, 57, 62, 0.88);border:1px solid var(--line);font-size:.72rem;font-weight:800}.card-body{padding:24px}.card-meta,.card-details{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.78rem}.card-body h3{font-family:Rajdhani,sans-serif;font-size:1.7rem;line-height:1.05;margin:15px 0 10px}.card-body p{color:var(--muted);font-size:.92rem}.card-details{margin:20px 0;flex-direction:column}.card-link{display:flex;justify-content:space-between;align-items:center;padding-top:18px;border-top:1px solid var(--line);font-weight:800}.card-link span{color:var(--accent);font-size:1.2rem}.platform-section{background:rgba(255,255,255,.025);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.platform-panel{padding:40px;border-radius:28px;background:linear-gradient(145deg,var(--surface-2),var(--surface));border:1px solid var(--line)}.platform-panel p,.about-card p,.feature-item p{color:var(--muted)}.feature-list{display:grid;gap:18px}.feature-item{display:flex;gap:18px;padding:24px;border-bottom:1px solid var(--line)}.feature-item span{font-family:Rajdhani,sans-serif;color:var(--accent);font-size:1.6rem;font-weight:800}.feature-item strong{font-size:1.05rem}.feature-item p{margin:4px 0 0}.about-card{text-align:center;max-width:900px;margin:auto;padding:58px;border:1px solid var(--line);border-radius:30px;background:var(--surface)}.site-footer{border-top:1px solid var(--line);padding:58px 0 20px;background:#353430}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px}.footer-grid p{color:var(--muted);max-width:500px}.footer-grid h4{font-family:Rajdhani,sans-serif;font-size:1.25rem;margin:0 0 12px}.footer-grid a,.footer-grid span{display:block;color:var(--muted);margin:8px 0}.footer-bottom{margin-top:40px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-size:.85rem}.competition-hero{padding:80px 0}.back-link{display:inline-block;color:var(--muted);margin-bottom:22px}.detail-card{background:var(--surface);border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:var(--shadow)}.detail-card img{width:100%;height:290px;object-fit:cover}.detail-grid{display:grid;grid-template-columns:1fr 1fr}.detail-grid div{padding:20px;border-top:1px solid var(--line);border-right:1px solid var(--line)}.detail-grid span,.detail-grid strong{display:block}.detail-grid span{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.detail-grid strong{margin-top:5px}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.info-panel{padding:30px;border-radius:22px;background:var(--surface);border:1px solid var(--line)}.panel-number{color:var(--accent);font-family:Rajdhani,sans-serif;font-size:1.8rem;font-weight:800}.info-panel h3{font-family:Rajdhani,sans-serif;font-size:1.6rem}.info-panel p{color:var(--muted)}.error-page{min-height:60vh;display:grid;place-items:center;text-align:center}.reveal{opacity:0;transform:translateY(22px);transition:.8s ease}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.12s}.delay-2{transition-delay:.24s}.delay-3{transition-delay:.36s}@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes moveLines{to{transform:translateX(20%)}}@media(max-width:900px){.main-nav{display:none;position:absolute;top:78px;left:20px;right:20px;padding:22px;background:#353430;border:1px solid var(--line);border-radius:18px;flex-direction:column;align-items:stretch}.main-nav.open{display:flex}.menu-toggle{display:block}.hero-grid,.competition-hero-grid,.platform-grid,.footer-grid{grid-template-columns:1fr}.competition-grid,.info-grid{grid-template-columns:1fr 1fr}.hero{padding-top:60px}.speed-card{min-height:400px}.section-heading{align-items:start;flex-direction:column}}
@media(max-width:620px){
    .container{width:min(100% - 24px,1180px)}
    .competition-grid,.info-grid{grid-template-columns:1fr}
    .hero h1,.competition-hero h1{font-size:3.2rem}
    .hero-stats{gap:18px;flex-wrap:wrap}
    .section{padding:64px 0}
    speed-card{min-height:340px}
    .detail-grid{grid-template-columns:1fr}
    .section-heading{margin-bottom:24px}
    .about-card,.platform-panel{padding:28px}
    .footer-grid{gap:28px}}
    
.brand-logo {
    width: 54px;
    height: 54px;
    object-fit: contain;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.brand:hover .brand-logo {
    transform: scale(1.06);
}

/* =========================================
   CONFIGURACIÓN RESPONSIVA GENERAL
========================================= */

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    overflow-x:hidden;
}

img,
svg,
video,
iframe{
    max-width:100%;
    height:auto;
}

.container{
    width:min(1180px, calc(100% - 40px));
    margin-left:auto;
    margin-right:auto;
}

section{
    max-width:100%;
}

input,
button,
select,
textarea{
    font:inherit;
}