/* One signal, assembled through exploration. Decorative effects never intercept controls. */
.ds-identity{position:relative}
.ds-spark{position:relative;display:block;width:30px;height:30px;pointer-events:none;--signal-color:#50dcff}
.ds-traveler{position:absolute;left:42px;top:28px;z-index:2}
.ds-spark-center{position:absolute;left:50%;top:50%;width:7px;height:7px;margin:-3.5px;border-radius:50%;background:#e6fcff;box-shadow:0 0 8px var(--signal-color),0 0 18px var(--signal-color);animation:ds-spark-breathe 3s ease-in-out infinite}
.ds-fragment{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;background:var(--fragment-color);border-radius:1px;opacity:0;transform:rotate(var(--fragment-angle)) translateX(12px);transition:opacity .6s,filter .6s}
.ds-fragment.is-earned{opacity:1;filter:drop-shadow(0 0 3px var(--fragment-color))}
.ds-door-signal{position:absolute;z-index:30;left:calc(50% - 15px);top:calc(50% - 15px);opacity:0;transform:translateX(-90px);}
.dds-world-entering .ds-door-signal,.is-exiting .ds-door-signal,.is-opening .ds-door-signal{animation:ds-door-travel 1.8s ease-in-out both}
.ds-evolving-core{isolation:isolate}
.ds-evolving-core .ds-logo{position:relative;width:66px;height:52px;object-fit:contain;z-index:2}
.ds-core-assembly{position:absolute;inset:0;pointer-events:none}
.ds-core-part{position:absolute;left:50%;top:50%;width:32px;height:18px;margin:-9px -16px;border:1px solid var(--fragment-color);background:color-mix(in srgb,var(--fragment-color) 14%,transparent);opacity:.1;transform:rotate(var(--fragment-angle)) translateX(49px) scale(.7);transition:opacity 1s,transform 1s,box-shadow 1s}
.ds-core-part.is-earned{opacity:.9;transform:rotate(var(--fragment-angle)) translateX(49px) scale(1);box-shadow:0 0 10px color-mix(in srgb,var(--fragment-color) 35%,transparent)}
.ds-evolving-core.is-system-complete{box-shadow:0 0 50px #50dcff55}
.da-core.ds-core-awakening{animation:ds-core-awake 2s ease-out}
.ds-invitation{border-top:1px solid #325068;margin-top:14px;padding-top:12px}
.ds-progress-hint{font:12px/1.6 Arial,sans-serif;color:#a8c9df;margin:0 0 12px}
.ds-awaken{display:block;width:100%;padding:13px;border:1px solid #72e8ff;border-radius:7px;background:linear-gradient(110deg,#1450ae,#087b95);color:#fff;font:700 14px/1.4 Arial,sans-serif;cursor:pointer}
.ds-awaken[hidden]{display:none!important}
dialog.ds-finale{position:fixed;inset:0;box-sizing:border-box;margin:auto;width:min(1000px,calc(100% - 32px));max-width:none;height:auto;max-height:calc(100dvh - 32px);padding:28px;overflow:auto;border:1px solid #5cd9f7;border-radius:18px;background:radial-gradient(ellipse at 50% 25%,#17394e,#050d19 70%);color:#eafaff;box-shadow:0 0 100px #061c34;font-family:Arial,sans-serif}
.ds-finale::backdrop{background:#020711ed;backdrop-filter:blur(10px)}
.ds-close{position:absolute;right:16px;top:16px;z-index:4;width:44px;height:44px;border:1px solid #56758b;border-radius:6px;color:#eafaff;background:#0b2437;font:24px/1 Arial;cursor:pointer}
.ds-cinematic{position:relative;width:min(620px,100%);height:300px;margin:0 auto;isolation:isolate;pointer-events:none}
.ds-cinematic:before{content:'';position:absolute;inset:8%;border:1px solid #63dbff22;border-radius:50%;transform:rotateX(55deg);box-shadow:0 0 50px #50dcff15}
.ds-reveal-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:130px;height:110px;border-radius:50%;background:#082034;box-shadow:0 0 30px #50dcff33}
.ds-reveal-core .ds-logo{width:110px;height:90px;object-fit:contain}
.ds-reveal-world{position:absolute;left:var(--node-x);top:var(--node-y);width:130px;margin-left:-65px;text-align:center;color:var(--world-color);font:11px/1.4 monospace}
.ds-reveal-world i{display:block;width:12px;height:12px;background:var(--world-color);margin:0 auto 8px;border-radius:3px;box-shadow:0 0 18px var(--world-color)}
.ds-reveal-routes{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.ds-reveal-routes path{stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:.45;stroke-dasharray:100}
.is-revealing .ds-reveal-routes path{animation:ds-route-connect 2s var(--world-delay) both}
.ds-reveal-spark{position:absolute;left:calc(50% - 15px);top:calc(50% - 15px)}
.ds-ending{text-align:center;max-width:620px;margin:0 auto}
.ds-code{font:12px/1.5 monospace;letter-spacing:.15em;color:#68e5ff;margin:14px 0}
.ds-ending h2{font:700 clamp(28px,4vw,45px)/1.1 Arial,sans-serif;letter-spacing:-.035em;color:#fff;margin:0 0 16px}
.ds-ending>p:not(.ds-code){font:16px/1.6 Arial,sans-serif;color:#bcd0df;margin:0 0 20px}
.ds-finale-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.ds-finale .ds-finale-actions :is(a,button){padding:14px 20px;border:1px solid #53cbe8;border-radius:6px;background:#103d60!important;color:#eafaff!important;text-decoration:none;font:700 14px/1.4 Arial,sans-serif;cursor:pointer}
.ds-replay{margin-top:16px;padding:10px;border:0;background:transparent;color:#a9d2e9;font:13px/1.5 Arial,sans-serif;cursor:pointer}
.ds-finale button.ds-close,.ds-finale button.ds-close:is(:hover,:focus){border:1px solid #56758b;background:#0b2437!important;color:#eafaff!important}
.ds-finale button.ds-replay,.ds-finale button.ds-replay:is(:hover,:focus){border:1px solid #365b74;border-radius:6px;background:transparent!important;color:#b9e8fa!important}
.ds-finale :is(a,button):focus-visible,.ds-awaken:focus-visible{outline:2px solid #b5f6ff;outline-offset:3px}
.is-revealing .ds-reveal-world{animation:ds-world-connect 1.5s var(--world-delay) both}
.is-revealing .ds-reveal-core{animation:ds-final-core 3s ease-out both}
.is-revealing .ds-reveal-spark{animation:ds-signal-arrive 2.8s ease-in-out both}
.is-revealing .ds-ending{animation:ds-ending-in 1s 2.7s both}
@keyframes ds-spark-breathe{50%{box-shadow:0 0 12px var(--signal-color),0 0 25px var(--signal-color)}}
@keyframes ds-door-travel{0%{opacity:0;transform:translateX(-110px) scale(.6)}40%,65%{opacity:1;transform:translateX(0) scale(1.8)}100%{opacity:0;transform:translateX(110px) scale(.6)}}
@keyframes ds-core-awake{35%{filter:brightness(1.8);box-shadow:0 0 70px #50dcff77}100%{filter:brightness(1)}}
@keyframes ds-world-connect{from{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur(0)}}
@keyframes ds-route-connect{from{stroke-dashoffset:100;opacity:0}to{stroke-dashoffset:0;opacity:.65}}
@keyframes ds-final-core{0%{opacity:.2;filter:blur(10px)}70%{opacity:1;filter:blur(0);box-shadow:0 0 85px #50dcff77}100%{box-shadow:0 0 40px #50dcff44}}
@keyframes ds-signal-arrive{0%{transform:translate(-180px,-70px);opacity:0}25%{opacity:1}85%{transform:translate(0,0) scale(2);opacity:1}100%{opacity:0;transform:scale(4)}}
@keyframes ds-ending-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.ds-signal-paused :is(.ds-spark-center,.ds-finale *){animation-play-state:paused!important}
@media(max-width:767px){.ds-traveler{left:23px;top:18px;transform:scale(.8)}.ds-evolving-core .ds-logo{width:42px;height:34px}.ds-core-part{width:23px;height:13px;margin:-6.5px -11.5px;transform:rotate(var(--fragment-angle)) translateX(35px) scale(.7)}.ds-core-part.is-earned{transform:rotate(var(--fragment-angle)) translateX(35px)}.ds-cinematic{height:245px}.ds-reveal-world{width:84px;margin-left:-42px;font-size:9px}.ds-reveal-core{width:95px;height:85px}.ds-reveal-core .ds-logo{width:90px;height:75px}dialog.ds-finale{padding:20px 14px}.ds-finale-actions :is(a,button){flex:1 1 100%}.ds-code{font-size:10px}}
@media(prefers-reduced-motion:reduce){.ds-spark-center,.ds-door-signal,.ds-core-awakening,.ds-finale *{animation:none!important;transition:none!important}.ds-door-signal,.ds-reveal-spark{display:none}.ds-core-part{transition:none}}

/* Make the Atlas invitation visible without moving surrounding navigation. */
dialog.dds-cinema button.da-atlas-launch{
 border-width:1px;animation:ds-atlas-beacon 9s ease-in-out infinite;
 background:#102e47;font-weight:700;
}
@keyframes ds-atlas-beacon{
 0%,100%{color:#a3efff;border-color:#50dcff;box-shadow:0 0 5px #50dcff55,0 0 15px #50dcff22}
 20%{color:#d3c4ff;border-color:#b39aff;box-shadow:0 0 10px #b39aff99,0 0 24px #b39aff44}
 40%{color:#b1ffda;border-color:#74e5b1;box-shadow:0 0 5px #74e5b155,0 0 15px #74e5b122}
 60%{color:#ffe2ae;border-color:#ffc56d;box-shadow:0 0 10px #ffc56d99,0 0 24px #ffc56d44}
 80%{color:#ffc6e5;border-color:#f18bbd;box-shadow:0 0 5px #f18bbd55,0 0 15px #f18bbd22}
}
.ds-signal-paused .da-atlas-launch{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){dialog.dds-cinema button.da-atlas-launch{animation:none;color:#a3efff;border-color:#50dcff;box-shadow:0 0 12px #50dcff44}}

/* Full-window system reveal: one shared circuit, centered in the viewport. */
dialog.ds-finale{inset:0;margin:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:28px clamp(20px,4vw,70px);background:radial-gradient(ellipse at 50% 38%,#143c52 0%,#071525 48%,#030a13 90%)}
dialog.ds-finale[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2vh,22px)}
.ds-cinematic{flex:0 0 auto;width:min(940px,90vw);height:clamp(270px,43dvh,470px);margin:0 auto}
.ds-ending{flex:0 0 auto;max-width:760px;margin:0 auto}
.ds-reveal-core{width:150px;height:135px;border:1px solid #65dfff66;z-index:2}
.ds-reveal-core:before,.ds-reveal-core:after{content:'';position:absolute;inset:-16px;border:1px dashed #6de8ff55;border-radius:50%;animation:ds-core-orbit 18s linear infinite}
.ds-reveal-core:after{inset:-30px;border-style:solid;border-color:#b39aff33;animation-direction:reverse;transform:rotateX(55deg)}
.ds-reveal-core .ds-logo{width:130px;height:105px}
.ds-reveal-world{font-size:13px;z-index:3}
.ds-reveal-world i{position:absolute;left:50%;top:0;margin:0;transform:translate(-50%,-50%);width:14px;height:14px;animation:ds-world-beat 3.5s var(--world-delay) ease-in-out infinite}
.ds-reveal-world>span{display:block;margin-top:16px;text-shadow:0 1px 8px #020810}
.ds-reveal-routes .ds-network-spoke{stroke-width:1.8;opacity:.65}
.is-revealing .ds-reveal-routes path.ds-network-flow{stroke-width:3;stroke-dasharray:3 97;filter:drop-shadow(0 0 4px #9ceaff);animation:ds-network-current 3.6s var(--flow-delay) linear infinite}
.is-revealing .ds-reveal-routes path.ds-network-bus{stroke-width:1.2;stroke-dasharray:1 2;opacity:.3;animation:ds-network-current 28s linear infinite}
.ds-finale .ds-cinematic:before{inset:-4% 2%;border-color:#63dbff44;animation:ds-network-halo 7s ease-in-out infinite}
.ds-finale button.ds-awaken{animation:ds-atlas-beacon 9s ease-in-out infinite}
#dds-world button.ds-awaken{animation:ds-atlas-beacon 9s ease-in-out infinite}
@keyframes ds-network-current{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes ds-world-beat{50%{box-shadow:0 0 28px var(--world-color);filter:brightness(1.5);border-radius:50%}}
@keyframes ds-network-halo{50%{opacity:.45;box-shadow:0 0 70px #50dcff33}}
@keyframes ds-core-orbit{to{rotate:360deg}}
@media(max-width:767px){
 dialog.ds-finale{padding:58px 16px 24px}
 dialog.ds-finale[open]{justify-content:safe center;gap:12px}
 .ds-cinematic{width:100%;height:245px}
 .ds-reveal-core{width:95px;height:85px}.ds-reveal-core .ds-logo{width:90px;height:75px}
 .ds-reveal-core:before{inset:-8px}.ds-reveal-core:after{inset:-17px}
 .ds-reveal-world{width:88px;margin-left:-44px;font-size:10px}
 .ds-ending h2{font-size:clamp(26px,7vw,36px)}
 .ds-ending>p:not(.ds-code){font-size:14px;line-height:1.5}
}
@media(max-height:700px) and (min-width:768px){dialog.ds-finale{padding:18px}.ds-cinematic{height:230px}.ds-ending h2{font-size:32px}.ds-code{margin:8px 0}.ds-ending>p:not(.ds-code){margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){
 #dds-world button.ds-awaken{animation:none;box-shadow:0 0 14px #50dcff55}
 .ds-finale .ds-reveal-core:before,.ds-finale .ds-reveal-core:after,.ds-finale .ds-cinematic:before{animation:none!important}
}

/* Straight spectrum connectors and wandering orbital traces. */
.ds-finale .ds-reveal-world{width:170px;margin-left:-85px;font-size:16px;line-height:1.4;letter-spacing:.025em}
.ds-finale .ds-reveal-world>span{margin-top:19px}
.is-revealing .ds-reveal-routes path.ds-network-spoke{stroke:url(#ds-reveal-spectrum-52)}
.is-revealing .ds-reveal-routes path.ds-network-spoke:not(.ds-network-flow){animation:ds-connector-breathe 4.2s var(--world-delay) ease-in-out infinite;stroke-width:1.6}
.is-revealing .ds-reveal-routes path.ds-network-flow{stroke-dasharray:8 92;stroke-width:3;opacity:.95;animation:ds-network-current 3.6s var(--flow-delay) linear infinite,ds-spectrum-shift 14s linear infinite}
@keyframes ds-connector-breathe{0%,100%{opacity:.2}50%{opacity:.8}}
@keyframes ds-spectrum-shift{to{filter:hue-rotate(360deg) drop-shadow(0 0 5px #8eefff)}}
.ds-orbit-lines{position:absolute;inset:0 2%;width:96%;height:100%;overflow:hidden;clip-path:ellipse(50% 50% at 50% 50%);pointer-events:none;opacity:.7}
.ds-orbit-lines ellipse{stroke-width:.8;vector-effect:non-scaling-stroke;stroke-dasharray:20 5 1 5;opacity:.28;transform-origin:500px 300px;animation:ds-orbit-wander var(--orbit-duration) var(--orbit-delay) linear infinite var(--orbit-direction);animation-play-state:paused}
.ds-finale[open] .ds-orbit-lines ellipse{animation-play-state:running}
@keyframes ds-orbit-wander{0%{transform:rotate(var(--orbit-angle)) scaleY(.7);stroke-dashoffset:0}50%{transform:rotate(calc(var(--orbit-angle) + 180deg)) scaleY(1.12);opacity:.55}100%{transform:rotate(calc(var(--orbit-angle) + 360deg)) scaleY(.7);stroke-dashoffset:-100}}
.ds-finale .ds-cinematic:before{inset:0 2%;transform:none;border-color:#64dfff44}
.ds-finale>.ds-cinematic,.ds-finale>.ds-ending{position:relative;z-index:1}
.ds-pointer-light{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(460px circle at var(--reveal-x,50%) var(--reveal-y,40%),#2975ff30,#50dcff16 34%,transparent 72%);transition:opacity .35s;mix-blend-mode:screen}
.ds-finale.has-reveal-pointer>.ds-pointer-light{opacity:1}
@media(max-width:767px){.ds-finale .ds-reveal-world{width:102px;margin-left:-51px;font-size:12px;line-height:1.35}.ds-finale .ds-reveal-world>span{margin-top:17px}.ds-orbit-lines{opacity:.5}}
@media(hover:none),(pointer:coarse){.ds-pointer-light{display:none}}
@media(prefers-reduced-motion:reduce){.ds-orbit-lines ellipse,.is-revealing .ds-reveal-routes path.ds-network-spoke{animation:none!important}.ds-pointer-light{display:none}}

/* Atlas replay lives with its return action; brain remains behind the map. */
.ds-atlas-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;flex:0 0 auto;max-width:100%}
.ds-atlas-header-actions .ds-awaken{width:auto;min-height:44px;padding:12px 16px;white-space:normal}
#darby-atlas{position:relative;isolation:isolate}
#darby-atlas .ds-atlas-brain{position:absolute;left:50%;right:auto;top:50%;transform:translate(-50%,-50%);width:min(95%,1200px);height:auto;z-index:0;opacity:1;pointer-events:none}
#darby-atlas .ds-atlas-brain:before{opacity:.2}
#darby-atlas .ds-atlas-brain svg{opacity:.32}
#darby-atlas>.da-header,#darby-atlas>.da-layout,#darby-atlas>.da-map-note{position:relative;z-index:1}
#darby-atlas .ds-atlas-brain svg,#darby-atlas .ds-atlas-brain:before,#darby-atlas .ds-atlas-brain .darby-brain-pulse-52{animation-play-state:paused}
#dds-world[open][data-world="atlas"] #darby-atlas .ds-atlas-brain svg,
#dds-world[open][data-world="atlas"] #darby-atlas .ds-atlas-brain:before,
#dds-world[open][data-world="atlas"] #darby-atlas .ds-atlas-brain .darby-brain-pulse-52{animation-play-state:running}
@media(max-width:767px){
 .ds-atlas-header-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .ds-atlas-header-actions:has(.ds-awaken[hidden]){grid-template-columns:1fr}
 .ds-atlas-header-actions :is(.da-return,.ds-awaken){width:100%;min-width:0;font-size:12px!important;white-space:normal;padding:10px!important}
 #darby-atlas .ds-atlas-brain{width:135%;top:35%}
 #darby-atlas .ds-atlas-brain:before{opacity:.14}
}
@media(prefers-reduced-motion:reduce){#darby-atlas .ds-atlas-brain:before{animation:none!important}}

.ds-atlas-brain-layer{position:absolute;inset:0;overflow:hidden;z-index:0;pointer-events:none}
.ds-signal-paused #darby-atlas .ds-atlas-brain svg,.ds-signal-paused #darby-atlas .ds-atlas-brain:before,.ds-signal-paused #darby-atlas .darby-brain-pulse-52{animation-play-state:paused!important}

/* Four levels, one continuous journey. */
.ds-identity>strong{display:none!important}
.ds-location-trail{display:flex;align-items:center;gap:6px;color:#aac9dd;font:10px/1.5 monospace;letter-spacing:.025em;min-width:0}
dialog.dds-cinema .ds-location-trail button.ds-trail-atlas{min-height:32px;padding:5px 8px;border:1px solid #426d85;border-radius:5px;background:#0c263b;color:#a0ecff;font:700 11px/1.4 monospace}
.ds-trail-place{color:#e3f4ff}.ds-trail-place[hidden],.ds-trail-separator[hidden]{display:none}
.ds-live-note{position:relative;z-index:1;max-width:1400px;margin:12px auto 0;color:#9cdeed;font:11px/1.6 monospace;letter-spacing:.03em}
.ds-live-note[hidden]{display:none}
.da-routes path.da-route-flow.ds-route-live{stroke-width:3.5;stroke-dasharray:7 93;opacity:1;filter:drop-shadow(0 0 7px var(--node-color));animation:ds-live-inbound 2s linear infinite}
.da-routes path.da-route-base.ds-route-live{opacity:.6;stroke-width:2}
.da-world.ds-route-live{box-shadow:0 0 30px color-mix(in srgb,var(--node-color) 40%,transparent);animation:ds-world-activity 1.6s ease-in-out infinite}
.da-core.ds-live-core{animation:ds-live-arrive 1.8s ease-in-out infinite}
@keyframes ds-world-activity{50%{filter:brightness(1.35)}}
@keyframes ds-live-arrive{50%{box-shadow:0 0 65px #50dcff88,inset 0 0 22px #50dcff44}}
.ds-gateway-flight{position:absolute;inset:0;z-index:80;pointer-events:none;background:radial-gradient(ellipse at center,#143b54,#030c18 75%);overflow:hidden}
.ds-gateway-flight[hidden]{display:none!important}
.ds-flight-logo{position:absolute;left:calc(50% - 75px);top:calc(50% - 70px);width:150px;height:140px;display:grid;place-items:center}
.ds-flight-logo .ds-logo{width:150px;height:125px;object-fit:contain}
.ds-flight-spark{position:absolute;left:calc(50% - 15px);top:calc(50% - 15px)}
.ds-gateway-flight>p{position:absolute;left:0;right:0;top:68%;text-align:center;color:#89e8fc;font:11px/1.5 monospace;letter-spacing:.18em}
.ds-gateway-flight.is-flying{animation:ds-gateway-veil 5.8s linear both}
.is-flying .ds-flight-logo{animation:ds-gateway-release 5.8s ease-in-out both}
.is-flying .ds-flight-spark{animation:ds-gateway-follow 5.8s ease-in-out both}
.ds-gateway-arrival .da-map{animation:ds-map-camera 2.3s ease-out}
@keyframes ds-gateway-veil{0%,78%{opacity:1}100%{opacity:0}}
@keyframes ds-gateway-release{0%,20%{opacity:1;transform:scale(1)}50%{opacity:0;transform:scale(.2)}100%{opacity:0;transform:scale(.1)}}
@keyframes ds-gateway-follow{0%,15%{opacity:0;transform:scale(.5)}30%{opacity:1;transform:scale(4)}72%{opacity:1;transform:translate(var(--flight-x,0),var(--flight-y,0)) scale(2)}100%{opacity:0;transform:translate(var(--flight-x,0),var(--flight-y,0)) scale(.6)}}
@keyframes ds-map-camera{from{opacity:.4;transform:scale(1.12);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@media(max-width:767px){
 .ds-location-trail{position:absolute;left:12px;right:12px;top:64px;height:24px;padding:0 4px;background:#071421ed;font-size:10px;white-space:nowrap}
 .ds-trail-gateway{display:none}
 dialog.dds-cinema .ds-location-trail button.ds-trail-atlas{min-height:22px;padding:2px 7px;font-size:10px!important}
 #dds-world .dds-world-body{top:90px}
 #dds-cinema .dds-cinema-slide{padding-top:122px}
 .ds-live-note{font-size:10px}
}
@media(prefers-reduced-motion:reduce){.ds-gateway-flight{display:none!important}.ds-gateway-arrival .da-map,.ds-route-live,.ds-live-core{animation:none!important}}

@media(min-width:768px) and (max-width:1100px){.ds-trail-gateway{display:none}.ds-trail-place{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ds-location-trail{gap:4px}}
@media(max-width:767px){.ds-identity{position:static!important}.ds-identity>.ds-traveler{left:36px;top:29px}}

@keyframes ds-live-inbound{from{stroke-dashoffset:-100}to{stroke-dashoffset:0}}

/* Gateway: a passage between Darby brains. */
.ds-gateway-flight{position:absolute;inset:0;z-index:1000;pointer-events:auto;background:#020714;overflow:hidden;color:#eafbff}
.ds-gateway-flight[hidden]{display:none!important}
.ds-worm-cosmos{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ds-gateway-flight.is-flying{animation:ds-worm-veil 17.5s linear both}
.ds-worm-brain{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.ds-worm-brain .darby-hero-brain-52{left:50%;right:auto;top:45%;width:min(85vw,900px);transform:translate(-50%,-50%);opacity:1}
.ds-worm-brain .darby-hero-brain-52:before{opacity:.65;animation-play-state:running}
.ds-worm-brain .darby-hero-brain-52 svg{opacity:.75;animation-play-state:running}
.ds-worm-brain .darby-brain-pulse-52{animation-play-state:running}
.ds-worm-brain>.ds-logo{position:absolute;left:50%;top:43%;width:clamp(70px,10vw,140px);height:auto;transform:translate(-50%,-50%);filter:drop-shadow(0 0 28px #4ce8ff)}
.is-flying .ds-worm-departure{animation:ds-worm-depart 17.5s cubic-bezier(.4,0,.2,1) both}
.is-flying .ds-worm-destination{animation:ds-worm-arrive 17.5s cubic-bezier(.2,.6,.3,1) both}
.ds-worm-caption{position:absolute;left:8%;right:8%;bottom:12%;text-align:center;text-shadow:0 2px 20px #000;pointer-events:none}
.ds-worm-coordinate{color:#6fdfff;font:700 12px/1.6 monospace;letter-spacing:.23em;margin:0 0 12px}
.ds-worm-title{font:700 clamp(23px,3.4vw,46px)/1.15 Arial,sans-serif;letter-spacing:-.025em;margin:0 auto 12px;max-width:900px;color:#ecfaff}
.ds-worm-subtitle{font:13px/1.6 monospace;letter-spacing:.08em;color:#b7c9ed;margin:0}
#dds-world button.ds-worm-skip{position:absolute;right:24px;top:24px;min-height:44px;padding:12px 20px;border:1px solid #83dfff88;border-radius:7px;background:#071625dc;color:#ddf9ff;font:700 13px/1.4 monospace;cursor:pointer;z-index:2}
#dds-world button.ds-worm-skip:hover,#dds-world button.ds-worm-skip:focus-visible{background:#164260;outline:2px solid #66ddff;outline-offset:3px}
.ds-worm-meter{position:absolute;bottom:6%;left:calc(50% - 110px);width:220px;height:2px;background:#55748c44;overflow:hidden}
.ds-worm-meter i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#4ceaff,#b69aff,#71f3c9);transform-origin:left;box-shadow:0 0 12px #55dcff}
.is-flying .ds-worm-meter i{animation:ds-worm-progress 17.5s linear both}
@keyframes ds-worm-veil{0%,90%{opacity:1}100%{opacity:0}}
@keyframes ds-worm-depart{0%,9%{opacity:1;transform:scale(1)}24%{opacity:0;transform:scale(3.8)}100%{opacity:0;transform:scale(3.8)}}
@keyframes ds-worm-arrive{0%,64%{opacity:0;transform:scale(.05) rotate(-12deg)}76%{opacity:.7;transform:scale(.5) rotate(-3deg)}89%,100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes ds-worm-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:767px){.ds-worm-brain .darby-hero-brain-52{width:140vw;top:42%}.ds-worm-caption{left:7%;right:7%;bottom:15%}.ds-worm-coordinate{font-size:10px;letter-spacing:.15em}.ds-worm-subtitle{font-size:11px}#dds-world button.ds-worm-skip{top:16px;right:16px;padding:10px 14px}.ds-worm-meter{bottom:9%}}
@media(prefers-reduced-motion:reduce){.ds-gateway-flight{display:none!important}.ds-worm-brain *{animation:none!important}}

.ds-gateway-flight.is-flying,.is-flying .ds-worm-departure,.is-flying .ds-worm-destination,.is-flying .ds-worm-meter i{animation-delay:var(--worm-offset,0s)}

.ds-worm-traveler{position:absolute;left:calc(50% - 15px);top:calc(47% - 15px);pointer-events:none;filter:drop-shadow(0 0 20px #55dcff)}
.is-flying .ds-worm-traveler{animation:ds-worm-signal 17.5s ease-in-out both;animation-delay:var(--worm-offset,0s)}
@keyframes ds-worm-signal{0%,12%{opacity:0;transform:scale(.5)}23%{opacity:1;transform:scale(2)}46%{opacity:1;transform:translate(18px,-12px) scale(1.2)}68%{opacity:1;transform:translate(-16px,10px) scale(1.8)}82%,100%{opacity:0;transform:scale(.2)}}

/* Photographic echoes: decorative fragments, softly revealed in depth. */
.ds-portal-memories{position:absolute;inset:0;perspective:800px;overflow:hidden;pointer-events:none}
.ds-portal-memory{position:absolute;left:50%;top:43%;width:min(37vw,440px);aspect-ratio:1.52;margin:0;overflow:hidden;border:1px solid #8bdfff66;border-radius:6px;background:#0e2a41;opacity:0;transform-style:preserve-3d;box-shadow:0 0 42px #45dfff22,0 12px 60px #02071488;will-change:transform,opacity}
.ds-portal-memory[hidden]{display:none!important}
.ds-portal-memory img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.48) contrast(1.12) brightness(.86);opacity:.78}
.ds-portal-memory:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#4bddff25,transparent 50%,#a28aff33),repeating-linear-gradient(0deg,transparent 0 3px,#030b1722 4px);box-shadow:inset 0 0 34px #071627;pointer-events:none}
.ds-portal-memory figcaption{position:absolute;left:12px;right:12px;bottom:12px;z-index:1;display:flex;justify-content:space-between;gap:8px;color:#d2f5ff;font:700 10px/1.5 monospace;letter-spacing:.07em;text-shadow:0 1px 6px #000;background:#03101b99;padding:7px 9px;border-left:2px solid #81deff}
.ds-memory-crosshair{position:absolute;top:8px;left:12px;color:#a8edff;font:18px/1 monospace}
.is-flying .ds-portal-memory{animation:ds-memory-pass 3.9s cubic-bezier(.2,.55,.45,1) both;animation-delay:calc(var(--worm-offset,0s) + var(--memory-delay))}
.ds-worm-caption{z-index:2}
@keyframes ds-memory-pass{
 0%{opacity:0;transform:translate(-50%,-50%) translate(calc(var(--memory-x)*35px),calc(var(--memory-y)*12px)) translateZ(-750px) rotateY(calc(var(--memory-x)*22deg));filter:blur(5px)}
 25%{opacity:.48;filter:blur(.7px)}
 52%{opacity:.75;filter:blur(0)}
 77%{opacity:.38;filter:blur(1px)}
 100%{opacity:0;transform:translate(-50%,-50%) translate(calc(var(--memory-x)*47vw),calc(var(--memory-y)*24vh)) translateZ(260px) rotateY(calc(var(--memory-x)*-18deg)) rotateZ(calc(var(--memory-x)*7deg));filter:blur(4px)}
}
@media(max-width:767px){
 .ds-portal-memory{width:66vw;top:40%}
 .ds-portal-memory figcaption{font-size:8px;left:7px;right:7px;bottom:7px;display:block;padding:5px}
 .ds-portal-memory figcaption span{display:block}
}
@media(prefers-reduced-motion:reduce){.ds-portal-memories{display:none!important}}

/* Memories dissolve into the passage instead of reading as floating cards. */
.ds-portal-memory{width:min(47vw,580px);aspect-ratio:1.4;border:0;border-radius:0;background:transparent;box-shadow:none;mix-blend-mode:screen;mask-image:radial-gradient(ellipse at 50% 48%,#000 16%,#000b 40%,transparent 72%);-webkit-mask-image:radial-gradient(ellipse at 50% 48%,#000 16%,#000b 40%,transparent 72%)}
.ds-portal-memory img{filter:saturate(.3) sepia(.16) contrast(.85) brightness(.92);opacity:.64;transform:scale(1.08);object-fit:cover}
.ds-portal-memory:after{background:radial-gradient(ellipse at 40% 35%,#a6dfff22,transparent 60%),linear-gradient(135deg,#4bddff16,transparent 50%,#a28aff20);box-shadow:none}
.ds-portal-memory figcaption{left:22%;right:20%;bottom:24%;padding:0;border:0;background:transparent;opacity:.32;font-size:8px;font-weight:400;letter-spacing:.18em;text-shadow:0 0 7px #8bdfff;display:block}
.ds-portal-memory figcaption span{display:block}
.ds-memory-crosshair{display:none}
.is-flying .ds-portal-memory{animation-name:ds-thought-pass;animation-duration:4.3s}
@keyframes ds-thought-pass{
 0%{opacity:0;transform:translate(-50%,-50%) translate(calc(var(--memory-x)*45px),calc(var(--memory-y)*16px)) translateZ(-650px) rotateY(calc(var(--memory-x)*15deg)) rotateZ(var(--thought-turn));filter:blur(9px)}
 24%{opacity:.34;filter:blur(3px)}
 46%{opacity:.66;filter:blur(.7px)}
 65%{opacity:.45;filter:blur(1.6px)}
 100%{opacity:0;transform:translate(-50%,-50%) translate(calc(var(--memory-x)*45vw),calc(var(--memory-y)*22vh)) translateZ(200px) rotateY(calc(var(--memory-x)*-12deg)) rotateZ(var(--thought-turn));filter:blur(9px)}
}
@media(max-width:767px){.ds-portal-memory{width:90vw}.ds-portal-memory figcaption{left:23%;right:20%;bottom:24%;font-size:7px;padding:0}}

/* Saturated, television-like glimpses carried on a spiral through space. */
.ds-portal-memory img{filter:saturate(1.65) contrast(1.14) brightness(1.04);opacity:.88}
.ds-portal-memory:after{background:repeating-linear-gradient(0deg,transparent 0 2px,#04102012 3px),linear-gradient(125deg,#24cfff0d,transparent 50%,#da55ff12)}
.ds-portal-memory{mask-image:radial-gradient(ellipse at 50% 48%,#000 20%,#000c 43%,transparent 73%);-webkit-mask-image:radial-gradient(ellipse at 50% 48%,#000 20%,#000c 43%,transparent 73%)}
.is-flying .ds-portal-memory{animation-name:ds-memory-swirl;animation-duration:4.3s}
.ds-portal-memories{transition:opacity 1.3s ease}
.ds-gateway-flight[data-stage="3"] .ds-portal-memories{opacity:.65}
.ds-gateway-flight[data-stage="4"] .ds-portal-memories{opacity:.12}
@keyframes ds-memory-swirl{
 0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--orbit-a)) translateX(25px) rotate(calc(-1 * var(--orbit-a))) translateZ(-700px) rotateY(18deg);filter:blur(8px)}
 24%{opacity:.45;transform:translate(-50%,-50%) rotate(var(--orbit-b)) translateX(15vw) rotate(calc(-1 * var(--orbit-b) + var(--thought-turn))) translateZ(-250px) rotateY(-9deg);filter:blur(2px)}
 49%{opacity:.78;filter:blur(.4px)}
 66%{opacity:.58;transform:translate(-50%,-50%) rotate(var(--orbit-c)) translateX(30vw) rotate(calc(-1 * var(--orbit-c) + var(--thought-turn))) translateZ(0) rotateY(8deg);filter:blur(1px)}
 100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--orbit-d)) translateX(56vw) rotate(calc(-1 * var(--orbit-d) - var(--thought-turn))) translateZ(250px) rotateY(-17deg);filter:blur(7px)}
}
@media(max-width:767px){.ds-portal-memory{width:86vw}}

/* Familiar memories evolve into electric futures and cosmic horizons. */
.ds-portal-memory[data-era="origin"] img{filter:saturate(1.35) contrast(1.1) brightness(1.02)}
.ds-portal-memory[data-era="connected"] img{filter:saturate(1.6) contrast(1.14) brightness(1.04)}
.ds-portal-memory[data-era="future"] img{filter:saturate(1.95) contrast(1.18) brightness(1.12)}
.ds-portal-memory[data-era="cosmic"] img{filter:saturate(2.1) contrast(1.15) brightness(1.18)}
.ds-portal-memory[data-era="future"]:after{background:linear-gradient(135deg,#25ecff18,transparent 50%,#d44fff20)}
.ds-portal-memory[data-era="cosmic"]:after{background:radial-gradient(ellipse at center,transparent 20%,#8b65ff1c 70%)}
.is-flying .ds-portal-memory{animation-duration:3.8s}

/* Gateway is a replay destination, including on compact headers. */
dialog.dds-cinema .ds-location-trail button.ds-trail-gateway,
#dds-world .ds-location-trail button.ds-trail-gateway{display:inline-flex;align-items:center;min-height:32px;padding:5px 8px;border:1px solid #426d85;border-radius:5px;background:#0c263b;color:#a0ecff;font:700 11px/1.4 monospace;cursor:pointer;white-space:nowrap}
.ds-location-trail button.ds-trail-gateway:hover{background:#164260!important;border-color:#6cdbff!important}
.ds-location-trail button.ds-trail-gateway:focus-visible{outline:2px solid #66ddff;outline-offset:2px}
@media(max-width:767px){
 dialog.dds-cinema .ds-location-trail button.ds-trail-gateway,#dds-world .ds-location-trail button.ds-trail-gateway{display:inline-flex;min-height:22px;padding:2px 7px;font-size:10px!important}
 .ds-location-trail .ds-trail-place{overflow:hidden;text-overflow:ellipsis}
 .ds-gateway-slash{flex-shrink:0}
}

/* Seven-point logo sprite wakes when every world has been visited. */
.ds-sprite-circuit{position:absolute;inset:0;width:30px;height:30px;overflow:visible;opacity:0;transition:opacity 1s;pointer-events:none}
.ds-sprite-wires{stroke:#72dfff;stroke-width:.45;opacity:.4}
.ds-sprite-charge{stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-dasharray:5 95;filter:drop-shadow(0 0 2px currentColor)}
.ds-traveler.ds-sprite-awake{animation:ds-sprite-orbit 18s linear infinite;color:#65e9ff}
.ds-sprite-awake .ds-sprite-circuit{opacity:1}
.ds-traveler.ds-sprite-awake .ds-fragment{opacity:1;animation:ds-sprite-node 7.2s ease-in-out infinite;animation-delay:var(--sprite-beat)}
.ds-sprite-awake .ds-sprite-charge{animation:ds-sprite-connect 7.2s linear infinite,ds-sprite-spectrum 12s linear infinite}
.ds-signal-paused .ds-traveler.ds-sprite-awake,.ds-signal-paused .ds-sprite-awake *{animation-play-state:paused!important}
@keyframes ds-sprite-orbit{to{transform:rotate(360deg)}}
@keyframes ds-sprite-connect{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes ds-sprite-node{0%,22%,100%{filter:drop-shadow(0 0 2px var(--fragment-color));opacity:.65}10%{filter:drop-shadow(0 0 5px var(--fragment-color)) brightness(1.7);opacity:1}}
@keyframes ds-sprite-spectrum{0%,100%{color:#50dcff}20%{color:#b39aff}40%{color:#74e5b1}60%{color:#ffc56d}80%{color:#f18bbd}}
@media(prefers-reduced-motion:reduce){.ds-traveler.ds-sprite-awake,.ds-sprite-awake .ds-fragment,.ds-sprite-awake .ds-sprite-charge{animation:none!important}.ds-sprite-awake .ds-sprite-charge{stroke-dasharray:none;opacity:.7}}

/* Door signals spiral through the branded lock during travel. */
.dds-world-entering .ds-door-signal .ds-fragment,.is-exiting .ds-door-signal .ds-fragment,.is-opening .ds-door-signal .ds-fragment{opacity:.85;filter:drop-shadow(0 0 3px var(--fragment-color))}
@keyframes ds-door-travel{
 0%{opacity:0;transform:translateX(-110px) rotate(-180deg) scale(.6)}
 40%{opacity:1;transform:translateX(0) rotate(0deg) scale(1.8)}
 65%{opacity:1;transform:translateX(0) rotate(150deg) scale(1.8)}
 100%{opacity:0;transform:translateX(110px) rotate(360deg) scale(.6)}
}

/* Anchor the Atlas brand to the true center, independently of its progress label. */
#darby-atlas .da-core.ds-evolving-core{width:112px;height:112px;border-radius:28px}
#darby-atlas .da-core.ds-evolving-core>.ds-logo{position:absolute;left:50%;top:50%;right:auto;bottom:auto;width:100px;height:82px;max-width:none;margin:0;transform:translate(-50%,-50%);object-fit:contain}
#darby-atlas .da-core.ds-evolving-core>small{position:absolute;left:50%;bottom:5px;width:100%;margin:0;transform:translateX(-50%);text-align:center;font-size:7px;line-height:1.4}
#darby-atlas .ds-core-part{transform:rotate(var(--fragment-angle)) translateX(63px) scale(.7)}
#darby-atlas .ds-core-part.is-earned{transform:rotate(var(--fragment-angle)) translateX(63px) scale(1)}
@media(max-width:767px){
 #darby-atlas .da-core.ds-evolving-core{width:80px;height:80px;border-radius:21px}
 #darby-atlas .da-core.ds-evolving-core>.ds-logo{width:70px;height:58px}
 #darby-atlas .da-core.ds-evolving-core>small{font-size:5px;bottom:4px}
 #darby-atlas .ds-core-part{transform:rotate(var(--fragment-angle)) translateX(46px) scale(.7)}
 #darby-atlas .ds-core-part.is-earned{transform:rotate(var(--fragment-angle)) translateX(46px) scale(1)}
}

/* A held breath, then one coherent release. All controls remain available. */
.ds-finale.is-revealing .ds-reveal-core{animation:ds-composed-awakening 5.2s ease-in-out both}
.ds-finale.is-revealing .ds-reveal-world{animation-delay:calc(1.4s + var(--world-delay))}
.ds-finale.is-revealing .ds-reveal-routes path.ds-network-spoke:not(.ds-network-flow){animation:ds-route-connect 1.8s calc(1.4s + var(--world-delay)) both,ds-connector-breathe 4.2s calc(3.2s + var(--world-delay)) ease-in-out infinite}
.ds-finale.is-revealing .ds-reveal-spark{animation-delay:1.4s}
.ds-finale.is-revealing .ds-ending{animation-delay:4.3s}
.ds-finale.is-revealing .ds-orbit-lines,
.ds-finale.is-revealing .ds-network-flow,
.ds-finale.is-revealing .ds-network-bus{animation:ds-composed-unveil 1.4s step-end both}
.ds-finale.is-revealing .ds-reveal-routes path.ds-network-flow{animation:ds-composed-unveil 1.4s step-end both,ds-network-current 3.6s calc(1.4s + var(--flow-delay)) linear infinite,ds-spectrum-shift 14s linear infinite}
.ds-finale.is-revealing .ds-cinematic:before{animation:ds-composed-unveil 1.4s step-end both,ds-network-halo 7s 1.4s ease-in-out infinite}
.ds-finale .ds-cinematic:after{content:'';position:absolute;left:50%;top:50%;width:140px;height:140px;border:1px solid #9eefff;border-radius:50%;opacity:0;pointer-events:none;transform:translate(-50%,-50%);box-shadow:0 0 24px #50dcff55,inset 0 0 18px #b39aff33}
.ds-finale.is-revealing .ds-cinematic:after{animation:ds-composed-release 2.8s 1.4s ease-out both}
@keyframes ds-composed-unveil{from{opacity:0}to{opacity:1}}
@keyframes ds-composed-awakening{
 0%{opacity:.8;filter:brightness(.7);transform:translate(-50%,-50%) scale(.94);box-shadow:0 0 8px #50dcff22}
 26%{opacity:1;filter:brightness(.9);transform:translate(-50%,-50%) scale(.91);box-shadow:0 0 14px #50dcff33}
 43%{filter:brightness(1.5);transform:translate(-50%,-50%) scale(1.08);box-shadow:0 0 100px #50dcff88}
 67%{filter:brightness(1.1);transform:translate(-50%,-50%) scale(1);box-shadow:0 0 65px #b39aff55}
 100%{filter:brightness(1);transform:translate(-50%,-50%) scale(1);box-shadow:0 0 40px #50dcff44}
}
@keyframes ds-composed-release{0%{opacity:0;transform:translate(-50%,-50%) scale(.75)}12%{opacity:.65}100%{opacity:0;transform:translate(-50%,-50%) scale(6)}}
.ds-gateway-arrival .da-map{animation:ds-composed-map-arrival 3.8s ease-out both}
.ds-gateway-arrival .da-core{animation:ds-composed-core-arrival 3.8s ease-out both}
@keyframes ds-composed-map-arrival{0%{opacity:.45;transform:scale(.97)}40%{opacity:.85}100%{opacity:1;transform:scale(1)}}
@keyframes ds-composed-core-arrival{0%{filter:brightness(1.5);box-shadow:0 0 65px #50dcff77}100%{filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){
 .ds-finale.is-revealing :is(.ds-reveal-core,.ds-reveal-world,.ds-reveal-spark,.ds-ending,.ds-orbit-lines,.ds-network-flow,.ds-network-bus),
 .ds-finale.is-revealing .ds-reveal-routes path,.ds-finale.is-revealing .ds-cinematic:before,
 .ds-gateway-arrival :is(.da-map,.da-core){animation:none!important}
 .ds-finale .ds-cinematic:after{display:none!important}
}

.ds-finale.is-revealing .ds-reveal-routes path.ds-network-bus{animation:ds-composed-unveil 1.4s step-end both,ds-network-current 28s 1.4s linear infinite}
.ds-finale.is-revealing .ds-reveal-core:before,.ds-finale.is-revealing .ds-reveal-core:after{animation-delay:1.4s}
@media(prefers-reduced-motion:reduce){.ds-finale.is-revealing .ds-reveal-routes path.ds-network-bus{animation:none!important}}

/* Stronger gravitational build and a single, sustained energy release. */
dialog.ds-finale{overflow-x:hidden}
.ds-finale.is-revealing .ds-cinematic{animation:ds-extreme-camera 6.4s cubic-bezier(.2,.7,.25,1) both}
.ds-finale.is-revealing .ds-reveal-core{animation:ds-extreme-core 6.4s ease-in-out both}
.ds-finale.is-revealing .ds-reveal-core:before{animation:ds-extreme-charge 2s ease-in both,ds-core-orbit 12s 2s linear infinite}
.ds-finale.is-revealing .ds-reveal-core:after{animation:ds-extreme-inner-wave 3.6s 2s ease-out both,ds-core-orbit 16s 2s linear infinite}
.ds-finale.is-revealing .ds-reveal-world{animation:ds-extreme-world 2.2s calc(2s + var(--world-delay)) cubic-bezier(.16,.8,.22,1) both}
.ds-finale.is-revealing .ds-reveal-routes path.ds-network-spoke:not(.ds-network-flow){animation:ds-route-connect 1.1s calc(2s + var(--world-delay)) both,ds-connector-breathe 3.2s calc(3.1s + var(--world-delay)) ease-in-out infinite}
.ds-finale.is-revealing .ds-reveal-routes path.ds-network-flow{stroke-width:4;animation:ds-composed-unveil 2s step-end both,ds-network-current 1.8s calc(2s + var(--flow-delay)) linear infinite,ds-spectrum-shift 12s linear infinite}
.ds-finale.is-revealing .ds-reveal-routes path.ds-network-bus{animation:ds-composed-unveil 2s step-end both,ds-network-current 15s 2s linear infinite}
.ds-finale.is-revealing .ds-orbit-lines{animation:ds-composed-unveil 2s step-end both}
.ds-finale.is-revealing .ds-orbit-lines ellipse{animation-duration:12s}
.ds-finale.is-revealing .ds-reveal-spark{animation-delay:2s}
.ds-finale.is-revealing .ds-ending{animation-delay:5s}
.ds-finale.is-revealing .ds-cinematic:before{animation:ds-composed-unveil 2s step-end both,ds-network-halo 5s 2s ease-in-out infinite}
.ds-finale.is-revealing .ds-cinematic:after{border-width:2px;box-shadow:0 0 45px #50dcff88,inset 0 0 35px #b39aff66,0 0 0 15px #50dcff12,0 0 0 34px #b39aff22;animation:ds-extreme-wave 3.8s 2s cubic-bezier(.12,.55,.2,1) both}
@keyframes ds-extreme-camera{0%{transform:scale(1.02)}30%{transform:scale(.94)}44%{transform:scale(1.08)}68%{transform:scale(.99)}100%{transform:scale(1)}}
@keyframes ds-extreme-core{
 0%{opacity:.8;filter:brightness(.75);transform:translate(-50%,-50%) scale(.96);box-shadow:0 0 20px #50dcff33}
 30%{opacity:1;filter:brightness(1.15);transform:translate(-50%,-50%) scale(.72);box-shadow:0 0 45px #50dcff66,inset 0 0 35px #b39aff55}
 43%{filter:brightness(1.65);transform:translate(-50%,-50%) scale(1.24);box-shadow:0 0 130px #50dcff99,0 0 220px #b39aff55}
 65%{filter:brightness(1.2);transform:translate(-50%,-50%) scale(1.04);box-shadow:0 0 80px #50dcff66}
 100%{filter:brightness(1);transform:translate(-50%,-50%) scale(1);box-shadow:0 0 48px #50dcff55}
}
@keyframes ds-extreme-charge{from{scale:1.8;opacity:0}40%{opacity:.65}to{scale:.82;opacity:1}}
@keyframes ds-extreme-inner-wave{0%{scale:.7;opacity:0}12%{opacity:.85}75%{scale:3;opacity:.12}100%{scale:1;opacity:.35}}
@keyframes ds-extreme-wave{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}8%{opacity:.8}100%{opacity:0;transform:translate(-50%,-50%) scale(9)}}
@keyframes ds-extreme-world{0%{opacity:0;filter:blur(9px);transform:scale(.55)}55%{opacity:1;filter:blur(0);transform:scale(1.14)}100%{opacity:1;filter:blur(0);transform:scale(1)}}
@media(max-width:767px){.ds-finale.is-revealing .ds-reveal-routes path.ds-network-flow{stroke-width:3}}
@media(prefers-reduced-motion:reduce){
 .ds-finale.is-revealing .ds-cinematic,.ds-finale.is-revealing .ds-reveal-core,
 .ds-finale.is-revealing .ds-reveal-core:before,.ds-finale.is-revealing .ds-reveal-core:after,
 .ds-finale.is-revealing .ds-reveal-world,.ds-finale.is-revealing .ds-orbit-lines,
 .ds-finale.is-revealing .ds-reveal-routes path,.ds-finale.is-revealing .ds-reveal-spark,
 .ds-finale.is-revealing .ds-ending,.ds-finale.is-revealing .ds-cinematic:before{animation:none!important}
 .ds-finale.is-revealing .ds-cinematic:after{display:none!important}
}

/* Keep expanding energy inside the cinematic so it cannot shift the page. */
.ds-finale .ds-cinematic{contain:paint}

/* The awakening spreads across the viewport, then keeps a slower heartbeat. */
.ds-finale .ds-cinematic{contain:none}
.ds-finale.is-revealing .ds-cinematic:after{display:none!important}
.ds-finale:after{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;background-image:radial-gradient(ellipse at center,transparent 43%,#50dcff08 46%,#93eaff88 48%,#b39aff44 49%,transparent 52%,transparent 60%,#b39aff33 62%,transparent 64%);background-position:50% 38%;background-repeat:no-repeat;background-size:6% 6%}
.ds-finale.is-revealing:after{animation:ds-screen-release 4.5s 2s cubic-bezier(.1,.5,.2,1) both,ds-screen-heartbeat 10s 6.5s ease-out infinite}
@keyframes ds-screen-release{0%{opacity:0;background-size:6% 6%}12%{opacity:.8}70%{opacity:.4}100%{opacity:0;background-size:330% 330%}}
@keyframes ds-screen-heartbeat{0%{opacity:0;background-size:10% 10%}12%{opacity:.28}75%{opacity:.09}100%{opacity:0;background-size:300% 300%}}
@media(prefers-reduced-motion:reduce){.ds-finale:after{display:none!important;animation:none!important}}

/* Uneven arrivals and randomized origins keep the universe alive. */
.ds-finale.is-revealing:after{animation:ds-screen-release 4.5s 2s cubic-bezier(.1,.5,.2,1) both,ds-screen-wandering 12.7s 6.5s ease-out infinite}
@keyframes ds-screen-wandering{
 0%{opacity:0;background-size:8% 8%;background-position:var(--wave-x-1,50%) var(--wave-y-1,38%)}
 4%{opacity:var(--wave-strength-1,.3)}24%{opacity:0;background-size:310% 310%;background-position:var(--wave-x-1,50%) var(--wave-y-1,38%)}
 28%{opacity:0;background-size:7% 7%;background-position:var(--wave-x-2,48%) var(--wave-y-2,35%)}
 33%{opacity:var(--wave-strength-2,.24)}62%{opacity:0;background-size:340% 340%;background-position:var(--wave-x-2,48%) var(--wave-y-2,35%)}
 69%{opacity:0;background-size:10% 10%;background-position:var(--wave-x-3,53%) var(--wave-y-3,41%)}
 75%{opacity:var(--wave-strength-3,.35)}100%{opacity:0;background-size:320% 320%;background-position:var(--wave-x-3,53%) var(--wave-y-3,41%)}
}
