@oracle-agent/oracle 0.35.41 → 0.35.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/agent-sessions.mjs +25 -24
  2. package/dist/assets/skills/oracle-desk-product/SKILL.md +1 -1
  3. package/dist/bin/desk-server.mjs +28 -28
  4. package/dist/bin/oracle-data-mcp.mjs +18 -18
  5. package/dist/bin/oracle-gateway.mjs +46 -46
  6. package/dist/bin/oracle-launch-radar-shadow.mjs +6 -6
  7. package/dist/bin/oracle-public-server.mjs +5 -5
  8. package/dist/bin/oracle-route.mjs +31 -31
  9. package/dist/bin/oracle.mjs +13 -13
  10. package/dist/cli/commands/agent-session.mjs +27 -26
  11. package/dist/cli/commands/auth.mjs +5 -5
  12. package/dist/cli/commands/chat.mjs +244 -222
  13. package/dist/cli/commands/doctor.mjs +5 -5
  14. package/dist/cli/commands/eval.mjs +206 -149
  15. package/dist/cli/commands/extension-policy.mjs +3 -3
  16. package/dist/cli/commands/harness.mjs +7 -7
  17. package/dist/cli/commands/mint.mjs +11 -11
  18. package/dist/cli/commands/model.mjs +248 -226
  19. package/dist/cli/commands/portfolio-risk.mjs +1 -1
  20. package/dist/cli/commands/project.mjs +7 -7
  21. package/dist/cli/commands/quickstart.mjs +4 -4
  22. package/dist/cli/commands/setup.mjs +13 -13
  23. package/dist/cli/commands/sign.mjs +14 -14
  24. package/dist/cli/commands/signer.mjs +22 -22
  25. package/dist/cli/commands/swap.mjs +13 -13
  26. package/dist/cli/commands/venues.mjs +2 -2
  27. package/dist/cli/project-access.mjs +3 -0
  28. package/dist/data/desk-data.mjs +26 -26
  29. package/dist/index.mjs +46 -46
  30. package/dist/launch-radar/index.mjs +5 -5
  31. package/dist/local-signer/anvil-attestation-worker.mjs +1 -1
  32. package/dist/local-signer/index.mjs +3 -3
  33. package/dist/local-signer/runtime.mjs +19 -19
  34. package/dist/notifications/index.mjs +8 -8
  35. package/dist/portfolio-risk.mjs +1 -1
  36. package/dist/router/prepare-route.mjs +3 -3
  37. package/dist/task.mjs +2 -2
  38. package/dist/teams/index.mjs +6 -6
  39. package/dist/tui/standalone-client.mjs +115 -94
  40. package/package.json +2 -1
  41. package/public/oracle-splash/docs/browser-and-web/index.html +2 -2
  42. package/public/oracle-splash/docs/connectors/index.html +2 -2
  43. package/public/oracle-splash/docs/getting-started/index.html +2 -2
  44. package/public/oracle-splash/docs/index.html +3 -3
  45. package/public/oracle-splash/docs/reference/index.html +2 -2
  46. package/public/oracle-splash/docs/security/index.html +2 -2
  47. package/public/oracle-splash/docs/using-oracle/index.html +2 -2
  48. package/public/oracle-splash/download/index.html +4 -4
  49. package/public/oracle-splash/downloads/index.html +1 -1
  50. package/public/oracle-splash/eval/archive/oracle-0.35.40.json +101 -0
  51. package/public/oracle-splash/eval/archive/oracle-0.35.41-blocked-attempt.json +672 -0
  52. package/public/oracle-splash/eval/benchmarks/evm-escrow-20260827.json +170 -0
  53. package/public/oracle-splash/eval/eval-story.css +722 -0
  54. package/public/oracle-splash/eval/eval-story.js +198 -0
  55. package/public/oracle-splash/eval/index.html +80 -34
  56. package/public/oracle-splash/eval/live-eval.js +546 -0
  57. package/public/oracle-splash/eval/releases/oracle-0.35.41.json +788 -0
  58. package/public/oracle-splash/index.html +7 -7
  59. package/server.json +2 -2
