/* Fuse Immersion — cinematic photo gallery */
.gal { padding-top: 96px; }
.gal-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px 40px; margin-bottom: 36px; }
.gal-head h2 { font-size: clamp(36px, 5vw, 64px); font-weight: 800; letter-spacing: -.035em; line-height: 1.02; max-width: 760px; }
.gal-head p { color: var(--muted); max-width: 420px; font-size: 16px; }
.gal-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px 22px; }
.gal-item { grid-column: span var(--span, 6); display: block; color: inherit; text-decoration: none; }
.gal-frame { position: relative; overflow: hidden; border-radius: 26px; aspect-ratio: var(--ar, 16 / 10.5); background: #0d0e2a; isolation: isolate; }
.gal-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); transform: scale(1.12); transition: transform 1.6s cubic-bezier(.2,.7,.1,1), filter .8s ease; filter: saturate(.92) contrast(1.02); }
.gal-item.is-visible .gal-frame img { transform: scale(1.02); }
.gal-item:hover .gal-frame img { transform: scale(1.07); filter: saturate(1.05) contrast(1.05); }
.gal-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,8,33,0) 55%, rgba(7,8,33,.45)); pointer-events: none; }
.gal-item.reveal .gal-frame { clip-path: inset(14% 0 0 0 round 26px); transition: clip-path 1.3s cubic-bezier(.2,.7,.1,1); }
.gal-item.reveal.is-visible .gal-frame { clip-path: inset(0 0 0 0 round 26px); }
.gal-tags { margin-top: 16px; font-family: var(--mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--soft); display: flex; flex-wrap: wrap; gap: 4px 0; }
.gal-tags span + span::before { content: "•"; margin: 0 8px; color: var(--orange, #ff7a1a); }
.gal-title { margin-top: 6px; font-family: var(--display); font-weight: 600; font-size: clamp(22px, 2.3vw, 32px); letter-spacing: -.025em; line-height: 1.15; display: flex; align-items: baseline; }
.gal-title i { font-style: normal; display: inline-block; width: 0; overflow: hidden; opacity: 0; transition: width .5s cubic-bezier(.2,.7,.1,1), opacity .4s ease; color: var(--orange, #ff7a1a); }
.gal-item:hover .gal-title i, .gal-item:focus-visible .gal-title i { width: 1.25em; opacity: 1; }
.gal-item:focus-visible { outline: none; }
.gal-item:focus-visible .gal-frame { outline: 2px solid #fff; outline-offset: 4px; }
.gal-credit { margin-top: 28px; font-size: 12px; color: var(--soft); }
@media (max-width: 860px) {
  .gal-grid { gap: 30px 14px; }
  .gal-item { grid-column: span 12; }
  .gal-item.half-m { grid-column: span 6; }
  .gal-frame { border-radius: 20px; }
}
@media (prefers-reduced-motion: reduce) { .gal-frame img { transform: none !important; transition: none; } .gal-item.reveal .gal-frame { clip-path: none; } }
