@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@400..800&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Poetsen+One&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');

p,
span,
a,
li,
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Baloo 2", sans-serif;
}

.font-primary {
  font-family: "Poetsen One", serif;
}

html {
  overscroll-behavior-y: none;
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body{
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
}

@media not all and (min-width: 1024px){
  .container{
    width: 91.666667% !important;
  }
}

.hide-scrollbar {
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE and Edge */
}

.hide-scrollbar::-webkit-scrollbar {
  display: none;
  /* Chrome, Safari, Opera */
}

.scrollbar-custom::-webkit-scrollbar {
  width: 3px;
  background-color: transparent;
}

.scrollbar-custom::-webkit-scrollbar-thumb {
  background-color: #4b5563;
  border-radius: 4px;
}

.scrollbar-custom::-webkit-scrollbar-thumb:hover {
  background-color: #6b7280;
}

a{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.text-caption{
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity, 1));
}

.head-tag{
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  --tw-text-opacity: 1;
  color: rgb(187 94 68 / var(--tw-text-opacity, 1));
}

/* --- Gombok --- */

.btn{
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-left: 2rem;
  padding-right: 2rem;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 2px;
  outline-color: transparent;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

.btn-primary{
  border-width: 1px;
  border-color: transparent;
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
  --tw-gradient-from: #d69e8f var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(214 158 143 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #bb5e44 var(--tw-gradient-to-position);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-left: 2rem;
  padding-right: 2rem;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 2px;
  outline-color: transparent;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-primary:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

.btn-primary:hover{
  outline-color: #d69e8f;
}

.btn-secondary{
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(211 200 197 / var(--tw-border-opacity, 1));
  background-color: transparent;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-left: 2rem;
  padding-right: 2rem;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 2px;
  outline-color: transparent;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-secondary:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

.btn-secondary:hover{
  --tw-border-opacity: 1;
  border-color: rgb(214 158 143 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(214 158 143 / var(--tw-bg-opacity, 1));
  outline-color: #d69e8f;
}

.btn-default{
  --tw-bg-opacity: 1;
  background-color: rgb(116 93 88 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-left: 2rem;
  padding-right: 2rem;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 2px;
  outline-color: transparent;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-default:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

.btn-default:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(145 117 110 / var(--tw-bg-opacity, 1));
}

.btn-default:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(187 94 68 / var(--tw-ring-opacity, 1));
}

.btn-default:active{
  --tw-bg-opacity: 1;
  background-color: rgb(87 70 66 / var(--tw-bg-opacity, 1));
}

.btn-danger{
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-left: 2rem;
  padding-right: 2rem;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 2px;
  outline-color: transparent;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-danger:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

.btn-danger:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));
}

.btn-danger:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1));
}

.btn-danger:active{
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity, 1));
}

