/* Guild of Old Magick: the game. Same candlelit room as the landing page (assets/site.css):
   a night table, lit parchment, gold tooling. Words carry the colour; everything else stays quiet.
   Fonts: IM Fell English and Alegreya under the SIL Open Font License (see /fonts). The Alegreya Italic
   subset (Basic Latin, weight 400) is embedded below because passive spells are set in italics. */

@font-face { font-family: "Alegreya"; src: url("../../fonts/alegreya.woff") format("woff"); font-weight: 400 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Alegreya"; src: url("data:font/woff;base64,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") format("woff"); font-weight: 400 600; font-style: italic; font-display: swap; }
@font-face { font-family: "IM Fell English"; src: url("../../fonts/im-fell-english.woff") format("woff"); font-weight: 400; font-display: swap; }

:root {
  /* Room (from the landing page) */
  --night: #0e0c15;
  --night-2: #15121e;
  --night-3: #1a1622;
  --line: rgb(217 174 95 / .18);
  --text: #ebe0c8;
  --text-2: #cfc3a8;
  --text-3: #a3957a;
  --gold: #d9ae5f;
  --gold-hi: #f0cf86;
  --gold-deep: #a9802f;
  --gold-ink: #7a5a1c;                 /* gold that reads on parchment, 5.3:1 */
  --ember: #e2643a;

  /* Books */
  --parchment: #efe4c8;
  --parchment-2: #e6d7b2;
  --parchment-edge: #d6c296;
  --ink: #2a2018;
  --ink-2: #4a3c2e;
  --ink-3: #6e5b46;
  --rule: rgb(110 91 70 / .2);
  --rubric: #a3261b;
  --leather-a: #4a1c13;
  --leather-b: #18264a;
  --leather-c: #173b2b;

  /* Spell words: one dark ink per element, all readable on parchment */
  --el-fire: #a3261b;
  --el-water: #23447a;
  --el-wind: #1f6b4a;
  --el-earth: #6b4a1f;
  --el-dark: #4b2a6b;
  --el-light: #7d5d0a;
  --el-lightning: #6b5200;
  --el-armor: #4a4f57;
  --el-death: #3d4a2e;
  --el-ice: #1f6170;

  --serif: "Alegreya", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
  --display: "IM Fell English", "Alegreya", Georgia, serif;
  --t-13: 0.8125rem; --t-14: 0.875rem; --t-15: 0.9375rem; --t-16: 1rem; --t-18: 1.125rem; --t-22: 1.375rem; --t-28: 1.75rem; --t-32: 2rem;

  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px;
  --r1: 2px; --r2: 4px; --r3: 8px; --r4: 12px;
  --fast: 150ms;
  --ease: cubic-bezier(.2, .7, .2, 1);
  --gutter: clamp(16px, 3.5vw, 48px);
  --hud-h: 60px;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; background: var(--night); scroll-padding-top: calc(var(--hud-h) + var(--s2)); }
:root:has(body.sheet-open) { scroll-padding-bottom: min(62vh, 34rem); }
body {
  margin: 0; min-height: 100vh; overflow-x: hidden;
  background: var(--night); color: var(--text);
  font: 400 var(--t-16)/1.5 var(--serif);
  font-variant-numeric: oldstyle-nums proportional-nums;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, p, ul, ol, figure, dl, dd, fieldset { margin: 0; }
ul, ol { padding: 0; list-style: none; }
fieldset { border: 0; padding: 0; min-width: 0; }
img, svg, canvas { display: block; max-width: 100%; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: #e3bc6e; text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--gold-hi); }
::selection { background: var(--gold); color: var(--night); }
:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 2px; border-radius: var(--r1); }
h1:focus, h1:focus-visible, .screen:focus { outline: none; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: -1px; padding: 0; border: 0; }
.skip { position: absolute; left: var(--s4); top: -100px; padding: var(--s2) var(--s3); background: var(--gold); color: var(--night); z-index: 100; }
.skip:focus { top: var(--s3); }
[hidden] { display: none !important; }
.sub { color: var(--text-3); font-size: var(--t-14); }
.icon { width: 1.15em; height: 1.15em; flex: none; }

/* ------------------------------------------------------------ the room: painting or parchment-dark gradient */
.art {
  position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 70% 45% at 50% 0%, rgb(217 174 95 / .09), transparent 70%),
    radial-gradient(ellipse 60% 50% at 15% 85%, rgb(120 60 30 / .16), transparent 70%),
    radial-gradient(ellipse 55% 45% at 88% 70%, rgb(60 50 90 / .14), transparent 70%),
    repeating-linear-gradient(97deg, rgb(239 228 200 / .014) 0 1px, transparent 1px 6px),
    repeating-linear-gradient(3deg, rgb(0 0 0 / .06) 0 2px, transparent 2px 11px),
    linear-gradient(180deg, #17121c 0%, #110e18 45%, #0e0c15 100%);
}
.art-img { position: absolute; inset: 0; background: center / cover no-repeat; opacity: 0; transition: opacity 700ms var(--ease); filter: grayscale(1) sepia(.85) brightness(.36) contrast(1.2); }
.art.has-art .art-img { opacity: 1; }
/* One treatment for every painting: a dark tint and a vignette, so text stays readable. */
.art::after {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 85% 75% at 50% 40%, transparent 30%, rgb(14 12 21 / .92) 100%),
    linear-gradient(180deg, rgb(40 24 12 / .45), rgb(14 12 21 / .7) 75%);
}
.ambient { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.art-credit { position: relative; z-index: 1; margin: var(--s4) 0 0; padding: 0 var(--gutter) var(--s3); color: var(--text-3); font-size: var(--t-13); text-align: right; } /* after the room, so it never covers the game or runs off screen */
.art-credit:empty { display: none; }
.hud, .room { position: relative; z-index: 1; }

/* ------------------------------------------------------------ HUD */
.hud {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: var(--s4) var(--s5);
  min-height: var(--hud-h); padding: var(--s1) var(--gutter);
  background: rgb(14 12 21 / .9);
  border-bottom: 1px solid var(--line);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.hud-mark { font: 400 var(--t-22)/1.1 var(--display); color: var(--gold); text-decoration: none; white-space: nowrap; }
.hud-mark:hover { color: var(--gold-hi); }
.hud-stats { display: flex; align-items: center; gap: var(--s2) clamp(var(--s4), 3vw, var(--s7)); margin-inline: auto; }
.stat { display: flex; align-items: center; gap: var(--s2); }
.stat dt { color: var(--text-3); font-size: var(--t-15); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.stat dd { display: flex; align-items: center; gap: 6px; font: 600 var(--t-18)/1 var(--serif); font-variant-numeric: lining-nums tabular-nums; color: var(--text); }
.stat dd small { font-size: .75em; color: var(--text-3); font-weight: 500; }
.stat-day dd { font: 600 1.375rem/1 var(--serif); font-variant-numeric: lining-nums; color: var(--gold-hi); }
.stat .icon { color: var(--gold); }
.round-table { width: 40px; height: 40px; flex: none; }
.rt-rim { fill: #24160f; stroke: var(--gold-deep); stroke-width: .9; }
.rt-seg { fill: #5b3a22; }
.rt-seg-b { fill: #3b2516; }
.rt-edge { fill: none; stroke: rgb(217 174 95 / .55); stroke-width: .7; }
.rt-rose { fill: var(--gold-deep); stroke: var(--gold-hi); stroke-width: .5; }
.rt-seat { fill: #191420; stroke: rgb(217 174 95 / .35); stroke-width: .8; transition: fill 600ms var(--ease); }
.rt-seat.is-alive { fill: var(--gold-hi); stroke: #6b4a14; }
.is-last .rt-seat.is-alive { fill: var(--ember); }
.last-chance { margin-left: var(--s1); color: var(--ember); font-size: var(--t-14); font-style: italic; font-weight: 600; }
.hud-actions { display: flex; align-items: center; gap: var(--s2); }
.hud-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 var(--s3); border: 1px solid var(--line); border-radius: var(--r2); background: transparent; color: var(--text-2); font-size: var(--t-15); }
.hud-btn:hover { color: var(--gold-hi); border-color: rgb(217 174 95 / .45); background: rgb(217 174 95 / .08); }
.hud-btn .icon { color: var(--gold); }
.hud-menu { width: 40px; padding: 0; justify-content: center; }

/* ------------------------------------------------------------ buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--s2);
  min-height: 44px; padding: var(--s2) var(--s5);
  border: 1px solid var(--gold); border-radius: var(--r2);
  background: var(--gold); color: var(--night);
  font: 600 var(--t-16)/1.2 var(--serif); text-decoration: none; text-align: center;
  transition: background var(--fast) var(--ease), color var(--fast) var(--ease), box-shadow var(--fast) var(--ease);
}
.btn:hover { background: var(--gold-hi); box-shadow: 0 0 20px rgb(240 207 134 / .35); }
.btn-quiet { background: transparent; color: var(--gold); }
.btn-quiet:hover { background: rgb(217 174 95 / .12); color: var(--gold-hi); }
.btn:disabled, .btn[aria-disabled="true"] { opacity: .45; cursor: not-allowed; box-shadow: none; }
.btn:disabled:hover { background: var(--gold); }
.btn-quiet:disabled:hover { background: transparent; }
.btn-big { min-height: 52px; padding-inline: var(--s6); font-size: var(--t-18); }
.btn-sm { min-height: 36px; padding: var(--s1) var(--s3); font-size: var(--t-15); }
.btn small { font-weight: 500; opacity: .8; }
.icon-btn { display: inline-grid; place-items: center; width: 40px; height: 40px; flex: none; border: 0; border-radius: var(--r2); background: transparent; color: inherit; }
.icon-btn:hover { background: rgb(0 0 0 / .08); }

/* Buttons that sit on parchment are pressed in ink. */
.leaf .btn, .slip .btn, .pick-bar .btn { border-color: #3a2a1c; background: #3a2a1c; color: #f6ecd2; }
.leaf .btn:hover, .slip .btn:hover, .pick-bar .btn:hover { background: var(--leather-a); border-color: var(--leather-a); box-shadow: 0 0 0 2px rgb(217 174 95 / .45); }
.leaf .btn-quiet, .slip .btn-quiet, .pick-bar .btn-quiet { background: transparent; color: var(--ink); border-color: rgb(42 32 24 / .45); }
.leaf .btn-quiet:hover, .slip .btn-quiet:hover, .pick-bar .btn-quiet:hover { background: rgb(42 32 24 / .08); color: var(--ink); box-shadow: none; border-color: var(--ink); }
.leaf .btn:disabled:hover, .slip .btn:disabled:hover { background: #3a2a1c; box-shadow: none; }
.leaf :focus-visible, .slip :focus-visible, .pick-bar :focus-visible, .tome-page :focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; box-shadow: 0 0 0 4px rgb(240 207 134 / .7); }

/* ------------------------------------------------------------ parchment pieces */
.leaf {
  position: relative; color: var(--ink);
  background: linear-gradient(180deg, #f2e8cf, var(--parchment) 40%, #e9dcba);
  border-radius: var(--r2);
  box-shadow: 0 1px 0 rgb(0 0 0 / .5), 0 18px 36px -22px #000, inset 0 0 0 1px rgb(110 91 70 / .22);
}
.leaf::before { content: ""; position: absolute; inset: 4px; border: 1px solid rgb(110 91 70 / .2); border-radius: var(--r1); pointer-events: none; }

/* Spell words: element colour, CAPITALS for actives, lowercase italics for passives, roman numeral level */
.wt { color: var(--ink); }
.wt.is-active { font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
.wt.is-passive { font-style: italic; font-weight: 500; letter-spacing: .01em; text-transform: lowercase; }
.el-fire { color: var(--el-fire); } .el-water { color: var(--el-water); } .el-wind { color: var(--el-wind); }
.el-earth { color: var(--el-earth); } .el-dark { color: var(--el-dark); } .el-light { color: var(--el-light); }
.el-lightning { color: var(--el-lightning); } .el-armor { color: var(--el-armor); } .el-death { color: var(--el-death); } .el-ice { color: var(--el-ice); }
.lvl { margin-left: .28em; color: var(--gold-ink); font-size: .68em; font-weight: 700; font-style: normal; letter-spacing: .06em; vertical-align: .32em; font-variant-numeric: normal; }
.rar { font-variant-caps: all-small-caps; letter-spacing: .06em; font-weight: 600; }
.rar-common { color: var(--ink-3); } .rar-uncommon { color: #2f6b3a; } .rar-rare { color: #23447a; } .rar-legendary { color: #8a4b00; }

/* ------------------------------------------------------------ screens */
.screen { width: min(100% - 2 * var(--gutter), 78rem); margin-inline: auto; padding-block: var(--s6) var(--s8); }
.scene-head { display: grid; gap: var(--s2); margin-bottom: var(--s5); }
.scene-head h1 { font: 400 clamp(2rem, 1.5rem + 1.6vw, 2.75rem)/1.08 var(--display); color: var(--gold); text-shadow: 0 0 24px rgb(217 174 95 / .22); text-wrap: balance; }
.scene-head p { max-width: 44rem; color: var(--text-2); font-size: var(--t-18); line-height: 1.45; text-wrap: pretty; }
.scene-head .scene-sub { color: var(--text-3); font-size: var(--t-16); }
.scene-head-row { grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--s4) var(--s6); }
.head-actions, .scene-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3); }
.scene-actions { margin-block: var(--s5); }

/* ---- title */
.scene-title { display: grid; gap: var(--s6); padding-top: var(--s4); }
.title-head { display: grid; gap: var(--s4); max-width: 46rem; }
.title { font: 400 clamp(2.75rem, 1.6rem + 4vw, 5rem)/1 var(--display); color: var(--text); letter-spacing: -.01em; text-shadow: 0 0 28px rgb(217 174 95 / .25); }
.title::first-letter {
  float: left; margin: .02em .12em 0 0; padding: .1em .16em .02em;
  font-size: 1.62em; line-height: .86; color: var(--gold-hi);
  text-shadow: 0 0 18px rgb(255 190 90 / .55);
  background:
    repeating-linear-gradient(45deg, transparent 0 7px, rgb(217 174 95 / .22) 7px 8px),
    repeating-linear-gradient(-45deg, transparent 0 7px, rgb(217 174 95 / .22) 7px 8px),
    linear-gradient(160deg, #7a1d14, #4a0f0a);
  border: 5px double var(--gold); border-radius: var(--r1);
  box-shadow: 0 0 24px rgb(255 150 60 / .25);
}
.dek { max-width: 34rem; color: var(--text-2); font-size: var(--t-22); line-height: 1.45; text-wrap: pretty; }
.mages legend { margin-bottom: var(--s4); padding: 0; font: 400 var(--t-28)/1.15 var(--display); color: var(--gold); }
.mage-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); }
.mage { position: relative; display: grid; cursor: pointer; }
.mage input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.mage-cover {
  position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-content: center; text-align: center; min-height: 8.5rem; padding: var(--s5) var(--s5) calc(var(--s5) + 14px);
  border-radius: var(--r4);
  background:
    radial-gradient(ellipse at 30% 20%, rgb(255 255 255 / .07), transparent 60%),
    repeating-linear-gradient(115deg, rgb(0 0 0 / .09) 0 2px, transparent 2px 6px),
    var(--leather, var(--leather-a));
  box-shadow: inset 0 0 0 1px rgb(240 207 134 / .35), 0 2px 0 rgb(0 0 0 / .4), 0 26px 50px -26px #000;
  transition: box-shadow 250ms var(--ease), transform 250ms var(--ease);
}
.mage-cover::before { content: ""; position: absolute; inset: 8px; border: 1px solid rgb(217 174 95 / .5); border-radius: var(--r3); pointer-events: none; }
.mage-cover::after {
  content: ""; position: absolute; inset: 0; border-radius: var(--r4); pointer-events: none;
  background:
    radial-gradient(circle at 8px 8px, var(--gold) 0 3px, transparent 3.5px),
    radial-gradient(circle at calc(100% - 8px) 8px, var(--gold) 0 3px, transparent 3.5px),
    radial-gradient(circle at 8px calc(100% - 8px), var(--gold) 0 3px, transparent 3.5px),
    radial-gradient(circle at calc(100% - 8px) calc(100% - 8px), var(--gold) 0 3px, transparent 3.5px);
}
.mage-fire { --leather: var(--leather-a); --glow: rgb(255 150 60 / .5); }
.mage-water { --leather: var(--leather-b); --glow: rgb(110 150 255 / .5); }
.mage-wind { --leather: var(--leather-c); --glow: rgb(110 220 160 / .45); }
.mage-name { text-wrap: balance; font: 400 clamp(1.6rem, 1.2rem + 1vw, 2.1rem)/1 var(--display); color: var(--gold-hi); text-shadow: 0 0 16px rgb(240 207 134 / .35); }
.mage-chosen { display: block; min-height: 1.3em; margin-top: 6px; color: var(--gold); font-size: var(--t-15); font-style: italic; text-align: center; }
.mage-leaf {
  position: relative; display: grid; gap: var(--s2); margin: -18px 14px 0; padding: var(--s4) var(--s4) var(--s4);
  color: var(--ink); border-radius: var(--r1);
  background: linear-gradient(180deg, #f2e8cf, var(--parchment) 40%, #e9dcba);
  box-shadow: 0 1px 0 rgb(0 0 0 / .45), 0 14px 26px -16px #000;
}
.mage-line { font-size: var(--t-16); line-height: 1.4; }
.mage-starts { color: var(--ink-3); font-size: var(--t-14); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.mage-spells { display: grid; }
.mage-spells li { padding: 3px 0 2px; border-bottom: 1px solid var(--rule); font-size: var(--t-15); }
.mage-spells li:last-child { border-bottom: 0; }
.mage:hover .mage-cover { box-shadow: inset 0 0 0 1px rgb(240 207 134 / .6), 0 2px 0 rgb(0 0 0 / .4), 0 26px 50px -26px #000, 0 0 50px -16px var(--glow); }
.mage input:checked + .mage-cover { box-shadow: inset 0 0 0 2px var(--gold-hi), 0 2px 0 rgb(0 0 0 / .4), 0 26px 50px -26px #000, 0 0 70px -10px var(--glow); }
.mage input:focus-visible + .mage-cover { outline: 2px solid var(--gold-hi); outline-offset: 4px; }
@media (prefers-reduced-motion: no-preference) { .mage input:checked + .mage-cover { transform: translateY(-3px); } }
.title-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); }
.title-rule { max-width: 30rem; color: var(--text-3); font-size: var(--t-15); }
.day-steps { padding-top: var(--s5); border-top: 1px solid var(--line); }
.day-steps h2 { font: 400 var(--t-22)/1.2 var(--display); color: var(--gold); margin-bottom: var(--s4); }
.steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); counter-reset: step; }
.steps li { padding: 0 var(--s4); border-left: 1px solid var(--line); counter-increment: step; }
.steps li:first-child { padding-left: 0; border-left: 0; }
.steps h3 { display: flex; gap: var(--s2); align-items: baseline; font: 400 var(--t-18)/1.2 var(--display); color: var(--text); }
.steps h3::before { content: counter(step, upper-roman) "."; color: var(--gold); }
.steps p { margin-top: var(--s1); color: var(--text-2); font-size: var(--t-15); }
.title-foot { color: var(--text-3); font-size: var(--t-15); }

/* ---- Lady of the Lake */
.gifts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--s5); max-width: 66rem; }
.gift { display: flex; flex-direction: column; gap: var(--s3); height: 100%; padding: var(--s5) var(--s5) var(--s4); }
.gift::before { inset: 6px; border: 3px double rgb(169 128 47 / .55); }
.tier-rare::before { border-color: rgb(35 68 122 / .55); }
.tier-legendary::before { border-color: var(--gold-deep); box-shadow: inset 0 0 18px rgb(217 174 95 / .3); }
.gift-name { font: 400 var(--t-28)/1.1 var(--display); color: var(--ink); }
.gift-text { font-size: var(--t-18); line-height: 1.45; }
.gift-meta { margin-top: auto; color: var(--ink-3); font-size: var(--t-14); }
.gift .btn { align-self: start; }

/* ---- shop shelf and slips */
.shelf { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--s3); margin-bottom: var(--s6); }
.shelf-reward { grid-template-columns: repeat(2, minmax(0, 20rem)); }
.slip {
  position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0;
  padding: var(--s3) var(--s3) var(--s3) var(--s4);
  color: var(--ink); border-radius: var(--r2);
  background: linear-gradient(180deg, #f2e8cf, var(--parchment) 40%, #e9dcba);
  box-shadow: 0 1px 0 rgb(0 0 0 / .5), 0 16px 30px -20px #000, inset 0 0 0 1px rgb(110 91 70 / .22);
}
.slip::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 1px; background: rgb(163 38 27 / .3); }
.slip[draggable="true"] { cursor: grab; }
.slip.is-sel { box-shadow: 0 0 0 2px var(--gold-hi), 0 16px 30px -20px #000; }
.slip-top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s2); }
.slip-name { padding: 0; border: 0; background: none; text-align: left; font-size: var(--t-16); line-height: 1.25; overflow-wrap: anywhere; }
.slip-name:hover .wt { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.price { display: inline-flex; align-items: center; gap: 3px; flex: none; color: var(--gold-ink); font-weight: 700; font-size: var(--t-18); line-height: 1; font-variant-numeric: lining-nums tabular-nums; }
.price .icon { width: 1em; height: 1em; }
.price.is-short { color: var(--rubric); }
.slip-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; color: var(--ink-3); font-size: var(--t-13); line-height: 1.3; }
.slip-kind { white-space: nowrap; }
.slip-at { color: var(--gold-ink); font-weight: 700; font-variant-caps: all-small-caps; letter-spacing: .05em; }
.slip-text { font-size: var(--t-15); line-height: 1.4; text-wrap: pretty; }
.slip-up { padding: 4px 6px; border-radius: var(--r1); background: rgb(217 174 95 / .28); color: var(--ink-2); font-size: var(--t-14); line-height: 1.3; }
.slip-actions { display: flex; flex-wrap: wrap; gap: var(--s2); margin-top: auto; padding-top: var(--s1); }
.slip-actions .btn-quiet[aria-pressed="true"] { background: var(--leather-a); color: #f6ecd2; border-color: var(--leather-a); }
.slip-why { flex: 1 1 8rem; align-self: center; color: var(--ink-3); font-size: var(--t-13); font-style: italic; line-height: 1.3; }
.slip.is-sold > :not(.slip-stamp) { opacity: .42; }
.slip-stamp {
  position: absolute; right: var(--s3); bottom: var(--s3); padding: 2px 10px;
  border: 2px solid rgb(163 38 27 / .8); border-radius: var(--r2);
  color: rgb(163 38 27 / .9); font: 400 var(--t-22)/1 var(--display); letter-spacing: .06em; transform: rotate(-7deg);
}
.slip.is-held::after { content: ""; position: absolute; top: -4px; right: 22px; width: 14px; height: 26px; background: var(--rubric); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 78%, 0 100%); box-shadow: 0 2px 4px rgb(0 0 0 / .4); }
.slip.is-dragging { opacity: .5; }

/* ------------------------------------------------------------ the desk: the book and its margin note */
.desk { display: grid; grid-template-columns: minmax(0, 47rem) minmax(17rem, 23rem); justify-content: space-between; align-items: start; gap: var(--s5) var(--s6); }
.desk-book { display: grid; gap: var(--s3); min-width: 0; }
.desk-note { position: sticky; top: calc(var(--hud-h) + var(--s4)); max-height: calc(100vh - var(--hud-h) - var(--s6)); overflow: auto; overscroll-behavior: contain; border-radius: var(--r2); }

/* ---- the book (tome) */
.tome { display: grid; gap: var(--s2); min-width: 0; }
.tome-head { display: grid; gap: 2px; }
.tome-title { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s1) var(--s3); color: var(--text-3); font-size: var(--t-15); }
.tome-title b { color: var(--gold); font-weight: 600; }
.tome-note { color: var(--text-3); font-size: var(--t-14); font-style: italic; }
.tome-tabs { display: none; }
.tome-cover {
  position: relative; padding: 18px; border-radius: var(--r4);
  background:
    radial-gradient(ellipse at 30% 20%, rgb(255 255 255 / .06), transparent 60%),
    repeating-linear-gradient(115deg, rgb(0 0 0 / .08) 0 2px, transparent 2px 6px),
    var(--cover, var(--leather-a));
  box-shadow: inset 0 0 0 1px rgb(240 207 134 / .35), 0 2px 0 rgb(0 0 0 / .4), 0 30px 60px -24px #000, 0 0 90px -30px var(--cover-glow, rgb(255 150 60 / .28));
}
.leather-water { --cover: var(--leather-b); --cover-glow: rgb(110 140 255 / .3); }
.leather-wind { --cover: var(--leather-c); --cover-glow: rgb(110 220 160 / .25); }
.tome-cover::before { content: ""; position: absolute; inset: 6px; border: 1px solid rgb(217 174 95 / .5); border-radius: var(--r3); pointer-events: none; }
.tome-cover::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: var(--r4);
  background:
    radial-gradient(circle at 6px 6px, var(--gold) 0 2.5px, transparent 3px),
    radial-gradient(circle at calc(100% - 6px) 6px, var(--gold) 0 2.5px, transparent 3px),
    radial-gradient(circle at 6px calc(100% - 6px), var(--gold) 0 2.5px, transparent 3px),
    radial-gradient(circle at calc(100% - 6px) calc(100% - 6px), var(--gold) 0 2.5px, transparent 3px);
}
.tome-spread { position: relative; display: grid; grid-template-columns: 1fr 1fr; border-radius: var(--r2); overflow: hidden; box-shadow: 0 0 0 1px rgb(0 0 0 / .35); }
.tome-page { --mg: 3.25rem; position: relative; padding: var(--s3) var(--s3) var(--s6) var(--s1); color: var(--ink); background: linear-gradient(90deg, #e2d2ab 0%, var(--parchment) 4%, var(--parchment) 90%, #d3bf92 100%); }
.tome-page + .tome-page { background: linear-gradient(90deg, #d3bf92 0%, var(--parchment) 8%, var(--parchment) 96%, #e2d2ab 100%); }
/* Ruled like a manuscript: a red double margin line, then faint rules under each line. */
.lines { position: relative; background:
  linear-gradient(90deg, transparent calc(var(--mg) - 4px), rgb(163 38 27 / .3) calc(var(--mg) - 4px) calc(var(--mg) - 3px), transparent calc(var(--mg) - 3px) calc(var(--mg) - 1px), rgb(163 38 27 / .3) calc(var(--mg) - 1px) var(--mg), transparent var(--mg)); }
.line { position: relative; display: grid; grid-template-columns: 1.65rem 1.6rem minmax(0, 1fr) auto; align-items: center; min-height: 1.78rem; border-bottom: 1px solid var(--rule); }
.ln { padding-right: 3px; text-align: right; color: var(--ink-3); font-size: .72rem; line-height: 1; font-variant-numeric: oldstyle-nums tabular-nums; }
.mg { position: relative; display: grid; place-items: center; align-self: stretch; }
.mg .sigil-svg { width: 18px; height: 18px; }
.mg.is-layered { display: flex; align-items: center; justify-content: center; gap: 1px; }
.mg.is-layered .sigil-svg { width: 13px; height: 13px; }
.tome-word {
  position: relative; justify-self: start; display: inline-flex; align-items: baseline; max-width: 100%;
  margin: 1px 0 1px 7px; padding: 2px 6px 4px; border: 0; border-radius: var(--r1);
  background: transparent; font-size: var(--t-15); line-height: 1.2; text-align: left;
  overflow-wrap: anywhere; transition: background var(--fast) var(--ease);
}
.tome-edit .tome-word[draggable="true"] { cursor: grab; }
.tome-word:hover { background: rgb(217 174 95 / .2); }
.cdl { position: absolute; left: 6px; right: 6px; bottom: 1px; height: 2px; background: rgb(169 128 47 / .32); border-radius: 1px; }
.tome-blank { display: block; min-height: 1.2rem; margin-left: 13px; color: var(--ink-3); font-size: var(--t-13); font-style: italic; }
/* While moving, every empty line is a place to put the spell: tinted, and labelled on hover or focus. */
button.tome-blank { width: calc(100% - 13px); min-height: 1.45rem; padding: 2px 6px; border: 0; border-radius: var(--r1); background: transparent; color: transparent; text-align: left; cursor: copy; }
.tome.is-moving .line.is-empty { background: rgb(217 174 95 / .07); }
button.tome-blank:hover, button.tome-blank:focus-visible { background: rgb(217 174 95 / .32); color: var(--ink-2); }
.tome-close { margin-left: var(--s2); padding: 2px 0; border: 0; background: none; color: var(--gold); font: italic 500 var(--t-14)/1.3 var(--serif); text-decoration: underline; text-underline-offset: .2em; }
.tome-close:hover { color: var(--gold-hi); }
.folio { position: absolute; bottom: var(--s2); right: var(--s4); color: var(--ink-3); font-size: var(--t-14); font-variant-numeric: lining-nums tabular-nums; }
.tome-page + .tome-page .folio { right: auto; left: var(--s4); }


/* Selection and its Neighbors: a gold band, and a bracket in the margin joining the three lines. */
.line.is-sel { background: rgb(217 174 95 / .34); }
.line.is-nb { background: rgb(217 174 95 / .15); }
.line.is-sel .mg::after, .line.is-nb .mg::after { content: ""; position: absolute; right: -2px; width: 3px; background: var(--gold-ink); }
.line.is-sel .mg::after { top: 0; bottom: 0; }
.line.nb-above .mg::after { top: 50%; bottom: -1px; border-radius: 2px 2px 0 0; }
.line.nb-below .mg::after { top: 0; bottom: 50%; border-radius: 0 0 2px 2px; }
.line.is-nb .mg::before { content: ""; position: absolute; right: -2px; top: calc(50% - 1px); width: 8px; height: 3px; background: var(--gold-ink); }
.line.is-sel .tome-word { background: rgb(240 207 134 / .5); box-shadow: inset 0 0 0 1px rgb(122 90 28 / .5); }

/* Moving: the lifted spell, and every other line becomes a place to put it. */
.tome.is-moving .line:not(.is-lifted) .tome-word { cursor: copy; }
.tome.is-moving .line:not(.is-lifted):not(.is-empty):hover { box-shadow: inset 0 2px 0 var(--gold-ink); }
.line.is-lifted { background: repeating-linear-gradient(135deg, rgb(217 174 95 / .35) 0 6px, rgb(217 174 95 / .18) 6px 12px); }
.line.is-dragging { opacity: .45; }
.line.is-drop { box-shadow: inset 0 0 0 2px var(--gold-ink); background: rgb(217 174 95 / .3); }
body.is-dragging .tome-edit .line:not(.is-locked) { transition: background var(--fast); }

/* Picking a line for Merlin or Arthur */
.tome-pick .line.is-off .tome-word { opacity: .4; cursor: not-allowed; }
.tome-pick .line.is-off .tome-word:hover { background: transparent; }
.tome-pick .line.is-eligible .tome-word { box-shadow: inset 0 -1px 0 rgb(122 90 28 / .4); }
.line.is-picked { background: rgb(163 38 27 / .13); }
.line.is-picked .tome-word { box-shadow: inset 0 0 0 1px rgb(163 38 27 / .55); background: rgb(255 255 255 / .35); }
.pick-tag { margin-right: var(--s2); color: var(--rubric); font-size: var(--t-13); font-weight: 700; font-variant-caps: all-small-caps; letter-spacing: .06em; }

/* ---- the margin note: a spell's full text */
.detail { padding: var(--s4) var(--s5) var(--s5); display: grid; gap: var(--s3); }
.detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s2); margin-right: -10px; }
.detail-name { font: 400 var(--t-22)/1.2 var(--serif); overflow-wrap: anywhere; }
.facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: var(--s1) var(--s4); padding-block: var(--s2); border-block: 1px solid var(--rule); }
.facts div { display: grid; }
.facts dt { color: var(--ink-3); font-size: var(--t-13); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.facts dd { font-size: var(--t-15); }
.effect { font-size: var(--t-18); line-height: 1.45; text-wrap: pretty; }
.lv-line { padding-left: var(--s3); border-left: 3px solid rgb(110 91 70 / .25); color: var(--ink-3); font-size: var(--t-15); line-height: 1.4; }
.lv-line.is-on { border-left-color: var(--gold-ink); color: var(--ink); }
.lv-line b { color: var(--ink-2); }
.have { color: var(--gold-ink); font-style: italic; font-weight: 600; }
.ink-note { display: grid; gap: var(--s1); padding-top: var(--s3); border-top: 1px solid var(--rule); font-size: var(--t-15); line-height: 1.4; }
.ink-name { display: flex; align-items: center; gap: var(--s2); font-size: var(--t-16); }
.ink-name .sigil-svg { width: 22px; height: 22px; }
.is-dim { color: var(--ink-3); opacity: .75; }
.nb-note { font-size: var(--t-15); line-height: 1.5; }
.nb-note .sub, .leaf .sub { color: var(--ink-3); }
.owned-note { padding: 4px 8px; border-radius: var(--r1); background: rgb(217 174 95 / .28); font-size: var(--t-15); }
.detail-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); padding-top: var(--s3); border-top: 1px solid var(--rule); }
.detail-actions .keys { flex-basis: 100%; font-size: var(--t-13); }
.sell-row { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); padding-top: var(--s2); border-top: 1px dashed var(--rule); }
.sell-ask p { flex-basis: 100%; font-size: var(--t-15); }
.leaf .btn-strike { color: var(--rubric); border-color: rgb(163 38 27 / .5); }
.leaf .btn-strike:hover { color: var(--rubric); border-color: var(--rubric); background: rgb(163 38 27 / .08); }
/* Striking out: a line of ink drawn through the word, then it fades from the page. */
.line.is-striking .tome-word::after { content: ""; position: absolute; left: 2px; right: 2px; top: 50%; height: 2px; margin-top: -2px; border-radius: 1px; background: var(--ink); transform-origin: left center; animation: strike 340ms var(--ease) both; }
.line.is-striking .tome-word { animation: strike-fade 520ms var(--ease) both; }
@keyframes strike { from { transform: scaleX(0) rotate(-2deg); } to { transform: scaleX(1) rotate(-2deg); } }
@keyframes strike-fade { 0%, 60% { opacity: 1; } 100% { opacity: .25; } }
/* A spell just bought on a narrow screen glows on its line. */
@media (prefers-reduced-motion: no-preference) { .line.is-fresh { animation: fresh 1600ms var(--ease) both; } }
.line.is-fresh { background: rgb(217 174 95 / .3); }
@keyframes fresh { from { background: rgb(240 207 134 / .85); } to { background: rgb(217 174 95 / .0); } }
.gloss { border-top: 1px solid var(--rule); padding-top: var(--s2); font-size: var(--t-14); }
.gloss summary { cursor: pointer; color: var(--ink-2); font-weight: 600; min-height: 32px; display: flex; align-items: center; gap: var(--s2); list-style: none; }
.gloss summary::-webkit-details-marker { display: none; }
.gloss summary::before { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform var(--fast) var(--ease); }
.gloss[open] summary::before { transform: rotate(45deg); }
.gloss dl { display: grid; gap: var(--s1); margin-top: var(--s2); }
.gloss dt { font-weight: 700; }
.gloss dd { margin-bottom: var(--s2); color: var(--ink-2); line-height: 1.4; }

.hint { padding: var(--s4) var(--s5) var(--s5); display: grid; gap: var(--s3); }
.hint h2 { font: 400 var(--t-22)/1.2 var(--display); }
.hint h3 { font: 400 var(--t-18)/1.2 var(--display); padding-top: var(--s2); border-top: 1px solid var(--rule); }
.hint-list { display: grid; gap: var(--s2); font-size: var(--t-15); line-height: 1.4; }
.hint-list li { padding-left: var(--s3); border-left: 2px solid rgb(163 38 27 / .25); }
.gift-list { display: grid; gap: var(--s3); }
.gift-list li { display: grid; gap: 2px; font-size: var(--t-15); line-height: 1.4; }
.gift-list b { font: 400 var(--t-18)/1.2 var(--display); }
.empty-note { color: var(--ink-3); font-size: var(--t-15); font-style: italic; }

.move-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--s2) var(--s4); padding: var(--s3) var(--s4); font-size: var(--t-15); }

