/* Scoped styles for the sixteen manually selected public photographs. */
.fan-letters{--fan-ink:#193b38;--fan-paper:#fffaf0;color:inherit;margin:24px 0 32px}
.fan-letters-heading{margin:0 0 20px}
.fan-letters-heading h3{font-size:clamp(21px,3vw,28px);line-height:1.45;margin:0 0 9px}
.fan-letters-heading p{font-size:15px;line-height:1.9;margin:0;opacity:.86}
.fan-letters-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none}
.fan-letters-grid>li{min-width:0;margin:0;padding:0}
.fan-letters-card{display:flex;flex-direction:column;box-sizing:border-box;height:100%;padding:12px 12px 17px;background:var(--fan-paper);border:1px solid #dbd4c6;border-radius:16px;color:var(--fan-ink);text-decoration:none;box-shadow:0 5px 18px #04151b1a;transition:transform .15s ease,box-shadow .15s ease}
.fan-letters-card:hover{transform:translateY(-3px);box-shadow:0 9px 25px #04151b2b}
.fan-letters-card:focus-visible,.fan-letters-close:focus-visible{outline:3px solid #f3b846;outline-offset:4px}
.fan-letters-thumbnail{display:flex;align-items:center;justify-content:center;aspect-ratio:4/5;min-width:0;overflow:hidden;background:#eee9df;border-radius:9px}
.fan-letters-thumbnail img{display:block;max-width:100%;width:100%;height:100%;object-fit:contain}
.fan-letters-card-title{margin:15px 4px 5px;font-size:16px;font-weight:750;line-height:1.6;overflow-wrap:anywhere}
.fan-letters-author{margin:0 4px;font-size:13px;line-height:1.8;color:#56716b}
.fan-letters-open-label{margin:10px 4px 0;font-size:13px;font-weight:650;line-height:1.7;color:#195b61;text-decoration:underline;text-underline-offset:3px}
.fan-letters-empty{font-size:15px;line-height:1.9}
.fan-letters-dialog{box-sizing:border-box;width:min(1120px,calc(100vw - 28px));max-width:none;max-height:calc(100dvh - 28px);margin:auto;padding:20px;border:0;border-radius:15px;background:#fffaf0;color:#193b38;overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 90px #0008}
.fan-letters-dialog::backdrop{background:#04111be6}
.fan-letters-dialog-top{position:sticky;top:-20px;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;background:#fffaf0}
.fan-letters-dialog-top h3{margin:0;font-size:18px;line-height:1.6;overflow-wrap:anywhere}
.fan-letters-close{flex:0 0 auto;min-height:44px;padding:9px 18px;border:1px solid #355e57;border-radius:999px;background:#193b38;color:#fffaf0;font:inherit;font-size:14px;font-weight:700;cursor:pointer}
.fan-letters-dialog-author{margin:0 0 16px;font-size:13px;line-height:1.7;color:#56716b}
.fan-letters-large-image{display:block;width:auto;max-width:100%;height:auto;margin:0 auto;background:#eee9df;border-radius:4px}
@media(max-width:920px){.fan-letters-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}
@media(max-width:540px){.fan-letters-grid{grid-template-columns:minmax(0,1fr);gap:18px}.fan-letters-card{padding:11px 11px 16px}.fan-letters-thumbnail{aspect-ratio:4/5}.fan-letters-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px;border-radius:11px}.fan-letters-dialog-top{top:-12px}.fan-letters-dialog-top h3{font-size:16px}.fan-letters-close{padding:9px 15px}}
@media(prefers-reduced-motion:reduce){.fan-letters-card{transition:none}.fan-letters-card:hover{transform:none}}
