*{margin:0;padding:0;box-sizing:border-box}.background-stars{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:hidden}.background-star{position:absolute;width:var(--star-size);height:var(--star-size);background:radial-gradient(circle,var(--star-color) 0%,transparent 70%);border-radius:50%;animation:backgroundStarTwinkle 2s ease-in-out infinite;opacity:0;box-shadow:0 0 var(--star-size) var(--star-color),0 0 calc(var(--star-size) * 2) var(--star-color)}@keyframes backgroundStarTwinkle{0%{opacity:0;transform:scale(.2) rotate(0)}25%{opacity:.3;transform:scale(.6) rotate(90deg)}50%{opacity:1;transform:scale(1) rotate(180deg)}75%{opacity:.3;transform:scale(.6) rotate(270deg)}to{opacity:0;transform:scale(.2) rotate(360deg)}}.shooting-stars{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none;overflow:hidden}.meteor{position:absolute;width:2px;height:2px;background:linear-gradient(45deg,#ffffff,transparent);border-radius:50%;animation:meteorShoot 2s linear infinite;opacity:0;box-shadow:0 0 4px #fff,0 0 8px #fff,0 0 12px #fff}.meteor:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(45deg,transparent,#ffffff,transparent);border-radius:50%;animation:meteorTrail 2s linear infinite}@keyframes meteorTrail{0%{transform:translate(0) scale(1);opacity:0}50%{transform:translate(-50px) scale(.5);opacity:.5}to{transform:translate(-100px) scale(.1);opacity:0}}@keyframes meteorShoot{0%{opacity:0;transform:translate(0) rotate(45deg)}10%{opacity:1;transform:translate(0) rotate(45deg)}to{opacity:0;transform:translate(-200px,200px) rotate(45deg)}}body{font-family:Microsoft YaHei,微软雅黑,Arial,sans-serif;background:url(/beijing.webp) no-repeat center center fixed;background-size:cover;background-attachment:fixed;overflow:hidden;color:#fff;min-height:100vh}#app{width:100vw;height:100vh;position:relative}.rain-curtain{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.7) 50%,rgba(0,0,0,.9) 100%);z-index:1;display:flex;align-items:center;justify-content:center;overflow:hidden;pointer-events:none;transition:all 3s ease;backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px)}.rain-curtain:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.05) 50%,transparent 100%),repeating-linear-gradient(0deg,transparent 0%,transparent 3px,rgba(255,255,255,.03) 3px,rgba(255,255,255,.03) 6px);animation:rainStream 3s linear infinite;pointer-events:none}.rain-curtain:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.08) 0%,transparent 40%),radial-gradient(circle at 70% 80%,rgba(255,255,255,.08) 0%,transparent 40%),radial-gradient(circle at 50% 50%,rgba(255,255,255,.05) 0%,transparent 60%);animation:waterFlow 4s ease-in-out infinite;pointer-events:none}@keyframes rainStream{0%{transform:translateY(-100%);opacity:.3}50%{opacity:.6}to{transform:translateY(100%);opacity:.3}}@keyframes waterFlow{0%,to{opacity:.4;transform:scale(1) rotate(0)}25%{opacity:.6;transform:scale(1.05) rotate(1deg)}50%{opacity:.8;transform:scale(1.1) rotate(0)}75%{opacity:.6;transform:scale(1.05) rotate(-1deg)}}.rain-curtain.clear{opacity:0;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);pointer-events:none}.raindrop{position:absolute;top:-20px;width:2px;height:20px;background:linear-gradient(to bottom,rgba(255,255,255,.8),rgba(255,255,255,.3));border-radius:0 0 50% 50%;animation:raindropFall linear infinite;opacity:0;box-shadow:0 0 4px #fff9,0 0 8px #fff6}@keyframes raindropFall{0%{opacity:0;transform:translateY(-20px) scaleY(.5)}10%{opacity:1;transform:translateY(0) scaleY(1)}90%{opacity:1;transform:translateY(calc(100vh + 20px)) scaleY(1)}to{opacity:0;transform:translateY(calc(100vh + 40px)) scaleY(.5)}}.ripple{position:absolute;width:4px;height:4px;background:rgba(255,255,255,.6);border-radius:50%;animation:rippleExpand 2s ease-out infinite;opacity:0;box-shadow:0 0 6px #fff6}@keyframes rippleExpand{0%{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(3)}}.sparkle{position:absolute;width:3px;height:3px;background:rgba(255,255,255,.8);border-radius:50%;animation:sparkle 2s ease-in-out infinite;opacity:0;box-shadow:0 0 6px #fff9}@keyframes sparkle{0%{opacity:0;transform:scale(0) rotate(0)}50%{opacity:1;transform:scale(1) rotate(180deg)}to{opacity:0;transform:scale(0) rotate(360deg)}}.typewriter{font-size:1.8rem;font-weight:700;color:#fff;text-shadow:0 0 10px rgba(255,255,255,.5);white-space:pre-wrap;overflow:hidden;border-right:3px solid #fff;animation:blink 1s infinite}.typewriter.completed{border-right:none}@keyframes blink{0%,50%{border-color:transparent}51%,to{border-color:#fff}}.btn{padding:8px 18px;font-size:.85rem;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#96ceb4,#feca57,#ff9ff3);background-size:300% 300%;border:2px solid transparent;border-radius:50px;color:#fff;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0000004d,0 0 20px #ff6b6b4d,0 0 40px #4ecdc433;margin:20px;animation:buttonGradient 3s ease-in-out infinite;text-shadow:0 0 5px rgba(255,255,255,.5);font-weight:700;position:relative;overflow:visible;white-space:nowrap;min-width:fit-content;z-index:2}.btn:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 6px 20px #0006,0 0 30px #ff6b6b80,0 0 60px #4ecdc44d;animation:buttonGradient 1s ease-in-out infinite}.btn:active{transform:translateY(0)}@keyframes buttonGradient{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.page-content{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1001;text-align:center;max-width:800px;padding:30px;opacity:0;transition:all 1s ease;background:rgba(0,0,0,.8);border-radius:10px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 8px 32px #0000004d}.page-content.show{opacity:1;transform:translate(-50%,-50%)}.scrolling-text{position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;z-index:2000;overflow:hidden;pointer-events:none}.danmaku{position:absolute;font-size:1.2rem;font-weight:700;white-space:nowrap;opacity:.8;padding:1px 6px;pointer-events:none;text-shadow:0 0 3px currentColor,0 0 6px currentColor,0 0 9px currentColor,0 0 9px rgba(0,0,0,.8);animation:danmakuMove 8s linear forwards,rainbowColor 3s ease-in-out infinite;transform:translate(100vw)}@keyframes rainbowColor{0%{color:#ff6b6b}16%{color:#ffa726}32%{color:#ffeb3b}48%{color:#66bb6a}64%{color:#42a5f5}80%{color:#ab47bc}96%{color:#ec407a}to{color:#ff6b6b}}@keyframes danmakuMove{0%{transform:translate(100vw);opacity:.9}5%{opacity:.9}95%{opacity:.9}to{transform:translate(-120vw);opacity:0}}.danmaku.slow{animation:danmakuMove 12s linear forwards,rainbowColor 3s ease-in-out infinite;transform:translate(100vw)}.danmaku.fast{animation:danmakuMove 6s linear forwards,rainbowColor 3s ease-in-out infinite;transform:translate(100vw)}@media (max-width: 768px){.typewriter{font-size:1rem}.btn{padding:6px 15px;font-size:.75rem;white-space:nowrap;min-width:fit-content}}.film-opening{position:fixed;top:0;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center;background:#000;transition:opacity 2s ease}.film-opening.fadeOut{opacity:0;pointer-events:none}.clapperboard{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:300px;height:200px;background:#fff;border:8px solid #000;border-radius:10px;display:flex;flex-direction:column;opacity:0;transition:all .5s ease;box-shadow:0 0 30px #ffffff4d;z-index:10}.clapperboard.clap{opacity:1;animation:clapperboardClap 1.5s ease-in-out}.clapperboard-top{flex:1;background:#000;display:flex;align-items:center;justify-content:center;border-bottom:4px solid #000}.clapperboard-text{color:#fff;font-size:24px;font-weight:700;font-family:Courier New,monospace;letter-spacing:2px}.clapperboard-bottom{flex:1;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}.scene-info,.take-info{color:#000;font-size:18px;font-weight:700;font-family:Courier New,monospace}@keyframes clapperboardClap{0%{opacity:0;transform:translate(-50%,-50%) scale(.5) rotate(-10deg)}20%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}80%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1.2) rotate(10deg)}}.director-voice{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:all .5s ease;z-index:10}.director-voice.speak{opacity:1;animation:directorSpeak 2s ease-in-out}.voice-text{color:#fff;font-size:48px;font-weight:700;font-family:Arial,sans-serif;text-shadow:0 0 20px rgba(255,255,255,.8);letter-spacing:4px}@keyframes directorSpeak{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}.music-control{position:fixed;top:20px;right:20px;z-index:2001;transition:opacity .3s ease}.music-control.hidden{opacity:0;pointer-events:none}.music-btn{width:50px;height:50px;border:none;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:20px;cursor:pointer;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 15px #0000004d}.music-btn:hover{background:rgba(0,0,0,.8);transform:scale(1.1);box-shadow:0 6px 20px #0006}.music-btn.playing{animation:musicPulse 2s ease-in-out infinite}@keyframes musicPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}
