:root{--neon-pink: #ff0a78;--neon-blue: #00d4ff;--neon-cyan: #00ffff;--neon-purple: #b000ff;--dark-bg: #0a0a0f;--card-bg: #1a1a2e}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;min-height:100vh}body{font-family:Roboto Mono,monospace;background:var(--dark-bg);color:#fff;line-height:1.6;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:linear-gradient(rgba(0,212,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,255,.05) 1px,transparent 1px);background-size:50px 50px;animation:gridMove 20s linear infinite;z-index:0;pointer-events:none}@keyframes gridMove{0%{background-position:0 0}to{background-position:50px 50px}}body:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,212,255,.03) 2px,rgba(0,212,255,.03) 4px);pointer-events:none;z-index:1}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.6}.neon-text{text-shadow:0 0 10px currentColor,0 0 20px currentColor,0 0 30px currentColor}.neon-text-strong{text-shadow:0 0 10px currentColor,0 0 20px currentColor,0 0 30px currentColor,0 0 40px currentColor,0 0 70px currentColor,0 0 80px currentColor}.celebration-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}.celebration-fx>*{position:absolute;pointer-events:none;will-change:transform,opacity;animation-fill-mode:forwards;animation-iteration-count:1}.fx-confetti{border-radius:2px;animation-name:fxFall;animation-timing-function:ease-in}@keyframes fxFall{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}to{transform:translateY(120vh) translate(var(--tx, 0)) rotate(var(--rot, 360deg));opacity:0}}.fx-burst{border-radius:50%;animation-name:fxBurst;animation-timing-function:cubic-bezier(.15,.6,.4,1)}@keyframes fxBurst{0%{transform:translate(-50%,-50%) scale(.3);opacity:1}80%{opacity:1}to{transform:translate(calc(-50% + var(--tx, 0)),calc(-50% + var(--ty, 0))) scale(1.1);opacity:0}}.fx-bubble{bottom:-60px;border-radius:50%;border:2px solid #fff;background:#ffffff0f;animation-name:fxRise;animation-timing-function:ease-out}@keyframes fxRise{0%{transform:translateY(0) translate(0) scale(.6);opacity:0}15%{opacity:.9}to{transform:translateY(-115vh) translate(var(--tx, 0)) scale(1.2);opacity:0}}.fx-emoji{left:50%;top:50%;line-height:1;animation-name:fxEmoji;animation-timing-function:cubic-bezier(.15,.6,.4,1)}@keyframes fxEmoji{0%{transform:translate(-50%,-50%) scale(.2) rotate(0);opacity:0}20%{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}to{transform:translate(calc(-50% + var(--tx, 0)),calc(-50% + var(--ty, 0))) scale(1) rotate(var(--rot, 0));opacity:0}}.fx-star{line-height:1;animation-name:fxStar;animation-timing-function:ease-in}@keyframes fxStar{0%{transform:translateY(0) translate(0) rotate(0) scale(1);opacity:1}to{transform:translateY(120vh) translate(var(--tx, 0)) rotate(var(--rot, 0)) scale(.6);opacity:0}}.fx-ring{left:50%;top:50%;border-radius:50%;border:3px solid currentColor;animation-name:fxRing;animation-timing-function:cubic-bezier(.15,.7,.3,1)}@keyframes fxRing{0%{transform:translate(-50%,-50%) scale(.04);opacity:0}12%{opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.fx-streamer{top:-25vh;border-radius:3px;transform-origin:50% 0;animation-name:fxStreamer;animation-timing-function:linear}@keyframes fxStreamer{0%{transform:translateY(0) translate(0) rotate(var(--rot0, 0deg)) skew(0);opacity:1}50%{transform:translateY(70vh) translate(var(--tx, 0)) rotate(calc(var(--rot, 180deg) * .5)) skew(12deg);opacity:1}to{transform:translateY(145vh) translate(0) rotate(var(--rot, 180deg)) skew(-12deg);opacity:0}}.fx-cannon{border-radius:2px;animation-name:fxCannon;animation-timing-function:cubic-bezier(.2,.5,.5,1)}@keyframes fxCannon{0%{transform:translate(0) rotate(0);opacity:1}55%{transform:translate(calc(var(--tx, 0) * .8),var(--ty, -45vh)) rotate(calc(var(--rot, 540deg) * .5));opacity:1}to{transform:translate(var(--tx, 0),20vh) rotate(var(--rot, 540deg));opacity:0}}.neon-border{box-shadow:0 0 5px currentColor,0 0 10px currentColor,0 0 15px currentColor,inset 0 0 5px currentColor}.neon-border-strong{box-shadow:0 0 10px currentColor,0 0 20px currentColor,0 0 30px currentColor,0 0 40px currentColor,inset 0 0 10px currentColor}
