/* ==================================================
   全站共享顶栏

   为什么存在：顶栏原本有三套实现 —— 首页页内私有 CSS、关于页 ak-about.css 里一份副本、
   功能站三页用 style.css 的 .navbar（sticky 73px / 另一套 token）。同一个站的三种顶栏。

   统一的做法是"抽走重复、保留差异"：所有可能影响观感的数值都开成变量，
   由各页自己已有的 token 供值，所以首页与关于页的**计算样式逐项不变**
   （改前/改后用无头 Chrome 逐字段比对过，见仓库会话记录）。

   三个变量：
     --nav-h   顶栏高度          首页/关于页 64px；功能站三页也收敛到 64px（这是有意的统一）
     --nav-z   顶栏层级          首页 10、关于页 20、功能站 100 —— 各页保持原值。
                                 不能图省事统一：关于页的 .ak-overlay 是 z-50，
                                 它必须继续盖在顶栏之上（开机揭幕层），统一层级会把它顶掉。
     --nav-bg  顶栏底色          各页 :root 已有
     --nav-line 顶栏下边线       回退到各页已有的 --line / --border

   注意 .nav-actions（账号 / 更多下拉）仍由 style.css 负责：那是功能站特有的控件组，
   首页与关于页没有，不该塞进共享文件。
   ================================================== */

.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;

  height: var(--nav-h, 64px);
  z-index: var(--nav-z, 20);

  background: var(--nav-bg, rgba(17, 17, 19, 0.42));

  -webkit-backdrop-filter: blur(16px) saturate(1.4);
          backdrop-filter: blur(16px) saturate(1.4);

  border-bottom: 1px solid var(--nav-line, var(--line, rgba(255, 255, 255, 0.07)));

  transition: background-color 0.35s ease;
}

