@import url(./components/buttons.css);
@import url(./components/lists.css);
@import url(./components/fonts.css);
@import url(./components/theme.css);
@import url(./components/forms.css);
@import url(./components/table.css);
/* @import url(./components/carousels.css); */
/* @import url(./components/navbar.css); */
/* @import url(./components/sidebar.css); */
/* @import url(./components/footer.css); */
/* @import url(./custom/style.css); */

/* Standard variables */

:root {
  /* Default-Spacer */
  --spacer: 1;
  --spacer-gap: 1;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 0;
}

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

/* Grundlegende Typografie */
body {
  font-family: Arial, sans-serif;
  line-height: 1.6;
  font-size: 1rem;
  background-color: var(--background-color);
}

/* Layers */

.index-top {
  z-index: 999;
}

.index-bottom {
  z-index: -1;
}

/* Displays */
.d-inline-block {
  display: inline-block;
}

/* Flex Layouts */
.centered {
  justify-content: center;
  align-items: center;
}

.centered-hor {
  justify-content: center;
}

.centered-ver {
  align-items: center;
}

.d-flex {
  display: flex;
}

.flex-wrap {
  flex-wrap: wrap;
}

.flex-row {
  flex-direction: row;
}

.flex-col {
  flex-direction: column;
}

.flex-justify-start {
  justify-content: start;
}

.flex-justify-center {
  justify-content: center;
}

.flex-justify-end {
  justify-content: end;
}

.flex-justify-between {
  justify-content: space-between;
}

.flex-justify-around {
  justify-content: space-around;
}

.flex-justify-evenly {
  justify-content: space-evenly;
}

.flex-align-center {
  align-items: center;
}

.flex-align-start {
  align-items: flex-start;
}

.flex-align-end {
  align-items: flex-end;
}

/* Grid Layouts */
.grid-container {
  display: grid;
}

.grid-col-1 {
  grid-template-columns: 1fr;
}

.grid-col-2 {
  grid-template-columns: 1fr 1fr;
}

.grid-col-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gap-1 {
  gap: calc(var(--spacer-gap) * 0.25rem);
}

.gap-2 {
  gap: calc(var(--spacer) * 0.5rem);
}

.gap-3 {
  gap: calc(var(--spacer) * 1rem);
}

.gap-4 {
  gap: calc(var(--spacer) * 1.5rem);
}

.gap-5 {
  gap: calc(var(--spacer) * 3rem);
}

.grid-row-1 {
  grid-template-rows: 1fr;
}

.grid-row-2 {
  grid-template-rows: 1fr 1fr;
}

.grid-row-3 {
  grid-template-rows: 1fr 1fr 1fr;
}

/* Item alignments */
.self-align-start {
  align-self: flex-start;
}

.self-align-center {
  align-self: center;
}

.self-align-end {
  align-self: flex-end;
}

/* Positioning */
.pos-absolute {
  position: absolute;
}

.pos-relative {
  position: relative;
}

.pos-fixed {
  position: fixed;
}

.pos-sticky {
  position: sticky;
}

.top {
  top: 0;
}

.bottom {
  bottom: 0;
}

.left {
  left: 0;
}

.right {
  right: 0;
}

/* Typografie und Text-Styles */
.text-center {
  text-align: center;
}

.text-left {
  text-align: left;
}

.text-right {
  text-align: right;
}

/* Verdoppelte Schriftgrößen mit rem */
.font-size-xxs {
  font-size: 1rem;
  /* entspricht 24px */
}

.font-size-xs {
  font-size: 1.5rem;
  /* entspricht 24px */
}

.font-size-s {
  font-size: 1.75rem;
  /* entspricht 28px */
}

.font-size-m {
  font-size: 2rem;
  /* entspricht 32px */
}

.font-size-l {
  font-size: 2.5rem;
  /* entspricht 40px */
}

.font-size-xl {
  font-size: 3rem;
  /* entspricht 48px */
}

.font-size-xxl {
  font-size: 4rem;
  /* entspricht 64px */
}

.font-light {
  font-weight: lighter;
}

.font-100 {
  font-weight: 100;
}

.font-200 {
  font-weight: 200;
}

.font-300 {
  font-weight: 300;
}

.font-400 {
  font-weight: 400;
}

.font-500 {
  font-weight: 500;
}

.font-600 {
  font-weight: 600;
}

.font-700 {
  font-weight: 700;
}

