:root {
  --bg: #1b1730;
  --fg: #f4efe6;
  --muted: #b9b1c9;
  --accent: #e8b84a;
  --accent-fg: #1b1730;
  --line: #4a4266;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--fg); }
body {
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Noto Sans JP", sans-serif;
  -webkit-user-select: none; user-select: none;
  -webkit-touch-callout: none;
  touch-action: manipulation;
}
main { max-width: 480px; margin: 0 auto; padding: 24px 16px 48px; }
h1 { font-size: 20px; margin: 0 0 24px; }
section { display: flex; flex-direction: column; gap: 12px; }
[hidden] { display: none !important; }
label { color: var(--muted); font-size: 14px; }
input#code {
  -webkit-appearance: none; appearance: none; border-radius: 0;
  font-size: 32px; letter-spacing: 0.2em; text-align: center; text-transform: uppercase;
  padding: 12px; background: transparent; color: var(--fg); border: 2px solid var(--line);
}
button {
  -webkit-appearance: none; appearance: none; border-radius: 0;
  font-size: 20px; font-weight: 700; padding: 18px; border: 0;
  background: var(--accent); color: var(--accent-fg);
}
button:active { filter: brightness(0.85); }
.note { color: var(--muted); font-size: 14px; margin: 0; line-height: 1.6; }
#status { font-size: 18px; margin: 0 0 16px; line-height: 1.5; }
#readout { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; margin: 12px 0 0; color: var(--muted); font-size: 14px; }
#readout dd { margin: 0; font-variant-numeric: tabular-nums; }
#fake { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 16px; }
#fake input { width: 100%; }
