:root{
  --bg:#f6f7f9;
  --panel:#ffffff;
  --card:#ffffff;
  --surface:#f1f3f6;
  --surface2:#e9eef5;
  --text:#0f172a;
  --muted:#475569;
  --border:rgba(15,23,42,.14);
  --accent:#1f4a7a;
  --accent-border:rgba(31,74,122,.50);
  --accent-bg:rgba(31,74,122,.10);
  --accent-bg-hover:rgba(31,74,122,.14);
  --accent-outline:rgba(31,74,122,.28);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
}
a{color:inherit}
.container{
  max-width:980px;
  margin:0 auto;
  padding:16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));
}
.topbar{
  position:sticky;top:0;z-index:10;
  background:rgba(246,247,249,.92);
  border-bottom:1px solid var(--border);
}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;max-width:980px;margin:0 auto}
.brand{display:flex;align-items:center;gap:10px}
.logo{width:22px;height:22px;color:var(--accent)}
.brand-title{font-weight:700;letter-spacing:.2px}
.nav{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.nav a{
  text-decoration:none;
  padding:8px 10px;
  min-height:40px;
  border:1px solid var(--border);
  border-radius:10px;
  color:var(--text);
  background:var(--surface);
}
.nav a:hover{border-color:var(--accent-border);background:var(--surface2)}
.card{
  border:1px solid var(--border);
  background:var(--panel);
  border-radius:16px;
}
.card-pad{padding:16px}
.muted{color:var(--muted)}
.hero-title{margin:0;font-size:28px}
.row{display:flex;gap:10px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 12px;min-height:44px;border-radius:12px;
  border:1px solid var(--border);
  background:var(--surface);
  text-decoration:none;
}
.btn:hover{background:var(--surface2)}
.btn:focus{outline:none}
.btn:focus-visible{outline:2px solid var(--accent-outline);outline-offset:2px}
.btn.primary{
  border-color:var(--accent-border);
  background:var(--accent);
  color:#fff;
}
.btn.primary:hover{background:#183a61}
.btn:active{transform:translateY(1px)}
.post-list{display:grid;gap:12px;margin-top:12px}
.post-item{display:block;text-decoration:none}
.post-title{margin:0;font-size:18px}
.post-meta{margin-top:6px;font-size:13px;color:var(--muted)}
.post-excerpt{margin:10px 0 0;color:var(--muted);line-height:1.6}
.prose{line-height:1.78}
.prose h1,.prose h2,.prose h3{line-height:1.25}
.prose a{color:var(--accent);text-decoration:underline}
.prose code{background:rgba(255,255,255,.08);padding:2px 6px;border-radius:8px}
@media (max-width:520px){
  .hero-title{font-size:24px}
  .topbar-inner{padding:10px 12px}
  .container{
    padding:12px calc(12px + env(safe-area-inset-right)) 12px calc(12px + env(safe-area-inset-left));
  }
}
