:root {
  --black: rgba(0, 0, 0, 1);
  --red: rgba(171, 0, 32, 1);
  --green: rgba(32, 171, 0, 1);
  --pink: rgba(212, 126, 142, 1);
  --rose: rgba(248, 232, 235, 1);
  --beige: rgba(240, 224, 211, 1);
  --white: rgba(255, 255, 255, 1);
  --bg-color-general: rgba(255, 243, 243, 1);
  --bg-color-general-dim: rgba(248, 232, 235, 0.91);
  --bg-color-general-dark: rgba(255, 243, 243, 0.69);
  --fg-color-general: rgba(0, 0, 0, 0.91);
  --fg-color-general-dim: rgba(0, 0, 0, 0.69);
  --fg-color-general-light: rgba(0, 0, 0, 0.42);
  --bg-color-primary: rgba(192, 106, 122, 1);
  --bg-color-primary-dark-dim: rgba(171, 0, 32, 0.69);
  --bg-color-primary-dark: rgba(171, 0, 32, 1);
  --bg-color-primary-light: rgba(212, 126, 142, 0.42);
  --bg-color-primary-bright: rgba(252, 106, 122, 0.88);
  --fg-color-primary: rgba(255, 243, 243, 1);
  --fg-color-primary-dim: rgba(248, 232, 235, 0.91);
  --fg-color-primary-dark: rgba(255, 243, 243, 0.69);
  --color-special-green: rgba(25, 179, 148, 1);
  --color-special-green-light: rgba(25, 179, 148, 0.1);
  --color-special-blue: rgba(67, 127, 217, 1);
  --color-special-blue-light: rgba(67, 127, 217, 0.1);
  --color-special-yellow: rgba(255, 152, 20, 1);
  --color-special-yellow-light: rgba(255, 152, 20, 0.1);
  --base-unit: 8px;
  --base-padding: 20px;
  --font-size: calc(var(--base-unit) * 2);
  --font-weight: 600;
  --font-family: "Montserrat", sans-serif;
  --title-font-family: "Raleway", sans-serif;
  --border-default: rgba(0, 0, 0, 0.16);
  --border-light: rgba(0, 0, 0, 0.09);
  --border-radius: calc(var(--base-unit) / 2);
  --shadow-small: 0px 1px 2px 0px rgba(0, 0, 0, 0.15);
}

@font-face {
  font-family: "Montserrat";
  src:
    local("montserrat"),
    url("../vendor/fonts/Montserrat/Montserrat-VariableFont_wght.ttf"),
    url("../vendor/fonts/Montserrat/Montserrat-Italic-VariableFont_wght.ttf");
}

@font-face {
  font-family: "Raleway";
  src:
    local("raleway"),
    url("../vendor/fonts/Raleway/Raleway-VariableFont_wght.ttf"),
    url("../vendor/fonts/Raleway/Raleway-Italic-VariableFont_wght.ttf");
}

html {
  margin: 0;
  padding: 0;
  width: 100%;
  height: max-content;
  box-sizing: border-box;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  background: linear-gradient(180deg, var(--bg-color-general) 15%, var(--beige) 45%, var(--bg-color-general-dim) 65%, var(--bg-color-general-dark) 100%);
  font-family: var(--font-family);
  color: var(--fg-color-general);
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

main {
  margin-top: calc(var(--base-padding) / 2);
  margin-bottom: calc(var(--base-padding) / 2);
}

h1, h2, h3 {
  font-family: var(--title-font-family);
}

/* Fade-in reveal utility */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.reveal {
  opacity: 0;
  transform: translateY(12px);
  animation-name: fadeInUp;
  animation-duration: 820ms;
  animation-timing-function: cubic-bezier(.2, .9, .2, 1);
  animation-fill-mode: forwards;
}

.reveal.delay-1 {
  animation-delay: 160ms;
}

.reveal.delay-2 {
  animation-delay: 320ms;
}

.reveal.delay-3 {
  animation-delay: 480ms;
}

.scrollup{
    width: 30px;
    height: 30px;
    border-radius: 15px;
    opacity: .3;
    position: fixed;
    bottom: 20px;
    right: 25px;
    color: var(--fg-color-primary);
    cursor: pointer;
    background-color: #000;
    z-index: 1000;
    transition: opacity .5s, background-color .5s;
    -moz-transition: opacity .5s, background-color .5s;
    -webkit-transition: opacity .5s, background-color .5s;
}

.scrollup:hover {
    background: var(--bg-color-primary-dark);
    opacity: 1;
}

.scrollup i {
    font-size: 13px;
    position: absolute;
    opacity: 1;
    color: #fff;
    left: 50%;
    top: 50%;
    margin-top: -7px;
    margin-left: -6px;
    text-decoration: none;
}
