/* ============================================================
   Base — self-hosted font, reset, typography

   The four woff2 files in assets/fonts/ are Public Sans (the face the live ESS
   uses), taken from @fontsource/public-sans and licensed OFL-1.1 — the licence
   text sits beside them as LICENSE-public-sans.txt. They are the LATIN subset,
   ~14KB each. Self-hosting is deliberate: the prototype must work with the
   network unplugged, so nothing may point at fonts.googleapis.com.
   Until 14-Sep-2026 these files were referenced but absent, so all 128 pages
   404'd three of them and silently fell back to Segoe UI / system sans.
   ============================================================ */
@font-face{
  font-family:'Public Sans'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/public-sans-400.woff2') format('woff2');
}
@font-face{
  font-family:'Public Sans'; font-style:normal; font-weight:500; font-display:swap;
  src:url('../fonts/public-sans-500.woff2') format('woff2');
}
@font-face{
  font-family:'Public Sans'; font-style:normal; font-weight:600; font-display:swap;
  src:url('../fonts/public-sans-600.woff2') format('woff2');
}
@font-face{
  font-family:'Public Sans'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/public-sans-700.woff2') format('woff2');
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  font-size:14px;line-height:1.45;color:var(--text);background:var(--page);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
a{color:var(--blue);text-decoration:none}
img,svg{display:block;max-width:100%}
table{border-collapse:collapse;width:100%}
h1,h2,h3,h4,h5,h6{font-weight:500}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

::-webkit-scrollbar{width:6px;height:8px}
::-webkit-scrollbar-thumb{background:#D9D9D9;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#BFBFBF}
::-webkit-scrollbar-track{background:transparent}

.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nowrap{white-space:nowrap}
.muted{color:var(--text-3)}
