ProductionGame/frontend/index.html

164 lines
6.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
<title>EL PURO</title>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;800&family=Share+Tech+Mono&display=swap" rel="stylesheet">
<!-- Iconify Web Component CDN (Game Icons & Lucide) -->
<script src="https://code.iconify.design/iconify-icon/2.1.0/iconify-icon.min.js"></script>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div id="app-container">
<!-- Sticky Header (Status bar + Financial HUD + Heat Bar) -->
<header id="sticky-header">
<!-- Top Status Bar -->
<div id="system-bar">
<div class="status-left">
<span class="brand-tag">
<iconify-icon icon="game-icons:flasks"></iconify-icon> EL PURO
</span>
<span class="secure-indicator">
<span class="secure-dot"></span> SECURE
</span>
</div>
<div class="status-right">
<span id="user-badge" style="cursor: pointer; text-decoration: underline;">[ANON]</span>
<span id="system-clock">15:00</span>
</div>
</div>
<!-- HUD Summary (Cash, Income, Clean Bonds) -->
<div id="hud-summary">
<div>
<div class="hud-title">Dirty Cash</div>
<div class="hud-cash-val">$<span id="hud-cash">0.00</span></div>
<div class="hud-rate-val">+$<span id="hud-rate">0.00</span>/s</div>
</div>
<div class="hud-bonds">
<div class="hud-title">Clean Bonds</div>
<div class="bonds-val">
<iconify-icon icon="game-icons:tied-scroll"></iconify-icon>
<span id="hud-bonds">0</span>
</div>
<div class="hud-rate-val" style="color: var(--neon-cyan);">+<span id="hud-multiplier">0</span>% Boost</div>
</div>
</div>
<!-- Police Heat Bar -->
<div id="heat-container">
<div class="heat-label-row">
<span>POLICE HEAT</span>
<span id="heat-pct">0%</span>
</div>
<div class="heat-bar-track">
<div id="heat-bar-fill"></div>
</div>
</div>
</header>
<!-- Toast Notifications Container -->
<div id="toast-container"></div>
<!-- Main Viewport with Dynamic Views -->
<main id="main-viewport">
<!-- Views are rendered dynamically by game.js -->
</main>
<!-- Bottom Navigation Bar (Fixed for quick thumb access) -->
<nav id="bottom-nav">
<button class="nav-tab active" data-tab="lab">
<iconify-icon icon="game-icons:flasks"></iconify-icon>
<span>Lab</span>
</button>
<button class="nav-tab" data-tab="streets">
<iconify-icon icon="game-icons:cash"></iconify-icon>
<span>Streets</span>
</button>
<button class="nav-tab" data-tab="tree">
<iconify-icon icon="game-icons:spider-web"></iconify-icon>
<span>Network</span>
</button>
<button class="nav-tab" data-tab="offshore">
<iconify-icon icon="game-icons:briefcase"></iconify-icon>
<span>Offshore</span>
</button>
</nav>
</div>
<!-- Authentication Modal -->
<div id="auth-modal" class="modal-overlay">
<div class="modal-content">
<div class="modal-header">
<iconify-icon icon="lucide:shield-alert" style="font-size: 1.6rem; color: var(--brand-gold);"></iconify-icon>
<div class="modal-title">Encrypted Terminal Login</div>
</div>
<p style="font-size: 0.78rem; color: var(--text-secondary); line-height: 1.4;">
No email. No phone. Only a username and password to secure your syndicate records.
</p>
<div class="input-group">
<label class="input-label">Operator Alias</label>
<input type="text" id="auth-username" class="input-field" placeholder="e.g. ElHeisenberg" autocomplete="off">
</div>
<div class="input-group">
<label class="input-label">Cipher Code (Password)</label>
<input type="password" id="auth-password" class="input-field" placeholder="••••••••">
</div>
<!-- HONEYPOT TRAP (Bots fill this invisible input) -->
<div class="hp-trap" aria-hidden="true">
<input type="text" id="auth-website-hp" name="website_hp" tabindex="-1" autocomplete="off">
</div>
<div style="display: flex; gap: 8px; margin-top: 8px;">
<button id="btn-login-submit" class="btn-tactical btn-primary-action" style="flex: 1; padding: 10px;">Login</button>
<button id="btn-register-submit" class="btn-tactical" style="flex: 1; padding: 10px;">Register</button>
</div>
<button id="btn-close-auth" class="btn-tactical" style="margin-top: 4px;">Play as Guest</button>
</div>
</div>
<!-- Police Raid Quick-Time Modal -->
<div id="raid-modal" class="modal-overlay">
<div class="modal-content" style="border-color: var(--neon-red);">
<div class="modal-header">
<iconify-icon icon="game-icons:police-badge" style="font-size: 2rem; color: var(--neon-red);"></iconify-icon>
<div>
<div class="modal-title" style="color: var(--neon-red);">FEDERAL INTERCEPT!</div>
<div style="font-size: 0.75rem; color: var(--text-secondary);">DEA raid in progress!</div>
</div>
</div>
<p style="font-size: 0.8rem; line-height: 1.4;">
Police sirens outside your warehouse! Decide quickly before your stash is seized!
</p>
<div style="display: flex; flex-direction: column; gap: 8px;">
<button id="btn-raid-bribe" class="btn-tactical btn-sell-action" style="padding: 10px;">
Pay Bribe ($<span id="raid-bribe-cost">500</span>)
<span class="btn-subtext">Clears all heat immediately</span>
</button>
<button id="btn-raid-stash" class="btn-tactical" style="padding: 10px;">
Flush & Hide Stash
<span class="btn-subtext">Save 100% inventory, heat drops to 20%</span>
</button>
<button id="btn-raid-shootout" class="btn-tactical btn-primary-action" style="padding: 10px;">
Run the Blockade
<span class="btn-subtext">50% chance 2x payout, 50% chance loss</span>
</button>
</div>
</div>
</div>
<script src="js/config.js"></script>
<script src="js/api.js"></script>
<script src="js/game.js"></script>
</body>
</html>