/* ==========================================================================
   SPATIAL BIM — Design System
   Blueprint / drafting-vellum aesthetic, built from the real material world
   of BIM/VDC coordination: title blocks, sheet numbers, scan targets.
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@600;700;800;900&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --navy:        #0B1420;
  --navy-2:      #10192A;
  --navy-3:      #14233A;
  --vellum:      #F2F5F9;
  --vellum-dim:  #A9B6C7;
  --vellum-mute: #6C7A8F;
  --orange:      #1868B9;
  --orange-2:    #3D98E0;
  --cyan:        #6FE3D9;
  --line:        rgba(242,245,249,0.10);
  --line-strong: rgba(242,245,249,0.22);

  --font-display: 'Big Shoulders Display', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;

  --container: 1180px;
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--navy);
  color: var(--vellum);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration: none; }
ul{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0; font-family: var(--font-display); font-weight:800; letter-spacing:.01em; text-transform: uppercase; }
p{ margin:0; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; }
}

:focus-visible{
  outline: 2px solid var(--orange-2);
  outline-offset: 3px;
}

/* ---------- Blueprint grid background ---------- */
.blueprint-bg{
  position:relative;
  background-image:
    linear-gradient(rgba(237,231,217,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(237,231,217,0.05) 1px, transparent 1px);
  background-size: 40px 40px;
  background-position: -1px -1px;
}

.container{
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 28px;
}

/* ---------- Scan-target signature mark ---------- */
.scan-target{
  width: 18px; height: 18px;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  position: relative;
  flex-shrink: 0;
}
.scan-target::before,.scan-target::after{
  content:"";
  position:absolute;
  background: currentColor;
}
.scan-target::before{ top:50%; left:-5px; right:-5px; height:1.5px; transform:translateY(-50%); }
.scan-target::after{ left:50%; top:-5px; bottom:-5px; width:1.5px; transform:translateX(-50%); }

.corner-mark{
  position:absolute;
  width: 22px; height:22px;
  color: var(--orange);
  opacity:.85;
}
.corner-mark.tl{ top:-11px; left:-11px; }
.corner-mark.tr{ top:-11px; right:-11px; }
.corner-mark.bl{ bottom:-11px; left:-11px; }
.corner-mark.br{ bottom:-11px; right:-11px; }

/* ---------- Sheet / title-block label ---------- */
.sheet-label{
  display:inline-flex;
  align-items:center;
  gap:.6rem;
  border: 1px solid var(--line-strong);
  padding: .5rem .9rem;
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--orange-2);
  background: rgba(24,104,185,0.06);
}
.sheet-label .scan-target{ width:12px; height:12px; }

/* ---------- Header / Nav ---------- */
.site-header{
  position: sticky; top:0; z-index: 100;
  background: rgba(14,27,43,0.92);
  border-bottom: 1px solid var(--line);
}
.site-header::before{
  content:"";
  position:absolute; inset:0;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  z-index:-1;
  pointer-events:none;
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding: 16px 28px;
  max-width: var(--container);
  margin: 0 auto;
}
.logo{
  display:flex; align-items:center; gap:.7rem;
  font-family: var(--font-display);
  font-weight:800;
  font-size: 1.35rem;
  letter-spacing:.02em;
  color: var(--vellum);
}
.logo .logo-icon{ height: 38px; width:auto; display:block; flex-shrink:0; }
.logo .scan-target{ color: var(--orange); width:22px; height:22px; }
.logo .logo-sub{
  display:block;
  font-family: var(--font-mono);
  font-size:.58rem;
  letter-spacing:.22em;
  color: var(--vellum-mute);
  text-transform: uppercase;
  font-weight:400;
  margin-top:-2px;
}

.nav-links{
  display:flex; align-items:center; gap: 2.1rem;
}
.nav-links a{
  font-family: var(--font-mono);
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color: var(--vellum-dim);
  position:relative;
  padding-bottom:4px;
  transition: color .2s ease;
}
.nav-links a:hover{ color: var(--vellum); }
.nav-links a::after{
  content:"";
  position:absolute; left:0; right:100%; bottom:0;
  height:2px; background: var(--orange);
  transition: right .25s ease;
}
.nav-links a:hover::after{ right:0; }
.nav-links a.active{ color: var(--orange-2); }
.nav-links a.active::after{ right:0; background: var(--orange-2); }