/* ---- Merlin and Arthur */
.merlin { display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); gap: var(--s5) var(--s6); align-items: start; }
.merlin .desk { grid-template-columns: minmax(0, 1fr); }
.merlin .desk-note { position: static; max-height: none; }
.merlin .desk-note:not(.has-detail) { display: none; }
.merlin-offers { display: grid; gap: var(--s3); }
.choice { display: grid; gap: 4px; width: 100%; padding: var(--s4) var(--s4) var(--s4) var(--s5); border: 0; text-align: left; font-size: var(--t-15); line-height: 1.4; }
.choice b { font: 400 var(--t-22)/1.2 var(--display); }
.choice:hover { box-shadow: 0 0 0 2px rgb(217 174 95 / .6), 0 18px 36px -22px #000; }
.choice[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--gold-hi), 0 0 40px -10px rgb(240 207 134 / .45); }
.choice:disabled { opacity: .55; cursor: not-allowed; }
.choice-val { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.choice-val .sigil-svg { width: 20px; height: 20px; }
.offer-h { margin-top: var(--s3); font: 400 var(--t-22)/1.2 var(--display); color: var(--gold); }
.merlin-offers > .sub { margin-top: -6px; color: var(--text-3); }
.inks { display: grid; gap: var(--s3); }
.ink-tile {
  display: grid; grid-template-columns: 3rem minmax(0, 1fr); gap: var(--s3); align-items: start; width: 100%;
  padding: var(--s3) var(--s4) var(--s3) var(--s3); border: 0; border-radius: var(--r2); text-align: left; color: var(--ink);
  background: linear-gradient(180deg, #f2e8cf, var(--parchment) 40%, #e9dcba);
  box-shadow: 0 1px 0 rgb(0 0 0 / .5), 0 16px 30px -20px #000, inset 0 0 0 1px rgb(110 91 70 / .22);
}
.ink-tile:hover { box-shadow: 0 0 0 2px rgb(217 174 95 / .6), 0 16px 30px -20px #000; }
.ink-tile[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--gold-hi), 0 0 40px -10px rgb(240 207 134 / .45); }
.ink-tile:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 3px; }
.ink-sigil { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: radial-gradient(circle, #f7efda 0 55%, #e2d2ab 100%); box-shadow: inset 0 0 0 1px rgb(110 91 70 / .35); }
.ink-sigil .sigil-svg { width: 30px; height: 30px; }
.ink-body { display: grid; gap: 3px; }
.ink-title { font: 400 var(--t-22)/1.15 var(--display); }
.ink-effect { font-size: var(--t-15); line-height: 1.4; }
.ink-sub { color: var(--ink-3); font-size: var(--t-13); line-height: 1.35; }
.arthur-steps { display: grid; gap: var(--s3); }
.pick-bar { display: grid; gap: var(--s2); padding: var(--s3) var(--s4) var(--s4); font-size: var(--t-15); line-height: 1.45; z-index: 5; }
.pick-bar .sigil-svg { display: inline-block; width: 18px; height: 18px; vertical-align: -3px; }
.pick-prompt { font-weight: 600; }
.pick-actions { display: flex; flex-wrap: wrap; gap: var(--s2); }

/* ---- the duel */
.finding { display: flex; align-items: center; gap: var(--s4); margin-block: var(--s6); color: var(--text-2); font-size: var(--t-18); }
.finding-sigil { width: 48px; height: 48px; }
.finding-sigil .sigil-svg { width: 48px; height: 48px; }
@media (prefers-reduced-motion: no-preference) { .finding-sigil { animation: pulse 1.6s var(--ease) infinite alternate; } }
@keyframes pulse { from { opacity: .35; transform: scale(.94); } to { opacity: 1; transform: scale(1); } }
.versus { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--s5); max-width: 52rem; }
.vs-book {
  position: relative; display: grid; gap: 4px; padding: var(--s5) var(--s6); min-height: 9rem; align-content: center; border-radius: var(--r4);
  background: radial-gradient(ellipse at 30% 20%, rgb(255 255 255 / .07), transparent 60%), repeating-linear-gradient(115deg, rgb(0 0 0 / .08) 0 2px, transparent 2px 6px), var(--cover, var(--leather-a));
  box-shadow: inset 0 0 0 1px rgb(240 207 134 / .35), 0 2px 0 rgb(0 0 0 / .4), 0 30px 60px -24px #000, 0 0 90px -30px var(--cover-glow, rgb(255 150 60 / .28));
}
.vs-book::before { content: ""; position: absolute; inset: 7px; border: 1px solid rgb(217 174 95 / .5); border-radius: var(--r3); pointer-events: none; }
.vs-who { color: var(--text-3); font-size: var(--t-14); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.vs-name { font: 400 var(--t-28)/1.1 var(--display); color: var(--gold-hi); overflow-wrap: anywhere; }
.vs-meta { color: var(--text-2); font-size: var(--t-15); }
.vs-mark { font: 400 var(--t-32)/1 var(--display); color: var(--gold); text-shadow: 0 0 22px rgb(255 190 90 / .6); }
.stakes { margin-top: var(--s5); color: var(--text-2); font-size: var(--t-18); }
.stakes b { color: var(--ember); }
.scene-pvp .desk { margin-top: var(--s6); }

/* ---- result and end */
.scene-result .scene-head h1, .scene-end .scene-head h1 { font-size: clamp(2.4rem, 1.6rem + 3vw, 3.75rem); }
.is-loss .scene-head h1 { color: var(--text-2); }
.result-line { color: var(--text) !important; font-size: var(--t-22) !important; }
.tally { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s5) var(--s8); margin-block: var(--s5); }
.tally figure { display: grid; justify-items: center; gap: var(--s2); }
.tally figcaption { color: var(--text-2); font-size: var(--t-16); }
.round-table.big { width: 9rem; height: 9rem; }
.trophy-row { display: grid; grid-template-columns: repeat(5, 2.5rem); gap: var(--s2); }
.trophy-row li { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; color: rgb(217 174 95 / .25); box-shadow: inset 0 0 0 1px rgb(217 174 95 / .2); }
.trophy-row li.is-won { color: var(--gold-hi); background: rgb(217 174 95 / .12); box-shadow: inset 0 0 0 1px rgb(217 174 95 / .55); }
.trophy-row .icon { width: 1.4rem; height: 1.4rem; }
@media (prefers-reduced-motion: no-preference) {
  .trophy-row li.is-new { animation: earn 900ms var(--ease) both 200ms; }
  .round-table.just-lost .rt-seat:not(.is-alive) { animation: fall 1200ms var(--ease) both 200ms; }
}
@keyframes earn { from { transform: scale(.4); opacity: 0; box-shadow: 0 0 0 0 rgb(240 207 134 / .8); } 60% { transform: scale(1.15); opacity: 1; } to { transform: scale(1); box-shadow: inset 0 0 0 1px rgb(217 174 95 / .55), 0 0 24px rgb(240 207 134 / .45); } }
@keyframes fall { from { fill: var(--gold-hi); } to { fill: #191420; } }
.summary { display: grid; grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); gap: var(--s3) var(--s5); max-width: 52rem; padding-block: var(--s4); border-block: 1px solid var(--line); }
.summary div { display: grid; }
.summary dt { color: var(--text-3); font-size: var(--t-15); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.summary dd { font: 600 var(--t-22)/1.2 var(--serif); font-variant-numeric: lining-nums; color: var(--text); }
.end-gifts { max-width: 46rem; margin-block: var(--s5) var(--s6); }
.end-gifts h2 { margin-bottom: var(--s3); font: 400 var(--t-22)/1.2 var(--display); color: var(--gold); }
.end-gifts .gift-list b { color: var(--text); }
.end-gifts .gift-list span { color: var(--text-2); }
.end-gifts .empty-note { color: var(--text-3); }

/* ---- the fight host (fightview.js draws inside) and its fallback */
.fight-host { position: relative; z-index: 1; width: min(100% - 2 * var(--gutter), 90rem); min-height: calc(100vh - var(--hud-h)); margin-inline: auto; padding-block: var(--s4); }
.fight-next { position: sticky; bottom: 0; z-index: 6; display: flex; justify-content: center; padding: var(--s4) 0 var(--s5); background: linear-gradient(180deg, transparent, rgb(14 12 21 / .85) 40%); }
.stub-fight { max-width: 34rem; margin: var(--s7) auto; padding: var(--s5) var(--s6); display: grid; gap: var(--s3); }
.stub-fight h2 { font: 400 var(--t-28)/1.15 var(--display); }

/* ---- dialogs */
.dlg { width: min(100% - 2 * var(--gutter), 36rem); max-height: calc(100vh - 2 * var(--s5)); padding: 0; border: 1px solid rgb(217 174 95 / .4); border-radius: var(--r3); background: var(--night-2); color: var(--text); box-shadow: 0 30px 80px -20px #000; }
.dlg::backdrop { background: rgb(5 4 9 / .72); }
.dlg-body { display: grid; gap: var(--s4); padding: var(--s4) var(--s5) var(--s5); }
.dlg-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); margin-right: -10px; }
.dlg-head h2 { font: 400 var(--t-28)/1.15 var(--display); color: var(--gold); }
.dlg .icon-btn:hover { background: rgb(217 174 95 / .12); }
.dlg-sec { display: grid; gap: var(--s2); padding-top: var(--s3); border-top: 1px solid var(--line); color: var(--text-2); }
.dlg-sec h3 { font: 400 var(--t-18)/1.2 var(--display); color: var(--text); }
.mini-steps { display: grid; gap: 4px; padding-left: 1.6em; list-style: upper-roman; }
.mini-steps li::marker { color: var(--gold); }
.mini-steps b { color: var(--text); font-weight: 600; }
.dlg .gift-list b { color: var(--text); }
.dlg .gift-list span { color: var(--text-2); }
.dlg .empty-note { color: var(--text-3); }
.field { display: grid; gap: var(--s1); color: var(--text); }
.field input { min-height: 44px; padding: var(--s2) var(--s3); border: 1px solid rgb(217 174 95 / .45); border-radius: var(--r2); background: var(--night); color: var(--text); }
.field input:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.dlg-actions { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s3); padding-top: var(--s2); }

/* ------------------------------------------------------------ narrower screens */
@media (max-width: 1240px) {
  .shelf { grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); }
  .shelf-reward { grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 22rem)); }
}
@media (max-width: 1099px) {
  .desk { grid-template-columns: minmax(0, 47rem); justify-content: center; }
  .desk-note { position: static; max-height: none; overflow: visible; }
  /* With a spell selected, its text rises from the bottom as a sheet. */
  .desk-note.has-detail { position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; max-height: min(60vh, 34rem); overflow: auto; padding: 0 var(--gutter); }
  .desk-note.has-detail .detail { max-width: 40rem; margin-inline: auto; border-radius: var(--r4) var(--r4) 0 0; box-shadow: 0 -24px 48px -12px #000, inset 0 0 0 1px rgb(110 91 70 / .22); padding-bottom: calc(var(--s5) + env(safe-area-inset-bottom)); }
  body.sheet-open .screen { padding-bottom: calc(min(60vh, 34rem) + var(--s5)); }
  body.is-moving .desk-note.has-detail { display: none; }
  .merlin { grid-template-columns: minmax(0, 1fr); }
  .merlin .desk-note.has-detail { position: static; padding: 0; max-height: none; }
  .merlin .desk-note.has-detail .detail { border-radius: var(--r2); }
  .merlin-offers { max-width: 47rem; }
  .inks { grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
  .pick-bar { position: sticky; bottom: var(--s2); box-shadow: 0 0 0 1px rgb(110 91 70 / .3), 0 -10px 30px -10px #000; }
  .steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s4) 0; }
  .steps li:nth-child(4) { padding-left: 0; border-left: 0; }
}
@media (max-width: 860px) {
  .mage-row { grid-template-columns: minmax(0, 1fr); max-width: 30rem; gap: var(--s4); }
  .mage { grid-template-columns: 9rem minmax(0, 1fr); }
  .mage-cover { min-height: 0; padding: var(--s4) var(--s3); }
  .mage-name { font-size: var(--t-22); text-align: center; }
  .mage-chosen { font-size: var(--t-13); margin-top: 2px; }
  .mage-leaf { margin: 10px 0 10px -12px; padding: var(--s3); }
  .scene-head-row { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 719px) {
  :root { --hud-h: 52px; }
  body { font-size: var(--t-16); }
  .screen { padding-block: var(--s5) var(--s7); }
  .hud { gap: var(--s2); padding-inline: var(--s3); }
  .hud-mark { display: none; }
  .hud-stats { margin-inline: 0 auto; gap: var(--s3); }
  .stat dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .stat dd { font-size: var(--t-16); gap: 3px; }
  .stat-day dd::before { content: "Day"; margin-right: 4px; color: var(--text-3); font: 400 var(--t-14)/1 var(--serif); font-variant-caps: all-small-caps; letter-spacing: .06em; }
  .stat-day dd { font-size: var(--t-22); }
  .round-table { width: 32px; height: 32px; }
  .last-chance { display: none; }
  .hud-btn { padding: 0 var(--s2); }
  .hud-btn > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .hud-btn { width: 40px; justify-content: center; }
  .scene-head h1 { font-size: 2rem; }
  .scene-head p { font-size: var(--t-16); }
  .head-actions .btn { flex: 1 1 auto; }
  .shelf, .shelf-reward { grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
  .title::first-letter { font-size: 1.4em; border-width: 4px; }
  .dek { font-size: var(--t-18); }
  .mage { grid-template-columns: 7.25rem minmax(0, 1fr); }
  .mage-name { font-size: var(--t-18); }
  .steps { grid-template-columns: minmax(0, 1fr); gap: var(--s3); }
  .steps li, .steps li:first-child, .steps li:nth-child(4) { padding: var(--s3) 0 0; border-left: 0; border-top: 1px solid var(--line); }
  .title-actions .btn { width: 100%; }
  /* One page at a time, with page tabs. */
  .tome-tabs { display: flex; gap: var(--s2); }
  .tome-tab { flex: 1; display: grid; justify-items: center; gap: 0; min-height: 44px; padding: 4px var(--s2); border: 1px solid var(--line); border-radius: var(--r2) var(--r2) 0 0; border-bottom: 2px solid transparent; background: transparent; color: var(--text-2); font: 400 var(--t-18)/1.15 var(--display); }
  .tome-tab small { font: 400 var(--t-13)/1.2 var(--serif); color: var(--text-3); }
  .tome-tab[aria-pressed="true"] { color: var(--gold-hi); border-bottom-color: var(--gold); background: rgb(217 174 95 / .1); }
  .tome-cover { padding: 9px; border-radius: var(--r3); }
  .tome-cover::before { inset: 3px; }
  .tome-spread { grid-template-columns: minmax(0, 1fr); }
  .tome-page { display: none; padding: var(--s2) var(--s2) var(--s6) 0; background: linear-gradient(90deg, #e2d2ab 0%, var(--parchment) 4%, var(--parchment) 96%, #e2d2ab 100%) !important; }
  .tome-page.is-shown { display: block; }
  .tome-page + .tome-page .folio { left: auto; right: var(--s4); }
  .line { min-height: 2.3rem; }
  .tome-word { font-size: var(--t-16); padding-block: 5px 7px; }
  .versus { grid-template-columns: minmax(0, 1fr); gap: var(--s2); }
  .vs-book { min-height: 0; padding: var(--s4) var(--s5); }
  .vs-mark { justify-self: center; font-size: var(--t-22); }
  .desk-note.has-detail { padding: 0; max-height: 62vh; }
  .desk-note.has-detail .detail { padding: var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom)); }
  body.sheet-open .screen { padding-bottom: calc(62vh + var(--s4)); }
  .effect { font-size: var(--t-16); }
  .facts { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2px var(--s3); }
  .facts dd { font-size: var(--t-14); }
  .detail { gap: var(--s2); }
  .round-table.big { width: 7rem; height: 7rem; }
  .tally { gap: var(--s5); }
  .dlg-body { padding: var(--s3) var(--s4) var(--s4); }
  .dlg-actions .btn { flex: 1 1 auto; }
}
@media (pointer: coarse) { .detail-actions .keys, .hint-hover { display: none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}


/* ================================================================ launch additions */

/* Cooldown chip: how long a spell takes to cast, beside its name. */
.cd-chip { display: inline-flex; align-items: center; gap: 4px; padding: 1px 7px 1px 5px; border: 1px solid rgb(122 90 28 / .45); border-radius: 999px; background: rgb(255 255 255 / .35); color: var(--ink-2); font: 600 var(--t-13)/1.35 var(--serif); font-variant-numeric: lining-nums; white-space: nowrap; }
.cd-chip .icon { width: 13px; height: 13px; color: var(--gold-ink); }
.cd-chip.is-passive { border-style: dashed; font-style: italic; font-weight: 500; color: var(--ink-3); }

/* Cooldown seconds at the end of each active line, and the pick tag. */
.lend { display: inline-flex; align-items: center; gap: var(--s2); padding-right: var(--s2); }
.lcd { color: rgb(110 91 70 / .62); font-size: .72rem; font-variant-numeric: lining-nums tabular-nums; white-space: nowrap; }
.line.is-sel .lcd, .tome-word:hover + .lend .lcd { color: var(--ink-2); }

/* The level ladder: I, II, III. Current level bright, levels not reached greyed. */
.lvls { display: grid; gap: 2px; margin: 0; }
.lv { display: grid; grid-template-columns: 1.9rem minmax(0, 1fr) auto; gap: 2px var(--s2); align-items: baseline; padding: 6px 8px 6px 4px; border-radius: var(--r2); color: var(--ink); font-size: var(--t-15); line-height: 1.4; }
.lv p { margin: 0; text-wrap: pretty; }
.lv-n { color: var(--gold-ink); font: 700 var(--t-14)/1.4 var(--serif); letter-spacing: .06em; text-align: center; }
.lv-meta { display: grid; justify-items: end; gap: 0; color: var(--ink-3); font-size: var(--t-13); font-variant-numeric: lining-nums; white-space: nowrap; }
.lv-meta em { font-size: var(--t-13); color: var(--gold-ink); font-weight: 600; }
.lv.is-cur { background: rgb(217 174 95 / .26); box-shadow: inset 3px 0 0 var(--gold-ink); }
.lv.is-cur p { font-size: var(--t-16); }
.lv.is-ahead { color: rgb(42 32 24 / .5); }
.lv.is-ahead .lv-n, .lv.is-ahead .lv-meta { color: rgb(110 91 70 / .55); }
.lv.is-ahead.is-next { color: rgb(42 32 24 / .72); box-shadow: inset 3px 0 0 rgb(122 90 28 / .35); }
.lv.is-past { color: var(--ink-3); }
b.up { color: #8a4b00; font-weight: 700; }
.lv.is-ahead b.up { color: rgb(138 75 0 / .7); }
.lv-bonus { display: inline; font-style: italic; }

/* Detail panel title row */
.detail-title { display: grid; justify-items: start; gap: 6px; min-width: 0; }

/* Hover card */
.tip { position: fixed; z-index: 60; width: min(22.5rem, calc(100vw - 16px)); max-height: calc(100vh - 16px); overflow: hidden; padding: var(--s3) var(--s3) var(--s3) var(--s4); display: grid; gap: var(--s2); color: var(--ink); background: linear-gradient(180deg, #f4ead2, var(--parchment) 40%, #e9dcba); border-radius: var(--r3); box-shadow: 0 0 0 1px rgb(110 91 70 / .35), 0 18px 40px -12px rgb(0 0 0 / .8); pointer-events: none; }
.tip-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px var(--s2); }
.tip-name { font-size: var(--t-18); line-height: 1.2; }
.tip-meta { color: var(--ink-3); font-size: var(--t-13); }
.tip-ink { display: flex; gap: 6px; align-items: flex-start; padding-top: 6px; border-top: 1px solid var(--rule); font-size: var(--t-14); line-height: 1.35; }
.tip-ink .sigil-svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.tip .lv { font-size: var(--t-14); padding-block: 4px; }
.tip .lv.is-cur p { font-size: var(--t-15); }

/* First-visit tip */
.tip-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2) var(--s3); justify-self: start; max-width: 46rem; margin-top: var(--s1); padding: var(--s2) var(--s2) var(--s2) var(--s4); border: 1px solid rgb(217 174 95 / .35); border-left: 3px solid var(--gold); border-radius: var(--r2); background: rgb(21 18 30 / .82); color: var(--text) !important; font-size: var(--t-16) !important; }
.tip-ok { min-height: 32px; padding: 2px 12px; border: 1px solid rgb(217 174 95 / .5); border-radius: var(--r2); background: transparent; color: var(--gold); font: 600 var(--t-14)/1 var(--serif); }
.tip-ok:hover { background: rgb(217 174 95 / .12); color: var(--gold-hi); }

/* HUD additions */
.dt-sub { font-variant-caps: normal; letter-spacing: 0; font-style: italic; text-transform: none; }
.stat-knights dd small { font-size: .75em; color: var(--text-3); font-weight: 500; }
.hud-help, .hud-sound { width: 40px; padding: 0; justify-content: center; }
.hud-sound .sound-word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.sound-row { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); align-items: center; gap: var(--s3); }
.sound-name { color: var(--text); }
.range output { min-width: 3ch; color: var(--text-3); font-size: var(--t-14); font-variant-numeric: lining-nums tabular-nums; text-align: right; }
.sound-sec .range { grid-template-columns: minmax(0, 1fr) 3.2rem; }
.check.switch input { appearance: none; -webkit-appearance: none; width: 34px; height: 20px; margin: 0; border-radius: 999px; background: rgb(217 174 95 / .25); box-shadow: inset 0 0 0 1px rgb(217 174 95 / .5); position: relative; cursor: pointer; transition: background var(--fast) var(--ease); }
.check.switch input::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: var(--text-2); transition: transform var(--fast) var(--ease); }
.check.switch input:checked { background: var(--gold); }
.check.switch input:checked::after { transform: translateX(14px); background: var(--night); }
.check.switch input:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 2px; }

/* Small text buttons */
.link-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; margin-left: var(--s4); padding: 0 var(--s2); border: 0; background: none; color: var(--text-2); font: inherit; text-decoration: underline; text-underline-offset: .2em; }
.link-btn:hover { color: var(--gold-hi); }
.link-btn .icon { color: var(--gold); }
.title-foot { display: flex; flex-wrap: wrap; align-items: center; }
.title-foot .title-patch { margin-left: 1em; }

