:root{
  --text-xs: clamp(0.75rem, 0.7rem + 0.25vw, 0.875rem);
  --text-sm: clamp(0.875rem, 0.8rem + 0.35vw, 1rem);
  --text-base: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  --text-lg: clamp(1.125rem, 1rem + 0.75vw, 1.5rem);
  --text-xl: clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);
  --text-2xl: clamp(2rem, 1.2rem + 2.5vw, 3.5rem);
  --text-3xl: clamp(2.5rem, 1rem + 4vw, 5rem);
  --text-hero: clamp(2.75rem, 0.5rem + 6vw, 6.5rem);

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem;
  --space-12:3rem; --space-16:4rem; --space-20:5rem; --space-24:6rem; --space-32:8rem;

  --radius-sm:.25rem; --radius-md:.375rem; --radius-lg:.625rem; --radius-full:9999px;
  --transition-interactive: 200ms cubic-bezier(.16,1,.3,1);

  --content-narrow: 680px;
  --content-default: 1000px;
  --content-wide: 1180px;

  --font-display: 'Newsreader', 'Iowan Old Style', Georgia, serif;
  --font-body: 'Satoshi', 'Inter', -apple-system, 'Helvetica Neue', sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

html{
  -moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  scroll-behavior:smooth;
  scroll-padding-top:5.5rem;
}

body{
  min-height:100dvh;
  line-height:1.65;
  font-family:var(--font-body);
  font-size:var(--text-base);
  color:var(--color-text);
  background:var(--color-bg);
  overflow-x:hidden;
}

img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}
ul[role='list'],ol[role='list']{list-style:none}
input,button,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none}

h1,h2,h3,h4{text-wrap:balance;line-height:1.12}
p,li,figcaption{text-wrap:pretty}

a{color:inherit}

::selection{background:color-mix(in oklab, var(--color-accent) 30%, transparent);color:var(--color-text-strong)}

:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:var(--radius-sm)}

a,button,[role='button']{
  transition:color var(--transition-interactive),
             background var(--transition-interactive),
             border-color var(--transition-interactive),
             opacity var(--transition-interactive),
             transform var(--transition-interactive);
}

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

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