.nav-cta{
  font-family: var(--font-mono) !important;
  border:1px solid var(--orange) !important;
  padding: .55rem 1.1rem;
  color: var(--orange-2) !important;
}
.nav-cta:hover{ background: var(--orange); color: var(--navy) !important; }
.nav-cta::after{ display:none; }

.nav-toggle{
  display:none;
  background:none; border:1px solid var(--line-strong);
  width:42px; height:42px;
  color: var(--vellum);
  cursor:pointer;
  align-items:center; justify-content:center;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:""; display:block; width:18px; height:2px; background:currentColor;
  position:relative; transition: all .2s ease;
}
.nav-toggle span::before{ position:absolute; top:-6px; }
.nav-toggle span::after{ position:absolute; top:6px; }

@media (max-width: 900px){
  .nav-links{
    position:fixed; top:73px; left:0; right:0; bottom:0;
    background: var(--navy);
    flex-direction:column;
    align-items:flex-start;
    padding: 2rem 28px;
    gap: 1.6rem;
    transform: translateX(100%);
    transition: transform .3s ease;
    overflow-y:auto;
  }
  .nav-links.open{ transform: translateX(0); }
  .nav-toggle{ display:flex; }
}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family: var(--font-mono);
  font-size:.8rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding: .95rem 1.6rem;
  border: 1px solid transparent;
  cursor:pointer;
  transition: all .2s ease;
}
.btn-primary{
  background: var(--orange);
  color: var(--navy);
  font-weight:600;
}
.btn-primary:hover{ background: var(--orange-2); transform: translateY(-1px); }
.btn-ghost{
  border-color: var(--line-strong);
  color: var(--vellum);
}
.btn-ghost:hover{ border-color: var(--vellum); background: rgba(237,231,217,0.05); }

/* ---------- Hero ---------- */
.hero{
  position:relative;
  padding: 108px 0 96px;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(ellipse 900px 500px at 80% 0%, rgba(24,104,185,0.12), transparent 60%);
  pointer-events:none;
}
.hero-inner{ position:relative; max-width: 760px; }
.eyebrow{
  font-family: var(--font-mono);
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color: var(--orange-2);
  display:flex; align-items:center; gap:.6rem;
  margin-bottom: 1.6rem;
}
.eyebrow .rule{ width:32px; height:1px; background: var(--orange-2); }
.hero h1{
  font-size: clamp(2.6rem, 6vw, 4.6rem);
  line-height: .98;
  color: var(--vellum);
  margin-bottom: 1.6rem;
}
.hero h1 em{ font-style:normal; color: var(--orange-2); }
.hero p.lede{
  font-size: 1.15rem;
  color: var(--vellum-dim);
  max-width: 560px;
  margin-bottom: 2.4rem;
}
.hero-actions{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom: 3.2rem; }

.hero-frame{
  position:relative;
  border: 1px solid var(--line-strong);
  padding: 1px;
  margin-top: 1rem;
}
.hero-frame-inner{
  position:relative;
  aspect-ratio: 21/7;
  background:
    repeating-linear-gradient(135deg, rgba(95,211,196,0.05) 0 2px, transparent 2px 14px),
    var(--navy-2);
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.hero-frame-photo{ padding:0; }
.hero-frame-photo img{ width:100%; height:100%; object-fit:cover; object-position: center; display:block; }
@media (max-width: 700px){
  .hero-frame-inner.hero-frame-photo{ aspect-ratio: auto; }
  .hero-frame-photo img{ height:auto; object-fit:contain; }
}
.hero-frame-label{
  font-family: var(--font-mono);
  font-size:.72rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color: var(--vellum-mute);
  display:flex; align-items:center; gap:.8rem;
}
.hero-frame-label .scan-target{ color: var(--cyan); }

/* ---------- Sections ---------- */
.section{ padding: 96px 0; border-top: 1px solid var(--line); }
.section-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  gap: 2rem; margin-bottom: 3.2rem; flex-wrap:wrap;
}
.section-head h2{
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  color: var(--vellum);
  margin-top: 1rem;
  max-width: 620px;
}
.section-head .lede{ color: var(--vellum-dim); max-width: 420px; }

