/* ==========================================================================
   Jacob Kukuk Portfolio - Retro CRT Theme Styles
   ========================================================================== */

/* CRT & Retro Effects */
body {
    background-color: #050505;
    overflow-x: hidden;
    cursor: crosshair;
}

/* The CRT Screen Container */
.crt-container {
    position: relative;
    min-height: 100vh;
    background-color: #120b29;
    background-image: 
        linear-gradient(0deg, transparent 24%, rgba(0, 255, 255, .05) 25%, rgba(0, 255, 255, .05) 26%, transparent 27%, transparent 74%, rgba(0, 255, 255, .05) 75%, rgba(0, 255, 255, .05) 76%, transparent 77%, transparent),
        linear-gradient(90deg, transparent 24%, rgba(0, 255, 255, .05) 25%, rgba(0, 255, 255, .05) 26%, transparent 27%, transparent 74%, rgba(0, 255, 255, .05) 75%, rgba(0, 255, 255, .05) 76%, transparent 77%, transparent);
    background-size: 50px 50px;
}

/* Scanlines */
.scanlines {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0) 50%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.2));
    background-size: 100% 4px;
    pointer-events: none;
    z-index: 50;
    will-change: transform;
    transform: translateZ(0);
}

/* Vignette / Screen Curvature Illusion */
.vignette {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: radial-gradient(circle, rgba(0,0,0,0) 60%, rgba(0,0,0,0.6) 100%);
    pointer-events: none;
    z-index: 51;
    will-change: transform;
    transform: translateZ(0);
}

/* Text Glow Effects */
.text-glow-pink { 
    text-shadow: 2px 2px 0px #880055, 0 0 10px #ff0099; 
}

.text-glow-cyan { 
    text-shadow: 2px 2px 0px #005555, 0 0 10px #00f3ff; 
}

.text-glow-green { 
    text-shadow: 2px 2px 0px #005500, 0 0 10px #39ff14; 
}

/* Box Styles */
.retro-box {
    background: rgba(0, 0, 0, 0.8);
    border: 4px solid #fff;
    box-shadow: 6px 6px 0px #ff0099;
    position: relative;
}

.retro-box::after {
    content: '';
    position: absolute;
    top: 4px;
    left: 4px;
    right: 4px;
    bottom: 4px;
    border: 2px solid #00f3ff;
    pointer-events: none;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 16px;
}

::-webkit-scrollbar-track {
    background: #000;
}

::-webkit-scrollbar-thumb {
    background: #00f3ff;
    border: 2px solid #000;
}

::-webkit-scrollbar-thumb:hover {
    background: #ff0099;
}

/* Boot Screen */
#boot-screen {
    position: fixed;
    inset: 0;
    background: #000;
    z-index: 100;
    font-family: 'VT323', monospace;
    color: #39ff14;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    font-size: 1.5rem;
}

/* Accessibility - Screen Reader Only */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

.sr-only.focus\:not-sr-only:focus {
    position: static;
    width: auto;
    height: auto;
    padding: inherit;
    margin: inherit;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* Reduced motion support for accessibility */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    .animate-flicker,
    .animate-pulse,
    .animate-bounce,
    .animate-blink {
        animation: none !important;
    }
    
    .scanlines {
        display: none;
    }
}

/* Print styles */
@media print {
    .scanlines,
    .vignette,
    #boot-screen,
    header,
    footer,
    nav {
        display: none !important;
    }
    
    body {
        background: white;
        color: black;
    }
    
    .crt-container {
        background: white;
    }
}

/* Focus visible styles for better accessibility */
a:focus-visible,
button:focus-visible {
    outline: 2px solid #00f3ff;
    outline-offset: 2px;
}
