.return-launcher {
  --charge-track-width: 64px;
  --charge-track-height: 236px;
  --charge-handle-size: 52px;
  --charge-inset: 6px;
  --charge-travel: calc(var(--charge-track-height) - var(--charge-handle-size) - 2 * var(--charge-inset));
  position: absolute;
  z-index: 1;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 30svh 24px 28px;
  color: var(--ink, #080808);
  text-align: center;
  pointer-events: none;
}

.work-transition--exit { overflow: clip; }

.work-transition--exit:not([data-motion]) .return-launcher {
  inset: 58% 0 0;
  padding-top: 0;
  justify-content: center;
}

/* Move the whole exit composition on its own layer during the charge. */
.return-launcher-stage {
  transform-origin: 50% 50%;
}
.return-launcher-stage.is-return-shaking { will-change: transform; }

.return-rocket-cover {
  position: fixed;
  z-index: 100;
  inset: 0;
  overflow: hidden;
  isolation: isolate;
  background:
    radial-gradient(ellipse 58% 64% at 50% 56%, #255cff55 0%, #255cff25 45%, #255cff00 100%),
    var(--page-bg, #fff);
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
}
.return-rocket-cover[hidden] { display: none; }

.return-rocket-streak {
  position: absolute;
  inset: -22% 0;
  background:
    radial-gradient(ellipse 7% 46% at 50% 48%, #f1fbff 0%, #9ae6ff 15%, #3c89ffab 38%, #2458ff27 70%, #2458ff00 100%),
    radial-gradient(ellipse 26% 44% at 50% 52%, #2865ff6b 0%, #2e55ff28 51%, #2e55ff00 100%);
  opacity: 0;
  will-change: opacity, transform;
}

.return-launcher .return-title {
  margin: 0;
  max-width: 100%;
  color: var(--ink, #080808);
  font-family: 'Plus Jakarta Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  font-size: clamp(36px, 4.6875vw, 72px);
  font-weight: 450;
  line-height: 1.12;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.return-launcher .charge-track {
  position: relative;
  display: none;
  flex: 0 0 auto;
  width: var(--charge-track-width);
  height: var(--charge-track-height);
  margin-top: clamp(26px, 3.2svh, 34px);
  overflow: visible;
  border-radius: 999px;
  background: var(--capsule-bg, #020202);
  isolation: auto;
  pointer-events: auto;
}

.return-launcher[data-enhanced='true'] .charge-track { display: block; }

/* Each glow fades to transparent inside its layer, before the layer edge. */
.return-launcher .charge-track::before,
.return-launcher .charge-track::after {
  content: '';
  position: absolute;
  z-index: -1;
  pointer-events: none;
}

.return-launcher .charge-track::before {
  inset: -36px -74px;
  background: radial-gradient(ellipse 44% 43% at 50% 44%, #f4fbff 0%, #9eefffbd 24%, #35aaff85 49%, #2954ff29 75%, #2954ff00 100%);
  opacity: calc(var(--charge, 0) * (.04 + var(--beat, 0) * .07) + var(--boost, 0) * (.20 + var(--beat, 0) * .48));
  transform: scaleX(calc(.9 + var(--boost, 0) * .18 + var(--boost, 0) * var(--beat, 0) * .16));
}

.return-launcher .charge-track::after {
  inset: -68px -118px;
  background: radial-gradient(ellipse 46% 44% at 50% 52%, #80dfffaf 0%, #328dff80 32%, #254bff48 56%, #254bff16 79%, #254bff00 100%);
  opacity: calc(var(--charge, 0) * .035 + var(--boost, 0) * (.10 + var(--beat, 0) * .34));
  transform: scale(calc(1 + var(--boost, 0) * var(--beat, 0) * .15));
}

.return-launcher .charge-rail {
  position: absolute;
  z-index: 0;
  top: 20px;
  left: 50%;
  width: 9px;
  height: calc(var(--charge-travel) - 14px);
  border-radius: 999px;
  background: linear-gradient(180deg, var(--charge-head, #fff) 0%, var(--charge-head, #fff) 18%, var(--charge-head-alt, #c9ffff) 32%, #27e5ff 51%, #0085ff 71%, #1938ff 88%, #1904d8 100%);
  opacity: 0;
  transform: translate3d(-50%, 0, 0) scaleY(0);
  transform-origin: 50% 0;
  pointer-events: none;
}

.return-launcher .charge-rail::before,
.return-launcher .charge-rail::after {
  content: '';
  position: absolute;
  inset: -12px -12px;
  background:
    radial-gradient(ellipse 43% 35% at 50% 36%, #c1faffcf 0%, #50bfff74 46%, #50bfff00 100%),
    radial-gradient(ellipse 43% 32% at 50% 66%, #3176ffb0 0%, #265cff48 48%, #265cff00 100%);
  opacity: calc(.38 + var(--charge, 0) * .20 + var(--beat, 0) * .10 + var(--boost, 0) * (.15 + var(--beat, 0) * .17));
  transform: scaleX(calc(1 + var(--beat, 0) * .3 + var(--boost, 0) * (.6 + var(--beat, 0) * .35)));
}

.return-launcher .charge-rail::after {
  inset: -14px -23px;
  background: radial-gradient(ellipse 45% 46% at 50% 50%, #73cdff80 0%, #376fff52 44%, #376fff00 100%);
  opacity: calc(.10 + var(--charge, 0) * .20 + var(--boost, 0) * (.18 + var(--beat, 0) * .35));
}

.return-launcher .charge-handle {
  position: absolute;
  z-index: 1;
  top: var(--charge-inset);
  left: var(--charge-inset);
  display: grid;
  place-items: center;
  width: var(--charge-handle-size);
  height: var(--charge-handle-size);
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--handle-ink, #060606);
  cursor: grab;
  touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  transform: translate3d(0, 0, 0);
  transition: none;
}

.return-launcher .charge-handle[hidden] { display: none !important; }
.return-launcher .charge-handle:disabled { cursor: default; }
.return-launcher .charge-handle:focus-visible { outline: 2px solid #79cfff; outline-offset: 3px; }

.return-launcher .charge-handle-surface {
  position: relative;
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: var(--handle-bg, #fff);
  transform-origin: 50% 50%;
  pointer-events: none;
}

.return-launcher .charge-handle-surface::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: -29px;
  background: radial-gradient(circle closest-side at center, #fff 0%, #b9f7ffe0 25%, #4dbeff93 44%, #255fff37 66%, #255fff00 90%);
  opacity: calc(var(--charge, 0) * .10 + var(--boost, 0) * (.30 + var(--beat, 0) * .42));
}

.return-launcher .charge-handle svg { display: block; width: 29px; height: 29px; overflow: visible; }
.return-launcher .charge-handle path { fill: none; stroke: currentColor; stroke-width: 2.1; stroke-linecap: round; stroke-linejoin: round; }
.return-launcher[data-state='dragging'] .charge-handle,
.return-launcher[data-state='charging'] .charge-handle { cursor: grabbing; }
.return-launcher:is([data-state='dragging'], [data-state='charging'], [data-state='resetting']) .charge-handle,
.return-launcher:is([data-state='dragging'], [data-state='charging'], [data-state='resetting']) .charge-rail { will-change: transform; }
.return-launcher[data-state='charging'] .charge-handle-surface {
  transform: scale(calc(1 + var(--beat, 0) * (.008 + var(--charge, 0) * .024 + var(--boost, 0) * .070)));
}

.return-launcher[data-state='launching'] .charge-handle-surface,
.return-launcher[data-state='returning'] .charge-handle-surface {
  animation: return-launcher-shot var(--launch-duration, .16s) cubic-bezier(.3, .02, .2, 1) both;
}

.return-launcher[data-ready='false'] .charge-track,
.return-launcher[data-state='launching'] .charge-track,
.return-launcher[data-state='returning'] .charge-track,
.return-launcher[data-state='resetting'] .charge-track { pointer-events: none; }

.return-launcher .return-instruction {
  display: none;
  margin: 22px 0 0;
  color: var(--ink-muted, #75777c);
  font-size: 12px;
  font-weight: 450;
  line-height: 1.5;
  letter-spacing: -.02em;
}
.return-launcher[data-enhanced='true'] .return-instruction { display: block; }

.return-launcher .return-status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.return-launcher .return-direct {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 34px;
  padding: 8px 0;
  color: var(--ink, #101010);
  font-size: 15px;
  font-weight: 500;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
  pointer-events: auto;
}

.return-launcher[data-enhanced='true'] .return-direct {
  position: absolute;
  left: 50%;
  bottom: 28px;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  transform: translateX(-50%);
}

.return-launcher[data-enhanced='true'] .return-direct:focus-visible {
  width: max-content;
  max-width: calc(100% - 40px);
  height: auto;
  margin: 0;
  padding: 10px 16px;
  overflow: visible;
  clip: auto;
  clip-path: none;
  border-radius: 999px;
  background: var(--surface, #fff);
  outline: 2px solid #1d5aff;
  outline-offset: 3px;
}

@keyframes return-launcher-shot {
  0% { opacity: 1; transform: translateY(0) scale(1.025); }
  16% { opacity: 1; transform: translateY(4px) scale(.96); }
  62% { opacity: 1; }
  100% { opacity: 0; transform: translateY(calc(-1 * var(--charge-travel) - 16px)) scale(.70); }
}

@media (max-width: 600px) {
  .return-launcher { padding-right: 20px; padding-left: 20px; }
  .return-launcher .return-title { max-width: 340px; font-size: clamp(29px, 6.8vw, 38px); }
  .return-launcher .charge-track { margin-top: 34px; }
}

@media (max-height: 620px) {
  .return-launcher { --charge-track-height: 212px; padding-top: 20svh; }
  .return-launcher .charge-track { margin-top: 26px; }
  .return-launcher .return-instruction { margin-top: 18px; }
}

@media (max-height: 480px) {
  .return-launcher { --charge-track-height: 174px; padding-top: 34px; }
  .return-launcher .return-title { font-size: 28px; }
  .return-launcher .charge-track { margin-top: 20px; }
  .return-launcher .return-instruction { margin-top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .return-launcher {
    --charge-track-height: 190px;
    inset: 58% 0 0;
    padding-top: 0;
    justify-content: center;
  }
  .return-launcher .charge-track { margin-top: 24px; }
  .return-launcher .return-instruction { margin-top: 16px; }
  .return-launcher-stage { transform: none; }
  .return-launcher .charge-track::before,
  .return-launcher .charge-track::after,
  .return-launcher .charge-handle-surface,
  .return-launcher .charge-rail::before,
  .return-launcher .charge-rail::after { transform: none; }
  .return-launcher[data-state='charging'] .charge-handle-surface { transform: none; }
  .return-launcher[data-state='launching'] .charge-handle-surface,
  .return-launcher[data-state='returning'] .charge-handle-surface { animation: none; opacity: 0; }
  .return-launcher .charge-track::before { opacity: calc(var(--charge, 0) * .08 + var(--boost, 0) * .24); }
  .return-launcher .charge-track::after { opacity: calc(var(--charge, 0) * .035 + var(--boost, 0) * .12); }
  .return-launcher .charge-rail::before { opacity: calc(.38 + var(--charge, 0) * .20 + var(--boost, 0) * .25); }
  .return-launcher .charge-rail::after { opacity: calc(.14 + var(--charge, 0) * .20 + var(--boost, 0) * .30); }
  .return-launcher .charge-handle-surface::before { opacity: calc(var(--charge, 0) * .10 + var(--boost, 0) * .22); }
}

@media (prefers-reduced-motion: reduce) and (max-height: 680px) {
  .work-transition--exit,
  .work-transition--exit .work-transition-stage { height: max(120svh, 720px); }
  .return-launcher { --charge-track-height: 160px; inset: 60% 0 0; padding-bottom: 20px; }
  .return-launcher .return-title { font-size: 28px; }
  .return-launcher .charge-track { margin-top: 18px; }
  .return-launcher .return-instruction { margin-top: 14px; }
}
