:root {
  --ds-glass-bg: rgba(255, 255, 255, 0.85);
  --ds-mesh-1: radial-gradient(ellipse 70% 50% at 30% -10%, rgba(242, 196, 141, 0.15), transparent 50%);
  --ds-mesh-2: radial-gradient(ellipse 60% 50% at 70% -10%, rgba(191, 147, 94, 0.1), transparent 50%);
  --ds-mesh-3: transparent;
  --gx-1: 6%;
  --gx-2: 28%;
  --gx-3: 62%;
  --gx-4: 94%;
  --gy-1: 100px;
  --grid-color: rgba(140, 93, 35, 0.06);
  --beam-color: rgba(191, 147, 94, 0.8);
}

body {
  font-family: "DM Sans", system-ui, sans-serif;
  font-optical-sizing: auto;
  background-color: #FAFAF9;
  background-image: var(--ds-mesh-1), var(--ds-mesh-2), var(--ds-mesh-3);
  color: #26140A;
}

.font-display { font-family: Fraunces, Georgia, serif; }

/* Animations */
@keyframes animationIn {
  0% {
    opacity: 0;
    transform: translateY(30px);
    filter: blur(8px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0px);
  }
}
.animate-on-scroll { animation-play-state: paused !important; }
.animate-on-scroll.animate { animation-play-state: running !important; }

.glass-panel {
  background: var(--ds-glass-bg);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
}
.glass-effect {
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.gradient-text {
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}
.card-vertical-divider {
  width: 1px;
  background-image: linear-gradient(180deg,
    transparent,
    rgba(140, 93, 35, 0.2) 25%,
    rgba(140, 93, 35, 0.45) 50%,
    rgba(140, 93, 35, 0.2) 75%,
    transparent
  );
}
.card-divider {
  height: 1px;
  background-image: linear-gradient(90deg,
    transparent,
    rgba(140, 93, 35, 0.2) 20%,
    rgba(140, 93, 35, 0.4) 50%,
    rgba(140, 93, 35, 0.2) 80%,
    transparent
  );
}
[style*="--border-gradient"]::before {
  content: "";
  position: absolute;
  inset: 0;
  padding: 1px;
  border-radius: var(--border-radius-before, inherit);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  background: var(--border-gradient);
  pointer-events: none;
}

.ds-label {
  font-family: "JetBrains Mono", monospace;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: #8C5D23;
  margin-bottom: 1rem;
  display: block;
  font-weight: 600;
}

/* Background Pattern */
.bg-grid-pattern {
  background-image: radial-gradient(circle at 1px 1px, rgba(140, 93, 35, 0.05) 1px, transparent 0);
  background-size: 32px 32px;
}

/* White Medical Grid System Adapted */
.grid-line-v {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--grid-color);
  z-index: 0;
}
.grid-line-h {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: var(--grid-color);
  z-index: 0;
}
.marker {
  position: absolute;
  width: 5px;
  height: 5px;
  background-color: #8C5D23;
  z-index: 30;
  opacity: 0;
  animation: fade-in 0.5s ease-out 1s forwards;
}
@keyframes fade-in {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes fadeUp {
  0% { opacity: 0; transform: translateY(100%); }
  100% { opacity: 1; transform: translateY(0); }
}
.animate-fade-up {
  animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}
@keyframes beam-v {
  0% { top: -200px; opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}
.beam-v {
  position: absolute;
  width: 1px;
  height: 200px;
  background: linear-gradient(180deg, transparent, var(--beam-color), transparent);
  z-index: 10;
  opacity: 0;
}
@keyframes marquee-scroll { 
  0% { transform: translateX(0); } 
  100% { transform: translateX(-50%); } 
}
.animate-marquee { 
  animation: marquee-scroll 30s linear infinite; 
}
.mask-linear-fade {
  mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
  -webkit-mask-image: linear-gradient(to right, transparent, black 15%, black 85%, transparent);
}