:root{--bg:#f6f7f9;--card:#ffffff;--text:#1c2430;--muted:#667085;--brand:#2f6fed;--brand-dark:#2458c4;--border:#e3e7ee;--danger:#c0392b;--ok:#1e8e5a}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:18px;line-height:1.5}main{max-width:640px;margin:0 auto;padding:24px 16px 64px}h1{font-size:1.7rem;margin:0 0 16px}h2{font-size:1.2rem;margin:28px 0 12px}a{color:var(--brand)}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:12px}.muted{color:var(--muted);font-size:.95rem}label{display:block;font-weight:600;margin:12px 0 6px}input,select{width:100%;font:inherit;padding:14px;border:1px solid var(--border);border-radius:10px;background:#fff}.button,button{display:inline-block;font:inherit;font-weight:600;padding:14px 20px;margin-top:16px;border:0;border-radius:10px;background:var(--brand);color:#fff;cursor:pointer;text-decoration:none}.button:hover,button:hover{background:var(--brand-dark)}button.secondary{background:#e9edf5;color:var(--text)}button.small{padding:8px 14px;margin-top:0;font-size:.95rem}.notice{padding:12px 14px;border-radius:10px;margin-bottom:16px}.notice.ok{background:#e7f6ee;color:var(--ok)}.notice.err{background:#fbeae8;color:var(--danger)}.row{gap:12px}.row,.topbar{display:flex;align-items:center;justify-content:space-between}.topbar{margin-bottom:20px}.topbar form button{margin:0}.badge{font-size:.8rem;padding:2px 10px;border-radius:99px;background:#e9edf5;color:var(--muted)}.tree{list-style:none;padding-left:0;margin:0}.tree .tree{padding-left:20px;border-left:2px solid var(--border);margin-left:8px}.tree li{margin:8px 0}code.invite{display:block;word-break:break-all;background:#f0f3f9;padding:10px;border-radius:8px;font-size:.9rem}textarea{width:100%;font:inherit;padding:14px;border:1px solid var(--border);border-radius:10px;background:#fff;resize:vertical}input[type=file]{padding:10px}.nav{display:flex;gap:4px;max-width:640px;margin:0 auto;padding:10px 16px 0;overflow-x:auto}.nav a{padding:8px 14px;border-radius:99px;background:#e9edf5;color:var(--text);text-decoration:none;font-size:.95rem;white-space:nowrap}.photos{display:grid;grid-gap:4px;gap:4px;margin:8px 0;border-radius:10px;overflow:hidden}.photos a{position:relative;display:block}.photos img{width:100%;height:100%;object-fit:cover;display:block;background:#e9edf5}.photos.n1{grid-template-columns:1fr}.photos.n1 img{max-height:420px}.photos.n2,.photos.n3,.photos.n4{grid-template-columns:1fr 1fr}.photos.n2 img,.photos.n3 img,.photos.n4 img{aspect-ratio:1}.photos.detail{grid-template-columns:1fr;gap:8px}.photos.detail img{height:auto;border-radius:10px}.photos .more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);color:#fff;font-size:1.6rem;font-weight:700}.reactions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.reactions form{margin:0}.reactions button.react{margin:0;padding:6px 10px;border-radius:99px;font-size:1rem;font-weight:500;background:#eef1f7;color:var(--text);border:2px solid transparent}.reactions button.react.on{background:#dfe9ff;border-color:var(--brand)}.reactions button.react:hover{background:#e2e8f5}.comment{margin-left:12px}