:root{--cream:#f7f4eb;--ink:#293c34;--sage:#79836b;--gold:#a98c61;--line:#d8d8c9}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:72px}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:"Songti SC","Noto Serif CJK SC",SimSun,serif;font-weight:400}h2{font-size:clamp(27px,4vw,43px);letter-spacing:.12em;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #b6975b;outline-offset:4px}[hidden]{display:none!important}.top{height:76px;position:absolute;z-index:5;color:white;display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 5vw;letter-spacing:.22em;font-size:10px}.monogram{font:24px Georgia,serif;letter-spacing:.06em}.monogram i{font-size:16px;font-weight:normal}.top button{background:#ffffff18;border:1px solid #ffffff66;color:white;border-radius:22px;padding:6px 13px;font-size:12px;letter-spacing:0}.hero{height:min(950px,100svh);min-height:660px;position:relative;color:white;overflow:hidden}.hero>img{width:100%;height:100%;object-fit:cover;object-position:50% 64%}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#15291f55,#15291f10 50%,#14221be0)}.hero-copy{position:absolute;bottom:10%;left:8%;text-shadow:0 2px 24px #17261b88}.eyebrow{font-size:10px;letter-spacing:.28em;font-weight:500;margin-bottom:24px}.hero h1{font-size:clamp(30px,4.5vw,62px);letter-spacing:.08em}.hero h1 em{font:italic .72em Georgia;margin:0 .22em;color:#e9dbc2}.hero-en{font:italic 24px Georgia;letter-spacing:.02em;margin:12px 0 26px}.hero-rule{width:54px;border-top:1px solid #cbbf9c;margin-bottom:20px}.hero-copy>p:not(.eyebrow):not(.hero-en){font-size:14px;letter-spacing:.14em}.outline{display:inline-flex;gap:55px;border:1px solid #ffffff77;border-radius:2px;padding:12px 22px;margin-top:25px;font-size:13px}.vertical{position:absolute;right:5%;top:38%;writing-mode:vertical-rl;font-size:12px;letter-spacing:.5em}.hero-bottom{position:absolute;bottom:25px;left:8%;letter-spacing:.3em;font-size:9px}.paper{background-color:var(--cream);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23878669' opacity='.05' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.letter{text-align:center;padding:100px 24px 110px}.leaf{font:60px Georgia;color:var(--sage);margin:8px 0 22px}.lines{white-space:pre-line}.letter .lines{margin:28px 0 18px;line-height:2.2}.muted{color:#788172;font-size:14px}.text-link{display:inline-block;border:0;border-bottom:1px solid #a6af99;background:transparent;padding:4px 0;color:inherit;font-size:13px}.letter .text-link{margin-top:32px}.scene{display:grid;grid-template-columns:1fr 1fr;min-height:680px;background:#dce2d8}.scene:nth-child(even){background:#dce8e9}.scene:nth-child(3){background:#e9e2d8}.scene:nth-child(4){background:#263c32;color:#f6f0df}.scene:nth-child(even) .scene-image{order:2}.scene-image{position:relative;min-width:0;overflow:hidden}.scene-image img{display:block;width:100%;height:100%;max-height:850px;object-fit:cover;cursor:zoom-in;transition:transform 1s}.scene-image img:hover{transform:scale(1.025)}.scene-copy{display:flex;flex-direction:column;justify-content:center;padding:70px 12%;align-items:flex-start}.scene-number{font:italic 74px Georgia;color:#83907c88;line-height:1;margin-bottom:50px}.scene:nth-child(4) .scene-number{color:#b7c4ac88}.scene-copy h2{font-size:clamp(25px,3vw,36px);letter-spacing:.07em}.scene-copy>p:not(.eyebrow){font-size:14px;margin-top:20px;opacity:.7}.stamp{font:24px Georgia;width:60px;height:60px;border:1px solid currentColor;opacity:.5;display:grid;place-items:center;border-radius:50%;margin-top:35px;transform:rotate(-12deg)}.thumbnails{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.thumb{width:54px;height:65px;border:0;background:none;padding:0}.thumb img{width:100%;height:100%;object-fit:cover}.invite{text-align:center;padding:110px 24px}.date-display{margin:40px auto 24px;display:flex;flex-direction:column;align-items:center}.date-display>span:first-child{letter-spacing:.4em;font:20px Georgia}.date-display strong{font:80px Georgia;letter-spacing:.02em}.date-display i{font-weight:normal;font-style:normal;color:#aaad97;font-size:.6em}.date-display>span:last-child{font-size:10px;letter-spacing:.2em}.amp{font:italic 22px Georgia;margin:0 15px;color:var(--gold)}.venue{margin:20px 0 6px;font-size:19px;letter-spacing:.15em}.button{border:0;background:var(--ink);color:#fff;display:inline-block;padding:15px 30px;letter-spacing:.08em;text-align:center;font-size:14px;border-radius:2px}.invite .button{margin-top:30px}.schedule{max-width:100%;padding:65px max(24px,calc((100vw - 680px)/2)) 90px;border-top:1px solid var(--line)}.schedule>h2,.schedule>.eyebrow{text-align:center}#timeline{margin:45px 0}.timeline-row{display:grid;grid-template-columns:90px 1fr;gap:22px;position:relative;padding:0 0 30px}.timeline-row:before{content:'';position:absolute;left:100px;top:8px;bottom:0;border-left:1px solid #c6cbb9}.timeline-row:after{content:'';width:7px;height:7px;border:1px solid #7b886c;border-radius:50%;position:absolute;left:96px;top:8px;background:var(--cream)}.timeline-row time{font:25px Georgia;color:#68785d}.timeline-row h3{font-size:20px;margin-left:12px}.timeline-row p{font-size:13px;color:#7a8173;margin-left:12px}.note{padding:20px;background:#e9ecdf;font-size:13px;line-height:2}details{border-bottom:1px solid #cfd3c5;margin-top:18px;padding-bottom:16px}summary{cursor:pointer;list-style:none;font-size:15px;padding:8px 0}summary::-webkit-details-marker{display:none}summary span{float:right}details[open] summary span{transform:rotate(45deg)}details p{font-size:14px;color:#687361;padding:12px 0}details h3{margin-top:15px}small{font-size:12px;color:#7b8573}.rsvp{background:#e6e9df;padding:85px max(24px,calc((100vw - 1080px)/2));display:grid;grid-template-columns:1fr 1.2fr;gap:70px}.rsvp-intro>p:not(.eyebrow){margin-top:25px;font-size:14px;color:#687560}.rsvp-flower{font:100px Georgia;color:#879279;display:block;margin-top:50px}form label{display:block;font-size:14px;margin-bottom:18px}label small{display:block}input:not([type=radio]),select,textarea{width:100%;background:#ffffff75;border:1px solid #bac3ae;border-radius:3px;color:var(--ink);padding:11px 12px;margin-top:6px;min-width:0}textarea{resize:vertical}fieldset{border:0;padding:0;margin:0 0 18px}legend{font-size:14px;margin-bottom:9px}.choices{display:flex;flex-wrap:wrap;gap:8px}.choices label{padding:9px 12px;border:1px solid #bac3ae;margin:0;background:#ffffff44;font-size:13px;border-radius:3px;cursor:pointer}.choices label:has(input:checked){border-color:#52664b;background:#d2dac7}input[type=radio]{accent-color:#3d5538;margin-right:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.privacy{font-size:11px;color:#6c7863;margin-bottom:18px}#submit{width:100%}#form-message{font-size:14px;margin-top:14px}#receipt{padding:20px;background:#f6f6ef;font-size:14px;margin-top:16px}#receipt small{display:block;margin-top:10px}.thanks{text-align:center;padding:100px 24px}.thanks .lines{font-size:15px;line-height:2.2;max-width:550px;margin:35px auto}.signature{font:italic 32px Georgia;margin:40px 0 10px}.thanks>span{letter-spacing:.2em;font-size:12px}footer{background:#23392e;color:#b5c1ae;text-align:center;padding:45px 20px 100px;font-size:13px}footer small{letter-spacing:.2em;font-size:9px}.bottom-nav{position:fixed;bottom:0;z-index:20;left:0;right:0;display:flex;justify-content:center;background:#f8f7f0f2;backdrop-filter:blur(12px);border-top:1px solid #d9decd;padding:10px 15px calc(10px + env(safe-area-inset-bottom));gap:28px;font-size:12px}.bottom-nav a{padding:8px 4px}.bottom-nav a:last-child{color:#52653d;font-weight:600}dialog{padding:0;background:transparent;border:0;color:white;max-width:96vw;max-height:96svh;text-align:center}dialog::backdrop{background:#08140ef0}dialog img{display:block;max-width:90vw;max-height:85svh;object-fit:contain}dialog button{position:fixed;top:15px;right:20px;border:0;border-radius:50%;color:white;background:#2e4035;font-size:30px;width:44px;height:44px}dialog p{font-size:12px}#preview{position:fixed;top:0;left:0;right:0;background:#b06b36;color:white;text-align:center;padding:6px;z-index:100;font-size:12px}#load-error{padding:25px;background:#f9e9d2;position:fixed;top:20%;left:10%;right:10%;z-index:50}@media(min-width:1000px){.hero>img{object-position:50% 58%}.hero-copy{bottom:15%}.hero{height:900px}.hero-shade{background:linear-gradient(90deg,#12251a99,transparent 75%),linear-gradient(0deg,#12251a99,transparent 70%)}}@media(max-width:700px){.hero{min-height:640px;max-height:900px}.hero-copy{left:7%;bottom:9%}.hero h1{font-size:31px}.hero-en{font-size:22px}.hero>img{object-position:52% 55%}.hero-shade{background:linear-gradient(180deg,#15291f33,transparent 32%,#14221bf0)}.hero-copy .eyebrow{margin-bottom:10px}.hero-rule{margin-bottom:12px}.hero-en{margin:5px 0 14px}.top{height:63px}.letter{padding:75px 22px}.letter .muted{font-size:12px}.scene{display:flex;flex-direction:column;min-height:0}.scene:nth-child(even) .scene-image{order:0}.scene-image{height:126vw;max-height:720px}.scene-copy{padding:35px 28px 48px;position:relative}.scene-number{font-size:42px;margin-bottom:20px}.scene-copy .eyebrow{margin-bottom:12px}.scene-copy h2{font-size:27px}.scene-copy>p:not(.eyebrow){font-size:13px;margin-top:12px}.stamp{position:absolute;right:28px;top:22px;font-size:20px;width:46px;height:46px;margin:0}.invite{padding:75px 24px}.schedule{padding-top:55px;padding-bottom:60px}.schedule h2{font-size:27px}.rsvp{grid-template-columns:1fr;gap:30px;padding:55px 24px}.rsvp-flower{display:none}.rsvp-intro>p:not(.eyebrow){margin-top:15px}.rsvp-intro br{display:none}.rsvp-intro .eyebrow{margin-bottom:15px}.thanks{padding:70px 24px}.thanks .lines{font-size:14px}.bottom-nav{gap:0;justify-content:space-around}.hero-bottom{font-size:8px}.vertical{right:6%;top:24%}.date-display strong{font-size:70px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
