:root{--blush: #f8e1e7;--blush-deep: #f5d0d9;--rose: #e8a0b0;--rose-warm: #e07a8f;--rose-soft: #eeb4c0;--peach: #f4c2c2;--peach-light: #fad4d4;--dusty-red: #c97b84;--dusty-red-soft: #d49198;--cream: #fffbf7;--cream-dark: #fdf5f0;--beige: #f5ebe0;--white-soft: #fffefe;--pink-gradient: linear-gradient(135deg, #f8e1e7 0%, #f4c2c2 50%, #e8a0b0 100%);--pink-gradient-btn: linear-gradient(135deg, #e8a0b0 0%, #e07a8f 100%);--pink-gradient-btn-hover: linear-gradient(135deg, #eca8b6 0%, #e88a9a 100%);--shadow-soft: 0 8px 32px rgba(200, 120, 132, .12);--shadow-soft-lg: 0 20px 50px rgba(200, 120, 132, .14);--shadow-glow: 0 0 50px rgba(232, 160, 176, .3);--shadow-inner-soft: inset 0 1px 0 rgba(255, 255, 255, .7);--radius-card: 28px;--radius-pill: 999px;--font-romantic: "Great Vibes", cursive;--font-body: "Quicksand", sans-serif}*{box-sizing:border-box}.app-wrap{height:100vh;max-height:100dvh;display:flex;flex-direction:column;position:relative;overflow:hidden}.app-main{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.branding-footer{margin-top:auto;padding:.6rem 1rem;text-align:center;font-size:.75rem;color:#c4a5aa;letter-spacing:.02em}.branding-link{color:var(--dusty-red-soft);text-decoration:none;font-weight:600;transition:color .2s}.branding-link:hover{color:var(--dusty-red)}html,body,#root{margin:0;height:100%;min-height:100vh;overflow:hidden;font-family:var(--font-body);font-weight:500;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--cream);background-image:radial-gradient(ellipse 100% 60% at 50% -10%,rgba(252,230,235,.85),transparent 55%),radial-gradient(ellipse 70% 50% at 100% 30%,rgba(248,218,225,.4),transparent 50%),radial-gradient(ellipse 70% 50% at 0% 70%,rgba(244,194,194,.35),transparent 50%),radial-gradient(ellipse 50% 30% at 50% 100%,rgba(232,160,176,.15),transparent 50%);color:#8b6b6f}@media(max-width:1023px){html,body,#root{min-height:100%;height:auto;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-wrap{min-height:100vh;min-height:100dvh;height:auto;overflow:visible}.app-main{flex:1 1 auto;min-height:0;overflow:visible}.page{min-height:auto;height:auto;justify-content:flex-start;overflow:visible;padding-bottom:2rem}.card-romantic,.card-romantic.view-fit,.card-romantic.view-fit.create-proposal-card{max-height:none;overflow:visible}.create-proposal-card{max-height:none}.create-form-layout{min-height:0}.page .card-romantic.view-fit.create-proposal-card{max-height:calc(100dvh - 5rem);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex:0 0 auto;min-height:min(400px,60dvh)}.page .card-romantic.view-fit.create-proposal-card .create-form-layout{flex:0 0 auto}.page.proposal-page .card-romantic.view-fit.proposal-page-card{max-height:calc(100dvh - 5rem);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;flex:0 0 auto;min-height:min(320px,50dvh)}.page.proposal-page .proposal-view-inner{flex:0 0 auto;padding-bottom:1.5rem}}body:before{content:"";position:fixed;inset:0;background-image:radial-gradient(circle at 1px 1px,rgba(200,120,132,.06) 1px,transparent 0);background-size:28px 28px;pointer-events:none;z-index:0}.floating-hearts{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.heart-float{position:absolute;font-size:1.25rem;opacity:.32;animation:float-heart 14s ease-in-out infinite;filter:drop-shadow(0 2px 4px rgba(200,120,132,.1))}.heart-float.size-sm{font-size:1rem;opacity:.28}.heart-float.size-lg{font-size:1.75rem;opacity:.38}.heart-float:nth-child(1){left:10%;top:18%;animation-delay:0s;animation-duration:16s}.heart-float:nth-child(2){left:88%;top:12%;animation-delay:1s;animation-duration:13s}.heart-float:nth-child(3){left:22%;top:72%;animation-delay:3s;animation-duration:15s}.heart-float:nth-child(4){left:72%;top:68%;animation-delay:.5s;animation-duration:17s}.heart-float:nth-child(5){left:48%;top:38%;animation-delay:2s;animation-duration:14s}.heart-float:nth-child(6){left:12%;top:48%;animation-delay:4s;animation-duration:12s}.heart-float:nth-child(7){left:82%;top:32%;animation-delay:2.5s;animation-duration:18s}.heart-float:nth-child(8){left:38%;top:88%;animation-delay:1.5s;animation-duration:11s}.heart-float:nth-child(9){left:58%;top:8%;animation-delay:4.5s;animation-duration:16s}.heart-float:nth-child(10){left:4%;top:78%;animation-delay:.8s;animation-duration:14s}.heart-float:nth-child(11){left:92%;top:55%;animation-delay:3.5s;animation-duration:15s}.heart-float:nth-child(12){left:30%;top:28%;animation-delay:1.2s;animation-duration:13s}@keyframes float-heart{0%,to{transform:translate(0) scale(1) rotate(0);opacity:.3}25%{transform:translate(12px,-18px) scale(1.08) rotate(5deg);opacity:.48}50%{transform:translate(-8px,-28px) scale(.96) rotate(-3deg);opacity:.38}75%{transform:translate(18px,-12px) scale(1.04) rotate(4deg);opacity:.44}}.page{position:relative;z-index:1;height:100%;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2.75rem 1rem .75rem;overflow:hidden}.proposal-page{padding-left:.5rem;padding-right:.5rem}@media(max-width:1023px){.proposal-page{padding-top:calc(136px + env(safe-area-inset-top,0px));padding-bottom:calc(136px + env(safe-area-inset-bottom,0px))}}@media(min-width:1000px){.proposal-page{padding-left:220px;padding-right:220px}}.card-romantic{background:var(--white-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-soft),var(--shadow-inner-soft),0 0 0 1px #e8a0b00f;padding:2.75rem;max-width:420px;width:100%;max-height:calc(100% - 2rem);min-height:0;overflow:hidden;animation:fade-in-up .9s cubic-bezier(.22,1,.36,1) forwards;position:relative}.card-romantic.view-fit{max-width:720px;padding:1.25rem 1.5rem;max-height:calc(100% - 2rem);min-height:0;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.card-romantic.view-fit .subtext{margin-bottom:1rem}.card-romantic.view-fit .upload-helper{margin-bottom:.5rem}.card-romantic.view-fit .image-frame{max-width:160px;margin-bottom:1rem}.card-romantic.view-fit .input-romantic{padding:.75rem 1rem;margin-bottom:.75rem}.card-romantic.view-fit textarea.input-romantic{min-height:90px;margin-bottom:1rem}.card-romantic.view-fit .headline-romantic{font-size:clamp(1.75rem,4vw,2.2rem);margin-bottom:.25rem}.create-proposal-card{padding:1rem 1.25rem;max-width:720px;width:100%;overflow:hidden;flex:0 1 auto;max-height:calc(100vh - 3rem);max-height:calc(100dvh - 3rem)}.card-romantic.view-fit.create-proposal-card{overflow:hidden}.create-proposal-card .headline-romantic{font-size:clamp(1.5rem,3.5vw,1.9rem);margin-bottom:.2rem}.create-proposal-card .subtext{margin-bottom:.6rem;font-size:.98rem}.create-proposal-loading{position:absolute;inset:0;border-radius:var(--radius-card);background:linear-gradient(180deg,#fffefef7,#fdf8fafa);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1.5rem;z-index:2;animation:create-loading-fade .35s ease}.create-proposal-loading-hearts{display:flex;align-items:center;justify-content:center;gap:.35rem;flex-wrap:wrap}.create-proposal-loading-heart{font-size:1.75rem;animation:create-loading-heart-pulse 1.2s ease-in-out infinite;opacity:.9;filter:drop-shadow(0 2px 6px rgba(232,160,176,.35))}.create-proposal-loading-text{margin:0;font-size:1.1rem;font-weight:600;color:var(--dusty-red);letter-spacing:.02em}.create-proposal-loading-sub{margin:0;font-size:.9rem;color:var(--dusty-red-soft)}.create-form-layout-hidden{visibility:hidden;pointer-events:none}@keyframes create-loading-fade{0%{opacity:0}to{opacity:1}}@keyframes create-loading-heart-pulse{0%,to{transform:scale(1);opacity:.85}50%{transform:scale(1.25);opacity:1}}.create-form-layout{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0}@media(min-width:640px){.create-form-layout{flex-direction:row;align-items:center;gap:1.5rem;justify-content:center}.create-form-left{flex-shrink:0;width:44%;max-width:260px;display:flex;flex-direction:column;align-items:center}.create-form-right{flex:1;min-width:0;max-width:320px;display:flex;flex-direction:column;gap:.5rem}.create-form-right .input-romantic{flex-shrink:0}.create-form-right textarea.input-romantic{flex:0 0 auto;min-height:5.5em;height:100px;resize:none;overflow:hidden}.create-form-right .btn-primary{flex-shrink:0;margin-top:.15rem}.create-proposal-card .upload-row-memories{justify-content:center}}.create-proposal-card .upload-helper{margin-bottom:.35rem;font-size:.88rem}.create-proposal-card .upload-zone-single{margin-bottom:.5rem}.create-proposal-card .upload-zone-single .image-frame{max-width:140px;width:140px;height:140px}.create-proposal-card .upload-zone-single .image-frame-placeholder{font-size:.8rem;padding:.5rem}.create-proposal-card .upload-row,.create-proposal-card .upload-row-memories{padding:.4rem;margin-bottom:.5rem;gap:.35rem}.create-proposal-card .image-slot{width:52px;height:52px}.create-proposal-card .upload-helper.memories-helper{margin-top:.25rem}.create-proposal-card .input-romantic{padding:.6rem .9rem;margin-bottom:.5rem}.create-proposal-card textarea.input-romantic{min-height:5.25em;height:100px;margin-bottom:.6rem;resize:none;overflow:hidden}.card-romantic:before{content:"";position:absolute;inset:-1px;border-radius:calc(var(--radius-card) + 2px);padding:1px;background:linear-gradient(135deg,#f8e1e799,#f4c2c24d,#e8a0b033);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}@keyframes fade-in-up{0%{opacity:0;transform:translateY(28px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.headline-romantic{font-family:var(--font-romantic);font-size:clamp(2.1rem,5.5vw,2.9rem);color:var(--dusty-red);margin:0 0 .6rem;font-weight:400;letter-spacing:.02em;text-shadow:0 2px 20px rgba(201,123,132,.15);line-height:1.2}.subtext{font-size:1.05rem;color:#a67b80;margin:0 0 1.85rem;line-height:1.55;letter-spacing:.015em}.footer-tagline{font-size:.8rem;color:#c4a5aa;margin:1.5rem 0 0;text-align:center;letter-spacing:.02em}.upload-helper{font-size:.95rem;color:#a67b80;margin:0 0 .75rem;text-align:center}.success-subtext{text-align:center;font-size:.98rem;color:#a67b80;margin:0 0 .5rem;line-height:1.5}.proposal-intro{font-size:.95rem;color:#a67b80;margin:0 0 1rem;text-align:center;letter-spacing:.02em}.proposal-view-inner{display:flex;flex-direction:column;gap:.75rem;align-items:center}@media(min-width:640px){.proposal-view-inner{flex-direction:row;align-items:center;gap:1.25rem;text-align:left}.proposal-view-inner .image-frame-proposal{flex-shrink:0;width:140px;height:140px;max-width:140px;margin:0}.proposal-view-inner .proposal-content{flex:1;min-width:0}.proposal-view-inner .proposal-intro{text-align:left;margin-bottom:.25rem}.proposal-view-inner .proposal-name{text-align:left;margin-bottom:.5rem;font-size:clamp(1.6rem,3.5vw,2.2rem)}.proposal-view-inner .proposal-message{margin-bottom:.5rem;font-size:.95rem;line-height:1.5;padding:.5rem 0 .5rem .75rem}.proposal-view-inner .question-big{margin:.5rem 0 .25rem;text-align:left;font-size:clamp(1.5rem,3vw,1.9rem)}.proposal-view-inner .answer-buttons,.proposal-view-inner .btn-primary{margin-top:.25rem}}.image-frame-proposal{border-radius:50%;overflow:hidden;border:3px solid var(--blush);box-shadow:var(--shadow-soft);background:var(--beige);aspect-ratio:1;max-width:160px;margin:0 auto .5rem;display:flex;align-items:center;justify-content:center}.image-frame-proposal img{width:100%;height:100%;object-fit:cover}.image-frame-proposal .image-frame-placeholder{padding:.5rem;font-size:.85rem}.proposal-page-card{background:linear-gradient(165deg,#fffefe,#fffaf8,#fff5f2);box-shadow:0 25px 60px #c878841f,0 0 0 1px #e8a0b014,inset 0 1px #ffffffe6}.proposal-page-card:before{background:linear-gradient(135deg,#f8e1e7b3,#f4c2c266,#e8a0b040)}.proposal-page-card .image-frame-proposal{border:4px solid var(--white-soft);box-shadow:0 0 0 3px var(--blush-deep),0 12px 36px #c8788433,inset 0 0 0 1px #fff9;transition:box-shadow .4s ease,transform .4s ease}.proposal-page-card .image-frame-proposal:hover{box-shadow:0 0 0 3px var(--rose-soft),0 16px 44px #c8788440,inset 0 0 0 1px #ffffffb3;transform:scale(1.02)}.proposal-page-card .proposal-intro{color:var(--dusty-red-soft);font-size:.9rem;letter-spacing:.04em;position:relative;padding-top:.5rem;margin-bottom:.5rem}.proposal-page-card .proposal-intro:before{content:"";display:block;width:2rem;height:2px;margin:0 auto .5rem;background:linear-gradient(90deg,transparent,var(--blush-deep),transparent);border-radius:1px;opacity:.8}@media(min-width:640px){.proposal-page-card .proposal-intro:before{margin:0 0 .5rem;width:2.5rem}}.proposal-page-card .proposal-name{color:var(--dusty-red);text-shadow:0 2px 16px rgba(201,123,132,.25),0 0 40px rgba(232,160,176,.15);letter-spacing:.02em}.proposal-page-card .proposal-message{background:linear-gradient(90deg,rgba(248,225,231,.35) 0%,rgba(255,255,255,.5) 50%,transparent 100%);border-left-color:var(--rose-soft);border-radius:0 14px 14px 0;box-shadow:0 1px #fffc inset,0 2px 8px #c878840f;padding:.75rem 0 .75rem 1rem}.proposal-page-card .question-big{color:var(--dusty-red);text-shadow:0 2px 20px rgba(201,123,132,.28),0 0 32px rgba(232,160,176,.12)}.proposal-page-card .btn-primary{box-shadow:0 6px 28px #e07a8f66,inset 0 1px #ffffff4d,0 0 0 1px #fff3;position:relative;overflow:hidden}.proposal-page-card .btn-primary:after{content:"";position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);transition:left .5s ease}.proposal-page-card .btn-primary:hover:after{left:100%}.proposal-page-card .btn-primary:hover{box-shadow:0 10px 36px #e07a8f80,inset 0 1px #ffffff59,0 0 0 1px #ffffff40}.main-photos-wrap{flex-shrink:0}.memories-strip{position:fixed;top:0;bottom:0;width:280px;z-index:0;overflow:hidden;pointer-events:none;display:flex;justify-content:center;align-items:stretch}.memories-strip-left{left:0}.memories-strip-right{right:0}@media(max-width:1023px){.memories-strip{inset:auto 0!important;width:100%!important;height:128px!important;min-height:128px!important;align-items:center;justify-content:center;box-sizing:border-box}.memories-strip-left{top:env(safe-area-inset-top,0)!important;bottom:auto!important}.memories-strip-right{top:auto!important;bottom:env(safe-area-inset-bottom,0)!important}.memories-strip-film{width:100%!important;height:100%!important;max-width:100%!important;margin:0!important;border-left:none;border-right:none;border-top:4px solid #1a1a1a;border-bottom:4px solid #1a1a1a;border-radius:0;box-sizing:border-box;box-shadow:0 2px 16px #00000040,inset 0 0 0 2px #ffffff0f;display:flex;align-items:center;justify-content:center;overflow:hidden}.memories-strip-left .memories-strip-film{border-radius:0 0 12px 12px;box-shadow:0 6px 24px #0003,inset 0 0 0 2px #ffffff0f}.memories-strip-right .memories-strip-film{border-radius:12px 12px 0 0;box-shadow:0 -6px 24px #0003,inset 0 0 0 2px #ffffff0f}.memories-strip-film:before,.memories-strip-film:after{width:14px;height:100%;left:auto;right:auto;background:repeating-linear-gradient(180deg,transparent 0,transparent 6px,#1a1a1a 6px,#1a1a1a 10px)}.memories-strip-film:before{top:0;left:0}.memories-strip-film:after{inset:0 0 auto auto}.memories-strip-inner{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;padding:10px 16px 10px 50px;animation:memories-scroll-h 18s linear infinite;height:100%;box-sizing:border-box;will-change:transform}.memories-strip-inner-reverse{animation:memories-scroll-h-reverse 20s linear infinite;will-change:transform}.memories-strip-photo{width:80px!important;height:80px!important;min-width:80px!important;min-height:80px!important;max-width:80px!important;flex-shrink:0}}@keyframes memories-scroll-h{0%{transform:translate(0)}to{transform:translate(-33.333%)}}@keyframes memories-scroll-h-reverse{0%{transform:translate(-33.333%)}to{transform:translate(0)}}@media(min-width:1024px){.memories-strip-film{width:220px;margin:0 auto;background:linear-gradient(90deg,#2c2c2c,#1f1f1f 8px,#252525 20px calc(100% - 20px),#1f1f1f calc(100% - 8px),#2c2c2c);border-left:6px solid #1a1a1a;border-right:6px solid #1a1a1a;box-shadow:inset 0 0 0 2px #ffffff0f,0 0 0 1px #0000004d;position:relative;overflow:hidden}.memories-strip-film:before,.memories-strip-film:after{content:"";position:absolute;left:0;right:0;height:14px;background:repeating-linear-gradient(90deg,transparent 0,transparent 6px,#1a1a1a 6px,#1a1a1a 10px);z-index:1;pointer-events:none}.memories-strip-film:before{top:0}.memories-strip-film:after{bottom:0}.memories-strip-left .memories-strip-film{border-radius:0 12px 12px 0;box-shadow:6px 0 24px #0003,inset 0 0 0 2px #ffffff0f}.memories-strip-right .memories-strip-film{border-radius:12px 0 0 12px;box-shadow:-6px 0 24px #0003,inset 0 0 0 2px #ffffff0f}.memories-strip-inner{display:flex;flex-direction:column;gap:16px;padding:24px 14px 50px;animation:memories-scroll 14s linear infinite;will-change:transform}.memories-strip-inner-reverse{animation:memories-scroll-reverse 16s linear infinite}.memories-strip-photo{flex-shrink:0;width:168px;height:168px;border-radius:8px;overflow:hidden;border:2px solid #333;box-shadow:inset 0 0 0 1px #ffffff1a,0 2px 12px #0006;background:#1a1a1a}.memories-strip-photo img{width:100%;height:100%;object-fit:cover;filter:sepia(.2) contrast(1.05)}}@keyframes memories-scroll{0%{transform:translateY(0)}to{transform:translateY(-33.333%)}}@keyframes memories-scroll-reverse{0%{transform:translateY(-33.333%)}to{transform:translateY(0)}}.memories-strip-photo img{width:100%;height:100%;object-fit:cover;filter:sepia(.2) contrast(1.05)}.celebration-heading{font-family:var(--font-body);font-size:1.5rem;font-weight:700;color:var(--dusty-red);margin:0 0 .5rem;text-align:center;letter-spacing:.02em}.final-subtext{font-size:1rem;color:#a67b80;margin:.5rem 0 0;text-align:center;line-height:1.5}.modal-message-text{white-space:pre-line;line-height:1.55!important}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:1.05rem 1.5rem;font-family:var(--font-body);font-size:1.06rem;font-weight:600;color:#fff;background:var(--pink-gradient-btn);border:none;border-radius:var(--radius-pill);cursor:pointer;box-shadow:0 4px 24px #e07a8f59,inset 0 1px #ffffff40;transition:transform .25s ease,box-shadow .25s ease,background .25s ease;animation:heartbeat-idle 2s ease-in-out infinite;text-decoration:none}.btn-primary:hover:not(:disabled){transform:scale(1.03);box-shadow:0 8px 32px #e07a8f73,inset 0 1px #ffffff4d;background:var(--pink-gradient-btn-hover)}.btn-primary:active:not(:disabled){transform:scale(.99)}.btn-primary:disabled{opacity:.7;cursor:not-allowed;animation:none}@keyframes heartbeat-idle{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.9rem 1.5rem;font-family:var(--font-body);font-size:1rem;font-weight:600;color:var(--dusty-red);background:transparent;border:2px solid var(--blush-deep);border-radius:var(--radius-pill);cursor:pointer;transition:background .25s ease,transform .25s ease,border-color .25s ease,box-shadow .25s ease;text-decoration:none}.btn-secondary:hover{background:var(--blush);border-color:var(--rose-soft);transform:scale(1.02);box-shadow:0 4px 16px #e8a0b033}.input-romantic{width:100%;padding:1.05rem 1.3rem;font-family:var(--font-body);font-size:1rem;color:#8b6b6f;background:var(--cream-dark);border:2px solid var(--blush);border-radius:18px;transition:border-color .25s ease,box-shadow .25s ease,background .25s ease}.input-romantic::placeholder{color:#c4a5aa}.input-romantic:focus{outline:none;border-color:var(--rose-soft);box-shadow:0 0 0 5px #e8a0b02e;background:var(--white-soft)}textarea.input-romantic{min-height:124px;resize:vertical}.image-frame{width:100%;aspect-ratio:1;max-width:220px;margin:0 auto 1.5rem;border-radius:50%;overflow:hidden;border:4px solid var(--blush);box-shadow:var(--shadow-soft),inset 0 0 0 1px #ffffff80,0 0 0 1px #e8a0b026;background:var(--beige);display:flex;align-items:center;justify-content:center;transition:box-shadow .3s ease,transform .3s ease}.image-frame:hover{box-shadow:0 12px 40px #c878842e,inset 0 0 0 1px #ffffff80}.image-frame img{width:100%;height:100%;object-fit:cover}.image-frame-placeholder{color:#c4a5aa;font-size:.95rem;text-align:center;padding:1rem}.upload-zone{border:2px dashed var(--blush-deep);border-radius:22px;padding:2rem;text-align:center;background:linear-gradient(180deg,var(--cream-dark) 0%,rgba(253,245,240,.6) 100%);cursor:pointer;transition:border-color .3s,background .3s,box-shadow .3s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--rose-soft);background:linear-gradient(180deg,var(--blush) 0%,var(--cream-dark) 100%);box-shadow:0 4px 20px #e8a0b01f}.upload-zone input{display:none}.upload-zone-single{margin-bottom:1rem;position:relative;display:flex;justify-content:center;align-items:center}.upload-zone-single .image-frame{max-width:160px;margin:0}.image-slot-remove-center{position:absolute;top:50%;left:50%;transform:translate(calc(-50% + 52px),calc(-50% - 52px));width:26px;height:26px;font-size:1.1rem}@media(min-width:640px){.image-slot-remove-center{transform:translate(calc(-50% + 58px),calc(-50% - 58px))}}.upload-row{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-bottom:1rem;padding:.75rem;border-radius:16px;border:2px dashed var(--blush-deep);background:var(--cream-dark);transition:border-color .2s,background .2s}.upload-row.dragover{border-color:var(--rose-soft);background:var(--blush)}.upload-row-memories{margin-bottom:1.25rem;opacity:.95}.upload-helper.memories-helper{margin-top:.5rem}.image-slot{width:64px;height:64px;border-radius:50%;overflow:hidden;border:2px solid var(--blush);background:var(--beige);display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;flex-shrink:0;transition:border-color .2s,box-shadow .2s}.image-slot:hover{border-color:var(--rose-soft);box-shadow:0 4px 12px #e8a0b033}.image-slot input{display:none}.image-slot img{width:100%;height:100%;object-fit:cover}.image-slot-placeholder{font-size:1.5rem;color:var(--rose-soft);font-weight:600}.image-slot-remove{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:50%;border:none;background:#c97b84e6;color:#fff;font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s,transform .2s}.image-slot-remove:hover{background:var(--dusty-red);transform:scale(1.1)}.success-message{text-align:center;padding:1.1rem 0 .5rem;color:var(--dusty-red);font-weight:600;font-size:1.08rem;letter-spacing:.02em}.link-ready{margin-top:.85rem;padding:.9rem 1.1rem;background:linear-gradient(180deg,var(--cream-dark) 0%,var(--beige) 100%);border-radius:14px;font-size:.88rem;color:#a67b80;word-break:break-all;border:1px solid rgba(232,160,176,.2);box-shadow:inset 0 1px #fff9}.proposal-name{font-family:var(--font-romantic);font-size:clamp(1.75rem,4vw,2.4rem);color:var(--dusty-red);margin:0 0 .5rem;text-align:center;text-shadow:0 2px 24px rgba(201,123,132,.2);line-height:1.15}.proposal-message{font-size:1rem;line-height:1.55;color:#8b6b6f;padding:.6rem 0 .6rem .85rem;font-style:italic;border-left:4px solid var(--blush-deep);margin:0 0 .75rem .5rem;background:linear-gradient(90deg,rgba(248,225,231,.2) 0%,transparent 100%);border-radius:0 12px 12px 0;box-shadow:0 1px #ffffff80 inset}.question-big{font-family:var(--font-romantic);font-size:clamp(1.5rem,3.5vw,2rem);color:var(--dusty-red);margin:.75rem 0 .5rem;text-align:center;text-shadow:0 2px 20px rgba(201,123,132,.15)}.answer-buttons{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap;margin-top:.75rem}.btn-yes{background:var(--pink-gradient-btn)!important;color:#fff!important;border:none!important;box-shadow:0 4px 24px #e07a8f66,inset 0 1px #ffffff40!important;animation:heartbeat-idle 1.8s ease-in-out infinite}.btn-no{background:transparent!important;color:var(--dusty-red)!important;border:2px solid var(--blush-deep)!important}.btn-no:hover{background:var(--blush)!important;border-color:var(--rose-soft)!important}.modal-overlay{position:fixed;inset:0;background:#8b6b6f38;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem;animation:fade-in .35s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--white-soft);border-radius:var(--radius-card);box-shadow:var(--shadow-soft-lg),var(--shadow-glow),0 0 0 1px #e8a0b014;padding:2.25rem;max-width:340px;width:100%;text-align:center;animation:shake .55s ease}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-7px)}80%{transform:translate(7px)}}.modal-card h3{margin:0 0 .5rem;color:var(--dusty-red);font-size:1.28rem}.modal-card p{margin:0 0 1.35rem;color:#a67b80;font-size:.98rem;line-height:1.5}.celebration-wrap{position:fixed;inset:0;pointer-events:none;z-index:50}.heart-burst{position:absolute;font-size:1.35rem;opacity:0;left:50%;top:40%;animation:burst 1.3s ease-out forwards;filter:drop-shadow(0 2px 6px rgba(200,120,132,.25))}@keyframes burst{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}12%{opacity:1;transform:translate(-50%,-50%) scale(1.25)}to{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) scale(.35)}}.final-message{font-family:var(--font-romantic);font-size:clamp(1.85rem,4.2vw,2.6rem);color:var(--dusty-red);margin:1rem 0 0;text-align:center;text-shadow:0 2px 24px rgba(201,123,132,.2)}.confetti-hearts{position:fixed;inset:0;pointer-events:none;z-index:99}.confetti-heart{position:absolute;font-size:1.5rem;animation:confetti-fall 3.2s ease-out forwards;opacity:.85;filter:drop-shadow(0 2px 4px rgba(200,120,132,.2))}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0) scale(1);opacity:.85}to{transform:translateY(100vh) rotate(720deg) scale(.6);opacity:0}}.back-link{position:absolute;top:.75rem;left:1rem;font-size:.95rem;color:var(--dusty-red);text-decoration:none;display:inline-flex;align-items:center;gap:.35rem;opacity:.88;transition:opacity .2s,transform .2s;z-index:2}.back-link:hover{opacity:1;transform:translate(-2px)}.btn-copied{background:linear-gradient(135deg,#b8e0b8,#9dd49d)!important;box-shadow:0 4px 20px #78b47866!important;animation:none!important}.celebration-hearts-inline .heart-float{animation:float-heart 8s ease-in-out infinite}.card-romantic .subtext+.btn-primary{margin-top:.5rem}.card-romantic.celebration-card{box-shadow:var(--shadow-soft-lg),var(--shadow-glow),0 0 0 1px #e8a0b01a}.celebration-card .image-frame-proposal{flex-shrink:0;width:160px;height:160px;min-width:160px;min-height:160px;max-width:160px}.celebration-card .image-frame-proposal img{width:100%;height:100%;object-fit:cover}
