ia23s commited on
Commit
b802579
·
verified ·
1 Parent(s): a118ffa

Promote version eaa93c4 to main

Browse files

Promoted commit eaa93c45d2f26302b825e3a4110c2eaa9bdc3d84 to main branch

Files changed (2) hide show
  1. index.html +170 -119
  2. style.css +76 -165
index.html CHANGED
@@ -37,186 +37,237 @@
37
  </script>
38
  <link rel="preconnect" href="https://fonts.googleapis.com">
39
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
40
- <link href="https://fonts.googleapis.com/css2?family=SF+Pro+Display:wght@300;400;500;600;700;800&family=SF+Pro+Text:wght@300;400;500;600&display=swap" rel="stylesheet">
41
  <link rel="stylesheet" href="style.css" />
42
  </head>
43
- <body class="min-h-screen bg-black text-white selection:bg-gold-500 selection:text-black">
44
  <div id="app" class="relative min-h-screen flex flex-col">
45
- <!-- Status Bar for iOS -->
46
- <div class="h-11 bg-black/90 backdrop-blur-xl border-b border-white/5 flex items-center justify-between px-6 text-sm font-medium">
47
- <div class="flex items-center gap-1">
48
- <span class="font-semibold">9:41</span>
49
- </div>
50
- <div class="flex items-center gap-1">
51
- <svg width="17" height="11" viewBox="0 0 17 11" class="opacity-80">
52
- <rect x="1" y="3" width="15" height="7" rx="2" stroke="currentColor" fill="none"/>
53
- <rect x="3" y="5" width="11" height="3" rx="1" fill="currentColor"/>
54
- </svg>
55
- </div>
56
- <div class="flex items-center gap-1">
57
- <svg width="17" height="11" viewBox="0 0 17 11" class="opacity-80">
58
- <path d="M8.5 1l6.5 9H2L8.5 1z" stroke="currentColor" fill="currentColor" opacity="0.3"/>
59
- </svg>
60
- <svg width="2" height="4" class="opacity-60">
61
- <circle cx="1" cy="2" r="1" fill="currentColor"/>
62
- <circle cx="1" cy="2" r="1" fill="currentColor"/>
63
- </svg>
64
- </div>
65
  </div>
66
-
67
- <!-- Header - iOS Style -->
68
- <header class="w-full px-6 pt-4 pb-2 flex items-center justify-between">
69
  <div class="flex items-center gap-3">
70
- <div class="w-8 h-8 rounded-xl bg-gradient-to-br from-gold-400 to-gold-600 flex items-center justify-center shadow-lg">
71
- <svg width="16" height="16" viewBox="0 0 100 100" class="text-black">
72
- <polygon points="50 15 85 35 85 65 50 85 15 65 15 35" fill="currentColor"></polygon>
73
  </svg>
74
  </div>
75
- <div class="text-lg font-semibold tracking-tight">
76
- Trait <span class="text-gold-400">Architect</span>
77
  </div>
78
  </div>
79
- <button id="resetBtn" class="px-3 py-1.5 rounded-lg bg-white/10 hover:bg-white/15 text-sm font-medium transition-all duration-200">
80
- Reset
81
- </button>
 
 
82
  </header>
83
  <!-- Hero -->
84
- <main id="hero" class="flex-1 flex flex-col justify-center px-6 -mt-6">
85
- <div class="text-center space-y-6">
86
- <h1 class="text-4xl leading-tight font-bold tracking-tight">
87
- Map Your <span class="bg-gradient-to-r from-gold-400 to-gold-600 bg-clip-text text-transparent">Inner Landscape</span>
88
  </h1>
89
- <p class="text-white/70 text-lg leading-relaxed max-w-sm mx-auto">
90
- A premium, hexagonal journey through your core traits. Thoughtful insights, delivered elegantly.
91
  </p>
92
- <div class="space-y-3 pt-4">
93
- <button id="startBtn" class="w-full max-w-xs px-6 py-3.5 rounded-2xl bg-gradient-to-r from-gold-500 to-gold-600 text-black font-semibold text-lg shadow-xl hover:shadow-2xl hover:scale-[1.02] transition-all duration-200 active:scale-[0.98]">
94
- Begin Assessment
95
  </button>
96
- <button id="loadDemoBtn" class="w-full max-w-xs px-6 py-3.5 rounded-2xl bg-white/10 hover:bg-white/15 text-white font-medium text-lg transition-all duration-200 active:scale-[0.98] border border-white/20">
97
- View Demo
98
  </button>
99
  </div>
 
100
  </div>
101
  </main>
102
-
103
  <!-- Test -->
104
- <section id="test" class="hidden flex-1 px-6 pt-8 pb-6">
105
- <div class="max-w-sm mx-auto space-y-6">
106
- <div class="flex items-center justify-between">
107
- <h2 class="text-xl font-semibold">Assessment</h2>
108
- <div id="progress" class="text-sm text-white/50">1 / 16</div>
109
  </div>
110
- <div id="questions" class="space-y-4"></div>
111
- <div class="flex items-center justify-between pt-4">
112
- <button id="backToHero" class="px-4 py-2 rounded-xl bg-white/10 hover:bg-white/15 text-sm font-medium transition-all duration-200">
113
- Back
 
 
 
 
 
 
 
 
 
 
114
  </button>
