astrvolt commited on
Commit
1a1d837
·
verified ·
1 Parent(s): 5efa657

Update style.css

Browse files
Files changed (1) hide show
  1. style.css +172 -77
style.css CHANGED
@@ -1,4 +1,4 @@
1
- /* Bench Labs Leaderboard — transferred from Members space style
2
  - Dark space theme, glass cards, starfield background
3
  - Keeps leaderboard functional classes while adopting Members tokens
4
  */
@@ -45,6 +45,17 @@ body {
45
  line-height: 1.5;
46
  overflow-x: hidden;
47
  -webkit-font-smoothing: antialiased;
 
 
 
 
 
 
 
 
 
 
 
48
  }
49
 
50
  code, pre { font-family: "SF Mono", "Cascadia Code", "Fira Code", Consolas, monospace; }
@@ -68,57 +79,13 @@ code, pre { font-family: "SF Mono", "Cascadia Code", "Fira Code", Consolas, mono
68
  inset: 0;
69
  z-index: 0;
70
  pointer-events: none;
71
- overflow: hidden;
72
- }
73
- .star {
74
- position: absolute;
75
- width: 2px;
76
- height: 2px;
77
- border-radius: 50%;
78
- background: #fff;
79
- opacity: 0.5;
80
- animation: twinkle var(--dur, 4s) ease-in-out infinite;
81
- animation-delay: var(--delay, 0s);
82
- }
83
- .star.big { width: 3px; height: 3px; }
84
- @keyframes twinkle {
85
- 0%, 100% { opacity: var(--min-op, 0.15); }
86
- 50% { opacity: var(--max-op, 0.9); }
87
- }
88
-
89
- .shooting-star {
90
- position: absolute;
91
- top: var(--top, 10%);
92
- left: -10%;
93
- width: 2px;
94
- height: 2px;
95
- border-radius: 50%;
96
- background: #fff;
97
- box-shadow: 0 0 0 1px rgba(255,255,255,0.3);
98
- animation: shoot 6s linear infinite;
99
- animation-delay: var(--delay, 0s);
100
- opacity: 0;
101
- }
102
- .shooting-star::before {
103
- content: '';
104
- position: absolute;
105
- top: 50%;
106
- right: 0;
107
- width: 90px;
108
- height: 1px;
109
- transform: translateY(-50%);
110
- background: linear-gradient(90deg, transparent, rgba(255,255,255,0.7));
111
- }
112
- @keyframes shoot {
113
- 0% { transform: translate(0, 0); opacity: 0; }
114
- 4% { opacity: 1; }
115
- 18% { opacity: 0; }
116
- 100% { transform: translate(130vw, 40px); opacity: 0; }
117
  }
118
 
119
  @media (prefers-reduced-motion: reduce) {
120
- .star { animation: none; opacity: 0.5; }
121
- .shooting-star { display: none; }
122
  }
123
 
124
  /* =========== Entry animations =========== */
@@ -166,8 +133,9 @@ a:hover { color: var(--accent-2); text-decoration: none; }
166
  font-style: italic;
167
  font-weight: 400;
168
  letter-spacing: -0.02em;
 
169
  }
170
- .subtitle { color: var(--muted); }
171
  .subtitle strong { color: var(--ink); font-weight: 500; }
172
 
173
  /* =========== Stat pills =========== */
@@ -177,16 +145,20 @@ a:hover { color: var(--accent-2); text-decoration: none; }
177
  width: 100%;
178
  }
179
  .stat-pill {
180
- background: var(--card-bg);
181
  border: 1px solid var(--line);
182
  border-radius: 14px;
183
  padding: 0.85rem 1rem;
184
- transition: border-color var(--t), background var(--t), transform var(--t);
 
 
 
185
  }
186
  .stat-pill:hover {
187
  border-color: var(--accent-soft);
188
- background: var(--card-bg-hover);
189
  transform: translateY(-1px);
 
190
  }
