/* ==========================================
   Local Font Faces
   ========================================== */
@font-face {
    font-family: 'Lalezar';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/Lalezar.ttf') format('truetype');
}

@font-face {
    font-family: 'VT323';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/VT323.ttf') format('truetype');
}

@font-face {
    font-family: 'Vazirmatn';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url('../fonts/Vazirmatn-300.ttf') format('truetype');
}

@font-face {
    font-family: 'Vazirmatn';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url('../fonts/Vazirmatn-400.ttf') format('truetype');
}

@font-face {
    font-family: 'Vazirmatn';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url('../fonts/Vazirmatn-700.ttf') format('truetype');
}

@font-face {
    font-family: 'Vazirmatn';
    font-style: normal;
    font-weight: 900;
    font-display: swap;
    src: url('../fonts/Vazirmatn-900.ttf') format('truetype');
}

/* Design Tokens & Variables */
:root {
    /* Color Palette - Cyberpunk Green Theme matching Admin Panel */
    --bg-primary: #0c0f12;
    --bg-secondary: #14191f;
    --bg-card: #10141a;

    --text-primary: #e2e8f0;
    --text-secondary: #8a99ad;
    --text-muted: #64748b;

    --accent-color: #1ef8a1;
    --accent-hover: #45ffb2;
    --accent-light: rgba(30, 248, 161, 0.08);

    --border-color: #1ef8a1;
    --border-width: 3px;
    
    /* Glow Effects */
    --glow-main: rgba(30, 248, 161, 0.35);
    --glow-accent: rgba(69, 255, 178, 0.55);

    /* Card Shadows - Solid DOS Black + Neon Glow */
    --pixel-shadow: 3px 3px 0px 0px #000000;
    --pixel-shadow-hover: 6px 6px 0px 0px #000000;
    --pixel-shadow-active: 1px 1px 0px 0px #000000;

    /* Fonts */
    --font-fa: 'Vazirmatn', sans-serif;
    --font-pixel: 'VT323', monospace;
    --font-retro: 'Lalezar', var(--font-fa);

    /* Transitions */
    --transition-fast: 0.15s steps(4);
    --transition-smooth: 0.3s ease;
}

/* Global Reset & Base */
*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    font-size: 16px;
    background-color: var(--bg-primary);
    background-image: radial-gradient(rgba(255, 255, 255, 0.025) 1.5px, transparent 1.5px);
    background-size: 20px 20px;
    height: 100%;
}

body {
    font-family: var(--font-fa);
    background-color: transparent;
    color: var(--text-primary);
    line-height: 1.8;
    overflow-x: hidden;
    height: 100%;
    image-rendering: pixelated;

    /* 8-bit Custom Cursor */
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M2,2 L2,18 L7,13 L12,18 L15,15 L10,10 L15,10 Z' fill='%232d2d2d' stroke='%23ffffff' stroke-width='2' stroke-linejoin='miter'/%3E%3C/svg%3E") 2 2, auto;
}

body::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: radial-gradient(circle, transparent 55%, rgba(0, 0, 0, 0.18) 100%);
    pointer-events: none;
    z-index: 9995;
}

/* Matrix Rain Background Canvas */
#matrixCanvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 0;
    pointer-events: none;
    opacity: 0.45;
}

/* Custom Selection style */
::selection {
    background-color: var(--accent-color);
    color: var(--bg-primary);
}

/* Scrollbar styling */
::-webkit-scrollbar {
    width: 12px;
}

::-webkit-scrollbar-track {
    background-color: var(--bg-secondary);
    background-image: radial-gradient(var(--text-muted) 25%, transparent 25%),
                      radial-gradient(var(--text-muted) 25%, transparent 25%);
    background-size: 4px 4px;
    background-position: 0 0, 2px 2px;
    border-left: var(--border-width) solid var(--border-color);
}

::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border: 2px solid var(--bg-secondary);
}

/* Typography & Links */
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--font-retro);
    font-weight: 400;
    line-height: 1.35;
}

a,
button,
input,
textarea,
select,
.tg-key-btn,
.filter-btn,
.control-btn,
.bezel-btn,
[role="button"],
.floating-pixel-icon,
.highlight-text,
.stat-badge {
    /* Pointer custom cursor */
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M8,2 L10,2 L10,6 L8,6 Z M8,6 L10,6 L10,8 L8,8 Z M4,8 L6,8 L6,14 L4,14 Z M6,14 L8,14 L8,16 L6,16 Z M8,16 L14,16 L14,18 L8,18 Z M14,14 L16,14 L16,16 L14,16 Z M16,8 L18,8 L18,14 L16,14 Z M12,8 L14,8 L14,14 L12,14 Z M10,8 L12,8 L12,10 L10,10 Z' fill='%2300a88f' stroke='%23ffffff' stroke-width='1.5'/%3E%3C/svg%3E") 8 2, pointer;
}

a {
    color: var(--accent-color);
    text-decoration: none;
    transition: color var(--transition-fast);
}

a:hover {
    color: var(--accent-hover);
}

.font-mono {
    font-family: var(--font-pixel), monospace;
    letter-spacing: 0.05em;
}

/* Inline SVG Icon default */
.pixel-icon {
    display: inline-block;
    vertical-align: middle;
    width: 24px;
    height: 24px;
}

/* App Layout Stickiness */
#app {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    box-sizing: border-box;
    position: relative;
    z-index: 9988;
}

.app-content {
    flex-grow: 1;
}

/* Containers */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
    width: 100%;
}

.grid-layout {
    display: grid;
    gap: 3rem;
}

/* DOS Visual Components */
.pixel-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-fa);
    font-weight: 700;
    font-size: 0.95rem;
    padding: 0.5rem 1.25rem;
    background-color: var(--bg-card);
    color: var(--text-primary);
    border: var(--border-width) solid var(--border-color);
    box-shadow: var(--pixel-shadow);
    user-select: none;
    transition: none; /* DOS updates are instant and tactile */
}

/* Bracket styling wrapper around button labels */
.pixel-btn::before {
    content: '[ ';
    font-family: var(--font-pixel);
    font-size: 1.1rem;
    opacity: 0.75;
}

.pixel-btn::after {
    content: ' ]';
    font-family: var(--font-pixel);
    font-size: 1.1rem;
    opacity: 0.75;
}

.pixel-btn:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0px 0px #000000, 0 0 10px var(--glow-main);
    background-color: var(--accent-color);
    color: #0c0f12 !important;
    border-color: var(--accent-hover);
}

.pixel-btn:hover svg {
    stroke: #0c0f12 !important;
    fill: #0c0f12 !important;
}

.pixel-btn:active {
    transform: translate(1px, 1px);
    box-shadow: 1px 1px 0px 0px #000000;
}

.btn-primary {
    background-color: var(--accent-color);
    color: #000000;
}

.btn-primary::before,
.btn-primary::after {
    opacity: 0.9;
}

.btn-primary:hover {
    background-color: var(--accent-hover);
    color: #000000;
    box-shadow: 4px 4px 0px 0px #000000, 0 0 14px var(--glow-accent);
}

.btn-secondary {
    background-color: var(--bg-card);
}

.pixel-card {
    background-color: var(--bg-card);
    border: var(--border-width) double var(--border-color); /* Double-line DOS border */
    box-shadow: var(--pixel-shadow);
    padding: 2.2rem 2rem 2rem 2rem;
    position: relative;
    outline: 1px solid rgba(30, 248, 161, 0.15); /* Thin interior frame line */
    outline-offset: -6px;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

/* Draw clean double-box styling indicators in the corners */
.pixel-card::before,
.pixel-card::after {
    font-family: var(--font-pixel), monospace;
    font-size: 14px;
    font-weight: bold;
    color: var(--accent-color);
    opacity: 0.6;
    position: absolute;
    pointer-events: none;
    line-height: 1;
    z-index: 2;
}

.pixel-card::before {
    content: '+';
    top: 4px;
    left: 6px;
}

.pixel-card::after {
    content: '+';
    top: 4px;
    right: 6px;
}

.pixel-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: 5px 5px 0px 0px #000000, 0 0 14px var(--glow-main);
}

