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

:root{
  --paper:#F7F4EC;
  --paper-deep:#EFEADB;
  --ink:#1C2B25;
  --ink-soft:#4B5A52;
  --pine:#2C6659;
  --pine-deep:#1E4A40;
  --ochre:#A9702F;
  --line:#DAD3BE;
  --card:#FFFEF9;
  --radius:2px;
  --serif:'Fraunces', Georgia, serif;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  --mono:'IBM Plex Mono', monospace;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--pine-deep);}

/* ---------- Skip link ---------- */
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:200;}
.skip-link:focus{left:1rem;top:1rem;}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.header-inner{
  max-width:1280px;margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;
  padding:.9rem 1.5rem;
  gap:1rem;
}
.brand{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.05rem;
  letter-spacing:.01em;
  color:var(--ink);
  text-decoration:none;
  white-space:nowrap;
}
.brand span{color:var(--pine);}
.header-tabs{
  display:flex;gap:.25rem;
  overflow-x:auto;
  scrollbar-width:none;
}
.header-tabs::-webkit-scrollbar{display:none;}
.header-tabs a{
  font-family:var(--mono);
  font-size:.72rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink-soft);
  padding:.5rem .7rem;
  border-radius:var(--radius);
  white-space:nowrap;
  border:1px solid transparent;
  transition:border-color .15s, color .15s;
}
.header-tabs a:hover, .header-tabs a.active{
  color:var(--pine-deep);
  border-color:var(--line);
  background:var(--paper-deep);
}

/* ---------- Hero ---------- */
.hero{
  max-width:1280px;margin:0 auto;
  padding:5rem 1.5rem 4rem;
  display:grid;
  grid-template-columns:1fr;
  gap:2rem;
  border-bottom:1px solid var(--line);
}
.hero-eyebrow{
  font-family:var(--mono);
  font-size:.75rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ochre);
  margin:0 0 1.1rem;
}
.hero h1{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(2.2rem, 5vw, 4rem);
  line-height:1.06;
  margin:0 0 1.2rem;
  max-width:16ch;
}
.hero-sub{
  font-size:1.08rem;
  color:var(--ink-soft);
  max-width:56ch;
  margin:0 0 2rem;
}
.hero-meta{
  display:flex;flex-wrap:wrap;gap:2.2rem;
  font-family:var(--mono);
  font-size:.78rem;
  color:var(--ink-soft);
  border-top:1px solid var(--line);
  padding-top:1.4rem;
}
.hero-meta strong{
  display:block;
  font-family:var(--sans);
  color:var(--ink);
  font-size:.95rem;
  font-weight:600;
  margin-top:.15rem;
}
.hero-index{
  display:flex;flex-wrap:wrap;gap:.6rem;
  margin-top:.5rem;
}
.hero-index a{
  display:flex;align-items:baseline;gap:.5rem;
  text-decoration:none;
  border:1px solid var(--line);
  background:var(--card);
  padding:.55rem .9rem;
  border-radius:var(--radius);
  color:var(--ink);
  font-size:.85rem;
  transition:border-color .15s, transform .15s;
}
.hero-index a:hover{border-color:var(--pine); transform:translateY(-1px);}
.hero-index .n{font-family:var(--mono); color:var(--pine); font-weight:500;}

/* ---------- Layout ---------- */
.layout{
  max-width:1280px;margin:0 auto;
  display:grid;
  grid-template-columns:220px minmax(0,1fr);
  gap:0;
}
.rail{
  border-right:1px solid var(--line);
  padding:2.5rem 1.25rem;
  position:sticky;
  top:57px;
  align-self:start;
  height:calc(100vh - 57px);
  overflow-y:auto;
}
.rail-label{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-soft);margin-bottom:1rem;
}
.rail-list{list-style:none;margin:0 0 2rem;padding:0;}
.rail-list li{margin-bottom:.15rem;}
.rail-list a{
  display:flex;gap:.6rem;align-items:baseline;
  text-decoration:none;color:var(--ink-soft);
  padding:.45rem .5rem;border-radius:var(--radius);
  font-size:.85rem;
  border-left:2px solid transparent;
  transition:color .15s, border-color .15s, background .15s;
}
.rail-list a .num{font-family:var(--mono); font-size:.72rem; color:var(--ochre);}
.rail-list a:hover{color:var(--ink); background:var(--paper-deep);}
.rail-list a.active{color:var(--pine-deep); border-left-color:var(--pine); font-weight:600; background:var(--paper-deep);}

main{min-width:0; padding:0 0 6rem;}

