@charset "UTF-8";
:root{--paper:#faf6ee;--ink:#343f36;--muted:#73796d;--coral:#c76750;--rose:#e7b9b1;--sage:#8c9a7b;--line:#dcded0;--serif:Georgia,'Times New Roman','Songti SC','STSong',serif;--sans:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:38px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.2' filter='url(%23n)'/%3E%3C/svg%3E")}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--coral);outline-offset:6px}img{display:block;max-width:100%;image-orientation:from-image}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.wrap{width:min(1200px,calc(100% - 104px));margin-inline:auto}.skip-link{position:fixed;top:10px;left:10px;background:var(--paper);padding:10px;transform:translateY(-150%);z-index:100}.skip-link:focus{transform:none}
.site-header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:20px}.brand-mark{font-family:var(--serif);font-size:37px;line-height:1;font-weight:bold;letter-spacing:-4px}.brand-mark>span:first-child{font-style:italic;color:var(--coral);font-size:31px;letter-spacing:-2px}.brand-dot{color:var(--coral)}.brand-caption{font-size:9px;letter-spacing:2px;color:var(--muted);padding-left:20px;border-left:1px solid #ccd0c4}.site-header nav{display:flex;gap:36px;align-items:center;font-size:13px}.site-header nav a{transition:color .2s}.site-header nav a:hover{color:var(--coral)}.nav-letter{border:1px solid #b7c0aa;border-radius:24px;padding:10px 19px}.nav-letter span{margin-left:14px}
.hero{min-height:690px;display:grid;grid-template-columns:1.04fr 1fr;align-items:center;gap:18px;padding-block:65px 85px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:10px}.tiny-flower{font-size:20px;color:var(--coral)}h1{font-family:var(--serif);font-weight:400;font-size:clamp(64px,6.9vw,92px);line-height:1.03;letter-spacing:-4px;margin:30px 0 30px}h1>span{display:block}.second-name{white-space:nowrap}h1 em{font-size:.75em;color:var(--coral);font-weight:400}.title-dot{color:var(--coral)}.hero-chinese{font-size:19px;letter-spacing:1px;margin-bottom:23px;line-height:1.8}.underlined{position:relative;white-space:nowrap}.underlined::after{content:'';position:absolute;bottom:-8px;left:-2px;right:-2px;height:9px;border-top:2px solid var(--coral);border-radius:50%;transform:rotate(-3deg)}.hero-description{font-size:13px;line-height:2.15;color:var(--muted);letter-spacing:.4px}.primary-button{display:inline-flex;align-items:center;gap:32px;border-radius:40px;color:#fffaf2;background:var(--ink);font-size:13px;padding:16px 24px;margin-top:22px;transition:transform .25s,background .25s}.primary-button:hover{background:#51644d;transform:translateY(-3px)}.primary-button svg{width:20px;height:20px;stroke-width:1.4}.hero-footnote{margin-top:28px;display:flex;align-items:center;gap:10px;color:#8b8d7d;font-family:var(--serif);font-size:13px;font-style:italic}.scribble-heart{color:var(--coral);font-size:25px;transform:rotate(-15deg)}
.hero-collage{height:525px;position:relative}.soft-oval{position:absolute;width:90%;height:87%;border-radius:50%;background:#eee6d6;opacity:.55;left:8%;top:7%;transform:rotate(-24deg)}.polaroid{position:absolute;padding:11px 11px 0;background:#fffdf7;box-shadow:2px 10px 27px #4d47351c;transition:transform .4s,box-shadow .4s}.polaroid img{width:100%;height:calc(100% - 54px);object-fit:cover}.polaroid-label{height:54px;display:flex;align-items:center;justify-content:space-between;font-family:var(--serif);font-size:23px;font-style:italic;padding-inline:8px}.polaroid-label>span{font-family:var(--sans);color:var(--coral);font-size:24px}.hero-bo{width:265px;height:345px;left:4%;top:80px;transform:rotate(-9deg);z-index:2}.hero-bo img{object-position:49% 42%}.hero-hui{width:254px;height:348px;right:-2%;top:146px;transform:rotate(9deg);z-index:3}.hero-hui img{object-position:50% 42%}.hero-bo:hover{transform:rotate(-5deg) translateY(-7px);box-shadow:2px 14px 35px #4d473527}.hero-hui:hover{transform:rotate(5deg) translateY(-7px);box-shadow:2px 14px 35px #4d473527}.tape{position:absolute;background:#c2c9b186;width:91px;height:29px;left:33%;top:-14px;transform:rotate(-4deg);clip-path:polygon(2% 5%,96% 0,98% 19%,96% 30%,100% 48%,98% 100%,0 96%,2% 71%,0 49%)}.tape.peach{background:#ecc3b398;transform:rotate(9deg)}.hero-sun{position:absolute;width:86px;height:86px;color:#c69a4f;top:2px;left:40%;transform:rotate(-13deg);stroke-width:1.2;animation:sun-sway 8s ease-in-out infinite}.sun-face{stroke-width:1.2}.handwritten{font-family:var(--serif);font-style:italic}.hello-note{position:absolute;right:3%;top:17px;font-size:21px;color:var(--coral);transform:rotate(9deg)}.note-arrow{position:absolute;right:2%;top:52px;width:87px;height:66px;color:var(--coral);stroke-width:1.1}.round-sticker{position:absolute;background:#b5674f;color:#fff4e8;border:1px dashed #f5d3ab;outline:6px solid #b5674f;width:81px;height:81px;border-radius:50%;z-index:5;top:383px;left:37%;transform:rotate(-14deg);text-align:center;padding-top:10px;font-family:var(--serif);font-size:12px;line-height:1.5}.round-sticker strong{font-size:17px;letter-spacing:2px;display:block;font-weight:400}.round-sticker svg{width:17px;height:17px;stroke-width:1.5}.hero-spark{position:absolute;width:39px;height:39px;color:#8d9b72;right:10%;bottom:0;stroke-width:1.2}.collage-caption{position:absolute;left:6%;bottom:-7px;font-size:12px;color:var(--muted);line-height:1.85;letter-spacing:1px;transform:rotate(-5deg)}
.ribbon-clip{overflow:hidden;padding-block:18px;margin-block:-18px}.ribbon{background:#e9eddf;border-block:1px solid #dce2ce;overflow:hidden;transform:rotate(-1.2deg);margin:0 -1px;padding:21px 0}.ribbon>div{display:flex;justify-content:center;gap:42px;align-items:center;white-space:nowrap}.ribbon span{font-size:11px;letter-spacing:2.3px;color:#667158}.ribbon i{color:#a4825d;font-style:normal;font-size:20px}
.about{padding-block:104px 110px}.section-kicker{display:flex;align-items:center;gap:22px;font-size:9px;letter-spacing:2.1px;color:var(--muted)}.little-line{height:1px;width:62px;background:#c3c9b9}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:45px}.section-heading{position:relative}h2{font-family:var(--serif);font-size:39px;line-height:1.5;font-weight:400;letter-spacing:2px;margin:0}.serif-italic{font-style:italic;color:var(--coral)}.section-heading h2{font-size:46px}.about-flower{color:#a6af8f;position:absolute;left:275px;top:42px;width:72px;height:72px;stroke-width:1.1;transform:rotate(10deg)}.about-copy .intro{font-size:22px;line-height:1.8;letter-spacing:2px;margin:0 0 19px}.pink-underline{box-shadow:inset 0 -.34em #edd2c6}.about-copy>p:not(.intro){color:var(--muted);font-size:13px;line-height:2.1}.name-signatures{display:flex;align-items:center;gap:23px;margin-top:25px;font-family:var(--serif);font-size:23px;font-style:italic}.name-signatures svg{width:22px;height:22px;color:var(--coral);transform:rotate(-9deg)}
.album-section{padding:80px 0 70px;background:#f0ede4;border-block:1px solid #e7e4d9}.album-heading{display:flex;justify-content:space-between;align-items:end;margin:25px 0 45px;gap:25px}.album-heading p{font-size:12px;color:var(--muted);margin-bottom:10px}.small-star{display:inline-block;font-size:39px;line-height:1;color:#bc9d6b;margin-left:16px;vertical-align:middle}.album-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:start}.album-photo{margin:0;background:#fffdf7;padding:15px 15px 0;position:relative;box-shadow:0 3px 9px #7361440a}.album-bo{transform:rotate(-2deg);margin-top:12px}.album-hui{transform:rotate(2deg);margin-top:80px}.photo-button{display:block;position:relative;border:0;padding:0;width:100%;overflow:hidden;background:#e0dfd6}.photo-button img{width:100%;height:490px;object-fit:cover;transition:transform .6s}.album-bo img{object-position:49% 44%}.album-hui img{object-position:50% 43%}.photo-button:hover img{transform:scale(1.035)}.photo-expand{position:absolute;right:17px;bottom:17px;width:37px;height:37px;display:grid;place-items:center;background:#fffcf5e8;border-radius:50%;font-size:22px;color:var(--ink);transition:background .2s}.photo-button:hover .photo-expand{background:#fff}.album-photo figcaption{display:flex;align-items:center;justify-content:space-between;padding:24px 9px 27px;gap:10px}.photo-number{display:block;font-size:9px;color:#8a8c7d;letter-spacing:2px;margin-bottom:7px}.album-photo strong{font-size:24px;font-family:var(--serif);font-weight:400}.album-photo .handwritten{font-size:15px;color:#959782}.album-tape{position:absolute;width:115px;height:34px;background:#c4ccbba3;z-index:2;top:-15px;left:38%;transform:rotate(-7deg)}.album-end{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:60px;color:#7d876f}.album-end>span{height:1px;width:46px;background:#c3c8b8}.album-end svg{width:18px;height:18px;color:var(--coral)}.album-end p{font-size:12px;letter-spacing:1px}
.letter-section{position:relative;padding-block:100px 110px}.letter-paper{position:relative;width:min(770px,100%);margin:auto;padding:63px 50px 25px;text-align:center;background:#fffdf7;box-shadow:0 13px 33px #6d59460b;transform:rotate(-.6deg);background-image:linear-gradient(#e3e5da55 1px,transparent 1px);background-size:100% 35px;background-position:0 139px}.paper-tape{position:absolute;top:-16px;left:calc(50% - 56px);width:112px;height:34px;background:#e6b9a8a3;transform:rotate(3deg)}.letter-paper .eyebrow{justify-content:center;font-size:9px;color:#9c8b70;margin:0 0 27px}.letter-paper h2{font-size:26px;letter-spacing:1.8px;margin-bottom:29px}.letter-paper>p:not(.eyebrow):not(.warmth-status){color:#7b7f70;font-size:13px;line-height:35px;margin:17px 0}.letter-paper strong{font-weight:500;color:var(--ink)}.letter-signature{margin-top:31px;display:grid;gap:8px;font-family:var(--serif);font-style:italic;font-size:22px;color:#956e59}.letter-signature span:first-child{font-size:16px;color:#959782}.send-warmth{display:inline-flex;align-items:center;gap:10px;margin-top:31px;padding:12px 20px;border:1px solid #dfc3b6;border-radius:40px;background:#fbf3e9;font-size:12px;transition:background .2s,transform .2s}.send-warmth svg{width:17px;height:17px;color:var(--coral);stroke-width:1.8}.send-warmth:hover{background:#f5e1d4;transform:translateY(-2px)}.warmth-status{height:20px;margin:13px 0 0;font-size:12px;color:var(--coral);line-height:20px}.letter-doodle{position:absolute;left:1%;top:190px;width:100px;color:#a0aa8b;transform:rotate(-18deg)}.letter-doodle svg{width:100%;stroke-width:1}.letter-heart{fill:#e4b4a0;stroke:none}.letter-spark{position:absolute;width:43px;height:43px;right:3%;bottom:195px;color:#c69a4f;stroke-width:1.1}.site-footer{border-top:1px solid var(--line);padding-block:32px 37px;display:flex;align-items:center;gap:33px}.site-footer p{font-family:var(--serif);font-size:16px;line-height:1.8;margin:0}.site-footer p span{font-family:var(--sans);font-size:10px;color:var(--muted);letter-spacing:.8px}.back-top{margin-left:auto;font-size:12px;color:var(--muted);display:flex;gap:22px;align-items:center}.back-top span{font-size:22px}
#photo-dialog{border:0;background:#fffdf7;box-shadow:0 20px 80px #0004;color:var(--ink);padding:42px 50px 18px;border-radius:8px;width:min(1100px,96vw);max-height:94dvh;overflow:auto}#photo-dialog::backdrop{background:#253024e6;backdrop-filter:blur(6px)}#photo-dialog figure{margin:0}#dialog-photo{margin:auto;max-height:73dvh;width:auto;max-width:100%;object-fit:contain}#dialog-caption{text-align:center;font-family:var(--serif);font-size:23px;margin-top:16px}.dialog-close{position:absolute;right:10px;top:4px;font-size:29px;border:0;background:none;padding:7px 13px}.dialog-prev,.dialog-next{border:0;position:absolute;top:45%;width:39px;height:43px;background:#f8f4e8;border-radius:50%;font-size:23px}.dialog-prev{left:6px}.dialog-next{right:6px}.dialog-tip{text-align:center;font-size:10px;color:var(--muted);letter-spacing:1px;margin:12px 0 0}body.modal-open{overflow:hidden}.heart-shower{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:200}.floating-heart{position:absolute;font-size:25px;color:var(--coral);animation:heart-float 1.8s ease-out forwards;left:var(--x);top:var(--y)}
@keyframes sun-sway{0%,100%{transform:rotate(-13deg)}50%{transform:rotate(9deg)}}@keyframes heart-float{0%{opacity:0;transform:translate(0,0) scale(.4)}15%{opacity:1}100%{opacity:0;transform:translate(var(--dx),-160px) rotate(var(--rot)) scale(1.2)}}
@media(min-width:1500px){.hero{min-height:740px}.hero-collage{transform:scale(1.03)}}
@media(max-width:1100px){.wrap{width:calc(100% - 64px)}h1{font-size:74px}.hero{min-height:625px;gap:0;padding-block:55px 75px}.hero-collage{transform:scale(.85);transform-origin:center right;width:490px;margin-left:-48px}.hero-description{font-size:12px}.hero-chinese{font-size:16px}.about-layout{gap:35px}.about-flower{left:240px}.album-grid{gap:35px}.photo-button img{height:420px}.album-photo .handwritten{font-size:12px}.letter-doodle{left:-10px;width:65px}.letter-spark{right:0;width:30px}}
@media(max-width:800px){.wrap{width:calc(100% - 42px)}.site-header{height:88px}.brand-caption{display:none}.site-header nav{gap:20px;font-size:12px}.nav-letter{padding:8px 13px}.nav-letter span{margin-left:6px}.hero{grid-template-columns:1fr;gap:5px;padding-block:49px 55px;min-height:0}.hero-copy{text-align:center}.hero-copy .eyebrow{justify-content:center;font-size:8px;letter-spacing:1.6px}h1{font-size:clamp(60px,10vw,85px);margin:23px 0 22px;letter-spacing:-3px}.hero-chinese{font-size:17px}.hero-description{font-size:12px;line-height:2}.primary-button{margin-top:15px;padding:14px 22px}.hero-footnote{justify-content:center;margin-top:18px}.hero-collage{width:min(100%,490px);height:520px;transform:scale(.9);transform-origin:top center;margin:20px auto -37px}.hero-bo{left:3%}.hero-hui{right:0}.ribbon{padding:16px 0}.ribbon>div{gap:28px}.about{padding-block:70px}.about-layout{grid-template-columns:.9fr 1fr;gap:25px;margin-top:30px}.section-heading h2{font-size:34px}.about-flower{left:137px;top:98px;width:50px}.about-copy .intro{font-size:18px;letter-spacing:1px}.about-copy>p:not(.intro){font-size:12px}.name-signatures{gap:12px;font-size:18px}.name-signatures svg{width:18px;height:18px}.album-section{padding-block:60px 40px}.album-heading{align-items:start;flex-direction:column;gap:6px;margin-bottom:25px}h2{font-size:30px}.album-heading p{margin:0;font-size:11px}.album-grid{gap:25px}.album-photo{padding:10px 10px 0}.album-hui{margin-top:55px}.photo-button img{height:330px}.album-photo figcaption{padding:17px 3px 20px}.album-photo strong{font-size:22px}.album-photo .handwritten{display:none}.album-end{margin-top:35px}.letter-section{padding-block:70px}.letter-paper{padding:45px 25px 20px}.letter-paper h2{font-size:23px;letter-spacing:.5px}.letter-doodle{display:none}.letter-spark{right:4%;bottom:70px;width:25px}.site-footer{gap:20px}.site-footer .brand-mark{font-size:29px}.site-footer p{font-size:14px}.site-footer p span{font-size:8px;letter-spacing:.2px}.back-top{font-size:11px;gap:10px}}
@media(max-width:480px){.site-header nav{gap:14px;font-size:11px}.brand-mark{font-size:33px}.nav-letter{padding:7px 11px}.hero{padding-top:37px}h1{font-size:65px}.hero-chinese{font-size:14px;letter-spacing:.2px}.hero-description{font-size:11px}.hero-collage{width:calc(100% - 16px);height:414px;transform:none;margin:38px 8px 0}.soft-oval{width:85%;height:70%;left:7%;top:15%;transform:rotate(-12deg)}.hero-bo{width:57%;height:273px;left:1%;top:51px}.hero-hui{width:53%;height:277px;right:0;top:102px}.polaroid{padding:8px 8px 0}.polaroid img{height:calc(100% - 45px)}.polaroid-label{height:45px;font-size:19px;padding-inline:4px}.polaroid-label>span{font-size:20px}.hero-sun{width:63px;height:63px;top:-10px;left:37%}.hello-note{font-size:16px;right:0;top:-4px}.note-arrow{width:65px;height:49px;top:24px;right:0}.tape{width:67px;height:23px;top:-11px}.round-sticker{width:61px;height:61px;outline-width:4px;top:300px;left:37%;font-size:9px;padding-top:7px}.round-sticker strong{font-size:12px;letter-spacing:1.5px}.round-sticker svg{width:13px;height:13px}.collage-caption{font-size:10px;bottom:0;left:4%}.hero-spark{width:28px;height:28px;right:10%;bottom:0}.about-layout{grid-template-columns:1fr;gap:26px}.section-heading h2{font-size:36px}.section-heading h2 br{display:none}.about-flower{left:auto;right:8px;top:-9px;width:52px}.about-copy .intro{font-size:20px}.about-copy>p:not(.intro){font-size:12px}.name-signatures{font-size:23px;gap:20px}.album-grid{grid-template-columns:1fr;gap:30px;padding-inline:7px}.album-hui{margin-top:0}.album-photo{padding:12px 12px 0}.photo-button img{height:400px}.album-bo .photo-button img{height:360px}.album-photo .handwritten{display:block;font-size:13px}.album-photo figcaption{padding:18px 5px 22px}.album-end{gap:10px}.album-end>span{width:22px}.album-end p{font-size:10px;letter-spacing:.3px}.letter-paper{padding-inline:17px}.letter-paper h2{font-size:20px}.letter-paper>p:not(.eyebrow):not(.warmth-status){font-size:12px}.site-footer{flex-wrap:wrap;gap:19px}.site-footer .brand-mark{font-size:32px}.site-footer p{flex:1}.back-top{width:100%;margin:0;justify-content:center;padding-top:13px;border-top:1px dashed var(--line)}#photo-dialog{padding:42px 28px 15px}.dialog-prev,.dialog-next{width:28px;height:37px;font-size:19px}.dialog-prev{left:0}.dialog-next{right:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
