/* ============================================================
   dao · 官网2 —— 开机仪式(boot)
   墨底网格 → DAO 大字升起 → 终端日志 → 文本进度条 → 擦除揭示
   ============================================================ */
#boot{
  position:fixed; inset:0; z-index:200; background:var(--ink-950);
  display:flex; align-items:center; justify-content:center;
  transition:opacity var(--t-slow);
}
#boot.done{ opacity:0; pointer-events:none; }
/* 棋盘网格(开机层同样铺) */
#boot::before{
  content:""; position:absolute; inset:0;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 80% 70% at 50% 45%, #000 30%, transparent 100%);
  animation:bootGrid 1s var(--ease) both;
}
@keyframes bootGrid{ from{ opacity:0; } to{ opacity:1; } }

.boot-inner{ position:relative; width:min(560px,86vw); text-align:center; }

/* DAO 大字(逐字升起) */
.boot-logo{
  font-family:var(--f-disp); font-weight:900; letter-spacing:.06em;
  font-size:clamp(64px,14vw,120px); line-height:1; color:var(--tx);
  display:flex; justify-content:center; gap:.04em;
  transition:opacity 1s var(--ease);
}
.boot-logo span{
  display:inline-block; transform:scaleY(0); transform-origin:bottom;
  animation:bootChar .6s var(--ease) forwards;
}
.boot-logo span:nth-child(1){ animation-delay:.15s; }
.boot-logo span:nth-child(2){ animation-delay:.27s; }
.boot-logo span:nth-child(3){ animation-delay:.39s; }
.boot-logo .dot{ color:var(--sig); }
@keyframes bootChar{ to{ transform:scaleY(1); } }
.boot-logo.dim{ opacity:.15; }

.boot-sub{
  margin-top:14px; font-family:var(--f-hud); font-weight:500;
  font-size:var(--fs-sm); letter-spacing:.42em; color:var(--tx-dim);
  text-transform:uppercase; opacity:0; animation:bootFade .8s var(--ease) .9s forwards;
}
@keyframes bootFade{ to{ opacity:1; } }

/* 终端控制台 */
.boot-term{
  margin:38px auto 0; width:100%; text-align:left;
  font-family:var(--f-mono); font-size:12.5px; line-height:2;
  color:var(--tx-dim); min-height:180px;
  opacity:0; transition:opacity .5s var(--ease);
}
.boot-term.on{ opacity:1; }
.boot-term .tl{ display:block; white-space:pre; }
.boot-term .tl .ok{ color:var(--sig); }
.boot-term .tl .cur{ color:var(--tx); }

/* 文本进度条 */
.boot-bar{
  margin-top:26px; font-family:var(--f-mono); font-size:12px;
  color:var(--sig); letter-spacing:.05em; text-align:left;
}
.boot-bar .lbl{ color:var(--tx-faint); }

/* 擦除揭示的分裂线 */
.boot-wipe{
  position:absolute; inset:0; background:var(--ink-950);
  clip-path:inset(0 0 0 0); pointer-events:none;
}
#boot.reveal .boot-wipe{
  animation:wipe 1.1s var(--ease) forwards;
}
@keyframes wipe{ to{ clip-path:inset(0 0 0 100%); } }
#boot.reveal .boot-inner{ animation:innerOut .6s var(--ease) forwards; }
@keyframes innerOut{ to{ opacity:0; transform:translateY(-16px); } }

.boot-skip{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  font-family:var(--f-hud); font-size:var(--fs-2xs); letter-spacing:.3em;
  color:var(--tx-faint); text-transform:uppercase; cursor:pointer;
  transition:color var(--t-fast);
}
.boot-skip:hover{ color:var(--sig); }

@media (prefers-reduced-motion:reduce){
  .boot-logo span, .boot-sub{ animation-duration:.01s; animation-delay:0s; }
}
