
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600;9..144,700&display=swap');

:root{
  --forest:#182118;
  --forest-2:#263424;
  --olive:#5d6d49;
  --olive-light:#85936f;
  --sage:#b9c7a5;
  --lime:#dbe8b4;
  --cream:#f8f3e8;
  --paper:#fffdf8;
  --terracotta:#c47757;
  --gold:#deb665;
  --ink:#1e271d;
  --muted:#687063;
  --line:rgba(30,39,29,.14);
  --shadow:0 24px 70px rgba(27,37,25,.16);
  --radius-xl:38px;
  --radius-lg:26px;
  --radius-md:18px;
  --max:1220px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:"DM Sans",system-ui,sans-serif;line-height:1.65;overflow-x:hidden
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.22;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E")
}
a{color:inherit}
img{display:block;max-width:100%}
button,input,textarea,select{font:inherit}
h1,h2,h3,h4{font-family:"Fraunces",Georgia,serif;letter-spacing:-.045em;line-height:1.02;margin:0 0 1rem}
h1{font-size:clamp(4rem,10vw,9rem)}
h2{font-size:clamp(3rem,6vw,5.7rem)}
h3{font-size:clamp(1.55rem,3vw,2.5rem)}
p{margin:0 0 1rem}
.wrap{width:min(calc(100% - 2rem),var(--max));margin:auto}
.section{padding:7.5rem 0;position:relative}
.eyebrow{display:flex;align-items:center;gap:.75rem;color:var(--olive);text-transform:uppercase;letter-spacing:.2em;font-size:.72rem;font-weight:700;margin-bottom:1.25rem}
.eyebrow::before{content:"";width:44px;height:2px;background:currentColor}
.skip-link{position:absolute;left:-9999px;top:0}
.skip-link:focus{left:1rem;top:1rem;background:white;padding:.8rem 1rem;z-index:999}

/* Nav */
.nav-shell{position:fixed;top:0;left:0;right:0;z-index:50;padding:1rem}
.nav{width:min(100%,1280px);margin:auto;min-height:72px;padding:.8rem 1rem .8rem 1.2rem;display:flex;align-items:center;justify-content:space-between;color:white;background:rgba(22,30,20,.74);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);border-radius:999px;box-shadow:0 14px 40px rgba(12,18,11,.18)}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.brand-mark{width:42px;height:42px;border-radius:50% 50% 50% 15%;display:grid;place-items:center;color:var(--forest);background:var(--lime);font-family:"Fraunces",serif;font-weight:700;transform:rotate(-8deg)}
.brand-copy strong{display:block;font-family:"Fraunces",serif;font-size:1.08rem}
.brand-copy small{display:block;opacity:.68;text-transform:uppercase;letter-spacing:.15em;font-size:.61rem}
.nav-links{display:flex;align-items:center;gap:.2rem}
.nav-links a{color:white;text-decoration:none;padding:.7rem .9rem;border-radius:999px;font-weight:600;font-size:.92rem}
.nav-links a:hover,.nav-links a[aria-current="page"]{background:rgba(255,255,255,.1)}
.nav-cta{background:var(--lime)!important;color:var(--forest)!important}
.menu-button{display:none;color:white;background:transparent;border:0;font-size:1.55rem;cursor:pointer}

/* Hero */
.hero{min-height:100svh;display:grid;align-items:end;color:white;background:
radial-gradient(circle at 82% 15%,rgba(222,182,101,.36),transparent 22%),
radial-gradient(circle at 12% 86%,rgba(185,199,165,.28),transparent 30%),
linear-gradient(135deg,#152014 0%,#30412c 54%,#6f8053 100%);
position:relative;isolation:isolate;overflow:hidden}
.hero-shape-one{position:absolute;width:min(50vw,640px);aspect-ratio:1;right:-8%;top:10%;border-radius:48% 52% 66% 34%/45% 38% 62% 55%;border:1px solid rgba(255,255,255,.22);transform:rotate(15deg);animation:float 9s ease-in-out infinite}
.hero-shape-one::before,.hero-shape-one::after{content:"";position:absolute;inset:9%;border:1px solid rgba(255,255,255,.12);border-radius:inherit}
.hero-shape-one::after{inset:20%}
.hero-shape-two{position:absolute;width:320px;height:320px;left:-95px;bottom:-100px;border-radius:44% 56% 31% 69%/56% 38% 62% 44%;background:var(--terracotta);opacity:.76;transform:rotate(-18deg)}
.hero-dots{position:absolute;right:8%;bottom:13%;width:160px;height:110px;opacity:.55;background-image:radial-gradient(circle,var(--lime) 2px,transparent 2px);background-size:18px 18px}
@keyframes float{0%,100%{transform:rotate(15deg) translateY(0)}50%{transform:rotate(19deg) translateY(18px)}}
.hero-content{position:relative;z-index:3;padding:10.5rem 0 4.5rem}
.hero h1{max-width:1120px}
.hero h1 em{font-style:italic;color:var(--lime);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:1%;right:0;bottom:-.05em;height:.12em;background:var(--terracotta);border-radius:999px;transform:rotate(-1deg)}
.hero-intro{max-width:800px;color:#eef3e9;font-size:clamp(1.08rem,2vw,1.4rem)}
.actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:1rem 1.35rem;text-decoration:none;cursor:pointer;font-weight:700;transition:.2s ease}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--lime);color:var(--forest)}
.button-secondary{color:white;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25)}
.button-dark{background:var(--forest);color:white}
.hero-foot{margin-top:4rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end;border-top:1px solid rgba(255,255,255,.2);padding-top:1.4rem}
.hero-quote{font-family:"Fraunces",serif;font-size:clamp(1.5rem,3vw,2.7rem);max-width:820px}
.hero-foot small{color:var(--lime);text-transform:uppercase;letter-spacing:.18em}

