/* Brutalist Carbon Grid Background - Configuration Variables */
:root {
    --bg-grid-size: 6;        /* Number of blocks (6x6 = fewer, bigger blocks) */
    --bg-block-size: 140px;   /* Much larger blocks */
    --bg-gap: 5px;           /* Bigger gaps for definition */
    --bg-carbon-base: #3a3a3a;
    --bg-carbon-light: #454545;
    --bg-carbon-dark: #2f2f2f;
    --bg-carbon-black: #1a1a1a;
    --bg-extrusion-depth: 25px;
    --bg-animation-duration: 0.8s;
    --bg-opacity: 0.35;
}

/* Background Grid Container - Fixed positioning behind content */
.brutalist-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: -10;
    overflow: hidden;
    pointer-events: none;
    opacity: var(--bg-opacity);
}

.brutalist-bg-grid {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotateX(3deg) rotateY(-2deg);
    transform-style: preserve-3d;
    perspective: 1500px;
    display: grid;
    grid-template-columns: repeat(var(--bg-grid-size), var(--bg-block-size));
    grid-template-rows: repeat(var(--bg-grid-size), var(--bg-block-size));
    gap: var(--bg-gap);
}

/* Background Grid Blocks */
.brutalist-bg-block {
    width: var(--bg-block-size);
    height: var(--bg-block-size);
    background: linear-gradient(135deg, 
        var(--bg-carbon-light) 0%, 
        var(--bg-carbon-base) 50%, 
        var(--bg-carbon-dark) 100%);
    border: 1px solid var(--bg-carbon-black);
    position: relative;
    transition: all var(--bg-animation-duration) cubic-bezier(0.2, 0, 0.1, 1);
}

.brutalist-bg-block::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: repeating-linear-gradient(
        45deg,
        transparent,
        transparent 1px,
        rgba(255, 255, 255, 0.02) 1px,
        rgba(255, 255, 255, 0.02) 2px
    );
}

.brutalist-bg-block::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 2px;
    right: 2px;
    bottom: 2px;
    background: radial-gradient(
        ellipse at 30% 30%,
        rgba(255, 255, 255, 0.05) 0%,
        transparent 50%
    );
}

/* Extruded Background Blocks */
.brutalist-bg-block.extruded {
    transform: translateZ(var(--bg-extrusion-depth));
    box-shadow: 
        0 0 0 1px var(--bg-carbon-black),
        calc(var(--bg-extrusion-depth) * -0.5) calc(var(--bg-extrusion-depth) * 0.5) 0 var(--bg-carbon-black),
        calc(var(--bg-extrusion-depth) * -1) calc(var(--bg-extrusion-depth) * 1) 8px rgba(0, 0, 0, 0.3);
    background: linear-gradient(135deg, 
        var(--bg-carbon-light) 0%, 
        var(--bg-carbon-base) 40%, 
        var(--bg-carbon-dark) 100%);
}

/* Animation classes for dynamic effects */
.brutalist-bg-block.animate-in {
    animation: blockFadeIn var(--bg-animation-duration) ease-out forwards;
}

.brutalist-bg-block.animate-out {
    animation: blockFadeOut var(--bg-animation-duration) ease-in forwards;
}

@keyframes blockFadeIn {
    from {
        opacity: 0;
        transform: translateZ(0) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translateZ(var(--bg-extrusion-depth)) scale(1);
    }
}

@keyframes blockFadeOut {
    from {
        opacity: 1;
        transform: translateZ(var(--bg-extrusion-depth)) scale(1);
    }
    to {
        opacity: 1;
        transform: translateZ(0) scale(1);
    }
}

/* Subtle parallax effect on scroll */
@media (prefers-reduced-motion: no-preference) {
    .brutalist-bg-grid {
        transition: transform 0.1s ease-out;
    }
}

/* Responsive adjustments for background */
@media (max-width: 1200px) {
    :root {
        --bg-grid-size: 12;
        --bg-block-size: 50px;
    }
}

@media (max-width: 768px) {
    :root {
        --bg-grid-size: 10;
        --bg-block-size: 40px;
        --bg-extrusion-depth: 8px;
        --bg-opacity: 0.3;
    }
}

@media (max-width: 480px) {
    :root {
        --bg-grid-size: 8;
        --bg-block-size: 30px;
        --bg-extrusion-depth: 6px;
        --bg-opacity: 0.25;
    }
}

/* High contrast mode adjustments */
@media (prefers-contrast: high) {
    :root {
        --bg-opacity: 0.2;
    }
}

/* Reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
    .brutalist-bg-block {
        transition: none;
    }
    
    .brutalist-bg-block.animate-in,
    .brutalist-bg-block.animate-out {
        animation: none;
    }
}