/* lorebook.php: the Lorebook. Colours are tokens, so the forest theme's light band (which turns --bone, --frost, --gold and --line
   dark on cream) restyles it; the forest titles and the few forest-only tokens are in the "LOREBOOK" block of themes/forest.css.
   Kinds of knowledge are told apart by their written label first; colour and border style only reinforce it. */
.lb-wrap {
  --lb-historical: var(--gold);
  --lb-literary: var(--frost);
  --lb-modern: var(--aurora);
  --lb-card-bg: rgba(var(--frost-rgb), 0.06);
  /* the realm map's dots sit on a picture, so they keep their own colours in every theme */
  --lbd-gods: #E0B84A; --lbd-people: #3FA67A; --lbd-giants: #5B8FC9; --lbd-cold: #D9E4EA; --lbd-fire: #D6452F; --lbd-tree: #A77BD1;
  --lbd-ring: #14201C; --lbd-halo: #F4EFE0;
  --lb-pop-bg: var(--midnight-2);
  max-width: 980px; margin: 0 auto; padding: 40px 24px 80px;
}

.lb-crumbs { margin: 0 0 22px; font-size: calc(0.8125rem * var(--text-scale)); }
.lb-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; margin: 0; padding: 0; list-style: none; }
.lb-crumbs li + li::before { content: "›"; margin: 0 9px; color: var(--frost); }
.lb-crumbs a { color: var(--gold); text-decoration: none; }
.lb-crumbs a:hover { text-decoration: underline; }
.lb-crumbs [aria-current] { color: var(--frost); }

.lb-head { text-align: left; padding: 6px 0 26px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }   /* styles.css pads every <header> */
.lb-head--rune { display: flex; gap: 28px; align-items: flex-start; }
.lb-name { margin: 0 0 10px; font-family: var(--font-heading); font-weight: 400; font-size: calc(2rem * var(--text-scale)); line-height: 1.2; color: var(--gold); }
.lb-lead { margin: 0; max-width: none; font-size: calc(1rem * var(--text-scale)); line-height: 1.65; color: var(--frost); }
.lb-lead p { margin: 0 0 12px; }
.lb-bigglyph { flex: none; width: 96px; text-align: center; font-family: var(--font-rune); font-size: calc(4.75rem * var(--text-scale)); line-height: 1; color: var(--gold); }
.lb-facts { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0 0 12px; padding: 0; list-style: none; font-size: calc(0.875rem * var(--text-scale)); color: var(--bone); }
.lb-facts span { margin-right: 4px; font-size: calc(0.71875rem * var(--text-scale)); letter-spacing: 0.12em; text-transform: uppercase; color: var(--frost); }
.lb-progress { margin: 0 0 8px; font-size: calc(0.78125rem * var(--text-scale)); letter-spacing: 0.12em; text-transform: uppercase; color: var(--frost); }

.lb-sec { max-width: none; margin: 0 0 38px; padding: 0; }   /* styles.css boxes every <section> */
.lb-sec--historical, .lb-sec--literary, .lb-sec--paraphrase, .lb-sec--modern { padding: 18px 22px 20px; background: var(--lb-card-bg); border-left: 4px solid var(--line); border-radius: var(--card-radius-sm); }
.lb-sec--historical { border-left: 4px solid var(--lb-historical); }
.lb-sec--literary { border-left: 4px double var(--lb-literary); }
.lb-sec--paraphrase { border-left: 4px dotted var(--lb-literary); }
.lb-sec--modern { border-left: 4px dashed var(--lb-modern); }
.lb-title { margin: 8px 0 14px; font-family: var(--font-heading); font-weight: 400; font-size: calc(1.125rem * var(--text-scale)); letter-spacing: 0.1em; text-transform: uppercase; color: var(--bone); }
.lb-sub { margin: 18px 0 8px; font-family: var(--font-heading); font-weight: 400; font-size: calc(0.9375rem * var(--text-scale)); letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); }
.lb-badge { display: inline-block; padding: 3px 10px; border: 1px solid currentColor; border-radius: 999px; font-family: var(--font-ui); font-size: calc(0.71875rem * var(--text-scale)); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; }
.lb-badge--historical { color: var(--lb-historical); }
.lb-badge--literary, .lb-badge--paraphrase { color: var(--lb-literary); }
.lb-badge--modern { color: var(--lb-modern); border-style: dashed; }
.lb-body { max-width: none; font-size: calc(1rem * var(--text-scale)); line-height: 1.7; color: var(--frost); }
.lb-body p { margin: 0 0 14px; }
.lb-body blockquote { margin: 0 0 14px; padding-left: 16px; border-left: 2px solid var(--line); font-style: italic; }
.lb-note { margin: 0 0 18px; max-width: none; font-size: calc(0.875rem * var(--text-scale)); line-height: 1.6; font-style: italic; color: var(--frost); }
.lb-pending { margin: 8px 0 0; max-width: none; font-size: calc(0.875rem * var(--text-scale)); line-height: 1.6; font-style: italic; color: var(--frost); }
.lb-empty { color: var(--frost); font-style: italic; }
.lb-aside { margin: 14px 0 0; font-size: calc(0.875rem * var(--text-scale)); }
.lb-aside a, .lb-links a, .lb-steps a, .lb-sources a, .lb-body a, .lb-card-link, .lb-more summary { color: var(--gold); }
.lb-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.lb-cards { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; grid-auto-rows: 1fr; }
.lb-card { position: relative; display: flex; flex-direction: column; gap: 6px; background: var(--lb-card-bg); border: var(--card-border); border-radius: var(--card-radius); }
.lb-card-link { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 18px 20px; text-decoration: none; border-radius: var(--card-radius); }
.lb-card-link:hover { background: rgba(var(--gold-rgb), 0.1); }
.lb-card.is-soon { padding: 18px 20px; border-style: dashed; }
.lb-card-name { font-family: var(--font-heading); font-size: calc(1.125rem * var(--text-scale)); letter-spacing: 0.06em; color: var(--bone); }
.lb-card-text { font-size: calc(0.90625rem * var(--text-scale)); line-height: 1.55; color: var(--frost); }
.lb-card-meta, .lb-soon { margin-top: auto; padding-top: 4px; font-size: calc(0.75rem * var(--text-scale)); letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); }
.lb-card.is-soon .lb-soon { color: var(--frost); }

