@media (max-width: 394px) {
    .container-header {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--gap-md);
        padding: var(--pad-md);
        width: 100%;
        box-sizing: border-box;
    }

    .menu {
        display: none;
    }

    .menu.ativo {
        display: flex;
        flex-direction: column;
        position: absolute;
        top: 60px;
        right: 20px;
        background: var(--bg-header);
        padding: var(--pad-md) calc(var(--pad-md) * 2);
        border-radius: .5rem;
        box-shadow: 0 4px 8px rgba(0, 0, 0, .2);
        z-index: var(--z-menu);
    }

    .menu li {
        margin: var(--gap-sm) 0;
    }

    .header-row {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        gap: 0;
        position: relative;
        min-height: 3.5rem;
    }

    .header-row>.btn-toggle-theme,
    .header-row>.btn-menu,
    .header-row>.btn-menu-fechar {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .header-row>.btn-toggle-theme {
        left: 0;
        z-index: 1;
        margin-left: .5rem;
    }

    .header-row>.btn-menu,
    .header-row>.btn-menu-fechar {
        right: 0;
        z-index: 2;
        margin: 0;
    }

    .btn-menu,
    .btn-menu-fechar {
        background: none;
        border: none;
        color: var(--cor-titulo);
        font-size: 1.5rem;
        padding: var(--pad-md);
        cursor: pointer;
        display: flex;
    }

    .btn-toggle-theme {
        margin: 0;
    }

    .logo {
        position: static;
        display: flex;
        align-items: center;
        justify-content: center;
        width: auto;
        margin: 0 auto;
    }

    .logo-img {
        max-width: 70px;
        max-height: 70px;
        display: block;
        margin: 1.5rem .5rem .5rem;
    }

    .hero {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: var(--gap-md);
        padding: var(--pad-md);
    }

    .container-header .botoes-hero {
        display: flex;
        flex-direction: column;
        gap: var(--gap-sm);
    }

    .foto-principal {
        width: 120px;
        height: 120px;
    }

    .titulo {
        font-size: var(--fs-lg);
        margin-top: .5rem;
    }

    .subtitulo {
        font-size: var(--fs-md);
    }

    .profissional {
        font-size: var(--fs-sm);
    }

    .btn,
    .btn-social,
    .btn-curriculo {
        font-size: var(--fs-xs);
        padding: var(--pad-sm) var(--pad-md);
        margin: auto;
    }

    .sobre {
        padding: 1.5rem 1rem;
    }

    .skills {
        padding: 2rem 1rem;
    }

    .projetos {
        padding: 2rem 1rem;
    }

    .contato {
        padding: 2rem 1rem;
    }

    .conteudo {
        gap: 1.5rem;
        padding: 1rem;
    }

    .sobre-mim,
    .header-skills,
    .titulo-skill,
    .contato-titulo {
        font-size: var(--fs-xl);
    }

    .sobre-texto,
    .paragrafo-conteudo,
    .contato-paragrafo {
        font-size: var(--fs-sm);
    }

    .conteudo-titulo,
    .projetos-titulo,
    .projeto-titulo {
        font-size: var(--fs-lg);
    }

    .subtitulo-skill,
    .subtitulo-projeto {
        font-size: var(--fs-md);
    }

    .skills-grupo,
    .skills-ilha {
        gap: var(--gap-md);
    }

    .skill-card {
        font-size: var(--fs-xs);
        padding: var(--pad-md);
    }

    .ilha-titulo {
        font-size: var(--fs-lg);
        margin-bottom: .05rem;
    }

    .button-skill {
        font-size: var(--fs-xs);
        padding: var(--pad-xs) .8rem;
    }

    .button-skill .nivel {
        font-size: var(--fs-sm);
    }

    .video-canal {
        width: 100%;
        height: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 1rem;
    }

    .video-canal iframe,
    .video-canal video {
        display: block;
        margin: 0 auto;
        max-width: 100%;
    }

    .canal {
        font-size: var(--fs-xs);
        padding: var(--pad-xs) .8rem;
    }

    .projeto {
        gap: var(--gap-md);
    }

    .projeto-img {
        width: 100%;
        height: auto;
    }

    figcaption {
        font-size: var(--fs-xxs);
    }

    .info-bloco {
        font-size: var(--fs-xs);
        width: 100%;
        max-width: 150px;
        min-width: 150px;
        padding: var(--pad-md);
        margin: 0 auto 1rem;
        align-items: center;
        text-align: center;
    }

    .stack,
    .funcionalidades,
    .desafios,
    .aprendizados {
        font-size: var(--fs-sm);
        padding-bottom: .5rem;
        text-align: center;
    }

    .lista-projeto {
        font-size: var(--fs-xs);
        text-align: center;
        gap: 2rem;
    }

    .btn-detalhes,
    .btn-repositorio,
    .btn-demo {
        font-size: var(--fs-xs);
        padding: var(--pad-xs) .8rem;
        margin: 1rem .2rem 0;
    }

    .whatsapp,
    .email,
    .linkedin {
        font-size: var(--fs-sm);
        margin: 0 .2rem;
        padding-bottom: 0;
    }

    .whatsapp i,
    .email i,
    .linkedin i {
        margin-right: 0.4em;
    }

    .footer {
        font-size: var(--fs-xs);
        padding: var(--pad-md);
    }

    .footer-texto {
        font-size: var(--fs-xs);
    }

    .footer-github,
    .footer-linkedin,
    .footer-youtube {
        font-size: 1.2rem;
        margin: 0 .2rem;
    }

    .voltar-ao-topo {
        font-size: 1.2rem;
        padding: var(--pad-sm);
    }
}

