-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.html
More file actions
224 lines (204 loc) Β· 13.6 KB
/
Copy pathtest.html
File metadata and controls
224 lines (204 loc) Β· 13.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<meta name="theme-color" content="#0b0b0b">
<title>WealthPath Quest - Video Background Test</title>
<style>
:root{--bg:#0b0b0b;--gold:#d4af37;--gold-dim:rgba(212,175,55,0.3);--cyan:#00d4ff;--green:#4ade80;--red:#ef4444;--white:#f6f6f6;--gray:#6b7280;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--white);-webkit-tap-highlight-color:transparent;user-select:none}
/* VIDEO BACKGROUND */
.video-bg{position:fixed;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;opacity:0.6}
.video-overlay{position:fixed;inset:0;background:linear-gradient(180deg,rgba(11,11,11,0.4) 0%,rgba(10,22,40,0.6) 50%,rgba(11,11,11,0.8) 100%);z-index:1}
/* START SCREEN */
.start-screen{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center}
.start-content{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center}
.start-logo{font-size:80px;margin-bottom:20px;animation:logoFloat 3s ease-in-out infinite;filter:drop-shadow(0 0 30px rgba(212,175,55,0.5))}
@keyframes logoFloat{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-15px) rotate(5deg)}}
.start-title{font-size:36px;font-weight:800;color:var(--gold);text-shadow:4px 4px 0 #000,0 0 30px rgba(212,175,55,0.5);margin-bottom:6px}
.start-version{font-size:12px;color:var(--cyan);margin-bottom:10px;letter-spacing:2px;text-shadow:0 0 10px var(--cyan)}
.start-subtitle{font-size:14px;color:var(--white);margin-bottom:40px;opacity:0.9;text-shadow:0 2px 10px rgba(0,0,0,0.8)}
.start-brand{margin-bottom:30px;padding:10px 20px;background:rgba(212,175,55,0.15);border:2px solid var(--gold-dim);border-radius:8px;font-size:12px;color:var(--gold);backdrop-filter:blur(10px)}
.start-btn{padding:20px 60px;font-size:20px;font-weight:800;background:linear-gradient(180deg,var(--gold) 0%,#c9a227 100%);color:#0b0b0b;border:4px solid #000;border-radius:8px;cursor:pointer;box-shadow:0 6px 0 #8b7419,0 0 40px rgba(212,175,55,0.5);animation:startPulse 2s infinite}
.start-btn:active{transform:translateY(4px);box-shadow:0 2px 0 #8b7419}
@keyframes startPulse{0%,100%{box-shadow:0 6px 0 #8b7419,0 10px 30px rgba(212,175,55,0.3)}50%{box-shadow:0 6px 0 #8b7419,0 10px 50px rgba(212,175,55,0.6)}}
.start-credit{position:absolute;bottom:20px;font-size:11px;color:var(--gray);line-height:1.6;text-shadow:0 2px 5px rgba(0,0,0,0.8)}
/* GAME APP */
.game-app{position:fixed;inset:0;display:none;flex-direction:column;padding-top:var(--sat);padding-bottom:var(--sab);z-index:100}
.game-app.active{display:flex}
/* TOP HUD */
.top-hud{padding:8px 12px;background:linear-gradient(180deg,rgba(0,0,0,0.85) 0%,transparent 100%);z-index:100}
.player-bar{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.player-avatar{width:44px;height:44px;border-radius:8px;border:2px solid var(--gold);overflow:hidden;flex-shrink:0;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:24px;box-shadow:0 0 15px rgba(212,175,55,0.3)}
.player-info{flex:1;min-width:0}
.player-name{font-size:14px;font-weight:700;color:var(--gold);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.turn-badge{background:linear-gradient(135deg,#a855f7,#7c3aed);color:white;font-size:11px;font-weight:700;padding:4px 10px;border-radius:4px;border:2px solid #000;box-shadow:0 0 10px rgba(168,85,247,0.4)}
.mute-btn{width:36px;height:36px;background:rgba(255,255,255,0.1);border:2px solid var(--gold-dim);border-radius:4px;font-size:18px;cursor:pointer;backdrop-filter:blur(5px)}
/* STAT BARS */
.stat-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.stat-bar{background:rgba(15,15,24,0.8);border:2px solid #000;border-radius:4px;padding:6px 8px;text-align:center;backdrop-filter:blur(5px)}
.stat-bar-label{font-size:9px;color:var(--gray);text-transform:uppercase;margin-bottom:4px}
.stat-bar-track{height:10px;background:#000;border:2px solid #222;border-radius:2px;overflow:hidden;margin-bottom:2px}
.stat-bar-fill{height:100%;transition:width 0.5s}
.stat-bar-fill.readiness{background:linear-gradient(90deg,var(--green),#22c55e);box-shadow:0 0 10px var(--green)}
.stat-bar-fill.risk{background:linear-gradient(90deg,var(--red),#dc2626);box-shadow:0 0 10px var(--red)}
.stat-bar-fill.timeline{background:linear-gradient(90deg,#f97316,#ea580c);box-shadow:0 0 10px #f97316}
.stat-bar-fill.savings{background:linear-gradient(90deg,var(--gold),#eab308);box-shadow:0 0 10px var(--gold)}
.stat-bar-value{font-size:11px;font-weight:700;color:var(--white)}
/* BOARD */
.board-viewport{flex:1;position:relative;overflow:hidden}
.board-path{position:absolute;bottom:50px;left:0;right:0;height:30px;background:linear-gradient(180deg,rgba(26,26,42,0.7) 0%,rgba(15,15,24,0.7) 100%);border-top:3px solid rgba(51,51,51,0.8);border-bottom:3px solid rgba(17,17,17,0.8);backdrop-filter:blur(3px)}
.path-markings{position:absolute;top:50%;left:0;right:0;height:4px;transform:translateY(-50%);background:repeating-linear-gradient(90deg,var(--gold) 0px,var(--gold) 20px,transparent 20px,transparent 40px);opacity:0.6}
.board-tiles{position:absolute;bottom:90px;left:50%;display:flex;gap:40px;z-index:20;transform:translateX(-50%)}
.tile{width:56px;height:56px;background:rgba(15,15,24,0.85);border:3px solid #000;border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative;box-shadow:0 4px 0 #000,0 0 20px rgba(0,0,0,0.5);cursor:pointer;backdrop-filter:blur(5px)}
.tile-emoji{font-size:28px;line-height:1}
.tile.current{border-color:var(--cyan);box-shadow:0 0 0 3px var(--cyan),0 4px 0 #000,0 0 30px var(--cyan);transform:scale(1.15) translateY(-8px);animation:tilePulse 2s infinite}
@keyframes tilePulse{0%,100%{box-shadow:0 0 0 3px var(--cyan),0 4px 0 #000,0 0 20px var(--cyan)}50%{box-shadow:0 0 0 5px var(--cyan),0 4px 0 #000,0 0 40px var(--cyan)}}
.tile.complete{border-color:var(--green);opacity:0.9;box-shadow:0 0 15px var(--green)}
.tile-number{position:absolute;top:-10px;right:-10px;width:22px;height:22px;background:var(--gold);color:#000;font-size:12px;font-weight:800;border:2px solid #000;border-radius:4px;display:flex;align-items:center;justify-content:center}
.player-token{position:absolute;bottom:155px;left:50%;width:64px;height:64px;transform:translateX(-50%);z-index:50}
.player-token-inner{width:100%;height:100%;border-radius:8px;border:3px solid var(--gold);overflow:hidden;box-shadow:0 0 30px var(--gold-dim);animation:tokenFloat 3s ease-in-out infinite;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:36px}
@keyframes tokenFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.destination-flag{position:absolute;bottom:155px;right:30px;font-size:40px;animation:flagWave 2s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,255,255,0.3))}
@keyframes flagWave{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
/* TURN INDICATOR */
.turn-indicator{position:absolute;bottom:0;left:0;right:0;height:40px;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,0.9) 50%);display:flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;z-index:30}
.turn-dot{width:10px;height:10px;border-radius:50%;background:var(--gold-dim);border:2px solid #000}
.turn-dot.complete{background:var(--green);box-shadow:0 0 8px var(--green)}
.turn-dot.current{background:var(--cyan);transform:scale(1.3);animation:dotPulse 1s infinite}
@keyframes dotPulse{0%,100%{box-shadow:0 0 10px var(--cyan)}50%{box-shadow:0 0 20px var(--cyan)}}
.turn-label{font-size:11px;color:var(--gold);margin-left:12px;font-weight:700}
/* VIDEO SWITCHER */
.video-switcher{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);z-index:2000;display:flex;gap:10px;padding:12px 20px;background:rgba(0,0,0,0.8);border-radius:30px;border:2px solid var(--gold);backdrop-filter:blur(10px)}
.switch-btn{padding:10px 20px;background:rgba(255,255,255,0.1);border:2px solid var(--gold-dim);border-radius:20px;color:var(--white);font-size:12px;font-weight:600;cursor:pointer;transition:all 0.2s}
.switch-btn.active{background:var(--gold);color:#000;border-color:var(--gold)}
.switch-btn:hover:not(.active){background:rgba(212,175,55,0.2)}
/* INFO PANEL */
.info-panel{position:fixed;top:20px;right:20px;z-index:2000;padding:15px 20px;background:rgba(0,0,0,0.85);border-radius:12px;border:2px solid var(--gold);backdrop-filter:blur(10px);font-size:12px;max-width:200px}
.info-title{color:var(--gold);font-weight:700;margin-bottom:8px;font-size:14px}
.info-text{color:var(--gray);line-height:1.5}
</style>
</head>
<body>
<!-- VIDEO BACKGROUNDS -->
<video class="video-bg" id="video1" autoplay muted loop playsinline>
<source src="video/background.mp4" type="video/mp4">
</video>
<video class="video-bg" id="video2" autoplay muted loop playsinline style="display:none;">
<source src="video/background (1).mp4" type="video/mp4">
</video>
<div class="video-overlay"></div>
<!-- START SCREEN -->
<div class="start-screen" id="startScreen">
<div class="start-content">
<div class="start-logo">π°</div>
<div class="start-title">WEALTH PATH QUEST</div>
<div class="start-version">VIDEO BACKGROUND TEST</div>
<div class="start-subtitle">Your Real Estate Journey Begins</div>
<div class="start-brand">A BURNS REALTY NYC EXPERIENCE</div>
<button type="button" class="start-btn" id="startBtn">βΆ TAP TO START</button>
</div>
<p class="start-credit">Israel Burns β’ Licensed Real Estate Broker<br>NY #10301366295 β’ BurnsRealty.NYC</p>
</div>
<!-- GAME APP (MOCKUP) -->
<div class="game-app" id="gameApp">
<div class="top-hud">
<div class="player-bar">
<div class="player-avatar">π€</div>
<div class="player-info"><div class="player-name">Test Player</div></div>
<div class="turn-badge">Turn 3</div>
<button class="mute-btn">π</button>
</div>
<div class="stat-bars">
<div class="stat-bar">
<div class="stat-bar-label">Readiness</div>
<div class="stat-bar-track"><div class="stat-bar-fill readiness" style="width:65%"></div></div>
<div class="stat-bar-value">65%</div>
</div>
<div class="stat-bar">
<div class="stat-bar-label">Risk</div>
<div class="stat-bar-track"><div class="stat-bar-fill risk" style="width:25%"></div></div>
<div class="stat-bar-value">25%</div>
</div>
<div class="stat-bar">
<div class="stat-bar-label">Timeline</div>
<div class="stat-bar-track"><div class="stat-bar-fill timeline" style="width:80%"></div></div>
<div class="stat-bar-value">80%</div>
</div>
<div class="stat-bar">
<div class="stat-bar-label">Savings</div>
<div class="stat-bar-track"><div class="stat-bar-fill savings" style="width:45%"></div></div>
<div class="stat-bar-value">$45K</div>
</div>
</div>
</div>
<div class="board-viewport">
<div class="board-path">
<div class="path-markings"></div>
</div>
<div class="board-tiles">
<div class="tile complete"><span class="tile-emoji">π </span><span class="tile-number">1</span></div>
<div class="tile complete"><span class="tile-emoji">π°</span><span class="tile-number">2</span></div>
<div class="tile current"><span class="tile-emoji">π</span><span class="tile-number">3</span></div>
<div class="tile"><span class="tile-emoji">π</span><span class="tile-number">4</span></div>
<div class="tile"><span class="tile-emoji">π¦</span><span class="tile-number">5</span></div>
</div>
<div class="player-token">
<div class="player-token-inner">π§βπΌ</div>
</div>
<div class="destination-flag">π</div>
<div class="turn-indicator">
<div class="turn-dot complete"></div>
<div class="turn-dot complete"></div>
<div class="turn-dot current"></div>
<div class="turn-dot"></div>
<div class="turn-dot"></div>
<span class="turn-label">TILE 3 OF 5</span>
</div>
</div>
</div>
<!-- VIDEO SWITCHER -->
<div class="video-switcher">
<button class="switch-btn active" data-video="1">Video 1</button>
<button class="switch-btn" data-video="2">Video 2</button>
<button class="switch-btn" data-video="none">No Video</button>
</div>
<!-- INFO PANEL -->
<div class="info-panel">
<div class="info-title">Video Background Test</div>
<div class="info-text">Use the buttons below to switch between video backgrounds and see how they look with the game UI.</div>
</div>
<script>
// Start button
document.getElementById('startBtn').addEventListener('click', function() {
document.getElementById('startScreen').style.display = 'none';
document.getElementById('gameApp').classList.add('active');
});
// Video switcher
const video1 = document.getElementById('video1');
const video2 = document.getElementById('video2');
const overlay = document.querySelector('.video-overlay');
document.querySelectorAll('.switch-btn').forEach(btn => {
btn.addEventListener('click', function() {
document.querySelectorAll('.switch-btn').forEach(b => b.classList.remove('active'));
this.classList.add('active');
const vid = this.dataset.video;
if (vid === '1') {
video1.style.display = 'block';
video2.style.display = 'none';
video1.play();
} else if (vid === '2') {
video1.style.display = 'none';
video2.style.display = 'block';
video2.play();
} else {
video1.style.display = 'none';
video2.style.display = 'none';
}
});
});
</script>
</body>
</html>