@font-face{font-family:Vazirmatn;src:url('assets/vazirmatn.woff2') format('woff2');font-display:swap}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Vazirmatn,Tahoma,sans-serif;color:#fff9e8;background:#759395}button{font:inherit;cursor:pointer;color:inherit;border:0}button:disabled{cursor:default;filter:saturate(.2);opacity:.5}button:focus-visible,canvas:focus-visible{outline:3px solid #ffdd8f;outline-offset:4px}button,svg{-webkit-tap-highlight-color:transparent}svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}h1,h2,h3,p{margin:0}button{transition:background .15s,transform .15s,box-shadow .15s}button:active:not(:disabled){transform:translateY(2px)}[hidden]{display:none!important}.svg-library{position:absolute;width:0;height:0;pointer-events:none}#village-shell{position:relative;width:100%;height:100%;isolation:isolate}#village-world{position:absolute;inset:0;width:100%;height:100%;touch-action:none;outline:0;cursor:grab}#village-world:active{cursor:grabbing}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#142d3659,transparent 22%,transparent 72%,#182f365c)}.game-header{position:absolute;top:max(22px,env(safe-area-inset-top));left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none;z-index:10}.game-header>*{pointer-events:auto}.identity{display:flex;align-items:center;gap:10px;text-shadow:0 2px 7px #183b32}.identity img{width:48px;height:48px;object-fit:contain;filter:drop-shadow(0 2px 3px #183b324d)}.identity h1{font-size:22px;line-height:1.3;font-weight:850;letter-spacing:-.6px}.identity span{font-size:11px;color:#ede5cc}.resources{display:flex;gap:10px;direction:rtl}.resource{display:flex;align-items:center;gap:9px;background:linear-gradient(130deg,#263e36f5,#1d362ee6);border:1px solid #c2cdb74d;border-radius:12px;min-width:136px;padding:8px 13px 12px;position:relative;box-shadow:0 4px 0 #142d2f38,0 8px 25px #132e2b21;overflow:hidden}.resource>svg{width:29px;height:29px;filter:drop-shadow(0 2px 1px #142d2f);color:#e7bd64}.resource.food>svg{color:#abc869}.resource.stone>svg{color:#c4d5df}.resource div{display:flex;flex-direction:column}.resource span{font-size:10px;line-height:1.4;color:#d0d8c8}.resource strong{font-size:18px;font-weight:750;line-height:1.4;min-width:55px;font-variant-numeric:tabular-nums}.resource i{position:absolute;bottom:0;right:0;left:0;height:3px;background:#142d2f}.resource b{display:block;height:100%;width:0;background:#dca64e;transition:width .3s}.food b{background:#a6b965}.stone b{background:#a5b6c1}.header-tools{display:flex;gap:8px;direction:ltr}.round{width:40px;height:40px;border-radius:11px;background:#264136e8;border:1px solid #cfdbc24d;display:grid;place-items:center;box-shadow:0 3px 0 #152c2845;font-size:22px}.round:hover{background:#3e5c47}.round[aria-pressed=false]{opacity:.65}.loading{position:absolute;inset:0;background:#233c36;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:50}.loading img{width:70px}.loading strong{font-size:19px}.loading span{font-size:12px;color:#a6b7a1;letter-spacing:2px}.welcome{position:absolute;inset:0;display:flex;align-items:center;padding:90px 7vw;pointer-events:none;z-index:8;background:linear-gradient(270deg,#17352c94,transparent 60%)}.welcome-card{width:330px;pointer-events:auto;text-shadow:0 2px 12px #1c3d2e99}.eyebrow{display:block;font-size:12px;color:#ffe4a7;font-weight:700;letter-spacing:1px;margin-bottom:16px}.welcome h2{font-size:clamp(32px,3.3vw,53px);line-height:1.6;letter-spacing:-1.6px;font-weight:900}.welcome p{color:#f7f3dc;font-size:15px;line-height:2.1;margin:20px 0 26px}.primary,.secondary{border:1px solid #ffe4a078;background:linear-gradient(#e7b967,#cf9345);color:#3d2c1a;border-radius:10px;font-weight:800;padding:12px 20px;min-height:48px;box-shadow:0 4px 0 #815c2f,0 7px 14px #14342d26;display:inline-flex;gap:12px;align-items:center;justify-content:center}.primary:hover{background:linear-gradient(#f3cb80,#dda751)}.primary svg{width:24px}.welcome .primary{width:100%;font-size:17px}.welcome small{display:block;text-align:center;font-size:11px;margin-top:18px;color:#e0e2cc}.secondary{background:#dce4cf;color:#304c3c;border-color:#f4f8ec;box-shadow:0 3px 0 #b4c2a8;min-height:42px;padding:9px 15px}.quest{position:absolute;right:28px;top:112px;width:246px;padding:18px 19px;color:#384336;border:1px solid #fff7d8b3;border-radius:14px;background:linear-gradient(140deg,#f7edcfeF,#e6dec1ee);box-shadow:0 6px 0 #344b3b28,0 12px 26px #1d3b2c1c;z-index:5}.quest-top{display:flex;gap:7px;align-items:center;font-size:11px;color:#687458;margin-bottom:10px}.quest-top svg{width:17px;height:17px;color:#8c713a}.quest-top span:last-child{margin-right:auto;white-space:nowrap;direction:ltr}.quest h2{font-size:17px;font-weight:850;margin-bottom:7px}.quest p{font-size:11px;line-height:1.9;color:#72745d;min-height:38px}.quest button{background:transparent;font-size:12px;font-weight:800;color:#24776a;margin-top:8px;padding:8px 0 0}.quest button:after{content:' ←';margin-right:8px}.army-summary{position:absolute;right:30px;bottom:124px;display:flex;align-items:center;gap:9px;filter:drop-shadow(0 2px 5px #12392e);pointer-events:none}.army-summary>svg{width:32px;height:32px;color:#f4e6bc}.army-summary div{display:flex;align-items:baseline;gap:8px}.army-summary strong{font-size:19px;direction:ltr}.army-summary span{font-size:11px}.army-summary small{display:block;background:#2b493abf;padding:4px 10px;border-radius:8px;margin-right:8px;color:#e3e5c9}.home-actions{position:absolute;bottom:max(26px,env(safe-area-inset-bottom));right:28px;left:28px;display:flex;gap:11px;align-items:stretch;z-index:8;pointer-events:none}.home-actions>button{pointer-events:auto}.action-tile{position:relative;display:grid;grid-template-columns:35px auto;column-gap:10px;align-content:center;min-width:145px;height:78px;padding:12px 16px;text-align:right;border:1px solid #fff2d2bd;border-radius:13px;background:linear-gradient(150deg,#f4e9cb,#d8cfad);box-shadow:0 5px 0 #6c6951,0 9px 20px #173a3038;color:#424632}.action-tile:hover{background:linear-gradient(150deg,#fff2d6,#e9dfbb);transform:translateY(-2px)}.action-tile>svg{grid-row:1/3;align-self:center;width:31px;height:31px;color:#7d6841}.action-tile span{font-size:13px;font-weight:850}.action-tile small{font-size:10px;color:#7e7b61;margin-top:3px}.collect-action>svg{color:#ad7a2d}.raid-action{margin-right:auto;display:flex;gap:13px;align-items:center;background:linear-gradient(150deg,#b65e40,#8b3a2d);border:1px solid #f4aa77a1;color:#fff1cb;border-radius:13px;min-width:220px;padding:10px 21px;box-shadow:0 5px 0 #542e27,0 9px 20px #173a3038;text-align:right}.raid-action:hover{background:linear-gradient(150deg,#c96c48,#9d4330)}.raid-action>svg{width:39px;height:39px}.raid-action span{font-size:20px;font-weight:850;line-height:1.5}.raid-action small{display:block;font-size:10px;font-weight:400;color:#ead0ae}.raid-action b{font-size:25px;margin-right:auto}.map-tools{position:absolute;left:28px;bottom:128px;display:flex;gap:6px;z-index:6;direction:ltr}.map-tools .round{width:36px;height:36px;font-size:22px}.map-tools svg{width:19px}.save-status{position:absolute;bottom:5px;left:30px;color:#edf4deaa;font-size:9px;pointer-events:none}.detail,.drawer{position:absolute;left:28px;top:108px;bottom:220px;width:320px;max-height:600px;background:#f3ead2;color:#3d4838;border:1px solid #fff7e1;border-radius:16px;box-shadow:0 7px 0 #44564038,0 14px 35px #243b3740;z-index:15;overflow:auto;scrollbar-width:thin;scrollbar-color:#b9b99a transparent}.detail{top:auto;bottom:125px;max-height:calc(100% - 225px);padding:24px}.close-button{position:absolute;top:12px;left:12px;background:#40583b12;color:#617157;width:31px;height:31px;display:grid;place-items:center;border-radius:8px;z-index:2}.close-button:hover{background:#40583b26}.close-button svg{width:18px;height:18px}.drawer header{position:sticky;top:0;z-index:1;padding:22px 22px 16px;background:#f3ead2;border-bottom:1px solid #b8b49340}.drawer header span{font-size:10px;color:#8c8564}.drawer h2{font-size:21px;margin-top:4px;font-weight:850}.drawer-content,#drawer-content{padding:8px 18px 18px}.item-card{padding:18px 0;border-bottom:1px solid #b5ae8a4d}.item-card:last-child{border-bottom:0}.item-head{display:flex;align-items:center;gap:10px}.item-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#dedbb7;color:#767950;flex-shrink:0}.item-icon svg{width:29px;height:29px}.item-card h3{font-size:15px;font-weight:800}.item-card p,.detail p{font-size:11px;color:#797c64;line-height:1.9;margin:10px 0}.costs{display:inline-flex;gap:11px;align-items:center;flex-wrap:wrap;font-size:12px;color:#6c684c}.costs>span{display:flex;gap:4px;align-items:center;white-space:nowrap}.costs svg{width:16px;height:16px}.item-card .card-bottom{display:flex;align-items:center;gap:9px;margin-top:12px;justify-content:space-between}.small-button{border-radius:8px;background:#397b69;color:#fff5d9;min-height:38px;padding:8px 12px;font-size:12px;font-weight:700;flex-shrink:0;box-shadow:0 2px 0 #295345}.small-button:hover{background:#468a75}.item-card .status-line{font-size:10px;color:#9a7149;margin-top:8px;min-height:16px}.detail .item-icon{width:54px;height:54px;margin-bottom:12px}.detail h2{font-size:21px;font-weight:850}.detail .level{font-size:10px;color:#92763e}.detail .primary,.detail .secondary{width:100%;font-size:12px;margin-top:13px;gap:10px}.detail .costs{justify-content:center;margin-top:12px;width:100%}.info-row{display:flex;align-items:center;justify-content:space-between;font-size:12px;margin-top:13px;padding-top:12px;border-top:1px solid #b4b08b55}.info-row b{color:#327661}.build-progress{height:5px;overflow:hidden;border-radius:3px;background:#d8d7ba;margin-top:12px}.build-progress b{display:block;height:100%;background:#5a9470}.queue{background:#e2e0c3;border-radius:9px;padding:12px;font-size:11px;line-height:1.9;margin:12px 0}.queue b{color:#4e7452}.drawer-intro{font-size:11px;color:#7d7d62;line-height:1.9;margin-top:12px}.camp-card.completed .item-icon{color:#3b806b;background:#ceddc2}.camp-card.locked{opacity:.6}.camp-card .camp-number{font-size:11px;color:#9c8b60}.placement{position:absolute;left:50%;bottom:124px;transform:translateX(-50%);background:#f3e9cfee;border:1px solid #fff1cd;border-radius:12px;padding:12px 18px;box-shadow:0 4px 18px #203d3233;color:#374c3b;display:flex;align-items:center;gap:18px;z-index:20;min-width:320px}.placement strong{display:block;font-size:14px}.placement span{font-size:11px;color:#758265}.placement button{width:32px;height:32px;background:#d9d9b7;border-radius:8px;display:grid;place-items:center}.placement svg{width:18px}.world-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.world-label{position:absolute;left:0;top:0;transform:translate(-50%,-100%);white-space:nowrap;text-shadow:0 1px 3px #213d2e;pointer-events:none;font-size:11px;font-weight:700}.world-label.collect-label{pointer-events:auto;border-radius:20px;color:#fff6d4;background:linear-gradient(#786b39,#554e2c);border:1px solid #dfcd88;padding:5px 10px;box-shadow:0 3px 0 #433e25;display:flex;align-items:center;gap:4px;font-size:11px;min-height:32px}.collect-label svg{width:15px;height:15px;color:#f2d07c}.world-label.slot-label{pointer-events:none;background:#dcecc45c;color:#fff9db;border:1px solid #e9facb8f;border-radius:50%;font-size:22px;width:32px;height:32px;display:grid;place-items:center}.world-label.build-label{background:#2b4e3ada;color:#ffe8a1;border-radius:7px;padding:4px 9px;font-size:10px}.toast{position:absolute;top:104px;left:50%;transform:translateX(-50%);border:1px solid #f6e3b06b;border-radius:10px;background:#294937f2;color:#fff2c9;padding:11px 20px;max-width:min(90vw,520px);text-align:center;font-size:12px;box-shadow:0 6px 20px #102c2933;z-index:40;pointer-events:none}.toast.error{background:#713e32f2}.voice-caption{position:absolute;left:50%;transform:translateX(-50%);bottom:126px;max-width:480px;width:max-content;text-align:center;border-radius:8px;background:#172e28d9;color:#f9f0d8;padding:10px 17px;font-size:12px;line-height:1.8;pointer-events:none;z-index:19}.modal{position:absolute;inset:0;background:#122e2e99;backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:22px;z-index:35}.modal-card{position:relative;width:min(420px,100%);max-height:90%;overflow:auto;background:#f4ecd5;color:#3f4936;border:1px solid #fff7df;border-radius:18px;padding:32px;box-shadow:0 8px 0 #354c3e4d,0 20px 60px #16332f6b;text-align:center}.modal-card h2{font-size:26px;font-weight:850;margin:12px 0}.modal-card p{font-size:12px;line-height:2;color:#74765d}.modal-card .primary,.modal-card .secondary{width:100%;margin-top:18px;font-size:14px}.modal-emblem{width:72px;height:72px;margin:8px auto 16px;background:#dce3bb;border-radius:50%;display:grid;place-items:center;color:#7c864c}.modal-emblem svg{width:42px;height:42px}.help-steps{text-align:right;padding:0;list-style:none;counter-reset:steps;margin:20px 0}.help-steps li{font-size:12px;line-height:1.9;margin:13px 0;padding-right:34px;position:relative;color:#6a7257}.help-steps li:before{counter-increment:steps;content:counter(steps,persian);position:absolute;right:0;top:2px;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;background:#d9ddba;color:#56734e;font-size:11px}.result-stars{display:flex;align-items:center;justify-content:center;gap:13px;direction:ltr;margin:19px 0}.result-stars svg{width:42px;height:42px;fill:#d3d0ac;stroke:#aaa982}.result-stars svg.earned{fill:#d8a644;stroke:#a67d30;filter:drop-shadow(0 3px 0 #a27a2d33)}.result-stars svg:nth-child(2){width:54px;height:54px;margin-top:-15px}.result-loot{display:flex;justify-content:center;gap:20px;background:#e5e3c6;border-radius:11px;padding:14px;margin:20px 0}.result-loot>div{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:800}.result-loot svg{width:21px;color:#a58a43}.result-note{font-size:11px!important}.battle-title{position:absolute;right:28px;top:112px;text-shadow:0 2px 5px #163328;pointer-events:none}.battle-title>span{font-size:10px;color:#f0ddab}.battle-title h2{font-size:24px;font-weight:850;margin-top:4px}.battle-title p{font-size:11px;color:#e6e7d0;max-width:230px;margin-top:7px}.battle-stats{position:absolute;top:110px;left:28px;display:flex;align-items:center;gap:15px;padding:12px 18px;border:1px solid #e0e4c46b;border-radius:12px;background:#233e34e6}.battle-stats>div{display:flex;gap:6px;align-items:center}.battle-stats strong{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.battle-stats span{font-size:10px;color:#bfcbaa}.battle-stats svg{width:20px;height:20px;color:#bfcbaa}#battle-stars{display:flex;gap:3px}#battle-stars svg{width:18px;fill:#758066;stroke:#758066}#battle-stars svg.earned{fill:#e0b658;stroke:#e0b658}.battle-actions{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:10;align-items:stretch}.troop-choice,.hero-skill{position:relative;min-width:115px;height:91px;background:linear-gradient(#ece2c1,#cfc6a2);color:#5b6345;border:2px solid #e4d9b4;border-radius:13px;box-shadow:0 5px 0 #5b6747;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.troop-choice>svg{width:32px;height:32px}.troop-choice>span,.hero-skill>span{font-size:12px;font-weight:800}.troop-choice b{position:absolute;top:-8px;right:-6px;min-width:25px;height:25px;padding:2px 5px;border-radius:8px;background:#325c4e;border:1px solid #aabda3;color:#fff0bc;font-size:13px}.troop-choice.selected{border-color:#ffe8a1;background:linear-gradient(#fff4ca,#e7c981);box-shadow:0 5px 0 #9c8545,0 0 0 3px #e9dc9b4d}.hero-skill{background:linear-gradient(#3a7e78,#2e5b56);color:#f7e3ad;border-color:#a5c8a1;margin-right:8px;box-shadow:0 5px 0 #264a40}.hero-skill>svg{width:31px;height:31px}.hero-skill small{font-size:9px;position:absolute;bottom:4px;color:#cbd4b6}.hero-skill.selected{border-color:#ffdf77;box-shadow:0 5px 0 #264a40,0 0 0 3px #e9dc9b66}.retreat{align-self:center;background:#563b31e6;border:1px solid #c3aa7e;border-radius:8px;font-size:11px;padding:10px 14px;min-height:42px;color:#ffe2c0}.deployment-hint{position:absolute;bottom:136px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;color:#fff6cc;background:#284e3dbf;border:1px solid #c3df9e66;border-radius:20px;padding:8px 18px;pointer-events:none}body.is-battle .quest,body.is-battle .army-summary{display:none}.small-note{font-size:10px;color:#929071;margin:12px 0}.reason{font-size:10px;color:#a3764a;margin-top:10px}.modal-card .text-button{background:transparent;color:#607d64;font-size:12px;padding:10px;margin-top:5px}.danger{color:#9c4c3e}.queue-item{display:flex;justify-content:space-between;padding:3px 0}.empty-note{padding:30px 10px;font-size:12px;text-align:center;color:#7c8064}.sound-status{font-size:11px;margin-top:18px;color:#607858}.label-level{font-size:10px;padding:3px 7px;background:#ded9b7;border-radius:6px;margin-right:auto}.credits-note{font-size:9px!important;line-height:1.8!important;color:#8b8b70!important;margin-top:18px!important}
@media(min-width:1500px){.game-header,.home-actions{left:44px;right:44px}.quest,.army-summary,.battle-title{right:44px}.detail,.drawer,.map-tools,.battle-stats{left:44px}.welcome{padding-right:10vw}.quest{width:265px}}
@media(max-width:1050px){.game-header{left:18px;right:18px;gap:12px}.identity h1{font-size:18px}.identity img{width:38px;height:38px}.resource{min-width:110px;padding:7px 10px 10px;gap:6px}.resource>svg{width:25px}.resource strong{font-size:16px}.quest{right:18px;width:210px;padding:15px}.home-actions{left:18px;right:18px;gap:8px}.action-tile{min-width:123px;padding:10px 12px;grid-template-columns:29px auto;column-gap:7px}.action-tile>svg{width:27px}.raid-action{min-width:190px;padding:10px 15px}.detail,.drawer{left:18px;width:300px}.map-tools{left:18px}.army-summary{right:18px}.header-tools{gap:5px}.round{width:36px;height:36px}.battle-title{right:18px}.battle-stats{left:18px}.identity span{font-size:9px}}
@media(max-width:760px){.game-header{top:max(12px,env(safe-area-inset-top));left:14px;right:14px;flex-wrap:wrap;row-gap:12px}.identity{gap:7px}.identity h1{font-size:18px}.identity img{width:36px;height:36px}.header-tools{order:2;margin-right:auto}.resources{order:3;width:100%;gap:7px}.resource{flex:1;min-width:0;padding:5px 9px 8px;gap:7px;border-radius:9px}.resource div{flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:7px;flex:1}.resource span{font-size:9px}.resource strong{font-size:15px;min-width:0}.resource svg{width:23px;height:23px}.round{width:34px;height:34px;border-radius:9px}.round svg{width:19px}.quest{top:130px;right:14px;width:190px;padding:12px 14px;border-radius:12px}.quest-top{font-size:9px;margin-bottom:6px;gap:5px}.quest-top svg{width:14px;height:14px}.quest h2{font-size:14px;margin-bottom:4px}.quest p{font-size:10px;min-height:0}.quest button{font-size:10px;margin-top:4px;padding-top:5px}.home-actions{right:12px;left:12px;bottom:max(20px,env(safe-area-inset-bottom));gap:7px}.action-tile{min-width:0;flex:1;height:77px;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;border-radius:10px}.action-tile>svg{width:25px;height:25px}.action-tile span{font-size:10px}.action-tile small{font-size:8px;margin:0}.raid-action{min-width:0;flex:1.25;flex-direction:column;justify-content:center;gap:3px;padding:8px 3px;border-radius:10px}.raid-action>svg{width:27px;height:27px}.raid-action span{font-size:13px;text-align:center;line-height:1.4}.raid-action small{font-size:7px;margin-top:2px}.raid-action b{display:none}.army-summary{right:16px;bottom:112px;gap:6px}.army-summary>svg{width:23px;height:23px}.army-summary strong{font-size:15px}.army-summary div{gap:4px}.army-summary span{font-size:9px}.army-summary small{font-size:8px;margin-right:3px;padding:4px 6px}.map-tools{left:14px;bottom:112px;gap:4px}.map-tools .round{width:30px;height:30px;border-radius:8px}.map-tools svg{width:17px}.detail,.drawer{left:12px;right:12px;width:auto;top:auto;bottom:110px;max-height:min(58%,470px);border-radius:15px}.detail{padding:20px 23px;max-height:60%}.detail .item-icon{float:right;margin-left:13px;width:44px;height:44px}.detail .item-icon svg{width:27px}.detail p{clear:both}.drawer header{padding:16px 19px 12px}.drawer h2{font-size:18px}.drawer header span{font-size:9px}.item-card{padding:14px 0}.item-head{gap:8px}.item-card p{font-size:10px;margin:7px 0}.item-card h3{font-size:14px}.welcome{padding:150px 25px 120px;align-items:flex-end;background:linear-gradient(0deg,#163b2ec9,transparent 90%)}.welcome-card{width:100%;max-width:360px;margin:0 auto}.welcome h2{font-size:36px;line-height:1.6}.welcome p{font-size:13px;margin:15px 0 20px}.eyebrow{font-size:10px;margin-bottom:12px}.welcome .primary{font-size:15px}.welcome small{font-size:10px}.placement{bottom:112px;min-width:0;width:calc(100% - 28px);padding:10px 13px}.placement strong{font-size:12px}.placement span{font-size:10px}.voice-caption{bottom:157px;max-width:calc(100% - 38px);font-size:11px}.toast{top:128px;width:max-content;max-width:90%;font-size:11px;padding:10px 15px}.battle-title{top:128px;right:15px}.battle-title>span{font-size:9px}.battle-title h2{font-size:18px}.battle-title p{display:none}.battle-stats{top:128px;left:14px;padding:8px 10px;gap:9px}.battle-stats strong{font-size:17px}.battle-stats svg{width:15px;height:15px}.battle-stats span{display:none}#battle-stars{display:none}.battle-actions{bottom:22px;gap:7px;width:calc(100% - 28px)}.troop-choice,.hero-skill{min-width:0;flex:1;height:84px;border-radius:10px}.troop-choice>svg{width:29px;height:29px}.hero-skill{margin-right:2px}.hero-skill>span,.troop-choice>span{font-size:10px}.hero-skill small{font-size:8px}.retreat{font-size:9px;padding:8px;min-height:38px}.deployment-hint{bottom:148px;font-size:10px;max-width:94%;white-space:normal;text-align:center;padding:7px 13px}.is-battle .map-tools{bottom:113px}.modal{padding:17px}.modal-card{padding:27px 24px;border-radius:16px}.modal-card h2{font-size:23px}.save-status{left:15px;bottom:4px;font-size:8px}.world-label.collect-label{font-size:9px;padding:4px 7px;gap:3px;min-height:29px}.collect-label svg{width:13px;height:13px}}
@media(max-height:580px) and (min-width:761px){.game-header{top:12px}.quest{top:95px;padding:12px;width:220px}.quest p{display:none}.home-actions{bottom:16px}.army-summary,.map-tools{bottom:105px}.detail,.drawer{top:95px;bottom:110px;max-height:none}.welcome{padding-top:95px;padding-bottom:80px}.welcome h2{font-size:32px}.welcome p{margin:10px 0;font-size:12px}.battle-title,.battle-stats{top:96px}.battle-actions{bottom:16px}}
@media(prefers-reduced-motion:reduce){button,.resource b{transition:none}}
@media(max-width:380px){.resource{gap:4px;padding-left:7px;padding-right:7px}.resource div{flex-direction:column;gap:0;align-items:flex-start}.resource span{font-size:8px;line-height:1}.resource strong{font-size:14px;line-height:1.25}.resource>svg{width:21px;height:21px}.quest{top:138px;width:175px}.quest p{font-size:9px}.battle-title,.battle-stats,.toast{top:138px}}

/* Optional progress lab: fictional credit is visually separate from resources. */
.progress-hub{position:absolute;left:28px;top:112px;width:174px;z-index:7;display:grid;gap:8px}
.text-button{background:transparent;color:#356c58;font-size:12px;padding:8px 4px;min-height:44px}
.kstar-pill{display:flex;align-items:center;gap:11px;padding:11px 14px;border:1px solid #e7cb83;border-radius:13px;background:linear-gradient(140deg,#394739,#243c32);box-shadow:0 4px 0 #17322766;color:#f6dfa0;text-align:right;min-height:64px}
.kstar-pill>svg{width:29px;height:29px;fill:#d7b55e22}.kstar-pill span{display:grid;gap:1px}.kstar-pill small{font-size:10px;color:#f2deb0}.kstar-pill strong{font-size:22px;font-variant-numeric:tabular-nums;line-height:1.2}.kstar-pill>b{margin-right:auto;font-size:24px;font-weight:400}
.free-path-button{min-height:44px;display:flex;align-items:center;justify-content:center;gap:7px;background:#244438e8;color:#f0edcf;border:1px solid #b6c7a977;border-radius:10px;font-size:12px}.free-path-button svg{width:18px;height:18px}
.drawer{width:370px;bottom:120px;max-height:calc(100% - 230px)}.drawer header{padding-left:60px}.close-button{width:40px;height:40px}.small-button{min-height:44px}.item-card p,.drawer-intro,.detail p{font-size:12px;color:#62664f}.status-line{color:#76542e!important;font-size:11px!important}.label-level{font-size:11px;margin-right:auto;white-space:nowrap;color:#47684f}
.drawer-tabs{display:flex;gap:8px;margin-top:8px}.drawer-tabs button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;background:#e2dfc7;color:#54644a;border-radius:9px;font-size:12px}.drawer-tabs button.active{background:#346e5f;color:#fff5dc}.drawer-tabs svg{width:19px;height:19px}
.unit-stats{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.unit-stats span{display:flex;gap:7px;font-size:10px;background:#e4e1c9;padding:5px 9px;border-radius:6px;color:#697155}.unit-stats b{font-size:12px;color:#2e5948}.unit-spearman{background:#d7dfc5;color:#4e7050}.unit-guardian{background:#cbdad8;color:#39666d}.unit-cavalry{background:#e6d1b4;color:#8b6137}.unit-catapult{background:#e0c9b7;color:#8a4f37}
.level-dots{display:flex;gap:5px;margin-top:9px}.level-dots i{width:28px;height:5px;background:#c8c9ac;border-radius:3px}.level-dots i.complete{background:#40816a}.free-label{font-size:12px;color:#366c50}
.research-active{padding:14px;background:#e0e3c8;border:1px solid #b6c49e;border-radius:12px;margin-top:14px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;font-size:12px}.research-active>span{display:flex;align-items:center;gap:5px}.research-active svg{width:18px;height:18px}.research-active strong{font-variant-numeric:tabular-nums}.research-active .build-progress{width:100%;margin-top:1px}.research-active .text-button{width:100%;font-size:11px}
.test-wallet{margin-top:12px;padding:18px 14px;border-radius:13px;background:#273f34;color:#f8e5b4;text-align:center;border:1px solid #ad9e66}.test-badge{display:inline-block;padding:4px 10px;border:1px solid #c2a565;border-radius:20px;color:#695322;background:#f2e3b4;font-size:10px}.test-wallet>div{display:flex;align-items:baseline;justify-content:center;gap:9px;direction:ltr;margin:12px 0 6px}.test-wallet strong{font-size:40px;line-height:1.1}.test-wallet>div>span{font-size:13px;color:#d3c695}.test-wallet p{color:#dfdfbe;font-size:11px;line-height:1.9}.test-wallet .secondary{margin:14px 0 9px;width:100%;font-size:12px;box-shadow:none}.test-wallet>small{display:block;color:#c6d0b9;font-size:10px;line-height:1.9}
.free-promise{display:flex;align-items:flex-start;gap:9px;color:#39614d;background:#dce4c9;padding:12px;border-radius:9px;font-size:11px;line-height:1.9;margin-top:14px}.free-promise svg{width:20px;height:20px;margin-top:2px}.free-alternative{border-right:2px solid #88a779;padding:4px 10px;color:#4a6a4b!important;font-size:11px!important;line-height:1.9}.test-price{font-size:20px;color:#876227;font-weight:800}.test-price small{display:block;font-size:9px;font-weight:400}.purchase-total{display:flex;justify-content:space-between;align-items:center;background:#e4dfc3;padding:14px;border-radius:10px;margin-top:18px;font-size:12px}.purchase-total strong{font-size:20px;direction:ltr;color:#715525}.modal-card .text-button{min-height:44px;margin-top:10px}.accelerate-link{font-size:11px;width:100%;margin-top:12px;min-height:44px}
.ledger{border-top:1px solid #c7c3a5;padding-top:20px;margin-top:8px}.ledger h3{font-size:15px}.ledger>p{font-size:11px;color:#6c705a;margin:7px 0 12px}.ledger>div{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding:10px 0;border-top:1px solid #d9d4b9}.debit{color:#905232}.credit{color:#347150}
.milestones{list-style:none;padding:0;margin:18px 0}.milestones li{display:flex;gap:12px;position:relative;padding-bottom:22px}.milestones li:not(:last-child):before{content:'';position:absolute;right:15px;top:34px;bottom:4px;width:2px;background:#d1d3b4}.step-index{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border:1px solid #bbbfa1;border-radius:50%;color:#6f7457;background:#e4e0c8;font-size:13px}.done .step-index{background:#3f7a60;border-color:#3f7a60;color:#fff6d5}.milestones h3{font-size:13px;line-height:1.8}.milestones p{font-size:11px;line-height:1.9;color:#6f725a;margin-top:6px}.milestones .text-button{font-size:11px;padding:8px 0;min-height:40px}.path-summary{background:#e2e0c8;padding:14px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:9px;border-radius:10px;font-size:12px}.path-summary b{color:#795c2f}.path-summary small{width:100%;font-size:11px;color:#666b51;line-height:1.8}
.troop-roster{display:flex;gap:8px;overflow-x:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b3ba92 #344d3c4d;padding:10px 6px 8px}.battle-actions{width:max-content;max-width:calc(100% - 38px);align-items:center;gap:10px}.troop-choice{min-width:75px;flex-shrink:0}.hero-skill{min-width:90px}.queue-item{display:flex;justify-content:space-between;gap:12px}.round{min-width:36px;min-height:36px}
@media(min-width:1500px){.progress-hub{left:44px}}
@media(max-width:1050px) and (min-width:761px){.progress-hub{left:18px}.drawer{width:350px}.battle-actions{gap:6px}.troop-roster{gap:5px}.troop-choice{min-width:65px}.hero-skill{min-width:85px}}
@media(max-width:760px){
  .progress-hub{top:130px;left:14px;width:147px;gap:6px}.kstar-pill{padding:8px 10px;min-height:58px;gap:8px;border-radius:11px}.kstar-pill>svg{width:23px;height:23px}.kstar-pill strong{font-size:20px}.kstar-pill small{font-size:9px}.free-path-button{font-size:11px;min-height:40px}
  .drawer{left:12px;right:12px;width:auto;bottom:110px;max-height:calc(100% - 234px);top:auto}.item-card p,.drawer-intro,.detail p{font-size:12px}.card-bottom{flex-wrap:wrap}.item-card h3{font-size:14px}.label-level{font-size:10px}.drawer header{padding-left:58px}
  .battle-actions{width:calc(100% - 24px);max-width:none;bottom:16px;display:flex;flex-wrap:wrap;gap:7px}.troop-roster{width:100%;gap:7px;flex:none;padding-bottom:5px}.troop-choice{min-width:72px;max-width:88px;height:75px;flex:1 0 72px}.troop-choice>svg{width:25px;height:25px}.hero-skill{height:44px;flex:1;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;margin:0;padding:7px 10px}.hero-skill>svg{width:22px;height:22px}.hero-skill small{font-size:9px;position:static}.retreat{min-width:86px;min-height:44px;font-size:11px}.deployment-hint{bottom:161px;font-size:11px}.is-battle .map-tools{bottom:203px}.voice-caption{bottom:185px}
}
@media(max-width:380px){.progress-hub{top:138px;width:136px;left:12px}.kstar-pill{gap:5px;padding:8px}.kstar-pill small{font-size:8px}.quest{width:175px}.troop-choice{min-width:69px;flex-basis:69px}}
@media(max-height:580px) and (min-width:761px){.progress-hub{top:95px}.drawer{top:95px;bottom:110px;max-height:none}.battle-actions .troop-choice{height:74px}.battle-actions .hero-skill{height:74px}}
/* Online alpha: explicit account mode and a persistent connection indicator. */
.account-button{min-height:44px;padding:6px 11px;border:1px solid #d8c68d;border-radius:10px;background:#183b32;color:#fff5cf;font-size:11px;max-width:150px;overflow:hidden;text-overflow:ellipsis}
.connection-bar{position:absolute;bottom:22px;left:24px;z-index:11;display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:8px;background:#12382ee8;color:#f3edd6;font-size:10px;max-width:calc(100% - 30px)}
.connection-bar[data-status="disconnected"],.connection-bar[data-status="signed-out"]{background:#783d2b}
.connection-bar button{min-height:44px;padding:5px 10px;background:#f1ddb0;color:#3c3021;border:0;border-radius:6px;font:inherit}
.online-welcome{overflow-y:auto;align-items:center;background:linear-gradient(90deg,#153a2b22,#10352dde);padding:110px 6vw 65px;z-index:20}
.online-welcome .welcome-card{width:390px;max-width:100%;padding:24px;background:#173d33ed;border:1px solid #a8986355;border-radius:18px}
.online-welcome h2{font-size:30px;line-height:1.5;margin:0}.online-welcome .eyebrow{margin-bottom:8px}.online-welcome p{font-size:12px;margin:10px 0;line-height:1.8}.online-welcome .primary,.online-welcome .secondary{width:100%;min-height:44px;margin-top:12px;font-size:13px}
.online-welcome small{font-size:10px}.online-welcome .online-note{color:#e2d3a4;font-size:10px}
.auth-tabs{display:flex;gap:8px;margin:12px 0}.auth-tabs button{flex:1;min-height:44px;border:1px solid #b6b58b66;border-radius:8px;background:transparent;color:#eee6cd;font:inherit;font-size:12px}.auth-tabs button[aria-pressed="true"]{background:#d7be7c;color:#17382e}
#auth-form label{display:block;color:#f4eedb;font-size:12px;margin:8px 0 5px}#auth-form label small{display:inline;margin:0 5px;color:#c3ccb8;font-size:9px}#auth-form input{width:100%;min-height:44px;padding:9px 12px;border:1px solid #a1ad87;border-radius:8px;background:#f4f1dd;color:#183b32;font:inherit;font-size:15px}#auth-form input:focus-visible{outline:3px solid #eac96b;outline-offset:2px}
#auth-error{color:#ffcdac;font-size:12px;min-height:0}#auth-error:empty{display:none}.online-welcome .text-button{color:#e8dbb0;min-height:44px}.online-welcome #begin{margin-top:16px}
@media(max-width:760px){.account-button{max-width:95px;font-size:10px;padding:5px 7px}.connection-bar{left:14px;bottom:5px;font-size:9px;padding:3px 7px;max-width:calc(100% - 28px)}.connection-bar button{min-height:38px}.save-status{display:none}.online-welcome{padding:100px 16px 45px;align-items:flex-start}.online-welcome .welcome-card{padding:20px;margin:auto}.online-welcome h2{font-size:25px}.online-welcome p{font-size:11px;margin:7px 0}.online-welcome .eyebrow{font-size:9px}}
/* Shared banners: real account rosters and opt-in asynchronous rivalry. */
.social-entry{background:#354d3c;border-color:#d4b976;color:#fff0c5;min-height:44px}
.social-drawer{width:400px;scroll-padding:18px;overscroll-behavior:contain}
.social-drawer button,.social-drawer summary{min-height:44px}
.social-drawer h3{font-size:14px;line-height:1.7;overflow-wrap:anywhere}
.social-drawer p{font-size:12px;line-height:1.9}
.social-tabs button{gap:5px}.social-tabs svg{width:18px;height:18px}
.social-refresh{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#646b51;font-size:10px}
.social-refresh .text-button{font-size:11px}
.social-profile{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#2c5140;border:1px solid #a39864;border-radius:10px;color:#fff3cc;margin:4px 0 16px}
.social-profile>div{min-width:0}.social-profile strong{display:block;font-size:18px;overflow-wrap:anywhere}.social-eyebrow{font-size:10px;color:#d2dcc1}
.trophy-score{display:flex;align-items:center;gap:6px;white-space:nowrap;color:#f4d57f}.trophy-score svg{width:22px;height:22px}.trophy-score b{font-size:22px}.trophy-score small{font-size:10px}
.arena-state{padding:14px;border:1px solid #bec5a1;border-radius:10px;background:#e5e8cf}.arena-state>div{display:flex;align-items:center;gap:8px}.arena-state strong{font-size:13px;color:#365844}.arena-state svg{width:22px;height:22px;color:#4a7055}.arena-state p{margin:10px 0;color:#526449}.arena-state button{width:100%;font-size:12px;box-shadow:none;margin-top:4px}
.social-notice{color:#59624d!important;padding:12px;border-right:3px solid #aaa975;background:#e8e4cf;margin:14px 0;font-size:11px!important;line-height:1.9}
.social-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:22px 0 8px}.social-section-title h3{color:#345542}.social-section-title>span{font-size:10px;color:#6a7155;text-align:left}
.opponent-row,.clan-row{display:flex;align-items:center;gap:10px;border-top:1px solid #c9c8ab;padding:16px 0}.opponent-banner{flex:none;position:relative;display:grid;place-items:center;width:46px;height:55px;background:#dbdfc0;border:1px solid #b9c49a;border-radius:8px;color:#527552}.opponent-banner svg{width:26px;height:26px}.opponent-banner span{font-size:10px;line-height:1;position:absolute;bottom:3px}.opponent-summary{min-width:0;flex:1}.opponent-summary p,.clan-row p{color:#646a50;margin:2px 0}.opponent-summary small{display:block;font-size:10px;line-height:1.8;color:#76542e}.opponent-row .small-button{flex:none;min-width:65px;font-size:11px;padding:8px;line-height:1.6}.clan-tag{font-size:11px;color:#45674e;font-weight:800;letter-spacing:.05em}.clan-row>div{flex:1;min-width:0}.clan-row button{font-size:11px;flex:none}
.social-empty{text-align:center;padding:24px 8px;color:#55674e}.social-empty h3{font-size:16px;color:#345640;margin-bottom:12px}.social-empty p{margin:8px 0 14px}.social-empty button{font-size:12px}.social-empty.compact{padding:18px 10px;background:#e8e6cf;border:1px dashed #bfc5a7;border-radius:9px}.social-empty.compact p{margin:0}.social-emblem{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 16px;background:#d9e1bf;color:#54734c;border:1px solid #c0cca4;border-radius:50%}.social-emblem svg{width:35px;height:35px}
.social-error{color:#8c3e2c!important;border-right:3px solid #ad6348;padding:10px 12px;background:#f4dec7;font-size:12px;line-height:1.8;margin:10px 0}.social-error:empty{display:none}
.clan-create{border:1px solid #bfc49e;border-radius:10px;background:#e9e8cf;margin:18px 0}.clan-create summary{display:flex;align-items:center;gap:8px;cursor:pointer;padding:12px;color:#3e654c;font-size:13px;font-weight:700}.clan-create summary>span{margin-right:auto;font-size:10px;color:#647952}.clan-create summary:focus-visible{outline:3px solid #456e56;outline-offset:3px}.clan-create[open] summary{border-bottom:1px solid #c8ccad}.clan-create summary svg{width:22px;height:22px}
#clan-form{padding:16px;text-align:right}#clan-form label{display:block;font-size:12px;color:#3c5b44;margin:12px 0 6px}#clan-form label:first-child{margin-top:0}#clan-form input{width:100%;min-height:44px;padding:10px;border:1px solid #949e7c;background:#fbf9eb;color:#294633;border-radius:7px;font:inherit;font-size:15px}#clan-form input:focus-visible{outline:3px solid #4d805e;outline-offset:2px}#clan-form small{display:block;font-size:10px;line-height:1.9;color:#5e684d;margin:6px 0}#clan-form .primary{width:100%;font-size:12px;box-shadow:none;margin-top:12px}
.clan-heading{text-align:center;padding:8px 0 12px}.clan-heading h3{font-size:22px;color:#36593d;margin:10px 0 4px}.clan-heading p{color:#6d7355;margin-bottom:10px}.clan-standard{margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:84px;height:96px;background:#315e46;color:#efdc99;border:2px solid #b39e63;border-radius:12px 12px 32px 32px}.clan-standard svg{width:30px;height:30px}.clan-standard bdi{font-size:12px;font-weight:800;letter-spacing:.08em}
.member-row{border-top:1px solid #ceceb1;padding:14px 0}.member-main{display:flex;align-items:center;gap:10px}.member-main>svg{width:25px;color:#6d865a}.member-main>div{min-width:0}.member-main h3 small{font-size:11px;color:#62794f}.member-main p{font-size:11px;color:#6a7058;margin-top:4px}.member-actions{display:flex;gap:12px;margin-top:8px}.member-actions .text-button{font-size:10px;padding:6px 3px}.social-drawer .danger{color:#914b35}
.battle-history{list-style:none;padding:0;margin:16px 0}.history-entry{padding:16px 0;border-top:1px solid #c9c9ac}.history-heading{display:flex;align-items:center;gap:8px;justify-content:space-between}.history-kind{display:flex;align-items:center;gap:5px;font-size:11px;color:#546f50}.history-kind svg{width:19px;height:19px}.history-heading strong{font-size:12px;color:#4c6147}.history-heading>b{font-size:15px}.history-heading small{font-size:9px;font-weight:400}.history-entry h3{margin-top:10px}.history-entry p{font-size:11px;color:#637050;margin:4px 0}.history-entry time{font-size:10px;color:#7a7c61}.pvp-result-score{display:flex;align-items:center;justify-content:space-between;background:#e0e5c9;border-radius:10px;padding:14px;margin:16px 0;color:#3e694d;font-size:12px}.pvp-result-score strong{font-size:30px}
@media(max-width:760px){.social-drawer{width:auto;max-height:calc(100% - 234px)}.social-profile{padding:12px}.social-drawer .social-tabs button{font-size:11px}.social-drawer .social-tabs svg{width:17px}.social-drawer .social-profile strong{font-size:16px}.social-section-title{align-items:flex-start}.social-section-title>span{max-width:46%;line-height:1.8}.opponent-row{gap:8px}.opponent-banner{width:39px}.opponent-row .small-button{min-width:58px}.social-empty{padding:18px 4px}.clan-row button{padding:8px}.social-entry{min-height:44px}.battle-title>span{max-width:190px;display:block}.battle-title h2{max-width:200px;overflow-wrap:anywhere}.clan-standard{width:72px;height:85px}}
@media(prefers-reduced-motion:reduce){.social-drawer *{scroll-behavior:auto}}
/* Story campaign, durable rewards, and a visible path through rank 21. */
.campaign-overview{margin:16px 0;padding:16px;border:1px solid #aa9d68;background:#2d5140;color:#f8ecd0;border-radius:11px}
.campaign-overview>span{display:block;font-size:11px;color:#dec894;margin-bottom:8px}.campaign-overview>strong{display:block;font-size:18px;line-height:1.8}.campaign-overview p{font-size:11px;line-height:1.95;color:#e2dfc5;margin-top:9px}
.campaign-chapter{margin-top:26px;scroll-margin-top:16px}.drawer .campaign-chapter>header{padding:14px 0 12px;border-bottom:2px solid #b3b68e;background:none;position:static}.campaign-chapter>header>span{font-size:10px;color:#806c3e}.campaign-chapter>header h3{font-size:18px;line-height:1.8;color:#345842;margin:3px 0}.campaign-chapter>header small{font-size:10px;color:#697355}.campaign-chapter .chapter-reward{font-size:10px;line-height:1.85;margin-top:9px;color:#6e5d35}.campaign-chapter .camp-card{padding:18px 0}.camp-card h4{font-size:15px;line-height:1.8;color:#34583f;margin:0}.camp-card.locked{opacity:.82}.camp-card.locked .item-icon{background:#e2decb;color:#827c65}.camp-card.completed h4{color:#33755b}.camp-number{display:block;font-size:10px;color:#71795d}.mission-tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}.mission-tags>span{font-size:10px;border:1px solid #c6c6a5;border-radius:6px;padding:4px 8px;background:#e7e5cf;color:#52624c}.camp-card .mission-objective{border-right:2px solid #97a67a;padding-right:9px;color:#42604a;font-size:11px}
.reward-entry{color:#f0dfae}.reward-entry>span{font-size:10px;max-width:56px;overflow:hidden;text-overflow:ellipsis;border-radius:9px;background:#e4c68a;color:#374530;padding:1px 6px;font-variant-numeric:tabular-nums}.reward-inbox{margin:16px 0;padding:14px;background:#e7e2c6;border:1px solid #beba92;border-radius:10px}.reward-inbox-heading{display:flex;align-items:center;gap:7px}.reward-inbox-heading>svg{width:20px;height:20px;color:#9b733b}.reward-inbox-heading h3{font-size:13px;color:#4c623f}.reward-inbox-heading>span{margin-right:auto;color:#746c45;font-size:10px}.reward-inbox p{font-size:11px;line-height:1.9;color:#666c4e;margin:10px 0}.reward-inbox .card-bottom{gap:12px;flex-wrap:wrap}.reward-inbox .small-button{width:100%;font-size:11px}.pending-test-credit{display:block;color:#795c26;font-size:11px;line-height:1.9}
.rank-heading{display:flex;justify-content:space-between;align-items:center;margin:12px 0 8px;padding:8px 10px;border-radius:7px;background:#dfe6ce;color:#42634a;font-size:11px}.rank-heading strong{font-size:14px;font-variant-numeric:tabular-nums}.rank-upgrade{border-top:1px dashed #b8bea0;margin-top:14px;padding-top:14px}.rank-upgrade .card-bottom{gap:10px;flex-wrap:wrap}.secondary-rank{background:#647c57;color:#fff4d9}.rank-progress{display:block;width:100%;height:8px;margin:12px 0 16px;border:0;border-radius:4px;background:#cfceb0;accent-color:#40816a}.rank-progress::-webkit-progress-bar{background:#cfceb0;border-radius:4px}.rank-progress::-webkit-progress-value{background:#40816a;border-radius:4px}.rank-progress::-moz-progress-bar{background:#40816a;border-radius:4px}
.modal-card .story-copy{text-align:right;font-size:13px;line-height:2.05;color:#4d6047;margin:18px 0}.mission-brief{text-align:right;padding:13px 15px;background:#e0e6ce;border:1px solid #bac5a3;border-radius:10px;margin:16px 0}.mission-brief h3{font-size:14px;color:#3a6249}.mission-brief p{font-size:12px;line-height:1.9;margin:8px 0;color:#50664b}.mission-brief .mission-tags{margin-bottom:0}.brief-rewards{text-align:right;padding:13px 0 17px}.brief-rewards>strong{display:block;font-size:12px;color:#6c623f;margin-bottom:10px}.brief-rewards>p{font-size:11px;line-height:1.9;margin:9px 0;color:#687054}.modal-card:has(.mission-brief) .primary{width:100%}.result-rewards h3{font-size:12px;font-weight:500;color:#5f6b4c;margin-top:20px}.result-rewards .result-loot{margin-top:10px}.result-story{padding:12px 14px;border-right:3px solid #9fae7d;background:#e6e6cf}.deferred-reward{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;border:1px solid #c5bc90;border-radius:8px;padding:12px;background:#ece2c2}.deferred-reward>strong{font-size:11px;color:#6f6138}.next-mission{font-size:12px!important;line-height:1.9;color:#37694f!important;background:#dee7c9;padding:12px;border-radius:8px}.chapter-award{padding:14px;border:1px solid #b5a063;background:#e9dba9;border-radius:9px;margin:14px 0;color:#6a5128;text-align:right}.chapter-award>strong{font-size:13px}.chapter-award p{font-size:11px;line-height:1.9;margin:8px 0}.chapter-award small{font-size:10px;line-height:1.9;display:block}
.battle-objective{position:absolute;right:28px;top:203px;width:285px;display:grid;grid-template-columns:1fr auto;gap:8px;padding:12px 14px;background:#1e4036ed;border:1px solid #b7bb8866;border-radius:11px;color:#f1efd5;pointer-events:none}.battle-objective>strong{font-size:12px;color:#f2d593}.battle-objective>span{font-size:12px;font-variant-numeric:tabular-nums;direction:rtl}.battle-objective progress{grid-column:1/-1;width:100%;height:6px;border:0;border-radius:4px;accent-color:#dcbb6c;background:#102e28}.battle-objective progress::-webkit-progress-bar{background:#102e28;border-radius:4px}.battle-objective progress::-webkit-progress-value{background:#dcbb6c;border-radius:4px}.battle-objective progress::-moz-progress-bar{background:#dcbb6c;border-radius:4px}.battle-objective>small{grid-column:1/-1;font-size:10px;line-height:1.8;color:#d3dfc4}
.rally-controls{display:grid;gap:6px;flex-shrink:0}.rally-controls button{min-height:44px;border:1px solid #bac99a88;border-radius:8px;background:#2c5747;color:#f5ecd0;padding:7px 12px;font-size:11px}.rally-controls button[aria-pressed=true]{background:#e6bf70;color:#3a402b;border-color:#ffdf91}.rally-controls button:active:not(:disabled),.reward-inbox button:active:not(:disabled),.mission-brief button:active:not(:disabled){transform:scale(.97)}.rally-controls button:focus-visible,.reward-inbox button:focus-visible,.campaign-chapter button:focus-visible,.rank-upgrade button:focus-visible{outline:3px solid #5b875d;outline-offset:3px}
@media(max-width:1050px) and (min-width:761px){.battle-objective{right:18px;width:260px}.has-rally .troop-choice{min-width:55px}.has-rally .troop-roster{max-width:430px}.rally-controls button{padding:7px 9px}}
@media(max-width:760px){.progress-hub{width:144px}.reward-entry{font-size:10px}.reward-entry>span{max-width:45px;font-size:9px}.campaign-chapter>header h3{font-size:17px}.camp-card h4{font-size:14px}.campaign-overview>strong{font-size:16px}.mission-brief{padding:12px}.modal-card .story-copy{font-size:12px}.battle-objective{top:190px;right:14px;left:14px;width:auto;padding:9px 12px;gap:5px}.battle-objective>strong,.battle-objective>span{font-size:11px}.battle-objective>small{font-size:9px;line-height:1.65}.rally-controls{width:100%;grid-template-columns:1fr 1fr;order:3}.rally-controls button{min-height:44px}.has-rally .deployment-hint{bottom:214px}.has-rally .map-tools{bottom:262px}.has-rally .voice-caption{bottom:246px}.rank-upgrade .small-button{font-size:11px}.result-rewards .costs{flex-wrap:wrap}}
@media(max-width:380px){.progress-hub{width:132px}.battle-title h2{max-width:185px}.battle-objective{top:204px}}
@media(max-height:580px) and (min-width:761px){.battle-objective{top:161px;width:250px;padding:9px 11px}.battle-objective>small{font-size:9px}.progress-hub{gap:5px}.progress-hub .free-path-button{min-height:38px}.progress-hub .kstar-pill{min-height:54px}}
@media(prefers-reduced-motion:reduce){.rally-controls button,.reward-inbox button,.campaign-chapter button,.rank-upgrade button{transition:none}.rally-controls button:active:not(:disabled),.reward-inbox button:active:not(:disabled),.campaign-chapter button:active:not(:disabled),.rank-upgrade button:active:not(:disabled){transform:none}}
.upgrade-benefits{margin:16px 0;padding:12px;border:1px solid #b8c5a2;border-radius:9px;background:#e2e8d2;text-align:right}.upgrade-benefits h3{font-size:12px;color:#305b43;margin:0 0 10px}.upgrade-benefits dl{margin:0}.upgrade-benefits dl>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #c7d1b7}.upgrade-benefits dt{font-size:10px;line-height:1.8;color:#52654d}.upgrade-benefits dd{display:flex;align-items:center;gap:6px;margin:0;white-space:nowrap;font-size:11px;font-variant-numeric:tabular-nums}.upgrade-benefits dd>span{color:#6a725d}.upgrade-benefits dd>strong{color:#25664b}.upgrade-benefits dd small{font-size:9px}.unlock-benefit{display:flex;gap:8px;line-height:1.9!important;font-size:11px!important;margin:12px 0 0!important}.unlock-benefit svg{width:18px;height:18px;flex-shrink:0;margin-top:3px}.unlock-benefit strong{display:block;color:#376442;margin-bottom:3px}.upgrade-roadmap{margin:16px 0;border:1px solid #c2c5a4;border-radius:9px;background:#e7e5ce;text-align:right}.upgrade-roadmap summary{padding:13px;cursor:pointer;font-size:11px;font-weight:700;color:#426047;min-height:44px}.upgrade-roadmap summary:focus-visible{outline:3px solid #4b7a5c;outline-offset:3px}.upgrade-roadmap ol{padding:0 12px;margin:0;list-style:none;max-height:380px;overflow:auto;overscroll-behavior:contain}.upgrade-roadmap li{display:flex;gap:9px;padding:12px 0;border-top:1px solid #c6c8ab}.upgrade-roadmap li>span{display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:#cccdb4;color:#617153;font-size:11px}.upgrade-roadmap li.unlocked>span{background:#416e51;color:#fff2ce}.upgrade-roadmap strong{font-size:11px;color:#3c5d41}.upgrade-roadmap p{font-size:10px!important;line-height:1.9!important;margin:5px 0!important}.upgrade-roadmap small{font-size:9px;color:#71735d}.unit-traits{padding:10px 25px 10px 10px;margin:12px 0;background:#dce6c8;border-radius:7px;color:#356149;font-size:10px;line-height:1.9}.speedup-options{display:grid;gap:4px;margin:10px 0}.speedup-options button{min-height:44px;border:1px solid #bcb68d;border-radius:7px;padding:7px;font-size:10px;line-height:1.8;background:#ece2bc;color:#65522a}.speedup-options button:focus-visible{outline:3px solid #4b7a5c;outline-offset:3px}.speedup-options button:disabled{opacity:.5;cursor:not-allowed}.time-saved{padding:10px 12px;border-right:3px solid #aaa06b;background:#e8e0bd;font-size:11px!important;line-height:2!important;color:#615d36}.queue>small{display:block;margin:8px 0;color:#65714e;font-size:10px}
@media(max-width:380px){.upgrade-benefits{padding:9px}.upgrade-benefits dl>div{flex-wrap:wrap;gap:4px}.upgrade-benefits dd{margin-right:auto}}
.live-war-entry{padding:19px 16px;margin-bottom:20px;border:1px solid #b9a267;border-radius:12px;background:linear-gradient(135deg,#244d43,#17392f);color:#f6eed6;box-shadow:0 8px 22px #1b352d20}.live-war-entry h3{margin:7px 0;font-size:21px;color:#f1d38c}.live-war-entry p{font-size:12px;line-height:2;color:#e0e4cf;margin:9px 0 14px}.live-war-entry .social-eyebrow{color:#b6cbb3}.live-war-entry .primary{display:flex;justify-content:center;align-items:center;gap:10px;text-decoration:none;min-height:46px;width:100%;font-size:13px}.live-war-entry small{display:block;margin-top:12px;color:#c0d1b8;font-size:10px;line-height:1.8}.live-war-entry a:focus-visible{outline:3px solid #f5d68d;outline-offset:4px}.graphics-setting{display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #92a18088;border-radius:9px;background:#244b40e8;color:#f2ecd5;font-size:10px;min-height:44px}.graphics-setting select{font:inherit;font-size:11px;color:#f2ecd5;background:#244b40;border:0;padding:5px;max-width:76px;min-height:30px}.graphics-setting select:focus-visible{outline:2px solid #ead08d;outline-offset:2px}
@media(max-width:760px){.graphics-setting{padding:4px 6px;min-height:40px;font-size:0}.graphics-setting select{max-width:68px;font-size:10px}}

/* Deficit purchase stays beside an explicit free route; lore is tied to progress. */
.upgrade-options{margin-top:16px;padding-top:12px;border-top:1px solid #c3c6aa}.upgrade-options>h3{font-size:14px;margin:3px 0 13px;color:#385d46}.upgrade-options>.primary,.resource-choice>.secondary,.kstar-upgrade-choice>.small-button{width:100%;min-height:44px}.upgrade-duration{color:#586747!important;font-size:11px!important;margin:12px 0!important}.upgrade-duration strong{color:#325641}.resource-choice{margin-top:16px}.upgrade-deficits{width:100%;border-collapse:collapse;font-size:11px;text-align:right;color:#445d45;margin:12px 0 16px;font-variant-numeric:tabular-nums}.upgrade-deficits caption{text-align:right;font-size:12px;font-weight:700;padding-bottom:9px;color:#35523d}.upgrade-deficits td,.upgrade-deficits th{padding:9px 5px;border-bottom:1px solid #c7c9af}.upgrade-deficits thead th{font-size:10px;color:#75805d;font-weight:500}.upgrade-deficits tbody td:last-child{font-weight:800;color:#875d28}.kstar-upgrade-choice{border:1px solid #d0ad64;background:#f0e4be;border-radius:10px;padding:14px;text-align:right;margin-top:13px}.kstar-upgrade-choice>strong{display:block;color:#6c4c22;font-size:14px;margin:9px 0}.kstar-upgrade-choice>p{font-size:11px!important;line-height:1.9!important}.kstar-upgrade-choice .small-button{margin-top:10px;background:#365e4a}.resource-spend{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;margin:15px 0;color:#58684b}.resource-spend .costs{flex-wrap:wrap}.roadmap-group{border-top:1px solid #c4c6a8}.roadmap-group>summary{display:list-item;font-size:11px}.roadmap-group>summary small{display:block;margin-top:4px}.roadmap-group>ol{max-height:none}.upgrade-roadmap>.roadmap-intro{padding:0 13px 10px}.heritage-entry{border-color:#c7b781!important}.heritage-entry>b{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:50%;background:#ecd092;color:#3c4e36;font-size:11px}.heritage-tabs{position:sticky;top:0;z-index:1;background:#f0ead3;padding-bottom:11px}.heritage-tabs button{font-size:11px;min-height:44px;gap:4px}.heritage-tabs b{font-size:10px;background:#eccd88;color:#334e3a;border-radius:9px;padding:2px 5px}.heritage-overview{background:#264d3f;color:#e5e3c8;border:1px solid #57765b;border-radius:12px;padding:20px;margin:5px 0 16px}.heritage-overview>span{font-size:10px;color:#d9bd7e}.heritage-overview h3{font-size:18px;color:#f3dfad;margin:8px 0}.heritage-overview p{font-size:11px;line-height:2}.heritage-card{padding:18px 16px;margin:14px 0;background:#f8f0d7;border:1px solid #cac9aa;border-radius:11px}.heritage-card>header{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-bottom:13px}.heritage-card>header small{font-size:10px;color:#758062}.heritage-status{font-size:9px;padding:5px 8px;background:#e2e2cb;color:#647458;border-radius:7px}.heritage-card.ready{border-color:#6f9d72}.heritage-card.ready .heritage-status{background:#386c50;color:#fff2d3}.heritage-card.claimed .heritage-status{background:#d5dfbf;color:#456542}.heritage-card h3{font-size:17px;color:#3b5d43;margin-bottom:8px}.heritage-card>p{font-size:11px;line-height:2;color:#697357}.heritage-card>.primary,.heritage-card>.secondary{width:100%;margin-top:13px;min-height:44px;font-size:12px}.heritage-lore{border-right:3px solid #bd9f5a;background:#ede6c8;border-radius:4px;padding:2px 12px;margin:14px 0}.heritage-lore summary{min-height:44px;cursor:pointer;padding:12px 0;font-size:12px;font-weight:700;color:#5d643f}.heritage-lore p{font-size:12px;line-height:2.2;color:#536347;margin:7px 0 14px}.heritage-lore .lore-adaptation{font-size:10px;color:#838366}.story-source{font-size:11px;color:#267568;display:inline-flex;align-items:center;min-height:44px;padding:7px 0;text-underline-offset:4px}.story-source:focus-visible,.heritage-lore summary:focus-visible{outline:3px solid #587c50;outline-offset:3px}.heritage-action{background:#e2e7cf;border-radius:6px;padding:10px 12px}.heritage-locked{padding:10px 0;color:#7e7d61!important}.heritage-reward{display:flex;gap:9px;flex-wrap:wrap;align-items:center;font-size:11px;color:#6a613a;border-top:1px solid #d3d1b7;margin-top:12px;padding-top:13px}.heritage-reward>strong{width:100%;font-size:11px}.heritage-reward .costs{font-size:11px}.mission-pact{padding:15px 0;color:#4e674b}.mission-pact>h3{font-size:23px;color:#335b42;margin:12px 0}.mission-pact>p{font-size:12px;line-height:2.1;margin:12px 0 20px}.mission-pact article{display:flex;gap:13px;margin:18px 0;padding-bottom:18px;border-bottom:1px solid #c9ccb0}.mission-pact article>span{display:grid;place-items:center;background:#3c6b4f;color:#f5e0a8;border-radius:50%;width:30px;height:30px;flex-shrink:0;font-size:12px}.mission-pact h4{font-size:14px;margin:4px 0 8px}.mission-pact article p{font-size:12px;line-height:2;color:#69765b}.mission-pact .secondary{width:100%;margin-top:15px}.mission-pact .credits-note{font-size:11px;color:#7a7960}.heritage-tabs button,.kstar-upgrade-choice button{transition:background 150ms ease,transform 130ms cubic-bezier(.23,1,.32,1)}
@media(max-width:760px){.progress-hub{gap:5px}.progress-hub .free-path-button{min-height:40px}.heritage-tabs button{font-size:10px}.heritage-card{padding:14px 12px}.upgrade-deficits{font-size:10px}.upgrade-deficits th,.upgrade-deficits td{padding:8px 4px}.resource-spend{flex-direction:column;align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.heritage-tabs button,.kstar-upgrade-choice button{transition:none}}
.heritage-entry-copy{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.heritage-entry-copy small{font-size:8px;line-height:1.6;max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d7d9b4}.heritage-next-card{padding:17px;margin:14px 0 19px;border:1px solid #adac77;border-radius:11px;background:#e5e7cc;color:#466548}.heritage-next-card>small{font-size:10px;color:#7d7853}.heritage-next-card h3{font-size:16px;margin:7px 0}.heritage-next-card p{font-size:11px;line-height:1.9}.heritage-next-card>.secondary{margin-top:14px;width:100%;min-height:44px}.heritage-entry{min-height:54px!important}
.art-preview-entry{display:block;margin-top:18px;padding:12px 16px;border:1px solid #bda36b88;border-radius:8px;color:#21483e;background:#f2e5bd;font-size:13px;text-decoration:none}.art-preview-entry:focus-visible{outline:3px solid #1d7063;outline-offset:3px}

.art-preview-home{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;background:#203f35e8;color:#f4dfab;border:1px solid #cfb67480;border-radius:8px;font-size:11px;text-decoration:none}.art-preview-home:focus-visible{outline:3px solid #e1bf78;outline-offset:3px}

/* Public game information remains reachable on small screens. */
.welcome{overflow-y:auto;pointer-events:auto}.welcome-card{margin-block:auto}.game-info-links{font-size:11px;text-align:center;line-height:2;margin-top:10px}.game-info-links a{color:#fff0bf;text-underline-offset:3px}.game-info-links a:focus-visible{outline:2px solid #ffdd8f;outline-offset:3px}.welcome .game-alpha-note{line-height:1.8}
