/* ─────────────────────────────────────────────────────────────────────────
   Marinuzzi & Associati — Background refinement (tema CHIARO, 2026)

   Sistema di sfondo atmosferico per le pagine del design system boutique
   (index, prodotti, lab, legale, referenze, esperto-intelligenza-
   artificiale-roma). Non tocca layout, tipografia, colori o comportamento:
   aggiunge solo layer fissi dietro al contenuto.

   Architettura:
   - body::before  → gradienti atmosferici (avorio caldo + velature navy)
   - body::after   → grana statica (tile PNG data-URI, mai animata)
   - .hero-field   → SVG inline nell'hero di index.html (linee di campo +
                     aura oro), animato solo con transform/opacity.

   Reversibile rimuovendo il <link> a questo file e il blocco SVG nell'hero.
   ───────────────────────────────────────────────────────────────────────── */

/* ── Layer 1 · atmosfera (tutte le pagine collegate) ─────────────────────
   Il background-color del body (#fbfaf8) si propaga al canvas della
   pagina: questi layer fissi con z-index negativo dipingono sopra il
   canvas ma sotto tutto il contenuto. pointer-events: none garantisce
   zero interferenze con form, cookie banner e navigazione. */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background:
        /* bagliore avorio caldo, alto centro — eco della carta */
        radial-gradient(120vmax 85vmax at 50% -25%, rgba(214, 178, 92, 0.14), transparent 55%),
        /* velatura fredda navy, bordo destro */
        radial-gradient(90vmax 75vmax at 108% 28%, rgba(13, 45, 79, 0.11), transparent 62%),
        /* velatura fredda blu, basso sinistra */
        radial-gradient(95vmax 80vmax at -12% 108%, rgba(26, 82, 118, 0.10), transparent 62%);
}

/* ── Layer 2 · grana statica ──────────────────────────────────────────────
   Tile PNG 96×96 con alpha per-pixel ≈0.02–0.05; opacity finale del layer
   0.55 → grana percepita ben sotto 0.03. Statica per contratto: mai
   animarla, niente feTurbulence (costoso, specie su Safari). */
body::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.9;
    background-image: url('data:image/png;base64,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');
    background-repeat: repeat;
    background-size: 96px 96px;
}

/* ── Hero di index.html · linee di campo + aura oro ──────────────────────
   isolation: isolate crea uno stacking context sull'hero (nessun effetto
   visivo) così l'SVG con z-index -1 dipinge sopra lo sfondo dell'hero ma
   sotto tutto il suo contenuto: l'area dietro al titolo resta la più
   pulita e il testo navy non viene mai attraversato in lettura. */
.hero { isolation: isolate; }

.hero-field {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
    user-select: none;
}

/* Deriva delle linee di campo: solo transform/opacity, alternate,
   easing morbido. Calibrata per essere percepibile guardando l'hero
   (cicli di 30-45 s, spostamenti di decine di px) restando elegante. */
.hero-field .field-drift-a {
    animation: hf-drift-a 42s ease-in-out infinite alternate;
    transform-origin: 50% 50%;
    will-change: transform;
}
.hero-field .field-drift-b {
    animation: hf-drift-b 34s ease-in-out infinite alternate;
    transform-origin: 50% 50%;
    will-change: transform;
}
.hero-field .field-breathe {
    animation: hf-breathe 28s ease-in-out infinite alternate;
}

@keyframes hf-drift-a {
    from { transform: translate3d(0, 0, 0) rotate(0deg); }
    to   { transform: translate3d(46px, -28px, 0) rotate(1.1deg); }
}
@keyframes hf-drift-b {
    from { transform: translate3d(0, 0, 0) rotate(0deg); }
    to   { transform: translate3d(-38px, 24px, 0) rotate(-1deg); }
}
@keyframes hf-breathe {
    from { opacity: 0.55; }
    to   { opacity: 1; }
}

/* ── Accessibilità · reduced motion ───────────────────────────────────────
   Sfondo completamente statico per chi lo richiede. */
@media (prefers-reduced-motion: reduce) {
    .hero-field .field-drift-a,
    .hero-field .field-drift-b,
    .hero-field .field-breathe {
        animation: none;
    }
}