115
  <div class="flex items-center gap-3">
116
- <button id="prevBtn" class="px-4 py-2 rounded-xl bg-white/10 hover:bg-white/15 text-sm font-medium transition-all duration-200 disabled:opacity-40 disabled:cursor-not-allowed">Prev</button>
117
- <button id="nextBtn" class="px-6 py-2 rounded-xl bg-gradient-to-r from-gold-500 to-gold-600 text-black font-semibold transition-all duration-200 disabled:opacity-40 disabled:cursor-not-allowed">Next</button>
118
  </div>
119
  </div>
120
  </div>
121
  </section>
122
 
123
- <!-- Map -->
124
- <section id="map" class="hidden flex-1 px-6 pt-8 pb-6">
125
- <div class="max-w-sm mx-auto">
126
  <div class="flex items-center justify-between mb-6">
127
- <div>
128
- <h2 class="text-xl font-semibold">Your Map</h2>
129
- <p class="text-sm text-white/50">Tap hexagons for insights</p>
 
 
 
 
 
 
 
 
 
130
  </div>
131
- <div class="flex items-center gap-2">
132
- <button id="retakeBtn" class="px-3 py-1.5 rounded-lg bg-white/10 hover:bg-white/15 text-xs font-medium transition-all duration-200">Retake</button>
133
- <button id="exportBtn" class="px-3 py-1.5 rounded-lg bg-white/10 hover:bg-white/15 text-xs font-medium transition-all duration-200">Export</button>
 
 
 
 
 
 
 
134
  </div>
135
  </div>
 
 
136
 
137
- <!-- Insight Banner -->
138
- <div id="insightBanner" class="hidden mb-4 p-4 rounded-2xl bg-white/5 border border-white/10">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
139
  <div class="flex items-start gap-3">
140
- <div class="w-6 h-6 rounded-full bg-gold-500/20 flex items-center justify-center mt-0.5">
141
- <div class="w-2 h-2 rounded-full bg-gold-400"></div>
 
 
 
 
 
 
142
  </div>
143
- <p id="insightText" class="text-sm text-white/80 leading-relaxed"></p>
144
  </div>
145
  </div>
146
-
147
  <!-- Hex Grid -->
148
- <div id="hexGrid" class="relative mx-auto" style="width: 100%; height: 420px;"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
 
150
  <!-- Legend -->
151
- <div class="mt-6 flex items-center justify-center gap-6 text-xs text-white/60">
152
  <div class="flex items-center gap-2">
153
- <span class="w-2 h-2 rounded-full" style="background: hsl(45 85% 55%);"></span>
154
- <span>High</span>
155
  </div>
156
  <div class="flex items-center gap-2">
157
- <span class="w-2 h-2 rounded-full" style="background: hsl(210 75% 55%);"></span>
158
  <span>Balanced</span>
159
  </div>
160
  <div class="flex items-center gap-2">
161
- <span class="w-2 h-2 rounded-full" style="background: hsl(210 10% 45%);"></span>
162
- <span>Emerging</span>
163
  </div>
164
  </div>
165
  </div>
166
  </section>
167
-
168
- <!-- Detail Panel -->
169
  <div id="panel" class="fixed inset-0 pointer-events-none">
170
- <div id="panelBackdrop" class="absolute inset-0 bg-black/50 opacity-0 transition-opacity duration-300"></div>
171
- <aside id="panelContent" class="absolute bottom-0 left-0 right-0 bg-black/95 backdrop-blur-xl border-t border-white/10 translate-y-full transition-transform duration-300 pointer-events-auto rounded-t-3xl">
172
- <div class="p-6">
173
- <div class="w-8 h-1 bg-white/20 rounded-full mx-auto mb-4"></div>
174
- <div class="flex items-start justify-between mb-4">
175
- <div class="flex items-center gap-3">
176
- <div id="panelBadge" class="w-3 h-3 rounded-full"></div>
177
- <div>
178
- <h3 id="panelTitle" class="text-xl font-semibold">Trait</h3>
179
- <p id="panelSubtitle" class="text-sm text-white/50">Score</p>
180
- </div>
181
  </div>
182
- <button id="panelClose" class="p-2 rounded-xl bg-white/10 hover:bg-white/15">
183
- <svg width="16" height="16" viewBox="0 0 24 24" fill="none"><path d="M6 6l12 12M6 18L18 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/></svg>
184
- </button>
185
  </div>
186
- <div class="space-y-4 max-h-96 overflow-y-auto">
187
- <p id="panelDesc" class="text-white/80 leading-relaxed"></p>
 
 
 
 
188
 
189
- <div class="p-4 rounded-2xl bg-white/5">
190
- <div class="flex items-center justify-between mb-2">
191
- <span class="text-sm text-white/70">Score</span>
192
- <span id="panelScore" class="font-semibold"></span>
193
- </div>
194
- <div class="w-full h-2 rounded-full bg-white/10 overflow-hidden">
195
- <div id="panelScoreBar" class="h-full bg-gradient-to-r from-gold-500 to-gold-600 transition-all duration-500"></div>
196
- </div>
197
  </div>
198
-
199
- <div class="space-y-3">
200
- <h4 class="font-semibold text-white/90">Growth Path</h4>
201
- <ul id="panelGrowth" class="space-y-2 text-sm text-white/70"></ul>
202
  </div>
 
