tfrere HF Staff Cursor commited on
Commit
6a0d3d3
·
1 Parent(s): c30d8ed

Site map: line-art SVG icons + unified arrows in place of 01–04 numbers

Browse files

Replace the mono "01/02/03/04" labels in the "What's inside" band with
small line-art SVG glyphs that match the rest of the page's editorial
visual language (1.2-stroke round, no fills, no frames — same DNA as the
skeletal molecule formulas and the cd-helix diagram in §1–§2):

• Intro — open book / primer
• DNA Lab — short double helix with 6 base-pair rungs
• Carbon Recipe — labelled flask with bubbles
• Sandbox — terminal with prompt + cursor

Each icon is monochrome (var(--ink) at rest, var(--green) on hover) via
currentColor. The down/right arrows are now the same SVG; the first
card rotates its glyph 90deg so the Intro card points down while the
other three point right, giving every card identical arrow weight and
geometry. Hover state preserved: arrow slides in its direction, label +
icon + arrow shift to green together.

Co-authored-by: Cursor <cursoragent@cursor.com>

Files changed (2) hide show
  1. assets/styles/section-intro.css +147 -34
  2. demo.html +93 -14
assets/styles/section-intro.css CHANGED
@@ -255,19 +255,30 @@
255
  margin-right: 0;
256
  padding-right: 0;
257
  }
258
- .intro-sitemap__num {
259
- font-family: "JetBrains Mono", ui-monospace, monospace;
260
- font-size: 11px;
261
- font-weight: 500;
262
- letter-spacing: 0.18em;
263
- color: var(--ink-faint);
264
- margin-bottom: 28px;
265
- transition: color 0.18s ease;
 
 
 
 
 
 
 
 
 
 
 
 
266
  }
267
  .intro-sitemap__label {
268
  display: flex;
269
- align-items: baseline;
270
- justify-content: space-between;
271
  gap: 12px;
272
  margin-bottom: 14px;
273
  font-family: "JetBrains Mono", ui-monospace, monospace;
@@ -278,13 +289,28 @@
278
  color: var(--ink);
279
  transition: color 0.18s ease;
280
  }
281
- .intro-sitemap__title { white-space: nowrap; }
 
 
 
 
282
  .intro-sitemap__arrow {
283
- font-size: 18px;
284
- font-weight: 400;
 
 
 
 
285
  color: var(--green);
286
  transition: transform 0.18s ease, color 0.18s ease;
287
- flex-shrink: 0;
 
 
 
 
 
 
 
288
  }
289
  .intro-sitemap__desc {
290
  margin: 0;
@@ -296,14 +322,16 @@
296
  }
297
  .intro-sitemap__link:hover,
298
  .intro-sitemap__link:focus-visible { outline: none; }
299
- .intro-sitemap__link:hover .intro-sitemap__num,
300
- .intro-sitemap__link:focus-visible .intro-sitemap__num,
301
  .intro-sitemap__link:hover .intro-sitemap__label,
302
  .intro-sitemap__link:focus-visible .intro-sitemap__label,
303
  .intro-sitemap__link:hover .intro-sitemap__arrow,
304
  .intro-sitemap__link:focus-visible .intro-sitemap__arrow {
305
  color: var(--green);
306
  }
 
 
 
 
307
  /* Move the arrow on the directional axis: → slides right, ↓ slides down.
308
  Each step's nth-child sets which one applies — the first card has the
309
  ↓ (in-page primer), the rest are cross-tab → links. */
@@ -331,7 +359,8 @@
331
  margin-right: 0;
332
  padding-right: 0;
333
  }
334
- .intro-sitemap__num { margin-bottom: 18px; }
 
335
  }
