/* Custom scrollbars */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
::-webkit-scrollbar-track {
    background: #0a0a0a;
}
::-webkit-scrollbar-thumb {
    background: #2a2a2a;
    border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
    background: #444444;
}

/* Grid background pattern */
.bg-grid-pattern {
    background-size: 32px 32px;
    background-image: 
        linear-gradient(to right, rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
}

/* Blinking cursor effect */
.cursor-blink {
    animation: blink 1s step-start infinite;
}
@keyframes blink {
    50% { opacity: 0; }
}

/* Hero title hover effect */
.hero-title {
    display: inline-block;
}

@supports ((-webkit-background-clip: text) or (background-clip: text)) {
    .hero-title {
        background-image: linear-gradient(
            100deg,
            #fafafa 0%,
            #fafafa 42%,
            #ffffff 50%,
            #fafafa 58%,
            #fafafa 100%
        );
        background-size: 250% 100%;
        background-position: 100% 0;
        -webkit-background-clip: text;
        background-clip: text;
        -webkit-text-fill-color: transparent;
        transition: background-position 0.9s ease, filter 0.35s ease;
    }

    .hero-title:hover {
        background-position: 0% 0;
        filter: drop-shadow(0 0 16px rgba(255, 255, 255, 0.38));
        cursor: default;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-title,
    .hero-title:hover,
    .hero-visual,
    .hero-visual::after {
        transition: none;
    }
}

/* Hero visual frame hover effect */
.hero-visual {
    transition: border-color 0.4s ease, box-shadow 0.4s ease;
}

.hero-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        100deg,
        transparent 35%,
        rgba(255, 255, 255, 0.18) 50%,
        transparent 65%
    );
    transform: translateX(-120%);
    transition: transform 0.9s ease;
    pointer-events: none;
    z-index: 10;
}

.hero-visual:hover {
    border-color: #3c3c3c;
    box-shadow: 0 0 24px rgba(255, 255, 255, 0.18), 0 0 60px rgba(255, 255, 255, 0.08);
}

.hero-visual:hover::after {
    transform: translateX(120%);
}

/* Scanline effect optional */
.scanline {
    background: linear-gradient(
        to bottom,
        rgba(255,255,255,0),
        rgba(255,255,255,0) 50%,
        rgba(0, 0, 0, 0.3) 50%,
        rgba(0, 0, 0, 0.3)
    );
    background-size: 100% 4px;
}
