/* Grille laser 3D — bandeau bas de section (Three.js) */

.ns-laser-grid {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: clamp(160px, 24vh, 280px);
    z-index: 6;
    pointer-events: none;
    overflow: hidden;
    opacity: 1;
    -webkit-mask-image: linear-gradient(to top, #000 55%, transparent 100%);
    mask-image: linear-gradient(to top, #000 55%, transparent 100%);
}

.ns-laser-grid canvas {
    display: block;
    width: 100% !important;
    height: 100% !important;
}

.ns-hero .ns-laser-grid {
    z-index: 6;
}

.ns-leaderboard .ns-laser-grid {
    z-index: 2;
    height: clamp(140px, 18vh, 220px);
}

/* Fallback CSS si WebGL indisponible */
.ns-laser-grid.is-laser-fallback {
    background:
        linear-gradient(rgba(255, 45, 58, 0.5) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 45, 58, 0.35) 1px, transparent 1px);
    background-size: 42px 28px;
    background-position: center bottom;
    transform: perspective(280px) rotateX(62deg);
    transform-origin: center bottom;
    opacity: 0.55;
}

.ns-laser-grid--white.is-laser-fallback {
    background:
        linear-gradient(rgba(244, 247, 255, 0.45) 1px, transparent 1px),
        linear-gradient(90deg, rgba(244, 247, 255, 0.28) 1px, transparent 1px);
}

@media (max-width: 767px) {
    .ns-laser-grid {
        height: clamp(120px, 18vh, 180px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ns-laser-grid {
        display: none;
    }
}