191
  .stat-pill .label {
192
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em;
@@ -206,22 +178,27 @@ a:hover { color: var(--accent-2); text-decoration: none; }
206
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
207
  margin-bottom: 1rem;
208
  width: 100%;
 
 
209
  }
210
  .chip-row { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; min-width: 180px; }
211
  .chip {
212
  border: 1px solid var(--line);
213
- background: var(--card-bg);
214
  color: var(--muted);
215
  border-radius: var(--radius-pill);
216
  padding: 6px 16px;
217
  font-size: 0.80rem;
218
  font-weight: 500;
219
  cursor: pointer;
 
 
 
220
  transition: var(--t);
221
  user-select: none;
222
  letter-spacing: 0.01em;
223
  }
224
- .chip:hover { border-color: var(--line-strong); color: var(--ink); background: rgba(255,255,255,0.04); }
225
  .chip.active { background: var(--accent); border-color: var(--accent); color: #05060a; font-weight: 600; }
226
  .chip .chip-note {
227
  opacity: 0.7; font-size: 0.68rem; margin-left: 5px;
@@ -236,43 +213,135 @@ a:hover { color: var(--accent-2); text-decoration: none; }
236
 
237
  .search-pill {
238
  display: inline-flex; align-items: center; gap: 8px;
239
- background: var(--card-bg);
240
  border: 1px solid var(--line);
241
  border-radius: var(--radius-pill);
242
  padding: 7px 14px;
 
 
243
  color: var(--muted-2);
 
 
 
244
  transition: var(--t);
245
  }
246
- .search-pill:focus-within { border-color: var(--accent-soft); box-shadow: 0 0 0 3px rgba(124,156,255,0.12); background: rgba(255,255,255,0.04); }
 
247
  .search-pill input {
248
  border: 0; background: transparent; outline: 0; color: var(--ink);
249
- font-size: 0.84rem; width: 190px; font-family: 'Inter', sans-serif;
250
  }
251
  .search-pill input::placeholder { color: var(--muted-2); }
252
 
253
  .sort-pill {
254
  display: inline-flex; align-items: center; gap: 8px;
255
- background: var(--card-bg); border: 1px solid var(--line);
256
  border-radius: var(--radius-pill);
257
- padding: 7px 8px 7px 14px; transition: var(--t);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
258
  }
259
- .sort-pill:focus-within { border-color: var(--accent-soft); }
260
  .sort-label { font-size: 0.74rem; color: var(--muted-2); font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
261
- .sort-pill select {
262
- border: 0; background: transparent; color: var(--ink); font-size: 0.84rem;
263
- outline: 0; cursor: pointer; font-family: 'Inter', sans-serif; padding-right: 4px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
  }
265
- .sort-pill select option { background: var(--bg-1); color: var(--ink); }
266
 
267
  /* =========== Table =========== */
268
  .table-card {
269
- background: var(--card-bg);
270
  border: 1px solid var(--line);
271
  border-radius: var(--radius);
272
  box-shadow: var(--shadow-sm);
273
  overflow: hidden;
274
- backdrop-filter: blur(12px);
275
- -webkit-backdrop-filter: blur(12px);
276
  width: 100%;
277
  }
278
  .table-scroll { overflow: auto; max-height: 72vh; -webkit-overflow-scrolling: touch; }
@@ -283,8 +352,9 @@ a:hover { color: var(--accent-2); text-decoration: none; }
283
  table { border-collapse: collapse; width: 100%; }
284
  thead { position: sticky; top: 0; z-index: 2; }
285
  th {
286
- background: rgba(255,255,255,0.04);
287
- backdrop-filter: blur(12px);
 
288
  text-align: left; font-size: 10px;
289
  text-transform: uppercase; letter-spacing: 0.10em; font-weight: 500;
290
  color: var(--muted); padding: 11px 12px;
@@ -327,7 +397,7 @@ td.score .na { color: var(--muted-2); font-style: italic; font-size: 0.78rem; }
327
  tr.open .expand-hint { transform: rotate(90deg); color: var(--accent); }
328
 
329
  /* expanded detail row */
330
- tr.detail-row td { background: rgba(255,255,255,0.03); padding: 16px 18px; white-space: normal; }
331
  .detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
332
  .detail-block h4 {
333
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.10em;
@@ -337,7 +407,8 @@ tr.detail-row td { background: rgba(255,255,255,0.03); padding: 16px 18px; white
337
  .mode-chip {
338
  border: 1px solid var(--line); border-radius: 8px;
339
  padding: 4px 10px; font-size: 0.76rem; color: var(--muted);
340
- font-variant-numeric: tabular-nums; background: var(--card-bg);
 
341
  }
342
  .mode-chip b { color: var(--ink); font-weight: 600; }
343
  .cat-table { width: 100%; font-size: 0.78rem; border-collapse: collapse; margin-top: 6px; }
@@ -357,7 +428,7 @@ tr.detail-row td { background: rgba(255,255,255,0.03); padding: 16px 18px; white
357
  .m-card-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 6px 0 10px; align-items: center; }
358
  .m-card-meta .params { color: var(--muted-2); font-size: 0.76rem; font-variant-numeric: tabular-nums; }
359
  .m-scores { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 7px; }
360
- .m-score { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 10px; padding: 6px 9px; }
361
  .m-score .k { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted-2); font-weight: 500; margin-bottom: 2px; }
362
  .m-score .v { font-size: 0.92rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); }
363
 
@@ -375,15 +446,29 @@ tr.detail-row td { background: rgba(255,255,255,0.03); padding: 16px 18px; white
375
 
376
  .howto { margin-top: 1.25rem; width: 100%; }
377
  .howto details {
378
- background: var(--card-bg); border: 1px solid var(--line);
379
  border-radius: 12px; padding: 0.85rem 1.15rem;
380
- transition: border-color var(--t), background var(--t);
 
 
 
381
  }
382
- .howto details:hover { border-color: var(--line-strong); background: rgba(255,255,255,0.03); }
383
  .howto summary { cursor: pointer; font-size: 0.88rem; color: var(--muted); font-weight: 500; list-style: none; display: flex; align-items: center; gap: 8px; }
384
  .howto summary::-webkit-details-marker { display: none; }
385
  .howto summary::before { content: '›'; display: inline-block; transition: transform var(--t); color: var(--muted-2); }
386
  .howto details[open] summary::before { transform: rotate(90deg); }
 
 
 
 
 
 
 
 
 
 
 
387
  .howto p { font-size: 0.84rem; color: var(--muted); margin: 0.7rem 0 0.5rem; line-height: 1.6; }
388
  .howto pre {
389
  background: rgba(0,0,0,0.35); border: 1px solid var(--line);
@@ -391,6 +476,9 @@ tr.detail-row td { background: rgba(255,255,255,0.03); padding: 16px 18px; white
391
  font-size: 0.78rem; line-height: 1.6; color: var(--muted);
392
  }
393
  .howto code { color: var(--ink); }
 
 
 
394
 
395
  .foot {
396
  margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--line);
@@ -441,6 +529,13 @@ tr.detail-row td { background: rgba(255,255,255,0.03); padding: 16px 18px; white
441
  /* ---- Capability radar (replaces the old cat-table sliders) ---- */
442
  .capability-panel {
443
  display: flex; flex-wrap: wrap; gap: 20px; align-items: center;
 
 
 
 
 
 
 
444
  }
445
  .radar-wrap { flex: 0 0 auto; }
446
  .radar-svg { width: 220px; height: 220px; display: block; }
@@ -552,7 +647,7 @@ tr.detail-row td { background: rgba(255,255,255,0.03); padding: 16px 18px; white
552
  color: var(--muted-2); font-size: 0.76rem; font-variant-numeric: tabular-nums;
553
  }
554
  .t2i-m-scores { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 7px; }
555
- .t2i-m-score { background: rgba(255,255,255,0.03); border: 1px solid var(--line); border-radius: 10px; padding: 6px 9px; }
556
  .t2i-m-score .k { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted-2); font-weight: 500; margin-bottom: 2px; }
557
  .t2i-m-score .v { font-size: 0.92rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); }
558
  .t2i-m-score .v.best { color: var(--green); }
 
1
+ /* Bench Labs Leaderboard — transferred from Members space style
2
  - Dark space theme, glass cards, starfield background
3
  - Keeps leaderboard functional classes while adopting Members tokens
4
  */
 
45
  line-height: 1.5;
46
  overflow-x: hidden;
47
  -webkit-font-smoothing: antialiased;
48
+ scrollbar-width: none; /* Firefox */
49
+ -ms-overflow-style: none; /* old Edge/IE */
50
+ }
51
+
52
+ /* WebKit (Chrome/Safari/Edge): hide the page scrollbar entirely while
53
+ keeping the page scrollable — width:0 removes it from layout too. */
54
+ html::-webkit-scrollbar,
55
+ body::-webkit-scrollbar {
56
+ width: 0;
57
+ height: 0;
58
+ display: none;
59
  }
60
 
61
  code, pre { font-family: "SF Mono", "Cascadia Code", "Fira Code", Consolas, monospace; }
 
79
  inset: 0;
80
  z-index: 0;
81
  pointer-events: none;
82
+ display: block;
83
+ width: 100%;
84
+ height: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
  }
86
 
87
  @media (prefers-reduced-motion: reduce) {
88
+ .stars { opacity: 0.6; }
 
89
  }
90
 
91
  /* =========== Entry animations =========== */
 
133
  font-style: italic;
134
  font-weight: 400;
135
  letter-spacing: -0.02em;
136
+ text-shadow: 0 2px 20px rgba(0,0,0,0.5);
137
  }
138
+ .subtitle { color: var(--muted); text-shadow: 0 1px 12px rgba(0,0,0,0.45); }
139
  .subtitle strong { color: var(--ink); font-weight: 500; }
140
 
141
  /* =========== Stat pills =========== */
 
145
  width: 100%;
146
  }
147
  .stat-pill {
148
+ background: rgba(255,255,255,0.07);
149
  border: 1px solid var(--line);
150
  border-radius: 14px;
151
  padding: 0.85rem 1rem;
152
+ backdrop-filter: blur(14px);
153
+ -webkit-backdrop-filter: blur(14px);
154
+ box-shadow: var(--shadow-sm);
155
+ transition: border-color var(--t), background var(--t), transform var(--t), box-shadow var(--t);
156
  }
157
  .stat-pill:hover {
158
  border-color: var(--accent-soft);
159
+ background: rgba(255,255,255,0.09);
160
  transform: translateY(-1px);
161
+ box-shadow: 0 1px 0 rgba(255,255,255,0.04) inset, 0 12px 28px rgba(0,0,0,0.4);
162
  }
163
  .stat-pill .label {
164
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.14em;
 
178
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
179
  margin-bottom: 1rem;
180
  width: 100%;
181
+ position: relative;
182
+ z-index: 30;
183
  }
184
  .chip-row { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; min-width: 180px; }
185
  .chip {
186
  border: 1px solid var(--line);
187
+ background: rgba(255,255,255,0.07);
188
  color: var(--muted);
189
  border-radius: var(--radius-pill);
190
  padding: 6px 16px;
191
  font-size: 0.80rem;
192
  font-weight: 500;
193
  cursor: pointer;
194
+ backdrop-filter: blur(10px);
195
+ -webkit-backdrop-filter: blur(10px);
196
+ box-shadow: 0 2px 10px rgba(0,0,0,0.25);
197
  transition: var(--t);
198
  user-select: none;
199
  letter-spacing: 0.01em;
200
  }
201
+ .chip:hover { border-color: var(--line-strong); color: var(--ink); background: rgba(255,255,255,0.1); box-shadow: 0 4px 14px rgba(0,0,0,0.3); }
202
  .chip.active { background: var(--accent); border-color: var(--accent); color: #05060a; font-weight: 600; }
203
  .chip .chip-note {
204
  opacity: 0.7; font-size: 0.68rem; margin-left: 5px;
 
213
 
214
  .search-pill {
215
  display: inline-flex; align-items: center; gap: 8px;
216
+ background: rgba(255,255,255,0.07);
217
  border: 1px solid var(--line);
218
  border-radius: var(--radius-pill);
219
  padding: 7px 14px;
220
+ min-height: 36px;
221
+ box-sizing: border-box;
222
  color: var(--muted-2);
223
+ backdrop-filter: blur(14px);
224
+ -webkit-backdrop-filter: blur(14px);
225
+ box-shadow: var(--shadow-sm);
226
  transition: var(--t);
227
  }
228
+ .search-pill:hover { border-color: var(--line-strong); background: rgba(255,255,255,0.09); }
229
+ .search-pill:focus-within { border-color: var(--accent-soft); box-shadow: 0 0 0 3px rgba(124,156,255,0.12), var(--shadow-sm); background: rgba(255,255,255,0.09); }
230
  .search-pill input {
231
  border: 0; background: transparent; outline: 0; color: var(--ink);
232
+ font-size: 0.84rem; line-height: 1; width: 190px; font-family: 'Inter', sans-serif;
233
  }
234
  .search-pill input::placeholder { color: var(--muted-2); }
235
 
236
  .sort-pill {
237
  display: inline-flex; align-items: center; gap: 8px;
238
+ background: rgba(255,255,255,0.07); border: 1px solid var(--line);
239
  border-radius: var(--radius-pill);
240
+ padding: 7px 12px 7px 14px;
241
+ min-height: 36px;
242
+ box-sizing: border-box;
243
+ backdrop-filter: blur(14px);
244
+ -webkit-backdrop-filter: blur(14px);
245
+ box-shadow: var(--shadow-sm);
246
+ transition: var(--t);
247
+ position: relative;
248
+ }
249
+ .sort-pill:hover { border-color: var(--line-strong); background: rgba(255,255,255,0.09); }
250
+ .sort-pill:focus-within,
251
+ .sort-pill.open {
252
+ border-color: var(--accent-soft);
253
+ box-shadow: 0 0 0 3px rgba(124,156,255,0.12), var(--shadow-sm);
254
+ background: rgba(255,255,255,0.09);
255
  }
 
256
  .sort-label { font-size: 0.74rem; color: var(--muted-2); font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
257
+
258
+ /* Real select kept in DOM for script.js compatibility (change events / .value),
259
+ but visually hidden the custom trigger+menu below is what renders. */
260
+ #sort-select {
261
+ position: absolute;
262
+ width: 1px; height: 1px;
263
+ padding: 0; margin: -1px;
264
+ overflow: hidden;
265
+ clip: rect(0,0,0,0);
266
+ white-space: nowrap;
267
+ border: 0;
268
+ }
269
+
270
+ /* Custom trigger button — replaces native <select> control */
271
+ .sort-trigger {
272
+ display: inline-flex; align-items: center; gap: 8px;
273
+ border: 0; background: transparent; padding: 0;
274
+ color: var(--ink);
275
+ font-size: 0.84rem;
276
+ font-weight: 500;
277
+ font-family: 'Inter', sans-serif;
278
+ line-height: 1;
279
+ cursor: pointer;
280
+ transition: color var(--t);
281
+ }
282
+ .sort-trigger:hover, .sort-trigger:focus-visible { color: var(--accent-2); }
283
+ .sort-trigger:focus-visible { outline: 0; }
284
+ .sort-chevron { color: var(--muted-2); flex-shrink: 0; transition: transform var(--t), color var(--t); }
285
+ .sort-pill.open .sort-chevron { transform: rotate(180deg); color: var(--accent); }
286
+ .sort-trigger:hover .sort-chevron { color: var(--accent-2); }
287
+
288
+ /* Custom dropdown menu — fully styled, no native <option> chrome */
289
+ .sort-menu {
290
+ position: absolute;
291
+ top: calc(100% + 8px);
292
+ right: 0;
293
+ min-width: 148px;
294
+ background: rgba(10,12,20,0.96);
295
+ border: 1px solid var(--line-strong);
296
+ border-radius: var(--radius-sm);
297
+ box-shadow: 0 1px 0 rgba(255,255,255,0.04) inset, 0 16px 36px rgba(0,0,0,0.55);
298
+ backdrop-filter: blur(20px);
299
+ -webkit-backdrop-filter: blur(20px);
300
+ list-style: none;
301
+ padding: 6px;
302
+ margin: 0;
303
+ z-index: 9999;
304
+ opacity: 0;
305
+ transform: translateY(-4px);
306
+ pointer-events: none;
307
+ transition: opacity 0.15s ease, transform 0.15s ease;
308
+ }
309
+ .sort-menu:not([hidden]).show { opacity: 1; transform: translateY(0); pointer-events: auto; }
310
+ .sort-menu li {
311
+ padding: 7px 10px;
312
+ border-radius: 7px;
313
+ font-size: 0.84rem;
314
+ color: var(--muted);
315
+ cursor: pointer;
316
+ transition: background var(--t), color var(--t);
317
+ white-space: nowrap;
318
+ }
319
+ .sort-menu li:hover,
320
+ .sort-menu li.active {
321
+ background: rgba(124,156,255,0.12);
322
+ color: var(--ink);
323
+ }
324
+ .sort-menu li.selected {
325
+ color: var(--accent-2);
326
+ font-weight: 600;
327
+ }
328
+ .sort-menu li.selected::after {
329
+ content: '✓';
330
+ float: right;
331
+ margin-left: 10px;
332
+ color: var(--accent);
333
+ font-weight: 700;
334
  }
 
335
 
336
  /* =========== Table =========== */
337
  .table-card {
338
+ background: rgba(255,255,255,0.07);
339
  border: 1px solid var(--line);
340
  border-radius: var(--radius);
341
  box-shadow: var(--shadow-sm);
342
  overflow: hidden;
343
+ backdrop-filter: blur(16px);
344
+ -webkit-backdrop-filter: blur(16px);
345
  width: 100%;
346
  }
347
  .table-scroll { overflow: auto; max-height: 72vh; -webkit-overflow-scrolling: touch; }
 
352
  table { border-collapse: collapse; width: 100%; }
353
  thead { position: sticky; top: 0; z-index: 2; }
354
  th {
355
+ background: rgba(255,255,255,0.09);
356
+ backdrop-filter: blur(16px);
357
+ -webkit-backdrop-filter: blur(16px);
358
  text-align: left; font-size: 10px;
359
  text-transform: uppercase; letter-spacing: 0.10em; font-weight: 500;
360
  color: var(--muted); padding: 11px 12px;
 
397
  tr.open .expand-hint { transform: rotate(90deg); color: var(--accent); }
398
 
399
  /* expanded detail row */
400
+ tr.detail-row td { background: rgba(255,255,255,0.07); padding: 16px 18px; white-space: normal; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
401
  .detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
402
  .detail-block h4 {
403
  font-size: 10px; text-transform: uppercase; letter-spacing: 0.10em;
 
407
  .mode-chip {
408
  border: 1px solid var(--line); border-radius: 8px;
409
  padding: 4px 10px; font-size: 0.76rem; color: var(--muted);
410
+ font-variant-numeric: tabular-nums; background: rgba(255,255,255,0.07);
411
+ box-shadow: 0 2px 8px rgba(0,0,0,0.25);
412
  }
413
  .mode-chip b { color: var(--ink); font-weight: 600; }
414
  .cat-table { width: 100%; font-size: 0.78rem; border-collapse: collapse; margin-top: 6px; }
 
428
  .m-card-meta { display: flex; flex-wrap: wrap; gap: 7px; margin: 6px 0 10px; align-items: center; }
429
  .m-card-meta .params { color: var(--muted-2); font-size: 0.76rem; font-variant-numeric: tabular-nums; }
430
  .m-scores { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 7px; }
431
+ .m-score { background: rgba(255,255,255,0.07); border: 1px solid var(--line); border-radius: 10px; padding: 6px 9px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
432
  .m-score .k { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted-2); font-weight: 500; margin-bottom: 2px; }
433
  .m-score .v { font-size: 0.92rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); }
434
 
 
446
 
447
  .howto { margin-top: 1.25rem; width: 100%; }
448
  .howto details {
449
+ background: rgba(255,255,255,0.07); border: 1px solid var(--line);
450
  border-radius: 12px; padding: 0.85rem 1.15rem;
451
+ backdrop-filter: blur(14px);
452
+ -webkit-backdrop-filter: blur(14px);
453
+ box-shadow: var(--shadow-sm);
454
+ transition: border-color var(--t), background var(--t), box-shadow var(--t);
455
  }
456
+ .howto details:hover { border-color: var(--line-strong); background: rgba(255,255,255,0.09); }
457
  .howto summary { cursor: pointer; font-size: 0.88rem; color: var(--muted); font-weight: 500; list-style: none; display: flex; align-items: center; gap: 8px; }
458
  .howto summary::-webkit-details-marker { display: none; }
459
  .howto summary::before { content: '›'; display: inline-block; transition: transform var(--t); color: var(--muted-2); }
460
  .howto details[open] summary::before { transform: rotate(90deg); }
461
+
462
+ /* Smooth expand/collapse — JS drives max-height + opacity since <details>
463
+ itself can't transition display:none <-> block. */
464
+ .howto-content {
465
+ max-height: 0;
466
+ opacity: 0;
467
+ overflow: hidden;
468
+ transition: max-height 0.32s cubic-bezier(0.4,0,0.2,1), opacity 0.24s ease;
469
+ }
470
+ .howto details[open] .howto-content { opacity: 1; }
471
+ .howto-content-inner { padding-top: 0.2rem; }
472
  .howto p { font-size: 0.84rem; color: var(--muted); margin: 0.7rem 0 0.5rem; line-height: 1.6; }
473
  .howto pre {
474
  background: rgba(0,0,0,0.35); border: 1px solid var(--line);
 
476
  font-size: 0.78rem; line-height: 1.6; color: var(--muted);
477
  }
478
  .howto code { color: var(--ink); }
479
+ @media (prefers-reduced-motion: reduce) {
480
+ .howto-content { transition: none; }
481
+ }
482
 
483
  .foot {
484
  margin-top: 2rem; padding-top: 1.2rem; border-top: 1px solid var(--line);
 
529
  /* ---- Capability radar (replaces the old cat-table sliders) ---- */
530
  .capability-panel {
531
  display: flex; flex-wrap: wrap; gap: 20px; align-items: center;
532
+ background: rgba(255,255,255,0.07);
533
+ border: 1px solid var(--line);
534
+ border-radius: var(--radius-sm);
535
+ padding: 16px;
536
+ backdrop-filter: blur(14px);
537
+ -webkit-backdrop-filter: blur(14px);
538
+ box-shadow: var(--shadow-sm);
539
  }
540
  .radar-wrap { flex: 0 0 auto; }
541
  .radar-svg { width: 220px; height: 220px; display: block; }
 
647
  color: var(--muted-2); font-size: 0.76rem; font-variant-numeric: tabular-nums;
648
  }
649
  .t2i-m-scores { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 7px; }
650
+ .t2i-m-score { background: rgba(255,255,255,0.07); border: 1px solid var(--line); border-radius: 10px; padding: 6px 9px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
651
  .t2i-m-score .k { font-size: 9px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--muted-2); font-weight: 500; margin-bottom: 2px; }
652
  .t2i-m-score .v { font-size: 0.92rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); }
653
  .t2i-m-score .v.best { color: var(--green); }