[hidden]{display:none!important}
body{background:#17372f}
.archive-shell{max-width:1440px;margin:32px auto;background:#f7f0e2;box-shadow:0 16px 80px #0a211b66;border:1px solid #b69a62;outline:1px solid #8f794e;outline-offset:7px}
.archive-header{text-align:center;padding:42px 24px 28px}
.archive-header .heraldry{margin-bottom:18px}
.archive-header .heraldry>a{display:block}
.archive-header .eyebrow{font-size:.75rem;margin-bottom:8px}
.site-title{font:500 clamp(2.2rem,4.8vw,4.2rem)/1.1 var(--serif);color:#60251f;text-decoration:none;letter-spacing:-.03em}
.site-location{font:1.45rem var(--serif);color:#7a6545;margin:8px 0 14px}
.crest-context{font-size:.8125rem;color:#71634e;max-width:670px;margin:auto;line-height:1.65}
.crest-context summary{cursor:pointer;list-style-position:inside;text-decoration:underline;text-underline-offset:3px}
.crest-context p{padding:8px 16px}
.catalog-nav{display:flex;justify-content:center;gap:10px 22px;flex-wrap:wrap;padding:20px 28px;border-block:1px solid #d6c5a3;background:#eee3ce}
.catalog-nav a{font-size:.875rem;color:#58452e;text-decoration:none;border-bottom:2px solid transparent;padding-bottom:3px}
.catalog-nav a:hover,.catalog-nav a[aria-current]{color:#752f29;border-bottom-color:#a58243}
.family-summary{position:relative;min-height:490px;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(#13241c44,#13241c66),url('archive-background.png') center/cover;color:#fff8e6;margin:32px 32px 0}
.summary-copy{max-width:720px;padding:65px 30px 90px;position:relative}
.family-summary .eyebrow{font-size:.75rem;color:#dbbe80}
.family-summary h1{font:500 clamp(2.5rem,5vw,4.6rem)/1.1 var(--serif);letter-spacing:-.03em;margin:18px 0 24px}
.summary-placeholder{font:1.25rem/1.7 var(--serif);max-width:600px;margin:0 auto 30px;white-space:pre-line}
.summary-link{display:inline-flex;gap:34px;align-items:center;padding:12px 24px;border:1px solid #c4a362;color:#fff4d7;text-decoration:none;font-size:.875rem;background:#152e2580}
.summary-link:hover{background:#6b4e22}
.image-caption{position:absolute;bottom:14px;left:25px;right:25px;margin:0;font-size:.75rem;line-height:1.5;color:#e3dccb}
.catalog-index{padding:55px clamp(24px,5vw,72px) 65px}
.index-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px;gap:20px}
.index-heading .eyebrow{font-size:.75rem;margin-bottom:8px}
.index-heading h2{font:500 2.7rem/1.2 var(--serif);margin:0;color:#60251f}
.index-heading>p{font-size:.875rem;color:#79664d;margin:0}
.catalog-grid,.subcatalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 36px}
.catalog-card{display:flex;align-items:center;gap:18px;min-height:104px;border-top:1px solid #cbb58b;text-decoration:none;color:#473520;padding:20px 0;transition:color .15s,background .15s}
.catalog-card:hover{color:#752f29;background:#eee2cb}
.catalog-number{font:.875rem var(--serif);color:#9b7c41;width:24px;flex-shrink:0}
.catalog-name{font:500 clamp(1.15rem,2vw,1.5rem)/1.35 var(--serif);flex:1;overflow-wrap:anywhere}
.catalog-arrow{font-size:1.4rem;color:#a18550}
#catalog-view{padding:32px clamp(20px,5vw,64px) 50px}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:.875rem;line-height:1.5;margin-bottom:38px;color:#7a6649}
.breadcrumbs a{text-underline-offset:4px}
.catalog-heading{border-bottom:1px solid #bda16a;padding-bottom:26px;margin-bottom:28px}
.catalog-heading .eyebrow{font-size:.75rem;margin-bottom:10px}
.catalog-heading h1{font:500 clamp(2rem,4.5vw,3.7rem)/1.15 var(--serif);color:#60251f;letter-spacing:-.025em;margin:0;overflow-wrap:anywhere;scroll-margin-top:24px}
.catalog-text{padding:24px 28px;min-height:215px;background:#fff9eb;border:1px solid #d9c7a4;box-shadow:inset 0 0 0 5px #f5ead4;white-space:pre-line}
.catalog-text h2,.subcatalogs h2{font:500 1.45rem/1.3 var(--serif);color:#69442d;margin:0 0 15px}
.catalog-text p{font-size:1rem;line-height:1.8;max-width:80ch}
.catalog-empty{color:#817055;font-size:.9375rem;font-style:italic}
.subcatalogs{margin-top:35px;padding-bottom:15px}
.subcatalog-grid:empty{display:none}
.archive-tree.medieval{background:transparent;padding:25px 0 0;color:#392b21;border-top:1px solid #cbb58b;margin-top:25px}
.archive-tree .tree-source{max-width:none}
.archive-footer{border-top:1px solid #d6c5a3;padding:25px 32px;text-align:center;color:#7c6950}
.archive-footer>a{font:1.1rem var(--serif);text-decoration:none;color:#654731}
.archive-footer p{font-size:.75rem;line-height:1.7;max-width:800px;margin:12px auto 0}
.archive-footer p a{text-underline-offset:3px}
a:focus-visible,summary:focus-visible{outline:3px solid #28646e;outline-offset:4px}
@media(max-width:700px){.archive-shell{margin:8px;outline-offset:3px}.archive-header{padding:30px 18px 20px}.archive-header .heraldry img{width:120px;height:160px}.catalog-nav{justify-content:flex-start;padding:15px 18px;gap:10px 18px}.family-summary{margin:16px 12px 0;min-height:430px}.summary-copy{padding:42px 18px 100px}.family-summary h1{font-size:2.6rem}.summary-placeholder{font-size:1.1rem}.image-caption{left:14px;right:14px}.catalog-grid,.subcatalog-grid{grid-template-columns:1fr}.catalog-index{padding:35px 20px}.index-heading>p{display:none}.catalog-card{min-height:80px}.catalog-heading h1{font-size:2.25rem}.catalog-text{padding:22px 20px}.archive-footer{padding:24px 18px}.archive-tree .tree-scroll{margin-inline:0}}
@media(prefers-reduced-motion:reduce){.catalog-card{transition:none}}

/* One quiet home surface; the full archive is reached through disclosure navigation. */
.archive-shell{position:relative}
.archive-header{padding-top:80px}
.catalog-menu{position:absolute;top:20px;right:24px;z-index:30}
.catalog-menu>summary{display:flex;align-items:center;justify-content:space-between;gap:28px;list-style:none;cursor:pointer;background:#f4ead5;color:#593d28;border:1px solid #b69a62;padding:11px 19px;font-size:1rem;min-height:46px}
.catalog-menu>summary::-webkit-details-marker{display:none}
.catalog-menu>summary{justify-content:center;padding:11px;width:48px;height:48px}
.catalog-menu .catalog-nav{position:absolute;right:0;top:calc(100% + 8px);display:flex;flex-direction:column;flex-wrap:nowrap;gap:0;width:min(360px,calc(100vw - 52px));max-height:70vh;overflow-y:auto;padding:12px 18px;background:#fbf4e6;border:1px solid #b69a62;box-shadow:0 18px 40px #081c1a55}
.catalog-menu .catalog-nav a{padding:12px 6px;font-size:.9375rem;border-bottom:1px solid #dcc9a8;line-height:1.4}
.catalog-menu .catalog-nav a:last-child{border-bottom:0}
.catalog-menu .catalog-nav a[aria-current]{font-weight:600;color:#752f29}
.is-home .archive-shell{min-height:calc(100svh - 64px);background:linear-gradient(#0d211d88,#0d211d55 55%,#0d211dcc),url('archive-background.png') center/cover no-repeat;color:#f9f0db}
.is-home .archive-header{background:transparent}
.is-home .site-title{color:#fff3d7}
.is-home .site-location,.is-home .heraldry figcaption,.is-home .eyebrow.dark{color:#e0c593}
.is-home .crest-context{color:#dfd1b8}
.is-home .family-summary{background:none;margin:0;min-height:370px}
.is-home .summary-copy{padding:34px 28px 90px;max-width:820px}
.is-home .family-summary h1{font-size:clamp(2rem,4vw,3.3rem);margin-top:0;overflow-wrap:anywhere;hyphens:auto}
.is-home .summary-placeholder{max-width:680px;margin-bottom:0;text-shadow:0 2px 12px #0009}
.is-home .archive-footer{border-top:1px solid #d6c5a344;color:#ded1b7;padding:18px 28px}
.is-home .archive-footer>a{display:none}
.subcatalogs{margin-top:0;margin-bottom:28px}
.article-reader{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:28px}
.article-reader button{font:inherit;font-size:1rem;padding:10px 16px;min-height:44px;border:1px solid #672c27;background:#672c27;color:#fff8e6;cursor:pointer}
.article-reader button:disabled{opacity:.5;cursor:default}
.article-reader button:focus-visible{outline:3px solid #28646e;outline-offset:3px}
.article-reader .reader-status{flex-basis:100%;font-size:.9375rem;margin:0}
.reader-status:empty{display:none}
.record-table-scroll{max-width:100%;overflow-x:auto;margin:24px 0}
.record-table{border-collapse:collapse;min-width:1000px;width:100%;font-size:1rem;line-height:1.6}
.record-table caption{text-align:left;font-family:var(--serif);font-size:1.35rem;padding:0 0 12px}
.record-table th,.record-table td{border:1px solid #cbb58b;padding:12px;vertical-align:top;text-align:left}
.record-table th{background:#efe1c5}
.record-table-scroll:focus-visible{outline:3px solid #28646e;outline-offset:3px}
.catalog-underlined .catalog-name{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;text-decoration-color:#a98955}

/* Archival photographs: exact originals, rotated and framed by SVG viewports. */
.record-scans { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 1px solid #bcab85; }
.record-scan-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; align-items: start; }
.record-scan { margin: 0; min-width: 0; }
.record-scan-button { display: block; width: 100%; padding: 0; border: 1px solid #b7a581; background: #eee4ce; color: #642e29; cursor: zoom-in; }
.record-scan-button svg { display: block; width: 100%; height: auto; }
.scan-enlarge-label { display: block; padding: .65rem; font: 500 1rem 'DM Sans',sans-serif; text-decoration: underline; text-underline-offset: .2em; }
.record-scan figcaption { margin-top: .6rem; font: .95rem/1.5 'DM Sans',sans-serif; }
.record-scans .scan-source,.record-scans .scan-note { font: .95rem/1.6 'DM Sans',sans-serif; }
.scan-dialog { width: min(1100px,96vw); max-width: 96vw; height: 94dvh; max-height: 94dvh; padding: 0; border: 1px solid #b7a581; color: #3b3024; background: #f7f0e2; }
.scan-dialog::backdrop { background: #0b191be0; }
.scan-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; padding: .7rem; position: sticky; top: 0; background: #f7f0e2; z-index: 1; border-bottom: 1px solid #b7a581; }
.scan-toolbar button,.scan-toolbar a { font: 1rem/1.4 'DM Sans',sans-serif; padding: .6rem .8rem; border: 1px solid #8b6f4e; background: #fff9ed; color: #642e29; cursor: pointer; text-decoration: none; }
.scan-dialog-title { padding: 0 .8rem; font: 1rem/1.5 'DM Sans',sans-serif; }
.scan-viewport { overflow: auto; max-height: calc(94dvh - 11rem); padding: .75rem; }
.scan-viewport svg { display: block; width: 100%; height: auto; }
.scan-viewport.scan-enlarged svg { width: max(1400px,180%); max-width: none; }
.record-scan-button:focus-visible,.scan-toolbar :focus-visible { outline: 3px solid #642e29; outline-offset: 3px; }
@media(max-width:600px) { .record-scan-grid { grid-template-columns: 1fr; } .scan-toolbar { gap: .4rem; } .scan-toolbar button,.scan-toolbar a { padding: .5rem; } }

.catalog-back{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 16px;margin:0 0 22px;border:1px solid #bda16a;background:#fff9eb;color:#60251f;text-decoration:none;font-size:1rem}
.catalog-back span{font-size:1.5rem;line-height:1}
.catalog-back:hover{background:#eee2cb}

.biography-scan{margin:28px 0;max-width:800px;white-space:normal}
.biography-scan img{display:block;width:100%;height:auto;border:1px solid #d9c7a4}
.biography-list{line-height:1.8;padding-left:1.5em;white-space:normal}
.catalog-text p a{color:#60251f;text-underline-offset:4px}

.biography-scan figcaption{margin-top:12px;font-size:1rem;line-height:1.6;color:#69442d}

.biography-scan figcaption{white-space:pre-line}
.construction-notice{text-align:center;padding:16px 0}
.construction-notice img{display:block;width:180px;height:auto;margin:0 auto 18px}
.construction-notice p{margin:0 auto;font-size:1.05rem}

.maps-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;white-space:normal;margin-top:24px}
.maps-gallery .biography-scan{margin:0;align-self:start}
.maps-gallery a{display:block}
.maps-gallery a:focus-visible{outline:3px solid #28646e;outline-offset:4px}
@media(max-width:700px){.maps-gallery{grid-template-columns:1fr;gap:20px}}

.heraldry-pair{display:flex;justify-content:center;align-items:flex-start;gap:clamp(24px,6vw,72px)}
.archive-header .heraldry-pair .heraldry{margin:0 0 18px;min-width:0}
@media(max-width:360px){.archive-header .heraldry-pair img{width:100px;height:140px}}

.record-table.simple-record-table{min-width:0;overflow-wrap:anywhere}
.biography-scan.coat-of-arms{max-width:250px;margin:32px auto;text-align:center}
.biography-scan.coat-of-arms img{border:0}

.home-contact{text-align:center;padding:24px 20px 38px;color:#f9f0db}
.home-contact h2{font-family:var(--serif);font-size:1.75rem;font-weight:500;color:#e0c593;margin:0 0 12px}
.home-contact address{font-style:normal;font-size:1rem;line-height:1.7}
.home-contact a{color:inherit;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
.home-contact a:focus-visible{outline:2px solid #e0c593;outline-offset:5px}

.home-contact{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:24px;max-width:940px;margin:0 auto}
.contact-ornament{display:block;width:auto;max-width:100%;height:180px;object-fit:contain;justify-self:center;opacity:.95;pointer-events:none}
.contact-copy{min-width:0}
@media(max-width:700px){.home-contact{gap:20px;max-width:380px}.contact-ornament{height:140px}}

/* Wider reading and balanced spacing on laptops and desktop monitors. */
@media(min-width:701px){
  .archive-shell{width:calc(100% - 48px);max-width:1600px}
  .family-quote{font:400 1.4rem/1.75 var(--serif);margin:0 auto}
}
@media(min-width:1024px){
  .archive-header{padding:64px 48px 32px}
  #catalog-view{padding:36px clamp(36px,4vw,72px) 64px}
  .catalog-text{padding:32px 40px;white-space:normal}
  .catalog-text p{max-width:none;font-size:1.125rem;line-height:1.85;white-space:pre-line}
  .catalog-text h2{font-size:1.75rem;line-height:1.4}
  .biography-list{font-size:1.125rem;line-height:1.85}
  .biography-scan:not(.coat-of-arms){max-width:1000px;margin-inline:auto}
  .subcatalog-grid{gap:0 48px}
  .is-home .summary-copy{width:100%;max-width:1180px;padding:32px 48px 48px}
  .is-home .family-summary{min-height:260px}
  .family-quote{font-size:1.65rem;max-width:1080px}
  .medieval .person-panel{max-width:1100px}
  .tree-documents{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
}
