.di-token{display:inline-grid;place-items:center;flex-shrink:0;width:38px;height:38px;border:3px solid #ffe9a4;border-radius:50%;color:#fff7c4;font:900 15px Arial,sans-serif;letter-spacing:-1px;text-shadow:0 2px #195783;background:radial-gradient(circle at 30% 20%,#a6efff,#278ab5 50%,#244b87 85%);box-shadow:inset 0 0 0 2px #78d0eb,0 3px #a87331,0 0 13px #9eefff30}
.token-chip{display:flex;align-items:center;gap:8px;border:2px solid #b48745;border-radius:13px;background:linear-gradient(#fff1c5,#edce8e);padding:6px 12px;color:#604325;text-align:left;box-shadow:0 3px #70483038}.token-chip>span:last-child{display:flex;flex-direction:column;gap:2px}.token-chip b{font-size:19px}.token-chip small{font-size:7px;font-weight:900;letter-spacing:.5px}.token-chip .di-token{height:31px;width:31px;font-size:12px}.lobby-token-balance{position:fixed;top:18px;right:20px;z-index:8}.lobby-token-balance .token-chip{background:#fff0c6ed}.header-right .token-chip{padding:3px 8px}.header-right .token-chip b{font-size:16px}
.campaign-view{max-width:1320px;padding:22px 28px 35px;margin:auto}.campaign-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:20px 0 26px}.campaign-heading h1{font-size:38px;margin:5px 0 10px}.campaign-heading p{font-size:13px;color:#80633e}.campaign-map{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.campaign-chapter{padding:0;overflow:hidden;border:3px solid #885b37;border-bottom:7px solid #71462c;border-radius:21px;background:#fff4d4;text-align:left;color:#5e392c;box-shadow:0 9px 25px #6e4d2420;transition:transform .18s}.campaign-chapter:hover:not(:disabled){transform:translateY(-5px)}.campaign-chapter:disabled{opacity:.6;filter:saturate(.6)}.campaign-art{height:190px;position:relative;overflow:hidden}.campaign-art img{height:100%;width:100%;object-fit:cover}.chapter-medal{position:absolute;left:13px;top:13px;display:grid;place-items:center;width:43px;height:43px;border:2px solid #ffec9b;border-radius:50%;background:#704d39cf;color:#fff2ba;font-size:18px;font-weight:900}.chapter-status{position:absolute;right:10px;top:12px;border:1px solid #fff2bc;background:#543b37d9;color:#fff0c8;border-radius:12px;padding:5px 8px;font-size:8px;font-weight:900;letter-spacing:.6px}.cleared .chapter-status{background:#366b51}.campaign-copy{padding:18px}.chapter-difficulty{font-size:8px;letter-spacing:1.7px;color:#aa7843;font-weight:900}.campaign-copy h2{font-size:24px;margin:7px 0 10px}.campaign-copy p{font-size:12px;line-height:1.5;min-height:36px;color:#8c6e49}.chapter-threat{display:block;font-size:9px;line-height:1.5;color:#a57c54;margin:12px 0}.chapter-prize{display:flex;align-items:center;gap:9px;padding:12px 0;border-top:1px solid #d6b57b}.chapter-prize .di-token{height:29px;width:29px;font-size:11px}.chapter-prize strong{font-size:21px;color:#3e7184}.chapter-prize>span:last-child{font-size:7px;letter-spacing:.6px}.chapter-enter{display:block;background:#eaca80;border:1px solid #ba8d44;border-radius:9px;padding:10px;font-size:11px;font-weight:900;text-align:center}.harbor .chapter-enter{background:#9dd9d7;border-color:#71b3b8}.citadel .chapter-enter{background:#d7b0e6;border-color:#af83be}.campaign-foot{font-size:11px;text-align:center;color:#9a7e5c;margin-top:22px}
.token-vault{display:flex;flex-direction:column;align-items:center;text-align:center;gap:15px;padding:10px}.token-vault>.di-token{width:64px;height:64px;font-size:26px}.token-vault>span:not(.di-token){font-size:10px;letter-spacing:1px;color:#987c51}.token-vault>strong{font-size:43px;color:#316d83}.pending-reward{display:flex;gap:15px;align-items:center;padding:15px;border:1px solid #c8a160;border-radius:12px;background:#f8e1a3}.pending-reward b{font-size:22px;color:#80613e}.pending-reward span{font-size:9px;letter-spacing:.5px}.token-vault #claim-status{font-size:11px;margin:0}.token-vault .primary{font-size:15px}.token-vault .primary:disabled{opacity:.5}
.battle-screen .card-stage .battlefield{background-image:var(--arena-art)}.battle-screen[data-chapter='2'] .card-dock{background:linear-gradient(#65babd88,#306e81ed)}.battle-screen[data-chapter='3'] .card-dock{background:linear-gradient(#9675ae88,#493267ed)}.battle-screen[data-chapter='2'] .foe-plate{background:linear-gradient(#438f99,#23576f)}.battle-screen[data-chapter='3'] .foe-plate{background:linear-gradient(#885184,#4b2757)}.villain.pirate img{filter:hue-rotate(225deg) saturate(.85)}.villain.baron img{filter:hue-rotate(315deg) saturate(1.25) brightness(.9)}.battle-screen[data-chapter='3'] .enemies .unit:nth-child(2) .sprite{filter:drop-shadow(0 0 9px #ffdb8380)}
/* Reward art and responsive containment. */
.victory-overlay .victory-panel{max-width:100%;box-sizing:border-box}.victory-overlay{padding-top:36px}.victory-panel .di-token{height:40px;width:40px;font-size:15px}.token-reward{background:radial-gradient(ellipse at 50% 0%,#387b9e,#29496c 60%,#293452)}.reward-ready{font-size:7px;letter-spacing:.6px;color:#bff7ee;border:1px solid #93dece66;border-radius:9px;padding:2px 7px;margin-top:2px}.claim-summary{font-size:8px;letter-spacing:.3px;color:#cbb0da;margin-top:12px}.claim-summary b{font-size:11px;color:#fff0ac}.claim-summary>span{padding:0 8px}.victory-next{padding:7px 18px;border:1px solid #a3d6e3;border-radius:10px;background:linear-gradient(#3b899c,#2f617d);color:#e1fbff;font-size:11px;font-weight:800;box-shadow:0 3px #201739}.victory-links{display:flex;gap:22px;justify-content:center}.victory-continue:disabled{opacity:.7;cursor:default;filter:none;transform:none}.victory-panel .victory-note{min-height:12px}.victory-panel .victory-actions{gap:8px;margin-top:12px}.victory-panel .gold-reward strong{font-size:30px}.victory-panel .victory-hero{margin-top:1px}
@media(max-height:800px) and (min-width:601px){.victory-overlay .victory-panel{width:min(650px,100%);padding:9px 22px 10px}.victory-panel .victory-hero{height:104px}.victory-panel .victory-hero .sprite{width:175px}.victory-panel h1{font-size:53px}.victory-panel .victory-reward{min-height:108px;padding:6px 4px;gap:2px}.victory-panel .di-token{height:29px;width:29px;font-size:11px}.victory-panel .reward-paw,.victory-panel .reward-trophy{width:28px;height:28px;font-size:23px}.victory-panel .reward-category{font-size:7px;margin-top:2px}.victory-panel .gold-reward strong{font-size:27px}.victory-panel .victory-reward strong{font-size:14px}.victory-panel .gold-reward strong{font-size:27px}.victory-panel .victory-reward>b{font-size:7px}.victory-panel .victory-continue{padding:8px 23px;font-size:14px}.victory-panel .victory-actions{gap:7px;margin-top:8px}.victory-panel .victory-kicker{margin-top:10px}.claim-summary{margin-top:8px}.victory-panel .victory-banner{font-size:9px;margin-top:7px;padding:4px 15px}.victory-panel #victory-story{font-size:10px;margin:7px 0 9px}.victory-panel .victory-note{font-size:8px;margin-top:7px}}
@media(max-width:700px){.campaign-view{padding:15px}.campaign-heading{align-items:flex-start}.campaign-heading h1{font-size:27px}.campaign-heading p{font-size:11px}.campaign-heading>.token-chip{display:none}.campaign-map{grid-template-columns:1fr;gap:18px}.campaign-art{height:160px}.campaign-copy h2{font-size:22px}.campaign-copy p{min-height:0}.campaign-foot{font-size:10px}.header-right .token-chip{padding:3px 6px;gap:5px}.header-right .token-chip .di-token{width:24px;height:24px;font-size:9px}.header-right .token-chip b{font-size:13px}.header-right .token-chip small{font-size:6px}.lobby-token-balance{top:12px;right:12px}.lobby-token-balance .token-chip{padding:4px 7px}.lobby-token-balance .token-chip b{font-size:15px}.lobby-token-balance .di-token{height:24px;width:24px;font-size:9px}}
@media(max-width:600px){.victory-overlay .victory-panel{padding:10px 12px 12px}.victory-panel .victory-hero{height:140px}.victory-panel .victory-hero .sprite{width:205px}.victory-panel .victory-continue{font-size:13px}.victory-panel .victory-reward{min-height:132px}.victory-panel .victory-reward strong{font-size:11px}.victory-panel .gold-reward strong{font-size:27px}.victory-panel .reward-ready{font-size:5px;padding:2px 4px;letter-spacing:.2px}.victory-panel .reward-category{font-size:5px}.victory-panel .victory-reward>b{font-size:6px}.claim-summary{font-size:7px}.claim-summary b{font-size:10px}}

.campaign-progress{padding:10px 15px;border:1px solid #c4a46b;border-radius:20px;background:#fff1c8;color:#8c6a3b;font-size:9px;font-weight:bold;letter-spacing:.5px;white-space:nowrap}@media(max-width:700px){.campaign-progress{display:none}}

@media(min-width:601px) and (max-height:650px){.victory-overlay{padding:30px 12px 8px}.victory-overlay .victory-panel{padding:6px 20px 7px}.victory-panel .victory-hero{height:88px}.victory-panel .victory-hero .sprite{width:155px}.victory-panel h1{font-size:47px}.victory-panel .victory-actions{gap:5px;margin-top:7px}.victory-panel .victory-reward{min-height:100px}.victory-panel .di-token,.victory-panel .reward-paw,.victory-panel .reward-trophy{width:26px;height:26px}.victory-panel .reward-category{font-size:6px}.victory-panel .gold-reward strong{font-size:24px}.victory-panel .reward-ready{font-size:6px}.victory-panel #victory-story{margin:5px 0 7px}.victory-panel .victory-note{margin-top:5px}}

.victory-overlay{overflow-x:hidden;overflow-y:auto}.victory-next:focus-visible{outline:3px solid #fff1a6;outline-offset:3px}

.header-right .token-chip small{max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:700px){.header-right .token-chip small{max-width:48px}}
