diff --git a/style.css b/style.css deleted file mode 100644 index 2586f7e..0000000 --- a/style.css +++ /dev/null @@ -1,674 +0,0 @@ -/* === NEXUS DESIGN SYSTEM === */ -:root { - --font-display: 'Orbitron', sans-serif; - --font-body: 'JetBrains Mono', monospace; - - --color-bg: #050510; - --color-surface: rgba(10, 15, 40, 0.85); - --color-border: rgba(74, 240, 192, 0.2); - --color-border-bright: rgba(74, 240, 192, 0.5); - - --color-text: #c8d8e8; - --color-text-muted: #5a6a8a; - --color-text-bright: #e0f0ff; - - --color-primary: #4af0c0; - --color-primary-dim: rgba(74, 240, 192, 0.3); - --color-secondary: #7b5cff; - --color-danger: #ff4466; - --color-warning: #ffaa22; - --color-gold: #ffd700; - - --text-xs: 11px; - --text-sm: 13px; - --text-base: 15px; - --text-lg: 18px; - --text-xl: 24px; - --text-2xl: 36px; - - --space-1: 4px; - --space-2: 8px; - --space-3: 12px; - --space-4: 16px; - --space-6: 24px; - --space-8: 32px; - - --panel-blur: 16px; - --panel-radius: 8px; - --transition-ui: 200ms cubic-bezier(0.16, 1, 0.3, 1); -} - -*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } - -html, body { - width: 100%; - height: 100%; - overflow: hidden; - background: var(--color-bg); - font-family: var(--font-body); - color: var(--color-text); - -webkit-font-smoothing: antialiased; -} - -canvas#nexus-canvas { - display: block; - width: 100vw; - height: 100vh; - position: fixed; - top: 0; - left: 0; -} - -/* === LOADING SCREEN === */ -#loading-screen { - position: fixed; - inset: 0; - z-index: 1000; - background: var(--color-bg); - display: flex; - align-items: center; - justify-content: center; - transition: opacity 0.8s ease; -} -#loading-screen.fade-out { - opacity: 0; - pointer-events: none; -} -.loader-content { - text-align: center; -} -.loader-sigil { - margin-bottom: var(--space-6); -} -.loader-title { - font-family: var(--font-display); - font-size: var(--text-2xl); - font-weight: 700; - letter-spacing: 0.3em; - color: var(--color-primary); - text-shadow: 0 0 30px rgba(74, 240, 192, 0.4); - margin-bottom: var(--space-2); -} -.loader-subtitle { - font-size: var(--text-sm); - color: var(--color-text-muted); - letter-spacing: 0.1em; - margin-bottom: var(--space-6); -} -.loader-bar { - width: 200px; - height: 2px; - background: rgba(74, 240, 192, 0.15); - border-radius: 1px; - margin: 0 auto; - overflow: hidden; -} -.loader-fill { - height: 100%; - width: 0%; - background: linear-gradient(90deg, var(--color-primary), var(--color-secondary)); - border-radius: 1px; - transition: width 0.3s ease; -} - -/* === ENTER PROMPT === */ -#enter-prompt { - position: fixed; - inset: 0; - z-index: 500; - background: rgba(5, 5, 16, 0.7); - display: flex; - align-items: center; - justify-content: center; - cursor: pointer; - transition: opacity 0.5s ease; -} -#enter-prompt.fade-out { - opacity: 0; - pointer-events: none; -} -.enter-content { - text-align: center; -} -.enter-content h2 { - font-family: var(--font-display); - font-size: var(--text-xl); - color: var(--color-primary); - letter-spacing: 0.2em; - text-shadow: 0 0 20px rgba(74, 240, 192, 0.3); - margin-bottom: var(--space-2); -} -.enter-content p { - font-size: var(--text-sm); - color: var(--color-text-muted); - animation: pulse-text 2s ease-in-out infinite; -} -@keyframes pulse-text { - 0%, 100% { opacity: 0.5; } - 50% { opacity: 1; } -} - -/* === GAME UI (HUD) === */ -.game-ui { - position: fixed; - inset: 0; - pointer-events: none; - z-index: 10; - font-family: var(--font-body); - color: var(--color-text); -} -.game-ui button, .game-ui input, .game-ui [data-interactive] { - pointer-events: auto; -} - -/* Debug overlay */ -.hud-debug { - position: absolute; - top: var(--space-3); - left: var(--space-3); - background: rgba(0, 0, 0, 0.7); - color: #0f0; - font-size: var(--text-xs); - line-height: 1.5; - padding: var(--space-2) var(--space-3); - border-radius: 4px; - white-space: pre; - pointer-events: none; - font-variant-numeric: tabular-nums lining-nums; -} - -/* Location indicator */ -.hud-location { - position: absolute; - top: var(--space-3); - left: 50%; - transform: translateX(-50%); - font-family: var(--font-display); - font-size: var(--text-sm); - font-weight: 500; - letter-spacing: 0.15em; - color: var(--color-primary); - text-shadow: 0 0 10px rgba(74, 240, 192, 0.3); - display: flex; - align-items: center; - gap: var(--space-2); -} -.hud-location-icon { - font-size: 16px; - animation: spin-slow 10s linear infinite; -} -@keyframes spin-slow { - from { transform: rotate(0deg); } - to { transform: rotate(360deg); } -} - -/* Controls hint */ -.hud-controls { - position: absolute; - bottom: var(--space-3); - left: var(--space-3); - font-size: var(--text-xs); - color: var(--color-text-muted); - pointer-events: none; -} -.hud-controls span { - color: var(--color-primary); - font-weight: 600; -} -#nav-mode-label { - color: var(--color-gold); - font-weight: 700; - letter-spacing: 0.05em; -} - -/* Portal Hint */ -.portal-hint { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, 100px); - display: flex; - align-items: center; - gap: var(--space-2); - background: rgba(0, 0, 0, 0.8); - padding: var(--space-2) var(--space-4); - border: 1px solid var(--color-primary); - border-radius: 4px; - animation: hint-float 2s ease-in-out infinite; -} -@keyframes hint-float { - 0%, 100% { transform: translate(-50%, 100px); } - 50% { transform: translate(-50%, 90px); } -} -.portal-hint-key { - background: var(--color-primary); - color: var(--color-bg); - font-weight: 700; - padding: 2px 8px; - border-radius: 2px; -} -.portal-hint-text { - font-size: var(--text-sm); - font-weight: 500; - letter-spacing: 0.05em; -} -#portal-hint-name { - color: var(--color-primary); - font-weight: 700; -} - -/* Agent Log HUD */ -.hud-agent-log { - position: absolute; - top: var(--space-3); - right: var(--space-3); - width: 280px; - background: rgba(0, 0, 0, 0.6); - backdrop-filter: blur(8px); - border-left: 2px solid var(--color-primary); - padding: var(--space-3); - font-size: 10px; - pointer-events: none; -} -.agent-log-header { - font-family: var(--font-display); - color: var(--color-primary); - letter-spacing: 0.1em; - margin-bottom: var(--space-2); - opacity: 0.8; -} -.agent-log-content { - display: flex; - flex-direction: column; - gap: 4px; -} -.agent-log-entry { - animation: log-fade-in 0.5s ease-out forwards; - opacity: 0; -} -@keyframes log-fade-in { - from { opacity: 0; transform: translateX(10px); } - to { opacity: 1; transform: translateX(0); } -} -.agent-log-tag { - font-weight: 700; - margin-right: 4px; -} -.tag-timmy { color: var(--color-primary); } -.tag-kimi { color: var(--color-secondary); } -.tag-claude { color: var(--color-gold); } -.tag-perplexity { color: #4488ff; } -.agent-log-text { - color: var(--color-text-muted); -} - -/* Vision Hint */ -.vision-hint { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, 140px); - display: flex; - align-items: center; - gap: var(--space-2); - background: rgba(0, 0, 0, 0.8); - padding: var(--space-2) var(--space-4); - border: 1px solid var(--color-gold); - border-radius: 4px; - animation: hint-float-vision 2s ease-in-out infinite; -} -@keyframes hint-float-vision { - 0%, 100% { transform: translate(-50%, 140px); } - 50% { transform: translate(-50%, 130px); } -} -.vision-hint-key { - background: var(--color-gold); - color: var(--color-bg); - font-weight: 700; - padding: 2px 8px; - border-radius: 2px; -} -.vision-hint-text { - font-size: var(--text-sm); - font-weight: 500; - letter-spacing: 0.05em; -} -#vision-hint-title { - color: var(--color-gold); - font-weight: 700; -} - -/* Vision Overlay */ -.vision-overlay { - position: fixed; - inset: 0; - background: rgba(5, 5, 16, 0.9); - display: flex; - align-items: center; - justify-content: center; - pointer-events: auto; - z-index: 1000; -} -.vision-overlay-content { - width: 100%; - max-width: 600px; - text-align: center; - padding: var(--space-8); - border: 1px solid var(--color-gold); - border-radius: var(--panel-radius); - background: var(--color-surface); - backdrop-filter: blur(var(--panel-blur)); -} -.vision-overlay-header { - display: flex; - align-items: center; - justify-content: center; - gap: var(--space-3); - margin-bottom: var(--space-4); -} -.vision-overlay-status { - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--color-gold); - box-shadow: 0 0 10px var(--color-gold); -} -.vision-overlay-title { - font-family: var(--font-display); - font-size: var(--text-sm); - letter-spacing: 0.2em; - color: var(--color-gold); -} -.vision-overlay-content h2 { - font-family: var(--font-display); - font-size: var(--text-2xl); - margin-bottom: var(--space-4); - letter-spacing: 0.1em; - color: var(--color-text-bright); -} -.vision-overlay-content p { - color: var(--color-text); - font-size: var(--text-lg); - line-height: 1.8; - margin-bottom: var(--space-8); - font-style: italic; -} -.vision-close-btn { - background: var(--color-gold); - color: var(--color-bg); - border: none; - padding: var(--space-2) var(--space-8); - border-radius: 4px; - font-family: var(--font-display); - font-weight: 700; - cursor: pointer; - transition: transform 0.2s ease; -} -.vision-close-btn:hover { - transform: scale(1.05); -} - -/* Portal Activation Overlay */ -.portal-overlay { - position: fixed; - inset: 0; - background: rgba(5, 5, 16, 0.95); - display: flex; - align-items: center; - justify-content: center; - pointer-events: auto; - z-index: 1000; -} -.portal-overlay-content { - width: 100%; - max-width: 500px; - text-align: center; - padding: var(--space-8); -} -.portal-overlay-header { - display: flex; - align-items: center; - justify-content: center; - gap: var(--space-3); - margin-bottom: var(--space-4); -} -.portal-overlay-status { - width: 12px; - height: 12px; - border-radius: 50%; - background: var(--color-primary); - box-shadow: 0 0 10px var(--color-primary); -} -.portal-overlay-title { - font-family: var(--font-display); - font-size: var(--text-sm); - letter-spacing: 0.2em; - color: var(--color-primary); -} -.portal-overlay-content h2 { - font-family: var(--font-display); - font-size: var(--text-2xl); - margin-bottom: var(--space-4); - letter-spacing: 0.1em; -} -.portal-overlay-content p { - color: var(--color-text-muted); - font-size: var(--text-base); - line-height: 1.6; - margin-bottom: var(--space-8); -} -.portal-redirect-box { - border: 1px solid var(--color-primary-dim); - padding: var(--space-6); - border-radius: var(--panel-radius); -} -.portal-redirect-label { - font-size: var(--text-xs); - letter-spacing: 0.2em; - margin-bottom: var(--space-2); -} -.portal-redirect-timer { - font-family: var(--font-display); - font-size: 48px; - font-weight: 700; - color: var(--color-primary); -} -.portal-error-box { - border: 1px solid var(--color-danger); - padding: var(--space-6); - border-radius: var(--panel-radius); -} -.portal-error-msg { - color: var(--color-danger); - font-weight: 700; - margin-bottom: var(--space-4); -} -.portal-close-btn { - background: var(--color-danger); - color: white; - border: none; - padding: var(--space-2) var(--space-6); - border-radius: 4px; - font-family: var(--font-display); - cursor: pointer; -} - -/* === CHAT PANEL === */ -.chat-panel { - position: absolute; - bottom: var(--space-4); - right: var(--space-4); - width: 380px; - max-height: 400px; - background: var(--color-surface); - backdrop-filter: blur(var(--panel-blur)); - border: 1px solid var(--color-border); - border-radius: var(--panel-radius); - display: flex; - flex-direction: column; - overflow: hidden; - pointer-events: auto; - transition: max-height var(--transition-ui); -} -.chat-panel.collapsed { - max-height: 42px; -} -.chat-header { - display: flex; - align-items: center; - gap: var(--space-2); - padding: var(--space-3) var(--space-4); - border-bottom: 1px solid var(--color-border); - font-family: var(--font-display); - font-size: var(--text-xs); - letter-spacing: 0.1em; - font-weight: 500; - color: var(--color-text-bright); - cursor: pointer; - flex-shrink: 0; -} -.chat-status-dot { - width: 8px; - height: 8px; - border-radius: 50%; - background: var(--color-primary); - box-shadow: 0 0 6px var(--color-primary); - animation: dot-pulse 2s ease-in-out infinite; -} -@keyframes dot-pulse { - 0%, 100% { opacity: 0.6; } - 50% { opacity: 1; } -} -.chat-toggle-btn { - margin-left: auto; - background: none; - border: none; - color: var(--color-text-muted); - font-size: 14px; - cursor: pointer; - transition: transform var(--transition-ui); -} -.chat-panel.collapsed .chat-toggle-btn { - transform: rotate(180deg); -} -.chat-messages { - flex: 1; - overflow-y: auto; - padding: var(--space-3) var(--space-4); - display: flex; - flex-direction: column; - gap: var(--space-2); - max-height: 280px; - scrollbar-width: thin; - scrollbar-color: rgba(74,240,192,0.2) transparent; -} -.chat-msg { - font-size: var(--text-xs); - line-height: 1.6; - padding: var(--space-1) 0; -} -.chat-msg-prefix { - font-weight: 700; -} -.chat-msg-system .chat-msg-prefix { color: var(--color-text-muted); } -.chat-msg-timmy .chat-msg-prefix { color: var(--color-primary); } -.chat-msg-user .chat-msg-prefix { color: var(--color-gold); } -.chat-msg-error .chat-msg-prefix { color: var(--color-danger); } - -.chat-input-row { - display: flex; - border-top: 1px solid var(--color-border); - flex-shrink: 0; -} -.chat-input { - flex: 1; - background: transparent; - border: none; - padding: var(--space-3) var(--space-4); - font-family: var(--font-body); - font-size: var(--text-xs); - color: var(--color-text-bright); - outline: none; -} -.chat-input::placeholder { - color: var(--color-text-muted); -} -.chat-send-btn { - background: none; - border: none; - border-left: 1px solid var(--color-border); - padding: var(--space-3) var(--space-4); - color: var(--color-primary); - font-size: 16px; - cursor: pointer; - transition: background var(--transition-ui); -} -.chat-send-btn:hover { - background: rgba(74, 240, 192, 0.1); -} - -/* === FOOTER === */ -.nexus-footer { - position: fixed; - bottom: var(--space-1); - left: 50%; - transform: translateX(-50%); - z-index: 5; - font-size: 10px; - opacity: 0.3; -} -.nexus-footer a { - color: var(--color-text-muted); - text-decoration: none; -} -.nexus-footer a:hover { - color: var(--color-primary); -} - -/* === BITCOIN BLOCK HEIGHT === */ -#block-height-display { - position: fixed; - bottom: 12px; - right: 12px; - z-index: 20; - font-family: var(--font-body); - font-size: 11px; - letter-spacing: 0.15em; - color: var(--color-primary); - background: rgba(0, 0, 8, 0.7); - border: 1px solid var(--color-secondary); - padding: 4px 10px; - pointer-events: none; - white-space: nowrap; -} - -.block-height-label { - color: var(--color-text-muted); - margin-right: 6px; - font-size: 10px; -} - -#block-height-value { - color: var(--color-primary); -} - -#block-height-display.fresh #block-height-value { - animation: block-flash 0.6s ease-out; -} - -@keyframes block-flash { - 0% { color: #ffffff; text-shadow: 0 0 8px #4488ff; } - 100% { color: var(--color-primary); text-shadow: none; } -} - -/* Mobile adjustments */ -@media (max-width: 480px) { - .chat-panel { - width: calc(100vw - 32px); - right: var(--space-4); - bottom: var(--space-4); - } - .hud-controls { - display: none; - } -}