nk_jtb 0.28.2 → 0.28.3

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.
package/index.html CHANGED
@@ -4,356 +4,971 @@
4
4
  <head>
5
5
  <meta charset="UTF-8" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <link rel="icon" type="image/svg+xml" href="/images/favicon.svg" />
8
- <title>NayKel JTB</title>
7
+ <title>JTB Homepage Examples</title>
9
8
  </head>
10
9
 
11
10
  <body>
11
+ <div class="container flex gap-3 mt-3">
12
+ <!-- Main content -->
13
+ <div class="flex-1">
14
+ <h1 class="font-serif txt-3 font-bold lh-tight">EP03: Mammary Magnificence: Breast Development</h1>
15
+ <p class="txt-lg txt-stone-600 max-w-480px">Breast development and lactation: understanding postnatal breast growth, puberty changes, and preparation for breastfeeding</p>
16
+ <div class="txt-base lh-relaxed txt-stone-700 max-w-480px">
17
+ <p>Explore breast development from embryology from embryology through pregnancy, lactation, involution and menopause, with a focus on anatomy, physiology, growth, and hormonal influences to support informed, evidence‑based breastfeeding care.&nbsp;</p>
18
+ </div>
19
+ <h2>Broad Aims of the Course</h2>
20
+ <p>The broad aims for this course are:</p>
21
+ <ul>
22
+ <li>Deepen understanding of breast structure and function from embryology through puberty, pregnancy and lactation to support informed, evidence‑based breastfeeding care.</li>
23
+ <li>Review key factors influencing breast growth and development across the lifespan to strengthen clinical assessment and breastfeeding support.</li>
24
+ <li>Explore the endocrine regulation of breast development and lactation to enhance understanding of hormonal influences on breastfeeding physiology.</li>
25
+ </ul>
26
+ <h2>IBLCE® Detailed Content Outline</h2>
27
+ <p>Every module maps directly to the IBLCE® Detailed Content Outline, building your knowledge progressively from foundational science through to clinical application.</p>
28
+ <p>This course covers the following IBLCE® DCO items. The applicable Lactation (L), Ethics (E) and Related (R) hours are shown against each heading.</p>
29
+ <div class="space-y-05">
30
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
31
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
32
+ <span class="font-semibold txt-gray-900">I. Development and Nutrition - 2(L)hrs</span>
33
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
34
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
35
+ </svg>
36
+ </button>
37
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
38
+ <div>A. Infant</div>
39
+ <div>B. Maternal</div>
40
+ <h6>A. Infant</h6>
41
+ <div>1. Feeding behaviours at different ages</div>
42
+ <div>2. Food intolerances/allergies</div>
43
+ <div>3. Infant anatomy and anatomical/oral challenges</div>
44
+ <div>4. WHO guidelines for introducing complementary foods</div>
45
+ <div>5. Low birth weight and very low birth weight</div>
46
+ <div>6. Milk banking - formal and informal</div>
47
+ <div>7. Normal infant behaviours</div>
48
+ <div>8. Nutritional requirements - including preterm</div>
49
+ <div>9. Preterm development, growth, and behaviours (including late preterm)</div>
50
+ <div>10. Skin tone, muscle tone, reflexes</div>
51
+ <div>11. Term development and growth</div>
52
+ <div>12. WHO growth charts with gestational age adjustment</div>
53
+ <div>13. Stooling and voiding</div>
54
+ <h6>B. Maternal</h6>
55
+ <div>1. Breast development and growth (typical and atypical)</div>
56
+ <div>2. Breast surgery</div>
57
+ <div>3. Composition of human milk</div>
58
+ <div>4. Maternal anatomical challenges</div>
59
+ <div>5. Maternal nutritional status</div>
60
+ <div>6. Nipple structure and variations</div>
61
+ <div>7. Nipple modifications (e.g., piercings, tattoos)</div>
62
+ </div>
63
+ </div>
64
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
65
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
66
+ <span class="font-semibold txt-gray-900">II. Physiology and Endocrinology - 2(L)hrs</span>
67
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
68
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
69
+ </svg>
70
+ </button>
71
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
72
+ <div>A. Physiology of Lactation</div>
73
+ <div>B. Endocrinology</div>
74
+ <h6>A. Physiology of Lactation</h6>
75
+ <div>1. Relactation</div>
76
+ <div>2. Infertility issues</div>
77
+ <div>3. Inducing lactation</div>
78
+ <div>4. Pregnancy and breastfeeding - tandem</div>
79
+ <div>5. Multiples (e.g., twins, triplets)</div>
80
+ <h6>B. Endocrinology</h6>
81
+ <div>1. Hormonal influence of milk production</div>
82
+ <div>2. Diabetes</div>
83
+ <div>3. Maternal hormonal disorders (e.g., pituitary, thyroid, Polycystic Ovarian Syndrome)</div>
84
+ <div>4. Maternal autoimmune disorders</div>
85
+ <div>5. Newborn hypoglycemia</div>
86
+ </div>
87
+ </div>
88
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
89
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
90
+ <span class="font-semibold txt-gray-900">III. Pathology - 2(L)hrs</span>
91
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
92
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
93
+ </svg>
94
+ </button>
95
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
96
+ <div>A. Infant</div>
97
+ <div>B. Maternal</div>
98
+ <h6>A. Infant</h6>
99
+ <div>1. Ankyloglossia</div>
100
+ <div>2. Cleft lip and palate</div>
101
+ <div>3. Congenital anomalies (e.g., gastrointestinal, cardiac)</div>
102
+ <div>4. Gastroesophageal Reflux Disease (GERD), reflux</div>
103
+ <div>5. Hyperbilirubinemia</div>
104
+ <div>6. Infant neurological disabilities</div>
105
+ <div>7. Small for Gestational Age (SGA), Large for Gestational Age (LGA)</div>
106
+ <div>8. Infant acute disease (e.g., infectious, cardiac, metabolic)</div>
107
+ <div>9. Vertically transmitted infections (e.g., HIV, Hepatitis B)</div>
108
+ <div>10. Esophageal atresia</div>
109
+ <div>11. Inborn error of metabolism</div>
110
+ <div>12. Infant cancer</div>
111
+ <div>13. Infant GI anomalies</div>
112
+ <h6>B. Maternal</h6>
113
+ <div>1. Abscess</div>
114
+ <div>2. Milk ejection reflex dysfunction</div>
115
+ <div>3. Maternal acute disease (e.g., infectious, cardiac, metabolic)</div>
116
+ <div>4. Maternal chronic disease</div>
117
+ <div>5. Maternal disability (physical and neurological)</div>
118
+ <div>6. Mastitis</div>
119
+ <div>7. Milk supply, low or over</div>
120
+ <div>8. Nipple and breast conditions</div>
121
+ <div>9. Nipple pain and trauma</div>
122
+ <div>10. Post-partum hemorrhage</div>
123
+ <div>11. Pre-eclampsia / pregnancy induced hypertension</div>
124
+ <div>12. Maternal cancer</div>
125
+ </div>
126
+ </div>
127
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
128
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
129
+ <span class="font-semibold txt-gray-900">IV. Pharmacology and Toxicology - 1(L)hrs</span>
130
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
131
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
132
+ </svg>
133
+ </button>
134
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
135
+ <div>1. Alcohol</div>
136
+ <div>2. Nicotine and tobacco</div>
137
+ <div>3. Cannabis</div>
138
+ <div>4. Medications (e.g., prescriptions, over-the-counter, diagnostic and therapeutic procedures, aids to labor and delivery)</div>
139
+ <div>5. Drugs of abuse</div>
140
+ <div>6. Contraception</div>
141
+ <div>7. Galactagogues</div>
142
+ <div>8. Gel dressings/nipple creams</div>
143
+ <div>9. Herbs and supplements</div>
144
+ <div>10. Chemotherapy/radiation therapy/radioactive scans</div>
145
+ </div>
146
+ </div>
147
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
148
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
149
+ <span class="font-semibold txt-gray-900">V. Psychology, Sociology, and Anthropology - 3(L)hrs</span>
150
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
151
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
152
+ </svg>
153
+ </button>
154
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
155
+ <div>1. Transition to parenthood</div>
156
+ <div>2. Birth practices</div>
157
+ <div>3. Foods to eat/avoid that influence lactation</div>
158
+ <div>4. Employment - beginning or returning to work</div>
159
+ <div>5. Family lifestyle</div>
160
+ <div>6. Identifying support networks</div>
161
+ <div>7. Maternal mental health</div>
162
+ <div>8. Maternal psychological/cognitive issues</div>
163
+ <div>9. Breastfeeding dyad relationship</div>
164
+ <div>10. Safe sleep</div>
165
+ <div>11. Weaning</div>
166
+ <div>12. Cultural awareness</div>
167
+ </div>
168
+ </div>
169
+ </div>
170
+ <h2 class="mt-2">Course Content</h2>
171
+ <div class="mt space-y-05">
172
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
173
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
174
+ <span class="font-semibold txt-gray-900">Course Profile</span>
175
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
176
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
177
+ </svg>
178
+ </button>
179
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
180
+ <div class="pxy-05">
181
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
182
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
183
+ </svg>
184
+ <span> Welcome</span>
185
+ </div>
186
+ <div class="pxy-05">
187
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
188
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
189
+ </svg>
190
+ <span> Recommended Readings</span>
191
+ </div>
192
+ <div class="pxy-05">
193
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
194
+ <path stroke-linecap="round" stroke-linejoin="round" d="M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"></path>
195
+ </svg>
196
+ <span> Handbook - Mammary Magnificence</span>
197
+ </div>
198
+ <div class="pxy-05">
199
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
200
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
201
+ </svg>
202
+ <span> Additional Resources</span>
203
+ </div>
204
+ </div>
205
+ </div>
206
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
207
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
208
+ <span class="font-semibold txt-gray-900">Module 1: Breast Development</span>
209
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
210
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
211
+ </svg>
212
+ </button>
213
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
214
+ <div class="pxy-05">
215
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
216
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
217
+ </svg>
218
+ <span> Learning Outcomes</span>
219
+ </div>
220
+ <div class="pxy-05">
221
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
222
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
223
+ </svg>
224
+ <span> Introduction</span>
225
+ </div>
226
+ <div class="pxy-05">
227
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
228
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
229
+ </svg>
230
+ <span> Breasts: Embryogenesis</span>
231
+ </div>
232
+ <div class="pxy-05">
233
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
234
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
235
+ </svg>
236
+ <span> Breasts: Puberty &amp; Menopause</span>
237
+ </div>
238
+ <div class="pxy-05">
239
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
240
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
241
+ </svg>
242
+ <span> Adult Female Breast</span>
243
+ </div>
244
+ <div class="pxy-05">
245
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
246
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
247
+ </svg>
248
+ <span> #1 Quiz - Breast development</span>
249
+ </div>
250
+ <div class="pxy-05">
251
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
252
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
253
+ </svg>
254
+ <span> Self Directed Learning Activity - The Mammary Gland</span>
255
+ </div>
256
+ <div class="pxy-05">
257
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
258
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
259
+ </svg>
260
+ <span> #2 Quiz - The Mammary Gland</span>
261
+ </div>
262
+ </div>
263
+ </div>
264
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
265
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
266
+ <span class="font-semibold txt-gray-900">Module 2: Form &amp;amp; Function</span>
267
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
268
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
269
+ </svg>
270
+ </button>
271
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
272
+ <div class="pxy-05">
273
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
274
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
275
+ </svg>
276
+ <span> Learning Outcomes</span>
277
+ </div>
278
+ <div class="pxy-05">
279
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
280
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
281
+ </svg>
282
+ <span> Introduction</span>
283
+ </div>
284
+ <div class="pxy-05">
285
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
286
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
287
+ </svg>
288
+ <span> Secretory differentiation</span>
289
+ </div>
290
+ <div class="pxy-05">
291
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
292
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
293
+ </svg>
294
+ <span> Secretory activation</span>
295
+ </div>
296
+ <div class="pxy-05">
297
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
298
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
299
+ </svg>
300
+ <span> Lactation</span>
301
+ </div>
302
+ <div class="pxy-05">
303
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
304
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
305
+ </svg>
306
+ <span> #3 Quiz - Secretory differential and activation</span>
307
+ </div>
308
+ <div class="pxy-05">
309
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
310
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
311
+ </svg>
312
+ <span> Self Directed Learning Activity - Hormonal regulation during lactation and breastmilk production</span>
313
+ </div>
314
+ <div class="pxy-05">
315
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
316
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
317
+ </svg>
318
+ <span> #4 Quiz - Hormonal regulation during lactation and breastmilk production</span>
319
+ </div>
320
+ <div class="pxy-05">
321
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
322
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
323
+ </svg>
324
+ <span> Self Directed Learning Activity - Morphological, hormonal, and molecular changes in different tissues during lactation and post-lactation</span>
325
+ </div>
326
+ <div class="pxy-05">
327
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
328
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
329
+ </svg>
330
+ <span> #5 Quiz - Morphological, hormonal, and molecular changes in different tissues during lactation and post-lactation</span>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ <div x-data="{ open: false }" class="border bg-white rounded-lg shadow-sm bdr bdr-gray-200 overflow-hidden">
335
+ <button type="button" x-on:click="open = !open" class="w-full px-1.5 py-1 flex items-center justify-between hover:bg-gray-50">
336
+ <span class="font-semibold txt-gray-900">Module 3: Breast Adaptations</span>
337
+ <svg class="wh-1" :class="{ 'rotate-180': open }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
338
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path>
339
+ </svg>
340
+ </button>
341
+ <div x-show="open" x-collapse="" class="px-1.5 py-1 mxy-0 txt-gray-600" style="display: none; height: 0px; overflow: hidden;" hidden="">
342
+ <div class="pxy-05">
343
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
344
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
345
+ </svg>
346
+ <span> Learning Outcomes</span>
347
+ </div>
348
+ <div class="pxy-05">
349
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
350
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
351
+ </svg>
352
+ <span> Introduction</span>
353
+ </div>
354
+ <div class="pxy-05">
355
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
356
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
357
+ </svg>
358
+ <span> Lactational involution &amp; suppression</span>
359
+ </div>
360
+ <div class="pxy-05">
361
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
362
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
363
+ </svg>
364
+ <span> Induced lactation &amp; relactation</span>
365
+ </div>
366
+ <div class="pxy-05">
367
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
368
+ <path stroke-linecap="round" stroke-linejoin="round" d="m15.75 10.5 4.72-4.72a.75.75 0 0 1 1.28.53v11.38a.75.75 0 0 1-1.28.53l-4.72-4.72M4.5 18.75h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25h-9A2.25 2.25 0 0 0 2.25 7.5v9a2.25 2.25 0 0 0 2.25 2.25Z"></path>
369
+ </svg>
370
+ <span> Breast variations</span>
371
+ </div>
372
+ <div class="pxy-05">
373
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
374
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
375
+ </svg>
376
+ <span> #6 Quiz - Lactational involution &amp; suppression, Induced lactation &amp; relactation, Breast variations</span>
377
+ </div>
378
+ <div class="pxy-05">
379
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
380
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
381
+ </svg>
382
+ <span> Self Directed Learning Activity - Breast Anomalies</span>
383
+ </div>
384
+ <div class="pxy-05">
385
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
386
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
387
+ </svg>
388
+ <span> #7 Quiz - Breast Anomalies</span>
389
+ </div>
390
+ <div class="pxy-05">
391
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
392
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
393
+ </svg>
394
+ <span> Self Directed Learning Activity - Lactational Involution</span>
395
+ </div>
396
+ <div class="pxy-05">
397
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
398
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
399
+ </svg>
400
+ <span> #8 Quiz - Lactational Involution</span>
401
+ </div>
402
+ <div class="pxy-05">
403
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
404
+ <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
405
+ </svg>
406
+ <span> Self Directed Learning Activity - Induced and Relactation</span>
407
+ </div>
408
+ <div class="pxy-05">
409
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
410
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
411
+ </svg>
412
+ <span> #9 Quiz - Induced and Relactation</span>
413
+ </div>
414
+ <div class="pxy-05">
415
+ <svg class="icon txt-gray-500 inline-flex mr-1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
416
+ <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"></path>
417
+ </svg>
418
+ <span> #10 Holistic quiz</span>
419
+ </div>
420
+ </div>
421
+ </div>
422
+ </div>
423
+ </div>
424
+ <!-- Price card -->
425
+ <aside class="w-384px">
426
+ <div class="bx rounded-xxl pxy-2">
427
+ <div class="txt-xs tracking-widest uppercase txt-muted">Course fee</div>
428
+ <div class="font-serif txt-3 font-bold lh-none">
429
+ <sup class="txt-xl">$</sup>110
430
+ <span class="txt-base font-normal txt-muted font-sans">AUD</span>
431
+ </div>
432
+ <div class="txt-sm txt-muted mt-025 mb-1.5">One-time payment · Instant access</div>
433
+ <div wire:key="lw-3804000248-0" wire:snapshot="{&quot;data&quot;:{&quot;program&quot;:null,&quot;course&quot;:[null,{&quot;class&quot;:&quot;App\\Models\\Course&quot;,&quot;key&quot;:4,&quot;s&quot;:&quot;mdl&quot;}],&quot;isProgram&quot;:false,&quot;currentQty&quot;:0,&quot;qty&quot;:1},&quot;memo&quot;:{&quot;id&quot;:&quot;OqBsS7nA3cTaxHxNDeET&quot;,&quot;name&quot;:&quot;cart.add-to-cart&quot;,&quot;path&quot;:&quot;courses\/mammary-magnificence-breast-development&quot;,&quot;method&quot;:&quot;GET&quot;,&quot;release&quot;:&quot;a-a-a&quot;,&quot;children&quot;:[],&quot;scripts&quot;:[],&quot;assets&quot;:[],&quot;errors&quot;:[],&quot;locale&quot;:&quot;en&quot;,&quot;islands&quot;:[]},&quot;checksum&quot;:&quot;5d7e163863bf9a2a7e55c10f7051df541580580e44e194ea2cf71e5e1c1244fd&quot;}" wire:effects="[]" wire:id="OqBsS7nA3cTaxHxNDeET" wire:name="cart.add-to-cart">
434
+ <!--[if BLOCK]><![endif]--> <button type="button" class="btn primary w-full" wire:click="add" icon="shopping-cart" text="Add Course">
435
+ <!--[if BLOCK]><![endif]--> <svg class="icon order-0" xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
436
+ <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 0 0-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 0 0-16.536-1.84M7.5 14.25 5.106 5.272M6 20.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Zm12.75 0a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0Z"></path>
437
+ </svg>
438
+ <!--[if ENDBLOCK]><![endif]-->
439
+ <!--[if BLOCK]><![endif]-->
440
+ Add Course
441
+ <!--[if ENDBLOCK]><![endif]--></button>
442
+ <!--[if ENDBLOCK]><![endif]-->
443
+ </div>
444
+ <hr class="bdr-t bdr-stone-200 mb-1.5">
445
+ <div class="txt-xs tracking-widest uppercase txt-muted mb-1">What's included</div>
446
+ <div class="checklist txt-sm">
447
+
448
+ </div>
449
+ <div class="checklist txt-sm">
450
+ <ul class="txt-sm">
451
+ <li>Flexible online, self-paced delivery</li>
452
+ <li>Downloadable resources included</li>
453
+ <li>Certificate on completion</li>
454
+ </ul>
455
+ </div>
456
+ <div class="checklist txt-sm mt-05">
457
+ <ul class="txt-sm">
458
+ <li>10 Hours of Lactation Education</li>
459
+ </ul>
460
+ </div>
461
+ </div>
462
+ </aside>
463
+ </div>
464
+ <div class="flex container gap-4 py-4">
465
+ <div class="">
466
+ <h1>Heading 1</h1>
467
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Officiis maxime deserunt tenetur repellendus! Aperiam cum incidunt impedit esse soluta quidem rem inventore quis, quae voluptate minus quaerat enim velit reiciendis?</p>
468
+ <h2>Heading 2</h2>
469
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Officiis maxime deserunt tenetur repellendus! Aperiam cum incidunt impedit esse soluta quidem rem inventore quis, quae voluptate minus quaerat enim velit reiciendis?</p>
470
+ <h3>Heading 3</h3>
471
+ <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Officiis maxime deserunt tenetur repellendus! Aperiam cum incidunt impedit esse soluta quidem rem inventore quis, quae voluptate minus quaerat enim velit reiciendis?</p>
472
+ </div>
473
+ <div class="">
474
+ <h1>Heading 1</h1>
475
+ <div class="bx">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae cum ipsam eaque, itaque neque error qui molestiae, magni exercitationem reiciendis tenetur molestias cupiditate iure vero veritatis deserunt ad at ipsa.</div>
476
+ <h2>Heading 2</h2>
477
+ <div class="bx">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae cum ipsam eaque, itaque neque error qui molestiae, magni exercitationem reiciendis tenetur molestias cupiditate iure vero veritatis deserunt ad at ipsa.</div>
478
+ <h3>Heading 3</h3>
479
+ <div class="bx">Lorem ipsum dolor sit amet consectetur adipisicing elit. Quae cum ipsam eaque, itaque neque error qui molestiae, magni exercitationem reiciendis tenetur molestias cupiditate iure vero veritatis deserunt ad at ipsa.</div>
480
+ </div>
481
+ </div>
482
+ <!-- ═══════════════════════════════════════════════════════════════
483
+ EXAMPLE 1: AURORA
484
+ Dark gradient hero with floating blob shapes and swirl decoration
485
+ ═══════════════════════════════════════════════════════════════ -->
486
+
487
+ <nav class="navbar bg-slate-900">
488
+ <div class="container">
489
+ <a href="#" class="flex items-center gap-1">
490
+ <svg width="28" height="28" viewBox="0 0 28 28" fill="none" aria-hidden="true">
491
+ <circle cx="14" cy="14" r="14" fill="oklch(60.6% 0.25 292.717deg)" />
492
+ <path d="M8 20 L14 8 L20 20 M10.5 16 H17.5" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" />
493
+ </svg>
494
+ <span class="txt-white font-bold tracking-tight">Luminary</span>
495
+ </a>
496
+ <ul class="menu">
497
+ <li><a href="#" class="txt-gray-400">Features</a></li>
498
+ <li><a href="#" class="txt-gray-400">Pricing</a></li>
499
+ <li><a href="#" class="txt-gray-400">Docs</a></li>
500
+ <li><a href="#" class="txt-gray-400">Blog</a></li>
501
+ </ul>
502
+ <div class="flex gap-1">
503
+ <button class="btn sm">Sign in</button>
504
+ <button class="btn sm primary">Get Started</button>
505
+ </div>
506
+ </div>
507
+ </nav>
508
+
509
+ <div class="ex-hero bg-linear-to-br from-violet-950 to-indigo-900 relative overflow-hidden flex flex-col items-center justify-center pxy-4">
510
+
511
+ <!-- Blob shapes — organic border-radius via local helper -->
512
+ <div class="blob shape-tl absolute wh-30 bg-violet-500 opacity-20"></div>
513
+ <div class="blob-2 shape-br absolute wh-24 bg-indigo-400 opacity-20"></div>
514
+ <div class="rounded-full shape-mid-r absolute wh-16 bg-fuchsia-500 opacity-10"></div>
515
+ <div class="rounded-full shape-mid-l absolute wh-10 bg-sky-400 opacity-10"></div>
516
+
517
+ <!-- SVG swirl -->
518
+ <svg class="swirl-deco absolute opacity-10" width="600" height="600" viewBox="0 0 600 600" fill="none" aria-hidden="true">
519
+ <path d="M300 300 C300 200, 450 200, 450 300 C450 400, 300 400, 300 300 C300 150, 500 150, 500 300 C500 450, 250 500, 200 350 C150 200, 350 100, 450 200" stroke="white" stroke-width="1.5" fill="none" />
520
+ <path d="M300 300 C250 250, 200 300, 200 350 C200 420, 280 450, 350 420 C420 390, 460 320, 430 250 C400 180, 320 160, 260 200 C180 250, 160 360, 220 420 C280 480, 400 460, 450 380" stroke="white" stroke-width="1" fill="none" opacity="0.6" />
521
+ </svg>
522
+
523
+ <!-- Content -->
524
+ <div class="relative tac ex-hero-content">
525
+ <span class="txt-violet-300 txt-sm font-semibold tracking-widest uppercase">Platform &middot; 2025</span>
526
+ <h1 class="txt-white font-black lh-tight txt-4">Build beyond<br>ordinary limits</h1>
527
+ <p class="txt-indigo-200 lead">The design framework that lets you move fast without breaking things. Clean utilities, beautiful defaults, zero compromise.</p>
528
+ <div class="flex justify-center gap-1">
529
+ <button class="btn lg primary">Start for free</button>
530
+ <button class="btn lg">See the docs</button>
531
+ </div>
532
+ </div>
533
+
534
+ <!-- Bottom fade -->
535
+ <div class="absolute bottom-0 left-0 w-full ex-fade-bottom"></div>
536
+ </div>
537
+
538
+ <div class="ex-spacer bg-slate-900"></div>
539
+
540
+
541
+ <!-- ═══════════════════════════════════════════════════════════════
542
+ EXAMPLE 2: CLARITY
543
+ Light split hero with geometric shapes on the right
544
+ ═══════════════════════════════════════════════════════════════ -->
545
+
546
+ <nav class="navbar bg-white shadow-sm">
547
+ <div class="container">
548
+ <a href="#" class="flex items-center gap-1">
549
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" aria-hidden="true">
550
+ <rect x="2" y="2" width="9" height="9" rx="2" fill="oklch(62.3% 0.214 259.815deg)" />
551
+ <rect x="13" y="2" width="9" height="9" rx="2" fill="oklch(70.2% 0.183 293.541deg)" opacity="0.6" />
552
+ <rect x="2" y="13" width="9" height="9" rx="2" fill="oklch(70.2% 0.183 293.541deg)" opacity="0.6" />
553
+ <rect x="13" y="13" width="9" height="9" rx="2" fill="oklch(62.3% 0.214 259.815deg)" />
554
+ </svg>
555
+ <span class="txt-slate-900 font-bold">Nexus</span>
556
+ </a>
557
+ <ul class="menu">
558
+ <li><a href="#" class="txt-gray-600">Product</a></li>
559
+ <li><a href="#" class="txt-gray-600">Solutions</a></li>
560
+ <li><a href="#" class="txt-gray-600">Enterprise</a></li>
561
+ <li><a href="#" class="txt-gray-600">Pricing</a></li>
562
+ </ul>
563
+ <div class="flex gap-1 items-center">
564
+ <a href="#" class="txt-gray-600 txt-sm">Log in</a>
565
+ <button class="btn sm primary">Book a demo</button>
566
+ </div>
567
+ </div>
568
+ </nav>
569
+
570
+ <div class="ex-hero bg-gray-50 relative overflow-hidden flex items-center">
571
+ <div class="container">
572
+ <div class="grid cols-2 items-center ex-hero-grid-gap">
573
+
574
+ <!-- Left: content -->
575
+ <div>
576
+ <div class="flex items-center gap-05 ex-badge-row">
577
+ <span class="badge primary">New</span>
578
+ <span class="txt-sm txt-gray-600">v3.0 is here — <a href="#" class="txt-primary">read the changelog</a></span>
579
+ </div>
580
+ <h1 class="txt-slate-900 font-black lh-tight txt-3">The platform teams<br>actually love using</h1>
581
+ <p class="lead txt-gray-600">Ship faster with infrastructure that gets out of your way. Built for teams who care about developer experience.</p>
582
+ <div class="flex gap-1 items-center">
583
+ <button class="btn lg primary">Get started free</button>
584
+ <a href="#" class="flex items-center gap-05 txt-gray-600 txt-sm">
585
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
586
+ <circle cx="8" cy="8" r="7.5" stroke="currentColor" stroke-width="1" />
587
+ <path d="M6 5.5 L10.5 8 L6 10.5Z" fill="currentColor" />
588
+ </svg>
589
+ Watch 2 min demo
590
+ </a>
591
+ </div>
592
+ <p class="txt-xs txt-muted">No credit card required &middot; 14-day free trial &middot; Cancel anytime</p>
593
+ </div>
594
+
595
+ <!-- Right: geometric decoration -->
596
+ <div class="relative ex-shapes-panel">
597
+ <!-- Background ring -->
598
+ <div class="rounded-full absolute geo-ring bg-blue-50 bdr bdr-blue-200"></div>
599
+ <div class="rounded-full absolute geo-ring-inner bdr-2 bdr-blue-100" style="border-style: dashed;"></div>
600
+
601
+ <!-- Floating cards -->
602
+ <div class="bx shadow-lg absolute geo-card-1 ex-geo-card">
603
+ <div class="flex items-center gap-05">
604
+ <div class="rounded-full wh-2 bg-green-500"></div>
605
+ <span class="txt-sm font-semibold txt-slate-900">Deploy successful</span>
606
+ </div>
607
+ <p class="txt-xs txt-muted">production &middot; 2s ago</p>
608
+ </div>
609
+
610
+ <div class="bx shadow-lg absolute geo-card-2 ex-geo-card">
611
+ <span class="txt-xs txt-muted uppercase tracking-wider font-semibold">Uptime</span>
612
+ <div class="flex items-center gap-05">
613
+ <span class="txt-2 font-black txt-slate-900">99.9%</span>
614
+ </div>
615
+ </div>
616
+
617
+ <div class="bx shadow-lg absolute geo-card-3 ex-geo-card">
618
+ <span class="txt-xs txt-muted uppercase tracking-wider font-semibold">Team members</span>
619
+ <div class="flex items-center">
620
+ <div class="rounded-full wh-2 bg-violet-400 bdr-2 bdr-white" style="margin-inline-start: -0.25rem;"></div>
621
+ <div class="rounded-full wh-2 bg-sky-400 bdr-2 bdr-white" style="margin-inline-start: -0.25rem;"></div>
622
+ <div class="rounded-full wh-2 bg-emerald-400 bdr-2 bdr-white" style="margin-inline-start: -0.25rem;"></div>
623
+ <div class="rounded-full wh-2 bg-rose-400 bdr-2 bdr-white" style="margin-inline-start: -0.25rem;"></div>
624
+ <span class="txt-xs txt-muted mx-0.5">+14 more</span>
625
+ </div>
626
+ </div>
627
+
628
+ <!-- Central shape -->
629
+ <div class="geo-center rounded-xl bg-linear-to-br from-blue-500 to-violet-600 shadow-xl flex flex-col items-center justify-center absolute tac pxy-3">
630
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" aria-hidden="true">
631
+ <path d="M24 4 L44 24 L24 44 L4 24Z" fill="white" opacity="0.2" />
632
+ <path d="M24 12 L36 24 L24 36 L12 24Z" fill="white" opacity="0.4" />
633
+ <circle cx="24" cy="24" r="6" fill="white" />
634
+ </svg>
635
+ <span class="txt-white font-bold txt-sm">Nexus Core</span>
636
+ </div>
637
+
638
+ <!-- Swirl SVG -->
639
+ <svg class="geo-swirl absolute opacity-20" width="300" height="300" viewBox="0 0 300 300" fill="none" aria-hidden="true">
640
+ <path d="M150 150 Q200 100 250 150 Q200 200 150 150 Q100 100 50 150 Q100 200 150 150" stroke="oklch(62.3% 0.214 259.815deg)" stroke-width="2" fill="none" />
641
+ <path d="M150 150 Q220 80 290 150 Q220 220 150 150 Q80 80 10 150 Q80 220 150 150" stroke="oklch(62.3% 0.214 259.815deg)" stroke-width="1.5" fill="none" opacity="0.6" />
642
+ <path d="M150 150 Q230 60 310 150" stroke="oklch(70.2% 0.183 293.541deg)" stroke-width="1" fill="none" opacity="0.5" />
643
+ </svg>
644
+ </div>
645
+ </div>
646
+ </div>
647
+
648
+ <!-- Bottom wave -->
649
+ <svg class="wave-bottom" viewBox="0 0 1440 80" fill="none" preserveAspectRatio="none" aria-hidden="true">
650
+ <path d="M0 80 L0 40 Q360 0 720 40 Q1080 80 1440 40 L1440 80Z" fill="white" />
651
+ </svg>
652
+ </div>
653
+
654
+ <div class="ex-spacer bg-white"></div>
655
+
656
+
657
+ <!-- ═══════════════════════════════════════════════════════════════
658
+ EXAMPLE 3: DUSK
659
+ Cinematic dark image hero with frosted glass nav and wave divider
660
+ ═══════════════════════════════════════════════════════════════ -->
661
+
662
+ <div class="relative">
663
+ <!-- Nav sits inside hero to overlay it -->
664
+ <nav class="navbar-glass navbar absolute top-0 left-0 w-full z-above">
665
+ <div class="container">
666
+ <a href="#" class="flex items-center gap-1">
667
+ <svg width="26" height="26" viewBox="0 0 26 26" fill="none" aria-hidden="true">
668
+ <circle cx="13" cy="13" r="13" fill="white" opacity="0.15" />
669
+ <path d="M7 13 Q13 5 19 13 Q13 21 7 13Z" fill="white" opacity="0.8" />
670
+ <circle cx="13" cy="13" r="3" fill="white" />
671
+ </svg>
672
+ <span class="txt-white font-bold tracking-tight">Arcadia</span>
673
+ </a>
674
+ <ul class="menu">
675
+ <li><a href="#" class="txt-white opacity-80">Work</a></li>
676
+ <li><a href="#" class="txt-white opacity-80">Studio</a></li>
677
+ <li><a href="#" class="txt-white opacity-80">Journal</a></li>
678
+ <li><a href="#" class="txt-white opacity-80">Contact</a></li>
679
+ </ul>
680
+ <button class="btn sm" style="background: rgb(255 255 255 / 15%); border-color: rgb(255 255 255 / 30%); color: white;">
681
+ Start a project
682
+ </button>
683
+ </div>
684
+ </nav>
685
+
686
+ <!-- Hero — gradient stands in for background image -->
687
+ <div class="ex-hero-dusk bg-linear-to-br from-slate-900 to-indigo-950 relative overflow-hidden">
688
+
689
+ <!-- "Photo" texture shapes -->
690
+ <div class="absolute inset-0 overflow-hidden">
691
+ <div class="rounded-full absolute photo-blob-1 bg-violet-800 opacity-30"></div>
692
+ <div class="rounded-full absolute photo-blob-2 bg-blue-900 opacity-40"></div>
693
+ <div class="blob absolute photo-blob-3 bg-indigo-800 opacity-20"></div>
694
+ </div>
695
+
696
+ <!-- Light streaks SVG -->
697
+ <svg class="absolute inset-0 w-full h-full opacity-10" viewBox="0 0 1200 700" preserveAspectRatio="xMidYMid slice" fill="none" aria-hidden="true">
698
+ <line x1="0" y1="700" x2="600" y2="0" stroke="white" stroke-width="1.5" />
699
+ <line x1="200" y1="700" x2="800" y2="0" stroke="white" stroke-width="0.75" />
700
+ <line x1="600" y1="700" x2="1100" y2="0" stroke="white" stroke-width="1" />
701
+ <line x1="900" y1="700" x2="1400" y2="100" stroke="white" stroke-width="0.5" />
702
+ <ellipse cx="700" cy="200" rx="300" ry="150" stroke="white" stroke-width="0.5" />
703
+ </svg>
704
+
705
+ <!-- Swirl overlay -->
706
+ <svg class="absolute swirl-dusk opacity-10" width="800" height="800" viewBox="0 0 800 800" fill="none" aria-hidden="true">
707
+ <path d="M400 400 C400 200, 650 200, 650 400 C650 600, 400 600, 400 400 C400 100, 750 100, 750 400 C750 700, 300 750, 200 500 C100 250, 450 100, 600 250" stroke="white" stroke-width="2" fill="none" />
708
+ <path d="M400 400 C350 350, 250 400, 250 500 C250 620, 370 660, 500 620 C630 580, 680 470, 640 350 C600 230, 470 200, 370 270 C250 360, 220 520, 320 620" stroke="white" stroke-width="1.2" fill="none" opacity="0.5" />
709
+ <circle cx="400" cy="400" r="180" stroke="white" stroke-width="0.5" opacity="0.3" />
710
+ <circle cx="400" cy="400" r="280" stroke="white" stroke-width="0.5" opacity="0.2" />
711
+ </svg>
712
+
713
+ <!-- Content -->
714
+ <div class="container ex-dusk-content relative">
715
+ <div class="ex-dusk-text">
716
+ <span class="txt-indigo-300 txt-sm font-semibold tracking-widest uppercase">Creative Studio</span>
717
+ <h1 class="txt-white font-black lh-tight txt-4">We craft digital<br>experiences that<br><em class="txt-violet-300">endure.</em></h1>
718
+ <p class="txt-indigo-200 lead">Award-winning design and engineering for brands that refuse to be ordinary.</p>
719
+ <div class="flex gap-1">
720
+ <button class="btn lg primary">View our work</button>
721
+ <button class="btn lg" style="background: rgb(255 255 255 / 10%); border-color: rgb(255 255 255 / 20%); color: white;">
722
+ Our process
723
+ </button>
724
+ </div>
725
+ </div>
726
+ </div>
727
+
728
+ <!-- Wave divider -->
729
+ <svg class="wave-bottom" viewBox="0 0 1440 100" fill="none" preserveAspectRatio="none" aria-hidden="true">
730
+ <path d="M0 100 L0 60 Q200 20 400 50 Q600 80 800 40 Q1000 0 1200 30 Q1320 50 1440 20 L1440 100Z" fill="white" opacity="0.05" />
731
+ <path d="M0 100 L0 70 Q300 30 600 60 Q900 90 1200 50 Q1320 35 1440 40 L1440 100Z" fill="white" opacity="0.05" />
732
+ <path d="M0 100 L0 85 Q360 55 720 75 Q1080 95 1440 65 L1440 100Z" fill="rgb(15 23 42)" />
733
+ </svg>
734
+ </div>
735
+ </div>
736
+
737
+ <div class="ex-spacer bg-slate-950"></div>
738
+
739
+
740
+ <script type="module" src="/main.js"></script>
12
741
 
