/* Light Atlas readability: body 20, secondary 16, objective 28, progress 36.
   Cards keep their original artwork; only the surrounding interface reflows. */
body.world-game.edge-to-edge-map {
  --reading-body:1.25rem; --reading-label:1rem; --reading-action:1.25rem;
  --reading-heading:1.75rem; --reading-number:2.25rem;
}
.world-game.edge-to-edge-map :is(dialog:not(.restart-dialog),.event-sheet) {
  font-size:var(--reading-body); line-height:1.5;
}
.world-game.edge-to-edge-map :is(dialog:not(.restart-dialog),.event-sheet) :is(.button,button.equipment-equip,button.shop-buy,.fighter-card-action button) {
  font-size:var(--reading-action); line-height:1.3; min-height:48px; white-space:normal;
}
.world-game.edge-to-edge-map :is(.city-service p,.shop-card-caption,.shop-card-reason,.shop-item-identity,.shop-item-details,.equipment-rules,.equipment-activation,.equipment-requirement,.local-artifact-caption,.synergy-description,.synergy-hint,.formation-role,.fighter-card-details,.auto-party-overview>p,.potion-target,.scouted-enemy,.site-preview p,.place-card p) {
  font-size:var(--reading-body); line-height:1.5; max-width:65ch; overflow-wrap:break-word;
}
.world-game.edge-to-edge-map :is(.city-service small,.catalog-heading>span,.exchange-state,.exchange-terms,.exchange-equation small,.fighter-card-state,.fighter-card-reason,.equipment-section-heading>span,.equipment-slot>small,.equipment-slot-empty,.equipment-item-name,.equipment-personal-label>span,.shop-card-info small,.archetype-heading>span) {
  font-size:var(--reading-label); line-height:1.4;
}
.world-game.edge-to-edge-map :is(.shop-card-name,.city-service h4,.equipment-slot-name,.equipment-identity h3,.synergy-name) {font-size:var(--reading-action);line-height:1.3}
.world-game.edge-to-edge-map .market-dialog .city-service p {font-size:var(--reading-body);line-height:1.5}
.world-game.edge-to-edge-map .arsenal-workspace :is(.equipment-slot>small,.equipment-slot-empty,.equipment-item-name,.equipment-section-heading>span) {font-size:var(--reading-label);line-height:1.35}
.world-game.edge-to-edge-map .arsenal-workspace :is(.equipment-slot-name,.equipment-personal-slot>span) {font-size:1.125rem;line-height:1.3}
.world-game.edge-to-edge-map .equipment-grid {grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}
.world-game.edge-to-edge-map .game-toast {font-size:1.5rem;line-height:1.4;padding:16px 24px;max-width:min(680px,calc(100vw - 32px))}
.world-game.edge-to-edge-map .map-hud-resource {font-size:var(--reading-number);width:176px;height:76px}
.world-game.edge-to-edge-map .map-hud-resource small {font-size:1.25rem}
.world-game.edge-to-edge-map .hud-quest-ready {font-size:1.125rem;min-width:30px;height:30px}

