@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;1,400&family=Noto+Serif+TC:wght@400;500&display=swap");:root{--cream:#f7f4ed;--paper:#eee8dc;--ink:#292621;--muted:#766f64;--gold:#aa8551;--line:rgba(117,92,57,.24);--serif-zh:"Noto Serif TC","Songti TC",serif;--serif-en:"Cormorant Garamond",Georgia,serif;--turn-duration:980ms;--turn-easing:cubic-bezier(.22,.61,.36,1)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--cream);color:var(--ink)}body,html{overflow-x:hidden}body{font-family:var(--serif-zh)}a,button{font:inherit}button{color:inherit}img{display:block}:focus-visible{outline:2px solid #d3ae72;outline-offset:4px}.chapter-turning,.chapter-turning body,.entrance-locked,.entrance-locked body,.lightbox-active,.lightbox-active body{overflow:hidden!important}.site-waiting{visibility:hidden}.site-ready{visibility:visible}.wedding-entrance{position:fixed;inset:0;z-index:2000;width:100%;min-height:100svh;height:100dvh;overflow:hidden;perspective:1800px;isolation:isolate;color:#fffaf0;transition:opacity .55s ease,visibility .55s ease}.door-stage,.entrance-background,.entrance-light{position:absolute;inset:0}.entrance-background{background:linear-gradient(145deg,#d9cec0,#8f887f);background-image:linear-gradient(rgba(33,28,23,.18),rgba(33,28,23,.18)),var(--entrance-image);background-size:cover;background-position:var(--entrance-position-desktop);background-repeat:no-repeat}.entrance-light{z-index:4;pointer-events:none;background:radial-gradient(ellipse at center,rgba(255,244,211,.25),transparent 48%);opacity:0;transition:opacity 1.2s ease}.door-stage{z-index:2;display:flex;perspective:1800px}.door-wrapper{position:relative;width:50%;height:100%;transform-style:preserve-3d;transition:transform 1.55s cubic-bezier(.68,0,.22,1);will-change:transform}.door-wrapper--left{transform-origin:left center}.door-wrapper--right{transform-origin:right center}.door-panel{position:absolute;inset:0;overflow:hidden;background:linear-gradient(rgba(15,13,10,var(--door-overlay)),rgba(15,13,10,var(--door-overlay)));backface-visibility:hidden}.door-panel--left{border-right:1px solid rgba(216,181,119,.64)}.door-panel--right{border-left:1px solid rgba(216,181,119,.64)}.wedding-entrance--opening .door-wrapper--left{transform:rotateY(-102deg)}.wedding-entrance--opening .door-wrapper--right{transform:rotateY(102deg)}.wedding-entrance--opening .entrance-light{opacity:1}.wedding-entrance--exiting{opacity:0;visibility:hidden;pointer-events:none}.entrance-content{position:absolute;z-index:6;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5rem 1.5rem;text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.3);transition:opacity .38s ease,transform .38s ease}.wedding-entrance--opening .entrance-content{opacity:0;transform:translateY(-8px);pointer-events:none}.entrance-eyebrow{font:11px/1.2 var(--serif-en);letter-spacing:.4em}.responsive-title{margin:.75rem 0;font:400 clamp(3rem,7vw,7rem)/.92 var(--serif-en);white-space:nowrap;word-break:keep-all;overflow-wrap:normal;font-size:var(--responsive-title-size,clamp(3rem,7vw,7rem))}.entrance-rule{width:44px;height:1px;background:#d8b577;margin:.65rem 0 1rem}.entrance-date{margin:0;font:16px/1.4 var(--serif-en);letter-spacing:.28em}.entrance-subtitle{margin:1rem 0 1.8rem;font:italic 18px/1.5 var(--serif-en)}.entrance-open{min-height:48px;padding:.85rem 1.8rem;border:1px solid rgba(255,248,232,.72);border-radius:999px;background:rgba(33,28,22,.2);color:inherit;letter-spacing:.15em;cursor:pointer;backdrop-filter:blur(7px)}.entrance-skip{top:max(20px,env(safe-area-inset-top));border:0;background:transparent;color:rgba(255,255,255,.78);min-width:44px;min-height:44px;cursor:pointer;font-size:12px;letter-spacing:.1em}.entrance-credit,.entrance-skip{position:absolute;z-index:8;right:max(20px,env(safe-area-inset-right))}.entrance-credit{bottom:max(20px,env(safe-area-inset-bottom));text-align:right;pointer-events:none;padding:.55rem .7rem;border-radius:7px;background:rgba(25,22,19,.12);backdrop-filter:blur(5px);transition:opacity .3s ease;text-shadow:0 1px 8px rgba(0,0,0,.42)}.entrance-credit span,.entrance-credit strong{display:block}.entrance-credit span{opacity:.65;font:10px/1.4 var(--serif-en);letter-spacing:.16em;text-transform:uppercase}.entrance-credit strong{font-size:13px;font-weight:400;color:#f5e7c9}.wedding-entrance--exiting .entrance-credit,.wedding-entrance--opening .entrance-credit{opacity:0}.chapter-reader{position:relative;width:100vw;height:100dvh;min-height:100svh;overflow:hidden;perspective:2200px;background:#e7e0d4;isolation:isolate}.chapter-sheet{position:absolute;inset:0;display:none;overflow:hidden;background:var(--cream);transform-style:preserve-3d;backface-visibility:hidden}.chapter-sheet.is-current,.chapter-sheet.is-from,.chapter-sheet.is-target{display:block}.chapter-sheet.is-current{z-index:2}.chapter-sheet.is-target{z-index:1}.chapter-sheet.is-from{z-index:3;pointer-events:none}.is-turning--next .chapter-sheet.is-from{transform-origin:left center;animation:page-turn-next var(--turn-duration) var(--turn-easing) both;box-shadow:26px 0 60px rgba(40,31,20,.24)}.is-turning--previous .chapter-sheet.is-from{transform-origin:right center;animation:page-turn-previous var(--turn-duration) var(--turn-easing) both;box-shadow:-26px 0 60px rgba(40,31,20,.24)}.chapter-sheet.is-target{animation:page-underlay var(--turn-duration) var(--turn-easing) both}@keyframes page-turn-next{0%{transform:rotateY(0);opacity:1}55%{opacity:.96}to{transform:rotateY(-92deg);opacity:.5}}@keyframes page-turn-previous{0%{transform:rotateY(0);opacity:1}55%{opacity:.96}to{transform:rotateY(92deg);opacity:.5}}@keyframes page-underlay{0%{filter:brightness(.8);transform:scale(.985)}to{filter:brightness(1);transform:scale(1)}}.chapter-page,.ending-page{width:100%;height:100%;background:var(--cream)}.chapter-scroll{width:100%;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:rgba(100,78,48,.25) transparent}.chapter-hero{position:relative;min-height:100svh;height:100dvh;overflow:hidden;background:#b7afa5;isolation:isolate}.chapter-hero-blur{position:absolute;inset:-4%;z-index:-2;filter:blur(24px);transform:scale(1.08);opacity:.7}.chapter-hero-blur img{object-fit:cover}.chapter-hero-image{object-fit:var(--desktop-fit);object-position:var(--desktop-position);z-index:-1}.chapter-hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,16,13,.43),rgba(18,16,13,.1) 46%,transparent 72%),linear-gradient(0deg,rgba(12,11,9,.24),transparent 40%)}.chapter-heading{position:absolute;z-index:2;left:clamp(2rem,7vw,9rem);top:50%;width:min(480px,37vw);color:rgba(255,252,245,.9);transform:translateY(-50%);text-shadow:0 2px 20px rgba(0,0,0,.28)}.chapter-heading>span{display:block;font:11px/1.2 var(--serif-en);letter-spacing:.42em;color:rgba(224,194,141,.9)}.chapter-heading h1{margin:.65rem 0 .25rem;font:400 clamp(3rem,5.4vw,6.8rem)/1.06 var(--serif-zh);letter-spacing:.08em;white-space:nowrap}.chapter-heading>p{margin:0;font:italic 18px/1.4 var(--serif-en);letter-spacing:.2em;color:rgba(255,248,235,.72)}.chapter-intro{margin-top:2rem;padding-top:1.35rem;border-top:1px solid rgba(224,194,141,.46)}.chapter-intro i{display:block;font-style:normal;font-size:clamp(13px,1.1vw,16px);line-height:1.9;letter-spacing:.08em;color:rgba(255,252,245,.72);white-space:nowrap}.chapter-editorial{max-width:1800px;margin:0 auto;padding:clamp(7rem,14vw,15rem) clamp(1.25rem,6vw,8rem);background:linear-gradient(180deg,var(--cream),#f1ece3 48%,var(--cream))}.chapter-photo{display:block;width:min(100%,1240px);margin:0 auto clamp(7rem,15vw,17rem);padding:0;border:0;background:transparent;cursor:zoom-in}.chapter-photo img{width:100%;height:auto;box-shadow:0 22px 60px rgba(57,47,35,.12);transition:transform .3s ease,box-shadow .3s ease,filter .3s ease}.chapter-photo:hover img{transform:scale(1.012);box-shadow:0 30px 75px rgba(57,47,35,.2);filter:brightness(1.02)}.chapter-photo--portrait-left{width:min(64%,820px);margin-left:2%;margin-right:auto}.chapter-photo--portrait-right{width:min(60%,780px);margin-left:auto;margin-right:3%}.chapter-photo--center{width:min(72%,960px)}.chapter-photo--wide{width:min(88%,1420px)}.chapter-photo--full{width:100%}.chapter-photo--pair{width:min(70%,940px);margin-left:8%}.chapter-reveal{opacity:0;transform:translateY(24px);filter:blur(2px);transition:opacity .82s cubic-bezier(.22,1,.36,1) var(--photo-delay,0s),transform .82s cubic-bezier(.22,1,.36,1) var(--photo-delay,0s),filter .82s ease var(--photo-delay,0s)}.chapter-reveal.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}.chapter-heading.chapter-reveal,.chapter-heading.chapter-reveal.is-visible{transform:translateY(-50%)}.chapter-footer{min-height:52vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;padding:5rem 1.5rem 8rem;text-align:center;border-top:1px solid var(--line)}.chapter-footer>p{margin:0;color:var(--muted);letter-spacing:.18em}.chapter-footer button{display:grid;grid-template-columns:auto auto;column-gap:1.6rem;align-items:center;min-width:min(92vw,340px);padding:1.3rem 1.5rem;border:1px solid var(--line);background:rgba(255,255,255,.36);cursor:pointer;transition:background .3s ease,border-color .3s ease}.chapter-footer button small,.chapter-footer button span{text-align:left}.chapter-footer button span{font-size:18px}.chapter-footer button small{grid-column:1;font:10px/1.3 var(--serif-en);letter-spacing:.24em;color:var(--muted)}.chapter-footer button b{grid-column:2;grid-row:1/span 2;font-weight:400;transition:transform .3s ease}.chapter-footer button:hover{background:#eee6d8;border-color:#bd9860}.chapter-footer button:hover b{transform:translateX(8px)}.chapter-side-nav{position:absolute;z-index:8;top:50%;display:flex;align-items:center;gap:.7rem;transform:translateY(-50%);min-height:48px;border:0;background:rgba(247,244,237,.72);color:#4b443a;cursor:pointer;padding:.85rem 1rem;backdrop-filter:blur(8px);opacity:.64;transition:opacity .3s ease,transform .3s ease}.chapter-side-nav:hover{opacity:1}.chapter-side-nav small{font:9px/1 var(--serif-en);letter-spacing:.18em}.chapter-side-nav--previous{left:0}.chapter-side-nav--next{right:0}.chapter-side-nav:disabled{pointer-events:none;opacity:.2}.chapter-indicator{position:absolute;z-index:9;top:max(20px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;gap:.55rem;margin:0;padding:.65rem .9rem;list-style:none;background:rgba(24,20,16,.18);border-radius:999px;backdrop-filter:blur(8px)}.chapter-indicator li{width:22px;height:1px;background:rgba(255,255,255,.35);transition:width .35s ease,background .35s ease}.chapter-indicator li span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.chapter-indicator li.is-active{width:42px;background:#d4ad70}.ending-page{position:relative;overflow:hidden;color:rgba(255,252,245,.92);isolation:isolate}.ending-background{position:absolute;inset:-5%;z-index:-3;filter:blur(30px);transform:scale(1.12)}.ending-background img{object-fit:cover}.ending-image{z-index:-2;object-fit:contain;object-position:50% 50%}.ending-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(8,8,7,.55),rgba(8,8,7,.33) 36%,rgba(8,8,7,.04) 66%,rgba(8,8,7,.3))}.ending-copy{position:absolute;top:clamp(2.5rem,6vh,5rem);left:50%;width:min(92vw,720px);transform:translateX(-50%);text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.36)}.ending-copy>span{font:10px/1.3 var(--serif-en);letter-spacing:.42em;color:#d8b67f}.ending-copy h1{margin:.8rem 0 .7rem;font:400 clamp(1.8rem,3.4vw,3.8rem)/1.18 var(--serif-zh)}.ending-copy h1 i{display:inline;font-style:normal;white-space:nowrap}.ending-copy h1 i:first-child{margin-right:.08em}.ending-copy div{margin:.5rem 0}.ending-copy p{margin:0;font-size:clamp(11px,1.1vw,15px);line-height:1.7;letter-spacing:.06em}.ending-copy small,.ending-copy strong{display:block}.ending-copy strong{margin-top:.75rem;font:italic 26px/1.2 var(--serif-en);color:#e0bd82}.ending-copy small{margin-top:.2rem;font:11px/1.3 var(--serif-en);letter-spacing:.24em}.ending-actions{position:absolute;z-index:2;left:50%;bottom:max(24px,env(safe-area-inset-bottom));display:flex;gap:12px;transform:translateX(-50%)}.ending-actions button{min-width:170px;min-height:58px;border:1px solid rgba(255,245,226,.42);background:rgba(17,15,13,.26);color:#fffaf0;cursor:pointer;backdrop-filter:blur(8px)}.ending-actions small,.ending-actions span{display:block}.ending-actions small{margin-top:.25rem;font:9px/1.2 var(--serif-en);letter-spacing:.18em;opacity:.72}.music-control{position:fixed;z-index:2100;left:max(18px,env(safe-area-inset-left));bottom:max(18px,env(safe-area-inset-bottom))}.music-control button{min-width:44px;min-height:44px;border:1px solid rgba(183,151,103,.4);border-radius:999px;background:rgba(248,246,241,.78);color:#51483d;cursor:pointer;backdrop-filter:blur(8px);font:10px var(--serif-en)}.lightbox{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:clamp(1rem,4vw,4rem);background:rgba(20,18,16,.88);backdrop-filter:blur(16px);color:#fff;animation:lightbox-in .35s ease both}.lightbox--closing{animation:lightbox-out .3s ease both}.lightbox-image{max-width:92vw;max-height:86dvh;width:auto;height:auto;object-fit:contain;animation:image-in .38s ease both}.lightbox-close,.lightbox-nav{position:absolute;z-index:2;border:0;background:rgba(15,13,12,.25);color:#fff;cursor:pointer;min-width:48px;min-height:48px}.lightbox-close{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));font-size:30px}.lightbox-nav{top:50%;transform:translateY(-50%);font-size:36px}.lightbox-nav--prev{left:12px}.lightbox-nav--next{right:12px}.lightbox>p{position:absolute;bottom:max(12px,env(safe-area-inset-bottom));margin:0;font:11px var(--serif-en);letter-spacing:.2em}@keyframes lightbox-in{0%{opacity:0}to{opacity:1}}@keyframes lightbox-out{0%{opacity:1}to{opacity:0}}@keyframes image-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@media (max-width:1023px){.entrance-background{background-position:var(--entrance-position-tablet)}.door-panel--left{background-position:left var(--door-position-tablet)}.door-panel--right{background-position:right var(--door-position-tablet)}.chapter-heading{left:7vw;width:44vw}.chapter-side-nav{display:none}}@media (max-width:767px){:root{--turn-duration:880ms}.entrance-background{background-position:var(--entrance-position-mobile)}.door-panel--left{background-position:left var(--door-position-mobile)}.door-panel--right{background-position:right var(--door-position-mobile)}.entrance-content{padding:5.5rem 1rem 7rem}.responsive-title{font-size:var(--responsive-title-size,clamp(2.5rem,15vw,4.5rem))}.entrance-credit{bottom:max(18px,env(safe-area-inset-bottom));right:max(18px,env(safe-area-inset-right))}.chapter-hero-image{object-fit:var(--mobile-fit);object-position:var(--mobile-position)}.chapter-hero-wash{background:linear-gradient(180deg,rgba(15,13,11,.48),rgba(15,13,11,.08) 48%,rgba(15,13,11,.26))}.chapter-heading{top:max(4.5rem,calc(env(safe-area-inset-top) + 3rem));left:50%;width:min(92vw,540px);text-align:center}.chapter-heading,.chapter-heading.chapter-reveal,.chapter-heading.chapter-reveal.is-visible{transform:translateX(-50%)}.chapter-heading h1{font-size:clamp(2.25rem,11vw,4rem)}.chapter-heading>p{font-size:14px}.chapter-intro{width:max-content;max-width:92vw;margin:1.25rem auto 0;padding-top:1rem}.chapter-intro i{font-size:clamp(11px,3.4vw,14px);line-height:1.75}.chapter-editorial{padding:5rem 16px 8rem}.chapter-photo,.chapter-photo--center,.chapter-photo--full,.chapter-photo--pair,.chapter-photo--portrait-left,.chapter-photo--portrait-right,.chapter-photo--wide{width:100%;margin:0 0 clamp(4.5rem,24vw,8rem)}.chapter-photo img{box-shadow:0 14px 38px rgba(57,47,35,.12)}.chapter-footer{min-height:44vh;padding-bottom:max(6rem,calc(env(safe-area-inset-bottom) + 4rem))}.chapter-indicator{top:max(12px,env(safe-area-inset-top))}.ending-copy{top:max(1.8rem,calc(env(safe-area-inset-top) + 1rem));width:92vw}.ending-copy h1{font-size:clamp(1.65rem,7vw,2.4rem)}.ending-copy h1 i{display:block}.ending-copy p{line-height:1.55}.ending-copy strong{font-size:22px}.ending-actions{width:calc(100% - 32px);gap:8px}.ending-actions button{flex:1;min-width:0;min-height:56px}.lightbox-nav{top:auto;bottom:max(12px,env(safe-area-inset-bottom))}}@media (max-height:720px){.ending-copy{top:max(1rem,env(safe-area-inset-top))}.ending-copy h1{margin:.45rem 0;font-size:clamp(1.45rem,5.8vh,2.4rem)}.ending-copy div{margin:.25rem 0}.ending-copy p{line-height:1.42}.ending-copy strong{margin-top:.4rem}}@media (min-width:2200px){.chapter-editorial{max-width:2200px}.chapter-heading{left:max(9rem,calc((100vw - 2100px) / 2))}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;animation-duration:.22s!important;animation-iteration-count:1!important;transition-duration:.22s!important}.chapter-reveal{transform:none;filter:none}.door-wrapper{transform:none!important}.wedding-entrance--opening{opacity:0;pointer-events:none}}@supports not (backdrop-filter:blur(2px)){.chapter-indicator,.chapter-side-nav,.ending-actions button,.entrance-credit,.entrance-open,.music-control button{background-color:rgba(35,31,27,.72)}}