/* ==========================================
   1. RETRO BOOT LOADER SCREEN (RTL / FARSI)
   ========================================== */
.boot-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--bg-primary);
    color: var(--accent-hover);
    z-index: 9991;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: opacity 0.4s ease, transform 0.6s cubic-bezier(0.77, 0, 0.175, 1);
    direction: rtl;
    text-align: right;
}

.boot-screen.slide-up {
    transform: translateY(-100%);
    opacity: 0;
}

.clean-loader {
    width: 90%;
    max-width: 320px;
    border: var(--border-width) solid var(--border-color);
    background-color: var(--bg-secondary);
    padding: 1.5rem;
    box-shadow: var(--pixel-shadow);
    text-align: right;
    outline: 1px solid rgba(0, 168, 143, 0.25);
    outline-offset: -5px;
    position: relative;
}

.clean-loader::before,
.clean-loader::after {
    content: '+';
    font-family: var(--font-pixel), monospace;
    font-size: 14px;
    font-weight: bold;
    color: var(--accent-color);
    opacity: 0.5;
    position: absolute;
    pointer-events: none;
    line-height: 1;
}

.clean-loader::before {
    top: 3px;
    left: 5px;
}

.clean-loader::after {
    top: 3px;
    right: 5px;
}

.loader-title {
    font-size: 1.15rem;
    font-weight: bold;
    color: var(--accent-hover);
    margin-bottom: 0.75rem;
    text-shadow: 2px 2px 0px #000;
}

.loader-bar-container {
    font-size: 0.95rem;
    color: var(--text-primary);
    letter-spacing: 1px;
}

#boot-progress {
    color: var(--accent-color);
}

/* CRT Screen Overlay & Permanent Scanlines */
.crt-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle, rgba(0, 0, 0, 0) 60%, rgba(0, 0, 0, 0.45) 100%);
    pointer-events: none;
    z-index: 10000;
}

.crt-phosphor-glow {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: radial-gradient(circle at center, rgba(0, 200, 168, 0.05) 0%, transparent 75%);
    z-index: 9988;
    pointer-events: none;
}

.crt-noise {
    position: fixed;
    top: -10px;
    left: -10px;
    width: calc(100vw + 20px);
    height: calc(100vh + 20px);
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.025'/%3E%3C/svg%3E");
    z-index: 9989;
    pointer-events: none;
    animation: crt-noise-anim 0.15s infinite steps(2);
}

@keyframes crt-noise-anim {
    0% { transform: translate(0, 0); }
    10% { transform: translate(-0.5%, -1%); }
    20% { transform: translate(1%, 0.5%); }
    30% { transform: translate(-1.5%, -1.5%); }
    40% { transform: translate(0.5%, 1.5%); }
    50% { transform: translate(-0.5%, 0.5%); }
    60% { transform: translate(1.5%, -0.5%); }
    70% { transform: translate(-1.5%, 1%); }
    80% { transform: translate(0.5%, -1%); }
    90% { transform: translate(-0.5%, 1.5%); }
    100% { transform: translate(0, 0); }
}

.crt-globe-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: 
        /* Heavy horizontal scanlines - 4px height */
        linear-gradient(
            rgba(18, 16, 16, 0) 50%, 
            rgba(0, 0, 0, 0.38) 50%
        ),
        /* Vertically aligned color phosphor subpixel layout - 3px width */
        linear-gradient(
            90deg, 
            rgba(255, 0, 0, 0.04), 
            rgba(0, 255, 0, 0.02), 
            rgba(0, 0, 255, 0.04)
        );
    background-size: 100% 4px, 3px 100%;
    z-index: 9990;
    pointer-events: none;
    display: block;
    animation: crt-flicker-anim 0.15s infinite, scanline-move-anim 14s linear infinite;
}

/* Rolling vertical sync refresh bar */
.crt-globe-overlay::after {
    content: " ";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: linear-gradient(rgba(18, 16, 16, 0) 0%, rgba(0, 255, 196, 0.06) 10%, rgba(18, 16, 16, 0) 20%);
    background-size: 100% 200%;
    animation: crt-bar-roll-anim 8s linear infinite;
    pointer-events: none;
    z-index: 9991;
}

@keyframes crt-bar-roll-anim {
    0% { background-position: 0 -100%; }
    100% { background-position: 0 100%; }
}

.crt-vignette {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    /* Diagonal CRT screen reflection glare + spherical shadow vignette */
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.01) 32%, transparent 32%);
    box-shadow: 
        inset 0 0 120px rgba(0, 0, 0, 0.9),
        inset 0 0 30px rgba(0, 255, 196, 0.05);
    z-index: 9992;
    pointer-events: none;
}

#crt-bezel-svg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9994;
    pointer-events: none;
    display: block;
}

@keyframes scanline-move-anim {
    from {
        background-position: 0 0, 0 0;
    }
    to {
        background-position: 0 100%, 0 0;
    }
}

@keyframes crt-flicker-anim {
    0% { opacity: 0.96; }
    50% { opacity: 1; }
    100% { opacity: 0.96; }
}

/* ==========================================
   2. HEADER & NAVIGATION
   ========================================== */
.app-header {
    border-bottom: var(--border-width) double var(--border-color);
    background-color: rgba(16, 20, 26, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    position: sticky;
    top: 0;
    z-index: 900;
    transition: background-color var(--transition-smooth), border-color var(--transition-smooth);
    padding: 6.5vw 4.5vw 1rem 4.5vw;
}

@media (max-width: 768px) {
    .app-header {
        padding: 6.5vw 4.5vw 0.75rem 4.5vw;
    }
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: auto;
    padding: 0.25rem 0;
}

.logo-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--text-primary);
}

.logo-link svg {
    animation: bounce-anim 2s infinite ease-in-out;
}

.logo-text {
    font-size: 1.45rem;
    font-family: var(--font-pixel);
    font-weight: 700;
    color: var(--accent-color);
    letter-spacing: 0.05em;
    text-shadow: 0 0 5px rgba(30, 248, 161, 0.35);
}

/* Pulsing Status LED */
.status-led-container {
    display: inline-flex;
    align-items: center;
    margin-right: 6px;
}

.status-led {
    display: inline-block;
    width: 6px;
    height: 6px;
    background-color: #24282c;
    border-radius: 0; /* DOS is square/blocky! */
    border: 1px solid #000;
}

.status-led.active {
    background-color: var(--accent-color);
    box-shadow: 0 0 6px var(--accent-color);
    animation: led-pulse 2s infinite steps(2);
}

@keyframes led-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

.main-nav ul {
    list-style: none;
    display: flex;
    gap: 0.85rem;
}

.nav-link {
    font-family: var(--font-fa);
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--text-secondary);
    padding: 0.35rem 0.8rem;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    transition: none; /* DOS text transitions are instant and tactile */
}

.nav-shortcut {
    color: var(--text-muted);
    font-size: 0.9rem;
    margin-left: 2px;
}

.nav-link:hover,
.nav-link.active {
    background-color: var(--accent-color);
    color: #0c0f12 !important; /* dark slate on neon green */
    box-shadow: 0 0 10px rgba(30, 248, 161, 0.45);
}

.nav-link:hover .nav-shortcut,
.nav-link.active .nav-shortcut {
    color: #0c0f12;
}

