/*
 * The emoji faces.
 *
 * People and flags are single files: every face in them is tied to the others
 * by a joining sequence - a family, a couple, a person with a skin tone - and a
 * sequence split across two files draws as its separate parts.
 *
 * Everything else used to be a single file too: 3.8MB, and one smiley pulled
 * the whole of it, on a connection where that is half a minute. It is cut into
 * pieces below by how often the faces are actually used - the counts come out
 * of this site's own reactions - so an ordinary conversation costs the first
 * piece and nothing else. Cut by fonts/split2.py; the rules it follows,
 * including why U+200D is in every range and U+FE0F is in none, are written at
 * the top of it.
 */

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.people.ttf) format('truetype');
  unicode-range: U+200d,U+20e3,U+2640,U+2642,U+2695-2696,U+26f9,U+2708,U+27a1,U+2b1b,U+1f33e,U+1f373,U+1f37c,U+1f384,U+1f393,U+1f3a4,U+1f3a8,U+1f3c3-1f3c4,U+1f3ca-1f3cc,U+1f3eb,U+1f3ed,U+1f3fb-1f3ff,U+1f408,U+1f426,U+1f466-1f469,U+1f46e-1f471,U+1f473,U+1f477,U+1f481-1f482,U+1f486-1f487,U+1f48b,U+1f4bb-1f4bc,U+1f527,U+1f52c,U+1f575,U+1f645-1f647,U+1f64b,U+1f64d-1f64e,U+1f680,U+1f692,U+1f6a3,U+1f6b4-1f6b6,U+1f91d,U+1f926,U+1f935,U+1f937-1f939,U+1f93c-1f93e,U+1f9af-1f9b3,U+1f9b8-1f9b9,U+1f9bc-1f9bd,U+1f9cd-1f9cf,U+1f9d1-1f9d2,U+1f9d4,U+1f9d6-1f9df,U+1fa79,U+e0020-e007f;
}

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.flags.ttf) format('truetype');
  unicode-range: U+200d,U+20e3,U+1f1e6-1f1ff,U+1f3fb-1f3ff,U+e0020-e007f;
}