@media (min-width: 395px) and (max-width: 576px) {
    .container-header {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--gap-md);
        padding: var(--pad-md);
        width: 100%;
        box-sizing: border-box;
    }

    .menu {
        display: none !important;
    }

    .menu.ativo {
        display: flex !important;
        flex-direction: column;
        position: absolute;
        top: 60px;
        right: 20px;
        background: var(--bg-header);
        padding: var(--pad-md) calc(var(--pad-md) * 2);
        border-radius: .5rem;
        box-shadow: 0 4px 8px rgba(0, 0, 0, .2);
        z-index: var(--z-menu);
    }

    .menu li {
        margin: var(--gap-sm) 0;
    }

    .header-row {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        gap: 0;
        position: relative;
        min-height: 3.5rem;
    }

    .header-row>.btn-toggle-theme,
    .header-row>.btn-menu,
    .header-row>.btn-menu-fechar {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .header-row>.btn-toggle-theme {
        left: 0;
        z-index: 1;
        margin-left: .5rem;
    }

    .header-row>.btn-menu,
    .header-row>.btn-menu-fechar {
        right: 0;
        z-index: 2;
        margin: 0;
    }

    .btn-menu,
    .btn-menu-fechar {
        background: none;
        border: none;
        color: var(--cor-titulo);
        font-size: 1.5rem;
        padding: var(--pad-md);
        cursor: pointer;
    }

    .btn-menu:focus,
    .btn-menu-fechar:focus {
        outline: 2px solid var(--cor-titulo);
        outline-offset: 2px;
    }

    .btn-menu:hover,
    .btn-menu-fechar:hover {
        color: var(--btn-bg-hover-curriculo);
    }

    .btn-toggle-theme {
        margin: 0;
    }

    .logo {
        position: static;
        display: flex;
        align-items: center;
        justify-content: center;
        width: auto;
        margin: 0 auto;
    }

    .logo-img {
        max-width: 80px;
        max-height: 80px;
        display: block;
        margin: 1.5rem .5rem .5rem;
    }

    .foto-principal {
        width: 150px;
        height: 150px;
    }

    .titulo {
        font-size: var(--fs-xl);
        margin-top: .5rem;
    }

    .subtitulo {
        font-size: var(--fs-lg);
    }

    .profissional {
        font-size: var(--fs-sm);
    }

    .botoes-hero {
        gap: var(--gap-sm);
    }

    .btn,
    .btn-social,
    .btn-curriculo {
        font-size: var(--fs-sm);
    }

    .sobre {
        padding: 1.5rem 1rem;
    }

    .skills {
        padding: 2rem 2rem;
    }

    .projetos {
        padding: 2rem 1rem;
    }

    .contato {
        padding: 2rem 1rem;
    }

    .conteudo {
        gap: 1.5rem;
        padding: 1rem;
    }

    .sobre-mim,
    .header-skills,
    .titulo-skill,
    .contato-titulo,
    .projetos-titulo {
        font-size: var(--fs-xl);
    }

    .sobre-texto,
    .paragrafo-conteudo,
    .contato-paragrafo,
    .canal {
        font-size: var(--fs-md);
    }

    .conteudo-titulo {
        font-size: clamp(1.1rem, 2.6vw, 1.2rem);
    }

    .subtitulo-skill,
    .subtitulo-projeto,
    .subtitulo {
        font-size: var(--fs-lg);
    }

    .header-skills {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0;
        margin-bottom: 0;
        padding-bottom: 0;
    }

    .titulo-skill {
        text-align: center;
        margin-bottom: 0;
        padding-bottom: 0;
    }

    .subtitulo-skill {
        text-align: center;
        margin-top: 0;
        padding-bottom: 0;
    }

    .ilha-titulo {
        font-size: var(--fs-lg);
        margin-bottom: .05rem;
    }

    .skill-card {
        font-size: var(--fs-md);
        padding: var(--pad-md);
    }

    .button-skill {
        font-size: var(--fs-sm);
        padding: var(--pad-xs) .8rem;
    }

    .button-skill .nivel {
        font-size: var(--fs-md);
    }

    .video-canal {
        width: 100%;
        height: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 1rem;
    }

    .video-canal iframe,
    .video-canal video {
        display: block;
        margin: 0 auto;
        max-width: 100%;
    }

    .canal {
        padding: var(--pad-md);
    }

    .projeto-img {
        width: 100%;
        height: auto;
    }

    figcaption.projeto-descricao {
        font-size: var(--fs-xxs);
    }

    .projeto-titulo {
        font-size: clamp(1.1rem, 3vw, 1.2rem);
    }

    .info-bloco {
        font-size: var(--fs-sm);
        width: 100%;
        max-width: 180px;
        min-width: 180px;
        padding: var(--pad-md);
        margin: 0 auto 1rem;
        align-items: center;
        text-align: center;
    }

    .stack,
    .funcionalidades,
    .desafios,
    .aprendizados {
        font-size: var(--fs-md);
        padding-bottom: .5rem;
        text-align: center;
    }

    .lista-projeto {
        font-size: var(--fs-xs);
        text-align: center;
        gap: 2rem;
    }

    .btn-detalhes,
    .btn-repositorio,
    .btn-demo {
        font-size: var(--fs-sm);
        padding: var(--pad-xs) .8rem;
        margin: 1rem .2rem 0;
    }

    .whatsapp,
    .email,
    .linkedin {
        font-size: var(--fs-sm);
        margin: 0 .2rem;
        padding-bottom: 0;
    }

    .whatsapp i,
    .email i,
    .linkedin i {
        margin-right: 0.4em;
    }

    .footer {
        font-size: var(--fs-xs);
        padding: var(--pad-md);
    }

    .footer-texto {
        font-size: var(--fs-xs);
    }

    .footer-github,
    .footer-linkedin,
    .footer-youtube {
        font-size: 2rem;
        margin: 0 .2rem;
    }

    .footer-links {
        font-size: var(--fs-xs);
    }

    .voltar-ao-topo {
        font-size: 1.2rem;
        padding: var(--pad-sm);
    }
}

