*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#090508;--wine:#681728;--purple:#24112e;--gold:#d8b458;--cream:#f8ecdf}html,body{min-height:100%;background:var(--bg);color:var(--cream);font-family:Vazirmatn,sans-serif}.ambient{position:fixed;inset:0;z-index:0;background:radial-gradient(circle at 15% 15%,#6e142533,transparent 36%),radial-gradient(circle at 85% 75%,#51206b55,transparent 40%),#090508;pointer-events:none}.scene{position:relative;z-index:1;display:none;min-height:100dvh;width:100%;padding:42px 18px;flex-direction:column;align-items:center;justify-content:center;text-align:center}.scene.active{display:flex}h1{font-size:clamp(2.25rem,7vw,4.8rem);color:var(--gold);text-shadow:0 0 24px #d8b45866}h2{font-size:clamp(1.45rem,4vw,2.2rem);color:var(--gold);margin-bottom:12px}.intro-text{font-size:clamp(1.25rem,4vw,2rem);line-height:2.2;color:var(--gold);max-width:720px}.stars{pointer-events:none;position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20% 20%,#fff,transparent),radial-gradient(1px 1px at 70% 60%,#fff,transparent),radial-gradient(1px 1px at 90% 30%,#fff,transparent);opacity:.7}.primary,.secondary{font-family:inherit;font-size:1rem;border-radius:28px;padding:14px 27px;cursor:pointer;margin-top:28px;transition:.25s}.primary{background:linear-gradient(135deg,#6e1423,#9e2a2b);border:1px solid var(--gold);color:#ffe9a7;box-shadow:0 0 20px #d8b45855}.secondary{background:#160a11aa;border:1px solid #d8b458aa;color:var(--gold)}button:hover{transform:scale(1.04)}.hidden{visibility:hidden;opacity:0}.copy{font-size:clamp(1.15rem,3.8vw,1.8rem);line-height:2.25}.big-heart{font-size:2.5rem;margin-top:10px}.hint{color:#e8d192;margin:6px 0 16px}.cards{width:min(950px,100%);display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.memory-card{width:min(280px,100%);min-height:260px;background:transparent;border:0;cursor:pointer;perspective:900px;color:var(--cream);position:relative}.memory-card span{border:1px solid #d8b458aa;border-radius:18px;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;line-height:2;text-align:center;backface-visibility:hidden;transition:transform .75s;overflow-y:auto}.front{background:linear-gradient(135deg,#681728,#24112e);font-size:1.1rem}.back{background:linear-gradient(135deg,#201018,#681728);transform:rotateY(180deg);font-size:.96rem}.memory-card.open .front{transform:rotateY(180deg)}.memory-card.open .back{transform:rotateY(0)}.scroll-scene{justify-content:flex-start;padding-top:45px}.gallery{width:min(680px,100%);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}.media{background:#160b12b8;border:1px solid #d8b45866;border-radius:16px;overflow:hidden;text-align:right;min-width:0}.media img,.media video{width:100%;display:block;aspect-ratio:1/1;object-fit:cover;background:#000}.media video{object-fit:contain}.media p{font-size:clamp(.82rem,2.4vw,1rem);line-height:1.9;padding:10px;min-height:58px;overflow-wrap:anywhere}.letter{width:min(720px,100%);padding:clamp(22px,5vw,48px);border:1px solid #d8b45877;border-radius:20px;background:#160b12b8;font-size:clamp(1.05rem,3vw,1.45rem);line-height:2.25;text-align:right}.letter p+ p{margin-top:22px}.pulse-heart{font-size:5.5rem;animation:pulse 1s infinite}@keyframes pulse{50%{transform:scale(1.2);filter:drop-shadow(0 0 18px #ff416c)}}.ready{font-size:1.35rem;margin-top:12px}.gift{border:0;background:transparent;font-size:8rem;cursor:pointer;transition:.5s}.gift.opened{transform:scale(1.25) rotate(10deg)}#birthdayVideo{width:min(760px,100%);max-height:70dvh;background:#000;border:1px solid var(--gold);border-radius:16px;margin-top:18px}.end-copy{position:relative;z-index:2;width:min(700px,100%);font-size:clamp(1.25rem,4vw,2rem);line-height:2}.end-copy strong{display:block;margin-top:16px;color:var(--gold);font-family:serif;font-size:1.15em}#celebration{position:absolute;inset:0;overflow:hidden;pointer-events:none}#celebration i{position:absolute;bottom:-70px;font-style:normal;font-size:2rem;animation:floatUp linear forwards}@keyframes floatUp{to{transform:translate(var(--x),-120dvh) rotate(520deg);opacity:0}}@media(min-width:800px){.scene{padding:70px 30px}.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.media p{min-height:64px}.memory-card{width:285px;height:275px}}@media(max-width:390px){.gallery{grid-template-columns:1fr}.memory-card{height:240px}.media p{font-size:.95rem}}
.scene > h1,.scene > h2,.scene > p,.scene > div:not(.stars):not(#celebration),.scene > button{position:relative;z-index:2}.primary,.secondary,.memory-card,.gift{touch-action:manipulation;-webkit-tap-highlight-color:transparent;pointer-events:auto}

/* ورود نرم هر صفحه و اجزای آن */
.scene.active{animation:sceneFade .7s ease both}
.scene.active>h1,.scene.active>h2,.scene.active>p,.scene.active>.copy,.scene.active>.cards,.scene.active>.gallery,.scene.active>.letter,.scene.active>.gift,.scene.active>video,.scene.active>.pulse-heart,.scene.active>.end-copy,.scene.active>button{
 animation:riseIn .72s cubic-bezier(.2,.8,.2,1) both;
}
.scene.active>h1,.scene.active>h2{animation-delay:.08s}.scene.active>p,.scene.active>.copy{animation-delay:.16s}.scene.active>.cards,.scene.active>.gallery,.scene.active>.letter{animation-delay:.25s}.scene.active>button{animation-delay:.42s}.scene.active>.end-copy{animation-delay:.25s}
.gallery .media{opacity:0;animation:riseIn .6s ease forwards}.gallery .media:nth-child(1){animation-delay:.1s}.gallery .media:nth-child(2){animation-delay:.16s}.gallery .media:nth-child(3){animation-delay:.22s}.gallery .media:nth-child(4){animation-delay:.28s}.gallery .media:nth-child(5){animation-delay:.34s}.gallery .media:nth-child(6){animation-delay:.4s}.gallery .media:nth-child(7){animation-delay:.46s}.gallery .media:nth-child(8){animation-delay:.52s}.gallery .media:nth-child(n+9){animation-delay:.58s}
@keyframes sceneFade{from{opacity:0}to{opacity:1}}@keyframes riseIn{from{opacity:0;transform:translateY(22px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
