:root {
    
    --color-bg-stark: #F4F4F0;
    --color-bg-gray: #EAEAE4;
    --color-text-main: #0D2B1D;
    --color-text-muted: #3F5E4D;

    
    --font-main: 'Inter', sans-serif;

    
    --fs-h6: 0.85rem;
    --fs-h5: 1rem;
    --fs-h4: 1.25rem;
    --fs-h3: 1.75rem;
    --fs-h2: clamp(2rem, 3.5vw, 2.75rem);
    --fs-h1: clamp(2.75rem, 5vw, 4rem);

    
    --spacing-section: clamp(80px, 8vw, 120px);
    --border-sharp: 0px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: var(--font-main);
    color: var(--color-text-main);
    background-color: var(--color-bg-stark);
    line-height: 1.5;
    
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}


h1,
h2,
h3,
h4,
h5,
h6 {
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--color-text-main);
}

h1 {
    font-size: var(--fs-h1);
    letter-spacing: -0.03em;
}

h2 {
    font-size: var(--fs-h2);
}

h3 {
    font-size: var(--fs-h3);
}

h4 {
    font-size: var(--fs-h4);
}

p {
    font-size: 1.05rem;
    font-weight: 400;
    line-height: 1.6;
}



a {
    color: inherit;
    text-decoration: none;
    transition: color 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

img,
video {
    max-width: 100%;
    height: auto;
    display: block;
}

ul,
ol {
    list-style: none;
}


::selection {
    background-color: var(--color-text-main);
    color: var(--color-bg-stark);
}


.reveal-up {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(0.16, 1, 0.3, 1), transform 1s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-up.is-visible {
    opacity: 1;
    transform: translateY(0);
}


.stagger-1 {
    transition-delay: 0.1s;
}

.stagger-2 {
    transition-delay: 0.2s;
}

.stagger-3 {
    transition-delay: 0.3s;
}

html {
    
    scroll-padding-top: 120px;

    
    scroll-behavior: smooth;
}