@media (min-width: 577px) and (max-width: 768px) {
    .container-header {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding: var(--pad-sm) var(--pad-sm) 0;
        width: 100%;
        box-sizing: border-box;
    }

    .header-row {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        width: 100%;
        gap: 0;
        position: relative;
        min-height: 3.2rem;
        padding: var(--pad-sm) 0;
    }

    .logo {
        position: static;
        display: flex;
        align-items: center;
        justify-content: center;
        width: auto;
        margin: 0 auto;
    }

    .logo-img {
        max-width: 70px;
        max-height: 70px;
        display: block;
        margin: auto;
        padding: 0;
    }

    .menu li a {
        font-size: var(--fs-md);
    }

    .btn-contato {
        font-size: var(--fs-md);
    }

    .btn-toggle-theme {
        font-size: var(--fs-md);
        width: 2rem;
        height: 2rem;
        margin: 0 0 0 1.2rem;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0;
    }

    .foto-principal {
        width: 130px;
        height: 130px;
    }

    .titulo {
        font-size: clamp(1.2rem, 3.2vw, 1.3rem);
        margin-top: .5rem;
        padding: 1rem 0;
    }

    .subtitulo {
        font-size: var(--fs-md);
    }

    .profissional {
        font-size: var(--fs-md);
    }

    .sobre {
        padding: 1rem;
    }

    .sobre-mim {
        font-size: clamp(1.2rem, 3.2vw, 1.3rem);
    }

    .sobre-texto {
        font-size: var(--fs-md);
        margin: 1rem;
    }

    .skills {
        padding: 1.5rem 1rem;
    }

    .header-skills {
        font-size: clamp(1.2rem, 3.2vw, 1.3rem);
    }

    .titulo-skill {
        font-size: clamp(1.2rem, 3.2vw, 1.3rem);
    }

    .skills-ilha {
        gap: 1rem;
    }

    .skill-card {
        font-size: var(--fs-md);
        padding: .8rem;
    }

    .nivel {
        font-size: var(--fs-md);
    }

    .conteudo {
        gap: 1rem;
        padding: 1rem;
    }

    .conteudo-titulo {
        font-size: clamp(1rem, 2.8vw, 1.1rem);
    }

    .paragrafo-conteudo {
        font-size: var(--fs-md);
    }

    .conteudo-destaque {
        font-size: var(--fs-md);
    }

    .video-canal {
        width: 100%;
        height: auto;
        display: flex;
        justify-content: center;
        align-items: center;
        padding: 1rem;
    }

    .btn-youtube {
        font-size: var(--fs-md);
        padding: .4rem .8rem;
    }

    .projetos {
        padding: 1rem;
    }

    .projeto {
        gap: 1rem;
    }

    .projeto-img {
        width: 90%;
        height: auto;
    }

    figcaption.projeto-descricao {
        font-size: var(--fs-sm);
    }

    .projeto-titulo {
        font-size: clamp(1rem, 2.8vw, 1.1rem);
    }

    .subtitulo-projeto {
        font-size: var(--fs-md);
    }

    .info-bloco {
        font-size: var(--fs-md);
        width: 100%;
        max-width: 220px;
        min-width: 120px;
        padding: 1rem;
        margin-bottom: 0;
        align-items: center;
        text-align: center;
    }

    .lista-projeto {
        font-size: var(--fs-md);
        gap: 1.5rem;
        text-align: center;
    }

    .stack,
    .funcionalidades,
    .desafios,
    .aprendizados {
        font-size: var(--fs-lg);
        padding-bottom: .5rem;
    }

    .botoes-projeto {
        gap: .5rem;
    }

    .btn-detalhes,
    .btn-repositorio,
    .btn-demo {
        font-size: var(--fs-md);
        padding: .4rem .8rem;
        margin: 1rem .2rem 0;
    }

    .contato {
        padding: 5rem 1rem;
    }

    .contato-titulo {
        font-size: clamp(1.2rem, 3.2vw, 1.3rem);
    }

    .contato-paragrafo {
        font-size: var(--fs-md);
    }

    .whatsapp,
    .email,
    .linkedin {
        font-size: var(--fs-sm);
    }

    .footer {
        font-size: var(--fs-sm);
        padding: 1rem;
    }

    .footer-links {
        font-size: var(--fs-md);
    }

    .footer-github,
    .footer-youtube,
    .footer-linkedin {
        font-size: 1.2rem;
        margin: 0 .2rem;
    }

    .voltar-ao-topo {
        font-size: 1.2rem;
        padding: .5rem;
    }
}

