/* ─────────────────────────────────────────────────────────────────────
   NOSHASHI — core page chrome
   ─────────────────────────────────────────────────────────────────────
   Tokens, base type, header, footer and the small shared vocabulary
   (.shell, .panel, .btn, .eyebrow) for the server-rendered pages.

   The landing page carries its own copy of this inline and must not
   link this file: it would be the same rules twice. Both are generated
   from the same token table in DESIGN.md, and both are audited against
   the same contrast floor.

   @font-face lives in fonts.css, which every page links — including
   the landing page, which cannot link this file.
   ───────────────────────────────────────────────────────────────── */
:root{
  --ground:#0B0F14; --surface:#11161D; --elevated:#1C2330;
  --ink:#E6E8EB; --muted:#A3A8B3; --faint:#747C8B; --rule:#2A313C;
  --brand:#3A82F6; --tele:#00E0C6;
  --go:#35D49A; --hold:#F5B942; --nogo:#FF5F6D;
  --shell:min(1180px, 92vw);
  --r:10px;
}
html[data-theme="light"]{
  --ground:#F4F7FA; --surface:#FFFFFF; --elevated:#E8EEF5;
  --ink:#142033; --muted:#4A586B; --faint:#64748B; --rule:#C9D4E0;
  --brand:#145FD1; --tele:#007D70;
  --go:#087A50; --hold:#9A6500; --nogo:#B42332;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--ground);color:var(--ink);line-height:1.55;overflow-x:hidden;
  font-family:"Space Grotesk",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased}
a{color:inherit}
code,.mono{font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-variant-numeric:tabular-nums}
h1,h2,h3{letter-spacing:-.02em;font-weight:700;line-height:1.14}
.shell{width:var(--shell);margin:0 auto}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--faint)}
.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{position:sticky;top:0;z-index:20;backdrop-filter:blur(12px);
  background:color-mix(in srgb,var(--ground) 82%,transparent);border-bottom:1px solid var(--rule)}
.nav{display:flex;align-items:center;justify-content:space-between;height:62px;gap:20px;
  flex-wrap:nowrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:0 0 auto}
.brand span{font-weight:600;letter-spacing:.2em;font-size:14px;white-space:nowrap}
.nav-links{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}
.nav-links a{font-size:11px;color:var(--muted);text-decoration:none;white-space:nowrap;
  transition:color .14s,background .14s,border-color .14s,transform .14s}
.nav-links a:not(.btn){display:inline-flex;align-items:center;gap:7px;min-height:34px;
  padding:7px 10px;border:1px solid transparent;border-radius:var(--r);background:transparent}
.nav-links a:not(.btn)::before{content:"";width:4px;height:4px;border-radius:50%;
  background:var(--rule);transition:background .14s,box-shadow .14s}
.nav-links a:not(.btn):hover,.nav-links a:not(.btn):focus-visible{color:var(--ink);
  background:var(--surface);border-color:var(--rule);transform:translateY(-1px)}
.nav-links a:not(.btn):hover::before,.nav-links a:not(.btn):focus-visible::before{
  background:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 18%,transparent)}
.nav-links a[aria-current="page"]{color:var(--ink)}
.nav-links a[aria-current="page"]::before{background:var(--brand)}
.nav-links a:focus-visible,.theme-toggle:focus-visible{outline:2px solid var(--tele);outline-offset:3px}
.btn{display:inline-flex;align-items:center;gap:9px;background:var(--brand);color:#fff;
  padding:11px 20px;font-size:12px;font-weight:600;letter-spacing:.04em;text-decoration:none;
  border:1px solid var(--brand);border-radius:var(--r);cursor:pointer;
  transition:filter .14s,transform .14s,box-shadow .14s}
.btn:hover,.btn:focus-visible{filter:brightness(1.1);transform:translateY(-1px);
  box-shadow:0 6px 18px color-mix(in srgb,var(--brand) 22%,transparent)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn.ghost:hover{border-color:var(--brand);filter:none}
.btn[disabled]{opacity:.55;cursor:progress;transform:none;box-shadow:none}
.theme-toggle{display:inline-flex;align-items:center;gap:7px;background:transparent;
  color:var(--muted);border:1px solid var(--rule);border-radius:var(--r);padding:8px 11px;
  font:11px "IBM Plex Mono",monospace;cursor:pointer;white-space:nowrap}
.theme-toggle:hover,.theme-toggle:focus-visible{color:var(--ink);border-color:var(--brand)}

main{padding:56px 0 24px}
.page-head{max-width:66ch;margin-bottom:34px}
.page-head h1{font-size:clamp(28px,4vw,42px);margin-top:12px;letter-spacing:-.03em}
.page-head p{color:var(--muted);margin-top:16px;font-size:15px;line-height:1.62}
section{padding:0 0 48px;position:relative;scroll-margin-top:72px}
.section-head{margin-bottom:20px;max-width:66ch}
.section-head h2{font-size:clamp(20px,2.4vw,26px);margin-top:9px}
.section-head p{color:var(--muted);margin-top:11px;font-size:14px;line-height:1.6}
.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:26px}
.panel h3{font-size:16px;margin-bottom:10px}
.panel p{color:var(--muted);font-size:13.5px;line-height:1.62}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.micro{font-size:11px;color:var(--faint);margin-top:18px;line-height:1.6}
.horizon{height:1px;border:0;margin:0;
  background:linear-gradient(90deg,transparent,var(--rule) 18%,var(--rule) 82%,transparent)}

footer{border-top:1px solid var(--rule);padding:36px 0;margin-top:24px}
.foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.foot .mono{color:var(--faint);font-size:12px}
.foot-links{display:flex;gap:22px;flex-wrap:wrap}
.foot-links a{font-size:12px;color:var(--muted);text-decoration:none}
.foot-links a:hover{color:var(--ink)}

@media (max-width:1100px){ .nav-links a.optional{display:none} }
@media (max-width:900px){
  .g2,.g3{grid-template-columns:1fr}
  main{padding:40px 0 16px}
}
@media (max-width:820px){ .nav-links a:not(.btn){display:none} }
@media (prefers-reduced-motion:reduce){ html{scroll-behavior:auto} }
