*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:Vazirmatn,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--primary-blue: #2563eb;--primary-dark: #1e3a8a;--primary-light: #eff6ff;--accent-blue: #3b82f6;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #64748b;--border-color: rgba(37, 99, 235, .15)}.card-outer-container{display:flex;justify-content:center;align-items:center;min-height:100vh;min-height:100dvh;background:linear-gradient(135deg,#f0f9ff,#e0f2fe,#dbeafe);background-size:400% 400%;animation:gradientFlow 15s ease infinite;background-image:radial-gradient(at 20% 30%,rgba(37,99,235,.08) 0px,transparent 50%),radial-gradient(at 80% 70%,rgba(59,130,246,.06) 0px,transparent 50%),radial-gradient(at 50% 50%,rgba(30,58,138,.04) 0px,transparent 50%);padding:20px;direction:rtl;overflow-x:hidden;position:relative}@keyframes gradientFlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.invitation-card{background:#fffffffa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:100%;max-width:500px;min-height:85vh;position:relative;padding:45px 40px;border-radius:28px;box-shadow:0 25px 50px -12px #2563eb1f,0 12px 24px -8px #00000014,inset 0 0 0 1px #fffc,inset 0 2px 4px #ffffff80;border:1px solid var(--border-color);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;animation:cardEntrance .8s cubic-bezier(.16,1,.3,1)}@keyframes cardEntrance{0%{opacity:0;transform:translateY(30px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.corner{position:absolute;width:140px;height:140px;background:radial-gradient(circle at center,rgba(59,130,246,.15) 0%,transparent 70%);opacity:.7;z-index:0;filter:blur(25px);pointer-events:none;animation:cornerPulse 4s ease-in-out infinite}@keyframes cornerPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}.corner-tl{top:-40px;left:-40px;background:radial-gradient(circle at center,rgba(37,99,235,.2) 0%,transparent 70%)}.corner-br{bottom:-40px;right:-40px;background:radial-gradient(circle at center,rgba(59,130,246,.18) 0%,transparent 70%);animation-delay:2s}.card-header{text-align:center;margin-bottom:32px;position:relative;z-index:1}.card-logo{max-width:110px;height:auto;filter:drop-shadow(0 4px 12px rgba(37,99,235,.15));transition:transform .3s ease}.card-logo:hover{transform:scale(1.05)}.guest-greeting-container{text-align:right;padding:20px 24px;margin-bottom:28px;background:linear-gradient(135deg,#2563eb08,#3b82f605);border-radius:16px;border-right:4px solid var(--primary-blue);position:relative;z-index:1}.guest-role{font-size:1.2rem;font-weight:800;color:var(--primary-dark);margin-bottom:8px;font-family:Vazirmatn,sans-serif;letter-spacing:-.02em;line-height:1.4}.guest-name{font-size:1.1rem;font-weight:600;color:var(--text-secondary);font-family:Vazirmatn,sans-serif;line-height:1.5}.card-body{flex-grow:1;color:var(--text-secondary);line-height:1.9;font-size:.95rem;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1}.salutation{margin-bottom:16px;font-weight:600;text-align:right;color:var(--text-primary)}.main-content{margin-bottom:24px;text-align:justify;line-height:2}.main-content strong{color:var(--primary-dark);font-weight:700}.event-info{margin-bottom:24px;padding:20px;background:linear-gradient(135deg,#eff6ffcc,#dbeafe66);border-radius:16px;border-right:3px solid var(--accent-blue);position:relative}.info-title{font-weight:800;margin-bottom:12px;color:var(--primary-dark);font-size:1.05rem}.event-info p{margin:8px 0;color:var(--text-secondary);font-weight:500}.final-note{font-weight:700;margin-bottom:28px;text-align:center;color:var(--primary-dark);font-size:1.05rem;padding:16px;background:linear-gradient(135deg,#2563eb0d,#3b82f608);border-radius:12px}.card-footer{display:flex;flex-direction:column;align-items:center;align-self:flex-end;margin-bottom:24px;font-size:.9rem;padding:16px 20px;background:linear-gradient(135deg,rgba(239,246,255,.6) 0%,transparent 100%);border-radius:12px;position:relative;z-index:1}.card-footer p{margin:4px 0;color:var(--text-secondary)}.footer-name{font-weight:800;font-size:1.1rem;margin:6px 0;color:var(--primary-dark)}.card-actions{display:flex;gap:12px;padding-top:16px;position:relative;z-index:1}.web-btn{flex:1;padding:16px 12px;border-radius:16px;border:none;cursor:pointer;font-family:Vazirmatn,sans-serif;font-size:.95rem;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex;align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden}.web-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 100%);opacity:0;transition:opacity .3s ease}.web-btn:hover:before{opacity:1}.web-btn.confirm{background:linear-gradient(135deg,var(--primary-blue) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:0 8px 16px -4px #2563eb66,0 4px 8px -2px #2563eb33}.web-btn.confirm:hover{transform:translateY(-3px);box-shadow:0 12px 24px -6px #2563eb80,0 6px 12px -3px #2563eb4d}.web-btn.confirm:active{transform:translateY(-1px)}.web-btn.map{background:linear-gradient(135deg,#fff,#f8fafc);color:var(--primary-dark);border:2px solid var(--border-color);box-shadow:0 4px 12px -2px #2563eb1a}.web-btn.map:hover{transform:translateY(-3px);border-color:var(--primary-blue);box-shadow:0 8px 16px -4px #2563eb33}.web-btn.map:active{transform:translateY(-1px)}.additional-actions{margin-top:16px;width:100%;display:flex;flex-direction:column;justify-content:center;gap:12px;position:relative;z-index:1}.eshen-btn,.baharestan-btn{flex:1;padding:16px 12px;border-radius:16px;border:none;cursor:pointer;font-family:Vazirmatn,sans-serif;font-size:.9rem;font-weight:800;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .4s cubic-bezier(.175,.885,.32,1.275);position:relative;overflow:hidden}.eshen-btn{background:linear-gradient(135deg,#d4af37,#b8860b,#8b4513);background-size:200% auto;box-shadow:0 10px 20px -5px #b8860b66,0 4px 6px -2px #b8860b33;animation:goldShimmer 3s infinite linear}.baharestan-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8,#1e3a8a);background-size:200% auto;box-shadow:0 10px 20px -5px #2563eb66,0 4px 6px -2px #2563eb33;animation:blueShimmer 3s infinite linear}@keyframes blueShimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes goldShimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.eshen-btn:hover,.baharestan-btn:hover{transform:translateY(-4px) scale(1.02)}.eshen-btn:hover{box-shadow:0 15px 30px -8px #b8860b80,0 8px 12px -4px #b8860b4d}.baharestan-btn:hover{box-shadow:0 15px 30px -8px #2563eb80,0 8px 12px -4px #2563eb4d}.eshen-btn:active,.baharestan-btn:active{transform:translateY(-1px) scale(.98)}.eshen-btn .btn-logo,.baharestan-btn .btn-logo{width:24px;height:24px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.eshen-btn.loading,.baharestan-btn.loading{pointer-events:none;opacity:.9}.loader{width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 480px){.additional-actions{margin-top:12px;gap:8px}.eshen-btn,.baharestan-btn{padding:12px 8px;font-size:.85rem;border-radius:12px;gap:6px}.eshen-btn .btn-logo,.baharestan-btn .btn-logo{width:20px;height:20px}.card-outer-container{padding:16px;height:100dvh;min-height:auto;align-items:center;background:linear-gradient(135deg,#f0f9ff,#e0f2fe)}.invitation-card{width:100%;height:auto;min-height:100%;max-height:100%;max-width:none;border-radius:24px;border:1px solid rgba(255,255,255,.6);box-shadow:0 15px 35px -5px #2563eb26;padding:24px 20px;display:flex;flex-direction:column;justify-content:flex-start;gap:12px;position:relative;overflow-y:auto;-webkit-overflow-scrolling:touch}.invitation-card:after{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid rgba(37,99,235,.12);border-radius:16px;pointer-events:none;z-index:0}.corner{width:100px;height:100px;filter:blur(20px)}.corner-tl{top:-20px;left:-20px}.corner-br{bottom:-20px;right:-20px}.card-header{margin-bottom:2vh;flex-shrink:0}.card-logo{max-width:90px}.guest-greeting-container{padding:12px 16px;margin-bottom:2vh;flex-shrink:0;background:#2563eb08}.guest-role{font-size:1rem;margin-bottom:4px}.guest-name{font-size:.95rem}.card-body{font-size:.85rem;line-height:1.6;flex-grow:0;display:flex;flex-direction:column;justify-content:flex-start;padding:0 4px}.web-btn:active{transform:scale(.96);transition:transform .1s}.web-btn.confirm:active{background:linear-gradient(135deg,#1e3a8a,#1e40af);box-shadow:0 2px 4px #2563eb33}.web-btn.map:active{background:#f1f5f9;border-color:#cbd5e1}.salutation{margin-bottom:1vh}.main-content{margin-bottom:2vh;text-align:justify;line-height:1.8}.event-info{padding:12px;margin-bottom:2vh;background:#eff6ff99;border-right-width:3px}.info-title{font-size:.95rem;margin-bottom:8px}.event-info p{margin:4px 0;font-size:.85rem}.final-note{font-size:.85rem;margin-bottom:1vh;padding:12px;line-height:1.5;width:100%;flex-shrink:0}.card-footer{flex-shrink:0;margin-bottom:1.5vh;padding:8px 12px;font-size:.8rem}.footer-name{font-size:.95rem}.card-actions{padding-top:10px;gap:10px;flex-shrink:0}.web-btn{padding:14px 10px;font-size:.9rem;border-radius:12px}}@media (max-height: 700px) and (max-width: 480px){.invitation-card{padding:16px}.card-logo{max-width:70px}.guest-greeting-container{padding:8px 12px;margin-bottom:1vh}.card-body{font-size:.8rem;line-height:1.5}.main-content{line-height:1.6;margin-bottom:1vh}.event-info{padding:8px;margin-bottom:1vh}.final-note{padding:6px;font-size:.85rem;margin-bottom:1vh}.web-btn{padding:10px 8px}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172abf;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .4s cubic-bezier(.16,1,.3,1);direction:rtl}@keyframes fadeIn{0%{opacity:0;-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}}.modal-card{background:linear-gradient(135deg,#fff,#f8fafc);width:100%;max-width:400px;border-radius:32px;padding:48px 36px;text-align:center;box-shadow:0 30px 60px -12px #2563eb4d,0 18px 36px -18px #0003,inset 0 0 0 1px #fffc;position:relative;overflow:hidden;animation:slideIn .6s cubic-bezier(.16,1,.3,1)}.modal-card:before{content:"";position:absolute;top:-50%;right:-50%;width:200%;height:200%;background:radial-gradient(circle at center,rgba(37,99,235,.08) 0%,transparent 70%);animation:rotate 20s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes slideIn{0%{transform:translateY(100%) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.success-animation{width:90px;height:90px;background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#2563eb;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3rem;margin:0 auto 28px;position:relative;z-index:1;animation:successPulse 2s ease-in-out infinite;box-shadow:0 8px 16px -4px #2563eb4d,inset 0 2px 4px #ffffff80}@keyframes successPulse{0%{box-shadow:0 0 #2563eb66,0 8px 16px -4px #2563eb4d,inset 0 2px 4px #ffffff80}50%{box-shadow:0 0 0 20px #2563eb00,0 8px 16px -4px #2563eb4d,inset 0 2px 4px #ffffff80}to{box-shadow:0 0 #2563eb00,0 8px 16px -4px #2563eb4d,inset 0 2px 4px #ffffff80}}.modal-card h2{color:#0f172a;font-size:1.75rem;font-weight:800;margin-bottom:16px;position:relative;z-index:1;background:linear-gradient(135deg,#1e3a8a,#2563eb);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-subtitle{color:#64748b;font-size:1rem;line-height:1.7;margin-bottom:28px;position:relative;z-index:1}.guest-name-badge{display:inline-block;background:linear-gradient(135deg,#2563eb14,#3b82f60d);color:#1e3a8a;padding:16px 28px;border-radius:20px;font-weight:700;font-size:1.1rem;margin-bottom:32px;position:relative;z-index:1;border:2px solid rgba(37,99,235,.15);box-shadow:0 4px 12px -2px #2563eb26,inset 0 2px 4px #ffffff80}.redirect-notice{font-size:.85rem;color:#94a3b8;margin-bottom:20px;position:relative;z-index:1;animation:fadeInOut 2s ease-in-out infinite}@keyframes fadeInOut{0%,to{opacity:.5}50%{opacity:1}}.confirm-close-btn{width:100%;padding:18px;background:linear-gradient(135deg,#2563eb,#1e3a8a);color:#fff;border:none;border-radius:18px;font-weight:800;font-family:Vazirmatn,sans-serif;font-size:1.05rem;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);box-shadow:0 12px 24px -6px #2563eb66,0 6px 12px -3px #2563eb33;position:relative;z-index:1;overflow:hidden}.confirm-close-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(255,255,255,.2) 0%,transparent 100%);opacity:0;transition:opacity .3s ease}.confirm-close-btn:hover{transform:translateY(-3px);box-shadow:0 16px 32px -8px #2563eb80,0 8px 16px -4px #2563eb4d}.confirm-close-btn:hover:before{opacity:1}.confirm-close-btn:active{transform:translateY(-1px)}@media (max-width: 480px){.modal-card{padding:40px 28px;border-radius:28px}.success-animation{width:80px;height:80px;font-size:2.5rem}.modal-card h2{font-size:1.5rem}.guest-name-badge{padding:14px 24px;font-size:1rem}.confirm-close-btn{padding:16px;font-size:1rem}}:root{--primary-font: "Vazirmatn", sans-serif;--primary-blue: #2563eb;--primary-dark: #1e3a8a}body{margin:0;padding:0;font-family:var(--primary-font);background:linear-gradient(135deg,#f0f9ff,#e0f2fe);color:#0f172a;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}*{box-sizing:border-box}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:24px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe,#dbeafe)}.loading-spinner{width:60px;height:60px;border:6px solid rgba(37,99,235,.1);border-top:6px solid var(--primary-blue);border-radius:50%;animation:spinner 1s cubic-bezier(.5,0,.5,1) infinite;box-shadow:0 4px 12px #2563eb33}.loading-screen p{color:var(--primary-dark);font-weight:600;font-size:1.1rem}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