/* ---------- Sections ---------- */
.context-section{
  padding:4.5rem 2.5rem 3rem;
  border-bottom:1px solid var(--line);
  scroll-margin-top:70px;
}
.section-head{
  display:flex;align-items:flex-start;gap:1.4rem;
  margin-bottom:2rem;
}
.section-num{
  font-family:var(--serif);
  font-size:3.2rem;
  font-weight:600;
  color:var(--paper-deep);
  -webkit-text-stroke:1.4px var(--pine);
  line-height:1;
}
.section-head h2{
  font-family:var(--serif);
  font-weight:600;
  font-size:clamp(1.6rem,3vw,2.3rem);
  margin:0;
  line-height:1.15;
}

.figure{
  margin:0 0 2.6rem;
  border:1px solid var(--line);
  background:var(--card);
  padding:.6rem;
}
.figure img{width:100%;display:block;height:auto;}
.figure figcaption{
  font-family:var(--mono);
  font-size:.76rem;
  color:var(--ink-soft);
  padding:.7rem .3rem .2rem;
}

.context-section h3{
  font-family:var(--serif);
  font-weight:600;
  font-size:1.28rem;
  margin:2.4rem 0 .9rem;
  color:var(--pine-deep);
}
.context-section p{
  margin:0 0 1.05rem;
  max-width:74ch;
  color:var(--ink);
}
.context-section ul{
  margin:0 0 1.2rem;
  padding-left:1.2rem;
  max-width:74ch;
}
.context-section ul li{margin-bottom:.55rem;}

/* ---------- Tables ---------- */
.table-wrap{
  margin:1.6rem 0 2.4rem;
  border:1px solid var(--line);
  background:var(--card);
  overflow-x:auto;
}
.table-caption{
  font-family:var(--serif);
  font-weight:600;
  font-size:.98rem;
  padding:1rem 1.2rem .2rem;
}
table{
  border-collapse:collapse;
  width:100%;
  font-size:.86rem;
}
table thead th{
  text-align:left;
  font-family:var(--mono);
  font-size:.7rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--paper);
  background:var(--pine-deep);
  padding:.7rem .9rem;
}
table tbody td{
  padding:.7rem .9rem;
  border-top:1px solid var(--line);
  vertical-align:top;
}
table tbody tr:nth-child(even){background:var(--paper-deep);}
.table-note{
  font-size:.78rem;
  color:var(--ink-soft);
  padding:.4rem 1.2rem 1.1rem;
  font-style:italic;
  max-width:80ch;
}

/* ---------- Cards for resources/partnerships ---------- */
.card-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px,1fr));
  gap:1rem;
  margin:0 0 1.6rem;
}
.card{
  border:1px solid var(--line);
  background:var(--card);
  padding:1.1rem 1.2rem;
}
.card h4{
  font-family:var(--serif);
  font-size:1rem;
  margin:0 0 .5rem;
  color:var(--ink);
}
.card p{margin:0; font-size:.86rem; color:var(--ink-soft);}

.resource-group{margin-bottom:1.8rem;}
.resource-group h4{
  font-family:var(--mono);
  font-size:.75rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ochre);
  margin:0 0 .8rem;
}

.discussion-card{
  border-left:3px solid var(--pine);
  background:var(--card);
  padding:1.1rem 1.3rem;
  margin:0 0 1.2rem;
  max-width:78ch;
}
.discussion-card h4{
  font-family:var(--serif);
  font-size:1.02rem;
  margin:0 0 .5rem;
}
.discussion-card p{margin:0; font-size:.92rem;}

/* ---------- References (details) ---------- */
details.refs{
  margin-top:1.6rem;
  border:1px solid var(--line);
  background:var(--card);
}
details.refs summary{
  cursor:pointer;
  padding:1rem 1.2rem;
  font-family:var(--mono);
  font-size:.76rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--pine-deep);
  list-style:none;
}
details.refs summary::-webkit-details-marker{display:none;}
details.refs summary::before{content:"+ "; color:var(--ochre);}
details.refs[open] summary::before{content:"– ";}
.refs-list{
  padding:0 1.2rem 1.3rem;
  font-size:.82rem;
  color:var(--ink-soft);
  line-height:1.7;
}
.refs-list p{margin:0 0 .7rem; max-width:none;}

/* ---------- Footer ---------- */
footer{
  padding:3rem 2.5rem;
  border-top:1px solid var(--line);
  font-family:var(--mono);
  font-size:.75rem;
  color:var(--ink-soft);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
}

/* ---------- Responsive ---------- */
@media (max-width: 900px){
  .layout{grid-template-columns:1fr;}
  .rail{
    position:static;height:auto;
    border-right:none;border-bottom:1px solid var(--line);
    padding:1.2rem 1.5rem;
  }
  .rail-list{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:0;}
  .rail-list li{margin:0;}
  .context-section{padding:3rem 1.4rem 2.2rem;}
  .hero{padding:3.2rem 1.4rem 2.6rem;}
  footer{padding:2rem 1.4rem;}
}
