
body {
    background-color: rgb(0, 0, 0);
    color: #d5ed8cac;
            font-family: "Fira Code", "Courier New", monospace;
        font-size: 11px   ;
    margin: 0;
    padding: 0;
    min-height: 80%;       /* La página ocupa como mínimo toda la altura */
    height: auto;            /* Deja que crezca si el contenido es mayor */
     max-width:auto;
    overflow-x: hidden;      /* Sin scroll horizontal */
    overflow-y: auto;        /* Scroll vertical normal */
}


#world-wrapper {
  max-width: 1200px;       /* ancho máximo del “escenario” */
  margin: 0 auto;          /* centrado horizontal */
  padding-top: 40px;
}

#world-wrapper pre {
  font-family: monospace;
  white-space: pre;
  line-height: 1;
  font-size: 6px;          /* ajusta para escalar el dibujo */
  margin: 0 auto 40px;     /* separación entre dibujos */
  display: block;
  
}



section p {
            font-size: 9px; /* Aumenta el tamaño de la fuente */

            font-family: "Fira Code", "Courier New", monospace;

            line-height: 1.0; /* Aumenta el espacio entre líneas para mejor legibilidad */
            color: #ecfca3; /* Cambia el color del texto a blanco, ajusta según tu diseño */
            text-align: justify; /* Alinea justificadamente el texto */
            margin: 0px 400px; /* Añade márgenes alrededor del párrafo para más espacio */
        margin-top: 150px;
        }

        @media (max-width: 768px) {
        section p {
            font-size: 9px; /* Un poco más pequeño para tabletas */
            margin: 10px 15px; /* Margen ligeramente más pequeño */
            padding-top: -960px;
        }
    }

    /* Estilos para teléfonos móviles: pantallas con un ancho máximo de 480px */
    @media (max-width: 480px) {
        section p {
            font-size: 9px; /* Más pequeño para teléfonos móviles */
            margin: 10px 10px;
        }
    }

    /* Estilos para pantallas muy pequeñas: pantallas con un ancho máximo de 320px */
    @media (max-width: 320px) {
        section p {
            font-size: 8px; /* Muy pequeño para pantallas muy pequeñas */
            margin: 5px;
            
        }
    }

#ascii-art{
   display:flex;
    word-wrap: break-word;
    font-size: 3px;
    line-height: 1;
    z-index: 900000;
    cursor: pointer;
    margin: auto;
  margin-top: 230px;
  margin-left: -400px;
    background: transparent ;

  
 }


    
#ascii-cat{
    display: flex;
    white-space:pre-wrap;
    word-wrap: break-word; 
    font-size: 6px;
    cursor: pointer;
    margin: 20px;
                width: 100%; /* Ocupa el ancho completo de la pantalla */

    padding-top: 290px;
    z-index: 9999933000;
 
   

}



    
#ascii-cat2{
    display: flex;
    white-space:pre-wrap;
    word-wrap: break-word; 
    font-size: 6px;
    cursor: pointer;
    margin: 20px;
                width: 100%; /* Ocupa el ancho completo de la pantalla */

    padding-top: 290px;
    z-index: 9999933000;
 
   

}
    #ascii-container {
    
display: flex;    
height: auto; /* Asegúrate de que pueda expandirse para ajustarse al nuevo tamaño del canvas */
margin-top: -50px;
margin-left: 80px; /* Centra horizontalmente */
    margin-right: auto;
    top: 100px;
  z-index: 5000000000000000000;
}


#p5-canvas {
    position: relative;
    top: 0;
    left: 0;
    z-index:  10000000000; /* Ajustar según sea necesario */
    cursor: pointer;
   margin-left: 0px;




}

#tree-sketch-container {
    display: flex;
    width: 800px; /* Ancho del canvas */
    height: 350px; /* Altura del canvas */
    position: relative;
    top: 0;
    left: 0;
    font-size: 2px;
    margin-left: 280px;
    z-index: 1000;
    padding-bottom: 500px;
      background: transparent ;

}


#color-bar-sketch-container{
   display: flex;
   justify-content: center; /* Centra los elementos horizontalmente dentro del contenedor */
    align-items: center;
    z-index: 100;
    margin-left:auto;
    margin-right: auto;
    margin: auto;
    margin-top: -250px;
    width: 200px; /* Ancho fijo del contenedor */
    height: 200px;
    position: relative; /* Habilita el posicionamiento relativo */

      background: transparent ;

}


#ascii-art-container{
  position: absolute;
  
   
     margin-top: 440px;
  left: 10px;
  width: 100%; 
  height: 50%;
