/* --- Estilos da Timeline (copiados) --- */
        .item-oculto { display: none; }
        .item-oculto.visivel { display: block; animation: fadeInUp 0.6s ease-out; }
        .timeline-ver-tudo-container { text-align: center; margin-top: 40px; width: 100%; position: relative; z-index: 3; }
        
        /* --- Variáveis Globais (copiadas) --- */
        :root {
            --cor-preto-principal: #1D1F21;
            --cor-preto-secundario: #1D1F21;
            --cor-preto-card: #1D1F21;
            --cor-laranja-destaque: #DD663F;
            --cor-laranja-hover: #DD663F;
            --cor-laranja-neon: #FC5E01;
            --cor-amarelo-neon: #FC5E01;
            --cor-branco-texto: #F3EDDD;
            --cor-cinza-texto: #c9c3c2;
            --cor-borda-sutil: #431c10;
            --fonte-titulo: 'Titillium Web', sans-serif;
            --fonte-corpo: 'Titillium Web', sans-serif;
            --glow-shadow: 0 0 15px rgba(221, 102, 63);
            --glow-shadow-intense: 0 0 25px rgba(221, 102, 63), 0 0 100px rgba(208, 102, 61, 0.5);
            --transition-fast: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            --transition-medium: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        /* --- Estilos Base (copiados) --- */
        * { margin: 0; padding: 0; box-sizing: border-box; }
        html { scroll-behavior: smooth; }
        body {
            background-color: var(--cor-preto-principal);
            color: var(--cor-branco-texto);
            font-family: var(--fonte-corpo);
            line-height: 1.7;
            overflow-x: hidden;
            background-image: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(208, 102, 61, 0.03) 2px, rgba(208, 102, 61, 0.03) 4px);
        }
        .container { width: 90%; max-width: 1200px; margin: 0 auto; }
        h1, h2, h3, h4 { font-family: var(--fonte-titulo); font-weight: 700; margin-bottom: 20px; }
        
        h2 {
            font-size: 3.5rem;
            text-align: center;
            margin-bottom: 60px;
            position: relative;
            background: linear-gradient(135deg, var(--cor-laranja-destaque), var(--cor-amarelo-neon), var(--cor-branco-texto));
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
            text-transform: uppercase;
            letter-spacing: 4px;
            filter: drop-shadow(0 0 10px rgba(208, 102, 61, 0.3));
            line-height: 1.2; 
        }
        h2::after {
            content: '';
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            bottom: -15px;
            width: 0px;
            height: 4px;
            background: linear-gradient(90deg, transparent, var(--cor-laranja-destaque), transparent);
            box-shadow: 0 0 20px var(--cor-laranja-destaque);
            transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
        }
        section.visible h2::after { width: 200px; }
        p { color: var(--cor-cinza-texto); margin-bottom: 20px; font-size: 1.1rem; }
        a { color: var(--cor-laranja-destaque); text-decoration: none; transition: var(--transition-fast); }
        a:hover { color: var(--cor-laranja-hover); text-shadow: 0 0 10px var(--cor-laranja-hover); }
        section { padding: 120px 0; border-bottom: 1px solid var(--cor-borda-sutil); overflow: hidden; position: relative; }
        .particles-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; z-index: -1; opacity: 0.3; }
        .particle { position: absolute; width: 2px; height: 2px; background: var(--cor-laranja-destaque); border-radius: 50%; animation: float-particle 10s linear infinite; }
        @keyframes float-particle { 0%{transform:translateY(100vh) translateX(0);opacity:0} 10%{opacity:1} 90%{opacity:1} 100%{transform:translateY(-100vh) translateX(100px);opacity:0} }
        [data-animation] { opacity: 0; transition: opacity 0.8s ease, transform 0.8s ease; }
        [data-animation="fade-in"] { transform: translateY(40px); }
        .visible[data-animation] { opacity: 1; transform: translate(0, 0) scale(1); }

        /* --- Tela de Carregamento (Preloader) --- */
#preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* Um fundo sólido escuro é mais profissional */
    background: #151515; 
    z-index: 9999;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    /* Transição de fade-out quando sumir */
    transition: opacity 0.8s ease, visibility 0.8s ease; 
    opacity: 1;
    visibility: visible;
}

.loading-logo {
    margin-bottom: 30px;
}

.loading-logo img {
    /* Animação suave de pulsação no logo */
    animation: pulse-logo 1.5s ease-in-out infinite;
}