/* All quest actions share a viewport-bound shell, not a second scrolling page. */
.world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog) {
  position:fixed;left:calc(var(--visible-left,0px) + var(--visible-width,100vw)/2);
  top:calc(var(--visible-top,0px) + var(--visible-height,100dvh)/2);right:auto;bottom:auto;
  translate:-50% -50%;margin:0;transform:none;box-sizing:border-box;
  width:min(960px,calc(var(--visible-width,100vw) - 24px));
  height:min(780px,calc(var(--visible-height,100dvh) - 24px));
  max-width:none;max-height:none;padding:20px;border:8px solid transparent;
  border-image:var(--atlas-frame) 120 180 fill / 14px / 0 stretch;
  background:#f6e7c7 var(--atlas-paper);overflow:hidden;
}
.world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog)[open] {display:flex;flex-direction:column;gap:12px}
.world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog)>.dialog-header {
  position:static;flex:none;min-height:48px;padding:0 0 10px;margin:0;gap:12px;background:none;
}
.world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog)>.dialog-header h2 {
  padding:0;width:auto;text-align:left;font-size:2rem;text-transform:none;line-height:1.2;margin:0;
}
.world-game.edge-to-edge-map dialog.quest-journal-dialog>.dialog-header>.icon-button {position:static;margin-left:auto;order:2}
.world-game.edge-to-edge-map .quest-reveal-dialog :is(.quest-flight,.quest-flip) {flex:1;min-height:0;height:100%;width:100%}
.world-game.edge-to-edge-map .quest-reveal-dialog .quest-card-front {
  min-height:0;height:100%;max-height:none;overflow:hidden;padding:0;border:0;background:none;box-shadow:none;
}
.world-game.edge-to-edge-map .quest-reveal-dialog .quest-card-back {min-height:0;height:100%}
.world-game.edge-to-edge-map .quest-reveal-dialog .quest-draw-deck {display:none}
.world-game.edge-to-edge-map .quest-reveal-dialog .site-offer,
.world-game.edge-to-edge-map .quest-journal-list>.quest {
  display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.95fr);grid-template-rows:minmax(0,1fr);
  align-items:stretch;gap:24px;width:100%;height:100%;min-height:0;padding:0;margin:0;border:0;background:none;
}
.world-game.edge-to-edge-map .quest-reveal-dialog .quest-card-front:has(.site-offer) .site-offer>.quest-illustration,
.world-game.edge-to-edge-map .quest-journal-list .quest-illustration {
  width:100%;height:100%;min-height:0;min-width:0;max-height:100%;max-width:100%;
  object-fit:contain;aspect-ratio:auto;margin:0;align-self:stretch;background:none;border-radius:8px;
}
.world-game.edge-to-edge-map .quest-reveal-dialog .site-offer>.quest-card-footer,
.world-game.edge-to-edge-map .quest-journal-list .quest-card-footer {
  display:flex;flex-direction:column;justify-content:safe center;min-width:0;min-height:0;
  gap:20px;margin:0;padding:8px 0;border:0;background:none;
  overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;
}
.world-game.edge-to-edge-map :is(.quest-live-objective,.quest-journal-objective) {
  font:600 var(--reading-heading)/1.2 Georgia,serif;color:#183b30;text-wrap:balance;margin:0;overflow-wrap:break-word;
}
.world-game.edge-to-edge-map .quest-offer-footer .quest-reward-summary {padding:18px 0;margin:0;gap:12px 0}
.world-game.edge-to-edge-map .quest-offer-footer .quest-reward-token {padding:0 4px}
.world-game.edge-to-edge-map .quest-offer-footer .quest-reward-token dt {font-size:var(--reading-label);line-height:1.3}
.world-game.edge-to-edge-map .quest-offer-footer .quest-reward-token strong {font-size:var(--reading-number)}
.world-game.edge-to-edge-map .quest-offer-footer .quest-artifact-bonus strong {font-size:1.25rem;line-height:1.3}
.world-game.edge-to-edge-map .quest-offer-footer :is(.quest-artifact-bonus small,.quest-capacity-note) {font-size:var(--reading-label);line-height:1.4}
.world-game.edge-to-edge-map .quest-card-footer>.button {
  flex:none;position:sticky;bottom:0;z-index:1;width:100%;min-height:54px;padding:12px;
  background:#234b3a;border:1px solid #92703c;color:#fff2d2;
}
.world-game.edge-to-edge-map .quest-reveal-dialog .quest-card-footer>.button.quest-accept {font-size:var(--reading-action);min-height:54px}
.world-game.edge-to-edge-map .quest-offer-footer .quest-reward-token dd {flex-wrap:wrap}
.world-game.edge-to-edge-map .arsenal-workspace .local-artifact-caption :is(p,strong) {font-size:1.125rem;line-height:1.5}
.world-game.edge-to-edge-map .arsenal-workspace :is(.equipment-personal-intro,.equipment-personal-fighter>strong,.equipment-personal-fighter>small,.equipment-personal-slot>small,.equipment-item>small,.equipment-supply figcaption,.equipment-activation>span,.equipment-requirement>span,.equipment-clan-gem small) {font-size:1rem;line-height:1.4}
.world-game.edge-to-edge-map .arsenal-workspace :is(.equipment-filters button,.utility-row .button,.equipment-equipped-status,.equipment-activation) {font-size:1.125rem;line-height:1.3;min-height:48px}
.world-game.edge-to-edge-map .arsenal-workspace .equipment-detail-action {position:sticky;bottom:0;z-index:2;background:#f6e7c7;padding-block:8px;margin-top:auto}
.world-game.edge-to-edge-map .quest-reveal-dialog .site-reward {font-size:var(--reading-body);line-height:1.5;margin:0;padding:0;border:0}
.world-game.edge-to-edge-map .quest-reveal-dialog .site-offer small {font-size:var(--reading-label)}
.world-game.edge-to-edge-map .quest-art-region {display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;min-width:0;gap:8px}
.world-game.edge-to-edge-map .quest-reveal-dialog .quest-art-region>.quest-illustration {width:100%;height:100%;min-height:0;max-height:100%;object-fit:contain;margin:0;aspect-ratio:auto}
.world-game.edge-to-edge-map .quest-art-region .local-artifact-caption {margin:0;font-size:1rem;line-height:1.4}
.world-game.edge-to-edge-map .quest-art-region .local-artifact-caption :is(p,strong) {font-size:1rem;line-height:1.4}
.world-game.edge-to-edge-map .quest-journal-dialog .collection {
  display:flex;flex:1;flex-direction:column;gap:14px;overflow:hidden;min-height:0;padding:0;max-height:none;
}
.world-game.edge-to-edge-map .quest-journal-list {flex:1;min-height:0;display:block}
.world-game.edge-to-edge-map .quest-journal-list>.quest[hidden] {display:none}
.world-game.edge-to-edge-map .quest-journal-list>.quest:last-child {padding:0}
.world-game.edge-to-edge-map .quest-journal-list .quest-status {font-size:1.5rem;line-height:1.3;font-weight:600;gap:8px}
.world-game.edge-to-edge-map .quest-journal-list .quest-map-hint {font-size:1rem;font-weight:400}
.world-game.edge-to-edge-map .quest-journal-list .quest-reward {font-size:var(--reading-body);line-height:1.5;margin:0}
.world-game.edge-to-edge-map .quest-journal-list .button {font-size:var(--reading-action)}
.world-game.edge-to-edge-map .quest-journal-dialog .quest-count {font-size:var(--reading-label);margin:0;padding:0;border:0}
.quest-page-nav {display:flex;gap:10px;align-items:center;justify-content:center;flex:none}
.quest-page-nav button {min-width:48px;min-height:48px;font:600 1.25rem Georgia,serif;color:#183b30;background:#ead7ae;border:1px solid #92703c;border-radius:8px}
.quest-page-nav button[aria-pressed=true] {background:#234b3a;color:#fff2d2}
.quest-page-nav button.is-ready {text-decoration:underline;text-underline-offset:5px}
.world-game.edge-to-edge-map .quest-journal-dialog:has(.journal-empty) {height:min(440px,calc(var(--visible-height,100dvh) - 24px))}
.world-game.edge-to-edge-map .journal-empty {min-height:0;flex:1}
.world-game.edge-to-edge-map .journal-empty p {font-size:var(--reading-body)}

/* Recruits keep their card + compact action row, now bounded by visible height. */
.world-game.edge-to-edge-map dialog.quest-reveal-dialog.recruit-reveal-dialog {
  width:min(460px,calc(var(--visible-width,100vw) - 24px),calc((var(--visible-height,100dvh) - 108px)*.667));
  height:auto;padding:10px;max-height:calc(var(--visible-height,100dvh) - 24px);
}
.world-game.edge-to-edge-map .recruit-reveal-dialog .recruit-decision .fighter-discovery {max-width:none}
.world-game.edge-to-edge-map .recruit-decision .fighter-card-action .button.recruit-accept {font-size:var(--reading-action);min-height:52px}
.world-game.edge-to-edge-map .recruit-decision .button.recruit-dismiss {height:52px}

/* Readable combat labels without reintroducing the removed name/round plaques. */
.battle-atlas :is(.enemy-info-button,.auto-details-toggle,.auto-continue) {font-size:1.125rem}
.battle-atlas .auto-hp-number {font-size:1.5rem}
.battle-atlas .auto-class-label {font-size:1.125rem}
.battle-atlas .auto-effect-badge {font-size:1.125rem;min-width:48px;min-height:48px}
.battle-atlas .auto-effect-badge small {font-size:1rem}
.battle-atlas .auto-unit-effects {max-height:60px}
.battle-atlas .auto-action-readout>strong,.battle-atlas .auto-action-amount {font-size:1.5rem}
.battle-atlas :is(.auto-fighter-inspector,#auto-battle-details) :is(p,li,span,button),.battle-atlas .auto-result :is(p,li,span,button) {font-size:1.125rem;line-height:1.5}
.battle-atlas .auto-result--atlas .auto-reward strong {font:700 2rem/1.1 AtlasLoot,Georgia,serif;color:#fff2d2;font-variant-numeric:tabular-nums}
.battle-atlas .auto-result--atlas .auto-reward span {font-size:1.125rem;line-height:1.3;color:#dce4cc}
.battle-atlas .auto-result--atlas .auto-result-cost {font-size:1rem;line-height:1.3}
.battle-atlas .auto-result--atlas .auto-continue {font:700 1.625rem/1.2 AtlasLoot,Georgia,serif}
.battle-atlas :is(.auto-fighter-inspector,#auto-battle-details) .auto-abilities {gap:20px}
.battle-atlas :is(.auto-fighter-inspector,#auto-battle-details) .auto-abilities strong {font:700 1.5rem/1.2 AtlasLoot,Georgia,serif}
.battle-atlas :is(.auto-fighter-inspector,#auto-battle-details) .auto-abilities strong small {font:400 1rem/1.4 system-ui,sans-serif;color:#60563e;margin-top:6px}
.world-game .app.immersive .event-sheet .battle-atlas .auto-fighter-inspector>header h3,.battle-atlas .auto-fighter-inspector>header h3 {font:700 2rem/1.15 AtlasLoot,Georgia,serif;text-wrap:balance;margin:0}
.battle-atlas .auto-fighter-inspector :is(.auto-abilities span,.auto-archetype-description,.auto-healing-budget) {max-width:70ch}
.battle-atlas :is(.auto-enemy-name,.auto-class-label,.auto-action-readout>strong,.enemy-info-button) {font-family:AtlasLoot,Georgia,serif;font-weight:700}

/* Adjacent parchment dialogs must not inherit pale text from the old dark UI. */
.world-game.edge-to-edge-map .potion-dialog .potion-target span {color:#183b30;font-variant-numeric:tabular-nums}
.world-game.edge-to-edge-map .potion-dialog .potion-picker>p {font-size:1.125rem;line-height:1.5;margin:0 0 16px}
.world-game.edge-to-edge-map :is(.potion-picker,.scouted-enemy)>small {font-size:1rem;line-height:1.5}
.world-game.edge-to-edge-map .potion-dialog .potion-target .button.primary {min-width:140px;max-width:164px;min-height:52px;padding:10px 12px;border:3px double #94713d;border-radius:12px;background:linear-gradient(#f5dfa9,#e4c68d);color:#183b30;font:700 1.375rem/1.2 AtlasLoot,Georgia,serif}
.world-game.edge-to-edge-map .potion-dialog .potion-target .button.primary:hover:enabled {background:#f5dfa9;filter:none}
.world-game.edge-to-edge-map .potion-dialog .potion-target .button.primary:active:enabled {background:#d9b574}
.world-game.edge-to-edge-map .potion-dialog .potion-target .button.primary:disabled {background:#e2d1b0;color:#6f644e;border-color:#b7a481;filter:none;opacity:1}
.world-game.edge-to-edge-map .scout-dialog .battle-time-note {background:#eddbb2;color:#183b30;border:1px solid #b39b6a;border-radius:10px;padding:12px 16px}
.world-game.edge-to-edge-map .scout-dialog .scouted-enemy .battle-time-note,.world-game.edge-to-edge-map .scout-dialog .battle-time-note p {color:#183b30;font-size:1.125rem;line-height:1.5}
.world-game.edge-to-edge-map .scout-dialog .scouted-enemy h3 {font:700 1.75rem/1.2 AtlasLoot,Georgia,serif;margin:0 0 8px}
.world-game.edge-to-edge-map .scout-dialog .scout-stats {font-size:1.125rem}
.world-game.edge-to-edge-map .scouted-enemy dd {font-size:1.125rem;line-height:1.5}
.world-game.edge-to-edge-map dialog:is(.potion-dialog,.scout-dialog,.market-dialog) .dialog-header h2 {font-family:AtlasLoot,Georgia,serif;font-weight:700}
.world-game.edge-to-edge-map .market-dialog :is(.shop-item-details p,.fighter-card-details .auto-abilities span,.fighter-card-details summary) {font-size:1.125rem;line-height:1.5}
.world-game.edge-to-edge-map .market-dialog .fighter-card-details .auto-abilities strong {font:700 1.375rem/1.25 AtlasLoot,Georgia,serif}
.world-game.edge-to-edge-map .market-dialog .fighter-card-details .auto-abilities small {font:400 1rem/1.4 system-ui,sans-serif}

:root[data-compact-viewport] .world-game.edge-to-edge-map {--reading-body:1.125rem;--reading-heading:1.5rem;--reading-number:1.875rem}
:root[data-compact-viewport] .world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog):not(.recruit-reveal-dialog) {padding:12px;gap:8px}
:root[data-compact-viewport] .world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog)>.dialog-header {padding-bottom:6px}
:root[data-compact-viewport] .world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog)>.dialog-header h2 {font-size:1.5rem}
:root[data-compact-viewport] .world-game.edge-to-edge-map .quest-reveal-dialog .site-offer,
:root[data-compact-viewport] .world-game.edge-to-edge-map .quest-journal-list>.quest {
  grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(60px,1fr) auto;gap:10px;
}
:root[data-compact-viewport] .world-game.edge-to-edge-map :is(.quest-reveal-dialog .site-offer>.quest-card-footer,.quest-journal-list .quest-card-footer) {padding:0;gap:10px;max-height:70vh}
:root[data-compact-viewport] .world-game.edge-to-edge-map .quest-offer-footer .quest-reward-summary {padding:10px 0;gap:4px 0;grid-template-columns:repeat(3,minmax(0,1fr))}
:root[data-compact-viewport] .world-game.edge-to-edge-map .quest-offer-footer .quest-artifact-bonus strong {font-size:1.125rem}
:root[data-compact-viewport] .world-game.edge-to-edge-map .quest-journal-dialog .collection {gap:8px}
:root[data-compact-viewport] .world-game.edge-to-edge-map .quest-journal-list .quest-status {font-size:1.25rem}
@media(max-width:700px) {
  .world-game.edge-to-edge-map .map-hud-resource {width:auto;min-width:86px;height:58px;padding:8px 10px;font-size:1.75rem;gap:4px}
  .world-game.edge-to-edge-map .map-hud-resource small {font-size:1rem}
  .world-game.edge-to-edge-map .map-hud-resources {gap:4px}
  .world-game.edge-to-edge-map .map-hud-resource .icon {width:20px;height:20px}
  .world-game.edge-to-edge-map .game-toast {font-size:1.25rem;padding:12px 16px}
  .battle-atlas .auto-hp-number {font-size:1.125rem}
  .battle-atlas .auto-class-label {font-size:1rem}
  .battle-atlas .auto-action-readout>strong,.battle-atlas .auto-action-amount {font-size:1.125rem}
}
@media(max-width:360px) {
  :root[data-compact-viewport] .world-game.edge-to-edge-map .quest-offer-footer .quest-reward-token strong {font-size:1.625rem}
  :root[data-compact-viewport] .world-game.edge-to-edge-map .quest-offer-footer .quest-artifact-bonus strong {font-size:1rem}
  :root[data-compact-viewport] .world-game.edge-to-edge-map .quest-reveal-dialog .site-offer>.quest-card-footer {gap:8px}
  :root[data-compact-viewport] .world-game.edge-to-edge-map .quest-offer-footer .quest-reward-summary {padding:8px 0}
}
@media(max-height:500px) and (min-width:700px) {
  .world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog) {padding:10px;gap:6px}
  .world-game.edge-to-edge-map .quest-offer-footer .quest-reward-summary {padding:8px 0}
  .world-game.edge-to-edge-map .quest-reveal-dialog .site-offer>.quest-card-footer {gap:8px;padding:0}
  .world-game.edge-to-edge-map .quest-live-objective {font-size:1.5rem}
  .world-game.edge-to-edge-map .quest-reveal-dialog .site-offer {grid-template-columns:minmax(0,.7fr) minmax(0,1fr)}
  .world-game.edge-to-edge-map .quest-offer-footer .quest-reward-token strong {font-size:1.875rem}
  .world-game.edge-to-edge-map .quest-offer-footer .quest-artifact-bonus strong {font-size:1.125rem}
  .world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog)>.dialog-header {min-height:44px;padding-bottom:4px}
  .world-game.edge-to-edge-map dialog:is(.quest-reveal-dialog,.quest-journal-dialog):not(.restart-dialog)>.dialog-header h2 {font-size:1.5rem}
}

/* A revealed blue card is the find itself, not a full-size parchment page.
   Scope by its unique dialog so the journal, shop and recruit keep their layouts. */
@font-face {
  font-family:AtlasLoot;src:url('./assets/fonts/cormorant-garamond/cormorant-garamond-variable.ttf') format('truetype');
  font-style:normal;font-weight:300 700;font-display:swap;
}
#game-dialog.blue-card-reveal-dialog {
  --blue-ground:#14271f; --blue-ink:#fff2d2; --blue-muted:#dce4cc;
  width:min(880px,calc(var(--visible-width,100vw) - 24px));
  height:min(780px,calc(var(--visible-height,100dvh) - 24px));
  padding:16px;border:3px double #bfa063;border-image:none;border-radius:14px;
  background:var(--blue-ground);color:var(--blue-ink);overflow:hidden;box-shadow:none;
}
#game-dialog.blue-card-reveal-dialog[open] {gap:0}
#game-dialog.blue-card-reveal-dialog:has(.quest-offer-footer) {
  width:min(440px,calc(var(--visible-width,100vw) - 24px));
  height:min(900px,calc(var(--visible-height,100dvh) - 24px));padding:12px;
}
#game-dialog.blue-card-reveal-dialog:has(.quest-offer-footer) .site-offer {
  grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:12px;
}
#game-dialog.blue-card-reveal-dialog:has(.blue-loot-offer) {
  width:min(440px,calc(var(--visible-width,100vw) - 24px));
  height:min(820px,calc(var(--visible-height,100dvh) - 24px));
  padding:12px;
}
:root[data-compact-viewport]:not([data-short-viewport]) #game-dialog.blue-card-reveal-dialog:has(.blue-loot-offer) {
  height:min(820px,calc(var(--visible-height,100dvh) - 24px),calc((var(--visible-width,100vw) - 54px)*1.5 + 240px));
}
#game-dialog.blue-card-reveal-dialog :is(.quest-flight,.quest-flip,.quest-card-front) {
  min-width:0;min-height:0;max-height:none;height:100%;
}
#game-dialog.blue-card-reveal-dialog :is(.quest-flight,.quest-flip) {overflow:visible}
#game-dialog.blue-card-reveal-dialog .quest-card-front {overflow:hidden}
#game-dialog.blue-card-reveal-dialog .quest-card-front {background:none;border:0;border-radius:0;padding:0;box-shadow:none}
#game-dialog.blue-card-reveal-dialog .site-offer {gap:18px}
#game-dialog.blue-card-reveal-dialog .blue-loot-offer {
  --loot-heading:2.25rem;--loot-rule:1.625rem;--loot-action:1.5rem;--loot-note:1.25rem;
  grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:14px;
}
#game-dialog.blue-card-reveal-dialog .quest-art-region {
  grid-template-rows:minmax(0,1fr);gap:0;overflow:hidden;
}
#game-dialog.blue-card-reveal-dialog .quest-illustration {
  display:block;width:100%;height:100%;max-width:100%;max-height:100%;min-height:0;
  object-fit:contain;aspect-ratio:auto;background:none;border-radius:8px;margin:0;
}
#game-dialog.blue-card-reveal-dialog .quest-card-footer {
  padding:0;margin:0;gap:14px;background:none;border:0;color:var(--blue-ink);
  max-height:none;overflow:visible;justify-content:center;
}
#game-dialog.blue-card-reveal-dialog .loot-copy {
  display:grid;gap:10px;min-width:0;min-height:0;max-width:38ch;margin-inline:auto;width:100%;padding-block:3px;
  text-align:center;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bfa063 #14271f;
}
#game-dialog.blue-card-reveal-dialog .local-artifact-caption {margin:0;gap:6px;color:var(--blue-ink)}
#game-dialog.blue-card-reveal-dialog :is(.local-artifact-caption>strong,.site-reward,.quest-live-objective) {
  color:var(--blue-ink);font:600 24px/1.2 Georgia,serif;text-wrap:balance;
}
#game-dialog.blue-card-reveal-dialog :is(.local-artifact-caption[lang="ru"],.artifact-rules-caption)>p {
  color:var(--blue-muted);font:400 17px/1.4 system-ui,sans-serif;margin:0;
}
#game-dialog.blue-card-reveal-dialog :is(small,.quest-capacity-note,.quest-reward-token dt,.quest-artifact-bonus small) {
  color:var(--blue-muted);font-size:16px;line-height:1.35;
}
#game-dialog.blue-card-reveal-dialog :is(.quest-reward-token dd,.quest-reward-token strong,.quest-artifact-bonus strong,.quest-artifact-bonus>.icon) {color:var(--blue-ink)}
#game-dialog.blue-card-reveal-dialog :is(.quest-reward-token,.quest-artifact-bonus) .icon {color:#e4c68d}
#game-dialog.blue-card-reveal-dialog .quest-reward-summary {border-color:#8d794e;padding-block:12px}
#game-dialog.blue-card-reveal-dialog .quest-reward-token+.quest-reward-token {border-color:#8d794e}
#game-dialog.blue-card-reveal-dialog .quest-card-footer>.button {
  position:static;align-self:center;flex:none;width:auto;min-width:180px;max-width:100%;
  min-height:48px;padding:10px 24px;border:1px solid #e2c083;border-image:none;border-radius:7px;
  background:#e4c68d;color:#172b21;box-shadow:none;font:700 18px/1.3 system-ui,sans-serif;
}
#game-dialog.blue-card-reveal-dialog .quest-card-footer>.button:hover:not(:disabled) {background:#f2dca9;color:#172b21;filter:none}
#game-dialog.blue-card-reveal-dialog .quest-card-footer>.button:active:not(:disabled) {background:#cdb079}
#game-dialog.blue-card-reveal-dialog .quest-card-footer>.button:focus-visible {outline:3px solid #fff2d2;outline-offset:3px}
#game-dialog.blue-card-reveal-dialog .quest-card-footer>.button:disabled {background:#35483a;color:#dae0ce;border-color:#82917b;opacity:1}
#game-dialog.blue-card-reveal-dialog .quest-artifact-bonus {padding:0;margin:0}

