pandorga 1.3.1 → 1.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4947a2b9a5122c400a00753c4833861bbc6217dfaf59850fa27f79dbd7d99f3a
4
- data.tar.gz: 7baa3fdc30880e278c772c2a98229bbeca3cce8b91e897bb56f4bb52fcedef3b
3
+ metadata.gz: 96f8f5df58f08bf4eb331ba41f5c7aed8f7ee086ece304b66d2204974605b6c1
4
+ data.tar.gz: e89377d7e62a3413344af45c3605986436adf161cc263159f607b3bf435631f7
5
5
  SHA512:
6
- metadata.gz: 060666c1506de360e6420c3b4cf77e5fe36a8180f1aa5e8ffc5f8e4c9de134d980f1c2ba336a799cd4ac19646dc3ec6bb4022c78f0291d9eca2640bdf63da17d
7
- data.tar.gz: 2a305ce4521e205322f8d7329d25730b4593e42718c8becfb49eed02bf4c3e1b862cec55b55662d7d653ea47d668cf8d3b780a4bd17f4b4bfb4b43bc7f20974d
6
+ metadata.gz: dd8485b02a4fa87afc5aecd93d6da693d9bc290de094a544a1b5e4b41b856858745616dc4a492b7ab9ba2b7abac6ba75f694d62d52ce0c4ba5d342ceb1834a49
7
+ data.tar.gz: d8399d6a1c4eb8f49a3cbcec382e998280da7d39b6686a23f043a83a97c1626a59c9f471f8e8b7ad8d6bcce42e6a92ed6519242a377ec08dc05e24c55429e1a4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.3.3] — 2026-10-05
4
+
5
+ ### Changed
6
+
7
+ - Home portfolio inventory is an index folio (number, thumb, title, project
8
+ icon) with a borderless specimen; drafting marks stay on the poster only
9
+ - Specimen meta shows project tags instead of label/status
10
+ - Mobile selector strip and session-sticky random specimen pick from 1.3.2
11
+ polish remain
12
+
13
+ ## [1.3.2] — 2026-10-05
14
+
15
+ ### Fixed
16
+
17
+ - Home inventory rows are selectable, height-synced to the specimen, and keep
18
+ 16:9 thumbs flush in flex media shells
19
+ - Studio list surfaces use the themed panel background
20
+
3
21
  ## [1.3.1] — 2026-10-05
4
22
 
5
23
  ### Changed
data/DESIGN.md CHANGED
@@ -936,8 +936,10 @@ Letter-spacing in use, by frequency: `0.1em` (12), `0.08em` (10), `0.12em` (7),
936
936
  3px `primary` rule at its top-left corner as a structural mark. The three
937
937
  writing cards take `primary` / `secondary` / `tertiary` 2px top rules in
938
938
  rotation. The systems band is a specimen + inventory bench from 900px —
939
- one large project plate (~7/12) beside a compact ledger rail (~5/12); both
940
- keep 16:9 media. Below 768px the hero portrait runs to the screen edge, pulled
939
+ a 40% / 60% split: 16:9 specimen card beside a panel inventory rail whose
940
+ height matches the full specimen card, with equal-flex rows (thumb 16:9
941
+ left, meta right); list click updates the specimen, specimen click opens
942
+ the project. Below 768px the hero portrait runs to the screen edge, pulled
941
943
  out of the band's gutter by exactly `--gutter-mobile` on each side and losing
942
944
  its side hairlines, which at the edge would read as a frame cut off.
943
945
  * **Writing index.** Masthead over a hairline, then a `panelContrast` filter
@@ -324,38 +324,65 @@
324
324
  ].join('');
325
325
  }
326
326
 
