/* ─── Space Nerd Systems ──────────────────────────────────────────────
   Design: "Systems map, on paper" (preview concept I).
   Cool paper, navy ink, logo blue. Shared by index.html and about.html.
   ------------------------------------------------------------------ */

:root{
  --paper:#f7f9fc;
  --card:#ffffff;
  --line:#d3dae6;
  --line-2:#b9c4d6;
  --line-soft:#e4e9f1;

  --navy:#0d1c36;
  --navy-2:#12294d;

  --ink:#1b2740;
  --dim:#4a5772;
  --faint:#7a869e;

  --blue:#1f6fd0;
  --blue-hover:#1a5cb0;
  --blue-lt:#4d9dff;
  --blue-wash:#e8f0fc;

  --sans:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{
  color-scheme:light;
  font-size:16px;
  scroll-behavior:smooth;
}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  line-height:1.68;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}

a{color:var(--blue);text-decoration:none;transition:color .2s}
a:hover{color:var(--navy)}

img{max-width:100%}

.wrap{width:min(1060px,92%);margin-inline:auto}

.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;
}

/* ─── Header ──────────────────────────────────────────────────────── */
.site-header{padding:18px 0;border-bottom:1px solid var(--line)}
.header-inner{
  width:min(1060px,92%);margin-inline:auto;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.header-logo-link{display:inline-flex;align-items:center;line-height:0}
.logo-main{
  display:block;height:44px;width:auto;object-fit:contain;
}
/* logo-main-dark-transparent.png is a genuinely transparent PNG, derived from
   logo-main-large-transparent.png by inverting only the neutral ink so the
   wordmark reads on paper while the brand blue is preserved. No blend mode is
   needed. The old mono JPEG needed mix-blend-mode:multiply to hide its white
   box, and JPEG artefacts meant that never quite worked. */
.header-tag{
  font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);
}
.header-nav{display:flex;align-items:center;gap:20px}
.header-nav a{font:600 14px/1 var(--sans);color:var(--navy-2)}
.header-nav a:hover{color:var(--blue)}
@media(max-width:600px){
  .header-tag{display:none}
  .logo-main{height:38px}
}

