/* 设计精修（2026-10-30）：首屏节奏、阅读层级、移动端收口。
   低特异性覆盖层，只调整排版与间距，不改信息层级、路由、数据与交互。
   加载顺序：页面自有样式 -> constructivism.css -> 本文件 -> glass.css。 */

/* 1. 全局阅读 */
:is(h1, h2, h3) { text-wrap: balance; }
:is(p, li, dd, figcaption) { text-wrap: pretty; }
:is(.hero-description, .collection-hero__copy > p:last-child, .directory-heading > p,
  .section-heading > p, .ds-deck, .hub-intro, .aw-intro .ds-deck) {
  line-height: 1.9;
}
:is(.eyebrow, .kicker, .ds-kicker) { font-size: 12px; letter-spacing: .1em; }
:is(.directory-meta, .directory-label, .collection-summary p, .collection-summary > span,
  .game-filter-status, .gcard-meta small, .section-note) { font-size: 13px; }
:is(.site-footer, .disclaimer) { font-size: 12.5px; line-height: 1.85; }
:is(.site-footer, footer) { border-top: 2px solid var(--ink); }
:is(.site-footer, .disclaimer) a { text-underline-offset: 4px; }

/* 2. 门户：首屏更紧，数据条更轻 */
.hero { padding-top: clamp(36px, 4.6vw, 54px); padding-bottom: 24px; }
.hero-description { margin-bottom: 24px; }
.hero-actions .button { min-height: 48px; }
.hero-guide { margin-top: 26px; }
.facts { margin-top: 10px; }
.facts > div { padding-block: 20px; }
.facts strong { font-size: clamp(32px, 3vw, 36px); }
.facts p { font-size: 12.5px; }
.section { padding-top: clamp(58px, 6.4vw, 76px); }
.section-heading { margin-bottom: 26px; }
.section-heading h2 { font-size: clamp(28px, 2.6vw, 32px); }
.feedback-banner { margin-top: 56px; }
.portal-closing { padding-block: clamp(44px, 5vw, 60px); }
.portal-closing p { font-size: clamp(32px, 3.6vw, 42px); }

/* 3. 游戏目录：压缩首屏前置内容，让第一张主游戏卡更早进入视野 */
.games-directory .collection-hero {
  padding-top: clamp(26px, 4vw, 40px);
  padding-bottom: 22px;
  gap: 32px;
  align-items: center;
}
.collection-hero__copy { max-width: 680px; }
.collection-hero h1 { font-size: clamp(32px, 3.8vw, 46px); margin: 8px 0 12px; }
.collection-summary strong { font-size: 46px; }
.collection-summary p { margin: 6px 0; }
.game-jump a { min-height: 48px; padding: 8px 16px 8px 0; font-size: 13.5px; }
.game-filter-wrap { padding-top: 14px; padding-bottom: 2px; }
.game-filter { gap: 6px; }
.game-filter button { min-height: 44px; padding: 7px 12px; }
.game-filter-status { margin-top: 7px; }
.game-collection { padding-top: 22px; }
.collection-heading { margin-bottom: 16px; }
.game-collection .gcover img { height: 172px; }
.game-collection .gcard { padding: 20px; }
.game-grid { column-gap: 30px; }

