@import url(./base.css);
@import url(./easings.css);

@layer General, Presets, Utils, Block, Scroller;


@font-face {
    font-family: 'Androgy';
    src: url('../fonts/Androgy_Demo.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Helvetica';
    src: url('../fonts/Helvetica-Oblique.ttf') format('truetype');
    font-weight: 400;
    font-style: oblique;
    font-display: swap;
}

@font-face {
    font-family: 'Helvetica';
    src: url('../fonts/Helvetica.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Helvetica';
    src: url('../fonts/Helvetica-Bold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

:root {
    scrollbar-gutter: stable;

    --clr-error: #d32f2f;
    --clr-warning: #b76e00;
    --clr-success: #479e4c;
    --clr-info: #2970a3;
    --fz-1: clamp(1.5rem, 1.75vw + 0.725rem, 2rem);
    --fz-2: clamp(1.25rem, 1.5vw + 0.5rem, 1.5rem);
    --fz-3: clamp(1rem, 1.25vw + 0.25rem, 1.25rem);
    --clr-black: #000;
    --clr-dark: #101010;
    --clr-body: #1a1a1a;
    --clr-white: #fff;
    --clr-gray: #808080;
    --clr-gray-100: #f8f8f8;
    --clr-gray-200: #f2f2f2;
    --clr-gray-300: #ededed;
    --clr-gray-400: #d8d8d8;
    --clr-gray-500: #ccc;
    --clr-gray-600: #bfbfbf;
    --clr-gray-700: #a1a1a1;
    --clr-gray-800: #9d9d9d;
    --clr-gray-900: #637381;
    --clr-auto: hsl(0, 0%, 0%, 5%);
    --clr-link: #646cff;
    --clr-link-hover: #535bf2;
    --font-base: system-ui, -apple-system, BlinkMacSystemFont,
        'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue',
        sans-serif;
    --font-title: "Androgy", var(--font-base);
    --font-body: "Helvetica", var(--font-base);
    --smooth-shadow: 0px 0.6px 0.9px rgba(0, 0, 0, 0.006),
        0px 1.4px 2.1px rgba(0, 0, 0, 0.009), 0px 2.3px 3.5px rgba(0, 0, 0, 0.011),
        0px 3.5px 5.2px rgba(0, 0, 0, 0.013), 0px 5px 7.5px rgba(0, 0, 0, 0.015),
        0px 7.1px 10.6px rgba(0, 0, 0, 0.017),
        0px 10.1px 15.1px rgba(0, 0, 0, 0.019),
        0px 14.6px 21.9px rgba(0, 0, 0, 0.021),
        0px 22.5px 33.8px rgba(0, 0, 0, 0.024), 0px 40px 60px rgba(0, 0, 0, 0.03);
    --border-shadow: rgba(9, 30, 66, 0.25) 0px 1px 1px,
        rgba(9, 30, 66, 0.13) 0px 0px 1px 1px;
    --elevation-1: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px -1px 1px 0px rgba(0, 0, 0, 0.04), 0px 1px 3px 0px rgba(0, 0, 0, 0.12);
    --elevation-2: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px -2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
    --elevation-3: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), 0px -3px 4px 0px rgba(0, 0, 0, 0.14), 0px 1px 8px 0px rgba(0, 0, 0, 0.12);
    --elevation-4: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px -4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12);
    --elevation-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px -6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);
    --elevation-8: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px -8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
    --elevation-12: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), 0px -12px 17px 2px rgba(0, 0, 0, 0.14), 0px 5px 22px 4px rgba(0, 0, 0, 0.12);
    --elevation-16: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px -16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
    --elevation-24: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), 0px -24px 38px 3px rgba(0, 0, 0, 0.14), 0px 9px 46px 8px rgba(0, 0, 0, 0.12);
    --clamp-btn: clamp(1em, 2.5vw, 1.25em) clamp(1em, 2.5vw, 2em);
    --clamp-box: clamp(1rem, 3vw, 1.25rem);
    --overlay-linear: linear-gradient(hsl(0, 0%, 0%, 85%), hsl(0, 0%, 0%, 85%));
    --block-spacing: clamp(60px, 6vw + 1.5rem, 200px);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    image-rendering: optimizeSpeed;
    --clr-bg: hsl(0, 0%, 0%, 5%);
    --clr-border: hsl(0, 0%, 0%, 10%);
    --body-bg: var(--clr-black);
}

