#scene3d{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#scene3d:active{cursor:grabbing}
.hero-art{background:linear-gradient(0deg,#101c18,transparent 25%),url('assets/quan-vu.png') center 18%/cover!important;height:265px!important;border-bottom:1px solid #9b85544d;filter:none!important}.hero-art svg,.hero-art .halo,.hero-art .hero-tag{display:none}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#101c18,transparent 25%)}
.city-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.city-label{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;background:linear-gradient(#12251de8,#16261ec9);border:1px solid #b5a16b55;border-radius:3px;color:#f3e5ba;padding:7px 11px;min-width:90px;box-shadow:0 3px 12px #0004;text-align:center}.city-label.selected{border-color:#e2c785;box-shadow:0 0 18px #e2c78522}.city-label span{font-family:Georgia,serif;font-size:14px;font-weight:bold}.city-label small{display:block;font-size:6px;letter-spacing:1.5px;color:var(--faction);margin:4px 0}.city-label i{display:block;height:3px;background:#0c1c13;width:100%}.city-label b{display:block;height:100%;background:var(--faction)}
.camera-controls{position:absolute;bottom:44px;left:16px;right:16px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;pointer-events:none;z-index:3}.camera-controls button{pointer-events:auto;background:#13251de6;border:1px solid #8c98676b;font-size:9px;padding:8px 10px;border-radius:3px}.camera-controls button:hover,.camera-controls button.active{border-color:#dbc486;color:#dbc486}.camera-controls small{font-size:8px;width:100%;color:#e3e4cb;text-shadow:0 1px 3px #000}.render-badge{font-size:8px;letter-spacing:1px;padding:8px;color:#c3e4af;background:#13251dd9;border:1px solid #577b47}.map-caption{display:none}.map-top,.map-bottom{text-shadow:0 1px 4px #000;color:#f1ecd6;z-index:2}.battlefield{isolation:isolate}#toast{z-index:4}.left-panel,.right-panel{scrollbar-color:#46543c #122019}.hero-art{filter:saturate(.75)}
@media(min-width:1100px){main{grid-template-columns:210px minmax(400px,1fr) 215px}.left-panel,.right-panel{padding:23px 18px}h1{font-size:27px}}
@media(max-width:800px){.camera-controls{left:8px;bottom:35px;gap:3px}.camera-controls button{font-size:8px;padding:7px}.city-label{padding:5px 7px;min-width:65px}.city-label span{font-size:11px}.render-badge{display:none}}
