/* Spring to linear(): baked springs + the in-view rise.
   The tokens below are the motion spring (Framer's) sampled every 10 ms (max 120 stops) by part.js, so a plain
   CSS transition runs on a real spring with no JS: transition: transform var(--spring-400-b20-dur) var(--spring-400-b20).
   Duration springs (NNNN-bXX = ms + bounce %) end exactly on their duration; physics springs (kSTIFF-dDAMP) last
   until they settle. Bake more with: node bake.cjs "duration:.6 bounce:.3" (or SpringLinear.css() at runtime). */
:root {
  /* duration:1.5 bounce:.1 - ClipCut in-view rise (y 50 -> 0); overshoot 0.15% */
  --spring-1500-b10: linear(0, 0.0024, 0.0092, 0.0198, 0.0337, 0.0506, 0.0698, 0.0911, 0.1142, 0.1386, 0.1641, 0.1906, 0.2176, 0.2451, 0.2729, 0.3007, 0.3285, 0.3561, 0.3835, 0.4104, 0.4369, 0.4629, 0.4883, 0.5131, 0.5372, 0.5605, 0.5832, 0.6051, 0.6262, 0.6466, 0.6662, 0.685, 0.703, 0.7203, 0.7368, 0.7526, 0.7677, 0.782, 0.7957, 0.8086, 0.821, 0.8327, 0.8438, 0.8542, 0.8642, 0.8735, 0.8824, 0.8907, 0.8986, 0.906, 0.9129, 0.9195, 0.9256, 0.9313, 0.9367, 0.9418, 0.9465, 0.9509, 0.955, 0.9588, 0.9623, 0.9656, 0.9687, 0.9716, 0.9742, 0.9767, 0.9789, 0.981, 0.983, 0.9848, 0.9864, 0.9879, 0.9893, 0.9906, 0.9917, 0.9928, 0.9938, 0.9946, 0.9954, 0.9962, 0.9968, 0.9974, 0.998, 0.9984, 0.9989, 0.9993, 0.9996, 0.9999, 1.0002, 1.0004, 1.0006, 1.0008, 1.0009, 1.0011, 1.0012, 1.0013, 1.0013, 1.0014, 1.0015, 1.0015, 1.0015, 1.0015, 1.0015, 1.0015, 1.0015, 1.0015, 1.0015, 1.0014, 1.0014, 1.0014, 1.0013, 1.0013, 1.0013, 1.0012, 1.0012, 1.0011, 1.0011, 1.0011, 1.001, 1.001, 1);
  --spring-1500-b10-dur: 1500ms;
  /* duration:.4 bounce:.2 - Framer's default transition: hovers, variant swaps, ClipCut + Vestris nav; overshoot 1.52% */
  --spring-400-b20: linear(0, 0.0224, 0.0794, 0.1581, 0.2486, 0.3435, 0.4375, 0.5269, 0.6093, 0.6833, 0.7484, 0.8044, 0.8518, 0.8911, 0.9231, 0.9487, 0.9688, 0.9841, 0.9954, 1.0036, 1.0091, 1.0125, 1.0144, 1.0151, 1.015, 1.0142, 1.0131, 1.0118, 1.0104, 1.0089, 1.0076, 1.0063, 1.0051, 1.0041, 1.0032, 1.0024, 1.0018, 1.0013, 1.0009, 1.0006, 1);
  --spring-400-b20-dur: 400ms;
  /* duration:.8 bounce:.2 - ClipCut fade-ins; overshoot 1.52% */
  --spring-800-b20: linear(0, 0.006, 0.0224, 0.0475, 0.0794, 0.1167, 0.1581, 0.2024, 0.2486, 0.2959, 0.3435, 0.3909, 0.4375, 0.483, 0.5269, 0.5691, 0.6093, 0.6474, 0.6833, 0.717, 0.7484, 0.7775, 0.8044, 0.8291, 0.8518, 0.8724, 0.8911, 0.908, 0.9231, 0.9367, 0.9487, 0.9594, 0.9688, 0.977, 0.9841, 0.9902, 0.9954, 0.9999, 1.0036, 1.0066, 1.0091, 1.011, 1.0125, 1.0137, 1.0144, 1.0149, 1.0151, 1.0151, 1.015, 1.0147, 1.0142, 1.0137, 1.0131, 1.0125, 1.0118, 1.0111, 1.0104, 1.0096, 1.0089, 1.0082, 1.0076, 1.0069, 1.0063, 1.0057, 1.0051, 1.0046, 1.0041, 1.0036, 1.0032, 1.0028, 1.0024, 1.0021, 1.0018, 1.0015, 1.0013, 1.0011, 1.0009, 1.0007, 1.0006, 1.0004, 1);
  --spring-800-b20-dur: 800ms;
  /* duration:.4 bounce:0 - ClipCut blur-word reveal, Sadewa --spring-fast; overshoot 0.00% */
  --spring-400-b0: linear(0, 0.0229, 0.0788, 0.1532, 0.2361, 0.3208, 0.403, 0.4802, 0.5509, 0.6146, 0.6711, 0.7207, 0.7638, 0.801, 0.8329, 0.8601, 0.8832, 0.9027, 0.9191, 0.9329, 0.9445, 0.9541, 0.9621, 0.9688, 0.9743, 0.9789, 0.9827, 0.9858, 0.9884, 0.9905, 0.9922, 0.9936, 0.9948, 0.9958, 0.9965, 0.9972, 0.9977, 0.9981, 0.9985, 0.9988, 1);
  --spring-400-b0-dur: 400ms;
  /* duration:1 bounce:0 - Sadewa block reveal; overshoot 0.00% */
  --spring-1000-b0: linear(0, 0.004, 0.0151, 0.032, 0.0535, 0.0788, 0.107, 0.1374, 0.1694, 0.2024, 0.2361, 0.27, 0.3039, 0.3375, 0.3706, 0.403, 0.4346, 0.4652, 0.4949, 0.5234, 0.5509, 0.5772, 0.6024, 0.6264, 0.6493, 0.6711, 0.6917, 0.7113, 0.7298, 0.7473, 0.7638, 0.7793, 0.794, 0.8078, 0.8207, 0.8329, 0.8443, 0.855, 0.865, 0.8744, 0.8832, 0.8914, 0.8991, 0.9062, 0.9129, 0.9191, 0.925, 0.9304, 0.9354, 0.9401, 0.9445, 0.9485, 0.9523, 0.9558, 0.9591, 0.9621, 0.9649, 0.9676, 0.97, 0.9722, 0.9743, 0.9763, 0.978, 0.9797, 0.9812, 0.9827, 0.984, 0.9852, 0.9863, 0.9874, 0.9884, 0.9893, 0.9901, 0.9908, 0.9916, 0.9922, 0.9928, 0.9934, 0.9939, 0.9944, 0.9948, 0.9952, 0.9956, 0.9959, 0.9963, 0.9965, 0.9968, 0.9971, 0.9973, 0.9975, 0.9977, 0.9979, 0.9981, 0.9982, 0.9984, 0.9985, 0.9986, 0.9987, 0.9988, 0.9989, 1);
  --spring-1000-b0-dur: 1000ms;
  /* duration:2 bounce:0 - ClipCut stat counters; overshoot 0.00% */
  --spring-2000-b0: linear(0, 0.0028, 0.0107, 0.0229, 0.0387, 0.0575, 0.0788, 0.1021, 0.1271, 0.1532, 0.1803, 0.208, 0.2361, 0.2643, 0.2926, 0.3208, 0.3486, 0.376, 0.403, 0.4294, 0.4551, 0.4802, 0.5045, 0.5281, 0.5509, 0.5729, 0.5941, 0.6146, 0.6342, 0.653, 0.6711, 0.6883, 0.7049, 0.7207, 0.7357, 0.7501, 0.7638, 0.7768, 0.7892, 0.801, 0.8122, 0.8228, 0.8329, 0.8425, 0.8515, 0.8601, 0.8682, 0.8759, 0.8832, 0.8901, 0.8966, 0.9027, 0.9085, 0.914, 0.9191, 0.924, 0.9286, 0.9329, 0.937, 0.9409, 0.9445, 0.9479, 0.9511, 0.9541, 0.957, 0.9596, 0.9621, 0.9645, 0.9667, 0.9688, 0.9708, 0.9726, 0.9743, 0.9759, 0.9775, 0.9789, 0.9802, 0.9815, 0.9827, 0.9838, 0.9848, 0.9858, 0.9867, 0.9876, 0.9884, 0.9891, 0.9898, 0.9905, 0.9911, 0.9917, 0.9922, 0.9927, 0.9932, 0.9936, 0.9941, 0.9944, 0.9948, 0.9951, 0.9955, 0.9958, 0.996, 0.9963, 0.9965, 0.9968, 0.997, 0.9972, 0.9974, 0.9975, 0.9977, 0.9979, 0.998, 0.9981, 0.9983, 0.9984, 0.9985, 0.9986, 0.9987, 0.9988, 0.9989, 0.9989, 1);
  --spring-2000-b0-dur: 2000ms;
  /* stiffness:622 damping:108 - ClipCut 3D carousel follower (settles 1070ms); overshoot 0.00% */
  --spring-k622-d108: linear(0, 0.0223, 0.0668, 0.1173, 0.1678, 0.2165, 0.2626, 0.3062, 0.3473, 0.3859, 0.4223, 0.4565, 0.4887, 0.5189, 0.5474, 0.5742, 0.5994, 0.6232, 0.6455, 0.6665, 0.6862, 0.7048, 0.7223, 0.7387, 0.7542, 0.7688, 0.7825, 0.7953, 0.8075, 0.8189, 0.8296, 0.8397, 0.8492, 0.8581, 0.8665, 0.8744, 0.8818, 0.8888, 0.8954, 0.9016, 0.9074, 0.9129, 0.9181, 0.9229, 0.9275, 0.9318, 0.9358, 0.9396, 0.9432, 0.9466, 0.9497, 0.9527, 0.9555, 0.9581, 0.9606, 0.963, 0.9651, 0.9672, 0.9692, 0.971, 0.9727, 0.9743, 0.9758, 0.9773, 0.9786, 0.9799, 0.9811, 0.9822, 0.9832, 0.9842, 0.9852, 0.986, 0.9869, 0.9877, 0.9884, 0.9891, 0.9897, 0.9903, 0.9909, 0.9914, 0.9919, 0.9924, 0.9929, 0.9933, 0.9937, 0.9941, 0.9944, 0.9947, 0.9951, 0.9954, 0.9956, 0.9959, 0.9961, 0.9964, 0.9966, 0.9968, 0.997, 0.9971, 0.9973, 0.9975, 0.9976, 0.9978, 0.9979, 0.998, 0.9981, 0.9982, 0.9984, 1);
  --spring-k622-d108-dur: 1070ms;
  /* stiffness:400 damping:100 - ClipCut hero lede words (settles 1460ms); overshoot 0.00% */
  --spring-k400-d100: linear(0, 0.0204, 0.0599, 0.1036, 0.1471, 0.1891, 0.2291, 0.2673, 0.3036, 0.338, 0.3708, 0.402, 0.4316, 0.4597, 0.4865, 0.5119, 0.5361, 0.5591, 0.5809, 0.6016, 0.6214, 0.6401, 0.6579, 0.6749, 0.691, 0.7063, 0.7208, 0.7346, 0.7478, 0.7603, 0.7721, 0.7834, 0.7942, 0.8043, 0.814, 0.8232, 0.832, 0.8403, 0.8482, 0.8557, 0.8629, 0.8697, 0.8761, 0.8823, 0.8881, 0.8936, 0.8989, 0.9039, 0.9087, 0.9132, 0.9175, 0.9216, 0.9255, 0.9291, 0.9327, 0.936, 0.9392, 0.9422, 0.945, 0.9478, 0.9503, 0.9528, 0.9551, 0.9574, 0.9595, 0.9615, 0.9634, 0.9652, 0.9669, 0.9686, 0.9701, 0.9716, 0.973, 0.9743, 0.9756, 0.9768, 0.978, 0.9791, 0.9801, 0.9811, 0.982, 0.9829, 0.9838, 0.9846, 0.9853, 0.9861, 0.9867, 0.9874, 0.988, 0.9886, 0.9892, 0.9897, 0.9902, 0.9907, 0.9912, 0.9916, 0.992, 0.9924, 0.9928, 0.9931, 0.9935, 0.9938, 0.9941, 0.9944, 0.9947, 0.9949, 0.9952, 0.9954, 0.9957, 0.9959, 0.9961, 0.9963, 0.9965, 0.9966, 0.9968, 0.997, 0.9971, 0.9973, 0.9974, 0.9975, 1);
  --spring-k400-d100-dur: 1460ms;
}
/* browsers without linear() (Chrome < 113, Safari < 17.2, Firefox < 112): a soft ease-out instead of a hard cut */
@supports not (transition-timing-function: linear(0, 1)) {
  :root {
    --spring-1500-b10: cubic-bezier(.22, 1, .36, 1); --spring-400-b20: cubic-bezier(.22, 1.2, .36, 1);
    --spring-800-b20: cubic-bezier(.22, 1.2, .36, 1); --spring-400-b0: cubic-bezier(.22, 1, .36, 1);
    --spring-1000-b0: cubic-bezier(.22, 1, .36, 1); --spring-2000-b0: cubic-bezier(.22, 1, .36, 1);
    --spring-k622-d108: cubic-bezier(.22, 1, .36, 1); --spring-k400-d100: cubic-bezier(.22, 1, .36, 1);
  }
}

/* In-view rise (ClipCut block reveal): y 50 -> 0 + opacity 0 -> 1 on a 1.5 s / bounce .1 spring.
   part.js adds .spring-rise-ready to <html> (so nothing hides without JS) and .is-in when the element is in view.
   Knobs: --rise-y (50px), --rise-delay (0s; ClipCut staggers .2s apart), --spring / --spring-dur (the curve,
   set per element from data-spring; defaults to the baked 1500-b10). */
.spring-rise-ready .spring-rise {
  opacity: 0;
  transform: translateY(var(--rise-y, 50px));
}
.spring-rise-ready .spring-rise.is-in {
  opacity: 1;
  transform: none;
  transition:
    transform var(--spring-dur, var(--spring-1500-b10-dur)) var(--spring, var(--spring-1500-b10)) var(--rise-delay, 0s),
    opacity var(--spring-dur, var(--spring-1500-b10-dur)) var(--spring, var(--spring-1500-b10)) var(--rise-delay, 0s);
}
.spring-rise-ready .spring-rise.is-snap { transition: none; }
@media (prefers-reduced-motion: reduce) {
  .spring-rise-ready .spring-rise, .spring-rise-ready .spring-rise.is-in { opacity: 1; transform: none; transition: none; }
}
