:root{font-family:Noto Sans SC,system-ui,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow-x:hidden;-webkit-tap-highlight-color:transparent}body{min-width:320px;background:linear-gradient(135deg,#d32f2f,#b71c1c,#8e0000)}#app{width:100%;height:100%}.glow-bg{position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(255,215,0,.3) 0%,transparent 70%);border-radius:50%;animation:pulse 3s ease-in-out infinite;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}@keyframes pulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:.5}50%{transform:translate(-50%,-50%) scale(1.2);opacity:.8}}.coin{position:absolute;width:30px;height:30px;background:linear-gradient(135deg,gold,#ffa000);border-radius:50%;border:2px solid #FF8F00;box-shadow:0 0 10px #ffd70099;animation:fall linear infinite;opacity:.8}.coin:before{content:"¥";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#b71c1c;font-weight:700;font-size:16px}@keyframes fall{to{transform:translateY(100vh) rotate(360deg)}}.envelope-card{background:linear-gradient(145deg,#ff5252,#d32f2f);box-shadow:0 20px 60px #0006,inset 0 2px 10px #fff3,0 0 0 4px #ffd7004d;border:2px solid #FFD700}.avatar-glow{box-shadow:0 0 0 4px gold,0 0 0 8px #ffd7004d,0 0 30px #ffd70080}.shine{position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.3) 50%,transparent 60%);animation:shine 3s infinite;pointer-events:none}@keyframes shine{0%{transform:translate(-100%) translateY(-100%) rotate(45deg)}to{transform:translate(100%) translateY(100%) rotate(45deg)}}.float{animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.open-btn{background:linear-gradient(135deg,gold,#ffa000);box-shadow:0 6px 20px #ffa00066,inset 0 2px #fff6;transition:all .3s}.open-btn:active{transform:scale(.95);box-shadow:0 2px 10px #ffa00066}.lantern{animation:swing 3s ease-in-out infinite;transform-origin:top center}@keyframes swing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.success-glow{animation:successPulse 2s ease-in-out infinite}@keyframes successPulse{0%,to{box-shadow:0 0 20px #ffd70080}50%{box-shadow:0 0 60px #ffd700e6}}.particle{position:absolute;pointer-events:none;animation:particleFloat 4s linear infinite}@keyframes particleFloat{0%{transform:translateY(100vh) scale(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100vh) scale(1.5);opacity:0}}
