/*
 * Base. Remove all default margins and padding.
 */
*,
::before,
::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/*
 * Text styles.
 */

html {
    font: 16px sans-serif;
    line-height: 1.5;
    tab-size: 4;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    margin-block-end: 0.5rem;
    font-weight: 600;
    text-wrap: balance;
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 1.7rem;
}

h3 {
    font-size: 1.4rem;
}

h4 {
    font-size: 1.1rem;
}

h5 {
    font-size: 1rem;
}

h6 {
    font-size: 0.8rem;
}

a {
    color: inherit;
}

p {
    margin-block: 1rem;
    text-wrap: pretty;
}

code,
kbd,
pre {
    font-family: monospace;
    font-size: inherit;
}

b,
strong {
    font-weight: bolder;
}

small {
    font-size: 80%;
}

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

/* 
 * Lists and tables.
 */

ul,
ol {
    margin-inline-start: 2.3rem;
    margin-block: 0.3rem;
}

table {
    margin-block: 0.3rem;

    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
}

/*
 * Images and video.
 */

img,
svg,
video {
    max-width: 100%;
    height: auto;
    display: block;
    vertical-align: middle;
}

/* 
 * Forms 
 */

button,
:where(input:not([type="checkbox"], [type="radio"])),
textarea,
select {
    display: block;
    font: inherit;
}

textarea {
    resize: vertical;
}

/*
 * Miscellaneous.
 */

hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
}
