.fan-memories{margin-top:30px;padding-top:24px;border-top:1px solid #eadde5}.fan-memories h2{line-height:1.5}.fan-post-note,.gallery-scroll-note{color:#756570;font-size:.9rem}.fan-memories-grid{--photo-row:210px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:var(--photo-row);gap:12px;max-height:calc(var(--photo-row)*2 + 12px + 20px);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:10px;border:1px solid #eadde5;border-radius:14px;background:#faf6f8}.fan-memories-grid:focus-visible{outline:3px solid #a8275a;outline-offset:3px}.fan-memories-grid .gallery-photo{display:block;min-width:0;height:100%;border-radius:8px;background:#f1e8ed;overflow:hidden;cursor:zoom-in}.fan-memories-grid .gallery-photo:focus-visible{outline:3px solid #a8275a;outline-offset:-3px}.fan-memories-grid img{display:block;width:100%;height:100%;object-fit:contain}.fan-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-height:850px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.fan-post-grid .post-card{min-width:0;margin:0;display:flex;flex-direction:column;padding:16px}.fan-post-grid .post-photo{width:100%;height:220px;object-fit:contain;order:-1;margin:0 0 14px;background:#faf6f8}.fan-post-grid .post-body{overflow-wrap:anywhere;white-space:pre-wrap}.fan-post-grid>.empty{grid-column:1/-1}.fan-post-grid .post-meta{flex-wrap:wrap}.fan-post-grid .admin-reply{overflow-wrap:anywhere}@media(max-width:700px){.fan-memories-grid{--photo-row:170px;grid-template-columns:repeat(2,minmax(0,1fr))}.fan-post-grid{grid-template-columns:1fr;max-height:1250px}.fan-post-grid .post-photo{height:auto;max-height:300px}.fan-memories{margin-top:22px;padding-top:20px}}@media(max-width:400px){.fan-memories-grid{--photo-row:140px;gap:8px;max-height:calc(var(--photo-row)*2 + 8px + 20px)}}
/* Shared full-photo viewer for the event albums and PettyRock STUDIO. */
.photo-viewer{position:fixed;inset:0;width:min(1180px,calc(100vw - 32px));max-width:none;height:min(94vh,900px);max-height:calc(100dvh - 24px);margin:auto;padding:44px 28px 22px;border:1px solid #55434c;border-radius:8px;background:#171317;color:#fff;box-shadow:0 24px 80px #0009}
.photo-viewer::backdrop{background:#0e0b0dcc;backdrop-filter:blur(4px)}
.photo-viewer__close{position:absolute;top:10px;right:12px;width:38px;height:38px;border:1px solid #786a70;border-radius:50%;background:#241d22;color:#fff;font-size:1.7rem;line-height:1;cursor:pointer}
.photo-viewer__layout{display:grid;grid-template-columns:minmax(76px,150px) minmax(0,1fr) minmax(76px,150px);align-items:center;justify-content:center;gap:clamp(10px,2vw,24px);height:calc(100% - 58px)}
.photo-viewer__side{position:relative;display:grid;place-items:center;width:100%;height:clamp(92px,18vh,180px);padding:0;border:1px solid #4a3b43;border-radius:3px;background:#211a1e;overflow:hidden;cursor:pointer;opacity:.78}
.photo-viewer__side img{display:block;width:100%;height:100%;object-fit:contain}
.photo-viewer__side.is-landscape::before,.photo-viewer__side.is-landscape::after{content:"";position:absolute;left:0;right:0;height:15%;background-color:#211a1e;background-image:radial-gradient(ellipse at center,#eadfc9 0 2px,transparent 2.5px);background-size:13px 100%;background-repeat:repeat-x;background-position:center;pointer-events:none}
.photo-viewer__side.is-landscape::before{top:0}
.photo-viewer__side.is-landscape::after{bottom:0}
.photo-viewer__side.is-landscape img{height:70%}
.photo-viewer__side span{position:absolute;inset:auto 4px 50%;transform:translateY(50%);font-size:2rem;color:#fff;text-shadow:0 2px 5px #000}
.photo-viewer__stage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;margin:0;overflow:hidden;background:#171317}
.photo-viewer__image{display:block;max-width:100%;max-height:78vh;width:auto;height:auto;object-fit:contain;object-position:center}
.photo-viewer__stage.is-landscape{padding:28px 12px;background:#211a1e}
.photo-viewer__stage.is-landscape::before,.photo-viewer__stage.is-landscape::after{content:"";position:absolute;z-index:2;left:0;right:0;height:17px;background-color:#211a1e;background-image:radial-gradient(ellipse at center,#eadfc9 0 3px,transparent 3.5px);background-size:19px 14px;background-repeat:repeat-x;background-position:center;pointer-events:none}
.photo-viewer__stage.is-landscape::before{top:6px}
.photo-viewer__stage.is-landscape::after{bottom:6px}
.photo-viewer__stage.is-landscape .photo-viewer__image{max-height:60vh;max-width:94%}
.photo-viewer__caption{position:absolute;left:12px;bottom:12px;max-width:70%;padding:5px 9px;border-radius:3px;background:#171317b8;color:#fff;font-size:.76rem;line-height:1.4}
.photo-viewer__controls{display:flex;align-items:center;justify-content:center;gap:22px;height:54px}
.photo-viewer__arrow{width:38px;height:38px;border:1px solid #6c5962;border-radius:50%;background:#241d22;color:#fff;font-size:1.6rem;line-height:1;cursor:pointer}
.photo-viewer__save{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:10px 20px;border:0;border-radius:3px;background:#9e235d;color:#fff;text-decoration:none;font-size:.9rem;font-weight:700}
.photo-viewer__close:hover,.photo-viewer__side:hover,.photo-viewer__arrow:hover{background:#382932}
.photo-viewer__save:hover{background:#7f1c4b}
@media(max-width:700px){.photo-viewer{width:calc(100vw - 16px);height:min(88vh,760px);padding:46px 10px 14px}
.photo-viewer__layout{grid-template-columns:48px minmax(0,1fr) 48px;gap:7px;height:calc(100% - 56px)}
.photo-viewer__side{height:80px}
.photo-viewer__image{max-height:70vh}
.photo-viewer__stage.is-landscape .photo-viewer__image{max-height:48vh}
.photo-viewer__caption{left:4px;bottom:5px;max-width:94%;font-size:.65rem}
.photo-viewer__controls{gap:13px}}
/* Keep the shared gallery viewer fully inside the viewport and align its three photos. */
dialog.photo-viewer{box-sizing:border-box;overflow:hidden;width:min(1180px,calc(100vw - 32px));height:min(900px,calc(100dvh - 24px));max-width:none;max-height:none;padding:48px 24px 14px}
dialog.photo-viewer[open]{display:grid;grid-template-rows:minmax(0,1fr) 54px;gap:0}
dialog.photo-viewer .photo-viewer__layout{box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0;grid-template-columns:clamp(74px,10vw,140px) minmax(0,1fr) clamp(74px,10vw,140px);gap:clamp(10px,2vw,24px)}
dialog.photo-viewer .photo-viewer__side{box-sizing:border-box;height:clamp(96px,19vh,190px);min-width:0}
dialog.photo-viewer .photo-viewer__stage{box-sizing:border-box;width:100%;height:100%;min-width:0;min-height:0;padding:12px;}
dialog.photo-viewer .photo-viewer__image{max-width:100%;max-height:100%;width:auto;height:auto}
dialog.photo-viewer .photo-viewer__stage.is-landscape{padding:30px 12px}
dialog.photo-viewer .photo-viewer__stage.is-landscape .photo-viewer__image{max-width:100%;max-height:100%}
dialog.photo-viewer .photo-viewer__controls{height:54px;min-height:54px}
@media(max-width:700px){dialog.photo-viewer{width:calc(100vw - 12px);height:calc(100dvh - 12px);padding:48px 8px 8px}
dialog.photo-viewer .photo-viewer__layout{grid-template-columns:44px minmax(0,1fr) 44px;gap:6px}
dialog.photo-viewer .photo-viewer__side{height:76px}
dialog.photo-viewer .photo-viewer__stage{padding:8px 2px}
dialog.photo-viewer .photo-viewer__stage.is-landscape{padding:26px 4px}
dialog.photo-viewer .photo-viewer__caption{left:2px;bottom:3px;max-width:98%;font-size:.62rem}
dialog.photo-viewer .photo-viewer__controls{gap:12px}}
/* Make the arrows over the clickable side previews unmistakable. */
dialog.photo-viewer .photo-viewer__side{opacity:1}
dialog.photo-viewer .photo-viewer__side span{z-index:5;inset:50% auto auto 50%;display:grid;place-items:center;transform:translate(-50%,-50%);width:48px;height:48px;border:2px solid #fff;border-radius:50%;background:#171317e8;color:#fff;font-size:2.2rem;font-weight:800;line-height:1;text-shadow:0 1px 2px #000;box-shadow:0 2px 12px #000a;pointer-events:none}
dialog.photo-viewer .photo-viewer__side:hover span,dialog.photo-viewer .photo-viewer__side:focus-visible span{background:#9e235d}
@media(max-width:700px){dialog.photo-viewer .photo-viewer__side span{width:34px;height:34px;font-size:1.65rem}}
dialog.photo-viewer .photo-viewer__stage{overflow:hidden}
dialog.photo-viewer .photo-viewer__stage:not(.is-landscape) .photo-viewer__image{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:center}
.fan-post-grid .fan-post-photo{display:block;order:-1;background:#faf6f8;cursor:zoom-in;margin-bottom:14px}.fan-post-grid .fan-post-photo .post-photo{margin:0}.fan-post-grid .fan-post-photo:focus-visible{outline:3px solid #a8275a;outline-offset:3px}