.quote-band::before {
  content: "\201C";
}

.cta-panel::after {
  content: "\2197";
}

.js .hero-copy > * {
  opacity: 0;
  transform: translateY(24px);
  animation: hero-enter 800ms cubic-bezier(.22, 1, .36, 1) forwards;
}

.js .hero-copy > :nth-child(1) {
  animation-delay: 100ms;
}

.js .hero-copy > :nth-child(2) {
  animation-delay: 190ms;
}

.js .hero-copy > :nth-child(3) {
  animation-delay: 310ms;
}

.js .hero-copy > :nth-child(4) {
  animation-delay: 410ms;
}

.js .hero-copy > :nth-child(5) {
  animation-delay: 500ms;
}

.js .hero-portrait {
  clip-path: inset(0 0 100% 0);
  animation: portrait-reveal 1100ms cubic-bezier(.22, 1, .36, 1) 120ms forwards;
}

.hero-portrait img {
  --portrait-shift: 0px;
  transform: translate3d(0, var(--portrait-shift), 0) scale(1.035);
  transition: transform 180ms linear;
}

.js .signature-line {
  opacity: 0;
  transform: translateX(18px);
  animation: signature-enter 700ms cubic-bezier(.22, 1, .36, 1) 900ms forwards;
}

.motion-reveal {
  opacity: 0;
  transform: translateY(34px);
  transition:
    opacity 800ms cubic-bezier(.22, 1, .36, 1) var(--motion-delay, 0ms),
    transform 800ms cubic-bezier(.22, 1, .36, 1) var(--motion-delay, 0ms);
}

.motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.feature-card,
.contact-card,
.journal-card {
  transition:
    transform 400ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 400ms ease,
    border-color 400ms ease;
}

.feature-card:hover,
.contact-card:hover,
.journal-card:hover {
  z-index: 2;
  transform: translateY(-8px);
  border-color: rgba(188, 91, 50, .45);
  box-shadow: 0 28px 70px rgba(16, 26, 46, .14);
}

.career-row {
  transition:
    padding-left 350ms cubic-bezier(.22, 1, .36, 1),
    background-color 350ms ease;
}

.career-row:hover {
  padding-left: 1rem;
  background: rgba(255, 253, 248, .55);
}

.address-item a,
.site-footer a,
.wordmark a {
  transition: color 250ms ease, opacity 250ms ease;
}

.wp-block-button__link {
  position: relative;
  overflow: hidden;
  transition: color 300ms ease, background-color 300ms ease, transform 300ms ease;
}

.wp-block-button__link:hover {
  transform: translateY(-3px);
}

.number-item strong {
  display: inline-block;
  transition: transform 400ms cubic-bezier(.22, 1, .36, 1), color 300ms ease;
}

.number-item:hover strong {
  transform: translateY(-6px);
  color: var(--white);
}

.quote-band::before {
  animation: quote-drift 10s ease-in-out infinite alternate;
}

@keyframes hero-enter {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes portrait-reveal {
  to {
    clip-path: inset(0 0 0 0);
  }
}

@keyframes signature-enter {
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes quote-drift {
  to {
    transform: translate3d(18px, 10px, 0) rotate(2deg);
  }
}

@media (max-width: 700px) {
  .site-header__inner {
    width: 100%;
    justify-content: space-between;
  }

  .wp-block-navigation__responsive-container-open {
    display: flex !important;
    color: var(--ink);
  }

  .wp-block-navigation__responsive-container:not(.is-menu-open) {
    display: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    inset: 0;
    z-index: 100000;
    width: 100vw;
    height: 100dvh;
    padding: 5rem 1.5rem 2rem;
    overflow-y: auto;
    background: var(--paper);
    color: var(--ink);
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-close,
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-dialog,
  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    width: 100%;
    height: auto;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__responsive-container-content {
    align-items: stretch;
    padding-top: 1.5rem;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation__container {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: 100%;
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item {
    display: block;
    width: 100%;
    border-bottom: 1px solid var(--line);
  }

  .wp-block-navigation__responsive-container.is-menu-open
    .wp-block-navigation-item__content {
    display: block;
    width: 100%;
    padding: 1rem 0;
    font-family: var(--serif);
    font-size: clamp(1.8rem, 9vw, 3rem);
    line-height: 1.1;
    letter-spacing: -0.03em;
    text-align: left;
    text-transform: none;
  }

  .wp-block-navigation__responsive-container-close {
    top: 1.25rem;
    right: 1.25rem;
  }

  .signature-line {
    right: 1rem;
    width: min(16rem, calc(100% - 2rem));
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .js .hero-copy > *,
  .js .hero-portrait,
  .js .signature-line,
  .motion-reveal {
    opacity: 1;
    clip-path: none;
    transform: none;
    animation: none;
    transition: none;
  }

  .hero-portrait img,
  .quote-band::before {
    transform: none;
    animation: none;
    transition: none;
  }
}
