/* ============ TOKENS ============ */
:root {
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1.02rem, 0.96rem + 0.3vw, 1.18rem);
  --text-lg: clamp(1.18rem, 1rem + 0.8vw, 1.55rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.3vw, 2.3rem);
  --text-2xl: clamp(2.1rem, 1.3rem + 2.6vw, 3.6rem);
  --text-3xl: clamp(2.8rem, 1.4rem + 5vw, 5.4rem);

  --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem;
  --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem;
  --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --radius-sm:.375rem; --radius-md:.5rem; --radius-full:9999px;
  --transition: 240ms cubic-bezier(.16,1,.3,1);
  --content: 1120px;

  --font-display: 'Cormorant Garamond', 'Georgia', serif;
  --font-body: 'EB Garamond', 'Georgia', serif;
}

:root, [data-theme="light"] {
  --green: #1F4332;
  --green-deep: #122A1B;
  --gold: #BC9242;
  --gold-soft: #d6b369;
  --ivory: #F7F4EC;

  --color-bg: #F6F2E8;
  --color-surface: #FFFDF7;
  --color-surface-alt: #EEE7D6;
  --color-text: #20271E;
  --color-text-muted: #565C4F;
  --color-border: #D8D1BF;
  --rule: color-mix(in oklab, var(--gold) 55%, transparent);
}
[data-theme="dark"] {
  --green: #1F4332;
  --green-deep: #0E2014;
  --color-bg: #102017;
  --color-surface: #15291B;
  --color-surface-alt: #13271A;
  --color-text: #ECE7D8;
  --color-text-muted: #AEB4A1;
  --color-border: #2A4636;
  --gold: #D6B369;
  --gold-soft: #e3c685;
  --rule: color-mix(in oklab, var(--gold) 50%, transparent);
}

/* ============ BASE ============ */
*,*::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;scroll-padding-top:5rem;}
body{min-height:100dvh;line-height:1.68;font-family:var(--font-body);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);transition:background .4s ease,color .4s ease;}
img{display:block;max-width:100%;height:auto;}
ul[role=list],ol[role=list]{list-style:none;}
a{color:inherit;text-decoration:none;}
button{cursor:pointer;background:none;border:none;color:inherit;font:inherit;}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.08;text-wrap:balance;}
p{text-wrap:pretty;max-width:64ch;}
::selection{background:color-mix(in oklab,var(--gold) 35%,transparent);}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--radius-sm);}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}

.wrap{width:min(var(--content),100% - 2.6rem);margin-inline:auto;}
.narrow{max-width:720px;margin-inline:auto;}
.center{text-align:center;}
.center p{margin-inline:auto;}

/* crest theme swap */
.dark-mark{display:none;}
[data-theme="dark"] .light-mark{display:none;}
[data-theme="dark"] .dark-mark{display:block;}

/* ============ HEADER ============ */
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--color-bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);}
.header-inner{display:flex;align-items:center;gap:var(--space-6);padding-block:var(--space-4);}
.brand{display:flex;align-items:center;gap:var(--space-3);}
.brand-mark{width:36px;height:auto;object-fit:contain;flex:none;}
.brand-text{display:flex;flex-direction:column;line-height:1;}
.brand-name{font-family:var(--font-display);font-weight:600;font-size:1.32rem;letter-spacing:.07em;color:var(--color-text);}
.brand-sub{font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);margin-top:.34rem;}
.nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-8);font-size:var(--text-sm);letter-spacing:.04em;}
.nav a{color:var(--color-text-muted);transition:color var(--transition);position:relative;}
.nav a:not(.nav-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform var(--transition);}
.nav a:not(.nav-cta):hover{color:var(--color-text);}
.nav a:not(.nav-cta):hover::after{transform:scaleX(1);}
.nav-cta{color:var(--green)!important;font-weight:500;border:1px solid var(--rule);padding:.4rem 1.1rem;border-radius:var(--radius-full);transition:background var(--transition),color var(--transition);}
.nav-cta:hover{background:var(--green);color:var(--ivory)!important;}
[data-theme="dark"] .nav-cta{color:var(--gold)!important;}
[data-theme="dark"] .nav-cta:hover{background:var(--gold);color:var(--green-deep)!important;}
.theme-toggle{width:38px;height:38px;display:grid;place-items:center;border-radius:var(--radius-full);color:var(--color-text-muted);border:1px solid var(--color-border);transition:color var(--transition),border-color var(--transition);}
.theme-toggle:hover{color:var(--gold);border-color:var(--gold);}

