/* ============================================================
   reset.css — minimal, predictable baseline
   ============================================================ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
a{color:inherit;text-decoration:none}
em{font-style:normal}
img{max-width:100%}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
ul,ol{list-style:none}
table{border-collapse:collapse;width:100%}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* Accessible focus ring (keyboard) */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Skip-link for keyboard / screen-reader users */
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--ink);color:var(--bg);padding:10px 16px;font-size:.9rem}
.skip-link:focus{left:0}

/* Screen-reader-only utility */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
