:root{
  --bg:#0c0d10; --card:#14161b; --card2:#171a20; --line:#262a33;
  --ink:#eef1f6; --muted:#9aa3b2; --orange:#f7931a; --orange2:#ffb24d;
  --maxw:620px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg);
  color:var(--ink);
  font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  padding-bottom:64px;
}
a{color:var(--orange2);text-decoration:none;word-break:break-word}
a:hover{text-decoration:underline}
img,video{max-width:100%;height:auto;display:block}

/* ---- profile header ---- */
.profile{max-width:var(--maxw);margin:0 auto}
.banner{height:200px;background-size:cover;background-position:center;
  background-color:#1b1e25;border-bottom:1px solid var(--line)}
.banner.nobanner{background:linear-gradient(120deg,#1a1c22,#241a0e 80%)}
.phead{position:relative;padding:0 20px 18px}
.avatar{width:92px;height:92px;border-radius:50%;object-fit:cover;
  border:4px solid var(--bg);margin-top:-48px;background:#222}
.avatar.noavatar{background:linear-gradient(135deg,var(--orange),#b9650a)}
.pmeta h1{font-size:1.5rem;margin:10px 0 2px;letter-spacing:-.01em}
.sub{color:var(--muted);font-size:.92rem;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sub .nip05::before{content:"\2713 ";color:var(--orange)}
.about{margin:12px 0 0;color:#cfd5df}
.tag{color:var(--orange2)}
.ref{color:var(--orange2)}

/* ---- feed ---- */
.feed{max-width:var(--maxw);margin:8px auto 0;padding:0 16px}
.note{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:14px;
  padding:15px 17px;
  margin:12px 0;
  transition:border-color .15s, transform .15s;
}
.note:hover{border-color:#333a47}
.note.new{animation:pop .5s ease}
@keyframes pop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.ntext{white-space:normal;word-wrap:break-word}
.media{margin-top:11px;display:grid;gap:8px}
.media img,.media video{border-radius:10px;border:1px solid var(--line);max-height:520px;width:100%;object-fit:cover}
.ntime{display:block;margin-top:10px;color:var(--muted);font-size:.8rem}
.empty{color:var(--muted);text-align:center;padding:40px 0}

/* ---- footer ---- */
.foot{max-width:var(--maxw);margin:26px auto 0;padding:18px 20px;color:var(--muted);
  font-size:.85rem;border-top:1px solid var(--line);text-align:center}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#444;
  vertical-align:middle;margin-right:4px}
body.live .dot{background:var(--orange);box-shadow:0 0 0 0 rgba(247,147,26,.6);
  animation:pulse 2s infinite}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(247,147,26,.55)}
  70%{box-shadow:0 0 0 7px rgba(247,147,26,0)}
  100%{box-shadow:0 0 0 0 rgba(247,147,26,0)}
}
@media (max-width:480px){
  .banner{height:140px}
  .avatar{width:74px;height:74px;margin-top:-40px}
  .pmeta h1{font-size:1.3rem}
}