.font-800 {
  font-weight: 800;
}

.font-900 {
  font-weight: 900;
}

.font-bold {
  font-weight: bold;
}

.font-italic {
  font-style: italic;
}

.text-uppercase {
  text-transform: uppercase;
}

.text-lowercase {
  text-transform: lowercase;
}

.text-capitalize {
  text-transform: capitalize;
}

.lh-1 {
  line-height: calc(var(--spacer) * 0.25);
}

.lh-2 {
  line-height: calc(var(--spacer) * 0.5);
}

.lh-3 {
  line-height: calc(var(--spacer) * 1);
}

.lh-4 {
  line-height: calc(var(--spacer) * 1.5);
}

.lh-5 {
  line-height: calc(var(--spacer) * 3);
}

/* Container styling */

.content-box {
  border-radius: 18px;
  background-color: var(--color-surface);
  /* passt automatisch zu Light/Dark Mode */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  /* moderner, softer Schatten */
  padding: 1rem;
  /* Standard-Innenabstand */
  transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.2s ease;
}

/* Optional: leichter Hover-Effekt für Interaktivität */
/* .content-box:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
} */

/* Dark Mode Anpassung */
[data-theme="dark"] .content-box {
  background-color: var(--color-surface);
  /* in deinem Theme bereits dunkel definiert */
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4);
}

.border {
  border: 0.1rem solid var(--color-border);
}

.border-t {
  border-top: 0.1rem solid var(--color-border);
}

.border-b {
  border-bottom: 0.1rem solid var(--color-border);
}

/* Generic font and effect stuff */
.color-white {
  color: white;
}

.color-black {
  color: black;
}

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

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

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

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

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

.glow-25 {
  filter: drop-shadow(0 0 0.25rem rgba(82, 82, 82, 0.728));
}

.glow-50 {
  filter: drop-shadow(0 0 0.5rem rgba(82, 82, 82, 0.728));
}

.glow-75 {
  filter: drop-shadow(0 0 0.75rem rgba(82, 82, 82, 0.728));
}

.glow-100 {
  filter: drop-shadow(0 0 1rem rgba(82, 82, 82, 0.728));
}

.shadow {
  filter: drop-shadow(-0.15rem 0 0.15rem #343434);
}

/* Hilfsklassen für Abstände und Größen */
.m-0 {
  margin: 0;
}

.m-1 {
  margin: calc(var(--spacer) * 0.25rem);
}

.m-2 {
  margin: calc(var(--spacer) * 0.5rem);
}

.m-3 {
  margin: calc(var(--spacer) * 1rem);
}

.m-4 {
  margin: calc(var(--spacer) * 1.5rem);
}

.m-5 {
  margin: calc(var(--spacer) * 3rem);
}

.mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
  /* margin: calc(var(--spacer) * 0.25rem); is this important? */
}

.mt-0 {
  margin-top: 0;
}

.mt-1 {
  margin-top: calc(var(--spacer) * 0.25rem);
  /* 25% des Standardspacers */
}

.mt-2 {
  margin-top: calc(var(--spacer) * 0.5rem);
  /* 50% des Standardspacers */
}

.mt-3 {
  margin-top: calc(var(--spacer) * 1rem);
  /* 100% des Standardspacers */
}

.mt-4 {
  margin-top: calc(var(--spacer) * 1.5rem);
  /* 150% des Standardspacers */
}

.mt-5 {
  margin-top: calc(var(--spacer) * 3rem);
  /* 300% des Standardspacers */
}

.mb-0 {
  margin-bottom: 0;
}

.mb-1 {
  margin-bottom: calc(var(--spacer) * 0.25rem);
  /* 25% des Standardspacers */
}

.mb-2 {
  margin-bottom: calc(var(--spacer) * 0.5rem);
  /* 50% des Standardspacers */
}

.mb-3 {
  margin-bottom: calc(var(--spacer) * 1rem);
  /* 100% des Standardspacers */
}

.mb-4 {
  margin-bottom: calc(var(--spacer) * 1.5rem);
  /* 150% des Standardspacers */
}

.mb-5 {
  margin-bottom: calc(var(--spacer) * 3rem);
  /* 300% des Standardspacers */
}

.ml-0 {
  margin-left: 0;
}

.ml-1 {
  margin-left: calc(var(--spacer) * 0.25rem);
  /* 25% des Standardspacers */
}