/* SFX Sound Controller */
.header-sfx {
    display: flex;
    align-items: center;
}

.sfx-btn {
    font-family: var(--font-fa);
    font-weight: 700;
    font-size: 0.85rem;
    background-color: rgba(20, 25, 31, 0.85);
    color: var(--text-secondary);
    border: 1px solid rgba(30, 248, 161, 0.35);
    padding: 0.3rem 0.75rem;
    display: flex;
    align-items: center;
    gap: 0.45rem;
    box-shadow: 2px 2px 0px 0px #000000;
    cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M8,2 L10,2 L10,6 L8,6 Z M8,6 L10,6 L10,8 L8,8 Z M4,8 L6,8 L6,14 L4,14 Z M6,14 L8,14 L8,16 L6,16 Z M8,16 L14,16 L14,18 L8,18 Z M14,14 L16,14 L16,16 L14,16 Z M16,8 L18,8 L18,14 L16,14 Z M12,8 L14,8 L14,14 L12,14 Z M10,8 L12,8 L12,10 L10,10 Z' fill='%2300a88f' stroke='%23ffffff' stroke-width='1.5'/%3E%3C/svg%3E") 8 2, pointer;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.sfx-btn:hover {
    background-color: var(--accent-color);
    color: #0c0f12 !important;
    box-shadow: 4px 4px 0px 0px #000000;
    border-color: var(--accent-color);
}

.sfx-btn:active {
    transform: translate(1px, 1px);
    box-shadow: 1px 1px 0px 0px #000000;
}

.sfx-led {
    display: inline-block;
    width: 8px;
    height: 8px;
    background-color: #3e0b0b;
    border: 1px solid #000;
    box-shadow: 0 0 3px #ff3333;
}

.sfx-led.active {
    background-color: var(--accent-color);
    box-shadow: 0 0 6px var(--accent-color);
}

.sfx-btn:hover .sfx-led {
    border-color: #0c0f12;
}

.sfx-btn:hover .sfx-led:not(.active) {
    background-color: #ff3333;
    box-shadow: 0 0 6px #ff3333;
}

@media (max-width: 768px) {
    .header-sfx {
        display: none;
    }
}

/* ==========================================
   3. SPA ROUTING SECTIONS
   ========================================== */
.spa-section {
    display: none;
    padding: 2rem 4.5vw 4.5vw 4.5vw;
    animation: fade-in-section 0.4s steps(5) forwards;
}

.spa-section.active {
    display: block;
}

@media (min-width: 769px) {
    .spa-section.active {
        display: flex;
        flex-direction: column;
        justify-content: center;
        min-height: calc(100vh - 120px);
        box-sizing: border-box;
    }
}

@keyframes fade-in-section {
    from {
        opacity: 0;
        transform: translateY(15px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================
   4. HOME/HERO SECTION
   ========================================== */
#home {
    position: relative;
    overflow: hidden;
}

/* Retro Moving Horizon Grid Background (3D Perspective) */
.hero-grid-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    pointer-events: none;
    perspective: 350px;
    overflow: hidden;
}

.grid-3d-plane {
    position: absolute;
    top: -20%;
    left: -60%;
    width: 220%;
    height: 220%;
    background-image:
        linear-gradient(rgba(0, 168, 143, 0.06) 2px, transparent 2px),
        linear-gradient(90deg, rgba(0, 168, 143, 0.06) 2px, transparent 2px);
    background-size: 60px 60px;
    transform: rotateX(70deg) rotateZ(var(--grid-tilt, 0deg));
    transform-origin: center top;
    animation: grid-scroll-3d 8s linear infinite;
    opacity: 0.6;
    transition: transform 0.5s cubic-bezier(0.1, 0.8, 0.3, 1);
}

@keyframes grid-scroll-3d {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 0 60px;
    }
}

.pixel-sun {
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    width: 140px;
    height: 140px;
    background: linear-gradient(to bottom, var(--accent-color) 0%, transparent 100%);
    border: 4px solid var(--border-color);
    box-shadow: 0 0 30px rgba(0, 168, 143, 0.1);
    background-image: linear-gradient(var(--accent-color) 0%,
            var(--accent-color) 40%,
            transparent 40%,
            transparent 46%,
            var(--accent-color) 46%,
            var(--accent-color) 62%,
            transparent 62%,
            transparent 70%,
            var(--accent-color) 70%,
            var(--accent-color) 80%,
            transparent 80%,
            transparent 88%,
            var(--accent-color) 88%,
            var(--accent-color) 93%,
            transparent 93%,
            transparent 98%,
            var(--accent-color) 98%,
            var(--accent-color) 100%);
    opacity: 0.12;
    z-index: 0;
    pointer-events: none;
}



.home-grid {
    grid-template-columns: 1.2fr 0.8fr;
    align-items: center;
    position: relative;
    z-index: 10;
}

@media (min-width: 769px) {
    #home .home-grid {
        transform: translateY(-3.5rem);
    }
}

@media (max-width: 992px) {
    .home-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .hero-visual-area {
        display: flex !important;
        justify-content: center;
        width: 100%;
        margin-top: 2rem;
    }

    .hero-text-area {
        text-align: center;
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .dev-stats-row {
        justify-content: center;
    }

    .hero-actions {
        justify-content: center;
        width: 100%;
    }
}

.badge-8bit {
    display: inline-block;
    font-family: var(--font-pixel), var(--font-fa);
    font-weight: bold;
    font-size: 1rem;
    background-color: var(--accent-light);
    color: var(--accent-color);
    padding: 0.25rem 0.75rem;
    border: 2px solid var(--accent-color);
    margin-bottom: 1rem;
}

.hero-title {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.highlight-text {
    color: var(--accent-color);
    transition: text-shadow var(--transition-fast), border-bottom-color var(--transition-fast);
    border-bottom: 2px dashed transparent;
    padding-bottom: 2px;
}

.highlight-text:hover {
    border-bottom-color: var(--accent-color);
    text-shadow: 0 0 10px rgba(0, 168, 143, 0.5);
}

.hero-subtitle {
    font-size: 1.5rem;
    color: var(--text-secondary);
    margin-bottom: 1.5rem;
    height: 2.2rem;
    display: flex;
    align-items: center;
}

.typing-text {
    color: var(--text-primary);
    border-left: 3px solid var(--accent-color);
    padding-left: 4px;
    margin-right: 6px;
    animation: caret-blink 0.8s infinite steps(2);
    font-weight: 700;
}

.hero-description {
    font-size: 1.15rem;
    color: var(--text-secondary);
    margin-bottom: 2rem;
    max-width: 600px;
}

.dev-stats-row {
    display: flex;
    gap: 1rem;
    margin-bottom: 2.5rem;
    flex-wrap: wrap;
}

.stat-badge {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
    padding: 0.4rem 0.8rem;
    font-size: 0.85rem;
    font-weight: 700;
    box-shadow: 2px 2px 0 0 #000000;
    display: flex;
    gap: 0.3rem;
    transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.stat-badge::before {
    content: '[';
    font-family: var(--font-pixel);
    color: var(--accent-color);
}

.stat-badge::after {
    content: ']';
    font-family: var(--font-pixel);
    color: var(--accent-color);
}

.stat-badge:hover {
    transform: translate(-2px, -2px);
    box-shadow: 4px 4px 0 0 #000000;
    background-color: rgba(30, 248, 161, 0.08);
}

.stat-label {
    color: var(--text-secondary);
}

.stat-value {
    color: var(--accent-color);
}

.hero-actions {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

/* ==========================================
   5. CRT MONITOR INTEGRATED DESIGN
   ========================================== */
.pixel-monitor-wrapper {
    width: 380px;
    /* Resized to be slightly larger */
    margin: 0 auto;
    transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* Physical Monitor Casing Shake */
.pixel-monitor-wrapper.monitor-shake-physical {
    animation: monitor-shake-anim 0.4s steps(6) forwards;
}

@keyframes monitor-shake-anim {
    0% {
        transform: translate(0, 0);
    }

    15% {
        transform: translate(-6px, 4px) scale(1.02);
    }

    30% {
        transform: translate(6px, -4px) scale(1.03);
    }

    45% {
        transform: translate(-5px, -3px) scale(1.01);
    }

    60% {
        transform: translate(4px, 4px) scale(1.02);
    }

    75% {
        transform: translate(-2px, 2px) scale(1.01);
    }

    90% {
        transform: translate(1px, -1px);
    }

    100% {
        transform: translate(0, 0);
    }
}

.monitor-screen {
    width: 380px;
    /* Proportionally larger */
    height: 290px;
    /* Proportionally larger */
    background-color: #080808;
    border: 8px solid var(--accent-color);
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
    padding: 10px;
    position: relative;
    overflow: hidden;
}

.monitor-screen::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 50% 15%, rgba(0, 168, 143, 0.15), transparent 60%);
    pointer-events: none;
    z-index: 4;
}

.monitor-screen::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(0, 168, 143, 0.1) 0%, rgba(0, 168, 143, 0.02) 30%, transparent 30%, transparent 100%);
    pointer-events: none;
    z-index: 5;
}

.monitor-inner {
    width: 100%;
    height: 100%;
    background-color: #000000; /* pitch black screen */
    border: 4px solid var(--accent-color); /* Retro green frame */
    padding: 8px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    transition: transform 0.2s ease, opacity 0.2s ease;
}

.monitor-inner::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--accent-color);
    mix-blend-mode: color;
    pointer-events: none;
    z-index: 10;
    transition: opacity 0.2s ease;
}

