{"id":7024,"date":"2026-01-15T00:00:29","date_gmt":"2026-01-15T00:00:29","guid":{"rendered":"https:\/\/themeton.com\/?page_id=7024"},"modified":"2026-01-22T05:05:34","modified_gmt":"2026-01-22T05:05:34","slug":"lord-of-the-rings","status":"publish","type":"page","link":"https:\/\/themeton.com\/tools\/font-generator\/lord-of-the-rings\/","title":{"rendered":"Lord Of The Rings Font Generator : Ancient Elvish Script"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7024\" class=\"elementor elementor-7024\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3b2c31af e-con-full e-flex e-con e-parent\" data-id=\"3b2c31af\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-df61c9b elementor-widget elementor-widget-shortcode\" data-id=\"df61c9b\" 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\"><!-- START OF FILE Paste January 22, 2026 - 10:03 AM -->\r\n\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\r\n\r\n<style>\r\n    .pg-tool-wrapper {\r\n        \/* TYPOGRAPHY - Epic Fantasy *\/\r\n        --primary-font: \"Cinzel\", \"Palatino Linotype\", \"Book Antiqua\", serif; \/* Elegant headings *\/\r\n        --body-font: \"Garamond\", \"Georgia\", serif; \/* Book text *\/\r\n        \r\n        \/* PALETTE: Middle-earth (Forest, Gold, Parchment) *\/\r\n        --theme-deep: #1a2f1c; \/* Deep Forest Green *\/\r\n        --theme-ocean: #f5e6c8; \/* Ancient Parchment *\/\r\n        --theme-surface: #3e2723; \/* Dark Wood *\/\r\n        \r\n        \/* ACCENTS *\/\r\n        --theme-accent-1: #c5a059; \/* Elven Gold *\/\r\n        --theme-accent-2: #8fbc8f; \/* Lothlorien Green *\/\r\n        --theme-accent-3: #8b0000; \/* Mordor Red *\/\r\n        \r\n        --theme-text-main: #2c1810; \/* Dark Ink *\/\r\n        --theme-text-muted: #5d4037; \/* Faded Ink *\/\r\n        \r\n        \/* SHADOWS & DEPTH *\/\r\n        --shadow-deep: 0 20px 40px -5px rgba(0, 0, 0, 0.6), inset 0 0 50px rgba(62, 39, 35, 0.2);\r\n        --shadow-glow: 0 0 25px rgba(197, 160, 89, 0.4); \r\n        \r\n        \/* METRICS *\/\r\n        --transition-snap: all 0.2s ease-out;\r\n        --transition-smooth: all 0.5s cubic-bezier(0.25, 1, 0.5, 1);\r\n        \r\n        font-family: var(--body-font);\r\n        color: var(--theme-text-main);\r\n        line-height: 1.6;\r\n        width: 100%;\r\n        overflow-x: hidden;\r\n        \r\n        \/* BACKGROUND: Ancient Map Texture *\/\r\n        background: var(--theme-deep); \r\n        background-image: \r\n            radial-gradient(circle at 50% 50%, rgba(245, 230, 200, 0.05) 0%, transparent 60%),\r\n            repeating-linear-gradient(45deg, rgba(197, 160, 89, 0.05) 0px, rgba(197, 160, 89, 0.05) 1px, transparent 1px, transparent 20px);\r\n        background-attachment: fixed;\r\n    }\r\n\r\n    .pg-tool-wrapper * { box-sizing: border-box; }\r\n\r\n    \/* !IMPORTANT SAFETY FOR WORDPRESS *\/\r\n    .pg-container {\r\n        max-width: 1200px !important;\r\n        width: 100% !important;\r\n        margin: 0 auto !important;\r\n        padding-top: 40px !important;\r\n        padding-left: 20px !important;\r\n        padding-right: 20px !important;\r\n    }\r\n\r\n    .pg-background-container {\r\n        position: relative;\r\n        background: transparent;\r\n        padding-bottom: 40px; \r\n    }\r\n\r\n    .pg-hero-content-wrapper {\r\n        position: relative;\r\n        z-index: 2;\r\n        padding-top: 60px;\r\n        text-align: center;\r\n    }\r\n\r\n    \/* TITLE STYLE: One Ring Inscription Style *\/\r\n    .pg-main-title {\r\n        font-family: var(--primary-font);\r\n        font-size: 3.5rem;\r\n        font-weight: 400; \r\n        line-height: 1.2;\r\n        letter-spacing: 2px;\r\n        margin-bottom: 20px;\r\n        position: relative;\r\n        display: inline-block;\r\n        font-variant: small-caps;\r\n        \r\n        \/* Gold Gradient *\/\r\n        background: linear-gradient(to bottom, #ffd700 0%, #c5a059 50%, #8b6c42 100%);\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        \r\n        filter: drop-shadow(0 2px 0 #000);\r\n    }\r\n    \r\n    .pg-subtitle {\r\n        font-family: var(--body-font);\r\n        font-size: 1.2rem;\r\n        color: #d4c4a8;\r\n        max-width: 750px;\r\n        margin: 0 auto 50px;\r\n        font-weight: 400;\r\n        font-style: italic;\r\n        border-top: 1px solid var(--theme-accent-1);\r\n        border-bottom: 1px solid var(--theme-accent-1);\r\n        padding: 15px 0;\r\n        background: rgba(0,0,0,0.3);\r\n        letter-spacing: 1px;\r\n    }\r\n\r\n    \/* TOOL UI - ELVEN TOME *\/\r\n    .pg-generator-card {\r\n        background: var(--theme-ocean);\r\n        border: 12px solid var(--theme-surface); \r\n        width: 100%;\r\n        max-width: 1200px !important;\r\n        margin: 0 auto;\r\n        box-shadow: var(--shadow-deep); \r\n        overflow: hidden;\r\n        display: flex;\r\n        flex-direction: column;\r\n        transition: var(--transition-smooth);\r\n        position: relative;\r\n        border-radius: 8px;\r\n    }\r\n    \r\n    \/* Golden Corners *\/\r\n    .pg-generator-card::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 5px; left: 5px; right: 5px; bottom: 5px;\r\n        border: 2px solid var(--theme-accent-1);\r\n        border-radius: 4px;\r\n        pointer-events: none;\r\n        opacity: 0.7;\r\n    }\r\n\r\n    .pg-controls-wrapper {\r\n        padding: 40px;\r\n        background: #ece0c6; \/* Slightly darker parchment *\/\r\n        border-bottom: 2px solid var(--theme-accent-1);\r\n        display: grid;\r\n        grid-template-columns: 1.8fr 1.2fr;\r\n        gap: 40px;\r\n        align-items: end;\r\n    }\r\n\r\n    .pg-input-wrapper { \r\n        position: relative; \r\n        height: 100%;\r\n    }\r\n\r\n    .pg-text-input {\r\n        width: 100% !important;\r\n        height: 100% !important;\r\n        min-height: 160px !important;\r\n        padding: 25px !important;\r\n        border: 2px solid var(--theme-accent-1) !important;\r\n        border-radius: 4px !important;\r\n        font-family: var(--primary-font) !important;\r\n        font-size: 2rem !important;\r\n        font-weight: 400 !important;\r\n        font-style: italic !important;\r\n        transition: var(--transition-snap);\r\n        background: #fffcf5 !important;\r\n        color: #3e2723 !important;\r\n        box-sizing: border-box !important;\r\n        margin: 0 !important;\r\n        outline: none !important;\r\n        resize: none !important;\r\n        direction: ltr;\r\n        box-shadow: inset 0 0 20px rgba(197, 160, 89, 0.2) !important;\r\n    }\r\n    .pg-text-input:focus {\r\n        border-color: var(--theme-accent-2) !important;\r\n        box-shadow: 0 0 15px rgba(143, 188, 143, 0.4) !important;\r\n    }\r\n    .pg-text-input::placeholder { color: #a1887f !important; font-family: var(--body-font) !important; font-style: italic; }\r\n\r\n    .pg-features-group {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 25px;\r\n    }\r\n\r\n    .pg-filter-label {\r\n        font-size: 0.9rem;\r\n        font-weight: 600;\r\n        color: var(--theme-accent-1); \/* Gold Text *\/\r\n        text-transform: uppercase;\r\n        letter-spacing: 2px;\r\n        margin-bottom: 12px;\r\n        display: block;\r\n        font-family: var(--primary-font);\r\n        text-shadow: 1px 1px 0 rgba(0,0,0,0.1);\r\n    }\r\n\r\n    .pg-btn-row { \r\n        display: flex; \r\n        gap: 12px; \r\n        flex-wrap: wrap; \r\n    }\r\n\r\n    .pg-toggle-btn {\r\n        background: var(--theme-deep);\r\n        border: 1px solid var(--theme-accent-1);\r\n        padding: 10px 20px;\r\n        color: var(--theme-ocean);\r\n        font-size: 0.9rem;\r\n        font-weight: 400;\r\n        cursor: pointer;\r\n        transition: var(--transition-snap);\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 8px;\r\n        border-radius: 4px;\r\n        font-family: var(--primary-font);\r\n        text-transform: uppercase;\r\n    }\r\n    .pg-toggle-btn:hover {\r\n        background: var(--theme-accent-2);\r\n        color: var(--theme-deep);\r\n        border-color: var(--theme-accent-2);\r\n    }\r\n    .pg-toggle-btn.active {\r\n        background: var(--theme-accent-1);\r\n        color: var(--theme-surface);\r\n        border-color: var(--theme-accent-1);\r\n        box-shadow: 0 0 15px rgba(197, 160, 89, 0.5);\r\n    }\r\n\r\n    \/* ACTION BUTTONS - WP SAFE *\/\r\n    .pg-action-btn {\r\n        width: 48px !important;\r\n        height: 48px !important;\r\n        background: var(--theme-surface) !important;\r\n        border: 1px solid var(--theme-accent-1) !important;\r\n        color: var(--theme-accent-1) !important;\r\n        font-size: 1.4rem !important;\r\n        cursor: pointer !important;\r\n        transition: var(--transition-snap) !important;\r\n        display: flex !important;\r\n        align-items: center !important;\r\n        justify-content: center !important;\r\n        border-radius: 50% !important;\r\n        font-family: \"Segoe UI Emoji\", \"Noto Color Emoji\", \"Apple Color Emoji\", \"Segoe UI\", Tahoma, sans-serif !important;\r\n        margin: 0 !important;\r\n        padding: 0 !important;\r\n        box-sizing: border-box !important;\r\n        line-height: 1 !important;\r\n    }\r\n    \r\n    .pg-action-btn:hover {\r\n        background: var(--theme-accent-1) !important;\r\n        color: var(--theme-surface) !important;\r\n        transform: scale(1.1) rotate(45deg) !important;\r\n        box-shadow: 0 0 15px rgba(197, 160, 89, 0.6) !important;\r\n    }\r\n\r\n    \/* RESULTS *\/\r\n    .pg-results-area {\r\n        padding: 40px;\r\n        background: var(--theme-ocean);\r\n        position: relative;\r\n        background-image: url('data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMSIgY3k9IjEiIHI9IjEiIGZpbGw9InJnYmEoMCwgMCwgMCwgMC4wNSkiLz48L3N2Zz4=');\r\n    }\r\n    \r\n    .pg-result-list {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));\r\n        gap: 25px;\r\n        margin-bottom: 40px;\r\n        position: relative;\r\n        z-index: 1;\r\n    }\r\n\r\n    .pg-result-card {\r\n        background: #fff;\r\n        border: 1px solid var(--theme-accent-1);\r\n        padding: 24px;\r\n        position: relative;\r\n        cursor: pointer;\r\n        transition: var(--transition-snap);\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: space-between;\r\n        min-height: 160px;\r\n        border-radius: 4px;\r\n        overflow: hidden;\r\n    }\r\n    \r\n    \/* Hover - Magic Glow *\/\r\n    .pg-result-card:hover {\r\n        transform: translateY(-5px);\r\n        border-color: var(--theme-accent-2);\r\n        box-shadow: 0 0 25px rgba(143, 188, 143, 0.4);\r\n        background: #fbfdfb;\r\n    }\r\n    \r\n    \/* Elven Leaf Decoration *\/\r\n    .pg-result-card::after {\r\n        content: '\u2767';\r\n        position: absolute;\r\n        top: 5px; right: 10px;\r\n        font-size: 1.5rem;\r\n        color: var(--theme-accent-2);\r\n        opacity: 0.6;\r\n        font-family: serif;\r\n    }\r\n\r\n    .pg-card-header {\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n        margin-bottom: 15px;\r\n        padding-bottom: 12px;\r\n        border-bottom: 1px dashed var(--theme-accent-1);\r\n    }\r\n\r\n    .pg-card-tag {\r\n        font-size: 0.65rem;\r\n        text-transform: uppercase;\r\n        letter-spacing: 1px;\r\n        color: var(--theme-surface);\r\n        background: rgba(197, 160, 89, 0.2);\r\n        padding: 3px 10px;\r\n        font-weight: 600;\r\n        font-family: var(--primary-font);\r\n        border-radius: 20px;\r\n        border: 1px solid var(--theme-accent-1);\r\n    }\r\n    .pg-result-card:hover .pg-card-tag { background: var(--theme-accent-1); color: var(--theme-surface); }\r\n\r\n    .pg-copy-hint {\r\n        font-size: 0.75rem;\r\n        color: var(--theme-accent-2);\r\n        opacity: 0;\r\n        transition: 0.2s;\r\n        font-weight: 600;\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 6px;\r\n        text-transform: uppercase;\r\n    }\r\n    .pg-result-card:hover .pg-copy-hint { opacity: 1; }\r\n\r\n    .pg-card-preview {\r\n        font-family: var(--body-font);\r\n        font-size: 1.6rem;\r\n        color: var(--theme-text-main);\r\n        word-break: break-all;\r\n        line-height: 1.4;\r\n        font-weight: 400;\r\n        text-align: center;\r\n        padding: 10px 0;\r\n        max-height: 160px;\r\n        overflow-y: auto;\r\n        scrollbar-width: thin;\r\n        scrollbar-color: var(--theme-accent-1) transparent;\r\n        direction: ltr; \r\n    }\r\n    \r\n    .pg-card-preview::-webkit-scrollbar { width: 4px; }\r\n    .pg-card-preview::-webkit-scrollbar-track { background: var(--theme-ocean); }\r\n    .pg-card-preview::-webkit-scrollbar-thumb { background-color: var(--theme-accent-1); border-radius: 4px; }\r\n\r\n    .pg-load-more-wrapper { text-align: center; position: relative; z-index: 1; }\r\n    .pg-btn-load {\r\n        background: transparent;\r\n        color: var(--theme-accent-1);\r\n        border: 2px solid var(--theme-accent-1);\r\n        padding: 14px 40px;\r\n        font-weight: 600;\r\n        cursor: pointer;\r\n        transition: var(--transition-snap);\r\n        font-size: 1rem;\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 10px;\r\n        font-family: var(--primary-font);\r\n        border-radius: 50px;\r\n        text-transform: uppercase;\r\n        letter-spacing: 2px;\r\n    }\r\n    .pg-btn-load:hover {\r\n        background: var(--theme-accent-1);\r\n        color: var(--theme-surface);\r\n        box-shadow: 0 0 20px rgba(197, 160, 89, 0.5);\r\n    }\r\n\r\n    \/* SECTIONS *\/\r\n    .pg-section { \r\n        padding: 80px 0; \r\n        background: transparent !important; \r\n    }\r\n    \r\n    .pg-section-heading {\r\n        text-align: center;\r\n        margin-bottom: 60px;\r\n        max-width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 10px;\r\n        align-items: center;\r\n        border-bottom: 1px solid var(--theme-accent-1);\r\n        padding-bottom: 20px;\r\n    }\r\n    .pg-section-heading h2 {\r\n        font-family: var(--primary-font);\r\n        font-size: 3rem;\r\n        font-weight: 400;\r\n        color: var(--theme-accent-1); \r\n        letter-spacing: 1px;\r\n        line-height: 1;\r\n        font-variant: small-caps;\r\n    }\r\n    .pg-section-heading p {\r\n        font-size: 1.1rem;\r\n        color: #a8a29e;\r\n        max-width: 600px;\r\n    }\r\n\r\n    .pg-info-card {\r\n        background: rgba(30, 47, 32, 0.8); \r\n        padding: 30px;\r\n        border: 1px solid var(--theme-accent-2); \r\n        transition: var(--transition-smooth);\r\n        text-align: center;\r\n        position: relative;\r\n        overflow: hidden;\r\n        height: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n        align-items: center;\r\n        border-radius: 4px;\r\n        box-shadow: 0 10px 30px rgba(0,0,0,0.3);\r\n    }\r\n    \r\n    .pg-info-card:hover {\r\n        transform: translateY(-8px);\r\n        border-color: var(--theme-accent-1);\r\n        background: #253826;\r\n        box-shadow: 0 0 25px rgba(197, 160, 89, 0.2);\r\n    }\r\n    \r\n    .pg-info-icon {\r\n        font-size: 2rem;\r\n        margin-bottom: 20px;\r\n        color: var(--theme-accent-1);\r\n        background: rgba(0, 0, 0, 0.2);\r\n        width: 64px;\r\n        height: 64px;\r\n        display: inline-flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border-radius: 50%;\r\n        transition: var(--transition-snap);\r\n        border: 1px solid var(--theme-accent-1);\r\n    }\r\n    .pg-info-card:hover .pg-info-icon {\r\n        background: var(--theme-accent-1);\r\n        color: var(--theme-deep);\r\n        transform: rotate(45deg);\r\n    }\r\n    \r\n    .pg-info-card h3 { \r\n        font-size: 1.4rem; \r\n        margin-bottom: 10px; \r\n        font-weight: 400; \r\n        color: #f5e6c8; \r\n        font-family: var(--primary-font);\r\n        letter-spacing: 1px;\r\n        font-variant: small-caps;\r\n    }\r\n    .pg-info-card p { \r\n        font-size: 1rem; \r\n        color: #d1d5db; \r\n        line-height: 1.6; \r\n    }\r\n\r\n    \/* Grids *\/\r\n    .pg-grid-6 {\r\n        display: grid;\r\n        grid-template-columns: repeat(3, 1fr);\r\n        gap: 30px;\r\n    }\r\n\r\n    .pg-grid-4 {\r\n        display: grid;\r\n        grid-template-columns: repeat(4, 1fr);\r\n        gap: 25px;\r\n    }\r\n\r\n    \/* TOAST *\/\r\n    .pg-toast {\r\n        visibility: hidden;\r\n        min-width: 280px;\r\n        background: var(--theme-accent-1);\r\n        color: var(--theme-surface);\r\n        text-align: center;\r\n        border-radius: 4px;\r\n        padding: 16px 28px;\r\n        position: fixed;\r\n        z-index: 999;\r\n        left: 50%;\r\n        bottom: 40px;\r\n        transform: translateX(-50%) translateY(20px);\r\n        font-weight: 600;\r\n        box-shadow: 0 0 30px rgba(197, 160, 89, 0.5);\r\n        opacity: 0;\r\n        transition: all 0.2s;\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 12px;\r\n        font-family: var(--primary-font);\r\n        letter-spacing: 1px;\r\n        font-variant: small-caps;\r\n        border: 2px solid var(--theme-surface);\r\n    }\r\n    .pg-toast.show { \r\n        visibility: visible; \r\n        opacity: 1; \r\n        transform: translateX(-50%) translateY(0);\r\n    }\r\n\r\n    \/* RESPONSIVE *\/\r\n    @media (max-width: 800px) {\r\n        .pg-container { \r\n            padding-top: 20px !important; \r\n            padding-left: 10px !important; \r\n            padding-right: 10px !important; \r\n        }\r\n\r\n        .pg-hero-content-wrapper { padding-top: 30px; }\r\n        .pg-main-title { font-size: 2.2rem; margin-bottom: 15px; }\r\n        .pg-subtitle { font-size: 0.95rem; margin-bottom: 30px; border: none; background: transparent; padding: 0; }\r\n\r\n        .pg-generator-card { width: 100% !important; border-width: 4px; }\r\n        .pg-controls-wrapper { \r\n            grid-template-columns: 1fr; \r\n            gap: 20px; \r\n            padding: 10px;\r\n        }\r\n\r\n        .pg-text-input { \r\n            min-height: 120px !important; \r\n            font-size: 1.5rem !important; \r\n            padding: 15px !important; \r\n        }\r\n\r\n        .pg-features-group {\r\n            flex-direction: row;\r\n            flex-wrap: wrap;\r\n            justify-content: space-between;\r\n            gap: 10px;\r\n        }\r\n        \r\n        .pg-filter-label { margin-bottom: 4px; font-size: 0.75rem; }\r\n\r\n        .pg-btn-row {\r\n            overflow-x: auto; \r\n            gap: 8px; \r\n            padding-bottom: 4px; \r\n            scrollbar-width: none; \r\n        }\r\n        .pg-btn-row::-webkit-scrollbar { display: none; }\r\n\r\n        .pg-toggle-btn { padding: 8px 14px; font-size: 0.8rem; white-space: nowrap; }\r\n        .pg-action-btn { width: 40px !important; height: 40px !important; font-size: 1.1rem !important; flex-shrink: 0; }\r\n\r\n        .pg-results-area { padding: 15px; }\r\n        .pg-result-list { grid-template-columns: 1fr; gap: 15px; }\r\n        .pg-result-card { padding: 20px; min-height: auto; }\r\n        .pg-card-preview { font-size: 1.3rem; padding: 5px 0; }\r\n\r\n        .pg-section { padding: 50px 0; }\r\n        \r\n        .pg-grid-6, .pg-grid-4 { \r\n            grid-template-columns: repeat(2, 1fr);\r\n            gap: 15px; \r\n        }\r\n        \r\n        .pg-info-card { \r\n            padding: 20px !important; \r\n            display: flex;\r\n            flex-direction: column; \r\n            align-items: center; \r\n            text-align: center;\r\n            gap: 10px;\r\n        }\r\n        .pg-info-icon { margin-bottom: 10px; width: 50px; height: 50px; font-size: 1.4rem; flex-shrink: 0; }\r\n        \r\n        .pg-section-heading { \r\n            margin-bottom: 30px;\r\n            padding-bottom: 15px;\r\n        }\r\n        .pg-section-heading h2 { font-size: 2rem; }\r\n    }\r\n<\/style>\r\n\r\n<div class=\"pg-tool-wrapper\">\r\n\r\n    <div class=\"pg-background-container\">\r\n        \r\n        <div class=\"pg-container pg-hero-content-wrapper\">\r\n            <h1 class=\"pg-main-title\">Lord Of The Rings Font Generator: Ancient Elvish Script<\/h1>\r\n            <p class=\"pg-subtitle\">Speak, friend, and enter... Transform your text into elegant Elven scripts, Dwarven runes, and ancient epic fantasy styles.<\/p>\r\n            \r\n            <div class=\"pg-generator-card\">\r\n                \r\n                <div class=\"pg-controls-wrapper\">\r\n                    <div class=\"pg-input-wrapper\">\r\n                        <textarea class=\"pg-text-input\" id=\"pgInputText\" placeholder=\"One Ring to rule them all...\"><\/textarea>\r\n                    <\/div>\r\n                    \r\n                    <div class=\"pg-features-group\">\r\n                        <div>\r\n                            <span class=\"pg-filter-label\">Realm<\/span>\r\n                            <div class=\"pg-btn-row\">\r\n                                <button class=\"pg-toggle-btn active\" id=\"pgBtnAll\">All Realms<\/button>\r\n                                <button class=\"pg-toggle-btn\" id=\"pgBtnElven\">Elven<\/button>\r\n                                <button class=\"pg-toggle-btn\" id=\"pgBtnDwarf\">Dwarf<\/button>\r\n                                <button class=\"pg-toggle-btn\" id=\"pgBtnMordor\">Mordor<\/button>\r\n                                <button class=\"pg-toggle-btn\" id=\"pgBtnHobbit\">Hobbit<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div>\r\n                            <span class=\"pg-filter-label\">Artifacts<\/span>\r\n                            <div class=\"pg-btn-row\">\r\n                                <button class=\"pg-action-btn\" data-insert=\"\ud83d\udc8d\" title=\"Ring\">\ud83d\udc8d<\/button>\r\n                                <button class=\"pg-action-btn\" data-insert=\"\ud83d\udde1\ufe0f\" title=\"Sword\">\ud83d\udde1\ufe0f<\/button>\r\n                                <button class=\"pg-action-btn\" data-insert=\"\ud83c\udff9\" title=\"Bow\">\ud83c\udff9<\/button>\r\n                                <button class=\"pg-action-btn\" data-insert=\"\ud83c\udf43\" title=\"Leaf\">\ud83c\udf43<\/button>\r\n                                <button class=\"pg-action-btn\" data-insert=\"\u26f0\ufe0f\" title=\"Mountain\">\u26f0\ufe0f<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n                    <\/div>\r\n                <\/div>\r\n\r\n                <div class=\"pg-results-area\">\r\n                    <div class=\"pg-result-list\" id=\"pgResultList\">\r\n                    <\/div>\r\n                    \r\n                    <div class=\"pg-load-more-wrapper\">\r\n                        <button class=\"pg-btn-load\" id=\"pgLoadMoreBtn\"><i class=\"fa-solid fa-scroll\"><\/i> Decipher More Runes<\/button>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n\t    <section class=\"pg-section\">\r\n        <div class=\"pg-container\">\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t<\/div>\r\n\t<\/section>\r\n\t\r\n    <section class=\"pg-section\">\r\n        <div class=\"pg-container\">\r\n            <div class=\"pg-section-heading\">\r\n                <h2>Scripts of Middle-earth<\/h2>\r\n                <p>Typography inspired by the diverse cultures of Arda.<\/p>\r\n            <\/div>\r\n            \r\n            <div class=\"pg-grid-6\">\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-leaf\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Elven Script<\/h3>\r\n                        <p>Flowing, elegant, and cursive styles mimicking Tengwar inscriptions.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-hammer\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Dwarven Runes<\/h3>\r\n                        <p>Angular, heavy, and block-like characters resembling stone carvings.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-fire\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Black Speech<\/h3>\r\n                        <p>Sharp, jagged, and gothic text styles from the Land of Shadow.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-house-chimney\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Hobbit Hand<\/h3>\r\n                        <p>Friendly, rounded, and rustic lettering from the Shire.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-crown\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Numenorean<\/h3>\r\n                        <p>Regal, formal serif styles for the Kings of Men.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-wand-magic-sparkles\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Wizard's Note<\/h3>\r\n                        <p>Italicized, scholarly script for arcane manuscripts.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <section class=\"pg-section\">\r\n        <div class=\"pg-container\">\r\n            <div class=\"pg-section-heading\">\r\n                <h2>Adventurer's Guide<\/h2>\r\n                <p>Where to use these legendary fonts.<\/p>\r\n            <\/div>\r\n            <div class=\"pg-grid-4\">\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-brands fa-d-and-d\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>D&D Campaigns<\/h3>\r\n                        <p>Create authentic handouts, maps, and character sheets.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-book-open\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Fan Fiction<\/h3>\r\n                        <p>Chapter titles and letters that immerse readers in the world.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-gamepad\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>MMO Names<\/h3>\r\n                        <p>Generate unique, lore-friendly names for your characters.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-solid fa-pen-nib\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Calligraphy<\/h3>\r\n                        <p>Practice digital calligraphy with beautiful script references.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/section>\r\n\r\n    <div id=\"pgToast\" class=\"pg-toast\"><i class=\"fa-solid fa-ring\"><\/i> PRECIOUSS! COPIED!<\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n    \r\n    \/\/ --- MAP DEFINITIONS (Top Level for Safety) ---\r\n    const ALPHABET = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n    \r\n    \/\/ Font Maps\r\n    const mapScript = \"\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\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\udce90123456789\";\r\n    const mapScriptBold = \"\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\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\ud835\udfce\ud835\udfcf\ud835\udfd0\ud835\udfd1\ud835\udfd2\ud835\udfd3\ud835\udfd4\ud835\udfd5\ud835\udfd6\ud835\udfd7\";\r\n    const mapFraktur = \"\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\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\u21280123456789\";\r\n    const mapFrakturBold = \"\ud835\udd86\ud835\udd87\ud835\udd88\ud835\udd89\ud835\udd8a\ud835\udd8b\ud835\udd8c\ud835\udd8d\ud835\udd8e\ud835\udd8f\ud835\udd90\ud835\udd91\ud835\udd92\ud835\udd93\ud835\udd94\ud835\udd95\ud835\udd96\ud835\udd97\ud835\udd98\ud835\udd99\ud835\udd9a\ud835\udd9b\ud835\udd9c\ud835\udd9d\ud835\udd9e\ud835\udd9f\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\udd850123456789\";\r\n    const mapDoubleStruck = \"\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\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\ud835\udfd8\ud835\udfd9\ud835\udfda\ud835\udfdb\ud835\udfdc\ud835\udfdd\ud835\udfde\ud835\udfdf\ud835\udfe0\ud835\udfe1\";\r\n    const mapSmallCaps = \"\u1d00\u0299\u1d04\u1d05\u1d07\u0493\u0262\u029c\u026a\u1d0a\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\u01eb\u0280s\u1d1b\u1d1c\u1d20\u1d21x\u028f\u1d22\u1d00\u0299\u1d04\u1d05\u1d07\u0493\u0262\u029c\u026a\u1d0a\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\u01eb\u0280s\u1d1b\u1d1c\u1d20\u1d21x\u028f\u1d220123456789\";\r\n    const mapMono = \"\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\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\ud835\udff6\ud835\udff7\ud835\udff8\ud835\udff9\ud835\udffa\ud835\udffb\ud835\udffc\ud835\udffd\ud835\udffe\ud835\udfff\";\r\n    const mapWide = \"\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\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\uff10\uff11\uff12\uff13\uff14\uff15\uff16\uff17\uff18\uff19\";\r\n    const mapSerifBold = \"\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\ud835\udc00\ud835\udc01\ud835\udc02\ud835\udc03\ud835\udc04\ud835\udc05\ud835\udc06\ud835\udc07\ud835\udc08\ud835\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\ud835\udfce\ud835\udfcf\ud835\udfd0\ud835\udfd1\ud835\udfd2\ud835\udfd3\ud835\udfd4\ud835\udfd5\ud835\udfd6\ud835\udfd7\";\r\n    const mapSerifItalic = \"\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\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\udc4d0123456789\";\r\n    const mapBold = \"\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\ud835\udc00\ud835\udc01\ud835\udc02\ud835\udc03\ud835\udc04\ud835\udc05\ud835\udc06\ud835\udc07\ud835\udc08\ud835\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\ud835\udfce\ud835\udfcf\ud835\udfd0\ud835\udfd1\ud835\udfd2\ud835\udfd3\ud835\udfd4\ud835\udfd5\ud835\udfd6\ud835\udfd7\"; \r\n\r\n    const STYLES = [\r\n        \/\/ --- ELVEN (Script\/Flowing) ---\r\n        { name: \"Elven Script\", type: \"map\", map: mapScript, tag: \"Elven\" },\r\n        { name: \"High Elven\", type: \"map\", map: mapScriptBold, tag: \"Elven\" },\r\n        { name: \"Lothlorien\", type: \"map-surround\", map: mapScript, prefix: \"\ud83c\udf3f \", suffix: \" \ud83c\udf3f\", tag: \"Elven\" },\r\n        { name: \"Rivendell\", type: \"map-surround\", map: mapScriptBold, prefix: \"\u2728 \", suffix: \" \u2728\", tag: \"Elven\" },\r\n        { name: \"Moonlight\", type: \"map-surround\", map: mapScript, prefix: \"\ud83c\udf19 \", suffix: \" \ud83c\udf19\", tag: \"Elven\" },\r\n        { name: \"Star Light\", type: \"map-surround\", map: mapScriptBold, prefix: \"\u2b50 \", suffix: \" \u2b50\", tag: \"Elven\" },\r\n        \r\n        \/\/ --- DWARF (Block\/Runic) ---\r\n        { name: \"Dwarven Runes\", type: \"map\", map: mapDoubleStruck, tag: \"Dwarf\" },\r\n        { name: \"Iron Hills\", type: \"map\", map: mapSerifBold, tag: \"Dwarf\" },\r\n        { name: \"Moria\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\u2692\ufe0f \", suffix: \" \u2692\ufe0f\", tag: \"Dwarf\" },\r\n        { name: \"Mountain King\", type: \"map-surround\", map: mapBold, prefix: \"\u26f0\ufe0f \", suffix: \" \ud83d\udc51\", tag: \"Dwarf\" },\r\n        { name: \"Gold Hoard\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\ud83d\udcb0 \", suffix: \" \ud83d\udcb0\", tag: \"Dwarf\" },\r\n        { name: \"Axe Wielder\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83e\ude93 \", suffix: \"\", tag: \"Dwarf\" },\r\n        \r\n        \/\/ --- MORDOR (Dark\/Fraktur) ---\r\n        { name: \"Black Speech\", type: \"map\", map: mapFrakturBold, tag: \"Mordor\" },\r\n        { name: \"Dark Tower\", type: \"map\", map: mapFraktur, tag: \"Mordor\" },\r\n        { name: \"Eye of Sauron\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\ud83d\udc41\ufe0f \", suffix: \" \ud83d\udc41\ufe0f\", tag: \"Mordor\" },\r\n        { name: \"One Ring\", type: \"map-surround\", map: mapScript, prefix: \"\ud83d\udc8d \", suffix: \" \ud83d\udc8d\", tag: \"Mordor\" },\r\n        { name: \"Nazgul\", type: \"map-surround\", map: mapFraktur, prefix: \"\ud83e\udddf \", suffix: \" \ud83d\udde1\ufe0f\", tag: \"Mordor\" },\r\n        { name: \"Mount Doom\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\ud83c\udf0b \", suffix: \" \ud83d\udd25\", tag: \"Mordor\" },\r\n        \r\n        \/\/ --- HOBBIT (Rustic\/Small Caps) ---\r\n        { name: \"Hobbit Hand\", type: \"map\", map: mapSmallCaps, tag: \"Hobbit\" },\r\n        { name: \"Shire Life\", type: \"map\", map: mapMono, tag: \"Hobbit\" },\r\n        { name: \"Second Breakfast\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83e\udd53 \", suffix: \" \ud83c\udf73\", tag: \"Hobbit\" },\r\n        { name: \"Bag End\", type: \"map-surround\", map: mapMono, prefix: \"\ud83c\udfe1 \", suffix: \" \ud83c\udf3f\", tag: \"Hobbit\" },\r\n        { name: \"Pipe Weed\", type: \"map-surround\", map: mapSerifItalic, prefix: \"\ud83c\udf43 \", suffix: \" \ud83d\udca8\", tag: \"Hobbit\" },\r\n        { name: \"Adventure\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83c\udf92 \", suffix: \" \ud83d\uddfa\ufe0f\", tag: \"Hobbit\" },\r\n        \r\n        \/\/ --- 100+ VARIATIONS ---\r\n        { name: \"Wizard\", type: \"map-surround\", map: mapSerifItalic, prefix: \"\ud83e\uddd9\u200d\u2642\ufe0f \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Grey Pilgrim\", type: \"map-surround\", map: mapMono, prefix: \"\ud83c\udf2b\ufe0f \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"White Wizard\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\u26aa \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Staff\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83e\udd62 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Eagle\", type: \"map-surround\", map: mapWide, prefix: \"\ud83e\udd85 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Ent\", type: \"map-surround\", map: mapBold, prefix: \"\ud83c\udf33 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Treebeard\", type: \"map-surround\", map: mapMono, prefix: \"\ud83e\udeb5 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Leaf of Lorien\", type: \"map-surround\", map: mapScript, prefix: \"\ud83c\udf43 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Galadriel\", type: \"map-surround\", map: mapScriptBold, prefix: \"\ud83e\udddd\u200d\u2640\ufe0f \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Legolas\", type: \"map-surround\", map: mapScript, prefix: \"\ud83c\udff9 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Arwen\", type: \"map-surround\", map: mapScriptBold, prefix: \"\ud83d\udc8e \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Evenstar\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\u2728 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Gimli\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83e\uddd4 \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Thorin\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\ud83d\udee1\ufe0f \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Arkenstone\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\ud83d\udc8e \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Durin\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83d\udd28 \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Mithril\", type: \"map-surround\", map: mapMono, prefix: \"\ud83d\udc55 \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Key to Erebor\", type: \"map-surround\", map: mapFraktur, prefix: \"\ud83d\udddd\ufe0f \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Map\", type: \"map-surround\", map: mapMono, prefix: \"\ud83d\uddfa\ufe0f \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Bilbo\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83d\udcd4 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Frodo\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83d\udde1\ufe0f \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Samwise\", type: \"map-surround\", map: mapMono, prefix: \"\ud83e\udd54 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Pippin\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83c\udf4f \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Merry\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83c\udf86 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Gollum\", type: \"map-surround\", map: mapFraktur, prefix: \"\ud83d\udc1f \", suffix: \" sss\", tag: \"Mordor\" },\r\n        { name: \"Precious\", type: \"map-surround\", map: mapScriptBold, prefix: \"\ud83d\udc8d \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Aragorn\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83d\udc51 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Strider\", type: \"map-surround\", map: mapMono, prefix: \"\ud83e\udde5 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Anduril\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\ud83d\udde1\ufe0f \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Boromir\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83d\udcef \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Gondor\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83c\udf33 \", suffix: \" \ud83c\udff0\", tag: \"Elven\" },\r\n        { name: \"Rohan\", type: \"map-surround\", map: mapSerifItalic, prefix: \"\ud83d\udc0e \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Horse Lord\", type: \"map-surround\", map: mapBold, prefix: \"\ud83c\udfc7 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Helm's Deep\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\ud83c\udff0 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Saruman\", type: \"map-surround\", map: mapFraktur, prefix: \"\ud83d\udd2e \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Palantir\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\ud83d\udd2e \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Uruk-hai\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\ud83d\udc79 \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Orc\", type: \"map-surround\", map: mapFraktur, prefix: \"\ud83d\udc7a \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Goblin\", type: \"map-surround\", map: mapMono, prefix: \"\ud83d\udc7f \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Balrog\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\ud83d\udd25 \", suffix: \" \ud83d\udc7f\", tag: \"Mordor\" },\r\n        { name: \"Shadowfax\", type: \"map-surround\", map: mapSerifItalic, prefix: \"\ud83d\udc0e \", suffix: \" \u2728\", tag: \"Elven\" },\r\n        { name: \"Sting\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83d\udde1\ufe0f \", suffix: \" \ud83d\udd35\", tag: \"Hobbit\" },\r\n        { name: \"Light of Earendil\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\ud83e\uddf4 \", suffix: \" \u2728\", tag: \"Elven\" },\r\n        { name: \"Fellowship\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83e\udddd\u200d\u2642\ufe0f\ud83e\uddd4\ud83d\udc74\ud83d\udc71\u200d\u2642\ufe0f\ud83d\udc76 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Nine\", type: \"map-surround\", map: mapFraktur, prefix: \"9\ufe0f\u20e3 \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Three Rings\", type: \"map-surround\", map: mapScript, prefix: \"3\ufe0f\u20e3 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Seven Rings\", type: \"map-surround\", map: mapSerifBold, prefix: \"7\ufe0f\u20e3 \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"One Ring\", type: \"map-surround\", map: mapScriptBold, prefix: \"1\ufe0f\u20e3 \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Dragon Gold\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\ud83d\udc09 \", suffix: \" \ud83d\udcb0\", tag: \"Dwarf\" },\r\n        { name: \"Smaug\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\ud83d\udc32 \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Lonely Mountain\", type: \"map-surround\", map: mapBold, prefix: \"\ud83c\udfd4\ufe0f \", suffix: \"\", tag: \"Dwarf\" },\r\n        { name: \"Barrel Rider\", type: \"map-surround\", map: mapMono, prefix: \"\ud83d\udee2\ufe0f \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Burglar\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83e\udd2b \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Beorn\", type: \"map-surround\", map: mapBold, prefix: \"\ud83d\udc3b \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Shelob\", type: \"map-surround\", map: mapFraktur, prefix: \"\ud83d\udd77\ufe0f \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Dead Marshes\", type: \"map-surround\", map: mapMono, prefix: \"\ud83d\udc7b \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Black Gate\", type: \"map-surround\", map: mapFrakturBold, prefix: \"\u26e9\ufe0f \", suffix: \"\", tag: \"Mordor\" },\r\n        { name: \"Minas Tirith\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83c\udfef \", suffix: \" \ud83c\udff3\ufe0f\", tag: \"Elven\" },\r\n        { name: \"White Tree\", type: \"map-surround\", map: mapScript, prefix: \"\ud83c\udf33 \", suffix: \" \u26aa\", tag: \"Elven\" },\r\n        { name: \"Beacon\", type: \"map-surround\", map: mapBold, prefix: \"\ud83d\udd25 \", suffix: \" \ud83c\udfd4\ufe0f\", tag: \"Elven\" },\r\n        { name: \"Pony\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83d\udc34 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Green Dragon\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83c\udf7a \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Ale\", type: \"map-surround\", map: mapMono, prefix: \"\ud83c\udf7b \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Fireworks\", type: \"map-surround\", map: mapScriptBold, prefix: \"\ud83c\udf86 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Birthday\", type: \"map-surround\", map: mapSerifItalic, prefix: \"\ud83c\udf82 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Present\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83c\udf81 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Riddle\", type: \"map-surround\", map: mapMono, prefix: \"\u2753 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Secret\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\ud83e\udd2b \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Hidden\", type: \"map-surround\", map: mapFraktur, prefix: \"\ud83d\ude48 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"Path\", type: \"map-surround\", map: mapWide, prefix: \"\ud83d\udee4\ufe0f \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Quest\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83d\udcdc \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Journey\", type: \"map-surround\", map: mapScript, prefix: \"\ud83d\udeb6 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Home\", type: \"map-surround\", map: mapSmallCaps, prefix: \"\ud83c\udfe0 \", suffix: \"\", tag: \"Hobbit\" },\r\n        { name: \"West\", type: \"map-surround\", map: mapSerifItalic, prefix: \"\ud83c\udf05 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Ship\", type: \"map-surround\", map: mapDoubleStruck, prefix: \"\u26f5 \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"Grey Havens\", type: \"map-surround\", map: mapScript, prefix: \"\ud83c\udf0a \", suffix: \"\", tag: \"Elven\" },\r\n        { name: \"End\", type: \"map-surround\", map: mapSerifBold, prefix: \"\ud83d\udd1a \", suffix: \"\", tag: \"Elven\" }\r\n    ];\r\n\r\n    const inputEl = document.getElementById('pgInputText');\r\n    const resultList = document.getElementById('pgResultList');\r\n    const loadMoreBtn = document.getElementById('pgLoadMoreBtn');\r\n    const toast = document.getElementById('pgToast');\r\n    \r\n    const btnAll = document.getElementById('pgBtnAll');\r\n    const btnElven = document.getElementById('pgBtnElven');\r\n    const btnDwarf = document.getElementById('pgBtnDwarf');\r\n    const btnMordor = document.getElementById('pgBtnMordor');\r\n    const btnHobbit = document.getElementById('pgBtnHobbit');\r\n    const actionBtns = document.querySelectorAll('.pg-action-btn');\r\n\r\n    let visibleLimit = 16; \r\n    let currentFilter = 'all';\r\n\r\n    const mapChar = (c, map) => {\r\n        const idx = ALPHABET.indexOf(c);\r\n        const mapArr = Array.from(map);\r\n        return (idx !== -1 && mapArr[idx]) ? mapArr[idx] : c;\r\n    };\r\n\r\n    const transformText = (text, style) => {\r\n        if (!text) return \"\";\r\n        let chars = Array.from(text);\r\n        let result = \"\";\r\n\r\n        if (style.type === \"map\") {\r\n            result = chars.map(c => mapChar(c, style.map)).join(\"\");\r\n        }\r\n        else if (style.type === \"surround\") {\r\n            result = style.prefix + text + style.suffix;\r\n        }\r\n        else if (style.type === \"map-surround\") {\r\n            let mapped = chars.map(c => mapChar(c, style.map)).join(\"\");\r\n            result = style.prefix + mapped + style.suffix;\r\n        }\r\n        else if (style.type === \"combine\") {\r\n            result = chars.map(c => c + style.mark).join(\"\");\r\n        }\r\n        else if (style.type === \"spaced\") {\r\n            result = chars.join(\" \");\r\n        }\r\n        else if (style.type === \"join\") {\r\n            result = chars.join(style.joiner);\r\n        }\r\n        else {\r\n            result = text;\r\n        }\r\n        return result;\r\n    };\r\n\r\n    const render = () => {\r\n        resultList.innerHTML = '';\r\n        const inputText = inputEl.value || \"One Ring\";\r\n        \r\n        let filtered = STYLES;\r\n        if(currentFilter !== 'all') {\r\n            filtered = STYLES.filter(s => s.tag === currentFilter);\r\n        }\r\n\r\n        const limit = Math.min(visibleLimit, filtered.length);\r\n\r\n        for(let i=0; i<limit; i++) {\r\n            const style = filtered[i];\r\n            const finalText = transformText(inputText, style);\r\n\r\n            const card = document.createElement('div');\r\n            card.className = 'pg-result-card';\r\n            \r\n            card.innerHTML = `\r\n                <div class=\"pg-card-header\">\r\n                    <span class=\"pg-card-tag\">${style.name}<\/span>\r\n                    <div class=\"pg-copy-hint\"><i class=\"fa-regular fa-copy\"><\/i> Copy<\/div>\r\n                <\/div>\r\n                <div class=\"pg-card-preview\">${finalText}<\/div>\r\n            `;\r\n            \r\n            card.addEventListener('click', () => copyToClipboard(finalText));\r\n            resultList.appendChild(card);\r\n        }\r\n\r\n        loadMoreBtn.style.display = (visibleLimit >= filtered.length) ? 'none' : 'inline-flex';\r\n    };\r\n\r\n    const copyToClipboard = (text) => {\r\n        if(navigator.clipboard) {\r\n            navigator.clipboard.writeText(text).then(() => showToast());\r\n        } else {\r\n            const ta = document.createElement(\"textarea\");\r\n            ta.value = text;\r\n            document.body.appendChild(ta);\r\n            ta.select();\r\n            document.execCommand(\"copy\");\r\n            ta.remove();\r\n            showToast();\r\n        }\r\n    };\r\n\r\n    const showToast = () => {\r\n        toast.classList.add('show');\r\n        setTimeout(() => toast.classList.remove('show'), 2000);\r\n    };\r\n\r\n    inputEl.addEventListener('input', render);\r\n    \r\n    actionBtns.forEach(btn => {\r\n        btn.addEventListener('click', () => {\r\n            const symbol = btn.dataset.insert;\r\n            inputEl.value += symbol;\r\n            render();\r\n        });\r\n    });\r\n\r\n    const setFilter = (filter, btn) => {\r\n        currentFilter = filter;\r\n        [btnAll, btnElven, btnDwarf, btnMordor, btnHobbit].forEach(b => b.classList.remove('active'));\r\n        btn.classList.add('active');\r\n        visibleLimit = 16; \r\n        render();\r\n    };\r\n\r\n    btnAll.addEventListener('click', () => setFilter('all', btnAll));\r\n    btnElven.addEventListener('click', () => setFilter('Elven', btnElven));\r\n    btnDwarf.addEventListener('click', () => setFilter('Dwarf', btnDwarf));\r\n    btnMordor.addEventListener('click', () => setFilter('Mordor', btnMordor));\r\n    btnHobbit.addEventListener('click', () => setFilter('Hobbit', btnHobbit));\r\n\r\n    loadMoreBtn.addEventListener('click', () => {\r\n        visibleLimit += 16;\r\n        render();\r\n    });\r\n\r\n    render();\r\n});\r\n<\/script><\/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":7051,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-7024","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages\/7024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/comments?post=7024"}],"version-history":[{"count":4,"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages\/7024\/revisions"}],"predecessor-version":[{"id":7031,"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages\/7024\/revisions\/7031"}],"up":[{"embeddable":true,"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages\/7051"}],"wp:attachment":[{"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/media?parent=7024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}