@lapis-notes/lapis-plugin-docs 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +188 -2
  2. package/dist/docs/DocsBlockMarkdownEditor.svelte +37 -0
  3. package/dist/docs/DocsBlockMarkdownEditor.svelte.d.ts +13 -0
  4. package/dist/docs/DocsBlockRefPicker.svelte +75 -0
  5. package/dist/docs/DocsBlockRefPicker.svelte.d.ts +11 -0
  6. package/dist/docs/DocsBookEditor.svelte +141 -0
  7. package/dist/docs/DocsBookEditor.svelte.d.ts +10 -0
  8. package/dist/docs/DocsBookNavigation.svelte +838 -0
  9. package/dist/docs/DocsBookNavigation.svelte.d.ts +11 -0
  10. package/dist/docs/DocsBooksColumn.svelte +82 -0
  11. package/dist/docs/DocsBooksColumn.svelte.d.ts +10 -0
  12. package/dist/docs/DocsCardBackMatter.svelte +32 -0
  13. package/dist/docs/DocsCardBackMatter.svelte.d.ts +10 -0
  14. package/dist/docs/DocsCardBlockExtra.svelte +43 -0
  15. package/dist/docs/DocsCardBlockExtra.svelte.d.ts +9 -0
  16. package/dist/docs/DocsCardPreviewFlip.svelte +143 -0
  17. package/dist/docs/DocsCardPreviewFlip.svelte.d.ts +17 -0
  18. package/dist/docs/DocsCardPreviewStack.svelte +135 -0
  19. package/dist/docs/DocsCardPreviewStack.svelte.d.ts +13 -0
  20. package/dist/docs/DocsCardPrompt.svelte +33 -0
  21. package/dist/docs/DocsCardPrompt.svelte.d.ts +8 -0
  22. package/dist/docs/DocsCardReviewAnswer.svelte +45 -0
  23. package/dist/docs/DocsCardReviewAnswer.svelte.d.ts +8 -0
  24. package/dist/docs/DocsCardTagChips.svelte +19 -0
  25. package/dist/docs/DocsCardTagChips.svelte.d.ts +7 -0
  26. package/dist/docs/DocsCardsPanel.svelte +232 -0
  27. package/dist/docs/DocsCardsPanel.svelte.d.ts +17 -0
  28. package/dist/docs/DocsCardsReview.css +1050 -0
  29. package/dist/docs/DocsChapterFooter.svelte +248 -0
  30. package/dist/docs/DocsChapterFooter.svelte.d.ts +11 -0
  31. package/dist/docs/DocsChapterScrollRing.svelte +101 -0
  32. package/dist/docs/DocsChapterScrollRing.svelte.d.ts +6 -0
  33. package/dist/docs/DocsDisplayPanel.css +627 -0
  34. package/dist/docs/DocsDisplayPanel.svelte +78 -0
  35. package/dist/docs/DocsDisplayPanel.svelte.d.ts +16 -0
  36. package/dist/docs/DocsEditorPanel.css +325 -0
  37. package/dist/docs/DocsEditorPanel.svelte +570 -0
  38. package/dist/docs/DocsEditorPanel.svelte.d.ts +22 -0
  39. package/dist/docs/DocsFlipCard.svelte +68 -0
  40. package/dist/docs/DocsFlipCard.svelte.d.ts +8 -0
  41. package/dist/docs/DocsFolderDirectoryList.svelte +206 -0
  42. package/dist/docs/DocsFolderDirectoryList.svelte.d.ts +14 -0
  43. package/dist/docs/DocsFolderPanel.css +357 -0
  44. package/dist/docs/DocsFolderPanel.svelte +102 -0
  45. package/dist/docs/DocsFolderPanel.svelte.d.ts +17 -0
  46. package/dist/docs/DocsLinksPanel.css +61 -0
  47. package/dist/docs/DocsLinksPanel.svelte +55 -0
  48. package/dist/docs/DocsLinksPanel.svelte.d.ts +11 -0
  49. package/dist/docs/DocsMarkdownField.svelte +93 -0
  50. package/dist/docs/DocsMarkdownField.svelte.d.ts +11 -0
  51. package/dist/docs/DocsMarkdownPreview.svelte +278 -0
  52. package/dist/docs/DocsMarkdownPreview.svelte.d.ts +17 -0
  53. package/dist/docs/DocsReviewPanel.svelte +63 -0
  54. package/dist/docs/DocsReviewPanel.svelte.d.ts +11 -0
  55. package/dist/docs/DocsRichBlock.svelte +291 -0
  56. package/dist/docs/DocsRichBlock.svelte.d.ts +13 -0
  57. package/dist/docs/DocsRichDisplay.svelte +316 -0
  58. package/dist/docs/DocsRichDisplay.svelte.d.ts +14 -0
  59. package/dist/docs/DocsSlidesPreview.css +243 -0
  60. package/dist/docs/DocsSlidesPreview.svelte +206 -0
  61. package/dist/docs/DocsSlidesPreview.svelte.d.ts +10 -0
  62. package/dist/docs/DocsWorkspace.css +570 -0
  63. package/dist/docs/DocsWorkspace.svelte +831 -0
  64. package/dist/docs/DocsWorkspace.svelte.d.ts +48 -0
  65. package/dist/docs/DocsWorkspaceToolbar.svelte +211 -0
  66. package/dist/docs/DocsWorkspaceToolbar.svelte.d.ts +27 -0
  67. package/dist/docs/candidates/ChoiceMenu.svelte +114 -0
  68. package/dist/docs/candidates/ChoiceMenu.svelte.d.ts +10 -0
  69. package/dist/docs/candidates/FlipCardDeck.svelte +800 -0
  70. package/dist/docs/candidates/FlipCardDeck.svelte.d.ts +36 -0
  71. package/dist/docs/candidates/MarkdownFloatingToc.svelte +313 -0
  72. package/dist/docs/candidates/MarkdownFloatingToc.svelte.d.ts +14 -0
  73. package/dist/docs/candidates/SearchableChoicePicker.css +161 -0
  74. package/dist/docs/candidates/SearchableChoicePicker.svelte +208 -0
  75. package/dist/docs/candidates/SearchableChoicePicker.svelte.d.ts +19 -0
  76. package/dist/docs/candidates/StructuredTable.svelte +98 -0
  77. package/dist/docs/candidates/StructuredTable.svelte.d.ts +8 -0
  78. package/dist/docs/candidates/StructuredTableEditor.svelte +374 -0
  79. package/dist/docs/candidates/StructuredTableEditor.svelte.d.ts +12 -0
  80. package/dist/docs/candidates/TagEditor.svelte +31 -0
  81. package/dist/docs/candidates/TagEditor.svelte.d.ts +14 -0
  82. package/dist/docs/candidates/WorkspaceHistoryControls.svelte +112 -0
  83. package/dist/docs/candidates/WorkspaceHistoryControls.svelte.d.ts +8 -0
  84. package/dist/docs/candidates/markdown-floating-toc.css +151 -0
  85. package/dist/docs/candidates/markdown-floating-toc.d.ts +1 -0
  86. package/dist/docs/candidates/markdown-floating-toc.js +1 -0
  87. package/dist/docs/docs-anki-import.d.ts +34 -0
  88. package/dist/docs/docs-anki-import.js +516 -0
  89. package/dist/docs/docs-book-view-model.d.ts +9 -0
  90. package/dist/docs/docs-book-view-model.js +71 -0
  91. package/dist/docs/docs-card-answer-markdown.d.ts +1 -0
  92. package/dist/docs/docs-card-answer-markdown.js +63 -0
  93. package/dist/docs/docs-card-display.d.ts +10 -0
  94. package/dist/docs/docs-card-display.js +18 -0
  95. package/dist/docs/docs-display-focus.d.ts +7 -0
  96. package/dist/docs/docs-display-focus.js +42 -0
  97. package/dist/docs/docs-document-surface.d.ts +7 -0
  98. package/dist/docs/docs-document-surface.js +25 -0
  99. package/dist/docs/docs-folder-directory.d.ts +21 -0
  100. package/dist/docs/docs-folder-directory.js +56 -0
  101. package/dist/docs/docs-link-mode.d.ts +16 -0
  102. package/dist/docs/docs-link-mode.js +94 -0
  103. package/dist/docs/docs-workspace-helpers.d.ts +25 -0
  104. package/dist/docs/docs-workspace-helpers.js +195 -0
  105. package/dist/docs/docs.tokens.css +13 -0
  106. package/dist/docs/import-anki-package.d.ts +10 -0
  107. package/dist/docs/import-anki-package.js +30 -0
  108. package/dist/docs/lapis-markdown-extensions.d.ts +9 -0
  109. package/dist/docs/lapis-markdown-extensions.js +128 -0
  110. package/dist/docs/pin-reading-chrome.d.ts +4 -0
  111. package/dist/docs/pin-reading-chrome.js +32 -0
  112. package/dist/docs/sidebar/DocsFoldersSidebar.svelte +134 -0
  113. package/dist/docs/sidebar/DocsFoldersSidebar.svelte.d.ts +15 -0
  114. package/dist/docs/sidebar/DocsLinksSidebar.svelte +105 -0
  115. package/dist/docs/sidebar/DocsLinksSidebar.svelte.d.ts +11 -0
  116. package/dist/docs/sidebar/DocsSidebar.css +346 -0
  117. package/dist/docs/sidebar/DocsSidebar.svelte +430 -0
  118. package/dist/docs/sidebar/DocsSidebar.svelte.d.ts +18 -0
  119. package/dist/docs/sidebar/DocsSidebarHost.svelte +139 -0
  120. package/dist/docs/sidebar/DocsSidebarHost.svelte.d.ts +12 -0
  121. package/dist/docs/sidebar/DocsTagsSidebar.svelte +176 -0
  122. package/dist/docs/sidebar/DocsTagsSidebar.svelte.d.ts +12 -0
  123. package/dist/docs/sidebar/docs-book-note-tree.d.ts +23 -0
  124. package/dist/docs/sidebar/docs-book-note-tree.js +88 -0
  125. package/dist/docs/sidebar/docs-note-sort.d.ts +26 -0
  126. package/dist/docs/sidebar/docs-note-sort.js +54 -0
  127. package/dist/docs/sidebar/docs-sidebar-filters.d.ts +17 -0
  128. package/dist/docs/sidebar/docs-sidebar-filters.js +74 -0
  129. package/dist/docs/sidebar/docs-sidebar-ui-storage.d.ts +24 -0
  130. package/dist/docs/sidebar/docs-sidebar-ui-storage.js +87 -0
  131. package/dist/docs/sidebar/docs-source-folder-tree.d.ts +16 -0
  132. package/dist/docs/sidebar/docs-source-folder-tree.js +143 -0
  133. package/dist/docs/sidebar/docs-tag-tree.d.ts +17 -0
  134. package/dist/docs/sidebar/docs-tag-tree.js +84 -0
  135. package/dist/docs-cards-view.d.ts +18 -0
  136. package/dist/docs-cards-view.js +52 -0
  137. package/dist/docs-document-view.d.ts +24 -0
  138. package/dist/docs-document-view.js +127 -0
  139. package/dist/docs-document-workspace.svelte +215 -0
  140. package/dist/docs-document-workspace.svelte.d.ts +16 -0
  141. package/dist/docs-index.d.ts +5 -0
  142. package/dist/docs-index.js +49 -0
  143. package/dist/docs-path.d.ts +6 -0
  144. package/dist/docs-path.js +10 -0
  145. package/dist/docs-plugin.d.ts +21 -0
  146. package/dist/docs-plugin.js +140 -0
  147. package/dist/docs-repository.d.ts +15 -0
  148. package/dist/docs-repository.js +75 -0
  149. package/dist/docs-review-view.d.ts +18 -0
  150. package/dist/docs-review-view.js +52 -0
  151. package/dist/docs-settings-tab.d.ts +8 -0
  152. package/dist/docs-settings-tab.js +25 -0
  153. package/dist/docs-settings.d.ts +17 -0
  154. package/dist/docs-settings.js +38 -0
  155. package/dist/docs-view.d.ts +22 -0
  156. package/dist/docs-view.js +51 -0
  157. package/dist/docs-workspace.svelte +394 -0
  158. package/dist/docs-workspace.svelte.d.ts +15 -0
  159. package/dist/index.d.ts +12 -0
  160. package/dist/index.js +12 -0
  161. package/dist/model/book.d.ts +6 -0
  162. package/dist/model/book.js +101 -0
  163. package/dist/model/coding-runtime.d.ts +4 -0
  164. package/dist/model/coding-runtime.js +9 -0
  165. package/dist/model/docs-card-context.d.ts +32 -0
  166. package/dist/model/docs-card-context.js +89 -0
  167. package/dist/model/docs-card-preview-stack-motion.d.ts +51 -0
  168. package/dist/model/docs-card-preview-stack-motion.js +94 -0
  169. package/dist/model/docs-media-context.d.ts +9 -0
  170. package/dist/model/docs-media-context.js +18 -0
  171. package/dist/model/docs-note-list.d.ts +8 -0
  172. package/dist/model/docs-note-list.js +25 -0
  173. package/dist/model/docs-relative-media.d.ts +30 -0
  174. package/dist/model/docs-relative-media.js +116 -0
  175. package/dist/model/docs-review-constants.d.ts +4 -0
  176. package/dist/model/docs-review-constants.js +13 -0
  177. package/dist/model/fsrs.d.ts +14 -0
  178. package/dist/model/fsrs.js +153 -0
  179. package/dist/model/graph.d.ts +12 -0
  180. package/dist/model/graph.js +169 -0
  181. package/dist/model/index.d.ts +14 -0
  182. package/dist/model/index.js +14 -0
  183. package/dist/model/markdown-normalize.d.ts +11 -0
  184. package/dist/model/markdown-normalize.js +755 -0
  185. package/dist/model/markdown.d.ts +167 -0
  186. package/dist/model/markdown.js +365 -0
  187. package/dist/model/sample.d.ts +7 -0
  188. package/dist/model/sample.js +524 -0
  189. package/dist/model/types.d.ts +328 -0
  190. package/dist/model/types.js +1 -0
  191. package/dist/model/workspace.d.ts +6 -0
  192. package/dist/model/workspace.js +81 -0
  193. package/dist/storybook.css +52 -0
  194. package/dist/styles.css +1 -0
  195. package/manifest.json +11 -0
  196. package/package.json +147 -4
