/* A shared grid ties the introduction, author portrait and chapter links together. */
.about-profile{--featured-portrait-width:220px;--featured-portrait-height:270px;max-width:1040px}
/* Equal hero columns share the page edges. Reserve the collage below both
   columns so the contents end at the original photograph without layout shift. */
.about-profile-header{--hero-portrait-width:clamp(244px,25vw,320px);grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:1fr auto;grid-template-areas:"intro portrait" "contents portrait";justify-content:normal;gap:24px 56px;max-width:none;margin-inline:0;padding:24px 0 calc(32px + var(--hero-portrait-width) * .4);align-items:start}
.about-profile-intro{grid-area:intro;min-width:0;width:100%;align-self:start;padding-top:0}
.about-profile-header h1{font-size:clamp(52px,7.5vw,104px);line-height:.78;margin:0 0 24px}
.about-profile-header>.about-profile-intro>p:not(.eyebrow){margin:0;max-width:35ch}
.author-portrait{grid-area:portrait;align-self:start;justify-self:center;background:none;border:0;border-radius:0;padding:0;margin:0;max-width:none;width:var(--hero-portrait-width);aspect-ratio:500/600}
.author-portrait-mat{display:flex;align-items:center;justify-content:center;min-height:0;padding:0;margin:0;background:none;border:0}
.about-profile .author-portrait img{display:block;width:100%;height:auto;object-fit:contain;object-position:center;filter:none}
/* Register the supplied collage to the unchanged 500 x 600 portrait.
   Uniform scale + rotation only; keep this geometry fixed across hover states. */