.monitor-inner.screen-off {
    opacity: 0.1;
    transform: scaleY(0.01) scaleX(0.01);
    background-color: #000 !important;
}

.monitor-inner.screen-off::after {
    opacity: 0;
}

.monitor-inner.in-game-mode {
    filter: contrast(1.1) brightness(1.05) saturate(1.1);
}

.monitor-inner.in-game-mode::after {
    opacity: 0;
}

.monitor-view-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

#monitor-terminal-view {
    filter: grayscale(100%) contrast(1.2) brightness(0.95);
}

/* Bezel Controls */
.monitor-bezel-controls {
    width: 380px;
    /* Proportionally larger */
    height: 42px;
    /* Proportionally larger */
    background-color: #0f0f0f;
    border-left: 8px solid var(--accent-color);
    border-right: 8px solid var(--accent-color);
    border-bottom: 8px solid var(--accent-color);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 12px;
}

.led-group {
    display: flex;
    align-items: center;
    gap: 6px;
}

.led-label {
    font-size: 0.6rem;
    color: var(--accent-color);
}

.power-led {
    width: 8px;
    height: 8px;
    background-color: #1a0808;
    border: 1px solid #111;
    transition: background-color 0.2s ease;
}

.power-led.active {
    background-color: var(--accent-hover);
    box-shadow: 0 0 6px var(--accent-hover);
}

.controls-group {
    display: flex;
    gap: 6px;
}

.bezel-btn {
    font-family: var(--font-fa);
    font-size: 0.75rem;
    font-weight: bold;
    padding: 2px 6px;
    background-color: #0c0c0c;
    color: var(--accent-hover);
    border: 1px solid var(--accent-color);
    cursor: pointer;
    box-shadow: 1px 1px 0 0 #000;
    transition: none;
}

.bezel-btn::before {
    content: '[ ';
    font-family: var(--font-pixel);
}

.bezel-btn::after {
    content: ' ]';
    font-family: var(--font-pixel);
}

.bezel-btn:hover {
    background-color: var(--accent-color);
    color: #0c0f12 !important;
    border-color: var(--accent-hover);
}

.bezel-btn:active {
    transform: translate(1px, 1px);
    box-shadow: 0px 0px 0 0 #000;
}

.bezel-btn.btn-red {
    background-color: #3a0808;
    color: #ff3333;
    border: 1px solid #bb2222;
}

.bezel-btn.btn-red:hover {
    background-color: #ff3333;
    color: #ffffff !important;
    border-color: #ff5555;
}

.bezel-btn.btn-yellow {
    background-color: #3a3308;
    color: #ffcc00;
    border: 1px solid #bb9900;
}

.bezel-btn.btn-yellow:hover, .bezel-btn.btn-yellow.active-paused {
    background-color: #ffcc00;
    color: #0c0f12 !important;
    border-color: #ffee33;
}



.pixel-art-avatar {
    width: 130px;
    /* Resized larger */
    height: 130px;
    /* Resized larger */
    margin: 0 auto;
    background-color: var(--bg-secondary);
    border: 4px solid var(--border-color);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.terminal-text {
    color: var(--accent-hover); /* bright teal text */
    font-size: 0.8rem;
    line-height: 1.4;
    direction: rtl;
    text-align: right;
    height: 90px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    flex-shrink: 0;
    flex-grow: 0;
}

.terminal-output {
    color: var(--text-primary); /* command-prompt off-white output */
}

.terminal-cursor {
    display: inline-block;
    color: #FFF;
    animation: caret-blink 0.6s infinite steps(2);
}

.monitor-stand {
    width: 70px;
    /* Proportionally larger */
    height: 26px;
    /* Proportionally larger */
    background-color: #0c0c0c;
    margin: 0 auto;
    border-left: var(--border-width) solid var(--accent-color);
    border-right: var(--border-width) solid var(--accent-color);
}

.monitor-base {
    width: 180px;
    /* Proportionally larger */
    height: 14px;
    background-color: #0c0c0c;
    margin: 0 auto;
    border-top: var(--border-width) solid var(--accent-color);
    border-left: var(--border-width) solid var(--accent-color);
    border-right: var(--border-width) solid var(--accent-color);
    box-shadow: var(--pixel-shadow);
}

/* ==========================================
   6. INTEGRATED SCREEN GAME STYLING
   ========================================== */
.game-score-board {
    display: flex;
    justify-content: space-between;
    background-color: var(--bg-secondary);
    color: var(--accent-hover);
    padding: 4px 8px;
    border-bottom: 2px double var(--border-color); /* Double-line DOS frame divider */
    font-size: 0.75rem;
    direction: rtl;
}

.score-item {
    font-weight: bold;
}

.score-item span::before {
    content: '[ ';
    font-family: var(--font-pixel);
    color: var(--text-muted);
}

.score-item span::after {
    content: ' ]';
    font-family: var(--font-pixel);
    color: var(--text-muted);
}

.game-canvas-area {
    position: relative;
    width: 100%;
    height: 190px;
    /* Resized canvas height */
    background-color: #000;
}

#gameCanvas {
    width: 100%;
    height: 100%;
    display: block;
}

