body {
  background: #fbf7f5;
  color: #1c1b1b;
  font-family: "Outfit", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  padding-top: 90px;
}

img {
  display: block;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  cursor: pointer;
}

.material-symbols-outlined {
  font-variation-settings:
    "FILL" 0,
    "wght" 300,
    "GRAD" 0,
    "opsz" 24;
  vertical-align: middle;
}

.architectural-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 16px;
}

.tracking-editorial {
  letter-spacing: -0.04em;
}

.tracking-label {
  letter-spacing: 0.25em;
}

.site-nav {
  box-shadow: 0 1px 0 rgb(28 27 27 / 0.05);
}

.site-brand {
  letter-spacing: -0.035em;
}

.nav-link {
  position: relative;
  color: #6b6f72;
  transition: color 180ms ease;
}

.nav-link:hover,
.nav-link.is-active {
  color: #000;
}

.nav-link.is-active::after {
  position: absolute;
  right: 0;
  bottom: -8px;
  left: 0;
  height: 1px;
  content: "";
  background: #00a3ff;
}

.soft-card,
.profile-card,
.event-card-hover,
.kinetic-scroll-item {
  transition:
    transform 360ms ease,
    border-color 360ms ease,
    box-shadow 360ms ease;
}

.soft-card:hover,
.profile-card:hover,
.event-card-hover:hover,
.kinetic-scroll-item:hover {
  transform: translateY(-4px);
}

.event-card-hover img,
.kinetic-scroll-item img,
.grayscale-reveal {
  transition:
    filter 700ms ease,
    transform 900ms cubic-bezier(0.2, 0.9, 0.2, 1),
    opacity 700ms ease;
}

.event-card-hover:hover img,
.kinetic-scroll-item:hover img,
.grayscale-reveal.revealed {
  filter: grayscale(0);
  transform: scale(1.03);
}

.event-hero {
  padding-top: 40px;
}

.member-hero {
  padding-top: 168px;
}

.member-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  padding: 112px 32px 40px;
  overflow-y: auto;
  background: rgb(253 248 248 / 0.8);
  backdrop-filter: blur(16px) saturate(1.15);
  -webkit-backdrop-filter: blur(16px) saturate(1.15);
}

.member-modal.hidden {
  display: none;
}

.member-modal-close {
  position: fixed;
  top: 28px;
  right: 28px;
  z-index: 101;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  font-family: "Outfit", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1;
  color: #1c1b1b;
  background: #fff;
  border: 1px solid rgb(28 27 27 / 0.12);
  border-radius: 999px;
  transition:
    color 180ms ease,
    background 180ms ease,
    transform 180ms ease;
}

.member-modal-close:hover {
  color: #fff;
  background: #1c1b1b;
  transform: scale(1.04);
}

.member-modal-panel {
  display: grid;
  grid-template-columns: minmax(280px, 420px) minmax(280px, 520px);
  gap: 48px;
  align-items: start;
  width: min(100%, 1040px);
  margin: 0 auto;
  padding: 28px;
  background: rgb(255 255 255 / 0.72);
  border: 1px solid rgb(255 255 255 / 0.7);
  border-radius: 24px;
  box-shadow:
    0 30px 90px rgb(28 27 27 / 0.18),
    inset 0 1px 0 rgb(255 255 255 / 0.85);
  backdrop-filter: blur(22px) saturate(1.2);
  -webkit-backdrop-filter: blur(22px) saturate(1.2);
}

.member-modal-portrait {
  display: grid;
  min-height: 560px;
  place-items: center;
  color: rgb(28 27 27 / 0.28);
  background: #e5e2e1;
  border: 1px solid rgb(28 27 27 / 0.08);
}

.member-modal-portrait .material-symbols-outlined {
  font-size: 56px;
}

.member-modal-about {
  margin-top: 10px;
  padding: 32px;
  background: rgb(255 255 255 / 0.78);
  border: 1px solid rgb(255 255 255 / 0.82);
  border-radius: 18px;
  box-shadow: 0 18px 60px rgb(28 27 27 / 0.08);
}

.custom-grid-border {
  border-right: 1px solid rgb(196 199 199 / 0.18);
  border-bottom: 1px solid rgb(196 199 199 / 0.18);
}