@media (min-width: 769px) and (max-width: 991px) {
    .container-header {
        padding: 1rem 1rem 0;
    }

    .menu a {
        font-size: var(--fs-md);
        padding-right: 1.5rem;
    }

    .btn-toggle-theme {
        font-size: var(--fs-md);
        width: 2rem;
        height: 2rem;
        aspect-ratio: 1/1;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 1rem;
    }

    .foto-principal {
        width: 160px;
        height: 160px;
    }

    .botoes-hero {
        gap: 1rem;
    }

    .titulo,
    .sobre-mim,
    .projeto-titulo,
    .titulo-skill,
    .contato-titulo {
        font-size: clamp(1.25rem, 2.2vw, 1.4rem);
    }

    .subtitulo,
    .subtitulo-projeto,
    .subtitulo-skill {
        font-size: var(--fs-lg);
    }

    .stack,
    .funcionalidades,
    .desafios,
    .aprendizados {
        font-size: var(--fs-lg);
        padding-bottom: .5rem;
    }

    .info-bloco {
        font-size: var(--fs-md);
        width: 100%;
        max-width: 250px;
        min-width: 150px;
        padding: 2rem 1.5rem;
        margin: 0 auto;
        align-items: center;
        text-align: center;
    }

    .whatsapp i,
    .email i,
    .linkedin i {
        margin-right: 0.4em;
    }

    .btn-demo,
    .btn-contato,
    .btn-repositorio,
    .btn-detalhes {
        font-size: var(--fs-md);
        padding: .5rem 1rem;
    }

    .video-canal iframe,
    .video-canal video {
        max-width: 80%;
    }

    .contato {
        padding: 3rem 1rem;
    }

    .footer-github,
    .footer-linkedin,
    .footer-youtube {
        font-size: 1.5rem;
        margin: 0 .2rem;
    }

    .voltar-ao-topo {
        font-size: 1.5rem;
        padding: .5rem;
    }
}

