:root{--bg-primary:#fcf9f5;--bg-card:#fff;--text-main:#3d3b3c;--text-muted:#595959;--primary:#9bb5a1;--primary-hover:#839d89;--secondary:#e6dfd3;--secondary-hover:#d3cbbd;--accent:#e1b382;--accent-light:#fbeedb;--error:#d9534f;--error-bg:#fdf0ed;--success:#5cb85c;--success-bg:#f0f9f0;--font-heading:"Playfair Display", Georgia, serif;--font-body:"Outfit", system-ui, -apple-system, sans-serif;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-round:50%;--shadow-sm:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-md:0 10px 15px -3px #9bb5a11a, 0 4px 6px -2px #9bb5a10d;--shadow-lg:0 20px 25px -5px #0000000d, 0 10px 10px -5px #00000005}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-body);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.25}a{color:var(--primary-hover);text-decoration:none;transition:color .2s}a:hover{color:var(--text-main)}.invitation-wrapper{justify-content:center;align-items:flex-start;min-height:100vh;padding:40px 20px;display:flex;position:relative}.invitation-container{z-index:10;flex-direction:column;gap:32px;width:100%;max-width:550px;display:flex}.bg-decorations{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.balloon{font-size:2.5rem;animation:6s ease-in-out infinite float;position:absolute}.balloon-1{animation-delay:0s;top:10%;left:5%}.balloon-2{animation-delay:2s;top:25%;right:5%}.cloud{opacity:.25;font-size:3rem;animation:25s linear infinite floatCloud;position:absolute}.cloud-1{top:5%;left:-10%}.cloud-2{animation-duration:35s;animation-delay:12s;top:40%;right:-10%}@keyframes float{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-15px)rotate(5deg)}}@keyframes floatCloud{0%{transform:translate(0)}to{transform:translate(120vw)}}.section-card,.details-card,.rsvp-card,.rsvp-success-card{background-color:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid #9bb5a11a;padding:32px;transition:transform .3s,box-shadow .3s}.section-card:hover,.details-card:hover,.rsvp-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.hero-section{text-align:center;background:radial-gradient(circle, var(--accent-light) 0%, #fcf9f500 70%);border-radius:var(--radius-lg);padding:40px 20px}.badge-one{background-color:var(--accent);color:#fff;width:90px;height:90px;font-family:var(--font-heading);border-radius:var(--radius-round);border:4px solid #fff;justify-content:center;align-items:center;margin:0 auto 20px;font-size:3.5rem;font-weight:800;display:flex;box-shadow:0 8px 16px #e1b3824d}.hero-sub{letter-spacing:3px;color:var(--text-muted);margin-bottom:8px;font-size:.85rem;font-weight:600}.hero-title{color:#556b2f;margin-bottom:12px;font-size:2.75rem}.hero-divider{color:var(--accent);font-size:1.2rem}.intro-section{text-align:center;color:#5a5758;padding:0 16px;font-size:1.15rem;font-weight:300}.countdown-container{text-align:center}.countdown-title{text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);margin-bottom:20px;font-size:.9rem;font-weight:600}.countdown-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.countdown-box{border-radius:var(--radius-md);background-color:#f7fbf8;border:1px solid #9bb5a126;flex-direction:column;align-items:center;padding:16px 8px;display:flex}.countdown-num{font-size:2.2rem;font-family:var(--font-heading);color:var(--primary-hover);font-weight:700}.countdown-label{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-top:4px;font-size:.75rem}.countdown-container.loading{color:var(--text-muted);padding:24px}.countdown-container.finished{color:var(--accent);padding:12px;font-size:1.25rem;font-weight:600}.card-title{color:#4e6553;text-align:center;margin-bottom:24px;font-size:1.75rem;position:relative}.card-title:after{content:"";background-color:var(--accent);border-radius:1px;width:50px;height:2px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.details-grid{flex-direction:column;gap:20px;display:flex}.detail-item{border-radius:var(--radius-sm);align-items:flex-start;gap:16px;padding:12px;display:flex}.detail-icon{font-size:2rem;line-height:1}.detail-info h3{color:var(--text-main);margin-bottom:2px;font-size:1.05rem;font-weight:600}.detail-info p{color:var(--text-muted);font-size:.95rem}.detail-info .address{margin-top:2px;font-style:italic}.btn-map{color:var(--accent);margin-top:8px;font-size:.85rem;font-weight:600;display:inline-block}.btn-map:hover{text-decoration:underline}.schedule-list{flex-direction:column;gap:16px;list-style:none;display:flex}.schedule-list li{border-bottom:1px dashed #9bb5a126;align-items:center;gap:20px;padding-bottom:12px;display:flex}.schedule-list li:last-child{border-bottom:none;padding-bottom:0}.schedule-list .time{font-family:var(--font-heading);color:#8c561b;min-width:75px;font-weight:700}.schedule-list .event{color:var(--text-main);font-size:.95rem}.rsvp-subtitle{text-align:center;color:var(--text-muted);margin-bottom:28px;font-size:.9rem}.rsvp-form{flex-direction:column;gap:20px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.form-group label{color:var(--text-main);font-size:.9rem;font-weight:600}input[type=text],select,textarea{border-radius:var(--radius-sm);width:100%;font-family:var(--font-body);background-color:#fafbfc;border:1px solid #dce4de;padding:12px 16px;font-size:.95rem;transition:border-color .2s,background-color .2s}input[type=text]:focus,select:focus,textarea:focus{border-color:var(--primary);background-color:#fff;outline:none;box-shadow:0 0 0 3px #9bb5a126}.radio-group{grid-template-columns:1fr 1fr;gap:12px;display:grid}.radio-label{border-radius:var(--radius-sm);cursor:pointer;background-color:#fafbfc;border:1px solid #dce4de;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.radio-label input{opacity:0;width:0;height:0;position:absolute}.radio-label.active{border-color:var(--primary);color:#4e6553;background-color:#f2f7f3}.slide-down{animation:.3s ease-out forwards slideDown}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.btn-primary,.btn-secondary{border-radius:var(--radius-sm);width:100%;font-family:var(--font-body);cursor:pointer;text-align:center;border:none;padding:14px 24px;font-size:1rem;font-weight:600;transition:all .2s}.btn-primary{color:#fff;background-color:#4e6553;box-shadow:0 4px 6px #4e655333}.btn-primary:hover:not(:disabled){background-color:#3f5243;transform:translateY(-1px)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{background-color:var(--secondary);color:var(--text-main)}.btn-secondary:hover{background-color:var(--secondary-hover)}.btn-sm{width:auto;padding:8px 16px;font-size:.85rem}.rsvp-error-banner{background-color:var(--error-bg);color:var(--error);border-radius:var(--radius-sm);border:1px solid #d9534f33;margin-bottom:16px;padding:12px 16px;font-size:.9rem}.rsvp-success-card{text-align:center;padding:48px 32px}.success-icon{margin-bottom:16px;font-size:4rem;display:block}.rsvp-success-card h2{color:var(--primary-hover);margin-bottom:12px;font-size:2.2rem}.rsvp-success-card p{color:var(--text-muted);margin-bottom:32px;font-size:1.05rem}.confetti-particle{top:-20px;left:var(--x);background-color:var(--color);border-radius:var(--radius-round);width:10px;height:10px;animation:fall var(--duration) linear var(--delay) infinite;pointer-events:none;z-index:9999;position:fixed}@keyframes fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(110vh)rotate(720deg)}}.invitation-footer{text-align:center;color:var(--text-muted);flex-direction:column;gap:12px;padding:20px 0;font-size:.9rem;display:flex}.calendar-actions{gap:12px;margin:24px 0;display:grid}.calendar-action-links{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@media (width<=600px){.invitation-wrapper{padding:20px 12px}.section-card,.details-card,.rsvp-card,.rsvp-success-card{padding:20px}.hero-title{font-size:2.2rem}.countdown-num{font-size:1.6rem}}
