/* Shared foundation for the paper pages (/, /menu, /book): tokens, focus ring, selection, reduced motion.
   Load first; page stylesheets add layout, type.css (loaded last) sets the text roles. */
:root {
  --paper:#f4f1ea; --ink:#141414; --rule:rgba(20,20,20,.28);
  --soft:rgba(20,20,20,.68);          /* 6.0:1 on paper; the old .55-.58 failed 4.5:1 for small text */
  --accent:#b3361a;                   /* 5.4:1 on paper */
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,"Noto Serif","Times New Roman",serif;
  --ease:cubic-bezier(.22,.61,.36,1); --t:.3s; --press:.16s;
  /* type scale: label (uppercase), button, small (italic notes), body */
  --fs-label:.76rem; --ls-label:.28em;
  --fs-btn:.84rem;   --ls-btn:.3em;
  --fs-small:.9rem;
  --fs-body:1.05rem;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--serif); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
button, input, textarea { font-family:inherit; }
::selection { background:rgba(179,54,26,.22); }
/* one visible keyboard focus ring everywhere; mouse and touch never see it */
:focus-visible { outline:1px solid var(--ink); outline-offset:4px; }
:focus:not(:focus-visible) { outline:none; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
