* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    font-family: 'Lato', sans-serif;
    background-color: #191825;
    color: #FFA3FD;
    transition: background-color 0.3s, color 0.3s;

    
}
html, body{
    /* Scroll Snapping */
    scroll-snap-type: y mandatory;
    scroll-behavior: smooth;
    overflow-y: scroll;
    height: 100%;
    overscroll-behavior-y: contain;
    overflow-x: hidden; /* Prevent horizontal scrolling */
}
section {
    scroll-snap-align: start;
    height: 100vh;      /* Snap sections to the top when scrolling */
    scroll-padding-top: 80px;
    will-change: scroll-position;      /* Adjust this to match the height of the navbar if needed */
}

/* Indicador de Seção */
.indicadorSecao {
    position: fixed;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 15px;
    z-index: 1001;
}

.indicador {
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background-color: #79018C; /* Cor das bolinhas inativas */
    cursor: pointer;
    transition: background-color 0.3s;
    position: relative;
}

.indicador.active {
    background-color: #FFA3FD;; /* Cor da bolinha ativa */
}

/* Nome da seção */
.indicador::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom:50%;
    left: 250%; /* Adjust depending on where you want the tooltip */
    transform: translateX(-50%);
    background-color: #333;
    color: #c906e7;
    padding: 5px;
    border-radius: 5px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s;
    font-size: 12px;
}

.indicador:hover::after {
    opacity: 1;
}


/* Navbar */
.navbar {
    position: fixed;
    top: 0;
    width: 15%;
    padding: 1rem 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background-color: rgba(0, 0, 0, .2);
    transition: background-color 0.3s;
    z-index: 1000;
}
.tituloNav {
    font-size: 1.5rem;
    font-weight: bold;
    color: #79018C;
    text-decoration: none;
}
.listaNav{
    list-style-type: none;
    margin: 0;
    padding: 0;
}
.toggleNav {
    text-decoration: underline;
    color: #79018C;
    font-size: 1rem;
    transition: color 0.3s;
}

/* ------------------------------------- Hero -------------------------- */

/* Hero */
.imageBg {
    background-image: url("./imagens/dark-minimalist.jpg");
    position: relative;
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 100vh;
    scroll-snap-align: start;
}
.hero {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: left;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #79018C;
    width: 90%;
    max-width: 1200px;
    padding: 0 2rem;
}
.textoHero {
    flex: 1;
    max-width: 600px;
    font-size: 4rem;
}
.imagemHero {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
}
.img-proto {
    width: 60vh;
    animation: mover 2s linear;
    animation-iteration-count: 1;
    animation-fill-mode: both;
    animation-timing-function: linear;
}
/* --------------------------- */



