* {
    margin: 0;
    padding: 0;

    /* calc `em` based line height, bigger line height for smaller font size and smaller line height for bigger font size */ 
    line-height: calc(0.25rem + 1em + 0.25rem);
}

*,
::before,
::after {
    box-sizing: border-box;
}

/* remove outline when focused */
*:focus {
    outline: none;
}

html {
    /* allow percentage-based heights in the application */
    block-size: 100%;

    /* smooth scrolling for users */
    scroll-behavior: smooth;
}

body {
    font-family: 'Mukta Vaani', sans-serif;
    min-height: 100vh;
    background-color: hsl(29, 44%, 86%);

    /* improve text rendering */
    text-rendering: optimizeSpeed;

    /* allow percentage-based heights in the application */
    min-block-size: 100%;
}

/* make it clear that interactive elements are interactive */
:where(a[href], area, button, input, label[for], select, summary, textarea, [tabindex]:not([tabindex*="-"])) {
    cursor: pointer;
    touch-action: manipulation;
}

:where(input[type="file"]) {
    cursor: auto;
}

:where(input[type="file"])::-webkit-file-upload-button,
:where(input[type="file"])::file-selector-button {
    cursor: pointer;
}

/* remove built-in form typography styles */
:where(input, button, textarea, select),
:where(input[type="file"])::-webkit-file-upload-button {
    color: inherit;
    font: inherit;
    font-size: inherit;
    letter-spacing: inherit;
    word-spacing: inherit;
}

/* avoid text overflows */
:where(p, h1, h2, h3, h4, h5, h6) {
    overflow-wrap: break-word;
}

/* make sure users can't select button text */
:where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"]),
:where(input[type="file"])::-webkit-file-upload-button,
:where(input[type="file"])::file-selector-button {
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout: none;
    user-select: none;
    text-align: center;
}

a:link,
a:visited,
a:hover,
a:active {
    text-decoration: none;
}

button {
    border: none;
}