/* Paper, ink and bookcloth. Decoration does not take space from the game. */
:root{--wax:#9b4821;--salt:#216a58;--thread:#6d4584;--lead:#3c5f81;--paper:#f0e7cf;--panel-dark:#203430;--edge:#687466;--text:#eee9d9;--muted:#c1c9b8;--gold:#e2bd77;--cloth:repeating-linear-gradient(0deg,#ffffff02 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,#0000000c 0 1px,transparent 1px 4px);--grain:url('assets/paper-grain.svg')}
html,body{background:#1c2d29;color:var(--text)}
.topbar{background:var(--cloth),#1b302b;border-bottom-color:#9f8a5f;box-shadow:inset 0 -3px #0d1e1a}
.brand{gap:10px;color:#f1d69b}.brand>span:last-child{letter-spacing:-.7px}
.brand-stamp{display:grid;place-items:center;width:31px;height:33px;flex:none;border:1px solid #d0aa66;border-radius:45% 45% 3px 3px;box-shadow:inset 0 0 0 3px #1b302b,inset 0 0 0 4px #ae8952;background:#b8773d22}
.brand-stamp .resource-drawing{width:22px;height:24px;stroke-width:1.65}
.topbar nav button{color:#c3caba}.topbar nav button.active{background:#bda16b18;border-color:#d4ac69;color:#fff0c6}.new-duel-button{background:#354a3f;border-color:#9c9b7a;color:#f0e8d2}.new-duel-button:hover{background:#445b48;border-color:#d0b37b}.practice-label{color:#c1c6b6}
.duel-main{border-color:#859078;background:#263d35;box-shadow:0 2px 10px #07130e55}
.duel-toolbar,.hand-heading{background:var(--cloth),#30483c;border-color:#7a8568}
.duel-toolbar .phase-steps>span{color:#d3dac8}.duel-toolbar .phase-steps>span.active{background:var(--grain),#eed39a;color:#29362b;border-color:#caa361;box-shadow:inset 0 0 0 1px #fff0c799}
.duel-toolbar .priority-mark.yours{color:#ffe0a0}.priority-mark.yours:before{background:#ebc177}
.card-size-control select,.duel-toolbar>button{background:#22382e;border-color:#899177;color:#eee8d4}

/* The historical plate reads as a watermark; cards remain above it. */
.battlefield{isolation:isolate;background:#dddcc6}
.field-half.opponent-field{background:var(--grain),linear-gradient(120deg,#d6ddd6,#ced9d3)}
.field-half.your-field{background:var(--grain),linear-gradient(120deg,#e4dec4,#d9dec4)}
.battlefield:before{content:'';position:absolute;inset:0;z-index:1;background:url('assets/dueling-ground-etching.jpg') center 58%/cover no-repeat;mix-blend-mode:multiply;opacity:.13;mask-image:linear-gradient(90deg,#000,#0007 32%,#0007 68%,#000);pointer-events:none}
.field-half:before{content:'';display:block;position:absolute;inset:34px 8px 7px;z-index:1;pointer-events:none;border:24px solid transparent;border-image:url('assets/folio-border.svg') 36 stretch;opacity:.5}
.zone-caption{position:relative;z-index:2;background:#f8f0d95c;color:#344c43;border-bottom-color:#697b5a38;box-shadow:inset 3px 0 #8e6050}
.your-field .zone-caption{box-shadow:inset 3px 0 #4b7154;color:#3c553d}.zone-caption>span:last-child{color:#3d584d}
.empty-field,.opponent-field .empty-field{font-size:14px;color:#394c3d;opacity:1}
.combat-divider{z-index:3;background:var(--cloth),#65745c;border-color:#798568;color:#fff1ce;box-shadow:inset 0 1px #f9e7ad44,inset 0 -1px #203b2955}
.combat-divider span{background:#65745c;font-weight:600;position:relative}
.combat-divider span:before,.combat-divider span:after{content:'';position:absolute;top:50%;width:45px;border-top:1px solid #d2c99a80}.combat-divider span:before{right:100%}.combat-divider span:after{left:100%}
.in-combat .combat-divider,.in-combat .combat-divider span{background:#93583e;border-color:#ad7755;color:#fff1d1}
.player-hand{background:var(--cloth),#263b31;box-shadow:inset 0 3px 7px #0b201655}
.hand-heading{color:#e5e8d4}.hand-view-toggle{color:#edcc8c}
.command-bar{background:#263e33;border-color:#778368;box-shadow:inset 0 1px #bac7a71c}.command-copy p{color:#d1dbc7}.command-copy strong{color:#fff0cc}.has-priority .command-indicator{background:#e2b778}

/* Small engraved scenes sit away from the health number. */
.player-panel,.stack-panel,.history{background:#223930;border-color:#667b66;box-shadow:inset 0 0 0 2px #10271d44}
.player-panel-heading,.history .panel-title,.stack-panel .panel-title{background:var(--cloth),#344c3c;border-color:#738064;color:#e7e3cb}.opponent .player-panel-heading{background:var(--cloth),#4e4940}.you .player-panel-heading{background:var(--cloth),#3a5b42}
.active-player{border-color:#d0b374;box-shadow:inset 0 0 0 1px #cfb46c4a}
.wizard-avatar,.you .wizard-avatar{background:#21392e}.wizard-print{position:absolute;inset:0 0 0 auto;width:50%;opacity:.38;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000 65%)}
.wizard-print .card-illustration{width:100%;height:100%;background:#e3d5aa}.wizard-print .historical-print{width:100%;height:100%}
.life-total,.you .life-total{color:#fff0ce;text-shadow:0 1px #091a10;font-variant-numeric:tabular-nums}.life-total small,.player-numbers small{color:#d0d7c0}.player-numbers{background:#2a4032}.player-numbers b{color:#f2ecd5}.player-numbers .player-gold b{color:#f4d18d}
.player-component-summary{background:#1c3327;border-color:#657b58}.player-component-summary>span{color:#c3cdb6}.discard-button{background:#304734;border-color:#718061;color:#d9e0cb}.discard-button:hover{background:#425b40}
.card-preview{background:transparent;border:0}.card-preview .panel-title{border-color:#718363;color:#d8e1ca}
.history .log-turn>span{color:#becab1;border-bottom-color:#96a97a33}.log-turn li,.log-turn li.spell,.client-tools .log-turn li.spell{color:#e0e5d6}.log-turn li.gold{color:#eed092}.log-turn li.damage,.log-turn li.death{color:#f1b898}.empty-stack{color:#c2cbb4}.stack-panel>p{color:#c3ceb7}.stack-item{background:#3b4b38;border-color:#889171;color:#f5ecd1}.stack-item em{color:#d4dfc5}.stack-item small{color:#e4cf9d}.client-foot button{color:#c8d3b9}

/* Color identifies components; ink and paper supply the card frame. */
.game-card,.game-card.familiar-card,.game-card.spell-card,.game-card.alchemy-card{background:var(--grain),var(--card-frame);border-color:#384c3b;outline-color:#9aa484;border-radius:3px;box-shadow:inset 0 0 0 1px #fff5d1a1,1px 3px 3px #0a1a1055}
.game-card:before{height:3px}.game-card:after{border-color:#44544166;border-radius:0}
.game-card .card-heading{background:#fff6dc22;border-bottom-color:#46513c60}.card-heading>b{color:#233b2b}
.game-card>.card-illustration{outline:1px solid #34483370;outline-offset:-1px;background:#eee5cf}
.card-type{background:#fbf4dfbf;color:#30462f;border-color:#53674466}.card-description{background:var(--grain),#fcf5e4;color:#263b28}
.game-card .stats{color:#263f2c;font-variant-numeric:tabular-nums}.game-card .stats .injured{color:#a23c24}.card-foot{border-top-color:#4d64484f}
.game-card.selected{outline:3px solid #f0be65;outline-offset:2px;box-shadow:0 0 0 5px #2d4029cc,0 3px 5px #08180e66}.game-card:hover{outline-color:#f8dba2}
.preview-paper{background:var(--grain),var(--card-frame);border-color:#3b4b37;outline-color:#acac83;box-shadow:inset 0 0 0 1px #fbf0cda1}
.preview-paper>p{background:var(--grain),#fbf3dc;color:#293c2b}.inspection-type,.inspection-stats,.inspection-credit{color:#344d36}.preview-paper>.card-timing{background:none;color:#36523c;border-top-color:#6b7c5359}.requirements>span,.requirements>div,.requirements p{color:#d7e2c9}.requirements .missing{color:#ffcca3}
.cost-symbol{border-radius:2px}.cost-symbol.shortfall{border:2px dashed #943d25;background:#ffe1bf;box-shadow:0 0 0 1px #fff3d8}
.unit-state-chip{background:#f5d48e;color:#514022;border-color:#9e7d43}.binding-chip{background:#354b32ed;border-color:#d0bd84;color:#ffebba}.damage-chip{background:#963e2c;color:#fff2dc;border-color:#dfb091}
.bound-charms button{background:#e2e7ce;border-color:#8c9c79;color:#25422e}
.legal-target{outline:3px dashed #267264!important;box-shadow:0 0 0 5px #fff1b599!important}.wizard-avatar.legal-target{outline-color:#ffe5a0!important}
.unit.attacker{outline-color:#b34f2e}.unit.assigned{outline-color:#386b9c}

/* The component market is a paper ledger, with plainly printed prices. */
.shop-ledger{background:var(--grain),#e9e2ca;border-color:#9b9c78;box-shadow:inset 0 0 0 2px #fff6d85c}
.ledger-heading{background:var(--cloth),#465a3f;border-bottom:3px double #b4a470}.ledger-heading h2{color:#fff0c4;font-weight:700}.component-help{background:#293f2a;border-color:#a9ac83;color:#f4d893}
.shop-item{background-image:var(--grain);border-bottom-color:#6b76443b}.shop-item.wax,.component-school.wax{--school:#a95728;--school-paper:#f0d6ac}.shop-item.salt,.component-school.salt{--school:#247a65;--school-paper:#d1e2c9}.shop-item.thread,.component-school.thread{--school:#77518a;--school-paper:#e1d4e5}.shop-item.lead,.component-school.lead{--school:#45688a;--school-paper:#cfdfdd}
.shop-item .resource-image{border:1px solid currentColor;outline:1px solid #fff9e277;outline-offset:-3px;border-radius:2px;background:#fff5d931}.shop-item .resource-image svg{stroke-width:1.65}
.resource-name>b{color:#293f2f;font-weight:600}.shop-item .resource-name>small{color:#435b49}.shop-price{background:#fff8df91;border:1px solid #6b77544f;padding:4px 6px;border-radius:1px;color:#526147}.shop-price b{color:#283e2b}
.shop-item:disabled{opacity:1;color:#586451}.shop-item:disabled .resource-image{opacity:.6}.shop-item:disabled .resource-name>b,.shop-item:disabled .shop-price b{color:#4d5a48}.shop-item:disabled .shop-price{border-style:dashed;background:#eee8d94d}.shop-item:disabled .resource-name>small{color:#52604b}
.shop-item.needed-resource:not(:disabled){outline:2px solid #9b5d2b;outline-offset:-3px}.shop-stock,.ledger-note{color:#3e5640}.shop-stock b{color:#283f2d}.shop-ledger .spent-stock{margin-left:12px;margin-right:12px;color:#3c513c}.ledger-note{line-height:1.5}

.primary-button{background:linear-gradient(#995b32,#834729);border-color:#e0ba7a;color:#fff6dd;box-shadow:inset 0 0 0 1px #623b2433,0 2px #11261a55}.primary-button:hover:not(:disabled){background:#9b6136}
.outline-button{background:#3d583e;border-color:#8c9d74;color:#f3edcf}.outline-button:hover:not(:disabled){background:#4c6a48}
.game-card:focus-visible,.target-options button:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #ffdc96;outline-offset:3px}
dialog{background:var(--cloth),#263c30;border-color:#acaa7d;color:#e9e7d5;box-shadow:0 10px 70px #06190c99,inset 0 0 0 3px #42583d}dialog h2{color:#f4db9e}.rules-sections{color:#dbe1cc}.rules-sections summary{color:#f1ddaa}.rules-sections details{border-top-color:#7c8a6c}.target-options button{background:#344e37;border-color:#8d9b78}.target-options button:hover{background:#466446}.target-options span{color:#d4dfc5}
.deckbuilder-header{border-bottom:3px double #8b9472}.deckbuilder h1,.ranked-page h1{color:#f1dfae}.deckbuilder-header p{color:#d0d7c0}.deck-list-panel,.ranked-page{background:#253c2e;border-color:#7d8e6b}.deck-list button:hover{background:#3b583c}.deck-edit{background:#344d35;border-color:#7c926c}.deck-edit>span,.deck-list button{color:#e2e7d4}
.component-school{background-image:var(--grain);border-bottom:1px solid #72815c88;box-shadow:inset 0 0 0 1px #fff3d34d}.component-school strong{color:#38563c}.catalogue-search{border-bottom-color:#788965}.catalogue-search input,.catalogue-search select,.example-deck select,.resource-filter select,.duel-setting select{background:#223b2b;border-color:#8a9d74;color:#eceddc}.filters button{color:#cbd8bb}.filters button.active{background:#45603f;border-color:#a7ba8c;color:#fff2ca}.catalogue-paging,.example-deck+p,.deck-demand>span,.deck-demand small{color:#cfdbc0}.deck-metrics,.deck-save small,.deck-list-panel>p{color:#c8d4b8}
footer{border-color:#738362;color:#bccab0}
@media(max-width:760px){.brand-stamp{width:24px;height:27px}.brand-stamp .resource-drawing{width:19px;height:21px}.brand{gap:7px}.topbar{gap:5px}.topbar nav button{padding-left:8px;padding-right:8px}.battlefield:before{opacity:.09;background-position:50% 50%}.field-half:before{inset:36px 6px 8px;border-width:19px;opacity:.43}.shop-price{padding:5px 7px}.wizard-print{width:43%}.combat-divider span:before,.combat-divider span:after{width:27px}.empty-field,.opponent-field .empty-field{font-size:14px}}

.game-card:focus-visible{outline-color:#285338;box-shadow:0 0 0 5px #fce8a5}

/* Compact hands need the entire name and component vector, even on four-school cards. */
.duel-client[data-hand-view="compact"] .player-hand .card-heading{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;padding-bottom:3px;min-height:0;flex-shrink:0}
.duel-client[data-hand-view="compact"] .player-hand .card-heading>b{width:100%;min-width:0}
.duel-client[data-hand-view="compact"] .player-hand .card-cost{align-self:flex-start}
.duel-client[data-hand-view="compact"] .player-hand .familiar-card .card-type{padding:2px 53px 2px 2px;margin-top:auto;min-height:33px;line-height:1.1}
.duel-client[data-hand-view="compact"] .player-hand .familiar-card .card-foot{position:absolute;bottom:5px;right:5px;min-height:27px;padding:0 0 0 3px;border:0;border-left:1px solid #5367444d}
.duel-client[data-hand-view="compact"] .player-hand .familiar-card .stats{gap:3px}
.duel-client[data-hand-view="compact"][data-card-size="small"] .player-hand .familiar-card .card-type{padding-right:40px}
.duel-client[data-hand-view="compact"][data-card-size="small"] .player-hand .familiar-card .stats{font-size:23px;gap:2px}
.duel-client[data-hand-view="compact"][data-card-size="small"] .player-hand .familiar-card .stats i{font-size:18px}