z-index: 10000000000000000000000;
  background: transparent ;

}



#ascii-sol {
    font-size: 2.5px;
    cursor: pointer;
    position: absolute; /* Posicionamiento absoluto dentro de su contenedor */
    top: 130;             /* Alinea la parte superior del elemento con la parte superior del contenedor */
    right: 0;           /* Alinea el lado derecho del elemento con el lado derecho del contenedor */
    margin-right:320px; /* Agrega un pequeño margen derecho, si es necesario */
      background: transparent ;

    z-index: 2000;      /* Asegura que el elemento sea visible sobre otros posibles elementos */
}

#ascii-luna {
    font-size: 3.5px;
    z-index: 1000; 
    cursor: pointer;
    position: absolute; /* Posicionamiento absoluto dentro de su contenedor */
    top: 130;             /* Alinea la parte superior del elemento con la parte superior del contenedor */
    left: 0;
    margin-left:280px;  
    z-index: 2000;
  background: transparent ;


}

#rain-sketch-container {
    position: absolute;
    top: 0;
    left: 0;
    width:130%;
    height: 100%;
    z-index: 1000;          /* 👈 por debajo del canvas de letras (3000) */
    pointer-events: none;
    background: transparent;
}



       /* Reglas de media query para dispositivos con ancho máximo de 600px */
@media (max-width: 600px) {
    body {
  background: transparent ;

        overflow: hidden;
        height: 100%;
    }

    #p5-canvas {
            width: 100%;  /* Ocupa el ancho completo de la pantalla para evitar el desbordamiento horizontal */
            height: auto; /* Altura automática basada en el aspecto del canvas */
            position: absolute;
            top: -200px;    /* Ajusta esta propiedad para subir o bajar el canvas */
            left: 0;      /* Alinea al centro horizontalmente */
            z-index: 5;   /* Asegura que esté debajo del ascii-cat si es necesario */
              background: transparent ;

        }

        #ascii-cat {
            position: absolute; /* Posicionamiento absoluto para mejor control */
            left: 0%;
            right: 0;     /* Alinea al centro horizontalmente */
            width: 100%; /* Ocupa el ancho completo de la pantalla */
            font-size: 3px; /* Ajusta el tamaño de la fuente si es necesario */
            z-index: 100;
            margin:10px;
            margin-top: 70px;
        }


        #ascii-cat2 {
            position: absolute; /* Posicionamiento absoluto para mejor control */
            left: 0%;
            right: 0;     /* Alinea al centro horizontalmente */
            width: 100%; /* Ocupa el ancho completo de la pantalla */
            font-size: 3px; /* Ajusta el tamaño de la fuente si es necesario */
            z-index: 100;
            margin:10px;
            margin-top: 70px;
        }
     

    #ascii-art  {
        display: flex;
        font-size: 3px; /* Ajusta el tamaño de la fuente para visibilidad en pantallas pequeñas */
        margin: 0 60px; /* Agrega márgenes laterales para no tocar los bordes de la pantalla */
        margin-top: -140px;
        
    }
  

    #ascii-sol{
        display: flex;
        font-size: 2.3px; /* Ajusta el tamaño de la fuente para visibilidad en pantallas pequeñas */
        margin-left: 0;
       z-index: 2000;
       margin: 8px;

    }
    #ascii-luna{
        margin-left: 0;
        margin-right:0;
        font-size: 2.8px;
        margin: 3px;

    }

    #tree-sketch-container  {
        display: flex;
        margin-left: 0px;
        margin-right:0px;
        width: 50%; /* Reduce el ancho para evitar desbordamiento horizontal */
    z-index: -100;
    height: 50vh; 
    }
    
    #color-bar-sketch-container{
display:flex;
margin-left: 0px; /* Ajusta el margen izquierdo para centrar */
        margin-right: 0px; /* Ajusta el margen derecho para centrar */

    }

    #ascii-container {
        display: flex;
        margin-top: 0; /* Elimina el margen superior excesivo en móviles */
        margin-left: 0px; /* Ajusta el margen izquierdo para centrar */
        margin-right: 0px; /* Ajusta el margen derecho para centrar */
        flex-direction:row; /* Alinea los elementos verticalmente */
        z-index:1000;
        
    }

    #rain-sketch-container {
        height: 50vh; /* Asegura que el contenedor de lluvia ocupe todo el alto disponible */
    }

   }
