:root {

  /* Colors */
  --color-primary: #FF3700;
  --color-accent: #ff37001f;
  --icon: var(--color-primary);
  --bg-gradient: linear-gradient(25deg, hsl(0 0 88%), hsl(0 0 90%));
  --bg-dark: hsl(0 0 5%);
  --bg: hsl(0 0 95%);
  --bg-light: hsl(0 0 100%);
  --text: hsl(0 0 10%);
  --text-dark: hsl(0 0 95%);
  --text-muted: hsl(0 0 50%);
  --border: hsl(0 0 88%);
  --box-shadow: rgba(0, 0, 0, 0.08) 0px 0.602187px 0.602187px -0.916667px, rgba(0, 0, 0, 0.08) 0px 2.28853px 2.28853px -1.83333px, rgba(0, 0, 0, 0.07) 0px 10px 10px -2.75px;
  --gradient-grey: linear-gradient(0deg var(--bg) 95%, var(--bg-light));
  --gradient-color: linear-gradient(90deg,#ff9b55,#ff2cc0 32%,#3f2fee 99%);

  /* Fonts */
  --font-body: "Guminert", Arial, Helvetica, sans-serif;
  --font-heading: "Guminert", "Segoe UI", Roboto, sans-serif;
  --font-xsm: clamp(0.75rem,  3vw, 0.875rem);
  --font-sm: clamp(0.875rem, 3vw, 1rem);
  --font-md: clamp(1rem, 4vw, 1.125rem);
  --font-lg: clamp(1.125rem, 4vw, 1.25rem);
  --font-st: clamp(1.125rem, 4vw, 1.5rem);

  /* Sizing & Spacing */
  --container-width: 1400px;
  --radius: 10px;
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 2rem;

}

/* Reset / Normalize */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Custom Scrollbar for Webkit Browsers */
::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-track {
  background-color: var(--color-lightest-bg);
}

::-webkit-scrollbar-thumb {
  background-color: var(--color-primary);
  border-radius: 0px;
  transition: background 0.3s ease; /* Smooth transition on hover */
}

::-webkit-scrollbar-thumb:hover {
  background-image: linear-gradient(135deg, #000000, #000000, #000000);
}

/* Fonts */
@font-face {
  font-family: 'Guminert';
  src: url('assets/font/Guminert-Medium.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Guminert';
  src: url('assets/font/Guminert-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Guminert';
  src: url('assets/font/Guminert-ExtraBold.woff2') format('woff2');
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

/* Body */
body {
  font-family: var(--font-body);
  font-size: var(--font-md);
  line-height: 1.6;
  color: var(--text);
  background: var(--bg);
  overflow-x: hidden;
}
.content-wrapper>section {
  border-bottom: 1px solid var(--border);  
}

.container{ 
  display: flex;
  flex-direction: column;  
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 6.5rem 2.5rem;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
}
.content-bg{
  background: var(--bg-gradient);
  border-radius: 16px;
  padding: 7px;
}

.animate {
  opacity: 0;
  transform: scale(0.8) skewX(8deg);
  filter: blur(6px);
  transition:
    transform 1.2s cubic-bezier(0.19, 1, 0.22, 1),
    filter 0.8s ease,
    opacity 0.8s ease;
}

.animate.show {
  opacity: 1;
  transform: scale(1) skewX(0);
  filter: blur(0);
}






/* Headings */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 800;
  line-height: 1.2;
  color: var(--text);
}
h2 {
  font-size: clamp(2.25rem, 4vw, 3.25rem);
}


/* Text */
p {
  font-family: var(--font-body);
  font-size: var(--font-md);
  font-weight: 400;
  color: var(--text);
  line-height: 1.6;
}

@keyframes underlineHover {
  0% {
    background-position-x: 100%;
    background-size: 100% 2px;
  }
  50% {
    background-position-x: 100%;
    background-size: 0% 2px;
  }
  51% {
    background-position-x: 0%;
    background-size: 0% 2px;
  }
  100% {
    background-position-x: 0%;
    background-size: 100% 2px;
  }
}

/** cursor **/
#ball, #cursor-text {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 99999;
  will-change: transform, width, height, opacity;
  transform: translate(-50%, -50%);
}

/* small dot default */
/** cursor **/
#ball, #cursor-text {
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 99999;
  will-change: transform, width, height, opacity;
  transform: translate(-50%, -50%);
}

/* small dot default */
#ball {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--color-primary);
  backdrop-filter: blur(10px);
  transition: width .4s ease, height .4s ease, opacity .12s ease;
}

/* label */
#cursor-text>span{
  color: #fff;
  line-height: 1;
  font-size: 1.2em;    
}
#cursor-text {
  display: flex;
  align-items: center;
  gap: 2px; 
  font-size: 14px;
  padding: 1px 2px;
  border-radius: 6px;
  white-space: nowrap;
  opacity: 0;
  transform: translate(-50%, -150%); 
  transition: opacity .2s ease;
}
#cursor-text i, #cursor-text svg {
  display: inline-block;
  vertical-align: middle;
}



