/* Shared look for the retro players: same paper, ink and type as the Old West player. */
:root {
  --paper: #f6f1e7; --ink: #1d1a15; --ink-2: #463f35; --muted: #776e61; --rule: #d8ccb7; --accent: #8e2f1f;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Charter, Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;
  --mono: ui-monospace, Menlo, Consolas, monospace;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--serif); line-height: 1.55; }
a { color: var(--accent); }
.ribbon { font-family: var(--sans); font-size: .78rem; text-align: center; padding: 7px 12px; background: var(--ink); color: #f3e9d6; }
.ribbon strong { color: #ffcf9c; text-transform: uppercase; letter-spacing: .12em; margin-right: .3em; }
.wrap { max-width: 1000px; margin: 0 auto; padding: 28px clamp(14px, 4vw, 32px) 60px; }
.back { font-family: var(--sans); font-size: .9rem; display: inline-block; padding: 10px 0; }
h1 { font-weight: 400; font-size: clamp(2.1rem, 6vw, 3.4rem); line-height: 1.02; margin: 10px 0 12px; letter-spacing: -.01em; }
h1 span { display: block; font-size: .42em; color: var(--muted); font-style: italic; margin-top: 8px; letter-spacing: 0; line-height: 1.3; }
h2 { font-weight: 400; font-size: 1.5rem; margin: 30px 0 8px; }
.lede { font-size: clamp(1.05rem, 2vw, 1.2rem); color: var(--ink-2); max-width: 46rem; margin: 0 0 18px; }
.facts { font-family: var(--sans); font-size: .82rem; color: var(--ink-2); display: flex; flex-wrap: wrap; gap: 6px 8px; margin: 0 0 18px; padding: 0; list-style: none; }
.facts li { background: #efe7d8; border: 1px solid var(--rule); border-radius: 999px; padding: 3px 10px; }
.facts li b { color: var(--ink); font-weight: 600; }
.facts li.kind-original { background: #e3eedc; border-color: #b9d3a8; }
.facts li.kind-recreation { background: #f6e3cf; border-color: #e2bf98; }
.stage { background: #f3ede1; border: 1px solid var(--rule); border-radius: 10px; padding: clamp(8px, 2.4vw, 22px); }
.scenes { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; font-family: var(--sans); }
.scenes button, .keys button, .btn {
  font: 600 .84rem/1.2 var(--sans); color: var(--ink); background: #fffaf0; border: 1px solid #cdbd9f; border-radius: 8px;
  padding: 8px 12px; cursor: pointer; touch-action: manipulation; -webkit-user-select: none; user-select: none;
}
.scenes button[aria-pressed="true"] { background: var(--ink); color: #fff7e6; border-color: var(--ink); }
.scenes button:hover, .keys button:hover, .btn:hover { border-color: var(--accent); }
.monitor { position: relative; background: #141210; border-radius: 14px; padding: clamp(8px, 2vw, 18px); box-shadow: inset 0 0 0 2px #2b2722, 0 10px 30px rgba(29, 26, 21, .25); }
.monitor { min-height: 160px; }
.monitor canvas { display: block; margin: 0 auto; max-width: 100%; background: #000; outline: none; image-rendering: pixelated; image-rendering: crisp-edges; }
.monitor canvas:not([data-scale]) { width: 100%; aspect-ratio: 4 / 3; }
.monitor canvas:focus-visible { box-shadow: 0 0 0 3px #ffcf9c; }
.overlay { position: absolute; inset: clamp(8px, 2vw, 18px); display: flex; align-items: center; justify-content: center; text-align: center; padding: 18px;
  color: #f3e9d6; font: 500 .95rem/1.45 var(--sans); background: rgba(10, 9, 8, .72); border-radius: 4px; }
.overlay[hidden] { display: none; }
.overlay .big { display: block; font: 400 1.4rem/1.2 var(--serif); margin-bottom: 6px; }
.status { font-family: var(--sans); font-size: .84rem; color: var(--ink-2); min-height: 1.5em; margin: 10px 2px 0; }
.status b { color: var(--accent); }
.keys { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.keys button { padding: 7px 9px; font-size: .78rem; min-width: 44px; }
.keys .sep { flex-basis: 100%; height: 0; }
.notes { font-family: var(--sans); font-size: .9rem; color: var(--ink-2); max-width: 48rem; margin: 22px auto 0; line-height: 1.6; }
.notes p { margin: 0 0 10px; }
.notes b { color: var(--ink); }
.notes code, .facts code { font-family: var(--mono); font-size: .86em; }
.credit { font-family: var(--sans); font-size: .8rem; color: var(--muted); border-top: 1px solid var(--rule); padding-top: 14px; margin-top: 22px; }
.fallback { margin-top: 16px; font-family: var(--sans); font-size: .86rem; color: var(--ink-2); }
.fallback video { width: 100%; border-radius: 8px; background: #000; display: block; margin-top: 8px; }
.fallback summary { cursor: pointer; font-weight: 600; color: var(--ink); }
@media (max-width: 560px) {
  .wrap { padding-left: 10px; padding-right: 10px; }
  .stage { padding: 6px; border-radius: 6px; }
  .monitor { padding: 6px; border-radius: 8px; }
  .overlay { inset: 6px; font-size: .86rem; }
  .scenes button { flex: 1 1 calc(50% - 8px); }
}
