/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}}@font-face{font-family:Wedding Names;src:url(/fonts/wedding-names.ttf)format("truetype");font-display:swap;unicode-range:u+5b8b,u+539a,u+6da6,u+6881,u+5609,u+601d}:root{--paper:#f7f3ec;--ivory:#fbf8f2;--ink:#493a30;--muted:#8c7a69;--gold:#a38a65;--line:#dfd5c6;--serif:"Bodoni 72","Baskerville","Times New Roman","Songti SC","STSong","SimSun",serif;--cn:"Wedding Names","Songti SC","STSong","Noto Serif CJK SC","SimSun",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft Yahei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;overflow-x:clip}::selection{color:#35281e;background:#d6c6ad}button,input,textarea{font:inherit}a,button,input,textarea{-webkit-tap-highlight-color:transparent}a,button{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}a{color:inherit;text-decoration:none}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:5px}section[id]{scroll-margin-top:30px}fieldset{border:0;min-width:0;margin:0;padding:0}label,legend{letter-spacing:.08em;font-size:13px}label{display:block}input,textarea{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;border-radius:0;outline:none;padding:14px 0;font-size:16px;line-height:1.6}input:focus,textarea:focus{border-color:var(--gold)}input:disabled{opacity:.4}textarea{resize:vertical;min-height:130px}input::placeholder,textarea::placeholder{color:#aa9b8b;font-size:14px}main{overflow:hidden}.container{width:min(1060px,100% - 100px);margin:auto}.section-pad{padding:115px 0}.eyebrow{color:var(--muted);letter-spacing:.24em;font-size:10px;font-weight:400;line-height:1.8;display:block}.section-heading{margin-bottom:65px}.section-heading h2{font-family:var(--serif);letter-spacing:-.035em;white-space:pre-line;margin-top:20px;font-size:clamp(40px,5.2vw,67px);line-height:1.08}.section-heading p{font-family:var(--cn);letter-spacing:.18em;color:var(--muted);margin-top:21px;font-size:15px}.short-rule{background:var(--gold);width:38px;height:1px;margin:35px auto;display:block}.text-link{letter-spacing:.07em;color:var(--ink);background:0 0;border:0;border-bottom:1px solid #c7b59a;justify-content:center;align-items:center;gap:10px;padding:9px 0;font-size:12px;display:inline-flex}.text-link:hover{color:var(--gold)}.button{letter-spacing:.12em;border:1px solid var(--ink);border-radius:0;justify-content:center;align-items:center;gap:28px;min-height:52px;padding:16px 26px;font-size:12px;transition:background .25s,color .25s;display:inline-flex}.button-dark{background:var(--ink);color:var(--ivory)}.button-dark:hover:not(:disabled){background:#65513e}.photo{background:#e8dfcf;position:relative;overflow:hidden}.photo img{transition:transform 2s;display:block}.photo:hover img{transform:scale(1.025)}.photo-fallback{color:#73624e;background:radial-gradient(at 70% 25%,#fffaf1,#0000 55%),linear-gradient(145deg,#c7b294,#f5ead6 50%,#a9967b);flex-direction:column;justify-content:center;align-items:center;gap:25px;display:flex;position:absolute;inset:0}.photo-fallback span{font-family:var(--serif);letter-spacing:.12em;font-size:20px}.photo-fallback i{font-family:var(--cn);letter-spacing:.12em;font-size:12px;font-style:normal}.will-reveal{opacity:0;transition:opacity 1.1s,transform 1.1s;transform:translateY(22px)}.will-reveal.is-visible{opacity:1;transform:none}.skip-link{background:var(--ink);color:#fff;z-index:50;padding:12px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:15px}.hero{color:#493a30;isolation:isolate;justify-content:center;align-items:center;min-height:760px;display:flex;position:relative}.hero-background{z-index:-3;position:absolute;inset:0}.hero-background img{animation:cover-breathe 24s ease-out both}.hero-wash{z-index:-2;background:linear-gradient(90deg,#f7f1e642,#fbf6ee6b,#e2d4be1f);position:absolute;inset:0}.hero-top{top:max(38px,env(safe-area-inset-top));justify-content:space-between;align-items:center;display:flex;position:absolute;left:50px;right:115px}.monogram{font-family:var(--serif);letter-spacing:.07em;font-size:25px}.monogram span{padding:0 3px;font-size:15px;font-style:italic}.hero-edition{letter-spacing:.21em;font-size:9px}.hero-copy{text-align:center;width:100%;padding:90px 25px 100px}.hero-copy>.eyebrow{color:#67513c;letter-spacing:.34em;font-size:10px}.hero-names{font-family:var(--serif);letter-spacing:-.026em;flex-direction:column;align-items:center;margin:36px 0 30px;font-size:clamp(43px,7.8vw,112px);line-height:.99;display:flex}.hero-names>span{display:block}.hero-names i{color:#967b58;margin:8px 0;font-size:.43em;font-weight:400;line-height:1.35}.hero-chinese{font-family:var(--cn);letter-spacing:.2em;font-size:clamp(23px,2.9vw,36px)}.hero-chinese span{letter-spacing:0;color:#957652;margin:0 19px;font-size:.7em;font-style:italic;display:inline-block}.hero-rule{background:#9c815b;width:45px;height:1px;margin:28px auto 22px}.hero-announcement{letter-spacing:.32em;font-size:9px}.hero-date{font-family:var(--serif);letter-spacing:.18em;margin-top:15px;font-size:23px}.hero-side{writing-mode:vertical-rl;letter-spacing:.27em;font-size:9px;position:absolute;top:50%;right:34px}.scroll-cue{bottom:max(35px,env(safe-area-inset-bottom));white-space:nowrap;flex-direction:column;align-items:center;gap:15px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.scroll-cue span{font-family:var(--cn);letter-spacing:.19em;font-size:11px}.scroll-cue svg{animation:float-arrow 3s ease-in-out infinite}.hero-corner{letter-spacing:.22em;font-size:8px;position:absolute;bottom:45px;left:50px}.music-player{right:34px;top:max(34px,env(safe-area-inset-top));z-index:20;position:fixed}.music-button{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:41px;height:41px;color:var(--ink);background:#f9f4e9cc;border:1px solid #6f573e66;border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.music-button>span{background:var(--paper);border-radius:50%;place-items:center;width:13px;height:13px;display:grid;position:absolute;bottom:3px;right:2px}.music-button.is-playing{box-shadow:0 0 0 4px #c1a7821f}.music-error{border:1px solid var(--line);background:var(--ivory);text-align:left;width:220px;padding:12px;font-size:11px;line-height:1.7;position:absolute;top:51px;right:0}.invitation{text-align:center;background:var(--ivory);position:relative}.invitation-script{font-family:var(--serif);color:var(--gold);margin:27px 20px 56px;font-size:clamp(18px,2.5vw,26px);font-style:italic}.poem{font-family:var(--cn);letter-spacing:.16em;font-size:21px;line-height:2.2}.poem-break{height:32px}.invitation-signature{font-family:var(--cn);letter-spacing:.2em;font-size:15px}.invitation-signature span{letter-spacing:.25em;color:var(--muted);margin-top:16px;font-size:11px;display:block}.couple .section-heading{text-align:center}.couple-grid{grid-template-columns:1fr .6fr 1fr;align-items:center;gap:40px;max-width:930px;margin:auto;display:grid}.couple-portrait .photo{aspect-ratio:3/4;border-radius:180px 180px 0 0}.couple-portrait figcaption{text-align:center;padding-top:26px}.couple-portrait h3{font-family:var(--cn);letter-spacing:.18em;margin-top:8px;font-size:27px}.portrait-english{letter-spacing:.17em;color:var(--muted);margin-top:12px;font-size:9px;display:block}.bride-portrait{margin-top:90px}.couple-center{text-align:center}.couple-center i{font-family:var(--serif);color:#b8a380;font-size:83px;font-weight:400;line-height:1}.couple-center p{font-family:var(--serif);white-space:nowrap;margin-top:25px;font-size:26px;font-style:italic}.couple-center>span{letter-spacing:.2em;margin-top:15px;font-size:10px;display:block}.placeholder-note{text-align:center;color:#9d8c77;letter-spacing:.13em;margin-top:36px;font-size:10px}.date-section{background:#eae2d5}.date-layout{grid-template-columns:1fr 1fr;align-items:center;gap:95px;max-width:910px;display:grid}.date-display{text-align:center}.date-month{font-family:var(--serif);letter-spacing:.2em;margin-top:32px;font-size:27px}.date-display h2{font-family:var(--serif);letter-spacing:-.07em;margin:3px 0 13px;font-size:180px;line-height:.98}.date-year{font-family:var(--serif);letter-spacing:.2em;font-size:25px}.date-year span{letter-spacing:0;margin-top:15px;font-size:19px;font-style:italic;display:block}.date-caption{font-family:var(--cn);letter-spacing:.1em;color:var(--muted);margin-top:30px;font-size:13px;line-height:2.2}.calendar{border-top:1px solid #c7b79f;border-bottom:1px solid #c7b79f;padding:30px 0 22px}.calendar-title{font-family:var(--serif);letter-spacing:.12em;justify-content:space-between;margin-bottom:25px;font-size:16px;display:flex}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:8px 1px;display:grid}.calendar-weekday{letter-spacing:.02em;color:var(--muted);padding-bottom:12px;font-size:8px}.calendar-day{font-family:var(--serif);aspect-ratio:1;justify-content:center;align-items:center;font-size:18px;display:flex;position:relative}.calendar-day.selected{background:var(--ink);color:var(--ivory);border-radius:50%}.calendar-day.selected i{font-size:10px;font-style:normal;position:absolute;bottom:2px}.calendar-note{letter-spacing:.16em;color:var(--muted);text-align:center;margin-top:30px;font-size:8px}.calendar-note>span{background:var(--ink);border-radius:50%;width:5px;height:5px;margin-right:10px;display:inline-block}.countdown{text-align:center;padding:90px 0}.countdown h2{font-family:var(--cn);letter-spacing:.17em;margin-top:25px;font-size:25px}.countdown-grid{grid-template-columns:repeat(4,1fr);max-width:700px;margin:45px auto 35px;display:grid}.countdown-grid>div{border-right:1px solid var(--line)}.countdown-grid>div:last-child{border:0}.countdown-grid strong{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:65px;font-weight:400;line-height:1.1}.countdown-grid span{font-family:var(--cn);letter-spacing:.1em;margin-top:15px;font-size:12px;display:block}.countdown-grid small{font-family:var(--sans);letter-spacing:.2em;color:var(--muted);margin-top:7px;font-size:8px;display:block}.countdown .container>p{font-family:var(--cn);color:var(--muted);letter-spacing:.12em;font-size:12px}.venue{background:var(--ivory)}.venue-layout{grid-template-columns:.95fr 1fr;align-items:center;gap:85px;display:grid}.venue-art{background:#e9dfcc;flex-direction:column;justify-content:center;align-items:center;min-height:480px;padding:35px;display:flex;position:relative;overflow:hidden}.venue-art:before{content:"";background:linear-gradient(115deg,#0000 32%,#ffffff80 35%,#0000 60%);position:absolute;inset:0;transform:rotate(-7deg)}.venue-arch{text-align:center;color:#8d7352;border:1px solid #bba887;border-radius:160px 160px 0 0;width:84%;padding:78px 40px 35px;position:relative}.venue-arch span{font-family:var(--serif);letter-spacing:.08em;font-size:35px;line-height:1.25;display:block}.venue-arch svg{margin:40px auto 0}.venue-art-label{letter-spacing:.22em;color:#8d7352;margin-top:30px;font-size:7px}.venue-copy h2{font-family:var(--serif);letter-spacing:-.035em;margin:22px 0 40px;font-size:52px;line-height:1.1}.venue-copy h3{font-family:var(--cn);letter-spacing:.13em;font-size:26px;line-height:1.9}.venue-copy h3 span{color:var(--muted);font-size:22px}.venue-date{font-family:var(--cn);letter-spacing:.1em;margin-top:24px;font-size:14px}.venue-address{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.8}.venue-buttons{flex-direction:column;align-items:flex-start;gap:17px;margin-top:32px;display:flex}.venue-note{font-family:var(--cn);letter-spacing:.07em;color:var(--muted);min-height:22px;margin-top:24px;font-size:11px;line-height:1.9}.gallery{padding-bottom:135px}.gallery .section-heading{max-width:650px;margin-bottom:70px}.gallery-editorial{flex-direction:column;gap:75px;display:flex}.gallery-item{grid-template-columns:1.55fr 1fr;align-items:center;gap:55px;display:grid}.gallery-image-wrap{position:relative}.gallery-item .photo{aspect-ratio:4/5}.gallery-item-0 .photo{aspect-ratio:5/4}.gallery-item-0 figcaption{padding-top:130px}.gallery-item-1{grid-template-columns:1fr 1.1fr;width:82%;margin-left:auto}.gallery-item-1 .gallery-image-wrap{grid-area:1/2}.gallery-item-1 figcaption{grid-area:1/1}.gallery-item-2{grid-template-columns:1.25fr 1fr;width:88%}.gallery-item-2 .photo{aspect-ratio:4/3}.photo-number{letter-spacing:.15em;color:#fdfbf6;text-shadow:0 1px 4px #5a4637;font-size:8px;position:absolute;bottom:18px;left:16px}.photo-placeholder-label{color:#6d5b43;font-family:var(--cn);letter-spacing:.13em;background:#fbf7eeb3;padding:7px 10px;font-size:9px;position:absolute;top:17px;right:17px}.gallery-item figcaption h3{font-family:var(--cn);letter-spacing:.05em;margin:20px 0 15px;font-size:24px;line-height:1.6}.gallery-item figcaption p{font-family:var(--cn);color:var(--muted);letter-spacing:.07em;font-size:13px;line-height:1.9}.story{background:#eee7dc}.story-layout{grid-template-columns:1fr 1fr;align-items:start;gap:75px;display:grid}.story .section-heading{position:sticky;top:100px}.timeline{border-left:1px solid #ccbda8;margin:0;padding:0 0 0 28px;list-style:none}.timeline li{gap:24px;padding-bottom:56px;display:flex;position:relative}.timeline li:last-child{padding-bottom:0}.timeline-dot{background:#eee7dc;border:1px solid #ad9473;border-radius:50%;width:7px;height:7px;position:absolute;top:7px;left:-32px}.story-index{font-family:var(--serif);color:#b7a387;font-size:22px;line-height:1.5}.timeline .eyebrow{letter-spacing:.14em;font-size:9px}.timeline h3{font-family:var(--cn);letter-spacing:.2em;margin:12px 0 15px;font-size:25px}.timeline p{font-family:var(--cn);color:var(--muted);letter-spacing:.07em;font-size:13px;line-height:2}.schedule .section-heading{text-align:center}.schedule-list{border-top:1px solid var(--line);max-width:850px;margin:auto}.schedule-item{border-bottom:1px solid var(--line);grid-template-columns:60px 130px 1fr 40px;align-items:center;gap:28px;padding:34px 0;display:grid}.schedule-index{font-family:var(--serif);color:var(--gold);font-size:17px}.schedule-item time{font-family:var(--serif);letter-spacing:-.04em;font-size:38px}.schedule-item h3{font-family:var(--cn);letter-spacing:.17em;font-size:22px}.schedule-item p{font-family:var(--cn);letter-spacing:.05em;color:var(--muted);margin-top:13px;font-size:12px}.schedule-star{color:#bda787;font-size:26px}.formal-invitation{background:linear-gradient(135deg,#e3d7c3,#f0e7d8 55%,#d4c0a3);padding:85px 25px}.invitation-card{text-align:center;background:var(--ivory);outline-offset:9px;border:1px solid #d1bfa3;outline:1px solid #faf6ecb3;max-width:620px;margin:auto;padding:75px 30px;box-shadow:0 13px 40px #4b37200d}.invitation-card p{font-family:var(--cn);letter-spacing:.18em;font-size:14px;line-height:2.4}.tiny-flower{color:#ac936d;margin:25px 0 30px;font-size:35px;line-height:1}.invitation-card .formal-date{letter-spacing:.1em;margin-bottom:20px;font-size:23px}.invitation-card .formal-names{letter-spacing:.2em;margin:18px 0 20px;font-size:29px;line-height:1.9}.formal-names small{letter-spacing:.1em;margin-left:10px;font-size:13px}.invitation-card .formal-closing{margin-top:20px;font-size:15px}.invitation-card .text-link{margin-top:38px}.invitation-card .short-rule{margin:25px auto}.rsvp{background:var(--ivory)}.rsvp-layout{grid-template-columns:1fr 1fr;gap:100px;display:grid}.rsvp .section-heading{margin-bottom:35px}.rsvp-letter{font-family:var(--cn);letter-spacing:.12em;font-size:20px;line-height:2}.rsvp-letter span{color:var(--muted);margin-top:25px;font-size:13px;line-height:2;display:block}.rsvp-monogram{font-family:var(--serif);letter-spacing:-.07em;color:#bdab8f;margin-top:30px;font-size:65px}.rsvp-monogram i{font-size:42px;font-weight:400}.rsvp-form{padding-top:15px}.form-row{grid-template-columns:1.7fr 1fr;gap:30px;margin-bottom:32px;display:grid}.rsvp-form fieldset{margin-bottom:35px}.rsvp-form legend{margin-bottom:17px}.attendance-options{grid-template-columns:1fr 1fr;gap:12px;display:grid}.attendance-options label{border:1px solid var(--line);cursor:pointer;letter-spacing:.03em;justify-content:space-between;align-items:center;gap:8px;padding:17px 13px;font-size:12px;display:flex;position:relative}.attendance-options label.chosen{border-color:var(--gold);background:#f0e8db}.attendance-options input{opacity:0;width:1px;height:1px;padding:0;position:absolute}.attendance-options label:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:3px}.radio-mark{border:1px solid var(--gold);border-radius:50%;flex:none;width:12px;height:12px}.chosen .radio-mark{background:var(--gold);box-shadow:inset 0 0 0 3px #f0e8db}.message-count{text-align:right;letter-spacing:.05em;color:var(--muted);margin:11px 0 23px;font-size:9px}.submit-button{justify-content:space-between;width:100%}.form-status{color:#96604f;overflow-wrap:anywhere;min-height:22px;margin:16px 0 0;font-size:12px;line-height:1.8}.form-status.success{color:#706744}.storage-note{color:var(--muted);margin-top:10px;font-size:10px;line-height:1.8}.guestbook .section-heading{text-align:center;margin-bottom:30px}.guestbook-note{text-align:center;font-family:var(--cn);letter-spacing:.1em;color:var(--muted);margin-bottom:35px;font-size:11px}.guestbook-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.blessing-card{border:1px solid var(--line);background:#ffffff52;flex-direction:column;align-items:flex-start;min-height:245px;padding:27px;display:flex}.quote-mark{font-family:var(--serif);color:#b5a184;margin-top:9px;font-size:56px;line-height:.8}.blessing-card>p{font-family:var(--cn);letter-spacing:.06em;white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 28px;font-size:14px;line-height:2.1}.blessing-card footer{border-top:1px solid var(--line);width:100%;font-family:var(--cn);justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding-top:18px;font-size:12px;display:flex}.blessing-card small{font-family:var(--sans);letter-spacing:.09em;color:var(--muted);white-space:nowrap;font-size:8px}.guestbook-end{text-align:center;letter-spacing:.26em;color:var(--muted);margin-top:40px;font-size:8px}.footer{text-align:center;background:#e7ddcb;justify-content:center;align-items:center;min-height:680px;padding:95px 20px 105px;display:flex;position:relative;overflow:hidden}.footer:before{content:"";background:radial-gradient(at 50% 40%,#ffffff73,#0000 65%);position:absolute;inset:0}.footer-content{z-index:1;position:relative}.footer h2{font-family:var(--serif);letter-spacing:-.02em;margin:35px 0 25px;font-size:clamp(49px,8vw,110px)}.footer-english{font-family:var(--serif);letter-spacing:.1em;color:#8b7455;font-size:25px;line-height:1.4}.footer-names{font-family:var(--cn);letter-spacing:.12em;font-size:26px}.footer-names>span{font-family:var(--serif);color:var(--gold);padding:0 6px;font-size:23px;font-style:italic}.footer-date{font-family:var(--serif);letter-spacing:.16em;margin-top:25px;font-size:21px}.footer-message{font-family:var(--cn);letter-spacing:.22em;margin-top:30px;font-size:13px}.footer .text-link{color:var(--muted);margin-top:35px;font-size:10px}.footer-bottom{letter-spacing:.25em;color:var(--muted);font-size:7px;position:absolute;bottom:28px}.footer-petals{pointer-events:none;position:absolute;inset:0}.footer-petals i{background:#faefddcc;border-radius:100% 0;width:20px;height:32px;animation:petal-fall 22s linear infinite;position:absolute;top:-50px;left:12%}.footer-petals i:nth-child(2){width:14px;height:23px;animation-duration:27s;animation-delay:7s;left:70%}.footer-petals i:nth-child(3){width:10px;height:18px;animation-duration:30s;animation-delay:14s;left:42%}@keyframes float-arrow{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes cover-breathe{0%{transform:scale(1.045)}to{transform:scale(1)}}@keyframes petal-fall{0%{opacity:0;transform:translateY(-30px)rotate(0)}10%{opacity:.6}80%{opacity:.5}to{opacity:0;transform:translate(55px,800px)rotate(35deg)}}@media (max-width:1024px){.container{width:calc(100% - 70px)}.section-pad{padding:90px 0}.couple-grid{grid-template-columns:1fr .5fr 1fr;gap:25px}.couple-center p{font-size:22px}.date-layout,.venue-layout{gap:45px}.venue-copy h2{font-size:43px}.venue-art{min-height:430px;padding:25px}.venue-arch{width:90%;padding:70px 20px 30px}.venue-arch span{font-size:28px}.rsvp-layout{gap:55px}.gallery-item{gap:35px}.story-layout{gap:50px}.guestbook-grid{gap:15px}.blessing-card{padding:23px}}@media (max-width:720px){.container{width:calc(100% - 44px)}.section-pad{padding:76px 0}.section-heading{margin-bottom:43px}.section-heading h2{font-size:43px}.section-heading p{letter-spacing:.12em;margin-top:18px;font-size:12px}.eyebrow{letter-spacing:.2em;font-size:8px}.hero{height:100svh;min-height:650px}.hero-top{left:23px;right:82px;top:max(27px,env(safe-area-inset-top))}.monogram{font-size:22px}.hero-edition{letter-spacing:.12em;text-align:right;max-width:180px;font-size:6px}.music-player{right:22px;top:max(24px,env(safe-area-inset-top))}.music-button{width:36px;height:36px}.hero-copy{padding:100px 17px 95px}.hero-copy>.eyebrow{letter-spacing:.24em;font-size:8px}.hero-names{letter-spacing:-.04em;margin:38px 0 29px;font-size:clamp(38px,11.8vw,66px);line-height:1.04}.hero-names i{margin:9px 0 8px}.hero-chinese{letter-spacing:.12em;font-size:26px}.hero-chinese span{margin:0 13px}.hero-rule{margin:27px auto 22px}.hero-announcement{letter-spacing:.26em;font-size:7px}.hero-date{letter-spacing:.13em;margin-top:17px;font-size:22px}.hero-corner,.hero-side{display:none}.scroll-cue{bottom:max(31px,env(safe-area-inset-bottom));gap:17px}.scroll-cue span{letter-spacing:.12em;font-size:10px}.invitation-script{margin:26px 15px 44px;font-size:18px}.poem{letter-spacing:.13em;font-size:19px;line-height:2.1}.poem-break{height:27px}.invitation-signature{font-size:13px}.couple-grid{grid-template-columns:1fr 1fr;gap:21px;position:relative}.couple-center{grid-area:2/1/auto/-1;margin:17px 0 0}.couple-center i{font-size:38px;display:none}.couple-center p{margin-top:0;font-size:28px}.couple-center>span{margin-top:11px;font-size:9px}.couple-portrait .photo{border-radius:120px 120px 0 0}.couple-portrait figcaption{padding-top:20px}.couple-portrait h3{letter-spacing:.12em;font-size:23px}.portrait-english{letter-spacing:.1em;margin-top:9px;font-size:7px}.bride-portrait{margin-top:47px}.placeholder-note{margin-top:24px;font-size:9px}.date-layout{grid-template-columns:1fr;gap:44px;max-width:420px}.date-month{margin-top:24px;font-size:22px}.date-display h2{font-size:153px}.date-year{font-size:24px}.date-year span{margin-top:12px;font-size:18px}.date-caption{margin-top:20px;font-size:12px}.calendar{width:min(100%,330px);margin:auto;padding-top:26px}.calendar-day{font-size:18px}.calendar-title{font-size:14px}.calendar-weekday{font-size:7px}.countdown{padding:68px 0}.countdown h2{font-size:22px}.countdown-grid{gap:0;margin:33px auto 28px}.countdown-grid strong{font-size:clamp(36px,10vw,54px)}.countdown-grid span{margin-top:13px;font-size:11px}.countdown-grid small{letter-spacing:.1em;font-size:7px}.countdown .container>p{font-size:11px}.venue-layout{grid-template-columns:1fr;gap:40px}.venue-art{width:100%;max-width:370px;min-height:350px;margin:auto;padding:28px}.venue-arch{max-width:240px;padding:55px 25px 25px}.venue-arch span{font-size:30px}.venue-arch svg{width:25px;margin-top:27px}.venue-art-label{margin-top:21px;font-size:7px}.venue-copy{text-align:center}.venue-copy h2{margin:19px 0 25px;font-size:43px}.venue-copy h3{letter-spacing:.1em;font-size:24px}.venue-copy h3 span{font-size:21px}.venue-date{margin-top:20px;font-size:12px}.venue-buttons{align-items:center;margin-top:26px}.venue-note{font-size:10px}.gallery .section-heading{margin-bottom:38px}.gallery-editorial{gap:47px}.gallery-item,.gallery-item-1,.gallery-item-2{grid-template-columns:1fr;gap:22px;width:100%;margin:0}.gallery-item-0 .photo{aspect-ratio:4/5}.gallery-item-1{padding-left:32px}.gallery-item-1 .photo{aspect-ratio:4/5}.gallery-item-1 .gallery-image-wrap,.gallery-item-1 figcaption{grid-area:auto}.gallery-item-2{padding-right:22px}.gallery-item-2 .photo{aspect-ratio:4/3}.gallery-item-0 figcaption{padding-top:0}.gallery-item figcaption h3{margin:13px 0 10px;font-size:21px}.gallery-item figcaption p{font-size:12px}.photo-number{font-size:7px;bottom:14px;left:13px}.photo-placeholder-label{font-size:8px;top:12px;right:12px}.story-layout{grid-template-columns:1fr;gap:7px}.story .section-heading{margin-bottom:40px;position:static}.timeline{margin-left:8px;padding-left:25px}.timeline li{gap:20px;padding-bottom:40px}.timeline-dot{left:-29px}.timeline h3{font-size:23px}.timeline p{font-size:12px}.schedule-item{grid-template-columns:20px 76px 1fr;gap:15px;padding:25px 0}.schedule-item time{font-size:30px}.schedule-index{font-size:12px}.schedule-item h3{letter-spacing:.08em;font-size:19px}.schedule-item p{letter-spacing:0;margin-top:9px;font-size:10px;line-height:1.8}.schedule-star{display:none}.formal-invitation{padding:62px 25px}.invitation-card{padding:50px 18px}.invitation-card>.eyebrow{letter-spacing:.12em;font-size:7px}.invitation-card p{font-size:12px;line-height:2.5}.invitation-card .formal-date{font-size:19px}.invitation-card .formal-names{font-size:26px}.formal-names small{font-size:11px}.invitation-card .formal-closing{font-size:13px}.rsvp-layout{grid-template-columns:1fr;gap:30px}.rsvp-letter{font-size:18px}.rsvp-letter span{margin-top:15px;font-size:12px}.rsvp-monogram{display:none}.rsvp .section-heading{margin-bottom:25px}.rsvp-form{padding-top:0}.form-row{gap:22px;margin-bottom:27px}.attendance-options label{padding:16px 12px;font-size:12px}label,legend{font-size:12px}.rsvp-form fieldset{margin-bottom:28px}.button{font-size:12px}.guestbook-grid{grid-template-columns:1fr;gap:16px}.blessing-card{min-height:0;padding:24px}.blessing-card>p{margin:5px 0 24px;font-size:13px}.blessing-card footer{font-size:11px}.quote-mark{font-size:47px}.guestbook-note{letter-spacing:.04em;font-size:10px;line-height:1.8}.guestbook-end{margin-top:30px}.footer{min-height:640px;padding:85px 20px 90px}.footer h2{margin:35px 0 25px;font-size:clamp(43px,12vw,67px)}.footer-english{font-size:20px}.footer-names{letter-spacing:.08em;font-size:23px}.footer-date{font-size:19px}.footer-message{font-size:12px}.footer-bottom{font-size:6px}.footer-content>.eyebrow{letter-spacing:.17em;font-size:7px}}@media (max-width:360px){.container{width:calc(100% - 36px)}.hero-chinese{font-size:23px}.hero-chinese span{margin:0 10px}.hero-top{right:75px}.hero-edition{font-size:5px}.attendance-options label{padding:15px 9px;font-size:11px}.schedule-item{grid-template-columns:15px 67px 1fr;gap:10px}.schedule-item time{font-size:27px}.footer-names{font-size:21px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition:none!important;animation:none!important}.will-reveal{opacity:1;transform:none}}.hero{height:100svh;min-height:100svh}@media (max-height:650px){.hero-copy{padding-top:70px;padding-bottom:85px}.hero-names{margin:20px 0;font-size:clamp(32px,9vw,70px)}.hero-names i{margin:3px 0}.hero-chinese{font-size:23px}.hero-rule{margin:18px auto}.hero-date{margin-top:10px;font-size:20px}.hero-top{top:20px}.scroll-cue{gap:8px;bottom:20px}}.hero-photograph .hero-background{width:57%;left:43%}.hero-photograph .hero-wash{background:linear-gradient(90deg,#f7f3ec 0 38%,#f7f3ec14 58%,#1f201914)}.hero-photograph .hero-copy{width:47%;margin-right:auto;padding:100px 20px 110px}.hero-photograph .hero-names{margin:29px 0 24px;font-size:clamp(39px,4.6vw,72px);line-height:1.06}.hero-photograph .hero-chinese{letter-spacing:.12em;font-size:29px}.hero-photograph .hero-side{color:var(--ivory);text-shadow:0 1px 4px #493a30}.hero-photograph .scroll-cue{left:23.5%}.photo-interlude{background:var(--ivory);padding:0 0 50px}.interlude-frame{max-width:1400px;margin:auto}.interlude-frame .photo{aspect-ratio:3/2}.interlude-caption{justify-content:space-between;align-items:center;gap:24px;width:calc(100% - 100px);max-width:1060px;margin:28px auto 0;display:flex}.interlude-caption p{font-family:var(--cn);letter-spacing:.15em;font-size:20px}.interlude-number{letter-spacing:.15em;color:var(--muted);font-size:8px}.footer-photograph{gap:85px;padding:100px 60px 110px}.footer-photograph:before{background:radial-gradient(at 65% 45%,#fff6,#0000 65%)}.footer-photo{z-index:1;border:9px solid #faf6ee;width:min(34vw,350px);position:relative;transform:rotate(-2deg);box-shadow:0 13px 30px #31291e21}.footer-photo .photo{aspect-ratio:2/3}.footer-photograph .footer-content{max-width:570px}.footer-photograph h2{font-size:clamp(45px,6vw,84px)}@media (min-width:721px) and (max-width:1024px){.hero-photograph .hero-copy{width:49%;padding-left:10px;padding-right:10px}.hero-photograph .hero-names{font-size:42px}.hero-photograph .hero-chinese{font-size:25px}.hero-photograph .hero-announcement{letter-spacing:.2em;font-size:7px}.hero-photograph .hero-copy>.eyebrow{letter-spacing:.15em;font-size:8px}.footer-photograph{gap:45px;padding-left:35px;padding-right:35px}.footer-photograph h2{font-size:52px}}@media (max-width:720px){.hero-photograph{color:#fff9ed}.hero-photograph .hero-background{width:100%;left:0}.hero-photograph .hero-wash{background:linear-gradient(#17191980,#19191959 38%,#19191908 54%,#19191914 76%,#19191999)}.hero-photograph .hero-copy{z-index:1;width:100%;margin:0;padding:0 18px;position:absolute;top:11%}.hero-photograph .hero-copy>.eyebrow{color:#f5e6ce;letter-spacing:.23em;font-size:7px}.hero-photograph .hero-names{text-shadow:0 1px 12px #1618182e;margin:19px 0 17px;font-size:clamp(33px,10vw,50px);line-height:1.02}.hero-photograph .hero-names i{color:#f2ddba;margin:5px 0;font-size:.4em}.hero-photograph .hero-chinese{letter-spacing:.13em;text-shadow:0 1px 8px #16181833;font-size:27px}.hero-photograph .hero-chinese span{color:#f2ddba}.hero-photograph .hero-rule{background:#dfc9a8;margin:18px auto 15px}.hero-photograph .hero-announcement{letter-spacing:.24em;color:#fff3df;font-size:6px}.hero-photograph .hero-date{color:#fff8eb;margin-top:11px;font-size:21px}.hero-photograph .scroll-cue{color:#fff8eb;left:50%}.hero-photograph .hero-top{color:#fff8eb}.photo-interlude{padding-bottom:35px}.interlude-caption{flex-direction:column;align-items:flex-start;gap:13px;width:calc(100% - 44px);margin-top:23px}.interlude-caption p{font-size:18px}.interlude-number{margin-top:3px;font-size:7px}.footer-photograph{flex-direction:column;gap:45px;padding:70px 20px 90px}.footer-photo{border-width:7px;width:min(84vw,320px)}.footer-photograph h2{font-size:clamp(43px,12vw,65px)}}@media (max-width:720px) and (max-height:650px){.hero-photograph .hero-copy{top:10%}.hero-photograph .hero-names{margin:12px 0;font-size:31px}.hero-photograph .hero-names i{margin:1px 0}.hero-photograph .hero-chinese{font-size:23px}.hero-photograph .hero-rule{margin:12px auto}.hero-photograph .hero-date{margin-top:8px;font-size:18px}}