/* ==========================================================================
   ABF Conference — Design Tokens
   ========================================================================== */

:root {
  /* ---------- Brand Colors ---------- */
  --color-primary-50:  #E8F4EE;
  --color-primary-100: #C6E5D2;
  --color-primary-200: #9CD1B0;
  --color-primary-300: #6DBA89;
  --color-primary-400: #3FA167;
  --color-primary-500: #1F8C4D;
  --color-primary-600: #0E7C3A;   /* primary */
  --color-primary-700: #0A6330;
  --color-primary-800: #074A24;
  --color-primary-900: #053018;

  --color-accent-500: #C9A961;    /* muted gold */
  --color-accent-400: #D4BC85;
  --color-accent-300: #E0CFA8;

  /* ---------- Neutrals ---------- */
  --color-ink-900: #0F1623;       /* deep charcoal */
  --color-ink-800: #1A2233;
  --color-ink-700: #2A3346;
  --color-ink-600: #44516B;
  --color-ink-500: #5E6B85;
  --color-ink-400: #8A95A9;
  --color-ink-300: #B7BFCE;
  --color-ink-200: #D9DEE7;
  --color-ink-100: #ECEFF4;
  --color-ink-50:  #F7F9FB;

  --color-bg: #FFFFFF;
  --color-bg-soft: #F7F9FB;
  --color-bg-tinted: #F1F7F3;
  --color-surface: #FFFFFF;
  --color-border: #E2E7EE;
  --color-border-strong: #C5CDD8;

  /* ---------- Status ---------- */
  --color-success: #1F8C4D;
  --color-warning: #C9A961;
  --color-danger: #B5341A;
  --color-info: #2A6FB5;

  /* ---------- Typography ---------- */
  --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --font-display: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;

  /* Type scale (desktop) */
  --text-2xs: 0.6875rem;   /* 11 */
  --text-xs:  0.75rem;     /* 12 */
  --text-sm:  0.875rem;    /* 14 */
  --text-base: 1rem;       /* 16 */
  --text-md:  1.125rem;    /* 18 */
  --text-lg:  1.25rem;     /* 20 */
  --text-xl:  1.5rem;      /* 24 */
  --text-2xl: 1.75rem;     /* 28 */
  --text-3xl: 2.25rem;     /* 36 */
  --text-4xl: 3rem;        /* 48 */
  --text-5xl: 3.75rem;     /* 60 */
  --text-6xl: 4.5rem;      /* 72 */

  /* ---------- Spacing ---------- */
  --space-1:  0.25rem;
  --space-2:  0.5rem;
  --space-3:  0.75rem;
  --space-4:  1rem;
  --space-5:  1.25rem;
  --space-6:  1.5rem;
  --space-7:  1.75rem;
  --space-8:  2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-14: 3.5rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-32: 8rem;

  /* ---------- Radius ---------- */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-2xl: 32px;
  --radius-full: 999px;

  /* ---------- Shadow ---------- */
  --shadow-xs: 0 1px 2px rgba(15, 22, 35, 0.05);
  --shadow-sm: 0 1px 3px rgba(15, 22, 35, 0.07), 0 1px 2px rgba(15, 22, 35, 0.04);
  --shadow-md: 0 4px 12px rgba(15, 22, 35, 0.08), 0 2px 4px rgba(15, 22, 35, 0.04);
  --shadow-lg: 0 12px 28px rgba(15, 22, 35, 0.10), 0 4px 8px rgba(15, 22, 35, 0.04);
  --shadow-xl: 0 24px 48px rgba(15, 22, 35, 0.14), 0 8px 16px rgba(15, 22, 35, 0.06);
  --shadow-glow: 0 8px 24px rgba(14, 124, 58, 0.25);

  /* ---------- Motion ---------- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --duration-fast: 150ms;
  --duration-base: 240ms;
  --duration-slow: 400ms;

  /* ---------- Layout ---------- */
  --container-max: 1280px;
  --container-pad: clamp(1.25rem, 4vw, 3rem);
  --header-h: 76px;

  /* ---------- Z-index ---------- */
  --z-base: 1;
  --z-sticky: 50;
  --z-header: 100;
  --z-modal: 200;
  --z-toast: 300;
}

/* Viewport frame for design handoff — desktop 1440 and mobile 390 */
.viewport-frame { background: var(--color-ink-50); padding: var(--space-8); min-height: 100vh; }
.viewport-frame .screen { margin: 0 auto; background: var(--color-bg); box-shadow: var(--shadow-xl); border-radius: var(--radius-lg); overflow: hidden; }
.viewport-frame .label { display: inline-block; font: 600 var(--text-xs)/1 var(--font-sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-ink-500); background: var(--color-ink-100); padding: 6px 10px; border-radius: var(--radius-full); margin-bottom: var(--space-3); }
.viewport-frame .frame-title { font: 700 var(--text-sm)/1 var(--font-sans); color: var(--color-ink-700); margin: var(--space-3) 0 var(--space-4); }
.viewport-frame .desktop { width: 1440px; max-width: 100%; }
.viewport-frame .mobile  { width: 390px; max-width: 100%; }

@media (max-width: 1500px) {
  .viewport-frame .desktop { transform: scale(0.62); transform-origin: top center; }
}
@media (max-width: 1100px) {
  .viewport-frame .desktop { transform: scale(0.5); transform-origin: top center; }
}
@media (max-width: 720px) {
  .viewport-frame .desktop { transform: scale(0.4); transform-origin: top center; }
  .viewport-frame .mobile  { transform: scale(0.9); transform-origin: top center; }
}
