.rsvp{background:#f5f1ec;padding:clamp(5rem,10vw,9rem) clamp(1.25rem,6vw,6rem);font-family:Microsoft JhengHei,Noto Sans TC,sans-serif;font-weight:700}.rsvp__header,.rsvp__form{width:min(100%,46rem);margin-inline:auto}.rsvp__header{text-align:center;margin-bottom:clamp(3.5rem,8vw,6rem)}.rsvp__eyebrow{color:var(--color-accent);letter-spacing:.32em;margin:0 0 1.25rem;font-size:.81rem}.rsvp__title{margin:0;font-family:inherit;font-size:clamp(2.85rem,7.4vw,5.05rem);font-weight:700}.rsvp__intro{max-width:32rem;color:var(--color-muted);margin:1.25rem auto 0;font-size:clamp(1.1rem,2.3vw,1.3rem);line-height:1.9}.rsvp__form{background:#fff;padding:clamp(1.5rem,5vw,4rem)}.form-field{border-bottom:1px solid var(--color-border);padding:clamp(2rem,5vw,3rem) 0}.form-field:first-child{padding-top:0}.form-field__heading{margin-bottom:1.25rem}.form-field__question{color:var(--color-text);align-items:baseline;gap:.75rem;font-family:inherit;font-size:clamp(1.55rem,3.3vw,1.95rem);line-height:1.4;display:flex}.form-field__required{color:var(--color-accent);letter-spacing:.14em;font-family:inherit;font-size:.78rem;font-weight:700}.form-field__description{color:var(--color-muted);margin:.55rem 0 0;font-size:1.02rem;line-height:1.7}.form-field input[type=text],.form-field input[type=tel],.form-field input[type=email],.form-field textarea{width:100%;color:var(--color-text);background:0 0;border:0;border-bottom:1px solid #bdb5ac;border-radius:0;outline:none;padding:.8rem .2rem;font-size:1.2rem;font-weight:700;transition:border-color .18s}.form-field textarea{resize:vertical;border:1px solid #cfc8c0;padding:1rem}.form-field input:focus,.form-field textarea:focus{border-color:var(--color-accent)}.choice-group{gap:.75rem;display:grid}.choice{border:1px solid var(--color-border);cursor:pointer;align-items:center;min-height:3.2rem;padding:.75rem 1rem;font-size:1.15rem;transition:border-color .18s,background .18s;display:flex;position:relative}.choice:has(input:checked){border-color:var(--color-accent);background:#faf7f3}.choice input{width:1rem;height:1rem;accent-color:var(--color-accent);margin:0 .75rem 0 0}.choice span{line-height:1.55}.form-field__error,.rsvp__status{color:#9a4c42;margin:.85rem 0 0;font-size:1rem}.form-field--error input[type=text],.form-field--error input[type=tel],.form-field--error input[type=email]{border-color:#9a4c42}.rsvp__honeypot{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.rsvp__submit{text-align:center;padding-top:3rem}.rsvp__privacy{color:var(--color-muted);margin:0 auto 1.5rem;font-size:.92rem;line-height:1.7}.rsvp__submit button{border:1px solid var(--color-text);color:#fff;background:var(--color-text);cursor:pointer;letter-spacing:.16em;border-radius:0;min-width:12rem;padding:.95rem 2rem;font-size:1.05rem;font-weight:700;transition:color .18s,background .18s}.rsvp__submit button:hover,.rsvp__submit button:focus-visible{color:var(--color-text);background:#fff}.rsvp__submit button:disabled{cursor:wait;opacity:.62}.rsvp__complete{text-align:center;background:#fff;width:min(100%,46rem);margin-inline:auto;padding:clamp(4rem,10vw,7rem) clamp(1.5rem,6vw,4rem)}.rsvp__complete p:last-child{max-width:32rem;color:var(--color-muted);margin:1.5rem auto 0;line-height:1.9}.rsvp__complete-photo-wrap{aspect-ratio:2/3;background:#e8e3dc;width:min(100%,30rem);margin:2.5rem auto 0;overflow:hidden}.rsvp__complete-photo{object-fit:cover;object-position:center;width:100%;height:100%}.rsvp__status{color:var(--color-muted);line-height:1.7}.rsvp__status--error{color:#9a4c42}@media (width<=520px){.rsvp{padding-inline:0}.rsvp__header,.rsvp__form{padding-inline:1.25rem}}@media (prefers-reduced-motion:reduce){.choice,.form-field input,.form-field textarea,.rsvp__submit button{transition:none}}.hero{background:#fff;place-items:center;min-height:100svh;padding:clamp(1.25rem,4vw,3.5rem);display:grid;position:relative;overflow:hidden}.hero__frame{justify-items:center;gap:clamp(1rem,2.2vh,1.75rem);width:min(100%,66rem);padding-bottom:clamp(3.25rem,8vh,5rem);display:grid}.hero__kicker{color:var(--color-muted);font-family:var(--font-wedding);letter-spacing:.34em;margin:0;font-size:clamp(.9rem,2.1vw,1.1rem);animation:.7s .15s both hero-reveal}.hero__photo-wrap{aspect-ratio:4/5;background:#f0ece7;width:min(100%,40rem);margin:0;animation:.9s both hero-reveal;overflow:hidden}.hero__photo{object-fit:cover;object-position:center 64%;width:100%;height:100%}.hero__details{text-align:center;justify-items:center;gap:.45rem;animation:.7s .5s both hero-reveal;display:grid}.hero__couple{color:var(--color-text);font-family:var(--font-wedding);letter-spacing:.025em;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.35em;margin:0;font-size:clamp(1.8rem,6.4vw,3.7rem);font-weight:700;display:flex}.hero__ampersand{color:var(--color-accent);font-size:.62em;font-style:italic}.hero__rule{background:var(--color-accent);width:2.5rem;height:1px;margin:.35rem 0}.hero__date,.hero__location{color:var(--color-text);margin:0;font-weight:700}.hero__date{font-family:var(--font-wedding);letter-spacing:.16em;font-size:clamp(1.25rem,3.2vw,1.55rem)}.hero__location{color:#5d5751;letter-spacing:.08em;margin-top:.2rem;font-size:clamp(1.08rem,2.8vw,1.3rem)}.hero__scroll-cue{color:var(--color-muted);letter-spacing:.28em;justify-items:center;gap:.5rem;font-size:.69rem;text-decoration:none;animation:.5s .9s both hero-reveal;display:grid;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.hero__scroll-line{background:linear-gradient(to bottom, var(--color-accent), transparent);width:1px;height:clamp(1.75rem,5vh,3.5rem)}.story{background:var(--color-background);align-items:center;min-height:100svh;padding:clamp(3.5rem,8vw,7rem) clamp(1.25rem,6vw,6rem);display:grid}.story__inner{grid-template-columns:minmax(0,1.18fr) minmax(18rem,.82fr);align-items:center;gap:clamp(3rem,6vw,6rem);width:min(100%,72rem);margin:0 auto;display:grid}.story__photos{min-height:36rem;position:relative}.story__main-photo-wrap,.story__inset-photo-wrap{background:#e8e3dc;margin:0;overflow:hidden}.story__main-photo-wrap{width:78%;height:35rem}.story__photos--single .story__main-photo-wrap{width:100%}.story__main-photo,.story__inset-photo{object-fit:cover;width:100%;height:100%}.story__main-photo{object-position:center 48%}.story__inset-photo-wrap{border:.6rem solid var(--color-background);width:38%;height:18rem;position:absolute;bottom:-1rem;right:0;transform:rotate(2deg);box-shadow:0 1rem 2.2rem #43372c29}.story__inset-photo{object-position:center}.story__copy{max-width:27rem}.story__inner--text-first .story__photos{order:2}.story__inner--text-first .story__copy{order:1;justify-self:end}.story__inner--text-first .story__main-photo-wrap{width:min(100%,29rem);height:43rem;margin-left:auto}.story__inner--text-first .story__main-photo{object-position:center 52%}.story__title{font-family:var(--font-wedding);overflow-wrap:normal;text-wrap:balance;word-break:keep-all;margin:0;font-size:clamp(2.45rem,4.9vw,4.05rem);font-weight:700;line-height:1.25}.story__rule{background:var(--color-accent);width:2.7rem;height:1px;margin:1.35rem 0;display:block}.story__body{color:#625d57;letter-spacing:.05em;margin:0;font-size:clamp(1.15rem,1.9vw,1.4rem);line-height:2}.section-nav{z-index:10;gap:.8rem;padding:.5rem;transition:opacity .22s,visibility .22s;display:grid;position:fixed;top:50%;right:clamp(.8rem,2.2vw,2rem);transform:translateY(-50%)}.section-nav--hidden{visibility:hidden;opacity:0;pointer-events:none}.section-nav__dot{background:#fffc;border:1px solid #2927248c;border-radius:50%;width:.42rem;height:.42rem;transition:background .18s,transform .18s}.section-nav__dot--active{background:var(--color-accent);transform:scale(1.45)}@keyframes hero-reveal{0%{opacity:0;transform:translateY(.75rem)}to{opacity:1;transform:translateY(0)}}@media (width<=520px){.hero{min-height:auto;padding:max(1.25rem, env(safe-area-inset-top)) 1.25rem 2rem;align-items:start}.hero__frame{gap:.85rem;padding-bottom:0}.hero__photo-wrap{aspect-ratio:4/5;width:min(100%,27rem)}.hero__photo{object-position:center 64%}.hero__details{gap:.25rem}.hero__rule{margin:.15rem 0}.hero__scroll-cue{margin-top:1.35rem;position:static;transform:none}.hero__scroll-line{height:2rem}}@media (width<=767px){.story{min-height:auto;padding:4rem 1.25rem 4.5rem}.story__inner{grid-template-columns:1fr;gap:4rem}.story__photos{min-height:28rem}.story__main-photo-wrap{width:88%;height:26rem}.story__photos--single .story__main-photo-wrap{width:100%}.story__inset-photo-wrap{border-width:.4rem;width:42%;height:13rem;bottom:-.75rem}.story__copy{max-width:none;padding:0 .4rem}.story__inner--text-first .story__photos,.story__inner--text-first .story__copy{order:initial}.story__inner--text-first .story__photos{order:1}.story__inner--text-first .story__copy{order:2;justify-self:stretch}.story__inner--text-first .story__main-photo-wrap{width:100%;height:34rem}.section-nav{gap:.7rem;right:.35rem}}@media (prefers-reduced-motion:reduce){.hero__kicker,.hero__photo-wrap,.hero__details,.hero__scroll-cue,.story__main-photo-wrap,.story__inset-photo-wrap,.story__copy{animation:none}.section-nav,.section-nav__dot{transition:none}}@font-face{font-family:Wedding ChenYuluoyan;src:url(/fonts/ChenYuluoyan-2.0-Thin.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{color:#292724;font-synthesis:weight;text-rendering:optimizelegibility;--color-background:#fdfcf9;--color-surface:#fff;--color-text:#292724;--color-muted:#77716a;--color-accent:#9a806b;--color-border:#ddd7d0;--content-width:72rem;--font-wedding:"Wedding ChenYuluoyan", "Noto Sans TC", sans-serif;background:#fdfcf9;font-family:Wedding ChenYuluoyan,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-background);min-width:320px;min-height:100vh;margin:0;font-size:1.125rem;font-weight:700}button,input,textarea{font:inherit}img{max-width:100%;display:block}.placeholder-screen{text-align:center;place-content:center;min-height:100svh;padding:2rem;display:grid}.placeholder-screen h1{margin:.5rem 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,8vw,5rem);font-weight:700}.eyebrow{color:var(--color-accent);letter-spacing:.28em;margin:0;font-size:.9rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
