/* vfs:src/index.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
  --font-display: "Cormorant Garamond", serif;
  --font-sans:
    "Manrope",
    system-ui,
    sans-serif;
}
body {
  font-family: var(--font-sans);
  background-color: rgb(var(--ink));
  color: rgb(var(--paper));
  overflow-x: clip;
}
html {
  overflow-x: clip;
}
.font-display {
  font-family: var(--font-display);
}
::-webkit-scrollbar {
  width: 5px;
}
::-webkit-scrollbar-track {
  background: rgb(var(--ink));
}
::-webkit-scrollbar-thumb {
  background: rgba(var(--paper) / 0.08);
  border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
  background: rgba(var(--brand) / 0.4);
}
::selection {
  background: rgb(var(--brand) / 0.3);
  color: rgb(var(--paper));
}
html.lenis,
html.lenis body {
  height: auto;
}
.lenis.lenis-smooth {
  scroll-behavior: auto !important;
}
.lenis.lenis-stopped {
  overflow: hidden;
}
@keyframes pulse-glow {
  0%, 100% {
    box-shadow: 0 0 0 0 rgb(var(--brand) / 0.5);
  }
  50% {
    box-shadow: 0 0 0 16px rgb(var(--brand) / 0);
  }
}
.animate-pulse-glow {
  animation: pulse-glow 2.2s ease-out infinite;
}
@keyframes loading-shimmer {
  0% {
    transform: translateX(-120%);
  }
  100% {
    transform: translateX(320%);
  }
}
@keyframes loading-reveal {
  0% {
    transform: scaleX(0);
    opacity: 1;
  }
  100% {
    transform: scaleX(1);
    opacity: 0;
  }
}
.animate-loading-shimmer {
  animation: loading-shimmer 2s ease-in-out infinite;
}
.animate-loading-reveal {
  animation: loading-reveal 1.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.cinematic-noise {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}
