:root{
  --bg:#f6f7fb;
  --card:#ffffff;
  --text:#0b1020;
  --muted:rgba(11,16,32,.62);
  --border:rgba(11,16,32,.12);
  --shadow:0 18px 55px rgba(2,6,23,.10);
  --radius:16px;
  --link:#2b66ff;
}

*{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, "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
  line-height:1.85;
}

a{color:var(--link); text-decoration:none}
a:hover{text-decoration:underline}

.wrap{
  width:min(920px, calc(100% - 40px));
  margin:0 auto;
  padding:28px 0 56px;
}

.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:800;
  color:var(--text);
}
.brand img{
  width:28px;
  height:28px;
  border-radius:10px;
  background:#fff;
  border:1px solid var(--border);
}
.topbar a{color:var(--text)}
.topbar a:hover{text-decoration:none; opacity:.85}

.card{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:22px;
}

.page-title{
  margin:0;
  font-size:clamp(22px, 3vw, 30px);
  line-height:1.25;
  letter-spacing:.01em;
}
.meta{
  margin:10px 0 0;
  color:var(--muted);
  font-size:13px;
}

.content{margin-top:18px}
.content > section + section{margin-top:18px}

h2{
  margin:18px 0 8px;
  font-size:16px;
  line-height:1.35;
}

p{margin:10px 0}
ol{margin:10px 0; padding-left:20px}
li{margin:8px 0}

.footer{
  margin-top:16px;
  color:var(--muted);
  font-size:12px;
  text-align:center;
}

@media (max-width: 520px){
  .wrap{width:min(920px, calc(100% - 28px))}
  .card{padding:18px}
}
