/* Design tokens — single source: Phase 2 §A (dev-handoff), normalized per decision log #14.
   Fluid sizes interpolate 390px → 1920px viewports: clamp(min, intercept + slope*vw, max). */ :root {
    /* Color */   --c-black: #0A0A19;
    --c-indigo: #1D4485;
    --c-indigo-hover: #16346A;
    --c-cobalt-400: #416299;
    --c-cobalt-100: #AEBCD3;
    --c-cobalt-50: #C0CBDD;
    --c-mist: #F4F6F8;
    --c-white: #FFFFFF;
    --c-slate: #181819;
    --c-tint-c9: #C9D6EA;
    --c-tint-dc: #DCE4F2;
    --c-dark-body: #DCE3EF;
     /* body text on dark sections */   --c-dark-meta: #8FA0B8;
     /* metadata on dark sections */   --c-error: #8C1D1D;
    --c-faq-rule: #E5E5E6;
    /* Alphas */   --hairline-12: rgba(10, 10, 25, 0.12);
    --hairline-14: rgba(10, 10, 25, 0.14);
    --hairline-20: rgba(10, 10, 25, 0.2);
    --hairline-50: rgba(10, 10, 25, 0.5);
    --hairline-w12: rgba(255, 255, 255, 0.12);
    --hairline-w25: rgba(255, 255, 255, 0.25);
    --hairline-w35: rgba(255, 255, 255, 0.35);
    --hairline-w40: rgba(255, 255, 255, 0.4);
    --glass-fill: rgba(255, 255, 255, 0.2);
    --glass-panel: rgba(255, 255, 255, 0.75);
    /* Gradients */   --grad-cta: linear-gradient(120deg, var(--c-tint-dc) 0%, #B4C6E2 100%);
    --grad-dark-hero: linear-gradient(163deg, #0A1019 0%, #1D3050 54%, #5E7699 100%);
    --grad-light-linear: linear-gradient(147deg, #D2E3FF 0%, #1D4485 74%);
    /* Elevation + glass */   --shadow-lil: 0 10px 50px rgba(0, 0, 0, 0.05);
    --shadow-panel: 0 10px 50px rgba(0, 0, 0, 0.08);
    --blur-glass: 17px;
    /* Type */   --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body: 'Fustat', 'Helvetica Neue', Arial, sans-serif;
    --font-script: 'Mrs Saint Delafield', cursive;
    /* Display scale (Playfair). Some entries are reserved scale stops — pages whose
     mocks interpolate off-scale curves keep their own clamps rather than snap here. */   --fs-hero-150: clamp(48px, calc(22px + 6.67vw), 150px);
    --fs-hero-120: clamp(46px, calc(27.1px + 4.84vw), 120px);
    --fs-hero-112: clamp(46px, calc(29.2px + 4.31vw), 112px);
    --fs-interlude-96: clamp(40px, calc(25.7px + 3.66vw), 96px);
    --fs-interlude-88: clamp(38px, calc(25.3px + 3.27vw), 88px);
    --fs-section-76: clamp(34px, calc(23.3px + 2.75vw), 76px);
    --fs-section-68: clamp(32px, calc(22.8px + 2.35vw), 68px);
    --fs-section-64: clamp(34px, calc(26.4px + 1.96vw), 64px);
    --fs-chapter-58: clamp(30px, calc(22.9px + 1.83vw), 58px);
    --fs-h2-55: clamp(34px, calc(28.6px + 1.37vw), 55px);
    --fs-h3-40: clamp(26px, calc(22.4px + 0.92vw), 40px);
    --fs-display-46: clamp(27px, calc(22.2px + 1.24vw), 46px);
    /* Fustat scale */   --fs-h4-32: clamp(22px, calc(19.5px + 0.65vw), 32px);
    --fs-h5-28: clamp(20px, calc(18px + 0.52vw), 28px);
    --fs-h5-26: clamp(19px, calc(17.2px + 0.46vw), 26px);
    --fs-body-20: clamp(16px, calc(15px + 0.26vw), 20px);
    --fs-body-18: clamp(16px, calc(15.5px + 0.13vw), 18px);
    --fs-body-17: clamp(16px, calc(15.7px + 0.065vw), 17px);
    --fs-eyebrow: clamp(12px, calc(11px + 0.26vw), 16px);
    --ls-eyebrow: 2.4px;
    --fs-meta: 13px;
    --fs-folio: 14px;
    --ls-folio: 3px;
    /* Space */   --sp-section: clamp(84px, calc(60.6px + 6.01vw), 176px);
    --page-margin: 100px;
    --content-inset: 160px;
   /* content inset inside the 100px page rules */   /* Motion — micro-interactions */   --dur-hover: 200ms;
    --dur-reveal: 400ms;
    --ease: ease-out;
    /* Motion — reveal choreography + depth (MOTION-SPEC.md) */   --dur-rise: 850ms;
    --dur-drift: 1300ms;
    --ease-out-soft: cubic-bezier(0.33, 1, 0.68, 1);
    --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    --reveal-distance: 36px;
    --reveal-stagger: 95ms;
    /* Focus */   --focus-outline: 2px solid #1D4485;
    --focus-offset: 2px;
}
@media (max-width: 1024px) {
    :root {
        --page-margin: 64px;
        --content-inset: 64px;
  }
}
@media (max-width: 768px) {
    :root {
        --page-margin: 24px;
        --content-inset: 24px;
  }
}
/* Global base + shared module styles. Page-specific styling lives in each page's scoped <style>. */ *, *::before, *::after {
    box-sizing: border-box;
}
html {
    scroll-behavior: smooth;
}
@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
  }
    *,   *::before,   *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
  }
}
body {
    margin: 0;
    font-family: var(--font-body);
    font-size: var(--fs-body-18);
    line-height: 1.75;
    color: var(--c-black);
    background: var(--c-white);
    -webkit-font-smoothing: antialiased;
}
img {
    max-width: 100%;
    display: block;
}
h1, h2, h3, h4, h5, h6, p {
    margin: 0;
}
a {
    color: inherit;
    text-decoration: none;
}
p a, .body-link {
    color: var(--c-indigo);
    text-decoration: underline;
    transition: color var(--dur-hover) var(--ease);
}
p a:hover, .body-link:hover {
    color: var(--c-black);
}
:focus-visible {
    outline: var(--focus-outline);
    outline-offset: var(--focus-offset);
}
::selection {
    background: var(--c-indigo);
    color: var(--c-white);
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
}
.skip-link {
    position: absolute;
    top: -100px;
    left: 16px;
    z-index: 200;
    background: var(--c-indigo);
    color: var(--c-white);
    padding: 12px 20px;
    font-size: 16px;
}
.skip-link:focus {
    top: 16px;
}
/* ---- Containers ---- */ .container {
    width: min(100% - 2 * var(--page-margin), 1720px);
    margin-inline: auto;
}
.container-reading {
    width: min(100% - 2 * var(--page-margin), 1310px);
    margin-inline: auto;
}
.copy-col {
    max-width: 696px;
}
/* ---- Type patterns ---- */ .eyebrow {
    font-size: var(--fs-eyebrow);
    letter-spacing: var(--ls-eyebrow);
    text-transform: uppercase;
    color: var(--c-indigo);
    font-weight: 400;
}
.display {
    font-family: var(--font-display);
    font-weight: 400;
}
.display em {
    font-weight: 400;
}
/* ---- Buttons: one shape, three fills, radius 0, 49px, 200ms hovers ---- */ .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
    min-height: 49px;
    padding: 10px 20px;
    border-radius: 0;
    border: none;
    font-family: var(--font-body);
    font-size: var(--fs-body-18);
    line-height: 1.6;
    cursor: pointer;
    text-decoration: none;
    transition: background-color var(--dur-hover) var(--ease), color var(--dur-hover) var(--ease), border-color var(--dur-hover) var(--ease);
}
.btn--primary {
    background: var(--c-indigo);
    color: var(--c-white);
}
.btn--primary:hover {
    background: var(--c-indigo-hover);
    color: var(--c-white);
}
.btn--outline {
    background: transparent;
    border: 1px solid var(--c-black);
    color: var(--c-black);
}
.btn--outline:hover {
    background: var(--c-black);
    color: var(--c-white);
}
/* Glass buttons sit on photography or dark surfaces only (needs scrim behind — QA flag) */ .btn--glass {
    background: var(--glass-fill);
    border: 1px solid var(--c-white);
    color: var(--c-white);
    backdrop-filter: blur(var(--blur-glass));
    -webkit-backdrop-filter: blur(var(--blur-glass));
}
.btn--glass:hover {
    background: rgba(255, 255, 255, 0.35);
    color: var(--c-white);
}
/* Outline on dark surfaces */ .btn--outline-light {
    background: transparent;
    border: 1px solid var(--c-white);
    color: var(--c-white);
}
.btn--outline-light:hover {
    background: var(--c-white);
    color: var(--c-black);
}
/* ---- Chapter folio bar: eyebrow left, "Ch. 0N — 0N" italic right, 1px top rule ---- */ .folio {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 24px;
    border-top: 1px solid var(--hairline-20);
    padding-top: 18px;
}
.folio__label {
    font-size: var(--fs-folio);
    letter-spacing: var(--ls-folio);
    text-transform: uppercase;
    color: var(--c-indigo);
}
.folio__num {
    font-family: var(--font-display);
    font-style: italic;
    font-size: 16px;
    color: var(--c-cobalt-400);
    white-space: nowrap;
}
.folio--dark {
    border-top-color: var(--hairline-w25);
}
.folio--dark .folio__label {
    color: var(--c-cobalt-100);
}
.folio--dark .folio__num {
    color: var(--c-dark-meta);
}
/* ---- Plate: image slot with tonal fallback + monospace caption (placeholders await client photography) ---- */ .plate {
    position: relative;
    overflow: hidden;
}
.plate img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.plate--bw img {
    filter: grayscale(1);
}
.plate__caption {
    position: absolute;
    left: 16px;
    bottom: 14px;
    font-family: monospace;
    font-size: 11px;
    color: rgba(255, 255, 255, 0.7);
    z-index: 1;
}
/* ---- CONTENT NEEDED slot: visibly incomplete, never improvised ---- */ .content-needed {
    border: 1px dashed var(--c-indigo);
    color: var(--c-indigo);
    font-family: monospace;
    font-size: 13px;
    line-height: 1.6;
    padding: 18px 22px;
}
.content-needed--dark {
    border-color: var(--c-cobalt-100);
    color: var(--c-cobalt-100);
}
/* ---- Info rows (label / value, hairline rules) ---- */ .info-row {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    font-size: var(--fs-body-18);
    padding: 20px 0;
    border-bottom: 1px solid var(--hairline-50);
}
.info-row:last-child {
    border-bottom: none;
}
.info-row__label {
    color: var(--c-cobalt-400);
}
/* ---- Forms: visible labels, required indicators, inline errors, success panel ---- */ .field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.field__label {
    font-size: 14px;
    letter-spacing: 0.4px;
}
.field__required {
    color: var(--c-indigo);
}
.field input, .field select, .field textarea {
    font-family: var(--font-body);
    font-size: 16px;
    color: var(--c-black);
    background: var(--c-white);
    border: 1px solid rgba(10, 10, 25, 0.35);
    border-radius: 0;
    padding: 12px 14px;
    min-height: 48px;
    transition: border-color var(--dur-hover) var(--ease);
}
.field textarea {
    min-height: 140px;
    resize: vertical;
}
.field input:hover, .field select:hover, .field textarea:hover {
    border-color: var(--c-black);
}
.field input:focus-visible, .field select:focus-visible, .field textarea:focus-visible {
    border-color: var(--c-indigo);
    outline: var(--focus-outline);
    outline-offset: 1px;
}
.field.is-invalid input, .field.is-invalid select, .field.is-invalid textarea {
    border-color: var(--c-error);
}
.field__error {
    font-size: 13px;
    color: var(--c-error);
}
.field--checkbox {
    flex-direction: row;
    align-items: flex-start;
    gap: 12px;
}
.field--checkbox input {
    width: 20px;
    height: 20px;
    min-height: 0;
    margin: 4px 0 0;
    accent-color: var(--c-indigo);
    flex-shrink: 0;
}
.form-success {
    border: 1px solid var(--c-indigo);
    background: var(--c-mist);
    padding: 24px 28px;
    font-size: var(--fs-body-18);
    line-height: 1.7;
}
/* ---- Broadsheet page rules: 1px black @7% at the page margins, full height.
   Default z-index 2 mirrors the mocks, which draw the rules across dark chapters
   too (invisible there at 7% alpha); a page may lower it via --page-rule-z. ---- */ .page__rule {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 1px;
    background: rgba(10, 10, 25, 0.07);
    z-index: var(--page-rule-z, 2);
    pointer-events: none;
}
.page__rule--left {
    left: var(--page-margin);
}
.page__rule--right {
    right: var(--page-margin);
}
@media (max-width: 768px) {
    .page__rule {
        display: none;
  }
}
/* ---- Section rhythm helper ---- */ .section {
    padding-block: var(--sp-section);
}
/* ---- Dark section text defaults ---- */ .on-dark {
    color: var(--c-white);
}
.on-dark p {
    color: var(--c-dark-body);
}
.on-dark .eyebrow {
    color: var(--c-cobalt-100);
}
/* ---- Motion layer: scroll reveals + parallax depth (MOTION-SPEC.md) ----
   Everything is gated on html.motion-ok, added by the inline head script in
   Base.astro only when JS runs and the visitor allows motion. Without it
   (no JS, reduced motion) this whole layer is inert and content is visible.
   The engine (src/scripts/motion.ts) adds .is-inview and drives --ri / --py. */ html.motion-ok [data-reveal] {
    opacity: 0;
    transition:     opacity var(--dur-rise) var(--ease-out-soft),     transform var(--dur-rise) var(--ease-out-expo),     filter var(--dur-rise) var(--ease-out-soft);
    transition-delay: calc(var(--ri, 0) * var(--reveal-stagger));
    will-change: opacity, transform;
}
html.motion-ok [data-reveal='up'] {
    transform: translateY(var(--reveal-distance));
}
html.motion-ok [data-reveal='blur'] {
    transform: translateY(26px);
    filter: blur(16px);
}
html.motion-ok [data-reveal='left'] {
    transform: translateX(-44px);
}
html.motion-ok [data-reveal='right'] {
    transform: translateX(44px);
}
html.motion-ok [data-reveal='line'] {
    transform: scaleX(0);
    transform-origin: left center;
}
/* Curtain reveal for image frames: the frame unclips top→down while the
   image itself settles from a gentle overscale. The 1px sliver is load-bearing:
   an element fully clipped by its own clip-path reports zero intersection to
   IntersectionObserver (Chrome), so a 100% inset would deadlock the reveal. */ html.motion-ok [data-reveal='mask'] {
    opacity: 1;
    clip-path: inset(0 0 calc(100% - 1px) 0);
    transition: clip-path var(--dur-drift) var(--ease-out-expo);
    transition-delay: calc(var(--ri, 0) * var(--reveal-stagger));
}
html.motion-ok [data-reveal='mask'] img {
    transform: scale(1.1);
    transition: transform 1600ms var(--ease-out-expo);
    transition-delay: calc(var(--ri, 0) * var(--reveal-stagger));
}
html.motion-ok [data-reveal].is-inview {
    opacity: 1;
    transform: none;
    filter: none;
    will-change: auto;
}
html.motion-ok [data-reveal='mask'].is-inview {
    clip-path: inset(0);
}
html.motion-ok [data-reveal='mask'].is-inview img {
    transform: none;
}
/* Parallax: the engine writes --py; positive speeds lag the scroll (background),
   negative lead it (foreground). Deactivated by the engine below 768px. */ html.motion-ok [data-parallax] {
    transform: translate3d(0, var(--py, 0px), 0);
    will-change: transform;
}
/* In-frame image drift: media overscaled 1.12 so the travel never exposes an
   edge (the engine caps travel against frame height). */ html.motion-ok [data-parallax-img] img, html.motion-ok [data-parallax-img] video {
    transform: translate3d(0, var(--py, 0px), 0) scale(1.12);
    will-change: transform;
}
@media print {
    html.motion-ok [data-reveal],   html.motion-ok [data-reveal] img,   html.motion-ok [data-parallax],   html.motion-ok [data-parallax-img] img,   html.motion-ok [data-parallax-img] video {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        clip-path: none !important;
  }
}
.site-header[data-astro-cid-ctg3m53h] {
  left:0;
  right:0;
  top:0;
  z-index:100
}
.site-header__inner[data-astro-cid-ctg3m53h] {
  height:133px;
  padding:0 var(--page-margin);
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  border-bottom:1px solid var(--hairline-w40)
}
.site-header--dark[data-astro-cid-ctg3m53h] {
  position:fixed;
  color:var(--c-white);
  background:transparent;
  transition:transform 600ms var(--ease-out-expo),background-color 600ms var(--ease-out-soft)
}
.site-header--dark[data-astro-cid-ctg3m53h].is-hidden {
  transform:translateY(-100%)
}
.site-header--dark[data-astro-cid-ctg3m53h].is-solid {
  background:rgba(10,10,25,0.7);
  backdrop-filter:blur(20px) saturate(1.4);
  -webkit-backdrop-filter:blur(20px) saturate(1.4)
}
@supports not (backdrop-filter: blur(1px)) {
  .site-header--dark[data-astro-cid-ctg3m53h].is-solid {
    background:rgba(10,10,25,0.96)
  }
}
.site-header--light[data-astro-cid-ctg3m53h] {
  position:relative;
  background:var(--c-white);
  color:var(--c-black)
}
.site-header--light[data-astro-cid-ctg3m53h] .site-header__inner[data-astro-cid-ctg3m53h] {
  border-bottom-color:var(--hairline-12)
}
.site-header--light[data-astro-cid-ctg3m53h] .site-header__wordmark[data-astro-cid-ctg3m53h] {
  filter:invert(1)
}
.site-header--light[data-astro-cid-ctg3m53h] .site-header__tagline[data-astro-cid-ctg3m53h] {
  color:var(--c-cobalt-400);
  opacity:1
}
.site-header--light[data-astro-cid-ctg3m53h] .site-header__menu-btn[data-astro-cid-ctg3m53h] {
  background:transparent;
  border-color:var(--c-black);
  color:var(--c-black);
  backdrop-filter:none;
  -webkit-backdrop-filter:none
}
.site-header--light[data-astro-cid-ctg3m53h] .site-header__menu-btn[data-astro-cid-ctg3m53h]:hover {
  background:var(--c-black);
  color:var(--c-white)
}
.site-header__links[data-astro-cid-ctg3m53h] {
  display:flex;
  gap:20px;
  font-size:16px
}
.site-header__link-item[data-astro-cid-ctg3m53h] {
  display:inline-flex;
  gap:20px;
  align-items:center
}
.site-header__bullet[data-astro-cid-ctg3m53h] {
  opacity:0.6
}
.site-header__brand[data-astro-cid-ctg3m53h] {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  justify-self:center
}
.site-header__wordmark[data-astro-cid-ctg3m53h] {
  height:24px;
  width:auto
}
.site-header__icons[data-astro-cid-ctg3m53h] {
  display:inline-flex;
  align-items:center;
  gap:4px
}
.site-header__icon[data-astro-cid-ctg3m53h] {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  font-size:18px;
  opacity:0.9;
  transition:opacity var(--dur-hover) var(--ease)
}
.site-header__icon[data-astro-cid-ctg3m53h]:hover {
  opacity:1
}
.site-header__tagline[data-astro-cid-ctg3m53h] {
  font-size:9.5px;
  letter-spacing:2.2px;
  opacity:0.85;
  text-transform:uppercase;
  white-space:nowrap
}
.site-header__actions[data-astro-cid-ctg3m53h] {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:22px
}
.site-header__menu-btn[data-astro-cid-ctg3m53h] {
  font-size:16px
}
.site-header__phone[data-astro-cid-ctg3m53h] {
  font-size:15px;
  opacity:0.9;
  white-space:nowrap
}
@media (max-width: 1024px) {
  .site-header__links[data-astro-cid-ctg3m53h] {
    display:none
  }
  .site-header__inner[data-astro-cid-ctg3m53h] {
    grid-template-columns:auto 1fr
  }
  .site-header__brand[data-astro-cid-ctg3m53h] {
    justify-self:start;
    align-items:flex-start
  }
}
@media (max-width: 768px) {
  .site-header__inner[data-astro-cid-ctg3m53h] {
    height:64px
  }
  .site-header__wordmark[data-astro-cid-ctg3m53h] {
    height:15px
  }
  .site-header__icons[data-astro-cid-ctg3m53h] {
    display:none
  }
  .site-header__tagline[data-astro-cid-ctg3m53h] {
    font-size:6.5px;
    letter-spacing:1.4px
  }
  .site-header__phone-num[data-astro-cid-ctg3m53h] {
    display:none
  }
  .site-header__phone[data-astro-cid-ctg3m53h] {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:44px;
    min-height:44px
  }
  .site-header__menu-btn[data-astro-cid-ctg3m53h] {
    min-height:44px;
    padding:7px 12px;
    font-size:13px;
    gap:8px
  }
}
.menu-overlay[data-astro-cid-ctg3m53h] {
  position:fixed;
  inset:0;
  z-index:150;
  background:var(--c-black);
  color:var(--c-white);
  display:flex;
  flex-direction:column;
  padding:0 var(--page-margin) 48px;
  overflow-y:auto
}
.menu-overlay[data-astro-cid-ctg3m53h][hidden] {
  display:none
}
.menu-overlay__top[data-astro-cid-ctg3m53h] {
  height:133px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--hairline-w25);
  flex-shrink:0
}
.menu-overlay__wordmark[data-astro-cid-ctg3m53h] {
  height:24px;
  width:auto
}
.menu-overlay__nav[data-astro-cid-ctg3m53h] {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  padding:48px 0;
  flex-grow:1
}
.menu-overlay__link[data-astro-cid-ctg3m53h] {
  font-size:var(--fs-h3-40);
  line-height:1.5;
  color:var(--c-white);
  transition:color var(--dur-hover) var(--ease)
}
.menu-overlay__link[data-astro-cid-ctg3m53h]:hover {
  color:var(--c-cobalt-100)
}
.menu-overlay__foot[data-astro-cid-ctg3m53h] {
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:wrap;
  border-top:1px solid var(--hairline-w25);
  padding-top:28px;
  flex-shrink:0
}
.menu-overlay__phone[data-astro-cid-ctg3m53h] {
  font-size:17px;
  color:var(--c-dark-body)
}
@media (max-width: 768px) {
  .menu-overlay__top[data-astro-cid-ctg3m53h] {
    height:64px
  }
  .menu-overlay__wordmark[data-astro-cid-ctg3m53h] {
    height:15px
  }
  .menu-overlay__nav[data-astro-cid-ctg3m53h] {
    padding:32px 0
  }
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h] {
  opacity:0;
  transition:opacity 450ms var(--ease-out-soft)
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open {
  opacity:1
}
html.motion-ok .menu-overlay__link[data-astro-cid-ctg3m53h],html.motion-ok .menu-overlay__foot[data-astro-cid-ctg3m53h] {
  opacity:0;
  transform:translateY(26px);
  transition:opacity 550ms var(--ease-out-soft),transform 550ms var(--ease-out-expo)
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h],html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__foot[data-astro-cid-ctg3m53h] {
  opacity:1;
  transform:none
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(1) {
  transition-delay:70ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(2) {
  transition-delay:115ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(3) {
  transition-delay:160ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(4) {
  transition-delay:205ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(5) {
  transition-delay:250ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(6) {
  transition-delay:295ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(7) {
  transition-delay:340ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(8) {
  transition-delay:385ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(9) {
  transition-delay:430ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__link[data-astro-cid-ctg3m53h]:nth-child(10) {
  transition-delay:475ms
}
html.motion-ok .menu-overlay[data-astro-cid-ctg3m53h].is-open .menu-overlay__foot[data-astro-cid-ctg3m53h] {
  transition-delay:520ms
}
.footer[data-astro-cid-gcn2mc3v] {
  background:var(--c-black);
  padding:90px clamp(24px,calc(-5.6px + 7.6vw),140px) 40px
}
.footer__grid[data-astro-cid-gcn2mc3v] {
  display:grid;
  grid-template-columns:minmax(0,558fr) repeat(3,minmax(0,294fr));
  gap:48px
}
.footer__logo[data-astro-cid-gcn2mc3v] {
  height:92px;
  width:auto
}
.footer__socials[data-astro-cid-gcn2mc3v] {
  display:flex;
  gap:12px;
  margin-top:26px
}
.footer__social[data-astro-cid-gcn2mc3v] {
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid var(--glass-fill);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:13px;
  opacity:0.65;
  transition:opacity var(--dur-hover) var(--ease),border-color var(--dur-hover) var(--ease)
}
.footer__social[data-astro-cid-gcn2mc3v]:hover {
  opacity:1;
  border-color:var(--hairline-w40)
}
.footer__head[data-astro-cid-gcn2mc3v] {
  font-family:var(--font-body);
  font-weight:400;
  font-size:14px;
  letter-spacing:2.4px;
  text-transform:uppercase;
  color:var(--c-cobalt-100);
  margin-bottom:18px
}
.footer__list[data-astro-cid-gcn2mc3v] {
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
  font-size:17px
}
.footer__link[data-astro-cid-gcn2mc3v] {
  transition:color var(--dur-hover) var(--ease)
}
.footer__link[data-astro-cid-gcn2mc3v]:hover {
  color:var(--c-cobalt-100)
}
.footer__map[data-astro-cid-gcn2mc3v] {
  height:170px;
  border-radius:2px;
  background:var(--grad-light-linear)
}
.footer__map[data-astro-cid-gcn2mc3v] .plate__caption[data-astro-cid-gcn2mc3v] {
  left:10px;
  bottom:10px;
  color:rgba(255,255,255,0.8)
}
.footer__legal[data-astro-cid-gcn2mc3v] {
  border-top:1px solid var(--hairline-w12);
  margin-top:60px;
  padding-top:28px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  font-size:14px;
  color:var(--c-cobalt-100)
}
@media (max-width: 1024px) {
  .footer__grid[data-astro-cid-gcn2mc3v] {
    grid-template-columns:1fr 1fr
  }
}
@media (max-width: 768px) {
  .footer[data-astro-cid-gcn2mc3v] {
    padding:56px 24px 28px
  }
  .footer__grid[data-astro-cid-gcn2mc3v] {
    grid-template-columns:1fr;
    gap:32px
  }
  .footer__logo[data-astro-cid-gcn2mc3v] {
    height:64px
  }
  .footer__legal[data-astro-cid-gcn2mc3v] {
    margin-top:26px;
    padding-top:18px;
    font-size:11px
  }
}
