@tailwind base;
@tailwind components;
@tailwind utilities;

/* ── Design Tokens ── */
:root {
  /* Layout */
  --sidebar-width: 0px;
  --statusbar-height: 0px;

  /* Warp — fast streak-in for elements entering the viewport */
  --motion-warp-duration: 150ms;
  --motion-warp-easing: cubic-bezier(0.16, 1, 0.3, 1);

  /* Pulse — rhythmic heartbeat for live/capacity indicators */
  --motion-pulse-duration: 2000ms;
  --motion-pulse-easing: ease-in-out;

  /* Glide — smooth open/close for palettes, panels, drawers */
  --motion-glide-duration: 250ms;
  --motion-glide-easing: cubic-bezier(0.33, 1, 0.68, 1);

  /* Counters — animated number transitions */
  --motion-counter-duration: 800ms;
  --motion-counter-easing: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (min-width: 1024px) {
  body > main,
  body > footer {
    margin-left: var(--sidebar-width, 0px);
    transition: margin-left 200ms ease;
  }
}

body {
  padding-bottom: var(--statusbar-height, 0px);
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --motion-warp-duration: 0ms;
    --motion-pulse-duration: 0ms;
    --motion-glide-duration: 0ms;
    --motion-counter-duration: 0ms;
  }
}

/* ── Surface Treatment Utilities ── */
@layer utilities {
  .logo-brand-tint {
    filter: brightness(0) invert(1) sepia(1) saturate(6) hue-rotate(194deg) brightness(0.75);
  }

  .glass {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    @apply bg-white/80 dark:bg-slate-900/80;
  }

  .dot-grid {
    position: relative;
  }

  .dot-grid::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, currentColor 1px, transparent 1px);
    background-size: 24px 24px;
    opacity: 0.08;
    pointer-events: none;
    z-index: 0;
    border-radius: inherit;
  }

  .noise-bg {
    position: relative;
  }

  .noise-bg::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(/%23n)'/%3E%3C/svg%3E");
    opacity: 0.05;
    pointer-events: none;
    z-index: 0;
    border-radius: inherit;
  }
}

