:root {
    --color-light: var(--color-neutral-200);
    --color-dark: var(--color-neutral-800);
    --color-primary: #ff4c24;
    --color-neutral-100: #ffffff;
    --color-neutral-200: #efeeec;
    --color-neutral-300: #e3e1de;
    --color-neutral-400: #cbc8c5;
    --color-neutral-500: #818180;
    --color-neutral-600: #2c2c2c;
    --color-neutral-700: #1f1f1f;
    --color-neutral-800: #131313;
    --color-neutral-900: #000000;
    --color-white: var(--color-neutral-100);
    --color-black: var(--color-neutral-900);
    --color-error: var(--color-primary);
    --color-success: #0ba954;
    --cubic-default: cubic-bezier(0.65, 0.05, 0, 1);
    --duration-default: 0.735s;
    --animation-default: var(--duration-default) var(--cubic-default);
    --gap: 2em;
    --section-padding: calc(3.5em + (var(--gap) * 2));
    --container-padding: 2em;
    --header-height: calc(1.5em + (var(--gap) * 2));
    --footer-height: calc(2.785em + (var(--gap) * 2));
    --section-height: 1000px;
}

/* Tablet */
@media screen and (max-width: 991px) {
    :root {
        --container-padding: 1.5em;
        --section-height: 950px;
    }
}

/* Mobile Landscape */
@media screen and (max-width: 767px) {
    :root {
        --container-padding: 1em;
        --section-height: 750px;
    }
}

/* Mobile Portrait */
@media screen and (max-width: 479px) {
    :root {
        --section-height: 650px;
    }
}

/* ------------------------- Scaling System -------------------------  */

/* Desktop */
:root {
    --size-unit: 16;
    /* body font-size in design - no px */
    --size-container-ideal: 1440;
    /* screen-size in design - no px */
    --size-container-min: 992px;
    --size-container-max: 1920px;
    --size-container: clamp(var(--size-container-min), 100vw, var(--size-container-max));
    --size-font: calc(var(--size-container) / (var(--size-container-ideal) / var(--size-unit)));
}

/* Tablet */
@media screen and (max-width: 991px) {
    :root {
        --size-container-ideal: 834;
        /* screen-size in design - no px */
        --size-container-min: 768px;
        --size-container-max: 991px;
    }
}

/* Mobile Landscape */
@media screen and (max-width: 767px) {
    :root {
        --size-container-ideal: 390;
        /* screen-size in design - no px */
        --size-container-min: 480px;
        --size-container-max: 767px;
    }
}

/* Mobile Portrait */
@media screen and (max-width: 479px) {
    :root {
        --size-container-ideal: 390;
        /* screen-size in design - no px */
        --size-container-min: 320px;
        --size-container-max: 479px;
    }
}


/* ------------------------- Hide Scrollbar -------------------------------------------------- */

body ::-webkit-scrollbar,
body::-webkit-scrollbar {
    display: none;
}

/* Chrome, Safari, Opera */
body {
    -ms-overflow-style: none;
}

/* IE & Edge */
html {
    scrollbar-width: none;
}

/* Firefox */

/* ------------------------- Reset -------------------------------------------------- */

