@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;500;600;700&display=swap');
:root{--pink:#bd647e;--rose:#edb6c2;--ink:#55434a;--muted:#99858e;--line:#eddae0;--paper:#fffcf8;--bg:#fff4f5;--serif:'Noto Serif SC','SimSun',serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Microsoft YaHei',system-ui,sans-serif;font-size:14px;line-height:1.7}.paper-noise{position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#b6859118 .7px,transparent .7px);background-size:5px 5px;z-index:-1}button,input,textarea{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #be708c;outline-offset:4px}button{border:0;background:transparent}a{color:var(--pink)}.app-shell{max-width:1100px;margin:auto;padding:0 48px 120px}.topbar{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:25px;font-weight:600;letter-spacing:2px}.brand small{display:block;font:9px system-ui;letter-spacing:3px;margin-top:1px}.brand-mark{width:44px;height:44px;border:1px solid #cf8ba0;border-radius:13px;transform:rotate(-8deg);display:grid;place-items:center;color:var(--pink);font:34px var(--serif)}.top-note{font:13px var(--serif);color:var(--muted);letter-spacing:2px}.top-note span{margin-left:20px;color:var(--pink)}.icon-button{border:1px solid var(--line);border-radius:50%;width:38px;height:38px;font-size:21px}.eyebrow{font:10px system-ui;color:var(--pink);letter-spacing:3px;text-transform:uppercase}.hero{position:relative;padding:65px 0 40px}.hero h1{font:500 clamp(32px,4vw,48px)/1.55 var(--serif);letter-spacing:3px;margin:15px 0 15px}.hero h1 em{font-style:normal;color:var(--pink)}.hero p{color:var(--muted);max-width:420px;line-height:2.1}.hero-heart{position:absolute;right:70px;top:75px;font:120px var(--serif);color:#ecc0cd;transform:rotate(15deg)}.tiny-label{display:inline-block;border:1px solid var(--line);background:#fffafbcc;border-radius:20px;padding:5px 16px;color:var(--muted);font-size:11px;letter-spacing:1px}.login-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;padding:15px 0 45px}.cover{position:relative;background:var(--paper);padding:38px 30px 30px;box-shadow:0 12px 40px #98657812;border:1px solid #eee2df;transform:rotate(-3deg);min-height:340px;text-align:center}.tape{position:absolute;top:-15px;left:calc(50% - 42px);width:84px;height:30px;background:#dfb4c9aa;transform:rotate(6deg);clip-path:polygon(2% 0,98% 0,95% 15%,100% 33%,95% 50%,100% 70%,97% 100%,0 100%,4% 70%,0 50%,4% 30%)}.cover-scene{height:225px;background:linear-gradient(145deg,#f9e2de,#edd9e9);position:relative;overflow:hidden;display:grid;place-items:center}.cover-scene:before{content:'';width:175px;height:175px;border:1px solid #c990a34d;border-radius:50%;position:absolute}.cover-doodle{font:90px var(--serif);color:#c17a92;transform:rotate(8deg)}.cover-caption{font:18px var(--serif);margin:20px 0 3px;letter-spacing:2px}.cover small{color:var(--muted);font-size:10px;letter-spacing:2px}.sticker{position:absolute;right:-22px;bottom:30px;background:#f6e9c7;border:1px dashed #c6ac7d;padding:10px 16px;font:15px var(--serif);transform:rotate(12deg)}.form-paper{background:#fffafbe6;border:1px solid var(--line);border-radius:18px;padding:28px}.form-paper h2,.section-title{font:500 23px var(--serif);margin:0 0 10px}.muted{color:var(--muted)}.small{font-size:12px}label{display:block;color:var(--ink);font-size:12px;margin:16px 0 6px}input,textarea{display:block;width:100%;border:1px solid var(--line);background:#fffdfa;border-radius:9px;padding:12px;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:#c7839b;box-shadow:0 0 0 3px #edb6c225}textarea{resize:vertical;min-height:110px}.primary{display:inline-flex;align-items:center;justify-content:center;background:var(--pink);color:white;border-radius:10px;padding:11px 24px;gap:8px}.secondary{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:white;border-radius:10px;padding:10px 20px}.full{width:100%}.form-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.form-actions>*{flex:1}.divider{height:1px;background:var(--line);margin:22px 0}.footer-note{text-align:center;color:var(--muted);font:12px var(--serif);padding:24px 0;letter-spacing:2px}.check{display:flex;gap:9px;align-items:center;margin:14px 0}.check input{width:auto}.error{color:#ad4c67;font-size:13px;white-space:pre-wrap}.bottom-nav{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:23px;padding:10px 30px;border:1px solid #eedde2;border-radius:26px;background:#fffdf9f5;box-shadow:0 8px 30px #82526312;backdrop-filter:blur(12px);z-index:20}.bottom-nav[hidden]{display:none}.bottom-nav button{font-size:11px;min-width:38px;color:var(--muted)}.bottom-nav button span{display:block;font-size:23px;line-height:1.1;margin-bottom:3px}.bottom-nav button.active{color:var(--pink)}.bottom-nav .compose{border-radius:50%;background:var(--pink);color:white;width:44px;height:44px;font-size:29px;line-height:1}.daily-heading{display:flex;align-items:center;justify-content:space-between;margin:12px 0 24px}.filter-row{display:flex;gap:8px;flex-wrap:wrap}.chip{border:1px solid var(--line);border-radius:20px;padding:5px 14px;font-size:12px}.chip.active{background:#f3d8e1;color:#9d526f;border-color:#e7becd}.layout{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:32px}.sidebar{position:sticky;top:24px;align-self:start}.note-card{position:relative;background:#fffaf5;border:1px solid #ecdfd5;padding:25px 22px;margin:15px 0 28px;transform:rotate(2deg)}.note-card h3{font:18px var(--serif);margin:0 0 12px}.note-card p{color:var(--muted);font-size:12px}.note-card .big-number{font:42px var(--serif);color:var(--pink);line-height:1.3}.avatar-pair{display:flex;justify-content:center;margin:12px 0}.avatar{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;background:#efd5df;color:#a9607a;font:18px var(--serif);flex-shrink:0}.avatar.b{background:#e1dceb;color:#8c7fa2}.avatar-pair .avatar{width:58px;height:58px;border:4px solid var(--paper)}.avatar-pair .avatar+.avatar{margin-left:-7px}.post-card{position:relative;border:1px solid #eee0dc;background:var(--paper);padding:24px;margin-bottom:28px;box-shadow:0 5px 16px #87607005}.post-card:nth-child(3n+1):before{content:'';position:absolute;right:30px;top:-10px;width:52px;height:20px;background:#e8c4d0aa;transform:rotate(9deg)}.post-top{display:flex;gap:11px;align-items:center}.author-name{font-size:13px;font-weight:600}.post-time{font-size:10px;color:var(--muted)}.post-top .post-tools{margin-left:auto;display:flex;gap:5px}.post-tools button{font-size:11px;color:var(--muted)}.post-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;margin:17px 0;font-size:14px}.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.media-grid.single{grid-template-columns:1fr}.media-box{position:relative;background:#f5e9ea;border-radius:3px;overflow:hidden;min-height:100px;display:grid;place-items:center}.media-box img{width:100%;height:210px;object-fit:cover;display:block;cursor:zoom-in}.single img{height:auto;max-height:520px;object-fit:contain}.media-box video{width:100%;max-height:360px;background:#2b252a}.media-error{padding:20px;font-size:11px;color:var(--muted)}.post-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px dashed var(--line);margin-top:18px;padding-top:10px}.post-bottom button{font-size:12px;color:var(--muted)}.post-bottom button.liked{color:var(--pink)}.day-badge{font:11px var(--serif);color:var(--muted)}.comment{font-size:12px;padding:8px 0;border-bottom:1px solid #f0e7e5;white-space:pre-wrap;overflow-wrap:anywhere}.comment strong{color:var(--pink);margin-right:7px}.comment-form{display:flex;gap:7px;margin-top:10px}.comment-form input{padding:8px;font-size:12px}.comment-form button{padding:7px 12px}.empty{border:1px dashed #dcb6c5;background:#fffafb88;padding:55px 25px;text-align:center;margin-bottom:25px}.empty .doodle{font:55px var(--serif);color:var(--rose)}.empty h2{font:21px var(--serif)}.empty p{color:var(--muted);font-size:13px}.album-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.album-card{background:var(--paper);padding:9px 9px 13px;box-shadow:0 5px 20px #88646b0a;border:1px solid #eee2dc;cursor:pointer;transform:rotate(-1deg)}.album-card:nth-child(even){transform:rotate(2deg)}.album-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:#f4e1e5}.album-card p{margin:9px 4px 0;font:12px var(--serif);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.profile-grid .form-paper{align-self:start}.storage-bar{height:7px;border-radius:5px;background:#f0e3e7;overflow:hidden;margin:15px 0}.storage-bar div{height:100%;background:#c58299}.preview-files{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.preview-file{background:#f7e7ec;border-radius:9px;overflow:hidden;position:relative}.preview-file img,.preview-file video{width:100%;height:110px;object-fit:cover;display:block}.preview-file button{position:absolute;right:3px;top:3px;background:#fff;border-radius:50%;width:25px;height:25px}.preview-file small{display:block;padding:5px;font-size:10px;word-break:break-all}.file-label{border:1px dashed #cea0b2;background:#fff6f8;padding:20px;text-align:center;border-radius:10px;cursor:pointer;font-size:14px}input[type=file]{font-size:12px}.progress{font-size:12px;color:var(--pink);white-space:pre-wrap}dialog{border:1px solid var(--line);border-radius:18px;padding:0;background:var(--paper);color:var(--ink);width:min(560px,calc(100% - 24px));max-height:90vh;box-shadow:0 25px 100px #50333a30}dialog::backdrop{background:#49303970;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:22px 25px 0}.dialog-head h2{font:21px var(--serif);margin:0}.dialog-body{padding:10px 25px 25px}.close{font-size:24px;color:var(--muted)}dialog.viewer{background:#191518;border:0;width:min(1100px,100%);max-width:100%;height:94vh;color:#fff}dialog.viewer .dialog-head{height:65px;padding-top:0}dialog.viewer .close{color:#fff}dialog.viewer img{width:100%;height:calc(94vh - 130px);object-fit:contain;display:block}dialog.viewer p{text-align:center;font-size:12px;color:#dcc6cf;margin:10px}#toast{position:fixed;bottom:115px;left:50%;transform:translateX(-50%);z-index:99;background:#634b56;color:white;padding:11px 22px;border-radius:12px;box-shadow:0 5px 20px #50333a20;max-width:90vw;font-size:13px}.connection-error{background:#fff9e9;border:1px solid #ebd9a7;border-radius:10px;padding:15px;font-size:12px;margin:20px 0}.loading{text-align:center;padding:100px 0;color:var(--muted)}.month-title{font:20px var(--serif);margin:30px 0 18px}.date-ribbon{border-top:1px dashed var(--line);padding-top:18px;margin:30px 0;color:var(--muted);font:12px var(--serif);letter-spacing:2px}.key-display{font:12px monospace;word-break:break-all;background:#f6e8ee;border-radius:8px;padding:14px;margin-top:12px}
@media(max-width:760px){.app-shell{padding:0 22px 120px}.topbar{height:85px}.brand{font-size:22px}.top-note{display:none}.hero{padding:38px 0 25px}.hero h1{font-size:31px;letter-spacing:2px}.hero-heart{right:0;top:50px;font-size:70px;opacity:.5}.hero p{max-width:290px;font-size:12px}.login-layout{grid-template-columns:1fr;gap:35px}.cover{width:75%;max-width:320px;margin:0 auto;padding:22px 20px 18px;min-height:250px}.cover-scene{height:170px}.cover-caption{font-size:16px}.cover-scene:before{width:130px;height:130px}.cover-doodle{font-size:70px}.sticker{font-size:12px;right:-16px;bottom:24px}.form-paper{padding:22px}.layout{grid-template-columns:1fr}.sidebar{display:none}.daily-heading{gap:12px;align-items:flex-start;flex-direction:column}.post-card{padding:18px;margin-bottom:22px}.media-box img{height:165px}.album-grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-grid{grid-template-columns:1fr}.bottom-nav{bottom:max(14px,env(safe-area-inset-bottom));padding:9px 25px;gap:21px}.hero.compact .hero-heart{font-size:65px}.dialog-body{padding:10px 20px 22px}.dialog-head{padding:20px 20px 0}.empty{padding:35px 20px}.eyebrow{font-size:9px}.topbar .icon-button{width:34px;height:34px}.preview-files{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:no-preference){.post-card{animation:appear .3s ease-out}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}