.game-overlay-screen {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.overlay-inner {
    background-color: var(--bg-card);
    border: 3px double var(--border-color); /* Double border window popup */
    box-shadow: 3px 3px 0 0 #000;
    text-align: center;
    color: #FFF;
    padding: 1rem;
    max-width: 90%;
}

.overlay-inner h4 {
    font-size: 1.15rem;
    margin-bottom: 0.5rem;
    color: var(--accent-color);
    font-family: var(--font-pixel);
    letter-spacing: 0.05em;
}

.game-over-title {
    font-family: var(--font-pixel), var(--font-fa);
    font-size: 1.4rem;
    font-weight: bold;
    color: var(--accent-color);
    display: block;
    margin-bottom: 0.25rem;
}

.game-mini-desc {
    font-size: 0.65rem;
    color: #AEB6BF;
    margin-bottom: 0.6rem;
    max-width: 280px;
    line-height: 1.4;
    text-align: center;
}

.btn-mini {
    font-size: 0.75rem;
    padding: 0.25rem 0.75rem;
    border-width: 2px;
}

/* ==========================================
   7. PORTFOLIO SECTION
   ========================================== */
.section-header {
    text-align: center;
    margin: 0 auto 4rem auto;
    border: var(--border-width) double var(--border-color);
    background-color: var(--bg-secondary);
    padding: 1.5rem 2.5rem;
    display: block;
    max-width: fit-content;
    box-shadow: var(--pixel-shadow);
    outline: 1px solid rgba(0, 168, 143, 0.2);
    outline-offset: -5px;
}

.section-title {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
}

.section-subtitle {
    color: var(--text-secondary);
    font-size: 1.1rem;
}

.portfolio-filters {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 2.5rem;
    flex-wrap: wrap;
}

.filter-btn {
    padding: 0.4rem 1.8rem 0.4rem 1.15rem;
    font-size: 0.9rem;
    position: relative;
}

.filter-btn::before {
    content: '( )';
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    font-family: var(--font-pixel);
    font-size: 1.2rem;
    color: var(--text-muted);
    background: none;
    border: none;
    box-shadow: none;
    transition: color var(--transition-fast);
}

.filter-btn.active::before {
    content: '(•)';
    color: #0c0f12 !important;
    text-shadow: none;
    background: none;
    border: none;
    box-shadow: none;
}

.filter-btn.active {
    background-color: var(--accent-color);
    color: #000000 !important;
}

.portfolio-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 2.5rem;
}

.project-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.project-thumbnail {
    height: 180px;
    background-color: var(--bg-secondary);
    border-bottom: var(--border-width) solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.pixel-art-icon {
    font-size: 4rem;
    transition: transform var(--transition-smooth);
}

.project-card:hover .pixel-art-icon {
    transform: scale(1.15) rotate(5deg);
}

.project-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    font-family: var(--font-pixel), var(--font-fa);
    font-size: 0.85rem;
    background-color: var(--accent-color);
    color: #000000;
    padding: 0.15rem 0.5rem;
    border: 2px solid var(--accent-color);
}

.project-info {
    padding: 1.5rem;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}

.project-title {
    font-size: 1.35rem;
    margin-bottom: 0.75rem;
}

.project-desc {
    font-size: 0.95rem;
    color: var(--text-secondary);
    margin-bottom: 1.5rem;
    flex-grow: 1;
}

.project-techs {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 1.5rem;
}

.tech-tag {
    font-family: var(--font-pixel), var(--font-fa);
    font-size: 0.8rem;
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    padding: 0.1rem 0.4rem;
    border: 1px solid var(--border-color);
}

.project-link {
    align-self: flex-start;
    font-size: 0.9rem;
    font-weight: 700;
}

/* ==========================================
   8. CONTACT SECTION
   ========================================== */
.contact-container {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.contact-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 2.5rem;
    width: 100%;
    align-items: stretch;
}

.info-card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.info-desc {
    font-size: 1rem;
    color: var(--text-secondary);
    line-height: 1.8;
    margin-top: 1rem;
}

.quick-links {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-top: 2rem;
    width: 100%;
    flex-grow: 1;
}

.quick-link-btn {
    width: 100%;
    justify-content: flex-start;
    gap: 0.75rem;
    font-size: 0.95rem;
    transition: all var(--transition-fast);
}

.tg-btn:hover {
    background-color: #2481cc !important;
    color: #ffffff !important;
    border-color: #2481cc !important;
    box-shadow: 4px 4px 0px #000, 0 0 12px rgba(36, 129, 204, 0.45) !important;
}
.tg-btn:hover svg {
    fill: #ffffff !important;
    stroke: #ffffff !important;
}

.email-btn:hover {
    background-color: #e74c3c !important;
    color: #ffffff !important;
    border-color: #e74c3c !important;
    box-shadow: 4px 4px 0px #000, 0 0 12px rgba(231, 76, 60, 0.45) !important;
}
.email-btn:hover svg {
    fill: #ffffff !important;
    stroke: #ffffff !important;
}

.gh-btn:hover {
    background-color: #ffffff !important;
    color: #0c0f12 !important;
    border-color: #ffffff !important;
    box-shadow: 4px 4px 0px #000, 0 0 12px rgba(255, 255, 255, 0.45) !important;
}
.gh-btn:hover svg {
    fill: #0c0f12 !important;
    stroke: #0c0f12 !important;
}

.li-btn:hover {
    background-color: #0077b5 !important;
    color: #ffffff !important;
    border-color: #0077b5 !important;
    box-shadow: 4px 4px 0px #000, 0 0 12px rgba(0, 119, 181, 0.45) !important;
}
.li-btn:hover svg {
    fill: #ffffff !important;
    stroke: #ffffff !important;
}

.ig-btn:hover {
    background-color: #e1306c !important;
    color: #ffffff !important;
    border-color: #e1306c !important;
    box-shadow: 4px 4px 0px #000, 0 0 12px rgba(225, 48, 108, 0.45) !important;
}
.ig-btn:hover svg {
    fill: #ffffff !important;
    stroke: #ffffff !important;
}

.tw-btn:hover {
    background-color: #1da1f2 !important;
    color: #ffffff !important;
    border-color: #1da1f2 !important;
    box-shadow: 4px 4px 0px #000, 0 0 12px rgba(29, 161, 242, 0.45) !important;
}
.tw-btn:hover svg {
    fill: #ffffff !important;
    stroke: #ffffff !important;
}

.system-status {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 2rem;
    font-size: 0.85rem;
    color: var(--text-muted);
}

.status-dot-blink {
    width: 8px;
    height: 8px;
    background-color: var(--accent-hover);
    box-shadow: 0 0 6px var(--accent-hover);
    animation: blink-anim 1.5s infinite steps(2);
}

.pixel-form {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.form-group label {
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--text-primary);
    text-align: right;
}

.pixel-input {
    font-family: var(--font-fa);
    padding: 0.8rem 1rem;
    background-color: var(--bg-primary);
    color: var(--text-primary);
    border: var(--border-width) solid var(--border-color);
    outline: none;
    transition: background-color var(--transition-fast), border-color var(--transition-fast);
}

.pixel-input:focus {
    background-color: var(--bg-secondary);
    border-color: var(--accent-hover);
    box-shadow: 0 0 8px var(--glow-main);
}

.submit-btn {
    width: 100%;
}

.form-status-msg {
    margin-top: 1rem;
    font-size: 0.95rem;
    font-weight: 700;
    text-align: center;
    display: none;
    padding: 0.5rem;
    border: 2px solid transparent;
}

.form-status-msg.success {
    display: block;
    background-color: #0c2014;
    border-color: #2ECC71;
    color: #2ECC71;
}

.form-status-msg.error {
    display: block;
    background-color: #260f0d;
    border-color: #E74C3C;
    color: #E74C3C;
}

/* ==========================================
   9. PROJECT DETAILS MODAL & OVERLAYS
   ========================================== */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.85);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
}

.modal-content {
    max-width: 720px;
    width: 100%;
    animation: pop-modal 0.3s steps(4) forwards;
}

@keyframes pop-modal {
    from {
        transform: scale(0.85) translate(4px, 4px);
        opacity: 0;
    }

    to {
        transform: scale(1) translate(-4px, -4px);
        opacity: 1;
    }
}

