html {
    box-sizing: border-box;
    font-size: 62.5%; /* Mostly equivalates to 10px but allows users accessibility zoom settings to work*/
    /* font-size: 10px; */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* color-scheme: dark light; */
    min-height: 100vh;
  }
  
  html:focus-within {
    scroll-behavior: smooth;
  }
  
  *,
  *::before,
  *::after {
    box-sizing: inherit;

    padding: 0;
  }
  
  /* LAYOUT DEBUG */
  /* * {
        outline: 3px solid orange;
        background-color: hsla(120, 50%, 50%, 0.18);
  }   */
  
  body {
    font-size: 1.6rem;
    margin: 0;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
    min-height: 100vh;
  }
  
  
  /* Try to keep your margins going in one direction to avoid margin collapase or grounding. I switch all the top margins off to avoid this issue. */
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  ul,
  ol,
  li,
  dl,
  dt,
  dd,
  blockquote,
  address,
  article,
  aside,
  details,
  dialogue,
  fieldset,
  figcaption,
  figure,
  footer,
  form,
  header,
  hr,
  main,
  nav,
  pre,
  section,
  table,
  p {
    margin-top: 0;
    margin-block-start: 0;
    margin-block-end: 0;
  }
  
  a {
    color: inherit;
    text-decoration: none;
    /* You MUST make sure that links stand out from normal text though...*/
  }
  
  /*
      a:hover,
      a:focus {
        text-decoration: underline;
      }
    */
  
  img, picture, svg, video {
    display: block;
    /* This means that it can be less than 100% of the width of its parent IF the image is INTRINSICALLY smaller */
    max-width: 100%;
  
    height: auto;
    /* 'auto' is the initial value for height BUT for images (and other elements which have an intrinsic height) that is not the case. To make an image responsive you set one dimension (usually width) to [max-]width: 100%; and the other to 'auto' to ensure it keeps aspect ratio. 'auto' basically tells the browser to decide. */
  }
  
  /* Because we use <ul>s for lists that we don't always want bulletted. */
  ul {
    list-style: none;
    padding-left: 0;
  }
  
  /* To make actual bulletted lists */
  ul.typographic {
    list-style: initial;
    padding-inline-start: 20px;
  }
  
  /* stops icons being the target of JS click events */
  .btn *,
  button * {
    pointer-events: null;
    user-select: none;
  }
  
  /* inherits the font */
  input,
  button,
  textarea,
  select {
    font: inherit;
  }
  
  /*****************************
  * ACCESSIBILITY
  ******************************/
  /* For 'accessibility text'. If your button only has an image inside it that isn't good for accessibility. Put a span inside there and give it this class and put some descriptive text for what the button does into the span. */
  
  .visually-hidden,
  .sr-only {
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: polygon(0px 0px, 0px 0px, 0px 0px);
    -webkit-clip-path: polygon(0px 0px, 0px 0px, 0px 0px);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
  }
  .sr-only-focusable:active,
  .sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    clip-path: auto;
    -webkit-clip-path: auto;
    white-space: normal;
  }
  
  @media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }