/* Variables */
:root {
  /* Colors */
  
  --color-primary: #0058ff;
  --color-primary-dark: #005177;
  --color-secondary: #ff6f61;
  --color-text: #333;
  --color-default-btn: #111;
  --color-heading: #111;
  --color-bg: #fff;
  --color-lightest-bg: #f3f2f2;
  --color-light-bg: #F3F2F2;
  --color-muted: #9e9e9e;
  --color-border: #f3f2f2;

  /* Fonts */
  --font-body: "Guminert", Arial, Helvetica, sans-serif;
  --font-heading: "Guminert", "Segoe UI", Roboto, sans-serif;
  --font-xsm: clamp(12px,  4vw, 14px);
  --font-sm: clamp(14px, 4vw, 16px);
  --font-md: clamp(16px, 4vw, 18px);
  --font-lg: clamp(18px, 4vw, 20px);
  --font-st: clamp(1.2rem, 4vw, 1.5rem);

  /* Sizing & Spacing */
  --container-width: 1200px;
  --radius: 10px;
  --space-xs: 0.25rem;
  --space-sm: 0.5rem;
  --space-md: 1rem;
  --space-lg: 2rem;

  /* Effects */
  --transition: 0.4s ease;
  --shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  --dark-btn-bg: #1B1B1B;
  --light-btn-bg: #fff;
  --dark-btn-color: #fff;
  --light-btn-color: #1B1B1B;
  --btn-border: 1px solid #1B1B1B;

  --menu-bg: #111111;
  --menu-text: #ffffff;
  --menu-text-secondary: #a0a0a0;
  --menu-border: #333333;
  --cta-accent: #ffffff;
  --menu-duration: 0.4s;
  --menu-timing: cubic-bezier(0.25, 0.46, 0.45, 0.94);

  /*back to top*/
  --button-size: 50px;
  --button-bg: #ffffff;
  --button-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  --icon-color: #333333;
}

/* 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(108deg, #000000, #2758e3 35%, #ffffff);
}

/* 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: 1.2em;
  line-height: 1.4;
  color: var(--color-text);
  background: var(--color-bg);
  overflow-x: hidden;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  margin-bottom: 0.2em;
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--color-heading);
}
h2 {
  font-size: clamp(2rem, 4vw, 3rem)
}
h3 {
  font-size: var(--font-lg);
  line-height: 1.2;
}

/* Text */
p, span {
  font-family: var(--font-body);
  font-size: var(--font-md);
  font-weight: 400;
  color: var(--color-text);
}

@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: #0058ff;
  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 {
    background: var(--color-primary);
    color: #fff;
}
.default-btn {
    background: var(--color-default-btn);
    color: #fff;
}



svg.light, svg.dark{
  height: 12px;
  padding-left: 5px;
}
svg.light{
  fill: #fff;
}
svg.dark{
  fill: #000;
}


.scrumble-text{
  cursor: pointer;
}


a.default-btn{
  font-size: var(--font-sm);
  padding: 12px 20px;
  border-radius: 50px;
  text-decoration: none;
  pointer-events: auto !important;
  position: relative;
  overflow: hidden;
  display: inline-flex;
}

a.no_.btn-underline {
  padding: 10px 0 5px !important;
}
/** button hover animation**/
.default-btn .btn-txt,
.default-btn .btn-icon {
  z-index: 2; 
  color: #fff;  
}

/* 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 1.5s cubic-bezier(0.25, 1, 0.5, 1);
  z-index: 1;
}
.default-btn:hover .btn-bg {
  transform: translate(-50%, -50%) scale(1);
}


/* Back to Top Button Styling */
#backToTopBtn {
  position: fixed;
  bottom: 30px;
  right: 30px;
  width: var(--button-size);
  height: var(--button-size);
  background-color: var(--button-bg);
  border-radius: 50%;
  box-shadow: var(--button-shadow);
  border: none;
  outline: none;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  
  /* Hide by default */
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
}
/* Show class added by JavaScript */
#backToTopBtn.show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
#backToTopBtn:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
  transform: translateY(-2px) scale(1.05);
}
/* SVG for the progress ring and icon */
.progress-ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) rotate(-90deg); /* Start from the top */
  width: 110%;
  height: 110%;
}
.progress-ring__circle {
  transition: stroke-dashoffset 0.2s;
  stroke-width: 2px;
  fill: transparent;
}
.progress-ring__background {
  stroke: var(--color-muted);
}
.progress-ring__progress {
  stroke: var(--color-primary);
  stroke-linecap: round; /* Makes the line end rounded */
}
svg.dark.back-to-top-icon {
    rotate: -45deg;
}