/* Reglas adicionales para orientación horizontal (landscape) */
@media (max-width: 600px) and (orientation: landscape) {
    body {
        flex-direction: flex
        ; /* Organiza los contenedores en fila en lugar de columna */
        height: 100%;
        overflow: hidden;
    }

    #ascii-ArbolG-container {
    position: absolute;
    width: 100%;
    color: rgb(187, 242, 132);
    text-align: center;
    font-size: 10px;
    line-height: 1;
}


    #tree-sketch-container, #color-bar-sketch-container {
        width: 48%; /* Asigna un ancho menor para cada contenedor */
        height: 40%; /* Ajusta la altura automáticamente */
        margin-top: 5px; /* Ajusta el margen superior */
        margin-bottom: 5px; /* Ajusta el margen inferior */
    }
 
    #p5-canvas{
        width: 48%; /* Asigna un ancho menor para cada contenedor */
        height: 40%; /* Ajusta la altura automáticamente */
        margin-top: -500px; /* Ajusta el margen superior */
        margin-bottom: 5px;/* Ajusta este valor según sea necesario para subir el canvas */
        }



        footer, .ultimo-elemento {
    margin-top: -500px;
    margin-bottom: -100;
    font-size: 10px;
    justify-content: center;
    text-align: center;
    color: rgb(142, 142, 248);
        }
 
    }


    @media (max-width: 768px) {
    #ascii-ArbolG-container {
        font-size: 8px; /* Reduce el tamaño de la fuente para tabletas */
    }
}

/* Estilos para teléfonos móviles: pantallas con un ancho máximo de 480px */
@media (max-width: 480px) {
    #ascii-ArbolG-container {
        font-size: 6px; /* Reduce aún más el tamaño de la fuente para móviles */
    }
}

/* Estilos para pantallas muy pequeñas: pantallas con un ancho máximo de 320px */
@media (max-width: 320px) {
    #ascii-ArbolG-container {
        font-size: 5px; /* Tamaño de fuente muy pequeño para pantallas muy pequeñas */
    }
}

#ascii-ArbolG-container {
    position: absolute;
    left: 50%; /* Centra horizontalmente respecto al 50% del ancho del contenedor padre */
    transform: translate(-50%, -50%); /* Ajusta el desplazamiento para que el centro del elemento sea el punto de referencia */
    z-index: 1500; /* Asegúrate de que esté sobre otros elementos si necesario */
    text-align: center;
    font-size: 4px; /* Ajusta según necesidad para diferentes tamaños de pantalla con media queries si es necesario */
    width: auto; /* Ancho auto para ajustar al contenido */
    height: auto; /* Altura auto para ajustar al contenido */
    top: 980px;
      background: transparent ;

}


footer {
    width: 100%;
    padding: 5px 5;
    text-align: center;
    background-color: #000000;
    color: rgb(209, 209, 209);
    margin-left: -50px;
    font-size: 16px; /* Tamaño de letra inicial */
    box-shadow: 0 -2px 5px rgba(255, 255, 255, 0.428); /* Sombra opcional para dar efecto elevado */
}



 

    @media (max-width: 768px) {
        section {
            display: flex;
            margin: 60px; /* Menos margen en dispositivos más pequeños */
            margin-top: -600px;
            justify-content: center;
            left: 0;
            right: 0;


        }

        #ascii-ArbolG-container {
    position: absolute;
    left: 50%; /* Centra horizontalmente respecto al 50% del ancho del contenedor padre */
    transform: translate(-50%, -50%); /* Ajusta el desplazamiento para que el centro del elemento sea el punto de referencia */
    z-index: 1500; /* Asegúrate de que esté sobre otros elementos si necesario */
    text-align: center;
    font-size: 3px; /* Ajusta según necesidad para diferentes tamaños de pantalla con media queries si es necesario */
    width: auto; /* Ancho auto para ajustar al contenido */
    height: auto; /* Altura auto para ajustar al contenido */
    top: -280px;
}


    }

  



.body-content {
    margin-bottom: 0;
}

/* Optimiza los estilos de media query para reducir espacio en dispositivos más pequeños */
@media (max-width: 768px) {
    body {
        padding-bottom: 10px; /* Reduce este valor si aún ves espacio extra */
    overflow: hidden;
    }

    footer, .ultimo-elemento {
    margin-top: 100px;
    margin-bottom: -100;
    font-size: 10px;
    justify-content: center;
    text-align: center;
    color: rgb(142, 142, 248);
        }
}