.ml-2 {
  margin-left: calc(var(--spacer) * 0.5rem);
  /* 50% des Standardspacers */
}

.ml-3 {
  margin-left: calc(var(--spacer) * 1rem);
  /* 100% des Standardspacers */
}

.ml-4 {
  margin-left: calc(var(--spacer) * 1.5rem);
  /* 150% des Standardspacers */
}

.ml-5 {
  margin-left: calc(var(--spacer) * 3rem);
  /* 300% des Standardspacers */
}

.mr-0 {
  margin-right: 0;
}

.mr-1 {
  margin-right: calc(var(--spacer) * 0.25rem);
  /* 25% des Standardspacers */
}

.mr-2 {
  margin-right: calc(var(--spacer) * 0.5rem);
  /* 50% des Standardspacers */
}

.mr-3 {
  margin-right: calc(var(--spacer) * 1rem);
  /* 100% des Standardspacers */
}

.mr-4 {
  margin-right: calc(var(--spacer) * 1.5rem);
  /* 150% des Standardspacers */
}

.mr-5 {
  margin-right: calc(var(--spacer) * 3rem);
  /* 300% des Standardspacers */
}

.mtb-0 {
  margin-top: 0;
  margin-bottom: 0;
}

.mtb-1 {
  margin-top: calc(var(--spacer) * 0.25rem);
  /* 25% des Standardspacers */
  margin-bottom: calc(var(--spacer) * 0.25rem);
}

.mtb-2 {
  margin-top: calc(var(--spacer) * 0.5rem);
  /* 50% des Standardspacers */
  margin-bottom: calc(var(--spacer) * 0.5rem);
}

.mtb-3 {
  margin-top: calc(var(--spacer) * 1rem);
  /* 100% des Standardspacers */
  margin-bottom: calc(var(--spacer) * 1rem);
}

.mtb-4 {
  margin-top: calc(var(--spacer) * 1.5rem);
  /* 150% des Standardspacers */
  margin-bottom: calc(var(--spacer) * 1.5rem);
}

.mtb-5 {
  margin-top: calc(var(--spacer) * 3rem);
  /* 300% des Standardspacers */
  margin-bottom: calc(var(--spacer) * 3rem);
}

.mlr-0 {
  margin-left: 0;
  margin-right: 0;
}

.mlr-1 {
  margin-left: calc(var(--spacer) * 0.25rem);
  /* 25% des Standardspacers */
  margin-right: calc(var(--spacer) * 0.25rem);
}

.mlr-2 {
  margin-left: calc(var(--spacer) * 0.5rem);
  /* 50% des Standardspacers */
  margin-right: calc(var(--spacer) * 0.5rem);
}

.mlr-3 {
  margin-left: calc(var(--spacer) * 1rem);
  /* 100% des Standardspacers */
  margin-right: calc(var(--spacer) * 1rem);
}

.mlr-4 {
  margin-left: calc(var(--spacer) * 1.5rem);
  /* 150% des Standardspacers */
  margin-right: calc(var(--spacer) * 1.5rem);
}

.mlr-5 {
  margin-left: calc(var(--spacer) * 3rem);
  /* 300% des Standardspacers */
  margin-right: calc(var(--spacer) * 3rem);
}

.p-0 {
  padding: 0;
}

.p-1 {
  padding: calc(var(--spacer) * 0.25rem);
}

.p-2 {
  padding: calc(var(--spacer) * 0.5rem);
}

.p-3 {
  padding: calc(var(--spacer) * 1rem);
}

.p-4 {
  padding: calc(var(--spacer) * 1.5rem);
}

.p-5 {
  padding: calc(var(--spacer) * 3rem);
}

/* Padding oben (Top) */
.pt-0 {
  padding-top: 0;
}

.pt-1 {
  padding-top: calc(var(--spacer) * 0.25rem);
}

.pt-2 {
  padding-top: calc(var(--spacer) * 0.5rem);
}

.pt-3 {
  padding-top: calc(var(--spacer) * 1rem);
}

.pt-4 {
  padding-top: calc(var(--spacer) * 1.5rem);
}

.pt-5 {
  padding-top: calc(var(--spacer) * 3rem);
}

/* Padding unten (Bottom) */
.pb-0 {
  padding-bottom: 0;
}

.pb-1 {
  padding-bottom: calc(var(--spacer) * 0.25rem);
}

.pb-2 {
  padding-bottom: calc(var(--spacer) * 0.5rem);
}