.close-modal-btn {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    padding: 0.4rem 0.8rem;
    font-size: 0.9rem;
    background-color: var(--accent-light);
    border-color: var(--accent-color);
    color: var(--accent-color);
}

.close-modal-btn:hover {
    background-color: var(--accent-color);
    color: #000000;
}

.modal-inner-layout {
    display: grid;
    grid-template-columns: 0.4fr 1.6fr;
    gap: 2rem;
    margin-top: 1.5rem;
}

@media (max-width: 576px) {
    .modal-inner-layout {
        grid-template-columns: 1fr;
    }

    .modal-image-area {
        display: flex;
        justify-content: center;
    }
}

.modal-pixel-art {
    width: 80px;
    height: 80px;
    background-color: var(--bg-secondary);
    border: var(--border-width) solid var(--border-color);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
}

.modal-info-area {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.modal-project-title {
    font-size: 1.8rem;
    margin: 0.75rem 0;
}

.modal-project-desc {
    font-size: 1.05rem;
    color: var(--text-secondary);
    margin-bottom: 1.5rem;
}

.modal-tech-stack {
    margin-bottom: 1.5rem;
    width: 100%;
}

.tech-stack-label {
    font-weight: 700;
    font-size: 0.95rem;
    display: block;
    margin-bottom: 0.5rem;
}

.modal-actions {
    width: 100%;
}

.modal-actions .pixel-btn {
    width: 100%;
    justify-content: center;
    text-align: center;
}

.hidden {
    display: none !important;
}


/* ==========================================
   11. MOBILE/RESPONSIVE STYLES
   ========================================== */
/* Hamburger Button (Pixel Art / Retro) */
.hamburger-btn {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 32px;
    height: 24px;
    background: transparent;
    border: none;
    padding: 0;
    z-index: 2100;
}

.hamburger-bar {
    width: 100%;
    height: 4px;
    background-color: var(--border-color);
    box-shadow: 2px 2px 0px #000;
    transition: transform 0.25s steps(4), opacity 0.25s steps(4), background-color 0.25s steps(4);
}

.hamburger-btn.active .hamburger-bar:nth-child(1) {
    transform: translateY(10px) rotate(45deg);
    background-color: var(--accent-hover);
}

.hamburger-btn.active .hamburger-bar:nth-child(2) {
    opacity: 0;
}

.hamburger-btn.active .hamburger-bar:nth-child(3) {
    transform: translateY(-10px) rotate(-45deg);
    background-color: var(--accent-hover);
}

/* Mobile Navigation Menu Drawer */
.mobile-menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(10, 10, 10, 0.96);
    z-index: 2000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    padding: 1rem;
}

.mobile-menu-overlay.visible {
    opacity: 1;
    pointer-events: auto;
}

.mobile-menu-inner {
    width: 100%;
    max-width: 340px;
    border: var(--border-width) double var(--border-color);
    background-color: var(--bg-secondary);
    padding: 1.5rem 1.25rem;
    box-shadow: var(--pixel-shadow);
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    position: relative;
    outline: 1px solid rgba(0, 168, 143, 0.2);
    outline-offset: -5px;
    background-image: radial-gradient(rgba(0, 168, 143, 0.04) 15%, transparent 15%);
    background-size: 6px 6px;
}

.menu-hud-header {
    font-size: 0.95rem;
    color: var(--accent-hover);
    text-shadow: 2px 2px 0px #000;
    border-bottom: 2px dashed var(--border-color);
    padding-bottom: 0.5rem;
    text-align: center;
    direction: ltr;
}

.mobile-nav-menu ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.mobile-nav-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.15rem;
    color: var(--text-primary);
    padding: 0.6rem 1rem;
    border: 2px solid transparent;
    transition: all var(--transition-fast);
}

.mobile-nav-link .menu-num {
    color: var(--accent-color);
    font-weight: bold;
}

.mobile-nav-link .nav-icon {
    display: block !important;
    color: var(--text-secondary);
    transition: color var(--transition-fast);
}

.mobile-nav-link:hover,
.mobile-nav-link.active {
    color: var(--accent-hover);
    background-color: var(--accent-light);
    border-color: var(--accent-color);
    box-shadow: 3px 3px 0px #000;
    transform: translate(-2px, -2px);
}

.mobile-nav-link:hover .nav-icon,
.mobile-nav-link.active .nav-icon {
    color: var(--accent-hover);
}

.menu-hud-footer {
    border-top: 2px dashed var(--border-color);
    padding-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--text-secondary);
    text-align: center;
    direction: ltr;
}

@media (max-width: 768px) {
    #crt-bezel-svg {
        display: none !important;
    }

    .container {
        padding: 0 1.25rem;
    }

    .hero-title {
        font-size: calc(1.6rem + 1.5vw);
    }

    .hero-subtitle {
        font-size: 1.25rem;
        height: auto;
    }

    .hero-description {
        font-size: 1.05rem;
        margin-bottom: 1.5rem;
    }

    .dev-stats-row {
        gap: 0.5rem;
        margin-bottom: 1.8rem;
    }

    .stat-badge {
        padding: 0.3rem 0.6rem;
        font-size: 0.75rem;
    }

    .hero-actions {
        gap: 1rem;
    }

    .hero-actions .pixel-btn {
        width: 100%;
    }

    .spa-section {
        padding: 1.5rem 1.25rem 2.5rem 1.25rem;
    }

    .section-title {
        font-size: 2rem;
    }

    /* Hide desktop navigation and show hamburger */
    .app-header .main-nav {
        display: none !important;
    }

    .hamburger-btn {
        display: flex;
    }

    .app-header {
        height: auto;
        padding: 0.75rem 1.25rem;
        position: sticky;
        top: 0;
        width: 100%;
    }

    .header-container {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
        height: auto;
        padding: 0.25rem 0;
    }

    .logo-text {
        font-size: 1.25rem;
    }

    .sub-logo {
        display: none;
    }

    .app-content {
        padding-bottom: 0;
    }

    .modal-overlay {
        padding: 1.5rem 1rem 95px 1rem;
        align-items: flex-start;
        overflow-y: auto;
    }

    /* Monitor wrapper scaling on small screens */
    .pixel-monitor-wrapper {
        width: 100%;
        max-width: 340px;
        margin: 0 auto;
    }

    .monitor-screen {
        width: 100%;
        height: 260px;
    }

    .monitor-bezel-controls {
        width: 100%;
        height: 38px;
    }

    .pixel-art-avatar {
        width: 110px;
        height: 110px;
    }

    .game-canvas-area {
        height: 160px;
    }

    .modal-content {
        padding-top: 4.5rem;
    }

    /* Swipeable horizontal filters on mobile */
    .portfolio-filters {
        display: flex;
        justify-content: flex-start;
        gap: 0.6rem;
        margin-top: 1.5rem;
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.75rem;
        width: 100%;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .portfolio-filters::-webkit-scrollbar {
        display: none;
    }
    .filter-btn {
        flex-shrink: 0;
        scroll-snap-align: start;
        padding: 0.4rem 1.8rem 0.4rem 1rem;
        font-size: 0.85rem;
    }

    /* Portfolio Cards Mobile Optimizations */
    .portfolio-grid {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
        gap: 1.5rem;
    }

    .project-thumbnail {
        height: 130px;
    }

    .pixel-art-icon {
        font-size: 2.8rem;
    }

    .project-info {
        padding: 1.25rem 1rem;
    }

    .project-title {
        font-size: 1.25rem;
        margin-bottom: 0.5rem;
    }

    .project-desc {
        font-size: 0.85rem;
        line-height: 1.6;
        margin-bottom: 1rem;
    }

    .project-techs {
        margin-bottom: 1rem;
        gap: 0.4rem;
    }

    .tech-tag {
        font-size: 0.75rem;
        padding: 0.05rem 0.3rem;
    }

    .project-link {
        width: 100%;
        text-align: center;
    }

    /* Contact Mobile Optimizations */
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .info-card {
        margin-top: 0.5rem;
    }

    .pixel-form {
        gap: 1rem;
    }

    .pixel-input {
        padding: 0.7rem 0.9rem;
        font-size: 0.9rem;
    }
}