#container, .container {
    margin-bottom: 0;
    padding-bottom: 0;
}
* {
    margin: 0;
    padding: 0;
}
*,
*:before,
*:after {
    box-sizing: border-box;
}

#ascii-art {
    position: absolute;
    top: 300px;
    left: 600px;
    white-space: pre;
    font-family: monospace;
    z-index: 20000;
    
}

/* Agregar al CSS */
.glow {
    animation: glow 0.5s infinite; /* Más rápido */
}

@keyframes glow {
    0% { 
        text-shadow: 0 0 5px rgba(255, 255, 255, 0.5), 
                     0 0 10px rgba(255, 255, 255, 0.3),
                     0 0 15px rgba(255, 0, 0, 0.5); /* Rojo agregado */
    }
    50% { 
        text-shadow: 0 0 20px rgba(255, 255, 255, 1), 
                     0 0 30px rgba(255, 255, 255, 0.8),
                     0 0 40px rgba(255, 0, 0, 0.8); /* Rojo más intenso */
    }
    100% { 
        text-shadow: 0 0 5px rgba(255, 255, 255, 0.5), 
                     0 0 10px rgba(255, 255, 255, 0.3),
                     0 0 15px rgba(255, 0, 0, 0.5);
    }
}

/* Efecto de glitch para el personaje */
#ascii-art.glitch {
animation: textGlitch 0.04s infinite;}

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


.glax span {
    font-family: "Courier New", monospace;
    font-size: 13px;      /* tamaño de “píxel” */
    line-height: 2px;    /* que no queden huecos verticales */
    color: #2cac6c;      /* gris general */
    white-space: pre;    /* respeta espacios y saltos */
  }
   /* Asegura que los span también usen el mismo tamaño */
  .glax span {
    font-size: 6px;
  }
  
  #img{

z-index: 1000000;
  }

  /* ================== PORTAL GLITCH ================== */
/* ================= PORTAL GLITCH ================= */

#portal-glitch-overlay {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999999;
    opacity: 0;
    transform: scaleY(0.2);
    transform-origin: center center;
    transition: opacity 0.12s ease-out, transform 0.12s ease-out;
}


/* Cuando está activo: se abre la grieta */
#portal-glitch-overlay.active {
    opacity: 1;
    transform: scaleY(1);
}

/* Dos mitades que distorsionan cada lado de la pantalla */
.portal-slice {
    position: absolute;
    top: -5vh;
    bottom: -5vh;
    width: 52vw;
    background: rgba(0, 0, 0, 0);
    backdrop-filter: contrast(220%) saturate(2.2) hue-rotate(70deg) blur(3px);
}

/* Lado izquierdo: se desplaza y deforma hacia la izquierda */
.left-slice {
    left: -4vw;
    animation: portalShiftLeft 120ms steps(2, end) infinite;
}

/* Lado derecho: se desplaza y deforma hacia la derecha */
.right-slice {
    right: -4vw;
    animation: portalShiftRight 120ms steps(2, end) infinite;
}

/* Núcleo del portal: crack plateado/tornasolado */
.portal-core {
    position: absolute;
    top: -10vh;
    bottom: -10vh;
    left: 50%;
    width: 12vw;
    transform: translateX(-50%);
    background:
        repeating-linear-gradient(
            to bottom,
            rgba(255, 255, 255, 0.95) 0px,
            rgba(195, 230, 255, 0.8) 2px,
            rgba(150, 200, 255, 0.5) 4px,
            rgba(90, 140, 220, 0.3) 6px,
            rgba(30, 40, 80, 0.0) 8px
        );
    opacity: 0.98;
    mix-blend-mode: screen;
    box-shadow:
        0 0 35px rgba(190, 240, 255, 1),
        0 0 90px rgba(120, 210, 255, 0.9),
        0 0 210px rgba(120, 210, 255, 0.7);
    clip-path: polygon(
        50% 0%,
        85% 8%,
        100% 20%,
        80% 40%,
        100% 60%,
        85% 75%,
        60% 100%,
        40% 100%,
        15% 75%,
        0% 60%,
        20% 40%,
        0% 20%,
        15% 8%
    );
    animation: portalCoreFlicker 90ms steps(2, end) infinite;
}

/* El cuerpo completo tiembla / se distorsiona mientras el portal está activo */
.body-glitch {
    animation: bodyGlitchShake 80ms steps(2, end) 6;
}