/* Animação de pulsação suave para o logo */
@keyframes pulse-logo {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.05); opacity: 0.8; }
}

/* Container da barra de progresso (o trilho) */
.loading-bar-container {
    width: 80%;
    max-width: 300px;
    height: 8px;
    background: #333; /* Cor do trilho */
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 20px;
}

/* Barra de progresso interna (a que cresce) */
#loading-bar {
    width: 0%; /* Começa em 0% */
    height: 100%;
    /* Usa as cores do seu site para a barra */
    background: linear-gradient(90deg, var(--cor-laranja-destaque), var(--cor-amarelo-neon));
    border-radius: 4px;
    /* Transição suave para o crescimento da barra */
    transition: width 0.2s ease-out; 
}

/* Texto da porcentagem */
#loading-percentage {
    font-family: var(--fonte-titulo);
    font-size: 1.5rem;
    color: var(--cor-laranja-destaque);
    letter-spacing: 2px;
}
/* --- Fim dos estilos do Preloader --- */

        /* --- Header/Nav --- */
        .header { background: linear-gradient(180deg, rgba(21, 21, 21, 0.95), rgba(21, 21, 21, 0.7)); position: fixed; width: 100%; top: 0; left: 0; z-index: 1000; transition: all var(--transition-medium); backdrop-filter: blur(15px) saturate(180%); -webkit-backdrop-filter: blur(15px) saturate(180%); border-bottom: 2px solid transparent; height: 90px; }
        .header.scrolled { background: linear-gradient(180deg, rgba(21, 21, 21, 0.98), rgba(21, 21, 21, 0.95)); height: 75px; border-bottom-color: var(--cor-laranja-destaque); box-shadow: 0 5px 30px rgba(208, 102, 61, 0.3); }
        .navbar { display: flex; justify-content: space-between; align-items: center; height: 100%; padding: 0 5%; gap: 2rem; }
        .logo { height: 55px; transition: all var(--transition-fast); filter: drop-shadow(0 0 10px rgba(208, 102, 61, 0.5)); }
        .header.scrolled .logo { height: 50px; }
        .logo:hover { transform: scale(1.15) rotate(-5deg); filter: drop-shadow(0 0 20px rgba(208, 102, 61, 0.9)) drop-shadow(0 0 30px rgba(255, 221, 0, 0.5)); }
        .nav-menu { list-style: none; display: flex; gap: 30px; }
        .nav-link { color: var(--cor-branco-texto); text-decoration: none; font-family: var(--fonte-titulo); font-weight: 500; font-size: 1rem; position: relative; padding: 8px 0; transition: color var(--transition-fast); text-transform: uppercase; letter-spacing: 1px; }
        .nav-link::after { content: ''; position: absolute; width: 0; height: 3px; background: linear-gradient(90deg, var(--cor-laranja-destaque), var(--cor-amarelo-neon)); bottom: -8px; left: 50%; transform: translateX(-50%); transition: width 0.4s cubic-bezier(0.25, 1, 0.5, 1); box-shadow: 0 0 10px var(--cor-laranja-destaque); }
        .nav-link:hover, .nav-link.active { color: var(--cor-laranja-destaque); text-shadow: 0 0 10px rgba(208, 102, 61, 0.8); }
        .nav-link:hover::after, .nav-link.active::after { width: 100%; }
        .hamburger { display: none; cursor: pointer; z-index: 1002; }
        .bar { display: block; width: 28px; height: 3px; margin: 6px auto; transition: all var(--transition-medium); background: linear-gradient(90deg, var(--cor-laranja-destaque), var(--cor-amarelo-neon)); border-radius: 2px; box-shadow: 0 0 2px var(--cor-laranja-destaque); }
        
        /* --- Estilos Seção Explore 3D --- */
        #explore-3d {
            background: linear-gradient(180deg, var(--cor-preto-secundario), var(--cor-preto-principal));
            text-align: center;
        }
        model-viewer {
            width: 100%;
            height: 700px;
            margin: 20px auto;
            border-radius: 20px;
            border: 3px solid var(--cor-laranja-destaque);
            --poster-color: transparent;
            background-image: url('images/3d-bg.png');
            background-size: cover;
            box-shadow: 0 0 50px rgba(208, 102, 61, 0.4), inset 0 0 30px rgba(208, 102, 61, 0.3);
        }
        /* Os estilos .hotspot e .annotation foram removidos pois o iframe não os utiliza */

        /* --- Footer --- */
        .footer { background-color: #151515; text-align: center; padding: 50px 20px; border-top: 4px solid var(--cor-laranja-destaque); box-shadow: 0 -5px 30px rgba(208, 102, 61, 0.3); }
        .social-links a { color: var(--cor-branco-texto); font-size: 2rem; margin: 0 20px; display: inline-block; transition: all var(--transition-fast); }
        .social-links a:hover { color: var(--cor-laranja-destaque); transform: translateY(-8px) scale(1.2); text-shadow: var(--glow-shadow); }
        .footer p { margin-top: 30px; }
        
        /* --- Back to Top --- */
        #back-to-top { position: fixed; bottom: 30px; right: 30px; background: linear-gradient(135deg, var(--cor-laranja-destaque), var(--cor-laranja-neon)); color: #fbfbfb; width: 55px; height: 55px; border-radius: 50%; display: flex; justify-content: center; align-items: center; text-decoration: none; font-size: 1.8rem; opacity: 0; visibility: hidden; transition: all var(--transition-fast); z-index: 999; border: 2px solid var(--cor-amarelo-neon); }
        #back-to-top.show { opacity: 1; visibility: visible; }
        #back-to-top:hover { transform: scale(1.15) rotate(360deg); box-shadow: var(--glow-shadow-intense); }

        /* --- Animações --- */
        @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } }

        /* --- Media Queries --- */
        @media (max-width: 992px) {
            h2 { font-size: 2.8rem; }
        }
        @media (max-width: 768px) {
            h2 { font-size: 2.2rem; }
            section { padding: 80px 0; }
            .nav-menu { position: fixed; left: -100%; top: 0; height: 100vh; gap: 0; flex-direction: column; background-color: rgba(21,21,21,0.95); backdrop-filter: blur(15px); width: 100%; text-align: center; transition: 0.5s cubic-bezier(0.7, 0, 0.3, 1); z-index: 1001; justify-content: center; }
            .nav-menu.active { left: 0; }
            .nav-item { padding: 20px 0; width: 100%; }
            .hamburger { display: block; }
            .hamburger.active .bar:nth-child(2) { opacity: 0; }
            .hamburger.active .bar:nth-child(1) { transform: translateY(9px) rotate(45deg); }
            .hamburger.active .bar:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
        }

        /* --- Estilos da Página 3D --- */
        #explore-3d {
            padding-top: 150px; 
            min-height: 100vh; 
            border-bottom: none; 
        }
        @media (max-width: 768px) {
            #explore-3d {
                padding-top: 120px;
            }
        }

            /* Estilo padrão (PC/Desktop) */
        model-viewer {
            height: 600px; /* Altura original para computador */
        }

        /* Regra para Celular (telas menores que 768px) */
        @media (max-width: 768px) {
            model-viewer {
                height: 60vh !important; /* Muda para 60% da altura da tela no celular */
            }
        }

        /* --- ESTILOS DOS CRÉDITOS (RODAPÉ) --- */

        .credits {
            margin-top: 15px;
            font-size: 0.85rem; /* Um pouco menor que o texto padrão para ficar sutil */
            color: var(--cor-cinza-texto); /* Usa a cor cinza do seu tema */
            letter-spacing: 0.5px;
            opacity: 0.8;
        }

        /* O Link dos Nomes */
        .dev-link {
            color: var(--cor-cinza-texto); /* Começa cinza (oculto) */
            text-decoration: none;
            font-weight: 700; /* Negrito para destacar levemente */
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            position: relative;
            padding-bottom: 2px;
        }

        /* Efeito Hover (Quando passa o mouse) */
        .dev-link:hover {
            color: var(--cor-laranja-destaque); /* Vira laranja */
            text-shadow: 0 0 10px rgba(221, 102, 63, 0.6); /* Brilho neon */
            cursor: pointer;
        }

        /* Sublinhado animado que aparece no hover */
        .dev-link::after {
            content: '';
            position: absolute;
            width: 0;
            height: 1px;
            bottom: 0;
            left: 0;
            background-color: var(--cor-laranja-destaque);
            transition: width 0.3s ease;
        }

        .dev-link:hover::after {
            width: 100%;
        }

        /* Estilo do separador "| DevOps" */
        .division-tag {
            font-size: 0.8rem;
            color: #666; /* Um cinza mais escuro para dar menos destaque que os nomes */
            margin-left: 5px;
            font-weight: 400;
        }