/* ===================================================================
   NAVALHA — BASE (reset + tipografia + utilitários)
   =================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
  min-height:100vh;
}
body.theme-light{background:var(--l-bg);color:var(--l-ink);}

img,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;color:inherit;background:none;border:none;}
button{cursor:pointer;}
ul,ol{list-style:none;}

h1,h2,h3,h4{font-family:var(--font-display);font-weight:650;line-height:1.12;letter-spacing:-.01em;}
h1{font-size:clamp(2.2rem,4.2vw,3.6rem);}
h2{font-size:clamp(1.7rem,3vw,2.5rem);}
h3{font-size:1.3rem;}
h4{font-size:1.05rem;}

::selection{background:var(--accent);color:var(--accent-ink);}

::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--border-soft);border-radius:var(--r-pill);}
.theme-light ::-webkit-scrollbar-thumb{background:var(--l-border);}

/* -------- Container / layout utils -------- */
.container{max-width:var(--container);margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-ink);padding:.75rem 1.25rem;z-index:1000;border-radius:0 0 var(--r-sm) 0;}
.skip-link:focus{left:0;}

/* -------- Focus -------- */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;}

/* -------- Fade/slide reveal utility -------- */
.fade-in{animation:fadeIn var(--dur-slow) var(--ease) both;}
@keyframes fadeIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

.text-mute{color:var(--ink-mute);}
.theme-light .text-mute{color:var(--l-ink-mute);}
.text-dim{color:var(--ink-dim);}
.theme-light .text-dim{color:var(--l-ink-dim);}
.text-accent{color:var(--accent-light);}

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