:root{--paper:#f2ece0;--ink:#1a1a1a;--soft:#6b6256;--line:#c9bda8;--red:#a63a2e}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:"Songti SC","STSong","SimSun",Georgia,serif;-webkit-font-smoothing:antialiased;line-height:1.7}
/* 加载屏：与页面同底色、弱化文字，数据到达后被 app.js 整块替换，避免裸文字闪现 */
.loading{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--soft);font-size:13px;letter-spacing:.2em;opacity:.55}
.wrap{max-width:680px;margin:0 auto;padding:32px 22px 60px}
.mast{border-bottom:3px double var(--line);padding-bottom:12px;margin-bottom:22px}
.meta{display:flex;justify-content:space-between;font-size:11px;color:var(--soft);letter-spacing:.1em}
.title{font-size:clamp(36px,9vw,60px);font-weight:900;text-align:center;line-height:1.1;letter-spacing:.05em;margin:8px 0 4px}
.subt{text-align:center;font-size:12px;letter-spacing:.4em;color:var(--soft)}
.kicker{font-size:11px;letter-spacing:.4em;color:var(--red);text-align:center;margin:22px 0 8px;text-transform:uppercase}
.headline{text-align:center;font-size:clamp(22px,5vw,30px);font-weight:700;line-height:1.4;margin-bottom:10px}
.byline{text-align:center;font-size:12px;color:var(--soft);letter-spacing:.15em;margin-bottom:20px}
.byline .author{color:var(--ink);font-weight:700;font-size:14px;letter-spacing:.08em}
.cols{column-count:2;column-gap:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:22px}
.cols p{font-size:13px;color:#333;text-align:justify;margin-bottom:8px;text-indent:2em}
.cols p:first-child::first-letter{font-size:30px;float:left;line-height:1;margin:3px 6px 0 0;font-weight:700;color:var(--red)}.sec{display:flex;align-items:center;gap:12px;margin:24px 0 14px}
.sec h2{font-size:15px;font-weight:700;letter-spacing:.15em;white-space:nowrap}
.sec::before,.sec::after{content:"";flex:1;height:1px;background:var(--line)}
.channels{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ch{border:1px solid var(--line);padding:14px;text-decoration:none;color:var(--ink);background:rgba(255,255,255,.4);transition:all .2s;position:relative;display:block}
.ch:hover{background:#fff;transform:translateY(-2px);box-shadow:3px 3px 0 var(--line)}
.ch .tag{font-size:10px;letter-spacing:.2em;color:var(--red);text-transform:uppercase}
.ch h3{font-size:15px;margin:4px 0 2px;font-weight:700}
.ch p{font-size:11px;color:var(--soft)}
.qr{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.qrc{border:1px solid var(--line);padding:16px;text-align:center;background:rgba(255,255,255,.4)}
.qrbox{width:90px;height:90px;margin:0 auto 8px;background:
  repeating-linear-gradient(45deg,var(--ink) 0 3px,transparent 3px 7px),
  repeating-linear-gradient(-45deg,var(--ink) 0 3px,transparent 3px 7px);
  background-blend-mode:multiply;position:relative}
.qrbox::after{content:"";position:absolute;inset:30%;background:var(--paper);border:2px solid var(--ink)}
.qrimg{width:90px;height:90px;margin:0 auto 8px;object-fit:contain;display:block;cursor:zoom-in;background:#fff;padding:4px;border:1px solid var(--line)}
.qrc h4{font-size:13px;font-weight:700}
.qrc span{font-size:10px;color:var(--soft);letter-spacing:.1em}
.thanks{margin-top:22px;padding:14px;border:1px dashed var(--line);text-align:center}
.thanks h3{font-size:13px;letter-spacing:.3em;margin-bottom:8px}
.thanks p{font-size:11px;color:var(--soft);line-height:1.8}
.thanks .empty{color:var(--soft);font-size:12px}
.names{font-size:12px;margin-top:8px;line-height:1.8}
.names b{color:var(--red)}
.view-detail{display:inline-block;margin-top:10px;font-size:11px;color:var(--red);text-decoration:underline;letter-spacing:.1em;cursor:pointer;background:none;border:none}
.view-detail:hover{opacity:.7}
.foot{text-align:center;margin-top:26px;padding-top:14px;border-top:2px solid var(--line);font-size:10px;color:var(--soft);letter-spacing:.25em}

/* 鸣谢详细名单弹窗 */
.modal{display:none;position:fixed;inset:0;z-index:999}
.modal.show{display:block}
.modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.modal-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--paper);border:1px solid var(--line);width:90%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 8px 32px rgba(0,0,0,.2)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal-head h3{font-size:14px;letter-spacing:.15em}
.modal-close{background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--soft);padding:0 4px}
.modal-close:hover{color:var(--red)}
.modal-body{overflow-y:auto;padding:14px 18px}
.modal-body table{width:100%;border-collapse:collapse;font-size:12px}
.modal-body th,.modal-body td{padding:8px 6px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.modal-body th{font-weight:700;letter-spacing:.1em;color:var(--soft);white-space:nowrap}
.modal-body td{color:#333}
.modal-body td:nth-child(2){white-space:nowrap}

/* 收款码图片灯箱 */
.lightbox{display:none;position:fixed;inset:0;z-index:999;background:rgba(0,0,0,.85);align-items:center;justify-content:center;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img{max-width:90vw;max-height:90vh;object-fit:contain;background:#fff;padding:12px}

@media(max-width:520px){
  .cols{column-count:1}
  .channels{grid-template-columns:1fr}
  .modal-body th,.modal-body td{font-size:11px;padding:6px 4px}
}