203
 
204
- <div class="space-y-3">
205
- <h4 class="font-semibold text-white/90">Prompts</h4>
206
- <ul id="panelPrompts" class="space-y-2 text-sm text-white/70 list-disc list-inside"></ul>
207
- </div>
208
 
209
- <div id="panelUnlock" class="hidden p-4 rounded-2xl bg-gold-500/10 border border-gold-500/30">
210
- <p class="text-gold-300 text-sm" id="panelUnlockText"></p>
211
- </div>
 
 
 
 
 
 
 
 
 
 
212
  </div>
213
  </div>
214
  </aside>
215
  </div>
216
-
217
- <!-- Home Indicator -->
218
- <div class="h-6 bg-black"></div>
 
219
  </div>
220
  <script src="script.js"></script>
 
221
  </body>
222
- </html>
 
37
  </script>
38
  <link rel="preconnect" href="https://fonts.googleapis.com">
39
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
40
+ <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
41
  <link rel="stylesheet" href="style.css" />
42
  </head>
43
+ <body class="min-h-screen bg-slate-950 text-slate-100 selection:bg-gold-500 selection:text-slate-950">
44
  <div id="app" class="relative min-h-screen flex flex-col">
45
+ <!-- Background Decorative Glow -->
46
+ <div aria-hidden="true" class="pointer-events-none absolute inset-0 -z-10">
47
+ <div class="absolute top-1/4 left-1/2 -translate-x-1/2 w-[70vw] h-[70vw] opacity-30 blur-3xl rounded-full"
48
+ style="background: radial-gradient(closest-side, rgba(212,175,55,0.15), transparent 60%);"></div>
49
+ <div class="absolute bottom-0 right-0 w-[40vw] h-[40vw] opacity-20 blur-3xl rounded-full"
50
+ style="background: radial-gradient(closest-side, rgba(59,130,246,0.18), transparent 60%);"></div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
  </div>
52
+ <!-- Header -->
53
+ <header class="w-full px-6 md:px-10 py-5 flex items-center justify-center border-b border-white/5 bg-slate-950/50 backdrop-blur">
 
54
  <div class="flex items-center gap-3">
55
+ <div class="w-10 h-10 rounded-md bg-gold-500/20 flex items-center justify-center shadow-glow">
56
+ <svg width="20" height="20" viewBox="0 0 100 100" class="text-gold-500">
57
+ <polygon points="50 5 95 30 95 70 50 95 5 70 5 30" fill="currentColor"></polygon>
58
  </svg>
59
  </div>
60
+ <div class="text-xl font-bold tracking-wide">
61
+ DepthMap <span class="text-gold-500">Trait Architect</span>
62
  </div>
63
  </div>
64
+ <div class="absolute right-6 hidden md:flex items-center gap-3">
65
+ <button id="resetBtn" class="px-3 py-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10 text-sm transition">
66
+ Reset Assessment
67
+ </button>
68
+ </div>
69
  </header>
70
  <!-- Hero -->
71
+ <main id="hero" class="flex-1 grid place-items-center px-6">
72
+ <div class="max-w-3xl text-center">
73
+ <h1 class="text-4xl md:text-6xl font-extrabold tracking-tight">
74
+ Map Your <span class="text-gold-500">Inner Landscape</span>
75
  </h1>
76
+ <p class="mt-6 text-slate-300/90 text-lg md:text-xl leading-relaxed">
77
+ A golden-age inspired, hexagonal journey through your core traits. Answer thoughtful prompts to reveal a living map of who you are — and who you're becoming.
78
  </p>
79
+ <div class="mt-10 flex flex-col sm:flex-row items-center justify-center gap-4">
80
+ <button id="startBtn" class="px-6 py-3 rounded-lg bg-gold-500 text-slate-950 font-semibold shadow-glow hover:bg-gold-400 transition">
81
+ Begin Core Assessment
82
  </button>
83
+ <button id="loadDemoBtn" class="px-6 py-3 rounded-lg bg-white/5 hover:bg-white/10 border border-white/10 text-slate-100 transition">
84
+ Load Demo Scores
85
  </button>
86
  </div>
87
+ <p class="mt-4 text-xs text-slate-400">Secure local storage. Your development data stays private.</p>
88
  </div>
89
  </main>
 
90
  <!-- Test -->
91
+ <section id="test" class="hidden flex-1 px-6 md:px-10 py-10">
92
+ <div class="max-w-4xl mx-auto">
93
+ <div class="flex items-center justify-between mb-6">
94
+ <h2 class="text-2xl font-bold">Assessment</h2>
95
+ <div id="progress" class="text-sm text-slate-400">0 / 16</div>
96
  </div>
97
+ <div id="assessmentPhase" class="mb-6 p-3 rounded-lg border border-gold-500/30 bg-gold-500/10">
98
+ <div class="flex items-center gap-2">
99
+ <svg width="16" height="16" viewBox="0 0 24 24" class="text-gold-500">
100
+ <path d="M12 2l3 7h7l-5.5 4.2L18 21l-6-4-6 4 1.5-7.8L2 9h7l3-7z" fill="currentColor" opacity="0.3"/>
101
+ <circle cx="12" cy="12" r="3" fill="currentColor"/>
102
+ </svg>
103
+ <span id="phaseText" class="text-gold-300 text-sm font-medium">Core Assessment Phase</span>
104
+ </div>
105
+ </div>
106
+ <div id="questions" class="space-y-8"></div>
107
+
108
+ <div class="mt-10 flex items-center justify-between">
109
+ <button id="backToHero" class="px-4 py-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10 text-sm transition">
110
+ Back to Hero
111
  </button>