.lb-filter { display: flex; flex-wrap: wrap; gap: 0 22px; margin: 0 0 30px; padding-bottom: 2px; border-bottom: 1px solid var(--line); }
.lb-filter a { display: inline-flex; align-items: center; min-height: 44px; margin-bottom: -3px; border-bottom: 2px solid transparent; font-size: calc(0.90625rem * var(--text-scale)); text-decoration: none; color: var(--frost); }
.lb-filter a:hover { color: var(--gold); }
.lb-filter a[aria-current] { border-bottom-color: var(--gold); color: var(--bone); font-weight: 600; }

.lb-runes { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; grid-auto-rows: 1fr; }
.lb-runes > li { display: flex; }
.lb-rune { flex: 1; justify-content: center; display: flex; flex-direction: column; align-items: center; gap: 2px; min-height: 44px; padding: 14px 8px 12px; background: var(--lb-card-bg); border: var(--card-border); border-radius: var(--card-radius); text-decoration: none; text-align: center; }
.lb-rune:hover { border-color: var(--gold); background: rgba(var(--gold-rgb), 0.1); }
.lb-rune-glyph { font-family: var(--font-rune); font-size: calc(2.375rem * var(--text-scale)); line-height: 1.2; color: var(--gold); }
.lb-rune-name { font-family: var(--font-heading); font-size: calc(0.96875rem * var(--text-scale)); letter-spacing: 0.05em; color: var(--bone); }
.lb-rune-sound { font-size: calc(0.75rem * var(--text-scale)); color: var(--frost); }
.lb-tarot-num { font-family: var(--font-heading); font-size: calc(1.5rem * var(--text-scale)); line-height: 1.2; color: var(--gold); }
.lb-bigglyph--num { font-family: var(--font-heading); font-size: calc(3.25rem * var(--text-scale)); }

.lb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; padding: 0; list-style: none; }
.lb-chips li { padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: calc(0.84375rem * var(--text-scale)); color: var(--frost); }
.lb-more { margin: 6px 0 10px; max-width: none; }
.lb-more summary { cursor: pointer; min-height: 32px; font-size: calc(0.875rem * var(--text-scale)); }
.lb-more dt { margin-top: 10px; font-size: calc(0.75rem * var(--text-scale)); letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold); }
.lb-more dd { margin: 2px 0 0; font-size: calc(0.9375rem * var(--text-scale)); line-height: 1.6; color: var(--frost); }

.lb-sources { margin: 14px 0 0; padding: 12px 0 0; list-style: none; border-top: 1px solid var(--line); font-size: calc(0.8125rem * var(--text-scale)); line-height: 1.55; color: var(--frost); }
.lb-sources li + li { margin-top: 4px; }
.lb-prompts { margin: 0; padding-left: 20px; max-width: none; font-size: calc(1rem * var(--text-scale)); line-height: 1.65; color: var(--frost); }
.lb-prompts li + li { margin-top: 10px; }
.lb-themes { margin: 0 0 30px; font-size: calc(0.875rem * var(--text-scale)); color: var(--frost); }
.lb-themes span { margin-right: 8px; font-size: calc(0.71875rem * var(--text-scale)); letter-spacing: 0.12em; text-transform: uppercase; }

.lb-links, .lb-steps { margin: 0; padding: 0; list-style: none; display: grid; gap: 2px; font-size: calc(1rem * var(--text-scale)); color: var(--frost); }
.lb-steps { counter-reset: lbstep; }
.lb-steps li { counter-increment: lbstep; display: flex; align-items: center; gap: 12px; }
.lb-steps li::before { content: counter(lbstep); flex: none; width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--gold); border-radius: 50%; font-size: calc(0.8125rem * var(--text-scale)); color: var(--gold); }
.lb-links li, .lb-steps li { min-height: 44px; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; }
.lb-links a, .lb-steps a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.lb-link-glyph { font-family: var(--font-rune); color: var(--gold); }
.lb-link-note { font-size: calc(0.84375rem * var(--text-scale)); font-style: italic; color: var(--frost); }

.lb-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; background: var(--btn-bg); color: var(--btn-text); border: 0; border-radius: var(--btn-radius); font-family: var(--font-heading); font-size: calc(0.8125rem * var(--text-scale)); letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; }
.lb-btn:hover { background: var(--btn-hover-bg); }
.lb-pager { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-top: 40px; padding-top: 22px; border-top: 1px solid var(--line); }
.lb-pager a:not(.lb-btn) { display: inline-flex; align-items: center; min-height: 44px; color: var(--gold); text-decoration: none; font-size: calc(0.9375rem * var(--text-scale)); }
.lb-pager a:not(.lb-btn):hover { text-decoration: underline; }

.lb-wrap a:focus-visible, .lb-wrap summary:focus-visible { outline: 2px solid var(--focus-ring, var(--gold)); outline-offset: 3px; border-radius: 2px; }

