body { font-family: 'Manrope', sans-serif; -webkit-font-smoothing: antialiased; letter-spacing: 0.01em; }
.font-tech { font-family: 'JetBrains Mono', monospace; }

/* ANTI-GLITCH ET CORRECTION LETTRES ATTACHÉES */
.scramble-target { visibility: hidden; opacity: 0; }
.char { display: inline-block; opacity: 0; transform: translateY(10px); transition: all 0.3s ease; letter-spacing: normal; }
.word { display: inline-block; white-space: nowrap; margin-right: 0.35em !important; }

/* TRANSITIONS DE PAGE */
@keyframes pageReveal {
    from { opacity: 0; transform: translateY(20px); filter: blur(10px); }
    to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
.page-view { display: none; opacity: 0; }
.page-view.active { display: block; animation: pageReveal 1s cubic-bezier(0.16, 1, 0.3, 1) forwards; } /* 1s au lieu de 0.8s */

/* ANIMATION EN CASCADE : GLISSEMENT PLUS LENT AVEC EFFET DE FLOU */
@keyframes blockSlideRight { 
    from { opacity: 0; transform: translateX(-30px); filter: blur(5px); } 
    to { opacity: 1; transform: translateX(0); filter: blur(0); } 
}
.reveal-block { opacity: 0; }
.active .reveal-block { animation: blockSlideRight 1s cubic-bezier(0.16, 1, 0.3, 1) forwards; } /* 1s au lieu de 0.7s */

.status-dot { width: 8px; height: 8px; background: #22c55e; border-radius: 50%; box-shadow: 0 0 10px #22c55e; animation: status-glow 2s infinite; }
@keyframes status-glow { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.3); opacity: 0.6; } }

/* CLASSE UNIQUE : LÉVITATION + AGRANDISSEMENT */
.hover-levitate {
    transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important;
    backdrop-filter: blur(10px);
    will-change: transform, box-shadow;
}
.hover-levitate:hover {
    transform: translateY(-6px) scale(1.03) !important;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1) !important;
    border-color: rgba(14, 165, 233, 0.4) !important;
    z-index: 10;
}
.dark .hover-levitate:hover {
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.3) !important;
    background: rgba(255, 255, 255, 0.05) !important;
    border-color: rgba(56, 189, 248, 0.5) !important;
}

/* STYLE INTERNE DES CARTES TECH */
.tech-card {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 0.4rem; padding: 0.6rem !important; min-height: 80px; border-radius: 0.75rem;
}
.dark .tech-card { border-color: #3f3f3f; }
.tech-logo { width: 30px; height: 30px; object-fit: contain; transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1); }
.hover-levitate:hover .tech-logo { transform: scale(1.15); } 

.nav-link.active { font-weight: 800; border-bottom: 2px solid currentColor; color: #111827 !important; }
.dark .nav-link.active { color: white !important; }
.project-gradient { background: linear-gradient(to top, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.4) 60%, transparent 100%); }

.badge-blue { background-color: rgba(240, 249, 255, 1); color: rgba(2, 132, 199, 1); border: 1px solid rgba(224, 242, 254, 1); }
.dark .badge-blue { background-color: rgba(12, 74, 110, 0.3); color: rgba(56, 189, 248, 1); border: 1px solid rgba(7, 89, 133, 0.5); }
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
