*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body{color:#fff;width:100%;height:100%;font-family:Outfit,sans-serif;overflow:hidden;background:#000!important}#canvas-container{z-index:1;width:100vw;height:100vh;transition:filter .45s,transform .45s;position:fixed;top:0;left:0}body.reveal-open #canvas-container{filter:blur(18px);pointer-events:none;transform:scale(1.035)}canvas{cursor:grab;width:100%;height:100%;display:block}canvas:active{cursor:grabbing}#floating-text-container{pointer-events:none;z-index:100;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.floating-love-text{color:#fff;letter-spacing:.8px;text-shadow:0 2px 10px #000000f2,0 0 8px #fffffff2,0 0 16px #64c8ffa6;pointer-events:none;-webkit-user-select:none;user-select:none;overflow-wrap:anywhere;white-space:normal;text-align:center;width:min(88vw,760px);max-height:72vh;font-family:Outfit,sans-serif;font-size:1.55rem;font-weight:700;line-height:1.35;animation-duration:4.6s;animation-timing-function:cubic-bezier(.16,1,.3,1);animation-fill-mode:forwards;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.reveal-back-button{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));z-index:20;color:#fff;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(12px);background:#23081cd1;border:1px solid #ffdcf0b3;border-radius:999px;min-width:74px;min-height:44px;padding:10px 16px;font:600 .95rem Outfit,sans-serif;position:fixed;box-shadow:0 0 24px #ff379180}.reveal-back-button:active{transform:scale(.96)}.floatZoom{animation-name:floatZoom}.floatSlide{animation-name:floatSlide}.floatDrift{animation-name:floatDrift}@keyframes floatZoom{0%{opacity:0;filter:blur(12px);transform:translate(-50%,-50%)scale(.35)}18%,78%{opacity:1;filter:blur();transform:translate(-50%,-50%)scale(1)}to{opacity:0;filter:blur(7px);transform:translate(-50%,-85%)scale(1.08)}}@keyframes floatSlide{0%{opacity:0;transform:translate(-20%,-50%)scale(.85)}18%,78%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-80%,-70%)scale(1.04)}}@keyframes floatDrift{0%{opacity:0;transform:translate(-50%,-20%)rotate(-6deg)scale(.9)}18%,78%{opacity:1;transform:translate(-50%,-50%)rotate(0)scale(1)}to{opacity:0;transform:translate(-50%,-95%)rotate(5deg)scale(1.06)}}@keyframes floatFadeUp{0%{opacity:0;transform:translate(-50%)scale(.85)}10%{opacity:1;transform:translate(-50%,-25%)scale(1.05)}25%{opacity:1;transform:translate(-50%,-40%)scale(1)}80%{opacity:1;transform:translate(-50%,-70%)scale(1)}to{opacity:0;transform:translate(-50%,-100%)scale(1)}}@media (width<=600px){.floating-love-text{max-width:82vw;font-size:1.25rem}.reveal-back-button{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right))}}.memory-overlay{z-index:300;-webkit-backdrop-filter:blur(50px);cursor:pointer;background:#05000f8c;justify-content:center;align-items:center;animation:.35s ease-out forwards memoryOverlayIn;display:flex;position:fixed;inset:0}.memory-overlay--closing{animation:.4s ease-in forwards memoryOverlayOut}@keyframes memoryOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes memoryOverlayOut{0%{opacity:1}to{opacity:0}}.memory-card{text-align:center;cursor:default;background:linear-gradient(160deg,#280f23e6,#0f0514f2);border:1.5px solid #ffd296a6;border-radius:22px;width:auto;max-width:94vw;max-height:92vh;padding:18px 18px 22px;animation:.45s cubic-bezier(.2,1.4,.4,1) forwards memoryCardPop;box-shadow:0 0 40px #ffbe7859,0 20px 60px #0009}@keyframes memoryCardPop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.memory-card-photo{background-color:#ffffff0d;border:1px solid #ffd29666;border-radius:16px;justify-content:center;align-items:center;width:auto;max-width:90vw;max-height:84vh;font-size:3rem;display:flex}.memory-card-image{object-fit:contain;border-radius:15px;width:auto;max-width:90vw;height:auto;max-height:84vh;display:block}.memory-card-photo--empty{background:repeating-linear-gradient(135deg,#ffb4781f,#ffb4781f 10px,#ff96c81f 10px 20px)}.memory-card-video{object-fit:cover;border-radius:15px;width:auto;max-width:90vw;height:auto;max-height:84vh}.memory-card-title{color:#ffe9c7;text-shadow:0 0 12px #ffc88c99;letter-spacing:.3px;font-family:Outfit,sans-serif;font-size:1.3rem;font-weight:700}.memory-card-hint{color:#ffffff73;letter-spacing:.5px;margin-top:10px;font-size:.75rem}.music-toggle{z-index:150;-webkit-backdrop-filter:blur(8px);color:#fff;cursor:pointer;background:#140a1e8c;border:1.5px solid #ffffff59;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.3rem;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 0 16px #78c8ff40}.music-toggle:hover{transform:scale(1.08)}.music-toggle.is-playing{border-color:#ffc88ccc;animation:1.6s ease-in-out infinite musicPulse;box-shadow:0 0 22px #ffbe788c}@keyframes musicPulse{0%,to{box-shadow:0 0 22px #ffbe788c}50%{box-shadow:0 0 34px #ffbe78d9}}@media (width<=600px){.music-toggle{width:46px;height:46px;font-size:1.1rem;bottom:16px;right:16px}}
