@clicoh/orion-library 1.2.0-beta.12 → 1.2.0-beta.14

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 (219) hide show
  1. package/assets/css/expresivo.css +919 -0
  2. package/assets/mascotas/svg/bugi-mascota-01-alerta.svg +39 -0
  3. package/assets/mascotas/svg/bugi-mascota-02-investigando.svg +36 -0
  4. package/assets/mascotas/svg/bugi-mascota-05-sorprendido.svg +38 -0
  5. package/assets/mascotas/svg/oculus-mascota-01-feliz.svg +52 -0
  6. package/assets/mascotas/svg/oculus-mascota-02-investigando.svg +51 -0
  7. package/assets/mascotas/svg/oculus-mascota-03-dudando.svg +51 -0
  8. package/assets/mascotas/svg/oculus-mascota-04-analizando-documento.svg +53 -0
  9. package/assets/mascotas/svg/oculus-mascota-06-celebrando.svg +54 -0
  10. package/assets/mascotas/svg/oculus-mascota-07-buscando-rapido.svg +57 -0
  11. package/assets/mascotas/svg/oculus-mascota-08-satisfecho.svg +55 -0
  12. package/assets/mascotas/webp/fixi-mascota-01-feliz-sm.webp +0 -0
  13. package/assets/mascotas/webp/fixi-mascota-02-investigando-sm.webp +0 -0
  14. package/assets/mascotas/webp/fixi-mascota-03-dudando-sm.webp +0 -0
  15. package/assets/mascotas/webp/fixi-mascota-04-reparando-sm.webp +0 -0
  16. package/assets/mascotas/webp/fixi-mascota-05-sorprendido-sm.webp +0 -0
  17. package/assets/mascotas/webp/fixi-mascota-06-celebrando-sm.webp +0 -0
  18. package/assets/mascotas/webp/fixi-mascota-07-corriendo-sm.webp +0 -0
  19. package/dist/components/01-atoms/Button/Button.d.ts +18 -1
  20. package/dist/components/01-atoms/Button/Button.d.ts.map +1 -1
  21. package/dist/components/01-atoms/Button/Button.jsx +25 -5
  22. package/dist/components/01-atoms/Button/Button.jsx.map +1 -1
  23. package/dist/components/01-atoms/Heading/Heading.jsx +1 -1
  24. package/dist/components/01-atoms/Heading/Heading.jsx.map +1 -1
  25. package/dist/components/01-atoms/Input/Input.d.ts.map +1 -1
  26. package/dist/components/01-atoms/Input/Input.jsx +9 -7
  27. package/dist/components/01-atoms/Input/Input.jsx.map +1 -1
  28. package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.d.ts.map +1 -1
  29. package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.jsx +1 -1
  30. package/dist/components/01-atoms/Input/utils/RenderErrorOrHelperText.jsx.map +1 -1
  31. package/dist/components/01-atoms/Select/Select.d.ts.map +1 -1
  32. package/dist/components/01-atoms/Select/Select.jsx +7 -7
  33. package/dist/components/01-atoms/Select/Select.jsx.map +1 -1
  34. package/dist/components/01-atoms/Spinner/Spinner.d.ts +24 -3
  35. package/dist/components/01-atoms/Spinner/Spinner.d.ts.map +1 -1
  36. package/dist/components/01-atoms/Spinner/Spinner.jsx +30 -4
  37. package/dist/components/01-atoms/Spinner/Spinner.jsx.map +1 -1
  38. package/dist/components/01-atoms/Spinner/index.d.ts +1 -0
  39. package/dist/components/01-atoms/Spinner/index.d.ts.map +1 -1
  40. package/dist/components/01-atoms/Stat/Stat.d.ts +4 -1
  41. package/dist/components/01-atoms/Stat/Stat.d.ts.map +1 -1
  42. package/dist/components/01-atoms/Stat/Stat.jsx +6 -2
  43. package/dist/components/01-atoms/Stat/Stat.jsx.map +1 -1
  44. package/dist/components/01-atoms/Textarea/Textarea.d.ts.map +1 -1
  45. package/dist/components/01-atoms/Textarea/Textarea.jsx +3 -3
  46. package/dist/components/01-atoms/Textarea/Textarea.jsx.map +1 -1
  47. package/dist/components/02-molecules/Accordion/AccordionSection.d.ts.map +1 -1
  48. package/dist/components/02-molecules/Accordion/AccordionSection.jsx +26 -3
  49. package/dist/components/02-molecules/Accordion/AccordionSection.jsx.map +1 -1
  50. package/dist/components/02-molecules/Card/Card.d.ts +74 -0
  51. package/dist/components/02-molecules/Card/Card.d.ts.map +1 -0
  52. package/dist/components/02-molecules/Card/Card.jsx +83 -0
  53. package/dist/components/02-molecules/Card/Card.jsx.map +1 -0
  54. package/dist/components/02-molecules/Card/index.d.ts +2 -0
  55. package/dist/components/02-molecules/Card/index.d.ts.map +1 -0
  56. package/dist/components/02-molecules/Card/index.js +2 -0
  57. package/dist/components/02-molecules/Card/index.js.map +1 -0
  58. package/dist/components/02-molecules/DatePicker/DatePicker.d.ts +37 -2
  59. package/dist/components/02-molecules/DatePicker/DatePicker.d.ts.map +1 -1
  60. package/dist/components/02-molecules/DatePicker/DatePicker.jsx +187 -32
  61. package/dist/components/02-molecules/DatePicker/DatePicker.jsx.map +1 -1
  62. package/dist/components/02-molecules/EmptyState/EmptyState.d.ts +52 -0
  63. package/dist/components/02-molecules/EmptyState/EmptyState.d.ts.map +1 -0
  64. package/dist/components/02-molecules/EmptyState/EmptyState.jsx +66 -0
  65. package/dist/components/02-molecules/EmptyState/EmptyState.jsx.map +1 -0
  66. package/dist/components/02-molecules/EmptyState/index.d.ts +2 -0
  67. package/dist/components/02-molecules/EmptyState/index.d.ts.map +1 -0
  68. package/dist/components/02-molecules/EmptyState/index.js +2 -0
  69. package/dist/components/02-molecules/EmptyState/index.js.map +1 -0
  70. package/dist/components/02-molecules/Filter/Filter.d.ts +7 -1
  71. package/dist/components/02-molecules/Filter/Filter.d.ts.map +1 -1
  72. package/dist/components/02-molecules/Filter/Filter.jsx +10 -7
  73. package/dist/components/02-molecules/Filter/Filter.jsx.map +1 -1
  74. package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts +15 -1
  75. package/dist/components/02-molecules/InlineMessage/InlineMessage.d.ts.map +1 -1
  76. package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx +18 -3
  77. package/dist/components/02-molecules/InlineMessage/InlineMessage.jsx.map +1 -1
  78. package/dist/components/02-molecules/Menu/MenuItem.d.ts.map +1 -1
  79. package/dist/components/02-molecules/Menu/MenuItem.jsx +2 -2
  80. package/dist/components/02-molecules/Menu/MenuItem.jsx.map +1 -1
  81. package/dist/components/02-molecules/Menu/MenuList.d.ts.map +1 -1
  82. package/dist/components/02-molecules/Menu/MenuList.jsx +1 -1
  83. package/dist/components/02-molecules/Menu/MenuList.jsx.map +1 -1
  84. package/dist/components/02-molecules/Table/Table.d.ts +3 -1
  85. package/dist/components/02-molecules/Table/Table.d.ts.map +1 -1
  86. package/dist/components/02-molecules/Table/Table.jsx +6 -5
  87. package/dist/components/02-molecules/Table/Table.jsx.map +1 -1
  88. package/dist/components/02-molecules/index.d.ts +2 -0
  89. package/dist/components/02-molecules/index.d.ts.map +1 -1
  90. package/dist/components/02-molecules/index.js +2 -0
  91. package/dist/components/02-molecules/index.js.map +1 -1
  92. package/dist/components/03-organisms/DataTable/DataTable.d.ts +1 -1
  93. package/dist/components/03-organisms/DataTable/DataTable.d.ts.map +1 -1
  94. package/dist/components/03-organisms/DataTable/DataTable.jsx.map +1 -1
  95. package/dist/components/03-organisms/Header/Header.d.ts +3 -1
  96. package/dist/components/03-organisms/Header/Header.d.ts.map +1 -1
  97. package/dist/components/03-organisms/Header/Header.jsx +4 -5
  98. package/dist/components/03-organisms/Header/Header.jsx.map +1 -1
  99. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.d.ts +36 -4
  100. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.d.ts.map +1 -1
  101. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx +44 -10
  102. package/dist/components/04-templates/DashboardTemplate/DashboardTemplate.jsx.map +1 -1
  103. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.d.ts +6 -2
  104. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.d.ts.map +1 -1
  105. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.jsx +7 -3
  106. package/dist/components/04-templates/DashboardTemplate/HeadingWithTitle.jsx.map +1 -1
  107. package/dist/components/04-templates/LoginTemplate/LoginTemplate.d.ts +2 -0
  108. package/dist/components/04-templates/LoginTemplate/LoginTemplate.d.ts.map +1 -1
  109. package/dist/components/04-templates/LoginTemplate/LoginTemplate.jsx +2 -1
  110. package/dist/components/04-templates/LoginTemplate/LoginTemplate.jsx.map +1 -1
  111. package/expresivo/ExpBubble/ExpBubble.d.ts +51 -0
  112. package/expresivo/ExpBubble/ExpBubble.d.ts.map +1 -0
  113. package/expresivo/ExpBubble/ExpBubble.jsx +74 -0
  114. package/expresivo/ExpBubble/ExpBubble.jsx.map +1 -0
  115. package/expresivo/ExpBubble/index.d.ts +3 -0
  116. package/expresivo/ExpBubble/index.d.ts.map +1 -0
  117. package/expresivo/ExpBubble/index.js +2 -0
  118. package/expresivo/ExpBubble/index.js.map +1 -0
  119. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.d.ts +37 -0
  120. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.d.ts.map +1 -0
  121. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.jsx +43 -0
  122. package/expresivo/ExpCollapseToggle/ExpCollapseToggle.jsx.map +1 -0
  123. package/expresivo/ExpCollapseToggle/index.d.ts +3 -0
  124. package/expresivo/ExpCollapseToggle/index.d.ts.map +1 -0
  125. package/expresivo/ExpCollapseToggle/index.js +2 -0
  126. package/expresivo/ExpCollapseToggle/index.js.map +1 -0
  127. package/expresivo/ExpGrowBar/ExpGrowBar.d.ts +26 -0
  128. package/expresivo/ExpGrowBar/ExpGrowBar.d.ts.map +1 -0
  129. package/expresivo/ExpGrowBar/ExpGrowBar.jsx +39 -0
  130. package/expresivo/ExpGrowBar/ExpGrowBar.jsx.map +1 -0
  131. package/expresivo/ExpGrowBar/index.d.ts +3 -0
  132. package/expresivo/ExpGrowBar/index.d.ts.map +1 -0
  133. package/expresivo/ExpGrowBar/index.js +2 -0
  134. package/expresivo/ExpGrowBar/index.js.map +1 -0
  135. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.d.ts +65 -0
  136. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.d.ts.map +1 -0
  137. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.jsx +156 -0
  138. package/expresivo/ExpJourneyTrack/ExpJourneyTrack.jsx.map +1 -0
  139. package/expresivo/ExpJourneyTrack/index.d.ts +3 -0
  140. package/expresivo/ExpJourneyTrack/index.d.ts.map +1 -0
  141. package/expresivo/ExpJourneyTrack/index.js +2 -0
  142. package/expresivo/ExpJourneyTrack/index.js.map +1 -0
  143. package/expresivo/ExpKeyButton/ExpKeyButton.d.ts +49 -0
  144. package/expresivo/ExpKeyButton/ExpKeyButton.d.ts.map +1 -0
  145. package/expresivo/ExpKeyButton/ExpKeyButton.jsx +60 -0
  146. package/expresivo/ExpKeyButton/ExpKeyButton.jsx.map +1 -0
  147. package/expresivo/ExpKeyButton/index.d.ts +3 -0
  148. package/expresivo/ExpKeyButton/index.d.ts.map +1 -0
  149. package/expresivo/ExpKeyButton/index.js +2 -0
  150. package/expresivo/ExpKeyButton/index.js.map +1 -0
  151. package/expresivo/ExpLensIcon/ExpLensIcon.d.ts +29 -0
  152. package/expresivo/ExpLensIcon/ExpLensIcon.d.ts.map +1 -0
  153. package/expresivo/ExpLensIcon/ExpLensIcon.jsx +29 -0
  154. package/expresivo/ExpLensIcon/ExpLensIcon.jsx.map +1 -0
  155. package/expresivo/ExpLensIcon/index.d.ts +3 -0
  156. package/expresivo/ExpLensIcon/index.d.ts.map +1 -0
  157. package/expresivo/ExpLensIcon/index.js +2 -0
  158. package/expresivo/ExpLensIcon/index.js.map +1 -0
  159. package/expresivo/ExpMascot/ExpMascot.d.ts +41 -0
  160. package/expresivo/ExpMascot/ExpMascot.d.ts.map +1 -0
  161. package/expresivo/ExpMascot/ExpMascot.jsx +45 -0
  162. package/expresivo/ExpMascot/ExpMascot.jsx.map +1 -0
  163. package/expresivo/ExpMascot/catalog.d.ts +12 -0
  164. package/expresivo/ExpMascot/catalog.d.ts.map +1 -0
  165. package/expresivo/ExpMascot/catalog.js +41 -0
  166. package/expresivo/ExpMascot/catalog.js.map +1 -0
  167. package/expresivo/ExpMascot/index.d.ts +4 -0
  168. package/expresivo/ExpMascot/index.d.ts.map +1 -0
  169. package/expresivo/ExpMascot/index.js +2 -0
  170. package/expresivo/ExpMascot/index.js.map +1 -0
  171. package/expresivo/ExpMedalBadge/ExpMedalBadge.d.ts +29 -0
  172. package/expresivo/ExpMedalBadge/ExpMedalBadge.d.ts.map +1 -0
  173. package/expresivo/ExpMedalBadge/ExpMedalBadge.jsx +87 -0
  174. package/expresivo/ExpMedalBadge/ExpMedalBadge.jsx.map +1 -0
  175. package/expresivo/ExpMedalBadge/index.d.ts +3 -0
  176. package/expresivo/ExpMedalBadge/index.d.ts.map +1 -0
  177. package/expresivo/ExpMedalBadge/index.js +2 -0
  178. package/expresivo/ExpMedalBadge/index.js.map +1 -0
  179. package/expresivo/ExpPageHero/ExpPageHero.d.ts +82 -0
  180. package/expresivo/ExpPageHero/ExpPageHero.d.ts.map +1 -0
  181. package/expresivo/ExpPageHero/ExpPageHero.jsx +113 -0
  182. package/expresivo/ExpPageHero/ExpPageHero.jsx.map +1 -0
  183. package/expresivo/ExpPageHero/index.d.ts +3 -0
  184. package/expresivo/ExpPageHero/index.d.ts.map +1 -0
  185. package/expresivo/ExpPageHero/index.js +2 -0
  186. package/expresivo/ExpPageHero/index.js.map +1 -0
  187. package/expresivo/ExpPillButton/ExpPillButton.d.ts +44 -0
  188. package/expresivo/ExpPillButton/ExpPillButton.d.ts.map +1 -0
  189. package/expresivo/ExpPillButton/ExpPillButton.jsx +75 -0
  190. package/expresivo/ExpPillButton/ExpPillButton.jsx.map +1 -0
  191. package/expresivo/ExpPillButton/index.d.ts +3 -0
  192. package/expresivo/ExpPillButton/index.d.ts.map +1 -0
  193. package/expresivo/ExpPillButton/index.js +2 -0
  194. package/expresivo/ExpPillButton/index.js.map +1 -0
  195. package/expresivo/ExpScope/ExpScope.d.ts +63 -0
  196. package/expresivo/ExpScope/ExpScope.d.ts.map +1 -0
  197. package/expresivo/ExpScope/ExpScope.jsx +67 -0
  198. package/expresivo/ExpScope/ExpScope.jsx.map +1 -0
  199. package/expresivo/ExpScope/index.d.ts +3 -0
  200. package/expresivo/ExpScope/index.d.ts.map +1 -0
  201. package/expresivo/ExpScope/index.js +2 -0
  202. package/expresivo/ExpScope/index.js.map +1 -0
  203. package/expresivo/ExpScoreRing/ExpScoreRing.d.ts +35 -0
  204. package/expresivo/ExpScoreRing/ExpScoreRing.d.ts.map +1 -0
  205. package/expresivo/ExpScoreRing/ExpScoreRing.jsx +67 -0
  206. package/expresivo/ExpScoreRing/ExpScoreRing.jsx.map +1 -0
  207. package/expresivo/ExpScoreRing/index.d.ts +3 -0
  208. package/expresivo/ExpScoreRing/index.d.ts.map +1 -0
  209. package/expresivo/ExpScoreRing/index.js +2 -0
  210. package/expresivo/ExpScoreRing/index.js.map +1 -0
  211. package/expresivo/index.d.ts +13 -0
  212. package/expresivo/index.d.ts.map +1 -0
  213. package/expresivo/index.js +13 -0
  214. package/expresivo/index.js.map +1 -0
  215. package/expresivo/shared/glyphs.d.ts +20 -0
  216. package/expresivo/shared/glyphs.d.ts.map +1 -0
  217. package/expresivo/shared/glyphs.jsx +60 -0
  218. package/expresivo/shared/glyphs.jsx.map +1 -0
  219. package/package.json +3 -2