.btn-outline{
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(187 94 68 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(201 126 105 / var(--tw-text-opacity, 1));
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-left: 2rem;
  padding-right: 2rem;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 2px;
  outline-color: transparent;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-outline:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

.btn-outline:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(187 94 68 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.btn-outline:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(187 94 68 / var(--tw-ring-opacity, 1));
}

.btn-ghost{
  --tw-text-opacity: 1;
  color: rgb(211 200 197 / var(--tw-text-opacity, 1));
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 0.75rem;
  padding-left: 2rem;
  padding-right: 2rem;
  font-weight: 600 !important;
  letter-spacing: 0.025em !important;
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 2px;
  outline-color: transparent;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-ghost:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

.btn-ghost:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(87 70 66 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.btn-ghost:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(145 117 110 / var(--tw-ring-opacity, 1));
}

.btn-lg{
  height: 2.25rem;
  padding-left: 1rem;
  padding-right: 1rem;
}

.btn-sm{
  height: 1.75rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}

.input-control{
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.input-control label{
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  --tw-text-opacity: 1;
  color: rgb(58 47 44 / var(--tw-text-opacity, 1));
}

.input-control .input{
  height: 48px;
  width: 100%;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(212 212 212 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}

.input-control .input:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.input-control .input::-webkit-inner-spin-button{
  -webkit-appearance: none;
          appearance: none;
}

.input-control .input::-webkit-outer-spin-button{
  -webkit-appearance: none;
          appearance: none;
}

.input-control:not(.hide-required-badge):has(.input:required) label{
  position: relative;
}

.input-control:not(.hide-required-badge):has(.input:required) label::after{
  position: absolute;
  top: 0px;
  right: 0px;
  margin-left: 0.125rem;
  font-size: 10px !important;
  font-weight: 400;
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
  --tw-content: 'kötelező';
  content: var(--tw-content);
}

.input-control.require-placeholder:has(.input) label{
  position: relative;
}

.input-control.require-placeholder:has(.input) label::after{
  position: absolute;
  top: 0px;
  right: 0px;
  margin-left: 0.125rem;
  font-size: 10px !important;
  font-weight: 400;
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
  --tw-content: 'kötelező';
  content: var(--tw-content);
}

.input-check-control{
  display: flex;
  align-items: center;
  gap: 0.25rem;
}

.input-check-control label{
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.input-check-control input[type="checkbox"]{
  height: 20px;
  min-height: 20px;
  width: 20px;
  min-width: 20px;
  cursor: pointer;
  border-radius: 6px;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(231 231 231 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
  accent-color: #000;
}

.input-check-control input[type="checkbox"]:checked{
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(214 158 143 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(214 158 143 / var(--tw-bg-opacity, 1));
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  accent-color: #D4FE60;
}

.input-check-control input[type="radio"]{
  height: 29px;
  min-height: 20px;
  width: 29px;
  min-width: 20px;
  cursor: pointer;
  border-radius: 9999px;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(231 231 231 / var(--tw-border-opacity, 1));
  background-color: transparent;
  accent-color: #d69e8f;
}

.input-check-control input[type="radio"]:checked{
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(214 158 143 / var(--tw-border-opacity, 1));
  background-color: transparent;
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

.input-check-control input[type="radio"].checked{
  height: 29px;
  min-height: 20px;
  width: 29px;
  min-width: 20px;
  border-radius: 4px !important;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(231 231 231 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(243 243 243 / var(--tw-bg-opacity, 1));
  accent-color: #d69e8f;
}

.input-check-control input[type="radio"].checked:checked{
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(214 158 143 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(243 243 243 / var(--tw-bg-opacity, 1));
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
}

.input-control .input option{
  --tw-bg-opacity: 1;
  background-color: rgb(58 47 44 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

h2{
  font-size: 2.25rem !important;
  line-height: 2.5rem !important;
  font-weight: 600 !important;
}

@media (min-width: 1024px){
  h2{
    font-size: 3rem !important;
    line-height: 1 !important;
  }
}

h3{
  font-size: 1.25rem !important;
  line-height: 1.75rem !important;
  font-weight: 600 !important;
  line-height: 1.375 !important;
}

/* --- Admin Input --- */

.admin-input-control{
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.admin-input-control label{
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  --tw-text-opacity: 1;
  color: rgb(233 227 226 / var(--tw-text-opacity, 1));
}

.admin-input-control .input{
  height: 48px;
  width: 100%;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(60 63 73 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(34 35 39 / var(--tw-bg-opacity, 1));
  padding-left: 0.625rem;
  padding-right: 0.625rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield;
}

.admin-input-control .input:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.admin-input-control .input::-webkit-inner-spin-button{
  -webkit-appearance: none;
          appearance: none;
}

.admin-input-control .input::-webkit-outer-spin-button{
  -webkit-appearance: none;
          appearance: none;
}

.admin-input-control:not(.hide-required-badge):has(.input:required) label{
  position: relative;
}

.admin-input-control:not(.hide-required-badge):has(.input:required) label::after{
  position: absolute;
  top: 0px;
  right: 0px;
  margin-left: 0.125rem;
  font-size: 10px !important;
  font-weight: 400;
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
  --tw-content: 'kötelező';
  content: var(--tw-content);
}

.admin-input-control.require-placeholder:has(.input) label{
  position: relative;
}

.admin-input-control.require-placeholder:has(.input) label::after{
  position: absolute;
  top: 0px;
  right: 0px;
  margin-left: 0.125rem;
  font-size: 10px !important;
  font-weight: 400;
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity, 1));
  --tw-content: 'kötelező';
  content: var(--tw-content);
}

.admin-input-control .input option{
  --tw-bg-opacity: 1;
  background-color: rgb(58 47 44 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

@keyframes rotateBorder {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

.background-glass {
  background: rgba(255, 255, 255, 0.03);
  box-shadow: inset 0 1px 1px 0 #ffffff29, inset 0 calc(-14px - 0 * 7px) calc(24px + 0 * 22px) -16px #ffffff29;
}

.btn-animated{
  position: relative;
  display: inline-flex;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border-radius: 9999px !important;
  padding-left: 1.75rem;
  padding-right: 1.75rem;
  font-weight: 600;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-animated:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
  --tw-ring-offset-color: #1d1716;
}

.btn-animated:disabled{
  cursor: not-allowed;
  opacity: 0.5;
  --tw-grayscale: grayscale(100%);
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}

.btn-animated.btn-animated-primary{
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #d69e8f var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(214 158 143 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #703829 var(--tw-gradient-to-position);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 4px;
  outline-color: transparent;
}

.btn-animated.btn-animated-primary:hover{
  outline-color: #d69e8f;
}

.btn-animated.btn-animated-primary:active{
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.btn-animated.btn-animated-primary {
  box-shadow: inset 0 1px 1px 0 #ffffff29, inset 0 calc(-14px - 0 * 7px) calc(24px + 0 * 22px) -16px #ffffff29;
}

.btn-animated.btn-silver{
  outline-style: solid;
  outline-width: 2px;
  outline-offset: 4px;
  outline-color: transparent;
}

.btn-animated.btn-silver:hover{
  background-color: rgb(255 255 255 / 0.1) !important;
  outline-color: rgb(255 255 255 / 0.2);
}

.btn-animated.btn-silver:active{
  --tw-scale-x: .9;
  --tw-scale-y: .9;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.btn-animated.btn-silver {
  background: rgba(255, 255, 255, 0.05);
  box-shadow: inset 0 1px 1px 0 #ffffff29, inset 0 calc(-14px - 0 * 7px) calc(24px + 0 * 22px) -16px #ffffff29;
}

/* .btn-with-icon {
    gap: .85rem;
    padding: .4rem .45rem .4rem 1.55rem;
} */

.border-glow {
  border-radius: inherit;
  pointer-events: none;
  opacity: 1;
  padding: 1.5px;
  position: absolute;
  inset: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(#000 0 0), linear-gradient(#000 0 0);
  -webkit-mask-position: 0 0, 0 0;
  -webkit-mask-size: auto, auto;
  -webkit-mask-repeat: repeat, repeat;
  -webkit-mask-clip: content-box, border-box;
  -webkit-mask-origin: content-box, border-box;
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  -webkit-mask-source-type: auto, auto;
  background: inherit;
}

.border-glow-blob {
  background: radial-gradient(circle, #e8eaef 0%, #e8eaef 5%, #e8eaefb3 16%, #e8eaef38 34%, transparent 58%);
  border-radius: 50%;
  width: 144px;
  height: 144px;
  position: absolute;
  top: 0;
  left: 0;
}

.border-glow-blob-first {
  animation: glowRotate 4s linear infinite;
}

.border-glow-blob-second {
  animation: glowRotate2 4s linear infinite;
}

/* .border-glow-blob-second {
  animation: rotateBorder 5s linear infinite;
} */

@keyframes glowRotate {
  0% {
    transform: translate(-50%, -50%) translate(0px, 0px);
  }

  40% {
    transform: translate(-50%, -50%) translate(var(--w), 0px);
  }

  50% {
    transform: translate(-50%, -50%) translate(var(--w), 50px);
  }

  90% {
    transform: translate(-50%, -50%) translate(0px, 50px);
  }

  100% {
    transform: translate(-50%, -50%) translate(0px, 0px);
  }
}

@keyframes glowRotate2 {
  0% {
    transform: translate(-50%, -50%) translate(var(--w), 50px);
  }

  40% {
    transform: translate(-50%, -50%) translate(0px, 50px);
  }

  50% {
    transform: translate(-50%, -50%) translate(0px, 0px);
  }

  90% {
    transform: translate(-50%, -50%) translate(var(--w), 0px);
  }

  100% {
    transform: translate(-50%, -50%) translate(var(--w), 50px);
  }
}

.floating {
  animation: floating 4s ease-in-out infinite;
}

@keyframes floating {
  0%,
  100% {
    transform: translate(0px, 0px) rotate(var(--rotate, 0deg));
  }

  50% {
    transform: translate(var(--x, 0px), var(--y, 0px)) rotate(var(--rotate, 0deg));
  }
}

/* =====================================================
   MODUMY — Immersive Landing Page Utilities
   ===================================================== */

:root {
  --grad-hero: radial-gradient(60% 60% at 50% 0%, rgba(254, 88, 33, 0.25) 0%, rgba(108, 38, 255, 0.12) 45%, rgba(22, 21, 26, 0) 80%);
}

::-moz-selection {
  background: #FE5821;
  color: #fff;
}

::selection {
  background: #FE5821;
  color: #fff;
}

.perspective {
  perspective: 1800px;
}

.preserve-3d {
  transform-style: preserve-3d;
}

.section-glow {
  position: relative;
  isolation: isolate;
}

.section-glow::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--grad-hero);
  pointer-events: none;
}

/* Glass surfaces */

.glass {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)), linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.glass-card{
  border-radius: 1.5rem;
  --tw-shadow: 0 20px 60px -15px rgba(0,0,0,0.6);
  --tw-shadow-colored: 0 20px 60px -15px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02)), linear-gradient(90deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.02));
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

.gradient-text {
  background: linear-gradient(92deg, #FE5821 0%, #FF9159 30%, #ffffff 55%, #70C8FE 80%, #6C26FF 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: gradientShift 8s linear infinite;
}

@keyframes gradientShift {
  to {
    background-position: 200% center;
  }
}

.text-outline {
  -webkit-text-stroke: 1px var(--color, rgba(255, 255, 255, 0.25));
  color: transparent;
}

/* noise texture overlay */

.noise {
  position: relative;
}

.noise::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.035;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Grid background */

.bg-grid {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 40%, transparent 90%);
          mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 40%, transparent 90%);
}

/* Orbs */

.orb {
  position: absolute;
  border-radius: 9999px;
  filter: blur(90px);
  pointer-events: none;
}

/* Marquee for partners / integrations */

.marquee-track {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  animation: marquee 28s linear infinite;
}

.marquee-track.reverse {
  animation-direction: reverse;
}

@keyframes marquee {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

.marquee-wrap {
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

/* Reveal-on-scroll base state (animated via GSAP) */

.reveal {
  opacity: 0;
  transform: translateY(60px);
  will-change: transform, opacity;
}

/* Pill tag */

.pill{
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgb(255 255 255 / 0.7);
  --tw-backdrop-blur: blur(4px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

/* Card hover tilt helper */

.tilt-card {
  transition: transform 0.4s cubic-bezier(.2, .8, .2, 1), box-shadow 0.4s ease;
  transform-style: preserve-3d;
}

/* Feature dot grid */

.dot-grid {
  background-image: radial-gradient(rgba(255, 255, 255, 0.14) 1px, transparent 1px);
  background-size: 22px 22px;
}

/* scroll section min height helper */

.min-h-section {
  min-height: 90vh;
}

/* Step connector line */

.step-line {
  background: linear-gradient(180deg, transparent, rgba(255, 255, 255, 0.25), transparent);
}

/* Pricing toggle */

.toggle-dot {
  transition: transform 0.25s cubic-bezier(.2, .8, .2, 1);
}

/* Browser mockup */

.browser-frame {
  background: linear-gradient(180deg, rgba(36, 35, 42, 0.9), rgba(20, 19, 24, 0.95));
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.browser-dots span{
  display: inline-block;
  height: 0.75rem;
  width: 0.75rem;
  border-radius: 9999px;
}

@media (max-width: 768px) {
  .reveal {
    transform: translateY(30px);
  }
}

.custom-html-content p,
.custom-html-content li{
  margin-bottom: 1.5rem;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity, 1));
}

.custom-html-content h1,
.custom-html-content h2,
.custom-html-content h3,
.custom-html-content h4,
.custom-html-content h5,
.custom-html-content h6{
  margin-bottom: 1.5rem;
  font-weight: 700;
  line-height: 1.625;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
}

.custom-html-content h1{
  font-size: 3.75rem;
  line-height: 1;
}

.custom-html-content h2{
  font-size: 3rem;
  line-height: 1;
}

.custom-html-content h3{
  font-size: 2.25rem;
  line-height: 2.5rem;
}

.custom-html-content h4{
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.custom-html-content h5{
  font-size: 1.5rem;
  line-height: 2rem;
}

.custom-html-content h6{
  font-size: 1.25rem;
  line-height: 1.75rem;
}

.custom-html-content hr{
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  --tw-border-opacity: 1;
  border-color: rgb(55 65 81 / var(--tw-border-opacity, 1));
}

.custom-html-content ul{
  list-style-position: inside;
  list-style-type: disc;
}

.bg-grid {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 40%, transparent 90%);
          mask-image: radial-gradient(ellipse 70% 60% at 50% 30%, #000 40%, transparent 90%);
}