/* ============================================================
   MAGAZINE EDITORIAL — Design Tokens v2.2
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Palette — warm editorial */
  --ivory:         #FCF9F4;
  --ivory-deep:    #F5EFE5;
  --camel:         #C49A6C;
  --camel-light:   #D9BFA0;
  --camel-dim:     rgba(196, 154, 108, 0.12);
  --rust:          #D4652A;
  --rust-deep:     #B8451A;
  --rust-dim:      rgba(212, 101, 42, 0.08);
  --rust-glow:     rgba(212, 101, 42, 0.18);
  --forest:        #1C3428;
  --forest-soft:   #3A5C4A;
  --forest-dim:    rgba(28, 52, 40, 0.06);
  --ink:           #1E1B18;
  --ink-soft:      #5C5650;
  --ink-muted:     #8B7E6C;
  --ink-faint:     #B8AFA3;

  /* Status */
  --success:       #2D7A4F;
  --success-dim:   rgba(45, 122, 79, 0.1);
  --warning:       #B8780A;
  --warning-dim:   rgba(184, 120, 10, 0.1);
  --error:         #D6403A;
  --error-dim:     rgba(214, 64, 58, 0.08);
  --info:          #3B6FA8;
  --info-dim:      rgba(59, 111, 168, 0.08);

  /* Borders */
  --border:        #E5DDD2;
  --border-heavy:  #D4C8B5;

  /* Shadows — editorial, understated */
  --shadow-xs:     0 1px 2px rgba(30,27,24,0.03);
  --shadow-sm:     0 2px 8px rgba(30,27,24,0.05);
  --shadow-md:     0 12px 40px rgba(30,27,24,0.10);

  /* Typography */
  --font-display:  'Bodoni Moda', 'Noto Serif SC', 'Georgia', serif;
  --font-body:     'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', sans-serif;
  --font-mono:     'SF Mono', 'Cascadia Code', 'Consolas', monospace;

  /* Motion */
  --ease-out:      cubic-bezier(0.22, 0.61, 0.36, 1);
  --ease-out-expo: cubic-bezier(0.19, 1, 0.22, 1);
  --ease-spring:   cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast:      150ms;
  --dur:           280ms;
  --dur-slow:      450ms;
  --dur-page:      500ms;

  /* Layout */
  --content-max:   1040px;
  --topbar-h:      52px;
  --main-px:       56px;
  --main-py:       64px;
  --sidebar-w:     220px;
}

html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  font-family: var(--font-body);
  font-weight: 400;
  font-size: 0.9375rem;
  background: var(--ivory);
  color: var(--ink);
  line-height: 1.75;
  min-height: 100vh;
  overflow-x: hidden;
}

::selection {
  background: var(--rust-dim);
  color: var(--rust-deep);
}

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--ink-faint); border-radius: 2px; }

.hidden { display: none !important; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-secondary { color: var(--ink-soft); }
.text-sm { font-size: 0.82rem; }
.text-xs { font-size: 0.7rem; }
.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2.5rem; }
.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