/* ------------------------------------- Sobre -------------------------- */
/* SOBRE */
.sobre {
    background-color: #191825;
    color: #FFA3FD;
    scroll-snap-align: start;
    background-image: url(./imagens/sobrebg.jpg);
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.tituloSobre {
    text-align: center;
    color: #79018C;
    font-size: 2.5rem;
    background-color: #191825;
}

.conteudoSobre {
    display: flex;
    justify-content: space-between; /* Ensure space between text box and image */
    align-items: center;
    padding: 2rem;
    flex-wrap: wrap;
}

.textoBoxSobre {
    flex: 1; /* Allows it to take up the left side of the section */
    max-width: 20vw; /* Make sure it doesn't take too much space */
    background-color: rgba(255, 255, 255, 0.1); /* Semi-transparent background */
    padding: 2rem;
    border-radius: 15px; /* Rounded corners for the box */
    margin-right: 2rem; /* Add some space between the text box and image */
}

.textoSobre {
    color: #FFA3FD;
    font-size: 1.2rem;
}

.imagemSobre {
    flex: 1; /* This ensures that the image stays on the right */
    display: flex;
    justify-content: center;
}

.protoFormal {
    width: 60vh; 
    border-radius: 10px; 
    margin-top: 15vh;
    animation: fadeInDireita 0.8s ease forwards;
    opacity: 0;
}
.protoFormal.animate {
    animation: fadeInDireita 0.8s ease forwards; 
}
/* --------------------------- */
/* Personagens */
.containerTodos{
    display:flex;
    flex-direction: column;
    align-items: center;
}
.containerCima{
    margin-top: 6vh;
    display:flex;
    flex-direction: row;
}
.containerBaixo{
    display:flex;
    flex-direction: row;
}
.fotoIcone{
    width: 100%;
    height: 100%;
    border-radius: 50px;
    object-fit: cover;
    transition: width 0.5s ease-in-out,height 0.5s ease-in-out, border-radius 0.5s ease-in-out;
}

.panel {
    display: flex;
    align-items: center;
    justify-content: flex-start; /* Aligns the image and descricao horizontally */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    height: 80vh;
    width: 10vw;
    border-radius: 50px;
    position: relative;
    transition: height 0.5s ease-in, width 0.5s ease-in;
    color: #fff;
    cursor: pointer;
    margin: 10px;
    overflow: hidden;
}


.panel h3 {
    position: absolute;
    bottom: 20px;
    left: 20px;
    opacity: 0;
}

.panel.active {
    width: 50vw;
    height: 80vh;
    cursor:grab;
}

.panel.active img {
    width: 50%;
    height: 100%;
    border-radius: 50px 0 0 50px;
}

.panel.active h3 {
    opacity: 1;
    transition: opacity 0.4s ease-in 0.4s;
}

.descricao {
    display: none;
    margin-left: 20px;
    font-size: 1.2rem;
    line-height: 1.4;
    overflow-y: auto;
    overflow-x: auto;
}

.panel.active .descricao {
    display: flex;
    flex-direction: column;
    justify-content: center; /* Centers the text vertically */
    width: 50%;
    padding: 20px;
    opacity: 1;
    transition: opacity 0.4s ease-in 0.4s;
}
/* personalização personagens */

.than{
    background-image: url(./imagens/personagens/backgrounds/sthradd.png);
    
}
.thanImg{
    object-position: 30%;
}
.thanTexto{
    font-size: 0.7rem;
    color: white;
    background-color: rgba(0, 0, 0, 0.40);
    border-radius: 10% 0% 0% 10%;
}

.hollow{
    background-image: url(./imagens/personagens/backgrounds/Hollow.png) 
}
.hollowTexto{
    background-color: rgba(0, 0, 0, 0.40);
    border-radius: 10% 0% 0% 10%;
}
.panel.hollow h3{
    color:black
}

.ash{
    background-image: url(./imagens/personagens/backgrounds/cisne.png);
}
.ashTexto{
    background-color: rgba(0, 0, 0, 0.40);
    border-radius: 10% 0% 0% 10%;
}
.automata{
    background-image: url(./imagens/personagens/backgrounds/Site-background.jpg);
}
.vulcan{
    object-position: 20%
}
.vulcanTexto{
    background-color: rgba(0, 0, 0, 0.40);
    border-radius: 10% 0% 0% 10%;
}
/* ----------- */
/* Canyou Hearmetob */
.canyou {
    background-color: #191825;
    color: #FFA3FD;
    scroll-snap-align: start;
    background-image: url(./imagens/limsalominsa.jpg);
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.containerFF{
    display: flex;
    flex-direction: row;
    padding: 2rem;
    flex-wrap: wrap;
}
#retratoCanyou{
    width: 45vh; 
    border-radius: 10px;
    margin-top: 15vh;
    margin-left:35vh;
}
.dados{
    background-color: #79018C;
    margin-top: 15vh;
    width: 35vw;
    height: 62vh;
    border-radius: 10px;
    background:
        radial-gradient(hsl(0, 100%, 27%) 4%, hsl(0, 100%, 18%) 9%, hsla(0, 100%, 20%, 0) 9%) 0 0,
        radial-gradient(hsl(0, 100%, 27%) 4%, hsl(0, 100%, 18%) 8%, hsla(0, 100%, 20%, 0) 10%) 50px 50px,
        radial-gradient(hsla(0, 100%, 30%, 0.8) 20%, hsla(0, 100%, 20%, 0)) 50px 0,
        radial-gradient(hsla(0, 100%, 30%, 0.8) 20%, hsla(0, 100%, 20%, 0)) 0 50px,
        radial-gradient(hsla(0, 100%, 20%, 1) 35%, hsla(0, 100%, 20%, 0) 60%) 50px 0,
        radial-gradient(hsla(0, 100%, 20%, 1) 35%, hsla(0, 100%, 20%, 0) 60%) 100px 50px,
        radial-gradient(hsla(0, 100%, 15%, 0.7), hsla(0, 100%, 20%, 0)) 0 0,
        radial-gradient(hsla(0, 100%, 15%, 0.7), hsla(0, 100%, 20%, 0)) 50px 50px,
        linear-gradient(45deg, hsla(0, 100%, 20%, 0) 49%, hsla(0, 100%, 0%, 1) 50%, hsla(0, 100%, 20%, 0) 70%) 0 0,
        linear-gradient(-45deg, hsla(0, 100%, 20%, 0) 49%, hsla(0, 100%, 0%, 1) 50%, hsla(0, 100%, 20%, 0) 70%) 0 0;
    background-color: #300;
    background-size: 100px 100px;;
    font-size:50px;
}

/* ----------- */

/* ONE PIECE RED */
.red{
    background-color: #191825;
    color: #FFA3FD;
    scroll-snap-align: start;
    background-image: url(./imagens/onepiecered.jpg);
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.containerRed{
    display: flex;
    justify-content: space-between; 
    flex-direction: column;
    padding: 2rem;
    flex-wrap: wrap;
}
.posterRed{
    width: 30vh; 
    border-radius: 10px;
    margin-top: 5vh;
    margin-left: 40vw;
    opacity: 0;
}
.posterRed.animate{
    animation: fadeInAcima 0.8s ease forwards
}

.textoBoxRed{
    max-width: 45vw; 
    margin-left: 25vw;
    text-align: center;
    background-color: rgba(243, 8, 8, 0.80); 
    padding: 2rem;
    border-radius: 15px; 
}
.textoRed{
    color: #080101;
    font-size: 3rem;
}
#vezesAssistidas{
    color: gold;
    font-size: 5rem;
}
/* ----------- */


/* ------------------------------------- ANIMAÇÕES -------------------------- */
/* typewriter */
@keyframes typing {
    0%, 31.35% { content: ""; }
    1.14%, 30.21% { content: "G"; }
    2.28%, 29.07% { content: "GR"; }
    3.42%, 28.93% { content: "GR4"; }
    4.56%, 27.79% { content: "GR4V"; }
    5.70%, 26.65% { content: "GR4V1"; }
    6.84%, 20.51% { content: "GR4V17"; }
    7.98%, 19.37% { content: "GR4V17Y"; }

    32.77% { content: ""; }
    33.91% { content: "G"; }
    34.05% { content: "Gr"; }
    35.19% { content: "Gra"; }
    36.33% { content: "Grav"; }
    37.47% { content: "Gravi"; }
    38.60% { content: "Gravit"; }
    39.74% { content: "Gravity"; }
}
@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0; }
}

