/* BASE
   Reset, tipografia base, foco visivel e utilitarios globais. */

* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:105px
}
body {
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:14px/1.7 var(--sans);
  overflow-x:clip
}
body::after {
  content:"";
  position:fixed;
  inset:0;
  z-index:30;
  pointer-events:none;
  opacity:.024;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 180 180'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23noise)'/%3E%3C/svg%3E")
}
::selection {
  background:#a3293a;
  color:white
}
a {
  color:inherit;
  text-decoration:none
}
button {
  font:inherit;
  color:inherit;
  cursor:pointer;
  background:none;
  border:0
}
button,a {
  -webkit-tap-highlight-color:transparent
}
button:disabled {
  cursor:default;
  opacity:.6
}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible {
  outline:2px solid var(--gold-light);
  outline-offset:6px
}
svg {
  width:22px;
  height:22px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.3;
  stroke-linecap:round;
  stroke-linejoin:round;
  flex:none
}
.svg-library {
  position:absolute;
  width:0;
  height:0;
  overflow:hidden
}
.container {
  width:min(1220px,calc(100% - 100px));
  margin-inline:auto
}
.skip-link {
  position:fixed;
  top:10px;
  left:10px;
  z-index:100;
  padding:12px 20px;
  background:var(--gold-light);
  color:#111;
  transform:translateY(-150%)
}
.skip-link:focus {
  transform:none
}
.scroll-progress {
  height:2px;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  transform:scaleX(0);
  transform-origin:left;
  background:var(--red);
  z-index:60;
  box-shadow:0 0 12px var(--red)
}
