@charset "UTF-8";
/* The weave stays crisp: only the outer limb is feathered into its setting.
   Champagne-platinum edges, a short warm glint and three sparse motes move. */
.woven-orbit-v11{
 --woven-play:paused;display:block;position:relative;isolation:isolate;
 width:100%;height:100%;min-width:0;min-height:0;aspect-ratio:5/6;
 pointer-events:none;
}
.woven-orbit-v11[data-running="true"]{--woven-play:running}
.woven-orbit-v11>img{
 position:absolute;left:7%;top:7%;width:86%;height:86%;min-height:0;
 display:block;object-fit:contain;transform:none;user-select:none;-webkit-user-drag:none;z-index:1;
 -webkit-mask-image:radial-gradient(ellipse 44% 36.67% at 50% 49.63%,#000 84%,#000000d9 93%,transparent 100%),linear-gradient(to bottom,#000 0 13.2%,transparent 15% 85%,#000 87% 100%);
 mask-image:radial-gradient(ellipse 44% 36.67% at 50% 49.63%,#000 84%,#000000d9 93%,transparent 100%),linear-gradient(to bottom,#000 0 13.2%,transparent 15% 85%,#000 87% 100%);
 -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
}
.woven-orbit-v11>.woven-orbit-svg{
 display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible;
 fill:none;stroke:none;stroke-width:0;pointer-events:none;opacity:0;
 transition:opacity .28s ease-out;
}
.woven-orbit-v11[data-ready="true"]>.woven-orbit-svg{opacity:1}
.woven-orbit-v11>.woven-orbit-rear{z-index:0;opacity:0}
.woven-orbit-v11[data-ready="true"]>.woven-orbit-rear{opacity:.84}
.woven-orbit-v11>.woven-orbit-front{z-index:2}
.woven-orbit-plane{
 transform-box:view-box;transform-origin:50% 49.62963%;
 transform:rotate(-24deg);animation:woven-orbit-precession-v11 96s linear infinite;
 animation-play-state:var(--woven-play);
}
.woven-orbit-gem-phase{
 transform-box:view-box;transform-origin:0 0;
 animation:woven-orbit-gem-v11 28s linear infinite;
 animation-play-state:var(--woven-play);
}
.woven-orbit-gem-phase-secondary{animation-delay:-13s}
.woven-orbit-gem-counter{
 transform-box:view-box;transform-origin:0 0;
 animation:woven-orbit-gem-v11 28s linear infinite reverse;
 animation-play-state:var(--woven-play);
}
.woven-orbit-gem-phase-secondary .woven-orbit-gem-counter{animation-delay:-13s}
.woven-orbit-light{
 opacity:.9;animation:woven-orbit-light-v11 19s linear infinite;
 animation-play-state:var(--woven-play);
}
.woven-orbit-hairline{opacity:.83}
.woven-orbit-shadow{vector-effect:non-scaling-stroke;stroke-width:3px}
.woven-orbit-metal{vector-effect:non-scaling-stroke;stroke-width:1.7px}
.woven-orbit-hairline{vector-effect:non-scaling-stroke;stroke-width:.45px}
.woven-orbit-light{vector-effect:non-scaling-stroke;stroke-width:2px}
.woven-orbit-light-halo{vector-effect:none;stroke-width:9px;opacity:.55}
.woven-orbit-ambient{opacity:.9}
.woven-orbit-particle{
 transform-box:view-box;transform-origin:0 0;opacity:0;
 animation:woven-orbit-particle-v11 9s var(--woven-spark-delay,0s) ease-out infinite;
 animation-play-state:var(--woven-play);
}
.planet-art-button[data-woven-orbit="moon"]{overflow:visible}
.planet-art-button[data-woven-orbit="moon"]:before{z-index:-1}
.planet-art-button[data-woven-orbit="moon"]:not([data-ready="true"]) .woven-orbit-svg{opacity:0}
#detail-dialog[data-content="planet"][data-planet="moon"] .woven-orbit-v11{align-self:center}
#detail-dialog[data-content="planet"][data-planet="moon"] .woven-orbit-v11>img{
 position:absolute;left:7%;top:7%;width:86%;height:86%;object-fit:contain;
}

/* Keep the existing entrance's one-off arrival/departure on the whole assembly.
   The original img and its class remain intact for the existing decode logic. */
#arrival-dialog .woven-orbit-entry{
 position:absolute;left:50%;top:41%;width:min(76vw,440px,41.6dvh);
 height:auto;max-height:52dvh;transform:translate(-50%,-50%);
 animation:entry-planet-in 1.8s cubic-bezier(.16,.7,.2,1) both;
}
#arrival-dialog .woven-orbit-entry>.entry-planet{
 position:absolute;left:7%;top:7%;width:86%;height:86%;max-height:none;
 transform:none;animation:none!important;filter:drop-shadow(0 10px 15px #5258631c);
}
#arrival-dialog[data-phase="leaving"] .woven-orbit-entry{animation:entry-planet-depart .6s ease-in both}
@keyframes woven-orbit-precession-v11{from{transform:rotate(-24deg)}to{transform:rotate(336deg)}}
@keyframes woven-orbit-gem-v11{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes woven-orbit-light-v11{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes woven-orbit-particle-v11{
 0%,31%,100%{opacity:0;transform:translate(0,3px) scale(.65)}
 12%{opacity:.75;transform:translate(0,0) scale(1)}
 27%{opacity:0;transform:translate(3px,-8px) scale(.5)}
}
@media(max-height:600px){
 #arrival-dialog .woven-orbit-entry{top:36%;width:min(49vw,220px,42dvh);max-height:53dvh}
}
@media(max-height:600px) and (min-width:600px){
 #arrival-dialog .woven-orbit-entry{left:32%;top:47%;width:min(38vw,280px,62.4dvh);max-height:78dvh}
}
@media(prefers-reduced-motion:reduce){
 .woven-orbit-v11 .woven-orbit-plane,.woven-orbit-v11 .woven-orbit-gem-phase,.woven-orbit-v11 .woven-orbit-gem-counter,
 .woven-orbit-v11 .woven-orbit-light,.woven-orbit-v11 .woven-orbit-particle{animation:none!important}
 .woven-orbit-v11 .woven-orbit-svg{transition:none}
 .woven-orbit-v11 .woven-orbit-light,.woven-orbit-v11 .woven-orbit-particle{display:none}
 #arrival-dialog .woven-orbit-entry{animation:none!important;transform:translate(-50%,-50%);opacity:1}
}
@media(forced-colors:active){
 .woven-orbit-v11>.woven-orbit-svg{display:none!important}
 .woven-orbit-v11>img{-webkit-mask-image:none;mask-image:none}
}
