/* 牛马 · 铸造页样式（视觉来自 design/Main.dc.html、Type.dc.html）。字体自托管，见 vendor/fonts。 */
@font-face{font-family:"ZCOOL QingKe HuangYou";src:url(vendor/fonts/zcool-qingke.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Noto Sans SC";src:url(vendor/fonts/noto-sans-sc.woff2) format("woff2");font-weight:400 900;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(vendor/fonts/jetbrains-mono.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Archivo Black";src:url(vendor/fonts/archivo-black.woff2) format("woff2");font-weight:400;font-display:swap}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#F4EFE2}
a{color:#17150F}a:hover{color:#C8201E}
.nm{--ink:#17150F;--paper:#F4EFE2;--card:#FFFDF6;--line:#D9CFB6;--muted:#5E5847;--y:#FFD21E;--red:#C8201E;--soft:#EDE5CF;
--fb:'Noto Sans SC','PingFang SC','Microsoft YaHei',system-ui,sans-serif;--fn:'JetBrains Mono',ui-monospace,'SF Mono',Consolas,monospace;--fl:'Archivo Black','Noto Sans SC',system-ui,sans-serif;
--fd:'ZCOOL QingKe HuangYou','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;
min-height:100vh;background:var(--paper);color:var(--ink);font-family:var(--fb);overflow-x:clip}
.nm button,.nm input{font-family:var(--fb)}
.d{font-family:var(--fd);font-weight:400;letter-spacing:.01em}
.n{font-family:var(--fn);font-variant-numeric:tabular-nums}
.l{font-family:var(--fl);letter-spacing:.02em}
.mut{color:var(--muted)}.lt{color:#D9CFB6}.yel{color:var(--y)}.red{color:var(--red)}.b{font-weight:700}.small{font-size:13px}.ink{color:var(--ink)}
.tag{font-size:13px;color:var(--muted);letter-spacing:.08em}
.wrap{max-width:1240px;margin:0 auto;padding-left:24px;padding-right:24px}
h1,h2,h3,p{margin:0}

/* 占位图 */
.ph{background-color:#FFE98A;background-image:repeating-linear-gradient(135deg,rgba(23,21,15,.10) 0 10px,transparent 10px 20px);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--ink);font-family:var(--fn);font-size:12px;overflow:hidden}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph.has{background:none}

/* 跑马灯 */
.ticker{background:var(--ink);color:var(--y);height:36px;display:flex;align-items:center;overflow:hidden}
.tk{display:flex;gap:48px;white-space:nowrap;animation:nmtk 38s linear infinite;width:max-content;font-size:13px;letter-spacing:.08em}
@keyframes nmtk{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* 顶栏 */
.top{position:sticky;top:0;z-index:20;background:rgba(244,239,226,.92);backdrop-filter:blur(10px);border-bottom:2px solid var(--ink)}
.top-in{padding-top:12px;padding-bottom:12px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand-t{display:flex;flex-direction:column;line-height:1.05}.brand-t b{font-size:26px;font-weight:400}.brand-t span{font-size:11px;color:var(--muted)}
.nav{display:flex;gap:18px;flex-wrap:wrap;font-size:15px;font-weight:500;flex:1 1 auto}.nav a{text-decoration:none}
.counter{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}.counter .big{font-size:18px;font-weight:700}

/* 按钮 */
.btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 18px;border:2px solid var(--ink);background:var(--card);color:var(--ink);font-weight:700;font-size:15px;cursor:pointer;text-decoration:none;box-shadow:3px 3px 0 var(--ink);transition:transform .15s,box-shadow .15s}
.btn:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink);color:inherit}
.btn.y{background:var(--y)}
.btn.k{height:52px;padding:0 26px;background:var(--ink);color:var(--y);font-size:17px;box-shadow:3px 3px 0 var(--red)}
.btn.k:hover{color:var(--y);box-shadow:5px 5px 0 var(--red)}
.btn.w{height:52px;padding:0 26px;font-size:17px}
.btn.big{width:100%;height:60px;border-width:3px;font-size:20px;font-weight:900;box-shadow:4px 4px 0 var(--ink)}
.btn.k2{background:var(--y)}
.btn.sm{height:44px}
.btn.ghost{background:transparent;color:var(--y);border-color:var(--y);box-shadow:none}
.btn:disabled{cursor:not-allowed;opacity:.85}
.btn.off{background:var(--soft);color:#2A2619}
.btn.done{background:var(--ink);color:var(--y)}
.btn.busy{opacity:.7}

/* 首屏 */
.hero{padding-top:72px;padding-bottom:56px;display:flex;flex-wrap:wrap;gap:56px;align-items:center}
.hero-l{flex:999 1 520px;min-width:0;display:flex;flex-direction:column;gap:24px}
.hero-r{flex:1 1 380px;min-width:0;display:flex;justify-content:center}
.pill{display:inline-flex;align-self:flex-start;align-items:center;gap:10px;border:2px solid var(--ink);background:var(--card);padding:6px 14px;font-size:14px;font-weight:500}
.dot{width:10px;height:10px;border-radius:50%;background:var(--red)}
.h1{font-size:clamp(56px,8vw,112px);line-height:.98}
.hl{background:var(--y);padding:0 .12em;box-shadow:6px 6px 0 var(--ink)}
.lead{font-size:18px;line-height:1.75;max-width:34em;color:#2A2619}
.hero .tag{margin-top:-8px}
.cta{display:flex;gap:14px;flex-wrap:wrap}
.cd{border:2px solid var(--ink);background:var(--ink);color:var(--card);padding:18px 20px;display:flex;flex-direction:column;gap:12px;max-width:520px}
.cd-h{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
.cd-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cd-g div{display:flex;flex-direction:column;align-items:center;background:#2A2619;padding:10px 0}.cd-g b{font-size:34px}.cd-g span{font-size:12px;color:#D9CFB6}
.stack{position:relative;width:min(440px,100%);aspect-ratio:1/1.08}
.stack .sb{position:absolute;width:58%;aspect-ratio:1;right:0;top:2%;border:2px solid var(--ink);transform:rotate(6deg);box-shadow:6px 6px 0 var(--ink)}
.stack .sc{position:absolute;width:54%;aspect-ratio:1;left:0;top:10%;border:2px solid var(--ink);transform:rotate(-7deg);box-shadow:6px 6px 0 var(--ink)}
.main-card{position:absolute;left:12%;right:12%;bottom:0;background:var(--card);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink);padding:12px}
.mc-f{display:flex;justify-content:space-between;align-items:center;padding-top:10px}
.stamp{position:absolute;right:-4%;bottom:18%;width:92px;height:92px;border:3px solid var(--red);border-radius:50%;color:var(--red);display:flex;align-items:center;justify-content:center;transform:rotate(-14deg);background:rgba(255,253,246,.7)}
.stamp .d{font-size:20px;line-height:1.1;text-align:center}

/* 图集 */
.gallery{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);background:var(--y);padding:16px 0;overflow:hidden}
.gt{display:flex;gap:16px;width:max-content;animation:nmtk 60s linear infinite}
.gt .ph{width:150px;height:150px;border:2px solid var(--ink);flex:none}

/* 区块 */
.sec{padding:56px 0;display:flex;flex-direction:column;gap:24px}
.sec:first-child{padding-top:72px;padding-bottom:24px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px}
.sec-h h2{font-size:44px;font-weight:400}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.cards.c260{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.cards.c240{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--card);border:2px solid var(--ink);padding:18px;display:flex;flex-direction:column;gap:10px}
.card.dark{background:var(--ink);color:var(--card)}
.card.lnk{text-decoration:none;gap:6px;padding:20px}
.card h3{font-size:26px;font-weight:400}.card p{font-size:15px;line-height:1.75}
.card.light{padding:22px}.card.light h3{font-size:28px}
.big2{font-size:30px}.big2 small{font-size:16px;color:var(--muted);font-weight:400}.card.dark .big2 small{color:#D9CFB6}
.bar{height:8px;background:var(--soft);border:1px solid var(--ink)}.bar i{display:block;height:100%;width:0;transition:width .6s}.bar i.k{background:var(--ink)}.bar i.y{background:var(--y);border-right:1px solid var(--ink)}
.phases{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));border:2px solid var(--ink)}
.phases li{padding:18px;display:flex;flex-direction:column;gap:6px;border-right:2px solid var(--ink);background:var(--card)}
.phases li.on{background:var(--y)}.phases li.done{background:var(--ink);color:#D9CFB6}
.phases .no{width:28px;height:28px;border:2px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}
.phases .nm1{display:flex;align-items:center;gap:10px}.phases .nm1 b{font-size:26px;font-weight:400}
.phases .p1{font-size:16px;font-weight:600}.phases .p2{font-size:14px;opacity:.85}

/* 铸造 */
.mint-sec{padding:48px 0;display:flex;flex-wrap:wrap;gap:32px;align-items:stretch}
.pass{flex:1 1 560px;min-width:0;background:var(--card);border:3px solid var(--ink);box-shadow:10px 10px 0 var(--ink);display:flex;flex-direction:column}
.pass-h{background:var(--ink);color:var(--y);padding:12px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.pass-h .l{font-size:14px;letter-spacing:.12em}
.pass-b{padding:24px;display:flex;flex-wrap:wrap;gap:24px}
.pass-g{flex:1 1 260px;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 20px;align-content:start}
.pass-g>div{display:flex;flex-direction:column;gap:2px}.pass-g .full{grid-column:1/-1}
.name{font-size:34px;line-height:1.1;font-weight:400;word-break:break-all}.m{font-size:20px}.m2{font-size:22px}
.pass-a{border-top:2px dashed var(--line);padding:20px 24px;display:flex;flex-direction:column;gap:16px}
.lab{font-size:14px;font-weight:700}
.row{display:flex;flex-wrap:wrap;gap:8px}
.q{width:44px;height:44px;border:2px solid var(--ink);background:var(--card);color:var(--ink);font-weight:600;font-size:16px;cursor:pointer;font-family:var(--fn)}
.q.on{background:var(--ink);color:var(--y);font-weight:700}.q:disabled{opacity:.35;cursor:not-allowed}
.pm{height:44px;padding:0 22px;border:2px solid var(--ink);background:var(--card);color:var(--ink);font-weight:600;font-size:15px;cursor:pointer;font-family:var(--fn)}.pm.on{background:var(--ink);color:var(--y);font-weight:700}
.sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;background:var(--paper);border:1px solid var(--line);padding:14px 16px}.sum>div{display:flex;flex-direction:column;gap:2px}
.msg{font-size:13px;line-height:1.6;padding:10px 12px;border:1px solid var(--red);color:var(--red);background:#fff4f2;word-break:break-word}.msg.ok{border-color:var(--ink);color:var(--ink);background:var(--y)}
.side{flex:1 1 340px;min-width:0;display:flex;flex-direction:column;gap:16px}
.dark-card{background:var(--ink);color:var(--card);border:2px solid var(--ink);padding:22px;display:flex;flex-direction:column;gap:12px}
.dark-card h3{font-size:28px;font-weight:400}.dark-card p{font-size:15px;line-height:1.75;color:var(--soft)}
.code{background:#2A2619;border:1px solid var(--muted);padding:14px;font-size:13px;line-height:1.7;color:var(--card);word-break:break-word}
.light input{flex:1;min-width:0;height:44px;border:2px solid var(--ink);background:var(--paper);padding:0 12px;font-size:14px}
.light label{font-size:14px}

/* 工资条 */
.payslip{flex-direction:row;flex-wrap:wrap;gap:40px;align-items:flex-start}
.ps-l{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:16px}
.lead2{font-size:16px;line-height:1.8;color:#2A2619;max-width:26em}
.seal{align-self:flex-start;margin-top:12px;width:150px;height:150px;border:4px solid var(--red);border-radius:50%;color:var(--red);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-10deg)}.seal .d{font-size:30px;line-height:1.1}
.ps-r{flex:1.4 1 480px;min-width:0;background:var(--card);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--ink)}
.ps-h{padding:18px 22px;border-bottom:2px dashed var(--ink);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.ps-rows{padding:8px 22px 16px;font-size:15px}.ps-rows>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--soft)}.ps-rows>div:last-child{border-bottom:0}
.ps-f{background:var(--y);border-top:2px solid var(--ink);padding:14px 22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.tbl{background:var(--card);border:2px solid var(--ink);overflow-x:auto}.tbl-in{min-width:560px;font-size:14px}
.tbl-in>div{display:grid;grid-template-columns:180px 1fr 90px;gap:16px;padding:14px 20px;border-bottom:1px solid var(--soft);align-items:center}.tbl-in>div:last-child{border-bottom:0}
.tbl-in b{font-family:var(--fb)}.tbl-in .empty{color:var(--muted)}
.foot{background:var(--ink);color:#D9CFB6;border-top:2px solid var(--ink)}
.foot-in{padding-top:40px;padding-bottom:40px;display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:flex-start}
.links{display:flex;gap:20px;flex-wrap:wrap;font-size:14px}.links a{color:var(--card)}

/* 钱包弹窗 / toast */
.wmodal{position:fixed;inset:0;z-index:50;background:rgba(23,21,15,.6);display:flex;align-items:center;justify-content:center;padding:16px}
.wmodal[hidden]{display:none}
.wbox{width:min(420px,100%);background:var(--card);border:3px solid var(--ink);box-shadow:8px 8px 0 var(--ink);padding:20px}
.wbox-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.x{width:36px;height:36px;border:2px solid var(--ink);background:var(--card);font-size:22px;cursor:pointer}
.wopt{display:flex;align-items:center;gap:12px;width:100%;height:52px;margin-bottom:8px;border:2px solid var(--ink);background:var(--paper);padding:0 12px;font-size:16px;font-weight:700;cursor:pointer;text-align:left}
.wopt img{width:28px;height:28px}
.toasts{position:fixed;right:16px;bottom:16px;z-index:60;display:flex;flex-direction:column;gap:8px;max-width:min(360px,calc(100vw - 32px))}
.toast{background:var(--ink);color:var(--card);border:2px solid var(--y);padding:12px 14px;font-size:14px;line-height:1.5;word-break:break-word}.toast a{color:var(--y)}.toast.err{border-color:var(--red)}
[hidden]{display:none!important}

@media (max-width:720px){
  .wrap{padding-left:16px;padding-right:16px}
  .hero{padding-top:40px;gap:32px}.nav{display:none}.counter{align-items:flex-start}
  .sec-h h2{font-size:34px}.pass-b{padding:16px}.pass-a{padding:16px}
  .tbl-in>div{grid-template-columns:140px 1fr 70px}
}
@media (prefers-reduced-motion:reduce){.tk,.gt{animation:none}html{scroll-behavior:auto}.bar i{transition:none}}
