:root{--bg:#fafafa;--fg:#111;--muted:#666;--border:#e5e5e5;--card:#fff;--accent:#2563eb}@media (prefers-color-scheme:dark){:root{--bg:#0f0f10;--fg:#f2f2f2;--muted:#9a9a9a;--border:#2a2a2c;--card:#17171a;--accent:#60a5fa}}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.site-header{border-bottom:1px solid var(--border);padding:14px 24px}.brand{color:var(--fg);letter-spacing:-.01em;font-weight:700}.container{max-width:1100px;margin:0 auto;padding:24px}.empty{color:var(--muted);border:1px dashed var(--border);text-align:center;border-radius:10px;padding:48px 24px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;display:grid}.card{color:inherit;background:var(--card);border:1px solid var(--border);border-radius:10px;transition:border-color .15s;display:block;overflow:hidden}.card:hover{border-color:var(--accent);text-decoration:none}.card img{aspect-ratio:16/10;object-fit:cover;object-position:top left;background:#e5e5e5;width:100%;display:block}.card-body{padding:12px 14px}.card-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.card-note{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:4px 0 6px;display:-webkit-box;overflow:hidden}.meta{color:var(--muted);font-size:13px}.detail img{border:1px solid var(--border);background:#fff;border-radius:10px;max-width:100%;height:auto;display:block}.detail h1{margin:20px 0 6px;font-size:22px}.note{white-space:pre-wrap;background:var(--card);border:1px solid var(--border);border-radius:10px;margin:16px 0;padding:14px 16px}.back{margin-bottom:16px;display:inline-block}@keyframes float-in{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.float-in{opacity:0;animation:.9s cubic-bezier(.22,1,.36,1) both float-in}@media (prefers-reduced-motion:reduce){.float-in{opacity:1;animation:none}}.show-more{justify-content:center;align-items:center;gap:12px;margin:32px 0 8px;display:flex}.show-more button{border:1px solid var(--border);background:var(--card);color:var(--fg);font:inherit;cursor:pointer;border-radius:999px;padding:10px 22px;font-weight:600;transition:border-color .15s}.show-more button:hover:not(:disabled){border-color:var(--accent)}.show-more button:disabled{opacity:.6;cursor:default}.show-more .error{color:#dc2626;font-size:13px}
