/*======================================================================
    VYZARA
    File        : base.css
    Version     : 3.0
    Description : Global Design System
======================================================================*/



/*======================================================================
    CSS LAYERS
======================================================================*/

@layer reset,
variables,
base,
utilities;



/*======================================================================
    RESET
======================================================================*/

@layer reset{

*,
*::before,
*::after{

    margin:0;

    padding:0;

    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

    -webkit-text-size-adjust:100%;

    overflow-x:hidden;

    scrollbar-gutter:stable;

}

body{

    min-height:100vh;

}

img,
picture,
svg,
video,
canvas{

    display:block;

    max-width:100%;

}

img{

    height:auto;

}

button,
input,
textarea,
select{

    font:inherit;

    color:inherit;

    background:transparent;

}

button{

    cursor:pointer;

    -webkit-tap-highlight-color:transparent;

    touch-action:manipulation;

}

textarea{

    resize:vertical;

}

a{

    color:inherit;

    text-decoration:none;

}

ul,
ol{

    list-style:none;

}

table{

    border-collapse:collapse;

    border-spacing:0;

}

fieldset{

    border:0;

}

legend{

    padding:0;

}

iframe{

    border:0;

}

}



/*======================================================================
    DESIGN TOKENS
======================================================================*/

@layer variables{

:root{

    color-scheme:dark;



/*====================================================
    BRAND
====================================================*/

    --clr-primary:#D2A679;

    --clr-primary-light:#E7C39E;

    --clr-primary-dark:#9C6C43;

    --clr-white:#FFFFFF;

    --clr-black:#000000;



/*====================================================
    BACKGROUND
====================================================*/

    --clr-bg:#050505;

    --clr-bg-secondary:#0C0C0C;

    --clr-bg-tertiary:#141414;

    --clr-surface:#1A1A1A;



/*====================================================
    TEXT
====================================================*/

    --clr-text:#F5F5F5;

    --clr-text-light:#D5D5D5;

    --clr-text-muted:#9A9A9A;



/*====================================================
    BORDER
====================================================*/

    --clr-border:rgba(255,255,255,.08);

    --clr-border-light:rgba(255,255,255,.16);



/*====================================================
    GLASS
====================================================*/

    --glass-bg:rgba(255,255,255,.04);

    --glass-border:rgba(255,255,255,.08);

    --glass-shadow:

        0 20px 80px rgba(0,0,0,.45);



/*====================================================
    GLOW
====================================================*/

    --gold-glow-sm:

        0 0 20px rgba(210,166,121,.18);

    --gold-glow-md:

        0 0 40px rgba(210,166,121,.24);

    --gold-glow-lg:

        0 0 80px rgba(210,166,121,.32);



/*====================================================
    SHADOWS
====================================================*/

    --shadow-sm:

        0 6px 20px rgba(0,0,0,.18);

    --shadow-md:

        0 18px 48px rgba(0,0,0,.30);

    --shadow-lg:

        0 40px 120px rgba(0,0,0,.45);



/*====================================================
    RADIUS
====================================================*/

    --radius-xs:6px;

    --radius-sm:10px;

    --radius-md:18px;

    --radius-lg:28px;

    --radius-xl:42px;

    --radius-full:999px;



/*====================================================
    SPACING
====================================================*/

    --space-4:.25rem;

    --space-8:.5rem;

    --space-12:.75rem;

    --space-16:1rem;

    --space-20:1.25rem;

    --space-24:1.5rem;

    --space-32:2rem;

    --space-40:2.5rem;

    --space-48:3rem;

    --space-64:4rem;

    --space-80:5rem;

    --space-96:6rem;

    --space-120:7.5rem;

    --space-160:10rem;



/*====================================================
    CONTAINER
====================================================*/

    --container-width:1440px;



/*====================================================
    TYPOGRAPHY
====================================================*/

    --font-heading:

        "Cinzel",

        serif;

    --font-body:

        "Inter",

        sans-serif;



/*====================================================
    FONT SIZE
====================================================*/

    --fs-12:.75rem;

    --fs-14:.875rem;

    --fs-16:1rem;

    --fs-18:1.125rem;

    --fs-20:1.25rem;

    --fs-24:1.5rem;

    --fs-32:2rem;

    --fs-40:2.5rem;

    --fs-48:3rem;

    --fs-56:3.5rem;

    --fs-64:4rem;

    --fs-72:4.5rem;



/*====================================================
    FONT WEIGHT
====================================================*/

    --fw-300:300;

    --fw-400:400;

    --fw-500:500;

    --fw-600:600;

    --fw-700:700;

    --fw-800:800;



/*====================================================
    LINE HEIGHT
====================================================*/

    --lh-tight:1.05;

    --lh-heading:1.15;

    --lh-body:1.8;



/*====================================================
    LETTER SPACING
====================================================*/

    --ls-sm:.04em;

    --ls-md:.10em;

    --ls-lg:.22em;



/*====================================================
    TRANSITIONS
====================================================*/

    --transition-fast:.25s ease;

    --transition-normal:.45s ease;

    --transition-slow:.75s ease;



/*====================================================
    Z-INDEX
====================================================*/

    --z-loader:9999;

    --z-modal:1000;

    --z-header:900;

    --z-menu:850;

    --z-overlay:800;

}

}
/*======================================================================
    GLOBAL BASE
======================================================================*/