/* Shop: how big your book is against the books you'll meet */
.book-size { color: var(--text-2) !important; }

/* Reward and result actions */
.reward-actions { margin-block: calc(-1 * var(--s3)) var(--s6); }
.result-next { color: var(--text-2) !important; }
.scene-links { margin-top: var(--s1); }
.scene-links .btn { min-height: 36px; padding-inline: var(--s3); font-size: var(--t-15); }

/* Wide dialogs: How to play and the Fight report */
.dlg-wide { width: min(100% - 2 * var(--gutter), 58rem); }
.dlg-links { display: flex; flex-wrap: wrap; gap: var(--s2); border-top: 0; padding-top: 0; }
.howto { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 24rem), 1fr)); gap: var(--s4) var(--s6); }
.howto section { display: grid; gap: var(--s2); align-content: start; padding-top: var(--s3); border-top: 1px solid var(--line); color: var(--text-2); font-size: var(--t-15); line-height: 1.5; }
.howto h3 { font: 400 var(--t-22)/1.2 var(--display); color: var(--gold); }
.howto b { color: var(--text); font-weight: 600; }
.howto .wt.is-active, .howto .wt.is-passive { padding: 0 4px; border-radius: var(--r1); background: var(--parchment); }
.howto-steps { display: grid; gap: 4px; padding-left: 1.6em; list-style: upper-roman; }
.howto-steps li::marker { color: var(--gold); }
.el-legend { display: flex; flex-wrap: wrap; gap: 6px; }
.el-legend li { display: inline-flex; align-items: baseline; gap: 4px; padding: 3px 9px; border-radius: var(--r2); background: var(--parchment); font-weight: 700; font-size: var(--t-14); }
.el-legend small { color: var(--ink-3); font-weight: 500; font-size: var(--t-13); }
.howto section:last-child { grid-column: 1 / -1; }
.howto-gloss { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: var(--s2) var(--s5); }
.howto-gloss div { display: grid; gap: 2px; }
.howto-gloss dt { color: var(--text); font-weight: 700; }
.howto-gloss dd { color: var(--text-2); font-size: var(--t-14); line-height: 1.4; }

