@keyframes float-up{0%{opacity:1;transform:translateY(0) scale(1)}20%{opacity:1;transform:translateY(-12px) scale(1.15)}to{opacity:0;transform:translateY(-64px) scale(.9)}}.float-number{position:absolute;pointer-events:none;font-weight:700;font-size:1.5rem;letter-spacing:.04em;text-shadow:0 2px 6px rgba(0,0,0,.9);animation:float-up 1.1s ease-out forwards;z-index:100;white-space:nowrap;user-select:none}@keyframes screen-flash{0%{opacity:.55}to{opacity:0}}.screen-flash{position:absolute;inset:0;pointer-events:none;z-index:30;animation:screen-flash .45s ease-out forwards}@keyframes enemy-shake{0%,to{transform:translate(0)}15%{transform:translate(-7px) rotate(-2deg)}30%{transform:translate(7px) rotate(2deg)}45%{transform:translate(-5px)}60%{transform:translate(5px)}75%{transform:translate(-2px)}}.enemy-shake{animation:enemy-shake .4s ease-out}@keyframes card-pulse{0%{transform:translateY(-10px) scale(1.08)}60%{transform:translateY(-14px) scale(1.12)}to{transform:translateY(-10px) scale(1.08)}}.card-pulse{animation:card-pulse .18s ease-out forwards}@keyframes fade-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.fade-in{animation:fade-in .3s ease-out forwards}@keyframes glow-pulse{0%,to{text-shadow:0 0 12px #c8a06088,0 0 28px #c8a06044,0 0 60px #c8a06020}50%{text-shadow:0 0 20px #c8a060cc,0 0 44px #c8a06066,0 0 80px #c8a06033}}.title-glow{animation:glow-pulse 3s ease-in-out infinite}@keyframes node-ring-pulse{0%,to{opacity:.25}50%{opacity:.7}}.node-glow-ring{animation:node-ring-pulse 1.8s ease-in-out infinite}.viewport-shell{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#04040a;overflow:hidden}.game-canvas{position:relative;width:1280px;height:720px;flex-shrink:0;transform-origin:center center}.game-canvas:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1000;background:radial-gradient(ellipse 88% 82% at 50% 50%,transparent 30%,rgba(0,0,0,.55) 100%)}
