:root{--bg:#fbfaf8;--surface:#fff;--surface-2:#f4f2ee;--fg:#1b1a18;--muted:#6d6a63;--border:#e6e2db;--accent:#b4451d;--accent-soft:#f7e9e1;--code-bg:#f4f2ee;--max:44rem;--radius:14px;--radius-sm:10px;--shadow-sm:0 1px 2px #1c18120d;--shadow-md:0 2px 6px #1c18120d, 0 12px 28px -16px #1c181238;--ring:0 0 0 3px #b4451d38;--ease:cubic-bezier(.2, .7, .3, 1)}@media (prefers-color-scheme:dark){:root{--bg:#0f0f10;--surface:#17171a;--surface-2:#1e1e22;--fg:#eae8e3;--muted:#9c988f;--border:#2a2a2f;--accent:#f08a4b;--accent-soft:#2a1a12;--code-bg:#1b1b1f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 2px 6px #00000059, 0 14px 32px -18px #000c;--ring:0 0 0 3px #f08a4b47}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:17px;line-height:1.75}a{color:var(--accent);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}:is(a,button,summary,[tabindex]):focus-visible{box-shadow:var(--ring);border-radius:8px;outline:none}::selection{background:var(--accent-soft);color:var(--fg)}.site-header,main,.site-footer{max-width:var(--max);margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}.site-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;padding-top:2rem;padding-bottom:1rem;display:flex}.brand{color:var(--fg);letter-spacing:.01em;font-weight:700}.brand:hover{color:var(--accent);text-decoration:none}.site-header nav{flex-wrap:wrap;gap:.15rem 1rem;font-size:.92rem;display:flex}.site-header nav a{color:var(--muted);transition:color .15s var(--ease), border-color .15s var(--ease);border-bottom:2px solid #0000;padding:.1rem 0}.site-header nav a:hover{color:var(--fg);text-decoration:none}.site-header nav a[aria-current=page]{color:var(--fg);border-bottom-color:var(--accent)}main{padding-top:1rem;padding-bottom:4rem}.site-footer{border-top:1px solid var(--border);color:var(--muted);padding-top:1.5rem;padding-bottom:3rem;font-size:.85rem}.site-footer p{margin:0}.btn,.btn-primary,.btn-ghost,.btn-danger{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--fg);cursor:pointer;transition:transform .12s var(--ease), background-color .15s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease);border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.88rem;line-height:1.4;display:inline-flex}.btn:hover,.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{filter:brightness(1.06)}.btn-danger{border-color:color-mix(in srgb, #d9534f 55%, var(--border));color:#d9534f;background:0 0}.btn-danger:hover{background:#d9534f1a}.btn:disabled,.btn-primary:disabled,.btn-ghost:disabled{opacity:.55;cursor:default;transform:none}.chip{font:inherit;border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:transform .12s var(--ease), background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);background:0 0;border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .75rem;font-size:.8rem;line-height:1.6;display:inline-flex}.chip:hover{border-color:var(--accent);color:var(--accent)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.chip-row{flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.1rem 1.15rem}.tag{border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:999px;padding:0 .5rem;font-size:.72rem;line-height:1.7;display:inline-block}.pressable,.entry,.book,.game,.recipe-open,.rec,.classic,[data-action]{transition:transform .14s var(--ease), border-color .15s var(--ease), box-shadow .15s var(--ease), background-color .15s var(--ease)}:is(.entry,.book,.game,.recipe-open,.rec,.chip,.btn,.btn-primary,.btn-ghost,.btn-danger,[data-action]):active{transform:scale(.975)}.pressable:hover,.entry:hover,.book:hover,.game:hover,.recipe-open:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.intro h1{letter-spacing:-.02em;margin:0 0 .5rem;font-size:2rem;line-height:1.3}.intro p{color:var(--muted);margin:0}.post-list{margin:2.25rem 0 0;padding:0;list-style:none}.post-list li{border-top:1px solid var(--border);padding:1.35rem 0}.post-list a{color:inherit}.post-list a:hover{text-decoration:none}.post-list a:hover h2{color:var(--accent)}.post-list h2{transition:color .15s var(--ease);margin:0 0 .35rem;font-size:1.14rem;line-height:1.45}.post-list p{color:var(--muted);margin:0;font-size:.94rem}.meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;font-size:.8rem;display:flex}.post header h1{letter-spacing:-.01em;margin:.35rem 0 .75rem;font-size:1.7rem;line-height:1.35}.prose{margin-top:2rem}.prose h2{margin:2.4rem 0 .8rem;font-size:1.3rem;line-height:1.4}.prose h3{margin:1.9rem 0 .6rem;font-size:1.1rem}.prose p{margin:1rem 0}.prose img{border-radius:8px;max-width:100%;height:auto}.prose blockquote{border-left:3px solid var(--border);color:var(--muted);margin:1.4rem 0;padding:.2rem 0 .2rem 1rem}.prose blockquote p{margin:.5rem 0}.prose hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.prose ul,.prose ol{padding-left:1.4rem}.prose li{margin:.35rem 0}.prose :not(pre)>code{background:var(--code-bg);border-radius:4px;padding:.15em .4em;font-size:.88em}.prose pre{border:1px solid var(--border);border-radius:var(--radius-sm);margin:1.4rem 0;padding:1rem 1.1rem;font-size:.85rem;line-height:1.6;overflow-x:auto}.prose table{border-collapse:collapse;width:100%;margin:1.4rem 0;font-size:.92rem;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:.45rem .65rem}.prose th{background:var(--code-bg);font-weight:600}.astro-code{background-color:var(--shiki-light-bg)!important}.astro-code span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){.astro-code{background-color:var(--shiki-dark-bg)!important}.astro-code span{color:var(--shiki-dark)}}.back{margin-top:3rem;font-size:.9rem}.pager{flex-wrap:wrap;justify-content:center;align-items:center;gap:.9rem;margin-top:2rem;display:flex}.pager-info{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.sync-btn{font:inherit;color:var(--muted);border:1px solid var(--border);cursor:pointer;transition:border-color .15s var(--ease), color .15s var(--ease);background:0 0;border-radius:999px;align-items:center;gap:.4rem;padding:.15rem .6rem;font-size:.78rem;display:inline-flex}.sync-btn:hover{border-color:var(--accent);color:var(--accent)}.sync-btn .dot{background:var(--muted);border-radius:50%;width:.5rem;height:.5rem}.sync-btn[data-state=ok] .dot{background:#3f8f4f}.sync-btn[data-state=dirty] .dot{background:#c9a227}.sync-btn[data-state=busy] .dot{background:var(--accent);animation:1s infinite sync-pulse}.sync-btn[data-state=out] .dot{background:var(--border)}@keyframes sync-pulse{50%{opacity:.3}}dialog#sync-dialog,dialog#sync-conflict{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--fg);width:min(26rem,100vw - 2rem);padding:0}dialog#sync-dialog::backdrop,dialog#sync-conflict::backdrop{background:#00000073}#sync-dialog .modal-inner,#sync-conflict .modal-inner{flex-direction:column;gap:.7rem;padding:1.1rem 1.2rem;display:flex}#sync-dialog h2,#sync-conflict h2{margin:0;font-size:1.05rem}.sync-hint,.sync-msg{color:var(--muted);margin:0;font-size:.84rem;line-height:1.6}.sync-msg{min-height:1.2em}#sync-dialog label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.84rem;display:flex}#sync-dialog input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:8px;padding:.45rem .6rem;font-size:.9rem}.sync-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}:is(.entry,.book,.game,.recipe-open,.rec,.chip,.btn,.btn-primary,.btn-ghost,.btn-danger,[data-action]):active,.pressable:hover,.entry:hover,.book:hover,.game:hover,.recipe-open:hover{transform:none}}
