@keyframes ufo-target-hover{0%,100%{transform:translate3d(var(--ufo-x),var(--ufo-y),0) translateX(-50%) rotate(-.7deg)}50%{transform:translate3d(var(--ufo-x),calc(var(--ufo-y) - 10px),0) translateX(-50%) rotate(.7deg)}}
.ufo-layer{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}.ufo-craft{position:absolute;left:0;top:0;width:clamp(75px,13vw,135px);height:auto;display:block;opacity:0;transform-origin:50%;filter:drop-shadow(0 18px 20px rgba(31,38,61,.18));will-change:transform,opacity}.ufo-craft.is-arrived{opacity:1}@keyframes ufo-hover{0%,100%{filter:drop-shadow(0 18px 20px rgba(31,38,61,.18))}50%{filter:drop-shadow(0 22px 24px rgba(31,38,61,.22))}}
.ufo-beam{position:fixed;z-index:39;left:0;top:0;width:176px;height:260px;pointer-events:none;opacity:0;transform:translateX(-50%) scaleY(.03);transform-origin:50% 0;clip-path:polygon(48.5% 0,51.5% 0,91% 100%,9% 100%);background:linear-gradient(90deg,rgba(68,232,255,0),rgba(96,240,255,.14) 14%,rgba(186,250,255,.62) 34%,rgba(255,255,255,.94) 50%,rgba(186,250,255,.62) 66%,rgba(96,240,255,.14) 86%,rgba(68,232,255,0)),linear-gradient(180deg,rgba(255,255,255,.86),rgba(205,250,255,.56) 18%,rgba(118,238,255,.28) 62%,rgba(92,233,255,.2));filter:drop-shadow(0 0 14px rgba(118,240,255,.38)) drop-shadow(0 0 28px rgba(118,240,255,.48));overflow:hidden;will-change:transform,opacity,filter}
.ufo-beam::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 9%,rgba(255,255,255,.18) 9% 12%,transparent 12% 20%),linear-gradient(180deg,rgba(255,255,255,.48),transparent 70%);opacity:.8;animation:beamStripes 1.1s linear infinite;mix-blend-mode:screen}.ufo-beam::after{content:"";position:absolute;left:50%;bottom:-10px;width:84%;height:30px;border-radius:50%;transform:translateX(-50%);background:radial-gradient(circle,rgba(240,254,255,.96),rgba(160,246,255,.5) 45%,rgba(105,233,255,0) 78%);filter:blur(2px);animation:beamGroundPulse 1s ease-in-out infinite}.ufo-beam.is-on{opacity:1;animation:beamOpen .34s cubic-bezier(.18,.86,.24,1) forwards,beamPulse 1.05s .34s ease-in-out infinite}.ufo-beam-core{position:absolute;left:50%;top:0;width:18%;height:100%;transform:translateX(-50%);background:linear-gradient(180deg,#fff,rgba(234,254,255,.92) 25%,rgba(167,248,255,.48) 65%,rgba(167,248,255,.1));filter:blur(2.8px);opacity:.98}.ufo-beam-scan{position:absolute;left:7%;right:7%;top:-18%;height:13%;border-radius:999px;background:radial-gradient(circle,#fff,rgba(179,250,255,.84) 52%,rgba(128,240,255,.08) 76%);box-shadow:0 0 18px rgba(161,247,255,.84),0 0 32px rgba(161,247,255,.42);opacity:0}.ufo-beam.is-on .ufo-beam-scan{opacity:.96;animation:beamScan .9s .26s linear infinite}
@keyframes beamOpen{0%{opacity:0;transform:translateX(-50%) scaleY(.03)}100%{opacity:1;transform:translateX(-50%) scaleY(1)}}@keyframes beamPulse{0%,100%{filter:drop-shadow(0 0 12px rgba(106,235,255,.34)) drop-shadow(0 0 22px rgba(106,235,255,.42))}50%{filter:drop-shadow(0 0 20px rgba(106,235,255,.58)) drop-shadow(0 0 36px rgba(106,235,255,.62))}}@keyframes beamScan{0%{top:-16%;opacity:0}8%{opacity:.9}88%{opacity:.72}100%{top:102%;opacity:0}}@keyframes beamStripes{0%{transform:translateX(-12%);opacity:.56}50%{opacity:.82}100%{transform:translateX(12%);opacity:.56}}@keyframes beamGroundPulse{0%,100%{transform:translateX(-50%) scale(.94);opacity:.62}50%{transform:translateX(-50%) scale(1.05);opacity:.96}}
.wheel-button.ufo-swap-impact{animation:ufoSwapImpact 260ms cubic-bezier(.22,1,.36,1)}@keyframes ufoSwapImpact{0%{transform:scale(1)}35%{transform:scale(.986) rotate(-.45deg)}72%{transform:scale(1.008) rotate(.3deg)}100%{transform:scale(1)}}
.ufo-slice-ghost{position:fixed;inset:0 auto auto 0;z-index:38;pointer-events:none;opacity:0;will-change:transform,opacity,filter;transform-origin:50% 10%;filter:drop-shadow(0 10px 18px rgba(39,48,74,.16))}.ufo-slice-ghost img{display:block;width:100%;height:100%}.ufo-slice-ghost.is-visible{opacity:1}.ufo-slot-mask{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;border-radius:50%}
@media(max-width:640px){.ufo-craft{width:clamp(69px,22vw,105px)}}
