:root{--bg-1: #f5ecd9;--bg-2: #ffd9e8;--bg-3: #ffb7d5;--accent: #e94560;--accent-soft: #ff6b9d;--accent-glow: rgba(233, 69, 96, .35);--text: #7a5a3a;--text-mute: #b39872;--text-light: #c9a97a;--white-glass: rgba(255, 255, 255, .55);--white-solid: rgba(255, 255, 255, .75);--font-hand: "LXGW WenKai", "Kaiti SC", "STKaiti", "KaiTi", "楷体", "Comic Sans MS", cursive;--font-serif: Georgia, "Songti SC", "STSong", serif;--font-system: -apple-system, BlinkMacSystemFont, "Roboto", "PingFang SC", sans-serif;--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--text-xs: 10px;--text-sm: 12px;--text-base: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-display: 48px;--text-hero: 64px;--shadow-xs: 0 1px 3px rgba(233, 69, 96, .08);--shadow-sm: 0 2px 8px rgba(233, 69, 96, .1);--shadow-md: 0 4px 16px rgba(233, 69, 96, .12);--shadow-lg: 0 8px 32px rgba(233, 69, 96, .15);--shadow-xl: 0 12px 48px rgba(233, 69, 96, .2);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--touch-min: 44px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--tab-bar-height: calc(88px + var(--safe-bottom));--glass-edge: rgba(255, 255, 255, .55);--glass-edge-soft: rgba(255, 255, 255, .4);--page-pad: 16px;--page-pad-top: calc(var(--space-5) + var(--safe-top));--page-pad-bottom: calc(var(--tab-bar-height) + var(--space-6));--content-max: 480px}*{box-sizing:border-box}html,a,button{-webkit-tap-highlight-color:transparent}html{overscroll-behavior-y:contain}html,body{margin:0;padding:0;font-family:var(--font-system);color:var(--text);background:radial-gradient(circle at 15% 12%,rgba(255,183,213,.45),transparent 42%),radial-gradient(circle at 88% 18%,rgba(255,215,130,.3),transparent 40%),linear-gradient(160deg,var(--bg-2) 0%,#fff0e8 40%,var(--bg-1) 100%);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{overflow-x:clip}a{color:var(--accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-soft)}button{font-family:inherit;cursor:pointer;transition:all var(--transition-fast)}button:active,.actions a:active,.load-more:active,.cat-tab:active,.link-diary:active,.entry-link:active,.tag-pill:active{transform:scale(.96)}input,textarea,select{transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent-soft)!important;box-shadow:0 0 0 3px var(--accent-glow);background:var(--white-solid)!important}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);animation:fade-in .4s ease-out}.empty-state .empty-emoji{font-size:52px;filter:drop-shadow(0 4px 12px rgba(233,69,96,.25));animation:float-card 3.5s ease-in-out infinite}.empty-state p{font-family:var(--font-hand);font-size:var(--text-md);font-weight:700;color:var(--text);margin:var(--space-2) 0 0}.empty-state span{font-family:var(--font-hand);font-size:var(--text-sm);color:var(--text-mute)}@font-face{font-family:LXGW WenKai;src:url(/fonts/LXGWWenKai-Regular.woff2) format("woff2");font-display:swap}@media (prefers-reduced-motion: reduce){.heart-particle,.blob,.liquid-glass:after,.float-card,.liquid-glass.breathing,.liquid-glass.floating,.days-counter .number,.fg-item,.days-counter .heart-emoji{animation:none!important}*{transition-duration:.01ms!important}}@keyframes float-up{0%{transform:translateY(115%) scale(.5) rotate(-15deg);opacity:0}10%{opacity:.85}90%{opacity:.85}to{transform:translateY(-30%) scale(1.15) rotate(20deg);opacity:0}}@keyframes float-card{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes glow-breathe{0%,to{box-shadow:0 12px 48px #ff6b9d59,0 0 80px #ffb7d566,inset 0 1px 2px #fffffff2,inset 0 -2px 2px #ff6b9d40,inset 0 0 0 1px #ffffff80}50%{box-shadow:0 18px 64px #ff6b9d80,0 0 120px #ffb7d58c,inset 0 2px 3px #fff,inset 0 -2px 3px #ff6b9d59,inset 0 0 0 1px #ffffffb3}}@keyframes shimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes light-move{0%{transform:translate(-40%,-30%) rotate(0)}to{transform:translate(70%,90%) rotate(360deg)}}@keyframes blob-drift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(20px,-15px) scale(1.1)}66%{transform:translate(-15px,20px) scale(.95)}}@keyframes foreground-float{0%,to{transform:translate(0)}50%{transform:translate(8px,-10px)}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes glass-sweep{0%{background-position:0 0,-120% 0}55%{background-position:0 0,120% 0}to{background-position:0 0,120% 0}}.bg-blobs{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.blob{position:absolute;border-radius:50%;filter:blur(70px);animation:blob-drift 12s ease-in-out infinite}.blob-1{top:80px;left:-50px;width:240px;height:240px;background:radial-gradient(circle,#ff6b9d,transparent 70%);opacity:.7;animation-delay:0s}.blob-2{top:300px;right:-60px;width:220px;height:220px;background:radial-gradient(circle,#ffd700,transparent 70%);opacity:.55;animation-delay:3s}.blob-3{bottom:100px;left:-40px;width:200px;height:200px;background:radial-gradient(circle,#ff8fb0,transparent 70%);opacity:.6;animation-delay:6s}.blob-4{top:200px;left:40%;width:140px;height:140px;background:radial-gradient(circle,#ffb7d5,transparent 70%);opacity:.5;animation-delay:9s}.floating-hearts{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}.heart-particle{position:absolute;animation:float-up 7s linear infinite;filter:drop-shadow(0 0 8px rgba(255,107,157,.7))}.fg-blur{position:fixed;inset:0;pointer-events:none;z-index:0}.fg-item{position:absolute;filter:blur(8px);opacity:.65;animation:foreground-float 6s ease-in-out infinite}.fg-1{top:120px;right:20px;font-size:24px;color:#ff6b9d;animation-delay:0s}.fg-2{bottom:200px;left:14px;font-size:30px;color:gold;animation-delay:2s}.fg-3{top:350px;right:30px;font-size:18px;color:#ff8fb0;animation-delay:4s}.tab-bar{position:fixed;bottom:calc(var(--space-3) + var(--safe-bottom));left:50%;transform:translate(-50%);width:calc(100% - var(--space-4) * 2);max-width:calc(var(--content-max) - var(--space-2));height:64px;padding:0 var(--space-3);display:flex;justify-content:space-around;align-items:stretch;z-index:20;background:linear-gradient(135deg,#ffffff8c,#ffd9e861);-webkit-backdrop-filter:blur(28px) saturate(200%) brightness(108%);backdrop-filter:blur(28px) saturate(200%) brightness(108%);border:1px solid rgba(255,255,255,.6);border-radius:var(--radius-xl);box-shadow:0 8px 32px #ff6b9d47,inset 0 1px 2px #ffffffe6}.tab-bar a{flex:1;color:var(--text-mute);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:var(--font-hand);font-size:var(--text-xs);border-radius:var(--radius-md);transition:color var(--transition-fast),transform var(--transition-fast)}.tab-bar a .ic{font-size:20px;line-height:1}.tab-bar a .lb{font-size:11px;line-height:1;letter-spacing:.5px}.tab-bar a.active{color:var(--accent);font-weight:700}.tab-bar a.active .ic{filter:drop-shadow(0 2px 6px rgba(233,69,96,.4))}.tab-bar a:active{transform:scale(.9)}.tab-bar a.fab{flex:0 0 auto;align-self:center;width:48px;height:48px;margin-left:var(--space-1);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-soft) 100%);color:#fff;border-radius:var(--radius-full);font-size:26px;font-weight:300;box-shadow:0 4px 16px #e9456080}.tab-bar a.fab .lb{display:none}.tab-bar a.fab:active{transform:scale(.9)}.page-main{position:relative;z-index:1;width:100%;max-width:480px;margin-inline:auto;padding:var(--page-pad-top) var(--page-pad) var(--page-pad-bottom);animation:fade-in .25s ease-out;min-height:100dvh}.page-main.no-tab{padding-bottom:calc(var(--space-6) + var(--safe-bottom))}.page-main>.stack{display:flex;flex-direction:column;gap:var(--space-4)}
