:root {
  --ink: #062331;
  --deep: #06394f;
  --line: rgba(255, 255, 255, 0.64);
  --shadow: rgba(8, 78, 108, 0.24);
  --font: "Halyard Display", "Halyard Display Fallback", Helvetica, Arial, sans-serif;
}

@font-face {
  font-family: "Halyard Display";
  src: url("/assets/fonts/HalyardDisplay.otf") format("opentype");
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
}

* {
  box-sizing: border-box;
}

[hidden] {
  display: none !important;
}

html {
  min-height: 100%;
  background: #bfefff;
  -webkit-text-size-adjust: 100%;
}

body {
  position: relative;
  isolation: isolate;
  min-width: 320px;
  min-height: 100%;
  margin: 0;
  overflow-x: hidden;
  background: #bfefff;
  color: var(--ink);
  font-family: var(--font);
  line-height: 1.4;
  text-rendering: optimizeLegibility;
}

body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  background: rgba(255, 255, 255, 0.08);
  pointer-events: none;
}

img,
video {
  display: block;
  max-width: 100%;
}

button:focus-visible,
video:focus-visible {
  outline: 2px solid var(--deep);
  outline-offset: 3px;
}

.screen-reader-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.water-bg-video {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  opacity: 0.96;
  filter: saturate(126%) contrast(108%) brightness(1.03);
}

.pool-page {
  position: relative;
  z-index: 1;
  width: min(1360px, 100%);
  margin: 0 auto;
  padding: 0 clamp(1rem, 2.5vw, 2rem) clamp(1rem, 2.5vw, 2rem);
}

.pool-hero {
  display: grid;
  min-height: 100svh;
  place-items: center;
  padding: clamp(2rem, 7vh, 5rem) 0;
}

body.has-media .pool-hero {
  min-height: min(78svh, 52rem);
}

.event-copy {
  display: grid;
  width: 100%;
  justify-items: center;
  text-align: center;
}

.eyebrow {
  margin: 0 0 0.1rem;
  color: var(--deep);
  font-size: clamp(0.76rem, 1.5vw, 0.9rem);
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.event-wordmark {
  display: flex;
  width: min(70rem, 100%);
  align-items: center;
  justify-content: center;
  gap: clamp(0.35rem, 1vw, 0.8rem);
  margin: 0.3rem auto 0.25rem;
}

.title-logo {
  flex: 0 0 auto;
  width: clamp(9rem, 18vw, 14.8rem);
  height: auto;
  filter: drop-shadow(0 10px 18px rgba(6, 118, 150, 0.2));
}

.pool-club-mark {
  --letter-height: clamp(4.25rem, 7.6vw, 6.9rem);
  display: flex;
  flex: 0 1 auto;
  min-width: 0;
  align-items: center;
  justify-content: center;
  gap: clamp(0.04rem, 0.24vw, 0.15rem);
  filter: drop-shadow(0 10px 16px rgba(6, 118, 150, 0.14));
}

.pool-club-mark img {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  height: var(--letter-height);
}

.pool-club-mark .word-space {
  display: block;
  flex: 0 0 clamp(0.45rem, 1.45vw, 1.05rem);
}

.recap {
  padding: 0 0 clamp(1.5rem, 4vw, 3.5rem);
}

.media-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(0.55rem, 1.3vw, 1rem);
}

.media-item {
  grid-column: span 6;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.2);
  box-shadow: 0 18px 54px var(--shadow);
}

.media-item[data-size="portrait"] {
  grid-column: span 4;
}

.media-item[data-size="wide"] {
  grid-column: span 12;
}

.media-item button,
.media-item img,
.media-item video {
  width: 100%;
  height: 100%;
}

.media-item button {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.media-item img,
.media-item video {
  object-fit: cover;
}

.media-item[data-size="portrait"] img,
.media-item[data-size="portrait"] video {
  aspect-ratio: 4 / 5;
}

.media-item[data-size="landscape"] img,
.media-item[data-size="landscape"] video {
  aspect-ratio: 4 / 3;
}

.media-item[data-size="wide"] img,
.media-item[data-size="wide"] video {
  aspect-ratio: 16 / 9;
}

.lightbox {
  width: min(92vw, 90rem);
  max-width: none;
  height: min(92vh, 70rem);
  max-height: none;
  padding: 0;
  overflow: visible;
  border: 0;
  background: transparent;
}

.lightbox::backdrop {
  background: rgba(3, 19, 27, 0.88);
  backdrop-filter: blur(10px);
}

.lightbox img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.lightbox-close {
  position: absolute;
  top: -0.2rem;
  right: 0;
  z-index: 2;
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.68);
  border-radius: 50%;
  background: rgba(6, 35, 49, 0.7);
  color: #ffffff;
  cursor: pointer;
  font: inherit;
  font-size: 1.7rem;
  line-height: 1;
  transform: translateY(-110%);
}

@media (max-width: 720px) {
  .pool-page {
    padding-inline: 0.75rem;
  }

  body.has-media .pool-hero {
    min-height: 72svh;
  }

  .event-wordmark {
    flex-direction: column;
    gap: 0.1rem;
  }

  .title-logo {
    width: clamp(9rem, 42vw, 12rem);
  }

  .pool-club-mark {
    --letter-height: clamp(3.35rem, 13.5vw, 4.75rem);
  }

  .media-item,
  .media-item[data-size="portrait"],
  .media-item[data-size="wide"] {
    grid-column: span 12;
  }
}

@media (prefers-reduced-motion: reduce) {
  .water-bg-video {
    display: none;
  }
}
