:root { --forest:#4b5320; --forest-dark:#4b5320; --gold:#c8aa6c; --cream:#f4f0e6; --paper:#fcfbf7; --ink:#181818; --muted:#68635c; --line:rgba(24,24,24,.16); --serif:"Libre Caslon Display",Georgia,serif; --sans:"DM Sans",Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:76px; }
body { margin:0; color:var(--ink); background:var(--paper); font:400 16px/1.72 var(--sans); overflow-x:hidden; }
body.menu-open { overflow:hidden; }
a { color:inherit; }
img { max-width:100%; display:block; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:-5rem; left:1rem; z-index:100; padding:.7rem 1rem; color:var(--forest-dark); background:var(--gold); font-weight:700; }
.skip-link:focus { top:1rem; }
.scroll-progress { position:fixed; inset:0 0 auto; z-index:100; height:3px; }
.scroll-progress span { display:block; width:0; height:100%; background:var(--gold); }
.site-header { position:sticky; top:0; z-index:30; height:76px; padding:0 clamp(1.25rem,4.5vw,4.5rem); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(252,251,247,.94); backdrop-filter:blur(14px); }
.brand,.footer-brand { display:flex; align-items:center; text-decoration:none; }
.brand-logo { width:58px; height:58px; object-fit:contain; }
.site-nav { display:flex; align-items:center; gap:clamp(.75rem,1.5vw,1.5rem); }
.site-nav a { position:relative; font-size:.78rem; font-weight:600; text-decoration:none; }
.site-nav a:not(.nav-cta)::after { content:""; position:absolute; right:0; bottom:-.45rem; left:0; height:1px; background:var(--forest); transform:scaleX(0); transform-origin:right; transition:transform .2s; }
.site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a.active::after { transform:scaleX(1); transform-origin:left; }
.nav-cta { padding:.62rem 1.05rem; border-radius:99px; color:white; background:var(--forest); }
.menu-button { display:none; width:44px; height:44px; padding:9px; border:0; border-radius:50%; background:transparent; }
.menu-button span:not(.sr-only) { display:block; width:24px; height:2px; margin:5px 0; background:var(--ink); transition:transform .2s,opacity .2s; }
.eyebrow { margin:0 0 1rem; color:var(--forest); font-size:.7rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.eyebrow.light { color:var(--gold); }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; }
h2 { font-size:clamp(2.5rem,4.8vw,5rem); line-height:1.05; text-wrap:balance; }
.button { min-height:50px; padding:.78rem 1.3rem; display:inline-flex; align-items:center; justify-content:center; border-radius:99px; font-size:.86rem; font-weight:700; text-decoration:none; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button-light { color:var(--forest-dark); background:var(--cream); }
.button-gold { color:var(--forest-dark); background:var(--gold); }
.simple-link { display:inline-block; color:var(--forest); font-weight:700; text-underline-offset:.35rem; }
.light-link { color:white; }
.hero { min-height:calc(100svh - 76px); display:grid; grid-template-columns:1.03fr .97fr; color:white; background:var(--forest-dark); }
.hero-copy { padding:clamp(5rem,10vw,9rem) clamp(1.25rem,7vw,7rem); display:flex; flex-direction:column; justify-content:center; }
.hero h1 { margin-bottom:1.5rem; font-size:clamp(4rem,7.7vw,8rem); line-height:.86; }
.hero-intro { max-width:520px; color:rgba(255,255,255,.68); font-size:clamp(1.05rem,1.5vw,1.3rem); }
.hero-actions { margin-top:2rem; display:flex; align-items:center; gap:1.5rem; }
.hero-image { min-height:620px; margin:0; position:relative; overflow:hidden; background:#171717; }
.hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.52),transparent 48%); pointer-events:none; }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:50% 35%; }
.hero-image figcaption { position:absolute; right:2rem; bottom:1.5rem; z-index:1; color:rgba(255,255,255,.75); font-size:.68rem; letter-spacing:.12em; text-transform:uppercase; }
.section { padding:clamp(4rem,7vw,6.5rem) clamp(1.25rem,8vw,8rem); display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(2.5rem,7vw,7rem); border-bottom:1px solid var(--line); }
.section-heading { align-self:start; position:sticky; top:120px; }
.section-heading h2 { max-width:580px; }
.long-copy,.section-content { max-width:740px; }
.lead { color:var(--ink); font:clamp(1.25rem,2vw,1.65rem)/1.5 var(--serif); }
.long-copy p:not(.lead),.section-content>p:not(.lead) { color:var(--muted); }
.legacy { display:grid; grid-template-columns:1fr 1fr; color:white; background:var(--forest); }
.legacy-image { min-height:720px; margin:0; overflow:hidden; }
.legacy-image img { width:100%; height:100%; object-fit:cover; }
.legacy-copy { padding:clamp(3.5rem,6vw,6rem); display:flex; flex-direction:column; justify-content:center; }
.legacy-copy h2 { font-size:clamp(2.5rem,4.3vw,4.6rem); }
.legacy-copy p:not(.eyebrow) { color:rgba(255,255,255,.68); }
.topic-list { margin-top:2.5rem; border-top:1px solid var(--line); }
.topic-list div { padding:1rem 0; display:grid; grid-template-columns:54px 1fr; border-bottom:1px solid var(--line); }
.topic-list span { color:var(--gold); font-size:.68rem; letter-spacing:.12em; }
.experiences { padding:clamp(4rem,7vw,6.5rem) clamp(1.25rem,8vw,8rem); display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.5rem,7vw,7rem); color:white; background:var(--forest-dark); }
.experience-header h2 { max-width:680px; }
.experience-copy { max-width:650px; padding-top:3rem; }
.experience-copy p { color:rgba(255,255,255,.65); }
.experience-copy .button { margin-top:1rem; }
.event-types,.support-options { margin:2rem 0; display:flex; flex-wrap:wrap; gap:.65rem; }
.event-types span,.support-options span { padding:.55rem .9rem; border:1px solid var(--line); border-radius:99px; font-size:.78rem; font-weight:600; }
.social-projects { padding:clamp(4rem,7vw,6.5rem) clamp(1.25rem,8vw,8rem); display:grid; grid-template-columns:1.35fr .65fr; gap:7vw; align-items:end; color:white; background:var(--forest); }
.social-projects-copy { max-width:850px; }
.social-projects-copy h2 { max-width:900px; }
.social-projects-copy p:not(.eyebrow) { max-width:700px; color:rgba(255,255,255,.67); }
.social-projects-note { padding:2rem 0 0 2rem; border-left:1px solid rgba(255,255,255,.2); }
.social-projects-note p { color:rgba(255,255,255,.67); }
.books { padding:clamp(4rem,7vw,6.5rem) clamp(1.25rem,6vw,6rem); background:var(--cream); }
.books-header { max-width:820px; margin-bottom:3rem; }
.books-header>p:last-child { color:var(--muted); }
.book-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:clamp(1rem,2vw,2rem); }
.book-card { min-width:0; margin:0; display:flex; flex-direction:column; align-items:flex-start; }
.book-card img { width:100%; height:auto; aspect-ratio:484/634; object-fit:cover; box-shadow:0 14px 35px rgba(25,25,25,.14); transition:transform .25s,box-shadow .25s; }
.book-card:hover img { transform:translateY(-7px); box-shadow:0 20px 45px rgba(30,35,30,.2); }
.book-card h3 { margin:1rem 0 .45rem; font:1rem/1.35 var(--serif); }
.book-price { min-height:3.2em; margin:0 0 .9rem; color:var(--muted); font-size:.7rem; line-height:1.5; }
.book-buy { margin-top:auto; padding:.62rem .9rem; display:inline-flex; align-items:center; justify-content:center; border-radius:99px; color:white; background:var(--forest); font-size:.72rem; font-weight:700; text-decoration:none; transition:transform .2s,background .2s; }
.book-buy:hover { background:var(--forest-dark); transform:translateY(-2px); }
.book-buy-secondary { color:var(--forest); border:1px solid var(--forest); background:transparent; }
.book-buy-secondary:hover { color:white; }
.support { padding:clamp(4rem,7vw,6.5rem) clamp(1.25rem,8vw,8rem); display:grid; grid-template-columns:1fr 1fr; gap:7vw; color:white; background:var(--forest-dark); }
.support-copy { max-width:650px; }
.support-copy>p { color:rgba(255,255,255,.67); }
.support-options span { border-color:rgba(255,255,255,.2); }
.support-copy .button { margin-top:1rem; }
.contact { padding:clamp(4rem,7vw,6.5rem) clamp(1.25rem,8vw,8rem); display:grid; grid-template-columns:1.1fr .9fr; gap:6vw; color:white; background:var(--forest); }
.contact-details>p { max-width:550px; color:rgba(255,255,255,.67); }
.contact-email { display:inline-block; margin:1.3rem 0 2rem; color:white; font:clamp(1.5rem,2.8vw,2.6rem)/1.2 var(--serif); text-underline-offset:.4rem; }
.contact address { color:rgba(255,255,255,.67); font-style:normal; }
.site-footer { padding:1.4rem clamp(1.25rem,8vw,8rem); display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; color:rgba(255,255,255,.55); background:var(--forest-dark); font-size:.75rem; }
.footer-logo { width:54px; height:54px; object-fit:contain; }
.site-footer p { margin:0; }
.footer-copyright { text-align:center; }
.site-footer>a { justify-self:end; text-decoration:none; }
.footer-credit { grid-column:1/-1; width:100%; margin-top:1rem!important; padding-top:1rem; border-top:1px solid rgba(255,255,255,.12); text-align:center; }
.footer-credit a { color:white; font-weight:600; text-underline-offset:.25rem; }
.reveal { opacity:0; transform:translateY(20px); transition:opacity .7s ease,transform .7s ease; }
.reveal.visible { opacity:1; transform:none; }
:focus-visible { outline:3px solid var(--gold); outline-offset:4px; }
@media (max-width:1080px) { .site-nav{gap:.65rem}.site-nav a{font-size:.7rem}.book-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:820px) {
  html{scroll-padding-top:70px}.site-header{height:70px}.menu-button{display:block;z-index:32;cursor:pointer}.menu-button[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-button[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-button[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .site-nav{position:fixed;inset:70px 0 0;padding:1.6rem 1.25rem 3rem;display:flex;flex-direction:column;align-items:stretch;gap:0;visibility:hidden;overflow-y:auto;opacity:0;background:var(--paper);transform:translateY(-12px);transition:opacity .2s,transform .2s,visibility .2s}.site-nav.open{visibility:visible;opacity:1;transform:none}.site-nav a{padding:.85rem .1rem;border-bottom:1px solid var(--line);font:1.35rem/1.25 var(--serif)}.site-nav a::after{display:none}.site-nav .nav-cta{margin-top:1rem;color:white;font:700 .88rem var(--sans);text-align:center}
  .hero,.legacy,.section,.experiences,.social-projects,.support,.contact{grid-template-columns:1fr}.hero-copy{min-height:620px}.hero-image{min-height:620px}.section-heading{position:static}.legacy-image{min-height:560px}.experience-copy{padding-top:0}.social-projects-note{padding:1.5rem 0 0;border-top:1px solid rgba(255,255,255,.2);border-left:0}.site-footer{grid-template-columns:1fr auto;gap:1rem}.footer-copyright{grid-column:1/-1;grid-row:2;text-align:left}.footer-credit{grid-row:3;text-align:center}
  .section,.experiences,.social-projects,.support,.contact{padding:3.25rem 1.25rem;gap:1.75rem}
  .legacy-copy{padding:3.25rem 1.25rem}
  .books{padding:3.25rem 1.25rem}
  .books-header{margin-bottom:2.25rem}
  .section-heading h2,.experience-header h2,.social-projects-copy h2,.support-heading h2,.contact-heading h2{margin-bottom:.35rem}
  .long-copy p,.section-content p,.experience-copy p,.social-projects-copy p,.support-copy p,.contact-details p{margin-bottom:.9rem}
  .topic-list{margin-top:1.5rem}
  .event-types,.support-options{margin:1.35rem 0}
}
@media (max-width:560px) { h2{font-size:clamp(2rem,9vw,2.8rem)}.hero-copy{min-height:510px;padding:4rem 1.25rem}.hero h1{font-size:clamp(2.6rem,11vw,3.8rem);line-height:.96}.hero-actions{align-items:flex-start;flex-direction:column}.hero-image{min-height:480px}.legacy-image{min-height:400px}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 1rem}.book-card h3{font-size:.9rem}.book-price{min-height:4.5em;font-size:.68rem}.book-buy{width:100%;padding:.62rem .5rem}.footer-logo{width:48px;height:48px} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none} }
