/* portal.css —— 550v 对外介绍页（index.html）特有的样式
   单元样式一律来自 components.css（卡片 / 标题行 / 页脚 / 动效都在那边），这里只写这两页独有的东西。
   权威：本仓 site/portal.css；部署脚本把它和 tokens.css / components.css 一起拷进 web root。 */

.wrap{max-width:840px}
/* header 与第一张卡之间要留出层次：components 的 .stack 没有上边距 */
.stack{margin-top:calc(20px * var(--u))}

/* ── 介绍页：引言（定义句）与正文 ─────────────────────────────────────── */
.lede{margin:0 0 16px;padding:2px 0 2px 14px;border-left:2px solid var(--lime);
  font-size:16px;line-height:2;color:var(--text);letter-spacing:.2px}
.prose p{margin:0 0 12px;font-size:14px;line-height:2;color:var(--dim)}
.prose p:last-child{margin-bottom:0}
.prose b{color:var(--text);font-weight:600}
.prose a{color:var(--blue);text-decoration:none;border-bottom:1px dashed rgba(87,169,230,.45)}
.prose a:hover{border-bottom-color:var(--blue)}
.muted{font-size:12.5px !important;color:var(--dim2) !important}
p.muted{margin:14px 0 0;line-height:1.95}

/* 简介：定义句逐段解释（每条「词 —— 解释」，靠细线分隔） */
.expl{margin:18px 0 6px}
.expl p{margin:0;padding:11px 0;font-size:13.5px;line-height:1.95;color:var(--dim);
  border-top:1px solid var(--rule2)}
.expl p:first-child{border-top:0;padding-top:2px}
.expl b{color:var(--text);font-weight:600}

/* 简介里的定义表：左侧 mono 小标签，右侧一行说明 */
.defs{margin:18px 0 2px}
.def{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:baseline;
  padding:10px 0;border-top:1px solid var(--rule2)}
.def:first-child{border-top:0;padding-top:2px}
.def .k{font:11px var(--mono);color:var(--dim2);letter-spacing:1.5px}
.def .v{font-size:13.5px;line-height:1.9;color:var(--dim)}
.def .v b{color:var(--text)}

/* 落款那一句（由 … 提供主要支持） */
.credit{margin:20px 0 0;padding-top:14px;border-top:1px dashed var(--rule);
  font-size:12.5px;line-height:1.9;color:var(--dim2);letter-spacing:.2px}
.credit b{color:var(--lime);font-weight:600}

/* ── 构建者 ───────────────────────────────────────────────────────────── */
.who{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;
  padding-bottom:12px;border-bottom:1px solid var(--rule2);margin-bottom:16px}
.who .nm{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:.5px;color:var(--lime)}
.who .role{font:10.5px var(--mono);color:var(--dim2);letter-spacing:.8px}

/* ── 公开下载入口 ─────────────────────────────────────────────────────── */
.dl{display:grid;gap:16px;align-items:center}
.dl .t{font-size:15px;font-weight:600;color:var(--text)}
.dl .s{margin-top:7px;font-size:12.5px;line-height:1.9;color:var(--dim2)}
.btn{display:inline-flex;align-items:center;gap:9px;justify-self:start;
  padding:11px 20px;border-radius:999px;text-decoration:none;white-space:nowrap;
  font-size:13.5px;font-weight:600;letter-spacing:.5px;color:#0b1015;
  background:var(--lime);transition:transform .12s,box-shadow .2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(214,224,122,.28)}
:root[data-theme="light"] .btn{color:#fff}
:root[data-theme="light"] .btn:hover{box-shadow:0 6px 22px rgba(125,143,36,.35)}
.btn span{font-family:var(--mono);font-size:12px}

@media (min-width:680px){
  .dl{grid-template-columns:minmax(0,1fr) auto}
}

/* ── 右上角：主题切换按钮（与 .clock 并排）────────────────────────────── */
.hdr-right{display:flex;align-items:flex-start;gap:14px}
.theme{flex:none;width:32px;height:32px;border-radius:999px;cursor:pointer;
  border:1px solid var(--rule);background:var(--card);color:var(--dim);
  font:14px/1 var(--mono);display:inline-flex;align-items:center;justify-content:center;
  transition:color .12s,border-color .12s,background .12s}
.theme:hover{color:var(--text);border-color:var(--dim2)}
.theme:focus-visible{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(87,169,230,.18)}
:root[data-theme="light"] .theme{box-shadow:inset 0 1px 0 rgba(255,255,255,1),0 1px 2px rgba(28,36,49,.08)}
@media (max-width:679px){ .hdr-right{gap:10px} .theme{width:30px;height:30px} }

/* ── 正文里的外链（B 站 / 深度求索 / GitHub）：一致的下划线 + 悬停 ──────── */
.def .v a,.expl a{color:var(--blue);text-decoration:none;
  border-bottom:1px dashed rgba(87,169,230,.5)}
.def .v a:hover,.expl a:hover{border-bottom-color:var(--blue)}
.credit a{color:inherit;text-decoration:none;border-bottom:1px dashed currentColor;opacity:.92}
.credit a:hover{opacity:1}

/* ── 外链跳转前的提示框 ───────────────────────────────────────────────── */
.ext-warn{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(6,10,14,.62);backdrop-filter:blur(3px)}
.ext-warn[hidden]{display:none}
:root[data-theme="light"] .ext-warn{background:rgba(28,36,49,.34)}
.ext-box{width:100%;max-width:390px;background:var(--card);border-radius:14px;padding:20px 22px;
  box-shadow:inset 0 0 0 1px var(--rule),0 18px 50px rgba(0,0,0,.35)}
:root[data-theme="light"] .ext-box{box-shadow:inset 0 0 0 1px var(--rule),0 18px 45px rgba(28,36,49,.18)}
.ext-t{font-size:14px;font-weight:600;letter-spacing:.5px;color:var(--text)}
.ext-p{margin:9px 0 18px;font-size:12.5px;line-height:1.9;color:var(--dim)}
.ext-acts{display:flex;gap:10px;justify-content:flex-end}
.ext-acts button,.ext-acts a{font:12.5px/1 system-ui,sans-serif;padding:9px 17px;border-radius:999px;
  border:1px solid var(--rule);background:transparent;color:var(--dim);cursor:pointer;
  text-decoration:none;transition:color .12s,border-color .12s}
.ext-acts button:hover{border-color:var(--dim2);color:var(--text)}
.ext-acts .ext-go{background:var(--lime);border-color:var(--lime);color:#0b1015;font-weight:600}
:root[data-theme="light"] .ext-acts .ext-go{color:#fff}
