:root{--fx-x:50vw;--fx-y:28vh;--fx-glow:rgba(68,105,255,.18)}
html{background:#07101d}
body{position:relative;overflow-x:hidden;isolation:isolate}
body::after{content:"";position:fixed;inset:0;z-index:-9;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(105,132,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(105,132,255,.045) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 88%)}
::selection{background:rgba(75,111,255,.28);color:inherit}
.fx-scene{position:fixed;inset:0;z-index:-8;overflow:hidden;pointer-events:none}
.fx-orb{position:absolute;border-radius:999px;filter:blur(2px);opacity:.48;animation:fxFloat 16s ease-in-out infinite;will-change:transform}
.fx-orb.one{width:34vw;height:34vw;min-width:320px;min-height:320px;left:-12vw;top:12vh;background:radial-gradient(circle,rgba(45,93,255,.28),rgba(45,93,255,0) 68%)}
.fx-orb.two{width:30vw;height:30vw;min-width:280px;min-height:280px;right:-10vw;top:3vh;background:radial-gradient(circle,rgba(24,212,184,.22),rgba(24,212,184,0) 70%);animation-delay:-5s}
.fx-orb.three{width:28vw;height:28vw;min-width:260px;min-height:260px;left:38vw;bottom:-17vw;background:radial-gradient(circle,rgba(139,92,246,.18),rgba(139,92,246,0) 70%);animation-delay:-9s}
.fx-cursor-glow{position:fixed;z-index:-7;left:var(--fx-x);top:var(--fx-y);width:360px;height:360px;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(circle,var(--fx-glow),transparent 68%);transition:opacity .25s ease;opacity:.85}
[data-fx-reveal]{opacity:0;transform:translateY(22px) scale(.985);filter:blur(5px);transition:opacity .75s cubic-bezier(.2,.75,.2,1),transform .75s cubic-bezier(.2,.75,.2,1),filter .75s ease;transition-delay:var(--fx-delay,0ms)}
[data-fx-reveal].fx-visible{opacity:1;transform:none;filter:none}
.fx-tilt{transform-style:preserve-3d;will-change:transform;transition:transform .22s ease,box-shadow .22s ease!important}
.fx-tilt:hover{transform:perspective(950px) rotateX(var(--fx-rx,0deg)) rotateY(var(--fx-ry,0deg)) translateY(-4px);box-shadow:0 26px 70px rgba(23,45,103,.18)!important}
.fx-ripple-host{position:relative;overflow:hidden!important}
.fx-ripple{position:absolute;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.38);transform:translate(-50%,-50%) scale(0);animation:fxRipple .62s ease-out forwards}
.fx-primary-shine{position:relative;overflow:hidden}
.fx-primary-shine::after{content:"";position:absolute;inset:-60% auto -60% -45%;width:30%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);animation:fxShine 4.2s ease-in-out infinite;pointer-events:none}
.fx-activity-notice{position:fixed;left:18px;bottom:18px;z-index:9998;max-width:420px;display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border:1px solid rgba(100,126,255,.22);border-radius:16px;color:#dfe7ff;background:rgba(8,16,31,.86);box-shadow:0 18px 54px rgba(4,11,26,.28);backdrop-filter:blur(16px);font:600 12px/1.48 Manrope,sans-serif;animation:fxNotice .45s ease both}
.fx-activity-notice strong{display:block;color:#fff;font-size:13px;margin-bottom:2px}.fx-activity-notice button{border:0;background:rgba(255,255,255,.09);color:#fff;width:26px;height:26px;flex:0 0 auto;border-radius:9px;cursor:pointer;font-size:15px}
body:not(.dark) .fx-activity-notice{color:#44506a;background:rgba(255,255,255,.92);border-color:rgba(38,78,220,.16);box-shadow:0 18px 50px rgba(28,46,95,.16)}body:not(.dark) .fx-activity-notice strong,body:not(.dark) .fx-activity-notice button{color:#101828}body:not(.dark) .fx-activity-notice button{background:rgba(30,55,130,.08)}
@keyframes fxFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(4vw,-3vh,0) scale(1.08)}}
@keyframes fxRipple{to{transform:translate(-50%,-50%) scale(4);opacity:0}}
@keyframes fxShine{0%,70%{left:-45%;opacity:0}76%{opacity:1}100%{left:125%;opacity:0}}
@keyframes fxNotice{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(max-width:800px){.fx-cursor-glow{display:none}.fx-activity-notice{left:10px;right:10px;bottom:10px;max-width:none}.fx-tilt:hover{transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.fx-orb,.fx-primary-shine::after{animation:none!important}[data-fx-reveal]{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.fx-tilt{transform:none!important}.fx-cursor-glow{display:none}.fx-ripple{display:none}}
