:root{
  --parchment:#F3EDE1;
  --parchment-2:#EDE4D3;
  --paper:#FFFDF8;
  --navy:#1B2A4A;
  --navy-soft:#2C3E63;
  --brick:#8C3331;
  --gold:#B08D3F;
  --line: rgba(27,42,74,0.16);
  --max: 1120px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--parchment);
  color:var(--navy);
  font-family:'Inter', sans-serif;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:var(--max); margin:0 auto; padding:0 28px;}

h1,h2,h3,.display{
  font-family:'Fraunces', serif;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0;
  color:var(--navy);
}
.label{
  font-family:'Source Serif 4', serif;
  font-style:italic;
  color:var(--brick);
  font-size:1.05rem;
}
p{line-height:1.65; margin:0;}

/* ---------- Header ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(243,237,225,0.96);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:14px 28px;
  max-width:var(--max); margin:0 auto;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand img{width:42px; height:42px;}
.brand-word{
  font-family:'Fraunces', serif; font-weight:700; font-size:1.05rem;
  color:var(--navy); line-height:1.1;
}
.brand-word span{
  display:block; font-family:'Inter',sans-serif; font-weight:500; font-size:0.63rem;
  color:var(--navy-soft); letter-spacing:0.02em; margin-top:2px;
}
nav.links{display:flex; gap:34px; align-items:center;}
nav.links a{
  text-decoration:none; color:var(--navy); font-size:0.94rem; font-weight:500;
  position:relative; padding:4px 0;
}
nav.links a::after{
  content:''; position:absolute; left:0; right:0; bottom:-2px; height:1px;
  background:var(--brick); transform:scaleX(0); transition:transform .25s ease;
}
nav.links a:hover::after{transform:scaleX(1);}
nav.links a.active{color:var(--brick);}
nav.links a.active::after{transform:scaleX(1);}
.nav-cta{
  background:var(--navy); color:var(--paper) !important; padding:9px 18px;
  border-radius:2px; font-size:0.88rem !important; font-weight:600 !important;
}
.nav-cta::after{display:none;}
.burger{display:none; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{display:block; width:24px; height:2px; background:var(--navy); margin:5px 0;}

/* ---------- Hero (home) ---------- */
.hero{padding:88px 0 76px; border-bottom:1px solid var(--line);}
.hero-grid{display:grid; grid-template-columns: 1.35fr 0.9fr; gap:64px; align-items:center;}
.hero-eyebrow{display:flex; align-items:center; gap:10px; margin-bottom:22px;}
.hero-eyebrow .star{color:var(--brick); font-size:0.85rem;}
.hero-eyebrow span.txt{font-family:'Source Serif 4', serif; font-style:italic; color:var(--navy-soft); font-size:1rem;}
.hero h1{font-size:clamp(2.4rem, 5vw, 3.6rem); line-height:1.08; max-width:12ch;}
.hero-sub{margin-top:24px; font-size:1.1rem; color:var(--navy-soft); max-width:46ch; line-height:1.7;}
.hero-actions{margin-top:34px; display:flex; gap:16px; flex-wrap:wrap;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 24px; border-radius:2px; text-decoration:none;
  font-weight:600; font-size:0.95rem; border:1px solid var(--navy);
  transition:all .2s ease; cursor:pointer;
}
.btn-primary{background:var(--navy); color:var(--paper);}
.btn-primary:hover{background:var(--navy-soft);}
.btn-ghost{background:transparent; color:var(--navy);}
.btn-ghost:hover{background:var(--navy); color:var(--paper);}
.hero-stats{display:flex; gap:28px; margin-top:48px; padding-top:28px; border-top:1px solid var(--line);}
.stat b{font-family:'Fraunces',serif; font-size:1.7rem; font-weight:600; display:block; color:var(--brick);}
.stat span{font-size:0.82rem; color:var(--navy-soft);}
.hero-seal{display:flex; justify-content:center; align-items:center; position:relative;}
.hero-seal img{width:min(320px, 80%);}

/* ---------- Page header (inner pages) ---------- */
.page-header{padding:64px 0 56px; border-bottom:1px solid var(--line);}
.page-header .kicker{display:block; margin-bottom:12px;}
.page-header h1{font-size:clamp(2rem, 4vw, 3rem); line-height:1.12; max-width:16ch;}
.page-header p{margin-top:18px; font-size:1.08rem; color:var(--navy-soft); max-width:56ch; line-height:1.7;}