/* ============ HERO ============ */
.hero{position:relative;text-align:center;padding-block:clamp(var(--space-20),11vw,var(--space-32));overflow:hidden;}
.hero-bg{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(120% 70% at 50% -10%, color-mix(in oklab,var(--gold) 14%,transparent), transparent 60%),
    var(--color-bg);}
.hero-bg::after{content:"";position:absolute;inset:clamp(1rem,2.5vw,2.4rem);border:1px solid var(--rule);pointer-events:none;}
.hero-inner{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;}
.hero-crest{width:clamp(150px,18vw,220px);height:auto;margin-bottom:var(--space-6);}
[data-theme="dark"] .hero-crest{filter:drop-shadow(0 2px 14px rgba(214,179,105,.18));}
.hero-rule{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5);color:var(--gold);}
.hero-rule span{display:block;width:clamp(40px,8vw,80px);height:1px;background:var(--rule);}
.hero-rule i{font-style:normal;font-size:.8rem;opacity:.9;}
.eyebrow{font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-5);}
.hero h1{font-size:var(--text-3xl);color:var(--color-text);letter-spacing:.02em;font-weight:600;}
.hero-line{font-size:var(--text-xl);font-family:var(--font-display);font-weight:500;color:var(--color-text);max-width:24ch;margin:var(--space-5) auto var(--space-4);line-height:1.2;font-style:italic;}
.hero-sub{font-size:var(--text-lg);color:var(--color-text-muted);max-width:46ch;margin:0 auto var(--space-10);line-height:1.55;}

/* ============ BUTTONS ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:var(--text-sm);letter-spacing:.12em;text-transform:uppercase;padding:.95rem 2.2rem;border-radius:var(--radius-full);transition:transform var(--transition),background var(--transition),box-shadow var(--transition),color var(--transition);}
.btn-primary{background:var(--green);color:var(--ivory);box-shadow:0 8px 22px color-mix(in oklab,var(--green) 30%,transparent);}
.btn-primary:hover{background:var(--green-deep);transform:translateY(-2px);}
[data-theme="dark"] .btn-primary{background:var(--gold);color:var(--green-deep);}
[data-theme="dark"] .btn-primary:hover{background:var(--gold-soft);}
.btn-gold{background:var(--gold);color:var(--green-deep);box-shadow:0 8px 22px color-mix(in oklab,var(--gold) 28%,transparent);}
.btn-gold:hover{background:var(--gold-soft);transform:translateY(-2px);}
.btn-lg{font-size:var(--text-base);padding:1.05rem 2.4rem;text-transform:none;letter-spacing:.03em;}

/* ============ SECTIONS ============ */
.section{padding-block:clamp(var(--space-20),9vw,var(--space-32));}
.section-alt{background:var(--color-surface-alt);}
.kicker{font-size:.7rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-5);display:flex;align-items:center;gap:var(--space-3);}
.kicker.center,.center .kicker{justify-content:center;}
.kicker::before,.kicker::after{content:"";flex:none;width:24px;height:1px;background:var(--rule);}
.kicker:not(.center):not(.center *)::before{display:none;}
.section-title{font-size:var(--text-2xl);color:var(--color-text);margin-bottom:0;}
.section-title.light{color:var(--ivory);}

/* CREED */
.creed{position:relative;}
.creed .narrow{max-width:780px;}
.creed-body{font-family:var(--font-display);font-weight:500;font-size:clamp(1.45rem,1rem + 1.8vw,2.15rem);line-height:1.44;color:var(--color-text);max-width:none;text-align:left;letter-spacing:.005em;}
.dropcap{float:left;font-family:var(--font-display);font-weight:700;font-size:4.2em;line-height:.72;padding:.04em .12em .02em 0;color:var(--gold);}