112
  <div class="flex items-center gap-3">
113
+ <button id="prevBtn" class="px-4 py-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10 text-sm transition disabled:opacity-40 disabled:cursor-not-allowed">Previous</button>
114
+ <button id="nextBtn" class="px-4 py-2 rounded-md bg-gold-500 text-slate-950 font-semibold hover:bg-gold-400 transition disabled:opacity-40 disabled:cursor-not-allowed">Next</button>
115
  </div>
116
  </div>
117
  </div>
118
  </section>
119
 
120
+ <!-- Extended Assessment -->
121
+ <section id="extendedTest" class="hidden flex-1 px-6 md:px-10 py-10">
122
+ <div class="max-w-4xl mx-auto">
123
  <div class="flex items-center justify-between mb-6">
124
+ <h2 class="text-2xl font-bold">Deep Dive Assessment</h2>
125
+ <div id="extendedProgress" class="text-sm text-slate-400">0 / 0</div>
126
+ </div>
127
+ <div class="mb-6 p-4 rounded-lg border border-blue-500/30 bg-blue-500/10">
128
+ <div class="flex items-start gap-3">
129
+ <svg width="18" height="18" viewBox="0 0 24 24" class="text-blue-400 mt-0.5">
130
+ <path d="M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53C16.17 17.98 14.21 19 12 19z" fill="currentColor"/>
131
+ </svg>
132
+ <div>
133
+ <p class="text-blue-300 font-medium">Leadership & Influence Deep Analysis</p>
134
+ <p class="text-blue-200/80 text-sm mt-1">Based on your core traits, we've identified areas for deeper exploration, particularly around leadership potential and suggestibility.</p>
135
+ </div>
136
  </div>
137
+ </div>
138
+ <div id="extendedQuestions" class="space-y-8"></div>
139
+
140
+ <div class="mt-10 flex items-center justify-between">
141
+ <button id="backToCore" class="px-4 py-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10 text-sm transition">
142
+ Back to Core Map
143
+ </button>
144
+ <div class="flex items-center gap-3">
145
+ <button id="extendedPrevBtn" class="px-4 py-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10 text-sm transition disabled:opacity-40 disabled:cursor-not-allowed">Previous</button>
146
+ <button id="extendedNextBtn" class="px-4 py-2 rounded-md bg-blue-500 text-white font-semibold hover:bg-blue-400 transition disabled:opacity-40 disabled:cursor-not-allowed">Next</button>
147
  </div>
148
  </div>
149
+ </div>
150
+ </section>
151
 
152
+ <!-- Map -->
153
+ <section id="map" class="hidden flex-1 px-6 md:px-10 py-10">
154
+ <div class="max-w-6xl mx-auto">
155
+ <div class="flex flex-col md:flex-row md:items-center md:justify-between gap-4 mb-6">
156
+ <div>
157
+ <h2 class="text-2xl font-bold">Your Trait Map</h2>
158
+ <p class="text-slate-400 text-sm">Click any hexagon to inspect depth, growth paths, and coaching prompts.</p>
159
+ </div>
160
+ <div class="flex items-center gap-3">
161
+ <button id="retakeBtn" class="px-4 py-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10 text-sm transition">Retake Assessment</button>
162
+ <button id="deepDiveBtn" class="px-4 py-2 rounded-md bg-blue-500 hover:bg-blue-400 text-white font-medium transition">Deep Dive Analysis</button>
163
+ <button id="exportBtn" class="px-4 py-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10 text-sm transition">Export Snapshot</button>
164
+ </div>
165
+ </div>
166
+ <!-- Insight Banner -->
167
+ <div id="insightBanner" class="hidden mb-6 p-4 rounded-lg border border-white/10 bg-white/5">
168
  <div class="flex items-start gap-3">
169
+ <div class="mt-0.5 text-gold-500">
170
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none">
171
+ <path d="M12 2l3 7h7l-5.5 4.2L18 21l-6-4-6 4 1.5-7.8L2 9h7l3-7z" stroke="currentColor" stroke-width="1.5" fill="currentColor" opacity="0.15"/>
172
+ <path d="M12 8v5m0 3h.01" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
173
+ </svg>
174
+ </div>
175
+ <div>
176
+ <p id="insightText" class="text-slate-200"></p>
177
  </div>
 
178
  </div>
179
  </div>
 
180
  <!-- Hex Grid -->
181
+ <div id="hexGrid" class="relative mx-auto" style="width: min(100%, 980px); height: 560px;"></div>
182
+
183
+ <!-- Leadership Indicators -->
184
+ <div id="leadershipPanel" class="mt-6 p-4 rounded-lg border border-blue-500/30 bg-blue-500/10 hidden">
185
+ <div class="flex items-start gap-3">
186
+ <svg width="18" height="18" viewBox="0 0 24 24" class="text-blue-400 mt-0.5">
187
+ <path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z" fill="currentColor"/>
188
+ </svg>
189
+ <div>
190
+ <h4 class="font-semibold text-blue-300">Leadership Profile</h4>
191
+ <p class="text-blue-200/90 text-sm mt-1">Based on your suggestibility and leadership traits, we've identified key areas for development.</p>
192
+ <div id="leadershipInsights" class="mt-3 space-y-2"></div>
193
+ </div>
194
+ </div>
195
+ </div>
196
 
