/* Text equivalent for the canvas: the same public copy, available to everyone.
   Keyboard focus exposes it; the cinematic pointer experience is unchanged. */
.portfolio-text-alternative {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  font: 16px/1.6 system-ui, sans-serif;
  color: #e9e7f0;
}
.portfolio-text-alternative:focus-within,
html:not([data-bubble-entry]) .portfolio-text-alternative {
  position: fixed;
  inset: 0;
  z-index: 2000002;
  width: auto;
  height: auto;
  margin: 0;
  padding: clamp(24px, 6vw, 80px);
  overflow: auto;
  clip-path: none;
  background: #09090e;
}
.portfolio-text-alternative h1 { font-size: clamp(25px, 5vw, 42px); line-height: 1.2; }
.portfolio-text-alternative :is(h1, h2, p) { max-width: 46rem; }
.portfolio-text-alternative a,
.portfolio-no-script a { color: #c9b3ff; }
.portfolio-text-alternative a:focus-visible { outline: 2px solid #c9b3ff; outline-offset: 5px; }
html:not([data-bubble-entry]) .portfolio-text-alternative {
  position: relative;
  min-height: 100vh;
}
html:not([data-bubble-entry]),
html:not([data-bubble-entry]) body { height: auto !important; overflow: auto !important; touch-action: auto !important; }
html:not([data-bubble-entry]) .soundtrack-toggle { display: none; }
.portfolio-no-script { margin: 0; padding: 24px; color: #aaa; font: 14px/1.6 system-ui, sans-serif; }