.pb-3 {
  padding-bottom: calc(var(--spacer) * 1rem);
}

.pb-4 {
  padding-bottom: calc(var(--spacer) * 1.5rem);
}

.pb-5 {
  padding-bottom: calc(var(--spacer) * 3rem);
}

/* Padding links (Left) */
.pl-0 {
  padding-left: 0;
}

.pl-1 {
  padding-left: calc(var(--spacer) * 0.25rem);
}

.pl-2 {
  padding-left: calc(var(--spacer) * 0.5rem);
}

.pl-3 {
  padding-left: calc(var(--spacer) * 1rem);
}

.pl-4 {
  padding-left: calc(var(--spacer) * 1.5rem);
}

.pl-5 {
  padding-left: calc(var(--spacer) * 3rem);
}

/* Padding rechts (Right) */
.pr-0 {
  padding-right: 0;
}

.pr-1 {
  padding-right: calc(var(--spacer) * 0.25rem);
}

.pr-2 {
  padding-right: calc(var(--spacer) * 0.5rem);
}

.pr-3 {
  padding-right: calc(var(--spacer) * 1rem);
}

.pr-4 {
  padding-right: calc(var(--spacer) * 1.5rem);
}

.pr-5 {
  padding-right: calc(var(--spacer) * 3rem);
}

/* Padding oben und unten (Top & Bottom) */
.ptb-0 {
  padding-top: 0;
  padding-bottom: 0;
}

.ptb-1 {
  padding-top: calc(var(--spacer) * 0.25rem);
  padding-bottom: calc(var(--spacer) * 0.25rem);
}

.ptb-2 {
  padding-top: calc(var(--spacer) * 0.5rem);
  padding-bottom: calc(var(--spacer) * 0.5rem);
}

.ptb-3 {
  padding-top: calc(var(--spacer) * 1rem);
  padding-bottom: calc(var(--spacer) * 1rem);
}

.ptb-4 {
  padding-top: calc(var(--spacer) * 1.5rem);
  padding-bottom: calc(var(--spacer) * 1.5rem);
}

.ptb-5 {
  padding-top: calc(var(--spacer) * 3rem);
  padding-bottom: calc(var(--spacer) * 3rem);
}

/* Padding links und rechts (Left & Right) */
.plr-0 {
  padding-left: 0;
  padding-right: 0;
}

.plr-1 {
  padding-left: calc(var(--spacer) * 0.25rem);
  padding-right: calc(var(--spacer) * 0.25rem);
}

.plr-2 {
  padding-left: calc(var(--spacer) * 0.5rem);
  padding-right: calc(var(--spacer) * 0.5rem);
}

.plr-3 {
  padding-left: calc(var(--spacer) * 1rem);
  padding-right: calc(var(--spacer) * 1rem);
}

.plr-4 {
  padding-left: calc(var(--spacer) * 1.5rem);
  padding-right: calc(var(--spacer) * 1.5rem);
}

.plr-5 {
  padding-left: calc(var(--spacer) * 3rem);
  padding-right: calc(var(--spacer) * 3rem);
}

/* Procentual width and height properties */

.w-5 {
  width: 5%;
}

.w-10 {
  width: 10%;
}

.w-15 {
  width: 15%;
}

.w-20 {
  width: 20%;
}

.w-25 {
  width: 25%;
}

.w-30 {
  width: 30%;
}

.w-35 {
  width: 35%;
}

.w-40 {
  width: 40%;
}

.w-45 {
  width: 45%;
}

.w-50 {
  width: 50%;
}

.w-55 {
  width: 55%;
}

.w-60 {
  width: 60%;
}

.w-65 {
  width: 65%;
}

.w-70 {
  width: 70%;
}

.w-75 {
  width: 75%;
}

.w-80 {
  width: 80%;
}

.w-85 {
  width: 85%;
}

.w-90 {
  width: 90%;
}

.w-95 {
  width: 95%;
}

.w-100 {
  width: 100%;
}

.h-5 {
  height: 5%;
}

.h-10 {
  height: 10%;
}

.h-15 {
  height: 15%;
}

.h-20 {
  height: 20%;
}

.h-25 {
  height: 25%;
}

.h-30 {
  height: 30%;
}

.h-35 {
  height: 35%;
}

.h-40 {
  height: 40%;
}

.h-45 {
  height: 45%;
}

.h-50 {
  height: 50%;
}