336
  @media (max-width: 600px) {
337
  .intro-sitemap__steps {
@@ -355,35 +384,119 @@
355
  .intro-sitemap__step:first-child .intro-sitemap__link {
356
  padding-top: 4px;
357
  }
358
- .intro-sitemap__num { margin-bottom: 12px; }
 
359
  }
360
 
361
- /* --- Primer header: visually delimits where the optional background
362
- primer starts, beneath the guide cards. Styled like a small
363
- section-title so it sits at the same typographic weight as the
364
- headings inside each sub-row. */
 
 
365
  .intro-primer-heading {
366
- /* No top border / padding here: the .intro-sitemap band above already
367
- provides a hairline bottom border + breathing room as the visual
368
- separator between the site map and the primer below. */
369
- margin: 24px 0 28px;
370
  }
371
- .intro-primer-heading .section-num { margin-bottom: 8px; }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
372
  .intro-primer-heading h2 {
373
  font-family: "JetBrains Mono", monospace;
374
- font-size: 22px; font-weight: 400;
375
  letter-spacing: -0.3px;
376
  color: var(--ink);
377
- margin-bottom: 12px;
378
  }
379
- .intro-primer-heading p {
380
- font-size: 14px;
381
- line-height: 1.55;
382
- color: var(--ink-soft);
383
- max-width: 760px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
384
  }
385
  .intro-primer-heading em { color: var(--ink); font-style: normal; font-weight: 500; }
386
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
387
  /* --- One sub-row per central-dogma level. Each one wraps its narrative
388
  + visual in section--two-col, which we get "for free" from the
389
  demo's existing layout system. The padding + bottom border just
 
255
  margin-right: 0;
256
  padding-right: 0;
257
  }
258
+ /* Icon — small free-floating line-art diagram above the label.
259
+ No tile, no background: aligned with the rest of the site's visual
260
+ language (skeletal molecule formulas, helix diagram), all rendered
261
+ as pure line-art with thin 1.2 strokes. The icon is fully monochrome:
262
+ ink at rest, green on hover (cascade via `currentColor`). */
263
+ .intro-sitemap__icon {
264
+ display: inline-flex;
265
+ align-items: center;
266
+ justify-content: center;
267
+ width: 44px;
268
+ height: 44px;
269
+ margin-bottom: 20px;
270
+ color: var(--ink);
271
+ transition: color 0.22s ease;
272
+ }
273
+ .intro-sitemap__icon svg {
274
+ width: 100%;
275
+ height: 100%;
276
+ display: block;
277
+ overflow: visible;
278
  }
279
  .intro-sitemap__label {
280
  display: flex;
281
+ align-items: center;
 
282
  gap: 12px;
283
  margin-bottom: 14px;
284
  font-family: "JetBrains Mono", ui-monospace, monospace;
 
289
  color: var(--ink);
290
  transition: color 0.18s ease;
291
  }
292
+ .intro-sitemap__title { white-space: nowrap; margin-right: auto; }
293
+ /* Arrow — same SVG glyph for every card so the visual weight is identical
294
+ across the row. The first card (Intro → in-page primer) rotates 90° to
295
+ point down; nothing else differs. currentColor lets it inherit the
296
+ green / hover colour from the cascade above. */
297
  .intro-sitemap__arrow {
298
+ display: inline-flex;
299
+ align-items: center;
300
+ justify-content: center;
301
+ width: 18px;
302
+ height: 18px;
303
+ flex-shrink: 0;
304
  color: var(--green);
305
  transition: transform 0.18s ease, color 0.18s ease;
306
+ }
307
+ .intro-sitemap__arrow svg {
308
+ width: 100%;
309
+ height: 100%;
310
+ display: block;
311
+ }
312
+ .intro-sitemap__step:first-child .intro-sitemap__arrow svg {
313
+ transform: rotate(90deg);
314
  }
315
  .intro-sitemap__desc {
316
  margin: 0;
 
322
  }
323
  .intro-sitemap__link:hover,
324
  .intro-sitemap__link:focus-visible { outline: none; }
 
 
325
  .intro-sitemap__link:hover .intro-sitemap__label,
326
  .intro-sitemap__link:focus-visible .intro-sitemap__label,
327
  .intro-sitemap__link:hover .intro-sitemap__arrow,
328
  .intro-sitemap__link:focus-visible .intro-sitemap__arrow {
329
  color: var(--green);
330
  }
331
+ .intro-sitemap__link:hover .intro-sitemap__icon,
332
+ .intro-sitemap__link:focus-visible .intro-sitemap__icon {
333
+ color: var(--green);
334
+ }
335
  /* Move the arrow on the directional axis: → slides right, ↓ slides down.
336
  Each step's nth-child sets which one applies — the first card has the
337
  ↓ (in-page primer), the rest are cross-tab → links. */
 
359
  margin-right: 0;
360
  padding-right: 0;
361
  }
