@import url('https://fonts.googleapis.com/css2?family=Bitcount+Ink:wght@100..900&display=swap');

/* Reset global - Remove margens e paddings padrão do navegador */
* {
    margin: 0;
    /* Remove margem padrão */
    padding: 0;
    /* Remove padding padrão */
    box-sizing: border-box;
    /* Inclui padding e borda no cálculo de largura/altura */
}

/* Variáveis CSS - Armazena cores e estilos reutilizáveis */
:root {
    --bg: #141414;
    /* Cor de fundo principal (cinza escuro) */
    --bg-soft: #1f1f1f;
    /* Cor de fundo secundária (cinza mais claro) */
    --text: #e5e5e5;
    /* Cor do texto padrão (cinza claro) */
    --primary: #e50914;
    /* Cor primária da Netflix (vermelho) */
    --gray: #565656;
    /* Cor cinza neutra */
    --glass: rgba(20, 20, 20, 0.7);
    /* Efeito de vidro fosco/transparente */
}

/* Estilos da página HTML e BODY */
html,
body {
    min-height: 100%;
    /* Garante que ocupem toda altura da viewport */
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    /* Define a fonte padrão */
    background: var(--bg);
    /* Fundo uniforme, sem variações de cor nas bordas */
    color: var(--text);
    /* Define cor padrão do texto */
}

/* Light mode */
body.light {
    --bg: #f5f5f5;
    --bg-soft: #ffffff;
    --text: #333333;
    --primary: #e50914;
    --gray: #666666;
    --glass: rgba(255, 255, 255, 0.8);
    background: var(--bg);
    color: var(--text);
}

body.light header {
    background: rgba(255, 255, 255, 0.9);
}

body.light #theme-toggle {
    color: #333;
}

body.light main {
    background: linear-gradient(180deg, rgba(255, 255, 255, .95) 0%, rgba(245, 245, 245, .95) 100%);
    border: 1px solid rgba(0, 0, 0, 0.08);
}

body.light .profile figure {
    border: 2px solid rgba(0, 0, 0, 0.18);
    /* Borda cinza no light mode */
}

body.light footer {
    background: var(--bg);
    color: var(--gray);
}

/* Estilos do BODY - Centro da página */
body {
    display: flex;
    /* Usa flexbox para centralização */
    flex-direction: column;
    /* Muda para coluna para permitir footer no fundo */
    justify-content: center;
    /* Centraliza verticalmente o main */
    align-items: center;
    /* Centraliza horizontalmente */
    padding: 2rem;
    /* Espaçamento interno */
    min-height: 100vh;
    /* Garante altura mínima da viewport */
}

/* Cabeçalho fixo no topo */
header {
    position: absolute;
    /* Posicionamento fora do fluxo normal */
    top: 0;
    /* Coloca no topo */
    left: 0;
    /* Alinha à esquerda */
    width: 100%;
    /* Ocupa toda a largura */
    padding: 1rem 2rem;
    /* Espaçamento interno */
    display: flex;
    /* Layout flexível */
    align-items: center;
    /* Alinha itens verticalmente */
    justify-content: space-between;
    /* Espaça h1 e botão */
    background: rgba(20, 20, 20, 0.9);
    /* Fundo sólido semi-transparente */
    z-index: 10;
    /* Coloca acima de outros elementos */
}

/* Título Netflix no cabeçalho */
header h1 {
    font-family: 'Bitcount Ink', sans-serif;
    /* Fonte Bitcount Ink importada */
    font-size: 2.5rem;
    /* Tamanho maior */
    letter-spacing: 3px;
    /* Espaçamento entre letras */
    font-weight: 700;
    /* Peso da fonte (bold) */
    color: #40E0D0;
    /* Cor azul turquesa */
    margin: 0;
}

/* Botão de toggle de tema */
#theme-toggle {
    background: none;
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: #40E0D0;
    margin-left: 1rem;
    transition: transform 0.2s;
}

#theme-toggle:hover {
    transform: scale(1.1);
}

