{"id":7139,"date":"2026-03-30T00:00:54","date_gmt":"2026-03-30T00:00:54","guid":{"rendered":"https:\/\/raistheme.com\/?page_id=7139"},"modified":"2026-04-06T11:55:35","modified_gmt":"2026-04-06T11:55:35","slug":"handwriting","status":"publish","type":"page","link":"https:\/\/raistheme.com\/tools\/font-generator\/handwriting\/","title":{"rendered":"Handwriting Font Generator \u2013 Create Natural Text Free"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7139\" class=\"elementor elementor-7139\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5c0c53d4 e-con-full e-flex e-con e-parent\" data-id=\"5c0c53d4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b076e4d elementor-widget elementor-widget-shortcode\" data-id=\"5b076e4d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\"><div id=\"handwriting-font-generator\">\r\n\r\n    <!-- Google Fonts and Icons CDN -->\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n    <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600&family=Playfair+Display:wght@700&display=swap\" rel=\"stylesheet\">\r\n    <link href=\"https:\/\/cdn.jsdelivr.net\/npm\/boxicons@2.1.4\/css\/boxicons.min.css\" rel=\"stylesheet\">\r\n\r\n    <!-- CSS styles scoped to the component -->\r\n    <style>\r\n        \/* CSS variables for the handwriting-themed aesthetic *\/\r\n        #handwriting-font-generator {\r\n            \/* 1. Primary Palette *\/\r\n            --hfg-ink-charcoal: #3D405B;\r\n            --hfg-paper-cream: #FDFCF7;\r\n            --hfg-graphite-gray: #8D99AE;\r\n\r\n            \/* 2. Secondary Pastel Colors *\/\r\n            --hfg-sky-blue: #AEC6CF;\r\n            --hfg-blush-pink: #F4C2C2;\r\n            --hfg-lemon-yellow: #FFFACD;\r\n            \r\n            \/* 3. Tertiary Colors *\/\r\n            --hfg-lavender-mist: #E0BBE4;\r\n            --hfg-mint-green: #BEE7D8;\r\n            --hfg-peach-coral: #FFDAB9;\r\n            \r\n            \/* 5. Glow & Soft Effects (rgba for transparency) *\/\r\n            --hfg-sky-blue-glow: rgba(174, 198, 207, 0.5);\r\n            --hfg-lemon-yellow-glow: rgba(255, 250, 205, 0.7);\r\n            --hfg-blush-pink-glow: rgba(244, 194, 194, 0.6);\r\n            --hfg-mint-green-glow: rgba(190, 231, 216, 0.7);\r\n\r\n            \/* Re-themed component variables *\/\r\n            --primary-color: var(--hfg-ink-charcoal);\r\n            --secondary-color: var(--hfg-sky-blue);\r\n            --accent-color: var(--hfg-blush-pink);\r\n            --background-color: var(--hfg-paper-cream); \/* Main background *\/\r\n            --container-bg-color: #FFFFFF; \/* Cards and inputs are pure white *\/\r\n            --text-color: var(--hfg-ink-charcoal);\r\n            --light-text-color: var(--hfg-graphite-gray);\r\n            --border-color: var(--hfg-graphite-gray);\r\n            --success-color: var(--hfg-mint-green);\r\n            \r\n            --card-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);\r\n            --card-hover-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);\r\n            --border-radius: 12px;\r\n            --transition-speed: 0.3s;\r\n            --font-main: 'Inter', sans-serif;\r\n            --font-heading: 'Playfair Display', serif;\r\n        }\r\n\r\n        \/* Base styles *\/\r\n        #handwriting-font-generator * {\r\n            box-sizing: border-box;\r\n            margin: 0;\r\n            padding: 0;\r\n            font-family: var(--font-main);\r\n        }\r\n        \r\n        #handwriting-font-generator {\r\n            background-color: var(--background-color);\r\n            color: var(--text-color);\r\n            padding: 30px 15px;\r\n            width: 100%;\r\n            overflow-x: hidden;\r\n        }\r\n\r\n        \/* Centered inner content container *\/\r\n        #handwriting-font-generator .hfg-container {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n            padding: 0 15px;\r\n            text-align: center;\r\n        }\r\n\r\n        \/* Typography Color Rules *\/\r\n        #handwriting-font-generator h1 {\r\n            font-family: var(--font-heading);\r\n            font-size: 2.8rem;\r\n            color: var(--secondary-color);\r\n            margin-top: 2rem;\r\n            margin-bottom: 1rem;\r\n        }\r\n\r\n        #handwriting-font-generator h2 {\r\n            font-family: var(--font-heading);\r\n            font-size: 2.2rem;\r\n            color: var(--primary-color);\r\n            margin-bottom: 1.5rem;\r\n            margin-top: 4rem;\r\n            border-bottom: 2px solid var(--hfg-lavender-mist);\r\n            display: inline-block;\r\n            padding-bottom: 0.5rem;\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-subheading {\r\n            font-size: 1.1rem;\r\n            color: var(--hfg-graphite-gray);\r\n            max-width: 800px;\r\n            margin: 0 auto 2.5rem auto;\r\n            line-height: 1.6;\r\n        }\r\n        \r\n        #handwriting-font-generator p, \r\n        #handwriting-font-generator li {\r\n            line-height: 1.7;\r\n            margin-bottom: 1rem;\r\n            text-align: left;\r\n            color: var(--text-color);\r\n        }\r\n\r\n        \/* Generator Tool Form *\/\r\n        #handwriting-font-generator .hfg-generator-form {\r\n            background-color: var(--container-bg-color);\r\n            padding: 2rem;\r\n            border-radius: var(--border-radius);\r\n            box-shadow: var(--card-shadow);\r\n            border: 1px solid #f0f0f0;\r\n            margin-bottom: 1.5rem;\r\n            display: grid;\r\n            grid-template-columns: 1fr;\r\n            gap: 1.5rem;\r\n            justify-items: center; \/* Center items horizontally *\/\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-input-group {\r\n            width: 100%;\r\n            max-width: 600px; \/* Constrain input width *\/\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-input-group label {\r\n            font-weight: 600;\r\n            margin-bottom: 0.5rem;\r\n            color: var(--primary-color);\r\n            text-align: left;\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-text-input {\r\n            width: 100%;\r\n            padding: 0.8rem 1rem;\r\n            border: 1px solid var(--border-color);\r\n            border-radius: var(--border-radius);\r\n            font-size: 1rem;\r\n            transition: border-color var(--transition-speed), box-shadow var(--transition-speed);\r\n            background-color: #fff;\r\n        }\r\n        #handwriting-font-generator .hfg-text-input::placeholder {\r\n            color: var(--hfg-graphite-gray);\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-text-input:focus {\r\n            outline: none;\r\n            border-color: var(--secondary-color);\r\n            box-shadow: 0 0 10px 4px var(--hfg-sky-blue-glow);\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-generate-btn {\r\n            background-color: var(--secondary-color);\r\n            color: var(--primary-color);\r\n            border: none;\r\n            padding: 1rem 1.5rem;\r\n            font-size: 1.1rem;\r\n            font-weight: 600;\r\n            border-radius: var(--border-radius);\r\n            cursor: pointer;\r\n            transition: all var(--transition-speed);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: 0.5rem;\r\n            width: auto;\r\n            min-width: 250px; \/* Give button a nice minimum width *\/\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-generate-btn:hover {\r\n            background-color: #b7d1d9;\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 0 15px 5px var(--hfg-lemon-yellow-glow);\r\n        }\r\n\r\n        \/* Features\/Filter Bar *\/\r\n        #handwriting-font-generator .hfg-features-bar {\r\n            display: flex;\r\n            flex-wrap: wrap;\r\n            justify-content: center;\r\n            gap: 0.75rem;\r\n            margin-bottom: 2rem;\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-feature-btn {\r\n            background-color: var(--container-bg-color);\r\n            border: 1px solid var(--border-color);\r\n            color: var(--text-color);\r\n            padding: 0.6rem 1.2rem;\r\n            border-radius: 50px; \/* pill shape *\/\r\n            font-size: 0.9rem;\r\n            font-weight: 500;\r\n            cursor: pointer;\r\n            transition: all var(--transition-speed) ease;\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-feature-btn:hover {\r\n            border-color: var(--secondary-color);\r\n            color: var(--secondary-color);\r\n            transform: translateY(-2px);\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-feature-btn.active {\r\n            background-color: var(--primary-color);\r\n            border-color: var(--primary-color);\r\n            color: var(--hfg-paper-cream);\r\n            box-shadow: 0 2px 8px rgba(0,0,0,0.1);\r\n        }\r\n\r\n        \/* Generated Output Section *\/\r\n        #handwriting-font-generator .hfg-results-grid {\r\n            display: grid;\r\n            grid-template-columns: 1fr;\r\n            gap: 1rem;\r\n        }\r\n\r\n        \/* Card & Component Aesthetic *\/\r\n        #handwriting-font-generator .hfg-result-card {\r\n            background-color: var(--container-bg-color);\r\n            border: 1px solid var(--hfg-graphite-gray);\r\n            border-radius: var(--border-radius);\r\n            padding: 1rem 1.5rem;\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            box-shadow: var(--card-shadow);\r\n            transition: transform var(--transition-speed), box-shadow var(--transition-speed);\r\n        }\r\n\r\n        #handwriting-font-generator .hfg-result-card:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: var(--card-hover-shadow);\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-result-text {\r\n            flex-grow: 1;\r\n            text-align: left;\r\n            font-size: 1.2rem;\r\n            overflow-wrap: break-word;\r\n            word-break: break-all;\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-copy-btn {\r\n            background-color: var(--hfg-blush-pink);\r\n            color: var(--primary-color);\r\n            border: none;\r\n            border-radius: var(--border-radius);\r\n            padding: 0.6rem 1rem;\r\n            cursor: pointer;\r\n            font-weight: 500;\r\n            transition: all var(--transition-speed);\r\n            margin-left: 1rem;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: 0.4rem;\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-copy-btn:hover {\r\n            box-shadow: 0 0 10px 4px var(--hfg-blush-pink-glow);\r\n            transform: scale(1.05);\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-copy-btn.copied {\r\n            background-color: var(--success-color);\r\n            color: var(--primary-color);\r\n        }\r\n        \r\n        #handwriting-font-generator .hfg-copy-btn.copied:hover {\r\n             box-shadow: 0 0 10px 4px var(--hfg-mint-green-glow);\r\n        }\r\n\r\n        \/* Content Sections *\/\r\n        #handwriting-font-generator .hfg-content-section {\r\n            background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(247,242,235,0.4) 100%);\r\n            padding: 2rem;\r\n            border-radius: var(--border-radius);\r\n            border-top: 1px solid var(--hfg-lavender-mist);\r\n            margin-top: 2rem;\r\n            text-align: left;\r\n        }\r\n        \r\n        \/* Responsive Design *\/\r\n        @media (min-width: 600px) {\r\n            #handwriting-font-generator .hfg-results-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }\r\n        }\r\n\r\n        @media (min-width: 900px) {\r\n            #handwriting-font-generator .hfg-results-grid { grid-template-columns: repeat(3, 1fr); }\r\n            #handwriting-font-generator h1 { font-size: 3.5rem; }\r\n        }\r\n    <\/style>\r\n    \r\n    <!-- HTML structure -->\r\n    <main class=\"hfg-container\">\r\n\r\n        <!-- Header -->\r\n        <h1>Handwriting Font Generator - Create Natural Text Free <\/h1>\r\n        <p class=\"hfg-subheading\">\r\n            Transform your text into 50+ unique, copy-pasteable handwriting styles. Find the perfect aesthetic from soft cursives to bold scripts for your social media, notes, and designs.\r\n        <\/p>\r\n\r\n        <!-- Generator UI -->\r\n        <section id=\"hfg-generator-ui\" class=\"hfg-generator-form\" aria-labelledby=\"generator-title\">\r\n            <div class=\"hfg-input-group full-width\">\r\n                <label for=\"keyword-input\">Enter your text here<\/label>\r\n                <input type=\"text\" id=\"keyword-input\" class=\"hfg-text-input\" placeholder=\"Type something...\">\r\n            <\/div>\r\n            <button id=\"generate-btn\" class=\"hfg-generate-btn\" aria-label=\"Generate font styles\">\r\n                <i class='bx bx-pen'><\/i> Generate\r\n            <\/button>\r\n        <\/section>\r\n\r\n        <!-- Features\/Filter Bar -->\r\n        <section id=\"hfg-features\" aria-label=\"Style Filters\">\r\n            <div class=\"hfg-features-bar\">\r\n                <button class=\"hfg-feature-btn active\" data-category=\"all\" aria-pressed=\"true\">All Styles<\/button>\r\n                <button class=\"hfg-feature-btn\" data-category=\"cursive\" aria-pressed=\"false\">Cursive<\/button>\r\n                <button class=\"hfg-feature-btn\" data-category=\"cute\" aria-pressed=\"false\">Cute<\/button>\r\n                <button class=\"hfg-feature-btn\" data-category=\"bold\" aria-pressed=\"false\">Bold<\/button>\r\n                <button class=\"hfg-feature-btn\" data-category=\"simple\" aria-pressed=\"false\">Simple<\/button>\r\n                <button class=\"hfg-feature-btn\" data-category=\"decorative\" aria-pressed=\"false\">Decorative<\/button>\r\n            <\/div>\r\n        <\/section>\r\n\r\n        <!-- Generated Output Section -->\r\n        <section id=\"hfg-output\" class=\"hfg-results-grid\" aria-live=\"polite\">\r\n            <!-- Results will be dynamically inserted here -->\r\n        <\/section>\r\n\r\n        <!-- Content Sections -->\r\n        <br>\r\n\r\n    <\/main>\r\n\r\n    <!-- JavaScript logic -->\r\n    <script>\r\n        document.addEventListener('DOMContentLoaded', function () {\r\n            const generateBtn = document.getElementById('generate-btn');\r\n            const keywordInput = document.getElementById('keyword-input');\r\n            const resultsGrid = document.getElementById('hfg-output');\r\n            const featuresBar = document.querySelector('.hfg-features-bar');\r\n\r\n            let activeCategory = 'all';\r\n\r\n            const transformText = (text, map) => {\r\n                const from = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n                const to = (map.lower || \"\") + (map.upper || \"\") + (map.num || \"\");\r\n                if (!to) return text;\r\n                let result = \"\";\r\n                for (let i = 0; i < text.length; i++) {\r\n                    const char = text.charAt(i);\r\n                    const index = from.indexOf(char);\r\n                    result += (index !== -1 && to.charAt(index)) ? to.charAt(index) : char;\r\n                }\r\n                return result;\r\n            };\r\n            \r\n             const transformWithCombiningChar = (text, baseMap, combiningChar) => {\r\n                const transformedText = Object.keys(baseMap).length ? transformText(text, baseMap) : text;\r\n                return transformedText.split('').map(char => (char === ' ' ? ' ' : char + combiningChar)).join('');\r\n            };\r\n            \r\n            const styleMaps = {\r\n                elegantScript: { lower: '\ud835\udcea\ud835\udceb\ud835\udcec\ud835\udced\ud835\udcee\ud835\udcef\ud835\udcf0\ud835\udcf1\ud835\udcf2\ud835\udcf3\ud835\udcf4\ud835\udcf5\ud835\udcf6\ud835\udcf7\ud835\udcf8\ud835\udcf9\ud835\udcfa\ud835\udcfb\ud835\udcfc\ud835\udcfd\ud835\udcfe\ud835\udcff\ud835\udd00\ud835\udd01\ud835\udd02\ud835\udd03', upper: '\ud835\udcd0\ud835\udcd1\ud835\udcd2\ud835\udcd3\ud835\udcd4\ud835\udcd5\ud835\udcd6\ud835\udcd7\ud835\udcd8\ud835\udcd9\ud835\udcda\ud835\udcdb\ud835\udcdc\ud835\udcdd\ud835\udcde\ud835\udcdf\ud835\udce0\ud835\udce1\ud835\udce2\ud835\udce3\ud835\udce4\ud835\udce5\ud835\udce6\ud835\udce7\ud835\udce8\ud835\udce9' },\r\n                casualScript: { lower: '\ud835\udcb6\ud835\udcb7\ud835\udcb8\ud835\udcb9\ud835\udc52\ud835\udcbb\ud835\udc54\ud835\udcbd\ud835\udcbe\ud835\udcbf\ud835\udcc0\ud835\udcc1\ud835\udcc2\ud835\udcc3\ud835\udc5c\ud835\udcc5\ud835\udcc6\ud835\udcc7\ud835\udcc8\ud835\udcc9\ud835\udcca\ud835\udccb\ud835\udccc\ud835\udccd\ud835\udcce\ud835\udccf', upper: '\ud835\udc9c\u212c\ud835\udc9e\ud835\udc9f\u2130\u2131\ud835\udca2\u210b\u2110\ud835\udca5\ud835\udca6\u2112\u2133\ud835\udca9\ud835\udcaa\ud835\udcab\ud835\udcac\u211b\ud835\udcae\ud835\udcaf\ud835\udcb0\ud835\udcb1\ud835\udcb2\ud835\udcb3\ud835\udcb4\ud835\udcb5' },\r\n                neatPrint: { lower: '\ud835\ude8a\ud835\ude8b\ud835\ude8c\ud835\ude8d\ud835\ude8e\ud835\ude8f\ud835\ude90\ud835\ude91\ud835\ude92\ud835\ude93\ud835\ude94\ud835\ude95\ud835\ude96\ud835\ude97\ud835\ude98\ud835\ude99\ud835\ude9a\ud835\ude9b\ud835\ude9c\ud835\ude9d\ud835\ude9e\ud835\ude9f\ud835\udea0\ud835\udea1\ud835\udea2\ud835\udea3', upper: '\ud835\ude70\ud835\ude71\ud835\ude72\ud835\ude73\ud835\ude74\ud835\ude75\ud835\ude76\ud835\ude77\ud835\ude78\ud835\ude79\ud835\ude7a\ud835\ude7b\ud835\ude7c\ud835\ude7d\ud835\ude7e\ud835\ude7f\ud835\ude80\ud835\ude81\ud835\ude82\ud835\ude83\ud835\ude84\ud835\ude85\ud835\ude86\ud835\ude87\ud835\ude88\ud835\ude89' },\r\n                boldMarker: { lower: '\ud835\udc1a\ud835\udc1b\ud835\udc1c\ud835\udc1d\ud835\udc1e\ud835\udc1f\ud835\udc20\ud835\udc21\ud835\udc22\ud835\udc23\ud835\udc24\ud835\udc25\ud835\udc26\ud835\udc27\ud835\udc28\ud835\udc29\ud835\udc2a\ud835\udc2b\ud835\udc2c\ud835\udc2d\ud835\udc2e\ud835\udc2f\ud835\udc30\ud835\udc31\ud835\udc32\ud835\udc33', upper: '\ud835\udc00\ud835\udc01\ud835\udc02\ud835\udc03\ud835\udc04\ud835\udc05\ud835\udc06\ud835\udc07\ud835\udc08\ud801\udc09\ud835\udc0a\ud835\udc0b\ud835\udc0c\ud835\udc0d\ud835\udc0e\ud835\udc0f\ud835\udc10\ud835\udc11\ud835\udc12\ud835\udc13\ud835\udc14\ud835\udc15\ud835\udc16\ud835\udc17\ud835\udc18\ud835\udc19' },\r\n                messyPrint: { lower: '\u0105\u0253\u023c\u0111\u0247\u0192\u01e5\u0127\u0131\u0249\u0199\u0140\u0271\u0235\u01eb\u03c1\u024b\u024d\u0219\u0165\u0173\u1e7d\u1e85\u04b3\u1ef5\u01b6', upper: '\u0104\u0181\u0187\u0110\u0246\u0191\u01e4\u0126I\u0248\u0198\u0141M\u0220\u00d8PQ\u024c\u0218\u0166UVWXYZ' },\r\n                thinPen: { lower: '\ud835\ude22\ud835\ude23\ud835\ude24\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude28\ud835\ude29\ud835\ude2a\ud835\ude2b\ud835\ude2c\ud835\ude2d\ud835\ude2e\ud835\ude2f\ud835\ude30\ud835\ude31\ud835\ude32\ud835\ude33\ud835\ude34\ud835\ude35\ud835\ude36\ud835\ude37\ud835\ude38\ud835\ude39\ud835\ude3a\ud835\ude3b', upper: '\ud835\ude08\ud835\ude09\ud835\ude0a\ud835\ude0b\ud835\ude0c\ud835\ude0d\ud835\ude0e\ud835\ude0f\ud835\ude10\ud835\ude11\ud835\ude12\ud835\ude13\ud835\ude14\ud835\ude15\ud835\ude16\ud835\ude17\ud835\ude18\ud835\ude19\ud835\ude1a\ud835\ude1b\ud835\ude1c\ud835\ude1d\ud835\ude1e\ud835\ude1f\ud835\ude20\ud835\ude21' },\r\n                roundPrint: { lower: '\u24d0\u24d1\u24d2\u24d3\u24d4\u24d5\u24d6\u24d7\u24d8\u24d9\u24da\u24db\u24dc\u24dd\u24de\u24df\u24e0\u24e1\u24e2\u24e3\u24e4\u24e5\u24e6\u24e7\u24e8\u24e9', upper: '\u24b6\u24b7\u24b8\u24b9\u24ba\u24bb\u24bc\u24bd\u24be\u24bf\u24c0\u24c1\u24c2\u24c3\u24c4\u24c5\u24c6\u24c7\u24c8\u24c9\u24ca\u24cb\u24cc\u24cd\u24ce\u24cf' },\r\n            };\r\n\r\n            const allStyles = [\r\n                \/\/ Cursive Styles\r\n                { name: 'Elegant Script', type: 'map', map: styleMaps.elegantScript, category: 'cursive' },\r\n                { name: 'Casual Script', type: 'map', map: styleMaps.casualScript, category: 'cursive' },\r\n                { name: 'Underlined Script', type: 'combine', baseMap: styleMaps.elegantScript, char: '\\u0332', category: 'cursive' },\r\n                { name: 'Wavy Script', type: 'combine', baseMap: styleMaps.casualScript, char: '\\u0303', category: 'cursive' },\r\n                { name: 'Dotted Casual Script', type: 'combine', baseMap: styleMaps.casualScript, char: '\\u0324', category: 'cursive' },\r\n                { name: 'Strikethrough Script', type: 'combine', baseMap: styleMaps.elegantScript, char: '\\u0338', category: 'cursive' },\r\n                { name: 'Medieval Handwriting', type: 'map', map: { lower: '\ud835\udd1e\ud835\udd1f\ud835\udd20\ud835\udd21\ud835\udd22\ud835\udd23\ud835\udd24\ud835\udd25\ud835\udd26\ud835\udd27\ud835\udd28\ud835\udd29\ud835\udd2a\ud835\udd2b\ud835\udd2c\ud835\udd2d\ud835\udd2e\ud835\udd2f\ud835\udd30\ud835\udd31\ud835\udd32\ud835\udd33\ud835\udd34\ud835\udd35\ud835\udd36\ud835\udd37', upper: '\ud835\udd04\ud835\udd05\u212d\ud835\udd07\ud835\udd08\ud835\udd09\ud835\udd0a\u210c\u2111\ud835\udd0d\ud835\udd0e\ud835\udd0f\ud835\udd10\ud835\udd11\ud835\udd12\ud835\udd13\ud835\udd14\u211c\ud835\udd16\ud835\udd17\ud835\udd18\ud835\udd19\ud835\udd1a\ud835\udd1b\ud835\udd1c\u2128' }, category: 'cursive' },\r\n                { name: 'Double Lined Script', type: 'map', map: { lower: '\ud835\udd52\ud835\udd53\ud835\udd54\ud835\udd55\ud835\udd56\ud835\udd57\ud835\udd58\ud835\udd59\ud835\udd5a\ud835\udd5b\ud835\udd5c\ud835\udd5d\ud835\udd5e\ud835\udd5f\ud835\udd60\ud835\udd61\ud835\udd62\ud835\udd63\ud835\udd64\ud835\udd65\ud835\udd66\ud835\udd67\ud835\udd68\ud835\udd69\ud835\udd6a\ud835\udd6b', upper: '\ud835\udd38\ud835\udd39\u2102\ud835\udd3b\ud835\udd3c\ud835\udd3d\ud835\udd3e\u210d\ud835\udd40\ud835\udd41\ud835\udd42\ud835\udd43\ud835\udd44\u2115\ud835\udd46\u2119\u211a\u211d\ud835\udd4a\ud835\udd4b\ud835\udd4c\ud835\udd4d\ud835\udd4e\ud835\udd4f\ud835\udd50\u2124' }, category: 'cursive' },\r\n                { name: 'Italic Serif Handwriting', type: 'map', map: { lower: '\ud835\udc4e\ud835\udc4f\ud835\udc50\ud835\udc51\ud835\udc52\ud835\udc53\ud835\udc54\u210e\ud835\udc56\ud835\udc57\ud835\udc58\ud835\udc59\ud835\udc5a\ud835\udc5b\ud835\udc5c\ud835\udc5d\ud835\udc5e\ud835\udc5f\ud835\udc60\ud835\udc61\ud835\udc62\ud835\udc63\ud835\udc64\ud835\udc65\ud835\udc66\ud835\udc67', upper: '\ud835\udc34\ud835\udc35\ud835\udc36\ud835\udc37\ud835\udc38\ud835\udc39\ud835\udc3a\ud835\udc3b\ud835\udc3c\ud835\udc3d\ud835\udc3e\ud835\udc3f\ud835\udc40\ud835\udc41\ud835\udc42\ud835\udc43\ud835\udc44\ud835\udc45\ud835\udc46\ud835\udc47\ud835\udc48\ud835\udc49\ud835\udc4a\ud835\udc4b\ud835\udc4c\ud835\udc4d' }, category: 'cursive' },\r\n                { name: 'Bold Italic Serif', type: 'map', map: { lower: '\ud835\udc82\ud835\udc83\ud835\udc84\ud835\udc85\ud835\udc86\ud835\udc87\ud835\udc88\ud835\udc89\ud835\udc8a\ud835\udc8b\ud835\udc8c\ud835\udc8d\ud835\udc8e\ud835\udc8f\ud835\udc90\ud835\udc91\ud835\udc92\ud835\udc93\ud835\udc94\ud835\udc95\ud835\udc96\ud835\udc97\ud835\udc98\ud835\udc99\ud835\udc9a\ud835\udc9b', upper: '\ud835\udc68\ud835\udc69\ud835\udc6a\ud835\udc6b\ud835\udc6c\ud835\udc6d\ud835\udc6e\ud835\udc6f\ud835\udc70\ud835\udc71\ud835\udc72\ud835\udc73\ud835\udc74\ud835\udc75\ud835\udc76\ud835\udc77\ud835\udc78\ud835\udc79\ud835\udc7a\ud835\udc7b\ud835\udc7c\ud835\udc7d\ud835\udc7e\ud835\udc7f\ud835\udc80\ud835\udc81' }, category: 'cursive' },\r\n\r\n                \/\/ Cute Styles\r\n                { name: 'Round Notes', type: 'map', map: styleMaps.roundPrint, category: 'cute' },\r\n                { name: 'Sparkle Notes', type: 'function', func: (text) => '\u2728' + text.split('').join(' ') + '\u2728', category: 'cute' },\r\n                { name: 'Heart Notes', type: 'function', func: (text) => text.split('').join('\u2661'), category: 'cute' },\r\n                { name: 'Cute Dotted Print', type: 'combine', baseMap: styleMaps.messyPrint, char: '\\u0308', category: 'cute' },\r\n                { name: 'Bubble Print', type: 'map', map: { lower: '\u24d0\u24d1\u24d2\u24d3\u24d4\u24d5\u24d6\u24d7\u24d8\u24d9\u24da\u24db\u24dc\u24dd\u24de\u24df\u24e0\u24e1\u24e2\u24e3\u24e4\u24e5\u24e6\u24e7\u24e8\u24e9', upper: '\ud83c\udd50\ud83c\udd51\ud83c\udd52\ud83c\udd53\ud83c\udd54\ud83c\udd55\ud83c\udd56\ud83c\udd57\ud83c\udd58\ud83c\udd59\ud83c\udd5a\ud83c\udd5b\ud83c\udd5c\ud83c\udd5d\ud83c\udd5e\ud83c\udd5f\ud83c\udd60\ud83c\udd61\ud83c\udd62\ud83c\udd63\ud83c\udd64\ud83c\udd65\ud83c\udd66\ud83c\udd67\ud83c\udd68\ud83c\udd69'}, category: 'cute' },\r\n                { name: 'Starry Night', type: 'function', func: (text) => text.split('').join('\u2b51'), category: 'cute' },\r\n                { name: 'Parentheses Notes', type: 'function', func: (text) => text.split('').map(c => c.trim() ? '('+c+')' : ' ').join(''), category: 'cute' },\r\n                { name: 'Dashed Print', type: 'combine', baseMap: styleMaps.roundPrint, char: '\\u0338', category: 'cute' },\r\n                { name: 'Flower Power', type: 'function', func: (text) => text.split('').join('\u2740'), category: 'cute' },\r\n                { name: 'Kawaii Style', type: 'map', map: { lower: '\u0e04\u0e52\u03c2\u0e54\u0454\u0166\ufeee\u0452\u0e40\u05df\u043a\u026d\u0e53\u0e20\u0e4f\u05e7\u1ee3\u0433\u0e23\u0547\u0e22\u05e9\u0e2c\u05d0\u05e5\u0579', upper: '\u0e04\u0e52\u03c2\u0e54\u0454\u0166\ufeee\u0452\u0e40\u05df\u043a\u026d\u0e53\u0e20\u0e4f\u05e7\u1ee3\u0433\u0e23\u0547\u0e22\u05e9\u0e2c\u05d0\u05e5\u0579' }, category: 'cute' },\r\n\r\n                \/\/ Bold Styles\r\n                { name: 'Bold Marker', type: 'map', map: styleMaps.boldMarker, category: 'bold' },\r\n                { name: 'Wide Print', type: 'map', map: { lower: '\ud835\ude56\ud835\ude57\ud835\ude58\ud835\ude59\ud835\ude5a\ud835\ude5b\ud835\ude5c\ud835\ude5d\ud835\ude5e\ud835\ude5f\ud835\ude60\ud835\ude61\ud835\ude62\ud835\ude63\ud835\ude64\ud835\ude65\ud835\ude66\ud835\ude67\ud835\ude68\ud835\ude69\ud835\ude6a\ud835\ude6b\ud835\ude6c\ud835\ude6d\ud835\ude6e\ud835\ude6f', upper: '\ud835\ude3c\ud835\ude3d\ud835\ude3e\ud835\ude3f\ud835\ude40\ud835\ude41\ud835\ude42\ud835\ude43\ud835\ude44\ud835\ude45\ud835\ude46\ud835\ude47\ud835\ude48\ud835\ude49\ud835\ude4a\ud835\ude4b\ud835\ude4c\ud835\ude4d\ud835\ude4e\ud835\ude4f\ud835\ude50\ud835\ude51\ud835\ude52\ud835\ude53\ud835\ude54\ud835\ude55' }, category: 'bold' },\r\n                { name: 'Puffy Print', type: 'map', map: { lower: '\ud83c\udd70\ud83c\udd71\ud83c\udd72\ud83c\udd73\ud83c\udd74\ud83c\udd75\ud83c\udd76\ud83c\udd77\ud83c\udd78\ud83c\udd79\ud83c\udd7a\ud83c\udd7b\ud83c\udd7c\ud83c\udd7d\ud83c\udd7e\ud83c\udd7f\ud83c\udd80\ud83c\udd81\ud83c\udd82\ud83c\udd83\ud83c\udd84\ud83c\udd85\ud83c\udd86\ud83c\udd87\ud83c\udd88\ud83c\udd89', upper: '\ud83c\udd70\ud83c\udd71\ud83c\udd72\ud83c\udd73\ud83c\udd74\ud83c\udd75\ud83c\udd76\ud83c\udd77\ud83c\udd78\ud83c\udd79\ud83c\udd7a\ud83c\udd7b\ud83c\udd7c\ud83c\udd7d\ud83c\udd7e\ud83c\udd7f\ud83c\udd80\ud83c\udd81\ud83c\udd82\ud83c\udd83\ud83c\udd84\ud83c\udd85\ud83c\udd86\ud83c\udd87\ud83c\udd88\ud83c\udd89' }, category: 'bold' },\r\n                { name: 'Bold Italic Script', type: 'map', map: { lower: '\ud835\udc82\ud835\udc83\ud835\udc84\ud835\udc85\ud835\udc86\ud835\udc87\ud835\udc88\ud835\udc89\ud835\udc8a\ud835\udc8b\ud835\udc8c\ud835\udc8d\ud835\udc8e\ud835\udc8f\ud835\udc90\ud835\udc91\ud835\udc92\ud835\udc93\ud835\udc94\ud835\udc95\ud835\udc96\ud835\udc97\ud835\udc98\ud835\udc99\ud835\udc9a\ud835\udc9b', upper: '\ud835\udc68\ud835\udc69\ud835\udc6a\ud835\udc6b\ud835\udc6c\ud835\udc6d\ud835\udc6e\ud835\udc6f\ud835\udc70\ud835\udc71\ud835\udc72\ud835\udc73\ud835\udc74\ud835\udc75\ud835\udc76\ud835\udc77\ud835\udc78\ud835\udc79\ud835\udc7a\ud835\udc7b\ud835\udc7c\ud835\udc7d\ud835\udc7e\ud835\udc7f\ud835\udc80\ud835\udc81' }, category: 'bold' },\r\n                { name: 'Bold Serif Print', type: 'map', map: { lower: '\ud835\udc1a\ud835\udc1b\ud835\udc1c\ud835\udc1d\ud835\udc1e\ud835\udc1f\ud835\udc20\ud835\udc21\ud835\udc22\ud835\udc23\ud835\udc24\ud835\udc25\ud835\udc26\ud835\udc27\ud835\udc28\ud835\udc29\ud835\udc2a\ud835\udc2b\ud835\udc2c\ud835\udc2d\ud835\udc2e\ud835\udc2f\ud835\udc30\ud835\udc31\ud835\udc32\ud835\udc33', upper: '\ud835\udc00\ud835\udc01\ud835\udc02\ud835\udc03\ud835\udc04\ud835\udc05\ud835\udc06\ud835\udc07\ud835\udc08\ud801\udc09\ud835\udc0a\ud835\udc0b\ud835\udc0c\ud835\udc0d\ud835\udc0e\ud835\udc0f\ud835\udc10\ud835\udc11\ud835\udc12\ud835\udc13\ud835\udc14\ud835\udc15\ud835\udc16\ud835\udc17\ud835\udc18\ud835\udc19' }, category: 'bold' },\r\n                { name: 'Heavy Medieval', type: 'map', map: { lower: '\ud835\udd9b\ud835\udd94\ud835\udd91\ud835\udd89 \ud835\udd98\ud835\udd88\ud835\udd97\ud835\udd8e\ud835\udd95\ud835\udd99', upper: '\ud835\udd6c\ud835\udd6d\ud835\udd6e\ud835\udd6f\ud835\udd70\ud835\udd71\ud835\udd72\ud835\udd73\ud835\udd74\ud835\udd75\ud835\udd76\ud835\udd77\ud835\udd78\ud835\udd79\ud835\udd7a\ud835\udd7b\ud835\udd7c\ud835\udd7d\ud835\udd7e\ud835\udd7f\ud835\udd80\ud835\udd81\ud835\udd82\ud835\udd83\ud835\udd84\ud835\udd85' }, category: 'bold' },\r\n                { name: 'Thick Block Notes', type: 'map', map: { lower: '\ud83c\udd30\ud83c\udd31\ud83c\udd32\ud83c\udd33\ud83c\udd34\ud83c\udd35\ud83c\udd36\ud83c\udd37\ud83c\udd38\ud83c\udd39\ud83c\udd3a\ud83c\udd3b\ud83c\udd3c\ud83c\udd3d\ud83c\udd3e\ud83c\udd3f\ud83c\udd40\ud83c\udd41\ud83c\udd42\ud83c\udd43\ud83c\udd44\ud83c\udd45\ud83c\udd46\ud83c\udd47\ud83c\udd48\ud83c\udd49', upper: '\ud83c\udd30\ud83c\udd31\ud83c\udd32\ud83c\udd33\ud83c\udd34\ud83c\udd35\ud83c\udd36\ud83c\udd37\ud83c\udd38\ud83c\udd39\ud83c\udd3a\ud83c\udd3b\ud83c\udd3c\ud83c\udd3d\ud83c\udd3e\ud83c\udd3f\ud83c\udd40\ud83c\udd41\ud83c\udd42\ud83c\udd43\ud83c\udd44\ud83c\udd45\ud83c\udd46\ud83c\udd47\ud83c\udd48\ud83c\udd49' }, category: 'bold' },\r\n                \r\n                \/\/ Simple Styles\r\n                { name: 'Neat Print', type: 'map', map: styleMaps.neatPrint, category: 'simple' },\r\n                { name: 'Thin Pen', type: 'map', map: styleMaps.thinPen, category: 'simple' },\r\n                { name: 'Messy Print', type: 'map', map: styleMaps.messyPrint, category: 'simple' },\r\n                { name: 'Dotted Neat Print', type: 'combine', baseMap: styleMaps.neatPrint, char: '\\u0307', category: 'simple' },\r\n                { name: 'Lightly Underlined', type: 'combine', baseMap: styleMaps.thinPen, char: '\\u0332', category: 'simple' },\r\n                { name: 'Monospace Handwriting', type: 'map', map: { lower: '\ud835\ude96\ud835\ude98\ud835\ude97\ud835\ude98\ud835\ude9c\ud835\ude99\ud835\ude8a\ud835\ude8c\ud835\ude8e', upper: '\ud835\ude70\ud835\ude71\ud835\ude72\ud835\ude73\ud835\ude74\ud835\ude75\ud835\ude76\ud835\ude77\ud835\ude78\ud835\ude79\ud835\ude7a\ud835\ude7b\ud835\ude7c\ud835\ude7d\ud835\ude7e\ud835\ude7f\ud835\ude80\ud835\ude81\ud835\ude82\ud835\ude83\ud835\ude84\ud835\ude85\ud835\ude86\ud835\ude87\ud835\ude88\ud835\ude89' }, category: 'simple' },\r\n                { name: 'Small Caps Print', type: 'map', map: { lower: '\u1d00\u0299\u1d04\u1d05\u1d07\ua730\u0262\u029c\u026a\u1d0a\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\u01eb\u0280\ua731\u1d1b\u1d1c\u1d20\u1d21x\u028f\u1d22', upper: '\u1d00\u0299\u1d04\u1d05\u1d07\ua730\u0262\u029c\u026a\u1d0a\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\u01eb\u0280\ua731\u1d1b\u1d1c\u1d20\u1d21x\u028f\u1d22' }, category: 'simple' },\r\n                { name: 'Sans-Serif Italic', type: 'map', map: { lower: '\ud835\ude22\ud835\ude23\ud835\ude24\ud835\ude25\ud835\ude26\ud835\ude27\ud835\ude28\ud835\ude29\ud835\ude2a\ud835\ude2b\ud835\ude2c\ud835\ude2d\ud835\ude2e\ud835\ude2f\ud835\ude30\ud835\ude31\ud835\ude32\ud835\ude33\ud835\ude34\ud835\ude35\ud835\ude36\ud835\ude37\ud835\ude38\ud835\ude39\ud835\ude3a\ud835\ude3b', upper: '\ud835\ude08\ud835\ude09\ud835\ude0a\ud835\ude0b\ud835\ude0c\ud835\ude0d\ud835\ude0e\ud835\ude0f\ud835\ude10\ud835\ude11\ud835\ude12\ud835\ude13\ud835\ude14\ud835\ude15\ud835\ude16\ud835\ude17\ud835\ude18\ud835\ude19\ud835\ude1a\ud835\ude1b\ud835\ude1c\ud835\ude1d\ud835\ude1e\ud835\ude1f\ud835\ude20\ud835\ude21' }, category: 'simple' },\r\n                \r\n                \/\/ Decorative Styles\r\n                { name: 'Flipped Handwriting', type: 'map', map: { lower: '\u0250q\u0254p\u01dd\u025f\u0183\u0265\u0131\u027e\u029e\u05df\u026fuodb\u0279s\u0287n\u028c\u028dx\u028ez', upper: '\u2200\ud801\udc12\u2183\u15e1\u018e\u2132\u2141HI\u017f\ua4d8\u2142WNO\u0500\u10e2\u1d1aS\u22a5\u2229\u039bMX\u2144Z' }, category: 'decorative' },\r\n                { name: 'Wiggly Underline', type: 'combine', baseMap: {}, char: '\\u0334', category: 'decorative' },\r\n                { name: 'Double Strikethrough', type: 'combine', baseMap: {}, char: '\\u0336', category: 'decorative' },\r\n                { name: 'Arrow Accents', type: 'function', func: (text) => text.split('').join('\u2192'), category: 'decorative' },\r\n                { name: 'Vaporwave Print', type: 'map', map: { lower: '\uff41\uff42\uff43\uff44\uff45\uff46\uff47\uff48\uff49\uff4a\uff4b\uff4c\uff4d\uff4e\uff4f\uff50\uff51\uff52\uff53\uff54\uff55\uff56\uff57\uff58\uff59\uff5a', upper: '\uff21\uff22\uff23\uff24\uff25\uff26\uff27\uff28\uff29\uff2a\uff2b\uff2c\uff2d\uff2e\uff2f\uff30\uff31\uff32\uff33\uff34\uff35\uff36\uff37\uff38\uff39\uff3a' }, category: 'decorative' },\r\n                { name: 'Super Script Notes', type: 'map', map: { lower: '\u1d43\u1d47\u1d9c\u1d48\u1d49\u1da0\u1d4d\u02b0\u2071\u02b2\u1d4f\u02e1\u1d50\u207f\u1d52\u1d56\u06f9\u02b3\u02e2\u1d57\u1d58\u1d5b\u02b7\u02e3\u02b8\u1dbb', upper: '\u1d2c\u1d2e\u1d9c\u1d30\u1d31\u1da0\u1d33\u1d34\u1d35\u1d36\u1d37\u1d38\u1d39\u1d3a\u1d3c\u1d3eQ\u1d3f\u02e2\u1d40\u1d41\u2c7d\u1d42\u02e3\u02b8\u1dbb' }, category: 'decorative' },\r\n                { name: 'Asian Style Print', type: 'map', map: { lower: '\uff91\u4e43cd\u4e47\uff77g\u3093\uff89\uff8c\u30ba\uff89\uffb6\u5200o\uff71q\u5c3a\u4e02\uff72u\u221aw\uff92\uff98\u4e59', upper: '\uff91\u4e43cd\u4e47\uff77g\u3093\uff89\uff8c\u30ba\uff89\uffb6\u5200o\uff71q\u5c3a\u4e02\uff72u\u221aw\uff92\uff98\u4e59' }, category: 'decorative' },\r\n                { name: 'Handwriting Alt 1', type: 'map', map: { lower: '\u13d7\u13f0\u1348\u13b4\u13cb\u13a6\u13b6\u13c2\u13a5\u13e0\u13e6\u13dd\u13b7\u13c1\u13a7\u13ae\u13a4\u13d2\u13d5\u13d6\u13ec\u13c9\u13c7\u1300\u13a9\u135a', upper: '\u13d7\u13f0\u1348\u13b4\u13cb\u13a6\u13b6\u13c2\u13a5\u13e0\u13e6\u13dd\u13b7\u13c1\u13a7\u13ae\u13a4\u13d2\u13d5\u13d6\u13ec\u13c9\u13c7\u1300\u13a9\u135a' }, category: 'decorative' },\r\n            ];\r\n\r\n\r\n            function generateStyles() {\r\n                const inputText = keywordInput.value.trim();\r\n                const textToTransform = inputText || \"Handwriting Font Generator\";\r\n                \r\n                resultsGrid.innerHTML = '';\r\n                \r\n                const stylesToRender = activeCategory === 'all'\r\n                    ? allStyles\r\n                    : allStyles.filter(style => style.category === activeCategory);\r\n\r\n                stylesToRender.forEach(style => {\r\n                    let resultText = '';\r\n                    switch (style.type) {\r\n                        case 'map':\r\n                            resultText = transformText(textToTransform, style.map);\r\n                            break;\r\n                        case 'combine':\r\n                            resultText = transformWithCombiningChar(textToTransform, style.baseMap, style.char);\r\n                            break;\r\n                        case 'function':\r\n                            resultText = style.func(textToTransform);\r\n                            break;\r\n                        default:\r\n                            resultText = textToTransform;\r\n                    }\r\n\r\n                    const card = document.createElement('div');\r\n                    card.className = 'hfg-result-card';\r\n                    card.innerHTML = `\r\n                        <span class=\"hfg-result-text\" title=\"${style.name}\">${resultText}<\/span>\r\n                        <button class=\"hfg-copy-btn\" aria-label=\"Copy style: ${style.name}\">\r\n                            <i class='bx bx-copy'><\/i> Copy\r\n                        <\/button>\r\n                    `;\r\n                    resultsGrid.appendChild(card);\r\n                });\r\n            }\r\n\r\n            function handleCopyClick(e) {\r\n                const copyBtn = e.target.closest('.hfg-copy-btn');\r\n                if (!copyBtn) return;\r\n                const resultText = copyBtn.previousElementSibling.textContent;\r\n                navigator.clipboard.writeText(resultText).then(() => {\r\n                    const originalHTML = copyBtn.innerHTML;\r\n                    copyBtn.innerHTML = `<i class='bx bx-check'><\/i> Copied!`;\r\n                    copyBtn.classList.add('copied');\r\n                    setTimeout(() => {\r\n                        copyBtn.innerHTML = originalHTML;\r\n                        copyBtn.classList.remove('copied');\r\n                    }, 1500);\r\n                }).catch(err => console.error('Failed to copy text: ', err));\r\n            }\r\n\r\n            function handleFilterClick(e) {\r\n                const clickedButton = e.target.closest('.hfg-feature-btn');\r\n                if (!clickedButton) return;\r\n\r\n                activeCategory = clickedButton.dataset.category;\r\n\r\n                featuresBar.querySelectorAll('.hfg-feature-btn').forEach(btn => {\r\n                    btn.classList.remove('active');\r\n                    btn.setAttribute('aria-pressed', 'false');\r\n                });\r\n                clickedButton.classList.add('active');\r\n                clickedButton.setAttribute('aria-pressed', 'true');\r\n\r\n                generateStyles();\r\n            }\r\n\r\n            \/\/ Event Listeners\r\n            generateBtn.addEventListener('click', generateStyles);\r\n            featuresBar.addEventListener('click', handleFilterClick);\r\n            keywordInput.addEventListener('keydown', (e) => { if (e.key === 'Enter') { e.preventDefault(); generateStyles(); }});\r\n            resultsGrid.addEventListener('click', handleCopyClick);\r\n\r\n            \/\/ Initial generation on page load\r\n            generateStyles();\r\n        });\r\n    <\/script>\r\n\r\n<\/div>\r\n\r\n<!-- Content Section Start From Here  -->\r\n\r\n<!-- Font Awesome 6.5.1 CDN -->\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\r\n\r\n<div id=\"hfg-supportive-content\">\r\n    <style>\r\n        \/* --- GLOBAL SCOPED STYLES --- *\/\r\n        #hfg-supportive-content {\r\n            --hfg-ink: #3D405B;\r\n            --hfg-blue: #AEC6CF;\r\n            --hfg-pink: #F4C2C2;\r\n            --hfg-bg-white: #ffffff;\r\n            --hfg-bg-soft: #f0f7ff;\r\n            --hfg-text-muted: #6b7280;\r\n            --hfg-grad: linear-gradient(135deg, #3D405B 0%, #AEC6CF 100%);\r\n            \r\n            font-family: 'Inter', sans-serif;\r\n            color: var(--hfg-ink);\r\n            line-height: 1.6;\r\n        }\r\n\r\n        .hfg-section {\r\n            width: 100%;\r\n            padding: 100px 20px;\r\n            box-sizing: border-box;\r\n            display: block;\r\n        }\r\n\r\n        .hfg-inner {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n            width: 100%;\r\n        }\r\n\r\n        \/* --- HEADINGS --- *\/\r\n        .hfg-heading-box {\r\n            text-align: center;\r\n            margin-bottom: 70px;\r\n        }\r\n\r\n        .hfg-wh-title {\r\n            font-family: 'Playfair Display', serif;\r\n            font-size: clamp(2.2rem, 5vw, 3rem);\r\n            font-weight: 700;\r\n            background: var(--hfg-grad);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            margin-bottom: 20px;\r\n            display: inline-block;\r\n        }\r\n\r\n        .hfg-wh-sub {\r\n            font-size: 1.15rem;\r\n            color: var(--hfg-text-muted);\r\n            max-width: 800px;\r\n            margin: 0 auto;\r\n        }\r\n\r\n        \/* --- GRID SYSTEM --- *\/\r\n        .hfg-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(4, 1fr);\r\n            gap: 25px;\r\n        }\r\n\r\n        .hfg-card {\r\n            border-radius: 10px;\r\n            padding: 40px 25px;\r\n            transition: all 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);\r\n            position: relative;\r\n            display: flex;\r\n            flex-direction: column;\r\n            align-items: center;\r\n            text-align: center;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        .hfg-card i {\r\n            font-size: 2.8rem;\r\n            margin-bottom: 20px;\r\n            color: var(--hfg-ink);\r\n            transition: all 0.3s ease;\r\n        }\r\n\r\n        .hfg-card h3 {\r\n            font-family: 'Playfair Display', serif;\r\n            font-size: 1.3rem;\r\n            font-weight: 700;\r\n            margin-bottom: 12px;\r\n            color: var(--hfg-ink);\r\n        }\r\n\r\n        .hfg-card p {\r\n            font-size: 0.95rem;\r\n            color: var(--hfg-text-muted);\r\n            margin: 0;\r\n        }\r\n\r\n        \/* --- SECTION 1: WHAT (Animated Border Trace) --- *\/\r\n        .hfg-sec-1 { background-color: var(--hfg-bg-white); }\r\n        .hfg-sec-1 .hfg-card { background-color: var(--hfg-bg-soft); overflow: hidden; }\r\n\r\n        .hfg-card-trace::before, .hfg-card-trace::after {\r\n            content: '';\r\n            position: absolute;\r\n            background: var(--hfg-ink);\r\n            transition: all 0.5s ease;\r\n        }\r\n        .hfg-card-trace::before { width: 0; height: 3px; top: 0; left: 0; }\r\n        .hfg-card-trace::after { width: 3px; height: 0; top: 0; right: 0; }\r\n\r\n        .hfg-card-trace:hover::before { width: 100%; }\r\n        .hfg-card-trace:hover::after { height: 100%; }\r\n        .hfg-card-trace:hover i { color: var(--hfg-blue); transform: translateY(-5px); }\r\n\r\n        \/* --- SECTION 2: WHY (Magnetic Hover Tilt) --- *\/\r\n        .hfg-sec-2 { background-color: var(--hfg-bg-soft); }\r\n        .hfg-sec-2 .hfg-card { background-color: var(--hfg-bg-white); }\r\n\r\n        .hfg-card-magnetic:hover {\r\n            transform: perspective(1000px) rotateX(8deg) rotateY(8deg) translateY(-10px);\r\n            box-shadow: 0 20px 40px rgba(0,0,0,0.06);\r\n        }\r\n        .hfg-card-magnetic:hover i {\r\n            transform: translateZ(30px);\r\n            color: var(--hfg-pink);\r\n        }\r\n\r\n        \/* --- SECTION 3: HOW (Content Slide-up Fade) --- *\/\r\n        .hfg-sec-3 { background-color: var(--hfg-bg-white); }\r\n        .hfg-sec-3 .hfg-card { background-color: var(--hfg-bg-soft); }\r\n\r\n        .hfg-card-slide p { \r\n            transform: translateY(15px); \r\n            opacity: 0; \r\n            transition: all 0.4s ease;\r\n        }\r\n\r\n        .hfg-card-slide:hover p { \r\n            transform: translateY(0); \r\n            opacity: 1; \r\n        }\r\n        .hfg-card-slide:hover h3 { \r\n            transform: translateY(-5px); \r\n        }\r\n        .hfg-card-slide:hover i {\r\n            transform: rotate(15deg) scale(1.1);\r\n        }\r\n\r\n        \/* --- RESPONSIVE --- *\/\r\n        @media (max-width: 1024px) {\r\n            .hfg-grid { grid-template-columns: repeat(2, 1fr); }\r\n        }\r\n        @media (max-width: 650px) {\r\n            .hfg-grid { grid-template-columns: 1fr; }\r\n            .hfg-section { padding: 60px 20px; }\r\n            .hfg-wh-title { font-size: 1.8rem; }\r\n        }\r\n    <\/style>\r\n\r\n    <!-- SECTION 1: WHAT -->\r\n<section class=\"hfg-section hfg-sec-1\">\r\n        <div class=\"hfg-inner\">\r\n        \r\n        <\/div>\r\n\t<\/section>\r\n    <section class=\"hfg-section hfg-sec-1\">\r\n        <div class=\"hfg-inner\">\r\n            <div class=\"hfg-heading-box\">\r\n                <h2 class=\"hfg-wh-title\">What is the Handwriting Font Generator?<\/h2>\r\n                <p class=\"hfg-wh-sub\">Discover the technology that mimics the natural flow of human penmanship through sophisticated digital character mapping.<\/p>\r\n            <\/div>\r\n            <div class=\"hfg-grid\">\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-pen-nib\"><\/i>\r\n                    <h3>Ink Simulation<\/h3>\r\n                    <p>Advanced Unicode mapping that replicates the aesthetics of fountain pens and markers.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-signature\"><\/i>\r\n                    <h3>Script Variety<\/h3>\r\n                    <p>Access over 50+ styles ranging from elegant wedding cursives to casual messy scribbles.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-wand-magic-sparkles\"><\/i>\r\n                    <h3>Real-time Mapping<\/h3>\r\n                    <p>Watch your standard text transform into handwritten art as fast as you can type.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-copy\"><\/i>\r\n                    <h3>Copy-Paste Ready<\/h3>\r\n                    <p>Generates universal text strings that work on Instagram, TikTok, and personal notes apps.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-scroll\"><\/i>\r\n                    <h3>Historical Styles<\/h3>\r\n                    <p>Includes Medieval and Calligraphic styles for projects requiring a touch of history.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-shield-heart\"><\/i>\r\n                    <h3>Safe & Local<\/h3>\r\n                    <p>All processing happens in your browser. Your private notes never touch a server.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-laptop-code\"><\/i>\r\n                    <h3>Developer Crafted<\/h3>\r\n                    <p>Designed with zero-lag architecture for the smoothest user experience on the web.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-trace\">\r\n                    <i class=\"fa-solid fa-face-smile-wink\"><\/i>\r\n                    <h3>Cute Aesthetics<\/h3>\r\n                    <p>Special filters for \"bubbly\" and \"kawaii\" notes popular in the studygram community.<\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- SECTION 2: WHY -->\r\n    <section class=\"hfg-section hfg-sec-2\">\r\n        <div class=\"hfg-inner\">\r\n            <div class=\"hfg-heading-box\">\r\n                <h2 class=\"hfg-wh-title\">Why Use Natural Script Styles?<\/h2>\r\n                <p class=\"hfg-wh-sub\">In a world of rigid digital fonts, handwritten styles provide a warm, personal touch that connects better with your audience.<\/p>\r\n            <\/div>\r\n            <div class=\"hfg-grid\">\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-arrow-up-right-dots\"><\/i>\r\n                    <h3>Boost Engagement<\/h3>\r\n                    <p>Handwritten captions stand out in social feeds, often leading to higher comment and like rates.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-id-card\"><\/i>\r\n                    <h3>Personal Branding<\/h3>\r\n                    <p>Create a unique visual identity for your brand that feels authentic rather than corporate.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-book-open\"><\/i>\r\n                    <h3>Digital Journaling<\/h3>\r\n                    <p>Enhance your Notion or GoodNotes pages with beautiful headers that feel like real paper notes.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-envelope-open-text\"><\/i>\r\n                    <h3>Custom Invitations<\/h3>\r\n                    <p>Design digital wedding or party invites with script that looks like it was written by hand.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-quote-left\"><\/i>\r\n                    <h3>Quote Graphics<\/h3>\r\n                    <p>Transform inspiration into art by styling meaningful quotes in elegant, flowing cursive.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-hashtag\"><\/i>\r\n                    <h3>Unique Bios<\/h3>\r\n                    <p>Make your Instagram or Twitter bio a masterpiece with decorative and simple handwriting styles.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-masks-theater\"><\/i>\r\n                    <h3>Emotional Tone<\/h3>\r\n                    <p>Convey soft, aggressive, or playful emotions through the visual shape of your text.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-magnetic\">\r\n                    <i class=\"fa-solid fa-briefcase\"><\/i>\r\n                    <h3>Creative Portfolios<\/h3>\r\n                    <p>Show off your creative side by using script fonts for your portfolio headers and descriptions.<\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <!-- SECTION 3: HOW -->\r\n    <section class=\"hfg-section hfg-sec-3\">\r\n        <div class=\"hfg-inner\">\r\n            <div class=\"hfg-heading-box\">\r\n                <h2 class=\"hfg-wh-title\">How to Use the Font Generator?<\/h2>\r\n                <p class=\"hfg-wh-sub\">Transfiguring your text into art is as simple as picking up a pen. Follow these three quick steps to get started.<\/p>\r\n            <\/div>\r\n            <div class=\"hfg-grid\">\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-keyboard\"><\/i>\r\n                    <h3>1. Enter Text<\/h3>\r\n                    <p>Type your message into the large input box at the top of the generator tool.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-filter\"><\/i>\r\n                    <h3>2. Filter Style<\/h3>\r\n                    <p>Select a category like Cursive, Cute, or Bold to narrow down your perfect aesthetic.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-eye\"><\/i>\r\n                    <h3>3. Live Preview<\/h3>\r\n                    <p>Scroll through the grid of cards to see your text transformed into 50+ handwriting styles.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-hand-pointer\"><\/i>\r\n                    <h3>4. One-Tap Copy<\/h3>\r\n                    <p>Click the \"Copy\" button on your favorite style. It's instantly saved to your clipboard.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-share-from-square\"><\/i>\r\n                    <h3>5. Paste Anywhere<\/h3>\r\n                    <p>Go to your social media or notes app and paste. The handwriting style will remain intact.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-rotate\"><\/i>\r\n                    <h3>6. Refresh & Redo<\/h3>\r\n                    <p>Want a change? Simply edit the input text to see all cards refresh with your new message.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-check-double\"><\/i>\r\n                    <h3>7. Style Feedback<\/h3>\r\n                    <p>The button turns green and says \"Copied!\" so you know the magic spell has worked.<\/p>\r\n                <\/div>\r\n                <div class=\"hfg-card hfg-card-slide\">\r\n                    <i class=\"fa-solid fa-infinity\"><\/i>\r\n                    <h3>8. Infinite Creation<\/h3>\r\n                    <p>Use the generator as many times as you want\u2014it's free and always ready for your next project.<\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n<\/div>\r\n\r\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":5,"featured_media":0,"parent":7231,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-7139","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/pages\/7139","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/comments?post=7139"}],"version-history":[{"count":6,"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/pages\/7139\/revisions"}],"predecessor-version":[{"id":7237,"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/pages\/7139\/revisions\/7237"}],"up":[{"embeddable":true,"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/pages\/7231"}],"wp:attachment":[{"href":"https:\/\/raistheme.com\/wp-json\/wp\/v2\/media?parent=7139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}