/* Home sections */
.intro-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:5rem;align-items:start}
.sticky{position:sticky;top:120px}
.large-copy{font-family:"Fraunces",serif;font-size:clamp(1.9rem,3.6vw,3.4rem);line-height:1.18}
.principle{display:grid;grid-template-columns:82px 1fr;gap:1.4rem;padding:2rem 0;border-top:1px solid var(--line)}
.principle:last-child{border-bottom:1px solid var(--line)}
.principle-number{width:58px;height:58px;display:grid;place-items:center;background:var(--sage);color:var(--forest);border-radius:50% 50% 18% 50%;font-family:"Fraunces",serif;font-size:1.4rem}
.principle:nth-child(3) .principle-number{background:var(--gold);border-radius:50% 20% 50% 50%}
.principle:nth-child(4) .principle-number{background:var(--terracotta);color:white;border-radius:20% 50% 50% 50%}
.principle p{color:var(--muted)}
.manifesto{color:white;background:var(--forest);overflow:hidden}
.manifesto::before{content:"";position:absolute;width:430px;height:430px;left:-130px;top:-160px;border-radius:50%;border:70px solid rgba(219,232,180,.08)}
.manifesto-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:end;position:relative;z-index:2}
.manifesto p{color:#dce4d7}
.pullquote{border-left:4px solid var(--terracotta);padding-left:1.6rem;font-family:"Fraunces",serif;font-size:clamp(2rem,4vw,4.4rem);line-height:1.08}
.stories-head{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:3rem}
.stories-head p{max-width:560px;color:var(--muted)}
.stories-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem}
.story-card{position:relative;min-height:390px;padding:1.7rem;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;transition:.25s ease}
.story-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.story-card:nth-child(1){grid-column:span 7;background:var(--sage)}
.story-card:nth-child(2){grid-column:span 5;background:var(--terracotta);color:white}
.story-card:nth-child(3){grid-column:span 5;background:var(--gold)}
.story-card:nth-child(4){grid-column:span 7;background:var(--paper)}
.story-card::after{content:"";position:absolute;width:190px;height:190px;right:-45px;bottom:-60px;border:28px solid rgba(255,255,255,.25);border-radius:50% 40% 55% 45%;transform:rotate(25deg)}
.story-meta{display:flex;gap:.6rem;flex-wrap:wrap;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}
.story-card h3,.story-card p,.story-arrow{position:relative;z-index:2}
.story-arrow{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.62);font-size:1.25rem}
.faith-section{background:#edf1e3;overflow:hidden}
.faith-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:4rem;align-items:center}
.faith-art{min-height:520px;position:relative;border-radius:var(--radius-xl);background:radial-gradient(circle at 70% 25%,rgba(222,182,101,.8),transparent 20%),linear-gradient(145deg,var(--forest-2),var(--olive));overflow:hidden;box-shadow:var(--shadow)}
.faith-art .sun{width:220px;height:220px;position:absolute;right:10%;top:10%;background:var(--gold);border-radius:50%;opacity:.92}
.faith-art .hill{position:absolute;left:-10%;right:-10%;bottom:-28%;height:72%;border-radius:50% 50% 0 0;background:var(--forest);transform:rotate(-5deg)}
.faith-art .path{position:absolute;width:150px;height:480px;left:42%;bottom:-100px;background:var(--cream);border-radius:50%;transform:rotate(18deg);opacity:.9}
.faith-art blockquote{position:absolute;left:2rem;bottom:2rem;right:2rem;z-index:3;margin:0;color:white;font-family:"Fraunces",serif;font-size:clamp(1.8rem,3vw,3rem);line-height:1.12}
.faith-copy p{color:var(--muted);font-size:1.08rem}
.talk-list{margin-top:3rem}
.talk{display:grid;grid-template-columns:160px 1fr auto;gap:2rem;align-items:center;padding:2.1rem 0;border-top:1px solid var(--line)}
.talk:last-child{border-bottom:1px solid var(--line)}
.talk-label{color:var(--olive);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700}
.talk h3{margin-bottom:.4rem}.talk p{color:var(--muted);margin:0}
.talk-icon{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);font-size:1.2rem}

