.workspace-launch{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;border:1px solid #785898;border-radius:8px;background:linear-gradient(110deg,#362a44,#233c46);color:#d7c4ea;font:600 12px/1.4 system-ui,"Microsoft YaHei",sans-serif;text-decoration:none;white-space:nowrap;transition:background-color .18s,border-color .18s,box-shadow .18s}.workspace-launch svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.workspace-launch:hover{border-color:#a381ba;box-shadow:0 0 18px #8e61c029}.workspace-launch:focus-visible{outline:2px solid #62dbe1;outline-offset:3px}
/* The transition is a full-viewport scene, with no modal card or window chrome. */
#workspace-switch-screen[hidden],#workspace-switch-screen [hidden]{display:none!important}#workspace-switch-screen{position:fixed;inset:0;z-index:10000;display:block;background:#080f1b;color:#e8eff8;font-family:system-ui,"Microsoft YaHei",sans-serif;overflow:hidden;animation:scene-enter 600ms ease;box-sizing:border-box}.switch-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 15% 18%,#60408c45,transparent 48%),radial-gradient(ellipse at 86% 73%,#235e7145,transparent 48%),linear-gradient(150deg,#111428,#080f1b 48%,#0c1e2b)}.switch-atmosphere:before{content:"";position:absolute;inset:0;background-image:radial-gradient(circle at 13% 28%,#bb9cec 1px,transparent 2px),radial-gradient(circle at 78% 16%,#67d7dc 1px,transparent 2px),radial-gradient(circle at 88% 60%,#95b9dc 1px,transparent 2px),radial-gradient(circle at 23% 70%,#6fc3d1 1px,transparent 2px);background-size:390px 290px;opacity:.25}.switch-horizon{position:absolute;left:-40%;right:-40%;bottom:-42%;height:85%;background-image:linear-gradient(#75bdd619 1px,transparent 1px),linear-gradient(90deg,#b793e619 1px,transparent 1px);background-size:80px 80px;transform:perspective(700px) rotateX(58deg);transform-origin:center top;mask-image:linear-gradient(transparent,black 35%,transparent 95%);animation:horizon-drift 14s linear infinite}.switch-light{position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(transparent,#ad84e94d,transparent);opacity:.4}.switch-light.left{left:18%}.switch-light.right{right:18%;background:linear-gradient(transparent,#61d5df4d,transparent)}
.switch-scene{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100dvh;padding:36px 48px;box-sizing:border-box;border:0;border-radius:0;background:none;box-shadow:none}.switch-scene>header,.switch-scene>footer{display:flex;align-items:center;justify-content:space-between;gap:20px}.switch-brand{display:flex;align-items:center;gap:12px;color:#ced8e8;font-size:13px;letter-spacing:2.6px;font-weight:600}.switch-brand img{width:32px;height:32px;border-radius:7px}.switch-label{font-size:9px;letter-spacing:2.1px;color:#6f8aa6}.switch-hero{height:auto!important;min-height:0!important;overflow:visible!important;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:auto;width:min(780px,100%);padding:20px 0;box-sizing:border-box}.switch-emblem{width:260px;height:180px;margin-bottom:28px}.switch-emblem svg{width:100%;height:100%;fill:none;stroke:url(#switch-spectrum);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 18px #825fbc26)}.switch-wire{animation:wire-float 6s ease-in-out infinite}.switch-link-beam{stroke-width:2;animation:beam-breathe 3s ease-in-out infinite}.switch-kicker{font-size:10px;letter-spacing:4px;color:#8499b5;margin:0 0 18px}.switch-hero h2{font-size:clamp(34px,4.8vw,64px);font-weight:500;letter-spacing:2px;color:#edf4ff;line-height:1.3;margin:0 0 22px}.switch-hero #switch-message{min-height:24px;color:#9fb5cc;font-size:13px;line-height:1.8;letter-spacing:.5px;margin:0}.switch-timeline{width:min(440px,100%);margin-top:38px}.switch-stages{display:flex;justify-content:center;align-items:center;gap:18px;margin-bottom:20px}.switch-stages span{font-size:11px;letter-spacing:1px;color:#57718d;transition:color 500ms ease}.switch-stages span.active{color:#83e0df}.switch-stages span.done{color:#bea4e1}.switch-stages i{width:32px;height:1px;background:#304960}.switch-scan{height:3px;border-radius:99px;background:#26344980;overflow:hidden}.switch-scan i{display:block;width:45%;height:100%;background:linear-gradient(90deg,transparent,#b386e6,#5edddf,transparent);animation:link-scan 2600ms ease-in-out infinite}.switch-ready .switch-scan i{width:100%;background:linear-gradient(90deg,#9c71d5,#728be0 52%,#64dedd);animation:none;transform:scaleX(var(--switch-countdown,0));transform-origin:left;transition:transform 125ms linear}.switch-delay{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:11px;color:#758da7}.switch-delay b{font-weight:500;color:#b8d3e2;font-variant-numeric:tabular-nums;letter-spacing:.5px}.switch-scene>footer{padding-top:20px;border-top:1px solid #55708e21}.switch-local-dot{display:flex;align-items:center;gap:9px;color:#7189a2;font-size:10px;letter-spacing:.8px}.switch-local-dot:before{content:"";width:4px;height:4px;border-radius:50%;background:#67bfae}.switch-scene>footer button{padding:10px 15px;border:1px solid #415875;border-radius:6px;background:#142435;color:#abc0d8;font-size:11px;cursor:pointer;transition:background-color 200ms,border-color 200ms}.switch-scene>footer button:hover{background:#1d3549;border-color:#607da1}.switch-scene>footer button:focus-visible{outline:2px solid #7cdae0;outline-offset:3px}.switch-error #switch-message{color:#e6aab9}.switch-error .switch-scan i{width:100%;animation:none;background:#8f5065;transform:none}.switch-arrived{animation:scene-exit 650ms ease forwards!important;pointer-events:none}
@keyframes scene-enter{from{opacity:0}to{opacity:1}}@keyframes scene-exit{0%,25%{opacity:1}100%{opacity:0}}@keyframes horizon-drift{from{background-position:0 0}to{background-position:0 80px}}@keyframes wire-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes beam-breathe{0%,100%{opacity:.45}50%{opacity:1}}@keyframes link-scan{from{transform:translateX(-110%)}to{transform:translateX(335%)}}
@media(max-width:1000px){.topbar .workspace-launch{font-size:10px;padding:8px 10px}.topbar .workspace-launch svg{display:none}.switch-scene{padding:28px 32px}.switch-hero h2{font-size:44px}}
@media(max-width:600px){.topbar .top-state{flex-wrap:wrap;gap:6px}.topbar .workspace-launch{display:inline-flex;min-height:32px;font-size:10px;padding:7px 9px}.topbar .version-badge{display:none}.topbar .language-switch{max-width:100%}.switch-scene{padding:22px 20px}.switch-brand{font-size:10px;letter-spacing:1.8px}.switch-brand img{width:26px;height:26px}.switch-label{font-size:7px;letter-spacing:1px;max-width:100px;text-align:right;line-height:1.8}.switch-emblem{width:220px;height:152px;margin-bottom:24px}.switch-hero h2{font-size:32px;letter-spacing:1px;margin-bottom:18px}.switch-kicker{font-size:8px;letter-spacing:2.4px}.switch-hero #switch-message{font-size:11px}.switch-timeline{margin-top:30px}.switch-stages{gap:10px}.switch-stages i{width:18px}.switch-stages span{font-size:9px}.switch-local-dot{font-size:8px;letter-spacing:0}.switch-scene>footer button{font-size:10px;padding:8px 10px}}
@media(max-height:650px){.switch-scene{padding:18px 28px}.switch-emblem{width:160px;height:110px;margin-bottom:12px}.switch-kicker{margin-bottom:10px}.switch-hero h2{font-size:36px;margin-bottom:12px}.switch-timeline{margin-top:20px}.switch-stages{margin-bottom:12px}}
/* Stronger full-screen motion; the destination never replays this scene. */
.switch-aurora{position:absolute;inset:-20%;background:conic-gradient(from 30deg at 50% 50%,transparent 15%,#7546b51c 25%,transparent 45%,#37b9cc1b 65%,transparent 85%);animation:aurora-turn 16s linear infinite}.switch-particles{position:absolute;inset:0;overflow:hidden}.switch-particles i{position:absolute;left:calc(3% + var(--particle)*4%);top:100%;width:2px;height:22px;background:linear-gradient(transparent,#86daeaaa,transparent);transform:rotate(12deg);opacity:0;animation:particle-flight calc(3500ms + var(--particle)*95ms) linear infinite;animation-delay:calc(var(--particle)*-330ms)}.switch-sweep{position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,#739ace06 44%,#a491ed14 48%,#5ac6d512 51%,transparent 60%);transform:translateX(-110%);animation:scene-sweep 4500ms ease-in-out infinite}.switch-orbital{transform-origin:130px 85px;opacity:.45;stroke-width:.7;stroke-dasharray:6 12;animation:orbital-rotate 7s linear infinite}.switch-orbital ellipse:nth-child(2){opacity:.55}.switch-emblem{filter:drop-shadow(0 0 24px #916bd633)}.switch-wire{animation:wire-float 3500ms ease-in-out infinite}.switch-link-beam{stroke-width:2.6;animation:beam-breathe 1800ms ease-in-out infinite}.switch-horizon{animation:horizon-drift 5s linear infinite}.switch-hero h2{text-shadow:0 0 38px #80b7e320}.switch-ready .switch-emblem{filter:drop-shadow(0 0 28px #55cdd539)}
@keyframes aurora-turn{to{transform:rotate(360deg)}}@keyframes particle-flight{0%{transform:translate3d(0,0,0) rotate(12deg);opacity:0}15%,75%{opacity:.5}100%{transform:translate3d(-120px,-110vh,0) rotate(12deg);opacity:0}}@keyframes scene-sweep{0%,10%{transform:translateX(-110%)}90%,100%{transform:translateX(110%)}}@keyframes orbital-rotate{to{transform:rotate(360deg)}}
/* Keep launch motion enabled as requested, including when the OS motion preference is reduced. */
#workspace-switch-screen{animation:scene-enter 600ms ease!important}.switch-aurora{animation:aurora-turn 16s linear infinite!important}.switch-particles i{animation-name:particle-flight!important;animation-duration:calc(3500ms + var(--particle)*95ms)!important;animation-timing-function:linear!important;animation-iteration-count:infinite!important;animation-delay:calc(var(--particle)*-330ms)!important}.switch-sweep{animation:scene-sweep 4500ms ease-in-out infinite!important}.switch-orbital{animation:orbital-rotate 7s linear infinite!important}.switch-wire{animation:wire-float 3500ms ease-in-out infinite!important}.switch-link-beam{animation:beam-breathe 1800ms ease-in-out infinite!important}.switch-horizon{animation:horizon-drift 5s linear infinite!important}.switch-scan i{animation:link-scan 2600ms ease-in-out infinite!important}.switch-ready .switch-scan i,.switch-error .switch-scan i{animation:none!important}.switch-ready .switch-scan i{transition:transform 125ms linear!important}
/* A transparent WebGL canvas blends with the original console stage rather than drawing a dark slab. */
#robotViewport,#robotCanvas{background:transparent;border:0}#robotViewport:fullscreen{background:radial-gradient(circle at 52% 42%,#354246 0,#232d30 25%,#171e20 57%,#101618 84%)}
.switch-orbital{transform-origin:130px 90px;opacity:.45;stroke-width:.7;stroke-dasharray:4 10}.switch-orbit-inner{transform-origin:130px 90px;stroke-width:.65;stroke-dasharray:32 9;opacity:.5;animation:inner-star-orbit 11s linear infinite!important}.switch-sigil{stroke-width:1.65;fill:url(#switch-spectrum);fill-opacity:.08;transform-origin:130px 90px;animation:star-radiance 4s ease-in-out infinite!important}.switch-star-inset{fill:none;stroke-width:.6;opacity:.4}.switch-sigil circle{fill:#d5f5fa;stroke:none;fill-opacity:.85}.switch-emblem svg{filter:drop-shadow(0 0 16px #9873d93b)}@keyframes inner-star-orbit{to{transform:rotate(-360deg)}}@keyframes star-radiance{0%,100%{opacity:.75;transform:scale(.98)}50%{opacity:1;transform:scale(1.02)}}
/* Keep the launch scene independent of either workbench's main/panel backgrounds. */
#workspace-switch-screen .switch-scene,#workspace-switch-screen .switch-hero{background:transparent!important;background-image:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;outline:0}#workspace-switch-screen .switch-hero:before,#workspace-switch-screen .switch-hero:after{content:none!important}
.energy-orbit{transform-origin:130px 90px;stroke-width:.8;opacity:.7;animation:energy-orbit-spin 9s linear infinite!important}.energy-orbit.reverse{stroke-width:.6;opacity:.45;animation:energy-orbit-reverse 13s linear infinite!important}.energy-core{transform-origin:130px 90px;animation:energy-core-pulse 3.6s ease-in-out infinite!important;filter:drop-shadow(0 0 9px #77dcec66)}.energy-axis{stroke-width:.7;opacity:.25}.switch-emblem svg{filter:drop-shadow(0 0 18px #868bdd24)}@keyframes energy-orbit-spin{to{transform:rotate(360deg)}}@keyframes energy-orbit-reverse{to{transform:rotate(-360deg)}}@keyframes energy-core-pulse{0%,100%{opacity:.6;transform:scale(.97)}50%{opacity:1;transform:scale(1.03)}}
#workspace-switch-screen .energy-orbit{opacity:.9;stroke-width:1}#workspace-switch-screen .energy-orbit.reverse{opacity:.6;stroke-width:.8}#workspace-switch-screen .energy-core{stroke-width:1.5}@media(max-height:650px){#workspace-switch-screen .switch-emblem{width:210px;height:145px;margin-bottom:12px}}




/* Ubuntu ACT setup is part of step 2; no separate launch dialog. */
.runtime-download[aria-disabled="true"]{opacity:.45;pointer-events:none}
.runtime-onboarding{grid-column:1/-1;padding:22px 0 2px;margin-top:8px;border-top:1px solid #6f83a433;animation:runtime-setup-enter 300ms ease-out}.runtime-onboarding[hidden]{display:none!important}.runtime-onboarding-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:19px}.runtime-onboarding-head small{color:#b59bd9;font-size:9px;letter-spacing:1.2px}.runtime-onboarding-head h3{font-size:17px;font-weight:550;margin:7px 0 0;color:#e3edf7}.runtime-onboarding-head>span{font-size:10px;color:#819bab;border:1px solid #6d849e33;padding:6px 9px;border-radius:6px;white-space:nowrap}.runtime-setup-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.runtime-setup-steps li{display:flex;align-items:flex-start;gap:12px;min-width:0;padding:17px;border:1px solid #5e6e8533;border-radius:10px;background:linear-gradient(135deg,#30405645,#1b2f4133);transition:background 180ms,border-color 180ms}.runtime-step-number{display:grid;place-items:center;flex:none;width:30px;height:30px;border:1px solid #8f77b744;border-radius:8px;color:#c2b0e0;background:#9475b512;font-size:10px}.runtime-setup-steps li.done{border-color:#77cab83b}.runtime-setup-steps li.done .runtime-step-number{color:#9cddce;border-color:#76c7b966;background:#64bca419}.runtime-setup-steps h4{margin:2px 0 8px;font-size:13px;font-weight:550;color:#dae6f4}.runtime-setup-steps p{font-size:11px;color:#9ab0c4;line-height:1.85;margin:0}.runtime-download{display:inline-flex;align-items:center;gap:7px;margin-top:12px;padding:9px 10px;border:1px solid #9d80c455;border-radius:6px;background:#9c80ba17;color:#c9b4e4;font-size:11px;text-decoration:none;transition:background 160ms,border-color 160ms}.runtime-download:hover{background:#9d7db82d;border-color:#ba9ad588}.runtime-download svg{width:14px;height:14px;flex:none}.runtime-setup-status{padding:13px 15px;margin:16px 0 0;font-size:12px;line-height:1.8;color:#a6c6d5;border-left:2px solid #7387b7;background:#6d82ae0c;overflow-wrap:anywhere;min-height:44px;transition:color 180ms,background 180ms}.runtime-onboarding[data-state=error] .runtime-setup-status{color:#e0b9c0;border-color:#cc8f9f;background:#bf788b0c}.runtime-onboarding[data-state=connected] .runtime-setup-status{border-color:#81cdbb;color:#b4dccd}@keyframes runtime-setup-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1100px){.runtime-setup-steps{grid-template-columns:1fr}.runtime-setup-steps li{padding:15px}.runtime-onboarding-head{gap:10px}}@media(max-width:600px){.runtime-onboarding-head{flex-wrap:wrap}.runtime-setup-steps{gap:12px}.runtime-setup-status{padding:12px;font-size:11px}.runtime-onboarding{padding-top:16px}}