197
  <!-- Legend -->
198
+ <div class="mt-6 flex flex-wrap items-center gap-4 text-sm text-slate-300">
199
  <div class="flex items-center gap-2">
200
+ <span class="inline-block w-3 h-3 rounded-sm" style="background: hsl(45 85% 55%);"></span>
201
+ <span>High / well-developed</span>
202
  </div>
203
  <div class="flex items-center gap-2">
204
+ <span class="inline-block w-3 h-3 rounded-sm" style="background: hsl(210 75% 55%);"></span>
205
  <span>Balanced</span>
206
  </div>
207
  <div class="flex items-center gap-2">
208
+ <span class="inline-block w-3 h-3 rounded-sm" style="background: hsl(210 10% 45%);"></span>
209
+ <span>Latent / emerging</span>
210
  </div>
211
  </div>
212
  </div>
213
  </section>
214
+ <!-- Detail Panel -->
 
215
  <div id="panel" class="fixed inset-0 pointer-events-none">
216
+ <div id="panelBackdrop" class="absolute inset-0 bg-black/60 opacity-0 transition-opacity"></div>
217
+ <aside id="panelContent" class="absolute right-0 top-0 h-full w-full max-w-md bg-slate-900 border-l border-white/10 translate-x-full transition-transform duration-300 pointer-events-auto shadow-2xl">
218
+ <div class="p-5 flex items-start justify-between">
219
+ <div>
220
+ <div class="flex items-center gap-2">
221
+ <div id="panelBadge" class="w-2 h-2 rounded-full"></div>
222
+ <h3 id="panelTitle" class="text-xl font-semibold">Trait</h3>
 
 
 
 
223
  </div>
224
+ <p id="panelSubtitle" class="text-sm text-slate-400 mt-1">Score</p>
 
 
225
  </div>
226
+ <button id="panelClose" class="p-2 rounded-md bg-white/5 hover:bg-white/10 border border-white/10">
227
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none"><path d="M6 6l12 12M6 18L18 6" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"/></svg>
228
+ </button>
229
+ </div>
230
+ <div class="px-5 pb-6 overflow-y-auto h-[calc(100%-4rem)] space-y-5">
231
+ <p id="panelDesc" class="text-slate-200/90"></p>
232
 
233
+ <div class="rounded-lg border border-white/10 bg-white/5 p-4">
234
+ <div class="flex items-center justify-between">
235
+ <span class="text-slate-300">Current Score</span>
236
+ <span id="panelScore" class="font-semibold text-slate-100"></span>
 
 
 
 
237
  </div>
238
+ <div class="mt-2 w-full h-2 rounded bg-white/5 overflow-hidden">
239
+ <div id="panelScoreBar" class="h-full bg-gold-500"></div>
 
 
240
  </div>
241
+ </div>
242
 
243
+ <div>
244
+ <h4 class="font-semibold mb-2">Growth Path</h4>
245
+ <ul id="panelGrowth" class="space-y-2 text-slate-300/90"></ul>
246
+ </div>
247
 
248
+ <div>
249
+ <h4 class="font-semibold mb-2">Coaching Prompts</h4>
250
+ <ul id="panelPrompts" class="space-y-2 text-slate-300/90 list-disc list-inside"></ul>
251
+ </div>
252
+
253
+ <div id="panelUnlock" class="hidden p-4 rounded-lg border border-gold-500/30 bg-gold-500/10">
254
+ <p class="text-gold-300 text-sm" id="panelUnlockText"></p>
255
+ </div>
256
+
257
+ <!-- Leadership-specific insights -->
258
+ <div id="leadershipSection" class="hidden p-4 rounded-lg border border-blue-500/30 bg-blue-500/10">
259
+ <h4 class="font-semibold mb-2 text-blue-300">Leadership Context</h4>
260
+ <div id="leadershipContext" class="text-blue-200/90 text-sm space-y-2"></div>
261
  </div>
262
  </div>
263
  </aside>
264
  </div>
265
+ <!-- Footer -->
266
+ <footer class="px-6 md:px-10 py-6 text-xs text-slate-400 border-t border-white/5">
267
+ Built for clarity, curiosity, and growth. Secure local data storage.
268
+ </footer>
269
  </div>
270
  <script src="script.js"></script>
271
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
272
  </body>
273
+ </html>
style.css CHANGED
@@ -1,104 +1,39 @@
1
 
2
- /* DepthMap Trait Architect - Smooth & Stable UI */
3
 
4
  /* Ensure smooth transitions and crisp rendering */
5
- * {
6
- -webkit-font-smoothing: antialiased;
7
- -moz-osx-font-smoothing: grayscale;
8
- -webkit-tap-highlight-color: transparent;
9
- }
10
 
11
  /* Custom scrollbar for panel */
12
  #panelContent::-webkit-scrollbar { width: 8px; }
13
  #panelContent::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 8px; }
14
  #panelContent::-webkit-scrollbar-track { background: transparent; }
15
 