/* A title, a short rule, one action. Only unusually long legacy rules scroll;
   the artwork yields space first and the collect button never joins the scroller. */
#game-dialog.blue-card-reveal-dialog .blue-loot-offer .quest-card-footer {
  min-height:0;max-height:calc(var(--visible-height,100dvh) - 144px);gap:16px;padding:0 6px 6px;
}
#game-dialog.blue-card-reveal-dialog .blue-loot-offer .local-artifact-caption {
  gap:10px;text-align:center;
}
#game-dialog.blue-card-reveal-dialog .blue-loot-offer :is(.local-artifact-caption>strong,.site-reward) {
  font:700 var(--loot-heading)/1.1 AtlasLoot,Georgia,serif;
  text-wrap:balance;overflow-wrap:break-word;
}
#game-dialog.blue-card-reveal-dialog .blue-loot-offer :is(.local-artifact-caption[lang="ru"],.artifact-rules-caption)>p {
  font:600 var(--loot-rule)/1.25 AtlasLoot,Georgia,serif;
  text-wrap:balance;overflow-wrap:break-word;letter-spacing:.005em;
}
#game-dialog.blue-card-reveal-dialog .blue-loot-offer .artifact-rarity {
  font:600 var(--loot-note)/1.3 AtlasLoot,Georgia,serif;color:var(--blue-muted);
}
#game-dialog.blue-card-reveal-dialog .artifact-rules-caption[lang="en"]>p {
  white-space:pre-line;
}
#game-dialog.blue-card-reveal-dialog .blue-loot-offer .loot-copy>small {
  font:600 var(--loot-note)/1.3 AtlasLoot,Georgia,serif;text-wrap:balance;
}
#game-dialog.blue-card-reveal-dialog .blue-loot-offer .loot-collect {
  font:700 var(--loot-action)/1.2 AtlasLoot,Georgia,serif;min-height:52px;min-width:min(180px,100%);padding:10px 28px;
}
#game-dialog.blue-card-reveal-dialog .loot-copy:focus-visible {outline:2px solid #bfa063;outline-offset:-2px}

