:root {
    --color-dark: #101418;
    --color-dark-blue: #1E2633;
    --color-medium-blue: #2E3A4B;
    --color-burgundy: #6B3940;
    --color-coral: #C75B4A;
    --color-dark-blue-transparent: rgba(33, 45, 64, 0.001);
}

body {
    font-family: 'Archive Ukr', sans-serif;
    margin: 0;
    padding: 0;
    padding-top: 5rem;
    box-sizing: border-box;
    background-color: var(--color-dark-blue);
    color: var(--color-coral);
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 5rem;
}

/* Глобальные стили для кнопок */
button {
    transition: all 0.3s ease;
}

/* Анимации для ссылок */
a {
    transition: color 0.3s ease;
    color: inherit;
}

/* Специальные классы для ваших цветов */
.bg-dark {
    background-color: var(--color-dark);
}

.bg-dark-blue {
    background-color: var(--color-dark-blue);
}

.bg-medium-blue {
    background-color: var(--color-medium-blue);
}

.bg-burgundy {
    background-color: var(--color-burgundy);
}

.bg-coral {
    background-color: var(--color-coral);
}

.text-dark {
    color: var(--color-dark);
}

.text-dark-blue {
    color: var(--color-dark-blue);
}

.text-medium-blue {
    color: var(--color-medium-blue);
}

.text-burgundy {
    color: var(--color-burgundy);
}

.text-coral {
    color: var(--color-coral);
}

.border-coral {
    border-color: var(--color-coral);
}

.border-burgundy {
    border-color: var(--color-burgundy);
}

.hover\:bg-burgundy:hover {
    background-color: var(--color-burgundy);
}

.hover\:bg-coral:hover {
    background-color: var(--color-coral);
}

.hover\:text-coral:hover {
    color: var(--color-coral);
}

@font-face {
    font-family: 'Caveat';
    src: url('/assets/fonts/Caveat-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Caveat';
    src: url('/assets/fonts/Caveat-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'Caveat';
    src: url('/assets/fonts/Caveat-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
}

@font-face {
    font-family: 'Caveat';
    src: url('/assets/fonts/Caveat-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Rubik';
    src: url('/assets/fonts/RubikDoodleShadow-Regular.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Underdog';
    src: url('/assets/fonts/Underdog-Regular.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Archive Ukr';
    src: url('/assets/fonts/ArchiveUkr.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

.font-caveat {
    font-family: 'Caveat', cursive !important;
}

.font-rubik {
    font-family: 'Rubik', sans-serif;
}

.font-underdog {
    font-family: "Underdog", sans-serif;
}

.font-archive {
    font-family: 'Archive Ukr', cursive !important;
}

.custom-white-select .q-field__native {
    color: white !important;
}

.custom-white-select .q-placeholder {
    color: white !important;
}

.custom-white-select .q-item__label {
    color: white !important;
}

.custom-white-select .q-field__control {
    color: white !important;
}

/* Цвет рамки по умолчанию */
.custom-white-select .q-field__control {
    border: 1px solid white !important;
}

/* Цвет рамки при фокусе (когда select активен) */
.custom-white-select .q-field--focused .q-field__control {
    border-color: white !important;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.2);
}

/* Цвет рамки при наведении */
.custom-white-select .q-field--hover .q-field__control {
    border-color: white !important;
}

/* Цвет стрелки (иконки) выпадающего списка */
.custom-white-select .q-field__append .q-icon {
    color: white !important;
}

.html-content .highlight {
    background: rgba(214, 104, 83, 0.12); /* нежный коралловый фон */
    padding: 0 6px;
    border-radius: 4px;
    color: var(--color-coral);
}


.animated-bg {
    position: relative;
    overflow: hidden;
    background-color: var(--color-dark-blue);
}

.animated-bg::before {
    content: '';
    position: absolute;
    inset: 0; /* покрывает весь блок */
    background-image: linear-gradient(var(--color-medium-blue) 1px, transparent 1px),
    linear-gradient(90deg, var(--color-medium-blue) 1px, transparent 1px);
    background-size: 60px 60px; /* размер клеток */
    opacity: 0.3; /* прозрачность */
    transition: all 0.6s ease;
    z-index: 0;
}

/* при наведении сетка подсвечивается */
.animated-bg:hover::before {
    background-image: linear-gradient(var(--color-coral) 1px, transparent 1px),
    linear-gradient(90deg, var(--color-coral) 1px, transparent 1px);
    opacity: 0.6;
    background-size: 80px 80px; /* клетки становятся больше */
    filter: drop-shadow(0 0 5px var(--color-coral));
}

.animated-bg > * {
    position: relative;
    z-index: 1; /* чтобы элементы были поверх сетки */
}

/* === ЭФФЕКТ ВЗРЫВА ЛИНИЙ === */
.line-explosion {
    position: absolute;
    width: 2px;
    height: 30px;
    background: var(--color-coral);
    transform-origin: center bottom;
    pointer-events: none;
    animation: explode-line ease-out forwards;
    z-index: 9999;
}

@keyframes explode-line {
    0% {
        transform: rotate(var(--angle)) translateY(0) scaleY(0.4);
        opacity: 1;
    }
    80% {
        transform: rotate(var(--angle)) translateY(calc(-1 * var(--dist))) scaleY(1);
        opacity: 0.8;
    }
    100% {
        transform: rotate(var(--angle)) translateY(calc(-1.3 * var(--dist))) scaleY(1);
        opacity: 0;
    }
}

.typewriter-text {
    font-size: 1.5rem; /* мобилки */
    line-height: 1.2;
}

.typewriter-text::after {
    display: inline-block;
    white-space: pre-line;
    content: '|';
    animation: blink 1s infinite;
    /*margin-left: 4px;*/
    min-height: 0.8em;
}

@media (min-width: 640px) {
    /* sm */
    .typewriter-text {
        font-size: 3.5rem;
    }
}

@media (min-width: 1024px) {
    /* lg */
    .typewriter-text {
        font-size: 5rem;
    }
}

@keyframes blink {
    50% {
        opacity: 0;
    }
}
