/* ================================
   JASSE — Base: variables, reset, typography, layout, animations
   ================================ */

:root {
    --cream: #fdfbf7;
    --cream-deep: #f5f1e8;
    --ink: #1a1916;
    --ink-soft: #2a2924;
    --ink-muted: #5a564c;
    --gold: #b89a5c;
    --gold-dark: #8a7340;
    --olive: #3d4a35;
    --olive-dark: #2b3525;
    --rule: rgba(26, 25, 22, 0.12);
    --rule-soft: rgba(26, 25, 22, 0.06);

    --font-display: 'Fraunces', 'Cormorant Garamond', Georgia, serif;
    --font-body: 'Outfit', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, monospace;

    --max-w: 1440px;
    --gutter: clamp(20px, 5vw, 80px);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html {
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    background: var(--cream);
    color: var(--ink);
    font-family: var(--font-body);
    font-weight: 300;
    font-size: 16px;
    line-height: 1.6;
    overflow-x: hidden;
    background-image:
        radial-gradient(circle at 20% 30%, rgba(184, 154, 92, 0.025) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(61, 74, 53, 0.02) 0%, transparent 50%);
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }

/* ---- Typography ---- */

h1, h2, h3, h4 {
    font-family: var(--font-display);
    font-weight: 300;
    letter-spacing: -0.02em;
    line-height: 1.05;
    color: var(--ink);
}

h1 { font-size: clamp(48px, 9vw, 144px); }
h2 { font-size: clamp(36px, 6vw, 88px); }
h3 { font-size: clamp(24px, 3.5vw, 44px); }
h4 { font-size: clamp(20px, 2.5vw, 28px); }

.italic { font-style: italic; }

.eyebrow {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--gold-dark);
}

.lead {
    font-family: var(--font-display);
    font-size: clamp(20px, 2.2vw, 28px);
    font-weight: 300;
    line-height: 1.4;
    color: var(--ink-soft);
}

/* ---- Layout ---- */

.container {
    max-width: var(--max-w);
    margin: 0 auto;
    padding: 0 var(--gutter);
}

section {
    padding: clamp(80px, 12vh, 180px) 0;
}

/* ---- Animations ---- */

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(40px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.reveal {
    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.in-view {
    opacity: 1;
    transform: translateY(0);
}

.reveal-stagger > * {
    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-stagger.in-view > *:nth-child(1) { transition-delay: 0s; }
.reveal-stagger.in-view > *:nth-child(2) { transition-delay: 0.1s; }
.reveal-stagger.in-view > *:nth-child(3) { transition-delay: 0.2s; }
.reveal-stagger.in-view > *:nth-child(4) { transition-delay: 0.3s; }

.reveal-stagger.in-view > * {
    opacity: 1;
    transform: translateY(0);
}
