/*
 * Critical app-shell styling lives in a same-origin stylesheet instead of the
 * document's HTML. This lets public pages use a CSP that rejects inline style
 * elements before the React bundle loads, without a flash of unstyled content.
 */
:root {
  --background: 0 0% 100%;
  --foreground: 240 10% 3.9%;
}

.dark {
  --background: 240 10% 3.9%;
  --foreground: 0 0% 98%;
}

*,
*::after,
*::before {
  box-sizing: border-box;
  border: 0 solid;
}

html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  font-family: ui-sans-serif, system-ui, sans-serif;
}

body {
  margin: 0;
  line-height: inherit;
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
}

#root {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.loading-skeleton {
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
  50% {
    opacity: 0.5;
  }
}
