/* Global styles, copied from the design. */
html, body { margin: 0; padding: 0; }
html { background: #E3E4E2; }
body {
  background: #F4F4F1;
  color: #1A1D1B;
  font-family: "Geist", "Helvetica Neue", Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: #1A1D1B; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: rgba(26,29,27,.4); }
a:hover { color: #1A1D1B; text-decoration-color: #1A1D1B; }
@keyframes bpMenu { from { opacity: 0; } to { opacity: 1; } }
@keyframes bpChar { from { opacity: 0; filter: blur(10px); } to { opacity: 1; filter: blur(0); } }
@keyframes bpFade { from { transform: translateY(8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  [data-anim] { animation: none !important; }
}

/* The design uses <button> for navigation. These links copy the browser's
   default button styles so they look the same. */
.btn {
  display: inline-block;
  font: 400 13.333px system-ui, sans-serif;
  font: -webkit-small-control;
  line-height: normal;
  letter-spacing: normal;
  word-spacing: normal;
  text-transform: none;
  text-indent: 0;
  text-shadow: none;
  text-align: center;
  text-decoration: none;
  box-sizing: border-box;
}

/* Hover states from the design's style-hover attributes. */
.h-nav:hover { color: #1A1D1B !important; }
.h-menu:hover { background: rgba(26,29,27,.07) !important; }
.h-light:hover { background: #FFFFFF !important; }
.h-more:hover { color: #1A1D1B !important; border-bottom-color: #1A1D1B !important; }
.h-darklink:hover { color: #F4F4F1 !important; border-bottom-color: #F4F4F1 !important; }
.h-dark:hover { background: #131614 !important; }

/* Header. site.js sets these values while you scroll. */
.bp-header {
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-bottom: 1px solid rgba(26,29,27,0.000);
  box-shadow: none;
}
.bp-nav { display: flex; }
.bp-toggle { display: none; }
.bp-menu { display: none; }

/* Hero. site.js sets exact values for the window width. */
.bp-hero-pos { object-position: 50% 63%; }
.bp-hero-text {
  padding: clamp(160px, calc(160px + (100vw - 390px) * 0.019782), 180px) 26px clamp(60px,10vh,120px);
  align-items: center;
  text-align: center;
}
.bp-hero-title-row { justify-content: center; }
.bp-hero-title { font-size: min(62px, calc(48.8px + (100vw - 390px) * 0.013056)); }
.bp-eyebrow-narrow { display: none; }

@media (min-width: 1401px) {
  .bp-hero-pos { object-position: 50% 59%; }
  .bp-hero-text { padding-top: min(195px, calc(180px + (100vw - 1401px) * 0.02994)); }
}
@media (min-width: 1902px) {
  .bp-hero-pos { object-position: 50% 55%; }
}
@media (max-width: 390px) {
  .bp-hero-title { font-size: max(38px, 12.5vw); }
}
@media (max-width: 759.98px) {
  .bp-header {
    background: rgba(246,246,243,0.58);
    -webkit-backdrop-filter: saturate(150%) blur(16.0px);
    backdrop-filter: saturate(150%) blur(16.0px);
    border-bottom-color: rgba(26,29,27,0.100);
    box-shadow: 0 1px 0 rgba(255,255,255,0.50) inset, 0 8px 24px rgba(26,29,27,0.050);
  }
  .bp-nav { display: none; }
  .bp-toggle { display: flex; }
  .bp-menu.is-open { display: flex; }
  .bp-hero-text { align-items: flex-start; text-align: left; padding-top: calc(clamp(160px, calc(160px + (100vw - 390px) * 0.019782), 180px) + 40px); }
  .bp-hero-title-row { justify-content: flex-start; }
  .bp-eyebrow-wide { display: none; }
  .bp-eyebrow-narrow { display: block; }
  /* Phones show Corinne's photo across the full width. */
  .bp-intro-photo { flex: 1 1 100% !important; }
}

/* Empty photo placeholder, copied from the design's image-slot element. */
.image-slot {
  display: block;
  position: relative;
  font: 13px/1.3 system-ui, -apple-system, sans-serif;
  width: 100%;
  height: 100%;
  aspect-ratio: 3/2;
}
.image-slot .frame { position: absolute; inset: 0; overflow: hidden; background: rgba(127,127,127,.08); }
.image-slot .empty {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 6px; text-align: center; padding: 12px; box-sizing: border-box;
  cursor: pointer; user-select: none;
}
.image-slot .empty svg { opacity: .45; }
.image-slot .empty .cap { max-width: 90%; font-weight: 500; letter-spacing: .01em; opacity: .75; }
.image-slot .ring { position: absolute; inset: 0; pointer-events: none; border: 1.5px dashed currentColor; opacity: .35; }
