:root{
  --ink:#1B2233;
  --ink-2:#232C42;
  --paper:#E9E4D6;
  --paper-2:#F4F0E6;
  --brass:#A9822E;
  --brass-light:#D0A94E;
  --rule:#D6CFB9;
  --rule-dark:rgba(233,228,214,0.16);
  --slate:#5B6478;
  --cream-text:#EFEAE0;
  --max:1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fraunces', serif;
  font-weight:600;
  letter-spacing:-0.01em;
  line-height:1.08;
}
.mono{ font-family:'IBM Plex Mono', monospace; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; display:block; }
.wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }
@media(max-width:640px){ .wrap{ padding:0 20px; } }

/* ---------- eyebrow / labels ---------- */
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  font-weight:500;
}
.eyebrow.on-dark{ color:var(--brass-light); }
.eyebrow.on-paper{ color:var(--brass); }

/* ---------- nav ---------- */
header.site-nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(27,34,51,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--rule-dark);
}
.nav-inner{
  max-width:var(--max); margin:0 auto; padding:0 32px;
  display:flex; align-items:center; justify-content:space-between;
  height:64px;
}
.brandmark{
  font-family:'Fraunces', serif; font-weight:700; font-size:18px;
  color:var(--cream-text); letter-spacing:0.01em;
  display:flex; flex-direction:column; align-items:flex-start; gap:1px;
}
.brandmark .dot{ color:var(--brass-light); }
.brandmark .byline{
  font-family:'IBM Plex Mono', monospace; font-weight:400; font-size:10.5px;
  letter-spacing:0.06em; text-transform:uppercase; color:#8B93A6;
}
nav.links{ display:flex; align-items:center; gap:34px; }
nav.links a{
  font-family:'IBM Plex Mono', monospace;
  font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--cream-text); opacity:0.72;
  transition:opacity .2s ease;
}
nav.links a:hover{ opacity:1; }
.nav-cta{
  border:1px solid var(--brass-light); padding:8px 16px !important;
  border-radius:2px; opacity:1 !important;
}
.nav-cta:hover{ background:var(--brass-light); color:var(--ink) !important; }
.nav-toggle{ display:none; background:none; border:none; cursor:pointer; }
.nav-toggle span{ display:block; width:22px; height:2px; background:var(--cream-text); margin:5px 0; }
@media(max-width:860px){
  nav.links{
    position:absolute; top:64px; left:0; right:0;
    background:var(--ink); flex-direction:column; align-items:flex-start;
    padding:20px 20px 28px; gap:20px; border-bottom:1px solid var(--rule-dark);
    display:none;
  }
  nav.links.open{ display:flex; }
  .nav-toggle{ display:block; }
}

/* ---------- hero ---------- */
.hero{
  background:
    radial-gradient(ellipse 900px 500px at 85% -10%, rgba(208,169,78,0.13), transparent 60%),
    var(--ink);
  color:var(--cream-text);
  padding:158px 0 96px;
  position:relative;
  overflow:hidden;
}
.hero-grid{
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:64px; align-items:start;
}
@media(max-width:920px){ .hero-grid{ grid-template-columns:1fr; gap:56px; } }

