:root {
  --background: 210 40% 98%;
  --foreground: 224 42% 14%;
  --primary: 266 85% 58%;
  --secondary: 190 92% 45%;
  --accent: 36 96% 60%;
  --muted: 214 34% 92%;
  --destructive: 0 72% 54%;
  --border: 214 28% 84%;
  --card: 0 0% 100%;

  --shadow-sm: 0 10px 24px rgba(15, 23, 42, 0.07);
  --shadow-md: 0 24px 60px rgba(15, 23, 42, 0.12);
  --shadow-lg: 0 34px 92px rgba(124, 58, 237, 0.22);

  --transition-fast: 180ms ease;
  --transition-smooth: 280ms cubic-bezier(0.22, 1, 0.36, 1);

  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
}

.dark {
  --background: 228 48% 7%;
  --foreground: 210 40% 96%;
  --primary: 268 92% 70%;
  --secondary: 190 94% 52%;
  --accent: 40 96% 66%;
  --muted: 224 26% 18%;
  --destructive: 0 80% 62%;
  --border: 226 22% 22%;
  --card: 226 32% 11%;

  --shadow-sm: 0 10px 24px rgba(0, 0, 0, 0.34);
  --shadow-md: 0 26px 64px rgba(0, 0, 0, 0.44);
  --shadow-lg: 0 40px 100px rgba(34, 211, 238, 0.14);
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 10% 12%, hsl(var(--primary) / 0.22), transparent 36%),
    radial-gradient(circle at 88% 14%, hsl(var(--secondary) / 0.18), transparent 32%),
    radial-gradient(circle at 82% 88%, hsl(var(--accent) / 0.20), transparent 34%),
    radial-gradient(circle at 12% 86%, hsl(var(--secondary) / 0.12), transparent 40%),
    linear-gradient(180deg, hsl(var(--background)), hsl(var(--background)));
  color: hsl(var(--foreground));
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.08) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.55), transparent 75%);
}

body::after {
  content: '';
  position: fixed;
  inset: -22vmax;
  pointer-events: none;
  background:
    radial-gradient(circle at 20% 30%, hsl(var(--primary) / 0.16), transparent 42%),
    radial-gradient(circle at 80% 22%, hsl(var(--secondary) / 0.14), transparent 46%),
    radial-gradient(circle at 70% 78%, hsl(var(--accent) / 0.14), transparent 46%);
  filter: blur(42px);
  opacity: 0.95;
  transform: translate3d(0, 0, 0);
  animation: ats-float 18s ease-in-out infinite;
}

.dark body::before {
  background-image:
    linear-gradient(rgba(148, 163, 184, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(148, 163, 184, 0.06) 1px, transparent 1px);
}

@keyframes ats-float {
  0% {
    transform: translate3d(-2%, -1%, 0) rotate(0deg);
  }
  45% {
    transform: translate3d(2.5%, 1.5%, 0) rotate(5deg);
  }
  100% {
    transform: translate3d(-2%, -1%, 0) rotate(0deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  body::after {
    animation: none;
  }
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
textarea {
  font: inherit;
}

input,
textarea {
  color: hsl(var(--foreground));
}

input::placeholder,
textarea::placeholder {
  color: hsl(var(--foreground) / 0.45);
}

textarea {
  resize: vertical;
}

.resume-sheet {
  background-image:
    linear-gradient(to bottom, rgba(0, 0, 0, 0.035) 1px, transparent 1px),
    linear-gradient(to right, rgba(0, 0, 0, 0.035) 1px, transparent 1px);
  background-size: 100% 36px, 36px 100%;
  background-position: 0 0, 0 0;
}

::selection {
  background: hsl(var(--primary) / 0.22);
}

@media (max-width: 640px) {
  .resume-sheet {
    padding: 1.25rem;
  }
}
