@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&display=swap');

/* Disable Safari double-tap zoom across the page, including HUD gaps and dialogs.
   Combat surfaces keep their more specific touch-action:none for multitouch. */
html,body,#app,dialog{touch-action:manipulation}
:root{color-scheme:dark;--ink:#101d19;--panel:#182922;--panel-deep:#102019;--line:#a98e4d55;--gold:#d8bd7b;--text:#efe9d6;--muted:#aab3a0;--jade:#8da981;--red:#c6755e;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;font-family:var(--sans);font-size:16px;background:var(--ink);color:var(--text)}
*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,canvas:focus-visible{outline:2px solid #f2d59b;outline-offset:4px}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,.hero-art{transition:background .18s,border-color .18s,filter .18s,transform .18s}h1,h2,h3,p{margin:0}.icon{display:inline-block;width:22px;height:22px;flex-shrink:0;vertical-align:middle}kbd{font:500 12px var(--sans);padding:3px 5px;border:1px solid #aab3a044;border-radius:3px;color:#c6c9b8}strong,b{font-weight:600}.hidden{display:none!important}#app{display:flex;flex-direction:column;height:100dvh;min-height:700px;max-width:2000px;margin:0 auto;background:var(--ink)}
.topbar{height:78px;flex:0 0 78px;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:0 30px;background:linear-gradient(90deg,#182a23,#102019 65%,#19291f);border-bottom:1px solid var(--line);z-index:5}.brand{display:flex;align-items:center;gap:14px;min-width:248px}.seal{width:37px;height:42px;border:1px solid var(--gold);outline:1px solid #ad945944;outline-offset:3px;display:grid;place-items:center;font-family:serif;font-size:26px;line-height:1;color:var(--gold);background:#a38b3b0a}.brand h1{font:600 24px/1 var(--serif);letter-spacing:.095em;color:#eee1bc;white-space:nowrap}.brand-subtitle{display:block;font-size:12px;letter-spacing:.31em;color:var(--muted);margin-top:7px}.scoreboard{display:flex;align-items:center;gap:21px;position:relative}.faction{display:flex;flex-direction:column;gap:6px;width:84px}.faction-name{font-size:13px;letter-spacing:.2em;font-weight:700}.shu{color:#a7c294;text-align:right}.wei{color:#d69479}.base-meter{height:3px;background:#e1dcb31c;width:100%}.base-meter i{display:block;height:100%;background:currentColor;transition:width .2s}.score{display:flex;gap:15px;align-items:center;font:600 26px var(--serif)}.score-divider{font:18px var(--sans);color:#7c846d}.clock{font-size:14px;letter-spacing:.1em;margin-left:10px;color:#b9c1ae;font-variant-numeric:tabular-nums}.header-actions{display:flex;align-items:center;gap:8px}.mode-tag{font-size:12px;letter-spacing:.15em;color:#abb69e;border-right:1px solid #808f6c55;padding-right:17px;margin-right:5px;white-space:nowrap}.icon-button{width:38px;height:38px;display:grid;place-items:center;background:transparent;border:1px solid transparent;color:#cfc9ae;border-radius:3px}.icon-button:hover{background:#d8bd7b12;border-color:#d8bd7b33}.icon-button:disabled{opacity:.35}.icon-button .icon{width:19px;height:19px}
.battlefield{position:relative;flex:1;min-height:330px;overflow:hidden;background:#263e2e;isolation:isolate;border-bottom:1px solid #b99d56aa}.battlefield canvas{position:absolute;width:100%;height:100%;display:block;touch-action:none;outline-offset:-3px}.map-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 50px 70px -45px #05150d,inset 0 -55px 65px -50px #071a10;z-index:1}.map-title{position:absolute;top:22px;left:28px;display:flex;flex-direction:column;gap:6px;pointer-events:none;color:#ffefd2;text-shadow:0 2px 5px #102014,0 0 15px #102014;z-index:2}.eyebrow{font-size:12px;letter-spacing:.22em;color:var(--gold);font-weight:600}.map-title .eyebrow{font-size:14px;color:#ece2b9;letter-spacing:.2em}.map-title>span:last-child{font-size:13px;color:#e2e5ce}.wave-indicator{position:absolute;right:27px;top:22px;display:flex;align-items:center;gap:10px;font-size:12px;color:#e4e8d3;background:#102217c9;border:1px solid #c3cda03b;padding:9px 13px;border-radius:2px;z-index:2}.wave-indicator>.icon{height:16px;width:16px;color:#cbb575}.wave-divider{height:12px;width:1px;background:#c7c8a455}.wave-indicator b{font-weight:500}.wave-indicator>span:last-child{color:#c0c8b1}.toast{position:absolute;top:76px;left:50%;transform:translate(-50%,-6px);z-index:15;pointer-events:none;padding:12px 22px;max-width:min(630px,calc(100% - 32px));width:max-content;text-align:center;font-size:14px;line-height:1.5;color:#f4e9c9;border:1px solid #c4ac6877;background:#15271df2;box-shadow:0 8px 24px #0003;opacity:0;transition:opacity .25s,transform .25s}.toast.visible{opacity:1;transform:translate(-50%,0)}.camera-note{display:none;position:absolute;bottom:9px;left:50%;transform:translateX(-50%);font-size:12px;white-space:nowrap;color:#eee4c3;background:#112519aa;padding:4px 9px;border-radius:2px;pointer-events:none;z-index:2}
.selection-backdrop{position:fixed;inset:78px 0 0;display:flex;align-items:center;justify-content:center;overflow:auto;padding:22px;z-index:20;background:#06190fc2;backdrop-filter:blur(2px)}.selection-panel{width:min(850px,100%);margin:auto;background:linear-gradient(125deg,#23392df9,#11251ffb 65%);padding:29px 32px 20px;border:1px solid #b6a16b99;outline:1px solid #b6a16b33;outline-offset:5px;box-shadow:0 24px 80px #020d0ab3;position:relative}.selection-panel::before{content:'';position:absolute;top:5px;left:5px;right:5px;bottom:5px;border:1px solid #c2af7822;pointer-events:none}.selection-heading{text-align:center;margin-bottom:22px}.selection-heading h2{font:500 43px/1.1 var(--serif);margin:9px 0;color:#f2e7c6}.selection-heading p{font-size:14px;color:#b9c3af;line-height:1.5}.hero-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.hero-card{padding:0;background:#15241e;border:1px solid #7c89624d;text-align:left;overflow:hidden;position:relative;border-radius:1px}.hero-card:hover{border-color:#cbb773;transform:translateY(-2px)}.hero-card.selected{border-color:var(--gold);box-shadow:0 0 0 1px #d8bd7b44,0 3px 16px #0003;background:#25382a}.hero-art{height:203px;background-image:url('assets/portrait-atlas.webp');background-size:300% 100%;background-repeat:no-repeat;position:relative;filter:saturate(.68) brightness(.8)}.portrait-0{background-position:0% center}.portrait-1{background-position:50% center}.portrait-2{background-position:100% center}.hero-card:hover .hero-art,.hero-card.selected .hero-art{filter:saturate(.95) brightness(1)}.hero-art::after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#15241ee6)}.chosen-badge{display:none;position:absolute;top:10px;right:10px;padding:5px 7px;background:var(--gold);color:#19291c;font-size:12px;letter-spacing:.09em;font-weight:700}.selected .chosen-badge{display:block}.hero-card-copy{padding:13px 16px 12px}.hero-role{color:#c9b375;font-size:12px;letter-spacing:.13em}.hero-card h3{font:600 29px/1.05 var(--serif);margin:6px 0 5px}.hero-title{font-size:12px;color:#a9b7a0}.hero-rating{display:grid;gap:6px;padding:0 16px 15px;color:#b2bda7;font-size:12px}.hero-rating>div{display:flex;justify-content:space-between;align-items:center;gap:10px}.rating-bars{display:flex;gap:3px}.rating-bars i{height:4px;width:11px;background:#475340}.rating-bars i.filled{background:#bda46a}.selection-bottom{display:flex;align-items:center;gap:24px;margin-top:23px}.selection-bottom>p{font-size:14px;line-height:1.55;color:#c2c9b7;flex:1}.primary-button{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 24px;min-height:48px;border:1px solid #e5c783;background:linear-gradient(110deg,#d9bd7d,#bea363);color:#17251b;font-size:14px;font-weight:700;box-shadow:inset 0 0 0 3px #1424170d;letter-spacing:.02em;border-radius:1px}.primary-button:hover{background:linear-gradient(110deg,#e8cf93,#ceb375);box-shadow:0 3px 20px #e1c58716}.primary-button:disabled{filter:grayscale(.6);opacity:.6}.primary-button .icon{width:18px;height:18px}.selection-bottom .primary-button{white-space:nowrap;padding:15px 23px}.selection-notes{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:21px;color:#889a83;font-size:12px;letter-spacing:.12em}.note-ornament{color:#ab9660}
.command-bar{display:grid;grid-template-columns:minmax(260px,1.08fr) minmax(310px,1.4fr) 188px 164px;gap:25px;padding:20px 28px 17px;background:linear-gradient(110deg,#1c2c23,#122219 70%,#1c2c23);position:relative;z-index:4;flex-shrink:0;box-shadow:0 -4px 20px #0c1b1933;min-height:155px}.general-status{display:flex;gap:15px;align-items:center;border-right:1px solid #9c946936;padding-right:21px;min-width:0}.hud-portrait{height:105px;width:71px;background-image:url('assets/portrait-atlas.webp');background-size:300% 100%;border:1px solid #b29f6d88;flex:0 0 71px;position:relative}.level-badge{position:absolute;bottom:-5px;left:50%;transform:translateX(-50%);background:#c7ad70;color:#182b1c;border:1px solid #ddc98e;min-width:24px;height:24px;text-align:center;font-size:14px;font-weight:700;padding:2px 4px;box-shadow:0 0 0 3px #16271d}.status-content{flex:1;min-width:0}.general-name{display:flex;align-items:baseline;gap:10px;justify-content:space-between;margin-bottom:10px}.general-name>strong{font:600 24px var(--serif);white-space:nowrap}.general-name>span{font-size:12px;letter-spacing:.08em;color:#909d81}.stat-meter{position:relative;background:#081c13;border:1px solid #ffffff15;height:18px;width:100%;margin-bottom:5px;overflow:hidden}.stat-meter>i{position:absolute;inset:0 auto 0 0;width:100%;transition:width .15s}.health-meter>i{background:linear-gradient(90deg,#557f4b,#8cab6e)}.mana-meter>i{background:linear-gradient(90deg,#30565e,#648e96)}.stat-meter>span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:12px;letter-spacing:.03em;color:#f1f4df;text-shadow:0 1px 3px #061c15;font-variant-numeric:tabular-nums}.xp-track{height:2px;background:#07180e;margin-top:6px}.xp-track>i{height:100%;display:block;background:#d3bb7d;width:0;transition:width .3s}.combat-stats{display:flex;align-items:center;gap:15px;margin-top:10px;color:#b9bfa7;font-size:12px}.combat-stats>span{display:flex;gap:4px;align-items:center;white-space:nowrap}.combat-stats .icon{width:14px;height:14px;color:#ac9d6d}.combat-stats>span:last-child{margin-left:auto;font-size:12px;gap:8px;color:#85977d}.combat-stats b{color:#c9ceb9;font-size:12px}.hud-label{display:block;font-size:12px;letter-spacing:.17em;color:#9cac91;margin-bottom:8px}.abilities{display:flex;gap:10px;align-items:flex-start}.ability{position:relative;width:74px;height:66px;background:linear-gradient(145deg,#41543a,#162b21);border:1px solid #9b986477;display:flex;align-items:center;justify-content:center;margin-bottom:21px;color:#d8c28c}.ability:before{content:'';position:absolute;inset:3px;border:1px solid #bac08a22;pointer-events:none}.ability:hover{border-color:#e0c88e;background:linear-gradient(145deg,#596848,#1c3b2a)}.ability-1{background:linear-gradient(140deg,#3c5550,#18362e)}.ability-2{background:linear-gradient(140deg,#5a6141,#233d29)}.ability-3{background:linear-gradient(140deg,#6e6034,#3b381c)}.ability-icon{height:35px;width:35px;filter:drop-shadow(0 2px 2px #0006)}.ability-key{position:absolute;left:5px;top:4px;font-size:12px;z-index:2;color:#e2dcc4;line-height:1}.ability-cost{position:absolute;right:6px;bottom:4px;color:#a7ccd1;font-size:12px;z-index:2}.ability-name{position:absolute;top:calc(100% + 7px);left:-6px;right:-6px;text-align:center;font-size:12px;color:#b7c0a8;white-space:nowrap}.ability.unavailable .ability-icon{opacity:.3}.ability.unavailable{background:#1a2c23;border-color:#7e865247}.ability-cooldown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#f1e3b9;font-size:20px;text-shadow:0 1px 4px #000;font-weight:600;background:linear-gradient(to top,#101c15b3 var(--recovery,0%),transparent var(--recovery,0%));z-index:1}.ability-3 .ability-cooldown{font-size:14px}.ability.ultimate-ready{border-color:#dfc682;box-shadow:0 0 12px #dab9692c}.ability-hint{font-size:12px;color:#909f85;line-height:1.45;margin-top:3px;min-height:15px;max-width:390px}.supply-panel{display:flex;flex-direction:column;gap:8px;padding-top:2px}.attack-button{min-height:35px;display:flex;align-items:center;justify-content:center;gap:7px;background:#32453257;border:1px solid #959a644f;font-size:12px;color:#d5d9bb}.attack-button>.icon{width:17px;height:17px;color:#c5b77f}.attack-button kbd{font-size:12px;padding:2px;margin-left:auto;color:#a7b08e}.attack-button:hover{background:#46573d80;border-color:#bdb97c99}.attack-button:disabled{opacity:.45}.supply-button{padding:9px 10px;min-height:37px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#c7ae6c0a;border:1px solid #a68e4955;color:#d8bb77}.supply-button>span{display:flex;align-items:center;gap:6px}.supply-button>span:last-child{font-size:12px;gap:8px;color:#c9c5a6}.supply-button strong{font-size:14px;font-variant-numeric:tabular-nums}.supply-button .icon{width:16px;height:16px}.supply-button:hover{background:#c8aa621f;border-color:#cdb275}.supply-button:disabled{opacity:.45}.equipment{display:flex;justify-content:center;gap:16px;color:#86987c;font-size:12px}.equipment>span{display:flex;align-items:center;gap:5px}.equipment .icon{width:16px;height:16px;color:#a99765}.minimap-wrap{padding-left:20px;border-left:1px solid #9c946936}.minimap-wrap .hud-label{text-align:center}.minimap-wrap canvas{display:block;width:100%;height:79px;border:1px solid #aa98614f;cursor:crosshair;touch-action:none;background:#263f2d}.control-strip{display:flex;align-items:center;gap:23px;min-height:31px;flex-shrink:0;padding:5px 29px;border-top:1px solid #72795b26;color:#7f9079;font-size:12px;background:#101e17;line-height:1.5}.control-strip b{font-size:12px;color:#a8b69a;font-weight:500;margin-right:4px}.control-tip{margin-left:4px;color:#83997e}.version{margin-left:auto;font-size:12px;letter-spacing:.09em;white-space:nowrap}
.overlay{position:absolute;inset:0;z-index:17;display:flex;align-items:center;justify-content:center;padding:22px;background:#0a2011a8;backdrop-filter:blur(3px)}.small-panel{width:min(480px,100%);padding:36px;border:1px solid #bea9728c;background:linear-gradient(140deg,#263c2c,#14281ef9);box-shadow:0 20px 90px #020d0a77;text-align:center;max-height:100%;overflow:auto}.small-panel h2{font:500 54px/1.1 var(--serif);margin:10px 0 15px}.small-panel>p{font-size:14px;line-height:1.5;color:#bbc8b1;margin-bottom:25px}.small-panel .primary-button{width:100%}.text-button{border:0;background:transparent;color:#b5c1a5;font-size:13px;padding:14px 10px 0}.text-button:hover{color:#f0dbab}.victory-seal{display:block;margin:0 auto 16px;border:1px solid #d3bb7b;color:#d7c383;width:50px;height:58px;font-family:serif;font-size:33px;line-height:56px}.end-stats{display:flex;justify-content:center;gap:35px;padding:0 0 28px}.end-stats>div{display:flex;flex-direction:column;gap:6px}.end-stats strong{font:600 26px var(--serif);color:#e4d2a0}.end-stats span{font-size:12px;color:#a8b69a}.respawn{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:5;background:#261d19e8;border:1px solid #cd95626e;padding:13px 27px;text-align:center;display:flex;flex-direction:column;gap:4px;min-width:245px;color:#e6c69d}.respawn>span:first-child{font-size:12px;letter-spacing:.14em}.respawn strong{font:600 37px/1 var(--serif)}.respawn>span:last-child{font-size:12px;color:#c7b69c}
.game-dialog{width:min(570px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:28px 32px;background:linear-gradient(130deg,#253b2c,#12261dfc);color:var(--text);border:1px solid #b9a36b;box-shadow:0 20px 120px #0008;border-radius:1px}.game-dialog::backdrop{background:#07170cbf;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-top:-10px;margin-bottom:8px}.dialog-heading>.icon-button{margin-right:-14px}.game-dialog h2{font:500 39px/1.1 var(--serif);color:#efe0b8;margin-bottom:16px}.game-dialog>p{font-size:14px;line-height:1.6;color:#c4ccba}.help-list{display:grid;gap:18px;padding:23px 0}.help-list strong{display:block;font-size:14px;color:#e2d1a2;margin-bottom:5px}.help-list p{font-size:13px;line-height:1.6;color:#b9c7af}.keyboard-guide{border-top:1px solid #c1ad732f;padding-top:18px;display:flex;gap:9px;align-items:center;flex-wrap:wrap;font-size:12px;color:#bac4ae}.game-dialog>.primary-button{margin-top:24px;width:100%}.shop-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;color:#b7c5ab;margin:20px 0}.shop-gold{display:flex;align-items:center;gap:6px;color:var(--gold);font-size:20px}.shop-gold>.icon{height:20px;width:20px}.shop-item{display:flex;align-items:center;gap:16px;border-top:1px solid #a9935e40;padding:20px 0}.shop-item-icon{border:1px solid #bca67166;display:grid;place-items:center;width:51px;height:57px;flex-shrink:0;background:#bdac6121;color:#d6bb76}.shop-item-icon>.icon{height:31px;width:31px}.shop-item-copy{flex:1;min-width:0}.shop-item-copy>strong{font:600 23px var(--serif);color:#eee0b9}.shop-item-copy>p{font-size:12px;color:#b1c2a4;margin:4px 0 7px}.shop-item-copy>span{font-size:12px;letter-spacing:.1em;color:#b5a775}.buy-button{display:flex;align-items:center;gap:6px;background:#d5bc7921;color:#e4c987;border:1px solid #bca66b85;font-size:14px;padding:10px 13px;min-height:42px}.buy-button>.icon{height:17px;width:17px}.buy-button:hover{background:#d5bc7940}.buy-button:disabled{opacity:.35}.game-dialog .shop-message{font-size:12px;color:#b9c7ab;min-height:38px;padding-top:9px;border-top:1px solid #a9935e40}
@media(min-width:1600px){.command-bar{grid-template-columns:minmax(300px,1fr) minmax(390px,1.3fr) 240px 190px;gap:38px;padding:22px 36px}.ability{width:84px;height:72px}.abilities{gap:14px}.ability-panel .hud-label{margin-bottom:10px}.ability-hint{font-size:12px}.topbar{padding:0 36px}.supply-button>span:last-child,.attack-button{font-size:12px}}
@media(max-width:1180px){.topbar{padding:0 20px;gap:20px}.brand{min-width:210px}.brand h1{font-size:21px}.scoreboard{gap:14px}.faction{width:57px}.mode-tag{display:none}.command-bar{grid-template-columns:minmax(235px,1fr) minmax(285px,1.25fr) 172px;gap:19px;padding:18px 20px 15px}.minimap-wrap{display:none}.general-status{gap:11px;padding-right:17px}.hud-portrait{width:60px;flex-basis:60px;height:96px}.ability{width:65px;height:62px}.abilities{gap:9px}.general-name{gap:5px}.general-name>strong{font-size:22px}.general-name>span{display:none}.control-strip{gap:20px;padding:5px 20px}.control-tip{display:none}.selection-panel{max-width:800px}}
@media(max-width:820px){#app{min-height:650px}.topbar{height:67px;flex-basis:67px;padding:0 15px;gap:12px}.brand{min-width:0;gap:10px}.brand h1{font-size:19px;letter-spacing:.055em}.seal{height:32px;width:27px;font-size:22px}.brand-subtitle{font-size:12px;letter-spacing:.2em;margin-top:6px}.faction{width:42px}.scoreboard{gap:10px}.score{font-size:22px;gap:8px}.faction-name{font-size:12px}.clock{font-size:12px;margin-left:3px}.header-actions{gap:0}.icon-button{width:33px;height:35px}.map-title{left:19px;top:18px}.map-title>span:last-child{font-size:12px;max-width:280px}.wave-indicator{top:16px;right:16px;font-size:12px;padding:8px;gap:6px}.wave-indicator>.icon{display:none}.command-bar{grid-template-columns:minmax(205px,1fr) minmax(245px,1.2fr) 125px;padding:14px 15px 11px;gap:14px;min-height:143px}.general-status{gap:10px;padding-right:14px}.hud-portrait{width:55px;flex-basis:55px;height:87px}.general-name>strong{font-size:21px}.combat-stats{gap:12px}.combat-stats>span:last-child{display:none}.ability{height:58px;width:55px}.abilities{gap:7px}.ability-icon{height:29px;width:29px}.ability-name{font-size:12px}.ability-hint{font-size:12px}.attack-button{font-size:12px;gap:4px;padding:5px}.attack-button kbd{display:none}.supply-button{padding:8px 7px;flex-wrap:wrap;justify-content:center;gap:6px}.supply-button>span:last-child{font-size:12px}.equipment{gap:9px}.equipment .icon{width:13px;height:13px}.selection-backdrop{inset:67px 0 0;padding:20px}.selection-panel{padding:24px 25px 18px}.selection-heading h2{font-size:36px}.selection-heading p{font-size:13px}.hero-grid{gap:11px}.hero-art{height:185px}.hero-card-copy{padding:11px 12px}.hero-card h3{font-size:26px}.hero-title{font-size:12px}.hero-rating{padding:0 12px 13px;font-size:12px}.rating-bars i{width:8px}.selection-bottom{margin-top:19px;gap:20px}.selection-bottom>p{font-size:12px}.selection-bottom .primary-button{font-size:13px;padding:14px 20px}.control-strip{font-size:12px;gap:18px;padding:5px 15px}.control-strip b{font-size:12px}}
@media(max-width:640px){#app{height:100dvh;min-height:690px}.topbar{height:99px;flex:0 0 99px;flex-wrap:wrap;align-content:center;gap:13px;padding:11px 15px 9px}.brand{flex:1}.brand h1{font-size:21px}.brand-subtitle{font-size:12px}.header-actions{margin-left:auto;order:1}.scoreboard{order:2;width:100%;justify-content:center;gap:16px;height:21px}.faction{width:53px;flex-direction:row;align-items:center;gap:6px}.faction.shu{flex-direction:row-reverse}.faction-name{font-size:12px}.base-meter{width:22px;height:3px}.score{font:600 20px/1 var(--serif);gap:10px}.clock{font-size:12px;margin-left:4px}.icon-button{width:33px;height:33px}.map-title{top:14px;left:14px;gap:4px}.map-title .eyebrow{font-size:12px}.map-title>span:last-child{font-size:12px;max-width:215px}.wave-indicator{right:12px;top:12px;padding:7px 8px;flex-direction:column;align-items:flex-end;gap:2px;background:#102217aa}.wave-divider{display:none}.wave-indicator>span:last-child{font-size:12px}.battlefield{min-height:300px}.camera-note{display:block}.command-bar{display:grid;grid-template-columns:1fr 115px;gap:14px 14px;padding:13px 14px 10px;min-height:208px}.general-status{grid-column:1;grid-row:1;padding:0;border:0;gap:11px;align-items:flex-start}.hud-portrait{height:67px;width:46px;flex-basis:46px}.level-badge{height:20px;min-width:20px;font-size:12px;bottom:-4px}.general-name{margin-bottom:7px}.general-name>strong{font-size:22px;line-height:1}.stat-meter{height:14px;margin-bottom:4px}.stat-meter>span{font-size:12px}.xp-track{margin-top:5px}.combat-stats{display:none}.supply-panel{grid-column:2;grid-row:1/3;padding-top:0;justify-content:center;gap:11px}.attack-button{font-size:12px;min-height:42px;padding:7px;line-height:1.3}.attack-button>.icon{width:18px;height:18px}.supply-button{padding:9px 7px;gap:6px;flex-direction:column;min-height:61px}.supply-button>span:last-child{font-size:12px}.supply-button strong{font-size:17px}.equipment{gap:10px}.ability-panel{grid-column:1;grid-row:2}.ability-panel>.hud-label{display:none}.abilities{gap:8px;justify-content:space-between}.ability{width:calc((100% - 24px)/4);height:54px;margin-bottom:18px}.ability-icon{height:27px;width:27px}.ability-key{font-size:12px}.ability-cost{font-size:12px;right:4px;bottom:4px}.ability-name{font-size:12px;top:calc(100% + 6px);left:-6px;right:-6px}.ability-hint{display:none}.control-strip{gap:7px;justify-content:space-between;min-height:25px;padding:5px 14px}.control-strip>span:nth-child(2),.control-strip>span:nth-child(3){display:none}.control-strip>span:first-child{font-size:12px}.control-strip b{font-size:12px}.control-strip .version{font-size:12px}.selection-backdrop{inset:99px 0 0;padding:20px 14px;align-items:flex-start}.selection-panel{padding:23px 17px 17px;max-width:460px}.selection-heading{margin-bottom:19px}.selection-heading>.eyebrow{font-size:12px;letter-spacing:.16em}.selection-heading h2{font-size:34px;margin:8px 0}.selection-heading p{font-size:12px;line-height:1.5}.hero-grid{gap:8px}.hero-art{height:142px;background-size:300% 100%}.hero-card-copy{padding:9px 8px 10px}.hero-role{font-size:12px;letter-spacing:.04em}.hero-card h3{font-size:22px;line-height:1.1;margin:5px 0 4px}.hero-title{font-size:12px;line-height:1.4;display:block;min-height:25px}.hero-rating{display:none}.chosen-badge{font-size:6px;top:6px;right:5px;padding:4px;letter-spacing:.04em}.selection-bottom{flex-direction:column;gap:16px;margin-top:19px}.selection-bottom>p{font-size:13px;line-height:1.5;min-height:39px;text-align:center}.selection-bottom .primary-button{width:100%;font-size:14px;padding:14px}.selection-notes{gap:9px;font-size:7px;letter-spacing:.04em;margin-top:17px}.toast{top:70px;font-size:12px;padding:10px 14px}.small-panel{padding:27px 22px}.small-panel h2{font-size:42px}.small-panel>p{font-size:13px;margin-bottom:20px}.overlay{padding:18px}.end-stats{gap:26px;padding-bottom:20px}.end-stats strong{font-size:24px}.victory-seal{width:38px;height:44px;font-size:27px;line-height:42px;margin-bottom:10px}.end-panel{padding:20px}.end-panel .eyebrow{font-size:12px}.end-panel h2{margin:5px 0 10px}.end-panel>p{margin-bottom:16px}.game-dialog{padding:23px 22px}.game-dialog h2{font-size:35px}.shop-item{gap:11px}.shop-item-copy>strong{font-size:21px}.shop-item-copy>p{font-size:12px}.shop-item-icon{width:40px;height:48px}.buy-button{padding:10px}.respawn{bottom:32px;padding:10px 18px;min-width:225px}.respawn strong{font-size:31px}}
@media(max-width:370px){.command-bar{grid-template-columns:1fr 101px;gap:13px 11px;padding-left:11px;padding-right:11px}.ability{height:49px}.abilities{gap:6px}.hero-card h3{font-size:19px}.hero-art{height:124px}.hero-title{font-size:12px}.selection-panel{padding:20px 14px 15px}.selection-heading h2{font-size:30px}}
@media(max-height:650px) and (min-width:641px){#app{min-height:480px}.topbar{height:58px;flex-basis:58px}.battlefield{min-height:250px}.selection-backdrop{inset:58px 0 0;padding:14px}.selection-panel{max-width:730px;padding:16px 22px 13px}.selection-heading{margin-bottom:14px}.selection-heading h2{font-size:30px;margin:6px 0}.selection-heading>.eyebrow{font-size:12px}.selection-heading p{font-size:12px}.hero-art{height:128px}.hero-card-copy{padding:9px 12px}.hero-card h3{font-size:24px;margin:4px 0}.hero-rating{display:none}.hero-title{font-size:12px}.selection-bottom{margin-top:14px;gap:19px}.selection-bottom>p{font-size:12px}.selection-bottom .primary-button{font-size:12px;min-height:43px;padding:12px 19px}.selection-notes{margin-top:12px;font-size:12px}.command-bar{min-height:125px;padding-top:11px;padding-bottom:10px}.hud-portrait{height:83px}.ability{height:52px}.ability-hint{display:none}.general-name{margin-bottom:6px}.combat-stats{margin-top:6px}.hud-label{font-size:12px}.small-panel{padding:21px 28px}.small-panel h2{font-size:40px;margin:8px 0}.small-panel>p{margin-bottom:20px}.end-stats{padding-bottom:17px}.end-panel .victory-seal{display:none}.end-panel .end-stats strong{font-size:23px}.overlay{overflow:auto;align-items:flex-start}.small-panel{margin:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.hero-card:hover{transform:none}}

.selection-heading p,.selection-bottom>p,.game-dialog>p,.help-list p,.small-panel>p{font-size:16px;line-height:1.5}.ability-hint{font-size:12px}.hero-role,.hero-title,.hero-rating,.hud-label,.brand-subtitle,.combat-stats,.equipment,.control-strip,.control-strip b,.version{font-size:12px}.attack-button,.supply-button>span:last-child,.ability-name{font-size:12px}.header-actions{flex-shrink:0}@media(max-width:640px){.selection-heading p,.selection-bottom>p,.small-panel>p{font-size:14px}.control-strip .version{font-size:12px}.brand-subtitle{font-size:12px;letter-spacing:.12em}.hero-title{min-height:34px}.hero-role{font-size:12px;letter-spacing:0}.chosen-badge{font-size:10px}.selection-notes{font-size:10px}.selection-backdrop{padding-top:18px}.ability-name{font-size:10px}.wave-indicator>span:last-child{font-size:12px}.control-strip>span:first-child{font-size:12px}}

/* Seven-general roster; individual portrait mappings preserve the original art. */
.hero-art.portrait-guan,.hud-portrait.portrait-guan{background-position:0% center}
.hero-art.portrait-jugurtha,.hud-portrait.portrait-jugurtha{background-image:url('assets/selection-3d/jugurtha.webp');background-size:cover;background-position:center 14%;background-repeat:no-repeat}
.hero-art.portrait-zhao,.hud-portrait.portrait-zhao{background-position:50% center}
.hero-art.portrait-zhuge,.hud-portrait.portrait-zhuge{background-position:100% center}
.hero-art:is(.portrait-genghis,.portrait-caesar,.portrait-alexander,.portrait-lubu),.hud-portrait:is(.portrait-genghis,.portrait-caesar,.portrait-alexander,.portrait-lubu){background-image:url('assets/new-hero-portraits.webp');background-size:400% 100%;background-repeat:no-repeat}
.hero-art.portrait-genghis,.hud-portrait.portrait-genghis{background-position:0% center}
.hero-art.portrait-caesar,.hud-portrait.portrait-caesar{background-position:33.333333% center}
.hero-art.portrait-alexander,.hud-portrait.portrait-alexander{background-position:66.666667% center}
.hero-art.portrait-lubu,.hud-portrait.portrait-lubu{background-position:100% center}
.selection-backdrop{overflow:hidden;padding:20px}
.selection-panel{width:min(960px,100%);max-width:960px;height:min(780px,calc(100dvh - 122px));min-height:350px;display:flex;flex-direction:column;padding:23px 25px 18px}
.selection-heading{flex-shrink:0;margin-bottom:17px}
.selection-heading h2{font-size:36px}
.hero-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:13px;min-height:0;overflow-y:auto;overflow-x:hidden;padding:3px 6px 6px 3px;scrollbar-width:thin;scrollbar-color:#b49c60 #172a20;overscroll-behavior:contain}
.hero-card{min-width:0;flex-shrink:0}
.hero-art{height:151px}
.hero-card-copy{padding:11px 12px 13px}
.hero-card h3{font-size:26px;line-height:1.03;min-height:54px;margin:6px 0 4px;overflow-wrap:normal}
.hero-title{font-size:12px;line-height:1.4;min-height:34px;display:block}
.hero-role{font-size:12px;letter-spacing:.07em}
.hero-rating{display:none}
.chosen-badge{font-size:10px;letter-spacing:.05em;padding:5px 6px;top:8px;right:8px}
.selection-bottom{flex-shrink:0;margin-top:17px;padding-top:15px;border-top:1px solid #c1aa632f;gap:20px}
.selection-bottom>p{font-size:14px;min-height:42px}
.selection-bottom .primary-button{max-width:360px;white-space:normal;line-height:1.4;padding:12px 21px;flex:0 0 330px}
.selection-notes{flex-shrink:0;font-size:11px;margin-top:13px;letter-spacing:.06em}
.general-name{flex-wrap:wrap;gap:3px 8px}
.general-name>strong{white-space:normal;line-height:1.06;overflow-wrap:normal}
@media(max-width:820px){.selection-panel{max-width:740px;height:calc(100dvh - 108px);padding:20px}.hero-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.hero-art{height:132px}.hero-card h3{font-size:24px;min-height:50px}.hero-role{font-size:12px;letter-spacing:.01em}.selection-bottom .primary-button{flex-basis:290px}.selection-heading p{font-size:14px}.selection-heading h2{font-size:32px}}
@media(max-width:640px){.selection-backdrop{padding:14px}.selection-panel{height:calc(100dvh - 128px);min-height:350px;max-width:460px;padding:19px 14px 12px}.selection-heading{margin-bottom:14px}.selection-heading h2{font-size:31px;margin:7px 0}.selection-heading>.eyebrow{font-size:11px;letter-spacing:.12em}.selection-heading p{font-size:14px;line-height:1.4}.hero-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding-right:5px}.hero-art{height:142px}.hero-card-copy{padding:10px}.hero-card h3{font-size:25px;min-height:52px;line-height:1.04}.hero-title{font-size:12px;min-height:34px;line-height:1.4}.hero-role{font-size:11px;letter-spacing:.03em}.selection-bottom{flex-direction:column;margin-top:12px;padding-top:11px;gap:10px}.selection-bottom>p{font-size:13px;min-height:38px;line-height:1.4}.selection-bottom .primary-button{flex:0 0 auto;max-width:none;min-height:47px;padding:11px 14px;font-size:14px}.selection-notes{font-size:10px;margin-top:10px;gap:7px;letter-spacing:0}.general-name>strong{font-size:21px}.chosen-badge{font-size:10px}.status-content{min-width:0}}
@media(max-height:650px) and (min-width:641px){.selection-panel{height:calc(100dvh - 88px);min-height:0;padding:14px 20px 12px}.selection-heading{margin-bottom:10px}.selection-heading h2{font-size:28px;margin:5px 0}.selection-heading p{font-size:13px}.hero-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.hero-art{height:100px}.hero-card-copy{padding:8px 10px}.hero-card h3{font-size:22px;min-height:46px}.hero-title{min-height:32px}.selection-bottom{margin-top:9px;padding-top:9px}.selection-bottom>p{font-size:13px;min-height:36px}.selection-bottom .primary-button{flex-basis:300px;min-height:43px;padding:10px 16px}.selection-notes{margin-top:8px;font-size:10px}}

/* Arsenal update: individual skill seals and six visible equipment slots. */
a{color:var(--gold);text-underline-offset:4px}a:focus-visible{outline:2px solid #f2d59b;outline-offset:4px}
.skill-emblem,.item-emblem{display:block;width:40px;height:40px;flex-shrink:0;filter:drop-shadow(0 2px 2px #0005);pointer-events:none}
.skill-emblem{color:var(--hero-color,var(--gold))}.item-emblem{color:#ddc589}
.ability .skill-emblem{width:38px;height:38px}.ability.unavailable .skill-emblem{opacity:.3}
.ability-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.ability-heading .hud-label{margin:0}
.skill-info-button{background:none;border:0;padding:0;color:#c6be9c;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.skill-info-button:hover{color:var(--gold)}
.selected-skill-preview{display:flex;justify-content:center;gap:12px;flex-shrink:0;padding:12px 0 0}
.preview-skill{position:relative;width:49px;height:46px;display:grid;place-items:center;background:#bba5680b;border:1px solid #c8b47455;color:var(--gold)}
.preview-skill:hover{background:#bba56825;border-color:var(--gold)}.preview-skill .skill-emblem{width:33px;height:33px}.preview-skill span{position:absolute;top:2px;left:4px;font-size:10px}
.selection-bottom{margin-top:12px;padding-top:12px}.selection-summary{flex:1;min-width:0}.selection-summary p{font-size:14px;line-height:1.5;color:#c2c9b7}
.selection-links{display:flex;flex-wrap:wrap;gap:8px 17px;margin-top:9px;align-items:center}.selection-links .text-button,.selection-links a{padding:0;font-size:12px;line-height:1.5;color:#d7c38b;text-decoration:underline;text-underline-offset:4px}
.selection-notes{margin-top:10px}
.supply-panel{gap:8px;min-width:0}.supply-actions{display:flex;flex-direction:column;gap:7px}.supply-button{padding:8px;flex-wrap:nowrap;flex-direction:row;min-height:35px}.supply-button>span:last-child{font-size:11px;white-space:nowrap}.supply-button strong{font-size:14px}
.equipment{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}
.inventory-slot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:36px;padding:3px;background:#0b1c1580;border:1px solid #8b8c6244;color:#88967e}
.inventory-slot:hover{border-color:#d8bd7b;background:#bda56316}.inventory-slot.occupied{border-color:#bfa56670;background:linear-gradient(145deg,#52604640,#182a20)}.inventory-slot.slot-selected{border-color:#eed497;box-shadow:inset 0 0 0 1px #eed49733}
.inventory-slot .item-emblem{width:25px;height:25px}.slot-number{position:absolute;top:1px;left:3px;font-size:9px;color:#b6b99f;line-height:1}.empty-slot{font-size:18px;color:#788c715c;line-height:1}.slot-name{font-size:11px;line-height:1.3;text-align:center}
.shop-dialog{width:min(1120px,calc(100% - 32px));padding:25px;max-height:calc(100dvh - 32px)}.shop-dialog[open]{display:flex;flex-direction:column;gap:0}
.shop-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-shrink:0}.shop-header h2{font-size:37px;margin:7px 0 10px}.shop-header-actions{display:flex;align-items:center;gap:18px}.shop-header-actions .icon-button{margin:-8px -9px 0 0}.shop-gold{font-size:21px;white-space:nowrap;min-width:70px}
.shop-hero-line{font-size:12px;line-height:1.5;color:#b7c5ad;flex-shrink:0}
.shop-category-list{display:flex;gap:6px;flex-shrink:0;overflow-x:auto;scrollbar-width:thin;padding:17px 0 14px}
.shop-category{border:1px solid #a6976645;background:#101f193b;white-space:nowrap;font-size:12px;padding:8px 12px;color:#b7c4ae;min-height:35px}.shop-category[aria-pressed=true]{background:#d5bb7421;border-color:#d6bc77;color:#f1dcab}.shop-category:hover{color:#f1dcab;border-color:#d6bc7799}
.shop-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;min-height:150px;flex:1;overflow:hidden;border-top:1px solid #aa925943;border-bottom:1px solid #aa925943;padding:14px 0}
.shop-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start;overflow:auto;min-height:0;max-height:390px;scrollbar-width:thin;scrollbar-color:#b49c60 #172a20;padding-right:5px}
.catalog-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;align-items:center;min-height:88px;text-align:left;padding:10px 9px;border:1px solid #8c916644;background:#14271dd9}.catalog-item:hover,.catalog-item.selected{border-color:#d1b573;background:#3450396e}.catalog-item.equipped{border-color:#7f9e7388}.catalog-item .item-emblem{width:40px;height:40px}
.catalog-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.catalog-copy strong{font-size:13px;color:#e8dfc3;line-height:1.3}.catalog-copy small{font-size:11px;color:#adbaa3;line-height:1.35}.catalog-copy .item-price{color:#d6bd80;font-size:12px;line-height:1.3}
.shop-detail{background:#0c1e155c;border:1px solid #a08d5544;padding:16px;overflow:auto;scrollbar-width:thin;min-height:0;max-height:390px}
.detail-heading{display:flex;gap:13px;align-items:center;margin-bottom:15px}.detail-heading>.item-emblem{width:57px;height:57px;padding:4px;background:#bb9f5210;border:1px solid #c1a56955}.detail-heading .eyebrow{font-size:10px;letter-spacing:.15em}.detail-heading h3{font:600 27px/1.05 var(--serif);color:#f0dfb5;margin:4px 0 6px}.detail-heading p{font-size:12px;color:#a8b49c}
.item-stats{list-style:none;display:grid;grid-template-columns:1fr;gap:6px;margin:0 0 14px;padding:0;color:#bed3b0;font-size:13px;line-height:1.4}.item-stats li:before{content:'+';color:#899f7a;margin-right:5px}.item-stats li{padding:0}
.item-passive{font-size:13px;line-height:1.6;color:#d1cdb5;margin:0 0 16px}.recipe-label{font-size:10px;color:#b5a46f;letter-spacing:.15em;margin-bottom:8px}.recipe-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:11px}.recipe-part{display:flex;align-items:center;gap:5px;padding:5px 7px;border:1px solid #b59d6440;background:#b09c5910;font-size:11px;line-height:1.25}.recipe-part .item-emblem{width:25px;height:25px}.recipe-part.owned{border-color:#9bab7f;color:#d4ddb9}
.recipe-credit{font-size:12px;line-height:1.5;color:#b8c6a5;margin:7px 0 12px}.detail-buy{width:100%;font-size:13px;min-height:43px;padding:11px 12px}.sell-button{border:1px solid #caac70aa;background:#b4955421;color:#e4c991;width:100%;padding:11px;font-size:13px;min-height:43px}.sell-button:hover{background:#b4955440}.purchase-reason{font-size:12px;line-height:1.5;color:#c4b99a;margin-top:8px}
.shop-inventory-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:15px 0 10px;flex-shrink:0}.shop-inventory-heading .eyebrow{font-size:10px;letter-spacing:.15em}.shop-inventory-heading b{margin-left:12px;color:#edddb2;font-size:12px}.shop-inventory-heading>span:last-child{font-size:11px;color:#aab99f}
.shop-inventory{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;flex-shrink:0}.shop-inventory .inventory-slot{min-height:83px;padding:9px 5px 7px}.shop-inventory .item-emblem{width:35px;height:35px}.shop-inventory .slot-number{top:5px;left:7px;font-size:10px}
.shop-footer{display:flex;align-items:center;gap:18px;padding-top:15px;flex-shrink:0}.shop-footer .shop-message{flex:1;border:0;padding:0;min-height:0;font-size:12px;line-height:1.5}.shop-footer>a{font-size:12px;white-space:nowrap}.shop-footer>.primary-button{min-height:40px;padding:10px 25px;font-size:13px}
.skills-dialog{width:min(820px,calc(100% - 32px));--hero-color:var(--gold)}.skills-dialog h2{font-size:38px;margin-bottom:9px}.skill-codex{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:23px 0}.codex-skill{padding:17px;border:1px solid #ab95624d;background:#10251a66;display:flex;gap:13px;align-items:flex-start}.codex-skill.highlighted{border-color:#d7bd78}.codex-skill>.skill-emblem{width:47px;height:47px;padding:4px;border:1px solid #c9b26d55;background:#bea76212}.codex-skill h3{font:600 24px/1.05 var(--serif);color:#efdfb6;margin:5px 0 8px}.codex-skill p{font-size:13px;line-height:1.6;color:#becab1}.skill-targeting{font-size:10px;letter-spacing:.12em;color:#c5b37e}.skill-meta{font-size:11px;color:#93bcc1;line-height:1.6;margin-top:10px}.skills-dialog .codex-note{font-size:12px;line-height:1.55;color:#aeba9f;margin:15px 0}.guide-link{font-size:13px}
@media(min-width:1600px){.command-bar{grid-template-columns:minmax(300px,1fr) minmax(390px,1.3fr) 240px 190px}.inventory-slot{min-height:39px}}
@media(max-width:1180px){.shop-dialog{padding:22px}.shop-layout{grid-template-columns:minmax(0,1fr) 280px;gap:14px}.equipment{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-slot{min-height:31px}.inventory-slot .item-emblem{width:24px;height:24px}.command-bar{align-items:center}}
@media(max-width:820px) and (min-width:641px){.supply-button{flex-direction:column;gap:3px}.supply-button>span:last-child{font-size:10px}.supply-actions{gap:5px}.supply-panel{gap:5px}.inventory-slot{min-height:25px}.inventory-slot .item-emblem{width:21px;height:21px}.skill-info-button{font-size:10px}.ability .skill-emblem{width:33px;height:33px}}
@media(max-width:760px){.shop-layout{grid-template-columns:minmax(0,1fr) 250px;gap:10px}.shop-catalog{grid-template-columns:1fr}.shop-detail{padding:13px}.catalog-item{min-height:78px}.skill-codex{grid-template-columns:1fr}.codex-skill{padding:15px}.shop-category{padding:7px 10px}.shop-footer{gap:12px}.shop-footer>a{display:none}}
@media(max-width:640px){
  #app{min-height:750px}.battlefield{min-height:300px}.command-bar{grid-template-columns:minmax(0,1fr) 108px;gap:12px;padding:12px 14px 10px;min-height:256px;align-items:start}
  .supply-panel,.supply-actions{display:contents}.general-status{grid-row:1;grid-column:1;min-height:80px}.attack-button{grid-column:2;grid-row:1;align-self:start;min-height:34px;padding:5px;line-height:1.2}.supply-button{grid-column:2;grid-row:1;align-self:end;flex-direction:row;flex-wrap:wrap;min-height:38px;gap:3px 6px;padding:5px}.supply-button>span:last-child{font-size:10px}.supply-button strong{font-size:13px}.supply-button .icon{height:13px;width:13px}
  .ability-panel{grid-column:1/-1;grid-row:2}.ability-heading{margin:0 0 8px}.ability-heading .hud-label{display:block;font-size:10px;letter-spacing:.12em}.skill-info-button{font-size:11px}.abilities{gap:10px}.ability{height:58px;width:calc((100% - 30px)/4);margin-bottom:19px}.ability .skill-emblem{width:37px;height:37px}.ability-name{font-size:11px;left:-3px;right:-3px}
  .equipment{grid-column:1/-1;grid-row:3;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.inventory-slot{min-height:35px}.inventory-slot .item-emblem{width:27px;height:27px}.slot-number{font-size:9px;top:2px;left:4px}
  .selection-panel{padding-top:16px}.selection-heading{margin-bottom:11px}.selection-heading h2{font-size:29px}.selection-heading p{font-size:13px}.selected-skill-preview{padding-top:9px;gap:10px}.preview-skill{height:39px;width:44px}.preview-skill .skill-emblem{height:29px;width:29px}.selection-bottom{margin-top:9px;padding-top:9px;gap:11px}.selection-summary p{font-size:12px;line-height:1.45;text-align:center}.selection-links{justify-content:center;gap:9px 15px;margin-top:7px}.selection-links .text-button,.selection-links a{font-size:11px}.selection-notes{font-size:9px;margin-top:8px}.selection-bottom .primary-button{min-height:44px;padding:9px 12px}
  .shop-dialog{width:calc(100% - 18px);max-height:calc(100dvh - 18px);padding:15px}.shop-header{gap:10px}.shop-header h2{font-size:30px;margin:7px 0 9px}.shop-header .eyebrow{font-size:9px;letter-spacing:.11em}.shop-header-actions{gap:6px}.shop-gold{font-size:17px;gap:4px;min-width:auto}.shop-gold .icon{width:17px;height:17px}.shop-header-actions .icon-button{margin:-6px -7px 0 0;width:29px}.shop-hero-line{font-size:11px}
  .shop-category-list{padding:12px 0 10px;gap:5px}.shop-category{font-size:11px;min-height:34px;padding:7px 10px}.shop-layout{grid-template-columns:1fr;gap:12px;overflow:auto;max-height:calc(100dvh - 345px);min-height:180px;padding:10px 0;scrollbar-width:thin;display:flex;flex-direction:column}
  .shop-catalog{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;max-height:none;flex-shrink:0;padding-right:0;gap:6px}.catalog-item{padding:8px 6px;grid-template-columns:32px minmax(0,1fr);gap:6px;min-height:82px}.catalog-item .item-emblem{width:31px;height:31px}.catalog-copy strong{font-size:12px}.catalog-copy small{font-size:10px}.catalog-copy .item-price{font-size:11px}
  .shop-detail{max-height:none;overflow:visible;flex-shrink:0;padding:13px}.detail-heading{margin-bottom:12px}.detail-heading h3{font-size:28px}.detail-heading>.item-emblem{width:51px;height:51px}.item-stats{grid-template-columns:1fr 1fr;font-size:12px}.item-passive{font-size:12px}.recipe-credit{font-size:11px}.shop-inventory-heading{margin:11px 0 8px}.shop-inventory-heading .eyebrow{font-size:9px;letter-spacing:.1em}.shop-inventory-heading b{margin-left:6px;font-size:11px}.shop-inventory-heading>span:last-child{font-size:9px}.shop-inventory{gap:5px}.shop-inventory .inventory-slot{min-height:57px;padding:6px 2px}.shop-inventory .item-emblem{width:29px;height:29px}.shop-inventory .slot-number{top:2px;left:4px;font-size:9px}.slot-name{font-size:8px;line-height:1.2}.shop-footer{padding-top:11px;gap:10px}.shop-footer .shop-message{font-size:10px;line-height:1.4}.shop-footer>.primary-button{padding:9px 18px;font-size:12px;min-height:38px}
  .skills-dialog{padding:22px 18px}.skills-dialog h2{font-size:33px}.skills-dialog>p{font-size:14px}.skill-codex{margin:18px 0;gap:9px}.codex-skill{padding:13px;gap:11px}.codex-skill>.skill-emblem{width:43px;height:43px}.codex-skill h3{font-size:25px}.codex-skill p{font-size:13px}
}
@media(max-height:650px) and (min-width:641px){.shop-dialog{padding:17px 22px}.shop-header h2{font-size:30px}.shop-category-list{padding:11px 0 9px}.shop-inventory-heading{margin:10px 0 8px}.shop-inventory .inventory-slot{min-height:57px}.shop-inventory .item-emblem{width:25px;height:25px}.shop-inventory .slot-name{font-size:9px}.shop-layout{min-height:110px;padding:9px 0}.shop-footer{padding-top:10px}.selected-skill-preview{padding-top:8px}.preview-skill{height:35px;width:40px}.preview-skill .skill-emblem{height:27px;width:27px}.selection-summary p{font-size:12px}.selection-links{margin-top:6px}.selection-links .text-button,.selection-links a{font-size:11px}.selection-bottom{margin-top:8px;padding-top:8px}.supply-actions{gap:5px}.supply-panel{gap:5px}.equipment .inventory-slot{min-height:26px}.equipment .inventory-slot .item-emblem{width:23px;height:23px}}
.art-loading-status{display:flex;align-items:center;justify-content:center;gap:9px;flex-shrink:0;margin-top:9px;font-size:10px;color:#99ad8e;line-height:1.4}.art-loading-status button{background:none;border:0;text-decoration:underline;text-underline-offset:3px;color:#e0c68b;padding:0;font-size:10px}
.shop-hero-line{display:flex;flex-wrap:wrap;gap:5px 13px}.shop-hero-line strong{color:#d9d9bd}.shop-hero-line span{white-space:nowrap}.catalog-copy small small,.item-price small{display:block;font-size:10px;font-weight:400;color:#9bb494}.detail-emblem{flex-shrink:0;width:57px;height:57px;padding:4px;border:1px solid #c1a56955;background:#bb9f5210;display:grid;place-items:center}.detail-emblem>.item-emblem{width:48px;height:48px}.item-total-cost{font-size:12px;color:#a8b49c}.detail-action{margin-top:15px}.equipped-label{display:block;font-size:11px;color:#b8c7a5;margin-bottom:9px}.item-stats li:before{content:none}.recipe-part b{font-size:9px;color:#a7bd91}.codex-emblem{flex:0 0 47px;position:relative;width:47px;height:47px;padding:4px;border:1px solid #c9b26d55;background:#bea76212}.codex-emblem>.skill-emblem{width:38px;height:38px}.codex-emblem b{position:absolute;top:-6px;left:-4px;color:#ede2ba;background:#1a2b20;font-size:10px;padding:1px 3px}.skill-meta{display:flex;flex-wrap:wrap;gap:3px 12px}
@media(max-width:640px){.detail-emblem{width:51px;height:51px}.detail-emblem>.item-emblem{width:43px;height:43px}.art-loading-status{font-size:9px;margin-top:7px}.shop-layout:has(.catalog-item.selected){scroll-behavior:smooth}}
.opening-countdown{position:absolute;left:50%;top:18%;z-index:12;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:4px;pointer-events:none;color:#fff4d4;text-shadow:0 3px 10px #000,0 0 24px #000}.opening-countdown span{font:700 14px/1 var(--sans);letter-spacing:.18em}.opening-countdown strong{font:700 82px/.9 var(--serif);color:#f1d083}.opening-countdown.hidden{display:none}@media(max-width:640px){.opening-countdown{top:17%}.opening-countdown strong{font-size:64px}.opening-countdown span{font-size:12px}}
