/* ============================================================ Tokens ============================================================ */ :root { --paper: #ece9e1; --surface: #fbfaf6; --ink: #1d2333; --ink-soft: #565f70; --line: #d6d0c0; --brass: #8c6a28; --brass-soft: #eee3cd; --pass: #1f6f45; --pass-bg: #e4efe7; --fail: #a32b20; --fail-bg: #f6e6e3; --font-display: "IBM Plex Serif", Georgia, serif; --font-body: "IBM Plex Sans", system-ui, sans-serif; --font-mono: "IBM Plex Mono", ui-monospace, monospace; --radius: 3px; } /* ============================================================ Reset & base ============================================================ */ * { box-sizing: border-box; } body { font-family: var(--font-body); background: var(--paper); color: var(--ink); margin: 0; line-height: 1.5; -webkit-font-smoothing: antialiased; } h1, h2, h3 { font-family: var(--font-display); font-weight: 600; margin: 0 0 0.6em; line-height: 1.2; letter-spacing: -0.01em; } h1 { font-size: 1.75rem; } h2 { font-size: 1.3rem; } h3 { font-size: 1.05rem; } p { margin: 0 0 0.75em; } ul { list-style: none; padding: 0; margin: 0; } button { font-family: var(--font-body); font-size: 0.95rem; font-weight: 500; background: var(--ink); color: var(--surface); border: 1px solid var(--ink); border-radius: var(--radius); padding: 0.55rem 1.1rem; cursor: pointer; transition: background-color 150ms ease, transform 100ms ease; } button:hover:not(:disabled) { background: #323a52; } button:active:not(:disabled) { transform: translateY(1px); } button:disabled { cursor: not-allowed; opacity: 0.55; } /* Secondary / utility buttons — outline instead of filled */ .option-row button, button[type="button"] { background: transparent; color: var(--ink); } .option-row button:hover:not(:disabled), button[type="button"]:hover:not(:disabled) { background: var(--brass-soft); } input, select, textarea { font-family: var(--font-body); font-size: 0.95rem; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 0.5rem 0.6rem; } label { display: block; font-weight: 500; font-size: 0.85rem; color: var(--ink-soft); margin-top: 0.85rem; margin-bottom: 0.25rem; } /* Full-width block inputs — explicitly excludes radio/checkbox, which must keep their native size wherever they appear inside a