/* ==============================================================================
   ANX STUDIO - PREMIUM ARCHITECTURAL STYLING & CUSTOM UTILITIES
   ============================================================================== */

:root {
  --brand-bg: #F6F3EF;
  --brand-dark: #191817;
  --brand-charcoal: #34312F;
  --brand-muted: #746E69;
  --brand-border: #D8D1CB;
  --brand-terracotta: #A95749;
  --brand-card: #FFFFFF;
  --brand-subtle: #EAE5DF;
}

/* Custom Typography (Upright Serif) */
.font-italic-serif {
  font-family: 'Source Serif 4', Georgia, serif;
  font-style: normal;
  font-weight: 400;
}

/* Custom Arch Mask for Hero Visual */
.custom-arch-mask {
  border-top-left-radius: 140px;
}

@media (max-width: 768px) {
  .custom-arch-mask {
    border-top-left-radius: 60px;
  }
}

/* Bespoke Minimalist Scrollbar */
::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #F6F3EF;
}

::-webkit-scrollbar-thumb {
  background: #D8D1CB;
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background: #A95749;
}

/* Micro Animations */
@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: scale(0.96) translateY(8px);
  }

  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes toastSlideUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-fade-in-scale {
  animation: fadeInScale 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.animate-toast {
  animation: toastSlideUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Mobile Drawer Overlay Transitions */
#mobile-menu-drawer {
  transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.35s ease;
}

#mobile-menu-drawer.drawer-closed {
  transform: translateX(100%);
  opacity: 0;
  pointer-events: none;
}

#mobile-menu-drawer.drawer-open {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}

/* Consultation Modal Transitions */
#consultation-modal {
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

#consultation-modal.modal-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

#consultation-modal.modal-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Active Nav Dot Transition */
.nav-link {
  position: relative;
}

.nav-link.active::after {
  content: '';
  position: absolute;
  bottom: -5px;
  left: 50%;
  transform: translateX(-50%);
  width: 5px;
  height: 5px;
  border-radius: 9999px;
  background-color: var(--brand-terracotta);
}

/* Metric Hover Card Micro-Elevation */
.stat-card-hover {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.stat-card-hover:hover {
  transform: translateY(-2px);
}

/* Dashboard live ping pulse */
.live-pulse {
  animation: livePing 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

@keyframes livePing {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(16, 185, 129, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0);
  }
}