/* Fight report */
.rep-intro { color: var(--text-2); font-size: var(--t-15); }
.rep-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: var(--s5); }
.rep-book { display: grid; gap: var(--s2); align-content: start; }
.rep-book h3 { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px var(--s2); font: 400 var(--t-22)/1.2 var(--display); color: var(--gold); }
.rep-res { color: var(--text-3); font: 400 var(--t-14)/1.3 var(--serif); }
.rep-scroll { overflow-x: auto; border-radius: var(--r2); background: linear-gradient(180deg, #f2e8cf, var(--parchment)); box-shadow: inset 0 0 0 1px rgb(110 91 70 / .3); }
.rep { width: 100%; border-collapse: collapse; color: var(--ink); font-size: var(--t-14); font-variant-numeric: lining-nums tabular-nums; }
.rep th, .rep td { padding: 5px 8px; border-bottom: 1px solid var(--rule); text-align: right; white-space: nowrap; }
.rep thead th { color: var(--ink-3); font-weight: 600; font-size: var(--t-13); font-variant-caps: all-small-caps; letter-spacing: .06em; }
.rep tbody th, .rep thead th:first-child, .rep tfoot th { text-align: left; font-weight: 400; }
.rep tbody th .wt { font-size: var(--t-14); }
.rep tbody th small { color: var(--ink-3); font-style: italic; }
.rep tr.is-src th { font-style: italic; color: var(--ink-2); }
.rep tr.is-idle { color: var(--ink-3); }
.rep tr.is-idle .wt { opacity: .6; }
.rep-none { color: rgb(110 91 70 / .55); }
.rep tfoot th, .rep tfoot td { border-bottom: 0; border-top: 2px solid rgb(110 91 70 / .45); font-weight: 700; }
.rep-ot { color: var(--text-3); font-size: var(--t-14); }

/* Sound controls */
.range { display: grid; grid-template-columns: 5rem minmax(0, 1fr); align-items: center; gap: var(--s3); min-height: 40px; }
.range input { width: 100%; accent-color: var(--gold); }
.check { display: inline-flex; align-items: center; gap: var(--s2); min-height: 40px; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--gold); }

/* Fight end: Continue and Fight report side by side */
.fight-next { gap: var(--s3); flex-wrap: wrap; }

@media (max-width: 719px) {
  .hud-gifts, .hud-sound { display: none; }
  .stat-knights dt .dt-sub { display: none; }
  .tip-bar { padding-left: var(--s3); }
  .lcd { font-size: .68rem; }
  .lv { grid-template-columns: 1.6rem minmax(0, 1fr) auto; padding-inline: 2px 6px; }
  .dlg-wide { width: 100%; max-height: 100vh; margin: 0; border-radius: 0; }
  .rep th, .rep td { padding: 4px 6px; }
}

/* ---- information pieces (launch) */
.kw-list { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.kw { display: inline-block; padding: 0 6px; border-radius: var(--r1); background: rgb(110 91 70 / .1); box-shadow: inset 0 0 0 1px rgb(110 91 70 / .22); color: var(--ink-2); font-size: var(--t-13); line-height: 1.5; cursor: help; }
.kw:hover { background: rgb(217 174 95 / .3); }
.tip.is-small { width: min(20rem, calc(100vw - 16px)); }
.tip-kw { font-size: var(--t-14); line-height: 1.45; }
.tip-kw b { margin-right: 4px; }
.tip-text { font-size: var(--t-14); line-height: 1.45; }
.fv-badge { cursor: help; }

.foe-facts { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s6); margin-bottom: var(--s4); }
.foe-facts div { display: grid; }
.foe-facts dt { color: var(--text-3); font-size: var(--t-14); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.foe-facts dd { font: 600 var(--t-22)/1.2 var(--serif); font-variant-numeric: lining-nums; color: var(--text); }
.loot h2, .foe-gifts h2, .hist h2 { margin-bottom: var(--s3); font: 400 var(--t-22)/1.2 var(--display); color: var(--gold); }
.loot .shelf { margin-bottom: var(--s4); }
.duo { display: grid; gap: var(--s6); margin-top: var(--s5); }
.duo-foe .tome { max-width: 47rem; }
.leather-monster { --cover: #2a2622; --cover-glow: rgb(160 140 120 / .2); }
.leather-earth, .leather-armor { --cover: #3a2f22; }
.leather-dark, .leather-death { --cover: #2a1d33; }
.leather-light, .leather-lightning { --cover: #4a3a14; }
.leather-ice { --cover: #173540; }

.foe-gifts { margin-top: var(--s5); }
.gift-chips { display: flex; flex-wrap: wrap; gap: var(--s2); }
.gift-chip { min-height: 36px; padding: 4px 12px; border: 1px solid rgb(217 174 95 / .45); border-radius: 999px; background: rgb(21 18 30 / .7); color: var(--text); font: 500 var(--t-15)/1.2 var(--display); }
.gift-chip:hover { border-color: var(--gold); color: var(--gold-hi); }
.gift-list li.is-active { padding-left: var(--s3); border-left: 3px solid var(--gold); }
.gift-did { color: var(--gold); font-size: var(--t-14); font-style: italic; }
.dlg .gift-list li.is-active b { color: var(--gold-hi); }

.hist { margin-top: var(--s5); }
.hist-row { display: flex; flex-wrap: wrap; gap: var(--s2); }
.pip { position: relative; display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(217 174 95 / .35); color: var(--text-2); font: 700 var(--t-15)/1 var(--serif); font-variant-numeric: lining-nums; cursor: help; }
.pip small { position: absolute; bottom: -1.15rem; color: var(--text-3); font: 400 var(--t-13)/1 var(--serif); }
.pip.is-win { background: rgb(217 174 95 / .14); color: var(--gold-hi); box-shadow: inset 0 0 0 1px rgb(217 174 95 / .6); }
.pip.is-win .icon { width: 1.3rem; height: 1.3rem; }
.pip.is-loss { background: rgb(163 38 27 / .16); color: #f0a08a; box-shadow: inset 0 0 0 1px rgb(226 100 58 / .45); }
.pip:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 2px; }
.hist .sub { margin-top: var(--s5); }

.dlg-small { width: min(100% - 2 * var(--gutter), 26rem); }
.dlg-leaf { padding: var(--s3) var(--s4); display: grid; gap: var(--s2); }
.dlg-small .dlg-head { justify-content: flex-end; margin-bottom: calc(-1 * var(--s2)); }
.ink-for { font-weight: 600; }
.ink-for .wt { font-size: .95em; }
.pick-bar .lvls { margin-block: var(--s1); }
.gold-next { color: var(--text-3) !important; }

@media (max-width: 719px) {
  .foe-facts dd { font-size: var(--t-18); }
  .duo { gap: var(--s5); }
  .pip { width: 2.3rem; height: 2.3rem; }
}

.tome-spread.is-single { grid-template-columns: minmax(0, 1fr); max-width: 24rem; }
.tome-spread.is-single .tome-page { background: linear-gradient(90deg, #e2d2ab 0%, var(--parchment) 4%, var(--parchment) 96%, #e2d2ab 100%); }
.duo-foe .tome-cover { width: fit-content; max-width: 100%; }
.duo-foe .tome-spread:not(.is-single) { width: min(47rem, 100%); }

/* ---- audit fixes: tap targets, small numerals, a second primary action after long books */
.slip-name { min-height: 32px; padding-block: 4px; margin-block: -4px; }
.ln { font-size: .75rem; }
.lcd { font-size: .75rem; }
.repeat-action { display: none; }
@media (max-width: 1099px) { .repeat-action { display: flex; justify-content: flex-start; margin-top: var(--s5); } }
@media (max-width: 719px) { .lcd { font-size: .75rem; } .repeat-action .btn { width: 100%; } }

.rep .short { display: none; }
@media (max-width: 719px) {
  .dlg-wide { max-width: 100%; max-height: 100%; height: 100%; }
  .rep { font-size: var(--t-13); }
  .rep th, .rep td { padding: 4px 5px; }
  .rep tbody th { white-space: normal; min-width: 7.5rem; }
  .rep .long { display: none; }
  .rep .short { display: inline; }
}

/* ================================================================ Neighbor effects (patch 1) */
/* The tag beside a spell's name: a small arrow pointing the way its effect reaches. */
.nb-svg { display: block; width: 100%; height: 100%; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.nb-svg circle { fill: currentColor; stroke: none; }
.nb-tag { display: inline-block; flex: none; align-self: center; width: .62em; height: 1em; margin-left: .34em; color: var(--gold-ink); vertical-align: -.14em; cursor: help; }
.nb-tag.is-later { opacity: .42; }
.tome-word .nb-tag { margin-right: -2px; }
/* Arrows between lines: one per pair of Neighbors that a Neighbor effect joins, in the gutter left of the words.
   Quiet at rest; lit for the selected spell, or the spell under the pointer or focus. */
.nb-link { position: absolute; z-index: 2; left: calc(var(--mg, 3.25rem) + 1px); bottom: 0; width: 9px; height: 15px; transform: translateY(50%); color: var(--gold-ink); opacity: .5; pointer-events: none; transition: opacity var(--fast) var(--ease), color var(--fast) var(--ease); }
.nb-link.is-lit, .nb-link.is-hot { opacity: 1; color: var(--rubric); }
.nb-link.is-lit .nb-svg, .nb-link.is-hot .nb-svg { stroke-width: 2; filter: drop-shadow(0 0 2px rgb(255 240 200 / .95)); }
.nb-link.is-leaving { opacity: .15; }
.line.is-nb-src:not(.is-sel) { background: rgb(217 174 95 / .24); }
.line.is-nb-hot:not(.is-sel) { background: rgb(217 174 95 / .15); }
.line.is-nb-hot .tome-word, .line.is-nb-src .tome-word { box-shadow: inset 0 -1px 0 rgb(163 38 27 / .45); }
/* While dragging or moving a spell: the spells that would become its Neighbors, and arrows on the line it would take. */
.line.is-nb-prev { background: rgb(217 174 95 / .26); box-shadow: inset 3px 0 0 var(--rubric); }
.line.is-nb-prev-plain { box-shadow: inset 3px 0 0 rgb(122 90 28 / .45); }
.line.is-drop.is-nb-prev, .line.is-drop.is-nb-prev-plain { box-shadow: inset 0 0 0 2px var(--gold-ink), inset 5px 0 0 var(--rubric); }
.nb-ghost > span { position: absolute; z-index: 3; left: calc(var(--mg, 3.25rem) + 1px); width: 9px; height: 15px; color: var(--rubric); pointer-events: none; }
.nb-ghost-up { top: 0; transform: translateY(-50%); }
.nb-ghost-dn { bottom: 0; transform: translateY(50%); }
.nb-ghost .nb-svg { stroke-width: 2; filter: drop-shadow(0 0 2px rgb(255 240 200 / .95)); }
@media (prefers-reduced-motion: no-preference) { .nb-ghost > span { animation: nb-pulse 900ms var(--ease) infinite alternate; } }
@keyframes nb-pulse { from { opacity: .45; } to { opacity: 1; } }
/* Detail panel and hover card */
.nb-call, .tip-nb { display: grid; grid-template-columns: 10px minmax(0, 1fr); gap: var(--s2); align-items: start; padding: 6px 8px; border-radius: var(--r2); background: rgb(217 174 95 / .18); box-shadow: inset 3px 0 0 var(--gold-ink); font-size: var(--t-15); line-height: 1.4; }
.nb-call .nb-svg, .tip-nb .nb-svg { width: 10px; height: 16px; margin-top: 3px; color: var(--gold-ink); }
.tip-nb { font-size: var(--t-14); padding: 4px 8px; }
.tip-nb .wt { font-size: .95em; }
.nb-from { color: var(--ink-2); }
.detail-name .nb-tag, .tip-name .nb-tag { width: .6em; }

/* HUD: the Codex button. Its word shows only on wide screens; below 1100px the HUD drops the site mark and the
   "(lives)" note so every control fits (844px landscape phones included). */
.hud-codex .icon { color: var(--gold); }
@media (max-width: 1239px) {
  .hud-codex { width: 40px; padding: 0; justify-content: center; }
  .hud-codex .hud-codex-word { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (max-width: 1099px) {
  .hud-mark { display: none; }
  .stat-knights dt .dt-sub { display: none; }
  .hud-stats { margin-inline: 0 auto; }
}
/* The spell sheet on narrow screens rises from the bottom (the wide-screen sticky `top` must not pin it under the
   HUD), so the selected spell and its Neighbor arrows stay visible above it. */
@media (max-width: 1099px) { .desk-note.has-detail { top: auto; } .merlin .desk-note.has-detail { top: auto; } }
@media (max-width: 899px) {
  .stat dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .stat-day dd::before { content: "Day"; margin-right: 4px; color: var(--text-3); font: 400 var(--t-14)/1 var(--serif); font-variant-caps: all-small-caps; letter-spacing: .06em; }
}

/* ================================================================ the Codex */
.dlg-codex { --cx-pad: var(--s5); width: min(100% - 2 * var(--gutter), 64rem); }
.dlg-codex .dlg-body { gap: var(--s3); padding: 0 var(--cx-pad) var(--s6); }
.dlg-codex .dlg-head { padding-top: var(--s3); }
.cx-sub { margin-top: calc(-1 * var(--s2)); color: var(--text-3); font-size: var(--t-15); }
.cx-tabs { position: sticky; top: 0; z-index: 4; display: flex; gap: 2px; margin-inline: calc(-1 * var(--cx-pad)); padding: var(--s2) var(--cx-pad) 0; background: var(--night-2); border-bottom: 1px solid rgb(217 174 95 / .3); box-shadow: 0 10px 18px -14px #000; }
.cx-tab { display: inline-flex; align-items: baseline; gap: 6px; min-height: 44px; padding: 8px var(--s4) 6px; border: 1px solid transparent; border-bottom: 0; border-radius: var(--r2) var(--r2) 0 0; background: transparent; color: var(--text-2); font: 400 var(--t-18)/1.1 var(--display); }
.cx-tab small { color: var(--text-3); font: 500 var(--t-13)/1 var(--serif); font-variant-numeric: lining-nums; }
.cx-tab:hover { color: var(--gold-hi); }
.cx-tab[aria-selected="true"] { color: var(--gold-hi); border-color: rgb(217 174 95 / .3); background: rgb(217 174 95 / .1); box-shadow: inset 0 -2px 0 var(--gold); }
.cx-panel { display: grid; gap: var(--s4); min-width: 0; padding-top: var(--s2); }
.cx-panel:focus { outline: none; }
.cx-lede { max-width: 50rem; color: var(--text-2); font-size: var(--t-16); line-height: 1.5; text-wrap: pretty; }
.cx-lede b.cx-ink { padding: 0 5px; border-radius: var(--r1); background: var(--parchment); font-weight: 700; white-space: nowrap; }
.cx-jump { display: flex; flex-wrap: wrap; gap: 2px var(--s4); font-size: var(--t-15); }
.cx-jump a { color: var(--gold); }
.cx-group { display: grid; gap: var(--s2); }
.cx-group h3 { font: 400 var(--t-22)/1.2 var(--display); color: var(--gold); scroll-margin-top: 70px; }
.cx-group h3:focus { outline: none; }
.cx-words { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: var(--s3); }
.cx-word { display: grid; align-content: start; gap: 4px; padding: var(--s3) var(--s4); }
.cx-word dt { display: flex; align-items: center; gap: 6px; color: var(--ink); font: 400 var(--t-22)/1.15 var(--display); }
.cx-word dt small { color: var(--ink-3); font: italic 400 var(--t-14)/1 var(--serif); }
.cx-word dt .nb-svg { width: 10px; height: 16px; color: var(--gold-ink); }
.cx-word dd { display: grid; gap: 6px; margin: 0; }
.cx-def { color: var(--ink); font-size: var(--t-15); line-height: 1.45; text-wrap: pretty; }
.cx-use { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.cx-use-h { margin-right: 2px; color: var(--ink-3); font-size: var(--t-13); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.cx-elchip { display: inline-flex; align-items: baseline; gap: 4px; min-height: 30px; padding: 2px 9px; border: 1px solid rgb(110 91 70 / .32); border-radius: 999px; background: rgb(255 255 255 / .38); font: 700 var(--t-14)/1.25 var(--serif); }
.cx-elchip b { color: var(--ink-2); font-weight: 600; font-variant-numeric: lining-nums; }
.cx-elchip:hover { border-color: var(--gold-ink); background: rgb(217 174 95 / .3); }
.cx-link { display: inline; min-height: 0; padding: 2px 0; border: 0; background: none; color: var(--gold-ink); font: 600 var(--t-15)/1.35 var(--serif); text-align: left; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.cx-link:hover { color: var(--rubric); }
.cx-none { color: var(--ink-3); font-size: var(--t-14); font-style: italic; }
.cx-rules { display: grid; gap: var(--s2); padding: var(--s3) var(--s4) var(--s3) var(--s5); color: var(--ink); font-size: var(--t-15); line-height: 1.45; list-style: disc; }
.cx-rules li::marker { color: var(--gold-ink); }
/* Spells */
.cx-filters { display: grid; gap: var(--s2); padding: var(--s3); border: 1px solid var(--line); border-radius: var(--r3); background: rgb(14 12 21 / .55); }
.cx-search { display: flex; align-items: center; gap: var(--s2); min-height: 44px; padding: 0 var(--s3); border: 1px solid rgb(217 174 95 / .45); border-radius: var(--r2); background: var(--night); color: var(--gold); }
.cx-search:focus-within { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.cx-search input { flex: 1; min-width: 0; min-height: 42px; padding: 0; border: 0; background: transparent; color: var(--text); font-size: var(--t-16); outline: none; }
.cx-search input::placeholder { color: var(--text-3); opacity: 1; }
.cx-els { display: flex; flex-wrap: wrap; gap: 6px; }
.cx-fel { min-height: 34px; padding: 2px 11px; border: 0; border-radius: 999px; background: var(--parchment); font: 700 var(--t-14)/1.2 var(--serif); box-shadow: inset 0 0 0 1px rgb(110 91 70 / .3); transition: opacity var(--fast) var(--ease); }
.cx-fel:hover { box-shadow: inset 0 0 0 1px var(--gold-ink), 0 0 0 2px rgb(217 174 95 / .35); }
.cx-fel[aria-pressed="true"] { box-shadow: inset 0 0 0 1px var(--gold-ink), 0 0 0 3px var(--gold-hi); }
.cx-fel[aria-pressed="true"]::before { content: "\2713"; margin-right: 4px; color: var(--ink-2); }
.cx-els:has([aria-pressed="true"]) .cx-fel:not([aria-pressed="true"]) { opacity: .6; }
.cx-sels { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 11.5rem), 1fr)); gap: var(--s2); }
.cx-sel { display: grid; gap: 2px; color: var(--text-3); font-size: var(--t-14); font-variant-caps: all-small-caps; letter-spacing: .06em; }
.cx-sel select { width: 100%; min-height: 40px; padding: 0 var(--s2); border: 1px solid rgb(217 174 95 / .45); border-radius: var(--r2); background: var(--night); color: var(--text); font: 400 var(--t-15)/1.2 var(--serif); font-variant-caps: normal; letter-spacing: 0; }
.cx-sel select:focus-visible { outline: 2px solid var(--gold-hi); outline-offset: 1px; }
.cx-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 var(--s3); }
.cx-count { color: var(--text-2); font-size: var(--t-15); }
.cx-count:focus { outline: none; }
.cx-status .link-btn { margin-left: 0; }
.cx-list { position: relative; border-radius: var(--r3); color: var(--ink); background: linear-gradient(90deg, #e2d2ab 0%, var(--parchment) 2.5%, var(--parchment) 97.5%, #e2d2ab 100%); box-shadow: 0 0 0 1px rgb(0 0 0 / .35), 0 18px 36px -22px #000; }
.cx-list:empty { display: none; }
.cx-spell { position: relative; display: grid; gap: 3px; padding: var(--s3) var(--s4) var(--s3) calc(var(--s5) + 4px); border-bottom: 1px solid var(--rule); scroll-margin-top: 70px; }
.cx-spell:last-child { border-bottom: 0; }
.cx-spell::before { content: ""; position: absolute; left: 14px; top: 0; bottom: 0; width: 3px; border-inline: 1px solid rgb(163 38 27 / .28); }
.cx-spell.is-found { background: rgb(217 174 95 / .26); }
.cx-spell-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px var(--s3); }
.cx-name { display: inline-flex; align-items: baseline; font-size: var(--t-18); line-height: 1.25; overflow-wrap: anywhere; }
.cx-chips { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: var(--t-13); }
.cx-el { font-weight: 700; }
.cx-text { display: flex; gap: 6px; font-size: var(--t-15); line-height: 1.45; text-wrap: pretty; }
.cx-lv { flex: none; width: 1.1rem; color: var(--gold-ink); font: 700 var(--t-14)/1.55 var(--serif); }
.cx-lvls { margin: 2px 0 2px; }
.cx-lvls .lv { padding-block: 4px; font-size: var(--t-14); }
.cx-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 2px var(--s3); }
.cx-foot .cx-src { flex: 1 1 14rem; }
.cx-lvbtn { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; margin-left: auto; padding: 0 2px; border: 0; background: none; color: var(--ink-2); font: 600 var(--t-14)/1.2 var(--serif); }
.cx-lvbtn::before { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform var(--fast) var(--ease); }
.cx-lvbtn[aria-expanded="true"]::before { transform: rotate(45deg); }
.cx-lvbtn:hover { color: var(--rubric); }
.cx-src { color: var(--ink-2); font-size: var(--t-14); line-height: 1.45; }
.cx-src-h { margin-right: 2px; color: var(--ink-3); font-variant-caps: all-small-caps; letter-spacing: .06em; }
.cx-src .cx-link { font-size: var(--t-14); }
.cx-days { color: var(--ink-3); }
.cx-kws { display: flex; flex-wrap: wrap; gap: 4px; }
.cx-kw { min-height: 24px; border: 0; font-family: var(--serif); }
.cx-moreline { display: flex; justify-content: center; }
/* Monsters */
.cx-daytable { color: var(--text-2); font-size: var(--t-15); }
.cx-daytable summary { display: inline-flex; align-items: center; gap: var(--s2); min-height: 36px; color: var(--gold); cursor: pointer; list-style: none; }
.cx-daytable summary::-webkit-details-marker { display: none; }
.cx-daytable summary::before { content: ""; width: 6px; height: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform var(--fast) var(--ease); }
.cx-daytable[open] summary::before { transform: rotate(45deg); }
.cx-daytable ol { display: grid; gap: 4px; margin-top: var(--s2); padding-left: var(--s3); border-left: 2px solid var(--line); }
.cx-daytable b { display: inline-block; min-width: 5.2rem; color: var(--text); font-weight: 600; }
.cx-daytable .cx-link, .cx-lede .cx-link { color: var(--gold); }
.cx-daytable .cx-link:hover { color: var(--gold-hi); }
.cx-mons { display: grid; gap: var(--s4); }
.cx-mon { display: grid; grid-template-columns: 10.5rem minmax(0, 1fr); grid-template-areas: "art body" "credit body"; grid-template-rows: auto 1fr; gap: 4px var(--s4); padding: var(--s4); scroll-margin-top: 70px; }
.cx-mon:focus { outline: none; }
.cx-mon-art { grid-area: art; }
.cx-mon-body { grid-area: body; }
.cx-mon > .cx-credit { grid-area: credit; align-self: start; }
.cx-mon:has(> .cx-mon-art[hidden]) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "body"; }
.cx-mon.is-found { box-shadow: 0 0 0 3px var(--gold-hi), 0 18px 36px -22px #000; }
.cx-thumb { display: block; aspect-ratio: 4 / 5; border-radius: var(--r2); background: #d9c9a3 center / cover no-repeat; box-shadow: inset 0 0 0 1px rgb(110 91 70 / .45), 0 8px 16px -10px #000; filter: sepia(.35) contrast(1.05); }
.cx-credit { color: var(--ink-3); font-size: .72rem; line-height: 1.3; overflow-wrap: anywhere; }
.cx-mon-body { display: grid; align-content: start; gap: 4px; min-width: 0; }
.cx-mon h3 { color: var(--ink); font: 400 var(--t-28)/1.1 var(--display); }
.cx-legend { color: var(--ink-2); font-size: var(--t-15); font-style: italic; line-height: 1.4; }
.cx-role { font-size: var(--t-15); line-height: 1.4; }
.cx-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 10.5rem), 1fr)); gap: 4px var(--s4); margin-block: var(--s2) 4px; padding-block: var(--s2); border-block: 1px solid var(--rule); }
.cx-facts div { display: grid; align-content: start; }
.cx-facts dt { color: var(--ink-3); font-size: var(--t-13); font-variant-caps: all-small-caps; letter-spacing: .08em; }
.cx-facts dd { font-size: var(--t-15); line-height: 1.4; font-variant-numeric: lining-nums; }
.cx-mult { color: var(--ink-3); font-size: var(--t-13); }
.cx-mon h4 { margin-top: var(--s1); font: 400 var(--t-18)/1.2 var(--display); }
.cx-mon h4 .sub { color: var(--ink-3); font: 400 var(--t-14)/1 var(--serif); }
.cx-pool { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: 0 var(--s4); }
.cx-pool li { display: flex; align-items: center; justify-content: space-between; gap: 6px; border-bottom: 1px solid var(--rule); }
.cx-poolbtn { display: inline-flex; align-items: baseline; min-width: 0; min-height: 34px; padding: 2px 4px; margin-left: -4px; border: 0; border-radius: var(--r1); background: none; text-align: left; font-size: var(--t-15); overflow-wrap: anywhere; }
.cx-poolbtn:hover { background: rgb(217 174 95 / .28); }
.cx-pool-meta { display: inline-flex; align-items: baseline; gap: 6px; flex: none; font-size: var(--t-13); white-space: nowrap; }
.cx-core { color: var(--rubric); font-weight: 700; font-variant-caps: all-small-caps; letter-spacing: .06em; }
.cx-note { margin-top: 4px; color: var(--ink-3); font-size: var(--t-13); font-style: italic; }
.howto-gloss div { align-content: start; }
.howto-more { color: var(--text-2); }
.howto-more .link-btn { margin-left: 2px; padding-inline: 4px; }
@media (max-width: 719px) {
  .dlg-codex { --cx-pad: var(--s4); width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; border-radius: 0; }
  .dlg-codex .dlg-body { padding-bottom: var(--s5); }
  .cx-tab { flex: 1 1 0; justify-content: center; padding-inline: var(--s2); font-size: var(--t-16); }
  .cx-words { grid-template-columns: minmax(0, 1fr); }
  .cx-sels { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cx-spell { padding: var(--s2) var(--s3) var(--s3) calc(var(--s5) + 2px); }
  .cx-spell::before { left: 11px; }
  .cx-name { font-size: var(--t-16); }
  .cx-mon { grid-template-columns: 5.25rem minmax(0, 1fr); grid-template-areas: "art body" "credit credit"; grid-template-rows: auto auto; gap: var(--s2) var(--s3); padding: var(--s3); }
  .cx-mon h3 { font-size: var(--t-22); }
  .cx-mon > .cx-credit { padding-top: var(--s1); border-top: 1px solid var(--rule); }
  .cx-facts { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 719px) and (orientation: landscape), (max-height: 500px) {
  .dlg-codex { width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; border-radius: 0; }
}