/* Separate the amount from its label: supplies are not one long sentence. */
#game-dialog.blue-card-reveal-dialog .loot-rewards {
  display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:0;
  width:100%;margin:0;padding:12px 0;border-block:1px solid #8d794e;text-align:center;
}
#game-dialog.blue-card-reveal-dialog .loot-reward {display:flex;flex-direction:column;gap:4px;min-width:0;padding-inline:10px}
#game-dialog.blue-card-reveal-dialog .loot-reward+.loot-reward {border-inline-start:1px solid #8d794e}
#game-dialog.blue-card-reveal-dialog .loot-reward dt {font:600 var(--loot-rule)/1.1 AtlasLoot,Georgia,serif;color:var(--blue-muted);text-wrap:balance;overflow-wrap:break-word}
#game-dialog.blue-card-reveal-dialog .loot-reward dd {order:-1;display:flex;justify-content:center;align-items:center;gap:8px;margin:0;color:var(--blue-ink)}
#game-dialog.blue-card-reveal-dialog .loot-reward strong {font:700 var(--loot-heading)/1.1 AtlasLoot,Georgia,serif;font-variant-numeric:tabular-nums}
#game-dialog.blue-card-reveal-dialog .loot-reward .icon {width:24px;height:24px;flex:none;color:#e4c68d}

