:root {
  --ink:#101b33;
  --blue:#173f78;
  --red:#e54b38;
  --cream:#f4f0e8;
  --paper:#fbfaf7;
  --line:#d9d5cc;
  --font-sans:"DM Sans",sans-serif;
  --font-display:"Oswald",sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-sans)
}
a {
  color:inherit;
  text-decoration:none
}
img {
  width:100%;
  display:block
}
button {
  font:inherit
}
.site-header {
  height:5.875rem;
  max-width:90.0rem;
  margin:auto;
  padding:0 4.5vw;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.75rem
}
.brand {
  display:flex;
  align-items:center;
  gap:0.8125rem
}
.brand-mark {
  display:grid;
  place-items:center;
  width:2.9375rem;
  height:2.9375rem
}
.brand-mark img {
  width:2.6875rem;
  height:2.6875rem;
  object-fit:contain
}
.brand strong {
  display:block;
  font-size:1.0rem;
  letter-spacing:-.02em
}
.brand small {
  display:block;
  margin-top:0.125rem;
  font-size:0.625rem;
  letter-spacing:.09em;
  text-transform:uppercase;
  opacity:.55
}
.site-header nav {
  display:flex;
  gap:2.0rem;
  font-size:0.875rem;
  font-weight:600
}
.site-header nav a,.footer-links a {
  transition:color .2s
}
.site-header nav a:hover,.footer-links a:hover,.nav-active {
  color:var(--red)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:1.5rem;
  min-height:3.25rem;
  padding:0 1.375rem;
  border:0.0625rem solid var(--ink);
  background:var(--ink);
  color:#fff;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:.03em;
  transition:.2s ease
}
.button:hover {
  background:var(--red);
  border-color:var(--red);
  transform:translateY(-0.125rem)
}
.button-small {
  min-height:2.6875rem;
  padding:0 1.125rem;
  gap:0.875rem
}
.button-light {
  background:#fff;
  color:var(--ink);
  border-color:#fff
}
.eyebrow {
  display:flex;
  align-items:center;
  gap:0.625rem;
  font-size:0.625rem;
  font-weight:800;
  letter-spacing:.19em;
  text-transform:uppercase
}
.eyebrow>span {
  width:1.625rem;
  height:0.125rem;
  background:var(--red)
}
.section-label {
  display:flex;
  align-items:center;
  gap:0.9375rem;
  margin-bottom:1.5rem
}
.section-label span {
  font:600 0.75rem var(--font-display);
  color:var(--red)
}
.section-label p {
  margin:0;
  font-size:0.625rem;
  font-weight:800;
  letter-spacing:.2em;
  text-transform:uppercase
}
.ipms-gallery-status {
  min-height:65vh;
  display:grid;
  place-content:center;
  gap:0.75rem;
  text-align:center
}
.ipms-gallery-status strong {
  font:500 2.125rem var(--font-display);
  text-transform:uppercase
}
.ipms-gallery-status span {
  color:#68707d
}
.ipms-gallery-error strong {
  color:var(--red)
}
.meeting-gallery-hero {
  padding:3.4375rem max(4.5vw,calc((100vw - 81.875rem)/2)) 5.3125rem;
  background:var(--paper)
}
.meeting-gallery-breadcrumbs {
  display:flex;
  gap:0.625rem;
  align-items:center;
  margin-bottom:4.375rem;
  color:#7c8490;
  font-size:0.5625rem;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase
}
.meeting-gallery-breadcrumbs a:hover {
  color:var(--red)
}
.meeting-gallery-breadcrumbs strong {
  color:var(--ink)
}
.meeting-gallery-title {
  display:grid;
  grid-template-columns:1.25fr .7fr;
  gap:9vw;
  align-items:end
}
.meeting-gallery-title h1 {
  margin:1.375rem 0 0;
  font:500 clamp(4.75rem,10vw,9.25rem)/.75 var(--font-display);
  letter-spacing:-.045em;
  text-transform:uppercase
}
.meeting-gallery-title h1 em {
  color:var(--red);
  font-style:normal
}
.meeting-gallery-title>div:last-child>p {
  margin:0 0 2.1875rem;
  color:#5f6774;
  font-size:0.9375rem;
  line-height:1.75
}
.meeting-photo-count {
  display:flex;
  align-items:baseline;
  gap:0.625rem;
  padding-top:1.375rem;
  border-top:0.0625rem solid var(--line);
  color:#747b87;
  font-size:0.625rem;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase
}
.meeting-photo-count strong {
  color:var(--red);
  font:500 2.125rem var(--font-display)
}
.meeting-folder-nav {
  min-height:4.875rem;
  padding:0.9375rem max(4.5vw,calc((100vw - 81.875rem)/2));
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1.875rem;
  background:var(--ink);
  color:#fff
}
.meeting-folder-nav>span {
  font-size:0.625rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase
}
.meeting-folder-nav>div {
  display:flex;
  gap:0.3125rem
}
.meeting-folder-nav a {
  padding:0.8125rem 1.0625rem;
  border:0.0625rem solid rgba(255,255,255,.16);
  color:#c7d0df;
  font-size:0.5625rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase
}
.meeting-folder-nav a:hover,.meeting-folder-nav a.active {
  border-color:var(--red);
  background:var(--red);
  color:#fff
}
.meeting-viewer {
  padding:4.6875rem max(4.5vw,calc((100vw - 81.875rem)/2)) 3.4375rem;
  background:var(--cream)
}
.meeting-viewer-stage {
  position:relative;
  height:min(72vw,48.75rem);
  overflow:hidden;
  background:#d8d3c9
}
.meeting-viewer-frame {
  position:relative
}
.meeting-viewer-stage img {
  width:100%;
  height:100%;
  object-fit:contain
}
.meeting-image-number {
  position:absolute;
  right:1.125rem;
  bottom:1.125rem;
  padding:0.625rem 0.8125rem;
  background:var(--ink);
  color:#fff;
  font:500 0.75rem var(--font-display);
  letter-spacing:.1em
}
.meeting-viewer-caption {
  display:flex;
  justify-content:space-between;
  gap:2rem;
  padding:1rem 1.125rem;
  border-bottom:0.0625rem solid var(--line);
  background:#fff
}
.meeting-viewer-caption>div {
  display:flex;
  flex-wrap:wrap;
  gap:0.35rem 0.75rem;
  align-items:baseline
}
.meeting-viewer-caption strong {
  font-weight:800
}
.meeting-viewer-caption span {
  color:#3f4754
}
.meeting-viewer-caption small {
  flex:0 0 auto;
  color:#6f7783;
  font-size:0.75rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase
}
.meeting-viewer-controls {
  min-height:4.625rem;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:1.5rem;
  align-items:center;
  border-bottom:0.0625rem solid var(--line)
}
.meeting-viewer-controls>div {
  display:flex
}
.meeting-viewer-controls button {
  min-width:3.375rem;
  height:2.625rem;
  border:0.0625rem solid var(--line);
  border-right:0;
  background:transparent;
  color:var(--ink);
  font:800 0.625rem var(--font-sans);
  text-transform:uppercase;
  cursor:pointer
}
.meeting-viewer-controls button:last-child {
  border-right:0.0625rem solid var(--line)
}
.meeting-viewer-controls button:hover {
  background:var(--ink);
  color:#fff
}
.meeting-viewer-controls p {
  color:#777f8b;
  font-size:0.625rem;
  letter-spacing:.08em;
  text-transform:uppercase
}
.meeting-viewer-controls>a {
  padding-bottom:0.3125rem;
  border-bottom:0.0625rem solid var(--ink);
  font-size:0.625rem;
  font-weight:800;
  text-transform:uppercase
}
.meeting-viewer-controls>a span {
  margin-left:0.5625rem
}
.meeting-gallery-continuation {
  position:relative;
  display:flex;
  align-items:center;
  gap:.4rem
}
.meeting-gallery-continuation-switch {
  min-width:12.5rem!important;
  width:auto;
  padding:0 .75rem!important;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.85rem;
  border-right:.0625rem solid var(--line)!important;
  text-align:left
}
.meeting-gallery-continuation-switch strong {
  min-width:2.2rem;
  color:var(--red);
  text-align:right
}
.meeting-gallery-continuation-switch[aria-checked="false"] strong {
  color:#747b87
}
.meeting-gallery-continuation-tooltip {
  position:absolute;
  right:0;
  bottom:calc(100% + .55rem);
  z-index:5;
  width:min(20rem,75vw);
  padding:.7rem .8rem;
  visibility:hidden;
  opacity:0;
  border:.0625rem solid rgba(255,255,255,.22);
  background:var(--ink);
  color:#fff;
  font-size:.7rem;
  font-weight:600;
  line-height:1.45;
  letter-spacing:0;
  text-transform:none;
  transition:opacity .15s ease
}
.meeting-gallery-continuation-switch:hover
  + .meeting-gallery-continuation-tooltip,
