<!-- SOLIDIVISM-STAGING · part 19 -->
transform: translate(-50%, -50%);
  }
  #enter-overlay {
    position: absolute; inset: 0; z-index: 100;
    background: radial-gradient(ellipse at center, #1a0a0a 0%, #0a0a0e 70%);
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    color: #FF0000;
  }
  #enter-overlay h1 {
    font-size: 32px; letter-spacing: 8px; margin-bottom: 8px;
    text-shadow: 0 0 20px #FF0000;
  }
  #enter-overlay p { color: #666; font-size: 13px; margin-bottom: 32px; letter-spacing: 2px; }
  #enter-btn {
    padding: 16px 48px; font-size: 18px; font-family: monospace;
    background: transparent; color: #FF0000;
    border: 2px solid #FF0000; border-radius: 4px;
    cursor: pointer; letter-spacing: 4px;
    transition: all 0.2s;
  }
  #enter-btn:hover { background: #FF0000; color: #000; box-shadow: 0 0 30px #FF0000; }
  #enter-overlay.hidden { display: none; }
  #toolbar {
    position: absolute; right: 12px; top: 50%;
    transform: translateY(-50%); z-index: 40;
    display: flex; flex-direction: column; gap: 10px;
  }
  .tool-btn {
    width: 48px; height: 48px; border-radius: 50%;
    background: rgba(10,10,14,0.8);
    border: 2px solid #FF0000; color: #FF0000;
    font-size: 20px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-family: monospace; transition: all 0.2s;
  }
  .tool-btn:active { background: #FF0000; color: #000; }
  .tool-btn.active { background: #FF0000; color: #000; box-shadow: 0 0 10px #FF0000; }
  #tactical-panel {
    position: absolute; left: 12px; top: 50%;
    transform: translateY(-50%); z-index: 40;
    display: flex; flex-direction: column; gap: 8px;
    background: rgba(10,10,14,0.9);
    border: 1px solid rgba(255,0,0,0.3);
    border-radius: 12px; padding: 10px;
    max-height: 70vh; overflow-y: auto;
  }
  #tactical-panel.collapsed .tac-btn { display: none; }
  #tactical-panel.collapsed #tac-toggle { display: flex; }
  .tac-btn {
    width: 44px; height: 44px; border-radius: 8px;
    background: rgba(20,20,28,0.9);
    border: 1px solid #FF0000; color: #FF6666;
    font-size: 18px; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    font-family: monospace; transition: all 0.2s;
  }
  .tac-btn:active, .tac-btn.active { background: #FF0000; color: #000; }
  .tac-btn.danger { border-color: #FF0000; color: #FF0000; }
  .tac-btn.danger.active { background: #FF0000; color: #FFF; }
</style>
</head>
<body>
<div id="scene-container"></div>
<div id="hud">
  <div>✦ SOLIDIVISM</div>
  <div class="sub">THE FOUNDATION — SOLID & VISIBLE</div>
</div>
<div id="joystick"><div id="joystick-knob"></div></div>
<div id="camstick"><div id="camstick-knob"></div></div>
<div id="toolbar">
  <button class="tool-btn" id="btn-cam" title="Reset camera">📷</button>
  <button class="tool-btn" id="btn-ctrl" title="Go to control room">🎛️</button>
  <button class="tool-btn" id="btn-help" title="Help">?</button>
</div>
<div id="tactical-panel">
  <button class="tac-btn" id="tac-toggle" title="Collapse/Expand">☰</button>
  <button class="tac-btn" id="tac-fly" title="Fly/Land">🕊️</button>
  <button class="tac-btn" id="tac-sprint" title="Sprint">⚡</button>
  <button class="tac-btn" id="tac-cam-mode" title="Camera: Follow/Orbit/Free">🎥</button>
  <button class="tac-btn" id="tac-ai" title="AI Assist">🤖</button>
  <button class="tac-btn danger" id="tac-stop" title="Emergency Stop">🛑</button>
</div>
<div id="enter-overlay">
  <h1>SOLIDIVISM</h1>
  <p>THE MOST IMPRESSIVE KIND</p>
  <button id="enter-btn">▶ ENTER</button>
</div>
<script>
window.solidivismErrors = [];
window.onerror = function(msg, url, line, col, err) {
  var d = document.createElement('div');
  d.id = 'global-error';
  d.style.cssText = 'position:fixed;bottom:10px;left:10px;background:#ff0000;color:#fff;padding:20px;z-index:99999;font-family:monospace;max-width:80%;';
  d.textContent = 'GLOBAL_ERROR: ' + msg + ' | URL: ' + url + ' | LINE: ' + line + ' | COL: ' + col;
  document.body.appendChild(d);
  window.solidivismErrors.push({msg: msg, url: url, line: line});
};
window.addEventListener('unhandledrejection', function(e) {
  var d = document.createElement('div');
  d.style.cssText = 'position:fixed;bottom:100px;left:10px;background:#ff6600;color:#fff;padding:20px;z-index:99999;font-family:monospace;max-width:80%;';
  d.textContent = 'UNHANDLED_REJECTION: ' + (e.reason && e.reason.message || e.reason);
  document.body.appendChild(d);
});
</script>
<script src="/solidability/js/three.min.js"></script>
<script src="/solidivism-staging/foundation.js?v=20261009hyper012"></script>
<script>
document.getElementById('enter-btn').onclick = () => {
  document.getElementById('enter-overlay').classList.add('hidden');
  Solidivism.init('scene-container');
  Solidivism.setupInput();
  if (Solidivism.setupTactical) Solidivism.setupTactical();
  
  // Epistemology: begin observation (staging only)
  if (Solidivism.epistem