/*
 * Launch splash — the owner's reference loader (Quik concept, 2026-10-14) in the app's own
 * colours (lavender canvas, brand purple, ink):
 *   0.06s  the logotype's letters arrive one by one, then the tagline — a short pause;
 *   0.75s  a purple glass app tile (brand shape) blooms out from behind them with a soft halo;
 *          the logo and tagline turn white exactly where the tile reaches (the white copy is
 *          masked to the tile and counter-scaled, so it stays put); the tile breathes;
 *   1.47s  every letter but the "O" leaves; the O turns purple and glides to the tile's centre;
 *   1.81s  the O becomes a glowing ring that thickens, then floods the screen purple, leaving a
 *          small eye of the app's colour in the middle;
 *   ready  main.tsx adds .is-out: the eye opens onto the app and the splash fades.
 * Smoothness: everything moves with transform and opacity only (compositor-run, so the app bundle
 * loading on the main thread cannot drop frames); colour changes are cross-fades between layers.
 * Plain CSS file (not inline) because the CSP allows styles only from 'self'; the brand shape is
 * inlined because global.css (with --brand-shape) only arrives with the app bundle.
 */
.splash {
  --ink: #1b1830;
  --brand: #694ae8;
  --canvas: #edebf9; /* = --c-bg */
  --out: cubic-bezier(0.22, 1, 0.36, 1);
  --inout: cubic-bezier(0.65, 0, 0.35, 1);
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: radial-gradient(circle at 50% 50%, #fff 0, rgb(255 255 255 / 0%) 55%), var(--canvas);
}

.splash.is-out {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease 0.5s;
}

.splash .glyphs {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.splash .stage {
  position: relative;
  width: 190px;
  height: 190px;
}

.splash .stage > *,
.splash .flood,
.splash .eye {
  position: absolute;
  will-change: transform, opacity;
}

/* Soft brand glow behind the tile (a gradient, not a filter). */
.splash .halo {
  inset: -70px;
  border-radius: 50%;
  background: radial-gradient(closest-side, rgb(105 74 232 / 34%), rgb(105 74 232 / 0%));
  opacity: 0;
  transform: scale(0.7);
  animation: splash-halo 1.1s var(--inout) 0.75s forwards;
}

/* Glass tile: brand shape, purple pane with a top-left sheen; no rim. The white logotype and
   tagline sit inside it, so they show only where the tile is. */
.splash .reveal {
  inset: 0;
  -webkit-mask: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 36 36%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M9.61066 0.563115C11.7099 0.265366 13.9914 0.032615 16.1052 0.00608145C16.4283 0.00202569 16.7447 0 17.0526 0C17.3606 0 19.5716 0.00202569 19.8947 0.00608145C22.0069 0.032594 24.2864 0.264997 26.3843 0.562407C31.1031 1.23138 34.7686 4.8969 35.4375 9.61572C35.7349 11.7135 35.9673 13.993 35.9938 16.1051C35.9978 16.4282 36 16.7446 36 17.0526C36 17.3605 35.9978 19.5715 35.9938 19.8946C35.9673 22.0068 35.7349 24.2863 35.4375 26.3841C34.7686 31.103 31.103 34.7686 26.3841 35.4375C24.2863 35.7349 22.0069 35.9673 19.8947 35.9938C19.7747 35.9953 19.3941 35.9966 18.9474 35.9975C18.1915 35.9992 17.2462 36 17.0526 36C16.7447 36 16.4284 35.9979 16.1053 35.9938C13.9914 35.9673 11.71 35.7346 9.61079 35.4368C4.89462 34.7679 1.2301 31.1058 0.561045 26.3896C0.263275 24.2907 0.030916 22.0092 0.00556542 19.8947C0.0041967 19.7806 0.00307556 19.3979 0.00220744 18.9474C0.000744452 18.1882 0 17.2364 0 17.0526C0 16.7599 0.0018901 16.4118 0.00556542 16.1053C0.0309165 13.9907 0.263283 11.7093 0.561061 9.61024C1.23011 4.89416 4.89456 1.23203 9.61066 0.563115Z%22/%3E%3C/svg%3E')
    center / 100% 100% no-repeat;
  mask: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 36 36%22 preserveAspectRatio=%22none%22%3E%3Cpath d=%22M9.61066 0.563115C11.7099 0.265366 13.9914 0.032615 16.1052 0.00608145C16.4283 0.00202569 16.7447 0 17.0526 0C17.3606 0 19.5716 0.00202569 19.8947 0.00608145C22.0069 0.032594 24.2864 0.264997 26.3843 0.562407C31.1031 1.23138 34.7686 4.8969 35.4375 9.61572C35.7349 11.7135 35.9673 13.993 35.9938 16.1051C35.9978 16.4282 36 16.7446 36 17.0526C36 17.3605 35.9978 19.5715 35.9938 19.8946C35.9673 22.0068 35.7349 24.2863 35.4375 26.3841C34.7686 31.103 31.103 34.7686 26.3841 35.4375C24.2863 35.7349 22.0069 35.9673 19.8947 35.9938C19.7747 35.9953 19.3941 35.9966 18.9474 35.9975C18.1915 35.9992 17.2462 36 17.0526 36C16.7447 36 16.4284 35.9979 16.1053 35.9938C13.9914 35.9673 11.71 35.7346 9.61079 35.4368C4.89462 34.7679 1.2301 31.1058 0.561045 26.3896C0.263275 24.2907 0.030916 22.0092 0.00556542 19.8947C0.0041967 19.7806 0.00307556 19.3979 0.00220744 18.9474C0.000744452 18.1882 0 17.2364 0 17.0526C0 16.7599 0.0018901 16.4118 0.00556542 16.1053C0.0309165 13.9907 0.263283 11.7093 0.561061 9.61024C1.23011 4.89416 4.89456 1.23203 9.61066 0.563115Z%22/%3E%3C/svg%3E')
    center / 100% 100% no-repeat;
  opacity: 0;
  transform: scale(0.2);
  animation: splash-reveal 1.05s linear 0.75s forwards;
}

.splash .inner,
.splash .pane {
  position: absolute;
  inset: 0;
}

.splash .inner > * {
  position: absolute;
}

.splash .inner {
  transform: scale(5);
  animation: splash-reveal-inner 1.05s linear 0.75s forwards;
}

.splash .pane {
  background:
    radial-gradient(120% 75% at 22% 0%, rgb(255 255 255 / 30%), rgb(255 255 255 / 0%) 55%),
    linear-gradient(160deg, #8a6ef3, var(--brand) 50%, #5536cf);
}

.splash .word {
  top: 50%;
  left: 50%;
  width: 150px;
  height: 40px;
  margin: -34px 0 0 -75px;
}

.splash .layer {
  position: absolute;
  inset: 0;
}

.splash .violet {
  opacity: 0;
}

/* The dark copy hides once the tile covers it (unseen under the pane), so it cannot show again
   when the tile dissolves. */
.splash .word .ink {
  animation: splash-fade-out 0.15s linear 1.05s forwards;
}

.splash .word .lit {
  animation: splash-fade-out 0.25s var(--inout) 1.6s forwards;
}

.splash .violet {
  animation: splash-fade-in 0.25s var(--inout) 1.6s forwards;
}

.splash .l {
  position: absolute;
  overflow: visible;
  opacity: 0;
  transform: translateX(-10px);
  animation:
    splash-letter-in 0.55s var(--out) var(--in) forwards,
    splash-letter-out 0.3s var(--inout) 1.47s forwards;
}

.splash .l1 {
  --in: 0.06s;
  animation:
    splash-letter-in 0.55s var(--out) var(--in) forwards,
    splash-o-centre 0.38s var(--inout) 1.5s forwards,
    splash-fade-out 0.18s ease 1.87s forwards;
}

.splash .l2 {
  --in: 0.1s;
}

.splash .l3 {
  --in: 0.14s;
}

.splash .l4 {
  --in: 0.18s;
}

.splash .l5 {
  --in: 0.22s;
}

.splash .l1 {
  left: 0px;
  top: 0.47px;
  width: 39.47px;
  height: 39.47px;
}

.splash .l2 {
  left: 42.63px;
  top: 0px;
  width: 18.93px;
  height: 39.94px;
}

.splash .l3 {
  left: 64.72px;
  top: 10.73px;
  width: 29.21px;
  height: 29.21px;
}

.splash .l4 {
  left: 97.09px;
  top: 10.71px;
  width: 41.5px;
  height: 29.23px;
}

.splash .l5 {
  left: 141.74px;
  top: 0px;
  width: 8.23px;
  height: 39.94px;
}

.splash .tagline {
  top: calc(50% + 18px);
  left: 0;
  right: 0;
  margin: 0;
  text-align: center;
  font-family: 'Peyda', system-ui, tahoma, sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
}

.splash .tagline.ink {
  color: #6b6880;
  opacity: 0;
  transform: translateY(6px);
  animation:
    splash-rise-in 0.5s var(--out) 0.3s forwards,
    splash-fade-out 0.15s linear 1.05s forwards;
}

.splash .tagline.lit {
  color: rgb(255 255 255 / 85%);
  animation: splash-letter-out 0.3s var(--inout) 1.44s forwards;
}

/* The O's ring: a thin ring cross-fading into a thick one while both grow. */
.splash .orb {
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  margin: -20px;
  box-sizing: border-box;
  border-radius: 50%;
  opacity: 0;
}

.splash .orb.thin {
  border: 6px solid var(--brand);
  box-shadow: 0 0 18px 2px rgb(105 74 232 / 40%);
  animation: splash-orb-thin 0.38s var(--inout) 1.81s forwards;
}

.splash .orb.thick {
  border: 15px solid var(--brand);
  box-shadow: 0 0 26px 6px rgb(105 74 232 / 45%);
  animation: splash-orb-thick 0.36s var(--inout) 1.92s forwards;
}

/* Flood and eye: small circles scaled up (raster stays light), centred on the stage. */
.splash .flood,
.splash .eye {
  top: 50%;
  left: 50%;
  width: 24vmax;
  height: 24vmax;
  margin: -12vmax;
  border-radius: 50%;
}

.splash .flood {
  background: var(--brand);
  opacity: 0;
  transform: scale(0.2);
  animation: splash-flood 0.42s var(--inout) 2.06s forwards;
}

.splash .eye {
  background: var(--canvas);
  opacity: 0;
  transform: scale(0.05);
  transition: scale 0.65s var(--inout);
  animation: splash-fade-in 0.22s var(--out) 2.26s forwards;
}

.splash.is-out .eye {
  scale: 170;
}

@keyframes splash-letter-in {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes splash-letter-out {
  to {
    opacity: 0;
    transform: translateX(8px);
  }
}

@keyframes splash-rise-in {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes splash-fade-in {
  to {
    opacity: 1;
  }
}

@keyframes splash-fade-out {
  to {
    opacity: 0;
  }
}

/* O centre → tile centre (the word sits 14px above it). */
@keyframes splash-o-centre {
  from {
    opacity: 1;
    transform: none;
  }
  to {
    opacity: 1;
    transform: translate(55.26px, 13.79px);
  }
}

@keyframes splash-halo {
  0% {
    opacity: 0;
    transform: scale(0.7);
  }
  45% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(1.25);
  }
}

/* One continuous bloom and breath (sampled from scaleAt() in the generator): grow from 20% with an
   ease-out, settle, swell, dissolve. The inner copy runs the exact inverse scale at every stop. */
@keyframes splash-reveal {
  0% {
    opacity: 0;
    transform: scale(0.2);
  }
  0.05% {
    opacity: 0.008;
    transform: scale(0.2034);
  }
  0.152% {
    opacity: 0.025;
    transform: scale(0.2103);
  }
  0.29% {
    opacity: 0.048;
    transform: scale(0.2197);
  }
  0.46% {
    opacity: 0.077;
    transform: scale(0.2311);
  }
  0.657% {
    opacity: 0.109;
    transform: scale(0.2442);
  }
  0.879% {
    opacity: 0.147;
    transform: scale(0.2588);
  }
  1.125% {
    opacity: 0.188;
    transform: scale(0.2747);
  }
  1.393% {
    opacity: 0.232;
    transform: scale(0.2918);
  }
  1.682% {
    opacity: 0.28;
    transform: scale(0.3099);
  }
  1.991% {
    opacity: 0.332;
    transform: scale(0.3289);
  }
  2.319% {
    opacity: 0.386;
    transform: scale(0.3487);
  }
  2.665% {
    opacity: 0.444;
    transform: scale(0.3692);
  }
  3.029% {
    opacity: 0.505;
    transform: scale(0.3903);
  }
  3.411% {
    opacity: 0.568;
    transform: scale(0.4118);
  }
  3.809% {
    opacity: 0.635;
    transform: scale(0.4338);
  }
  4.223% {
    opacity: 0.704;
    transform: scale(0.456);
  }
  4.653% {
    opacity: 0.776;
    transform: scale(0.4785);
  }
  5.099% {
    opacity: 0.85;
    transform: scale(0.5012);
  }
  5.559% {
    opacity: 0.927;
    transform: scale(0.5239);
  }
  6.035% {
    opacity: 1;
    transform: scale(0.5466);
  }
  6.525% {
    opacity: 1;
    transform: scale(0.5692);
  }
  7.029% {
    opacity: 1;
    transform: scale(0.5917);
  }
  7.547% {
    opacity: 1;
    transform: scale(0.614);
  }
  8.079% {
    opacity: 1;
    transform: scale(0.636);
  }
  8.624% {
    opacity: 1;
    transform: scale(0.6576);
  }
  9.183% {
    opacity: 1;
    transform: scale(0.6789);
  }
  9.755% {
    opacity: 1;
    transform: scale(0.6998);
  }
  10.339% {
    opacity: 1;
    transform: scale(0.7202);
  }
  10.936% {
    opacity: 1;
    transform: scale(0.74);
  }
  11.546% {
    opacity: 1;
    transform: scale(0.7593);
  }
  12.168% {
    opacity: 1;
    transform: scale(0.7779);
  }
  12.802% {
    opacity: 1;
    transform: scale(0.7959);
  }
  13.448% {
    opacity: 1;
    transform: scale(0.8132);
  }
  14.106% {
    opacity: 1;
    transform: scale(0.8298);
  }
  14.775% {
    opacity: 1;
    transform: scale(0.8456);
  }
  15.456% {
    opacity: 1;
    transform: scale(0.8607);
  }
  16.149% {
    opacity: 1;
    transform: scale(0.875);
  }
  16.853% {
    opacity: 1;
    transform: scale(0.8885);
  }
  17.568% {
    opacity: 1;
    transform: scale(0.9012);
  }
  18.295% {
    opacity: 1;
    transform: scale(0.913);
  }
  19.032% {
    opacity: 1;
    transform: scale(0.924);
  }
  19.78% {
    opacity: 1;
    transform: scale(0.9342);
  }
  20.539% {
    opacity: 1;
    transform: scale(0.9436);
  }
  21.308% {
    opacity: 1;
    transform: scale(0.9521);
  }
  22.088% {
    opacity: 1;
    transform: scale(0.9598);
  }
  22.879% {
    opacity: 1;
    transform: scale(0.9668);
  }
  23.68% {
    opacity: 1;
    transform: scale(0.9729);
  }
  24.491% {
    opacity: 1;
    transform: scale(0.9783);
  }
  25.313% {
    opacity: 1;
    transform: scale(0.983);
  }
  26.144% {
    opacity: 1;
    transform: scale(0.987);
  }
  26.986% {
    opacity: 1;
    transform: scale(0.9904);
  }
  27.838% {
    opacity: 1;
    transform: scale(0.9931);
  }
  28.699% {
    opacity: 1;
    transform: scale(0.9953);
  }
  29.57% {
    opacity: 1;
    transform: scale(0.997);
  }
  30.451% {
    opacity: 1;
    transform: scale(0.9982);
  }
  31.342% {
    opacity: 1;
    transform: scale(0.9991);
  }
  32.242% {
    opacity: 1;
    transform: scale(0.9996);
  }
  33.152% {
    opacity: 1;
    transform: scale(0.9999);
  }
  34.071% {
    opacity: 1;
    transform: scale(1);
  }
  35% {
    opacity: 1;
    transform: scale(1);
  }
  36.083% {
    opacity: 1;
    transform: scale(0.9999);
  }
  37.167% {
    opacity: 1;
    transform: scale(0.9997);
  }
  38.25% {
    opacity: 1;
    transform: scale(0.9994);
  }
  39.333% {
    opacity: 1;
    transform: scale(0.9989);
  }
  40.417% {
    opacity: 1;
    transform: scale(0.9983);
  }
  41.5% {
    opacity: 1;
    transform: scale(0.9976);
  }
  42.583% {
    opacity: 1;
    transform: scale(0.9968);
  }
  43.667% {
    opacity: 1;
    transform: scale(0.996);
  }
  44.75% {
    opacity: 1;
    transform: scale(0.995);
  }
  45.833% {
    opacity: 1;
    transform: scale(0.9941);
  }
  46.917% {
    opacity: 1;
    transform: scale(0.993);
  }
  48% {
    opacity: 1;
    transform: scale(0.992);
  }
  49.083% {
    opacity: 1;
    transform: scale(0.991);
  }
  50.167% {
    opacity: 1;
    transform: scale(0.99);
  }
  51.25% {
    opacity: 1;
    transform: scale(0.9891);
  }
  52.333% {
    opacity: 1;
    transform: scale(0.9882);
  }
  53.417% {
    opacity: 1;
    transform: scale(0.9874);
  }
  54.5% {
    opacity: 1;
    transform: scale(0.9867);
  }
  55.583% {
    opacity: 1;
    transform: scale(0.9861);
  }
  56.667% {
    opacity: 1;
    transform: scale(0.9856);
  }
  57.75% {
    opacity: 1;
    transform: scale(0.9853);
  }
  58.833% {
    opacity: 1;
    transform: scale(0.9851);
  }
  59.917% {
    opacity: 1;
    transform: scale(0.985);
  }
  61% {
    opacity: 1;
    transform: scale(0.9852);
  }
  62.083% {
    opacity: 1;
    transform: scale(0.9859);
  }
  63.167% {
    opacity: 1;
    transform: scale(0.9871);
  }
  64.25% {
    opacity: 1;
    transform: scale(0.9888);
  }
  65.333% {
    opacity: 1;
    transform: scale(0.9908);
  }
  66.417% {
    opacity: 1;
    transform: scale(0.9932);
  }
  67.5% {
    opacity: 1;
    transform: scale(0.9958);
  }
  68.583% {
    opacity: 1;
    transform: scale(0.9986);
  }
  69.667% {
    opacity: 1;
    transform: scale(1.0016);
  }
  70.75% {
    opacity: 1;
    transform: scale(1.0046);
  }
  71.833% {
    opacity: 1;
    transform: scale(1.0075);
  }
  72.917% {
    opacity: 1;
    transform: scale(1.0102);
  }
  74% {
    opacity: 1;
    transform: scale(1.0128);
  }
  75.083% {
    opacity: 1;
    transform: scale(1.015);
  }
  76.167% {
    opacity: 1;
    transform: scale(1.0169);
  }
  77.25% {
    opacity: 1;
    transform: scale(1.0184);
  }
  78.333% {
    opacity: 1;
    transform: scale(1.0194);
  }
  79.417% {
    opacity: 1;
    transform: scale(1.0199);
  }
  80.5% {
    opacity: 0.998;
    transform: scale(1.0202);
  }
  81.583% {
    opacity: 0.985;
    transform: scale(1.0215);
  }
  82.667% {
    opacity: 0.957;
    transform: scale(1.0243);
  }
  83.75% {
    opacity: 0.916;
    transform: scale(1.0284);
  }
  84.833% {
    opacity: 0.863;
    transform: scale(1.0337);
  }
  85.917% {
    opacity: 0.799;
    transform: scale(1.0401);
  }
  87% {
    opacity: 0.727;
    transform: scale(1.0473);
  }
  88.083% {
    opacity: 0.648;
    transform: scale(1.0552);
  }
  89.167% {
    opacity: 0.565;
    transform: scale(1.0635);
  }
  90.25% {
    opacity: 0.48;
    transform: scale(1.072);
  }
  91.333% {
    opacity: 0.396;
    transform: scale(1.0804);
  }
  92.417% {
    opacity: 0.315;
    transform: scale(1.0885);
  }
  93.5% {
    opacity: 0.239;
    transform: scale(1.0961);
  }
  94.583% {
    opacity: 0.17;
    transform: scale(1.103);
  }
  95.667% {
    opacity: 0.111;
    transform: scale(1.1089);
  }
  96.75% {
    opacity: 0.064;
    transform: scale(1.1136);
  }
  97.833% {
    opacity: 0.029;
    transform: scale(1.1171);
  }
  98.917% {
    opacity: 0.007;
    transform: scale(1.1193);
  }
  100% {
    opacity: 0;
    transform: scale(1.12);
  }
}

@keyframes splash-reveal-inner {
  0% {
    transform: scale(5);
  }
  0.05% {
    transform: scale(4.91584);
  }
  0.152% {
    transform: scale(4.75398);
  }
  0.29% {
    transform: scale(4.5512);
  }
  0.46% {
    transform: scale(4.32714);
  }
  0.657% {
    transform: scale(4.09513);
  }
  0.879% {
    transform: scale(3.86423);
  }
  1.125% {
    transform: scale(3.6404);
  }
  1.393% {
    transform: scale(3.42733);
  }
  1.682% {
    transform: scale(3.22705);
  }
  1.991% {
    transform: scale(3.04049);
  }
  2.319% {
    transform: scale(2.8678);
  }
  2.665% {
    transform: scale(2.70865);
  }
  3.029% {
    transform: scale(2.56239);
  }
  3.411% {
    transform: scale(2.42824);
  }
  3.809% {
    transform: scale(2.30534);
  }
  4.223% {
    transform: scale(2.19278);
  }
  4.653% {
    transform: scale(2.08973);
  }
  5.099% {
    transform: scale(1.99534);
  }
  5.559% {
    transform: scale(1.90886);
  }
  6.035% {
    transform: scale(1.82959);
  }
  6.525% {
    transform: scale(1.75686);
  }
  7.029% {
    transform: scale(1.69011);
  }
  7.547% {
    transform: scale(1.62879);
  }
  8.079% {
    transform: scale(1.57244);
  }
  8.624% {
    transform: scale(1.5206);
  }
  9.183% {
    transform: scale(1.47291);
  }
  9.755% {
    transform: scale(1.42901);
  }
  10.339% {
    transform: scale(1.38859);
  }
  10.936% {
    transform: scale(1.35136);
  }
  11.546% {
    transform: scale(1.31708);
  }
  12.168% {
    transform: scale(1.28551);
  }
  12.802% {
    transform: scale(1.25644);
  }
  13.448% {
    transform: scale(1.2297);
  }
  14.106% {
    transform: scale(1.20512);
  }
  14.775% {
    transform: scale(1.18254);
  }
  15.456% {
    transform: scale(1.16182);
  }
  16.149% {
    transform: scale(1.14285);
  }
  16.853% {
    transform: scale(1.1255);
  }
  17.568% {
    transform: scale(1.10967);
  }
  18.295% {
    transform: scale(1.09528);
  }
  19.032% {
    transform: scale(1.08222);
  }
  19.78% {
    transform: scale(1.07042);
  }
  20.539% {
    transform: scale(1.0598);
  }
  21.308% {
    transform: scale(1.0503);
  }
  22.088% {
    transform: scale(1.04184);
  }
  22.879% {
    transform: scale(1.03437);
  }
  23.68% {
    transform: scale(1.02782);
  }
  24.491% {
    transform: scale(1.02213);
  }
  25.313% {
    transform: scale(1.01725);
  }
  26.144% {
    transform: scale(1.01313);
  }
  26.986% {
    transform: scale(1.0097);
  }
  27.838% {
    transform: scale(1.0069);
  }
  28.699% {
    transform: scale(1.00469);
  }
  29.57% {
    transform: scale(1.003);
  }
  30.451% {
    transform: scale(1.00176);
  }
  31.342% {
    transform: scale(1.00091);
  }
  32.242% {
    transform: scale(1.00039);
  }
  33.152% {
    transform: scale(1.00012);
  }
  34.071% {
    transform: scale(1.00001);
  }
  35% {
    transform: scale(1);
  }
  36.083% {
    transform: scale(1.00007);
  }
  37.167% {
    transform: scale(1.00028);
  }
  38.25% {
    transform: scale(1.00062);
  }
  39.333% {
    transform: scale(1.00109);
  }
  40.417% {
    transform: scale(1.00167);
  }
  41.5% {
    transform: scale(1.00237);
  }
  42.583% {
    transform: scale(1.00317);
  }
  43.667% {
    transform: scale(1.00404);
  }
  44.75% {
    transform: scale(1.00498);
  }
  45.833% {
    transform: scale(1.00598);
  }
  46.917% {
    transform: scale(1.007);
  }
  48% {
    transform: scale(1.00803);
  }
  49.083% {
    transform: scale(1.00906);
  }
  50.167% {
    transform: scale(1.01007);
  }
  51.25% {
    transform: scale(1.01103);
  }
  52.333% {
    transform: scale(1.01192);
  }
  53.417% {
    transform: scale(1.01274);
  }
  54.5% {
    transform: scale(1.01346);
  }
  55.583% {
    transform: scale(1.01407);
  }
  56.667% {
    transform: scale(1.01456);
  }
  57.75% {
    transform: scale(1.01492);
  }
  58.833% {
    transform: scale(1.01515);
  }
  59.917% {
    transform: scale(1.01523);
  }
  61% {
    transform: scale(1.01501);
  }
  62.083% {
    transform: scale(1.01427);
  }
  63.167% {
    transform: scale(1.01305);
  }
  64.25% {
    transform: scale(1.01137);
  }
  65.333% {
    transform: scale(1.0093);
  }
  66.417% {
    transform: scale(1.00689);
  }
  67.5% {
    transform: scale(1.00421);
  }
  68.583% {
    transform: scale(1.00136);
  }
  69.667% {
    transform: scale(0.99842);
  }
  70.75% {
    transform: scale(0.99546);
  }
  71.833% {
    transform: scale(0.99259);
  }
  72.917% {
    transform: scale(0.98986);
  }
  74% {
    transform: scale(0.98738);
  }
  75.083% {
    transform: scale(0.98519);
  }
  76.167% {
    transform: scale(0.98336);
  }
  77.25% {
    transform: scale(0.98194);
  }
  78.333% {
    transform: scale(0.98097);
  }
  79.417% {
    transform: scale(0.98046);
  }
  80.5% {
    transform: scale(0.98024);
  }
  81.583% {
    transform: scale(0.97892);
  }
  82.667% {
    transform: scale(0.97625);
  }
  83.75% {
    transform: scale(0.97236);
  }
  84.833% {
    transform: scale(0.96737);
  }
  85.917% {
    transform: scale(0.96146);
  }
  87% {
    transform: scale(0.95484);
  }
  88.083% {
    transform: scale(0.94771);
  }
  89.167% {
    transform: scale(0.94031);
  }
  90.25% {
    transform: scale(0.93287);
  }
  91.333% {
    transform: scale(0.92559);
  }
  92.417% {
    transform: scale(0.91867);
  }
  93.5% {
    transform: scale(0.9123);
  }
  94.583% {
    transform: scale(0.90665);
  }
  95.667% {
    transform: scale(0.90183);
  }
  96.75% {
    transform: scale(0.89797);
  }
  97.833% {
    transform: scale(0.89515);
  }
  98.917% {
    transform: scale(0.89343);
  }
  100% {
    transform: scale(0.89286);
  }
}

@keyframes splash-orb-thin {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  35% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: scale(1.9);
  }
}

@keyframes splash-orb-thick {
  0% {
    opacity: 0;
    transform: scale(1.3);
  }
  45% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: scale(2.3);
  }
}

@keyframes splash-flood {
  0% {
    opacity: 0;
    transform: scale(0.2);
  }
  15% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: scale(10);
  }
}

@media (prefers-reduced-motion: reduce) {
  .splash *,
  .splash .l {
    animation: none !important;
  }

  .splash .word .ink,
  .splash .l,
  .splash .tagline.ink {
    opacity: 1;
    transform: none;
  }

  .splash .eye {
    display: none;
  }

  .splash.is-out {
    transition: opacity 0.3s ease;
  }
}
