/* assets/css/style.css */

/* =========================================
   1. ANIMACJE POJAWIANIA SIĘ (SCROLL)
   Te klasy współpracują z IntersectionObserver w app.js
========================================= */

/* Zwykłe, delikatne wynurzanie (fade-in) */
.fade-in-section, 
.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    will-change: opacity, transform; /* Optymalizacja dla słabszych telefonów */
}

/* Klasa docelowa nadawana przez JS */
.fade-in-section.is-visible, 
.fade-in-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Dramatyczny wyjazd wielkiego nagłówka zza maski (Reveal) */
.reveal-text {
    overflow: hidden;
    display: inline-block;
}

.reveal-text span {
    display: inline-block;
    transform: translateY(110%);
    transition: transform 1s cubic-bezier(0.25, 1, 0.5, 1); /* Kinowe tempo */
}

.reveal-text.is-visible span {
    transform: translateY(0);
}


/* =========================================
   2. MARQUEE TICKER (Pasek z Ostatniej Chwili)
========================================= */

.marquee-container {
    overflow: hidden;
    white-space: nowrap;
}

.marquee-content {
    display: inline-flex;
    /* 30s to optymalna prędkość, żeby dało się to przeczytać */
    animation: marquee-scroll 30s linear infinite; 
    will-change: transform;
}

@keyframes marquee-scroll {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}


/* =========================================
   3. DETALE WIZUALNE GAZETY
========================================= */

/* Pulsująca kropka obok napisu "Live AI" na samej górze */
.blink-text {
    animation: blinker 1.5s cubic-bezier(0.5, 0, 1, 1) infinite alternate;
}

@keyframes blinker {
    0% { opacity: 1; }
    100% { opacity: 0.2; }
}

/* Wirtualna faktura papieru (odchudzony trik bez zewnętrznych JPG) */
#noise-overlay {
    position: fixed;
    top: 0; 
    left: 0; 
    width: 100vw; 
    height: 100vh;
    pointer-events: none; /* Kliknięcia przechodzą przez to na wylot */
    z-index: 9999;
    opacity: 0.04; /* Bardzo subtelny szum */
    /* Generujemy szum SVG zakodowany w Base64 - zero zapytań HTTP do serwera Mikrusa! */
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}