*,*::before,*::after{box-sizing:border-box}
html{
  font-family:var(--ff-body);
  color:var(--text);
  scroll-behavior:smooth;
  scroll-padding-top:calc(var(--header-h-mobile) + 8px);
  -webkit-text-size-adjust:100%;
}
@media (min-width:768px){
  html{scroll-padding-top:calc(var(--header-h) + 8px)}
}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-size:16px;
  line-height:1.55;
  overflow-x:clip;
  background-image:radial-gradient(color-mix(in srgb,var(--text) 9%,transparent) 1px,transparent 1px);
  background-size:22px 22px;
}
h1,h2,h3,h4,h5{font-family:var(--ff-display);font-weight:500;line-height:1.15;margin:0 0 .4em;color:var(--text);letter-spacing:-.005em}
h1{font-size:clamp(2.2rem,5.4vw,3.6rem)}
h2{font-size:clamp(1.7rem,3.6vw,2.4rem)}
h3{font-size:clamp(1.2rem,2.2vw,1.5rem)}
p{margin:0 0 1rem;color:var(--text-2)}
a{color:var(--text);text-decoration:none}
a:hover{color:var(--accent)}
img,svg,video,iframe{max-width:100%;display:block}
figure{margin:0}
ul,ol{margin:0 0 1rem;padding-left:1.2rem}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
[hidden]{display:none !important}

::selection{background:color-mix(in srgb,var(--accent) 28%,transparent);color:var(--text)}
::-webkit-scrollbar{width:10px;height:8px}
::-webkit-scrollbar-track{background:var(--bg-alt)}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--accent) 60%,var(--text) 18%);border-radius:8px}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}
::placeholder{color:var(--text-mute);opacity:1}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 20px}
@media (min-width:768px){.container{padding:0 40px}}

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