/* One small transparent canvas using the approved illustration. */
.flight-layer { --ground-y:calc(var(--landing-y,40%) + var(--flight-size,160px) * .43); position:fixed; inset:0; z-index:12; overflow:hidden; contain:layout paint style; isolation:isolate; pointer-events:none; }
.flight-layer[hidden] { display:none!important; }
.flight-layer * { pointer-events:none!important; }
.flight-craft { position:absolute; top:0; left:0; width:var(--flight-size,160px); height:var(--flight-size,160px); transform-origin:50% 50%; will-change:transform; z-index:2; }
.character-canvas { display:block; position:relative; width:100%; height:100%; z-index:2; }
.flight-ground { position:absolute; left:var(--landing-x,50%); top:var(--ground-y); width:calc(var(--flight-size,160px) * .72); height:calc(var(--flight-size,160px) * .055); border-radius:50%; transform:translate(-50%,-50%); background:#26324c; border:1px solid #94b9dc3d; border-bottom-color:#071224; box-shadow:0 3px 12px -5px #020814; z-index:0; }
.flight-shadow { position:absolute; left:calc(var(--landing-x,50%) + var(--flight-size,160px) * .025); top:var(--ground-y); width:calc(var(--flight-size,160px) * .58); height:calc(var(--flight-size,160px) * .075); border-radius:50%; background:radial-gradient(ellipse,rgba(0,2,8,.98),rgba(1,8,18,.7) 35%,transparent 74%); opacity:0; transform:translate(-50%,-50%); z-index:1; }
.flight-contact-shadow { position:absolute; top:var(--ground-y); left:var(--landing-x,50%); width:var(--flight-size,160px); height:0; transform:translateX(-50%); z-index:1; }
.flight-contact-shadow i { position:absolute; top:0; left:43.1%; width:17%; height:calc(var(--flight-size,160px) * .035); border-radius:50%; background:radial-gradient(ellipse 48% 45% at 50% 50%,#000712e6,#00071280 45%,#00071200 100%); transform:translate3d(-50%,-50%,0); opacity:0; }
.flight-contact-shadow i+i { left:56.6%; }
.flight-halo { position:absolute; inset:60% 17% 2%; border-radius:50%; opacity:.42; background:radial-gradient(ellipse,rgba(var(--signal-rgb),.16),transparent 70%); transition:opacity .25s; }
.flight-layer[data-phase="flyby"] .flight-halo { opacity:.8; }
.flight-layer[data-mode="rest"] .flight-halo { opacity:0; }
.flight-trail { position:absolute; inset:0; z-index:1; }
.flight-trail i { position:absolute; top:0; left:0; width:4px; height:4px; margin:-2px; border-radius:50%; background:#daf5ff; opacity:0; box-shadow:0 0 7px 2px rgba(var(--signal-rgb),.45); }
.flight-trail i:nth-child(3n) { width:2px; height:2px; background:#ffddaa; box-shadow:0 0 8px 2px #ffca7c44; }
.flight-arrival-ring { position:absolute; left:var(--landing-x,50%); top:var(--ground-y); width:var(--flight-size,160px); height:calc(var(--flight-size,160px) * .16); border:1px solid rgba(var(--signal-rgb),.7); border-radius:50%; opacity:0; transform:translate(-50%,-50%) scale(.5); box-shadow:0 0 18px rgba(var(--signal-rgb),.13); }
.companion-art[data-renderer="canvas2d"] .mascot-float { animation:none!important; transform:none!important; }
.companion-art[data-renderer="canvas2d"] .mascot-button { animation:none!important; }
.companion-art[data-renderer="canvas2d"] .robot-character { visibility:hidden; }
.companion-art[data-renderer="canvas2d"] .robot-character * { animation:none!important; }
.companion-art:not([data-renderer="fallback"]) .mascot-aura { opacity:0; }
.companion-art:not([data-renderer="fallback"]) .orbital-ring { width:100%; height:82%; left:0; top:9%; margin:0; transform:rotate(-17deg); z-index:0; opacity:.8; transition:opacity .85s ease,transform 1.2s cubic-bezier(.2,.7,.25,1); }
.companion-art:not([data-renderer="fallback"]) .orbital-ring-back { border-color:transparent; border-top-width:2px; border-top-color:#d5effff0; border-right-color:#a4ccff9c; border-left-color:#ffe2b32e; box-shadow:0 -4px 12px -7px #b5ddffb8; }
.companion-art:not([data-renderer="fallback"]) .orbital-ring-back::before { content:""; position:absolute; inset:-4px; border:4px solid transparent; border-top-color:#b8e1ff1e; border-right-color:#9dcaff0a; border-radius:50%; }
.companion-art:not([data-renderer="fallback"]) .orbital-ring-front { border-color:transparent; border-bottom-color:#e5bd8b40; border-right-color:#9bbfff26; clip-path:inset(50% 0 0); box-shadow:none; }
.companion-art:not([data-renderer="fallback"]) .orbit-map { display:none; }
/* Explicit radii let both light fields fade to zero INSIDE their paint box.
   Farthest-corner ellipses otherwise leave visible horizontal cut-off edges. */
.companion-art:not([data-renderer="fallback"]) .stage-glow { opacity:.9; background:radial-gradient(ellipse 38% 32% at 47% 66%,#efb67938,#efb67916 40%,#efb67900 100%),radial-gradient(ellipse 48% 48% at 50% 50%,#8b9adf65,#536cc72b 43%,#536cc70c 70%,#536cc700 100%); transition:opacity .8s ease,transform 1.05s cubic-bezier(.2,.7,.25,1); }
.companion-art[data-flight-phase="entering"] .stage-glow { opacity:.3; transform:translateX(-50%) scale(.84); }
.companion-art[data-flight-phase="cruising"] .stage-glow { opacity:.62; transform:translateX(-50%) scale(.96); }
.companion-art[data-flight-phase="flyby"] .stage-glow { opacity:1; transform:translateX(-50%) scale(1.12); }
.companion-art[data-flight-phase="entering"] .orbital-ring { opacity:.25; transform:rotate(-23deg) scale(.93); }
.companion-art[data-flight-phase="flyby"] .orbital-ring { opacity:1; transform:rotate(-13deg) scale(1.015); }
.companion-art[data-flight-phase="landing"] .stage-glow { opacity:1; transform:translateX(-50%) scale(1.04); }
.companion-art[data-flight-phase="settle"] .stage-glow { opacity:.86; transform:translateX(-50%) scale(1); }
[data-motion="off"] .companion-art .stage-glow,[data-motion="off"] .companion-art .orbital-ring { transition:none; }
[data-motion="on"] .companion-art { animation:none; }
[data-page-active="false"] .flight-layer { display:none; }
@media(width < 860px) and (max-height:760px) {
  .companion-art:not([data-renderer="fallback"]) .orbital-ring { width:92%; left:4%; transform:rotate(-13deg); }
  .companion-art[data-flight-phase="flyby"] .orbital-ring { transform:rotate(-10deg); }
}
@media(width < 860px) and (max-height:700px) {
  .companion-art:not([data-renderer="fallback"]) .orbital-ring { width:88%; left:6%; height:70%; top:15%; opacity:.55; transform:rotate(-11deg); }
  .companion-art[data-flight-phase="flyby"] .orbital-ring { opacity:.72; transform:rotate(-8deg); }
}
/* With reduced motion the renderer paints a single still pose, with no loop. */
@media(width < 860px) and (max-height:580px) {
  .flight-ground { height:calc(var(--flight-size,160px) * .045); box-shadow:0 1px 0 #081320; }
  .flight-shadow { height:calc(var(--flight-size,160px) * .04); }
  .flight-arrival-ring { height:calc(var(--flight-size,160px) * .05); }
}

/* Actual illustrated fallback, shown until every animation pose is decoded. */
.mascot-portrait { display:block; width:100%; height:100%; object-fit:contain; user-select:none; -webkit-user-drag:none; }
.companion-art .mascot-float,.companion-art .mascot-button { animation:none!important; transform:none; }
.companion-art[data-renderer="canvas2d"] .mascot-portrait { visibility:hidden; }