@layer base{

html{

    font-size:16px;

    scroll-behavior:smooth;

}

body{

    font-family:var(--font-body);

    font-size:var(--fs-16);

    font-weight:var(--fw-400);

    line-height:var(--lh-body);

    color:var(--clr-text);

    background:
        radial-gradient(
            circle at top right,
            rgba(210,166,121,.08),
            transparent 28%
        ),
        radial-gradient(
            circle at bottom left,
            rgba(210,166,121,.05),
            transparent 35%
        ),
        var(--clr-bg);

    overflow-x:hidden;

    overflow-wrap:break-word;

    isolation:isolate;

    text-rendering:optimizeLegibility;

    -webkit-font-smoothing:antialiased;

    -moz-osx-font-smoothing:grayscale;

}



/*======================================================================
    SCROLLBAR
======================================================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#090909;

}

::-webkit-scrollbar-thumb{

    background:
        linear-gradient(
            180deg,
            var(--clr-primary),
            var(--clr-primary-dark)
        );

    border-radius:999px;

}

::-webkit-scrollbar-thumb:hover{

    background:var(--clr-primary-light);

}



/*======================================================================
    TEXT SELECTION
======================================================================*/

::selection{

    background:var(--clr-primary);

    color:var(--clr-white);

}



/*======================================================================
    TYPOGRAPHY
======================================================================*/

h1,
h2,
h3,
h4,
h5,
h6{

    font-family:var(--font-heading);

    font-weight:600;

    line-height:var(--lh-heading);

    letter-spacing:-.02em;

    color:var(--clr-white);

    text-wrap:balance;

}

h1{

    font-size:clamp(3.5rem,8vw,7rem);

}

h2{

    font-size:clamp(2.7rem,6vw,5rem);

}

h3{

    font-size:clamp(1.7rem,3vw,2.3rem);

}

h4{

    font-size:clamp(1.35rem,2vw,1.6rem);

}

h5{

    font-size:1.15rem;

}

h6{

    font-size:1rem;

}

p{

    color:var(--clr-text-light);

    font-size:clamp(1rem,1vw,1.08rem);

    line-height:1.9;

}



/*======================================================================
    LINKS
======================================================================*/

a{

    transition:

        color var(--transition-normal),

        opacity var(--transition-normal);

}

a:hover{

    color:var(--clr-primary);

}



/*======================================================================
    MEDIA
======================================================================*/

picture{

    display:block;

}

img{

    max-width:100%;

    height:auto;

    object-fit:cover;

    user-select:none;

    -webkit-user-drag:none;

}

svg{

    display:block;

    fill:currentColor;

}

video{

    display:block;

    width:100%;

    height:auto;

}

canvas{

    display:block;

    max-width:100%;

}



/*======================================================================
    FORMS
======================================================================*/

input,
textarea,
select{

    width:100%;

    color:var(--clr-text);

}

textarea{

    min-height:140px;

}

::placeholder{

    color:var(--clr-text-muted);

    opacity:1;

}



/*======================================================================
    BUTTONS
======================================================================*/

button{

    transition:

        background var(--transition-normal),

        color var(--transition-normal),

        transform var(--transition-fast),

        box-shadow var(--transition-normal);

}



/*======================================================================
    CONTAINER
======================================================================*/

.container{

    width:min(92%,var(--container-width));

    margin-inline:auto;

    padding-inline:1rem;

    box-sizing:border-box;

}



/*======================================================================
    SECTION
======================================================================*/

section{

    position:relative;

    padding:clamp(6rem,10vw,10rem) 0;

    overflow:hidden;

}

main{

    position:relative;

}



/*======================================================================
    COMMON ELEMENTS
======================================================================*/

hr{

    border:0;

    border-top:1px solid var(--clr-border);

}

strong{

    font-weight:700;

    color:var(--clr-white);

}

em{

    font-style:italic;

}

blockquote{

    padding-left:1.5rem;

    border-left:3px solid var(--clr-primary);

}

small{

    font-size:.875rem;

    color:var(--clr-text-muted);

}



/*======================================================================
    FOCUS
======================================================================*/

:focus-visible{

    outline:2px solid var(--clr-primary);

    outline-offset:4px;

}

}
/*======================================================================
    UTILITIES
======================================================================*/

