@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Serif+SC:wght@500;600;700&display=swap');

:root { --paper:#f5f1e8; --ink:#171513; --line:#cfc7ba; --muted:#746d64; --accent:#b03a24; --dark:#151412; font-family:"DM Mono","PingFang SC","Microsoft YaHei",monospace; color:var(--ink); background:var(--paper); font-synthesis:none; }
* { box-sizing:border-box; }
html,body { min-height:100%; margin:0; }
body { background:var(--paper); }
a { color:inherit; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.site-header { display:grid; grid-template-columns:minmax(220px,1fr) minmax(280px,520px) auto; align-items:center; gap:32px; max-width:1320px; margin:0 auto; padding:24px 34px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; flex-direction:column; align-self:center; width:max-content; min-width:220px; text-decoration:none; }
.brand span { font-family:"Noto Serif SC",serif; font-size:30px; font-weight:700; letter-spacing:.08em; line-height:1.05; }
.brand small { margin-top:7px; color:var(--muted); font-size:10px; letter-spacing:.1em; line-height:1.2; }
.global-search,.page-search { display:flex; border:1px solid var(--ink); background:rgba(255,255,255,.3); }
.global-search input,.page-search input { min-width:0; flex:1; border:0; padding:13px 15px; outline:0; color:var(--ink); background:transparent; }
.global-search button,.page-search button { border:0; padding:0 20px; color:var(--paper); background:var(--ink); }
.site-nav { display:flex; align-items:center; gap:16px; white-space:nowrap; }
.site-nav a { color:var(--muted); font-size:12px; text-decoration:none; }
.site-nav a:hover,.section-link:hover { color:var(--accent); }
main { max-width:1320px; margin:0 auto; padding:0 34px; }
.hero { max-width:940px; padding:120px 0 82px; }
.kicker { margin:0 0 17px; color:var(--accent); font-size:11px; letter-spacing:.18em; }
.hero h1,.page-heading h1,.detail h1 { max-width:900px; margin:0; font-family:"Noto Serif SC",serif; font-size:clamp(42px,6vw,78px); line-height:1.14; letter-spacing:.03em; }
.hero>p:not(.kicker) { max-width:650px; margin:27px 0 0; color:var(--muted); font-size:15px; line-height:1.9; }
.index-summary { display:grid; grid-template-columns:repeat(3,1fr); margin-bottom:88px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.index-summary div,.index-summary a { display:grid; gap:7px; padding:26px 20px; border-right:1px solid var(--line); color:inherit; text-decoration:none; }
.index-summary div:first-child { padding-left:0; }
.index-summary div:last-child { border:0; }
.index-summary a:hover strong,.index-summary a:hover span { color:var(--accent); }
.index-summary strong { font-family:"Noto Serif SC",serif; font-size:27px; font-weight:600; }
.index-summary span { color:var(--muted); font-size:11px; }
.content-section { margin:0 0 88px; }
.content-section.compact { margin-bottom:110px; }
.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:22px; }
.section-heading h2,.detail h2 { margin:0; font-family:"Noto Serif SC",serif; font-size:30px; }
.section-link { color:var(--muted); font-size:11px; text-decoration:none; white-space:nowrap; }
.section-footer { display:flex; justify-content:flex-end; margin-top:22px; }
.view-more { padding:10px 13px; border:1px solid var(--ink); color:var(--ink); font-size:11px; text-decoration:none; }
.view-more:hover { color:var(--paper); background:var(--ink); }
.entry-list { border-top:1px solid var(--ink); }
.entry-row { display:grid; grid-template-columns:150px 1fr auto; gap:24px; padding:24px 0; border-bottom:1px solid var(--line); }
.entry-code,.detail-code { color:var(--accent); font-size:15px; letter-spacing:.08em; }
.entry-main h2 { margin:0 0 9px; font-family:"Noto Serif SC",serif; font-size:22px; line-height:1.4; }
.entry-main h2 a { text-decoration:none; }
.entry-main h2 a:hover { text-decoration:underline; text-underline-offset:5px; }
.entry-main p { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.metadata-link { color:inherit; text-decoration:underline; text-decoration-color:var(--line); text-decoration-thickness:1px; text-underline-offset:3px; }
.metadata-link:hover { color:var(--accent); text-decoration-color:currentColor; }
.entry-row time { align-self:start; color:var(--muted); font-size:10px; white-space:nowrap; }
.empty-state { padding:46px 0; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); }
.empty-state p { margin:0 0 9px; font-family:"Noto Serif SC",serif; font-size:24px; }
.empty-state span { color:var(--muted); font-size:12px; }
.page-heading { padding:88px 0 42px; }
.page-heading>p:not(.kicker) { margin:16px 0 25px; color:var(--muted); font-size:13px; }
.page-search { width:min(700px,100%); }
.pagination { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:28px; color:var(--muted); font-size:11px; }
.pagination a { padding:9px 11px; border:1px solid var(--line); color:var(--ink); text-decoration:none; }
.pagination a:hover { border-color:var(--ink); }
.ranking-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; margin:0 0 88px; }
.ranking-panel { min-width:0; padding:28px 28px 12px; border:1px solid var(--line); background:rgba(255,255,255,.24); }
.ranking-heading { display:grid; gap:7px; min-height:102px; margin-bottom:12px; }
.ranking-heading .kicker { margin:0; }
.ranking-heading h2 { margin:0; font-family:"Noto Serif SC",serif; font-size:30px; }
.ranking-heading span { color:var(--muted); font-size:11px; }
.ranking-list { border-top:1px solid var(--ink); }
.ranking-row { display:grid; grid-template-columns:48px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:56px; padding:12px 0; border-bottom:1px solid var(--line); text-decoration:none; }
.ranking-row:hover { color:var(--accent); }
.ranking-number { color:var(--accent); font-size:12px; letter-spacing:.08em; }
.ranking-name { overflow:hidden; font-family:"Noto Serif SC",serif; font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.ranking-detail { color:var(--muted); font-size:10px; white-space:nowrap; }
.ranking-row:hover .ranking-detail { color:inherit; }
.ranking-list--all .ranking-row { grid-template-columns:64px minmax(0,1fr) auto; }
.detail { padding:92px 0 110px; }
.detail-header { max-width:940px; padding-bottom:45px; border-bottom:1px solid var(--ink); }
.detail-code { margin:0 0 15px; }
.detail-header .aliases { margin:20px 0; color:var(--muted); font-size:12px; line-height:1.7; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:82px; padding-top:42px; }
.detail h2 { margin-bottom:17px; font-size:26px; }
.synopsis { margin:0; color:#46403a; font-size:14px; line-height:2.05; white-space:pre-line; }
.facts { display:grid; margin:0; border-top:1px solid var(--line); }
.facts div { display:grid; grid-template-columns:92px 1fr; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); font-size:12px; line-height:1.6; }
.facts dt { color:var(--muted); }
.facts dd { margin:0; }
.about { max-width:850px; min-height:65vh; }
.about>p:not(.kicker) { max-width:720px; color:#46403a; font-size:15px; line-height:2.1; }
.inline-link { color:var(--accent); }
.site-footer { display:flex; align-items:flex-start; justify-content:space-between; gap:26px; max-width:1320px; margin:0 auto; padding:27px 34px 34px; border-top:1px solid var(--line); color:var(--muted); font-size:10px; line-height:1.8; }
.site-footer>div { display:flex; flex-wrap:wrap; gap:16px; }
.site-footer a { text-decoration:none; }
.site-footer a:hover { color:var(--accent); }
.footer-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px 16px; }
.footer-links span { color:var(--ink); }

.admin-body { color:#f1ece2; background:#141311; }
.admin-shell { max-width:1360px; padding:34px; }
.admin-loading { color:#aaa094; }
.admin-top { display:flex; align-items:center; justify-content:space-between; gap:22px; padding-bottom:24px; border-bottom:1px solid #4b4742; }
.admin-brand { display:flex; flex-direction:column; gap:7px; }
.admin-brand strong { font-family:"Noto Serif SC",serif; font-size:31px; letter-spacing:.06em; }
.admin-brand span { color:#aaa094; font-size:11px; }
.admin-top button,.admin-form button,.import-card button { border:1px solid #f1ece2; padding:11px 15px; color:#141311; background:#f1ece2; }
.admin-login { display:grid; width:min(430px,100%); gap:16px; margin:14vh auto; padding:34px; border:1px solid #4b4742; }
.admin-login h1 { margin:0; font-family:"Noto Serif SC",serif; }
.admin-login p { margin:0; color:#aaa094; font-size:12px; line-height:1.8; }
.admin-login input,.admin-form input,.admin-form textarea,.import-card textarea { width:100%; border:1px solid #4b4742; padding:12px; color:#f1ece2; background:#1d1b19; outline:none; }
.admin-login input:focus,.admin-form input:focus,.admin-form textarea:focus,.import-card textarea:focus { border-color:#f1ece2; }
.admin-login button { min-height:48px; border:0; color:#141311; background:#f1ece2; }
.admin-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr); gap:26px; padding-top:30px; }
.admin-stack { padding-top:30px; }
.admin-card { padding:23px; border:1px solid #4b4742; background:#181715; }
.admin-card h2 { margin:0 0 8px; font-family:"Noto Serif SC",serif; font-size:25px; }
.admin-card>p { margin:0 0 21px; color:#aaa094; font-size:12px; line-height:1.75; }
.admin-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.admin-form label { display:grid; gap:7px; color:#cac1b5; font-size:11px; }
.admin-form .span-2 { grid-column:span 2; }
.admin-form textarea { min-height:110px; resize:vertical; }
.admin-form .admin-submit { grid-column:span 2; }
.admin-form .admin-submit button { width:100%; }
.resource-hint,.admin-status { color:#aaa094; font-size:11px; line-height:1.7; }
.admin-status.error { color:#f49c89; }
.admin-status.success { color:#b8d7a6; }
.import-card { margin-top:26px; }
.import-card textarea { min-height:240px; font-size:11px; line-height:1.6; }
.entry-admin-list { display:grid; gap:0; border-top:1px solid #4b4742; }
.entry-admin-row { display:grid; grid-template-columns:110px 1fr auto; gap:16px; align-items:start; padding:16px 0; border-bottom:1px solid #4b4742; }
.entry-admin-row strong { color:#f1ece2; font-size:13px; }
.entry-admin-row p { margin:7px 0 0; color:#aaa094; font-size:11px; line-height:1.5; }
.entry-admin-row button { border:1px solid #777068; padding:7px 9px; color:#f1ece2; background:transparent; font-size:11px; }
.collection-card { margin-bottom:26px; }
.collection-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.collection-heading .kicker { margin-bottom:8px; }
.collection-state { flex:0 0 auto; padding:6px 9px; border:1px solid #b8d7a6; color:#b8d7a6; font-size:10px; }
.collection-state.paused { border-color:#f4c37d; color:#f4c37d; }
.collection-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:22px 0; border:1px solid #4b4742; }
.collection-stats div { display:grid; gap:6px; padding:14px; border-right:1px solid #4b4742; }
.collection-stats div:last-child { border-right:0; }
.collection-stats strong { font-size:18px; color:#f1ece2; }
.collection-stats span,.collection-current { color:#aaa094; font-size:11px; line-height:1.7; }
.collection-current { min-height:38px; overflow-wrap:anywhere; }
.collection-current b { color:#cac1b5; font-weight:500; }
.collection-current span { color:#f49c89; }
.collection-actions { display:flex; gap:10px; margin-top:18px; }
.collection-actions button { border:1px solid #f1ece2; padding:9px 13px; color:#141311; background:#f1ece2; }
.collection-actions .quiet-button { color:#f1ece2; background:transparent; border-color:#777068; }

@media (max-width:760px) { .site-header { grid-template-columns:1fr auto; gap:16px; padding:18px 18px; } .brand { min-width:0; } .global-search { grid-column:1/-1; grid-row:2; } .site-nav { gap:12px; } .site-nav a { font-size:11px; } main { padding:0 18px; } .hero { padding:72px 0 56px; } .hero h1,.page-heading h1,.detail h1 { font-size:42px; } .index-summary { grid-template-columns:1fr; margin-bottom:62px; } .index-summary div,.index-summary a,.index-summary div:first-child { padding:18px 0; border-right:0; border-bottom:1px solid var(--line); } .index-summary div:last-child { border-bottom:0; } .entry-row { grid-template-columns:1fr; gap:8px; padding:20px 0; } .entry-row time { display:none; } .ranking-grid { grid-template-columns:1fr; gap:58px; margin-bottom:62px; } .ranking-heading h2 { font-size:27px; } .ranking-row { grid-template-columns:42px minmax(0,1fr); gap:10px; } .ranking-detail { grid-column:2; } .ranking-list--all .ranking-row { grid-template-columns:50px minmax(0,1fr); } .detail { padding:62px 0 72px; } .detail-grid,.admin-grid { grid-template-columns:1fr; gap:36px; } .facts div { grid-template-columns:75px 1fr; } .site-footer { display:grid; gap:14px; padding:22px 18px; } .site-footer>div { gap:8px 14px; } .footer-links { justify-content:flex-start; gap:5px 13px; } .admin-shell { padding:18px; } .admin-grid { padding-top:20px; } .admin-form { grid-template-columns:1fr; } .admin-form .span-2,.admin-form .admin-submit { grid-column:span 1; } .entry-admin-row { grid-template-columns:1fr auto; } .entry-admin-row p { grid-column:1/-1; grid-row:2; } .collection-heading { align-items:start; flex-direction:column; } .collection-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } .collection-stats div:nth-child(2n) { border-right:0; } .collection-stats div:nth-child(-n+3) { border-bottom:1px solid #4b4742; } }
