/* ============================================================
   Cloudonfire / Cloudflare Token-Driven Design Foundations
   Optimized for high contrast, WCAG 2.2 AA & 60fps Smooth Motion
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
  /* Typography Tokens */
  --font-family-primary: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --font-size-xs: 12.8px;
  --font-size-sm: 13.12px;
  --font-size-md: 13.44px;
  --font-size-lg: 13.6px;
  --font-size-xl: 14px;
  --font-size-2xl: 14.4px;
  --font-size-3xl: 15px;
  --font-size-4xl: 16px;
  --font-size-title: 20px;
  --font-size-hero: 28px;
  --font-line-height-base: 23.25px;

  /* Color Tokens */
  --color-surface-base: #000000;
  --color-surface-muted: #121212;
  --color-surface-card: #151515;
  --color-surface-elevated: #1e1e1e;
  --color-surface-input: #0a0a0a;

  --color-border-default: #2b2b2b;
  --color-border-muted: #1c1c1c;
  --color-border-hover: #3e3e3e;
  --color-border-focus: #479dff;

  --color-text-primary: #ededed;
  --color-text-secondary: #a3a3a3;
  --color-text-tertiary: #479dff;
  --color-text-inverse: #ffffff;

  --color-primary: #479dff;
  --color-primary-hover: #3388ee;
  --color-primary-glow: rgba(71, 157, 255, 0.25);

  --color-success: #00e5a0;
  --color-success-glow: rgba(0, 229, 160, 0.2);
  --color-danger: #ff4d4f;
  --color-danger-glow: rgba(255, 77, 79, 0.2);
  --color-warning: #ffb800;

  /* Spacing Scale */
  --space-1: 2.4px;
  --space-2: 3.2px;
  --space-3: 4px;
  --space-4: 6.4px;
  --space-5: 7.2px;
  --space-6: 8px;
  --space-7: 8.8px;
  --space-8: 9.6px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;

  /* Radius Tokens */
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 50px;
  --radius-lg: 12px;
  --radius-xl: 18px;

  /* Motion & 60fps Transition Tokens */
  --motion-duration-instant: 120ms;
  --motion-duration-smooth: 200ms cubic-bezier(0.4, 0, 0.2, 1);
  --motion-fade-in: fadeIn 0.24s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  font-family: var(--font-family-primary);
  -webkit-tap-highlight-color: transparent;
}

body {
  background-color: var(--color-surface-base);
  color: var(--color-text-primary);
  font-size: var(--font-size-3xl);
  line-height: var(--font-line-height-base);
  min-height: 100vh;
  overflow-x: hidden;
}

/* Subtle Cloudflare ambient glow */
body::before {
  content: '';
  position: fixed;
  top: -150px;
  right: -150px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(71, 157, 255, 0.08) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes pulseGlow {
  0% { box-shadow: 0 0 0 0 rgba(0, 229, 160, 0.5); }
  70% { box-shadow: 0 0 0 8px rgba(0, 229, 160, 0); }
  100% { box-shadow: 0 0 0 0 rgba(0, 229, 160, 0); }
}

.focus-visible:focus-visible {
  outline: 2px solid var(--color-border-focus);
  outline-offset: 2px;
}