.hero h1{
  font-size:clamp(2.5rem, 5vw, 3.85rem);
  color:var(--cream-text);
  margin:20px 0 24px;
}
.hero h1 em{ font-style:italic; color:var(--brass-light); }
.hero p.sub{
  font-size:18px; color:#C7C2B6; max-width:520px; margin-bottom:36px;
}
.hero-ctas{ display:flex; gap:16px; flex-wrap:wrap; }
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
  padding:14px 24px; border-radius:2px; font-weight:500;
  transition:all .2s ease; cursor:pointer; border:1px solid transparent;
}
.btn-primary{ background:var(--brass-light); color:var(--ink); }
.btn-primary:hover{ background:#e2bd63; transform:translateY(-1px); }
.btn-ghost{ border-color:var(--rule-dark); color:var(--cream-text); }
.btn-ghost:hover{ border-color:var(--brass-light); color:var(--brass-light); }

/* ---------- scoreboard (signature element) ---------- */
.scoreboard{
  background:var(--ink-2);
  border:1px solid var(--rule-dark);
  border-radius:3px;
  overflow:hidden;
}
.scoreboard-head{
  display:flex; justify-content:space-between; align-items:center;
  padding:14px 18px; border-bottom:1px solid var(--rule-dark);
}
.scoreboard-head .eyebrow{ color:#8B93A6; }
.scoreboard-head .live{ display:flex; align-items:center; gap:7px; font-family:'IBM Plex Mono',monospace; font-size:11px; color:#7FBF7F; letter-spacing:0.08em;}
.scoreboard-head .live .pip{ width:6px; height:6px; border-radius:50%; background:#7FBF7F; animation:pulse 1.8s infinite; }
@keyframes pulse{ 0%,100%{opacity:1;} 50%{opacity:0.25;} }

.score-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px; border-bottom:1px solid var(--rule-dark);
}
.score-row:last-child{ border-bottom:none; }
.score-co{ }
.score-co .name{ font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--cream-text); letter-spacing:0.02em; }
.score-co .yr{ font-family:'IBM Plex Mono',monospace; font-size:11px; color:#7A8296; margin-top:2px; }
.score-flip{
  font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:26px;
  color:var(--brass-light);
  background:#161C2B;
  border:1px solid var(--rule-dark);
  border-radius:2px;
  padding:6px 12px;
  min-width:88px; text-align:right;
  font-variant-numeric:tabular-nums;
}
.scoreboard-foot{
  padding:12px 18px; font-family:'IBM Plex Mono',monospace; font-size:10.5px;
  color:#7A8296; letter-spacing:0.04em; text-align:right;
  background:rgba(0,0,0,0.15);
}

/* ---------- section scaffolding ---------- */
section{ padding:104px 0; }
@media(max-width:640px){ section{ padding:72px 0; } }
.section-head{ max-width:640px; margin-bottom:56px; }
.section-head .eyebrow{ margin-bottom:14px; display:block; }
.section-head h2{ font-size:clamp(1.9rem,3.4vw,2.6rem); }
.section-head p{ margin-top:16px; color:var(--slate); font-size:16.5px; }

section.on-dark{ background:var(--ink); color:var(--cream-text); }
section.on-dark .section-head p{ color:#B4AFA1; }

/* ---------- stats band ---------- */
.stats-band{ padding:88px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.stats-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--rule);
  border:1px solid var(--rule);
}
@media(max-width:760px){ .stats-grid{ grid-template-columns:repeat(2,1fr); } }
.stat-cell{ background:var(--paper); padding:34px 28px; }
.stat-num{
  font-family:'IBM Plex Mono',monospace; font-weight:600;
  font-size:clamp(1.9rem,3.4vw,2.5rem); color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.stat-num span{ color:var(--brass); }
.stat-label{ margin-top:10px; font-size:14px; color:var(--slate); max-width:220px; }

/* ---------- services ---------- */
.services-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--rule); border:1px solid var(--rule);}
@media(max-width:760px){ .services-grid{ grid-template-columns:1fr; } }
.service-card{ background:var(--paper-2); padding:38px 34px; }
.ticker{
  display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:11.5px;
  letter-spacing:0.08em; color:var(--brass); border:1px solid var(--brass);
  padding:3px 9px; border-radius:2px; margin-bottom:18px;
}
.service-card h3{ font-size:22px; margin-bottom:12px; }
.service-card p{ color:var(--slate); font-size:15px; }

/* ---------- approach ---------- */
.approach-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:36px; }
@media(max-width:920px){ .approach-grid{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .approach-grid{ grid-template-columns:1fr; } }
.approach-col .eyebrow{ margin-bottom:16px; display:block; color:var(--brass-light); }
.approach-col ul{ list-style:none; }
.approach-col li{
  font-size:14.5px; color:#D3CEC1; padding:9px 0; border-top:1px solid var(--rule-dark);
}
.approach-col li:first-of-type{ border-top:none; }

/* ---------- timeline ---------- */
.timeline{ position:relative; }
.tl-item{
  display:grid; grid-template-columns:180px 1fr; gap:30px;
  padding:30px 0; border-top:1px solid var(--rule);
}
.tl-item:last-child{ border-bottom:1px solid var(--rule); }
@media(max-width:700px){ .tl-item{ grid-template-columns:1fr; gap:10px; } }
.tl-date{ font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--brass); white-space:nowrap; padding-top:3px; }
.tl-body h3{ font-size:21px; margin-bottom:2px; }
.tl-body .co{ font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--slate); margin-bottom:12px; }
.tl-body p.desc{ color:var(--slate); font-size:15px; margin-bottom:14px; max-width:640px; }
.tl-highlight{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink);
  background:rgba(169,130,46,0.13); border:1px solid rgba(169,130,46,0.35);
  padding:6px 12px; border-radius:2px;
}
.tl-highlight::before{ content:"★"; color:var(--brass); font-size:11px; }