/* ---------- Cards ---------- */
.card-grid{
  display:grid; grid-template-columns: repeat(3,1fr); gap: 1.5px;
  background: var(--line);
  border: 1px solid var(--line);
}
.card-grid.cols-2{ grid-template-columns: repeat(2,1fr); }
.card-grid.cols-4{ grid-template-columns: repeat(4,1fr); }
@media (max-width: 900px){
  .card-grid, .card-grid.cols-2, .card-grid.cols-4{ grid-template-columns: 1fr; }
}

.card{
  background: var(--navy);
  padding: 2.4rem 2rem;
  position:relative;
  transition: background .25s ease;
}
.card:hover{ background: var(--navy-2); }
.card .num{
  font-family: var(--font-mono);
  color: var(--vellum-mute);
  font-size:.78rem;
  letter-spacing:.1em;
  margin-bottom: 1.6rem;
  display:block;
}
.card h3{
  font-size: 1.4rem;
  color: var(--vellum);
  margin-bottom: .9rem;
  line-height:1.15;
}
.card p{ color: var(--vellum-dim); font-size:.96rem; }
.card-icon{
  width:46px; height:46px;
  border: 1px solid var(--line-strong);
  display:flex; align-items:center; justify-content:center;
  color: var(--orange-2);
  margin-bottom: 1.6rem;
}

.card-link{
  display:inline-flex; align-items:center; gap:.5rem;
  font-family: var(--font-mono); font-size:.76rem;
  letter-spacing:.1em; text-transform:uppercase;
  color: var(--orange-2); margin-top: 1.4rem;
}

/* ---------- Stats strip ---------- */
.stats-strip{
  display:grid; grid-template-columns: repeat(4,1fr);
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.stat{
  padding: 2.6rem 1.5rem;
  text-align:center;
  border-right: 1px solid var(--line);
}
.stat:last-child{ border-right:none; }
.stat .stat-num{
  font-family: var(--font-display);
  font-size: 2.6rem;
  color: var(--orange-2);
  font-weight:800;
  line-height:1;
}
.stat .stat-label{
  font-family: var(--font-mono);
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color: var(--vellum-mute);
  margin-top:.7rem;
}
@media (max-width: 800px){
  .stats-strip{ grid-template-columns: repeat(2,1fr); }
  .stat{ border-bottom: 1px solid var(--line); }
}

/* ---------- Project sheet cards ---------- */
.project-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 1.5px; background: var(--line); border:1px solid var(--line); }
@media (max-width:900px){ .project-grid{ grid-template-columns: 1fr; } }

.project-sheet{ background: var(--navy); }
.project-photo{
  aspect-ratio: 16/9;
  background:
    repeating-linear-gradient(45deg, rgba(237,231,217,0.04) 0 2px, transparent 2px 16px),
    var(--navy-2);
  border-bottom: 1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  color: var(--vellum-mute);
  font-family: var(--font-mono);
  font-size:.72rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  gap:.7rem;
}
.project-photo .scan-target{ color: var(--vellum-mute); }
.project-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.project-info{ padding: 1.8rem 2rem 2.2rem; }
.project-info h3{ font-size: 1.35rem; color: var(--vellum); margin-bottom: 1.1rem; line-height:1.2; }
.project-meta{ display:flex; flex-direction:column; gap:.5rem; margin-bottom: 1rem; }
.project-meta-row{ display:flex; gap:.7rem; font-size:.88rem; color: var(--vellum-dim); }
.project-meta-row .key{ font-family: var(--font-mono); color: var(--vellum-mute); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; min-width: 110px; }
.project-info p.note{ color: var(--vellum-dim); font-size:.92rem; margin-top: 1rem; padding-top:1rem; border-top:1px solid var(--line); }