.typewriter::before {
    content: "Gravity";
    animation: typing 13.5s;
}
.typewriter::after {
    content: "";
    border-right: 1px solid currentColor;
    animation: blink 0.5s linear infinite;
}
.typewriter.thick::after {
    border-right: 1ch solid currentColor;
}
.typewriter.nocaret::after {
    border-right: 0;
}

/* Animações mover */
@keyframes mover {
    0% { opacity: 0; transform: translate(-10px, 0); }
    50% { opacity: 0.6; }
    100% { opacity: 1; transform: translate(0, 0); }
}
@keyframes mover2 {
    0% { opacity: 0; transform: translate(-10px, 0); }
    50% { opacity: 0.6; }
    100%{ opacity: 1; transform: translate(0, 0); }
} 

/* Fade In Direita */
@keyframes fadeInDireita {
    0% {
        opacity: 0;
        transform: translateX(100px); /* Start off-screen to the right */
    }
    100% {
        opacity: 1;
        transform: translateX(0); /* End at original position */
    }
}
@keyframes fadeInAcima {
    0% {
        opacity: 0;
        transform: translateY(100px); /* Start off-screen to the right */
    }
    100% {
        opacity: 1;
        transform: translateX(0); /* End at original position */
    }
}
.protoFormal {
    animation: fadeInRight 0.8s ease forwards; /* Add animation */
}

/* ------------------------------------- RESPONSIVIDADE -------------------------- */
/* Responsive adjustments */
@media (max-width: 768px) {
    .hero {
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: 2rem;
        top: 40%;
        transform: translate(-50%, -40%);
    }

    .textoHero {
        margin: 0;
        text-align: center;
        font-size: 1.5rem;
    }

    .imagemHero {
        margin: 1rem 0;
    }

    .img-proto {
        width: 40vh;
    }

    .navbar {
        padding: 0.5rem 1rem;
    }

    .tituloNav {
        font-size: 1.25rem;
    }

    .toggleNav {
        font-size: 0.9rem;
    }
    .textoBoxSobre{
        max-width: 100%;
    }
}

@media (max-width: 480px) {
    .textoHero {
        font-size: 1.25rem;
    }

    .img-proto {
        width: 30vh;
    }
}