/* Pequeño temblor + cambio de color general */
@keyframes bodyGlitchShake {
    0%   { transform: translate(0, 0); filter: none; }
    20%  { transform: translate(-4px, 0); filter: hue-rotate(20deg) contrast(1.4); }
    40%  { transform: translate(4px, -2px); filter: hue-rotate(-25deg) contrast(1.6) saturate(1.7); }
    60%  { transform: translate(-3px, 2px); filter: hue-rotate(40deg) contrast(1.5); }
    80%  { transform: translate(2px, -1px); filter: hue-rotate(-40deg) contrast(1.3); }
    100% { transform: translate(0, 0); filter: none; }
}

/* Desplazamiento brusco del lado izquierdo */
@keyframes portalShiftLeft {
    0%   { transform: translateX(0) skewX(0deg); }
    50%  { transform: translateX(-10px) skewX(-4deg); }
    100% { transform: translateX(3px) skewX(2deg); }
}

/* Desplazamiento brusco del lado derecho */
@keyframes portalShiftRight {
    0%   { transform: translateX(0) skewX(0deg); }
    50%  { transform: translateX(10px) skewX(4deg); }
    100% { transform: translateX(-3px) skewX(-2deg); }
}

/* Flicker tornasolado del núcleo */
@keyframes portalCoreFlicker {
    0% {
        opacity: 1;
        filter: hue-rotate(0deg);
    }
    50% {
        opacity: 0.7;
        filter: hue-rotate(110deg) saturate(1.8);
    }
    100% {
        opacity: 1;
        filter: hue-rotate(220deg) saturate(2.2);
    }
}

#ascii-art .zapatos {
  color: red !important;
  text-shadow: 0 0 4px red;
}


/* Que todo el contenido visual se adapte al ancho de la ventana */
canvas,
#p5-canvas,
#tree-sketch-container,
#color-bar-sketch-container,
#ascii-container,
#rain-sketch-container {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    margin-left: auto;
    margin-right: auto;
      background: transparent ;
   z-index: 1000;
}

/* Evitar que cosas posicionadas con márgenes enormes se salgan demasiado */
#tree-sketch-container {
    height: auto;
    max-width: 900px;
}

#color-bar-sketch-container {
    max-width: 260px;
    width: 60vw;
    height: auto;
}

/* ASCII principal más flexible */
#ascii-art {
    max-width: 100%;
    white-space: pre;
    font-size: min(3px, 1vw);  /* Se ajusta un poco al ancho de pantalla */
}
#wooden-box {
    position: absolute;
    left: 150px;
    top: 500px;
    font-family: monospace;
    font-size: 4px;
    line-height: 5px;
    white-space: pre;
    display: none;
    z-index: 10000;
    color: #ff9c2b;
    background-color: transparent !important; /* SIN FONDO */
    padding: 0 !important; /* SIN PADDING */
    border: none !important; /* SIN BORDE */
    border-radius: 0 !important; /* SIN BORDES REDONDEADOS */
    box-shadow: none !important; /* SIN SOMBRA */
    min-width: auto !important;
    min-height: auto !important;
}

#ascii-art.trapped {
    font-size: 3px !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}




/* Efecto de glitch para el personaje */
#ascii-art.glitch {
    animation: textGlitch 0.1s infinite;
}

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


/* CONTENEDOR PARA LA IMAGEN CON AURA */
.portal-container {
    position: absolute;
    z-index: 1300000;
    right: 40%;
    margin-top: -360px;
    width: 15%;
    height: auto;
    filter: url(#aura-glow); /* Filtro SVG para el aura */
}

#portal-img {
    width: 100%;
    height: auto;
    display: block;
    
    /* AURA BASE - se aplica via SVG filter */
    filter: drop-shadow(0 0 10px rgba(255, 255, 0, 0.8))
            drop-shadow(0 0 20px rgba(255, 200, 0, 0.6))
            drop-shadow(0 0 30px rgba(255, 100, 0, 0.4))
            drop-shadow(0 0 40px rgba(255, 0, 0, 0.3));
    
    /* ANIMACIÓN DE PULSO */
    animation: silhouettePulse 3s infinite alternate;
}

@keyframes silhouettePulse {
    0% {
        filter: drop-shadow(0 0 8px rgba(255, 255, 0, 0.7))
                drop-shadow(0 0 15px rgba(255, 200, 0, 0.5))
                drop-shadow(0 0 25px rgba(255, 100, 0, 0.3))
                drop-shadow(0 0 35px rgba(255, 0, 0, 0.2));
    }
    100% {
        filter: drop-shadow(0 0 15px rgba(255, 255, 0, 0.9))
                drop-shadow(0 0 30px rgba(255, 200, 0, 0.7))
                drop-shadow(0 0 45px rgba(255, 100, 0, 0.5))
                drop-shadow(0 0 60px rgba(255, 0, 0, 0.4));
    }
}


