:root{--ink:#332a27;--cream:#f8f2e8;--paper:#fffdf8;--red:#b4483f;--line:#d9cdbd}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Microsoft YaHei,PingFang SC,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}nav{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 5.5vw;border-bottom:1px solid var(--line);background:#f8f2e8eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.brand{font:700 23px Georgia,serif;letter-spacing:.08em}.brand i{color:var(--red);font-style:normal;font-size:14px}.links{display:flex;gap:38px;font-size:13px}.links a:hover{color:var(--red)}.pill,.primary{border:1px solid var(--ink);border-radius:99px;padding:11px 20px;background:transparent;cursor:pointer;font-size:12px;transition:.2s}.pill:hover,.primary:hover{background:var(--ink);color:#fff;transform:translateY(-2px)}.hero{min-height:680px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7vw;padding:76px 8vw 92px;overflow:hidden}.eyebrow{color:var(--red);font:700 11px Georgia,serif;letter-spacing:.2em}.hero h1{margin:18px 0 24px;font-family:STSong,SimSun,serif;font-size:clamp(45px,5.4vw,78px);line-height:1.18;font-weight:500;letter-spacing:-.04em}.intro{max-width:580px;color:#756b65;line-height:2;font-size:15px}.actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:25px}.primary{padding:14px 22px}.plain{border:0;background:transparent;color:var(--red);cursor:pointer}.stats{display:flex;gap:32px;margin-top:42px;padding-top:25px;border-top:1px solid var(--line)}.stats p{display:grid;gap:3px;margin:0}.stats b{font:27px Georgia,serif}.stats span{font-size:10px;color:#8b7e74}.scrap{height:500px;position:relative}.polaroid{position:absolute;background:#fff;padding:12px 12px 20px;box-shadow:0 18px 50px #43342c2e}.polaroid div{height:300px;display:grid;place-items:center;text-align:center;font:18px/1.5 Georgia,STSong,serif;color:#524840}.polaroid p{text-align:center;font-family:Comic Sans MS,STKaiti,cursive;font-size:13px}.one{width:58%;left:3%;top:55px;transform:rotate(-6deg)}.one div{background:linear-gradient(145deg,#d8c5ac,#eee0cf 45%,#b9c2b4)}.two{width:52%;right:0;top:130px;transform:rotate(7deg)}.two div{background:linear-gradient(135deg,#c5c9bd,#e5d7c4 55%,#dca990)}.heart{position:absolute;right:5%;top:5px;font:70px Georgia;color:var(--red);transform:rotate(15deg)}.ticker{padding:16px 3vw;border-block:1px solid var(--line);white-space:nowrap;overflow:hidden;text-align:center;font:13px Georgia,STSong,serif;color:#675c55}.section{padding:105px 8vw}.sectionHead{text-align:center;max-width:680px;margin:0 auto 60px}.sectionHead h2,.letter h2,.dialog h2,.admin h2{font-family:STSong,SimSun,serif;font-size:clamp(36px,4vw,54px);font-weight:500;margin:12px 0}.sectionHead>p:nth-child(3){color:#82766e;font-size:14px}.filters{display:flex;justify-content:center;gap:8px;margin-top:28px}.filters button{border:1px solid var(--line);background:transparent;border-radius:99px;padding:9px 19px;color:#776b64;cursor:pointer;font-size:13px}.filters .active,.filters button:hover{background:var(--ink);color:#fff}.story{background:var(--paper)}.timeline{max-width:1080px;margin:auto;display:grid;gap:70px}.memory{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.memory:nth-child(2n) .visual{order:2;transform:rotate(2deg)}.memory:nth-child(2n) .memoryText{text-align:right}.visual{min-height:280px;display:grid;place-items:center;position:relative;border:12px solid white;box-shadow:0 12px 35px #43342c1f;transform:rotate(-2deg);background-size:cover;background-position:center}.visual span{position:absolute;top:18px;left:22px;font:55px Georgia;color:#ffffff8c}.visual p{font:12px Georgia;letter-spacing:.2em}.tone0{background:#d9ad8b}.tone1{background:#aab8a0}.tone2{background:#9baeb4}.tone3{background:#c99b9a}.memoryText small{color:var(--red);letter-spacing:.1em}.memoryText h3{font:500 30px STSong,serif;margin:14px 0}.memoryText>p{color:#796e67;line-height:1.9}.meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.meta>*{padding:5px 9px;border:1px solid var(--line);font-size:10px;font-weight:400;color:#897b72}.row{display:flex;gap:14px;margin-top:18px}.row button{border:0;border-bottom:1px solid #aa9b90;background:transparent;cursor:pointer;color:#70635b}.row button:last-child{color:var(--red)}.modules{background:#eee6da}.moduleGrid{max-width:1080px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.moduleGrid article{background:#fffdf8b8;border:1px solid var(--line);padding:30px;min-height:185px;position:relative}.moduleGrid article>span{color:var(--red);font:11px Georgia}.moduleGrid h3{font:500 24px STSong;margin:24px 0 10px}.moduleGrid p{color:#796e67;line-height:1.7;font-size:13px}.moduleGrid i{position:absolute;right:18px;top:18px;font-size:9px;color:#9a8d84;font-style:normal;border:1px solid var(--line);padding:4px 7px}.letter{display:grid;grid-template-columns:1.25fr .75fr;max-width:1200px;margin:auto;gap:30px}.letter>div{background:var(--paper);padding:65px 7vw;box-shadow:0 15px 45px #43342c14;border:1px solid #ede3d5}.letter>div>p:not(.eyebrow){font:18px/2.1 STKaiti,KaiTi,serif;color:#665a54}.letter strong{display:block;text-align:right;font:18px STKaiti;color:var(--red)}.letter aside{background:var(--red);color:#fff8ed;padding:60px 45px;display:flex;flex-direction:column;justify-content:center;font:70px Georgia}.letter aside p{font:29px/1.7 STSong;margin:10px 0}.letter aside small{font:10px Georgia;letter-spacing:.15em}.future{background:var(--paper)}.wishes{max-width:1000px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px}.wishes div{display:grid;grid-template-columns:45px 1fr 25px;align-items:center;padding:20px 24px;border:1px solid var(--line)}.wishes span{color:var(--red);font:12px Georgia}.wishes p{font:17px STKaiti}footer{text-align:center;padding:55px;border-top:1px solid var(--line)}footer p{font:22px STSong}footer small{font:9px Georgia;letter-spacing:.2em;color:#8f8278}.notice{position:fixed;top:95px;left:50%;transform:translate(-50%);z-index:90;background:#fffaf1;border:1px solid var(--line);padding:12px 16px;box-shadow:0 12px 30px #0002;cursor:pointer}.overlay{position:fixed;inset:0;background:#29211d9e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:80;display:grid;place-items:center;padding:20px}.dialog{width:min(460px,100%);background:var(--paper);padding:48px;position:relative}.dialog>p:not(.eyebrow){color:#7e7169;font-size:13px}.dialog form{display:grid;gap:16px;margin-top:28px}.dialog label,.editor label{display:grid;gap:7px;font-size:12px;color:#75685f}.dialog input,.editor input,.editor textarea,.editor select{width:100%;border:1px solid #cfc1b2;background:#fff;padding:12px;outline:none}.close{position:absolute;right:16px;top:10px;border:0;background:none;font-size:28px;cursor:pointer}.submit{border:0;background:var(--red);color:#fff;padding:14px 22px;cursor:pointer}.dialog small{display:block;margin-top:18px;color:#94867c}.admin{position:fixed;inset:0;z-index:70;background:var(--cream);overflow:auto;padding:45px 7vw 80px}.admin>header{display:flex;justify-content:space-between;max-width:1150px;margin:0 auto 35px;padding-bottom:25px;border-bottom:1px solid var(--line)}.admin>header>div:last-child{display:flex;gap:10px}.admin>header button,.editorActions>button:not(.submit){border:1px solid var(--line);background:transparent;padding:10px 14px;cursor:pointer}.editor{max-width:760px;margin:auto;background:var(--paper);border:1px solid var(--line);padding:38px}.formGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.wide{grid-column:1/-1}.editorActions{display:flex;justify-content:flex-end;gap:10px;margin-top:28px}.adminList{max-width:760px;margin:35px auto}.adminList>button{width:100%;display:grid;grid-template-columns:130px 1fr 50px;gap:15px;text-align:left;border:0;border-bottom:1px solid var(--line);background:transparent;padding:14px 5px;cursor:pointer}.adminList span{font-size:11px;color:#8c7f76}.adminList i{font-style:normal;font-size:10px;color:var(--red);text-align:right}@media(max-width:800px){.links{display:none}.hero{grid-template-columns:1fr;padding:60px 7vw}.scrap{height:430px}.section{padding:80px 7vw}.memory{grid-template-columns:1fr;gap:28px}.memory:nth-child(2n) .visual{order:0}.memory:nth-child(2n) .memoryText{text-align:left}.moduleGrid{grid-template-columns:1fr 1fr}.letter,.formGrid{grid-template-columns:1fr}.wide{grid-column:auto}.admin{padding:28px 5vw}.editor{padding:25px}}@media(max-width:520px){nav{padding:0 20px}.brand{font-size:19px}.hero h1{font-size:42px}.scrap{height:340px}.polaroid div{height:210px}.one{width:66%}.two{width:60%;top:100px}.moduleGrid,.wishes{grid-template-columns:1fr}.dialog{padding:42px 27px}.admin>header{display:block}.admin>header>div:last-child{margin-top:18px}.stats{gap:18px}.letter>div,.letter aside{padding:50px 34px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.travel{background:#e8ded0}.travelLayout{max-width:1120px;margin:auto;display:grid;grid-template-columns:1.55fr .65fr;min-height:520px;border:1px solid var(--line);background:#f5eee4}.chinaMap{position:relative;min-height:520px;overflow:hidden;background:radial-gradient(circle at 72% 68%,#d7e4df 0 2px,transparent 3px),linear-gradient(145deg,#e3eee9,#cbded8);border-right:1px solid #baccc5}.mapShape{position:absolute;inset:8% 7% 11% 5%;background:linear-gradient(135deg,#e4d5b8,#c7b892);clip-path:polygon(8% 17%,23% 7%,38% 11%,49% 5%,61% 13%,72% 9%,85% 20%,82% 31%,96% 43%,84% 50%,83% 65%,73% 70%,68% 88%,57% 80%,49% 91%,39% 79%,29% 83%,24% 67%,13% 62%,17% 48%,5% 39%);filter:drop-shadow(0 15px 20px #536f6428)}.chinaMap:after{content:"";position:absolute;inset:10%;background-image:radial-gradient(#788c7e55 1px,transparent 1px);background-size:24px 24px;clip-path:polygon(8% 17%,23% 7%,38% 11%,49% 5%,61% 13%,72% 9%,85% 20%,82% 31%,96% 43%,84% 50%,83% 65%,73% 70%,68% 88%,57% 80%,49% 91%,39% 79%,29% 83%,24% 67%,13% 62%,17% 48%,5% 39%)}.sea{position:absolute;right:4%;bottom:5%;color:#789088;font:11px/1.7 Georgia;letter-spacing:.12em;text-align:right}.mapPin{position:absolute;z-index:3;transform:translate(-50%,-50%);border:0;background:transparent;cursor:pointer;display:grid;justify-items:center;color:var(--red)}.mapPin i{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--red);color:#fff;font-style:normal;box-shadow:0 0 0 7px #fff8,0 5px 15px #65443f55;animation:pulse 2s infinite}.mapPin b{margin-top:8px;padding:3px 6px;background:#fffdf0d9;color:#544a44;font-size:11px;white-space:nowrap}.mapPin:hover{z-index:5;transform:translate(-50%,-50%) scale(1.12)}@keyframes pulse{50%{box-shadow:0 0 0 12px #fff2,0 5px 18px #65443f66}}.emptyMap{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:7px;text-align:center;padding:20px 26px;background:#fffaf0e8;border:1px solid #d4c7b6}.emptyMap b{font:20px STSong}.emptyMap span{font-size:11px;color:#84776e}.placePanel{position:relative;padding:55px 40px;background:#fffaf1}.placePanel h3{font:500 34px STSong;margin:13px 0}.placePanel>p:not(.eyebrow){font-size:14px;line-height:1.9;color:#776b64}.placePanel small{color:var(--red)}.addPlace{margin-top:25px;border:0;background:var(--red);color:#fff;padding:13px 18px;cursor:pointer}.panelClose{position:absolute;right:18px;top:12px;border:0;background:transparent;font-size:25px;cursor:pointer}.removePlace{margin-top:22px;border:0;border-bottom:1px solid var(--red);background:transparent;color:var(--red);padding:6px 0;cursor:pointer}.mapNotice{display:block;margin:-35px auto 25px;border:1px solid var(--line);background:#fffaf1;padding:9px 14px;cursor:pointer}.placeDialog{max-height:90vh;overflow:auto}.placeDialog form{gap:13px}.placeDialog textarea{width:100%;border:1px solid #cfc1b2;padding:12px;resize:vertical}.coord{display:grid;grid-template-columns:1fr 1fr;gap:10px}@media(max-width:800px){.travelLayout{grid-template-columns:1fr}.chinaMap{min-height:430px;border-right:0;border-bottom:1px solid #baccc5}.placePanel{padding:38px 28px}}@media(max-width:520px){.chinaMap{min-height:340px}.mapPin i{width:23px;height:23px}.mapPin b{font-size:9px}.emptyMap{width:72%}.coord{grid-template-columns:1fr}.travel{padding-inline:4vw}}
