:root {
  --ink: #f3e8cf; --ink-dim: #b9a98a; --gold: #d9b36a; --gold-deep: #8a6a35; --night: #0e0a09; --panel: #1b1411;
  --panel-2: #261c16; --line: rgba(217, 179, 106, .35); --good: #8fd1b5; --bad: #f08a7a; --focus: #ffe7a8;
  --serif: Georgia, "Noto Serif KR", "Nanum Myeongjo", "Batang", serif;
}
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; margin: 0; background: var(--night); color: var(--ink); font-family: var(--serif); font-size: 16px; line-height: 1.55; }
body { overflow: hidden; }
button { font: inherit; color: inherit; cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .5; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
h1, h2, p, ul, dl, figure { margin: 0; }
ul { padding: 0; list-style: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.btn { min-height: 44px; min-width: 44px; padding: 8px 16px; border: 1px solid var(--line); border-radius: 8px; background: linear-gradient(#2d2119, #1d1511);
  transition: transform .15s ease, background .2s ease, box-shadow .2s ease; }
.btn:hover:not(:disabled) { background: linear-gradient(#3a2a1f, #251a14); box-shadow: 0 0 14px rgba(217, 179, 106, .25); }
.btn:active:not(:disabled) { transform: translateY(1px); }
.btn.gold { background: linear-gradient(#e2bf78, #a9812f); color: #1b1208; border-color: #f0d79b; font-weight: 700; display: inline-flex; align-items: center; gap: 8px; justify-content: center; }
.btn.gold:hover:not(:disabled) { background: linear-gradient(#f0d28e, #b98d36); }
.btn.big { min-height: 56px; padding: 12px 28px; font-size: 1.15rem; }
.btn.ghost { background: rgba(0, 0, 0, .35); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
