/* shadcn/ui zinc theme (1:1 from swissrdp.com) */
:root {
  --background: 0 0% 100%;
  --foreground: 0 0% 3.9%;
  --card: 0 0% 100%;
  --card-foreground: 0 0% 3.9%;
  --popover: 0 0% 100%;
  --popover-foreground: 0 0% 3.9%;
  --primary: 0 0% 9%;
  --primary-foreground: 0 0% 98%;
  --secondary: 0 0% 96.1%;
  --secondary-foreground: 0 0% 9%;
  --muted: 0 0% 96.1%;
  --muted-foreground: 0 0% 45.1%;
  --accent: 0 0% 96.1%;
  --accent-foreground: 0 0% 9%;
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 0 0% 98%;
  --border: 0 0% 89.8%;
  --input: 0 0% 89.8%;
  --ring: 0 0% 3.9%;
  --radius: 0.5rem;
}

.dark {
  --background: 0 0% 3.9%;
  --foreground: 0 0% 98%;
  --card: 0 0% 3.9%;
  --card-foreground: 0 0% 98%;
  --popover: 0 0% 3.9%;
  --popover-foreground: 0 0% 98%;
  --primary: 0 0% 98%;
  --primary-foreground: 0 0% 9%;
  --secondary: 0 0% 14.9%;
  --secondary-foreground: 0 0% 98%;
  --muted: 0 0% 14.9%;
  --muted-foreground: 0 0% 63.9%;
  --accent: 0 0% 14.9%;
  --accent-foreground: 0 0% 98%;
  --destructive: 0 62.8% 30.6%;
  --destructive-foreground: 0 0% 98%;
  --border: 0 0% 14.9%;
  --input: 0 0% 14.9%;
  --ring: 0 0% 83.1%;
}

[x-cloak] { display: none !important; }

html, body {
  background-color: hsl(var(--background));
  color: hsl(var(--foreground));
  font-feature-settings: "rlig" 1, "calt" 1;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: hsl(var(--background)); }
::-webkit-scrollbar-thumb { background: hsl(var(--muted)); border-radius: 6px; border: 2px solid hsl(var(--background)); }
::-webkit-scrollbar-thumb:hover { background: hsl(var(--muted-foreground) / 0.5); }

table { border-collapse: collapse; }

.text-destructive { color: hsl(var(--destructive)); }

/* Light rays canvas — fills its parent */
.light-rays-container {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.light-rays-container canvas {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-section { position: relative; overflow: hidden; }
.hero-section > .container, .hero-section > * { position: relative; z-index: 10; }
.hero-section > .light-rays-wrap { z-index: 0; }

.light-rays-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.light-rays-wrap-fixed {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.light-rays-wrap-fixed .light-rays-container {
  position: absolute;
  inset: 0;
}

/* Status dot pulse */
@keyframes pulse-online {
  0%, 100% { box-shadow: 0 0 0 0 hsl(142 71% 45% / 0.5); }
  50% { box-shadow: 0 0 0 4px hsl(142 71% 45% / 0); }
}
.dot-online { animation: pulse-online 2s ease-in-out infinite; }

/* TextType cursor blink */
.text-type__cursor {
  display: inline-block;
  margin-left: 2px;
  font-weight: 100;
  animation: blink 1s step-end infinite;
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0; }
}

/* PixelCard — hover canvas effect */
.pixel-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--radius);
}
.pixel-card .pixel-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 1;
  opacity: 0;
  transition: opacity 0.5s ease-out;
}
.pixel-card:hover .pixel-canvas,
.pixel-card:focus-within .pixel-canvas { opacity: 1; }
.pixel-card > *:not(.pixel-canvas) {
  position: relative;
  z-index: 2;
}

button, a, input { transition-property: color, background-color, border-color, opacity, transform; transition-duration: 150ms; }
