/* Overscan is clipped only at the final shell, never at the moving camera. */
.game-shell>#battle-camera{overflow:visible}
.playmat-surface{position:absolute;overflow:hidden;pointer-events:none;z-index:0;isolation:isolate;background:#142328}
.playmat-surface[hidden]{display:none}
.playmat-image{position:absolute;left:50%;top:0;width:var(--mat-image-width,100%);height:var(--mat-image-height,100%);max-width:none;transform:translateX(-50%);object-fit:cover;object-position:50% 0%;pointer-events:none;user-select:none;-webkit-user-drag:none}
.playmat-half{position:absolute;left:0;right:0;height:calc(50% + var(--mat-blend-half,12px));overflow:hidden}
.playmat-upper{top:0;z-index:2;mask-image:linear-gradient(to bottom,#000 calc(100% - var(--mat-blend-half,12px)*2),transparent);-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--mat-blend-half,12px)*2),transparent)}
.playmat-upper>.playmat-image{top:auto;bottom:0;transform:translateX(-50%) rotate(180deg)}
.playmat-lower{bottom:0;z-index:1}
.playmat-surface:after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(#0712192e,#0712192e);box-shadow:inset 0 12px 18px -13px #071219b0,inset 0 -12px 18px -13px #071219b0}
.cosmetic-card-back{padding:0;border:none;background:#172b32;overflow:hidden;box-shadow:2px 2px 0 #10222a,3px 3px 0 #aa987a88}
.cosmetic-card-back>img{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}
.flight-back .cosmetic-card-back{width:94%;height:94%;margin:3%}
.game-shell[data-opening-phase=loading] .arena,.game-shell[data-opening-phase=coin] .arena{visibility:hidden;pointer-events:none}
.game-shell[data-opening-phase=loading] .battle-dock,.game-shell[data-opening-phase=coin] .battle-dock,.game-shell[data-opening-phase=setup] .battle-dock{visibility:hidden;pointer-events:none}
.game-shell[data-opening-phase=loading] .draw-counter,.game-shell[data-opening-phase=coin] .draw-counter{visibility:hidden}
.opening-skip{position:absolute;right:24px;bottom:calc(var(--safe-bottom) + 29px);z-index:45;min-height:44px;min-width:66px;padding:9px 15px;border:1px solid #c8b98c50;border-radius:24px;color:#e6d7b6;background:#14272ce8;font-size:12px}
.game-shell[data-opening-phase=loading] .opening-skip{visibility:hidden}
.game-shell .coin-toss-skip{display:none}

.in-battle .power-readout{text-shadow:0 1px 2px #031015,0 2px 6px #031015,0 0 9px #031015b3}
.in-battle .power-role-icon{filter:drop-shadow(0 1px 2px #031015)}
.in-battle .field-slot{background:#0718243d;border-color:#c6b78252}
