:root{--font-fancy: "Playfair Display", serif;--bg-dark: rgb(210, 219, 233);--gold: #efbf04;--glass-white: rgba(255, 255, 255, .05)}*{margin:0;padding:0;box-sizing:border-box}html,body{font-family:var(--font-fancy);background-color:var(--bg-dark);color:#fff;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.stack{display:flex;flex-direction:column;align-items:center;width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-fancy);font-weight:700}a{text-decoration:none;color:inherit}.slide{height:100vh;width:100%;max-width:500px;background-size:cover;background-position:center;position:relative;display:flex;flex-direction:column;box-shadow:0 0 50px #0000001a}.overlay{flex:1;display:flex;flex-direction:column;padding:1.5rem;min-height:0;background:linear-gradient(to bottom,rgba(255,255,255,.1) 0%,transparent 20%)}.content-wrapper{flex:1;display:flex;flex-direction:column;width:100%;min-height:0;color:#fdfaf0}.luxury-letter-link{--ink: #16074A;--pink-ribbon: #F6737C;display:inline-flex;align-items:center;gap:8px;padding:4px 0;background:transparent;color:var(--ink);text-decoration:none;font-size:.85rem;font-weight:400;font-style:italic;transition:all .4s ease;border-bottom:1px solid rgb(247,224,227);margin-top:1rem}.luxury-letter-link{--ink: #16074A;--pink-ribbon: #F6737C;display:inline-flex;align-items:center;gap:8px;padding:4px 0;background:transparent;color:var(--ink);text-decoration:none;font-size:.85rem;font-weight:400;font-style:italic;transition:all .4s ease;border-bottom:1px solid rgb(247,224,227);margin-top:.5rem}.luxury-letter-link:hover{color:var(--pink-ribbon);border-bottom-color:var(--ink);transform:translateY(-1px)}.luxury-letter-link svg{color:var(--pink-ribbon);opacity:.8}.letter-container{--paper-color: #FCF8F9;--pink-ribbon: #F6737C;--ink: #16074A;background:var(--paper-color);width:100%;height:100%;margin:0 auto;padding:2rem;display:flex;flex-direction:column;justify-content:space-between;box-sizing:border-box;position:relative;color:var(--ink);text-align:center;box-shadow:0 10px 30px #0000001a,inset 0 0 100px #c5a0590d;border:1px solid #e5e0d0;overflow-y:auto;scrollbar-width:none;transform:translateY(40px)}.letter-container::-webkit-scrollbar{display:none}.reveal-item{opacity:0;transform:translateY(20px)}.letter-content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:2rem}.ornament.top{border-top:2px double var(--pink-ribbon)}.ornament.bottom{border-bottom:2px double var(--pink-ribbon)}.countdown-section{margin-bottom:1.5rem}.royal-title{font-family:Playfair Display,serif;font-size:1.6rem;font-weight:400;margin-bottom:.3rem;color:var(--ink)}.royal-label{font-size:.85rem;font-style:italic;margin-bottom:1rem;opacity:.8}.royal-timer{display:flex;justify-content:center;align-items:baseline;gap:12px}.royal-timer span{font-size:2rem;color:var(--ink)}.royal-timer small{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--pink-ribbon);display:block}.gold-heading{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;color:var(--pink-ribbon);margin-bottom:.5rem}.detail-block{margin-bottom:1.5rem}.primary-text{font-size:1.25rem;line-height:1.2}.secondary-text{font-size:.9rem;font-style:italic;opacity:.7}.rsvp-container{height:100%;width:100%;display:flex;flex-direction:column;opacity:0;transform:translateY(40px);will-change:transform,opacity;overflow:hidden;min-height:0}.reply-card{--paper-color: #FCF8F9;--ink: #16074A;--pink-ribbon: #F6737C;background:var(--paper-color);width:100%;max-width:450px;margin:0 auto;height:100%;max-height:100%;min-height:0;box-sizing:border-box;padding:2.5rem 1.5rem;display:flex;flex-direction:column;justify-content:flex-start;border:1px solid #e5e0d0;box-shadow:0 10px 40px #0000001a;position:relative;color:var(--ink);text-align:center;overflow:hidden}.reply-card::-webkit-scrollbar{display:none}.animate-rsvp{opacity:0;transform:translateY(20px)}.rsvp-form{display:flex;flex-direction:column;gap:1.1rem;text-align:left;flex:1 1 0;height:0;overflow-y:auto;min-height:0;padding-right:5px;padding-bottom:2rem;scrollbar-width:thin;scrollbar-color:var(--pink-ribbon) transparent;-webkit-overflow-scrolling:touch}.rsvp-form::-webkit-scrollbar{width:4px}.rsvp-form::-webkit-scrollbar-thumb{background:var(--pink-ribbon);border-radius:4px}.rsvp-form::-webkit-scrollbar-track{background:transparent}.input-grid{display:flex;flex-direction:column;gap:1rem;flex-shrink:0}.divider-line{height:1px;background:linear-gradient(to right,transparent,rgb(22,7,74),transparent);margin:.2rem 0;flex-shrink:0}.input-group label{display:block;font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;color:var(--pink-ribbon);margin-bottom:.3rem}.input-group{flex-shrink:0}.input-group input,.input-group textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgb(22,7,74);padding:6px 0;font-family:inherit;font-size:.95rem;color:var(--ink);outline:none;transition:border-bottom .3s ease}.input-group input:focus,.input-group textarea:focus{border-bottom:1px solid var(--pink-ribbon)}.message-group{position:relative}.char-counter{font-size:.65rem;color:#888;text-align:right;margin-top:4px;font-style:italic}.char-limit-reached{color:#f6737c;font-weight:700}.radio-group-horizontal{display:flex;justify-content:flex-start;gap:2rem;margin-top:.3rem;flex-shrink:0}.card-content>.rsvp-form>.radio-group-horizontal:first-of-type{justify-content:center}.radio-option{display:flex;align-items:center;gap:8px;cursor:pointer;font-style:italic;font-size:.95rem}.radio-option input{display:none}.custom-radio{width:14px;height:14px;border:1px solid var(--pink-ribbon);border-radius:50%;display:inline-block;position:relative}.radio-option input:checked+.custom-radio:after{content:"";width:8px;height:8px;background:var(--pink-ribbon);border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.button-text-wrapper{display:grid;place-items:center;overflow:hidden;height:1.2rem}.fade-text{grid-area:1 / 1;animation:quillFadeIn .4s ease-out forwards;display:inline-block;white-space:nowrap}@keyframes quillFadeIn{0%{opacity:0;transform:translateY(10px);filter:blur(2px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.quill-submit{margin-top:1rem;background:transparent;border:1px solid var(--pink-ribbon);color:var(--ink);padding:12px;text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;cursor:pointer;transition:all .4s ease;width:100%;flex-shrink:0}.quill-submit:hover:not(:disabled){background:var(--pink-ribbon);color:#fff}.quill-submit:has(span[key=declining]){border-color:#8b0000}.success-message{flex:1 1 0;height:0;display:flex;flex-direction:column;justify-content:center;padding:1rem 0;overflow-y:auto}.wax-seal{width:55px;height:55px;background:#f6737c;border-radius:50%;margin:0 auto 1.5rem;box-shadow:2px 2px 8px #0003}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px #FCF8F9 inset!important;-webkit-text-fill-color:#16074A!important}.wall-container{height:100%;width:100%;display:flex;flex-direction:column;opacity:0;transform:translateY(40px);will-change:transform,opacity;overflow:hidden;min-height:0}.wall-card{--paper-color: #FCF8F9;--ink: #16074A;--pink-ribbon: #F6737C;background:var(--paper-color);width:100%;max-width:450px;margin:0 auto;height:100%;max-height:100%;min-height:0;box-sizing:border-box;padding:2.5rem 1.5rem;display:flex;flex-direction:column;justify-content:flex-start;border:1px solid #e5e0d0;box-shadow:0 10px 40px #0000001a;position:relative;color:var(--ink);text-align:center;overflow:hidden}.wall-card::-webkit-scrollbar{display:none}.card-content{flex:1 1 0;height:0;display:flex;flex-direction:column;justify-content:flex-start;min-height:0;overflow:hidden}.animate-message{opacity:0;transform:translateY(20px)}.royal-title{font-family:Playfair Display,serif;font-size:1.6rem;font-weight:400;margin-bottom:.3rem;flex-shrink:0}.royal-subtitle{font-style:italic;font-size:.8rem;opacity:.7;margin-bottom:1.2rem;flex-shrink:0}.messages-list{display:flex;flex-direction:column;gap:.5rem;text-align:center;margin-top:1rem;flex:1 1 0;height:0;overflow-y:auto;min-height:0;padding-right:5px;padding-bottom:2rem;scrollbar-width:thin;scrollbar-color:var(--pink-ribbon) transparent;-webkit-overflow-scrolling:touch}.messages-list::-webkit-scrollbar{width:4px}.messages-list::-webkit-scrollbar-thumb{background:var(--pink-ribbon);border-radius:4px}.messages-list::-webkit-scrollbar-track{background:transparent}.message-item{display:flex;flex-direction:column;align-items:center;padding:.5rem .5rem 0;flex-shrink:0}.message-text{font-size:.95rem;font-style:italic;line-height:1.5;margin-bottom:.5rem;color:var(--ink)}.message-author{font-size:.8rem;font-weight:700;letter-spacing:.05em;color:var(--pink-ribbon);text-transform:uppercase}.divider-line{height:1px;width:80%;background:linear-gradient(to right,transparent,rgba(22,7,74,.2),transparent);margin:1.2rem 0;flex-shrink:0}.loading-text,.empty-text{font-style:italic;font-size:.9rem;color:var(--ink);opacity:.7;padding:2rem 0}.error-banner{background:#fcf8f9;color:#f6737c;padding:8px;margin-bottom:1rem;border-radius:4px;font-size:.75rem;border:1px solid #ffcccc;flex-shrink:0}.ornament{height:40px;width:100%;flex-shrink:0;opacity:.6}.ornament.top{border-top:1px solid var(--pink-ribbon);margin-bottom:1rem}.ornament.bottom{border-bottom:1px solid var(--pink-ribbon);margin-top:1rem}@keyframes fadeInMsg{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-item{animation:fadeInMsg .5s ease forwards}.landing-content{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;text-align:center;padding-bottom:10vh;box-sizing:border-box}.stamp-button{background:#f7e0e3;border:2px dashed #F6737C;padding:1rem 2rem;font-family:Courier New,Courier,monospace;color:#16074a;cursor:pointer;transition:transform .3s ease;margin-bottom:0}.stamp-button:hover{transform:scale(1.05);background:#fcf8f9}.invitation-wrapper{width:100%;max-width:500px;margin:0 auto;display:flex;flex-direction:column;min-height:100vh}.fade-in-section{animation:dreamyReveal 1.8s cubic-bezier(.4,0,.2,1) forwards}@keyframes dreamyReveal{0%{opacity:0;filter:blur(10px);transform:scale(1.05)}to{opacity:1;filter:blur(0);transform:scale(1)}}
