.App{min-height:100vh;padding:20px 0}@media (max-width: 480px){.wedding-title{font-size:2rem!important}.wedding-subtitle{font-size:1rem!important}.verification-form{padding:25px 15px!important;margin:0 15px!important}.result-card{margin:15px!important;padding:20px 15px!important}.welcome-message{font-size:1.5rem!important}}.celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0009;display:flex;align-items:center;justify-content:center}.celebration-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.celebration-content{position:relative;border-radius:16px;padding:60px 24px 24px;text-align:center;box-shadow:0 10px 30px #0000004d}.celebration-image{max-width:100%;border-radius:12px}.curved-text{position:absolute;left:50%;top:20%;transform:translate(-50%,-50%);width:300px;height:60px;pointer-events:none;display:flex;justify-content:center;align-items:center}.curved-char{position:absolute;font-size:1.2rem;font-weight:900;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.8),0 0 20px rgba(0,0,0,.5);-webkit-text-stroke:1px rgba(255,255,255,.3);text-stroke:1px rgba(255,255,255,.3);transform:rotate(calc((var(--i) - var(--total) / 2) * 100deg / var(--total))) translateY(-116px) rotate(calc((var(--i) - var(--total) / 2) * -20deg / var(--total)));transform-origin:center center;left:calc(50% + (var(--i) - var(--total) / 2) * 5px)}.celebration-count{position:absolute;left:50%;top:7%;transform:translate(-50%,-50%);font-size:2.5rem;font-weight:800;color:#fff;text-shadow:0 2px 6px rgba(0,0,0,.6);pointer-events:none}.celebration-close{position:absolute;top:8px;right:10px;width:36px;height:36px;border-radius:50%;border:none;background:#0000008c;color:#fff;font-size:22px;line-height:36px;text-align:center;cursor:pointer}.celebration-secret{position:absolute;right:7%;bottom:7%;padding:2px 5px;background:#000000a6;color:#fff;border-radius:8px;font-weight:700;letter-spacing:.5px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;color:#333}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:20px}.wedding-header{text-align:center;margin-bottom:20px}.wedding-title{font-family:Playfair Display,serif;font-size:3rem;font-weight:700;color:#2c3e50;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.1)}.wedding-subtitle{font-size:1.2rem;color:#7f8c8d;font-weight:300}.verification-form{background:#fff;border-radius:20px;padding:40px;box-shadow:0 20px 40px #0000001a;max-width:600px;margin:0 auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.form-group{margin-bottom:25px}.form-label{display:block;margin-bottom:8px;font-weight:500;color:#2c3e50;font-size:.95rem}.form-input{width:100%;padding:15px;border:2px solid #e1e8ed;border-radius:10px;font-size:16px;transition:all .3s ease;background:#f8f9fa}.form-input:focus{outline:none;border-color:#3498db;background:#fff;box-shadow:0 0 0 3px #3498db1a}.form-input.error{border-color:#e74c3c;background:#fdf2f2}.form-input.error:focus{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c1a}.form-input::placeholder{color:#bdc3c7}.submit-btn{width:100%;padding:15px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease;margin-top:10px}.submit-btn:hover{transform:translateY(-2px);box-shadow:0 10px 20px #0003}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading{display:inline-block;width:20px;height:20px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.result-card{background:#fff;border-radius:20px;padding:30px;box-shadow:0 20px 40px #0000001a;max-width:600px;margin:30px auto;text-align:center}.welcome-message{font-family:Playfair Display,serif;font-size:2rem;color:#2c3e50;margin-bottom:20px}.guest-info{background:#f8f9fa;border-radius:15px;padding:10px;margin:20px 0}.info-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e1e8ed;flex-direction:column}.info-item:last-child{border-bottom:none}.info-label{font-weight:600;color:#2c3e50}.info-value{color:#7f8c8d}.error-message{background:#fee;color:#c53030;padding:15px;border-radius:10px;margin:20px 0;border-left:4px solid #c53030}.field-error{margin-top:8px}.error-text{color:#e74c3c;font-size:.85rem;margin-bottom:4px;display:flex;align-items:center}.error-text:before{content:"⚠️";margin-right:6px;font-size:.8rem}.success-message{background:#f0fff4;color:#2f855a;padding:15px;border-radius:10px;margin:20px 0;border-left:4px solid #2f855a}@media (max-width: 768px){.wedding-title{font-size:2.5rem}.verification-form{padding:30px 20px;margin:0 20px}.result-card{margin:20px;padding:20px}}