/* ─── Buttons ─────────────────────────────────────────────────────── */
.btn,.cta-btn{
  display:inline-block;padding:12px 22px;border-radius:8px;
  font:600 14px/1 var(--sans);
}
.btn.primary,.cta-btn{background:var(--blue);color:#fff}
.btn.primary:hover,.cta-btn:hover{background:var(--blue-hover);color:#fff}
.btn.ghost{border:1px solid var(--line-2);color:var(--navy)}
.btn.ghost:hover{border-color:var(--blue);color:var(--blue)}

/* ─── Home hero ───────────────────────────────────────────────────── */
.hero{padding:60px 0 20px;text-align:center}
h1{
  font-size:clamp(1.9rem,4.8vw,3rem);line-height:1.12;letter-spacing:-.02em;
  font-weight:700;color:var(--navy);
}
.hero h1{max-width:20ch;margin-inline:auto}
.hero h1 span{color:var(--blue)}
.lede{margin:20px auto 0;max-width:60ch;color:var(--dim);font-size:clamp(1rem,1.6vw,1.1rem)}
.actions{margin-top:40px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

/* ─── The engagement diagram ──────────────────────────────────────── */
.diagram{margin:44px auto 0;max-width:900px}
.diagram svg{width:100%;height:auto;display:block;overflow:visible}
.d-node{fill:var(--card);stroke:var(--line-2);stroke-width:1.5}
.d-hub{fill:none;stroke:var(--blue);stroke-width:2}
.d-hub-in{fill:none;stroke:var(--line-2);stroke-width:1;stroke-dasharray:4 5}
.d-path{fill:none;stroke:var(--line-2);stroke-width:1.5}
.d-path-hot{fill:none;stroke:var(--blue);stroke-width:2}
.d-dot{fill:var(--blue)}
.d-label{fill:var(--dim);font:500 12px var(--sans)}
.d-label-hub{fill:var(--navy);font:600 12.5px var(--sans)}
.d-cap{fill:var(--faint);font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.d-star{fill:var(--blue)}
@media(max-width:640px){
  .d-label,.d-label-hub{font-size:13px}
  .d-cap{font-size:10.5px}
}

/* ─── Sections ────────────────────────────────────────────────────── */
/* .wrap on <main> is what centres a page. These also self-centre so a page
   that forgets .wrap still lays out correctly instead of running edge to edge. */
.section{
  padding:64px 0;border-top:1px solid var(--line);margin-top:60px;
  width:min(1060px,100%);margin-inline:auto;
}
.sec-label{
  font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--blue);margin-bottom:12px;
}
h2{
  font-size:clamp(1.3rem,2.6vw,1.7rem);font-weight:650;letter-spacing:-.01em;
  color:var(--navy);margin-bottom:26px;
}

/* ─── Capability cards (home) ─────────────────────────────────────── */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px}
.card:hover{border-color:var(--blue)}
.card h3{font-size:1rem;font-weight:650;color:var(--navy-2);margin-bottom:7px}
.card p{color:var(--dim);font-size:.9rem;line-height:1.6}

/* ─── About-the-practice split (home) ─────────────────────────────── */
.about{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.about p{color:var(--dim);max-width:60ch}
.about p+p{margin-top:14px}
.about-link{font-weight:600}
@media(max-width:820px){.about{grid-template-columns:1fr;gap:26px}}

.stat{border:1px solid var(--line);border-radius:12px;padding:20px;background:var(--card);margin-bottom:12px}
.stat b{display:block;font-size:1.5rem;font-weight:700;color:var(--navy);line-height:1.2}
.stat span{
  font:600 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--faint);
}

/* ─── Contact ─────────────────────────────────────────────────────── */
.contact{text-align:center}
.contact p,.contact-note{color:var(--dim);max-width:56ch;margin:0 auto 26px}
.mail{
  font:600 clamp(1.05rem,2.6vw,1.4rem)/1 var(--mono);color:var(--blue);
  border-bottom:1px solid var(--line-2);padding-bottom:6px;
}
.mail:hover{color:var(--navy);border-color:var(--blue)}
.contact-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}

.cta-btn--linkedin{
  background:var(--card);color:var(--navy-2);border:1px solid var(--line-2);
  display:inline-flex;align-items:center;gap:8px;
}
.cta-btn--linkedin:hover{background:var(--card);color:var(--blue);border-color:var(--blue)}
.linkedin-icon{display:block}

/* ─── About page ──────────────────────────────────────────────────── */
.page-hero{padding:56px 0 8px;width:min(1060px,100%);margin-inline:auto}
.page-hero h1{max-width:none}
.tagline{
  margin-top:12px;color:var(--faint);
  font:600 11.5px/1.6 var(--mono);letter-spacing:.13em;text-transform:uppercase;
}
.background-body p{color:var(--dim);max-width:64ch}
.background-body p+p{margin-top:15px}

.exp-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.exp-list li{padding:15px 0;border-top:1px solid var(--line-soft)}
.exp-list strong{display:block;font-size:1rem;font-weight:650;color:var(--navy-2);margin-bottom:3px}
.exp-list span{display:block;font-size:.9rem;color:var(--dim);line-height:1.6}
@media(max-width:700px){.exp-list{grid-template-columns:1fr}}

.credentials{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:14px}
.credential{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:22px}
.credential strong{display:block;font-size:1rem;font-weight:650;color:var(--navy-2);margin-bottom:7px}
.credential span{display:block;color:var(--dim);font-size:.9rem;line-height:1.6}

/* ─── Footer ──────────────────────────────────────────────────────── */
.site-footer{
  padding:34px 0 48px;border-top:1px solid var(--line);margin-top:60px;
  color:var(--faint);font-size:.83rem;
}
.footer-inner{
  width:min(1060px,92%);margin-inline:auto;
  display:flex;flex-wrap:wrap;gap:10px 26px;justify-content:space-between;
}
.footer-inner a{color:var(--navy-2)}
.footer-inner a:hover{color:var(--blue)}
