/* Modern CSS reset for a consistent cross-browser foundation */

html {
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
}

*, *::before, *::after {
    box-sizing: inherit;
}

body {
    margin: 0;
    min-height: 100vh;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

main,
section,
article,
header,
footer,
nav,
aside,
figure,
figcaption,
div,
span,
h1,
h2,
h3,
h4,
h5,
h6,
p,
ul,
ol,
li,
a,
img,
button,
input,
textarea,
select {
    margin: 0;
    padding: 0;
}

img,
svg,
canvas,
video,
embed,
object {
    display: block;
    max-width: 100%;
}

button,
input,
textarea,
select {
    font: inherit;
    color: inherit;
    background: transparent;
    border: 0;
}

a {
    color: inherit;
    text-decoration: none;
}

ul,
ol {
    list-style: none;
}

blockquote,
q {
    quotes: none;
}

blockquote::before,
blockquote::after,
q::before,
q::after {
    content: "";
    content: none;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

input,
textarea,
select,
button {
    outline: none;
}

:focus-visible {
    outline: 3px solid rgba(12, 106, 224, 0.35);
    outline-offset: 2px;
}

html, body {
    width: 100%;
}
