*,*:before,*:after{box-sizing:border-box;scroll-behavior:smooth}:root{--blush: #f2dfe6;--rose: #c9798e;--rose-deep: #a05270;--rose-dark: #6b3349;--cream: #fdf6f0;--cream-warm: #f8ede4;--petal: #f7e8ee;--sage: #c8d5c4;--gold: #c9a86c;--gold-light: #e8d4b0;--text: #3a2530;--text-muted: #8a6070;--vh: 1vh}html,body{width:100%;height:100%;font-family:Jost,sans-serif;font-size:18px;padding:0;margin:0;background:var(--cream);color:var(--text)}strong{font-weight:700}ul{margin:0}a{color:var(--rose-deep);text-decoration:none}a:hover{text-decoration:underline}a:focus{outline:solid var(--rose-deep)}.container{display:flex;width:100%;height:100vh}.cover{position:fixed;inset:0 35% 0 0;height:100vh;overflow:hidden}.cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#3a253014,#3a253026 25%,#3a25308c 60%,#3a2530d1);pointer-events:none}.cover:before{content:"";position:absolute;inset:0;background-image:radial-gradient(ellipse 60px 80px at 12% 18%,rgba(201,121,142,.18) 0%,transparent 70%),radial-gradient(ellipse 40px 55px at 22% 8%,rgba(201,121,142,.12) 0%,transparent 70%),radial-gradient(ellipse 80px 60px at 88% 82%,rgba(201,121,142,.15) 0%,transparent 70%),radial-gradient(ellipse 50px 70px at 78% 92%,rgba(201,121,142,.12) 0%,transparent 70%);pointer-events:none;z-index:1}.cover .image,.mobile-cover .image{position:absolute;width:100%;height:100%;background-size:cover;background-position:center center;background-repeat:no-repeat;object-fit:cover}.cover .intro,.mobile-cover .intro{position:absolute;bottom:0;padding:10% 10% 12%;width:100%;z-index:2;display:flex;flex-direction:column;gap:8px}.cover .eyebrow,.mobile-cover .eyebrow{font-family:Jost,sans-serif;font-size:12px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--gold-light);opacity:.9}.cover .birthday-girl,.mobile-cover .birthday-girl{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:clamp(50px,5.5vw,72px);line-height:1.05;color:#fff;letter-spacing:-.01em}.cover .birthday-girl em,.mobile-cover .birthday-girl em{font-style:normal;font-weight:600;color:var(--gold-light)}.cover .subtitle,.mobile-cover .subtitle{font-family:Jost,sans-serif;font-weight:300;font-size:20px;color:#fffc;letter-spacing:.05em}.cover .divider,.mobile-cover .divider{display:flex;align-items:center;gap:10px;margin:4px 0;opacity:.6}.cover .divider:before,.cover .divider:after,.mobile-cover .divider:before,.mobile-cover .divider:after{content:"";flex:1;height:1px;background:var(--gold-light);opacity:.5}.cover .divider svg,.mobile-cover .divider svg{width:16px;height:16px;fill:var(--gold-light);flex-shrink:0}.mobile-cover .next-link{margin-top:1em;color:var(--rose-deep);text-decoration:none}.content{height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh;width:35%;margin-left:auto;transition:background .5s cubic-bezier(.23,1,.32,1) 0s,background-color .5s cubic-bezier(.23,1,.32,1) 0s;overflow-y:scroll;scroll-snap-type:y mandatory}.block{min-height:100vh;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;display:flex;flex-direction:column;justify-content:center;padding:3em 2.5em;scroll-snap-align:start;position:relative}.block h2{font-family:Cormorant Garamond,serif;font-style:italic;font-weight:300;font-size:2em;margin:0 0 1.2em;text-align:center;color:var(--rose-dark);line-height:1.1}.block:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--blush),var(--rose),var(--blush))}.button-next{display:flex;flex-direction:column;align-items:center;margin:2.5em auto 0;color:var(--rose);opacity:.7;text-decoration:none;transition:opacity .2s}.button-next:hover{opacity:1}.button-next svg{margin-top:10px;animation:2s ease-out 1.5s infinite normal none running arrowJump}@keyframes arrowJump{0%,20%,50%,80%,to{-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}40%{-webkit-transform:translateY(-23px);-ms-transform:translateY(-23px);transform:translateY(-23px)}60%{-webkit-transform:translateY(-23px);-ms-transform:translateY(-23px);transform:translateY(-23px)}}.mobile-cover{display:none}.timeline{background:var(--cream);overflow:hidden}.timeline .date{margin-bottom:3em;text-align:center}.timeline .date h2{margin-bottom:.3em}.countdown{display:inline-block;font-family:Jost,sans-serif;font-size:.75em;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--rose);background:var(--petal);padding:6px 18px;border-radius:20px;border:1px solid var(--blush)}.events{display:flex;flex-direction:column;gap:2em}.event{display:flex;gap:20px;align-items:center;padding:1.5em;background:#fff;border-radius:16px;border:1px solid var(--blush);box-shadow:0 2px 16px #c9798e0f}.event .icon{width:48px;height:48px;flex-shrink:0;background:var(--petal);border-radius:12px;display:flex;align-items:center;justify-content:center}.event .icon svg{width:26px;height:26px;fill:var(--rose)}.event .time{font-size:.75em;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:4px}.event .title{font-family:Cormorant Garamond,serif;font-size:1.35em;font-weight:600;color:var(--text);line-height:1.2}.event .address{font-size:.9em;color:var(--text-muted);margin-top:4px}.event .address a{color:var(--rose-deep)}.rsvp{background:var(--cream-warm);overflow:hidden;padding-bottom:5.5em}.rsvp .instructions{text-align:center;color:var(--text-muted);font-size:.9em;line-height:1.7;margin-bottom:2em}.rsvp .instructions p+p{margin-top:18px}.rsvp form{width:100%;display:flex;flex-direction:column;gap:0}.rsvp h2{line-height:1.2em}.form-group{width:100%;margin-bottom:1.4em}.form-group label{display:block;font-size:.75em;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}.form-group input[type=text],.form-group textarea,.form-group select{width:100%}.form-group+.form-group{margin-top:30px}.form-group .guests input+input{margin-top:10px}.form-group .radio-label{display:flex;align-items:center;gap:10px;margin:0;line-height:1}.form-group .radio-label+.radio-label{margin-top:.75em}.attendance{display:flex;width:100%;align-items:center;justify-content:space-between;background:#fff;border:1.5px solid var(--blush);border-radius:12px;padding:5px;gap:10px}.attendance .radio-label{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;border-radius:9px;cursor:pointer;font-size:.75em;font-weight:400;color:var(--text-muted);transition:background .2s,color .2s;line-height:1.2}.attendance .radio-label:hover{background:var(--petal);color:var(--rose-deep)}.attendance .radio-label+.radio-label{margin:0}.attendance .radio-label input[type=radio]{flex-shrink:0}.attendance .radio-label input[type=radio]:before{box-shadow:inset 1em 1em #fff}.attendance .radio-label[data-checked]{background-color:var(--rose-deep);color:#fff}.attendance .radio-label[data-checked]:hover{background-color:var(--rose-dark)}.input-error{font-size:.8em;color:#c00}.add-more{background:none;border:none;border-bottom:1px solid var(--rose);cursor:pointer;font-family:Jost,sans-serif;font-size:.85em;color:var(--rose-deep);padding:2px 0;margin-top:6px;display:inline-block}.add-more:hover{color:var(--rose-dark)}input[type=text],input[type=email],input[type=number],textarea,select{width:100%;font-family:Jost,sans-serif;font-size:16px;font-weight:300;padding:12px 16px;border:1.5px solid var(--blush);border-radius:10px;background:#fff;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s}input[type=text]::placeholder,input[type=email]::placeholder,input[type=number]::placeholder,textarea::placeholder,select::placeholder{color:#c8b4bc}input[type=text]:focus,input[type=email]:focus,input[type=number]:focus,textarea:focus,select:focus{border-color:var(--rose);box-shadow:0 0 0 3px #c9798e1f}input[type=radio]{-webkit-appearance:none;appearance:none;margin:0;font:inherit;line-height:inherit;color:currentColor;width:1em;height:1em;border:1px solid currentColor;border-radius:50%}input[type=radio]:checked{transform:scale(1);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' fill-rule='evenodd' d='M1 12C1 5.925 5.925 1 12 1s11 4.925 11 11-4.925 11-11 11S1 18.075 1 12Zm17.416-2.296a1 1 0 0 0-.003-1.414l-.709-.706a1 1 0 0 0-1.414.003l-5.772 5.797-3.32-3.275a1 1 0 0 0-1.415.01l-.702.712a1 1 0 0 0 .01 1.414l4.738 4.672a1 1 0 0 0 1.41-.006l7.177-7.207Z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center center}input[type=radio]:focus{outline:solid #333333}button[type=submit]{width:100%;font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.2em;font-weight:400;letter-spacing:.05em;padding:14px 24px;background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:#fff;border:none;border-radius:12px;cursor:pointer;transition:opacity .2s,transform .1s;margin-top:.5em}button[type=submit]:hover{opacity:.9}button[type=submit]:active{transform:scale(.99)}button[type=submit]:focus{outline:solid #333333}.faq{padding-bottom:7em;overflow:hidden}.faq ul{margin-bottom:1em}.faq p+p{margin-top:1em}@media screen and (max-width: 1000px){.container{overflow-y:auto}.cover{display:none}.mobile-cover{display:block;position:relative;width:100%;min-height:100vh;min-height:calc(var(--vh, 1vh) * 100);min-height:100dvh;scroll-snap-align:start}.mobile-cover .intro{align-items:center;text-align:center;padding:1em}.mobile-cover .button-next{color:#ffffffbf;margin-top:1.5em}.mobile-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#3a25300d,#3a253099 55%,#3a2530e0)}.content{width:100%;overflow-y:unset;scroll-snap-type:unset}.block{padding:20px}.timeline{font-size:18px}.event{gap:20px}.event .icon svg{width:40px;height:40px}.rsvp,.faq{padding-bottom:7.5em}}.petal-accent{position:absolute;opacity:.12;pointer-events:none}.thank-you p{margin:1em 0 0}.thank-you .gallery-button{display:inline-block;font-family:Cormorant Garamond,serif;font-style:italic;font-size:1.1em;padding:12px 24px;background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:#fff;border-radius:10px;border:none;cursor:pointer;text-decoration:none!important;margin:1em 0}
