{"id":5564,"date":"2026-05-19T00:00:56","date_gmt":"2026-05-19T00:00:56","guid":{"rendered":"https:\/\/fontono.com\/?page_id=5564"},"modified":"2026-06-04T09:35:35","modified_gmt":"2026-06-04T09:35:35","slug":"wavy","status":"publish","type":"page","link":"https:\/\/fontono.com\/wavy\/","title":{"rendered":"Wavy Font Generator \u2013 Create Wavy Text Online"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5564\" class=\"elementor elementor-5564\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ee8a9b0 e-con-full e-flex e-con e-parent\" data-id=\"6ee8a9b0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-60a31ca elementor-widget elementor-widget-shortcode\" data-id=\"60a31ca\" 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=\"wavy-font-generator\">\r\n    <!-- CSS Styles -->\r\n    <style>\r\n        \/* Import Google Fonts and Icons *\/\r\n        @import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');\r\n        @import url('https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css');\r\n        \r\n        \/* Reset and Base Styles *\/\r\n        * {\r\n            box-sizing: border-box;\r\n            margin: 0;\r\n            padding: 0;\r\n        }\r\n\r\n        :root {\r\n            \/* TYPOGRAPHY *\/\r\n            --font-size-h1: clamp(1.6rem, 4vw, 3.2rem);\r\n            --font-size-h2: clamp(1.3rem, 3vw, 2.2rem);\r\n            --font-size-body: clamp(0.9rem, 1vw, 1.2rem);\r\n            --font-size-small: clamp(0.75rem, 1vw, 0.95rem);\r\n\r\n            \/* SPACING SYSTEM (COMPACT) *\/\r\n            --spacing-xs: 2px;\r\n            --spacing-s: 4px;\r\n            --spacing-m: 8px;\r\n            --spacing-l: 12px;\r\n            --spacing-xl: 16px;\r\n            --padding-clamp: clamp(0.25rem, 1.5vw, 0.75rem);\r\n            --gap-clamp: clamp(0.25rem, 1.5vw, 0.75rem);\r\n            --margin-block-clamp: clamp(0.25rem, 1.5vw, 0.75rem);\r\n        }\r\n        \r\n        \/* Container Styles *\/\r\n        #wavy-font-generator {\r\n            width: 100%;\r\n            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 25%, #0f3460 50%, #533483 75%, #c06c84 100%);\r\n            background-attachment: fixed;\r\n            font-family: 'Poppins', sans-serif;\r\n            color: #333;\r\n            font-size: var(--font-size-body);\r\n            line-height: 1.5;\r\n            position: relative;\r\n            overflow-x: hidden;\r\n        }\r\n        \r\n        #wavy-font-generator::before {\r\n            content: '';\r\n            position: fixed;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            bottom: 0;\r\n            background: linear-gradient(45deg, rgba(26, 26, 46, 0.8) 0%, rgba(22, 33, 62, 0.8) 100%);\r\n            z-index: -1;\r\n        }\r\n        \r\n        .container {\r\n            max-width: 1200px;\r\n            margin: 0 auto;\r\n            padding: 0 var(--spacing-xl);\r\n\t\t\t\t\t  padding-top: 0 !important;\r\n\t\t\t\t\t  width: 100%;\r\n        }\r\n        \r\n        h1, h2, h3, h4 {\r\n             line-height: 1.3;\r\n        }\r\n        \r\n        h1 { font-size: var(--font-size-h1); }\r\n        h2 { font-size: var(--font-size-h2); }\r\n        \r\n        \/* Animated Background Elements *\/\r\n        .bg-shape {\r\n            position: fixed;\r\n            border-radius: 50%;\r\n            filter: blur(80px);\r\n            opacity: 0.4;\r\n            z-index: -1;\r\n        }\r\n        \r\n        .shape1 {\r\n            width: 400px;\r\n            height: 400px;\r\n            background: linear-gradient(135deg, #533483, #c06c84);\r\n            top: -100px;\r\n            right: -100px;\r\n        }\r\n        \r\n        .shape2 {\r\n            width: 300px;\r\n            height: 300px;\r\n            background: linear-gradient(135deg, #0f3460, #16213e);\r\n            bottom: -50px;\r\n            left: -50px;\r\n        }\r\n        \r\n        .shape3 {\r\n            width: 250px;\r\n            height: 250px;\r\n            background: linear-gradient(135deg, #1a1a2e, #533483);\r\n            top: 50%;\r\n            left: 50%;\r\n        }\r\n        \r\n        \/* Header Styles *\/\r\n        .header {\r\n            text-align: center;\r\n            padding:  5px ;\r\n            position: relative;\r\n        }\r\n        \r\n        .header h1 {\r\n            font-weight: 800;\r\n            margin: var(--margin-block-clamp) 0;\r\n            background: linear-gradient(135deg, #fff, #f0f0f0);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            text-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);\r\n            letter-spacing: -1px;\r\n            position: relative;\r\n            display: inline-block;\r\n\t\t\t\t\t  text-align: center !important;\r\n\t\t\t\t\t  width:100%;\r\n        }\r\n        \r\n        .header h1::after {\r\n            content: '';\r\n            position: absolute;\r\n            bottom: -10px;\r\n            left: 50%;\r\n            transform: translateX(-50%);\r\n            width: 100px;\r\n            height: 4px;\r\n            background: linear-gradient(90deg, #fff, transparent);\r\n            border-radius: 2px;\r\n        }\r\n        \r\n        .header p {\r\n            color: rgba(255, 255, 255, 0.9);\r\n            max-width: 700px;\r\n            margin: var(--margin-block-clamp) auto 0;\r\n            text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);\r\n\t\t\t\t\t  text-align: center;\r\n        }\r\n        \r\n        .header-icon {\r\n            font-size: clamp(1rem, 5vw, 1rem);\r\n            color: rgba(255, 255, 255, 0.8);\r\n            margin-bottom: var(--margin-block-clamp);\r\n\t\t\t\t\t  text-align:center\r\n        }\r\n        \r\n        \/* Generator Tool Styles *\/\r\n        .generator-tool {\r\n            background: rgba(255, 255, 255, 0.95);\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 20px;\r\n            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 0 0 1px rgba(255, 255, 255, 0.2);\r\n            padding: clamp(1rem, 3vw, 2.5rem);\r\n            margin-bottom: clamp(1.5rem, 4vw, 2.5rem);\r\n            position: relative;\r\n            overflow: hidden;\r\n        }\r\n        \r\n        .generator-tool::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            height: 5px;\r\n            background: linear-gradient(90deg, #667eea, #764ba2, #f093fb, #f5576c);\r\n            background-size: 300% 100%;\r\n        }\r\n        \r\n        .tool-header {\r\n            text-align: center;\r\n            margin-bottom: clamp(1rem, 3vw, 1.5rem);\r\n            background: linear-gradient(135deg, rgba(102, 126, 234, 0.05), rgba(118, 75, 162, 0.05));\r\n            padding: var(--padding-clamp);\r\n            border-radius: 15px;\r\n        }\r\n        \r\n        .tool-header h2 {\r\n            margin-bottom: var(--spacing-m);\r\n            background: linear-gradient(135deg, #667eea, #764ba2);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .tool-header p {\r\n            color: #666;\r\n            font-size: var(--font-size-small);\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--gap-clamp);\r\n            line-height: 1.4;\r\n        }\r\n        \r\n        .input-section {\r\n            margin-bottom: var(--margin-block-clamp);\r\n            background: linear-gradient(135deg, rgba(220, 225, 255, 0.2), rgba(240, 220, 255, 0.2));\r\n            padding: clamp(0.75rem, 2vw, 1.5rem);\r\n            border-radius: 15px;\r\n        }\r\n        \r\n        .form-group {\r\n            margin-bottom: var(--margin-block-clamp);\r\n            position: relative;\r\n        }\r\n        \r\n        .form-group label {\r\n            display: block;\r\n            margin-bottom: var(--spacing-m);\r\n            font-weight: 600;\r\n            color: #444;\r\n            font-size: var(--font-size-small);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .form-group label i {\r\n            color: #667eea;\r\n        }\r\n        \r\n        .form-control {\r\n            width: 100%;\r\n            padding: var(--spacing-l) var(--spacing-xl);\r\n            border: 2px solid #e1e8ed;\r\n            border-radius: 12px;\r\n            font-size: var(--font-size-body);\r\n            transition: all 0.3s ease;\r\n            background: rgba(255, 255, 255, 0.8);\r\n            backdrop-filter: blur(10px);\r\n\t\t\t\t\t  text-align: center;\r\n        }\r\n        \r\n        .form-control:focus {\r\n            outline: none;\r\n            border-color: #667eea;\r\n            box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);\r\n            background: white;\r\n            transform: translateY(-2px);\r\n        }\r\n        \r\n        .preset-buttons-container {\r\n            display: flex;\r\n            flex-wrap: wrap;\r\n            gap: var(--gap-clamp);\r\n            justify-content: center;\r\n            margin-bottom: var(--margin-block-clamp);\r\n        }\r\n        \r\n        .preset-btn {\r\n            background: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);\r\n            color: #555;\r\n            border: 1px solid rgba(0,0,0,0.1);\r\n            padding: var(--spacing-m) var(--spacing-l);\r\n            font-size: var(--font-size-small);\r\n            font-weight: 600;\r\n            border-radius: 50px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--spacing-s);\r\n        }\r\n        \r\n        .preset-btn:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 8px 20px rgba(102, 126, 234, 0.2);\r\n            border-color: #667eea;\r\n        }\r\n        \r\n        .preset-btn.active-preset {\r\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\r\n            color: white;\r\n            box-shadow: 0 10px 25px rgba(102, 126, 234, 0.3);\r\n            transform: translateY(-2px);\r\n            border-color: transparent;\r\n        }\r\n        \r\n        .btn-generate {\r\n            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\r\n            color: white;\r\n            border: none;\r\n            padding: var(--spacing-l) clamp(1.5rem, 4vw, 3rem);\r\n            font-size: clamp(1rem, 2vw, 1.2rem);\r\n            font-weight: 700;\r\n            border-radius: 50px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            display: block;\r\n            margin: var(--spacing-xl) auto 0;\r\n            position: relative;\r\n            overflow: hidden;\r\n            box-shadow: 0 10px 30px rgba(102, 126, 234, 0.3);\r\n        }\r\n        \r\n        .btn-generate:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 15px 40px rgba(102, 126, 234, 0.4);\r\n        }\r\n        \r\n        .btn-generate i {\r\n            margin-right: var(--spacing-m);\r\n        }\r\n        \r\n        \/* Output Section Styles *\/\r\n        .output-section {\r\n            margin-top: var(--margin-block-clamp);\r\n            padding-top: var(--padding-clamp);\r\n            border-top: 1px solid rgba(0, 0, 0, 0.1);\r\n            background: linear-gradient(135deg, rgba(102, 126, 234, 0.05), rgba(118, 75, 162, 0.05));\r\n            padding: clamp(0.75rem, 2vw, 1.5rem);\r\n            border-radius: 15px;\r\n        }\r\n        \r\n        .output-header {\r\n            display: flex;\r\n            justify-content: space-between;\r\n            align-items: center;\r\n            margin-bottom: var(--margin-block-clamp);\r\n            flex-wrap: wrap;\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .output-header h3 {\r\n            font-size: clamp(1.1rem, 2.5vw, 1.5rem);\r\n            background: linear-gradient(135deg, #667eea, #764ba2);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .results-count {\r\n            background: linear-gradient(135deg, #667eea, #764ba2);\r\n            color: white;\r\n            padding: var(--spacing-s) var(--spacing-l);\r\n            border-radius: 25px;\r\n            font-size: var(--font-size-small);\r\n            font-weight: 600;\r\n            box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .results-grid {\r\n            display: grid;\r\n            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .result-card {\r\n            background: linear-gradient(135deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0.7));\r\n            backdrop-filter: blur(10px);\r\n            border: 1px solid rgba(255, 255, 255, 0.3);\r\n            border-radius: 15px;\r\n            padding: var(--padding-clamp);\r\n            position: relative;\r\n            transition: all 0.3s ease;\r\n            overflow: hidden;\r\n            display: flex;\r\n            flex-direction: column;\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .result-card:hover {\r\n            transform: translateY(-5px);\r\n            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);\r\n        }\r\n        \r\n        .result-text {\r\n            font-family: 'Courier New', monospace;\r\n            word-break: break-all;\r\n            font-size: clamp(1rem, 1.5vw, 1.1rem);\r\n            color: #333;\r\n            min-height: 60px;\r\n            display: flex;\r\n            align-items: center;\r\n            padding: var(--padding-clamp);\r\n            background: rgba(102, 126, 234, 0.05);\r\n            border-radius: 8px;\r\n            flex-grow: 1;\r\n        }\r\n        \r\n        .btn-copy {\r\n            background: linear-gradient(135deg, #667eea, #764ba2);\r\n            color: white;\r\n            border: none;\r\n            padding: var(--spacing-m) var(--spacing-l);\r\n            border-radius: 25px;\r\n            font-size: var(--font-size-small);\r\n            font-weight: 600;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            display: flex;\r\n            align-items: center;\r\n            justify-content: center;\r\n            gap: var(--gap-clamp);\r\n            box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3);\r\n            align-self: flex-start;\r\n        }\r\n        \r\n        .btn-copy:hover {\r\n            transform: translateY(-2px);\r\n            box-shadow: 0 8px 20px rgba(102, 126, 234, 0.4);\r\n        }\r\n        \r\n        .btn-copy.copied {\r\n            background: linear-gradient(135deg, #43e97b, #38f9d7);\r\n        }\r\n\r\n        #load-more-btn {\r\n            background: linear-gradient(135deg, #fdfbfb 0%, #ebedee 100%);\r\n            color: #555;\r\n            border: 1px solid rgba(0,0,0,0.1);\r\n            padding: var(--spacing-l) clamp(1.5rem, 4vw, 3rem);\r\n            font-size: clamp(0.9rem, 1.5vw, 1rem);\r\n            font-weight: 700;\r\n            border-radius: 50px;\r\n            cursor: pointer;\r\n            transition: all 0.3s ease;\r\n            display: block;\r\n            margin: var(--spacing-xl) auto 0;\r\n            box-shadow: 0 5px 15px rgba(0,0,0,0.05);\r\n        }\r\n        #load-more-btn:hover {\r\n            transform: translateY(-3px);\r\n            box-shadow: 0 10px 25px rgba(102, 126, 234, 0.2);\r\n            border-color: #667eea;\r\n        }\r\n        \r\n        \/* Content Sections Styles *\/\r\n        .content-section {\r\n            background: rgba(255, 255, 255, 0.95);\r\n            backdrop-filter: blur(20px);\r\n            border-radius: 20px;\r\n            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);\r\n            padding: clamp(1rem, 3vw, 2.5rem);\r\n            margin-top: clamp(1.5rem, 4vw, 2.5rem); \/* Use margin-top instead of bottom for correct spacing *\/\r\n        }\r\n        \r\n        .content-section::before {\r\n            content: '';\r\n            position: absolute;\r\n            top: 0;\r\n            left: 0;\r\n            right: 0;\r\n            height: 4px;\r\n            background: linear-gradient(90deg, #667eea, #764ba2, #f093fb);\r\n        }\r\n        \r\n        .content-section h2 {\r\n            background: linear-gradient(135deg, #667eea, #764ba2);\r\n            -webkit-background-clip: text;\r\n            -webkit-text-fill-color: transparent;\r\n            background-clip: text;\r\n            margin-bottom: var(--margin-block-clamp);\r\n            padding-bottom: var(--padding-clamp);\r\n            border-bottom: 2px solid rgba(102, 126, 234, 0.1);\r\n            display: flex;\r\n            align-items: center;\r\n            gap: var(--gap-clamp);\r\n        }\r\n        \r\n        .content-section h2 i {\r\n            -webkit-text-fill-color: #667eea;\r\n        }\r\n        \r\n        .content-section h3 {\r\n            font-size: clamp(1.1rem, 2.5vw, 1.5rem);\r\n            color: #444;\r\n            margin: var(--margin-block-clamp) 0;\r\n        }\r\n        \r\n        .content-section p, .content-section li {\r\n            margin-bottom: var(--margin-block-clamp);\r\n            color: #555;\r\n            line-height: 1.5;\r\n        }\r\n        \r\n        .accordion-item {\r\n            margin-bottom: var(--spacing-m);\r\n        }\r\n        \r\n        .accordion-header {\r\n            padding: var(--padding-clamp);\r\n        }\r\n\r\n        .accordion-content.active {\r\n             padding: var(--padding-clamp);\r\n             max-height: 500px;\r\n        }\r\n\r\n        .step-list, .content-section ul {\r\n            list-style: none;\r\n            padding-left: 0;\r\n        }\r\n    <\/style>\r\n    \r\n    <!-- Animated Background Shapes -->\r\n    <div class=\"bg-shape shape1\"><\/div>\r\n    <div class=\"bg-shape shape2\"><\/div>\r\n    <div class=\"bg-shape shape3\"><\/div>\r\n    \r\n    <!-- Header Section -->\r\n    <header class=\"header\">\r\n        <div class=\"container\">\r\n            <div class=\"header-icon\">\r\n                <i class=\"fas fa-wave-square\"><\/i>\r\n            <\/div>\r\n            <h1>Wavy Font Generator \u2013 Create Wavy Text Online<\/h1>\r\n            <p><i class=\"fas fa-magic\"><\/i> Transform your text into stunning wavy typography with our advanced AI-powered generator. Perfect for social media, branding, and creative projects.<\/p>\r\n        <\/div>\r\n    <\/header>\r\n    \r\n    <!-- Main Content -->\r\n    <main class=\"container\">\r\n        <!-- Generator Tool -->\r\n        <section class=\"generator-tool\">\r\n            <div class=\"tool-header\">\r\n                <h2><i class=\"fas fa-wand-magic-sparkles\"><\/i> Create Amazing Wavy Text<\/h2>\r\n                <p><i class=\"fas fa-info-circle\"><\/i> Enter text, pick a style, and see the magic happen instantly!<\/p>\r\n            <\/div>\r\n            \r\n            <div class=\"input-section\">\r\n                <div class=\"form-group\">\r\n                    <label for=\"text-input\">\r\n                        <i class=\"fas fa-keyboard\"><\/i>\r\n                        Enter Your Text Here\r\n                    <\/label>\r\n                    <input type=\"text\" id=\"text-input\" class=\"form-control\" placeholder=\"e.g., Wavy Fonts Rock!\" aria-label=\"Text input for wavy font generation\">\r\n                <\/div>\r\n                \r\n                <div class=\"form-group\">\r\n                    <label>\r\n                        <i class=\"fas fa-star\"><\/i>\r\n                        Choose a Style Preset\r\n                    <\/label>\r\n                     <div class=\"preset-buttons-container\" id=\"preset-buttons\">\r\n                        <button class=\"preset-btn\" data-style-category=\"subtle\">\ud83c\udf0a Subtle<\/button>\r\n                        <button class=\"preset-btn\" data-style-category=\"script\">\u2712\ufe0f Script<\/button>\r\n                        <button class=\"preset-btn\" data-style-category=\"underline\"><u>Underline<\/u><\/button>\r\n                        <button class=\"preset-btn\" data-style-category=\"strikethrough\">\u0334 Strikethrough<\/button>\r\n                        <button class=\"preset-btn\" data-style-category=\"decorated\">\ud83c\udf80 Decorated<\/button>\r\n                        <button class=\"preset-btn\" data-style-category=\"funky\">\ud83e\udd2a Funky<\/button>\r\n                        <button class=\"preset-btn\" data-style-category=\"glitch\">\ud83c\udfa8 Glitch<\/button>\r\n                        <button class=\"preset-btn\" data-style-category=\"bold\">\ud83d\udcaa Bold<\/button>\r\n                        <button class=\"preset-btn active-preset\" data-style-category=\"all\">\u2728 All Styles<\/button>\r\n                    <\/div>\r\n                <\/div>\r\n                \r\n                <button id=\"generate-btn\" class=\"btn-generate\" aria-label=\"Generate wavy font\">\r\n                    <i class=\"fas fa-magic\"><\/i>\r\n                    Generate Wavy Fonts\r\n                <\/button>\r\n            <\/div>\r\n            \r\n            <div class=\"output-section\" id=\"output-section\">\r\n                <div class=\"output-header\">\r\n                    <h3>\r\n                        <i class=\"fas fa-sparkles\"><\/i>\r\n                        Generated Wavy Fonts\r\n                    <\/h3>\r\n                    <span class=\"results-count\" id=\"results-count\">\r\n                        <i class=\"fas fa-layer-group\"><\/i>\r\n                        0 results\r\n                    <\/span>\r\n                <\/div>\r\n                <div class=\"results-grid\" id=\"results-grid\">\r\n                    <!-- Results will be dynamically added here -->\r\n                <\/div>\r\n                <button id=\"load-more-btn\" style=\"display: none;\">Load More<\/button>\r\n            <\/div>\r\n        <\/section>      \r\n    <\/main>\r\n    \r\n    <!-- JavaScript -->\r\n    <script>\r\n        const wavyFontStyles = [\r\n            \/\/ List of 51 styles, corrected and mapped\r\n            { name: \"Smooth Wavy\", combiner: \"\\u0303\", category: \"subtle\" },\r\n            { name: \"Deep Wave Bottom\", combiner: \"\\u0317\", category: \"subtle\" },\r\n            { name: \"Top Ripple Wave\", combiner: \"\\u030B\", category: \"subtle\" },\r\n            { name: \"Loose Ocean Wobble\", combiner: \"\\u033D\\u0353\", category: \"glitch\" },\r\n            { name: \"Side Flow Wave\", combiner: \"\\u0334\", category: \"strikethrough\" },\r\n            { name: \"Soft Italic Wave\", map: { uppercase: \"\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\", lowercase: \"\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\" }, category: \"script\" },\r\n            { name: \"Script Curve Wave\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcea\ud835\udceb\ud835\udcec\ud835\udced\ud835\udcee\ud835\udcef\ud835\ude28\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\" }, category: \"script\" },\r\n            { name: \"Heavy Wave Script\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcea\ud835\udceb\ud835\udcec\ud835\udced\ud835\udcee\ud835\udcef\ud835\ude28\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\" }, combiner: \"\\u0303\", category: \"script\" },\r\n            { name: \"Wavy Underline\", combiner: \"\\u0332\", category: \"underline\" },\r\n            { name: \"Wide Spaced Wave\", suffix: \" ~ \", category: \"decorated\" },\r\n            { name: \"Soft Wiggle Line\", combiner: \"\\u035F\", category: \"underline\" },\r\n            { name: \"Tilted Wave Letters\", combiner: \"\\u0338\", category: \"strikethrough\" },\r\n            { name: \"Raised Surf Wave\", combiner: \"\\u0304\", category: \"subtle\" },\r\n            { name: \"Droplet Wave\", combiner: \"\\u0323\", category: \"subtle\" },\r\n            { name: \"Ripple Dots\", combiner: \"\\u0308\", category: \"subtle\" },\r\n            { name: \"Double Wavy Top\", combiner: \"\\u0311\", category: \"subtle\" },\r\n            { name: \"Wavy Curve Script\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcb6\ud835\udcb7\ud835\udcb8\ud835\udcb9\u212f\ud835\udcbb\u210a\ud835\udcbd\ud835\udcbe\ud835\udcbf\ud835\udcc0\ud835\udcc1\ud835\udcc2\ud835\udcc3\u2134\ud835\udcc5\ud835\udcc6\ud835\udcc7\ud835\udcc8\ud835\udcc9\ud835\udcca\ud835\udccb\ud835\udccc\ud835\udccd\ud835\udcce\ud835\udccf\" }, combiner: \"\\u0303\", category: \"script\" },\r\n            { name: \"Wave Accent Above\", combiner: \"\\u030A\", category: \"subtle\" },\r\n            { name: \"Wave Accent Below\", combiner: \"\\u0327\", category: \"subtle\" },\r\n            { name: \"Twisted Stream Wave\", combiner: \"\\u0336\", category: \"strikethrough\" },\r\n            { name: \"Double Flow Line\", combiner: \"\\u035E\", category: \"underline\" },\r\n            { name: \"Loose Float Wave\", combiner: \"\\u033C\", category: \"glitch\" },\r\n            { name: \"Torn Flow Wave\", combiner: \"\\u0362\", category: \"glitch\" },\r\n            { name: \"Curve-Down Wave\", combiner: \"\\u031D\", category: \"subtle\" },\r\n            { name: \"Curve-Up Wave\", combiner: \"\\u031C\", category: \"subtle\" },\r\n            { name: \"Dotted Wave Below\", combiner: \"\\u0323\\u0307\", category: \"underline\" },\r\n            { name: \"Shaky Script Wave\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcb6\ud835\udcb7\ud835\udcb8\ud835\udcb9\u212f\ud835\udcbb\u210a\ud835\udcbd\ud835\udcbe\ud835\udcbf\ud835\udcc0\ud835\udcc1\ud835\udcc2\ud835\udcc3\u2134\ud835\udcc5\ud835\udcc6\ud835\udcc7\ud835\udcc8\ud835\udcc9\ud835\udcca\ud835\udccb\ud835\udccc\ud835\udccd\ud835\udcce\ud835\udccf\" }, combiner: \"\\u035F\", category: \"script\" },\r\n            { name: \"Mini Wave Italic\", map: { uppercase: \"\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\", lowercase: \"\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\" }, category: \"script\" },\r\n            { name: \"Script Swirl + Waves\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcea\ud835\udceb\ud835\udcec\ud835\udced\ud835\udcee\ud835\udcef\ud835\ude28\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\" }, combiner: \"\\u0337\", category: \"script\" },\r\n            { name: \"Zig-Zag Wavy\", combiner: \"\\u033F\", category: \"bold\" },\r\n            { name: \"Wave Up + Down Mixed\", combiner: \"\\u1DFE\", category: \"funky\" },\r\n            { name: \"Tilde Wave\", suffix: \"~\", category: \"decorated\" },\r\n            { name: \"Mini Curvy\", map: { uppercase: \"\u15e9\u15f7\u1455\u15ea\u15f4\u15b4\u13c0\u157c\u13a5\u148d\u13e6\u14aa\u15f0\u144e\u15dd\u146d\u146b\u1587\u1515\u13a2\u144c\u142f\u15ef\u166d\u13a9\u13c3\", lowercase: \"\u15e9\u15f7\u1455\u15ea\u15f4\u15b4\u13c0\u157c\u13a5\u148d\u13e6\u14aa\u15f0\u144e\u15dd\u146d\u146b\u1587\u1515\u13a2\u144c\u142f\u15ef\u166d\u13a9\u13c3\" }, category: \"funky\" },\r\n            { name: \"Soft Rounded Wave\", map: { uppercase: \"\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\", lowercase: \"\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\" }, category: \"decorated\" },\r\n            { name: \"Water Droplet Style\", map: { uppercase: \"\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\", lowercase: \"\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\" }, combiner: \"\\u0324\", category: \"decorated\" },\r\n            { name: \"Script Bubble Wave\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcb6\ud835\udcb7\ud835\udcb8\ud835\udcb9\u212f\ud835\udcbb\u210a\ud835\udcbd\ud835\udcbe\ud835\udcbf\ud835\udcc0\ud835\udcc1\ud835\udcc2\ud835\udcc3\u2134\ud835\udcc5\ud835\udcc6\ud835\udcc7\ud835\udcc8\ud835\udcc9\ud835\udcca\ud835\udccb\ud835\udccc\ud835\udccd\ud835\udcce\ud835\udccf\" }, combiner: \"\\u0303\", category: \"script\" },\r\n            { name: \"Loose Squiggle\", suffix: \"\ufe4f\", category: \"decorated\" },\r\n            { name: \"Wave Curl Bracket\", wrap: { before: \"(\", after: \")\" }, combiner: \"\\u0334\", category: \"decorated\" },\r\n            { name: \"Wavy Emoji\", prefix: \"\ud83c\udf0a\", category: \"decorated\" },\r\n            { name: \"Script Curve Light\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcb6\ud835\udcb7\ud835\udcb8\ud835\udcb9\u212f\ud835\udcbb\u210a\ud835\udcbd\ud835\udcbe\ud835\udcbf\ud835\udcc0\ud835\udcc1\ud835\udcc2\ud835\udcc3\u2134\ud835\udcc5\ud835\udcc6\ud835\udcc7\ud835\udcc8\ud835\udcc9\ud835\udcca\ud835\udccb\ud835\udccc\ud835\udccd\ud835\udcce\ud835\udccf\" }, category: \"script\" },\r\n            { name: \"Script Curve Heavy\", map: { uppercase: \"\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\", lowercase: \"\ud835\udcea\ud835\udceb\ud835\udcec\ud835\udced\ud835\udcee\ud835\udcef\ud835\ude28\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\" }, category: \"bold\" },\r\n            { name: \"Ultra-Wave Stretch\", map: { uppercase: \"\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\", lowercase: \"\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\" }, suffix: \"\\u2002\", category: \"decorated\" },\r\n            { name: \"Mono Ripple\", map: { uppercase: \"\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\", lowercase: \"\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\" }, combiner: \"\\u033D\", category: \"glitch\" },\r\n            { name: \"Rounded Tilt Wave\", map: { uppercase: \"\u15e9\u15f7\u1455\u15ea\u15f4\u15b4\u13c0\u157c\u13a5\u148d\u13e6\u14aa\u15f0\u144e\u15dd\u146d\u146b\u1587\u1515\u13a2\u144c\u142f\u15ef\u166d\u13a9\u13c3\", lowercase: \"\u15e9\u15f7\u1455\u15ea\u15f4\u15b4\u13c0\u157c\u13a5\u148d\u13e6\u14aa\u15f0\u144e\u15dd\u146d\u146b\u1587\u1515\u13a2\u144c\u142f\u15ef\u166d\u13a9\u13c3\" }, combiner: \"\\u0303\", category: \"funky\" },\r\n            { name: \"Wavy Double-Dot\", combiner: \"\\u0308\\u0303\", category: \"subtle\" },\r\n            { name: \"Triple Wiggle\", combiner: \"\\u0337\\u0337\", category: \"strikethrough\" },\r\n            { name: \"Dotted Drift\", combiner: \"\\u0323\\u0304\", category: \"underline\" },\r\n            { name: \"Wave Slash\", suffix: \"\\uFE68\", category: \"decorated\" },\r\n            { name: \"High Crest Wave\", combiner: \"\\u0346\", category: \"glitch\" },\r\n            { name: \"Crazy Ripple Wave\", combiner: \"\\u0338\\u0337\", category: \"glitch\" },\r\n            { name: \"Deep Liquid Wave\", combiner: \"\\u033C\\u033D\", category: \"glitch\" },\r\n        ];\r\n        \r\n        \/\/ DOM Elements\r\n        const textInput = document.getElementById('text-input');\r\n        const generateBtn = document.getElementById('generate-btn');\r\n        const outputSection = document.getElementById('output-section');\r\n        const resultsGrid = document.getElementById('results-grid');\r\n        const resultsCount = document.getElementById('results-count');\r\n        const presetButtonsContainer = document.getElementById('preset-buttons');\r\n        const loadMoreBtn = document.getElementById('load-more-btn');\r\n\r\n        \/\/ State variables\r\n        let currentCategory = 'all';\r\n        let allGeneratedResults = [];\r\n        let currentIndex = 0;\r\n        \r\n        function generateWavyText(text, style) {\r\n            if (!text) return '';\r\n            let result = '';\r\n            for (let i = 0; i < text.length; i++) {\r\n                let char = text[i];\r\n                let processedChar = char;\r\n                if (style.map) {\r\n                    const code = char.charCodeAt(0);\r\n                    if (code >= 65 && code <= 90) { \/\/ Uppercase\r\n                        processedChar = style.map.uppercase?.[code - 65] || char;\r\n                    } else if (code >= 97 && code <= 122) { \/\/ Lowercase\r\n                        processedChar = style.map.lowercase?.[code - 97] || char;\r\n                    }\r\n                }\r\n                if (style.combiner && char.trim() !== '') {\r\n                    processedChar += style.combiner;\r\n                }\r\n                if (style.prefix) {\r\n                    processedChar = style.prefix + processedChar;\r\n                }\r\n                if (style.wrap) {\r\n                     processedChar = style.wrap.before + processedChar + style.wrap.after;\r\n                }\r\n                if (style.suffix) {\r\n                    processedChar += style.suffix;\r\n                }\r\n                result += processedChar;\r\n            }\r\n            return result;\r\n        }\r\n        \r\n        function createResultCard(text, styleName) {\r\n            const card = document.createElement('div');\r\n            card.className = 'result-card';\r\n            \r\n            const textElement = document.createElement('div');\r\n            textElement.className = 'result-text';\r\n            textElement.textContent = text;\r\n            \r\n            const copyBtn = document.createElement('button');\r\n            copyBtn.className = 'btn-copy';\r\n            copyBtn.innerHTML = '<i class=\"fas fa-copy\"><\/i> Copy';\r\n            \r\n            copyBtn.addEventListener('click', function() {\r\n                navigator.clipboard.writeText(text).then(() => {\r\n                    copyBtn.innerHTML = '<i class=\"fas fa-check\"><\/i> Copied!';\r\n                    copyBtn.classList.add('copied');\r\n                    setTimeout(() => {\r\n                        copyBtn.innerHTML = '<i class=\"fas fa-copy\"><\/i> Copy';\r\n                        copyBtn.classList.remove('copied');\r\n                    }, 2000);\r\n                });\r\n            });\r\n            \r\n            card.appendChild(textElement);\r\n            card.appendChild(copyBtn);\r\n            return card;\r\n        }\r\n\r\n        function loadMoreResults(batchSize) {\r\n            const fragment = document.createDocumentFragment();\r\n            const nextIndex = Math.min(currentIndex + batchSize, allGeneratedResults.length);\r\n\r\n            for (let i = currentIndex; i < nextIndex; i++) {\r\n                const result = allGeneratedResults[i];\r\n                const card = createResultCard(result.text, result.name);\r\n                \/\/ Animate entrance\r\n                card.style.opacity = '0';\r\n                card.style.transform = 'translateY(20px)';\r\n                fragment.appendChild(card);\r\n                setTimeout(() => {\r\n                    card.style.transition = 'opacity 0.3s ease, transform 0.3s ease';\r\n                    card.style.opacity = '1';\r\n                    card.style.transform = 'translateY(0)';\r\n                }, 50 * (i - currentIndex));\r\n            }\r\n\r\n            resultsGrid.appendChild(fragment);\r\n            currentIndex = nextIndex;\r\n\r\n            resultsCount.innerHTML = `<i class=\"fas fa-layer-group\"><\/i> ${currentIndex} of ${allGeneratedResults.length} results`;\r\n            \r\n            if (currentIndex >= allGeneratedResults.length) {\r\n                loadMoreBtn.style.display = 'none';\r\n            } else {\r\n                loadMoreBtn.style.display = 'block';\r\n            }\r\n        }\r\n        \r\n        function generateResults() {\r\n            const inputText = textInput.value;\r\n            if (!inputText.trim()) {\r\n                textInput.style.borderColor = '#f5576c';\r\n                setTimeout(() => { textInput.style.borderColor = '#e1e8ed'; }, 2000);\r\n                return;\r\n            }\r\n            \r\n            const filteredStyles = wavyFontStyles.filter(style => \r\n                currentCategory === 'all' || style.category === currentCategory\r\n            );\r\n            \r\n            allGeneratedResults = filteredStyles.map(style => ({\r\n                text: generateWavyText(inputText, style),\r\n                name: style.name\r\n            }));\r\n            \r\n            resultsGrid.innerHTML = '';\r\n            currentIndex = 0;\r\n            \r\n            const initialBatchSize = window.innerWidth < 768 ? 10 : 20;\r\n            loadMoreResults(initialBatchSize);\r\n        }\r\n        \r\n        \/\/ Event Listeners\r\n        generateBtn.addEventListener('click', generateResults);\r\n        textInput.addEventListener('keypress', e => { if (e.key === 'Enter') { e.preventDefault(); generateResults(); } });\r\n        loadMoreBtn.addEventListener('click', () => loadMoreResults(20));\r\n        \r\n        presetButtonsContainer.addEventListener('click', e => {\r\n            if (e.target.tagName === 'BUTTON') {\r\n                document.querySelectorAll('.preset-btn').forEach(btn => btn.classList.remove('active-preset'));\r\n                e.target.classList.add('active-preset');\r\n                currentCategory = e.target.dataset.styleCategory;\r\n                if (textInput.value.trim()) {\r\n                    generateResults();\r\n                }\r\n            }\r\n        });\r\n        \r\n        \/\/ Accordion functionality\r\n        document.querySelectorAll('.accordion-header').forEach(header => {\r\n            header.addEventListener('click', function() {\r\n                this.parentElement.classList.toggle('active');\r\n                const content = this.nextElementSibling;\r\n                if(content.style.maxHeight) {\r\n                    content.style.maxHeight = null;\r\n                    content.style.padding = '0';\r\n                } else {\r\n                    content.style.maxHeight = content.scrollHeight + \"px\";\r\n                    content.style.padding = 'var(--padding-clamp)';\r\n                }\r\n            });\r\n        });\r\n\r\n        \/\/ Initial load with dummy\/placeholder content\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            textInput.value = \"Wavy Text\";\r\n            generateResults();\r\n        });\r\n    <\/script>\r\n<\/div>\r\n\r\n<!-- Content section Start From Here  -->\r\n\r\n\r\n\r\n<div class=\"fgwavyfontgenerator-content-wrapper\">\r\n<style>\r\n@import url(\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\");\r\n.fgwavyfontgenerator-content-wrapper {\r\n--fg-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Arial, sans-serif;\r\n--fg-text: #101827; --fg-muted: #64748b; --fg-border: rgba(15, 23, 42, 0.12); --fg-radius: 24px;\r\n--fg-brand-1: #7c3aed; --fg-brand-2: #38bdf8; --fg-brand-3: #f472b6; --fg-soft: #f8fbff; --fg-glow: rgba(124,58,237,.17);\r\nwidth: 100%; display: block; overflow: hidden; font-family: var(--fg-font); color: var(--fg-text); -webkit-font-smoothing: antialiased; text-rendering: geometricPrecision;\r\n}\r\n.fgwavyfontgenerator-content-wrapper, .fgwavyfontgenerator-content-wrapper * { box-sizing: border-box; }\r\n.fgwavyfontgenerator-content-wrapper h1, .fgwavyfontgenerator-content-wrapper h2, .fgwavyfontgenerator-content-wrapper h3, .fgwavyfontgenerator-content-wrapper h4, .fgwavyfontgenerator-content-wrapper h5, .fgwavyfontgenerator-content-wrapper h6, .fgwavyfontgenerator-content-wrapper p { margin-top: 0; margin-bottom: 0; }\r\n.fgwavyfontgenerator-content-section { width: 100%; padding: 74px 20px; position: relative; overflow: hidden; }\r\n.fgwavyfontgenerator-section-white { background: #ffffff; }\r\n.fgwavyfontgenerator-section-soft { background: #FAF9F6; }\r\n.fgwavyfontgenerator-inner-container { max-width: 1200px; width: 100%; margin-left: auto; margin-right: auto; position: relative; z-index: 1; }\r\n.fgwavyfontgenerator-section-heading-wrap { max-width: 860px; margin-left: auto; margin-right: auto; margin-bottom: 36px; text-align: center; }\r\n.fgwavyfontgenerator-section-title { font-size: clamp(24px, 2.7vw, 35px); font-weight: 760; line-height: 1.22; letter-spacing: -0.025em; color: #101827; text-align: center; margin-bottom: 14px !important; }\r\n.fgwavyfontgenerator-section-subtitle { font-size: clamp(15px, 1.45vw, 17px); font-weight: 400; line-height: 1.68; color: var(--fg-muted); max-width: 760px; margin-left: auto; margin-right: auto; text-align: center; }\r\n.fgwavyfontgenerator-keyword-gradient { color: #7c3aed; -webkit-text-fill-color: #7c3aed; display: inline-block; position: relative; }\r\n.fgwavyfontgenerator-keyword-gradient::after { content: \"\"; position: absolute; left: 0; right: 0; bottom: -3px; height: 3px; border-radius: 999px; background: linear-gradient(90deg, #7c3aed, #38bdf8, #f472b6); opacity: 0.84; }\r\n.fgwavyfontgenerator-card-grid { display: grid; gap: 22px; align-items: stretch; width: 100%; }\r\n.fgwavyfontgenerator-first-grid, .fgwavyfontgenerator-third-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }\r\n.fgwavyfontgenerator-second-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }\r\n.fgwavyfontgenerator-first-grid .fgwavyfontgenerator-feature-card, .fgwavyfontgenerator-third-grid .fgwavyfontgenerator-feature-card { min-height: 322px; }\r\n.fgwavyfontgenerator-feature-card {\r\n--card-c1: #7c3aed; --card-c2: #38bdf8; --card-c3: #f472b6; --card-soft: rgba(245,243,255,.96); --card-glow: rgba(124,58,237,.18); --fg-mx: 50%; --fg-my: 18%; --fg-tilt-x: 0deg; --fg-tilt-y: 0deg;\r\ndisplay: flex; flex-direction: column; padding: 26px; border: 1px solid var(--fg-border); border-radius: var(--fg-radius);\r\nbackground: radial-gradient(circle at var(--fg-mx) var(--fg-my), rgba(255,255,255,.94), transparent 28%), linear-gradient(180deg, #fbfcff 0%, #f7f8fd 45%, #eef3f8 100%), linear-gradient(135deg, rgba(124, 58, 237, .08), transparent 34%), linear-gradient(315deg, rgba(244, 114, 182, .08), transparent 30%);\r\nposition: relative; isolation: isolate; overflow: hidden; transform: translateY(18px); opacity: 0; transition: transform 420ms ease, opacity 420ms ease, box-shadow 320ms ease, border-color 320ms ease, background 320ms ease;\r\n}\r\n.fgwavyfontgenerator-card-visible { transform: translateY(0); opacity: 1; }\r\n.fgwavyfontgenerator-feature-card:nth-child(1) { --card-c1: #7c3aed; --card-c2: #a855f7; --card-c3: #c084fc; --card-soft: rgba(245,243,255,.96); --card-glow: rgba(124,58,237,.22); }\r\n.fgwavyfontgenerator-feature-card:nth-child(2) { --card-c1: #0891b2; --card-c2: #38bdf8; --card-c3: #67e8f9; --card-soft: rgba(236,254,255,.96); --card-glow: rgba(8,145,178,.22); }\r\n.fgwavyfontgenerator-feature-card:nth-child(3) { --card-c1: #db2777; --card-c2: #f472b6; --card-c3: #f9a8d4; --card-soft: rgba(253,242,248,.96); --card-glow: rgba(219,39,119,.22); }\r\n.fgwavyfontgenerator-feature-card:nth-child(4) { --card-c1: #2563eb; --card-c2: #06b6d4; --card-c3: #93c5fd; --card-soft: rgba(239,246,255,.96); --card-glow: rgba(37,99,235,.22); }\r\n.fgwavyfontgenerator-feature-card:nth-child(5) { --card-c1: #0f766e; --card-c2: #14b8a6; --card-c3: #99f6e4; --card-soft: rgba(240,253,250,.96); --card-glow: rgba(15,118,110,.22); }\r\n.fgwavyfontgenerator-feature-card:nth-child(6) { --card-c1: #f97316; --card-c2: #f59e0b; --card-c3: #fde047; --card-soft: rgba(255,247,237,.96); --card-glow: rgba(249,115,22,.22); }\r\n.fgwavyfontgenerator-feature-card:nth-child(7) { --card-c1: #4f46e5; --card-c2: #818cf8; --card-c3: #38bdf8; --card-soft: rgba(238,242,255,.96); --card-glow: rgba(79,70,229,.22); }\r\n.fgwavyfontgenerator-feature-card:nth-child(8) { --card-c1: #16a34a; --card-c2: #22c55e; --card-c3: #86efac; --card-soft: rgba(240,253,244,.96); --card-glow: rgba(34,197,94,.22); }\r\n.fgwavyfontgenerator-feature-card::before { content: \"\"; width: 210px; height: 210px; right: -96px; top: -96px; border-radius: 999px; background: radial-gradient(circle, var(--card-glow), transparent 72%); position: absolute; opacity: 0; transform: scale(0.7); transition: opacity 320ms ease, transform 320ms ease; z-index: -1; }\r\n.fgwavyfontgenerator-feature-card::after { content: \"\"; width: 84px; height: 84px; right: 18px; bottom: 18px; border-radius: 999px; background: radial-gradient(circle, var(--card-glow), transparent 68%); position: absolute; opacity: 0; transform: scale(.4); transition: opacity 320ms ease, transform 320ms ease; z-index: -1; }\r\n.fgwavyfontgenerator-icon-wrap { width: 70px; min-width: 70px; height: 70px; min-height: 70px; display: inline-flex; align-items: center; justify-content: center; border-radius: 22px; margin-bottom: 20px; background: transparent; color: var(--card-c1); isolation: isolate; position: relative; transition: transform 320ms ease; }\r\n.fgwavyfontgenerator-icon-wrap::before { content: \"\"; position: absolute; inset: 0; border-radius: 22px; background: linear-gradient(145deg, rgba(255,255,255,0.98), var(--card-soft)), radial-gradient(circle at 24% 18%, rgba(255,255,255,1), transparent 42%); border: 1px solid rgba(255,255,255,0.82); box-shadow: inset 0 1px 0 rgba(255,255,255,0.96), 0 12px 26px rgba(15,23,42,0.08), 0 0 0 6px rgba(15,23,42,0.035); z-index: 1; transition: border-radius 320ms ease, background 320ms ease, box-shadow 320ms ease, transform 320ms ease; }\r\n.fgwavyfontgenerator-icon-wrap::after { content: \"\"; position: absolute; inset: -7px; border-radius: 30px; border: 1px dashed var(--card-c1); opacity: 0; transform: scale(0.78) rotate(18deg); z-index: 0; transition: opacity 300ms ease, transform 300ms ease, border-radius 300ms ease; }\r\n.fgwavyfontgenerator-icon-wrap i { font-size: 26px; z-index: 3; color: var(--card-c1); -webkit-text-fill-color: var(--card-c1); background: none; filter: none; transition: color 320ms ease, -webkit-text-fill-color 320ms ease, transform 320ms ease; }\r\n.fgwavyfontgenerator-card-title { font-size: 18.5px; font-weight: 620; line-height: 1.35; letter-spacing: -0.01em; color: #101827; z-index: 1; margin: 0 0 11px 0 !important; position: relative; transition: color 300ms ease, transform 300ms ease; }\r\n.fgwavyfontgenerator-card-title::after { content: \"\"; display: block; width: 0; height: 2px; margin-top: 9px; border-radius: 20px; background: linear-gradient(90deg, var(--card-c1), var(--card-c2), var(--card-c3)); transition: width 300ms ease; }\r\n.fgwavyfontgenerator-card-text { font-size: 15px; font-weight: 400; line-height: 1.72; color: var(--fg-muted); flex: 1 1 auto; z-index: 1; margin: 0 !important; transition: color 300ms ease, transform 300ms ease; }\r\n.fgwavyfontgenerator-card-cta { display: inline-flex; align-items: center; gap: 8px; width: fit-content; margin-top: 18px; font-size: 13px; font-weight: 700; color: var(--card-c1); opacity: 0; transform: translateY(12px) scale(.96); transition: opacity 280ms ease, transform 280ms ease, color 280ms ease; position: relative; z-index: 1; }\r\n.fgwavyfontgenerator-card-cta i { font-size: 12px; transition: transform 280ms ease; }\r\n.fgwavyfontgenerator-process-badge { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: linear-gradient(135deg, var(--card-c1), var(--card-c2), var(--card-c3)); color: #ffffff; font-size: 13px; font-weight: 800; position: absolute; top: 18px; right: 18px; z-index: 4; transform: rotateY(0deg) scale(.84); opacity: .74; box-shadow: 0 12px 24px var(--card-glow); transition: transform 320ms ease, opacity 320ms ease, border-radius 320ms ease; }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover { transform: translateY(-12px) rotate(-1deg); box-shadow: 0 24px 58px var(--card-glow), 0 10px 28px rgba(15,23,42,0.10); border-color: var(--card-c2); background: radial-gradient(circle at var(--fg-mx) var(--fg-my), rgba(255,255,255,.98), transparent 30%), radial-gradient(circle at 88% 18%, var(--card-glow), transparent 34%), linear-gradient(135deg, rgba(255,255,255,0.98), var(--card-soft) 46%, rgba(255,255,255,0.96)); }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover::before, .fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover::after { opacity: 1; transform: scale(1); }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap { transform: translateY(-9px) rotate(8deg) scale(1.08); }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap::before { border-radius: 50%; background: linear-gradient(145deg, var(--card-c1), var(--card-c2), var(--card-c3)); box-shadow: 0 16px 34px var(--card-glow), 0 0 0 6px rgba(15,23,42,.06), inset 0 1px 0 rgba(255,255,255,0.28); }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap::after { opacity: .52; transform: scale(1.05) rotate(0deg); border-radius: 50%; animation: fgwavyfontgeneratorIconSpin 1200ms linear infinite; }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap i { color: #ffffff; -webkit-text-fill-color: #ffffff; transform: scale(1.14) rotate(-8deg); }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-title { color: var(--card-c1); transform: translateY(-3px); }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-title::after { width: 68px; }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-text { transform: translateY(-2px); color: #46556b; }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-cta { opacity: 1; transform: translateY(0) scale(1); }\r\n.fgwavyfontgenerator-interaction-one .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-cta i { transform: translateX(6px); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card { border: 1.5px solid rgba(255,255,255,.72); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transform-style: preserve-3d; perspective: 900px; }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-card-visible { transform: translateY(0); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover { transform: translateY(-10px) rotateX(var(--fg-tilt-y)) rotateY(var(--fg-tilt-x)); box-shadow: 0 26px 62px var(--card-glow), 0 0 0 3px rgba(255,255,255,.38), 0 0 0 8px rgba(255,255,255,.16); border-color: rgba(255,255,255,.95); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover::before, .fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover::after { opacity: 1; transform: scale(1); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap { transform: translateZ(24px) translateY(-8px) scale(1.08); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap::before { border-radius: 18px 30px 18px 30px; background: linear-gradient(145deg, var(--card-c1), var(--card-c2), var(--card-c3)); box-shadow: 0 16px 34px var(--card-glow), 0 0 0 6px rgba(255,255,255,.34), inset 0 1px 0 rgba(255,255,255,.28); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap::after { opacity: 1; transform: scale(1) rotate(-8deg); animation: fgwavyfontgeneratorPulseRing 850ms ease-in-out infinite alternate; }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap i { color: #ffffff; -webkit-text-fill-color: #ffffff; transform: rotateY(180deg) scale(1.12); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-title { color: var(--card-c1); transform: translateY(-4px); }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-title::after { width: 60px; }\r\n.fgwavyfontgenerator-interaction-two .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-text { color: #46556b; transform: translateY(-2px); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card::after { width: 12px; height: 12px; left: auto; right: 24px; bottom: 24px; border-radius: 50%; background: linear-gradient(135deg, var(--card-c1), var(--card-c2), var(--card-c3)); transform: scale(.4); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover { transform: translateY(-8px) scale(1.015); box-shadow: 0 24px 58px var(--card-glow), 0 10px 24px rgba(15,23,42,.08); border-color: var(--card-c2); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover::before, .fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover::after { opacity: 1; transform: scale(1); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-process-badge { transform: rotateY(180deg) scale(1.06); opacity: 1; border-radius: 50%; }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap { transform: translateY(-8px) rotate(-6deg) scale(1.08); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap::before { border-radius: 50%; box-shadow: inset 0 1px 0 rgba(255,255,255,.96), 0 18px 34px var(--card-glow), 0 0 0 6px rgba(15,23,42,.045); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap::after { opacity: .48; transform: scale(1.05) rotate(0deg); border-radius: 50%; }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-icon-wrap i { color: var(--card-c1); -webkit-text-fill-color: var(--card-c1); transform: translateY(-1px) scale(1.14) rotate(6deg); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-title { color: var(--card-c1); transform: translateY(-3px); }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-title::after { width: 66px; }\r\n.fgwavyfontgenerator-interaction-three .fgwavyfontgenerator-feature-card:hover .fgwavyfontgenerator-card-text { transform: translateY(-2px); color: #46556b; }\r\n@keyframes fgwavyfontgeneratorIconSpin { 0% { transform: scale(1.05) rotate(0deg); } 100% { transform: scale(1.05) rotate(360deg); } }\r\n@keyframes fgwavyfontgeneratorPulseRing { 0% { box-shadow: 0 0 0 0 var(--card-glow); } 100% { box-shadow: 0 0 0 8px transparent; } }\r\n@media (max-width: 1100px) { .fgwavyfontgenerator-first-grid, .fgwavyfontgenerator-third-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fgwavyfontgenerator-second-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .fgwavyfontgenerator-first-grid .fgwavyfontgenerator-feature-card, .fgwavyfontgenerator-third-grid .fgwavyfontgenerator-feature-card { min-height: 286px; } }\r\n@media (max-width: 980px) { .fgwavyfontgenerator-content-section { padding: 64px 18px; } .fgwavyfontgenerator-first-grid, .fgwavyfontgenerator-second-grid, .fgwavyfontgenerator-third-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }\r\n@media (max-width: 640px) { .fgwavyfontgenerator-content-section { padding: 52px 16px; } .fgwavyfontgenerator-section-heading-wrap { margin-bottom: 28px; } .fgwavyfontgenerator-first-grid, .fgwavyfontgenerator-second-grid, .fgwavyfontgenerator-third-grid { grid-template-columns: 1fr; gap: 18px; } .fgwavyfontgenerator-first-grid .fgwavyfontgenerator-feature-card, .fgwavyfontgenerator-third-grid .fgwavyfontgenerator-feature-card { min-height: auto; } .fgwavyfontgenerator-feature-card { padding: 24px; border-radius: 20px; } .fgwavyfontgenerator-icon-wrap { width: 60px; min-width: 60px; height: 60px; min-height: 60px; border-radius: 18px; margin-bottom: 18px; } .fgwavyfontgenerator-icon-wrap::before { border-radius: 18px; } .fgwavyfontgenerator-icon-wrap i { font-size: 21px; } .fgwavyfontgenerator-card-title { font-size: 18px; } .fgwavyfontgenerator-card-text { font-size: 15px; } .fgwavyfontgenerator-process-badge { width: 30px; height: 30px; top: 16px; right: 16px; font-size: 12px; } }\r\n<\/style>\r\n<section class=\"fgwavyfontgenerator-content-section fgwavyfontgenerator-section-white fgwavyfontgenerator-interaction-one\">\r\n  <div class=\"fgwavyfontgenerator-inner-container\">\r\n    <div class=\"fgwavyfontgenerator-section-heading-wrap\">\r\n      <h2 class=\"fgwavyfontgenerator-section-title\">What Is a <span class=\"fgwavyfontgenerator-keyword-gradient\">Wavy Font Generator?<\/span><\/h2>\r\n      <h3 class=\"fgwavyfontgenerator-section-subtitle\">A Wavy Font Generator turns normal text into fluid, relaxed, ocean-like, and aesthetic copy-ready font styles for bios, captions, usernames, comments, headings, and creative profile text.<\/h3>\r\n    <\/div>\r\n    <div class=\"fgwavyfontgenerator-card-grid fgwavyfontgenerator-first-grid\">\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-water\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Wavy Text Styling<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">A Wavy Font Generator changes plain words into fluid, relaxed, ocean-like, and aesthetic font styles that feel more expressive, polished, and ready for creative use.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">Explore style <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-wand-magic-sparkles\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Wavy Mood Output<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Users can create text with wave movement, soft letter motion, flowing captions, and relaxed visual rhythm, giving names, captions, bios, and short messages a stronger visual personality.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">View details <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-palette\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Decorative Letter Looks<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">The generator helps transform ordinary letters into more memorable designs while keeping the final text simple to copy and reuse.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">See styling <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-feather-pointed\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Wavy Inspired Effects<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Use themed letter effects to make your words feel closer to a wavy look without needing manual editing or complex design software.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">Check style <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-regular fa-copy\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Copy Ready Output<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Generated wavy font styles can be copied quickly and pasted into bios, captions, comments, usernames, headings, or creative text fields.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">Copy faster <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-table-cells-large\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Multiple Font Options<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">A helpful generator shows several wavy style choices so you can compare different moods before choosing the best final version.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">Compare fonts <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-wand-magic-sparkles\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Creative Text Effects<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Combine font styles with symbols, spacing, separators, and decorative marks to make your wavy text feel more complete and eye-catching.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">Try effects <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-regular fa-eye\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Preview Before Copying<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Preview each wavy font style before copying so your final name, quote, title, or caption stays readable and attractive.<\/p>\r\n        <span class=\"fgwavyfontgenerator-card-cta\">Preview now <i class=\"fa-solid fa-arrow-right\" aria-hidden=\"true\"><\/i><\/span>\r\n      <\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"fgwavyfontgenerator-content-section fgwavyfontgenerator-section-soft fgwavyfontgenerator-interaction-two\">\r\n  <div class=\"fgwavyfontgenerator-inner-container\">\r\n    <div class=\"fgwavyfontgenerator-section-heading-wrap\">\r\n      <h2 class=\"fgwavyfontgenerator-section-title\">Why Use a <span class=\"fgwavyfontgenerator-keyword-gradient\">Wavy Font Generator?<\/span><\/h2>\r\n      <h3 class=\"fgwavyfontgenerator-section-subtitle\">It helps users create themed, attractive, and easy-to-copy text without manually searching for symbols, decorative characters, or complex design tools.<\/h3>\r\n    <\/div>\r\n    <div class=\"fgwavyfontgenerator-card-grid fgwavyfontgenerator-second-grid\">\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-bolt-lightning\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Fast Style Creation<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Create wavy font styles instantly instead of testing many apps, searching special characters, or formatting each letter by hand.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-water\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Wavy Visual Tone<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">The right font style gives your text a clearer mood, helping it feel more connected to the wavy theme and your creative idea.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-mobile-screen-button\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Social Media Friendly<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Use generated wavy text for Instagram bios, TikTok captions, Facebook posts, WhatsApp names, Discord profiles, and other social areas.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-regular fa-star\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Symbol Decoration<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Pair your font output with stars, dots, hearts, lines, brackets, arrows, or simple marks to build a cleaner decorative text layout.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-user-pen\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Profile Name Ideas<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Generated wavy styles can inspire unique display names, creator tags, usernames, gaming names, and profile headings.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-palette\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Branding and Design<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Wavy font styling can help creators, pages, fan profiles, and design sections build a more recognizable visual identity.<\/p>\r\n      <\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<section class=\"fgwavyfontgenerator-content-section fgwavyfontgenerator-section-white fgwavyfontgenerator-interaction-three\">\r\n  <div class=\"fgwavyfontgenerator-inner-container\">\r\n    <div class=\"fgwavyfontgenerator-section-heading-wrap\">\r\n      <h2 class=\"fgwavyfontgenerator-section-title\">How to Use a <span class=\"fgwavyfontgenerator-keyword-gradient\">Wavy Font Generator?<\/span><\/h2>\r\n      <h3 class=\"fgwavyfontgenerator-section-subtitle\">Type your text, choose a themed style, preview the result, copy your favorite version, and paste it wherever you want to use it.<\/h3>\r\n    <\/div>\r\n    <div class=\"fgwavyfontgenerator-card-grid fgwavyfontgenerator-third-grid\">\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">01<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-i-cursor\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Enter Your Text<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Type or paste a name, phrase, quote, caption, bio line, username, message, heading, or any short text you want to style.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">02<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-layer-group\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Choose a Style<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Browse the generated wavy font styles and choose the version that best matches your profile, post, design, or message mood.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">03<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-magnifying-glass\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Preview the Result<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Check the final look before using it, especially when the output includes symbols, spacing, decorations, or unusual letter forms.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">04<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-clipboard-check\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Copy the Output<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Use the copy option to grab your selected wavy font style without manually selecting, retyping, or losing the chosen format.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">05<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-regular fa-paper-plane\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Paste Anywhere<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Paste the styled text into bios, captions, comments, posts, usernames, messages, headings, or visual design tools.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">06<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-rotate\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Try More Styles<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Experiment with different words, symbols, spacing, and font options until the final wavy text feels clear and attractive.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">07<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-sliders\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Adjust the Look<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Shorten, rewrite, or refine your text if needed so the final font style stays balanced, readable, and platform-friendly.<\/p>\r\n      <\/article>\r\n      <article class=\"fgwavyfontgenerator-feature-card\">\r\n        <span class=\"fgwavyfontgenerator-process-badge\">08<\/span>\r\n        <div class=\"fgwavyfontgenerator-icon-wrap\">\r\n          <i class=\"fa-solid fa-circle-check\" aria-hidden=\"true\"><\/i>\r\n        <\/div>\r\n        <h4 class=\"fgwavyfontgenerator-card-title\">Use Final Version<\/h4>\r\n        <p class=\"fgwavyfontgenerator-card-text\">Once the wavy font style looks right, use it confidently in your profile, social content, design, message, or website section.<\/p>\r\n      <\/article>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n<script>\r\n(function () {\r\n  var wrapper = document.querySelector(\".fgwavyfontgenerator-content-wrapper\");\r\n  if (!wrapper) { return; }\r\n  var cards = wrapper.querySelectorAll(\".fgwavyfontgenerator-feature-card\");\r\n  cards.forEach(function (card, index) {\r\n    card.style.transitionDelay = ((index % 8) * 45) + \"ms\";\r\n    card.addEventListener(\"mousemove\", function (event) {\r\n      var rect = card.getBoundingClientRect();\r\n      var x = ((event.clientX - rect.left) \/ rect.width) * 100;\r\n      var y = ((event.clientY - rect.top) \/ rect.height) * 100;\r\n      var tiltX = ((x - 50) \/ 50) * 3.2;\r\n      var tiltY = ((50 - y) \/ 50) * 3.2;\r\n      card.style.setProperty(\"--fg-mx\", x + \"%\");\r\n      card.style.setProperty(\"--fg-my\", y + \"%\");\r\n      card.style.setProperty(\"--fg-tilt-x\", tiltX + \"deg\");\r\n      card.style.setProperty(\"--fg-tilt-y\", tiltY + \"deg\");\r\n    });\r\n    card.addEventListener(\"mouseleave\", function () {\r\n      card.style.setProperty(\"--fg-mx\", \"50%\"); card.style.setProperty(\"--fg-my\", \"18%\"); card.style.setProperty(\"--fg-tilt-x\", \"0deg\"); card.style.setProperty(\"--fg-tilt-y\", \"0deg\");\r\n    });\r\n  });\r\n  if (\"IntersectionObserver\" in window) {\r\n    var observer = new IntersectionObserver(function (entries) {\r\n      entries.forEach(function (entry) { if (entry.isIntersecting) { entry.target.classList.add(\"fgwavyfontgenerator-card-visible\"); observer.unobserve(entry.target); } });\r\n    }, { threshold: 0.16 });\r\n    cards.forEach(function (card) { observer.observe(card); });\r\n  } else { cards.forEach(function (card) { card.classList.add(\"fgwavyfontgenerator-card-visible\"); }); }\r\n})();\r\n<\/script>\r\n<\/div>\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":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-homepage.php","meta":{"footnotes":""},"class_list":["post-5564","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/pages\/5564","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/comments?post=5564"}],"version-history":[{"count":4,"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/pages\/5564\/revisions"}],"predecessor-version":[{"id":5571,"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/pages\/5564\/revisions\/5571"}],"wp:attachment":[{"href":"https:\/\/fontono.com\/wp-json\/wp\/v2\/media?parent=5564"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}