/*--------------------------------------------------------------
# General
--------------------------------------------------------------*/

@media (prefers-reduced-motion:no-preference) {
    :root {
        scroll-behavior: unset !important;
    }
}



body {
    visibility: hidden;
    transition: 300ms;
    opacity: 0;

}

body.CE-200 {
    visibility: visible;
    opacity: 1;
}




/*--------------------------------------------------------------
# Back To Top
--------------------------------------------------------------*/

/* .back-to-top {
    position: fixed;
    right: clamp(15px, 3vw, 24px);
    bottom: clamp(15px, 3vw, 24px);
    display: grid;
    place-items: center;
}

.back-to-top>* {
    grid-area: 1 / -1;
}

.back-to-top svg {
    transform: rotate(-90deg);
}

.back-to-top svg circle {
    stroke: rgba(0, 0, 0, 0.1);
    stroke-width: 3px;
    stroke-linecap: round;
    fill: transparent;
    width: 100%;
}

.back-to-top svg .progress-bar {
    stroke: url(#grad);
    fill: #fff;
    transition: stroke-dashoffset 0s ease-in-out;
    filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, 0.2));
}

.back-to-top .pct {
    color: var(--clr-dark);
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
    margin: 0;
    font-size: 14px;
    z-index: 1;
} */

::selection {
    background-color: var(--clr-gray);
    color: var(--clr-black);
}




/*=============================================
=            Form-Control            =
=============================================*/

.Form-root .row {
    row-gap: 1.5rem;
}

.FormControl-root {
    --_size-y: 50px;
    --_size-x: 100%;
    --_rounded: 0.25em;
    --_fz: 1rem;
    --_fz-shrink: 0.725rem;
    --_autofill-bg: hsl(var(--clr-primary-hsl), 10%);
    --_autofill-color: var(--clr-primary-text);
    position: relative;
    isolation: isolate;
}

.FormControl-group .FormControl-error {
    color: var(--clr-error);
    font-size: 80%;
}

.FormControl-root.FormControl-required :is(.FormControl-label, legend) {
    contain: layout;
}

.FormControl-root.FormControl-required :is(.FormControl-label, legend)::after {
    content: "*";
    color: var(--clr-error);
}

.FormControl-root.FormControl-invalid {
    color: var(--clr-error);
    border-color: var(--clr-error);
}

.FormControl-root .FormControl-label {
    position: absolute;
    inset: 0;
    text-indent: 1rem;
    font-size: var(--_fz);
    transition: 500ms cubic-bezier(0.175, 0.92, 0.165, 1);
    pointer-events: none;
    height: var(--_size-y);
    line-height: var(--_size-y);
}

.FormControl-root.FormControl-shrink .FormControl-label {
    /* .FormControl-root:has(.InputBase-input:not(:placeholder-shown), .InputBase-input:-webkit-autofill) .FormControl-label { */
    transform: translateY(-50%);
    font-size: var(--_fz-shrink);
}

.FormControl-root .InputBase-root {
    display: grid;
}

.FormControl-root .InputBase-root>* {
    grid-area: 1 / -1;
}

.FormControl-root .InputBase-input {
    padding: 0.5rem 1rem;
    margin: 0;
    border: none;
    outline: none;
    height: var(--_size-y);
    box-sizing: border-box;
    font-size: 1rem;
    background-color: transparent;
    font-family: var(--font-body);
    color: inherit;
}

.FormControl-root .InputBase-input::placeholder {
    color: transparent;
    transition: 200ms ease;
}

.FormControl-root.FormControl-shrink .InputBase-input::placeholder {
    color: inherit;
}

.FormControl-root select.InputBase-input {
    transition: all 500ms cubic-bezier(0.075, 0.82, 0.165, 1);
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
}

.FormControl-root select.InputBase-input {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath fill-rule='evenodd' d='M1.646 11.354a.5.5 0 0 0 .708 0L8 5.707l5.646 5.647a.5.5 0 0 0 .708-.708l-6-6a.5.5 0 0 0-.708 0l-6 6a.5.5 0 0 0 0 .708z'/%3e%3c/svg%3e");
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    background-size: 1rem 1rem;
    background-position: calc(100% - 1rem);
    background-repeat: no-repeat;
}

