/* --- VARIABLES DE COLOR (Paleta Alt Dark Cute Gamer) --- */
:root {
    /* FONDOS OSCUROS */
    --bg-main: #120c1c;        /* Fondo principal: Morado casi negro */
    --bg-box: #1f152b;         /* Fondo de las cajas: Un poco más claro para contraste */
    
    /* ACENTOS NEÓN VIBRANTES (Para mantener lo cute pero alt) */
    --neon-purple: #9d4edd;    /* Morado eléctrico principal */
    --neon-pink: #ff5eb7;      /* Rosa neón caliente */
    --neon-cyan: #80ffea;      /* Cian/Turquesa brillante */
    --neon-green: #9effa8;     /* Verde lima radiactivo (opcional para detalles) */

    /* TEXTOS */
    --text-light: #f1e6fa;     /* Texto principal: Blanco hueso/lavanda pálido */
    --text-dim: #b3a3c4;       /* Texto secundario más apagado */
    --text-dark-on-neon: #120c1c; /* Texto oscuro para cuando el fondo es neón brillante */

    /* EFECTOS */
    /* En vez de sombra dura, usamos un resplandor (glow) difuminado */
    --box-glow: 0 0 15px rgba(157, 78, 221, 0.4), inset 0 0 5px rgba(157, 78, 221, 0.1);
}

/* --- RESET BÁSICO Y TIPOGRAFÍA --- */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    scrollbar-width: thin;
    scrollbar-color: var(--neon-purple) var(--bg-main);
}

/* Barra de scroll personalizada para Chrome/Safari */
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--bg-main); }
::-webkit-scrollbar-thumb { background: var(--neon-purple); border-radius: 5px; border: 2px solid var(--bg-main); }


body {
    font-family: 'Fredoka', sans-serif; /* Mantenemos la fuente cute */
    background-color: var(--bg-main);
    /* Base (si el video tarda en cargar) */
    background-image:
        radial-gradient(1200px 600px at 20% 0%, rgba(157, 78, 221, 0.18), transparent 55%),
        radial-gradient(900px 500px at 85% 10%, rgba(255, 94, 183, 0.12), transparent 60%);
    color: var(--text-light);
    line-height: 1.6;
    padding: 20px;
    position: relative;
}

/* Video de fondo (desde /img) */
.bg-video {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
    filter: brightness(0.45) contrast(1.05) saturate(0.9);
}

/* Overlay oscuro para lectura (encima del video) */
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(to bottom, rgba(18, 12, 28, 0.65), rgba(18, 12, 28, 0.35)),
        radial-gradient(900px 500px at 80% 10%, rgba(255, 94, 183, 0.10), transparent 60%),
        radial-gradient(1200px 700px at 20% 0%, rgba(157, 78, 221, 0.14), transparent 55%);
    z-index: -1;
}

/* Asegura que el contenido quede por encima del overlay */
.container {
    position: relative;
    z-index: 1;
}

/* Enlaces */
a {
    color: var(--neon-pink);
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
    text-shadow: 0 0 5px rgba(255, 94, 183, 0.5); /* Pequeño brillo en los links */
}
a:hover {
    color: var(--neon-cyan);
    text-shadow: 0 0 8px var(--neon-cyan);
    letter-spacing: 0.5px;
}

/* --- ESTRUCTURA PRINCIPAL --- */
.container {
    max-width: 960px;
    margin: 0 auto;
}
.content-wrapper {
    display: flex;
    gap: 25px;
    margin-top: 25px;
    align-items: flex-start;
}

