/* Design tokens. Every game picks its own palette and typeface here; the components only ever name these tokens, so a new look is this block. */ :root { --slate: #1c2830; --slate-deep: #121a20; --slate-raised: #24333d; --bone: #e9e2d2; --bone-dim: #98a4ab; --bone-faint: #5d6b73; --ember: #f0a53a; --frost: #8cc8e0; --blood: #e0655c; --rule: rgba(233, 226, 210, 0.14); --rule-strong: rgba(233, 226, 210, 0.32); --font: 'Iowan Old Style', Georgia, serif; --gutter: clamp(16px, 3vw, 40px); } * { box-sizing: border-box; } html { background: var(--slate-deep); } body { margin: 0; background: var(--slate-deep); color: var(--bone); font-family: var(--font); font-size: 17px; line-height: 1.55; -webkit-font-smoothing: antialiased; } h1, h2, h3 { font-weight: 500; line-height: 1.15; margin: 0; } p { margin: 0; } button, select, input, textarea { font: inherit; color: inherit; } button { cursor: pointer; } button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid var(--frost); outline-offset: 2px; } select, input[type='text'], textarea { background: var(--slate-deep); border: 1px solid var(--rule-strong); border-radius: 4px; padding: 0.3rem 0.6rem; max-width: 100%; color: var(--bone); } button:disabled { opacity: 0.35; cursor: not-allowed; } /* An action written as a word in running text. */ .link { background: none; border: 0; padding: 0; font-size: inherit; color: var(--frost); text-decoration: underline; } /* The one button that commits a move. */ .commit { background: var(--bone); color: var(--slate-deep); border: 0; border-radius: 4px; padding: 0.6rem 1.4rem; font-size: 1.05rem; font-weight: 500; } .commit:hover:not(:disabled) { background: #fff; } .commit.small { padding: 0.4rem 0.9rem; font-size: 1rem; } /* A bordered, unemphatic button: navigation, secondary actions. */ .quiet { background: none; border: 1px solid var(--rule-strong); border-radius: 4px; padding: 0.4rem 0.9rem; white-space: nowrap; color: var(--bone); text-decoration: none; line-height: 1.55; } .quiet:hover:not(:disabled) { border-color: var(--bone); } .muted { color: var(--bone-dim); } .warning { color: var(--blood); } .eyebrow { font-size: 0.85rem; letter-spacing: 0.12em; color: var(--bone-faint); margin-bottom: 0.2rem; } .visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }