/* ── Layout ────────────────────────────────────────────────
   Grid backgrounds, section containers, heading scales,
   noise overlay.
───────────────────────────────────────────────────────── */

/* Fine dot grid applied to <body> */
.grid-bg {
    background-image:
        linear-gradient(rgba(77,159,255,0.022) 1px, transparent 1px),
        linear-gradient(90deg, rgba(77,159,255,0.022) 1px, transparent 1px);
    background-size: 48px 48px;
}

/* Section padding */
.section { padding: 88px 24px; }

/* Heading scales */
.h1 { font-size: clamp(2.8rem, 9vw, 5.8rem); font-weight: 900; line-height: 1.02; letter-spacing: -0.025em; }
.h2 { font-size: clamp(2rem, 5vw, 3.6rem); font-weight: 900; line-height: 1.08; letter-spacing: -0.02em; }

/* Fixed noise texture overlay */
.noise {
    position: fixed; inset: 0; pointer-events: none; z-index: 999;
    opacity: 0.02;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: 256px 256px;
}
