/* ==========================================================================
   V17 layer over V11.
   Carries the proven V16 decisions onto the living V11 base:
   Cabinet Grotesk display, benchmark label tracking, one 8px radius on
   controls, no sage-400 text on light grounds, and the survey hero.
   Loaded last; overrides only, no structural styles for V11 sections.
   ========================================================================== */

@font-face{font-family:'Cabinet Grotesk';font-weight:400;font-style:normal;font-display:swap;src:url('./CabinetGrotesk-400.woff2') format('woff2')}
@font-face{font-family:'Cabinet Grotesk';font-weight:500;font-style:normal;font-display:swap;src:url('./CabinetGrotesk-500.woff2') format('woff2')}

/* ---------- display face: the V16 decision, sitewide ---------- */
h1, h2, h3, .font-display{
  font-family:'Cabinet Grotesk','Space Grotesk',Inter,sans-serif !important;
  font-weight:500;
}

/* ---------- controls: one radius, Inter, no shouting ---------- */
a.inline-flex.rounded-full, button.rounded-full{
  border-radius:8px !important;
  font-family:Inter,sans-serif !important;
  text-transform:none !important;
  letter-spacing:.005em !important;
  font-size:.9375rem !important;
}

/* ---------- labels: benchmark tracking cap (.05em, was .1em+) ---------- */
.tracking-widest{letter-spacing:.05em !important}

/* ---------- contrast: sage-400 never carries text on light grounds ---------- */
.bg-sage-50 .text-sage-400, .bg-white .text-sage-400{color:#5F6B5E !important}

/* ---------- drawn check, replaces U+2713 glyphs ---------- */
.v17-check{
  display:inline-block;width:9px;height:6px;margin-right:.45rem;
  border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg) translateY(-1px);
}

/* ---------- the survey hero ---------- */
.v17-hero{isolation:isolate}
.v17-scene{z-index:0}
.v17-scene picture img{z-index:0}
.v17-scene canvas{z-index:1}
.v17-hero .relative.z-10{z-index:10}
.v17-hero .hero-rail{z-index:20}

/* copy stays readable over the scene at every crop:
   desktop, a whisper of ground behind the copy column only;
   mobile, a real veil because the copy sits over terrain */
.v17-hero-veil{
  z-index:2;
  background:linear-gradient(105deg,
    rgba(248,249,245,.42) 0%,
    rgba(248,249,245,.18) 34%,
    rgba(248,249,245,0) 55%);
}
@media (max-width:767px){
  .v17-hero-veil{
    background:linear-gradient(180deg,
      rgba(248,249,245,.82) 0%,
      rgba(248,249,245,.5) 42%,
      rgba(248,249,245,0) 68%);
  }
}

/* ---------- contrast: dark-context fixes caught by the pixel harness ---------- */
/* sage-400 measured 4.00:1 on the dark panels; lift one step */
.bg-sage-900 .text-sage-400, [class*="bg-sage-9"] .text-sage-400{color:#A9B5A6 !important}
/* dark-photo sections: quiet labels get the on-deep quiet tone */
.img-break .text-sage-400, .img-break .font-mono.text-xs{color:#C6D0C3 !important}
/* the hero rail quote cell sat at 55% over the bright fog basin: 1.15:1 measured */
.v17-hero .hero-rail > div:last-child{background:rgba(24,33,25,.82) !important}
/* small dark-panel body copy measured 4.00:1 */
.bg-sage-900 .text-sage-300{color:#C6D0C3 !important}
/* sage-500 body copy measured 4.48:1 on the light ground; one step darker */
.text-sage-500{color:#5D6A5C !important}

/* ---------- breathing room: hero copy clears the nav (Greg, 8/18) ---------- */
.v17-hero .relative.z-10{padding-top:clamp(3.5rem,7vh,6rem)}
@media (max-width:767px){.v17-hero .relative.z-10{padding-top:2.5rem}}

/* ---------- the Mile High loader ---------- */
.preloader__logo{animation:none;opacity:.85;width:34px;height:34px}
.preloader__inner{gap:1.1rem}
.preloader__elev{display:flex;align-items:baseline;gap:.5rem}
.preloader__counter{
  font-family:'Cabinet Grotesk',Inter,sans-serif !important;
  font-size:3.4rem !important;font-weight:500;letter-spacing:-.02em !important;
  color:#1D2B1E !important;text-transform:none !important;
  font-variant-numeric:tabular-nums;min-width:5.2ch;text-align:right;
}
.preloader__ft{
  font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.18em;
  color:#4A554A;text-transform:uppercase;padding-bottom:.55rem;
}
.preloader__rule{width:min(320px,60vw);height:1px;background:rgba(29,43,30,.2)}
.preloader__place{
  font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(29,43,30,.4);
}
/* exit: fog clearing, not a fade — the scene's contour scan runs behind it */
.preloader{transition:opacity .9s cubic-bezier(.22,.61,.36,1),filter .9s cubic-bezier(.22,.61,.36,1),transform .9s cubic-bezier(.22,.61,.36,1)}
.preloader.is-done{opacity:0;filter:blur(10px);transform:translateY(-1.5%)}
@media (prefers-reduced-motion:reduce){.preloader.is-done{filter:none;transform:none}}

/* system-map labels ran Space Grotesk (now unloaded); the map is data, data is mono */
.sm-label{font-family:'JetBrains Mono',monospace !important;font-weight:400;letter-spacing:.04em}
/* light panels (white cards) also never carry sage-400 text */
[class*="bg-white"] .text-sage-400{color:#5F6B5E !important}
