:root{color-scheme:light;--ink:#282018;--cream:#fbf5e9;--line:#bbaa91;--green:#353d29}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:1.06rem/1.55 Georgia,serif}img{display:block;max-width:100%}a{color:inherit;text-underline-offset:.19em}a:focus-visible,summary:focus-visible{outline:3px solid #8f4b23;outline-offset:4px}header{text-align:center;background:#e6ca93 url(assets/paper.webp) center/cover}.label,nav,dt,footer,.donate{font-family:system-ui,sans-serif}.label{font-size:.73rem;letter-spacing:.13em;text-transform:uppercase;font-weight:650}.mast{margin:0;padding:.9rem .6rem;background:#30271f;color:#fff3db}.mast span,.show span{padding:0 .25em}.closing-photo{width:100%;height:auto}.cover{position:relative;padding:1.5rem 1rem 0}.cover .label{margin:0}.cover h1{max-width:32rem;margin:.65rem auto 0}.cover h1 img{width:100%;margin-top:-8%;margin-bottom:.2rem}.invitation{font-size:clamp(1.2rem,4vw,1.65rem);font-style:italic;line-height:1.3;margin:.65em 0}.show{font-size:1rem;margin:1rem 0 0}nav{display:flex;justify-content:center;gap:clamp(.8rem,5vw,2.5rem);background:var(--green);color:#fff8e9;padding:.35rem .55rem;font-size:.88rem}nav a{display:flex;align-items:center;min-height:44px}main{max-width:46rem;margin:auto;padding:0 clamp(1.05rem,5vw,2.6rem)}section{padding:3.3rem 0;border-bottom:1px solid var(--line)}h2,h3,p{margin-top:0}h2{font-size:clamp(2rem,7vw,3.3rem);line-height:1.05;font-weight:normal;margin-bottom:1.35rem}h3{font-size:1.38rem;line-height:1.15;margin-bottom:.75rem}.kicker{color:#604935;margin-bottom:.65rem}.credits{padding:.9rem 1.1rem .15rem;background:#eee0c8;border-left:2px solid #766044}.credits p{margin-bottom:.75rem}.part{padding:1.1rem 0;border-bottom:1px solid var(--line)}.part:last-child{border:0;padding-bottom:0}.part h3 em{display:inline-block;margin-left:.45em;font-size:1rem;font-weight:400}dl{margin:0}dl div{display:grid;grid-template-columns:7rem 1fr;gap:.55rem;margin:.27rem 0}dt{font-size:.78rem;font-weight:650;padding-top:.16rem}dd{margin:0;min-width:0}.artist{display:grid;grid-template-columns:minmax(6rem,28%) 1fr;gap:1rem;padding:1.2rem 0;border-top:1px solid var(--line);scroll-margin-top:1rem}.artist h3{margin:.15em 0 .3em}.artist .label{margin-bottom:.25em}.artist figure{margin:0;min-width:0}.artist img{width:100%;aspect-ratio:1;object-fit:cover;object-position:center 36%;border:4px solid #fffaf0;outline:1px solid #c5b497}.artist small{display:block;font-size:.73rem;margin-top:.4em}summary{cursor:pointer;min-height:44px;padding:.45rem 0;font-size:.94rem;text-decoration:underline;text-underline-offset:.2em}blockquote{margin:0;padding:.65rem .8rem;background:#eee0c8;font-style:italic}blockquote span{display:block;font:650 .66rem system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;margin-bottom:.35rem}.donate{display:inline-block;background:var(--green);color:#fff8e9;padding:.72rem 1.05rem;font-size:.94rem}footer{max-width:46rem;margin:auto;padding:1.5rem;display:flex;justify-content:space-between;gap:.8rem;font-size:.83rem}@media(max-width:520px){.artist:has(details[open]){grid-template-columns:1fr}.artist:has(details[open]) figure{max-width:10rem}dl div{grid-template-columns:6.2rem 1fr}}

/* Let the roots meet the cover edges while preserving the text inset. */
.cover h1{max-width:none;margin:.65rem -1rem 0}
.cover h1 img{margin:0;aspect-ratio:2.3;object-fit:cover;object-position:bottom}
/* Keep portrait framing consistent without altering the supplied images. */
.portrait{position:relative;overflow:hidden;aspect-ratio:1;border:4px solid #fffaf0;outline:1px solid #c5b497;background:#eee0c8}
.artist .portrait img{position:absolute;display:block;max-width:none;width:var(--photo-width);height:auto;aspect-ratio:auto;left:var(--photo-left);top:var(--photo-top);border:0;outline:0}
#amelia .portrait{--photo-width:166.04%;--photo-left:-19.81%;--photo-top:-8.49%}
#celina .portrait{--photo-width:572.07%;--photo-left:-250.00%;--photo-top:-172.91%}
#colleen .portrait{--photo-width:191.67%;--photo-left:-51.85%;--photo-top:-31.48%}
#frances .portrait{--photo-width:250.00%;--photo-left:-42.86%;--photo-top:-3.57%}
#julie .portrait{--photo-width:181.25%;--photo-left:-55.36%;--photo-top:-8.04%}
#katherine .portrait{--photo-width:100.00%;--photo-left:0.00%;--photo-top:0.00%}
#kristina .portrait{--photo-width:132.14%;--photo-left:-16.07%;--photo-top:-23.21%}
#lindsay .portrait{--photo-width:159.26%;--photo-left:-32.41%;--photo-top:-44.44%}
#olivia .portrait{--photo-width:129.93%;--photo-left:-21.17%;--photo-top:-2.92%}