327
- /* Compact inventory row for the home portfolio bench — thumb + name +
328
- * status only. Field-backed; no tagline or tag cloud. */
327
+ /* Compact inventory row for the home portfolio bench.
328
+ * Desktop: index + thumb + title + project icon. Mobile strip uses the
329
+ * thumb/initial only. Selectable rows update the specimen. */
329
330
  function renderProjectInventoryRow(item, options) {
330
331
  options = options || {};
331
332
  var f = blockFields(item);
332
333
  var fm = f.fm;
333
334
  var href = options.href || '#';
334
335
  var name = fm.project || f.title;
336
+ var selectable = !!options.selectable;
337
+ var selected = !!options.selected;
338
+ var slug = item.slug || f.slug || '';
339
+ var index = options.index;
335
340
 
336
341
  var row = document.createElement('article');
337
- row.className = 'home-project-inventory-row group';
342
+ row.className = 'home-project-inventory-row group' +
343
+ (selected ? ' is-selected' : '');
344
+ if (slug) row.setAttribute('data-slug', slug);
345
+
346
+ if (selectable) {
347
+ row.setAttribute('role', 'button');
348
+ row.setAttribute('tabindex', '0');
349
+ row.setAttribute('aria-pressed', selected ? 'true' : 'false');
350
+ }
338
351
 
339
352
  var media = renderPosterMedia(fm.thumbnail, name);
340
- if (!media && fm.icon) {
341
- media = '<div class="home-project-inventory-mark" aria-hidden="true">' +
342
- '<span class="material-symbols-outlined">' + escapeHtml(fm.icon) + '</span></div>';
353
+ var initial = String(name || '?').charAt(0).toUpperCase();
354
+ if (!media) {
355
+ media = '<div class="home-project-inventory-mark home-project-inventory-mark--initial" aria-hidden="true">' +
356
+ escapeHtml(initial) + '</div>';
343
357
  }
344
358
 
345
359
  var html = '';
360
+ if (index != null && index !== '') {
361
+ var label = String(Number(index));
362
+ if (label.length < 2) label = '0' + label;
363
+ html += '<span class="home-project-inventory-index" aria-hidden="true">' +
364
+ escapeHtml(label) + '</span>';
365
+ }
346
366
  if (media) {
347
367
  html += '<div class="home-project-inventory-media">' + media + '</div>';
348
368
  }
349
369
  html += '<div class="home-project-inventory-body">';
350
- html += '<h3 class="home-project-inventory-title card-title">' +
351
- '<a class="ledger-card-stretch" href="' + escapeAttr(href) + '">' +
352
- escapeHtml(name) + '</a></h3>';
353
- var meta = renderMetaStrip([
354
- fm.label ? escapeHtml(fm.label) : '',
355
- fm.status ? '<span class="ledger-status">' + escapeHtml(fm.status) + '</span>' : ''
356
- ]);
357
- if (meta) html += meta;
370
+ if (selectable) {
371
+ html += '<h3 class="home-project-inventory-title card-title">' +
372
+ escapeHtml(name) + '</h3>';
373
+ } else {
374
+ html += '<h3 class="home-project-inventory-title card-title">' +
375
+ '<a class="ledger-card-stretch" href="' + escapeAttr(href) + '">' +
376
+ escapeHtml(name) + '</a></h3>';
377
+ }
358
378
  html += '</div>';
379
+ if (fm.icon) {
380
+ html += '<span class="home-project-inventory-glyph material-symbols-outlined" aria-hidden="true">' +
381
+ escapeHtml(fm.icon) + '</span>';
382
+ } else {
383
+ html += '<span class="home-project-inventory-glyph home-project-inventory-glyph--initial" aria-hidden="true">' +
384
+ escapeHtml(initial) + '</span>';
385
+ }
359
386
 
360
387
  row.innerHTML = html;
361
388
  return row;
data/_layouts/home.html CHANGED
@@ -211,35 +211,119 @@ layout: shell
211
211
  var specimenSlot = section.querySelector('[data-home-specimen]');
212
212
  var inventorySlot = section.querySelector('[data-home-inventory]');
213
213
  var systemTagHref = tagHrefFrom(list);
214
- var portfolio = entries.slice(0, limit);
214
+ /* Selector strip is sized for six icon buttons on mobile; take up to
215
+ six projects even when home.limit is lower. */
216
+ var portfolio = entries.slice(0, Math.max(limit, 6));
215
217
  if (!portfolio.length) {
216
218
  runtime.Listing.showErrorState(list, 'Projects could not be loaded right now.');
217
219
  return;
218
220
  }
219
- if (specimenSlot) {
221
+ if (!specimenSlot || !inventorySlot) {
222
+ fill(list, portfolio.slice(0, limit), function (entry) {
223
+ return runtime.renderSystemCard(asItem(entry), {
224
+ href: entry.url || runtime.projectUrl(entry.slug),
225
+ tagHref: systemTagHref,
226
+ glyphFallback: true
227
+ });
228
+ }, 'Projects could not be loaded right now.');
229
+ return;
230
+ }
231
+
232
+ var featuredPick = runtime.pickFeatured(portfolio.map(asItem), {
233
+ storageKey: 'home-specimen-slug',
234
+ eligible: function () { return true; }
235
+ });
236
+ var selectedSlug = (featuredPick && featuredPick.slug) || portfolio[0].slug;
237
+ var inventoryResizeObserver = null;
238
+
239
+ function entryBySlug(slug) {
240
+ return portfolio.filter(function (entry) { return entry.slug === slug; })[0] || portfolio[0];
241
+ }
242
+
243
+ function syncInventoryHeight() {
244
+ if (!window.matchMedia('(min-width: 900px)').matches) {
245
+ inventorySlot.style.height = '';
246
+ return;
247
+ }
248
+ var specimen = specimenSlot.querySelector('.home-project-specimen');
249
+ if (!specimen) {
250
+ inventorySlot.style.height = '';
251
+ return;
252
+ }
253
+ inventorySlot.style.height = Math.round(specimen.getBoundingClientRect().height) + 'px';
254
+ }
255
+
256
+ function watchSpecimen(specimen) {
257
+ if (inventoryResizeObserver) {
258
+ inventoryResizeObserver.disconnect();
259
+ inventoryResizeObserver = null;
260
+ }
261
+ if (!specimen || typeof ResizeObserver === 'undefined') return;
262
+ inventoryResizeObserver = new ResizeObserver(function () {
263
+ syncInventoryHeight();
264
+ });
265
+ inventoryResizeObserver.observe(specimen);
266
+ }
267
+
268
+ function paintSpecimen(entry) {
220
269
  specimenSlot.innerHTML = '';
221
- specimenSlot.appendChild(runtime.renderSystemCard(asItem(portfolio[0]), {
222
- href: portfolio[0].url || runtime.projectUrl(portfolio[0].slug),
270
+ /* No card-level drafting corners / edge tick — markers live on the
271
+ poster plate only, so they do not overlap the image. Meta strip
272
+ is suppressed; tags take that slot below the plate. */
273
+ specimenSlot.appendChild(runtime.renderSystemCard(asItem(entry), {
274
+ href: entry.url || runtime.projectUrl(entry.slug),
223
275
  tagHref: systemTagHref,
224
- className: 'home-project-specimen ledger-card--edge-primary',
225
- frameCorners: true,
226
- glyphFallback: true
276
+ className: 'home-project-specimen',
277
+ glyphFallback: true,
278
+ metaParts: []
227
279
  }));
280
+ var specimen = specimenSlot.querySelector('.home-project-specimen');
281
+ watchSpecimen(specimen);
282
+ var poster = specimenSlot.querySelector('.ledger-poster img, .projects-plate');
283
+ if (poster && poster.tagName === 'IMG' && !poster.complete) {
284
+ poster.addEventListener('load', syncInventoryHeight, { once: true });
285
+ }
286
+ window.requestAnimationFrame(syncInventoryHeight);
228
287
  }
229
- var rest = portfolio.slice(1);
230
- if (inventorySlot) {
231
- if (!rest.length) {
232
- inventorySlot.hidden = true;
233
- inventorySlot.innerHTML = '';
234
- } else {
235
- inventorySlot.hidden = false;
236
- fill(inventorySlot, rest, function (entry) {
237
- return runtime.renderProjectInventoryRow(asItem(entry), {
238
- href: entry.url || runtime.projectUrl(entry.slug)
288
+
289
+ function paintInventory() {
290
+ inventorySlot.hidden = false;
291
+ inventorySlot.innerHTML = '';
292
+ inventorySlot.style.setProperty(
293
+ '--home-project-icon-count',
294
+ String(Math.min(portfolio.length, 6) || 1)
295
+ );
296
+ portfolio.forEach(function (entry, i) {
297
+ var row = runtime.renderProjectInventoryRow(asItem(entry), {
298
+ selectable: true,
299
+ selected: entry.slug === selectedSlug,
300
+ index: i + 1
301
+ });
302
+ function select() {
303
+ if (selectedSlug === entry.slug) return;
304
+ selectedSlug = entry.slug;
305
+ paintSpecimen(entry);
306
+ Array.prototype.forEach.call(inventorySlot.children, function (node) {
307
+ var isSelected = node.getAttribute('data-slug') === selectedSlug;
308
+ node.classList.toggle('is-selected', isSelected);
309
+ node.setAttribute('aria-pressed', isSelected ? 'true' : 'false');
239
310
  });
240
- }, 'Projects could not be loaded right now.');
241
- }
311
+ }
312
+ row.addEventListener('click', select);
313
+ row.addEventListener('keydown', function (event) {
314
+ if (event.key === 'Enter' || event.key === ' ') {
315
+ event.preventDefault();
316
+ select();
317
+ }
318
+ });
319
+ inventorySlot.appendChild(row);
320
+ });
321
+ window.requestAnimationFrame(syncInventoryHeight);
242
322
  }
323
+
324
+ paintSpecimen(entryBySlug(selectedSlug));
325
+ paintInventory();
326
+ window.addEventListener('resize', syncInventoryHeight);
243
327
  return;
244
328
  }
245
329
 
@@ -943,9 +943,9 @@ html[data-theme="light"] .home-hero-plate {
943
943
  }
944
944
  }
945
945
 
946
- /* ── Engineering artifacts: specimen + inventory bench ──
947
- One large specimen plate (~7/12) beside a compact ledger rail (~5/12).
948
- Covers stay 16:9 — hard requirement for home project media. */
946
+ /* ── Engineering artifacts: specimen + index folio ──
947
+ 40%/60% split: 16:9 specimen beside a hairline index rail (no grey panel).
948
+ List click updates the specimen; specimen click opens the project. */
949
949
  .home-projects-bench {
950
950
  display: grid;
951
951
  grid-template-columns: minmax(0, 1fr);
@@ -955,29 +955,133 @@ html[data-theme="light"] .home-hero-plate {
955
955
 
956
956
  @media (min-width: 900px) {
957
957
  .home-projects-bench {
958
- grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
958
+ grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
959
959
  gap: var(--space-xl);
960
+ align-items: start;
960
961
  }
961
962
  }
962
963
 
963
964
  .home-project-specimen {
964
965
  position: relative;
965
966
  gap: var(--space-sm);
966
- padding: var(--space-lg);
967
+ padding: var(--space-md);
968
+ max-width: none;
969
+ width: 100%;
970
+ /* Borderless card: ink frame + drafting corners live on the poster only. */
971
+ border: 0;
972
+ background: var(--color-panel-contrast);
973
+ }
974
+
975
+ :root:not([data-theme="dark"]) .home-project-specimen,
976
+ html[data-theme="light"] .home-project-specimen,
977
+ [data-theme="dark"] .home-project-specimen {
978
+ border: 0;
967
979
  }
968
980
 
969
981
  .home-project-specimen>.ledger-poster,
970
982
  .home-project-specimen>.projects-plate {
971
983
  width: auto;
972
- margin: calc(var(--space-lg) * -1) calc(var(--space-lg) * -1) 0;
984
+ margin: calc(var(--space-md) * -1) calc(var(--space-md) * -1) 0;
973
985
  aspect-ratio: 16 / 9;
986
+ position: relative;
987
+ }
988
+
989
+ /* Glyph plates have no .ledger-poster::after — mirror the image corners. */
990
+ .home-project-specimen>.projects-plate::after {
991
+ content: "";
992
+ --frame-corner-size: 0.7rem;
993
+ --frame-corner-thickness: 1px;
994
+ position: absolute;
995
+ inset: 0.3rem;
996
+ pointer-events: none;
997
+ z-index: 2;
998
+ background:
999
+ linear-gradient(var(--color-primary), var(--color-primary)) top left / var(--frame-corner-size) var(--frame-corner-thickness) no-repeat,
1000
+ linear-gradient(var(--color-primary), var(--color-primary)) top left / var(--frame-corner-thickness) var(--frame-corner-size) no-repeat,
1001
+ linear-gradient(var(--color-primary), var(--color-primary)) top right / var(--frame-corner-size) var(--frame-corner-thickness) no-repeat,
1002
+ linear-gradient(var(--color-primary), var(--color-primary)) top right / var(--frame-corner-thickness) var(--frame-corner-size) no-repeat,
1003
+ linear-gradient(var(--color-primary), var(--color-primary)) bottom left / var(--frame-corner-size) var(--frame-corner-thickness) no-repeat,
1004
+ linear-gradient(var(--color-primary), var(--color-primary)) bottom left / var(--frame-corner-thickness) var(--frame-corner-size) no-repeat,
1005
+ linear-gradient(var(--color-primary), var(--color-primary)) bottom right / var(--frame-corner-size) var(--frame-corner-thickness) no-repeat,
1006
+ linear-gradient(var(--color-primary), var(--color-primary)) bottom right / var(--frame-corner-thickness) var(--frame-corner-size) no-repeat;
1007
+ }
1008
+
1009
+ @media (max-width: 899px) {
1010
+ .home-projects-bench {
1011
+ display: flex;
1012
+ flex-direction: column;
1013
+ align-items: stretch;
1014
+ gap: var(--space-md);
1015
+ }
1016
+
1017
+ .home-project-specimen {
1018
+ max-width: none;
1019
+ }
1020
+
1021
+ /* Icon strip under the specimen: equal buttons spanning the band width. */
1022
+ .home-project-inventory {
1023
+ display: grid;
1024
+ grid-template-columns: repeat(var(--home-project-icon-count, 6), minmax(0, 1fr));
1025
+ gap: var(--space-xs);
1026
+ height: auto !important;
1027
+ min-height: 0;
1028
+ overflow: visible;
1029
+ background: transparent;
1030
+ border: 0;
1031
+ }
1032
+
1033
+ .home-project-inventory-row {
1034
+ display: block;
1035
+ flex: none;
1036
+ min-height: 0;
1037
+ padding: 0;
1038
+ border: 1px solid var(--border-gentle-divider);
1039
+ border-bottom-color: var(--border-gentle-divider);
1040
+ background: var(--color-panel-contrast);
1041
+ aspect-ratio: 1;
1042
+ box-shadow: none;
1043
+ }
1044
+
1045
+ .home-project-inventory-row:last-child {
1046
+ border-bottom: 1px solid var(--border-gentle-divider);
1047
+ }
1048
+
1049
+ .home-project-inventory-index,
1050
+ .home-project-inventory-body,
1051
+ .home-project-inventory-glyph {
1052
+ display: none;
1053
+ }
1054
+
1055
+ .home-project-inventory-media {
1056
+ width: 100%;
1057
+ height: 100%;
1058
+ aspect-ratio: auto;
1059
+ border-right: 0;
1060
+ }
1061
+
1062
+ .home-project-inventory-media .ledger-poster,
1063
+ .home-project-inventory-mark {
1064
+ aspect-ratio: 1;
1065
+ height: 100%;
1066
+ }
1067
+
1068
+ .home-project-inventory-media .ledger-poster::after {
1069
+ display: none;
1070
+ }
1071
+
1072
+ .home-project-inventory-row.is-selected {
1073
+ border-color: var(--color-primary);
1074
+ outline: 1px solid var(--color-primary);
1075
+ outline-offset: -1px;
1076
+ background: var(--color-panel-contrast);
1077
+ }
974
1078
  }
975
1079
 
976
1080
  .home-project-specimen .projects-plate--mark {
977
1081
  display: flex;
978
1082
  align-items: center;
979
1083
  justify-content: center;
980
- background: var(--color-panel-contrast);
1084
+ background: var(--color-surface-high);
981
1085
  color: var(--color-primary);
982
1086
  }
983
1087
 
@@ -985,20 +1089,31 @@ html[data-theme="light"] .home-hero-plate {
985
1089
  font-size: 3rem;
986
1090
  }
987
1091
 
988
- .home-project-specimen .ledger-card-title {
1092
+ .home-project-specimen .ledger-meta {
1093
+ display: none;
1094
+ }
1095
+
1096
+ .home-project-specimen .ledger-card-title,
1097
+ .home-project-specimen .ledger-card-title a {
989
1098
  font-family: var(--font-content-title);
990
1099
  font-size: var(--type-card-lg);
991
1100
  font-weight: var(--weight-title);
992
1101
  font-synthesis: none;
993
1102
  line-height: 1.2;
1103
+ color: var(--color-on-surface);
1104
+ }
1105
+
1106
+ .home-project-specimen:hover .ledger-card-title a,
1107
+ .home-project-specimen:focus-within .ledger-card-title a {
1108
+ color: var(--color-primary);
994
1109
  }
995
1110
 
996
1111
  .home-project-specimen .ledger-card-copy {
997
1112
  font-family: var(--font-body);
998
- font-size: var(--type-subtitle);
1113
+ font-size: var(--type-body);
999
1114
  font-weight: var(--weight-body);
1000
1115
  line-height: var(--leading-body);
1001
- color: var(--color-legend);
1116
+ color: var(--color-on-surface-variant);
1002
1117
  display: -webkit-box;
1003
1118
  -webkit-box-orient: vertical;
1004
1119
  -webkit-line-clamp: 3;
@@ -1006,53 +1121,106 @@ html[data-theme="light"] .home-hero-plate {
1006
1121
  overflow: hidden;
1007
1122
  }
1008
1123
 
1124
+ /* Tags replace the old label/status strip; outbound links stay off. */
1125
+ .home-project-specimen .ledger-chip-row {
1126
+ display: flex;
1127
+ flex-wrap: wrap;
1128
+ gap: var(--space-xs);
1129
+ margin: 0;
1130
+ }
1131
+
1009
1132
  .home-project-specimen .ledger-card-links {
1010
- row-gap: var(--space-sm);
1133
+ display: none;
1011
1134
  }
1012
1135
 
1013
1136
  .home-project-inventory {
1014
1137
  display: flex;
1015
1138
  flex-direction: column;
1016
1139
  min-width: 0;
1017
- border-top: 1px solid var(--border-gentle-divider);
1140
+ min-height: 0;
1141
+ background: transparent;
1142
+ border: 0;
1143
+ overflow: hidden;
1018
1144
  }
1019
1145
 
1020
1146
  .home-project-inventory-row {
1021
1147
  position: relative;
1022
- display: grid;
1023
- grid-template-columns: minmax(0, 1fr);
1024
- gap: var(--space-md);
1148
+ display: flex;
1149
+ flex-direction: row;
1025
1150
  align-items: center;
1026
- padding: var(--space-sm) 0;
1151
+ flex: 1 1 0;
1152
+ min-height: 0;
1153
+ gap: var(--space-md);
1154
+ padding: var(--space-sm) var(--space-sm) var(--space-sm) 0;
1155
+ border: 0;
1027
1156
  border-bottom: 1px solid var(--border-gentle-divider);
1157
+ background: transparent;
1158
+ cursor: pointer;
1028
1159
  transition: background-color var(--motion-duration-fast) var(--motion-ease-default);
1029
1160
  }
1030
1161
 
1031
- .home-project-inventory-row:has(.home-project-inventory-media) {
1032
- grid-template-columns: 5.5rem minmax(0, 1fr);
1162
+ .home-project-inventory-row:last-child {
1163
+ border-bottom: 1px solid var(--border-gentle-divider);
1033
1164
  }
1034
1165
 
1035
1166
  .home-project-inventory-row:hover,
1036
- .home-project-inventory-row:focus-within {
1167
+ .home-project-inventory-row:focus-visible {
1168
+ background: var(--color-surface-high);
1169
+ outline: none;
1170
+ }
1171
+
1172
+ .home-project-inventory-row.is-selected {
1037
1173
  background: var(--color-surface-high);
1174
+ box-shadow: inset 3px 0 0 var(--color-primary);
1038
1175
  }
1039
1176
 
1040
1177
  .home-band--contrast .home-project-inventory-row:hover,
1041
- .home-band--contrast .home-project-inventory-row:focus-within {
1178
+ .home-band--contrast .home-project-inventory-row:focus-visible,
1179
+ .home-band--contrast .home-project-inventory-row.is-selected {
1042
1180
  background: var(--color-surface-high-contrast);
1043
1181
  }
1044
1182
 
1183
+ .home-project-inventory-index {
1184
+ flex: 0 0 1.75rem;
1185
+ font-family: var(--font-mono);
1186
+ font-size: var(--type-caption);
1187
+ letter-spacing: 0.04em;
1188
+ color: var(--color-on-surface-variant);
1189
+ line-height: 1;
1190
+ text-align: right;
1191
+ }
1192
+
1193
+ .home-project-inventory-row.is-selected .home-project-inventory-index,
1194
+ .home-project-inventory-row:hover .home-project-inventory-index,
1195
+ .home-project-inventory-row:focus-visible .home-project-inventory-index {
1196
+ color: var(--color-primary);
1197
+ }
1198
+
1045
1199
  .home-project-inventory-media {
1200
+ flex: 0 0 auto;
1201
+ width: 5.5rem;
1202
+ align-self: center;
1203
+ height: auto;
1046
1204
  min-width: 0;
1205
+ min-height: 0;
1206
+ aspect-ratio: 16 / 9;
1207
+ overflow: hidden;
1208
+ background: var(--color-surface-high);
1209
+ border: 1px solid var(--border-gentle-subtle);
1047
1210
  }
1048
1211
 
1049
1212
  .home-project-inventory-media .ledger-poster,
1050
1213
  .home-project-inventory-mark {
1051
- aspect-ratio: 16 / 9;
1052
1214
  width: 100%;
1215
+ height: 100%;
1216
+ aspect-ratio: auto;
1217
+ border: 0;
1053
1218
  overflow: hidden;
1054
- border: 1px solid var(--border-gentle-subtle);
1055
- background: var(--color-panel-contrast);
1219
+ background: var(--color-surface-high);
1220
+ }
1221
+
1222
+ .home-project-inventory-media .ledger-poster::after {
1223
+ display: none;
1056
1224
  }
1057
1225
 
1058
1226
  .home-project-inventory-media .ledger-poster img {
@@ -1069,6 +1237,14 @@ html[data-theme="light"] .home-hero-plate {
1069
1237
  color: var(--color-primary);
1070
1238
  }
1071
1239
 
1240
+ .home-project-inventory-mark--initial {
1241
+ font-family: var(--font-content-title);
1242
+ font-size: var(--type-card);
1243
+ font-weight: var(--weight-title);
1244
+ line-height: 1;
1245
+ color: var(--color-on-surface);
1246
+ }
1247
+
1072
1248
  .home-project-inventory-mark .material-symbols-outlined {
1073
1249
  font-size: 1.25rem;
1074
1250
  }
@@ -1076,8 +1252,11 @@ html[data-theme="light"] .home-hero-plate {
1076
1252
  .home-project-inventory-body {
1077
1253
  display: flex;
1078
1254
  flex-direction: column;
1079
- gap: var(--space-2xs);
1255
+ justify-content: center;
1256
+ gap: 0;
1257
+ flex: 1 1 0;
1080
1258
  min-width: 0;
1259
+ padding: 0;
1081
1260
  }
1082
1261
 
1083
1262
  .home-project-inventory-title {
@@ -1087,20 +1266,46 @@ html[data-theme="light"] .home-hero-plate {
1087
1266
  font-weight: var(--weight-title);
1088
1267
  font-synthesis: none;
1089
1268
  line-height: 1.25;
1269
+ color: var(--color-on-surface);
1090
1270
  }
1091
1271
 
1092
1272
  .home-project-inventory-title a {
1093
- color: var(--color-on-surface);
1273
+ color: inherit;
1094
1274
  text-decoration: none;
1095
1275
  }
1096
1276
 
1097
- .home-project-inventory-row:hover .home-project-inventory-title a,
1098
- .home-project-inventory-row:focus-within .home-project-inventory-title a {
1277
+ .home-project-inventory-row:hover .home-project-inventory-title,
1278
+ .home-project-inventory-row:focus-visible .home-project-inventory-title,
1279
+ .home-project-inventory-row.is-selected .home-project-inventory-title {
1280
+ color: var(--color-primary);
1281
+ }
1282
+
1283
+ .home-project-inventory-glyph {
1284
+ flex: 0 0 auto;
1285
+ display: inline-flex;
1286
+ align-items: center;
1287
+ justify-content: center;
1288
+ width: 1.75rem;
1289
+ height: 1.75rem;
1290
+ margin-left: auto;
1291
+ color: var(--color-on-surface-variant);
1292
+ font-size: 1.25rem;
1293
+ line-height: 1;
1294
+ }
1295
+
1296
+ .home-project-inventory-glyph--initial {
1297
+ font-family: var(--font-content-title);
1298
+ font-size: var(--type-subtitle);
1299
+ font-weight: var(--weight-title);
1300
+ }
1301
+
1302
+ .home-project-inventory-row.is-selected .home-project-inventory-glyph,
1303
+ .home-project-inventory-row:hover .home-project-inventory-glyph {
1099
1304
  color: var(--color-primary);
1100
1305
  }
1101
1306
 
1102
1307
  .home-project-inventory-row .ledger-meta {
1103
- margin: 0;
1308
+ display: none;
1104
1309
  }
1105
1310
 
1106
1311
 
@@ -24,7 +24,7 @@ module Pandorga
24
24
 
25
25
  gem "pandorga", "~> 1.3"
26
26
  # Local checkout: gem "pandorga", path: "../pandorga"
27
- # GitHub tag: gem "pandorga", github: "alexandrelheinen/pandorga", tag: "v1.3.1"
27
+ # GitHub tag: gem "pandorga", github: "alexandrelheinen/pandorga", tag: "v1.3.3"
28
28
  gem "csv"
29
29
  gem "base64"
30
30
  RUBY
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Pandorga
4
- VERSION = "1.3.1"
4
+ VERSION = "1.3.3"
5
5
  end
@@ -0,0 +1 @@
1
+ :root,[data-theme=light]{color-scheme:light;--primary: #1c5a7a;--secondary: #287445;--tertiary: #746f30;--background: #ffffff;--panel: #f4f4f4;--surface-high: #ebebeb;--surface-card: #ffffff;--on-surface: #000000;--on-surface-variant: #5e5d59;--outline: #5c5c5c;--outline-variant: #b8b8b8;--error: #ba1a1a;--scrollbar-track: var(--panel);--scrollbar-thumb: color-mix(in srgb, var(--outline-variant) 75%, var(--panel));--scrollbar-thumb-hover: color-mix(in srgb, var(--outline) 70%, var(--panel));--cubist-shard-opacity: 18%;--cubist-shard-opacity-strong: 26%;--shard-alpha: polygon(26% 0, 100% 0, 78% 100%, 0 68%);--shard-beta: polygon(0 0, 74% 18%, 100% 100%, 18% 84%);--font-body: "Newsreader", Georgia, serif;--font-display: "Newsreader", Georgia, serif;--font-title: "Cinzel Decorative", "Times New Roman", serif;--font-label: "Marcellus SC", "Newsreader", Georgia, serif;--font-mono: "Courier Prime", ui-monospace, monospace;--studio-font-size: 18px;--studio-type-display: 1.55rem;--studio-type-title: 1.15rem;--studio-type-body: 1rem;--studio-type-ui: .9rem;--studio-type-meta: .8rem;--studio-type-micro: .72rem;--studio-brand-title: calc(var(--studio-type-title) + 3pt);--studio-nav-label: calc(var(--studio-type-body) - .5pt);--studio-nav-item: var(--studio-type-body);--studio-ledger-title: var(--studio-type-body);--studio-ledger-meta: var(--studio-type-meta);--studio-list-control-height: 2.25rem;--studio-ledger-thumb-w: 4rem;--studio-ledger-thumb-h: 3rem;--studio-space-2xs: .25rem;--studio-space-xs: .4rem;--studio-space-sm: .65rem;--studio-space-md: .95rem;--studio-space-lg: 1.35rem;--studio-pane-pad: 1.15rem 1.35rem;--studio-editor-min-height: max(24rem, calc(100dvh - 7.5rem) )}[data-theme=dark]{color-scheme:dark;--primary: #a4c8da;--secondary: #95c8a6;--tertiary: #ddd8a8;--background: #0c0c0e;--panel: #141418;--surface-high: #26262b;--surface-card: #0c0c0e;--on-surface: #ffffff;--on-surface-variant: #b8b7ae;--outline: #93938d;--outline-variant: #45454c;--error: #ffb4ab;--scrollbar-track: var(--panel);--scrollbar-thumb: color-mix(in srgb, var(--outline-variant) 85%, var(--surface-high));--scrollbar-thumb-hover: color-mix(in srgb, var(--outline) 55%, var(--surface-high));--cubist-shard-opacity: 10%;--cubist-shard-opacity-strong: 14%}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;height:100%;background-color:var(--background);background-image:linear-gradient(color-mix(in srgb,var(--outline) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--outline) 4%,transparent) 1px,transparent 1px);background-size:1.25rem 1.25rem;background-attachment:fixed;color:var(--on-surface);font-family:var(--font-body);font-size:var(--studio-font-size);line-height:1.5;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid var(--scrollbar-track);background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);border:2px solid var(--scrollbar-track);background-clip:padding-box}*::-webkit-scrollbar-corner{background:var(--scrollbar-track)}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}#app{min-height:100vh;height:100%}.studio-shell{display:grid;grid-template-columns:16.5rem minmax(0,1fr);min-height:100vh;height:100%;background:transparent}.studio-nav{background:var(--panel);border-right:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);padding:var(--studio-space-md) var(--studio-space-sm);display:flex;flex-direction:column;gap:var(--studio-space-sm);overflow:auto}.studio-nav-bar{display:flex;flex-direction:column;gap:.35rem}.studio-nav-menu-toggle{display:none;width:100%;align-items:center;justify-content:space-between;gap:.5rem;margin:0;padding:.55rem .65rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);border-radius:0;background:var(--background);cursor:pointer;color:var(--on-surface);font:inherit;text-align:left}.studio-nav-menu-toggle:hover{background:var(--surface-high)}.studio-nav-menu-toggle .studio-nav-menu-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-label);font-size:var(--studio-nav-label);letter-spacing:.04em;font-weight:400}.studio-nav-menu-toggle .material-symbols-outlined{flex-shrink:0;font-size:1.25rem;line-height:1}.studio-nav-panel{display:flex;flex-direction:column;gap:var(--studio-space-xs);min-height:0}.studio-brand{display:grid;grid-template-columns:2.5rem minmax(0,1fr);align-items:center;column-gap:var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-xs) var(--studio-space-md);margin-bottom:var(--studio-space-xs);border-bottom:1px solid var(--outline-variant)}.studio-brand-copy{display:flex;flex-direction:column;justify-content:center;text-align:left;min-width:0}.studio-brand-name,.studio-brand strong{font-family:var(--font-title);font-size:var(--studio-brand-title);font-weight:400;font-synthesis:none;line-height:1.15;letter-spacing:.02em}button.studio-brand-home{width:100%;margin:0;border:0;border-radius:0;background:transparent;cursor:pointer;text-align:left;color:inherit;font:inherit}button.studio-brand-home:hover,button.studio-brand-home[aria-current=page]{background:var(--surface-high)}.studio-brand .studio-mark{display:block;width:2.5rem;height:2.5rem;justify-self:center;transform:translateY(.5px)}.studio-mark-svg{display:block;width:100%;height:100%}:root .studio-mark-primary,[data-theme=light] .studio-mark-primary{fill:#a4c8da}:root .studio-mark-secondary,[data-theme=light] .studio-mark-secondary{fill:#95c8a6}:root .studio-mark-tertiary,[data-theme=light] .studio-mark-tertiary{fill:#ddd8a8}[data-theme=dark] .studio-mark-primary{fill:#1c5a7a}[data-theme=dark] .studio-mark-secondary{fill:#287445}[data-theme=dark] .studio-mark-tertiary{fill:#746f30}.studio-mark-frame{fill:none;stroke:var(--on-surface-variant);stroke-width:1;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.auth-gate .studio-mark{width:2rem;height:2rem}.studio-nav-group{margin-top:var(--studio-space-2xs)}.studio-nav-group-toggle{width:100%;display:flex;align-items:center;gap:var(--studio-space-xs);margin:0;padding:var(--studio-space-sm) var(--studio-space-xs);border:0;border-radius:0;background:transparent;cursor:pointer;color:var(--on-surface-variant);text-align:left;font-family:var(--font-label);font-size:var(--studio-nav-label);text-transform:none;letter-spacing:.04em;font-weight:400}.studio-nav-group-toggle:hover{background:var(--surface-high);color:var(--on-surface)}.studio-nav-group-toggle .material-symbols-outlined{font-size:1.25rem;line-height:1;flex-shrink:0;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.studio-nav-group-toggle .nav-group-label{flex:1;min-width:0;font-family:var(--font-label);font-size:inherit;letter-spacing:inherit;border-bottom:1px solid var(--outline-variant);padding-bottom:.2rem;text-align:left}.studio-nav-group-items{display:flex;flex-direction:column;gap:.15rem;padding:.2rem 0 var(--studio-space-sm)}.studio-nav-group-items[hidden]{display:none}.studio-nav button.nav-item{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:var(--studio-space-sm);text-align:left;background:transparent;border:0;border-radius:0;padding:.4rem .5rem .4rem 1.7rem;cursor:pointer;color:var(--on-surface);font-family:var(--font-body);font-size:var(--studio-nav-item);line-height:1.35;letter-spacing:.01em}.studio-nav button.nav-item:hover,.studio-nav button.nav-item[aria-current=page]{background:var(--surface-high)}.nav-item-label{min-width:0}.nav-item-count{flex:0 0 auto;font-family:var(--font-body);font-size:var(--studio-type-meta);color:var(--on-surface-variant)}.studio-main{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;height:100%;overflow:hidden;background:transparent}.studio-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .4rem;padding:var(--studio-space-xs) var(--studio-space-md);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--on-surface-variant);background:var(--background)}.studio-crumb-sep{color:var(--outline-variant)}.studio-crumb.is-current{color:var(--on-surface);text-transform:none;letter-spacing:.02em}.studio-toolbar{display:flex;align-items:center;gap:var(--studio-space-sm);padding:var(--studio-space-xs) var(--studio-space-md);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--background);min-width:0}.studio-toolbar .status-pill{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-toolbar .spacer{flex:1 1 auto;min-width:0}.studio-toolbar .btn{flex-shrink:0;position:relative;z-index:1}.btn{border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:.25rem .6rem;cursor:pointer;min-height:var(--studio-list-control-height);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--studio-type-ui);letter-spacing:.01em}.btn-nav{gap:.15rem}.btn-nav-icon{font-size:1.25rem!important;line-height:1;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.btn:hover{background:var(--surface-high)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}[data-theme=dark] .btn-primary{color:#0f1a22}.btn-primary:hover{filter:brightness(1.05)}.btn:disabled{opacity:.5;cursor:not-allowed}.studio-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;height:100%;overflow:hidden;background:transparent}.studio-body.list-only{grid-template-columns:minmax(0,1fr)}.pane{min-width:0;min-height:0;overflow:auto;padding:var(--studio-pane-pad);display:flex;flex-direction:column;gap:0;background:transparent}.pane-preview{border-left:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--panel);min-height:0}.ledger-list{display:flex;flex-direction:column;gap:0;background:var(--panel);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);padding:var(--studio-space-xs)}.ledger-columns{display:none}.ledger-row{display:grid;grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr);gap:var(--studio-space-md);align-items:start;padding:var(--studio-space-md) var(--studio-space-md);margin:0 0 var(--studio-space-xs);border:1px solid color-mix(in srgb,var(--outline-variant) 60%,transparent);border-radius:0;cursor:pointer;background:var(--surface-card);text-align:left;width:100%;font:inherit;color:inherit}.ledger-row:last-child{margin-bottom:0}.ledger-row--writing{grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr)}.ledger-row:hover{background:var(--surface-high)}.ledger-copy{min-width:0;display:flex;flex-direction:column;gap:.4rem;padding-top:.1rem}.ledger-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--studio-space-xs) var(--studio-space-sm);min-width:0}.ledger-title{font-family:var(--font-body);font-size:var(--studio-ledger-title);font-weight:400;line-height:1.3;min-width:0}.ledger-status{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:5.25rem;flex:0 0 5.25rem;padding:.1rem .3rem;border:1px solid transparent;font-family:var(--font-mono);font-size:var(--studio-type-micro);font-weight:600;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;white-space:nowrap}.ledger-lang{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;padding:.1rem .3rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--surface-high);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--on-surface-variant);line-height:1.2}.ledger-taxonomy{display:none;flex-wrap:wrap;gap:.25rem;align-content:flex-start;min-width:0}.ledger-tag{display:inline-flex;align-items:center;padding:.08rem .35rem;border:1px solid color-mix(in srgb,var(--outline-variant) 65%,transparent);background:var(--background);font-family:var(--font-mono);font-size:var(--studio-type-micro);color:var(--on-surface-variant);line-height:1.25}.ledger-ops{display:none;align-items:center;justify-content:flex-end;gap:.2rem;font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);white-space:nowrap;padding-top:.1rem}.ledger-ops-icon{font-size:.95rem!important;line-height:1}.ledger-row--writing:hover .ledger-ops{color:var(--on-surface)}@media(min-width:720px){.ledger-columns{display:grid;grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr) minmax(6.5rem,10rem) 4.75rem;gap:var(--studio-space-sm);align-items:end;padding:var(--studio-space-xs) var(--studio-space-md);margin:0 0 var(--studio-space-2xs);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-variant);background:var(--panel);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.ledger-col-ops{text-align:right}.ledger-row--writing{grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr) minmax(6.5rem,10rem) 4.75rem;align-items:center}.ledger-row--writing .ledger-taxonomy{display:flex}.ledger-row--writing .ledger-ops{display:inline-flex}}.ledger-status--published{color:color-mix(in srgb,#1b6b3a 88%,var(--on-surface));background:color-mix(in srgb,#1b6b3a 14%,transparent);border-color:color-mix(in srgb,#1b6b3a 35%,transparent)}.ledger-status--draft{color:color-mix(in srgb,#a12828 90%,var(--on-surface));background:color-mix(in srgb,#a12828 14%,transparent);border-color:color-mix(in srgb,#a12828 35%,transparent)}.ledger-thumb{width:var(--studio-ledger-thumb-w);height:var(--studio-ledger-thumb-h);object-fit:cover;background:var(--surface-high);display:block;flex-shrink:0}.ledger-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:var(--on-surface-variant);border:1px dashed color-mix(in srgb,var(--outline-variant) 70%,transparent)}.ledger-thumb.placeholder .material-symbols-outlined{font-size:1.5rem;line-height:1;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.ledger-meta{margin-top:0;font-size:var(--studio-ledger-meta);color:var(--on-surface-variant);font-family:var(--font-mono);letter-spacing:.015em;line-height:1.4;word-break:break-word}.list-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--studio-space-xs);margin:0 0 var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.list-search-input{flex:1 1 14rem;min-width:10rem;height:var(--studio-list-control-height);box-sizing:border-box;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:0 var(--studio-space-sm);font-family:var(--font-mono);font-size:var(--studio-type-ui);line-height:1.2;letter-spacing:.01em}.list-sort-label{display:flex;align-items:center;gap:var(--studio-space-xs);flex:0 1 auto;margin:0;font-family:var(--font-mono);font-size:var(--studio-type-ui);color:var(--on-surface-variant);text-transform:none;letter-spacing:0}.list-sort-caption{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:var(--studio-type-micro);font-weight:600;white-space:nowrap}.list-sort-select,.list-page-size-select{height:var(--studio-list-control-height);box-sizing:border-box;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:0 var(--studio-space-sm);font-family:var(--font-mono);font-size:var(--studio-type-ui);min-width:10rem;max-width:100%}.list-page-size-select{min-width:4rem}.list-count{margin:0 0 var(--studio-space-xs);font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);min-height:1em}.list-pager{display:flex;align-items:center;justify-content:center;gap:var(--studio-space-sm);margin:var(--studio-space-md) 0 var(--studio-space-xs);flex-wrap:wrap}.list-pager-btn:disabled{opacity:.45;cursor:not-allowed}.list-pager-status{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);min-width:7rem;text-align:center}.pane-editor>.btn{flex-shrink:0;align-self:flex-start;margin-bottom:var(--studio-space-sm)}.list-register{display:flex;flex-direction:column;gap:var(--studio-space-sm);margin-bottom:var(--studio-space-lg);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.list-register-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:var(--studio-space-xs) var(--studio-space-sm);margin:0;font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.05em}.list-register-mark{width:5px;height:5px;background:var(--primary);flex:0 0 auto}.list-register-sep{color:var(--outline-variant)}.list-pane-title{font-family:var(--font-display);font-size:var(--studio-type-display);font-weight:600;line-height:1.15;margin:0 0 var(--studio-space-sm)}.list-register .list-pane-title{margin:0}.list-register-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--studio-space-xs) var(--studio-space-md);margin-top:var(--studio-space-2xs)}.list-pane-count{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);letter-spacing:.02em}.list-tag-filters{display:flex;flex-wrap:wrap;gap:var(--studio-space-2xs) var(--studio-space-xs);margin:0 0 var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.list-tag-chip{margin:0;padding:.15rem .45rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--on-surface-variant);cursor:pointer}.list-tag-chip:hover{background:var(--surface-high);color:var(--on-surface)}.list-tag-chip.is-active{border-color:color-mix(in srgb,var(--primary) 55%,var(--outline-variant));background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--on-surface)}.front-matter{flex:0 0 auto;margin:0 0 var(--studio-space-sm);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--background);max-width:52rem}.front-matter-summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--studio-space-xs) var(--studio-space-md);margin:0;padding:.45rem .65rem;cursor:pointer;list-style:none;font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant);-webkit-user-select:none;user-select:none}.front-matter-summary::-webkit-details-marker{display:none}.front-matter-summary:before{content:"▸";margin-right:.45rem;color:var(--outline-variant)}.front-matter[open]>.front-matter-summary:before{content:"▾"}.front-matter[open]>.front-matter-summary{border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}.front-matter-summary-label{color:var(--on-surface);font-weight:600}.front-matter-summary-hint{color:var(--outline-variant);letter-spacing:.04em}.front-matter>.form-grid{padding:.15rem .65rem .75rem;max-width:none}.editor-mast{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem 1.25rem;margin-bottom:.85rem;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.editor-mast-lead{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .75rem;min-width:0}.editor-mast-pills{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.editor-mast>.btn,.editor-mast-lead>.btn{flex:0 0 auto;align-self:center;margin-bottom:0}.editor-mast-lead>.btn-back{min-width:2.25rem;padding-left:.4rem;padding-right:.4rem;gap:0}.editor-mast-lead>.btn-back .btn-nav-icon{font-size:1.35rem!important}.editor-body-stats{display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto;gap:var(--studio-space-xs) var(--studio-space-sm);margin-top:var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--on-surface-variant)}.editor-body-stats-sep{color:var(--outline-variant)}.preview-pane-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--studio-space-xs) var(--studio-space-sm);margin:0 0 var(--studio-space-sm);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-variant)}.preview-pane-label{color:var(--on-surface-variant)}.preview-pane-sep{color:var(--outline-variant)}.preview-pane-meta{text-transform:none;letter-spacing:.02em}.preview-folio{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:.35rem;background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}.preview-folio>.preview-frame{flex:1 1 auto;min-height:12rem;border-color:color-mix(in srgb,var(--outline-variant) 40%,transparent)}.loading-msg{margin:1rem 0;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);color:var(--on-surface-variant);font-size:1rem}.list-empty{margin:1rem 0;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--panel);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);color:var(--on-surface-variant)}.list-error{margin:.75rem 0;padding:.85rem .9rem;border:1px solid color-mix(in srgb,var(--error) 45%,transparent);background:color-mix(in srgb,var(--error) 8%,var(--background))}.list-error-title{margin:0 0 .35rem;font-weight:600;color:var(--error)}.list-error-message{margin:0;font-family:var(--font-mono);font-size:.9rem;color:var(--on-surface);word-break:break-word}.list-error-detail{margin:.65rem 0 0;padding:.55rem .65rem;max-height:10rem;overflow:auto;font-family:var(--font-mono);font-size:.78rem;line-height:1.4;color:var(--on-surface-variant);background:var(--panel);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);white-space:pre-wrap}.studio-map{gap:var(--studio-space-lg);max-width:72rem;position:relative}.studio-shard{content:"";position:absolute;pointer-events:none;z-index:0;clip-path:var(--shard-alpha);opacity:var(--cubist-shard-opacity);background:color-mix(in srgb,var(--primary) 55%,var(--secondary))}.studio-shard--beta{clip-path:var(--shard-beta);background:color-mix(in srgb,var(--tertiary) 50%,var(--primary));opacity:var(--cubist-shard-opacity-strong)}.studio-map>.studio-shard--lead{width:min(18rem,42vw);height:min(14rem,32vw);top:-1rem;right:4%}.studio-map>.studio-shard--trail{width:min(12rem,28vw);height:min(10rem,22vw);bottom:8%;left:2%}@media(max-width:639px){.studio-shard{display:none}}.studio-map-header{display:flex;flex-direction:column;gap:var(--studio-space-xs);max-width:28rem;padding:var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);position:relative;z-index:1}.studio-map-board{display:flex;flex-direction:column;gap:var(--studio-space-lg);min-width:0;position:relative;z-index:1}.studio-map-kicker{margin:0;font-family:var(--font-label);font-size:var(--studio-type-meta);letter-spacing:.04em;color:var(--on-surface-variant)}.studio-map-header h1{font-family:var(--font-display);font-weight:600;font-size:var(--studio-type-display);margin:0;line-height:1.15}.studio-map-lede,.studio-map-header p{margin:0;color:var(--on-surface-variant);font-size:var(--studio-type-body);line-height:1.45}.studio-map-col{display:flex;flex-direction:column;gap:var(--studio-space-lg);min-width:0}.studio-map-group{display:flex;flex-direction:column;gap:var(--studio-space-sm);padding:var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.studio-map-group-head{display:flex;align-items:baseline;gap:var(--studio-space-sm)}.studio-map-group-icon{position:relative;top:.1rem;color:var(--primary);font-size:1.15rem;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.studio-map-group-label{margin:0;font-family:var(--font-label);font-size:var(--studio-type-title);font-weight:400;letter-spacing:.03em;line-height:1.2}.studio-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:var(--studio-space-sm)}.studio-map-card{display:flex;align-items:flex-start;gap:var(--studio-space-sm);text-align:left;margin:0;padding:var(--studio-space-sm) var(--studio-space-md);border:1px solid color-mix(in srgb,var(--outline-variant) 60%,transparent);background:var(--background);cursor:pointer;color:inherit;font:inherit;min-height:3.5rem}.studio-map-card:hover{background:var(--surface-high);border-color:color-mix(in srgb,var(--primary) 45%,var(--outline-variant))}.studio-map-card-icon{color:var(--on-surface-variant);font-size:1.25rem;line-height:1;margin-top:.1rem;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.studio-map-card-body{display:flex;flex-direction:column;gap:.25rem;min-width:0}.studio-map-card-title{font-family:var(--font-body);font-weight:600;font-size:var(--studio-type-body);line-height:1.3}.studio-map-card-meta{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);word-break:break-word}@media(min-width:56rem){.studio-map-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--studio-space-lg) var(--studio-space-md);align-items:start}}@media(min-width:72rem){.studio-map{display:grid;grid-template-columns:minmax(14rem,18rem) minmax(0,1fr);column-gap:clamp(1.5rem,3vw,2.75rem);row-gap:var(--studio-space-lg);align-items:start;max-width:none}.studio-map-header{position:sticky;top:var(--studio-space-md);max-width:none;padding-right:var(--studio-space-sm)}.studio-map-board{padding-left:var(--studio-space-md);border-left:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}}.form-grid{display:flex;flex-direction:column;gap:var(--studio-space-md);max-width:52rem;flex-shrink:0}.field label,.field .field-heading{display:block;font-family:var(--font-mono);font-size:var(--studio-type-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--studio-space-2xs)}.field--title{padding-bottom:var(--studio-space-md);border-bottom:1px solid var(--outline-variant)}.form-grid .field input:not([type=checkbox]):not([type=radio]),.form-grid .field select,.form-grid .field textarea{font-family:var(--font-mono);font-size:var(--studio-type-ui)}.field input,.field select,.field textarea{width:100%;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:.4rem .55rem}.field--boolean .field-checkbox,.field input.field-checkbox,.field input[type=checkbox]{width:auto;max-width:none;margin:0;padding:0;border:0;background:transparent;flex:0 0 auto;accent-color:var(--primary)}.field--boolean .field-check-row{display:flex;align-items:center;gap:.55rem;margin:0;text-transform:none;letter-spacing:normal;font-size:.92rem;color:var(--on-surface);cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.35}.field--boolean .field-check-text{line-height:1.35}.field textarea{min-height:6rem;line-height:1.45}.field .hint{margin:var(--studio-space-2xs) 0 0;font-size:var(--studio-type-meta);color:var(--on-surface-variant);line-height:1.35}.body-editor-stack{display:flex;flex-direction:column;flex:1 1 auto;min-height:var(--studio-editor-min-height);margin-top:.35rem;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);overflow:hidden}.editor-chrome{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.5rem;flex-shrink:0}.editor-chrome-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.editor-chrome-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.45rem}.editor-ai-proof{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.ai-proof-hint{margin:0;font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.02em;color:var(--on-surface-variant)}.ai-proof-hint[hidden]{display:none!important}.editor-mode-tabs{display:inline-flex;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--panel)}.editor-mode-tab{margin:0;border:0;border-radius:0;background:transparent;padding:.4rem .9rem;cursor:pointer;color:var(--on-surface-variant);font:inherit;font-size:.92rem}.editor-mode-tab+.editor-mode-tab{border-left:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent)}.editor-mode-tab[aria-selected=true]{background:var(--background);color:var(--on-surface);font-weight:600}.editor-mode-tab:hover{background:var(--surface-high);color:var(--on-surface)}.editor-insert{position:relative}.editor-insert-btn{display:inline-flex;align-items:center;gap:.3rem}.editor-insert-btn .material-symbols-outlined{font-size:1.1rem;line-height:1}.editor-insert-caret{font-size:1rem!important;opacity:.75}.editor-insert-menu{position:absolute;top:calc(100% + .25rem);left:0;z-index:20;min-width:12rem;max-height:16rem;overflow:auto;display:flex;flex-direction:column;gap:0;padding:.25rem;background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);box-shadow:0 8px 20px color-mix(in srgb,var(--on-surface) 12%,transparent)}.editor-insert-menu[hidden]{display:none!important}.editor-insert-item{display:flex;align-items:center;gap:.55rem;width:100%;margin:0;padding:.45rem .55rem;border:0;background:transparent;cursor:pointer;text-align:left;color:inherit;font:inherit;font-size:.92rem}.editor-insert-item:hover{background:var(--surface-high)}.editor-insert-icon{font-size:1.15rem;color:var(--on-surface-variant);font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.editor-format-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;padding:.35rem .4rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--panel)}.editor-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;margin:0;padding:0 .35rem;border:0;border-radius:0;background:transparent;cursor:pointer;color:var(--on-surface);font:inherit;font-size:.82rem;font-weight:600}.editor-toolbar-btn:hover{background:var(--surface-high)}.editor-toolbar-btn .material-symbols-outlined{font-size:1.15rem;line-height:1;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.editor-toolbar-sep{width:1px;align-self:stretch;margin:.2rem .3rem;background:color-mix(in srgb,var(--outline-variant) 70%,transparent)}.editor-toolbar-select{border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:.25rem .4rem;font-size:.82rem;max-width:8.5rem}.editor-pane-fill{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.editor-surface{flex:1 1 auto;width:100%;min-height:0;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);overflow:auto}.tiptap.editor-surface{padding:.85rem}.tiptap .ProseMirror{outline:none;min-height:12rem}.tiptap .ProseMirror p{margin:.4rem 0}textarea.body-source.editor-surface{display:block;resize:none;padding:.85rem;font-family:var(--font-mono);font-size:.8759rem;line-height:1.5;color:inherit;box-sizing:border-box;min-height:0;flex:1 1 auto;width:100%;overflow:auto}.editor-surface[hidden]{display:none!important}.liquid-block{border:1px dashed color-mix(in srgb,var(--outline) 50%,transparent);background:var(--panel);padding:.5rem .65rem;margin:.5rem 0;font-family:var(--font-mono);font-size:.86rem}.liquid-block--inline{display:inline;margin:0;padding:.05rem .35rem;white-space:normal}.liquid-block strong{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;color:var(--on-surface-variant)}.preview-frame{background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);padding:1rem;min-height:12rem;flex:1;overflow:auto;font-family:var(--font-body);font-size:.95rem;line-height:1.6;color:var(--on-surface)}.preview-frame figure{margin:1rem auto;text-align:center}.preview-frame img,.preview-frame video,.preview-frame iframe{max-width:100%}.preview-frame .studio-embed-placeholder{width:100%}.preview-frame .studio-embed-placeholder__box{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:inherit;height:100%;padding:1rem 1.1rem;border:1px dashed color-mix(in srgb,var(--outline) 55%,transparent);background:color-mix(in srgb,var(--surface-high) 88%,transparent);color:var(--on-surface-variant)}.preview-frame .studio-embed-placeholder__label{font-family:var(--font-mono);font-size:.8759rem;line-height:1.35;word-break:break-word;background:transparent;border:0;padding:0}.preview-frame .studio-mermaid,.preview-frame .mermaid{margin:1rem 0;overflow-x:auto}.preview-frame .studio-mermaid-fallback{margin:1rem 0}.preview-frame .studio-mermaid-fallback__pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:.8019rem;padding:.65rem .75rem;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:color-mix(in srgb,var(--surface-high) 90%,transparent);color:var(--on-surface-variant)}.preview-frame pre,.preview-frame pre code,.preview-frame :not(pre)>code{font-size:.8019rem}.preview-frame pre{overflow-x:auto;padding:.65rem .75rem;background:color-mix(in srgb,var(--surface-high) 90%,transparent);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}.preview-frame pre code{font-size:inherit;background:transparent;border:0;padding:0}.preview-frame :not(pre)>code{font-family:var(--font-mono);padding:.05em .3em;background:color-mix(in srgb,var(--surface-high) 90%,transparent);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.preview-frame .studio-ref-pill{display:inline-flex;align-items:center;vertical-align:middle;max-width:100%;margin:0 .12em;padding:.05em .4em;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);border-radius:0;background:color-mix(in srgb,var(--surface-high) 85%,transparent);color:var(--on-surface-variant);font-family:var(--font-mono);font-size:.85em;line-height:1.2;white-space:nowrap;box-sizing:border-box;transition:color .12s ease,background .12s ease,border-color .12s ease}.preview-frame .studio-ref-pill--ok{color:color-mix(in srgb,#1b6b3a 88%,var(--on-surface));background:color-mix(in srgb,#1b6b3a 14%,transparent);border-color:color-mix(in srgb,#1b6b3a 40%,transparent)}.preview-frame .studio-ref-pill--missing{color:color-mix(in srgb,#a12828 90%,var(--on-surface));background:color-mix(in srgb,#a12828 14%,transparent);border-color:color-mix(in srgb,#a12828 40%,transparent)}.preview-frame .studio-ref-pill--latex{color:var(--on-surface);background:color-mix(in srgb,var(--surface-high) 90%,transparent);border-color:color-mix(in srgb,var(--outline-variant) 65%,transparent);white-space:pre-wrap;word-break:break-word}.preview-frame .studio-ref-pill--display{display:flex;margin:.75rem auto;padding:.55rem .75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.preview-frame .article-note{background:color-mix(in srgb,var(--surface-high) 88%,transparent);border-left:3px solid color-mix(in srgb,var(--outline-variant) 80%,transparent);padding:.85rem 1.1rem;margin:1.1rem 0;font-size:.9em}.preview-frame .article-note>:first-child{margin-top:0}.preview-frame .article-note>:last-child{margin-bottom:0}.preview-frame :is(.sov-tweet,.article-tweet){max-width:34rem;margin:1rem 0 1.25rem;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:color-mix(in srgb,var(--surface-high) 70%,transparent)}.preview-frame :is(.sov-tweet,.article-tweet) p{margin:0}.preview-frame :is(.sov-tweet__head,.article-tweet__head){display:flex;align-items:center;gap:.5rem;margin-bottom:.7rem}.preview-frame :is(.sov-tweet__avatar,.article-tweet__avatar){width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--outline-variant) 35%,transparent);font-size:1.1rem}.preview-frame :is(.sov-tweet__id,.article-tweet__id){display:flex;flex-direction:column;line-height:1.2}.preview-frame :is(.sov-tweet__name,.article-tweet__name){font-weight:700;font-size:.92rem}.preview-frame :is(.sov-tweet__handle,.article-tweet__handle){font-size:.8rem;opacity:.75}.preview-frame :is(.sov-tweet__body,.article-tweet__body){margin:0 0 .45rem!important;line-height:1.55}.preview-frame :is(.sov-tweet__cite,.article-tweet__cite){margin:0 0 .45rem!important;font-size:.8rem;opacity:.8}.preview-frame :is(.sov-tweet__note,.article-tweet__note){margin:0!important;font-size:.85rem;opacity:.9}.preview-frame .studio-unknown-include{display:none}.preview-frame table{width:100%;border-collapse:collapse;margin:1rem 0 1.25rem;font-size:.9em;line-height:1.45;overflow-x:auto;display:block;max-width:100%}.preview-frame thead,.preview-frame tbody,.preview-frame tr{display:table;width:100%;table-layout:auto}.preview-frame th,.preview-frame td{border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);padding:.4rem .55rem;text-align:left;vertical-align:top}.preview-frame th{font-weight:600;background:color-mix(in srgb,var(--surface-high) 88%,transparent)}.preview-frame .sov-grid{display:grid;grid-template-columns:1fr;gap:.85rem;margin:1rem 0 1.35rem}@media(min-width:720px){.preview-frame .sov-grid{grid-template-columns:1fr 1fr}}.preview-frame .sov-card{border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);border-left:3px solid var(--sov-accent, var(--primary));background:color-mix(in srgb,var(--surface-high) 70%,transparent);padding:.65rem .8rem .75rem;display:flex;flex-direction:column;gap:.45rem;min-width:0}.preview-frame .sov-card p{margin:0}.preview-frame .sov-card__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.preview-frame .sov-card__flag{display:inline-flex;align-items:center;justify-content:center;height:1.5rem;padding:0 .35rem;border:1px solid color-mix(in srgb,var(--outline-variant) 65%,transparent);line-height:1}.preview-frame .sov-card__flag .fi{font-size:1rem}.preview-frame .sov-card__meta{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;opacity:.8;font-weight:600}.preview-frame .sov-card__lemma{font-style:italic;font-size:1.02rem;color:var(--on-surface)}.preview-frame .sov-card__def{margin:0;padding:.45rem .6rem;border-left:2px solid color-mix(in srgb,var(--sov-accent, var(--primary)) 55%,transparent);background:color-mix(in srgb,var(--sov-accent, var(--primary)) 8%,transparent);font-size:.86rem;line-height:1.6}.preview-frame .sov-card__note{font-size:.82rem;line-height:1.5;opacity:.9}.preview-frame .sov-card__cite{font-size:.76rem;line-height:1.45;opacity:.75}.preview-frame .sov-card__cite a{color:inherit;text-decoration:underline;text-underline-offset:2px}.preview-frame .sov-card--us{--sov-accent: #003494}.preview-frame .sov-card--gb{--sov-accent: #797300}.preview-frame .sov-card--br{--sov-accent: #118826}.preview-frame .sov-card--fr{--sov-accent: #9f020a}.editor-mode-tab--preview{display:none}.auth-gate{max-width:28rem;margin:4rem auto;padding:1.5rem;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--background)}.auth-gate h1{font-family:var(--font-display);font-size:1.6rem;margin:0 0 .5rem}.auth-gate--pending .pending-copy{font-family:var(--font-body);line-height:1.55;color:var(--on-surface);margin:0 0 1rem}.auth-gate--pending .pending-copy strong{font-weight:600}.auth-gate--pending .pending-signoff{font-family:var(--font-body);margin:0 0 1.25rem;color:var(--on-surface-variant)}.status-pill{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant)}.status-pill.error{color:var(--error)}.studio-error-banner{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;padding:.75rem var(--studio-space-md);border-bottom:1px solid color-mix(in srgb,var(--error) 45%,transparent);background:color-mix(in srgb,var(--error) 8%,var(--background))}.studio-error-message{margin:0;color:var(--on-surface);font-size:var(--studio-type-body);line-height:1.45;white-space:normal;overflow-wrap:anywhere}.studio-error-actions{display:flex;flex-wrap:wrap;gap:.45rem}@media(max-width:719px){.ledger-row--writing .ledger-title-row{flex-direction:column;align-items:flex-start;gap:.2rem}.ledger-row--writing .ledger-status{width:auto;flex:0 0 auto}.ledger-row--writing .ledger-taxonomy{display:flex;grid-column:2 / -1}.ledger-row--writing .ledger-ops{display:inline-flex;grid-column:1 / -1;justify-content:flex-end;padding-top:.45rem;margin-top:.15rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}}@media(max-width:960px){.studio-shell{grid-template-columns:1fr;height:auto;min-height:100vh}.ledger-row{align-items:start}.studio-nav{border-right:0;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);overflow:visible;gap:.35rem;padding:.65rem .75rem}.studio-nav-bar{flex-direction:row;align-items:center;gap:.5rem}.studio-nav-bar .studio-brand{flex:0 0 auto;width:auto;padding:.2rem .35rem;border-bottom:0}button.studio-brand-home{width:auto}.studio-nav-menu-toggle{display:inline-flex;flex:1 1 auto;min-width:0}.studio-nav-panel{display:none;margin-top:.35rem;padding-top:.35rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);max-height:min(70vh,28rem);overflow:auto}.studio-nav.is-open .studio-nav-panel{display:flex}.studio-main{height:auto;overflow:visible}.studio-body{grid-template-columns:1fr;height:auto;overflow:visible}.editor-mode-tab--preview{display:inline-flex}.studio-body.view-preview .pane-editor>.btn,.studio-body.view-preview .pane-editor .editor-mast,.studio-body.view-preview .pane-editor .front-matter,.studio-body.view-preview .pane-editor .form-grid,.studio-body.view-preview .pane-editor .editor-pane-fill,.studio-body.view-preview .pane-editor .editor-format-toolbar,.studio-body.view-preview .pane-editor .editor-chrome-row>:not(.editor-mode-tabs),.studio-body.view-preview .pane-editor .body-editor-stack>label{display:none}.studio-body.view-preview .pane-editor{padding-bottom:.35rem;overflow:visible;flex:0 0 auto}.studio-body.view-preview .pane-editor .editor-chrome{margin-bottom:0}.studio-body:not(.view-preview) .pane-preview{display:none}.studio-body.view-preview .pane-preview{display:flex;border-left:0;border-top:0;flex:1 1 auto}.pane-preview{border-left:0;border-top:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}}.pane-yaml .yaml-editor-header{margin:.65rem 0 .35rem}.yaml-editor-title{margin:0;font-family:var(--font-display);font-size:1.35rem;font-weight:500;color:var(--on-surface)}.yaml-editor-path{margin:.2rem 0 0;font-size:.82rem;color:var(--on-surface-variant);word-break:break-word}.yaml-chrome{margin-bottom:.65rem}.yaml-chrome-hint{margin:.45rem 0 0;font-size:.82rem;color:var(--on-surface-variant)}.yaml-editor-body{display:flex;flex-direction:column;gap:.85rem;flex:1 1 auto;min-height:0}.yaml-list,.yaml-object-list{display:flex;flex-direction:column;gap:.85rem}.yaml-list-item{border:1px solid color-mix(in srgb,var(--outline-variant) 65%,transparent);background:var(--panel);padding:.75rem .85rem}.yaml-list-item-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.yaml-list-item-index{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--on-surface-variant);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yaml-list-item-actions{display:flex;flex-wrap:wrap;gap:.35rem;flex-shrink:0}.yaml-list-btn{padding:.25rem .45rem;font-size:.78rem}.yaml-list-item-fields{max-width:none}.yaml-empty{margin:0;color:var(--on-surface-variant);font-size:.92rem}.yaml-source-stack{display:flex;flex-direction:column;flex:1 1 auto;min-height:var(--studio-editor-min-height)}textarea.yaml-source.editor-surface{display:block;resize:none;padding:.85rem;font-family:var(--font-mono);font-size:.95rem;line-height:1.45;color:inherit;box-sizing:border-box;min-height:var(--studio-editor-min-height);flex:1 1 auto;width:100%;overflow:auto;-moz-tab-size:2;tab-size:2}.yaml-preview-pre{margin:0;padding:.75rem .85rem;font-family:var(--font-mono);font-size:.86rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;background:color-mix(in srgb,var(--surface-high) 70%,transparent);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);overflow:auto}.yaml-preview-error{margin:0;color:var(--error);font-size:.9rem}.media-pane{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.25rem 1.5rem;overflow:auto;min-height:0}.media-header h1.media-title{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.55rem;font-weight:600}.media-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.82rem;color:var(--on-surface-variant)}.media-breadcrumb-sep{opacity:.55}.media-breadcrumb-link{margin:0;padding:.1rem .25rem;border:0;border-radius:0;background:transparent;color:var(--primary);cursor:pointer;font:inherit}.media-breadcrumb-link:hover{background:var(--surface-high)}.media-breadcrumb-current{color:var(--on-surface);font-weight:600}.media-hint{margin:.55rem 0 0;color:var(--on-surface-variant);font-size:.9rem;max-width:42rem}.media-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.media-toolbar .spacer{flex:1}.media-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.media-grid{display:flex;flex-direction:column;gap:.35rem;background:var(--panel);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);padding:var(--studio-space-xs)}.media-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center;padding:.25rem 0;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}.media-row:last-child{border-bottom:none}.media-row-main{display:flex;align-items:center;gap:.75rem;min-width:0;margin:0;padding:.35rem .4rem;border:0;border-radius:0;background:var(--surface-card);color:inherit;font:inherit;text-align:left;cursor:pointer}.media-row-main:hover{background:var(--surface-high)}.media-thumb{width:52px;height:52px;flex-shrink:0;display:grid;place-items:center;background:var(--surface-high);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);overflow:hidden}.media-thumb--image{padding:0}.media-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.media-thumb-icon{font-size:1.45rem;color:var(--on-surface-variant)}.media-row-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.media-row-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-row-meta{font-family:var(--font-mono);font-size:.78rem;color:var(--on-surface-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-copy-btn{flex-shrink:0;white-space:nowrap}.media-row-main--preview{cursor:zoom-in}.media-row-main--preview:focus-visible{outline:2px solid var(--primary);outline-offset:3px}html.figure-lightbox-open,body.figure-lightbox-open{overflow:hidden}.figure-lightbox{--motion-duration-fast: .15s;--motion-ease-out: ease-out;--motion-ease-default: ease;position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1.25rem;box-sizing:border-box}.figure-lightbox[hidden]{display:none}.figure-lightbox [hidden]{display:none!important}.figure-lightbox-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;cursor:zoom-out;animation:figure-lightbox-fade-in var(--motion-duration-fast) var(--motion-ease-out)}.figure-lightbox-panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;max-width:min(92vw,72rem);max-height:92vh;animation:figure-lightbox-scale-in var(--motion-duration-fast) var(--motion-ease-out)}.figure-lightbox-img,.figure-lightbox-video{display:block;max-width:92vw;max-height:85vh;width:auto;height:auto;object-fit:contain;background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);border-radius:0}.figure-lightbox-video{background:#000}.figure-lightbox-frame{display:block;width:min(92vw,72rem);height:min(78vh,52rem);border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);border-radius:0;background:var(--background)}.figure-lightbox-caption{margin:.75rem 0 0;max-width:min(40rem,90vw);font-family:var(--font-body);font-size:.95rem;line-height:1.45;text-align:center;color:#ffffffeb}.figure-lightbox-close{position:fixed;top:1rem;right:1rem;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid color-mix(in srgb,var(--outline-variant) 50%,transparent);border-radius:0;background:var(--background);color:var(--on-surface);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease-default),background-color var(--motion-duration-fast) var(--motion-ease-default)}.figure-lightbox-close:hover,.figure-lightbox-close:focus-visible{color:var(--primary);background:var(--surface-high);outline:none}.figure-lightbox-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.figure-lightbox-close .material-symbols-outlined{font-size:1.5rem;line-height:1}@keyframes figure-lightbox-fade-in{0%{opacity:0}to{opacity:1}}@keyframes figure-lightbox-scale-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.figure-lightbox-backdrop,.figure-lightbox-panel{animation:none}}
data/studio/index.html CHANGED
@@ -18,8 +18,8 @@
18
18
  rel="stylesheet"
19
19
  href="https://cdn.jsdelivr.net/gh/lipis/flag-icons@7.2.3/css/flag-icons.min.css"
20
20
  />
21
- <script type="module" crossorigin src="/studio/assets/index-Ch4YEv9g.js"></script>
22
- <link rel="stylesheet" crossorigin href="/studio/assets/index-B_j0pMD5.css">
21
+ <script type="module" crossorigin src="/studio/assets/index-DKqy76nz.js"></script>
22
+ <link rel="stylesheet" crossorigin href="/studio/assets/index-B2nCakLm.css">
23
23
  </head>
24
24
  <body>
25
25
  <div id="app"></div>
@@ -568,6 +568,9 @@ button.studio-brand-home[aria-current="page"] {
568
568
  display: flex;
569
569
  flex-direction: column;
570
570
  gap: 0;
571
+ background: var(--panel);
572
+ border: 1px solid color-mix(in srgb, var(--outline-variant) 55%, transparent);
573
+ padding: var(--studio-space-xs);
571
574
  }
572
575
 
573
576
  .ledger-columns {
@@ -584,13 +587,17 @@ button.studio-brand-home[aria-current="page"] {
584
587
  border: 1px solid color-mix(in srgb, var(--outline-variant) 60%, transparent);
585
588
  border-radius: 0;
586
589
  cursor: pointer;
587
- background: var(--background);
590
+ background: var(--surface-card);
588
591
  text-align: left;
589
592
  width: 100%;
590
593
  font: inherit;
591
594
  color: inherit;
592
595
  }
593
596
 
597
+ .ledger-row:last-child {
598
+ margin-bottom: 0;
599
+ }
600
+
594
601
  .ledger-row--writing {
595
602
  grid-template-columns: var(--studio-ledger-thumb-w) minmax(0, 1fr);
596
603
  }
@@ -712,7 +719,7 @@ button.studio-brand-home[aria-current="page"] {
712
719
  letter-spacing: 0.05em;
713
720
  text-transform: uppercase;
714
721
  color: var(--on-surface-variant);
715
- background: var(--background);
722
+ background: var(--panel);
716
723
  border: 1px solid color-mix(in srgb, var(--outline-variant) 45%, transparent);
717
724
  border-bottom: 1px solid color-mix(in srgb, var(--outline-variant) 45%, transparent);
718
725
  }
@@ -1154,7 +1161,7 @@ button.studio-brand-home[aria-current="page"] {
1154
1161
  .list-empty {
1155
1162
  margin: 1rem 0;
1156
1163
  padding: var(--studio-space-sm) var(--studio-space-md);
1157
- background: var(--background);
1164
+ background: var(--panel);
1158
1165
  border: 1px solid color-mix(in srgb, var(--outline-variant) 45%, transparent);
1159
1166
  color: var(--on-surface-variant);
1160
1167
  }
@@ -2576,8 +2583,9 @@ textarea.yaml-source.editor-surface {
2576
2583
  display: flex;
2577
2584
  flex-direction: column;
2578
2585
  gap: 0.35rem;
2579
- border-top: 1px solid color-mix(in srgb, var(--outline-variant) 55%, transparent);
2580
- padding-top: 0.5rem;
2586
+ background: var(--panel);
2587
+ border: 1px solid color-mix(in srgb, var(--outline-variant) 55%, transparent);
2588
+ padding: var(--studio-space-xs);
2581
2589
  }
2582
2590
 
2583
2591
  .media-row {
@@ -2589,6 +2597,10 @@ textarea.yaml-source.editor-surface {
2589
2597
  border-bottom: 1px solid color-mix(in srgb, var(--outline-variant) 35%, transparent);
2590
2598
  }
2591
2599
 
2600
+ .media-row:last-child {
2601
+ border-bottom: none;
2602
+ }
2603
+
2592
2604
  .media-row-main {
2593
2605
  display: flex;
2594
2606
  align-items: center;
@@ -2598,7 +2610,7 @@ textarea.yaml-source.editor-surface {
2598
2610
  padding: 0.35rem 0.4rem;
2599
2611
  border: 0;
2600
2612
  border-radius: 0;
2601
- background: transparent;
2613
+ background: var(--surface-card);
2602
2614
  color: inherit;
2603
2615
  font: inherit;
2604
2616
  text-align: left;
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pandorga
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Pandorga contributors
@@ -441,8 +441,8 @@ files:
441
441
  - studio-app/src/preview/render.js
442
442
  - studio-app/src/styles/studio.css
443
443
  - studio-app/vite.config.js
444
- - studio/assets/index-B_j0pMD5.css
445
- - studio/assets/index-Ch4YEv9g.js
444
+ - studio/assets/index-B2nCakLm.css
445
+ - studio/assets/index-DKqy76nz.js
446
446
  - studio/index.html
447
447
  - studio/schema.yml
448
448
  - templates/articles/README.md
@@ -1 +0,0 @@
1
- :root,[data-theme=light]{color-scheme:light;--primary: #1c5a7a;--secondary: #287445;--tertiary: #746f30;--background: #ffffff;--panel: #f4f4f4;--surface-high: #ebebeb;--surface-card: #ffffff;--on-surface: #000000;--on-surface-variant: #5e5d59;--outline: #5c5c5c;--outline-variant: #b8b8b8;--error: #ba1a1a;--scrollbar-track: var(--panel);--scrollbar-thumb: color-mix(in srgb, var(--outline-variant) 75%, var(--panel));--scrollbar-thumb-hover: color-mix(in srgb, var(--outline) 70%, var(--panel));--cubist-shard-opacity: 18%;--cubist-shard-opacity-strong: 26%;--shard-alpha: polygon(26% 0, 100% 0, 78% 100%, 0 68%);--shard-beta: polygon(0 0, 74% 18%, 100% 100%, 18% 84%);--font-body: "Newsreader", Georgia, serif;--font-display: "Newsreader", Georgia, serif;--font-title: "Cinzel Decorative", "Times New Roman", serif;--font-label: "Marcellus SC", "Newsreader", Georgia, serif;--font-mono: "Courier Prime", ui-monospace, monospace;--studio-font-size: 18px;--studio-type-display: 1.55rem;--studio-type-title: 1.15rem;--studio-type-body: 1rem;--studio-type-ui: .9rem;--studio-type-meta: .8rem;--studio-type-micro: .72rem;--studio-brand-title: calc(var(--studio-type-title) + 3pt);--studio-nav-label: calc(var(--studio-type-body) - .5pt);--studio-nav-item: var(--studio-type-body);--studio-ledger-title: var(--studio-type-body);--studio-ledger-meta: var(--studio-type-meta);--studio-list-control-height: 2.25rem;--studio-ledger-thumb-w: 4rem;--studio-ledger-thumb-h: 3rem;--studio-space-2xs: .25rem;--studio-space-xs: .4rem;--studio-space-sm: .65rem;--studio-space-md: .95rem;--studio-space-lg: 1.35rem;--studio-pane-pad: 1.15rem 1.35rem;--studio-editor-min-height: max(24rem, calc(100dvh - 7.5rem) )}[data-theme=dark]{color-scheme:dark;--primary: #a4c8da;--secondary: #95c8a6;--tertiary: #ddd8a8;--background: #0c0c0e;--panel: #141418;--surface-high: #26262b;--surface-card: #0c0c0e;--on-surface: #ffffff;--on-surface-variant: #b8b7ae;--outline: #93938d;--outline-variant: #45454c;--error: #ffb4ab;--scrollbar-track: var(--panel);--scrollbar-thumb: color-mix(in srgb, var(--outline-variant) 85%, var(--surface-high));--scrollbar-thumb-hover: color-mix(in srgb, var(--outline) 55%, var(--surface-high));--cubist-shard-opacity: 10%;--cubist-shard-opacity-strong: 14%}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;height:100%;background-color:var(--background);background-image:linear-gradient(color-mix(in srgb,var(--outline) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--outline) 4%,transparent) 1px,transparent 1px);background-size:1.25rem 1.25rem;background-attachment:fixed;color:var(--on-surface);font-family:var(--font-body);font-size:var(--studio-font-size);line-height:1.5;scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid var(--scrollbar-track);background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);border:2px solid var(--scrollbar-track);background-clip:padding-box}*::-webkit-scrollbar-corner{background:var(--scrollbar-track)}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--primary)}#app{min-height:100vh;height:100%}.studio-shell{display:grid;grid-template-columns:16.5rem minmax(0,1fr);min-height:100vh;height:100%;background:transparent}.studio-nav{background:var(--panel);border-right:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);padding:var(--studio-space-md) var(--studio-space-sm);display:flex;flex-direction:column;gap:var(--studio-space-sm);overflow:auto}.studio-nav-bar{display:flex;flex-direction:column;gap:.35rem}.studio-nav-menu-toggle{display:none;width:100%;align-items:center;justify-content:space-between;gap:.5rem;margin:0;padding:.55rem .65rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);border-radius:0;background:var(--background);cursor:pointer;color:var(--on-surface);font:inherit;text-align:left}.studio-nav-menu-toggle:hover{background:var(--surface-high)}.studio-nav-menu-toggle .studio-nav-menu-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-label);font-size:var(--studio-nav-label);letter-spacing:.04em;font-weight:400}.studio-nav-menu-toggle .material-symbols-outlined{flex-shrink:0;font-size:1.25rem;line-height:1}.studio-nav-panel{display:flex;flex-direction:column;gap:var(--studio-space-xs);min-height:0}.studio-brand{display:grid;grid-template-columns:2.5rem minmax(0,1fr);align-items:center;column-gap:var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-xs) var(--studio-space-md);margin-bottom:var(--studio-space-xs);border-bottom:1px solid var(--outline-variant)}.studio-brand-copy{display:flex;flex-direction:column;justify-content:center;text-align:left;min-width:0}.studio-brand-name,.studio-brand strong{font-family:var(--font-title);font-size:var(--studio-brand-title);font-weight:400;font-synthesis:none;line-height:1.15;letter-spacing:.02em}button.studio-brand-home{width:100%;margin:0;border:0;border-radius:0;background:transparent;cursor:pointer;text-align:left;color:inherit;font:inherit}button.studio-brand-home:hover,button.studio-brand-home[aria-current=page]{background:var(--surface-high)}.studio-brand .studio-mark{display:block;width:2.5rem;height:2.5rem;justify-self:center;transform:translateY(.5px)}.studio-mark-svg{display:block;width:100%;height:100%}:root .studio-mark-primary,[data-theme=light] .studio-mark-primary{fill:#a4c8da}:root .studio-mark-secondary,[data-theme=light] .studio-mark-secondary{fill:#95c8a6}:root .studio-mark-tertiary,[data-theme=light] .studio-mark-tertiary{fill:#ddd8a8}[data-theme=dark] .studio-mark-primary{fill:#1c5a7a}[data-theme=dark] .studio-mark-secondary{fill:#287445}[data-theme=dark] .studio-mark-tertiary{fill:#746f30}.studio-mark-frame{fill:none;stroke:var(--on-surface-variant);stroke-width:1;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.auth-gate .studio-mark{width:2rem;height:2rem}.studio-nav-group{margin-top:var(--studio-space-2xs)}.studio-nav-group-toggle{width:100%;display:flex;align-items:center;gap:var(--studio-space-xs);margin:0;padding:var(--studio-space-sm) var(--studio-space-xs);border:0;border-radius:0;background:transparent;cursor:pointer;color:var(--on-surface-variant);text-align:left;font-family:var(--font-label);font-size:var(--studio-nav-label);text-transform:none;letter-spacing:.04em;font-weight:400}.studio-nav-group-toggle:hover{background:var(--surface-high);color:var(--on-surface)}.studio-nav-group-toggle .material-symbols-outlined{font-size:1.25rem;line-height:1;flex-shrink:0;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.studio-nav-group-toggle .nav-group-label{flex:1;min-width:0;font-family:var(--font-label);font-size:inherit;letter-spacing:inherit;border-bottom:1px solid var(--outline-variant);padding-bottom:.2rem;text-align:left}.studio-nav-group-items{display:flex;flex-direction:column;gap:.15rem;padding:.2rem 0 var(--studio-space-sm)}.studio-nav-group-items[hidden]{display:none}.studio-nav button.nav-item{width:100%;display:flex;align-items:baseline;justify-content:space-between;gap:var(--studio-space-sm);text-align:left;background:transparent;border:0;border-radius:0;padding:.4rem .5rem .4rem 1.7rem;cursor:pointer;color:var(--on-surface);font-family:var(--font-body);font-size:var(--studio-nav-item);line-height:1.35;letter-spacing:.01em}.studio-nav button.nav-item:hover,.studio-nav button.nav-item[aria-current=page]{background:var(--surface-high)}.nav-item-label{min-width:0}.nav-item-count{flex:0 0 auto;font-family:var(--font-body);font-size:var(--studio-type-meta);color:var(--on-surface-variant)}.studio-main{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;min-height:0;height:100%;overflow:hidden;background:transparent}.studio-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .4rem;padding:var(--studio-space-xs) var(--studio-space-md);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--on-surface-variant);background:var(--background)}.studio-crumb-sep{color:var(--outline-variant)}.studio-crumb.is-current{color:var(--on-surface);text-transform:none;letter-spacing:.02em}.studio-toolbar{display:flex;align-items:center;gap:var(--studio-space-sm);padding:var(--studio-space-xs) var(--studio-space-md);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--background);min-width:0}.studio-toolbar .status-pill{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-toolbar .spacer{flex:1 1 auto;min-width:0}.studio-toolbar .btn{flex-shrink:0;position:relative;z-index:1}.btn{border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:.25rem .6rem;cursor:pointer;min-height:var(--studio-list-control-height);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--studio-type-ui);letter-spacing:.01em}.btn-nav{gap:.15rem}.btn-nav-icon{font-size:1.25rem!important;line-height:1;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.btn:hover{background:var(--surface-high)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}[data-theme=dark] .btn-primary{color:#0f1a22}.btn-primary:hover{filter:brightness(1.05)}.btn:disabled{opacity:.5;cursor:not-allowed}.studio-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;height:100%;overflow:hidden;background:transparent}.studio-body.list-only{grid-template-columns:minmax(0,1fr)}.pane{min-width:0;min-height:0;overflow:auto;padding:var(--studio-pane-pad);display:flex;flex-direction:column;gap:0;background:transparent}.pane-preview{border-left:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--panel);min-height:0}.ledger-list{display:flex;flex-direction:column;gap:0}.ledger-columns{display:none}.ledger-row{display:grid;grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr);gap:var(--studio-space-md);align-items:start;padding:var(--studio-space-md) var(--studio-space-md);margin:0 0 var(--studio-space-xs);border:1px solid color-mix(in srgb,var(--outline-variant) 60%,transparent);border-radius:0;cursor:pointer;background:var(--background);text-align:left;width:100%;font:inherit;color:inherit}.ledger-row--writing{grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr)}.ledger-row:hover{background:var(--surface-high)}.ledger-copy{min-width:0;display:flex;flex-direction:column;gap:.4rem;padding-top:.1rem}.ledger-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--studio-space-xs) var(--studio-space-sm);min-width:0}.ledger-title{font-family:var(--font-body);font-size:var(--studio-ledger-title);font-weight:400;line-height:1.3;min-width:0}.ledger-status{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:5.25rem;flex:0 0 5.25rem;padding:.1rem .3rem;border:1px solid transparent;font-family:var(--font-mono);font-size:var(--studio-type-micro);font-weight:600;letter-spacing:.04em;text-transform:uppercase;line-height:1.2;white-space:nowrap}.ledger-lang{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;padding:.1rem .3rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--surface-high);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--on-surface-variant);line-height:1.2}.ledger-taxonomy{display:none;flex-wrap:wrap;gap:.25rem;align-content:flex-start;min-width:0}.ledger-tag{display:inline-flex;align-items:center;padding:.08rem .35rem;border:1px solid color-mix(in srgb,var(--outline-variant) 65%,transparent);background:var(--background);font-family:var(--font-mono);font-size:var(--studio-type-micro);color:var(--on-surface-variant);line-height:1.25}.ledger-ops{display:none;align-items:center;justify-content:flex-end;gap:.2rem;font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);white-space:nowrap;padding-top:.1rem}.ledger-ops-icon{font-size:.95rem!important;line-height:1}.ledger-row--writing:hover .ledger-ops{color:var(--on-surface)}@media(min-width:720px){.ledger-columns{display:grid;grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr) minmax(6.5rem,10rem) 4.75rem;gap:var(--studio-space-sm);align-items:end;padding:var(--studio-space-xs) var(--studio-space-md);margin:0 0 var(--studio-space-2xs);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-variant);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.ledger-col-ops{text-align:right}.ledger-row--writing{grid-template-columns:var(--studio-ledger-thumb-w) minmax(0,1fr) minmax(6.5rem,10rem) 4.75rem;align-items:center}.ledger-row--writing .ledger-taxonomy{display:flex}.ledger-row--writing .ledger-ops{display:inline-flex}}.ledger-status--published{color:color-mix(in srgb,#1b6b3a 88%,var(--on-surface));background:color-mix(in srgb,#1b6b3a 14%,transparent);border-color:color-mix(in srgb,#1b6b3a 35%,transparent)}.ledger-status--draft{color:color-mix(in srgb,#a12828 90%,var(--on-surface));background:color-mix(in srgb,#a12828 14%,transparent);border-color:color-mix(in srgb,#a12828 35%,transparent)}.ledger-thumb{width:var(--studio-ledger-thumb-w);height:var(--studio-ledger-thumb-h);object-fit:cover;background:var(--surface-high);display:block;flex-shrink:0}.ledger-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:var(--on-surface-variant);border:1px dashed color-mix(in srgb,var(--outline-variant) 70%,transparent)}.ledger-thumb.placeholder .material-symbols-outlined{font-size:1.5rem;line-height:1;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.ledger-meta{margin-top:0;font-size:var(--studio-ledger-meta);color:var(--on-surface-variant);font-family:var(--font-mono);letter-spacing:.015em;line-height:1.4;word-break:break-word}.list-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--studio-space-xs);margin:0 0 var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.list-search-input{flex:1 1 14rem;min-width:10rem;height:var(--studio-list-control-height);box-sizing:border-box;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:0 var(--studio-space-sm);font-family:var(--font-mono);font-size:var(--studio-type-ui);line-height:1.2;letter-spacing:.01em}.list-sort-label{display:flex;align-items:center;gap:var(--studio-space-xs);flex:0 1 auto;margin:0;font-family:var(--font-mono);font-size:var(--studio-type-ui);color:var(--on-surface-variant);text-transform:none;letter-spacing:0}.list-sort-caption{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;font-size:var(--studio-type-micro);font-weight:600;white-space:nowrap}.list-sort-select,.list-page-size-select{height:var(--studio-list-control-height);box-sizing:border-box;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:0 var(--studio-space-sm);font-family:var(--font-mono);font-size:var(--studio-type-ui);min-width:10rem;max-width:100%}.list-page-size-select{min-width:4rem}.list-count{margin:0 0 var(--studio-space-xs);font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);min-height:1em}.list-pager{display:flex;align-items:center;justify-content:center;gap:var(--studio-space-sm);margin:var(--studio-space-md) 0 var(--studio-space-xs);flex-wrap:wrap}.list-pager-btn:disabled{opacity:.45;cursor:not-allowed}.list-pager-status{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);min-width:7rem;text-align:center}.pane-editor>.btn{flex-shrink:0;align-self:flex-start;margin-bottom:var(--studio-space-sm)}.list-register{display:flex;flex-direction:column;gap:var(--studio-space-sm);margin-bottom:var(--studio-space-lg);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.list-register-kicker{display:flex;flex-wrap:wrap;align-items:center;gap:var(--studio-space-xs) var(--studio-space-sm);margin:0;font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);text-transform:uppercase;letter-spacing:.05em}.list-register-mark{width:5px;height:5px;background:var(--primary);flex:0 0 auto}.list-register-sep{color:var(--outline-variant)}.list-pane-title{font-family:var(--font-display);font-size:var(--studio-type-display);font-weight:600;line-height:1.15;margin:0 0 var(--studio-space-sm)}.list-register .list-pane-title{margin:0}.list-register-title-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--studio-space-xs) var(--studio-space-md);margin-top:var(--studio-space-2xs)}.list-pane-count{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);letter-spacing:.02em}.list-tag-filters{display:flex;flex-wrap:wrap;gap:var(--studio-space-2xs) var(--studio-space-xs);margin:0 0 var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.list-tag-chip{margin:0;padding:.15rem .45rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--on-surface-variant);cursor:pointer}.list-tag-chip:hover{background:var(--surface-high);color:var(--on-surface)}.list-tag-chip.is-active{border-color:color-mix(in srgb,var(--primary) 55%,var(--outline-variant));background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--on-surface)}.front-matter{flex:0 0 auto;margin:0 0 var(--studio-space-sm);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--background);max-width:52rem}.front-matter-summary{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--studio-space-xs) var(--studio-space-md);margin:0;padding:.45rem .65rem;cursor:pointer;list-style:none;font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.06em;text-transform:uppercase;color:var(--on-surface-variant);-webkit-user-select:none;user-select:none}.front-matter-summary::-webkit-details-marker{display:none}.front-matter-summary:before{content:"▸";margin-right:.45rem;color:var(--outline-variant)}.front-matter[open]>.front-matter-summary:before{content:"▾"}.front-matter[open]>.front-matter-summary{border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}.front-matter-summary-label{color:var(--on-surface);font-weight:600}.front-matter-summary-hint{color:var(--outline-variant);letter-spacing:.04em}.front-matter>.form-grid{padding:.15rem .65rem .75rem;max-width:none}.editor-mast{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.65rem 1.25rem;margin-bottom:.85rem;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.editor-mast-lead{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem .75rem;min-width:0}.editor-mast-pills{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.editor-mast>.btn,.editor-mast-lead>.btn{flex:0 0 auto;align-self:center;margin-bottom:0}.editor-mast-lead>.btn-back{min-width:2.25rem;padding-left:.4rem;padding-right:.4rem;gap:0}.editor-mast-lead>.btn-back .btn-nav-icon{font-size:1.35rem!important}.editor-body-stats{display:flex;flex-wrap:wrap;align-items:center;flex:0 0 auto;gap:var(--studio-space-xs) var(--studio-space-sm);margin-top:var(--studio-space-sm);padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.03em;text-transform:uppercase;color:var(--on-surface-variant)}.editor-body-stats-sep{color:var(--outline-variant)}.preview-pane-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--studio-space-xs) var(--studio-space-sm);margin:0 0 var(--studio-space-sm);font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.05em;text-transform:uppercase;color:var(--on-surface-variant)}.preview-pane-label{color:var(--on-surface-variant)}.preview-pane-sep{color:var(--outline-variant)}.preview-pane-meta{text-transform:none;letter-spacing:.02em}.preview-folio{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding:.35rem;background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}.preview-folio>.preview-frame{flex:1 1 auto;min-height:12rem;border-color:color-mix(in srgb,var(--outline-variant) 40%,transparent)}.loading-msg{margin:1rem 0;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);color:var(--on-surface-variant);font-size:1rem}.list-empty{margin:1rem 0;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);color:var(--on-surface-variant)}.list-error{margin:.75rem 0;padding:.85rem .9rem;border:1px solid color-mix(in srgb,var(--error) 45%,transparent);background:color-mix(in srgb,var(--error) 8%,var(--background))}.list-error-title{margin:0 0 .35rem;font-weight:600;color:var(--error)}.list-error-message{margin:0;font-family:var(--font-mono);font-size:.9rem;color:var(--on-surface);word-break:break-word}.list-error-detail{margin:.65rem 0 0;padding:.55rem .65rem;max-height:10rem;overflow:auto;font-family:var(--font-mono);font-size:.78rem;line-height:1.4;color:var(--on-surface-variant);background:var(--panel);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);white-space:pre-wrap}.studio-map{gap:var(--studio-space-lg);max-width:72rem;position:relative}.studio-shard{content:"";position:absolute;pointer-events:none;z-index:0;clip-path:var(--shard-alpha);opacity:var(--cubist-shard-opacity);background:color-mix(in srgb,var(--primary) 55%,var(--secondary))}.studio-shard--beta{clip-path:var(--shard-beta);background:color-mix(in srgb,var(--tertiary) 50%,var(--primary));opacity:var(--cubist-shard-opacity-strong)}.studio-map>.studio-shard--lead{width:min(18rem,42vw);height:min(14rem,32vw);top:-1rem;right:4%}.studio-map>.studio-shard--trail{width:min(12rem,28vw);height:min(10rem,22vw);bottom:8%;left:2%}@media(max-width:639px){.studio-shard{display:none}}.studio-map-header{display:flex;flex-direction:column;gap:var(--studio-space-xs);max-width:28rem;padding:var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);position:relative;z-index:1}.studio-map-board{display:flex;flex-direction:column;gap:var(--studio-space-lg);min-width:0;position:relative;z-index:1}.studio-map-kicker{margin:0;font-family:var(--font-label);font-size:var(--studio-type-meta);letter-spacing:.04em;color:var(--on-surface-variant)}.studio-map-header h1{font-family:var(--font-display);font-weight:600;font-size:var(--studio-type-display);margin:0;line-height:1.15}.studio-map-lede,.studio-map-header p{margin:0;color:var(--on-surface-variant);font-size:var(--studio-type-body);line-height:1.45}.studio-map-col{display:flex;flex-direction:column;gap:var(--studio-space-lg);min-width:0}.studio-map-group{display:flex;flex-direction:column;gap:var(--studio-space-sm);padding:var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.studio-map-group-head{display:flex;align-items:baseline;gap:var(--studio-space-sm)}.studio-map-group-icon{position:relative;top:.1rem;color:var(--primary);font-size:1.15rem;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.studio-map-group-label{margin:0;font-family:var(--font-label);font-size:var(--studio-type-title);font-weight:400;letter-spacing:.03em;line-height:1.2}.studio-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:var(--studio-space-sm)}.studio-map-card{display:flex;align-items:flex-start;gap:var(--studio-space-sm);text-align:left;margin:0;padding:var(--studio-space-sm) var(--studio-space-md);border:1px solid color-mix(in srgb,var(--outline-variant) 60%,transparent);background:var(--background);cursor:pointer;color:inherit;font:inherit;min-height:3.5rem}.studio-map-card:hover{background:var(--surface-high);border-color:color-mix(in srgb,var(--primary) 45%,var(--outline-variant))}.studio-map-card-icon{color:var(--on-surface-variant);font-size:1.25rem;line-height:1;margin-top:.1rem;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.studio-map-card-body{display:flex;flex-direction:column;gap:.25rem;min-width:0}.studio-map-card-title{font-family:var(--font-body);font-weight:600;font-size:var(--studio-type-body);line-height:1.3}.studio-map-card-meta{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant);word-break:break-word}@media(min-width:56rem){.studio-map-board{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--studio-space-lg) var(--studio-space-md);align-items:start}}@media(min-width:72rem){.studio-map{display:grid;grid-template-columns:minmax(14rem,18rem) minmax(0,1fr);column-gap:clamp(1.5rem,3vw,2.75rem);row-gap:var(--studio-space-lg);align-items:start;max-width:none}.studio-map-header{position:sticky;top:var(--studio-space-md);max-width:none;padding-right:var(--studio-space-sm)}.studio-map-board{padding-left:var(--studio-space-md);border-left:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}}.form-grid{display:flex;flex-direction:column;gap:var(--studio-space-md);max-width:52rem;flex-shrink:0}.field label,.field .field-heading{display:block;font-family:var(--font-mono);font-size:var(--studio-type-micro);text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-variant);margin-bottom:var(--studio-space-2xs)}.field--title{padding-bottom:var(--studio-space-md);border-bottom:1px solid var(--outline-variant)}.form-grid .field input:not([type=checkbox]):not([type=radio]),.form-grid .field select,.form-grid .field textarea{font-family:var(--font-mono);font-size:var(--studio-type-ui)}.field input,.field select,.field textarea{width:100%;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:.4rem .55rem}.field--boolean .field-checkbox,.field input.field-checkbox,.field input[type=checkbox]{width:auto;max-width:none;margin:0;padding:0;border:0;background:transparent;flex:0 0 auto;accent-color:var(--primary)}.field--boolean .field-check-row{display:flex;align-items:center;gap:.55rem;margin:0;text-transform:none;letter-spacing:normal;font-size:.92rem;color:var(--on-surface);cursor:pointer;-webkit-user-select:none;user-select:none;line-height:1.35}.field--boolean .field-check-text{line-height:1.35}.field textarea{min-height:6rem;line-height:1.45}.field .hint{margin:var(--studio-space-2xs) 0 0;font-size:var(--studio-type-meta);color:var(--on-surface-variant);line-height:1.35}.body-editor-stack{display:flex;flex-direction:column;flex:1 1 auto;min-height:var(--studio-editor-min-height);margin-top:.35rem;padding:var(--studio-space-sm) var(--studio-space-md);background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent);overflow:hidden}.editor-chrome{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.5rem;flex-shrink:0}.editor-chrome-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.editor-chrome-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.45rem}.editor-ai-proof{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.ai-proof-hint{margin:0;font-family:var(--font-mono);font-size:var(--studio-type-micro);letter-spacing:.02em;color:var(--on-surface-variant)}.ai-proof-hint[hidden]{display:none!important}.editor-mode-tabs{display:inline-flex;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--panel)}.editor-mode-tab{margin:0;border:0;border-radius:0;background:transparent;padding:.4rem .9rem;cursor:pointer;color:var(--on-surface-variant);font:inherit;font-size:.92rem}.editor-mode-tab+.editor-mode-tab{border-left:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent)}.editor-mode-tab[aria-selected=true]{background:var(--background);color:var(--on-surface);font-weight:600}.editor-mode-tab:hover{background:var(--surface-high);color:var(--on-surface)}.editor-insert{position:relative}.editor-insert-btn{display:inline-flex;align-items:center;gap:.3rem}.editor-insert-btn .material-symbols-outlined{font-size:1.1rem;line-height:1}.editor-insert-caret{font-size:1rem!important;opacity:.75}.editor-insert-menu{position:absolute;top:calc(100% + .25rem);left:0;z-index:20;min-width:12rem;max-height:16rem;overflow:auto;display:flex;flex-direction:column;gap:0;padding:.25rem;background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);box-shadow:0 8px 20px color-mix(in srgb,var(--on-surface) 12%,transparent)}.editor-insert-menu[hidden]{display:none!important}.editor-insert-item{display:flex;align-items:center;gap:.55rem;width:100%;margin:0;padding:.45rem .55rem;border:0;background:transparent;cursor:pointer;text-align:left;color:inherit;font:inherit;font-size:.92rem}.editor-insert-item:hover{background:var(--surface-high)}.editor-insert-icon{font-size:1.15rem;color:var(--on-surface-variant);font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24}.editor-format-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;padding:.35rem .4rem;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--panel)}.editor-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;margin:0;padding:0 .35rem;border:0;border-radius:0;background:transparent;cursor:pointer;color:var(--on-surface);font:inherit;font-size:.82rem;font-weight:600}.editor-toolbar-btn:hover{background:var(--surface-high)}.editor-toolbar-btn .material-symbols-outlined{font-size:1.15rem;line-height:1;font-variation-settings:"FILL" 0,"wght" 500,"GRAD" 0,"opsz" 24}.editor-toolbar-sep{width:1px;align-self:stretch;margin:.2rem .3rem;background:color-mix(in srgb,var(--outline-variant) 70%,transparent)}.editor-toolbar-select{border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);padding:.25rem .4rem;font-size:.82rem;max-width:8.5rem}.editor-pane-fill{position:relative;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.editor-surface{flex:1 1 auto;width:100%;min-height:0;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);background:var(--background);overflow:auto}.tiptap.editor-surface{padding:.85rem}.tiptap .ProseMirror{outline:none;min-height:12rem}.tiptap .ProseMirror p{margin:.4rem 0}textarea.body-source.editor-surface{display:block;resize:none;padding:.85rem;font-family:var(--font-mono);font-size:calc(.95rem - 1pt);line-height:1.5;color:inherit;box-sizing:border-box;min-height:0;flex:1 1 auto;width:100%;overflow:auto}.editor-surface[hidden]{display:none!important}.liquid-block{border:1px dashed color-mix(in srgb,var(--outline) 50%,transparent);background:var(--panel);padding:.5rem .65rem;margin:.5rem 0;font-family:var(--font-mono);font-size:.86rem}.liquid-block--inline{display:inline;margin:0;padding:.05rem .35rem;white-space:normal}.liquid-block strong{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.05em;font-size:.78rem;color:var(--on-surface-variant)}.preview-frame{background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);padding:1rem;min-height:12rem;flex:1;overflow:auto;font-family:var(--font-body);font-size:.95rem;line-height:1.6;color:var(--on-surface)}.preview-frame figure{margin:1rem auto;text-align:center}.preview-frame img,.preview-frame video,.preview-frame iframe{max-width:100%}.preview-frame .studio-embed-placeholder{width:100%}.preview-frame .studio-embed-placeholder__box{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;min-height:inherit;height:100%;padding:1rem 1.1rem;border:1px dashed color-mix(in srgb,var(--outline) 55%,transparent);background:color-mix(in srgb,var(--surface-high) 88%,transparent);color:var(--on-surface-variant)}.preview-frame .studio-embed-placeholder__label{font-family:var(--font-mono);font-size:calc(1em - 1pt);line-height:1.35;word-break:break-word;background:transparent;border:0;padding:0}.preview-frame .studio-mermaid,.preview-frame .mermaid{margin:1rem 0;overflow-x:auto}.preview-frame .studio-mermaid-fallback{margin:1rem 0}.preview-frame .studio-mermaid-fallback__pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:calc(1em - 2pt);padding:.65rem .75rem;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:color-mix(in srgb,var(--surface-high) 90%,transparent);color:var(--on-surface-variant)}.preview-frame pre,.preview-frame pre code,.preview-frame :not(pre)>code{font-size:calc(1em - 2pt)}.preview-frame pre{overflow-x:auto;padding:.65rem .75rem;background:color-mix(in srgb,var(--surface-high) 90%,transparent);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}.preview-frame pre code{font-size:inherit;background:transparent;border:0;padding:0}.preview-frame :not(pre)>code{font-family:var(--font-mono);padding:.05em .3em;background:color-mix(in srgb,var(--surface-high) 90%,transparent);border:1px solid color-mix(in srgb,var(--outline-variant) 45%,transparent)}.preview-frame .studio-ref-pill{display:inline-flex;align-items:center;vertical-align:middle;max-width:100%;margin:0 .12em;padding:.05em .4em;border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);border-radius:0;background:color-mix(in srgb,var(--surface-high) 85%,transparent);color:var(--on-surface-variant);font-family:var(--font-mono);font-size:.85em;line-height:1.2;white-space:nowrap;box-sizing:border-box;transition:color .12s ease,background .12s ease,border-color .12s ease}.preview-frame .studio-ref-pill--ok{color:color-mix(in srgb,#1b6b3a 88%,var(--on-surface));background:color-mix(in srgb,#1b6b3a 14%,transparent);border-color:color-mix(in srgb,#1b6b3a 40%,transparent)}.preview-frame .studio-ref-pill--missing{color:color-mix(in srgb,#a12828 90%,var(--on-surface));background:color-mix(in srgb,#a12828 14%,transparent);border-color:color-mix(in srgb,#a12828 40%,transparent)}.preview-frame .studio-ref-pill--latex{color:var(--on-surface);background:color-mix(in srgb,var(--surface-high) 90%,transparent);border-color:color-mix(in srgb,var(--outline-variant) 65%,transparent);white-space:pre-wrap;word-break:break-word}.preview-frame .studio-ref-pill--display{display:flex;margin:.75rem auto;padding:.55rem .75rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word}.preview-frame .article-note{background:color-mix(in srgb,var(--surface-high) 88%,transparent);border-left:3px solid color-mix(in srgb,var(--outline-variant) 80%,transparent);padding:.85rem 1.1rem;margin:1.1rem 0;font-size:.9em}.preview-frame .article-note>:first-child{margin-top:0}.preview-frame .article-note>:last-child{margin-bottom:0}.preview-frame :is(.sov-tweet,.article-tweet){max-width:34rem;margin:1rem 0 1.25rem;padding:.85rem 1rem;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:color-mix(in srgb,var(--surface-high) 70%,transparent)}.preview-frame :is(.sov-tweet,.article-tweet) p{margin:0}.preview-frame :is(.sov-tweet__head,.article-tweet__head){display:flex;align-items:center;gap:.5rem;margin-bottom:.7rem}.preview-frame :is(.sov-tweet__avatar,.article-tweet__avatar){width:2rem;height:2rem;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--outline-variant) 35%,transparent);font-size:1.1rem}.preview-frame :is(.sov-tweet__id,.article-tweet__id){display:flex;flex-direction:column;line-height:1.2}.preview-frame :is(.sov-tweet__name,.article-tweet__name){font-weight:700;font-size:.92rem}.preview-frame :is(.sov-tweet__handle,.article-tweet__handle){font-size:.8rem;opacity:.75}.preview-frame :is(.sov-tweet__body,.article-tweet__body){margin:0 0 .45rem!important;line-height:1.55}.preview-frame :is(.sov-tweet__cite,.article-tweet__cite){margin:0 0 .45rem!important;font-size:.8rem;opacity:.8}.preview-frame :is(.sov-tweet__note,.article-tweet__note){margin:0!important;font-size:.85rem;opacity:.9}.preview-frame .studio-unknown-include{display:none}.preview-frame table{width:100%;border-collapse:collapse;margin:1rem 0 1.25rem;font-size:.9em;line-height:1.45;overflow-x:auto;display:block;max-width:100%}.preview-frame thead,.preview-frame tbody,.preview-frame tr{display:table;width:100%;table-layout:auto}.preview-frame th,.preview-frame td{border:1px solid color-mix(in srgb,var(--outline-variant) 70%,transparent);padding:.4rem .55rem;text-align:left;vertical-align:top}.preview-frame th{font-weight:600;background:color-mix(in srgb,var(--surface-high) 88%,transparent)}.preview-frame .sov-grid{display:grid;grid-template-columns:1fr;gap:.85rem;margin:1rem 0 1.35rem}@media(min-width:720px){.preview-frame .sov-grid{grid-template-columns:1fr 1fr}}.preview-frame .sov-card{border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);border-left:3px solid var(--sov-accent, var(--primary));background:color-mix(in srgb,var(--surface-high) 70%,transparent);padding:.65rem .8rem .75rem;display:flex;flex-direction:column;gap:.45rem;min-width:0}.preview-frame .sov-card p{margin:0}.preview-frame .sov-card__head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.preview-frame .sov-card__flag{display:inline-flex;align-items:center;justify-content:center;height:1.5rem;padding:0 .35rem;border:1px solid color-mix(in srgb,var(--outline-variant) 65%,transparent);line-height:1}.preview-frame .sov-card__flag .fi{font-size:1rem}.preview-frame .sov-card__meta{font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;opacity:.8;font-weight:600}.preview-frame .sov-card__lemma{font-style:italic;font-size:1.02rem;color:var(--on-surface)}.preview-frame .sov-card__def{margin:0;padding:.45rem .6rem;border-left:2px solid color-mix(in srgb,var(--sov-accent, var(--primary)) 55%,transparent);background:color-mix(in srgb,var(--sov-accent, var(--primary)) 8%,transparent);font-size:.86rem;line-height:1.6}.preview-frame .sov-card__note{font-size:.82rem;line-height:1.5;opacity:.9}.preview-frame .sov-card__cite{font-size:.76rem;line-height:1.45;opacity:.75}.preview-frame .sov-card__cite a{color:inherit;text-decoration:underline;text-underline-offset:2px}.preview-frame .sov-card--us{--sov-accent: #003494}.preview-frame .sov-card--gb{--sov-accent: #797300}.preview-frame .sov-card--br{--sov-accent: #118826}.preview-frame .sov-card--fr{--sov-accent: #9f020a}.editor-mode-tab--preview{display:none}.auth-gate{max-width:28rem;margin:4rem auto;padding:1.5rem;border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);background:var(--background)}.auth-gate h1{font-family:var(--font-display);font-size:1.6rem;margin:0 0 .5rem}.auth-gate--pending .pending-copy{font-family:var(--font-body);line-height:1.55;color:var(--on-surface);margin:0 0 1rem}.auth-gate--pending .pending-copy strong{font-weight:600}.auth-gate--pending .pending-signoff{font-family:var(--font-body);margin:0 0 1.25rem;color:var(--on-surface-variant)}.status-pill{font-family:var(--font-mono);font-size:var(--studio-type-meta);color:var(--on-surface-variant)}.status-pill.error{color:var(--error)}.studio-error-banner{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;padding:.75rem var(--studio-space-md);border-bottom:1px solid color-mix(in srgb,var(--error) 45%,transparent);background:color-mix(in srgb,var(--error) 8%,var(--background))}.studio-error-message{margin:0;color:var(--on-surface);font-size:var(--studio-type-body);line-height:1.45;white-space:normal;overflow-wrap:anywhere}.studio-error-actions{display:flex;flex-wrap:wrap;gap:.45rem}@media(max-width:719px){.ledger-row--writing .ledger-title-row{flex-direction:column;align-items:flex-start;gap:.2rem}.ledger-row--writing .ledger-status{width:auto;flex:0 0 auto}.ledger-row--writing .ledger-taxonomy{display:flex;grid-column:2 / -1}.ledger-row--writing .ledger-ops{display:inline-flex;grid-column:1 / -1;justify-content:flex-end;padding-top:.45rem;margin-top:.15rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}}@media(max-width:960px){.studio-shell{grid-template-columns:1fr;height:auto;min-height:100vh}.ledger-row{align-items:start}.studio-nav{border-right:0;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);overflow:visible;gap:.35rem;padding:.65rem .75rem}.studio-nav-bar{flex-direction:row;align-items:center;gap:.5rem}.studio-nav-bar .studio-brand{flex:0 0 auto;width:auto;padding:.2rem .35rem;border-bottom:0}button.studio-brand-home{width:auto}.studio-nav-menu-toggle{display:inline-flex;flex:1 1 auto;min-width:0}.studio-nav-panel{display:none;margin-top:.35rem;padding-top:.35rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);max-height:min(70vh,28rem);overflow:auto}.studio-nav.is-open .studio-nav-panel{display:flex}.studio-main{height:auto;overflow:visible}.studio-body{grid-template-columns:1fr;height:auto;overflow:visible}.editor-mode-tab--preview{display:inline-flex}.studio-body.view-preview .pane-editor>.btn,.studio-body.view-preview .pane-editor .editor-mast,.studio-body.view-preview .pane-editor .front-matter,.studio-body.view-preview .pane-editor .form-grid,.studio-body.view-preview .pane-editor .editor-pane-fill,.studio-body.view-preview .pane-editor .editor-format-toolbar,.studio-body.view-preview .pane-editor .editor-chrome-row>:not(.editor-mode-tabs),.studio-body.view-preview .pane-editor .body-editor-stack>label{display:none}.studio-body.view-preview .pane-editor{padding-bottom:.35rem;overflow:visible;flex:0 0 auto}.studio-body.view-preview .pane-editor .editor-chrome{margin-bottom:0}.studio-body:not(.view-preview) .pane-preview{display:none}.studio-body.view-preview .pane-preview{display:flex;border-left:0;border-top:0;flex:1 1 auto}.pane-preview{border-left:0;border-top:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent)}}.pane-yaml .yaml-editor-header{margin:.65rem 0 .35rem}.yaml-editor-title{margin:0;font-family:var(--font-display);font-size:1.35rem;font-weight:500;color:var(--on-surface)}.yaml-editor-path{margin:.2rem 0 0;font-size:.82rem;color:var(--on-surface-variant);word-break:break-word}.yaml-chrome{margin-bottom:.65rem}.yaml-chrome-hint{margin:.45rem 0 0;font-size:.82rem;color:var(--on-surface-variant)}.yaml-editor-body{display:flex;flex-direction:column;gap:.85rem;flex:1 1 auto;min-height:0}.yaml-list,.yaml-object-list{display:flex;flex-direction:column;gap:.85rem}.yaml-list-item{border:1px solid color-mix(in srgb,var(--outline-variant) 65%,transparent);background:var(--panel);padding:.75rem .85rem}.yaml-list-item-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.yaml-list-item-index{font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--on-surface-variant);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yaml-list-item-actions{display:flex;flex-wrap:wrap;gap:.35rem;flex-shrink:0}.yaml-list-btn{padding:.25rem .45rem;font-size:.78rem}.yaml-list-item-fields{max-width:none}.yaml-empty{margin:0;color:var(--on-surface-variant);font-size:.92rem}.yaml-source-stack{display:flex;flex-direction:column;flex:1 1 auto;min-height:var(--studio-editor-min-height)}textarea.yaml-source.editor-surface{display:block;resize:none;padding:.85rem;font-family:var(--font-mono);font-size:.95rem;line-height:1.45;color:inherit;box-sizing:border-box;min-height:var(--studio-editor-min-height);flex:1 1 auto;width:100%;overflow:auto;-moz-tab-size:2;tab-size:2}.yaml-preview-pre{margin:0;padding:.75rem .85rem;font-family:var(--font-mono);font-size:.86rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;background:color-mix(in srgb,var(--surface-high) 70%,transparent);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);overflow:auto}.yaml-preview-error{margin:0;color:var(--error);font-size:.9rem}.media-pane{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.25rem 1.5rem;overflow:auto;min-height:0}.media-header h1.media-title{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.55rem;font-weight:600}.media-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-family:var(--font-mono);font-size:.82rem;color:var(--on-surface-variant)}.media-breadcrumb-sep{opacity:.55}.media-breadcrumb-link{margin:0;padding:.1rem .25rem;border:0;border-radius:0;background:transparent;color:var(--primary);cursor:pointer;font:inherit}.media-breadcrumb-link:hover{background:var(--surface-high)}.media-breadcrumb-current{color:var(--on-surface);font-weight:600}.media-hint{margin:.55rem 0 0;color:var(--on-surface-variant);font-size:.9rem;max-width:42rem}.media-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}.media-toolbar .spacer{flex:1}.media-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.media-grid{display:flex;flex-direction:column;gap:.35rem;border-top:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);padding-top:.5rem}.media-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center;padding:.25rem 0;border-bottom:1px solid color-mix(in srgb,var(--outline-variant) 35%,transparent)}.media-row-main{display:flex;align-items:center;gap:.75rem;min-width:0;margin:0;padding:.35rem .4rem;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.media-row-main:hover{background:var(--surface-high)}.media-thumb{width:52px;height:52px;flex-shrink:0;display:grid;place-items:center;background:var(--surface-high);border:1px solid color-mix(in srgb,var(--outline-variant) 55%,transparent);overflow:hidden}.media-thumb--image{padding:0}.media-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.media-thumb-icon{font-size:1.45rem;color:var(--on-surface-variant)}.media-row-body{display:flex;flex-direction:column;gap:.15rem;min-width:0}.media-row-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-row-meta{font-family:var(--font-mono);font-size:.78rem;color:var(--on-surface-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-copy-btn{flex-shrink:0;white-space:nowrap}.media-row-main--preview{cursor:zoom-in}.media-row-main--preview:focus-visible{outline:2px solid var(--primary);outline-offset:3px}html.figure-lightbox-open,body.figure-lightbox-open{overflow:hidden}.figure-lightbox{--motion-duration-fast: .15s;--motion-ease-out: ease-out;--motion-ease-default: ease;position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1.25rem;box-sizing:border-box}.figure-lightbox[hidden]{display:none}.figure-lightbox [hidden]{display:none!important}.figure-lightbox-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9;cursor:zoom-out;animation:figure-lightbox-fade-in var(--motion-duration-fast) var(--motion-ease-out)}.figure-lightbox-panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;max-width:min(92vw,72rem);max-height:92vh;animation:figure-lightbox-scale-in var(--motion-duration-fast) var(--motion-ease-out)}.figure-lightbox-img,.figure-lightbox-video{display:block;max-width:92vw;max-height:85vh;width:auto;height:auto;object-fit:contain;background:var(--background);border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);border-radius:0}.figure-lightbox-video{background:#000}.figure-lightbox-frame{display:block;width:min(92vw,72rem);height:min(78vh,52rem);border:1px solid color-mix(in srgb,var(--outline-variant) 40%,transparent);border-radius:0;background:var(--background)}.figure-lightbox-caption{margin:.75rem 0 0;max-width:min(40rem,90vw);font-family:var(--font-body);font-size:.95rem;line-height:1.45;text-align:center;color:#ffffffeb}.figure-lightbox-close{position:fixed;top:1rem;right:1rem;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid color-mix(in srgb,var(--outline-variant) 50%,transparent);border-radius:0;background:var(--background);color:var(--on-surface);cursor:pointer;transition:color var(--motion-duration-fast) var(--motion-ease-default),background-color var(--motion-duration-fast) var(--motion-ease-default)}.figure-lightbox-close:hover,.figure-lightbox-close:focus-visible{color:var(--primary);background:var(--surface-high);outline:none}.figure-lightbox-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.figure-lightbox-close .material-symbols-outlined{font-size:1.5rem;line-height:1}@keyframes figure-lightbox-fade-in{0%{opacity:0}to{opacity:1}}@keyframes figure-lightbox-scale-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.figure-lightbox-backdrop,.figure-lightbox-panel{animation:none}}