:root {
  --radius: 0.85rem;
  --background: 0.99 0.003 255;
  --foreground: 0.17 0.02 255;
  --card: 1 0.002 255;
  --card-foreground: 0.17 0.02 255;
  --popover: 1 0.002 255;
  --popover-foreground: 0.17 0.02 255;
  --primary: 0.53 0.17 245;
  --primary-foreground: 0.98 0.01 255;
  --secondary: 0.96 0.01 255;
  --secondary-foreground: 0.22 0.02 255;
  --muted: 0.96 0.01 255;
  --muted-foreground: 0.46 0.02 255;
  --accent: 0.94 0.03 240;
  --accent-foreground: 0.22 0.02 255;
  --destructive: 0.62 0.23 28;
  --border: 0.9 0.01 255;
  --input: 0.9 0.01 255;
  --ring: 0.6 0.12 245;
  --chart-1: 0.64 0.16 245;
  --chart-2: 0.6 0.12 200;
  --chart-3: 0.44 0.09 230;
  --chart-4: 0.78 0.15 120;
  --chart-5: 0.74 0.15 70;
  --sidebar: 0.99 0.003 255;
  --sidebar-foreground: 0.17 0.02 255;
  --sidebar-primary: 0.53 0.17 245;
  --sidebar-primary-foreground: 0.98 0.01 255;
  --sidebar-accent: 0.94 0.03 240;
  --sidebar-accent-foreground: 0.22 0.02 255;
  --sidebar-border: 0.9 0.01 255;
  --sidebar-ring: 0.6 0.12 245;
}

.dark {
  --background: 0.14 0.01 255;
  --foreground: 0.98 0.01 255;
  --card: 0.19 0.02 255;
  --card-foreground: 0.98 0.01 255;
  --popover: 0.18 0.02 255;
  --popover-foreground: 0.98 0.01 255;
  --primary: 0.7 0.14 245;
  --primary-foreground: 0.16 0.02 255;
  --secondary: 0.26 0.02 255;
  --secondary-foreground: 0.98 0.01 255;
  --muted: 0.24 0.02 255;
  --muted-foreground: 0.7 0.02 255;
  --accent: 0.28 0.04 240;
  --accent-foreground: 0.98 0.01 255;
  --destructive: 0.66 0.22 28;
  --border: 0.98 0.01 255 / 10%;
  --input: 0.98 0.01 255 / 15%;
  --ring: 0.66 0.1 245;
  --chart-1: 0.5 0.2 260;
  --chart-2: 0.7 0.14 190;
  --chart-3: 0.78 0.16 70;
  --chart-4: 0.62 0.2 305;
  --chart-5: 0.64 0.2 16;
  --sidebar: 0.18 0.02 255;
  --sidebar-foreground: 0.98 0.01 255;
  --sidebar-primary: 0.7 0.14 245;
  --sidebar-primary-foreground: 0.16 0.02 255;
  --sidebar-accent: 0.28 0.04 240;
  --sidebar-accent-foreground: 0.98 0.01 255;
  --sidebar-border: 0.98 0.01 255 / 10%;
  --sidebar-ring: 0.66 0.1 245;
}

* {
  border-color: oklch(var(--border));
  outline-color: oklch(var(--ring) / 0.5);
}

body {
  background-color: oklch(var(--background));
  color: oklch(var(--foreground));
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background-image:
    radial-gradient(circle at 10% 15%, oklch(var(--primary) / 0.06), transparent 45%),
    radial-gradient(circle at 90% 0%, oklch(var(--accent) / 0.05), transparent 45%);
  background-attachment: fixed;
  position: relative;
  isolation: isolate;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

body::before {
  background-image: linear-gradient(120deg, oklch(var(--accent) / 0.06), transparent 55%);
  opacity: 0.5;
}

html {
  scroll-behavior: smooth;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  letter-spacing: -0.02em;
}

a,
button,
input,
select,
textarea {
  transition: color 200ms ease, background-color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

input:focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: oklch(var(--ring));
  box-shadow: 0 0 0 3px oklch(var(--ring) / 0.35);
}

header .group > div {
  opacity: 0;
  transform: translateY(8px) scale(0.98);
  transition: opacity 200ms ease, transform 200ms ease;
  pointer-events: none;
  background-color: oklch(var(--popover)) !important;
}

header .group:hover > div,
header .group:focus-within > div {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

header .group:hover > .hidden,
header .group:focus-within > .hidden {
  display: grid;
}

header .group > .hidden {
  z-index: 50;
}

header .group h4 {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: oklch(var(--muted-foreground));
}

header .group a {
  border-radius: 0.6rem;
  padding: 0.55rem 0.75rem;
  display: block;
}

header .group a:hover {
  background-color: oklch(var(--accent) / 0.7);
  color: oklch(var(--accent-foreground));
}

header.is-scrolled {
  box-shadow: 0 12px 30px -24px oklch(var(--foreground) / 0.45);
  border-bottom-color: oklch(var(--border) / 0.75);
  background-image: linear-gradient(180deg, oklch(var(--background) / 0.98), oklch(var(--background) / 0.88));
}

section,
main > div,
main > header,
main > footer {
  position: relative;
}

.bg-card {
  box-shadow: 0 18px 40px -35px oklch(var(--foreground) / 0.4);
}

.shadow-2xl {
  box-shadow: 0 28px 70px -50px oklch(var(--foreground) / 0.45);
}

.inline-flex,
button,
a {
  border-radius: calc(var(--radius) - 0.2rem);
}

.logo-light,
.logo-dark {
  filter: drop-shadow(0 10px 20px oklch(var(--foreground) / 0.15));
}

.reveal-item {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 600ms ease, transform 650ms ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}

.reveal-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.logo-dark {
  display: none;
}

.dark .logo-dark {
  display: block;
}

.dark .logo-light {
  display: none;
}

[data-accordion-panel][hidden] {
  display: none;
}

.form-status {
  display: none;
}

.form-status.is-visible {
  display: block;
}

@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto;
    transition: none !important;
  }

  .reveal-item {
    opacity: 1;
    transform: none;
  }
}
