@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700;800;900&display=swap');

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}
.radial-soul {
  background: radial-gradient(circle at top left, #ff3bdf, #6600ff);
}
.btn-hover-white {
  transition: all 0.4s cubic-bezier(0.25, 1, 0.5, 1) !important;
  will-change: transform, box-shadow, background-color, color;
  border-radius: 9999px !important;
}
.btn-hover-white:hover {
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
  color: #000000 !important;
  box-shadow: inset 0 0 0 2px #000000, 0 15px 35px -5px rgba(255, 255, 255, 0.4) !important;
  transform: translateY(-3px) scale(1.02);
  border-color: #000000 !important;
}
.btn-hover-white:hover * {
  color: #000000 !important;
}
.isometric-grid {
  background-image: linear-gradient(to right, rgba(209, 107, 255, 0.2) 1px, transparent 1px),
                    linear-gradient(to bottom, rgba(209, 107, 255, 0.2) 1px, transparent 1px);
  background-size: 40px 40px;
  transform: perspective(1000px) rotateX(60deg) translateY(-100px);
  mask-image: linear-gradient(to bottom, black, transparent);
}
html.light-mode {
  filter: invert(1) hue-rotate(180deg) saturate(1.8) contrast(1.1);
}
html.light-mode img {
  filter: invert(1) hue-rotate(180deg) saturate(0.55) contrast(0.9);
}

@property --angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

@keyframes rotate-border {
  to {
    --angle: 360deg;
  }
}

.glass-card {
  position: relative;
  z-index: 10;
  background-color: rgba(10, 10, 15, 0.4);
  backdrop-filter: blur(50px);
  -webkit-backdrop-filter: blur(50px);
  /* The border itself is implemented via pseudo-element */
  border-radius: 2.5rem;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.8);
  overflow: hidden;
  transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}

.glass-card:hover {
  transform: scale(1.01);
}

.glass-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px; /* border width */
  background: conic-gradient(from var(--angle), transparent 40%, rgba(209, 107, 255, 0.2) 70%, rgba(255, 255, 255, 0.4) 100%);
  -webkit-mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  mask: 
    linear-gradient(#fff 0 0) content-box, 
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  animation: rotate-border var(--border-dur, 4s) linear infinite var(--border-dir, normal);
}

/* Scroll Reveal Animation Classes */
.reveal {
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: opacity, transform;
}

.reveal.active {
  opacity: 1;
  transform: translateY(0);
}

.font-poppins {
  font-family: 'Poppins', sans-serif;
}
