*{box-sizing:border-box;margin:0;padding:0}body{background-color:#fce4ec;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden}#gift-app{opacity:0;visibility:hidden;transition:opacity .7s}#gift-app.visible{opacity:1;visibility:visible}.intro-overlay{z-index:30;background:radial-gradient(circle at top,#ffe9f2 0%,#f7dce9 55%,#f4d4e3 100%);justify-content:center;align-items:center;transition:opacity .6s,visibility .6s;display:flex;position:fixed;inset:0}.intro-overlay.hidden{opacity:0;visibility:hidden;pointer-events:none}.intro-content{text-align:center;width:min(92vw,620px)}.envelope-stage{perspective:1000px;width:320px;height:250px;margin:0 auto 22px;position:relative}.envelope{cursor:pointer;background:0 0;border:none;outline:none;width:260px;height:170px;position:absolute;bottom:0;left:50%;overflow:hidden;transform:translate(-50%)}.envelope.released{overflow:visible}.envelope.released .envelope-body,.envelope.released .envelope-flap{opacity:0;pointer-events:none}.envelope-body{z-index:1;background:linear-gradient(160deg,#fdf2f7 0%,#f3c8dc 70%);border:1px solid #d0749d73;border-radius:12px;transition:opacity .25s;position:absolute;inset:0;box-shadow:0 12px 26px #913f6438}.envelope-body:before,.envelope-body:after{content:"";border-radius:12px;position:absolute;inset:0}.envelope-body:before{clip-path:polygon(0 0,50% 58%,100% 0);background:#ffffff61}.envelope-body:after{clip-path:polygon(0 100%,50% 45%,100% 100%);background:#df84aa40}.envelope-flap{z-index:3;transform-origin:top;clip-path:polygon(0 0,50% 100%,100% 0);background:linear-gradient(#f9d9e8 0%,#f0b6d0 100%);border:1px solid #d0749d73;border-bottom:none;border-radius:12px 12px 0 0;width:100%;height:100px;transition:transform .9s,opacity .25s;position:absolute;top:-1px;left:0}.envelope-letter{display:none}.envelope.open .envelope-flap{transform:rotateX(180deg)}.envelope.open .envelope-letter{transform:translate(-50%)translateY(-54px)}.photo-card{transform-origin:50%;opacity:0;pointer-events:none;z-index:4;background:0 0;border-radius:0;width:180px;padding:0;transition:transform .9s,opacity .4s;position:absolute;top:28px;left:50%;transform:translate(-50%)translateY(120px)rotate(-90deg)scale(.32);box-shadow:0 12px 30px #4e303e59}.photo-card img{border-radius:0;width:100%;height:auto;display:block}.photo-card.slide-out{opacity:1;transform:translate(-50%)translateY(10px)rotate(-90deg)scale(.9)}.photo-card.upright{opacity:1;pointer-events:auto;cursor:pointer;transform:translate(-50%)translateY(-72px)rotate(0)scale(2)}.intro-text{color:#7a2f56;margin-bottom:16px;font-size:1.08rem;font-weight:600}.memory-caption{opacity:0;color:#7a2f56;letter-spacing:.08em;pointer-events:none;margin-top:90px;margin-bottom:10px;font-size:.82rem;font-weight:700;transition:opacity .35s}.memory-caption.visible{opacity:1}.reveal-button{opacity:0;pointer-events:none;color:#fff;cursor:pointer;background:linear-gradient(120deg,#d34d86,#ea78a8);border:none;border-radius:999px;padding:12px 24px;font-weight:700;transition:opacity .4s,transform .4s;transform:translateY(10px)}.reveal-button.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.card-container{pointer-events:none;z-index:10;width:90%;max-width:600px;transition:opacity .35s,visibility .35s;position:absolute;bottom:8%;left:50%;transform:translate(-50%)}.card-container.hidden{opacity:0;visibility:hidden;pointer-events:none}.glass-card{-webkit-backdrop-filter:blur(12px);text-align:center;color:#4a4a4a;background:#ffffff40;border:1px solid #ffffff80;border-radius:20px;padding:30px;box-shadow:0 8px 32px #1f268726}@supports not ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){.glass-card{background:#ffffffd1}}body.reduced-effects .glass-card{-webkit-backdrop-filter:blur(4px);background:#ffffffd6}.glass-card h1{color:#d81b60;margin-bottom:15px;font-size:1.8rem}.glass-card p{margin-bottom:20px;font-size:1.1rem;line-height:1.6}.glass-card .signature{text-align:right;color:#d81b60;font-size:1.2rem;font-style:italic;font-weight:700}.flower-only-button{color:#fff;cursor:pointer;pointer-events:auto;background:linear-gradient(120deg,#d34d86,#ea78a8);border:none;border-radius:999px;margin-top:10px;padding:10px 18px;font-size:.92rem;font-weight:700}@media (width<=640px){.envelope-stage{width:270px;height:220px}.envelope{width:220px;height:145px}.photo-card{width:152px;top:24px}.photo-card.upright{transform:translate(-50%)translateY(-50px)rotate(0)scale(1.6)}.intro-text{font-size:.98rem}.glass-card{-webkit-backdrop-filter:blur(5px);background:#ffffffdb}}