/** link & button animation **/
a {
  width: max-content;
  position: relative;
  color: #000;
  text-decoration: none;
}
a:not(.no_)::after {
  content: '';
  position: absolute;
  width: 100%;
  transform: scaleX(0);
  border-radius: 5px;
  height: 2px;
  bottom: 0;
  left: 0;
  background: currentcolor;
  transform-origin: bottom right;
  transition: transform 0.25s ease-out;
}
a:not(.no_):hover::after {
  transform: scaleX(1);
  transform-origin: bottom left;
}

.btn-underline {
  font-size: var(--font-sm);
  font-weight: 600;  
  line-height: 2;
  padding: 0;
  border-radius: 0;  
  position: relative;
  text-decoration: none;
  color: inherit;
  padding-bottom: 2px;
  background: linear-gradient(90deg, black, black);
  background-size: 100% 2px;
  background-position-x: 0%;
  background-position-y: calc(100% - 2px);
  background-repeat: no-repeat;

  &:hover {
    animation-name: underlineHover;
    animation-duration: 0.6s;
    animation-timing-function: ease-in-out;
  }
}


a.cta-btn:hover .btn-txt{
  color: #ffffff;
}
.default-btn {
  background: var(--text);
  color: #fff;
}
span.btn-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-primary);
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 100%;
    margin-left: auto;
}
a.no_.btn-dark.header-cta, a.no_.btn-dark.header-cta span {
  background: var(--color-primary);
}


svg.light, svg.dark{
  height: 12px;
}
svg.light{
  fill: var(--bg-light);
}
svg.dark{
  fill: var(--bg-dark);
}


.default-btn {
  font-size: var(--font-sm);
  padding: 0.3rem .3rem .3rem 1.25rem;
  border-radius: 50px;
  text-decoration: none;
  pointer-events: auto !important;
  position: relative;
  overflow: hidden;
  display: inline-flex;
  gap: .5rem;
  align-items: center;
  border: 1px solid #262626;
  box-shadow: var(--box-shadow);
}
.default-btn:hover{
  border: 1px solid var(--color-primary);
}
.header-cta a.cta-btn {
  background: var(--color-primary);
  border: 1px solid var(--color-primary);  
}
.header-cta:hover a.cta-btn {
  border: 1px solid var(--text);  
}
.header-cta a.cta-btn .btn-icon{
  background: var(--text);
}
a.cta-btn {
  background: var(--bg-dark);
}
.btn-outline {
  background: transparent;
  border: 1px solid #262626;
}
.btn-outline .btn-txt {
  color: #262626;
}
.btn-outline:hover .btn-txt {
  color: #ffffff;
}
.btn-outline:hover svg.dark, .default-btn:hover svg.dark{
  fill: #fff;
}
.btn-group {
    display: flex;
    gap: 1.25rem;
}

/** button hover animation**/
.default-btn .btn-txt,
.default-btn .btn-icon {
  z-index: 2; 
  color: #ffffff;  
}
.btn-outline {
  background: transparent;
  border: 1px solid #262626;
}
.btn-outline .btn-txt {
  color: #262626;
}
/* 3. Style the background element that will animate */
.cta .btn-bg{
  background-color: #000 !important;
}
.default-btn.cta-btn .btn-bg{
  background-color: #000;
}
.default-btn .btn-bg{
  background-color: var(--color-primary);
}

.default-btn .btn-bg {
  position: absolute;
  min-width: 300%;
  min-height: 300%;
  aspect-ratio: 1;
  border-radius: 50%;
  /* We will now use JS to set the initial transform, so we remove it here */
  transform: translate(-50%, -50%) scale(0);
  transition: transform 1s cubic-bezier(0.25, 1, 0.5, 1);
  z-index: 1;
}
.default-btn:hover .btn-bg {
  transform: translate(-50%, -50%) scale(1);
}

svg.dark.back-to-top-icon {
    rotate: -45deg;
}

.gradient-text{
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 800;
  background: linear-gradient(90deg,#ff9b55,#ff2cc0 32%,#3f2fee 99%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;  
}

.text-dark{
  color: var(--text-dark);
}
.title {
  padding-bottom: 4rem;
}
.section-title {
  display: flex;
  justify-content: center;
  align-items: center;
  width: max-content;
  font-size: var(--font-sm);
  background: var(--text);
  color: var(--bg);
  padding: 1px 20px;
  border-radius: 20px;
  margin-bottom: 1.25rem;
}
.dot {
  margin-left: 6px;
  width: 8px;
  height: 8px;
  border-radius: 100%;
  background: var(--color-primary);
}