@@ -0,0 +1,919 @@
1
+ /*
2
+ * Orion expressive layer. Opt-in: the consumer imports this file after
3
+ * base.css and wraps its app in <ExpScope>.
4
+ *
5
+ * Every skin rule starts with :root:has(.exp-scope), so it applies only while
6
+ * an ExpScope is mounted, and also reaches content rendered in portals.
7
+ * Rules target core parts through [data-orion-part], never through the
8
+ * core's Tailwind classes, and stay unlayered so they win over utilities.
9
+ *
10
+ * The .exp-* classes belong to Exp* components, which only draw their full
11
+ * markup inside an ExpScope, so those rules need no scope prefix.
12
+ */
13
+
14
+ .exp-scope {
15
+ display: contents;
16
+ }
17
+
18
+ /* Tokens ---------------------------------------------------------------- */
19
+
20
+ :root:has(.exp-scope) {
21
+ --exp-ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
22
+ --exp-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
23
+ --exp-accent: var(--color-lavender);
24
+ --exp-accent-soft: var(--color-lavender-1);
25
+ --exp-spark: #8a5cf5;
26
+
27
+ --exp-field-bg: linear-gradient(180deg, #ffffff 0%, #fbfcfc 100%);
28
+ --exp-field-bg-hover: linear-gradient(180deg, #ffffff 0%, #fbfaff 100%);
29
+ --exp-field-line: var(--color-gray-5);
30
+ --exp-field-ink: var(--color-black);
31
+ --exp-field-label: var(--color-gray-1);
32
+ --exp-field-icon: #3a3550;
33
+ --exp-field-drop: rgba(34, 35, 41, 0.07);
34
+ --exp-field-glow: rgba(106, 93, 249, 0.22);
35
+ --exp-field-popover: var(--color-white);
36
+ --exp-field-gloss: rgba(255, 255, 255, 0.9);
37
+
38
+ --exp-key-edge: #4a3fd0;
39
+ --exp-key-drop: rgba(74, 63, 208, 0.28);
40
+ --exp-key-glow: rgba(200, 84, 228, 0.55);
41
+ --exp-key-white-face: linear-gradient(180deg, #ffffff 0%, #f6f6f6 100%);
42
+ --exp-key-white-face-hover: linear-gradient(180deg, #ffffff 0%, #f8f7ff 100%);
43
+ --exp-key-white-edge: var(--color-gray-4);
44
+ --exp-key-white-edge-hover: #c9c3fd;
45
+ --exp-key-disabled-face: var(--color-gray-4);
46
+ --exp-key-disabled-edge: var(--color-gray-3);
47
+
48
+ --exp-row-bg: var(--color-white);
49
+ --exp-row-bg-hover: var(--color-lavender-3);
50
+ --exp-row-edge: var(--color-gray-5);
51
+ --exp-row-edge-hover: #c9c3fd;
52
+
53
+ --exp-nav-glow: rgba(106, 93, 249, 0.22);
54
+
55
+ --exp-hero-dots: rgba(106, 93, 249, 0.14);
56
+ --exp-hero-bg: linear-gradient(135deg, #f8f7ff 0%, #ffffff 55%, #f8f7ff 100%);
57
+ --exp-hero-edge: #e1dffe;
58
+ --exp-hero-drop: 0 6px 20px rgba(106, 93, 249, 0.08);
59
+ }
60
+
61
+ :root.dark:has(.exp-scope) {
62
+ --exp-accent: var(--color-lavender-dark);
63
+ --exp-accent-soft: var(--color-lavender-dark-1);
64
+
65
+ --exp-field-bg: linear-gradient(180deg, #2e3036 0%, #27282e 100%);
66
+ --exp-field-bg-hover: linear-gradient(180deg, #33343c 0%, #2b2c33 100%);
67
+ --exp-field-line: #3a3b42;
68
+ --exp-field-ink: var(--color-white);
69
+ --exp-field-label: var(--color-gray-2);
70
+ --exp-field-icon: #c9c9cf;
71
+ --exp-field-drop: rgba(0, 0, 0, 0.45);
72
+ --exp-field-glow: rgba(137, 128, 255, 0.35);
73
+ --exp-field-popover: var(--color-black);
74
+ --exp-field-gloss: rgba(255, 255, 255, 0.06);
75
+
76
+ --exp-key-edge: #3a31a8;
77
+ --exp-key-drop: rgba(0, 0, 0, 0.55);
78
+ --exp-key-glow: rgba(200, 84, 228, 0.45);
79
+ --exp-key-white-face: linear-gradient(180deg, #f6f6f6 0%, #e9eaea 100%);
80
+ --exp-key-white-face-hover: linear-gradient(180deg, #ffffff 0%, #f0effe 100%);
81
+ --exp-key-white-edge: var(--color-gray-1);
82
+ --exp-key-white-edge-hover: var(--color-lavender);
83
+ --exp-key-disabled-face: var(--color-gray-dark-1);
84
+ --exp-key-disabled-edge: var(--color-gray-dark-2);
85
+
86
+ --exp-row-bg: var(--color-black);
87
+ --exp-row-bg-hover: #2a2747;
88
+ --exp-row-edge: var(--color-gray-1);
89
+ --exp-row-edge-hover: #4a3fd0;
90
+
91
+ --exp-nav-glow: rgba(137, 128, 255, 0.35);
92
+
93
+ --exp-hero-dots: rgba(137, 128, 255, 0.16);
94
+ --exp-hero-bg: #1b1c21;
95
+ --exp-hero-edge: #303a54;
96
+ --exp-hero-drop: none;
97
+ }
98
+
99
+ /* Motion ---------------------------------------------------------------- */
100
+
101
+ @keyframes exp-float {
102
+ 0%,
103
+ 100% {
104
+ transform: translateY(0);
105
+ }
106
+ 50% {
107
+ transform: translateY(-6px);
108
+ }
109
+ }
110
+
111
+ @keyframes exp-swing {
112
+ 0%,
113
+ 100% {
114
+ transform: rotate(5deg);
115
+ }
116
+ 50% {
117
+ transform: rotate(-5deg);
118
+ }
119
+ }
120
+
121
+ @keyframes exp-blink {
122
+ 0%,
123
+ 92%,
124
+ 100% {
125
+ transform: scaleY(1);
126
+ }
127
+ 96% {
128
+ transform: scaleY(0.1);
129
+ }
130
+ }
131
+
132
+ @keyframes exp-scan {
133
+ 0%,
134
+ 100% {
135
+ transform: translateX(-2px);
136
+ }
137
+ 50% {
138
+ transform: translateX(2px);
139
+ }
140
+ }
141
+
142
+ @keyframes exp-spin {
143
+ to {
144
+ transform: rotate(360deg);
145
+ }
146
+ }
147
+
148
+ @keyframes exp-enter {
149
+ 0%,
150
+ 100% {
151
+ transform: translateX(-2px);
152
+ opacity: 1;
153
+ }
154
+ 50% {
155
+ transform: translateX(4px);
156
+ opacity: 0.55;
157
+ }
158
+ }
159
+
160
+ @keyframes exp-sweep {
161
+ 0% {
162
+ transform: translateX(-120%) skewX(-20deg);
163
+ }
164
+ 100% {
165
+ transform: translateX(420%) skewX(-20deg);
166
+ }
167
+ }
168
+
169
+ @keyframes exp-spark {
170
+ 0% {
171
+ left: 0%;
172
+ opacity: 0;
173
+ }
174
+ 12% {
175
+ opacity: 1;
176
+ }
177
+ 62% {
178
+ left: 100%;
179
+ opacity: 1;
180
+ }
181
+ 100% {
182
+ left: 100%;
183
+ opacity: 0;
184
+ }
185
+ }
186
+
187
+ @keyframes exp-hint-pulse {
188
+ 0% {
189
+ transform: scale(1);
190
+ opacity: 0.55;
191
+ }
192
+ 70%,
193
+ 100% {
194
+ transform: scale(1.9);
195
+ opacity: 0;
196
+ }
197
+ }
198
+
199
+ .exp-float {
200
+ animation: exp-float 3.2s ease-in-out infinite;
201
+ }
202
+
203
+ .exp-hint-pulse {
204
+ animation: exp-hint-pulse 2.4s ease-out infinite;
205
+ }
206
+
207
+ .exp-hang {
208
+ transform-origin: top center;
209
+ animation: exp-swing 3.2s ease-in-out infinite;
210
+ }
211
+
212
+ /* Page hero (ExpPageHero): a band only on wide screens ------------------ */
213
+
214
+ @media (min-width: 64rem) {
215
+ .exp-hero {
216
+ border: 1px solid var(--exp-hero-edge);
217
+ border-radius: 1rem;
218
+ background:
219
+ radial-gradient(var(--exp-hero-dots) 1px, transparent 1.4px) 0 0 / 14px
220
+ 14px,
221
+ var(--exp-hero-bg);
222
+ box-shadow: var(--exp-hero-drop);
223
+ }
224
+ }
225
+
226
+ /* Glyphs (ExpLensIcon and the glyphs inside Exp buttons) ---------------- */
227
+
228
+ .exp-lens-lid {
229
+ transform-origin: 14px 14px;
230
+ animation: exp-blink 4.5s ease-in-out infinite;
231
+ }
232
+
233
+ .exp-lens-pupil {
234
+ transition: transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
235
+ }
236
+
237
+ .exp-rotor {
238
+ transform-box: fill-box;
239
+ transform-origin: center;
240
+ transition: transform 480ms cubic-bezier(0.34, 1.56, 0.64, 1);
241
+ }
242
+
243
+ .exp-enter-arrow {
244
+ transition: transform 360ms cubic-bezier(0.34, 1.56, 0.64, 1);
245
+ }
246
+
247
+ .exp-arrow {
248
+ transition: transform 240ms var(--exp-ease-spring);
249
+ }
250
+
251
+ .exp-glyph--busy .exp-lens-lid,
252
+ .exp-glyph--disabled .exp-lens-lid {
253
+ animation: none;
254
+ }
255
+
256
+ .exp-glyph--busy .exp-lens-pupil {
257
+ animation: exp-scan 1.1s ease-in-out infinite;
258
+ }
259
+
260
+ .exp-glyph--busy .exp-rotor {
261
+ animation: exp-spin 1s linear infinite;
262
+ }
263
+
264
+ .exp-glyph--busy .exp-enter-arrow {
265
+ animation: exp-enter 900ms ease-in-out infinite;
266
+ }
267
+
268
+ /* ExpKeyButton ---------------------------------------------------------- */
269
+
270
+ .exp-key {
271
+ --exp-key-face: linear-gradient(
272
+ 160deg,
273
+ #7466fb 0%,
274
+ #7a59f2 50%,
275
+ #9b4fe8 100%
276
+ );
277
+ --exp-key-face-hover: linear-gradient(
278
+ 160deg,
279
+ #7b6bff 0%,
280
+ #8a5cf5 45%,
281
+ #b04fe6 100%
282
+ );
283
+ --exp-key-ink: var(--color-white);
284
+ --exp-key-gloss: rgba(255, 255, 255, 0.35);
285
+ --exp-key-shade: rgba(34, 25, 140, 0.18);
286
+ --exp-key-rim: transparent;
287
+ --exp-key-rim-hover: transparent;
288
+ --exp-key-edge-rest: var(--exp-key-edge);
289
+ --exp-key-edge-hover: var(--exp-key-edge);
290
+ --exp-key-rest-drop: var(--exp-key-drop);
291
+ --exp-key-hover-glow: var(--exp-key-glow);
292
+ --exp-key-hover-glow-2: rgba(106, 93, 249, 0.45);
293
+ --exp-key-text-shadow: 0 1px 1px rgba(34, 25, 140, 0.3);
294
+
295
+ --exp-key-bg: var(--exp-key-face);
296
+ --exp-key-rim-now: var(--exp-key-rim);
297
+ --exp-key-edge-now: var(--exp-key-edge-rest);
298
+ --exp-key-depth: 6px;
299
+ --exp-key-lift: 0px;
300
+ --exp-key-halo: 0 12px 16px var(--exp-key-rest-drop);
301
+
302
+ position: relative;
303
+ display: inline-flex;
304
+ align-items: center;
305
+ gap: 16px;
306
+ min-height: 52px;
307
+ margin-bottom: 10px;
308
+ padding: 0 24px 0 10px;
309
+ overflow: hidden;
310
+ border: 0;
311
+ border-radius: 9999px;
312
+ background: var(--exp-key-bg);
313
+ color: var(--exp-key-ink);
314
+ font-size: 16px;
315
+ font-weight: 700;
316
+ line-height: 24px;
317
+ white-space: nowrap;
318
+ cursor: pointer;
319
+ box-shadow:
320
+ inset 0 1.5px 0 var(--exp-key-gloss),
321
+ inset 0 0 0 1px var(--exp-key-rim-now),
322
+ inset 0 -2px 0 var(--exp-key-shade),
323
+ 0 var(--exp-key-depth) 0 var(--exp-key-edge-now),
324
+ var(--exp-key-halo);
325
+ transform: translateY(var(--exp-key-lift));
326
+ transition:
327
+ transform 240ms var(--exp-ease-spring),
328
+ box-shadow 240ms var(--exp-ease-spring);
329
+ outline-offset: 6px;
330
+ }
331
+
332
+ .exp-key:focus-visible {
333
+ outline: 2px solid var(--exp-accent);
334
+ }
335
+
336
+ .exp-key--block {
337
+ display: flex;
338
+ width: 100%;
339
+ justify-content: center;
340
+ }
341
+
342
+ .exp-key[data-tone='white'] {
343
+ --exp-key-face: var(--exp-key-white-face);
344
+ --exp-key-face-hover: var(--exp-key-white-face-hover);
345
+ --exp-key-ink: var(--color-black);
346
+ --exp-key-gloss: rgba(255, 255, 255, 1);
347
+ --exp-key-shade: rgba(34, 25, 140, 0.04);
348
+ --exp-key-rim: var(--color-gray-5);
349
+ --exp-key-rim-hover: #c9c3fd;
350
+ --exp-key-edge-rest: var(--exp-key-white-edge);
351
+ --exp-key-edge-hover: var(--exp-key-white-edge-hover);
352
+ --exp-key-rest-drop: rgba(34, 35, 41, 0.12);
353
+ --exp-key-hover-glow: rgba(106, 93, 249, 0.35);
354
+ --exp-key-hover-glow-2: rgba(106, 93, 249, 0.2);
355
+ --exp-key-text-shadow: none;
356
+ }
357
+
358
+ .exp-key[data-tone='black'] {
359
+ --exp-key-face: linear-gradient(
360
+ 160deg,
361
+ #33343c 0%,
362
+ #26272e 55%,
363
+ #1b1c21 100%
364
+ );
365
+ --exp-key-face-hover: linear-gradient(
366
+ 160deg,
367
+ #3a3b44 0%,
368
+ #2a2b33 55%,
369
+ #222329 100%
370
+ );
371
+ --exp-key-edge-rest: #0e0e10;
372
+ --exp-key-edge-hover: #0e0e10;
373
+ --exp-key-hover-glow: rgba(106, 93, 249, 0.45);
374
+ }
375
+
376
+ .exp-key[data-state='idle']:is(:hover, :focus-visible) {
377
+ --exp-key-bg: var(--exp-key-face-hover);
378
+ --exp-key-rim-now: var(--exp-key-rim-hover);
379
+ --exp-key-edge-now: var(--exp-key-edge-hover);
380
+ --exp-key-depth: 9px;
381
+ --exp-key-lift: -3px;
382
+ --exp-key-halo: 0 19px 34px var(--exp-key-hover-glow),
383
+ 0 11px 14px var(--exp-key-hover-glow-2);
384
+ }
385
+
386
+ .exp-key[data-state='idle']:active,
387
+ .exp-key[data-state='busy'] {
388
+ --exp-key-bg: var(--exp-key-face);
389
+ --exp-key-depth: 2px;
390
+ --exp-key-lift: 4px;
391
+ --exp-key-halo: 0 8px 16px var(--exp-key-rest-drop);
392
+ }
393
+
394
+ .exp-key[data-state='busy'] {
395
+ cursor: progress;
396
+ }
397
+
398
+ .exp-key[data-state='disabled'] {
399
+ --exp-key-bg: var(--exp-key-disabled-face);
400
+ --exp-key-ink: var(--color-gray-2);
401
+ --exp-key-gloss: rgba(255, 255, 255, 0.5);
402
+ --exp-key-rim-now: transparent;
403
+ --exp-key-edge-now: var(--exp-key-disabled-edge);
404
+ --exp-key-depth: 2px;
405
+ --exp-key-halo: 0 0 0 transparent;
406
+ --exp-key-text-shadow: none;
407
+ cursor: not-allowed;
408
+ }
409
+
410
+ .exp-key[data-icon='none'] {
411
+ padding-left: 24px;
412
+ }
413
+
414
+ .exp-key[data-size='sm'] {
415
+ --exp-key-depth: 4px;
416
+ --exp-key-halo: 0 7px 8px var(--exp-key-rest-drop);
417
+ gap: 8px;
418
+ height: 36px;
419
+ min-height: 36px;
420
+ margin-bottom: 0;
421
+ padding: 0 16px 0 8px;
422
+ font-size: 14px;
423
+ font-weight: 600;
424
+ line-height: 20px;
425
+ }
426
+
427
+ .exp-key[data-size='sm'][data-icon='none'] {
428
+ padding: 0 20px;
429
+ }
430
+
431
+ .exp-key[data-size='sm'][data-state='idle']:is(:hover, :focus-visible) {
432
+ --exp-key-depth: 5px;
433
+ --exp-key-lift: -2px;
434
+ --exp-key-halo: 0 10px 17px var(--exp-key-hover-glow),
435
+ 0 7px 7px var(--exp-key-hover-glow-2);
436
+ }
437
+
438
+ .exp-key[data-size='sm'][data-state='idle']:active,
439
+ .exp-key[data-size='sm'][data-state='busy'] {
440
+ --exp-key-depth: 1px;
441
+ --exp-key-lift: 2px;
442
+ --exp-key-halo: 0 4px 8px var(--exp-key-rest-drop);
443
+ }
444
+
445
+ .exp-key[data-size='sm'][data-state='disabled'] {
446
+ --exp-key-depth: 1px;
447
+ --exp-key-halo: 0 0 0 transparent;
448
+ }
449
+
450
+ .exp-key-label {
451
+ position: relative;
452
+ text-shadow: var(--exp-key-text-shadow);
453
+ }
454
+
455
+ .exp-key .exp-arrow {
456
+ position: relative;
457
+ margin-left: 8px;
458
+ }
459
+
460
+ .exp-key[data-size='sm'] .exp-arrow {
461
+ margin-left: 2px;
462
+ }
463
+
464
+ .exp-key[data-state='busy'] .exp-arrow {
465
+ opacity: 0;
466
+ }
467
+
468
+ .exp-key-shine {
469
+ position: absolute;
470
+ top: 0;
471
+ bottom: 0;
472
+ left: 0;
473
+ width: 28%;
474
+ background: linear-gradient(
475
+ 90deg,
476
+ transparent,
477
+ rgba(255, 255, 255, 0.35),
478
+ transparent
479
+ );
480
+ pointer-events: none;
481
+ animation: exp-sweep 1.4s ease-in-out infinite;
482
+ }
483
+
484
+ .exp-key[data-tone='white'] .exp-key-shine {
485
+ background: linear-gradient(
486
+ 90deg,
487
+ transparent,
488
+ rgba(106, 93, 249, 0.18),
489
+ transparent
490
+ );
491
+ }
492
+
493
+ /* ExpMedalBadge --------------------------------------------------------- */
494
+
495
+ .exp-medal-octagon {
496
+ clip-path: polygon(
497
+ 30% 0,
498
+ 70% 0,
499
+ 100% 30%,
500
+ 100% 70%,
501
+ 70% 100%,
502
+ 30% 100%,
503
+ 0 70%,
504
+ 0 30%
505
+ );
506
+ }
507
+
508
+ .exp-medal-ribbon {
509
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 68%, 0 100%);
510
+ }
511
+
512
+ /* Skin: titles ---------------------------------------------------------- */
513
+
514
+ :root:has(.exp-scope[data-exp-titles='playful']) [data-orion-part='heading'] {
515
+ font-family: var(--exp-title-font);
516
+ }
517
+
518
+ /* Skin: fields (Input, Select, Textarea, DatePicker) -------------------- */
519
+
520
+ :root:has(.exp-scope) [data-orion-part='field-box'],
521
+ :root:has(.exp-scope) textarea[data-orion-part='field-control'] {
522
+ border: 1px solid var(--exp-field-line);
523
+ background: var(--exp-field-bg);
524
+ box-shadow:
525
+ 0 4px 14px var(--exp-field-drop),
526
+ 0 1px 2px rgba(34, 35, 41, 0.06),
527
+ inset 0 1px 0 var(--exp-field-gloss);
528
+ transition:
529
+ transform 260ms var(--exp-ease-spring),
530
+ box-shadow 260ms ease,
531
+ border-color 200ms ease,
532
+ background 200ms ease;
533
+ }
534
+
535
+ :root:has(.exp-scope) [data-orion-part='field-box'] {
536
+ height: 44px;
537
+ border-radius: 9999px;
538
+ }
539
+
540
+ :root:has(.exp-scope) textarea[data-orion-part='field-control'] {
541
+ border-radius: 20px;
542
+ padding: 12px 20px;
543
+ }
544
+
545
+ :root:has(.exp-scope)
546
+ :is(
547
+ [data-orion-part='field-box']:not(
548
+ :has([data-orion-part='field-control']:disabled)
549
+ ),
550
+ textarea[data-orion-part='field-control']:not(:disabled)
551
+ ):is(:hover, :focus-within) {
552
+ border-color: var(--exp-accent-soft);
553
+ background: var(--exp-field-bg-hover);
554
+ box-shadow:
555
+ 0 10px 28px var(--exp-field-glow),
556
+ 0 2px 6px rgba(106, 93, 249, 0.12),
557
+ inset 0 1px 0 var(--exp-field-gloss);
558
+ }
559
+
560
+ :root:has(.exp-scope)
561
+ :is(
562
+ [data-orion-part='field-box']:focus-within,
563
+ [data-orion-part='field-box']:has(> [aria-expanded='true']),
564
+ textarea[data-orion-part='field-control']:focus
565
+ ) {
566
+ border-color: var(--exp-accent);
567
+ }
568
+
569
+ :root:has(.exp-scope)
570
+ :is(
571
+ [data-orion-part='field-box']:has([aria-invalid='true']),
572
+ textarea[data-orion-part='field-control'][aria-invalid='true']
573
+ ) {
574
+ border-color: var(--color-error);
575
+ }
576
+
577
+ :root:has(.exp-scope)
578
+ :is(
579
+ [data-orion-part='field-box']:has(
580
+ [data-orion-part='field-control']:disabled
581
+ ),
582
+ textarea[data-orion-part='field-control']:disabled
583
+ ) {
584
+ opacity: 0.6;
585
+ cursor: not-allowed;
586
+ }
587
+
588
+ :root:has(.exp-scope)
589
+ [data-orion-part='field-box']:has(> [data-orion-part='field-label']) {
590
+ margin-top: 22px;
591
+ }
592
+
593
+ :root:has(.exp-scope) [data-orion-part='field-outline'] {
594
+ display: none;
595
+ }
596
+
597
+ :root:has(.exp-scope) [data-orion-part='field-label'] {
598
+ padding: 0 0 0 4px;
599
+ color: var(--exp-field-label);
600
+ font-size: 12px;
601
+ font-weight: 600;
602
+ line-height: 16px;
603
+ letter-spacing: normal;
604
+ text-transform: none;
605
+ }
606
+
607
+ :root:has(.exp-scope)
608
+ [data-orion-part='field-box']
609
+ > [data-orion-part='field-label'] {
610
+ top: -23px;
611
+ left: 0;
612
+ }
613
+
614
+ :root:has(.exp-scope)
615
+ [data-orion-part='field']:has([aria-invalid='true'])
616
+ [data-orion-part='field-label'] {
617
+ color: var(--color-error);
618
+ }
619
+
620
+ :root:has(.exp-scope) [data-orion-part='field-control'] {
621
+ background: transparent;
622
+ color: var(--exp-field-ink);
623
+ }
624
+
625
+ :root:has(.exp-scope) [data-orion-part='field-control']::placeholder {
626
+ color: var(--color-gray-2);
627
+ }
628
+
629
+ :root:has(.exp-scope) button[data-orion-part='field-control'][data-empty] {
630
+ color: var(--color-gray-2);
631
+ }
632
+
633
+ :root:has(.exp-scope)
634
+ [data-orion-part='field-box']
635
+ > [data-orion-part='field-icon'] {
636
+ top: 50%;
637
+ translate: 0 -50%;
638
+ color: var(--exp-field-icon);
639
+ transition: color 200ms ease;
640
+ }
641
+
642
+ :root:has(.exp-scope)
643
+ button[data-orion-part='field-control']
644
+ > [data-orion-part='field-icon'] {
645
+ color: var(--exp-field-icon);
646
+ transition:
647
+ color 200ms ease,
648
+ transform 260ms var(--exp-ease-spring);
649
+ }
650
+
651
+ :root:has(.exp-scope)
652
+ [data-orion-part='field-box']:not(
653
+ :has([data-orion-part='field-control']:disabled)
654
+ ):is(:hover, :focus-within, :has(> [aria-expanded='true']))
655
+ [data-orion-part='field-icon'] {
656
+ color: var(--exp-accent);
657
+ }
658
+
659
+ :root:has(.exp-scope) [data-orion-part='field-helper'] {
660
+ padding-left: 20px;
661
+ }
662
+
663
+ :root:has(.exp-scope) [data-orion-part='datepicker-panel'] {
664
+ margin-top: 10px;
665
+ padding: 16px;
666
+ border-color: var(--exp-field-line);
667
+ border-radius: 20px;
668
+ background: var(--exp-field-popover);
669
+ box-shadow:
670
+ 0 16px 40px var(--exp-field-glow),
671
+ 0 2px 6px rgba(34, 35, 41, 0.06);
672
+ }
673
+
674
+ :root:has(.exp-scope) [data-orion-part='datepicker-day'] {
675
+ font-size: 13px;
676
+ }
677
+
678
+ :root:has(.exp-scope) [data-orion-part='datepicker-day'][data-selected] {
679
+ background: linear-gradient(135deg, var(--color-lavender), var(--exp-spark));
680
+ box-shadow: 0 4px 12px rgba(106, 93, 249, 0.35);
681
+ color: var(--color-white);
682
+ }
683
+
684
+ /* Skin: top menu links -------------------------------------------------- */
685
+
686
+ :root:has(.exp-scope)
687
+ [data-orion-part='menu-list'][data-orientation='horizontal']
688
+ [data-orion-part='menu-link']:not(
689
+ [data-orion-part='menu-list'][data-orientation='vertical'] *
690
+ ) {
691
+ --exp-nav-line: linear-gradient(
692
+ 90deg,
693
+ transparent,
694
+ var(--exp-accent) 22%,
695
+ var(--exp-spark) 78%,
696
+ transparent
697
+ );
698
+ font-size: 15px;
699
+ }
700
+
701
+ :root:has(.exp-scope[data-exp-titles='playful'])
702
+ [data-orion-part='menu-list'][data-orientation='horizontal']
703
+ [data-orion-part='menu-link']:not(
704
+ [data-orion-part='menu-list'][data-orientation='vertical'] *
705
+ ) {
706
+ font-family: var(--exp-title-font);
707
+ }
708
+
709
+ :root:has(.exp-scope)
710
+ [data-orion-part='menu-list'][data-orientation='horizontal']
711
+ [data-orion-part='menu-link']:not(
712
+ [data-orion-part='menu-list'][data-orientation='vertical'] *
713
+ )::before {
714
+ background: var(--exp-nav-line);
715
+ opacity: 1;
716
+ transform: scaleX(0);
717
+ transform-origin: left center;
718
+ transition: transform 160ms ease-in;
719
+ }
720
+
721
+ :root:has(.exp-scope)
722
+ [data-orion-part='menu-list'][data-orientation='horizontal']
723
+ [data-orion-part='menu-link']:not(
724
+ [data-orion-part='menu-list'][data-orientation='vertical'] *
725
+ ):is(:hover, :focus-visible)::before {
726
+ transform: scaleX(1);
727
+ transition: transform 260ms var(--exp-ease-out);
728
+ }
729
+
730
+ :root:has(.exp-scope)
731
+ [data-orion-part='menu-list'][data-orientation='horizontal']
732
+ [data-orion-part='menu-link']:not(
733
+ [data-orion-part='menu-list'][data-orientation='vertical'] *
734
+ ):not([aria-current='page']):is(:hover, :focus-visible)::after {
735
+ content: '';
736
+ position: absolute;
737
+ bottom: -11px;
738
+ left: 0;
739
+ width: 4px;
740
+ height: 4px;
741
+ margin-left: -2px;
742
+ border-radius: 9999px;
743
+ background: var(--exp-accent);
744
+ box-shadow: 0 0 4px 1px var(--exp-nav-glow);
745
+ pointer-events: none;
746
+ animation: exp-spark 420ms var(--exp-ease-out) forwards;
747
+ }
748
+
749
+ :root:has(.exp-scope)
750
+ [data-orion-part='menu-list'][data-orientation='horizontal']
751
+ [data-orion-part='menu-link'][aria-current='page']:not(
752
+ [data-orion-part='menu-list'][data-orientation='vertical'] *
753
+ ) {
754
+ font-weight: 500;
755
+ background: radial-gradient(
756
+ 60% 100% at 50% 100%,
757
+ var(--exp-nav-glow),
758
+ transparent 75%
759
+ )
760
+ center calc(100% + 10px) / 100% 14px no-repeat;
761
+ }
762
+
763
+ :root:has(.exp-scope)
764
+ [data-orion-part='menu-list'][data-orientation='horizontal']
765
+ [data-orion-part='menu-link'][aria-current='page']:not(
766
+ [data-orion-part='menu-list'][data-orientation='vertical'] *
767
+ )::before {
768
+ transform: scaleX(1);
769
+ }
770
+
771
+ /* Skin: table rows as cards (ExpScope tables="cards") ------------------- */
772
+
773
+ :root:has(.exp-scope[data-exp-tables='cards']) [data-orion-part='table'] {
774
+ margin-top: -8px;
775
+ border-collapse: separate;
776
+ border-spacing: 0 8px;
777
+ }
778
+
779
+ :root:has(.exp-scope[data-exp-tables='cards']) [data-orion-part='table-head'] {
780
+ border: 0;
781
+ background: transparent;
782
+ color: var(--exp-field-label);
783
+ font-size: 13px;
784
+ line-height: 16px;
785
+ }
786
+
787
+ :root:has(.exp-scope[data-exp-tables='cards'])
788
+ [data-orion-part='table-head']
789
+ > th {
790
+ padding: 10px 16px 2px;
791
+ font-weight: 400;
792
+ white-space: nowrap;
793
+ }
794
+
795
+ :root:has(.exp-scope[data-exp-tables='cards'][data-exp-titles='playful'])
796
+ [data-orion-part='table-head']
797
+ > th {
798
+ font-family: var(--exp-title-font);
799
+ }
800
+
801
+ :root:has(.exp-scope[data-exp-tables='cards']) [data-orion-part='table-row'] {
802
+ border: 0;
803
+ background: transparent;
804
+ outline-offset: 2px;
805
+ }
806
+
807
+ :root:has(.exp-scope[data-exp-tables='cards'])
808
+ [data-orion-part='table-row']
809
+ > td {
810
+ padding: 14px 16px;
811
+ border-top: 1px solid var(--exp-row-edge);
812
+ border-bottom: 1px solid var(--exp-row-edge);
813
+ background: var(--exp-row-bg);
814
+ vertical-align: middle;
815
+ transition:
816
+ transform 240ms var(--exp-ease-spring),
817
+ background 160ms ease,
818
+ border-color 160ms ease;
819
+ }
820
+
821
+ :root:has(.exp-scope[data-exp-tables='cards'])
822
+ [data-orion-part='table-row']
823
+ > td:first-child {
824
+ border-left: 1px solid var(--exp-row-edge);
825
+ border-radius: 14px 0 0 14px;
826
+ }
827
+
828
+ :root:has(.exp-scope[data-exp-tables='cards'])
829
+ [data-orion-part='table-row']
830
+ > td:last-child {
831
+ border-right: 1px solid var(--exp-row-edge);
832
+ border-radius: 0 14px 14px 0;
833
+ }
834
+
835
+ :root:has(.exp-scope[data-exp-tables='cards'])
836
+ [data-orion-part='table-row']:is(:hover, :focus-visible, [data-selected])
837
+ > td {
838
+ border-color: var(--exp-row-edge-hover);
839
+ background: var(--exp-row-bg-hover);
840
+ }
841
+
842
+ /* Hover movement, only without reduced motion --------------------------- */
843
+
844
+ @media (prefers-reduced-motion: no-preference) {
845
+ :is(button, a):is(:hover, :focus-visible):not(:disabled)
846
+ .exp-lens:not(.exp-glyph--disabled)
847
+ .exp-lens-pupil {
848
+ transform: translateX(1.8px);
849
+ }
850
+
851
+ :is(button, a):is(:hover, :focus-visible):not(:disabled) .exp-rotor {
852
+ transform: rotate(var(--exp-rotor-turn, 180deg));
853
+ }
854
+
855
+ :is(button, a):is(:hover, :focus-visible):not(:disabled) .exp-enter-arrow,
856
+ :is(button, a):is(:hover, :focus-visible):not(:disabled) .exp-arrow {
857
+ transform: translateX(3px);
858
+ }
859
+
860
+ :root:has(.exp-scope)
861
+ :is(
862
+ [data-orion-part='field-box']:not(
863
+ :has([data-orion-part='field-control']:disabled)
864
+ ),
865
+ textarea[data-orion-part='field-control']:not(:disabled)
866
+ ):is(:hover, :focus-within) {
867
+ transform: translateY(-2px);
868
+ }
869
+
870
+ :root:has(.exp-scope)
871
+ button[data-orion-part='field-control']:not(:disabled):is(
872
+ :hover,
873
+ :focus-visible,
874
+ [aria-expanded='true']
875
+ )
876
+ > [data-orion-part='field-icon'] {
877
+ transform: rotate(-8deg) scale(1.06);
878
+ }
879
+
880
+ :root:has(.exp-scope[data-exp-tables='cards'])
881
+ [data-orion-part='table-row']:is(:hover, :focus-visible, [data-selected])
882
+ > td {
883
+ transform: translateY(-2px);
884
+ }
885
+ }
886
+
887
+ @media (prefers-reduced-motion: reduce) {
888
+ .exp-float,
889
+ .exp-hang,
890
+ .exp-hint-pulse,
891
+ .exp-lens-lid,
892
+ .exp-glyph--busy .exp-lens-pupil,
893
+ .exp-glyph--busy .exp-rotor,
894
+ .exp-glyph--busy .exp-enter-arrow,
895
+ .exp-key-shine {
896
+ animation: none;
897
+ }
898
+
899
+ .exp-key {
900
+ transform: none;
901
+ }
902
+
903
+ .exp-key,
904
+ .exp-lens-pupil,
905
+ .exp-rotor,
906
+ .exp-enter-arrow,
907
+ .exp-arrow,
908
+ :root:has(.exp-scope) [data-orion-part='field-box'],
909
+ :root:has(.exp-scope) textarea[data-orion-part='field-control'],
910
+ :root:has(.exp-scope) [data-orion-part='field-icon'],
911
+ :root:has(.exp-scope) [data-orion-part='table-row'] > td,
912
+ :root:has(.exp-scope) [data-orion-part='menu-link']::before {
913
+ transition: none;
914
+ }
915
+
916
+ :root:has(.exp-scope) [data-orion-part='menu-link']::after {
917
+ animation: none;
918
+ }
919
+ }