/* Ambient depth stays decorative and never moves the layout. */
.dd-signal-wake{position:absolute;right:50%;top:calc(50% - 1px);width:48px;height:2px;border-radius:50%;pointer-events:none;opacity:.5;filter:blur(.4px);transform-origin:right center;animation:dd-wake-drift 4s ease-in-out infinite;mask-image:linear-gradient(90deg,transparent,#000)}
.ds-door-signal .dd-signal-wake{width:80px;height:2px;opacity:.8}
.dd-signal-wake[hidden]{display:none}
@keyframes dd-wake-drift{0%,100%{transform:rotate(-6deg) scaleX(.75);opacity:.25}50%{transform:rotate(7deg) scaleX(1);opacity:.6}}
.dd-door-spill{position:absolute;left:50%;top:0;width:100px;height:100%;transform:translateX(-50%);pointer-events:none;opacity:0;z-index:2;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--lock-accent,#50dcff) 55%,transparent),#e8fcff99,color-mix(in srgb,var(--lock-accent,#50dcff) 55%,transparent),transparent);filter:blur(18px);mix-blend-mode:screen}
.is-exiting>.dds-brand-lock .dd-door-spill{animation:dd-spill-close 1.4s ease both}
.dds-world-entering:not(.is-exiting)>.dds-brand-lock .dd-door-spill,.is-opening:not(.is-exiting)>.dds-brand-lock .dd-door-spill{animation:dd-spill-open 2.05s ease both}
@keyframes dd-spill-close{0%,25%{opacity:0;transform:translateX(-50%) scaleX(.1)}65%{opacity:.4}100%{opacity:.75;transform:translateX(-50%) scaleX(1)}}
@keyframes dd-spill-open{0%{opacity:.8;transform:translateX(-50%) scaleX(.7)}25%{opacity:.9;transform:translateX(-50%) scaleX(1.8)}80%,100%{opacity:0;transform:translateX(-50%) scaleX(3)}}
.da-routes path.da-route-base.dd-return-route{stroke-width:2.5;opacity:.7}
.da-routes path.da-route-flow.dd-return-route{stroke-dasharray:9 91;stroke-width:4;opacity:1;filter:drop-shadow(0 0 8px var(--node-color));animation:dd-return-flow 1.8s linear 2}
#darby-atlas.dd-returning .da-core:after{content:'';position:absolute;inset:-10px;border:1px solid var(--return-color);border-radius:50%;pointer-events:none;animation:dd-core-ripple 2.7s .8s ease-out both}
#darby-atlas .da-world.dd-return-neighbor{animation:dd-neighbor-glow 2s 1.4s ease-out both}
@keyframes dd-return-flow{from{stroke-dashoffset:-100}to{stroke-dashoffset:0}}
@keyframes dd-core-ripple{0%{opacity:0;transform:scale(.7)}15%{opacity:.7}100%{opacity:0;transform:scale(3.4)}}
@keyframes dd-neighbor-glow{0%,100%{filter:brightness(1)}40%{filter:brightness(1.3);box-shadow:0 0 22px color-mix(in srgb,var(--node-color) 27%,transparent)}}
.dd-scene-signature{position:absolute;right:22px;bottom:180px;width:min(32vw,340px);height:85px;z-index:2;pointer-events:none;opacity:.24;mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent)}
.dd-scene-signature[hidden]{display:none!important}
.dd-scene-signature svg{width:100%;height:100%;overflow:visible}
.dd-scene-signature path{display:none;fill:none;stroke:var(--signature-color);stroke-width:1.2;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--signature-color))}
.dd-scene-signature[data-signature="arrival"] [data-signature="arrival"],
.dd-scene-signature[data-signature="system"] [data-signature="system"],
.dd-scene-signature[data-signature="simulator"] [data-signature="simulator"],
.dd-scene-signature[data-signature="lab"] [data-signature="lab"],
.dd-scene-signature[data-signature="worlds"] [data-signature="worlds"],
.dd-scene-signature[data-signature="living"] [data-signature="living"]{display:block}
#darby-atlas .da-world.dd-world-finished .da-structure{filter:drop-shadow(0 0 7px var(--node-color))}
#darby-atlas .da-world.dd-world-finished{border-bottom-color:var(--node-color)}
.da-routes path.da-route-flow.dd-idle-route{stroke-dasharray:3 97;stroke-width:2.5;opacity:.65;animation:dd-idle-flow 3.5s ease-in-out 1 both;filter:drop-shadow(0 0 4px var(--node-color))}
#darby-atlas .da-world.dd-idle-world{animation:dd-idle-world 4s ease-in-out 1 both}
@keyframes dd-idle-flow{0%{stroke-dashoffset:0;opacity:0}20%{opacity:.6}80%{opacity:.6}100%{stroke-dashoffset:-100;opacity:0}}
@keyframes dd-idle-world{0%,100%{filter:brightness(1)}65%{filter:brightness(1.2);box-shadow:0 0 18px color-mix(in srgb,var(--node-color) 22%,transparent)}}
.dd-lens-defs{position:absolute;width:0;height:0;pointer-events:none}
.ds-gateway-flight.is-flying .ds-portal-memories{filter:url(#dds-memory-lens-52)}
.dd-portal-dust{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.dd-portal-dust i{position:absolute;left:var(--dust-x);top:var(--dust-y);width:var(--dust-size);height:var(--dust-size);border-radius:50%;background:#c7efff;opacity:0;box-shadow:0 0 6px #91dfff55}
.is-flying .dd-portal-dust i{animation:dd-dust-float var(--dust-duration) var(--dust-delay) linear infinite}
@keyframes dd-dust-float{0%{opacity:0;transform:translate3d(-20px,30px,0) scale(.5)}25%,65%{opacity:.3}100%{opacity:0;transform:translate3d(50px,-45px,0) scale(1.6)}}
.dd-portal-caustic{position:absolute;inset:-5%;border-radius:50%;pointer-events:none;opacity:.15;background:radial-gradient(ellipse at center,transparent 42%,#74ceff15 56%,transparent 60%,#ba96ff22 72%,transparent 77%);box-shadow:inset 0 0 90px #02071488}
.is-flying .dd-portal-caustic{animation:dd-lens-breathe 7s ease-in-out infinite}
@keyframes dd-lens-breathe{0%,100%{transform:scale(1) rotate(-5deg);opacity:.12}50%{transform:scale(1.08,.96) rotate(5deg);opacity:.25}}
.ds-signal-paused .dd-signal-wake,.ds-signal-paused .dd-portal-dust i,.ds-signal-paused .dd-portal-caustic{animation-play-state:paused!important}
@media(max-width:767px){.dd-scene-signature{right:12px;bottom:95px;width:160px;height:45px;opacity:.17}.dd-door-spill{width:70px;filter:blur(13px)}.ds-gateway-flight.is-flying .ds-portal-memories{filter:none}.dd-portal-dust i:nth-child(n+17){display:none}}
@media(prefers-reduced-motion:reduce){.dd-signal-wake,.dd-door-spill,.dd-portal-dust,.dd-portal-caustic{display:none!important}.dd-return-route,.dd-idle-route,.dd-return-neighbor,.dd-idle-world,.dd-returning .da-core:after{animation:none!important}.ds-gateway-flight.is-flying .ds-portal-memories{filter:none}}

/* Colorful stars and shaded celestial bodies deepen the portal passage. */
.dd-celestial-sky{position:absolute;inset:0;overflow:hidden;pointer-events:none;perspective:900px}
.is-flying .dd-celestial-sky{animation:dd-sky-journey 17.5s linear both;animation-delay:var(--worm-offset,0s)}
.dd-colored-stars{position:absolute;inset:0;overflow:hidden}
.dd-colored-star{position:absolute;left:50%;top:46%;width:var(--star-size);height:var(--star-size);border-radius:50%;background:var(--star-color);color:var(--star-color);box-shadow:0 0 6px currentColor,0 0 13px currentColor;opacity:0}
.is-flying .dd-colored-star{animation:dd-star-flight var(--star-duration) var(--star-delay) linear infinite}
.dd-colored-star:nth-child(11n):after{content:'';position:absolute;left:50%;top:50%;width:12px;height:1px;background:linear-gradient(90deg,transparent,currentColor,transparent);transform:translate(-50%,-50%);opacity:.65}
.dd-cosmic-body{position:absolute;left:50%;top:45%;width:var(--cosmic-size);height:var(--cosmic-size);opacity:0;pointer-events:none;will-change:transform,opacity;--planet-light:#85d5ff;--planet-dark:#102c58}
.is-flying .dd-cosmic-body{animation:dd-celestial-pass 5.5s cubic-bezier(.25,.45,.5,1) both;animation-delay:calc(var(--worm-offset,0s) + var(--cosmic-delay))}
.dd-cosmic-planet{filter:drop-shadow(0 0 14px color-mix(in srgb,var(--planet-light) 22%,transparent))}
.dd-planet-surface{position:absolute;inset:0;z-index:1;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 27% 24%,#fff8,transparent 24%),radial-gradient(circle at 28% 28%,transparent 24%,#01040b66 63%,#01040bf5 87%),repeating-linear-gradient(165deg,var(--planet-light) 0%,var(--planet-dark) 12%,var(--planet-light) 17%,var(--planet-dark) 23%);box-shadow:inset 2px 2px 9px #d8f8ff66,inset -14px -9px 24px #02040ce6,0 0 5px var(--planet-light)}
.dd-cosmic-ocean{--planet-light:#55afff;--planet-dark:#134b7e}
.dd-cosmic-ocean .dd-planet-surface{background:radial-gradient(ellipse at 35% 28%,#bdf4ffb3 0 5%,transparent 18%),radial-gradient(ellipse at 38% 50%,#52c9a58c,transparent 28%),radial-gradient(circle at 25% 25%,transparent 30%,#020513ee 87%),repeating-linear-gradient(155deg,#328ac4 0 12%,#173f79 14% 21%,#59a8d7 23% 27%)}
.dd-cosmic-amber{--planet-light:#edbf78;--planet-dark:#835149}
.dd-cosmic-violet{--planet-light:#bba0ff;--planet-dark:#483679}
.dd-cosmic-mint{--planet-light:#82e9d0;--planet-dark:#246474}
.dd-cosmic-ember{--planet-light:#ed936b;--planet-dark:#743546}
.dd-planet-ring{position:absolute;left:-40%;top:32%;width:180%;height:35%;border-radius:50%;border:7px solid color-mix(in srgb,var(--planet-light) 65%,transparent);transform:rotate(-24deg);box-shadow:0 0 0 2px color-mix(in srgb,var(--planet-light) 20%,transparent),inset 0 0 0 3px #050b1b66;z-index:0}
.dd-planet-ring-front{z-index:2;clip-path:inset(50% -5% -10% -5%)}
.dd-cosmic-galaxy{--galaxy-one:#b0a1ff;--galaxy-two:#5379dd}
.dd-cosmic-galaxy.dd-cosmic-rose{--galaxy-one:#f4a4d4;--galaxy-two:#9768e5}
.dd-cosmic-galaxy.dd-cosmic-blue{--galaxy-one:#94eaff;--galaxy-two:#5f8fe5}
.dd-galaxy-arms{position:absolute;inset:8%;border-radius:50%;background:repeating-conic-gradient(from 20deg,transparent 0deg,var(--galaxy-two) 22deg,var(--galaxy-one) 34deg,transparent 58deg,transparent 90deg);mask-image:radial-gradient(ellipse,#000 4%,#000b 22%,#0006 40%,transparent 69%);filter:blur(4px);transform:rotate(-25deg) scaleY(.46);opacity:.7}
.is-flying .dd-galaxy-arms{animation:dd-galaxy-turn 22s linear infinite}
.dd-galaxy-core{position:absolute;inset:25%;border-radius:50%;background:radial-gradient(ellipse,#fff9dc 0%,var(--galaxy-one) 9%,color-mix(in srgb,var(--galaxy-two) 35%,transparent) 35%,transparent 67%);transform:rotate(-25deg) scaleY(.46);filter:blur(2px)}
@keyframes dd-sky-journey{0%{opacity:.12}18%,68%{opacity:.9}84%{opacity:.5}100%{opacity:0}}
@keyframes dd-star-flight{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--star-angle)) translateX(12px) scale(.2)}18%{opacity:.65}80%{opacity:.9}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--star-angle)) translateX(76vmax) scale(1.4)}}
@keyframes dd-celestial-pass{0%{opacity:0;transform:translate(-50%,-50%) translate(calc(var(--cosmic-x)*.08),calc(var(--cosmic-y)*.08)) scale(.06) rotate(var(--cosmic-tilt));filter:blur(3px)}25%{opacity:.7;filter:blur(0)}62%{opacity:.9;filter:blur(0)}100%{opacity:0;transform:translate(-50%,-50%) translate(var(--cosmic-x),var(--cosmic-y)) scale(1.8) rotate(calc(var(--cosmic-tilt)*-1));filter:blur(1px)}}
@keyframes dd-galaxy-turn{from{transform:rotate(-25deg) scaleY(.46)}to{transform:rotate(335deg) scaleY(.46)}}
.ds-signal-paused .dd-celestial-sky,.ds-signal-paused .dd-celestial-sky *{animation-play-state:paused!important}
@media(max-width:767px){.dd-colored-star:nth-child(n+85){display:none}.dd-cosmic-body{width:calc(var(--cosmic-size)*.7);height:calc(var(--cosmic-size)*.7)}.dd-galaxy-arms{filter:blur(2px)}.dd-planet-ring{border-width:4px}}
@media(prefers-reduced-motion:reduce){.dd-celestial-sky{display:none!important}}

/* Tiny digital lights arc through the distance, without image assets. */
.dd-distant-stars{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.dd-distant-star{position:absolute;left:50%;top:46%;width:var(--digital-size);height:var(--digital-size);border-radius:50%;background:var(--digital-color);color:var(--digital-color);opacity:0;box-shadow:0 0 4px currentColor,0 0 9px color-mix(in srgb,currentColor 45%,transparent)}
.is-flying .dd-distant-star{animation:dd-digital-star-swirl var(--digital-duration) var(--digital-delay) linear infinite}
.dd-distant-star:nth-child(13n):before,.dd-distant-star:nth-child(13n):after{content:'';position:absolute;left:50%;top:50%;width:7px;height:1px;background:linear-gradient(90deg,transparent,currentColor,transparent);transform:translate(-50%,-50%);opacity:.5}
.dd-distant-star:nth-child(13n):after{transform:translate(-50%,-50%) rotate(90deg)}
.dd-distant-star:nth-child(4n){border-radius:0}
@keyframes dd-digital-star-swirl{
 0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--digital-a)) translateX(3vmax) scale(.25)}
 22%{opacity:.55;transform:translate(-50%,-50%) rotate(var(--digital-b)) translateX(17vmax) scale(.5)}
 68%{opacity:.8;transform:translate(-50%,-50%) rotate(var(--digital-c)) translateX(42vmax) scale(.85)}
 100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--digital-d)) translateX(73vmax) scale(1.15)}
}
@media(max-width:767px){.dd-distant-star:nth-child(n+97){display:none}}
@media(prefers-reduced-motion:reduce){.dd-distant-stars{display:none!important}}
