/* Italiana (display, single weight) and Plus Jakarta Sans (body, used at 300). Both from Google Fonts (OFL), self-hosted in /fonts. */
@font-face{font-family:"AriensNobela";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/AriensNobela.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url("../fonts/PlusJakartaSans-Variable-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url("../fonts/PlusJakartaSans-Variable-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}

:root{
/* Brand palette (brand-guide 2.1 / 2.2) */
--olive:#756e49;--blush:#F8E1D1;--gold:#C6A66B;--terracotta:#C97A5A;--smoky:#6E8290;
/* Olive ramp, derived from #756e49. olive-950 is the brand "black". */
--olive-950:#1C1A10;--olive-900:#26241A;--olive-800:#363323;--olive-700:#4D4831;--olive-600:#615B3D;--olive-500:#756e49;--olive-400:#8F8964;--olive-300:#ADA685;--olive-200:#CEC7AA;
/* Blush ramp. blush-50 is the lightest allowed tone (never pure white). */
--blush-50:#FCF0E7;--blush-100:#F8E1D1;--blush-200:#F0D0BB;--blush-300:#E4BDA5;
/* Accent shades for depth inside a mood */
--gold-300:#DCC395;--gold-500:#C6A66B;--gold-700:#9A7E4A;
--terracotta-300:#E0A58C;--terracotta-500:#C97A5A;--terracotta-700:#9C5A40;
--smoky-300:#9BAAB4;--smoky-500:#6E8290;--smoky-700:#4E5E6A;--smoky-900:#2F3A42;

/* Semantic: surfaces (section moods) */
--surface-paper:var(--blush);--surface-paper-light:var(--blush-50);--surface-olive:var(--olive);--surface-ink:var(--olive-950);--surface-ink-2:var(--olive-900);
--surface-smoky:var(--smoky);--surface-terracotta:var(--terracotta);--surface-gold:var(--gold);

/* Semantic: text */
--text-on-paper:var(--olive-900);      /* body on blush, 12:1 */
--text-on-paper-display:var(--olive);  /* display/headline on blush (headline scale only, 4.1:1) */
--text-on-paper-muted:var(--olive-700);/* secondary text on blush, 7:1 */
--text-on-dark:var(--blush);           /* on olive, ink, smoky, terracotta */
--text-on-dark-muted:var(--blush-200);
--text-on-gold:var(--olive-950);

/* Semantic: lines */
--line:var(--olive);--line-soft:color-mix(in oklab,var(--olive) 35%,transparent);--line-on-dark:color-mix(in oklab,var(--blush) 45%,transparent);
--focus-ring:var(--gold);
}

:root{
--font-display:"AriensNobela","Cormorant",serif;
--font-body:"Plus Jakarta Sans",system-ui,sans-serif;
--weight-display:400;--weight-body:300;

/* Display scale: huge and sparing. Fluid. */
--type-mega:clamp(96px,19vw,340px);     /* bleeding/cropped wordmark-scale type */
--type-display:clamp(64px,9vw,168px);
--type-h1:clamp(48px,6vw,104px);
--type-h2:clamp(36px,4.2vw,72px);
--type-h3:clamp(28px,2.8vw,44px);
--type-statement:clamp(30px,3.4vw,58px); /* long paragraphs set in AriensNobela */
--type-lead:20px;--type-body:17px;--type-small:14px;--type-label:11px;--type-micro:10px;

--leading-mega:0.92;--leading-display:1.08;--leading-heading:1.18;--leading-statement:1.32;--leading-body:1.75;--leading-label:1.4;
--tracking-display:0.01em;--tracking-heading:0.02em;--tracking-body:0.005em;--tracking-label:0.28em;--tracking-button:0.16em;
}

:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;--space-11:192px;--space-12:256px;
--gutter:clamp(20px,4vw,64px); /* @kind spacing */
--section-pad-y:clamp(96px,14vw,224px); /* @kind spacing */
--measure:34em; /* @kind spacing */
--measure-statement:18em; /* @kind spacing */
/* Shape: square corners everywhere except pills, circles and arches */
--radius-0:0;--radius-pill:999px;--radius-circle:50%;--radius-arch:999px 999px 0 0;
--hairline:1px;--border-hairline:1px solid var(--line);--border-hairline-dark:1px solid var(--line-on-dark);
--shadow:none;
}

:root{
--ease-settle:cubic-bezier(.22,1,.36,1); /* @kind other */ /* default: arrives fast, settles long */
--ease-unfold:cubic-bezier(.16,.84,.32,1); /* @kind other */ /* rays blooming, iris opening */
--ease-breath:cubic-bezier(.45,0,.25,1); /* @kind other */ /* inhale/exhale loops */
--ease-dissolve:cubic-bezier(.65,0,.35,1); /* @kind other */ /* noise resolving to stillness */
--dur-calm:600ms; /* @kind other */
--dur-slow:1200ms; /* @kind other */
--dur-bloom:1800ms; /* @kind other */
--dur-inhale:4000ms; /* @kind other */
--dur-exhale:6000ms; /* @kind other */
}
@media (prefers-reduced-motion:reduce){:root{
--dur-calm:1ms; /* @kind other */
--dur-slow:1ms; /* @kind other */
--dur-bloom:1ms; /* @kind other */
}}

:root{
--grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .11  0 0 0 0 .1  0 0 0 0 .06  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); /* @kind other */
--grain-opacity:.22; /* @kind other */
}
/* Texture layers. Declared as classes (not vars) so the image URLs resolve relative to this file wherever styles.css is linked. */
.sr-gobo-leaf{background-image:url("../assets/leaf-shadow-wall.jpg");background-size:cover;background-position:center}
/* Grain overlay on any positioned element */
.sr-grain{position:relative;isolation:isolate}
.sr-grain::after{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:var(--grain-opacity);mix-blend-mode:multiply;pointer-events:none;z-index:1}
/* Photo grades */
.sr-duotone{filter:grayscale(1) sepia(.35) contrast(1.05) brightness(.82)}
.sr-olive-grade{filter:sepia(.18) saturate(.85) contrast(1.02)}

*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-paper);color:var(--text-on-paper);font-family:var(--font-body);font-weight:var(--weight-body);font-size:var(--type-body);line-height:var(--leading-body);letter-spacing:var(--tracking-body);-webkit-font-smoothing:antialiased;font-synthesis:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--weight-display);margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:inherit;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:100% 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size var(--dur-calm) var(--ease-settle)}
a:hover{background-size:0 1px;background-position:100% 100%}
::selection{background:var(--gold);color:var(--olive-950)}
:focus-visible{outline:1px solid var(--focus-ring);outline-offset:4px}
.sr-label{font-family:var(--font-body);font-weight:300;font-size:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:var(--leading-label)}
.sr-display{font-family:var(--font-display);font-size:var(--type-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display)}
.sr-statement{font-family:var(--font-display);font-size:var(--type-statement);line-height:var(--leading-statement)}