@@ -0,0 +1,722 @@
1
+ /* Oracle capability evidence: visual story.
2
+ Uses the existing Oracle tokens only: --ink --muted --line --panel --green
3
+ --amber --blue --bg --serif --mono. No imported fonts, no third party palette. */
4
+
5
+ .eval-story {
6
+ --es-gap: clamp(28px, 5vw, 64px);
7
+ color: var(--ink);
8
+ }
9
+
10
+ .eval-story .es-section {
11
+ padding: clamp(56px, 8vw, 104px) 0;
12
+ border-top: 1px solid var(--line);
13
+ }
14
+
15
+ .eval-story .es-head {
16
+ display: grid;
17
+ grid-template-columns: 170px minmax(0, 1fr);
18
+ gap: 28px;
19
+ margin-bottom: clamp(28px, 4vw, 46px);
20
+ }
21
+
22
+ .eval-story .es-kicker {
23
+ margin: 0;
24
+ color: var(--muted);
25
+ font: 12px/1.4 var(--mono);
26
+ letter-spacing: 0.14em;
27
+ text-transform: uppercase;
28
+ }
29
+
30
+ .eval-story .es-head h2 {
31
+ grid-column: 2;
32
+ margin: 0;
33
+ font: 400 clamp(32px, 5vw, 62px)/1.02 var(--serif);
34
+ letter-spacing: -0.035em;
35
+ }
36
+
37
+ .eval-story .es-lede {
38
+ grid-column: 2;
39
+ max-width: 62ch;
40
+ margin: 14px 0 0;
41
+ color: var(--muted);
42
+ font-size: 15px;
43
+ line-height: 1.6;
44
+ }
45
+
46
+ /* ---------- figure panels ---------- */
47
+
48
+ .eval-story .es-fig {
49
+ margin: 0 0 var(--es-gap);
50
+ padding: 0;
51
+ background: var(--panel);
52
+ border: 1px solid var(--line);
53
+ }
54
+
55
+ .eval-story .es-svg {
56
+ display: block;
57
+ width: 100%;
58
+ height: auto;
59
+ padding: clamp(14px, 2vw, 26px) 0;
60
+ }
61
+
62
+ .eval-story .es-fig figcaption {
63
+ padding: 18px clamp(16px, 2vw, 26px) 22px;
64
+ border-top: 1px solid var(--line);
65
+ }
66
+
67
+ .eval-story .es-fig-label {
68
+ display: flex;
69
+ flex-wrap: wrap;
70
+ gap: 16px;
71
+ margin: 0 0 10px;
72
+ color: var(--muted);
73
+ font: 12px/1.4 var(--mono);
74
+ letter-spacing: 0.12em;
75
+ text-transform: uppercase;
76
+ }
77
+
78
+ .eval-story .es-caveat {
79
+ max-width: 78ch;
80
+ margin: 0 0 8px;
81
+ color: var(--muted);
82
+ font-size: 13px;
83
+ line-height: 1.6;
84
+ }
85
+
86
+ .eval-story .es-scroll-hint {
87
+ display: none;
88
+ margin-left: auto;
89
+ color: var(--blue);
90
+ }
91
+
92
+ @media (max-width: 1040px) {
93
+ .eval-story .es-scroll-hint { display: inline; }
94
+ }
95
+
96
+ .eval-story .es-caveat strong {
97
+ color: var(--ink);
98
+ font-weight: 700;
99
+ }
100
+
101
+ .eval-story .es-source {
102
+ margin: 10px 0 0;
103
+ color: var(--muted);
104
+ font: 12px/1.5 var(--mono);
105
+ overflow-wrap: anywhere;
106
+ }
107
+
108
+ /* ---------- svg primitives ---------- */
109
+
110
+ .eval-story .es-node,
111
+ .eval-story .es-node-lg {
112
+ fill: var(--ink);
113
+ stroke: none;
114
+ }
115
+
116
+ .eval-story .es-panel-box,
117
+ .eval-story .es-chip {
118
+ fill: none;
119
+ stroke: var(--line);
120
+ stroke-width: 1;
121
+ }
122
+
123
+ .eval-story .es-axis {
124
+ stroke: var(--line);
125
+ stroke-width: 1;
126
+ }
127
+
128
+ .eval-story .es-rail {
129
+ stroke: var(--muted);
130
+ stroke-width: 1;
131
+ opacity: 0.4;
132
+ }
133
+
134
+ .eval-story .es-arrow {
135
+ fill: var(--muted);
136
+ opacity: 0.7;
137
+ }
138
+
139
+ .eval-story .es-rail-flow {
140
+ stroke: var(--green);
141
+ stroke-width: 1;
142
+ stroke-dasharray: 8 118;
143
+ stroke-dashoffset: 0;
144
+ opacity: 0.85;
145
+ animation: es-travel 3.6s linear infinite;
146
+ animation-play-state: paused;
147
+ }
148
+
149
+ .eval-story [data-es-figure].is-active .es-rail-flow {
150
+ animation-play-state: running;
151
+ }
152
+
153
+ .eval-story .es-node-label {
154
+ fill: var(--ink);
155
+ font: 13px var(--mono);
156
+ }
157
+
158
+ .eval-story .es-node-sub,
159
+ .eval-story .es-axis-label,
160
+ .eval-story .es-chip-label,
161
+ .eval-story .es-node-index {
162
+ fill: var(--muted);
163
+ font: 12px var(--mono);
164
+ }
165
+
166
+ .eval-story .es-deny-line {
167
+ stroke: var(--amber);
168
+ stroke-width: 1;
169
+ stroke-dasharray: 4 5;
170
+ }
171
+
172
+ .eval-story .es-deny-box {
173
+ fill: none;
174
+ stroke: var(--amber);
175
+ stroke-width: 1;
176
+ opacity: 0.55;
177
+ }
178
+
179
+ .eval-story .es-deny-title,
180
+ .eval-story .es-deny-label {
181
+ fill: var(--amber);
182
+ font: 12px var(--mono);
183
+ }
184
+
185
+ .eval-story [data-es-figure="rlm"] .es-group {
186
+ opacity: 1;
187
+ }
188
+
189
+ .eval-story [data-es-figure="rlm"].is-active .es-group[data-es-part] {
190
+ animation: es-settle 0.5s ease-out both;
191
+ }
192
+
193
+ .eval-story [data-es-figure="rlm"].is-active .es-group[data-es-part="context"] { animation-delay: 0.08s; }
194
+ .eval-story [data-es-figure="rlm"].is-active .es-group[data-es-part="child"] { animation-delay: 0.16s; }
195
+ .eval-story [data-es-figure="rlm"].is-active .es-group[data-es-part="denied"] { animation-delay: 0.24s; }
196
+
197
+ @keyframes es-travel {
198
+ from { stroke-dashoffset: 126; }
199
+ to { stroke-dashoffset: 0; }
200
+ }
201
+
202
+ @keyframes es-settle {
203
+ from { opacity: 0; transform: translateY(6px); }
204
+ to { opacity: 1; transform: none; }
205
+ }
206
+
207
+ /* ---------- method section ---------- */
208
+
209
+ .eval-story .es-split {
210
+ display: grid;
211
+ grid-template-columns: minmax(0, 1.35fr) minmax(260px, 0.65fr);
212
+ gap: var(--es-gap);
213
+ }
214
+
215
+ .eval-story .es-steps {
216
+ display: grid;
217
+ grid-template-columns: repeat(2, minmax(0, 1fr));
218
+ gap: 1px;
219
+ margin: 0;
220
+ padding: 0;
221
+ list-style: none;
222
+ background: var(--line);
223
+ border: 1px solid var(--line);
224
+ }
225
+
226
+ .eval-story .es-steps li {
227
+ padding: 18px 20px;
228
+ background: var(--panel);
229
+ }
230
+
231
+ .eval-story .es-step-title {
232
+ display: flex;
233
+ gap: 12px;
234
+ align-items: baseline;
235
+ margin: 0 0 8px;
236
+ font: 13px/1.4 var(--mono);
237
+ letter-spacing: 0.04em;
238
+ }
239
+
240
+ .eval-story .es-step-num {
241
+ color: var(--green);
242
+ }
243
+
244
+ .eval-story .es-step-note {
245
+ margin: 0;
246
+ color: var(--muted);
247
+ font-size: 13px;
248
+ line-height: 1.6;
249
+ }
250
+
251
+ .eval-story .es-aside h3 {
252
+ margin: 0 0 12px;
253
+ font: 400 22px/1.2 var(--serif);
254
+ }
255
+
256
+ .eval-story .es-aside p {
257
+ margin: 0 0 14px;
258
+ color: var(--muted);
259
+ font-size: 13px;
260
+ line-height: 1.65;
261
+ }
262
+
263
+ .eval-story .es-status-list {
264
+ display: flex;
265
+ flex-wrap: wrap;
266
+ gap: 8px;
267
+ margin: 0 0 16px;
268
+ padding: 0;
269
+ list-style: none;
270
+ }
271
+
272
+ .eval-story .es-status {
273
+ display: inline-block;
274
+ padding: 5px 10px;
275
+ border: 1px solid var(--line);
276
+ font: 12px/1.3 var(--mono);
277
+ }
278
+
279
+ .eval-story .es-status[data-es-status="passed"] { color: var(--green); }
280
+ .eval-story .es-status[data-es-status="failed"] { color: var(--amber); }
281
+ .eval-story .es-status[data-es-status="blocked"] { color: var(--amber); }
282
+ .eval-story .es-status[data-es-status="skipped"],
283
+ .eval-story .es-status[data-es-status="unavailable"] { color: var(--muted); }
284
+
285
+ .eval-story .es-aside-note[data-es-state="blocked"],
286
+ .eval-story .es-aside-note[data-es-state="unavailable"] {
287
+ color: var(--amber);
288
+ }
289
+
290
+ /* ---------- rlm stepper ---------- */
291
+
292
+ .eval-story .es-stepper {
293
+ display: grid;
294
+ grid-template-columns: minmax(220px, 0.42fr) minmax(0, 1fr);
295
+ gap: 1px;
296
+ margin-bottom: var(--es-gap);
297
+ background: var(--line);
298
+ border: 1px solid var(--line);
299
+ }
300
+
301
+ .eval-story .es-tabs {
302
+ display: flex;
303
+ flex-direction: column;
304
+ gap: 1px;
305
+ background: var(--line);
306
+ }
307
+
308
+ .eval-story .es-tab {
309
+ display: flex;
310
+ gap: 12px;
311
+ align-items: baseline;
312
+ padding: 16px 18px;
313
+ color: var(--muted);
314
+ text-align: left;
315
+ background: var(--panel);
316
+ border: 0;
317
+ border-left: 2px solid transparent;
318
+ cursor: pointer;
319
+ font: 13px/1.4 var(--mono);
320
+ }
321
+
322
+ .eval-story .es-tab:hover { color: var(--ink); }
323
+
324
+ .eval-story .es-tab:focus-visible {
325
+ outline: 2px solid var(--green);
326
+ outline-offset: -3px;
327
+ }
328
+
329
+ .eval-story .es-tab[aria-selected="true"] {
330
+ color: var(--ink);
331
+ border-left-color: var(--green);
332
+ }
333
+
334
+ .eval-story .es-tab-num { color: var(--muted); }
335
+ .eval-story .es-tab[aria-selected="true"] .es-tab-num { color: var(--green); }
336
+
337
+ .eval-story .es-panels {
338
+ background: var(--panel);
339
+ }
340
+
341
+ .eval-story .es-panel {
342
+ padding: 22px clamp(18px, 2vw, 28px);
343
+ border-top: 1px solid var(--line);
344
+ }
345
+
346
+ .eval-story .es-panel:first-child { border-top: 0; }
347
+
348
+ .eval-story .es-panel:focus-visible {
349
+ outline: 2px solid var(--green);
350
+ outline-offset: -3px;
351
+ }
352
+
353
+ /* With JavaScript the stepper shows one panel at a time. Without it, every
354
+ panel stays on the page and reads as a plain list. */
355
+ .eval-story[data-es-js="on"] .es-panel { display: none; }
356
+ .eval-story[data-es-js="on"] .es-panel.is-current { display: block; }
357
+ .eval-story[data-es-js="on"] .es-panel.is-current { animation: es-settle 0.28s ease-out both; }
358
+
359
+ .eval-story .es-panel-kicker {
360
+ margin: 0 0 10px;
361
+ color: var(--blue);
362
+ font: 12px/1.4 var(--mono);
363
+ letter-spacing: 0.1em;
364
+ text-transform: uppercase;
365
+ }
366
+
367
+ .eval-story .es-panel-body {
368
+ max-width: 68ch;
369
+ margin: 0;
370
+ font-size: 15px;
371
+ line-height: 1.65;
372
+ }
373
+
374
+ .eval-story .es-facts {
375
+ display: grid;
376
+ grid-template-columns: repeat(2, minmax(0, 1fr));
377
+ gap: 1px;
378
+ background: var(--line);
379
+ border: 1px solid var(--line);
380
+ }
381
+
382
+ .eval-story .es-fact {
383
+ padding: 22px clamp(18px, 2vw, 26px);
384
+ background: var(--panel);
385
+ }
386
+
387
+ .eval-story .es-fact-value {
388
+ margin: 0 0 10px;
389
+ font: 700 17px/1.3 var(--mono);
390
+ letter-spacing: 0.02em;
391
+ }
392
+
393
+ .eval-story .es-fact-note {
394
+ max-width: 56ch;
395
+ margin: 0;
396
+ color: var(--muted);
397
+ font-size: 13px;
398
+ line-height: 1.65;
399
+ }
400
+
401
+ /* ---------- evidence ladder ---------- */
402
+
403
+ .eval-story .es-fig-plain { background: transparent; }
404
+
405
+ .eval-story .es-ladder {
406
+ display: grid;
407
+ gap: 1px;
408
+ margin: 0;
409
+ padding: 0;
410
+ list-style: none;
411
+ background: var(--line);
412
+ }
413
+
414
+ .eval-story .es-layer {
415
+ display: grid;
416
+ grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
417
+ gap: 12px clamp(18px, 3vw, 44px);
418
+ padding: 22px clamp(16px, 2vw, 26px);
419
+ background: var(--panel);
420
+ }
421
+
422
+ .eval-story .es-layer-head {
423
+ grid-column: 1;
424
+ display: flex;
425
+ flex-wrap: wrap;
426
+ gap: 8px 16px;
427
+ align-items: baseline;
428
+ }
429
+
430
+ .eval-story .es-layer-title {
431
+ margin: 0;
432
+ font: 400 21px/1.2 var(--serif);
433
+ }
434
+
435
+ .eval-story .es-layer-count {
436
+ margin: 0;
437
+ color: var(--muted);
438
+ font: 13px/1.4 var(--mono);
439
+ }
440
+
441
+ .eval-story .es-matrix {
442
+ grid-column: 1;
443
+ display: flex;
444
+ gap: 4px;
445
+ align-items: center;
446
+ }
447
+
448
+ .eval-story .es-cell {
449
+ width: 12px;
450
+ height: 12px;
451
+ border: 1px solid var(--line);
452
+ }
453
+
454
+ .eval-story .es-cell[data-es-cell="on"] { background: var(--ink); border-color: var(--ink); }
455
+
456
+ .eval-story .es-layer[data-es-state="corpus"] .es-cell[data-es-cell="on"] {
457
+ background: var(--blue);
458
+ border-color: var(--blue);
459
+ }
460
+
461
+ .eval-story .es-layer[data-es-state="planned"] .es-cell {
462
+ border-style: dashed;
463
+ border-color: var(--muted);
464
+ }
465
+
466
+ .eval-story .es-layer-state {
467
+ grid-column: 1;
468
+ margin: 0;
469
+ font: 12px/1.5 var(--mono);
470
+ letter-spacing: 0.06em;
471
+ text-transform: uppercase;
472
+ }
473
+
474
+ .eval-story .es-layer[data-es-state="measured"] .es-layer-state { color: var(--green); }
475
+ .eval-story .es-layer[data-es-state="corpus"] .es-layer-state { color: var(--blue); }
476
+ .eval-story .es-layer[data-es-state="planned"] .es-layer-state { color: var(--muted); }
477
+
478
+ .eval-story .es-layer-detail {
479
+ grid-column: 2;
480
+ grid-row: 1 / span 3;
481
+ max-width: 66ch;
482
+ margin: 0;
483
+ color: var(--muted);
484
+ font-size: 14px;
485
+ line-height: 1.65;
486
+ }
487
+
488
+ .eval-story .es-layer .es-source { grid-column: 2; margin-top: 0; }
489
+
490
+ .eval-story .es-next {
491
+ padding-top: 8px;
492
+ }
493
+
494
+ .eval-story .es-next h3 {
495
+ margin: 0 0 12px;
496
+ font: 400 clamp(24px, 3vw, 34px)/1.15 var(--serif);
497
+ }
498
+
499
+ .eval-story .es-next > p {
500
+ max-width: 70ch;
501
+ margin: 0 0 22px;
502
+ color: var(--muted);
503
+ font-size: 14px;
504
+ line-height: 1.65;
505
+ }
506
+
507
+ .eval-story .es-measures {
508
+ display: grid;
509
+ grid-template-columns: repeat(3, minmax(0, 1fr));
510
+ gap: 1px;
511
+ margin: 0 0 22px;
512
+ padding: 0;
513
+ list-style: none;
514
+ background: var(--line);
515
+ border: 1px solid var(--line);
516
+ }
517
+
518
+ .eval-story .es-measures li {
519
+ padding: 18px 20px;
520
+ background: var(--panel);
521
+ }
522
+
523
+ .eval-story .es-measure-title {
524
+ margin: 0 0 8px;
525
+ font: 13px/1.4 var(--mono);
526
+ letter-spacing: 0.03em;
527
+ }
528
+
529
+ .eval-story .es-measure-note {
530
+ margin: 0;
531
+ color: var(--muted);
532
+ font-size: 13px;
533
+ line-height: 1.6;
534
+ }
535
+
536
+ .eval-story .es-next-note {
537
+ max-width: 74ch;
538
+ margin: 0;
539
+ color: var(--muted);
540
+ font-size: 13px;
541
+ line-height: 1.7;
542
+ }
543
+
544
+ /* ---------- benchmark table ---------- */
545
+
546
+ .eval-story .es-table {
547
+ width: 100%;
548
+ border-collapse: collapse;
549
+ font-size: 14px;
550
+ }
551
+
552
+ .eval-story .es-table caption {
553
+ padding: 18px clamp(16px, 2vw, 26px);
554
+ color: var(--muted);
555
+ text-align: left;
556
+ font: 12px/1.5 var(--mono);
557
+ letter-spacing: 0.06em;
558
+ text-transform: uppercase;
559
+ border-bottom: 1px solid var(--line);
560
+ }
561
+
562
+ .eval-story .es-table th,
563
+ .eval-story .es-table td {
564
+ padding: 16px clamp(12px, 1.6vw, 22px);
565
+ text-align: left;
566
+ vertical-align: top;
567
+ border-bottom: 1px solid var(--line);
568
+ }
569
+
570
+ .eval-story .es-table thead th {
571
+ color: var(--muted);
572
+ font: 12px/1.4 var(--mono);
573
+ letter-spacing: 0.1em;
574
+ text-transform: uppercase;
575
+ font-weight: 400;
576
+ }
577
+
578
+ .eval-story .es-arm-label {
579
+ display: block;
580
+ font-size: 15px;
581
+ line-height: 1.35;
582
+ }
583
+
584
+ .eval-story .es-arm-meta {
585
+ display: block;
586
+ margin-top: 6px;
587
+ color: var(--muted);
588
+ font: 12px/1.4 var(--mono);
589
+ }
590
+
591
+ .eval-story .es-bar-cell { min-width: 200px; }
592
+
593
+ .eval-story .es-bar-track {
594
+ display: block;
595
+ height: 12px;
596
+ border: 1px solid var(--line);
597
+ border-left: 1px solid var(--ink);
598
+ }
599
+
600
+ .eval-story .es-bar-fill {
601
+ display: block;
602
+ height: 100%;
603
+ width: var(--es-fill, 0%);
604
+ background: var(--muted);
605
+ transform-origin: left center;
606
+ }
607
+
608
+ .eval-story tr[data-es-oracle="yes"] .es-bar-fill { background: var(--green); }
609
+
610
+ .eval-story [data-es-figure="benchmark"].is-active .es-bar-fill {
611
+ animation: es-grow 0.7s ease-out both;
612
+ }
613
+
614
+ @keyframes es-grow {
615
+ from { transform: scaleX(0); }
616
+ to { transform: scaleX(1); }
617
+ }
618
+
619
+ .eval-story .es-bar-value {
620
+ display: block;
621
+ margin-top: 8px;
622
+ font: 13px/1.4 var(--mono);
623
+ }
624
+
625
+ .eval-story .es-own {
626
+ color: var(--muted);
627
+ font: 13px/1.5 var(--mono);
628
+ white-space: nowrap;
629
+ }
630
+
631
+ .eval-story .es-audit {
632
+ max-width: 34ch;
633
+ color: var(--muted);
634
+ font-size: 13px;
635
+ line-height: 1.6;
636
+ }
637
+
638
+ .eval-story .es-evidence {
639
+ margin: 0;
640
+ font: 13px/1.5 var(--mono);
641
+ }
642
+
643
+ .eval-story .es-evidence a { color: var(--green); }
644
+
645
+ /* ---------- motion and small screens ---------- */
646
+
647
+ @media (prefers-reduced-motion: reduce) {
648
+ .eval-story .es-rail-flow,
649
+ .eval-story [data-es-figure] .es-group[data-es-part],
650
+ .eval-story .es-panel.is-current,
651
+ .eval-story .es-bar-fill {
652
+ animation: none !important;
653
+ animation-play-state: paused !important;
654
+ transform: none !important;
655
+ opacity: 1;
656
+ }
657
+ }
658
+
659
+ @media (max-width: 1040px) {
660
+ /* Below the figure's natural width the SVG labels would scale under 12px.
661
+ Scroll the panel at full scale instead of shrinking the text. */
662
+ .eval-story .es-fig[data-es-figure="method"],
663
+ .eval-story .es-fig[data-es-figure="rlm"] {
664
+ overflow-x: auto;
665
+ }
666
+
667
+ .eval-story .es-fig[data-es-figure="method"] .es-svg,
668
+ .eval-story .es-fig[data-es-figure="rlm"] .es-svg {
669
+ min-width: 960px;
670
+ }
671
+
672
+ .eval-story .es-fig[data-es-figure="method"] figcaption,
673
+ .eval-story .es-fig[data-es-figure="rlm"] figcaption {
674
+ position: sticky;
675
+ left: 0;
676
+ min-width: 0;
677
+ max-width: 100vw;
678
+ }
679
+ }
680
+
681
+ @media (max-width: 900px) {
682
+ .eval-story .es-head { grid-template-columns: 1fr; gap: 10px; }
683
+ .eval-story .es-head h2,
684
+ .eval-story .es-lede { grid-column: 1; }
685
+ .eval-story .es-split,
686
+ .eval-story .es-stepper { grid-template-columns: 1fr; }
687
+ .eval-story .es-tabs { flex-direction: row; flex-wrap: wrap; }
688
+ .eval-story .es-tab { flex: 1 1 160px; border-left: 0; border-bottom: 2px solid transparent; }
689
+ .eval-story .es-tab[aria-selected="true"] { border-left-color: transparent; border-bottom-color: var(--green); }
690
+ .eval-story .es-layer { grid-template-columns: 1fr; }
691
+ .eval-story .es-layer-detail,
692
+ .eval-story .es-layer .es-source { grid-column: 1; grid-row: auto; }
693
+ .eval-story .es-measures { grid-template-columns: repeat(2, minmax(0, 1fr)); }
694
+ }
695
+
696
+ @media (max-width: 640px) {
697
+ .eval-story .es-steps,
698
+ .eval-story .es-facts,
699
+ .eval-story .es-measures { grid-template-columns: 1fr; }
700
+ }
701
+
702
+ @media (max-width: 390px) {
703
+ .eval-story .es-section { padding: 44px 0; }
704
+ .eval-story .es-fig figcaption,
705
+ .eval-story .es-panel,
706
+ .eval-story .es-layer,
707
+ .eval-story .es-fact { padding-left: 14px; padding-right: 14px; }
708
+ .eval-story .es-fig-label { gap: 8px; }
709
+ }
710
+
711
+ @media (max-width: 640px) {
712
+ .eval-story .es-table,
713
+ .eval-story .es-table th,
714
+ .eval-story .es-table td { display: block; width: 100%; }
715
+ .eval-story .es-table thead { display: none; }
716
+ .eval-story .es-table td { border-bottom: 0; }
717
+ .eval-story .es-table td::before { content: attr(data-label); display: block; margin-bottom: 9px; color: var(--muted); font: 12px/1.4 var(--mono); }
718
+ .eval-story .es-table tbody tr { display: block; border-bottom: 1px solid var(--line); }
719
+ .eval-story .es-bar-cell { min-width: 0; }
720
+ .eval-story .es-audit { max-width: none; }
721
+ .eval-story .es-matrix { flex-wrap: wrap; }
722
+ }