:root{--gold:#F5C518;--red:#B91C1C;--bg:#0B0B14}
body{font-family:'Vazirmatn',sans-serif;background:var(--bg);color:#eee;min-height:100vh;
background-image:radial-gradient(ellipse 60% 50% at 50% -10%,rgba(245,197,24,.18),transparent 70%),radial-gradient(ellipse at bottom,rgba(185,28,28,.12),transparent 60%);background-attachment:fixed}
body::after{content:'';position:fixed;inset:0;pointer-events:none;opacity:.06;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='120' height='120' filter='url(%23n)'/%3E%3C/svg%3E")}
.glass{background:rgba(255,255,255,.06);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1)}
.card{transition:transform .25s,box-shadow .25s}
.card:hover{transform:scale(1.03);box-shadow:0 0 30px rgba(245,197,24,.35)}
.shimmer{background:linear-gradient(90deg,#1a1a26 25%,#2a2a3a 50%,#1a1a26 75%);background-size:200% 100%;animation:sh 1.3s infinite}
@keyframes sh{to{background-position:-200% 0}}
.fade{animation:fd .5s both}
@keyframes fd{from{opacity:0;transform:translateY(12px)}}
.ticket{background:linear-gradient(135deg,#F5C518,#e0a800);color:#1a1300;position:relative;
-webkit-mask:radial-gradient(circle 12px at 0 50%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 12px at 100% 50%,#0000 98%,#000) right/51% 100% no-repeat}
.pop{position:absolute;animation:pp 1s infinite ease-out}
@keyframes pp{0%{transform:translate(0,0);opacity:1}100%{transform:translate(var(--x),-80px) rotate(360deg);opacity:0}}
.spin{animation:sp .15s linear infinite}
@keyframes sp{to{transform:rotateY(360deg)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}