/* THE HOUSE / LEDGER */
.house-head{margin-bottom:var(--space-16);}
.ledger{display:flex;flex-direction:column;border-top:1px solid var(--rule);}
.ledger-item{display:grid;grid-template-columns:auto 1fr;gap:var(--space-8);padding-block:var(--space-10);border-bottom:1px solid var(--color-border);align-items:start;}
.ledger-num{font-family:var(--font-display);font-size:clamp(2.2rem,1rem + 3vw,3.4rem);font-weight:500;color:var(--gold);line-height:1;opacity:.85;font-variant-numeric:lining-nums;}
.ledger-title{display:flex;align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;}
.ledger-title h3{font-size:var(--text-xl);color:var(--color-text);}
.tag{font-family:var(--font-body);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;padding:.3rem .8rem;border-radius:var(--radius-full);border:1px solid var(--color-border);color:var(--color-text-muted);}
.tag-active{color:var(--green);border-color:var(--gold);background:color-mix(in oklab,var(--gold) 16%,transparent);}
[data-theme="dark"] .tag-active{color:var(--gold);}
.ledger-body p{color:var(--color-text-muted);font-size:var(--text-base);max-width:60ch;}
.ledger-link{display:inline-block;margin-top:var(--space-4);font-size:var(--text-sm);color:var(--green);letter-spacing:.04em;border-bottom:1px solid var(--rule);padding-bottom:2px;transition:border-color var(--transition),color var(--transition);}
.ledger-link:hover{border-color:var(--gold);color:var(--gold);}
[data-theme="dark"] .ledger-link{color:var(--gold);}

/* PRINCIPLES */
.principles-sec .center{margin-bottom:var(--space-16);}
.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-12);}
.principle{display:flex;flex-direction:column;gap:var(--space-4);padding-top:var(--space-6);border-top:1px solid var(--rule);}
.p-num{font-family:var(--font-display);font-size:1.9rem;color:var(--gold);letter-spacing:.06em;line-height:1;}
.principle h3{font-size:var(--text-lg);color:var(--color-text);}
.principle p{color:var(--color-text-muted);font-size:var(--text-base);max-width:none;}

/* STEWARDSHIP */
.steward-line{font-family:var(--font-display);font-style:italic;font-size:clamp(1.25rem,1rem + 1vw,1.7rem);line-height:1.5;color:var(--color-text-muted);max-width:34ch;}

/* CONTACT DARK */
.section-dark{background:
  radial-gradient(95% 130% at 50% 0%, color-mix(in oklab,var(--gold) 14%,transparent), transparent 55%),
  var(--green);position:relative;}
.section-dark::before{content:"";position:absolute;inset:clamp(1rem,2.4vw,2.4rem);border:1px solid color-mix(in oklab,var(--gold) 32%,transparent);pointer-events:none;}
.contact-inner{position:relative;display:flex;flex-direction:column;align-items:center;}
.contact-crest{width:84px;height:auto;margin-bottom:var(--space-6);filter:drop-shadow(0 2px 12px rgba(0,0,0,.25));}
.section-dark .kicker-gold{color:var(--gold-soft);}
.section-dark .kicker-gold::before,.section-dark .kicker-gold::after{background:color-mix(in oklab,var(--gold) 50%,transparent);}
.contact-body{color:color-mix(in oklab,var(--ivory) 84%,transparent);font-size:var(--text-lg);max-width:44ch;margin:var(--space-4) auto var(--space-8);}

/* ============ FOOTER ============ */
.site-footer{background:var(--green-deep);color:var(--ivory);padding-block:var(--space-12);}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap;}
.brand-footer .brand-name{color:var(--ivory);}
.footer-right{text-align:right;display:flex;flex-direction:column;gap:var(--space-2);align-items:flex-end;}
.footer-mail{color:var(--gold);font-size:var(--text-sm);}
.footer-mail:hover{color:var(--gold-soft);}
.footer-fine{font-size:var(--text-xs);color:color-mix(in oklab,var(--ivory) 55%,transparent);letter-spacing:.04em;}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .85s ease,transform .85s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:none;}

/* ============ RESPONSIVE ============ */
@media (max-width:820px){
  .principles{grid-template-columns:1fr;gap:var(--space-10);}
  .nav{display:none;}
  .ledger-item{grid-template-columns:1fr;gap:var(--space-3);}
  .ledger-num{font-size:2rem;}
  .footer-inner{flex-direction:column;align-items:flex-start;gap:var(--space-6);}
  .footer-right{text-align:left;align-items:flex-start;}
}