/* ---------- contact / footer ---------- */
.contact{
  background:var(--ink); color:var(--cream-text);
  padding:110px 0 60px;
  position:relative;
  overflow:hidden;
}
.contact::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(ellipse 700px 400px at 15% 0%, rgba(208,169,78,0.12), transparent 60%);
}
.contact-inner{ position:relative; max-width:920px; }
.contact h2{ font-size:clamp(2.1rem,4.4vw,3.1rem); margin:18px 0 22px; color:var(--cream-text); }
.contact p.lead{ color:#C7C2B6; font-size:17.5px; margin-bottom:40px; max-width:520px; }
.contact-links{ display:flex; flex-wrap:wrap; gap:14px; margin-bottom:70px; }
.clink{
  font-family:'IBM Plex Mono',monospace; font-size:13.5px;
  border:1px solid var(--rule-dark); padding:12px 18px; border-radius:2px;
  display:flex; align-items:center; gap:10px; transition:border-color .2s ease, color .2s ease;
}
.clink:hover{ border-color:var(--brass-light); color:var(--brass-light); }

.contact-body{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; margin-bottom:70px; }
@media(max-width:820px){ .contact-body{ grid-template-columns:1fr; gap:40px; } }
.inquiry-form{ display:flex; flex-direction:column; gap:18px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media(max-width:480px){ .form-row{ grid-template-columns:1fr; } }
.field{ display:flex; flex-direction:column; gap:7px; }
.field label{
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.08em;
  text-transform:uppercase; color:#9BA2B4;
}
.field input, .field textarea, .field select{
  background:var(--ink-2); border:1px solid var(--rule-dark); border-radius:2px;
  color:var(--cream-text); font-family:'IBM Plex Sans',sans-serif; font-size:15px;
  padding:12px 14px; outline:none; transition:border-color .2s ease;
  width:100%;
}
.field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--brass-light); }
.field textarea{ resize:vertical; min-height:110px; font-family:'IBM Plex Sans',sans-serif; }
.field select{ cursor:pointer; }
.form-status{
  font-family:'IBM Plex Mono',monospace; font-size:13px; padding:12px 14px;
  border-radius:2px; display:none;
}
.form-status.show{ display:block; }
.form-status.ok{ background:rgba(127,191,127,0.12); border:1px solid rgba(127,191,127,0.4); color:#9DDB9D; }
.form-status.err{ background:rgba(200,90,90,0.12); border:1px solid rgba(200,90,90,0.4); color:#E6A3A3; }
.contact-links-col{ display:flex; flex-direction:column; gap:14px; }
.contact-links-col .eyebrow{ margin-bottom:6px; }

footer{
  border-top:1px solid var(--rule-dark); padding-top:24px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-family:'IBM Plex Mono',monospace; font-size:12px; color:#767E92;
  position:relative;
}
footer a{ text-decoration:underline; text-decoration-color:var(--rule-dark); }
footer a:hover{ color:var(--brass-light); text-decoration-color:var(--brass-light); }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible{ opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
}

/* ---------- compact contact CTA (blog subpages) ---------- */
.contact.compact{ padding:80px 0 60px; }
.contact.compact .lead{ margin-bottom:36px; }

/* ---------- blog: post grid (index) ---------- */
.post-grid{ display:grid; grid-template-columns:1fr; gap:1px; background:var(--rule); border:1px solid var(--rule); }
.post-card{ display:block; background:var(--paper-2); padding:34px; transition:background .2s ease; }
.post-card:hover{ background:#EFEAD9; }
.post-date{
  display:block; font-family:'IBM Plex Mono',monospace; font-size:12px;
  color:var(--brass); letter-spacing:0.08em; margin-bottom:14px; text-transform:uppercase;
}
.post-card h3{ font-size:24px; margin-bottom:10px; }
.post-card p{ color:var(--slate); font-size:15px; max-width:640px; margin-bottom:16px; }
.post-readmore{
  font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--brass);
}
.post-card:hover .post-readmore{ color:var(--brass-light); }

/* ---------- blog: single post article ---------- */
.post-meta{
  font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:0.06em;
  color:var(--brass-light); margin-bottom:8px; text-transform:uppercase; display:block;
}
.post-article{ max-width:720px; }
.post-article p{ margin-bottom:22px; font-size:16.5px; }
.post-article h2{ font-size:clamp(1.5rem,2.6vw,1.9rem); margin:48px 0 18px; }
.post-article h3{ font-size:1.25rem; margin:36px 0 14px; }
.post-article ul, .post-article ol{ margin:0 0 22px 22px; }
.post-article li{ margin-bottom:10px; font-size:16.5px; }
.post-article strong{ font-weight:600; }
.post-article a{ text-decoration:underline; text-decoration-color:var(--brass); text-underline-offset:2px; }
.post-article a:hover{ color:var(--brass); }
.post-article blockquote{
  border-left:3px solid var(--brass); margin:32px 0; padding:4px 0 4px 22px;
  font-family:'Fraunces',serif; font-size:20px; font-style:italic; color:var(--ink-2);
}
.post-footer-nav{ margin-top:56px; padding-top:24px; border-top:1px solid var(--rule); }
.post-footer-nav a{
  font-family:'IBM Plex Mono',monospace; font-size:13px; text-transform:uppercase;
  letter-spacing:0.06em; color:var(--brass);
}
.post-footer-nav a:hover{ color:var(--brass-light); }