.nav .nav-inner {
  max-width: 1280px;
  height: 100%;
  margin: 0 auto;
  padding: 0 32px;

  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav .logo {
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.32em;
  /* 字体钉死成主站首页那套：蛋页 body 继承的是 style.css 的系统字体栈，
     不钉的话同一个 "FREEGG" 在两种页面渲染出来不一样（用户实测对比过） */
  font-family: Inter, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;

  color: var(--nav-fg, var(--text, #f5f5f4));
  text-decoration: none;
}

.nav .links {
  display: flex;
  gap: 36px;
}

.nav .links a {
  font-size: 14px;

  color: var(--nav-muted, var(--muted, #8b8b93));
  text-decoration: none;

  transition: color 0.2s;
}

.nav .links a.active,
.nav .links a:hover {
  color: var(--nav-fg, var(--text, #f5f5f4));
}

/* 主题开关：CSS 画的蛋，不用图片也不用 SVG（与 0c586dd 那次统一后的首页一致）。
   作用域同时覆盖 .nav（功能站/首页）与 .navbar（管理后台的老顶栏）——
   之前只在 .nav 上，后台的蛋一直是裸按钮黑块 */
.nav .egg-btn,
.navbar .egg-btn {
  width: 26px;
  height: 34px;
  padding: 0;

  background: #26262c;                /* 深色主题：深色蛋体（默认） */
  border: none;
  border-radius: 50% 50% 50% 50% / 58% 58% 42% 42%;

  cursor: pointer;

  box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.22), 0 1px 6px rgba(0, 0, 0, 0.45);

  transition: box-shadow 0.35s ease, background-color 0.35s ease;
}

/* 亮色档要同时兼容站内两套主题写法：
   首页/关于页永远显式写 data-theme="light"|"dark"（:root 是深色）；
   功能站三页是「深色才写 data-theme="dark"，亮色把属性摘掉」（theme.js:57），
   只写 [data-theme="light"] 的话，功能站的蛋在亮色下会一直是深色。 */
html[data-theme="light"] .nav .egg-btn,
html:not([data-theme]) .nav .egg-btn,
html[data-theme="light"] .navbar .egg-btn,
html:not([data-theme]) .navbar .egg-btn {
  background: #fff;                   /* 浅色主题：白色蛋体 */
  box-shadow: inset 0 0 0 1.5px rgba(0, 0, 0, 0.18), 0 1px 4px rgba(0, 0, 0, 0.12);
}

/* 中英切换：功能站三页独有（首页/关于页没有语言切换），与蛋形按钮并排，
   所以按蛋的尺度收 —— style.css 里那条裸 .lang-toggle 是 40×46 的老顶栏尺寸，压不住它要靠层级 */
.nav .lang-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 34px;
  height: 26px;
  padding: 0 9px;

  background: transparent;
  border: 1px solid var(--nav-line, var(--line, rgba(255, 255, 255, 0.07)));
  border-radius: 999px;

  color: var(--nav-muted, var(--muted, #8b8b93));

  font-family: inherit;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  line-height: 1;

  cursor: pointer;

  transition: color 0.2s ease, border-color 0.2s ease;
}

.nav .lang-toggle:hover {
  color: var(--nav-fg, var(--text, #f5f5f4));
  border-color: var(--nav-fg, var(--text, #f5f5f4));
}

.nav .nav-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* 点一下蛋会摇一下：theme.js:70 每次切换都给按钮加 .wobbling。
   关键帧沿用 style.css 里的 @keyframes egg-wobble（语言按钮的 anim-wobble 也在用它），
   这里不重复定义 —— 首页/关于页没引 style.css，取不到关键帧就不摇，与改动前一致。 */
.nav .egg-btn.wobbling,
.navbar .egg-btn.wobbling {
  animation: egg-wobble 0.55s ease;
}

@media (max-width: 900px) {
  .nav .nav-inner { padding: 0 20px; }
}

/* 窄屏：链接不换行（否则"关于本站"会一字一行竖着挤在顶栏）、
   收紧间距、用户名只留头像 */
@media (max-width: 700px) {
  .nav .nav-inner { padding: 0 14px; }

  .nav .links {
    gap: 14px;
    min-width: 0;
  }

  .nav .links a {
    white-space: nowrap;
    font-size: 13px;
  }

  .nav .account-btn .account-btn-label { display: none; }

  .nav .account-btn { padding: 0 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .nav,
  .nav .egg-btn,
  .nav .links a {
    transition: none;
  }
}


/* ==================================================
   全站共享页脚

   为什么存在：八页各有三种页脚写法 —— 首页 .site-foot 三个 <p>、
   关于页 .ak-foot 是固定底栏（还挂着 SEC 读数与粒子提示）、
   功能站与协议页用 style.css 的裸 footer。备案信息与版权行各处一份，改一次要改八处。

   这里统一「法律信息块」的内容与视觉，8 个页面共用同一段 HTML，压成一行、· 分隔。
   关于页是例外：它的 .ak-foot 是固定底栏，还挂着 SEC 读数与粒子提示，
   保留自己的外壳；备案行内容与这里一致，素材声明它没有（角色不在那页出现）。

   素材声明那一行是合规落点：grok-egg 的几何数据抽自 Grok Bot.app，版权归 xAI，
   上游仓库没有任何 LICENSE 文件，本站以「个人建站学习项目」定位使用、不做商用。
   详见仓库根目录 grok-egg-同步说明.md。
   ================================================== */

/* 压成一行，与【关于本站】底栏那条同构：等宽小字 + · 分隔 + 半透明毛玻璃底 + 上边框。
   字号没有跟到关于页的 9.5px：那是单行装饰，这里是长期要读、也要给审核看的备案信息，
   12px 才守得住 4.5:1。
   display: block 是必需的：style.css 有条裸 footer{display:flex;justify-content:space-between}，
   不覆盖掉行内元素会被当成 flex 项目摊开。 */
.site-foot {
  display: block;

  /* 底与上边框要满宽（关于页那条就是满宽的），文字仍限在 1216 里 ——
     所以不用 max-width + margin:auto（那会把底色也收成 1216），改成用左右内边距夹。
     百分比内边距相对父栏宽度算，比 100vw 稳（后者含滚动条宽）。
     max-width 要显式清掉：style.css 有条裸 footer{max-width:1100px}，
     不覆盖就会让引了 style.css 的六页与首页/关于页差一档。 */
  max-width: none;
  padding: 20px max(32px, calc((100% - 1216px) / 2)) 24px;

  background: var(--nav-bg, rgba(17, 17, 19, 0.42));
  -webkit-backdrop-filter: blur(10px) saturate(1.3);
          backdrop-filter: blur(10px) saturate(1.3);

  border-top: 1px solid var(--nav-line, var(--line, var(--border)));

  font-family: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas,
    "Liberation Mono", "PingFang SC", "Microsoft YaHei", monospace;
  font-size: 12px;
  line-height: 1.9;
  letter-spacing: 0.03em;

  color: var(--nav-muted, var(--muted, #8b8b93));
}

/* 文档页的 <style> 里有裸 p{font-size:14px} 之类，会盖掉从 .site-foot 继承来的 12px，
   同一行字在不同页就变成 14/12 两档 —— 显式继承回来 */
.site-foot p {
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  letter-spacing: inherit;
}

.site-foot a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s;
}

.site-foot a:hover { color: var(--nav-fg, var(--text, var(--fg))); }

.site-foot .foot-sep {
  margin: 0 10px;
  color: var(--nav-muted, var(--muted-3, #8a8a8a));
}

/* 公安备案徽标用官方图标（原先 style.css 里有一份同内容的，重复的 base64 已删）。
   行内块 + vertical-align，不用 inline-flex（会把基线压低、行高不齐）。
   限定在 .site-foot 内：关于页的固定底栏是 9.5px 等宽小字，16px 徽标会让那一行抬高 5px、
   把底栏撑到 73px，所以它维持自己无徽标的样子。 */
.site-foot .beian-record { color: inherit; }

.site-foot .beian-record::before {
  content: '';

  display: inline-block;
  width: 15px;
  height: 16px;
  margin-right: 5px;
  vertical-align: -3px;

  background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAYAAACWwljjAAAFQklEQVRYw+3Wa1BUdRjH8SOpMeg4WhZGpDIxiaaTeUFgWrxE4AVRQJGlRRAVIV1JkbgMgQLi5AVBQSVLSp0xlEAUKBEEFZCrCstll8UV2AV2YbmoGCrYv31+R95UL5pmmtamZ+bz6rz5nvOc/5zDcX9jGLs/iTxuyvIlWYkRFeTHA2HVRFtzfhthTG5KuH96/vUgNlC4mMgyw1NJit/aAXLKazYje9xtIMZ/OZz50gW+9hcNkvoLEemEPbnrSP47QYwxQ5Ifv54RqzcXwFFvSyjaOhfavN8F7Y5ZcC/HH9JOB4LNa9Zw5YA76OZV8vIGMdZtSp7cDrtOnOavYiQhTAiPwi1AMtIQaqyngsxpBtw2GAGDKfaQmpUAa6xc4Vfp4UtEdzAMycsT9JQ1Tyctl/2eEkuTlYysF/rCUNxMqDEzgTqzSXBnpgnIHCzgjvEEuD52DLBr3rA1MAaWmNtB582wdtIljZ9G9D+IPU6aTxIPBjHCcXvg3CEh9K2fDLWvjIH6D6fwTIyheuwEqLUyhzLOALq8pkN+bgRw3HY4FBsMzxojZxP9DequLjAlQwVrbpIjhyIY4UYGQ/buhdBqPxlk3Gion2IMDQIz3kJe/ZS34I7uHkmD7VSQVgYDNyIAwsNCgfXGXoOBPjP9DKrOCAogA2etGTmTHAMcFwFZye7wS5QlVHGjoEw4A2qPCUBZ6AzNcQ5Q/YYRdO+YB1U3dsDwypLio4FJ3ECryIzWz6Cm3NgTRHN8HiPF6eHAGSbAdh8feFZkB7krzaHE9h2o85sDsiAbkIsXQMN+e2CtGyF0kzdwXCgU5++D/ouLQFV4OEU/g2Q/iNuIPNaKkQflAWBqexxGjhLDVUcL6IwSQN3SGVChe6FJg9dckCx6D1QBliDZLIAxo7eA8eyv4KE0BJqTrHkZvnL9DJKn+Twmt0NsGGHZy2Dn3kQYfsQ53Hh4/r4RNGz8AIpdzKEuaAF0RC2E57MmQgE3ATjuM/CPiANW7AqSfQJQ5vk362eQKmd3JrmXsoSRocpNIMnbB9zbceDIWUPmuHFQNMkISqa9DpUvNK6YDpW2s8DfwBK48WFQnhMCgzUBoLy0BrRVe5P0NWjPLdKUsJiR1tR1wGp8IeZwMgx/SrgRvjxuAziNcwLvyathLOcJHLflhRDYGRYFrNET2rJ5yvPLoas0tOj/oL8UpC4JHyTSU+6MNCS4gvKoAB5WiKG+MAQSg0WwLXQ/ZJ3xhao0FxB5hYCbUwAEfhEF3Td8QP2dAOQnPwFlxgrolUVq9TPoaX+ZB2nLc2Gk6awj1MU78HZZwJMid2Byb550JQwVO0NfxlJgdz14vWKeRAiK6DlQF28PLZdcoLNcBIO92bb6GTQ8Q/13RURT6tlH2gvXMlITLYD6uI+gp2ozdF0VQXumM6ivCqGvahM8kPiDItkeGo8tB025GFQ3xFrSr06zI3/4yde7oN7m0sWk5eKWDqK5JWJQvAHac9ygq3Adr9gTNNc3QG85rzPfHe5/7wDtPwuhp/Zz6CjyhaZzwi6ivfetHdH/oP77+3PJQOsuRnqkQdCa4wWqyx6gyecpL64GTaEX7ycXUJz4GJp1B4O0X/Hg0Xp1tFV+8Ei1k6c5coHofxBrrzQinbKYo0SVJ+wn6iurGHlY5gY911aDJnMFaHXXiDp9GQyvtKfUA9QFTtBZ7gPdit0tpFd9OpwwFmlA9D/o9yNLDpxIKmI8PMnNSNtviCLVpYTITzrXEGWaq4qos0WgOPdpCenIF+eRrurjB4k0PXopYZG6gMg/D/gNBUxhAbSAmKMAAAAASUVORK5CYII=") no-repeat center / contain;
}

/* 「素材来源」折叠规则已删除：素材声明从页脚搬进「帮助与反馈」页的「素材与许可」一节，
   首页 / 关于页 / 免费鸡蛋页的页脚都不再挂这条声明。 */


@media (max-width: 820px) {
  .site-foot { padding: 18px 20px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .site-foot a { transition: none; }
}



/* ==================================================
   功能站三页的固定底栏（.edge-foot）

   设计照【关于本站】的 .ak-foot：贴底、满宽、毛玻璃、三段式
   （左 SEC 读数 + 刻度 / 中等宽提示 / 右法律行 margin-left:auto）。

   为什么不干脆把 .ak-foot 抽成共享的一份：关于页那条依赖 body.is-revealed
   才淡入（ak-about.css:373-383），而且它右段本来就"无公安徽标、无素材声明"。
   抽成共享类要么把这些差异带进三页，要么反向污染关于页，
   回归风险比复制这 40 行静态规则大得多。所以关于页继续用自己的 .ak-foot。

   关于页那套用了 6 个 token（--pad-x / --line-soft / --accent / --mono / --ease / --line），
   实测 style.css 与 eggs.css 里一个都没定义 —— 全部在这一块内自带，
   高亮色用三页本来就有的 --egg-gold（不硬套关于页的紫 --accent）。
   ================================================== */

.edge-foot {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 10;

  /* 这两条是必需的：.edge-foot 是个 <footer> 元素，style.css 有条裸
     footer{max-width:1100px; justify-content:space-between}，
     不显式压掉，底栏会被限成 1100px 宽、三段还会被 space-between 拉开。 */
  max-width: none;
  justify-content: flex-start;

  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 36px;

  padding: 14px var(--edge-pad-x, 44px) 16px;

  border-top: 1px solid var(--edge-line, rgba(128, 128, 128, 0.18));
  background: var(--nav-bg, rgba(17, 17, 19, 0.42));
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);

  font-family: ui-monospace, SFMono-Regular, "JetBrains Mono", Menlo, Consolas,
    "Liberation Mono", "PingFang SC", "Microsoft YaHei", monospace;
  color: var(--nav-muted, var(--muted, #8b8b93));

  transition: background-color 0.35s ease;
}

.edge-foot-sec {
  display: flex;
  align-items: center;
  gap: 16px;

  font-size: 10.5px;
  letter-spacing: 0.24em;
}

.edge-ticks { display: flex; gap: 6px; }

.edge-ticks i {
  width: 20px;
  height: 2px;
  background: var(--edge-tick, rgba(128, 128, 128, 0.4));
  transition: background-color 0.3s;
}

.edge-ticks i.is-on { background: var(--egg-gold, #f0a24a); }

.edge-foot-hint {
  font-size: 9.5px;
  letter-spacing: 0.2em;
}

.edge-foot-legal {
  margin-left: auto;
  font-size: 9.5px;
  letter-spacing: 0.08em;
}

.edge-foot-legal a {
  color: inherit;
  text-decoration: none;
  transition: color 0.25s;
}

.edge-foot-legal a:hover { color: var(--nav-fg, var(--text, #f5f5f4)); }

/* 正文给固定底栏让位：三页各自的容器底部内边距取 max(原值, 底栏高 + 40) */
:root { --edge-foot-h: 50px; }

@media (max-width: 960px) {
  :root { --edge-foot-h: 74px; }   /* 提示行隐藏、法律行换行占满，条会变高 */

  .edge-foot { --edge-pad-x: 22px; }
  .edge-foot-hint { display: none; }
  .edge-foot-legal { margin-left: 0; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .edge-foot,
  .edge-foot-legal a,
  .edge-ticks i { transition: none; }
}
