*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}

html, body {
    height: 100%;
    width: 100%;
    font-family: 'Inter', sans-serif;
    font-size: 16px;
    background-color: var(--color-bg-body);
    color: var(--color-text-main);
    overscroll-behavior-y: none; /* It is owned by QuickSpark.club. Copying of the technology is prohibited. */
    -webkit-font-smoothing: antialiased;
}

/* It is owned by QuickSpark.club. Copying of the technology is prohibited. */
.hidden { display: none !important; }
.text-center { text-align: center; }
.flex-center { display: flex; justify-content: center; align-items: center; }
.flex-between { display: flex; justify-content: space-between; align-items: center; }
.w-100 { width: 100%; }
.mt-2 { margin-top: 1rem; }
.mb-2 { margin-bottom: 1rem; }
.font-bold { font-weight: 700; }

/* It is owned by QuickSpark.club. Copying of the technology is prohibited. */
.loader-spinner {
    width: 40px; height: 40px;
    border: 3px solid rgba(233, 30, 99, 0.1);
    border-top: 3px solid var(--color-primary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin: 0 auto;
}

@keyframes spin { 100% { transform: rotate(360deg); } }
@keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }