:root{
  /* Brand palette */
  --ap-midnight:#0B0B0A;      /* Primary — 60% */
  --ap-charcoal:#1E1E1C;      /* Secondary — 10% */
  --ap-ivory:#F7F6F3;         /* Primary light — 25% */
  --ap-gold:#C9B69D;          /* Accent — 5%, sparingly */
  --ap-white:#FFFFFF;         /* Max-contrast only */

  /* Extended neutrals (warm, derived from midnight→ivory) */
  --ap-ink-950:#0B0B0A;
  --ap-ink-900:#141413;
  --ap-ink-850:#1E1E1C;
  --ap-ink-800:#262624;
  --ap-ink-700:#33322F;
  --ap-ink-600:#4A4945;
  --ap-ink-500:#6B6964;
  --ap-ink-400:#8E8B85;
  --ap-ink-300:#B4B1AA;
  --ap-ink-200:#D9D6CF;
  --ap-ink-100:#ECEAE5;
  --ap-ink-50:#F7F6F3;

  /* Gold ramp */
  --ap-gold-100:#EFE8DE;
  --ap-gold-300:#DDD0BE;
  --ap-gold-500:#C9B69D;
  --ap-gold-700:#8F7B60;      /* gold for text on ivory (AA large) */
  --ap-gold-900:#5E503D;

  /* Semantic status — muted, never saturated */
  --ap-success:#8FA58A;
  --ap-warning:#D1AE72;
  --ap-danger:#C4877A;
  --ap-info:#9AA6B2;

  /* Semantic aliases — dark (default) surface */
  --surface-page:var(--ap-midnight);
  --surface-section:var(--ap-charcoal);
  --surface-card:var(--ap-charcoal);
  --surface-raised:var(--ap-ink-800);
  --surface-inverse:var(--ap-ivory);
  --surface-overlay:rgba(11,11,10,.72);

  --text-primary:var(--ap-ivory);
  --text-secondary:var(--ap-ink-300);
  --text-muted:var(--ap-ink-400);
  --text-accent:var(--ap-gold);
  --text-inverse:var(--ap-midnight);
  --text-on-light-secondary:var(--ap-ink-600);
  --text-on-light-accent:var(--ap-gold-700);

  --border-hairline:rgba(247,246,243,.10);
  --border-default:rgba(247,246,243,.18);
  --border-strong:rgba(247,246,243,.36);
  --border-accent:var(--ap-gold);
  --border-on-light:rgba(11,11,10,.14);

  --focus-ring:var(--ap-gold);
}

:root{
  --font-display:"Playfair Display", "Didot", Georgia, serif;
  --font-sans:"Space Grotesk", "Helvetica Neue", Arial, sans-serif;

  --weight-light:300;
  --weight-regular:400;
  --weight-medium:500;
  --weight-semibold:600;
  --weight-bold:700;

  /* Scale (desktop) */
  --text-display:72px;   /* H1 max */
  --text-h1:56px;        /* H1 48–72 */
  --text-h1-mobile:40px; /* H1 36–44 */
  --text-h2:40px;        /* H2 32–48 */
  --text-h3:24px;        /* H3 20–28, Space Grotesk */
  --text-lead:20px;
  --text-body:17px;      /* 16–18 */
  --text-body-sm:15px;
  --text-label:12px;     /* 11–13 uppercase */
  --text-micro:11px;

  --leading-tight:1.08;
  --leading-heading:1.18;
  --leading-body:1.6;    /* 1.5–1.7 */

  --tracking-label:0.16em;   /* 0.12–0.18em */
  --tracking-wordmark:0.18em;
  --tracking-display:-0.01em;
  --tracking-body:0;

  /* Semantic roles */
  --type-h1:var(--weight-regular) var(--text-h1)/var(--leading-tight) var(--font-display);
  --type-h2:var(--weight-medium) var(--text-h2)/var(--leading-heading) var(--font-display);
  --type-h3:var(--weight-medium) var(--text-h3)/1.3 var(--font-sans);
  --type-body:var(--weight-regular) var(--text-body)/var(--leading-body) var(--font-sans);
  --type-label:var(--weight-medium) var(--text-label)/1.2 var(--font-sans);
}

:root{
  --space-0:0;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:24px;
  --space-6:32px;
  --space-7:48px;
  --space-8:64px;
  --space-9:96px;
  --space-10:128px;
  --space-11:160px;

  --container-max:1240px;
  --container-narrow:760px;
  --gutter:24px;
  --section-y:128px;
  --section-y-mobile:72px;

  --radius-none:0;
  --radius-xs:2px;       /* buttons, inputs, tags */
  --radius-sm:4px;       /* cards, dialogs */
  --radius-md:8px;
  --radius-icon:22%;     /* app icon squircle */
  --radius-pill:999px;   /* switches only */

  --border-width:1px;
  --control-h-sm:36px;
  --control-h-md:48px;
  --control-h-lg:56px;
}

:root{
  /* Depth comes from tone (midnight → charcoal), not shadow. Shadows are rare, soft, warm-black. */
  --shadow-none:none;
  --shadow-sm:0 1px 2px rgba(0,0,0,.35);
  --shadow-md:0 8px 24px -8px rgba(0,0,0,.55);
  --shadow-lg:0 24px 64px -16px rgba(0,0,0,.7);
  --shadow-emboss:inset 0 1px 0 rgba(247,246,243,.06);

  --scrim-bottom:linear-gradient(180deg, rgba(11,11,10,0) 0%, rgba(11,11,10,.85) 100%); /* @kind color */
  --scrim-left:linear-gradient(90deg, rgba(11,11,10,.92) 0%, rgba(11,11,10,.4) 60%, rgba(11,11,10,0) 100%); /* @kind color */

  --ease-standard:cubic-bezier(.2,.0,.0,1); /* @kind other */
  --ease-out:cubic-bezier(.16,1,.3,1); /* @kind other */
  --dur-fast:160ms; /* @kind other */
  --dur-base:280ms; /* @kind other */
  --dur-slow:600ms; /* @kind other */
}

html,body{margin:0}
body{background:var(--surface-page);color:var(--text-primary);font:var(--type-body);-webkit-font-smoothing:antialiased}
a{color:var(--text-primary);text-decoration:underline;text-decoration-color:var(--ap-gold);text-underline-offset:4px;text-decoration-thickness:1px;transition:color var(--dur-fast) var(--ease-standard)}
a:hover{color:var(--ap-gold)}
::selection{background:var(--ap-gold);color:var(--ap-midnight)}

