/* A quiet photographic chapter within the event site. */
.photo-section .section-head{align-items:flex-end;flex-wrap:wrap}
.photo-teaser-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.photo-teaser-grid.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.photo-teaser{display:block;min-width:0}
.photo-teaser img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px;background:#e8edf4;transition:filter .2s}
.photo-teaser:hover img{filter:brightness(1.05)}
.photo-teaser>span{display:block;font-size:13px;color:var(--muted);margin-top:11px}
.photo-teaser h3{font-size:17px;line-height:1.55;margin-top:3px}
.real-venue-photo a{display:block;height:100%;position:relative}
.real-venue-photo img{width:100%;height:100%;object-fit:cover}
.real-venue-photo .visual-caption{color:white;background:#13235baa;border-radius:7px;padding:4px 9px}
.album-hero{background:linear-gradient(115deg,#f8f3e9,#f4f7fe);border-bottom:1px solid #e5e8ef}
.album-hero-inner{display:grid;grid-template-columns:.9fr 1.15fr;gap:65px;padding-block:46px 58px;align-items:center}
.album-intro .breadcrumb{margin-bottom:26px}
.album-intro h1{font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-size:60px;font-weight:700;letter-spacing:.1em;line-height:1.35;margin:15px 0 8px}
.album-intro h1 span{color:#f69b64}
.album-subtitle{font-size:21px;color:var(--ink);margin-top:10px}
.album-description{font-size:16px;color:var(--body);line-height:1.9;margin-top:19px}
.album-meta{display:flex;flex-wrap:wrap;gap:8px 18px;color:var(--muted);font-size:13px;margin-top:23px}
.album-start{margin-top:24px;background:#243d85;color:#fff;border-color:#243d85}
.album-cover{margin:0;background:#fff;padding:12px 12px 15px;box-shadow:0 18px 48px #243d8512;transform:rotate(1.2deg);border:1px solid #ece9e2}
.album-cover img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;background:#eef2f7}
.album-cover figcaption{display:flex;justify-content:space-between;gap:15px;padding:13px 7px 0;font-size:13px;color:#66718c;letter-spacing:.08em}
.album-collection{padding-top:45px;scroll-margin-top:100px}
.album-filters{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 14px}
.album-filters button{border:1px solid #d9e2f5;background:#fff;color:#536990;border-radius:22px;min-height:44px;padding:9px 16px;font-size:14px}
.album-filters button span{font-size:12px;margin-left:8px;opacity:.7}
.album-filters button[aria-pressed=true]{background:#263f86;border-color:#263f86;color:white}
.album-status{font-size:14px;color:var(--muted);margin-bottom:21px}
.album-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px 20px}
.album-card{min-width:0;margin:0}
.album-card>a{display:block;position:relative;overflow:hidden;border-radius:14px;background:#e7edf4}
.album-card img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .25s}
.album-card>a:hover img{transform:scale(1.035)}
.photo-open{position:absolute;bottom:9px;right:9px;width:30px;height:30px;display:grid;place-items:center;background:#ffffffdf;border-radius:50%;color:#243d85;font-size:18px}
.album-card figcaption{padding:11px 2px 0}
.album-category{font-size:12px;color:#7585a6}
.album-card h3{font-size:16px;line-height:1.6;margin-top:4px;color:#24365d}
.album-afterword{margin:55px 0 0;padding:30px 0 10px;border-top:1px solid var(--line);text-align:center}
.album-afterword>span{font-family:"Songti SC","STSong",serif;font-size:25px;color:#3b4f76}
.album-afterword p{font-size:15px;color:var(--muted);margin:9px 0 17px}
.photo-dialog{width:min(1100px,calc(100% - 32px));height:min(900px,calc(100dvh - 32px));max-width:none;max-height:none;border:1px solid #385077;border-radius:17px;padding:0;color:#fff;background:#102039;overflow:hidden}
.photo-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}
.photo-dialog::backdrop{background:#061123e8}
.photo-dialog-head{display:flex;align-items:center;justify-content:space-between;padding:10px 17px;border-bottom:1px solid #ffffff1a}
.photo-dialog-head h2{font-size:17px;letter-spacing:.08em}
.photo-dialog button{min-width:44px;min-height:44px;border:1px solid #ffffff30;border-radius:10px;color:#fff;background:#ffffff0e}
.photo-dialog #photo-close{font-size:29px;line-height:1}
.photo-stage{position:relative;display:grid;place-items:center;min-height:0;padding:12px;touch-action:pan-y pinch-zoom;background:#08172c;overflow:hidden}
.photo-stage>img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;min-height:0;user-select:none}
.photo-stage>p,.photo-stage>div{position:absolute;max-width:calc(100% - 30px);padding:12px 17px;border-radius:12px;background:#102039df;color:#d8e4f7;text-align:center;font-size:15px}
.photo-stage>div button{margin-top:14px;padding:8px 15px}
.photo-dialog-foot{padding:16px 20px 12px;border-top:1px solid #ffffff1a;max-height:40dvh;overflow:auto}
.photo-description h3{font-size:18px;margin-bottom:6px}
.photo-description p{font-size:15px;line-height:1.6;color:#c1cfe4}
.photo-pagination{display:flex;gap:12px;align-items:center;margin-top:15px}
.photo-pagination>span{font-size:14px;min-width:60px;text-align:center;font-variant-numeric:tabular-nums}
.photo-pagination>a{margin-left:auto;font-size:13px;color:#c5d9ff;padding:10px 0}
.photo-gesture{font-size:12px;color:#91a7c8;margin-top:9px}
@media(max-width:1000px){.album-hero-inner{gap:30px}.album-intro h1{font-size:49px}.album-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){
  .photo-teaser-grid,.photo-teaser-grid.count-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}
  .photo-teaser-grid.count-3 .photo-teaser:last-child{display:none}
  .photo-teaser h3{font-size:16px}
  .album-hero-inner{grid-template-columns:1fr;gap:25px;padding-block:25px 35px}
  .album-intro .breadcrumb{margin-bottom:18px}
  .album-intro h1{font-size:43px;letter-spacing:.12em;margin-top:11px}
  .album-subtitle{font-size:19px}
  .album-description{font-size:16px;margin-top:15px}
  .album-meta{font-size:13px;gap:5px 14px;margin-top:17px}
  .album-start{margin-top:18px}
  .album-cover{transform:none;padding:8px 8px 12px}
  .album-cover figcaption{font-size:12px;padding:11px 5px 0}
  .album-collection{padding-top:30px;scroll-margin-top:82px}
  .album-collection .section-head h2{font-size:23px}
  .album-filters{gap:8px;margin-top:20px}
  .album-filters button{font-size:13px;padding:9px 13px}
  .album-filters button span{margin-left:6px}
  .album-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 12px}
  .album-card>a{border-radius:11px}
  .album-card h3{font-size:16px}
  .album-afterword{margin-top:35px}
  .album-afterword>span{font-size:23px}
  .photo-dialog{width:calc(100% - 16px);height:calc(100dvh - 20px);border-radius:13px}
  .photo-stage{padding:6px}
  .photo-dialog-foot{padding:13px 15px 12px}
  .photo-description h3{font-size:17px}
  .photo-description p{font-size:15px}
  .photo-pagination{gap:9px;margin-top:12px}
  .photo-pagination>a{font-size:12px}
}
@media(prefers-reduced-motion:reduce){.album-card img,.photo-teaser img{transition:none}}