16
- /* Smooth background animations for touch devices */
17
- @keyframes subtleFlow {
18
- 0%, 100% {
19
- transform: translateX(0) translateY(0) rotate(0deg);
20
- filter: hue-rotate(0deg) brightness(1);
21
- }
22
- 25% {
23
- transform: translateX(1px) translateY(-1px) rotate(0.5deg);
24
- filter: hue-rotate(10deg) brightness(1.02);
25
- }
26
- 50% {
27
- transform: translateX(0) translateY(0) rotate(0deg);
28
- filter: hue-rotate(20deg) brightness(1.05);
29
- }
30
- 75% {
31
- transform: translateX(-1px) translateY(1px) rotate(-0.5deg);
32
- filter: hue-rotate(10deg) brightness(1.02);
33
- }
34
- }
35
-
36
- @keyframes gentleGlow {
37
- 0%, 100% {
38
- opacity: 0.3;
39
- transform: scale(1);
40
- }
41
- 50% {
42
- opacity: 0.5;
43
- transform: scale(1.02);
44
- }
45
- }
46
-
47
- /* Background elements with smooth animations */
48
- .bg-animated {
49
- animation: subtleFlow 8s ease-in-out infinite;
50
- }
51
-
52
- .bg-glow {
53
- animation: gentleGlow 4s ease-in-out infinite;
54
- }
55
-
56
- /* Touch device optimizations */
57
- @media (hover: none) and (pointer: coarse) {
58
- .bg-animated {
59
- animation: subtleFlow 12s ease-in-out infinite;
60
- }
61
-
62
- .bg-glow {
63
- animation: gentleGlow 6s ease-in-out infinite;
64
- }
65
-
66
- /* Enhanced touch feedback */
67
- .hex:active {
68
- transform: scale(0.98);
69
- transition: transform 100ms ease-out;
70
- }
71
- }
72
-
73
- /* Honeycomb Grid Container - Stable positioning */
74
  #hexGrid {
75
  position: relative;
76
  margin: 0 auto;
77
- contain: layout style paint;
78
  }
79
 
80
- /* Hex cell base - stable structure without ghosting */
81
  .hex {
82
  position: absolute;
83
  width: 140px;
84
- height: 161.24px;
85
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
86
- transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
87
- will-change: transform, filter;
88
  cursor: pointer;
89
- z-index: 1;
90
- backface-visibility: hidden;
91
- transform: translateZ(0);
92
  }
93
 
94
- /* Smooth hover effects without ghosting */
95
  .hex:hover {
96
- transform: translateY(-4px) scale(1.02) translateZ(0);
97
- filter: brightness(1.05);
98
  z-index: 10;
99
  }
100
 
101
- /* Stable hex inner content */
102
  .hex-inner {
103
  position: absolute;
104
  inset: 0;
@@ -108,28 +43,26 @@
108
  justify-content: center;
109
  text-align: center;
110
  padding: 16px;
111
- background: linear-gradient(135deg, rgba(255,255,255,0.12), rgba(255,255,255,0.08));
112
- backdrop-filter: blur(8px);
113
- border: 1px solid rgba(255,255,255,0.25);
114
- transition: all 200ms ease;
115
  }
116
 
117
- /* Hex label with stable positioning */
118
  .hex-label {
119
  font-weight: 700;
120
  letter-spacing: 0.02em;
121
  font-size: 13px;
122
  line-height: 1.2;
123
  color: #1e293b;
124
- text-shadow: 0 1px 2px rgba(255,255,255,0.5);
125
  mix-blend-mode: luminosity;
126
  margin-bottom: 6px;
127
  max-width: 90%;
128
  word-wrap: break-word;
129
- transition: color 200ms ease;
130
  }
131
 
132
- /* Smooth score badge */
133
  .hex-score {
134
  position: absolute;
135
  bottom: 8px;
@@ -137,84 +70,83 @@
137
  font-size: 11px;
138
  font-weight: 800;
139
  color: #1e293b;
140
- background: rgba(255,255,255,0.9);
141
  padding: 3px 8px;
142
  border-radius: 12px;
143
  opacity: 0;
144
- transform: translateY(4px) scale(0.95);
145
- transition: all 200ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
146
  backdrop-filter: blur(10px);
147
- border: 1px solid rgba(255,255,255,0.4);
 
 
 
 
 
 
 
148
  }
149
 
150
- /* Stable glow ring */
151
  .hex-ring {
152
  position: absolute;
153
- inset: -6px;
154
  clip-path: inherit;
155
  z-index: -1;
156
- filter: blur(8px);
157
- opacity: 0.6;
158
- transition: all 200ms ease;
159
- transform: translateZ(0);
160
  }
161
 
162
  .hex:hover .hex-ring {
163
- filter: blur(12px);
164
- opacity: 0.8;
165
- transform: scale(1.02) translateZ(0);
166
  }
167
 
168
- /* Smooth entrance animation */
169
- @keyframes smoothHexEnter {
170
  0% {
171
  opacity: 0;
172
- transform: translateY(20px) scale(0.95) translateZ(0);
173
  }
174
  100% {
175
  opacity: 1;
176
- transform: translateY(0) scale(1) translateZ(0);
177
  }
178
  }
179
 
180
  .hex {
181
- animation: smoothHexEnter 600ms cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
182
  opacity: 0;
183
  }
184
 