/* ==========================================
   12. RETRO ANIMATIONS
   ========================================== */
@keyframes blink-anim {

    0%,
    49% {
        opacity: 1;
    }

    50%,
    100% {
        opacity: 0;
    }
}

@keyframes bounce-anim {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-6px);
    }
}

@keyframes caret-blink {

    0%,
    49% {
        border-color: var(--accent-color);
    }

    50%,
    100% {
        border-color: transparent;
    }
}

/* Pixel Rain / Falling Star Particles */
.pixel-stars {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 1;
}

.pixel-star {
    position: absolute;
    width: 4px;
    height: 4px;
    background-color: var(--border-color);
    opacity: 0.3;
    animation: fall-star linear infinite;
}

@keyframes fall-star {
    from {
        transform: translateY(-10px);
    }

    to {
        transform: translateY(105vh);
    }
}

/* ==========================================
   13. MATRIX CANVAS & SHADER GLITCH EFFECTS
   ========================================== */
#matrixCanvas {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -2;
    opacity: 0.6;
    pointer-events: none;
    background-color: transparent;
}

/* Glitch text transitions */
.logo-link:hover .logo-text,
.highlight-text:hover {
    animation: text-glitch-anim 0.3s steps(2) infinite;
}

@keyframes text-glitch-anim {
    0% {
        text-shadow: 2px -1px 0 rgba(0, 168, 143, 0.7), -2px 1px 0 rgba(200, 200, 200, 0.3);
        transform: translate(1px, -1px);
    }
    25% {
        text-shadow: -2px 2px 0 rgba(0, 168, 143, 0.7), 2px -2px 0 rgba(200, 200, 200, 0.3);
        transform: translate(-1px, 1px);
    }
    50% {
        text-shadow: 1px -2px 0 rgba(0, 168, 143, 0.7), -1px 2px 0 rgba(200, 200, 200, 0.3);
        transform: translate(2px, -2px);
    }
    75% {
        text-shadow: -1px -1px 0 rgba(0, 168, 143, 0.7), 1px 1px 0 rgba(200, 200, 200, 0.3);
        transform: translate(-2px, -1px);
    }
    100% {
        text-shadow: 2px 1px 0 rgba(0, 168, 143, 0.7), -2px -1px 0 rgba(200, 200, 200, 0.3);
        transform: translate(0, 0);
    }
}

/* Screen Glitch Effect on Monitor Inner */
.monitor-inner.monitor-glitch {
    animation: monitor-glitch-anim 0.25s steps(2) infinite;
}

@keyframes monitor-glitch-anim {
    0% {
        filter: hue-rotate(0deg) saturate(1.2) contrast(1.1);
        transform: skew(0.5deg) scaleY(1);
    }
    33% {
        filter: hue-rotate(40deg) saturate(1.6) contrast(1.5);
        transform: skew(-1.5deg) scaleY(1.05) translateX(4px);
    }
    66% {
        filter: hue-rotate(-20deg) saturate(0.8) contrast(1.3);
        transform: skew(1.5deg) scaleY(0.95) translateX(-4px);
    }
    100% {
        filter: hue-rotate(0deg) saturate(1) contrast(1);
        transform: skew(0deg) scaleY(1);
    }
}

/* Global site-wide retro glitch */
#app.global-glitch-active {
    animation: global-glitch-anim 0.6s steps(4) forwards;
}

@keyframes global-glitch-anim {
    0% {
        filter: hue-rotate(90deg) contrast(1.8) saturate(1.8);
        transform: translate(3px, 2px) skewX(2deg);
    }
    15% {
        filter: invert(0.1) hue-rotate(-90deg) contrast(1.5);
        transform: translate(-3px, -2px) skewX(-3deg) scaleY(1.02);
    }
    30% {
        filter: saturate(2.5) contrast(2);
        transform: translate(6px, 0px) skewX(4deg);
    }
    45% {
        filter: hue-rotate(180deg) invert(0.2);
        transform: translate(-5px, 3px) skewY(1deg);
    }
    60% {
        filter: contrast(1.3) brightness(1.2);
        transform: translate(2px, -3px) skewX(-1deg) scaleY(0.98);
    }
    75% {
        filter: saturate(0.5) contrast(1.5);
        transform: translate(-1px, 2px) skewX(2deg);
    }
    90% {
        filter: hue-rotate(45deg);
        transform: translate(3px, -1px) scale(1.01);
    }
    100% {
        filter: none;
        transform: none;
    }
}

/* Retro typography shadow */
h1, h2, h3, .section-title, .hero-title, .card-title {
    text-shadow: 3px 3px 0px #000000;
    transition: text-shadow var(--transition-smooth);
}

h1:hover, h2:hover, h3:hover, .section-title:hover, .hero-title:hover, .card-title:hover {
    text-shadow: 3px 3px 0px #000000, 0 0 10px var(--glow-accent);
}

/* Subtle retro halftone/dithering dot screen */
.pixel-card,
.stat-badge {
    background-image: radial-gradient(rgba(0, 168, 143, 0.05) 15%, transparent 15%);
    background-size: 6px 6px;
}

/* Diagonal stripes pattern for project card header grids */
.project-thumbnail {
    background: repeating-linear-gradient(
        -45deg,
        var(--bg-secondary),
        var(--bg-secondary) 8px,
        rgba(0, 168, 143, 0.08) 8px,
        rgba(0, 168, 143, 0.08) 16px
    ) !important;
}

/* ==========================================
   15. CUSTOM CURSOR & PARTICLES
   ========================================== */

/* Hide default cursor on desktop screens (pointer: fine) */
@media (pointer: fine) {
    body, 
    a, 
    button, 
    input, 
    textarea, 
    select, 
    .tg-key-btn, 
    .filter-btn, 
    .control-btn, 
    .bezel-btn, 
    [role="button"], 
    .floating-pixel-icon, 
    .highlight-text, 
    .stat-badge {
        cursor: none !important;
    }
}

.custom-cursor-follower {
    position: fixed;
    top: 0;
    left: 0;
    pointer-events: none;
    z-index: 10000;
    display: none;
}

.custom-cursor-follower-inner {
    width: 14px;
    height: 14px;
    border: 2px solid var(--accent-color);
    box-sizing: border-box;
    border-radius: 0;
    transform: translate(-50%, -50%);
    transition: width 0.15s, height 0.15s, border-color 0.15s, transform 0.15s, background-color 0.15s;
    /* Retro CRT glow */
    box-shadow: 0 0 6px var(--accent-color);
}

/* 8-bit center dot */
.custom-cursor-follower-inner::before {
    content: '';
    position: absolute;
    top: 4px;
    left: 4px;
    width: 2px;
    height: 2px;
    background-color: var(--accent-color);
    transition: background-color 0.15s, top 0.15s, left 0.15s;
}

/* Hovering interactive state */
.custom-cursor-follower.hovering .custom-cursor-follower-inner {
    width: 24px;
    height: 24px;
    border-color: #00ffc4;
    box-shadow: 0 0 10px rgba(0, 255, 196, 0.8);
    animation: cursor-hover-spin 2.5s linear infinite;
}

.custom-cursor-follower.hovering .custom-cursor-follower-inner::before {
    background-color: #00ffc4;
    top: 9px;
    left: 9px;
}

