*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow-x:hidden}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f5f5f5}::-webkit-scrollbar-thumb{background:#2c3e50}::-webkit-scrollbar-thumb:hover{background:#1a252f}.music-player{position:fixed;bottom:20px;right:20px;display:flex;align-items:center;gap:8px;background:#fffffff2;padding:10px 16px;border-radius:30px;box-shadow:0 4px 20px #00000026;z-index:100;border:1px solid rgba(44,62,80,.1)}.music-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:6px 10px;border-radius:50%;transition:all .2s ease;color:#2c3e50;display:flex;align-items:center;justify-content:center}.music-btn:hover{background:#2c3e501a;transform:scale(1.1)}.music-play{font-size:1.4rem;background:#2c3e50;color:#fff;width:40px;height:40px}.music-play:hover{background:#1a252f;color:#fff}.music-title{font-family:Georgia,serif;font-size:.85rem;font-style:italic;color:#5d6d7e;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:8px}@media(max-width:768px){.music-player{bottom:15px;right:15px;padding:8px 12px}.music-title{max-width:100px;font-size:.75rem}.music-btn{font-size:1rem;padding:4px 8px}.music-play{width:34px;height:34px;font-size:1.2rem}}.street-view{width:100%;height:100vh;position:relative;overflow:hidden;display:flex;flex-direction:column;background-size:cover;background-position:center 40%;background-repeat:no-repeat}.street-title{position:relative;z-index:10;text-align:center;font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;font-size:clamp(1.8rem,5vw,3.5rem);font-weight:400;font-style:italic;color:#2c3e50;text-shadow:1px 1px 2px rgba(255,255,255,.8);margin-top:clamp(40px,8vh,80px);margin-bottom:8px;letter-spacing:clamp(2px,.4vw,4px)}.street-subtitle{position:relative;z-index:10;text-align:center;font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;font-size:clamp(.65rem,1.5vw,1.1rem);font-weight:400;letter-spacing:clamp(1px,.2vw,2px);text-transform:uppercase;color:#5d6d7e;margin-bottom:12px;padding:0 20px}.street-instruction{position:relative;z-index:10;text-align:center;font-family:Georgia,Times New Roman,serif;font-size:clamp(.7rem,1.4vw,1.05rem);font-weight:400;font-style:italic;color:#6b7c8a;margin-bottom:0;padding:0 20px}.houses-container{position:absolute;bottom:18%;left:50%;transform:translate(-50%);z-index:5;display:flex;flex-wrap:nowrap;justify-content:center;align-items:flex-end;gap:clamp(10px,3vw,40px);padding:0 clamp(15px,4vw,60px);max-width:1400px;width:100%}@media(max-aspect-ratio:16/10){.houses-container{bottom:22%}}@media(max-aspect-ratio:4/3){.houses-container{bottom:26%}}@media(max-aspect-ratio:1/1){.houses-container{bottom:32%}}@media(max-aspect-ratio:3/4){.houses-container{bottom:38%}}.house-button{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;transition:transform .4s ease;padding:clamp(5px,1vw,15px);flex-shrink:1;min-width:0}.house-button:hover{transform:translateY(-12px)}.house-button:hover .house-image{filter:drop-shadow(0 25px 35px rgba(0,0,0,.25))}.house-button:focus{outline:none}.house-button:active{transform:translateY(-8px)}.house-image{max-height:clamp(80px,14vw,180px);width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.15));transition:filter .4s ease}.house-left .house-image{max-height:clamp(70px,12vw,160px)}.house-center .house-image{max-height:clamp(90px,15vw,200px)}.house-right .house-image{max-height:clamp(75px,13vw,170px)}.house-label{margin-top:clamp(8px,1.2vw,16px);font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;font-size:clamp(.55rem,1vw,.95rem);font-weight:400;letter-spacing:clamp(.5px,.12vw,1.5px);text-transform:uppercase;color:#2c3e50;background:#fffffff2;padding:clamp(6px,.8vw,10px) clamp(12px,1.8vw,24px);border:1px solid rgba(44,62,80,.2);box-shadow:0 2px 8px #00000014;transition:all .3s ease;white-space:nowrap}.house-button:hover .house-label{background:#2c3e50;color:#fdf6e3;border-color:#2c3e50}.envelope{position:relative;width:180px;height:126px;cursor:pointer;transition:transform .3s ease}.envelope:hover{transform:translateY(-8px) scale(1.02)}.envelope:hover .envelope-shadow{transform:scale(1.1);opacity:.15}.envelope-back{position:relative;width:100%;height:100%;background:linear-gradient(145deg,#f5f0e6,#e8dfd0);border-radius:6px;box-shadow:0 4px 15px #0000001a,inset 0 1px #ffffff80;border:1px solid rgba(0,0,0,.08)}.envelope-stamp{position:absolute;top:10px;right:10px;width:40px;height:50px;background:linear-gradient(145deg,#fff5f5,#ffe0e0);border:2px solid #e8e8e8;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a}.envelope-stamp:before{content:"";position:absolute;inset:-4px;background:radial-gradient(circle,transparent 3px,#f5f0e6 3px) top left / 8px 8px repeat-x,radial-gradient(circle,transparent 3px,#f5f0e6 3px) bottom left / 8px 8px repeat-x,radial-gradient(circle,transparent 3px,#f5f0e6 3px) top left / 8px 8px repeat-y,radial-gradient(circle,transparent 3px,#f5f0e6 3px) top right / 8px 8px repeat-y;z-index:-1}.envelope-stamp .stamp-heart{font-size:1.5rem;color:#c41e3a}.envelope-from{position:absolute;top:12px;left:12px;font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;font-size:.85rem;font-style:italic;color:#4a3f35;letter-spacing:.5px;text-align:left;line-height:1.4}.envelope-lines{position:absolute;top:55%;left:50%;transform:translate(-50%,-50%);width:60%;display:flex;flex-direction:column;gap:8px}.envelope-lines span{height:2px;background:#00000014;border-radius:1px}.envelope-lines span:nth-child(2){width:80%;margin:0 auto}.envelope-lines span:nth-child(3){width:50%;margin:0 auto}.envelope-shadow{position:absolute;bottom:-10px;left:10%;width:80%;height:20px;background:radial-gradient(ellipse,rgba(0,0,0,.2) 0%,transparent 70%);transition:all .3s ease}.letter-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .3s ease}.letter-modal{position:relative;max-width:850px;width:100%;max-height:80vh;animation:slideUp .3s ease;overflow:hidden;background:linear-gradient(to bottom,#fdfbf7,#f8f4ed);border-radius:2px;box-shadow:0 2px 4px #0000001a,0 8px 16px #0000001a,0 20px 40px #00000026,inset 0 0 80px #00000008;background-image:linear-gradient(to bottom,#fdfbf7,#f8f4ed),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%' height='100%' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E")}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.letter-close{position:absolute;top:20px;right:20px;width:32px;height:32px;background:transparent;border:none;font-size:1.8rem;color:#999;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;line-height:1;z-index:10}.letter-close:hover{color:#333;transform:scale(1.1)}.letter-header{padding:50px 60px 20px;font-family:Georgia,Times New Roman,serif;font-size:1.4rem;font-style:italic;color:#4a4a4a;border-bottom:none}.letter-content{padding:40px 60px 50px;max-height:55vh;overflow-y:auto}.letter-content p{font-family:Georgia,Times New Roman,serif;font-size:1.05rem;color:#3a3a3a;line-height:2;margin:0;white-space:pre-wrap;text-align:left;text-indent:0}.letter-signature{padding:20px 60px 40px;font-family:Brush Script MT,Segoe Script,cursive;font-size:1.6rem;color:#4a4a4a;text-align:right}@media(max-width:768px){.envelope{width:160px;height:115px}.envelope-stamp{width:32px;height:40px;top:8px;right:8px}.envelope-stamp .stamp-heart{font-size:1.2rem}.envelope-from{font-size:.7rem;top:8px;left:8px}.envelope-lines{gap:6px}.letter-modal{max-width:100%;margin:10px}.letter-header{padding:35px 30px 15px;font-size:1.2rem}.letter-content{padding:30px 30px 20px}.letter-content p{font-size:.95rem;line-height:1.9}.letter-signature{padding:15px 30px 30px;font-size:1.3rem}}.polaroid{background:#fefefe;padding:10px 10px 35px;box-shadow:0 4px 6px #0000001a,0 10px 30px #00000026;cursor:pointer;transition:all .3s ease;transform:rotate(var(--rotation, 0deg));position:relative}.polaroid:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%,rgba(0,0,0,.02) 100%);pointer-events:none}.polaroid:hover{transform:rotate(0) scale(1.08) translateY(-10px);box-shadow:0 15px 40px #00000040,0 5px 15px #0000001a;z-index:10}.polaroid-inner{width:160px;height:160px;overflow:hidden;background:#f0f0f0}.polaroid-inner img{width:100%;height:100%;object-fit:cover;display:block}.video-thumbnail{position:relative;width:100%;height:100%}.video-thumbnail video{width:100%;height:100%;object-fit:cover}.play-overlay{position:absolute;inset:0;background:#0000004d;display:flex;align-items:center;justify-content:center;transition:background .3s ease}.polaroid:hover .play-overlay{background:#0006}.play-overlay span{font-size:2.2rem;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.5);transition:transform .3s ease}.polaroid:hover .play-overlay span{transform:scale(1.2)}.lightbox-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:2000;padding:40px;animation:fadeIn .3s ease}.lightbox-content{position:relative;max-width:90vw;max-height:85vh;animation:scaleIn .3s ease}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.lightbox-content img,.lightbox-content video{max-width:100%;max-height:85vh;border-radius:4px;box-shadow:0 20px 60px #00000080}.lightbox-close{position:absolute;top:-50px;right:0;background:transparent;border:none;font-size:2.5rem;color:#fff;cursor:pointer;transition:all .2s ease;line-height:1;opacity:.8}.lightbox-close:hover{opacity:1;transform:scale(1.1)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;font-size:4rem;color:#fff;cursor:pointer;padding:20px 15px;transition:all .2s ease;opacity:.7;border-radius:8px;line-height:1;z-index:10}.lightbox-nav:hover{opacity:1;background:#fff3}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-counter{position:absolute;bottom:-40px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:.9rem;font-family:system-ui,-apple-system,sans-serif;letter-spacing:1px}@media(max-width:768px){.polaroid-container{gap:20px;justify-content:center}.polaroid{padding:8px 8px 28px}.polaroid-inner{width:120px;height:120px}.lightbox-overlay{padding:20px}.lightbox-content{max-width:95vw}.lightbox-close{top:-40px;font-size:2rem}.lightbox-nav{font-size:2.5rem;padding:15px 10px}.lightbox-prev{left:5px}.lightbox-next{right:5px}.lightbox-counter{bottom:-35px;font-size:.8rem}}.house-memories{min-height:100vh;padding:40px 50px;position:relative;background-image:var(--house-bg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed}.house-memories-overlay{position:fixed;inset:0;background:#00000073;pointer-events:none;z-index:1}.memories-header{display:flex;align-items:center;margin-bottom:40px;position:relative;z-index:2}.memories-header .back-button{position:absolute;left:0}.memories-header .memories-title{flex:1;text-align:center}.back-button{background:#fffffff2;border:1px solid rgba(44,62,80,.2);padding:14px 28px;font-size:.9rem;font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;letter-spacing:1px;text-transform:uppercase;color:#2c3e50;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 10px #00000014}.back-button:hover{background:#2c3e50;color:#fdf6e3;border-color:#2c3e50;transform:translate(-5px)}.memories-title{font-family:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;font-size:2.8rem;font-weight:400;font-style:italic;color:#fff;text-shadow:2px 2px 8px rgba(0,0,0,.5);margin:0;letter-spacing:3px}.memories-content{display:flex;flex-wrap:wrap;gap:30px;align-items:flex-start;position:relative;z-index:2}@media(max-width:768px){.house-memories{padding:30px}.memories-header{flex-direction:column-reverse;align-items:flex-start;gap:20px}.memories-title{font-size:2rem;align-self:flex-end}.memories-content{justify-content:center}.back-button{padding:12px 20px;font-size:.85rem}}html,body,#root{min-height:100vh;width:100%}body{font-family:Georgia,Times New Roman,serif;background:#f5f5f5;overflow-x:hidden}#root{animation:fadeIn .5s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}
