:root {
    --cyanOscuro: #0890b7;
    --cyanOscuroB: #0891b790;
    --cyanOscuro2: #0891b790;
    --cyanOscuro3: #155e75;
    --cyanOscuro4: #155f7590;
    --cyanOscuro4B: #155f75ae;
    --scrollbarBG: #171d26;
    --sombra: rgba(0, 0, 0, 0.5);
    --sombra2: rgba(0, 0, 0, 0.6);
    --cerrarModal: #f62828;
    --sombraThumb: inset 1px 1px 5px var(--scrollbarBG), inset -1px -1px 5px var(--scrollbarBG);
    --javascriptColor: #f7df1e;
    --pythonColor: #049e3d;
    --phpColor: #777bb4;
    --reactColor: #00ffff;
    --mongodbColor: #7CFC00;
    --mysqlColor: #ffa500;
}
html {
    scroll-behavior: smooth;
}
body {
    overflow-inline: hidden;
}
body::-webkit-scrollbar, #modal::-webkit-scrollbar, #modal2::-webkit-scrollbar{
    width: 8px;
    background-color: var(--scrollbarBG);
    border-radius: 50px;
}
body::-webkit-scrollbar-thumb, #modal::-webkit-scrollbar-thumb, #modal2::-webkit-scrollbar-thumb{
    background-color: var(--cyanOscuro);
    border-radius: 50px;
    box-shadow: var(--sombraThumb);
}
.navA {
    background-color: var(--scrollbarBG);
    transition: background-color 0.4s ease, backdrop-filter 0.1s ease;
    filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 0.4));
}
.navA .nav-link {
    color: #ffffff;
    transition: color 0.4s ease;
    font-weight: 500;
}
.navB {
    background-color: rgba(6, 6, 6, 0.4);
    backdrop-filter: blur(10px);
    transition: background-color 0.6s ease, backdrop-filter 0.2s ease, filter 0.2s ease;
}
.navB .nav-link {
    color: #ffffff;
    transition: color 0.4s ease;
    font-weight: 500;
    filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.5));
}
.nav-link:hover {
    filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.9));
    transition: all 0.4s ease;
} 
.especial::selection {
    color: var(--cyanOscuro);
    background: transparent;
}
#contenedor-foto {
    background-image: linear-gradient(to bottom left, var(--cyanOscuro4B), #0d191fae);
    animation:  movimiento 12s infinite ease-in-out alternate,
                mutacionCircular 4s infinite ease-in-out alternate;
    box-shadow: inset 0 0 5px var(--sombra2),
                inset 0 0 10px var(--sombra2);
    filter: drop-shadow(0 0 7px var(--sombra2));
    background-size: 400% 400%;
    will-change: border-radius, background-position;
}
#dr{
    filter: drop-shadow(0 0 2px var(--sombra2)) ;
}
@keyframes movimiento {
    0% {
        background-position: 50% 100%;
    }
    33% {
        background-position: 0% 100%;
    }
    66% {
        background-position: 100% 0%;
    }
    100% {
        background-position: 100% 50%;
    }
}
@keyframes mutacionCircular {
    0%, 100% { border-radius: 50%; }
    25% { border-radius: 48% 52% 47% 53% / 53% 47% 52% 48%; }
    50% { border-radius: 52% 48% 53% 47% / 48% 52% 47% 53%; }
    75% { border-radius: 47% 53% 51% 49% / 51% 49% 53% 47%; }
}
#cursorp {
    z-index: 100;
    background-color: var(--cyanOscuro);
    width: 15px;
    height: 15px;
    border-radius: 50%;
    pointer-events: none;
    position: fixed;
    box-shadow: -5 0 5px var(--sombra),
                10 -5px 10px var(--sombra),
                -10 15px 15px var(--sombra);
    animation: cursorAnim1 3s infinite;
    display: none;
}
#cursorp:after {
    content: '';
    background-color: #0890b262;
    position: absolute;
    transform: translate(-25%, 30%);
    width: 18px;
    height: 18px;
    border-radius: 50%;
    pointer-events: none;
    animation: cursorAnim2 5s infinite;
}
#cursorp:before {
    content: '';
    background-color: #0890b262;
    position: absolute;
    transform: translate(10%, 20%);
    width: 18px;
    height: 18px;
    border-radius: 50%;
    pointer-events: none;
    animation: cursorAnim3 3s infinite alternate;
}
@keyframes cursorAnim1 {
    0%, 100% {
        transform: scale(1);
        background-color: var(--cyanOscuro);
    }50% {
        transform: scale(1.35);
        background-color: #145e71ef;
    }
}
@keyframes cursorAnim2 {
    0% {
        transform: rotate(0deg) translate(10px) rotate(0deg) scale(.70);
        background-color: #75840588;
    }
    50% {
        transform: scale(1.5) rotate(180deg) translate(12px) rotate(-180deg) scale(1);
    }100% {
        transform: rotate(360deg) translate(10px) rotate(-360deg) scale(.70);
        background-color: #75840562;
    }
}
@keyframes cursorAnim3 {
    0% {
        transform: rotate(0deg) translate(-10px) rotate(0deg) scale(1.2);
        background-color: #b24408af;
    }
    100% {
        transform: rotate(360deg) translate(-10px) rotate(-360deg) scale(1);
        background-color: #b24408af;
    }
}