185
- /* Staggered delays for smooth flow */
186
- .hex:nth-child(1) { animation-delay: 50ms; }
187
- .hex:nth-child(2) { animation-delay: 100ms; }
188
- .hex:nth-child(3) { animation-delay: 150ms; }
189
- .hex:nth-child(4) { animation-delay: 200ms; }
190
- .hex:nth-child(5) { animation-delay: 250ms; }
191
- .hex:nth-child(6) { animation-delay: 300ms; }
192
- .hex:nth-child(7) { animation-delay: 350ms; }
193
- .hex:nth-child(8) { animation-delay: 400ms; }
194
- .hex:nth-child(9) { animation-delay: 450ms; }
195
-
196
- /* Show score smoothly */
197
- .hex.revealed:hover .hex-score,
198
- .hex.revealed .hex-score {
199
- opacity: 1;
200
- transform: translateY(0) scale(1);
201
- }
202
 
203
- /* Panel transitions - smooth and stable */
204
  #panelContent.translate-x-0 { transform: translateX(0); }
205
  #panelBackdrop.opacity-100 { opacity: 1; }
206
 
207
- /* Enhanced panel backdrop with smooth blur */
208
  #panelBackdrop {
209
- backdrop-filter: blur(6px);
210
- transition: opacity 300ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
211
  }
212
 
213
- /* Responsive hexagonal grid - maintain proportions */
214
  @media (max-width: 768px) {
215
  .hex {
216
  width: 120px;
217
- height: 138.32px;
218
  }
219
  .hex-label { font-size: 12px; }
220
  .hex-score { font-size: 10px; }
@@ -223,38 +155,37 @@
223
  @media (max-width: 480px) {
224
  .hex {
225
  width: 100px;
226
- height: 115.27px;
227
  }
228
  .hex-label { font-size: 11px; }
229
  }
230
 
231
- /* Smooth shadow transitions */
232
- .hex-inner {
233
- box-shadow:
234
- 0 2px 16px rgba(0, 0, 0, 0.08),
235
- inset 0 1px 0 rgba(255, 255, 255, 0.15),
236
- inset 0 -1px 0 rgba(0, 0, 0, 0.05);
237
- transition: all 200ms ease;
238
  }
239
 
240
- .hex:hover .hex-inner {
241
- box-shadow:
242
- 0 6px 24px rgba(0, 0, 0, 0.12),
243
- inset 0 1px 0 rgba(255, 255, 255, 0.25),
244
- inset 0 -1px 0 rgba(0, 0, 0, 0.08);
245
  }
246
 
247
- /* Smooth button interactions */
248
- button {
249
- transition: all 150ms cubic-bezier(0.25, 0.46, 0.45, 0.94);
250
- transform: translateZ(0);
 
 
251
  }
252
 
253
- button:active {
254
- transform: scale(0.98);
 
 
 
255
  }
256
 
257
- /* Stable utility classes */
258
  .sr-only {
259
  position: absolute !important;
260
  height: 1px; width: 1px;
@@ -262,23 +193,3 @@ button:active {
262
  clip: rect(1px, 1px, 1px, 1px);
263
  white-space: nowrap;
264
  }
265
-
266
- /* Performance optimizations */
267
- .hex, .hex-inner, .hex-ring, .bg-animated, .bg-glow {
268
- contain: layout style paint;
269
- transform: translateZ(0);
270
- backface-visibility: hidden;
271
- }
272
-
273
- /* Touch-optimized animations */
274
- @media (hover: none) {
275
- .hex:hover {
276
- transform: none;
277
- filter: none;
278
- }
279
-
280
- .hex:active {
281
- transform: scale(0.98) translateY(1px);
282
- transition: transform 100ms ease;
283
- }
284
- }
 
1
 
2
+ /* DepthMap Trait Architect - Additional Styles */
3
 
4
  /* Ensure smooth transitions and crisp rendering */
5
+ * { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
 
 
 
 
6
 
7
  /* Custom scrollbar for panel */
8
  #panelContent::-webkit-scrollbar { width: 8px; }
9
  #panelContent::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 8px; }
10
  #panelContent::-webkit-scrollbar-track { background: transparent; }
11
 
12
+ /* Honeycomb Grid Container */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
13
  #hexGrid {
14
  position: relative;
15
  margin: 0 auto;
 
16
  }
17
 
18
+ /* Hex cell base - pointy-top hexagons for better interlocking */
19
  .hex {
20
  position: absolute;
21
  width: 140px;
22
+ height: 161.24px; /* width * 0.866 for pointy-top hex height */
23
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
24
+ transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
25
+ will-change: transform, filter, opacity;
26
  cursor: pointer;
 
 
 
27
  }
28
 
29
+ /* Enhanced hover effects */
30
  .hex:hover {
31
+ transform: translateY(-8px) scale(1.03);
32
+ filter: brightness(1.1) saturate(1.1);
33
  z-index: 10;
34
  }
35
 
36
+ /* Hex inner content with better positioning */
37
  .hex-inner {
38
  position: absolute;
39
  inset: 0;
 
43
  justify-content: center;
44
  text-align: center;
45
  padding: 16px;
46
+ background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05));
47
+ backdrop-filter: blur(10px);
48
+ border: 1px solid rgba(255,255,255,0.2);
 
49
  }
50
 
