/* Lyonce design tokens v1.1 — Axis identity, Azure palette, Poché P2 symbol.
   Generated from lyonce-tokens.json. Phase 3. */

:root {
  /* Primitives */
  --ly-azure-50: #EEF7FE;  --ly-azure-100: #D6ECFB; --ly-azure-200: #B0DBF7; --ly-azure-300: #5CB8FF;
  --ly-azure-400: #3FA6F0; --ly-azure-500: #1F93E6; --ly-azure-600: #0A6CC0; --ly-azure-700: #08579C;
  --ly-navy-400: #2A5A95;  --ly-navy-500: #1D4A85;  --ly-navy-600: #0B3A75;  --ly-navy-700: #0A2F5E;
  --ly-navy-800: #0D2747;  --ly-navy-900: #061A33;
  --ly-neutral-0: #FFFFFF;   --ly-neutral-50: #F1F5F9;  --ly-neutral-100: #E8EEF3; --ly-neutral-200: #DEE5EC;
  --ly-neutral-300: #C3CDD8; --ly-neutral-400: #8D9AAA; --ly-neutral-500: #637083; --ly-neutral-600: #546173;
  --ly-neutral-700: #3A4656; --ly-neutral-800: #1E2A3B; --ly-neutral-900: #0C1A2E;

  /* Semantic — light (default) */
  --ly-bg-canvas: var(--ly-neutral-0);
  --ly-bg-subtle: var(--ly-neutral-50);
  --ly-bg-brand: var(--ly-navy-600);
  --ly-bg-inverse: var(--ly-neutral-900);
  --ly-surface: var(--ly-neutral-0);
  --ly-surface-tint: var(--ly-azure-50);
  --ly-border: var(--ly-neutral-200);
  --ly-border-strong: var(--ly-neutral-900);
  --ly-border-input: var(--ly-neutral-600);
  --ly-text: var(--ly-neutral-900);
  --ly-text-secondary: var(--ly-neutral-600);
  --ly-text-link: var(--ly-azure-600);
  --ly-text-on-brand: #FFFFFF;
  --ly-text-on-brand-muted: var(--ly-azure-200);
  --ly-action-primary: var(--ly-navy-600);
  --ly-action-primary-hover: var(--ly-navy-700);
  --ly-on-primary: #FFFFFF;
  --ly-action-signal: var(--ly-azure-500);
  --ly-on-signal: var(--ly-navy-900);
  --ly-signal: var(--ly-azure-500);
  --ly-focus: var(--ly-azure-500);
  --ly-success: #12784A; --ly-success-bg: #E7F5EE;
  --ly-warning: #9A5B00; --ly-warning-bg: #FDF3E1;
  --ly-danger: #C0362C;  --ly-danger-bg: #FCEBEA;
  --ly-info: var(--ly-azure-600); --ly-info-bg: var(--ly-azure-50);

  /* Type */
  --ly-font-display: "Inter Tight", Arial, sans-serif;
  --ly-font-body: "Inter", Arial, sans-serif;
  --ly-font-mono: "JetBrains Mono", Consolas, monospace;
  --ly-text-display-xl: clamp(3.5rem, 1.6rem + 7.8vw, 7.5rem);
  --ly-text-display: clamp(3rem, 1.95rem + 4.3vw, 5.5rem);
  --ly-text-h1: clamp(2.5rem, 1.94rem + 2.3vw, 4rem);
  --ly-text-h2: clamp(2rem, 1.63rem + 1.5vw, 3rem);
  --ly-text-h3: clamp(1.625rem, 1.49rem + 0.57vw, 2rem);
  --ly-text-h4: clamp(1.3125rem, 1.24rem + 0.29vw, 1.5rem);
  --ly-text-lead: clamp(1.1875rem, 1.14rem + 0.19vw, 1.3125rem);
  --ly-text-body: 1rem;
  --ly-text-small: 0.875rem;
  --ly-text-label: 0.75rem;

  /* Space & layout */
  --ly-space-1: 4px;  --ly-space-2: 8px;  --ly-space-3: 12px; --ly-space-4: 16px;
  --ly-space-5: 24px; --ly-space-6: 32px; --ly-space-7: 48px; --ly-space-8: 64px;
  --ly-space-9: 96px; --ly-space-10: 128px; --ly-space-11: 160px;
  --ly-max-width: 1440px;
  --ly-margin: 16px; --ly-gutter: 16px; --ly-columns: 4;
  --ly-axis-x: 37.5%; --ly-axis-y: 62.5%;
  --ly-radius: 0;
  --ly-target: 44px;
  --ly-shadow-overlay: 0 8px 24px rgba(6, 26, 51, 0.16);
  --ly-duration-fast: 120ms; --ly-duration-base: 200ms; --ly-duration-slow: 320ms;
  --ly-ease: cubic-bezier(0.2, 0, 0, 1);
}

