/* 03 — Códice Viviente. Paper, ink and live game controls. */
:root {
  --paper:#efddb7; --paper-light:#f8edcf; --ink:#35261d; --muted-ink:#68513c;
  --seal:#873c32; --teal:#28635f; --gold:#9a733e;
  --bg-color:#302319; --panel-bg:#f0dfba; --glass-border:#aa8a5c;
  --text-main:var(--ink); --text-muted:var(--muted-ink); --primary:var(--seal);
  --primary-glow:transparent; --accent:#705025; --secondary:var(--teal);
  --font-ui:Georgia,'Times New Roman',serif; --font-title:Georgia,'Times New Roman',serif;
  --font-serif:Georgia,'Times New Roman',serif; --font-retro:Georgia,serif;
  --focus-ring:0 0 0 2px var(--paper-light),0 0 0 5px var(--teal);
}
body {color:var(--ink);font-family:var(--font-ui);font-size:16px}
button {font:inherit;color:inherit;touch-action:manipulation}
button:disabled,.disabled {cursor:not-allowed;opacity:.48}
:focus-visible {outline:2px solid var(--teal);outline-offset:3px}
#game-container {background:#302319 url('assets/codex/book.png') center/cover no-repeat}
.screen {padding:32px 5% 28px;background:linear-gradient(90deg,#ead5a6e8,#f3e5c8f5 45%,#d3b583e8 50%,#f3e5c8f5 55%,#ead5a6e8);gap:14px;}
.screen h1,.screen h2,.screen h3 {color:var(--ink)!important;text-shadow:none!important;font-weight:normal;letter-spacing:.02em}
.screen h2 {font-size:clamp(24px,3vw,38px);margin-bottom:8px}
.screen p {line-height:1.5}
.screen [style*="color:"],dialog [style*="color:"] {color:var(--ink)!important;text-shadow:none!important}
.glass-panel {background:linear-gradient(145deg,#f8edcfef,#e5cea1ed)!important;border:1px solid #a58b61!important;border-radius:4px;box-shadow:0 3px 8px #4e341419,inset 0 0 0 3px #f9edcf80;backdrop-filter:none;color:var(--ink)}
.action-btn,.end-turn-btn,.pile,.menu-btn {min-height:40px;background:#ead5ac!important;border:1px solid #8d6948!important;color:var(--ink)!important;border-radius:3px!important;box-shadow:0 2px 3px #543d2925!important;text-shadow:none!important;letter-spacing:.02em}
.action-btn:hover:not(:disabled),.pile:hover,.menu-btn:hover:not(:disabled) {background:#fff0c9!important;border-color:var(--seal)!important;transform:translateY(-1px)}
.action-btn:disabled {pointer-events:none}
dialog {max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink)}
dialog::backdrop {background:#211910aa;backdrop-filter:blur(3px)}
dialog .glass-panel {overflow:auto}
.screen ::-webkit-scrollbar-track {background:#e0c798}
.screen ::-webkit-scrollbar-thumb {background:#987344}
#main-menu {background:transparent;justify-content:center;padding:62px 7% 42px;overflow:auto}
#main-menu::before,#main-menu::after,.sanctuary-sky,.sanctuary-architecture {display:none}
#main-menu {background:url('assets/codex/book.png') center/100% 100% no-repeat}
.sanctuary-scene {display:none}
.sanctuary-menu {width:100%;max-width:1400px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10%;padding:0;position:relative;margin:auto}
.logo-container {margin:0;text-align:center;align-self:center;position:relative}
.logo-mythos {font-size:clamp(54px,6.7vw,100px);font-family:Georgia,serif;letter-spacing:.13em;color:var(--ink);text-shadow:0 2px #f6e7c8;background:none;-webkit-text-fill-color:var(--ink)}
.logo-clash {font-size:clamp(14px,1.5vw,22px);letter-spacing:.35em;color:var(--seal);text-shadow:none}
.logo-clash {background:none;-webkit-text-fill-color:var(--seal);filter:none}
.logo-mythos {opacity:1;padding:0;text-shadow:none;letter-spacing:.09em}
.logo-divider {margin:16px auto 0;background:var(--gold);height:1px;width:65%}
.logo-divider span {background:var(--seal);box-shadow:none}
.logo-oath {color:var(--muted-ink);font-size:16px;max-width:320px;margin:18px auto 0;font-style:italic}
.codex-frontispiece {width:100%;height:clamp(135px,23vh,240px);overflow:hidden;position:relative;margin:16px auto 0;max-width:440px}
.codex-frontispiece img {position:absolute;width:166.6667%;height:200%;max-width:none;left:0;top:0;object-fit:fill}
.menu-buttons {display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:560px}
.menu-btn {padding:13px 14px;min-height:67px;gap:12px;clip-path:none;background:#f0dfbcbf!important}
.menu-btn::before,.menu-btn::after {display:none}
.menu-btn--wide {grid-column:1/-1}
.menu-btn--primary {background:var(--seal)!important;color:#fff1d2!important}
.menu-btn--primary:hover:not(:disabled) {background:#9b4b3e!important;color:#fff1d2!important}
.menu-btn__sigil {font-size:17px;font-family:Georgia,serif;color:inherit;border:0;min-width:23px;width:23px}
.menu-btn__sigil {background:none;transform:none;box-shadow:none}
.menu-btn__sigil::before,.menu-btn__sigil::after {display:none}
.menu-btn span,.menu-btn strong,.menu-btn small {transform:none;text-transform:none}
.player-profile strong {color:var(--ink)}
.menu-btn strong {font-size:16px;font-weight:normal;letter-spacing:.01em}
.menu-btn small {font-size:11px;color:inherit;opacity:.8;margin-top:3px;letter-spacing:.03em}
.menu-btn--quiet {min-height:40px;padding:7px 14px;background:#e5cca370!important}
.player-profile {top:18px;left:8%;right:8%;justify-content:center;gap:24px;width:auto;background:#f3e6c4e6;border:1px solid #a58b61;color:var(--ink);font:12px Georgia,serif;box-shadow:none;z-index:5;padding:9px 14px;border-radius:2px}
.player-profile__name {color:var(--seal)}
.version {color:#eddbb5;background:#35261dce;padding:5px 12px;border-radius:2px;right:12px;bottom:10px;font:11px Georgia,serif}
.loading-screen {background:#2d231c url('assets/codex/book.png') center/cover no-repeat}
.loading-screen__veil {display:none}
.loading-reliquary {background:#f0dfc1f5;clip-path:none;border-color:#866240;box-shadow:0 10px 60px #26191066;color:var(--ink);border-radius:3px}
.loading-reliquary__title,.loading-reliquary__subtitle,.loading-progress-copy {color:var(--ink);text-shadow:none}
.loading-progress-bar {background:var(--seal);box-shadow:none}
#party-selection {gap:10px;padding-top:20px}
#roster-grid {width:100%;max-width:1320px;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important;margin-bottom:4px!important}
.class-card {width:100%;height:auto;min-height:208px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 7px;transition:transform 150ms,box-shadow 150ms}
.class-card:hover:not(:disabled) {transform:translateY(-3px);box-shadow:0 8px 12px #684c332a}
.class-name {font-size:18px;font-weight:normal}
.codex-portrait {display:block;position:relative;width:108px;height:108px;overflow:hidden;flex-shrink:0}
.codex-portrait img {position:absolute;width:500%;height:200%;max-width:none;object-fit:fill;pointer-events:none}
#party-selection>.glass-panel {padding:12px!important;margin:0!important;width:100%;max-width:920px}
#party-selection h3 {font-size:17px}
#selected-party {gap:10px!important;min-height:60px!important;margin-top:8px!important}
.party-slot {width:25%;min-width:0;min-height:78px;padding:7px;display:grid;grid-template-columns:48px 1fr;align-content:center;gap:3px}
.party-slot .codex-portrait {grid-row:1/4;width:48px;height:62px}
.party-slot.filled {background:#ead5ae!important}
.party-slot:not(.filled) {display:grid;place-items:center;border-style:dashed!important}
#btn-start-battle {background:var(--seal)!important;color:#fff0d0!important}
.codex-eyebrow {font-size:11px;letter-spacing:.28em;color:var(--seal)}
.codex-route {list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:28px 16px;width:100%;max-width:1260px;margin:18px 0 22px}
.route-node {text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted-ink);padding:12px 6px}
.route-node::after {content:'';height:1px;position:absolute;background:#9a794d;top:37px;left:70%;width:66%}
.route-node:nth-child(5n)::after {display:none}
.route-seal {border:1px solid #9f8058;background:#edd8ad;box-shadow:inset 0 0 0 4px #f2e2c3;width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:19px;z-index:1}
.route-node strong {font-size:15px;font-weight:normal}
.route-node small {font-size:11px;opacity:.8}
.route-node.is-current {color:var(--seal);background:#f8ebcc80;border:1px solid #b08e60;border-radius:4px}
.route-node.is-current .route-seal {background:var(--seal);color:#fff1d1;box-shadow:inset 0 0 0 4px #873c32;border-color:#6b2824}
.route-node.is-complete .route-seal {background:var(--teal);color:white;box-shadow:none}
.route-node.is-locked {opacity:.65}
#story-map-screen>.glass-panel {width:min(640px,100%);padding:24px!important;margin:0!important}
.deck-card {background:#f0dfb9!important;color:var(--ink)!important;border:1px solid #9e7647!important;border-radius:5px;box-shadow:0 3px 6px #50372125;text-align:left}
.card-top-bar,.card-header-area,.card-footer-bar,.card-body-description {background:transparent!important;color:var(--ink)!important;border-color:#b79b6c!important}
.card-name-title,.card-hero-class,.card-type-tag,.card-level-tag,.card-action-text,.card-mana-gem {color:var(--ink)!important;text-shadow:none!important;background:none!important}
.card-mana-gem {font:12px Georgia,serif!important;font-weight:bold!important}
.card-type-tag {font-size:10px!important;border:0!important}
.card-art-placeholder {height:110px;min-height:60px;position:relative;overflow:hidden;background:#e6cca0;margin:0 8px;border:1px solid #b79965;border-radius:2px}
.card-art-placeholder::before,.card-art-placeholder::after {display:none}
.card-art-production,.card-art-placeholder.has-production-art .card-art-production {display:block;position:absolute;width:400%;height:300%;max-width:none;opacity:1!important;object-fit:fill;filter:none}
.card-name-title {font:18px Georgia,serif;line-height:1.15}
.card-body-description {font:13px/1.35 Georgia,serif}
.deck-nav-tab,.tab-btn {background:#e6cf9f;color:var(--ink);border-color:#9b7a51}
.deck-nav-tab.active,.tab-btn.active {background:var(--seal);color:#fff1d3;border-color:var(--seal)}
.currency-item {background:#ead3a8!important;border-color:#a4885d!important}
.ascension-card {background:#f3e3c0!important;border:1px solid #a4885d!important;box-shadow:0 3px 7px #51372125!important;color:var(--ink)!important;gap:12px!important}
.ascension-card .class-level,.ascension-card .ascension-bonus {color:var(--muted-ink)}
.ascension-card .ascension-btn {display:block!important;background:#ead2a6!important;color:var(--ink)!important;border:1px solid #997445!important;min-height:40px;padding:10px;cursor:pointer}
.book-container,.book-page {background:#f0dfba;color:var(--ink);border-color:#ab8d61;box-shadow:0 5px 16px #50362025}
.book-spine-center {background:linear-gradient(90deg,#e1c99a,#af8b58,#ead4ab);border-color:#b59666;box-shadow:none;width:22px}
.encyclopedia-list-btn {background:#ead4ab;color:var(--ink);border:1px solid #ba9e72;min-height:46px;padding:8px 12px}
.encyclopedia-list-btn:hover,.encyclopedia-list-btn.selected {background:#f8ebc9;color:var(--ink)}
.encyclopedia-tab {background:#ead5ac;color:var(--ink);border:1px solid #a2855d}
.encyclopedia-tab.active,.encyclopedia-tab:hover {background:var(--seal);color:#fff0d0;border-color:var(--seal)}
.encyclopedia-entry,.entry-desc,.entry-passive,.entry-stats {background:transparent;color:var(--ink)!important;border-color:#b79766;box-shadow:none}
.deck-subtitle,.deck-section-hint,.section-hint,.deck-global-badge,.tab-badge {color:var(--muted-ink)!important;text-shadow:none;box-shadow:none;background:none;border-color:#ac8d60}
.deck-card.is-equipped {box-shadow:0 3px 6px #50372125!important}
#battle-screen {background:#ead5a6;overflow:auto;min-width:0;padding:0;display:block;scrollbar-gutter:auto}
#game-canvas,#battle-ui,#battle-atmosphere,#battle-fx-layer {min-width:760px;min-height:620px;width:100%;height:100%;image-rendering:auto}
#battle-atmosphere {display:none}
#battle-ui {pointer-events:none}
.top-bar {height:70px;min-height:70px;align-items:center;gap:12px;padding:10px 22px;background:linear-gradient(#ebd6aff0,#eedcbbea);border-bottom:1px solid #b19569;color:var(--ink);box-shadow:none}
.top-bar>div:last-child {align-items:center;gap:7px!important}
.top-bar .action-btn {font-size:12px!important;padding:7px 9px!important;min-height:34px;white-space:nowrap}
.turn-indicator {font:17px Georgia,serif;color:var(--seal);text-shadow:none;padding:0;white-space:nowrap;background:none;border:0}
.timer-container,.ap-container {background:#ead5ad!important;color:var(--ink)!important;border:1px solid #9a7f57!important;font:13px Georgia,serif;border-radius:3px;padding:8px;white-space:nowrap;text-shadow:none;box-shadow:none}
.status-panel {top:88px;transform:none;gap:6px;max-height:calc(100% - 345px);overflow-y:auto}
.status-panel.heroes {left:14px}
.status-panel.enemies {right:14px}
.unit-status {width:157px;padding:7px!important;background:#f3e4c5dd!important;box-shadow:0 2px 3px #5038201a}
.unit-name {font:12px Georgia,serif!important;color:var(--ink);gap:4px}
.unit-status .attack-btn {min-height:27px;font-size:11px;padding:3px 5px;background:#ead3a8!important;color:var(--ink)!important;border:1px solid #92704a;border-radius:2px}
.unit-status .hp-bar {height:9px;background:#c8b58e;border:0}
.unit-status .hp-fill {background:#a04c3b;box-shadow:none}
.unit-status-effect {display:inline-block;font-size:10px;margin:1px 2px;color:#692f26}
.unit-focus-btn {width:100%;min-height:30px;font-size:11px;background:#e6d3ac!important;color:var(--ink)!important;padding:4px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.unit-status.is-focused {outline:2px solid var(--teal);box-shadow:0 0 0 3px #f0ddb6!important}
.unit-status.is-focused .unit-focus-btn {background:var(--teal)!important;color:#fff4d8!important}
.unit-status .attack-btn {max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bottom-bar {position:absolute;bottom:0;left:0;width:100%;height:254px;padding:12px 16px 10px;display:grid;grid-template-columns:minmax(0,1fr) 118px;align-items:end;gap:12px;background:linear-gradient(transparent,#ecd7aff0 14%,#debd8af5);border-top:1px solid #b18b5580}
.bottom-bar>div:first-child {display:none}
.cards-hand {display:flex;justify-content:center;align-items:end;gap:9px;overflow-x:auto;overflow-y:hidden;padding:6px 4px 3px;perspective:none;height:100%;min-width:0}
.card-in-hand {flex:0 0 clamp(135px,13vw,175px);width:clamp(135px,13vw,175px);height:218px;min-height:0!important;max-height:none;margin:0!important;transform:none!important;padding:0;display:flex;flex-direction:column;border-width:1px!important}
.card-in-hand:hover:not(.disabled),.card-in-hand:focus-visible {transform:translateY(-3px)!important}
.card-in-hand .card-art-placeholder {height:69px;min-height:69px;margin:0 5px}
.card-in-hand .card-name-title {font-size:14px!important}
.card-in-hand .card-body-description {flex:1;overflow-y:auto;min-height:40px}
.card-in-hand .card-body-description p {font-size:11px!important;line-height:1.25;color:var(--ink)}
.card-in-hand .card-top-bar {padding:4px!important;min-height:25px}
.card-in-hand .card-header-area {padding:5px 6px 1px!important;min-height:36px}
.card-in-hand .card-hero-class {font-size:8px!important}
.card-in-hand.disabled {opacity:.64;filter:grayscale(.35);pointer-events:auto}
.deck-controls {gap:7px;padding-bottom:3px;align-items:stretch!important;width:118px}
.pile {width:100%;height:auto;min-height:34px;padding:7px;font:12px Georgia,serif;transform:none!important;cursor:pointer}
.end-turn-btn {width:100%;min-height:59px;padding:8px;background:var(--seal)!important;color:#fff2d7!important;font:15px Georgia,serif;display:flex;gap:5px;justify-content:center;align-items:center}
.end-turn-btn .icon {font-size:22px}
/* Manual play: the destination and the single pending action stay readable above the hand. */
.manual-bar {position:absolute;left:0;right:0;bottom:262px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;pointer-events:none;z-index:41}
.manual-bar>* {pointer-events:auto}
.manual-pending,.manual-feedback {margin:0;padding:5px 11px;background:#f3e3c3f2;border:1px solid #a98a5e;border-radius:3px;font:13px Georgia,serif;color:var(--ink);max-width:70vw}
.manual-feedback:empty {display:none}
.manual-cancel {min-height:36px;padding:5px 12px}
.card-target-line {padding:3px 6px;margin:0 4px 4px;background:#e7d3aa;border:1px solid #b3966b;border-radius:2px;font:11px Georgia,serif;color:var(--ink);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hand-slot {display:flex;flex-direction:column;justify-content:flex-end;gap:3px;flex:0 0 clamp(135px,13vw,175px);width:clamp(135px,13vw,175px);min-width:0}
.hand-slot .card-in-hand,.hand-slot .deck-card.card-in-hand {width:100%!important;flex:0 1 auto}
.card-details-btn {min-height:28px;padding:3px 6px;background:#ead5ac;border:1px solid #8d6948;border-radius:2px;font:11px Georgia,serif;color:var(--ink);cursor:pointer}
.card-in-hand.is-dragging {opacity:.6}
body.manual-dragging {cursor:grabbing}
.end-turn-btn.is-suggested {outline:2px solid var(--teal);box-shadow:0 0 0 3px #f0ddb6}
.battle-banner {background:#f1deb9ef;color:var(--seal);border:1px solid #95724a;text-shadow:none;font-family:Georgia,serif}
.battle-card-cast {background:#f2e1bf;color:var(--ink);border-color:#876344;box-shadow:0 15px 50px #3f291c66}
.battle-card-cast__name {color:var(--ink);font-family:Georgia,serif}
.skip-animation-btn {background:#f1dfba;color:var(--ink);border:1px solid #846747}
/* Retire the previous sanctuary's high-specificity combat overrides. */
.top-bar .action-btn {background:#ead5ac!important;color:var(--ink)!important;display:block!important;border-radius:3px!important;box-shadow:none!important}
.deck-card.card-in-hand {width:clamp(135px,13vw,175px)!important;min-height:0!important;margin-inline:0!important;clip-path:none;border-radius:4px;box-shadow:0 3px 7px #50382030}
.deck-card.card-in-hand:hover,.deck-card.card-in-hand:focus-visible {transform:translateY(-3px)!important}
.deck-card.card-in-hand.disabled {opacity:1;filter:none;background:#ddc9a3!important;color:#54422e!important;border-color:#b29b74!important}
.deck-card.card-in-hand.disabled .card-art-placeholder {opacity:.65}
.card-body-description,.card-body-description p {display:block!important;background:transparent!important;color:var(--ink)!important}
.bottom-bar {min-height:0!important}
.deck-controls {display:flex!important}
.unit-status {min-width:0!important}
.unit-name {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;margin-bottom:5px!important;line-height:1.12;font-size:11px!important}
.unit-name>span:first-child {max-width:100%}
.unit-name>span:last-child {font-size:10px;white-space:nowrap}
.enemy-status .unit-name {flex-direction:column-reverse;align-items:flex-end}
.enemy-status .unit-name>span:last-child {font-size:11px;white-space:normal}
.enemy-status .unit-name::after {display:none}
.unit-status .hp-bar-bg {height:7px;margin:0;background:#d3bf9a;border:1px solid #ae926a}
.unit-status .hp-bar-fill {background:#a45140;box-shadow:none}
.unit-status>div:last-of-type {margin-top:4px!important;font-size:11px!important;gap:3px}
body.presentation-busy #btn-pause,body.presentation-busy #btn-toggle-sfx,body.presentation-busy #btn-toggle-music {pointer-events:auto}
/* While a resolved action plays, the manual controls still accept the single queued intention. */
body.presentation-busy #battle-ui .attack-btn,body.presentation-busy #battle-ui .unit-focus-btn,
body.presentation-busy #battle-ui .card-details-btn,body.presentation-busy #btn-cancel-pending,
body.presentation-busy .card-in-hand {pointer-events:auto}
@media(max-width:1100px) {
  .bottom-bar {height:236px;gap:8px;padding:8px}
  .card-in-hand {height:211px;flex-basis:128px;width:128px}
  .deck-card.card-in-hand {width:128px!important;min-height:0!important}
  .cards-hand {justify-content:flex-start;gap:7px}
  .unit-status {width:125px}
  .status-panel.heroes {left:8px}.status-panel.enemies {right:8px}
  .top-bar {padding:8px 10px;gap:8px}.turn-indicator{font-size:14px}
  .top-bar .action-btn {padding:5px!important;font-size:11px!important}
  .timer-container,.ap-container {padding:6px;font-size:11px}
  .top-bar>div:last-child {gap:4px!important}
  .hand-slot {flex-basis:128px;width:128px}
  .manual-bar {bottom:244px;gap:6px;padding:0 8px}
  .manual-pending,.manual-feedback {font-size:12px;padding:4px 8px}
  /* Touch targets stay reachable without a horizontal detour on 390×844. */
  .unit-status .attack-btn,.unit-focus-btn,.card-details-btn {min-height:36px}
}
@media(min-width:900px) and (max-height:800px) {
  #party-selection {padding-top:16px;gap:8px}
  #party-selection h2 {font-size:30px;margin-bottom:0}
  .class-card {min-height:180px;gap:4px;padding:7px}
  .class-card>.codex-portrait {width:82px;height:82px}
  .class-card>div:nth-last-child(2) {font-size:11px!important;min-height:30px!important}
  .class-name {font-size:16px}
  #roster-grid {gap:8px!important}
  .party-slot {min-height:70px}
  #party-selection>.glass-panel {padding:8px!important}
}
@media(max-width:700px) {
  .screen {padding:22px 16px;gap:12px}
  #main-menu {padding:66px 22px 45px;background:linear-gradient(#efddbddd,#e2c79cdd)}
  .sanctuary-menu {grid-template-columns:1fr;gap:24px;max-width:440px}
  .logo-mythos {font-size:60px}.logo-clash{font-size:15px}.logo-oath{font-size:14px;margin-top:14px}
  .codex-frontispiece {height:100px;width:230px;margin:10px auto 0}
  .menu-btn {min-height:60px;padding:10px}.menu-btn strong {font-size:14px}
  .player-profile {position:absolute;left:12px;right:12px;gap:10px;font-size:10px;padding:8px}
  .player-profile__name {max-width:90px;overflow:hidden;text-overflow:ellipsis}
  #roster-grid {grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}
  .class-card {min-height:216px}.class-name{font-size:17px}
  #selected-party {display:grid!important;grid-template-columns:1fr 1fr}
  .party-slot {width:100%;grid-template-columns:44px 1fr}
  .codex-route {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}
  .route-node::after {display:none}
  .route-node {padding:10px}.route-node strong{font-size:14px}
  .screen>div[style*="display: flex"] {flex-wrap:wrap;max-width:100%!important;gap:14px!important}
  #chests-screen>div>div {min-width:0!important;padding:20px!important}
  #encyclopedia-screen>div {flex-direction:column}
  .currency-panel {gap:8px!important;flex-wrap:wrap}
  #battle-screen {padding:0;}
  /* The scene keeps its minimum canvas, but every control stays inside the phone viewport. */
  #battle-ui {position:fixed;inset:0;min-width:0;width:100vw;height:100%}
  .bottom-bar {grid-template-columns:minmax(0,1fr) 104px;height:214px;padding:6px}
  .deck-controls {width:104px;gap:5px}
  .end-turn-btn {min-height:48px;font-size:13px}
  .pile {min-height:30px;font-size:11px;padding:5px}
  .card-in-hand,.hand-slot {flex-basis:116px;width:116px}
  .card-in-hand {height:180px}
  .deck-card.card-in-hand {width:116px!important}
  .status-panel {max-height:calc(100% - 310px)}
  .manual-bar {bottom:222px}
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
