* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html,
body {
    width: 100%;
    min-height: 100vh;
}

html {
    scroll-behavior: smooth;   /* rolagem suave para as âncoras */
}

/* compensa a navbar fixa ao pular para uma seção */
[id] {
    scroll-margin-top: 110px;
}

body {
    /* Imagem de fundo cobrindo todo o espaço, sem emendas visíveis */
    background-image: url("../img/background.png");
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
    font-family: "Segoe UI", Arial, sans-serif;
    padding: 40px;
}

/* ===== NAVBAR estilo sci-fi (cantos chanfrados) ===== */
.navbar {
    --corte: 16px;          /* tamanho do chanfro nos cantos */
    --cor-borda: #2f6f9e;   /* azul da borda */

    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 3px;           /* espessura visível da borda */

    /* cor/brilho da "borda" */
    background: linear-gradient(180deg, #3a7fb5, #14334a);

    /* recorta os 4 cantos em diagonal */
    clip-path: polygon(
        var(--corte) 0,
        calc(100% - var(--corte)) 0,
        100% var(--corte),
        100% calc(100% - var(--corte)),
        calc(100% - var(--corte)) 100%,
        var(--corte) 100%,
        0 calc(100% - var(--corte)),
        0 var(--corte)
    );
}

.navbar__inner {
    /* fundo interno escuro, mesmo recorte para criar a moldura */
    background: linear-gradient(180deg, rgba(10, 18, 28, 0.95), rgba(6, 12, 20, 0.95));
    clip-path: polygon(
        var(--corte) 0,
        calc(100% - var(--corte)) 0,
        100% var(--corte),
        100% calc(100% - var(--corte)),
        calc(100% - var(--corte)) 100%,
        var(--corte) 100%,
        0 calc(100% - var(--corte)),
        0 var(--corte)
    );

    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 6px 32px;
}

/* logo02 estática na navbar */
.navbar__brand {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

/* logo01 em branco na navbar (mesmo estilo do footer) */
.navbar__brand img {
    height: 44px;
    width: auto;
    display: block;
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

/* menu de âncoras */
.navbar__menu {
    list-style: none;
    display: flex;
    gap: 32px;
    margin: 0;
    padding: 0;
}

.navbar__menu a {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    color: #cfe3f5;
    transition: color 0.2s ease;
}

.navbar__menu a:hover {
    color: #ffffff;
}

/* CTA para a seção de download */
.navbar__cta {
    flex: 0 0 auto;
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 13px;
    letter-spacing: 2px;
    text-decoration: none;
    color: #e6f2ff;
    background: linear-gradient(180deg, #3a7fb5, #1c4b6e);
    padding: 12px 26px;
    clip-path: polygon(
        10px 0, calc(100% - 10px) 0, 100% 50%,
        calc(100% - 10px) 100%, 10px 100%, 0 50%
    );
    transition: filter 0.2s ease;
}

.navbar__cta:hover {
    filter: brightness(1.15);
}

/* responsivo: empilha em telas menores */
@media (max-width: 760px) {
    .navbar__inner {
        flex-direction: column;
        gap: 14px;
        padding: 18px;
    }
    .navbar__menu {
        flex-wrap: wrap;
        justify-content: center;
        gap: 16px 20px;
    }
}

/* ===== PAINEL desenhado em CSS (mesma técnica da navbar) ===== */
.panel {
    --corte: 28px;          /* tamanho do chanfro nos cantos */

    width: 100%;
    max-width: 1200px;
    margin: 40px auto 0;
    padding: 10px;          /* espessura da borda (tubo de aço) */

    /* acabamento metálico: brilho no topo, sombra embaixo (tubo de aço) */
    background: linear-gradient(
        180deg,
        #8fc0e0 0%,
        #4a8cbf 28%,
        #21567c 60%,
        #0d2638 100%
    );

    /* recorta os 4 cantos em diagonal */
    clip-path: polygon(
        var(--corte) 0,
        calc(100% - var(--corte)) 0,
        100% var(--corte),
        100% calc(100% - var(--corte)),
        calc(100% - var(--corte)) 100%,
        var(--corte) 100%,
        0 calc(100% - var(--corte)),
        0 var(--corte)
    );
}

.panel__inner {
    /* fundo interno claro */
    background: #E6EBF2;
    clip-path: polygon(
        var(--corte) 0,
        calc(100% - var(--corte)) 0,
        100% var(--corte),
        100% calc(100% - var(--corte)),
        calc(100% - var(--corte)) 100%,
        var(--corte) 100%,
        0 calc(100% - var(--corte)),
        0 var(--corte)
    );

    min-height: 560px;
    display: flex;
    align-items: center;
    justify-content: center;

    /* sombra interna para dar profundidade */
    box-shadow: inset 0 0 35px rgba(0, 0, 0, 0.45);
}

/* ===== HERO (conteúdo dentro do painel) ===== */
.hero {
    width: 100%;
    max-width: 760px;
    padding: 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 22px;
}

.hero__logo {
    width: 320px;
    max-width: 70%;
    height: auto;
}

/* Títulos primários/secundários: Orbitron Black */
.hero__title {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 34px;
    line-height: 1.2;
    letter-spacing: 2px;
    color: #14233a;
    text-transform: uppercase;
    margin: 0;
}

.hero__subtitle {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 16px;
    letter-spacing: 3px;
    color: #2f6f9e;
    text-transform: uppercase;
    margin: 0;
}

/* Textos: Raleway regular/medium */
.hero__text {
    font-family: "Raleway", sans-serif;
    font-weight: 400;
    font-size: 17px;
    line-height: 1.7;
    color: #34414f;
    max-width: 600px;
    margin: 0;
}

.hero__cta {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 15px;
    letter-spacing: 2px;
    text-decoration: none;
    color: #e6f2ff;
    background: linear-gradient(180deg, #3a7fb5, #1c4b6e);
    padding: 14px 38px;
    margin-top: 8px;
    clip-path: polygon(
        12px 0, calc(100% - 12px) 0, 100% 50%,
        calc(100% - 12px) 100%, 12px 100%, 0 50%
    );
    transition: filter 0.2s ease;
}

.hero__cta:hover {
    filter: brightness(1.15);
}

/* ===== SEÇÃO genérica (evolui com o tempo) ===== */
.section {
    width: 100%;
    max-width: 760px;
    padding: 24px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
}

.section__title {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 30px;
    letter-spacing: 2px;
    color: #14233a;
    text-transform: uppercase;
    margin: 0;
}

.section__subtitle {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 15px;
    letter-spacing: 3px;
    color: #2f6f9e;
    text-transform: uppercase;
    margin: 0;
}

.section__text {
    font-family: "Raleway", sans-serif;
    font-weight: 400;
    font-size: 17px;
    line-height: 1.7;
    color: #34414f;
    max-width: 600px;
    margin: 0;
}

/* ===== Cards de download (seção COMECE AQUI) ===== */
.cards-wrap {
    position: relative;
    width: 100%;
}

.cards-nav {
    display: none;
}

.cards {
    display: flex;
    gap: 24px;
    width: 100%;
    margin-top: 16px;
    flex-wrap: wrap;
    justify-content: center;
}

.card {
    flex: 1 1 0;
    min-width: 200px;
    max-width: 280px;
    background: linear-gradient(180deg, #ffffff, #dfe6f0);
    border: 1px solid #b9c6d8;
    padding: 28px 22px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 14px;
    /* cantos chanfrados no estilo sci-fi */
    clip-path: polygon(
        14px 0, 100% 0, 100% calc(100% - 14px),
        calc(100% - 14px) 100%, 0 100%, 0 14px
    );
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.card:hover {
    transform: translateY(-6px);
    box-shadow: 0 10px 24px rgba(20, 50, 80, 0.35);
}

.card__cover {
    width: 100%;
    max-width: 180px;
    height: auto;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border: 1px solid #b9c6d8;
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(20, 50, 80, 0.3);
}

.card__title {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 18px;
    letter-spacing: 1px;
    color: #14233a;
    margin: 0;
}

.card__text {
    font-family: "Raleway", sans-serif;
    font-weight: 400;
    font-size: 15px;
    line-height: 1.6;
    color: #34414f;
    margin: 0;
    flex: 1 1 auto;
}

.card__btn {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 14px;
    letter-spacing: 2px;
    text-decoration: none;
    color: #e6f2ff;
    background: linear-gradient(180deg, #3a7fb5, #1c4b6e);
    padding: 12px 30px;
    clip-path: polygon(
        10px 0, calc(100% - 10px) 0, 100% 50%,
        calc(100% - 10px) 100%, 10px 100%, 0 50%
    );
    transition: filter 0.2s ease;
}

.card__btn:hover {
    filter: brightness(1.15);
}

/* layout em duas colunas: texto à esquerda, emblema à direita */
.section--split {
    max-width: 1000px;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
    text-align: left;
}

.section__text-col {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/* texto em azul para dar destaque */
.section__text-col .section__text {
    color: #2f6f9e;
    font-weight: 500;
}

.section--split .d20-badge {
    flex: 0 0 auto;
    max-width: 320px;
}

/* responsivo: empilha em telas menores */
@media (max-width: 820px) {
    .section--split {
        flex-direction: column;
        text-align: center;
    }
}

/* ===== Emblema (logo02) com D20 girando no centro ===== */
.d20-badge {
    position: relative;
    width: 320px;
    max-width: 80%;
    aspect-ratio: 1 / 1;
}

.d20-badge__ring {
    width: 100%;
    height: 100%;
    display: block;
}

/* D20 centralizado dentro do círculo escuro da logo */
.d20 {
    position: absolute;
    top: 46%;          /* sobe um pouco para centralizar no círculo da logo */
    left: 50%;
    width: 46%;
    height: 46%;
    transform: translate(-50%, -50%);
    transition: transform 0.3s ease;
    overflow: visible;   /* evita o brilho ser cortado em quadrado */
}

/* gira o dado em azul */
.d20__faces {
    transform-origin: 50px 50px;
    animation: d20-spin 6s linear infinite;
    /* brilho azul */
    filter: drop-shadow(0 0 6px rgba(86, 176, 232, 0.7));
    transition: filter 0.3s ease;
}

/* interação com o mouse: cresce, gira mais rápido e brilha mais */
.d20-badge {
    cursor: pointer;
}

.d20-badge:hover .d20 {
    transform: translate(-50%, -50%) scale(1.12);
}

.d20-badge:hover .d20__faces {
    animation-duration: 1.4s;
    filter: drop-shadow(0 0 14px rgba(86, 176, 232, 1));
}

.d20__faces polygon {
    stroke: #7fccff;
    stroke-width: 1.2;
    stroke-linejoin: round;
}

@keyframes d20-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* ===== FOOTER (mesma base da navbar superior) ===== */
.footer {
    --corte: 16px;          /* mesmo chanfro da navbar */

    width: 100%;
    max-width: 1200px;
    margin: 40px auto;
    padding: 3px;           /* espessura da borda */

    /* mesma borda da navbar */
    background: linear-gradient(180deg, #3a7fb5, #14334a);

    clip-path: polygon(
        var(--corte) 0,
        calc(100% - var(--corte)) 0,
        100% var(--corte),
        100% calc(100% - var(--corte)),
        calc(100% - var(--corte)) 100%,
        var(--corte) 100%,
        0 calc(100% - var(--corte)),
        0 var(--corte)
    );
}

.footer__inner {
    background: linear-gradient(180deg, rgba(10, 18, 28, 0.95), rgba(6, 12, 20, 0.95));
    clip-path: polygon(
        var(--corte) 0,
        calc(100% - var(--corte)) 0,
        100% var(--corte),
        100% calc(100% - var(--corte)),
        calc(100% - var(--corte)) 100%,
        var(--corte) 100%,
        0 calc(100% - var(--corte)),
        0 var(--corte)
    );

    min-height: 72px;
    padding: 28px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 18px;
}

.footer__logo {
    width: 180px;
    max-width: 60%;
    height: auto;
    /* logo é escura; clareia sobre o fundo escuro do footer */
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

.footer__links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 28px;
}

.footer__links a {
    font-family: "Orbitron", sans-serif;
    font-weight: 900;
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
    text-decoration: none;
    color: #9fd0f2;
    transition: color 0.2s ease;
}

.footer__links a:hover {
    color: #ffffff;
}

.footer__copy {
    font-family: "Raleway", sans-serif;
    font-weight: 400;
    font-size: 13px;
    letter-spacing: 1px;
    color: #6f8aa3;
    text-align: center;
}

.footer__credit {
    font-family: "Raleway", sans-serif;
    font-weight: 500;
    font-size: 13px;
    letter-spacing: 1px;
    color: #6f8aa3;
    text-align: center;
}

.footer__credit a {
    color: #9fd0f2;
    text-decoration: none;
    transition: color 0.2s ease;
}

.footer__credit a:hover {
    color: #ffffff;
}

/* ===================================================================
   RESPONSIVO — tablets e celulares
   =================================================================== */

/* Tablets / telas médias */
@media (max-width: 820px) {
    body {
        padding: 20px;
    }

    .panel {
        --corte: 22px;
        margin-top: 24px;
    }

    .panel__inner {
        min-height: 460px;
    }

    .hero__title {
        font-size: 28px;
    }

    .section__title {
        font-size: 26px;
    }
}

/* Celulares */
@media (max-width: 560px) {
    body {
        padding: 12px;
        /* imagem fixa: o conteúdo rola por cima dela no mobile */
        background-attachment: fixed;
        /* evita ampliar a imagem (que pixeliza no mobile): usa cor base
           igual à imagem e mantém o tamanho natural, sem upscale */
        background-color: #10161c;
        background-size: auto;
        background-position: center top;
    }

    /* navbar fixa empilhada ocupa muito espaço: reduz a folga das âncoras */
    [id] {
        scroll-margin-top: 24px;
    }

    .navbar {
        --corte: 12px;
    }

    .navbar__inner {
        padding: 14px;
        gap: 12px;
    }

    .navbar__brand img {
        height: 38px;
    }

    .navbar__menu {
        gap: 12px 16px;
    }

    .navbar__menu a {
        font-size: 12px;
        letter-spacing: 1px;
    }

    .navbar__cta {
        font-size: 12px;
        padding: 11px 22px;
    }

    /* painéis */
    .panel {
        --corte: 18px;
        padding: 6px;
        margin-top: 18px;
    }

    .panel__inner {
        min-height: auto;
        padding: 28px 0;
    }

    .hero,
    .section {
        padding: 8px 16px;
        gap: 18px;
    }

    .hero__logo {
        width: 240px;
    }

    .hero__title {
        font-size: 23px;
        letter-spacing: 1px;
    }

    .hero__subtitle,
    .section__subtitle {
        font-size: 14px;
        letter-spacing: 2px;
    }

    .hero__text,
    .section__text {
        font-size: 15px;
        line-height: 1.6;
    }

    .hero__cta {
        padding: 13px 30px;
        font-size: 14px;
    }

    .section__title {
        font-size: 22px;
        letter-spacing: 1px;
    }

    .section--split {
        gap: 28px;
    }

    /* cards de download em carrossel horizontal (evita página muito longa) */
    .cards {
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-items: stretch;
        gap: 16px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 8px;
        scrollbar-width: none;
    }

    .cards::-webkit-scrollbar {
        display: none;
    }

    .card {
        flex: 0 0 82%;
        width: 82%;
        max-width: 82%;
        scroll-snap-align: center;
    }

    /* setas de navegação do carrossel (para quem acessa via mouse, sem swipe) */
    .cards-nav {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 45%;
        transform: translateY(-50%);
        width: 36px;
        height: 36px;
        border: 1px solid #4d90c7;
        border-radius: 50%;
        background: rgba(15, 30, 45, 0.75);
        color: #bfe0ff;
        font-size: 14px;
        line-height: 1;
        cursor: pointer;
        z-index: 2;
    }

    .cards-nav--prev {
        left: -2px;
    }

    .cards-nav--next {
        right: -2px;
    }

    /* footer */
    .footer {
        margin: 24px auto;
    }

    .footer__inner {
        padding: 24px 18px;
    }

    .footer__links {
        gap: 14px 20px;
    }

    .footer__logo {
        width: 150px;
    }
}