@media (min-width: 768px)  { :root { --ly-margin: 40px; --ly-gutter: 20px; --ly-columns: 8; } }
@media (min-width: 1024px) { :root { --ly-margin: 56px; --ly-gutter: 24px; --ly-columns: 12; } }
@media (min-width: 1280px) { :root { --ly-margin: 80px; } }

/* Dark theme — system preference unless the user forces light */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --ly-bg-canvas: var(--ly-navy-900); --ly-bg-subtle: var(--ly-navy-800); --ly-bg-inverse: #EEF4FA;
    --ly-surface: var(--ly-navy-800); --ly-surface-tint: #12355E;
    --ly-border: #1D3A5E; --ly-border-strong: #EEF4FA; --ly-border-input: #9DB0C6;
    --ly-text: #EEF4FA; --ly-text-secondary: #9DB0C6; --ly-text-link: var(--ly-azure-300);
    --ly-action-primary: var(--ly-azure-300); --ly-action-primary-hover: #8FD0FF; --ly-on-primary: var(--ly-navy-900);
    --ly-success: #4CC38A; --ly-warning: #F2B544; --ly-danger: #FF7A70; --ly-info: var(--ly-azure-300);
  }
}
:root[data-theme="dark"] {
  --ly-bg-canvas: var(--ly-navy-900); --ly-bg-subtle: var(--ly-navy-800); --ly-bg-inverse: #EEF4FA;
  --ly-surface: var(--ly-navy-800); --ly-surface-tint: #12355E;
  --ly-border: #1D3A5E; --ly-border-strong: #EEF4FA; --ly-border-input: #9DB0C6;
  --ly-text: #EEF4FA; --ly-text-secondary: #9DB0C6; --ly-text-link: var(--ly-azure-300);
  --ly-action-primary: var(--ly-azure-300); --ly-action-primary-hover: #8FD0FF; --ly-on-primary: var(--ly-navy-900);
  --ly-success: #4CC38A; --ly-warning: #F2B544; --ly-danger: #FF7A70; --ly-info: var(--ly-azure-300);
}

/* Logo lockup — Poché P2. Markup:
   <a class="ly-lockup" href="/" aria-label="Lyonce">
     <svg viewBox="0 0 96 96" aria-hidden="true">
       <path class="ly-mass" d="M0 0H26V70H76V52H46V0H96V96H0Z"/>
       <rect class="ly-entry" x="26" y="0" width="20" height="14"/>
     </svg><span>lyonce</span></a>                                    */
.ly-lockup { display: inline-flex; align-items: flex-start; gap: 0.28em;
  font-family: var(--ly-font-display); font-weight: 600; letter-spacing: -0.05em; line-height: 1;
  color: var(--ly-text); text-decoration: none; }
.ly-lockup svg { width: 0.73em; height: 0.73em; margin-top: 0.134em; flex-shrink: 0; }
.ly-mass  { fill: var(--ly-logo-mass, var(--ly-text)); }
.ly-entry { fill: var(--ly-logo-entry, var(--ly-azure-500)); }
.ly-on-brand { --ly-logo-mass: #FFFFFF; color: #FFFFFF; }
.ly-mono .ly-entry { display: none; } /* one colour: entry stays open */
:root { --ly-logo-mass: var(--ly-navy-600); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { --ly-logo-mass: #EEF4FA; } }
:root[data-theme="dark"] { --ly-logo-mass: #EEF4FA; }

/* Global focus and motion standards */
:focus-visible { outline: 2px solid var(--ly-focus); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
