/* ─── Material Symbols ──────────────────────────────────────────── */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  display: inline-block;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  vertical-align: middle;
}

/* ─── Marquee animation ─────────────────────────────────────────── */
@keyframes marquee {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes marquee-reverse {
  0%   { transform: translateX(-50%); }
  100% { transform: translateX(0); }
}
.animate-marquee {
  display: flex;
  width: max-content;
  animation: marquee 30s linear infinite;
}
.animate-marquee-reverse {
  display: flex;
  width: max-content;
  animation: marquee-reverse 30s linear infinite;
}
.animate-marquee:hover,
.animate-marquee-reverse:hover {
  animation-play-state: paused;
}

/* ─── Scroll reveal ─────────────────────────────────────────────── */
.fade-up {
  opacity: 0;
  transform: translateY(24px);
  transition:
    opacity  0.8s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ─── Cursor glow ───────────────────────────────────────────────── */
#cursor-glow {
  position: fixed;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(242, 177, 52, 0.06) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
  transform: translate(-50%, -50%);
  transition: left 0.15s ease-out, top 0.15s ease-out;
}

/* ─── Timeline dot ──────────────────────────────────────────────── */
.timeline-dot {
  position: absolute;
  left: -5px;
  top: 4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

/* ─── Dark mode overrides ───────────────────────────────────────── */
.dark body                       { background-color: #14100c; color: #fcf9f0; }
.dark .bg-surface                { background-color: #14100c !important; }
.dark .bg-surface-container-low\/30 { background-color: rgba(30,25,20,0.5) !important; }

/* ─── Base ──────────────────────────────────────────────────────── */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }

/* ─── Theme Transition (View Transitions API) ────────────────────── */
::view-transition-old(root),
::view-transition-new(root) {
  animation: none;
  mix-blend-mode: normal;
}
::view-transition-old(root) { z-index: 1; }
::view-transition-new(root) { z-index: 2; }

/* ─── Side Nav Expansion ────────────────────────────────────────── */
#side-nav {
  width: 48px;
  height: auto;
  border-radius: 9999px;
  background-color: rgba(246, 243, 234, 0.9); /* surface-container-low/90 */
  padding: 1.5rem 0.5rem;
  transition: 
    width 0.4s cubic-bezier(0.25, 1, 0.5, 1),
    border-radius 0.4s cubic-bezier(0.25, 1, 0.5, 1),
    padding 0.4s cubic-bezier(0.25, 1, 0.5, 1),
    background-color 0.3s ease,
    box-shadow 0.3s ease;
  overflow: hidden;
}

#side-nav:hover {
  width: 250px;
  border-radius: 28px;
  padding: 1.5rem 1rem;
  background-color: rgba(246, 243, 234, 0.98); /* solid container low */
  box-shadow: 
    0 10px 30px -10px rgba(20, 16, 12, 0.12),
    0 1px 3px rgba(20, 16, 12, 0.05);
}

/* Dark mode overrides for side-nav */
.dark #side-nav {
  background-color: rgba(30, 25, 20, 0.9); /* dark surface container low */
}
.dark #side-nav:hover {
  background-color: rgba(30, 25, 20, 0.98);
  box-shadow: 
    0 20px 40px -15px rgba(0, 0, 0, 0.5),
    0 1px 3px rgba(0, 0, 0, 0.2);
}

/* Nav items base layout */
.nav-item {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  border-radius: 9999px;
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
  overflow: hidden;
  text-decoration: none;
}

/* Hover and active capsules when sidebar is expanded */
#side-nav:hover .nav-item {
  justify-content: flex-start;
  padding: 0 0.75rem;
}

/* Active or Hovered pill backgrounds */
#side-nav:hover .nav-item:hover,
#side-nav:hover .nav-item.active {
  background-color: rgba(235, 232, 223, 0.75); /* surface-container-high */
}
.dark #side-nav:hover .nav-item:hover,
.dark #side-nav:hover .nav-item.active {
  background-color: rgba(56, 49, 42, 0.75); /* dark surface container high */
}

/* Collapsed content transition */
.nav-collapsed {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 1;
  transform: scale(1);
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#side-nav:hover .nav-collapsed {
  opacity: 0;
  transform: scale(0.6);
  pointer-events: none;
}

/* Expanded content transition */
.nav-expanded {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: max-content;
  opacity: 0;
  transform: translateX(-15px);
  pointer-events: none;
  transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1);
}

#side-nav:hover .nav-expanded {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
}

/* Separator line style */
.nav-line {
  display: inline-block;
  width: 24px;
  height: 1px;
  background-color: currentColor;
  opacity: 0.25;
  transition: opacity 0.3s ease, width 0.3s ease;
}

.nav-item:hover .nav-line,
.nav-item.active .nav-line {
  opacity: 0.6;
}

/* Overriding default transition opacity rules when menu is hovered */
#side-nav:hover .nav-item {
  opacity: 0.5 !important;
}
#side-nav:hover .nav-item:hover,
#side-nav:hover .nav-item.active {
  opacity: 1 !important;
}