/* The visible viewport tracks pinch zoom as well as browser orientation. */
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog:has(.blue-loot-offer) {
  width:min(760px,calc(var(--visible-width,100vw) - 24px));
}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .site-offer {
  grid-template-columns:minmax(0,.85fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:18px;
}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .blue-loot-offer {grid-template-columns:minmax(0,.75fr) minmax(0,1.1fr)}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-card-footer {gap:12px}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .blue-loot-offer .quest-card-footer {max-height:100%}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-reward-summary {padding-block:8px}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog:has(.quest-offer-footer) {padding:10px;width:min(620px,calc(var(--visible-width,100vw) - 24px))}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .site-offer:has(.quest-offer-footer) {
  grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:8px;
}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-offer-footer {gap:8px}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-offer-footer :is(small,.quest-reward-token dt) {font-size:14px;line-height:1.3}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-reward-token strong {font-size:26px}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-artifact-bonus strong {font-size:16px;line-height:1.3}
@media(max-width:380px) {
  #game-dialog.blue-card-reveal-dialog {padding:10px}
  #game-dialog.blue-card-reveal-dialog .site-offer {gap:10px}
  #game-dialog.blue-card-reveal-dialog .quest-card-footer {gap:10px}
  #game-dialog.blue-card-reveal-dialog .blue-loot-offer {--loot-heading:1.875rem;--loot-rule:1.5rem}
}

/* Cropped fallback art has a 5:4 silhouette, so its portrait shell must not
   reserve the height of a full card. Short landscape keeps its bounded columns. */
:root:not([data-short-viewport]) #game-dialog.blue-card-reveal-dialog:has(.blue-loot-offer .item-art--cropped-card) {
  height:auto;max-height:calc(var(--visible-height,100dvh) - 24px);
}
:root:not([data-short-viewport]) #game-dialog.blue-card-reveal-dialog:has(.blue-loot-offer .item-art--cropped-card) :is(.quest-flight,.quest-flip,.quest-card-front,.blue-loot-offer,.quest-art-region,.blue-loot-illustration) {
  height:auto;
}