@media (max-width: 640px) {
  .lb-wrap { padding: 28px 16px 64px; }
  .lb-head--rune { flex-direction: column; gap: 6px; }
  .lb-bigglyph { width: auto; text-align: left; }
  .lb-sec--historical, .lb-sec--literary, .lb-sec--paraphrase, .lb-sec--modern { padding: 14px 16px 16px; }
  .lb-runes { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
  .lb-pager { flex-direction: column; align-items: stretch; }
  .lb-pager .lb-btn { width: 100%; }
}

/* Hávamál */
.lb-chips--links { margin-top: 14px; }
.lb-chips--links a { display: inline-flex; align-items: center; min-height: 32px; color: var(--gold); text-decoration: none; }
.lb-chips--links li { padding: 0 12px; }
.lb-ref-line { margin: 10px 0 0; }
.lb-pending--lead { margin-bottom: 26px; }
.lb-rights { font-style: italic; }

/* Yggdrasil: the picture, the panel and the list. Kinds differ by shape and by the word under the name; colour only reinforces. */
.lb-ygg-list { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.lb-ygg-list li { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; background: var(--lb-card-bg); border: var(--card-border); border-radius: var(--card-radius); }
.lb-ygg-list a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; color: var(--gold); }
.lb-ygg-list a[aria-current] { text-decoration: underline; text-underline-offset: 4px; }
.lb-ygg-list .lb-card-meta { padding-top: 0; }

/* the journal hand-off link beside a reflection prompt */
.lb-journal { display: inline-flex; align-items: center; min-height: 32px; margin-left: 8px; font-size: calc(0.8125rem * var(--text-scale)); font-style: italic; color: var(--gold); }

/* Yggdrasil: the nine-realms map, with a link over each realm's name */
.lb-realmmap { margin: 0 0 22px; }
.lb-realmmap-wrap { position: relative; max-width: none; margin: 0 0 10px; line-height: 0; }
.lb-realmmap-wrap img { width: 100%; height: auto; display: block; border: var(--card-border); border-radius: var(--card-radius); }
.lb-realmdot { position: absolute; z-index: 1; width: 44px; height: 44px; transform: translate(-50%, -50%); display: block; text-decoration: none; line-height: 1.4; outline: none; }
.lb-realmdot:hover, .lb-realmdot:focus-visible, .lb-realmdot.is-open { z-index: 5; }
.lb-realmdot-mark { position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; margin: -11px 0 0 -11px; box-sizing: border-box; border-radius: 50%; border: 3px solid var(--lbd-ring); box-shadow: 0 0 0 2px var(--lbd-halo); background: var(--lb-dot, var(--lbd-gods)); }
.lb-realmdot:hover .lb-realmdot-mark, .lb-realmdot.is-open .lb-realmdot-mark { box-shadow: 0 0 0 2px var(--lbd-halo), 0 0 0 5px var(--lbd-ring); }
.lb-realmdot:focus-visible .lb-realmdot-mark { outline: var(--focus-ring); outline-offset: 5px; }
.lb-realmdot--gods { --lb-dot: var(--lbd-gods); }
.lb-realmdot--people { --lb-dot: var(--lbd-people); }
.lb-realmdot--giants { --lb-dot: var(--lbd-giants); }
.lb-realmdot--cold { --lb-dot: var(--lbd-cold); }
.lb-realmdot--fire { --lb-dot: var(--lbd-fire); }
.lb-realmdot--tree { --lb-dot: var(--lbd-tree); }
.lb-realmcard { display: none; position: absolute; left: 50%; top: 100%; width: 250px; margin-left: -125px; padding: 12px 14px; text-align: left; font-size: calc(0.875rem * var(--text-scale)); color: var(--bone); background: var(--lb-pop-bg); border: 1px solid var(--gold); border-radius: var(--card-radius-sm, 4px); box-shadow: var(--popup-shadow, 0 6px 20px rgba(0, 0, 0, .45)); }
.lb-realmdot.is-right .lb-realmcard { left: auto; right: 50%; margin-left: 0; margin-right: -125px; }
.lb-realmdot.is-up .lb-realmcard { top: auto; bottom: 100%; }
.lb-realmdot:hover .lb-realmcard, .lb-realmdot:focus-visible .lb-realmcard, .lb-realmdot.is-open .lb-realmcard { display: block; }
.lb-realmcard span { display: block; }
.lb-realmcard-name { font-family: var(--font-heading); font-size: calc(1.0625rem * var(--text-scale)); color: var(--gold); }
.lb-realmcard-group { margin: 2px 0 6px; font-size: calc(0.75rem * var(--text-scale)); letter-spacing: .04em; text-transform: uppercase; color: var(--frost); }
.lb-realmcard-text { margin-bottom: 8px; }
.lb-realmcard-go { color: var(--gold); text-decoration: underline; }
.lb-realmkey { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0 0 22px; padding: 0; list-style: none; font-size: calc(0.875rem * var(--text-scale)); color: var(--bone); }
.lb-realmkey .lb-realmdot-mark { position: static; display: inline-block; vertical-align: middle; margin: 0 6px 0 0; }
.lb-realmroute { position: absolute; left: 0; top: 0; width: 100%; height: 100%; pointer-events: none; }
.lb-realmroute polyline { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.lb-realmroute-under { stroke: var(--lbd-ring); stroke-width: 8px; stroke-dasharray: 14 12; }
.lb-realmroute-line { stroke: var(--lbd-gods); stroke-width: 4px; stroke-dasharray: 14 12; }

/* "Edit in admin": printed by lorebook.php for an administrator only */
.lb-admin-edit { position: fixed; left: 16px; bottom: 16px; z-index: 50; padding: 10px 16px; border-radius: var(--btn-radius);
  background: var(--btn-bg); color: var(--btn-text); font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); font-weight: 600;
  text-decoration: none; box-shadow: 0 4px 16px rgba(var(--midnight-rgb), .35); }
.lb-admin-edit:hover, .lb-admin-edit:focus-visible { background: var(--btn-hover-bg); color: var(--btn-text); }

/* Landing page (/lorebook) and the trail index (/lorebook/trails): laid out like the opening of a reference book, an opening
   spread with the map, then a contents list of collections and trails, not a grid of cards. */
.lb-kicker { margin: 0 0 10px; font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); font-weight: 600; letter-spacing: 0.06em; color: var(--gold); }
.lb-name--front { font-size: calc(2.75rem * var(--text-scale)); line-height: 1.1; margin-bottom: 18px; }
.lb-front { text-align: left; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: 56px; align-items: center; padding: 10px 0 44px; margin: 0 0 8px; border-bottom: 1px solid var(--line); }
.lb-front .lb-lead { font-size: calc(1.125rem * var(--text-scale)); line-height: 1.7; }
.lb-front-act { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin: 28px 0 0; }
.lb-front-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--gold); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; font-size: calc(0.9375rem * var(--text-scale)); }
.lb-front-link:hover { text-decoration-thickness: 2px; }
.lb-front-fig { margin: 0; }
.lb-front-fig > a { display: block; line-height: 0; }
.lb-front-fig img { width: 100%; height: auto; aspect-ratio: 5 / 4; object-fit: cover; object-position: 50% 42%; padding: 7px; background: var(--lb-card-bg); border: 1px solid var(--line); border-radius: var(--card-radius-sm); }
.lb-front-fig figcaption { margin-top: 10px; font-size: calc(0.8125rem * var(--text-scale)); font-style: italic; line-height: 1.5; color: var(--frost); }
.lb-front-fig figcaption a { color: var(--gold); font-style: normal; }

