@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@300;400;500;600;700&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Ma+Shan+Zheng&display=swap";:root{--sanyu-pink:#f4dcd5;--sanyu-rose:#dc8f88;--sanyu-vermilion:#c85449;--sanyu-ochre:#d4b47a;--sanyu-mustard:#b09665;--sanyu-cream:#fbf5eb;--sanyu-paper:#f0e6d4;--sanyu-mist:#ecece8;--sanyu-ink:#3d3530;--sanyu-charcoal:#665a52;--sanyu-jade:#9db09b;--sanyu-sky:#b8c8d0;--sanyu-shadow:#3d35300d;--sanyu-line:#3d353038;--font-serif-cn:"Noto Serif SC", "STSong", "SimSun", serif;--font-serif-en:"Cormorant Garamond", "Times New Roman", serif;--font-brush:"Ma Shan Zheng", "STKaiti", cursive;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--sanyu-ink);background-color:var(--sanyu-cream);font-family:var(--font-serif-cn);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.7}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0;padding:0}body{background-color:#fbf6ec;background-image:linear-gradient(#0000 0%,#dc8f8824 6%,#0000 12%,#9db09b29 20%,#0000 28%,#d4b47a24 36%,#0000 45%,#b8c8d021 54%,#0000 62%,#dc8f881f 70%,#0000 78%,#9db09b29 86%,#0000 94%),linear-gradient(90deg,#fbf6ec99 0%,#0000 30% 70%,#fbf6ec99 100%),radial-gradient(500px 180px at 25% 25%,#dc8f882e 0%,#0000 65%),radial-gradient(450px 160px at 78% 40%,#9db09b2e 0%,#0000 70%),radial-gradient(400px 140px at 15% 60%,#d4b47a29 0%,#0000 65%),radial-gradient(480px 180px at 85% 78%,#b8c8d029 0%,#0000 65%),radial-gradient(380px 140px at 40% 92%,#dc8f8824 0%,#0000 65%),repeating-linear-gradient(45deg,#0000,#0000 2px,#3d353001 2px 4px);background-size:100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,100% 100%,auto;background-attachment:fixed}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}h1,h2,h3,h4,h5,h6{letter-spacing:.05em;margin:0;font-weight:500}p{margin:0}ul{margin:0;padding:0;list-style:none}.brush-font{font-family:var(--font-brush)}.serif-en{font-family:var(--font-serif-en);font-style:italic}.vertical-text{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.4em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--sanyu-line);border-radius:3px}.seal{background:var(--sanyu-vermilion);color:var(--sanyu-cream);font-family:var(--font-brush);letter-spacing:.2em;border-radius:2px;justify-content:center;align-items:center;padding:6px 10px;line-height:1;display:inline-flex;box-shadow:0 1px #b8342a66}.app-shell{background:0 0;flex-direction:column;max-width:500px;min-height:100vh;margin:0 auto;display:flex;position:relative;overflow-x:hidden}.app-shell:before{content:"";filter:blur(30px);pointer-events:none;z-index:0;background:linear-gradient(90deg,#0000,#dc8f881a 20%,#d4b47a24 50%,#9db09b1f 80%,#0000);height:60px;position:fixed;top:25%;left:0;right:0}.app-shell:after{content:"";filter:blur(35px);pointer-events:none;z-index:0;background:linear-gradient(90deg,#0000,#9db09b24 20%,#b8c8d01a 55%,#dc8f881a 85%,#0000);height:80px;position:fixed;top:65%;left:0;right:0}.app-shell>*{z-index:1;position:relative}.site-header{-webkit-backdrop-filter:blur(14px);z-index:30;background:linear-gradient(#fbf5ebbf,#fbf5eb8c);border-bottom:1px solid #3d35300f;justify-content:space-between;align-items:center;padding:18px 22px;display:flex;position:sticky;top:0}.site-header .date-badge{cursor:pointer;border:1px solid #1a161326;border-radius:2px;align-items:center;gap:8px;padding:8px 14px;transition:all .3s;display:flex}.site-header .date-badge:hover{border-color:var(--sanyu-vermilion);background:#b8342a0d}.site-header .date-badge .mono{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);letter-spacing:.13em;font-size:12px;font-style:italic}.site-header .date-badge .dot{color:var(--sanyu-line);font-size:11px}.site-header .date-badge .meta{font-family:var(--font-serif-cn);color:var(--sanyu-vermilion);letter-spacing:.18em;font-size:11px}.site-header .menu-btn{cursor:pointer;background:0 0;border:1px solid #1a161326;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;transition:all .3s;display:flex}.site-header .menu-btn:hover{border-color:var(--sanyu-vermilion);background:#b8342a0f}.site-header .menu-btn span{background:var(--sanyu-ink);width:18px;height:1px;transition:all .3s}.site-header .menu-btn.open span:first-child{transform:translateY(6px)rotate(45deg)}.site-header .menu-btn.open span:nth-child(2){opacity:0}.site-header .menu-btn.open span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.drawer-mask{z-index:40;opacity:0;pointer-events:none;background:#1a161359;transition:opacity .35s;position:fixed;inset:0}.drawer-mask.open{opacity:1;pointer-events:auto}.drawer{background:var(--sanyu-cream);z-index:50;border-left:1px solid #1a16131a;flex-direction:column;width:52%;max-width:220px;height:100vh;padding:28px 20px 40px;transition:transform .4s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-20px 0 60px #1a161326}.drawer.open{transform:translate(0)}.drawer .drawer-head{border-bottom:1px solid #1a161326;justify-content:space-between;align-items:baseline;margin-bottom:40px;padding-bottom:20px;display:flex}.drawer .drawer-head .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.25em;font-size:24px}.drawer .drawer-head .en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.2em;font-size:12px;font-style:italic}.drawer nav{flex-direction:column;gap:4px;display:flex}.drawer nav a{cursor:pointer;border-bottom:1px dashed #1a16131f;justify-content:space-between;align-items:baseline;padding:18px 14px;transition:all .3s;display:flex}.drawer nav a .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.25em;font-size:22px;transition:color .3s}.drawer nav a .en{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.15em;font-size:13px;font-style:italic}.drawer nav a:hover .cn,.drawer nav a.active .cn{color:var(--sanyu-vermilion)}.drawer nav a.active{border-left:2px solid var(--sanyu-vermilion);background:linear-gradient(90deg,#b8342a0f,#0000)}.drawer .drawer-foot{text-align:center;font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.6;letter-spacing:.2em;margin-top:auto;padding-top:30px;font-size:11px;font-style:italic}.site-main{touch-action:pan-y;flex:1;min-height:50vh;padding:24px 18px 96px;animation:.35s cubic-bezier(.25,.46,.45,.94) mainFade;position:relative}.site-main.slide-l{animation:.42s cubic-bezier(.25,.46,.45,.94) slideFromRight}.site-main.slide-r{animation:.42s cubic-bezier(.25,.46,.45,.94) slideFromLeft}@keyframes mainFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideFromRight{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}.site-tabbar{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#f5ede0e6,#f5ede0fa);border-top:1px solid #1a16131f;grid-template-columns:repeat(8,1fr);padding:8px 2px;display:grid;position:sticky;bottom:0}.site-tabbar a{cursor:pointer;flex-direction:column;justify-content:center;align-items:center;padding:8px 2px;transition:color .3s;display:flex;position:relative}.site-tabbar a .cn{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.1em;font-size:11px;transition:color .3s}.site-tabbar a .en{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.55;letter-spacing:.1em;margin-top:2px;font-size:9px;font-style:italic}.site-tabbar a.active .cn{color:var(--sanyu-vermilion);font-weight:500}.site-tabbar a.active:before{content:"";background:var(--sanyu-vermilion);width:20px;height:2px;position:absolute;top:0;left:50%;transform:translate(-50%)}.site-footer{text-align:center;font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.65;letter-spacing:.2em;border-top:1px solid #1a16131a;padding:24px 22px;font-size:11px;font-style:italic;line-height:1.9}.site-footer .cn{font-family:var(--font-serif-cn);letter-spacing:.3em;margin-bottom:6px;font-style:normal;display:block}.home{flex-direction:column;gap:32px;display:flex}.home .hero-visual{order:-1;justify-content:center;align-items:center;margin-bottom:8px;display:flex;position:relative}.home .hero-visual .frame{aspect-ratio:3/4;background:linear-gradient(160deg,#f2d8d0 0%,#ebe0cc 60%,#d4c2a8 100%);border:6px solid #f5ede0;justify-content:center;align-items:flex-end;width:100%;padding-bottom:24px;display:flex;position:relative;box-shadow:0 20px 40px #1a161324,0 6px 12px #1a161314,inset 0 0 30px #d9797026}.home .hero-visual .frame:before{content:"";border:1px solid var(--sanyu-charcoal);opacity:.3;pointer-events:none;position:absolute;inset:-12px}.home .hero-visual .signature{position:absolute;bottom:20px;right:20px}.home .hero-visual .caption{font-family:var(--font-brush);color:var(--sanyu-charcoal);letter-spacing:.2em;opacity:.85;font-size:20px;position:absolute;top:18px;left:20px}.home .hero{padding:8px 4px;position:relative}.home .hero-title{font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.1em;margin-bottom:16px;font-size:36px;font-weight:300;line-height:1.35}.home .hero-title .accent{color:var(--sanyu-vermilion);font-weight:500}.home .hero-sub{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);letter-spacing:.1em;opacity:.78;margin-bottom:24px;font-size:14px;font-style:italic;line-height:1.7}.home .hero-poem{border-left:2px solid var(--sanyu-vermilion);color:var(--sanyu-charcoal);letter-spacing:.08em;margin:24px 0;padding-left:16px;font-size:14px;line-height:2}.home .hero-poem .author{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.15em;margin-top:10px;font-size:12px;font-style:italic;display:block}.home .hero-actions{gap:12px;margin-top:26px;display:flex}.btn-ink{background:var(--sanyu-ink);color:var(--sanyu-cream);font-family:var(--font-serif-cn);letter-spacing:.25em;border:1px solid var(--sanyu-ink);flex:1;padding:13px 18px;font-size:13px;transition:all .35s}.btn-ink:hover,.btn-ink:active{background:var(--sanyu-vermilion);border-color:var(--sanyu-vermilion)}.btn-outline{color:var(--sanyu-ink);border:1px solid var(--sanyu-ink);font-family:var(--font-serif-cn);letter-spacing:.25em;background:0 0;flex:1;padding:13px 18px;font-size:13px;transition:all .35s}.btn-outline:hover,.btn-outline:active{background:var(--sanyu-ink);color:var(--sanyu-cream)}.modules{border-top:1px solid #1a161326;margin-top:40px;padding-top:32px}.modules-title{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:24px;display:flex}.modules-title h2{font-family:var(--font-serif-cn);letter-spacing:.4em;color:var(--sanyu-ink);font-size:24px;font-weight:400}.modules-title .en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.1em;font-size:14px;font-style:italic}.modules-title .decor{background:linear-gradient(90deg, var(--sanyu-vermilion), transparent);flex:1;align-self:center;min-width:40px;height:1px;margin-left:8px}.modules-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.module-card{-webkit-backdrop-filter:blur(10px);cursor:pointer;text-align:center;background:#fffdf866;border:1px solid #3d35300f;border-radius:4px;flex-direction:column;align-items:center;min-height:200px;padding:26px 14px 20px;transition:all .4s;display:flex;position:relative;overflow:hidden}.module-card:before{content:"";pointer-events:none;border:1px solid #0000;transition:border-color .4s;position:absolute;inset:8px}.module-card:hover,.module-card:active{background:#fffdf8eb;transform:translateY(-3px);box-shadow:0 12px 24px #1a16131a}.module-card:hover:before,.module-card:active:before{border-color:#b8342a73}.module-card .icon-wrap{justify-content:center;align-items:center;height:70px;margin-bottom:14px;display:flex}.module-card h3{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.2em;margin-bottom:6px;font-size:22px}.module-card .en-label{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.15em;margin-bottom:12px;font-size:12px;font-style:italic}.module-card .brief{color:var(--sanyu-charcoal);letter-spacing:.03em;opacity:.8;font-size:11px;line-height:1.8}.module-card .index{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.15em;opacity:.6;font-size:11px;font-style:italic;position:absolute;top:10px;right:14px}.module-page{max-width:100%;margin:0 auto}.page-header{border-bottom:1px solid #1a161326;flex-direction:column;gap:16px;margin-bottom:28px;padding-bottom:20px;display:flex;position:relative}.page-header .cn-title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.2em;font-size:40px;line-height:1}.page-header .en-title{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.25em;margin-top:8px;font-size:14px;font-style:italic;display:block}.page-header .quote{border-left:2px solid var(--sanyu-vermilion);color:var(--sanyu-charcoal);opacity:.85;letter-spacing:.06em;margin-top:6px;padding-left:14px;font-size:12px;line-height:1.9}.stat-row{-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#f4dcd540,#9db09b24 60%,#d4b47a2e);border:1px solid #3d35300a;border-radius:4px;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:28px;padding:20px 18px;display:grid;position:relative}.stat-row:before{content:"";pointer-events:none;border:1px solid #1a161326;position:absolute;inset:6px}.stat-cell{text-align:center;padding:8px 4px}.stat-cell .num{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);font-size:32px;font-weight:500;line-height:1}.stat-cell .label{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.25em;opacity:.75;margin-top:8px;font-size:11px}.two-col{flex-direction:column;gap:40px;display:flex}.section-label{border-bottom:1px dashed #1a161333;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:16px;padding-bottom:10px;display:flex}.section-label h3{font-family:var(--font-serif-cn);letter-spacing:.25em;color:var(--sanyu-ink);font-size:17px}.section-label .en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;font-size:12px;font-style:italic}.section-label .count{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.6;margin-left:auto;font-size:11px;font-style:italic}.fitness-log{flex-direction:column;gap:12px;display:flex}.log-item{background:#fffdf859;border:1px solid #3d35300f;grid-template-columns:60px 1fr;align-items:center;gap:14px;padding:14px 16px;transition:all .3s;display:grid;position:relative}.log-item:hover,.log-item:active{background:#fffdf8f2;border-color:#b8342a66}.log-item .date{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);font-size:22px;font-style:italic;line-height:1}.log-item .date .month{color:var(--sanyu-charcoal);letter-spacing:.2em;opacity:.7;font-size:10px;font-style:normal;font-family:var(--font-serif-cn);margin-top:4px;display:block}.log-item .desc h4{font-family:var(--font-serif-cn);letter-spacing:.08em;color:var(--sanyu-ink);margin-bottom:4px;font-size:14px}.log-item .desc p{color:var(--sanyu-charcoal);opacity:.75;letter-spacing:.02em;font-size:11px;line-height:1.6}.log-item .tag{background:var(--sanyu-pink);color:var(--sanyu-vermilion);letter-spacing:.15em;border-radius:2px;padding:3px 8px;font-size:10px;position:absolute;top:12px;right:14px}.progress-list{flex-direction:column;gap:18px;display:flex}.progress-item .head{letter-spacing:.06em;color:var(--sanyu-charcoal);flex-wrap:wrap;justify-content:space-between;gap:4px;margin-bottom:8px;font-size:12px;display:flex}.progress-item .head .num{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);font-size:12px;font-style:italic}.progress-track{background:#1a161314;border-radius:3px;height:5px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--sanyu-rose), var(--sanyu-vermilion));border-radius:3px;height:100%}.book-shelf{flex-direction:column;gap:14px;display:flex}.book-card{background:#fffdf859;border:1px solid #3d35300f;gap:14px;padding:16px;transition:all .35s;display:flex}.book-card:hover,.book-card:active{transform:translateY(-2px);box-shadow:0 8px 20px #1a161314}.book-info{flex:1;min-width:0}.book-info h4{font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.06em;margin-bottom:4px;font-size:15px}.book-info .author{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;margin-bottom:8px;font-size:12px;font-style:italic}.book-info .note{color:var(--sanyu-charcoal);opacity:.85;letter-spacing:.02em;font-size:11px;line-height:1.75}.book-info .meta{color:var(--sanyu-charcoal);opacity:.75;flex-wrap:wrap;gap:8px;margin-top:10px;font-size:11px;display:flex}.book-info .stars{color:var(--sanyu-vermilion);letter-spacing:.08em}.pet-hero{text-align:center;background:linear-gradient(120deg,#f2d8d059,#c9a55a33);border:1px solid #3d353014;flex-direction:column;align-items:center;gap:24px;margin-bottom:36px;padding:28px 20px;display:flex}.pet-portrait{border:6px solid var(--sanyu-cream);background:linear-gradient(135deg,#f2d8d0,#ebe0cc);border-radius:50%;justify-content:center;align-items:center;width:180px;height:180px;display:flex;overflow:hidden;box-shadow:0 12px 24px #1a161326}.pet-info h3{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.15em;margin-bottom:6px;font-size:36px}.pet-info .breed{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;margin-bottom:16px;font-size:13px;font-style:italic}.pet-info .bio{color:var(--sanyu-charcoal);opacity:.9;letter-spacing:.04em;text-align:left;margin-bottom:18px;font-size:13px;line-height:1.9}.pet-info .tags{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.pet-info .tags span{letter-spacing:.15em;color:var(--sanyu-charcoal);background:#fffdf8bf;border:1px solid #1a161326;padding:4px 10px;font-size:11px}.pet-members{scrollbar-width:none;gap:10px;margin-bottom:8px;padding:4px 2px 12px;display:flex;overflow-x:auto}.pet-members::-webkit-scrollbar{display:none}.pet-member{cursor:pointer;opacity:.6;border-radius:8px;flex-direction:column;flex-shrink:0;align-items:center;gap:5px;padding:4px 8px;transition:all .3s;display:flex}.pet-member:hover{opacity:1}.pet-member.active{opacity:1;background:#c854490f}.pet-member .pn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;font-size:14px}.pet-member.active .pn{color:var(--sanyu-vermilion)}.pet-member.add{border:1px dashed #3d353033;border-radius:30px;flex-direction:column;justify-content:center;align-items:center;min-width:64px;min-height:76px;padding:8px 14px;display:flex}.pet-member.add .plus{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);margin-bottom:4px;font-size:24px;line-height:1}.pet-member.add:hover{border-color:var(--sanyu-vermilion);background:#c854490a}.pet-profile{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(160deg,#f4dcd547,#d4b47a29 60%,#9db09b29);border:1px solid #3d35300d;border-radius:6px;flex-direction:column;align-items:center;gap:20px;padding:24px 20px;display:flex}.pet-portrait-large{justify-content:center;display:flex}.pet-info-view,.pet-info-edit{width:100%}.pet-name-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.pet-name-row h3{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.15em;font-size:36px}.edit-btn{font-family:var(--font-serif-cn);color:var(--sanyu-vermilion);letter-spacing:.2em;background:0 0;border:1px solid #c8544959;border-radius:12px;padding:5px 12px;font-size:12px;transition:all .3s}.edit-btn:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream)}.pet-info-view .breed{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;margin-bottom:14px;font-size:13px;font-style:italic}.pet-info-view .bio{color:var(--sanyu-charcoal);opacity:.9;letter-spacing:.04em;margin-bottom:14px;font-size:13px;line-height:1.9}.pet-info-view .tags{flex-wrap:wrap;gap:6px;display:flex}.pet-info-view .tags span{letter-spacing:.15em;color:var(--sanyu-charcoal);background:#fffdf899;border:1px solid #3d35301a;border-radius:12px;padding:3px 10px;font-size:11px}.pet-info-edit .edit-field{flex-direction:column;margin-bottom:14px;display:flex}.pet-info-edit .edit-field label{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.2em;margin-bottom:6px;font-size:14px}.pet-info-edit input,.pet-info-edit textarea{font-family:var(--font-serif-cn);color:var(--sanyu-ink);resize:none;background:0 0;border:none;border-bottom:1px solid #3d353040;outline:none;padding:8px 4px;font-size:14px;line-height:1.8}.pet-info-edit textarea{border:1px dashed #3d353033;border-radius:3px;padding:10px 12px}.pet-info-edit input:focus,.pet-info-edit textarea:focus{border-color:var(--sanyu-vermilion)}.edit-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.btn-outline-mini,.btn-ink-mini{font-family:var(--font-serif-cn);letter-spacing:.25em;cursor:pointer;border-radius:2px;padding:8px 18px;font-size:12px;transition:all .3s}.btn-outline-mini{color:var(--sanyu-charcoal);background:0 0;border:1px solid #3d353040}.btn-ink-mini{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border:1px solid var(--sanyu-vermilion)}.btn-outline-mini:hover{background:#3d35300f}.btn-ink-mini:hover{background:var(--sanyu-ink);border-color:var(--sanyu-ink)}.avatar-upload .upload-row{align-items:center;gap:12px;display:flex}.avatar-upload .preview{border:2px solid var(--sanyu-cream);width:60px;height:60px;color:var(--sanyu-charcoal);opacity:.75;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden;box-shadow:0 4px 12px #3d35301f}.care-list{flex-direction:column;gap:8px;display:flex}.care-item{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf859;border:1px solid #3d35300f;border-radius:3px;grid-template-columns:60px 1fr auto auto;align-items:center;gap:12px;padding:14px 16px;display:grid}.care-item .d{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.1em;font-size:12px;font-style:italic}.care-item .t{font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.05em;font-size:13px}.care-item .s{letter-spacing:.2em;border-radius:2px;padding:3px 10px;font-size:10px}.care-item .s.done{color:var(--sanyu-jade);background:#9db09b33}.care-item .s.todo{color:var(--sanyu-vermilion);background:#c8544924}.timeline{padding-left:24px;position:relative}.timeline:before{content:"";background:linear-gradient(180deg, var(--sanyu-vermilion), #b8342a1a);width:1px;position:absolute;top:0;bottom:0;left:5px}.timeline-item .del-btn{width:22px;height:22px;color:var(--sanyu-charcoal);cursor:pointer;opacity:.4;background:0 0;border:1px solid #3d353026;border-radius:50%;font-size:14px;line-height:1;transition:all .3s;position:absolute;top:12px;right:0}.timeline-item .del-btn:hover{opacity:1;background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion)}.timeline-item:before{content:"";background:var(--sanyu-vermilion);border:2px solid var(--sanyu-cream);border-radius:50%;width:10px;height:10px;position:absolute;top:18px;left:-22px}.timeline-item .time{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;margin-bottom:6px;font-size:12px;font-style:italic}.timeline-item h4{font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.08em;margin-bottom:4px;font-size:14px}.timeline-item p{color:var(--sanyu-charcoal);opacity:.85;font-size:12px;line-height:1.7}.film-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.film-card{cursor:pointer;background:#fffdf859;border:1px solid #3d35300f;transition:all .4s;overflow:hidden}.film-card:hover,.film-card:active{transform:translateY(-3px);box-shadow:0 12px 24px #1a16131f}.film-poster{aspect-ratio:2/3;color:var(--sanyu-cream);flex-direction:column;justify-content:space-between;padding:16px;display:flex;position:relative;overflow:hidden}.film-poster:after{content:"";pointer-events:none;border:1px solid #f5ede04d;position:absolute;inset:8px}.film-poster h4{font-family:var(--font-brush);letter-spacing:.2em;z-index:1;font-size:18px;line-height:1.35;position:relative}.film-poster .en{font-family:var(--font-serif-en);opacity:.9;letter-spacing:.15em;z-index:1;margin-top:4px;font-size:10px;font-style:italic;position:relative}.film-poster .year{font-family:var(--font-serif-en);opacity:.55;z-index:1;font-size:26px;font-style:italic;position:absolute;bottom:14px;right:16px}.film-info{border-top:1px solid #1a161314;padding:10px 14px}.film-info .rating{color:var(--sanyu-vermilion);letter-spacing:.1em;margin-bottom:4px;font-size:12px}.film-info .review{color:var(--sanyu-charcoal);opacity:.8;letter-spacing:.02em;font-size:10px;line-height:1.6}.music-layout{flex-direction:column;gap:32px;display:flex}.now-playing{color:var(--sanyu-cream);background:linear-gradient(135deg,#1a1613f2,#3a2d24f2);min-height:260px;padding:28px 24px;position:relative;overflow:hidden}.now-playing:before{content:"";pointer-events:none;border:1px solid #c9a55a4d;position:absolute;inset:12px}.now-playing .badge{font-family:var(--font-serif-en);color:var(--sanyu-ochre);letter-spacing:.25em;margin-bottom:16px;font-size:11px;font-style:italic}.now-playing h3{font-family:var(--font-brush);letter-spacing:.15em;margin-bottom:8px;font-size:32px;line-height:1.3}.now-playing .artist{font-family:var(--font-serif-en);color:var(--sanyu-ochre);letter-spacing:.15em;margin-bottom:24px;font-size:14px;font-style:italic}.now-playing .waveform{align-items:end;gap:3px;height:48px;margin-bottom:22px;display:flex}.now-playing .waveform span{background:linear-gradient(180deg, var(--sanyu-vermilion), var(--sanyu-rose));border-radius:1px;flex:1;animation:1.3s ease-in-out infinite wave}@keyframes wave{0%,to{transform:scaleY(.4)}50%{transform:scaleY(1)}}.now-playing .controls{align-items:center;gap:16px;display:flex}.now-playing .play-btn{background:var(--sanyu-vermilion);width:50px;height:50px;color:var(--sanyu-cream);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;transition:all .3s;display:flex}.now-playing .play-btn:hover,.now-playing .play-btn:active{background:var(--sanyu-rose);transform:scale(1.06)}.now-playing .time{font-family:var(--font-serif-en);color:var(--sanyu-paper);opacity:.8;letter-spacing:.1em;font-size:12px;font-style:italic}.playlist{flex-direction:column;display:flex}.track{cursor:pointer;border-bottom:1px solid #1a161314;grid-template-columns:22px 1fr auto;align-items:center;gap:12px;padding:12px 8px;transition:all .3s;display:grid}.track:hover,.track:active{background:#fffdf859}.track.playing{background:#f2d8d066}.track .idx{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);font-size:12px;font-style:italic}.track .meta{min-width:0}.track .meta h5{font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;margin-bottom:3px;font-size:13px;overflow:hidden}.track .meta .sub{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.75;letter-spacing:.08em;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-style:italic;display:block;overflow:hidden}.track .dur{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.75;font-size:11px;font-style:italic}.floating-decor{pointer-events:none;opacity:.7;position:absolute}.home-scroller-wrap{flex-direction:column;min-height:calc(100vh - 80px);margin:-32px -22px -100px;display:flex;position:relative}.home-scroller{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1;display:flex;overflow:auto hidden}.home-scroller::-webkit-scrollbar{display:none}.home-slide{scroll-snap-align:start;scroll-snap-stop:always;scrollbar-width:none;flex:0 0 100%;padding:40px 22px 60px;position:relative;overflow-y:auto}.home-slide::-webkit-scrollbar{display:none}.home-poem-slide{flex-direction:column;justify-content:center;min-height:calc(100vh - 200px);padding:60px 28px 100px;display:flex}.poem-art-flat{width:100%;height:auto;animation:1.2s cubic-bezier(.4,0,.2,1) both pageIn;display:block}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.poem-fade-in{animation:1.2s cubic-bezier(.25,.46,.45,.94) both poemFadeIn}@keyframes poemFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.home-modules-slide{flex-direction:column;padding:32px 22px 100px;display:flex}.swipe-hint{color:var(--sanyu-vermilion);cursor:pointer;background:0 0;border:1px solid #c8544959;border-radius:30px;align-self:flex-end;align-items:center;gap:8px;margin-top:40px;padding:10px 18px;transition:all .35s;animation:2.2s ease-in-out infinite swipeNudge;display:inline-flex}.swipe-hint:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion)}.swipe-hint.back{align-self:flex-start;margin-top:40px;animation-direction:reverse}.swipe-hint .hint-cn{font-family:var(--font-brush);letter-spacing:.2em;font-size:14px}.swipe-hint .hint-arrow{font-family:var(--font-serif-en);font-size:22px;font-weight:300;line-height:1}@keyframes swipeNudge{0%,to{transform:translate(0)}50%{transform:translate(6px)}}.swipe-hint.back{animation-name:swipeNudgeBack}@keyframes swipeNudgeBack{0%,to{transform:translate(0)}50%{transform:translate(-6px)}}.page-dots{z-index:5;gap:10px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.page-dots .dot{cursor:pointer;background:#3d353040;border-radius:50%;width:6px;height:6px;transition:all .35s}.page-dots .dot.active{background:var(--sanyu-vermilion);border-radius:3px;width:22px}.stagger-in{opacity:0;animation:.6s ease-out both staggerIn}@keyframes staggerIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.home-hero-text{border-bottom:1px solid #1a161326;margin-bottom:40px;padding:40px 4px 48px;position:relative}.home-hero-text .date-line{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);letter-spacing:.2em;opacity:.78;align-items:center;gap:10px;margin-bottom:40px;font-size:13px;font-style:italic;display:flex}.home-hero-text .date-line .year{color:var(--sanyu-vermilion);font-size:15px;font-weight:500}.home-hero-text .date-line .sep{color:var(--sanyu-line);opacity:.6}.home-hero-text .date-line .weather{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.2em;opacity:.65;font-size:12px;font-style:normal}.hero-title{font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.12em;margin-bottom:20px;font-size:42px;font-weight:300;line-height:1.4}.hero-title .accent{color:var(--sanyu-vermilion);font-weight:500}.hero-sub{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);letter-spacing:.08em;opacity:.78;border-bottom:1px dashed #1a161326;margin-bottom:32px;padding-bottom:24px;font-size:15px;font-style:italic;line-height:1.7}.hero-poem{border-left:2px solid var(--sanyu-vermilion);color:var(--sanyu-charcoal);letter-spacing:.08em;margin:0 0 36px;padding-left:18px;font-size:15px;line-height:2}.hero-poem .author{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.15em;margin-top:14px;font-size:12px;font-style:italic;display:block}.hero-signature{border-top:1px solid #1a16131a;align-items:center;gap:16px;padding-top:20px;display:flex}.hero-signature .seal{background:var(--sanyu-vermilion);width:36px;height:36px;color:var(--sanyu-cream);font-family:var(--font-brush);letter-spacing:0;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.hero-signature .line{background:linear-gradient(90deg, var(--sanyu-vermilion), transparent);flex:1;height:1px}.fab-entry{z-index:25;background:var(--sanyu-vermilion);width:54px;height:54px;color:var(--sanyu-cream);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex;position:fixed;bottom:88px;right:22px;box-shadow:0 10px 24px #b8342a66,0 4px 10px #1a161326}.fab-entry:hover,.fab-entry:active{background:var(--sanyu-ink);transform:translateY(-2px)rotate(90deg);box-shadow:0 14px 28px #1a16134d,0 4px 10px #1a161333}.fab-entry .plus{font-family:var(--font-serif-en);font-size:30px;font-weight:300;line-height:1;transform:translateY(-1px)}@media (width>=500px){.fab-entry{right:calc(50vw - 228px)}}.calendar{-webkit-backdrop-filter:blur(10px);background:#fffdf859;border:1px solid #3d35300f;border-radius:4px;padding:20px 18px 24px}.calendar-head{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:10px;display:grid}.calendar-weekday{text-align:center;font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.15em;opacity:.7;padding:4px 0;font-size:12px}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-cell{aspect-ratio:1;font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.9;cursor:default;border:1px solid #3d35300f;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-style:italic;transition:transform .2s,box-shadow .2s;display:flex}.calendar-cell.empty{background:0 0;border-color:#0000}.calendar-cell.has-entry{cursor:pointer;border-color:#0000;box-shadow:0 3px 8px #1a161326}.calendar-cell.has-entry:hover{transform:translateY(-2px);box-shadow:0 6px 14px #1a161338}.calendar-cell.today{outline:2px solid var(--sanyu-vermilion);outline-offset:-2px}.calendar-cell .d{font-family:var(--font-serif-en);font-size:13px;font-style:italic;line-height:1}.calendar-cell .dot{font-family:var(--font-brush);letter-spacing:0;font-size:11px;line-height:1}.calendar-legend{border-top:1px dashed #1a161326;grid-template-columns:repeat(5,1fr);gap:6px;margin-top:16px;padding-top:14px;display:grid}.legend-item{color:var(--sanyu-charcoal);letter-spacing:.05em;justify-content:center;align-items:center;gap:5px;font-size:11px;display:flex}.legend-item .chip{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.legend-item .lb-cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:0;font-size:13px}.legend-item .lb-en{display:none}.legend-item .lb-count{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:0;font-size:12px;font-style:italic}.section-tabs{border-bottom:1px solid #3d35301a;gap:0;margin-bottom:24px;display:flex;position:relative}.section-tab{cursor:pointer;color:var(--sanyu-charcoal);opacity:.6;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:12px 8px 14px;transition:all .3s;display:flex;position:relative}.section-tab:after{content:"";background:var(--sanyu-vermilion);width:0;height:2px;transition:width .35s;position:absolute;bottom:-1px;left:50%;transform:translate(-50%)}.section-tab:hover{opacity:1}.section-tab.active{opacity:1;color:var(--sanyu-ink)}.section-tab.active:after{width:26px}.section-tab .cn{font-family:var(--font-brush);letter-spacing:.2em;font-size:20px;line-height:1.2}.section-tab .en{font-family:var(--font-serif-en);opacity:.7;letter-spacing:.15em;font-size:10px;font-style:italic}.section-tab .count{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);opacity:.85;margin-left:2px;font-size:10px;font-style:italic}.flavor-tabs{grid-template-columns:.7fr repeat(5,1fr);gap:6px;display:grid}.flavor-tab{cursor:pointer;background:#fffdf859;border:1px solid #1a161326;border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;padding:8px 4px;transition:all .3s;display:flex}.flavor-tab:hover{border-color:var(--sanyu-vermilion)}.flavor-tab.active{background:var(--sanyu-ink);color:var(--sanyu-cream);border-color:var(--sanyu-ink)}.flavor-tab .cn{font-family:var(--font-brush);letter-spacing:0;font-size:17px;line-height:1.2}.flavor-tab .en{font-family:var(--font-serif-en);opacity:.65;letter-spacing:.05em;font-size:9px;font-style:italic;line-height:1}.entry-mask{z-index:60;opacity:0;pointer-events:none;background:#1a161380;transition:opacity .35s;position:fixed;inset:0}.entry-mask.open{opacity:1;pointer-events:auto}.entry-modal{z-index:70;width:100%;max-width:500px;max-height:90vh;padding-bottom:env(safe-area-inset-bottom,40px);-webkit-backdrop-filter:blur(20px)saturate(1.1);background-color:#fbf5ebeb;background-image:radial-gradient(500px 220px at 20% 20%,#dc8f8824 0%,#0000 60%),radial-gradient(500px 240px at 80% 80%,#9db09b29 0%,#0000 60%),radial-gradient(400px 180px,#d4b47a1a 0%,#0000 60%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border-top-left-radius:14px;border-top-right-radius:14px;flex-direction:column;transition:transform .45s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:0;left:50%;overflow:hidden;transform:translate(-50%,100%);box-shadow:0 -30px 60px #3d353033}.entry-modal.open{transform:translate(-50%)}.entry-modal:before{content:"";background:linear-gradient(90deg, transparent, var(--sanyu-vermilion) 20%, var(--sanyu-vermilion) 80%, transparent);opacity:.9;height:3px;position:absolute;top:0;left:32px;right:32px}.entry-head{justify-content:space-between;align-items:flex-start;padding:26px 28px 18px;display:flex;position:relative}.entry-head:after{content:"";background:linear-gradient(90deg, var(--sanyu-line), transparent 70%);opacity:.3;height:1px;position:absolute;bottom:0;left:28px;right:28px}.entry-title-cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.25em;font-size:30px;line-height:1.2}.entry-title-en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.3em;opacity:.85;margin-top:6px;font-size:12px;font-style:italic}.entry-close{width:30px;height:30px;color:var(--sanyu-charcoal);border:1px solid #1a161326;border-radius:50%;flex-shrink:0;margin-top:6px;font-size:13px;transition:all .3s}.entry-close:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion);transform:rotate(90deg)}.entry-body{flex:1;padding:24px 28px 12px;overflow-y:auto}.entry-field{flex-direction:column;margin-bottom:22px;display:flex;position:relative}.entry-field label{align-items:center;gap:8px;margin-bottom:10px;display:flex}.entry-label-cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.25em;font-size:17px}.entry-required{background:var(--sanyu-vermilion);color:#0000;border-radius:50%;width:6px;height:6px;font-size:0;display:inline-block}.entry-field input,.entry-field textarea,.entry-field select{width:100%;font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.05em;resize:none;background:0 0;border:none;border-bottom:1px solid #1a161333;border-radius:0;outline:none;padding:10px 4px;font-size:15px;transition:all .3s}.entry-field input:focus,.entry-field textarea:focus,.entry-field select:focus{border-bottom-color:var(--sanyu-vermilion);border-bottom-width:2px;padding-bottom:9px}.entry-field textarea{background:linear-gradient(#fffdf880,#fffdf833);border:1px dashed #1a16132e;border-radius:3px;min-height:100px;padding:14px 16px;line-height:2}.entry-field textarea:focus{border-style:solid;border-color:var(--sanyu-vermilion);background:#fffdf8d9;border-width:1px;padding:14px 16px}.entry-field select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--sanyu-vermilion) 50%), linear-gradient(135deg, var(--sanyu-vermilion) 50%, transparent 50%);background-position:calc(100% - 12px) 60%,calc(100% - 7px) 60%;background-repeat:no-repeat;background-size:5px 5px;padding-right:28px}.entry-chips{flex-wrap:wrap;gap:8px;padding:4px 0;display:flex}.entry-chip{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;cursor:pointer;-webkit-backdrop-filter:blur(6px);background:#fffdf880;border:1px solid #3d353024;border-radius:24px;align-items:center;gap:6px;padding:9px 18px;font-size:15px;line-height:1;transition:all .3s cubic-bezier(.4,0,.2,1);display:inline-flex}.entry-chip .dot{opacity:.9;border-radius:50%;width:8px;height:8px;transition:transform .3s;display:inline-block}.entry-chip:hover{border-color:var(--sanyu-vermilion);background:#fffdf8bf;transform:translateY(-1px)}.entry-chip.active{color:var(--sanyu-cream);border-color:var(--sanyu-vermilion);background:var(--sanyu-vermilion);transform:translateY(-1px);box-shadow:0 6px 16px #c8544940}.entry-chip.active .dot{transform:scale(1.2);background:var(--sanyu-cream)!important}.entry-field input::placeholder,.entry-field textarea::placeholder{color:var(--sanyu-charcoal);opacity:.35;letter-spacing:.05em;font-style:italic}.entry-foot{justify-content:space-between;align-items:center;gap:20px;padding:18px 28px 24px;display:flex;position:relative}.entry-foot:before{content:"";background:linear-gradient(90deg, transparent, var(--sanyu-line) 30%, var(--sanyu-line) 70%, transparent);opacity:.4;height:1px;position:absolute;top:0;left:28px;right:28px}.entry-hint{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);opacity:.55;letter-spacing:.2em;font-size:11px;font-style:italic;transition:color .35s}.btn-submit{background:var(--sanyu-vermilion);color:var(--sanyu-cream);font-family:var(--font-serif-cn);letter-spacing:.4em;border:1px solid var(--sanyu-vermilion);cursor:pointer;border-radius:2px;padding:12px 26px;font-size:14px;transition:all .35s;position:relative;box-shadow:0 3px 12px #b8342a4d}.btn-submit:before{content:"";pointer-events:none;border:1px solid #f5ede059;border-radius:1px;position:absolute;inset:3px}.btn-submit:hover{background:var(--sanyu-ink);border-color:var(--sanyu-ink);transform:translateY(-1px);box-shadow:0 4px 14px #1a161359}.drinks-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.drink-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#fffdf866;border:1px solid #3d35300f;border-radius:6px;flex-direction:column;gap:10px;padding:18px 14px 16px;transition:all .35s;display:flex}.drink-card:hover,.drink-card:active{transform:translateY(-3px);box-shadow:0 12px 24px #3d35301a}.drink-visual{justify-content:center;padding:4px 0;display:flex}.drink-body{flex-direction:column;gap:6px;display:flex}.drink-title-row{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.drink-title-row h4{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;font-size:18px;line-height:1.3}.taste-chip{color:var(--sanyu-cream);font-family:var(--font-brush);letter-spacing:0;border-radius:10px;flex-shrink:0;padding:3px 8px;font-size:12px;line-height:1.2}.essay-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.essay-grid-item{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#fffdf866;border:1px solid #3d35300f;border-radius:5px;flex-direction:column;gap:6px;min-height:130px;padding:14px 14px 12px;transition:all .3s;display:flex}.essay-grid-item:hover,.essay-grid-item:active{border-color:#c8544940;transform:translateY(-2px);box-shadow:0 10px 22px #3d35301a}.egi-head{justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.egi-date{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.1em;font-size:12px;font-style:italic}.egi-moods{flex-wrap:wrap;justify-content:flex-end;gap:3px;display:flex}.egi-title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;font-size:17px;line-height:1.35}.egi-excerpt{color:var(--sanyu-charcoal);opacity:.85;letter-spacing:.02em;-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;font-size:11px;line-height:1.85;display:-webkit-box;overflow:hidden}.letter-stack{scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;flex:1;display:flex;overflow:auto hidden}.letter-stack::-webkit-scrollbar{display:none}.letter-stack-item{scroll-snap-align:start;flex:0 0 100%;padding:20px 28px;overflow-y:auto}.letter-stack-item .letter-piece-head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px;display:flex}.letter-stack-item .letter-piece-head h4{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;font-size:22px}.letter-stack-item .letter-moods{flex-shrink:0;gap:4px;display:flex}.letter-stack-item .letter-text{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.05em;text-indent:2em;font-size:14px;line-height:2}.letter-dots{border-top:1px solid #3d353014;justify-content:center;gap:6px;padding:8px 0 6px;display:flex}.letter-dots .dot{cursor:pointer;background:#3d353033;border-radius:50%;width:5px;height:5px;transition:all .3s}.letter-dots .dot.active{background:var(--sanyu-vermilion);border-radius:3px;width:18px}.calendar-cell .stack-badge{font-family:var(--font-serif-en);color:var(--sanyu-cream);opacity:.8;font-size:8px;font-style:italic;position:absolute;top:2px;right:2px}.letter{opacity:0;z-index:70;pointer-events:none;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background-color:#fbf5ebf5;background-image:radial-gradient(300px 200px at 20% 20%,#dc8f8824 0%,#0000 60%),radial-gradient(300px 200px at 80% 80%,#d4b47a24 0%,#0000 60%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border-radius:6px;flex-direction:column;width:calc(100% - 40px);max-width:480px;max-height:85vh;transition:transform .5s cubic-bezier(.34,1.56,.64,1),opacity .4s;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.8);box-shadow:0 40px 80px #3d353040}.letter:before{content:"";pointer-events:none;border:1px solid #c8544933;border-radius:6px;position:absolute;inset:0}.letter.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.letter-head{border-bottom:1px dashed #3d353033;justify-content:space-between;align-items:flex-start;padding:24px 28px 16px;display:flex}.letter-date{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.15em;font-size:22px;font-style:italic}.letter-mark{font-family:var(--font-brush);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.3em;margin-top:4px;font-size:12px}.letter-moods{flex-shrink:0;gap:4px;display:flex}.letter-text{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.05em;text-indent:2em;margin-bottom:16px;font-size:14px;line-height:2}.letter-foot{border-top:1px solid #3d353014;align-items:center;gap:10px;padding:14px 28px 22px;display:flex}.letter-foot .seal{background:var(--sanyu-vermilion);width:26px;height:26px;color:var(--sanyu-cream);font-family:var(--font-brush);border-radius:2px;justify-content:center;align-items:center;font-size:14px;display:flex}.letter-foot .line{background:linear-gradient(90deg, var(--sanyu-vermilion), transparent);flex:1;height:1px}.letter-foot .mono{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.6;letter-spacing:.15em;font-size:11px;font-style:italic}.filter-row{scrollbar-width:none;gap:6px;margin-bottom:12px;padding:2px 2px 12px;display:flex;overflow-x:auto}.filter-row::-webkit-scrollbar{display:none}.filter-chip{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.15em;cursor:pointer;white-space:nowrap;background:#fffdf866;border:1px solid #3d35301f;border-radius:16px;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;font-size:13px;transition:all .3s;display:inline-flex}.filter-chip .dot{border-radius:50%;width:6px;height:6px}.filter-chip:hover{border-color:var(--sanyu-vermilion)}.filter-chip.active{background:var(--sanyu-ink);color:var(--sanyu-cream);border-color:var(--sanyu-ink)}.filter-chip.edit{color:var(--sanyu-vermilion);font-family:var(--font-serif-en);border-style:dashed;padding:6px 10px;font-size:14px;line-height:1}.filter-chip.edit:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-style:solid}.month-nav{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf859;border:1px solid #3d35300f;border-radius:4px;justify-content:space-between;align-items:center;margin-bottom:14px;padding:12px 16px;display:flex}.mo-btn{width:32px;height:32px;font-family:var(--font-serif-en);color:var(--sanyu-vermilion);cursor:pointer;background:0 0;border:1px solid #3d353026;border-radius:50%;font-size:20px;transition:all .3s}.mo-btn:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion)}.mo-title{align-items:baseline;gap:8px;display:flex}.mo-title .y{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.1em;font-size:15px;font-style:italic}.mo-title .m{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);font-size:26px;font-style:italic}.mo-title .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.15em;font-size:18px}.pet-empty{text-align:center;font-family:var(--font-brush);color:var(--sanyu-charcoal);opacity:.55;letter-spacing:.15em;border:1px dashed #3d353026;border-radius:4px;padding:40px 20px;font-size:15px}.drink-body .en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;opacity:.9;font-size:11px;font-style:italic}.drink-body .note{color:var(--sanyu-charcoal);opacity:.85;letter-spacing:.02em;font-size:11px;line-height:1.7}.drink-meta{border-top:1px dashed #3d35301a;justify-content:space-between;align-items:center;padding-top:8px;font-size:11px;display:flex}.drink-meta .base{color:var(--sanyu-charcoal);letter-spacing:.15em;opacity:.75}.drink-meta .rating{color:var(--sanyu-vermilion);letter-spacing:.08em}.chooser{opacity:0;pointer-events:none;z-index:70;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background-color:#fbf5ebf5;background-image:radial-gradient(300px 200px at 20% 20%,#dc8f8824 0%,#0000 60%),radial-gradient(300px 200px at 80% 80%,#9db09b24 0%,#0000 60%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border-radius:8px;width:calc(100% - 40px);max-width:460px;transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .35s;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)scale(.85);box-shadow:0 30px 60px #3d353040}.chooser:before{content:"";background:linear-gradient(90deg, transparent, var(--sanyu-vermilion) 20%, var(--sanyu-vermilion) 80%, transparent);height:3px;position:absolute;top:0;left:32px;right:32px}.chooser.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%)scale(1)}.chooser-head{border-bottom:1px dashed #3d353026;justify-content:space-between;align-items:flex-start;padding:24px 26px 16px;display:flex}.chooser-grid{grid-template-columns:1fr 1fr;gap:12px;padding:20px 22px 24px;display:grid}.chooser-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#fffdf880;border:1px solid #3d353014;border-radius:6px;flex-direction:column;align-items:center;gap:6px;padding:22px 12px 18px;transition:all .35s cubic-bezier(.4,0,.2,1);display:flex}.chooser-card:hover{background:#fffdf8d9;border-color:#c8544959;transform:translateY(-3px);box-shadow:0 12px 24px #3d35301f}.chooser-icon{justify-content:center;align-items:center;height:90px;display:flex}.chooser-icon.bottle-icon svg{display:block}.chooser-cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.2em;margin-top:4px;font-size:20px}.chooser-en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.2em;font-size:11px;font-style:italic}.chooser-desc{color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.08em;text-align:center;margin-top:6px;font-size:11px;line-height:1.6}.ing-editor{background:#fffdf84d;border:1px dashed #3d353033;border-radius:4px;flex-direction:column;gap:8px;padding:12px;display:flex}.ing-editor-row{border-bottom:1px dotted #3d35301a;grid-template-columns:26px 1fr 90px 22px;align-items:center;gap:8px;padding:4px 0;display:grid}.ing-editor-row:last-of-type{border-bottom:none}.ing-src{font-family:var(--font-brush);color:var(--sanyu-cream);background:var(--sanyu-vermilion);text-align:center;letter-spacing:0;border-radius:3px;padding:2px 0;font-size:11px}.ing-nm{font-family:var(--font-serif-cn);color:var(--sanyu-ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.ing-qty-input{color:var(--sanyu-vermilion);text-align:right;background:0 0;font-style:italic;font-family:var(--font-serif-en)!important;border:1px solid #3d353026!important;border-radius:3px!important;padding:4px 6px!important;font-size:12px!important}.ing-del{width:22px;height:22px;color:var(--sanyu-charcoal);cursor:pointer;background:0 0;border:1px solid #3d353026;border-radius:50%;font-size:14px;line-height:1}.ing-del:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion)}.ing-empty{text-align:center;color:var(--sanyu-charcoal);opacity:.5;padding:10px 0;font-size:12px;font-style:italic}.ing-add-tabs{gap:8px;padding-top:4px;display:flex}.ing-add-tabs .btn-outline-mini{flex:1;padding:8px 12px;font-size:12px}.ing-add-tabs .btn-outline-mini:disabled{opacity:.4;cursor:not-allowed}.ing-picker{background:#fffdf88c;border:1px solid #c8544933;border-radius:4px;margin-top:8px;padding:10px 12px;animation:.28s pickerIn}@keyframes pickerIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ing-picker-head{font-family:var(--font-brush);color:var(--sanyu-vermilion);letter-spacing:.15em;border-bottom:1px dashed #3d353026;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;font-size:13px;display:flex}.ing-picker-list{flex-wrap:wrap;gap:6px;display:flex}.ing-picker-list .entry-chip{padding:6px 12px;font-size:13px}.ing-custom-inline{align-items:center;gap:6px;display:flex}.ing-custom-inline input{flex:1;background:0 0!important;border:1px solid #3d353026!important;border-radius:3px!important;padding:8px 10px!important;font-size:13px!important}.ing-custom-inline input:focus{border-color:var(--sanyu-vermilion)!important}.ing-custom-inline .btn-ink-mini{padding:8px 14px;font-size:12px}.ing-custom-inline .btn-ink-mini:disabled{opacity:.4;cursor:not-allowed}.step-editor{background:#fffdf84d;border:1px dashed #3d353033;border-radius:4px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.step-row{grid-template-columns:26px 1fr 22px;align-items:center;gap:8px;display:grid}.step-idx{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);font-size:13px;font-style:italic}.step-row input{border:1px solid #3d353026!important;border-radius:3px!important;padding:6px 8px!important;font-size:13px!important}.step-editor>button{align-self:flex-start;margin-top:4px}.recipe-brief{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;background:#fffdf866;border:1px solid #3d35300d;border-radius:6px;grid-template-columns:50px 1fr auto;align-items:center;gap:12px;padding:14px 16px;transition:all .3s;display:grid}.recipe-brief:hover{transform:translateY(-2px);box-shadow:0 8px 20px #3d353014}.rb-title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;margin-bottom:3px;font-size:18px}.rb-sub{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.05em;font-size:11px;font-style:italic}.rb-tastes{flex-direction:column;align-items:flex-end;gap:3px;display:flex}.tag-edit-list{flex-direction:column;gap:8px;max-height:42vh;padding:8px 0 12px;display:flex;overflow-y:auto}.tag-edit-row{background:#fffdf866;border:1px solid #3d35300f;border-radius:20px;align-items:center;gap:10px;padding:10px 14px;display:flex}.tag-edit-row .dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tag-edit-row .tag-name{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;flex:1;font-size:15px}.tag-remove{width:22px;height:22px;color:var(--sanyu-charcoal);cursor:pointer;background:0 0;border:1px solid #3d353026;border-radius:50%;font-size:14px;line-height:1;transition:all .3s}.tag-remove:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion)}.tag-add-row{border-top:1px dashed #3d353026;gap:8px;padding-top:12px;display:flex}.tag-add-row input{color:var(--sanyu-ink);background:0 0;outline:none;flex:1;font-family:var(--font-brush)!important;border:1px solid #3d353026!important;border-radius:20px!important;padding:10px 14px!important;font-size:14px!important}.tag-add-row input:focus{border-color:var(--sanyu-vermilion)!important}.recipe-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(160deg,#f4dcd547,#d4b47a29 60%,#9db09b24);border:1px solid #3d35300d;border-radius:6px;padding:28px 24px}.recipe-hero{border-bottom:1px dashed #3d353026;align-items:center;gap:18px;margin-bottom:22px;padding-bottom:20px;display:flex}.recipe-cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.15em;margin-bottom:4px;font-size:28px}.recipe-en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.15em;margin-bottom:10px;font-size:13px;font-style:italic}.recipe-tags{flex-wrap:wrap;gap:6px;display:flex}.recipe-tags span{letter-spacing:.15em;color:var(--sanyu-charcoal);background:#fffdf88c;border:1px solid #3d35301a;border-radius:10px;padding:3px 9px;font-size:10px}.recipe-section{margin-bottom:22px}.recipe-section:last-child{margin-bottom:0}.recipe-section-title{align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.recipe-section-title .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.2em;font-size:17px}.recipe-section-title .en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.15em;opacity:.85;font-size:11px;font-style:italic}.ingredients{flex-direction:column;gap:8px;display:flex}.ingredients li{color:var(--sanyu-ink);letter-spacing:.05em;border-bottom:1px dotted #3d35301f;align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.ingredients li:last-child{border-bottom:none}.ingredients .dot{background:var(--sanyu-vermilion);border-radius:50%;flex-shrink:0;width:5px;height:5px}.ingredients .ing-name{font-family:var(--font-serif-cn);flex:1}.ingredients .ing-qty{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.05em;font-size:13px;font-style:italic}.steps{counter-reset:step;flex-direction:column;gap:12px;display:flex}.steps li{color:var(--sanyu-charcoal);letter-spacing:.03em;align-items:flex-start;gap:12px;font-size:13px;line-height:1.8;display:flex}.steps .idx{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);flex-shrink:0;min-width:24px;padding-top:1px;font-size:14px;font-style:italic}.recipe-mood{border-left:2px solid var(--sanyu-vermilion);font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.06em;background:#c854490f;margin-top:22px;padding:14px 18px;font-size:13px;line-height:1.9}.bar-list{flex-direction:column;gap:8px;display:flex}.bar-item{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf859;border:1px solid #3d35300f;border-radius:3px;align-items:center;padding:14px 18px;transition:all .3s;display:flex}.bar-item:hover{background:#fffdf899;border-color:#c8544940}.bar-left{flex:1}.bar-name{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;margin-bottom:3px;font-size:16px}.bar-type{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;opacity:.85;font-size:11px;font-style:italic}.bar-vol{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.05em;font-size:13px;font-style:italic}.portrait-panel{flex-direction:column;display:flex}.genre-bar{background:#3d35300f;border-radius:4px;width:100%;height:14px;margin-bottom:14px;display:flex;overflow:hidden}.genre-seg{border-right:1px solid #fffdf899;transition:opacity .3s}.genre-seg:last-child{border-right:none}.genre-seg:hover{opacity:.85}.genre-legend{grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px 12px;display:grid}.genre-item{letter-spacing:.1em;color:var(--sanyu-charcoal);align-items:center;gap:6px;font-size:11px;display:flex}.genre-item .chip{border-radius:2px;flex-shrink:0;width:10px;height:10px}.genre-item .cn{font-family:var(--font-brush);color:var(--sanyu-ink);font-size:13px}.genre-item .v{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);margin-left:auto;font-size:12px;font-style:italic}.tl-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;margin:0 -22px;padding:0 22px;position:relative;overflow:auto visible}.tl-scroll::-webkit-scrollbar{display:none}.tl-inner{position:relative}.tl-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#fffdf8bf;border:1px solid #3d35301a;border-radius:4px;padding:10px 12px;transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s,border-color .3s;box-shadow:0 4px 12px #3d35301a}.tl-card.active{background:#fffdf8fa;border-color:#c8544980;box-shadow:0 14px 28px #3d35302e;transform:rotate(0)scale(1.08)!important}.tl-card:hover:not(.active){border-color:#c854494d;box-shadow:0 10px 22px #3d35301f}.tl-connector{background:var(--sanyu-vermilion);opacity:.5;width:1px;height:18px;position:absolute;left:50%}.tl-connector.down{bottom:-20px}.tl-connector.up{top:-20px}.tl-year{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.05em;margin-bottom:4px;font-size:16px;font-style:italic;line-height:1}.tl-title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;margin-bottom:6px;font-size:16px;line-height:1.3}.tl-meta{border-top:1px dashed #3d353026;justify-content:space-between;padding-top:6px;font-size:11px;display:flex}.tl-meta .rating{color:var(--sanyu-vermilion);letter-spacing:.08em}.tl-meta .date{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.1em;font-style:italic}.tl-review{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);opacity:.85;letter-spacing:.03em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:11px;font-style:italic;line-height:1.75;display:-webkit-box;overflow:hidden}.rhythm{border-bottom:1px dashed #3d353026;grid-template-columns:repeat(12,1fr);align-items:end;gap:4px;height:130px;margin-bottom:8px;padding:12px 4px 0;display:grid}.rhythm-col{flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;height:100%;display:flex}.rhythm-bar{border-radius:3px 3px 0 0;width:100%;min-height:4px;transition:transform .35s}.rhythm-col:hover .rhythm-bar{transform:scaleY(1.06)}.rhythm-num{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);height:12px;margin-top:4px;font-size:10px;font-style:italic}.rhythm-lbl{font-family:var(--font-brush);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.05em;margin-top:2px;font-size:11px}.portrait-panel .rhythm{grid-template-columns:repeat(var(--rhythm-cols,12), 1fr)}.author-list{flex-direction:column;gap:8px;display:flex}.author-item{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf859;border:1px solid #3d35300d;border-radius:4px;grid-template-columns:30px 1fr auto;align-items:center;gap:12px;padding:12px 16px;display:grid}.author-item .rank{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);opacity:.85;font-size:14px;font-style:italic}.author-item .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;margin-bottom:2px;font-size:16px}.author-item .en{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.12em;font-size:11px;font-style:italic}.author-item .count{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:0;font-size:20px;font-style:italic}.author-item .count em{font-family:var(--font-brush);color:var(--sanyu-charcoal);opacity:.65;margin-left:3px;font-size:11px;font-style:normal}.shelf-tabs{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf859;border:1px solid #3d35300d;border-radius:20px;gap:6px;margin-bottom:16px;padding:3px;display:flex}.shelf-tab{font-family:var(--font-brush);color:var(--sanyu-charcoal);letter-spacing:.2em;cursor:pointer;background:0 0;border:none;border-radius:20px;flex:1;justify-content:center;align-items:baseline;gap:4px;padding:6px 8px;font-size:15px;transition:all .3s;display:inline-flex}.shelf-tab em{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);opacity:.7;font-size:10px;font-style:italic}.shelf-tab.active{background:var(--sanyu-ink);color:var(--sanyu-cream);box-shadow:0 3px 8px #3d353026}.shelf-tab.active em{color:var(--sanyu-ochre);opacity:1}.shelf-grid{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}.shelf-book{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf859;border:1px solid #3d35300d;border-radius:4px;gap:12px;min-width:0;padding:12px;transition:all .3s;display:flex;overflow:hidden}.shelf-book:hover{transform:translateY(-2px);box-shadow:0 8px 20px #3d353014}.shelf-book-info{flex-direction:column;flex:1;justify-content:center;gap:3px;min-width:0;display:flex;overflow:hidden}.shelf-book-info .t{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.08em;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.35;display:-webkit-box;overflow:hidden}.shelf-book-info .a{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.1em;opacity:.9;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-style:italic;overflow:hidden}.shelf-book-info .pg{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.75;letter-spacing:.05em;margin-top:4px;font-size:10px;font-style:italic}.book-cover{background:linear-gradient(135deg, var(--sanyu-vermilion), var(--sanyu-rose));width:66px;min-width:66px;height:96px;color:var(--sanyu-cream);text-align:center;font-family:var(--font-brush);letter-spacing:.35em;writing-mode:vertical-rl;justify-content:center;align-items:center;padding:10px 6px;font-size:14px;display:flex;box-shadow:2px 2px #1a161326}.book-cover.mustard{background:linear-gradient(135deg, var(--sanyu-ochre), var(--sanyu-mustard))}.book-cover.ink{background:linear-gradient(135deg, var(--sanyu-charcoal), var(--sanyu-ink))}.book-cover.pink{background:linear-gradient(135deg, var(--sanyu-pink), var(--sanyu-rose));color:var(--sanyu-ink)}.book-cover.jade{background:linear-gradient(135deg, var(--sanyu-jade), #4a5a4f)}.book-cover.paper{background:linear-gradient(135deg, var(--sanyu-paper), #c9b993);color:var(--sanyu-charcoal)}.book-cover.mini{letter-spacing:.3em;padding:8px 4px;font-size:13px}.pager{justify-content:center;align-items:center;gap:18px;margin-top:22px;display:flex}.pg-btn{width:34px;height:34px;font-family:var(--font-serif-en);color:var(--sanyu-vermilion);background:#fffdf866;border:1px solid #3d353026;border-radius:50%;font-size:20px;transition:all .3s}.pg-btn:disabled{opacity:.35;cursor:not-allowed}.pg-btn:not(:disabled):hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion)}.pg-num{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);letter-spacing:.1em;font-size:15px;font-style:italic}.pg-num em{opacity:.4;margin:0 4px;font-style:normal}.now-reading-list{flex-direction:column;gap:14px;display:flex}.now-book{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf866;border:1px solid #3d35300f;border-radius:6px;padding:18px 20px}.now-book-head{grid-template-columns:44px 1fr auto;align-items:center;gap:12px;margin-bottom:12px;display:grid}.now-book-head .vase{justify-content:center;align-items:center;display:flex}.now-book-head .meta .title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;margin-bottom:3px;font-size:18px}.now-book-head .meta .author{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.12em;opacity:.9;font-size:11px;font-style:italic}.now-book-head .percent{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);font-size:20px;font-style:italic}.now-book-foot{color:var(--sanyu-charcoal);opacity:.75;justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;font-size:11px;display:flex}.now-book-foot .page em{color:var(--sanyu-vermilion);font-style:italic;font-family:var(--font-serif-en);padding:0 4px}.now-book-foot .last{text-align:right;font-style:italic;font-family:var(--font-serif-cn);opacity:.85;flex:1;font-size:12px;line-height:1.5}.watched-list{flex-direction:column;gap:10px;display:flex}.watched-item{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf859;border:1px solid #3d35300f;border-radius:4px;padding:14px 18px;transition:all .3s}.watched-item:hover{background:#fffdf899;border-color:#c8544933}.watched-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.watched-main .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;margin-bottom:3px;font-size:17px}.watched-main .en{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.8;letter-spacing:.12em;font-size:11px;font-style:italic}.watched-right{text-align:right}.watched-right .rating{color:var(--sanyu-vermilion);letter-spacing:.08em;margin-bottom:3px;font-size:13px}.watched-right .date{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.1em;font-size:11px;font-style:italic}.watched-review{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.05em;border-top:1px dashed #3d35301f;margin-top:10px;padding-top:10px;font-size:12px;font-style:italic;line-height:1.85}.wish-panel{flex-direction:column;display:flex}.wish-goals{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(160deg,#f4dcd547,#d4b47a29);border:1px solid #3d35300d;border-radius:6px;flex-direction:column;gap:16px;padding:20px 20px 18px;display:flex}.recipe-picker{scrollbar-width:none;gap:8px;margin-bottom:12px;padding:4px 2px 12px;display:flex;overflow-x:auto}.recipe-picker::-webkit-scrollbar{display:none}.recipe-pick{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;cursor:pointer;white-space:nowrap;background:#fffdf873;border:1px solid #3d35301f;border-radius:20px;flex-shrink:0;padding:7px 16px;font-size:14px;transition:all .3s}.recipe-pick:hover{border-color:var(--sanyu-vermilion)}.recipe-pick.active{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion);box-shadow:0 4px 12px #c8544940}.bar-item-rich{grid-template-rows:auto auto;grid-template-columns:1fr auto auto;gap:10px 12px;align-items:start!important;padding:16px 18px!important;display:grid!important}.bar-item-rich .bar-left{grid-area:1/1}.bar-item-rich .bar-right{text-align:right;grid-area:1/2}.bar-item-rich .bar-price{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.02em;margin-bottom:2px;font-size:15px;font-style:italic}.bar-item-rich .bar-date{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.6;letter-spacing:.12em;font-size:10px;font-style:italic}.bar-item-rich .bar-remain{grid-area:2/1/auto/-1;align-items:center;gap:10px;display:flex}.remain-track{background:#3d353014;border-radius:2px;flex:1;height:4px;overflow:hidden}.remain-fill{background:linear-gradient(90deg, var(--sanyu-rose), var(--sanyu-vermilion));height:100%}.remain-num{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);text-align:right;min-width:32px;font-size:11px;font-style:italic}@media (width>=500px){.app-shell{border-radius:4px;min-height:calc(100vh - 48px);margin:24px auto;overflow:hidden}}.note-bubbles-wrap{aspect-ratio:19/11;width:100%;margin-top:8px;position:relative}.note-bubbles{width:100%;height:100%;overflow:visible}.note-bubble{will-change:transform}@keyframes bubble-drift{0%,to{transform:translate(-50%, -50%) rotate(var(--rot,0))}50%{transform:translate(calc(-50% + var(--dx,0px)), calc(-50% + var(--dy,-10px))) rotate(calc(var(--rot,0) * -1))}}.season-row-inline{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px;display:grid}.sr-cell{flex-direction:column;align-items:center;gap:6px;display:flex}.sr-label{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.1em;font-size:16px;line-height:1}.sr-bar-wrap{justify-content:center;align-items:flex-end;width:100%;height:62px;display:flex}.sr-bar{background:linear-gradient(180deg, #d4b47ad9, var(--sanyu-vermilion));border-radius:3px;width:100%;max-width:24px;min-height:3px;transition:height .7s cubic-bezier(.16,1,.3,1);box-shadow:inset 0 -6px 8px #ffffff4d}.sr-num{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.72;letter-spacing:.06em;font-size:12px;font-style:italic}.fr-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:4px;display:grid}@media (width<=380px){.fr-grid{grid-template-columns:1fr}}.fr-card{-webkit-backdrop-filter:blur(2px);background-color:#0000;border-radius:14px;min-height:210px;transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .35s;position:relative;overflow:hidden;box-shadow:0 4px 14px #3d35300d}.fr-card:before{content:"";pointer-events:none;z-index:2;border:1px solid #3d35300f;border-radius:14px;position:absolute;inset:0}.fr-drift{background:radial-gradient(ellipse 45% 45% at 50% 50%, var(--drift-color,#dc8f8859) 0%, transparent 68%);pointer-events:none;mix-blend-mode:multiply;z-index:0;filter:blur(6px);animation:14s ease-in-out infinite card-drift;position:absolute;inset:-20%}@keyframes card-drift{0%,to{transform:translate(0)scale(1)rotate(0)}25%{transform:translate(8%,-6%)scale(1.15)rotate(4deg)}50%{transform:translate(-6%,8%)scale(.95)rotate(-3deg)}75%{transform:translate(5%,4%)scale(1.08)rotate(2deg)}}.fr-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px #3d35301a}.fr-actions{z-index:3;opacity:0;gap:4px;transition:opacity .25s;display:flex;position:absolute;top:8px;right:8px}.fr-card:hover .fr-actions,.fr-card:focus-within .fr-actions{opacity:1}.fr-act{width:22px;height:22px;color:var(--sanyu-charcoal);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffdf8d9;border:1px solid #3d353026;border-radius:50%;justify-content:center;align-items:center;font-size:11px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.fr-act:hover{background:var(--sanyu-vermilion);color:var(--sanyu-cream);border-color:var(--sanyu-vermilion)}.fr-since{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.85;letter-spacing:.14em;z-index:2;align-items:center;gap:4px;font-size:10px;font-style:italic;display:inline-flex;position:absolute;top:10px;left:12px}.candle-flame{transform-origin:bottom;animation:2.4s ease-in-out infinite flame-flicker;display:inline-flex}@keyframes flame-flicker{0%,to{opacity:.9;transform:scale(1)rotate(-1deg)}50%{opacity:1;transform:scale(1.05)rotate(1.5deg)}}.fr-body{z-index:1;padding:42px 14px 14px;position:relative}.fr-brand{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.25em;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-style:italic}.fr-name{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.fr-name .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;font-size:20px;line-height:1}.fr-name .en{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.08em;font-size:11px;font-style:italic}.fr-accord{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.fr-accord.single{margin-bottom:6px}.accord-chip{letter-spacing:.08em;font-size:10px;font-family:var(--font-serif-cn);border:1px solid #0000;border-radius:10px;padding:3px 8px}.accord-chip.pos-0{color:#8a7548;background:#d4b47a2e;border-color:#d4b47a59}.accord-chip.pos-1{color:#a8362d;background:#c8544924;border-color:#c8544947}.accord-chip.pos-2{color:#5a6d5b;background:#9db09b33;border-color:#9db09b59}.fr-meta{border-top:1px dashed #3d353024;justify-content:space-between;align-items:center;padding-top:8px;font-size:11px;display:flex}.fr-season{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);opacity:.75;letter-spacing:.12em}.fr-rating{color:var(--sanyu-vermilion);letter-spacing:.1em}.fr-scene{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);opacity:.72;letter-spacing:.1em;margin-bottom:8px;font-size:11px}.fr-review{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);letter-spacing:.04em;opacity:.88;border-top:1px dashed #c8544933;margin-top:10px;padding-top:8px;font-size:11px;font-style:italic;line-height:1.7}.home-orbit-slide{flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:8px 12px 60px;display:flex;position:relative}.orbit-stage{aspect-ratio:380/680;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;flex:1;width:100%;max-width:380px;min-height:640px;position:relative}.orbit-stage:active{cursor:grabbing}.orbit-bg{pointer-events:none;width:100%;height:100%;animation:1.2s cubic-bezier(.4,0,.2,1) both pageIn;position:absolute;inset:0}.orbit-card{-webkit-backdrop-filter:blur(8px);text-align:center;cursor:pointer;transform-origin:50%;will-change:transform, opacity;background:#fffdf8d1;border:1px solid #3d35301a;border-radius:6px;flex-direction:column;justify-content:flex-start;align-items:center;width:108px;height:138px;padding:10px 8px 12px;transition:opacity .25s ease-out,box-shadow .3s;animation:.6s cubic-bezier(.16,1,.36,1) both orbitIn;display:flex;position:absolute;box-shadow:0 4px 14px #3d353014}.orbit-card:hover{border-color:#c8544966;box-shadow:0 10px 22px #3d353024}@keyframes orbitIn{0%{opacity:0}to{opacity:var(--target-opacity,1)}}.orbit-card .index{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.2em;opacity:.75;margin-bottom:2px;font-size:9px;font-style:italic}.orbit-card .icon-wrap{justify-content:center;align-items:center;height:66px;margin-bottom:6px;display:flex;transform:scale(.88)}.orbit-card h3{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.2em;margin:0 0 3px;font-size:22px;line-height:1}.orbit-card .en-label{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:.14em;opacity:.85;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:10px;font-style:italic;overflow:hidden}.hm-cell{aspect-ratio:1;border-radius:2px;width:100%;transition:transform .15s,border-color .15s;position:relative}.hm-cell.active{cursor:pointer}.hm-cell.active:hover{z-index:5;transform:scale(1.5);box-shadow:0 0 6px #c854494d}.bar-card-actions{opacity:0;transition:opacity .2s}div:hover>.bar-card-actions{opacity:1}.note-filter-row::-webkit-scrollbar{display:none}.note-filter-row{-ms-overflow-style:none;scrollbar-width:none}.recipe-section-row{border-bottom:1px dashed #3d35301a;justify-content:space-between;align-items:baseline;padding:8px 0;font-size:13px;display:flex}.recipe-section-row .rb-label{font-family:var(--font-serif-cn);color:var(--sanyu-charcoal);opacity:.6}.recipe-section-row .rb-val{font-family:var(--font-serif-en);color:var(--sanyu-ink);font-style:italic}.mood-tree-wrap{flex-direction:column;align-items:center;margin:12px 0 8px;display:flex}.mood-tree{width:100%;max-width:340px;height:auto;display:block;overflow:visible}.mood-tree-caption{font-family:var(--font-brush);color:var(--sanyu-charcoal);letter-spacing:.18em;opacity:.7;margin-top:4px;font-size:12px}.mood-tree-caption em{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:0;margin:0 3px;font-size:15px;font-style:italic}.tree-branch{transform-origin:50%}.virt-section{margin-bottom:28px}.virt-sec-head{border-bottom:1px dashed #3d353024;align-items:baseline;gap:10px;margin:4px 2px 10px;padding-bottom:6px;display:flex}.virt-sec-head .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.22em;font-size:20px}.virt-sec-head .en{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);opacity:.75;letter-spacing:.06em;font-size:12px;font-style:italic}.year-ribbon{flex-wrap:wrap;gap:6px;margin:2px 0 10px;display:flex}.year-chip{font-family:var(--font-serif-en);color:var(--sanyu-ink);cursor:pointer;background:0 0;border:1px solid #3d353024;border-radius:12px;align-items:baseline;gap:4px;padding:4px 10px;transition:background .24s,border-color .24s,color .24s;display:inline-flex}.year-chip .y-num{letter-spacing:.06em;font-size:13px;font-style:italic}.year-chip .y-suf{font-family:var(--font-brush);opacity:.7;letter-spacing:.16em;font-size:11px}.year-chip:hover{border-color:#c8544959}.year-chip.active{background:var(--sanyu-ink);border-color:var(--sanyu-ink);color:var(--sanyu-cream)}.year-chip.active .y-suf{opacity:.85}.bubble-field{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 6px;min-height:320px;padding:18px 4px 24px;display:flex;position:relative}.bubble{width:var(--sz,108px);height:var(--sz,108px);margin:var(--dy,0) var(--dx,0);cursor:pointer;-webkit-backdrop-filter:blur(8px)saturate(1.2);transform:rotate(var(--rot,0));animation:bubble-float var(--dur,8s) ease-in-out infinite;animation-delay:var(--delay,0s);background:radial-gradient(circle at 32% 22%,#ffffffb8 0%,#ffffff29 22%,#0000 55%),radial-gradient(circle at 68% 78%,#b8c8d038 0%,#0000 60%),linear-gradient(140deg,#fffdf847 0%,#b8c8d024 100%);border:none;border-radius:50%;padding:0;transition:transform .36s cubic-bezier(.16,1,.36,1),box-shadow .36s;position:relative;overflow:hidden;box-shadow:inset 0 4px 10px #ffffff8c,inset 0 -6px 14px #9db09b24,inset 0 0 0 1px #ffffff52,0 6px 18px #7a8a9224,0 2px 6px #3a2d240f}.bubble:hover{transform:rotate(var(--rot,0)) scale(1.06);animation-play-state:paused;box-shadow:inset 0 4px 10px #ffffffa6,inset 0 -6px 14px #9db09b33,inset 0 0 0 1px #fff6,0 14px 30px #7a8a9238,0 4px 10px #3a2d2414}.bubble-highlight{filter:blur(1px);pointer-events:none;background:radial-gradient(#ffffffd9 0%,#fff0 70%);border-radius:50%;width:30%;height:22%;position:absolute;top:12%;left:18%}.bubble-shine{pointer-events:none;background:radial-gradient(circle,#ffffffa6 0%,#fff0 70%);border-radius:50%;width:12%;height:12%;position:absolute;bottom:14%;right:22%}.bubble-title{z-index:2;-webkit-line-clamp:2;font-family:var(--font-brush);font-size:calc(var(--sz,108px) / 9);color:var(--sanyu-ink);letter-spacing:.14em;text-align:center;text-shadow:0 1px 3px #ffffffd9;pointer-events:none;-webkit-box-orient:vertical;padding:0 14%;line-height:1.35;display:-webkit-box;position:relative;overflow:hidden}@keyframes bubble-float{0%,to{transform:rotate(var(--rot,0)) translateY(0)}50%{transform:rotate(calc(var(--rot,0) * -1)) translateY(-8px)}}.poem-book-wrap{flex-direction:column;align-items:center;margin:4px 0 8px;display:flex}.poem-book{background:linear-gradient(#b096651a,#0000 12% 88%,#b096651a),linear-gradient(90deg,#b0966529 0%,#f0e6d46b 4%,#f0e6d48c 50%,#f0e6d46b 96%,#b0966529 100%);border-radius:4px;width:100%;max-width:460px;transition:transform .4s;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffdf88c,inset 0 0 0 1px #b0966538,0 10px 28px #3a2d2424,0 2px 6px #3a2d240f}.book-cover-band{background:linear-gradient(90deg,#c854491f,#b0966524);border-bottom:1px solid #b0966547;justify-content:space-between;align-items:baseline;padding:6px 14px;display:flex}.book-cover-band .cn{font-family:var(--font-brush);color:var(--sanyu-vermilion);letter-spacing:.22em;font-size:14px}.book-cover-band .en{font-family:var(--font-serif-en);color:var(--sanyu-ink);opacity:.6;letter-spacing:.1em;font-size:11px;font-style:italic}.book-spread{perspective:1400px;grid-template-columns:1fr 1fr;min-height:340px;display:grid;position:relative}.book-spine{pointer-events:none;z-index:3;background:linear-gradient(#0000,#b0966559 15%,#b096658c 50%,#b0966559 85%,#0000);width:2px;position:absolute;top:10px;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 0 10px #b0966533}.book-page{cursor:pointer;padding:20px 22px 24px;transition:background .3s;position:relative;overflow:hidden}.book-page-l{border-right:1px solid #b0966524}.book-page-r{border-left:1px solid #b0966524}.book-page-empty{cursor:default;color:var(--sanyu-charcoal);opacity:.4;font-family:var(--font-serif-en);letter-spacing:.16em;justify-content:center;align-items:center;font-size:12px;font-style:italic;display:flex}.page-blank{transform:rotate(-4deg)}.page-head{border-bottom:1px dashed #b0966552;flex-direction:column;gap:6px;margin-bottom:14px;padding-bottom:8px;display:flex}.page-date{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);opacity:.72;letter-spacing:.14em;font-size:10px;font-style:italic}.page-title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.16em;margin:0;font-size:20px;line-height:1.25}.page-lines{flex-direction:row-reverse;align-items:flex-start;gap:12px;min-height:180px;padding-top:4px;display:flex}.page-line{writing-mode:vertical-rl;font-family:var(--font-serif-cn);color:var(--sanyu-ink);letter-spacing:.24em;padding:2px 0;font-size:13.5px;line-height:1}.page-corner{clip-path:polygon(100% 0,100% 100%,0 100%);pointer-events:none;background:linear-gradient(-45deg,#d4b47a52 0%,#d4b47a24 48%,#0000 52%);width:22px;height:22px;transition:width .4s,height .4s;position:absolute;bottom:0;right:0}.book-page:hover .page-corner{width:34px;height:34px}.book-flipping{z-index:4;transform-origin:0;backface-visibility:hidden;background:linear-gradient(90deg,#f0e6d4e6,#f0e6d4a6);width:50%;height:100%;animation:.52s cubic-bezier(.7,0,.3,1) forwards book-flip-next;position:absolute;top:0;box-shadow:0 0 20px #3a2d2424,inset 0 0 0 1px #b0966538}.book-flipping-next{transform-origin:0;animation-name:book-flip-next;left:50%}.book-flipping-prev{transform-origin:100%;animation-name:book-flip-prev;left:0}@keyframes book-flip-next{0%{transform:rotateY(0)}to{transform:rotateY(-172deg)}}@keyframes book-flip-prev{0%{transform:rotateY(0)}to{transform:rotateY(172deg)}}.book-nav{align-items:center;gap:16px;margin-top:10px;padding:4px 12px;display:flex}.book-nav-btn{width:32px;height:32px;font-family:var(--font-serif-en);color:var(--sanyu-ink);cursor:pointer;background:0 0;border:1px solid #3d353033;border-radius:50%;font-size:18px;transition:all .24s}.book-nav-btn:hover:not(:disabled){background:var(--sanyu-ink);color:var(--sanyu-cream);border-color:var(--sanyu-ink)}.book-nav-btn:disabled{opacity:.28;cursor:not-allowed}.book-nav-idx{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);letter-spacing:.16em;font-size:12px}.book-nav-idx em{color:var(--sanyu-vermilion);margin-right:2px;font-size:14px;font-style:italic}.mailbox-wrap{flex-direction:column;align-items:center;margin:4px 0;display:flex}.mailbox-slot{background:linear-gradient(#3d353024,#3d35300a);border-radius:12px 12px 0 0;justify-content:center;align-items:center;width:100%;max-width:300px;height:22px;margin-bottom:-8px;display:flex;position:relative;box-shadow:inset 0 4px 6px #0000001a}.mailbox-slot-line{background:#140f0c80;border-radius:2px;width:46%;height:3px;box-shadow:inset 0 1px 2px #00000080}.mailbox-slot-tag{font-family:var(--font-serif-en);color:var(--sanyu-cream);opacity:.72;letter-spacing:.14em;font-size:9px;font-style:italic;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.mailbox-stack{justify-content:center;align-items:flex-start;width:100%;min-height:260px;padding:24px 4px 12px;display:flex;position:relative}.mail-piece{top:calc(24px + var(--i) * 14px);width:min(84%,320px);min-height:160px;transform:translateX(calc(-50% + var(--dx,0px))) rotate(var(--rot,0));cursor:pointer;animation:.6s ease-out backwards mail-settle;animation-delay:calc(var(--i) * 80ms);text-align:left;background:linear-gradient(#fffdf8eb 0%,#f4dcd5b8 100%);border:none;border-radius:4px;padding:32px 0 0;transition:transform .4s cubic-bezier(.16,1,.36,1),box-shadow .4s;position:absolute;left:50%;overflow:hidden;box-shadow:inset 0 1px #fffdf88c,inset 0 0 0 1px #dc8f8852,0 6px 16px #3a2d2424,0 2px 4px #3a2d240f}@keyframes mail-settle{0%{transform:translateX(calc(-50% + var(--dx,0px))) translateY(-30px) rotate(0);opacity:0}to{transform:translateX(calc(-50% + var(--dx,0px))) rotate(var(--rot,0));opacity:1}}.mail-piece:hover{transform:translateX(calc(-50% + var(--dx,0px))) rotate(var(--rot,0)) translateY(-8px) scale(1.03);box-shadow:inset 0 1px #fffdf899,inset 0 0 0 1px #dc8f8873,0 16px 32px #3a2d2433,0 4px 8px #3a2d2414;z-index:999!important}.mail-flap{transform-origin:top;pointer-events:none;width:100%;height:32px;transition:transform .6s cubic-bezier(.16,1,.36,1),opacity .4s;position:absolute;top:0;left:0;right:0}.mail-piece:hover .mail-flap{opacity:.6;transform:rotateX(140deg)}.mail-body{background:repeating-linear-gradient(#0000 0 22px,#dc8f8817 22px 23px) 0 12px;padding:14px 20px 20px;position:relative}.mail-head{border-bottom:1px dashed #dc8f8847;justify-content:space-between;align-items:baseline;margin-bottom:8px;padding-bottom:6px;display:flex}.mail-to{font-family:var(--font-brush);color:#a8362d;letter-spacing:.14em;font-size:14px}.mail-date{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.12em;font-size:10px;font-style:italic}.mail-title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;margin-bottom:10px;font-size:17px;line-height:1.3}.mail-lines{flex-direction:column;gap:6px;display:flex}.mail-lines span{background:linear-gradient(90deg,#3d35301f,#3d35300a);border-radius:2px;height:6px;display:block}.mail-lines span:first-child{width:88%}.mail-lines span:nth-child(2){width:74%}.mail-lines span:nth-child(3){width:82%}.mail-lines span:nth-child(4){width:40%}.mail-wax{background:radial-gradient(circle at 32% 30%,#db6353 15%,#a8362d 85%);border-radius:50%;width:18px;height:18px;position:absolute;bottom:12px;right:14px;box-shadow:inset 0 -2px 3px #00000038,inset 0 1px 1px #ffffff59,0 1px 4px #b8342a6b}.mail-wax:after{content:"心";font-family:var(--font-brush);color:var(--sanyu-cream);opacity:.9;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;inset:0}.mailbox-count{font-family:var(--font-brush);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.18em;margin-top:12px;font-size:12px}.mailbox-count em{font-family:var(--font-serif-en);color:var(--sanyu-vermilion);letter-spacing:0;margin:0 3px;font-size:15px;font-style:italic}.month-ribbon{flex-wrap:wrap;gap:5px;margin:0 0 12px;display:flex}.m-chip{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);cursor:pointer;background:0 0;border:1px dashed #3d353029;border-radius:10px;align-items:baseline;gap:3px;padding:3px 8px;transition:all .24s;display:inline-flex}.m-chip .m-num{letter-spacing:.04em;font-size:11px;font-style:italic}.m-chip .m-suf{font-family:var(--font-brush);opacity:.66;letter-spacing:.12em;font-size:10px}.m-chip.active{color:var(--sanyu-vermilion);background:#c854491f;border-style:solid;border-color:#c854498c}.bubble-scene{width:100%;margin:6px 0 4px;position:relative;overflow:visible}.bubble-abs{transform:translate(-50%, -50%) rotate(var(--rot,0));width:var(--sz,108px);height:var(--sz,108px);cursor:pointer;isolation:isolate;background:0 0;border:none;border-radius:50%;padding:0;transition:transform .36s cubic-bezier(.16,1,.36,1);animation:8s ease-in-out infinite bubble-drift;position:absolute;overflow:hidden}.b-rim{-webkit-backdrop-filter:blur(1.5px);pointer-events:none;border:1px solid #ffffff80;border-radius:50%;position:absolute;inset:0;box-shadow:inset 0 6px 14px #ffffff6b,inset 0 -10px 18px #b8c8d024,inset 0 0 30px #ffffff0f,0 6px 18px #7a8a921f}.b-hl-1{filter:blur(1px);pointer-events:none;background:radial-gradient(at 30% 40%,#ffffffe6 0%,#fff0 70%);border-radius:50%;width:34%;height:24%;position:absolute;top:10%;left:16%}.b-hl-2{pointer-events:none;background:radial-gradient(circle,#ffffffbf 0%,#fff0 70%);border-radius:50%;width:14%;height:14%;position:absolute;bottom:16%;right:20%}.b-title{z-index:2;font-family:var(--font-brush);font-size:calc(var(--sz,108px) / 8.8);color:var(--sanyu-ink);letter-spacing:.12em;text-align:center;text-shadow:0 1px 2px #ffffffe6;pointer-events:none;justify-content:center;align-items:center;padding:0 16%;line-height:1.3;display:flex;position:absolute;inset:0;overflow:hidden}.bubble-abs:hover{transform:translate(-50%, -50%) rotate(var(--rot,0)) scale(1.08);z-index:20;animation-play-state:paused}@keyframes bubble-appear{0%{opacity:0;filter:blur(6px);transform:translate(-50%,calc(60px - 50%))rotate(0)scale(.2)}60%{transform:translate(-50%, calc(-50% - 6px)) rotate(var(--rot,0)) scale(1.08);opacity:1;filter:blur()}to{transform:translate(-50%, -50%) rotate(var(--rot,0)) scale(1);opacity:1;filter:blur()}}.poem-book{position:relative}.book-band{z-index:5;pointer-events:none;background:linear-gradient(90deg,#d4b47a80,#c854496b,#d4b47a80);border-radius:2px;height:3px;position:absolute;left:8px;right:8px;box-shadow:0 1px 2px #3a2d2424}.book-band.top{top:4px}.book-band.bot{bottom:4px}.book-ribbon{z-index:4;pointer-events:none;background:linear-gradient(#c85449 0%,#a8362d 50%,#c85449 100%);width:8px;height:calc(100% + 22px);position:absolute;top:0;left:22%;box-shadow:inset 0 0 2px #0000004d,0 2px 4px #3a2d2433}.book-ribbon:after{content:"";clip-path:polygon(0 0,100% 0,80% 100%,20% 100%);background:linear-gradient(90deg,#0000 0%,#c85449 20%,#a8362d 80%,#0000 100%);height:8px;position:absolute;bottom:-4px;left:0;right:0}.book-cover-band{display:none}.book-hint{align-items:center;gap:10px;margin-top:12px;padding:0 6px;display:flex}.book-hint .dots{align-items:center;gap:4px;display:inline-flex}.book-hint .dots .d{background:#3d353033;border-radius:50%;width:4px;height:4px;transition:all .24s}.book-hint .dots .d.on{background:var(--sanyu-vermilion);border-radius:2px;width:14px}.book-idx{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.12em;font-size:11px;font-style:italic}.book-idx em{color:var(--sanyu-vermilion);opacity:1;margin-right:2px;font-size:13px;font-style:italic}.book-nav{display:none}.bookshelf{margin-top:22px;padding:8px 4px 4px}.bookshelf-label{border-bottom:1px dashed #3d353024;align-items:baseline;gap:10px;margin-bottom:8px;padding-bottom:6px;display:flex}.bookshelf-label .cn{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.18em;font-size:14px}.bookshelf-label .en{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.65;letter-spacing:.08em;font-size:11px;font-style:italic}.bookshelf-rack{background:linear-gradient(#0000 0% 84%,#8b5a4440 84%,#8b5a4459 100%);border-radius:3px;align-items:flex-end;gap:4px;min-height:148px;padding:10px 8px 6px;display:flex;position:relative}.bookshelf-rack:after{content:"";background:linear-gradient(#0000004d,#0000);height:2px;position:absolute;bottom:0;left:0;right:0}.book-spine-item{cursor:pointer;color:#4a5a52;width:26px;font-family:var(--font-brush);writing-mode:vertical-rl;letter-spacing:.24em;border:none;border-radius:2px 2px 1px 1px;flex-direction:column;justify-content:space-between;align-items:center;padding:8px 4px;transition:transform .3s cubic-bezier(.16,1,.36,1);display:flex;position:relative;overflow:hidden;box-shadow:inset 1px 0 #ffffff5c,inset -1px 0 #5a6b622e,inset 0 2px #ffffff57,inset 0 -2px #5a6b6238,0 2px 6px #5a6b6224}.book-spine-item:hover{transform:translateY(-6px)}.bsi-year{letter-spacing:.16em;opacity:.95;font-size:12px}.bsi-cnt{font-family:var(--font-serif-en);opacity:.72;letter-spacing:.04em;writing-mode:horizontal-tb;border-top:1px dashed #ffffff3d;padding:2px 0;font-size:10px;font-style:italic}.bsi-glint{background:linear-gradient(90deg,#0000,#fff9,#0000);border-radius:1px;height:2px;position:absolute;top:6px;left:3px;right:3px}.carton-wrap{justify-content:center;padding:12px 0;display:flex}.carton{background:linear-gradient(#c69c6424,#8b5a441f),repeating-linear-gradient(45deg,#8b5a4408 0 2px,#0000 2px 4px),#c9a880;border:1px solid #8b5a446b;border-radius:3px;width:100%;max-width:400px;min-height:320px;position:relative;box-shadow:inset 0 4px 8px #8b5a4447,inset 0 -6px 12px #3c281852,inset 6px 0 12px #8b5a4429,inset -6px 0 12px #3c281824,0 10px 24px #3a2d243d}.carton-flap-l,.carton-flap-r{z-index:6;background:linear-gradient(#d4b47a 0%,#b09665 100%);border:1px solid #8b5a446b;border-bottom-color:#3c28186b;height:22px;position:absolute;top:-1px;box-shadow:0 3px 8px #3c28182e}.carton-flap-l{transform-origin:0 100%;clip-path:polygon(0 0,100% 0,95% 100%,0 100%);border-radius:2px 0 8px 8px;width:52%;left:-1px;transform:rotate(-3deg)}.carton-flap-r{transform-origin:100% 100%;clip-path:polygon(0 0,100% 0,100% 100%,5% 100%);border-radius:0 2px 8px 8px;width:52%;right:-1px;transform:rotate(3deg)}.carton-inner{min-height:320px;padding:40px 18px 22px;position:relative}.carton-crease{background:linear-gradient(#3c28185c,#3c281824);width:1px;position:absolute;top:22px;bottom:12px}.carton-crease.left{left:8px}.carton-crease.right{right:8px}.carton-tag{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);letter-spacing:.14em;z-index:5;white-space:nowrap;background:#fffdf8bf;border:1px dashed #8b5a446b;border-radius:2px;padding:2px 10px;font-size:10px;font-style:italic;position:absolute;top:8px;left:50%;transform:translate(-50%)}.carton-empty{min-height:220px;color:var(--sanyu-cream);opacity:.65;font-family:var(--font-brush);letter-spacing:.18em;text-shadow:0 1px 2px #3c28188c;justify-content:center;align-items:center;font-size:14px;display:flex}.carton-stack{min-height:260px;position:relative}.envelope{top:calc(20px + var(--i) * 18px);cursor:pointer;width:82%;min-height:140px;transform:translateX(calc(-50% + var(--dx,0px))) rotate(var(--rot,0));text-align:left;animation:.6s ease-out backwards env-settle;animation-delay:calc(var(--i) * 60ms);background:linear-gradient(#fffdf8f5 0%,#f4dcd5d1 100%);border:none;border-radius:3px;padding:30px 0 0;transition:transform .36s cubic-bezier(.16,1,.36,1),box-shadow .36s;position:absolute;left:50%;overflow:hidden;box-shadow:inset 0 1px #fffdf899,inset 0 0 0 1px #dc8f886b,0 5px 14px #1e140a47,0 2px 4px #1e140a24}@keyframes env-settle{0%{transform:translateX(calc(-50% + var(--dx,0px))) translateY(-40px) rotate(0);opacity:0}to{transform:translateX(calc(-50% + var(--dx,0px))) rotate(var(--rot,0));opacity:1}}.envelope:hover{transform:translateX(calc(-50% + var(--dx,0px))) rotate(var(--rot,0)) translateY(-10px) scale(1.03);box-shadow:inset 0 1px #fffdf8b3,inset 0 0 0 1px #dc8f888c,0 18px 32px #1e140a66,0 6px 10px #1e140a2e;z-index:999!important}.envelope:hover .env-flap{opacity:.55;transform:rotateX(140deg)}.env-flap{transform-origin:top;pointer-events:none;width:100%;height:30px;transition:transform .6s cubic-bezier(.16,1,.36,1),opacity .4s;position:absolute;top:0;left:0;right:0}.env-body{background:repeating-linear-gradient(#0000 0 20px,#dc8f8814 20px 21px) 0 10px;padding:12px 18px 16px;position:relative}.env-head{border-bottom:1px dashed #dc8f8847;justify-content:space-between;align-items:baseline;margin-bottom:6px;padding-bottom:5px;display:flex}.env-to{font-family:var(--font-brush);color:#a8362d;letter-spacing:.14em;font-size:13px}.env-date{font-family:var(--font-serif-en);color:var(--sanyu-charcoal);opacity:.7;letter-spacing:.1em;font-size:10px;font-style:italic}.env-title{font-family:var(--font-brush);color:var(--sanyu-ink);letter-spacing:.12em;margin-bottom:8px;font-size:15px;line-height:1.3}.env-lines{flex-direction:column;gap:4px;display:flex}.env-lines span{background:linear-gradient(90deg,#3d353024,#3d35300a);border-radius:2px;height:5px;display:block}.env-lines span:first-child{width:88%}.env-lines span:nth-child(2){width:72%}.env-lines span:nth-child(3){width:46%}.env-wax{background:radial-gradient(circle at 32% 30%,#db6353 15%,#a8362d 85%);border-radius:50%;width:16px;height:16px;position:absolute;bottom:10px;right:12px;box-shadow:inset 0 -2px 3px #0000003d,inset 0 1px 1px #ffffff57,0 1px 4px #b8342a6b}.env-wax:after{content:"心";font-family:var(--font-brush);color:var(--sanyu-cream);opacity:.92;justify-content:center;align-items:center;font-size:9px;display:flex;position:absolute;inset:0}.envelope-drop-in{animation:1.1s cubic-bezier(.34,1.56,.64,1) both env-drop!important}@keyframes env-drop{0%{transform:translateX(calc(-50% + var(--dx,0px))) translateY(-260px) rotate(-18deg) scale(.85);opacity:0}55%{transform:translateX(calc(-50% + var(--dx,0px))) translateY(12px) rotate(calc(var(--rot,0) * 1.4)) scale(1.04);opacity:1}80%{transform:translateX(calc(-50% + var(--dx,0px))) translateY(-4px) rotate(calc(var(--rot,0) * .9)) scale(1)}to{transform:translateX(calc(-50% + var(--dx,0px))) rotate(var(--rot,0));opacity:1}}.dream-tab{color:#5a6b62;background:0 0;border:1px solid #5a6b623d}.dream-tab .num{color:#8a97a0;opacity:.72}.dream-tab:hover{background:#a8c4a21a;border-color:#a8c4a2b3}.dream-tab.active{color:#5a6b62;background:#a8c4a252;border-color:#a8c4a2b3}.dream-tab.active:first-child{color:#5a6b62;background:#b8a8b847;border-color:#b8a8b8b3}.dream-tab.active .num{color:#5a6b62;opacity:.85}.virt-sec-head{border-bottom:1px solid #5a6b6224}.virt-sec-head .cn{color:#5a6b62;font-weight:500}.virt-sec-head .en{color:#a8b4c0;opacity:.82}.year-chip{color:#5a6b62;border-color:#5a6b622e}.year-chip .y-suf{color:#8a97a0}.year-chip:hover{color:#6a8a72;border-color:#a8c4a299}.year-chip:hover .y-suf{color:#6a8a72}.year-chip.active{color:#4a5a52;background:#a8c4a259;border-color:#a8c4a2b3}.year-chip.active .y-suf{color:#4a5a52;opacity:.85}.m-chip{color:#7a8590;border-color:#5a6b622e}.m-chip .m-suf{color:#a8b4c0}.m-chip:hover{color:#a67e7c;border-color:#e0bebcb3}.m-chip:hover .m-suf{color:#a67e7c}.m-chip.active{color:#8a5c5a;background:#e0bebc59;border:1px solid #e0bebcbf}.m-chip.active .m-suf{color:#8a5c5a;opacity:.85}.bubble-scene{background:radial-gradient(40% 20% at 22% 30%,#a8c4a224 0%,#0000 65%),radial-gradient(32% 18% at 78% 60%,#e0bebc1f 0%,#0000 65%),radial-gradient(28% 16% at 50% 80%,#c8b8981a 0%,#0000 60%);border-radius:4px;position:relative}.b-rim{border:1px solid #5a6b6229;box-shadow:inset 0 6px 14px #faf6ec99,inset 0 -12px 22px #a8c4a224,inset 0 0 30px #faf6ec14,0 6px 16px #5a6b621a}.b-hl-1{background:radial-gradient(at 30% 40%,#fffdf6db 0%,#fffdf600 70%)}.b-hl-2{background:radial-gradient(circle,#fffdf6b8 0%,#fffdf600 70%)}.b-title{color:#4a5a52;text-shadow:0 1px 2px #faf6ece6}.bubble-abs:hover .b-rim{box-shadow:inset 0 6px 14px #faf6ecbf,inset 0 -12px 22px #a8c4a23d,inset 0 0 30px #faf6ec1f,0 14px 30px #5a6b622e}.poem-book{background:radial-gradient(60% 40% at 20% 25%,#a8c4a224 0%,#0000 70%),radial-gradient(50% 35% at 80% 75%,#e0bebc1f 0%,#0000 70%),radial-gradient(40% 30%,#b8d0c41a 0%,#0000 65%),radial-gradient(30% 22% at 70% 20%,#c8b8981a 0%,#0000 60%),linear-gradient(#faf6ecd9,#f6f0e2b8);border:1px solid #c8b8983d;box-shadow:inset 0 1px #fffdf68c,0 6px 20px #5a6b621a,0 2px 6px #5a6b620d}.book-spine{background:linear-gradient(#0000,#a8c4a247 20%,#a8c4a26b 50%,#a8c4a247 80%,#0000);box-shadow:0 0 12px #a8c4a224}.book-page-l,.book-page-r{border:none}.page-head{border-bottom:1px dashed #a8c4a252}.page-date{color:#8a97a0;opacity:.72}.page-title,.page-line{color:#4a5a52}.page-corner{background:linear-gradient(-45deg,#c8b89847 0%,#c8b8981f 48%,#0000 52%)}.book-page-empty .page-blank{color:#8a97a0;opacity:.4}.book-idx em{color:#6a8a72}.book-hint .dots .d{background:#5a6b622e}.book-hint .dots .d.on{background:#a8c4a2}.bookshelf-label{border-bottom:1px dashed #5a6b6229}.bookshelf-label .cn{color:#5a6b62}.bookshelf-label .en{color:#a8b4c0;opacity:.75}.bookshelf-rack{background:linear-gradient(#0000 0% 84%,#a8c4a238 84%,#8a97a047 100%)}.carton{box-shadow:none;background:radial-gradient(55% 40% at 25% 25%,#b8a8b824 0%,#0000 70%),radial-gradient(45% 35% at 75% 75%,#e0bebc1f 0%,#0000 70%),radial-gradient(35% 25%,#a8c4a21a 0%,#0000 65%),linear-gradient(#faf6ec80,#f6f0e259);border:none;border-radius:3px}.carton-flap-l,.carton-flap-r,.carton-crease{display:none!important}.carton-tag{color:#8a97a0;font-family:var(--font-serif-en);background:0 0;border:none;font-style:italic}.carton-empty{color:#8a97a0;text-shadow:none;opacity:.7}.envelope{background:linear-gradient(#faf6ecf2 0%,#f6f0e2d9 100%);box-shadow:inset 0 1px #fffdf6a6,inset 0 0 0 1px #c8b89859,0 4px 12px #5a6b6224,0 1px 3px #5a6b620f}.envelope:hover{box-shadow:inset 0 1px #fffdf6bf,inset 0 0 0 1px #a8c4a28c,0 14px 26px #5a6b6233,0 4px 8px #5a6b6214}.env-flap path[fill]{fill:#b8d0c447}.env-flap path[stroke]{stroke:#5a6b6247}.env-body{background:repeating-linear-gradient(#0000 0 20px,#5a6b6212 20px 21px) 0 10px}.env-head{border-bottom:1px dashed #a8c4a25c}.env-to{color:#6a8a72}.env-date{color:#8a97a0;opacity:.72}.env-title{color:#4a5a52}.env-lines span{background:linear-gradient(90deg,#5a6b6224,#5a6b620a)}.env-wax{background:radial-gradient(circle at 32% 30%,#d4a8a2 15%,#a67e7c 85%);box-shadow:inset 0 -1px 2px #5a3c3c3d,inset 0 1px 1px #fff6,0 1px 3px #8c5a5a47}.env-wax:after{color:#faf6ec;opacity:.88}.dream-tab{border-radius:16px;padding:6px 14px}.dream-tab .num{margin-left:4px}.dream-tab.dt-poem.active{color:#4a5a52;background:#a8c4a252;border-color:#a8c4a2b3}.dream-tab.dt-dream.active{color:#4a5a62;background:#8a97a047;border-color:#8a97a0a6}.dream-tab.dt-letter.active{color:#7a4d45;background:#c99a8f52;border-color:#c99a8fb3}.dream-tab.dt-poem.active .num,.dream-tab.dt-dream.active .num,.dream-tab.dt-letter.active .num{color:inherit;opacity:.85}.poem-book{box-shadow:none!important;background:0 0!important;border:none!important}.book-spread{gap:8px;min-height:320px;padding:8px 0}.book-page{background:radial-gradient(90% 60% at 20% 20%,#a8c4a21a 0%,#0000 70%),radial-gradient(80% 55% at 80% 80%,#e0bebc1a 0%,#0000 70%),linear-gradient(#faf6ecb3,#f6f0e28c);border-radius:3px;min-height:300px;padding:22px 20px;transition:transform .3s cubic-bezier(.16,1,.36,1),box-shadow .3s;box-shadow:0 4px 14px #5a6b6214}.book-page:hover{transform:translateY(-2px);box-shadow:0 10px 20px #5a6b6224}.book-page-empty{box-shadow:none;background:0 0}.book-spine{background:linear-gradient(#0000,#a8c4a23d 20%,#a8c4a25c 50%,#a8c4a23d 80%,#0000)}.mail-wall{padding:8px 0 12px}.mail-wall-head{border-bottom:1px dashed #5a6b6229;justify-content:space-between;align-items:baseline;margin-bottom:14px;padding:4px 4px 10px;display:flex}.mwh-tag{font-family:var(--font-serif-en);color:#8a97a0;letter-spacing:.14em;font-size:12px;font-style:italic}.mwh-cnt{font-family:var(--font-brush);color:#5a6b62;letter-spacing:.16em;font-size:12px}.mwh-cnt em{font-family:var(--font-serif-en);color:#a67e7c;letter-spacing:0;margin:0 3px;font-size:15px;font-style:italic}.mail-wall-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.mail-wall-empty{text-align:center;color:#8a97a0;opacity:.7;font-family:var(--font-brush);letter-spacing:.16em;padding:40px 10px;font-size:13px}.mail-card{cursor:pointer;text-align:left;animation:.5s ease-out backwards mail-card-fade-in;animation-delay:calc(var(--i) * 60ms);background:linear-gradient(#faf6eceb 0%,#f6f0e2c7 100%);border:none;border-radius:3px;padding:26px 0 0;transition:transform .32s cubic-bezier(.16,1,.36,1),box-shadow .32s;position:relative;overflow:hidden;box-shadow:inset 0 1px #fffdf6a6,inset 0 0 0 1px #c8b89852,0 3px 10px #5a6b621a}@keyframes mail-card-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.mail-card:hover{transform:translateY(-5px);box-shadow:inset 0 1px #fffdf6bf,inset 0 0 0 1px #a8c4a28c,0 12px 24px #5a6b622e}.mail-card:hover .mc-flap{opacity:.55;transform:rotateX(140deg)}.mc-flap{transform-origin:top;pointer-events:none;width:100%;height:26px;transition:transform .5s cubic-bezier(.16,1,.36,1),opacity .35s;position:absolute;top:0;left:0;right:0}.mc-body{background:repeating-linear-gradient(#0000 0 18px,#5a6b620f 18px 19px) 0 8px;padding:10px 14px 12px;position:relative}.mc-to{font-family:var(--font-brush);color:#6a8a72;letter-spacing:.12em;margin-bottom:4px;font-size:13px}.mc-title{font-family:var(--font-brush);color:#4a5a52;letter-spacing:.1em;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:6px;font-size:15px;line-height:1.32;display:-webkit-box;overflow:hidden}.mc-date{font-family:var(--font-serif-en);color:#8a97a0;opacity:.72;letter-spacing:.1em;font-size:10px;font-style:italic}.mc-wax{background:radial-gradient(circle at 32% 30%,#d4a8a2 15%,#a67e7c 85%);border-radius:50%;width:12px;height:12px;position:absolute;bottom:8px;right:10px;box-shadow:inset 0 -1px 2px #5a3c3c3d,inset 0 1px 1px #fff6}.mail-card-just-in{animation:.9s cubic-bezier(.34,1.56,.64,1) both mail-card-drop-in!important}@keyframes mail-card-drop-in{0%{opacity:0;transform:translateY(-40px)rotate(-6deg)scale(.9)}60%{opacity:1;transform:translateY(6px)rotate(2deg)scale(1.04)}to{opacity:1;transform:translateY(0)rotate(0)scale(1)}}.virt-letter{overflow:hidden}.virt-letter .dc-type-tag{font-family:var(--font-brush);letter-spacing:.18em;border-radius:2px;margin-right:8px;padding:2px 8px;font-size:11px;display:inline-block}.virt-letter.type-poem:before{background:linear-gradient(90deg,#0000,#a8c4a2a6,#0000)!important}.virt-letter.type-poem .dc-type-tag{color:#4a5a52;background:#a8c4a252}.virt-letter.type-poem .letter-mark,.virt-letter.type-poem .letter-date{color:#6a8a72}.virt-letter.type-poem .letter-piece-head h4{color:#4a5a52}.virt-letter.type-poem .seal{color:#3a4a3e;background:#a8c4a2d9}.virt-letter.type-poem .letter-foot .line{background:linear-gradient(90deg,#a8c4a24d,#0000)}.virt-letter.type-dream:before{background:linear-gradient(90deg,#0000,#8a97a099,#0000)!important}.virt-letter.type-dream .dc-type-tag{color:#4a5a62;background:#8a97a047}.virt-letter.type-dream .letter-mark,.virt-letter.type-dream .letter-date{color:#6a7a82}.virt-letter.type-dream .letter-piece-head h4{color:#3a4a52}.virt-letter.type-dream .seal{color:#2a3a42;background:#8a97a0bf}.virt-letter.type-dream .letter-foot .line{background:linear-gradient(90deg,#8a97a047,#0000)}.virt-letter.type-letter:before{background:linear-gradient(90deg,#0000,#c99a8f9e,#0000)!important}.virt-letter.type-letter .dc-type-tag{color:#7a4d45;background:#c99a8f47}.virt-letter.type-letter .letter-mark,.virt-letter.type-letter .letter-date{color:#a67e7c}.virt-letter.type-letter .letter-piece-head h4{color:#5a3a34}.virt-letter.type-letter .seal{color:#5a3a34;background:#c99a8fd9}.virt-letter.type-letter .letter-foot .line{background:linear-gradient(90deg,#c99a8f4d,#0000)}.tab-bar{border-bottom:1px solid #5a6b6224;align-items:stretch;margin:4px 0 14px;display:flex}.tab-bar-item{cursor:pointer;color:#8a97a0;background:0 0;border:none;flex:1;justify-content:center;align-items:baseline;gap:6px;padding:12px 0 10px;transition:color .24s;display:inline-flex;position:relative}.tab-bar-item .tb-cn{font-family:var(--font-brush);letter-spacing:.24em;font-size:16px}.tab-bar-item .tb-num{font-family:var(--font-serif-en);opacity:.7;letter-spacing:.06em;font-size:11px;font-style:italic}.tab-bar-item .tb-underline{transform-origin:50%;background:0 0;height:2px;transition:transform .35s cubic-bezier(.16,1,.36,1),background .24s;position:absolute;bottom:-1px;left:26%;right:26%;transform:scaleX(0)}.tab-bar-item:hover{color:#5a6b62}.tab-bar-item.active{color:#4a5a52}.tab-bar-item.active .tb-underline{transform:scaleX(1)}.tab-bar-item.dt-poem.active .tb-underline{background:#a8c4a2d9}.tab-bar-item.dt-dream.active .tb-underline{background:#8a97a0d9}.tab-bar-item.dt-letter.active .tb-underline{background:#c99a8fd9}.tab-bar-item.dt-poem.active{color:#4a5a52}.tab-bar-item.dt-dream.active{color:#4a5a62}.tab-bar-item.dt-letter.active{color:#7a4d45}.dream-tabs{display:none!important}.year-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:2px 0 6px;display:flex}.year-row .year-ribbon{margin:0}.month-toggle{cursor:pointer;color:#7a8590;background:0 0;border:1px dashed #5a6b6247;border-radius:11px;flex-shrink:0;align-items:baseline;gap:4px;padding:4px 10px;transition:all .24s;display:inline-flex}.month-toggle:hover{color:#6a8a72;border-color:#a8c4a2a6}.month-toggle .mt-lb{font-family:var(--font-brush);letter-spacing:.14em;font-size:12px}.month-toggle .mt-caret{opacity:.7;font-size:10px}.month-toggle.has-value{color:#4a5a52;background:#a8c4a229;border-style:solid;border-color:#a8c4a2a6}.month-toggle.open .mt-caret{opacity:1}.month-collapse{opacity:0;max-height:0;transition:max-height .34s cubic-bezier(.16,1,.36,1),opacity .24s;overflow:hidden}.month-collapse.open{opacity:1;max-height:220px}.month-collapse-inner{flex-wrap:wrap;gap:5px;padding:6px 2px 12px;display:flex}.poem-book{max-width:500px;margin:6px auto 0;padding:12px 10px;position:relative;background:linear-gradient(#c8b89829,#c8b89814),linear-gradient(90deg,#8b6a3a1f 0%,#f6f0e280 5%,#faf4e88c 50%,#f6f0e280 95%,#8b6a3a1f 100%)!important;border:1px solid #8b6a3a47!important;border-radius:3px!important;box-shadow:inset 0 1px #fffdf699,inset 0 0 0 1px #8b6a3a14,0 6px 14px #5a3c1e38,0 2px 4px #5a3c1e1a!important}.poem-book:before,.poem-book:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#5a3c1e4d,#0000);height:1px;position:absolute;left:8%;right:8%}.poem-book:before{top:3px}.poem-book:after{bottom:3px}.book-spread{position:relative;gap:0!important;padding:6px 0!important}.book-page{min-height:300px;box-shadow:none!important;background:radial-gradient(90% 60% at 20% 20%,#a8c4a214 0%,#0000 70%),radial-gradient(80% 55% at 80% 80%,#e0bebc14 0%,#0000 70%),linear-gradient(#fffdf6d9,#faf4e8a6)!important;border-radius:0!important}.book-page-l{border-right:1px solid #8b6a3a24!important;box-shadow:inset -6px 0 12px -6px #5a3c1e38!important}.book-page-r{border-left:none!important;box-shadow:inset 6px 0 12px -6px #5a3c1e38!important}.book-page:hover{transform:none!important}.book-spine{z-index:3;background:linear-gradient(#0000,#5a3c1e38 15%,#5a3c1e52 50%,#5a3c1e38 85%,#0000)!important;width:1px!important}.book-band,.book-ribbon,.mail-wall,.mail-wall-grid{display:none!important}.mail-list{padding:6px 0}.mail-list-head{border-bottom:1px dashed #5a6b6229;justify-content:space-between;align-items:baseline;margin-bottom:8px;padding:4px 4px 8px;display:flex}.mail-list-head .mlh-tag{font-family:var(--font-serif-en);color:#8a97a0;letter-spacing:.14em;font-size:12px;font-style:italic}.mail-list-head .mlh-cnt{font-family:var(--font-brush);color:#5a6b62;letter-spacing:.16em;font-size:12px}.mail-list-head .mlh-cnt em{font-family:var(--font-serif-en);color:#a67e7c;letter-spacing:0;margin:0 3px;font-size:15px;font-style:italic}.mail-list-empty{text-align:center;color:#8a97a0;opacity:.7;font-family:var(--font-brush);letter-spacing:.16em;padding:40px 10px;font-size:13px}.mail-list-rows{flex-direction:column;gap:8px;display:flex}.mail-row{cursor:pointer;text-align:left;animation:.5s ease-out backwards mail-row-fade-in;animation-delay:calc(var(--i) * 50ms);background:0 0;border:none;border-radius:3px;align-items:center;gap:12px;padding:14px 46px 14px 16px;transition:transform .28s cubic-bezier(.16,1,.36,1),background .24s;display:flex;position:relative}@keyframes mail-row-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.mail-row:hover{background:#a8c4a214;transform:translate(3px)}.mr-envelope{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.mr-to{font-family:var(--font-brush);color:#6a8a72;letter-spacing:.14em;z-index:1;flex-shrink:0;min-width:76px;font-size:13px;position:relative}.mr-title{font-family:var(--font-brush);color:#4a5a52;letter-spacing:.1em;white-space:nowrap;text-overflow:ellipsis;z-index:1;flex:1;font-size:15px;line-height:1.32;position:relative;overflow:hidden}.mr-date{font-family:var(--font-serif-en);color:#8a97a0;opacity:.72;letter-spacing:.1em;z-index:1;flex-shrink:0;font-size:10px;font-style:italic;position:relative}.mr-wax{z-index:1;background:radial-gradient(circle at 32% 30%,#d4a8a2 15%,#a67e7c 85%);border-radius:50%;width:10px;height:10px;position:absolute;top:50%;right:14px;transform:translateY(-50%);box-shadow:inset 0 -1px 2px #5a3c3c3d,inset 0 1px 1px #fff6}.mail-row-just-in{animation:.9s cubic-bezier(.34,1.56,.64,1) both mail-row-drop-in!important}@keyframes mail-row-drop-in{0%{opacity:0;transform:translateY(-24px)scale(.96)}60%{opacity:1;transform:translateY(4px)scale(1.02)}to{opacity:1;transform:translateY(0)scale(1)}}.bubble-scene{margin-top:8px;padding-top:12px;padding-bottom:8px}.book-tap{cursor:pointer;z-index:5;background:0 0;border:none;width:22%;padding:0;transition:background .2s;position:absolute;top:0;bottom:0}.book-tap-l{left:0}.book-tap-r{right:0}.book-tap:hover{background:linear-gradient(90deg,#a8c4a20f,#0000)}.book-tap-r:hover{background:linear-gradient(-90deg,#a8c4a20f,#0000)}.book-hint{justify-content:center;gap:0}.book-hint .book-idx{display:none!important}.bubble-abs{transform:translate(-50%, -50%) rotate(var(--rot,0));transition:transform .36s cubic-bezier(.16,1,.36,1)}.bubble-abs:hover{transform:translate(-50%, -50%) rotate(var(--rot,0)) scale(1.08);animation-play-state:paused}.bubble-just-in{animation:1.1s cubic-bezier(.34,1.56,.64,1) both bubble-appear,7s ease-in-out 1.1s infinite bubble-drift!important}.mail-list-rows{gap:12px}.mail-row{min-height:68px;padding:22px 54px 22px 18px!important}.mr-envelope{height:100%}.mr-to{min-width:88px!important;font-size:14px!important}.mr-title{font-size:16px!important;line-height:1.4!important}.mr-date{font-size:11px!important}.mr-wax{width:12px!important;height:12px!important;right:18px!important}.m-chip .m-num.mn-cn{font-family:var(--font-brush);letter-spacing:.14em;font-size:13px;font-style:normal}.m-chip .m-num.mn-en{font-family:var(--font-serif-en);letter-spacing:.04em;font-size:12px;font-style:italic}.m-chip .m-suf{font-family:var(--font-brush);letter-spacing:.12em;opacity:.75;font-size:11px;font-style:normal}.year-chip{padding:5px 11px}.year-chip .y-num{font-size:13px}.year-chip .y-suf{font-size:12px}.month-toggle .mt-lb{font-family:var(--font-brush);font-size:13px;font-style:normal}.stat-cell .label{font-family:var(--font-brush);letter-spacing:.16em;opacity:.75;font-size:11px}.month-toggle{display:none!important}.year-row{justify-content:flex-start}.year-chip .y-caret{opacity:.7;margin-left:4px;font-size:9px;transition:transform .24s}.year-chip.opened .y-caret{opacity:1}.year-chip.active.opened{box-shadow:0 2px 4px #5a6b6214}.month-collapse-inner{gap:6px;padding-left:4px}.month-collapse .m-hint{font-family:var(--font-serif-en);color:#a8b4c0;opacity:.72;padding:4px 8px;font-size:11px;font-style:italic}.year-chip.year-plain{padding:5px 12px}.year-chip.year-plain .y-num{font-family:var(--font-serif-en);letter-spacing:.06em;font-size:14px;font-style:italic}.virt-block{margin-top:24px;padding-top:6px}.virt-block:first-of-type{margin-top:18px}.vb-divider{border-bottom:1px solid #5a6b6224;align-items:baseline;gap:10px;margin-bottom:8px;padding:8px 2px 10px;display:flex;position:relative}.vb-divider .vb-cn{font-family:var(--font-brush);color:#4a5a52;letter-spacing:.28em;font-size:18px;line-height:1}.vb-divider .vb-en{font-family:var(--font-serif-en);color:#a8b4c0;opacity:.85;letter-spacing:.08em;font-size:11px;font-style:italic;line-height:1}.vb-empty{text-align:center;color:#a8b4c0;opacity:.7;font-family:var(--font-brush);letter-spacing:.16em;padding:30px 10px;font-size:13px}.virt-block-poem .vb-divider:before,.virt-block-dream .vb-divider:before,.virt-block-letter .vb-divider:before{content:"";border-radius:1px;width:2px;position:absolute;top:12px;bottom:14px;left:-8px}.virt-block-poem .vb-divider:before{background:#a8c4a2d9}.virt-block-dream .vb-divider:before{background:#8a97a0d9}.virt-block-letter .vb-divider:before{background:#c99a8fd9}.tab-bar{display:none!important}.vb-divider{align-items:center;display:flex;position:relative}.vb-divider .vb-cn{margin-right:10px}.vb-divider .vb-en{flex:1}.vir-filter{z-index:20;flex-shrink:0;margin-left:auto;position:relative}.vf-trigger{cursor:pointer;color:#5a6b62;background:0 0;border:1px solid #5a6b623d;border-radius:10px;align-items:center;gap:4px;padding:3px 10px;transition:all .2s;display:inline-flex}.vir-filter.vf-poem .vf-trigger:hover{color:#4a5a52;border-color:#a8c4a2b3}.vir-filter.vf-dream .vf-trigger:hover{color:#4a5a62;border-color:#8a97a0b3}.vir-filter.vf-letter .vf-trigger:hover{color:#7a4d45;border-color:#c99a8fb3}.vir-filter.vf-poem.open .vf-trigger{color:#4a5a52;background:#a8c4a224;border-color:#a8c4a2cc}.vir-filter.vf-dream.open .vf-trigger{color:#4a5a62;background:#8a97a024;border-color:#8a97a0b3}.vir-filter.vf-letter.open .vf-trigger{color:#7a4d45;background:#c99a8f24;border-color:#c99a8fb3}.vf-trigger .vf-lb{font-family:var(--font-serif-en);letter-spacing:.06em;font-size:12px;font-style:italic}.vf-trigger .vf-caret{opacity:.72;font-size:9px}.vf-pop{z-index:25;-webkit-backdrop-filter:blur(8px);background:#faf6ecfa;border:1px solid #5a6b622e;border-radius:6px;min-width:200px;margin-top:6px;padding:10px 12px;position:absolute;top:100%;right:0;box-shadow:inset 0 1px #fffdf68c,0 8px 20px #5a6b622e}.vf-row{align-items:center;gap:8px;padding:4px 0;display:flex}.vf-row+.vf-row{border-top:1px dashed #5a6b6224;margin-top:4px;padding-top:8px}.vf-row-lb{font-family:var(--font-brush);color:#8a97a0;letter-spacing:.14em;flex-shrink:0;min-width:18px;font-size:12px}.vf-chips{flex-wrap:wrap;gap:4px;display:flex}.vf-chip{font-family:var(--font-serif-en);color:#7a8590;cursor:pointer;letter-spacing:.04em;background:0 0;border:1px solid #5a6b6229;border-radius:8px;padding:3px 8px;font-size:11px;font-style:italic;transition:all .18s}.vf-chip:hover{color:#5a6b62;border-color:#5a6b6247}.vir-filter.vf-poem .vf-chip.on{color:#4a5a52;background:#a8c4a247;border-color:#a8c4a2a6}.vir-filter.vf-dream .vf-chip.on{color:#4a5a62;background:#8a97a047;border-color:#8a97a0a6}.vir-filter.vf-letter .vf-chip.on{color:#7a4d45;background:#c99a8f47;border-color:#c99a8fa6}.vf-hint{font-family:var(--font-serif-en);color:#a8b4c0;opacity:.72;padding:2px 6px;font-size:10px;font-style:italic}.sd-particles{width:100%;height:auto;display:block;overflow:visible}.sd-particles-col{transform-origin:50%}@media (width>=500px){.app-shell{border-radius:4px;min-height:calc(100vh - 48px);margin:24px auto;overflow:hidden}}
