:root {
  --light: rgba(242, 240, 228, 1);
  --green: rgba(129, 221, 119, 1);
  --blue: rgba(166, 201, 253, 1);
  --turquoise: rgba(145, 221, 238, 1);
  --dark: rgba(26, 26, 26, 1);
}

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

body,
html {
  height: 100%;
  width: 100%;
}

html {
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
}

a,
h1,
h2,
h3 {
  font-family: 'Maison Neue Bold', serif;
  text-align: left;
}

a {
  text-decoration: none;
}

h1 {
  font-size: 6.875rem;
  line-height: 5.375rem;
}

h2 {
  font-size: 3.75rem;
  line-height: 3.75rem;
}

h3 {
  font-size: 2.375rem;
  line-height: 3rem;
}

li {
  list-style: none;
}

p {
  font-family: 'Public Sans', serif;
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 400;
}

button {
  font-family: 'Maison Neue Bold', serif;
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.66rem;
  border-radius: 0.25rem;
  border: none;
  cursor: pointer;
}

input,
textarea {
  font-family: 'Public Sans', serif;
  font-size: 0.875rem;
  background-color: var(--light);
  resize: none;
}

input[type='checkbox'] {
  width: 1.0625rem;
  height: 1.0625rem;
  accent-color: green;
  z-index: 2;
}

input::placeholder,
textarea::placeholder {
  font-family: 'Public Sans', serif;
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.0281rem;
  text-align: left;
  color: rgba(26, 26, 26, 0.7);
}

input:focus,
input:hover,
textarea:focus,
textarea:hover {
  outline: none;
}

label {
  font-family: 'Public Sans', serif;
  font-size: 0.75rem;
  line-height: 0.8812rem;
  font-weight: 400;
}

.link {
  font-size: 1rem;
  line-height: 1.3281rem;
  text-align: right;
  color: var(--dark);
  border-bottom: 0.0625rem solid var(--dark);
  padding: 0.625rem 0;
}

.link:hover {
  border-bottom: none;
}

.green {
  color: var(--green);
}

.light {
  color: var(--light);
  font-size: inherit;
  line-height: inherit;
}

.small {
  font-size: 1rem;
  line-height: 1.4375rem;
}

.bold {
  font-weight: 700;
}

.underline {
  text-decoration: underline;
}

.container {
  transform: scale(calc(100vw / 1440));
  transform-origin: top left;
  width: 100%;
  height: 100dvh;
  scroll-snap-align: start;
  box-sizing: border-box;
}

.content {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}

.header {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: start;
}

.left,
.right {
  flex: 1;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.about_tool,
.upload_form,
.upload_in_process {
  display: flex;
  flex-direction: row;
}

/* ========== RESPONSIVE ========= */
@media (orientation: landscape) and (min-width: 665px) and (max-width: 1300px) {
  h2 {
    font-size: clamp(2.125rem, 3.8vw, 3.125rem);
    line-height: clamp(2.125rem, 3.8vw, 3.125rem);
  }

  h3 {
    font-size: clamp(1.75rem, 2.9vw, 2.375rem);
    line-height: clamp(2.5rem, 4vw, 3.25rem);
  }

  p:not(.newsletter p):not(.devinband_links p):not(.upload_formats),
  button {
    font-size: clamp(1rem, 1.38vw, 1.125rem);
    line-height: clamp(1.25rem, 1.84vw, 1.5rem);
  }
}

@media (orientation: portrait) and (max-width: 1024px) {
  .about_tool,
  .upload_in_process {
    flex-direction: column;
  }
}

@media (orientation: portrait) and (min-width: 360px) and (max-width: 650px) {
  h2 {
    font-size: clamp(2.125rem, 9.2vw, 3.75rem);
    line-height: clamp(2.125rem, 9.2vw, 3.75rem);
  }

  h3 {
    font-size: clamp(1.75rem, 5.8vw, 2.375rem);
    line-height: clamp(2.5rem, 8vw, 3.25rem);
  }

  p:not(.newsletter p):not(.devinband_links p):not(.upload_formats),
  button {
    font-size: clamp(0.875rem, 3vw, 1.25rem);
    line-height: clamp(1.25rem, 4.5vw, 2rem);
  }

  input::placeholder,
  textarea::placeholder {
    font-size: 0.75rem;
    line-height: 1.0281rem;
  }
}

@media (orientation: portrait) and (max-width: 380px) {
  .link {
    font-size: 0.875rem;
    line-height: 1.25rem;
    border-bottom: 0.0625rem solid var(--dark);
    padding: 0.375rem 0;
  }

  label {
    font-size: 0.625rem;
  }
}

@media (orientation: landscape) and (max-height: 560px) {
  html {
    scroll-snap-type: none;
  }

  .container {
    min-height: 34.375rem;
    transform: none;
  }
}
