:root { --bg:#07080a; --fg:#d8d4cc; --dim:#8a867e; --line:#23262b; --red:#b3262b; }
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--bg); color: var(--fg); }
body { font-family: "Shippori Mincho", "Hiragino Mincho ProN", serif; line-height: 1.9; letter-spacing: .04em; }
a { color: inherit; }
header.top { display:flex; justify-content:space-between; align-items:center; padding:18px 24px; font-size:14px; letter-spacing:.2em; border-bottom:1px solid var(--line); }
header.top a.brand { text-decoration:none; }
header.top nav a { margin-left:20px; text-decoration:none; color:var(--dim); }
header.top nav a:hover, header.top nav a[aria-current] { color:var(--fg); }
main { max-width:960px; margin:0 auto; padding:72px 24px 96px; }
h1 { font-weight:600; font-size:clamp(22px,3vw,30px); letter-spacing:.2em; margin:0 0 40px; }
h2 { font-weight:600; font-size:14px; letter-spacing:.4em; color:var(--dim); margin:64px 0 24px; }
.card { display:grid; grid-template-columns:1.4fr 1fr; gap:24px; text-decoration:none; border:1px solid var(--line); }
.card img.key { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; filter:brightness(.8); }
.card .body { padding:24px 24px 24px 0; }
.card .body img.logo { width:200px; height:auto; display:block; margin-bottom:8px; }
.card .body p { margin:0 0 8px; color:var(--dim); font-size:15px; }
.card:hover img.key { filter:brightness(1); }
.tag { display:inline-block; border:1px solid var(--dim); color:var(--dim); font-size:12px; padding:2px 10px; letter-spacing:.15em; }
dl.info { display:grid; grid-template-columns:8em 1fr; gap:10px 16px; margin:0; font-size:15px; }
dl.info dt { color:var(--dim); } dl.info dd { margin:0; }
footer { border-top:1px solid var(--line); text-align:center; padding:32px 16px; font-size:12px; color:var(--dim); letter-spacing:.15em; }
@media (max-width:640px) {
  header.top nav a { margin-left:12px; }
  .card { grid-template-columns:1fr; } .card .body { padding:0 16px 20px; }
  dl.info { grid-template-columns:1fr; gap:2px; } dl.info dd { margin-bottom:12px; }
  main { padding:48px 16px 72px; }
}
