/* Base body styling via design tokens */
body {
  background: var(--vp-c-bg);
  color: var(--vp-c-text-1);
  font-family: var(--vp-font-family-base);
  transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Material Symbols sizing helper — hide text labels until font loads */
.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
  opacity: 0;
  transition: opacity 0.15s ease;
}
.material-symbols-loaded .material-symbols-outlined {
  opacity: 1;
}

/* Summit Guardian - Custom CSS overrides */

/* Smooth page transitions with HTMX */
.htmx-settling {
    opacity: 0.8;
}

.htmx-swapping {
    opacity: 0.5;
    transition: opacity 0.15s ease-out;
}

/* Form elements — ensure contrast in dark mode */
input, select, textarea {
    background: var(--vp-c-bg);
    color: var(--vp-c-text-1);
}
input::placeholder, textarea::placeholder {
    color: var(--vp-c-text-3);
}
input:focus, select:focus, textarea:focus {
    outline: none;
}

/* Alpine.js cloak */
[x-cloak] {
    display: none !important;
}