/* ---------- Team ---------- */
.team-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 1.5px; background: var(--line); border:1px solid var(--line); }
@media (max-width:900px){ .team-grid{ grid-template-columns: 1fr; } }
.team-card{ background: var(--navy); display:flex; flex-direction:column; }
.team-photo{
  position:relative;
  width:100%;
  padding-top:75%; /* 4:3 ratio, computed from width only */
  height:0;
  overflow:hidden;
  background:
    repeating-linear-gradient(90deg, rgba(237,231,217,0.05) 0 1px, transparent 1px 22px),
    var(--navy-2);
  border-bottom: 1px solid var(--line);
}
.team-photo .initials{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  font-family: var(--font-display);
  font-size: 3rem; font-weight:800;
  color: var(--vellum-mute);
  opacity:.5;
}
.team-photo img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  object-position: center 18%;
  display:block;
}
.team-body{ padding: 1.8rem 2rem 2.2rem; flex:1; display:flex; flex-direction:column; }
.team-body h3{ font-size: 1.3rem; color: var(--vellum); margin-bottom:.3rem; }
.team-role{ font-family: var(--font-mono); font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color: var(--orange-2); margin-bottom: 1.2rem; }
.team-bio{ color: var(--vellum-dim); font-size:.94rem; }
.bio-short{ display:block; }
.bio-full{ display:none; }
.team-card.expanded .bio-short{ display:none; }
.team-card.expanded .bio-full{ display:block; }
.bio-toggle{
  align-self:flex-start;
  margin-top: 1.2rem;
  background:none; border:none; cursor:pointer;
  font-family: var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase;
  color: var(--vellum-mute); border-bottom: 1px dashed var(--vellum-mute);
  padding: 0 0 2px;
}
.bio-toggle:hover{ color: var(--orange-2); border-color: var(--orange-2); }

/* ---------- Affiliations / logo strip ---------- */
.strip{
  display:flex; flex-wrap:wrap; gap: 2.4rem 3rem;
  align-items:center; justify-content:center;
  padding: 2.4rem 0;
}
.strip-item{
  font-family: var(--font-mono);
  font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  color: var(--vellum-mute);
  border: 1px solid var(--line);
  padding: .8rem 1.4rem;
}
.strip-logo{
  background: #fff;
  border-radius: 6px;
  padding: .55rem 1.1rem;
  display:flex; align-items:center;
  height: 52px;
  box-sizing: border-box;
}
.strip-logo img{ height:100%; width:auto; display:block; }

/* ---------- CTA band ---------- */
.cta-band{
  background: var(--navy-3);
  padding: 5.2rem 0;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.cta-band::before{
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(ellipse 700px 300px at 50% 0%, rgba(24,104,185,0.14), transparent 65%);
}
.cta-band-inner{ position:relative; }
.cta-band h2{ font-size: clamp(1.9rem,4vw,3rem); color: var(--vellum); margin-bottom: 1.2rem; }
.cta-band p{ color: var(--vellum-dim); max-width: 500px; margin: 0 auto 2.2rem; }
.cta-band .btn-row{ display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }

/* ---------- Footer ---------- */
.site-footer{ border-top:1px solid var(--line); padding: 3.6rem 0 2rem; }
.footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.4rem; margin-bottom: 3rem; }
@media (max-width: 800px){ .footer-grid{ grid-template-columns: 1fr 1fr; } }
.footer-col h4{
  font-family: var(--font-mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
  color: var(--vellum-mute); margin-bottom: 1.2rem; font-weight:600;
}
.footer-col ul{ display:flex; flex-direction:column; gap:.7rem; }
.footer-col a, .footer-col p{ color: var(--vellum-dim); font-size:.92rem; }
.footer-col a:hover{ color: var(--orange-2); }
.footer-bottom{
  display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem;
  padding-top: 2rem; border-top: 1px solid var(--line);
  font-family: var(--font-mono); font-size:.72rem; letter-spacing:.05em; color: var(--vellum-mute);
}
.footer-social{ display:flex; gap:1.2rem; }
.footer-social a{ color: var(--vellum-mute); }
.footer-social a:hover{ color: var(--orange-2); }

/* ---------- Page hero (interior pages) ---------- */
.page-hero{ padding: 76px 0 64px; }
.page-hero h1{ font-size: clamp(2.2rem,5vw,3.4rem); color: var(--vellum); margin: 1.2rem 0 1.2rem; }
.page-hero p.lede{ color: var(--vellum-dim); max-width: 560px; font-size: 1.05rem; }

/* ---------- Careers ---------- */
.role-card{
  border: 1px solid var(--line-strong);
  padding: 2rem 2.2rem;
  display:flex; justify-content:space-between; align-items:center; gap:2rem;
  flex-wrap:wrap;
  margin-bottom: 1.5px;
}
.role-card h3{ font-size:1.25rem; color:var(--vellum); margin-bottom:.4rem; }
.role-card .role-meta{ font-family: var(--font-mono); font-size:.75rem; color: var(--vellum-mute); letter-spacing:.06em; text-transform:uppercase; }
.value-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1.5px; background: var(--line); border:1px solid var(--line); }
@media (max-width:900px){ .value-grid{ grid-template-columns: 1fr; } }