/* One reading language for every map card. The opt-in event class excludes
   combat; shop, inventory and settings retain their independent layouts. */
#game-dialog:is(.quest-reveal-dialog,.quest-arrival-dialog,.quest-journal-dialog),
.world-game.edge-to-edge-map .app.immersive .event-sheet.map-card-event {
  --map-heading:2.25rem;--map-body:1.625rem;--map-label:1.25rem;--map-number:2.25rem;--map-action:1.5rem;
  --map-ink:#fff2d2;--map-muted:#dce4cc;--map-gold:#e4c68d;--map-ground:#14271f;
  font-family:AtlasLoot,Georgia,serif;color:var(--map-ink);background:var(--map-ground);
  border:3px double #bfa063;border-image:none;border-radius:14px;box-shadow:none;
  caret-color:var(--map-ink);scrollbar-color:#bfa063 var(--map-ground);scrollbar-width:thin;
}
#game-dialog:is(.quest-reveal-dialog,.quest-arrival-dialog,.quest-journal-dialog) .button:not(.icon-button),
.world-game.edge-to-edge-map .app.immersive .map-card-event .button:not(.icon-button) {
  font:700 var(--map-action)/1.2 AtlasLoot,Georgia,serif;
  position:static;align-self:center;flex:none;width:auto;max-width:100%;min-width:0;min-height:52px;
  padding:10px 24px;border:1px solid #e2c083;border-image:none;border-radius:7px;
  color:#172b21;background:var(--map-gold);box-shadow:none;text-align:center;white-space:normal;
}
#game-dialog:is(.quest-reveal-dialog,.quest-arrival-dialog,.quest-journal-dialog) .button:hover:not(:disabled),
.world-game.edge-to-edge-map .app.immersive .map-card-event .button:hover:not(:disabled) {background:#f2dca9;color:#172b21;filter:none}
#game-dialog:is(.quest-reveal-dialog,.quest-arrival-dialog,.quest-journal-dialog) .button:disabled,
.world-game.edge-to-edge-map .app.immersive .map-card-event .button:disabled {background:#35483a;color:#dae0ce;border-color:#82917b;opacity:1}
#game-dialog:is(.quest-reveal-dialog,.quest-arrival-dialog,.quest-journal-dialog) :is(button,a):focus-visible,
.world-game.edge-to-edge-map .app.immersive .map-card-event :is(button,a):focus-visible {outline:3px solid #fff2d2;outline-offset:3px}
#game-dialog:is(.quest-reveal-dialog,.quest-arrival-dialog,.quest-journal-dialog) .icon-button {color:var(--map-ink);border-color:#8d794e;background:transparent}

/* Offers and accepted quests share a copy region; actions never scroll away. */
#game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .quest-card-footer:has(.map-card-copy) {
  display:flex;flex-direction:column;justify-content:center;gap:16px;padding:0 6px 6px;
  min-height:0;max-height:100%;overflow:hidden;text-align:center;background:none;border:0;
}
#game-dialog.blue-card-reveal-dialog .quest-card-footer.quest-offer-footer {
  max-height:calc(var(--visible-height,100dvh) - 148px);gap:12px;padding:0 4px 4px;
}
#game-dialog .map-card-copy,.map-card-event .map-card-copy {
  display:grid;gap:14px;min-height:0;min-width:0;max-width:48ch;width:100%;margin-inline:auto;padding:3px 0;
  overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bfa063 #14271f;text-align:center;
}
#game-dialog .map-card-copy:focus-visible,.map-card-event .map-card-copy:focus-visible {outline:2px solid #bfa063;outline-offset:-2px}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer .quest-live-objective,
#game-dialog.quest-journal-dialog .quest-card-footer .quest-journal-objective {
  margin:0;color:var(--map-ink);font:700 var(--map-heading)/1.1 AtlasLoot,Georgia,serif;text-align:center;text-wrap:balance;
}
#game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .quest-reward-summary {
  width:100%;margin:0;padding:12px 0;gap:6px 0;border-color:#8d794e;
}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer .quest-reward-token {gap:4px;padding-inline:4px}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer .quest-reward-token dd {justify-content:center;color:var(--map-ink)}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer .quest-reward-token strong {font:700 var(--map-number)/1.1 AtlasLoot,Georgia,serif;white-space:normal;overflow-wrap:anywhere}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer .quest-reward-token dt {font:600 var(--map-label)/1.15 AtlasLoot,Georgia,serif;color:var(--map-muted)}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer .quest-artifact-bonus {gap:8px;padding:0;text-align:center;justify-content:center}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer .quest-artifact-bonus strong {font:700 var(--map-body)/1.15 AtlasLoot,Georgia,serif;color:var(--map-ink);text-wrap:balance}
#game-dialog.blue-card-reveal-dialog .quest-offer-footer :is(.quest-artifact-bonus small,.quest-capacity-note) {font:600 var(--map-label)/1.2 AtlasLoot,Georgia,serif;color:var(--map-muted);text-align:center;text-wrap:balance}
#game-dialog.quest-journal-dialog .quest-status {flex-direction:column;justify-content:center;align-items:center;gap:6px;font:700 var(--map-body)/1.2 AtlasLoot,Georgia,serif;color:var(--map-ink)}
#game-dialog.quest-journal-dialog .quest-map-hint {font:600 var(--map-label)/1.2 AtlasLoot,Georgia,serif;color:var(--map-muted)}
#game-dialog.quest-journal-dialog .quest-reward {font:600 var(--map-body)/1.25 AtlasLoot,Georgia,serif;color:var(--map-muted);text-wrap:balance;margin:0}
#game-dialog.quest-journal-dialog {
  position:fixed;left:calc(var(--visible-left,0px) + var(--visible-width,100vw)/2);top:calc(var(--visible-top,0px) + var(--visible-height,100dvh)/2);
  right:auto;bottom:auto;translate:-50% -50%;transform:none;margin:0;
  width:min(960px,calc(var(--visible-width,100vw) - 24px));height:min(780px,calc(var(--visible-height,100dvh) - 24px));
  max-width:none;max-height:none;padding:16px;
}
#game-dialog.quest-journal-dialog .dialog-header {border-color:#8d794e}
#game-dialog.quest-journal-dialog .dialog-header h2 {font:700 var(--map-heading)/1.1 AtlasLoot,Georgia,serif;color:var(--map-ink)}
#game-dialog.quest-journal-dialog .quest-count {font:600 var(--map-label)/1.2 AtlasLoot,Georgia,serif;color:var(--map-muted);text-align:center}
#game-dialog.quest-journal-dialog .quest-page-nav {padding:5px;gap:12px}
#game-dialog.quest-journal-dialog .quest-page-nav button {font:700 var(--map-action)/1.1 AtlasLoot,Georgia,serif;color:var(--map-ink);background:none;border-color:#bfa063}
#game-dialog.quest-journal-dialog .quest-page-nav button[aria-pressed="true"] {color:#172b21;background:var(--map-gold)}
#game-dialog.quest-journal-dialog .journal-empty {text-align:center;color:var(--map-muted)}
#game-dialog.quest-journal-dialog .journal-empty p {font:600 var(--map-body)/1.25 AtlasLoot,Georgia,serif;color:var(--map-muted);text-wrap:balance}
#game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .quest-art-fallback {min-width:0;min-height:0;overflow:auto;color:var(--map-ink);text-align:center}
#game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .quest-art-fallback p {font:600 var(--map-body)/1.25 AtlasLoot,Georgia,serif;color:var(--map-muted)}