/* 4. 测评目录：首屏右侧补内容规模，平衡标题区留白 */
.assessment-directory { padding-top: 36px; }
.assessment-directory .directory-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 4px 40px;
  max-width: none;
  padding-bottom: 26px;
  margin-bottom: 30px;
  border-bottom: 1px solid var(--line);
}
.directory-heading .eyebrow { grid-column: 1; }
.directory-heading h1 { grid-column: 1; margin-bottom: 10px; font-size: clamp(36px, 4vw, 48px); }
.directory-heading > p:not(.eyebrow):not(.directory-stamp) { grid-column: 1; margin: 0; max-width: 42em; }
.directory-stamp {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: end;
  min-width: 210px;
  padding-left: 18px;
  border-left: 4px solid var(--clay, #b65439);
}
.directory-stamp b { display: block; font-size: 30px; line-height: 1.15; }
.directory-stamp span { display: block; margin-top: 6px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.assessment-directory .assessment-grid { gap: 24px 28px; }
.assessment-directory .assessment-entry { padding: 22px 0; }
.assessment-directory .assessment-entry h3 { font-size: 24px; line-height: 1.45; }
.assessment-directory .assessment-entry > a { font-weight: 800; }

/* 5. 校园反诈测评（严肃层）：导航收成一条，首屏更安静 */
.awareness-page .site-nav { min-height: 72px; padding-block: 12px; gap: 18px; flex-wrap: wrap; }
.awareness-page .brand { font-size: 24px; }
.awareness-page .aw-nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 2px 18px;
  margin-left: auto;
}
.awareness-page .aw-nav-links a { min-height: 44px; font-size: 13px; color: var(--muted); text-underline-offset: 4px; }
.awareness-page .aw-nav-links a:hover { color: var(--ink); }
.aw-intro { gap: 30px 44px; }
.aw-intro h1 { max-width: 13em; font-size: clamp(38px, 4.6vw, 54px); line-height: 1.18; margin-bottom: 18px; }
.aw-intro .ds-deck { max-width: 33em; font-size: 15.5px; }
.aw-facts { gap: 16px 22px; margin: 22px 0; }
.aw-facts dt { font-size: 26px; }
.aw-facts dd { font-size: 13px; line-height: 1.7; }
.aw-intro .ds-button { min-height: 50px; padding: 12px 22px; font-size: 15px; }
.aw-private { font-size: 13px; }
.aw-cover figcaption { font-size: 12px; }
.aw-topic-line span { font-size: 13px; padding-block: 12px; }

/* 6. 安全屋：首屏层级更集中 */
.hub-header { margin-bottom: 22px; }
.hub-header h1 { margin: 8px 0 10px; font-size: clamp(30px, 3.4vw, 44px); }
.hub-header .hub-intro { font-size: 14.5px; }
.hub-shortcuts { gap: 6px; }
.hub-first { gap: 18px; }
.learn-card { padding: 22px; }
.hub-task { border-top-width: 3px; }
.learn-primary { min-height: 48px; font-size: 15px; }
.hub-scene .room-stage { height: 380px; }
.hub-shortcuts__links a { font-size: 13.5px; }
.hub-learning .hub-links a { min-height: 46px; }

/* 7. 移动端：按钮、导航、筛选与卡片密度 */
@media (max-width: 520px) {
  .hero { grid-template-columns: 1fr; gap: 16px; }
  .hero-actions { display: grid; grid-template-columns: 1fr; gap: 10px; }
  .hero-actions .button { width: 100%; max-width: none; justify-content: space-between; }
  .hero-guide { margin-top: 18px; }
  .facts > div { padding: 16px 14px; }
  .facts strong { font-size: 30px; }
  .section { padding-top: 52px; }
  .portal-closing { padding-block: 40px; }
  .portal-closing p { font-size: 30px; }
}

@media (max-width: 600px) {
  .games-directory .collection-hero { padding-top: 24px; gap: 16px; }
  .collection-hero h1 { font-size: 32px; }
  .collection-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 2px 12px;
    padding: 10px 0 2px;
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .collection-summary strong { grid-row: 1 / span 2; font-size: 34px; }
  .collection-summary p { margin: 0; line-height: 1.55; }
  .collection-summary > span { display: none; }
  .game-jump { display: flex; flex-wrap: wrap; }
  .game-jump a { min-height: 46px; }
  .game-jump .game-jump__records { flex-basis: 100%; margin-left: 0; border-top: 1px solid var(--line); }
  .game-filter { flex-wrap: wrap; gap: 6px; }
  .game-filter button { min-height: 44px; }
  .game-filter-status { margin-top: 5px; }
  .game-collection { padding-top: 18px; }
  .game-collection .gcover img { height: 150px; }
  .game-collection .gcard { padding: 16px; }
  .collection-heading { gap: 8px; margin-bottom: 14px; }
}

@media (max-width: 800px) {
  .assessment-directory .directory-heading {
    display: block;
    padding-bottom: 20px;
    margin-bottom: 24px;
  }
  .directory-stamp {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: 16px;
    padding: 12px 0 0;
    border-left: 0;
    border-top: 1px solid var(--line);
  }
  .directory-stamp b { font-size: 22px; }
  .directory-stamp span { margin: 0; }
  .assessment-directory .assessment-grid { gap: 8px; }
  .assessment-directory .assessment-entry h3 { font-size: 22px; }
}

@media (max-width: 760px) {
  .awareness-page .site-nav { min-height: 60px; padding-block: 10px; gap: 6px 14px; }
  .awareness-page .aw-nav-links {
    width: 100%;
    justify-content: flex-start;
    gap: 0 16px;
    margin-left: 0;
    padding-top: 4px;
    border-top: 1px solid var(--line);
  }
  .awareness-page .aw-nav-links a { font-size: 12.5px; }
  .aw-intro { gap: 18px; padding-top: 4px; }
  .aw-intro h1 { max-width: none; font-size: clamp(30px, 9vw, 37px); line-height: 1.2; }
  .aw-intro .ds-deck { font-size: 15px; }
  .aw-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 10px; }
  .aw-facts div { padding-right: 10px; }
  .aw-facts dt { font-size: 24px; }
  .aw-facts dd { font-size: 12.5px; }
  .aw-intro .ds-button { width: 100%; }
  .aw-private { font-size: 13px; line-height: 1.9; }
  .aw-topic-line span { flex: 1 1 45%; font-size: 12.5px; }
}

@media (max-width: 600px) {
  .learning-hub { padding: 20px 16px; }
  .hub-header { margin-bottom: 18px; }
  .hub-header h1 { font-size: 30px; }
  .learn-card { padding: 18px; }
  .learn-primary { font-size: 15px; }
  .hub-scene .room-stage { height: 300px; }
  .hub-task > .learn-primary { width: 100%; }
}

