*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background: #F0F1EC;
  margin: 0;
}

.page {
  position: relative;
  background: #F0F1EC;
  margin: 0 auto;
}

.page > * {
  position: absolute;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* Common */
.italic { font-style: italic; }
.ph { background: #C0C0C0; }

/* Diagram */
.diagram { background: #EAE4D2; }
.diagram > * {
  position: absolute;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
.ellipse { border-radius: 50%; }

/* ========== MOBILE ========== */
.page-mobile {
  width: 402px;
  padding: 45px 19px 50px;
  position: relative;
}
/* Mobile uses flow layout — override the absolute positioning from .page > * */
.page-mobile > * {
  position: static;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
/* Default 25px gap between siblings */
.page-mobile > * + * {
  margin-top: 25px;
}
/* Logo offset 8px left to align dome with text below */
.page-mobile > .m-logo {
  width: 190px;
  height: 60px;
  margin-left: -8px;
  display: block;
}
/* Mobile images fill the content column */
.page-mobile > .m-img {
  width: 100%;
  height: auto;
  display: block;
}
/* h2 → body: 5px */
.page-mobile > h2 + .body {
  margin-top: 5px;
}
/* image → caption: 7px */
.page-mobile > .m-img + .cap {
  margin-top: 7px;
}
/* Intro 50px gaps */
.page-mobile > .team + .intro-tagline {
  margin-top: 50px;
}
.page-mobile > .intro-tagline + .intro-main {
  margin-top: 50px;
}

/* Scale mobile page proportionally for any viewport below the desktop breakpoint */
@media (max-width: 899px) {
  body { overflow-x: hidden; }
  .page-mobile { zoom: calc(100vw / 402px); }
}
.page-desktop { display: none; }

.page-mobile .body,
.page-mobile .body-med,
.page-mobile h2 {
  font-size: 16px;
  font-weight: 400;
  line-height: 115%;
  letter-spacing: -0.01em;
  color: #000;
}
.page-mobile .body,
.page-mobile .body-med {
  white-space: pre-line;
}

.page-mobile .subtext {
  font-size: 10px;
  font-weight: 400;
  line-height: 97%;
  letter-spacing: -0.03em;
  color: #5F5F5F;
}

.page-mobile .cap {
  font-size: 12px;
  font-weight: 400;
  line-height: 105%;
  letter-spacing: -0.01em;
  color: #000;
}

.page-mobile .team {
  font-size: 12px;
  font-weight: 400;
  line-height: 110%;
  letter-spacing: -0.01em;
  color: #5F5F5F;
}
.page-mobile .team a {
  color: inherit;
  text-decoration: underline;
}


.page-mobile .ellipse {
  width: 61.15px;
  height: 58.96px;
  border: 2.1517px solid #393939;
}
.page-mobile .diag-h {
  font-weight: 500;
  font-size: 12.5858px;
  line-height: 15px;
  color: #393939;
}
.page-mobile .diag-l {
  font-weight: 400;
  font-size: 9.22956px;
  line-height: 11px;
  color: #393939;
}

.page-mobile .closing-tag {
  font-weight: 400;
  font-size: 10.6122px;
  line-height: 97%;
  text-align: center;
  letter-spacing: -0.03em;
  color: #ECECEC;
}

/* ========== DESKTOP ========== */
@media (min-width: 900px) {
  .page-mobile { display: none; }
  .page-desktop {
    display: block;
    max-width: 651px;
    padding-top: 60px;
    padding-bottom: 50px;
  }
  /* Override absolute positioning from .page > * for desktop flow layout */
  .page-desktop > * {
    position: static;
  }
  /* Default 25px gap between siblings */
  .page-desktop > * + * {
    margin-top: 25px;
  }
  /* Logo offset 8px left to align dome edge with text below */
  .page-desktop > .d-logo {
    width: 225px;
    height: 72px;
    margin-left: -8px;
    display: block;
  }
  /* Desktop images fill the content column */
  .page-desktop > .d-img {
    width: 100%;
    height: auto;
    display: block;
  }
  /* h2 → body: 5px */
  .page-desktop > h2 + .body {
    margin-top: 5px;
  }
  /* image → caption: 7px */
  .page-desktop > .d-img + .cap {
    margin-top: 7px;
  }
  /* Intro 50px gaps */
  .page-desktop > .team + .intro-tagline {
    margin-top: 50px;
  }
  .page-desktop > .intro-tagline + .intro-main {
    margin-top: 50px;
  }
}

.page-desktop .body,
.page-desktop .body-med,
.page-desktop h2 {
  font-size: 18px;
  font-weight: 400;
  line-height: 120%;
  letter-spacing: -0.01em;
  color: #000;
  width: 65ch !important;
}
.page-desktop .body,
.page-desktop .body-med {
  white-space: pre-line;
}

.page-desktop .subtext {
  font-size: 12px;
  font-weight: 400;
  line-height: 97%;
  letter-spacing: -0.03em;
  color: #5F5F5F;
}

.page-desktop .cap {
  font-size: 14px;
  font-weight: 400;
  line-height: 110%;
  letter-spacing: -0.01em;
  color: #000;
}

.page-desktop .team {
  font-size: 14px;
  font-weight: 400;
  line-height: 110%;
  letter-spacing: -0.01em;
  color: #5F5F5F;
}
.page-desktop .team a {
  color: inherit;
  text-decoration: underline;
}

.page-desktop .ellipse {
  width: 79.6px;
  height: 76.74px;
  border: 2.80075px solid #393939;
}
.page-desktop .diag-h {
  font-weight: 500;
  font-size: 16.3822px;
  line-height: 20px;
  color: #393939;
}
.page-desktop .diag-l {
  font-weight: 400;
  font-size: 12.0136px;
  line-height: 14px;
  color: #393939;
}

.page-desktop .closing-tag {
  font-weight: 400;
  font-size: 10.6122px;
  line-height: 97%;
  text-align: center;
  letter-spacing: -0.03em;
  color: #ECECEC;
}

/* ========== KUBRICK HYPERLINK POPUP ========== */
.kubrick-link {
  text-decoration: underline;
  color: inherit;
  cursor: pointer;
}

.kubrick-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  z-index: 998;
}
.kubrick-backdrop.show {
  opacity: 1;
  pointer-events: auto;
}

.kubrick-popup {
  position: fixed;
  background: #ECECEC;
  z-index: 999;
  box-sizing: border-box;
  font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
  border-radius: 16px;
}
.kubrick-popup p {
  font-weight: 400;
  letter-spacing: -0.01em;
  color: #000;
  margin: 0 0 25px 0;
}
.kubrick-popup img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 12px;
}
.kubrick-popup img:last-child {
  margin-bottom: 0;
}

/* Mobile: slides up from bottom */
.kubrick-popup {
  left: 16px;
  right: 16px;
  bottom: 16px;
  padding: 28px;
  transform: translateY(calc(100% + 32px));
  opacity: 0;
  pointer-events: none;
  transition: transform 0.3s ease, opacity 0.3s ease;
}
.kubrick-popup.show {
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto;
}
.kubrick-popup p {
  font-size: 16px;
  line-height: 105%;
}

/* Desktop: floats in bottom-right */
@media (min-width: 900px) {
  .kubrick-backdrop { display: none; }
  .kubrick-popup {
    left: auto;
    right: 30px;
    bottom: 30px;
    width: 360px;
    padding: 30px;
    transform: translateY(12px);
    opacity: 0;
    pointer-events: none;
    transition: transform 0.25s ease, opacity 0.25s ease;
  }
  .kubrick-popup.show {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
  }
  .kubrick-popup p {
    font-size: 14px;
    line-height: 110%;
  }
}
