@import "./fonts.css";
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';

h1, h2, h3, h4, h5, h6 {
  font-family: Kanit;
  font-weight: 600;
  font-style: normal;
  text-align: center;
  line-height: 1;
}

h1 {
  font-size: 3rem;
  @apply text-primary-200;
}

h1.title {
  @apply font-title font-bold;
  @apply underline text-primary-200/90;
}

h2 {
  font-size: 2.6rem;
}

h3 {
  font-size: 2.2rem;
}

h4 {
  font-size: 1.8rem;
}

h5 {
  font-size: 1.4rem;
}

h6 {
  font-size: 1rem;
}

p {
  @apply text-center sm:text-start;
}

input {
  @apply rounded rounded-md drop-shadow-sm px-2 py-1;
  @apply bg-secondary/25;
  @apply w-full;
}

input[type="submit"] {
  @apply rounded rounded-lg drop-shadow-md px-4 py-2;
  @apply bg-secondary hover:bg-secondary-600;
  @apply cursor-pointer;
  @apply font-semibold;
  @apply hover:drop-shadow-xl;
}

select {
  @apply rounded rounded-md drop-shadow-sm px-2 py-1;
  @apply bg-secondary/25;
  @apply w-full;
}

select.error {
  @apply border-2 border-failure/50;
}

input.error {
  @apply border-2 border-failure/50;
}

fieldset {
  @apply border border-secondary p-4;
}
legend {
  @apply text-sm text-secondary px-2;
}
label {
  @apply text-sm text-secondary/75 font-semibold;
}

a:not(.btn, .btn-outline) {
  @apply underline text-secondary-300;
}
div.call-to-action-box a {
  @apply text-secondary-200;
}

ul, ol {
  list-style-position: outside;
}
ul {
  list-style-type: disc;
}
ol {
  list-style-type: decimal;
}
li {
  @apply text-start;
}

code {
  @apply bg-neutral-800/75 rounded-md;
  @apply px-1 py-0.5;
  @apply text-neutral-200 font-mono;
}

.btn {
  text-align: center;
  @apply rounded rounded-lg drop-shadow-md px-2 py-1;
  @apply bg-accent hover:bg-accent-600;
  @apply font-semibold text-primary-100 hover:text-primary-200;
  @apply hover:drop-shadow-xl;
  @apply border-2 border-accent hover:border-accent-700;
  @apply transition-all;
}

.btn-outline {
  text-align: center;
  @apply rounded rounded-lg drop-shadow-md px-2 py-1;
  @apply bg-transparent hover:bg-accent-600;
  @apply font-semibold text-accent hover:text-primary-100;
  @apply hover:drop-shadow-xl;
  @apply border-2 border-accent hover:border-accent-700;
  @apply transition-all;
}

body.global {
  min-height: 100vh;
  width: 100%;
  display: flex;
  flex-direction: column;
  @apply bg-gradient-to-b from-primary-900/75 via-background to-primary-900/75;
}

header.global, main.global, footer.global {
  width: 100%;
}

main.global {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  justify-content: center;
  align-items: center;
}

div.status-message {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;
  border-radius: 0.5rem;
  padding: 0.5rem;
}

div.status-message.error {
  @apply italic text-failure-300 bg-failure/50 border border-failure;
}

div.call-to-action-box {
  @apply bg-gradient-to-r from-secondary-300/75 to-secondary-500/75;
  @apply rounded-md py-4 px-6;
  @apply text-center sm:text-start;
}

.loader {
  overflow: hidden;
}
.loader.loader-bar {
  @apply h-1 bg-accent rounded rounded-full;
}
.loader.loader-value {
  @apply font-bold text-end;
}

.loader--loading {
  animation: loading 2s infinite linear;
}
.loader--finished {
  animation: finished 1.5s ease-in both;
}
.loader--value {
  animation: loaded 1s ease-out both;
}

@keyframes loading {
  0% {
    transform: scaleX(0%) translateX(-100%);
    transform-origin: left;
  }

  50% {
    transform: scaleX(50%);
    transform-origin: center;
  }

  100% {
    transform: scaleX(0%) translateX(100%);
    transform-origin: right;
  }
}

@keyframes finished {
  0% {
    transform: scaleX(0%);
    transform-origin: center;
  }

  50% {
    transform: scaleX(100%);
    transform-origin: center;
    opacity: 1;
  }

  100% {
    transform: scaleX(100%) translateX(1000%);
    transform-origin: right;
    opacity: 0;
  }
}

@keyframes loaded {
  0% {
    transform: translateX(1000%);
    opacity: 0;
  }

  100% {
    transform: translateX(0%);
    opacity: 1;
  }
}

#logo-wings {
  animation: logowings 2s ease-in-out infinite alternate;
}
#logo-wings--subtle {
  animation: logowings-subtle 2s ease-in-out infinite alternate;
}
#logo-heart {
  animation: logoheart 1s linear infinite;
  transform-origin: center;
}
#logo-heart--subtle {
  animation: logoheart-subtle 1s linear infinite;
  transform-origin: center;
}
#logo-blips {
  animation: logoblips 6s linear infinite;
  transform-origin: bottom;
  transform-box: fill-box;
}
#logo-blips--subtle {
  animation: logoblips-subtle 6s linear infinite;
  transform-origin: bottom;
  transform-box: fill-box;
}

@keyframes logowings {
  0% {
    transform: translateY(0%);
  }

  100% {
    transform: translateY(5%);
  }
}
@keyframes logowings-subtle {
  0% {
    transform: translateY(5%);
  }

  100% {
    transform: translateY(8%);
  }
}

@keyframes logoheart {
  0%, 25%, 50%, 100% {
    transform: scale(100%);
  }

  12%, 37% {
    transform: scale(105%);
  }
}
@keyframes logoheart-subtle {
  0%, 25%, 50%, 100% {
    transform: scale(100%);
  }

  12%, 37% {
    transform: scale(102%);
  }
}

@keyframes logoblips {
  0% {
    transform: rotateY(0deg)
  }

  5%, 100% {
    transform: rotateY(360deg);
  }
}
@keyframes logoblips-subtle {
  0% {
    transform: rotateY(0deg)
  }

  5%, 100% {
    transform: rotateY(360deg);
  }
}

path.hamburger-path {
  @apply fill-secondary stroke-secondary;
}

#hamburger-content.hamburger--closed {
  @apply hidden sm:flex;
}
#hamburger-content.hamburger--open {
  @apply flex;
}
#hamburger-svg.hamburger--open {
  transform-origin: center;
  transform: rotate(90deg);
}
#hamburger-svg.hamburger--closed {
  transform-origin: center;
  transform: rotate(0deg);
}

.help-div--changing p.fadeout {
  animation: 1s fadeout ease-in-out both;
}
.help-div--changing p.fadein, a.fadein {
  animation: 1s fadein ease-in-out 1s both;
}
@keyframes fadeout {
  0% {
    opacity: 1;
  } 

  100% {
    opacity: 0;
  }
}
@keyframes fadein {
  0% {
    opacity: 0;
  } 

  100% {
    opacity: 1;
  }
}
