/* =====================================================
   Landing page: mesmo visual da aplicação
   (neumorfismo claro; azul = ML, verde = LLM)
   ===================================================== */

:root {
    --superficie: #e9eff6;
    --sombra-escura: #c4cdd9;
    --sombra-clara: #ffffff;

    --elevado: 8px 8px 18px var(--sombra-escura), -8px -8px 18px var(--sombra-clara);
    --elevado-leve: 4px 4px 10px var(--sombra-escura), -4px -4px 10px var(--sombra-clara);
    --afundado: inset 5px 5px 10px var(--sombra-escura), inset -5px -5px 10px var(--sombra-clara);

    --azul: #1d4ed8;
    --azul-claro: #3b82f6;
    --verde: #047857;
    --verde-claro: #10b981;
    --degrade: linear-gradient(120deg, var(--azul) 0%, #0e7490 50%, var(--verde-claro) 100%);

    --texto: #1e293b;
    --texto-suave: #5b6b80;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: system-ui, -apple-system, 'Segoe UI', sans-serif;
    line-height: 1.6;
    color: var(--texto);
    background-color: var(--superficie);
    background-image:
        radial-gradient(circle at 12% 0%, rgba(59, 130, 246, 0.22), transparent 38%),
        radial-gradient(circle at 88% 6%, rgba(16, 185, 129, 0.2), transparent 38%);
    background-repeat: no-repeat;
}

main { max-width: 1040px; margin: 0 auto; padding: 0 20px; }

h1, h2, h3 { line-height: 1.2; }

a { color: var(--azul); }

code {
    padding: 1px 6px;
    border-radius: 6px;
    font-size: 0.9em;
    background: var(--superficie);
    box-shadow: inset 2px 2px 4px var(--sombra-escura), inset -2px -2px 4px var(--sombra-clara);
}

/* =====================================================
   Hero
   ===================================================== */

.hero {
    max-width: 860px;
    margin: 0 auto;
    padding: 96px 20px 72px;
    text-align: center;
}

.logo {
    display: block;
    height: auto;
    margin: 0 auto 28px;
    filter: drop-shadow(4px 4px 8px var(--sombra-escura)) drop-shadow(-4px -4px 8px var(--sombra-clara));
}

.selo {
    display: inline-block;
    margin: 0 0 24px;
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--azul);
    background: var(--superficie);
    box-shadow: var(--elevado-leve);
}

.hero h1 {
    margin: 0 0 20px;
    font-size: clamp(2.2rem, 6vw, 3.8rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    text-wrap: balance;
}

.hero h1 span {
    background: var(--degrade);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.subtitulo {
    max-width: 640px;
    margin: 0 auto 36px;
    font-size: 1.15rem;
    color: var(--texto-suave);
}

.acoes { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }

.botao {
    display: inline-block;
    padding: 15px 28px;
    border-radius: 16px;
    font-weight: 800;
    text-decoration: none;
    color: var(--azul);
    background: var(--superficie);
    box-shadow: var(--elevado);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.botao:hover { transform: translateY(-2px); }
.botao:active { transform: none; box-shadow: var(--afundado); }
.botao:focus-visible { outline: 3px solid var(--azul-claro); outline-offset: 4px; }

.botao.principal {
    color: #ffffff;
    background: var(--degrade);
    box-shadow: var(--elevado), 0 10px 24px rgba(14, 116, 144, 0.35);
}

/* =====================================================
   Seções
   ===================================================== */

.secao { padding: 56px 0; }

.secao h2 {
    margin: 0 0 10px;
    font-size: clamp(1.6rem, 3.5vw, 2.2rem);
    font-weight: 900;
    letter-spacing: -0.02em;
    text-align: center;
}

.intro {
    max-width: 620px;
    margin: 0 auto 36px;
    text-align: center;
    color: var(--texto-suave);
}

/* sem .intro logo depois do título */
.secao h2 + .grade-2,
.secao h2 + .grade-3,
.secao h2 + .stack { margin-top: 32px; }

.cartao {
    padding: 26px;
    border-radius: 22px;
    background: var(--superficie);
    box-shadow: var(--elevado);
}

.cartao h3 { margin: 0 0 8px; font-size: 1.1rem; }
.cartao p { margin: 0; color: var(--texto-suave); }

.grade-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.grade-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }

/* =====================================================
   Vídeo
   ===================================================== */

.moldura-video {
    max-width: 900px;
    margin: 0 auto;
    padding: 14px;
    border-radius: 26px;
    background: var(--superficie);
    box-shadow: var(--elevado), 0 20px 50px rgba(14, 116, 144, 0.18);
}

.moldura-video video {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 16px;
    background: #dfe6ee;
}

.chamada { margin-top: 32px; }

.nota {
    margin: 18px 0 0;
    text-align: center;
    font-size: 0.85rem;
    color: var(--texto-suave);
}

/* =====================================================
   Fluxo: as 4 etapas
   ===================================================== */

.fluxo {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px;
    counter-reset: none;
}

.etapa {
    position: relative;
    padding: 26px 22px;
    border-radius: 22px;
    background: var(--superficie);
    box-shadow: var(--elevado);
}

/* seta entre as etapas */
.etapa:not(:last-child)::after {
    content: '→';
    position: absolute;
    right: -22px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.3rem;
    font-weight: 900;
    color: var(--azul-claro);
}

.etapa h3 { margin: 14px 0 8px; font-size: 1.05rem; }
.etapa p { margin: 0; font-size: 0.95rem; color: var(--texto-suave); }

.numero {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    font-weight: 900;
    color: var(--texto-suave);
    background: var(--superficie);
    box-shadow: inset 3px 3px 6px var(--sombra-escura), inset -3px -3px 6px var(--sombra-clara);
}

/* etapa do ML em azul, etapa da LLM em verde */
.etapa.azul .numero { color: #ffffff; background: var(--azul); box-shadow: 0 4px 12px rgba(29, 78, 216, 0.4); }
.etapa.verde .numero { color: #ffffff; background: linear-gradient(135deg, var(--verde-claro), var(--verde)); box-shadow: 0 4px 12px rgba(4, 120, 87, 0.4); }
.etapa.azul h3 { color: var(--azul); }
.etapa.verde h3 { color: var(--verde); }

/* =====================================================
   Stack e listas
   ===================================================== */

.stack {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
}

.stack li {
    padding: 10px 20px;
    border-radius: 999px;
    font-weight: 700;
    background: var(--superficie);
    box-shadow: var(--elevado-leve);
}


/* =====================================================
   Rodapé
   ===================================================== */

.rodape {
    margin-top: 40px;
    padding: 40px 20px 56px;
    text-align: center;
    color: var(--texto-suave);
}

.rodape p { margin: 4px 0; }

/* =====================================================
   Acessibilidade e telas menores
   ===================================================== */

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .botao { transition: none; }
}

@media (max-width: 900px) {
    .grade-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .fluxo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .etapa:not(:last-child)::after { display: none; }
}

@media (max-width: 600px) {
    .hero { padding: 64px 16px 48px; }
    main { padding: 0 16px; }
    .secao { padding: 40px 0; }
    .grade-2,
    .grade-3,
    .fluxo { grid-template-columns: minmax(0, 1fr); gap: 22px; }
    .moldura-video { padding: 8px; border-radius: 18px; }
    .moldura-video video { border-radius: 12px; }
}
