style.css 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922
  1. :root {
  2. --ink: #3b2414;
  3. --paper: #fff6e4;
  4. --cream: #fff1d6;
  5. --pink: #ff6f91;
  6. --pink-dark: #d94a6f;
  7. --sky: #bfe6ff;
  8. }
  9. html,
  10. body {
  11. margin: 0;
  12. height: 100%;
  13. overflow: hidden;
  14. background: var(--cream);
  15. font-family: 'Comic Sans MS', 'Comic Neue', 'Chalkboard SE', 'Segoe UI', sans-serif;
  16. color: var(--ink);
  17. user-select: none;
  18. }
  19. #game {
  20. position: fixed;
  21. inset: 0;
  22. }
  23. #game canvas {
  24. display: block;
  25. cursor: crosshair;
  26. }
  27. #hud {
  28. position: fixed;
  29. inset: 0;
  30. pointer-events: none;
  31. }
  32. #status {
  33. position: absolute;
  34. top: 40%;
  35. width: 100%;
  36. text-align: center;
  37. font-size: 34px;
  38. font-weight: bold;
  39. text-shadow:
  40. 3px 3px 0 #fff,
  41. -2px -2px 0 #fff;
  42. }
  43. #help {
  44. position: absolute;
  45. left: 16px;
  46. bottom: 12px;
  47. font-size: 14px;
  48. background: var(--paper);
  49. border: 3px solid var(--ink);
  50. border-radius: 14px 10px 16px 9px;
  51. padding: 6px 12px;
  52. box-shadow: 4px 4px 0 rgba(59, 36, 20, 0.35);
  53. }
  54. #help:empty {
  55. display: none;
  56. }
  57. #fps {
  58. position: absolute;
  59. right: 16px;
  60. top: 12px;
  61. font-size: 13px;
  62. opacity: 0.6;
  63. }
  64. /* ---------- Title menu ---------- */
  65. #menu {
  66. position: fixed;
  67. inset: 0;
  68. display: grid;
  69. place-items: center;
  70. background:
  71. radial-gradient(circle at 50% 40%, rgba(255, 246, 228, 0.55), rgba(59, 36, 20, 0.45)),
  72. repeating-linear-gradient(45deg, rgba(255, 111, 145, 0.18) 0 24px, transparent 24px 48px);
  73. z-index: 10;
  74. }
  75. .menu-card {
  76. width: min(760px, calc(100vw - 32px));
  77. max-height: calc(100vh - 32px);
  78. overflow-y: auto;
  79. box-sizing: border-box;
  80. background: var(--paper);
  81. border: 4px solid var(--ink);
  82. border-radius: 28px 22px 30px 20px;
  83. box-shadow: 8px 10px 0 rgba(59, 36, 20, 0.45);
  84. padding: 22px 28px 26px;
  85. text-align: center;
  86. transform: rotate(-0.6deg);
  87. }
  88. .menu-card h1 {
  89. margin: 0;
  90. font-size: clamp(34px, 6vw, 58px);
  91. letter-spacing: 2px;
  92. color: var(--pink);
  93. -webkit-text-stroke: 2px var(--ink);
  94. text-shadow: 4px 4px 0 var(--ink);
  95. transform: rotate(-1.5deg);
  96. }
  97. .subtitle {
  98. margin: 6px 0 18px;
  99. font-size: 18px;
  100. }
  101. .name-label {
  102. display: inline-flex;
  103. gap: 10px;
  104. align-items: center;
  105. font-weight: bold;
  106. font-size: 18px;
  107. }
  108. .name-label input {
  109. font: inherit;
  110. font-weight: normal;
  111. border: 3px solid var(--ink);
  112. border-radius: 12px 8px 12px 9px;
  113. padding: 6px 12px;
  114. background: #fff;
  115. color: var(--ink);
  116. width: 200px;
  117. }
  118. .menu-card h2 {
  119. margin: 20px 0 10px;
  120. font-size: 20px;
  121. }
  122. .characters {
  123. display: flex;
  124. gap: 16px;
  125. justify-content: center;
  126. flex-wrap: wrap;
  127. }
  128. .character {
  129. width: 220px;
  130. font: inherit;
  131. color: inherit;
  132. background: #fff;
  133. border: 3px solid var(--ink);
  134. border-radius: 18px 14px 20px 12px;
  135. padding: 10px 12px 14px;
  136. cursor: pointer;
  137. display: flex;
  138. flex-direction: column;
  139. align-items: center;
  140. gap: 4px;
  141. transition:
  142. transform 0.12s,
  143. box-shadow 0.12s,
  144. background 0.12s;
  145. box-shadow: 4px 4px 0 rgba(59, 36, 20, 0.3);
  146. }
  147. .character:hover {
  148. transform: translateY(-3px) rotate(-1deg);
  149. }
  150. .character.selected {
  151. background: #ffe3ea;
  152. box-shadow:
  153. 0 0 0 4px var(--pink),
  154. 6px 6px 0 rgba(59, 36, 20, 0.4);
  155. transform: translateY(-4px) rotate(1deg);
  156. }
  157. .character strong {
  158. font-size: 19px;
  159. }
  160. .character span {
  161. font-size: 13px;
  162. line-height: 1.3;
  163. }
  164. .portrait {
  165. height: 120px;
  166. width: auto;
  167. max-width: 180px;
  168. object-fit: contain;
  169. }
  170. #menu-play {
  171. margin-top: 22px;
  172. font: inherit;
  173. font-size: 26px;
  174. font-weight: bold;
  175. color: #fff;
  176. background: var(--pink);
  177. border: 4px solid var(--ink);
  178. border-radius: 20px 14px 22px 12px;
  179. padding: 8px 34px;
  180. cursor: pointer;
  181. box-shadow: 5px 5px 0 var(--ink);
  182. text-shadow: 2px 2px 0 var(--ink);
  183. }
  184. #menu-play:hover {
  185. background: var(--pink-dark);
  186. transform: rotate(-2deg) scale(1.05);
  187. }
  188. #menu-play:active {
  189. transform: translate(3px, 3px);
  190. box-shadow: 2px 2px 0 var(--ink);
  191. }
  192. /* ---------- Buttons ---------- */
  193. button.primary,
  194. button.secondary {
  195. font: inherit;
  196. font-weight: bold;
  197. border: 3px solid var(--ink);
  198. border-radius: 16px 11px 17px 10px;
  199. padding: 6px 18px;
  200. cursor: pointer;
  201. box-shadow: 3px 3px 0 var(--ink);
  202. }
  203. button.primary {
  204. color: #fff;
  205. background: var(--pink);
  206. text-shadow: 1px 1px 0 var(--ink);
  207. }
  208. button.secondary {
  209. color: var(--ink);
  210. background: #fff;
  211. }
  212. button.primary:hover:not(:disabled),
  213. button.secondary:hover:not(:disabled) {
  214. transform: rotate(-1.5deg) scale(1.04);
  215. }
  216. button:disabled {
  217. opacity: 0.45;
  218. cursor: not-allowed;
  219. }
  220. button.small {
  221. font-size: 14px;
  222. padding: 4px 12px;
  223. }
  224. /* ---------- Game browser ---------- */
  225. .menu-card h1.small {
  226. font-size: clamp(26px, 4.5vw, 40px);
  227. margin-bottom: 14px;
  228. }
  229. .games {
  230. list-style: none;
  231. margin: 0 auto;
  232. padding: 0;
  233. max-height: 46vh;
  234. overflow-y: auto;
  235. text-align: left;
  236. }
  237. .games li {
  238. display: flex;
  239. align-items: center;
  240. justify-content: space-between;
  241. gap: 12px;
  242. background: #fff;
  243. border: 3px solid var(--ink);
  244. border-radius: 14px 10px 15px 9px;
  245. padding: 8px 12px;
  246. margin-bottom: 10px;
  247. }
  248. .games li div {
  249. display: flex;
  250. flex-direction: column;
  251. min-width: 0;
  252. }
  253. .games li strong {
  254. font-size: 18px;
  255. }
  256. .games li span {
  257. font-size: 13px;
  258. opacity: 0.8;
  259. }
  260. .games li.empty {
  261. justify-content: center;
  262. font-style: italic;
  263. border-style: dashed;
  264. }
  265. .manual {
  266. display: flex;
  267. gap: 10px;
  268. justify-content: center;
  269. align-items: center;
  270. flex-wrap: wrap;
  271. margin: 12px 0 4px;
  272. }
  273. .manual input {
  274. font: inherit;
  275. border: 3px solid var(--ink);
  276. border-radius: 10px 8px 11px 7px;
  277. padding: 4px 10px;
  278. width: 170px;
  279. margin-left: 8px;
  280. color: var(--ink);
  281. }
  282. input.invalid {
  283. border-color: #d93a5b !important;
  284. background: #ffe3ea;
  285. }
  286. .actions {
  287. display: flex;
  288. justify-content: space-between;
  289. margin-top: 18px;
  290. gap: 12px;
  291. }
  292. /* ---------- Warm-up panel ---------- */
  293. #lobby-panel {
  294. position: fixed;
  295. top: 40px;
  296. right: 16px;
  297. width: 230px;
  298. background: var(--paper);
  299. border: 3px solid var(--ink);
  300. border-radius: 18px 12px 20px 11px;
  301. box-shadow: 5px 5px 0 rgba(59, 36, 20, 0.4);
  302. padding: 10px 14px 14px;
  303. z-index: 5;
  304. text-align: center;
  305. }
  306. #lobby-panel[hidden] {
  307. display: none;
  308. }
  309. #lobby-panel h3 {
  310. margin: 0 0 2px;
  311. color: var(--pink);
  312. -webkit-text-stroke: 1px var(--ink);
  313. font-size: 22px;
  314. }
  315. #lobby-panel .hint {
  316. margin: 0 0 8px;
  317. font-size: 12px;
  318. }
  319. #lobby-panel ul {
  320. list-style: none;
  321. margin: 0 0 6px;
  322. padding: 0;
  323. text-align: left;
  324. }
  325. #lobby-panel li {
  326. padding: 2px 0;
  327. opacity: 0.7;
  328. }
  329. #lobby-panel li.ready {
  330. opacity: 1;
  331. font-weight: bold;
  332. color: #3f8a1f;
  333. }
  334. #lobby-panel li.me::after {
  335. content: ' ★';
  336. color: var(--pink);
  337. }
  338. #lobby-panel .status {
  339. margin: 4px 0 10px;
  340. font-weight: bold;
  341. }
  342. /* ---------- Round HUD ---------- */
  343. #round-hud {
  344. position: fixed;
  345. top: 8px;
  346. left: 50%;
  347. transform: translateX(-50%) rotate(-1deg);
  348. background: var(--paper);
  349. border: 3px solid var(--ink);
  350. border-radius: 16px 11px 18px 10px;
  351. box-shadow: 4px 4px 0 rgba(59, 36, 20, 0.4);
  352. padding: 2px 18px 4px;
  353. text-align: center;
  354. pointer-events: none;
  355. z-index: 4;
  356. }
  357. #round-hud[hidden] {
  358. display: none;
  359. }
  360. #round-hud .label {
  361. font-size: 13px;
  362. }
  363. #round-hud .timer {
  364. font-size: 30px;
  365. font-weight: bold;
  366. line-height: 1;
  367. }
  368. #round-hud.rush .timer {
  369. color: #d93a5b;
  370. animation: wobble 0.5s infinite alternate;
  371. }
  372. #round-hud .rush-label {
  373. font-size: 12px;
  374. font-weight: bold;
  375. color: #d93a5b;
  376. }
  377. @keyframes wobble {
  378. from {
  379. transform: scale(1) rotate(-2deg);
  380. }
  381. to {
  382. transform: scale(1.12) rotate(2deg);
  383. }
  384. }
  385. #scoreboard {
  386. position: fixed;
  387. top: 10px;
  388. left: 12px;
  389. list-style: none;
  390. margin: 0;
  391. padding: 6px 10px;
  392. background: rgba(255, 246, 228, 0.88);
  393. border: 3px solid var(--ink);
  394. border-radius: 14px 10px 15px 9px;
  395. min-width: 150px;
  396. pointer-events: none;
  397. z-index: 4;
  398. }
  399. #scoreboard[hidden] {
  400. display: none;
  401. }
  402. #scoreboard li {
  403. display: flex;
  404. justify-content: space-between;
  405. gap: 12px;
  406. font-size: 15px;
  407. }
  408. #scoreboard li.me {
  409. font-weight: bold;
  410. }
  411. #scoreboard li.holder::before {
  412. content: '🍒 ';
  413. }
  414. #scoreboard li.dead {
  415. opacity: 0.45;
  416. }
  417. #hint {
  418. position: fixed;
  419. bottom: 60px;
  420. left: 50%;
  421. transform: translateX(-50%);
  422. font-weight: bold;
  423. font-size: 18px;
  424. text-shadow:
  425. 2px 2px 0 #fff,
  426. -2px -2px 0 #fff;
  427. pointer-events: none;
  428. }
  429. /* ---------- Results ---------- */
  430. #results {
  431. position: fixed;
  432. inset: 0;
  433. display: grid;
  434. place-items: center;
  435. background: rgba(59, 36, 20, 0.35);
  436. z-index: 8;
  437. }
  438. #results[hidden] {
  439. display: none;
  440. }
  441. #results table {
  442. margin: 0 auto 10px;
  443. border-collapse: collapse;
  444. font-size: 18px;
  445. min-width: 340px;
  446. }
  447. #results th,
  448. #results td {
  449. padding: 4px 12px;
  450. border-bottom: 2px dashed rgba(59, 36, 20, 0.25);
  451. }
  452. #results td.num {
  453. text-align: right;
  454. font-weight: bold;
  455. }
  456. #results tr.me td {
  457. color: var(--pink-dark);
  458. }
  459. #results tr:first-child td:first-child::before {
  460. content: '👑 ';
  461. }
  462. #results .winner {
  463. font-size: 24px;
  464. font-weight: bold;
  465. color: var(--pink);
  466. -webkit-text-stroke: 1px var(--ink);
  467. margin: 0 0 10px;
  468. }
  469. #results .trophies {
  470. display: grid;
  471. grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  472. gap: 10px;
  473. margin: 8px 0 12px;
  474. }
  475. #results .trophy {
  476. background: #fff;
  477. border: 3px solid var(--ink);
  478. border-radius: 14px 10px 15px 9px;
  479. padding: 6px 8px;
  480. transform: rotate(-1deg);
  481. }
  482. #results .trophy:nth-child(even) {
  483. transform: rotate(1.2deg);
  484. }
  485. #results .trophy strong {
  486. display: block;
  487. color: var(--pink-dark);
  488. }
  489. #results .trophy span {
  490. font-size: 13px;
  491. }
  492. #results .footer {
  493. font-size: 14px;
  494. opacity: 0.8;
  495. }
  496. /* ---------- Character sheet ---------- */
  497. .characters .character {
  498. width: 150px;
  499. padding: 8px 8px 10px;
  500. }
  501. .sheet {
  502. display: flex;
  503. gap: 18px;
  504. justify-content: center;
  505. align-items: center;
  506. flex-wrap: wrap;
  507. margin: 14px auto 0;
  508. padding: 10px 16px;
  509. max-width: 640px;
  510. min-height: 110px;
  511. background: #fff;
  512. border: 3px dashed var(--ink);
  513. border-radius: 16px 12px 18px 11px;
  514. text-align: left;
  515. }
  516. .sheet .abilities {
  517. flex: 1 1 300px;
  518. }
  519. .sheet p {
  520. margin: 3px 0;
  521. font-size: 15px;
  522. }
  523. .sheet .desc {
  524. font-style: italic;
  525. margin-bottom: 6px;
  526. }
  527. .sheet .flaw {
  528. color: #b02f4c;
  529. }
  530. .sheet .stats {
  531. flex: 0 0 auto;
  532. }
  533. .stat {
  534. display: flex;
  535. align-items: center;
  536. justify-content: space-between;
  537. gap: 10px;
  538. font-size: 14px;
  539. margin: 4px 0;
  540. }
  541. .pips {
  542. display: inline-flex;
  543. gap: 4px;
  544. }
  545. .pips i {
  546. width: 14px;
  547. height: 14px;
  548. border-radius: 50%;
  549. border: 2px solid var(--ink);
  550. background: #fff;
  551. }
  552. .pips i.on {
  553. background: var(--pink);
  554. }
  555. /* Compact title menu: four characters and their sheet must fit in 720 px. */
  556. .menu-card {
  557. padding: 14px 24px 16px;
  558. }
  559. .menu-card h1 {
  560. font-size: clamp(30px, 5vw, 46px);
  561. }
  562. .subtitle {
  563. margin: 2px 0 10px;
  564. }
  565. .menu-card h2 {
  566. margin: 10px 0 8px;
  567. }
  568. .portrait {
  569. height: 92px;
  570. }
  571. #menu-play {
  572. margin-top: 12px;
  573. }
  574. /* ---------- Map rotation and catch-up pick ---------- */
  575. #lobby-panel .rotation {
  576. text-align: left;
  577. border-top: 2px dashed rgba(59, 36, 20, 0.3);
  578. margin: 6px 0;
  579. padding-top: 6px;
  580. font-size: 13px;
  581. }
  582. #lobby-panel .rotation-title {
  583. margin: 0 0 4px;
  584. font-weight: bold;
  585. }
  586. #lobby-panel .rotation-summary,
  587. #lobby-panel .rotation-hint {
  588. margin: 2px 0;
  589. }
  590. #lobby-panel .rotation-hint {
  591. opacity: 0.7;
  592. font-size: 12px;
  593. }
  594. #lobby-panel select {
  595. font: inherit;
  596. width: 100%;
  597. border: 2px solid var(--ink);
  598. border-radius: 8px;
  599. padding: 2px 4px;
  600. margin-bottom: 4px;
  601. }
  602. #lobby-panel label {
  603. display: block;
  604. cursor: pointer;
  605. }
  606. #round-hud .wind {
  607. font-size: 14px;
  608. font-weight: bold;
  609. color: #2b7bbf;
  610. }
  611. #results .map-pick {
  612. margin: 4px 0 10px;
  613. }
  614. #results .pick-title {
  615. font-weight: bold;
  616. margin: 4px 0 8px;
  617. }
  618. #results .pick-buttons {
  619. display: flex;
  620. gap: 8px;
  621. justify-content: center;
  622. flex-wrap: wrap;
  623. }
  624. #results .picked {
  625. color: var(--pink-dark);
  626. font-weight: bold;
  627. }
  628. /* ---------- Options ---------- */
  629. #options {
  630. position: fixed;
  631. inset: 0;
  632. display: grid;
  633. place-items: center;
  634. background: rgba(59, 36, 20, 0.35);
  635. z-index: 20;
  636. }
  637. #options[hidden] {
  638. display: none;
  639. }
  640. .options-card {
  641. width: min(460px, calc(100vw - 32px));
  642. text-align: left;
  643. }
  644. .options-card h1 {
  645. text-align: center;
  646. margin-bottom: 12px;
  647. }
  648. .option-row {
  649. display: grid;
  650. grid-template-columns: 150px 1fr;
  651. align-items: center;
  652. gap: 12px;
  653. margin: 8px 0;
  654. font-weight: bold;
  655. }
  656. .option-row.check {
  657. grid-template-columns: auto 1fr;
  658. }
  659. .option-row input[type='range'] {
  660. accent-color: var(--pink);
  661. }
  662. .option-row input[type='checkbox'] {
  663. width: 20px;
  664. height: 20px;
  665. accent-color: var(--pink);
  666. }
  667. .option-keys {
  668. font-size: 13px;
  669. background: #fff;
  670. border: 2px dashed var(--ink);
  671. border-radius: 10px;
  672. padding: 6px 10px;
  673. }
  674. .option-buttons {
  675. display: flex;
  676. flex-wrap: wrap;
  677. justify-content: flex-end;
  678. gap: 10px;
  679. margin-top: 14px;
  680. }
  681. #options-button {
  682. position: fixed;
  683. right: 16px;
  684. bottom: 12px;
  685. width: 42px;
  686. height: 42px;
  687. font-size: 24px;
  688. line-height: 1;
  689. background: var(--paper);
  690. color: var(--ink);
  691. border: 3px solid var(--ink);
  692. border-radius: 50%;
  693. box-shadow: 3px 3px 0 rgba(59, 36, 20, 0.4);
  694. cursor: pointer;
  695. z-index: 21;
  696. }
  697. #options-button:hover {
  698. background: #fff;
  699. }
  700. #lobby-panel .character-pick {
  701. display: flex;
  702. flex-direction: column;
  703. gap: 4px;
  704. margin: 6px 0 8px;
  705. font-size: 13px;
  706. font-weight: bold;
  707. text-align: left;
  708. }
  709. #lobby-panel select {
  710. font: inherit;
  711. font-weight: normal;
  712. }
  713. .menu-buttons {
  714. display: flex;
  715. justify-content: center;
  716. align-items: flex-end;
  717. gap: 16px;
  718. }
  719. .menu-buttons #menu-options {
  720. margin-bottom: 4px;
  721. }
  722. /* Game version and self-update progress, bottom-left corner. */
  723. #update-banner {
  724. position: fixed;
  725. left: 10px;
  726. bottom: 8px;
  727. z-index: 50;
  728. display: flex;
  729. align-items: center;
  730. gap: 10px;
  731. font-size: 12px;
  732. opacity: 0.55;
  733. pointer-events: none;
  734. }
  735. #update-banner.active {
  736. font-size: 15px;
  737. opacity: 1;
  738. padding: 6px 12px;
  739. background: var(--paper);
  740. border: 3px solid var(--ink);
  741. border-radius: 14px;
  742. pointer-events: auto;
  743. }
  744. /* ---------- Surprise banner ---------- */
  745. #surprise-banner {
  746. position: fixed;
  747. top: 22%;
  748. left: 50%;
  749. transform: translateX(-50%) rotate(-3deg);
  750. font-size: clamp(30px, 5vw, 64px);
  751. font-weight: bold;
  752. color: #ffe14d;
  753. -webkit-text-stroke: 3px var(--ink);
  754. text-shadow: 5px 5px 0 var(--ink);
  755. white-space: nowrap;
  756. pointer-events: none;
  757. z-index: 9;
  758. }
  759. #surprise-banner[hidden] {
  760. display: none;
  761. }
  762. #surprise-banner.pop {
  763. animation: surprise-pop 2.6s ease-out forwards;
  764. }
  765. @keyframes surprise-pop {
  766. 0% {
  767. transform: translateX(-50%) rotate(-3deg) scale(0.2);
  768. opacity: 0;
  769. }
  770. 12% {
  771. transform: translateX(-50%) rotate(2deg) scale(1.15);
  772. opacity: 1;
  773. }
  774. 20% {
  775. transform: translateX(-50%) rotate(-3deg) scale(1);
  776. }
  777. 80% {
  778. opacity: 1;
  779. }
  780. 100% {
  781. transform: translateX(-50%) rotate(-3deg) scale(1.05) translateY(-20px);
  782. opacity: 0;
  783. }
  784. }