/* V17: one sanctuary composition for both screens. Uniform upper-body breath
 * is joined to fixed feet; no UI track, hit target, text or viewport animates. */
#game-viewport[data-presentation-stage-v17] [data-presentation-stage] { isolation:isolate; --stage-aura-v17:244,203,127; }
#game-viewport[data-presentation-stage-v17] #start-screen .start-backdrop::before {
  inset:-28px; transform-origin:50% 57%;
  background-image:linear-gradient(0deg,rgba(5,11,20,.92),rgba(9,17,26,.06) 48%,rgba(15,24,33,.13)),var(--oa-title-background);
  transform:scale(1.045) translate3d(-5px,0,0);
}
#game-viewport[data-presentation-stage-v17] #start-screen .start-backdrop::after {
  background:radial-gradient(ellipse at 52% 46%,transparent 23%,rgba(12,22,32,.09) 57%,rgba(3,8,14,.58) 100%),linear-gradient(90deg,rgba(9,18,28,.2),transparent 30% 70%,rgba(9,18,28,.22));
}
#game-viewport[data-presentation-stage-v17] #lobby-screen .lobby-backdrop { overflow:hidden; background-image:none!important; }
#game-viewport[data-presentation-stage-v17] #lobby-screen .lobby-backdrop::before {
  content:""; position:absolute; inset:-22px; pointer-events:none; transform-origin:50% 57%;
  background-image:linear-gradient(0deg,rgba(7,14,22,.89),rgba(12,22,29,.11) 53%,rgba(15,24,33,.25)),var(--oa-lobby-background);
  background-size:cover; background-position:center; transform:scale(1.035) translate3d(-4px,0,0);
}
#game-viewport[data-presentation-stage-v17] #start-screen :is(.start-header,.start-brand,.start-actions,.start-footer) { z-index:5; }
#game-viewport[data-presentation-stage-v17] #start-screen :is(.start-actions,.title-cast) { opacity:1; animation:none!important; }
#game-viewport[data-presentation-stage-v17] #start-screen .start-actions { transform:none!important; }
#game-viewport[data-presentation-stage-v17] #start-screen .title-cast { z-index:2; }
#game-viewport[data-presentation-stage-v17] #start-screen .title-cast>picture { animation:none!important; transform:none!important; }
#game-viewport[data-presentation-stage-v17] #start-screen .start-brand h1 {
  color:#fff2d7; text-shadow:0 1px 0 #e0bd7f,0 3px 0 #8d5e37,0 5px 0 #402e20,0 7px 16px rgba(0,0,0,.9),0 0 24px rgba(245,206,140,.16);
  letter-spacing:-.02em;
}
#game-viewport[data-presentation-stage-v17] #start-screen .start-brand p { color:#f5d29a; letter-spacing:.08em; text-shadow:0 2px 5px #17130e; }
#game-viewport[data-presentation-stage-v17] #start-screen .brand-crest { filter:drop-shadow(0 2px 0 rgba(39,26,15,.8)) drop-shadow(0 0 16px rgba(255,218,132,.5)); }
#game-viewport[data-presentation-stage-v17] #start-screen .start-brand::after { height:1px; margin-top:9px; background:linear-gradient(90deg,transparent,#c39050 24%,#ffedbb 50%,#c39050 76%,transparent); box-shadow:0 0 9px rgba(247,202,118,.45); }
#game-viewport[data-presentation-stage-v17] .stage-world-v17,
#game-viewport[data-presentation-stage-v17] .stage-front-v17 {
  position:absolute; inset:0; contain:layout paint; overflow:hidden;
  pointer-events:none!important; user-select:none;
}
#game-viewport[data-presentation-stage-v17] #start-screen .stage-world-v17 { z-index:0; }
#game-viewport[data-presentation-stage-v17] #lobby-screen>.stage-world-v17 { z-index:-1; }
#game-viewport[data-presentation-stage-v17] #start-screen>.stage-front-v17 { z-index:3; }
#game-viewport[data-presentation-stage-v17] #lobby-screen .character-stage>.stage-front-v17 { z-index:3; }
#game-viewport[data-presentation-stage-v17] #lobby-screen .character-stage :is(.character-caption,.support-dock,.shrine-monument,.companion-selector) { z-index:4; }
.stage-world-v17 *,.stage-front-v17 *,.stage-hero-light-v17 *,.stage-upper-frame-v17 * { pointer-events:none!important; }
.stage-sunbreak-v17 {
  position:absolute; left:7%; top:4%; width:83%; height:61%; opacity:.87;
  background:radial-gradient(ellipse at 47% 29%,rgba(255,244,201,.47),rgba(255,215,137,.22) 27%,rgba(244,175,90,.045) 51%,transparent 69%);
  transform-origin:50% 20%;
}
.stage-rays-v17 {
  position:absolute; left:-8%; top:-14%; width:109%; height:116%; transform-origin:95% 0; opacity:.66;
  background:url('/resource/ui/title-lobby-v16/runtime/sanctuary-rays-v16.webp') no-repeat center/100% 100%;
}
.stage-rays-far-v17 {
  position:absolute; left:14%; top:-8%; width:82%; height:105%; transform-origin:15% 0; opacity:.26;
  background:url('/resource/ui/title-lobby-v16/title/sanctuary-rays-v16.svg') no-repeat center/100% 100%;
  transform:scaleX(-1) rotate(-8deg);
}
.stage-horizon-v17 {
  position:absolute; left:1%; top:29%; width:98%; height:53%; opacity:.9;
  background:radial-gradient(ellipse at 50% 66%,rgba(var(--stage-aura-v17),.27),rgba(192,186,157,.08) 45%,transparent 68%);
}
.stage-mist-far-v17 {
  position:absolute; left:-28%; bottom:14%; width:160%; height:31%; opacity:.9;
  background:radial-gradient(ellipse at 21% 63%,rgba(166,199,222,.22),transparent 39%),radial-gradient(ellipse at 74% 64%,rgba(231,204,162,.21),transparent 39%);
}
.stage-mist-near-v17 {
  position:absolute; left:-33%; bottom:8%; width:165%; height:25%; opacity:.82;
  background:radial-gradient(ellipse at 19% 54%,rgba(174,205,225,.2),transparent 34%),radial-gradient(ellipse at 80% 58%,rgba(253,223,174,.23),transparent 34%);
}
.stage-edge-v17 { position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,9,17,.24),transparent 23% 77%,rgba(9,16,24,.09)),linear-gradient(90deg,rgba(5,13,23,.14),transparent 14% 86%,rgba(5,13,23,.14)); }
.stage-entry-sweep-v17 {
  position:absolute; left:-25%; top:-17%; width:149%; height:119%; opacity:0;
  background:linear-gradient(118deg,transparent 25%,rgba(255,224,150,.08) 34%,rgba(255,239,192,.33) 41%,rgba(255,226,151,.13) 46%,transparent 54%);
}
#lobby-screen[data-presentation-stage] .stage-sunbreak-v17 { left:-8%; top:2%; width:92%; height:62%; }
#lobby-screen[data-presentation-stage] .stage-rays-v17 { left:-27%; top:-11%; width:112%; height:108%; opacity:.61; }
#lobby-screen[data-presentation-stage] .stage-rays-far-v17 { left:2%; top:-7%; width:80%; opacity:.23; }
#lobby-screen[data-presentation-stage] .stage-horizon-v17 { top:15%; height:66%; }
#lobby-screen[data-presentation-stage] .stage-mist-far-v17 { bottom:18%; height:35%; }
#lobby-screen[data-presentation-stage] .stage-front-v17 .stage-mist-near-v17 { bottom:14%; height:34%; }
#lobby-screen[data-presentation-stage] .stage-front-v17 .stage-edge-v17 { display:none; }
#game-viewport[data-presentation-stage-v17] .stage-hero-light-v17 { position:absolute; inset:0; z-index:0; pointer-events:none; user-select:none; }
.stage-hero-backlight-v17 {
  position:absolute; left:5%; top:-3%; width:90%; height:105%;
  background:radial-gradient(ellipse at 50% 38%,rgba(var(--stage-aura-v17),.36),rgba(var(--stage-aura-v17),.12) 42%,transparent 66%);
}
.stage-hero-side-light-v17 {
  position:absolute; left:5%; top:4%; width:88%; height:81%;
  background:radial-gradient(ellipse at 30% 42%,rgba(255,237,190,.14),transparent 43%),radial-gradient(ellipse at 80% 47%,rgba(148,198,225,.11),transparent 43%);
}
.stage-hero-ground-v17 {
  position:absolute; left:12%; bottom:-2px; width:76%; height:19%;
  background:radial-gradient(ellipse at 50% 73%,rgba(1,5,9,.77) 8%,rgba(4,9,14,.68) 23%,rgba(var(--stage-aura-v17),.23) 44%,transparent 70%);
}
.stage-hero-floor-v17 {
  position:absolute; left:17%; bottom:-2px; width:66%; height:13%; opacity:.83;
  background:url('/resource/ui/title-lobby-v16/title/sanctuary-floor-v16.svg') no-repeat center/100% 100%;
}
.stage-hero-arrival-v17 {
  position:absolute; left:-3%; top:-10%; width:106%; height:115%; opacity:0;
  background:radial-gradient(ellipse at 50% 65%,rgba(255,229,157,.37),transparent 65%);
}
#lobby-screen[data-presentation-stage] .stage-hero-backlight-v17 { top:0; height:calc(100% - var(--oa-chip-h)); }
#lobby-screen[data-presentation-stage] :is(.stage-hero-ground-v17,.stage-hero-floor-v17) { bottom:calc(var(--oa-chip-h) + 7px); }
#game-viewport[data-presentation-stage-v17] #lobby-screen .hero-dais { background:none; }
.stage-mote-v17 {
  position:absolute; left:var(--x); top:var(--y); width:var(--s); height:var(--s); border-radius:50%; opacity:0;
  background:#ffecbc; box-shadow:0 0 6px rgba(255,215,135,.76);
}
.stage-mote-v17:nth-child(3n) { background:#dcecf7; box-shadow:0 0 5px rgba(177,219,247,.61); }
.stage-mote-v17:nth-child(7n) { border-radius:1px; background:#ffdb88; }
#game-viewport[data-presentation-stage-v17] #start-screen .title-cast>picture>img,
#game-viewport[data-presentation-stage-v17] #lobby-screen .lobby-character {
  animation:none!important; scale:1!important;
  filter:drop-shadow(0 7px 7px rgba(2,8,14,.78)) drop-shadow(-1px -1px 1px rgba(255,226,168,.27)) drop-shadow(1px 0 2px rgba(179,218,240,.17));
}
/* Native image stays the only focus and hit target. Masks do not shrink its hit
 * rectangle. The upper twin is decoration, neither a character nor new art. */
#game-viewport[data-presentation-stage-v17] [data-stage-motion="on"] [data-stage-figure-v17][data-stage-figure-ready="true"] {
  -webkit-mask-image:linear-gradient(transparent calc(var(--stage-hinge-v17) - 1px),#000 var(--stage-hinge-v17));
  mask-image:linear-gradient(transparent calc(var(--stage-hinge-v17) - 1px),#000 var(--stage-hinge-v17));
}
#game-viewport[data-presentation-stage-v17] .stage-upper-frame-v17 {
  position:absolute; display:none; z-index:3; pointer-events:none!important; user-select:none;
}
#game-viewport[data-presentation-stage-v17] [data-stage-motion="on"] .stage-upper-frame-v17[data-stage-figure-ready="true"] { display:block; }
#game-viewport[data-presentation-stage-v17] .stage-upper-art-v17 {
  display:block; position:absolute; inset:0; width:100%; height:100%; max-width:none; max-height:none; margin:0;
  object-fit:contain; transform-origin:50% var(--stage-hinge-v17);
  filter:drop-shadow(0 7px 7px rgba(2,8,14,.78)) drop-shadow(-1px -1px 1px rgba(255,226,168,.27)) drop-shadow(1px 0 2px rgba(179,218,240,.17));
  -webkit-mask-image:linear-gradient(#000 calc(var(--stage-hinge-v17) + 2px),transparent var(--stage-feather-v17));
  mask-image:linear-gradient(#000 calc(var(--stage-hinge-v17) + 2px),transparent var(--stage-feather-v17));
}
/* Layout is never keyed to mode selection. Only image pixels and inert light
 * change; all geometry belongs to the unchanged native layout. */
@media (prefers-reduced-motion:no-preference) {
  #game-viewport[data-presentation-stage-v17] [data-presentation-stage] .stage-upper-art-v17 { animation:stage-upper-breath-v17 3.8s cubic-bezier(.42,0,.35,1) infinite; }
  #game-viewport[data-presentation-stage-v17] #start-screen .start-backdrop::before { animation:stage-world-title-v17 22s ease-in-out infinite alternate; }
  #game-viewport[data-presentation-stage-v17] #lobby-screen .lobby-backdrop::before { animation:stage-world-lobby-v17 24s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-rays-v17 { animation:stage-rays-v17 14s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-rays-far-v17 { animation:stage-rays-far-v17 18s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-sunbreak-v17 { animation:stage-sunbreak-v17 8s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-horizon-v17 { animation:stage-horizon-v17 10s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-mist-far-v17 { animation:stage-mist-far-v17 18s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-mist-near-v17 { animation:stage-mist-near-v17 13s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-hero-floor-v17 { animation:stage-resonance-v17 6s ease-in-out infinite alternate; }
  [data-presentation-stage] .stage-mote-v17 { animation:stage-mote-v17 var(--duration) var(--delay) linear infinite; }
  [data-presentation-stage][data-stage-reveal="awakening"] .stage-entry-sweep-v17 { animation:stage-entry-sweep-v17 2750ms cubic-bezier(.16,.67,.3,1) both; }
  [data-presentation-stage][data-stage-reveal="awakening"] .stage-hero-arrival-v17 { animation:stage-arrival-light-v17 2700ms ease-out both; }
  #game-viewport[data-presentation-stage-v17] #start-screen[data-stage-reveal="awakening"] .start-backdrop::before { animation:stage-camera-title-v17 2700ms cubic-bezier(.16,.67,.3,1) both; }
  #game-viewport[data-presentation-stage-v17] #lobby-screen[data-stage-reveal="awakening"] .lobby-backdrop::before { animation:stage-camera-lobby-v17 2700ms cubic-bezier(.16,.67,.3,1) both; }
}
#game-viewport[data-presentation-stage-v17] [data-stage-effects="paused"] :is(.stage-world-v17 *,.stage-front-v17 *,.stage-hero-light-v17 *,.stage-upper-art-v17),
#game-viewport[data-presentation-stage-v17] [data-stage-effects="paused"] :is(.start-backdrop,.lobby-backdrop)::before { animation-play-state:paused!important; }
#game-viewport[data-presentation-stage-v17] [data-stage-motion="off"] :is(.stage-world-v17 *,.stage-front-v17 *,.stage-hero-light-v17 *,.stage-upper-art-v17),
#game-viewport[data-presentation-stage-v17] [data-stage-motion="off"] :is(.start-backdrop,.lobby-backdrop)::before { animation:none!important; }
#game-viewport[data-presentation-stage-v17] [data-stage-motion="off"] .stage-mote-v17 { display:none; }
#game-viewport[data-presentation-stage-v17][data-screen="lobby"] ~ .title-lobby-wipe.active { visibility:hidden; animation:none!important; opacity:0; }
@media (prefers-reduced-motion:reduce) {
  #game-viewport[data-presentation-stage-v17] [data-presentation-stage] :is(.stage-world-v17 *,.stage-front-v17 *,.stage-hero-light-v17 *,.stage-upper-art-v17),
  #game-viewport[data-presentation-stage-v17] [data-presentation-stage] :is(.start-backdrop,.lobby-backdrop)::before { animation:none!important; }
  .stage-mote-v17 { display:none; }
}
@media (orientation:landscape) {
  #start-screen[data-presentation-stage] .stage-sunbreak-v17 { left:25%; width:61%; top:0; height:91%; }
  #start-screen[data-presentation-stage] .stage-rays-v17 { left:17%; width:64%; top:-19%; height:142%; }
  #start-screen[data-presentation-stage] .stage-rays-far-v17 { left:34%; width:49%; top:-19%; height:138%; }
  #start-screen[data-presentation-stage] .stage-horizon-v17 { left:25%; width:48%; top:2%; height:90%; }
  #start-screen[data-presentation-stage] .stage-mist-far-v17 { bottom:2%; height:43%; }
  #start-screen[data-presentation-stage] .stage-mist-near-v17 { bottom:0; height:32%; }
  #lobby-screen[data-presentation-stage] .stage-rays-v17 { left:-11%; width:73%; top:-13%; height:139%; }
  #lobby-screen[data-presentation-stage] .stage-rays-far-v17 { left:7%; width:64%; }
}
@media (orientation:portrait) and (max-height:699px), (orientation:landscape) and (max-height:429px) {
  [data-presentation-stage] .stage-mote-v17:nth-child(n+15) { display:none; }
  #lobby-screen[data-presentation-stage] .stage-front-v17 .stage-mist-near-v17 { bottom:3%; height:42%; }
  #lobby-screen[data-presentation-stage] .stage-hero-ground-v17,
  #lobby-screen[data-presentation-stage] .stage-hero-floor-v17 { display:none; }
}
@keyframes stage-upper-breath-v17 { 0%,100% { transform:scale(1); } 48% { transform:scale(var(--stage-breath-scale-v17)); } }
@keyframes stage-world-title-v17 { from { transform:scale(1.045) translate3d(-5px,1px,0); } to { transform:scale(1.067) translate3d(8px,-4px,0); } }
@keyframes stage-world-lobby-v17 { from { transform:scale(1.035) translate3d(-4px,1px,0); } to { transform:scale(1.054) translate3d(6px,-3px,0); } }
@keyframes stage-rays-v17 { from { opacity:.48; transform:rotate(-3deg) translate3d(-2%,0,0); } to { opacity:.72; transform:rotate(3deg) translate3d(2%,0,0); } }
@keyframes stage-rays-far-v17 { from { opacity:.19; transform:scaleX(-1) rotate(-11deg); } to { opacity:.33; transform:scaleX(-1) rotate(-4deg); } }
@keyframes stage-sunbreak-v17 { from { opacity:.66; transform:scale(.97); } to { opacity:.98; transform:scale(1.035); } }
@keyframes stage-horizon-v17 { from { opacity:.76; transform:scale(.97); } to { opacity:1; transform:scale(1.025); } }
@keyframes stage-mist-far-v17 { from { transform:translate3d(-4%,0,0); } to { transform:translate3d(5%,-2%,0); } }
@keyframes stage-mist-near-v17 { from { opacity:.65; transform:translate3d(4%,0,0); } to { opacity:.92; transform:translate3d(-5%,1%,0); } }
@keyframes stage-resonance-v17 { from { opacity:.58; } to { opacity:.94; } }
@keyframes stage-mote-v17 { 0% { opacity:0; transform:translate3d(0,27px,0) scale(.72); } 17% { opacity:.83; } 67% { opacity:.55; } 100% { opacity:0; transform:translate3d(var(--drift),-144px,0) scale(1); } }
@keyframes stage-entry-sweep-v17 { 0% { opacity:0; transform:translateX(-21%); } 24% { opacity:.94; } 72% { opacity:.52; } 100% { opacity:0; transform:translateX(20%); } }
@keyframes stage-arrival-light-v17 { 0% { opacity:0; transform:scale(.87); } 35% { opacity:1; } 100% { opacity:0; transform:scale(1.1); } }
@keyframes stage-camera-title-v17 { from { transform:scale(1.12) translate3d(0,6px,0); } to { transform:scale(1.045) translate3d(-5px,1px,0); } }
@keyframes stage-camera-lobby-v17 { from { transform:scale(1.096) translate3d(0,5px,0); } to { transform:scale(1.035) translate3d(-4px,1px,0); } }