.FormControl-root select.InputBase-input:focus {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath fill-rule='evenodd' d='M1.646 11.354a.5.5 0 0 0 .708 0L8 5.707l5.646 5.647a.5.5 0 0 0 .708-.708l-6-6a.5.5 0 0 0-.708 0l-6 6a.5.5 0 0 0 0 .708z'/%3e%3c/svg%3e");
    background-size: 1rem 1rem;
    background-position: calc(100% - 1rem);
    background-repeat: no-repeat;
}

.FormControl-root .InputBase-input option {
    font-size: initial;
    color: initial;
}

.FormControl-root .InputBase-input:-webkit-autofill {
    box-shadow: inset 0 0 0 100px var(--_autofill-bg) !important;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: var(--_autofill-color);
    color: var(--_autofill-color)
}

.FormControl-root fieldset {
    border: 1px solid currentColor;
    padding-inline: 0.5rem;
    position: absolute;
    inset: -0.5rem 0 0 0;
    pointer-events: none;
    height: calc(100% + 0.5rem);
    opacity: 0.5;
    box-sizing: border-box;
}

.FormControl-root:is(:hover, .FormControl-shrink) fieldset {
    opacity: 1;
}

.FormControl-root legend {
    all: revert-layer;
    margin: 0;
    font-size: 0;
    padding-inline: 0;
    height: 1rem;
    visibility: hidden;
    overflow: hidden;
    width: 0;
    box-sizing: border-box;
    transition: 500ms cubic-bezier(0.175, 0.92, 0.165, 1);
}

.FormControl-root.FormControl-shrink legend {
    width: auto;
    padding-inline: 0.5rem;
    font-size: var(--_fz-shrink);
}

.FormControl-root :is(.InputBase-input, fieldset) {
    width: 100%;
    border-radius: var(--_rounded, 0);
    -webkit-border-radius: var(--_rounded, 0);
    -moz-border-radius: var(--_rounded, 0);
    -ms-border-radius: var(--_rounded, 0);
    -o-border-radius: var(--_rounded, 0);
}

.FormControl-root:not(.FormControl-shrink) .InputBase-input:is([type="date"], select) {
    /* font-size: 0px; */
    color: transparent;
}


input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type=number] {
    appearance: none;
    -moz-appearance: textfield;
}



.Adornment-root {
    display: flex;
}

.Adornment-item {
    aspect-ratio: 1;
    height: 100%;
    display: grid;
    place-content: center;
}


/*=====  End of Form-Control  ======*/








.Tooltip-root {
    position: fixed;
    padding: 6px 10px;
    background: rgba(17, 17, 17, 0.92);
    color: #fff;
    font-size: 13px;
    border-radius: 6px;
    pointer-events: none;
    opacity: 0;
    transform: scale(0.85);
    transition: opacity 140ms ease, transform 140ms ease;
    z-index: 9999;
    max-width: 220px;
}

.Tooltip-show {
    opacity: 1;
    transform: scale(1);
}




iconify-icon,
*::part(icon) {
    font-size: 1.5rem;
}




.Select-list {
    height: auto;
    padding: 0.5em;
    display: grid;
    gap: 0.5em;
    min-width: 160px;
    max-height: calc(100vh - 1rem);
    overflow: auto;
}

[focus-mode="autocomplete"] .Select-list {
    max-height: min(45vh, 400px);
}

.Select-list .scroll-content {
    display: contents;
}

