:root {
    --paper: #f4efe6;
    --ink: #1c1915;
    --red: #b42318;
    --line: #cfc6b8;
    --card: #fffdf8;
    --muted: #5c564c;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font: 16px/1.7 "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

img { max-width: 100%; height: auto; border: 0; }

a { color: var(--red); }

.wrap { width: min(1080px, calc(100% - 32px)); margin: 0 auto; }

.mast { border-bottom: 3px solid var(--ink); background: var(--paper); }

.mast-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    padding-top: 22px;
}

.brand img { width: 180px; height: 36px; max-width: none; display: block; }

.issue {
    margin: 0;
    letter-spacing: 0.12em;
    font-size: 13px;
    color: var(--muted);
}

.nav-check { position: absolute; left: -999px; }

.nav-toggle {
    display: none;
    margin: 12px 0;
    padding: 8px 14px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: #fffdf8;
    font: inherit;
    cursor: pointer;
}

.nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-top: 1px solid var(--ink);
}

.nav a {
    color: var(--ink);
    text-decoration: none;
    padding: 10px 12px;
    border-right: 1px solid var(--line);
    font-size: 15px;
}

.nav a.on,
.nav a:hover { background: var(--ink); color: #fffdf8; }

main { padding-bottom: 28px; }

h1 {
    margin: 28px 0 8px;
    font: 700 40px/1.25 "Songti SC", "Noto Serif SC", "STSong", "SimSun", serif;
    letter-spacing: 0.04em;
}

h2 {
    margin: 0 0 12px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--ink);
    font: 700 24px/1.3 "Songti SC", "Noto Serif SC", "STSong", serif;
}

h3 { margin: 18px 0 6px; font-size: 18px; }

.lede,
.foot-desc {
    margin: 0 0 22px;
    color: var(--muted);
    font-size: 15px;
}

.block { margin: 28px 0; }

.match-list { border-top: 1px solid var(--ink); }

.match-link {
    display: grid;
    grid-template-columns: 28px 44px minmax(0, 1fr) 44px auto;
    gap: 10px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--line);
    color: inherit;
    text-decoration: none;
}

.league-ico,
.crest { width: 40px; height: 40px; max-width: none; object-fit: contain; background: #fff; }

.league-ico { width: 28px; height: 28px; }

.match-mid { min-width: 0; }

.teams {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: baseline;
}

.teams b { font-weight: 700; }

.teams i { font-style: normal; color: var(--muted); font-size: 13px; }

.sub,
.kicker { display: block; color: var(--muted); font-size: 13px; }

.score { font-size: 16px; white-space: nowrap; }

.league-jump {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 8px;
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}

.league-jump a {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 10px 4px;
    border: 1px solid var(--ink);
    background: var(--card);
    color: var(--ink);
    text-decoration: none;
    font-size: 14px;
}

.league-jump img { width: 36px; height: 36px; max-width: none; }

.cards {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 14px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.cards a {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 100%;
    padding: 14px;
    border: 1px solid var(--ink);
    background: var(--card);
    color: inherit;
    text-decoration: none;
}

.cards strong { font-size: 18px; line-height: 1.4; }

.cards em { font-style: normal; color: var(--muted); font-size: 14px; }

.cards img { width: 100%; height: 160px; object-fit: cover; background: #ece5d8; }

.more { margin: 12px 0 0; }

.faq details {
    border-bottom: 1px solid var(--line);
    padding: 8px 0;
}

.faq summary { cursor: pointer; font-weight: 700; }

.faq p { margin: 8px 0 4px; }

.about p { margin: 0 0 8px; }

.article-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px 16px;
    margin: 0 0 18px;
    padding: 12px 0;
    border-top: 1px solid var(--ink);
    border-bottom: 1px solid var(--ink);
}

.article-meta div { margin: 0; }

.article-meta dt { color: var(--muted); font-size: 12px; }

.article-meta dd { margin: 0; word-break: break-all; }

.article p { margin: 0 0 12px; }

.reprint {
    padding: 10px 12px;
    background: #fffdf8;
    border-left: 4px solid var(--red);
}

.fixture { padding-bottom: 8px; }

.fixture-teams {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 12px;
    align-items: center;
    margin: 12px 0;
}

.fixture-teams p { display: flex; flex-direction: column; align-items: center; gap: 8px; margin: 0; text-align: center; }

.fixture-teams img { width: 72px; height: 72px; max-width: none; object-fit: contain; background: #fff; }

.fixture-score { font: 700 28px/1 "Songti SC", serif; }

.lines { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }

.lines a,
.pager a,
.neighbors a {
    display: inline-block;
    padding: 8px 14px;
    border: 1px solid var(--ink);
    background: var(--ink);
    color: #fffdf8;
    text-decoration: none;
}

.pager, .neighbors { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 16px; }

.empty { padding: 12px 0; color: var(--muted); }

.foot { margin-top: 20px; padding: 22px 0 36px; border-top: 3px solid var(--ink); }

.friends { margin: 0 0 8px; }

.copy { margin: 0; color: var(--muted); font-size: 13px; }

.miss { padding: 18vh 0; }

@media (max-width: 800px) {
    h1 { font-size: 30px; }
    .nav-toggle { display: inline-block; }
    .nav { display: none; flex-direction: column; }
    .nav-check:checked ~ .nav { display: flex; }
    .nav a { border-right: 0; border-bottom: 1px solid var(--line); }
    .league-jump { grid-template-columns: repeat(4, 1fr); }
    .cards, .article-meta { grid-template-columns: 1fr; }
    .match-link { grid-template-columns: 40px minmax(0, 1fr) 40px; }
    .league-ico { display: none; }
    .score { grid-column: 2; }
    .fixture-teams { grid-template-columns: 1fr; }
    .cards img { height: 180px; }
}
