:root {
  --footer-margin: 10px;
  --page-margin: var(--footer-margin);
  --intro-size: 28.16px;
  --intro-leading: 34.56px;
  --footer-size: 21.3333px;
  --footer-leading: 26.6667px;
  --footer-height: 0px;
  --mobile-credit-height: 0px;
  --mobile-scroll-offset: 0px;
}

* {
  box-sizing: border-box;
}

html,
body {
  min-height: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: #fff;
  color: #000;
  font-family: "Times New Roman", Times, serif;
  font-weight: 700;
}

.landing-screen {
  position: fixed;
  inset: 0;
  z-index: 10;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #000;
  cursor: pointer;
  animation: landing-screen-hide 0s linear 4.3s forwards;
}

.landing-panel {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 50%;
  background: #e6e6e6;
  backface-visibility: hidden;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.landing-panel-left {
  left: 0;
  animation: landing-left-open 1.25s cubic-bezier(0.76, 0, 0.24, 1) 3s forwards;
}

.landing-panel-right {
  right: 0;
  animation: landing-right-open 1.25s cubic-bezier(0.76, 0, 0.24, 1) 3s forwards;
}

.landing-form {
  position: relative;
  z-index: 2;
  display: block;
  width: calc(100vw - var(--page-margin) * 2);
  margin: 0;
  font-size: calc(var(--footer-size) * 1.5);
  font-weight: 700;
  line-height: calc(var(--footer-leading) * 1.5);
  text-align: center;
  user-select: none;
  animation: landing-text-fade 0.7s ease 3s forwards;
  will-change: opacity, transform;
}

.landing-screen.is-opening {
  pointer-events: none;
}

.landing-screen.is-gone {
  display: none;
}

@keyframes landing-left-open {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(-100%, 0, 0);
  }
}

@keyframes landing-right-open {
  from {
    transform: translate3d(0, 0, 0);
  }

  to {
    transform: translate3d(100%, 0, 0);
  }
}

@keyframes landing-text-fade {
  to {
    opacity: 0;
    transform: scale(0.98);
  }
}

@keyframes landing-screen-hide {
  to {
    visibility: hidden;
    pointer-events: none;
  }
}

a {
  color: inherit;
  text-decoration: none;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.08em;
}

a:hover,
a:focus-visible {
  text-decoration: underline;
}

.page-shell {
  min-height: calc(100vh + var(--footer-height) + var(--mobile-credit-height) + var(--footer-margin) * 2);
  padding: var(--page-margin);
  padding-bottom: calc(var(--footer-margin) + var(--footer-height) + var(--page-margin));
  position: relative;
}

.intro {
  position: fixed;
  left: var(--page-margin);
  bottom: var(--page-margin);
  z-index: 2;
  margin: 0;
  max-width: calc(100vw - var(--page-margin) * 2);
  font-size: var(--footer-size);
  line-height: var(--footer-leading);
  text-align: left;
}

.headline-ticker {
  position: fixed;
  top: var(--page-margin);
  right: var(--page-margin);
  width: calc(100vw - var(--page-margin) * 2);
  overflow: hidden;
  font-size: var(--footer-size);
  font-weight: 400;
  line-height: var(--footer-leading);
  text-align: right;
}

.headline-track {
  display: inline-block;
  min-width: max-content;
  text-decoration: none;
  white-space: nowrap;
}

.services-repeat {
  display: none;
}

@keyframes headline-marquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

.image-frame {
  position: fixed;
  left: var(--page-margin);
  top: var(--page-margin);
  width: min(46.5vw, 585px);
  min-width: 330px;
  max-width: calc(100vw - var(--page-margin) * 2);
  margin: 0;
  transform: none;
  z-index: 1;
}

.image-frame.is-loading {
  visibility: hidden;
}

.image-frame.is-vertical {
  width: min(37.2vw, 468px);
  min-width: 264px;
}

.image-frame.is-square {
  width: min(31vw, 390px);
  min-width: 220px;
}

