/* Classical illustrated strategy-card direction: dark wood, aged brass,
   paper cards and stable character stations. Mechanics remain Water Margin poker. */
:root{--ink:#29231c;--deep:#1b1814;--paper:#eedfba;--muted:#b7ab8f;--copper:#c8a365;--red:#963d2b;--jade:#91a46a;--line:#c4a16845}
.game-shell{background:#24201a url('assets/materials/war-table.webp') center/cover;color:#eee0bf}.game-shell:after{box-shadow:inset 0 0 0 1px #d2b87535,inset 0 0 35px #140e0940}
.topbar,.screen-battle .battle-top{color:#eddbaf;background:linear-gradient(#443729ee,#251e17f5);border-bottom:1px solid #c5a36887;box-shadow:0 3px 9px #09060355}
.topbar h1,.screen-battle .battle-top strong{color:#efddaf;text-shadow:0 2px #18100a}.topbar .icon-button,.screen-battle .battle-top .icon-button{color:#cfb47e}.topbar .purse{color:#e2c88f}.topbar .coin-mark{border-color:#c39e56}.topbar .coin-mark:after{background:#c39e56}
.screen-battle .battle-top>div>span{color:#d4b174;border-color:#a2824c8c;background:#281b1255;font-size:11px}
.primary{color:#392710;background:linear-gradient(#e7d59e,#c0a066);border:1px solid #f1d9a0;box-shadow:inset 0 0 0 2px #645031,0 2px 0 #523d24,0 5px 10px #0c08094d;text-shadow:0 1px #ffeec270;border-radius:2px;letter-spacing:2px}
.primary:before{content:'';position:absolute;inset:4px;border:1px solid #9474438a;pointer-events:none}.secondary{color:#e1c899;background:linear-gradient(#4c3e2c,#30271e);border-color:#9f825679;box-shadow:inset 0 0 0 2px #20171045;border-radius:2px}.text-button{color:#cbb68a}
.bottom-nav{background:linear-gradient(#362c21,#211b16);border-color:#b697626b;box-shadow:0 -3px 10px #0e0a0766}.bottom-nav button{color:#ac9c7d}.bottom-nav .active{color:#f3d9a0}.bottom-nav .active:before{background:#d2ac65}.bottom-nav .active svg{filter:drop-shadow(0 1px 3px #cc9a4e66)}
.game-select{background:#332b20;color:#e9d9b5;border-color:#b5996163}.game-select option{background:#332b20}.scroll-content{scrollbar-color:#9a805f55 transparent}
.screen-title .scene:after{background:linear-gradient(#23180b1a,transparent 35%,#271d1122 55%,#211b16f2 92%)}.title-start p,.title-links .text-button{color:#d3bf98}.title-seal{color:#f2d5a6;background:#8f3626;border:1px solid #c18551}
.screen-camp .scene:after{background:linear-gradient(#35281300,transparent 28%,#2e261b22 45%,#241e16e6 79%,#211b16)}.camp-secondary .secondary{background:linear-gradient(#463827,#31271c);border-color:#b0945e70}.camp-community .text-button{color:#ccbd9b}.camp-save{color:#b0a184}
.journey-button>small{color:#6a4825}.camp-location>span{font-size:19px}.camp-location small{color:#ebd8b5}.camp-chapter h2{color:#f7e6be}.camp-chapter .camp-verse{color:#d9caa8}
.screen-battle{background:#2e281f url('assets/materials/war-table.webp') center/100% 100% no-repeat}
.screen-battle .battle-scene{height:250px;opacity:.55;mask-image:linear-gradient(#000 40%,transparent 100%);filter:saturate(.55) sepia(.2)}.screen-battle .battle-scene:after{background:linear-gradient(#261e1599,transparent 50%,#2a20143d)}
.screen-battle .enemy-zone{margin:12px 18px 0;padding:0 10px 0 0;min-height:98px;display:grid;grid-template-columns:65px minmax(0,1fr) 32px;gap:12px;align-items:center;background:#251d16bc;border:1px solid #b599625e;box-shadow:0 4px 12px #0e0a0940;border-radius:2px}
.opponent-portrait{position:relative;align-self:stretch;min-height:96px;border:1px solid #d8be8c;background:#dac79c;overflow:hidden;margin:-1px 0 -1px -1px;box-shadow:2px 0 5px #100b0955}
.opponent-image{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 22%}.opponent-portrait img{filter:saturate(.85)}
.opponent-portrait .opponent-seal{position:absolute;bottom:0;left:0;right:0;width:auto;height:18px;border:0;background:#6b2b20e8;box-shadow:none;font:10px/18px var(--serif);letter-spacing:3px;text-align:center;display:block;color:#f6ddb5}
.opponent-status{min-width:0;padding:9px 0}.enemy-tactics{margin-top:10px;border-top:1px solid #b39b6340;padding-top:7px;display:flex;flex-direction:column;gap:3px;line-height:1.35}.enemy-tactics b{font:12px var(--kai);color:#d5b875}.enemy-tactics span{font:10px/1.4 var(--serif);color:#c3b69a;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.screen-battle .enemy-count{padding-left:0;border:0;color:#beae8c}.screen-battle .enemy-count b{font-size:22px;color:#ead2a1}
.screen-battle .health-label strong{color:#e9d7b2;font:14px var(--kai)}.screen-battle .health-label>span{color:#f0dfba}.screen-battle .health-label small{color:#b7a687}.screen-battle .health-track{background:#120e0b99;box-shadow:0 1px #b99f5a30;height:6px}.screen-battle .health.enemy .health-track>span{background:linear-gradient(#c86443,#973d2e)}.screen-battle .health.player .health-track>span{background:linear-gradient(#bdc48a,#81935c)}
.screen-battle .support-rail{margin:12px 18px 0;background:#231b14c9;border-color:#af945c5e;box-shadow:inset 0 0 0 2px #08050126;padding:7px 9px}
.screen-battle .support-rail.no-supports{min-height:48px;height:48px;padding:6px 10px}.companion-seal{color:#c2a26b;border-color:#b59b6140}.no-supports strong{color:#ddc28f}.no-supports>div>span,.no-supports>small{color:#baac8c}
.screen-battle .support-rail-heading,.screen-battle .support-rail-heading small{color:#b4a07a}.support-slot{border-color:#a4894e50}.support-slot.will-trigger{border-color:#e7c780;background:#b8985230}.support-slot .support-portrait{border-color:#d6bb8c}.support-copy>strong{color:#e4ca95}.support-copy>span{color:#b5a081}.support-copy>small{color:#e1cc9b}.support-vacant{color:#baa47c;border-color:#9b815440}.support-vacant small{color:#a89474}
.screen-battle .battle-field{padding-top:16px;min-height:170px}.screen-battle .played-cards{height:118px;flex-basis:118px}.screen-battle .played-cards.has-cards{grid-template-columns:repeat(var(--played-count),minmax(0,77px));max-width:330px}.screen-battle .played-cards .poker-card{max-height:115px;box-shadow:0 5px 12px #07040370}.screen-battle .played-cards .card-caption{background:#f0e0bced;border-color:#a889534f}
.screen-battle .table-seal{color:#d9b57336}.screen-battle .hand-announcement strong{color:#f0d296}.screen-battle .battle-feedback{border-color:#b89b5b5e;color:#d4c5a3}.screen-battle .battle-log,.screen-battle .battle-feedback .battle-skill{color:#c7b898}.play-estimate strong{color:#efd7a1}.play-estimate small,.support-preview-count{color:#bdac87}.screen-battle .player-zone{border-color:#b494584a}.screen-battle .deck-back{background:#473b2a;border-color:#caae72;box-shadow:2px 2px 0 #8a724a,4px 4px 0 #302619;color:#e0c18a}.deck-stack{color:#c4af81}
.screen-battle .hand-area{background:linear-gradient(transparent,#160f0955)}.screen-battle .selection-label{color:#c3b18b}.screen-battle .selection-label b{color:#f0ce8e}.screen-battle .hand-tool{color:#ddc99e}.screen-battle .redraw-button b{color:#efd296;border-color:#b192596e}
.screen-battle .battle-actions{background:#1c140db5;border-top-color:#b79b654a}.screen-battle .battle-actions .secondary{background:linear-gradient(#463827,#31271c);border-color:#b7986066}
.poker-card{border-color:#c5aa76}.poker-card.tier-1{border-color:#ddccaa;box-shadow:0 2px 5px #190f0d66}.poker-card .card-caption{background:#f0e0bced;border-color:#b08e5a5f;color:#4d3b26}.poker-card .card-nickname{color:#413122}.poker-card .card-name{color:#7b6142}.card-copies{background:#e5d3abe8;color:#594126}.card-index{background:#f2e6cdee;color:#292822;box-shadow:none}.card-index b{font-family:Georgia,serif;font-weight:bold}.red-suit .card-index{color:#9f3021}
.basic-poker{background:#f6eedc;color:#292a24;border-color:#d9c8a6}.basic-poker.red-suit{color:#a73425}.basic-poker .basic-face{background:repeating-linear-gradient(45deg,transparent 0 5px,#92764b0a 5px 6px);border-color:#a98b5240}.screen-battle .hand-fan .hand-card{border-radius:3px;border-color:#d9c7a0}.screen-battle .hand-fan .hand-card.selected{border-color:#e9b95e;box-shadow:0 0 0 1px #d2a149,-3px 3px 4px #130a0a66,0 8px 12px #10080766}
.card-back,.pack-card-back .card-back{background:#3b2a20;border-color:#c5a269}.card-back:before{border-color:#c1a16b77}.card-back i{color:#c5a268bb}
.encounter-art{display:block;background-image:url('assets/enemies/encounter-atlas.webp');background-size:400% 200%;background-position:var(--portrait-x) var(--portrait-y);background-repeat:no-repeat;background-color:#c2b08b}.card-npc-art{position:absolute;inset:0;z-index:-1}.adventure-portrait .adventure-illustration{width:100%;height:100%;min-height:110px;position:absolute;inset:0}.screen-battle .encounter-opponent{display:block;height:110px;width:74px;opacity:1;border:2px solid #d2b881;box-shadow:0 4px 9px #14090666}
.adventure-entry{border-color:#a88b594d;background:#251d1580}.adventure-portrait{position:relative;background:#584832;border:1px solid #a78e5a55;overflow:hidden}.adventure-portrait h3{position:relative;z-index:1;background:#2b1a13dc;color:#e2c58c}.adventure-region,.adventure-reward b{color:#dcbf82}.adventure-description,.adventure-challenge{color:#cbbb97}.adventure-intro p{color:#c7b592}
.screen-collection{background:#e5d3ad;color:#453725}.screen-collection .topbar{background:linear-gradient(#4b3c2c,#2b2118)}.screen-collection .collection-heading h2,.screen-collection .collection-section-heading h3,.screen-collection .collection-subtitle,.screen-collection .collection-onboarding h3{color:#473522}.screen-collection .collection-tabs button.active{color:#8a3020;background:#f4e4bf;border-color:#91402b}.screen-collection .collection-tabs button{color:#776142}.screen-collection .collection-onboarding{background:#f1e1bc;color:#4e3c27;border-color:#b39560}.screen-collection .support-candidate strong,.screen-collection .support-manage-row>div>strong{color:#463522}
.screen-hero .hero-action-footer{background:#271d16f5;border-color:#b5985b66}.hero-stats .stat b{color:#e3c68f}.hero-skill{background:#21170f80;border-color:#b3966159}.hero-skill h3,.hero-name-side>span,.hero-tier-side b{color:#e1bf80}.hero-bio,.hero-skill p{color:#cfbd98}.equipment-button{background:#35281c;border-color:#a8875255}.equipment-button strong{color:#e5ca92}.hero-bottom-actions .primary{font-size:15px;letter-spacing:1px}
.chapter-number{background:#392c1d;border-color:#ac8a5677;color:#e7c887}.chapter-entry:before{background:#b795564b}.chapter-copy small,.page-intro p{color:#bdac8b}
.screen-tavern .scene:after{background:linear-gradient(#24170a10,transparent 20%,#281d12b0 46%,#241a12f0 75%,#211911)}.tavern-v03 .tavern-sign>span{background:#39261cbf;border-color:#b69154}.tavern-v03 .recruit-button small{color:#6b4826}.tavern-wishlist p,.tavern-visit p,.tavern-section-title>span{color:#c4b38e}.tavern-v03 .tavern-section-title h3{color:#e4c58b}.tavern-v03 .tavern-wishlist,.tavern-v03 .tavern-visit{border-color:#a78b554f}.pack-modal{background:linear-gradient(#1f170c50,#21170fa1),url('assets/materials/war-table.webp') center/cover}.pack-footer{border-color:#b0925a65}.pack-heading h2{color:#f1d49b}
.dialogue-box{background:#eddbb5;border-color:#ae854c;box-shadow:0 -4px 15px #1b100a66}.dialogue-text{color:#3f3326}.dialogue-person h3{color:#8c3322}.dialogue-next{color:#873520}.story-portrait img{filter:saturate(.9)}
.modal-backdrop{background:#120b09c4}.modal,.information-dialog,.save-dialog,.confirm-dialog{background:#30261b;border-color:#be9b65;color:#e8d4ac}.modal h2,.information-dialog h2{color:#edd09a}.modal input,.save-dialog input{background:#20170f;color:#edddbb}.settings-section,.fusion-rules,.leaderboard-panel{border-color:#a8895345}.setting-row{border-color:#a88b5433}.settings-screen p,.fusion-rules p,.hero-source p{color:#c2b28f}.shop-product,.equipment-row button{background:#382a1d;border-color:#ae8e5966}.shop-product h3{color:#ebd0a0}.shop-notice{background:#53372244;border-color:#be935c66}.result-screen{background:linear-gradient(#2c211955,#211710dd)}
@media(max-width:340px){.screen-battle .enemy-zone{margin-inline:13px;grid-template-columns:55px minmax(0,1fr) 26px;gap:8px;padding-right:8px}.opponent-portrait{min-height:85px}.screen-battle .health-label strong{font-size:12px}.screen-battle .health-label>span{font-size:14px}.screen-battle .health-label{gap:4px}.screen-battle .enemy-zone .health-label small{display:none}.enemy-tactics span{font-size:10px}.screen-battle .support-rail{margin-inline:13px}.screen-battle .battle-feedback{left:16px;right:16px}.screen-battle .support-preview-count{font-size:10px}}
@media(max-height:740px){.screen-battle .enemy-zone{min-height:88px;margin-top:8px}.opponent-portrait{min-height:86px}.screen-battle .support-rail{margin-top:8px}.screen-battle .played-cards{height:94px;flex-basis:94px}.screen-battle .played-cards .poker-card{max-height:91px}.screen-battle .played-cards.has-cards{grid-template-columns:repeat(var(--played-count),minmax(0,61px))}.screen-battle .battle-field{min-height:147px;padding-top:7px}.screen-battle .battle-scene{height:205px}}
@media(max-height:620px){.screen-battle .enemy-zone{margin-top:5px;min-height:69px;grid-template-columns:46px minmax(0,1fr) 26px;gap:8px}.opponent-portrait{min-height:67px}.opponent-status{padding:4px 0}.enemy-tactics{margin-top:5px;padding-top:4px;gap:2px}.enemy-tactics span{-webkit-line-clamp:1;font-size:10px}.enemy-tactics b{font-size:10px}.screen-battle .support-rail,.screen-battle .support-rail:not(.no-supports){margin-top:5px;padding-block:3px}.screen-battle .support-rail.no-supports{height:38px;min-height:38px}.screen-battle .support-rail:not(.no-supports) .support-rail-heading{display:none}.screen-battle .battle-field{min-height:91px;padding:3px 15px 37px}.screen-battle .played-cards{height:53px;flex-basis:53px}.screen-battle .played-cards .poker-card{max-height:52px}.screen-battle .played-cards.has-cards{grid-template-columns:repeat(var(--played-count),minmax(0,35px))}.screen-battle .battle-scene{height:140px}.screen-battle .player-zone{min-height:43px}.screen-battle .hand-area{--fan-card-width:72px}.screen-battle .hand-tools{height:42px}.screen-battle .battle-feedback{min-height:34px}.screen-battle .hand-announcement strong{font-size:18px}.screen-battle .encounter-opponent{width:36px;height:53px}.screen-battle .support-copy>strong{font-size:11px}.screen-battle .support-copy>small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.primary,.poker-card,.support-slot{transition:none}}

.story-npc-art{display:block;background:url('assets/enemies/story-atlas.webp') var(--story-x) 50%/200% 100% no-repeat;background-color:#c8b38f}.opponent-portrait img{width:155%;height:155%;max-width:none;left:-27.5%;top:0;object-position:50% 12%}

.opponent-portrait{padding:0;border-radius:0;cursor:pointer}.opponent-portrait:disabled{opacity:1;cursor:default}.opponent-portrait:focus-visible{outline:2px solid #f5d99a;outline-offset:3px}.play-estimate{min-width:0;flex:1}.support-preview-count{flex:0 0 auto;max-width:65px;font-size:10px;white-space:normal;text-align:right}.enemy-info-row{padding:10px 0;border-bottom:1px solid #b49b6140}.enemy-info-row strong{font:14px var(--serif);color:#e5c68c}.enemy-info-row p{font:14px/1.65 var(--serif);color:#e0d1b3;margin:5px 0 0}
