:root{color-scheme:light;--paper:#f7f7fb;--slide:#eeedf5;--ink:#292638;--muted:#625f72;--focus:#6b5590}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Avenir Next',Avenir,system-ui,sans-serif;line-height:1.45}main,footer{max-width:2200px;margin:auto;padding-inline:clamp(18px,3vw,64px)}header{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:32px 4px 28px}header p{margin:0;font-size:14px;color:var(--muted)}h1{font-size:clamp(24px,2.2vw,36px);line-height:1.2;letter-spacing:-.7px;font-weight:600;margin:5px 0 0}.hint{padding-bottom:3px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;animation:arrive .35s ease-out}.specimen-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:20px 18px 24px;background:var(--slide);border-radius:22px;align-content:start}figure{margin:0;min-width:0;scroll-margin-top:20px}figcaption{font-size:14px;font-weight:500;line-height:1.35;min-height:57px;margin:0 0 10px;text-wrap:balance}.circle{display:block;width:100%;max-width:230px;aspect-ratio:1;margin-inline:auto;border-radius:50%;overflow:hidden;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.7);transition:transform .2s ease,box-shadow .2s ease}.circle img{display:block;width:100%;height:100%;object-fit:cover}.circle:focus-visible{outline:3px solid var(--focus);outline-offset:6px}footer{padding-top:24px;padding-bottom:32px;font-size:12px;color:var(--muted)}footer p{max-width:85ch}summary{cursor:pointer;width:fit-content;padding:8px 0;font-size:13px}summary:focus-visible{outline:2px solid var(--focus);outline-offset:4px}footer a{color:var(--focus);overflow-wrap:anywhere}footer ol{padding-left:18px;columns:2;column-gap:40px}footer li{margin:0 0 12px;break-inside:avoid}footer details p{margin-top:10px}@media(hover:hover){.circle:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 0 0 5px #fff}}@media(min-width:1750px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.specimen-group{gap:20px;padding:22px 20px 26px}}@media(max-width:1050px){.gallery{grid-template-columns:1fr}.specimen-group{gap:26px;padding:22px 26px}figcaption{min-height:40px}.circle{max-width:230px}}@media(max-width:580px){main,footer{padding-inline:16px}header{display:block;padding:25px 3px 22px}header .hint{font-size:12px;margin-top:11px}h1{font-size:26px}.gallery{gap:18px}.specimen-group{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 17px;padding:18px 15px 22px;border-radius:18px}figcaption{font-size:13px;min-height:54px;margin-bottom:10px}.circle{max-width:190px}footer ol{columns:1}}@media(max-width:359px){.specimen-group{grid-template-columns:1fr;padding:20px 24px;gap:26px}figcaption{min-height:0;font-size:14px;max-width:230px;margin:0 auto 12px}.circle{max-width:230px}}@keyframes arrive{from{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.gallery{animation:none}.circle{transition:none}.circle:hover{transform:none}}@media print{body{background:white}main,footer{padding-inline:12px}header{padding:10px 0 20px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;animation:none}.specimen-group{break-inside:avoid;background:#f4f4f4;padding:12px;gap:12px;border-radius:12px}figcaption{font-size:10px;min-height:40px}.circle{box-shadow:none}footer{font-size:10px}}
/* Keep the final single specimen compact rather than leaving an empty tray. */
.specimen-group:last-child{grid-template-columns:minmax(0,1fr);width:calc((100% - 72px)/3 + 36px)}
@media(min-width:1750px){.specimen-group:last-child{width:calc((100% - 80px)/3 + 40px)}}
@media(max-width:1050px){.specimen-group:last-child{width:calc((100% - 104px)/3 + 52px)}}
@media(max-width:580px){.specimen-group:last-child{width:calc((100% - 47px)/2 + 30px)}}
@media(max-width:359px){.specimen-group:last-child{width:100%}}