*,
*:after,
*:before {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

html {
    scroll-behavior: initial;
}

html,
body {
    -webkit-font-smoothing: antialiased;
}

svg {
    max-width: none;
    height: auto;
    box-sizing: border-box;
    vertical-align: middle;
}

a {
    color: inherit;
}

/* Selection */
::selection {
    background-color: var(--color-primary);
    color: var(--color-dark);
    text-shadow: none;
}

::-moz-selection {
    background-color: var(--color-primary);
    color: var(--color-dark);
    text-shadow: none;
}


body {
    background-color: var(--color-neutral-900);
    color: var(--color-light);
    font-size: var(--size-font);
    margin: 0;
    padding: 0;
}

.parallax__fade {
    --color-dark-rgb: 0, 0, 0;
    background: linear-gradient(to top, rgba(var(--color-dark-rgb), 1) 0%, rgba(var(--color-dark-rgb), 0.738) 19%, rgba(var(--color-dark-rgb), 0.541) 34%, rgba(var(--color-dark-rgb), 0.382) 47%, rgba(var(--color-dark-rgb), 0.278) 56.5%, rgba(var(--color-dark-rgb), 0.194) 65%, rgba(var(--color-dark-rgb), 0.126) 73%, rgba(var(--color-dark-rgb), 0.075) 80.2%, rgba(var(--color-dark-rgb), 0.042) 86.1%, rgba(var(--color-dark-rgb), 0.021) 91%, rgba(var(--color-dark-rgb), 0.008) 95.2%, rgba(var(--color-dark-rgb), 0.002) 98.2%, transparent 100%);
}

.osmo-icon-svg {
    width: 8em;
    position: relative;
}

.parallax__header {
    z-index: 2;
    padding: var(--section-padding) var(--container-padding);
    justify-content: center;
    align-items: center;
    min-height: var(--section-height);
    display: flex;
    position: relative;
}

.parallax {
    width: 100%;
    position: relative;
    overflow: hidden;
}

.parallax__content {
    padding: var(--section-padding) var(--container-padding);
    justify-content: center;
    align-items: center;
    min-height: var(--section-height);
    position: relative;
}

.cover {
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.parallax__visuals {
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 120%;
    position: absolute;
    top: 0;
    left: 0;
}

.parallax__placeholder {
    z-index: 0;
    opacity: 0;
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.parallax__layers {
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    overflow: hidden;
}

.cover-copy {
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

.parallax__fade {
    z-index: 30;
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 20%;
    position: absolute;
    bottom: 0;
    left: 0;
}

.parallax__black-line-overflow {
    z-index: 20;
    background-color: var(--color-black);
    width: 100%;
    height: 2px;
    position: absolute;
    bottom: -1px;
    left: 0;
}


.parallax__title {
    pointer-events: auto;
    text-align: center;
    text-transform: none;
    margin-top: 0;
    margin-bottom: -0.9em;
    margin-right: .075em;
    font-family: PP Neue Corp Wide, sans-serif;
    font-size: 11vw;
    font-weight: 800;
    line-height: 1;
    position: relative;
}


.parallax__radial-gradient {
    z-index: 10;
    background-image: radial-gradient(circle farthest-corner at 50% 50%, transparent, var(--color-black));
    opacity: .5;
    pointer-events: none;
    mix-blend-mode: multiply;
    position: fixed;
    inset: 0;
}

.parallax__layer-title {
    justify-content: center;
    align-items: center;
    width: 100%;
    height: var(--section-height);
    display: flex;
    position: absolute;
    top: 0;
    left: 0;
}

.parallax__layer-img {
    pointer-events: none;
    object-fit: cover;
    width: 100%;
    max-width: none;
    height: 117.5%;
    position: absolute;
    top: -10%;
    left: 0;
}

.parallax__layer-img.layer_2-3 {
    top: -25%;
}

.parallax__layer-img.is-third {
    top: -20%;
}

@font-face {
    font-family: 'PP Neue Corp Wide';
    src: url('./media/fonts/PPNeueCorp-WideUltrabold-BF6732c5c869877.otf');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Neue Corp Wide';
    src: url('./media/fonts/PPNeueCorp-WideUltralight-BF6732c5c4c0f1d.otf');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'PP Neue Corp Wide';
    src: url('./media/fonts/PPNeueCorp-WideMedium-BF6732c5c45b6c4.otf');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

.parallax__content {
    font-family: 'PP Neue Corp Wide', sans-serif;
    padding: 4rem 2rem;
    text-align: center;
    max-width: 1200px;
    margin: 0 auto;
    padding-top: 15rem;
}

.location {
    font-size: 2.2rem;
    margin-bottom: 3.5rem;
    font-weight: 800;
}

.bio {
    font-size: 1.5rem;
    line-height: 1.6;
    margin-bottom: 2.5rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    font-weight: 200;
}

.social-icons {
    display: flex;
    justify-content: center;
    gap: 2rem;
}

.after-social-icons {
    font-size: 0.8rem;
    line-height: 1.6;
    margin-bottom: 2.5rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    font-weight: 200;
}

.social-icons a {
    transition: transform 0.3s ease;
}

.social-icons a:hover {
    transform: scale(1.1);
}

.social-icons img {
    width: 70px;
    height: 70px;
}

.contact {
    font-size: 1.2rem;
    font-weight: 200;
}

@media (max-width: 768px) {
    .bio {
        font-size: 1.2rem;
    }

    .social-icons {
        gap: 1.5rem;
    }
}