/* ---------- Typer states (2xa-style block cursor) ---------- */
[data-typer-auto], .boot-line { white-space: pre-wrap; }
[data-typer-auto] .word, .boot-line .word { white-space: pre; display: inline-block; }
.char { display: inline-block; }
.char.charInit { color: transparent; }
.char.charFill {
  color: var(--blue);
  background: var(--white);
  border-radius: 3px;
}
.char.charFill:has(+ .charFill) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.char.charFill + .charFill { border-radius: 0; }
.char.charFill + .charFill:last-child,
.char.charFill + .charFill:has(+ :not(.charFill)) { border-radius: 0 3px 3px 0; }

#transition {
  position: fixed; inset: 0;
  z-index: 300;
}
#transition canvas { position: absolute; inset: 0; width: 100%; height: 100%; }

/* loading phrase repeated 4x across the middle (2xa-style) */
.boot-multi {
  position: absolute;
  left: var(--pad); right: var(--pad);
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  gap: 24px;
  white-space: nowrap;
  color: var(--white);
  transition: opacity 0.3s;
}


 html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#000}.portfolio-page{position:fixed;inset:0;width:100%;height:100%;border:0;background:#000}#transition{--white:#fff;--blue:#0A00EE;--pad:clamp(32px,4.2vw,64px);pointer-events:auto}#transition .mono{font:400 13px/1.5 'Space Mono',monospace;letter-spacing:.04em;text-transform:uppercase}
 