/* Container principal - Card com perfis */
main {
    width: min(1100px, 100%);
    /* Usa 1100px mas nunca passa 100% da tela */
    padding: 3rem 2rem 2rem;
    /* Espaçamento interno (topo, lados, rodapé) */
    margin-top: 5.4rem;
    /* Distancia do título fixo */
    background: linear-gradient(180deg, rgba(20, 20, 20, .95) 0%, rgba(13, 13, 13, .95) 100%);
    /* Gradiente vertical escuro */
    border-radius: 16px;
    /* Cantos arredondados */
    box-shadow: 0 18px 45px rgba(0, 0, 0, .55);
    /* Sombra profunda para efeito 3D */
    border: 1px solid rgba(255, 255, 255, 0.08);
    /* Borda sutil branca */
    flex: 1;
    /* Permite que o main ocupe o espaço disponível */
}

/* Título "Quem está assistindo?" */
main section h2 {
    font-size: 2.2rem;
    /* Tamanho grande */
    margin: 1.2rem auto 1.5rem;
    /* Espaçamento acima e abaixo */
    text-align: center;
    /* Centraliza título */
    color: var(--text);
    /* Usa cor do texto variável */
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.45);
    /* Sombra no texto para melhor legibilidade */
}

/* Container com grid dos perfis */
.profiles-wrapper,
.profiles {
    list-style: none;
    margin: 0;
    padding: 0;
}

.profiles {
    display: grid;
    /* Layout em grid */
    grid-template-columns: repeat(2, minmax(160px, 220px));
    /* Colunas fixas, para itens ficarem juntos */
    gap: 0.8rem;
    /* Espaçamento reduzido */
    justify-content: center;
    /* Centraliza o grid na área pai */
    justify-items: center;
    /* Centraliza cada perfil no grid */
    width: min(460px, 100%);
    /* Mantém a largura do grid compacta */
    margin: 0 auto;
}

.profiles li {
    margin: 0;
}

/* Estilo de cada card de perfil */
.profile {
    background: none;
    /* Remove fundo para evitar retângulo grande */
    border: none;
    /* Sem borda no container */
    border-radius: 14px;
    /* Cantos arredondados */
    overflow: visible;
    /* Permite hover em figure sem cropping */
    transition: transform .2s, box-shadow .2s;
    /* Suaviza animações */
    cursor: pointer;
    /* Indica que é clicável */
    padding: 0;
    /* Sem espaçamento adicional */
    width: fit-content;
    /* Tamanho conforme conteúdo */
}

.profile figure {
    margin: 0;
    padding: 0.2rem;
    /* Ajuste pequeno de espaçamento interno */
    border: 2px solid rgba(255, 255, 255, 0.18);
    /* borda próxima à imagem */
    border-radius: 16px;
    /* Cantos arredondados */
    width: fit-content;
    display: inline-block;
}

.profile img {
    width: 120px;
    /* Tamanho padrão para imagem */
    height: 120px;
    /* Altura fixa para manter quadrado */
    object-fit: cover;
    /* Preenchimento sem distorção */
    border-radius: 12px;
    /* Cantos arredondados */
    border: none;
    /* Borda removida dentro da imagem */
}

.profile:hover,
.profile:focus-visible {
    transform: translateY(-3px);
    /* Levanta levemente o card */
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.35);
}

.profile:hover figure,
.profile:focus-visible figure {
    border-color: rgba(199, 125, 255, 0.8);
    /* Borda de destaque roxo neon */
    box-shadow: 0 0 0 2px rgba(199, 125, 255, 0.2);
}

/* Efeito ao passar o mouse ou focar */
.profile:hover,
.profile:focus-visible {
    transform: translateY(-5px) scale(1.01);
    /* Move para cima e aumenta ligeiramente */
    border-color: rgba(255, 255, 255, 0.35);
    /* Torna borda mais visível */
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.45);
    /* Aumenta sombra */
    outline: none;
    /* Remove outline padrão do navegador */
}

/* Container da imagem e nome */
.profile figure {
    display: flex;
    /* Layout flexível */
    flex-direction: column;
    /* Empilha itens verticalmente */
    align-items: center;
    /* Centraliza horizontalmente */
    gap: 1rem;
    /* Espaço entre imagem e nome */
    padding: 1.1rem;
    /* Espaçamento interno */
}