.lb-sec--shelf { margin-top: 40px; }
.lb-shelf { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--line); }
.lb-shelf-item { border-top: 1px solid var(--line); }
.lb-shelf-row { display: grid; grid-template-columns: 132px minmax(0, 1fr) auto; gap: 8px 28px; align-items: center; padding: 26px 12px 26px 4px; text-decoration: none; color: inherit; }
a.lb-shelf-row:hover { background: rgba(var(--gold-rgb), 0.07); }
a.lb-shelf-row:hover .lb-shelf-name { color: var(--gold); }
.lb-shelf-mark { text-align: center; line-height: 1; color: var(--gold); font-family: var(--font-heading); font-size: calc(2rem * var(--text-scale)); }
.lb-shelf-mark--rune { font-family: var(--font-rune); font-size: calc(2.75rem * var(--text-scale)); letter-spacing: 0.08em; }
.lb-shelf-body { display: flex; flex-direction: column; gap: 6px; }
.lb-shelf-name { font-family: var(--font-heading); font-size: calc(1.5rem * var(--text-scale)); line-height: 1.2; color: var(--bone); }
.lb-shelf-text { font-size: calc(0.96875rem * var(--text-scale)); line-height: 1.6; color: var(--frost); }
.lb-shelf-count { font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); color: var(--frost); white-space: nowrap; }
.lb-shelf-item.is-soon .lb-shelf-mark, .lb-shelf-item.is-soon .lb-shelf-name { opacity: 0.55; }
.lb-shelf-item.is-soon .lb-shelf-count { font-style: italic; }

.lb-sec--trails { padding-top: 6px; }
.lb-split { display: grid; grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr); gap: 56px; align-items: start; }
.lb-split .lb-title { margin-top: 18px; }
.lb-split-text { margin: 0 0 8px; font-size: calc(0.96875rem * var(--text-scale)); line-height: 1.65; color: var(--frost); }
.lb-split-more { margin: 0; }

.lb-sec--key { padding-top: 30px; border-top: 1px solid var(--line); }
.lb-key { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 40px; margin: 0; }
.lb-key div { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.lb-key dd { margin: 0; font-size: calc(0.90625rem * var(--text-scale)); line-height: 1.6; color: var(--frost); }

/* a list of trails: one row each, the steps drawn as a line of marks */
.lb-trails { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--line); }
.lb-trails > li { border-top: 1px solid var(--line); }
.lb-trail { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 24px; align-items: start; padding: 20px 8px 20px 4px; text-decoration: none; color: inherit; }
.lb-trails--numbered .lb-trail { grid-template-columns: 52px minmax(0, 1fr) auto; }
.lb-trail:hover { background: rgba(var(--gold-rgb), 0.07); }
.lb-trail:hover .lb-trail-name { color: var(--gold); }
.lb-trail-no { padding-top: 2px; font-family: var(--font-heading); font-size: calc(1.125rem * var(--text-scale)); color: var(--gold); font-variant-numeric: lining-nums tabular-nums; }
.lb-trail-main { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.lb-trail-name { font-family: var(--font-heading); font-size: calc(1.25rem * var(--text-scale)); line-height: 1.25; color: var(--bone); }
.lb-trail-text { font-size: calc(0.9375rem * var(--text-scale)); line-height: 1.55; color: var(--frost); }
.lb-trail-len { padding-top: 4px; font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); color: var(--frost); white-space: nowrap; }

.lb-path { display: flex; flex-wrap: wrap; align-items: center; row-gap: 6px; margin-top: 8px; }
.lb-mk { position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-right: 12px; color: var(--gold); }
.lb-path .lb-mk:not(:last-child)::after { content: ''; position: absolute; left: 100%; top: 50%; width: 12px; height: 1px; background: var(--line); }
.lb-mk--rune { font-family: var(--font-rune); font-size: 17px; line-height: 1; }
.lb-mk--tarot::before { content: ''; width: 10px; height: 15px; border: 1.5px solid currentColor; border-radius: 2px; box-sizing: border-box; }
.lb-mk--havamal::before { content: ''; width: 13px; height: 11px; background: repeating-linear-gradient(to bottom, var(--frost) 0 1.5px, transparent 1.5px 4.5px); }
.lb-mk--yggdrasil::before { content: ''; width: 10px; height: 10px; border-radius: 50%; background: var(--lb-modern); }
.lb-mk--other::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--line); }