/* Inner pages */
.page-hero{min-height:66svh;color:white;background:linear-gradient(135deg,#172016,#2f402b 58%,#728258);display:grid;align-items:end;position:relative;overflow:hidden}
.page-hero::after{content:"";position:absolute;width:460px;height:460px;right:-100px;top:80px;border:80px solid rgba(219,232,180,.1);border-radius:50% 38% 58% 42%;transform:rotate(18deg)}
.page-hero .wrap{position:relative;z-index:2;padding:11rem 0 4.5rem}
.page-hero p{max-width:790px;color:#e9efe4;font-size:1.2rem}
.editorial{width:min(calc(100% - 2rem),850px);margin:auto;padding:6rem 0}
.editorial .lead{font-family:"Fraunces",serif;font-size:clamp(1.8rem,3vw,2.9rem);line-height:1.25;color:var(--olive)}
.editorial p{font-size:1.1rem;margin-bottom:1.45rem}
.editorial h2{font-size:clamp(2.4rem,5vw,4rem);margin-top:3.2rem}
.editorial blockquote{margin:2.7rem 0;padding-left:1.5rem;border-left:4px solid var(--terracotta);font-family:"Fraunces",serif;font-size:clamp(1.8rem,3vw,2.8rem);line-height:1.2}
.callout{margin:2.5rem 0;padding:1.5rem 1.7rem;border-radius:var(--radius-md);background:#e8eddf;border:1px solid var(--line)}
.article-head{min-height:78svh;color:white;background:linear-gradient(135deg,#192319,#33432f 60%,#7a895f);display:grid;align-items:end;position:relative;overflow:hidden}
.article-head::before{content:"";position:absolute;width:520px;height:520px;right:-90px;top:100px;border-radius:50% 35% 55% 45%;border:90px solid rgba(222,182,101,.15)}
.article-head .wrap{position:relative;z-index:2;padding:12rem 0 5rem}
.article-head h1{font-size:clamp(3.6rem,8vw,7.4rem);max-width:1100px}
.article-meta{display:flex;gap:.8rem;flex-wrap:wrap;color:var(--lime);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700;margin-bottom:1.2rem}
.article-body{width:min(calc(100% - 2rem),760px);margin:auto;padding:5.5rem 0}
.article-body p{font-size:1.14rem;margin-bottom:1.5rem}
.article-body .dropcap:first-letter{float:left;font-family:"Fraunces",serif;font-size:5.5rem;line-height:.75;padding-right:.6rem;color:var(--olive)}
.article-body blockquote{margin:3rem 0;padding-left:1.5rem;border-left:4px solid var(--terracotta);font-family:"Fraunces",serif;font-size:clamp(1.9rem,3.2vw,3rem);line-height:1.18}
.article-end{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding-top:2rem;margin-top:4rem}
.contact-panel{position:relative;padding:clamp(2rem,5vw,5rem);color:white;background:linear-gradient(135deg,#263324,#536642);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow)}
.contact-panel::before{content:"";position:absolute;width:420px;height:420px;right:-150px;top:-180px;border:65px solid rgba(219,232,180,.12);border-radius:50% 35% 55% 45%}
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;position:relative;z-index:2}
.contact-panel p{color:#dfe7da}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label{display:block;font-size:.84rem;font-weight:700;margin-bottom:.35rem}
.field.full{grid-column:1/-1}
input,textarea,select{width:100%;color:white;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:.95rem 1rem;outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--lime);box-shadow:0 0 0 3px rgba(219,232,180,.14)}
select option{color:var(--ink)}textarea{min-height:150px;resize:vertical}
.form-note{font-size:.82rem;color:#dce5d7!important}
.status{min-height:1.5rem;margin-top:.8rem;font-weight:700;color:var(--lime)}
footer{padding:2.2rem 0;background:#151d14;color:#cfd8ca}
.footer-grid{display:flex;justify-content:space-between;gap:1rem;align-items:center}
footer strong{color:white}
.reveal{opacity:0;transform:translateY(24px);transition:.7s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:900px){
  .menu-button{display:block}
  .nav{border-radius:24px}
  .nav-links{display:none;position:absolute;top:88px;left:1rem;right:1rem;padding:1rem;background:var(--forest);border-radius:20px;flex-direction:column;align-items:stretch}
  .nav-links.open{display:flex}
  .intro-grid,.manifesto-grid,.faith-grid,.contact-grid{grid-template-columns:1fr}
  .sticky{position:static}
  .stories-grid{grid-template-columns:1fr}
  .story-card:nth-child(n){grid-column:auto;min-height:330px}
  .talk{grid-template-columns:1fr;gap:.6rem}
  .hero-foot{grid-template-columns:1fr}
}
@media(max-width:620px){
  .nav-shell{padding:.6rem}
  .brand-copy small{display:none}
  .hero-content{padding-top:8rem}
  .form-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .principle{grid-template-columns:58px 1fr}
  .section{padding:5.5rem 0}
  .footer-grid{flex-direction:column;align-items:flex-start}
  .article-end{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
