/* Generated by scripts/generate-springs.mjs — do not edit by hand.
 *
 * Spring physics sampled into CSS `linear()` easings, so the interface can
 * overshoot and settle like a real object without shipping an animation
 * library. Each token names an intent, not a number; use the matching duration
 * variable with it so the curve is not stretched out of shape.
 *
 * Regenerate with: node scripts/generate-springs.mjs
 */
:root {
  /* buttons, chips, small controls — responds immediately, settles with a hint of life
     visual duration 0.28s · bounce 0.2 · settles in 434ms */
  --spring-snappy-duration: 434ms;
  --spring-snappy: linear(0, 0.0104, 0.0384, 0.0797, 0.1307, 0.1881, 0.2496, 0.3129, 0.3765, 0.439, 0.4993, 0.5568, 0.6109, 0.6613, 0.7076, 0.7499, 0.7882, 0.8225, 0.8531, 0.8801, 0.9037, 0.9242, 0.9418, 0.9568, 0.9695, 0.9801, 0.9888, 0.9959, 1.0015, 1.006, 1.0093, 1.0117, 1.0134, 1.0145, 1.015, 1.0152, 1.015, 1.0145, 1.0138, 1.013, 1.0122, 1.0112, 1.0103, 1.0093, 1.0084, 1.0074, 1.0066, 1.0058, 1.005, 1.0043, 1.0037, 1.0031, 1.0026, 1.0022, 1);

  /* cards and panels — arrives without overshoot, so dense grids stay calm
     visual duration 0.42s · bounce 0 · settles in 609ms */
  --spring-smooth-duration: 609ms;
  --spring-smooth: linear(0, 0.0047, 0.0175, 0.0369, 0.0614, 0.09, 0.1217, 0.1556, 0.1909, 0.2272, 0.2639, 0.3006, 0.3369, 0.3727, 0.4077, 0.4417, 0.4745, 0.5062, 0.5366, 0.5657, 0.5934, 0.6198, 0.6449, 0.6686, 0.691, 0.7122, 0.7321, 0.7508, 0.7684, 0.7849, 0.8004, 0.8149, 0.8284, 0.841, 0.8528, 0.8637, 0.8739, 0.8835, 0.8923, 0.9005, 0.9081, 0.9152, 0.9218, 0.9278, 0.9335, 0.9387, 0.9435, 0.9479, 0.9521, 0.9559, 0.9594, 0.9626, 0.9656, 0.9684, 0.971, 0.9733, 0.9755, 0.9775, 0.9793, 0.981, 0.9826, 0.984, 0.9853, 0.9865, 0.9876, 0.9887, 0.9896, 0.9905, 0.9913, 0.992, 0.9927, 0.9933, 0.9938, 0.9944, 0.9948, 0.9953, 1);

  /* things that pop into existence — dialog, toast, count badge
     visual duration 0.5s · bounce 0.34 · settles in 730ms */
  --spring-bouncy-duration: 730ms;
  --spring-bouncy: linear(0, 0.0035, 0.0134, 0.029, 0.0495, 0.0744, 0.1029, 0.1345, 0.1687, 0.2049, 0.2427, 0.2817, 0.3214, 0.3615, 0.4018, 0.4418, 0.4814, 0.5204, 0.5585, 0.5955, 0.6314, 0.666, 0.6992, 0.731, 0.7612, 0.7898, 0.8168, 0.8422, 0.866, 0.8882, 0.9088, 0.9278, 0.9453, 0.9613, 0.9759, 0.9891, 1.001, 1.0116, 1.021, 1.0293, 1.0365, 1.0426, 1.0479, 1.0522, 1.0558, 1.0585, 1.0606, 1.0621, 1.0629, 1.0633, 1.0632, 1.0626, 1.0617, 1.0605, 1.059, 1.0572, 1.0553, 1.0531, 1.0509, 1.0485, 1.046, 1.0435, 1.041, 1.0385, 1.0359, 1.0334, 1.0309, 1.0285, 1.0261, 1.0238, 1.0216, 1.0195, 1.0175, 1.0156, 1.0137, 1.012, 1.0104, 1.0088, 1.0074, 1.0061, 1.0048, 1.0037, 1.0027, 1.0017, 1.0009, 1.0001, 0.9994, 0.9988, 0.9983, 0.9978, 1);

  /* large surfaces — drawer, scroll reveals
     visual duration 0.72s · bounce 0.06 · settles in 863ms */
  --spring-gentle-duration: 863ms;
  --spring-gentle: linear(0, 0.0023, 0.0089, 0.0192, 0.0327, 0.0489, 0.0675, 0.0881, 0.1102, 0.1338, 0.1583, 0.1837, 0.2097, 0.2361, 0.2627, 0.2894, 0.3161, 0.3426, 0.3688, 0.3947, 0.4202, 0.4452, 0.4696, 0.4935, 0.5167, 0.5393, 0.5612, 0.5824, 0.6029, 0.6227, 0.6418, 0.6601, 0.6778, 0.6948, 0.711, 0.7266, 0.7415, 0.7558, 0.7694, 0.7824, 0.7948, 0.8066, 0.8178, 0.8285, 0.8387, 0.8483, 0.8575, 0.8661, 0.8743, 0.8821, 0.8895, 0.8964, 0.903, 0.9092, 0.9151, 0.9206, 0.9258, 0.9307, 0.9354, 0.9397, 0.9438, 0.9476, 0.9512, 0.9546, 0.9578, 0.9608, 0.9636, 0.9662, 0.9686, 0.9709, 0.9731, 0.9751, 0.9769, 0.9787, 0.9803, 0.9818, 0.9832, 0.9846, 0.9858, 0.9869, 0.988, 0.989, 0.9899, 0.9907, 0.9915, 0.9922, 0.9929, 0.9935, 0.9941, 0.9946, 1);

  /* Classic curves for properties springs should not drive. Opacity and colour
     have no momentum — springing them makes a fade look like a flicker. */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}