/* Imagem do perfil */
.profile img {
    width: 120px;
    /* Largura fixa adequada */
    height: 120px;
    /* Altura fixa para manter quadrado */
    object-fit: cover;
    /* Preenchimento sem distorção */
    border-radius: 12px;
    /* Cantos arredondados */
    border: 2px solid rgba(250, 250, 250, 0.08);
    /* Borda sutil */
}

/* Nome do perfil abaixo da imagem */
.profile figcaption {
    font-size: 1.02rem;
    /* Tamanho ligeiramente maior */
    font-weight: 700;
    /* Texto em negrito */
    color: var(--text);
    /* Usa cor do texto variável */
    text-align: center;
    /* Centraliza o texto */
}

/* Rodapé - Copyright */
footer {
    position: fixed;
    /* Fixa no fundo da página */
    bottom: 0;
    /* No fundo */
    left: 0;
    /* Alinha à esquerda */
    width: 100%;
    /* Largura total */
    text-align: center;
    /* Centraliza texto */
    font-size: .85rem;
    /* Letra menor */
    color: var(--gray);
    /* Cor cinza para desemfatizar */
    background: var(--bg);
    /* Fundo sólido */
    padding: 0.5rem;
    /* Padding pequeno */
    z-index: 5;
    /* Abaixo do header */
}

/* Responsividade para telas pequenas (até 550px) */
@media (max-width: 550px) {
    body {
        padding: 1rem;
        /* Reduz padding do body em mobile */
    }

    main {
        padding: 2rem 1.2rem 1.5rem;
        /* Reduz padding em telas pequenas */
    }

    header {
        padding: 0.5rem 1rem;
        justify-content: center;
    }

    header h1 {
        font-size: 2rem;
        /* Reduz tamanho em mobile */
        font-family: 'Bitcount Ink', sans-serif;
    }

    #theme-toggle {
        position: absolute;
        top: 0.5rem;
        right: 1rem;
        margin-left: 0;
    }

    main section h2 {
        font-size: 1.6rem;
        /* Reduz tamanho do título */
    }

    .profiles {
        grid-template-columns: repeat(2, 1fr);
        /* Sempre 2 colunas */
        gap: 0.8rem;
        /* Reduz gap */
    }

    .profile figure {
        padding: 0.8rem;
        /* Reduz padding interno */
        gap: 0.8rem;
        /* Reduz gap */
    }

    .profile img {
        width: 100px;
        /* Menor em mobile */
        height: 100px;
        /* Altura correspondente */
    }
}

/* Responsividade para tablets (551px a 1024px) */
@media (min-width: 551px) and (max-width: 1024px) {
    body {
        padding: 1.5rem;
        /* Padding intermediário */
    }

    main {
        padding: 2.5rem 1.5rem 2rem;
        /* Padding ajustado */
    }

    header h1 {
        font-size: 2.2rem;
        /* Tamanho intermediário */
        font-family: 'Bitcount Ink', sans-serif;
    }

    main section h2 {
        font-size: 2rem;
        /* Tamanho intermediário */
    }

    .profiles {
        grid-template-columns: repeat(2, 1fr);
        /* Sempre 2 colunas */
        gap: 1rem;
        /* Gap padrão */
    }
}

/* Responsividade para desktops grandes (acima de 1024px) */
@media (min-width: 1025px) {
    body {
        padding: 2rem;
        /* Padding padrão */
    }

    main {
        padding: 3rem 2rem 2rem;
        /* Padding padrão */
    }

    header h1 {
        font-size: 2.5rem;
        /* Tamanho padrão */
        font-family: 'Bitcount Ink', sans-serif;
    }

    main section h2 {
        font-size: 2.2rem;
        /* Tamanho padrão */
    }

    .profiles {
        grid-template-columns: repeat(2, 1fr);
        /* Sempre 2 colunas */
        gap: 1.2rem;
        /* Gap maior */
    }
}
