/* GDW12-14 cover / GDW26,34 white record interiors, from s196/gdw.
   Scoped to the RPG app and its existing home preview. No layout transplant. */
@font-face { font-family: "GDW Inter"; src: url('/fonts/Inter.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "GDW Inter"; src: url('/fonts/Inter-Italic.woff2') format('woff2'); font-weight: 100 900; font-style: italic; font-display: swap; }
body.spi-rpg, body.spi-home .hai-rpg-card {
  --gdw-cover: #080707; --gdw-cover-type: #f0eee9; --gdw-signal: #f02916;
  --gdw-paper: #fff; --gdw-ink: #020202; --gdw-secondary: #606060;
  --gdw-action: #b72e26; --gdw-rule: #858585; --gdw-quiet: #e0e0e0;
  --gdw-font: "GDW Inter", Arial, sans-serif;
  --spi-display: var(--gdw-font); --spi-body: var(--gdw-font); --spi-ui: var(--gdw-font);
  --night-bg: var(--gdw-paper); --night-bg-glow: var(--gdw-paper);
  --night-raised: var(--gdw-paper); --night-raised-2: var(--gdw-quiet);
  --night-border: var(--gdw-rule); --night-border-strong: var(--gdw-ink);
  --night-panel: var(--gdw-paper); --night-ink: var(--gdw-ink);
  --night-ink-dim: var(--gdw-secondary); --night-ink-faint: var(--gdw-secondary);
  --ember: var(--gdw-action); --ember-deep: var(--gdw-action);
  --brass: var(--gdw-ink); --brass-dim: var(--gdw-rule);
  --blood: var(--gdw-action); --moss: var(--gdw-ink);
  --font-narration: var(--gdw-font); --font-chrome: var(--gdw-font);
  --radius: var(--spi-radius-md); --radius-small: var(--spi-radius-sm); --shadow-lamp: none;
  font-family: var(--gdw-font);
}
body.spi-rpg { background: var(--gdw-paper); color: var(--gdw-ink); }
body.spi-rpg :is(button, input, textarea, select, h1, h2, h3) { font-family: var(--gdw-font); }
/* Corners follow the house scale (s200): controls sm, cards md, the dialog lg. The cover bar stays square. */
body.spi-rpg :is(button, input, textarea, .tab, .chip) { border-radius: var(--spi-radius-sm); }
body.spi-rpg :is(.linked-card, .quiet-meter, .recap, .death-epilogue, .camp) { border-radius: var(--spi-radius-md); }
body.spi-rpg .token-dialog { border-radius: var(--spi-radius-lg); }
body.spi-rpg .topbar { background: var(--gdw-cover); color: var(--gdw-cover-type); border-bottom: 3px solid var(--gdw-signal); }
body.spi-rpg .topbar :is(.brand, .tab, .sign-in, .demo-remaining-wrap, .demo-remaining-pill b) { color: var(--gdw-cover-type); }
body.spi-rpg .brand { font-style: italic; font-weight: 500; }
body.spi-rpg .brand-mark { color: var(--gdw-signal); border-color: var(--gdw-signal); background: var(--gdw-cover); border-radius: calc(24px * var(--spi-counter-clip)); }
body.spi-rpg .tab.active { color: var(--gdw-signal); background: var(--gdw-cover); border-color: var(--gdw-signal); }
body.spi-rpg .sign-in { border-color: var(--gdw-cover-type); }
body.spi-rpg .picker-view h1 { font-style: italic; font-weight: 500; }
body.spi-rpg .shell { padding-top: 20px; }
body.spi-rpg .picker-grid { margin-top: 20px; gap: 16px; }
body.spi-rpg .camp { padding: 16px; gap: 8px; border-color: var(--gdw-ink); }
body.spi-rpg .camp h2 { font-style: italic; font-weight: 500; }
body.spi-rpg .camp.new { border-style: solid; border-top: 3px solid var(--gdw-action); }
body.spi-rpg .camp.new h2 { color: var(--gdw-ink); }
body.spi-rpg :is(.shelf .chip.selected, .launch, .act, .raise, .token-save, .gate-btn-primary) { background: var(--gdw-action); color: var(--gdw-paper); border-color: var(--gdw-action); }
body.spi-rpg .chip--locked { background: var(--gdw-quiet); color: var(--gdw-secondary); opacity: 1; }
body.spi-rpg .char-mode-toggle .mode-btn { color: var(--gdw-secondary); opacity: 1; }
body.spi-rpg .char-mode-toggle .mode-btn.selected { color: var(--gdw-ink); border-color: var(--gdw-ink); background: var(--gdw-quiet); }
body.spi-rpg :is(.table-shell, .table-head, .foot, .recap, .quiet-meter, .gate-banner, .token-dialog) { background: var(--gdw-paper); }
body.spi-rpg .table-head { border-bottom: 3px solid var(--gdw-action); }
body.spi-rpg .table-title { font-style: italic; }
body.spi-rpg .mechlog { border-bottom: 1px solid var(--gdw-rule); background: var(--gdw-quiet); }
body.spi-rpg .death-epilogue { background: var(--gdw-paper); border-color: var(--gdw-action); }
body.spi-rpg .death-epilogue h2 { color: var(--gdw-action); }
body.spi-rpg .death-epilogue p { color: var(--gdw-ink); }
body.spi-rpg :is(.continue, .linked-card, .rewind, .sign-in, .gate-btn):hover:not(:disabled) { background: var(--gdw-quiet); color: var(--gdw-ink); }
body.spi-rpg button:disabled { opacity: 1; background: var(--gdw-quiet); color: var(--gdw-secondary); border-color: var(--gdw-rule); }
body.spi-rpg :is(input, textarea)::placeholder { color: var(--gdw-secondary); }
body.spi-rpg :focus-visible { outline: 3px solid var(--gdw-action); outline-offset: 2px; }
body.spi-rpg .topbar :focus-visible { outline-color: var(--gdw-signal); }
body.spi-rpg .inputbar input { min-width: 0; }
body.spi-rpg .table-head { min-width: 0; }
@media (max-width: 640px) {
  body.spi-rpg .table-shell { grid-template-rows: minmax(52px, auto) minmax(320px, 1fr) auto; }
  body.spi-rpg .table-head { flex-wrap: wrap; gap: 6px 8px; padding: 8px 10px; }
  body.spi-rpg .table-title { min-width: 0; overflow-wrap: anywhere; }
  body.spi-rpg .table-head-right { flex-shrink: 0; }
  body.spi-rpg .table-head .continue { margin-top: 0; padding: 6px 8px; }
}

body.spi-home .hai-page .hai-rpg-card { background: var(--gdw-cover); color: var(--gdw-cover-type); border: 1px solid var(--gdw-cover); border-radius: var(--spi-radius-lg); padding: 20px; box-shadow: none; }
body.spi-home .hai-rpg-card .hai-rpg-kicker { font-family: var(--gdw-font); color: var(--gdw-cover-type); font-style: italic; letter-spacing: .04em; }
body.spi-home .hai-rpg-card h3 { font-family: var(--gdw-font); font-style: italic; font-weight: 500; color: var(--gdw-signal); border-top: 3px solid var(--gdw-signal); padding-top: 12px; text-align: right; }
body.spi-home .hai-rpg-card :is(.hai-rpg-promise, .hai-rpg-detail, .hai-rpg-shelf) { font-family: var(--gdw-font); color: var(--gdw-cover-type); }
body.spi-home .hai-rpg-card .hai-rpg-mech { background: var(--gdw-paper); color: var(--gdw-ink); border: 1px solid var(--gdw-rule); border-radius: var(--spi-radius-md); }
body.spi-home .hai-rpg-card .roll { color: var(--gdw-ink); }
body.spi-home .hai-rpg-card .fail { color: var(--gdw-action); }
body.spi-home .hai-rpg-card .hai-rpg-included { color: var(--gdw-cover-type); border-color: var(--gdw-cover-type); border-radius: var(--spi-radius-sm); }
body.spi-home .hai-rpg-card .wg-btn { font-family: var(--gdw-font); background: var(--gdw-action); color: var(--gdw-paper); border-color: var(--gdw-action); }
body.spi-home .hai-rpg-card :focus-visible { outline-color: var(--gdw-signal); }

/* Keep native showModal / form-method=dialog behavior, center its presentation. */
body.spi-rpg dialog.token-dialog { margin: auto; inset: 0; max-height: calc(100dvh - 32px); overflow: auto; }
body.spi-rpg dialog.token-dialog::backdrop { background: rgb(0 0 0 / .55); }
