File size: 47,490 Bytes
2e27f9b
 
 
 
68e0209
 
 
 
2e27f9b
c35deaa
2e27f9b
c35deaa
df354f5
2e27f9b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d25133b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c331959
 
 
 
 
 
 
 
 
 
 
 
c031696
 
 
c331959
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2e27f9b
68e0209
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2e27f9b
 
c35deaa
 
 
 
 
 
 
 
 
 
d56c193
 
 
 
 
c35deaa
d56c193
c35deaa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d56c193
 
c35deaa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
d56c193
 
 
 
 
 
 
c35deaa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2e27f9b
6b9bf45
df354f5
 
 
 
c35deaa
315dcad
6b9bf45
 
 
2e27f9b
 
c35deaa
2e27f9b
6b9bf45
2e27f9b
6b9bf45
 
 
 
 
2e27f9b
 
 
 
c35deaa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2e27f9b
6b9bf45
c331959
 
c35deaa
 
2e27f9b
 
dd2cdc3
 
 
 
 
 
c35deaa
2e27f9b
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover, user-scalable=yes"/>
  <meta name="apple-mobile-web-app-capable" content="yes"/>
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"/>
  <meta name="theme-color" content="#1a0d2e"/>
  <title>SZL Holdings — Governed Agentic Mesh</title>
  <meta name="description" content="SZL Holdings: a governed agentic mesh. rosie commands a11oy; a11oy enforces; amaru remembers; sentra guards; vessels carries the load. Doctrine v11 (749/14/163), formal Lean proofs, signed receipts."/>
  <meta property="og:title" content="SZL Holdings — Governed Agentic Mesh"/>
  <meta property="og:description" content="Five organs, ten sub-organs. Every call leaves a receipt. Doctrine v11 LOCKED · 749/14/163."/>
  <meta property="og:image" content="https://huggingface.co/spaces/SZLHOLDINGS/README/resolve/main/assets/szl_banner.png"/>
  <meta property="og:type" content="website"/>
  <link rel="preconnect" href="https://fonts.googleapis.com"/>
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
  <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet"/>
  <style>
  /* =========================================================
     SZL SHOWCASE — inherits amaru-platform design language
     Palette: deep purple #1a0d2e · gold #d4af37
     ========================================================= */
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  :root{
    --purple-deep:#1a0d2e; --purple-mid:#2d1b4e; --purple-light:#3d2878;
    --gold:#d4af37; --gold-light:#e8cc6a; --gold-dim:#b8952e;
    --text-main:#e8e0f0; --text-muted:#a090c0; --text-dim:#7060a0;
    --border:rgba(212,175,55,0.18); --glass:rgba(45,27,78,0.55);
    --coral:#ff7a59; --cyan:#00d4ff; --green:#3ddc84; --ocean:#0099cc;
    --font-head:'Cinzel','Palatino Linotype',Georgia,serif;
    --font-body:'Inter',system-ui,-apple-system,sans-serif;
    --font-mono:'JetBrains Mono','Fira Code',monospace;
    --radius:12px; --radius-lg:20px; --content-max:1180px;
  }
  html{scroll-behavior:smooth;font-size:16px;}
  body{background:var(--purple-deep);color:var(--text-main);font-family:var(--font-body);line-height:1.7;-webkit-font-smoothing:antialiased;
    background-image:radial-gradient(circle at 20% -10%,rgba(61,40,120,0.45),transparent 45%),radial-gradient(circle at 90% 10%,rgba(212,175,55,0.06),transparent 40%);}
  h1,h2,h3,h4{font-family:var(--font-head);letter-spacing:0.03em;line-height:1.2;}
  h1{font-size:clamp(2.4rem,6vw,4.2rem);color:var(--gold);}
  h2{font-size:clamp(1.6rem,3.5vw,2.5rem);color:var(--gold-light);margin-bottom:0.4rem;}
  h3{font-size:1.1rem;color:var(--gold);margin-bottom:0.35rem;}
  h4{font-size:0.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:0.12em;}
  p{margin-bottom:1rem;color:var(--text-main);}
  a{color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s;}
  a:hover{border-color:var(--gold);}
  code,.mono{font-family:var(--font-mono);font-size:0.85em;background:rgba(212,175,55,0.08);padding:0.12em 0.45em;border-radius:5px;color:var(--gold-light);}
  strong{color:var(--gold-light);font-weight:600;}
  .container{max-width:var(--content-max);margin:0 auto;padding:0 1.6rem;}
  section{padding:5rem 0;position:relative;}
  section+section{border-top:1px solid var(--border);}
  .gold-bar{width:54px;height:3px;background:linear-gradient(90deg,var(--gold),transparent);margin:0.6rem 0 2rem;border-radius:2px;}
  .section-label{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.2em;text-transform:uppercase;color:var(--gold-dim);}
  .skip{position:absolute;left:-9999px;top:1rem;z-index:9999;padding:0.5rem 1.25rem;background:var(--gold);color:var(--purple-deep);font-weight:700;border-radius:4px;}
  .skip:focus{left:1rem;}
  /* NAV */
  nav{position:sticky;top:0;z-index:100;background:rgba(26,13,46,0.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);}
  .nav-inner{max-width:var(--content-max);margin:0 auto;padding:0.7rem 1.6rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;}
  .nav-logo{display:flex;align-items:center;gap:0.5rem;font-family:var(--font-head);font-weight:700;color:var(--gold);font-size:1.05rem;}
  .nav-links{display:flex;gap:1.05rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;}
  .nav-links a{color:var(--text-muted);border:none;}
  .nav-links a:hover{color:var(--gold-light);}
  /* HERO */
  #hero{padding-top:4rem;}
  .hero-eyebrow{font-family:var(--font-mono);font-size:0.75rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:1rem;}
  .pill{display:inline-block;font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.05em;padding:0.32rem 0.85rem;border-radius:999px;border:1px solid var(--border);background:var(--glass);color:var(--text-muted);margin:0.2rem 0.3rem 0.2rem 0;}
  .pill.warn{border-color:rgba(255,122,89,0.4);color:#ffb39e;}
  .pill.gold{border-color:var(--gold);color:var(--gold-light);}
  .hero-tagline{font-size:clamp(1.05rem,2.2vw,1.4rem);color:var(--text-main);max-width:760px;margin:1.1rem auto 1.4rem;}
  .hero-grid{display:grid;grid-template-columns:1.05fr 0.95fr;gap:2.5rem;align-items:center;}
  .hero-img{width:100%;max-width:540px;border-radius:var(--radius-lg);border:1px solid var(--border);background:#fff;}
  .ctas{display:flex;gap:0.8rem;flex-wrap:wrap;margin-top:1.6rem;}
  .btn{font-family:var(--font-body);font-weight:600;font-size:0.92rem;padding:0.7rem 1.3rem;border-radius:var(--radius);border:1px solid var(--border);transition:transform .15s,box-shadow .15s;}
  .btn-primary{background:linear-gradient(135deg,var(--gold),var(--gold-dim));color:var(--purple-deep);border-color:var(--gold);}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(212,175,55,0.25);border-color:var(--gold);}
  .btn-secondary{background:var(--glass);color:var(--text-main);}
  .btn-secondary:hover{transform:translateY(-2px);border-color:var(--gold);}
  /* ORGAN GRID */
  .organ-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.2rem;margin-top:1.5rem;}
  .organ-card{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.2rem 1rem;text-align:center;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;flex-direction:column;}
  .organ-card:hover{transform:translateY(-4px);border-color:var(--accent,var(--gold));box-shadow:0 12px 30px rgba(0,0,0,0.35);}
  .organ-card img{width:118px;height:118px;border-radius:50%;margin:0 auto 0.7rem;border:2px solid var(--accent,var(--gold));}
  .organ-name{font-family:var(--font-head);font-size:1.25rem;color:var(--gold);margin-bottom:0.15rem;}
  .organ-role{font-size:0.82rem;color:var(--text-muted);min-height:2.4em;}
  .organ-quote{font-family:var(--font-mono);font-size:0.72rem;color:var(--text-main);background:rgba(255,255,255,0.04);border-radius:8px;padding:0.5rem;margin:0.7rem 0;min-height:3.4em;}
  .organ-facts{font-family:var(--font-mono);font-size:0.68rem;color:var(--text-dim);letter-spacing:0.02em;margin-bottom:0.8rem;}
  .organ-card a.go{margin-top:auto;font-size:0.8rem;font-weight:600;}
  /* SUB-ORGAN GRID */
  .sub-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0.8rem;margin-top:1.5rem;}
  .sub-card{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius);padding:0.85rem;font-size:0.8rem;}
  .sub-card b{color:var(--gold-light);font-size:0.92rem;}
  .sub-card .where{display:block;font-family:var(--font-mono);font-size:0.66rem;color:var(--text-dim);margin-top:0.4rem;letter-spacing:0.04em;}
  /* PhD STRIP */
  .phd-note{font-size:0.85rem;color:var(--text-muted);background:rgba(255,122,89,0.07);border:1px solid rgba(255,122,89,0.25);border-radius:var(--radius);padding:0.7rem 1rem;margin-bottom:1.4rem;}
  .phd-strip{display:flex;gap:1rem;overflow-x:auto;padding:0.6rem 0.2rem 1.2rem;scroll-snap-type:x mandatory;}
  .phd-badge{flex:0 0 220px;scroll-snap-align:start;background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.1rem;text-align:center;transition:transform .18s,border-color .18s;}
  .phd-badge:hover{transform:translateY(-4px);border-color:var(--gold);}
  .phd-badge img{width:120px;height:120px;border-radius:50%;margin:0 auto 0.6rem;display:block;}
  .phd-badge .title{font-family:var(--font-head);color:var(--gold);font-size:1.05rem;margin-bottom:0.4rem;}
  .phd-badge .ship{font-size:0.76rem;color:var(--text-muted);line-height:1.5;}
  /* STATE TABLE */
  table.state{width:100%;border-collapse:collapse;margin-top:1.2rem;font-size:0.88rem;}
  table.state th,table.state td{text-align:left;padding:0.6rem 0.8rem;border-bottom:1px solid var(--border);}
  table.state th{font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold-dim);}
  table.state td:nth-child(2){font-family:var(--font-mono);color:var(--gold-light);}
  /* FOOTER */
  footer{padding:3rem 0 4rem;border-top:1px solid var(--border);font-size:0.85rem;color:var(--text-muted);}
  footer .links{display:flex;flex-wrap:wrap;gap:0.6rem 1.2rem;margin:1rem 0;font-family:var(--font-mono);font-size:0.8rem;}
  footer .built{font-family:var(--font-mono);font-size:0.74rem;color:var(--text-dim);margin-top:1rem;letter-spacing:0.03em;}
  /* RESPONSIVE */
  @media(max-width:980px){
    .hero-grid{grid-template-columns:1fr;text-align:center;}
    .hero-img{margin:0 auto;}
    .ctas{justify-content:center;}
    .organ-grid{grid-template-columns:repeat(2,1fr);}
    .sub-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:560px){
    .organ-grid{grid-template-columns:1fr;}
    .sub-grid{grid-template-columns:1fr;}
  }
  /* =========================================================
     AMBIENT EMOJI LAYER (Wave4 — additive)
     5 character emojis hanging around the page edges, animated.
     Additive layer: does NOT touch the banner or the organ-card
     painterly avatars. Uses transform/opacity (GPU compositor).
     z-index 40: above the page background, below nav (100) + skip (9999).
     ========================================================= */
  .emoji-layer{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden;}
  /* outer wrapper = resting spot + slow drift; inner img = breathing + hover pulse */
  .ambient-emoji{position:fixed;width:84px;height:84px;pointer-events:auto;}
  .ae-inner{display:block;width:100%;height:100%;opacity:0.9;
    filter:drop-shadow(0 4px 14px rgba(0,0,0,0.45));will-change:transform,opacity;
    transition:transform .25s ease,filter .25s ease,opacity .25s ease;}
  /* fixed resting spots — corners/edges, clear of the top-center banner */
  .ae-a11oy{top:88px;left:22px;}            /* upper-left, below nav */
  .ae-rosie{top:118px;right:26px;}          /* upper-right */
  .ae-amaru{top:46%;left:14px;}             /* mid-left edge */
  .ae-sentra{top:54%;right:16px;}           /* mid-right edge */
  .ae-vessels{bottom:42px;right:40px;}      /* lower-right */
  /* hover + keyboard focus: non-motion cue (brighten) survives reduced-motion */
  .ambient-emoji:hover .ae-inner,.ambient-emoji:focus-visible .ae-inner{opacity:1;
    filter:drop-shadow(0 6px 20px rgba(212,175,55,0.55));}
  .ambient-emoji:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:50%;}
  /* shrink + tuck on small screens so emojis never block reading */
  @media(max-width:760px){
    .ambient-emoji{width:54px;height:54px;opacity:0.8;}
    .ae-amaru,.ae-sentra{display:none;}
  }

  /* Motion enabled for users who have NOT requested reduced motion */
  @media(prefers-reduced-motion:no-preference){
    @keyframes ae-breathe{0%,100%{transform:translateY(0) scale(1);opacity:0.88;}
      50%{transform:translateY(-6px) scale(1.05);opacity:1;}}
    @keyframes ae-drift-a{0%{transform:translate3d(0,0,0);}25%{transform:translate3d(10px,-8px,0);}
      50%{transform:translate3d(4px,8px,0);}75%{transform:translate3d(-8px,4px,0);}100%{transform:translate3d(0,0,0);}}
    @keyframes ae-drift-b{0%{transform:translate3d(0,0,0);}30%{transform:translate3d(-12px,6px,0);}
      60%{transform:translate3d(6px,-10px,0);}100%{transform:translate3d(0,0,0);}}
    @keyframes ae-pulse{0%{transform:scale(1);}40%{transform:scale(1.16);}100%{transform:scale(1);}}
    /* idle breathing on the inner image; slow 30s drift on the wrapper */
    .ae-inner{animation:ae-breathe 5.5s ease-in-out infinite;}
    .ambient-emoji{animation:ae-drift-a 30s ease-in-out infinite;}
    .ae-a11oy .ae-inner{animation-delay:-0.2s;}
    .ae-rosie .ae-inner{animation-delay:-1.4s;}
    .ae-amaru .ae-inner{animation-delay:-2.6s;}
    .ae-sentra .ae-inner{animation-delay:-3.8s;}
    .ae-vessels .ae-inner{animation-delay:-4.9s;}
    .ae-rosie,.ae-sentra{animation-name:ae-drift-b;}
    .ambient-emoji:hover .ae-inner,.ambient-emoji:focus-visible .ae-inner{animation:ae-pulse .6s ease-in-out;}
  }

  @media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important;}
    .ae-inner{animation:none!important;}.ambient-emoji{animation:none!important;}}

  /* =========================================================
     MISSION ROOM — joint cyber-ops action band (Wave4, additive)
     Replaces the static team picture. Six characters, each an
     animated WebP looping its own cyber task. The looping is baked
     into each WebP; CSS adds just a very slight ambient float that
     is fully disabled under prefers-reduced-motion. A static
     first-frame WebP is stacked underneath and revealed when motion
     is reduced (the animated layer is hidden in that case).
     ========================================================= */
  #mission-room{padding:2.4rem 0 1.6rem;border-top:none;text-align:center;}
  .mr-head{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:0.2rem;}
  .mr-band{display:flex;justify-content:center;align-items:flex-end;gap:0.3rem;flex-wrap:wrap;
    padding:0.6rem 0 0.4rem;margin:0 auto;max-width:1140px;}
  .mr-unit{position:relative;width:clamp(120px,15vw,178px);height:clamp(120px,15vw,178px);
    display:flex;align-items:flex-end;justify-content:center;}
  .mr-unit img{display:block;width:100%;height:100%;object-fit:contain;
    filter:drop-shadow(0 6px 16px rgba(0,0,0,0.45));}
  /* the static layer sits beneath the moving layer; hidden by default */
  .mr-static{position:absolute;inset:0;opacity:0;}
  .mr-cap{font-family:var(--font-mono);font-size:0.74rem;letter-spacing:0.14em;
    color:var(--text-muted);margin-top:0.5rem;}
  .mr-cap b{color:var(--gold-light);font-weight:500;}
  @media(max-width:760px){
    .mr-band{gap:0.2rem;}
    .mr-unit{width:clamp(92px,29vw,120px);height:clamp(92px,29vw,120px);}
  }
  /* ambient float for motion-OK users; offset per unit so the band is alive, not in lock-step */
  @media(prefers-reduced-motion:no-preference){
    @keyframes mr-bob{0%,100%{transform:translateY(0);}50%{transform:translateY(-7px);}}
    @keyframes mr-blip{0%,92%,100%{opacity:0;transform:scale(0.6);}96%{opacity:0.9;transform:scale(1);}}
    .mr-unit{animation:mr-bob 4.6s ease-in-out infinite;}
    .mr-unit:nth-child(1){animation-delay:-0.1s;}
    .mr-unit:nth-child(2){animation-delay:-1.3s;animation-duration:5.1s;}
    .mr-unit:nth-child(3){animation-delay:-2.4s;animation-duration:4.2s;}
    .mr-unit:nth-child(4){animation-delay:-3.0s;animation-duration:5.4s;}
    .mr-unit:nth-child(5){animation-delay:-1.9s;animation-duration:4.8s;}
    .mr-unit:nth-child(6){animation-delay:-3.7s;animation-duration:5.0s;}
    /* occasional sparkle blip near a couple of units */
    .mr-unit::after{content:"";position:absolute;top:8%;right:10%;width:7px;height:7px;border-radius:50%;
      background:var(--gold-light);box-shadow:0 0 8px var(--gold-light);opacity:0;pointer-events:none;}
    .mr-unit:nth-child(1)::after{animation:mr-blip 7.5s ease-in-out infinite;}
    .mr-unit:nth-child(4)::after{animation:mr-blip 9.2s ease-in-out infinite 2s;}
  }
  /* reduced motion: kill float + sparkle, hide the animated frame, show the still */
  @media(prefers-reduced-motion:reduce){
    .mr-unit{animation:none!important;}
    .mr-unit::after{display:none!important;}
    .mr-anim{opacity:0!important;}
    .mr-static{opacity:1!important;}
  }
  </style>

  <style id="szl-mobile-card-safety">
  /* SZL org-card mobile safety net (ADDITIVE — Yachay). Overrides via later cascade. */
  html, body { -webkit-tap-highlight-color: transparent; }
  body { max-width: 100vw; overflow-x: hidden; }
  img, canvas, svg, video, iframe { max-width: 100%; height: auto; }
  /* intermediate tablet/large-phone layout: 5-col -> 2-col before the 560px 1-col fallback */
  @media (max-width: 900px) and (min-width: 561px) {
    .organ-grid, .sub-grid { grid-template-columns: repeat(2, 1fr) !important; }
  }
  @media (max-width: 560px) {
    body { font-size: 16px; }
    h1 { font-size: 24px; line-height: 1.2; }
    a, button, [role="button"] { min-height: 44px; }
    .organ-grid, .sub-grid { gap: 0.9rem; }
  }
  </style>
