/* Site typography: display title is bespoke; diagrams retain measured SVG type. */
:root{--font-heading:ArchiveTheatre,Georgia,serif;--font-body:ArchiveText,'PT Sans',system-ui,sans-serif;--type-page:40px;--type-section:30px;--type-card:22px;--type-name:18px;--type-body:16px;--type-control:14px;--type-meta:13px;--type-label:12px}
body{font-family:var(--font-body);font-size:var(--type-body);line-height:1.65}
h1:not(.theatre-title){font-family:var(--font-heading);font-size:var(--type-page);font-weight:400;line-height:1.18;letter-spacing:-.02em}
h2,.section-head h2,.diagram-feature h2,.generation-section-head h2,.catalog-group>h2,.research-group>h2,.person-layout>div>h2,.person-sources h2,.request-editor-head h2,.navigation-dialog .modal-head h2{font-family:var(--font-heading);font-size:var(--type-section);font-weight:400;line-height:1.25;letter-spacing:0}
h3,.card h3,.media-card h3,.audio-card h3,.catalog-card h3,.source h3,.link-entry h3,.person-sources h3,.person-layout aside h3,.download-description h3,.discography-card h3,.discography-note h3,.request-card h2,.request-profile h3,.request-guidance h3,.modal-head h2{font-family:var(--font-heading);font-size:var(--type-card);font-weight:400;line-height:1.35;letter-spacing:0}
.contribute-banner h2,.contribute-archive-note h2{font-family:var(--font-heading);font-size:var(--type-section);font-weight:400;line-height:1.25;letter-spacing:0;margin:0 0 10px;color:#fff}
.person-card h3.person-name,.person-card h3{font-family:var(--font-heading);font-size:var(--type-card);font-weight:700;line-height:1.35;letter-spacing:0}
.collection-more-card>span:first-child{font-family:var(--font-body);font-size:var(--type-name);font-weight:700;line-height:1.4}
.hero p,.diagram-feature p,.source p,.fact,.reading .fact,.person-layout .fact,.catalog-description,.request-intro,.request-card p,.request-help,.request-guidance,.contribute-banner p{font-size:var(--type-body);line-height:1.65}
button,input,select,textarea{font-family:var(--font-body)}
button,.hero .actions button,.diagram-feature .actions button,.section-head button,.toolbar button,.toolbar select,.research-tools select,.request-card button,.request-export button,.request-profile .actions button,.request-filter-buttons button,.download-link,.download-categories button,.media-section-select select{font-size:var(--type-control);line-height:1.4}
.navbutton,.navigation-dialog .navbutton{font-size:var(--type-control)}
.small,.metadata,.person-card .small,.media-card .small,.person-card .person-generation,.person-card .person-hypothesis,.person-card .person-role,.source .small,.request-card .small,.request-card-meta,.request-steps small,.request-field,.request-feedback,.audio-card .audio-player-row>p,.catalog-people,.legend,.tree-note,.source-url,.catalog-card .source-url,.ref,.hero .stat span,.contribute-banner .contribute-menu-hint{font-size:var(--type-meta);line-height:1.6}
.eyebrow,.nav-label,.navigation-dialog .nav-label,.audio-card .kind-icon span,.research-toc-group h2{font-family:var(--font-body);font-size:var(--type-label);font-weight:400;line-height:1.5;letter-spacing:.12em}
.research-reading details>summary,.request-help summary{font-family:var(--font-heading);font-size:var(--type-card);font-weight:400;line-height:1.35}
.research-toc-group button,.research-tools label,.media-toolbar label,.media-section-select,.request-search,.request-steps strong{font-family:var(--font-body);font-size:var(--type-control);line-height:1.5}
.social-profiles h2{font-family:var(--font-body);font-size:var(--type-name);font-weight:700}
@media(max-width:900px){:root{--type-page:32px;--type-section:26px;--type-card:20px;--type-name:18px}.topbar input,.contribution-form input,.contribution-form textarea,.request-field input,.request-field textarea{font-size:16px}.mobile-nav button{font-size:12px;line-height:1.25}.hero .actions button{font-size:var(--type-control)}}

/* Catalog descriptions are reading text, not display headlines. */
.source h3,.catalog-card h3,.link-entry h3,.person-sources h3,.research-reading details>summary,.request-help summary{font-family:var(--font-body);font-size:var(--type-name);font-weight:400;line-height:1.5;letter-spacing:0}
.link-entry .link-description,.catalog-description,.source p,.reading .fact{font-family:var(--font-body);font-size:var(--type-body);font-weight:400;line-height:1.75;letter-spacing:0}
.link-entry h3 a{text-decoration:none}.link-entry h3 a:hover{text-decoration:underline;text-underline-offset:3px}.link-entry .source-url{font-size:var(--type-meta);line-height:1.6}

/* Consistent disclosure panels in archive requests. */
details.request-help,details.request-directory{box-sizing:border-box;width:100%;max-width:none;margin:20px 0;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--panel);font-family:var(--font-body);font-size:var(--type-body);line-height:1.65}
details.request-help>summary,details.request-directory>summary{position:relative;display:block;list-style:none;margin:0;padding:20px 52px 20px 22px;font-family:var(--font-body);font-size:var(--type-name);font-weight:400;line-height:1.5;letter-spacing:0;color:var(--green);cursor:pointer;border-radius:12px}
details.request-help>summary::-webkit-details-marker,details.request-directory>summary::-webkit-details-marker{display:none}
details.request-help>summary::after,details.request-directory>summary::after{content:"";position:absolute;right:24px;top:27px;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
details.request-help[open]>summary::after,details.request-directory[open]>summary::after{transform:rotate(225deg);top:31px}
details.request-help>summary:focus-visible,details.request-directory>summary:focus-visible{outline:2px solid var(--green);outline-offset:3px}
details.request-help[open],details.request-directory[open]{padding:0 22px 22px}
details.request-help[open]>summary,details.request-directory[open]>summary{margin:0 -22px 20px;border-bottom:1px solid var(--line);border-radius:12px 12px 0 0}
@media(max-width:600px){details.request-help>summary,details.request-directory>summary{padding:18px 46px 18px 18px}details.request-help[open],details.request-directory[open]{padding:0 18px 18px}details.request-help[open]>summary,details.request-directory[open]>summary{margin:0 -18px 18px}details.request-help>summary::after,details.request-directory>summary::after{right:20px;top:25px}details.request-help[open]>summary::after,details.request-directory[open]>summary::after{top:29px}}

.request-download-panel{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;margin:20px 0;padding:20px 22px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--green);font-family:var(--font-body);font-size:var(--type-name);font-weight:400;line-height:1.5;text-decoration:none}
.request-download-panel svg{flex-shrink:0}.request-download-panel:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.request-download-panel:hover,details.request-help>summary:hover,details.request-directory>summary:hover{background:var(--soft)}
@media(max-width:600px){.request-download-panel{padding:18px;gap:16px}}