@layer utilities{

/*====================================================
    SECTION COMPONENTS
====================================================*/

.section-header{

    display:flex;

    flex-direction:column;

    align-items:center;

    justify-content:center;

    gap:var(--space-24);

    max-width:900px;

    margin-inline:auto;

    margin-bottom:var(--space-80);

    text-align:center;

}

.section-eyebrow{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:.75rem;

    width:fit-content;

    padding:.85rem 1.6rem;

    border:1px solid rgba(210,166,121,.20);

    border-radius:var(--radius-full);

    background:rgba(255,255,255,.03);

    backdrop-filter:blur(16px);

    -webkit-backdrop-filter:blur(16px);

    color:var(--clr-primary);

    font-size:.78rem;

    font-weight:600;

    letter-spacing:.25em;

    text-transform:uppercase;

}

.section-title{

    max-width:900px;

}

.section-description{

    max-width:760px;

    color:var(--clr-text-light);

}



/*====================================================
    DISPLAY
====================================================*/

.d-none{

    display:none !important;

}

.d-block{

    display:block !important;

}

.d-flex{

    display:flex !important;

}

.d-grid{

    display:grid !important;

}



/*====================================================
    FLEX
====================================================*/

.flex-center{

    display:flex;

    justify-content:center;

    align-items:center;

}

.flex-between{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.flex-column{

    display:flex;

    flex-direction:column;

}



/*====================================================
    TEXT
====================================================*/

.text-center{

    text-align:center;

}

.text-left{

    text-align:left;

}

.text-right{

    text-align:right;

}

.text-primary{

    color:var(--clr-primary);

}

.text-muted{

    color:var(--clr-text-muted);

}



/*====================================================
    WIDTH & HEIGHT
====================================================*/

.w-100{

    width:100%;

}

.h-100{

    height:100%;

}



/*====================================================
    MARGIN UTILITIES
====================================================*/

.mt-0{margin-top:0;}
.mt-16{margin-top:1rem;}
.mt-24{margin-top:1.5rem;}
.mt-32{margin-top:2rem;}
.mt-48{margin-top:3rem;}
.mt-64{margin-top:4rem;}

.mb-0{margin-bottom:0;}
.mb-16{margin-bottom:1rem;}
.mb-24{margin-bottom:1.5rem;}
.mb-32{margin-bottom:2rem;}
.mb-48{margin-bottom:3rem;}
.mb-64{margin-bottom:4rem;}



/*====================================================
    GLASS
====================================================*/

.glass{

    background:var(--glass-bg);

    border:1px solid var(--glass-border);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    box-shadow:var(--glass-shadow);

}



/*====================================================
    GRADIENT TEXT
====================================================*/

.gradient-text{

    background:linear-gradient(

        135deg,

        #ffffff 0%,

        var(--clr-primary-light) 50%,

        var(--clr-primary-dark) 100%

    );

    -webkit-background-clip:text;

    background-clip:text;

    color:transparent;

}



/*====================================================
    VISIBILITY
====================================================*/

.hidden{

    display:none !important;

}

.invisible{

    visibility:hidden;

}

.visible{

    visibility:visible;

}



/*====================================================
    SCREEN READER
====================================================*/

.sr-only{

    position:absolute;

    width:1px;

    height:1px;

    padding:0;

    margin:-1px;

    overflow:hidden;

    clip:rect(0 0 0 0);

    white-space:nowrap;

    border:0;

}



/*====================================================
    LOADER
====================================================*/

.loader{

    position:fixed;

    inset:0;

    display:grid;

    place-items:center;

    background:var(--clr-bg);

    z-index:var(--z-loader);

}

.loader__wrapper{

    display:flex;

    flex-direction:column;

    align-items:center;

    gap:1.5rem;

}

.loader__logo{

    width:90px;

    filter:drop-shadow(var(--gold-glow-md));

}

.loader__text{

    color:var(--clr-text-light);

    font-size:.85rem;

    letter-spacing:.22em;

    text-transform:uppercase;

}



/*====================================================
    REDUCED MOTION
====================================================*/

@media (prefers-reduced-motion:reduce){

    *,

    *::before,

    *::after{

        animation:none !important;

        transition:none !important;

        scroll-behavior:auto !important;

    }

}



/*====================================================
    PRINT
====================================================*/

@media print{

    body{

        background:#fff;

        color:#000;

    }

    .loader,

    .header,

    .mobile-menu{

        display:none !important;

    }

}

}
.loader{

    position:fixed;
    inset:0;

    display:grid;
    place-items:center;

    background:var(--clr-bg);

    z-index:9999;

    opacity:1;
    visibility:visible;

    transition:
        opacity .7s ease,
        visibility .7s ease;

}

.loader--hidden{

    opacity:0;
    visibility:hidden;
    pointer-events:none;

}