/* Elios Engine — Brand Tokens */
:root {
  /* Core palette */
  --paper: #FAF8F4;
  --card: #FFFFFF;
  --ink: #1C1A17;
  --ink-2: #2A2722;
  --stone: #6A6560;
  --stone-2: #8A857F;
  --stone-3: #B8B2AA;
  --hairline: #E8E3DB;
  --hairline-2: #D9D3C8;

  /* Accents — use sparingly */
  --solar: #C8890A;
  --solar-soft: #E6B259;
  --solar-wash: #F4E6C5;
  --ember: #C05F18;

  /* Dark */
  --near-black: #1A1917;
  --near-black-2: #242220;
  --near-black-3: #2E2B28;
  --dark-hairline: #3A3633;
  --dark-stone: #9A948C;
  --solar-dk: #F5B942;
  --ember-dk: #E07A2C;

  /* Type */
  --serif: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial, sans-serif;
  --mono: 'JetBrains Mono', 'SF Mono', Menlo, monospace;

  /* Scale (8pt) */
  --s-1: 4px;  --s-2: 8px;  --s-3: 12px; --s-4: 16px;
  --s-5: 24px; --s-6: 32px; --s-7: 48px; --s-8: 64px; --s-9: 96px;

  --r-sm: 2px; --r-md: 4px; --r-lg: 8px;
}

/* Normalisation */
*, *::before, *::after { box-sizing: border-box; }
.ee { font-family: var(--sans); color: var(--ink); font-feature-settings: 'ss01', 'cv11', 'tnum'; }
.ee-serif { font-family: var(--serif); font-feature-settings: 'ss01'; letter-spacing: -0.02em; }
.ee-mono  { font-family: var(--mono); font-feature-settings: 'tnum'; letter-spacing: 0; }
.ee-tnum  { font-variant-numeric: tabular-nums; }
.ee-caps  { text-transform: uppercase; letter-spacing: 0.14em; font-size: 11px; font-weight: 500; }

/* Rules */
.ee-hr { height: 1px; background: var(--hairline); border: 0; }
.ee-vr { width: 1px; background: var(--hairline); align-self: stretch; }

/* Utility backgrounds */
.ee-paper { background: var(--paper); }
.ee-card  { background: var(--card); }
.ee-ink   { background: var(--ink); color: var(--paper); }

/* Striped placeholder for imagery */
.ee-placeholder {
  background-image: repeating-linear-gradient(
    135deg,
    transparent 0 10px,
    rgba(28,26,23,0.05) 10px 11px
  );
  background-color: var(--paper);
  border: 1px solid var(--hairline);
  display: flex; align-items: center; justify-content: center;
  color: var(--stone-2); font-family: var(--mono); font-size: 11px;
  letter-spacing: 0.08em; text-transform: uppercase;
}

/* Live pulse */
@keyframes ee-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
.ee-pulse { animation: ee-pulse 2.4s ease-in-out infinite; }

/* Shared dot */
.ee-dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; }
