:root{
  --paper:#f7f3ea;
  --paper-alt:#eae4d8;
  --dark:#43221f;
  --ink:#241b16;
  --ink-soft:#786b5d;
  --accent:#8a2c25;
  --gold:#8a6a24;
  --rule:6px solid #241b16;
  --rule5:5px solid #241b16;
  --serif:Georgia,'Times New Roman',serif;
  --sans:system-ui,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.72;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}

a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
a:hover{text-decoration-thickness:2px;}
a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:2px;}
.on-dark a:focus-visible{outline-color:var(--paper);}

h1,h2,h4{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;}
h3{font-family:var(--serif);font-weight:400;font-style:italic;}
h1{font-size:clamp(2.1rem,5.4vw,3.5rem);line-height:1.14;margin:0;}
h2{font-size:clamp(1.55rem,3vw,2.15rem);line-height:1.2;margin:0 0 20px;}
h3{font-size:1.24rem;line-height:1.35;margin:34px 0 12px;}
p{margin:0 0 18px;}
p:last-child{margin-bottom:0;}

.label{
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 14px;
  display:block;
  line-height:1.5;
}
.on-dark .label{color:#d5b672;}
.caption{font-size:13px;line-height:1.55;color:var(--ink-soft);margin:0;}
.on-dark .caption{color:#c9bcab;}

/* ---------- shell ---------- */
.wrap{max-width:1280px;margin:0 auto;border-left:var(--rule);border-right:var(--rule);}
@media(max-width:1300px){.wrap{border-left:0;border-right:0;}}

/* ---------- masthead ---------- */
.masthead{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  border-bottom:var(--rule);
  background:var(--paper-alt);
}
.masthead .brand{
  grid-column:span 4;
  padding:20px 28px;
  border-right:var(--rule);
  background:var(--paper);
  display:flex;
  align-items:center;
}
.masthead .brand a{
  font-family:var(--serif);
  font-size:1.5rem;
  color:var(--ink);
  text-decoration:none;
  letter-spacing:.02em;
}
.masthead .brand a:hover{color:var(--accent);}
.mainnav{grid-column:span 8;display:flex;flex-wrap:wrap;align-items:center;gap:0;}
.mainnav a{
  padding:20px 22px;
  font-size:14px;
  letter-spacing:.06em;
  color:var(--ink);
  text-decoration:none;
  border-right:1px solid rgba(36,27,22,.28);
}
.mainnav a:last-child{border-right:0;}
.mainnav a:hover{background:var(--paper);color:var(--accent);}
.mainnav a[aria-current="page"]{color:var(--accent);box-shadow:inset 0 -5px 0 var(--accent);}
@media(max-width:880px){
  .masthead{grid-template-columns:1fr;}
  .masthead .brand{grid-column:auto;border-right:0;border-bottom:var(--rule);padding:16px 20px;}
  .mainnav{grid-column:auto;}
  .mainnav a{padding:13px 18px;border-bottom:1px solid rgba(36,27,22,.22);flex:1 1 auto;}
}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:repeat(12,1fr);border-bottom:var(--rule);}
.hero-title{
  grid-column:1 / span 7;
  grid-row:1 / span 2;
  padding:72px 44px;
  border-right:var(--rule5);
  background:var(--paper);
}
.hero-title p.standfirst{margin-top:26px;max-width:36em;color:var(--ink-soft);font-size:1.02rem;}
.hero-intro{
  grid-column:8 / span 5;
  grid-row:1;
  padding:52px 40px;
  background:var(--accent);
  color:#f9f1e6;
  border-bottom:var(--rule5);
}
.hero-intro .label{color:#f0cf9a;}
.hero-intro p{font-size:1.05rem;}
.hero-band{
  grid-column:8 / span 5;
  grid-row:2;
  background:var(--dark);
  min-height:96px;
  border-bottom:var(--rule5);
  display:flex;
  align-items:center;
  padding:22px 40px;
}
.hero-band p{font-family:var(--serif);font-style:italic;color:#e8d9c2;font-size:1.05rem;line-height:1.5;margin:0;}
.hero-jump{
  grid-column:1 / -1;
  border-top:var(--rule5);
  background:var(--paper-alt);
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:0;
}
.hero-jump span.label{margin:0;padding:14px 24px;border-right:1px solid rgba(36,27,22,.28);}
.hero-jump a{
  padding:14px 22px;
  font-size:13.5px;
  letter-spacing:.05em;
  color:var(--ink);
  text-decoration:none;
  border-right:1px solid rgba(36,27,22,.28);
}
.hero-jump a:hover{background:var(--paper);color:var(--accent);text-decoration:underline;}
@media(max-width:900px){
  .hero-title,.hero-intro,.hero-band{grid-column:1 / -1;grid-row:auto;border-right:0;}
  .hero-title{padding:44px 24px;border-bottom:var(--rule5);}
  .hero-intro{padding:36px 24px;}
  .hero-band{padding:24px;}
  .hero-jump span.label,.hero-jump a{border-right:0;border-bottom:1px solid rgba(36,27,22,.25);width:100%;}
}

/* ---------- sections ---------- */
.band{border-bottom:var(--rule);}
.band.alt{background:var(--paper-alt);}
.band.dark{background:var(--dark);color:var(--paper);}
.band.dark h2,.band.dark h3{color:#f4e9d8;}
.band.dark p{color:#e2d6c5;}

.grid{display:grid;grid-template-columns:repeat(12,1fr);}
.cell{padding:72px 44px;}
.cell + .cell{border-left:var(--rule5);}
.band.dark .cell + .cell{border-left-color:#f7f3ea;}
.c7{grid-column:span 7;}
.c5{grid-column:span 5;}
.c4{grid-column:span 4;}
.c8{grid-column:span 8;}
.c3{grid-column:span 3;}
.c12{grid-column:1 / -1;}
@media(max-width:900px){
  .cell{padding:44px 24px;}
  .cell + .cell{border-left:0;border-top:var(--rule5);}
  .band.dark .cell + .cell{border-top-color:#f7f3ea;}
  .c7,.c5,.c4,.c8,.c3{grid-column:1 / -1;}
}

/* figures */
.figmain{border:var(--rule5);background:var(--paper-alt);}
.figmain img{width:100%;height:auto;}
.cell.figholder{padding:44px;}
@media(max-width:900px){.cell.figholder{padding:24px;}}

.figdetail{border:5px solid var(--paper);max-width:400px;}
.figdetail img{width:100%;height:auto;}

/* lists */
ul.marks,ol.marks{margin:0 0 18px;padding:0;list-style:none;}
ul.marks li{position:relative;padding-left:26px;margin-bottom:11px;}
ul.marks li::before{content:"";position:absolute;left:0;top:.62em;width:11px;height:3px;background:var(--accent);}
.band.dark ul.marks li::before{background:#d5b672;}
ol.marks{counter-reset:st;}
ol.marks li{position:relative;padding-left:44px;margin-bottom:13px;counter-increment:st;}
ol.marks li::before{
  content:counter(st,decimal-leading-zero);
  position:absolute;left:0;top:0;
  font-family:var(--sans);font-size:12px;letter-spacing:.14em;color:var(--gold);
  line-height:1.9;
}
.band.dark ol.marks li::before{color:#d5b672;}

dl.terms{margin:0;}
dl.terms dt{font-family:var(--serif);font-style:italic;font-size:1.12rem;margin-top:22px;}
dl.terms dt:first-child{margin-top:0;}
dl.terms dd{margin:6px 0 0;color:var(--ink-soft);}
.band.dark dl.terms dd{color:#cdbfae;}

hr.thin{border:0;border-top:1px solid rgba(36,27,22,.3);margin:32px 0;}
.band.dark hr.thin{border-top-color:rgba(247,243,234,.3);}

.note{border-left:5px solid var(--gold);padding-left:20px;color:var(--ink-soft);font-size:.97rem;}

/* ---------- about panel ---------- */
.panel{border-bottom:var(--rule);}
.panel .inner{padding:72px 44px;max-width:1280px;}
.panel .inner .box{max-width:58ch;}
.panel.p-light{background:var(--paper);}
.panel.p-alt{background:var(--paper-alt);}
.panel.p-dark{background:var(--dark);color:#e2d6c5;}
.panel.p-dark h2{color:#f4e9d8;}
.panel.p-dark .label{color:#d5b672;}
@media(max-width:900px){.panel .inner{padding:44px 24px;}}

/* ---------- footer ---------- */
footer.site{border-top:var(--rule);display:grid;grid-template-columns:repeat(12,1fr);}
footer.site .fcell{padding:44px;}
footer.site .f1{grid-column:span 4;background:var(--dark);color:#e6d9c6;border-right:var(--rule5);}
footer.site .f1 .name{font-family:var(--serif);font-size:1.4rem;color:#f7f3ea;margin:0 0 12px;}
footer.site .f2{grid-column:span 3;background:var(--paper-alt);border-right:var(--rule5);}
footer.site .f3{grid-column:span 5;background:var(--paper);}
footer.site nav{display:flex;flex-direction:column;gap:9px;}
footer.site nav a{color:var(--ink);text-decoration:none;font-size:15px;}
footer.site nav a:hover{color:var(--accent);text-decoration:underline;}
footer.site .f1 p{font-size:14.5px;color:#c9bcab;}
.legal{border-top:var(--rule5);padding:18px 44px;background:var(--paper-alt);font-size:13px;color:var(--ink-soft);}
@media(max-width:900px){
  footer.site{grid-template-columns:1fr;}
  footer.site .f1,footer.site .f2,footer.site .f3{grid-column:1 / -1;border-right:0;border-bottom:var(--rule5);padding:32px 24px;}
  footer.site .f3{border-bottom:0;}
  .legal{padding:16px 24px;}
}
