/* CRT scanlines */
.crt-overlay{
  position:fixed;inset:0;pointer-events:none;z-index:9998;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,0.12) 2px,rgba(0,0,0,0.12) 4px);
  opacity:0.35;
}
.crt-vignette{
  position:fixed;inset:0;pointer-events:none;z-index:9997;
  background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,0.45) 100%);
}

/* Boot screen */
.boot-screen{
  position:fixed;inset:0;z-index:10000;background:#050a05;
  display:flex;align-items:center;justify-content:center;
  transition:opacity 0.5s ease,visibility 0.5s;
}
.boot-screen.done{opacity:0;visibility:hidden;pointer-events:none}
.boot-inner{max-width:480px;width:90%;padding:2rem}
.boot-logo{font-size:0.75rem;color:#1a5c1a;letter-spacing:0.2em;margin-bottom:1.5rem}
.boot-log{font-size:0.72rem;color:#1a5c1a;line-height:1.9;min-height:140px}
.boot-log .ok{color:#00ff41}
.boot-log .dim{color:#0a3a0a}
.boot-bar{margin-top:1.25rem;height:2px;background:#0a2a0a;overflow:hidden}
.boot-bar-fill{height:100%;background:#00ff41;width:0%;transition:width 0.15s linear}

/* Status bar */
.cli-statusbar{
  position:fixed;bottom:0;left:0;right:0;z-index:9996;
  background:#030703;border-top:1px solid #0a2a0a;
  padding:0.35rem 1.5rem;
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.6rem;color:#0a3a0a;letter-spacing:0.06em;
  flex-wrap:wrap;gap:0.5rem;
}
.cli-statusbar .sb-val{color:#1a5c1a}
.cli-statusbar .sb-live{color:#00ff41}
.cli-statusbar .sb-blink{animation:sbBlink 1.2s infinite}
@keyframes sbBlink{0%,100%{opacity:1}50%{opacity:0.3}}

/* Typewriter */
.type-cursor{display:inline-block;width:7px;height:0.85em;background:#00ff41;margin-left:2px;vertical-align:text-bottom;animation:blink 0.9s infinite}
.type-cursor.done{opacity:0;animation:none}

/* Text glow */
.glow-text{text-shadow:0 0 8px rgba(0,255,65,0.25)}

/* Input CLI prompt */
.field-cli{position:relative}
.field-cli::before{
  content:'>';position:absolute;left:0.65rem;top:0.68rem;
  color:#0a3a0a;font-size:0.8rem;pointer-events:none;z-index:1;
  transition:color 0.2s;
}
.field-cli input,.field-cli textarea{padding-left:1.5rem!important}
.field-cli:focus-within::before{color:#00ff41}
.field-cli input:focus,.field-cli textarea:focus{
  box-shadow:0 0 0 1px rgba(0,255,65,0.15),inset 0 0 12px rgba(0,255,65,0.03);
}

/* Preview flash on update */
.preview-line.flash .val{animation:valFlash 0.4s ease}
@keyframes valFlash{
  0%{color:#00ff41;text-shadow:0 0 10px rgba(0,255,65,0.6)}
  100%{color:#00ff41;text-shadow:none}
}

/* Result typing */
.result.typing{border-color:#1a5c1a;color:#1a5c1a;background:#030703}

/* Nav clock */
.nav-clock{font-variant-numeric:tabular-nums}

/* Card hover terminal */
.info-card{transition:border-color 0.15s,box-shadow 0.15s}
.info-card:hover{box-shadow:0 0 0 1px rgba(0,255,65,0.08)}

/* Body padding for status bar */
body.has-statusbar .h{padding-bottom:28px}

@media(max-width:768px){
  .cli-statusbar{padding:0.35rem 1rem;font-size:0.55rem}
  body.has-statusbar .h{padding-bottom:36px}
}

@media(prefers-reduced-motion:reduce){
  .crt-overlay,.boot-bar-fill,.type-cursor,.sb-blink{animation:none!important;transition:none!important}
  .boot-screen{transition:none}
}
