/* All motion is an enhancement of the static photographs and text. */
.squeeze-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.squeeze-panel { position: relative; display: block; min-width: 0; min-height: 390px; overflow: hidden; isolation: isolate; border: 0; border-radius: 0; padding: 0; background: var(--navy); color: white; text-align: left; font: inherit; cursor: default; }
.squeeze-panel:disabled { opacity: 1; color: white; -webkit-text-fill-color: white; }
.squeeze-panel::after { content: ''; position: absolute; z-index: 0; inset: 0; pointer-events: none; background: linear-gradient(180deg, transparent 30%, rgb(13 21 35 / .78)); }
.squeeze-panel > img, .squeeze-panel > picture > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.squeeze-label { position: absolute; z-index: 1; inset: auto 25px 25px; display: grid; gap: 9px; }
.squeeze-panel[aria-expanded='true'] .squeeze-label { bottom: 100px; }
.squeeze-number { font-size: 10px; line-height: 1.4; letter-spacing: .12em; }
.squeeze-title { font-family: var(--display); font-size: clamp(23px, 2.5vw, 38px); font-weight: 400; line-height: 1.12; letter-spacing: -.035em; overflow-wrap: anywhere; }
.squeeze-detail { position: absolute; z-index: 1; inset: auto 25px 25px; display: block; max-width: 37ch; font-size: 12px; line-height: 1.6; letter-spacing: 0; }
.squeeze-detail[hidden] { display: none; }
.squeeze-ready { display: flex; height: clamp(410px, 43vw, 590px); }
.squeeze-ready .squeeze-panel { flex: 1 1 0; min-height: 0; cursor: pointer; transition: flex-grow 650ms var(--ease); }
.squeeze-ready .squeeze-panel[aria-expanded='true'] { flex-grow: 2.6; }
.squeeze-ready .squeeze-panel:focus-visible { outline: 3px solid var(--paper); outline-offset: -7px; }
.squeeze-ready .squeeze-panel[aria-expanded='false'] .squeeze-title { font-size: clamp(18px, 1.6vw, 23px); }
.squeeze-ready .squeeze-panel[aria-expanded='false'] .squeeze-label { inset-inline: 12px; }

/* Spans retain the original text and emphasis, with no duplicate accessible copy. */
.title-word { display: inline-block; max-width: 100%; vertical-align: baseline; overflow-wrap: anywhere; }
.title-entering .title-word { will-change: transform, opacity; }

body.gallery-open { overflow: hidden; }
.gallery-dialog { position: fixed; inset: 0; width: 100vw; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 24px; border: 0; background: transparent; color: white; overflow: auto; }
.gallery-dialog[open] { display: grid; place-items: center; }
.gallery-dialog::backdrop { background: rgb(10 15 28 / .95); }
.gallery-surface { width: min(1160px, 100%); min-width: 0; }
.gallery-close { margin: 0 0 14px auto; }
.gallery-stage { position: relative; display: grid; place-items: center; min-height: min(55dvh, 460px); }
.gallery-dialog .gallery-stage > img { display: block; width: auto; height: auto; max-width: 100%; max-height: min(72dvh, 760px); object-fit: contain; }
.gallery-dialog .gallery-stage > .gallery-image-morphing,
.gallery-dialog .gallery-stage > .gallery-image-error { visibility: hidden; }
.gallery-message { position: absolute; inset-inline: 20px; top: 50%; transform: translateY(-50%); margin: 0; padding: 16px 22px; background: rgb(10 15 28 / .85); color: white; font-size: 13px; line-height: 1.6; text-align: center; }
.gallery-message[hidden] { display: none; }
.gallery-dialog > .gallery-morph { position: fixed; z-index: 2; display: block; max-width: none; max-height: none; margin: 0; padding: 0; object-fit: cover; transform-origin: 0 0; pointer-events: none; will-change: transform; }
.gallery-bar { gap: 18px; margin-top: 18px; }
.gallery-bar [data-caption] { min-width: 0; text-align: center; overflow-wrap: anywhere; }
.gallery-bar button, .gallery-close { flex-shrink: 0; cursor: pointer; }
.gallery-bar button:focus-visible, .gallery-close:focus-visible { outline: 2px solid white; outline-offset: 4px; }

@media (max-width: 960px) {
  .squeeze-gallery { grid-template-columns: 1fr; gap: 8px; }
  .squeeze-panel { min-height: 340px; }
  .squeeze-ready { flex-direction: column; height: auto; }
  .squeeze-ready .squeeze-panel { flex: none; height: 120px; min-height: 0; transition: height 550ms var(--ease); }
  .squeeze-ready .squeeze-panel[aria-expanded='true'] { flex: none; height: 390px; }
  .squeeze-label, .squeeze-ready .squeeze-panel[aria-expanded='false'] .squeeze-label { inset: auto 21px 20px; gap: 7px; }
  .squeeze-title { font-size: 30px; }
  .squeeze-ready .squeeze-panel[aria-expanded='false'] .squeeze-title { font-size: 23px; }
  .squeeze-detail { max-width: 33ch; }
}
@media (max-width: 700px) {
  .gallery-dialog { padding: 16px; }
  .gallery-dialog .gallery-stage > img { max-height: 66dvh; }
  .gallery-bar { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .gallery-bar [data-caption] { grid-area: 1 / 1 / 2 / 3; font-size: 11px; }
  .gallery-bar [data-prev] { justify-self: start; }
  .gallery-bar [data-next] { justify-self: end; }
  .gallery-message { inset-inline: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .squeeze-ready .squeeze-panel { transition: none; }
  .title-word { transform: none !important; opacity: 1 !important; }
}
@media print {
  .squeeze-gallery, .squeeze-ready { display: grid; grid-template-columns: 1fr 1fr; height: auto; }
  .squeeze-panel, .squeeze-ready .squeeze-panel, .squeeze-ready .squeeze-panel[aria-expanded='true'] { height: 300px; min-height: 300px; }
  .squeeze-detail[hidden] { display: block; }
  .title-word { transform: none !important; opacity: 1 !important; }
  .gallery-dialog { display: none !important; }
}
