@import"https://fonts.googleapis.com/css2?family=Libre+Barcode+39+Extended+Text&display=swap";:root{--text-color: #ffffff;--primary-color: #ffffff;--accent-color: #ffe6e6;--bg-base: #ff9aa2;--font-heading: "Shadows Into Light", cursive, sans-serif;--font-body: "Shadows Into Light", cursive, sans-serif;--x: 50%;--y: 50%;--scale: 1;--rotate: 0deg;--bg-opacity: .35}*{margin:0;padding:0;box-sizing:border-box}body{background:linear-gradient(135deg,#ff9aa2,#ffc3a0,#ff6f91);color:var(--text-color);font-family:var(--font-body);overflow-x:hidden;scroll-behavior:smooth;scroll-snap-type:y mandatory;transition:all 1.5s cubic-bezier(.4,0,.2,1)}html{scroll-behavior:smooth;scroll-snap-type:y mandatory}@media(max-width:768px){html,body{scroll-snap-type:none}.story-section{scroll-snap-align:none;scroll-snap-stop:normal}}.bg-image{position:fixed;inset:0;background:url(./20170806_233308-B9OjM5-d.jpeg) center/cover no-repeat;opacity:0;z-index:-6;pointer-events:none;transition:opacity .6s ease}.bg-image.is-active{opacity:.25}.overlay{position:fixed;inset:0;background:#00000059;z-index:1;pointer-events:none}.optical-bg{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-5;pointer-events:none;background:linear-gradient(120deg,#ff9aa2a6,#ffc3a08c,#ff6f91a6);background-size:300% 300%;animation:flowBackground 20s ease-in-out infinite alternate;opacity:.8}@keyframes flowBackground{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.particles-container{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-3;pointer-events:none;overflow:hidden}.particle{position:absolute;border-radius:50%;background:radial-gradient(circle,#ffffffe6,#fff0 70%);opacity:.6;animation:drift 15s linear infinite}@keyframes drift{0%{transform:translateY(0) translate(0) scale(1);opacity:0}10%{opacity:.6}90%{opacity:.6}to{transform:translateY(-100vh) translate(50px) scale(1.5);opacity:0}}#thread-svg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-2;pointer-events:none}#thread-path{stroke-dasharray:2000;stroke-dashoffset:2000;filter:drop-shadow(0px 0px 10px rgba(255,255,255,.45))}.story-section{min-height:100vh;height:100vh;width:100vw;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:4rem 2rem;position:relative;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;opacity:0;transform:translateY(40px) scale(.98);transition:opacity 1.5s cubic-bezier(.25,.46,.45,.94),transform 1.5s cubic-bezier(.25,.46,.45,.94);--section-overlay: 0}.story-section.visible{opacity:1;transform:translateY(0) scale(1)}.story-section:before{content:"";position:absolute;inset:0;background:transparent;opacity:var(--section-overlay);z-index:1}.content{max-width:800px;z-index:10;transition:transform .5s cubic-bezier(.25,.46,.45,.94)}.section-bg{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}.section-bg-img{position:absolute;left:var(--x, 50%);top:var(--y, 50%);width:min(320px,45vw);height:auto;-o-object-fit:cover;object-fit:cover;opacity:0;transform:translate(-50%,-50%) scale(var(--scale, 1)) rotate(var(--rotate, 0deg));border-radius:18px;box-shadow:0 30px 60px #00000040;filter:saturate(1.02) contrast(1.05);transition:opacity 1.2s ease,transform 7s ease;animation:floatBackground 14s ease-in-out infinite alternate}.section-bg-img.is-active{opacity:var(--bg-opacity, .35)}.story-section:not(.is-active) .section-bg-img{opacity:0!important}@keyframes floatBackground{0%{transform:translate(-50%,-50%) scale(var(--scale, 1)) rotate(var(--rotate, 0deg))}to{transform:translate(-52%,-48%) scale(calc(var(--scale, 1) + .05)) rotate(calc(var(--rotate, 0deg) + 1.2deg))}}.theme-dawn{--section-gradient: radial-gradient(circle at 20% 20%, rgba(255, 250, 244, .95), rgba(240, 230, 214, .82)), linear-gradient(120deg, #f7f1e7, #e9ddcd, #f3e7d6)}.theme-rose{--section-gradient: radial-gradient(circle at 70% 20%, rgba(248, 240, 230, .95), rgba(232, 214, 195, .82)), linear-gradient(120deg, #f3e7da, #e2cbb1, #f1e3d2)}.theme-amber{--section-gradient: radial-gradient(circle at 30% 20%, rgba(250, 242, 231, .95), rgba(228, 206, 178, .84)), linear-gradient(120deg, #f2e4d1, #e1c6a2, #f2e1cd)}.theme-shadow{--section-gradient: radial-gradient(circle at 50% 20%, rgba(214, 200, 184, .9), rgba(178, 159, 138, .86)), linear-gradient(120deg, #d3c2af, #b39576, #c6b09a);--section-overlay: .9}.theme-reflect{--section-gradient: radial-gradient(circle at 30% 20%, rgba(240, 234, 226, .95), rgba(212, 198, 184, .86)), linear-gradient(120deg, #f0e7dd, #d6c7b8, #efe4d8)}.theme-ember{--section-gradient: radial-gradient(circle at 60% 20%, rgba(242, 230, 214, .95), rgba(200, 172, 145, .86)), linear-gradient(120deg, #ead7c1, #caa77f, #e4ccb0)}.theme-soft{--section-gradient: radial-gradient(circle at 40% 20%, rgba(250, 245, 237, .95), rgba(232, 222, 208, .83)), linear-gradient(120deg, #f6f1e8, #e6d6c5, #f2e7da)}.theme-hope{--section-gradient: radial-gradient(circle at 50% 20%, rgba(255, 250, 244, .95), rgba(234, 220, 201, .83)), linear-gradient(120deg, #faf3ea, #e4d2bb, #f5e7d6)}.theme-memory{--section-gradient: radial-gradient(circle at 60% 20%, rgba(248, 236, 219, .95), rgba(208, 184, 156, .86)), linear-gradient(120deg, #efe0c8, #cfad86, #ead6bb)}.theme-home{--section-gradient: radial-gradient(circle at 50% 20%, rgba(244, 232, 217, .95), rgba(202, 176, 147, .86)), linear-gradient(120deg, #ead8c2, #c3a278, #e1cbb0)}.theme-humble{--section-gradient: radial-gradient(circle at 50% 20%, rgba(248, 242, 234, .96), rgba(226, 214, 201, .86)), linear-gradient(120deg, #f6f0e7, #e2d4c5, #f1e7da)}.theme-proposal{--section-gradient: radial-gradient(circle at 50% 20%, rgba(255, 247, 235, .95), rgba(228, 202, 173, .86)), linear-gradient(120deg, #f2e1cd, #d0ad85, #f0dac1)}h1,h2{font-family:var(--font-heading);font-weight:700;line-height:1.6;margin-bottom:1.5rem;min-height:120px;letter-spacing:.4px;font-size:3rem;text-shadow:0 6px 18px rgba(0,0,0,.55)}@media(min-width:768px){h1,h2{font-size:4rem}}.date-heading{font-family:var(--font-heading);font-weight:700;letter-spacing:2px;color:#fff;text-shadow:0 10px 22px rgba(0,0,0,.6);font-size:3rem;margin-bottom:.5rem;min-height:auto}@media(min-width:768px){.date-heading{font-size:4.5rem}}.text-romantic{color:#fff;text-shadow:0 8px 18px rgba(0,0,0,.6)}.text-love{color:#fff;text-shadow:0 12px 28px rgba(0,0,0,.65)}.text-soft{color:var(--accent-color);font-weight:400;line-height:1.8;text-shadow:0 8px 16px rgba(0,0,0,.45)}h2{font-size:3rem}@media(min-width:768px){h2{font-size:4rem}}.memories-section{width:100%;padding:4rem 0;position:relative;z-index:5;max-width:1200px;margin:0 auto;box-sizing:border-box;scroll-snap-align:start;scroll-snap-stop:normal;min-height:100vh}.instagram-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;width:100%}@media(min-width:768px){.instagram-grid{gap:8px}}.memory-item{position:relative;width:100%;padding-bottom:100%;overflow:hidden;background:#e7e1d6;cursor:pointer;border-radius:2px;opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s cubic-bezier(.25,.46,.45,.94)}.memory-item.visible{opacity:1;transform:translateY(0)}.memory-media{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;opacity:0;transition:opacity .5s ease-in}.memory-media.loaded{opacity:1}.memory-item:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0000;transition:background-color .3s ease;pointer-events:none}.memory-item:hover:after{background-color:#0003}.memories-footer-text{font-size:3rem;line-height:1.8}@media(min-width:768px){.memories-footer-text{font-size:4.5rem}}.typewriter:after{content:"|";animation:blinkCursor .7s infinite;color:var(--primary-color);opacity:.5}@keyframes blinkCursor{0%,to{opacity:.8}50%{opacity:0}}.fade-in-text{opacity:0;transform:translateY(20px);transition:opacity 2s ease 1.5s,transform 2s ease 1.5s}.fade-in-text.visible{opacity:1;transform:translateY(0)}.sub-text{font-size:1.1rem;font-style:italic;margin-top:1.5rem;max-width:600px;margin-left:auto;margin-right:auto}.placeholder-img{margin-top:2.5rem;max-width:100%;height:auto;border-radius:20px;box-shadow:0 15px 40px #00000014;border:8px solid rgba(255,255,255,.8);transition:transform .5s ease,box-shadow .5s ease}.placeholder-img:hover{transform:scale(1.02);box-shadow:0 20px 50px #b06a4b26}.scroll-indicator{position:absolute;bottom:2.5rem;font-size:3rem;color:#fff;animation:gentleBounce 2s cubic-bezier(.4,0,.2,1) infinite;opacity:0;font-weight:700;text-shadow:0 10px 24px rgba(0,0,0,.85);transition:opacity .5s ease}.scroll-indicator.visible{opacity:1}@keyframes gentleBounce{0%,to{transform:translateY(0);opacity:.2}50%{transform:translateY(-15px);opacity:.6}}.audio-btn{position:fixed;top:25px;right:25px;z-index:100;background:#fff9;border:1px solid rgba(176,106,75,.3);padding:.6rem 1.2rem;border-radius:30px;cursor:pointer;font-family:var(--font-body);font-size:.9rem;font-weight:400;color:#3f3a36;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .4s ease;box-shadow:0 4px 15px #00000026}.audio-btn:hover{background:#ffffffe6;transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.sound-prompt{position:fixed;inset:0;background:#12100e8c;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:1200;opacity:0;visibility:hidden;transition:opacity .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.sound-prompt.show{opacity:1;visibility:visible}.sound-card{background:#f7f1e8;border-radius:20px;padding:2rem 2.5rem;max-width:420px;width:100%;text-align:center;color:#3f3a36;box-shadow:0 25px 60px #00000040}.sound-title{font-family:var(--font-heading);font-size:2rem;color:#c85c6f;margin-bottom:.5rem}.sound-subtitle{color:#5f564f;font-size:.95rem;margin-bottom:1.5rem}.sound-actions{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.sound-btn{border:none;border-radius:999px;padding:.75rem 1.5rem;font-family:var(--font-body);font-size:.95rem;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.sound-btn.primary{background:linear-gradient(135deg,#ff6f91,#ff9aa2);color:#fffaf2;box-shadow:0 10px 24px #0003}.sound-btn.secondary{background:#ffffffd9;color:#5f564f;border:1px solid rgba(176,106,75,.2)}.sound-btn:hover{transform:translateY(-2px)}body.sound-locked{overflow:hidden}body.sound-locked #story-container,body.sound-locked #thread-svg,body.sound-locked .particles-container,body.sound-locked .optical-bg,body.sound-locked .bg-image,body.sound-locked .overlay,body.sound-locked .audio-btn{filter:blur(14px);pointer-events:none}.proposal-text{font-size:3rem;margin-bottom:3rem}@media(min-width:768px){.proposal-text{font-size:4.5rem}}.buttons-container{display:flex;gap:1.5rem;justify-content:center;align-items:center;flex-wrap:wrap;position:relative;height:120px}.btn{padding:1.2rem 3rem;font-size:1.2rem;font-family:var(--font-body);font-weight:500;border:none;border-radius:50px;cursor:pointer;transition:all .4s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 8px 25px #b06a4b40}.btn.is-locked{opacity:.6;cursor:not-allowed;transform:none}.yes-btn{background:linear-gradient(135deg,#b06a4b,#e2c29f);color:#fff;font-size:1.6rem;position:relative;overflow:hidden;animation:gentlePulse 2s infinite alternate}@keyframes gentlePulse{0%{transform:scale(1);box-shadow:0 8px 25px #b06a4b33}to{transform:scale(1.05);box-shadow:0 12px 35px #b06a4b73}}.yes-btn:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.4) 0%,transparent 60%);opacity:0;transition:opacity .5s}.yes-btn:hover:before{opacity:1}.yes-btn:hover{transform:scale(1.1);box-shadow:0 15px 40px #b06a4b8c;animation:none}.no-btn{background-color:#fffffff2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#b23b56;position:absolute;font-weight:500;border:1px solid rgba(255,255,255,.5);z-index:5}.no-btn.overlay-yes{left:50%;top:50%;transform:translate(-50%,-50%)}.hidden{display:none!important}.lightbox{position:fixed;inset:0;background:#12100ed1;display:flex;align-items:center;justify-content:center;padding:2rem;z-index:2000;opacity:0;visibility:hidden;transition:opacity .3s ease}.lightbox.show{opacity:1;visibility:visible}.lightbox-content{max-width:92vw;max-height:88vh;display:flex;flex-direction:column;align-items:center;gap:.75rem}.lightbox-media{max-width:92vw;max-height:80vh;border-radius:12px;box-shadow:0 25px 60px #00000059;background:#1b1815}.lightbox-close{position:fixed;top:20px;right:24px;background:#ffffffe6;border:none;border-radius:999px;width:40px;height:40px;cursor:pointer;font-size:1.2rem;color:#3f3a36;box-shadow:0 8px 20px #0003}.lightbox-caption{color:#e8e0d2;font-size:.95rem;letter-spacing:.5px;text-align:center}#golden-ticket-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#f4efe6e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:opacity 1.2s cubic-bezier(.4,0,.2,1)}#golden-ticket-overlay.show{opacity:1;visibility:visible}.ticket{background:linear-gradient(135deg,#fff,#f4efe6);border:1px solid rgba(176,106,75,.25);border-radius:20px;width:90vw;max-width:600px;padding:2.5rem;box-shadow:0 25px 60px #b06a4b33;position:relative;transform:translateY(30px) scale(.95);transition:transform 1.2s cubic-bezier(.175,.885,.32,1.275);overflow:hidden}#golden-ticket-overlay.show .ticket{transform:translateY(0) scale(1)}.ticket:before,.ticket:after{content:"";position:absolute;top:50%;width:40px;height:40px;background:#f4efe6f2;border-radius:50%;transform:translateY(-50%);border:1px solid rgba(176,106,75,.25)}.ticket:before{left:-21px}.ticket:after{right:-21px}.ticket-header{text-align:center;border-bottom:1px solid rgba(176,106,75,.2);padding-bottom:1.5rem;margin-bottom:1.5rem}.ticket-header h3{font-family:var(--font-body);font-weight:300;color:#b23b56;font-size:1.2rem;text-transform:uppercase;letter-spacing:3px}.ticket-body{font-family:var(--font-body)}.ticket-row{display:flex;justify-content:space-between;margin-bottom:1.5rem}.ticket-col{display:flex;flex-direction:column}.label{font-size:.75rem;color:#9aa0a6;margin-bottom:6px;text-transform:uppercase;letter-spacing:1px}.value{font-size:1.2rem;color:#3f3a36;font-weight:500}.ticket-footer{text-align:center;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(176,106,75,.2)}.barcode{font-family:"Libre Barcode 39 Extended Text",cursive,sans-serif;font-size:4rem;color:#a8a2af;margin-bottom:1rem;line-height:1;opacity:.7}.ticket-footer p{font-family:var(--font-heading);font-size:2.5rem;color:#b23b56}