.h-55 {
  height: 55%;
}

.h-60 {
  height: 60%;
}

.h-65 {
  height: 65%;
}

.h-70 {
  height: 70%;
}

.h-75 {
  height: 75%;
}

.h-80 {
  height: 80%;
}

.h-85 {
  height: 85%;
}

.h-90 {
  height: 90%;
}

.h-95 {
  height: 95%;
}

.h-100 {
  height: 100%;
}

.max-w-100 {
  max-width: 100%;
}

.max-h-100 {
  max-height: 100%;
}

/* Viewport Größen */

.vh-5 {
  height: 5vh;
}

.vh-10 {
  height: 10vh;
}

.vh-15 {
  height: 15vh;
}

.vh-20 {
  height: 20vh;
}

.vh-25 {
  height: 25vh;
}

.vh-30 {
  height: 30vh;
}

.vh-35 {
  height: 35vh;
}

.vh-40 {
  height: 40vh;
}

.vh-45 {
  height: 45vh;
}

.vh-50 {
  height: 50vh;
}

.vh-55 {
  height: 55vh;
}

.vh-60 {
  height: 60vh;
}

.vh-65 {
  height: 65vh;
}

.vh-70 {
  height: 70vh;
}

.vh-75 {
  height: 75vh;
}

.vh-80 {
  height: 80vh;
}

.vh-85 {
  height: 85vh;
}

.vh-90 {
  height: 90vh;
}

.vh-95 {
  height: 95vh;
}

.vh-100 {
  height: 100vh;
}

.vw-5 {
  width: 5vw;
}

.vw-10 {
  width: 10vw;
}

.vw-15 {
  width: 15vw;
}

.vw-20 {
  width: 20vw;
}

.vw-25 {
  width: 25vw;
}

.vw-30 {
  width: 30vw;
}

.vw-35 {
  width: 35vw;
}

.vw-40 {
  width: 40vw;
}

.vw-45 {
  width: 45vw;
}

.vw-50 {
  width: 50vw;
}

.vw-55 {
  width: 55vw;
}

.vw-60 {
  width: 60vw;
}

.vw-65 {
  width: 65vw;
}

.vw-70 {
  width: 70vw;
}

.vw-75 {
  width: 75vw;
}

.vw-80 {
  width: 80vw;
}

.vw-85 {
  width: 85vw;
}

.vw-90 {
  width: 90vw;
}

.vw-95 {
  width: 95vw;
}

.vw-100 {
  width: 100vw;
}

/* Dynamic viewports*/

.dvh-25 {
  height: 25dvh;
}

.dvh-50 {
  height: 50dvh;
}

.dvh-75 {
  height: 75dvh;
}

.dvh-100 {
  height: 100dvh;
}

.dvw-25 {
  width: 25dvw;
}

.dvw-50 {
  width: 50dvw;
}

.dvw-75 {
  width: 75dvw;
}

.dvw-90 {
  width: 90dvw;
}

.dvw-100 {
  width: 100dvw;
}

/* Specials */

.glass {
  backdrop-filter: blur(2px);
}

.glass-5 {
  backdrop-filter: blur(5px);
}

.glass-10 {
  backdrop-filter: blur(10px);
}

.rounded {
  border-radius: var(--radius);
}

.circled {
  border-radius: 720px;
}

.bordered {
  border: 1px solid #111;
}

.glitch {
  position: relative;
  font-weight: bold;
  color: white;
}

.glitch::before,
.glitch::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #000;
  overflow: hidden;
  clip: rect(0, 900px, 0, 0);
}

.glitch::before {
  left: 2px;
  text-shadow: -2px 0 red;
  animation: glitch 2s infinite linear alternate-reverse;
}

.glitch::after {
  left: -2px;
  text-shadow: -2px 0 blue;
  animation: glitch 2s infinite linear alternate-reverse;
}

/* SVG Utilities */

.svg-white {
  filter: invert(100%) sepia(0%) saturate(9%) hue-rotate(168deg) brightness(102%) contrast(103%);
}

/* Graphic utilities */
.turn-90 {
  transform: rotate(90deg);
}

.turn-180 {
  transform: rotate(180deg);
}

.turn-270 {
  transform: rotate(270deg);
}

.turn-360 {
  transform: rotate(360deg);
}

.object-fit-contain {
  object-fit: contain;
}

.object-fit-cover {
  object-fit: cover;
}