/* --- ESTILO DE LAS "CAJAS/VENTANAS" DARK --- */
.window-box {
    background: var(--bg-box); /* Fondo oscuro */
    border: 2px solid var(--neon-purple); /* Borde neón más fino */
    border-radius: 15px;
    padding: 15px;
    margin-bottom: 20px;
    /* Resplandor en lugar de sombra sólida */
    box-shadow: var(--box-glow);
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Efecto hover opcional para las cajas */
.window-box:hover {
    box-shadow: 0 0 20px rgba(157, 78, 221, 0.6);
    border-color: var(--neon-pink);
}

/* Títulos de las ventanas */
.window-title {
    background: var(--neon-purple);
    /* Color de texto oscuro sobre fondo neón para contraste */
    color: var(--text-dark-on-neon); 
    padding: 8px 15px;
    margin: -15px -15px 15px -15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    text-align: center;
    /* Borde inferior brillante */
    border-bottom: 2px solid var(--neon-pink);
    text-shadow: none;
}

/* Variaciones de color para las cajas */
.color-alt .window-title { 
    background: var(--neon-pink); 
    border-bottom-color: var(--neon-purple);
}
.color-alt-2 .window-title { 
    background: var(--neon-cyan); 
    border-bottom-color: var(--neon-purple);
    color: var(--text-dark-on-neon);
}
.main-purple .window-title { 
    background: linear-gradient(90deg, var(--neon-purple), var(--neon-pink));
    border-bottom: none;
    color: white;
}

/* --- HEADER --- */
.main-header { padding: 0; text-align: center; border-color: var(--neon-pink);}
.banner-img {
    width: 100%;
    height: auto;
    display: block;
    border-bottom: 2px solid var(--neon-purple);
    opacity: 0.9; /* Un poco transparente para que se mezcle */
}
.main-header h1 {
    padding: 15px;
    font-size: 1.8rem;
    color: var(--text-light);
    text-shadow: 0 0 10px var(--neon-purple);
}

/* --- SIDEBAR --- */
.sidebar { flex: 0 0 260px; position: sticky; top: 20px;}
.profile-box { text-align: center; }
.profile-pic {
    width: 120px; height: 120px;
    border-radius: 50%;
    /* Borde brillante doble */
    border: 3px solid var(--neon-cyan);
    box-shadow: 0 0 10px var(--neon-cyan);
    margin-bottom: 10px;
}
.profile-box h3 { margin-bottom: 5px; color: var(--neon-pink); text-shadow: 0 0 5px rgba(255, 94, 183, 0.6);}
.status-text { 
    font-size: 0.9em; 
    /* Fondo cian brillante, texto oscuro */
    background: var(--neon-cyan); 
    color: var(--text-dark-on-neon);
    display: inline-block; 
    padding: 4px 10px; 
    border-radius: 12px;
    margin-bottom: 10px;
    font-weight: 700;
    box-shadow: 0 0 8px var(--neon-cyan);
}
.bio-text { font-size: 0.95em; color: var(--text-dim); }

/* Menú de Navegación */
.nav-box ul { list-style: none; }
.nav-box li {
    margin-bottom: 8px;
    border-bottom: 1px dashed var(--neon-purple); /* Línea punteada neón */
    padding-bottom: 5px;
}
.nav-box li a { display: block; padding: 5px; color: var(--text-light);}
.nav-box li a:hover {
    background-color: rgba(157, 78, 221, 0.2); /* Fondo semitransparente al pasar el mouse */
    color: var(--neon-cyan);
    padding-left: 10px;
    border-radius: 5px;
}

/* Botón pixelado brillante */
.pixel-btn {
    background: var(--neon-purple);
    color: var(--text-light);
    border: 2px solid var(--neon-pink);
    padding: 8px 15px;
    font-family: 'Fredoka', sans-serif;
    font-weight: bold;
    border-radius: 8px;
    cursor: pointer;
    box-shadow: 0 0 10px var(--neon-purple);
    transition: all 0.2s;
}
.pixel-btn:hover {
    background: var(--neon-pink);
    border-color: var(--neon-purple);
    box-shadow: 0 0 15px var(--neon-pink);
    transform: scale(1.05);
}

/* --- CONTENIDO PRINCIPAL --- */
.main-content { flex: 1; }
.post-content h2 { color: var(--neon-pink); margin-bottom: 10px; text-shadow: 0 0 5px rgba(255, 94, 183, 0.4); }
.post-content p { margin-bottom: 15px; color: var(--text-light); }
.post-content ul { margin-left: 20px; margin-bottom: 15px; color: var(--text-dim);}
.post-content li { margin-bottom: 5px; }
.post-content li::marker { color: var(--neon-cyan); } /* Color de los puntitos de la lista */

/* Biblioteca de juegos */
.library-details {
    margin-top: 6px;
}

/* Preview de favoritos (arriba del desplegable) */
.fav-preview {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 10px 0 12px;
}

.library-open .fav-preview {
    display: none;
}

.fav-preview-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 12px;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(128, 255, 234, 0.20);
}