/* Sealed cards do not disclose their contents. */
#game-dialog.quest-arrival-dialog {
  position:fixed;left:calc(var(--visible-left,0px) + var(--visible-width,100vw)/2);top:calc(var(--visible-top,0px) + var(--visible-height,100dvh)/2);
  translate:-50% -50%;margin:0;transform:none;width:min(440px,calc(var(--visible-width,100vw) - 24px));
  max-width:none;max-height:calc(var(--visible-height,100dvh) - 24px);padding:16px;overflow:auto;
}
#game-dialog.quest-arrival-dialog .quest-unopened {border:0;background:none;padding:6px;margin:0;color:var(--map-ink)}
#game-dialog.quest-arrival-dialog .quest-unopened h3 {font:700 var(--map-heading)/1.1 AtlasLoot,Georgia,serif;color:var(--map-ink);margin:12px 0;text-wrap:balance}
#game-dialog.quest-arrival-dialog .quest-unopened p {font:600 var(--map-body)/1.25 AtlasLoot,Georgia,serif;color:var(--map-muted);margin:0 auto;width:100%;max-width:none;text-align:center;text-wrap:balance}
#game-dialog.quest-arrival-dialog .quest-unopened small {font:600 var(--map-label)/1.2 AtlasLoot,Georgia,serif;color:var(--map-muted)}
#game-dialog.quest-arrival-dialog .quest-unopened>.button {margin:18px auto 0;display:inline-flex;justify-content:center;gap:8px}

/* Revealed legacy events keep real choices and rejection reasons. */
#game-dialog.quest-reveal-dialog:not(.blue-card-reveal-dialog):not(.recruit-reveal-dialog) {width:min(760px,calc(var(--visible-width,100vw) - 24px));height:min(720px,calc(var(--visible-height,100dvh) - 24px));padding:18px}
#game-dialog.quest-reveal-dialog .card-event-front>.decision:not(.recruit-decision) {height:100%;min-height:0;display:flex;flex-direction:column;text-align:center;padding:0;background:none;border:0}
#game-dialog.quest-reveal-dialog .card-event-front>.decision>.section-heading {display:none}
#game-dialog.quest-reveal-dialog .drawn-card {flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:6px;background:none;border:0;color:var(--map-ink)}
#game-dialog.quest-reveal-dialog .drawn-card :is(h3,.encounter-option strong) {font:700 var(--map-heading)/1.1 AtlasLoot,Georgia,serif;color:var(--map-ink);text-align:center;text-wrap:balance;margin:12px 0}
#game-dialog.quest-reveal-dialog .drawn-card :is(p,.encounter-option span) {font:600 var(--map-body)/1.25 AtlasLoot,Georgia,serif;color:var(--map-muted);text-align:center;text-wrap:balance}
#game-dialog.quest-reveal-dialog .drawn-card :is(small,.rarity) {font:600 var(--map-label)/1.2 AtlasLoot,Georgia,serif;color:var(--map-muted);text-align:center;letter-spacing:0}
#game-dialog.quest-reveal-dialog .drawn-icon {color:var(--map-gold)}
#game-dialog.quest-reveal-dialog .drawn-icon .icon {width:64px;height:64px}
#game-dialog.quest-reveal-dialog .draw-actions {flex:none;display:flex;justify-content:center;flex-wrap:wrap;gap:12px;padding:10px 6px 6px;margin:0}
#game-dialog.quest-reveal-dialog .encounter-choices {display:grid;gap:12px;padding:6px}
#game-dialog.quest-reveal-dialog .encounter-choices .encounter-option {width:100%;display:grid;gap:6px;padding:14px;background:#203a2c;border-color:#8d794e}
#game-dialog.quest-reveal-dialog .encounter-choices .encounter-option strong {font-size:var(--map-body);margin:0}
#game-dialog.quest-reveal-dialog .encounter-choices .encounter-option span {font-size:var(--map-label)}
#game-dialog.quest-reveal-dialog .encounter-choices .encounter-option:hover:not(:disabled) :is(strong,span,small) {color:#172b21}
#game-dialog.quest-reveal-dialog .encounter-choices .encounter-option:disabled :is(strong,span,small) {color:#dae0ce}
#game-dialog.quest-reveal-dialog .loot-bonus-hint {background:none;border-color:#8d794e;color:var(--map-muted)}
#game-dialog.recruit-reveal-dialog .fighter-card-action {padding:6px;flex-wrap:wrap}
#game-dialog.recruit-reveal-dialog {width:min(460px,calc(var(--visible-width,100vw) - 24px),calc((var(--visible-height,100dvh) - 144px)*.667))}
#game-dialog.recruit-reveal-dialog .fighter-card-action .recruit-accept {flex:0 1 auto;max-width:100%;min-width:0}
#game-dialog.recruit-reveal-dialog .fighter-card-action .recruit-dismiss {flex:none;min-width:44px;min-height:52px}
#game-dialog.recruit-reveal-dialog :is(.fighter-card-body,.fighter-card-controls) {background:none;color:var(--map-ink);border:0;text-align:center}
#game-dialog.recruit-reveal-dialog .fighter-card-body :is(h3,.fighter-card-description,.fighter-card-reason) {font:600 var(--map-body)/1.25 AtlasLoot,Georgia,serif;color:var(--map-ink);text-align:center}

