/*
-----
UTOPIA
Courtesy of https://utopia.fyi
Some modifications made
-----
*/

/* @link https://utopia.fyi/generator?c=320,16,1.2,1500,20,1.333,5,1, */

:root {
  --px-per-rem: 16;
  --fluid-min-width: (320 / var(--px-per-rem));
  --fluid-max-width: (
      1500 / var(--px-per-rem)
  ); /* if changed, don't forget media query */
  --fluid-min-size: 1; /* in rem */
  --fluid-max-size: 1; /* in rem */
  --fluid-min-ratio: 1.2;
  --fluid-max-ratio: 1.25;

  --fluid-screen: 100vw;
  --fluid-bp: calc(
      (var(--fluid-screen) - (var(--fluid-min-width) * 1rem)) /
          (var(--fluid-max-width) - var(--fluid-min-width))
  );

  --fluid-max-negative: (1 / var(--fluid-max-ratio) / var(--fluid-max-ratio));
  --fluid-min-negative: (1 / var(--fluid-min-ratio) / var(--fluid-min-ratio));

  --fluid-min-scale--1: var(--fluid-min-ratio) * var(--fluid-min-negative);
  --fluid-max-scale--1: var(--fluid-max-ratio) * var(--fluid-max-negative);
  --fluid-min-size--1: var(--fluid-min-size) * var(--fluid-min-scale--1);
  --fluid-max-size--1: var(--fluid-max-size) * var(--fluid-max-scale--1);
  --step--1: calc(
      (var(--fluid-min-size--1) * 1rem) +
          (var(--fluid-max-size--1) - var(--fluid-min-size--1)) *
          var(--fluid-bp)
  );

  --fluid-min-scale-0: var(--fluid-min-ratio);
  --fluid-max-scale-0: var(--fluid-max-ratio);
  --fluid-min-size-0: var(--fluid-min-size);
  --fluid-max-size-0: var(--fluid-max-size);
  --step-0: calc(
      (var(--fluid-min-size-0) * 1rem) +
          (var(--fluid-max-size-0) - var(--fluid-min-size-0)) *
          var(--fluid-bp)
  );

  --fluid-min-scale-1: var(--fluid-min-scale-0) * var(--fluid-min-ratio);
  --fluid-max-scale-1: var(--fluid-max-scale-0) * var(--fluid-max-ratio);
  --fluid-min-size-1: var(--fluid-min-size) * var(--fluid-min-scale-0);
  --fluid-max-size-1: var(--fluid-max-size) * var(--fluid-max-scale-0);
  --step-1: calc(
      (var(--fluid-min-size-1) * 1rem) +
          (var(--fluid-max-size-1) - var(--fluid-min-size-1)) *
          var(--fluid-bp)
  );

  --fluid-min-scale-2: var(--fluid-min-scale-1) * var(--fluid-min-ratio);
  --fluid-max-scale-2: var(--fluid-max-scale-1) * var(--fluid-max-ratio);
  --fluid-min-size-2: var(--fluid-min-size) * var(--fluid-min-scale-1);
  --fluid-max-size-2: var(--fluid-max-size) * var(--fluid-max-scale-1);
  --step-2: calc(
      (var(--fluid-min-size-2) * 1rem) +
          (var(--fluid-max-size-2) - var(--fluid-min-size-2)) *
          var(--fluid-bp)
  );

  --fluid-min-scale-3: var(--fluid-min-scale-2) * var(--fluid-min-ratio);
  --fluid-max-scale-3: var(--fluid-max-scale-2) * var(--fluid-max-ratio);
  --fluid-min-size-3: var(--fluid-min-size) * var(--fluid-min-scale-2);
  --fluid-max-size-3: var(--fluid-max-size) * var(--fluid-max-scale-2);
  --step-3: calc(
      (var(--fluid-min-size-3) * 1rem) +
          (var(--fluid-max-size-3) - var(--fluid-min-size-3)) *
          var(--fluid-bp)
  );

  --fluid-min-scale-4: var(--fluid-min-scale-3) * var(--fluid-min-ratio);
  --fluid-max-scale-4: var(--fluid-max-scale-3) * var(--fluid-max-ratio);
  --fluid-min-size-4: var(--fluid-min-size) * var(--fluid-min-scale-3);
  --fluid-max-size-4: var(--fluid-max-size) * var(--fluid-max-scale-3);
  --step-4: calc(
      (var(--fluid-min-size-4) * 1rem) +
          (var(--fluid-max-size-4) - var(--fluid-min-size-4)) *
          var(--fluid-bp)
  );

  --fluid-min-scale-5: var(--fluid-min-scale-4) * var(--fluid-min-ratio);
  --fluid-max-scale-5: var(--fluid-max-scale-4) * var(--fluid-max-ratio);
  --fluid-min-size-5: var(--fluid-min-size) * var(--fluid-min-scale-4);
  --fluid-max-size-5: var(--fluid-max-size) * var(--fluid-max-scale-4);
  --step-5: calc(
      (var(--fluid-min-size-5) * 1rem) +
          (var(--fluid-max-size-5) - var(--fluid-min-size-5)) *
          var(--fluid-bp)
  );

  /*
    to deal with Safari fluid scaling on window resize bug:
    https://codepen.io/martinwolf/pen/yKgagE
  */
  min-height: 0vw;
}

@media screen and (min-width: 1500px) {
  :root {
      --fluid-screen: calc(var(--fluid-max-width) * 1rem);
  }
}
