*{box-sizing:border-box}
:root{--pink:#f5b8cc;--rose:#b94f78;--deep:#5a2340;--cream:#fff8fb;--gold:#d7a85b}
html{scroll-behavior:smooth}
body{margin:0;background:radial-gradient(circle at top,#fffafd,#fdf0f6 45%,#f7e1eb);color:var(--deep);font-family:"Cairo",sans-serif;overflow-x:hidden}
.hidden{display:none!important}
.screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:25px;position:relative}
.lock-screen{background:linear-gradient(135deg,#fff7fb,#f7dce8 50%,#fffafc)}
.lock-card{width:min(520px,100%);text-align:center;padding:42px 28px;border:1px solid #fff;border-radius:35px;background:rgba(255,255,255,.78);box-shadow:0 25px 80px rgba(111,37,72,.16);backdrop-filter:blur(12px);position:relative}
.sparkle{position:absolute;right:35px;top:25px;color:#d7a85b;font-size:28px}.lock-icon{font-size:48px}
h1,h2{font-family:"Playpen Sans Arabic","Cairo",sans-serif}
.lock-card h1{font-size:clamp(27px,6vw,40px);margin:10px 0}.lock-card p{line-height:1.9;color:#795066}
.password-wrap{display:grid;gap:12px;margin-top:24px}
input{width:100%;padding:15px 18px;border:2px solid #efd0dc;border-radius:17px;outline:none;text-align:center;font-size:18px;font-family:inherit;background:#fff}
input:focus{border-color:var(--rose);box-shadow:0 0 0 4px rgba(185,79,120,.08)}
button{border:0;border-radius:17px;padding:15px 22px;font:700 17px "Cairo";cursor:pointer;background:linear-gradient(135deg,#c75b85,#8e365e);color:white;box-shadow:0 10px 25px rgba(142,54,94,.22);transition:.25s}
button:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(142,54,94,.28)}
.error{min-height:28px!important;color:#b23b63!important;font-weight:700}.tiny{font-size:13px;color:#a4778b;margin-top:18px}
.hero{min-height:82vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 20px;position:relative;overflow:hidden}
.hero:before,.hero:after{content:"♡";position:absolute;color:rgba(185,79,120,.16);font-size:180px;animation:float 5s ease-in-out infinite}.hero:before{left:5%;top:12%}.hero:after{right:4%;bottom:5%;animation-delay:1s}
.hero-glow{position:absolute;width:420px;height:420px;border-radius:50%;background:rgba(245,184,204,.35);filter:blur(50px)}
.eyebrow{font-size:15px;color:#9c5974;position:relative}.hero h1{font-size:clamp(35px,8vw,70px);margin:10px 0;position:relative}.hero-sub{font-size:clamp(20px,4vw,28px);position:relative}.scroll-hint{margin-top:70px;color:#9a6b7d;font-size:14px}
.section{width:min(1050px,92%);margin:0 auto;padding:70px 0}.section-title{text-align:center;margin-bottom:30px}.section-title span{font-size:35px}.section-title h2{font-size:clamp(24px,5vw,38px);margin:5px 0}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.gallery-grid figure{margin:0;background:white;padding:10px;border-radius:25px;box-shadow:0 18px 45px rgba(91,35,64,.13);transform:rotate(-1deg);transition:.3s}.gallery-grid figure:nth-child(2){transform:rotate(1.2deg)}.gallery-grid figure:hover{transform:translateY(-7px) rotate(0)}.gallery-grid img{width:100%;height:430px;object-fit:cover;border-radius:18px;display:block}.gallery-grid figcaption{text-align:center;padding:12px;font-weight:700;color:#8e4b68}
.paper{background:#fffdf8;border-radius:30px;padding:clamp(25px,5vw,55px);box-shadow:0 20px 60px rgba(91,35,64,.13);position:relative;border:1px solid #f4e4e8}.paper:before{content:"";position:absolute;inset:12px;border:1px dashed #e8bfd0;border-radius:23px;pointer-events:none}.paper h2{text-align:center;margin-top:0}.paper-decor{text-align:center;font-size:40px;color:#bd5a83}.message{font-size:17px;line-height:2.15;position:relative}.message p{margin:0 0 20px}
.music-card{background:linear-gradient(135deg,#fff,#fff1f7);border-radius:30px;padding:30px;box-shadow:0 15px 50px rgba(91,35,64,.11);display:grid;gap:15px;text-align:center}.disc{width:70px;height:70px;margin:auto;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#7e2f55,#d76f98);color:white;font-size:30px;box-shadow:0 8px 25px rgba(126,47,85,.25)}audio{width:100%;height:48px}.music-card small{color:#9a7180;line-height:1.7}
.surprise-card{text-align:center;background:rgba(255,255,255,.72);border:1px solid #fff;border-radius:35px;padding:45px 25px;box-shadow:0 20px 60px rgba(91,35,64,.13)}.stars{color:#d5a357;font-size:30px;letter-spacing:10px}.surprise-text{max-width:760px;margin:30px auto 0;font-size:18px;line-height:2}.surprise-text p{background:#fff7fa;border-radius:20px;padding:15px 20px}.surprise-text .proud{font-weight:800;color:#8e365e}.final-line{font-size:24px;font-weight:800;color:#a63e6a;margin-top:28px}
footer{text-align:center;padding:40px;color:#9a6b7d}
.hearts{position:fixed;inset:0;pointer-events:none;z-index:20;overflow:hidden}.heart{position:absolute;bottom:-40px;font-size:20px;opacity:.65;animation:rise linear forwards}
@keyframes rise{to{transform:translateY(-110vh) rotate(30deg);opacity:0}}@keyframes float{50%{transform:translateY(-18px) rotate(5deg)}}
@media(max-width:760px){.gallery-grid{grid-template-columns:1fr}.gallery-grid img{height:520px}.section{padding:50px 0}.message{font-size:16px;line-height:2}.hero{min-height:75vh}}