.fav-preview-cover {
    width: 56px;
    height: 74px;
    object-fit: cover;
    border-radius: 10px;
    border: 1px solid rgba(255, 94, 183, 0.22);
    box-shadow: 0 0 12px rgba(255, 94, 183, 0.10);
    flex: 0 0 auto;
}

.fav-preview-title {
    font-weight: 800;
    color: var(--text-light);
}

@media (max-width: 420px) {
    .fav-preview {
        grid-template-columns: 1fr;
    }
}

/* Variante turquesa para la biblioteca */
.library-cyan {
    border-color: var(--neon-cyan);
    box-shadow:
        0 0 15px rgba(128, 255, 234, 0.26),
        0 0 12px rgba(255, 94, 183, 0.18),
        inset 0 0 5px rgba(128, 255, 234, 0.10);
}

.library-cyan:hover {
    box-shadow:
        0 0 20px rgba(128, 255, 234, 0.38),
        0 0 18px rgba(255, 94, 183, 0.22);
    border-color: var(--neon-cyan);
}

/* Fade turquesa -> rosa en el título de la biblioteca */
.library-cyan .window-title {
    background: linear-gradient(90deg, var(--neon-cyan), var(--neon-pink));
    border-bottom-color: var(--neon-purple);
    color: var(--text-dark-on-neon);
}

.library-summary {
    cursor: pointer;
    font-weight: 800;
    color: var(--text-light);
    padding: 10px 12px;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(128, 255, 234, 0.14), rgba(255, 94, 183, 0.10));
    border: 1px solid rgba(128, 255, 234, 0.30);
    list-style: none;
}

/* Oculta el triángulo por defecto en algunos navegadores */
.library-summary::-webkit-details-marker { display: none; }

.library-details[open] .library-summary {
    border-color: rgba(128, 255, 234, 0.40);
    box-shadow:
        0 0 10px rgba(128, 255, 234, 0.16),
        0 0 10px rgba(255, 94, 183, 0.12);
    margin-bottom: 12px;
}

.friend-codes {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
}

.code-pill {
    display: inline-block;
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.22);
    border: 1px solid rgba(128, 255, 234, 0.25);
    color: var(--text-light);
    cursor: pointer;
}

.code-pill strong { color: var(--neon-cyan); }

.game-library {
    margin-left: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
}

.game-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px;
    border-radius: 12px;
    background: rgba(0,0,0, 0.22);
    border: 1px solid rgba(157, 78, 221, 0.22);
}

.game-cover {
    width: 56px;
    height: 74px;
    object-fit: cover;
    flex: 0 0 auto;
    display: block;
    border-radius: 10px;
    border: 1px solid rgba(255, 94, 183, 0.28);
    box-shadow: 0 0 14px rgba(157, 78, 221, 0.18);
}

.game-title {
    font-weight: 700;
    color: var(--text-light);
}

.fav-star {
    color: var(--neon-pink);
    text-shadow: 0 0 8px rgba(255, 94, 183, 0.6);
    margin-left: 6px;
    font-size: 1.05em;
    vertical-align: baseline;
}

/* Toast "Copiado" */
.toast {
    position: fixed;
    left: 50%;
    bottom: 18px;
    transform: translateX(-50%);
    z-index: 50;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(31, 21, 43, 0.95);
    border: 1px solid rgba(128, 255, 234, 0.35);
    color: var(--text-light);
    box-shadow: 0 0 14px rgba(128, 255, 234, 0.18);
    opacity: 0;
    transition: opacity 0.15s ease;
    pointer-events: none;
}

.toast--show {
    opacity: 1;
}

