/* =============================================================================
   静态构图样式表
   —— 里面**没有一条 transition / animation / @keyframes**：所有随时间变化的东西
      都由 70-boot.js 的常驻逐帧循环写出去（tools/smoke.mjs 会逐条断言这件事）。
      画布本身的尺寸与舞台缩放也由 JS 写（stageFit / layoutStage），CSS 只兜底。
   ========================================================================== */
:root{
  --paper:#F4EBDD;
  --paper-hi:#FBF4E7;
  --ink:#17161A;
  --blue:#1F6FB2;
  --magenta:#C8365F;
  --yellow:#E0A32A;
  --green:#4E8C3A;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{
  width:100%;height:100%;overflow:hidden;
  background:#EFE3CE;color:var(--ink);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  user-select:none;-webkit-user-select:none;
  overscroll-behavior:none;
}
#stageWrap{
  position:fixed;inset:0;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(120% 80% at 50% 0%,#F7F0E2 0%,#E7DAC2 60%,#DCCBAF 100%);
  touch-action:none;
}
#stage{
  position:relative;overflow:hidden;border-radius:2px;
  box-shadow:0 18px 44px rgba(72,56,36,.28),0 0 0 1px rgba(23,22,26,.12);
}
#world,#fx{position:absolute;left:0;top:0;display:block}
#fx{pointer-events:none}

/* 首屏骨架：底色与机器轮廓在 HTML 里，所以第一帧就有东西可看（不是白屏） */
#boot{
  position:fixed;inset:0;z-index:9;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:radial-gradient(120% 80% at 50% 0%,#F7F0E2 0%,#E7DAC2 60%,#DCCBAF 100%);
}
#bootCard{
  width:250px;padding:22px 20px 18px;background:var(--paper-hi);border-radius:14px;
  box-shadow:0 14px 30px rgba(72,56,36,.22),0 0 0 1px rgba(23,22,26,.10);
  text-align:center;
}
#bootMark{font-size:20px;font-weight:800;letter-spacing:2px}
#bootSub{font-size:11px;font-weight:600;color:rgba(23,22,26,.45);margin-top:6px;letter-spacing:1px}
#bootTrack{margin-top:16px;height:6px;border-radius:3px;background:rgba(23,22,26,.10);overflow:hidden}
#bootBar{
  height:100%;width:100%;transform-origin:left center;transform:scaleX(0);
  background:linear-gradient(90deg,var(--blue),var(--green) 60%,var(--yellow));
}
#bootLabel{margin-top:10px;font-size:11px;font-weight:600;color:rgba(23,22,26,.5);height:14px}
#bootReg{margin-top:14px;height:16px;position:relative}
#bootReg i{position:absolute;left:50%;top:0;width:26px;height:12px;border-radius:3px;transform:translateX(-50%)}
#bootReg i:nth-child(1){background:var(--blue);margin-left:-4px;opacity:.85}
#bootReg i:nth-child(2){background:var(--magenta);margin-left:4px;opacity:.85}
#bootReg i:nth-child(3){background:var(--ink);top:2px;width:24px}
