*{margin:0;padding:0;box-sizing:border-box}:root{--pastel-pink: #ffb6d9;--pastel-blue: #b6d9ff;--pastel-purple: #d9b6ff;--pastel-yellow: #fff4b6;--pastel-peach: #ffd4b6;--dark-text: #4a4a4a;--light-text: #ffffff}body{font-family:Poppins,sans-serif;overflow:hidden;background:linear-gradient(135deg,var(--pastel-pink) 0%,var(--pastel-blue) 50%,var(--pastel-purple) 100%);color:var(--dark-text)}#webgl-canvas{position:fixed;top:0;left:0;width:100%;height:100%;outline:none;z-index:1}#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--pastel-pink) 0%,var(--pastel-blue) 50%,var(--pastel-purple) 100%);display:flex;justify-content:center;align-items:center;z-index:1000;transition:opacity .5s ease}#loading-screen.hidden{opacity:0;pointer-events:none}.loading-content{text-align:center;padding:2rem}.loading-content h1{font-family:Pacifico,cursive;font-size:2.5rem;color:var(--light-text);margin-bottom:2rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.loading-bar{width:300px;height:8px;background:#ffffff4d;border-radius:10px;overflow:hidden;margin:0 auto 1rem}.loading-progress{width:0%;height:100%;background:linear-gradient(90deg,var(--pastel-yellow),var(--pastel-peach));border-radius:10px;transition:width .3s ease}#loading-text{color:var(--light-text);font-size:1rem;font-weight:300}#ui-overlay{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10;display:flex;flex-direction:column;justify-content:space-between;padding:2rem}.birthday-message{text-align:center;pointer-events:none;animation:fadeIn 1s ease .5s both}.birthday-message h1{font-family:Pacifico,cursive;font-size:3.5rem;color:var(--light-text);text-shadow:3px 3px 6px rgba(0,0,0,.3);margin-bottom:.5rem;animation:float 3s ease-in-out infinite}.birthday-message p{color:var(--light-text);font-size:1rem;font-weight:300;text-shadow:1px 1px 3px rgba(0,0,0,.3)}.controls{position:fixed;top:2rem;right:2rem;display:flex;gap:1rem;pointer-events:all;animation:fadeIn 1s ease 1s both}.control-btn{width:50px;height:50px;border-radius:50%;border:none;background:#ffffffe6;color:var(--dark-text);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 15px #0003;transition:all .3s ease}.control-btn:hover{transform:scale(1.1);background:#fff;box-shadow:0 6px 20px #0000004d}.control-btn:active{transform:scale(.95)}.audio-icon{font-size:1.2rem}.music-status{position:fixed;top:2rem;left:2rem;pointer-events:none;animation:fadeIn 1s ease 1.2s both;background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.75rem 1.25rem;border-radius:25px;border:1px solid rgba(255,255,255,.3)}.music-status p{color:var(--light-text);font-size:.85rem;font-weight:400;text-shadow:1px 1px 3px rgba(0,0,0,.3);margin:0;display:flex;align-items:center;gap:.5rem}.music-status #music-mode-text{font-weight:300}.instructions{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;animation:fadeIn 1s ease 1.5s both}.instructions p{color:var(--light-text);font-size:.9rem;font-weight:300;text-shadow:1px 1px 3px rgba(0,0,0,.3);margin:.3rem 0;opacity:.9}.polaroid-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);display:flex;justify-content:center;align-items:center;z-index:100;pointer-events:all;opacity:0;transition:all .6s cubic-bezier(.4,0,.2,1)}.polaroid-modal.show{opacity:1;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.polaroid-modal.hidden{opacity:0;background:#0000;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px);pointer-events:none}.modal-content{position:relative;background:#fff;padding:20px;border-radius:15px;max-width:90%;max-height:90%;box-shadow:0 20px 60px #0009;transform:scale(.8) translateY(30px);opacity:0;transition:all .5s cubic-bezier(.34,1.56,.64,1)}.polaroid-modal.show .modal-content{transform:scale(1) translateY(0);opacity:1}.close-modal{position:absolute;top:-15px;right:-15px;width:40px;height:40px;border-radius:50%;border:none;background:var(--pastel-pink);color:#fff;font-size:1.5rem;cursor:pointer;box-shadow:0 4px 10px #0000004d;transition:all .3s ease;display:flex;align-items:center;justify-content:center;line-height:1}.close-modal:hover{transform:scale(1.1);background:var(--pastel-purple)}#modal-image{max-width:100%;max-height:70vh;border-radius:5px;display:block}#modal-caption{margin-top:1rem;text-align:center;font-size:1.1rem;color:var(--dark-text);font-weight:400}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@media(max-width:768px){.birthday-message h1{font-size:2rem}.birthday-message p{font-size:.85rem}.instructions p{font-size:.75rem}.controls{top:1rem;right:1rem}.control-btn{width:45px;height:45px;font-size:1.2rem}.music-status{top:1rem;left:1rem;padding:.6rem 1rem}.music-status p{font-size:.75rem}.loading-content h1{font-size:1.8rem}.loading-bar{width:250px}}@media(max-width:480px){#ui-overlay{padding:1rem}.birthday-message h1{font-size:1.5rem}.instructions{bottom:1rem}.instructions p{font-size:.7rem}}