</head>
<body>
<!-- ================= SZL 3D HERO FIGURES (Three.js) — replaces chibi 2D avatars =================
     Five distinct procedural low-poly 3D heroes, one per organ, each in its own scene cell.
     Click a figure -> opens that organ's live HF Space. Mobile-first per SZL_MOBILE_FIRST_STANDARD.
     Aesthetic: dark slate #0a0e14 cells, warm gold #d4a444 accents, white emissive highlights.
     Apache-2.0 · Signed Yachay <yachay@szlholdings.dev> · Doctrine v11 LOCKED (749/14/163).
     ADDITIVE: this block replaces ONLY the chibi avatar portrait row. -->
<section id="szl-3d-heroes" style="padding:3rem 0 1rem;text-align:center;">
  <div class="container">
    <p class="mr-head" style="font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:0.2rem;">The Mesh · Five Organs · Live 3D</p>
    <div id="szl-hero-grid" role="group" aria-label="SZL Holdings five organs, interactive 3D figures">
      <a class="szl-hero-cell" href="https://huggingface.co/spaces/SZLHOLDINGS/amaru"   data-organ="amaru"   aria-label="amaru — memory cortex (serpent + crystal core), open Space"><canvas data-organ="amaru" style="background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJiZyIgY3g9IjUwJSIgY3k9IjQyJSIgcj0iNzAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMTAxNTFmIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDYwOTBmIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHJlY3Qgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHJ4PSIxMiIgZmlsbD0idXJsKCNiZykiLz48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNkNGE0NDQiIHN0cm9rZS13aWR0aD0iMTEiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgb3BhY2l0eT0iMC45NSI+PGVsbGlwc2UgY3g9IjEyOCIgY3k9IjE5MCIgcng9IjU4IiByeT0iMTciLz48ZWxsaXBzZSBjeD0iMTI4IiBjeT0iMTUwIiByeD0iNTAiIHJ5PSIxNSIvPjxlbGxpcHNlIGN4PSIxMjgiIGN5PSIxMTIiIHJ4PSI0MCIgcnk9IjEyIi8+PGVsbGlwc2UgY3g9IjEyOCIgY3k9IjgwIiByeD0iMjgiIHJ5PSI5Ii8+PC9nPjxwb2x5Z29uIHBvaW50cz0iMTI4LDk4IDE1MCwxMzIgMTI4LDE1NiAxMDYsMTMyIiBmaWxsPSIjZThjYzZhIi8+PHBvbHlnb24gcG9pbnRzPSIxMjgsNjAgMTQ0LDg0IDEyOCw5OCAxMTIsODQiIGZpbGw9IiNkNGE0NDQiLz48Y2lyY2xlIGN4PSIxNDIiIGN5PSI3NCIgcj0iNCIgZmlsbD0iI2Y0ZWVkZSIvPjwvc3ZnPg==');background-size:cover;background-position:center;"></canvas><span class="szl-hero-name">amaru</span><span class="szl-hero-role">cortex · serpent</span></a>
      <a class="szl-hero-cell" href="https://huggingface.co/spaces/SZLHOLDINGS/sentra"  data-organ="sentra"  aria-label="sentra — immune shield, open Space"><canvas data-organ="sentra" style="background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJiZyIgY3g9IjUwJSIgY3k9IjQyJSIgcj0iNzAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMTAxNTFmIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDYwOTBmIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHJlY3Qgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHJ4PSIxMiIgZmlsbD0idXJsKCNiZykiLz48ZyBmaWxsPSJub25lIiBzdHJva2U9IiNkNGE0NDQiIHN0cm9rZS13aWR0aD0iMi40IiBvcGFjaXR5PSIwLjkiPjxwb2x5Z29uIHBvaW50cz0iMTI4LDU2IDE5NiwxMDQgMTcwLDE4MiA4NiwxODIgNjAsMTA0Ii8+PHBvbHlnb24gcG9pbnRzPSIxMjgsNTYgMTcwLDE4MiA2MCwxMDQiLz48cG9seWdvbiBwb2ludHM9IjEyOCw1NiA4NiwxODIgMTk2LDEwNCIvPjxsaW5lIHgxPSI2MCIgeTE9IjEwNCIgeDI9IjE5NiIgeTI9IjEwNCIvPjxsaW5lIHgxPSIxMjgiIHkxPSI1NiIgeDI9IjEyOCIgeTI9IjE4MiIvPjwvZz48cG9seWdvbiBwb2ludHM9IjEwMCwxMTggMTU2LDExOCAxMjgsMTUwIiBmaWxsPSIjZDRhNDQ0IiBvcGFjaXR5PSIwLjU1Ii8+PGNpcmNsZSBjeD0iNjAiIGN5PSIxMzgiIHI9IjYiIGZpbGw9IiNmZjVhNDQiLz48Y2lyY2xlIGN4PSIyMDAiIGN5PSIxMjAiIHI9IjYiIGZpbGw9IiNmZjVhNDQiLz48Y2lyY2xlIGN4PSI3OCIgY3k9IjkyIiByPSI1IiBmaWxsPSIjNjY4OGZmIi8+PGNpcmNsZSBjeD0iMTI4IiBjeT0iMTIwIiByPSIzNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZThjYzZhIiBzdHJva2Utd2lkdGg9IjQiIG9wYWNpdHk9IjAuOCIvPjwvc3ZnPg==');background-size:cover;background-position:center;"></canvas><span class="szl-hero-name">sentra</span><span class="szl-hero-role">immune · shield</span></a>
      <a class="szl-hero-cell" href="https://huggingface.co/spaces/SZLHOLDINGS/rosie"   data-organ="rosie"   aria-label="rosie — operator console (HUD rings), open Space"><canvas data-organ="rosie" style="background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJiZyIgY3g9IjUwJSIgY3k9IjQyJSIgcj0iNzAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMTAxNTFmIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDYwOTBmIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHJlY3Qgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHJ4PSIxMiIgZmlsbD0idXJsKCNiZykiLz48Y2lyY2xlIGN4PSIxMjgiIGN5PSIxMjgiIHI9IjQ0IiBmaWxsPSIjMTExNjFmIiBzdHJva2U9IiNkNGE0NDQiIHN0cm9rZS13aWR0aD0iMyIvPjxjaXJjbGUgY3g9IjEyOCIgY3k9IjEyOCIgcj0iMjIiIGZpbGw9IiNmNGVlZGUiIG9wYWNpdHk9IjAuOTIiLz48ZyBzdHJva2U9IiNkNGE0NDQiIHN0cm9rZS13aWR0aD0iNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBvcGFjaXR5PSIwLjg1Ij48bGluZSB4MT0iNjAiIHkxPSIxNzAiIHgyPSI2MCIgeTI9IjEyMCIvPjxsaW5lIHgxPSIxMDAiIHkxPSIxODAiIHgyPSIxMDAiIHkyPSIxMTAiLz48bGluZSB4MT0iMTU2IiB5MT0iMTgwIiB4Mj0iMTU2IiB5Mj0iMTEwIi8+PGxpbmUgeDE9IjE5NiIgeTE9IjE3MCIgeDI9IjE5NiIgeTI9IjEyMCIvPjwvZz48cmVjdCB4PSI1NiIgeT0iMTc2IiB3aWR0aD0iMTQ0IiBoZWlnaHQ9IjgiIHJ4PSI0IiBmaWxsPSIjZDRhNDQ0Ii8+PGNpcmNsZSBjeD0iMTI4IiBjeT0iMTI4IiByPSI2MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZThjYzZhIiBzdHJva2Utd2lkdGg9IjEuNiIgb3BhY2l0eT0iMC41Ii8+PC9zdmc+');background-size:cover;background-position:center;"></canvas><span class="szl-hero-name">rosie</span><span class="szl-hero-role">operator · console</span></a>
      <a class="szl-hero-cell" href="https://huggingface.co/spaces/SZLHOLDINGS/killinchu" data-organ="killinchu" aria-label="killinchu — kestrel drone intel, open Space"><canvas data-organ="killinchu" style="background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJiZyIgY3g9IjUwJSIgY3k9IjQyJSIgcj0iNzAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMTAxNTFmIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDYwOTBmIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHJlY3Qgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHJ4PSIxMiIgZmlsbD0idXJsKCNiZykiLz48cGF0aCBkPSJNNzAgMTQwIFExMjggOTYgMTg2IDE0MCBRMTUwIDEyOCAxMjggMTI4IFExMDYgMTI4IDcwIDE0MFoiIGZpbGw9IiNkNGE0NDQiLz48cG9seWdvbiBwb2ludHM9IjEyOCwxMTIgMTM0LDEyOCAxMjIsMTI4IiBmaWxsPSIjZThjYzZhIi8+PGcgZmlsbD0iI2Y0ZWVkZSIgb3BhY2l0eT0iMC45Ij48Y2lyY2xlIGN4PSI2NCIgY3k9IjEyMCIgcj0iMy4yIi8+PGNpcmNsZSBjeD0iOTIiIGN5PSI5NiIgcj0iMi42Ii8+PGNpcmNsZSBjeD0iMTYwIiBjeT0iOTIiIHI9IjMiLz48Y2lyY2xlIGN4PSIxOTYiIGN5PSIxMTgiIHI9IjMuNCIvPjxjaXJjbGUgY3g9IjE1MCIgY3k9IjE2MCIgcj0iMi42Ii8+PGNpcmNsZSBjeD0iMTAwIiBjeT0iMTY4IiByPSIzIi8+PGNpcmNsZSBjeD0iMjAwIiBjeT0iMTUwIiByPSIyLjQiLz48Y2lyY2xlIGN4PSI1OCIgY3k9IjE1OCIgcj0iMi42Ii8+PGNpcmNsZSBjeD0iMTI4IiBjeT0iNzgiIHI9IjIuNCIvPjwvZz48ZyBmaWxsPSIjNjY4OGZmIiBvcGFjaXR5PSIwLjgiPjxjaXJjbGUgY3g9IjEyMCIgY3k9IjE1MCIgcj0iMi42Ii8+PGNpcmNsZSBjeD0iMTcwIiBjeT0iMTQwIiByPSIyLjYiLz48L2c+PC9zdmc+');background-size:cover;background-position:center;"></canvas><span class="szl-hero-name">killinchu</span><span class="szl-hero-role">kestrel · drone</span></a>
      <a class="szl-hero-cell" href="https://huggingface.co/spaces/SZLHOLDINGS/a11oy"   data-organ="a11oy"   aria-label="a11oy — router knot-graph (Khipu cords), open Space"><canvas data-organ="a11oy" style="background-image:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJiZyIgY3g9IjUwJSIgY3k9IjQyJSIgcj0iNzAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMTAxNTFmIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDYwOTBmIi8+PC9yYWRpYWxHcmFkaWVudD48L2RlZnM+PHJlY3Qgd2lkdGg9IjI1NiIgaGVpZ2h0PSIyNTYiIHJ4PSIxMiIgZmlsbD0idXJsKCNiZykiLz48ZyBzdHJva2U9IiNkNGE0NDQiIHN0cm9rZS13aWR0aD0iMi4yIiBvcGFjaXR5PSIwLjg1Ij48bGluZSB4MT0iMTI4IiB5MT0iNzIiIHgyPSIxODYiIHkyPSIxMDQiLz48bGluZSB4MT0iMTg2IiB5MT0iMTA0IiB4Mj0iMTk2IiB5Mj0iMTY4Ii8+PGxpbmUgeDE9IjE5NiIgeTE9IjE2OCIgeDI9IjE0MCIgeTI9IjE5NiIvPjxsaW5lIHgxPSIxNDAiIHkxPSIxOTYiIHgyPSI4NiIgeTI9IjE4NCIvPjxsaW5lIHgxPSI4NiIgeTE9IjE4NCIgeDI9IjY0IiB5Mj0iMTI4Ii8+PGxpbmUgeDE9IjY0IiB5MT0iMTI4IiB4Mj0iMTI4IiB5Mj0iNzIiLz48bGluZSB4MT0iMTI4IiB5MT0iNzIiIHgyPSI5NiIgeTI9Ijk2Ii8+PGxpbmUgeDE9Ijk2IiB5MT0iOTYiIHgyPSIxNTAiIHkyPSIxNDAiLz48bGluZSB4MT0iMTUwIiB5MT0iMTQwIiB4Mj0iMTg2IiB5Mj0iMTA0Ii8+PGxpbmUgeDE9IjE1MCIgeTE9IjE0MCIgeDI9IjE0MCIgeTI9IjE5NiIvPjxsaW5lIHgxPSI5NiIgeTE9Ijk2IiB4Mj0iNjQiIHkyPSIxMjgiLz48bGluZSB4MT0iMTUwIiB5MT0iMTQwIiB4Mj0iMTk2IiB5Mj0iMTY4Ii8+PC9nPjxjaXJjbGUgY3g9IjEyOCIgY3k9IjcyIiByPSI3IiBmaWxsPSIjZDRhNDQ0Ii8+PGNpcmNsZSBjeD0iMTg2IiBjeT0iMTA0IiByPSI3IiBmaWxsPSIjZDRhNDQ0Ii8+PGNpcmNsZSBjeD0iMTk2IiBjeT0iMTY4IiByPSI3IiBmaWxsPSIjZDRhNDQ0Ii8+PGNpcmNsZSBjeD0iMTQwIiBjeT0iMTk2IiByPSI3IiBmaWxsPSIjZDRhNDQ0Ii8+PGNpcmNsZSBjeD0iODYiIGN5PSIxODQiIHI9IjciIGZpbGw9IiNkNGE0NDQiLz48Y2lyY2xlIGN4PSI2NCIgY3k9IjEyOCIgcj0iNyIgZmlsbD0iI2Q0YTQ0NCIvPjxjaXJjbGUgY3g9Ijk2IiBjeT0iOTYiIHI9IjciIGZpbGw9IiNkNGE0NDQiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNDAiIHI9IjciIGZpbGw9IiNkNGE0NDQiLz48Y2lyY2xlIGN4PSI5NiIgY3k9Ijk2IiByPSI3IiBmaWxsPSIjZjRlZWRlIi8+PC9zdmc+');background-size:cover;background-position:center;"></canvas><span class="szl-hero-name">a11oy</span><span class="szl-hero-role">router · wires</span></a>
    </div>
    <p style="font-family:var(--font-mono);font-size:0.68rem;color:var(--text-dim);margin-top:0.9rem;letter-spacing:0.04em;">Interactive 3D where WebGL is supported · rendered preview otherwise · tap a figure to open its Space</p>
  </div>