/*
 * The heart and the fire, in fifteen kilobytes of their own.
 *
 * They are the two most-pressed reactions on this site by a wide margin, and
 * they used to live in the people file - joined there to a thousand couples
 * and kisses, each with its own pair of skin tones. That made the commonest
 * reaction on the site cost four and a half megabytes to draw, which on a
 * Russian mobile connection is a minute of waiting for a heart.
 *
 * The price of moving them: sequences that need a person AND one of these two
 * no longer join up, and draw as their separate faces instead. That is the
 * couples and the kisses - a few hundred variants of a picture nobody here has
 * ever sent - and the phoenix. The sequence that does get used, a heart on
 * fire, travels with them and still works.
 *
 * The people file itself is untouched, byte for byte, and keeps its old ?v=5
 * address: every browser that already holds it goes on holding it.
 */

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.love.ttf) format('truetype');
  unicode-range: U+200d,U+2764,U+1f525;
}

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.hot.ttf) format('truetype');
  unicode-range: U+200d,U+2194-2195,U+2728,U+2753,U+2757,U+2b50,U+1f32b,U+1f381-1f382,U+1f389-1f38a,U+1f440,U+1f444,U+1f44b-1f44f,U+1f47b,U+1f47d-1f480,U+1f493-1f49f,U+1f4a4,U+1f4a8-1f4ad,U+1f4af,U+1f595,U+1f5a4,U+1f600-1f618,U+1f61a-1f61e,U+1f620-1f637,U+1f641-1f644,U+1f64c,U+1f90d-1f90e,U+1f910-1f917,U+1f920-1f925,U+1f927,U+1f929-1f92f,U+1f970-1f971,U+1f973-1f976,U+1f97a,U+1f9d0,U+1f9e0-1f9e1;
}

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.warm.ttf) format('truetype');
  unicode-range: U+200d,U+2600,U+2615,U+26a7,U+26bd,U+2744,U+1f308,U+1f319-1f31a,U+1f31d-1f31e,U+1f32d,U+1f338-1f33a,U+1f33d,U+1f340,U+1f347,U+1f349,U+1f34c,U+1f34e,U+1f352-1f355,U+1f35f,U+1f369-1f36d,U+1f370,U+1f37a-1f37b,U+1f37e-1f380,U+1f383,U+1f388,U+1f3a5,U+1f3a7,U+1f3ae-1f3af,U+1f3b2,U+1f3b5-1f3b6,U+1f3b8,U+1f3c0,U+1f3c6,U+1f3e0-1f3e1,U+1f3f3,U+1f40b-1f40d,U+1f414,U+1f419,U+1f41b,U+1f41d-1f422,U+1f427-1f428,U+1f42c-1f431,U+1f433-1f43c,U+1f489-1f48a,U+1f490,U+1f4a1,U+1f4b0,U+1f4b3,U+1f4b5,U+1f4b8,U+1f4cc,U+1f4dd-1f4de,U+1f4e6-1f4e7,U+1f4f1,U+1f4f7,U+1f4f9,U+1f511-1f513,U+1f526,U+1f528,U+1f5a5,U+1f5d1,U+1f648-1f64a,U+1f68c,U+1f695,U+1f697,U+1f699,U+1f6d2,U+1f942,U+1f947-1f949,U+1f951,U+1f955,U+1f981,U+1f984,U+1f988-1f98b,U+1f9c1,U+1f9e8,U+1fa78;
}

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.c0.ttf) format('truetype');
  unicode-range: U+a9,U+ae,U+200d,U+203c,U+2049,U+2122,U+2139,U+2196-2199,U+21a9-21aa,U+231a-231b,U+2328,U+23cf,U+23e9-23f3,U+23f8-23fa,U+24c2,U+25aa-25ab,U+25b6,U+25c0,U+25fb-25fe,U+2601-2604,U+260e,U+2611,U+2614,U+2618,U+261d,U+2620,U+2622-2623,U+2626,U+262a,U+262e-262f,U+2638-263a,U+2648-2653,U+265f-2660,U+2663,U+2665-2666,U+2668,U+267b,U+267e-267f,U+2692-2694,U+2697,U+2699,U+269b-269c,U+26a0-26a1,U+26aa-26ab,U+26b0-26b1,U+26be,U+26c4-26c5,U+26c8,U+26ce-26cf,U+26d1,U+26d3-26d4,U+26e9-26ea,U+26f0-26f5,U+26f7-26f8,U+26fa,U+26fd,U+2702,U+2705,U+2709-270d,U+270f,U+2712,U+2714,U+2716,U+271d,U+2721,U+2733-2734,U+2747,U+274c,U+274e,U+2754-2755,U+2763,U+2795-2797,U+27b0,U+27bf,U+2934-2935,U+2b05-2b07,U+2b1c,U+2b55,U+3030,U+303d,U+3297,U+3299,U+1f004,U+1f0cf,U+1f170-1f171,U+1f17e-1f17f,U+1f18e,U+1f191-1f19a,U+1f201-1f202,U+1f21a,U+1f22f,U+1f232-1f23a,U+1f250-1f251,U+1f300-1f307,U+1f309-1f318,U+1f31b-1f31c,U+1f31f-1f321,U+1f324-1f32a,U+1f32c,U+1f32e-1f337,U+1f33b-1f33c,U+1f33f,U+1f341-1f346,U+1f348,U+1f34a-1f34b,U+1f34d,U+1f34f-1f351,U+1f356,U+1f3f4,U+1f4a5,U+1f7e9,U+1f7eb,U+e0062-e0063,U+e0065,U+e0067,U+e006c,U+e006e,U+e0073-e0074,U+e0077,U+e007f;
}

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.c1.ttf) format('truetype');
  unicode-range: U+200d,U+1f357-1f35e,U+1f360-1f368,U+1f36e-1f36f,U+1f371-1f372,U+1f374-1f379,U+1f37d,U+1f385-1f387,U+1f38b-1f392,U+1f396-1f397,U+1f399-1f39b,U+1f39e-1f3a3,U+1f3a6,U+1f3a9-1f3ad,U+1f3b0-1f3b1,U+1f3b3-1f3b4,U+1f3b7,U+1f3b9-1f3bf,U+1f3c1-1f3c2,U+1f3c5,U+1f3c7-1f3c9,U+1f3cd-1f3df,U+1f3e2-1f3ea,U+1f3ec,U+1f3ee-1f3f0,U+1f3f5,U+1f3f7-1f3fa,U+1f400-1f407,U+1f409-1f40a,U+1f40e-1f413,U+1f415-1f418,U+1f41a,U+1f41c,U+1f423-1f425,U+1f429-1f42b,U+1f432,U+1f43d-1f43f,U+1f441-1f443,U+1f445-1f44a,U+1f450-1f465,U+1f46a-1f46d,U+1f472,U+1f474-1f476,U+1f478-1f47a,U+1f47c,U+1f483-1f485,U+1f488,U+1f48c-1f48f,U+1f491-1f492,U+1f4a0,U+1f4a2-1f4a3,U+1f4a6-1f4a7,U+1f4ae,U+1f4b1-1f4b2,U+1f4b4,U+1f4b6-1f4b7,U+1f4b9-1f4ba,U+1f4bd-1f4cb,U+1f4cd-1f4dc,U+1f4df-1f4e5,U+1f4e8-1f4f0,U+1f4f2-1f4f3,U+1f5e8,U+1f9ba;
}

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.c2.ttf) format('truetype');
  unicode-range: U+200d,U+1f4f4-1f4f6,U+1f4f8,U+1f4fa-1f4fd,U+1f4ff-1f510,U+1f514-1f524,U+1f529-1f52b,U+1f52d-1f53d,U+1f549-1f54e,U+1f550-1f567,U+1f56f-1f570,U+1f573-1f574,U+1f576-1f57a,U+1f587,U+1f58a-1f58d,U+1f590,U+1f596,U+1f5a8,U+1f5b1-1f5b2,U+1f5bc,U+1f5c2-1f5c4,U+1f5d2-1f5d3,U+1f5dc-1f5de,U+1f5e1,U+1f5e3,U+1f5ef,U+1f5f3,U+1f5fa-1f5ff,U+1f619,U+1f61f,U+1f638-1f640,U+1f64f,U+1f681-1f68b,U+1f68d-1f691,U+1f693-1f694,U+1f696,U+1f698,U+1f69a-1f6a2,U+1f6a4-1f6b3,U+1f6b7-1f6c5,U+1f6cb-1f6d1,U+1f6d5-1f6d7,U+1f6dc-1f6e5,U+1f6e9,U+1f6eb-1f6ec,U+1f6f0,U+1f6f3-1f6fc,U+1f7e0-1f7e8,U+1f7ea,U+1f7f0,U+1f90c,U+1f90f,U+1f918-1f91c,U+1f91e-1f91f,U+1f928,U+1f930-1f931;
}

@font-face {
  font-family: 'SlasherEmoji';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(slasher-emoji.c3.ttf) format('truetype');
  unicode-range: U+200d,U+1f932-1f934,U+1f936,U+1f93a,U+1f93f-1f941,U+1f943-1f945,U+1f94a-1f950,U+1f952-1f954,U+1f956-1f96f,U+1f972,U+1f977-1f979,U+1f97b-1f980,U+1f982-1f983,U+1f985-1f987,U+1f98c-1f9ae,U+1f9b4-1f9b7,U+1f9bb,U+1f9be-1f9c0,U+1f9c2-1f9cc,U+1f9d3,U+1f9d5,U+1f9e2-1f9e7,U+1f9e9-1f9ff,U+1fa70-1fa77,U+1fa7a-1fa7c,U+1fa80-1fa89,U+1fa8f-1fac6,U+1face-1fadc,U+1fadf-1fae9,U+1faf0-1faf8;
}