51
+ /* Hex label with improved typography */
52
  .hex-label {
53
  font-weight: 700;
54
  letter-spacing: 0.02em;
55
  font-size: 13px;
56
  line-height: 1.2;
57
  color: #1e293b;
58
+ text-shadow: 0 1px 2px rgba(255,255,255,0.4);
59
  mix-blend-mode: luminosity;
60
  margin-bottom: 6px;
61
  max-width: 90%;
62
  word-wrap: break-word;
 
63
  }
64
 
65
+ /* Score badge with subtle animation */
66
  .hex-score {
67
  position: absolute;
68
  bottom: 8px;
 
70
  font-size: 11px;
71
  font-weight: 800;
72
  color: #1e293b;
73
+ background: rgba(255,255,255,0.85);
74
  padding: 3px 8px;
75
  border-radius: 12px;
76
  opacity: 0;
77
+ transform: translateY(8px) scale(0.9);
78
+ transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);
79
  backdrop-filter: blur(10px);
80
+ border: 1px solid rgba(255,255,255,0.3);
81
+ }
82
+
83
+ /* Show score on hover when trait is "unlocked" */
84
+ .hex.revealed:hover .hex-score,
85
+ .hex.revealed .hex-score {
86
+ opacity: 1;
87
+ transform: translateY(0) scale(1);
88
  }
89
 
90
+ /* Glow ring with enhanced effects */
91
  .hex-ring {
92
  position: absolute;
93
+ inset: -8px;
94
  clip-path: inherit;
95
  z-index: -1;
96
+ filter: blur(12px);
97
+ opacity: 0.8;
98
+ transition: all 300ms ease;
 
99
  }
100
 
101
  .hex:hover .hex-ring {
102
+ filter: blur(16px);
103
+ opacity: 1;
104
+ transform: scale(1.05);
105
  }
106
 
107
+ /* Loading animation for hex entrance */
108
+ @keyframes hexFadeIn {
109
  0% {
110
  opacity: 0;
111
+ transform: translateY(30px) scale(0.8) rotate(-2deg);
112
  }
113
  100% {
114
  opacity: 1;
115
+ transform: translateY(0) scale(1) rotate(0deg);
116
  }
117
  }
118
 
119
  .hex {
120
+ animation: hexFadeIn 500ms ease-out forwards;
121
  opacity: 0;
122
  }
123
 
124
+ /* Staggered animation delays for honeycombing effect */
125
+ .hex:nth-child(1) { animation-delay: 0ms; }
126
+ .hex:nth-child(2) { animation-delay: 50ms; }
127
+ .hex:nth-child(3) { animation-delay: 100ms; }
128
+ .hex:nth-child(4) { animation-delay: 150ms; }
129
+ .hex:nth-child(5) { animation-delay: 200ms; }
130
+ .hex:nth-child(6) { animation-delay: 250ms; }
131
+ .hex:nth-child(7) { animation-delay: 300ms; }
132
+ .hex:nth-child(8) { animation-delay: 350ms; }
133
+ .hex:nth-child(9) { animation-delay: 400ms; }
 
 
 
 
 
 
 
134
 
135
+ /* Panel transitions */
136
  #panelContent.translate-x-0 { transform: translateX(0); }
137
  #panelBackdrop.opacity-100 { opacity: 1; }
138
 
139
+ /* Enhanced panel backdrop */
140
  #panelBackdrop {
141
+ backdrop-filter: blur(8px);
142
+ transition: opacity 250ms ease;
143
  }
144
 
145
+ /* Responsive hexagonal grid */
146
  @media (max-width: 768px) {
147
  .hex {
148
  width: 120px;
149
+ height: 138.32px; /* width * 0.866 */
150
  }
151
  .hex-label { font-size: 12px; }
152
  .hex-score { font-size: 10px; }
 
155
  @media (max-width: 480px) {
156
  .hex {
157
  width: 100px;
158
+ height: 115.27px; /* width * 0.866 */
159
  }
160
  .hex-label { font-size: 11px; }
161
  }
162
 
163
+ /* Pulse effect for interactive elements */
164
+ @keyframes gentlePulse {
165
+ 0%, 100% { transform: scale(1); }
166
+ 50% { transform: scale(1.02); }
 
 
 
167
  }
168
 
169
+ .hex:hover {
170
+ animation: gentlePulse 2s ease-in-out infinite;
 
 
 
171
  }
172
 
173
+ /* Subtle shadow enhancement */
174
+ .hex-inner {
175
+ box-shadow:
176
+ 0 4px 20px rgba(0, 0, 0, 0.1),
177
+ inset 0 1px 0 rgba(255, 255, 255, 0.2),
178
+ inset 0 -1px 0 rgba(0, 0, 0, 0.1);
179
  }
180
 
181
+ .hex:hover .hex-inner {
182
+ box-shadow:
183
+ 0 8px 30px rgba(0, 0, 0, 0.15),
184
+ inset 0 1px 0 rgba(255, 255, 255, 0.3),
185
+ inset 0 -1px 0 rgba(0, 0, 0, 0.1);
186
  }
187
 
188
+ /* Small utility for hidden but accessible labels */
189
  .sr-only {
190
  position: absolute !important;
191
  height: 1px; width: 1px;
 
193
  clip: rect(1px, 1px, 1px, 1px);
194
  white-space: nowrap;
195
  }