/* Map-side quest completion, special places and traps; never battle sheets. */
.world-game.edge-to-edge-map .app.immersive .event-sheet.map-card-event {
  width:min(520px,calc(var(--visible-width,100vw) - 24px));max-height:calc(var(--visible-height,100dvh) - 128px);
  padding:18px;text-align:center;overflow:auto;overscroll-behavior:contain;
}
.world-game.edge-to-edge-map .app.immersive .map-card-event :is(.decision,.coin-entry,.place-card,.site-preview,.adventure-treasure) {background:none;border-color:#8d794e;color:var(--map-ink);text-align:center}
.world-game.edge-to-edge-map .app.immersive .map-card-event :is(h2,h3) {font:700 var(--map-heading)/1.1 AtlasLoot,Georgia,serif;color:var(--map-ink);text-align:center;text-wrap:balance}
.world-game.edge-to-edge-map .app.immersive .map-card-event :is(p,.context,.quest-status,.place-reward,.encounter-option span,.turnin-item span) {font:600 var(--map-body)/1.25 AtlasLoot,Georgia,serif;color:var(--map-muted);text-align:center;text-wrap:balance}
.world-game.edge-to-edge-map .app.immersive .map-card-event :is(small,.decision-meta) {font:600 var(--map-label)/1.2 AtlasLoot,Georgia,serif;color:var(--map-muted);justify-content:center}
.world-game.edge-to-edge-map .app.immersive .map-card-event .quest-card-footer {padding:8px 6px;display:flex;flex-direction:column;gap:14px;background:none;border:0;text-align:center}
.world-game.edge-to-edge-map .app.immersive .map-card-event .quest-status {justify-content:center}
.world-game.edge-to-edge-map .app.immersive .map-card-event .icon-button {color:var(--map-ink);background:var(--map-ground);border-color:#8d794e}
.world-game.edge-to-edge-map .app.immersive .map-card-event:has(.coin-entry.quest) {
  position:fixed;left:calc(var(--visible-left,0px) + var(--visible-width,100vw)/2);top:calc(var(--visible-top,0px) + var(--visible-height,100dvh)/2);
  right:auto;bottom:auto;translate:-50% -50%;transform:none;
  width:min(900px,calc(var(--visible-width,100vw) - 24px));height:min(780px,calc(var(--visible-height,100dvh) - 24px));max-height:none;overflow:hidden;
}
.world-game.edge-to-edge-map .app.immersive .map-card-event:has(.coin-entry.quest)>.decision {height:100%;min-height:0;display:flex;flex-direction:column;padding:0}
.world-game.edge-to-edge-map .app.immersive .map-card-event:has(.coin-entry.quest) .section-heading {flex:none;margin:0 0 10px;justify-content:center}
.world-game.edge-to-edge-map .app.immersive .map-card-event:has(.coin-entry.quest) .section-heading h2 {margin:0;font-size:var(--map-body)}
.world-game.edge-to-edge-map .app.immersive .map-card-event:has(.coin-entry.quest) .coin-contents {flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
.world-game.edge-to-edge-map .app.immersive .map-card-event .coin-entry.quest {flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;padding:0;border:0;background:none}
.world-game.edge-to-edge-map .app.immersive .map-card-event .coin-entry.quest>.quest-illustration {width:100%;height:100%;min-height:0;max-height:100%;object-fit:contain;margin:0}
.world-game.edge-to-edge-map .app.immersive .map-card-event .coin-entry.quest>.quest-card-footer {justify-content:center;min-height:0;overflow:hidden}
:root[data-compact-viewport]:not([data-short-viewport]) .world-game.edge-to-edge-map .app.immersive .map-card-event .coin-entry.quest {grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(60px,1fr) auto}

:root[data-compact-viewport]:not([data-short-viewport]) #game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .quest-card-footer:has(.map-card-copy) {max-height:calc(var(--visible-height,100dvh) - 150px)}
:root[data-short-viewport] #game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) {--map-heading:1.75rem;--map-body:1.5rem;--map-label:1.125rem;--map-number:2rem}
:root[data-short-viewport] #game-dialog.quest-journal-dialog .quest-journal-list>.quest {grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);grid-template-rows:minmax(0,1fr);gap:14px}
:root[data-short-viewport] #game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .map-card-copy {gap:8px}
:root[data-short-viewport] #game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .quest-card-footer:has(.map-card-copy) {gap:10px}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-card-footer.quest-offer-footer {
  max-height:calc(var(--visible-height,100dvh) - 112px);gap:8px;padding:0 4px;
}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-offer-footer .map-card-copy {gap:6px}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-offer-footer .button {min-height:44px;padding:6px 20px}
:root[data-short-viewport] #game-dialog.blue-card-reveal-dialog .quest-reward-summary {padding:6px 0}
:root[data-short-viewport] #game-dialog.quest-arrival-dialog .sealed-scroll {display:none}
:root[data-short-viewport] #game-dialog.quest-reveal-dialog:not(.blue-card-reveal-dialog):not(.recruit-reveal-dialog) .drawn-icon {display:none}
:root[data-short-viewport] #game-dialog.recruit-reveal-dialog {width:min(560px,calc(var(--visible-width,100vw) - 24px));height:calc(var(--visible-height,100dvh) - 24px)}
:root[data-short-viewport] #game-dialog.recruit-reveal-dialog :is(.recruit-decision,.fighter-discovery) {height:100%;min-height:0;width:100%;max-width:none;margin:0}
:root[data-short-viewport] #game-dialog.recruit-reveal-dialog .fighter-card--illustrated {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;height:100%;min-height:0;align-items:center}
:root[data-short-viewport] #game-dialog.recruit-reveal-dialog .fighter-card-whole {width:100%;height:100%;min-height:0;object-fit:contain}
:root[data-short-viewport] #game-dialog.recruit-reveal-dialog .fighter-card-action {flex-direction:column;padding:6px}
@media(max-width:380px) {
  #game-dialog:is(.quest-reveal-dialog,.quest-arrival-dialog,.quest-journal-dialog),.world-game.edge-to-edge-map .app.immersive .event-sheet.map-card-event {--map-heading:1.875rem;--map-body:1.5rem;--map-label:1.125rem;--map-number:2rem}
  #game-dialog:is(.blue-card-reveal-dialog,.quest-journal-dialog) .map-card-copy {gap:10px}
}
