*{box-sizing:border-box} :root{--ink:#41373e;--muted:#927d89;--pink:#e7cbd9;--line:#c4a9b8;--paper:#fcf9fa}body{margin:0;color:var(--ink);background-color:#faf8f9;background-image:linear-gradient(#b7a9b52a 1px,transparent 1px),linear-gradient(90deg,#b7a9b52a 1px,transparent 1px),radial-gradient(#eccddd77 1px,transparent 2px);background-size:66px 66px,66px 66px,21px 29px;font-family:'Microsoft YaHei','PingFang SC',sans-serif;font-size:13px}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #8a607a;outline-offset:3px}button:disabled{cursor:default;opacity:.55}[hidden]{display:none!important}.primary{padding:13px 22px;background:var(--pink);border:1px solid #a98599;box-shadow:3px 4px #c4a1b52a}.primary:hover{background:#f0dce7}.plain{border:0;background:none;color:var(--muted);padding:12px;text-decoration:underline;font-size:11px}.small{font-size:11px;letter-spacing:1px;line-height:1.8;color:var(--muted)}#cover{min-height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:22px;text-align:center}.cover-ornament{font-size:43px;color:#a78198}#cover>img{width:min(43vh,340px);height:auto}#cover h1{font:italic 45px Georgia;margin:7px 0}#cover>p{font-size:12px;color:#927b89;line-height:1.9}#cover .primary{margin-top:12px}#cover.opening{animation:open-letter .65s ease forwards}#desktop{height:100dvh;overflow:hidden;position:relative}header{height:66px;border-bottom:1px solid #c9b6c477;background:#fcf9faaf;display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:relative;z-index:5}header a{color:var(--ink);text-decoration:none;font-size:25px}header strong{font:italic 22px Georgia;margin-left:10px}header a span{font-size:10px;letter-spacing:2px;margin-left:18px;color:#967c8b}header>div{display:flex;align-items:center;gap:16px}header button{background:#f7edf2;border:1px solid #cdb8c5;padding:7px 12px;border-radius:4px;font-size:11px}#wallet{font-size:11px;color:#876879}.desk-title{position:absolute;left:10%;top:22%;pointer-events:none}.desk-title p{font:italic 19px Georgia;color:#a48a99}.desk-title h1{font-family:'SimSun',serif;font-weight:400;font-size:40px;letter-spacing:4px;margin:18px 0}.desk-title span{font-size:12px;color:#a08c97}.paper{position:absolute;pointer-events:none;background:#fffdfd;border:1px solid #c5b3bf;box-shadow:7px 8px #dfc9d675}.paper.one{left:12%;top:48%;width:200px;padding:20px 25px;font:italic 38px Georgia;transform:rotate(-7deg);background-image:repeating-linear-gradient(transparent 0 30px,#cdb9c744 30px 31px)}.paper.one span{font-size:58px;float:right;color:#bb91a9}.paper.two{left:35%;top:55%;background:radial-gradient(#fff 2px,transparent 3px),#e9d0de;background-size:12px 12px;width:185px;padding:26px;font-size:45px;transform:rotate(9deg);text-align:center}.paper.two small{display:block;font:italic 12px Georgia}.spark{position:absolute;font-size:80px;color:#b98fa7;pointer-events:none}.s1{right:12%;top:17%;color:#4a3945}.s2{left:6%;bottom:20%}.beads{position:absolute;writing-mode:vertical-rl;letter-spacing:22px;font-size:19px;border-left:1px dotted #866f7e;padding:12px;top:100px;color:#a37a93;pointer-events:none}.beads.left{left:2%}.beads.right{right:2%}#buddy{position:absolute;right:11%;bottom:22%;width:220px;border:0;background:none;padding:0;z-index:3}#buddy img{width:100%;display:block}#buddy span{display:inline-block;background:#fff9fcda;border:1px solid var(--line);border-radius:20px;padding:7px 15px;font-size:10px}#buddy:hover img{transform:rotate(-3deg)}#buddy-speech{position:absolute;right:12%;bottom:57%;max-width:240px;background:#fff9fc;border:1px dashed #bb95ac;padding:14px 18px;line-height:1.9;z-index:4;display:none}#buddy-speech.show{display:block}#dock{position:absolute;bottom:35px;left:50%;transform:translateX(-50%);display:flex;gap:10px;padding:12px 18px;background:#faf6f8e8;border:1px solid #c9afc0;box-shadow:0 7px 24px #8b698514;border-radius:20px;z-index:1000;backdrop-filter:blur(14px)}.dock-app{width:78px;border:0;background:none;position:relative;padding:0 4px}.dock-app .icon{width:48px;height:48px;border:1px solid #b998ad;background:radial-gradient(#fff 1.5px,transparent 2px),#e5c8d8;background-size:10px 10px;border-radius:12px;margin:auto;display:grid;place-items:center;font-size:25px;font-family:Georgia}.dock-app:nth-child(even) .icon{background-color:#eee8ed}.dock-app small{display:block;font-size:10px;margin-top:7px;white-space:nowrap}.dock-app.running:after{content:'';position:absolute;bottom:-7px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#966d86}.dock-app:hover .icon{transform:translateY(-4px)}.dock-hint{position:absolute;bottom:7px;width:100%;text-align:center;font-size:9px;letter-spacing:1px;color:#a38c99}.window{position:absolute;width:580px;max-width:calc(100vw - 32px);background:#fcf9fbee;border:1px solid #bda0b1;box-shadow:0 18px 65px #69526226;border-radius:12px;overflow:hidden;backdrop-filter:blur(18px);animation:appear .22s ease-out}.window-bar{height:45px;display:flex;align-items:center;justify-content:space-between;padding:0 13px 0 18px;background:#ead7e3;cursor:grab;touch-action:none;border-bottom:1px solid #c3a9ba;user-select:none}.window-bar strong{font-size:12px;font-weight:400}.window-controls{display:flex;gap:6px}.window-controls button{border:0;background:#fff7fb7a;border-radius:50%;width:26px;height:26px;font-size:17px}.window-body{padding:25px;max-height:calc(100dvh - 240px);overflow:auto;scrollbar-width:thin}.window-body h2{font:400 27px 'SimSun',serif;margin:0 0 14px}.desc{font-size:11px;line-height:1.9;color:#907b89}.letter{white-space:pre-wrap;line-height:2.25;background:repeating-linear-gradient(transparent 0 29px,#d6c3cf55 29px 30px);padding:15px 5px;font-family:'SimSun',serif}.signature{text-align:right;color:#8b6a7f;font-size:12px}.gallery{display:flex;gap:16px;overflow-x:auto;padding:16px 3px;scroll-snap-type:x mandatory}.photo{min-width:190px;width:190px;background:white;border:1px solid #d4bfcd;padding:10px;transform:rotate(-2deg);scroll-snap-align:center}.photo:nth-child(even){transform:rotate(2deg)}.photo img{width:168px;height:170px;object-fit:cover}.photo textarea{width:100%;border:0;resize:none;background:#fff;color:#8c7382;padding:9px 2px;font-size:11px}.photo button{background:none;border:0;font-size:10px;color:#9b8291}.upload{display:inline-block;background:#eddae5;border:1px solid #b897ac;padding:10px 15px;cursor:pointer;font-size:12px}.upload input{display:none}.route{position:relative;margin:24px 0 10px;padding:0 0 0 36px}.route:before{content:'';position:absolute;top:12px;bottom:30px;left:11px;border-left:2px dashed #b18b9f}.route-stop{position:relative;margin-bottom:20px;border:1px solid #d6c1ce;background:#fffafd;padding:15px}.route-stop:before{content:'♡';position:absolute;left:-37px;top:10px;border:1px solid #c0a4b3;background:#f3e3ec;border-radius:50%;width:25px;height:25px;text-align:center;line-height:25px}.route-stop label{display:block;font-size:10px;color:#9b7e8f}.route-stop input,.route-stop textarea{width:100%;border:0;border-bottom:1px solid #eadbe4;background:none;padding:8px 0;resize:vertical}.status{font-size:12px;line-height:1.8;padding:12px 0;color:#927487;min-height:40px}.gamebar{display:flex;justify-content:space-between;background:#f0e6ed;padding:11px 13px;margin:15px 0;font-size:12px}.field{height:270px;position:relative;overflow:hidden;background:radial-gradient(#fff 1px,transparent 2px),#eee1e9;background-size:18px 18px;border:1px solid #d0b8c6;border-radius:8px}.pearl{position:absolute;width:46px;height:46px;border:1px solid #bc9caf;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#f4e9ef 40%,#d9c2d0);box-shadow:0 3px 6px #ac8c9f25;font-size:22px;color:#9b7d8e}.field-message{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:#9b7e91;font-size:14px;line-height:2.4}.puzzle{display:grid;grid-template-columns:1fr 1fr;gap:5px;width:min(100%,330px);aspect-ratio:1;margin:18px auto}.tile{border:2px solid #e0ccda;background-image:url(room.png);background-size:200% 200%;position:relative}.tile.selected{border:3px solid #805f75}.tile span{position:absolute;bottom:4px;right:4px;background:#fff9;border-radius:50%;width:21px;height:21px;font-size:11px;line-height:21px}.connect-board{height:300px;position:relative;background:#f5ecf1;border:1px solid #d0b7c7;border-radius:8px}.connect-board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.point{position:absolute;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;border:1px solid #b18ca2;background:#fffafd;color:#927085;z-index:2}.point.done{background:#d9bbce;color:#5c3f52}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.actions button{font-size:11px}dialog{width:min(480px,calc(100vw - 32px));max-height:85dvh;overflow:auto;background:#fcf9fb;border:1px solid #bca2b1;border-radius:12px;padding:30px;color:#5a4553}dialog::backdrop{background:#4c354966;backdrop-filter:blur(8px)}.close-dialog{position:absolute;right:10px;top:8px;border:0;background:none;font-size:25px}label{display:block;font-size:12px;margin:15px 0}input,textarea{display:block;background:#fffafd;border:1px solid #d4becd;padding:11px;width:100%;margin-top:6px}#toast{position:fixed;left:50%;bottom:145px;transform:translateX(-50%);background:#76596d;color:white;border-radius:20px;padding:12px 20px;z-index:2000;display:none;max-width:90vw;font-size:12px}#toast.show{display:block}@keyframes appear{from{opacity:0;transform:translateY(9px)}}@keyframes open-letter{to{opacity:0;transform:scale(1.04)}}@media(max-width:650px){header{height:56px;padding:0 15px}header strong{font-size:18px;margin-left:4px}header a span{display:none}header>div{gap:8px}header button{padding:6px 9px}.desk-title{top:17%;left:10%}.desk-title h1{font-size:29px;letter-spacing:2px}.desk-title p{font-size:14px}.desk-title span{font-size:10px}.paper.one{width:145px;font-size:30px;padding:15px;top:40%;left:9%}.paper.two{width:125px;left:46%;top:48%;font-size:35px;padding:18px}#buddy{width:145px;right:7%;bottom:24%}#buddy-speech{right:7%;bottom:49%;max-width:210px;font-size:11px}#dock{bottom:29px;width:calc(100% - 20px);gap:2px;padding:12px 5px;border-radius:15px;justify-content:space-around}.dock-app{width:16%;padding:0}.dock-app .icon{width:40px;height:40px;font-size:22px}.dock-app small{font-size:9px}.dock-hint{font-size:8px;bottom:5px}.window{width:calc(100vw - 20px);max-width:none;left:10px!important;top:70px!important}.window-body{max-height:calc(100dvh - 220px);padding:20px}.window-bar{cursor:default}.window-body h2{font-size:23px}.spark{font-size:50px}.field{height:240px}.connect-board{height:260px}.beads{font-size:13px}.s1{right:8%;top:13%}#toast{bottom:130px}.photo{min-width:170px;width:170px}.photo img{width:148px;height:160px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

#cover>img{width:auto;max-width:80vw;height:38vh;object-fit:contain}#buddy img{max-height:30vh;object-fit:contain}

