html.binary-text-active body *:not(.binary-transition-canvas) {
  -webkit-text-fill-color: transparent !important;
  text-shadow: none !important;
  caret-color: transparent !important;
}
.binary-transition-canvas { position: fixed; inset: 0; z-index: 2000; width: 100%; height: 100%; pointer-events: none; }
html.binary-exiting body > :not(.binary-transition-canvas):not(.page-shell):not(script) {
  transition: opacity .48s ease, filter .48s ease !important;
}
html.binary-exit-clearing body > :not(.binary-transition-canvas):not(.page-shell):not(script),
html.binary-entry-pending body > :not(.binary-transition-canvas):not(.page-shell):not(script) {
  opacity: 0 !important; pointer-events: none !important;
}
html.binary-exit-clearing body > :not(.binary-transition-canvas):not(.page-shell):not(script) { filter: blur(3px); }
html.binary-entering .site-header,
html.binary-entering .site-footer,
html.binary-entering main > * {
  animation: binary-block-arrive .7s cubic-bezier(.2,.7,.2,1) var(--binary-delay, 0ms) both !important;
}
html.binary-entering [data-reveal], html.binary-entering .hero-copy {
  opacity: 1 !important; transform: none !important; transition: none !important;
}
html.binary-exiting, html.binary-entering, html.binary-entry-pending { scroll-behavior: auto !important; }
html.binary-exiting body, html.binary-entering body, html.binary-entry-pending body { pointer-events: none; }
@keyframes binary-block-arrive { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.page-shell { display: none; }
html.binary-exiting .site-header { visibility: hidden; pointer-events: none; }
html:is(.binary-exiting, .binary-entry-pending, .binary-entering) .page-shell {
  position: fixed; inset: 0 0 auto; z-index: 2100; min-height: 92px;
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(130px, 1fr);
  align-items: center; gap: 28px; padding: 20px 56px;
  background: #0b0d0c; border-bottom: 1px solid #c0e5a52b;
  color: #c0e5a5; font: 12px/1.7 'Cascadia Code', Consolas, monospace;
  opacity: 1; transition: opacity .36s ease; pointer-events: none;
}
html.binary-text-active body .page-shell, html.binary-text-active body .page-shell * {
  -webkit-text-fill-color: currentColor !important;
}
.page-shell-command { display: flex; align-items: center; gap: 10px; min-width: 0; white-space: nowrap; }
.page-shell-prompt { color: #7e9574; }
.page-shell-path { color: #e2ecd9; overflow: hidden; text-overflow: ellipsis; }
.page-shell-cursor { animation: shell-cursor 1s steps(1, end) infinite; }
.page-shell-meter { display: flex; align-items: center; gap: 10px; white-space: pre; }
.page-shell-track { letter-spacing: .12em; }
.page-shell-percent { display: inline-block; width: 4ch; text-align: right; }
.page-shell-status { color: #8b9b83; text-align: right; font-size: 10px; }
html.binary-shell-complete .page-shell { opacity: 0; }
@keyframes shell-cursor { 0%, 49% { opacity: 1; } 50%, 100% { opacity: 0; } }
@media (max-width: 1000px) {
  html:is(.binary-exiting, .binary-entry-pending, .binary-entering) .page-shell { gap: 18px; padding-inline: 24px; grid-template-columns: minmax(0, 1fr) auto; }
  .page-shell-status { grid-column: 2; margin-top: -18px; }
}
@media (max-width: 600px) {
  html:is(.binary-exiting, .binary-entry-pending, .binary-entering) .page-shell { padding: 12px 20px; gap: 8px; grid-template-columns: minmax(0, 1fr); font-size: 11px; }
  .page-shell-command { gap: 8px; }
  .page-shell-meter { justify-content: space-between; }
  .page-shell-status { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  html.binary-entering .site-header, html.binary-entering .site-footer, html.binary-entering main > * { animation: none !important; }
  .page-shell-cursor { animation: none; }
}
