/* ==================================================
   RESET  
================================================== */

*,
*::before,
*::after {

    margin: 0;
    padding: 0;

    box-sizing: border-box;

}


/* ==================================================
   ROOT
================================================== */

html {

    scroll-behavior: smooth;

    -webkit-font-smoothing: antialiased;

    -moz-osx-font-smoothing: grayscale;

}

body {

    min-height: 100vh;

    overflow-x: hidden;

    position: relative;

    font-family: var(--font-family);

    color: var(--text-primary);

    transition:
        background .45s ease,
        color .35s ease;

}


/* ==================================================
   TYPOGRAPHY
================================================== */

h1,
h2,
h3,
h4,
h5,
h6 {

    font-weight: 700;

    line-height: 1.1;

    color: var(--text-primary);

}

p {

    line-height: 1.8;

    color: var(--text-secondary);

}

strong {

    font-weight: 700;

}

small {

    font-size: .875rem;

}


/* ==================================================
   LINKS
================================================== */

a {

    color: inherit;

    text-decoration: none;

    transition: color .3s ease;

}


/* ==================================================
   BUTTON RESET
================================================== */

button {

    font: inherit;

    background: none;

    border: none;

    cursor: pointer;

    color: inherit;

}


/* ==================================================
   MEDIA
================================================== */

img,
picture,
svg,
video {

    display: block;

    max-width: 100%;

}


/* ==================================================
   LISTS
================================================== */

ul,
ol {

    list-style: none;

}


/* ==================================================
   FORM ELEMENTS
================================================== */

input,
textarea,
select {

    font: inherit;

}


/* ==================================================
   MAIN
================================================== */

main {

    position: relative;

    min-height: 100vh;

    display: flex;

    justify-content: center;

    align-items: center;

    padding: 2rem;

}


/* ==================================================
   UTILITIES
================================================== */

.hidden {

    display: none !important;

}

.text-center {

    text-align: center;

}


/* ==================================================
   SCROLLBAR
================================================== */

::-webkit-scrollbar {

    width: 10px;

}

::-webkit-scrollbar-track {

    background: rgba(255,255,255,.15);

}

::-webkit-scrollbar-thumb {

    background: rgba(0,170,255,.35);

    border-radius: 999px;

}

::-webkit-scrollbar-thumb:hover {

    background: rgba(0,170,255,.55);

}


/* ==================================================
   TEXT SELECTION
================================================== */

::selection {

    background: var(--color-primary);

    color: #ffffff;

}

/* ==================================================
   GLOBAL THEME TRANSITIONS
================================================== */

body,
header,
.navbar,
.glass-card,
.hero-card,
.btn,
.segmented,
.segmented .slider,
.hero-status,
.hero h1,
.hero h2,
.hero p,
.hero-social a {

    transition:
        background .45s cubic-bezier(.2,.8,.2,1),
        background-color .45s cubic-bezier(.2,.8,.2,1),
        color .35s cubic-bezier(.2,.8,.2,1),
        border-color .45s cubic-bezier(.2,.8,.2,1),
        box-shadow .45s cubic-bezier(.2,.8,.2,1),
        backdrop-filter .45s cubic-bezier(.2,.8,.2,1);

}

body::before,
body::after,
.blob,
.wave,
.noise {

    transition:
        opacity .6s ease,
        filter .6s ease,
        background .6s ease;

}
