:root{--color-bg:#f5f0eb;--color-bg-alt:#faf7f3;--color-dark:#1a1a1a;--color-dark-soft:#2d2d2d;--color-text:#1a1a1a;--color-text-secondary:#6b6560;--color-text-muted:#9c9187;--color-accent:#8b6f4e;--color-accent-light:#b89b78;--color-accent-hover:#7a5f3e;--color-border:#e0d8d0;--color-border-light:#ede8e3;--color-cream:#faf7f3;--color-overlay:#1a1a1a73;--color-overlay-light:#1a1a1a40;--color-white:#fff;--font-heading:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-accent:"Cormorant Garamond", Georgia, serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;--space-5xl:8rem;--container-max:1400px;--container-padding:clamp(1rem, 4vw, 3rem);--section-gap:clamp(4rem, 10vh, 8rem);--text-xs:clamp(.7rem, .65rem + .25vw, .8rem);--text-sm:clamp(.8rem, .75rem + .25vw, .875rem);--text-base:clamp(.9rem, .85rem + .25vw, 1rem);--text-md:clamp(1rem, .9rem + .5vw, 1.125rem);--text-lg:clamp(1.125rem, 1rem + .5vw, 1.25rem);--text-xl:clamp(1.25rem, 1rem + 1vw, 1.75rem);--text-2xl:clamp(1.5rem, 1rem + 2vw, 2.5rem);--text-3xl:clamp(2rem, 1.5rem + 2.5vw, 3.5rem);--text-4xl:clamp(2.5rem, 1.5rem + 4vw, 5rem);--text-hero:clamp(3rem, 2rem + 5vw, 7rem);--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--duration-fast:.2s;--duration-normal:.4s;--duration-slow:.7s;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000000f;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 30px #0000001a;--shadow-xl:0 20px 60px #0000001f;--header-height-expanded:80px;--header-height-compact:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;scrollbar-color:var(--color-accent-light) transparent}body{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg);min-height:100dvh;line-height:1.6;overflow-x:hidden}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}::selection{background-color:var(--color-accent);color:var(--color-cream)}h1,h2,h3,h4{font-family:var(--font-heading);text-wrap:balance;color:var(--color-text);font-weight:500;line-height:1.15}h1{font-size:var(--text-hero);letter-spacing:-.02em}h2{font-size:var(--text-3xl);letter-spacing:-.01em}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}p{text-wrap:pretty;max-width:65ch}.container{max-width:var(--container-max);padding-inline:var(--container-padding);margin-inline:auto}.section-label{font-family:var(--font-body);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-lg);align-items:center;gap:var(--space-md);font-weight:500;display:flex}.section-label:before{content:"";background-color:var(--color-accent);width:40px;height:1px;display:inline-block}.text-accent{font-family:var(--font-accent);font-style:italic;font-weight:400}.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;padding:var(--space-md) var(--space-2xl);border-radius:var(--radius-full);transition:all var(--duration-normal) var(--ease-out);min-height:44px;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.btn--primary{background-color:var(--color-dark);color:var(--color-cream)}.btn--primary:hover{background-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn--outline{background:0 0;border:1px solid}.btn--outline:hover{background-color:var(--color-dark);color:var(--color-cream);border-color:var(--color-dark)}.btn--ghost{color:var(--color-cream);background:0 0;border:1px solid #fff6}.btn--ghost:hover{background-color:#ffffff1a;border-color:#ffffffb3}body.menu-open{overflow:hidden}
