.rocket-top{position:fixed;right:24px;bottom:calc(30px + env(safe-area-inset-bottom,0px));z-index:80;width:50px;height:50px;display:grid;place-items:center;padding:0;border:1px solid #ffd76a8c;border-radius:14px;color:#ffd76a;background:radial-gradient(80% 100% at 50% 115%,#ffd76a47,transparent 70%),linear-gradient(#262626,#171717 48%,#0b0b0b);box-shadow:inset 0 1px 0 #ffffff1c,0 8px 25px #0008;cursor:pointer;overflow:visible;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .25s,visibility .25s,transform .25s,border-color .25s}
.rocket-top::before{content:"";position:absolute;inset:3px;border:1px solid #ffffff12;border-radius:10px;pointer-events:none}
.rocket-top.is-visible{opacity:1;visibility:visible;transform:none}
.rocket-top:focus-visible{outline:2px solid #ffd76a;outline-offset:5px}
.rocket-top-motor{position:relative;display:block;width:24px;height:24px;pointer-events:none;transition:transform .3s}
.rocket-top svg{position:relative;z-index:1;display:block;width:24px;height:24px;transform:rotate(-45deg)}
.rocket-top-flame{position:absolute;top:20px;left:7px;width:10px;height:40px;opacity:0;transform-origin:50% 0;transform:scaleY(.15);transition:opacity .15s,transform .25s}
.rocket-top-flame::before,.rocket-top-flame::after{content:"";position:absolute;inset:0;border-radius:40% 40% 65% 65% / 20% 20% 90% 90%;background:linear-gradient(#fff5c9,#ffae45 14%,#ff482d 42%,#e91e16a8 72%,transparent);filter:drop-shadow(0 2px 4px #ff3521);transform-origin:50% 0}
.rocket-top-flame::after{inset:0 3px 9px;background:linear-gradient(#fffbdc,#ffc06a 40%,transparent)}
.rocket-top.is-flying{color:white;border-color:#ffd76a;box-shadow:inset 0 1px 0 #ffffff24,0 0 24px #d6a92833}
.rocket-top.is-flying .rocket-top-motor{transform:translateY(-3px) scale(1.15)}
.rocket-top.is-flying .rocket-top-flame{opacity:1;transform:scaleY(1)}
.rocket-top.is-flying .rocket-top-flame::before,.rocket-top.is-flying .rocket-top-flame::after{animation:rocket-exhaust .22s ease-in-out infinite alternate}
@media(hover:hover){.rocket-top:hover{color:white;border-color:#ffd76a}.rocket-top:hover .rocket-top-motor{transform:translateY(-2px)}}
@media(max-width:600px){.rocket-top{width:46px;height:46px;right:16px;bottom:calc(28px + env(safe-area-inset-bottom,0px));border-radius:12px}}
@media(prefers-reduced-motion:reduce){.rocket-top,.rocket-top *{animation:none!important;transition:none!important}.rocket-top.is-flying .rocket-top-motor{transform:none}}
.page-hidden .rocket-top *::before,.page-hidden .rocket-top *::after{animation-play-state:paused!important}

/* A complete upright silhouette, with both fins inside the SVG viewport. */
.rocket-top,.rocket-top::before{border-radius:50%}
.rocket-top-motor{width:28px;height:28px}
.rocket-top svg{width:28px;height:28px;transform:none;overflow:visible}
.rocket-top-flame{top:25px;left:9px}

/* A quieter idle state, with full clarity during interaction. */
.rocket-top.is-visible{opacity:.76;background:radial-gradient(80% 100% at 50% 115%,#ffd76a26,transparent 70%),linear-gradient(#262626bf,#171717b3 48%,#0b0b0bbf);border-color:#ffd76a66;box-shadow:inset 0 1px 0 #ffffff12,0 5px 18px #0005}
.rocket-top.is-visible:is(.is-flying,:focus-visible){opacity:1;border-color:#ffd76a}
@media(hover:hover){.rocket-top.is-visible:hover{opacity:1;border-color:#ffd76a}}
.rocket-warp{position:fixed;inset:0;z-index:150;background:#050507;opacity:0;pointer-events:auto;overflow:hidden;touch-action:none}
.rocket-warp[hidden]{display:none}
.rocket-warp canvas{display:block;width:100%;height:100%}
.rocket-top.is-warping{z-index:151;pointer-events:none;transition:transform 1.15s cubic-bezier(.45,0,.7,1),opacity .25s}
.rocket-top.is-warping.is-visible{transform:translateY(calc(-100dvh - 90px))}
.rocket-top.is-departed{opacity:0;visibility:hidden;transform:translateY(calc(-100dvh - 90px));transition:none}

/* Only the rocket and exhaust travel; the circular control disappears on launch. */
.rocket-top.is-visible.is-flying{background:transparent;border-color:transparent;box-shadow:none;color:#fff;opacity:1}
.rocket-top.is-flying::before{opacity:0}
.rocket-top.is-flying:focus-visible{outline:none}
