*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --cream: #F5F0E8; --cream-dark: #EAE3D2; --cream-deep: #D9CFBA;
  --forest: #2C4A3E; --forest-mid: #3D6B5A; --forest-light: #5C8F7A;
  --moss: #7AAB8F; --sage: #B2CABC; --sand: #C4A882;
  --ink: #1A1F1C; --muted: #7A7E7B;
  --serif: 'Playfair Display', Georgia, serif;
  --sans: 'DM Sans', sans-serif;
}
html { scroll-behavior: smooth; }
body { font-family: var(--sans); background: var(--cream); color: var(--ink); overflow-x: hidden; cursor: none; }

.cursor { position: fixed; top:0; left:0; z-index:9999; width:10px; height:10px; background:var(--forest); border-radius:50%; pointer-events:none; transform:translate(-50%,-50%); transition: width .3s, height .3s; }
.cursor-ring { position:fixed; top:0; left:0; z-index:9998; width:36px; height:36px; border:1.5px solid var(--forest-mid); border-radius:50%; pointer-events:none; transform:translate(-50%,-50%); transition: width .3s, height .3s, opacity .3s; opacity:.5; }

nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:24px 56px; }
nav::before { content:''; position:absolute; inset:0; background:rgba(245,240,232,0.88); backdrop-filter:blur(16px); border-bottom:1px solid rgba(44,74,62,0.08); z-index:-1; }
.nav-logo { font-family:var(--serif); font-size:20px; font-weight:700; color:var(--forest); letter-spacing:.01em; text-decoration:none; cursor:none; }
.nav-logo span { color:var(--forest-light); font-style:italic; }
.nav-links { display:flex; gap:36px; list-style:none; }
.nav-links a { font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); text-decoration:none; font-weight:400; opacity:.6; transition:opacity .2s, color .2s; cursor:none; }
.nav-links a:hover, .nav-links a.active { opacity:1; color:var(--forest); }
.nav-cta { font-size:11px; letter-spacing:.1em; text-transform:uppercase; background:var(--forest); color:var(--cream); border:none; padding:12px 28px; cursor:none; font-family:var(--sans); font-weight:500; transition:background .25s, transform .15s; border-radius:2px; text-decoration:none; }
.nav-cta:hover { background:var(--forest-mid); transform:translateY(-1px); }

.btn-forest { font-size:12px; letter-spacing:.08em; text-transform:uppercase; background:var(--forest); color:var(--cream); border:none; padding:16px 36px; cursor:none; font-family:var(--sans); font-weight:500; border-radius:2px; transition:background .25s, transform .15s; text-decoration:none; display:inline-block; }
.btn-forest:hover { background:var(--forest-mid); transform:translateY(-2px); }
.btn-outline { font-size:12px; letter-spacing:.08em; text-transform:uppercase; background:transparent; color:var(--forest); border:1.5px solid var(--forest); padding:15px 36px; cursor:none; font-family:var(--sans); font-weight:400; border-radius:2px; transition:background .25s, color .25s; text-decoration:none; display:inline-block; }
.btn-outline:hover { background:var(--forest); color:var(--cream); }

.section-eyebrow { font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--forest-mid); margin-bottom:16px; display:flex; align-items:center; gap:12px; }
.section-eyebrow::before { content:''; display:inline-block; width:24px; height:1px; background:var(--forest-mid); }
.section-eyebrow.light { color:var(--moss); }
.section-eyebrow.light::before { background:var(--moss); }
.section-title { font-family:var(--serif); font-size:clamp(34px,4vw,52px); font-weight:700; line-height:1.12; margin-bottom:20px; }
.section-title em { font-style:italic; font-weight:400; }
.green-line { width:40px; height:2px; background:var(--forest-light); margin:24px 0 28px; }
.green-line.light { background:var(--moss); }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .75s ease, transform .75s ease; }
.reveal.in { opacity:1; transform:translateY(0); }

footer { background:var(--ink); padding:40px 56px; display:flex; justify-content:space-between; align-items:center; }
.foot-logo { font-family:var(--serif); font-size:18px; font-weight:700; color:var(--cream); opacity:.45; }
.foot-logo span { color:var(--forest-light); opacity:1; font-style:italic; }
.foot-copy { font-size:11px; color:var(--muted); opacity:.5; letter-spacing:.06em; }
.foot-links { display:flex; gap:24px; }
.foot-links a { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); text-decoration:none; opacity:.5; transition:opacity .2s, color .2s; cursor:none; }
.foot-links a:hover { opacity:1; color:var(--moss); }

::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--cream-dark); }
::-webkit-scrollbar-thumb { background:var(--forest-light); border-radius:2px; }