.object-fit-fill {
  object-fit: fill;
}

.object-fit-none {
  object-fit: none;
}

/* Utility Classes */

/* Animations */

.animate {
  animation-duration: 1s;
  animation-fill-mode: both;
}

.animation--slow {
  animation-duration: 1.8s;
}

.animation--normal {
  animation-duration: 1s;
}

.animation--fast {
  animation-duration: 0.6s;
}

.animation--delay-1s {
  animation-delay: 1s;
}

.animation--easeIn {
  animation-timing-function: ease-in;
}


/* Fade In Animation */
@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.fadeIn {
  animation-name: fadeIn;
  animation-duration: 1s;
  animation-timing-function: ease-in;
  opacity: 0;
  /* Initial opacity set to 0 */
  animation-fill-mode: forwards;
  /* Keeps the end state of the animation */
}

/* Fade Out Animation */
@keyframes fadeOut {
  from {
    opacity: 1;
  }

  to {
    opacity: 0;
  }
}

.fadeOut {
  animation-name: fadeOut;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  opacity: 1;
  /* Initial opacity set to 1 */
  animation-fill-mode: forwards;
  /* Keeps the end state of the animation */
}

/* Slide In From Left */
@keyframes slideInFromLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }

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

.slideInFromLeft {
  animation-name: slideInFromLeft;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  opacity: 0;
  /* Initial opacity set to 0 */
  animation-fill-mode: forwards;
  /* Keeps the end state of the animation */
}

/* Slide In From Right */
@keyframes slideInFromRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }

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

.slideInFromRight {
  animation-name: slideInFromRight;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  opacity: 0;
  /* Initial opacity set to 0 */
  animation-fill-mode: forwards;
  /* Keeps the end state of the animation */
}

