
/* ---------- contact sheet ---------- */
.d3-sheet{padding-top:clamp(1rem,2vw,1.75rem)}
.d3-sheet__grid{display:grid;gap:.5rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:760px){.d3-sheet__grid{grid-template-columns:2fr 1fr 1fr;gap:.65rem}}
.d3-sheet__grid>*{position:relative;overflow:hidden}
.d3-sheet__lead{grid-column:1/-1}
@media(min-width:760px){.d3-sheet__lead{grid-column:1;grid-row:1/3}}
.d3-sheet__lead .mm-slot{aspect-ratio:16/10}
@media(min-width:760px){.d3-sheet__lead .mm-slot{position:absolute;inset:0;height:100%}}
.d3-sheet__cell .mm-slot{aspect-ratio:1/1}
@media(min-width:760px){.d3-sheet__cell .mm-slot{aspect-ratio:4/5}}

.d3-open{padding-block:clamp(2.5rem,6vw,4.5rem)}
.d3-open__grid{display:grid;gap:clamp(1.5rem,3vw,4rem);align-items:end}
@media(min-width:1000px){.d3-open__grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}}
.d3-open h1{font-size:clamp(2.5rem,1.4rem + 4.8vw,5.4rem);line-height:.96;letter-spacing:-.034em;margin:1.35rem 0 0;max-width:14ch}
.d3-open h1 em{font-style:italic;color:var(--sage-ink)}
.d3-open__actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.9rem}

/* ---------- portrait wall ---------- */
.d3-wall{padding-block:clamp(3rem,7vw,5.5rem);background:var(--deep-2)}
.d3-wall__head{display:grid;gap:1.25rem 3rem;align-items:end;margin-bottom:clamp(1.5rem,3vw,2.25rem)}
@media(min-width:900px){.d3-wall__head{grid-template-columns:minmax(0,1fr) auto}}
.d3-wall__head h2{color:var(--paper);font-size:clamp(1.8rem,1.35rem + 2vw,3rem);line-height:1.02;letter-spacing:-.03em;margin:.9rem 0 0;max-width:18ch}
.d3-wall__head h2 em{font-style:italic;color:var(--sage-soft)}
.d3-wall__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem}
@media(min-width:640px){.d3-wall__grid{grid-template-columns:repeat(4,1fr);gap:.5rem}}
@media(min-width:1100px){.d3-wall__grid{grid-template-columns:repeat(6,1fr)}}

/* ---------- filter ---------- */
.d3-filter{position:sticky;top:112px;z-index:30;background:rgba(243,255,239,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair)}
@media(max-width:767px){.d3-filter{top:96px}}
.d3-filter__row{display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:none;padding:.7rem 0}
.d3-filter__row::-webkit-scrollbar{display:none}
.d3-filter button{flex:none;border:1px solid var(--hair);background:transparent;border-radius:1px;
  padding:.55rem 1.05rem;font:500 .6875rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);cursor:pointer;white-space:nowrap;transition:all .25s var(--ease)}
.d3-filter button:hover{color:var(--deep);border-color:var(--sage)}
.d3-filter button.is-on{background:var(--deep);border-color:var(--deep);color:var(--paper)}

/* ---------- chapter plate ---------- */
.d3-chapter{min-height:clamp(260px,32vw,440px)}

/* chapter note */
.d3-note{padding-block:clamp(2.5rem,5vw,4rem);background:var(--veil);border-bottom:1px solid var(--hair)}
.d3-note__grid{display:grid;gap:clamp(1.25rem,3vw,3.5rem)}
@media(min-width:1000px){.d3-note__grid{grid-template-columns:minmax(0,.34fr) minmax(0,1fr)}}
.d3-note h2{font-size:clamp(1.6rem,1.3rem + 1.5vw,2.4rem);line-height:1.06;letter-spacing:-.028em;margin:.85rem 0 0}

/* ---------- uniform directory cards ---------- */
/* hairlines live on the cards, not on the container, so a part-filled
   last row never leaves a block of rule colour behind */
.d3-grid{display:grid;border-top:1px solid var(--hair)}
.d3-card{border-bottom:1px solid var(--hair)}
@media(min-width:760px){
  .d3-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .d3-card{border-right:1px solid var(--hair)}
  .d3-card:nth-child(2n){border-right:0}
}
@media(min-width:1180px){
  .d3-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .d3-card:nth-child(2n){border-right:1px solid var(--hair)}
  .d3-card:nth-child(3n){border-right:0}
  /* a region with only two territories fills the measure rather than
     leaving a third of the row empty */
  .d3-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .d3-grid--2 .d3-card:nth-child(2n){border-right:0}
  .d3-grid--1{grid-template-columns:minmax(0,1fr)}
  .d3-grid--1 .d3-card{border-right:0}
}

.d3-card{background:var(--paper);padding:clamp(1.5rem,2.5vw,2.15rem);display:flex;flex-direction:column;
  transition:background .35s var(--ease)}
.d3-card:hover{background:var(--mist)}
.d3-card__top{display:flex;align-items:baseline;gap:1rem;margin-bottom:.35rem}
.d3-card__top h2{margin:0;font-size:clamp(1.4rem,1.2rem + .8vw,1.9rem);line-height:1.04;letter-spacing:-.028em}
.d3-card__tally{margin-left:auto;font-family:var(--serif);font-size:1.5rem;line-height:1;color:var(--sage-ink);flex:none}
.d3-card__region{display:block;margin-bottom:1.15rem;font-family:var(--serif);font-style:italic;font-size:.9375rem;color:var(--muted)}
.d3-card .mm-chips{margin-bottom:1.35rem}
.d3-card .mm-chips a{background:transparent;border-color:var(--line-soft)}
.d3-card__note{margin-top:auto;border-top:1px solid var(--hair);padding-top:.95rem}
.d3-card__note summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  font:500 .625rem/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--sage-ink);transition:color .25s}
.d3-card__note summary::-webkit-details-marker{display:none}
.d3-card__note summary:hover{color:var(--deep)}
.d3-card__note summary i{font-size:.8rem;transition:transform .35s var(--slow)}
.d3-card__note[open] summary i{transform:rotate(180deg)}
.d3-card__note .mm-body{padding-top:1rem;font-size:.9rem;line-height:1.75}

.d3-empty{padding:4rem 1rem;text-align:center;color:var(--muted)}

/* ---------- outro ---------- */
.d3-outro{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(4rem,9vw,7rem);text-align:center}
.d3-outro__bg{position:absolute;inset:0;z-index:-2}
.d3-outro::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(34,48,31,.87)}
.d3-outro h2{color:var(--paper);font-size:clamp(2rem,1.5rem + 2.4vw,3.4rem);line-height:1.02;letter-spacing:-.03em;margin:1.35rem auto 1.3rem;max-width:18ch}
.d3-outro .mm-body{color:rgba(243,255,239,.82);max-width:60ch;margin-inline:auto}
.d3-outro__actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:2.25rem}
