:root{--gold:#ceb773;--ink:#101b18;--muted:#9ba68e;--console:176px}button:disabled{cursor:not-allowed}.muted{color:var(--muted)}body[data-mode=game] #world{height:calc(100% - var(--console) - 16px)}body[data-mode=select] .vignette{background:linear-gradient(90deg,#0c1918f7,#10211ec4 35%,#1b2c2050 75%,#111b1988);box-shadow:inset 0 -220px 130px #0b1718}body[data-mode=select] .lobby-copy,body[data-mode=select] .lobby-bottom{display:none}body[data-mode=select] .hero-stage{left:39%;right:1%;top:7%;bottom:23%}body[data-mode=select] .hero-caption{right:14%;top:27%}body[data-mode=select] .hero-orbit{display:none}.brand{letter-spacing:5px}.brand small{letter-spacing:4px}.lobby-copy{width:370px}.lobby-copy h1{font-size:clamp(38px,4vw,60px)}.selected-hero img{object-fit:cover}.hero-caption{right:8%}.choose-heading{position:absolute;top:19%;left:6%;width:370px}.choose-heading h1{font:normal clamp(28px,3vw,44px) LocalSerif,serif;margin:22px 0;color:#f0dfb5;letter-spacing:3px}.choose-heading p{font-size:13px;color:#aab8a1;line-height:2}.choose-heading .start-button{width:300px;margin-top:28px}.choose-heading>small{display:block;color:#859780;font-size:10px;margin-top:13px}.back-button{border:0;background:none;color:#9eaf94;padding:0;margin-bottom:25px;font-size:12px}#hero-roster{position:absolute;bottom:4%;left:5%;right:5%;display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.roster-card{position:relative;overflow:hidden;height:162px;padding:0;text-align:left;background:linear-gradient(#29362ce6,#101b18fa);border:1px solid #69785b80;box-shadow:0 10px 30px #0003}.roster-card img{width:100%;height:122px;object-fit:cover;object-position:50% 40%;opacity:.9;mix-blend-mode:screen}.roster-card>div{position:absolute;left:14px;bottom:12px;right:8px;text-shadow:0 2px 5px #000}.roster-card b{display:block;font:22px LocalSerif,serif;letter-spacing:3px}.roster-card small{display:block;font-size:10px;color:#a9b6a1;margin-top:5px}.hero-number{position:absolute;left:10px;top:8px;font:12px Georgia;color:#b5b78c;z-index:1}.roster-card i{display:none;position:absolute;right:10px;top:8px;font-style:normal;color:var(--hero-color)}.roster-card.selected{border:2px solid var(--hero-color);box-shadow:inset 0 -3px var(--hero-color),0 0 24px #b5c68319}.roster-card.selected i{display:block}.roster-card.selected b{color:var(--hero-color)}
.game-top{top:8px;left:12px;right:12px;height:40px;gap:24px;padding:0 14px}.game-brand{font-size:13px}.resource{font-size:10px}.resource b{font-size:15px;margin-left:2px}.game-time{font-size:13px}.right-tools{top:74px;right:15px;gap:7px}.right-tools button{width:44px;height:49px;font-size:21px}.dps-widget{position:absolute;left:14px;top:65px;width:190px;padding:12px 14px;text-align:left;background:linear-gradient(120deg,#15261ce8,#15261cb0);border-color:#71845855}.dps-widget>span{display:block;font-size:10px;color:#b8c9aa}.dps-widget>span:first-child{display:flex;justify-content:space-between}.dps-widget small{font-size:9px;color:#819776}.dps-widget b{font:27px Georgia;display:block;margin:8px 0;color:#ede2ba}.dps-widget em{font-size:12px;color:#9aa888}.dps-widget>i{display:block;height:4px;background:#40523d;margin:8px 0}.dps-widget u{display:block;height:100%;background:#bad27c;text-decoration:none}.training-brief{position:absolute;left:228px;top:66px;border-left:2px solid #a5bb6f80;padding:0 12px;text-shadow:0 1px 4px #000}.training-brief b{display:block;font-size:11px;font-weight:500;color:#d6ddbe}.training-brief small{display:block;font-size:9px;color:#a6b59a;margin-top:7px}.battle-console{height:var(--console);bottom:8px;left:12px;right:12px;display:grid;grid-template-columns:176px 256px 144px minmax(300px,1fr);gap:8px}.minimap-wrap{width:100%;padding:5px}.minimap-wrap canvas{aspect-ratio:1}.hero-info{min-width:0;width:100%;max-width:none;padding:12px;display:block}.hero-summary{display:flex;gap:10px;align-items:center}.hero-info #portrait{width:58px;height:64px;border-width:1px}.hero-info #portrait img{object-fit:cover}.hero-vitals>div:first-child{margin-bottom:5px}.hero-vitals b{font-size:14px}.hero-stats{margin-top:7px;font-size:9px}.hero-stats b{font-size:11px}.mana-bar{height:14px}.mana-bar span{font-size:9px;line-height:12px}.mana-bar i{inset:1px auto 1px 1px}.hero-info .order-buttons{margin-top:17px;gap:6px;justify-content:space-between}.order-buttons button{width:38px;height:38px;padding:2px}.order-buttons kbd{font-size:9px}.order-buttons #dash-order{border-color:#b3d6a2}.order-buttons #dash-cd{position:absolute;inset:0;display:grid;place-items:center;font:20px Georgia;background:#07120bb0;color:#fff}.order-buttons #dash-cd:empty{display:none}.inventory{padding:12px 10px}.inventory-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:10px 0 6px}.inventory-slots>span,.inventory-slots>button{height:37px;min-width:0;display:grid;place-items:center;background:#0d1812;border:1px solid #4f5a3a;color:#45573d;padding:2px}.inventory-slots img{width:100%;height:100%;object-fit:cover}.text-button{padding:0;border:0;background:none;font-size:9px;color:#b7b48c}.inventory .text-button{width:100%;display:flex;justify-content:space-between;margin-top:9px}.build-slots{display:block;min-width:0;padding:12px}.console-label{font-size:10px;gap:8px;align-items:center}.console-label .text-button{margin-left:auto}.card-slots{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin-top:9px}.held-card,.empty-card{min-width:0;height:71px;background:linear-gradient(#172b1c,#0e1c15);border:1px solid #73835866;position:relative;padding:3px 3px 14px;overflow:hidden}.held-card img{height:42px;width:100%;object-fit:contain}.held-card>span{position:absolute;bottom:3px;left:0;right:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:8px;text-align:center;color:#cfdbc0}.held-card>small{position:absolute;right:2px;top:2px;color:#f3e5ae;font-size:8px;background:#13221ccd}.empty-card{display:grid;place-items:center;padding:0}.empty-card i{font:14px Georgia;color:#4b6146}.growth-foot{display:flex;align-items:center;justify-content:space-between;margin-top:9px;gap:8px}.growth-foot>span{font-size:9px;color:#9daf8a}.draw-button{min-width:132px;min-height:41px;background:linear-gradient(110deg,#d3bc7b,#a28544);color:#202719;border:1px solid #eed296;font-weight:bold;font-size:12px;letter-spacing:2px;padding:4px 12px}.draw-button kbd{color:#e5d4a1;background:#4f4a2b}.draw-button small{display:block;font-size:8px;letter-spacing:0;margin-top:2px;font-weight:400}.bottom-hint{bottom:calc(var(--console) + 22px);left:18px;right:80px;font-size:9px}.bottom-hint>span:last-child{max-width:none}#mode-hint{bottom:calc(var(--console) + 45px)}#inspection{top:140px;right:75px}.floater.magic{color:#9cdddc}.hero-tag{font-size:12px}#toast{z-index:120;top:20%;max-width:80vw;white-space:normal;text-align:center}dialog{max-height:90vh;overflow:auto}dialog.wide-dialog{width:960px;padding:28px 32px}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.dialog-heading h2{font-size:29px;letter-spacing:2px;margin:16px 0}.dialog-heading>span{color:#d8c484;font-size:12px;white-space:nowrap}.dialog-heading>button{font-size:11px;padding:8px 12px}.pick-explain{font-size:11px;margin:0 0 22px!important;color:#9caf94}.draw-candidates{display:flex;gap:18px;justify-content:center;align-items:stretch}.choice-card{position:relative;text-align:left;flex:1;max-width:290px;min-width:0;min-height:345px;display:flex;flex-direction:column;padding:0;background:linear-gradient(145deg,#334532,#13221c);border:1px solid #879668;box-shadow:inset 0 0 0 4px #132119,0 12px 20px #0004}.choice-card:hover{transform:translateY(-5px);filter:brightness(1.13);border-color:#dac77f}.choice-card.sword-card{background:linear-gradient(145deg,#344448,#14201f);border-color:#728b91}.card-topline{display:flex;justify-content:space-between;padding:15px 16px;font-size:10px;color:#acbc94;border-bottom:1px solid #a9ba8740}.card-topline b{color:#e4c274;font:14px Georgia}.card-art{position:relative;display:grid;place-items:center;height:112px;background:radial-gradient(ellipse,#9eb46b35,transparent 70%);border-bottom:1px solid #9fb97f22}.card-art img{height:68px;width:68px;border:1px solid #b7a470;box-shadow:0 5px 20px #0007}.card-art>span{position:absolute;right:14px;bottom:8px;font-size:9px;color:#8fa98b}.choice-card h3{font:23px LocalSerif,serif;letter-spacing:2px;margin:18px 18px 8px;color:#efdfb5}.choice-card p{margin:0 18px 14px;font-size:12px;line-height:1.8;color:#d3d9c0}.card-condition{font-size:9px;line-height:1.7;margin:0 18px 18px;color:#90a58c}.pick-cta{margin-top:auto;display:flex;justify-content:space-between;padding:13px 17px;background:#b3ac6420;border-top:1px solid #a69d5c55;color:#d7c88b;font-size:11px;letter-spacing:2px}.draw-footer{display:flex;gap:12px;align-items:center;margin-top:22px}.draw-footer button{padding:9px 15px;font-size:11px}.draw-footer>span{margin-left:auto;font-size:10px;color:#97a78a}.prototype-note{font-size:9px!important;color:#829378!important;line-height:1.8!important;border-top:1px solid #65774a44;margin:20px 0 0;padding-top:12px}.tabs{display:flex;align-items:center;border-bottom:1px solid #64774b70;gap:10px;margin:12px 0 22px}.tabs button{background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 20px;font-size:12px}.tabs button.active{color:#e7ca85;border-bottom-color:#d5b76c}.tabs small{margin-left:auto;font-size:9px;color:#859c7b}.shop-offers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.shop-item{background:linear-gradient(#2b3829,#17261c);border:1px solid #71855266;padding:24px;display:flex;flex-direction:column;align-items:flex-start;min-height:270px}.shop-item>img{width:64px;height:64px;border:1px solid #ad955c;margin-bottom:15px}.shop-item>small{font-size:9px;color:#97aa82}.shop-item h3{font:22px LocalSerif,serif;letter-spacing:2px;margin:10px 0}.shop-item p{font-size:12px;color:#c3d1af;margin:0 0 18px}.shop-item>span{font-size:10px;color:#8d9f7b;margin-top:auto}.shop-item button{width:100%;margin-top:15px;padding:11px;font-size:11px;border-color:#a28a50;color:#dfc88c;background:#52603740}.stats-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #70844b55;margin:18px 0 30px;background:#0c1b1466}.stats-summary>div{padding:22px;border-right:1px solid #70844b44}.stats-summary small{display:block;color:#95a684;font-size:11px}.stats-summary b{display:block;font:38px Georgia;color:#ddcf97;margin-top:10px}.stat-head{display:flex;justify-content:space-between;font-size:10px;color:#829675;padding-bottom:12px;border-bottom:1px solid #52684555}.damage-row{padding:15px 0 5px}.damage-row>div{display:flex;justify-content:space-between;font-size:12px}.damage-row em{font:11px Georgia;color:#839b75;padding-right:12px}.damage-row b{font-size:11px;color:#9faf90;font-weight:400}.damage-row strong{display:inline-block;min-width:75px;text-align:right;color:#dfd5aa}.damage-row>i{display:block;height:9px;background:#34482e99;margin-top:10px}.damage-row u{display:block;height:100%;background:linear-gradient(90deg,#718f4d,#c5c982)}.empty-state{text-align:center;padding:45px;color:#98ac8b;font-size:13px}.detail-dialog h3{font-size:12px;color:#cfbc84;margin:20px 0 8px}.detail-dialog p{font-size:12px}.detail-art img{height:80px;width:80px;border:1px solid #b4a064}.demo-effect{background:#546c3225;border-left:2px solid #b2bd71;padding:15px;margin-top:24px}.demo-effect b{font-size:11px;color:#c9d5a5}.demo-effect p{margin:8px 0 0}.growth-summary{padding:18px;border:1px solid #62784e66;display:flex;justify-content:space-between;margin:12px 0}.growth-summary b{font-size:13px;color:#d2c78d}.growth-summary span{font-size:11px;color:#9daf8e}.record-grid{display:flex;flex-wrap:wrap;gap:10px}.record-grid button{padding:12px 18px;font-size:12px}.wide-dialog>h3{font-size:13px;color:#a9ba94;font-weight:400;margin-top:25px}
@media(max-width:1100px){:root{--console:164px}.battle-console{grid-template-columns:164px 230px 124px minmax(250px,1fr)}.hero-info{padding:10px}.inventory{padding:10px 8px}.inventory-slots>span,.inventory-slots>button{height:33px}.card-slots{gap:3px}.held-card{height:65px}.held-card img{height:36px}.growth-foot>span{font-size:8px}.draw-button{min-width:105px}.choose-heading{width:330px}.roster-card{height:145px}.roster-card img{height:110px}.hero-info .order-buttons{gap:4px}.order-buttons button{width:35px;height:35px}.game-top{gap:15px}.choice-card h3{font-size:21px}.roster-card small{font-size:9px}}
@media(max-height:740px){.choose-heading{top:17%}.choose-heading h1{margin:15px 0;font-size:35px}.choose-heading .start-button{margin-top:19px}.back-button{margin-bottom:18px}#hero-roster{bottom:3%}.roster-card{height:148px}.lobby-copy h1{font-size:43px}.hero-stage{bottom:14%}.choice-card{min-height:318px}.card-art{height:90px}.choice-card h3{margin-top:14px}.draw-candidates{gap:14px}dialog.wide-dialog{padding:24px 28px}.dialog-heading h2{font-size:26px}.prototype-note{margin-top:14px}.card-condition{font-size:9px}}
@media(max-width:900px){:root{--console:160px}.battle-console{grid-template-columns:150px 220px 118px minmax(210px,1fr);gap:5px;left:5px;right:5px}.minimap-wrap{height:150px}.card-slots{grid-template-columns:repeat(4,1fr);margin-top:7px}.held-card,.empty-card{height:38px}.held-card img{height:28px;width:28px;position:absolute;left:2px;top:3px}.held-card>span{left:31px;top:13px;bottom:auto;font-size:7px}.held-card>small{font-size:7px}.growth-foot{margin-top:7px}.growth-foot>span{display:none}.draw-button{width:100%;min-height:28px;padding:1px}.draw-button small{display:inline;font-size:8px;letter-spacing:0;margin-left:10px}.choose-heading{left:5%;width:300px}.choose-heading h1{font-size:30px}.choose-heading p{font-size:11px}#hero-roster{gap:6px}.roster-card>div{left:9px}.roster-card b{font-size:19px}.roster-card small{font-size:8px}.resource{display:flex}.game-brand small{display:none}.game-top{gap:12px}.training-brief{left:210px}.dps-widget{width:175px}.bottom-hint>span:last-child{font-size:8px}.shop-item{padding:18px}.tabs small{display:none}.choice-card p{font-size:11px}.choice-card h3{font-size:19px}.card-condition{margin-left:12px;margin-right:12px}.dialog-heading h2{font-size:23px}}