.image-caption {
  width: 100%;
  margin: 0;
  overflow: hidden;
  font-size: calc(var(--footer-size) * 0.8);
  font-weight: 400;
  line-height: calc(var(--footer-leading) * 0.8);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.caption-track {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.caption-repeat {
  display: none;
}

.image-caption.is-marquee {
  text-overflow: clip;
}

.image-caption.is-marquee .caption-track {
  max-width: none;
  min-width: max-content;
  overflow: visible;
  font-size: inherit;
  line-height: inherit;
  text-overflow: clip;
  animation: headline-marquee 14s linear 1s infinite;
}

.image-caption.is-measuring .caption-track {
  max-width: none;
  overflow: visible;
  text-overflow: clip;
}

.image-caption.is-marquee .caption-repeat {
  display: inline;
}

.image-rotator {
  width: 100%;
  aspect-ratio: var(--media-aspect-ratio, 3 / 2);
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  display: block;
}

.image-rotator img,
.image-rotator video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left bottom;
}

.image-rotator video[hidden],
.image-rotator img[hidden] {
  display: none;
}

.site-footer {
  position: fixed;
  left: var(--footer-margin);
  right: var(--footer-margin);
  bottom: calc(-1 * var(--footer-height));
  margin: 0;
  font-size: var(--footer-size);
  font-weight: 400;
  line-height: var(--footer-leading);
  text-align: left;
  transform: translateY(calc(-1 * var(--mobile-scroll-offset)));
}

.footer-credit {
  display: block;
  position: absolute;
  top: calc(100% + var(--footer-margin));
  left: 0;
  right: 0;
  color: rgb(0 0 0 / 50%);
  font-size: calc(var(--footer-size) * 0.7);
  line-height: calc(var(--footer-leading) * 0.7);
  margin-top: 0;
  opacity: 0;
  pointer-events: none;
  text-align: center;
  transition: opacity 0.25s ease;
}

body.is-credit-visible .footer-credit {
  opacity: 1;
}

.mobile-credit-break {
  display: inline;
}

@media (max-width: 760px) {
  :root {
    --intro-size: 26px;
    --intro-leading: 31px;
    --footer-size: 18px;
    --footer-leading: 22px;
    --mobile-footer-size: calc(var(--footer-size) * 0.8);
    --mobile-footer-leading: calc(var(--footer-leading) * 0.8);
    --mobile-email-size: calc(var(--mobile-footer-size) * 1.2);
    --mobile-email-leading: calc(var(--mobile-footer-leading) * 1.2);
    --mobile-caption-size: calc(var(--footer-size) * 0.72);
    --mobile-caption-leading: calc(var(--footer-leading) * 0.72);
    --mobile-scroll-offset: 0px;
  }

  .page-shell {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
    min-height: 100svh;
    padding-bottom: var(--page-margin);
  }

  .intro {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    margin-top: auto;
    font-size: var(--mobile-email-size);
    line-height: var(--mobile-email-leading);
  }

  .image-frame {
    top: calc(var(--page-margin) + var(--mobile-footer-leading) + var(--page-margin));
    width: calc(100vw - var(--page-margin) * 2);
    min-width: 0;
    transform: none;
  }

  .image-frame.is-vertical {
    width: var(--mobile-vertical-width, calc((100vw - var(--page-margin) * 2) * 0.8));
    min-width: 0;
  }

  .image-frame.is-square {
    width: calc(100vw - var(--page-margin) * 2);
    min-width: 0;
  }

  .image-caption {
    width: calc(100vw - var(--page-margin) * 2);
  }

  .headline-ticker {
    top: var(--page-margin);
    left: var(--page-margin);
    width: calc(100vw - var(--page-margin) * 2);
    font-size: var(--mobile-footer-size);
    line-height: var(--mobile-footer-leading);
    text-align: left;
  }

  .image-caption,
  .caption-track,
  .caption-text,
  .caption-repeat,
  .image-caption.is-marquee .caption-track,
  .image-caption.is-measuring .caption-track {
    font-size: var(--mobile-caption-size) !important;
    line-height: var(--mobile-caption-leading) !important;
  }

  .image-caption * {
    font-size: inherit !important;
    line-height: inherit !important;
  }

  .site-footer {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    margin: 0 var(--footer-margin) var(--footer-margin);
    font-size: var(--mobile-footer-size);
    line-height: var(--mobile-footer-leading);
    transform: none;
  }

  .footer-credit {
    position: static;
    left: 0;
    right: 0;
    margin-top: var(--footer-margin);
    opacity: 1;
    pointer-events: auto;
    transition: none;
  }

  .mobile-credit-break {
    display: block;
  }

  .landing-form {
    align-content: center;
    align-items: center;
    flex-direction: column;
    gap: 0;
    font-size: var(--footer-size);
    line-height: var(--footer-leading);
  }

  .landing-input {
    width: min(var(--landing-input-width, 4.5em), 100%);
  }

}