.meeting-gallery-continuation-switch:focus-visible
  + .meeting-gallery-continuation-tooltip {
  visibility:visible;
  opacity:1
}
.meeting-gallery-continuation-help {
  position:relative
}
.meeting-gallery-continuation-help summary {
  width:2.625rem;
  height:2.625rem;
  display:grid;
  place-items:center;
  border:.0625rem solid var(--line);
  color:var(--ink);
  font-size:.8rem;
  font-weight:800;
  cursor:pointer;
  list-style:none
}
.meeting-gallery-continuation-help summary::-webkit-details-marker {
  display:none
}
.meeting-gallery-continuation-help[open] p {
  position:absolute;
  right:0;
  top:calc(100% + .45rem);
  z-index:6;
  width:min(20rem,75vw);
  margin:0;
  padding:.7rem .8rem;
  border:.0625rem solid rgba(255,255,255,.22);
  background:var(--ink);
  color:#fff;
  font-size:.7rem;
  font-weight:600;
  line-height:1.45;
  letter-spacing:0;
  text-transform:none
}
.meeting-thumbnails {
  padding:5.0rem max(4.5vw,calc((100vw - 81.875rem)/2)) 7.5rem;
  background:var(--cream)
}
.meeting-thumbnails-heading {
  display:grid;
  grid-template-columns:.4fr 1fr;
  gap:5vw;
  align-items:start;
  margin-bottom:2.8125rem
}
.meeting-thumbnails-heading h2 {
  margin:0;
  max-width:43.75rem;
  font:500 clamp(2.75rem,5.4vw,4.75rem)/.92 var(--font-display);
  letter-spacing:-.03em;
  text-transform:uppercase
}
.meeting-thumbnail-grid {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0.625rem
}
.meeting-thumbnail-grid button {
  position:relative;
  height:11.25rem;
  padding:0;
  overflow:hidden;
  border:0;
  background:#d1ccc2;
  cursor:pointer
}
.meeting-thumbnail-grid img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease,opacity .25s ease
}
.meeting-thumbnail-grid button:hover img {
  transform:scale(1.04)
}
.meeting-thumbnail-grid button.active {
  outline:0.25rem solid var(--red);
  outline-offset:-0.25rem
}
.meeting-thumbnail-grid button.active img {
  opacity:.75
}
.meeting-thumbnail-grid button span {
  position:absolute;
  left:0.5625rem;
  bottom:0.5625rem;
  padding:0.375rem 0.5rem;
  background:var(--ink);
  color:#fff;
  font:500 0.5625rem var(--font-display)
}
.meeting-gallery-return {
  padding:5.625rem max(4.5vw,calc((100vw - 81.875rem)/2));
  display:grid;
  grid-template-columns:1fr .55fr auto;
  gap:6vw;
  align-items:end;
  background:var(--blue);
  color:#fff
}
.meeting-gallery-return h2 {
  margin:1.375rem 0 0;
  font:500 clamp(3.0rem,5.8vw,5.125rem)/.88 var(--font-display);
  letter-spacing:-.03em;
  text-transform:uppercase
}
.meeting-gallery-return>p {
  margin:0;
  color:#bdc9dc;
  font-size:0.8125rem;
  line-height:1.7
}
footer {
  padding:2.8125rem 4.5vw;
  background:#0b1428;
  color:#fff;
  display:grid;
  grid-template-columns:1fr 1fr auto;
  align-items:center;
  gap:1.875rem
}
.footer-links {
  display:flex;
  justify-content:center;
  gap:1.5625rem;
  font-size:0.6875rem
}
footer>p {
  font-size:0.5625rem;
  line-height:1.6;
  color:#818b9d;
  text-align:right;
  text-transform:uppercase;
  letter-spacing:.08em
}
@media(max-width:56.25rem) {
  .meeting-gallery-title {
    grid-template-columns:1fr
  }
  .meeting-folder-nav {
    align-items:flex-start;
    flex-direction:column;
    padding-top:1.5rem;
    padding-bottom:1.5rem
  }
  .meeting-folder-nav>div {
    width:100%;
    overflow-x:auto
  }
  .meeting-thumbnail-grid {
    grid-template-columns:repeat(3,1fr)
  }
  .meeting-gallery-return {
    grid-template-columns:1fr;
    align-items:start
  }
  footer {
    grid-template-columns:1fr;
    text-align:center
  }
  .footer-brand,.footer-links {
    justify-content:center
  }
  footer>p {
    text-align:center
  }
}
@media(max-width:42.5rem) {
  .site-header {
    height:4.875rem;
    padding:0 1.25rem
  }
  .site-header>nav,.site-header>.button {
    display:none
  }
  .brand small {
    display:none
  }
  .meeting-gallery-hero {
    padding:2.1875rem 1.25rem 3.75rem
  }
  .meeting-gallery-breadcrumbs {
    margin-bottom:3.0rem
  }
  .meeting-gallery-title h1 {
    font-size:4.625rem
  }
  .meeting-folder-nav {
    padding-left:1.25rem;
    padding-right:1.25rem
  }
  .meeting-viewer {
    padding:2.5rem 1.25rem 1.875rem
  }
  .meeting-viewer-stage {
    height:63vw;
    min-height:19.375rem
  }
  .meeting-viewer-caption {
    flex-direction:column;
    gap:0.5rem
  }
  .meeting-viewer-controls {
    padding:1.0rem 0;
    grid-template-columns:1fr auto
  }
  .meeting-viewer-controls p {
    display:none
  }
  .meeting-gallery-continuation {
    width:100%;
    justify-content:center
  }
  .meeting-gallery-continuation-switch {
    flex:1 1 auto;
    max-width:22rem
  }
  .meeting-thumbnails {
    padding:3.75rem 1.25rem 5.3125rem
  }
  .meeting-thumbnails-heading {
    grid-template-columns:1fr
  }
  .meeting-thumbnail-grid {
    grid-template-columns:repeat(2,1fr)
  }
  .meeting-thumbnail-grid button {
    height:8.75rem
  }
  .meeting-gallery-return {
    padding:4.6875rem 1.25rem
  }
  .footer-links {
    flex-wrap:wrap
  }
}