#about::-webkit-scrollbar {
    width: 4px;
    background-color: var(--scrollbarBG);
    border-radius: 50px;
}
#about::-webkit-scrollbar-thumb {
    background-color: var(--cyanOscuro);
    border-radius: 50px;
    box-shadow: var(--sombraThumb);
}
.container {
    position: relative;
    z-index: 10;
}
.project-card {
    background-color: rgba(82, 82, 82, 0.37);
    backdrop-filter: blur(5px);
}
.icon-snippet {
    position: absolute;
    width: 45px;
    /* height: 35px; */
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
}
.icon-snippet.visible {
    opacity: 1;
}
.code-snippet {
    position: absolute;
    font-family: 'Courier New', Courier, monospace;
    font-size: 15px;
    opacity: 0;
    transition: opacity 0.5s ease-in-out;
    pointer-events: none;
    text-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
}
.code-snippet.visible {
    opacity: 1;
}
.code-snippet.javascript {
    color: var(--javascriptColor);
}
.code-snippet.python {
    color: var(--pythonColor);
}
.code-snippet.php {
    color: var(--phpColor);
}
.code-snippet.react {
    color: var(--reactColor);
}
.code-snippet.mongodb {
    color: var(--mongodbColor);
}
.code-snippet.mysql {
    color: var(--mysqlColor);
}
.logo{
    transition: all 0.3s;
}
.logo:hover {
    transform: scale(1.25);
    filter: drop-shadow(-5px -5px 10px var(--cyanOscuro)) 
            drop-shadow(5px 5px 20px var(--cyanOscuro3));
}

@keyframes rebote1 {
    0%, 100% {
        transform: translateY(0);
    }50% {
        transform: translateY(-7px);
    }
}
@keyframes rebote2 {
    0%, 100% {
        transform: translateY(0);
    }50% {
        transform: translateY(7px);
    }
}
#scrollArriba {
    z-index: 1000;
    opacity: 0;
    background-color: var(--cyanOscuro);
    visibility: hidden;
    transition: all 0.3s ease-in-out;
    animation: rebote1 1s infinite forwards paused;
}
#scrollArriba.visible {
    opacity: 1;
    visibility: visible;
}
#scrollArriba:hover {
    background-color: var(--cyanOscuro3);
    animation-play-state: running;
}
#scrollAbajo {
    z-index: 1000;
    opacity: 0;
    left: calc(50% - 10px);
    background-color: var(--cyanOscuro2);
    transition: all 0.3s ease-in-out;
    animation: rebote2 1s infinite forwards;
    visibility: hidden;
}
#scrollAbajo.visible {
    opacity: 1;
    visibility: visible;
}
#scrollAbajo:hover {
    background-color: var(--cyanOscuro4);
    animation-play-state: paused;
}
@media (max-width: 376px){ 
    #scrollAbajo {
        opacity: 0;
    }
} 
@media (max-height: 637px) { 
    #scrollAbajo {
        opacity: 0;
    }
}
@media (width < 768px) {
    #scrollAbajo {
        left: calc(50% - 10px);
    }
}
@media (width >= 768px) {
    #scrollAbajo {
        left: calc(50% - 14px);
    }
}