/* Clicking state */
.custom-cursor-follower.clicking .custom-cursor-follower-inner {
    width: 10px;
    height: 10px;
    border-color: #ffffff;
    background-color: var(--accent-color);
    box-shadow: 0 0 12px #ffffff;
    transform: translate(-50%, -50%) scale(0.85);
    animation: none; /* stop spin when clicking */
}

.custom-cursor-follower.clicking .custom-cursor-follower-inner::before {
    background-color: #ffffff;
    top: 2px;
    left: 2px;
}

/* Trail particles */
.cursor-trail-particle {
    position: fixed;
    pointer-events: none;
    background-color: var(--accent-color);
    z-index: 9999;
    transform: translate(-50%, -50%);
    image-rendering: pixelated;
    animation: particle-fade-out 0.5s cubic-bezier(0.1, 0.8, 0.3, 1) forwards;
}

/* Click / Tap particles */
.cursor-click-particle {
    position: fixed;
    pointer-events: none;
    z-index: 10001;
    transform: translate(-50%, -50%);
    image-rendering: pixelated;
    box-shadow: 0 0 4px rgba(0, 255, 196, 0.5);
}

/* Click/Tap expanding CRT ring */
.cursor-click-ring {
    position: fixed;
    pointer-events: none;
    border: 2px solid #00ffc4;
    box-sizing: border-box;
    transform: translate(-50%, -50%);
    z-index: 10000;
    animation: click-ring-expand 0.4s cubic-bezier(0.1, 0.8, 0.3, 1) forwards;
}

@keyframes cursor-hover-spin {
    0% {
        transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

@keyframes particle-fade-out {
    0% {
        opacity: 0.8;
        transform: translate(-50%, -50%) scale(1);
    }
    100% {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.1);
    }
}

@keyframes click-ring-expand {
    0% {
        width: 0px;
        height: 0px;
        opacity: 1;
        border-width: 4px;
    }
    100% {
        width: 50px;
        height: 50px;
        opacity: 0;
        border-width: 1px;
        transform: translate(-50%, -50%) rotate(45deg);
    }
}

/* Page Transition Loader */
.page-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: var(--bg-primary); /* pitch black */
    z-index: 9991; /* inside TV screen overlay, below bezel */
    display: flex;
    align-items: center;
    justify-content: center;
    direction: rtl;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

.page-loader.visible {
    opacity: 1;
    pointer-events: auto;
}

.page-loader-inner {
    width: 90%;
    max-width: 400px;
    border: 3px solid var(--border-color);
    background-color: var(--bg-secondary);
    padding: 1.5rem;
    box-shadow: var(--pixel-shadow);
    text-align: right;
}

.loader-title {
    font-size: 1.1rem;
    font-weight: bold;
    color: var(--accent-hover); /* bright teal */
    margin-bottom: 1rem;
    text-shadow: 2px 2px 0px #000;
}

.loader-terminal-log {
    height: 85px;
    font-size: 0.8rem;
    color: var(--text-primary);
    background-color: #050505;
    border: 2px solid var(--border-color);
    padding: 8px;
    margin-bottom: 1rem;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}

.log-line {
    margin: 2px 0;
    color: var(--text-secondary);
}

.log-line.success {
    color: var(--accent-hover);
}

.loader-progress-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.9rem;
    color: var(--text-primary);
}

.loader-progress-bar {
    color: var(--accent-hover);
    letter-spacing: 2px;
}

/* Boot Loader additions */
.loader-prompt {
    font-size: 0.95rem;
    color: var(--accent-hover);
    text-align: center;
    margin-top: 1.5rem;
    animation: flash-text 1.2s infinite steps(2);
    cursor: pointer;
    border: 2px dashed var(--accent-hover);
    padding: 8px;
    background: rgba(0, 168, 143, 0.1);
    box-shadow: 0px 0px 8px rgba(0, 255, 196, 0.2);
}

@keyframes flash-text {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.45; }
}

.clean-loader .hidden {
    display: none !important;
}

/* Mobile Profile Card - Only visible on screens <= 992px */
.mobile-profile-card {
    display: none;
}

@media (max-width: 992px) {
    .mobile-profile-card {
        display: block;
        width: 100%;
        max-width: 320px;
        margin: 0 auto 1.5rem auto;
    }
    
    .profile-card-inner {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 12px;
        background-color: #000000 !important;
        border: 4px solid var(--accent-color) !important;
        box-shadow: 0 0 15px rgba(30, 248, 161, 0.45), var(--pixel-shadow) !important;
        position: relative;
        overflow: hidden;
    }
    
    /* CRT Scanline & Flicker overlay on mobile card */
    .profile-card-inner::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: 
            linear-gradient(
                rgba(18, 16, 16, 0) 50%, 
                rgba(0, 0, 0, 0.35) 50%
            );
        background-size: 100% 4px;
        pointer-events: none;
        z-index: 10;
        animation: crt-flicker-anim 0.15s infinite;
    }

    /* CRT Green blend overlay on mobile card */
    .profile-card-inner::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background-color: var(--accent-color);
        mix-blend-mode: color;
        pointer-events: none;
        z-index: 15;
    }
    
    .profile-avatar-wrapper {
        width: 90px;
        height: 90px;
        border: 2px solid var(--accent-color);
        margin-bottom: 0.75rem;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #000;
        z-index: 2;
    }
    
    .profile-avatar-wrapper img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        image-rendering: pixelated;
        filter: grayscale(100%) contrast(1.2) brightness(0.95);
    }
    
    .profile-details-terminal {
        width: 100%;
        text-align: right;
        background-color: #000000 !important;
        border: 1px solid rgba(30, 248, 161, 0.3);
        padding: 8px 10px !important;
        height: 140px;
        overflow: hidden;
        z-index: 2;
        box-sizing: border-box;
    }
    
    .spec-cmd {
        color: var(--accent-hover);
        margin-bottom: 0.35rem;
        direction: ltr;
        text-align: left;
        font-size: 0.85rem;
    }
    
    .spec-line {
        color: var(--text-primary);
        margin-bottom: 0.2rem;
        font-size: 0.8rem !important;
        line-height: 1.4;
    }
    
    .spec-key {
        color: var(--accent-color);
        font-weight: bold;
    }
    
    .spec-val {
        color: var(--text-primary);
    }

    #monitor-game-toggle {
        display: none !important;
    }
}

/* ==========================================
   16. ROUTE-SPECIFIC STYLES
   ========================================== */
@media (min-width: 769px) {
    /* Prevent vertical scrolling on home page */
    body.route-home,
    body.route-home #app {
        height: 100vh;
        overflow: hidden;
    }

    body.route-home .app-content {
        display: flex;
        flex-direction: column;
        overflow: hidden;
    }

    body.route-home #home.spa-section.active {
        flex-grow: 1;
        min-height: 0;
        height: 100%;
        padding-top: 0;
        padding-bottom: 5vh; /* bottom bezel spacing */
        justify-content: center;
        overflow: hidden;
    }

    body.route-home #home .home-grid {
        transform: translateY(-2rem); /* shift content up slightly to center it visually */
    }

    /* Reduce vertical spacing slightly on desktop home page to ensure fit on smaller displays */
    body.route-home .hero-title {
        font-size: 2.8rem;
        margin-bottom: 0.75rem;
    }
    body.route-home .hero-subtitle {
        font-size: 1.35rem;
        margin-bottom: 1.25rem;
        height: 2rem;
    }
    body.route-home .hero-description {
        font-size: 1.05rem;
        margin-bottom: 1.5rem;
    }
    body.route-home .dev-stats-row {
        margin-bottom: 2rem;
    }
}