@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{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(0)}33%{transform:translate(3px,-6px)}66%{transform:translate(-3px,5px)}}.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}