13
742
  <style>
14
- /* ============================================================
15
- Local helpers — JTB gaps documented in jtb-conversion-notes.md
16
- ============================================================ */
743
+ /*
744
+ ================================================================
745
+ LOCAL HELPERS — JTB gaps documented here
746
+ ================================================================
17
747
 
748
+ Gaps identified (candidates for JTB additions):
18
749
 
750
+ 1. min-h-{vh-fraction} — only min-h-screen (100vh) in JTB.
751
+ Useful: min-h-80vh, min-h-85vh for hero sections that
752
+ shouldn't consume the full viewport.
19
753
 
20
- /* Bar equalizer@keyframes grow not in JTB */
21
- @keyframes grow {
754
+ 2. backdrop-filter / blurutilities commented out in JTB.
755
+ Critical for frosted-glass navbars. Currently relies on
756
+ inline or local CSS.
22
757
 
23
- 0%,
24
- 100% {
25
- transform: scaleY(0.4);
26
- }
758
+ 3. Negative positioning (-top-{n}, -left-{n}) — not generated.
759
+ Needed for off-canvas decorative shapes.
27
760
 
28
- 50% {
29
- transform: scaleY(1);
30
- }
31
- }
761
+ 4. Organic blob border-radius — JTB has named/scale values but
762
+ no way to express e.g. "60% 40% 30% 70% / 60% 30% 70% 40%".
763
+ Could be solved with a small set of named blob variants.
32
764
 
