/* V15 lobby atmosphere: the existing fortress and whole character artwork remain.
 * HUD, formation targets, notices and navigation never animate or change geometry. */
#game-viewport[data-title-lobby-v15] #lobby-screen { isolation:isolate; --ui15-lobby-aura:180,210,226; }
/* Replaces the old opaque screen wipe with a local, translucent hero-light arrival. */
#game-viewport[data-lobby-motion-ready][data-screen="lobby"] ~ .title-lobby-wipe.active { visibility:hidden; animation:none!important; opacity:0; }
#game-viewport[data-title-lobby-v15] #lobby-screen .lobby-backdrop { overflow:hidden; background-image:none!important; }
#game-viewport[data-title-lobby-v15] #lobby-screen .lobby-backdrop::before {
  content:""; position:absolute; inset:-14px -18px; pointer-events:none;
  background-image:linear-gradient(0deg,rgba(9,15,21,.93),rgba(11,18,24,.19) 55%,rgba(11,18,24,.59)),var(--oa-lobby-background);
  background-size:cover; background-position:center; transform:scale(1.012); transform-origin:50% 58%;
}
#game-viewport[data-title-lobby-v15] #lobby-screen .lobby-atmosphere-v15 {
  position:absolute; inset:0; z-index:-1; overflow:hidden; contain:layout paint;
  pointer-events:none!important; user-select:none;
}
.lobby-atmosphere-v15 *,.lobby-stage-light-v15 * { pointer-events:none!important; }
.lobby-atmosphere-v15 .lobby-sunbeam-v15 {
  position:absolute; left:-12%; top:-23%; width:80%; height:116%; opacity:.6;
  background:linear-gradient(114deg,transparent 24%,rgba(255,222,160,.015) 30%,rgba(255,223,170,.15) 38%,rgba(255,239,186,.025) 44%,transparent 51%);
  transform:rotate(-8deg); transform-origin:50% 0;
}
.lobby-atmosphere-v15 .lobby-sunbeam-v15:nth-child(2) { left:18%; width:64%; opacity:.3; transform:rotate(11deg); }
.lobby-atmosphere-v15 .lobby-horizon-v15 {
  position:absolute; inset:15% 0 30%; opacity:.65;
  background:radial-gradient(ellipse at 33% 39%,rgba(239,194,117,.14),transparent 64%);
}
.lobby-atmosphere-v15 .lobby-mist-v15 {
  position:absolute; left:-25%; width:150%; bottom:23%; height:29%; opacity:.55;
  background:radial-gradient(ellipse at 25% 65%,rgba(157,179,186,.14),transparent 42%),radial-gradient(ellipse at 76% 65%,rgba(200,185,149,.11),transparent 42%);
  transform:translateX(-2%);
}
.lobby-atmosphere-v15 .lobby-mist-near-v15 {
  bottom:6%; height:22%; opacity:.45;
  background:radial-gradient(ellipse at 45% 55%,rgba(158,175,177,.1),transparent 55%);
}
.lobby-atmosphere-v15 .lobby-mote-v15 {
  position:absolute; left:var(--x); bottom:var(--y); width:var(--s); height:var(--s); opacity:0;
  border-radius:50%; background:#ebd0a0; box-shadow:0 0 4px rgba(242,210,154,.6);
}
.lobby-atmosphere-v15 .lobby-mote-v15:nth-child(3n) { background:#bfd7e0; box-shadow:0 0 4px rgba(177,210,229,.45); }
#game-viewport[data-title-lobby-v15] #lobby-screen .lobby-stage-light-v15 {
  position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; user-select:none;
}
.lobby-stage-light-v15 .lobby-hero-aura-v15 {
  position:absolute; left:10%; right:10%; top:1%; bottom:calc(var(--oa-chip-h) + 20px);
  background:radial-gradient(ellipse at 50% 43%,rgba(var(--ui15-lobby-aura),.16),rgba(238,207,151,.025) 45%,transparent 69%);
}
.lobby-stage-light-v15 .lobby-arrival-light-v15 {
  position:absolute; left:-25%; top:-20%; width:150%; height:110%; opacity:0;
  background:linear-gradient(116deg,transparent 31%,rgba(255,231,178,.035) 39%,rgba(255,235,184,.17) 46%,transparent 56%);
  transform:translateX(-7%);
}
#game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen .hero-dais {
  background:radial-gradient(ellipse,rgba(5,9,13,.6) 6%,rgba(var(--ui15-lobby-aura),.16) 30%,rgba(205,165,91,.13) 44%,transparent 69%);
}
#game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen :is(.lobby-character,.stage-companion) {
  /* Replaces the previous nonuniform scaleY breath. Existing position/transform survive. */
  animation:none!important; scale:1;
}
@media (prefers-reduced-motion:no-preference) {
  #game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen .lobby-backdrop::before { animation:ui15-lobby-world 28s ease-in-out infinite alternate; }
  [data-lobby-motion-ready] .lobby-sunbeam-v15 { animation:ui15-lobby-sunlight 15s ease-in-out infinite alternate; }
  [data-lobby-motion-ready] .lobby-sunbeam-v15:nth-child(2) { animation-duration:19s; animation-delay:-7s; }
  [data-lobby-motion-ready] .lobby-horizon-v15 { animation:ui15-lobby-horizon 11s ease-in-out infinite alternate; }
  [data-lobby-motion-ready] .lobby-mist-v15 { animation:ui15-lobby-mist 20s ease-in-out infinite alternate; }
  [data-lobby-motion-ready] .lobby-mist-near-v15 { animation-duration:16s; animation-direction:alternate-reverse; }
  [data-lobby-motion-ready] .lobby-mote-v15 { animation:ui15-lobby-mote var(--duration) var(--delay) linear infinite; }
  #game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen[data-lobby-figure-motion="on"] .lobby-character {
    animation:ui15-lobby-idle 6s ease-in-out infinite!important; transform-origin:50% 100%;
  }
  [data-lobby-motion-ready] #lobby-screen[data-lobby-reveal="active"] .lobby-arrival-light-v15 { animation:ui15-lobby-arrival 1050ms ease-out both; }
}
#game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen[data-lobby-effects="paused"] :is(.lobby-atmosphere-v15 *,.lobby-stage-light-v15 *,.lobby-character,.stage-companion),
#game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen[data-lobby-effects="paused"] .lobby-backdrop::before { animation-play-state:paused!important; }
#game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen[data-lobby-motion="off"] :is(.lobby-atmosphere-v15 *,.lobby-stage-light-v15 *,.lobby-character,.stage-companion),
#game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen[data-lobby-motion="off"] .lobby-backdrop::before { animation:none!important; }
#game-viewport[data-title-lobby-v15] #lobby-screen[data-lobby-motion="off"] .lobby-mote-v15 { display:none; }
@media (prefers-reduced-motion:reduce) {
  #game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen :is(.lobby-atmosphere-v15 *,.lobby-stage-light-v15 *,.lobby-character,.stage-companion),
  #game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen .lobby-backdrop::before { animation:none!important; }
  .lobby-atmosphere-v15 .lobby-mote-v15 { display:none; }
}
/* Compact geometry deliberately keeps the existing portrait crop and a static figure. */
@media (orientation:portrait) and (max-height:699px), (orientation:landscape) and (max-height:429px) {
  #game-viewport[data-title-lobby-v15][data-lobby-motion-ready] #lobby-screen[data-lobby-figure-motion] .lobby-character { animation:none!important; }
  .lobby-atmosphere-v15 .lobby-mote-v15:nth-child(n+9) { display:none; }
}
@media (orientation:landscape) {
  .lobby-atmosphere-v15 .lobby-sunbeam-v15 { left:-8%; top:-12%; width:55%; height:130%; }
  .lobby-atmosphere-v15 .lobby-sunbeam-v15:nth-child(2) { left:15%; width:45%; }
  .lobby-atmosphere-v15 .lobby-mist-v15 { bottom:8%; height:34%; }
}
@keyframes ui15-lobby-world { from { transform:scale(1.012) translate3d(-3px,1px,0); } to { transform:scale(1.021) translate3d(3px,-2px,0); } }
@keyframes ui15-lobby-sunlight { from { opacity:.3; } to { opacity:.65; } }
@keyframes ui15-lobby-horizon { from { opacity:.5; } to { opacity:.8; } }
@keyframes ui15-lobby-mist { from { transform:translate3d(-2%,0,0); } to { transform:translate3d(2%,1%,0); } }
@keyframes ui15-lobby-mote { 0% { opacity:0; transform:translate3d(0,7px,0); } 22% { opacity:.42; } 68% { opacity:.22; } 100% { opacity:0; transform:translate3d(var(--drift),-78px,0); } }
/* Uniform scaling below 100% preserves the image's shape and original foot anchor. */
@keyframes ui15-lobby-idle { 0%,100% { scale:.998; } 50% { scale:1; } }
@keyframes ui15-lobby-arrival { 0% { opacity:0; transform:translateX(-7%); } 28% { opacity:1; } 100% { opacity:0; transform:translateX(7%); } }
