/* Interactive ascent over the illustrated tower; the route remains real UI. */
#card-workbench .pc-tower{position:relative;isolation:isolate;overflow:hidden;height:var(--tower-height,220px);min-width:0;border:1px solid #b59aaf;border-radius:10px;background:linear-gradient(90deg,#21152322,#1c13215c 35%,#19111ec9),url('../images/theme/endless-tower.png') center 60%/cover;box-shadow:inset 0 0 0 3px #a793a333,0 5px 20px #0004}
.pc-tower-art{position:absolute;inset:0 auto 0 0;width:22%;z-index:-1;background:url('../images/theme/endless-tower.png') left center/auto 100% no-repeat;mask-image:linear-gradient(90deg,#000 70%,transparent)}
.pc-tower-content{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:12px 24px 12px 23%;box-sizing:border-box;gap:6px}
.pc-tower-heading{display:flex;justify-content:space-between;gap:16px;align-items:center}
#card-workbench .pc-tower-eyebrow{display:block;font:700 9px/1.4 Arial,sans-serif;letter-spacing:.2em;color:#e4b5d3}
#card-workbench .pc-tower h2{margin:2px 0 0;font:700 clamp(20px,1.7vw,28px)/1.15 Georgia,serif;color:#f6cf86;-webkit-text-fill-color:#f6cf86;text-shadow:0 2px 5px #0009}
.pc-tower-record{display:flex;gap:8px;align-items:center;color:#e3cadc}
#card-workbench .pc-tower-record strong{font:700 28px/1 Georgia,serif;color:#f1c580}
#card-workbench .pc-tower-record>span{max-width:75px;font:11px/1.3 Arial,sans-serif}
.pc-tower-route{position:relative;min-height:0;margin:4px 16px 0 0}
.pc-tower-route>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pc-tower-trail-shadow,.pc-tower-trail{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round}
.pc-tower-trail-shadow{stroke:#120d1caa;stroke-width:7px}
.pc-tower-trail{stroke:#cda0be;stroke-width:1.5px;stroke-dasharray:4 5}
#card-workbench .pc-tower-node{position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);display:grid;justify-items:center;gap:0;padding:0;min-width:0;min-height:0;width:36px;height:36px;border:0;border-radius:50%;background:none;box-shadow:none;color:#d7bbce;cursor:pointer}
.pc-tower-node-icon{box-sizing:border-box;display:grid;place-items:center;width:32px;height:32px;border:1px solid #a88caa;border-radius:50%;background:radial-gradient(circle at 35% 25%,#51405d,#1c1528 75%);box-shadow:0 2px 5px #0009,inset 0 0 0 3px #af95ad22;font:700 12px/1 Arial,sans-serif}
.pc-tower-node-label{position:absolute;top:39px;left:50%;transform:translateX(-50%);white-space:nowrap;font:10px/1.3 Arial,sans-serif;text-shadow:0 1px 3px #000}
#card-workbench .pc-tower-node.is-current{color:#ffe2a0}
.is-current .pc-tower-node-icon{border:2px solid #f7c882;background:radial-gradient(circle,#ae538d,#4c274f);box-shadow:0 0 0 4px #f2be7b22,0 0 18px #ec97ce88}
.is-current .pc-tower-node-label{font-weight:700;color:#ffe1a6}
.is-cleared .pc-tower-node-icon{border-color:#c1dba0;color:#d0eeb9;background:#283229}
.is-reward .pc-tower-node-icon{border-color:#e7ba76;color:#f5cc80;font-size:19px}
.is-boss .pc-tower-node-icon{width:38px;height:38px;border-color:#e0a0ce;color:#ffc3ec;font-size:24px;background:radial-gradient(circle,#733f77,#261b32)}
.pc-tower-node:hover .pc-tower-node-icon{filter:brightness(1.3)}
.pc-tower-node:focus-visible{outline:2px solid #ffe0a5;outline-offset:5px}
.pc-tower-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:6px}
#card-workbench .pc-tower-footer p{margin:0;font:11px/1.4 Arial,sans-serif;color:#ecd2e3}
#card-workbench .pc-tower .pc-tower-open{white-space:nowrap;padding:7px 12px;min-height:31px;font-size:11px;background:linear-gradient(#754766,#41253f)!important;border-color:#d89abe}
#card-workbench .pc-tower.is-compact .pc-tower-content{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr;align-items:center;padding:8px 16px 8px 12%;gap:12px}
.pc-tower.is-compact .pc-tower-art{width:13%}
.pc-tower.is-compact .pc-tower-route,.pc-tower.is-compact .pc-tower-record,.pc-tower.is-compact .pc-tower-footer p{display:none}
.pc-tower.is-compact .pc-tower-footer{padding:0}
#card-workbench .pc-tower.is-compact h2{font-size:20px}
#card-workbench .pc-tower-dialog{width:min(800px,94vw);max-height:90vh;box-sizing:border-box;border:1px solid #c99bbf;background:linear-gradient(#201725ed,#1a1421fa),url('../images/theme/endless-tower.png') center/cover;color:#f8e7f2;padding:28px}
#card-workbench .pc-tower-dialog h2{color:#f4cd83;-webkit-text-fill-color:#f4cd83;font-family:Georgia,serif;margin:6px 36px 12px 0}
#card-workbench .pc-tower-dialog p{font-size:13px;line-height:1.5}
.pc-tower-opponent{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:18px 0}
.pc-tower-opponent>div{display:grid;gap:7px;align-content:start;text-align:center;min-width:0}
.pc-tower-opponent img{display:block;width:100%;aspect-ratio:695/1000;object-fit:contain}
.pc-tower-opponent strong{font-size:12px;color:#f1d69d;overflow-wrap:anywhere}
.pc-tower-opponent small{font-size:10px;color:#e5cbdf}
#card-workbench .pc-tower-rules{color:#c7afc4;font-size:11px!important}
.pc-tower-reward-preview{padding:10px 12px;border:1px solid #bb955a66;border-radius:7px;color:#f0cc8d;background:#82612b17}
.pc-tower-actions{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px}
#pc-tower-feedback{color:#f2cde6;min-height:1.5em}
@media(max-width:899px){#card-workbench .pc-tower h2{font-size:18px}.pc-tower-heading{gap:8px}.pc-tower-content{padding-right:12px}.pc-tower-record{display:none}.pc-tower-footer{gap:6px}#card-workbench .pc-tower-footer p{font-size:10px}}
@media(max-width:550px){#card-workbench .pc-tower.is-compact .pc-tower-content{padding-left:12px;gap:8px}#card-workbench .pc-tower.is-compact h2{font-size:16px}#card-workbench .pc-tower.is-compact .pc-tower-eyebrow{font-size:8px;letter-spacing:.1em}#card-workbench .pc-tower .pc-tower-open{font-size:10px;padding:7px;white-space:normal}#card-workbench .pc-tower-dialog{padding:20px 14px}.pc-tower-opponent{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pc-tower-opponent small{font-size:9px}}
/* Preserve the compact tower entry on shorter desktop screens. */
@media(min-width:900px) and (max-height:850px){
 .site-theme .page #card-workbench .pc-hub .pc-welcome{min-height:100px;padding:8px 20px!important}
 #card-workbench .pc-welcome h1{font-size:28px;margin:4px 0}
 #card-workbench .pc-welcome .eyebrow{font-size:11px}
 #card-workbench .pc-welcome p{font-size:12px}
 #card-workbench .pc-hub-values>span{padding:4px 0;gap:2px 8px;grid-template-columns:30px minmax(0,1fr)}
 #card-workbench .pc-hub-values .ca-value-icon,#card-workbench .pc-set-icon{width:30px;height:30px}
 #card-workbench .pc-hub-values strong{font-size:22px}
}
/* The supplied chest and dragon mark the milestones along a luminous rune trail. */
.pc-tower-trail-shadow{stroke:#f7ad7d44;stroke-width:11px;filter:blur(4px)}
.pc-tower-trail-glow{fill:none;stroke:#e88dff;stroke-width:5px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px #f6a2e5)}
.pc-tower-trail{stroke:#ffd386;stroke-width:1px;stroke-dasharray:none}
.pc-tower-runes{fill:#ffe7a5;font:10px Georgia,serif;letter-spacing:7px;paint-order:stroke;stroke:#793d8f;stroke-width:1px;dy:-3px}
#card-workbench .pc-tower-node.is-boss{width:78px;height:78px;z-index:2}
.pc-tower-node.is-boss .pc-tower-node-icon{width:78px;height:78px;border:0;background:none;box-shadow:none}
.pc-tower-node.is-boss .pc-tower-node-icon img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 8px #da77e4aa)}
.pc-tower-node.is-boss .pc-tower-node-label{top:76px;padding:2px 13px;border:1px solid #d9b576;border-radius:5px;background:#241226;color:#f5dba1;font-weight:700}
#card-workbench .pc-tower-node.is-reward{width:60px;height:55px;z-index:2}
.pc-tower-node.is-reward .pc-tower-node-icon{width:60px;height:55px;border:0;border-radius:0;background:radial-gradient(ellipse at bottom,#f5c56f55,transparent 70%);box-shadow:none}
.pc-tower-node.is-reward img{width:58px;height:50px;object-fit:contain;filter:drop-shadow(0 0 5px #ffbc6c77)}
.pc-tower-node.is-reward .pc-tower-node-label{top:54px;color:#f7dba2}
.is-current.is-reward .pc-tower-node-icon,.is-current.is-boss .pc-tower-node-icon{filter:drop-shadow(0 0 5px #ffd08a)}
.pc-tower-node.is-current:not(.is-reward):not(.is-boss) .pc-tower-node-icon{width:38px;height:38px;box-shadow:0 0 0 3px #f5c58233,0 0 15px #ffce8c88}
.pc-tower-node.is-current:not(.is-boss):not(.is-reward) .pc-tower-node-label{top:41px;padding:1px 7px;border:1px solid #ad884b88;border-radius:4px;background:#40222b}
.pc-tower-route{margin-right:45px}
#card-workbench .pc-tower-opponent.is-monster{display:block;border:1px solid #baa2c04d;border-radius:10px;padding:16px;background:linear-gradient(90deg,#18101f44,#18101fbb),var(--tower-room) center/cover}
.pc-tower-monster{display:grid!important;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center!important;gap:24px!important;text-align:left!important}
.pc-tower-monster-art>img{height:260px;aspect-ratio:auto;filter:drop-shadow(0 8px 10px #0008)}
.pc-tower-monster-stats{display:grid;gap:10px;min-width:0}
#card-workbench .pc-tower-monster-stats>strong{font:700 24px/1.2 Georgia,serif;color:#f1d69d}
.pc-tower-monster-stats>span{font-size:12px;color:#edd9e8}
.pc-tower-monster-stats>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pc-tower-monster-stats>div>span{display:grid;gap:3px;padding:8px;border:1px solid #c5a7bf44;border-radius:6px;background:#24162ac9}
#card-workbench .pc-tower-monster-stats small{font-size:10px;color:#e6d2e0}
.pc-tower-monster-stats b{font-size:20px;color:#f2ce8e}
.pc-tower-power{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;padding:12px 16px;border:1px solid #b690bd66;border-radius:8px;background:#4b2a4c44}
.pc-tower-power>span{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
.pc-tower-power strong{font-size:22px;color:#f4d18b;font-variant-numeric:tabular-nums}
.pc-tower-power>small{grid-column:1/-1;color:#d8c5d7;font-size:11px;line-height:1.5}
#card-workbench .ca-team-power{display:inline-flex;align-items:center;gap:8px;font:12px/1.3 Arial,sans-serif;color:#e7cddd;white-space:nowrap}
#card-workbench .ca-team-power strong{color:#f4ce87;font-size:20px;font-variant-numeric:tabular-nums}
#card-workbench .pc-deck-heading h2{margin-right:auto}
#card-workbench .ca-card-power{display:flex;justify-content:center;align-items:center;gap:8px;min-height:22px;margin:0;font:11px/1.3 Arial,sans-serif;color:#dfc5d8}
#card-workbench .ca-card-power strong{color:#f1d48f;font-size:13px;font-variant-numeric:tabular-nums}
#card-workbench .ca-detail-power{color:#ddc4d7;font-size:13px}
#card-workbench .ca-detail-power strong{color:#f1d48f;font-size:20px;margin-left:8px}
#ca-arena.is-tower-battle .ca-arena-shell{background:linear-gradient(#1c1425c9,#17101de8),var(--tower-room) center/cover fixed}
#ca-arena.is-tower-battle #ca-duelist-1{display:flex;justify-content:center;min-height:220px}
#ca-arena.is-tower-battle .ca-tower-monster{width:min(420px,80%);max-width:none}
#ca-arena.is-tower-battle .ca-tower-monster img{height:220px;width:100%;object-fit:contain}
#ca-arena.is-tower-battle .ca-tower-monster .ca-fighter-art{height:auto}
#ca-arena.is-tower-battle .ca-tower-monster>strong{font-size:18px}
.ca-monster-combat-stats{display:block;text-align:center;font-size:11px;color:#f5d3ac}
@media(max-width:1100px){#card-workbench .pc-home-power{font-size:10px}#card-workbench .pc-home-power strong{font-size:17px}}
@media(max-width:550px){.pc-home-power{order:3;width:100%;justify-content:center}.pc-tower-monster{grid-template-columns:1fr;gap:12px!important}.pc-tower-monster-art>img{height:190px}.pc-tower-monster-stats>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.pc-tower-power{grid-template-columns:1fr}.pc-tower-power>small{grid-column:1}.pc-tower-power strong{font-size:18px}#ca-arena.is-tower-battle .ca-tower-monster img{height:170px}#ca-arena.is-tower-battle #ca-duelist-1{min-height:190px}#card-workbench .ca-team-power strong{font-size:17px}}
@media(prefers-reduced-motion:reduce){.pc-tower-trail-shadow,.pc-tower-trail-glow{filter:none}}

.pc-tower-power[hidden]{display:none!important}

/* A shared crossed-swords emblem makes team strength a primary metric. */
#card-workbench .ca-team-power{display:inline-flex;align-items:center;gap:12px;padding:6px 14px;border:1px solid #d9b67788;border-radius:9px;background:linear-gradient(120deg,#70482c33,#302031cc);box-shadow:inset 0 1px #ffe7b522,0 2px 8px #0003;white-space:nowrap}
#card-workbench .ca-team-power .ca-power-icon{display:block;flex:none;width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 0 5px #e8b56e44)}
#card-workbench .ca-power-copy{display:grid;gap:2px;text-align:left}
#card-workbench .ca-power-copy>span{font:600 10px/1.2 Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#ead7c2}
#card-workbench .ca-team-power .ca-power-copy>strong{font:800 32px/1 Arial,sans-serif;color:#ffe0a0;text-shadow:0 1px 3px #0005;font-variant-numeric:tabular-nums;letter-spacing:.015em}
#card-workbench .pc-tower-power .ca-team-power{display:flex;min-width:0;padding:8px 12px}
#card-workbench .ca-deck-metrics>.ca-heading{flex-wrap:wrap;gap:10px}
@media(max-width:1100px){#card-workbench .pc-home-power{gap:8px;padding:5px 10px}#card-workbench .pc-home-power .ca-power-icon{width:34px;height:34px}#card-workbench .pc-home-power .ca-power-copy>strong{font-size:28px}}
@media(max-width:550px){#card-workbench .pc-home-power{box-sizing:border-box;width:100%;justify-content:center}#card-workbench .ca-team-power .ca-power-copy>strong{font-size:30px}#card-workbench .pc-tower-power .ca-team-power{padding:8px 12px}}
@media(min-width:900px) and (max-height:850px){#card-workbench .pc-home-power{gap:8px;padding:4px 10px}#card-workbench .pc-home-power .ca-power-icon{width:30px;height:30px}#card-workbench .pc-home-power .ca-power-copy>strong{font-size:26px}#card-workbench .pc-home-power .ca-power-copy>span{font-size:9px}}
@media(min-width:551px) and (max-width:899px){#card-workbench .pc-deck-heading{flex-wrap:wrap}#card-workbench .pc-deck-heading h2{flex-basis:100%}#card-workbench .pc-home-power{margin-right:auto}}
@media(min-width:900px) and (max-height:850px){#card-workbench .pc-deck-heading{padding-bottom:4px}}
/* Later floors show a fixed party, sharing one encounter budget. */
#card-workbench .pc-tower-opponent.is-monster.is-party{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px}
#card-workbench .is-party .pc-tower-monster{grid-template-columns:minmax(0,1fr);gap:8px!important;padding:10px;border:1px solid #c9a5bf44;border-radius:8px;background:#20152588}
#card-workbench .is-party .pc-tower-monster-art>img{height:145px}
#card-workbench .is-party .pc-tower-monster-stats>strong{font-size:18px}
#card-workbench .is-party .pc-tower-monster-stats>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#card-workbench .is-party .pc-tower-monster-stats>div>span{padding:6px}
#card-workbench .is-party .pc-tower-monster-stats b{font-size:16px}
@media(max-width:550px){#card-workbench .pc-tower-opponent.is-monster.is-party{gap:8px;padding:8px}#card-workbench .is-party .pc-tower-monster{padding:6px}#card-workbench .is-party .pc-tower-monster-art>img{height:100px}#card-workbench .is-party .pc-tower-monster-stats>strong{font-size:14px}#card-workbench .is-party .pc-tower-monster-stats>div{grid-template-columns:repeat(2,minmax(0,1fr))}#card-workbench .is-party .pc-tower-monster-stats>span{font-size:10px}#card-workbench .is-party .pc-tower-monster-stats small{font-size:9px}}

/* Reuse the value symbols shown in the album and deck view. */
.pc-tower-stat-label{display:flex;align-items:center;gap:6px;min-width:0}
.pc-tower-stat-label .ca-value-icon{width:22px;height:22px}
@media(max-width:550px){.pc-tower-stat-label{gap:4px}.pc-tower-stat-label .ca-value-icon{width:18px;height:18px}}

.pc-tower-monster-art{position:relative;min-width:0}
.pc-tower-element{position:absolute;top:-8px;left:-8px;display:grid;place-items:center;width:46px;height:50px;border:0;background:none;box-shadow:none;pointer-events:auto}
.pc-tower-element .ca-element-image{display:block;width:36px;height:42px;background-image:url('../images/cards/fantasy-elements.png');background-repeat:no-repeat;background-size:85.8px 217.2px}
@media(max-width:550px){.pc-tower-element{top:-6px;left:-6px;transform:scale(.8);transform-origin:top left}}

/* Fit the whole encounter on a wide stage instead of wrapping the third enemy. */
#card-workbench .pc-tower-dialog{width:min(1200px,96vw);max-width:96vw;max-height:96dvh;padding:20px 24px}
#card-workbench .pc-tower-opponent.is-monster.is-party{grid-template-columns:repeat(var(--enemy-columns),minmax(0,1fr));margin:12px 0}
#card-workbench .is-party .pc-tower-monster-art>img{height:clamp(100px,20dvh,180px)}
#card-workbench .is-party .pc-tower-monster-stats>strong{font-size:18px;line-height:1.2;min-height:2.4em}
/* Real endless-growth modifiers use the selected angled seal. */
.pc-tower-modifier{display:grid;gap:2px;position:absolute;z-index:1;right:-17px;top:-15px;padding:8px 10px;border:2px solid #e8bc77;border-radius:8px;transform:rotate(12deg);background:#35223a;box-shadow:0 0 0 3px #35223a,0 4px 8px #0008;color:#fff2ce;font:800 12px/1.2 Arial,sans-serif;text-align:center;pointer-events:none}
.pc-tower-penalty{grid-column:1/-1;padding:10px 12px;border:1px solid #8bb89088;border-radius:7px;background:#27432c55}
.pc-tower-penalty.is-active{border-color:#e7997688;background:#71352844}
.pc-tower-penalty>strong{display:block;font:600 12px/1.4 Arial,sans-serif;color:#f3d9c7}
.pc-tower-penalty>div{display:flex;align-items:center;gap:9px;margin:5px 0}
.pc-tower-penalty .ca-value-icon{width:28px;height:28px;flex:none}
.pc-tower-penalty b{font:700 21px/1.2 Arial,sans-serif;color:#ffd09f}
.pc-tower-penalty small{display:block;color:#e2cddd;font-size:11px;line-height:1.4}
@media(min-width:700px) and (max-height:800px){
 #card-workbench .pc-tower-dialog{padding:14px 20px}
 #card-workbench .pc-tower-dialog h2{margin:3px 36px 6px 0;font-size:24px}
 #card-workbench .pc-tower-dialog p{margin:6px 0;font-size:12px}
 #card-workbench .pc-tower-opponent.is-monster{padding:8px;margin:8px 0}
 #card-workbench .pc-tower-monster-art>img{height:135px}
 #card-workbench .is-party .pc-tower-monster-art>img{height:110px}
 #card-workbench .is-party .pc-tower-monster-stats>strong{font-size:16px;min-height:1.2em}
 #card-workbench .is-party .pc-tower-monster-stats>div>span{padding:4px}
 .pc-tower-power{padding:6px 10px;gap:4px 12px}
 #card-workbench .pc-tower-power .ca-team-power{padding:4px 8px}
 #card-workbench .pc-tower-power .ca-power-copy>strong{font-size:24px}
 .pc-tower-actions{margin-top:8px}
}
/* Narrow screens keep readable cards; rows may grow naturally on small phones. */
@media(max-width:699px){
 #card-workbench .pc-tower-dialog{padding:14px}
 #card-workbench .pc-tower-opponent.is-monster.is-party{grid-template-columns:repeat(2,minmax(0,1fr))}
 #card-workbench .is-party .pc-tower-monster-stats>strong{font-size:15px}
}
