:root {
  --ink: #160b06;
  --night: #0c1428;
  --panel: #2a160c;
  --bone: #efe4c8;
  --parchment: #e3d3a8;
  --brass: #d8a94a;
  --ember: #ffb14a;
  --blood: #8a1c2a;
  --felt: #1e6a52;
  --muted: #a8926c;
  --font-display: 'Rye', 'Rockwell', serif;
  --font-body: 'IM Fell English', Georgia, serif;
  --font-type: 'Special Elite', 'Courier New', monospace;
  --font-hand: 'Caveat', 'Bradley Hand', cursive;
}
* { box-sizing: border-box; }
html, body { background: var(--ink); color: var(--bone); font-family: var(--font-body); }
button { font-family: inherit; cursor: pointer; }
.west-btn {
  background: linear-gradient(#6b4226, #3a2212); color: var(--parchment);
  border: 1px solid #b8862c; border-radius: 6px; padding: .5em 1.1em;
  font-family: var(--font-body); font-size: 1.05rem;
  box-shadow: 0 2px 0 #000, inset 0 1px 0 rgba(255,255,255,.12);
  transition: transform .08s, box-shadow .2s, color .2s;
}
.west-btn:hover { color: #fff3d6; box-shadow: 0 2px 0 #000, 0 0 14px rgba(255,177,74,.45); }
.west-btn:active { transform: translateY(1px); }
.west-btn:disabled { opacity: .5; cursor: default; }
.west-btn.big { font-family: var(--font-display); font-size: 1.25rem; padding: .6em 1.4em; }
.west-btn.small { font-size: .95rem; padding: .35em .8em; }
.west-input {
  background: #1a0e08; color: var(--bone); border: 1px solid #7a5a32; border-radius: 6px;
  padding: .5em .7em; font-family: var(--font-type); font-size: 1.05rem; outline: none; min-width: 0;
}
.west-input:focus { border-color: var(--ember); box-shadow: 0 0 10px rgba(255,177,74,.35); }
.link-btn { background: none; border: 0; color: var(--muted); text-decoration: underline; font-size: .95rem; display: block; margin: 12px auto 0; }
.fine { color: var(--muted); font-size: .9rem; line-height: 1.45; }
.shake { animation: shake .45s; }
@keyframes shake {
  10%, 90% { transform: translateX(-2px); } 20%, 80% { transform: translateX(4px); }
  30%, 50%, 70% { transform: translateX(-8px); } 40%, 60% { transform: translateX(8px); }
}
