/* 官网资料与长文：与夜港首页共用品牌、颜色和导航，正文保持安静易读。 */
.site-document .nav.solid { border-bottom: 1px solid var(--line); background: var(--night); }
.site-document .page-heading { padding-block: clamp(44px, 6vw, 76px) 40px; }
.site-document .page-eyebrow { margin: 0 0 14px; color: var(--muted); font-size: 13px; letter-spacing: .08em; }
.site-document .page-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 36px; border-bottom: 1px solid var(--line); }
.site-document h1 { margin: 0; font-size: clamp(32px, 4.2vw, 54px); font-weight: 600; line-height: 1.2; letter-spacing: -.035em; overflow-wrap: anywhere; }
.site-document .back-link { flex: none; color: var(--muted); font-size: 14px; text-decoration-thickness: 1px; }
.site-document h2 { margin: 0 0 20px; color: var(--light); font-size: 25px; font-weight: 600; line-height: 1.4; letter-spacing: -.02em; }
.site-document h3 { color: var(--light); font-size: 19px; font-weight: 600; line-height: 1.5; letter-spacing: 0; }
.site-document p, .site-document li { text-wrap: pretty; }
.site-document a { text-decoration-color: #718f7e; overflow-wrap: anywhere; }
.site-document a:hover { color: #fff9e8; text-decoration-color: currentColor; }

/* 媒体：下载不藏在正文之后；文件格式和体积保持独立。 */
.site-press .press-page { padding-block: 0 100px; }
.site-press .press-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); grid-template-areas: "facts downloads" "facts text"; gap: 48px clamp(40px, 6vw, 88px); }
.site-press .press-facts { grid-area: facts; min-width: 0; }
.site-press .press-downloads { grid-area: downloads; min-width: 0; }
.site-press .press-text { grid-area: text; min-width: 0; }
.site-press .press-facts dl { margin: 0; }
.site-press .press-facts .row { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); }
.site-press .press-facts .row:first-child { padding-top: 0; }
.site-press .row dt { margin: 0 0 4px; color: #a1baad; font-size: 13px; letter-spacing: 0; white-space: normal; }
.site-press .row dd { width: auto; max-width: none; margin: 0; color: #e1e9e2; font-size: 15px; font-weight: 400; line-height: 1.7; text-align: left; overflow-wrap: anywhere; }
.site-press .row .pending { color: var(--muted); }
.site-press .downloads { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
.site-press .downloads li { border-top: 1px solid var(--line); }
.site-press .downloads a { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; padding: 22px 16px; color: var(--light); font-size: 17px; font-weight: 500; line-height: 1.6; text-decoration: none; border-radius: 6px; transition: background .15s; }
.site-press .downloads a:hover { background: var(--night-soft); }
.site-press .downloads span { min-width: 0; }
.site-press .downloads small { flex: none; color: var(--muted); font-size: 13px; font-weight: 400; white-space: nowrap; }
.site-press .press-text section { margin: 0 0 48px; }
.site-press .press-text section:last-child { margin: 0; }
.site-press .press-text h3 { margin: 28px 0 10px; }
.site-press .press-text p { margin: 0 0 18px; color: #c6d5cb; line-height: 1.85; }
.site-press .press-text ul { margin: 0 0 20px; padding-left: 1.3em; color: #c6d5cb; }
.site-press .press-text li { margin-bottom: 8px; }

/* 隐私：目录取自原文标题，不改政策内容；控制行长，避免整屏横排。 */
.site-privacy .doc-layout { display: grid; grid-template-columns: minmax(160px, 220px) minmax(0, 760px); align-items: start; justify-content: space-between; gap: clamp(40px, 6vw, 88px); padding-bottom: 100px; }
.site-privacy .doc-toc { position: sticky; top: 32px; min-width: 0; }
.site-privacy .doc-toc ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.site-privacy .doc-toc a { display: block; padding: 9px 0; color: var(--muted); font-size: 15px; line-height: 1.5; text-decoration: none; }
.site-privacy .doc-toc a:hover { color: var(--light); text-decoration: underline; }
.site-privacy .doc { max-width: none; min-width: 0; width: 100%; margin: 0; color: #d5e1d8; line-height: 1.9; }
.site-privacy .doc > p:first-child { margin: 0 0 22px; color: var(--muted); font-size: 14px; }
.site-privacy .doc p { margin: 0 0 20px; }
.site-privacy .doc h2 { margin: 44px 0 18px; padding: 0; border: 0; scroll-margin-top: 32px; }
.site-privacy .doc h3 { margin: 26px 0 12px; padding: 0; border: 0; }
.site-privacy .doc ul { margin: 0 0 24px; padding-left: 1.3em; }
.site-privacy .doc li { margin-bottom: 12px; }
.site-privacy .doc h2:first-of-type + ul { padding: 22px 24px 14px 42px; border-left: 2px solid #789882; border-radius: 0 8px 8px 0; background: var(--night-soft); }


/* 申请沙盒测试：表单为主栏，流程、社群、隐私说明为侧栏；输入框沿用夜港深底与奶油字，提交按钮与首页入口同款。 */
.site-sandbox .sandbox-page { padding-block: 0 100px; }
.site-sandbox .sandbox-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); align-items: start; gap: 48px clamp(40px, 6vw, 88px); }
.site-sandbox .sandbox-main, .site-sandbox .sandbox-side { min-width: 0; }
.site-sandbox .sandbox-lead { margin: 0 0 32px; color: #e1e9e2; font-size: 19px; line-height: 1.8; }
.site-sandbox .signup { display: grid; gap: 24px; }
.site-sandbox .field { display: grid; gap: 10px; min-width: 0; }
.site-sandbox .field label { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px; color: var(--light); font-size: 15px; font-weight: 500; line-height: 1.5; }
.site-sandbox .field-tag { color: var(--muted); font-size: 13px; font-weight: 400; }
.site-sandbox .field-tag.req { color: #e7ce8c; }
.site-sandbox input[type="email"], .site-sandbox input[type="text"] { width: 100%; min-height: 54px; padding: 12px 16px; color: var(--light); background: var(--night-soft); border: 1px solid #355046; border-radius: 8px; font: inherit; font-size: 17px; line-height: 1.4; transition: border-color .15s, background .15s; }
.site-sandbox option { color: var(--light); background: #102e28; }
.site-sandbox input::placeholder { color: #7f9a8c; }
.site-sandbox input:hover { border-color: #4f6f61; }
.site-sandbox input:focus { border-color: #e7ce8c; background: #0e302a; outline: none; }
.site-sandbox .consent { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 14px; color: #d5e1d8; font-size: 15px; line-height: 1.7; cursor: pointer; }
.site-sandbox .consent input { width: 22px; height: 22px; margin: 2px 0 0; accent-color: #e7ce8c; cursor: pointer; }
.site-sandbox .consent a { color: var(--light); }
.site-sandbox .submit { justify-self: start; display: inline-flex; align-items: center; justify-content: center; min-width: 260px; min-height: 62px; margin-top: 4px; padding: 15px 32px; color: #0a2925; background: var(--light); border: 1px solid var(--light); border-radius: 12px; font: inherit; font-size: 18px; font-weight: 600; line-height: 1.4; cursor: pointer; transition: background .18s, transform .18s; }
.site-sandbox .submit:hover { background: #fff5d8; transform: translateY(-1px); }
.site-sandbox .submit:disabled { cursor: progress; opacity: .7; transform: none; }
/* 蜜罐：真人看不见也摸不到，机器人照填 */
.site-sandbox .hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* 提示：无脚本时靠 :target（收件口 303 回 #sent／#error-码），有脚本时靠 .shown */
.site-sandbox .notice { display: none; margin: 0; padding: 18px 22px; border-left: 2px solid #e7ce8c; border-radius: 0 8px 8px 0; background: var(--night-soft); color: #e1e9e2; line-height: 1.7; scroll-margin-top: 32px; }
.site-sandbox .notice:target, .site-sandbox .notice.shown { display: block; }
.site-sandbox .notice:focus { outline: none; }
.site-sandbox .notice-error { border-left-color: #e59a7f; color: #f6d9cd; }
.site-sandbox .notice-error a { color: inherit; }
.site-sandbox .notice-sent h2 { margin: 0 0 8px; font-size: 22px; }
.site-sandbox .notice-sent p { margin: 0; }
.site-sandbox .sandbox-main:has(#sent:target) .signup, .site-sandbox .sandbox-main.done .signup { display: none; }

.site-sandbox .sandbox-side section { padding: 0 0 32px; margin: 0 0 32px; border-bottom: 1px solid var(--line); }
.site-sandbox .sandbox-side section:last-child { margin: 0; border: 0; }
.site-sandbox .sandbox-side h2 { margin: 0 0 16px; font-size: 21px; }
.site-sandbox .sandbox-side p { margin: 0 0 12px; color: #c6d5cb; font-size: 15px; line-height: 1.8; }
.site-sandbox .community { display: grid; gap: 10px; margin-top: 16px; }
.site-sandbox .community-link { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 16px; min-height: 64px; padding: 14px 18px; color: var(--light); border: 1px solid #355046; border-radius: 8px; font-size: 16px; font-weight: 500; text-decoration: none; transition: background .15s, border-color .15s; }
.site-sandbox a.community-link:hover { background: var(--night-soft); border-color: #4f6f61; color: #fff9e8; }
.site-sandbox .community-link small { color: var(--muted); font-size: 13px; font-weight: 400; overflow-wrap: anywhere; }
.site-sandbox .community-link .qq-number { color: var(--light); font-size: 15px; font-variant-numeric: tabular-nums; user-select: all; }
.site-sandbox .community-link.pending { border-style: dashed; }
.site-sandbox .qq-dialog { width: min(360px, calc(100vw - 32px)); padding: 28px 24px 22px; color: var(--light); background: var(--night); border: 1px solid #4f6f61; border-radius: 12px; text-align: center; }
.site-sandbox .qq-dialog::backdrop { background: rgb(3 14 13 / .72); }
.site-sandbox .qq-dialog h2 { margin: 0 0 16px; font-size: 20px; }
.site-sandbox .qq-dialog img { display: block; width: 100%; max-width: 280px; height: auto; margin: 0 auto; border-radius: 10px; border: 2px solid var(--gold); }
.site-sandbox .qq-dialog .qq-scan { margin: 14px 0 4px; color: var(--muted); font-size: 14px; }
.site-sandbox .qq-dialog .qq-number { margin: 0; font-size: 16px; font-variant-numeric: tabular-nums; user-select: all; }
.site-sandbox .qq-actions { display: flex; gap: 10px; justify-content: center; margin-top: 18px; }
.site-sandbox .qq-actions a, .site-sandbox .qq-actions button { flex: 1; min-height: 44px; padding: 10px 14px; border-radius: 8px; font: inherit; font-size: 15px; cursor: pointer; text-decoration: none; }
.site-sandbox .qq-open { color: #0a2925; background: var(--light); border: 1px solid var(--light); font-weight: 600; display: inline-flex; align-items: center; justify-content: center; }
.site-sandbox .qq-close { color: var(--light); background: transparent; border: 1px solid #4f6f61; }

@media (max-width: 900px) {
  .site-sandbox .sandbox-grid { grid-template-columns: 1fr; gap: 56px; }
  .site-press .press-grid { grid-template-columns: 1fr; grid-template-areas: "downloads" "facts" "text"; gap: 40px; }
  .site-press .press-facts dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
  .site-press .press-facts .row:first-child { padding-top: 14px; }
  .site-privacy .doc-layout { grid-template-columns: 1fr; gap: 32px; }
  .site-privacy .doc-toc { position: static; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
  .site-privacy .doc-toc ul { display: flex; flex-wrap: wrap; gap: 2px 24px; }
  .site-privacy .doc-toc a { min-height: 44px; }
}
@media (max-width: 720px) {
  .site-sandbox .sandbox-page { padding-bottom: 64px; }
  .site-sandbox .sandbox-lead { font-size: 17px; }
  .site-sandbox .submit { justify-self: stretch; min-width: 0; }
  .site-document .wrap { padding-inline: 24px; }
  .site-document .page-heading { padding-block: 36px 28px; }
  .site-document .page-heading-row { align-items: flex-start; flex-direction: column; gap: 20px; padding-bottom: 28px; }
  .site-document .page-eyebrow { font-size: 11px; }
  .site-document h1 { font-size: 34px; }
  .site-document h2 { font-size: 23px; }
  .site-document .back-link { display: inline-flex; align-items: center; min-height: 44px; }
  .site-press .press-page, .site-privacy .doc-layout { padding-bottom: 64px; }
  .site-press .downloads a { align-items: flex-start; flex-direction: column; gap: 8px; padding: 18px 0; font-size: 16px; }
  .site-press .press-facts dl { grid-template-columns: 1fr; }
  .site-press .press-facts .row { display: grid; grid-template-columns: minmax(70px, 1fr) minmax(0, 2.5fr); align-items: start; gap: 20px; }
  .site-press .row dt { margin: 0; }
  .site-press .row dd { font-size: 14px; }
  .site-press .press-text p, .site-press .press-text li { font-size: 16px; }
  .site-privacy .doc { font-size: 16px; }
  .site-privacy .doc h2:first-of-type + ul { padding: 18px 18px 10px 36px; }
}
@media (prefers-reduced-motion: reduce) { .site-press .downloads a, .site-sandbox .submit, .site-sandbox .community-link, .site-sandbox input { transition: none; } .site-sandbox .submit:hover { transform: none; } }

/* 公告（所有者 11-02 晚：游戏标题页「公告」的官网版）：左侧目录、右侧逐条；最新一条加一道金边，社群一节放 Discord 与 QQ 群（简中）。 */
.site-news .news-page { display: grid; grid-template-columns: minmax(160px, 240px) minmax(0, 760px); align-items: start; justify-content: space-between; gap: clamp(40px, 6vw, 88px); padding-bottom: 100px; }
.site-news .doc-toc { position: sticky; top: 32px; min-width: 0; }
.site-news .doc-toc ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.site-news .doc-toc a { display: block; padding: 9px 0; color: var(--muted); font-size: 15px; line-height: 1.5; text-decoration: none; }
.site-news .doc-toc a:hover { color: var(--light); text-decoration: underline; }
.site-news .doc-toc time { display: block; font-size: 12px; letter-spacing: .04em; }
.site-news .news-list { min-width: 0; color: #d5e1d8; line-height: 1.85; }
.site-news .news-item { margin: 0 0 40px; padding: 0 0 32px; border-bottom: 1px solid var(--line); scroll-margin-top: 32px; }
.site-news .news-item.latest { padding: 28px 28px 20px; border: 1px solid #4f6f61; border-left: 3px solid var(--gold); border-radius: 0 8px 8px 0; background: var(--night-soft); }
.site-news .news-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 0 0 12px; color: var(--muted); font-size: 14px; }
.site-news .news-kind, .site-news .news-latest { padding: 1px 10px; border: 1px solid #789882; border-radius: 4px; font-size: 13px; }
.site-news .news-notice { border-color: #c98a7a; color: #f0c3b6; }
.site-news .news-latest { border-color: var(--gold); color: #e7ce8c; }
.site-news .news-lede { margin: 0 0 14px; color: #c6d5cb; }
.site-news .news-item ul { margin: 0; padding-left: 1.3em; }
.site-news .news-item li { margin-bottom: 8px; }
.site-news .news-community { scroll-margin-top: 32px; }
.site-news .community { display: grid; gap: 10px; margin-top: 16px; }
.site-news .community-link { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 4px 16px; min-height: 64px; padding: 14px 18px; color: var(--light); border: 1px solid #355046; border-radius: 8px; font-size: 16px; font-weight: 500; text-decoration: none; }
.site-news a.community-link:hover { background: var(--night-soft); border-color: #4f6f61; color: #fff9e8; }
.site-news .community-link small { color: var(--muted); font-size: 13px; font-weight: 400; overflow-wrap: anywhere; }
.site-news .news-qq { margin-top: 28px; scroll-margin-top: 32px; }
.site-news .news-qq img { display: block; width: 200px; height: auto; margin: 0 0 10px; border-radius: 10px; border: 2px solid var(--gold); }
.site-news .qq-scan { margin: 0; color: var(--muted); font-size: 14px; }
.site-news .qq-number { margin: 4px 0 14px; font-size: 16px; font-variant-numeric: tabular-nums; user-select: all; }
@media (max-width: 900px) { .site-news .news-page { grid-template-columns: 1fr; } .site-news .doc-toc { position: static; } }
@media (max-width: 720px) { .site-news .news-page { padding-bottom: 64px; } .site-news .news-item.latest { padding: 20px 18px 14px; } .site-news .news-list { font-size: 16px; } }