33
- .bar-row {
34
- align-items: flex-end;
35
- }
765
+ 5. bg-transparent — transparent is not in JTB color maps.
766
+ Useful for overlay navbars and ghost buttons.
36
767
 
37
- .bar {
38
- width: 4px;
39
- animation: grow 0.9s ease-in-out infinite;
40
- }
768
+ 6. gap-05 — JTB spacing values include 0.5 but the class name
769
+ sanitiser may render it as gap-0.5 not gap-05. This local
770
+ helper covers the gap (no pun intended) for sub-1 values
771
+ in flex rows.
41
772
 
42
- .bar:nth-child(2) {
43
- animation-delay: 0.15s;
44
- }
773
+ 7. Gradient via-{color} — JTB gradients only support from/to,
774
+ no mid-stop.
775
+ ================================================================
776
+ */
45
777
 
46
- .bar:nth-child(3) {
47
- animation-delay: 0.30s;
778
+ /* --- Hero sizing ------------------------------------------ */
779
+ .ex-hero {
780
+ min-height: 88vh;
781
+ padding-block: 6rem 4rem;
48
782
  }
49
783
 
50
- .bar:nth-child(4) {
51
- animation-delay: 0.45s;
784
+ .ex-hero-dusk {
785
+ min-height: 90vh;
786
+ padding-block: 6rem 5rem;
52
787
  }
53
788
 
54
- .bar:nth-child(5) {
55
- animation-delay: 0.60s;
789
+ .ex-spacer {
790
+ height: 2rem;
56
791
  }
57
792
 
58
- /* Pulse / bounce dot stagger — nth-child animation delays */
59
- .dot-pulse:nth-child(2) {
60
- animation-delay: 0.20s;
793
+ /* --- Content max-widths ------------------------------------ */
794
+ .ex-hero-content {
795
+ max-width: 44rem;
61
796
  }
62
797
 
63
- .dot-pulse:nth-child(3) {
64
- animation-delay: 0.40s;
798
+ .ex-dusk-text {
799
+ max-width: 36rem;
65
800
  }
66
801
 
67
- .dot-bounce:nth-child(2) {
68
- animation-delay: 0.15s;
802
+ .ex-dusk-content {
803
+ padding-block: 8rem 6rem;
69
804
  }
70
805
 
71
- .dot-bounce:nth-child(3) {
72
- animation-delay: 0.30s;
806
+ /* --- Bottom fade overlay ----------------------------------- */
807
+ .ex-fade-bottom {
808
+ height: 6rem;
809
+ background: linear-gradient(to bottom, transparent, rgb(15 10 40 / 60%));
73
810
  }
74
811
 
75
- /* Ripple @keyframes ripple differs from animate-ping (starts from scale 0) */
76
- @keyframes ripple {
77
- 0% {
78
- transform: scale(0);
79
- opacity: 1;
80
- }
81
-
82
- 100% {
83
- transform: scale(2.5);
84
- opacity: 0;
85
- }
812
+ /* --- Blob border-radius ------------------------------------ */
813
+ .blob {
814
+ border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
86
815
  }
87
816
 
88
- .ripple {
89
- animation: ripple 1.6s ease-out infinite;
817
+ .blob-2 {
818
+ border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%;
90
819
  }
91
820
 
92
- .ripple:nth-child(2) {
93
- animation-delay: 0.8s;
821
+ /* --- Example 1 blob positions ------------------------------ */
822
+ .shape-tl {
823
+ top: -8rem;
824
+ inset-inline-start: -8rem;
94
825
  }
95
826
 
96
- .ripple-core {
97
- inset: 30%;
827
+ .shape-br {
828
+ bottom: -10rem;
829
+ inset-inline-end: -6rem;
98
830
  }
99
831
 
100
- /* Skeleton — @keyframes skeleton not in JTB */
101
- @keyframes skeleton {
102
- 0% {
103
- background-position: 200% 0;
104
- }
105
-
106
- 100% {
107
- background-position: -200% 0;
108
- }
832
+ .shape-mid-r {
833
+ top: 25%;
834
+ inset-inline-end: 6%;
109
835
  }
110
836
 
111
- .skeleton {
112
- background: linear-gradient(90deg, oklch(93% 0 0) 25%, oklch(88% 0 0) 50%, oklch(93% 0 0) 75%);
113
- background-size: 200% 100%;
114
- animation: skeleton 1.6s linear infinite;
837
+ .shape-mid-l {
838
+ bottom: 20%;
839
+ inset-inline-start: 8%;
115
840
  }
116
841
 
117
- .skel-w-55 {
118
- width: 55%;
842
+ /* SVG swirl position */
843
+ .swirl-deco {
844
+ top: 50%;
845
+ left: 50%;
846
+ transform: translate(-50%, -50%);
847
+ pointer-events: none;
119
848
  }
120
849
 
121
- .skel-w-65 {
122
- width: 65%;
850
+ .swirl-dusk {
851
+ top: 50%;
852
+ right: -10%;
853
+ transform: translateY(-50%);
854
+ pointer-events: none;
123
855
  }
124
856
 
125
- .skel-w-80 {
126
- width: 80%;
857
+ /* --- Example 2 shapes panel -------------------------------- */
858
+ .ex-hero-grid-gap {
859
+ gap: 4rem;
860
+ min-height: 85vh;
861
+ padding-block: 6rem 3rem;
127
862
  }
128
863
 
129
- /* Progress — @keyframes progress-indeterminate not in JTB */
130
- @keyframes progress-indeterminate {
131
- 0% {
132
- left: -40%;
133
- width: 40%;
134
- }
135
-
136
- 100% {
137
- left: 100%;
138
- width: 40%;
139
- }
864
+ .ex-shapes-panel {
865
+ height: 32rem;
140
866
  }
141
867
 
142
- .progress-track {
143
- height: 4px;
868
+ .geo-ring {
869
+ width: 28rem;
870
+ height: 28rem;
871
+ top: 50%;
872
+ left: 50%;
873
+ transform: translate(-50%, -50%);
144
874
  }
145
875
 
146
- .progress-fill {
147
- position: absolute;
148
- inset-block-start: 0;
149
- height: 100%;
150
- border-radius: 2px;
151
- animation: progress-indeterminate 1.4s ease-in-out infinite;
876
+ .geo-ring-inner {
877
+ width: 20rem;
878
+ height: 20rem;
879
+ top: 50%;
880
+ left: 50%;
881
+ transform: translate(-50%, -50%);
152
882
  }
153
883
 
154
- .progress-fill-65 {
155
- width: 65%;
884
+ .geo-center {
885
+ width: 10rem;
886
+ height: 10rem;
887
+ top: 50%;
888
+ left: 50%;
889
+ transform: translate(-50%, -50%);
156
890
  }
157
891
 
158
-
159
- /* Icon-only button — btn has no square/icon variant */
160
- .btn-icon {
161
- min-width: 0;
162
- width: 2.25rem;
163
- height: 2.25rem;
164
- padding: 0;
892
+ .ex-geo-card {
893
+ min-width: 11rem;
165
894
  }
166
895
 
167
- /* Skeleton avatar — flex-shrink: 0 not available as JTB utility */
168
- .skel-avatar {
169
- flex-shrink: 0;
896
+ .geo-card-1 {
897
+ top: 10%;
898
+ left: -2rem;
170
899
  }
171
- </style>
172
900
 
173
- <div class="py-1.5 container-md">
174
- <style>
175
-
176
- /*SVG arc — @keyframes dash not in JTB animation utilities*/
177
- @keyframes dash {
178
- 0% {
179
- stroke-dasharray: 1, 150;
180
- stroke-dashoffset: 0;
181
- }
182
-
183
- 50% {
184
- stroke-dasharray: 90, 150;
185
- stroke-dashoffset: -35;
186
- }
187
-
188
- 100% {
189
- stroke-dasharray: 90, 150;
190
- stroke-dashoffset: -124;
191
- }
192
- }
193
-
194
- .arc circle {
195
- fill: none;
196
- stroke-width: 3;
197
- stroke-linecap: round;
198
- animation: dash 1.4s ease-in-out infinite;
199
- }
200
- </style>
201
-
202
- <div class="mb-2.5">
203
- <h2>SVG arc spinner</h2>
204
- <div class="bx flex-vac flex-wrap gap-1.5">
205
- <div class="flex-col flex-vac gap-05">
206
- <svg class="animate-spin arc wh-2.5 txt-blue-500" viewBox="0 0 36 36">
207
- <circle cx="18" cy="18" r="14" stroke="currentColor" />
208
- </svg>
209
- <span class="txt-xs txt-muted">smooth arc</span>
210
- </div>
211
- <div class="flex-col flex-vac gap-05">
212
- <svg class="animate-spin arc wh-3 txt-emerald-500" viewBox="0 0 48 48">
213
- <circle cx="24" cy="24" r="18" stroke="currentColor" />
214
- </svg>
215
- <span class="txt-xs txt-muted">teal / lg</span>
216
- </div>
217
- </div>
218
- </div>
219
-
220
- <div class="mb-2.5">
221
- <h2>Dot indicators</h2>
222
- <div class="bx flex-vac flex-wrap gap-1.5">
223
- <div class="flex-col flex-vac gap-05">
224
- <div class="flex-vac gap-025">
225
- <div class="wh-05 rounded-full bg-gray-400 animate-pulse dot-pulse"></div>
226
- <div class="wh-05 rounded-full bg-gray-400 animate-pulse dot-pulse"></div>
227
- <div class="wh-05 rounded-full bg-gray-400 animate-pulse dot-pulse"></div>
228
- </div>
229
- <span class="txt-xs txt-muted">pulse</span>
230
- </div>
231
- <div class="flex-col flex-vac gap-05">
232
- <div class="flex-vac gap-025">
233
- <div class="wh-05 rounded-full bg-blue-500 animate-pulse dot-pulse"></div>
234
- <div class="wh-05 rounded-full bg-violet-500 animate-pulse dot-pulse"></div>
235
- <div class="wh-05 rounded-full bg-emerald-500 animate-pulse dot-pulse"></div>
236
- </div>
237
- <span class="txt-xs txt-muted">multicolour</span>
238
- </div>
239
- <div class="flex-col flex-vac gap-05">
240
- <div class="flex-vac gap-025">
241
- <div class="wh-05 rounded-full bg-blue-500 animate-bounce dot-bounce"></div>
242
- <div class="wh-05 rounded-full bg-blue-500 animate-bounce dot-bounce"></div>
243
- <div class="wh-05 rounded-full bg-blue-500 animate-bounce dot-bounce"></div>
244
- </div>
245
- <span class="txt-xs txt-muted">bounce</span>
246
- </div>
247
- </div>
248
- </div>
901
+ .geo-card-2 {
902
+ bottom: 15%;
903
+ left: 2rem;
904
+ }
249
905
 
250
- <div class="mb-2.5">
251
- <h2>Bar equaliser</h2>
252
- <div class="bx flex-vac flex-wrap gap-1.5">
253
- <div class="flex-col flex-vac gap-05">
254
- <div class="flex bar-row gap-025">
255
- <div class="bar h-1.25 rounded-sm bg-blue-500"></div>
256
- <div class="bar h-1.25 rounded-sm bg-blue-500"></div>
257
- <div class="bar h-1.25 rounded-sm bg-blue-500"></div>
258
- <div class="bar h-1.25 rounded-sm bg-blue-500"></div>
259
- <div class="bar h-1.25 rounded-sm bg-blue-500"></div>
260
- </div>
261
- <span class="txt-xs txt-muted">bars</span>
262
- </div>
263
- <div class="flex-col flex-vac gap-05">
264
- <div class="flex bar-row gap-025">
265
- <div class="bar h-1.25 rounded-sm bg-violet-500"></div>
266
- <div class="bar h-1.25 rounded-sm bg-violet-500"></div>
267
- <div class="bar h-1.25 rounded-sm bg-violet-500"></div>
268
- <div class="bar h-1.25 rounded-sm bg-violet-500"></div>
269
- <div class="bar h-1.25 rounded-sm bg-violet-500"></div>
270
- </div>
271
- <span class="txt-xs txt-muted">purple</span>
272
- </div>
273
- </div>
274
- </div>
906
+ .geo-card-3 {
907
+ top: 15%;
908
+ right: -1rem;
909
+ }
275
910
 
276
- <div class="mb-2.5">
277
- <h2>Ripple</h2>
278
- <div class="bx flex-vac flex-wrap gap-1.5">
279
- <div class="flex-col flex-vac gap-05">
280
- <div class="relative wh-2.5">
281
- <div class="absolute inset-0 rounded-full bg-blue-400 ripple"></div>
282
- <div class="absolute inset-0 rounded-full bg-blue-400 ripple"></div>
283
- <div class="absolute rounded-full bg-blue-500 ripple-core"></div>
284
- </div>
285
- <span class="txt-xs txt-muted">ripple pulse</span>
286
- </div>
287
- </div>
288
- </div>
911
+ .geo-swirl {
912
+ top: 50%;
913
+ left: 50%;
914
+ transform: translate(-50%, -50%);
915
+ pointer-events: none;
916
+ }
289
917
 
290
- <div class="mb-2.5">
291
- <h2>Progress bar</h2>
292
- <div class="bx flex-vac flex-wrap gap-1.5">
293
- <div class="flex-col flex-vac gap-05">
294
- <div class="relative overflow-hidden w-12 rounded-sm bg-gray-200 progress-track">
295
- <div class="bg-blue-500 progress-fill"></div>
296
- </div>
297
- <span class="txt-xs txt-muted">indeterminate</span>
298
- </div>
299
- <div class="flex-col flex-vac gap-05">
300
- <div class="relative overflow-hidden w-12 rounded-sm bg-gray-200 progress-track">
301
- <div class="bg-blue-500 rounded-sm progress-fill progress-fill-65"></div>
302
- </div>
303
- <span class="txt-xs txt-muted">determinate 65%</span>
304
- </div>
305
- </div>
306
- </div>
918
+ /* --- Example 3 photo blobs --------------------------------- */
919
+ .photo-blob-1 {
920
+ width: 40rem;
921
+ height: 40rem;
922
+ top: -10rem;
923
+ right: -8rem;
924
+ }
307
925
 
308
- <div class="mb-2.5">
309
- <h2>Button spinners</h2>
310
- <div class="bx flex-vac flex-wrap gap-1.5">
311
- <button class="btn flex-vac gap-05">
312
- <div class="spinner btn-spinner"></div>
313
- Loading
314
- </button>
315
- <button class="btn primary flex-vac gap-05">
316
- <div class="spinner btn-spinner btn-spinner-light"></div>
317
- Saving
318
- </button>
319
- <button class="btn blue flex-vac gap-05">
320
- <div class="spinner btn-spinner btn-spinner-light"></div>
321
- Uploading
322
- </button>
323
- <button class="btn btn-icon">
324
- <div class="spinner btn-spinner"></div>
325
- </button>
326
- </div>
327
- </div>
926
+ .photo-blob-2 {
927
+ width: 30rem;
928
+ height: 30rem;
929
+ bottom: -5rem;
930
+ left: -5rem;
931
+ }
328
932
 
329
- <div class="mb-2.5">
330
- <h2>Skeleton loader</h2>
331
- <div class="bx flex-vac gap-1">
332
- <div class="skeleton rounded-full wh-3 skel-avatar"></div>
333
- <div class="flex-col fg-1 gap-05">
334
- <div class="skeleton rounded h-05 skel-w-55"></div>
335
- <div class="skeleton rounded h-05 skel-w-80"></div>
336
- <div class="skeleton rounded h-05 skel-w-65"></div>
337
- </div>
338
- </div>
339
- </div>
933
+ .photo-blob-3 {
934
+ width: 20rem;
935
+ height: 20rem;
936
+ top: 30%;
937
+ right: 20%;
938
+ }
340
939
 
341
- <div class="mb-2.5">
342
- <h2>Page loader</h2>
343
- <div class="bx flex-col flex-centered gap-1">
344
- <svg class="animate-spin arc wh-3 txt-blue-500" viewBox="0 0 44 44">
345
- <circle cx="22" cy="22" r="16" stroke="currentColor" />
346
- </svg>
347
- <p class="txt-sm txt-muted">Loading your workspace…</p>
348
- </div>
349
- </div>
940
+ /* --- Frosted glass navbar ---------------------------------- */
941
+ .navbar-glass {
942
+ background: rgb(255 255 255 / 8%);
943
+ backdrop-filter: blur(12px);
944
+ -webkit-backdrop-filter: blur(12px);
945
+ border-bottom: 1px solid rgb(255 255 255 / 10%);
946
+ }
350
947
 
351
- </div>
948
+ /* Override .navbar component background for glass variant */
949
+ nav.navbar.navbar-glass {
950
+ background: rgb(255 255 255 / 8%);
951
+ }
352
952
 
953
+ /* --- Wave divider ----------------------------------------- */
954
+ .wave-bottom {
955
+ position: absolute;
956
+ bottom: 0;
957
+ left: 0;
958
+ width: 100%;
959
+ height: 100px;
960
+ }
353
961
 
962
+ /* --- gap-05 fallback (sub-1 rem class name) --------------- */
963
+ .gap-05 {
964
+ gap: 0.5rem;
965
+ }
354
966
 
967
+ .mx-0\.5 {
968
+ margin-inline: 0.25rem;
969
+ }
970
+ </style>
355
971
 
356
- <script type="module" src="/main.js"></script>
357
972
  </body>
358
973
 
359
974
  </html>