:root{
  --red:#C8102E; --red-deep:#9E0B23; --gold:#C9A24B; --gold-soft:#E7CE8E;
  --ink:#222; --gray:#6b6b6b; --line:#e7e1d4; --soft:#F7F2E8;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;background:#e9eb0e0;}
body{background:#dfe2e6;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);}
.phone{position:relative;max-width:420px;margin:0 auto;min-height:100vh;background:#fff;overflow:hidden;box-shadow:0 0 30px rgba(0,0,0,.08);}

/* KV S1-01 */
.kv{
  background:linear-gradient(160deg,var(--red-deep),var(--red) 60%,#d23a4f);
  color:#fff;padding:54px 26px 40px;text-align:center;position:relative;
}
.kv::after{content:"";position:absolute;left:0;right:0;bottom:0;height:36px;
  background:radial-gradient(120% 100% at 50% 0,#fff 50%,transparent 51%);}
.brand{font-size:11px;letter-spacing:2px;color:var(--gold-soft);}
.title{
  margin:18px 0 10px;font-size:42px;line-height:1.18;font-weight:800;letter-spacing:8px;white-space:nowrap;
  background:linear-gradient(180deg,#fff,#F3E2B0 70%,var(--gold));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 2px 10px rgba(0,0,0,.15);
}
.subtitle{margin:0 0 8px;font-size:13px;letter-spacing:4px;color:var(--gold-soft);font-weight:600;}
.ribbon{display:inline-block;margin-top:12px;padding:6px 14px;font-size:12px;color:var(--red-deep);
  background:linear-gradient(180deg,var(--gold-soft),var(--gold));border-radius:20px;font-weight:700;}

/* content */
.content{padding:30px 22px 110px;}
.intro h2{color:var(--red-deep);font-size:18px;margin:0 0 10px;border-left:4px solid var(--gold);padding-left:10px;}
.intro p{font-size:14px;line-height:1.8;color:#444;margin:0 0 12px;}
.themes{display:flex;gap:10px;margin-top:6px;}
.theme{flex:1;text-align:center;padding:10px 0;background:var(--soft);border:1px solid var(--line);
  border-radius:10px;color:var(--red-deep);font-weight:700;font-size:14px;}

.follow-btn{width:100%;margin-top:22px;padding:13px 0;border:none;border-radius:26px;
  background:#fff;color:var(--red);border:1.5px solid var(--red);font-size:15px;font-weight:700;}
.follow-tip{text-align:center;font-size:11px;color:var(--gray);margin:8px 0 0;}

/* 悬浮按钮 S1-03 */
.join-fab{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);width:200px;max-width:80vw;
  padding:15px 0;border:none;border-radius:30px;background:linear-gradient(180deg,var(--gold-soft),var(--gold));
  color:var(--red-deep);font-size:17px;font-weight:800;box-shadow:0 8px 22px rgba(200,16,46,.3);z-index:30;}
.join-fab:active{transform:translateX(-50%) scale(.97);}

/* modal 通用 */
.modal-mask{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;
  justify-content:center;z-index:50;padding:20px;}
.modal-mask.show{display:flex;}
.notice-card,.report-card{background:#fff;border-radius:16px;padding:26px 22px;width:100%;max-width:360px;
  max-height:86vh;overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.3);animation:pop .25s ease;}
@keyframes pop{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.notice-envelope{font-size:40px;text-align:center;}
.notice-card h3,.report-card h3{text-align:center;color:var(--red-deep);margin:6px 0 14px;font-size:20px;}

.report-card{position:relative;}
.close-x{position:absolute;top:12px;right:16px;border:none;background:none;font-size:26px;color:var(--gray);line-height:1;}
.field{margin:12px 0;}
.field label{display:block;font-size:13px;color:#444;margin-bottom:6px;}
.field input{width:100%;padding:12px 12px;border:1px solid var(--line);border-radius:10px;font-size:15px;outline:none;}
.field input:focus{border-color:var(--red);}
.field input.invalid{border-color:#e23;border-color:#e23;background:#fff6f6;}
.err{display:block;color:#e23;font-size:12px;margin-top:5px;min-height:14px;}
.code-row{display:flex;gap:10px;}
.code-row input{flex:1;}
.code-btn{padding:0 14px;border:1px solid var(--red);background:#fff;color:var(--red);
  border-radius:10px;font-size:13px;white-space:nowrap;}
.code-btn:disabled{color:var(--gray);border-color:var(--line);}
.primary-btn{width:100%;margin-top:16px;padding:14px 0;border:none;border-radius:12px;
  background:linear-gradient(160deg,var(--red),var(--red-deep));color:#fff;font-size:16px;font-weight:700;}
.primary-btn:active{opacity:.9;}
.report-tip{font-size:12px;color:var(--gray);text-align:center;margin:-6px 0 6px;}

/* toast */
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%);background:rgba(0,0,0,.82);
  color:#fff;padding:11px 18px;border-radius:22px;font-size:13px;opacity:0;pointer-events:none;
  transition:opacity .2s;z-index:80;max-width:80vw;text-align:center;}
.toast.show{opacity:1;}

/* 落地页 → 作品广场入口 */
.gallery-entry{display:block;margin-top:14px;padding:13px 0;border:1.5px solid var(--gold);border-radius:26px;
  background:linear-gradient(180deg,var(--gold-soft),var(--gold));color:var(--red-deep);
  text-align:center;font-size:15px;font-weight:700;text-decoration:none;}
.gallery-entry:active{opacity:.9;}

/* 首屏活动征集公告按钮 S1-01b */
.ann-btn{display:block;width:100%;margin-bottom:14px;padding:12px 0;border:none;border-radius:12px;
  background:linear-gradient(160deg,var(--red),var(--red-deep));color:#fff;font-size:15px;font-weight:700;
  box-shadow:0 4px 14px rgba(200,16,46,.28);letter-spacing:.5px;}
.ann-btn:active{opacity:.9;}
.checkin-btn{display:block;width:100%;margin-bottom:14px;padding:12px 0;border:none;border-radius:12px;
  background:linear-gradient(160deg,var(--gold-soft),var(--gold));color:var(--red-deep);font-size:15px;font-weight:700;
  box-shadow:0 4px 14px rgba(201,162,75,.3);letter-spacing:.5px;}
.checkin-btn:active{opacity:.9;}
.ann-card{background:#fff;border-radius:16px;padding:26px 22px;width:100%;max-width:380px;
  max-height:86vh;display:flex;flex-direction:column;box-shadow:0 20px 50px rgba(0,0,0,.3);animation:pop .25s ease;position:relative;}
.ann-title{text-align:center;color:var(--red-deep);margin:2px 26px 14px;font-size:17px;font-weight:800;line-height:1.45;}
.ann-body{overflow:auto;flex:1;padding-right:4px;-webkit-overflow-scrolling:touch;}
.ann-body p{font-size:13px;line-height:1.7;color:#333;margin:0 0 10px;text-align:justify;}
.ann-body p.ah{font-weight:800;color:var(--red-deep);margin-top:4px;}