/* GLITCH RÁPIDO DEL PERSONAJE PRINCIPAL */
#ascii-art.glitch {
    animation: glitchPulse 0.05s infinite; /* MUY rápido */
}

@keyframes glitchPulse {
    0% {
        opacity: 0.8;
        filter: hue-rotate(0deg) contrast(120%) brightness(1.2);
        transform: translateX(0px);
    }
    20% {
        opacity: 1;
        filter: hue-rotate(30deg) contrast(150%) brightness(1.4);
        transform: translateX(2px);
    }
    40% {
        opacity: 0.6;
        filter: hue-rotate(-20deg) contrast(130%) brightness(1.1);
        transform: translateX(-3px);
    }
    60% {
        opacity: 0.9;
        filter: hue-rotate(40deg) contrast(160%) brightness(1.3);
        transform: translateX(1px);
    }
    80% {
        opacity: 0.7;
        filter: hue-rotate(-30deg) contrast(140%) brightness(1.0);
        transform: translateX(-2px);
    }
    100% {
        opacity: 0.8;
        filter: hue-rotate(0deg) contrast(120%) brightness(1.2);
        transform: translateX(0px);
    }
}


/* Asegurar que las nubes estén por encima */
#tree-sketch-container {
    z-index: 2 !important;
    position: relative;
  
}

#ascii-mountain {
    font-size: 6px;
  cursor: pointer;
  position: relative;
  z-index: 3000;
}

#ascii-mountain:hover {
  filter: brightness(1.2);

}#ascii-cat {
    position: relative;
    z-index: 1000000000000 !important;
}

/* VERSIÓN MINIMALISTA */
#start-alert {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgb(0, 0, 0);
    z-index: 100000;
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: 'Courier New', Courier, monospace;
}

.start-minimal {
    background: #001affda;
    border: 1px solid #000000;
    padding: 20px;
    text-align: center;
    color: #d9ff00;
    text-shadow: 0 0 10px rgb(255, 255, 255);
}

.start-minimal h2 {
    margin-bottom: 20px;
    font-size: 11px;
}

.start-minimal p {
    margin: 7px 0;
    color: #40ff00;
        text-shadow: 10 10 10px rgb(15, 255, 227);
         font-size: 12px;

}



.help-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    z-index: 100000;
    display: none;
    justify-content: center;
    align-items: center;
    font-family: 'Courier New', Courier, monospace;
    /* ESTA LÍNEA ES IMPORTANTE: */
    pointer-events: all;
}

.help-content {
    background: #0a0a0a;
    border: 2px solid #2cac6c;
    border-radius: 10px;
    padding: 30px;
    max-width: 500px;
    color: #e6e6e6;
    text-align: center;
    box-shadow: 0 0 50px rgba(44, 172, 108, 0.5);
    /* EL CONTENIDO SÍ DEBE SER CLICKEABLE: */
    pointer-events: auto;
}


.start-minimal {
    background: #001aff;
    border: 1px solid #000000;
    padding: 20px;
    text-align: center;
    color: #d9ff00;
    text-shadow: 0 0 6px rgba(255, 255, 255, 0.8);
    font-family: 'Courier New', Courier, monospace;

    position: relative;
    overflow: hidden; /* recorta la estela */
}

.start-minimal::before {
    content: "";
    position: absolute;
    top: -30%;
    left: -50%;
    width: 200%;
    height: 160%;

    background: linear-gradient(
        115deg,
        rgba(0, 0, 0, 0) 0%,
        rgba(255, 255, 255, 0.0) 35%,
        rgba(255, 255, 255, 0.605) 50%,
        rgba(255, 255, 255, 0.0) 65%,
        rgba(0, 0, 0, 0) 100%
    );

    filter: blur(6px);
    opacity: 0.7;
    mix-blend-mode: screen;
    pointer-events: none;

    /* posición inicial */
    transform: translate3d(-60%, 0, 0) rotate(18deg);
    /* movimiento constante, siempre hacia la derecha */
    animation: glow-sweep 4.5s linear infinite;
}

/* SIEMPRE HACIA ADELANTE */
@keyframes glow-sweep {
    0% {
        transform: translate3d(-60%, 0, 0) rotate(18deg);
        opacity: 0.4;
    }
    100% {
        transform: translate3d(80%, 0, 0) rotate(18deg);
        opacity: 0.8;
    }
}

