/* Custom Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #fcfbf9; }
::-webkit-scrollbar-thumb { background: #e5e5e5; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #a3a3a3; }
/* Selection */
::selection { background: #10b981; color: #fcfbf9; }
/* Reveal Animation */
.reveal { opacity: 0; transform: translateY(30px); transition: all 0.8s cubic-bezier(0.16, 1, 0.3, 1); }
.reveal.active { opacity: 1; transform: translateY(0); }
/* Cursor Glow */
.cursor-glow {
position: fixed;
width: 400px;
height: 400px;
background: radial-gradient(circle, rgba(14, 165, 233, 0.15) 0%, rgba(255,255,255,0) 60%);
border-radius: 50%;
pointer-events: none;
transform: translate(-50%, -50%);
z-index: 9999;
mix-blend-mode: multiply;
transition: opacity 0.3s ease;
}
/* Magnetic Hover */
.magnetic { transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1); }
/* Project Card Visuals */
.matrix-bg {
background-image: linear-gradient(0deg, rgba(16, 185, 129, 0.05) 1px, transparent 1px),
linear-gradient(90deg, rgba(16, 185, 129, 0.05) 1px, transparent 1px);
background-size: 20px 20px;
}
.scan-line {
position: absolute;
width: 100%;
height: 2px;
background: rgba(16, 185, 129, 0.5);
box-shadow: 0 0 10px rgba(16, 185, 129, 0.5);
animation: scan 3s linear infinite;
}
.typing-cursor::after {
content: '|';
animation: blink 1s step-end infinite;
}
@keyframes blink { 50% { opacity: 0; } }
