:root{color-scheme:light;--ink:#59333e;--rose:#a84d67;--muted:#896775;--line:#dec6ce}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:#f9eff0;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;background-image:radial-gradient(ellipse at 90% 20%,#ecc9d570,transparent 48%),radial-gradient(ellipse at 0 60%,#fffaf4,transparent 65%)}main{max-width:1000px;margin:auto;padding:0 28px}header{display:flex;justify-content:space-between;align-items:center;padding:26px 0;border-bottom:1px solid var(--line);font-size:14px;letter-spacing:.08em;color:var(--muted)}header a{font:italic 28px Georgia,serif;color:var(--ink);text-decoration:none}header a span{font-size:19px;color:var(--rose)}.hero{text-align:center;padding:65px 0 42px}.eyebrow{font-size:12px;letter-spacing:.22em;color:var(--muted);line-height:1.8}h1{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(54px,10vw,90px);letter-spacing:-.045em;margin:18px 0}h1 span{font-style:italic;font-size:.72em;color:var(--rose);margin:0 .1em}.intro{font-family:"Songti SC",SimSun,serif;font-size:17px;letter-spacing:.09em;line-height:1.9}.rule{width:38px;height:1px;background:var(--rose);margin:32px auto}.together{font-size:15px;letter-spacing:.16em;margin-bottom:0}.days{display:flex;align-items:baseline;justify-content:center;gap:13px;margin:0}.days strong{font-family:Georgia,"Times New Roman",serif;font-size:clamp(100px,22vw,156px);font-weight:400;line-height:1.3;letter-spacing:-.045em;font-variant-numeric:tabular-nums}.days>span{font-size:17px}.clock{display:flex;justify-content:center;align-items:flex-start;gap:20px}.clock div{min-width:48px}.clock div>span{font-family:Georgia,serif;font-size:30px;font-variant-numeric:tabular-nums}.clock small{display:block;font-size:12px;letter-spacing:.14em;margin-top:7px;color:var(--muted)}.clock b{font-size:22px;font-weight:400;line-height:35px;color:#ba97a2}.whisper{font-size:14px;color:var(--muted);letter-spacing:.1em;margin:28px 0 34px}.read-link{display:inline-flex;align-items:center;gap:16px;font-size:14px;color:var(--ink);text-decoration:none;padding:12px 0;border-bottom:1px solid var(--line);line-height:1.8}.letter-section{max-width:620px;margin:34px auto 0;padding:38px 0 50px;text-align:center}h2{font:400 32px/1.5 "Songti SC",SimSun,serif;margin:12px 0}.letter-intro{font-size:15px;color:var(--muted);line-height:1.8;margin-bottom:28px}.letter{background:#fffaf9;border:1px solid #e4cfd4;box-shadow:0 12px 40px #67304407;text-align:left;border-radius:4px}.letter summary{display:flex;align-items:center;gap:18px;padding:25px;cursor:pointer;list-style:none;font-size:17px;min-height:104px}.letter summary::-webkit-details-marker{display:none}.letter summary small{display:block;font-size:12px;color:var(--muted);margin-top:8px;line-height:1.7}.seal{font-size:34px;color:var(--rose)}.plus{margin-left:auto;color:var(--rose);font-size:24px;transition:transform .25s}.letter[open] .plus{transform:rotate(45deg)}.letter-body{padding:5px 30px 28px;border-top:1px solid #ecdee2;font:17px/2.15 "Songti SC",SimSun,serif;animation:reveal .55s ease}.letter-body p{margin:23px 0}.signature{text-align:right}.signature span{font:italic 28px Georgia,serif;display:inline-block;margin-top:13px}footer{text-align:center;border-top:1px solid var(--line);padding:35px 0 30px;color:var(--muted)}footer>span{font:14px Georgia,"Songti SC",serif;letter-spacing:.12em}footer p{font-size:14px;letter-spacing:.1em;margin:15px 0 28px}footer small{font-size:12px;line-height:1.7}a:focus-visible,summary:focus-visible{outline:2px solid var(--rose);outline-offset:5px}@keyframes reveal{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){main{padding:0 23px}.hero{padding-top:44px}header{padding:20px 0}.letter summary{padding:21px 18px;gap:12px}.letter-body{padding:3px 22px 22px}.intro{font-size:16px;letter-spacing:.03em}.letter-section{margin-top:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.reunion{max-width:620px;margin:24px auto 0;text-align:center;padding:36px 24px 30px;border:1px solid var(--line);border-radius:4px;background:#fffaf970}.reunion h2{font-size:26px}.reunion-date{font-size:14px;line-height:1.8;color:var(--muted)}.reunion-clock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:28px 0}.reunion-clock strong{display:block;font:400 clamp(30px,8vw,48px)/1.3 Georgia,serif;font-variant-numeric:tabular-nums;color:var(--rose)}.reunion-clock span{display:block;font-size:14px;color:var(--muted);margin-top:8px}.reunion-note{font:16px/1.9 "Songti SC",SimSun,serif;letter-spacing:.03em}.reunion>small{display:block;font-size:12px;line-height:1.9;color:var(--muted)}@media(max-width:480px){.reunion{padding:28px 16px}.reunion h2{font-size:23px}}
[hidden]{display:none!important}.letter-body p,.shared-notes p{white-space:pre-wrap;overflow-wrap:anywhere}.quiet-button{font:inherit;font-size:14px;background:transparent;color:var(--rose);border:1px solid var(--line);padding:11px 15px;border-radius:4px;cursor:pointer}footer .quiet-button{display:block;margin:24px auto 0}#load-status{font-size:14px}.editor{max-width:680px;margin:30px auto 60px;padding:28px;background:#fffaf9;border:1px solid var(--line);border-radius:5px;color:var(--ink)}.editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.editor-head h2{font-size:24px}.editor label{display:block;font-size:16px;margin:20px 0 10px}.editor input:not([type=checkbox]),.editor textarea{width:100%;max-width:100%;min-width:0;padding:12px;font:16px/1.7 inherit;font-family:inherit;font-size:16px;line-height:1.7;background:white;color:var(--ink);border:1px solid var(--line);border-radius:4px}.editor textarea{resize:vertical}.editor .check-label{display:flex;align-items:center;gap:10px}.editor input[type=checkbox]{width:20px;height:20px;accent-color:var(--rose)}.editor button[type=submit]{background:var(--rose);color:white;border:0;border-radius:4px;padding:13px 20px;font:16px inherit;font-size:16px;cursor:pointer}.hint{font-size:14px;line-height:1.8;color:var(--muted)}.editor h3{margin-top:30px;font-size:18px;font-weight:400}.note-field{border:1px solid var(--line);padding:14px;margin:18px 0;border-radius:4px;min-width:0}.note-field legend{font-size:14px;color:var(--muted)}.note-field textarea,.note-field button{margin-top:10px}.save-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}#edit-status{font-size:15px;line-height:1.8;white-space:pre-wrap}button:disabled{opacity:.55;cursor:wait}.shared-notes{max-width:620px;margin:0 auto 48px}.shared-notes article{border-top:1px solid var(--line);padding:28px 4px}.shared-notes h2{font-size:26px;overflow-wrap:anywhere}.shared-notes p{font:17px/2 "Songti SC",SimSun,serif}input:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--rose);outline-offset:3px}@media(max-width:700px){.editor{margin:24px 20px 50px;padding:20px}.editor-head h2{font-size:21px}}
.memory-section{max-width:720px;margin:12px auto 54px;padding-top:30px;border-top:1px solid var(--line);text-align:center}.memory-section h2{font-size:28px}.section-intro{font-size:15px;line-height:1.9;color:var(--muted)}.memory-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:16px 0}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.photo-card{text-align:left;background:#fffaf9;border:1px solid var(--line);padding:10px;border-radius:4px;min-width:0}.photo-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#eadbe0;border-radius:2px}.memory-meta{font-size:14px;color:var(--muted);line-height:1.8;overflow-wrap:anywhere}.memory-text{font:17px/1.95 "Songti SC",SimSun,serif;white-space:pre-wrap;overflow-wrap:anywhere}.photo-card .memory-text{font-size:16px}.photo-card .memory-actions{justify-content:flex-start;margin-bottom:0}.photo-card .quiet-button{padding:8px 12px}.diary-card{text-align:left;border:1px solid var(--line);border-radius:4px;background:#fffaf9;padding:24px;margin:22px 0}.diary-card>.memory-actions{justify-content:flex-start}.replies{border-left:2px solid var(--line);margin-top:24px;padding-left:18px}.reply+.reply{border-top:1px solid var(--line);margin-top:15px;padding-top:8px}.reply .memory-text{font-size:16px}.memory-form,.reply-form{text-align:left;border:1px solid var(--line);padding:22px;margin:22px 0;background:#fffaf9;border-radius:4px}.memory-form label{display:block;font-size:16px;margin:16px 0}.memory-form input,.memory-form textarea,.memory-form select,.reply-form select,.reply-form textarea{display:block;width:100%;min-width:0;box-sizing:border-box;background:white;color:var(--ink);font:16px/1.7 inherit;font-family:inherit;font-size:16px;line-height:1.7;border:1px solid var(--line);border-radius:4px;padding:10px;margin:8px 0}.memory-form button[type=submit],.reply-form button[type=submit]{background:var(--rose);color:white;border:0;border-radius:4px;padding:12px 18px;font:16px sans-serif;cursor:pointer}.memory-form textarea,.reply-form textarea{resize:vertical}.memory-form [role=status],.reply-form [role=status]{font-size:15px;line-height:1.8}.reply-form .quiet-button{margin-left:10px}.memory-form input[type=file]{font-size:14px}#more-photos,#more-diaries{margin-top:10px}@media(max-width:480px){.photo-grid{gap:10px}.photo-card{padding:7px}.diary-card{padding:19px}.memory-form{padding:16px}.section-intro{font-size:14px}}
.mood-picker{border:0;padding:0;margin:18px 0;min-width:0}.mood-picker legend{font-size:15px;margin-bottom:10px;color:var(--muted)}.mood-picker button{margin:0 7px 8px 0;padding:9px 12px;font-size:14px}.mood-picker button[aria-pressed=true]{background:#f0dbe3;border-color:var(--rose);color:var(--ink)}.note-field>label{display:block;font-size:14px;color:var(--muted);margin:12px 0}.note-field .note-date{display:block;margin-top:8px}.shared-notes .memory-meta{font:14px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;color:var(--muted)}
#unlock-dialog{width:calc(100% - 40px);max-width:430px;max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:0;color:var(--ink);background:#fffaf9}#unlock-dialog::backdrop{background:rgba(52,27,37,.35)}#unlock-dialog .memory-form{margin:0;border:0;padding:26px}#unlock-dialog h2{font-size:25px;margin-top:0}#unlock-dialog label{display:block;font-size:15px;line-height:1.8}#photos-status:empty,#diaries-status:empty{display:none}
