/* ---- Shared design system: tokens, reset, header, footer ---- */
:root{
  --paper:#FFFFFF;
  --surface:#FFFFFF;
  --fill:#F4F4F6;
  --ink:#0B0C0F;
  --ink-soft:#585A63;
  --ink-faint:#8B8D96;
  --line:#E4E4E8;
  --accent:#0B0C0F;
  --accent-strong:#26272B;
  --on-accent:#FFFFFF;
  --accent-wash:#F0F0F2;
  --focus:#0B0C0F;

  --font-display:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-body:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --sp-1:.5rem; --sp-2:1rem; --sp-3:1.5rem; --sp-4:2rem;
  --sp-5:3rem; --sp-6:4rem; --sp-7:6rem; --sp-8:8rem; --sp-9:10rem;

  --radius:16px;
  --radius-sm:10px;
  --max:1200px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper:#0A0A0C; --surface:#0A0A0C; --fill:#1B1C20; --ink:#F5F5F7; --ink-soft:#A6A8B0;
    --ink-faint:#6E7078; --line:#2A2B30; --accent:#F5F5F7; --accent-strong:#D8D9DE;
    --on-accent:#0A0A0C; --accent-wash:#1E1F24; --focus:#F5F5F7;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0A0A0C; --surface:#0A0A0C; --fill:#1B1C20; --ink:#F5F5F7; --ink-soft:#A6A8B0;
  --ink-faint:#6E7078; --line:#2A2B30; --accent:#F5F5F7; --accent-strong:#D8D9DE;
  --on-accent:#0A0A0C; --accent-wash:#1E1F24; --focus:#F5F5F7;
  color-scheme: dark;
}

*{box-sizing:border-box;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--font-body); font-size:16px; line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%;}
h1,h2,h3{font-family:var(--font-display); margin:0; text-wrap:balance; font-weight:600;}
p{margin:0;}
a{color:inherit;}
::selection{background:var(--accent); color:var(--on-accent);}
:focus-visible{outline:2px solid var(--focus); outline-offset:3px; border-radius:2px;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}
html{scroll-behavior:smooth;}

.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--accent); color:var(--on-accent); padding:.75rem 1.25rem;
  font-family:var(--font-mono); font-size:.85rem; z-index:100; border-radius:0 0 6px 0;
}
.skip-link:focus{left:0; top:0;}

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

.wrap{max-width:var(--max); margin:0 auto; padding-inline:var(--sp-4);}
@media (max-width:640px){ .wrap{padding-inline:var(--sp-3);} }

.eyebrow{
  font-family:var(--font-mono); font-size:.75rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-faint); display:block; margin-bottom:var(--sp-2);
}

/* ---- Header ---- */
header.site{
  position:sticky; top:0; z-index:40; background:color-mix(in oklab, var(--paper) 88%, transparent);
  backdrop-filter:blur(10px); border-bottom:1px solid var(--line);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  height:72px;
}
.wordmark{
  font-family:var(--font-display); font-weight:700; font-size:1.15rem; text-decoration:none;
  letter-spacing:-.01em;
}
nav.primary ul{list-style:none; display:flex; gap:var(--sp-5); margin:0; padding:0; align-items:center;}
nav.primary a{text-decoration:none; font-size:.95rem; color:var(--ink-soft); transition:color .15s;}
nav.primary a:hover{color:var(--ink);}
.btn{
  display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-body); font-weight:600;
  font-size:.92rem; padding:.7rem 1.4rem; border-radius:999px; text-decoration:none; border:1px solid transparent;
  cursor:pointer; transition:transform .15s ease, background .15s ease, border-color .15s ease;
}
.btn-primary{background:var(--accent); color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-strong);}
.btn-ghost{border-color:var(--line); color:var(--ink);}
.btn-ghost:hover{border-color:var(--ink-soft);}
.btn:active{transform:translateY(1px);}
.header-cta{display:flex; align-items:center; gap:var(--sp-3);}
.menu-toggle{display:none; background:none; border:1px solid var(--line); border-radius:999px; padding:.5rem .65rem; color:var(--ink);}
.mobile-nav{display:none;}

@media (max-width:820px){
  nav.primary{display:none;}
  .menu-toggle{display:inline-flex;}
  .mobile-nav[data-open="true"]{
    display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line);
    padding:var(--sp-2) 0;
  }
  .mobile-nav a{padding:.85rem 0; text-decoration:none; color:var(--ink); font-size:1rem; border-bottom:1px solid var(--line);}
  .mobile-nav a:last-child{border-bottom:none;}
}

/* ---- Footer ---- */
footer.site{padding-block:var(--sp-4); border-top:1px solid var(--line);}
.footer-row{display:flex; justify-content:center; align-items:center; font-size:.85rem; color:var(--ink-faint);}
