nguyenthanhasia commited on
Commit
f3cdc9d
·
verified ·
1 Parent(s): d20d2d1

Upload 7 files

Browse files
Files changed (8) hide show
  1. .gitattributes +2 -0
  2. accuracy.png +0 -0
  3. combined_analysis.png +3 -0
  4. english_retest.png +0 -0
  5. example.png +3 -0
  6. index.html +362 -18
  7. script.js +322 -0
  8. styles.css +774 -0
.gitattributes CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ combined_analysis.png filter=lfs diff=lfs merge=lfs -text
37
+ example.png filter=lfs diff=lfs merge=lfs -text
accuracy.png ADDED
combined_analysis.png ADDED

Git LFS Details

  • SHA256: 46a29e285fe2e7b07af43ab64c584fcd2a3268d99cf2178cef5d2340ca3c3eb5
  • Pointer size: 131 Bytes
  • Size of remote file: 844 kB
english_retest.png ADDED
example.png ADDED

Git LFS Details

  • SHA256: d606c650805695d262c838eb94f1063c7fee383cba93d36cbc8dd6eb26d50de2
  • Pointer size: 132 Bytes
  • Size of remote file: 2.29 MB
index.html CHANGED
@@ -1,19 +1,363 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>BIS Reasoning 1.0 - Japanese Benchmark for Belief-Inconsistent Syllogistic Reasoning</title>
7
+ <meta name="description" content="The first large-scale Japanese dataset for evaluating belief-inconsistent syllogistic reasoning in large language models">
8
+ <link rel="stylesheet" href="styles.css">
9
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;600;700&display=swap" rel="stylesheet">
10
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
11
+ </head>
12
+ <body>
13
+ <!-- Navigation -->
14
+ <nav class="navbar">
15
+ <div class="nav-container">
16
+ <div class="nav-logo">
17
+ <h2>BIS Reasoning 1.0</h2>
18
+ </div>
19
+ <ul class="nav-menu">
20
+ <li><a href="#home" class="nav-link">Home</a></li>
21
+ <li><a href="#abstract" class="nav-link">Abstract</a></li>
22
+ <li><a href="#dataset" class="nav-link">Dataset</a></li>
23
+ <li><a href="#results" class="nav-link">Results</a></li>
24
+ <li><a href="#resources" class="nav-link">Resources</a></li>
25
+ </ul>
26
+ <div class="hamburger">
27
+ <span></span>
28
+ <span></span>
29
+ <span></span>
30
+ </div>
31
+ </div>
32
+ </nav>
33
+
34
+ <!-- Hero Section -->
35
+ <section id="home" class="hero">
36
+ <div class="hero-container">
37
+ <div class="hero-content">
38
+ <h1 class="hero-title">
39
+ BIS Reasoning 1.0
40
+ <span class="hero-subtitle">The First Large-Scale Japanese Benchmark for Belief-Inconsistent Syllogistic Reasoning</span>
41
+ </h1>
42
+ <p class="hero-description">
43
+ Evaluating the logical reasoning capabilities of Large Language Models when faced with conclusions that contradict common beliefs
44
+ </p>
45
+ <div class="hero-stats">
46
+ <div class="stat-item">
47
+ <span class="stat-number" data-target="5000">0</span>
48
+ <span class="stat-label">Syllogistic Problems</span>
49
+ </div>
50
+ <div class="stat-item">
51
+ <span class="stat-number" data-target="8">0</span>
52
+ <span class="stat-label">LLMs Evaluated</span>
53
+ </div>
54
+ <div class="stat-item">
55
+ <span class="stat-number" data-target="46">0</span>
56
+ <span class="stat-label">Semantic Categories</span>
57
+ </div>
58
+ </div>
59
+ <div class="hero-buttons">
60
+ <a href="#dataset" class="btn btn-primary">Explore Dataset</a>
61
+ <a href="#results" class="btn btn-secondary">View Results</a>
62
+ </div>
63
+ </div>
64
+ <div class="hero-visual">
65
+ <div class="syllogism-example">
66
+ <div class="premise">
67
+ <span class="premise-label">Premise 1:</span>
68
+ <span class="premise-text">All charcoal is processed biomass fuel</span>
69
+ </div>
70
+ <div class="premise">
71
+ <span class="premise-label">Premise 2:</span>
72
+ <span class="premise-text">All ceramics are charcoal</span>
73
+ </div>
74
+ <div class="conclusion">
75
+ <span class="conclusion-label">Conclusion:</span>
76
+ <span class="conclusion-text">All ceramics are processed biomass fuel</span>
77
+ <span class="validity-badge">Logically Valid</span>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ </div>
82
+ </section>
83
+
84
+ <!-- Abstract Section -->
85
+ <section id="abstract" class="abstract">
86
+ <div class="container">
87
+ <h2 class="section-title">Abstract</h2>
88
+ <div class="abstract-content">
89
+ <p class="abstract-text">
90
+ We present <strong>BIS Reasoning 1.0</strong>, the first large-scale Japanese dataset of syllogistic reasoning problems explicitly designed to evaluate belief-inconsistent reasoning in large language models (LLMs). Unlike prior datasets such as NeuBAROCO and JFLD, which focus on general or belief-aligned reasoning, BIS introduces logically valid yet belief-inconsistent syllogisms to uncover reasoning biases in LLMs trained on human-aligned corpora.
91
+ </p>
92
+ <p class="abstract-text">
93
+ We benchmark state-of-the-art models—including GPT models, Claude models, and leading Japanese LLMs—revealing significant variance in performance, with GPT-4o achieving 79.54% accuracy. Our analysis identifies critical weaknesses in current LLMs when handling logically valid but belief-conflicting inputs.
94
+ </p>
95
+ <div class="key-contributions">
96
+ <h3>Key Contributions</h3>
97
+ <div class="contributions-grid">
98
+ <div class="contribution-item">
99
+ <div class="contribution-icon">📊</div>
100
+ <h4>First Japanese Benchmark</h4>
101
+ <p>5,000 carefully curated belief-inconsistent syllogisms in Japanese</p>
102
+ </div>
103
+ <div class="contribution-item">
104
+ <div class="contribution-icon">🤖</div>
105
+ <h4>Comprehensive Evaluation</h4>
106
+ <p>Systematic comparison of 8 state-of-the-art LLMs</p>
107
+ </div>
108
+ <div class="contribution-item">
109
+ <div class="contribution-icon">🔍</div>
110
+ <h4>Bias Analysis</h4>
111
+ <p>Detailed investigation of reasoning biases and failure modes</p>
112
+ </div>
113
+ <div class="contribution-item">
114
+ <div class="contribution-icon">⚕️</div>
115
+ <h4>Real-world Implications</h4>
116
+ <p>Critical insights for high-stakes applications</p>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </section>
123
+
124
+ <!-- Dataset Section -->
125
+ <section id="dataset" class="dataset">
126
+ <div class="container">
127
+ <h2 class="section-title">Dataset Overview</h2>
128
+ <div class="dataset-content">
129
+ <div class="dataset-description">
130
+ <h3>BIS Dataset Construction</h3>
131
+ <p>
132
+ The BIS dataset consists of 5,000 carefully constructed syllogistic reasoning problems designed to test the robustness of logical inference in LLMs under conditions of belief inconsistency. Each example comprises two premises and one conclusion that is strictly entailed by syllogistic rules, but deliberately conflicts with general knowledge.
133
+ </p>
134
+ </div>
135
+
136
+ <div class="example-section">
137
+ <h3>Example from Dataset</h3>
138
+ <div class="example-container">
139
+ <img src="example.png" alt="Example syllogism from BIS dataset" class="example-image">
140
+ <div class="example-explanation">
141
+ <p>This example illustrates a belief-inconsistent syllogism where the conclusion is logically valid but contradicts common real-world beliefs about ceramics and biomass fuel.</p>
142
+ </div>
143
+ </div>
144
+ </div>
145
+
146
+ <div class="categories-section">
147
+ <h3>Dataset Categories</h3>
148
+ <div class="categories-visual">
149
+ <img src="combined_analysis.png" alt="Dataset category analysis" class="categories-image">
150
+ <div class="categories-description">
151
+ <p>The dataset covers 46 distinct semantic categories, consolidated into 10 broader final categories including Human/Body/Senses, Animals/Organisms, Structure/Logic, and Natural Phenomena/Matter.</p>
152
+ </div>
153
+ </div>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </section>
158
+
159
+ <!-- Results Section -->
160
+ <section id="results" class="results">
161
+ <div class="container">
162
+ <h2 class="section-title">Results & Analysis</h2>
163
+
164
+ <div class="results-overview">
165
+ <h3>Model Performance Overview</h3>
166
+ <div class="performance-table">
167
+ <table>
168
+ <thead>
169
+ <tr>
170
+ <th>Model</th>
171
+ <th>BIS Accuracy (%)</th>
172
+ <th>NeuBAROCO Accuracy (%)</th>
173
+ </tr>
174
+ </thead>
175
+ <tbody>
176
+ <tr class="top-performer">
177
+ <td>GPT-4o</td>
178
+ <td>79.54</td>
179
+ <td>94.01</td>
180
+ </tr>
181
+ <tr>
182
+ <td>llm-jp-3-13b</td>
183
+ <td>59.86</td>
184
+ <td>67.66</td>
185
+ </tr>
186
+ <tr>
187
+ <td>GPT-4-turbo</td>
188
+ <td>59.48</td>
189
+ <td>67.66</td>
190
+ </tr>
191
+ <tr>
192
+ <td>llm-jp-3-13b-instruct3</td>
193
+ <td>40.90</td>
194
+ <td>38.32</td>
195
+ </tr>
196
+ <tr>
197
+ <td>stockmark-13b</td>
198
+ <td>40.34</td>
199
+ <td>47.90</td>
200
+ </tr>
201
+ <tr>
202
+ <td>Claude-3-sonnet</td>
203
+ <td>20.34</td>
204
+ <td>78.44</td>
205
+ </tr>
206
+ <tr>
207
+ <td>Claude-3-opus</td>
208
+ <td>7.18</td>
209
+ <td>61.07</td>
210
+ </tr>
211
+ </tbody>
212
+ </table>
213
+ </div>
214
+ </div>
215
+
216
+ <div class="prompt-analysis">
217
+ <h3>Prompt Engineering Analysis</h3>
218
+ <div class="prompt-charts">
219
+ <div class="chart-container">
220
+ <h4>Japanese Prompts - Error Recovery Rate</h4>
221
+ <img src="accuracy.png" alt="Error sample accuracy by prompt type" class="chart-image">
222
+ </div>
223
+ <div class="chart-container">
224
+ <h4>Japanese vs English Prompts Comparison</h4>
225
+ <img src="english_retest.png" alt="Prompt type accuracy comparison" class="chart-image">
226
+ </div>
227
+ </div>
228
+ <div class="prompt-insights">
229
+ <div class="insight-item">
230
+ <h4>Chain-of-Thought Effectiveness</h4>
231
+ <p>Chain-of-thought prompting achieved 87% accuracy improvement on previously failed samples, demonstrating GPT-4o's latent reasoning capabilities when explicitly guided.</p>
232
+ </div>
233
+ <div class="insight-item">
234
+ <h4>Logic-Focused Instructions</h4>
235
+ <p>Prompts emphasizing logical evaluation and belief inconsistency achieved 76% improvement, showing sensitivity to explicit instructional framing.</p>
236
+ </div>
237
+ <div class="insight-item">
238
+ <h4>Language Impact</h4>
239
+ <p>English prompts showed similar patterns but with less pronounced gaps, likely due to GPT-4o's extensive English training.</p>
240
+ </div>
241
+ </div>
242
+ </div>
243
+ </div>
244
+ </section>
245
+
246
+ <!-- Key Findings Section -->
247
+ <section id="findings" class="findings">
248
+ <div class="container">
249
+ <h2 class="section-title">Key Findings</h2>
250
+ <div class="findings-grid">
251
+ <div class="finding-item">
252
+ <div class="finding-icon">🎯</div>
253
+ <h3>Performance Variance</h3>
254
+ <p>Significant variance in performance across models, with GPT-4o leading at 79.54% accuracy while Claude models underperformed dramatically on BIS despite strong NeuBAROCO results.</p>
255
+ </div>
256
+ <div class="finding-item">
257
+ <div class="finding-icon">🧠</div>
258
+ <h3>Belief Bias Impact</h3>
259
+ <p>LLMs struggle disproportionately with belief-inconsistent problems, often overriding logical inference in favor of plausibility heuristics.</p>
260
+ </div>
261
+ <div class="finding-item">
262
+ <div class="finding-icon">📝</div>
263
+ <h3>Prompt Sensitivity</h3>
264
+ <p>Strategic prompt design significantly impacts performance, with chain-of-thought and logic-focused instructions dramatically improving accuracy.</p>
265
+ </div>
266
+ <div class="finding-item">
267
+ <div class="finding-icon">⚖️</div>
268
+ <h3>Scale vs. Reasoning</h3>
269
+ <p>Model size alone doesn't guarantee reasoning performance. Training approach and architectural biases are more critical factors.</p>
270
+ </div>
271
+ <div class="finding-item">
272
+ <div class="finding-icon">🏥</div>
273
+ <h3>High-Stakes Implications</h3>
274
+ <p>Critical vulnerabilities revealed for deployment in law, healthcare, and scientific research where logical consistency is paramount.</p>
275
+ </div>
276
+ <div class="finding-item">
277
+ <div class="finding-icon">🔬</div>
278
+ <h3>Future Research</h3>
279
+ <p>Need for bias-resistant model design and comprehensive evaluation beyond standard benchmarks for reliable AI systems.</p>
280
+ </div>
281
+ </div>
282
+ </div>
283
+ </section>
284
+
285
+ <!-- Resources Section -->
286
+ <section id="resources" class="resources">
287
+ <div class="container">
288
+ <h2 class="section-title">Resources</h2>
289
+ <div class="resources-content">
290
+ <div class="resource-links">
291
+ <div class="resource-item">
292
+ <h3>📊 Dataset</h3>
293
+ <p>Access the complete BIS Reasoning 1.0 dataset</p>
294
+ <a href="https://hf.co/datasets/nguyenthanhasia/BIS_Reasoning_v1.0" class="resource-link" target="_blank">Hugging Face Dataset</a>
295
+ </div>
296
+ <div class="resource-item">
297
+ <h3>📄 Research Paper</h3>
298
+ <p>Read the full academic paper with detailed methodology and analysis</p>
299
+ <a href="https://arxiv.org/pdf/2506.06955" class="resource-link" target="_blank">Download Paper (PDF)</a>
300
+ </div>
301
+ </div>
302
+
303
+ <div class="citation">
304
+ <h3>Citation</h3>
305
+ <div class="citation-box">
306
+ <pre><code>@article{nguyen2025bis,
307
+ title={BIS Reasoning 1.0: The First Large-Scale Japanese Benchmark for Belief-Inconsistent Syllogistic Reasoning},
308
+ author={Ha-Thanh Nguyen and Chaoran Liu and Hirokazu Kiyomaru and Koichi Takeda and Yusuke Miyao and Maki Matsuda and Yusuke Oda and Pontus Stenetorp and Qianying Liu and Su Myat Noe and Hideyuki Tachibana and Kouta Nakayama and Sadao Kurohashi},
309
+ year={2025},
310
+ eprint={2506.06955},
311
+ archivePrefix={arXiv},
312
+ primaryClass={cs.CL},
313
+ url={https://arxiv.org/abs/2506.06955
314
+ }</code></pre>
315
+ </div>
316
+ </div>
317
+
318
+ <div class="contact">
319
+ <h3>Contact</h3>
320
+ <p>For questions about the research or dataset:</p>
321
+ <p><strong>Corresponding Author:</strong> Ha-Thanh Nguyen</p>
322
+ <p><strong>Email:</strong> [email protected]</p>
323
+ <p><strong>Affiliation:</strong> Research and Development Center for Large Language Models, NII, Tokyo, Japan</p>
324
+ </div>
325
+ </div>
326
+ </div>
327
+ </section>
328
+
329
+ <!-- Footer -->
330
+ <footer class="footer">
331
+ <div class="container">
332
+ <div class="footer-content">
333
+ <div class="footer-section">
334
+ <h3>BIS Reasoning 1.0</h3>
335
+ <p>Advancing the evaluation of logical reasoning in Large Language Models</p>
336
+ </div>
337
+ <div class="footer-section">
338
+ <h4>Research</h4>
339
+ <ul>
340
+ <li><a href="#abstract">Abstract</a></li>
341
+ <li><a href="#dataset">Dataset</a></li>
342
+ <li><a href="#results">Results</a></li>
343
+ </ul>
344
+ </div>
345
+ <div class="footer-section">
346
+ <h4>Resources</h4>
347
+ <ul>
348
+ <li><a href="https://hf.co/datasets/nguyenthanhasia/BIS_Reasoning_v1.0" target="_blank">Dataset</a></li>
349
+ <li><a href="https://arxiv.org/pdf/2506.06955" target="_blank">Paper</a></li>
350
+ <li><a href="#">Code</a></li>
351
+ </ul>
352
+ </div>
353
+ </div>
354
+ <div class="footer-bottom">
355
+ <p>&copy; 2025 Research and Development Center for Large Language Models, NII. All rights reserved.</p>
356
+ </div>
357
+ </div>
358
+ </footer>
359
+
360
+ <script src="script.js"></script>
361
+ </body>
362
  </html>
363
+
script.js ADDED
@@ -0,0 +1,322 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // DOM Content Loaded
2
+ document.addEventListener('DOMContentLoaded', function() {
3
+ // Mobile Navigation Toggle
4
+ const hamburger = document.querySelector('.hamburger');
5
+ const navMenu = document.querySelector('.nav-menu');
6
+
7
+ hamburger.addEventListener('click', function() {
8
+ hamburger.classList.toggle('active');
9
+ navMenu.classList.toggle('active');
10
+ });
11
+
12
+ // Close mobile menu when clicking on a link
13
+ document.querySelectorAll('.nav-link').forEach(link => {
14
+ link.addEventListener('click', () => {
15
+ hamburger.classList.remove('active');
16
+ navMenu.classList.remove('active');
17
+ });
18
+ });
19
+
20
+ // Smooth scrolling for navigation links
21
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
22
+ anchor.addEventListener('click', function (e) {
23
+ e.preventDefault();
24
+ const target = document.querySelector(this.getAttribute('href'));
25
+ if (target) {
26
+ const offsetTop = target.offsetTop - 70; // Account for fixed navbar
27
+ window.scrollTo({
28
+ top: offsetTop,
29
+ behavior: 'smooth'
30
+ });
31
+ }
32
+ });
33
+ });
34
+
35
+ // Navbar background on scroll
36
+ const navbar = document.querySelector('.navbar');
37
+ window.addEventListener('scroll', function() {
38
+ if (window.scrollY > 50) {
39
+ navbar.style.background = 'rgba(255, 255, 255, 0.98)';
40
+ navbar.style.boxShadow = '0 2px 20px rgba(0, 0, 0, 0.1)';
41
+ } else {
42
+ navbar.style.background = 'rgba(255, 255, 255, 0.95)';
43
+ navbar.style.boxShadow = 'none';
44
+ }
45
+ });
46
+
47
+ // Animated counter for hero stats
48
+ function animateCounter(element, target, duration = 2000) {
49
+ let start = 0;
50
+ const increment = target / (duration / 16);
51
+
52
+ function updateCounter() {
53
+ start += increment;
54
+ if (start < target) {
55
+ element.textContent = Math.floor(start);
56
+ requestAnimationFrame(updateCounter);
57
+ } else {
58
+ element.textContent = target;
59
+ }
60
+ }
61
+
62
+ updateCounter();
63
+ }
64
+
65
+ // Intersection Observer for animations
66
+ const observerOptions = {
67
+ threshold: 0.1,
68
+ rootMargin: '0px 0px -50px 0px'
69
+ };
70
+
71
+ const observer = new IntersectionObserver(function(entries) {
72
+ entries.forEach(entry => {
73
+ if (entry.isIntersecting) {
74
+ entry.target.classList.add('fade-in-up');
75
+
76
+ // Animate counters when hero section is visible
77
+ if (entry.target.classList.contains('hero-stats')) {
78
+ const counters = entry.target.querySelectorAll('.stat-number');
79
+ counters.forEach(counter => {
80
+ const target = parseInt(counter.getAttribute('data-target'));
81
+ animateCounter(counter, target);
82
+ });
83
+ }
84
+
85
+ observer.unobserve(entry.target);
86
+ }
87
+ });
88
+ }, observerOptions);
89
+
90
+ // Observe elements for animation
91
+ const animatedElements = document.querySelectorAll('.contribution-item, .finding-item, .resource-item, .hero-stats, .example-container, .categories-visual');
92
+ animatedElements.forEach(el => observer.observe(el));
93
+
94
+ // Active navigation link highlighting
95
+ const sections = document.querySelectorAll('section[id]');
96
+ const navLinks = document.querySelectorAll('.nav-link');
97
+
98
+ function highlightNavigation() {
99
+ let current = '';
100
+ sections.forEach(section => {
101
+ const sectionTop = section.offsetTop - 100;
102
+ const sectionHeight = section.clientHeight;
103
+ if (window.scrollY >= sectionTop && window.scrollY < sectionTop + sectionHeight) {
104
+ current = section.getAttribute('id');
105
+ }
106
+ });
107
+
108
+ navLinks.forEach(link => {
109
+ link.classList.remove('active');
110
+ if (link.getAttribute('href') === `#${current}`) {
111
+ link.classList.add('active');
112
+ }
113
+ });
114
+ }
115
+
116
+ window.addEventListener('scroll', highlightNavigation);
117
+
118
+ // Parallax effect for hero section
119
+ const hero = document.querySelector('.hero');
120
+ window.addEventListener('scroll', function() {
121
+ const scrolled = window.pageYOffset;
122
+ const rate = scrolled * -0.5;
123
+ if (hero) {
124
+ hero.style.transform = `translateY(${rate}px)`;
125
+ }
126
+ });
127
+
128
+ // Copy citation to clipboard
129
+ const citationBox = document.querySelector('.citation-box');
130
+ if (citationBox) {
131
+ citationBox.addEventListener('click', function() {
132
+ const text = this.textContent;
133
+ navigator.clipboard.writeText(text).then(function() {
134
+ // Show feedback
135
+ const feedback = document.createElement('div');
136
+ feedback.textContent = 'Citation copied to clipboard!';
137
+ feedback.style.cssText = `
138
+ position: fixed;
139
+ top: 20px;
140
+ right: 20px;
141
+ background: #10b981;
142
+ color: white;
143
+ padding: 1rem 2rem;
144
+ border-radius: 10px;
145
+ z-index: 10000;
146
+ animation: slideInRight 0.3s ease;
147
+ `;
148
+ document.body.appendChild(feedback);
149
+
150
+ setTimeout(() => {
151
+ feedback.remove();
152
+ }, 3000);
153
+ });
154
+ });
155
+ }
156
+
157
+ // Add hover effects to performance table rows
158
+ const tableRows = document.querySelectorAll('.performance-table tbody tr');
159
+ tableRows.forEach(row => {
160
+ row.addEventListener('mouseenter', function() {
161
+ this.style.backgroundColor = 'rgba(37, 99, 235, 0.05)';
162
+ this.style.transform = 'scale(1.02)';
163
+ this.style.transition = 'all 0.3s ease';
164
+ });
165
+
166
+ row.addEventListener('mouseleave', function() {
167
+ if (!this.classList.contains('top-performer')) {
168
+ this.style.backgroundColor = '';
169
+ }
170
+ this.style.transform = 'scale(1)';
171
+ });
172
+ });
173
+
174
+ /* Ensure images are visible and properly loaded */
175
+ const images = document.querySelectorAll('img[src]');
176
+ images.forEach(img => {
177
+ img.style.opacity = '1';
178
+ img.style.transition = 'opacity 0.3s ease';
179
+
180
+ // Ensure image is loaded
181
+ if (!img.complete) {
182
+ img.onload = function() {
183
+ this.style.opacity = '1';
184
+ };
185
+ }
186
+ });
187
+ // Add scroll progress indicator
188
+ const progressBar = document.createElement('div');
189
+ progressBar.style.cssText = `
190
+ position: fixed;
191
+ top: 0;
192
+ left: 0;
193
+ width: 0%;
194
+ height: 3px;
195
+ background: linear-gradient(90deg, #667eea, #764ba2);
196
+ z-index: 10000;
197
+ transition: width 0.1s ease;
198
+ `;
199
+ document.body.appendChild(progressBar);
200
+
201
+ window.addEventListener('scroll', function() {
202
+ const scrollTop = window.pageYOffset;
203
+ const docHeight = document.body.scrollHeight - window.innerHeight;
204
+ const scrollPercent = (scrollTop / docHeight) * 100;
205
+ progressBar.style.width = scrollPercent + '%';
206
+ });
207
+
208
+ // Add smooth fade-in effect to hero title instead of typing
209
+ const heroTitle = document.querySelector('.hero-title');
210
+ if (heroTitle) {
211
+ heroTitle.style.opacity = '0';
212
+ heroTitle.style.transform = 'translateY(30px)';
213
+ heroTitle.style.transition = 'opacity 1s ease, transform 1s ease';
214
+
215
+ setTimeout(() => {
216
+ heroTitle.style.opacity = '1';
217
+ heroTitle.style.transform = 'translateY(0)';
218
+ }, 300);
219
+ }
220
+
221
+ // Add floating animation to contribution items
222
+ const contributionItems = document.querySelectorAll('.contribution-item');
223
+ contributionItems.forEach((item, index) => {
224
+ item.style.animationDelay = `${index * 0.1}s`;
225
+ item.classList.add('float-animation');
226
+ });
227
+
228
+ // Add CSS for floating animation
229
+ const style = document.createElement('style');
230
+ style.textContent = `
231
+ @keyframes float {
232
+ 0%, 100% { transform: translateY(0px); }
233
+ 50% { transform: translateY(-10px); }
234
+ }
235
+
236
+ .float-animation {
237
+ animation: float 3s ease-in-out infinite;
238
+ }
239
+
240
+ @keyframes slideInRight {
241
+ from { transform: translateX(100%); opacity: 0; }
242
+ to { transform: translateX(0); opacity: 1; }
243
+ }
244
+
245
+ .nav-link.active {
246
+ color: var(--primary-color);
247
+ }
248
+
249
+ .nav-link.active::after {
250
+ width: 100%;
251
+ }
252
+ `;
253
+ document.head.appendChild(style);
254
+
255
+ // Add click effects to buttons
256
+ const buttons = document.querySelectorAll('.btn, .resource-link');
257
+ buttons.forEach(button => {
258
+ button.addEventListener('click', function(e) {
259
+ const ripple = document.createElement('span');
260
+ const rect = this.getBoundingClientRect();
261
+ const size = Math.max(rect.width, rect.height);
262
+ const x = e.clientX - rect.left - size / 2;
263
+ const y = e.clientY - rect.top - size / 2;
264
+
265
+ ripple.style.cssText = `
266
+ position: absolute;
267
+ width: ${size}px;
268
+ height: ${size}px;
269
+ left: ${x}px;
270
+ top: ${y}px;
271
+ background: rgba(255, 255, 255, 0.3);
272
+ border-radius: 50%;
273
+ transform: scale(0);
274
+ animation: ripple 0.6s linear;
275
+ pointer-events: none;
276
+ `;
277
+
278
+ this.style.position = 'relative';
279
+ this.style.overflow = 'hidden';
280
+ this.appendChild(ripple);
281
+
282
+ setTimeout(() => {
283
+ ripple.remove();
284
+ }, 600);
285
+ });
286
+ });
287
+
288
+ // Add ripple animation CSS
289
+ const rippleStyle = document.createElement('style');
290
+ rippleStyle.textContent = `
291
+ @keyframes ripple {
292
+ to {
293
+ transform: scale(4);
294
+ opacity: 0;
295
+ }
296
+ }
297
+ `;
298
+ document.head.appendChild(rippleStyle);
299
+
300
+ // Performance optimization: Debounce scroll events
301
+ function debounce(func, wait) {
302
+ let timeout;
303
+ return function executedFunction(...args) {
304
+ const later = () => {
305
+ clearTimeout(timeout);
306
+ func(...args);
307
+ };
308
+ clearTimeout(timeout);
309
+ timeout = setTimeout(later, wait);
310
+ };
311
+ }
312
+
313
+ // Apply debouncing to scroll events
314
+ const debouncedScrollHandler = debounce(() => {
315
+ highlightNavigation();
316
+ }, 10);
317
+
318
+ window.addEventListener('scroll', debouncedScrollHandler);
319
+
320
+ console.log('BIS Reasoning 1.0 website loaded successfully!');
321
+ });
322
+
styles.css ADDED
@@ -0,0 +1,774 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Reset and Base Styles */
2
+ * {
3
+ margin: 0;
4
+ padding: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ :root {
9
+ --primary-color: #2563eb;
10
+ --secondary-color: #1e40af;
11
+ --accent-color: #3b82f6;
12
+ --text-primary: #1f2937;
13
+ --text-secondary: #6b7280;
14
+ --text-light: #9ca3af;
15
+ --background: #ffffff;
16
+ --background-alt: #f8fafc;
17
+ --border-color: #e5e7eb;
18
+ --success-color: #10b981;
19
+ --warning-color: #f59e0b;
20
+ --error-color: #ef4444;
21
+ --gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
22
+ --gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
23
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
24
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
25
+ --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
26
+ --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
27
+ }
28
+
29
+ body {
30
+ font-family: 'Inter', sans-serif;
31
+ line-height: 1.6;
32
+ color: var(--text-primary);
33
+ background-color: var(--background);
34
+ overflow-x: hidden;
35
+ }
36
+
37
+ .container {
38
+ max-width: 1200px;
39
+ margin: 0 auto;
40
+ padding: 0 2rem;
41
+ }
42
+
43
+ /* Typography */
44
+ h1, h2, h3, h4, h5, h6 {
45
+ font-family: 'Playfair Display', serif;
46
+ font-weight: 600;
47
+ line-height: 1.2;
48
+ margin-bottom: 1rem;
49
+ }
50
+
51
+ h1 { font-size: 3.5rem; }
52
+ h2 { font-size: 2.5rem; }
53
+ h3 { font-size: 2rem; }
54
+ h4 { font-size: 1.5rem; }
55
+
56
+ p {
57
+ margin-bottom: 1rem;
58
+ color: var(--text-secondary);
59
+ }
60
+
61
+ /* Navigation */
62
+ .navbar {
63
+ position: fixed;
64
+ top: 0;
65
+ width: 100%;
66
+ background: rgba(255, 255, 255, 0.95);
67
+ backdrop-filter: blur(10px);
68
+ border-bottom: 1px solid var(--border-color);
69
+ z-index: 1000;
70
+ transition: all 0.3s ease;
71
+ }
72
+
73
+ .nav-container {
74
+ max-width: 1200px;
75
+ margin: 0 auto;
76
+ padding: 0 2rem;
77
+ display: flex;
78
+ justify-content: space-between;
79
+ align-items: center;
80
+ height: 70px;
81
+ }
82
+
83
+ .nav-logo h2 {
84
+ color: var(--primary-color);
85
+ margin: 0;
86
+ font-size: 1.5rem;
87
+ }
88
+
89
+ .nav-menu {
90
+ display: flex;
91
+ list-style: none;
92
+ gap: 2rem;
93
+ }
94
+
95
+ .nav-link {
96
+ text-decoration: none;
97
+ color: var(--text-primary);
98
+ font-weight: 500;
99
+ transition: color 0.3s ease;
100
+ position: relative;
101
+ }
102
+
103
+ .nav-link:hover {
104
+ color: var(--primary-color);
105
+ }
106
+
107
+ .nav-link::after {
108
+ content: '';
109
+ position: absolute;
110
+ bottom: -5px;
111
+ left: 0;
112
+ width: 0;
113
+ height: 2px;
114
+ background: var(--primary-color);
115
+ transition: width 0.3s ease;
116
+ }
117
+
118
+ .nav-link:hover::after {
119
+ width: 100%;
120
+ }
121
+
122
+ .hamburger {
123
+ display: none;
124
+ flex-direction: column;
125
+ cursor: pointer;
126
+ }
127
+
128
+ .hamburger span {
129
+ width: 25px;
130
+ height: 3px;
131
+ background: var(--text-primary);
132
+ margin: 3px 0;
133
+ transition: 0.3s;
134
+ }
135
+
136
+ /* Hero Section */
137
+ .hero {
138
+ min-height: 100vh;
139
+ display: flex;
140
+ align-items: center;
141
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
142
+ color: white;
143
+ position: relative;
144
+ overflow: hidden;
145
+ }
146
+
147
+ .hero::before {
148
+ content: '';
149
+ position: absolute;
150
+ top: 0;
151
+ left: 0;
152
+ right: 0;
153
+ bottom: 0;
154
+ background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="50" cy="50" r="1" fill="white" opacity="0.1"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>');
155
+ opacity: 0.1;
156
+ }
157
+
158
+ .hero-container {
159
+ max-width: 1200px;
160
+ margin: 0 auto;
161
+ padding: 0 2rem;
162
+ display: grid;
163
+ grid-template-columns: 1fr 1fr;
164
+ gap: 4rem;
165
+ align-items: center;
166
+ position: relative;
167
+ z-index: 1;
168
+ }
169
+
170
+ .hero-title {
171
+ font-size: 3.5rem;
172
+ margin-bottom: 1rem;
173
+ background: linear-gradient(45deg, #ffffff, #e0e7ff);
174
+ -webkit-background-clip: text;
175
+ -webkit-text-fill-color: transparent;
176
+ background-clip: text;
177
+ }
178
+
179
+ .hero-subtitle {
180
+ display: block;
181
+ font-size: 1.5rem;
182
+ margin-top: 0.5rem;
183
+ opacity: 0.9;
184
+ }
185
+
186
+ .hero-description {
187
+ font-size: 1.2rem;
188
+ margin-bottom: 2rem;
189
+ opacity: 0.9;
190
+ color: #e0e7ff;
191
+ }
192
+
193
+ .hero-stats {
194
+ display: flex;
195
+ gap: 2rem;
196
+ margin-bottom: 2rem;
197
+ }
198
+
199
+ .stat-item {
200
+ text-align: center;
201
+ }
202
+
203
+ .stat-number {
204
+ display: block;
205
+ font-size: 2.5rem;
206
+ font-weight: 700;
207
+ color: #fbbf24;
208
+ }
209
+
210
+ .stat-label {
211
+ font-size: 0.9rem;
212
+ opacity: 0.8;
213
+ }
214
+
215
+ .hero-buttons {
216
+ display: flex;
217
+ gap: 1rem;
218
+ }
219
+
220
+ .btn {
221
+ padding: 0.75rem 2rem;
222
+ border-radius: 50px;
223
+ text-decoration: none;
224
+ font-weight: 600;
225
+ transition: all 0.3s ease;
226
+ display: inline-block;
227
+ border: 2px solid transparent;
228
+ }
229
+
230
+ .btn-primary {
231
+ background: white;
232
+ color: var(--primary-color);
233
+ }
234
+
235
+ .btn-primary:hover {
236
+ background: transparent;
237
+ color: white;
238
+ border-color: white;
239
+ transform: translateY(-2px);
240
+ box-shadow: var(--shadow-lg);
241
+ }
242
+
243
+ .btn-secondary {
244
+ background: transparent;
245
+ color: white;
246
+ border-color: white;
247
+ }
248
+
249
+ .btn-secondary:hover {
250
+ background: white;
251
+ color: var(--primary-color);
252
+ transform: translateY(-2px);
253
+ }
254
+
255
+ /* Syllogism Example */
256
+ .hero-visual {
257
+ display: flex;
258
+ justify-content: center;
259
+ align-items: center;
260
+ }
261
+
262
+ .syllogism-example {
263
+ background: rgba(255, 255, 255, 0.1);
264
+ backdrop-filter: blur(10px);
265
+ border-radius: 20px;
266
+ padding: 2rem;
267
+ border: 1px solid rgba(255, 255, 255, 0.2);
268
+ max-width: 400px;
269
+ }
270
+
271
+ .premise, .conclusion {
272
+ margin-bottom: 1.5rem;
273
+ padding: 1rem;
274
+ background: rgba(255, 255, 255, 0.1);
275
+ border-radius: 10px;
276
+ border-left: 4px solid #fbbf24;
277
+ }
278
+
279
+ .premise-label, .conclusion-label {
280
+ display: block;
281
+ font-weight: 600;
282
+ margin-bottom: 0.5rem;
283
+ color: #fbbf24;
284
+ }
285
+
286
+ .premise-text, .conclusion-text {
287
+ color: white;
288
+ font-size: 0.9rem;
289
+ }
290
+
291
+ .validity-badge {
292
+ display: inline-block;
293
+ background: var(--success-color);
294
+ color: white;
295
+ padding: 0.25rem 0.75rem;
296
+ border-radius: 20px;
297
+ font-size: 0.8rem;
298
+ margin-top: 0.5rem;
299
+ }
300
+
301
+ /* Section Styles */
302
+ section {
303
+ padding: 5rem 0;
304
+ }
305
+
306
+ .section-title {
307
+ text-align: center;
308
+ margin-bottom: 3rem;
309
+ color: var(--text-primary);
310
+ position: relative;
311
+ }
312
+
313
+ .section-title::after {
314
+ content: '';
315
+ position: absolute;
316
+ bottom: -10px;
317
+ left: 50%;
318
+ transform: translateX(-50%);
319
+ width: 60px;
320
+ height: 4px;
321
+ background: var(--primary-color);
322
+ border-radius: 2px;
323
+ }
324
+
325
+ /* Abstract Section */
326
+ .abstract {
327
+ background: var(--background-alt);
328
+ }
329
+
330
+ .abstract-text {
331
+ font-size: 1.1rem;
332
+ line-height: 1.8;
333
+ margin-bottom: 2rem;
334
+ text-align: center;
335
+ max-width: 800px;
336
+ margin-left: auto;
337
+ margin-right: auto;
338
+ }
339
+
340
+ .key-contributions {
341
+ margin-top: 3rem;
342
+ }
343
+
344
+ .key-contributions h3 {
345
+ text-align: center;
346
+ margin-bottom: 2rem;
347
+ }
348
+
349
+ .contributions-grid {
350
+ display: grid;
351
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
352
+ gap: 2rem;
353
+ }
354
+
355
+ .contribution-item {
356
+ background: white;
357
+ padding: 2rem;
358
+ border-radius: 15px;
359
+ text-align: center;
360
+ box-shadow: var(--shadow-md);
361
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
362
+ }
363
+
364
+ .contribution-item:hover {
365
+ transform: translateY(-5px);
366
+ box-shadow: var(--shadow-xl);
367
+ }
368
+
369
+ .contribution-icon {
370
+ font-size: 3rem;
371
+ margin-bottom: 1rem;
372
+ }
373
+
374
+ .contribution-item h4 {
375
+ color: var(--primary-color);
376
+ margin-bottom: 1rem;
377
+ }
378
+
379
+ /* Dataset Section */
380
+ .dataset-description {
381
+ margin-bottom: 3rem;
382
+ text-align: center;
383
+ }
384
+
385
+ .example-section {
386
+ margin-bottom: 3rem;
387
+ }
388
+
389
+ .example-container {
390
+ display: grid;
391
+ grid-template-columns: 1fr 1fr;
392
+ gap: 2rem;
393
+ align-items: center;
394
+ background: white;
395
+ padding: 2rem;
396
+ border-radius: 15px;
397
+ box-shadow: var(--shadow-md);
398
+ }
399
+
400
+ .example-image {
401
+ width: 100%;
402
+ height: auto;
403
+ border-radius: 10px;
404
+ }
405
+
406
+ .categories-section {
407
+ margin-top: 3rem;
408
+ }
409
+
410
+ .categories-visual {
411
+ display: grid;
412
+ grid-template-columns: 2fr 1fr;
413
+ gap: 2rem;
414
+ align-items: center;
415
+ background: white;
416
+ padding: 2rem;
417
+ border-radius: 15px;
418
+ box-shadow: var(--shadow-md);
419
+ }
420
+
421
+ .categories-image {
422
+ width: 100%;
423
+ height: auto;
424
+ border-radius: 10px;
425
+ }
426
+
427
+ /* Results Section */
428
+ .results {
429
+ background: var(--background-alt);
430
+ }
431
+
432
+ .results-overview {
433
+ margin-bottom: 4rem;
434
+ }
435
+
436
+ .performance-table {
437
+ overflow-x: auto;
438
+ background: white;
439
+ border-radius: 15px;
440
+ box-shadow: var(--shadow-md);
441
+ }
442
+
443
+ .performance-table table {
444
+ width: 100%;
445
+ border-collapse: collapse;
446
+ }
447
+
448
+ .performance-table th,
449
+ .performance-table td {
450
+ padding: 1rem;
451
+ text-align: left;
452
+ border-bottom: 1px solid var(--border-color);
453
+ }
454
+
455
+ .performance-table th {
456
+ background: var(--primary-color);
457
+ color: white;
458
+ font-weight: 600;
459
+ }
460
+
461
+ .performance-table .top-performer {
462
+ background: rgba(37, 99, 235, 0.1);
463
+ font-weight: 600;
464
+ }
465
+
466
+ .prompt-analysis {
467
+ margin-top: 4rem;
468
+ }
469
+
470
+ .prompt-charts {
471
+ display: grid;
472
+ grid-template-columns: 1fr 1fr;
473
+ gap: 2rem;
474
+ margin-bottom: 2rem;
475
+ }
476
+
477
+ .chart-container {
478
+ background: white;
479
+ padding: 2rem;
480
+ border-radius: 15px;
481
+ box-shadow: var(--shadow-md);
482
+ }
483
+
484
+ .chart-container h4 {
485
+ text-align: center;
486
+ margin-bottom: 1rem;
487
+ color: var(--primary-color);
488
+ }
489
+
490
+ .chart-image {
491
+ width: 100%;
492
+ height: auto;
493
+ border-radius: 10px;
494
+ }
495
+
496
+ .prompt-insights {
497
+ display: grid;
498
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
499
+ gap: 2rem;
500
+ }
501
+
502
+ .insight-item {
503
+ background: white;
504
+ padding: 2rem;
505
+ border-radius: 15px;
506
+ box-shadow: var(--shadow-md);
507
+ border-left: 4px solid var(--primary-color);
508
+ }
509
+
510
+ .insight-item h4 {
511
+ color: var(--primary-color);
512
+ margin-bottom: 1rem;
513
+ }
514
+
515
+ /* Findings Section */
516
+ .findings-grid {
517
+ display: grid;
518
+ grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
519
+ gap: 2rem;
520
+ }
521
+
522
+ .finding-item {
523
+ background: white;
524
+ padding: 2rem;
525
+ border-radius: 15px;
526
+ box-shadow: var(--shadow-md);
527
+ transition: transform 0.3s ease;
528
+ }
529
+
530
+ .finding-item:hover {
531
+ transform: translateY(-5px);
532
+ }
533
+
534
+ .finding-icon {
535
+ font-size: 3rem;
536
+ margin-bottom: 1rem;
537
+ }
538
+
539
+ .finding-item h3 {
540
+ color: var(--primary-color);
541
+ margin-bottom: 1rem;
542
+ }
543
+
544
+ /* Resources Section */
545
+ .resources {
546
+ background: var(--background-alt);
547
+ }
548
+
549
+ .resource-links {
550
+ display: grid;
551
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
552
+ gap: 2rem;
553
+ margin-bottom: 3rem;
554
+ }
555
+
556
+ .resource-item {
557
+ background: white;
558
+ padding: 2rem;
559
+ border-radius: 15px;
560
+ box-shadow: var(--shadow-md);
561
+ text-align: center;
562
+ }
563
+
564
+ .resource-item h3 {
565
+ color: var(--primary-color);
566
+ margin-bottom: 1rem;
567
+ }
568
+
569
+ .resource-link {
570
+ display: inline-block;
571
+ background: var(--primary-color);
572
+ color: white;
573
+ padding: 0.75rem 2rem;
574
+ border-radius: 50px;
575
+ text-decoration: none;
576
+ font-weight: 600;
577
+ transition: all 0.3s ease;
578
+ margin-top: 1rem;
579
+ }
580
+
581
+ .resource-link:hover {
582
+ background: var(--secondary-color);
583
+ transform: translateY(-2px);
584
+ }
585
+
586
+ .citation {
587
+ background: white;
588
+ padding: 2rem;
589
+ border-radius: 15px;
590
+ box-shadow: var(--shadow-md);
591
+ margin-bottom: 2rem;
592
+ }
593
+
594
+ .citation-box {
595
+ background: #f8fafc;
596
+ border: 1px solid var(--border-color);
597
+ border-radius: 10px;
598
+ padding: 1.5rem;
599
+ overflow-x: auto;
600
+ }
601
+
602
+ .citation-box code {
603
+ font-family: 'Monaco', 'Menlo', monospace;
604
+ font-size: 0.9rem;
605
+ color: var(--text-primary);
606
+ }
607
+
608
+ .contact {
609
+ background: white;
610
+ padding: 2rem;
611
+ border-radius: 15px;
612
+ box-shadow: var(--shadow-md);
613
+ }
614
+
615
+ /* Footer */
616
+ .footer {
617
+ background: var(--text-primary);
618
+ color: white;
619
+ padding: 3rem 0 1rem;
620
+ }
621
+
622
+ .footer-content {
623
+ display: grid;
624
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
625
+ gap: 2rem;
626
+ margin-bottom: 2rem;
627
+ }
628
+
629
+ .footer-section h3,
630
+ .footer-section h4 {
631
+ margin-bottom: 1rem;
632
+ color: white;
633
+ }
634
+
635
+ .footer-section ul {
636
+ list-style: none;
637
+ }
638
+
639
+ .footer-section ul li {
640
+ margin-bottom: 0.5rem;
641
+ }
642
+
643
+ .footer-section a {
644
+ color: #d1d5db;
645
+ text-decoration: none;
646
+ transition: color 0.3s ease;
647
+ }
648
+
649
+ .footer-section a:hover {
650
+ color: white;
651
+ }
652
+
653
+ .footer-bottom {
654
+ border-top: 1px solid #374151;
655
+ padding-top: 1rem;
656
+ text-align: center;
657
+ color: #9ca3af;
658
+ }
659
+
660
+ /* Responsive Design */
661
+ @media (max-width: 768px) {
662
+ .hamburger {
663
+ display: flex;
664
+ }
665
+
666
+ .nav-menu {
667
+ position: fixed;
668
+ left: -100%;
669
+ top: 70px;
670
+ flex-direction: column;
671
+ background-color: white;
672
+ width: 100%;
673
+ text-align: center;
674
+ transition: 0.3s;
675
+ box-shadow: var(--shadow-lg);
676
+ padding: 2rem 0;
677
+ }
678
+
679
+ .nav-menu.active {
680
+ left: 0;
681
+ }
682
+
683
+ .hero-container {
684
+ grid-template-columns: 1fr;
685
+ text-align: center;
686
+ }
687
+
688
+ .hero-title {
689
+ font-size: 2.5rem;
690
+ }
691
+
692
+ .hero-stats {
693
+ justify-content: center;
694
+ }
695
+
696
+ .example-container,
697
+ .categories-visual {
698
+ grid-template-columns: 1fr;
699
+ }
700
+
701
+ .prompt-charts {
702
+ grid-template-columns: 1fr;
703
+ }
704
+
705
+ h1 { font-size: 2.5rem; }
706
+ h2 { font-size: 2rem; }
707
+ h3 { font-size: 1.5rem; }
708
+
709
+ .container {
710
+ padding: 0 1rem;
711
+ }
712
+
713
+ section {
714
+ padding: 3rem 0;
715
+ }
716
+ }
717
+
718
+ /* Image styling - ensure visibility */
719
+ img {
720
+ max-width: 100%;
721
+ height: auto;
722
+ display: block;
723
+ opacity: 1 !important;
724
+ transition: opacity 0.3s ease;
725
+ }
726
+
727
+ .example-image, .categories-image, .chart-image {
728
+ width: 100%;
729
+ height: auto;
730
+ border-radius: 10px;
731
+ opacity: 1 !important;
732
+ visibility: visible !important;
733
+ }
734
+
735
+ /* Hero title animation */
736
+ .hero-title {
737
+ opacity: 1;
738
+ transform: translateY(0);
739
+ transition: opacity 1s ease, transform 1s ease;
740
+ }
741
+
742
+ /* Animations */
743
+ @keyframes fadeInUp {
744
+ from {
745
+ opacity: 0;
746
+ transform: translateY(30px);
747
+ }
748
+ to {
749
+ opacity: 1;
750
+ transform: translateY(0);
751
+ }
752
+ }
753
+
754
+ .fade-in-up {
755
+ animation: fadeInUp 0.6s ease-out;
756
+ }
757
+
758
+ /* Loading animation for stats */
759
+ @keyframes countUp {
760
+ from { opacity: 0; }
761
+ to { opacity: 1; }
762
+ }
763
+
764
+ /* Smooth scrolling */
765
+ html {
766
+ scroll-behavior: smooth;
767
+ }
768
+
769
+ /* Loading animation for stats */
770
+ @keyframes countUp {
771
+ from { opacity: 0; }
772
+ to { opacity: 1; }
773
+ }
774
+