/* textfx.css — EVE text effects engine styles (extracted from the
   eve-widget.html prototype 2026-08-31, passi 1). Class names kept
   1:1 so the SAME visual definitions drive the panel mini-previews,
   the preview overlays (25_textfx.js) and the worker capture page —
   preview/render parity by construction. */

/* TEXTFX-FONTIT 2026-09-02 (alku) — generoi fetch_textfx_fonts.py: avoimet OFL-korvausfontit paketoitu /static/fonts/-kansioon, jotta esikatselu (Windows-selain) ja render-koneen headless-chromium kayttavat SAMOJA fonteja. capture_textfx.py upottaa nama data-URI:na kaappaussivulle. */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-greek-ext.woff2') format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-greek.woff2') format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/inter-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-greek-ext.woff2') format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-greek.woff2') format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/inter-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/static/fonts/cormorant-garamond-400i-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/static/fonts/cormorant-garamond-400i-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/static/fonts/cormorant-garamond-400i-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/static/fonts/cormorant-garamond-400i-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('/static/fonts/cormorant-garamond-400i-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Archivo Black';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/archivo-black-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Archivo Black';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/archivo-black-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/lora-600-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/lora-600-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/lora-600-math.woff2') format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/lora-600-symbols.woff2') format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/lora-600-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/lora-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Lora';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/lora-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Courier Prime';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/courier-prime-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Courier Prime';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/courier-prime-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/caveat-600-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/caveat-600-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/caveat-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Caveat';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/caveat-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Caesar Dressing';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/caesar-dressing-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/anton-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/anton-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/anton-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/barlow-condensed-700-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/barlow-condensed-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/barlow-condensed-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Syncopate';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/syncopate-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Syncopate';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/syncopate-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/cinzel-600-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/cinzel-600-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Comic Neue';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/comic-neue-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Saira Stencil One';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/saira-stencil-one-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Saira Stencil One';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/saira-stencil-one-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Saira Stencil One';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/saira-stencil-one-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Hurricane';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/hurricane-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Hurricane';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/hurricane-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Hurricane';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/hurricane-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Alegreya Sans';font-style:italic;font-weight:800;font-display:swap;src:url('/static/fonts/alegreya-sans-800i-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Alegreya Sans';font-style:italic;font-weight:800;font-display:swap;src:url('/static/fonts/alegreya-sans-800i-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Alegreya Sans';font-style:italic;font-weight:800;font-display:swap;src:url('/static/fonts/alegreya-sans-800i-greek-ext.woff2') format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Alegreya Sans';font-style:italic;font-weight:800;font-display:swap;src:url('/static/fonts/alegreya-sans-800i-greek.woff2') format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}
@font-face{font-family:'Alegreya Sans';font-style:italic;font-weight:800;font-display:swap;src:url('/static/fonts/alegreya-sans-800i-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Alegreya Sans';font-style:italic;font-weight:800;font-display:swap;src:url('/static/fonts/alegreya-sans-800i-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Alegreya Sans';font-style:italic;font-weight:800;font-display:swap;src:url('/static/fonts/alegreya-sans-800i-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:200;font-display:swap;src:url('/static/fonts/montserrat-200-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:200;font-display:swap;src:url('/static/fonts/montserrat-200-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:200;font-display:swap;src:url('/static/fonts/montserrat-200-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:200;font-display:swap;src:url('/static/fonts/montserrat-200-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:200;font-display:swap;src:url('/static/fonts/montserrat-200-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/great-vibes-400-cyrillic-ext.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/great-vibes-400-cyrillic.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/great-vibes-400-greek-ext.woff2') format('woff2');unicode-range:U+1F00-1FFF;}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/great-vibes-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/great-vibes-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Great Vibes';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/great-vibes-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/pinyon-script-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/pinyon-script-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/pinyon-script-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Butterfly Kids';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/butterfly-kids-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Butterfly Kids';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/butterfly-kids-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Allura';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/allura-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Allura';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/allura-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Allura';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/allura-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Dancing Script';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/dancing-script-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Dancing Script';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/dancing-script-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Dancing Script';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/dancing-script-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Patrick Hand';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/patrick-hand-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Patrick Hand';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/patrick-hand-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Patrick Hand';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/patrick-hand-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Permanent Marker';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/permanent-marker-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Gochi Hand';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/gochi-hand-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Mystery Quest';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/mystery-quest-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Mystery Quest';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/mystery-quest-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'UnifrakturMaguntia';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/unifrakturmaguntia-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Eater';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/eater-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Eater';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/eater-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Pirata One';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/pirata-one-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Pirata One';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/pirata-one-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Uncial Antiqua';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/uncial-antiqua-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Uncial Antiqua';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/uncial-antiqua-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Cinzel Decorative';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/cinzel-decorative-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Cinzel Decorative';font-style:normal;font-weight:700;font-display:swap;src:url('/static/fonts/cinzel-decorative-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Italianno';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/italianno-400-vietnamese.woff2') format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}
@font-face{font-family:'Italianno';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/italianno-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Italianno';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/italianno-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Metamorphous';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/metamorphous-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Metamorphous';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/metamorphous-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Noto Sans Runic';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/noto-sans-runic-400-runic.woff2') format('woff2');unicode-range:U+16A0-16F8;}
@font-face{font-family:'Noto Sans Runic';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/noto-sans-runic-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Noto Sans Runic';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/noto-sans-runic-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Noto Sans Egyptian Hieroglyphs';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/noto-sans-egyptian-hieroglyphs-400-egyptian-hieroglyphs.woff2') format('woff2');unicode-range:U+13000-13455, U+13460-143FA;}
@font-face{font-family:'Noto Sans Egyptian Hieroglyphs';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/noto-sans-egyptian-hieroglyphs-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Noto Sans Egyptian Hieroglyphs';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/noto-sans-egyptian-hieroglyphs-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* TEXTFX-FONTIT (loppu) */


.eve-preview{height:220px;display:flex;align-items:center;justify-content:center;background:#1a1a2e;position:relative}
.eve-preview-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.eve-preview-canvas.front{z-index:3}
.eve-preview-text{font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif;font-size:58px;font-weight:700;color:#fff;text-align:center;line-height:1.1;transition:all var(--t-normal) var(--ease-out);position:relative;z-index:2}
.neon-style{text-shadow:0 0 10px #ff00de,0 0 20px #ff00de,0 0 40px #ff00de,0 0 80px #ff00de;color:#fff}
.glow-style{text-shadow:0 0 20px rgba(255,255,255,.8),0 0 40px rgba(255,255,255,.4)}
.outline-style{-webkit-text-stroke:2px #fff;color:transparent;text-shadow:0 0 15px rgba(255,255,255,.3)}
.metal-style{background:linear-gradient(180deg,#e8e8e8 0%,#a0a0a0 50%,#e8e8e8 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 4px 4px rgba(0,0,0,.5))}
.tex-stone,.tex-paper,.tex-wood,.tex-camo,.tex-concrete,.tex-sea,.tex-spruce,.tex-palm,.tex-snake,.tex-brick,.tex-clouds,.tex-tiger,.tex-gold,.tex-platinum{-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 3px rgba(0,0,0,.45))}
/* 2026-09-02: Platina gaala -tekstuurin CSS-esikatselu (kortit + fallback);
   varsinainen kangastekstuuri piirtyy 25_textfx.js makeTexture('tex-platinum'). */
.tex-platinum{background-image:linear-gradient(135deg,#5c616c,#8d95a3 16%,#ccd4e0 32%,#ffffff 42%,#dfe6f0 50%,#79808e 58%,#a7b0c0 76%,#eef2f9 90%,#525760)}
.anim-pop{animation:popIn .6s var(--ease-out) forwards}
.anim-bounce{animation:bounceIn .8s var(--ease-out) forwards}
.anim-shake{animation:shake .5s var(--ease-out) forwards}
.anim-glitch{animation:glitch .4s steps(2) forwards}
.anim-fade{animation:fadeRise .8s var(--ease-out) forwards}
.anim-blackhole{animation:blackhole 2.8s ease-in-out infinite}
.font-elegant{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;font-style:italic;letter-spacing:.04em}
.font-block{font-family:'Archivo Black',Impact,'Arial Black',sans-serif;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.font-serif{font-family:'Lora',Georgia,'Times New Roman',serif;font-weight:600}
.font-mono{font-family:'Courier Prime','Courier New',Courier,monospace;font-weight:700;letter-spacing:.02em}
.font-hand{font-family:'Caveat','Segoe Script','Brush Script MT',cursive;font-weight:600}
.font-fantasy{font-family:'Caesar Dressing',Papyrus,fantasy;font-weight:600;letter-spacing:.03em}
.font-impact{font-family:'Anton',Impact,'Arial Black',sans-serif;text-transform:uppercase;letter-spacing:.04em}
.font-condensed{font-family:'Barlow Condensed','Arial Narrow','Helvetica Neue',sans-serif;font-weight:700;font-stretch:condensed}
.font-wide{font-family:'Syncopate',Verdana,Geneva,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.22em}
.font-lannen{font-family:'Cinzel',Copperplate,'Copperplate Gothic Light',serif;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.font-leikkisa{font-family:'Comic Neue','Comic Sans MS','Chalkboard SE',cursive;font-weight:600}
.font-sapluuna{font-family:'Saira Stencil One',Impact,'Arial Black',sans-serif;text-transform:uppercase;letter-spacing:.18em}
.font-sivellin{font-family:'Hurricane','Brush Script MT','Segoe Script',cursive;font-weight:700;font-style:italic}
.font-retro{font-family:'Alegreya Sans','Trebuchet MS',Verdana,sans-serif;font-weight:800;font-style:italic}
.font-minimaalinen{font-family:'Montserrat','Inter','Segoe UI',sans-serif;font-weight:200;letter-spacing:.12em}
.font-kauno{font-family:'Great Vibes','Edwardian Script ITC','French Script MT','Snell Roundhand','Apple Chancery',cursive;font-weight:500}
.font-kutsu{font-family:'Pinyon Script','Palace Script MT','Edwardian Script ITC','Apple Chancery',cursive;font-weight:500;letter-spacing:.03em}
.font-kurlattu{font-family:'Butterfly Kids','Curlz MT','Harrington','Snell Roundhand',cursive;font-weight:500}
.font-hopea{font-family:'Allura','Monotype Corsiva','Lucida Handwriting','Apple Chancery',cursive;font-style:italic;font-weight:500}
.font-suloinen{font-family:'Dancing Script','Lucida Handwriting','Segoe Script',cursive;font-weight:400;letter-spacing:.05em}
.font-kasitehty{font-family:'Patrick Hand','Segoe Print','Bradley Hand','Chalkboard SE',cursive;font-weight:600}
.font-tussi{font-family:'Permanent Marker','Marker Felt','Ink Free','Comic Sans MS',cursive;font-weight:700}
.font-liitu{font-family:'Gochi Hand','Chalkboard SE','Chalkduster','Comic Sans MS',cursive;font-weight:500;letter-spacing:.03em}
.font-mystinen{font-family:'Mystery Quest',Papyrus,Herculanum,fantasy;font-weight:400;letter-spacing:.06em}
.font-keskiaika{font-family:'UnifrakturMaguntia','Old English Text MT','Blackadder ITC',serif;font-weight:600}
.font-noita{font-family:'Eater',Chiller,Jokerman,fantasy;font-weight:600;letter-spacing:.05em}
.font-ritari{font-family:'Pirata One','Showcard Gothic',Ravie,fantasy;font-weight:400;text-transform:uppercase;letter-spacing:.05em}
.font-taikuri{font-family:'Metamorphous',Trattatello,Luminari,Papyrus,fantasy;font-weight:600}
.font-alkeemikko{font-family:'Cinzel Decorative',Herculanum,Copperplate,serif;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.font-riimu{font-family:'Noto Sans Runic','Inter',sans-serif;font-weight:600;letter-spacing:.18em}
.font-kreikka{font-family:'Inter','Noto Sans','Segoe UI',sans-serif;letter-spacing:.08em;font-weight:600}
.font-egypti{font-family:'Noto Sans Egyptian Hieroglyphs','Inter',sans-serif;letter-spacing:.14em;font-weight:500}
.font-enkeli{font-family:'Italianno','Lucida Calligraphy','Apple Chancery','Edwardian Script ITC',cursive;font-style:italic;font-weight:400;letter-spacing:.08em}
.font-keltti{font-family:'Uncial Antiqua',Papyrus,'Copperplate Gothic Light',fantasy;font-variant:small-caps;letter-spacing:.07em;font-weight:600}
.fire-style{background:linear-gradient(0deg,#ff2a00 0%,#ff7b00 35%,#ffd000 70%,#fff8e0 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 -4px 10px rgba(255,90,0,.55)) drop-shadow(0 2px 6px rgba(255,40,0,.4))}
.water-style{background:linear-gradient(180deg,#eafcff 0%,#5cc8ff 30%,#1a7fe8 60%,#0a3a9e 100%);background-size:100% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 3px 8px rgba(20,110,255,.55)) drop-shadow(0 -2px 6px rgba(140,220,255,.35))}
.ice-style{color:#eaf7ff;-webkit-text-stroke:1px #9fdcff;text-shadow:0 0 12px rgba(160,220,255,.8),0 0 30px rgba(120,200,255,.5);filter:drop-shadow(0 2px 4px rgba(0,60,120,.4))}
.lightning-style{color:#fff;text-shadow:0 0 8px #fff34d,0 0 18px #fff34d,0 0 34px #ffd000}
.eve-letter{display:inline-block;transform-origin:50% 100%}
.anim-scan::after{content:'';position:absolute;top:-15%;bottom:-15%;left:0;width:7px;background:#dff6ff;box-shadow:0 0 16px #9fdcff,0 0 36px #9fdcff;pointer-events:none;animation:barSweep 1.9s linear infinite}
.eve-preview-text{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}

@keyframes popIn{0%{transform:scale(0);opacity:0}70%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
@keyframes bounceIn{0%{transform:translateY(-80px);opacity:0}60%{transform:translateY(10px)}80%{transform:translateY(-5px)}100%{transform:translateY(0);opacity:1}}
@keyframes shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-4px)}20%{transform:translateX(4px)}30%{transform:translateX(-3px)}40%{transform:translateX(3px)}50%{transform:translateX(-2px)}60%{transform:translateX(2px)}70%{transform:translateX(-1px)}80%{transform:translateX(1px)}90%{transform:translateX(0)}}
@keyframes glitch{0%{transform:translate(0);filter:none}20%{transform:translate(-3px,2px);filter:hue-rotate(90deg)}40%{transform:translate(3px,-2px);filter:hue-rotate(-90deg)}60%{transform:translate(-2px,0);filter:hue-rotate(45deg)}80%{transform:translate(2px,1px);filter:hue-rotate(-45deg)}100%{transform:translate(0);filter:none}}
@keyframes fadeRise{0%{transform:translateY(20px);opacity:0}100%{transform:translateY(0);opacity:1}}
@keyframes blackhole{0%{transform:scale(1) rotate(0deg);opacity:1;filter:blur(0)}45%{transform:scale(.04) rotate(480deg);opacity:0;filter:blur(3px)}60%{transform:scale(.04) rotate(480deg);opacity:0}85%{transform:scale(1.06) rotate(710deg);opacity:1;filter:blur(0)}100%{transform:scale(1) rotate(720deg);opacity:1}}
@keyframes fireFlicker{0%{filter:drop-shadow(0 -3px 8px rgba(255,90,0,.5)) drop-shadow(0 2px 5px rgba(255,40,0,.35))}100%{filter:drop-shadow(0 -8px 16px rgba(255,120,0,.85)) drop-shadow(0 2px 8px rgba(255,40,0,.6))}}
@keyframes waterFlow{0%{background-position:0 0}100%{background-position:0 300%}}
@keyframes iceShimmer{0%,100%{text-shadow:0 0 12px rgba(160,220,255,.8),0 0 30px rgba(120,200,255,.5)}50%{text-shadow:0 0 18px rgba(190,235,255,.95),0 0 44px rgba(140,210,255,.65)}}
@keyframes electricFlicker{0%,100%{opacity:1}30%{opacity:.55}35%{opacity:1}60%{opacity:.8}}
@keyframes spinIn{0%{transform:rotate(-540deg) scale(.2);opacity:0}100%{transform:rotate(0) scale(1);opacity:1}}
@keyframes flipIn{0%{transform:perspective(500px) rotateX(90deg);opacity:0}100%{transform:perspective(500px) rotateX(0);opacity:1}}
@keyframes swingLoop{0%,100%{transform:rotate(5deg)}50%{transform:rotate(-5deg)}}
@keyframes jellyLoop{0%,100%{transform:scale(1,1)}25%{transform:scale(.9,1.1)}50%{transform:scale(1.1,.9)}75%{transform:scale(.95,1.05)}}
@keyframes pulseLoop{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes floatLoop{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes slideInX{0%{transform:translateX(-120%);opacity:0}100%{transform:translateX(0);opacity:1}}
@keyframes blurIn{0%{filter:blur(14px);opacity:0}100%{filter:blur(0);opacity:1}}
@keyframes letterWave{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes letterIn{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:none}}
@keyframes letterDomino{0%{transform:perspective(400px) rotateX(-88deg);opacity:0}60%{transform:perspective(400px) rotateX(10deg);opacity:1}100%{transform:none;opacity:1}}
@keyframes letterStretchY{0%{transform:scaleY(3.2);opacity:0}55%{transform:scaleY(.75);opacity:1}75%{transform:scaleY(1.18)}100%{transform:none;opacity:1}}
@keyframes letterMelt{0%,32%{transform:none;opacity:1;filter:blur(0)}68%{transform:translateY(44px) scaleY(1.7);opacity:.85;filter:blur(1px)}86%{transform:translateY(64px) scaleY(2.2);opacity:0}87%{transform:none;opacity:0}100%{transform:none;opacity:1}}
@keyframes letterBoom{0%,28%{transform:none;opacity:1}62%{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(.6);opacity:0}63%{transform:none;opacity:0}100%{transform:none;opacity:1}}
@keyframes scaleInOut{0%{transform:scale(0);opacity:0}38%{transform:scale(1.05);opacity:1}48%{transform:scale(1)}72%{transform:scale(1)}100%{transform:scale(0);opacity:0}}
@keyframes foldOpen{0%{transform:perspective(600px) rotateX(-92deg);opacity:0}100%{transform:perspective(600px) rotateX(0);opacity:1}}
@keyframes gravityDrop{0%{transform:translateY(-150%);opacity:0}12%{opacity:1}52%{transform:translateY(0)}68%{transform:translateY(-16%)}80%{transform:translateY(0)}89%{transform:translateY(-5%)}100%{transform:none}}
@keyframes dropLaunch{0%{transform:translateY(-170%);opacity:0}15%{opacity:1}62%{transform:translateY(0)}72%{transform:translateY(-3%) scale(1.03,.95)}82%{transform:translateY(0) scale(.98,1.03)}90%{transform:scale(1.01,.99)}100%{transform:none}}
@keyframes focusIn{0%{filter:blur(18px);opacity:.15}100%{filter:blur(0);opacity:1}}
@keyframes strobeFlick{0%,100%{opacity:1}7%{opacity:.15}9%{opacity:1}21%{opacity:.45}23%{opacity:1}35%{opacity:.1}37%{opacity:1}54%{opacity:.65}56%{opacity:1}73%{opacity:.25}75%{opacity:1}}
@keyframes rainbowCycle{0%{filter:hue-rotate(0deg)}100%{filter:hue-rotate(360deg)}}
@keyframes pixelIn{0%{filter:blur(12px) contrast(2.2) saturate(.2);transform:scale(1.05);opacity:0}40%{filter:blur(7px) contrast(1.7)}70%{filter:blur(3px)}100%{filter:none;transform:none;opacity:1}}
@keyframes barSweep{0%{left:-40%}100%{left:110%}}
@keyframes revealXLoop{0%{clip-path:inset(0 100% 0 0)}55%{clip-path:inset(0 0 0 0)}86%{clip-path:inset(0 0 0 0)}87%{clip-path:inset(0 100% 0 0)}100%{clip-path:inset(0 100% 0 0)}}
@keyframes vhsRewind{0%,55%,100%{transform:none}8%{transform:translateX(-7px);text-shadow:-4px 0 #f0f,4px 0 #0ff}16%{transform:translateX(6px);text-shadow:4px 0 #f0f,-4px 0 #0ff}24%{transform:translateX(-9px)}32%{transform:translateX(4px);text-shadow:-3px 0 #f0f,3px 0 #0ff}42%{transform:translateX(-2px)}}

/* === EVE TextFX overlay stage (25_textfx.js) — 2026-08-31 === */
/* The widget prototype got these from the kimi-widget chrome; the overlay
   engine needs them defined locally so animations keep their easing. */
:root{--ease-out:cubic-bezier(.16,1,.3,1);--t-normal:.25s}
.textfx-stage{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:visible;pointer-events:none}/* 2026-09-02: overflow visible — glow/partikkelit nakyvat yli tiukan boksin reunojen (bleed-inset inline-tyylina); vetoalue pysyy boksissa koska stage on pointer-events:none */
.textfx-stage .eve-preview-text{transition:none;cursor:inherit;white-space:nowrap;max-width:100%}
.textfx-stage .eve-preview-canvas{pointer-events:none;background:transparent}
/* 2026-09-06 (varjo): cvT + el yhdessa .textfx-ink-wrapperissa — kayttajan
   pudotusvarjo (drop-shadow inline-filter) osuu tekstiin + tekstuuriin,
   EI partikkeleihin (cvB/cvF ovat stagen suoria lapsia). Samat
   flex-keskitys- ja inset-ominaisuudet kuin stagella. */
.textfx-ink{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:2}
.textfx-ink .eve-preview-canvas{pointer-events:none;background:transparent}
.textfx-stage .textfx-tex{z-index:2}

/* === Tekstiefekti-editori (SPEC 2026-08-31 K1, approved 2026-09-01) ===
   Controls for the selected kind="text" overlay inside the Text tab. */
.textfx-editor {
    display: flex;
    flex-direction: column;
    gap: 6px;
    border: 1px solid var(--border, #333);
    border-radius: var(--eve-radius-sm, 6px);
    padding: 8px;
    background: rgba(255, 255, 255, .02);
    /* 2026-09-11 (setti 0911i, käyttäjän bugiraportti: "napit eivät mahdu
       näyttöön eivätkä näy"): kun editori on pitkä (kaikki kontrollit
       auki), alareunan Tallenna/roskakori ja apply-valinta valuivat
       paneelin alareunan yli ja leikkaantuivat pois — paneeli ei scrollaa
       (grid on sen ainoa scrollaava lapsi). Rajoita editorin korkeutta
       ja scrollaa editori SISÄISESTI, jotta alanapit ovat aina
       saavutettavissa eikä preset-grid häviä. */
    flex: 0 1 auto;
    max-height: 52vh;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.textfx-editor-title {
    font-weight: 600;
    font-size: 0.82rem;
    color: var(--beige, #d2a574);
}

.textfx-row {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.78rem;
}

.textfx-row > span:first-child {
    flex: 0 0 70px;
    color: var(--text-dim, #999);
}

.textfx-row input[type="text"],
.textfx-row select {
    flex: 1;
    min-width: 0;
    background: #141b28;
    color: #e8e6e1;
    border: 1px solid var(--border, #333);
    border-radius: var(--eve-radius-sm, 6px);
    padding: 4px 6px;
    font-size: 0.78rem;
}

/* Fonttipudotus esikatseluilla (2026-09-01): natiivi select piilossa,
   nakyva widget renderoi jokaisen fontin omalla font-*-luokallaan. */
.textfx-hidden-select {
    display: none;
}

.textfx-fontsel {
    position: relative;
    flex: 1;
    min-width: 0;
}

.textfx-fontsel-btn {
    width: 100%;
    text-align: left;
    background: #141b28;
    color: #e8e6e1;
    border: 1px solid var(--border, #333);
    border-radius: var(--eve-radius-sm, 6px);
    padding: 4px 6px;
    font-size: 0.95rem;
    min-height: 28px;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.textfx-fontsel-btn::after {
    content: '▾';
    float: right;
    color: var(--text-dim, #999);
    font-size: 0.72rem;
}

.textfx-fontsel-list {
    display: none;
    position: absolute;
    z-index: 70;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    max-height: 260px;
    overflow-y: auto;
    background: #141b28;
    border: 1px solid var(--border, #333);
    border-radius: var(--eve-radius-sm, 6px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
}

.textfx-fontsel.open .textfx-fontsel-list {
    display: block;
}

.textfx-fontopt {
    padding: 6px 8px;
    cursor: pointer;
    color: #e8e6e1;
    font-size: 1rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.textfx-fontopt:hover {
    background: #20203a;
}

.textfx-fontopt.sel {
    background: #1c2333;
    box-shadow: inset 2px 0 0 var(--beige, #d2a574);
}

/* Tyylipudotus esikatseluilla (2026-09-03, kayttajan pyynto): natiivi
   select piilossa (textfx-hidden-select), nakyva widget nayttaa jokaisen
   tyylin suorakaide-ruudussa — tex-* = varsinainen kangastekstuuri
   (makeTexture data-URI), muut = Aa-nayte tyyliluokalla. */
.textfx-stylesel {
    position: relative;
    flex: 1;
    min-width: 0;
}

.textfx-stylesel-btn {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    text-align: left;
    background: #141b28;
    color: #e8e6e1;
    border: 1px solid var(--border, #333);
    border-radius: var(--eve-radius-sm, 6px);
    padding: 4px 6px;
    font-size: 0.95rem;
    min-height: 36px;
    cursor: pointer;
    overflow: hidden;
}

.textfx-stylesel-btn::after {
    content: '▾';
    margin-left: auto;
    color: var(--text-dim, #999);
    font-size: 0.72rem;
}

.textfx-stylesel-list {
    display: none;
    position: absolute;
    z-index: 70;
    top: calc(100% + 2px);
    left: 0;
    right: 0;
    max-height: 260px;
    overflow-y: auto;
    background: #141b28;
    border: 1px solid var(--border, #333);
    border-radius: var(--eve-radius-sm, 6px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
}

.textfx-stylesel.open .textfx-stylesel-list {
    display: block;
}

.textfx-styleopt {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px;
    cursor: pointer;
    color: #e8e6e1;
    font-size: 0.95rem;
    white-space: nowrap;
    overflow: hidden;
}

.textfx-styleopt:hover {
    background: #20203a;
}

.textfx-styleopt.sel {
    background: #1c2333;
    box-shadow: inset 2px 0 0 var(--beige, #d2a574);
}

.textfx-styleopt-label {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Suorakaide-ruutu: tumma pohja, jotta vaaleat tyylit erottuvat;
   tex-tyyleilla taustakuvana varsinainen kangas (center/cover). */
.textfx-styleswatch {
    flex: none;
    width: 64px;
    height: 28px;
    border-radius: 4px;
    border: 1px solid rgba(255, 255, 255, .16);
    background: #0b0f18 center / cover no-repeat;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.textfx-styleswatch > span {
    font-size: 19px;
    font-weight: 700;
    line-height: 1;
    color: #e8e6e1;
}

.textfx-slider input[type="range"] {
    flex: 1;
    min-width: 0;
}

.textfx-slider b {
    flex: 0 0 42px;
    text-align: right;
    font-weight: 600;
    color: var(--text-dim, #999);
    font-size: 0.72rem;
}

.textfx-colors {
    display: flex;
    justify-content: space-between;
    gap: 6px;
}

.textfx-colors label {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    font-size: 0.68rem;
    color: var(--text-dim, #999);
}

.textfx-color-wrap {
    display: flex;
    align-items: center;
    gap: 3px;
}

.textfx-colors input[type="color"] {
    width: 34px;
    height: 26px;
    border: 1px solid var(--border, #333);
    border-radius: var(--eve-radius-sm, 6px);
    background: none;
    padding: 0;
    cursor: pointer;
}

.textfx-color-reset {
    border: none;
    background: none;
    color: var(--text-dim, #999);
    font-size: 0.7rem;
    cursor: pointer;
    padding: 2px;
}

.textfx-color-reset:hover {
    color: #fff;
}

.textfx-toggles {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.textfx-toggles label {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.74rem;
    cursor: pointer;
}

/* 2026-09-03 (kayttajan pyynto): Tallenna + roskakori editorin alareunaan. */
.textfx-editor-actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    padding-top: 8px;
    margin-top: 4px;
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}

/* 2026-09-11 (setti 0911h): "käytä kaikkiin skenen tekstitehosteisiin"
   -optio Tallenna-napin viereen — label vie loput tilasta, napit oikealle. */
.textfx-apply-scene {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-right: auto;
    font-size: 12px;
    color: var(--muted, #8a8577);
    cursor: pointer;
    user-select: none;
}
.textfx-apply-scene input {
    accent-color: var(--accent, #7c9a5e);
    cursor: pointer;
}

/* 2026-09-03 (pyyntö 7): partikkeliglyfien bundle-fontit. Render-workerilla
   ei ole jarjestelman emoji-/CJK-fontteja — ilman naita bolt/kiss/poop/pig/
   tree/balloon/sakura piirtyvat tofuina tai "kaarmenoityina" ja cnlove
   nakyy vaaralla fontilla. capture_textfx.py upottaa nama data-URI:ina
   kaappaussivuun automaattisesti (sama _load_textfx_css-mekanismi). */
@font-face{font-family:'EveEmoji';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/eve-emoji.woff2') format('woff2');}
@font-face{font-family:'EveCJKLove';font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/eve-cjk-love.woff2') format('woff2');}