/* ---------- Job posting template ---------- */
.job-meta-row{
  display:flex; flex-wrap:wrap; gap: .8rem 2.2rem;
  margin: 1.6rem 0 0;
}
.job-meta-item{
  display:flex; align-items:center; gap:.55rem;
  font-family: var(--font-mono);
  font-size:.8rem; letter-spacing:.06em; text-transform:uppercase;
  color: var(--vellum-dim);
}
.job-meta-item .scan-target{ color: var(--orange-2); width:14px; height:14px; }

.job-layout{
  display:grid; grid-template-columns: 1fr 320px; gap: 3rem;
  align-items:start;
}
@media (max-width: 900px){ .job-layout{ grid-template-columns: 1fr; } }

.job-body h2{
  font-size: 1.4rem; color: var(--vellum);
  margin: 2.6rem 0 1.2rem;
}
.job-body h2:first-child{ margin-top:0; }
.job-body p{ color: var(--vellum-dim); font-size:1rem; margin-bottom:1rem; }

.job-checklist{ display:flex; flex-direction:column; gap:.9rem; }
.job-checklist li{
  display:flex; align-items:flex-start; gap:.8rem;
  color: var(--vellum-dim); font-size:.98rem;
  list-style:none;
}
.job-checklist .scan-target{ color: var(--orange-2); width:14px; height:14px; margin-top:.3rem; flex-shrink:0; }

.job-apply-card{
  position: sticky; top: 100px;
  border: 1px solid var(--line-strong);
  padding: 2rem;
  background: var(--navy-2);
}
.job-apply-card h3{ font-size:1.1rem; color:var(--vellum); margin-bottom:.5rem; }
.job-apply-card p{ color:var(--vellum-dim); font-size:.9rem; margin-bottom:1.5rem; }
.job-apply-card .btn{ width:100%; justify-content:center; margin-bottom:.8rem; }
.job-apply-facts{ margin-top:1.6rem; padding-top:1.6rem; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:.9rem; }
.job-apply-facts .fact-label{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--vellum-mute); margin-bottom:.25rem; }
.job-apply-facts .fact-value{ color:var(--vellum); font-size:.92rem; }

/* ---------- Contact ---------- */
.contact-layout{ display:grid; grid-template-columns: .9fr 1.1fr; gap: 3rem; }
@media (max-width: 900px){ .contact-layout{ grid-template-columns: 1fr; } }
.contact-detail{ display:flex; gap:1rem; padding: 1.4rem 0; border-bottom: 1px solid var(--line); }
.contact-detail:first-child{ padding-top:0; }
.contact-detail .icon{ color: var(--orange-2); flex-shrink:0; margin-top:.2rem; }
.contact-detail .label{ font-family: var(--font-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color: var(--vellum-mute); margin-bottom:.3rem; }
.contact-detail a, .contact-detail p{ color: var(--vellum); font-size:1rem; }

.form-group{ margin-bottom: 1.4rem; }
.form-group label{ display:block; font-family: var(--font-mono); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color: var(--vellum-mute); margin-bottom:.6rem; }
.form-group input, .form-group textarea, .form-group select{
  width:100%; background: var(--navy-2); border:1px solid var(--line-strong);
  color: var(--vellum); padding: .85rem 1rem; font-family: var(--font-body); font-size:.95rem;
}
.form-group input:focus, .form-group textarea:focus{ border-color: var(--orange-2); outline:none; }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; }
@media (max-width:600px){ .form-row{ grid-template-columns: 1fr; } }

.map-frame{
  border: 1px solid var(--line-strong);
  aspect-ratio: 16/9;
  background:
    repeating-linear-gradient(0deg, rgba(237,231,217,0.05) 0 1px, transparent 1px 24px),
    repeating-linear-gradient(90deg, rgba(237,231,217,0.05) 0 1px, transparent 1px 24px),
    var(--navy-2);
  display:flex; align-items:center; justify-content:center; gap:.8rem;
  color: var(--vellum-mute); font-family: var(--font-mono); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase;
  margin-top: 2.4rem;
}
.map-frame .scan-target{ color: var(--orange); }

/* ---------- Utility ---------- */
.mt-lg{ margin-top: 3rem; }
.text-center{ text-align:center; }