/* Green headers match the family contribution panel. */
.request-download-panel,details.request-help>summary,details.request-directory>summary{background:#244e41;color:#fffdf3;border-color:#244e41}
.request-download-panel:hover,details.request-help>summary:hover,details.request-directory>summary:hover{background:#1d4035;color:#fffdf3}
details.request-help[open]>summary,details.request-directory[open]>summary{border-bottom-color:#244e41}

/* Keep older cached request markup consistent with the current download panel. */
.request-summary:has(>a[download]){display:flex;flex-direction:column;align-items:stretch;border-bottom:0;padding-bottom:0;gap:20px}
.request-summary>a[download]{box-sizing:border-box;display:block;flex-shrink:1;width:100%;max-width:none;margin:0;padding:20px 22px;border:1px solid #244e41;border-radius:12px;background:#244e41;color:#fffdf3;font-family:var(--font-body);font-size:var(--type-name);font-weight:400;line-height:1.5;text-decoration:none}
.request-summary>a[download]:hover{background:#1d4035}
@media(max-width:600px){.request-summary>a[download]{padding:18px;font-size:var(--type-name)}}

/* Family photo downloads: person collections, matching the archive typography. */



.download-photo-groups{display:grid;gap:14px}
.download-photo-group{border:1px solid var(--line);border-radius:12px;background:var(--panel);scroll-margin-top:24px;overflow:hidden}
.download-photo-group>summary{display:flex;align-items:center;gap:16px;list-style:none;cursor:pointer;padding:20px 24px;background:var(--soft);color:var(--green)}
.download-photo-group>summary::-webkit-details-marker{display:none}
.download-photo-group>summary>span:first-child{flex:1;font:700 22px/1.4 ArchiveTheatre,Georgia,serif}
.download-photo-count{font:14px/1.5 ArchiveText,sans-serif;white-space:nowrap}
.download-photo-group>summary::after{content:'+';font:24px/1 ArchiveText,sans-serif}
.download-photo-group[open]>summary::after{content:'−'}
.download-photo-group>summary:focus-visible{outline:2px solid var(--green);outline-offset:-4px}
.download-photo-group .download-list{border:0;border-radius:0}
@media(max-width:600px){.download-photo-group>summary{padding:17px;gap:10px;flex-wrap:wrap}.download-photo-group>summary>span:first-child{font-size:20px;flex-basis:calc(100% - 35px)}.download-photo-count{order:3;flex-basis:100%}.download-photo-group .download-row{flex-wrap:wrap}.download-photo-group .download-actions{width:100%}}