/* Active or Hovered item text color styles matching image exactly */
#side-nav:hover .nav-item:hover .nav-num,
#side-nav:hover .nav-item:hover .nav-label,
#side-nav:hover .nav-item:hover .nav-line,
#side-nav:hover .nav-item.active .nav-num,
#side-nav:hover .nav-item.active .nav-label,
#side-nav:hover .nav-item.active .nav-line {
  color: #755841 !important; /* Secondary brown color */
  font-weight: 600;
}

.dark #side-nav:hover .nav-item:hover .nav-num,
.dark #side-nav:hover .nav-item:hover .nav-label,
.dark #side-nav:hover .nav-item:hover .nav-line,
.dark #side-nav:hover .nav-item.active .nav-num,
.dark #side-nav:hover .nav-item.active .nav-label,
.dark #side-nav:hover .nav-item.active .nav-line {
  color: #e5bfa2 !important; /* light beige/apricot for dark mode text */
}

/* ─── Contact Background Blobs ───────────────────────────────────── */
@keyframes float-blob-1 {
  0% { transform: translate(0px, 0px) scale(1); }
  33% { transform: translate(30px, -50px) scale(1.1); }
  66% { transform: translate(-20px, 20px) scale(0.9); }
  100% { transform: translate(0px, 0px) scale(1); }
}

@keyframes float-blob-2 {
  0% { transform: translate(0px, 0px) scale(1.1); }
  50% { transform: translate(-40px, 40px) scale(0.9); }
  100% { transform: translate(0px, 0px) scale(1.1); }
}

.animate-blob-1 {
  animation: float-blob-1 20s infinite alternate ease-in-out;
}

.animate-blob-2 {
  animation: float-blob-2 25s infinite alternate ease-in-out;
}

/* ─── Scrolled Header Override (Light Mode Only) ─────────────────── */
html:not(.dark) #site-header.scrolled #header-right {
  border-color: rgba(20, 16, 12, 0.15) !important;
  color: #14100c !important;
}

html:not(.dark) #site-header.scrolled #header-right .header-right-label {
  color: rgba(20, 16, 12, 0.6) !important;
}

html:not(.dark) #site-header.scrolled #header-right .header-right-value {
  color: #14100c !important;
}

html:not(.dark) #site-header.scrolled #header-right .header-right-line {
  background-color: rgba(20, 16, 12, 0.2) !important;
}

html:not(.dark) #site-header.scrolled #header-right #theme-toggle {
  color: #14100c !important;
}

/* ─── Footer Logotype Custom Style ──────────────────────────────── */
.footer-logotype {
  font-family: Archivo, ui-sans-serif, system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
  color: oklab(0.268247 0.00455035 0.0108488 / 0.9);
  font-size: clamp(60px, 15vw, 288px);
  line-height: clamp(52px, 13vw, 248px);
  letter-spacing: -0.04em;
  text-align: center;
  transition: color 0.3s ease;
}

.dark .footer-logotype {
  color: #fcf9f0; /* Warm white/cream in dark mode */
}

/* ─── Hero Title Custom Style ──────────────────────────────────── */
.hero-title {
  font-family: Archivo, ui-sans-serif, system-ui, sans-serif;
  font-style: normal;
  font-weight: 600;
  color: rgb(26, 22, 18);
  font-size: clamp(48px, 9vw, 152px);
  line-height: clamp(42px, 8vw, 125px);
  letter-spacing: -0.03em;
  -webkit-text-stroke: 1.5px #ffffff;
  transition: color 0.3s ease;
}

.dark .hero-title {
  color: #ffffff;
}

/* ─── Global Dark Mode Accessibility & Readability Overrides ────── */
.dark .text-primary:not([class*="dark:text-"]) {
  color: #fcf9f0;
}

.dark .text-secondary:not([class*="dark:text-"]) {
  color: #e5bfa2;
}

.dark .text-on-surface:not([class*="dark:text-"]) {
  color: #fcf9f0;
}

.dark [class*="text-on-surface-variant"]:not([class*="dark:text-"]) {
  color: #cec5bd;
}

.dark .text-outline:not([class*="dark:text-"]) {
  color: rgba(252, 249, 240, 0.6);
}

.dark .border-border-low-contrast:not([class*="dark:border-"]) {
  border-color: rgba(252, 249, 240, 0.15);
}

.dark .border-primary:not([class*="dark:border-"]) {
  border-color: #fcf9f0;
}

.dark [class*="border-[#1A1614]"]:not([class*="dark:border-"]) {
  border-color: rgba(252, 249, 240, 0.15);
}

.dark .bg-surface-container-low:not([class*="dark:bg-"]) {
  background-color: #1e1914;
}

.dark .bg-surface-container:not([class*="dark:bg-"]) {
  background-color: #1e1914;
}

.dark .bg-surface-dim\/30:not([class*="dark:bg-"]) {
  background-color: rgba(30, 25, 20, 0.3);
}

.dark .hover\:text-primary:hover {
  color: #fcf9f0 !important;
}

.dark .hover\:border-primary:hover {
  border-color: #fcf9f0 !important;
}

.dark .opacity-30 {
  opacity: 0.55;
}

.dark .opacity-60 {
  opacity: 0.8;
}

.dark .animate-marquee .opacity-20 {
  opacity: 0.45;
}






