.gallery-page{width:min(1280px,90%);margin:0 auto;padding:56px 0 80px}.gallery-intro{justify-content:space-between;align-items:end;gap:40px;margin-bottom:40px;display:flex}.gallery-eyebrow{color:var(--accent);letter-spacing:1.4px;align-items:center;gap:8px;font-size:10px;font-weight:600;display:flex}.gallery-intro h1{letter-spacing:-.025em;margin:24px 0;font-size:clamp(44px,5.5vw,76px);line-height:1.05}.gallery-intro h1 span{color:var(--accent)}.gallery-intro>div>p:last-child{max-width:560px;color:var(--muted);font-size:15px;line-height:1.8}.gallery-plan{flex-shrink:0;align-items:center;gap:10px;min-height:44px;font-size:13px;display:inline-flex}.gallery-filters{border-block:1px solid var(--line);flex-wrap:wrap;gap:8px;padding-block:24px;display:flex}.gallery-filters a{border:1px solid var(--line);background:var(--card);border-radius:6px;align-items:center;gap:10px;min-height:44px;padding:9px 15px;font-size:12px;display:inline-flex}.gallery-filters a span{opacity:.8;font-size:10px}.gallery-filters a[aria-current=page]{background:var(--accent);border-color:var(--accent);color:var(--card)}.gallery-filters a:hover{border-color:var(--accent)}.gallery-results{justify-content:space-between;align-items:center;gap:20px;margin:32px 0 24px;display:flex}.gallery-results h2{letter-spacing:-.025em;margin:0;font-size:22px}.gallery-results p{color:var(--muted);margin:0;font-size:12px}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 24px;display:grid}.gallery-card{min-width:0}.gallery-image-button{aspect-ratio:4/5;background:var(--soft);border-radius:8px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.gallery-card:nth-child(3n+2) .gallery-image-button{aspect-ratio:1}.gallery-image-button>img{object-fit:cover}.gallery-expand{background:var(--card);border-radius:5px;place-items:center;padding:8px;display:grid;position:absolute;bottom:12px;right:12px}.gallery-card-copy{padding-top:16px}.gallery-card-copy>p{color:var(--muted);align-items:center;gap:5px;margin:0 0 8px;font-size:11px;display:flex}.gallery-card-copy h3{letter-spacing:-.025em;margin:0 0 4px;font-size:20px}.gallery-card-copy a{color:var(--muted);align-items:center;gap:5px;min-height:44px;font-size:11px;display:inline-flex}.gallery-card-copy a:hover,.gallery-plan:hover{color:var(--accent)}.gallery-editorial-note{border-top:1px solid var(--line);max-width:850px;margin-top:56px;padding-top:32px}.gallery-editorial-note h2{letter-spacing:-.025em;font-size:25px}.gallery-editorial-note p{color:var(--muted);font-size:13px;line-height:1.8}.gallery-editorial-note a{min-height:44px;color:var(--accent);align-items:center;gap:8px;font-size:12px;display:inline-flex}body:has(.gallery-lightbox[open]){overflow:hidden}.gallery-lightbox{color:#fff;background:#161616;border:0;border-radius:8px;width:fit-content;max-width:94vw;max-height:90dvh;margin:auto;padding:0;overflow:hidden}.gallery-lightbox::backdrop{background:#000000e0}.gallery-full-image{position:relative}.gallery-full-image>img{object-fit:contain;width:auto;max-width:94vw;height:auto;max-height:90dvh;display:block}.gallery-title-overlay{pointer-events:none;background:linear-gradient(#0000,#0006 45%,#000000b8);padding:48px 22px 20px;position:absolute;inset:auto 0 0}.gallery-title-overlay h2{color:#fff;text-align:left;letter-spacing:-.02em;text-wrap:pretty;margin:0;font-size:clamp(13px,1.2vw,16px);font-weight:500;line-height:1.35}.gallery-full-image button{color:#fff;background:#0000008c;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute}.gallery-full-image button:hover{background:#000c}.gallery-full-image button:focus-visible{outline-offset:-4px;outline:2px solid #fff}.gallery-full-image .gallery-close{color:#ffffffe6;background:#0003}.gallery-full-image .gallery-close:hover{background:#00000073}.gallery-close{top:12px;right:12px}.gallery-prev,.gallery-next{top:calc(50% - 22px)}.gallery-prev{left:12px}.gallery-next{right:12px}.gallery-full-image button:disabled{opacity:.35;cursor:default}@media (max-width:1000px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-intro{flex-direction:column;align-items:start;gap:8px}}@media (max-width:600px){.gallery-page{width:calc(100% - 40px);padding-top:32px}.gallery-grid{grid-template-columns:1fr;gap:28px}.gallery-image-button,.gallery-card:nth-child(3n+2) .gallery-image-button{aspect-ratio:4/3}.gallery-results{flex-direction:column;align-items:start;gap:10px}.gallery-filters{gap:6px}.gallery-filters a{padding-inline:12px}.gallery-title-overlay{padding:40px 16px 16px}.gallery-close{top:8px;right:8px}.gallery-prev{left:8px}.gallery-next{right:8px}}.gallery-intro{align-items:center}.gallery-intro>div:first-child{flex:55%}.gallery-intro>div>p:not(.gallery-eyebrow){max-width:560px;color:var(--muted);font-size:15px;line-height:1.8}.gallery-plan{margin-top:12px}.gallery-map{flex:0 46%;min-width:0}.gallery-map svg{width:100%;height:auto;display:block;overflow:visible}.japan-outline{fill:#f0e8df;stroke:#b7a898;stroke-width:.8px;stroke-linejoin:round}.map-leader{fill:none;stroke:#ba422d;stroke-width:.8px;opacity:.45}.map-marker-halo{fill:#ba422d;opacity:.12}.map-marker{fill:#ba422d;stroke:#fafafa;stroke-width:1.5px}.map-destination[aria-current] .map-marker-halo{opacity:.3}.map-japan-label{fill:#ba422d;opacity:.75;letter-spacing:7px;font-size:30px}.map-japan-caption{fill:#777;letter-spacing:4px;font-size:10px}.gallery-map-hint{text-align:center;color:var(--muted);margin:0;font-size:12px}@media (max-width:800px){.gallery-intro{flex-direction:column;align-items:stretch;gap:20px}.gallery-map{align-self:center;width:min(100%,460px)}}.gallery-map-canvas{position:relative}.map-location-label{color:#56504a;white-space:nowrap;border-radius:24px;justify-content:center;align-items:center;min-height:36px;padding:0 12px;font-size:13px;font-weight:550;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.map-location-label:hover{background:#f0e8df}.map-location-label[aria-current]{background:var(--accent);color:#fff}.map-leader{pointer-events:none}@media (max-width:600px){.map-location-label{min-height:28px;padding-inline:7px;font-size:11px}}