/* Slide In From Top */
@keyframes slideInFromTop {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

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

.slideInFromTop {
  animation-name: slideInFromTop;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  opacity: 0;
  /* Initial opacity set to 0 */
  animation-fill-mode: forwards;
  /* Keeps the end state of the animation */
}

/* Slide In From Bottom */
@keyframes slideInFromBottom {
  from {
    transform: translateY(100%);
    opacity: 0;
  }

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

.slideInFromBottom {
  animation-name: slideInFromBottom;
  animation-duration: 1s;
  animation-timing-function: ease-out;
  opacity: 0;
  /* Initial opacity set to 0 */
  animation-fill-mode: forwards;
  /* Keeps the end state of the animation */
}

/* Text Animations */

/* Glitch Effect */
@keyframes glitch {
  0% {
    clip: rect(42px, 9999px, 44px, 0);
    transform: skew(0.3deg);
  }

  5% {
    clip: rect(22px, 9999px, 64px, 0);
    transform: skew(0.5deg);
  }

  10% {
    clip: rect(12px, 9999px, 74px, 0);
    transform: skew(0.4deg);
  }

  15% {
    clip: rect(32px, 9999px, 34px, 0);
    transform: skew(0.3deg);
  }

  20% {
    clip: rect(2px, 9999px, 94px, 0);
    transform: skew(0.1deg);
  }

  25% {
    clip: rect(82px, 9999px, 24px, 0);
    transform: skew(0.6deg);
  }

  30% {
    clip: rect(72px, 9999px, 14px, 0);
    transform: skew(0.5deg);
  }

  35% {
    clip: rect(52px, 9999px, 54px, 0);
    transform: skew(0.4deg);
  }

  40% {
    clip: rect(22px, 9999px, 84px, 0);
    transform: skew(0.3deg);
  }

  45% {
    clip: rect(12px, 9999px, 74px, 0);
    transform: skew(0.2deg);
  }

  50% {
    clip: rect(42px, 9999px, 94px, 0);
    transform: skew(0.1deg);
  }

  55% {
    clip: rect(22px, 9999px, 34px, 0);
    transform: skew(0.4deg);
  }

  60% {
    clip: rect(72px, 9999px, 64px, 0);
    transform: skew(0.3deg);
  }

  65% {
    clip: rect(62px, 9999px, 24px, 0);
    transform: skew(0.5deg);
  }

  70% {
    clip: rect(52px, 9999px, 14px, 0);
    transform: skew(0.2deg);
  }

  75% {
    clip: rect(32px, 9999px, 74px, 0);
    transform: skew(0.3deg);
  }

  80% {
    clip: rect(22px, 9999px, 64px, 0);
    transform: skew(0.1deg);
  }

  85% {
    clip: rect(12px, 9999px, 54px, 0);
    transform: skew(0.4deg);
  }

  90% {
    clip: rect(42px, 9999px, 34px, 0);
    transform: skew(0.2deg);
  }

  95% {
    clip: rect(62px, 9999px, 94px, 0);
    transform: skew(0.3deg);
  }

  100% {
    clip: rect(82px, 9999px, 74px, 0);
    transform: skew(0.1deg);
  }
}

/* Responsive Design */
.container {
  max-width: 100%;
}

/* Extra Small (xs) - for mobile devices in portrait mode */
@media (max-width: 575.98px) {
  .xs-display-none {
    display: none;
  }

  .col-xs-1 {
    grid-template-columns: 1fr;
  }

  .col-xs-2 {
    grid-template-columns: 1fr 1fr;
  }

  .col-xs-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .flex-col-xs {
    flex-direction: column;
  }

  .flex-col-xs-rev {
    flex-direction: column-reverse;
  }

  .flex-row-xs {
    flex-direction: row;
  }

  .flex-row-xs-rev {
    flex-direction: row-reverse;
  }

  .container {
    max-width: 540px;
  }
}

/* Small (sm) - for tablet devices in portrait mode */
@media (min-width: 576px) {
  .sm-display-none {
    display: none;
  }

  .col-sm-1 {
    grid-template-columns: 1fr;
  }

  .col-sm-2 {
    grid-template-columns: 1fr 1fr;
  }

  .col-sm-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .flex-col-sm {
    flex-direction: column;
  }

  .flex-col-sm-rev {
    flex-direction: column-reverse;
  }

  .flex-row-sm {
    flex-direction: row;
  }

  .flex-row-sm-rev {
    flex-direction: row-reverse;
  }
}

/* Medium (md) - for tablets in landscape mode */
@media (min-width: 768px) {
  .md-display-none {
    display: none;
  }

  .col-md-1 {
    grid-template-columns: 1fr;
  }

  .col-md-2 {
    grid-template-columns: 1fr 1fr;
  }

  .col-md-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .flex-col-md {
    flex-direction: column;
  }

  .flex-col-md-rev {
    flex-direction: column-reverse;
  }

  .flex-row-md {
    flex-direction: row;
  }

  .flex-row-md-rev {
    flex-direction: row-reverse;
  }

  .container {
    max-width: 720px;
  }
}

/* Large (lg) - for small notebooks and desktops */
@media (min-width: 992px) {
  .lg-display-none {
    display: none;
  }

  .col-lg-1 {
    grid-template-columns: 1fr;
  }

  .col-lg-2 {
    grid-template-columns: 1fr 1fr;
  }

  .col-lg-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .flex-col-lg {
    flex-direction: column;
  }

  .flex-col-lg-rev {
    flex-direction: column-reverse;
  }

  .flex-row-lg {
    flex-direction: row;
  }

  .flex-row-lg-rev {
    flex-direction: row-reverse;
  }

  .container {
    max-width: 960px;
  }
}

/* Extra Large (xl) - for larger notebooks and desktops */
@media (min-width: 1200px) {
  .xl-display-none {
    display: none;
  }

  .col-xl-1 {
    grid-template-columns: 1fr;
  }

  .col-xl-2 {
    grid-template-columns: 1fr 1fr;
  }

  .col-xl-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .flex-col-xl {
    flex-direction: column;
  }

  .flex-col-xl-rev {
    flex-direction: column-reverse;
  }

  .flex-row-xl {
    flex-direction: row;
  }

  .flex-row-xl-rev {
    flex-direction: row-reverse;
  }

  .container {
    max-width: 1140px;
  }
}

/* Extra Extra Large (xxl) - For large monitors and very high resolutions */
@media (min-width: 1400px) {
  .xxl-display-none {
    display: none;
  }

  .col-xxl-1 {
    grid-template-columns: 1fr;
  }

  .col-xxl-2 {
    grid-template-columns: 1fr 1fr;
  }

  .col-xxl-3 {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .flex-col-xxl {
    flex-direction: column;
  }

  .flex-col-xxl-rev {
    flex-direction: column-reverse;
  }

  .flex-row-xxl {
    flex-direction: row;
  }

  .flex-row-xxl-rev {
    flex-direction: row-reverse;
  }

  .container {
    max-width: 1320px;
  }
}