:root{--coral:#FF5A7E;--violet:#7B5CFA;--navy:#1B1F3B;--cream:#FFF7EC;}
*{box-sizing:border-box}
body{margin:0;font-family:Vazirmatn,sans-serif;color:var(--navy);background:var(--cream);
background-image:radial-gradient(circle at 15% 20%,#ffd9e2 0,transparent 35%),radial-gradient(circle at 85% 75%,#e4dcff 0,transparent 40%),
repeating-linear-gradient(45deg,transparent 0 38px,rgba(27,31,59,.025) 38px 40px);min-height:100vh;overflow-x:hidden}
.brand{background:linear-gradient(90deg,var(--coral),var(--violet));-webkit-background-clip:text;color:transparent}
.deck{position:relative;width:min(92vw,380px);height:min(64vh,560px);margin:0 auto;perspective:1400px}
.card{position:absolute;inset:0;touch-action:none;user-select:none;cursor:grab}
.card.anim{transition:transform .45s cubic-bezier(.2,1.4,.4,1)}
.flip{position:relative;width:100%;height:100%;transition:transform .7s;transform-style:preserve-3d}
.flip.on{transform:rotateY(180deg)}
.face{position:absolute;inset:0;border-radius:24px;overflow:hidden;backface-visibility:hidden;box-shadow:0 20px 50px -15px rgba(27,31,59,.35);background:#fff}
.back{transform:rotateY(180deg);overflow-y:auto;padding:20px}
.glass{background:linear-gradient(transparent,rgba(27,31,59,.92) 35%);color:#fff}
.stamp{position:absolute;top:28px;padding:4px 14px;border:4px solid;border-radius:10px;font-weight:900;font-size:26px;pointer-events:none}
.btn-round{width:58px;height:58px;border-radius:50%;background:#fff;box-shadow:0 8px 20px -6px rgba(27,31,59,.3);display:flex;align-items:center;justify-content:center;font-size:24px;transition:transform .15s}
.btn-round:active{transform:scale(.9)}
.btn-round:hover{transform:translateY(-3px)}
@keyframes beat{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
.beat{animation:beat 1s infinite}
@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}
.confetti{position:fixed;top:-20px;width:10px;height:14px;animation:fall linear forwards;z-index:60}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
.pop{animation:pop .4s cubic-bezier(.2,1.5,.4,1)}
.dots span{display:inline-block;width:6px;height:6px;margin:0 2px;border-radius:50%;background:var(--violet);animation:beat .9s infinite}
.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}