@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--gold:#edc57b;--ink:#101d24}*{box-sizing:border-box}body{margin:0;background:#152c32;color:#fff3db;font-family:'DM Sans',sans-serif;overflow:hidden}#world{width:100vw;height:100dvh;display:block;touch-action:none;outline:none}.brand{position:absolute;top:30px;left:36px;letter-spacing:4px;font-weight:800;font-size:22px;pointer-events:none}.brand span{color:var(--gold)}.brand small{display:block;font-size:9px;color:#b6c8c6;letter-spacing:3px;margin-top:8px}.panel{position:absolute;left:4vw;top:17vh;width:390px;padding:28px;background:linear-gradient(135deg,#14242bf5,#14242bdd);border:1px solid #e3c48240;border-radius:16px;box-shadow:0 24px 80px #0005;backdrop-filter:blur(12px)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--gold)}h1{font-family:'Barlow Condensed',sans-serif;font-size:66px;line-height:.98;margin:20px 0}p{font-size:13px;line-height:1.8;color:#b9c8c7}.mission{border-top:1px solid #ffffff1b;border-bottom:1px solid #ffffff1b;margin:24px 0;padding:18px 0}.mission span{font-size:9px;letter-spacing:2px;color:#99bcae}h2{font:600 26px 'Barlow Condensed',sans-serif;margin:8px 0}.mission p{margin:0}button{font:600 12px 'DM Sans',sans-serif;color:inherit;background:#14272f;border:1px solid #a8c0bf40;border-radius:8px;padding:12px;cursor:pointer}button:hover{filter:brightness(1.17)}button:focus-visible{outline:3px solid #fff}.primary{width:100%;padding:18px;color:#322713;background:linear-gradient(#f6d994,#dca655);border:1px solid #ffe6b5;box-shadow:0 5px 0 #8c602e;font-weight:800;letter-spacing:2px}.primary span{float:right}.note{font-size:8px;letter-spacing:1px;text-align:center;color:#9dadac;margin-top:18px}#roster{display:flex;gap:6px;margin:15px 0 24px}.mini{flex:1;text-align:center;background:#ffffff09;border:1px solid #ffffff20;border-radius:7px;padding:9px 0;font-size:22px;color:var(--unit)}.mini:first-child{border-color:var(--gold)}header{position:absolute;top:20px;left:50%;transform:translateX(-50%);width:min(560px,94vw);display:flex;justify-content:space-between;align-items:center}header div{text-align:center}header small{display:block;letter-spacing:2px;font-size:10px}header b{display:block;font:700 30px 'Barlow Condensed',sans-serif}.health{position:absolute;top:94px;left:50%;transform:translateX(-50%);width:min(480px,88vw);display:flex;gap:25px}.health label{flex:1;font-size:9px;letter-spacing:1px}.health b{float:right}progress{display:block;width:100%;height:7px;margin-top:7px;accent-color:#58bad8}.health label:last-child progress{accent-color:#e87867}#hint{position:absolute;bottom:232px;left:50%;transform:translateX(-50%);font-size:12px;text-align:center;background:#14242bdb;padding:10px 16px;border-radius:20px;width:max-content;max-width:94vw;pointer-events:none}footer{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);width:min(540px,96vw);background:#102028ef;border:1px solid #d4b36b55;border-radius:14px;padding:14px 16px;box-shadow:0 12px 45px #0007}.economy{display:flex;justify-content:space-between;align-items:center;color:var(--gold)}.economy b{font-size:24px}.economy small,.economy>span:last-child{font-size:9px;letter-spacing:1px}#goldtrack{height:5px;background:linear-gradient(to right,#edc57b var(--fill),#ffffff15 var(--fill));margin:7px 0 12px;border-radius:3px}#hand{display:flex;gap:9px}.card{position:relative;flex:1;min-width:0;height:109px;padding:7px 3px;background:linear-gradient(145deg,#3c515d,#1c2b38);border:2px solid #72858a55;transition:transform .15s}.card.selected{border-color:#ffe0a1;transform:translateY(-7px);box-shadow:0 0 18px #efbc6450}.card.unaffordable{opacity:.45}.card .symbol{display:block;font-size:37px;line-height:49px;color:var(--unit);text-shadow:0 4px 0 #0004}.card strong{display:block;font-size:10px}.card .cost{position:absolute;left:5px;top:4px;background:#e7bc6c;color:#342814;border-radius:50%;width:22px;height:22px;line-height:22px;font-weight:800}.card .key{position:absolute;right:5px;top:4px;color:#ffffff50;font-size:9px}.footnote{display:flex;justify-content:space-between;font-size:8px;color:#a6babb;margin-top:10px;letter-spacing:.5px}#result{left:50%;top:50%;transform:translate(-50%,-50%);text-align:center}#home{margin-top:20px}#error{position:absolute;inset:20%;background:#321c1c;padding:30px}[hidden]{display:none!important}@media(max-width:700px){.brand{top:18px;left:20px;font-size:16px}.panel{width:min(360px,92vw);left:4vw;top:13vh;padding:22px}h1{font-size:50px}.mission{margin:16px 0;padding:12px 0}body.battle .brand{display:none}footer{bottom:8px}.card{height:100px}#hint{bottom:220px;font-size:10px}}@media(max-height:700px){.panel{top:10vh}h1{font-size:44px;margin:12px 0}.mission{margin:12px 0;padding:10px 0}.brand{top:12px}#roster{margin:10px 0 14px}}
/* Project artwork pass */
.mini{padding:0;overflow:hidden;height:57px;min-width:0;background:linear-gradient(#4c5245,#1c2d32);border-radius:7px;cursor:pointer}.mini img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}.mini.chosen{border:2px solid #f2cd7f;box-shadow:0 0 12px #d6af4a44}.mini:first-child:not(.chosen){border-color:#ffffff20}#roster{gap:5px;margin-bottom:12px}#inspect{margin:0 0 18px;display:flex;flex-direction:column;gap:4px}#inspect strong{font:600 22px 'Barlow Condensed',sans-serif}#inspect span{font-size:8px;color:#b7c5bd;letter-spacing:1.5px}.card{height:124px;overflow:hidden;padding:0;background:radial-gradient(ellipse at 50% 30%,#80775a,#28363b 75%)}.portrait{width:100%;height:100%;object-fit:cover;object-position:50% 15%;display:block;pointer-events:none}.card strong{position:absolute;bottom:0;left:0;width:100%;padding:19px 2px 6px;background:linear-gradient(transparent,#101c28 55%);font-size:10px;text-shadow:0 1px 2px #000}.card .cost,.card .key{z-index:2}.card .key{background:#152630bb;padding:2px 4px;border-radius:3px;color:#eee}#hint{bottom:248px}.panel{top:13vh}.mission{margin:18px 0;padding:14px 0}h1{font-size:59px}#world{background:#213b34}@media(max-height:780px){.panel{top:10vh;padding:19px}h1{font-size:42px;margin:10px 0}.panel p{font-size:11px}.mission{margin:9px 0;padding:9px 0}.mini{height:44px}#inspect{margin-bottom:10px}.primary{padding:14px}.note{margin-top:12px}}@media(max-width:700px){.card{height:112px}#hint{bottom:232px}.panel{top:11vh}.mini{height:47px}}
/* Flat Go-client-style HUD: screen coordinates, never parented to model rotation. */
#world-ui,#floaters{position:absolute;inset:0;pointer-events:none;overflow:hidden}.unit-health{position:absolute;left:0;top:0;width:48px;height:7px;filter:drop-shadow(0 1px 2px #0009)}.hp-well{position:absolute;inset:0;background:#121216;border:1px solid #161820;border-radius:2px;overflow:hidden;box-shadow:0 0 0 1px #a3906055}.hp-well i{position:absolute;left:0;top:0;height:100%;display:block}.hp-ghost{background:#f0c419}.hp-fill{background:#4682ff}.enemy .hp-fill{background:#dc4646}.level{position:absolute;right:calc(100% + 3px);top:50%;transform:translateY(-50%);width:17px;height:17px;border-radius:50%;background:#1e50c8;border:2px solid #4682ff;color:#fff;text-align:center;font:bold 10px/13px sans-serif}.enemy .level{background:#b41e1e;border-color:#dc4646}.heal-flash .hp-fill{background:#64ff64}.guarded .hp-well{box-shadow:0 0 7px 2px #c1d7ff}.unit-health small{position:absolute;top:-17px;left:0;width:100%;text-align:center;color:#fff;font-size:10px;text-shadow:0 1px 3px #000}.base-health{width:103px;height:10px}.base-health .hp-well{border:2px solid #ab8a46;border-radius:4px}.base-health .level{height:23px;width:23px;font-size:12px;line-height:19px;border-color:#c7a454}.combat-number{position:absolute;left:0;top:0;font:bold 15px 'Barlow Condensed',sans-serif;color:#ffe4bd;text-shadow:0 2px 2px #201913,1px 0 2px #201913}.combat-number.healing{color:#89f7a2}.camera-controls{position:absolute;right:20px;top:150px;display:flex;gap:5px}.camera-controls button{font-size:16px;padding:8px 13px;background:#102b36e8}.camera-controls button:last-child{font-size:10px}#inspect p{margin:4px 0 0;font-size:10px;line-height:1.5;color:#b9cac5}.panel{top:12vh}#inspect{margin-bottom:13px}.panel h1{font-size:49px}.mission{margin:13px 0;padding:12px 0}.note{font-size:7px}.brand{pointer-events:none}.health{background:#10232aad;padding:9px 12px;border-radius:8px;top:85px}.panel{max-height:84vh;overflow-y:auto}#menu{scrollbar-width:thin}@media(max-width:700px){.camera-controls{right:8px;top:140px}.unit-health{width:37px;height:6px}.level{width:14px;height:14px;font-size:8px;line-height:10px}.base-health{width:75px;height:9px}.panel{max-height:83vh}.panel h1{font-size:40px}}
/* Army selection */
.mini{position:relative}.mini>span{position:absolute;bottom:0;right:0;padding:1px 4px;background:#172b36df;color:#e9cc88;font-size:9px}.champion-slot{border-color:#dab469}.mini:disabled{opacity:.45}#army-picker{position:absolute;right:3vw;top:13vh;width:min(405px,92vw);background:#142832f5;border:1px solid #a68c58;border-radius:14px;padding:18px;box-shadow:0 20px 70px #0009;z-index:10;max-height:80vh;overflow:auto;backdrop-filter:blur(12px)}#army-picker header{position:static;transform:none;width:100%;display:flex;justify-content:space-between;margin-bottom:15px}#army-picker h2{margin:0;font-size:28px}#unit-library{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.library-card{padding:0 0 8px;overflow:hidden;background:#233943;border:1px solid #58717b;min-width:0}.library-card img{width:100%;height:111px;object-fit:cover;object-position:50% 15%;display:block}.library-card b{display:block;font-size:11px;padding:8px 3px 4px}.library-card span{display:block;font-size:8px;color:#d7bf82}.library-card.equipped{border:2px solid #e6c887}.library-card:disabled{opacity:.4;cursor:default}.library-card:disabled:hover{filter:none}#inspect p{min-height:30px}#menu .eyebrow{font-size:8px;letter-spacing:1.3px}@media(max-width:700px){#army-picker{left:4vw;right:auto;top:11vh}.library-card img{height:100px}}

.card{touch-action:none;user-select:none;-webkit-user-select:none}.card img{-webkit-user-drag:none}#drag-card{position:fixed;left:0;top:0;width:82px;height:100px;pointer-events:none;z-index:100;border:2px solid #77eead;border-radius:10px;background:#17332e;overflow:hidden;box-shadow:0 8px 25px #0008}#drag-card.invalid{border-color:#ed6b68}#drag-card img{width:100%;height:100%;object-fit:cover}#drag-card b{position:absolute;bottom:0;left:0;width:100%;font-size:9px;padding:5px;background:#13232bdc;text-align:center}

.objective-label{position:absolute;left:0;top:0;text-align:center;white-space:nowrap;font-size:8px;color:#e9d9a3;text-shadow:0 1px 3px #152218;pointer-events:none}.objective-label b{display:block;letter-spacing:.8px;padding:3px 6px;background:#263326ca;border:1px solid #9c9a6160;border-radius:4px}.objective-label span{display:block;font-size:7px;margin-top:2px}.objective-label.owned b{border-color:#69b9e0;color:#a7e3f3}.objective-label.hostile b{border-color:#c46d62;color:#ffb7a0}#unit-library{grid-template-columns:repeat(3,minmax(0,1fr))}.library-card img{height:120px}.library-card b{min-height:38px}#army-picker{width:min(470px,94vw)}
.map-picker{display:flex;gap:8px;margin:14px 0}.map-picker a{flex:1;padding:10px 8px;border:1px solid #b9a26a55;border-radius:7px;color:#d7dbce;text-align:center;font-size:11px;text-decoration:none;background:#10242a}.map-picker a.active{color:#172b31;background:#e6c585}
#account-bar{position:absolute;top:78px;right:24px;z-index:7;display:flex;align-items:center;gap:10px;font-size:12px;color:#fff1c5;background:#142b35e8;padding:9px 12px;border-radius:9px}#account-bar button,#account-dialog button:not(.primary){border:1px solid #a28c5d;background:#253f48;color:#f6e4ba;padding:8px 12px;border-radius:6px;cursor:pointer}body.battle #account-bar{display:none}#account-dialog{box-sizing:border-box;width:min(440px,94vw);max-height:90vh;overflow:auto;background:#142b35;color:#e9e7db;border:1px solid #c5a76c;border-radius:16px;padding:30px;box-shadow:0 25px 80px #0009}#account-dialog::backdrop{background:#06161dcc;backdrop-filter:blur(5px)}#account-close{float:right}#account-dialog h2{font-size:30px;margin:14px 0}#account-dialog label{display:block;margin:14px 0;font-size:13px}#account-dialog input{box-sizing:border-box;width:100%;margin-top:6px;padding:12px;color:#fff;background:#0a2029;border:1px solid #7c8a88;border-radius:7px;font:inherit}#account-dialog .primary{width:100%;margin:12px 0}#account-message{color:#f6d48a;font-size:13px;min-height:18px}#account-dialog [hidden]{display:none!important}.account-note{font-size:12px;line-height:1.6;color:#aebfbd;margin-top:22px}#account-details{display:grid;grid-template-columns:1fr 1fr;gap:12px}#account-details dd{margin:0;text-align:right;color:#efd184}#account-dialog button:disabled{opacity:.5} @media(max-width:600px){#account-bar{top:90px;left:18px;right:18px;justify-content:space-between;font-size:11px}}
#home-tabs{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:8;display:flex;gap:4px;padding:8px;background:#142b35f5;border:1px solid #ad935e;border-radius:14px}#home-tabs button{min-width:75px;padding:9px 12px;color:#b8c8c7;background:none;border:0;font-size:22px;cursor:pointer}#home-tabs button span{display:block;font-size:11px;margin-top:4px}#home-tabs button.active{color:#f4cd7e;background:#385157;border-radius:9px}#home-resources{position:absolute;top:23px;left:290px;right:200px;z-index:7;display:flex;align-items:center;justify-content:center;gap:16px;color:#f3d48c;font-size:12px}#home-resources button,#army-server-actions button,#lobby-panel button{padding:9px 13px;border:1px solid #a58e61;border-radius:7px;color:#f2deb0;background:#203a44;cursor:pointer}#army-server-actions{position:absolute;bottom:110px;left:55px;z-index:6;display:flex;gap:8px;flex-wrap:wrap;max-width:400px;font-size:11px;color:#cfddcf}#army-sync-status{flex-basis:100%}#lobby-panel{position:absolute;inset:135px 35px 105px;z-index:6;background:#122a34f5;border:1px solid #8f805b;border-radius:16px;padding:24px;overflow:auto;color:#e1e6d6}#lobby-panel>header{display:flex;justify-content:space-between;align-items:center}#lobby-panel h1{font-size:30px;margin:6px 0}#lobby-panel small{color:#d4b777}#lobby-status{min-height:18px;font-size:13px;color:#e1c790}#lobby-content{position:relative}#lobby-panel[hidden],#army-server-actions[hidden]{display:none}.battle #home-tabs,.battle #home-resources,.battle #army-server-actions,.battle #lobby-panel{display:none!important}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:14px;margin-top:16px}.shop-offer{background:#29434b;border:1px solid #766f55;border-radius:12px;padding:16px}.shop-offer img{width:76px;height:76px;object-fit:cover;border-radius:9px;float:right}.shop-offer h3{font-size:17px}.shop-offer button:disabled{opacity:.4;cursor:default}.lobby-controls{display:flex;gap:10px}.data-row{padding:16px;background:#29434b;border-radius:9px;margin:12px 0}.campaign-viewport{position:relative;height:60vh;min-height:300px;border-radius:12px;overflow:hidden}.campaign-viewport canvas{position:static!important;width:100%;height:100%;display:block;touch-action:none}.world-markers{position:absolute;inset:0;pointer-events:none}.world-markers button{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;font-size:10px!important;padding:5px 7px!important;white-space:nowrap;border-color:#edc85e!important}.world-markers button.locked{filter:grayscale(.8);opacity:.75}.mission-detail{margin-top:12px;padding:12px;background:#233e48;border-radius:10px}.mission-detail h2{margin:0}body:not(.battle) #menu{max-height:calc(100vh - 280px);overflow:auto}@media(max-width:750px){#home-tabs{bottom:8px;width:95%;justify-content:space-around}#home-tabs button{min-width:0;padding:8px;font-size:18px}#home-tabs button span{font-size:9px}#home-resources{top:132px;left:10px;right:10px;gap:10px;font-size:10px}#lobby-panel{inset:175px 10px 95px;padding:14px}.shop-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}#army-server-actions{bottom:95px;left:20px;right:20px}body:not(.battle) #menu{top:180px;max-height:calc(100vh - 335px)}}
#lobby-panel>header{position:static;top:auto;left:auto;transform:none;width:auto;margin-bottom:10px}#lobby-panel>header div{text-align:left}#home-resources{transform:none;width:auto}#lobby-panel h1{line-height:1.15}
body.mode-gate{background:radial-gradient(ellipse at top,#244958,#0a1b27 75%)}body.mode-gate> :not(#mode-gate):not(#account-dialog):not(script){display:none!important}#mode-gate{display:none;position:fixed;inset:0;z-index:20;align-content:center;padding:32px;box-sizing:border-box;text-align:center;color:#e7e9df}.mode-gate #mode-gate{display:block}#mode-gate h1{font-size:48px;margin:20px 0}#mode-gate>p{color:#b9cdce}#mode-options{display:flex;gap:22px;max-width:750px;margin:36px auto}#mode-options a{flex:1;padding:36px 22px;text-decoration:none;color:#e6ce91;background:#1c3543;border:1px solid #b99c63;border-radius:16px;text-align:left;transition:background .2s}#mode-options a:hover{background:#2f5060}#mode-options strong{display:block;font-size:32px;margin-bottom:16px}#mode-options span{display:block;color:#b9c9c8;line-height:1.7}#mode-login{margin:25px auto;padding:16px 30px;border:1px solid #e4bd73;background:#e5c184;color:#142833;border-radius:8px;font-size:18px;cursor:pointer}#mode-back{display:block;color:#c9dada;margin:20px}#mode-gate [hidden]{display:none!important}#mode-exit{position:absolute;top:93px;left:36px;color:#e9d29c;z-index:8;text-decoration:none;font-size:12px}.battle #mode-exit{display:none}.mode-sandbox #home-tabs,.mode-sandbox #home-resources,.mode-sandbox #account-bar,.mode-sandbox #army-server-actions,.mode-sandbox #lobby-panel{display:none!important}.mode-sandbox:not(.battle) #menu{max-height:calc(100vh - 210px)}.mode-online #world,.mode-online #world-ui,.mode-online #floaters,.mode-online a[href="quality.html"]{display:none!important}.mode-online{background:radial-gradient(ellipse at top,#244958,#0a1b27)}.mode-online #menu{top:135px;left:35px;bottom:175px;width:calc(100% - 70px);max-height:none;box-sizing:border-box;transform:none}.mode-online #menu .map-picker,.mode-online #menu .mission,.mode-online #menu #start,.mode-online #menu .note,.mode-online #menu>.eyebrow:first-child{display:none}.mode-online #roster{max-width:720px}.mode-online #army-server-actions{left:60px}.mode-online #inspect{max-width:700px}@media(max-width:700px){#mode-options{flex-direction:column;max-width:400px}#mode-options a{padding:24px}#mode-gate h1{font-size:36px}.mode-online #menu{top:175px;left:10px;width:calc(100% - 20px)}.mode-sandbox:not(.battle) #menu{top:155px;max-height:calc(100vh - 180px)}#mode-exit{left:20px;top:108px}}
/* Online lobby: fixed resource/navigation bars with a dedicated scrollable page. */
.mode-online #home-resources{top:16px;left:250px;right:20px;flex-wrap:wrap;gap:9px 18px;padding:10px 16px;background:#102530;border:1px solid #8f805b;border-radius:10px;justify-content:flex-start}
#home-wallet{flex-basis:100%;font-size:11px;color:#b8c9e8;text-transform:capitalize}
.mode-online #account-bar{top:94px;padding:4px 8px;font-size:10px}.mode-online #lobby-panel{inset:140px 28px 105px;max-width:1400px;margin:0 auto;background:linear-gradient(140deg,#193542,#0e202d)}
.champion-strip{display:flex;gap:10px;overflow-x:auto;padding:6px 2px 14px}.champion-strip .online-unit{flex:0 0 108px}
#lobby-panel .online-unit{position:relative;min-width:0;padding:0;overflow:hidden;text-align:center;border:2px solid #536675;border-radius:10px;background:linear-gradient(#3a4552,#172938);color:#fff1d4}
.online-unit img{display:block;width:100%;height:104px;object-fit:cover;object-position:50% 20%}.online-unit strong{display:block;font-size:11px;padding:8px 4px 4px;min-height:34px}.online-unit span{display:block;color:#ddb5f8;font-size:11px;padding:0 4px 9px}
#lobby-panel .online-unit.selected{border-color:#d2a657}#lobby-panel .online-unit.slot-active{box-shadow:0 0 0 2px #e3be72}
.equipped-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;max-width:850px;padding:8px 2px 18px}.equipped-grid .online-unit:first-child{border-color:#ba83ec}
.army-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,360px);gap:24px}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:12px}.unit-detail{padding:20px;border:1px solid #8b7759;border-radius:12px;background:#122634}.unit-detail h3{color:#edc57b;margin-bottom:8px}.unit-detail p{margin:7px 0}.unit-detail progress{height:12px;accent-color:#b483e9}.perk-row{padding:12px 0;border-top:1px solid #ffffff1b}.perk-row p{font-size:12px}#lobby-panel button:disabled{opacity:.45;cursor:default}
.shop-grid{max-width:820px;margin:18px auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.shop-offer{text-align:center;background:radial-gradient(at top,#425367,#1b2c3b);padding:14px 10px;display:flex;flex-direction:column;align-items:center;border:2px solid #727b84}.shop-offer img{float:none;width:100%;max-width:145px;height:115px;object-position:50% 20%;margin-bottom:10px}.shop-offer h3{font-size:14px;margin:8px 0}.shop-offer p{font-size:12px;margin:5px 0 12px}.shop-offer button{margin-top:auto;width:100%}.shop-offer.sold{opacity:.5}.shop-offer.tier-uncommon{border-color:#69a16c}.shop-offer.tier-rare{border-color:#5791d0}.shop-offer.tier-epic{border-color:#b179d3}
@media(max-width:750px){.mode-online #home-resources{left:10px;right:10px;top:70px;font-size:11px}.mode-online #account-bar{top:16px;left:auto;right:10px}.mode-online #mode-exit{top:48px}.mode-online #lobby-panel{inset:167px 10px 94px;padding:14px}.army-columns{grid-template-columns:1fr}.equipped-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.online-unit img{height:90px}.champion-strip .online-unit{flex-basis:90px}.shop-offer img{height:85px}.shop-offer h3{font-size:12px}#home-wallet{font-size:10px}}
.mode-online.online-battle #world,.mode-online.online-battle #world-ui,.mode-online.online-battle #floaters{display:block!important}.online-unit{touch-action:pan-y}.online-unit.drop-ready{outline:3px solid #81d6a5}.champion-strip .online-unit{cursor:pointer}.online-battle #result{z-index:20}.online-battle #result button{margin-top:10px}#lobby-back{display:none!important}
/* Anchored mission card and miniature card-cycle preview. */
.mission-detail{position:absolute;z-index:8;width:min(290px,calc(100% - 16px));max-height:calc(100% - 16px);overflow:auto;margin:0;padding:16px;background:linear-gradient(145deg,#294957,#102633);border:2px solid #c9a96b;box-shadow:0 12px 35px #0009;border-radius:12px}.mission-detail h2{padding-right:25px;font-size:25px}.mission-detail p{font-size:12px;line-height:1.5;margin:9px 0}.mission-detail:after{content:'';position:absolute;bottom:0;left:var(--pin-x,50%);width:10px;height:3px;background:#f4d589}.mission-close{position:absolute;right:7px;top:7px;padding:2px 8px!important;font-size:20px!important}.mission-detail>button:last-child:not(.mission-close){width:100%;background:linear-gradient(#f1d18a,#c79546)!important;color:#222b2b!important;font-weight:800;margin-top:7px}
.battle-deck{display:flex;gap:12px;align-items:center}#hand{flex:1;min-width:0}#next{width:66px;flex:none;text-align:center;color:#d6c9a7;align-self:center}#next>small{display:block;font-size:9px;font-weight:800;letter-spacing:1.5px;margin-bottom:6px}.next-portrait{position:relative;height:80px;border:2px solid #a38d60;border-radius:8px;background:#273d46;box-shadow:3px 3px 0 #617079,6px 6px 0 #213442;overflow:hidden}.next-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}.next-portrait b{position:absolute;top:3px;left:3px;border-radius:50%;background:#e7bc6c;color:#302510;width:20px;font-size:12px;line-height:20px}.next-portrait span{position:absolute;bottom:0;left:0;right:0;background:#172632dc;font-size:9px;padding:3px}#next>strong{display:block;font-size:8px;line-height:1.2;margin-top:9px}.card-level{position:absolute;bottom:30px;left:5px;color:#f6d8ff;background:#3b2659dd;border:1px solid #bba0d6;border-radius:4px;padding:2px 4px;font-size:9px;pointer-events:none}footer{width:min(620px,96vw)}@media(max-width:600px){.battle-deck{gap:9px}#next{width:48px}.next-portrait{height:62px}.card-level{font-size:8px;bottom:28px}.mission-detail{width:260px}}
#lobby-panel[data-page="map"]{display:flex;flex-direction:column;overflow:hidden}#lobby-panel[data-page="map"]>header,#lobby-panel[data-page="map"]>#lobby-status{flex:none}#lobby-panel[data-page="map"] #lobby-content{flex:1;min-height:0}#lobby-panel[data-page="map"] .campaign-viewport{height:100%;min-height:0}.unit-health.has-perk .level{border-color:#c4a0e1}
/* Prevent marker focus from scrolling the clipped 3D viewport internally. */
#lobby-panel[data-page="map"] .campaign-viewport{overflow:clip}
/* Treasury and confirmation dialogs share the same game UI visual language. */
.resource-icon{width:25px;height:25px;object-fit:contain;vertical-align:middle;filter:drop-shadow(0 2px 2px #0007);flex:none}.resource-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;background:linear-gradient(#263d50,#142735);border:1px solid #786b4a;border-radius:8px;box-shadow:inset 0 1px #ffffff0c;white-space:nowrap}.resource-chip b{font:700 16px 'Barlow Condensed',sans-serif;color:#fff0c7}.resource-chip small{font-size:9px;color:#abbfc5}.resource-costs{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.resource-costs .resource-chip{padding:5px}.resource-costs .resource-chip small{display:none}#home-wallet{display:flex;flex-wrap:wrap;gap:6px}#home-wallet .resource-icon{width:22px;height:22px}#home-wallet .resource-chip b{font-size:13px}.mode-online #home-resources{gap:7px;padding:7px 10px}#lobby-panel button>.resource-icon{width:21px;height:21px;margin-right:6px}.game-confirm{width:min(490px,94vw);max-height:90dvh;overflow:auto;padding:28px;color:#f9edcf;background:radial-gradient(ellipse at top,#344b61,#142838 75%);border:2px solid #bc9d60;border-radius:18px;box-shadow:0 25px 100px #000b,inset 0 0 0 4px #162b39,inset 0 0 0 5px #c0a36933}.game-confirm::backdrop{background:#051019c9;backdrop-filter:blur(5px)}.game-confirm h2{font-size:32px;padding-right:20px;margin:16px 0 8px}.game-confirm>p{color:#c4d3d5;font-size:13px;line-height:1.65}.confirm-close{position:absolute;right:12px;top:10px;font-size:22px;padding:2px 10px;background:#152735;border-color:#a08a5d}.confirm-portrait{display:block;width:104px;height:110px;object-fit:contain;margin:20px auto 0;background:radial-gradient(#877d59,#263c50);border:2px solid #bfa366;border-radius:13px;box-shadow:0 5px 15px #0005}.cost-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:12px}.cost-table th{font-size:9px;letter-spacing:.6px;text-transform:uppercase;text-align:right;padding:9px 4px;color:#b9aa87;border-bottom:1px solid #8c7c55}.cost-table th:first-child{text-align:left}.cost-table td{padding:10px 4px;border-bottom:1px solid #ffffff12;text-align:right}.cost-table td:first-child{text-align:left;white-space:nowrap}.cost-table .resource-icon{margin-right:6px}.cost-table td:last-child{color:#8fcea8}.cost-table .insufficient td:last-child,.insufficient{color:#ee9c84!important}.confirm-benefits{border:1px solid #597768;background:#315f482d;border-radius:8px;padding:12px;color:#b4e6bc!important}.confirm-actions{display:flex;gap:12px;margin-top:24px}.confirm-actions>button{flex:1}.confirm-actions .primary{width:auto;font-size:12px;letter-spacing:.5px;padding:13px;box-shadow:0 3px #795630}.game-confirm button:disabled{opacity:.4;cursor:not-allowed}#lobby-panel{box-shadow:inset 0 0 0 3px #0e202c,inset 0 0 0 4px #b3986233,0 16px 55px #0005}.mode-online #home-tabs{background:linear-gradient(#2b4353,#102535);box-shadow:inset 0 1px #dcc48d55,0 5px 20px #0007}.mode-online #home-tabs button.active{background:linear-gradient(#8e7950,#493e2d);color:#ffe3a2;border:1px solid #d5b875}.shop-offer{box-shadow:inset 0 0 0 3px #142b3e,0 7px 15px #0003}.shop-offer button:not(:disabled){background:linear-gradient(#efd08a,#bf8d43)!important;color:#2e2b22!important;font-weight:800}.unit-detail{background:radial-gradient(at top,#304858,#122532);box-shadow:inset 0 0 0 3px #122735}.online-unit{box-shadow:0 5px 10px #0003}@media(max-width:750px){#home-resources .resource-chip{padding:2px 5px}#home-resources .resource-chip small{display:none}.mode-online #home-resources{gap:4px}#home-wallet{gap:4px}.resource-icon{width:21px;height:21px}.game-confirm{padding:22px}.cost-table{font-size:11px}}
.world-markers button.atlas-node{width:32px;height:32px;min-width:0;padding:0;border-radius:50%;font:bold 13px Georgia;box-shadow:0 3px 9px #0007;background:linear-gradient(#385e68,#19343c);border:2px solid #c7af71;color:#f1dfaa}.world-markers button.atlas-node:hover,.world-markers button.atlas-node:focus-visible{background:#967339;transform:translate(-50%,-100%) scale(1.15)}
/* Connected social halls and the authoritative multiplayer battlefield. */
.social-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.social-card{background:linear-gradient(145deg,#243a3e,#17282e);border:1px solid #aa8f514d;border-radius:15px;padding:22px;box-shadow:0 10px 25px #0003}.guild-card{grid-column:1/-1}.social-card h2{color:#e5c789}.social-card label,#lobby-content>label{display:block;margin:12px 0;color:#c7d1ce}.social-card input,#lobby-content>label input{display:block;width:100%;padding:12px;background:#101f26;border:1px solid #66766b;border-radius:7px;color:#fff}.social-card button{margin:6px 8px 6px 0}.chat-log{height:220px;overflow:auto;background:#102229;border:1px solid #91ac9b30;border-radius:9px;padding:12px}.chat-log p{margin:8px 0;overflow-wrap:anywhere}.chat-log strong{color:#dfc184}.server-battle{position:fixed;inset:0;z-index:100;background:#172b30}.server-battle>canvas{width:100%;height:100%;display:block;touch-action:none}.server-battle-ui{position:absolute;inset:0;pointer-events:none}.server-battle-ui>header{position:absolute;top:0;left:0;right:0;width:auto;transform:none;display:flex;align-items:center;justify-content:space-between;padding:15px 24px;background:linear-gradient(#13282eee,#13282eaa);border-bottom:2px solid #c5a661;color:#f2db9e;pointer-events:auto}.server-battle-ui button{cursor:pointer;color:#f1dab1;border:1px solid #b59b65;background:#253f48;border-radius:8px;padding:10px 15px}.server-battle-message{position:absolute;top:65px;left:50%;transform:translateX(-50%);padding:10px 20px;border-radius:12px;background:#12262dda;color:#fff;text-align:center}.server-deck{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:8px;align-items:center;padding:12px;background:#12262ded;border:1px solid #ad915a;border-radius:14px;pointer-events:auto;color:#ecd394;max-width:95vw}.server-deck>span{max-width:95px;font-size:11px}.server-deck .live-card{padding:5px;width:105px;min-height:100px;touch-action:none}.live-card img{height:65px;width:65px;object-fit:contain;pointer-events:none}.live-card span{display:block;font-size:11px;pointer-events:none}.live-card:disabled{opacity:.4}.live-card.selected{outline:2px solid #8ed8f7}.live-health{position:absolute;width:80px;color:#fff;text-align:center;font-size:11px;text-shadow:0 1px 3px #000}.live-health progress{display:block;width:100%;height:8px;accent-color:#7ccc9b}.live-health small{display:block}@media(max-width:650px){.social-grid{grid-template-columns:1fr}.guild-card{grid-column:auto}.server-deck{gap:3px;padding:6px}.server-deck .live-card{width:65px}.live-card img{width:48px;height:48px}.server-deck>span{max-width:60px}.server-deck>strong{font-size:12px}}
.unit-traits{display:flex!important;gap:5px;flex-wrap:wrap;justify-content:center;margin:7px 0}.unit-traits .trait-icon{display:inline-flex;position:relative;width:25px;height:25px;padding:3px;border:1px solid #cfb37366;border-radius:6px;background:#13262e;cursor:help}.unit-traits .trait-icon img{width:100%!important;height:100%!important;object-fit:contain!important;margin:0!important}.trait-icon:focus{outline:2px solid #e7ca8e}#trait-tooltip{position:fixed;width:280px;z-index:10000;background:#15272ff5;border:1px solid #d2b678;border-radius:9px;padding:13px;box-shadow:0 8px 25px #0009;pointer-events:none}#trait-tooltip strong{display:block;color:#f0cb86;margin-bottom:5px}#trait-tooltip span{font-size:13px;line-height:1.5;color:#e4e8de}.audio-controls{padding:12px 0;min-width:260px}.audio-controls label{display:grid;grid-template-columns:1fr 24px;gap:8px;align-items:center;margin:15px 0;color:#e5d7ba}.audio-controls input[type=range]{grid-column:1;width:100%;accent-color:#e5bf74}.audio-controls input[type=checkbox]{width:18px;height:18px;accent-color:#e5bf74}.audio-controls output{font-size:12px;min-width:35px}.audio-controls button{margin-bottom:8px}#battle-pause-dialog>button{display:block;width:100%;margin:12px 0}#audio-settings{position:fixed;bottom:14px;left:14px;z-index:6;background:#192f38e8}.battle #audio-settings,.mode-online #audio-settings{display:none}.library-card .unit-traits{position:static}.online-unit .unit-traits{min-height:25px}