.author-portrait-swap{position:relative;isolation:isolate;display:block;width:100%;padding:0;border:0;margin:0;background:transparent;border-radius:0;appearance:none;-webkit-tap-highlight-color:transparent}
.author-portrait-swap.is-ready{cursor:pointer}
.author-portrait-swap picture{display:block;width:100%;pointer-events:none}
.about-profile .author-portrait-swap img{max-width:none;pointer-events:none;user-select:none;transition:opacity 280ms ease}
.author-portrait-original{position:relative}
.about-profile .author-portrait-swap .author-portrait-collage{position:absolute;width:124.1198%;height:auto;left:-21.6880336%;top:2.557513%;transform-origin:0 0;transform:rotate(-1.730469deg)}
.author-portrait-collage{opacity:0}
.author-portrait-swap.is-ready[aria-pressed=true] .author-portrait-original{opacity:0}
.author-portrait-swap.is-ready[aria-pressed=true] .author-portrait-collage{opacity:1}
.author-portrait-swap:focus-visible{outline:2px solid var(--accent);outline-offset:8px}
@media(hover:hover) and (pointer:fine){.author-portrait-swap.is-ready:hover .author-portrait-original{opacity:0}.author-portrait-swap.is-ready:hover .author-portrait-collage{opacity:1}}
@media(prefers-reduced-motion:reduce){.about-profile .author-portrait-swap img{transition:none}}
.author-portrait figcaption{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding-top:12px;text-align:start;line-height:1.6}
.author-portrait figcaption strong{font-size:14px;font-weight:500;color:var(--ink)}
.author-portrait figcaption span{font-size:12px;color:var(--muted)}
.about-profile-header .about-contents{display:block;grid-area:contents;width:100%;max-width:none;margin:0;padding:0;border:0}
.about-contents ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:0 24px;list-style:none;padding:0;margin:0}
.about-contents li{min-width:0;padding:0;border:0}
.about-profile-header .about-contents a{display:flex;align-items:center;flex-direction:row;gap:14px;min-height:48px;padding:12px 0;border:0;font-size:14px;line-height:1.5;color:var(--ink);text-decoration:none}
.about-contents-number{flex:0 0 22px;font-size:11px;line-height:1.5;font-variant-numeric:tabular-nums;direction:ltr;color:var(--muted)}
.about-profile-header .about-contents a:hover{color:var(--accent)}
.about-contents a:hover>span:not(.about-contents-number){text-decoration:underline;text-underline-offset:5px}
.about-contents a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.about-profile .contributor-memorial img{width:var(--featured-portrait-width);height:var(--featured-portrait-height)}
.about-chapter-label h2{margin-top:0}
.about-contributors{scroll-margin-top:110px;padding-block:64px}
.about-contributors header{margin-bottom:44px}
.contributors-grid{gap:44px 64px}
.contributor-profile{grid-template-columns:150px minmax(0,1fr);gap:28px;padding-top:28px;align-items:start}
.contributor-profile img{width:150px;height:200px;object-fit:contain;object-position:center top;filter:grayscale(1)}
.contributor-profile p{font-size:16px;line-height:1.9}
.contributor-memorial{grid-template-columns:var(--featured-portrait-width) minmax(0,1fr);max-width:none;padding:28px 0 34px;border:0;border-top:1px solid var(--line);border-radius:0;background:none;gap:40px;align-items:center}
.contributor-memorial p{font-size:18px;max-width:60ch}
.memorial-link{display:inline;color:var(--accent);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.memorial-link:hover{color:var(--ink)}
.memorial-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:1100px){.about-profile{--featured-portrait-width:200px;--featured-portrait-height:250px}.contributors-grid{gap:36px}.contributor-profile{grid-template-columns:130px minmax(0,1fr);gap:22px}.contributor-profile img{width:130px;height:180px}.contributor-memorial{grid-template-columns:var(--featured-portrait-width) minmax(0,1fr);gap:32px}}
@media(max-width:900px){.contributors-grid{grid-template-columns:1fr}.contributor-profile{grid-template-columns:170px minmax(0,1fr);gap:30px}.contributor-profile img{width:170px;height:210px}.contributor-memorial{grid-column:auto;grid-template-columns:var(--featured-portrait-width) minmax(0,1fr)}}
@media(max-width:1240px) and (min-width:761px){.about-profile-header{row-gap:8px}.about-profile-header h1{margin-bottom:8px}.about-profile-header .about-contents a{min-height:44px;padding-block:10px}}
@media(max-width:1000px) and (min-width:761px){.about-contents ol{column-gap:16px}.about-profile-header .about-contents a{gap:8px}.about-contents-number{flex-basis:18px}}
@media(max-width:860px) and (min-width:761px){.about-profile-header{column-gap:40px}.author-portrait{width:244px}}
@media(max-width:760px){
 .about-profile-header{grid-template-columns:minmax(0,1fr);grid-template-rows:auto;grid-template-areas:"intro" "portrait" "contents";gap:24px;padding:8px 0 36px}
 .about-profile-header h1{font-size:44px;margin-bottom:20px}
 .author-portrait{display:block;width:min(264px,calc((100vw - 48px)/1.3));aspect-ratio:500/800}
 .about-profile .author-portrait img{width:100%;height:auto}
 .author-portrait figcaption{flex-direction:column;align-items:flex-start;gap:2px;padding:16px}
 .author-portrait figcaption strong{font-size:16px}
 .author-portrait figcaption span{font-size:13px}
 .about-contents ol{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}
 .about-chapter-label h2{margin-top:0}.about-contributors{padding-block:40px}.about-contributors header{margin-bottom:30px}.contributor-memorial p{font-size:16px}
}
@media(max-width:520px){.about-profile{--featured-portrait-width:205px;--featured-portrait-height:245px}.contributor-profile,.contributor-memorial{grid-template-columns:1fr;gap:18px;padding-top:24px}.contributor-profile img{width:175px;height:210px;justify-self:center}.contributor-profile p{font-size:16px;line-height:1.85}.contributors-grid{gap:30px}}
@media(forced-colors:active){.author-portrait-mat,.author-portrait{border-color:CanvasText}.about-profile-header .about-contents a{color:LinkText}}
@media print{.about-profile{--featured-portrait-width:145px;--featured-portrait-height:150px}.about-profile-header{break-inside:avoid}.about-profile-header .about-contents{display:none}.author-portrait-mat{min-height:0}.about-profile .author-portrait img{width:145px}.contributor-profile{break-inside:avoid}.contributor-profile img{height:150px}}
@media print{.about-profile-header{padding:0;grid-template-columns:minmax(0,1fr) 145px;grid-template-rows:auto;grid-template-areas:"intro portrait";column-gap:32px}.about-profile-header h1{font-size:clamp(44px,5vw,64px)}.author-portrait{width:145px;aspect-ratio:500/600}.author-portrait-mat{margin:0}.author-portrait-collage{display:none!important}.author-portrait-original{opacity:1!important}}
