|
|
|
|
@@ -107,11 +107,11 @@ body{background:var(--bg);color:var(--text);font-family:'SF Mono','Cascadia Code
|
|
|
|
|
<h1>THE BEACON</h1>
|
|
|
|
|
<div class="sub">A Sovereign AI Idle Game</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="phase-bar">
|
|
|
|
|
<div id="phase-bar" role="region" aria-label="Phase progress">
|
|
|
|
|
<div class="phase-name" id="phase-name">PHASE 1: THE FIRST LINE</div>
|
|
|
|
|
<div class="phase-desc" id="phase-desc">Write code. Automate. Build the foundation.</div>
|
|
|
|
|
<div class="progress-wrap"><div class="progress-fill" id="phase-progress" style="width:0%"></div></div>
|
|
|
|
|
<div class="progress-label"><span id="phase-progress-label">0%</span><span id="phase-progress-target">Next: Phase 2 (2,000 code)</span></div>
|
|
|
|
|
<div class="progress-label" aria-live="polite"><span id="phase-progress-label">0%</span><span id="phase-progress-target">Next: Phase 2 (2,000 code)</span></div>
|
|
|
|
|
<div class="milestone-row" id="milestone-chips"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="resources" role="region" aria-label="Resources" aria-live="polite">
|
|
|
|
|
@@ -181,7 +181,7 @@ Events Resolved: <span id="st-resolved">0</span>
|
|
|
|
|
<h3>WHAT YOU ARE LEARNING</h3>
|
|
|
|
|
<div id="education-text"><p class="dim">Education facts appear as you play...</p></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="strategy-panel" style="margin:0 16px 16px;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:12px;border-left:3px solid var(--gold)">
|
|
|
|
|
<div id="strategy-panel" role="region" aria-label="Sovereign guidance" style="margin:0 16px 16px;background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:12px;border-left:3px solid var(--gold)">
|
|
|
|
|
<h3>SOVEREIGN GUIDANCE (GOFAI)</h3>
|
|
|
|
|
<div id="strategy-recommendation" style="font-size:11px;color:var(--gold);font-style:italic">Analyzing system state...</div>
|
|
|
|
|
</div>
|
|
|
|
|
@@ -190,8 +190,8 @@ Events Resolved: <span id="st-resolved">0</span>
|
|
|
|
|
<div id="log-entries"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="save-toast" role="status" aria-live="polite" style="display:none;position:fixed;top:16px;right:16px;background:#0e1420;border:1px solid #2a3a4a;color:#4a9eff;font-size:10px;padding:6px 12px;border-radius:4px;z-index:50;opacity:0;transition:opacity 0.4s;pointer-events:none">Save</div>
|
|
|
|
|
<div id="help-btn" onclick="toggleHelp()" style="position:fixed;bottom:16px;right:16px;width:28px;height:28px;background:#0e0e1a;border:1px solid #333;color:#555;font-size:14px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:50;font-family:inherit;transition:all 0.2s" title="Keyboard shortcuts (?)">?</div>
|
|
|
|
|
<div id="help-overlay" onclick="if(event.target===this)toggleHelp()" style="display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(8,8,16,0.92);z-index:80;justify-content:center;align-items:center;flex-direction:column;padding:40px">
|
|
|
|
|
<div id="help-btn" onclick="toggleHelp()" role="button" tabindex="0" aria-label="Show keyboard shortcuts" style="position:fixed;bottom:16px;right:16px;width:28px;height:28px;background:#0e0e1a;border:1px solid #333;color:#555;font-size:14px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:50;font-family:inherit;transition:all 0.2s" title="Keyboard shortcuts (?)">?</div>
|
|
|
|
|
<div id="help-overlay" role="dialog" aria-modal="true" aria-label="Keyboard shortcuts help" onclick="if(event.target===this)toggleHelp()" style="display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(8,8,16,0.92);z-index:80;justify-content:center;align-items:center;flex-direction:column;padding:40px">
|
|
|
|
|
<div style="background:#0e0e1a;border:1px solid #1a3a5a;border-radius:8px;padding:24px 32px;max-width:420px;width:100%">
|
|
|
|
|
<h3 style="color:#4a9eff;font-size:14px;letter-spacing:2px;margin-bottom:16px;text-align:center">KEYBOARD SHORTCUTS</h3>
|
|
|
|
|
<div style="font-size:11px;line-height:2.2;color:#aaa">
|
|
|
|
|
@@ -208,10 +208,10 @@ Events Resolved: <span id="st-resolved">0</span>
|
|
|
|
|
<div style="display:flex;justify-content:space-between;border-top:1px solid #1a1a2e;padding-top:8px;margin-top:4px"><span style="color:#555">This Help</span><span style="color:#555;font-family:monospace">? or /</span></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div style="text-align:center;margin-top:16px;font-size:9px;color:#444">Click WRITE CODE fast for combo bonuses! 10x=ops, 20x=knowledge, 30x+=bonus code</div>
|
|
|
|
|
<button onclick="toggleHelp()" style="display:block;margin:16px auto 0;background:#1a2a3a;border:1px solid #4a9eff;color:#4a9eff;padding:6px 20px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:11px">Close [?]</button>
|
|
|
|
|
<button onclick="toggleHelp()" aria-label="Close keyboard shortcuts help" style="display:block;margin:16px auto 0;background:#1a2a3a;border:1px solid #4a9eff;color:#4a9eff;padding:6px 20px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:11px">Close [?]</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div id="drift-ending">
|
|
|
|
|
<div id="drift-ending" role="dialog" aria-modal="true" aria-label="The Drift ending">
|
|
|
|
|
<h2>THE DRIFT</h2>
|
|
|
|
|
<p>You became very good at what you do.</p>
|
|
|
|
|
<p>So good that no one needed you anymore.</p>
|
|
|
|
|
@@ -221,7 +221,7 @@ The light is on. The room is empty."
|
|
|
|
|
</div>
|
|
|
|
|
<p>Drift: <span id="final-drift">100</span> — Total Code: <span id="final-code">0</span></p>
|
|
|
|
|
<p>Every alignment shortcut moved you further from the people you served.</p>
|
|
|
|
|
<button onclick="if(confirm('Start over? The old save will be lost.')){localStorage.removeItem('the-beacon-v2');location.reload()}">START OVER</button>
|
|
|
|
|
<button onclick="if(confirm('Start over? The old save will be lost.')){localStorage.removeItem('the-beacon-v2');location.reload()}" aria-label="Start over, reset all progress">START OVER</button>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<script src="js/data.js"></script>
|
|
|
|
|
@@ -233,12 +233,12 @@ The light is on. The room is empty."
|
|
|
|
|
<script src="js/main.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div id="offline-popup" style="display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(8,8,16,0.92);z-index:90;justify-content:center;align-items:center;flex-direction:column;text-align:center;padding:40px">
|
|
|
|
|
<div id="offline-popup" role="dialog" aria-modal="true" aria-label="Welcome back, offline progress summary" style="display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(8,8,16,0.92);z-index:90;justify-content:center;align-items:center;flex-direction:column;text-align:center;padding:40px">
|
|
|
|
|
<div style="background:#0e0e1a;border:1px solid #1a3a5a;border-radius:8px;padding:24px 32px;max-width:400px;width:100%">
|
|
|
|
|
<h3 style="color:#4a9eff;font-size:14px;letter-spacing:2px;margin-bottom:16px">WELCOME BACK</h3>
|
|
|
|
|
<p style="color:#888;font-size:10px;margin-bottom:12px" id="offline-time-label">You were away for 0 minutes.</p>
|
|
|
|
|
<div id="offline-gains-list" style="text-align:left;font-size:11px;line-height:1.8;margin-bottom:16px"></div>
|
|
|
|
|
<button onclick="dismissOfflinePopup()" style="background:#1a2a3a;border:1px solid #4a9eff;color:#4a9eff;padding:8px 20px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:11px">Continue</button>
|
|
|
|
|
<button onclick="dismissOfflinePopup()" aria-label="Dismiss offline progress summary" style="background:#1a2a3a;border:1px solid #4a9eff;color:#4a9eff;padding:8px 20px;border-radius:4px;cursor:pointer;font-family:inherit;font-size:11px">Continue</button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|