.Select-option::part(content) {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

.Select-icon {
    margin-left: auto;
    opacity: 0;
    rotate: -15deg;
    scale: 0.5;
}

.Select-option::part(root) {
    padding: 0.35em 0.725em;
    line-height: 1;
    border-radius: 0.35em;
    justify-content: start;
    font-weight: 400;
}

.Select-option.is-active::part(root) {
    background-color: var(--clr-auto);
}

.Select-option[selected]::part(root) {
    background-color: #1e1e1e;
    color: var(--clr-white);
}

.Select-option[selected] .Select-icon {
    opacity: 1;
    rotate: 0deg;
    scale: 1;
}

.Select-option:not(:is([selected], .is-active)):hover {
    background-color: var(--clr-auto);
}

.Select-empty {
    text-align: center;
    padding: 1rem;
    background-color: hsl(0, 0%, 0%, 5%);
    border-radius: 0.5em;
}

.Select-group {
    padding-inline-start: 1rem;
    display: grid;
}

.Select-group>:not(:last-child) {
    margin-bottom: 0.5rem;
}

.Select-group .Select-group-label {
    font-weight: 600;
    margin-bottom: 0.5rem;
}







.Block-hero {
    contain: paint;
    display: grid;
    min-height: min(120vh, 1200px);
    min-height: min(120dvh, 1200px);
    align-items: end;
}

.Block-hero>* {
    grid-area: 1 / -1;
}

.Block-hero .Block-object>* {
    height: 100%;
    object-fit: contain;
    inset: 0;
    width: 100%;
    display: block;
    max-width: 50%;
    margin-inline: auto;
    padding-bottom: 20em;
}

.Block-hero .Block-content>.Heading-root>* {
    font-size: 198px;
    line-height: 1;
}



.Block-hero--bottom .Block-hero--actions {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
}

.Block-hero--bottom {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-block: 5em 7em;
    align-items: center;
}

.Block-hero--bottom .Heading-root>* {
    text-transform: lowercase;
}

.Block-hero--description>:first-child {
    font-size: 4rem;
    line-height: 1.2;
}

.Block-hero--description>:last-child {
    font-size: 2rem;
    line-height: 1.2;
}




.Block-approach {
    border-top: 1px solid hsl(0, 0%, 100%, 10%);
}

.Block-approach .Block-content>.Heading-root {
    display: flex;
    align-items: center;
    gap: 1rem;
    justify-content: space-between;
}

.Block-approach .Block-content>.Heading-root>* {
    font-size: 158px;
    text-transform: lowercase;
    margin: 0;
}

.Block-approach p {
    font-size: 1.75rem;
}

.Block-approach .Heading-root-2 {
    margin-top: 100px;
    display: grid !important;
    gap: 3rem !important;
    grid-template-columns: auto 1fr auto;
}

.Block-approach .Heading-root-2>* {
    font-size: 3rem !important;
    font-family: var(--font-body);
    font-weight: 400;
    text-transform: uppercase !important;
}

.Block-approach .divider {
    height: 1px;
    background-color: hsl(0, 0%, 100%, 20%);
}





.Block-vision {
    contain: paint;
    display: grid;
    min-height: 160vh;
    align-items: center;
    contain: layout;
    text-align: right;
}

.Block-vision>* {
    grid-area: 1 / -1;
}

.Block-vision .Block-object>* {
    height: 100%;
    object-fit: cover;
    object-position: left top;
    inset: 0;
    display: block;
    position: absolute;
    inset: 0;
    z-index: -2;
}

.Block-vision .Heading-root>* {
    font-size: 158px;
}

.Block-vision p {
    font-size: 1.5rem;
}


@media (max-width: 991.98px) {
    .Block-hero .Block-content>.Heading-root>* {
        font-size: 100px;
        line-height: 1;
    }

    .Block-hero .Block-content {
        margin-top: 40vh;
    }
    .Block-hero .Block-object {
        align-self: start;
    }
    .Block-hero .Block-object>* {
        height: 100%;
        object-fit: cover;
        inset: 0;
        width: 100%;
        display: block;
        max-width: 100%;
        margin-inline: auto;
        padding-bottom: 0;
    }
    .Block-hero--bottom .Heading-root>* {
        text-align: left;
        font-size: 1.5rem;
    }
    .Block-hero--bottom {
        margin-block: 3em 4em;
        gap: 3rem;
    }
    .Block-hero--description>:first-child {
        font-size: 1.75rem;
    }
    .Block-hero--description>:last-child {
        font-size: 1.25rem;
    }
    .Block-approach .Block-content>.Heading-root>* {
        font-size: 50px;
    }
    .Block-approach p {
        font-size: 1.25rem;
    }
    .Block-approach .Heading-root-2 {
        gap: 1rem !important;
    }
    .Block-approach .Heading-root-2 > * {
        font-size: 24px !important;
    }
    .Block-vision {
        min-height: 60vh;
    }
    .Block-vision img {
        opacity: 0.5;
    }
    .Block-vision .Heading-root > * {
        font-size: 50px !important;
    }
    .Block-vision p {
        font-size: 1.25rem;
    }
}