/*  Estilos Galeria - Cambios de la V4 */
.row > .column {
    padding: 0 8px;
}
.row:after {
    content: "";
    display: table;
    clear: both;
}
.column {
    float: left;
    width: 25%;
}
.modal {
    display: none;
    position: fixed;
    z-index: 1;
    padding-top: 100px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: black;
}
.modal-content {
    position: relative;
    margin: auto;
    padding: 0;
    width: 90%;
    max-width: 1200px;
}
#cerrarModal, #cerrarModal2 {
    filter: drop-shadow(1px 1px 2px var(--sombra)) 
            drop-shadow(-1px -1px 2px var(--sombra));
    transition: 0.6s ease;
}
#cerrarModal:hover, #cerrarModal:focus, #cerrarModal2:hover, #cerrarModal2:focus {
    background-color: var(--cerrarModal);
    cursor: pointer;
    border-radius: 3px;
}
.imgCertificadoContainer, .imgProyectoContainer {
    display: none;
}
.cursor {
    cursor: pointer;
}
.prev, .sig {
    cursor: pointer;
    position: absolute;
    width: auto;
    padding: 10px; 
    color: white;
    font-weight: bold;
    font-size: 20px;
    transition: 0.6s ease;
    border-radius: 3px;
    user-select: none;
    background-color: #012c1e28;
    filter: drop-shadow(1px 1px 2px var(--sombra)) 
            drop-shadow(-1px -1px 2px var(--sombra));
    -webkit-user-select: none;
}
.prev:hover, .sig:hover {
    background-color: var(--cyanOscuro);
}
.numero {
    color: #f2f2f2;
    font-size: 12px;
    padding: 8px 12px;
    border-radius: 3px;
    position: absolute;
    top: 0;
    filter: drop-shadow(1px 1px 2px var(--sombra)) 
            drop-shadow(-1px -1px 2px var(--sombra));
    background-color: #012c1e28;
    transition: 0.6s ease;
}
.numero:hover {
    background-color: var(--cyanOscuro)
}
img {
    margin-bottom: -4px;
}
.descripcion-container {
    text-align: center;
    background-color: black;
    padding: 2px 16px;
}
.active {
    opacity: 1;
}
img.hover-shadow {
    transition: 0.3s;
}
.hover-shadow:hover {
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.resaltar2:hover{
    animation: resaltar2 .65s forwards;
}
.resaltar{
    animation: resaltar .65s;
}
@keyframes resaltar {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
        box-shadow: -5px -5px 15px var(--cyanOscuro), 5px 5px 25px var(--cyanOscuro3);
    }
}
@keyframes resaltar2 {
    0% {
        transform: scale(1);
    }
    100% {
        transform: scale(1.1);
        filter: drop-shadow(-5px -5px 10px var(--cyanOscuro)) 
                drop-shadow(5px 5px 20px var(--cyanOscuro3));
    }
}
canvas {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

#scontainer{
    width: 95%;
}
.sslide {
    display: flex;
    flex-direction: column-reverse;
    justify-content: center;
    align-items: center;
    width: auto;
    height: 600px;
}
.contenedorFoto{
    display: flex;
    justify-content: center;
}
.contenedorFoto img{
    width: auto;
    height: 200px;
}
@media (min-width: 500px){
    .contenedorFoto img{
        height: 250px;
    }
}
@media (min-width: 768px) { 
    #scontainer{
        width: 600px;
    }   
    .sslide {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        height: 290px;
        max-width: 600px;
    }
    .contenedorTexto {
        grid-column: span 3;
    }
    .contenedorFoto{
        grid-column: span 1;
        height: 100%;
        display: flex;
        justify-content: flex-end;
        align-items: flex-end;
    }
    .contenedorFoto img{
        height: 75%;
        border-radius: 0px 0px 15px 0px;
    }
}