/* ================================================= */
/*  LOCAL FONTS                                      */
/* ================================================= */

@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-300.ttf') format('truetype');
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-400.ttf') format('truetype');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-500.ttf') format('truetype');
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'Inter';
    src: url('/assets/fonts/inter-600.ttf') format('truetype');
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/assets/fonts/playfair-400.ttf') format('truetype');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/assets/fonts/playfair-400-italic.ttf') format('truetype');
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Playfair Display';
    src: url('/assets/fonts/playfair-700.ttf') format('truetype');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'DM Serif Display';
    src: url('/assets/fonts/dmserif-400.ttf') format('truetype');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'DM Serif Display';
    src: url('/assets/fonts/dmserif-400-italic.ttf') format('truetype');
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

/* ================================================= */
/*  GLOBAL RESET & ROOT                              */
/* ================================================= */

html {
    background: #f9f7f2;
    scroll-behavior: smooth;
    scrollbar-gutter: stable;
}

body {
    background: #f9f7f2;
    margin: 0;
    padding: 0;
    overscroll-behavior: none;
    overflow-x: hidden;
}

/* ================================================= */
/*  FULL-BLEED BACKGROUND HELPERS                    */
/* ================================================= */

:root {
    --bleed-bg: transparent;
}

.full-bleed {
    width: 100vw;
    margin-left: calc(50% - 50vw);
}

.full-bleed-bg {
    position: relative;
}

.full-bleed-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    background: var(--bleed-bg, transparent);
    z-index: -1;
}

/* ================================================= */
/*  OVERLAY SCROLLBAR  */
/* ================================================= */

/* Firefox */
* {
    scrollbar-width: auto;
    scrollbar-color: rgba(196,164,112,0.7) transparent;
}

/* Chrome / Edge / Safari */
::-webkit-scrollbar {
    width: 14px;
    height: 14px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(
            180deg,
            rgba(196,164,112,0.9),
            rgba(168,139,90,0.9)
    );
    border-radius: 999px;

    border: 4px solid transparent;
    background-clip: padding-box;

    cursor: grab;
}

::-webkit-scrollbar-thumb:active {
    cursor: grabbing;
}

::-webkit-scrollbar-thumb:hover {
    box-shadow: 0 0 0 1px rgba(196,164,112,0.6);
}

::-webkit-scrollbar-corner {
    background: transparent;
}

* {
    -webkit-tap-highlight-color: transparent;
}