</section>

<style id="szl-3d-heroes-style">
  #szl-hero-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1.1rem;margin-top:1.4rem;}
  .szl-hero-cell{display:flex;flex-direction:column;align-items:center;background:#0a0e14;
    border:1px solid rgba(212,164,68,0.22);border-radius:16px;padding:0.6rem 0.5rem 0.9rem;
    text-decoration:none;border-bottom:1px solid rgba(212,164,68,0.22);
    transition:transform .18s,border-color .18s,box-shadow .18s;min-height:44px;}
  .szl-hero-cell:hover,.szl-hero-cell:focus-visible{transform:translateY(-4px);
    border-color:#d4a444;box-shadow:0 12px 30px rgba(0,0,0,0.5);outline:none;}
  .szl-hero-cell canvas{width:100%;aspect-ratio:1/1;display:block;border-radius:12px;
    background:radial-gradient(circle at 50% 40%,#10151f,#06090f 70%);touch-action:none;}
  .szl-hero-name{font-family:var(--font-head,'Cinzel',serif);font-size:1.05rem;color:#d4a444;margin-top:0.55rem;}
  .szl-hero-role{font-family:var(--font-mono,monospace);font-size:0.62rem;color:#8c7d5e;letter-spacing:0.06em;text-transform:uppercase;}
  @media(max-width:900px) and (min-width:561px){#szl-hero-grid{grid-template-columns:repeat(3,1fr);}}
  @media(max-width:560px){#szl-hero-grid{grid-template-columns:repeat(2,1fr);gap:0.8rem;}
    .szl-hero-cell{width:80vw;max-width:none;margin:0 auto;}
    #szl-hero-grid .szl-hero-cell:last-child{grid-column:1 / -1;width:80vw;}}
  @media(prefers-reduced-motion:reduce){.szl-hero-cell{transition:none;}}
</style>

<script type="importmap">
{ "imports": { "three": "https://unpkg.com/three@0.171.0/build/three.module.js" } }
</script>
<script type="module">
import * as THREE from 'three';

const SZL_MOBILE  = ('ontouchstart' in window) || (navigator.maxTouchPoints > 0);
const SZL_REDUCED = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
const PR = Math.min(window.devicePixelRatio || 1, SZL_MOBILE ? 1.5 : 2);
const GOLD = 0xd4a444, GOLD_HI = 0xe8cc6a, WHITE = 0xffffff, SLATE = 0x0a0e14;

const cells = [];

function makeScene(canvas, organ){
  const renderer = new THREE.WebGLRenderer({
    canvas, antialias: !SZL_MOBILE, alpha: true,
    powerPreference: SZL_MOBILE ? 'low-power' : 'high-performance'
  });
  renderer.setPixelRatio(PR);
  // WebGL is live for this cell — drop the SVG poster fallback so the real 3D shows cleanly.
  canvas.style.backgroundImage = 'none';
  const scene = new THREE.Scene();
  scene.background = null;
  const cam = new THREE.PerspectiveCamera(42, 1, 0.1, 100);
  cam.position.set(0, 0.4, 6.2);

  scene.add(new THREE.AmbientLight(0x404a5e, 1.1));
  const key = new THREE.DirectionalLight(GOLD_HI, 1.6); key.position.set(3,4,5); scene.add(key);
  const rim = new THREE.DirectionalLight(0x6688ff, 0.7); rim.position.set(-4,-2,-3); scene.add(rim);
  const pt = new THREE.PointLight(WHITE, 0.9, 20); pt.position.set(0,0,4); scene.add(pt);

  const root = new THREE.Group(); scene.add(root);
  const goldMat  = new THREE.MeshStandardMaterial({color:GOLD, metalness:0.85, roughness:0.32, emissive:0x2a1d08, emissiveIntensity:0.4});
  const slateMat = new THREE.MeshStandardMaterial({color:0x1b2230, metalness:0.6, roughness:0.5});
  const emitMat  = new THREE.MeshStandardMaterial({color:WHITE, emissive:WHITE, emissiveIntensity:1.4, metalness:0.2, roughness:0.3});
  const goldEmit = new THREE.MeshStandardMaterial({color:GOLD_HI, emissive:GOLD, emissiveIntensity:1.1});

  const extras = {}; // per-organ animated handles

  if(organ==='amaru'){
    // serpent (tube) coiled around a glowing crystal core
    const core = new THREE.Mesh(new THREE.IcosahedronGeometry(0.85,0), emitMat.clone());
    core.material.color.setHex(GOLD_HI); core.material.emissive.setHex(GOLD);
    root.add(core); extras.core = core;
    const pts=[]; const turns=3.2, N=160;
    for(let i=0;i<=N;i++){const t=i/N; const a=t*Math.PI*2*turns; const r=1.5-0.35*t;
      pts.push(new THREE.Vector3(Math.cos(a)*r, (t-0.5)*3.0, Math.sin(a)*r));}
    const tube = new THREE.Mesh(new THREE.TubeGeometry(new THREE.CatmullRomCurve3(pts),200,0.16,10,false), goldMat.clone());
    root.add(tube);
    const head = new THREE.Mesh(new THREE.ConeGeometry(0.26,0.6,8), goldEmit.clone());
    const hp = pts[pts.length-1]; head.position.copy(hp); root.add(head);
    const eyeL=new THREE.Mesh(new THREE.SphereGeometry(0.05,8,8),emitMat); eyeL.position.copy(hp).add(new THREE.Vector3(0.12,0.1,0.12)); root.add(eyeL);
  }
  else if(organ==='sentra'){
    // icosahedron shield with hex panels + threat dots absorbed
    const shield = new THREE.Mesh(new THREE.IcosahedronGeometry(1.5,1),
      new THREE.MeshStandardMaterial({color:0x16202f, metalness:0.7, roughness:0.35, flatShading:true}));
    root.add(shield);
    const wire = new THREE.LineSegments(new THREE.WireframeGeometry(shield.geometry),
      new THREE.LineBasicMaterial({color:GOLD})); root.add(wire);
    const lambda = new THREE.Mesh(new THREE.TorusGeometry(0.55,0.07,8,30), goldEmit.clone());
    root.add(lambda); extras.lambda=lambda;
    const threats=[]; const tg=new THREE.SphereGeometry(0.08,8,8);
    const tm=new THREE.MeshStandardMaterial({color:0xff5a44,emissive:0xff5a44,emissiveIntensity:1.2});
    for(let i=0;i<8;i++){const m=new THREE.Mesh(tg,tm.clone());
      m.userData={a:Math.random()*6.28, r:2.4+Math.random()*0.6, sp:0.6+Math.random()*0.5};
      root.add(m); threats.push(m);} extras.threats=threats;
  }
  else if(organ==='rosie'){
    // torus + sphere stack (head + HUD rings) + pulsing data lines
    const head = new THREE.Mesh(new THREE.SphereGeometry(0.7,24,24), slateMat.clone());
    head.material.color.setHex(0x1d2636); head.position.y=0.2; root.add(head);
    const visor = new THREE.Mesh(new THREE.TorusGeometry(0.55,0.09,10,30), goldEmit.clone());
    visor.rotation.x=Math.PI/2; visor.position.y=0.2; root.add(visor);
    const rings=[];
    for(let i=0;i<3;i++){const r=new THREE.Mesh(new THREE.TorusGeometry(1.0+i*0.42,0.025,8,48),
      new THREE.MeshStandardMaterial({color:GOLD,emissive:GOLD,emissiveIntensity:0.6,transparent:true,opacity:0.8-i*0.18}));
      r.rotation.x=Math.PI/2.1; r.position.y=-0.1; root.add(r); rings.push(r);} extras.rings=rings;
    const base=new THREE.Mesh(new THREE.CylinderGeometry(0.9,1.05,0.18,32), slateMat.clone()); base.position.y=-1.25; root.add(base);
    // pulsing data lines (vertical)
    const lines=[]; for(let i=0;i<6;i++){const a=i/6*6.28;
      const m=new THREE.Mesh(new THREE.BoxGeometry(0.05,1.2,0.05),goldEmit.clone());
      m.position.set(Math.cos(a)*1.3,-0.55,Math.sin(a)*1.3); root.add(m); lines.push(m);} extras.lines=lines;
  }
  else if(organ==='killinchu'){
    // low-poly kestrel over faceted terrain + 53 drone-dots circling
    const terrain=new THREE.Mesh(new THREE.ConeGeometry(2.3,0.7,3,1),
      new THREE.MeshStandardMaterial({color:0x14202c,metalness:0.4,roughness:0.7,flatShading:true}));
    terrain.position.y=-1.6; terrain.rotation.y=0.4; root.add(terrain);
    const bird=new THREE.Group(); bird.position.y=0.5; root.add(bird); extras.bird=bird;
    const body=new THREE.Mesh(new THREE.ConeGeometry(0.22,1.0,6),goldMat.clone());
    body.rotation.x=Math.PI/2; bird.add(body);
    const wgeo=new THREE.BufferGeometry(); const wv=new Float32Array([0,0,0, 1.5,0.15,-0.5, 1.3,-0.05,0.4]);
    wgeo.setAttribute('position',new THREE.BufferAttribute(wv,3)); wgeo.computeVertexNormals();
    const wmat=new THREE.MeshStandardMaterial({color:GOLD_HI,metalness:0.7,roughness:0.4,side:THREE.DoubleSide,flatShading:true});
    const wingL=new THREE.Mesh(wgeo,wmat); const wingR=new THREE.Mesh(wgeo,wmat); wingR.scale.x=-1;
    bird.add(wingL); bird.add(wingR); extras.wingL=wingL; extras.wingR=wingR;
    const eye=new THREE.Mesh(new THREE.SphereGeometry(0.06,8,8),emitMat); eye.position.set(0.08,0.05,0.5); bird.add(eye);
    // 53 drone-dots
    const dg=new THREE.SphereGeometry(0.04,6,6);
    const dm=new THREE.MeshStandardMaterial({color:WHITE,emissive:0x88ccff,emissiveIntensity:1.0});
    const drones=new THREE.InstancedMesh(dg,dm,53); const dummy=new THREE.Object3D(); const dd=[];
    for(let i=0;i<53;i++){dd.push({a:Math.random()*6.28, r:1.6+Math.random()*0.9, y:-0.3+Math.random()*1.4, sp:0.4+Math.random()*0.6});}
    root.add(drones); extras.drones=drones; extras.dd=dd; extras.dummy=dummy;
  }
  else if(organ==='a11oy'){
    // 16-node icosahedron knot-graph (Khipu cords) + edge pulses
    const ico=new THREE.IcosahedronGeometry(1.5,0);
    const pos=ico.attributes.position; const nodes=[]; const seen=new Set();
    for(let i=0;i<pos.count;i++){const v=new THREE.Vector3().fromBufferAttribute(pos,i);
      const k=v.toArray().map(n=>n.toFixed(2)).join(','); if(seen.has(k))continue; seen.add(k); nodes.push(v);}
    const ng=new THREE.SphereGeometry(0.13,12,12);
    nodes.forEach(v=>{const m=new THREE.Mesh(ng,goldEmit.clone()); m.position.copy(v); root.add(m);});
    // knotted edges
    const edgeMat=new THREE.LineBasicMaterial({color:GOLD,transparent:true,opacity:0.6});
    const segs=[]; for(let i=0;i<nodes.length;i++)for(let j=i+1;j<nodes.length;j++){
      if(nodes[i].distanceTo(nodes[j])<1.95){segs.push(nodes[i],nodes[j]);}}
    const eg=new THREE.BufferGeometry().setFromPoints(segs);
    root.add(new THREE.LineSegments(eg, edgeMat));
    // pulse traveling along edges
    const pulse=new THREE.Mesh(new THREE.SphereGeometry(0.1,10,10),emitMat); root.add(pulse);
    extras.pulse=pulse; extras.segs=segs;
  }

  // touch / mouse rotate (additive — auto-rotate continues unless reduced motion)
  let drag=false, px=0, py=0, vy=0, vx=0;
  const dn=e=>{drag=true; const p=e.touches?e.touches[0]:e; px=p.clientX; py=p.clientY;};
  const mv=e=>{if(!drag)return; const p=e.touches?e.touches[0]:e;
    vy=(p.clientX-px)*0.01; vx=(p.clientY-py)*0.01; root.rotation.y+=vy; root.rotation.x+=vx;
    px=p.clientX; py=p.clientY; if(e.touches)e.preventDefault();};
  const up=()=>{drag=false;};
  canvas.addEventListener('mousedown',dn); canvas.addEventListener('mousemove',mv); window.addEventListener('mouseup',up);
  canvas.addEventListener('touchstart',dn,{passive:true}); canvas.addEventListener('touchmove',mv,{passive:false}); canvas.addEventListener('touchend',up);

  function resize(){const w=canvas.clientWidth||220, h=canvas.clientHeight||220;
    if(canvas.width!==w*PR||canvas.height!==h*PR){renderer.setSize(w,h,false); cam.aspect=w/h; cam.updateProjectionMatrix();}}

  cells.push({renderer,scene,cam,root,organ,extras,resize});
}

// Resilient init: if WebGL is unavailable or the module/importmap is stripped by a
// host sanitizer (e.g. the HF org-card iframe), each canvas keeps its inline SVG
// poster background so the mesh is NEVER an empty box. Live 3D paints over it when supported.
document.querySelectorAll('#szl-hero-grid canvas').forEach(function(c){
  try { makeScene(c, c.dataset.organ); }
  catch(err){ /* keep poster fallback for this organ */ }
});

let t0=performance.now();
function loop(now){
  requestAnimationFrame(loop);
  if(document.hidden) return;
  const t=(now-t0)/1000;
  for(const c of cells){
    c.resize();
    if(!SZL_REDUCED) c.root.rotation.y += 0.0045;
    const e=c.extras;
    if(c.organ==='amaru' && e.core){ e.core.rotation.y+=0.02; e.core.scale.setScalar(1+Math.sin(t*2)*0.06); }
    if(c.organ==='sentra'){ if(e.lambda)e.lambda.rotation.z+=0.02;
      (e.threats||[]).forEach(m=>{m.userData.r-=m.userData.sp*0.012; if(m.userData.r<0.6){m.userData.r=2.6;}
        m.userData.a+=0.02; m.position.set(Math.cos(m.userData.a)*m.userData.r, Math.sin(m.userData.a*1.3)*0.6, Math.sin(m.userData.a)*m.userData.r);}); }
    if(c.organ==='rosie'){ (e.rings||[]).forEach((r,i)=>r.rotation.z+=0.01*(i+1));
      (e.lines||[]).forEach((l,i)=>{l.scale.y=0.6+0.5*(0.5+0.5*Math.sin(t*3+i)); l.material.emissiveIntensity=0.6+0.6*(0.5+0.5*Math.sin(t*3+i));}); }
    if(c.organ==='killinchu'){ if(e.bird)e.bird.position.y=0.5+Math.sin(t*1.5)*0.12;
      if(e.wingL){const f=Math.sin(t*5)*0.5; e.wingL.rotation.z=f; e.wingR.rotation.z=-f;}
      if(e.drones){const dummy=e.dummy; e.dd.forEach((d,i)=>{d.a+=d.sp*0.01;
        dummy.position.set(Math.cos(d.a)*d.r,d.y+Math.sin(t+d.a)*0.1,Math.sin(d.a)*d.r);
        dummy.updateMatrix(); e.drones.setMatrixAt(i,dummy.matrix);}); e.drones.instanceMatrix.needsUpdate=true;} }
    if(c.organ==='a11oy' && e.pulse && e.segs.length){
      const seg=Math.floor(t*0.7)%(e.segs.length/2); const a=e.segs[seg*2], b=e.segs[seg*2+1];
      const f=(t*0.7)%1; e.pulse.position.lerpVectors(a,b,f); }
    c.renderer.render(c.scene,c.cam);
  }
}
requestAnimationFrame(loop);
</script>
<!-- ================= /SZL 3D HERO FIGURES ================= -->

<!-- BANNER — UNTOUCHED (5-hero painterly artwork is sacred) -->
<section id="banner" style="padding:0;border-top:none;">
  <img src="https://huggingface.co/spaces/SZLHOLDINGS/README/resolve/main/assets/szl_banner.png" alt="SZL Holdings — the five-hero governed agentic mesh team" style="display:block;width:100%;height:auto;"/>
</section>



<!-- flag block: five hero portraits as links + org name + icon links + footer -->
<main id="main">
<section style="padding:3.5rem 0;text-align:center;">
  <div class="container">

    <!-- chibi portrait row replaced by 3D heroes (above) + live mesh panel (below) — Yachay -->

    <h1 style="margin-bottom:1.4rem;">SZL&nbsp;Holdings</h1>

    <div style="display:flex;justify-content:center;gap:1.6rem;font-size:1.8rem;">
      <a href="https://orcid.org/0009-0001-0110-4173" aria-label="ORCID" title="ORCID"></a>
      <a href="https://github.com/szl-holdings" aria-label="GitHub" title="GitHub"></a>
      <a href="https://huggingface.co/spaces/SZLHOLDINGS/uds-demo" aria-label="UDS Demo" title="UDS Demo"></a>
    </div>

  </div>
</section>
</main>
<!-- ============ LIVE MESH + LATEST RECEIPTS (ADDITIVE — Yachay) ============
     Polls /healthz of each flagship live (badge flips green/red) and pulls the
     5 most recent Khipu receipts across the mesh. Apache-2.0. Doctrine v11 LOCKED. -->
<section id="szl-live-mesh" style="padding:2.2rem 0;">
  <div class="container">
    <p class="mr-head" style="font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:0.2rem;text-align:center;">Live Mesh · /healthz</p>
    <div id="szl-mesh-grid" style="display:grid;grid-template-columns:repeat(5,1fr);gap:0.7rem;margin:1rem 0 0;">
      <div class="szl-mesh-cell" data-organ="amaru"><span class="szl-mesh-name">amaru</span><span class="szl-mesh-badge" data-code="…"></span></div>
      <div class="szl-mesh-cell" data-organ="sentra"><span class="szl-mesh-name">sentra</span><span class="szl-mesh-badge" data-code="…"></span></div>
      <div class="szl-mesh-cell" data-organ="rosie"><span class="szl-mesh-name">rosie</span><span class="szl-mesh-badge" data-code="…"></span></div>
      <div class="szl-mesh-cell" data-organ="killinchu"><span class="szl-mesh-name">killinchu</span><span class="szl-mesh-badge" data-code="…"></span></div>
      <div class="szl-mesh-cell" data-organ="a11oy"><span class="szl-mesh-name">a11oy</span><span class="szl-mesh-badge" data-code="…"></span></div>
    </div>
    <p id="szl-receipt-counter" style="text-align:center;font-family:var(--font-mono);font-size:0.8rem;color:var(--gold-light);margin-top:1.1rem;">signed receipts across the mesh: <b data-receipts></b></p>
    <div style="max-width:760px;margin:1.2rem auto 0;">
      <p class="mr-head" style="font-family:var(--font-mono);font-size:0.7rem;letter-spacing:0.14em;text-transform:uppercase;color:var(--gold-dim);margin-bottom:0.4rem;text-align:center;">Latest signed receipts</p>
      <ul id="szl-receipt-list" style="list-style:none;padding:0;margin:0;font-family:var(--font-mono);font-size:0.72rem;color:var(--text-muted);">
        <li style="opacity:0.6;text-align:center;padding:0.5rem;">polling Khipu DAG…</li>
      </ul>
    </div>
  </div>
</section>
<style id="szl-live-mesh-style">
  .szl-mesh-cell{background:var(--glass,rgba(45,27,78,0.55));border:1px solid var(--border,rgba(212,175,55,0.18));border-radius:12px;padding:0.7rem 0.4rem;text-align:center;display:flex;flex-direction:column;gap:0.4rem;min-height:44px;}
  .szl-mesh-name{font-family:var(--font-mono,monospace);font-size:0.72rem;color:var(--text-muted,#a090c0);letter-spacing:0.04em;}
  .szl-mesh-badge{font-family:var(--font-mono,monospace);font-size:0.78rem;font-weight:600;padding:0.18rem 0.4rem;border-radius:6px;background:rgba(255,255,255,0.06);color:var(--text-dim,#7060a0);}
  .szl-mesh-badge.ok{background:rgba(61,220,132,0.16);color:#3ddc84;}
  .szl-mesh-badge.down{background:rgba(255,90,68,0.16);color:#ff7a59;}
  #szl-receipt-list li{padding:0.4rem 0.6rem;border-bottom:1px solid var(--border,rgba(212,175,55,0.12));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  #szl-receipt-list li b{color:var(--gold-light,#e8cc6a);}
  @media(max-width:900px) and (min-width:561px){#szl-mesh-grid{grid-template-columns:repeat(3,1fr);}}
  @media(max-width:560px){#szl-mesh-grid{grid-template-columns:repeat(2,1fr);}}
</style>
<script>
(function(){
  var ORGANS=["amaru","sentra","rosie","killinchu","a11oy"];
  var receipts=[];
  function base(o){return "https://szlholdings-"+o+".hf.space";}
  function pollHealth(){
    ORGANS.forEach(function(o){
      var cell=document.querySelector('.szl-mesh-cell[data-organ="'+o+'"] .szl-mesh-badge');
      if(!cell)return;
      fetch(base(o)+"/healthz",{mode:"cors",cache:"no-store"}).then(function(r){
        cell.textContent=r.status; cell.dataset.code=r.status;
        cell.className="szl-mesh-badge "+(r.ok?"ok":"down");
      }).catch(function(){ cell.textContent="—"; cell.className="szl-mesh-badge down"; });
    });
  }
  function pollReceipts(){
    var total=0, got=0;
    ORGANS.forEach(function(o){
      // metrics counter for running total
      fetch(base(o)+"/metrics",{mode:"cors",cache:"no-store"}).then(function(r){return r.text();}).then(function(t){
        var m=t.match(/(\w*receipts_total)\s+(\d+)/);
        if(m){ total+=parseInt(m[2],10); }
      }).catch(function(){}).finally(function(){
        got++; if(got>=ORGANS.length){var b=document.querySelector('[data-receipts]'); if(b&&total>0)b.textContent=total.toLocaleString();}
      });
      // latest receipts
      fetch(base(o)+"/api/"+o+"/v2/khipu/lmdb/tail?n=2",{mode:"cors",cache:"no-store"}).then(function(r){return r.json();}).then(function(j){
        var arr=(j&&j.receipts)||j&&j.tail||[];
        arr.forEach(function(rec){ receipts.push({organ:o, id:(rec.id||rec.hash||rec.receipt_id||"").toString().slice(0,16), ts:rec.ts||rec.timestamp||""}); });
        renderReceipts();
      }).catch(function(){});
    });
  }
  function renderReceipts(){
    var ul=document.getElementById("szl-receipt-list"); if(!ul)return;
    var latest=receipts.slice(-5).reverse();
    if(!latest.length)return;
    ul.innerHTML=latest.map(function(r){return '<li><b>'+r.organ+'</b> · '+(r.id||'receipt')+' <span style="opacity:0.6;">'+(r.ts||'')+'</span></li>';}).join("");
  }
  pollHealth(); pollReceipts();
  setInterval(pollHealth,5000); setInterval(pollReceipts,15000);
})();
</script>
<!-- ============ /LIVE MESH + LATEST RECEIPTS ============ -->


<footer style="text-align:center;padding:1.5rem 0;border-top:1px solid var(--border);">
  <!-- Stills strip: the previous static team picture, relocated here from below the banner
       when the live Mission Room action band replaced it. Kept as a reference still. -->
  <!-- team-portrait still removed: replaced by 3D heroes (Yachay) -->
  <span class="mono" style="font-size:0.72rem;color:var(--text-dim);">— szl-holdings/.github @ d304951 · Doctrine v11 LOCKED · 749 declarations · 14 unique axioms · 163 sorries · ORCID 0009-0001-0110-4173</span>
</footer>

<!-- AMBIENT EMOJI LAYER (Wave4, additive) — 5 character emojis hanging around
     the page edges via position:fixed. Decorative (aria-hidden), placed at the
     end of <body> so that if a host strips the <style> block (e.g. the HF org-card
     HTML sanitizer), these small 64px images fall to the page bottom instead of
     overlaying content; explicit width/height attributes keep them small even
     with CSS removed. Animation is gated behind prefers-reduced-motion: no-preference. -->
<!-- ambient chibi emoji layer removed: replaced by 3D heroes (Yachay) -->
</body>
</html>