
:root {
  --bg:#0f0f10;
  --fg:#ececec;
  --muted:#bdbdbd;
  --card:#151517;
  --accent:#6ea3ff;
  --line:#2a2a2d;
}
* { box-sizing: border-box; }
html, body {
  margin: 0; padding: 0; background: var(--bg); color: var(--fg);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN", "Noto Sans JP", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;
  line-height: 1.75;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--fg); text-decoration: none; }
a:hover { color: var(--accent); }
.container { width: min(1120px, 92vw); margin: 0 auto; }
.header { position: sticky; top:0; z-index: 50; background: rgba(15,15,16,.9); backdrop-filter: blur(6px); border-bottom:1px solid var(--line); }
.header-inner { display:flex; align-items:center; justify-content:space-between; padding: 14px 0; }
.brand { font-weight:700; letter-spacing:.02em; }
.nav ul { list-style: none; display:flex; gap: 18px; margin:0; padding:0; }
.hero { padding: 64px 0 32px; border-bottom:1px solid var(--line); }
.hero h1 { font-size: clamp(28px, 4vw, 44px); margin:0 0 12px; }
.hero .lead { color: var(--muted); }

.grid { display:grid; gap:20px; }
.grid.cards { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.card { background: var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; transition: transform .2s ease, border-color .2s ease; }
.card:hover { transform: translateY(-3px); border-color: var(--accent); }
.card .p { padding:16px; }
.meta { color: var(--muted); font-size:.9rem; }
.section { padding: 40px 0; }
.section h2 { font-size: 22px; letter-spacing:.06em; margin:0 0 18px; }
.section .more { text-align:right; margin-top:10px; }
.btn { display:inline-block; padding:10px 16px; border-radius:10px; background: var(--accent); color:#0e1220; font-weight:700; }
.btn.ghost { background:transparent; color: var(--fg); border:1px solid var(--line); }

.footer { border-top:1px solid var(--line); padding: 28px 0; color: var(--muted); }
.footer a { color: var(--muted); }
.badge { display:inline-block; padding:2px 8px; border-radius:999px; background:#1f2330; color:#bcd3ff; font-size:.75rem; border:1px solid #2b3242; }

.list-simple { display:grid; gap:12px; }
.list-simple a { display:flex; gap:12px; align-items:center; padding:10px; border:1px solid var(--line); border-radius:12px; background: #121214; }
figure.thumb { width:96px; height:96px; overflow:hidden; border-radius:8px; border:1px solid var(--line); background:#0c0c0e; flex-shrink:0; }
.small { font-size:.9rem; color: var(--muted); }
.event-row { display:grid; grid-template-columns: 120px 1fr; gap:12px; padding:12px; border:1px solid var(--line); border-radius:12px; background:#121214; }
.event-date { text-align:center; border-right:1px dashed var(--line); padding-right:8px; color: var(--muted); }
.event-title { margin:0; }
.tax-eras { display:flex; gap:8px; flex-wrap:wrap; margin:8px 0 0; }
