* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Georgia, "Times New Roman", serif;
    background: #080509;
    color: white;
}


/* =========================
   CABEÇALHO
========================= */

header {
    min-height: 420px;

    display: flex;
    align-items: center;
    justify-content: center;

    text-align: center;

    position: relative;
    overflow: hidden;

    background:
        linear-gradient(
            rgba(0, 0, 0, .55),
            rgba(8, 5, 9, .95)
        ),
        radial-gradient(
            circle at center,
            #54122a,
            #080509 70%
        );
}

header::before {
    content: "☾";

    position: absolute;

    font-size: 300px;

    color: rgba(255,255,255,.03);

    right: 5%;
    top: -70px;
}

.hero {
    position: relative;
    z-index: 2;
}

.hero h1 {
    font-size: clamp(42px, 8vw, 82px);

    letter-spacing: 5px;

    text-transform: uppercase;

    color: #fff;

    text-shadow:
        0 0 10px #8e163d,
        0 0 30px #8e163d;
}

.hero p {
    margin-top: 15px;

    color: #d8aabb;

    font-size: 20px;

    letter-spacing: 3px;
}

.linha {
    width: 120px;
    height: 2px;

    background: #9d1745;

    margin: 25px auto;

    box-shadow: 0 0 12px #9d1745;
}


/* =========================
   MENU
========================= */

nav {
    background: #120a10;

    border-bottom: 1px solid #542033;

    padding: 18px;

    text-align: center;

    position: sticky;
    top: 0;

    z-index: 100;
}

nav a {
    color: #ddd;

    text-decoration: none;

    margin: 0 18px;

    font-size: 15px;

    text-transform: uppercase;

    letter-spacing: 2px;

    transition: .3s;
}

nav a:hover {
    color: #e62e68;
}


/* =========================
   CONTEÚDO
========================= */

main {
    max-width: 1200px;

    margin: auto;

    padding: 70px 25px;
}

.titulo {
    text-align: center;

    margin-bottom: 50px;
}

.titulo h2 {
    font-size: 38px;

    color: #eee;
}

.titulo p {
    margin-top: 10px;

    color: #9e8b93;
}


/* =========================
   CARDS
========================= */

.personagens {
    display: grid;

    grid-template-columns:
        repeat(auto-fit, minmax(250px, 1fr));

    gap: 28px;
}

.card {
    background:
        linear-gradient(
            145deg,
            #171018,
            #0e090d
        );

    border: 1px solid #3c1c2b;

    border-radius: 12px;

    overflow: hidden;

    transition: .4s;

    box-shadow:
        0 10px 30px rgba(0,0,0,.4);
}

.card:hover {
    transform: translateY(-12px);

    border-color: #a51d4c;

    box-shadow:
        0 15px 40px rgba(165,29,76,.3);
}


/* =========================
   FOTO
========================= */

.foto {
    height: 310px;

    position: relative;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #3b0e20,
            #120912
        );
}

.foto img {
    width: 100%;
    height: 100%;

    object-fit: cover;

    display: block;

    transition: .5s;
}

/* Efeito escuro igual ao anterior */

.foto::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            transparent 50%,
            rgba(0,0,0,.8)
        );
}

/* Zoom da foto */

.card:hover .foto img {
    transform: scale(1.08);
}


/* =========================
   INFORMAÇÕES
========================= */

.info {
    padding: 24px;
}

.info h3 {
    color: #f0dce3;

    font-size: 25px;

    margin-bottom: 7px;
}

.tipo {
    color: #bd2759;

    font-size: 13px;

    text-transform: uppercase;

    letter-spacing: 2px;

    margin-bottom: 15px;
}

.info p {
    color: #a99ba1;

    line-height: 1.6;

    font-size: 15px;
}


/* =========================
   BOTÃO
========================= */

.botao {
    display: inline-block;

    margin-top: 18px;

    padding: 10px 18px;

    border: 1px solid #8d1c43;

    border-radius: 5px;

    color: #e6b5c5;

    text-decoration: none;

    font-size: 13px;

    transition: .3s;
}

.botao:hover {
    background: #8d1c43;

    color: white;
}


/* =========================
   SOBRE
========================= */

.sobre {
    margin-top: 100px;

    padding: 50px;

    text-align: center;

    background:
        linear-gradient(
            135deg,
            rgba(75,15,38,.3),
            rgba(15,8,13,.8)
        );

    border: 1px solid #351827;

    border-radius: 15px;
}

.sobre h2 {
    color: #e7c4cf;

    font-size: 32px;

    margin-bottom: 20px;
}

.sobre p {
    max-width: 750px;

    margin: auto;

    color: #aaa0a5;

    line-height: 1.8;
}


/* =========================
   RODAPÉ
========================= */

footer {
    text-align: center;

    padding: 35px 20px;

    background: #050305;

    color: #71666c;

    border-top: 1px solid #27121c;
}

footer span {
    color: #a92350;
}


/* =========================
   CELULAR
========================= */

@media (max-width: 600px) {

    nav a {
        margin: 0 7px;

        font-size: 11px;
    }

    header {
        min-height: 350px;
    }

    .sobre {
        padding: 30px 20px;
    }
}