.lb-head--trails .lb-lead { font-size: calc(1.0625rem * var(--text-scale)); }
.lb-head-meta { margin: 14px 0 0; font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); color: var(--frost); }
.lb-trails-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px 40px; margin: 0 0 22px; }
.lb-trails-top .lb-note { margin: 0; flex: 1 1 420px; }
.lb-legend { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0; list-style: none; font-size: calc(0.8125rem * var(--text-scale)); color: var(--frost); }
.lb-legend li { display: inline-flex; align-items: center; }
.lb-legend .lb-mk { margin-right: 6px; }

@media (min-width: 1100px) {
  .lb-trails--numbered { display: grid; grid-template-columns: 1fr 1fr; column-gap: 48px; border-bottom: 0; }
  .lb-trails--numbered > li:nth-last-child(-n+2) { border-bottom: 1px solid var(--line); }
}
@media (max-width: 900px) {
  .lb-front { grid-template-columns: 1fr; gap: 30px; padding-bottom: 34px; }
  .lb-split { grid-template-columns: 1fr; gap: 10px; }
  .lb-key { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .lb-name--front { font-size: calc(2rem * var(--text-scale)); }
  .lb-front .lb-lead { font-size: calc(1rem * var(--text-scale)); }
  .lb-shelf-row { grid-template-columns: 56px minmax(0, 1fr); gap: 6px 16px; padding: 20px 4px; }
  .lb-shelf-mark { font-size: calc(1.375rem * var(--text-scale)); }
  .lb-shelf-mark--rune { font-size: calc(1.625rem * var(--text-scale)); letter-spacing: 0; }
  .lb-shelf-name { font-size: calc(1.25rem * var(--text-scale)); }
  .lb-shelf-count { grid-column: 2; }
  .lb-trail { grid-template-columns: minmax(0, 1fr); }
  .lb-trails--numbered .lb-trail { grid-template-columns: 36px minmax(0, 1fr); }
  .lb-trail-len { grid-column: -2 / -1; padding-top: 0; }
}

/* Index pages (runes, tarot, Hávamál, Yggdrasil): printed-index lists, not tiles. */
.lb-key--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* Runes: one specimen row per ætt, eight runes between hairlines */
.lb-sec--aett { margin-bottom: 30px; }
.lb-specimen { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lb-specimen > li { display: flex; }
.lb-specimen > li + li { border-left: 1px solid var(--line); }
.lb-spec { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 22px 6px 18px; text-decoration: none; text-align: center; color: inherit; }
.lb-spec:hover { background: rgba(var(--gold-rgb), 0.07); }
.lb-spec:hover .lb-spec-name { color: var(--gold); }
.lb-spec-glyph { font-family: var(--font-rune); font-size: calc(2.75rem * var(--text-scale)); line-height: 1.15; color: var(--gold); }
.lb-spec-name { margin-top: 6px; font-family: var(--font-heading); font-size: calc(1rem * var(--text-scale)); color: var(--bone); }
.lb-spec-sound { font-size: calc(0.8125rem * var(--text-scale)); font-style: italic; color: var(--frost); }

/* Tarot: an index with leader dots, majors in two columns, the four suits side by side */
.lb-index { margin: 0; padding: 0; list-style: none; }
.lb-index--two { column-count: 2; column-gap: 56px; }
.lb-index > li { break-inside: avoid; border-bottom: 1px solid var(--line); }
.lb-ix { display: flex; align-items: baseline; gap: 12px; min-height: 44px; padding: 10px 4px; text-decoration: none; color: inherit; }
.lb-ix:hover { background: rgba(var(--gold-rgb), 0.07); }
.lb-ix:hover .lb-ix-name { color: var(--gold); }
.lb-ix-num { flex: none; width: 46px; font-family: var(--font-heading); font-size: calc(1rem * var(--text-scale)); color: var(--gold); }
.lb-ix-name { font-family: var(--font-heading); font-size: calc(1.0625rem * var(--text-scale)); color: var(--bone); }
.lb-ix-fig { margin-left: auto; padding-left: 12px; font-size: calc(0.875rem * var(--text-scale)); font-style: italic; color: var(--frost); text-align: right; }
.lb-suits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 36px; }
.lb-suit .lb-sub { margin: 0 0 4px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.lb-suit .lb-ix-name { font-size: calc(0.96875rem * var(--text-scale)); }
.lb-suit .lb-ix-fig { font-size: calc(0.8125rem * var(--text-scale)); }

/* Hávamál: the eight parts as a numbered contents list; passages and places as ruled entries in two columns */
.lb-parts { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--line); }
.lb-parts > li { border-top: 1px solid var(--line); }
.lb-part { display: grid; grid-template-columns: 64px minmax(0, 1fr) minmax(0, 1fr); gap: 4px 24px; align-items: baseline; padding: 16px 4px; text-decoration: none; color: inherit; }
.lb-part:hover { background: rgba(var(--gold-rgb), 0.07); }
.lb-part:hover .lb-part-name { color: var(--gold); }
.lb-part-no { font-family: var(--font-heading); font-size: calc(1.125rem * var(--text-scale)); color: var(--gold); }
.lb-part-name { font-family: var(--font-heading); font-size: calc(1.1875rem * var(--text-scale)); color: var(--bone); }
.lb-part-text { font-size: calc(0.875rem * var(--text-scale)); color: var(--frost); }

.lb-entries { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; margin: 0; padding: 0; list-style: none; }
.lb-entries > li { border-top: 1px solid var(--line); }
.lb-entry { display: flex; flex-direction: column; gap: 4px; height: 100%; box-sizing: border-box; padding: 16px 4px 18px; text-decoration: none; color: inherit; }
.lb-entry:hover { background: rgba(var(--gold-rgb), 0.07); }
.lb-entry:hover .lb-entry-name { color: var(--gold); }
.lb-entry-name { display: flex; align-items: center; gap: 10px; font-family: var(--font-heading); font-size: calc(1.0625rem * var(--text-scale)); line-height: 1.3; color: var(--bone); }
.lb-entry-name .lb-realmdot-mark { position: static; flex: none; width: 14px; height: 14px; margin: 0; border-width: 2px; }
.lb-entry-text { font-size: calc(0.90625rem * var(--text-scale)); line-height: 1.55; color: var(--frost); }
.lb-entry-meta { font-family: var(--font-ui); font-size: calc(0.75rem * var(--text-scale)); color: var(--frost); }

/* Yggdrasil page: opening text, the nine worlds, the story browser (lorebook-browse.js) */
.lb-realmdot--story { --lb-dot: transparent; }
.lb-about { margin: 18px 0 0; }
.lb-about summary { cursor: pointer; font-family: var(--font-ui); font-size: calc(0.875rem * var(--text-scale)); color: var(--gold); min-height: 32px; }
.lb-pl-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 0 0 8px; }
.lb-pl-search input { box-sizing: border-box; width: 18rem; max-width: 100%; min-height: 44px; padding: 8px 14px; background: transparent; border: 1px solid var(--line); border-radius: var(--field-radius); color: var(--bone); font: inherit; }
.lb-pl-search input::placeholder { color: var(--frost); opacity: 1; }
.lb-pl-search input:hover, .lb-pl-search input:focus { border-color: var(--gold); }
.lb-pl-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.lb-pl-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; box-sizing: border-box; padding: 6px 14px; background: transparent; border: 1px solid var(--line); border-radius: 999px; color: var(--bone); font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); cursor: pointer; }
.lb-pl-chip:hover { border-color: var(--gold); }
.lb-pl-chip[aria-pressed="true"] { border-color: var(--gold); background: rgba(var(--gold-rgb), 0.14); color: var(--gold); }
.lb-pl-n { color: var(--frost); font-size: calc(0.75rem * var(--text-scale)); }
.lb-pl-group { margin: 26px 0 0; }
.lb-pl-head { margin: 0 0 6px; padding-bottom: 6px; border-bottom: 1px solid var(--line); font-family: var(--font-heading); font-size: calc(1.25rem * var(--text-scale)); font-weight: 600; color: var(--bone); }
.lb-pl-hook { margin: 0 0 12px; max-width: 60rem; font-size: calc(1rem * var(--text-scale)); line-height: 1.65; color: var(--bone); }
.lb-pl-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin: 0; padding: 0; list-style: none; }
.lb-pl-list > li { border-top: 1px solid var(--line); }
.lb-pl-link { display: flex; align-items: flex-start; gap: 12px; height: 100%; box-sizing: border-box; padding: 11px 6px 12px; text-decoration: none; color: var(--bone); }
.lb-pl-link .lb-realmdot-mark { position: static; flex: none; margin: 4px 0 0; width: 14px; height: 14px; border-width: 2px; }
.lb-pl-link:hover { background: rgba(var(--gold-rgb), 0.09); }
.lb-pl-link:hover .lb-pl-name { color: var(--gold); }
.lb-pl-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lb-pl-name { font-family: var(--font-heading); font-size: calc(1.0625rem * var(--text-scale)); line-height: 1.3; }
.lb-pl-sum { font-size: calc(0.875rem * var(--text-scale)); line-height: 1.5; color: var(--frost); }
.lb-pl-link.is-unplaced .lb-realmdot-mark { border-style: dashed; background: transparent; }
.lb-pl-group[hidden], .lb-pl-list > li[hidden], .lb-pl-hook[hidden] { display: none; }
@media (max-width: 900px) { .lb-pl-list { grid-template-columns: 1fr; } }
/* Yggdrasil explorer: the map beside a panel for the chosen world (lorebook-explore.js), the article below it */
.lb-ex-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 0 24px; align-items: start; }
.lb-ex-mapbox { grid-column: 1; grid-row: 1; margin: 0; }
.lb-ex-under { grid-column: 1; grid-row: 2; padding-top: 12px; }
.lb-ex-side { grid-column: 2; grid-row: 1; align-self: stretch; contain: size; box-sizing: border-box; overflow-y: auto; padding: 20px 22px 22px; background: var(--lb-card-bg); border: var(--card-border); border-radius: var(--card-radius); scrollbar-width: thin; }
.lb-ex-mapbox .lb-realmdot { width: 26px; height: 26px; }
.lb-ex-mapbox .lb-realmdot[data-tier="0"] { width: 30px; height: 30px; }
.lb-ex-mapbox .lb-realmdot[data-tier="1"] .lb-realmdot-mark { width: 17px; height: 17px; margin: -8.5px 0 0 -8.5px; border-width: 2px; }
.lb-ex-mapbox .lb-realmdot[data-tier="2"] .lb-realmdot-mark { width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; border-width: 2px; }
.lb-ex-mapbox .lb-realmdot:hover, .lb-ex-mapbox .lb-realmdot:focus-visible, .lb-ex-mapbox .lb-realmdot.is-open { z-index: 8; }
.lb-ex-mapbox .lb-realmdot[aria-current] .lb-realmdot-mark { box-shadow: 0 0 0 2px var(--lbd-halo), 0 0 0 5px var(--gold); }
.lb-ex-mapbox .lb-realmdot.is-ping .lb-realmdot-mark { box-shadow: 0 0 0 2px var(--lbd-halo), 0 0 0 6px var(--gold); }
.lb-ex-side:focus { outline: none; }
.lb-ex-pane[hidden], .lb-ex-detail[hidden], .lb-ex-panel[hidden] { display: none; }
.lb-ex-name { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-family: var(--font-heading); font-size: calc(1.5rem * var(--text-scale)); font-weight: 600; line-height: 1.2; color: var(--bone); }
.lb-ex-name .lb-realmdot-mark, .lb-ex-chip .lb-realmdot-mark, .lb-ex-world .lb-realmdot-mark, .lb-ex-card-t .lb-realmdot-mark { position: static; flex: none; width: 16px; height: 16px; margin: 0; border-width: 2px; }
.lb-ex-tag { margin: 0 0 10px; font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); letter-spacing: 0.04em; text-transform: uppercase; color: var(--gold); }
.lb-ex-intro { margin: 0 0 14px; font-size: calc(0.9375rem * var(--text-scale)); line-height: 1.65; color: var(--bone); }
.lb-ex-back { margin: 0 0 8px; }
.lb-ex-link { padding: 0; background: none; border: 0; font: inherit; font-size: calc(0.875rem * var(--text-scale)); color: var(--gold); text-decoration: underline; cursor: pointer; min-height: 32px; }
.lb-ex-link:hover { color: var(--bone); }
.lb-ex-sub { display: flex; align-items: baseline; gap: 8px; margin: 16px 0 6px; padding-bottom: 4px; border-bottom: 1px solid var(--line); font-family: var(--font-ui); font-size: calc(0.8125rem * var(--text-scale)); font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--frost); }
.lb-ex-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.lb-ex-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; box-sizing: border-box; padding: 4px 12px 4px 10px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--bone); font-size: calc(0.875rem * var(--text-scale)); line-height: 1.25; }
.lb-ex-chip:hover, .lb-ex-chip.is-hit { border-color: var(--gold); background: rgba(var(--gold-rgb), 0.12); color: var(--gold); }
.lb-ex-chip .lb-realmdot-mark { width: 12px; height: 12px; }
.lb-ex-chip.is-unplaced .lb-realmdot-mark { border-style: dashed; background: transparent; }
.lb-ex-more { margin: 18px 0 0; font-size: calc(1rem * var(--text-scale)); }
.lb-ex-worlds { display: grid; gap: 4px; margin: 0 0 6px; padding: 0; list-style: none; }
.lb-ex-world { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; box-sizing: border-box; padding: 6px 10px; background: transparent; border: 1px solid transparent; border-radius: var(--card-radius-sm, 3px); color: var(--bone); text-align: left; font: inherit; cursor: pointer; }
.lb-ex-world:hover { background: rgba(var(--gold-rgb), 0.1); border-color: var(--line); }
.lb-ex-world-t { display: flex; flex-direction: column; gap: 1px; }
.lb-ex-world-t strong { font-family: var(--font-heading); font-size: calc(1.0625rem * var(--text-scale)); font-weight: 600; }
.lb-ex-world-t span { font-size: calc(0.8125rem * var(--text-scale)); color: var(--frost); }
.lb-ex-detail { margin-top: 30px; }
.lb-ex-dhead { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: center; margin: 0 0 14px; }
.lb-ex-art { height: 170px; background-repeat: no-repeat; background-size: 330% auto; border: var(--card-border); border-radius: var(--card-radius); }
.lb-ex-dhead > div { text-align: left; }
.lb-ex-dname { margin: 0 0 6px; }
.lb-ex-tabs { display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 0 0 16px; border-bottom: 1px solid var(--line); }
.lb-ex-tabs [role=tab] { min-height: 44px; padding: 8px 16px; background: transparent; border: 0; border-bottom: 3px solid transparent; font-family: var(--font-ui); font-size: calc(0.9375rem * var(--text-scale)); color: var(--frost); cursor: pointer; }
.lb-ex-tabs [role=tab]:hover { color: var(--bone); }
.lb-ex-tabs [role=tab][aria-selected="true"] { color: var(--gold); border-bottom-color: var(--gold); }
.lb-ex-lede { margin: 0 0 18px; max-width: 62rem; font-size: calc(1.125rem * var(--text-scale)); line-height: 1.7; color: var(--bone); }
.lb-ex-panel .lb-sec { margin-top: 18px; }
.lb-ex-full { margin: 20px 0 0; }
.lb-ex-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; margin: 0 0 8px; padding: 0; list-style: none; }
.lb-ex-card { padding: 14px 16px 12px; background: var(--lb-card-bg); border: var(--card-border); border-radius: var(--card-radius-sm, 3px); scroll-margin-top: 90px; }
.lb-ex-card.is-hit { border-color: var(--gold); box-shadow: 0 0 0 2px rgba(var(--gold-rgb), 0.35); }
.lb-ex-card-t { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-family: var(--font-heading); font-size: calc(1.0625rem * var(--text-scale)); font-weight: 600; color: var(--bone); }
.lb-ex-card-t .is-unplaced { border-style: dashed; background: transparent; }
.lb-ex-card p { margin: 0 0 8px; font-size: calc(0.9375rem * var(--text-scale)); line-height: 1.6; color: var(--bone); }
.lb-ex-card-links { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: calc(0.875rem * var(--text-scale)); }
.lb-ex-nodot { color: var(--frost); }
@media (max-width: 1000px) {
  .lb-ex-grid { grid-template-columns: 1fr; }
  .lb-ex-mapbox, .lb-ex-side, .lb-ex-under { grid-column: 1; }
  .lb-ex-mapbox { grid-row: 1; }
  .lb-ex-side { grid-row: 2; contain: none; margin-top: 16px; overflow: visible; }
  .lb-ex-under { grid-row: 3; }
  .lb-ex-dhead { grid-template-columns: 1fr; }
  .lb-ex-art { height: 150px; }
  .lb-ex-cards { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .lb-ex-mapbox .lb-realmdot[data-tier="2"] { display: none; }
  .lb-ex-mapbox .lb-realmdot[data-tier="1"] .lb-realmdot-mark { width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px; }
  .lb-ex-mapbox .lb-realmdot[data-tier="0"] .lb-realmdot-mark { width: 18px; height: 18px; margin: -9px 0 0 -9px; }
}


@media (max-width: 1000px) {
  .lb-suits { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 36px; }
}
@media (max-width: 900px) {
  .lb-specimen { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .lb-specimen > li:nth-child(5) { border-left: 0; }
  .lb-specimen > li:nth-child(n+5) { border-top: 1px solid var(--line); }
  .lb-index--two { column-count: 1; }
  .lb-entries { grid-template-columns: 1fr; }
  .lb-part { grid-template-columns: 48px minmax(0, 1fr); }
  .lb-part-text { grid-column: 2; }
  .lb-key--four { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .lb-suits { grid-template-columns: 1fr; }
  .lb-spec-glyph { font-size: calc(2.125rem * var(--text-scale)); }
}

/* the zoomable map (lorebook-map.js); without the script the picture and its percent-positioned dots are shown as before */
.lb-realmmap-wrap.is-js { line-height: normal; }
.lb-zoom-vp { position: relative; width: 100%; height: clamp(380px, 78vh, 920px); overflow: hidden; background: var(--lb-card-bg); border: var(--card-border); border-radius: var(--card-radius); cursor: grab; touch-action: pan-x pan-y; user-select: none; -webkit-user-select: none; }
.lb-zoom-vp.is-dragging { cursor: grabbing; }
.lb-zoom-vp:focus-visible { outline: 3px solid var(--focus-ring, var(--gold)); outline-offset: 3px; }
.lb-zoom-layer { position: absolute; left: 0; top: 0; transform-origin: 0 0; will-change: transform; }
.lb-realmmap .lb-zoom-layer img { display: block; width: 100%; max-width: none; height: 100%; border: 0; border-radius: 0; pointer-events: none; -webkit-user-drag: none; }
.lb-zoom-vp .lb-realmdot.is-off { display: none; }
.lb-zoom-vp .lb-realmdot.is-left .lb-realmcard { left: -12px; margin-left: 0; }
.lb-zoom-vp .lb-realmcard { cursor: default; }
.lb-zoom-ui { position: absolute; top: 10px; right: 10px; z-index: 20; display: flex; flex-direction: column; gap: 6px; }
.lb-zoom-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; width: 44px; height: 44px; padding: 0; border: 1px solid var(--line); border-radius: var(--btn-radius); background: var(--lb-pop-bg); color: var(--bone); font: inherit; cursor: pointer; box-shadow: 0 1px 4px rgba(var(--midnight-rgb), .25); }
.lb-zoom-btn:hover:not(:disabled) { border-color: var(--gold); color: var(--gold); }
.lb-zoom-btn:disabled { opacity: .4; cursor: default; }
.lb-zoom-btn:focus-visible, .lb-zoom-more:focus-visible { outline: 3px solid var(--focus-ring, var(--gold)); outline-offset: 2px; }
.lb-zoom-more { position: absolute; z-index: 6; transform: translate(-50%, -50%); min-width: 26px; height: 26px; padding: 0 7px; border: 2px solid var(--lbd-ring); border-radius: 13px; background: var(--lbd-halo); color: var(--lbd-ring); font: 700 12px/1 var(--font-ui); cursor: pointer; }
.lb-zoom-more:hover { background: var(--lbd-gods); }
.lb-zoom-more[hidden] { display: none; }
.lb-zoom-hint { position: absolute; left: 10px; bottom: 10px; z-index: 20; max-width: calc(100% - 80px); margin: 0; padding: 6px 10px; border-radius: var(--btn-radius); background: var(--lb-pop-bg); color: var(--bone); font: 400 calc(0.8125rem * var(--text-scale))/1.35 var(--font-ui); line-height: 1.35; pointer-events: none; opacity: 0; transition: opacity .25s; border: 1px solid var(--line); }
.lb-zoom-hint.is-on { opacity: 1; }
.lb-realmmap-wrap.is-full { position: fixed; inset: 0; z-index: 2000; margin: 0; background: var(--lb-pop-bg); }
.lb-realmmap-wrap:fullscreen { background: var(--lb-pop-bg); }
.lb-realmmap-wrap.is-full .lb-zoom-vp { height: 100%; border: 0; border-radius: 0; touch-action: none; }
html.lb-zoom-lock { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .lb-zoom-hint { transition: none; } }
@media (max-width: 700px) { .lb-zoom-vp { height: min(100vw, 78vh); min-height: 320px; } .lb-zoom-btn { width: 30px; height: 30px; } }

.lb-head .lb-lead + .lb-lead { margin-top: 0.9em; }
.lb-ex-storylink { font-weight: 700; text-decoration: underline; text-underline-offset: 0.2em; }

.lb-body ul, .lb-body ol { margin: 0 0 1em; padding-left: 1.6em; }
.lb-body li { margin: 0 0 0.35em; }
