:root{--paper:#efe8dc;--paper-2:#e7dece;--ink:#1c1612;--muted:#6e655c;--line:#1c161224;--card:#fbf7f1;--cinnabar:#c2412d;--cinnabar-ink:#8e2618;--shadow:0 8px 22px #3c241014;--bar:#1c1612;--cream:#f6f1e8;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,WenQuanYi Micro Hei,Droid Sans Fallback,sans-serif}*{box-sizing:border-box}html,body{margin:0}body{min-height:100dvh;color:var(--ink);background:radial-gradient(900px 420px at 0% -10%, #f7f1e6 0%, transparent 55%), var(--paper)}body.has-bar{padding-bottom:calc(184px + env(safe-area-inset-bottom))}button,a,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--cinnabar);outline-offset:2px}.wrap{width:min(1120px,100% - 28px);margin:0 auto}.top{padding:22px 0 4px}.kicker{color:var(--cinnabar-ink);letter-spacing:.16em;margin:0;font-size:12px;font-weight:700}h1{margin:6px 0 8px;font-size:clamp(30px,5vw,44px);font-weight:700;line-height:1.12}.lede{max-width:42rem;color:var(--muted);margin:0;font-size:15px;line-height:1.6}.lede code,.state code{color:var(--ink);font-family:ui-monospace,SFMono-Regular,WenQuanYi Micro Hei,monospace;font-size:.92em}.source{color:var(--cinnabar-ink);margin-top:10px;font-size:14px;display:inline-block}.switcher{align-items:center;gap:8px;margin-top:12px;font-size:14px;display:flex}.switcher select{border:1px solid var(--line);min-height:40px;font:inherit;background:#fff;border-radius:10px;padding:6px 10px;font-size:16px}.days{flex-wrap:wrap;gap:8px;padding:16px 0 4px;display:flex}.day-chip{border:1px solid var(--line);background:#fffcf8b8;border-radius:999px;flex:none;min-height:40px;padding:8px 12px}.day-chip span{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:6px}.day{margin-top:8px;scroll-margin-top:10px}.day-head{z-index:3;background:var(--paper);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;padding:10px 0 8px;display:flex;position:sticky;top:0}.day-head h2{margin:0;font-size:18px;line-height:1.3}.day-head p{color:var(--muted);margin:2px 0 0;font-size:13px}.ghost{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;min-height:40px;padding:8px 12px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.card{background:var(--card);box-shadow:var(--shadow);border:2px solid #0000;border-radius:14px;position:relative;overflow:hidden}.card.is-on{border-color:var(--cinnabar);background:#fff6f3}.card.is-journal .place:after{content:" · 正文已用";color:var(--cinnabar-ink);font-weight:600}.hit{cursor:pointer;display:block}.frame{aspect-ratio:1;background:#d9d0c2;display:grid;position:relative}.frame img,.fallback{grid-area:1/1;width:100%;height:100%}.frame img{object-fit:cover;pointer-events:none;display:block}.fallback{text-align:center;color:var(--muted);place-items:center;padding:12px;font-size:13px;display:grid}.num{color:#fff;font-variant-numeric:tabular-nums;background:#1c1612d6;border-radius:999px;padding:3px 8px;font-size:13px;font-weight:700;position:absolute;bottom:8px;left:8px}.journal{color:#fff;letter-spacing:.04em;background:#c2412deb;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;top:8px;left:8px}.check{width:28px;height:28px;accent-color:var(--cinnabar);margin:0;position:absolute;top:8px;right:8px}.meta{flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px 10px;font-size:13px;line-height:1.35;display:flex}.place,.time{cursor:pointer}.place{font-weight:700}.tail{width:100%;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;gap:8px;display:flex}.tail a{color:var(--cinnabar-ink);padding:4px 0 2px 8px;text-decoration:none}.bar{z-index:20;background:var(--bar);color:var(--cream);border-top:3px solid var(--cinnabar);padding:12px 0 calc(12px + env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 28px #1c16122e}.bar-inner{gap:10px;display:grid}.count{margin:0;font-size:14px;font-weight:700}.cmd{white-space:nowrap;color:#fff;-webkit-user-select:text;user-select:text;margin:4px 0 0;font-family:ui-monospace,SFMono-Regular,WenQuanYi Micro Hei,monospace;font-size:13px;overflow-x:auto}.cmd.is-empty{color:#f6f1e89e;font-family:inherit}.bar-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.bar .ghost{color:var(--cream);background:0 0;border-color:#f6f1e847}.primary{background:var(--cinnabar);color:#fff;text-align:center;border:0;border-radius:12px;grid-column:1/-1;min-height:48px;padding:12px 14px;font-weight:700;line-height:1.3}.primary:disabled{cursor:not-allowed;background:#6f675f}.toast{left:50%;bottom:calc(176px + env(safe-area-inset-bottom));z-index:30;color:#fff;opacity:0;pointer-events:none;background:#21543a;border-radius:999px;max-width:min(92vw,420px);padding:10px 14px;font-size:14px;transition:opacity .16s,transform .16s;position:fixed;transform:translate(-50%,8px)}.toast.show{opacity:1;transform:translate(-50%)}.state{place-items:center;min-height:70dvh;padding:32px 0 48px;display:grid}.state-card{text-align:center;width:min(100%,28rem)}.state-card p{color:var(--muted);line-height:1.6}.state a,.linkish{color:var(--cinnabar-ink);font-weight:700}.skeleton{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-bottom:24px;display:grid}.bone{aspect-ratio:1;background:linear-gradient(90deg,#e4d9c8 0%,#f6f0e6 50%,#e4d9c8 100%) 0 0/200% 100%;border-radius:14px;animation:1.2s ease-in-out infinite shine}.noscript{width:min(1120px,100% - 28px);margin:16px auto}@media (width>=720px){.grid,.skeleton{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}body.has-bar{padding-bottom:calc(144px + env(safe-area-inset-bottom))}.toast{bottom:calc(112px + env(safe-area-inset-bottom))}}@media (width>=880px){.bar-inner{grid-template-columns:minmax(0,1fr) auto;align-items:center}.bar-actions{align-items:center;display:flex}.primary{white-space:nowrap;grid-column:auto}}@media (width>=980px){.grid,.skeleton{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1200px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (hover:hover){.card:hover{border-color:#c2412d73}.card.is-on:hover{border-color:var(--cinnabar)}}@media (prefers-reduced-motion:reduce){.bone{animation:none}.toast{transition:none}}@keyframes shine{0%{background-position:100% 0}to{background-position:-100% 0}}