/* Borde suave tipo vidrio */
.start-minimal::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 6px;
    border: 1px solid rgba(180, 255, 220, 0.25);
    box-shadow:
        0 0 18px rgba(0, 0, 0, 0.7),
        0 0 25px rgba(120, 255, 210, 0.35);
    pointer-events: none;
}

/* Movimiento suave ida y vuelta */

/* Tus textos se pueden quedar igual o suavizar un poco el glow */
.start-minimal h2 {
    margin-bottom: 20px;
    font-size: 11px;
}

.start-minimal p {
    margin: 7px 0;
    color: #40ff00;
    text-shadow: 0 0 8px rgba(15, 255, 227, 0.9);
    font-size: 12px;
}


/* ===================== REVELADO VERTICAL INICIAL ===================== */

#reveal-mask {
    position: fixed;
    inset: 0;
    background: #000000;
    z-index: 999999999;
    pointer-events: none;
    display: none;          /* ⬅️ IMPORTANTE: oculta por defecto */
    animation: none;        /* sin animación por defecto */
}

/* cuando se active desde JS */
#reveal-mask.is-revealing {
    animation: revealDown 10.0s ease-out forwards;
}


/* Animación: la capa negra se desliza hacia abajo y deja ver la página */
@keyframes revealDown {
    0% {
        transform: translateY(0);
    }
    100% {
        transform: translateY(100%);
    }
}



/* OVERLAY PARA LA ALERTA DE TRAMPA */
#trap-alert {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.977);
    display: none;               /* se enciende con JS: display:flex */
    align-items: center;
    justify-content: center;
    z-index: 99999;
}

/* estados de los 3 sonidos dentro del alert */
.status-pending {
    color: #ff5555;
    font-weight: bold;
}

.status-completed {
    color: #40ff00;
    font-weight: bold;
}

#synth-panel {
    display:block;
    top: 28%;
    position: fixed;
    right: 20px;
    bottom: 20px;
    background: rgba(0, 0, 0, 0);
    border: 0px solid #fff8f8;
    padding: 8px 10px;
    font-family: monospace;
    color: #eee;
    font-size: 11px;
    z-index: 500000000;
    backdrop-filter: blur(4px);
    margin-top: 20%;
    margin:1% ;
    
    height: 37%;
}

  

#synth-panel h3 {
    margin: 0 0 5px;
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

#synth-panel .row {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 4px;
}

#synth-panel label {
    min-width: 55px;
}

#synth-panel input[type="range"] {
    flex: 1;
}

#synth-panel .env {
    flex-wrap: wrap;
    gap: 2px 4px;
}

#synth-panel .env span {
    font-size: 10px;
    text-transform: uppercase;
    color: #aaa;
    margin-right: 4px;
}

#synth-panel .env label {
    min-width: auto;
    font-size: 10px;
}

#synth-panel .env input[type="range"] {
    width: 60px;
}


/* Botón de toggle arriba a la derecha */
#toggle-synth-panel {
    position: fixed;
    top: 6px;
    right: 10px;
    z-index: 500000001;
    background: rgba(0, 0, 0, 0.8);
    color: #15ff00;
    border: 1px solid #666;
    padding: 4px 8px;
    font-family: monospace;
    font-size: 11px;
    cursor: pointer;
}

#toggle-synth-panel:hover {
    background: rgba(40, 40, 40, 0.95);
}

/* El título del panel se usa como “handle” para arrastrar */
#synth-panel h3 {
    cursor: move; /* añade solo esta línea a tu regla actual */
}

/* Quitar sombra / borde azul al enfocar links, botones, inputs, sliders, etc. */
a:focus,
button:focus,
input:focus,
textarea:focus,
select:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Quitar también el highlight azul en Chrome/Android al tocar */
a,
button,
input,
textarea,
select {
    -webkit-tap-highlight-color: transparent;
}

/* Opcional: evitar selección azul de texto al hacer drag */
::selection {
    background: transparent;
    color: inherit;
}

/* Prefijos extra por si acaso */
::-moz-focus-inner {
    border: 0;
}
/* BASE: quitamos estilo nativo y fondo raro */
input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    background: transparent;
    margin: 6px 0;
    cursor: pointer;
}

/* ===== WEBKIT (Chrome, Edge, Safari) ===== */

input[type="range"]::-webkit-slider-runnable-track {
    height: 6px;
    background: #303030;
    border-radius: 999px;
    border: 1px solid #555;
}

