/* Shared tokens + reset for the static pages (404, /projects/*).
   index.html deliberately keeps its own copy: its tokens are namespaced per
   theme (.editorial / .terminal / .bold), so there is nothing to share. */
:root{
  --bone:#F6F3EC;--ink:#1B1A17;--ink-soft:#4A463E;
  --rule:#D8D2C4;--wine:#6E2433;--wine-soft:#9A4453;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Hoefler Text",Georgia,serif;
  --sans:-apple-system,system-ui,"Segoe UI",Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;}
body{background:var(--bone);color:var(--ink);font-family:var(--serif);
  line-height:1.5;-webkit-font-smoothing:antialiased;}
/* Mismo contenedor que .editorial .wrap y .bold .wrap en index.html: las
   paginas estaticas no tienen por que ser mas angostas que la home. */
.wrap{max-width:1180px;margin:0 auto;padding:0 6vw;}
.eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.2em;
  font-size:.72rem;font-weight:600;color:var(--wine);}

/* Same visible keyboard focus as index.html: currentColor adapts to context. */
:where(a,button,[tabindex]):focus-visible{
  outline:2px solid currentColor;outline-offset:3px;border-radius:2px;}
.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;}
.skip{position:absolute;left:-9999px;top:0;z-index:100;
  font:600 .85rem/1 -apple-system,system-ui,sans-serif;
  background:#1B1A17;color:#fff;padding:.8rem 1.2rem;text-decoration:none;border-radius:0 0 6px 0;}
.skip:focus{left:0;}
