/* NEI Within — primitives */
:root {
  --wine: #7a2e2e; --wine-deep: #4e1d1d; --cream: #f5f0e9;
  --paper: #fbf8f3; --blush: #ead8d3; --ink: #1f1a17;
  --muted-ink: #655b52; --rule: #dcd2c6; --control-rule: #7e736b;
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem;
  --space-4: 1rem; --space-6: 1.5rem; --space-8: 2rem;
  --space-12: 3rem; --space-16: 4rem; --space-24: 6rem;
  --font-editorial: 'Newsreader', Georgia, serif;
  --font-interface: 'IBM Plex Sans', Arial, sans-serif;
  --font-mark: 'Archivo Black', Arial, sans-serif;
  /* Semantic roles */
  --color-background: var(--cream); --color-surface: var(--paper);
  --color-surface-soft: var(--blush); --color-text: var(--ink);
  --color-text-muted: var(--muted-ink); --color-primary: var(--wine);
  --color-primary-hover: var(--wine-deep); --color-on-primary: var(--paper);
  --color-border: var(--rule); --color-control-border: var(--control-rule);
  --color-focus: var(--wine); --color-error: var(--wine-deep);
  --font-heading: var(--font-editorial); --font-body: var(--font-interface);
  --size-body: 1rem; --size-caption: .875rem;
  --size-h1: clamp(2.75rem, 6vw, 5.5rem);
  --size-h2: clamp(2rem, 4vw, 3.5rem);
  --size-h3: clamp(1.5rem, 2.5vw, 2rem);
  --section-space: clamp(3rem, 7vw, 6rem); --content-width: 75rem;
  --page-gutter: clamp(1.25rem, 4vw, 3rem); --duration-feedback: 180ms;
  /* Component roles */
  --button-background: var(--color-primary); --button-text: var(--color-on-primary);
  --button-background-hover: var(--color-primary-hover);
  --button-padding: .875rem 1.5rem; --button-radius: 2px;
  --input-background: var(--color-surface); --input-border: var(--color-control-border);
  --input-padding: .875rem 1rem; --card-background: var(--color-surface);
  --card-border: var(--color-border); --card-padding: var(--space-8);
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--color-background); color: var(--color-text); font: var(--size-body)/1.6 var(--font-body); }
h1,h2,h3 { font-family: var(--font-heading); font-weight: 400; text-wrap: balance; }
h1 { font-size: var(--size-h1); line-height: 1.05; letter-spacing: -.035em; }
h2 { font-size: var(--size-h2); line-height: 1.1; letter-spacing: -.025em; }
h3 { font-size: var(--size-h3); line-height: 1.2; }
a { color: var(--color-primary); text-underline-offset: .2em; }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: var(--button-padding); background: var(--button-background); color: var(--button-text); border: 1px solid var(--button-background); border-radius: var(--button-radius); font: 500 1rem/1.3 var(--font-body); text-decoration: none; cursor: pointer; transition: background var(--duration-feedback); }
.button:hover { background: var(--button-background-hover); }
.button.secondary { background: transparent; color: var(--color-primary); }
.button.secondary:hover { background: var(--color-surface-soft); }
.button:disabled { opacity: .5; cursor: not-allowed; }
input { display: block; width: 100%; min-height: 48px; padding: var(--input-padding); background: var(--input-background); border: 1px solid var(--input-border); border-radius: var(--button-radius); color: var(--color-text); font: inherit; }
input[aria-invalid=true] { border: 2px solid var(--color-error); }
label { display: block; font-weight: 500; margin-bottom: var(--space-2); }
.eyebrow { font: 500 .875rem/1.4 var(--font-body); letter-spacing: .1em; text-transform: uppercase; }
.wordmark { font-family: var(--font-mark); letter-spacing: -.055em; line-height: 1; }
.character { font-family: 'Songti SC','Noto Serif CJK TC',Georgia,serif; letter-spacing: 0; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { transition: none!important; animation: none!important; scroll-behavior: auto!important; } }
