.lang-toggle{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffffeb;border:1px solid #cc4b754d;border:1px solid rgba(var(--color-primary-rgb,204,75,117),.3);border-radius:16px;box-shadow:0 4px 14px #5c24321f;color:#cc4b75;color:var(--color-primary);cursor:pointer;display:flex;font-size:.76rem;font-weight:700;height:32px;justify-content:center;letter-spacing:.5px;padding:0 12px;position:fixed;right:max(16px,calc(50vw - 224px));top:14px;transition:transform .2s,background .2s;z-index:90}.lang-toggle:active{transform:scale(.92)}.music-toggle{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#ffffffe6;border:1px solid #cc4b754d;border:1px solid rgba(var(--color-primary-rgb,204,75,117),.3);border-radius:50%;box-shadow:0 4px 14px #5c243226;color:#cc4b75;color:var(--color-primary);cursor:pointer;display:flex;height:34px;justify-content:center;padding:0;position:fixed;right:max(16px,calc(50vw - 224px));top:54px;transition:transform .2s,background .2s,opacity .3s;width:34px;z-index:90}.music-toggle:active{transform:scale(.9)}.music-toggle.playing{animation:musicDiscSpin 4s linear infinite;color:#cc4b75;color:var(--color-primary)}.music-toggle.paused{background:#ffffffb3;border-color:#ccc;color:#777;opacity:.65}@keyframes musicDiscSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.music-slash{background:#777;border-radius:2px;height:2px;position:absolute;transform:rotate(45deg);width:22px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#cc4b75;--color-primary-dark:#a6395b;--color-heading:#5c2432;--color-bg:#ececec;--color-card:#fff;--color-accent-light:#fdf4f7;--color-rose-100:#ffe4e6;--color-rose-200:#fecdd3;--color-rose-50:#fff1f2;--font-english:"Gaegu",cursive,sans-serif;--font-chinese:"Noto Serif SC","PingFang SC","Microsoft YaHei",serif;--font-body:"Nunito",ui-rounded,"PingFang SC","Microsoft YaHei",sans-serif}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-size:16px;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#ececec;background-color:var(--color-bg);color:#333;font-family:Nunito,ui-rounded,PingFang SC,Microsoft YaHei,sans-serif;font-family:var(--font-body);line-height:1.6;overflow-x:hidden}img{display:block;height:auto;max-width:100%}button,input,select,textarea{font-family:inherit;font-size:inherit}.app-container{background:#ececec;background:var(--color-bg);display:flex;justify-content:center;min-height:100vh}.app-card{background:#fff;background:var(--color-card);box-shadow:0 25px 50px -12px #00000026;display:flex;flex-direction:column;max-width:480px;overflow:hidden;position:relative;width:100%}.header{background:#fdf4f7;background:var(--color-accent-light);padding:20px 16px 16px;position:relative;text-align:center}.header h1{color:#5c2432;color:var(--color-heading);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.65rem;font-weight:700;letter-spacing:.5px;margin-bottom:4px}.header .subtitle{font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.85rem;opacity:.85}.header .date-line,.header .subtitle{color:#cc4b75;color:var(--color-primary)}.header .date-line{align-items:center;display:flex;font-size:.8rem;font-weight:600;gap:5px;justify-content:center;letter-spacing:1px;margin-top:8px}.header .date-line.is-en{font-family:Gaegu,cursive,sans-serif;font-size:1.15rem;font-weight:700;letter-spacing:.5px}.invitation-images{background:#fff;display:flex;flex-direction:column;width:100%}.invitation-image-wrapper{background:#fdf8fa;min-height:220px;position:relative;width:100%}.invitation-image-wrapper img{display:block;height:auto;width:100%}.image-loading-placeholder{align-items:center;animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#fdf4f7 25%,#fffbfe 50%,#fdf4f7 75%);background-size:200% 100%;display:flex;inset:0;justify-content:center;min-height:220px;position:absolute}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.image-error-card{background:#fdf5f7;border:1px dashed #fecdd3;border:1px dashed var(--color-rose-200);box-sizing:border-box;flex-direction:column;font-size:.85rem;line-height:1.5;min-height:260px;padding:32px 20px;text-align:center;width:100%}.image-error-card,.image-error-icon{align-items:center;display:flex;justify-content:center}.image-error-icon{background:#fee2e8;border-radius:50%;color:#cc4b75;color:var(--color-primary);height:48px;margin-bottom:12px;width:48px}.image-error-title{color:#5c2432;color:var(--color-heading);font-size:.95rem;font-weight:700;margin-bottom:4px}.image-error-sub{color:#777;font-size:.78rem;margin-bottom:16px}.image-retry-btn{align-items:center;background:#cc4b75;background:var(--color-primary);border:none;border-radius:20px;box-shadow:0 4px 10px #cc4b7533;box-shadow:0 4px 10px rgba(var(--color-primary-rgb,204,75,117),.2);color:#fff;cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:6px;padding:8px 18px;transition:all .2s}.image-retry-btn:hover{background:#a6395b;background:var(--color-primary-dark)}.image-retry-btn:active{transform:scale(.95)}.plus-one-container{margin-bottom:16px;margin-top:8px}.plus-one-toggle-btn{align-items:center;background:#0000;border:1px dashed #fecdd3;border:1px dashed var(--color-rose-200);border-radius:10px;color:#cc4b75;color:var(--color-primary);cursor:pointer;display:flex;font-size:.82rem;font-weight:600;gap:6px;justify-content:center;padding:10px 14px;transition:all .2s ease;width:100%}.plus-one-toggle-btn:hover{background:#fff1f2;background:var(--color-rose-50);border-color:#cc4b75;border-color:var(--color-primary)}.plus-one-box{animation:fadeIn .3s ease;background:linear-gradient(135deg,#fdf4f7,#fffbfd);border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:14px;padding:14px 14px 12px}.plus-one-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.plus-one-cancel-btn{background:none;border:none;color:#8c5664;cursor:pointer;font-size:.75rem;padding:2px 0;text-align:left;text-decoration:underline}.plus-one-cancel-btn:hover{color:#a6395b;color:var(--color-primary-dark)}@media (max-width:540px){.plus-one-header{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:8px}}.plus-one-subtext{color:#777;font-size:.78rem;line-height:1.5;margin-bottom:10px}.plus-one-input-row{align-items:center;display:flex;gap:8px;margin-bottom:8px}.plus-one-remove-btn{align-items:center;background:#f3f4f6;border:none;border-radius:8px;color:#888;cursor:pointer;display:flex;flex-shrink:0;font-size:.9rem;height:38px;justify-content:center;transition:all .2s;width:36px}.plus-one-remove-btn:hover{background:#fee2e2;color:#b91c1c}.plus-one-add-more{background:none;border:none;color:#cc4b75;color:var(--color-primary);cursor:pointer;display:inline-block;font-size:.78rem;font-weight:700;padding:4px 0}.plus-one-add-more:hover{text-decoration:underline}.submitted-status-banner{background:linear-gradient(135deg,#fdf2f6,#fae8ef);border:1px solid #fecdd3;border-radius:14px;box-shadow:0 2px 8px #cc4b7514;box-shadow:0 2px 8px rgba(var(--color-primary-rgb,204,75,117),.08);margin-bottom:20px;padding:14px 16px}.submitted-status-header{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:6px}.submitted-status-badge{align-items:center;background:#dcfce7;border-radius:12px;color:#15803d;display:inline-flex;font-size:.72rem;font-weight:700;line-height:1.3;padding:3px 8px}.submitted-status-tip{color:#8c5664;font-size:.75rem;line-height:1.3}@media (max-width:540px){.submitted-status-header{align-items:flex-start;flex-direction:column;gap:4px;margin-bottom:8px}}.submitted-status-title{color:#5c2432;color:var(--color-heading);font-size:.92rem;font-weight:700;margin-bottom:2px}.submitted-status-desc{color:#666;font-size:.78rem;margin-bottom:10px}.submitted-status-actions{display:flex;flex-wrap:wrap;gap:8px}.status-action-btn{border-radius:8px;cursor:pointer;font-size:.78rem;font-weight:600;padding:6px 12px;transition:all .2s}.status-action-btn.new-one{background:#fff;border:1px solid #fecdd3;border:1px solid var(--color-rose-200);color:#cc4b75;color:var(--color-primary)}.status-action-btn.new-one:hover{background:#fff1f2;background:var(--color-rose-50)}.status-action-btn.reset-clean{background:#0000;border:none;color:#888;text-decoration:underline}.countdown-section{background:linear-gradient(135deg,#fdf4f7,#ffe4e6);background:linear-gradient(135deg,var(--color-accent-light) 0,var(--color-rose-100) 100%);padding:28px 20px;text-align:center;transition:background .4s ease}.countdown-title{color:#5c2432;color:var(--color-heading);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.3rem;font-weight:700;margin-bottom:4px}.countdown-subtitle{color:#cc4b75;color:var(--color-primary);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.8rem;margin-bottom:20px}.countdown-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(4,1fr);margin:0 auto;max-width:320px}.countdown-item{background:#fff;border:1px solid #ffe4e6;border:1px solid var(--color-rose-100,#0000000d);border-radius:12px;box-shadow:0 2px 8px #cc4b751a;box-shadow:0 2px 8px rgba(var(--color-primary-rgb,204,75,117),.1);padding:12px 4px;transition:box-shadow .4s ease,border-color .4s ease}.countdown-number{color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:2rem;font-weight:700;line-height:1.1}.countdown-label{color:#5c2432;color:var(--color-heading);font-size:.65rem;letter-spacing:1px;margin-top:2px;opacity:.7;text-transform:uppercase}.details-section{background:#fff;background:var(--color-card);padding:28px 24px}.details-card{background:#fdf4f7;background:var(--color-accent-light);border-radius:16px;overflow:hidden;padding:24px 20px;position:relative}.details-card:before{background:#ffe4e6;background:var(--color-rose-100);border-radius:50%;content:"";height:80px;opacity:.5;position:absolute;right:-20px;top:-20px;width:80px}.details-icon{align-items:center;background:#cc4b75;background:var(--color-primary);border-radius:50%;color:#fff;display:flex;height:36px;justify-content:center;margin-bottom:12px;width:36px}.details-label{color:#cc4b75;color:var(--color-primary);font-size:.7rem;font-weight:700;letter-spacing:1.5px;margin-bottom:4px;text-transform:uppercase}.details-value{color:#5c2432;color:var(--color-heading);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:1rem;font-weight:600}.details-sub{color:#888;font-size:.8rem;margin-top:2px}.details-divider{background:#fecdd3;background:var(--color-rose-200);height:1px;margin:20px 0;opacity:.5}.wedding-styled-divider{align-items:center;display:flex;gap:14px;justify-content:center;margin:32px auto;max-width:340px;pointer-events:none;-webkit-user-select:none;user-select:none;width:82%}.wedding-styled-divider .divider-line{flex:1 1;height:1px}.wedding-styled-divider .divider-line.left{background:linear-gradient(90deg,#0000 0,#fecdd3 60%,#cc4b75);background:linear-gradient(to right,#0000 0,var(--color-rose-200) 60%,var(--color-primary) 100%);opacity:.65}.wedding-styled-divider .divider-line.right{background:linear-gradient(270deg,#0000 0,#fecdd3 60%,#cc4b75);background:linear-gradient(to left,#0000 0,var(--color-rose-200) 60%,var(--color-primary) 100%);opacity:.65}.wedding-styled-divider .divider-center{align-items:center;color:#cc4b75;color:var(--color-primary);display:flex;gap:8px;opacity:.85}.wedding-styled-divider .divider-diamond{background:#fecdd3;background:var(--color-rose-200);display:inline-block;height:4px;opacity:.85;transform:rotate(45deg);width:4px}.wedding-styled-divider .divider-icon{animation:pulse-heart 3s ease-in-out infinite;color:#cc4b75;color:var(--color-primary);display:inline-block;vertical-align:middle}.map-link{align-items:center;background:#cc4b75;background:var(--color-primary);border:none;border-radius:24px;color:#fff;cursor:pointer;display:inline-flex;font-size:.85rem;font-weight:600;gap:6px;margin-top:12px;padding:10px 20px;text-decoration:none;transition:background .3s,transform .2s}.map-link:hover{background:#a6395b;background:var(--color-primary-dark)}.map-link:active{transform:scale(.97)}.rsvp-section{background:#fff;background:var(--color-card);padding:32px 24px 40px;position:relative}.rsvp-header{margin-bottom:24px;text-align:center}.rsvp-header .heart-icon{color:#cc4b75;color:var(--color-primary);margin-bottom:8px;opacity:.5}.rsvp-header h3{color:#5c2432;color:var(--color-heading);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.6rem;font-weight:700;letter-spacing:2px}.rsvp-header p{color:#cc4b75;color:var(--color-primary);font-size:.8rem;margin-top:4px}.form-group{margin-bottom:20px}.form-label{display:block;font-size:.85rem;font-weight:700;margin-bottom:6px}.form-input,.form-label{color:#5c2432;color:var(--color-heading)}.form-input{background:#ffffff80;border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:10px;font-size:.95rem;outline:none;padding:12px 16px;transition:all .3s;width:100%}.editor-input::placeholder,.editor-textarea::placeholder,.form-input::placeholder,.form-textarea::placeholder,input::placeholder,textarea::placeholder{color:#cc4b75;color:var(--color-placeholder,var(--color-primary));opacity:.65;transition:color .3s ease}.form-input:focus{border-color:#cc4b75;border-color:var(--color-primary);box-shadow:0 0 0 3px #cc4b7526;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,204,75,117),.15)}.radio-group{display:flex;gap:12px}.radio-option{cursor:pointer;flex:1 1}.radio-option input{height:0;opacity:0;position:absolute;width:0}.radio-option .radio-label{border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:10px;color:#5c2432;color:var(--color-heading);display:block;font-size:.85rem;font-weight:600;padding:12px 8px;text-align:center;transition:all .3s}.radio-option .radio-label:hover{background:#fff1f2;background:var(--color-rose-50)}.radio-option input:checked+.radio-label{background:#cc4b75;background:var(--color-primary);border-color:#cc4b75;border-color:var(--color-primary);box-shadow:0 2px 8px #cc4b754d;box-shadow:0 2px 8px rgba(var(--color-primary-rgb,204,75,117),.3);color:#fff;color:var(--color-btn-text,#fff)}.radio-option input[value=no]:checked+.radio-label{background:#6b7280;border-color:#6b7280;box-shadow:0 2px 8px #6b72804d}.form-select-wrapper{position:relative}.form-select{appearance:none;background:#ffffff80;border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:10px;color:#5c2432;color:var(--color-heading);cursor:pointer;font-size:.95rem;outline:none;padding:12px 40px 12px 16px;transition:all .3s;width:100%}.form-select:focus{border-color:#cc4b75;border-color:var(--color-primary);box-shadow:0 0 0 3px #cc4b7526;box-shadow:0 0 0 3px rgba(var(--color-primary-rgb,204,75,117),.15)}.form-select-arrow{color:#5c2432;color:var(--color-heading);pointer-events:none;position:absolute;right:14px;top:50%;transform:translateY(-50%)}.conditional-section{max-height:0;opacity:0;overflow:hidden;transition:max-height .4s ease,opacity .3s ease}.conditional-section.open{max-height:500px;opacity:1}.submit-btn{align-items:center;background:#cc4b75;background:var(--color-primary);border:none;border-radius:12px;box-shadow:0 4px 14px #cc4b754d;box-shadow:0 4px 14px rgba(var(--color-primary-rgb,204,75,117),.3);color:#fff;color:var(--color-btn-text,#fff);cursor:pointer;display:flex;font-size:1rem;font-weight:700;gap:8px;justify-content:center;margin-top:24px;padding:14px 16px;transition:background .3s,transform .2s,box-shadow .3s,color .3s;width:100%}.submit-btn:hover{background:#a6395b;background:var(--color-primary-dark)}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{background:#ffe4e6;background:var(--color-rose-100,#ecdfe3);box-shadow:none;color:#5c2432;color:var(--color-heading,#a08892);cursor:not-allowed;opacity:.55;transform:none}.validation-tip{color:#cc4b75;color:var(--color-primary);font-size:.78rem;margin-top:10px;opacity:.85;text-align:center;transition:all .3s ease}.status-msg{align-items:flex-start;border-radius:10px;display:flex;font-size:.85rem;gap:8px;margin-bottom:20px;padding:12px 16px}.status-msg.error{background:#fef2f2;color:#b91c1c}.status-msg.success{background:#f0fdf4;color:#15803d}.status-icon{flex-shrink:0;margin-top:1px}.footer{background:#5c2432;background:var(--color-heading);padding:24px 20px 36px;text-align:center}.footer-heart{color:#cc4b75;color:var(--color-primary);margin-bottom:8px}.footer p{color:#ffffffb3;font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:.85rem;line-height:1.8}.footer .names{color:#fff;font-size:1.1rem;font-weight:700}.fade-in-up{opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.fade-in-up.visible{opacity:1;transform:translateY(0)}@keyframes pulse-heart{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.animate-pulse-heart{animation:pulse-heart 2s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.animate-float{animation:float 3s ease-in-out infinite}::selection{background:#cc4b75;background:var(--color-primary);color:#fff}.modal-overlay{align-items:center;animation:modalFadeIn .25s ease-out;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#280f1966;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal-card{animation:modalScaleUp .35s cubic-bezier(.175,.885,.32,1.275);background:#fff;border-radius:20px;box-shadow:0 20px 40px -10px #5c243240;max-width:440px;overflow:hidden;padding:22px 18px 18px;position:relative;text-align:center;width:100%}.modal-lang-toggle{background:#fdf2f6;border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:12px;color:#cc4b75;color:var(--color-primary);cursor:pointer;font-size:.72rem;font-weight:700;padding:3px 8px;position:absolute;right:14px;top:12px;transition:all .2s;z-index:2}.modal-lang-toggle:hover{background:#cc4b75;background:var(--color-primary);color:#fff}.modal-card:before{background:linear-gradient(90deg,#fecdd3,#cc4b75,#fecdd3);background:linear-gradient(90deg,#fecdd3,var(--color-primary),#fecdd3);content:"";height:5px;left:0;position:absolute;right:0;top:0}.modal-icon-wrapper{align-items:center;background:#fff1f2;background:var(--color-rose-50);border-radius:50%;color:#cc4b75;color:var(--color-primary);display:flex;height:40px;justify-content:center;margin:0 auto 6px;width:40px}.modal-title{color:#5c2432;color:var(--color-heading);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);line-height:1.25;margin-bottom:6px}.modal-desc{margin-bottom:10px}.modal-dv-badge{background:#fdf2f6;border:1px dashed #fecdd3;border:1px dashed var(--color-rose-200);border-radius:12px;color:#a6395b;color:var(--color-primary-dark);font-size:.82rem;line-height:1.6;margin-bottom:20px;padding:10px 14px;text-align:left}.modal-btn{background:#cc4b75;background:var(--color-primary);border:none;border-radius:20px;box-shadow:0 4px 12px #cc4b7540;box-shadow:0 4px 12px rgba(var(--color-primary-rgb,204,75,117),.25);color:#fff;cursor:pointer;font-size:.95rem;font-weight:700;padding:12px 20px;transition:all .2s;width:100%}.modal-btn:active{transform:scale(.97)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalScaleUp{0%{opacity:0;transform:scale(.85) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}::-webkit-scrollbar{background:#0000;width:0}.swipe-hint{color:#bbb;font-size:.7rem;padding-bottom:8px;text-align:center}.header-subtitle-zh{color:#cc4b75;color:var(--color-primary);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.95rem;font-weight:600;letter-spacing:2px;margin-top:2px}.template-customize-trigger{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:20px;bottom:20px;box-shadow:0 6px 18px #0000001f;color:#5c2432;color:var(--color-heading);cursor:pointer;display:flex;font-size:.82rem;font-weight:700;gap:8px;height:38px;left:max(16px,calc(50vw - 224px));padding:0 16px 0 14px;position:fixed;transition:all .25s cubic-bezier(.16,1,.3,1);z-index:95}.template-customize-trigger:hover{background:#fff;border-color:#cc4b75;border-color:var(--color-primary);box-shadow:0 8px 22px #cc4b7538;box-shadow:0 8px 22px rgba(var(--color-primary-rgb,204,75,117),.22);color:#cc4b75;color:var(--color-primary);transform:translateY(-2px)}.template-customize-trigger:active{transform:scale(.95)}.trigger-theme-dot{background:#cc4b75;background:var(--color-primary);border-radius:50%;box-shadow:0 0 0 2px #ffffffe6,0 0 6px #cc4b75;box-shadow:0 0 0 2px #ffffffe6,0 0 6px var(--color-primary);height:10px;width:10px}.preview-exit-pill{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#282828d9;border:none;border-radius:16px;bottom:20px;box-shadow:0 4px 14px #0003;color:#fff;cursor:pointer;display:flex;font-size:.75rem;font-weight:600;gap:6px;height:32px;left:max(16px,calc(50vw - 224px));padding:0 14px;position:fixed;transition:all .2s ease;z-index:95}.preview-exit-pill:hover{background:#141414f2;transform:translateY(-2px)}.template-cards-flow{background:#fff;display:flex;flex-direction:column;width:100%}.template-card{background:#fff;box-sizing:border-box;overflow:hidden;position:relative;transition:all .3s ease;width:100%}.card-quick-edit-btn{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#ffffffe0;border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:14px;color:#cc4b75;color:var(--color-primary);cursor:pointer;font-size:.72rem;font-weight:700;opacity:.6;padding:4px 10px;position:absolute;right:12px;top:12px;transition:all .2s ease;z-index:10}.card-quick-edit-btn:hover{background:#fff;border-color:#cc4b75;border-color:var(--color-primary);opacity:1;transform:scale(1.04)}.template-cover-card{background:#fff;display:flex;flex-direction:column;justify-content:space-between;min-height:520px;padding:30px 20px 24px}.cover-watercolor-wash{background:radial-gradient(circle at 55% 45%,var(--color-wash) 0,#fff0 72%);border-radius:45% 55% 60% 40%/50% 45% 55% 50%;filter:blur(14px);height:380px;opacity:.9;pointer-events:none;position:absolute;right:-30px;top:40px;transition:background .4s ease;width:320px;z-index:1}.cover-glass-wrapper{bottom:10px;left:30px;max-width:250px;pointer-events:none;position:absolute;width:52%;z-index:2}.cover-glass-img{height:auto}.cover-glass-img,.cover-winecup-mask{display:block;transform-origin:bottom center;width:100%}.cover-winecup-mask{aspect-ratio:1062/2024;background-color:#cc4b75;background-color:var(--color-primary);-webkit-mask-image:none;-webkit-mask-image:var(--mask-image,none);mask-image:none;mask-image:var(--mask-image,none);-webkit-mask-position:center bottom;mask-position:center bottom;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .4s ease}.cover-thumb-preview .cover-winecup-mask{height:100%;-webkit-mask-position:center;mask-position:center;width:100%}.template-cover-card.has-custom-photo{align-items:center;display:flex;flex-direction:column;justify-content:space-between;min-height:560px;padding:24px 18px 22px}.template-cover-card.has-custom-photo.text-align-center .cover-text-group-top{margin:0 auto;padding-right:0;padding-top:4px;text-align:center;width:100%}.template-cover-card.has-custom-photo.text-align-center .cover-text-group-bottom{margin:0 auto;padding-bottom:4px;padding-right:0;text-align:center;width:100%}.template-cover-card.has-custom-photo.text-align-right .cover-text-group-bottom,.template-cover-card.has-custom-photo.text-align-right .cover-text-group-top{margin-left:auto;padding-right:4px;text-align:right;width:90%}.cover-custom-photo-center-zone{flex:1 1;margin:14px 0;width:100%;z-index:2}.cover-custom-photo-center-zone,.cover-photo-frame{align-items:center;display:flex;justify-content:center;position:relative}.cover-photo-frame{background:#fdf4f7;background:var(--color-accent-light,#faf5f0);border:2px solid #cc4b7533;border:2px solid rgba(var(--color-primary-rgb,204,75,117),.2);border-radius:14px;box-shadow:0 10px 28px #00000014,0 2px 8px #cc4b751f;box-shadow:0 10px 28px #00000014,0 2px 8px rgba(var(--color-primary-rgb,204,75,117),.12);overflow:hidden;transition:width .3s ease,height .3s ease,aspect-ratio .3s ease}.cover-photo-frame.is-landscape{aspect-ratio:16/10.5;max-height:230px;max-width:380px;width:92%}.cover-photo-frame.is-portrait{aspect-ratio:3/4;max-height:310px;max-width:100%;width:72%}.cover-photo-frame.is-square{aspect-ratio:1/1;max-width:280px;width:76%}.cover-photo-img{display:block;height:100%;object-fit:cover;pointer-events:none;transform-origin:center center;transition:transform .12s ease-out;-webkit-user-select:none;user-select:none;width:100%}.cover-text-group-top{padding-right:4px;padding-top:10px;position:relative;z-index:3}.cover-tag-brush{display:inline-block;font-size:clamp(1.8rem,6.5vw,3.2rem);letter-spacing:1px;line-height:.95;margin-bottom:8px;max-width:100%;overflow-wrap:break-word;text-shadow:1px 2px 8px #0000000d;transform:rotate(-3deg);white-space:normal}.cover-tag-brush,.cover-title-display{color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-weight:700;word-break:break-word}.cover-title-display{font-size:1.65rem;letter-spacing:.5px;line-height:1.15;text-transform:uppercase}.cover-title-line{margin-bottom:2px}.cover-title-zh{color:#5c2432;color:var(--color-heading);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.88rem;font-weight:600;letter-spacing:1.5px;margin-top:6px;opacity:.85}.cover-text-group-bottom{margin-top:auto;padding-right:4px;position:relative;text-align:right}.cover-quote-en{color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.3rem;font-weight:700;letter-spacing:.5px;line-height:1.35;white-space:pre-line}.cover-quote-line{margin-bottom:2px}.cover-quote-zh{color:#5c2432;color:var(--color-heading);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.8rem;line-height:1.4;margin-top:4px;opacity:.85}.template-story-card{background:#fff;display:flex;flex-direction:column;padding:10px 16px}.story-art-wrapper{margin-bottom:12px;width:100%}.story-art-img{display:block;height:auto;width:100%}.story-art-mask{aspect-ratio:1668/907;background-color:#cc4b75;background-color:var(--color-primary);display:block;-webkit-mask-image:none;-webkit-mask-image:var(--mask-image,none);mask-image:none;mask-image:var(--mask-image,none);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .4s ease}.story-art-mask,.story-thumb-preview .story-art-mask{-webkit-mask-position:center;mask-position:center;width:100%}.story-thumb-preview .story-art-mask{height:100%}.story-vows-flow{display:flex;flex-direction:column;gap:18px;padding:20px 12px;text-align:center}.story-vow-stanza{display:flex;flex-direction:column;gap:4px}.story-vow-zh{color:#5c2432;color:var(--color-heading);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.96rem;font-weight:600;letter-spacing:.5px;line-height:1.6}.story-vow-en{color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.05rem;font-weight:700;letter-spacing:.3px;line-height:1.35}.template-timeline-card{background:#fff;padding:30px 18px 36px}.timeline-header{margin-bottom:26px;text-align:center}.timeline-title-en{color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.7rem;font-weight:700;letter-spacing:1.5px;line-height:1.1;margin-bottom:4px;text-transform:uppercase}.timeline-title-zh{color:#5c2432;color:var(--color-heading);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:1.05rem;font-weight:700;letter-spacing:2px}.timeline-container{margin-bottom:36px;padding:10px 0;position:relative;width:100%}.timeline-center-line{background-image:repeating-linear-gradient(180deg,#cc4b75 0,#cc4b75 4px,#0000 0,#0000 8px);background-image:repeating-linear-gradient(to bottom,var(--color-primary) 0,var(--color-primary) 4px,#0000 4px,#0000 8px);bottom:25px;left:50%;opacity:.45;position:absolute;top:15px;transform:translateX(-50%);width:2px;z-index:1}.timeline-events-list{display:flex;flex-direction:column;gap:24px;position:relative;z-index:2}.timeline-item{align-items:center;display:flex;position:relative;width:100%}.timeline-item.left-aligned{flex-direction:row}.timeline-item.left-aligned .timeline-motif-wrapper{display:flex;justify-content:flex-end;padding-right:12px;width:44%}.timeline-item.left-aligned .timeline-content{padding-left:12px;text-align:left;width:44%}.timeline-item.right-aligned{flex-direction:row-reverse}.timeline-item.right-aligned .timeline-motif-wrapper{display:flex;justify-content:flex-start;padding-left:12px;width:44%}.timeline-item.right-aligned .timeline-content{padding-right:12px;text-align:right;width:44%}.timeline-node{align-items:center;display:flex;flex-direction:column;justify-content:center;width:12%;z-index:3}.timeline-dot{background:#cc4b75;background:var(--color-primary);border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #fecdd3;box-shadow:0 0 0 2px var(--color-rose-200);height:10px;margin-bottom:4px;width:10px}.timeline-time-badge{background:#fdf4f7;background:var(--color-accent-light);border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:10px;color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:.95rem;font-weight:700;letter-spacing:.5px;padding:2px 6px;white-space:nowrap}.timeline-motif-wrapper{box-sizing:border-box}.timeline-motif-img{display:block;height:auto;max-height:90px;max-width:100px;object-fit:contain;width:auto}.timeline-motif-mask{background-color:#cc4b75;background-color:var(--color-primary);display:block;height:65px;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;max-width:100%;transition:background-color .4s ease;width:70px}.timeline-content{box-sizing:border-box}.timeline-event-title-en{color:#5c2432;color:var(--color-heading);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.15rem;font-weight:700;letter-spacing:.5px;line-height:1.2}.timeline-event-title-zh{color:#cc4b75;color:var(--color-primary);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.85rem;font-weight:600;margin-top:2px}.timeline-event-desc{color:#777;font-size:.74rem;line-height:1.4;margin-top:3px}.dresscode-section{background:#fdf4f7;background:var(--color-accent-light);border:1px solid #fecdd3;border:1px solid var(--color-rose-200);border-radius:18px;margin-top:10px;padding:20px 16px 18px}.dresscode-header{margin-bottom:16px;text-align:center}.dresscode-title-en{color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:1.25rem;font-weight:700;letter-spacing:.5px}.dresscode-title-zh{color:#5c2432;color:var(--color-heading);font-family:"Noto Serif SC",PingFang SC,Microsoft YaHei,serif;font-family:var(--font-chinese);font-size:.82rem;font-weight:600;opacity:.85}.dresscode-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr)}.dresscode-card{align-items:center;background:#fff;border:1px solid #ffe4e6;border:1px solid var(--color-rose-100);border-radius:14px;display:flex;flex-direction:column;padding:14px 12px;text-align:center}.dresscode-card-badge{color:#cc4b75;color:var(--color-primary);font-family:Gaegu,cursive,sans-serif;font-family:var(--font-english);font-size:.88rem;font-weight:700;letter-spacing:1px;margin-bottom:6px}.dresscode-style{color:#5c2432;color:var(--color-heading);font-size:.82rem;font-weight:700;margin-bottom:4px}.dresscode-color-desc{color:#777;font-size:.74rem;line-height:1.45;margin-bottom:10px;min-height:32px}.dresscode-swatches{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.swatch-dot{border:1.5px solid #0000001f;border-radius:50%;box-shadow:0 1px 3px #00000014;display:inline-block;height:18px;transition:transform .2s;width:18px}.swatch-dot:hover{transform:scale(1.25)}.prominent-validation-card{align-items:center;animation:shake .4s ease-in-out;background:#fff1f2;border:2px solid #f43f5e;border-radius:12px;box-shadow:0 4px 14px #f43f5e2e;display:flex;gap:12px;margin-bottom:14px;padding:12px 16px}@keyframes shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}.animate-shake{animation:shake .4s ease-in-out}.validation-card-icon{align-items:center;color:#e11d48;display:flex;flex-shrink:0;justify-content:center}.validation-card-body{display:flex;flex-direction:column;text-align:left}.validation-card-title{color:#9f1239;font-size:.88rem;font-weight:800;margin-bottom:2px}.validation-card-desc{color:#be123c;font-size:.82rem;font-weight:600}.form-label-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:6px}.form-label-row .form-label{margin-bottom:0}.req-star{color:#e11d48;font-weight:800;margin-left:2px}.field-inline-error{animation:fadeIn .2s ease;color:#e11d48;font-size:.74rem;font-weight:700}.input-field-error{background-color:#fff1f2!important;border-color:#f43f5e!important;box-shadow:0 0 0 3px #f43f5e33!important}.group-box-error{background:#fff5f7!important;border:2px solid #f43f5e!important;border-radius:12px!important;padding:10px 12px!important;transition:all .2s ease}.submit-btn.has-unfilled-items{border:1px solid #f43f5e66}
/*# sourceMappingURL=main.d2242b91.css.map*/