[hidden]{display:none!important}.gallery-main h1{max-width:1000px}.gallery-intro{font-size:20px;max-width:650px;margin:26px 0}.gallery-note{font-size:13px;max-width:650px;margin:18px 0 42px}.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;border-block:1px solid var(--line);padding:18px 0;margin-bottom:30px}.gallery-toolbar p{margin:0;font-size:14px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.photo-card{margin:0;background:var(--panel);border:1px solid var(--line);min-width:0}.photo-open{display:block;width:100%;padding:0;border:0;background:#0a0c09;cursor:zoom-in;overflow:hidden}.photo-open img{display:block;width:100%;height:240px;object-fit:cover;transition:transform .2s}.photo-open:hover img{transform:scale(1.03)}.photo-card figcaption{padding:20px}.photo-card strong{display:block;overflow-wrap:anywhere}.photo-card p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:10px 0}.photo-card time{color:var(--muted);font-size:12px}#gallery-more{margin-top:30px;color:var(--ink);cursor:pointer}#photo-dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line);width:min(1100px,95vw);max-height:94vh;padding:20px}#photo-dialog::backdrop{background:#000d}#photo-full{display:block;max-width:100%;max-height:65vh;margin:16px auto;object-fit:contain}#photo-title{font:700 20px/1.4 'Segoe UI',sans-serif;overflow-wrap:anywhere}#photo-caption{white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px}#photo-date{font-size:13px}#photo-close{display:block;margin-left:auto}body.photo-viewing{overflow:hidden}@media(max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.gallery-grid{grid-template-columns:1fr}.photo-open img{height:260px}.gallery-main h1{font-size:3.3rem}.header>a:last-child{font-size:13px}.gallery-toolbar{align-items:flex-start}.gallery-intro{font-size:18px}}@media(prefers-reduced-motion:reduce){.photo-open img{transition:none}}
