/* Domain Guardian visual language v91: field-map identity dock and etched battle hardware. */

.ui-svg-icon{display:block;width:1em;height:1em;overflow:visible}
[data-ui-icon]{display:inline-grid;place-items:center;flex:0 0 auto}
button [data-ui-icon],.icon-btn [data-ui-icon]{pointer-events:none}

#gc{cursor:default!important}

html,body{cursor:default!important}
button,a,[role="button"],input,select,label{cursor:pointer}
#cwrap.scrollable-map{cursor:default!important}
#cwrap.scrollable-map.dragging-map{cursor:grabbing}

/* Authentication */
@keyframes auth-map-arrive{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1.015)}}
@keyframes auth-dock-arrive{from{opacity:0;transform:translate3d(0,34px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.menu-settings-btn{gap:8px}.menu-settings-btn::before{display:none!important}
.menu-audio-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px}.menu-audio-icon{width:21px;height:21px;display:grid;place-items:center}.menu-audio-icon .ui-svg-icon{width:100%;height:100%;stroke-width:1.8}

/* Command hub */
.menu-hub-header{padding-inline:24px}
.menu-brand-mark{width:34px;height:34px;transform:none}
.menu-brand-mark::before,.menu-brand-mark::after{display:none}
.menu-brand-mark .ui-svg-icon{width:100%;height:100%;stroke-width:1.35}
.menu-brand-lockup>div{gap:0}.menu-brand-lockup strong{font-size:17px;letter-spacing:1.2px}.menu-brand-lockup small{letter-spacing:1.35px}
.menu-page{width:min(1220px,calc(100% - 42px));padding-top:24px}
.page-kicker{letter-spacing:1.35px}
.home-mission-metrics{gap:0}
.home-mission-metrics span{padding:8px 11px}
.home-progress-track{height:2px}
.quick-icon{width:32px;height:32px;transform:none}
.quick-icon::after{display:none}.quick-icon .ui-svg-icon{width:100%;height:100%;stroke-width:1.35}
.menu-page-heading h2{font-size:30px}
.mode-selection-grid{gap:8px}
.feature-icon{width:54px;height:54px}
.feature-icon::before,.feature-icon::after{display:none!important}.feature-icon .ui-svg-icon{width:100%;height:100%;stroke-width:1.35}
.menu-hub-nav button{gap:8px}
.menu-hub-nav button::before{left:0;right:0;top:auto;bottom:0}
.hub-nav-icon{width:21px;height:21px;transform:none}
.hub-nav-icon::before,.hub-nav-icon::after{display:none!important}.hub-nav-icon .ui-svg-icon{width:100%;height:100%;stroke-width:1.45}

/* Battle HUD */
#topbar .brand{display:flex;align-items:center;gap:7px;letter-spacing:1px}
#topbar .brand [data-ui-icon]{font-size:21px}
#topbar .stats{gap:0}
#topbar .sitem{min-width:74px}
.hud-stat-icon{font-size:15px}.hud-life .ui-svg-icon{fill:rgba(217,120,105,.14)}
.hud-action{display:inline-flex;align-items:center;justify-content:center;gap:6px}
#gc{box-shadow:none}
.mobile-panel-tab{display:flex;align-items:center;justify-content:center;gap:7px}
#tower-sec-head{padding:8px 9px 5px}
.tower-categories{gap:4px;padding:5px 7px 7px}
.tower-category-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px}
.tcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px;padding:6px}
.tcard{min-width:0;min-height:108px;display:grid;grid-template-rows:56px auto auto;align-content:start;padding:5px}
.tcard:hover{transform:translateY(-1px)}
.tcicon{width:100%;height:56px;margin:0;display:grid;place-items:center;color:var(--tower-color,var(--vr-paper));overflow:hidden}
.tower-card-art{display:grid;place-items:center;width:100%;height:100%}
.tower-glyph{width:46px;height:46px}.tower-glyph-node{fill:var(--tower-glyph-color);stroke:none}
.tcname{margin-top:4px;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tcmeta{min-height:12px;margin:1px 0;gap:3px}.tower-family{display:none}.tower-mastery{min-width:18px;padding:0 3px;font-size:12px}
.tccost{font-size:12px}
.support-quick-icon,.guide-quick-icon{font-size:21px}

/* Motion language: short mechanical travel, never a hard visibility swap. */
.menu-page.active{animation:vr-page-in .24s cubic-bezier(.2,.8,.2,1) both}
.menu-page.leaving{display:block;pointer-events:none;animation:vr-page-out .09s ease both}
.menu-hub.page-switching .menu-hub-nav button{pointer-events:none}
.settings-modal:not(.hidden) .settings-panel{animation:vr-panel-in .22s cubic-bezier(.2,.8,.2,1) both}
.place-confirm-popup{animation:vr-pop-in .18s cubic-bezier(.2,.9,.25,1) both;transform-origin:50% 100%}
.place-confirm-icon .tower-glyph{width:25px;height:25px}
.place-choice .ui-svg-icon{width:18px;height:18px}
@keyframes vr-page-in{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes vr-page-out{from{opacity:1;transform:translate3d(0,0,0)}to{opacity:0;transform:translate3d(0,-5px,0)}}
@keyframes vr-panel-in{from{opacity:0;transform:translate3d(0,12px,0) scale(.985)}to{opacity:1;transform:translate3d(0,0,0) scale(1)}}
/* Phone settings: fade only, so 44px touch targets keep whole-pixel geometry from the first frame. */
@media(max-width:760px){.settings-modal:not(.hidden) .settings-panel{animation-name:vr-panel-fade}}
@keyframes vr-panel-fade{from{opacity:0}to{opacity:1}}
@keyframes vr-pop-in{from{opacity:0;transform:translate(-50%,-92%) scale(.92)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}

/* Audio settings */
.sound-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
#music-volume,#sfx-volume{height:18px}

@media(max-width:900px){
  #topbar .brand{display:none}
}

@media(max-width:600px){
  .menu-brand-mark{width:27px;height:27px}
  .menu-brand-lockup{gap:7px}
  .menu-brand-lockup>div{min-width:0}
  .menu-brand-lockup strong{font-size:12px;letter-spacing:.7px;white-space:nowrap}
  .menu-brand-lockup small{display:none}
  #menu-screen.menu-hub .menu-settings-btn span:last-child{display:none}
  #menu-screen.menu-hub .menu-audio-btn{width:46px}
  #menu-screen.menu-hub .menu-audio-btn [data-master-audio-label]{display:none}
  .menu-page{padding-inline:10px}
  .menu-hub-nav button{gap:3px}.hub-nav-icon{width:18px;height:18px}
  #topbar{min-height:60px}
  #topbar .sitem{gap:3px;padding-inline:5px}
  #topbar .hud-stat-label{display:none}
  .hud-stat-icon{font-size:13px}
  #topbar .hud-action{gap:4px}
  .tower-categories{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .tower-category-btn span:last-child{display:none}
  .tcards{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px}
  .tcard{min-height:84px;grid-template-rows:42px auto auto;padding:4px}
  .tcicon{height:42px}.tower-glyph{width:36px;height:36px}.tcname{font-size:12px}.tower-mastery{display:none}
  .sound-grid{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .menu-page.active,.menu-page.leaving,.settings-modal:not(.hidden) .settings-panel,.place-confirm-popup{animation:none!important}
}

/* Keep portrait composition after the legacy small-screen crop rule. */
