/* Base Resets & Hardware Acceleration */
body {
    background-color: #0A0A0A;
    color: #E4E4E7;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.will-change-transform { will-change: transform; }

/* Architectural & Material Textures */
.texture-carbon {
    background-image:
        linear-gradient(45deg, #0f0f0f 25%, transparent 25%, transparent 75%, #0f0f0f 75%, #0f0f0f),
        linear-gradient(45deg, #0f0f0f 25%, transparent 25%, transparent 75%, #0f0f0f 75%, #0f0f0f);
    background-color: #0a0a0a;
    background-size: 8px 8px;
    background-position: 0 0, 4px 4px;
    position: relative;
}

.texture-carbon::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, rgba(10,10,10,0.8), rgba(10,10,10,1));
    pointer-events: none;
}

.texture-speedlines {
    background: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 10px,
        rgba(255, 255, 255, 0.02) 10px,
        rgba(255, 255, 255, 0.02) 20px
    );
}

.clip-chamfer {
    clip-path: polygon(0 0, 100% 0, 100% calc(100% - 16px), calc(100% - 16px) 100%, 0 100%);
}

.clip-chamfer-reverse {
    clip-path: polygon(16px 0, 100% 0, 100% 100%, 0 100%, 0 16px);
}

.clip-slant {
    clip-path: polygon(0 0, 100% 0, calc(100% - 40px) 100%, 0 100%);
}

.mech-transition {
    transition: all 400ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.product-card:hover .product-img {
    transform: scale(1.05) translateX(10px);
}

.product-card:hover .stats-overlay {
    opacity: 1;
    transform: translateY(0);
}

::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #0a0a0a; }
::-webkit-scrollbar-thumb { background: #1a1a1a; }
::-webkit-scrollbar-thumb:hover { background: #E10600; }

.reveal-item {
    opacity: 0;
    transform: translateY(30px);
    transition: all 800ms cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Cart sidebar */
#cart-sidebar {
    transform: translateX(100%);
    transition: transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
}
body.cart-open #cart-sidebar {
    transform: translateX(0);
}
body.cart-open #cart-overlay {
    display: block;
}

/* Cookie banner */
#cookie-banner {
    transform: translateY(100%);
    transition: transform 400ms cubic-bezier(0.16, 1, 0.3, 1);
}
#cookie-banner.visible {
    transform: translateY(0);
}
