/* Shared information architecture for all five concepts. */
*,*::before,*::after{box-sizing:border-box}
/* Stack each word of the hero title on its own line. Previously only
   midnight.css had this rule, so atlas/egyptian/folio/museum ran the
   title words together with no spacing. Fix, Aug 2026. */
.bibliographical-title span{display:block}
body{margin:0;text-rendering:optimizeLegibility}
.design-badge{display:inline-grid;grid-template-columns:auto auto;gap:0 10px;align-items:center;margin:0 0 28px;text-decoration:none;text-transform:uppercase;letter-spacing:.08em}
.design-badge span{grid-row:1/3;font:700 12px/1 ui-monospace,monospace}
.design-badge b{font:700 11px/1.2 ui-monospace,monospace}
.design-badge i{font:500 9px/1.4 ui-monospace,monospace;font-style:normal;opacity:.68}
.overview-map-title{margin:0 0 14px}
.overview-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 70px}
.overview-map a{position:relative;display:grid;grid-template-columns:1fr;align-content:center;gap:8px;min-height:116px;padding:22px;text-decoration:none;transition:transform .2s ease,background .2s ease,color .2s ease}
.overview-map a:hover{transform:translateY(-4px)}
.overview-map span{grid-row:1/3;font:700 12px/1 ui-monospace,monospace;letter-spacing:.1em}
.overview-map b{font-size:18px;line-height:1.2}
.overview-map small{font:500 10px/1.45 ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase}
.overview-section{position:relative;scroll-margin-top:76px;padding:72px 0}
.overview-section+.overview-section{border-top:1px solid var(--rule,var(--line))}
.overview-marker{display:grid;grid-template-columns:170px 1fr;gap:20px;align-items:end;margin:0 0 30px}
.overview-marker span{font:700 10px/1.4 ui-monospace,monospace;letter-spacing:.15em;text-transform:uppercase}
.overview-marker h2{margin:0;font-size:clamp(30px,4vw,58px);line-height:1.02;max-width:18ch}
.overview-section>.section-head{margin-top:0}
.copy-card summary{cursor:pointer}
.button,.topnav label,.filters label{-webkit-tap-highlight-color:transparent}
@media(max-width:800px){
  .overview-map{grid-template-columns:1fr;margin:24px 0 40px}
  .overview-map a{min-height:88px}
  .overview-marker{grid-template-columns:1fr;gap:8px}.overview-section{padding:48px 0}
  .design-badge{margin-bottom:18px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{transition:none!important}}

/* Back-to-top button */
.back-to-top{position:fixed;right:20px;bottom:20px;width:48px;height:48px;border-radius:50%;border:1px solid var(--gold, #d9ad5b);background:rgba(7,10,17,.92);color:var(--gold2, #f5d894);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s ease,transform .25s ease,visibility .25s;z-index:500;box-shadow:0 4px 16px rgba(0,0,0,.35)}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:rgba(7,10,17,1);transform:translateY(-2px)}
.back-to-top:focus-visible{outline:2px solid var(--gold2, #f5d894);outline-offset:2px}
@media (max-width:600px){.back-to-top{right:14px;bottom:14px;width:44px;height:44px;font-size:18px}}


/* Align copy photographs in desktop rows while preserving complete narrow spines. */
@media (min-width: 801px) {
  body[data-design] .copy-card .gallery figure {
    display: flex;
    flex-direction: column;
  }
  body[data-design] .copy-card .gallery figure > img {
    height: 360px;
    max-height: none;
    object-fit: contain;
    object-position: center;
  }
  body[data-design] .copy-card .gallery figure > figcaption {
    margin-top: auto;
  }
}

/* People: kinship chart figure inside a profile card. */
.person-profile .person-kinship-figure { margin: 16px 0 6px; padding: 0; min-width: 0; }
.person-profile .person-kinship-figure .gallery-open { display: block; width: 100%; margin: 0; padding: 0; border: 0; background: none; cursor: zoom-in; }
.person-profile .person-kinship-figure img { display: block; width: 100%; max-width: 100%; height: auto; aspect-ratio: 1800 / 2050; object-fit: contain; border: 1px solid rgba(128, 128, 128, 0.35); border-radius: 4px; background: #f6f1e7; cursor: zoom-in; }
.person-profile .person-kinship-figure figcaption { margin-top: 8px; font-size: 0.82em; line-height: 1.45; }
.person-profile .person-kinship-figure figcaption b,
.person-profile .person-kinship-figure figcaption small { display: block; }
.person-profile .person-kinship-figure figcaption small { margin-top: 2px; opacity: 0.85; }
/* People: kinship chart enlarge hint and chart source links. */
.person-profile .person-kinship-figure .person-kinship-hint { display: block; margin-top: 5px; font-size: 0.78em; line-height: 1.3; letter-spacing: 0.04em; opacity: 0.75; text-align: center; cursor: zoom-in; }
.person-profile .person-kinship-figure figcaption .profile-links { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; margin: 8px 0 0; padding: 0; }
.person-profile .person-kinship-figure .person-kinship-sources-label { font-weight: 700; }
.person-profile .person-kinship-figure figcaption .profile-links a,
body[data-design] .person-profile .person-kinship-figure figcaption .profile-links a { display: inline-block; min-height: 24px; margin: 0; padding: 3px 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: inherit; font: inherit; letter-spacing: normal; text-transform: none; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.person-profile .person-kinship-figure figcaption .profile-links a:hover { opacity: 0.8; }
.person-profile .person-kinship-figure .gallery-open { color: inherit; font: inherit; }