@media (min-width: 768px) {
    .game-library {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
}

/* --- BLOG / DIARIO --- */
.muted { color: var(--text-dim); }

.blog-list {
    display: grid;
    gap: 14px;
}

.post-card {
    border: 1px solid rgba(157, 78, 221, 0.35);
    border-radius: 12px;
    padding: 12px;
    background: rgba(0, 0, 0, 0.18);
}

.post-card h3 {
    margin-bottom: 6px;
    color: var(--text-light);
}

.post-meta {
    font-size: 0.9em;
    color: var(--text-dim);
    margin-bottom: 10px;
}

.post-excerpt {
    color: var(--text-light);
    margin-bottom: 10px;
}

.blog-post-top {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 12px;
}

.blog-back {
    color: var(--neon-cyan);
    font-weight: 700;
}

.md-content {
    color: var(--text-light);
}

.md-content h1,
.md-content h2,
.md-content h3 {
    margin: 16px 0 10px;
    line-height: 1.2;
}

.md-content h1 { color: var(--neon-pink); text-shadow: 0 0 6px rgba(255, 94, 183, 0.35); }
.md-content h2 { color: var(--neon-cyan); text-shadow: 0 0 6px rgba(128, 255, 234, 0.25); }
.md-content h3 { color: var(--text-light); }

.md-content p {
    margin-bottom: 14px;
}

.md-content ul,
.md-content ol {
    margin: 0 0 14px 20px;
    color: var(--text-dim);
}

.md-content li { margin-bottom: 6px; }

.md-content hr {
    border: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(157, 78, 221, 0.7), transparent);
    margin: 18px 0;
}

.md-content blockquote {
    margin: 14px 0;
    padding: 10px 12px;
    border-left: 3px solid var(--neon-purple);
    background: rgba(157, 78, 221, 0.10);
    color: var(--text-light);
}

.md-content img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 12px auto;
    border-radius: 12px;
    border: 1px solid rgba(255, 94, 183, 0.35);
    box-shadow: 0 0 16px rgba(157, 78, 221, 0.25);
}

.md-content a {
    word-break: break-word;
}

/* Música */
.music-embed {
    margin-top: 10px;
}

.music-embed iframe {
    height: 80px;
}

.music-title {
    font-weight: 800;
    color: var(--text-light);
    margin-bottom: 10px;
}

/* --- MODO LECTURA (solo entrada del diario) --- */
body.reading-mode .sidebar,
body.reading-mode .main-header,
body.reading-mode .main-footer {
    display: none;
}

/* Oculta secciones que no son del diario mientras se lee una entrada */
body.reading-mode .main-content > :not(#blog) {
    display: none;
}

body.reading-mode .content-wrapper {
    display: block;
    margin-top: 0;
}

body.reading-mode .main-content {
    flex: none;
}

/* Un poco más de espacio para lectura larga */
body.reading-mode .container {
    max-width: 900px;
}

/* Grid juegos Dark */
.game-grid { display: flex; flex-direction: column; gap: 10px; }
.game-item {
    display: flex; justify-content: space-between; align-items: center;
    background: rgba(0,0,0, 0.3); /* Fondo más oscuro para los items */
    padding: 10px;
    border-radius: 8px;
    border: 1px solid rgba(157, 78, 221, 0.3);
}
.progress-bar {
    width: 50%; height: 14px;
    background: #120c1c; /* Fondo de barra muy oscuro */
    border-radius: 7px;
    overflow: hidden;
    border: 1px solid var(--neon-purple);
    box-shadow: inset 0 0 5px rgba(0,0,0,0.5);
}
.progress-bar .fill {
    height: 100%;
    /* Gradiente de neón */
    background: linear-gradient(90deg, var(--neon-purple), var(--neon-pink));
    box-shadow: 0 0 10px var(--neon-pink);
}
.progress-bar .fill-alt {
     background: linear-gradient(90deg, var(--neon-cyan), var(--neon-green));
     box-shadow: 0 0 10px var(--neon-cyan);
}

/* --- FOOTER --- */
.main-footer {
    text-align: center; margin-top: 20px;
    background: var(--bg-box);
    border-color: var(--neon-purple);
    color: var(--text-dim);
}

/* --- RESPONSIVE --- */
@media (max-width: 768px) {
    .content-wrapper { flex-direction: column; }
    .sidebar { flex: auto; width: 100%; position: static; }
}