input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    margin-top: -6px;              /* centra el thumb en el track */
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgb(185, 255, 44); /* verde neón */
    border: 2px solid #000;
    box-shadow: 0 0 10px rgba(185, 255, 44, 0.7);
}

/* Hover / activo para mejor feedback */
input[type="range"]:hover::-webkit-slider-thumb {
    box-shadow: 0 0 14px rgba(185, 255, 44, 1);
}

/* ===== FIREFOX ===== */

input[type="range"]::-moz-range-track {
    height: 6px;
    background: #303030;
    border-radius: 999px;
    border: 1px solid #555;
}

input[type="range"]::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgb(185, 255, 44);
    border: 2px solid #000;
    box-shadow: 0 0 10px rgba(185, 255, 44, 0.7);
}

/* ===== EDGE/IE ANTIGUO (por si acaso) ===== */

input[type="range"]::-ms-track {
    height: 6px;
    background: transparent;
    border-color: transparent;
    color: transparent;
}

input[type="range"]::-ms-fill-lower,
input[type="range"]::-ms-fill-upper {
    background: #303030;
    border-radius: 999px;
    border: 1px solid #555;
}

input[type="range"]::-ms-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgb(185, 255, 44);
    border: 2px solid #000;
    box-shadow: 0 0 10px rgba(185, 255, 44, 0.7);
}

/* Por si algún navegador insiste con outline */
input[type="range"]:focus {
    outline: none !important;
    box-shadow: none !important;
}


#sun-gain::-webkit-slider-thumb,
#sun-pitch::-webkit-slider-thumb {
    background: #ffcc33;
    box-shadow: 0 0 10px rgba(255, 204, 51, 0.8);
}

#moon-gain::-webkit-slider-thumb,
#moon-pitch::-webkit-slider-thumb {
    background: #66ccff;
    box-shadow: 0 0 10px rgba(102, 204, 255, 0.8);
}


#ascii-art .zapatos {
    color: red;
}

#ascii-title {
    color: #000000;
    font-family: monospace;
    white-space: pre;
    font-size: 4px;     
    line-height: 1;

    
    text-shadow:
        0 0 2px #f4f4f4,
        0 0 4px #bdbdbd,
        0 0 8px #a6ff00;
}



 #helpBtn {
      position: fixed;
      top: 16px;
      left: 16px;
      width: 40px;
      height: 40px;
      background: rgba(0, 0, 0, 0.127);
      border: 2px solid #363636;
      border-radius: 50%;
      box-shadow: 0 0 8px rgba(172, 172, 171, 0.8), 0 0 16px rgba(211, 255, 78, 0.6);
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 10001;
      transition: box-shadow 0.3s;
    }
    #helpBtn:hover {
      box-shadow: 0 0 12px rgb(190, 255, 78), 0 0 24px rgba(165, 175, 185, 0.8);
    }

    #helpBtn svg {
      width: 24px;
      height: 24px;
      stroke: #e5fe81;
      fill: none;
    }
    /* Overlay y Modal de ayuda */
    #helpOverlay {
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.7);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 10000;
    }
    #helpModal {
      width: 640px;
      max-height: 100vh;
      overflow-y: auto;
      padding: 1rem;
      background: #0000009d;
      color: #fff;
      border-radius: 8px;
      box-shadow: 0 0 20px rgba(0,0,0,0.8);
      font-size: 0.7rem;
      position: relative;
      text-align: center;
    }
    #helpModal h3 {
      margin-top: 0;
      margin-bottom: 0.5rem;
      color: #aa00ff;
    }
    #helpModal p {
      margin: 0.5rem 0;
    }
    #helpModal a {
      display: block;
      margin: 0.3rem 0;
      color: #ffd6d6;
      text-decoration: none;
      font-weight: bold;
    }

    #ascii-art.character-aura {
    filter: drop-shadow(0 0 15px #f2fe99) contrast(1.4) brightness(1.2);
    transition: filter 0.15s ease;
}

/* AURA INTENSA DEL PERSONAJE DESPUÉS DE ATRAVESAR EL PORTAL */
#ascii-art.character-aura {
    /* brillo fuerte alrededor del texto */
    text-shadow:
        0 0 4px  #ff1414,
        0 0 8px  #fe8d0b,
        0 0 14px #ff7124,
        0 0 22px #ffc400,
        0 0 32px #0644ff;

    /* un poco de trazo para que se vea la silueta */
    -webkit-text-stroke: 0.6px rgba(255, 255, 255, 0.8);

    /* NO dependemos de filter, para que el glitch no la mate */
}
