:root{--swiper-theme-color:#007aff}:host{z-index:1;margin-left:auto;margin-right:auto;display:block;position:relative}.swiper{z-index:1;margin-left:auto;margin-right:auto;padding:0;list-style:none;display:block;position:relative;overflow:hidden}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{z-index:1;width:100%;height:100%;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box;display:flex;position:relative}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate(0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;transition-property:transform;display:block;position:relative}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{scrollbar-width:none;-ms-overflow-style:none;overflow:auto}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{pointer-events:none;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(#0000,#00000080)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(#00000080,#0000)}.swiper-lazy-preloader{z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-top-color:#0000;border-radius:50%;width:42px;height:42px;margin-top:-21px;margin-left:-21px;position:absolute;top:50%;left:50%}:is(.swiper:not(.swiper-watch-progress),.swiper-watch-progress .swiper-slide-visible) .swiper-lazy-preloader{animation:1s linear infinite swiper-preloader-spin}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-creative .swiper-slide{backface-visibility:hidden;transition-property:transform,opacity,height;overflow:hidden}:root{color:#252826;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--paper:#f0f1ed;--paper-raised:#fafbf8;--paper-shadow:#4a534f2e;--ink:#252826;--ink-soft:#676f6b;--accent:#526d65;--line:#d3d8d3;--error:#8a403b;--radius:3px;--serif:"Songti SC", STSong, SimSun, serif;background:#f0f1ed;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*,:before,:after{box-sizing:border-box;letter-spacing:0}html{background:var(--paper);min-width:320px;min-height:100%}body{background:var(--paper);min-width:320px;min-height:100dvh;color:var(--ink);margin:0;overflow:hidden}button,input,textarea,select{font:inherit}button{color:inherit}button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}img{max-width:100%}#app,.album-shell,.album-swiper,.swiper-wrapper,.swiper-slide{min-height:100dvh}#app,.album-shell,.album-swiper{width:100%}.album-shell{isolation:isolate;position:relative;overflow:hidden}.album-swiper{opacity:0;transition:opacity .26s;overflow:hidden}.album-ready .album-swiper{opacity:1}.swiper-wrapper{align-items:stretch}.swiper-slide{background:var(--paper);place-items:center;width:100%;display:grid;overflow:hidden}.share-card-image{pointer-events:none;width:800px;height:800px;position:fixed;top:-9999px;left:-9999px}.cover-slide{padding:max(24px, env(safe-area-inset-top)) max(22px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) max(22px, env(safe-area-inset-left))}.cover-button{border-radius:var(--radius);text-align:left;cursor:pointer;touch-action:manipulation;background:0 0;border:0;grid-template-rows:auto auto minmax(0,1fr) auto;place-items:start;width:min(100%,680px);min-height:calc(100dvh - 48px);padding:16px 10px;display:grid;position:relative;overflow:hidden}.cover-button:after{z-index:2;content:"";opacity:0;pointer-events:none;background:#fafbf8bd;border-left:1px solid #526d6538;transition:transform .52s cubic-bezier(.16,1,.3,1),opacity .18s;position:absolute;inset:0;transform:translate(-102%);box-shadow:-18px 0 40px #4a534f1a}.is-opening .cover-button:after{opacity:1;transform:translate(102%)}.cover-button:active{transform:scale(.995)}.cover-kicker{color:var(--accent);margin-bottom:11px;font-size:.72rem;font-weight:600;line-height:1}.cover-title{max-width:100%;font-family:var(--serif);text-wrap:balance;margin:0;font-size:1.9rem;font-weight:400;line-height:1.22}.cover-photo-mount{border-radius:var(--radius);background:var(--paper-raised);width:min(56vw,224px);box-shadow:0 18px 46px var(--paper-shadow);border:1px solid #d3d8d3c2;align-self:center;margin:22px 7% 16px auto;padding:8px 8px 23px;transition:transform .52s cubic-bezier(.16,1,.3,1);display:block;transform:rotate(-1deg)}.cover-photo{aspect-ratio:3/4;object-fit:cover;border-radius:1px;width:100%;height:auto;display:block}.cover-date{color:var(--ink-soft);font-size:.72rem;line-height:1}.letter-slide,.closing-slide{padding:max(18px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.letter-paper,.closing-paper{overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);width:min(100%,560px);max-height:calc(100dvh - 36px);box-shadow:0 20px 58px var(--paper-shadow);scrollbar-width:thin;scrollbar-color:var(--line) transparent;position:relative;overflow-y:auto}.letter-paper{min-height:min(76dvh,640px);padding:54px 32px 48px}.letter-paragraph,.closing-paragraph{z-index:1;color:var(--ink);font-family:var(--serif);white-space:pre-line;margin:0;font-size:1rem;font-weight:400;line-height:2;position:relative}.letter-paragraph+.letter-paragraph{margin-top:29px}.letter-ornament{color:#526d6514;font-family:var(--serif);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:8rem;line-height:1;position:absolute;bottom:10px;right:22px}.photo-slide{padding:max(16px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left))}.photo-sheet{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);width:min(100vw - 36px,420px);box-shadow:0 20px 58px var(--paper-shadow);margin:0;padding:9px 9px 14px;transform:rotate(.18deg)}.photo-frame{aspect-ratio:3/4;background:#e1e5e1;border-radius:1px;width:100%;position:relative;overflow:hidden}.photo-frame:before{content:"";opacity:0;pointer-events:none;background:#e1e5e1;position:absolute;inset:0;transform:translate(-100%)}.photo-frame.is-loading:before{opacity:1;animation:1.4s ease-in-out infinite paper-loading}.photo-image{z-index:1;object-fit:cover;opacity:1;-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:1px;width:100%;height:100%;transition:opacity .24s;display:block;position:relative}.photo-frame.is-error .photo-image{opacity:0}.photo-frame.is-error:after{color:var(--error);content:"图片未能加载";place-items:center;font-size:.82rem;display:grid;position:absolute;inset:0}.photo-caption{grid-template-columns:1fr auto;align-items:center;min-height:35px;padding:13px 2px 0;display:grid}.photo-counter{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:.72rem;line-height:1}.retry-button,.album-nav{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);color:var(--accent);cursor:pointer;place-items:center;transition:background-color .16s,color .16s,transform .16s;display:grid}.retry-button{width:31px;height:31px;margin:-7px 0 -5px}.retry-button[hidden]{display:none}.retry-button:active,.album-nav:active{transform:scale(.96)}.closing-paper{min-height:min(68dvh,560px);padding:62px 34px 50px}.closing-paragraph{line-height:2.15}.closing-signoff{color:var(--accent);font-family:var(--serif);margin:52px 0 0;font-size:2rem;font-weight:400;line-height:1.3}.album-nav{z-index:3;width:44px;height:44px;box-shadow:0 12px 34px var(--paper-shadow);display:none;position:fixed;top:50%;transform:translateY(-50%)}.album-nav-previous{left:28px}.album-nav-next{right:28px}.album-nav:disabled{cursor:default;opacity:.3}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.noscript-album{width:min(100% - 32px,620px);font-family:var(--serif);margin:0 auto;padding:48px 0;line-height:1.9}.noscript-album header,.noscript-album section,.noscript-album footer{margin-bottom:64px}.noscript-album h1{font-weight:400}.noscript-photos{gap:28px;display:grid}.noscript-photos img{aspect-ratio:3/4;object-fit:cover;width:100%;display:block}@keyframes paper-loading{0%{opacity:.32;transform:translate(-100%)}50%{opacity:.68}to{opacity:.32;transform:translate(100%)}}@media (height<=720px){.letter-paper{min-height:calc(100dvh - 36px);padding:36px 28px 34px}.letter-paragraph,.closing-paragraph{font-size:.94rem;line-height:1.86}.letter-paragraph+.letter-paragraph{margin-top:22px}.closing-paper{min-height:calc(100dvh - 36px);padding:42px 30px 38px}.closing-signoff{margin-top:34px}}@media (width>=768px){.cover-title{font-size:2.6rem}.cover-photo-mount{width:260px}.letter-paper{padding:70px 64px 58px}.letter-paragraph,.closing-paragraph{font-size:1.08rem}.closing-paper{padding:76px 66px 62px}}@media (width>=960px) and (hover:hover){.album-nav{display:grid}.retry-button:hover,.album-nav:not(:disabled):hover{background:var(--accent);color:var(--paper-raised)}.cover-button:hover .cover-photo-mount{transform:rotate(-.3deg)translateY(-3px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.cover-photo-mount,.photo-sheet{transform:none}}
