:root{
  --map-bg:#0B1220;
  --bg:#F7F5F0;
  --header-bg:#EDECEA;
  --surface:#FFFFFF;
  --text-primary:#000000;
  --text-secondary:rgba(0,0,0,0.54);
  --text-muted:rgba(0,0,0,0.4);
  --accent-green:#1F8A5C;
  --timeline-line:#BFE0CB;
  --selection-blue:#3B82F6;
  --field-border:#E4DFD6;
  --field-label:#8A8577;
  --dotted-fill:#EFE9DF;

  --font-display:'Lora', serif;
  --font-body:'Inter', sans-serif;
  --font-mono:'IBM Plex Mono', monospace;
}

/* ---------- Reset & base ---------- */
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text-primary);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--font-display); font-weight:600; letter-spacing:-0.005em; }

.wrap{ max-width:1080px; margin:0 auto; padding:0 28px; }

a:focus-visible, button:focus-visible{ outline:2px solid var(--selection-blue); outline-offset:3px; }

/* ---------- Eyebrow label ---------- */
.eyebrow{
  font-family:var(--font-mono);
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--field-label);
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}
.eyebrow::before{ content:''; width:18px; height:1px; background:var(--field-label); display:inline-block; }
.eyebrow.on-dark{ color:rgba(255,255,255,0.5); }
.eyebrow.on-dark::before{ background:rgba(255,255,255,0.5); }

.nav{
  position:sticky; top:0; z-index:50;
  background:rgba(247,245,240,0.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--field-border);
}
.nav .wrap{ max-width:1080px; display:flex; align-items:center; justify-content:space-between; height:70px; }
.brand{ display:flex; flex-direction:column; line-height:1; max-width: 200px}
.brand-name{ font-family:var(--font-display); font-weight:600; font-size:18px; letter-spacing:-0.005em; }
.brand-sub{ font-family:var(--font-mono); font-size:9px; letter-spacing:0.08em; color:var(--field-label); margin-top:3px; text-transform:uppercase; }

footer{ padding:36px 0 56px; }
footer .wrap{
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:14px;
  border-top:1px solid var(--field-border);
  padding-top:24px;
}
footer .flinks{ display:flex; gap:18px; font-size:12.5px; color:var(--text-muted); }
footer .flinks a{ text-decoration:none; }
footer .flinks a:hover{ color:var(--accent-green); }
footer .fcopy{ font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }