orz-paged 0.1.0

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 (39) hide show
  1. package/README.md +146 -0
  2. package/assets/app.js +413 -0
  3. package/assets/templates/article-page.md +71 -0
  4. package/assets/templates/article-section.md +83 -0
  5. package/assets/templates/cover-letter.md +53 -0
  6. package/assets/templates/cv-elegant.md +93 -0
  7. package/assets/templates/cv-modern.md +86 -0
  8. package/assets/templates/cv.md +45 -0
  9. package/assets/templates/exam-page.md +76 -0
  10. package/assets/templates/exam-section.md +59 -0
  11. package/assets/templates/letter.md +47 -0
  12. package/assets/templates/note.md +28 -0
  13. package/assets/templates/report-page.md +72 -0
  14. package/assets/templates/report-section.md +80 -0
  15. package/assets/themes/base.css +538 -0
  16. package/assets/themes/beige-decent-1.css +103 -0
  17. package/assets/themes/beige-decent-2.css +92 -0
  18. package/assets/themes/light-academic-1.css +114 -0
  19. package/assets/themes/light-academic-2.css +99 -0
  20. package/assets/themes/light-neat-1.css +90 -0
  21. package/assets/themes/light-neat-2.css +101 -0
  22. package/assets/themes/light-neat-3.css +91 -0
  23. package/dist/browser-entry.js +302 -0
  24. package/dist/cli.js +167 -0
  25. package/dist/doc/dynamic.js +57 -0
  26. package/dist/doc/elements.js +813 -0
  27. package/dist/doc/fonts.js +83 -0
  28. package/dist/doc/nyml.js +140 -0
  29. package/dist/doc/page-css.js +230 -0
  30. package/dist/doc/settings.js +390 -0
  31. package/dist/doc/templates.js +147 -0
  32. package/dist/doc/theme-fonts.js +10 -0
  33. package/dist/orz-paged.browser.js +1524 -0
  34. package/dist/paged.js +31 -0
  35. package/dist/render-paged.js +123 -0
  36. package/dist/template.js +242 -0
  37. package/dist/types.js +11 -0
  38. package/orz-paged-skills/SKILL.md +547 -0
  39. package/package.json +51 -0
@@ -0,0 +1,103 @@
1
+ /* ==========================================================================
2
+ orz-paged · beige-decent-1.css
3
+ Warm editorial serif on beige paper, terracotta accent. Display headings,
4
+ rule-bracketed h1, centered pull-quotes, hairline tables. Light / print.
5
+
6
+ Theme contract:
7
+ - :root sets the page-managed tokens (--accent, --page-bg, --font-*) DIRECTLY
8
+ so they apply by default. --page-bg lives on :root so the .pagedjs_page
9
+ surface (an ancestor of .orz-doc) picks up the warm tint.
10
+ - .orz-doc.markdown-body sets the content-only palette + construct tokens
11
+ base.css consumes, plus this theme's signature construct styling.
12
+ ========================================================================== */
13
+
14
+ :root {
15
+ --accent: #944238;
16
+ --page-bg: #f6efe2;
17
+ --font-body: "Lora", Georgia, "Times New Roman", serif;
18
+ --font-heading: var(--font-body);
19
+ }
20
+
21
+ .orz-doc.markdown-body {
22
+ --text-main: #4d4036;
23
+ --text-muted: #7d7066;
24
+ --heading-color: #1a1614;
25
+ --border-soft: #d8cdbb;
26
+ --code-bg: #efe7d7;
27
+ --table-head-bg: #ece2d0;
28
+ --toc-leader: #c5b9a3;
29
+ --mark-bg: #f0e2a8;
30
+ --surface-2: #f1e9d9;
31
+ --ins-color: #438f4d;
32
+
33
+ --span-red: #b73a3a; --span-yellow: #b58900; --span-green: #438f4d; --span-blue: #266baf;
34
+ --success-bg: #eff4ec; --success-text: #3a6b44; --success-border: #6da37d;
35
+ --info-bg: #eef3f6; --info-text: #2f567f; --info-border: #628bc4;
36
+ --warning-bg: #fef7ec; --warning-text: #8a5a14; --warning-border: #d49544;
37
+ --danger-bg: #fbefef; --danger-text: #9a3030; --danger-border: #c96767;
38
+ }
39
+
40
+ /* Justify prose only — not list items, table cells, or short blocks. */
41
+ .orz-doc p { text-align: justify; hyphens: auto; }
42
+
43
+ /* Headings — editorial, warm-black, generous. */
44
+ .orz-doc.markdown-body h1,
45
+ .orz-doc.markdown-body h2,
46
+ .orz-doc.markdown-body h3,
47
+ .orz-doc.markdown-body h4,
48
+ .orz-doc.markdown-body h5,
49
+ .orz-doc.markdown-body h6 { font-family: var(--font-heading); color: var(--heading-color); font-weight: 700; }
50
+
51
+ /* Display h1 — centered, bracketed by a rule. */
52
+ .orz-doc.markdown-body h1 {
53
+ font-size: 2.3em; font-weight: 400; text-align: center; letter-spacing: -0.02em;
54
+ padding-bottom: 0.3em; margin-bottom: 1.2em; border-bottom: 2px solid var(--text-main);
55
+ }
56
+ .orz-doc.markdown-body h2 { font-size: 1.6em; padding-bottom: 0.15em; border-bottom: 1px solid #e6ddce; }
57
+ .orz-doc.markdown-body h3 { font-size: 1.3em; }
58
+
59
+ /* Links — terracotta, soft underline. */
60
+ .orz-doc.markdown-body a { color: var(--accent); text-decoration-color: var(--border-soft); }
61
+ .orz-doc.markdown-body strong { color: var(--heading-color); }
62
+
63
+ /* Pull-quote — centered, rule-bracketed top and bottom, warm card. */
64
+ .orz-doc.markdown-body blockquote {
65
+ border-left: none; border-top: 2px solid var(--text-muted); border-bottom: 2px solid var(--text-muted);
66
+ margin: 1.6em 1.5em; padding: 1em 1.4em; font-style: italic; font-size: 1.1em;
67
+ text-align: center; color: #4a3e38; background: #ece2d2;
68
+ }
69
+
70
+ /* Tables — hairline rows, heavier head underline. */
71
+ .orz-doc.markdown-body table { border: 0; border-top: 2px solid var(--text-main); font-size: 0.93em; }
72
+ .orz-doc.markdown-body th,
73
+ .orz-doc.markdown-body td { border: 0; border-bottom: 1px solid var(--border-soft); padding: 0.5em 0.9em; }
74
+ .orz-doc.markdown-body th { background: var(--table-head-bg); border-bottom: 2px solid var(--text-main); color: var(--heading-color); }
75
+
76
+ /* Gradient hairline divider. */
77
+ .orz-doc.markdown-body hr {
78
+ height: 1px; border: 0;
79
+ background: linear-gradient(to right, transparent, var(--border-soft), transparent); margin: 2.6em 0;
80
+ }
81
+
82
+ /* List markers in the warm accent. */
83
+ .orz-doc.markdown-body ul > li::marker,
84
+ .orz-doc.markdown-body ol > li::marker { color: var(--accent); }
85
+
86
+ /* Code — warm tinted block. */
87
+ .orz-doc.markdown-body pre,
88
+ .orz-doc.markdown-body :not(pre) > code { background: var(--code-bg); border-color: var(--border-soft); color: #5a4a3a; }
89
+
90
+ .orz-toc { --toc-leader: #c5b9a3; }
91
+
92
+ /* Letterhead / title-block elements — centered editorial masthead. */
93
+ .orz-element.orz-el-letterhead,
94
+ .orz-element.orz-el-report-title,
95
+ .orz-element.orz-el-article-title { text-align: center; margin-bottom: 1.8em; }
96
+ /* The under-rule: title blocks don't self-rule (theme draws it); letterhead /
97
+ cv-header draw their own via the element's `border` field, so exclude them
98
+ here to avoid a double rule. */
99
+ .orz-element.orz-el-report-title,
100
+ .orz-element.orz-el-article-title { padding-bottom: 0.8em; border-bottom: 2px solid var(--text-main); }
101
+ /* Center the contact row to match the centered masthead (the .orz-contact flex
102
+ would otherwise pack phone/email to the left while the org is centered). */
103
+ .orz-el-letterhead .orz-contact { justify-content: center; }
@@ -0,0 +1,92 @@
1
+ /* ==========================================================================
2
+ orz-paged · beige-decent-2.css
3
+ Warm serif on cream paper, terracotta accent. Distinct from beige-decent-1:
4
+ rust headings, a centered accent rule under h2, and an italic underlined
5
+ blockquote on a deeper sand tint. Light / print.
6
+
7
+ Theme contract:
8
+ - :root sets the page-managed tokens (--accent, --page-bg, --font-*) DIRECTLY.
9
+ - .orz-doc.markdown-body sets the content palette + construct tokens base.css
10
+ consumes, plus this theme's signature construct styling.
11
+ ========================================================================== */
12
+
13
+ :root {
14
+ --accent: #b5563a;
15
+ --page-bg: #f4ecdc;
16
+ --font-body: "Noto Serif", Georgia, "Times New Roman", serif;
17
+ --font-heading: "Noto Serif", Georgia, "Times New Roman", serif;
18
+ }
19
+
20
+ .orz-doc.markdown-body {
21
+ --text-main: #4a3c31;
22
+ --text-muted: #786556;
23
+ --heading-color: #3a2b20;
24
+ --border-soft: #ddd0bb;
25
+ --code-bg: #efe5d0;
26
+ --table-head-bg: #ece0c8;
27
+ --toc-leader: #cdbfa6;
28
+ --mark-bg: #f6dca0;
29
+ --surface-2: #eee4d2;
30
+ --ins-color: #4a7553;
31
+
32
+ --span-red: #b5563a; --span-yellow: #9a6f1f; --span-green: #4a7553; --span-blue: #2f6154;
33
+ --success-bg: #e6efd9; --success-text: #4a6b33; --success-border: #bcd3a0;
34
+ --info-bg: #e4ece9; --info-text: #2f6154; --info-border: #abc7bf;
35
+ --warning-bg: #f6ecce; --warning-text: #876d29; --warning-border: #e0cd97;
36
+ --danger-bg: #f4e0d8; --danger-text: #9c4b3a; --danger-border: #e0bbab;
37
+
38
+ }
39
+
40
+ /* Justify prose only — never titles, headings, table cells, or short blocks. */
41
+ .orz-doc.markdown-body p { text-align: justify; hyphens: auto; }
42
+
43
+ /* Headings — sans display face, rust h1, terracotta accents. */
44
+ .orz-doc.markdown-body h1,
45
+ .orz-doc.markdown-body h2,
46
+ .orz-doc.markdown-body h3,
47
+ .orz-doc.markdown-body h4,
48
+ .orz-doc.markdown-body h5,
49
+ .orz-doc.markdown-body h6 { font-weight: 700; line-height: 1.3; }
50
+
51
+ .orz-doc.markdown-body h1 { font-size: 2.1em; color: var(--accent); letter-spacing: -0.02em; }
52
+ .orz-doc.markdown-body h2 { font-size: 1.5em; font-weight: 600; padding-bottom: 0.25em; border-bottom: 1px solid var(--accent); }
53
+ .orz-doc.markdown-body h3 { font-size: 1.22em; font-weight: 600; color: var(--accent); }
54
+
55
+ .orz-doc.markdown-body a {
56
+ color: var(--accent);
57
+ text-decoration-color: color-mix(in srgb, var(--accent) 35%, transparent);
58
+ }
59
+
60
+ /* Blockquote — italic, on a deeper sand tint with an accent edge bar. */
61
+ .orz-doc.markdown-body blockquote {
62
+ border: none;
63
+ border-left: 4px solid var(--accent);
64
+ background: #ece2cf;
65
+ color: var(--text-muted);
66
+ font-style: italic;
67
+ padding: 0.7em 1.3em;
68
+ border-radius: 0 8px 8px 0;
69
+ }
70
+
71
+ /* Tables — warm header band, accent underline. */
72
+ .orz-doc.markdown-body th {
73
+ background: var(--table-head-bg);
74
+ color: var(--heading-color);
75
+ border-bottom: 2px solid var(--accent);
76
+ }
77
+ .orz-doc.markdown-body tbody tr:nth-child(even) td { background: #f0e7d5; }
78
+
79
+ .orz-doc.markdown-body ul > li::marker,
80
+ .orz-doc.markdown-body ol > li::marker { color: var(--accent); }
81
+
82
+ .orz-doc.markdown-body pre,
83
+ .orz-doc.markdown-body :not(pre) > code { background: var(--code-bg); border-color: var(--border-soft); }
84
+
85
+ .orz-doc.markdown-body hr { height: 2px; background: color-mix(in srgb, var(--accent) 30%, transparent); }
86
+
87
+ .orz-toc { --toc-leader: color-mix(in srgb, var(--accent) 40%, transparent); }
88
+
89
+ /* Title-block elements — accent baseline rule. (cv-header / letterhead draw
90
+ their own rule via the element's `border` field, so they're excluded here.) */
91
+ .orz-element.orz-el-report-title,
92
+ .orz-element.orz-el-article-title { padding-bottom: 0.6em; border-bottom: 2px solid var(--accent); }
@@ -0,0 +1,114 @@
1
+ /* ==========================================================================
2
+ orz-paged · light-academic-1.css
3
+ Tufte-ish Alegreya serif on warm white paper. Restrained, scholarly,
4
+ justified prose with italic h2, small-caps h3 and rule-bounded tables.
5
+ Light / print only.
6
+
7
+ Theme contract:
8
+ - :root sets the page-managed tokens (--accent, --page-bg, --font-*) DIRECTLY
9
+ so they apply by default; an explicit font_preset / decoration_color /
10
+ page_background overrides them (page CSS is added last & only emits when set).
11
+ - .orz-doc.markdown-body sets the content-only palette + construct tokens that
12
+ base.css consumes, plus this theme's signature construct styling.
13
+ ========================================================================== */
14
+
15
+ :root {
16
+ --accent: #7a1f1f;
17
+ --page-bg: #fffff8;
18
+ --font-body: "Source Serif 4", Georgia, "Times New Roman", serif;
19
+ --font-heading: var(--font-body);
20
+ }
21
+
22
+ .orz-doc.markdown-body {
23
+ --text-main: #111111;
24
+ --text-muted: #555555;
25
+ --heading-color: #111111;
26
+ --border-soft: #cfcabc;
27
+ --code-bg: #f4f2ea;
28
+ --table-head-bg: #f1efe6;
29
+ --toc-leader: #b6b09c;
30
+ --mark-bg: #f6efb0;
31
+ --surface-2: #f3f1e6;
32
+ --ins-color: #386641;
33
+
34
+ --span-red: #9e2a2b; --span-yellow: #b8860b; --span-green: #386641; --span-blue: #2a5a8c;
35
+ --success-bg: #eef5ef; --success-text: #2e8540; --success-border: #cfe3d2;
36
+ --info-bg: #eef3f9; --info-text: #2b5585; --info-border: #d3e0ec;
37
+ --warning-bg: #f9f3e2; --warning-text: #946612; --warning-border: #ecddb6;
38
+ --danger-bg: #f8edeb; --danger-text: #a32a2a; --danger-border: #ead0cc;
39
+
40
+ }
41
+
42
+ /* Justify prose only — never titles, headings, table cells, or short blocks. */
43
+ .orz-doc.markdown-body p { text-align: justify; hyphens: auto; }
44
+
45
+ /* Headings — light weight, generous air, italic h2, small-caps h3. */
46
+ .orz-doc.markdown-body h1,
47
+ .orz-doc.markdown-body h2,
48
+ .orz-doc.markdown-body h3,
49
+ .orz-doc.markdown-body h4,
50
+ .orz-doc.markdown-body h5,
51
+ .orz-doc.markdown-body h6 { font-weight: 400; color: var(--heading-color); }
52
+
53
+ .orz-doc.markdown-body h1 { font-size: 2em; line-height: 1.15; margin-bottom: 0.8em; }
54
+ .orz-doc.markdown-body h2 { font-size: 1.5em; font-style: italic; }
55
+ .orz-doc.markdown-body h3 { font-size: 1.15em; font-variant: small-caps; letter-spacing: 0.04em; }
56
+
57
+ /* Links — accent, thin underline. */
58
+ .orz-doc.markdown-body a {
59
+ color: var(--accent);
60
+ text-decoration-color: color-mix(in srgb, var(--accent) 45%, transparent);
61
+ }
62
+
63
+ /* Blockquote — quiet warm panel, italic, no heavy bar. */
64
+ .orz-doc.markdown-body blockquote {
65
+ font-style: italic;
66
+ color: var(--text-muted);
67
+ border-left: none;
68
+ margin: 1.4em 2em;
69
+ padding: 0.5em 1em;
70
+ background: var(--surface-2);
71
+ }
72
+
73
+ /* Tables — rule-bounded (top/bottom heavy, header underline) like a journal. */
74
+ .orz-doc.markdown-body table {
75
+ border: 0;
76
+ border-top: 2px solid var(--text-main);
77
+ border-bottom: 2px solid var(--text-main);
78
+ font-size: 0.92em;
79
+ }
80
+ .orz-doc.markdown-body th,
81
+ .orz-doc.markdown-body td { border: 0; padding: 0.45em 0.9em; }
82
+ .orz-doc.markdown-body th {
83
+ background: transparent;
84
+ color: var(--heading-color);
85
+ border-bottom: 1px solid var(--text-main);
86
+ vertical-align: bottom;
87
+ }
88
+
89
+ /* Code — quiet warm panel. */
90
+ .orz-doc.markdown-body pre,
91
+ .orz-doc.markdown-body :not(pre) > code { background: var(--code-bg); border-color: var(--border-soft); }
92
+
93
+ /* Centered asterism rule, classic print divider. */
94
+ .orz-doc.markdown-body hr {
95
+ height: auto;
96
+ background: none;
97
+ text-align: center;
98
+ margin: 2.2em 0;
99
+ }
100
+ .orz-doc.markdown-body hr::before {
101
+ content: "\002A \0020 \002A \0020 \002A";
102
+ letter-spacing: 0.5em;
103
+ color: var(--text-muted);
104
+ }
105
+
106
+ /* List markers in the accent for a touch of editorial color. */
107
+ .orz-doc.markdown-body ul > li::marker,
108
+ .orz-doc.markdown-body ol > li::marker { color: var(--accent); }
109
+
110
+ .orz-toc { --toc-leader: var(--toc-leader); }
111
+
112
+ /* Abstract element — indented, slightly smaller, hallmark of a paper. */
113
+ .orz-element.orz-el-abstract { margin: 1.6em 2.5em; font-size: 0.95em; color: var(--text-muted); }
114
+ .orz-element.orz-el-abstract > :first-child { font-style: italic; }
@@ -0,0 +1,99 @@
1
+ /* ==========================================================================
2
+ orz-paged · light-academic-2.css
3
+ Scholarly print style: Vollkorn serif body, Fira Sans headings, deep-burgundy
4
+ accent. Booktabs-style tables (thick top/bottom rules, no verticals), plain
5
+ weighted headings, restrained callouts. Distinct from academic-1. Light/print.
6
+ ========================================================================== */
7
+
8
+ :root {
9
+ --accent: #7a1f2b;
10
+ --page-bg: #ffffff;
11
+ --font-body: "Crimson Pro", Georgia, "Times New Roman", serif;
12
+ --font-heading: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
13
+ }
14
+
15
+ .orz-doc.markdown-body {
16
+ --text-main: #1a1715;
17
+ --text-muted: #5a514c;
18
+ --heading-color: #2a1416;
19
+ --border-soft: #ddd6d2;
20
+ --code-bg: #f6f3f1;
21
+ --table-head-bg: #f3ece9;
22
+ --toc-leader: #c8bdb7;
23
+ --mark-bg: #f3e3a6;
24
+ --surface-2: #f7f3f1;
25
+ --ins-color: #386641;
26
+
27
+ --span-red: #9e2a2b; --span-yellow: #b8860b; --span-green: #386641; --span-blue: #2a5a8c;
28
+ --success-bg: #eef5ef; --success-text: #2f5d38; --success-border: #cfe3d2;
29
+ --info-bg: #eef3f8; --info-text: #2a4f7a; --info-border: #cfdcea;
30
+ --warning-bg: #f9f2e1; --warning-text: #8a5a00; --warning-border: #ecddb6;
31
+ --danger-bg: #f8ecea; --danger-text: #8a2018; --danger-border: #ead0cc;
32
+
33
+ }
34
+
35
+ /* Justify prose only — never titles, headings, table cells, or short blocks. */
36
+ .orz-doc.markdown-body p { text-align: justify; hyphens: auto; }
37
+
38
+ /* Headings — Fira Sans, firm, with a small-caps flavour on section heads. */
39
+ .orz-doc.markdown-body h1,
40
+ .orz-doc.markdown-body h2,
41
+ .orz-doc.markdown-body h3,
42
+ .orz-doc.markdown-body h4,
43
+ .orz-doc.markdown-body h5,
44
+ .orz-doc.markdown-body h6 { font-family: var(--font-heading); color: var(--heading-color); }
45
+
46
+ .orz-doc.markdown-body h1 {
47
+ font-size: 2.25em; font-weight: 700; letter-spacing: -0.02em;
48
+ padding-bottom: 0.35em; border-bottom: 3px double var(--accent);
49
+ }
50
+ .orz-doc.markdown-body h2 {
51
+ font-size: 1.5em; font-weight: 600; font-variant: small-caps; letter-spacing: 0.02em;
52
+ color: var(--accent); border-bottom: 1px solid var(--border-soft); padding-bottom: 0.25em;
53
+ }
54
+ .orz-doc.markdown-body h3 { font-size: 1.22em; font-weight: 600; font-variant: small-caps; }
55
+
56
+ .orz-doc.markdown-body a {
57
+ color: var(--accent);
58
+ text-decoration-color: color-mix(in srgb, var(--accent) 35%, transparent);
59
+ }
60
+
61
+ /* Blockquote — quiet serif aside, thin accent rule, italic. */
62
+ .orz-doc.markdown-body blockquote {
63
+ border-left: 2px solid var(--accent);
64
+ background: none;
65
+ color: var(--text-muted);
66
+ font-style: italic;
67
+ padding: 0.1em 0 0.1em 1.3em;
68
+ }
69
+
70
+ /* Tables — booktabs: heavy top/bottom rules, ruled header, no vertical lines. */
71
+ .orz-doc.markdown-body table {
72
+ border-top: 2px solid var(--accent);
73
+ border-bottom: 2px solid var(--accent);
74
+ font-family: var(--font-heading);
75
+ font-size: 0.92em;
76
+ }
77
+ .orz-doc.markdown-body th {
78
+ background: var(--table-head-bg);
79
+ color: var(--heading-color);
80
+ font-weight: 600; font-variant: small-caps;
81
+ border-bottom: 1px solid var(--accent);
82
+ }
83
+ .orz-doc.markdown-body td { border: none; }
84
+ .orz-doc.markdown-body tbody tr:nth-child(even) td { background: #faf7f5; }
85
+
86
+ .orz-doc.markdown-body ul > li::marker,
87
+ .orz-doc.markdown-body ol > li::marker { color: var(--accent); }
88
+
89
+ .orz-doc.markdown-body pre,
90
+ .orz-doc.markdown-body :not(pre) > code { background: var(--code-bg); border-color: var(--border-soft); }
91
+
92
+ .orz-doc.markdown-body hr { height: 1px; background: var(--border-soft); }
93
+
94
+ .orz-toc { --toc-leader: color-mix(in srgb, var(--accent) 35%, transparent); }
95
+
96
+ /* Title-block elements — double accent baseline rule. (cv-header / letterhead
97
+ draw their own rule via the element's `border` field, so they're excluded.) */
98
+ .orz-element.orz-el-report-title,
99
+ .orz-element.orz-el-article-title { padding-bottom: 0.6em; border-bottom: 3px double var(--accent); }
@@ -0,0 +1,90 @@
1
+ /* ==========================================================================
2
+ orz-paged · light-neat-1.css
3
+ Clean sans-serif on white paper, blue accent. Crisp headings, a thin accent
4
+ rule under h2, tinted table header, ragged-right body. Light / print.
5
+
6
+ Theme contract:
7
+ - :root sets the page-managed tokens (--accent, --page-bg, --font-*) DIRECTLY
8
+ so they apply by default; an explicit font_preset / decoration_color /
9
+ page_background overrides them (page CSS is added last & only emits when set).
10
+ - .orz-doc.markdown-body sets the content-only palette + construct tokens that
11
+ base.css consumes, plus this theme's signature construct styling.
12
+ ========================================================================== */
13
+
14
+ :root {
15
+ --accent: #2e6db5;
16
+ --page-bg: #ffffff;
17
+ --font-body: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
18
+ --font-heading: var(--font-body);
19
+ }
20
+
21
+ .orz-doc.markdown-body {
22
+ --text-main: #1f2a36;
23
+ --text-muted: #5d6b78;
24
+ --heading-color: #142230;
25
+ --border-soft: #dbe2ea;
26
+ --code-bg: #f5f8fb;
27
+ --table-head-bg: #eef4fa;
28
+ --toc-leader: #b9c4cf;
29
+ --mark-bg: #fdeaa8;
30
+ --surface-2: #f4f8fc;
31
+ --ins-color: #2e7d32;
32
+
33
+ --span-red: #c0392b; --span-yellow: #b7791f; --span-green: #2e7d32; --span-blue: #2e6db5;
34
+ --success-bg: #e6f4ea; --success-text: #1e6b2e; --success-border: #b6dcc0;
35
+ --info-bg: #e8eff8; --info-text: #234e84; --info-border: #b9cfe8;
36
+ --warning-bg: #fbf2dc; --warning-text: #8a5a00; --warning-border: #ecd9a6;
37
+ --danger-bg: #fbe9e7; --danger-text: #9a2820; --danger-border: #ecc2bc;
38
+
39
+ text-align: left; /* sans reads better ragged-right on the page */
40
+ }
41
+
42
+ /* Headings — sans, firm weight, tight tracking. */
43
+ .orz-doc.markdown-body h1,
44
+ .orz-doc.markdown-body h2,
45
+ .orz-doc.markdown-body h3,
46
+ .orz-doc.markdown-body h4,
47
+ .orz-doc.markdown-body h5,
48
+ .orz-doc.markdown-body h6 { font-weight: 700; letter-spacing: -0.01em; }
49
+
50
+ .orz-doc.markdown-body h1 { font-size: 1.95em; color: var(--accent); }
51
+ .orz-doc.markdown-body h2 { font-size: 1.45em; padding-bottom: 0.2em; border-bottom: 1px solid var(--border-soft); }
52
+ .orz-doc.markdown-body h3 { font-size: 1.2em; color: var(--accent); }
53
+
54
+ .orz-doc.markdown-body a {
55
+ color: var(--accent);
56
+ text-decoration-color: color-mix(in srgb, var(--accent) 35%, transparent);
57
+ }
58
+
59
+ /* Blockquote — soft tinted card with an accent edge. */
60
+ .orz-doc.markdown-body blockquote {
61
+ border-left: 3px solid var(--accent);
62
+ background: var(--surface-2);
63
+ color: var(--text-muted);
64
+ padding: 0.5em 1.1em;
65
+ border-radius: 0 3px 3px 0;
66
+ }
67
+
68
+ /* Tables — gridded with a tinted, accent-underlined header. */
69
+ .orz-doc.markdown-body th {
70
+ background: var(--table-head-bg);
71
+ color: var(--heading-color);
72
+ border-bottom: 2px solid var(--accent);
73
+ }
74
+ .orz-doc.markdown-body tbody tr:nth-child(even) td { background: #f8fbfd; }
75
+
76
+ .orz-doc.markdown-body ul > li::marker,
77
+ .orz-doc.markdown-body ol > li::marker { color: var(--accent); }
78
+
79
+ .orz-doc.markdown-body pre,
80
+ .orz-doc.markdown-body :not(pre) > code { background: var(--code-bg); border-color: var(--border-soft); }
81
+
82
+ .orz-doc.markdown-body hr { height: 2px; background: color-mix(in srgb, var(--accent) 30%, transparent); }
83
+
84
+ .orz-toc { --toc-leader: color-mix(in srgb, var(--accent) 40%, transparent); }
85
+
86
+ /* Title-block elements — accent baseline rule. (cv-header / letterhead draw
87
+ their own rule via the element's `border` field, so they're excluded here to
88
+ avoid a double rule.) */
89
+ .orz-element.orz-el-report-title,
90
+ .orz-element.orz-el-article-title { padding-bottom: 0.6em; border-bottom: 2px solid var(--accent); }
@@ -0,0 +1,101 @@
1
+ /* ==========================================================================
2
+ orz-paged · light-neat-2.css
3
+ Warm-paper neat variant: teal accent on a cream-tinted palette, serif body
4
+ with a sans heading face. Pill h3, accent-tinted code, quote-marked
5
+ blockquotes, dashed rules. Adapted from the "light-neat-2" screen theme
6
+ for print on white paper. Light / print.
7
+
8
+ Theme contract:
9
+ - :root sets the page-managed tokens (--accent, --page-bg, --font-*) DIRECTLY
10
+ so they apply by default; an explicit font_preset / decoration_color /
11
+ page_background overrides them (page CSS is added last & only emits when set).
12
+ - .orz-doc.markdown-body sets the content-only palette + construct tokens that
13
+ base.css consumes, plus this theme's signature construct styling.
14
+ ========================================================================== */
15
+
16
+ :root {
17
+ --accent: #167a72;
18
+ --page-bg: #ffffff;
19
+ --font-body: "IBM Plex Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
20
+ --font-heading: "IBM Plex Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
21
+ }
22
+
23
+ .orz-doc.markdown-body {
24
+ --text-main: #2d322f;
25
+ --text-muted: #62685f;
26
+ --heading-color: #181c1b;
27
+ --border-soft: #ddd8cd;
28
+ --code-bg: #f4f1eb;
29
+ --table-head-bg: #f1eee7;
30
+ --toc-leader: #c9c1b1;
31
+ --mark-bg: #f3e1b0;
32
+ --surface-2: #f8f6f1;
33
+ --ins-color: #175651;
34
+
35
+ --span-red: #b34a4a; --span-yellow: #8f6711; --span-green: #2f7c49; --span-blue: #21698a;
36
+ --success-bg: #e9f3ec; --success-text: #2e7a45; --success-border: #b8dabf;
37
+ --info-bg: #e6f1f6; --info-text: #1e668d; --info-border: #b8d8ea;
38
+ --warning-bg: #fbf2dc; --warning-text: #916516; --warning-border: #ecd39c;
39
+ --danger-bg: #fbe9e9; --danger-text: #994545; --danger-border: #e9b8b8;
40
+ }
41
+
42
+ /* Headings — sans face, firm weight, tight tracking. */
43
+ .orz-doc.markdown-body h1,
44
+ .orz-doc.markdown-body h2,
45
+ .orz-doc.markdown-body h3,
46
+ .orz-doc.markdown-body h4,
47
+ .orz-doc.markdown-body h5,
48
+ .orz-doc.markdown-body h6 { font-family: var(--font-heading); font-weight: 700; letter-spacing: -0.025em; }
49
+
50
+ .orz-doc.markdown-body h1 { font-size: 2em; padding-bottom: 0.32em; border-bottom: 2px solid var(--border-soft); }
51
+ .orz-doc.markdown-body h1::after { content: ""; display: block; width: 3rem; height: 3px; margin-top: 0.4rem; background: var(--accent); border-radius: 999px; }
52
+ .orz-doc.markdown-body h2 { font-size: 1.5em; padding-bottom: 0.25em; border-bottom: 1px solid var(--border-soft); }
53
+ .orz-doc.markdown-body h3 { font-size: 1.22em; width: fit-content; padding: 0.16em 0.7em 0.24em; background: var(--surface-2); border: 1px solid var(--border-soft); border-radius: 999px; }
54
+
55
+ .orz-doc.markdown-body a {
56
+ color: var(--accent);
57
+ text-decoration-color: color-mix(in srgb, var(--accent) 35%, transparent);
58
+ }
59
+
60
+ /* Blockquote — tinted card with an accent edge and a faint quote mark. */
61
+ .orz-doc.markdown-body blockquote {
62
+ position: relative;
63
+ border-left: 3px solid var(--accent);
64
+ background: var(--surface-2);
65
+ color: var(--text-muted);
66
+ padding: 0.6em 1.15em;
67
+ border-radius: 0 4px 4px 0;
68
+ }
69
+ .orz-doc.markdown-body blockquote::before {
70
+ content: "\201C"; position: absolute; right: 0.5rem; top: 0.1rem;
71
+ color: color-mix(in srgb, var(--accent) 26%, transparent); font-size: 2rem; line-height: 1;
72
+ }
73
+
74
+ /* Tables — tinted, accent-underlined header. */
75
+ .orz-doc.markdown-body th {
76
+ background: var(--table-head-bg);
77
+ color: var(--heading-color);
78
+ border-bottom: 2px solid var(--accent);
79
+ text-transform: uppercase;
80
+ letter-spacing: 0.06em;
81
+ }
82
+ .orz-doc.markdown-body tbody tr:nth-child(even) td { background: #faf8f3; }
83
+
84
+ .orz-doc.markdown-body ul > li::marker,
85
+ .orz-doc.markdown-body ol > li::marker { color: var(--accent); }
86
+
87
+ .orz-doc.markdown-body pre,
88
+ .orz-doc.markdown-body :not(pre) > code { background: var(--code-bg); border-color: var(--border-soft); }
89
+ .orz-doc.markdown-body :not(pre) > code { color: #8b4d1a; }
90
+
91
+ .orz-doc.markdown-body hr {
92
+ height: 1px; border: 0;
93
+ background: repeating-linear-gradient(90deg, color-mix(in srgb, var(--accent) 32%, transparent) 0 12px, transparent 12px 24px);
94
+ }
95
+
96
+ .orz-toc { --toc-leader: color-mix(in srgb, var(--accent) 40%, transparent); }
97
+
98
+ /* Title-block elements — accent baseline rule. (cv-header / letterhead draw
99
+ their own rule via the element's `border` field, so they're excluded here.) */
100
+ .orz-element.orz-el-report-title,
101
+ .orz-element.orz-el-article-title { padding-bottom: 0.6em; border-bottom: 2px solid var(--accent); }