/* Dreamlike game start screen: a compact Dragon Ball inspired world gate. */
body.launch-locked{overflow:hidden}
.launch-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:#02030b;color:#f1f5ff;opacity:1;transition:opacity .95s cubic-bezier(.2,.72,.2,1);}
.launch-screen[hidden]{display:none}.launch-screen.is-exiting{opacity:0;pointer-events:none}.launch-screen.is-exiting .launch-center{opacity:0;transform:translateY(-22px) scale(1.06)}.launch-screen.is-exiting .launch-orbit-stage{opacity:0;transform:scale(1.25) rotate(8deg)}.launch-screen.is-exiting .launch-topline,.launch-screen.is-exiting .launch-bottomline{opacity:0}
.launch-scenes,.launch-scene,.launch-scenes:after{position:absolute;inset:0}.launch-scenes{z-index:-5;overflow:hidden;background:#02030b}.launch-scene{display:block;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;filter:saturate(1.18) contrast(1.12) brightness(.66);transform:scale(1.08);animation:launch-scene-cycle 21s ease-in-out infinite}.launch-scenes:after{content:"";z-index:1;background:radial-gradient(circle at 50% 48%,rgba(4,9,29,.08),rgba(2,3,11,.7) 74%),linear-gradient(90deg,rgba(2,3,11,.8),rgba(2,3,11,.2) 46%,rgba(2,3,11,.72))}.launch-scene-a{opacity:1}.launch-scene-b{animation-delay:7s}.launch-scene-c{animation-delay:14s}
@keyframes launch-scene-cycle{0%,28%{opacity:0;transform:scale(1.08)}8%,22%{opacity:.82}34%,100%{opacity:0;transform:scale(1.14) translate3d(-1.2%,1%,0)}}
.launch-starfield{position:absolute;inset:-10%;z-index:-2;opacity:.78;background-image:radial-gradient(circle at 12% 18%,rgba(130,237,255,.84) 0 1px,transparent 2px),radial-gradient(circle at 74% 24%,rgba(255,215,123,.8) 0 1px,transparent 2px),radial-gradient(circle at 47% 78%,rgba(195,143,255,.66) 0 1px,transparent 2px),radial-gradient(circle at 88% 66%,rgba(255,114,94,.6) 0 1px,transparent 2px),radial-gradient(circle at 27% 84%,rgba(87,232,255,.6) 0 1px,transparent 2px),radial-gradient(circle at 60% 42%,rgba(255,255,255,.72) 0 1px,transparent 2px);background-size:173px 151px,211px 197px,239px 221px,181px 193px,257px 233px,137px 171px;animation:launch-stars-drift 24s linear infinite}.launch-starfield:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 25%,rgba(2,3,11,.64) 85%)}
@keyframes launch-stars-drift{to{transform:translate3d(-36px,24px,0) scale(1.04)}}
.launch-scanline{position:absolute;inset:0;z-index:5;pointer-events:none;opacity:.11;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.12) 4px,transparent 5px);mix-blend-mode:screen}.launch-screen:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 45%,rgba(87,232,255,.13),transparent 25%),radial-gradient(circle at 56% 45%,rgba(255,205,98,.1),transparent 39%);pointer-events:none}.launch-screen:after{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;box-shadow:inset 0 0 160px rgba(0,0,0,.8),inset 0 -80px 130px rgba(0,0,0,.4)}
.launch-topline,.launch-bottomline{position:absolute;left:clamp(20px,5vw,76px);right:clamp(20px,5vw,76px);z-index:8;display:flex;justify-content:space-between;gap:20px;color:rgba(225,237,255,.74);font:11px/1.4 'DM Mono',monospace;letter-spacing:.16em;text-transform:uppercase;transition:opacity .6s ease}.launch-topline{top:clamp(22px,5vw,52px)}.launch-bottomline{bottom:clamp(22px,5vw,48px);color:rgba(166,188,224,.7);letter-spacing:.1em}.launch-bottomline i{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:#64f0b0;box-shadow:0 0 14px rgba(100,240,176,.9);animation:launch-status-pulse 2.4s ease-in-out infinite}
@keyframes launch-status-pulse{0%,100%{opacity:.52;transform:scale(.8)}50%{opacity:1;transform:scale(1.18)}}
.launch-orbit-stage{position:absolute;z-index:2;width:min(63vw,620px);aspect-ratio:1;transition:opacity .9s ease,transform 1.1s cubic-bezier(.18,.8,.2,1);transform:scale(1);filter:drop-shadow(0 0 38px rgba(64,157,255,.16))}.launch-orbit-stage:before,.launch-orbit-stage:after{content:"";position:absolute;border:1px solid rgba(94,206,255,.23);border-radius:50%;inset:11%;transform:rotate(24deg) scaleX(.72);box-shadow:0 0 35px rgba(87,232,255,.12);animation:launch-ring-breathe 5.8s ease-in-out infinite}.launch-orbit-stage:after{inset:20%;transform:rotate(-37deg) scaleX(.58);border-color:rgba(255,207,98,.22);animation-delay:-2s}
.launch-orbit-halo{position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,rgba(255,203,98,.18),rgba(87,232,255,.12) 29%,rgba(86,48,190,.08) 53%,transparent 72%);filter:blur(16px);animation:launch-halo-breathe 4.8s ease-in-out infinite}.launch-orbit-ring{position:absolute;inset:8%;border:1px solid rgba(255,207,98,.34);border-radius:50%;box-shadow:0 0 32px rgba(255,196,84,.18),inset 0 0 34px rgba(87,232,255,.08);animation:launch-orbit-spin 28s linear infinite}.launch-orbit-ring:before,.launch-orbit-ring:after{content:"";position:absolute;inset:15%;border:1px dashed rgba(87,232,255,.26);border-radius:50%;transform:rotate(-22deg) scaleX(.68);animation:launch-ring-spin-reverse 19s linear infinite}.launch-orbit-ring:after{inset:29%;border-color:rgba(193,140,255,.26);transform:rotate(37deg) scaleY(.68);animation-duration:15s}
@keyframes launch-orbit-spin{to{transform:rotate(360deg)}}@keyframes launch-ring-spin-reverse{to{transform:rotate(-360deg)}}@keyframes launch-ring-breathe{0%,100%{opacity:.45;transform:rotate(24deg) scaleX(.72)}50%{opacity:.9;transform:rotate(31deg) scaleX(.76)}}@keyframes launch-halo-breathe{0%,100%{opacity:.52;transform:scale(.86)}50%{opacity:1;transform:scale(1.12)}}
.launch-ball{position:absolute;display:block;width:clamp(45px,6vw,82px);aspect-ratio:1;border-radius:50%;padding:2px;background:radial-gradient(circle at 28% 22%,rgba(255,249,182,.96),rgba(255,189,62,.75) 20%,rgba(238,99,44,.38) 55%,rgba(117,23,43,.08) 77%,transparent 79%);box-shadow:0 0 18px rgba(255,172,53,.68),0 0 42px rgba(255,115,44,.22);transform:translate(-50%,-50%);animation:launch-ball-pop .8s both,launch-ball-float 4.2s ease-in-out infinite}.launch-ball img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.38));animation:launch-ball-glow 3.8s ease-in-out infinite}.launch-ball-1{left:50%;top:0;animation-delay:.18s,-.6s}.launch-ball-2{left:88%;top:18%;animation-delay:.3s,-1.1s}.launch-ball-3{left:96%;top:66%;animation-delay:.42s,-2.4s}.launch-ball-4{left:67%;top:100%;animation-delay:.54s,-.9s}.launch-ball-5{left:32%;top:100%;animation-delay:.66s,-2.9s}.launch-ball-6{left:4%;top:66%;animation-delay:.78s,-1.7s}.launch-ball-7{left:12%;top:18%;animation-delay:.9s,-3.3s}
@keyframes launch-ball-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}75%{opacity:1;transform:translate(-50%,-50%) scale(1.1)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes launch-ball-float{0%,100%{margin-top:0}50%{margin-top:-5px}}@keyframes launch-ball-glow{0%,100%{filter:drop-shadow(0 8px 10px rgba(0,0,0,.38)) drop-shadow(0 0 6px rgba(255,176,50,.42))}50%{filter:drop-shadow(0 8px 10px rgba(0,0,0,.38)) drop-shadow(0 0 18px rgba(255,220,122,.9))}}
.launch-center{position:relative;z-index:4;width:min(650px,82vw);display:flex;align-items:center;flex-direction:column;text-align:center;transition:opacity .7s ease,transform 1s cubic-bezier(.18,.8,.2,1);text-shadow:0 8px 28px rgba(0,0,0,.62)}.launch-kicker{margin:0 0 16px;color:#9fdcff;font:11px/1.4 'DM Mono',monospace;letter-spacing:.28em}.launch-title{display:flex;align-items:center;gap:.02em;margin:0;padding:.06em .14em .14em;font-family:'STKaiti','KaiTi','FZKai-Z03','Microsoft YaHei',serif;font-size:clamp(58px,9vw,128px);font-weight:900;letter-spacing:-.14em;line-height:.92;filter:drop-shadow(0 14px 26px rgba(0,0,0,.4))}.launch-title span,.launch-title strong{display:inline-block;opacity:0;animation:launch-letter-in .9s cubic-bezier(.18,.84,.2,1) forwards}.launch-title span{color:#bceeff;text-shadow:0 0 28px rgba(87,232,255,.75)}.launch-title strong{color:#ffda70;text-shadow:0 0 30px rgba(255,181,62,.78)}.launch-title span:nth-child(1){animation-delay:.38s}.launch-title span:nth-child(2){animation-delay:.54s}.launch-title strong:nth-child(3){animation-delay:.7s}.launch-title strong:nth-child(4){animation-delay:.86s}
@keyframes launch-letter-in{0%{opacity:0;transform:translateY(24px) scale(.76);filter:blur(12px)}60%{opacity:1;filter:blur(1px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
.launch-subtitle{margin:17px 0 27px;color:rgba(223,235,255,.8);font-size:16px;letter-spacing:.2em}.launch-start{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:28px;min-width:220px;padding:15px 19px 15px 24px;border:1px solid rgba(255,214,112,.9);border-radius:3px;background:linear-gradient(105deg,rgba(26,55,111,.92),rgba(130,67,50,.84));color:#fff2be;box-shadow:0 0 0 1px rgba(87,232,255,.18),0 0 32px rgba(255,189,72,.2),inset 0 1px 0 rgba(255,255,255,.16);font-size:15px;font-weight:800;letter-spacing:.12em;cursor:pointer;opacity:0;animation:launch-button-in .8s 1.45s cubic-bezier(.18,.8,.2,1) forwards;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.launch-start:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.28) 49%,transparent 78%);transform:translateX(-120%);animation:launch-button-shine 3.4s 2.5s ease-in-out infinite}.launch-start:hover{transform:translateY(-3px) scale(1.02);border-color:#fff2b0;box-shadow:0 0 0 1px rgba(87,232,255,.34),0 0 42px rgba(255,189,72,.38),inset 0 1px 0 rgba(255,255,255,.24)}.launch-start span,.launch-start b{position:relative;z-index:1}.launch-start b{font-size:20px;font-weight:400;color:#8ff0ff}.launch-skip{margin-top:16px;padding:7px 10px;color:rgba(195,211,239,.7);font:11px 'DM Mono',monospace;letter-spacing:.1em;cursor:pointer;opacity:0;animation:launch-button-in .7s 1.7s ease-out forwards;transition:color .2s ease}.launch-skip:hover{color:#fff}.launch-progress{position:absolute;bottom:15px;left:50%;z-index:8;width:min(220px,36vw);height:1px;background:rgba(163,189,222,.2);transform:translateX(-50%);overflow:hidden}.launch-progress i{display:block;width:34%;height:100%;background:linear-gradient(90deg,transparent,#8feeff,#ffd36c,transparent);animation:launch-progress 4.2s ease-in-out infinite}
@keyframes launch-button-in{0%{opacity:0;transform:translateY(12px)}100%{opacity:1;transform:translateY(0)}}@keyframes launch-button-shine{0%,40%{transform:translateX(-120%)}65%,100%{transform:translateX(120%)}}@keyframes launch-progress{0%{transform:translateX(-150%)}70%,100%{transform:translateX(460%)}}
@media(max-width:720px){.launch-topline,.launch-bottomline{font-size:9px;letter-spacing:.08em}.launch-topline span:last-child,.launch-bottomline span:last-child{display:none}.launch-orbit-stage{width:88vw;max-width:510px}.launch-center{width:92vw}.launch-kicker{font-size:9px;letter-spacing:.16em}.launch-title{font-size:clamp(58px,18vw,92px)}.launch-subtitle{font-size:12px;letter-spacing:.11em}.launch-start{min-width:196px;padding:14px 16px 14px 20px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.launch-scene,.launch-starfield,.launch-orbit-ring,.launch-orbit-ring:before,.launch-orbit-ring:after,.launch-orbit-stage:before,.launch-orbit-stage:after,.launch-orbit-halo,.launch-ball,.launch-ball img,.launch-title span,.launch-title strong,.launch-start,.launch-skip,.launch-progress i,.launch-bottomline i{animation-duration:.01ms!important;animation-iteration-count:1!important}.launch-start,.launch-skip{opacity:1}.launch-title span,.launch-title strong{opacity:1;filter:none;transform:none}}
/* 3D star gate: procedural scene replaces the old flat image carousel. */
.launch-cosmos{position:absolute;inset:0;z-index:-6;overflow:hidden;perspective:1200px;transform-style:preserve-3d;background:radial-gradient(ellipse at 58% 48%,rgba(22,42,103,.7) 0%,rgba(8,13,39,.94) 38%,#01030b 78%)}
#launch-cosmos-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:.92;mix-blend-mode:screen}
.launch-nebula{position:absolute;border-radius:50%;pointer-events:none;filter:blur(20px);mix-blend-mode:screen;opacity:.46;transform:translate3d(0,0,-180px);animation:launch-nebula-drift 18s ease-in-out infinite alternate}
.launch-nebula-a{width:70vw;height:46vw;left:-18vw;top:24%;background:radial-gradient(ellipse,rgba(35,116,255,.3),rgba(47,38,171,.14) 42%,transparent 72%);transform:rotate(-18deg) translateZ(-160px)}
.launch-nebula-b{width:52vw;height:58vw;right:-15vw;top:-18%;background:radial-gradient(ellipse,rgba(255,132,45,.22),rgba(157,31,106,.13) 45%,transparent 72%);transform:rotate(24deg) translateZ(-260px);animation-delay:-8s}
@keyframes launch-nebula-drift{0%{translate:0 0;opacity:.3}100%{translate:3vw -2vh;opacity:.58}}
.launch-world{position:absolute;left:50%;top:53%;width:min(76vw,980px);aspect-ratio:1;transform:translate3d(-50%,-50%,0) rotateX(var(--cam-y,0deg)) rotateY(var(--cam-x,0deg));transform-style:preserve-3d;transition:transform .18s ease-out;pointer-events:none}
.launch-planet{position:absolute;left:50%;top:50%;width:min(39vw,510px);aspect-ratio:1;border-radius:50%;transform:translate3d(-50%,-50%,-150px) rotateY(-17deg) rotateX(8deg);transform-style:preserve-3d;background:radial-gradient(circle at 30% 23%,rgba(255,230,164,.98) 0 2%,rgba(255,176,66,.84) 9%,rgba(176,48,42,.92) 30%,rgba(61,16,53,.98) 67%,#090618 100%);box-shadow:inset -34px -35px 70px rgba(0,0,0,.82),inset 18px 8px 34px rgba(255,229,143,.44),0 0 36px rgba(255,142,54,.5),0 0 140px rgba(117,51,220,.35);overflow:hidden}
.launch-planet:before{content:"";position:absolute;inset:-2%;border-radius:50%;background:radial-gradient(circle at 30% 19%,rgba(255,255,225,.38),transparent 7%),radial-gradient(ellipse at 56% 35%,rgba(255,218,115,.28),transparent 26%),radial-gradient(ellipse at 38% 70%,rgba(56,150,255,.22),transparent 34%);mix-blend-mode:screen;transform:translateZ(18px)}
.launch-planet:after{content:"";position:absolute;inset:-8%;border-radius:50%;background:radial-gradient(circle,transparent 56%,rgba(255,171,80,.24) 66%,rgba(93,207,255,.14) 72%,transparent 76%);filter:blur(7px);transform:translateZ(28px);animation:launch-atmo-breathe 4.6s ease-in-out infinite}
.launch-planet-surface{position:absolute;inset:0;border-radius:50%;background:repeating-linear-gradient(168deg,transparent 0 17px,rgba(255,220,114,.08) 18px 20px,transparent 21px 35px),repeating-linear-gradient(17deg,transparent 0 29px,rgba(39,158,220,.08) 30px 33px,transparent 34px 54px);opacity:.65;mix-blend-mode:screen;transform:translateZ(22px) rotate(14deg) scale(1.2);filter:blur(.2px)}
.launch-planet-light{position:absolute;inset:-10%;border-radius:50%;background:linear-gradient(120deg,rgba(255,255,255,.34),transparent 18% 62%,rgba(0,0,0,.54) 80%);transform:translateZ(32px) rotate(-15deg);mix-blend-mode:screen}
.launch-planet-grid{position:absolute;inset:-13%;border:1px solid rgba(255,221,131,.2);border-radius:50%;background:repeating-radial-gradient(ellipse at 50% 50%,transparent 0 29px,rgba(255,230,159,.06) 30px 31px,transparent 32px 56px);transform:translateZ(38px) rotateY(70deg) rotateX(4deg) scaleX(.46);opacity:.76}
.launch-planet-clouds{position:absolute;inset:8%;border-radius:50%;background:conic-gradient(from 20deg,transparent,rgba(255,179,82,.13),transparent 21%,rgba(62,173,255,.12) 31%,transparent 49%,rgba(255,231,174,.1) 62%,transparent 82%);filter:blur(8px);transform:translateZ(42px) rotate(-12deg);animation:launch-cloud-spin 20s linear infinite}
@keyframes launch-atmo-breathe{0%,100%{opacity:.45;transform:translateZ(28px) scale(.97)}50%{opacity:.92;transform:translateZ(28px) scale(1.04)}}
@keyframes launch-cloud-spin{to{transform:translateZ(42px) rotate(348deg)}}
.launch-gate-ring{position:absolute;left:50%;top:50%;border:1px solid;border-radius:50%;transform-style:preserve-3d;filter:drop-shadow(0 0 12px currentColor);opacity:.72}
.launch-gate-ring-a{width:100%;height:34%;color:rgba(255,205,102,.62);transform:translate3d(-50%,-50%,85px) rotateX(67deg) rotateZ(12deg);animation:launch-gate-a 12s linear infinite}
.launch-gate-ring-b{width:75%;height:56%;color:rgba(91,222,255,.52);transform:translate3d(-50%,-50%,10px) rotateY(61deg) rotateZ(-20deg);animation:launch-gate-b 17s linear infinite reverse}
.launch-gate-ring-c{width:116%;height:47%;color:rgba(188,135,255,.38);transform:translate3d(-50%,-50%,-70px) rotateX(78deg) rotateZ(-26deg);border-style:dashed;animation:launch-gate-c 25s linear infinite}
.launch-gate-ring:before,.launch-gate-ring:after{content:"";position:absolute;inset:8%;border-radius:50%;border:1px solid currentColor;opacity:.28}
.launch-gate-ring:after{inset:19%;border-style:dotted;opacity:.34}
@keyframes launch-gate-a{to{transform:translate3d(-50%,-50%,85px) rotateX(67deg) rotateZ(372deg)}}
@keyframes launch-gate-b{to{transform:translate3d(-50%,-50%,10px) rotateY(61deg) rotateZ(-380deg)}}
@keyframes launch-gate-c{to{transform:translate3d(-50%,-50%,-70px) rotateX(78deg) rotateZ(334deg)}}
.launch-dragon-constellation{position:absolute;left:14%;top:35%;width:72%;height:26%;border-top:2px solid rgba(128,235,255,.38);border-radius:52% 48% 50% 45%;transform:translate3d(0,0,150px) rotateZ(-12deg) rotateY(-18deg);filter:drop-shadow(0 0 12px rgba(100,224,255,.8));opacity:.6;animation:launch-dragon-glide 5.4s ease-in-out infinite}
.launch-dragon-constellation:before{content:"";position:absolute;right:-2%;top:-19px;width:28px;height:28px;border:2px solid rgba(255,210,108,.78);border-radius:50% 55% 45% 50%;box-shadow:0 0 16px rgba(255,197,84,.9),12px -10px 0 -9px rgba(255,218,123,.86),18px -4px 0 -10px rgba(255,218,123,.86)}
.launch-dragon-constellation:after{content:"";position:absolute;left:-2%;top:0;width:64%;height:100%;border-bottom:1px solid rgba(128,235,255,.35);border-radius:50%;transform:rotate(7deg)}
.launch-dragon-constellation span,.launch-dragon-constellation i,.launch-dragon-constellation b{position:absolute;width:7px;height:7px;border-radius:50%;background:#b7f8ff;box-shadow:0 0 14px 4px rgba(129,231,255,.8)}
.launch-dragon-constellation span{left:17%;top:-6px}.launch-dragon-constellation i{left:48%;top:17px}.launch-dragon-constellation b{left:75%;top:-13px;background:#ffd983;box-shadow:0 0 14px 4px rgba(255,205,105,.8)}
@keyframes launch-dragon-glide{0%,100%{transform:translate3d(0,0,150px) rotateZ(-12deg) rotateY(-18deg);opacity:.35}50%{transform:translate3d(12px,-8px,190px) rotateZ(-8deg) rotateY(-22deg);opacity:.8}}
.launch-energy-pulse{position:absolute;left:50%;top:50%;border-radius:50%;border:1px solid rgba(255,208,105,.72);transform-style:preserve-3d;pointer-events:none}
.launch-energy-pulse-a{width:28%;height:14%;transform:translate3d(-50%,-50%,130px) rotateX(75deg);animation:launch-pulse 3.6s ease-out infinite}
.launch-energy-pulse-b{width:18%;height:9%;transform:translate3d(-50%,-50%,180px) rotateX(75deg);animation:launch-pulse 3.6s 1.8s ease-out infinite}
@keyframes launch-pulse{0%{opacity:0;scale:.45}22%{opacity:.9}100%{opacity:0;scale:2.8}}
.launch-orbit-stage{left:50%;top:50%;width:min(74vw,760px);transform:translate3d(-50%,-50%,90px) rotateX(8deg) rotateY(-9deg);transform-style:preserve-3d;perspective:1000px;filter:drop-shadow(0 0 38px rgba(64,157,255,.22));transition:opacity .9s ease,transform 1.1s cubic-bezier(.18,.8,.2,1)}
.launch-orbit-stage:before{transform:rotateX(70deg) rotateY(-12deg) scaleX(.88);border-color:rgba(95,227,255,.3)}.launch-orbit-stage:after{transform:rotateY(67deg) rotateZ(18deg) scaleX(.9);border-color:rgba(255,207,98,.26)}
.launch-orbit-ring{transform:rotateX(68deg) rotateY(-14deg) rotateZ(0);animation:launch-orbit-3d-spin 28s linear infinite}
.launch-orbit-ring:before{transform:rotateY(58deg) rotateZ(-22deg) scaleX(.68)}.launch-orbit-ring:after{transform:rotateX(78deg) rotateZ(37deg) scaleY(.68)}
.launch-ball{transform:translate3d(-50%,-50%,var(--ball-z,0px));transform-style:preserve-3d}.launch-ball-1{--ball-z:34px}.launch-ball-2{--ball-z:-12px}.launch-ball-3{--ball-z:26px}.launch-ball-4{--ball-z:-34px}.launch-ball-5{--ball-z:18px}.launch-ball-6{--ball-z:-24px}.launch-ball-7{--ball-z:10px}
@keyframes launch-orbit-3d-spin{to{transform:rotateX(68deg) rotateY(-14deg) rotateZ(360deg)}}
.launch-screen.is-exiting .launch-cosmos{opacity:0;transform:scale(1.16) translateZ(260px);transition:opacity .72s ease,transform 1s cubic-bezier(.18,.8,.2,1)}.launch-screen.is-exiting .launch-world{transform:translate3d(-50%,-50%,360px) rotateX(-5deg) rotateY(18deg) scale(1.1)}
@media(max-width:720px){.launch-world{width:118vw;top:50%}.launch-planet{width:min(62vw,360px)}.launch-orbit-stage{width:106vw;transform:translate3d(-50%,-50%,70px) rotateX(7deg) rotateY(-8deg)}.launch-dragon-constellation{opacity:.4}.launch-nebula{filter:blur(14px)}}
@media(prefers-reduced-motion:reduce){.launch-nebula,.launch-planet:after,.launch-planet-clouds,.launch-gate-ring,.launch-dragon-constellation,.launch-energy-pulse,.launch-orbit-ring{animation-duration:.01ms!important;animation-iteration-count:1!important}.launch-world{transition:none}}.launch-cosmos:after{content:"";position:absolute;inset:-12%;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(255,239,184,.96) 0%,rgba(255,176,68,.38) 10%,transparent 38%);opacity:0;transform:scale(.36);mix-blend-mode:screen}
.launch-screen.launch-flash .launch-cosmos:after{opacity:.92;animation:launch-entry-flash .82s cubic-bezier(.2,.8,.2,1) both}
@keyframes launch-entry-flash{0%{opacity:0;transform:scale(.28)}22%{opacity:.94}100%{opacity:0;transform:scale(1.35)}}.launch-ball{animation:launch-ball-pop-3d .8s both,launch-ball-float 4.2s ease-in-out infinite}
@keyframes launch-ball-pop-3d{0%{opacity:0;transform:translate3d(-50%,-50%,var(--ball-z,0px)) scale(.3)}75%{opacity:1;transform:translate3d(-50%,-50%,var(--ball-z,0px)) scale(1.1)}100%{opacity:1;transform:translate3d(-50%,-50%,var(--ball-z,0px)) scale(1)}}
/* Dragon Balls in the gate are volumetric CSS spheres, not image planes. */
.launch-ball{padding:0;background:none;box-shadow:none;overflow:visible;isolation:isolate}
.launch-ball-sphere{position:absolute;inset:0;display:block;border-radius:50%;transform:translateZ(2px);background:radial-gradient(circle at 29% 22%,rgba(255,255,221,.96) 0 3%,rgba(255,226,133,.98) 10%,rgba(255,172,48,.98) 25%,transparent 38%),radial-gradient(circle at 42% 47%,#f39827 0%,#ef701d 40%,#c83b1d 68%,#681320 100%);box-shadow:inset 10px 8px 10px rgba(255,255,221,.45),inset -13px -15px 19px rgba(54,8,23,.74),inset -2px -2px 4px rgba(255,85,24,.72),0 0 10px rgba(255,143,39,.9),0 0 26px rgba(255,113,36,.4);transform-style:preserve-3d}
.launch-ball-sphere:before{content:"";position:absolute;inset:-7%;border-radius:50%;background:radial-gradient(ellipse at 27% 21%,rgba(255,255,255,.68),transparent 14%),radial-gradient(ellipse at 76% 77%,rgba(74,7,35,.55),transparent 42%);filter:blur(1px);transform:translateZ(8px);pointer-events:none}
.launch-ball-sphere:after{content:"";position:absolute;inset:-3%;border-radius:50%;background:conic-gradient(from 220deg,transparent 0 28%,rgba(255,238,171,.22) 34%,transparent 47% 72%,rgba(71,8,31,.42) 84%,transparent 92%);mix-blend-mode:screen;transform:translateZ(11px) rotate(-18deg);pointer-events:none}
.launch-ball-stars{position:absolute;inset:0;z-index:3;display:block;transform:translateZ(14px);pointer-events:none}
.launch-ball-stars i{position:absolute;display:grid;place-items:center;width:22%;height:22%;color:#bc2522;font:900 clamp(9px,1.1vw,16px)/1 Georgia,serif;font-style:normal;text-shadow:0 1px 1px rgba(255,201,75,.52),0 0 4px rgba(107,9,16,.85);filter:drop-shadow(0 1px 1px rgba(255,231,134,.32))}
.launch-ball-stars .s-a{left:23%;top:23%}.launch-ball-stars .s-b{left:58%;top:58%}.launch-ball-stars .s-c{left:40%;top:40%}.launch-ball-stars .s-d{left:59%;top:22%}.launch-ball-stars .s-e{left:22%;top:59%}.launch-ball-stars .s-f{left:41%;top:20%}.launch-ball-stars .s-g{left:41%;top:61%}
.launch-ball-1 .launch-ball-sphere{filter:saturate(1.05)}.launch-ball-2 .launch-ball-sphere{filter:hue-rotate(-2deg) saturate(1.04)}.launch-ball-3 .launch-ball-sphere{filter:hue-rotate(2deg) saturate(1.08)}.launch-ball-4 .launch-ball-sphere{filter:saturate(1.12)}.launch-ball-5 .launch-ball-sphere{filter:hue-rotate(-3deg) saturate(1.06)}.launch-ball-6 .launch-ball-sphere{filter:hue-rotate(4deg) saturate(1.06)}.launch-ball-7 .launch-ball-sphere{filter:saturate(1.1)}
@media(prefers-reduced-motion:reduce){.launch-ball{animation-duration:.01ms!important;animation-iteration-count:1!important}}
/* Canvas-rendered Dragon Balls sit above the orbit lines; the old flat DOM planes are disabled. */
.launch-cosmos{z-index:3}
#launch-cosmos-canvas{z-index:3}
.launch-orbit-stage{z-index:2}
.launch-orbit-stage .launch-ball{display:none}.launch-screen > #launch-cosmos-canvas{position:absolute;inset:0;z-index:3!important;pointer-events:none}
/* Rebuilt Dragon Ball layer: opaque SVG spheres always render above the star trails. */
.launch-balls-layer{position:absolute;inset:0;z-index:4!important;pointer-events:none;overflow:hidden}
.launch-balls-svg{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;shape-rendering:geometricPrecision}
.launch-svg-ball{vector-effect:non-scaling-stroke;will-change:transform}/* Volumetric rotation treatment for the opaque SVG Dragon Balls. */
.launch-balls-layer,.launch-balls-svg{mix-blend-mode:normal}
.svg-ball-spin{transform-origin:0 0}
.svg-ball-highlight{pointer-events:none}
/* Keep the main portal wordmark visible after its entrance reveal hands off to the living motion. */
.dragon-title.logo-wordmark .wordmark-char.is-living{opacity:1;filter:blur(0);clip-path:inset(0)}
