/* The display face: Cinzel (SIL Open Font License 1.1, see the credits),
   subset to Latin and carried inside the stylesheet, so the game keeps its
   face with no font to fetch and nothing to fall back to on a slow network. */
@font-face { font-family: "Cinzel"; font-style: normal; font-weight: 400 900; font-display: swap; src: url(data:font/woff2;base64,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) format("woff2"); }
:root {
  --bg: #0f1020; --border: #3d4275; --text: #e8e6f0; --muted: #9a9bb8;
  --gold: #e6c35a; --player: #3b7bd8; --enemy: #d8483b; --green: #5ad35a; --red: #ff6a5a;
  /* Every panel is the same slab: a faint top light on lacquered navy, a
     hairline highlight along its upper edge, and a shadow that lifts it off
     the ground. The shell reads as one object because every part of it is. */
  --panel: linear-gradient(180deg, rgba(26, 28, 56, 0.94) 0%, rgba(14, 16, 34, 0.95) 100%);
  --panel-shadow: 0 6px 18px rgba(0, 0, 0, 0.38), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  --btn: linear-gradient(180deg, #2c3060 0%, #1e2244 100%);
  --btn-hover: linear-gradient(180deg, #363b72 0%, #262a52 100%);
  --btn-gold: linear-gradient(180deg, #6a5320 0%, #3d2f0c 100%);
  --btn-gold-hover: linear-gradient(180deg, #86692a 0%, #4e3c10 100%);
  --display: "Cinzel", Georgia, "Times New Roman", serif;
  /* The frame every slab of the shell wears: a dark outer line, a gold
     hairline inside it, and a bracket with a stud at each corner. One image,
     sliced nine ways, so it fits a card and a dialog alike. */
  --frame: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='27' height='27' viewBox='0 0 27 27'%3E%3Crect x='0.5' y='0.5' width='26' height='26' fill='none' stroke='%2307081a' stroke-opacity='0.95'/%3E%3Crect x='3.5' y='3.5' width='20' height='20' fill='none' stroke='%23e6c35a' stroke-opacity='0.42'/%3E%3Cpath d='M3.5 9V3.5H9M18 3.5h5.5V9M23.5 18v5.5H18M9 23.5H3.5V18' fill='none' stroke='%23e6c35a' stroke-width='1.5' stroke-opacity='0.95'/%3E%3Cpath d='M3.5 1.3l2.2 2.2-2.2 2.2-2.2-2.2zM23.5 1.3l2.2 2.2-2.2 2.2-2.2-2.2zM23.5 21.3l2.2 2.2-2.2 2.2-2.2-2.2zM3.5 21.3l2.2 2.2-2.2 2.2-2.2-2.2z' fill='%23f2d374'/%3E%3C/svg%3E");
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; background: var(--bg); color: var(--text); font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif; font-size: 14px; }
button { font: inherit; background: var(--btn); color: var(--text); border: 1px solid var(--border); border-radius: 3px; padding: 6px 12px; cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 1px 2px rgba(0, 0, 0, 0.45); transition: background 0.12s, border-color 0.12s, transform 0.08s; }
button:hover:not(:disabled) { background: var(--btn-hover); border-color: #6a6fb0; }
button:active:not(:disabled) { transform: translateY(1px); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); }
button:disabled { opacity: 0.4; cursor: default; }
button.primary { background: var(--btn-gold); border-color: var(--gold); color: #ffe08a; font-family: var(--display); font-weight: 600; letter-spacing: 0.03em; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.5); }
button.primary:hover:not(:disabled) { background: var(--btn-gold-hover); }
select { font: inherit; background: #171a36; color: var(--text); border: 1px solid var(--border); border-radius: 3px; padding: 4px 6px; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.4); }
h1, h2, h3 { font-family: var(--display); font-weight: 600; margin: 0 0 8px; letter-spacing: 0.02em; }
/* The headline of each screen carries a hairline of gold beneath it. */
.world-main > h2, .shop-head h2, .form-head h2, .slots-box > h2, .credits-box h2 { color: var(--gold); position: relative; padding-bottom: 6px; }
.world-main > h2::after, .shop-head h2::after, .form-head h2::after, .slots-box > h2::after, .credits-box h2::after { content: ''; position: absolute; left: 0; bottom: 0; width: 64px; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); }
small { color: var(--muted); }
.muted { color: var(--muted); }

.screen { display: none; position: fixed; inset: 0; }
.screen.active { display: block; }
/* Every screen but the field stands on the same night: a deep vignette with a
   faint warmth at the top, so panels have something to sit against. */
.screen:not(#screen-battle):not(#screen-title) { background: radial-gradient(ellipse 120% 70% at 50% -10%, #23264c 0%, #121430 45%, #0a0b18 100%); }
@keyframes screen-in { from { opacity: 0; } to { opacity: 1; } }
.screen.active:not(#screen-battle) { animation: screen-in 0.22s ease-out; }
@media (prefers-reduced-motion: reduce) { .screen.active { animation: none; } }
/* One skin for every slab of the shell. */
.card, .panel, .slot, .form-row, .form-right, .list-panel, #shop-list, .worn-panel, #transfer, .results-box, .road, .party-chip, .job-card, .tree-detail, .help-box, .story-box, .choice-box .road { box-shadow: var(--panel-shadow); }
/* Camp, Formation and the shop grow with the party; a short window must scroll them. */
.screen:not(#screen-battle) { overflow-y: auto; }

/* ---------- title ---------- */
#screen-title { background: #1a1020; }
/* The first field of the campaign, drawn by the game's own renderer, turns
   slowly behind the title; a veil darkens it enough for the crest to read. */
.title-art { position: absolute; inset: 0; width: 100%; height: 100%; image-rendering: pixelated; }
.title-veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10, 8, 22, 0.86) 0%, rgba(10, 8, 22, 0.62) 38%, rgba(10, 8, 22, 0.18) 62%, rgba(10, 8, 22, 0.1) 84%, rgba(10, 8, 22, 0.7) 100%); pointer-events: none; }
.title-box { position: absolute; top: 38%; left: 50%; transform: translate(-50%, -50%); text-align: center; width: min(92%, 640px); }
.title-sub { letter-spacing: 5px; text-transform: uppercase; color: #b8b4d0; font-size: 12px; text-shadow: 0 1px 4px #000; }
.title-box h1 { font-size: 60px; line-height: 1.05; margin: 10px 0 8px; font-weight: 700;
  background: linear-gradient(180deg, #fff3c0 0%, #f0cf66 45%, #c9992a 75%, #f2d374 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 3px 0 rgba(70, 45, 0, 0.9)) drop-shadow(0 10px 28px rgba(0, 0, 0, 0.7)); }
.title-tag { font-family: Georgia, "Times New Roman", serif; font-style: italic; color: #e0dcf0; font-size: 16px; margin-bottom: 30px; text-shadow: 0 1px 6px #000, 0 0 18px rgba(0, 0, 0, 0.8); }
.title-buttons { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }
.title-buttons button { font-size: 18px; padding: 11px 30px; min-width: 176px; font-family: var(--display); letter-spacing: 0.02em; }
.title-foot { margin-top: 36px; color: #b0accc; font-size: 12px; text-shadow: 0 1px 4px #000; }
/* ---------- save slots ---------- */
.slots-box { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(640px, 92%); max-height: calc(100% - 24px); overflow-y: auto; }
.slots-box h2 { color: var(--gold); }
.slot { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px; margin-bottom: 8px; background: var(--panel); border: 1px solid var(--border); border-radius: 6px; }
.slot.empty { opacity: 0.7; }
.slot-text { flex: 1; min-width: 200px; }
.slot-text small { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.slot-where { color: var(--gold); margin-left: 6px; }
.slot-actions { display: flex; gap: 6px; }
.slots-transfer { margin: 4px 0 12px; }
#transfer { margin-top: 8px; padding: 10px; background: var(--panel); border: 1px solid var(--border); border-radius: 6px; }
#transfer-text { width: 100%; box-sizing: border-box; font-family: monospace; font-size: 11px; background: #0f1020; color: var(--text); border: 1px solid var(--border); border-radius: 4px; padding: 6px; resize: vertical; }
.transfer-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 8px; }
.transfer-into { color: var(--muted); font-size: 12px; }
.story-buttons, .results-buttons { display: flex; gap: 8px; align-items: center; justify-content: center; }
.story-buttons { justify-content: flex-start; margin-top: 12px; }
#btn-story-next { margin-top: 0; }

/* ---------- world ---------- */
.world-layout { display: flex; gap: 24px; max-width: 1000px; margin: 40px auto; padding: 0 20px; }
.world-main { flex: 1; }
/* The realm: where the company has been and where it goes next. */
#world-map { display: block; width: 100%; height: auto; border-radius: 6px; border: 1px solid var(--border); background: #14121f; cursor: pointer; margin-bottom: 12px; }
.world-side { width: 300px; }
.card { background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 12px; margin-bottom: 16px; }
#world-next { border-left: 3px solid var(--gold); }
/* The next chapter's card, sliding in as the company arrives. */
@keyframes arrive { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
#world-next.arrive .chapter-num, #world-next.arrive .chapter-title { animation: arrive 0.5s ease-out both; }
#world-next.arrive .chapter-title { animation-delay: 0.08s; }
@media (prefers-reduced-motion: reduce) { #world-next.arrive .chapter-num, #world-next.arrive .chapter-title { animation: none; } }
.chapter-num { color: var(--muted); text-transform: uppercase; letter-spacing: 2px; font-size: 12px; }
.chapter-title { font-family: var(--display); font-size: 26px; color: var(--gold); }
.act-after { color: #9ec0ff; font-style: italic; }
.campfire h3 small { color: var(--muted); font-weight: normal; font-size: 12px; }
.campfire p { font-family: Georgia, "Times New Roman", serif; font-size: 14px; line-height: 1.5; color: #d8d6ea; margin: 6px 0; }
.chapter-map { color: var(--muted); margin-top: 4px; }
.world-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.world-actions button { padding: 10px 16px; }
.tavern button { margin-top: 8px; margin-right: 6px; }
.side-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.gil { font-size: 22px; color: var(--gold); }
.party-chip { background: var(--panel); border: 1px solid var(--border); border-radius: 4px; padding: 6px 10px; margin-bottom: 6px; display: flex; justify-content: space-between; }
.party-chip.reserve { opacity: 0.55; }
.party-chip.away { opacity: 0.6; font-style: italic; }
.learn-mark { color: var(--gold); }
.errands-card h3 small, .cities-card h3 small { color: var(--muted); font-weight: normal; font-size: 12px; }
.city { padding: 8px 0; border-top: 1px solid #2a2d50; display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.city:first-child { border-top: none; }
.city small { color: var(--muted); font-size: 12px; }
.city-text { flex: 1; min-width: 200px; }
.city-blurb { color: #c8c6e0; font-style: italic; font-size: 12px; margin-top: 2px; }
.city.held b { color: #ffb3a8; }
.city.open b { color: var(--gold); }
.city-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.city-head b { color: var(--gold); font-size: 16px; }
.city-head button { margin-left: auto; }
.cities-card h4 { margin: 12px 0 6px; }
.cities-card h4 small { color: var(--muted); font-weight: normal; font-size: 12px; }
.city-hires { display: flex; gap: 8px; flex-wrap: wrap; }
.city-stock .shop-row { padding: 6px 0; }
.forge-tabs { flex-wrap: wrap; margin: 4px 0 8px; }
.forge-tabs button { font-size: 12px; padding: 3px 10px; }
.shop-row .cost em.short { color: #ffb3a8; font-style: normal; }
.errand { padding: 8px 0; border-top: 1px solid #2a2d50; display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.errand:first-child { border-top: none; }
.errand small { color: var(--muted); font-size: 12px; }
.errand-text { flex: 1; min-width: 200px; }
.errand-flavour { color: #c8c6e0; font-style: italic; font-size: 12px; margin-top: 2px; }
.errand-send { display: flex; gap: 6px; align-items: center; }
.errand-send select { max-width: 170px; }
.errand.active { color: var(--muted); }
.errand.report { color: var(--gold); }
.res-jp { color: var(--muted); font-size: 11px; }
.res-jp.learn { color: var(--gold); }

/* ---------- formation ---------- */
.tree-head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.tree-head h2 { margin: 0; color: var(--gold); }
.tree-head button { margin-left: auto; }
.tree-key { font-size: 12px; display: flex; gap: 14px; flex-wrap: wrap; margin: 6px 0 10px; }
.tree-key .key::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 5px; vertical-align: -1px; border: 1px solid var(--border); }
.tree-key .key.current::before { background: var(--gold); border-color: var(--gold); }
.tree-key .key.open::before { background: #2f6fd8; border-color: #5a8ff0; }
.tree-key .key.locked::before { background: #1a1c38; }
.tree-tier { margin-bottom: 10px; }
.tier-label { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); margin: 4px 0; }
.tree-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 6px; }
.job-card { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 6px; border: 1px solid var(--border); border-radius: 6px; background: #1a1c38; cursor: pointer; text-align: center; min-width: 0; }
.job-card canvas { image-rendering: pixelated; height: 36px; width: auto; }
.job-card b { font-size: 13px; }
.job-card small { font-size: 10px; color: var(--muted); line-height: 1.3; }
.job-card.open { border-color: #5a8ff0; background: #1c2650; }
.job-card.current { border-color: var(--gold); background: #2e2a3a; }
.job-card.locked { opacity: 0.72; }
.job-card.locked canvas { filter: grayscale(0.7) brightness(0.7); }
.job-card.sel { outline: 2px solid #fff; outline-offset: -1px; opacity: 1; }
.job-card .met { color: var(--green); }
.job-card .unmet { color: #e0a060; }
.tree-detail { margin-top: 12px; padding: 12px; border: 1px solid var(--border); border-radius: 6px; background: #14162c; }
.tree-detail-head { display: flex; align-items: baseline; gap: 10px; }
.tree-detail-head h3 { margin: 0; }
.tree-detail .met { color: var(--green); }
.tree-detail .unmet { color: #e0a060; }
.tree-abs { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 10px; }
.tree-ab { font-size: 12px; padding: 3px 8px; border-radius: 12px; border: 1px solid var(--border); background: #1a1c38; }
.tree-ab.learned { border-color: var(--green); color: #cfe; }
.tree-ab small { color: var(--muted); }

.form-layout { display: flex; gap: 24px; max-width: 1100px; margin: 24px auto; padding: 0 20px; height: calc(100% - 48px); }
.form-left { width: 380px; display: flex; flex-direction: column; }
.form-head { display: flex; justify-content: space-between; align-items: baseline; color: var(--gold); }
.form-row { display: flex; align-items: center; gap: 8px; padding: 8px; border: 1px solid var(--border); border-radius: 4px; margin-bottom: 4px; background: var(--panel); cursor: pointer; }
.form-row.sel { border-color: var(--gold); background: #2a2a44; }
.form-row.reserve { opacity: 0.6; }
.form-row .slot { width: 22px; height: 22px; border-radius: 50%; background: #3b3f6b; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; }
.form-row .name { flex: 1; font-weight: bold; }
.form-row .job { color: var(--muted); font-size: 12px; }
.form-row .btns button { padding: 2px 6px; font-size: 11px; }
.form-right { flex: 1; background: var(--panel); border: 1px solid var(--border); border-radius: 6px; padding: 16px; overflow-y: auto; }
.detail-head { display: flex; align-items: center; gap: 14px; }
.detail-head h2 { color: var(--gold); }
.detail-grid { display: flex; flex-wrap: wrap; gap: 12px 20px; margin: 8px 0; }
.detail-grid label { min-width: 0; flex: 1 1 160px; }
.detail-grid select { max-width: 100%; }
.detail-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.job-desc { font-style: italic; color: #c8c6e0; }
.stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 8px 0; }
.stat-grid span { background: #1a1c38; padding: 6px 8px; border-radius: 4px; }
.weapon, .job-levels { color: var(--muted); font-size: 12px; margin: 4px 0; }
.form-right h3 { margin-top: 16px; }
.ab-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px; border-bottom: 1px solid #2a2d50; }
.ab-row.learned { background: rgba(90, 211, 90, 0.06); }
.ab-desc { color: var(--muted); font-size: 12px; }
.tag { color: var(--green); font-size: 12px; }

/* A unit's sprite, wearing what it is wearing, beside the gear that dresses it. */
.portrait { image-rendering: pixelated; flex: none; }
.row-portrait { image-rendering: pixelated; flex: none; width: 21px; height: 22px; }
.detail-id { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.detail-id .unit-count { color: var(--muted); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
/* The arrows beside the portrait: the next unit and the one before. */
.unit-nav { flex: none; min-width: 36px; min-height: 40px; padding: 0 8px; font-size: 24px; line-height: 1; font-family: var(--display); color: var(--gold); }
.unit-nav:disabled { opacity: 0.25; }
@keyframes slide-from-right { from { transform: translateX(28px); opacity: 0.3; } to { transform: none; opacity: 1; } }
@keyframes slide-from-left { from { transform: translateX(-28px); opacity: 0.3; } to { transform: none; opacity: 1; } }
.form-right.slide-from-right { animation: slide-from-right 0.2s ease-out; }
.form-right.slide-from-left { animation: slide-from-left 0.2s ease-out; }
@media (prefers-reduced-motion: reduce) { .form-right.slide-from-right, .form-right.slide-from-left { animation: none; } }
.detail-id h2 { margin: 0; }

/* ---------- story ---------- */
.story-box { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(720px, 92%); max-height: calc(100% - 24px); overflow-y: auto;
  background: var(--panel); border: 1px solid var(--border); border-top: 2px solid var(--gold); border-radius: 10px; padding: 22px 26px 20px; }
.story-box h2 { color: var(--gold); font-size: 30px; position: relative; padding-bottom: 8px; margin-bottom: 10px; }
.story-box h2::after { content: ''; position: absolute; left: 0; bottom: 0; width: 80px; height: 1px; background: linear-gradient(90deg, var(--gold), transparent); }
#story-text p { font-family: Georgia, "Times New Roman", serif; font-size: 17px; line-height: 1.65; color: #e2e0ee; animation: fadein 0.5s; }
/* A line of the story: a speaker's turn carries a face and a name. */
.line { animation: fadein 0.5s; }
.line .turn { display: flex; gap: 12px; align-items: flex-start; margin: 8px 0; }
.line .turn canvas.face { width: 48px; height: 48px; flex: none; image-rendering: pixelated; margin-top: 2px; }
.line .turn p, .line .prose p { margin: 0; }
.line .who { display: block; font-family: var(--display); font-size: 13px; letter-spacing: 0.04em; color: var(--gold); margin-bottom: 2px; }
.campfire .line .turn canvas.face { width: 36px; height: 36px; }
.campfire .line .turn { gap: 8px; margin: 6px 0; }
.campfire .line .who { font-size: 12px; }
/* The faces a page has named, the one speaking lit. */
.story-cast { display: flex; gap: 6px; margin: -2px 0 10px; }
.story-cast canvas { width: 40px; height: 40px; image-rendering: pixelated; opacity: 0.45; transition: opacity 0.2s, filter 0.2s; }
.story-cast canvas.speaking { opacity: 1; filter: drop-shadow(0 0 5px rgba(230, 195, 90, 0.8)); }
@keyframes fadein { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
#btn-story-next { margin-top: 12px; padding: 10px 24px; }

/* Keyboard focus is drawn, on buttons and on the rows and cards that act like them. */
button:focus-visible, select:focus-visible, a:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }

/* ---------- the five roads ---------- */
.choice-box { max-width: 720px; margin: 0 auto; padding: 24px 16px 40px; }
.choice-box h2 { color: var(--gold); font-family: var(--display); font-size: 30px; margin: 0 0 8px; }
#choice-text p { color: #ddd; line-height: 1.6; }
.choice-list { display: grid; gap: 10px; margin: 16px 0; }
.road { background: var(--panel); border: 1px solid var(--border); border-radius: 6px; padding: 12px 14px; cursor: pointer; }
.road:hover, .road:focus-visible { border-color: var(--gold); }
.road.seen { opacity: 0.75; }
.road-head { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.road-head b { font-family: var(--display); font-size: 18px; color: var(--gold); }
.road-tag { color: var(--muted); font-style: italic; }
.road-seen { margin-left: auto; font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--green); }
.road p { margin: 6px 0; color: #ddd; }
.road small { color: var(--muted); }

/* ---------- the unlock (Play edition) ---------- */
.unlock-box { max-width: 640px; margin: 0 auto; padding: 32px 16px 48px; }
.unlock-kicker { letter-spacing: 3px; text-transform: uppercase; color: var(--muted); font-size: 11px; margin-bottom: 6px; }
.unlock-box h2 { color: var(--gold); font-family: var(--display); font-size: 30px; margin: 0 0 12px; }
.unlock-box p { color: #ddd; line-height: 1.6; }
.unlock-list { color: #ddd; line-height: 1.6; padding-left: 20px; margin: 8px 0 16px; }
.unlock-list li { margin: 6px 0; }
.unlock-price { font-family: var(--display); font-size: 26px; color: var(--gold); margin: 18px 0 4px; }
.unlock-price small { font-family: inherit; font-size: 12px; color: var(--muted); letter-spacing: 1px; text-transform: uppercase; }
.unlock-msg { min-height: 1.6em; color: var(--gold); }
.unlock-msg:empty { margin: 0; min-height: 0; }
.unlock-buttons { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 18px; }
.unlock-owned { border: 1px solid var(--green); border-radius: 6px; padding: 4px 14px; margin: 18px 0; }
.unlock-owned p { color: var(--green); }
.unlock-note { color: var(--muted); font-size: 13px; }
.unlock-card p { color: #ddd; line-height: 1.55; }

/* ---------- battle ---------- */
#screen-battle { background: #0d0e18; }
#battle-canvas { position: absolute; inset: 0; width: 100%; height: 100%; image-rendering: pixelated; cursor: crosshair; }
.panel { position: absolute; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 7px; }
.panel-title { color: var(--gold); font-family: var(--display); margin-bottom: 6px; }
#turn-order { top: 12px; left: 12px; width: 200px; }
/* The queue answers the same question the field does, so it answers it the
   same way: the side is in the colour, and in the shape of the marker for
   anyone who cannot read the colour. */
.order-row { display: flex; align-items: center; gap: 6px; padding: 2px 0 2px 6px; font-size: 13px;
  border-left: 3px solid transparent; }
.order-row .sub { margin-left: auto; color: var(--muted); font-size: 11px; }
.order-row .dot { width: 8px; height: 8px; border-radius: 50%; background: #888; }
.order-row.player { color: #c3d9ff; border-left-color: var(--player); }
.order-row.enemy { color: #ffc6bb; border-left-color: var(--enemy); }
.order-row.neutral { color: #cdf5d6; border-left-color: #4caf50; }
.order-row.neutral .dot { background: #4caf50; }
.order-row.player .dot { background: var(--player); }
.order-row.enemy .dot { background: var(--enemy); border-radius: 0;
  clip-path: polygon(50% 100%, 0 0, 100% 0); }
.order-row.pending { color: #ffd84a; }
.order-row.pending .dot { background: #ffd84a; border-radius: 0; clip-path: none; transform: rotate(45deg); }
#unit-card { top: 12px; right: 12px; width: 240px; min-height: 0; }
#unit-card:empty { display: none; }
.card-head { display: flex; align-items: center; gap: 8px; border-bottom: 2px solid #888; padding-bottom: 4px; margin-bottom: 6px; }
.card-head b { flex: 1; }
.card-head span { color: var(--muted); font-size: 12px; }
.card-face { width: 30px; height: 32px; image-rendering: pixelated; flex: none; margin: -4px 0; }
.card-head.player { border-color: var(--player); }
.card-head.enemy { border-color: var(--enemy); }
.card-skills { font-size: 11px; color: var(--muted); margin-top: 4px; line-height: 1.35; }
.bar { position: relative; height: 14px; background: #0a0b16; border-radius: 4px; margin: 3px 0; overflow: hidden; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.7); }
.bar i { display: block; height: 100%; border-radius: 4px; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25); }
.bar.hp i { background: linear-gradient(180deg, #7fe07f, #3aa53a); } .bar.mp i { background: linear-gradient(180deg, #74baff, #2f86e0); } .bar.ct i { background: linear-gradient(180deg, #ffe680, #e6b820); }
.bar span { position: absolute; inset: 0; font-size: 11px; line-height: 14px; padding-left: 4px; text-shadow: 0 0 3px #000, 0 0 3px #000; }
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2px 6px; font-size: 12px; margin-top: 6px; }
.mods { color: #ffe97c; font-size: 12px; margin-top: 4px; }
.statuses { margin-top: 4px; }
.status { display: inline-block; font-size: 10px; padding: 1px 5px; border-radius: 3px; margin-right: 3px; color: #000; font-weight: bold; }
.ko { color: var(--red); font-weight: bold; }
/* The bar sits in the gap between the turn order on the left and the unit
   card on the right, and wraps when that gap is narrow, rather than being
   centred over whichever panel it happens to reach. */
#battle-top { position: absolute; top: 12px; left: 224px; right: 264px; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 8px; align-items: center; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 6px 10px; box-shadow: var(--panel-shadow); }
#battle-name { color: var(--gold); font-family: var(--display); font-size: 16px; }
#tile-info { color: var(--muted); font-size: 12px; min-width: 160px; }
#battle-top button { padding: 3px 10px; font-size: 12px; white-space: nowrap; }
#log { bottom: 12px; left: 12px; width: 340px; height: 170px; overflow-y: auto; font-size: 12px; }
.log-line { padding: 1px 0; color: #c8c6e0; }
.log-line.dmg { color: #ff9a8a; } .log-line.heal { color: #8affa0; } .log-line.miss { color: #aaa; }
.log-line.ko { color: var(--red); font-weight: bold; } .log-line.lvl { color: var(--gold); } .log-line.act { color: #fff; }
.log-line.talk { color: #e8d9a6; font-style: italic; }
#command { bottom: 12px; right: 12px; width: 320px; min-height: 120px; }
/* The hint sits above whichever bottom-right panel is open, so it stays
   readable during deployment when the command panel is hidden. */
#hint { position: absolute; right: 12px; bottom: 0; width: 320px; color: var(--muted);
  font-size: 12px; min-height: 16px; text-align: right; pointer-events: none; }
#hint:not(:empty) { background: rgba(14, 16, 32, 0.85); border: 1px solid var(--border);
  border-radius: 4px; padding: 4px 8px; }
#action-menu { display: flex; flex-direction: column; gap: 4px; }
#action-menu button { display: flex; justify-content: space-between; text-align: left; }
#action-menu button small { color: var(--muted); }
.menu-title { color: var(--gold); font-family: var(--display); }
.dirs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
#prediction { margin-top: 8px; font-size: 12px; }
.pred-row { padding: 4px 6px; border-left: 3px solid #888; margin-bottom: 3px; background: rgba(255,255,255,0.04); }
.pred-row.player { border-color: var(--player); } .pred-row.enemy { border-color: var(--enemy); }
.p-hit { color: var(--gold); margin-left: 4px; } .p-dmg { color: var(--red); margin-left: 4px; font-weight: bold; }
.p-heal { color: var(--green); margin-left: 4px; font-weight: bold; } .p-note { color: #c8c6e0; margin-left: 4px; }
.p-rel { color: var(--muted); float: right; font-style: italic; }
.pred-none { color: var(--muted); }
.ab-info b { color: var(--gold); } .ab-meta { color: var(--muted); margin-top: 3px; }
.banner { position: absolute; top: 90px; left: 50%; transform: translateX(-50%) scale(0.9); font-family: var(--display); font-size: 30px; color: #fff; text-shadow: 0 2px 8px #000; opacity: 0; transition: all 0.2s; pointer-events: none; padding: 6px 30px; border-top: 2px solid #888; border-bottom: 2px solid #888; background: rgba(0,0,0,0.45); }
.banner.show { opacity: 1; transform: translateX(-50%) scale(1); }
/* A line spoken on the field, over the speaker's head. */
.speech { position: absolute; z-index: 6; display: flex; gap: 10px; align-items: flex-start; box-sizing: border-box; padding: 9px 12px 10px; background: rgba(12, 12, 26, 0.95); border: 1px solid var(--gold); border-radius: 10px; box-shadow: var(--panel-shadow); color: #f1ead6; font-size: 14px; line-height: 1.35; cursor: pointer; opacity: 0; transform: translateY(6px); transition: opacity 0.15s, transform 0.15s; }
.speech.show { opacity: 1; transform: none; }
.speech::after { content: ''; position: absolute; left: var(--tail, 40px); bottom: -8px; width: 13px; height: 13px; background: rgba(12, 12, 26, 0.95); border-right: 1px solid var(--gold); border-bottom: 1px solid var(--gold); transform: rotate(45deg); }
.speech canvas { width: 48px; height: 48px; flex: none; image-rendering: pixelated; }
.speech b { display: block; font-family: var(--display); font-size: 13px; color: var(--gold); margin-bottom: 2px; }
.speech.enemy { border-color: #b8503f; } .speech.enemy b { color: #ff9a86; } .speech.enemy::after { border-color: #b8503f; }
.speech.neutral { border-color: #9a9ab8; } .speech.neutral b { color: #cfcfe6; } .speech.neutral::after { border-color: #9a9ab8; }
@media (prefers-reduced-motion: reduce) { .speech { transition: none; } }
.banner { z-index: 12; } /* over the unit card on a phone, where the two share the top of the screen */
.banner.player { border-color: var(--player); } .banner.enemy { border-color: var(--enemy); }
#help { display: none; position: absolute; inset: 0; background: rgba(0,0,0,0.7); z-index: 40; }
#help.open { display: block; }
.help-box { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(640px, 90%); max-height: min(90vh, calc(100% - 24px)); overflow-y: auto; box-sizing: border-box; background: #181a30; border: 1px solid var(--border); border-radius: 8px; padding: 20px; }
.help-box li { margin-bottom: 8px; line-height: 1.4; }
.help-tabs { margin: 0 0 10px; }
.help-box li.tab-hidden { display: none; }

/* ---------- results ---------- */
.results-box { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(560px, 90%); max-height: min(92vh, calc(100% - 16px)); overflow-y: auto; box-sizing: border-box; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 24px; text-align: center; }
#results-title { font-size: 40px; } #results-title.victory { color: var(--gold); } #results-title.defeat { color: var(--red); }
#results-title::before, #results-title::after { content: '\2726'; font-size: 16px; vertical-align: middle; opacity: 0.6; margin: 0 14px; }
.results-box { border-top: 2px solid var(--gold); }
.res-line { font-size: 16px; margin: 6px 0; }
.res-events { text-align: left; color: var(--gold); margin: 12px auto; max-width: 400px; }
.res-party { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 14px; margin: 14px 0 6px; }
.res-unit { display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 12px; color: var(--muted); }
.res-unit canvas { image-rendering: pixelated; }
.res-unit.up span { color: var(--gold); }
.res-unit.down span { opacity: 0.8; }
.res-note { color: var(--muted); }
#btn-results { margin-top: 12px; padding: 10px 28px; }

.audio-levels { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 8px; align-items: center; margin: 6px 0 10px; font-size: 12px; color: var(--muted); }
.audio-levels input[type=range] { width: 100%; min-width: 90px; accent-color: var(--gold); }
.audio-levels output { min-width: 3.2em; text-align: right; font-variant-numeric: tabular-nums; }
.title-credits { margin-top: 14px; background: none; border: none; box-shadow: none; color: #b8b4d0; text-decoration: underline; text-shadow: 0 1px 4px #000; }
.title-credits:hover:not(:disabled) { background: none; color: var(--gold); }
.title-version { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; opacity: 0.7; }
.title-lang { margin-top: 10px; background: rgba(0, 0, 0, 0.35); color: var(--muted); border: 1px solid var(--border); border-radius: 6px; padding: 4px 8px; font: inherit; font-size: 12px; }
#world-lang { flex-wrap: wrap; }
#screen-credits .credits-box { max-width: 560px; margin: 48px auto; padding: 24px; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; }
.credits-version { color: var(--muted); margin: 0 0 16px; }
.credits-list { display: grid; grid-template-columns: max-content 1fr; gap: 8px 16px; margin: 0 0 18px; }
.credits-list dt { color: var(--gold); }
.credits-list dd { margin: 0; }
.credits-links a { color: var(--gold); }
@media (max-width: 560px) { .credits-list { grid-template-columns: 1fr; gap: 2px; } .credits-list dd { margin-bottom: 8px; } #screen-credits .credits-box { margin: 16px; } }
#ask { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; padding: 16px; background: rgba(4, 5, 14, 0.62); }
#ask[hidden] { display: none; }
#ask .ask-box { max-width: 420px; width: 100%; background: var(--panel); border: 1px solid var(--gold); border-radius: 10px; padding: 18px 20px 16px; box-shadow: 0 12px 40px rgba(0,0,0,0.6); }
#ask p { margin: 0 0 16px; line-height: 1.45; }
#ask .ask-actions { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
#ask .ask-actions button { min-width: 96px; min-height: 40px; }
#toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(20px); background: var(--panel); border: 1px solid var(--gold); padding: 8px 18px; border-radius: 8px; opacity: 0; transition: all 0.25s; pointer-events: none; z-index: 50; box-shadow: var(--panel-shadow); }
#toast.show { opacity: 1; transform: translateX(-50%); }
/* Where a screen's buttons sit at the bottom, the toast sits at the top. */
body[data-screen="world"] #toast, body[data-screen="formation"] #toast, body[data-screen="shop"] #toast, body[data-screen="inventory"] #toast { bottom: auto; top: 14px; transform: translateX(-50%) translateY(-20px); }
body[data-screen="world"] #toast.show, body[data-screen="formation"] #toast.show, body[data-screen="shop"] #toast.show, body[data-screen="inventory"] #toast.show { transform: translateX(-50%); }
/* A word the first time something new opens. */
#tip { position: fixed; right: 12px; bottom: 12px; width: min(340px, calc(100% - 24px)); z-index: 45; background: var(--panel); border: 1px solid var(--gold); border-radius: 8px; padding: 10px 12px; font-size: 13px; line-height: 1.45; color: var(--text); box-shadow: var(--panel-shadow); animation: fadein 0.3s; }
#tip[hidden] { display: none; }
#tip .tip-text { margin: 0 0 8px; }
#tip .tip-actions { display: flex; justify-content: flex-end; }
/* On the field the panels take the corners, so the tip sits at the top. */
body[data-screen="battle"] #tip { top: calc(96px + var(--safe-t, 0px)); bottom: auto; left: 50%; right: auto; transform: translateX(-50%); }

/* ---------- shop ---------- */
.shop-layout { max-width: 900px; margin: 24px auto; padding: 0 20px; height: calc(100% - 48px); display: flex; flex-direction: column; }
.shop-head { display: flex; justify-content: space-between; align-items: baseline; }
.shop-head h2 { color: var(--gold); }
#shop-gil { font-size: 20px; color: var(--gold); }
.tabs { display: flex; gap: 6px; margin: 8px 0; }
.camp-tabs, .form-tabs { flex-wrap: wrap; margin: 0 0 12px; }
/* The record. */
.rec-line { color: var(--muted); font-size: 13px; margin-bottom: 8px; }
.rec-endings { font-size: 13px; margin-bottom: 8px; } .rec-endings .ending { display: inline-block; margin: 2px 6px 2px 0; padding: 1px 8px; border-radius: 999px; border: 1px solid var(--border); color: var(--muted); }
.rec-endings .ending.seen { color: #ffe08a; border-color: var(--gold); }
.rec-table { width: 100%; border-collapse: collapse; font-size: 13px; margin: 6px 0 10px; font-variant-numeric: tabular-nums; }
.rec-table th { text-align: left; color: var(--muted); font-weight: normal; border-bottom: 1px solid var(--border); padding: 3px 6px; }
.rec-table td { padding: 3px 6px; border-bottom: 1px solid rgba(255,255,255,0.05); } .rec-table td:nth-child(2), .rec-table th:nth-child(2) { text-align: center; } .rec-table td:nth-child(3), .rec-table th:nth-child(3) { text-align: right; }
.rec-kills { font-size: 13px; margin-bottom: 8px; } .rec-kills .kill-by { display: inline-block; margin: 2px 8px 2px 0; } .rec-kills .kill-by b { color: var(--gold); }
.rec-roll .rec-row { font-size: 13px; padding: 2px 0; } .rec-roll small { color: var(--muted); }
.rec-plus { margin-top: 10px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; } .rec-plus small { color: var(--muted); max-width: 420px; }
.camp-tabs button .badge, .form-tabs button .badge { display: inline-block; min-width: 16px; padding: 0 5px; margin-left: 6px; border-radius: 9px; background: var(--gold); color: #1a1408; font-size: 11px; line-height: 16px; }
.tab-hidden { display: none !important; }
.tabs button { border-radius: 999px; padding: 5px 14px; }
.tabs button.sel { background: var(--btn-gold); border-color: var(--gold); color: #ffe08a; }
#shop-list { flex: 1; overflow-y: auto; background: var(--panel); border: 1px solid var(--border); border-radius: 6px; padding: 12px; }
#shop-list h3 { color: var(--gold); margin-top: 12px; border-bottom: 1px solid #2a2d50; }
.shop-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 7px 4px; border-bottom: 1px solid #23264a; }
/* Item icons: a pixel glyph drawn per piece; crisp at any size. */
.item-icon { width: 32px; height: 32px; image-rendering: pixelated; image-rendering: crisp-edges; flex: none; vertical-align: middle; }
.item-icon.small { width: 20px; height: 20px; margin-right: 4px; }
.item-icon.empty { display: inline-block; opacity: 0; }
.shop-row > div > .item-icon, .inv-main > .item-icon { float: left; margin: 0 10px 2px 0; }
.equip-row .item-icon.small { margin-right: 0; }
#action-menu button span { display: inline-flex; align-items: center; gap: 6px; }
#action-menu button span .item-icon.small { margin: 0; }
.res-loot .item-icon.small { margin: 0 2px 0 4px; }
.shop-row.unfit { opacity: 0.5; }
.shop-row .fits { color: var(--muted); font-size: 12px; }
#btn-shop-back { margin-top: 12px; align-self: flex-start; }
.stock { color: var(--muted); font-size: 12px; margin-bottom: 8px; }
button.stock.link { background: none; border: 1px dashed var(--border); padding: 5px 8px; text-align: left; width: 100%; color: var(--muted); cursor: pointer; }
button.stock.link:hover { color: var(--gold); border-color: var(--gold); }
/* ---------- baggage ---------- */
.shop-head h2 small { color: var(--muted); font-weight: normal; font-size: 13px; margin-left: 8px; }
#bag-gil { font-size: 20px; color: var(--gold); }
#bag-tabs { flex-wrap: wrap; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.chips[hidden] { display: none; }
.chips .chip { font-size: 12px; padding: 3px 10px; border-radius: 12px; }
.chips .chip.sel { background: var(--btn-gold); border-color: var(--gold); color: #ffe08a; }
.list-panel { flex: 1; min-height: 120px; overflow-y: auto; background: var(--panel); border: 1px solid var(--border); border-radius: 6px; padding: 12px; }
.list-panel h3, #shop-list h4 { color: var(--gold); margin: 10px 0 2px; }
#shop-list h4 { font-size: 13px; color: #c8b878; border-bottom: 1px dotted #2a2d50; margin-top: 8px; }
.inv-row .inv-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.inv-row select { max-width: 200px; }
.worn-title { margin: 12px 0 4px; }
.worn-title small { color: var(--muted); font-weight: normal; font-size: 12px; }
.worn-panel { overflow-x: auto; background: var(--panel); border: 1px solid var(--border); border-radius: 6px; padding: 8px; max-height: 32vh; overflow-y: auto; }
table.worn { border-collapse: collapse; width: 100%; font-size: 12px; }
table.worn th { text-align: left; color: var(--muted); font-weight: normal; padding: 4px 6px; border-bottom: 1px solid #2a2d50; }
table.worn td { padding: 5px 6px; border-bottom: 1px solid #23264a; vertical-align: top; white-space: nowrap; }
table.worn td .none { color: #9a9ab0; }
table.worn button.mini { padding: 0 5px; font-size: 11px; line-height: 16px; }
.row-buttons { display: flex; gap: 8px; margin-top: 12px; }

/* ---------- equipment ---------- */
.equip-grid { display: flex; flex-direction: column; gap: 4px; margin-bottom: 8px; }
.equip-row { display: flex; align-items: center; gap: 8px; }
.equip-row > span { width: 78px; color: var(--muted); font-size: 12px; }
.equip-row select { flex: 1; max-width: 420px; }
.equip-row .none { color: #9a9ab0; font-size: 12px; }
button.mini { padding: 2px 8px; font-size: 11px; vertical-align: middle; margin-left: 8px; }

/* ---------- deployment ---------- */
#deploy-panel { display: none; bottom: 12px; right: 12px; width: 320px; }
#deploy-panel.open { display: block; }
.roster-list { max-height: 210px; overflow-y: auto; margin-bottom: 8px; }
.roster-row { display: flex; align-items: center; gap: 8px; padding: 5px 6px; border: 1px solid transparent; border-radius: 4px; cursor: pointer; }
.roster-row:hover { background: rgba(255,255,255,0.05); }
.roster-row.sel { border-color: var(--gold); background: #2a2a44; }
.roster-row .name { flex: 1; }
.roster-row .job { color: var(--muted); font-size: 11px; }
.roster-row .mark { color: #9a9ab0; }
.roster-row.placed .mark { color: var(--green); }
.deploy-dirs { margin-bottom: 8px; }
.deploy-dirs button { font-size: 12px; padding: 4px; }
.deploy-actions { display: flex; gap: 6px; }
.deploy-actions button { flex: 1; }
#hint.warn { color: var(--red); }
/* The first-chapter guide: a card above the hint, gold-edged so it reads as
   advice rather than a warning, with its own way out. */
#coach { position: absolute; right: 12px; bottom: 0; width: 320px; z-index: 6; background: var(--panel); border: 1px solid var(--gold); border-radius: 8px; padding: 8px 10px; font-size: 13px; color: var(--text); box-shadow: var(--panel-shadow); }
#coach[hidden] { display: none; }
#coach .coach-text { margin: 0 0 6px; }
#coach .coach-actions { display: flex; gap: 6px; justify-content: flex-end; }
#objective { color: var(--gold); font-size: 12px; border-left: 1px solid var(--border); padding-left: 12px; }
.order-row.fallen { opacity: 0.5; border-left-color: #555; }
.order-row.fallen .dot { background: #555; }
.res-reason { font-style: italic; color: #c8c6e0; }
button.icon { min-width: 34px; padding: 4px 8px; font-size: 14px; line-height: 1; }
#btn-auto.on { background: var(--gold); color: #1a1408; border-color: var(--gold); }
#btn-speed.on { color: var(--gold); border-color: var(--gold); }

/* ---------- the frame ----------
   The same frame on every slab, from the turn order to a dialog. The
   border-image replaces the hairline border; the panel's own gradient shows
   through the frame's open parts. Corners are square, as a frame's are. */
.panel, .card, .results-box, .help-box, #ask .ask-box, #battle-top, .slot, #shop-list, .list-panel, .worn-panel, #transfer,
.story-box, .credits-box, .tree-detail, .form-right, .road, #coach, #toast {
  border: 7px solid transparent; border-image: var(--frame) 9 round; border-radius: 0;
}
#ask .ask-box, #coach, #toast { border-image-source: var(--frame); }
.slot, .road { border-width: 6px; }
.road.sel, .slot.sel { box-shadow: 0 0 0 1px var(--gold) inset, var(--panel-shadow); }
#toast { padding: 10px 18px; }

/* ==========================================================================
   Phones. The board is the game, so panels are compact, get out of its way,
   and sit inside the safe area on notched screens.
   ========================================================================== */
:root {
  /* The browser fills these in; the Android app, whose WebView does not,
     sets the --cut-* variables from the window's display cutout instead. */
  --safe-t: max(env(safe-area-inset-top, 0px), var(--cut-t, 0px));
  --safe-b: max(env(safe-area-inset-bottom, 0px), var(--cut-b, 0px));
  --safe-l: max(env(safe-area-inset-left, 0px), var(--cut-l, 0px));
  --safe-r: max(env(safe-area-inset-right, 0px), var(--cut-r, 0px));
}
html, body { overscroll-behavior: none; }
/* `manipulation` keeps taps instant and kills double-tap zoom without
   swallowing any of them, which intercepting touch events in script does. */
html, body, button, select { touch-action: manipulation; }
#battle-canvas { touch-action: none; }
/* Nothing on the board should be selectable or long-pressable. */
#screen-battle { -webkit-user-select: none; user-select: none; -webkit-touch-callout: none; -webkit-tap-highlight-color: transparent; }

#btn-log { display: none; }
#log.hidden { display: none; }

@media (max-width: 820px), (max-height: 520px) {
  body { font-size: 13px; }
  #btn-log { display: inline-block; }

  #battle-top {
    top: calc(4px + var(--safe-t)); padding: 3px 6px; gap: 5px;
    left: 50%; right: auto; transform: translateX(-50%);
    flex-wrap: nowrap; max-width: calc(100vw - 12px - var(--safe-l) - var(--safe-r)); font-size: 11px;
  }
  #battle-name { font-size: 12px; max-width: 30vw; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #battle-top button { padding: 3px 7px; font-size: 11px; min-height: 30px; }
  #battle-top button.icon { min-width: 30px; padding: 3px 6px; }
  #tile-info, #objective { display: none; }

  /* The frame is slimmer on a phone, where every pixel of a panel is content. */
  .panel, #battle-top, #coach { border-width: 5px; }
  #unit-card { width: 152px; padding: 5px; right: calc(6px + var(--safe-r)); }
  #log { width: min(70vw, 320px); height: 96px; font-size: 10px; left: calc(6px + var(--safe-l)); bottom: calc(6px + var(--safe-b)); z-index: 4; }
  #command, #deploy-panel { padding: 7px; right: calc(6px + var(--safe-r)); bottom: calc(6px + var(--safe-b)); z-index: 6; }
  #hint { right: calc(6px + var(--safe-r)); font-size: 11px; }
  .roster-list { max-height: 24vh; }
  .portrait { width: 84px; height: 88px; }
  button { min-height: 40px; }
  .form-row .btns button, button.mini, table.worn button.mini { min-height: 36px; min-width: 36px; }
  /* Baggage on a phone: the filters are one scrolling row each, and a row
     of the list stacks its name over one line of controls. */
  #bag-tabs, #bag-types { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 6px 0; padding-bottom: 2px; }
  #bag-tabs::-webkit-scrollbar, #bag-types::-webkit-scrollbar { display: none; }
  #bag-tabs button, #bag-types .chip { flex: none; white-space: nowrap; min-height: 34px; padding: 4px 12px; font-size: 13px; }
  .list-panel { padding: 8px 10px; }
  .list-panel h3 { margin: 8px 0 0; font-size: 15px; }
  .inv-row { flex-direction: column; align-items: stretch; gap: 6px; padding: 8px 0; }
  .inv-row .inv-main .fits { font-size: 11px; }
  .inv-row .inv-actions { flex-wrap: nowrap; justify-content: flex-start; }
  .inv-row select { flex: 1; min-width: 0; max-width: none; min-height: 36px; }
  .inv-row .inv-actions button { flex: none; min-height: 36px; padding: 4px 12px; margin: 0; }
  .shop-head h2 small { display: block; margin: 2px 0 0; }
  .world-layout, .form-layout, .shop-layout { flex-direction: column; height: auto; }
  .world-side, .form-left { width: auto; }
  .screen { overflow-y: auto; }
  .title-box h1 { font-size: 40px; }
  .title-buttons { flex-direction: column; align-items: center; }
  .title-buttons button { width: min(260px, 80vw); }
  .banner { font-size: 17px; padding: 4px 16px; }
}

/* Portrait phone: the turn order becomes a strip so the board keeps its height. */
@media (max-width: 820px) and (orientation: portrait) {
  #turn-order {
    top: calc(46px + var(--safe-t)); left: calc(6px + var(--safe-l)); right: calc(6px + var(--safe-r));
    width: auto; padding: 4px 6px; display: flex; gap: 8px; align-items: center;
    overflow-x: auto; white-space: nowrap; max-height: none;
  }
  #turn-order .panel-title { margin: 0 4px 0 0; font-size: 11px; flex: none; }
  .order-row { padding: 0 0 0 4px; gap: 4px; font-size: 11px; flex: none; }
  .order-row .sub { display: none; }
  #unit-card { top: calc(84px + var(--safe-t)); }
  /* The turn banner sits at the foot of the board's band, under the figures
     the camera centres there and clear of the unit card. */
  .banner { top: auto; bottom: calc(244px + var(--safe-b)); font-size: 20px; }
  #command, #deploy-panel { width: calc(100vw - 12px - var(--safe-l) - var(--safe-r)); left: calc(6px + var(--safe-l)); right: auto; }
  #hint { width: calc(100vw - 12px - var(--safe-l) - var(--safe-r)); left: calc(6px + var(--safe-l)); right: auto; text-align: center; }
  #coach { width: calc(100vw - 12px - var(--safe-l) - var(--safe-r)); left: calc(6px + var(--safe-l)); right: auto; }
  .roster-list { max-height: 18vh; }
  /* The log is docked above the command panel, so a line of the log never sits on Wait. */
  #log { bottom: calc(150px + var(--safe-b)); height: 80px; }
  #action-menu { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
  #action-menu .menu-title { grid-column: 1 / -1; }
  .deploy-actions button { font-size: 12px; }
}

/* Landscape phone: columns down each side, board through the middle. */
@media (max-height: 520px) and (orientation: landscape) {
  #battle-top { top: calc(3px + var(--safe-t)); left: auto; right: calc(6px + var(--safe-r)); transform: none; }
  #turn-order { top: calc(4px + var(--safe-t)); left: calc(4px + var(--safe-l)); width: 116px; padding: 5px; font-size: 10px; max-height: 62vh; overflow-y: auto; }
  .order-row { padding: 1px 0; }
  .order-row .sub { display: none; }
  #unit-card { top: calc(44px + var(--safe-t)); width: 134px; font-size: 11px; }
  #unit-card .stats { grid-template-columns: repeat(2, 1fr); font-size: 10px; }
  #command, #deploy-panel { width: min(250px, 44vw); max-height: 76vh; overflow-y: auto; }
  #log { width: 40vw; height: 70px; }
  .banner { top: calc(40px + var(--safe-t)); font-size: 15px; }
  .roster-list { max-height: 20vh; }
}

button.icon { min-width: 34px; padding: 4px 8px; font-size: 14px; line-height: 1; }

/* Touch targets and stacking on small screens. */
.chapter-goal { color: var(--gold); font-size: 13px; margin-top: 6px; }
.res-loot { color: var(--gold); }
.difficulty .tabs { flex-wrap: wrap; }
.diff-desc { width: 100%; color: var(--muted); font-size: 12px; margin-top: 6px; }
.affinities { margin-top: 4px; font-size: 11px; display: flex; flex-wrap: wrap; gap: 6px; }
.affinities .aff { white-space: nowrap; }
.chapter-warn { color: var(--red); font-size: 12px; margin-top: 6px; }

/* The narrowest phones: the battle bar wraps to two rows rather than clipping its ends. */
@media (max-width: 380px) {
  #battle-top { flex-wrap: wrap; justify-content: center; row-gap: 3px; }
  #battle-name { max-width: 100%; flex-basis: 100%; text-align: center; }
}
