:root { --ink:#fff; --dim:#9a9a9a; --line:#2a2a2a; }
* { margin:0; padding:0; box-sizing:border-box; }
body { background:#000; color:var(--ink); font-family:'Space Grotesk','Helvetica Neue',Arial,sans-serif; }
.wrap { max-width:880px; margin:0 auto; padding:0 24px; }
a { color:#fff; }
header { display:flex; align-items:center; justify-content:space-between; padding:28px 0; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; text-decoration:none; }
.brand img { width:34px; height:34px; display:block; }
.brand span { font-weight:700; font-size:22px; letter-spacing:-0.03em; }
nav { display:flex; align-items:center; gap:26px; }
nav a { color:var(--dim); text-decoration:none; font-size:14px; font-weight:500; }
nav a:hover { color:#fff; }
.sub-btn { color:#000 !important; background:#fff; padding:9px 18px; border-radius:999px; font-weight:700; }
.hero { padding:72px 0 48px; }
.kicker { color:var(--dim); font-size:13px; letter-spacing:0.18em; text-transform:uppercase; font-weight:500; }
h1 { font-size:clamp(34px,6vw,56px); line-height:1.04; letter-spacing:-0.035em; font-weight:700; margin:18px 0 20px; }
.standfirst { color:#cfcfcf; font-size:19px; line-height:1.5; max-width:640px; }
.meta { color:var(--dim); font-size:14px; margin-top:24px; }
.read-link { display:inline-block; margin-top:28px; color:#fff; font-weight:700; font-size:15px; text-decoration:none; border-bottom:2px solid #fff; padding-bottom:3px; }
.rays { margin:8px 0 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.rays svg { display:block; width:100%; height:220px; }
section.list { padding:56px 0; }
h2 { font-size:13px; letter-spacing:0.18em; text-transform:uppercase; color:var(--dim); font-weight:500; margin-bottom:22px; }
.item { display:flex; justify-content:space-between; align-items:baseline; gap:18px; padding:20px 0; border-top:1px solid var(--line); text-decoration:none; color:#fff; }
.item .t { font-size:19px; font-weight:700; letter-spacing:-0.02em; }
.item .d { color:var(--dim); font-size:14px; white-space:nowrap; }
.item.soon .t { color:var(--dim); font-weight:400; }
.subscribe { border:1px solid var(--line); border-radius:16px; padding:40px; margin:8px 0 64px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.subscribe h3 { font-size:24px; letter-spacing:-0.02em; margin-bottom:8px; }
.subscribe p { color:var(--dim); font-size:15px; max-width:420px; line-height:1.5; }
.subscribe a { background:#fff; color:#000; font-weight:700; padding:13px 26px; border-radius:999px; text-decoration:none; white-space:nowrap; }
footer { border-top:1px solid var(--line); padding:26px 0 40px; color:var(--dim); font-size:13px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; }

/* article page */
.article { max-width:680px; margin:0 auto; padding:64px 0 8px; }
.article h1 { font-size:clamp(30px,5vw,44px); }
.article .standfirst { font-size:18px; }
.article figure { margin:36px 0; }
.article figure img { width:100%; border-radius:12px; display:block; }
.article figcaption { color:var(--dim); font-size:12.5px; margin-top:10px; line-height:1.5; }
.article figcaption a { color:#cfcfcf; }
.article p { color:#e8e8e8; font-size:17px; line-height:1.7; margin:22px 0; }
.article h3 { font-size:22px; letter-spacing:-0.02em; margin:40px 0 4px; }
.article ul { margin:14px 0 22px; padding-left:22px; }
.article li { color:#e8e8e8; font-size:17px; line-height:1.65; margin:10px 0; }
.article .sources { border-top:1px solid var(--line); margin-top:44px; padding-top:22px; }
.article .sources p { color:var(--dim); font-size:14.5px; }
.article .sources a { color:#fff; }
.back { display:inline-block; margin-top:28px; color:var(--dim); text-decoration:none; font-size:14px; }
.back:hover { color:#fff; }
@media (max-width:600px){
  .subscribe{padding:28px}
  nav a:not(.sub-btn){display:none}
  .article p, .article li { font-size:16px; }
}

/* listen player */
.listen { margin:4px 0 32px; padding:14px 18px; border:1px solid var(--line); border-radius:12px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.listen-label { font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--dim); white-space:nowrap; }
.listen audio { flex:1; min-width:220px; height:38px; }
