/* --- 1. БАЗОВІ НАЛАШТУВАННЯ --- */
/* Скидаємо відступи, щоб браузери не додавали своїх "сюрпризів" */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    /* ТВОЇ ВАЖЕЛІ КЕРУВАННЯ */
    --pattern-scale: 0.4;      /* Масштаб на десктопі (1 = 500x200px) */
    --animation-speed: 15s;  /* Швидкість (час одного циклу анімації) */
    
    /* Автоматичний розрахунок реальних розмірів */
    --item-width: calc(500px * var(--pattern-scale));
    --item-height: calc(200px * var(--pattern-scale));
}

body {
    /* Темний колір підкладки, якщо патерн ще вантажиться */
    background-color: #000; 
    color: #fff;
    font-family: sans-serif;
    /* Забороняємо горизонтальний скрол сторінки */
    overflow-x: hidden;
}

/* --- 2. ЛОГІКА АНІМОВАНОГО ФОНУ --- */
.pattern-background {
    position: fixed; /* "Прибиваємо" фон до екрану */
    top: 0;
    left: 0;
    width: 100vw;
    height: 100svh; /* svh - динамічно враховує панелі інструментів на мобільних */
    z-index: -1; /* Відправляємо шар на самий задній план */
    
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.pattern-row {
    width: 100%;
    height: var(--item-height);
    background-size: var(--item-width) var(--item-height);
    background-repeat: repeat-x; /* Ключова фішка: безкінечне дублювання по ширині */
    flex-shrink: 0; /* Рядки не будуть стискатися по висоті, якщо їх забагато */
}

/* Завантажуємо зображення з папки ptrn_elements (СВІТЛА ТЕМА за замовчуванням) */
.pattern-row:nth-child(odd) {
    background-image: url('ptrn_elements/element1_light.svg');
    animation: slideLeft var(--animation-speed) linear infinite;
}

.pattern-row:nth-child(even) {
    background-image: url('ptrn_elements/element2_light.svg');
    animation: slideRight var(--animation-speed) linear infinite;
}

/* =========================================
   ТЕМНА ТЕМА (Коли активний клас .dark)
   ========================================= */
.dark .pattern-row:nth-child(odd) {
    background-image: url('ptrn_elements/element1.svg');
}

.dark .pattern-row:nth-child(even) {
    background-image: url('ptrn_elements/element2.svg');
}

/* --- 3. АНІМАЦІЇ --- */
@keyframes slideRight {
    from { background-position: 0 0; }
    to { background-position: var(--item-width) 0; }
}

@keyframes slideLeft {
    from { background-position: 0 0; }
    to { background-position: calc(-1 * var(--item-width)) 0; }
}

/* --- 4. АДАПТИВНІСТЬ (RESPONSIVE) --- */
@media (max-width: 768px) {
    :root {
        /* На телефонах і планшетах патерн автоматично зменшиться вдвічі */
        --pattern-scale: 0.5;
    }
}