362
+ .intro-sitemap__label { gap: 10px; font-size: 17px; }
363
+ .intro-sitemap__icon { width: 40px; height: 40px; margin-bottom: 16px; }
364
  }
365
  @media (max-width: 600px) {
366
  .intro-sitemap__steps {
 
384
  .intro-sitemap__step:first-child .intro-sitemap__link {
385
  padding-top: 4px;
386
  }
387
+ .intro-sitemap__label { font-size: 18px; gap: 12px; }
388
+ .intro-sitemap__icon { width: 38px; height: 38px; margin-bottom: 14px; }
389
  }
390
 
391
+ /* --- Primer header centered editorial module
392
+ Reads as a proper standalone section between the site map above
393
+ and the §1 sub-rows below: centered axis, generous vertical
394
+ padding, a tiny green accent bar at the top to anchor the module
395
+ on the page without competing with the §-headings that follow.
396
+ Eyebrow + h2 + standfirst + kicker all share the same centerline. */
397
  .intro-primer-heading {
398
+ position: relative;
399
+ margin: 32px auto 40px;
400
+ padding: 40px 0 36px;
401
+ text-align: center;
402
  }
403
+ /* Centred 2px green accent bar above the eyebrow. It's the only
404
+ structural element of the module: short enough to read as a mark
405
+ (40px wide), in --green so it ties into the page accent palette
406
+ without shouting. Replaces the previous left-rail rule since the
407
+ module is now axis-centered. */
408
+ .intro-primer-heading::before {
409
+ content: "";
410
+ position: absolute;
411
+ top: 0;
412
+ left: 50%;
413
+ transform: translateX(-50%);
414
+ width: 40px;
415
+ height: 2px;
416
+ background: var(--green);
417
+ }
418
+ .intro-primer-heading .section-num { margin-bottom: 10px; }
419
  .intro-primer-heading h2 {
420
  font-family: "JetBrains Mono", monospace;
421
+ font-size: 26px; font-weight: 400;
422
  letter-spacing: -0.3px;
423
  color: var(--ink);
424
+ margin-bottom: 20px;
425
  }
426
+ /* Standfirst block: centred editorial lede. The max-width keeps the
427
+ measure readable (~62 chars at 17px) so the centred axis doesn't
428
+ produce an awkwardly wide single line. */
429
+ .intro-primer-heading .intro-primer-lede {
430
+ max-width: 640px;
431
+ margin: 0 auto;
432
+ }
433
+ .intro-primer-heading .intro-primer-lede p {
434
+ margin: 0;
435
+ font-size: 17px;
436
+ line-height: 1.65;
437
+ color: var(--ink);
438
+ }
439
+ /* Kicker: the thesis line gets its own beat. Mono register echoes the
440
+ .section-num eyebrow at the top of the module, so the kicker reads
441
+ as the closing bookend of the editorial block. A short centred
442
+ hairline (via ::before) sits above it as the visual beat — no full
443
+ border across the column, which would fight with the centred axis. */
444
+ .intro-primer-heading .intro-primer-lede .intro-primer-lede__kicker {
445
+ position: relative;
446
+ margin-top: 22px;
447
+ padding-top: 20px;
448
+ font-family: "JetBrains Mono", ui-monospace, monospace;
449
+ font-size: 13px;
450
+ font-weight: 500;
451
+ letter-spacing: 0.01em;
452
+ color: var(--ink);
453
+ }
454
+ .intro-primer-heading .intro-primer-lede .intro-primer-lede__kicker::before {
455
+ content: "";
456
+ position: absolute;
457
+ top: 0;
458
+ left: 50%;
459
+ transform: translateX(-50%);
460
+ width: 24px;
461
+ height: 1px;
462
+ background: var(--rule);
463
  }
464
  .intro-primer-heading em { color: var(--ink); font-style: normal; font-weight: 500; }
465
 
466
+ /* Inline base tokens: A / C / G / T rendered as small filled chips
467
+ using the conventional sequence-viewer palette (mirrors BASE_FILL
468
+ in tokenizer.js so the same four colours read consistently across
469
+ the primer and the §3 tokenizer demo).
470
+ Sizing notes:
471
+ - font-size 0.78em (drops the 17px body text to ~13px inside the
472
+ chip) gives the chips their own typographic register without
473
+ making them shout louder than the surrounding prose.
474
+ - line-height 1 + symmetrical 1px/6px padding pins the chip box
475
+ to ~15px tall, well inside the parent's 28px line-box (17px ×
476
+ 1.65), so the chips never push the line apart even when several
477
+ of them sit on the same line.
478
+ - min-width 1.4em keeps the four chips optically the same width
479
+ even though M-width letters differ in mono (A/G/T are wider
480
+ than C). */
481
+ .intro-primer-heading .intro-base {
482
+ display: inline-block;
483
+ min-width: 1.4em;
484
+ padding: 1px 6px;
485
+ border-radius: 3px;
486
+ font-family: "JetBrains Mono", ui-monospace, monospace;
487
+ font-size: 0.78em;
488
+ font-weight: 700;
489
+ line-height: 1;
490
+ letter-spacing: 0.02em;
491
+ text-align: center;
492
+ color: #fff;
493
+ vertical-align: 1px;
494
+ }
495
+ .intro-primer-heading .intro-base[data-letter="A"] { background: #15803d; }
496
+ .intro-primer-heading .intro-base[data-letter="C"] { background: #0369a1; }
497
+ .intro-primer-heading .intro-base[data-letter="G"] { background: #a16207; }
498
+ .intro-primer-heading .intro-base[data-letter="T"] { background: #be185d; }
499
+
500
  /* --- One sub-row per central-dogma level. Each one wraps its narrative
501
  + visual in section--two-col, which we get "for free" from the
502
  demo's existing layout system. The padding + bottom border just
demo.html CHANGED
@@ -496,40 +496,96 @@
496
  <ol class="intro-sitemap__steps">
497
  <li class="intro-sitemap__step">
498
  <a class="intro-sitemap__link" href="#primer">
499
- <span class="intro-sitemap__num">01</span>
 
 
 
 
 
 
 
 
 
 
 
500
  <span class="intro-sitemap__label">
501
  <span class="intro-sitemap__title">Intro</span>
502
- <span class="intro-sitemap__arrow" aria-hidden="true">↓</span>
 
 
 
 
 
503
  </span>
504
  <span class="intro-sitemap__desc">A short primer on the basics of genetics — the alphabet Carbon reads.</span>
505
  </a>
506
  </li>
507
  <li class="intro-sitemap__step">
508
  <a class="intro-sitemap__link" href="#dna-lab">
509
- <span class="intro-sitemap__num">02</span>
 
 
 
 
 
 
 
 
 
 
 
510
  <span class="intro-sitemap__label">
511
  <span class="intro-sitemap__title">DNA Lab</span>
512
- <span class="intro-sitemap__arrow" aria-hidden="true">→</span>
 
 
 
 
 
513
  </span>
514
  <span class="intro-sitemap__desc">Live interactions with the 3B checkpoint: explore what the model can do.</span>
515
  </a>
516
  </li>
517
  <li class="intro-sitemap__step">
518
  <a class="intro-sitemap__link" href="#recipe">
519
- <span class="intro-sitemap__num">03</span>
 
 
 
 
 
 
 
 
520
  <span class="intro-sitemap__label">
521
  <span class="intro-sitemap__title">Carbon Recipe</span>
522
- <span class="intro-sitemap__arrow" aria-hidden="true">→</span>
 
 
 
 
 
523
  </span>
524
  <span class="intro-sitemap__desc">How Carbon was trained: tokenizer, loss, dataset, and results.</span>
525
  </a>
526
  </li>
527
  <li class="intro-sitemap__step">
528
  <a class="intro-sitemap__link" href="#sandbox">
529
- <span class="intro-sitemap__num">04</span>
 
 
 
 
 
 
530
  <span class="intro-sitemap__label">
531
  <span class="intro-sitemap__title">Sandbox</span>
532
- <span class="intro-sitemap__arrow" aria-hidden="true">→</span>
 
 
 
 
 
533
  </span>
534
  <span class="intro-sitemap__desc">Run Carbon on your own DNA sequences, end-to-end.</span>
535
  </a>
@@ -547,12 +603,35 @@
547
  <div class="intro-primer-heading" id="primer">
548
  <div class="section-num">Background</div>
549
  <h2>What Carbon reads</h2>
550
- <p>
551
- The model is fed long strings of four letters: A, C, G, T. Those letters are the
552
- bases of DNA. Stretches of it are genes, which cells copy into RNA and translate
553
- into proteins. A century of molecular biology has been spent working out how.
554
- Carbon is given only the letters. What they mean is what it has to learn.
555
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
556
  </div>
557
 
558
  <!-- §0.1 · BASES -->
 
496
  <ol class="intro-sitemap__steps">
497
  <li class="intro-sitemap__step">
498
  <a class="intro-sitemap__link" href="#primer">
499
+ <span class="intro-sitemap__icon" aria-hidden="true">
500
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round">
501
+ <path d="M3 5.5h6.5a2.5 2.5 0 0 1 2.5 2.5V20"/>
502
+ <path d="M21 5.5h-6.5A2.5 2.5 0 0 0 12 8"/>
503
+ <path d="M3 5.5V18a1 1 0 0 0 1 1h6"/>
504
+ <path d="M21 5.5V18a1 1 0 0 1-1 1h-6"/>
505
+ <path d="M6 9h3.5"/>
506
+ <path d="M6 12h3.5"/>
507
+ <path d="M14.5 9H18"/>
508
+ <path d="M14.5 12H18"/>
509
+ </svg>
510
+ </span>
511
  <span class="intro-sitemap__label">
512
  <span class="intro-sitemap__title">Intro</span>
513
+ <span class="intro-sitemap__arrow" aria-hidden="true">
514
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
515
+ <path d="M5 12h14"/>
516
+ <path d="M13 6l6 6-6 6"/>
517
+ </svg>
518
+ </span>
519
  </span>
520
  <span class="intro-sitemap__desc">A short primer on the basics of genetics — the alphabet Carbon reads.</span>
521
  </a>
522
  </li>
523
  <li class="intro-sitemap__step">
524
  <a class="intro-sitemap__link" href="#dna-lab">
525
+ <span class="intro-sitemap__icon" aria-hidden="true">
526
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round">
527
+ <path d="M8 3c0 4 8 4.5 8 9s-8 5-8 9"/>
528
+ <path d="M16 3c0 4-8 4.5-8 9s8 5 8 9"/>
529
+ <path d="M9 5h6"/>
530
+ <path d="M10 7.5h4"/>
531
+ <path d="M8.5 10.5h7"/>
532
+ <path d="M8.5 13.5h7"/>
533
+ <path d="M10 16.5h4"/>
534
+ <path d="M9 19h6"/>
535
+ </svg>
536
+ </span>
537
  <span class="intro-sitemap__label">
538
  <span class="intro-sitemap__title">DNA Lab</span>
539
+ <span class="intro-sitemap__arrow" aria-hidden="true">
540
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
541
+ <path d="M5 12h14"/>
542
+ <path d="M13 6l6 6-6 6"/>
543
+ </svg>
544
+ </span>
545
  </span>
546
  <span class="intro-sitemap__desc">Live interactions with the 3B checkpoint: explore what the model can do.</span>
547
  </a>
548
  </li>
549
  <li class="intro-sitemap__step">
550
  <a class="intro-sitemap__link" href="#recipe">
551
+ <span class="intro-sitemap__icon" aria-hidden="true">
552
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round">
553
+ <path d="M9 3h6"/>
554
+ <path d="M10 3v6.4L4.7 18.5a1.5 1.5 0 0 0 1.3 2.3h12a1.5 1.5 0 0 0 1.3-2.3L14 9.4V3"/>
555
+ <path d="M7.3 14h9.4"/>
556
+ <circle cx="10" cy="17" r="0.9" fill="currentColor" stroke="none"/>
557
+ <circle cx="13.6" cy="17.8" r="0.9" fill="currentColor" stroke="none"/>
558
+ </svg>
559
+ </span>
560
  <span class="intro-sitemap__label">
561
  <span class="intro-sitemap__title">Carbon Recipe</span>
562
+ <span class="intro-sitemap__arrow" aria-hidden="true">
563
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
564
+ <path d="M5 12h14"/>
565
+ <path d="M13 6l6 6-6 6"/>
566
+ </svg>
567
+ </span>
568
  </span>
569
  <span class="intro-sitemap__desc">How Carbon was trained: tokenizer, loss, dataset, and results.</span>
570
  </a>
571
  </li>
572
  <li class="intro-sitemap__step">
573
  <a class="intro-sitemap__link" href="#sandbox">
574
+ <span class="intro-sitemap__icon" aria-hidden="true">
575
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round">
576
+ <rect x="3" y="4.5" width="18" height="15" rx="2"/>
577
+ <path d="M7 10l3 2-3 2"/>
578
+ <path d="M13 14h4"/>
579
+ </svg>
580
+ </span>
581
  <span class="intro-sitemap__label">
582
  <span class="intro-sitemap__title">Sandbox</span>
583
+ <span class="intro-sitemap__arrow" aria-hidden="true">
584
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
585
+ <path d="M5 12h14"/>
586
+ <path d="M13 6l6 6-6 6"/>
587
+ </svg>
588
+ </span>
589
  </span>
590
  <span class="intro-sitemap__desc">Run Carbon on your own DNA sequences, end-to-end.</span>
591
  </a>
 
603
  <div class="intro-primer-heading" id="primer">
604
  <div class="section-num">Background</div>
605
  <h2>What Carbon reads</h2>
606
+ <!-- Standfirst: editorial lede framed by a green left-rule (same motif
607
+ as .takeaway in layout.css). The four bases are surfaced as mono
608
+ tokens using the conventional sequence-viewer palette shared with
609
+ tokenizer.js (A green / C blue / G amber / T pink) so the primer
610
+ opens with the same visual vocabulary used throughout the demo.
611
+ The final sentence is isolated as a kicker — it carries the thesis
612
+ of the whole tab ("what they mean is what it has to learn") and
613
+ deserves its own visual beat. -->
614
+ <div class="intro-primer-lede">
615
+ <p>
616
+ <!-- data-letter (not data-base): intro.js auto-injects the
617
+ skeletal-formula molecule SVGs into every [data-base]
618
+ element it finds inside the intro root. We just want
619
+ coloured mono glyphs here, not the full molecule
620
+ diagrams that live in the §1 demo card below. -->
621
+ The model is fed long strings of four letters:
622
+ <span class="intro-base" data-letter="A">A</span>,
623
+ <span class="intro-base" data-letter="C">C</span>,
624
+ <span class="intro-base" data-letter="G">G</span>,
625
+ <span class="intro-base" data-letter="T">T</span>.
626
+ Those letters are the bases of <em>DNA</em>. Stretches of it are <em>genes</em>,
627
+ which cells copy into <em>RNA</em> and translate into <em>proteins</em>.
628
+ A century of molecular biology has been spent working out how.
629
+ Carbon is given only the letters.
630
+ </p>
631
+ <p class="intro-primer-lede__kicker">
632
+ What they mean is what it has to learn.
633
+ </p>
634
+ </div>
635
  </div>
636
 
637
  <!-- §0.1 · BASES -->