/* ============================================================
   boot.css — kernel-boot / dmesg homepage
   Everything is scoped under .boot-root so it only affects the
   homepage and never leaks into the themed pages.
   ============================================================ */
.boot-root{
  --b-bg:#0a0c10; --b-fg:#c9d1d9; --b-dim:#6e7681; --b-green:#3fb950;
  --b-amber:#d29922; --b-red:#f85149; --b-blue:#58a6ff; --b-cyan:#39c5cf;
  --b-panel:#0f141b; --b-border:#1f2630;
  --b-mono:'SF Mono',ui-monospace,'Cascadia Code','JetBrains Mono','Roboto Mono',Menlo,monospace;

  background:var(--b-bg); color:var(--b-fg);
  font-family:var(--b-mono); font-size:14px; line-height:1.5;
  min-height:100vh; -webkit-font-smoothing:antialiased;
}
/* take over the whole viewport background regardless of theme.
   !important + high specificity beat custom.css's global body rules. */
html body.boot-body,
html.dark body.boot-body{ margin:0; background:#0a0c10 !important; }
.boot-root *{ box-sizing:border-box; }
/* neutralise custom.css global link + heading overrides inside the boot page */
.boot-root a{ border-bottom:none !important; }
.boot-root a:hover{ border-bottom-color:transparent !important; }

/* CRT scanline + vignette */
.boot-root::before{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:50;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.02) 0 1px,transparent 1px 3px);
  mix-blend-mode:overlay;
}
.boot-root::after{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:50;
  background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.45) 100%);
}

.boot-screen{ max-width:860px; margin:0 auto; padding:40px 22px 90px; }

/* ---------- BOOT LOG ---------- */
.boot-root #boot .l{ white-space:pre-wrap; word-break:break-word; }
.boot-root .ts{ color:var(--b-dim); }
.boot-root .ok{ color:var(--b-green); }
.boot-root .warn{ color:var(--b-amber); }
.boot-root .info{ color:var(--b-blue); }
.boot-root .cur{
  display:inline-block; width:8px; height:15px; background:var(--b-green);
  vertical-align:text-bottom; animation:boot-blink 1s steps(1) infinite;
}
@keyframes boot-blink{ 50%{opacity:0} }

.boot-root .skip{
  position:fixed; top:14px; right:16px; z-index:60; font-family:var(--b-mono);
  font-size:12px; color:var(--b-dim); background:var(--b-panel);
  border:1px solid var(--b-border); border-radius:6px; padding:5px 11px; cursor:pointer;
}
.boot-root .skip:hover{ color:var(--b-fg); border-color:var(--b-green); }

/* ---------- SITE (revealed) ---------- */
.boot-root #site{ display:none; opacity:0; transition:opacity .5s ease; }
.boot-root #site.show{ display:block; opacity:1; }

.boot-root .bar{
  display:flex; align-items:center; gap:10px; color:var(--b-dim);
  border-bottom:1px solid var(--b-border); padding-bottom:12px; margin-bottom:26px; flex-wrap:wrap;
}
.boot-root .bar .dot{ width:9px; height:9px; border-radius:50%; }
.boot-root .bar .who{ color:var(--b-green); }
.boot-root .bar .path{ color:var(--b-blue); }
.boot-root .bar nav{ margin-left:auto; display:flex; gap:16px; flex-wrap:wrap; }
.boot-root .bar nav a{ color:var(--b-dim) !important; text-decoration:none; }
.boot-root .bar nav a:hover{ color:var(--b-cyan) !important; }

.boot-root .prompt{ color:var(--b-green); }
.boot-root .comment{ color:var(--b-dim); }

.boot-root section{ margin:0 0 40px; }
.boot-root .cmd{ margin-bottom:10px; display:flex; flex-wrap:wrap; gap:0 8px; align-items:baseline; }

/* bio */
.boot-root .bio{ display:flex; gap:22px; align-items:flex-start; flex-wrap:wrap; }
.boot-root .bio .ava{
  width:96px; height:96px; border-radius:8px; border:1px solid var(--b-border);
  object-fit:cover; flex:0 0 auto; background:linear-gradient(135deg,#12324a,#0f141b);
}
.boot-root .bio .txt{ flex:1; min-width:240px; }
.boot-root .bio h1{ font-size:20px; margin:0 0 6px; color:var(--b-fg); font-family:var(--b-mono) !important; }
.boot-root .bio h1 .accent{ color:var(--b-green); }
.boot-root .bio .txt p{ margin:0; color:var(--b-dim); max-width:62ch; }
.boot-root .bio .txt strong,.boot-root .bio .txt b{ color:var(--b-fg); font-weight:600; }

/* projects = kernel modules */
.boot-root .mods{ border:1px solid var(--b-border); border-radius:8px; overflow:hidden; }
.boot-root .mod{
  display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:center;
  padding:12px 16px; border-bottom:1px solid var(--b-border); cursor:pointer; transition:background .12s;
}
.boot-root .mod:last-child{ border-bottom:none; }
.boot-root .mod:hover{ background:#11161d; }
.boot-root .mod .status{ color:var(--b-green); }
.boot-root .mod .status.warn{ color:var(--b-amber); }
.boot-root .mod .name{ color:var(--b-cyan); min-width:0; overflow-wrap:anywhere; }
.boot-root .mod .name small{ color:var(--b-dim); margin-left:10px; font-size:12px; }
.boot-root .mod .stack{ color:var(--b-dim); font-size:12px; text-align:right; }
.boot-root .mod .detail{
  grid-column:1/-1; display:none; color:var(--b-dim); padding:4px 0 6px 34px;
  border-top:1px dashed var(--b-border); margin-top:8px; font-size:13px;
}
.boot-root .mod.open .detail{ display:block; }
.boot-root .mod .detail a{ color:var(--b-blue) !important; text-decoration:none; }
.boot-root .mod .detail a:hover{ color:var(--b-cyan) !important; }
.boot-root .mod .detail .tags{ margin-top:6px; }
.boot-root .mod .detail .tags span{
  display:inline-block; border:1px solid var(--b-border); border-radius:20px;
  padding:1px 9px; margin:0 5px 5px 0; color:var(--b-amber); font-size:11px;
}

/* posts = log tail */
.boot-root .logs .row{
  display:flex; gap:12px; padding:6px 0; border-bottom:1px solid #141a22;
  flex-wrap:wrap; align-items:baseline;
}
.boot-root .logs .row:last-child{ border-bottom:none; }
.boot-root .logs .lts{ color:var(--b-dim); white-space:nowrap; }
.boot-root .logs .tag{ color:var(--b-amber); }
.boot-root .logs a{ color:var(--b-fg) !important; text-decoration:none; min-width:0; overflow-wrap:anywhere; }
.boot-root .logs a:hover{ color:var(--b-cyan) !important; }
.boot-root .logs .row:hover .lts{ color:var(--b-green); }

.boot-root .boot-footer{
  color:var(--b-dim); border-top:1px solid var(--b-border); padding-top:16px; margin-top:10px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:12px;
}
.boot-root .boot-footer a{ color:var(--b-dim) !important; text-decoration:none; }
.boot-root .boot-footer a:hover{ color:var(--b-green) !important; }
.boot-root .reboot{ cursor:pointer; color:var(--b-amber); }

/* respect reduced-motion: no blinking cursor animation */
@media (prefers-reduced-motion: reduce){
  .boot-root .cur{ animation:none; }
}