/* ---------- Section shell ---------- */
section{padding:84px 0;}
.section-head{margin-bottom:48px; max-width:640px;}
.kicker{font-family:'Source Serif 4', serif; font-style:italic; color:var(--brick); font-size:1.02rem; margin-bottom:10px; display:block;}
.section-head h2{font-size:clamp(1.8rem, 3.4vw, 2.5rem); line-height:1.15;}

/* ---------- Teasers (home) ---------- */
.teaser{border-bottom:1px solid var(--line);}
.teaser-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
.teaser-grid.reverse .teaser-media{order:2;}
.teaser-media{border-radius:4px; overflow:hidden; border:1px solid var(--line);}
.teaser-text .kicker{margin-bottom:10px;}
.teaser-text h2{font-size:clamp(1.6rem,3vw,2.1rem); margin-bottom:16px;}
.teaser-text p{color:var(--navy-soft); font-size:1.02rem; margin-bottom:22px;}
.teaser-board-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
.teaser-board-grid img{border-radius:3px; aspect-ratio:4/5; object-fit:cover; object-position:top center; width:100%; height:100%;}
.teaser-events-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line);}

/* ---------- About / Mission ---------- */
.mission-lede{font-family:'Source Serif 4', serif; font-size:1.35rem; line-height:1.6; color:var(--navy); max-width:60ch; font-weight:400;}
.goals{margin-top:8px; display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:1px solid var(--line);}
.goal{padding:64px 30px 28px 30px; border-right:1px solid var(--line);}
.goal:first-child{padding-left:0;}
.goal:last-child{border-right:none;}
.goal .star{color:var(--brick); font-size:1rem;}
.goal h3{font-size:1.15rem; margin-top:14px; font-weight:600;}
.goal p{margin-top:10px; color:var(--navy-soft); font-size:0.95rem;}
.pillars{margin-top:70px; display:grid; grid-template-columns:1fr 1fr; gap:56px;}
.pillar-name{font-family:'Source Serif 4', serif; font-style:italic; color:var(--brick); font-size:0.98rem;}
.pillar h3{font-size:1.5rem; margin-top:8px; margin-bottom:16px;}
.pillar p{color:var(--navy-soft); font-size:1rem;}
.pillar ul{margin:18px 0 0; padding:0; list-style:none;}
.pillar li{padding:11px 0; border-top:1px solid var(--line); font-size:0.95rem; color:var(--navy);}

/* ---------- Board ---------- */
.group-photo{margin-bottom:64px; border-radius:4px; overflow:hidden; border:1px solid var(--line);}
.board-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:38px 28px;}
.member-photo{aspect-ratio:4/5; overflow:hidden; border-radius:3px; background:var(--parchment-2); margin-bottom:14px;}
.member-photo img{width:100%; height:100%; object-fit:cover; object-position:top center;}
.member h3{font-size:1.05rem; font-weight:600;}
.member .role{font-family:'Source Serif 4', serif; font-style:italic; color:var(--brick); font-size:0.9rem; margin-top:3px; display:block;}
.member .division{color:var(--navy-soft); font-size:0.8rem; margin-top:2px; display:block;}

/* ---------- Events ---------- */
.events-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.events-grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:64px;}
.events-grid-3:last-of-type{margin-bottom:0;}
.event-card{background:var(--parchment); padding:34px;}
.event-card .tag{font-family:'Source Serif 4',serif; font-style:italic; color:var(--brick); font-size:0.9rem;}
.event-card h3{font-size:1.3rem; margin-top:10px;}
.event-card p{margin-top:12px; color:var(--navy-soft); font-size:0.95rem;}
.events-note{margin-top:32px; font-size:0.92rem; color:var(--navy-soft); font-style:italic; font-family:'Source Serif 4', serif;}

