@font-face{font-family:Breathing;src:url(/static/generated/fonts/sbft_Breathing_QNOJbjmWvAoqCFe-TKC_1w.9b230341c950.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+5A,U+61,U+67,U+68,U+69,U+6D,U+6E,U+7A}@font-face{font-family:Breathing;src:url(/static/generated/fonts/sbft_Breathing_WM1mD_WXboLJ3xjxqIJp0Q.78f84d04873a.woff2) format("woff2");font-display:swap;unicode-range:U+4C,U+69}@font-face{font-family:FZRUISYJW;src:url(/static/generated/fonts/sbft_FZRUISYJW_D8li4oKtWX_psDA5cotTQQ.7aac9f1c31d3.woff2) format("woff2");font-display:swap;unicode-range:U+4E00,U+4E07,U+4E09,U+4EBA,U+5174,U+591A,U+5929,U+5F88,U+6709,U+751F,U+7684,U+8FD9,U+9AD8}@font-face{font-family:FZRUISYJW;src:url(/static/generated/fonts/sbft_FZRUISYJW_OB4ZZevqp0-IikJBbnqwhA.c573779d5c9b.woff2) format("woff2");font-display:swap;unicode-range:U+4F60}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_iDMAy0Pze7H2Rech2z4vgg.bc5f987f6e8b.woff2) format("woff2");font-display:swap;unicode-range:U+793C}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_ztOW58sdytD4rb65fz0CiQ.7d81432434b9.woff2) format("woff2");font-display:swap;unicode-range:U+5A5A}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_PqbZ5ZzUPEFVNl403vlfRQ.5fe72125be31.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+4F60,U+60F3,U+624B,U+7275,U+7684,U+7740}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_6p6K6L97iEyGVHPpX2BCNQ.41dd7d652e69.woff2) format("woff2");font-display:swap;unicode-range:U+4E00,U+4EBA,U+5728,U+573A,U+5947,U+60C5,U+6765,U+6C79,U+6D8C,U+6F6E,U+7231,U+7684,U+9047,U+91CC}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_CvWUojaqrBg2XuXupXZC0w.f4ef886d3f5c.woff2) format("woff2");font-display:swap;unicode-range:U+5C0F,U+5E78,U+6700,U+6D3B,U+751F,U+7684,U+786E}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_J_h-7myrwNhPWx_GDLevqw.d5bc14717539.woff2) format("woff2");font-display:swap;unicode-range:U+4F60,U+662F}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_6GDclcUsl0MnSOIqwCbPHg.403854f4796b.woff2) format("woff2");font-display:swap;unicode-range:U+4EEC,U+5E78,U+6211,U+7684,U+798F,U+89C1,U+8BC1}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_pH_ZhffSyYMnESe6MOgn7A.a3757d46155c.woff2) format("woff2");font-display:swap;unicode-range:U+3001,U+4E00,U+4E45,U+4E50,U+4F1A,U+4F46,U+4F60,U+5149,U+5306,U+5730,U+5C3D,U+5F88,U+5FD9,U+5FEB,U+6162,U+6211,U+65E0,U+65F6,U+662F,U+6F2B,U+7231,U+751F,U+7684,U+77ED,U+7ED9,U+7F13,U+957F,U+FF0C}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_FsTg67R0TTjCLWfj0pgmPg.a73bdfda0b33.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+610F,U+7231,U+FF08,U+FF09}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_Imlg6TDLY231aN8QUr1JKA.92fd0d99f293.woff2) format("woff2");font-display:swap;unicode-range:U+4F60,U+5230,U+9047}@font-face{font-family:FZRUISYJW;src:url(/static/generated/fonts/sbft_FZRUISYJW_K8cll_y0pA8mytd3CbX9Sg.ebc6288c2303.woff2) format("woff2");font-display:swap;unicode-range:U+4E13,U+4E3A,U+4EEC,U+6211,U+6765,U+800C}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_BZEBymQj57ParQ24BJlokw.e9bea8117232.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+28,U+56CD,U+FF09}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_cXIYTU7LIgJ4GPj9MpjwJw.931f4c91b605.woff2) format("woff2");font-display:swap;unicode-range:U+4E86,U+4F60,U+591A,U+5C0F,U+5C11,U+5E78,U+6211,U+662F,U+6700,U+6709,U+6C38,U+6C89,U+6D3B,U+6D6A,U+6DC0,U+6F2B,U+751C,U+751F,U+753B,U+7684,U+786E,U+871C,U+8BA9,U+8FDC,U+9762}@font-face{font-family:GreatDevotionDemoRegular;src:url(/static/generated/fonts/sbft_GreatDevotionDemoRegular_EM-pR8n6Ik4EYbAGIL2zng.efeb7cd6b458.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+57,U+61,U+64,U+65,U+67,U+69,U+6E,U+79}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_3M6jmPaV-V24wNCQjkV6IA.df2df34942a8.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+7C,U+60C5,U+6D6A,U+6F2B,U+7231,U+7AE5,U+8BDD}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_7xDrFbtIb27dmz0dGLa8hw.6fd00e52f9bb.woff2) format("woff2");font-display:swap;unicode-range:U+4E34,U+5019,U+559C,U+5907,U+606D,U+656C,U+8385,U+914C}@font-face{font-family:FZS3K--GBK1-0;src:url(/static/generated/fonts/sbft_FZS3K--GBK1-0_9uCvg8M5gx7zSwjrPQnI_A.263d4cf887de.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+2D,U+30,U+31,U+32,U+34,U+35,U+36,U+38,U+3A,U+4E00,U+4E01,U+4E03,U+4E09,U+4E11,U+4E19,U+4E59,U+4E5D,U+4E8C,U+4E94,U+4EA5,U+5154,U+516B,U+516D,U+519C,U+51AC,U+5206,U+521D,U+5341,U+5345,U+5348,U+536F,U+5386,U+53CC,U+5468,U+56DB,U+58EC,U+5904,U+590F,U+5927,U+5929,U+5973,U+5B50,U+5BC5,U+5BD2,U+5C04,U+5C0F,U+5DE8,U+5DF1,U+5DF3,U+5E74,U+5E9A,U+5EA7,U+5EFF,U+60CA,U+620A,U+620C,U+624B,U+65E5,U+65F6,U+660E,U+661F,U+6625,U+6691,U+6708,U+671F,U+672A,U+6B63,U+6C34,U+6E05,U+6EE1,U+725B,U+72D7,U+72EE,U+732A,U+7334,U+74F6,U+7532,U+7533,U+7678,U+767D,U+79CB,U+79CD,U+79D2,U+79E4,U+7ACB,U+7F8A,U+7FAF,U+814A,U+81F3,U+8292,U+864E,U+86C7,U+86F0,U+874E,U+87F9,U+8C37,U+8F9B,U+8FB0,U+9149,U+91D1,U+95F0,U+964D,U+96E8,U+96EA,U+971C,U+9732,U+9A6C,U+9B54,U+9C7C,U+9E21,U+9F20,U+9F99,U+FF1A}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_DoXzgh8ijaN5NAhU0TIeNw.29689f94c41d.woff2) format("woff2");font-display:swap;unicode-range:U+58A8,U+5BBE,U+6CC9,U+7389,U+9633,U+9986}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_vqkeVx8d3vWdi9vB59jD-Q.8cda693256e2.woff2) format("woff2");font-display:swap;unicode-range:U+540D,U+59D3}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_lE3LB89duHoiOqF5MV_LCA.a68c744aca83.woff2) format("woff2");font-display:swap;unicode-range:U+4EBA,U+5BB4,U+6570,U+8D74}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_GnVZe70D3muIIf9IyDhDmA.ea2376eeba33.woff2) format("woff2");font-display:swap;unicode-range:U+4EA4,U+63D0}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_3dmUwW7WO3skNZQzRQeQYQ.fcea8ba7965a.woff2) format("woff2");font-display:swap;unicode-range:U+3A,U+65B0,U+90CE}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_DmqtguhFBR2ph8wds_WkFw.1f6ee5c11380.woff2) format("woff2");font-display:swap;unicode-range:U+5A18,U+65B0,U+FF1A}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_amH5PKPBD-w7mmUM-YYyrA.dd3bac8127cd.woff2) format("woff2");font-display:swap;unicode-range:U+738B,U+7426}@font-face{font-family:FZXSSK;src:url(/static/generated/fonts/sbft_FZXSSK_QzCYqypOKlDDa6CiB9d3_g.8cc4a9f0178a.woff2) format("woff2");font-display:swap;unicode-range:U+4E91,U+674E}@font-face{font-family:FZBYKSK;src:url(/static/generated/fonts/sbft_FZBYKSK_cvfanz39lZCJ_fh3KwKY6Q.33b0877db96a.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+60DC,U+73CD,U+FF08,U+FF09}@font-face{font-family:FELIXTI;src:url(/static/generated/fonts/sbft_FELIXTI_EvLY0-ZYgYfnbR1YdBlQSw.1a2888e0b185.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+2E,U+30,U+31,U+32,U+35,U+44,U+62,U+63,U+65,U+6D,U+6E,U+6F}@font-face{font-family:FELIXTI;src:url(/static/generated/fonts/sbft_FELIXTI_IDA8po12Ksn7AtAOdtqGXg.4037e2b9a3de.woff2) format("woff2");font-display:swap;unicode-range:U+20,U+45,U+4C,U+4D,U+4F,U+52,U+56,U+59}@font-face{font-family:FELIXTI;src:url(/static/generated/fonts/sbft_FELIXTI_Uywl_hCefC8KBYRnCsDC-Q.647cfd1be841.woff2) format("woff2");font-display:swap;unicode-range:U+43,U+44,U+45,U+48,U+4C,U+53,U+55}@font-face{font-family:ClassicoBold;src:url(/static/generated/fonts/ClassicoBold.8cf6a306d238.woff2) format("woff2");font-display:swap}@font-face{font-family:ClassicoRegular;src:url(/static/generated/fonts/ClassicoRegular.a6d10f79bfcc.woff2) format("woff2");font-display:swap}:root{color-scheme:light;--ink:#2c241f;--red:#b23a40;--paper:#f7f7f4;--serif:"FZBYKSK","Songti SC","STSong",serif;--english:"ClassicoRegular",Georgia,serif;--display:"ClassicoBold",Georgia,serif;--hand:"Breathing","Brush Script MT",cursive;--ui:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;--page-width:487px}*{box-sizing:border-box;letter-spacing:0}html{scroll-behavior:smooth;background:#e9e9e7;scrollbar-gutter:stable}body{margin:0;color:var(--ink);font-family:var(--serif);font-size:16px;line-height:1.6;-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--red);outline-offset:4px}button{border:0;background:none}a{color:inherit;text-decoration:none}p,h1,h2,h3,figure{margin:0}h1,h2,h3,strong{font-weight:400}h2{font-size:24px}img{max-width:100%;display:block}figure img{width:100%;height:auto}svg{width:24px;height:24px;flex-shrink:0;stroke-width:1.8}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.invitation-page{width:100%;max-width:var(--page-width);margin:auto;background:var(--paper) url(/static/reference/paper.webp) center top/100% auto repeat-y;overflow:hidden;position:relative;box-shadow:0 0 35px #00000008}[data-copy]{white-space:pre-line;overflow-wrap:anywhere}[data-bind]{overflow-wrap:anywhere}.english,.micro-english{font-family:var(--english)}.micro-english{font-size:9px;line-height:1.25}.red-heart{color:#dc3b4b;fill:#dc3b4b;width:17px;height:17px}.cover{position:relative;aspect-ratio:487/835;color:#fff;isolation:isolate;overflow:hidden}.cover__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% 50%;z-index:-2}.cover__seal{position:absolute;top:-2%;left:33.7%;width:32.9%;height:32%;object-fit:contain}.cover__names{position:absolute;top:11%;left:12%;right:8%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;text-align:center;font-family:Brush Script MT,Segoe Script,Apple Chancery,cursive;font-size:27px;line-height:1.5;gap:6%}.cover__names span{transform:rotate(-7deg)}.cover__names span:last-child{padding-top:25px}.cover__english{position:absolute;top:22.5%;left:6%;right:6%;text-align:center;font-style:italic;font-size:10px}.cover__title{position:absolute;top:64%;left:4%;right:4%;font-family:var(--english);font-size:32px;line-height:1.2;font-style:italic;text-align:center}.cover__invitation{position:absolute;top:71%;left:10%;right:10%;text-align:center;font-family:"FZRUISYJW",var(--serif);font-size:18px;line-height:1.7;text-shadow:0 1px 4px #0002}.cover__invitation strong{display:block;font-size:48px;line-height:1.45;margin:1% 0}.cover__footnote{position:absolute;bottom:1%;left:5%;right:5%;text-align:center;font-size:10px;font-style:italic}.masthead{padding-top:65px;text-align:center}.love-label{display:inline-block;background:#050505;color:#fff;font-family:var(--display);font-size:15px;line-height:23px;padding:0 12px}.masthead>h2{font-family:var(--display);font-size:39px;line-height:1.25;margin:0 0 10px}.masthead__year{font-family:var(--ui);font-size:16px}.masthead__photo{width:56.5%;margin:35px auto 16px}.couple-names{display:grid;grid-template-columns:1fr 41px 1fr;gap:8%;align-items:center;width:84%;margin:0 auto;font-family:"FZXSSK",var(--serif)}.couple-names p{font-size:16px}.couple-names strong{font-size:23px;display:block;margin-top:8px;line-height:1.5}.couple-names img{width:100%;height:68px;object-fit:contain}.chapter-heading{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;gap:10px;width:100%;padding:0 4px}.chapter-heading h2{font-size:39px;line-height:1.4}.chapter-heading small{font:12px/1.2 var(--english)}.masthead>.chapter-heading{margin-top:50px;margin-bottom:20px}.photo-section{position:relative}.forever-portrait{color:var(--ink)}.forever-portrait>figure:first-child{width:100%}.encounter{text-align:center;padding:30px 7% 96px}.encounter__heading{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;min-height:100px}.encounter__heading>span{font-size:78px;line-height:1.25}.encounter__heading small{font:16px/1.2 var(--english);padding-bottom:18px}.encounter__hands{font-size:21px;position:relative;margin-top:-32px;line-height:1.5;display:inline-block;padding:0 4px}.encounter__lines{margin:40px 0 15px;font-size:16px;line-height:1.5}.encounter__lines p:nth-child(2n){margin:13px 0 18px}.three-dots{font-size:13px;display:inline-block;line-height:1;transform:scaleX(1.5)}.moments{border-top:1px solid #72716d;position:relative;padding-top:46px}.moments__heading{font-size:17px;text-align:right;padding-right:5%;display:flex;justify-content:flex-end;align-items:center;gap:10px}.moments__heading span:first-child{font-size:16px}.moments__collage{position:relative;margin-top:96px;aspect-ratio:487/545}.moments__seaside{position:absolute;left:15.2%;top:0;width:41.4%}.moments__red{position:absolute;right:12.5%;top:43%;width:41.5%}.moments__vertical{position:absolute;right:7.5%;top:3%;writing-mode:vertical-rl;white-space:normal;font-size:9px}.moments__footnote{position:absolute;left:15.2%;right:3%;top:81%;font-size:7px;line-height:1.4;z-index:1}.witness{position:relative;display:grid;grid-template-columns:44% 44%;column-gap:1.5%;padding-top:7px}.witness__words{grid-column:1;text-align:center;background:#f7f1e4;margin-top:70px;padding-top:22px;align-self:start}.witness__words h2{font-size:17px}.witness__words .red-heart{display:block;margin:6px auto 0}.vertical-rule{display:block;width:1px;height:97px;background:#aaa99b;margin:41px auto 24px}.witness__words>.micro-english{background:var(--paper);padding:25px 0 36px}.witness__photos{grid-column:2;grid-row:1}.witness__photos figure+figure{margin-top:18px}.witness__portrait{width:74%;grid-column:1/3;margin-top:-60px;z-index:1}.vows{text-align:center;padding-top:56px;position:relative}.vows>p:first-child{font-size:16px}.vows>h2{font-size:20px;margin:3px 0 24px}.vows__body{font-size:16px;line-height:1.85;margin:0 14% 60px}.vows__meet{margin:0 0 17px;font-size:16px}.vows__footnote{position:absolute;bottom:73px;left:26%;width:45%;color:#fff;font-size:8px}.rule-caption{display:flex;align-items:center;gap:22px;font:8px/1.5 var(--english);opacity:.45;margin-top:9px;white-space:nowrap}.rule-caption hr{border:0;border-top:1px solid;flex:1;margin:0}.forever-story{padding-top:81px;color:#5d5f5d}.forever-story__first{display:grid;grid-template-columns:42% 52%;gap:2.5%;padding:0 3.6%}.forever-story__words h2{font:35px/1.2 var(--display);position:relative;z-index:1;margin-bottom:26px;overflow-wrap:normal}.forever-story__words>p{font:16px/2 "FZXSSK",var(--serif)}.forever-story__words>span{display:block;margin-top:12px;color:#d22e2e;font-family:"FZXSSK",var(--serif);font-size:20px}.forever-story__first>figure{padding-top:22px}.golden-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:58px;padding:16px 4% 12px;background:#f3f2ed}.golden-pair__words{grid-column:1/-1;font-size:16px;line-height:1.5;text-align:left;white-space:normal}.golden-pair__wide{grid-column:1/-1}.golden-pair figure{min-width:0;align-self:start}.golden-pair figure img{height:auto;aspect-ratio:2/3;object-fit:contain}.golden-pair .golden-pair__wide img{aspect-ratio:3/2}.golden-pair__signature{grid-column:1/-1;margin-top:8px;font-family:"GreatDevotionDemoRegular",var(--hand);font-size:65px;color:#d22e2e;line-height:1.4;white-space:nowrap}.date-section{text-align:center;padding:0 0 20px}.calendar{width:79%;margin:0 auto;background:#fff;padding:25px 7% 26px;color:#a53c51;font-family:var(--ui)}.calendar__heading{display:flex;align-items:center;justify-content:space-around;padding:0 0 22px}.calendar__heading strong:first-child{font-size:27px;font-weight:600}.calendar__heading strong:last-child{font-size:70px;font-weight:600;line-height:1.2}.calendar__weekdays,.calendar__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center}.calendar__weekdays{border-radius:24px;background:#a53c51;color:#fff;padding:11px 0;font-size:12px}.calendar__days{row-gap:6px;margin-top:8px}.calendar__days>span{display:grid;place-items:center;aspect-ratio:1;font-size:12px;position:relative;isolation:isolate}.calendar__days .is-wedding{color:#fff;font-weight:600}.calendar__days .is-wedding svg{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);color:#a53c51;fill:#a53c51;z-index:-1;stroke-width:0;transform:scale(1.25)}.date-section__romance{font-size:15px;margin-top:25px}.date-section__footnote{font-size:8px;max-width:55%;margin:9px auto 0}.countdown{display:flex;justify-content:center;gap:20px;margin:36px auto 0;font-family:var(--ui);color:#5d5f5d}.countdown div{width:52px}.countdown strong{font-family:var(--english);font-size:26px;font-variant-numeric:tabular-nums;display:block;line-height:1.1}.countdown span{font-size:12px}.banquet{position:relative;text-align:center;padding:12px 0 105px}.banquet__heading{line-height:1.5;margin-bottom:10px}.banquet__heading h2{font-family:"FZXSSK",var(--serif);font-size:35px;line-height:1.6}.banquet__heading p{font-size:12px;color:#d22e2e;margin:2px 0}.map-preview{display:block;width:53.4%;margin:15px auto 12px;padding:0}.map-preview img{width:100%;height:auto;aspect-ratio:260/162;object-fit:cover}.map-attribution{display:block;font-family:var(--serif);font-size:9px;line-height:1.5;margin-top:3px;color:#666}.banquet__date,.banquet__lunar,.venue-name{font-family:"FZXSSK",var(--serif);font-size:19px;line-height:1.65}.venue-name{padding:8px 12px;max-width:90%}.inline-rsvp{position:relative;width:51%;margin:43px auto 0;z-index:1}.inline-rsvp input{border:1px solid #777;border-radius:0;background:#fff;font:19px/1.5 var(--serif);width:100%;height:55px;padding:9px 14px;margin-bottom:14px}.inline-rsvp input::placeholder{color:#555}.inline-rsvp input:invalid:not(:placeholder-shown){border-color:var(--red)}.primary-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:11px 16px;background:#bb3935;color:#fff;border:0;border-radius:4px;text-align:center;line-height:1.5;font-size:17px;transition:background .2s}.primary-button:hover{background:#a62e2b}.form-status{min-height:24px;font:13px/1.5 var(--ui);padding-top:8px;overflow-wrap:anywhere;color:#437855}.form-status.is-error{color:#a93039}.banquet__seal{position:absolute;bottom:-35px;right:4%;width:95px;transform:rotate(10deg)}.gift-section{position:relative;background:#fff;padding:25px 25px 34px;border-radius:8px 8px 0 0;font-family:var(--ui)}.gift-section h2{font-size:21px;font-weight:600}.gift-section__subtitle{font-size:12px;color:#888;margin:4px 0 22px}.gift-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px 8px;margin:14px 0 24px}.gift-tile{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;border-radius:6px;padding:7px 2px;min-width:0;border:1px solid transparent;transition:background .2s}.gift-tile img{width:100%;height:auto;aspect-ratio:300/214;object-fit:contain}.gift-tile span{font:12px/1.4 var(--ui);overflow-wrap:anywhere}.gift-tile[aria-pressed=true]{background:#fff1f2;border-color:#e9a9b0}.gift-tile:hover{background:#fff4f5}footer{padding:16px 30px 85px;text-align:center;font-size:13px;background:#fff;color:#999}footer .icon-button{margin:12px auto 0}.floating-tools{position:fixed;z-index:10;right:max(12px,calc((100% - var(--page-width))/2 + 12px));bottom:max(52px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}.floating-button{width:49px;height:49px;border-radius:50%;background:#45464280;backdrop-filter:blur(2px);color:#fff;padding:0;display:flex;justify-content:center;align-items:center;flex-shrink:0;transition:background .2s,opacity .2s}.floating-button:hover{background:#454642b0}.floating-button svg{width:25px;height:25px}.floating-button img{width:34px;height:34px;object-fit:contain}.like-button{height:70px;border-radius:25px;flex-direction:column;gap:0;font-family:var(--ui)}.like-button span{font-size:13px;line-height:1.4}.like-button.is-liked{color:#ffe1e3;background:#a3334999}.music-control{position:fixed;z-index:10;right:max(12px,calc((100% - var(--page-width))/2 + 12px));top:13px;display:flex;flex-direction:row-reverse;align-items:center}.music-control .floating-button{width:54px;height:54px}.music-control>span{font:16px/1.4 var(--ui);color:#fff;background:#4448;padding:3px 10px;border-radius:5px;margin-right:-1px}.music-control.is-playing .floating-button svg{animation:music-spin 8s linear infinite}.quick-gifts{position:fixed;left:max(12px,calc((100% - var(--page-width))/2 + 12px));bottom:max(52px,env(safe-area-inset-bottom));right:max(82px,calc((100% - var(--page-width))/2 + 82px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;z-index:9;transition:opacity .25s,transform .25s}.quick-gift{height:47px;border-radius:30px;background:#45464280;backdrop-filter:blur(2px);color:#fff;padding:4px 5px;display:flex;align-items:center;justify-content:center;min-width:0;gap:1px}.quick-gift img{width:37px;height:37px;object-fit:contain;flex-shrink:0}.quick-gift span{font:14px/1.2 var(--ui);white-space:nowrap}.blessing-stream{position:fixed;z-index:8;left:max(14px,calc((100% - var(--page-width))/2 + 14px));bottom:111px;max-width:calc(min(100%,487px) - 92px);pointer-events:none}.stream-message{font:12px/1.5 var(--ui);background:#34343073;color:#fff;border-radius:20px;display:table;max-width:100%;padding:5px 12px;margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.is-form-visible .quick-gifts,body.is-form-visible .blessing-stream,body.modal-open .quick-gifts,body.modal-open .blessing-stream{opacity:0;pointer-events:none;transform:translateY(10px)}body.modal-open{overflow:hidden}body.is-gift-visible .floating-tools{visibility:hidden}.icon-button{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;padding:0}.icon-button:hover{background:#00000008}dialog{padding:0;border:0;color:var(--ink);font-family:var(--ui);max-height:88dvh;overflow:auto;overscroll-behavior:contain}dialog::backdrop{background:#0008;backdrop-filter:blur(1px)}dialog[open]{animation:dialog-in .22s ease both}.sheet{position:fixed;top:auto;bottom:0;margin:0 auto;width:100%;max-width:var(--page-width);background:#fff;border-radius:8px 8px 0 0;padding:20px 24px max(24px,env(safe-area-inset-bottom))}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:15px}.dialog-header h2{font-size:21px;font-weight:600}.sheet form{margin:16px 0 0}.sheet input,.sheet textarea{width:100%;border:1px solid #e4dfe0;background:#fbf8f9;border-radius:4px;padding:11px 12px;font-size:16px;line-height:1.5;margin-bottom:12px}.sheet textarea{resize:vertical;min-height:85px}.sheet .primary-button{font-size:16px;background:#bb3947}.dialog-close{position:absolute;right:10px;top:10px;background:#ffffffb3;z-index:2}.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:10px 0 25px}.menu-grid button{display:flex;flex-direction:column;align-items:center;gap:9px;font-size:14px}.menu-grid svg{width:31px;height:31px;color:#b85163}.menu-grid button:first-child svg{color:#cf8753}.menu-grid button:last-child svg{color:#649ca4}.playback-setting{display:flex;justify-content:space-between;align-items:center;padding:17px 0 6px;border-top:1px solid #eee;font-size:15px}.playback-setting input{appearance:none;margin:0;width:44px;height:26px;background:#ddd;border-radius:20px;position:relative;padding:0;cursor:pointer}.playback-setting input:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;background:#fff;top:2px;left:2px;box-shadow:0 1px 3px #0002;transition:transform .2s}.playback-setting input:checked{background:#b33d4b}.playback-setting input:checked:before{transform:translate(18px)}.rsvp-dialog{position:fixed;margin:auto;width:80%;max-width:390px;overflow:auto;border-radius:8px;background:#fff;max-height:88dvh}.rsvp-dialog__header{width:100%;height:auto;aspect-ratio:624/276;object-fit:cover}.dialog-body{padding:8px 24px 24px}.dialog-body h2{font-size:23px;text-align:center;font-weight:600;margin-bottom:20px}.dialog-body form>label,.dialog-body fieldset legend,.dialog-body #rsvp-count-field>label,.dialog-body #signed-contact>label{display:block;font-size:15px;margin-bottom:7px}.dialog-body input[type=text],.dialog-body input:not([type]),.dialog-body input[type=tel]{width:100%;border:0;background:#fbf0f3;border-radius:6px;height:43px;padding:8px 12px;font-size:16px}.dialog-body fieldset{border:0;padding:0;margin:19px 0;display:flex;gap:18px}.dialog-body fieldset label{display:flex;align-items:center;gap:5px;font-size:15px;white-space:nowrap}.dialog-body input[type=radio]{accent-color:#d96278;width:16px;height:16px;margin:0}.stepper{display:flex;align-items:center;background:#fbf0f3;width:120px;height:40px;border-radius:20px;margin-bottom:24px}.stepper button{width:38px;height:40px;display:grid;place-items:center;color:#cc728b;padding:0}.stepper svg{width:18px;height:18px}.stepper input{border:0;appearance:textfield;-moz-appearance:textfield;background:transparent;width:44px;text-align:center;min-width:0;padding:0;color:#333;font:16px var(--ui)}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.rsvp-dialog .primary-button{border-radius:25px;background:#e95475;font-size:17px;margin-top:15px;box-shadow:0 2px 7px #e9547530}.blessing-list{max-height:29dvh;overflow:auto}.blessing-item{padding:11px 0;border-bottom:1px solid #f0eded;font-size:14px}.blessing-item strong{font-size:13px;color:#b4566a;font-weight:600;display:block}.blessing-item p{overflow-wrap:anywhere;white-space:pre-line}.blessing-empty{font-size:14px;color:#999;padding:18px 0}.map-actions{display:flex;gap:8px;margin:24px 0 6px}.map-actions>*{display:flex;flex:1;flex-direction:column;align-items:center;gap:7px;font-size:13px;color:#a83b48;padding:10px 0}.sheet>h3{font-size:18px;margin:22px 0 9px}.sheet>p{font-size:15px}.privacy-copy{line-height:1.9;padding-bottom:16px}.lightbox{width:min(96%,760px);background:#111;color:#fff;margin:auto;overflow:hidden}.lightbox>img{max-height:80dvh;max-width:100%;object-fit:contain;margin:auto}.lightbox>p{padding:12px;font-size:13px;text-align:center}.lightbox .dialog-close{color:#333}.toast{position:fixed;z-index:100;top:24%;left:50%;transform:translate(-50%);max-width:min(84%,420px);padding:12px 22px;background:#222d;color:#fff;font:14px/1.5 var(--ui);border-radius:6px;text-align:center;pointer-events:none}.reveal{opacity:1;transform:none}.motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(28px)}.motion-ready .reveal[data-motion=left]:not(.is-visible){transform:translate(-35px)}.motion-ready .reveal[data-motion=right]:not(.is-visible){transform:translate(35px)}.motion-ready .reveal[data-motion=expand]:not(.is-visible){transform:none}.motion-ready .reveal[data-motion=expand]>img{clip-path:inset(0);transition:clip-path 1.8s ease}.motion-ready .reveal[data-motion=expand]:not(.is-visible)>img{clip-path:inset(0 50%)}.motion-ready .reveal[data-motion=turn]:not(.is-visible){transform:rotate(-30deg) scale(.8)}.motion-ready .reveal{transition:opacity 1s ease,transform 1.2s cubic-bezier(.2,.65,.3,1)}.motion-ready .reveal.is-visible{opacity:1;transform:none}.noscript{position:fixed;bottom:0;background:#fff;padding:12px;width:100%;text-align:center;font:14px var(--ui);z-index:30}@keyframes music-spin{to{transform:rotate(360deg)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes gift-arrive{0%{opacity:0;transform:scale(.65) translateY(20px)}20%,75%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:translateY(-70px) scale(1.1)}}@media (max-width:430px){.cover__title{font-size:27px}.cover__names{font-size:23px}.cover__invitation{font-size:16px}.cover__invitation strong{font-size:42px}.cover__english,.cover__footnote{font-size:9px}.masthead{padding-top:50px}.masthead>h2{font-size:33px}.masthead__photo{margin-top:27px}.masthead>.chapter-heading{margin-top:36px;margin-bottom:15px}.chapter-heading h2{font-size:32px}.chapter-heading small{font-size:10px}.couple-names strong{font-size:20px}.couple-names p{font-size:14px}.couple-names img{height:55px}.forever-portrait__words h2{font-size:32px}.forever-portrait__words>p:first-child{font-size:14px;margin-bottom:14px}.forever-portrait__words .micro-english{font-size:8px;margin-top:10px}.encounter{padding-bottom:75px;padding-top:24px}.encounter__heading>span{font-size:64px}.encounter__hands{font-size:18px;margin-top:-25px}.encounter__heading{min-height:80px}.encounter__lines{margin-top:33px;font-size:14px}.moments{padding-top:36px}.moments__heading{font-size:15px}.moments__collage{margin-top:77px}.moments__footnote{font-size:6px}.moments__vertical{font-size:8px}.witness__words{margin-top:54px;padding-top:18px}.witness__words h2{font-size:14px}.vertical-rule{height:78px;margin:30px auto 18px}.witness__words>.micro-english{font-size:8px;padding:20px 0 28px}.witness__photos figure+figure{margin-top:14px}.witness__portrait{margin-top:-45px}.vows{padding-top:45px}.vows__body{font-size:14px;margin-bottom:44px}.vows__meet{font-size:14px;margin-bottom:13px}.vows__footnote{font-size:7px;bottom:64px}.forever-story{padding-top:65px}.forever-story__words h2{font-size:29px;margin-bottom:20px}.forever-story__words>p{font-size:14px}.forever-story__words>span{font-size:17px}.golden-pair{margin-top:45px}.golden-pair__signature{font-size:54px}.golden-pair__words{font-size:14px}.blue-portrait__caption{font-size:17px}.editorial-labels{font-size:8px}.calendar{padding-top:18px;padding-bottom:22px}.calendar__heading strong:first-child{font-size:23px}.calendar__heading strong:last-child{font-size:59px}.calendar__heading{padding-bottom:18px}.calendar__weekdays{font-size:11px;padding:8px 0}.calendar__days>span{font-size:11px}.calendar__days{row-gap:4px}.countdown{gap:12px;margin-top:28px}.banquet__heading h2{font-size:30px}.banquet__heading p{font-size:10px}.banquet__date,.banquet__lunar,.venue-name{font-size:16px}.inline-rsvp{margin-top:34px;width:55%}.inline-rsvp input{font-size:16px;height:46px;margin-bottom:12px}.inline-rsvp .primary-button{min-height:44px;font-size:16px}.banquet{padding-bottom:83px}.floating-button{width:42px;height:42px}.floating-tools{gap:9px;right:10px;bottom:38px}.like-button{height:58px}.floating-button svg{width:23px;height:23px}.music-control{right:10px;top:10px}.music-control .floating-button{width:45px;height:45px}.music-control>span{font-size:14px}.quick-gifts{left:10px;right:62px;bottom:38px;gap:5px}.quick-gift{height:41px;padding:4px 3px}.quick-gift img{width:28px;height:28px}.quick-gift span{font-size:12px}.blessing-stream{bottom:89px;left:10px}.gift-section{padding:22px 20px}.gift-tile span{font-size:11px}}@media (max-width:374px){.cover__title{font-size:24px}.cover__names{font-size:21px}.cover__invitation{font-size:14px}.cover__invitation strong{font-size:36px}.masthead>h2{font-size:30px}.chapter-heading h2{font-size:29px}.forever-portrait__words h2{font-size:28px}.forever-story__words h2{font-size:25px}.quick-gift img{width:22px;height:27px}.quick-gift span{font-size:11px}.chapter-heading small{font-size:9px}.dialog-body{padding:6px 18px 20px}.dialog-body fieldset{gap:10px}.gift-grid{gap:8px 4px}.sheet{padding-left:18px;padding-right:18px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.motion-ready .reveal:not(.is-visible){opacity:1;transform:none;clip-path:none}}:root{--page-width:100%;--edge: max(12px, env(safe-area-inset-right));--dock-bottom:max(16px, env(safe-area-inset-bottom))}html{scrollbar-gutter:auto}body{min-width:0}.invitation-page{box-shadow:none;overflow:clip}.cover__names{left:6%;right:6%;gap:12%;font-size:24px}.cover__names span{white-space:nowrap;overflow-wrap:normal}.cover__invitation{left:6%;right:6%}.chapter-heading{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}.couple-names{grid-template-columns:minmax(0,1fr) 41px minmax(0,1fr)}.moments__collage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 24px;column-gap:12px;row-gap:20px;aspect-ratio:auto;margin:48px auto 0;width:86%;max-width:720px;align-items:start}.moments__seaside,.moments__red{position:static;width:100%}.moments__seaside{grid-column:1;grid-row:1}.moments__red{grid-column:2;grid-row:1;margin-top:60%}.moments__vertical{position:static;grid-column:3;grid-row:1;font-size:10px;max-height:100%;overflow-wrap:anywhere}.moments__footnote{position:static;grid-column:1/-1;font-size:10px;line-height:1.6;margin-bottom:28px}.witness,.forever-story__first{min-width:0}.witness>*,.forever-story__first>*{min-width:0}.forever-story__words h2{overflow-wrap:anywhere}.golden-pair{width:100%;max-width:920px;margin-left:auto;margin-right:auto}.golden-pair__signature{white-space:normal;overflow-wrap:anywhere;font-size:54px}.calendar{width:86%;max-width:560px}.countdown{gap:12px;max-width:100%;padding:0 12px}.countdown div{min-width:0;flex:0 1 52px}.map-preview{width:76%;max-width:440px}.inline-rsvp{width:80%;max-width:420px}.inline-rsvp input{min-width:0;font-size:16px}.banquet__date,.banquet__lunar{padding:0 16px}.venue-name{overflow-wrap:anywhere}.gift-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.gift-tile img{max-width:140px}.floating-tools{right:var(--edge);bottom:var(--dock-bottom);gap:8px}.floating-button{width:44px;height:44px}.like-button{height:60px}.music-control{right:var(--edge);top:max(12px,env(safe-area-inset-top))}.music-control .floating-button{width:44px;height:44px}.music-control>span{font-size:12px;padding:3px 6px}.quick-gifts{left:max(12px,env(safe-area-inset-left));right:calc(var(--edge) + 56px);bottom:var(--dock-bottom);width:auto;max-width:400px;gap:6px}.quick-gift{height:44px;min-width:0;padding:4px;gap:2px}.quick-gift img{width:26px;height:26px}.quick-gift span{font-size:11px;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.blessing-stream{left:max(12px,env(safe-area-inset-left));bottom:calc(var(--dock-bottom) + 54px);width:calc(100% - 84px);max-width:360px}body.is-form-visible .floating-tools,body.modal-open .floating-tools,body.modal-open .music-control{visibility:hidden}dialog{max-width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.sheet{width:100%;max-width:560px;max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));padding-bottom:max(20px,env(safe-area-inset-bottom))}.dialog-header{align-items:flex-start}.dialog-header h2{min-width:0;overflow-wrap:anywhere}.dialog-header .icon-button,.dialog-close{flex-shrink:0}.dialog-body fieldset{flex-wrap:wrap;gap:10px 16px}.sheet input,.sheet textarea,.dialog-body input{min-width:0}.rsvp-dialog{width:calc(100% - 32px);max-width:420px;max-height:calc(100dvh - 24px)}.lightbox{width:calc(100% - 24px);max-width:1100px;max-height:calc(100dvh - 24px);overflow:auto}.lightbox>img{width:auto;max-height:calc(100dvh - 100px);object-fit:contain}.map-actions>*{min-width:0;overflow-wrap:anywhere}.gift-burst{left:12px;right:12px;max-width:480px;margin:auto}footer{padding-bottom:100px}@media (max-width:374px){.cover__names{font-size:20px;gap:10%}.cover__title{font-size:23px}.cover__invitation{font-size:14px}.cover__invitation strong{font-size:34px}.cover__english,.cover__footnote{font-size:8px}.chapter-heading{gap:6px;padding:0 8px}.chapter-heading small{font-size:8px}.chapter-heading h2{font-size:26px}.forever-portrait__words h2{font-size:25px}.golden-pair__signature{font-size:44px}.quick-gift{flex-direction:column;gap:0;height:52px;padding:2px}.quick-gift img{width:23px;height:23px}.quick-gift span{font-size:10px}.blessing-stream{bottom:calc(var(--dock-bottom) + 62px)}.gift-section,.sheet{padding-left:16px;padding-right:16px}}@media (min-width:600px){.cover{aspect-ratio:auto;height:850px}.cover__seal{left:38%;width:24%;height:30%}.cover__names{left:20%;right:20%;top:11%;gap:18%;font-size:28px}.cover__english{font-size:12px;top:25%}.cover__title{font-size:38px;top:auto;bottom:30%}.cover__invitation{top:auto;bottom:8%;font-size:20px}.cover__invitation strong{font-size:44px}.cover__footnote{font-size:12px;bottom:2%}.masthead__photo{width:60%;max-width:400px}.couple-names{max-width:500px}.chapter-heading{max-width:620px;margin-left:auto;margin-right:auto}.forever-portrait{width:100%;max-width:620px;margin:0 auto}.encounter{padding-left:12%;padding-right:12%}.encounter__heading,.encounter__lines{max-width:620px;margin-left:auto;margin-right:auto}.moments__heading{justify-content:center;padding:0 24px;font-size:20px}.moments__vertical,.moments__footnote{font-size:12px}.witness{max-width:760px;margin:auto}.witness__words h2{font-size:22px}.witness__words>.micro-english{font-size:12px}.vows__body{font-size:20px}.forever-story__first{max-width:760px;margin:auto}.forever-story__words>p{font-size:20px}.golden-pair__signature{font-size:64px}.date-section__footnote{font-size:12px;max-width:420px;padding:0 20px}.gift-section{padding:36px}.gift-tile span{font-size:14px}.gift-section>.primary-button{max-width:420px;margin:auto}}@media (min-width:768px){:root{--page-width:min(1120px, calc(100vw - 144px) );--edge:max(16px,calc((100vw - var(--page-width))/2 - 60px))}.cover{height:clamp(680px,92svh,880px)}.cover__names{left:18%;right:18%;font-size:28px}.cover__seal{left:40%;width:20%}.cover__invitation{font-size:18px;bottom:8%}.cover__title{bottom:34%;font-size:36px}.cover__english{top:27%}.vows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}.vows>p,.vows>h2,.vows>.chapter-heading,.vows>.rule-caption{grid-column:1/-1}.vows>figure{align-self:start}.vows__footnote{position:static;color:var(--ink);width:auto;margin:16px auto 0;max-width:540px;padding:0 24px;font-size:12px}.rule-caption{padding:0 24px;font-size:10px}.blue-portrait__caption{font-size:26px}.editorial-labels{font-size:12px}.date-section,.banquet{padding-top:40px}.quick-gifts{left:calc((100vw - var(--page-width))/2 + 16px);right:auto;width:min(400px,calc(var(--page-width) - 32px))}.quick-gift span{font-size:13px}.quick-gift img{width:30px;height:30px}.blessing-stream{left:calc((100vw - var(--page-width))/2 + 16px);max-width:360px}.music-control>span{max-width:64px;font-size:11px}.sheet{top:0;bottom:0;margin:auto;height:fit-content;max-height:calc(100dvh - 48px);width:calc(100% - 48px);border-radius:8px}}@media (min-width:1024px){.cover__names{left:24%;right:24%;font-size:32px}.cover__title{font-size:42px}#page-gifts{grid-template-columns:repeat(8,minmax(0,1fr))}}@media (max-height:540px) and (min-width:480px){.floating-tools{flex-direction:row;gap:6px;right:var(--edge)}.floating-button,.like-button{width:42px;height:42px}.like-button{flex-direction:row;gap:2px}.like-button svg{width:20px;height:20px}.quick-gifts,.blessing-stream{display:none}.music-control>span{display:none}.rsvp-dialog__header{display:none}.dialog-body{padding-top:24px}.gift-burst{top:12%}.gift-burst img{width:120px}}.cover__names>.name-entry{transform:none;display:block;padding:0}.cover__names>.name-entry:last-child{padding-top:25px}.cover__names .name-entry>[data-bind]{display:block;padding:0;transform:rotate(-7deg)}.cover-pending .cover__seal,.cover-pending .cover__names{opacity:0}.cover-entering .cover__seal{animation:seal-reveal 1.2s ease both}.cover-entering .name-entry:first-child{animation:name-left 1s .2s cubic-bezier(.2,.65,.3,1) both}.cover-entering .name-entry:last-child{animation:name-right 1s .2s cubic-bezier(.2,.65,.3,1) both}.motion-line{display:block}.text-motion-ready .text-reveal .motion-line{transition:opacity .8s ease,transform .8s ease;transition-delay:calc(var(--line-index,0) * .15s)}.text-motion-ready .text-reveal:not(.text-visible) .motion-line{opacity:0;transform:translateY(16px)}.text-motion-ready [data-name-motion]>div{transition:opacity 1s .2s ease,transform 1s .2s cubic-bezier(.2,.65,.3,1)}.text-motion-ready [data-name-motion]:not(.text-visible)>div:first-child{opacity:0;transform:translate(-45px)}.text-motion-ready [data-name-motion]:not(.text-visible)>div:last-child{opacity:0;transform:translate(45px)}.text-motion-ready [data-name-motion]>img{transition:opacity 1.2s ease}.text-motion-ready [data-name-motion]:not(.text-visible)>img{opacity:0}.cover__invitation{font-size:16px}.cover__invitation strong{font-size:42px}.cover__english{font-size:10px}.cover__footnote{font-size:11px}.encounter__lines{line-height:1.9}.encounter__lines p+p{margin-top:18px}.moments__heading{flex-wrap:wrap;padding:0 6%;justify-content:center;font-size:16px}.moments__collage{margin-bottom:44px}.moments__vertical{font-family:var(--serif);font-size:12px;line-height:1.8;max-height:none}.witness__words{background:transparent}.witness__words h2{font-size:17px;padding:0 8px}.witness__words>p{font:14px/1.9 var(--serif);padding:16px 8px 30px}.vertical-rule{height:48px;margin:22px auto 12px}.witness__portrait{margin-top:20px}.vows>p:first-child{font-family:var(--serif);font-size:18px}.forever-story__words h2{font:26px/1.5 var(--serif);margin-bottom:18px}.forever-story__words>p{font-size:14px;line-height:2}.golden-pair__words{font:18px/1.8 var(--serif);padding:4px 0 10px}.date-section__romance{font-size:17px}.date-section__footnote{font:14px/1.9 var(--serif);max-width:440px;padding:0 28px}footer>p{font-size:14px;line-height:1.9}.gift-effects{position:fixed;inset:0;z-index:70;pointer-events:none;overflow:clip;contain:layout style}body.is-gift-playing .blessing-stream{opacity:0}#gift-confetti{position:absolute;inset:0;width:100%;height:100%}.gift-stage{position:absolute;left:50%;top:30%;width:min(60%,280px);transform:translate(-50%);text-align:center;font-family:var(--ui);isolation:isolate}.gift-stage>img{width:100%;height:auto;aspect-ratio:300/214;object-fit:contain;filter:drop-shadow(0 5px 9px #66284240)}.gift-stage>strong,.gift-sender{display:table;max-width:100%;margin:4px auto;padding:3px 10px;border-radius:4px;background:#fffffff0;color:#932f51;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gift-stage>strong{font-size:22px;line-height:1.5}.gift-sender{font-size:13px;line-height:1.6}.gift-effects:not(.is-reduced) .gift-stage{animation:gift-celebration 3s ease both}.gift-effects[data-mode=history] .gift-stage{left:max(12px,calc((100vw - var(--page-width))/2 + 16px));top:auto;bottom:calc(var(--dock-bottom) + 68px);width:180px;transform:none;text-align:left}.gift-effects[data-mode=history] .gift-stage>img{width:72px;margin:0}.gift-effects[data-mode=history] .gift-stage>strong,.gift-effects[data-mode=history] .gift-sender{font-size:12px;margin:2px 0}.gift-effects[data-mode=history]:not(.is-reduced) .gift-stage{animation:gift-history 2.5s ease both}.gift-heart{position:absolute;width:20px;height:20px;fill:#e35d83;color:#fff;stroke-width:1;left:calc(10% + var(--heart-index) * 18%);top:25%;z-index:-1;animation:gift-heart-rise 2.4s calc(var(--heart-index) * .1s) ease both}.gift-effects[data-mode=history] .gift-heart{width:12px;height:12px}.gift-effects.is-reduced .gift-heart,.gift-effects.is-reduced canvas{display:none}@keyframes seal-reveal{0%{opacity:0}to{opacity:1}}@keyframes name-left{0%{opacity:0;transform:translate(-60px)}to{opacity:1;transform:translate(0)}}@keyframes name-right{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes gift-celebration{0%{opacity:0;transform:translate(-50%,22px) scale(.75)}18%,78%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-35px) scale(1.04)}}@keyframes gift-history{0%{opacity:0;transform:translateY(12px)}20%,80%{opacity:1;transform:none}to{opacity:0;transform:translateY(-16px)}}@keyframes gift-heart-rise{0%{opacity:0;transform:translateY(30px) scale(.6)}25%{opacity:1}to{opacity:0;transform:translateY(-70px) rotate(20deg)}}@media (min-width:600px){.moments__collage{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px}.cover__invitation{font-size:20px}.cover__invitation strong{font-size:44px}.cover__english,.cover__footnote{font-size:12px}.witness__words h2{font-size:22px}.witness__words>p{font-size:18px}.forever-story__words h2{font-size:32px}.forever-story__words>p{font-size:18px}.moments__heading{font-size:20px}.moments__vertical{font-size:16px}}@media (max-width:374px){.cover__invitation{font-size:14px}.cover__invitation strong{font-size:34px}.cover__english{font-size:9px}.cover__footnote{font-size:10px}.forever-story__words h2{font-size:22px}.forever-story__words>p{font-size:12px}.witness__words h2{font-size:15px}.witness__words>p{font-size:13px}}@media (max-height:540px){.gift-stage{top:12%;width:160px}.gift-stage>strong{font-size:17px}.gift-effects[data-mode=history] .gift-stage{bottom:70px}}@media (prefers-reduced-motion:reduce){.cover-pending .cover__seal,.cover-pending .cover__names{opacity:1}.text-motion-ready .text-reveal:not(.text-visible) .motion-line,.text-motion-ready [data-name-motion]:not(.text-visible)>div,.text-motion-ready [data-name-motion]:not(.text-visible)>img{opacity:1;transform:none}.gift-heart,#gift-confetti{display:none}}.love-rain{position:fixed;inset:0;width:100%;height:100%;z-index:6;pointer-events:none}@media (prefers-reduced-motion:reduce){.love-rain{display:none}}:root{--photo-gutter:clamp(20px,4vw,40px)}.forever-portrait,.blue-portrait,.witness,.vows{padding-left:var(--photo-gutter);padding-right:var(--photo-gutter)}.golden-pair{padding-left:max(4%,var(--photo-gutter));padding-right:max(4%,var(--photo-gutter))}.forever-story__first{padding-left:max(3.6%,var(--photo-gutter));padding-right:max(3.6%,var(--photo-gutter))}@media (max-width:600px){.moments__collage{width:calc(100% - var(--photo-gutter)*2)}}:root{--songti:"Songti SC","STSong","Noto Serif CJK SC",serif}.cover__title{letter-spacing:.12em;text-indent:.12em}.masthead>h2{letter-spacing:.08em;text-indent:.08em}.vows>h2{letter-spacing:.22em;text-indent:.22em}.banquet__heading .english,.chapter-heading small{letter-spacing:.16em;text-indent:.16em}.rule-caption{letter-spacing:.14em}.opening__date,.opening__names small{letter-spacing:.12em}.love-label{letter-spacing:.16em;padding:0 calc(12px + .16em) 0 12px}.chapter-heading h2{letter-spacing:.08em}.banquet__heading h2{letter-spacing:.06em}.gift-section h2{letter-spacing:.04em}.couple-names strong{letter-spacing:.06em}.witness__words h2,.forever-story__words h2,.moments__heading{letter-spacing:.04em}.banquet__date,.banquet__lunar,.venue-name{letter-spacing:.02em}@media (min-width:600px){.vows__body{max-width:640px;margin-left:auto;margin-right:auto}.encounter__lines{font-size:18px}.witness__words>p{font-size:17px}.map-attribution{font-size:10px}}.gift-section__subtitle{color:#6b6b6b}footer{color:#757575}.map-attribution{color:#5c5c5c}.encounter__hands,.encounter__lines,.vows__body,.vows__meet,.vows>p:first-child,.witness__words h2,.witness__words>p,.golden-pair__words,footer p{font-family:var(--songti)}.encounter__hands{letter-spacing:.08em;padding:0 .16em 0 4px}.encounter__lines{line-height:2.1;letter-spacing:.1em}.moments__heading span:last-child{letter-spacing:.06em}.witness__words h2{letter-spacing:.1em}.witness__words>p{letter-spacing:.12em;line-height:2}.vows>p:first-child{letter-spacing:.14em}.vows__body{line-height:2.3;letter-spacing:.14em}.vows__meet{letter-spacing:.14em;text-indent:.14em}.forever-story__words>p{letter-spacing:.08em}.golden-pair__words{line-height:2;letter-spacing:.08em}.date-section__romance{letter-spacing:.18em;text-indent:.18em}footer p{letter-spacing:.1em}.cover__invitation,.chapter-heading h2,.moments__heading,.moments__vertical,.forever-story__words h2,.date-section__romance,.date-section__footnote,.gift-section__subtitle{font-family:var(--songti)}.cover__invitation{letter-spacing:.08em;text-indent:.08em}.chapter-heading h2{letter-spacing:.1em}.moments__vertical{letter-spacing:.14em}.forever-story__words h2{letter-spacing:.08em}.date-section__footnote{line-height:1.8;letter-spacing:.04em}.gift-section__subtitle{letter-spacing:.06em}.couple-names,.banquet__heading h2,.banquet__date,.banquet__lunar,.venue-name,.forever-story__words>span{font-family:var(--songti)}.love-glyph{display:inline-block;font-family:"Kaiti SC","STKaiti","KaiTi",var(--songti);font-size:1.32em;line-height:1;color:var(--red);transform:translateY(.05em)}.opening{position:fixed;inset:0;z-index:200;display:grid;place-items:center;color:#fff8ee;overflow:hidden;isolation:isolate}.opening__door{position:absolute;top:0;bottom:0;width:50.5%;overflow:hidden;background:linear-gradient(160deg,#b53444,#a92f3d 45%,#962834);transition:transform .9s cubic-bezier(.7,0,.3,1)}.opening__door:after{content:"";position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,#f6c45366 30%,#f6c453aa 50%,#f6c45366 70%,transparent)}.opening__door--left{left:0;box-shadow:inset -40px 0 60px -40px #5c121c80}.opening__door--left:after{right:0}.opening__door--right{right:0;box-shadow:inset 40px 0 60px -40px #5c121c80}.opening__door--right:after{left:0}.opening__door img{position:absolute;top:50%;height:clamp(180px,38vh,320px);width:auto;filter:brightness(0) invert(1) drop-shadow(0 0 18px #ffd9a066);opacity:.92;animation:opening-seal 1.1s cubic-bezier(.2,.8,.3,1.1) both,opening-seal-glow 2.6s 1.1s ease-in-out infinite}.opening__door--left img{right:0;transform:translate(50%,-50%)}.opening__door--right img{left:0;transform:translate(-50%,-50%)}.opening__hearts{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}.opening__content{position:absolute;left:0;right:0;bottom:11%;z-index:2;text-align:center;font-family:var(--serif);padding:0 24px;transition:opacity .35s ease}.opening__motto{position:absolute;top:15%;left:0;right:0;z-index:2;margin:0;text-align:center;font-family:var(--songti);font-size:clamp(34px,9vw,52px);letter-spacing:.22em;text-indent:.22em;color:#fff8ee;text-shadow:0 2px 24px #5c121c80;transition:opacity .35s ease}.opening__motto span{display:inline-block;animation:opening-motto .7s calc(.25s + var(--i) * .13s) cubic-bezier(.2,.8,.3,1) both}.opening__motto .love-glyph{color:#f6c453;font-size:1.18em;text-shadow:0 0 22px #f6c45388}.opening__names{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:26px;line-height:1.6;animation:opening-words .8s 1s ease both}.opening__names small{font:18px var(--english)}.opening__date{margin-top:22px;font:18px/1.5 var(--english);animation:opening-words .8s 1.15s ease both}.opening__skip{position:absolute;z-index:3;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));min-height:44px;padding:8px 12px;color:inherit;font:14px var(--ui);text-decoration:underline;text-underline-offset:5px}.opening.is-leaving{pointer-events:none}.opening.is-leaving .opening__content,.opening.is-leaving .opening__motto{opacity:0}.opening.is-leaving .opening__hearts{opacity:0;transition:opacity .4s ease}.opening.is-leaving .opening__door--left{transform:translate(-101%)}.opening.is-leaving .opening__door--right{transform:translate(101%)}.intro-active .opening[hidden]{display:grid!important}html.intro-active{overflow:hidden}html.intro-active .floating-tools,html.intro-active .music-control,html.intro-active .quick-gifts,html.intro-active .blessing-stream{visibility:hidden}.responsive-photo{display:contents}.cover{background:#a92f3d}img[data-photo]{background:#efeeeb}img[data-image-state=loading]{opacity:.85}img[data-image-state=ready]{opacity:1;transition:opacity .4s ease}img[data-image-state=error]{opacity:.5}.photo-retry{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#a92f3d;box-shadow:0 2px 8px #0002}figure:has(.photo-retry){position:relative}html:not(.js) img[data-image-src]{display:none}.motion-ready .reveal[data-motion=expand] img{clip-path:inset(0);transition:clip-path 1.3s ease,opacity .4s ease}.motion-ready .reveal[data-motion=expand]:not(.is-visible) img{clip-path:inset(0 50%)}.connection-notice{position:fixed;z-index:90;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));margin:auto;width:fit-content;max-width:calc(100% - 24px);background:#fff;color:#7d303b;padding:8px 12px;font:13px/1.6 var(--ui);box-shadow:0 2px 12px #0002;border-radius:4px}.connection-notice button{font-weight:600;text-decoration:underline;min-height:36px}.low-power .quick-gift,.low-power dialog::backdrop{backdrop-filter:none}.low-power .gift-stage>img{filter:none}.low-power.motion-ready .reveal img{clip-path:none!important}@keyframes opening-seal{0%{opacity:0}to{opacity:.92}}@keyframes opening-seal-glow{0%,to{filter:brightness(0) invert(1) drop-shadow(0 0 14px #ffd9a055)}50%{filter:brightness(0) invert(1) drop-shadow(0 0 30px #ffd9a0cc)}}@keyframes opening-motto{0%{opacity:0;transform:translateY(14px) scale(.92);filter:blur(6px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes opening-words{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-height:460px){.opening__motto{top:7%;font-size:28px}.opening__content{bottom:5%}.opening__door img{height:150px}.opening__date{margin-top:10px}.opening__names{font-size:22px}}@media (prefers-reduced-motion:reduce){.opening{display:none}html.intro-active{overflow:auto}.motion-ready .reveal img{clip-path:none!important}}.invitation-page>section:not(.cover),.invitation-page>footer{content-visibility:auto;contain-intrinsic-size:auto 500px}.masthead{contain-intrinsic-size:auto 680px}.witness{contain-intrinsic-size:auto 850px}.vows{contain-intrinsic-size:auto 880px}.forever-story{contain-intrinsic-size:auto 1090px}.date-section{contain-intrinsic-size:auto 580px}.banquet{contain-intrinsic-size:auto 750px}.blue-portrait{contain-intrinsic-size:auto 230px}.encounter{contain-intrinsic-size:auto 350px}.invitation-page>footer{contain-intrinsic-size:auto 200px}
