body[data-page=gallery]{font-family:Georgia,serif;background:var(--paper);color:var(--ink)}
.gallery-shell{position:relative;max-width:820px;margin:auto;padding:24px 18px max(32px,env(safe-area-inset-bottom));isolation:isolate}
.gallery-back{display:inline-flex;align-items:center;min-height:44px;color:#596440;text-decoration:none;font:15px Georgia,serif;background:none;border:0;padding:6px 0}
.gallery-heading{text-align:center;margin:18px 0 26px}.gallery-heading h1{font:400 clamp(23px,6vw,31px)/1.5 Trajan Invito,Georgia,serif;color:#80682e;margin:18px 0 8px}.gallery-heading p{line-height:1.6;margin:0}
#gallery-message{text-align:center;line-height:1.6;margin:16px 0}.gallery-note{text-align:center;color:#68685f;font-size:13px;line-height:1.65;margin:24px 0 8px}#refresh-gallery{display:flex;margin:auto}
.my-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.my-tile{position:relative;display:block;width:100%;aspect-ratio:1;padding:0;overflow:hidden;border:0;border-radius:3px;background:#e8e6dc;color:#596440;cursor:pointer}.my-tile img{display:block;width:100%;height:100%;object-fit:cover}.my-tile .tile-placeholder{display:grid;place-items:center;height:100%;font:13px/1.4 Georgia,serif;padding:6px}.video-badge{position:absolute;bottom:5px;right:5px;background:#0009;color:#fff;padding:3px 6px;border-radius:3px;font:12px/1.3 Arial,sans-serif}
#viewer{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);border:0;background:#171916;color:#fff;overscroll-behavior:contain;box-sizing:border-box}#viewer[open]{display:flex;flex-direction:column}#viewer::backdrop{background:#171916}.viewer-bar,.viewer-controls{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;flex-shrink:0}.viewer-bar{font:14px Arial,sans-serif}#viewer button{min-width:48px;min-height:48px;border:1px solid #ffffff50;background:transparent;color:#fff;border-radius:5px;font:16px Georgia,serif;padding:8px 14px}#viewer button:disabled{opacity:.35}.viewer-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:pan-y pinch-zoom}.viewer-stage img,.viewer-stage video{display:block;max-width:100%;max-height:100%;object-fit:contain}.viewer-stage p{padding:24px;text-align:center;line-height:1.6}#viewer-note{text-align:center;font:12px/1.5 Arial,sans-serif;color:#ddd;margin:0;padding:6px 14px 12px}#viewer-delete{color:#f0c6bf!important}#delete-confirm{position:absolute;inset:auto 12px max(12px,env(safe-area-inset-bottom));background:#fefbf2;color:#545454;border-radius:8px;padding:22px;text-align:center;box-shadow:0 0 0 100vmax #0008}#delete-confirm p{line-height:1.6;margin:0 0 20px}#delete-confirm>div{display:flex;gap:12px;justify-content:center}#delete-confirm button{color:#545454;border-color:#999}#delete-yes{background:#88483d!important;color:white!important;border-color:#88483d!important}body.viewer-open{overflow:hidden}button:focus-visible,a:focus-visible{outline:3px solid #bfa45e;outline-offset:3px}
@media(min-width:700px){.my-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.gallery-shell{padding:32px}.viewer-stage{padding:0 60px}}

.viewer-download{display:block;flex-shrink:0;text-align:center;min-height:44px;padding:12px;color:#e8dec6;text-decoration:underline;font:14px Georgia,serif}.viewer-bar{gap:12px}#viewer-count{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#viewer-close{flex-shrink:0}
