
:root{--paper:#f2ede2;--ink:#302b25;--muted:#756b5f}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,serif}
header{max-width:1180px;margin:auto;padding:48px 28px 24px;border-bottom:1px solid #cfc4b2}
.eyebrow{font:12px Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
h1{font-size:48px;font-weight:400;margin:8px 0}.altname{color:var(--muted);font-size:22px;margin:-2px 0 9px}.life{color:var(--muted);font-size:18px}
main{max-width:1180px;margin:auto;padding:30px 28px 80px}h2{font-weight:400;font-size:30px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.card{padding:0;border:0;background:#fff;text-align:left;cursor:pointer;box-shadow:0 2px 12px #0001}
.card img{width:100%;height:210px;object-fit:contain;display:block;background:#fff}.cardtext{display:block;padding:12px 14px}
.cardCropBox{position:absolute;z-index:19;border:2px solid #e6bc55;background:#e6bc5530;box-sizing:border-box;pointer-events:none}
.card small{display:block;margin-top:5px;color:var(--muted);line-height:1.25}
dialog{width:min(96vw,1400px);height:min(92vh,900px);padding:0;border:0;background:#171614;color:#eee}
dialog::backdrop{background:#000b}.viewer{height:100%;display:grid;grid-template-columns:minmax(0,1fr) 330px}.imageWorkspace{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}
.stage{position:relative;min-height:0;overflow:hidden;background:#111}#hero{position:absolute;max-width:none;user-select:none;transform-origin:0 0;-webkit-user-drag:none;pointer-events:none}#interaction{position:absolute;inset:0;z-index:3;touch-action:none;user-select:none}
.info{padding:28px;background:#292620;overflow:auto}.info h3{font:30px Georgia,serif;font-weight:400;margin:8px 0 20px}
.info dt{font:11px Arial,sans-serif;text-transform:uppercase;letter-spacing:.12em;color:#bcb3a5;margin-top:18px}
.info dd{margin:5px 0;line-height:1.4}.familyChoices{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 18px}.familyChoices button{border:1px solid #b7a88d;background:transparent;color:#eee;border-radius:15px;padding:6px 9px;cursor:pointer;font:12px Arial,sans-serif}.familyChoices button.active{background:#eee;color:#292620}.close{position:absolute;right:344px;top:12px;z-index:5;border:0;border-radius:50%;width:34px;height:34px;background:#0008;color:#fff;font-size:20px;cursor:pointer}
.controls{position:absolute;z-index:30;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:5px;align-items:center;padding:5px 7px;border-radius:22px;background:#12110f99;border:1px solid #fff4;backdrop-filter:blur(5px);box-shadow:0 3px 16px #0004;white-space:nowrap}
.controls button{height:30px;border:1px solid #ffffff8c;border-radius:15px;background:#14131124;color:#fffffff0;padding:0 10px;cursor:pointer}
.controls button.active{background:#ffffffd1;color:#29251f;border-color:#fff}#readout{font:12px Arial,sans-serif;min-width:44px;text-align:center}.marqueeBox{position:absolute;border:1px solid #fff;background:#ffffff18;pointer-events:none;z-index:4}
@media(max-width:800px){.viewer{grid-template-columns:1fr}.info{display:none}.close{right:12px}.controls{max-width:calc(100% - 12px);gap:2px;padding:4px}.controls button{padding:0 6px;min-width:30px}#readout{min-width:34px}}
.transcription{margin-bottom:9px}.textmeta{font-size:12px;color:var(--muted);margin-top:2px}.regionPoly{position:absolute;z-index:4;pointer-events:auto;fill:rgba(255,255,255,.03);stroke:rgba(255,255,255,.65);stroke-width:2;vector-effect:non-scaling-stroke}.regionPoly.selected{fill:rgba(255,255,255,.10);stroke:white}.regionLayer{position:absolute;inset:0;z-index:4;pointer-events:none}.regionLayer svg{width:100%;height:100%;overflow:visible}.regionLayer.show .regionPoly{pointer-events:auto}.regionLayer:not(.show) .regionPoly{opacity:0;pointer-events:none}.editEdge{fill:none;vector-effect:non-scaling-stroke}.handle{fill:#111;stroke:white;stroke-width:2;vector-effect:non-scaling-stroke;cursor:move}.handleText{fill:white;font:bold 12px Arial;text-anchor:middle;dominant-baseline:central;pointer-events:none}.transcription{margin-bottom:9px}.textmeta{font-size:12px;color:var(--muted);margin-top:2px}.viewerNav{display:flex;gap:10px;align-items:center;margin-bottom:12px;font:12px Arial,sans-serif}.viewerNav button{border:1px solid #c9c0b2;background:transparent;border-radius:999px;padding:5px 9px;cursor:pointer}.viewerNav button:disabled{opacity:.32;cursor:default}#crumbs{color:var(--muted);line-height:1.35}#regions.available:not(.active){background:#efe2b9;border-color:#cdbb7c;color:#51492f}#regions.unavailable{opacity:.34;cursor:default}.regionLayer .regionPoly{pointer-events:auto}.regionLayer:not(.show) .regionPoly{opacity:0;pointer-events:auto}.regionLayer:not(.show) .regionPoly:hover{opacity:.25;stroke:white;fill:rgba(255,255,255,.04)}
.stageNav{position:absolute;left:0;right:0;top:0;height:54px;z-index:40;display:flex;align-items:center;gap:9px;padding:0 14px;background:#0d0d0d;color:#d8d2c8;font:12px Arial,sans-serif;box-sizing:border-box}
.stageNav #crumbs{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#bdb5a8}
.stageNav button{border:1px solid #716b62;background:transparent;color:#ddd5c8;border-radius:999px;padding:6px 10px;cursor:pointer}
.stageNav button:disabled{opacity:.28;cursor:default}
.stageNav .close{position:static;margin-left:0;flex:0 0 auto;border:0;font-size:20px}

.peopleLayer{position:absolute;inset:0;z-index:18;pointer-events:none}
.peopleLayer svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.personMark{fill:rgba(255,255,255,.35);stroke:rgba(20,20,20,.45);stroke-width:1.5}
.personMark.active{fill:rgba(255,255,255,.9);stroke:white;stroke-width:2.5}
#personTip{display:none;position:absolute;z-index:2;pointer-events:none;background:rgba(18,18,18,.78);color:white;border-radius:5px;padding:5px 8px;font:12px Arial,sans-serif;white-space:nowrap;box-shadow:0 1px 6px rgba(0,0,0,.3)}
#people.available:not(.active){background:#d9e7df;border-color:#9db8aa;color:#34473e}
#people.unavailable{opacity:.34;cursor:default}
#curatorBadge{color:#d7c28d;font:10px Arial,sans-serif;letter-spacing:.08em;white-space:nowrap}.curationToolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 12px;background:#292620;color:#eee;font:12px Arial,sans-serif}.curationToolbar button{border:1px solid #777064;border-radius:999px;background:transparent;color:inherit;padding:7px 10px;cursor:pointer;min-height:34px}.curationToolbar button.active{background:#e5d5b8;color:#302b25}@media(max-width:600px){.curationToolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:7px}.curationToolbar button{padding:6px 3px;font-size:11px}#curatorBadge{display:none}.stageNav{gap:4px;padding:0 6px}.stageNav button{padding:6px}}
#changeStatus{border:1px solid #cdbb7c;border-radius:999px;padding:6px 9px;background:#efe2b9;color:#51492f;white-space:nowrap}#changeStatus.clean{display:none}

#personPicker{display:none;position:absolute;z-index:70;left:50%;top:84px;transform:translateX(-50%);width:min(430px,calc(100% - 40px));background:#f5f0e7;color:#29251f;border:1px solid #cfc5b5;border-radius:10px;box-shadow:0 12px 38px #0008;padding:12px;font:14px Arial,sans-serif;box-sizing:border-box}
#personPicker.open{display:block}
#personPicker .pickerTitle{font:18px Georgia,serif;margin:0 0 8px}
#personSearch{width:100%;box-sizing:border-box;border:1px solid #b8ae9f;border-radius:7px;padding:10px 11px;font:15px Arial,sans-serif;background:white;color:#222;outline:none}
#personSearch:focus{border-color:#8e7e62;box-shadow:0 0 0 2px #d8c9aa66}
#personMatches{margin-top:7px;max-height:300px;overflow:auto}
.personChoice{display:block;width:100%;border:0;border-radius:6px;background:transparent;color:#29251f;text-align:left;padding:9px 10px;cursor:pointer;font:14px Arial,sans-serif}
.personChoice:hover,.personChoice.selected{background:#e4dac8}
#personHint{padding:9px 10px;color:#746b5f;font-size:12px}
#personPicker .pickerFoot{display:flex;justify-content:flex-end;margin-top:7px}
#personCancel{border:1px solid #b8ae9f;border-radius:999px;background:transparent;padding:6px 11px;cursor:pointer;color:#514a40}

.brand a{color:inherit;text-decoration:none}.brand a{color:inherit;text-decoration:none}.siteTop{max-width:none;padding:16px 5vw;display:flex;align-items:center;justify-content:space-between;background:#f6f1e8;border-bottom:1px solid #cfc4b2}.brand{font-variant:small-caps;letter-spacing:.08em}.siteNav a{font:14px Arial,sans-serif;color:var(--muted);text-decoration:none;margin-left:20px}
.personHero{max-width:1180px;margin:0 auto;padding:44px 28px 18px;display:grid;grid-template-columns:minmax(240px,390px) 1fr;gap:46px;align-items:center}.portraitFrame{background:#ded8cc;padding:10px;box-shadow:0 8px 30px #0002}.portraitFrame img{display:block;width:100%;max-height:470px;object-fit:contain}.portraitMissing{min-height:320px;display:grid;place-items:center}.missingPortrait{font:14px Arial,sans-serif;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.portraitMissing{min-height:320px;display:grid;place-items:center}.missingPortrait{font:14px Arial,sans-serif;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.heroCopy h1{font-size:clamp(40px,5vw,68px);line-height:1;margin:.15em 0}.heroLede{font-size:19px;line-height:1.55;max-width:650px}.heroFacts{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.heroFacts span{font:13px Arial,sans-serif;border:1px solid #cfc4b2;border-radius:999px;padding:7px 11px;background:#fffaf1}
.pageTabs{position:sticky;top:0;z-index:25;background:#f2ede2ee;backdrop-filter:blur(7px);border-block:1px solid #cfc4b2;padding:13px 28px;display:flex;gap:22px;flex-wrap:wrap}.pageTabs a{font:14px Arial,sans-serif;color:var(--ink);text-decoration:none}.pageSection{scroll-margin-top:70px;margin-top:48px}.sectionIntro{color:var(--muted);max-width:800px;line-height:1.5}.lifeSpine{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 8px}.lifeEvent{border:1px solid #cfc4b2;border-radius:999px;padding:9px 13px;background:#fffaf1;font:13px Arial,sans-serif}.timeRail{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}.timeChip{border:1px solid #cfc4b2;border-radius:999px;background:#fff;padding:8px 12px;cursor:pointer}.timeChip.active{background:#302b25;color:white}.timelineList{border-left:1px solid #bfb4a3;margin-left:12px;padding-left:24px;display:grid;gap:14px}.timelineEntry{display:grid;grid-template-columns:70px 1fr;gap:14px;align-items:start}.timelineYear{font:14px Arial,sans-serif;color:var(--muted)}.timelineEntry button{border:0;background:transparent;text-align:left;padding:0;cursor:pointer;font:16px Georgia,serif;color:var(--ink)}.collectionGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.collectionCard,.recollection{background:#fffaf1;border:1px solid #d3c8b8;padding:20px}.collectionCard{display:block;color:inherit;text-decoration:none}.collectionCard:hover,.collectionCard:focus-visible{outline:2px solid #8d775d}.collectionCard h3{font-size:22px;font-weight:400;margin:7px 0}.collectionCard p,.recollection p{line-height:1.5;color:#5e554a}.collectionCount{font:12px Arial,sans-serif;color:var(--muted)}.emptyState{color:var(--muted);font-style:italic}.heroCaption{font:12px Arial,sans-serif;color:var(--muted);margin-top:8px}
@media(max-width:760px){.personHero{grid-template-columns:1fr}.siteNav{display:none}.timelineEntry{grid-template-columns:52px 1fr}}

#rectLayer{position:absolute;inset:0;z-index:21;pointer-events:none}.rectEditor{position:absolute;border:2px solid #edc563;background:#edc56322;pointer-events:auto;cursor:move}.rectHandle{position:absolute;width:13px;height:13px;background:#fff;border:2px solid #8a5b1a;border-radius:3px;transform:translate(-50%,-50%);touch-action:none}.rectHandle.n{left:50%;top:0;cursor:ns-resize}.rectHandle.s{left:50%;top:100%;cursor:ns-resize}.rectHandle.w{left:0;top:50%;cursor:ew-resize}.rectHandle.e{left:100%;top:50%;cursor:ew-resize}.rectHandle.nw{left:0;top:0;cursor:nwse-resize}.rectHandle.ne{left:100%;top:0;cursor:nesw-resize}.rectHandle.sw{left:0;top:100%;cursor:nesw-resize}.rectHandle.se{left:100%;top:100%;cursor:nwse-resize}.stage.masked{background:#fff}.pinnedDot{position:absolute;z-index:20;width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:#d78a2b;transform:translate(-50%,-50%);pointer-events:none}.pinnedLabel{position:absolute;z-index:20;transform:translate(7px,-110%);padding:3px 6px;border-radius:4px;background:#111d;color:white;font:12px Arial,sans-serif;pointer-events:none;white-space:nowrap}#provisionalMarker{position:absolute;z-index:24;left:14px;top:62px;background:#fff;color:#262019;border:2px solid #db9c32;padding:6px;border-radius:15px;font:12px Arial,sans-serif;cursor:grab;pointer-events:auto;touch-action:none}.associatedPeople{max-height:210px;overflow:auto;border:1px solid #605c53;border-radius:6px}.associatedPerson{display:block;width:100%;padding:8px 9px;text-align:left;color:#eee;background:none;border:0;border-bottom:1px solid #4a453e;cursor:pointer;font:12px Arial,sans-serif}.associatedPerson:hover,.associatedPerson.active{background:#5d503a}.curationToolbar.collapsed{display:none}.controls{max-width:calc(100% - 18px);overflow-x:auto;scrollbar-width:thin}.controls button{flex-shrink:0}.curationToolbar #curateToggle{background:#e5d5b8;color:#302b25}@media(max-width:800px){.viewer{grid-template-columns:1fr;grid-template-rows:minmax(55%,1fr) minmax(160px,35%)}.info{display:block;padding:12px}.associatedPeople{max-height:100px}}

.peopleHeading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:20px 0 8px}.peopleHeading h4{margin:0;font:16px Georgia,serif;font-weight:400}.peopleHeading button{border:1px solid #aaa096;border-radius:50%;width:28px;height:28px;background:transparent;color:#eee;cursor:pointer;font:20px Arial,sans-serif}.quickPersonEntry{margin:0 0 9px}.quickPersonEntry[hidden]{display:none}.quickPersonEntry input{width:100%;padding:9px;background:#f6f1e8;color:#292620;border:1px solid #bbb;border-radius:5px;font:14px Arial,sans-serif}.quickPersonMatches{max-height:170px;overflow:auto;background:#eee9e1;border-radius:5px}.quickPersonChoice{display:block;width:100%;text-align:left;padding:7px 9px;border:0;border-bottom:1px solid #d2c7b9;background:transparent;color:#292620;font:12px Arial,sans-serif;cursor:pointer}.quickPersonChoice:hover{background:#ded3c4}.proposedChoice{font-style:italic;border-top:1px solid #a99e8e}

.imageWorkspace{grid-template-rows:minmax(0,1fr) auto auto}.viewToolbar{display:flex;justify-content:center;gap:6px;flex-wrap:wrap;padding:7px;background:#292620}.viewToolbar[hidden]{display:none}.viewToolbar button{border:1px solid #777064;border-radius:999px;background:transparent;color:#eee;padding:7px 10px;cursor:pointer}.viewToolbar button.active{background:#e5d5b8;color:#302b25}.stageNav #curateToggle{background:#96652e;border:1px solid #deb16b;color:#fff3df;padding:7px 13px;font-weight:bold}.stageNav #curateToggle[aria-expanded="true"]{background:#e6bc73;color:#302619}.controls #moreView{font-weight:bold;letter-spacing:2px}

.associatedPerson{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:start;gap:6px}.personPlacement{display:block;width:20px;text-align:center;font:16px Arial,sans-serif;line-height:16px}.personListName{line-height:16px}.curationToolbar .cropAction{display:none}.curationToolbar.cropSession .curateOnly,.curationToolbar.cropSession #closeCurate{display:none}.curationToolbar.cropSession .cropAction{display:inline-block}#closeCurate{margin-left:auto}

.boundarySvg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.boundaryOutline{fill:#e7bd5722;stroke:#e7bd57;stroke-width:2;pointer-events:none}.boundaryPoint{fill:white;stroke:#9e6b25;stroke-width:2;pointer-events:auto;cursor:move;touch-action:none}

.associatedPersonRow{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.removePerson{width:28px;padding:6px 0;background:transparent;border:0;color:#c7b6a0;cursor:pointer;font:20px Arial,sans-serif}.removePerson:hover{color:#fff;background:#70443b}.stageNav #curateToggle[aria-expanded="false"]{background:transparent;border-color:#716b62;color:#bdb5a8;font-weight:normal}.stageNav #curateToggle[aria-expanded="true"]{background:#e5d5b8;border-color:#d0bd99;color:#302b25;font-weight:bold}#viewExtras button,#viewExtras #people.available:not(.active){background:transparent;border-color:#777064;color:#eee;opacity:1}#viewExtras button:disabled,#viewExtras #people.unavailable{background:transparent;border-color:#514d46;color:#68635c;opacity:1;cursor:default}#viewExtras button.active{background:#e5d5b8;border-color:#cbbb9a;color:#302b25}#provisionalMarker{width:0;height:0;padding:0;border:0;border-radius:0;background:none;transform:none;pointer-events:none;box-shadow:none}.provisionalDot,.pinnedDot{position:absolute;left:0;top:0;width:12px;height:12px;border:2px solid white;border-radius:50%;background:#d78a2b;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #33281b}.provisionalDot{pointer-events:auto;cursor:grab;touch-action:none}#provisionalMarker .provisionalName{left:0;top:0;pointer-events:auto;cursor:grab;touch-action:none;border:1px solid #e5bd72}
.associatedPersonRow{grid-template-columns:minmax(0,1fr) 28px auto}.personConfidence{width:28px;padding:6px 0;background:transparent;border:0;color:#c7b6a0;font:16px Arial,sans-serif;cursor:pointer}.personConfidence:disabled{cursor:default;opacity:1}.personConfidence:hover:not(:disabled){background:#554e42;color:white}