.hide-scrollbar {
  scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

.linked-page {
  display: grid;
  min-height: 100vh;
  padding: 24px;
  place-items: center;
}

.link-card {
  width: min(100%, 720px);
  padding: 32px;
  text-align: center;
  background: #fff;
  border: 1px solid rgb(28 27 27 / 0.08);
  border-radius: 8px;
  box-shadow: 0 16px 45px rgb(28 27 27 / 0.08);
}

.link-card a {
  display: inline-block;
  padding: 12px 20px;
  margin-top: 18px;
  color: #fff;
  text-decoration: none;
  background: #000;
  border-radius: 6px;
  transition: background 180ms ease;
}

.link-card a:hover {
  background: #00a3ff;
}

.video-overlay {
  background:
    linear-gradient(to bottom, rgb(0 0 0 / 0.35), rgb(0 0 0 / 0.7)),
    radial-gradient(circle at center, transparent 0, rgb(0 0 0 / 0.38) 72%);
}

.noir-gradient {
  background: linear-gradient(
    to top,
    rgb(0 0 0 / 0.78),
    rgb(0 0 0 / 0.08) 62%,
    transparent
  );
}

.live-indicator {
  animation: livePulse 1.8s ease-in-out infinite;
}

.text-accent-blue,
.text-secondary-accent {
  color: #00a3ff;
}

.bg-accent-blue,
.bg-secondary-accent {
  background-color: #00a3ff;
}

.border-accent-blue,
.border-secondary-accent {
  border-color: #00a3ff;
}

.hover\:text-accent-blue:hover,
.hover\:text-secondary-accent:hover {
  color: #00a3ff;
}

.hover\:bg-secondary-accent:hover {
  background-color: #00a3ff;
}

.hover\:border-secondary-accent\/40:hover {
  border-color: rgb(0 163 255 / 0.4);
}

.bg-secondary-accent\/5 {
  background-color: rgb(0 163 255 / 0.05);
}

.bg-secondary-accent\/10 {
  background-color: rgb(0 163 255 / 0.1);
}

.bg-accent-blue\/90 {
  background-color: rgb(0 163 255 / 0.9);
}

.border-accent-blue\/30 {
  border-color: rgb(0 163 255 / 0.3);
}

.font-label-sm {
  font-family: "Outfit", sans-serif;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.15em;
}

.text-label-sm {
  font-size: 11px;
  line-height: 1;
}

.px-xs {
  padding-right: 4px;
  padding-left: 4px;
}

.py-xs {
  padding-top: 4px;
  padding-bottom: 4px;
}

.px-sm {
  padding-right: 8px;
  padding-left: 8px;
}

.py-sm {
  padding-top: 8px;
  padding-bottom: 8px;
}

.px-md {
  padding-right: 16px;
  padding-left: 16px;
}

.py-md {
  padding-top: 16px;
  padding-bottom: 16px;
}

.px-lg {
  padding-right: 24px;
  padding-left: 24px;
}

.py-lg {
  padding-top: 24px;
  padding-bottom: 24px;
}

.p-lg {
  padding: 24px;
}

.p-xl {
  padding: 40px;
}

.px-xl {
  padding-right: 40px;
  padding-left: 40px;
}

.py-xl {
  padding-top: 40px;
  padding-bottom: 40px;
}

.px-2xl {
  padding-right: 80px;
  padding-left: 80px;
}

.py-2xl {
  padding-top: 96px;
  padding-bottom: 96px;
}

.pt-2xl {
  padding-top: 96px;
}

.pb-2xl {
  padding-bottom: 96px;
}

.mb-xs {
  margin-bottom: 4px;
}

.mb-sm {
  margin-bottom: 8px;
}

.mb-md {
  margin-bottom: 16px;
}

.mb-lg {
  margin-bottom: 24px;
}

.mb-xl {
  margin-bottom: 40px;
}

.mb-2xl {
  margin-bottom: 80px;
}

.mt-md {
  margin-top: 16px;
}

.mt-xl {
  margin-top: 40px;
}

.mt-2xl {
  margin-top: 80px;
}

.gap-sm {
  gap: 8px;
}

.gap-md {
  gap: 16px;
}

.gap-lg {
  gap: 24px;
}

.gap-xl {
  gap: 40px;
}

.gap-base {
  gap: 8px;
}

@media (max-width: 767px) {
  .site-nav > div {
    padding-right: 24px;
    padding-left: 24px;
  }

  .site-brand {
    max-width: 220px;
    font-size: 17px;
    line-height: 1.05;
  }

  .px-2xl {
    padding-right: 24px;
    padding-left: 24px;
  }

  .py-2xl {
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .event-hero {
    padding-top: 28px;
  }

  .member-hero {
    padding-top: 132px;
  }

  .member-modal {
    padding: 84px 16px 24px;
  }

  .member-modal-close {
    top: 18px;
    right: 18px;
  }

  .member-modal-panel {
    grid-template-columns: 1fr;
    gap: 22px;
    padding: 16px;
    border-radius: 20px;
  }

  .member-modal-portrait {
    min-height: 420px;
  }

  .member-modal-about {
    margin-top: 0;
    padding: 24px;
  }
}
