* { scrollbar-width: thin; scrollbar-color: #1e2d3d #0b1219; }
*::-webkit-scrollbar { width: 6px; }
*::-webkit-scrollbar-track { background: #0b1219; }
*::-webkit-scrollbar-thumb { background: #1e2d3d; border-radius: 3px; }

@keyframes radarSweep {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@keyframes pulse-ring {
    0% { transform: scale(0.8); opacity: 0.6; }
    50% { transform: scale(1.2); opacity: 0.2; }
    100% { transform: scale(0.8); opacity: 0.6; }
}
@keyframes blink { 0%,100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.cursor-blink { animation: blink 1s step-end infinite; }
.fade-in-up { animation: fadeInUp 0.5s ease-out forwards; opacity: 0; }
.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
.delay-4 { animation-delay: 0.4s; }
.delay-5 { animation-delay: 0.5s; }

body {
    background-color: #0b1219;
    background-image: url('../images/topo-pattern.jpg');
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

body::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(11, 18, 25, 0.82);
    z-index: 0;
    pointer-events: none;
}

body > * {
    position: relative;
    z-index: 1;
}

.grid-bg {
    background: transparent;
}

.nav-item { transition: all 0.2s ease; }
.nav-item:hover { background: rgba(34,197,94,0.08); }
.nav-item.active { background: rgba(34,197,94,0.15); }

.card-hover { transition: all 0.3s ease; border: 1px solid transparent; }
.card-hover:hover { border-color: rgba(34,197,94,0.2); transform: translateY(-2px); }

.page-section { display: none; }
.page-section.active { display: block; }

.timeline-line { position: relative; }
.timeline-line::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 24px;
    bottom: -20px;
    width: 2px;
    background: linear-gradient(to bottom, rgba(34,197,94,0.4), rgba(34,197,94,0.05));
}

.skill-bar { transition: width 1s ease-out; }

.tech-icon { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; }

.nav-item {
    justify-content: space-between;
}
.nav-dot {
    display: block;
    width: 0.5rem;
    height: 0.5rem;
    min-width: 0.5rem;
    border-radius: 9999px;
    background-color: #4ade80;
    flex-shrink: 0;
    margin-left: auto;
}