@@ -0,0 +1,1050 @@
1
+ .docs-card-editor {
2
+ --docs-card-accent: #2563eb;
3
+ --docs-card-radius: 0.7rem;
4
+ --docs-card-accent-width: 3px;
5
+ position: relative;
6
+ border: 1px solid color-mix(in srgb, var(--docs-card-accent) 22%, var(--docs-border));
7
+ border-radius: var(--docs-card-radius);
8
+ background:
9
+ linear-gradient(
10
+ 135deg,
11
+ color-mix(in srgb, var(--docs-card-accent) 8%, transparent),
12
+ transparent 9rem
13
+ ),
14
+ color-mix(in srgb, var(--docs-surface) 94%, transparent);
15
+ box-shadow:
16
+ inset var(--docs-card-accent-width) 0 0 0 var(--docs-card-accent),
17
+ 0 12px 28px color-mix(in srgb, #000 7%, transparent);
18
+ font-size: 0.875rem;
19
+ padding: 0.75rem 0.85rem 0.85rem;
20
+ }
21
+
22
+ .docs-card-editor[data-card-type='cloze'] {
23
+ --docs-card-accent: #7c3aed;
24
+ }
25
+
26
+ .docs-card-editor[data-card-status='suspended'] {
27
+ --docs-card-accent: #d97706;
28
+ }
29
+
30
+ .docs-card-editor .cv-form-section-toggle {
31
+ left: -2.25rem;
32
+ }
33
+
34
+ .docs-card-editor .cv-form-section-move {
35
+ left: -3.25rem;
36
+ }
37
+
38
+ .docs-card-editor .cv-form-section-title-row {
39
+ border-bottom: 0;
40
+ }
41
+
42
+ .docs-card-editor .cv-form-section-title-row textarea {
43
+ font-size: 0.95rem;
44
+ font-weight: 650;
45
+ }
46
+
47
+ .docs-card-header-chips {
48
+ display: flex;
49
+ flex-wrap: wrap;
50
+ justify-content: flex-end;
51
+ gap: 0.35rem;
52
+ }
53
+
54
+ .docs-card-chip {
55
+ display: inline-flex;
56
+ min-height: 1.35rem;
57
+ align-items: center;
58
+ border: 1px solid color-mix(in srgb, var(--docs-card-accent) 22%, var(--docs-border));
59
+ border-radius: 999px;
60
+ background: color-mix(in srgb, var(--docs-card-accent) 9%, var(--docs-surface));
61
+ color: color-mix(in srgb, var(--docs-card-accent) 82%, var(--foreground));
62
+ font-size: 0.68rem;
63
+ font-weight: 850;
64
+ padding: 0 0.45rem;
65
+ }
66
+
67
+ .docs-card-chip--status {
68
+ --docs-card-accent: #059669;
69
+ }
70
+
71
+ .docs-card-editor[data-card-status='suspended'] .docs-card-chip--status {
72
+ --docs-card-accent: #d97706;
73
+ }
74
+
75
+ .docs-card-chip--due {
76
+ --docs-card-accent: #0891b2;
77
+ }
78
+
79
+ .docs-card-fields {
80
+ margin-top: 0.2rem;
81
+ }
82
+
83
+ /* The reference row ends on its border. Match the form field's bottom padding
84
+ so the add control sits in the middle of the space under the selected blocks. */
85
+ .docs-card-fields .cv-reference-add-trigger {
86
+ display: flex;
87
+ align-items: center;
88
+ min-height: 1.25rem;
89
+ padding-top: 0.375rem;
90
+ }
91
+
92
+ .docs-card-preview-list {
93
+ display: grid;
94
+ max-width: 54rem;
95
+ margin: 0 auto;
96
+ gap: 1rem;
97
+ }
98
+
99
+ .docs-card-preview-stack {
100
+ display: grid;
101
+ max-width: 54rem;
102
+ margin: 0 auto;
103
+ gap: 1rem;
104
+ padding-top: 0.35rem;
105
+ padding-inline: 0.65rem;
106
+ }
107
+
108
+ .docs-card-preview-stack__controls {
109
+ display: flex;
110
+ align-items: center;
111
+ justify-content: center;
112
+ gap: 0.85rem;
113
+ overflow: visible;
114
+ padding-top: 0.15rem;
115
+ }
116
+
117
+ .docs-card-preview-stack__count {
118
+ margin: 0;
119
+ min-width: 7rem;
120
+ color: var(--docs-muted);
121
+ font-size: 0.82rem;
122
+ font-weight: 700;
123
+ letter-spacing: 0.01em;
124
+ text-align: center;
125
+ }
126
+
127
+ .docs-card-preview-stack__nav {
128
+ display: grid;
129
+ min-width: 2.35rem;
130
+ min-height: 2.35rem;
131
+ place-items: center;
132
+ border: 1px solid color-mix(in srgb, var(--docs-border) 82%, transparent);
133
+ border-radius: 999px;
134
+ background: color-mix(in srgb, var(--docs-surface) 92%, transparent);
135
+ color: inherit;
136
+ cursor: pointer;
137
+ transition:
138
+ border-color 140ms ease,
139
+ background 140ms ease,
140
+ transform 140ms ease;
141
+ }
142
+
143
+ .docs-card-preview-stack__nav:hover:not(:disabled),
144
+ .docs-card-preview-stack__nav:focus-visible:not(:disabled) {
145
+ border-color: color-mix(in srgb, var(--docs-accent) 42%, var(--docs-border));
146
+ background: color-mix(in srgb, var(--docs-accent) 8%, var(--docs-surface));
147
+ box-shadow: 0 2px 0 color-mix(in srgb, var(--docs-accent) 16%, transparent);
148
+ }
149
+
150
+ .docs-card-preview-stack__nav:disabled {
151
+ cursor: default;
152
+ opacity: 0.42;
153
+ }
154
+
155
+ .docs-card-preview-stack__nav svg {
156
+ width: 1rem;
157
+ height: 1rem;
158
+ }
159
+
160
+ .docs-card-preview-stack__deck {
161
+ --docs-card-stack-height: clamp(28rem, calc(100svh - 11.75rem), 40rem);
162
+ --docs-card-stack-height-revealed: clamp(31rem, calc(100svh - 8.75rem), 48rem);
163
+ --docs-card-rotate-step: 3.5deg;
164
+ --docs-card-scale-step: 0.045;
165
+ --docs-card-kick-x: 40%;
166
+ --docs-card-kick-y: -8%;
167
+ --docs-card-kick-rotate: 14deg;
168
+ --docs-card-kick-scale: 0.8;
169
+ --docs-card-kick-ms: 200ms;
170
+ --docs-card-settle-ms: 500ms;
171
+ --docs-card-promote-delay: 150ms;
172
+ --docs-card-settle-ease: cubic-bezier(0.34, 1.25, 0.64, 1);
173
+ --docs-card-swipe-snap-ms: 220ms;
174
+ position: relative;
175
+ width: min(100%, 44rem);
176
+ min-height: var(--docs-card-stack-height);
177
+ margin: 0 auto;
178
+ padding-bottom: 0.75rem;
179
+ overflow: visible;
180
+ touch-action: pan-y pinch-zoom;
181
+ }
182
+
183
+ .docs-card-preview-stack__slot > .docs-card-preview-flip {
184
+ position: relative;
185
+ width: 100%;
186
+ max-width: none;
187
+ height: 100%;
188
+ min-height: 100%;
189
+ margin: 0;
190
+ }
191
+
192
+ .docs-card-preview-stack__slot .docs-review-flip__inner {
193
+ height: 100%;
194
+ min-height: 100%;
195
+ }
196
+
197
+ .docs-card-preview-stack__slot .docs-card-preview-flip[data-peek='true'] .docs-review-face--peek {
198
+ position: absolute;
199
+ inset: 0;
200
+ min-height: 100%;
201
+ }
202
+
203
+ .docs-card-preview-stack__slot {
204
+ position: absolute;
205
+ inset: 0;
206
+ transform-origin: 50% 100%;
207
+ transition:
208
+ transform var(--docs-card-settle-ms) var(--docs-card-settle-ease),
209
+ opacity var(--docs-card-settle-ms) ease;
210
+ }
211
+
212
+ .docs-card-preview-stack__deck[data-shuffle] .docs-card-preview-stack__slot:not(
213
+ .docs-card-preview-stack__slot--outgoing-next,
214
+ .docs-card-preview-stack__slot--incoming-prev
215
+ ) {
216
+ transition: none;
217
+ }
218
+
219
+ .docs-card-preview-stack__slot--hidden {
220
+ opacity: 0;
221
+ pointer-events: none;
222
+ }
223
+
224
+ .docs-card-preview-stack__slot[data-depth='0'] {
225
+ z-index: 3;
226
+ transform: rotate(0deg) scale(1);
227
+ touch-action: pan-y;
228
+ cursor: grab;
229
+ }
230
+
231
+ .docs-card-preview-stack__slot[data-depth='0'].docs-card-preview-stack__slot--swipe-interaction,
232
+ .docs-card-preview-stack__slot[data-depth='0'].docs-card-preview-stack__slot--swipe-interaction * {
233
+ user-select: none;
234
+ -webkit-user-select: none;
235
+ -webkit-touch-callout: none;
236
+ }
237
+
238
+ .docs-card-preview-stack__slot[data-depth='0'].docs-card-preview-stack__slot--swiping {
239
+ z-index: 4;
240
+ touch-action: none;
241
+ cursor: grabbing;
242
+ transition: none;
243
+ transform: translate(var(--docs-card-drag-x, 0px), 0) rotate(var(--docs-card-drag-rotate, 0deg))
244
+ scale(1);
245
+ }
246
+
247
+ .docs-card-preview-stack__slot[data-depth='0'].docs-card-preview-stack__slot--swipe-reset {
248
+ transition: transform var(--docs-card-swipe-snap-ms) cubic-bezier(0.34, 1.25, 0.64, 1);
249
+ transform: rotate(0deg) scale(1);
250
+ }
251
+
252
+ .docs-card-preview-stack__slot[data-depth='1'] {
253
+ z-index: 2;
254
+ opacity: 0.96;
255
+ pointer-events: none;
256
+ transform: rotate(var(--docs-card-rotate-step)) scale(calc(1 - var(--docs-card-scale-step)));
257
+ }
258
+
259
+ .docs-card-preview-stack__slot[data-depth='2'] {
260
+ z-index: 1;
261
+ opacity: 0.92;
262
+ pointer-events: none;
263
+ transform: rotate(calc(var(--docs-card-rotate-step) * 2))
264
+ scale(calc(1 - var(--docs-card-scale-step) * 2));
265
+ }
266
+
267
+ .docs-card-preview-stack__deck[data-shuffle='next'] .docs-card-preview-stack__slot[data-depth='1']:not(
268
+ .docs-card-preview-stack__slot--hidden
269
+ ) {
270
+ animation: docs-card-preview-promote-step var(--docs-card-settle-ms) var(--docs-card-promote-delay)
271
+ var(--docs-card-settle-ease) forwards;
272
+ }
273
+
274
+ .docs-card-preview-stack__deck[data-shuffle='next'] .docs-card-preview-stack__slot[data-depth='2']:not(
275
+ .docs-card-preview-stack__slot--hidden
276
+ ) {
277
+ animation: docs-card-preview-fan-step-depth-1 var(--docs-card-settle-ms) var(--docs-card-promote-delay)
278
+ var(--docs-card-settle-ease) forwards;
279
+ }
280
+
281
+ .docs-card-preview-stack__deck[data-shuffle='prev'] .docs-card-preview-stack__slot[data-depth='0']:not(
282
+ .docs-card-preview-stack__slot--hidden
283
+ ) {
284
+ animation: docs-card-preview-demote-step-front-to-1 var(--docs-card-settle-ms) var(--docs-card-promote-delay)
285
+ var(--docs-card-settle-ease) forwards;
286
+ }
287
+
288
+ .docs-card-preview-stack__deck[data-shuffle='prev'] .docs-card-preview-stack__slot[data-depth='1']:not(
289
+ .docs-card-preview-stack__slot--hidden
290
+ ) {
291
+ animation: docs-card-preview-demote-step-depth-1-to-2 var(--docs-card-settle-ms) var(--docs-card-promote-delay)
292
+ var(--docs-card-settle-ease) forwards;
293
+ }
294
+
295
+ .docs-card-preview-stack__slot--outgoing-next {
296
+ --docs-card-settle-x: var(--docs-card-kick-x);
297
+ --docs-card-settle-rotate: var(--docs-card-kick-rotate);
298
+ z-index: 4;
299
+ pointer-events: none;
300
+ transform-origin: 50% 100%;
301
+ will-change: transform, opacity;
302
+ animation:
303
+ docs-card-preview-deck-kick-next var(--docs-card-kick-ms) ease-out forwards,
304
+ docs-card-preview-deck-settle-back var(--docs-card-settle-ms) var(--docs-card-kick-ms)
305
+ var(--docs-card-settle-ease) forwards;
306
+ }
307
+
308
+ .docs-card-preview-stack__slot--incoming-prev {
309
+ pointer-events: none;
310
+ transform-origin: 50% 100%;
311
+ will-change: transform, opacity;
312
+ animation:
313
+ docs-card-preview-deal-from-back var(--docs-card-settle-ms) var(--docs-card-settle-ease) forwards,
314
+ docs-card-preview-deal-kick-to-front var(--docs-card-kick-ms) var(--docs-card-settle-ms) ease-out forwards;
315
+ }
316
+
317
+ @keyframes docs-card-preview-deal-from-back {
318
+ from {
319
+ opacity: var(--incoming-fan-opacity, 0.92);
320
+ z-index: var(--incoming-fan-z, 1);
321
+ transform: translate(0, 0) rotate(var(--incoming-fan-rotate, 7deg))
322
+ scale(var(--incoming-fan-scale, 0.91));
323
+ }
324
+
325
+ to {
326
+ opacity: 0.98;
327
+ z-index: 4;
328
+ transform: translate(var(--docs-card-kick-x), var(--docs-card-kick-y)) rotate(var(--docs-card-kick-rotate))
329
+ scale(var(--docs-card-kick-scale));
330
+ }
331
+ }
332
+
333
+ @keyframes docs-card-preview-deal-kick-to-front {
334
+ from {
335
+ opacity: 0.98;
336
+ z-index: 4;
337
+ transform: translate(var(--docs-card-kick-x), var(--docs-card-kick-y)) rotate(var(--docs-card-kick-rotate))
338
+ scale(var(--docs-card-kick-scale));
339
+ }
340
+
341
+ to {
342
+ opacity: 1;
343
+ z-index: 3;
344
+ transform: translate(0, 0) rotate(0deg) scale(1);
345
+ }
346
+ }
347
+
348
+ @keyframes docs-card-preview-deck-kick-next {
349
+ from {
350
+ opacity: 1;
351
+ z-index: 4;
352
+ transform: translate(0, 0) rotate(0deg) scale(1);
353
+ }
354
+
355
+ to {
356
+ opacity: 1;
357
+ z-index: 4;
358
+ transform: translate(var(--docs-card-kick-x), var(--docs-card-kick-y)) rotate(var(--docs-card-kick-rotate))
359
+ scale(var(--docs-card-kick-scale));
360
+ }
361
+ }
362
+
363
+ @keyframes docs-card-preview-deck-settle-back {
364
+ from {
365
+ opacity: 0.98;
366
+ z-index: 1;
367
+ transform: translate(var(--docs-card-settle-x, var(--docs-card-kick-x)), var(--docs-card-kick-y))
368
+ rotate(var(--docs-card-settle-rotate, var(--docs-card-kick-rotate))) scale(var(--docs-card-kick-scale));
369
+ }
370
+
371
+ to {
372
+ opacity: 0.96;
373
+ z-index: 1;
374
+ transform: translate(0, 0) rotate(var(--docs-card-rotate-step)) scale(calc(1 - var(--docs-card-scale-step)));
375
+ }
376
+ }
377
+
378
+ @keyframes docs-card-preview-demote-step-front-to-1 {
379
+ from {
380
+ transform: rotate(0deg) scale(1);
381
+ }
382
+
383
+ to {
384
+ transform: rotate(var(--docs-card-rotate-step)) scale(calc(1 - var(--docs-card-scale-step)));
385
+ }
386
+ }
387
+
388
+ @keyframes docs-card-preview-demote-step-depth-1-to-2 {
389
+ from {
390
+ transform: rotate(var(--docs-card-rotate-step)) scale(calc(1 - var(--docs-card-scale-step)));
391
+ }
392
+
393
+ to {
394
+ transform: rotate(calc(var(--docs-card-rotate-step) * 2))
395
+ scale(calc(1 - var(--docs-card-scale-step) * 2));
396
+ }
397
+ }
398
+
399
+ @keyframes docs-card-preview-promote-step {
400
+ from {
401
+ transform: rotate(var(--docs-card-rotate-step)) scale(calc(1 - var(--docs-card-scale-step)));
402
+ }
403
+
404
+ to {
405
+ transform: rotate(0deg) scale(1);
406
+ }
407
+ }
408
+
409
+ @keyframes docs-card-preview-fan-step-depth-1 {
410
+ from {
411
+ transform: rotate(calc(var(--docs-card-rotate-step) * 2))
412
+ scale(calc(1 - var(--docs-card-scale-step) * 2));
413
+ }
414
+
415
+ to {
416
+ transform: rotate(var(--docs-card-rotate-step)) scale(calc(1 - var(--docs-card-scale-step)));
417
+ }
418
+ }
419
+
420
+ @keyframes docs-card-preview-fan-step-depth-2 {
421
+ from {
422
+ transform: rotate(calc(var(--docs-card-rotate-step) * 3))
423
+ scale(calc(1 - var(--docs-card-scale-step) * 3));
424
+ }
425
+
426
+ to {
427
+ transform: rotate(calc(var(--docs-card-rotate-step) * 2))
428
+ scale(calc(1 - var(--docs-card-scale-step) * 2));
429
+ }
430
+ }
431
+
432
+ .docs-card-preview-flip[data-peek='true'] {
433
+ position: relative;
434
+ pointer-events: none;
435
+ }
436
+
437
+ .docs-card-preview-flip[data-peek='true'] .docs-review-face--peek {
438
+ position: relative;
439
+ inset: auto;
440
+ }
441
+
442
+ .docs-card-preview-empty {
443
+ display: grid;
444
+ min-height: 7rem;
445
+ place-items: center;
446
+ border: 1px dashed color-mix(in srgb, var(--docs-muted) 28%, transparent);
447
+ border-radius: 0.8rem;
448
+ color: var(--docs-muted);
449
+ font-size: 0.85rem;
450
+ font-weight: 700;
451
+ }
452
+
453
+ .docs-card-preview-flip {
454
+ width: min(100%, 44rem);
455
+ }
456
+
457
+ .docs-card-preview-question-button {
458
+ align-self: flex-start;
459
+ }
460
+
461
+ .docs-card-preview-flip.docs-review-flip--revealed[data-card-type='cloze'],
462
+ .docs-card-preview-flip.docs-review-flip--revealed[data-card-type='cloze'] .docs-review-flip__inner,
463
+ .docs-card-preview-flip.docs-review-flip--revealed[data-card-type='cloze'] .docs-review-face {
464
+ min-height: max(34rem, var(--docs-card-stack-height-revealed));
465
+ }
466
+
467
+ .docs-card-preview-flip.docs-review-flip--revealed,
468
+ .docs-card-preview-flip.docs-review-flip--revealed .docs-review-flip__inner,
469
+ .docs-card-preview-flip.docs-review-flip--revealed .docs-review-face {
470
+ min-height: var(--docs-card-stack-height-revealed);
471
+ }
472
+
473
+ .docs-cards-add-bottom {
474
+ transition:
475
+ border-color 140ms ease,
476
+ box-shadow 140ms ease,
477
+ color 140ms ease,
478
+ background 140ms ease,
479
+ transform 140ms ease;
480
+ }
481
+
482
+ .docs-cards-add-bottom:hover,
483
+ .docs-cards-add-bottom:focus-visible {
484
+ background: color-mix(in srgb, var(--docs-accent) 7%, transparent);
485
+ box-shadow: 0 10px 22px color-mix(in srgb, #000 6%, transparent);
486
+ transform: translateY(-1px);
487
+ }
488
+
489
+ .docs-review-view {
490
+ background:
491
+ radial-gradient(
492
+ circle at 15% 20%,
493
+ color-mix(in srgb, #84cc16 12%, transparent),
494
+ transparent 16rem
495
+ ),
496
+ radial-gradient(
497
+ circle at 82% 12%,
498
+ color-mix(in srgb, #06b6d4 12%, transparent),
499
+ transparent 17rem
500
+ ),
501
+ color-mix(in srgb, var(--docs-surface) 92%, var(--docs-subtle));
502
+ }
503
+
504
+ .docs-review-view .docs-card-preview-stack {
505
+ flex: 0 1 auto;
506
+ width: 100%;
507
+ max-width: 54rem;
508
+ padding-top: 0.75rem;
509
+ }
510
+
511
+ .docs-review-view__header {
512
+ width: 100%;
513
+ max-width: 54rem;
514
+ margin-inline: auto;
515
+ }
516
+
517
+ .docs-review-view__summary {
518
+ margin: 0;
519
+ color: var(--docs-muted);
520
+ font-size: 0.82rem;
521
+ font-weight: 700;
522
+ letter-spacing: 0.01em;
523
+ text-align: center;
524
+ }
525
+
526
+ .docs-review-flip {
527
+ width: min(100%, 44rem);
528
+ min-height: 26rem;
529
+ margin: 0 auto;
530
+ perspective: 1100px;
531
+ }
532
+
533
+ .docs-review-flip__inner {
534
+ position: relative;
535
+ min-height: 26rem;
536
+ transform-style: preserve-3d;
537
+ transition: transform 460ms cubic-bezier(0.2, 0.8, 0.2, 1);
538
+ }
539
+
540
+ .docs-review-flip--revealed .docs-review-flip__inner {
541
+ transform: rotateY(180deg);
542
+ }
543
+
544
+ .docs-review-face {
545
+ position: absolute;
546
+ inset: 0;
547
+ display: flex;
548
+ min-height: 26rem;
549
+ flex-direction: column;
550
+ gap: 0.75rem;
551
+ overflow: hidden;
552
+ border: 1px solid color-mix(in srgb, #84cc16 32%, var(--docs-border));
553
+ border-radius: 1rem;
554
+ backface-visibility: hidden;
555
+ background:
556
+ linear-gradient(
557
+ 145deg,
558
+ color-mix(in srgb, #84cc16 16%, transparent),
559
+ transparent 15rem
560
+ ),
561
+ linear-gradient(
562
+ 320deg,
563
+ color-mix(in srgb, #22d3ee 12%, transparent),
564
+ transparent 16rem
565
+ ),
566
+ color-mix(in srgb, var(--docs-surface) 96%, transparent);
567
+ box-shadow: 0 24px 65px color-mix(in srgb, #000 13%, transparent);
568
+ padding: clamp(1.1rem, 4vw, 2rem);
569
+ }
570
+
571
+ .docs-review-face--back {
572
+ transform: rotateY(180deg);
573
+ border-color: color-mix(in srgb, #06b6d4 32%, var(--docs-border));
574
+ background:
575
+ linear-gradient(
576
+ 135deg,
577
+ color-mix(in srgb, #06b6d4 14%, transparent),
578
+ transparent 14rem
579
+ ),
580
+ linear-gradient(
581
+ 315deg,
582
+ color-mix(in srgb, #a3e635 13%, transparent),
583
+ transparent 16rem
584
+ ),
585
+ color-mix(in srgb, var(--docs-surface) 96%, transparent);
586
+ }
587
+
588
+ .docs-review-face[aria-hidden='true'] {
589
+ pointer-events: none;
590
+ }
591
+
592
+ .docs-review-face__meta {
593
+ display: flex;
594
+ flex-shrink: 0;
595
+ flex-wrap: wrap;
596
+ justify-content: space-between;
597
+ gap: 0.5rem;
598
+ }
599
+
600
+ .docs-review-face__scroll {
601
+ flex: 1 1 auto;
602
+ min-height: 0;
603
+ overflow-x: hidden;
604
+ overflow-y: auto;
605
+ overscroll-behavior: contain;
606
+ scrollbar-width: thin;
607
+ padding-inline-end: 0.15rem;
608
+ }
609
+
610
+ .docs-review-face--front .docs-review-face__scroll {
611
+ display: flex;
612
+ align-items: center;
613
+ justify-content: center;
614
+ }
615
+
616
+ .docs-review-face__actions {
617
+ flex-shrink: 0;
618
+ margin-top: auto;
619
+ padding-top: 0.15rem;
620
+ }
621
+
622
+ .docs-review-face__label,
623
+ .docs-review-face__tag,
624
+ .docs-review-face__prompt > span {
625
+ border-radius: 999px;
626
+ background: color-mix(in srgb, var(--foreground) 7%, transparent);
627
+ color: var(--docs-muted);
628
+ font-size: 0.72rem;
629
+ font-weight: 850;
630
+ padding: 0.22rem 0.55rem;
631
+ text-transform: uppercase;
632
+ }
633
+
634
+ .docs-review-face__tags {
635
+ display: inline-flex;
636
+ flex-wrap: wrap;
637
+ justify-content: flex-end;
638
+ gap: 0.35rem;
639
+ }
640
+
641
+ .docs-review-face__tag {
642
+ background: color-mix(in srgb, #8b5cf6 13%, var(--docs-surface));
643
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, #8b5cf6 22%, var(--docs-border));
644
+ color: color-mix(in srgb, #5b21b6 84%, var(--foreground));
645
+ }
646
+
647
+ .docs-review-face__prompt {
648
+ display: grid;
649
+ gap: 0.85rem;
650
+ }
651
+
652
+ .docs-review-face--front .docs-review-face__prompt {
653
+ width: 100%;
654
+ justify-items: center;
655
+ text-align: center;
656
+ }
657
+
658
+ .docs-review-face__prompt--answer {
659
+ gap: 0.65rem;
660
+ }
661
+
662
+ .docs-review-face h3 {
663
+ max-width: 16ch;
664
+ margin: 0;
665
+ font-size: clamp(1.75rem, 4vw, 3.1rem);
666
+ font-weight: 850;
667
+ letter-spacing: 0;
668
+ line-height: 1.05;
669
+ text-wrap: balance;
670
+ }
671
+
672
+ .docs-review-face__prompt--answer h3 {
673
+ max-width: 22ch;
674
+ font-size: clamp(1.55rem, 3.4vw, 2.7rem);
675
+ }
676
+
677
+ .docs-cloze-gap {
678
+ display: inline-flex;
679
+ width: clamp(2.9rem, 4.8ch, 5.25rem);
680
+ height: 0.9em;
681
+ margin: 0 0.08em;
682
+ align-items: center;
683
+ justify-content: center;
684
+ border: 0.07em dashed currentColor;
685
+ border-radius: 0.22em;
686
+ background: color-mix(in srgb, var(--foreground) 4%, transparent);
687
+ box-sizing: border-box;
688
+ color: color-mix(in srgb, var(--foreground) 72%, var(--docs-muted));
689
+ vertical-align: -0.06em;
690
+ }
691
+
692
+ .docs-cloze-gap--hint {
693
+ width: auto;
694
+ min-width: 2.8rem;
695
+ height: auto;
696
+ border-radius: 999px;
697
+ background: color-mix(in srgb, var(--foreground) 7%, transparent);
698
+ color: var(--docs-muted);
699
+ font-size: 0.48em;
700
+ font-weight: 800;
701
+ line-height: 1.4;
702
+ padding: 0.05em 0.45em;
703
+ vertical-align: 0.12em;
704
+ }
705
+
706
+ .docs-cloze-gap--revealed {
707
+ width: auto;
708
+ height: auto;
709
+ min-width: 0;
710
+ background: color-mix(in srgb, #8b5cf6 12%, var(--docs-surface));
711
+ color: color-mix(in srgb, #4c1d95 86%, var(--foreground));
712
+ padding: 0.02em 0.24em 0.04em;
713
+ vertical-align: 0.04em;
714
+ }
715
+
716
+ .docs-review-show-answer {
717
+ display: inline-flex;
718
+ width: fit-content;
719
+ min-height: 2.65rem;
720
+ align-items: center;
721
+ justify-content: center;
722
+ gap: 0.45rem;
723
+ border: 1px solid color-mix(in srgb, #84cc16 42%, var(--docs-border));
724
+ border-radius: 999px;
725
+ background: color-mix(in srgb, #84cc16 16%, var(--docs-surface));
726
+ color: color-mix(in srgb, #3f6212 86%, var(--foreground));
727
+ cursor: pointer;
728
+ font: inherit;
729
+ font-size: 0.82rem;
730
+ font-weight: 850;
731
+ padding: 0 1rem;
732
+ transition:
733
+ background 140ms ease,
734
+ box-shadow 140ms ease,
735
+ transform 140ms ease;
736
+ }
737
+
738
+ .docs-review-show-answer:hover,
739
+ .docs-review-show-answer:focus-visible {
740
+ background: color-mix(in srgb, #84cc16 22%, var(--docs-surface));
741
+ box-shadow: 0 12px 26px color-mix(in srgb, #84cc16 22%, transparent);
742
+ transform: translateY(-1px);
743
+ }
744
+
745
+ .docs-review-face__answer {
746
+ display: grid;
747
+ gap: 0.8rem;
748
+ }
749
+
750
+ .docs-review-face__answer--context {
751
+ grid-template-columns: auto minmax(0, 1fr);
752
+ align-items: start;
753
+ border-top: 1px solid color-mix(in srgb, var(--docs-border) 86%, transparent);
754
+ margin-top: -0.1rem;
755
+ padding-top: 1rem;
756
+ }
757
+
758
+ .docs-review-face__answer-label {
759
+ display: block;
760
+ margin-bottom: 0.25rem;
761
+ color: var(--docs-muted);
762
+ font-size: 0.7rem;
763
+ font-weight: 850;
764
+ text-transform: uppercase;
765
+ }
766
+
767
+ .docs-review-face__answer svg {
768
+ width: 1.6rem;
769
+ height: 1.6rem;
770
+ color: #0891b2;
771
+ }
772
+
773
+ .docs-review-face__answer p {
774
+ margin: 0;
775
+ font-size: clamp(1.05rem, 2vw, 1.45rem);
776
+ font-weight: 700;
777
+ line-height: 1.55;
778
+ }
779
+
780
+ .docs-review-face__answer .docs-markdown-preview-root,
781
+ .docs-review-face__answer .application-markdown-preview {
782
+ min-width: 0;
783
+ }
784
+
785
+ .docs-review-face__answer
786
+ .application-markdown-preview
787
+ :is(.carta-renderer, .carta-viewer) {
788
+ font-size: clamp(0.98rem, 1.5vw, 1.12rem);
789
+ font-weight: 650;
790
+ line-height: 1.55;
791
+ }
792
+
793
+ .docs-review-face__answer
794
+ .application-markdown-preview
795
+ :is(.carta-renderer, .carta-viewer)
796
+ p {
797
+ font-size: inherit;
798
+ font-weight: inherit;
799
+ line-height: inherit;
800
+ }
801
+
802
+ .docs-review-face__answer
803
+ .application-markdown-preview
804
+ :is(.carta-renderer, .carta-viewer)
805
+ pre {
806
+ max-width: 100%;
807
+ font-size: 0.78rem;
808
+ font-weight: 500;
809
+ line-height: 1.5;
810
+ }
811
+
812
+ .docs-rating-grid {
813
+ display: grid;
814
+ grid-template-columns: repeat(4, minmax(0, 1fr));
815
+ gap: 0.55rem;
816
+ }
817
+
818
+ .docs-rating-button {
819
+ display: grid;
820
+ gap: 0.1rem;
821
+ min-height: 2.5rem;
822
+ border-radius: 0.65rem;
823
+ transition:
824
+ background 140ms ease,
825
+ box-shadow 140ms ease,
826
+ transform 140ms ease;
827
+ }
828
+
829
+ .docs-rating-button__label {
830
+ font-size: 0.82rem;
831
+ font-weight: 800;
832
+ line-height: 1.1;
833
+ }
834
+
835
+ .docs-rating-button__interval {
836
+ color: color-mix(in srgb, var(--rating-accent, var(--docs-muted)) 72%, var(--docs-muted));
837
+ font-size: 0.68rem;
838
+ font-weight: 700;
839
+ line-height: 1.1;
840
+ }
841
+
842
+ .docs-rating-button--again {
843
+ --rating-accent: #dc2626;
844
+ }
845
+
846
+ .docs-rating-button--hard {
847
+ --rating-accent: #d97706;
848
+ }
849
+
850
+ .docs-rating-button--good {
851
+ --rating-accent: #059669;
852
+ }
853
+
854
+ .docs-rating-button--easy {
855
+ --rating-accent: #65a30d;
856
+ }
857
+
858
+ .docs-rating-button:not(:disabled) {
859
+ border-color: color-mix(in srgb, var(--rating-accent) 34%, var(--docs-border));
860
+ background: color-mix(in srgb, var(--rating-accent) 11%, var(--docs-surface));
861
+ color: color-mix(in srgb, var(--rating-accent) 82%, var(--foreground));
862
+ }
863
+
864
+ .docs-rating-button:not(:disabled):hover,
865
+ .docs-rating-button:not(:disabled):focus-visible {
866
+ box-shadow: 0 12px 24px color-mix(in srgb, var(--rating-accent) 18%, transparent);
867
+ transform: translateY(-1px);
868
+ }
869
+
870
+ .docs-review-face__answer--context p {
871
+ margin: 0;
872
+ font-size: 0.92rem;
873
+ line-height: 1.55;
874
+ }
875
+
876
+ .docs-card-extra {
877
+ display: grid;
878
+ gap: 0.55rem;
879
+ margin-top: 0.85rem;
880
+ padding-top: 0.85rem;
881
+ border-top: 1px solid color-mix(in srgb, var(--docs-border) 82%, transparent);
882
+ }
883
+
884
+ .docs-card-extra__heading {
885
+ margin: 0;
886
+ color: var(--docs-muted);
887
+ font-size: 0.68rem;
888
+ font-weight: 800;
889
+ letter-spacing: 0.08em;
890
+ text-transform: uppercase;
891
+ }
892
+
893
+ .docs-card-extra__items {
894
+ display: grid;
895
+ gap: 0.65rem;
896
+ }
897
+
898
+ .docs-card-extra__block {
899
+ display: grid;
900
+ gap: 0.35rem;
901
+ }
902
+
903
+ .docs-card-extra__block-label {
904
+ margin: 0;
905
+ color: color-mix(in srgb, var(--foreground) 82%, var(--docs-muted));
906
+ font-size: 0.78rem;
907
+ font-weight: 700;
908
+ }
909
+
910
+ .docs-card-extra__block-body {
911
+ color: var(--foreground);
912
+ font-size: 0.84rem;
913
+ line-height: 1.5;
914
+ }
915
+
916
+ .docs-card-extra__missing {
917
+ margin: 0;
918
+ color: var(--docs-muted);
919
+ font-size: 0.78rem;
920
+ font-style: italic;
921
+ }
922
+
923
+ .docs-card-field-help {
924
+ margin: 0 0 0.35rem;
925
+ color: var(--docs-muted);
926
+ font-size: 0.72rem;
927
+ line-height: 1.35;
928
+ }
929
+
930
+ @media (max-width: 720px) {
931
+ .docs-card-preview-stack {
932
+ gap: 0.75rem;
933
+ padding-top: 0.2rem;
934
+ padding-inline: 0.2rem;
935
+ }
936
+
937
+ .docs-card-preview-stack__controls {
938
+ gap: 0.55rem;
939
+ padding-top: 0;
940
+ }
941
+
942
+ .docs-card-preview-stack__count {
943
+ min-width: 5.5rem;
944
+ font-size: 0.76rem;
945
+ }
946
+
947
+ .docs-card-preview-stack__nav {
948
+ min-width: 2.15rem;
949
+ min-height: 2.15rem;
950
+ }
951
+
952
+ .docs-card-header-chips {
953
+ justify-content: flex-start;
954
+ }
955
+
956
+ .docs-card-preview-stack__deck {
957
+ --docs-card-stack-height: clamp(24rem, calc(100svh - 8.75rem), 38rem);
958
+ --docs-card-stack-height-revealed: clamp(27rem, calc(100svh - 6.5rem), 44rem);
959
+ padding-bottom: 0.35rem;
960
+ }
961
+
962
+ .docs-review-flip,
963
+ .docs-review-flip__inner,
964
+ .docs-review-face {
965
+ min-height: var(--docs-card-stack-height);
966
+ }
967
+
968
+ .docs-card-preview-flip.docs-review-flip--revealed[data-card-type='cloze'],
969
+ .docs-card-preview-flip.docs-review-flip--revealed[data-card-type='cloze'] .docs-review-flip__inner,
970
+ .docs-card-preview-flip.docs-review-flip--revealed[data-card-type='cloze'] .docs-review-face {
971
+ min-height: var(--docs-card-stack-height-revealed);
972
+ }
973
+
974
+ .docs-review-face {
975
+ gap: 0.6rem;
976
+ padding: clamp(0.9rem, 4vw, 1.15rem);
977
+ }
978
+
979
+ .docs-review-face h3 {
980
+ max-width: 14ch;
981
+ font-size: clamp(1.45rem, 7vw, 2.1rem);
982
+ }
983
+
984
+ .docs-review-face__prompt--answer h3 {
985
+ max-width: 18ch;
986
+ font-size: clamp(1.3rem, 5.7vw, 1.9rem);
987
+ }
988
+
989
+ .docs-review-face__answer p {
990
+ font-size: clamp(0.98rem, 4.1vw, 1.18rem);
991
+ }
992
+
993
+ .docs-review-face__answer
994
+ .application-markdown-preview
995
+ :is(.carta-renderer, .carta-viewer) {
996
+ font-size: clamp(0.94rem, 3.7vw, 1.08rem);
997
+ }
998
+
999
+ .docs-rating-grid {
1000
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1001
+ }
1002
+ }
1003
+
1004
+ @media (prefers-reduced-motion: reduce) {
1005
+ .docs-card-editor,
1006
+ .docs-cards-add-bottom,
1007
+ .docs-review-flip__inner,
1008
+ .docs-review-show-answer,
1009
+ .docs-rating-button,
1010
+ .docs-card-preview-stack__slot,
1011
+ .docs-card-preview-stack__slot--outgoing-next,
1012
+ .docs-card-preview-stack__slot--incoming-prev {
1013
+ transition-duration: 0.01ms;
1014
+ animation: none;
1015
+ }
1016
+
1017
+ .docs-card-preview-stack__slot[data-depth='0'].docs-card-preview-stack__slot--swiping,
1018
+ .docs-card-preview-stack__slot[data-depth='0'].docs-card-preview-stack__slot--swipe-reset {
1019
+ transition-duration: 0.01ms;
1020
+ }
1021
+
1022
+ .docs-review-flip--revealed .docs-review-flip__inner {
1023
+ transform: rotateY(180deg);
1024
+ }
1025
+ }
1026
+
1027
+ .docs-review-face__content {
1028
+ display: grid;
1029
+ width: 100%;
1030
+ min-height: 100%;
1031
+ gap: 0.85rem;
1032
+ }
1033
+
1034
+ .docs-review-face__content--front {
1035
+ align-content: center;
1036
+ text-align: center;
1037
+ }
1038
+
1039
+ .docs-review-face__content--back {
1040
+ align-content: start;
1041
+ }
1042
+
1043
+ .docs-card-preview-stack .flip-card-deck {
1044
+ --flip-card-accent: #84cc16;
1045
+ --flip-card-accent-alt: #06b6d4;
1046
+ --flip-card-border: var(--docs-border);
1047
+ --flip-card-muted: var(--docs-muted);
1048
+ --flip-card-surface: var(--docs-surface);
1049
+ --flip-card-foreground: var(--foreground);
1050
+ }