/* KLE — site vitrine · écran de boot (overlay plein écran).
   Adapté de CODE_KLE/static/boot.css. Palette charbon fixe,
   indépendante du reste — recouvre le site le temps de la
   séquence, puis se retire (pas de redirection). */
.site-boot {
  --b-bg:#0A0B0A; --b-ink:#dcddb2; --b-ink2:#b9bb95; --b-ink3:#7d7e60;
  --b-accent:#c3453c; --b-ok:#6b9a5a; --b-line:rgba(220,221,178,.12);
  position: fixed; inset: 0; z-index: 100;
  background: var(--b-bg);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 34px; padding: 40px;
  transition: opacity .4s ease;
}
.site-boot.leaving { opacity: 0; pointer-events: none; }
.site-boot * { box-sizing: border-box; }

.site-boot .mark { width: 128px; height: 128px; }
.site-boot .mark svg { width: 100%; height: 100%; display: block; }
.site-boot .ltr, .site-boot .nd, .site-boot .bar { transform-box: fill-box; }
.site-boot .ltr { transform-origin: 50% 100%; opacity: 0; transform: translateY(34px); }
.site-boot .nd { transform-origin: 50% 50%; opacity: 0; transform: scale(.34); filter: drop-shadow(0 0 12px rgba(195,69,60,.5)); }
.site-boot .bar { filter: drop-shadow(0 0 8px rgba(195,69,60,.4)); stroke-dashoffset: 100; }

.site-boot .term {
  width: min(540px,92vw); height: 248px; padding: 20px 22px;
  border: 1px solid var(--b-line); border-radius: 12px; background: #0c0e0d;
  font-family: "JetBrains Mono", monospace; font-size: 12.5px; line-height: 1.85;
  color: var(--b-ink2); overflow: hidden; position: relative;
}
.site-boot .term .row { white-space: pre-wrap; word-break: break-word; }
.site-boot .term .row.dim { color: var(--b-ink3); }
.site-boot .term .tag.ok { color: var(--b-ok); }
.site-boot .term .tag.warn { color: var(--b-accent); }
.site-boot .term .cursor {
  display: inline-block; width: 8px; height: 15px; background: var(--b-accent);
  margin-left: 2px; vertical-align: -2px; animation: boot-blink 1s steps(1) infinite;
}
@keyframes boot-blink { 0%,50%{opacity:1} 51%,100%{opacity:0} }

.site-boot .progress {
  width: min(540px,92vw); display: flex; align-items: center; gap: 14px;
  font-family: "JetBrains Mono", monospace; font-size: 12px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--b-ink3);
}
.site-boot .progress .track { flex: 1; height: 3px; background: rgba(220,221,178,.10); border-radius: 2px; overflow: hidden; }
.site-boot .progress .fill { height: 100%; width: 0%; background: var(--b-accent); border-radius: 2px; transition: width .35s cubic-bezier(.4,0,.2,1); }
.site-boot .progress .pct { width: 34px; text-align: right; color: var(--b-ink2); }

.site-boot .skip {
  position: fixed; right: 26px; bottom: 24px;
  font-family: "JetBrains Mono", monospace; font-size: 12px; letter-spacing: .12em;
  text-transform: uppercase; color: var(--b-ink3);
  background: transparent; border: 1px solid var(--b-line); border-radius: 7px;
  padding: 8px 14px; cursor: pointer; transition: border-color .2s, color .2s;
}
.site-boot .skip:hover { border-color: var(--b-accent); color: var(--b-accent); }

@media (prefers-reduced-motion: reduce) {
  .site-boot .ltr { opacity: 1; transform: none; }
  .site-boot .nd { opacity: 1; transform: none; }
  .site-boot .bar { stroke-dashoffset: 0; }
}
