/* Explain: Base styles, typography, and dynamic background effect. */
* {
    box-sizing: border-box;
}

html {
    background: var(--background-color);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
}

/* Prevent mobile browsers from automatically zooming in when focusing on input fields, while keeping user pinch-to-zoom intact */
input, textarea, select {
    font-size: 16px !important;
}

body {
    overflow-x: hidden !important;
    max-width: 100%;
    width: 100%;
    position: relative;
}

/* Global Animated Liquid Mesh Background */
body::before, body::after {
    content: '';
    position: fixed;
    border-radius: 50%;
    filter: blur(120px);
    -webkit-filter: blur(120px);
    z-index: -1;
    pointer-events: none;
    animation: liquid-float 25s infinite alternate ease-in-out;
}

body::before {
    width: 60vw;
    height: 60vw;
    top: -15vh;
    left: -15vw;
    background: rgba(148, 163, 184, 0.2);
}

body::after {
    width: 70vw;
    height: 70vw;
    bottom: -10vh;
    right: -20vw;
    background: rgba(30, 41, 59, 0.5);
    animation-delay: -12s;
}

@keyframes liquid-float {
    0% { transform: translate(0, 0) scale(1); }
    100% { transform: translate(8vw, 8vh) scale(1.15); }
}
