:root{--paper:#fbf8f1;--ink:#51453e;--muted:#95867a;--coral:#bb6654;--pink:#f2ddd5;--line:#e8dfd3;--sage:#e9ecdf;--serif:Georgia,"STKaiti","KaiTi","Microsoft YaHei",serif;--sans:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button,a,input,select,textarea{outline-offset:5px}button:focus-visible,a:focus-visible{outline:2px solid var(--coral)}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;max-width:100%}button{border:0}button:disabled{opacity:.6;cursor:wait}.section-wrap{max-width:1160px;margin:0 auto;padding-left:36px;padding-right:36px}.header{position:sticky;top:0;z-index:20;background:#fbf8f1ed;backdrop-filter:blur(15px);border-bottom:1px solid var(--line)}.nav-wrap{max-width:1240px;min-height:94px;margin:auto;padding:0 36px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:10px;font-size:20px;font-weight:650;letter-spacing:2px;white-space:nowrap}.brand-icon{font-family:Georgia,serif;font-size:39px;color:var(--coral);line-height:1;transform:rotate(-12deg)}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:3px;margin-top:6px;color:var(--muted)}nav{display:flex;gap:31px;align-items:center}.nav-link{padding:13px 0;font-size:13px;position:relative;color:#8b7c71}.nav-link.active,.nav-link:hover{color:var(--coral)}.nav-link.active:after{content:"";position:absolute;bottom:3px;left:calc(50% - 3px);width:5px;height:5px;background:var(--coral);border-radius:50%}.settings-button{padding:10px 15px;background:transparent;border:1px solid var(--line);border-radius:8px;font-size:12px}.settings-button span{margin-right:5px}.hero{min-height:597px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:28px;padding-top:54px;padding-bottom:66px}.eyebrow{font-size:10px;letter-spacing:2.5px;font-weight:600;color:#9a8b7c}.hero .eyebrow{display:flex;align-items:center;gap:9px}.hero .eyebrow>span{height:7px;width:7px;background:#a7ae8e;border-radius:50%}h1{font-family:var(--serif);font-size:47px;line-height:1.65;letter-spacing:2px;margin:24px 0 20px;font-weight:600}.highlight{position:relative;white-space:nowrap;color:var(--coral)}.highlight svg{position:absolute;left:0;bottom:-7px;width:100%;height:16px;stroke:#dca390;stroke-width:3;fill:none}.title-heart{font-size:40px;display:inline-block;vertical-align:top;margin-left:7px;color:#cc8e7d;transform:rotate(14deg)}.hero-description{font-size:14px;line-height:2.1;color:#958579}.hero-actions{display:flex;gap:12px;margin-top:29px}.button{min-height:43px;display:inline-flex;justify-content:center;align-items:center;gap:15px;border-radius:7px;padding:12px 20px;font-size:12px;letter-spacing:.3px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--coral);color:#fff9f3;box-shadow:0 4px 10px #a8625110}.primary:hover{background:#a75546}.soft{background:#f0e9dd;color:#827363}.outlined{background:transparent;border:1px solid #dcd2c4}.small{padding:10px 17px;min-height:38px}.together{display:flex;align-items:center;gap:11px;margin-top:38px}.avatars{display:flex;align-items:center;padding-right:4px}.avatars span{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#ead7b7;border:3px solid var(--paper);font-size:12px;font-weight:bold}.avatars span+span{margin-left:-9px;background:#efd8d2}.together>div:nth-child(2)>span{font-size:11px;font-weight:600}.together p{margin:5px 0 0;font-size:10px;color:var(--muted)}.day-pill{margin-left:auto;font-size:10px;border-radius:20px;background:#eeeede;color:#7e8667;padding:9px 12px;white-space:nowrap}.hero-art{position:relative;height:440px;display:flex;align-items:center;justify-content:center}.art-blob{position:absolute;background:#f0e9d9;width:91%;height:89%;border-radius:44% 54% 49% 48%;transform:rotate(12deg);background-image:radial-gradient(#cbbd9f55 .8px,transparent .8px);background-size:9px 9px}.hero-polaroid{position:relative;transform:rotate(-6deg);background:#fffdf8;padding:14px 14px 0;width:335px;box-shadow:0 8px 25px #57473415;margin-top:23px}.hero-polaroid img{width:100%;height:261px;object-fit:cover;background:#e7eddf}.hero-polaroid p{font-family:var(--serif);font-size:15px;margin:18px 3px 22px}.hero-polaroid p span{float:right;font-size:22px;color:var(--coral)}.tape{position:absolute;z-index:2;left:calc(50% - 48px);top:-15px;width:96px;height:30px;background:#e3c9aaac;transform:rotate(4deg);clip-path:polygon(0 8%,100% 0,97% 20%,100% 35%,97% 50%,100% 75%,97% 100%,1% 93%,3% 70%,0 50%,3% 25%)}.mini-note{position:absolute;right:-7px;top:12px;transform:rotate(9deg);background:#f5e1ba;padding:20px 22px 16px;z-index:3;font-family:var(--serif);font-size:14px;line-height:1.8;box-shadow:2px 5px 9px #5747340c}.mini-note strong{font-size:19px;font-weight:500}.mini-note span{display:block;font-family:Georgia,serif;font-style:italic;font-size:11px;color:#a19073;margin-top:5px}.doodle{position:absolute;z-index:5;color:#9ba382}.doodle-star{left:20px;top:20px;font-size:58px;transform:rotate(8deg)}.doodle-spark{right:12px;bottom:36px;font-size:41px;color:#c8937c}.little-stamp{position:absolute;left:4px;bottom:30px;border:1px dashed #c0856f;color:#ac7763;background:#f9eee0;border-radius:50%;width:83px;height:83px;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-17deg);font-size:23px;font-family:Georgia,serif;box-shadow:0 0 0 5px #f9eee0}.little-stamp small{font-size:6px;margin-top:6px;letter-spacing:1px}.hand-note{position:absolute;bottom:-17px;right:39px;transform:rotate(-4deg);font-family:var(--serif);font-size:13px;color:#a38b74}.hand-note span{font-size:34px;margin-left:10px}.ribbon{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f2f0e6;display:flex;justify-content:center;gap:80px;padding:18px 25px;font-size:11px;letter-spacing:1.4px;color:#938975}.album-section{padding-top:74px;padding-bottom:68px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:25px}h2{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:1px;margin:14px 0 11px}h2 span{color:#b9a381;margin-left:10px}.section-heading p,.story-intro>p{font-size:12px;color:var(--muted);line-height:1.9;margin:0}.album-toolbar{display:flex;align-items:center;justify-content:space-between;margin:29px 0 24px;gap:12px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filter{padding:9px 15px;border-radius:30px;background:transparent;color:#94877c;font-size:11px}.filter.active{background:#eae5d9;color:#665b4a}.filter:hover{background:#f0eade}.album-count{font-size:10px;white-space:nowrap;color:var(--muted)}.photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:23px}.photo-card{position:relative;background:#fffdf9;padding:10px 10px 14px;box-shadow:0 4px 12px #68543d0b;text-align:left;border:1px solid #eee8dc;transition:transform .25s;transform:rotate(-2deg);width:100%;min-width:0}.photo-card:nth-child(even){transform:rotate(2deg)}.photo-card:nth-child(3){transform:rotate(-1deg)}.photo-card:hover{transform:translateY(-7px) rotate(0)}.photo-card img{width:100%;height:190px;object-fit:cover;background:#f2eee4}.photo-card h3{font-family:var(--serif);font-size:15px;font-weight:500;margin:16px 5px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-card .photo-meta{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#a99b8c;margin:0 5px}.photo-meta .heart{color:#be927e;font-size:19px}.photo-badge{position:absolute;top:19px;left:18px;background:#fff9e9dc;padding:4px 7px;border-radius:3px;font-size:9px;color:#86765b}.demo-note{font-size:10px;text-align:center;color:#b0a18f;margin:29px 0 0}.empty-state{grid-column:1/-1;padding:50px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.story-section{background:#f1f0e6;border-top:1px solid #e7e5d8;border-bottom:1px solid #e7e5d8}.story-layout{padding-top:57px;padding-bottom:52px;display:grid;grid-template-columns:1fr 1.25fr;gap:70px}.story-intro h2{font-size:33px;line-height:1.6;margin:15px 0}.story-intro .button{margin-top:23px}.story-doodle{font-size:31px;color:#a5ad91;margin-top:24px;transform:rotate(-6deg);padding-left:25px}.story-doodle span{letter-spacing:5px;font-size:17px}.story-doodle small{display:block;font-family:Georgia,serif;font-style:italic;font-size:12px;letter-spacing:1px;margin:9px 0 0 0}.timeline{position:relative;padding-top:6px}.timeline:before{content:"";position:absolute;left:15px;top:23px;bottom:35px;border-left:1px dashed #c7c8b3}.timeline-item{position:relative;padding:0 0 30px 53px}.timeline-item:last-child{padding-bottom:0}.timeline-icon{position:absolute;left:0;top:3px;background:#e4e6d6;width:32px;height:32px;border:4px solid #f1f0e6;border-radius:50%;display:grid;place-items:center;color:#9da17e;font-size:12px}.timeline-item time{font-size:10px;color:#a19582;letter-spacing:1px}.timeline-item h3{font-size:16px;font-family:var(--serif);font-weight:500;margin:9px 0}.timeline-item p{font-size:12px;color:#968b78;line-height:1.8;margin:0}.timeline-item .event-delete{position:absolute;right:0;top:0;font-size:11px;color:#9b8e7d;background:none}.wishes-section{padding-top:67px;padding-bottom:45px}.wish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}.wish-card{position:relative;padding:24px 22px 19px;background:#f1e7d5;min-height:151px;transform:rotate(-1deg);border-radius:2px;box-shadow:0 4px 9px #80644508}.wish-card:nth-child(3n+2){background:#e7eadc;transform:rotate(1deg)}.wish-card:nth-child(3n){background:#f1e0d9;transform:rotate(-1deg)}.wish-top{display:flex;justify-content:space-between;align-items:center}.wish-emoji{font-size:24px}.wish-check{appearance:none;width:20px;height:20px;border:1px solid #b8ad96;border-radius:50%;cursor:pointer;margin:0;background:#ffffff35;display:grid;place-items:center}.wish-check:checked{background:#929c79;border-color:#929c79}.wish-check:checked:after{content:"✓";color:white;font-size:13px}.wish-card h3{font-size:16px;font-family:var(--serif);font-weight:500;margin:17px 0 9px;padding-right:15px}.wish-card.done h3{text-decoration:line-through;color:#8f907a}.wish-card p{font-size:10px;color:#a2937c;margin:0}.wish-remove{position:absolute;right:14px;bottom:15px;background:none;color:#a39280;font-size:17px}.wish-progress{text-align:center;font-size:11px;color:#9a8d7b;margin:26px 0 0}.letter-section{padding-top:20px;padding-bottom:75px}.letter-card{border:1px solid #e5d7c9;background:repeating-linear-gradient(135deg,#f6eee5 0,#f6eee5 6px,#faf5ed 6px,#faf5ed 12px);padding:29px 33px;display:flex;align-items:center;gap:31px;border-radius:10px}.letter-card h2{font-size:23px}.letter-card p{font-size:11px;color:#9a8777;line-height:1.9}.letter-card>.button{margin-left:auto;flex-shrink:0}.envelope-art{width:111px;flex-shrink:0;transform:rotate(-8deg);text-align:center}.envelope-art>div{height:70px;display:grid;place-items:center;border:1px solid #d2b49d;border-radius:3px;background:linear-gradient(149deg,transparent 49%,#d9bda4 50%,transparent 51%) top left/50% 60% no-repeat,linear-gradient(-149deg,transparent 49%,#d9bda4 50%,transparent 51%) top right/50% 60% no-repeat,#f4dec4;font-size:28px;color:#b96e59}.envelope-art>span{font-family:Georgia,serif;font-style:italic;font-size:8px;color:#ab8d70;display:block;margin-top:10px}footer{padding:37px 20px 26px;border-top:1px solid var(--line);text-align:center}.footer-brand{justify-content:center;font-size:16px}.footer-brand .brand-icon{font-size:29px}footer>p{font-size:11px;color:#9b8a7c;margin:17px 0}footer>small{font-size:8px;letter-spacing:2px;color:#b5a48e}footer>small span{color:var(--coral);font-size:15px}.local-note{font-size:10px;color:#b3a99d;margin-top:24px}dialog{border:1px solid #e3d8c7;border-radius:17px;padding:28px;background:#fffbf4;color:var(--ink);width:min(510px,calc(100% - 32px));max-height:90dvh;box-shadow:0 20px 90px #48352638}dialog::backdrop{background:#443b325c;backdrop-filter:blur(5px)}.modal-header{display:flex;align-items:center;justify-content:space-between}.close-button{height:31px;width:31px;border-radius:50%;background:#f0e7db;font-size:23px;display:grid;place-items:center;font-weight:300}.floating-close{position:absolute;right:14px;top:14px;z-index:2}.field{display:block;margin:18px 0 0;font-size:12px}.field input,.field select,.field textarea{display:block;width:100%;margin-top:9px;padding:11px 12px;border:1px solid #dfd4c6;background:#fffefa;border-radius:7px;color:var(--ink)}.field textarea{resize:vertical;min-height:90px;line-height:1.8}.field-hint,.form-note{font-size:11px;color:#9c8f7e;line-height:1.9}.form-note{padding:12px;background:#f2eee3;border-radius:7px;margin-top:18px}.submit-button{width:100%;margin-top:16px}#form-error{color:#ad5043;font-size:12px;line-height:1.8}.settings-tools{display:flex;flex-wrap:wrap;gap:13px;margin-top:16px}.text-button{background:none;color:var(--coral);font-size:11px;text-decoration:underline;text-underline-offset:4px;padding:6px 0}#memory-dialog{padding:0;overflow:auto}#memory-image{width:100%;max-height:52vh;object-fit:contain;background:#eee9dd}.memory-body{padding:24px}.memory-body h2{font-size:24px}.memory-body>p{white-space:pre-wrap;line-height:1.9;color:#958575;font-size:13px;overflow-wrap:anywhere}.memory-bottom{display:flex;justify-content:space-between;align-items:center;color:#a59683;font-size:11px;margin-top:22px}#letter-dialog{width:min(610px,calc(100% - 32px));padding:0}.letter-paper{padding:47px 35px 30px;background:repeating-linear-gradient(transparent 0,transparent 31px,#cbb79a24 31px,#cbb79a24 32px);margin:20px}#letter-content{white-space:pre-wrap;line-height:2.5;font-size:14px;margin-top:25px;overflow-wrap:anywhere}.letter-sign{text-align:right;color:#a77b65;margin:25px 0;font-family:var(--serif)}.toast{position:fixed;bottom:27px;left:50%;transform:translate(-50%,20px);padding:13px 24px;background:#655448;color:white;border-radius:30px;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:.25s;max-width:90vw;text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}.skip{position:fixed;top:-100px;left:10px;padding:12px;background:white;z-index:200}.skip:focus{top:10px}
@media(min-width:1500px){.section-wrap{max-width:1240px}.hero{min-height:650px}.hero-art{transform:scale(1.06)}h1{font-size:51px}.photo-card img{height:213px}}
@media(max-width:1050px){h1{font-size:38px}.hero{gap:15px}.hero-polaroid{width:285px}.hero-polaroid img{height:230px}.mini-note{right:-2px;padding:15px}.ribbon{gap:35px}.photo-grid{gap:16px}.photo-card img{height:160px}.day-pill{font-size:9px;padding:8px}.hero-actions{gap:8px}.button{padding-left:14px;padding-right:14px}.nav-wrap{gap:15px}nav{gap:20px}.story-layout{gap:40px}.letter-card{gap:23px;padding:25px}}
@media(max-width:780px){.nav-wrap{flex-wrap:wrap;padding:18px 24px 12px;gap:16px}.brand{font-size:18px}.brand small{font-size:8px}.settings-button{margin-left:auto;font-size:11px}.nav-wrap nav{order:3;width:100%;justify-content:center;gap:33px}.nav-link{font-size:12px;padding:5px 0 12px}.section-wrap{padding-left:24px;padding-right:24px}.hero{grid-template-columns:1fr;gap:15px;padding-top:37px;padding-bottom:35px}.hero-copy{text-align:center}.hero .eyebrow{justify-content:center}h1{font-size:40px;line-height:1.6;margin-top:20px}.title-heart{font-size:33px}.hero-description{font-size:13px}.hero-actions{justify-content:center}.together{justify-content:center;max-width:410px;margin:28px auto 0;text-align:left}.day-pill{margin-left:10px}.hero-art{height:410px;width:min(420px,100%);margin:0 auto}.hero-polaroid{width:300px}.hero-polaroid img{height:238px}.mini-note{right:0;top:16px}.hand-note{bottom:0;right:40px}.ribbon{display:grid;grid-template-columns:1fr 1fr;gap:15px 20px;text-align:center;font-size:10px;padding:20px 12px}.album-section{padding-top:44px;padding-bottom:45px}.section-heading{align-items:flex-start;gap:15px}h2{font-size:24px}.section-heading .button{font-size:10px;min-height:35px;padding:9px 11px;white-space:nowrap;margin-top:25px}.photo-grid{grid-template-columns:repeat(2,1fr);gap:24px 19px}.photo-card img{height:220px}.photo-card h3{font-size:14px}.album-toolbar{flex-wrap:wrap;margin-top:20px}.filter{padding:8px 11px}.story-layout{grid-template-columns:1fr;gap:32px;padding-top:40px;padding-bottom:40px}.story-intro h2 br{display:none}.story-intro h2{font-size:27px}.story-doodle{display:none}.timeline{padding-left:7px}.timeline:before{left:22px}.wish-grid{grid-template-columns:repeat(2,1fr)}.wishes-section{padding-top:43px}.letter-card{flex-wrap:wrap;gap:20px;padding:26px 20px}.envelope-art{width:75px}.envelope-art>div{height:55px}.envelope-art>span{font-size:6px}.letter-card>div:nth-child(2){flex:1}.letter-card h2{font-size:19px;line-height:1.6}.letter-card .eyebrow{font-size:8px}.letter-card>.button{margin:auto;min-width:180px}.letter-section{padding-bottom:45px}.letter-paper{margin:10px;padding:47px 20px 25px}.local-note{font-size:9px;line-height:1.8}}
@media(max-width:440px){.section-wrap{padding-left:19px;padding-right:19px}h1{font-size:33px;letter-spacing:1px}.hero-actions .button{font-size:11px;padding:12px}.hero-art{height:370px}.hero-polaroid{width:265px}.hero-polaroid img{height:211px}.hero-polaroid p{font-size:12px}.mini-note{padding:13px;font-size:12px}.mini-note strong{font-size:16px}.little-stamp{width:65px;height:65px;font-size:20px;left:6px;bottom:27px}.little-stamp small{font-size:5px}.doodle-star{font-size:40px}.doodle-spark{font-size:30px;bottom:37px}.hand-note{font-size:11px;bottom:0}h2{font-size:21px}.section-heading p{font-size:11px}.section-heading .button{font-size:9px;padding:8px}.album-count{display:none}.filter{font-size:10px;padding:8px 9px}.photo-grid{gap:20px 14px}.photo-card img{height:155px}.photo-card h3{font-size:12px;margin-left:2px}.photo-card{padding:7px 7px 10px}.photo-card .photo-meta{font-size:8px;margin:0 2px}.photo-badge{top:13px;left:13px;font-size:8px}.wish-grid{gap:13px}.wish-card{padding:20px 15px;min-height:160px}.wish-card h3{font-size:14px;line-height:1.6}.wish-card p{font-size:9px;padding-right:8px}.together{gap:7px}.together p{font-size:9px}.day-pill{padding:8px;margin-left:0}.avatars span{width:32px;height:32px;font-size:10px}.nav-wrap nav{gap:25px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
