.app{width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.marriage-template{width:100%;display:flex;align-items:center;justify-content:center;padding:20px}.marriage-card{background:linear-gradient(135deg,#ffeaa7,#fab1a0);border-radius:20px;padding:40px;max-width:400px;text-align:center;box-shadow:0 15px 40px #0003;border:3px solid #c41e3a;animation:pulse 2s ease-in-out infinite}.marriage-header{margin-bottom:30px}.marriage-header h2{color:#c41e3a;font-size:1.8em;margin-bottom:15px;font-family:Georgia,serif}.flowers{font-size:2em;letter-spacing:10px;animation:float 3s ease-in-out infinite}.marriage-content{margin:30px 0}.qr-wrapper{background:#fff;padding:15px;border-radius:12px;display:inline-block;border:2px solid #c41e3a;margin-bottom:20px}.marriage-text{color:#c41e3a;font-size:1.1em;margin-bottom:15px;font-style:italic}.decorative-line{width:60px;height:2px;background:#c41e3a;margin:15px auto}.couple-text{font-size:2em;margin:15px 0}.marriage-footer{margin-top:20px;font-size:1.2em;color:#c41e3a;font-style:italic;font-family:Georgia,serif}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.love-template{width:100%;display:flex;align-items:center;justify-content:center;padding:20px}.love-card{background:linear-gradient(135deg,#ffeef8,#ffe5f0);border-radius:20px;padding:40px;max-width:400px;text-align:center;box-shadow:0 15px 40px #ff149333;border:3px solid #ff1493;animation:heartbeat 1.5s ease-in-out infinite}.hearts-top,.hearts-bottom{font-size:2.5em;letter-spacing:15px;margin-bottom:20px;animation:float 3s ease-in-out infinite}.hearts-bottom{margin-top:20px;margin-bottom:0}.love-title{color:#ff1493;font-size:2em;margin-bottom:30px;font-family:Brush Script MT,cursive}.love-content{margin:30px 0}.love-content .qr-wrapper{background:#fff;padding:15px;border-radius:12px;display:inline-block;border:2px solid #ff1493;margin-bottom:20px}.love-message{color:#ff1493;font-size:1.2em;font-style:italic;margin-top:15px}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.05)}50%{transform:scale(1)}75%{transform:scale(1.05)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.birthday-template{width:100%;display:flex;align-items:center;justify-content:center;padding:20px}.birthday-card{background:linear-gradient(135deg,#ffd89b,#19547b);border-radius:20px;padding:40px;max-width:400px;text-align:center;box-shadow:0 15px 40px #0003;border:3px dashed #ff6b6b;position:relative;overflow:hidden}.balloons{font-size:2.5em;letter-spacing:8px;margin-bottom:20px;display:flex;justify-content:center;gap:10px}.balloon{animation:bounce 2s ease-in-out infinite}.balloon:nth-child(1){animation-delay:0s}.balloon:nth-child(2){animation-delay:.2s}.balloon:nth-child(3){animation-delay:.4s}.balloon:nth-child(4){animation-delay:.6s}.balloon:nth-child(5){animation-delay:.8s}.birthday-title{color:#ff6b6b;font-size:2em;margin-bottom:30px;text-shadow:2px 2px 4px rgba(0,0,0,.1)}.birthday-content{margin:30px 0}.birthday-content .qr-wrapper{background:#fff;padding:15px;border-radius:12px;display:inline-block;border:2px solid #ff6b6b;margin-bottom:20px}.birthday-message{color:#ff6b6b;font-size:1.2em;font-weight:600;margin-top:15px}.confetti{font-size:2em;letter-spacing:10px;margin-top:20px;animation:confetti-fall 3s ease-in infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-10px)}to{opacity:0;transform:translateY(10px)}}.graduation-template{width:100%;display:flex;align-items:center;justify-content:center;padding:20px}.graduation-card{background:linear-gradient(135deg,#1a472a,#238b45);border-radius:20px;padding:40px;max-width:400px;text-align:center;box-shadow:0 15px 40px #0000004d;border:3px solid #ffd700;position:relative}.caps{font-size:3em;letter-spacing:15px;margin-bottom:20px;animation:toss 2s ease-in-out infinite}.graduation-title{color:gold;font-size:2em;margin-bottom:30px;text-shadow:2px 2px 4px rgba(0,0,0,.3);font-family:Georgia,serif}.graduation-content{margin:30px 0}.graduation-content .qr-wrapper{background:#fff;padding:15px;border-radius:12px;display:inline-block;border:3px solid #ffd700;margin-bottom:20px}.graduation-message{color:gold;font-size:1.1em;margin-top:15px;font-style:italic}.diploma{margin-top:30px;padding:20px;background:#ffd7001a;border-radius:10px;border:2px dashed #ffd700}.diploma p{color:gold;font-size:1.3em;font-weight:600;margin:0}@keyframes toss{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(5deg)}}.garba-template{width:100%;display:flex;align-items:center;justify-content:center;padding:20px}.garba-card{background:linear-gradient(135deg,#d4a574,#8b4513);border-radius:20px;padding:40px;max-width:400px;text-align:center;box-shadow:0 15px 40px #8b45134d;border:3px solid #d4a574;animation:spin-light 3s ease-in-out infinite;position:relative}.garba-card:before{content:"";position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:2px dashed #ffd700;border-radius:15px;pointer-events:none;opacity:.5}.garba-header{margin-bottom:30px;position:relative;z-index:1}.garba-header h2{color:gold;font-size:2em;margin-bottom:15px;text-shadow:2px 2px 4px rgba(0,0,0,.3);font-weight:700}.garba-decorations{font-size:2.5em;letter-spacing:15px;animation:float 3s ease-in-out infinite}.garba-content{margin:30px 0;position:relative;z-index:1}.mirror-decorations{font-size:2em;letter-spacing:12px;margin-bottom:20px;display:flex;justify-content:center;gap:8px}.mirror{animation:twinkle 1.5s ease-in-out infinite;display:inline-block}.mirror:nth-child(1){animation-delay:0s}.mirror:nth-child(2){animation-delay:.5s}.mirror:nth-child(3){animation-delay:1s}.qr-wrapper{background:#fff;padding:15px;border-radius:12px;display:inline-block;border:3px solid #ffd700;margin-bottom:20px;box-shadow:0 8px 20px #0003}.garba-message{color:#fff;font-size:1.1em;margin-bottom:15px;font-weight:600;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.garba-line{width:80px;height:2px;background:linear-gradient(90deg,transparent,#ffd700,transparent);margin:15px auto}.dancers{font-size:2em;margin:15px 0;animation:rotate 4s linear infinite}.garba-footer{margin-top:25px;position:relative;z-index:1}.garba-footer p{color:#fff;font-size:1.1em;font-style:italic;margin-bottom:10px;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.traditional-pattern{font-size:1.5em;letter-spacing:8px;color:gold;margin-top:10px}@keyframes spin-light{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.02) rotate(1deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}@keyframes rotate{0%{transform:rotate(-5deg)}25%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}to{transform:rotate(-5deg)}}.normal-template{display:flex;justify-content:center;align-items:center;min-height:500px;background:linear-gradient(135deg,#f5f5f5,#e8e8e8);padding:20px;border-radius:10px}.normal-card{background:#fff;border-radius:8px;padding:40px;box-shadow:0 4px 6px #0000001a;text-align:center;max-width:400px;width:100%}.normal-title{font-size:24px;font-weight:600;color:#333;margin-bottom:30px;letter-spacing:1px}.normal-content{display:flex;flex-direction:column;align-items:center;gap:20px}.normal-content .qr-wrapper{display:flex;justify-content:center;align-items:center;background:#fff;padding:15px;border-radius:8px;border:2px solid #ddd}.normal-content .qr-wrapper canvas{display:block}.normal-message{font-size:14px;color:#666;margin:0;font-weight:500;letter-spacing:.5px}@media (max-width: 768px){.normal-card{padding:30px 20px}.normal-title{font-size:20px}.normal-content .qr-wrapper{padding:10px}}@media (max-width: 480px){.normal-template{min-height:400px;padding:10px}.normal-card{padding:20px}.normal-title{font-size:18px;margin-bottom:20px}.normal-message{font-size:12px}}.qr-generator-container{width:100%;max-width:1200px}.header{text-align:center;color:#fff;margin-bottom:40px;animation:slideDown .6s ease-out}.header h1{font-size:3em;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.header p{font-size:1.2em;opacity:.9}.main-content{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-bottom:40px}.input-section{background:#fff;padding:30px;border-radius:15px;box-shadow:0 10px 30px #0003;animation:slideInLeft .6s ease-out}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:10px;font-weight:600;color:#333;font-size:1.1em}.form-group textarea,.form-group select{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:1em;font-family:inherit;transition:border-color .3s ease}.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group textarea{resize:vertical;min-height:120px}.generate-btn{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1em;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.generate-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea4d}.generate-btn:active{transform:translateY(0)}.output-section{background:#fff;padding:30px;border-radius:15px;box-shadow:0 10px 30px #0003;animation:slideInRight .6s ease-out;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px}.qr-result{display:flex;flex-direction:column;align-items:center;gap:20px;width:100%}.placeholder{text-align:center;color:#999;font-size:1.1em}.download-btn{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1em;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.download-btn:hover{transform:translateY(-2px);box-shadow:0 8px 20px #667eea4d}.hidden{display:none}@keyframes slideDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@media (max-width: 768px){.main-content{grid-template-columns:1fr;gap:20px}.header h1{font-size:2em}.header p{font-size:1em}.input-section,.output-section{padding:20px}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;display:flex;align-items:center;justify-content:center}#root{width:100%}
