:root {
  /* Color tokens */
  --color-bg-primary: #0B1020;
  --color-bg-secondary: #161F36;
  --color-bg-elevated: #202C49;
  --color-accent-primary: #3B82F6;
  --color-accent-primary-hover: #2563EB;
  --color-accent-secondary: #d0000b;
  --color-highlight: #F8FAFC;
  --color-text-muted: #94A3B8;
  --color-success: #22C55E;
  --color-warning: #F59E0B;
  --color-danger: #d0000b;
  --color-border: rgba(148, 163, 184, .2);

  /* Typography tokens */
  --font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.25rem;
  --text-2xl: 1.5rem;
  --text-display: clamp(2.8rem, 6.3vw, 5.7rem);
  --leading-tight: 1.05;
  --leading-body: 1.65;

  /* Spacing tokens */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-section: clamp(5rem, 9vw, 7.5rem);

  /* Shape and elevation tokens */
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 26px;
  --shadow-sm: 0 8px 24px rgba(0, 0, 0, .16);
  --shadow-md: 0 18px 48px rgba(0, 0, 0, .24);
  --shadow-lg: 0 30px 90px rgba(0, 0, 0, .32);
  --transition-fast: 160ms ease;
  --transition-base: 240ms cubic-bezier(.2,.8,.2,1);
}

/* Reusable primitives */
.ds-button,
.button {
  min-height: 48px;
  padding: 12px 20px;
  border-radius: var(--radius-sm);
  font-weight: 750;
}
.ds-button-primary { border-color: var(--color-accent-primary); background: var(--color-accent-primary); color: #fff; }
.ds-button-secondary { border-color: transparent; background: var(--color-bg-elevated); color: var(--color-highlight); }
.ds-button-outline { border-color: var(--color-border); background: transparent; color: var(--color-highlight); }
.ds-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg-secondary); box-shadow: var(--shadow-md); }
.ds-badge { display:inline-flex; min-height:26px; align-items:center; padding:4px 9px; border:1px solid var(--color-border); border-radius:999px; color:var(--color-text-muted); font-size:var(--text-xs); font-weight:700; }
.ds-input { min-height:48px; padding:12px 14px; border:1px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-bg-secondary); color:var(--color-highlight); }
.ds-section-header { max-width:760px; margin-bottom:var(--space-10); }
.ds-status { display:inline-flex; align-items:center; gap:var(--space-2); color:var(--color-text-muted); font-size:var(--text-sm); }
.ds-status::before { content:""; width:8px; height:8px; border-radius:50%; background:currentColor; }
.ds-status-success { color:var(--color-success); }
.ds-status-warning { color:var(--color-warning); }
.ds-status-danger { color:var(--color-danger); }

@keyframes page-enter { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
body { animation:page-enter .4s ease-out both; }
.reveal { opacity:0; transform:translateY(18px); transition:opacity .55s ease,transform .55s cubic-bezier(.2,.8,.2,1); }
.reveal.is-visible { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
  body { animation:none; }
  .reveal,.reveal.is-visible { opacity:1; transform:none; transition:none; }
}
