/* 2026-10: old printed cards, cinnabar seals and a jade cloth table.
   UI stays live HTML; scene paintings are atmosphere, never text containers. */
:root{--paper:#eee4c9;--copper:#d5b47c;--muted:#b9c4b3;--red:#a63c2c;--line:#c5b17b38}
.game-shell{background:#172c27}.game-shell:after{box-shadow:inset 0 0 35px #06161120}
.primary{background:#a53d2e;border:1px solid #d890615c;box-shadow:inset 0 0 0 3px #78251940,0 3px 0 #63271e,0 5px 12px #0715122b;border-radius:3px;color:#fff0d0;font-family:var(--serif);letter-spacing:1px}
.secondary{border-color:#b9a47865;background:#1a352fee;color:#e4d4ac;border-radius:3px}
.topbar{background:#efe4c7;color:#2d4035;border-bottom:1px solid #aa956952;box-shadow:0 2px 12px #08130d29;height:calc(62px + env(safe-area-inset-top,0px))}
.topbar .icon-button{color:#36493c}.topbar h1{font:24px var(--kai);letter-spacing:2px}.topbar .purse{color:#6a5736}
.topbar .coin-mark{border-color:#9b763b}.topbar .coin-mark:after{background:#9b763b}
.bottom-nav{background:#132c25;border-color:#b69d6847;padding-top:6px;height:calc(70px + env(safe-area-inset-bottom,0px));box-shadow:0 -6px 22px #031a1526}
.bottom-nav button{font:13px var(--serif);gap:4px;color:#a5b6a5}.bottom-nav .active{color:#eed8a2}.bottom-nav .active:before{height:3px;width:16px;left:calc(50% - 8px);background:#ad4c36}
.bottom-nav button svg{width:22px;height:22px;stroke-width:1.6}
.screen-title .scene:after{background:linear-gradient(#0c231b1a,#12271900 32%,#10281b24 56%,#10271fea 91%)}
.screen-title .scene{filter:saturate(.9);opacity:1}.title-screen{padding-top:calc(42px + env(safe-area-inset-top,0px))}
.title-seal{background:#a43829;box-shadow:0 0 0 2px #e6c68c44,0 2px 5px #0003;color:#f8dfaa}
.game-wordmark h1{color:#fff0c7;font-size:112px;text-shadow:2px 4px 0 #162e267d,0 3px 16px #11281970}
.game-wordmark p{color:#f5dfb3}.title-verse{color:#fff0d0;font-size:16px;text-shadow:0 2px 4px #15271b}
.title-start button{height:60px}.title-start p{color:#d5d9c5}.title-links .text-button{color:#d6d3b8}
.screen-camp .scene{opacity:1}.screen-camp .scene:after{background:linear-gradient(#0e281513,transparent 22%,#15302626 37%,#142e26ed 77%,#142e26)}
.camp-screen{padding:22px 24px 8px}.camp-location{align-items:flex-start}.camp-location>span{font:23px var(--kai);color:#ffedbc;border-color:#c15c3f;text-shadow:0 2px 6px #112915}
.camp-location small{padding-top:3px;color:#f0ebd7;font-size:12px}.camp-chapter{padding:28px 0 22px}.camp-chapter>p{letter-spacing:4px;font:13px var(--serif);color:#e5c68e}
.camp-chapter h2{font-size:44px;color:#fff0c9}.camp-verse{font-size:16px;color:#dddcc8}.camp-secondary{gap:8px}.camp-secondary .secondary{font-size:13px;min-height:45px;padding:10px 3px;background:#19352d}
.camp-save{color:#adbdab}.camp-community .text-button{color:#d4d4b9}
/* Battle: bright painted proscenium above an uninterrupted physical card table. */
.screen-battle{background:#153b2c url('assets/materials/jade-cloth.webp') center/100% 100% no-repeat}
.screen-battle .battle-scene{inset:56px 0 auto;height:265px;opacity:1;background-position:center 48%;mask-image:linear-gradient(#000 76%,transparent);filter:saturate(.86)}
.screen-battle .battle-scene:after{background:linear-gradient(#09261961,transparent 50%,#102b2255)}
.screen-battle .battle-top{height:56px;padding:0 13px 0 20px;background:#eee3c6;color:#344334;box-shadow:0 2px 8px #061b1833}
.screen-battle .battle-top>div{gap:11px}.screen-battle .battle-top strong{font:23px var(--kai);letter-spacing:1px;color:#293e31}
.screen-battle .battle-top span{font:12px var(--serif);color:#8c583b;writing-mode:vertical-rl;letter-spacing:2px;line-height:1.1}
.screen-battle .battle-top .icon-button{color:#506047}.screen-battle .battle-top .sr-only{writing-mode:horizontal-tb}
.screen-battle .enemy-zone{margin:12px 17px 0;padding:10px 12px;gap:10px;min-height:62px;background:#14362cd9;border:1px solid #d3bc823f;border-radius:3px;box-shadow:0 3px 12px #0b1b1b29;align-items:center}
.opponent-seal{font:24px var(--kai);color:#dfcba0;border:1px solid #cab0746e;width:34px;height:36px;display:grid;place-items:center;flex:none;box-shadow:inset 0 0 0 3px #0d261e66}
.screen-battle .health-label{font-size:13px;margin-bottom:7px}.screen-battle .health-label strong{font:15px var(--serif);color:#f2e1b9}.screen-battle .health-label>span{font:17px Georgia,serif;color:#f4ead0}.screen-battle .health-label small{font:10px Georgia,serif;color:#b7bda7}
.screen-battle .health-track{height:6px;border-radius:0;background:#081e17a1;box-shadow:0 1px #e5d19424}.screen-battle .health.enemy .health-track>span{background:#c7674e}.screen-battle .health.player .health-track>span{background:#bed197}
.screen-battle .enemy-count{flex-direction:column;align-items:center;gap:3px;font:10px var(--serif);padding-left:8px;border-left:1px solid #c6c19a30}.screen-battle .enemy-count b{font:24px/1 Georgia,serif;color:#f4e2b6}
.screen-battle .support-rail{margin:78px 17px 0;padding:8px 10px;background:#15372fe8;border:1px solid #afae7550;border-radius:3px;box-shadow:0 3px 12px #09211725}
.screen-battle .support-rail.no-supports{display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 12px}.companion-seal{font:22px var(--kai);color:#c7bd95;border-right:1px solid #aeae7440;padding-right:10px}
.no-supports>div{display:flex;flex-direction:column;gap:3px;flex:1}.no-supports strong{font:14px var(--kai);color:#e5d7b3}.no-supports>div>span{font:11px var(--serif);color:#b7c3a8}.no-supports>small{font:10px var(--serif);color:#c4bd92}
.screen-battle .support-rail-heading{color:#c4cdb4}.screen-battle .support-rail-heading small{color:#b9c1a5}.support-slot .support-portrait{box-shadow:1px 2px 3px #091c1550}.support-copy>strong{font-size:13px}.support-copy>small{color:#d6cbab}.support-vacant{border-style:solid}
.screen-battle .battle-field{padding:10px 21px 62px;min-height:180px;overflow:visible}
.screen-battle .played-cards{height:106px;flex-basis:106px;min-height:70px}
.screen-battle .played-cards.has-cards{grid-template-columns:repeat(var(--played-count),minmax(0,69px));gap:5px;max-width:320px}
.screen-battle .played-cards .poker-card{height:auto;aspect-ratio:2/3;max-height:103px;width:100%;box-shadow:0 5px 9px #031b174d}
.screen-battle .played-cards .basic-pips{display:block}.screen-battle .played-cards .basic-pips i{font-size:13px}.screen-battle .played-cards .basic-poker .card-index b,.screen-battle .played-cards .basic-poker .card-index i{font-size:17px}
.screen-battle .played-cards .basic-face{font-size:33px}.screen-battle .played-cards .basic-face small{font-size:19px}
.screen-battle .table-seal{width:100px;height:92px;border:0;transform:none;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#d9d2a136;font:39px/1 var(--kai);gap:9px}.table-seal small{font:12px var(--serif);letter-spacing:6px;padding-left:6px}
.screen-battle .hand-announcement{margin-top:8px;min-height:29px}.screen-battle .hand-announcement strong{font:24px var(--kai);color:#eed3a0;text-shadow:0 2px 3px #0a1c1366}
.screen-battle .battle-feedback{left:22px;right:22px;bottom:4px;min-height:50px;border-top:1px solid #c3b47d47;padding:7px 0}.play-estimate strong{font:16px var(--serif);color:#f1dfb4}.play-estimate small{font-size:11px;color:#c8cbb0}.support-preview-count{color:#bbc8ac;font-size:11px}
.screen-battle .player-zone{margin:0 18px;padding:7px 0;min-height:53px;gap:18px;border-top:1px solid #c3b47d47}.screen-battle .player-zone .health-label strong{font-size:13px}.screen-battle .deck-stack{padding:0;gap:8px;min-width:83px}.screen-battle .deck-back{width:26px;height:37px;background:#203b2f;box-shadow:2px 2px 0 #b1aa7766,4px 4px 0 #234b37;border-color:#c6ad70;color:#e0c386}
.screen-battle .hand-area{background:none;padding:0 18px 2px;--fan-card-width:clamp(86px,25.5vw,106px);--fan-lift:22px}
.screen-battle .selection-label{font-size:11px;color:#c6d1b9}.screen-battle .selection-label b{font:15px var(--kai);color:#efcc8c}.screen-battle .hand-tool{color:#e1dcc0;font-size:12px}.screen-battle .redraw-button b{border-color:#b9ad7970;color:#ebd299}
.screen-battle .hand-grid.hand-fan{padding-top:27px;padding-bottom:13px}.screen-battle .hand-fan .hand-card{border-color:#d8cba7;box-shadow:-2px 2px 4px #04190f40,0 7px 10px #031a153b;border-radius:5px}
.basic-poker{background:#faf5e7;color:#26342d;border-color:#d5c9ae}.basic-poker.red-suit{color:#ac392b}.basic-poker .card-index{box-shadow:none}
.basic-poker .card-index>b{font-family:Georgia,'Times New Roman',serif;font-weight:700;letter-spacing:-1px}.basic-poker .basic-face{font-family:Georgia,serif;font-weight:700;border:1px solid #ac96643d;color:inherit;background:repeating-linear-gradient(45deg,transparent 0 5px,#bca87809 5px 6px)}
.basic-poker .basic-face:before,.basic-poker .basic-face:after{content:'';position:absolute;width:7px;height:7px;border:1px solid currentColor;opacity:.3;transform:rotate(45deg)}.basic-poker .basic-face:before{top:4px;left:4px}.basic-poker .basic-face:after{bottom:4px;right:4px}.basic-poker .basic-joker{font-family:var(--kai);font-weight:400}
.screen-battle .hand-fan .card-index:not(.card-index-bottom){left:6px;top:6px;background:none;box-shadow:none}.screen-battle .hand-fan .card-index b{font-size:24px}.screen-battle .hand-fan .card-index i{font-size:22px}
.screen-battle .hand-fan .hero-poker .card-index:not(.card-index-bottom){background:#f3e8cbef;padding:2px 1px;left:4px;top:4px}.screen-battle .hand-fan .hand-card.selected{border-color:#e7bf67;box-shadow:0 0 0 1px #e7bf67,-2px 2px 4px #03170d40,0 10px 13px #031a154d}
.screen-battle .hand-fan .selected-tick{background:#a8402d;color:#fff1c8;width:13px;height:13px;line-height:13px;box-shadow:none}.screen-battle .hand-fan .basic-face{font-size:43px}.screen-battle .hand-fan .basic-pips i{font-size:20px}
.screen-battle .battle-actions{background:#0e2c2394;border-top:1px solid #b1a97530;padding:12px 18px calc(14px + env(safe-area-inset-bottom,0px));gap:12px;grid-template-columns:1fr 1.8fr}.screen-battle .battle-actions button{height:49px;font:20px var(--kai);letter-spacing:2px}.screen-battle .battle-actions .secondary{background:#16392d;border-color:#b8a16f66}
/* The collection becomes a bound album instead of a dark settings list. */
.screen-collection{background:#e7d9b8;color:#304336}.screen-collection .scroll-content{background:repeating-linear-gradient(0deg,transparent 0 3px,#624f2403 3px 4px);padding:18px 22px 30px}
.screen-collection .collection-heading{padding:0 0 18px}.screen-collection .collection-heading h2{font:34px var(--kai);color:#283e31}.screen-collection .collection-heading p{color:#756b4f;font-size:12px}.screen-collection .collection-tabs{border-color:#98845340}.screen-collection .collection-tabs button{color:#756b4f;font:16px var(--kai)}.screen-collection .collection-tabs button.active{color:#963d2e;border-color:#a04732}
.screen-collection .collection-filter{border-color:#98845340;gap:24px}.screen-collection .collection-filter button{color:#817256;font-size:12px}.screen-collection .collection-filter .active{color:#8c3d2b}.screen-collection .collection-filter .active:after{background:#9b4330}
.screen-collection .collection-card-info,.screen-collection .collection-hint,.screen-collection .archive-note,.screen-collection .collection-heading p{color:#786a50}.screen-collection .collection-card-info b{color:#943d2b}.screen-collection .collection-grid{gap:20px 12px}.screen-collection .collection-item.unowned .poker-card{filter:saturate(.55);opacity:.78}
.screen-collection .collection-section-heading h3,.screen-collection .collection-subtitle,.screen-collection .collection-onboarding h3{color:#384833}.screen-collection .collection-onboarding p,.screen-collection .collection-section-heading span,.screen-collection .deck-summary,.screen-collection .support-candidate p,.screen-collection .support-manage-row p{color:#77694f}.screen-collection .support-candidate strong,.screen-collection .support-manage-row>div>strong{color:#364b38}
.screen-collection .collection-onboarding{background:#f2e6c6;border:1px solid #ad95653d;box-shadow:0 10px 24px #88774b12}.screen-collection .onboarding-seal{color:#a04732;border-color:#aa654c66}
.screen-tavern .scene{opacity:1;filter:saturate(.85)}.screen-tavern .scene:after{background:linear-gradient(#24170a10,transparent 20%,#172a20bb 46%,#122a23f5 75%,#122a23)}
.tavern-v03 .tavern-sign{padding-top:23px;height:210px}.tavern-v03 .tavern-sign>span{color:#f4d39c;text-shadow:0 2px 5px #291405}.tavern-v03 .tavern-sign h2{color:#fff0cf;font-size:31px;text-shadow:0 2px 8px #281907}
.tavern-v03 .tavern-bottom>p{color:#d1d1b6}.tavern-v03 .recruit-button{min-height:65px}.tavern-v03 .tavern-section-title h3{font-size:18px;color:#e5d9b6}.tavern-v03 .tavern-wishlist,.tavern-v03 .tavern-visit{border-color:#b3a97844}.game-select{border-color:#b4a4755c;background:#18382e;color:#e7dcc0}
.dialogue-box{background:#eee1c2;color:#344331;border-top:2px solid #b49059;box-shadow:0 -5px 22px #14251c29}.dialogue-person h3{color:#923c2c}.dialogue-person>span{color:#85744e}.dialogue-text{color:#344032}.dialogue-next{color:#8d3829}.dialogue-actions .text-button{color:#78694d}
@media(max-width:340px){.screen-battle .hand-area{--fan-card-width:82px;padding-inline:14px}.screen-battle .battle-top{padding-left:15px}.screen-battle .enemy-zone{margin-inline:13px}.screen-battle .support-rail{margin-inline:13px}.screen-battle .battle-top strong{font-size:21px}.screen-battle .health-label strong{font-size:13px}.screen-battle .battle-feedback{left:17px;right:17px}.screen-battle .support-preview-count{font-size:10px}.screen-battle .battle-actions button{font-size:18px}.screen-battle .hand-fan .card-index b{font-size:22px}.camp-chapter h2{font-size:36px}}
@media(max-height:740px){.screen-battle .support-rail{margin-top:40px}.screen-battle .battle-field{min-height:150px;padding-bottom:51px}.screen-battle .played-cards{height:85px;flex-basis:85px}.screen-battle .played-cards .poker-card{max-height:84px}.screen-battle .played-cards.has-cards{grid-template-columns:repeat(var(--played-count),minmax(0,56px))}.screen-battle .battle-feedback{min-height:44px}.screen-battle .battle-top{height:49px}.screen-battle .battle-scene{top:49px;height:230px}.screen-battle .battle-actions{padding-top:9px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}.tavern-v03 .tavern-sign{height:160px}.camp-chapter{padding-top:15px;padding-bottom:16px}.game-wordmark h1{font-size:96px}.title-verse{margin-top:20px}}
@media(max-height:620px){.screen-battle .support-rail{margin-top:15px;padding-block:5px}.screen-battle .support-rail.no-supports{min-height:41px}.screen-battle .enemy-zone{margin-top:6px;min-height:53px;padding-block:6px}.screen-battle .battle-field{min-height:105px;padding:4px 16px 40px}.screen-battle .played-cards{height:52px;flex-basis:52px;min-height:30px}.screen-battle .played-cards .poker-card{max-height:52px}.screen-battle .played-cards.has-cards{grid-template-columns:repeat(var(--played-count),minmax(0,37px))}.screen-battle .played-cards .basic-poker .card-index b,.screen-battle .played-cards .basic-poker .card-index i{font-size:12px}.screen-battle .played-cards .basic-pips i{font-size:9px}.screen-battle .battle-feedback{min-height:36px;padding:3px 0}.screen-battle .table-seal{height:47px;font-size:27px;gap:3px}.screen-battle .table-seal small{font-size:9px}.screen-battle .hand-announcement{margin-top:4px;min-height:22px}.screen-battle .hand-announcement strong{font-size:19px}.screen-battle .player-zone{min-height:44px;padding-block:4px}.screen-battle .hand-area{--fan-card-width:77px;--fan-lift:18px}.screen-battle .hand-grid.hand-fan{padding-top:23px;padding-bottom:8px}.screen-battle .battle-actions{padding-top:7px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}.screen-battle .battle-actions button{height:44px}.screen-battle .hand-fan .basic-face{font-size:32px}.screen-battle .hand-fan .basic-pips i{font-size:15px}.title-screen{padding-top:22px}.game-wordmark h1{font-size:80px}.tavern-v03 .tavern-sign{height:120px}}

.screen-battle .battle-top>div>span{writing-mode:horizontal-tb;letter-spacing:1px;white-space:nowrap;font:12px var(--serif);padding:4px 6px;color:#a2442f;border:1px solid #a2442f55}
@media(max-height:620px){.screen-battle .support-rail.no-supports{height:41px;min-height:41px;flex-shrink:0}.screen-battle .support-rail.no-supports strong{line-height:15px}.screen-battle .support-rail.no-supports>div>span{line-height:13px}.screen-battle .battle-field{min-height:94px}.screen-battle .hand-area{--fan-card-width:73px}.screen-battle .hand-fan .card-index b{font-size:21px}.screen-battle .hand-fan .card-index i{font-size:18px}.screen-battle .hand-fan .card-index-bottom b,.screen-battle .hand-fan .card-index-bottom i{font-size:11px}}
.title-verse{font-size:14px;max-height:none;white-space:nowrap;line-height:2;letter-spacing:2px}
.camp-chapter h2{font-size:36px;max-height:none;white-space:nowrap;line-height:1.2;letter-spacing:4px}.camp-chapter>p{white-space:nowrap}.camp-chapter .camp-verse{max-height:170px}
.screen-collection .collection-tabs{background:transparent;border-bottom:1px solid #9c855246}.screen-collection .collection-tabs button{background:transparent}.screen-collection .collection-tabs button.active{background:#f2e6c5;border-bottom:2px solid #a04732}
.tavern-v03{background:transparent}.pack-modal{background:linear-gradient(#102d2370,#0c241ddd),url('assets/materials/jade-cloth.webp') center/cover}
@media(max-height:620px){.screen-battle .battle-scene{height:150px}.camp-chapter h2{font-size:29px;letter-spacing:2px}.title-verse{font-size:12px;line-height:1.8;margin-top:12px}}

@media(max-height:620px){.screen-battle .support-rail:not(.no-supports){margin-top:0;padding-block:3px}}
