:root{--ink:#14140f;--ink-soft:#5c5c54;--ink-faint:#8a8a80;--paper:#fff;--paper-warm:#faf9f6;--line:#e4e2db;--line-strong:#d3d0c7;--accent:#14140f;--r-btn:5px;--r-card:8px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper-warm);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:inherit}.shell{width:100%;max-width:96rem;margin:0 auto;padding:0 2rem}@media (max-width:700px){.shell{padding:0 1.25rem}}.topbar{border-bottom:1px solid var(--line);background:var(--paper)}.topbar-inner{justify-content:space-between;align-items:center;gap:1.5rem;height:64px;display:flex}.wordmark{letter-spacing:-.021em;align-items:baseline;gap:.5rem;font-size:.95rem;font-weight:620;text-decoration:none;display:flex}.wordmark span:last-child{color:var(--ink-faint);font-weight:480}.topbar-right{align-items:center;gap:1rem;display:flex}main{padding:3.5rem 0 6rem}.page-title{letter-spacing:-.028em;margin:0 0 .5rem;font-size:2rem;font-weight:640;line-height:1.15}.page-sub{color:var(--ink-soft);max-width:46rem;margin:0 0 2.5rem}.grid{grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1rem;display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-card);padding:1.35rem 1.4rem 1.5rem;text-decoration:none;transition:border-color .12s,box-shadow .12s;display:block}.card:hover{border-color:var(--line-strong);box-shadow:0 1px 2px #14140f0d}.card h2{letter-spacing:-.014em;margin:0 0 .4rem;font-size:1.05rem;font-weight:600}.card p{color:var(--ink-soft);margin:0;font-size:.9rem}.empty{border:1px solid var(--line);border-radius:var(--r-card);background:var(--paper);max-width:42rem;padding:2.5rem 2rem}.empty h2{letter-spacing:-.014em;margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.empty p{color:var(--ink-soft);margin:0}.btn{border-radius:var(--r-btn);border:1px solid var(--ink);background:var(--ink);height:36px;color:var(--paper);cursor:pointer;align-items:center;padding:0 .95rem;font-size:.9rem;font-weight:520;text-decoration:none;display:inline-flex}.btn:hover{opacity:.88}.btn-ghost{background:var(--paper);color:var(--ink)}.notice{border-radius:var(--r-card);max-width:46rem;margin:0 0 1.5rem;padding:.7rem 1rem;font-size:.9rem}.notice-ok{color:#2a5c2a;background:#eef6ee;border:1px solid #bfe0bf}.notice-err{color:#7a2b2b;background:#fbeeee;border:1px solid #e3bcbc}.connect-card{max-width:34rem;margin-top:1.5rem}.connect-card p{margin:0 0 1rem}
