:root{
  --bg:#0b0d12;
  --card:#151922;
  --line:#252b38;
  --text:#e8ebf2;
  --muted:#9aa3b5;
  --accent:#2f8cff;
  --warn:#ffb347;
  --ok:#5ddea8;
  --radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100dvh;
  background:var(--bg);
  color:var(--text);
  font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1180px;margin:0 auto;padding:16px}
header.top{
  display:flex;align-items:center;gap:10px;
  color:var(--muted);font-size:14px;margin-bottom:16px;flex-wrap:wrap;
}
header.top a{color:var(--muted)}
header.top img.mark{width:36px;height:36px;border-radius:10px;object-fit:cover;background:#222a38}
.draft-banner{
  background:#1e1810;border:1px solid var(--warn);color:var(--warn);
  border-radius:12px;padding:10px 12px;font-size:13px;margin:0 0 16px;
}
.mast h1{font-size:26px;margin:0 0 6px;line-height:1.2}
.mast .lede{color:var(--muted);margin:0 0 8px;font-size:15px}
.fine{color:var(--muted);font-size:12px;margin:0}
.grid-xapps{
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
  margin:16px 0 24px;
}
.xapp-card{
  display:flex;gap:14px;align-items:flex-start;
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:14px;
  color:inherit;text-decoration:none;
  min-height:96px;
}
.xapp-card:hover{border-color:var(--accent);text-decoration:none}
.xapp-card img{
  width:72px;height:72px;border-radius:18px;
  object-fit:cover;background:#222a38;flex:none;
}
.xapp-card h2{font-size:18px;margin:0 0 4px;line-height:1.2}
.xapp-card p{margin:0;color:var(--muted);font-size:14px}
.xapp-card .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.tag{
  font-size:12px;border:1px solid var(--line);border-radius:999px;
  padding:2px 10px;color:var(--muted);
}
.tag.live{border-color:var(--ok);color:var(--ok)}
.tag.local{border-color:var(--accent);color:var(--accent)}
.tag.soon{border-color:var(--warn);color:var(--warn)}
.hero{display:flex;gap:16px;align-items:center}
.hero img{width:88px;height:88px;border-radius:20px;background:#222a38;object-fit:cover;flex:none}
h1{font-size:24px;margin:0 0 4px;line-height:1.2}
.sub{color:var(--muted);font-size:14px;margin:0}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.btn{
  display:block;text-align:center;background:var(--accent);color:#fff;
  font-weight:600;text-decoration:none;border-radius:14px;padding:14px;margin:16px 0 6px;
}
.btn:hover{text-decoration:none;filter:brightness(1.06)}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--text)}
.note{font-size:13px;color:var(--muted);margin:0 0 8px}
section.panel{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--radius);padding:16px;margin:12px 0;
}
section.panel h2{font-size:17px;margin:0 0 8px}
section.panel p{margin:0 0 8px}
section.panel ul{margin:0;padding-left:20px}
section.panel li{margin:4px 0}
.disclosure{border-color:var(--warn);background:#1e1810}
.disclosure p{font-weight:600}
.soon{color:var(--warn);font-style:italic}
code{font-size:13px;overflow-wrap:anywhere;background:#0f1218;padding:1px 5px;border-radius:6px}
dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:14px}
dt{color:var(--muted)}dd{margin:0}
.todo-box{
  border:1px dashed var(--warn);background:#1a1610;border-radius:12px;
  padding:12px;margin:12px 0;font-size:14px;color:var(--warn);
}
footer{color:var(--muted);font-size:12px;text-align:center;padding:24px 0}
@media (min-width:700px){
  .wrap{padding:28px}
  .grid-xapps{grid-template-columns:1fr 1fr;gap:16px}
  .xapp-card img{width:88px;height:88px;border-radius:22px}
  .mast h1{font-size:32px}
}
@media (min-width:1100px){
  .grid-xapps{grid-template-columns:repeat(4,1fr)}
  .xapp-card{flex-direction:column;align-items:stretch}
  .xapp-card img{width:96px;height:96px}
}

.btn{display:inline-flex;align-items:center;min-height:32px;padding:4px 14px;border-radius:999px;font-weight:600;font-size:.85rem}
.btn.go{background:#2bd67b;color:#04140a}
.btn.soon{border:1px solid #f0b43c;color:#f0b43c;font-style:italic}
.tags{align-items:center}
.btn.soon{background:transparent}
.tags .tag{align-self:center;min-height:0;height:auto;line-height:1.4;padding:3px 10px}
.tags .btn{min-height:36px}
.xapp-card .meta{align-items:center}
.xapp-card .meta .btn{margin:0;padding:6px 16px;border-radius:999px}
.xapp-card .meta .btn.go{background:#2bd67b;color:#04140a}