@media (min-width: 992px) {
    .menu {
        display: flex;
    }

    .menu a {
        font-size: var(--fs-md);
        padding-right: 2rem;
    }

    .btn-menu,
    .btn-menu-fechar {
        display: none;
    }

    .logo-img {
        max-width: 90px;
        max-height: 90px;
        margin-left: 1rem;
    }

    .btn-toggle-theme {
        font-size: var(--fs-md);
        width: 2rem;
        height: 2rem;
        aspect-ratio: 1/1;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 1rem;
    }

    .foto-principal {
        width: 180px;
        height: 180px;
    }

    .titulo {
        font-size: 2rem;
        padding: 1rem 0;
    }

    .subtitulo {
        font-size: var(--fs-lg);
    }

    .sobre-mim,
    .projeto-titulo,
    .titulo-skill,
    .contato-titulo {
        font-size: var(--fs-xl);
    }

    .info-bloco {
        font-size: var(--fs-md);
        width: 100%;
        max-width: 300px;
        min-width: 200px;
        padding: 3rem 2rem;
        margin: 0 auto;
        align-items: center;
        text-align: center;
    }

    .lista-projeto {
        font-size: var(--fs-md);
        gap: 1.5rem;
        text-align: center;
    }

    .stack,
    .funcionalidades,
    .desafios,
    .aprendizados {
        font-size: var(--fs-lg);
        padding-bottom: .5rem;
    }

    .whatsapp i,
    .email i,
    .linkedin i {
        margin-right: 0.4em;
    }
}

@media (max-width: 1100px) {
    .projeto-infos {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
        align-items: center;
    }

    .skill-card {
        font-size: var(--fs-xs);
        padding: .6rem;
    }

    .button-skill {
        font-size: var(--fs-sm);
    }

    .whatsapp i,
    .email i,
    .linkedin i {
        margin-right: 0.4em;
    }

    .footer {
        font-size: var(--fs-sm);
        padding: 1rem;
    }

    .footer-texto {
        font-size: var(--fs-sm);
    }

    .footer-links {
        font-size: var(--fs-md);
    }
}