.cursor-crosshair{cursor:crosshair}.animate-float{animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-glow{animation:glow 2s ease-in-out infinite alternate}@keyframes glow{0%{box-shadow:0 0 5px #ff69b480}to{box-shadow:0 0 20px #ff69b4cc}}.memory-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.memory-modal{background:linear-gradient(135deg,beige,#e6e6fa);border-radius:20px;max-width:95vw;max-height:95vh;width:1200px;height:800px;box-shadow:0 20px 60px #0000004d;position:relative;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .4s ease-out;border:3px solid #d4b08a}.memory-modal-close{position:absolute;top:15px;right:20px;background:#ffffffe6;border:none;border-radius:50%;width:40px;height:40px;font-size:20px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;color:#8b4513;transition:all .2s ease;box-shadow:0 2px 10px #0003}.memory-modal-close:hover{background:#fff;transform:scale(1.1);color:sienna}.memory-modal-header{padding:25px 30px 15px;text-align:center;background:#ffffffb3;border-bottom:2px solid #d4b08a}.memory-modal-title{font-size:2rem;color:#8b4513;margin:0 0 8px;font-family:Dancing Script,cursive;font-weight:700}.memory-modal-date{color:sienna;font-size:1rem;font-style:italic}.memory-slideshow{flex:1;position:relative;display:flex;align-items:center;justify-content:center;background:#ffffff80;margin:0 20px;border-radius:15px;overflow:hidden;box-shadow:inset 0 2px 10px #0000001a}.slide-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:10px}.slide-image,.slide-video{max-width:95%;max-height:95%;width:auto;height:auto;object-fit:contain;border-radius:10px;box-shadow:0 5px 20px #0003}.slide-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffffe6;border:none;border-radius:50%;width:50px;height:50px;font-size:20px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;color:#8b4513;transition:all .2s ease;box-shadow:0 3px 15px #0003}.slide-nav:hover{background:#fff;transform:translateY(-50%) scale(1.1)}.slide-nav-prev{left:20px}.slide-nav-next{right:20px}.slide-indicators{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:10px}.slide-indicator{width:12px;height:12px;border-radius:50%;border:none;background:#ffffff80;cursor:pointer;transition:all .2s ease}.slide-indicator.active{background:#8b4513;transform:scale(1.2)}.slide-indicator:hover{background:#fffc}.memory-description{padding:20px 30px;background:#fffc;border-top:2px solid #d4b08a}.memory-text{font-size:1.1rem;line-height:1.6;color:#5d4037;text-align:center;font-style:italic;max-height:120px;overflow-y:auto}.memory-modal-footer{padding:20px 30px;text-align:center;background:#ffffffb3}.memory-modal-button{background:linear-gradient(135deg,#8b4513,sienna);color:#fff;border:none;padding:12px 30px;border-radius:25px;font-size:1rem;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 15px #0003;font-weight:600}.memory-modal-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #0000004d}@media (max-width: 768px){.memory-modal{width:95vw;height:85vh;margin:0 10px}.memory-modal-title{font-size:1.5rem}.memory-modal-header{padding:20px 15px 10px}.memory-description{padding:15px 20px}.memory-text{font-size:1rem}.slide-nav{width:40px;height:40px;font-size:16px}.slide-nav-prev{left:10px}.slide-nav-next{right:10px}}.birthday-modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .3s ease-out}.birthday-modal{background:linear-gradient(135deg,beige,#e6e6fa);border-radius:20px;max-width:95vw;max-height:95vh;width:800px;height:500px;box-shadow:0 20px 60px #0000004d;position:relative;display:flex;flex-direction:column;overflow:hidden;animation:slideUp .4s ease-out;border:3px solid #d4b08a}@keyframes slideUp{0%{opacity:0;transform:translateY(50px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.birthday-modal-close{position:absolute;top:15px;right:20px;background:#ffffffe6;border:none;border-radius:50%;width:40px;height:40px;font-size:20px;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;color:#8b4513;transition:all .2s ease;box-shadow:0 2px 10px #0003}.birthday-modal-close:hover{background:#fff;transform:scale(1.1);color:sienna}.birthday-modal-header{padding:25px 30px 15px;text-align:center;background:#ffffffb3;border-bottom:2px solid #d4b08a}.birthday-modal-title{font-size:2rem;color:#8b4513;margin:0 0 8px;font-family:Dancing Script,cursive;font-weight:700}.birthday-modal-content{flex:1;padding:30px;background:#ffffff80;margin:0 20px;border-radius:15px;overflow-y:auto;box-shadow:inset 0 2px 10px #0000001a}.birthday-message{text-align:center}.birthday-message p{font-size:1.2rem;line-height:1.6;color:#5d4037;margin-bottom:20px;font-style:italic}.birthday-modal-footer{padding:20px 30px;text-align:center;background:#ffffffb3}.birthday-modal-button{background:linear-gradient(135deg,#8b4513,sienna);color:#fff;border:none;padding:12px 30px;border-radius:25px;font-size:1rem;cursor:pointer;transition:all .2s ease;box-shadow:0 3px 15px #0003;font-weight:600}.birthday-modal-button:hover{transform:translateY(-2px);box-shadow:0 5px 20px #0000004d}@media (max-width: 768px){.birthday-modal{width:95vw;height:85vh;margin:0 10px}.birthday-modal-title{font-size:1.5rem}.birthday-modal-header{padding:20px 15px 10px}.birthday-modal-content{padding:20px}.birthday-message p{font-size:1rem}}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden}*{box-sizing:border-box}.App{width:100vw;height:100vh;position:relative;margin:0;padding:0;overflow:hidden}canvas{width:100vw!important;height:100vh!important;display:block!important}.ui-panel{transition:all .3s ease-in-out;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ui-panel:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026}.memory-modal::-webkit-scrollbar{width:8px}.memory-modal::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.memory-modal::-webkit-scrollbar-thumb{background:linear-gradient(45deg,#ec4899,#8b5cf6);border-radius:4px}.memory-modal::-webkit-scrollbar-thumb:hover{background:linear-gradient(45deg,#db2777,#7c3aed)}.memory-modal{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes glow{0%,to{opacity:.5}50%{opacity:1}}.animate-glow{animation:glow 2s ease-in-out infinite}button{transition:all .3s ease}button:hover{transform:translateY(-2px);box-shadow:0 8px 25px #0003}.gradient-button{background:linear-gradient(45deg,#ff6b6b,#ee5a24);border:none;color:#fff;padding:12px 24px;border-radius:25px;cursor:pointer;font-weight:700;font-size:16px;transition:all .3s ease;box-shadow:0 4px 15px #ee5a244d}.gradient-button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ee5a2466}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.loading{animation:pulse 2s infinite}.landing-page{width:100vw;height:100vh;background:linear-gradient(135deg,#8b4513,peru,#deb887,#f4e4bc,#8b4513);display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto;position:relative}.landing-page:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100'%3E%3Cg fill-opacity='0.03'%3E%3Cpolygon fill='%23000' points='50 0 60 40 100 50 60 60 50 100 40 60 0 50 40 40'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(circle at 20% 30%,rgba(139,69,19,.1) 1px,transparent 1px),radial-gradient(circle at 80% 70%,rgba(139,69,19,.1) 1px,transparent 1px);background-size:60px 60px,100px 100px,150px 150px;animation:float 25s infinite linear}@keyframes float{0%{transform:translateY(0) translate(0)}33%{transform:translateY(-10px) translate(5px)}66%{transform:translateY(5px) translate(-5px)}to{transform:translateY(0) translate(0)}}.landing-content{max-width:800px;width:100%;z-index:1;position:relative}.card-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000004d;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:20px;z-index:1000;animation:fadeIn .5s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.birthday-card{background:linear-gradient(45deg,transparent 10px,#F5E6D3 10px),linear-gradient(-45deg,transparent 10px,#F5E6D3 10px),linear-gradient(135deg,transparent 10px,#F5E6D3 10px),linear-gradient(-135deg,transparent 10px,#F5E6D3 10px);background-size:20px 20px;background-position:top left,top right,bottom left,bottom right;background-repeat:no-repeat;background-color:#f5e6d3;border-radius:15px;padding:50px 40px;margin-bottom:30px;box-shadow:inset 0 0 30px #8b45131a,0 8px 32px #8b45134d,0 0 0 3px tan,0 0 0 6px #8b7355;position:relative;border:2px solid #8B4513}.birthday-card:before{content:"";position:absolute;inset:-5px;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(139,69,19,.1) 2px,rgba(139,69,19,.1) 4px);border-radius:15px;z-index:-1}.birthday-card:after{content:"✦";position:absolute;top:15px;left:50%;transform:translate(-50%);font-size:1.5rem;color:#8b4513;opacity:.6}.card-header{text-align:center;margin-bottom:30px;position:relative}.birthday-title{font-size:2.8rem;color:#8b4513;margin:0 0 20px;font-weight:700;text-shadow:2px 2px 4px rgba(139,69,19,.3);font-family:"Serif",Georgia,Times New Roman,serif;letter-spacing:1px}.decorative-line{width:120px;height:3px;background:linear-gradient(90deg,transparent,#8B4513,#D2B48C,#8B4513,transparent);margin:0 auto;border-radius:2px;position:relative}.decorative-line:before,.decorative-line:after{content:"❦";position:absolute;top:-8px;color:#8b4513;font-size:1rem}.decorative-line:before{left:-20px}.decorative-line:after{right:-20px}.card-body{text-align:center;line-height:1.8;font-family:"Serif",Georgia,Times New Roman,serif}.birthday-message{font-size:1.4rem;color:#5d4e37;margin-bottom:25px;font-weight:600;font-style:italic;position:relative}.birthday-message:before,.birthday-message:after{content:"~";color:#8b4513;font-size:1.2rem;margin:0 10px}.personal-message{font-size:1.1rem;color:#5d4e37;margin-bottom:30px;max-width:600px;margin-left:auto;margin-right:auto;line-height:1.6;font-style:italic}.signature{font-size:1.1rem;color:#5d4e37;font-style:italic;position:relative;margin-top:20px}.signature:before{content:"";position:absolute;top:-15px;left:50%;transform:translate(-50%);width:80px;height:1px;background:linear-gradient(90deg,transparent,#8B4513,transparent)}.signature-name{color:#8b4513;font-weight:700;font-style:normal;font-family:cursive;font-size:1.2rem}.instructions-card{background:#fffffff2;border-radius:20px;padding:40px;margin-bottom:30px;box-shadow:0 20px 40px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.instructions-title{font-size:2rem;color:#2d3748;text-align:center;margin-bottom:30px;font-weight:700}.objectives-section,.controls-section,.tips-section{margin-bottom:30px}.objectives-section h3,.controls-section h3,.tips-section h3{font-size:1.3rem;color:#2d3748;margin-bottom:15px;font-weight:700}.objectives-list,.tips-list{list-style:none;padding:0}.objectives-list li,.tips-list li{background:#667eea1a;margin:10px 0;padding:12px 20px;border-radius:10px;border-left:4px solid #667eea;font-size:1rem;color:#2d3748}.controls-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px}.control-item{background:#764ba21a;padding:15px;border-radius:10px;border-left:4px solid #764ba2;font-size:.95rem;color:#2d3748}.enter-section{text-align:center;position:relative}.enter-island-btn{font-size:1.3rem;padding:18px 40px;margin-bottom:15px;background:linear-gradient(45deg,#8b4513,tan,#8b4513);border:3px solid #5D4E37;color:#f5e6d3;border-radius:15px;cursor:pointer;font-family:"Serif",Georgia,Times New Roman,serif;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.5);box-shadow:0 6px 20px #8b451366,inset 0 1px #f5e6d34d;position:relative;transition:all .3s ease}.enter-island-btn:before{content:"";position:absolute;inset:-3px;background:linear-gradient(45deg,tan,#8b4513);border-radius:15px;z-index:-1}.enter-island-btn:hover{transform:translateY(-3px);box-shadow:0 8px 25px #8b451380,inset 0 1px #f5e6d366;background:linear-gradient(45deg,sienna,#deb887,sienna)}.enter-subtitle{color:#ffffffe6;font-size:1rem;margin:0;text-shadow:1px 1px 2px rgba(0,0,0,.3)}@media (max-width: 768px){.landing-content{max-width:95%}.birthday-card,.instructions-card{padding:25px}.birthday-title{font-size:2.2rem}.controls-grid{grid-template-columns:1fr}.enter-island-btn{font-size:1.1rem;padding:15px 30px}}
