/* Pure decoration. Existing sky variables, gradient and icy star canvas remain untouched. */
.ap-atmosphere,.ap-night,.ap-morning,.ap-meteors{position:absolute;inset:0;pointer-events:none;overflow:hidden}.ap-atmosphere{contain:layout paint}.ap-night{opacity:0;transition:opacity .8s}.ap-morning{opacity:1;transition:opacity .8s}html[data-sky-mode=night] .ap-night{opacity:var(--ap-darkness,0)}html[data-sky-mode=night] .ap-morning{opacity:0}
/* Four constellations occupy staggered scroll windows. Lines and notes appear only near the pointer. */
.ap-cluster{position:absolute;width:clamp(150px,16vw,225px);opacity:var(--ap-cluster-alpha,0);transform:translateY(var(--ap-cluster-drift,0px));filter:drop-shadow(0 0 3px rgba(155,201,255,var(--ap-halo,.06)));pointer-events:none}
.ap-cluster svg{display:block;width:100%;height:auto;overflow:visible}.ap-cluster path{stroke:#c7e1ff;stroke-width:.75;stroke-opacity:var(--ap-link-alpha,0);transition:stroke-opacity .16s}
.ap-cluster .ap-star-core{fill:#edf7ff;fill-opacity:.95}.ap-cluster .ap-star-halo{fill:#9dcaff;fill-opacity:var(--ap-halo,.06)}
.ap-cassiopeia{left:4%;top:19%}.ap-lyra{right:4%;top:48%;width:clamp(110px,12vw,165px)}
.ap-caption{margin:10px 0 0 12px;width:210px;max-width:25vw;font-size:11px;line-height:1.55;letter-spacing:.015em;color:#d5e4f5;opacity:var(--ap-caption-alpha,0);transition:opacity .2s;text-shadow:0 1px 6px #081329;pointer-events:none}.ap-caption strong{display:block;font-size:12px;font-weight:500;letter-spacing:.06em;color:#eef6ff;margin-bottom:3px}.ap-caption span{display:block}.ap-lyra .ap-caption{margin-left:-42px}
.ap-meteor{position:absolute;width:clamp(105px,12vw,180px);height:1.5px;border-radius:100%;background:linear-gradient(90deg,transparent 0%,#bcdcff55 44%,#e3f4fff0);transform-origin:right center;animation:ap-shoot 1.45s ease-out both;filter:drop-shadow(0 0 3px #b7d9ff85)}.ap-meteor:after{content:'';position:absolute;right:0;top:-1.4px;width:4px;height:4px;border-radius:50%;background:#f4fbff;box-shadow:0 0 7px #c9e8ff}
@keyframes ap-shoot{0%{opacity:0;transform:translate(-100px,-62px) rotate(31deg)}9%{opacity:.96}63%{opacity:.8}100%{opacity:0;transform:translate(230px,137px) rotate(31deg)}}
/* Firmer cloud cores survive the glass and daylight gradient without becoming fog. */
.ap-wisp{position:absolute;width:clamp(440px,58vw,850px);height:200px;border-radius:50%;background:radial-gradient(ellipse 31% 15% at 40% 40%,#ffff 0%,#ffffffed 23%,#ffffff80 58%,transparent 100%),radial-gradient(ellipse 39% 13% at 61% 48%,#ffffffee 0%,#ffffffb8 33%,transparent 100%),radial-gradient(ellipse 44% 12% at 44% 60%,#ffffffd9 0%,#ffffff73 47%,transparent 100%),radial-gradient(ellipse 46% 26% at 48% 47%,#ffffff45 0%,transparent 92%);filter:blur(3px);mask-image:radial-gradient(ellipse,#000 34%,#000c 62%,transparent 91%);-webkit-mask-image:radial-gradient(ellipse,#000 34%,#000c 62%,transparent 91%)}
.ap-wisp:after{content:'';position:absolute;inset:33% -4% 14% 8%;background:radial-gradient(ellipse 50% 15% at 50% 50%,#ffffffa3,transparent 95%);transform:rotate(-3deg);filter:blur(1px)}
.ap-wisp-one{left:-5%;top:20%;opacity:var(--ap-cloud-0,0);transform:translate3d(var(--ap-drift-0,0px),calc(var(--ap-drift-0,0px)*-.22),0) rotate(-12deg)}.ap-wisp-two{right:-8%;top:48%;opacity:var(--ap-cloud-1,0);transform:translate3d(var(--ap-drift-1,0px),calc(var(--ap-drift-1,0px)*.16),0) rotate(-8deg)}.ap-wisp-three{left:-10%;top:73%;opacity:var(--ap-cloud-2,0);transform:translate3d(var(--ap-drift-2,0px),calc(var(--ap-drift-2,0px)*-.16),0) rotate(-14deg)}
/* A feathered viewport, rather than the old rectangular crop of a large image. */
.sky-details .real-distant-aircraft{width:160px;height:93px;right:-6px;overflow:visible;mask-image:radial-gradient(ellipse 75% 65% at 67% 44%,#000 15%,#0009 45%,transparent 82%);-webkit-mask-image:radial-gradient(ellipse 75% 65% at 67% 44%,#000 15%,#0009 45%,transparent 82%)}.sky-details .real-distant-aircraft img{width:350px;height:auto;right:-4px;top:0;mask-image:linear-gradient(90deg,transparent 0%,#000 48%,#000 83%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 48%,#000 83%,transparent 100%)}
.sky-details .real-contrail{mask-image:radial-gradient(ellipse 80% 60% at 40% 50%,#000 15%,#000b 44%,transparent 76%);-webkit-mask-image:radial-gradient(ellipse 80% 60% at 40% 50%,#000 15%,#000b 44%,transparent 76%)}
@media(max-width:700px){.ap-cluster{width:145px}.ap-cassiopeia{left:12px;top:15%;width:125px}.ap-lyra{right:12px;top:54%;width:100px}.ap-caption{width:155px;max-width:42vw;font-size:10px}.ap-lyra .ap-caption{margin-left:-48px}.ap-wisp{height:145px;width:460px;filter:blur(2.4px)}.ap-wisp-one{left:-155px}.ap-wisp-two{right:-170px}.ap-wisp-three{left:-160px}.sky-details .real-distant-aircraft{width:110px;height:76px;right:-14px}.sky-details .real-distant-aircraft img{width:270px}}
@media(prefers-reduced-motion:reduce){.ap-night,.ap-morning,.ap-cluster,.ap-cluster path,.ap-caption{transition:none}.ap-meteor{display:none}.ap-wisp{transform:none}}
/* Keep the complete aircraft at the right; fade the trailing cloud at the left. */
.sky-details .real-distant-aircraft{right:2%;mask-image:linear-gradient(90deg,transparent,#000 40%,#000 96%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%,#000 96%,transparent)}.sky-details .real-distant-aircraft img{right:0;mask-image:none;-webkit-mask-image:none}

/* Restore the single pointer canvas on every main section in either theme. */

.ap-orion{right:4%;top:20%;width:clamp(105px,11vw,150px)}.ap-cygnus{left:4%;top:42%;width:clamp(135px,14vw,200px)}.ap-orion .ap-caption{margin-left:-35px}
.sky-details .real-distant-aircraft{animation:none;transform:translate3d(var(--sky-plane-x,0px),var(--sky-plane-y,0px),0)}
@media(max-width:700px){.ap-orion{right:12px;top:20%;width:90px}.ap-cygnus{left:12px;top:39%;width:125px}.ap-orion .ap-caption{margin-left:-50px}}
@media(prefers-reduced-motion:reduce){.sky-details .real-distant-aircraft{transform:none}}