/* ---------- Join ---------- */
.join-panel{background:var(--navy); color:var(--paper); border-radius:6px; padding:72px 56px;}
.join-grid{display:grid; grid-template-columns:1.2fr 1fr; gap:56px; align-items:start;}
.join-panel h1, .join-panel h2{color:var(--paper);}
.join-panel .kicker{color:#D9A6A0;}
.join-panel p.lede{margin-top:18px; color:#D9DEE9; font-size:1.05rem; max-width:48ch; line-height:1.7;}
.join-cards{display:flex; flex-direction:column; gap:20px;}
.join-card{background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.16); border-radius:4px; padding:32px;}
.join-card .handle{font-family:'Fraunces',serif; font-size:1.3rem; font-weight:600;}
.join-card p{color:#C7CEDC; font-size:0.92rem; margin-top:8px;}
.join-card .btn-primary{margin-top:22px; width:100%; justify-content:center; background:var(--brick); border-color:var(--brick);}
.join-card .btn-primary:hover{background:#a33e3c;}
.join-card .btn-ghost{margin-top:22px; width:100%; justify-content:center; border-color:rgba(255,255,255,0.4); color:var(--paper);}
.join-card .btn-ghost:hover{background:rgba(255,255,255,0.12);}

/* ---------- Timeline (join page) ---------- */
.timeline{position:relative; max-width:640px;}
.timeline-item{position:relative; padding-left:60px; padding-bottom:52px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-item::before{content:''; position:absolute; left:19px; top:44px; bottom:-8px; width:1px; background:var(--line);}
.timeline-item:last-child::before{display:none;}
.timeline-marker{
  position:absolute; left:0; top:0; width:40px; height:40px; border-radius:50%;
  background:var(--navy); color:var(--paper); display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-weight:600; font-size:1.05rem;
}
.timeline-date{font-family:'Source Serif 4',serif; font-style:italic; color:var(--brick); font-size:0.88rem; display:block; margin-bottom:8px;}
.timeline-content h3{font-size:1.3rem; margin-bottom:10px;}
.timeline-content p{color:var(--navy-soft); font-size:0.97rem;}
.timeline-pending{
  display:inline-flex; align-items:center; margin-top:18px; padding:10px 18px;
  border:1px dashed var(--line); border-radius:2px; font-size:0.86rem; color:var(--navy-soft); font-style:italic;
}

/* ---------- Contact cards (join page, on parchment bg) ---------- */
.contact-cards{display:flex; flex-direction:column; gap:20px;}
.contact-card{background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:32px;}
.contact-card .handle{font-family:'Fraunces',serif; font-size:1.3rem; font-weight:600; color:var(--navy);}
.contact-card p{color:var(--navy-soft); font-size:0.95rem; margin-top:8px;}
.contact-card .email{margin-top:6px; font-family:'Fraunces',serif; font-size:1.05rem; color:var(--brick);}
.contact-card .btn{margin-top:22px; width:100%; justify-content:center;}
.contact-card .btn-ghost{border-color:var(--navy); color:var(--navy);}
.contact-card .btn-ghost:hover{background:var(--navy); color:var(--paper);}

/* ---------- Footer ---------- */
footer{padding:48px 0 40px;}
.foot-grid{display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:24px; border-top:1px solid var(--line); padding-top:32px;}
.foot-brand{display:flex; align-items:center; gap:12px;}
.foot-brand img{width:34px; height:34px;}
.foot-brand-text{font-family:'Fraunces',serif; font-weight:600; font-size:0.95rem;}
.foot-brand-text span{display:block; font-family:'Inter',sans-serif; font-weight:400; font-size:0.78rem; color:var(--navy-soft); margin-top:2px;}
.foot-links{display:flex; gap:24px; font-size:0.86rem; flex-wrap:wrap;}
.foot-links a{text-decoration:none; color:var(--navy-soft);}
.foot-links a:hover{color:var(--brick);}
.foot-copy{font-size:0.78rem; color:var(--navy-soft); margin-top:24px;}

/* ---------- Responsive ---------- */
@media (max-width: 880px){
  nav.links{
    position:fixed; top:70px; left:0; right:0; bottom:0;
    background:var(--parchment); flex-direction:column; align-items:flex-start;
    padding:32px 28px; gap:22px; transform:translateX(100%); transition:transform .3s ease;
    border-top:1px solid var(--line); z-index:100;
  }
  nav.links.open{transform:translateX(0);}
  .burger{display:block;}
  .hero-grid{grid-template-columns:1fr; gap:40px;}
  .hero-seal{order:-1;}
  .hero-seal img{width:180px;}
  .goals{grid-template-columns:1fr;}
  .goal{border-right:none; border-bottom:1px solid var(--line); padding-left:0;}
  .pillars{grid-template-columns:1fr; gap:40px;}
  .board-grid{grid-template-columns:repeat(2,1fr);}
  .events-grid{grid-template-columns:1fr;}
  .events-grid-3{grid-template-columns:1fr;}
  .join-grid{grid-template-columns:1fr;}
  .join-panel{padding:44px 24px;}
  .hero-stats{flex-wrap:wrap;}
  .teaser-grid{grid-template-columns:1fr; gap:32px;}
  .teaser-grid.reverse .teaser-media{order:0;}
  .teaser-board-grid{grid-template-columns:repeat(3,1fr);}
  .teaser-events-grid{grid-template-columns:1fr;}
}
@media (max-width: 480px){
  .board-grid{grid-template-columns:repeat(2,1fr); gap:24px 16px;}
  .hero{padding:56px 0 48px;}
  section{padding:60px 0;}
  .page-header{padding:48px 0 40px;}
}
