/* ==========================================================================
   Base and reset
   Tokens come from style.css :root. Never hardcode a hex here.
   Mobile first. min-width media queries only.
   ========================================================================== */

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

html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

body{
  background:var(--fa-bg);
  color:var(--fa-txt);
  font-family:var(--fa-font);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img,svg,video{display:block;max-width:100%;height:auto}
img{border:0}

a{color:inherit;text-decoration:none}
a:hover{color:var(--fa-cyan)}

ul,ol{list-style:none}

button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}

h1,h2,h3,h4{
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.032em;
}

strong,b{font-weight:700}

/* Skip link for keyboard users. */
.fa-skip-link{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--fa-card);color:var(--fa-txt);
  padding:12px 20px;border-radius:0 0 var(--fa-r-btn) 0;
}
.fa-skip-link:focus{left:0}

/* Visible focus ring on every interactive element. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:2px solid var(--fa-cyan);
  outline-offset:2px;
}

/* Screen-reader only text. */
.fa-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;
}

/* ----- Layout primitives ----- */

.fa-wrap{
  max-width:var(--fa-container);
  margin-inline:auto;
  padding-inline:20px;
}
@media (min-width:900px){
  .fa-wrap{padding-inline:var(--fa-container-pad)}
}

.fa-section{
  position:relative;
  padding-block:64px;
}
@media (min-width:900px){
  .fa-section{padding-block:var(--fa-sec-pad)}
}

/* Alternating section background with top and bottom hairlines. */
.fa-section--alt{
  background:var(--fa-bg-2);
  border-top:1px solid var(--fa-line);
  border-bottom:1px solid var(--fa-line);
}

/* Constrain body copy measure, never on <body>. */
.fa-measure{max-width:68ch}

/* ----- Reduced motion ----- */

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