/* Reset + base tipográfica */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:0.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:0.01ms !important;
  }
}

body{
  font-family:var(--font-ui);
  font-size:var(--t-body);
  font-weight:var(--w-regular);
  line-height:var(--lh-body);
  color:var(--iron);
  background:var(--linen);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

img,svg{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}

a{
  color:inherit;
  text-decoration:none;
  transition:opacity var(--dur) var(--ease);
}
a:hover{opacity:0.7}

h1,h2,h3,h4,h5{
  font-family:var(--font-ui);
  font-weight:var(--w-bold);
  line-height:var(--lh-tight);
  letter-spacing:-0.01em;
}

/* Focus visível AA */
:focus{outline:none}
:focus-visible{
  outline:2px solid var(--crimson);
  outline-offset:3px;
}

/* Skip link */
.skip{
  position:absolute;left:-9999px;top:-9999px;
}
.skip:focus{
  left:var(--s-2);top:var(--s-2);
  background:var(--linen);color:var(--iron);
  padding:var(--s-1) var(--s-2);
  z-index:100;
}

::selection{background:var(--crimson);color:var(--linen)}

.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;
}

/* Utilitários */
.eyebrow{
  font-family:var(--font-ui);
  font-weight:var(--w-medium);
  font-size:var(--t-h5);
  letter-spacing:var(--tr-caps);
  text-transform:uppercase;
}
.editorial{
  font-family:var(--font-ed);
  font-size:var(--t-ed-lg);
  font-weight:var(--w-regular);
  line-height:var(--lh-ed);
}
.editorial+.editorial{margin-top:var(--s-3)}

.lede{
  font-family:var(--font-ed);
  font-size:var(--t-ed);
  font-style:italic;
  line-height:var(--lh-ed);
  color:var(--graphite);
}

.caps{
  font-family:var(--font-ui);
  font-weight:var(--w-bold);
  text-transform:uppercase;
  letter-spacing:var(--tr-caps);
}

.div-bone{
  border:0;
  border-top:1px solid var(--bone);
  margin:var(--s-5) 0;
}
.div-crimson{
  border:0;
  border-top:1px solid var(--crimson);
  margin:var(--s-6) 0;
}

/* Reveal */
.reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity var(--dur-reveal) var(--ease),transform var(--dur-reveal) var(--ease);
}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
}
