{"id":7077,"date":"2026-01-01T00:00:25","date_gmt":"2026-01-01T00:00:25","guid":{"rendered":"https:\/\/themeton.com\/?page_id=7077"},"modified":"2026-01-22T05:58:10","modified_gmt":"2026-01-22T05:58:10","slug":"jersey","status":"publish","type":"page","link":"https:\/\/themeton.com\/tools\/font-generator\/jersey\/","title":{"rendered":"Jersey Font Generator : Varsity Block Sports Style Text"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7077\" class=\"elementor elementor-7077\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7daff591 e-con-full e-flex e-con e-parent\" data-id=\"7daff591\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37ba9dff elementor-widget elementor-widget-shortcode\" data-id=\"37ba9dff\" 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 - 11:20AM -->\r\n\r\n<!-- START OF FILE Paste January 18, 2026 - 6:15 PM -->\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 - System Fonts Stack for Performance (No External CDNs) *\/\r\n        --primary-font: \"Impact\", \"Arial Black\", \"Segoe UI\", \"Roboto\", sans-serif;\r\n        --body-font: \"Consolas\", \"Monaco\", \"Courier New\", monospace; \r\n        \r\n        \/* PALETTE: Varsity Night League *\/\r\n        --theme-turf: #02040a; \/* Deepest Background *\/\r\n        --theme-jersey: #0f1c3f; \/* Navy Blue *\/\r\n        --theme-surface: #1e2d52; \/* Card bg *\/\r\n        \r\n        \/* ACCENTS *\/\r\n        --theme-gold: #ffb81c; \/* Varsity Gold *\/\r\n        --theme-crimson: #d91c2b; \/* Athletic Red *\/\r\n        --theme-steel: #94a3b8; \/* Silver\/Grey *\/\r\n        --theme-white: #f1f5f9;\r\n        \r\n        \/* SHADOWS & GLOWS *\/\r\n        --shadow-stadium: 0 25px 50px -12px rgba(0, 0, 0, 0.9);\r\n        --glow-gold: 0 0 15px rgba(255, 184, 28, 0.4);\r\n        \r\n        \/* METRICS *\/\r\n        --transition-sport: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275); \/* Bouncy athletic feel *\/\r\n        \r\n        font-family: \"Segoe UI\", system-ui, sans-serif; \/* Fallback for general UI *\/\r\n        color: var(--theme-white);\r\n        line-height: 1.6;\r\n        width: 100%;\r\n        overflow-x: hidden;\r\n        \r\n        background: var(--theme-turf);\r\n        \/* Jersey Mesh Pattern *\/\r\n        background-image: \r\n            radial-gradient(var(--theme-surface) 15%, transparent 16%),\r\n            radial-gradient(var(--theme-surface) 15%, transparent 16%);\r\n        background-size: 20px 20px;\r\n        background-position: 0 0, 10px 10px;\r\n        background-attachment: fixed;\r\n    }\r\n\r\n    .pg-tool-wrapper * { box-sizing: border-box; }\r\n\r\n    \/* MANDATORY SAFETY OVERRIDES *\/\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    \/* HERO SECTION *\/\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    .pg-main-title {\r\n        font-family: var(--primary-font);\r\n        font-size: 4rem; \/* Big Block Type *\/\r\n        text-transform: uppercase;\r\n        font-style: italic;\r\n        font-weight: 900; \r\n        line-height: 1;\r\n        letter-spacing: 1px;\r\n        color: var(--theme-white);\r\n        margin-bottom: 20px;\r\n        position: relative;\r\n        display: inline-block;\r\n        \/* Athletic Text Stroke Effect *\/\r\n        text-shadow: \r\n            3px 3px 0px var(--theme-jersey), \r\n            -1px -1px 0 var(--theme-gold);\r\n        transform: skew(-5deg); \/* Varsity Tilt *\/\r\n    }\r\n    \r\n    .pg-subtitle {\r\n        font-family: \"Segoe UI\", sans-serif;\r\n        font-size: 1.2rem;\r\n        color: var(--theme-steel);\r\n        max-width: 700px;\r\n        margin: 0 auto 50px;\r\n        font-weight: 500;\r\n        background: rgba(15, 28, 63, 0.9);\r\n        padding: 15px 30px;\r\n        border-radius: 4px;\r\n        border-left: 5px solid var(--theme-gold);\r\n        backdrop-filter: blur(5px);\r\n        text-transform: uppercase;\r\n        letter-spacing: 1px;\r\n    }\r\n\r\n    \/* TOOL UI CARD *\/\r\n    .pg-generator-card {\r\n        background: var(--theme-jersey);\r\n        border: 2px 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-stadium); \r\n        overflow: hidden;\r\n        display: flex;\r\n        flex-direction: column;\r\n        transition: var(--transition-sport);\r\n        position: relative;\r\n        border-radius: 16px;\r\n    }\r\n    \r\n    \/* Top Accent Line *\/\r\n    .pg-generator-card::before {\r\n        content: '';\r\n        position: absolute;\r\n        top: 0; left: 0; right: 0;\r\n        height: 6px;\r\n        background: linear-gradient(90deg, var(--theme-gold) 0%, var(--theme-crimson) 100%);\r\n        z-index: 10;\r\n    }\r\n\r\n    .pg-controls-wrapper {\r\n        padding: 40px;\r\n        background: linear-gradient(180deg, rgba(15,28,63,0.9) 0%, rgba(2,4,10,0.8) 100%);\r\n        border-bottom: 1px solid var(--theme-surface);\r\n        display: grid;\r\n        grid-template-columns: 1.8fr 1.2fr;\r\n        gap: 40px;\r\n        align-items: center;\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: 180px !important;\r\n        padding: 25px !important;\r\n        border: 2px solid var(--theme-surface) !important;\r\n        border-radius: 12px !important;\r\n        font-family: var(--primary-font) !important;\r\n        font-style: italic;\r\n        font-size: 2.5rem !important; \/* Huge input text *\/\r\n        text-transform: uppercase;\r\n        font-weight: 700 !important;\r\n        transition: var(--transition-sport);\r\n        background: #080f24 !important;\r\n        color: var(--theme-white) !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    }\r\n    .pg-text-input:focus {\r\n        border-color: var(--theme-gold) !important;\r\n        box-shadow: 0 0 20px rgba(255, 184, 28, 0.2) !important;\r\n        transform: translateY(-2px);\r\n    }\r\n    .pg-text-input::placeholder { color: var(--theme-surface) !important; font-style: normal; opacity: 0.5; }\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.8rem;\r\n        font-weight: 800;\r\n        color: var(--theme-gold);\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    }\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    \/* Style Toggle Buttons *\/\r\n    .pg-toggle-btn {\r\n        background: rgba(255, 255, 255, 0.03);\r\n        border: 1px solid var(--theme-surface);\r\n        padding: 12px 24px;\r\n        color: var(--theme-steel);\r\n        font-size: 0.9rem;\r\n        font-weight: 700;\r\n        cursor: pointer;\r\n        transition: var(--transition-sport);\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 8px;\r\n        border-radius: 4px; \/* Boxy look *\/\r\n        font-family: var(--primary-font);\r\n        text-transform: uppercase;\r\n        letter-spacing: 1px;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n    .pg-toggle-btn:hover {\r\n        background: var(--theme-surface);\r\n        color: var(--theme-white);\r\n        transform: skew(-10deg);\r\n    }\r\n    .pg-toggle-btn.active {\r\n        background: var(--theme-crimson);\r\n        color: #fff;\r\n        border-color: var(--theme-crimson);\r\n        box-shadow: 0 5px 15px rgba(217, 28, 43, 0.4);\r\n    }\r\n\r\n    \/* Action Circle Buttons *\/\r\n    .pg-action-btn {\r\n        width: 50px;\r\n        height: 50px;\r\n        background: var(--theme-surface);\r\n        border: 2px solid transparent;\r\n        color: var(--theme-gold);\r\n        font-size: 1.2rem;\r\n        cursor: pointer;\r\n        transition: var(--transition-sport);\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border-radius: 50%; \/* Circle *\/\r\n        position: relative;\r\n    }\r\n    .pg-action-btn:hover {\r\n        background: var(--theme-gold);\r\n        color: var(--theme-jersey);\r\n        transform: scale(1.1) rotate(10deg);\r\n        box-shadow: 0 0 15px var(--theme-gold);\r\n    }\r\n\r\n    \/* RESULTS AREA - Asymmetric Grid *\/\r\n    .pg-results-area {\r\n        padding: 40px;\r\n        background: #050a14;\r\n        position: relative;\r\n    }\r\n    \r\n    .pg-result-list {\r\n        display: grid;\r\n        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\r\n        grid-auto-rows: minmax(140px, auto);\r\n        gap: 20px;\r\n        margin-bottom: 40px;\r\n        position: relative;\r\n        z-index: 1;\r\n    }\r\n\r\n    \/* Special Grid Spans for Asymmetry *\/\r\n    .pg-span-2 { grid-column: span 2; }\r\n    @media (max-width: 800px) { .pg-span-2 { grid-column: span 1; } }\r\n\r\n    \/* Result Card Design *\/\r\n    .pg-result-card {\r\n        background: #0f1c3f;\r\n        border: 1px solid #1e2d52;\r\n        padding: 20px;\r\n        position: relative;\r\n        cursor: pointer;\r\n        transition: var(--transition-sport);\r\n        display: flex;\r\n        flex-direction: column;\r\n        justify-content: space-between;\r\n        border-radius: 8px;\r\n        overflow: hidden;\r\n    }\r\n    \r\n    \/* Decoration on Card *\/\r\n    .pg-result-card::after {\r\n        content: '\\f091'; \/* FontAwesome Trophy *\/\r\n        font-family: \"Font Awesome 6 Free\";\r\n        font-weight: 900;\r\n        position: absolute;\r\n        bottom: -20px;\r\n        right: -20px;\r\n        font-size: 6rem;\r\n        color: rgba(255, 255, 255, 0.02);\r\n        z-index: 0;\r\n        transform: rotate(-15deg);\r\n        transition: var(--transition-sport);\r\n    }\r\n\r\n    \/* Hover Effect: Lift & Glow *\/\r\n    .pg-result-card:hover {\r\n        transform: translateY(-8px) skew(-1deg);\r\n        border-color: var(--theme-gold);\r\n        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 0 2px var(--theme-gold) inset;\r\n        background: #15244d;\r\n        z-index: 2;\r\n    }\r\n    .pg-result-card:hover::after {\r\n        color: rgba(255, 184, 28, 0.1);\r\n        transform: rotate(0deg) scale(1.1);\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: 10px;\r\n        border-bottom: 2px dashed rgba(255,255,255,0.1);\r\n        position: relative;\r\n        z-index: 2;\r\n    }\r\n\r\n    .pg-card-tag {\r\n        font-size: 0.75rem;\r\n        text-transform: uppercase;\r\n        font-weight: 800;\r\n        color: var(--theme-gold);\r\n        background: rgba(255, 184, 28, 0.1);\r\n        padding: 4px 10px;\r\n        border-radius: 2px;\r\n        font-family: var(--primary-font);\r\n        letter-spacing: 1px;\r\n    }\r\n\r\n    .pg-copy-hint {\r\n        font-size: 0.75rem;\r\n        color: var(--theme-white);\r\n        opacity: 0;\r\n        transform: translateX(10px);\r\n        transition: 0.3s;\r\n        font-weight: 700;\r\n        display: flex;\r\n        align-items: center;\r\n        gap: 6px;\r\n        background: var(--theme-crimson);\r\n        padding: 4px 10px;\r\n        border-radius: 20px;\r\n    }\r\n    .pg-result-card:hover .pg-copy-hint { opacity: 1; transform: translateX(0); }\r\n\r\n    .pg-card-preview {\r\n        font-family: \"Segoe UI Symbol\", \"Arial Unicode MS\", sans-serif; \/* Fallbacks for unicode *\/\r\n        font-size: 2rem;\r\n        color: var(--theme-white); \r\n        word-break: break-word;\r\n        line-height: 1.2;\r\n        font-weight: 400;\r\n        text-align: center;\r\n        padding: 10px 0;\r\n        position: relative;\r\n        z-index: 2;\r\n        \/* Varsity Shadow on Result Text *\/\r\n        text-shadow: 2px 2px 0 rgba(0,0,0,0.5);\r\n    }\r\n    \r\n    \/* BUTTON: LOAD MORE *\/\r\n    .pg-load-more-wrapper { text-align: center; position: relative; z-index: 1; margin-top: 20px; }\r\n    .pg-btn-load {\r\n        background: transparent;\r\n        color: var(--theme-gold);\r\n        border: 2px solid var(--theme-gold);\r\n        padding: 15px 40px;\r\n        font-weight: 800;\r\n        cursor: pointer;\r\n        transition: var(--transition-sport);\r\n        font-size: 1rem;\r\n        display: inline-flex;\r\n        align-items: center;\r\n        gap: 12px;\r\n        font-family: var(--primary-font);\r\n        text-transform: uppercase;\r\n        letter-spacing: 2px;\r\n        clip-path: polygon(10% 0, 100% 0, 100% 70%, 90% 100%, 0 100%, 0 30%); \/* Jersey Tag Shape *\/\r\n    }\r\n    .pg-btn-load:hover {\r\n        background: var(--theme-gold);\r\n        color: #02040a;\r\n        box-shadow: 0 0 30px rgba(255, 184, 28, 0.4);\r\n        transform: scale(1.05);\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: left;\r\n        margin-bottom: 50px;\r\n        max-width: 100%;\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 10px;\r\n        border-left: 6px solid var(--theme-crimson);\r\n        padding-left: 30px;\r\n    }\r\n    .pg-section-heading h2 {\r\n        font-family: var(--primary-font);\r\n        font-size: 3rem;\r\n        font-weight: 900;\r\n        font-style: italic;\r\n        color: var(--theme-white);\r\n        text-transform: uppercase;\r\n        letter-spacing: -1px;\r\n        line-height: 1;\r\n        text-shadow: 4px 4px 0 rgba(0,0,0,0.5);\r\n    }\r\n    .pg-section-heading p {\r\n        font-size: 1.1rem;\r\n        color: var(--theme-steel);\r\n        max-width: 600px;\r\n    }\r\n\r\n    \/* Info Cards (Grid Items) *\/\r\n    .pg-info-card {\r\n        background: linear-gradient(135deg, #0f1c3f 0%, #080f24 100%); \r\n        padding: 30px;\r\n        border: 1px solid var(--theme-surface); \r\n        transition: var(--transition-sport);\r\n        text-align: left;\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: flex-start;\r\n        border-radius: 12px;\r\n        border-top: 4px solid transparent;\r\n    }\r\n    \r\n    .pg-info-card:hover {\r\n        transform: translateY(-10px);\r\n        border-top-color: var(--theme-gold);\r\n        box-shadow: 0 15px 40px -10px rgba(0,0,0,0.6);\r\n    }\r\n    \r\n    .pg-info-icon {\r\n        font-size: 2rem;\r\n        margin-bottom: 20px;\r\n        color: var(--theme-white);\r\n        background: var(--theme-crimson);\r\n        width: 60px;\r\n        height: 60px;\r\n        display: inline-flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        border-radius: 8px; \/* Blocky *\/\r\n        transition: var(--transition-sport);\r\n        box-shadow: 4px 4px 0 rgba(0,0,0,0.3);\r\n        transform: rotate(-5deg);\r\n    }\r\n    .pg-info-card:hover .pg-info-icon {\r\n        transform: rotate(0deg) scale(1.1);\r\n        background: var(--theme-gold);\r\n        color: var(--theme-turf);\r\n    }\r\n    \r\n    .pg-info-card h3 { \r\n        font-size: 1.3rem; \r\n        margin-bottom: 8px; \r\n        font-weight: 800; \r\n        color: var(--theme-white); \r\n        font-family: var(--primary-font);\r\n        text-transform: uppercase;\r\n        font-style: italic;\r\n    }\r\n    .pg-info-card p { \r\n        font-size: 0.95rem; \r\n        color: var(--theme-steel); \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-white);\r\n        color: var(--theme-turf);\r\n        text-align: center;\r\n        border-radius: 4px;\r\n        padding: 16px 24px;\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: 800;\r\n        font-size: 1rem;\r\n        box-shadow: 0 0 30px rgba(255, 255, 255, 0.3);\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        text-transform: uppercase;\r\n        border-left: 8px solid var(--theme-gold);\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: 15px !important; \r\n            padding-right: 15px !important; \r\n        }\r\n\r\n        .pg-hero-content-wrapper { padding-top: 30px; }\r\n        .pg-main-title { font-size: 2.5rem; margin-bottom: 15px; }\r\n        .pg-subtitle { font-size: 0.95rem; margin-bottom: 30px; border-left-width: 3px; }\r\n\r\n        .pg-generator-card { width: 100% !important; border-width: 1px; }\r\n        .pg-controls-wrapper { \r\n            grid-template-columns: 1fr; \r\n            gap: 20px; \r\n            padding: 15px;\r\n        }\r\n\r\n        .pg-text-input { \r\n            min-height: 140px !important; \r\n            font-size: 1.8rem !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: 15px;\r\n        }\r\n        \r\n        .pg-filter-label { margin-bottom: 6px; font-size: 0.7rem; }\r\n\r\n        .pg-btn-row { \r\n            overflow-x: auto; \r\n            gap: 10px; \r\n            padding-bottom: 8px; \r\n            scrollbar-width: none; \r\n        }\r\n        .pg-btn-row::-webkit-scrollbar { display: none; }\r\n\r\n        .pg-toggle-btn { padding: 10px 16px; font-size: 0.75rem; white-space: nowrap; }\r\n        .pg-action-btn { width: 45px; height: 45px; font-size: 1rem; 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: 15px; min-height: auto; }\r\n        .pg-card-preview { font-size: 1.5rem; 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        }\r\n        .pg-info-icon { margin-bottom: 15px; width: 50px; height: 50px; font-size: 1.5rem; }\r\n        \r\n        .pg-section-heading { \r\n            text-align: center; \r\n            border-left: none; \r\n            padding-left: 0; \r\n            align-items: center;\r\n            margin-bottom: 30px;\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\">Jersey Font Generator: Varsity Block Sports Text<\/h1>\r\n            <p class=\"pg-subtitle\">Varsity Number Style \u2013 Number-heavy block lettering optimized for teams, scores, and athletic branding. Create Pro-League styles instantly.<\/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=\"TEAM NAME 99\"><\/textarea>\r\n                    <\/div>\r\n                    \r\n                    <div class=\"pg-features-group\">\r\n                        <div>\r\n                            <span class=\"pg-filter-label\">Active Kit<\/span>\r\n                            <div class=\"pg-btn-row\">\r\n                                <button class=\"pg-toggle-btn active\" id=\"pgBtnAll\">All Leagues<\/button>\r\n                                <button class=\"pg-toggle-btn\" id=\"pgBtnBlock\">Block<\/button>\r\n                                <button class=\"pg-toggle-btn\" id=\"pgBtnOutline\">Outline<\/button>\r\n                                <button class=\"pg-toggle-btn\" id=\"pgBtnNum\">Numbers<\/button>\r\n                            <\/div>\r\n                        <\/div>\r\n\r\n                        <div>\r\n                            <span class=\"pg-filter-label\">Quick Plays<\/span>\r\n                            <div class=\"pg-btn-row\">\r\n                                <button class=\"pg-action-btn\" data-preset=\"1\" title=\"Number 1\">\u2776<\/button>\r\n                                <button class=\"pg-action-btn\" data-preset=\"10\" title=\"Number 10\">\u2469<\/button>\r\n                                <button class=\"pg-action-btn\" data-preset=\"MVP\" title=\"MVP Text\">MVP<\/button>\r\n                                <button class=\"pg-action-btn\" data-preset=\"GOAT\" title=\"GOAT Text\">\ud83d\udc10<\/button>\r\n                                <button class=\"pg-action-btn\" data-preset=\"WIN\" title=\"Win Text\">\ud83c\udfc6<\/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-plus\"><\/i> Load More Styles<\/button>\r\n                    <\/div>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\t\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\r\n    <section class=\"pg-section\">\r\n        <div class=\"pg-container\">\r\n            <div class=\"pg-section-heading\">\r\n                <h2>League Features<\/h2>\r\n                <p>Professional grade text styles for your social roster.<\/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-shirt\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Jersey Block<\/h3>\r\n                        <p>Thick, heavy slab characters that mimic the printed names on back of sports jerseys.<\/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-border-all\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Double Stitched<\/h3>\r\n                        <p>Outline styles (Double-Struck) representing the stitched borders of varsity letters.<\/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-ranking-star\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Scoreboard Mono<\/h3>\r\n                        <p>Digital styling reminiscent of stadium LED scoreboards and timers.<\/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-medal\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Mascot Icons<\/h3>\r\n                        <p>Auto-injects sports trophies, medals, and equipment into your text strings.<\/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-italic\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Speed Italics<\/h3>\r\n                        <p>Forward-slanted bold text that implies motion and speed on the field.<\/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-users\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Squad Spacing<\/h3>\r\n                        <p>Wide-spaced lettering layouts perfect for curved text or banners.<\/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>Game Day Uses<\/h2>\r\n                <p>Where to deploy your new varsity typography.<\/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-instagram\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Roster Bios<\/h3>\r\n                        <p>Make your profile look like a team sheet with bold numbers.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-brands fa-youtube\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Highlight Reels<\/h3>\r\n                        <p>Stand out in video titles and descriptions for sports clips.<\/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-trophy\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Fantasy Leagues<\/h3>\r\n                        <p> intimidate opponents with aggressive team name typography.<\/p>\r\n                    <\/div>\r\n                <\/div>\r\n                <div class=\"pg-info-card\">\r\n                    <div class=\"pg-info-icon\"><i class=\"fa-brands fa-discord\"><\/i><\/div>\r\n                    <div>\r\n                        <h3>Clan Tags<\/h3>\r\n                        <p>Use enclosed numbers and brackets for gaming clan identifiers.<\/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-check-double\"><\/i> COPIED TO CLIPBOARD!<\/div>\r\n\r\n<\/div>\r\n\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', () => {\r\n    \r\n    \/\/ ALPHABET MAPS FOR UNICODE TRANSFORMATION\r\n    const MAPS = {\r\n        normal: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',\r\n        bold: '\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        boldSans: '\ud835\uddee\ud835\uddef\ud835\uddf0\ud835\uddf1\ud835\uddf2\ud835\uddf3\ud835\uddf4\ud835\uddf5\ud835\uddf6\ud835\uddf7\ud835\uddf8\ud835\uddf9\ud835\uddfa\ud835\uddfb\ud835\uddfc\ud835\uddfd\ud835\uddfe\ud835\uddff\ud835\ude00\ud835\ude01\ud835\ude02\ud835\ude03\ud835\ude04\ud835\ude05\ud835\ude06\ud835\ude07\ud835\uddd4\ud835\uddd5\ud835\uddd6\ud835\uddd7\ud835\uddd8\ud835\uddd9\ud835\uddda\ud835\udddb\ud835\udddc\ud835\udddd\ud835\uddde\ud835\udddf\ud835\udde0\ud835\udde1\ud835\udde2\ud835\udde3\ud835\udde4\ud835\udde5\ud835\udde6\ud835\udde7\ud835\udde8\ud835\udde9\ud835\uddea\ud835\uddeb\ud835\uddec\ud835\udded\ud835\udfec\ud835\udfed\ud835\udfee\ud835\udfef\ud835\udff0\ud835\udff1\ud835\udff2\ud835\udff3\ud835\udff4\ud835\udff5',\r\n        italicBold: '\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        italicSans: '\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\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\ude210123456789',\r\n        double: '\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        mono: '\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        script: '\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\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        fraktur: '\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        smallCaps: '\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        circled: '\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\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\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468',\r\n        circledBlack: '\ud83c\udd50\ud83c\udd51\ud83c\udd52\ud83c\udd53\ud83c\udd54\ud83c\udd55\ud83c\udd56\ud83c\udd57\ud83c\udd58\ud83c\udd59\ud83c\udd5a\ud83c\udd5b\ud83c\udd5c\ud83c\udd5d\ud83c\udd5e\ud83c\udd5f\ud83c\udd60\ud83c\udd61\ud83c\udd62\ud83c\udd63\ud83c\udd64\ud83c\udd65\ud83c\udd66\ud83c\udd67\ud83c\udd68\ud83c\udd69\ud83c\udd50\ud83c\udd51\ud83c\udd52\ud83c\udd53\ud83c\udd54\ud83c\udd55\ud83c\udd56\ud83c\udd57\ud83c\udd58\ud83c\udd59\ud83c\udd5a\ud83c\udd5b\ud83c\udd5c\ud83c\udd5d\ud83c\udd5e\ud83c\udd5f\ud83c\udd60\ud83c\udd61\ud83c\udd62\ud83c\udd63\ud83c\udd64\ud83c\udd65\ud83c\udd66\ud83c\udd67\ud83c\udd68\ud83c\udd69\u2776\u2777\u2778\u2779\u277a\u277b\u277c\u277d\u277e',\r\n        squared: '\ud83c\udd30\ud83c\udd31\ud83c\udd32\ud83c\udd33\ud83c\udd34\ud83c\udd35\ud83c\udd36\ud83c\udd37\ud83c\udd38\ud83c\udd39\ud83c\udd3a\ud83c\udd3b\ud83c\udd3c\ud83c\udd3d\ud83c\udd3e\ud83c\udd3f\ud83c\udd40\ud83c\udd41\ud83c\udd42\ud83c\udd43\ud83c\udd44\ud83c\udd45\ud83c\udd46\ud83c\udd47\ud83c\udd48\ud83c\udd49\ud83c\udd30\ud83c\udd31\ud83c\udd32\ud83c\udd33\ud83c\udd34\ud83c\udd35\ud83c\udd36\ud83c\udd37\ud83c\udd38\ud83c\udd39\ud83c\udd3a\ud83c\udd3b\ud83c\udd3c\ud83c\udd3d\ud83c\udd3e\ud83c\udd3f\ud83c\udd40\ud83c\udd41\ud83c\udd42\ud83c\udd43\ud83c\udd44\ud83c\udd45\ud83c\udd46\ud83c\udd47\ud83c\udd48\ud83c\udd490123456789',\r\n        squaredBlack: '\ud83c\udd70\ud83c\udd71\ud83c\udd72\ud83c\udd84\ud83c\udd74\ud83c\udd75\ud83c\udd76\ud83c\udd77\ud83c\udd78\ud83c\udd79\ud83c\udd7a\ud83c\udd7b\ud83c\udd7c\ud83c\udd7d\ud83c\udd7e\ud83c\udd7f\ud83c\udd80\ud83c\udd81\ud83c\udd82\ud83c\udd83\ud83c\udd84\ud83c\udd85\ud83c\udd86\ud83c\udd87\ud83c\udd88\ud83c\udd89\ud83c\udd70\ud83c\udd71\ud83c\udd72\ud83c\udd84\ud83c\udd74\ud83c\udd75\ud83c\udd76\ud83c\udd77\ud83c\udd78\ud83c\udd79\ud83c\udd7a\ud83c\udd7b\ud83c\udd7c\ud83c\udd7d\ud83c\udd7e\ud83c\udd7f\ud83c\udd80\ud83c\udd81\ud83c\udd82\ud83c\udd83\ud83c\udd84\ud83c\udd85\ud83c\udd86\ud83c\udd87\ud83c\udd88\ud83c\udd890123456789'\r\n    };\r\n\r\n    \/\/ Helper to transform text\r\n    const transform = (text, mapName) => {\r\n        if (!MAPS[mapName]) return text;\r\n        const target = MAPS[mapName];\r\n        return text.split('').map(char => {\r\n            const index = MAPS.normal.indexOf(char);\r\n            return index !== -1 && target[index] ? target.substr(index * (target.length === MAPS.normal.length ? 1 : 2), (target.length === MAPS.normal.length ? 1 : 2)) : char;\r\n        }).join('');\r\n    };\r\n    \r\n    \/\/ Fix because some maps in JS string might map oddly due to surrogate pairs (simple fix for common chars)\r\n    \/\/ Re-writing transform logic to be robust for surrogate pairs in emoji\/math symbols\r\n    const getChar = (char, mapName) => {\r\n        const idx = MAPS.normal.indexOf(char);\r\n        if(idx === -1) return char;\r\n        \r\n        \/\/ Handle array-based mapping (better for surrogate pairs)\r\n        const getArray = (str) => Array.from(str);\r\n        const mapArr = getArray(MAPS[mapName]);\r\n        \r\n        \/\/ Simple adjust for numbers at end\r\n        if (idx >= 52) { \/\/ Is number\r\n             \/\/ Numbers start at index 52 in normal map\r\n             \/\/ In other maps they might be at end. \r\n             \/\/ Logic: Just use the map array\r\n        }\r\n        return mapArr[idx] || char;\r\n    };\r\n\r\n    const convert = (text, type) => {\r\n        return text.split('').map(c => getChar(c, type)).join('');\r\n    };\r\n\r\n    \/\/ GENERATE 100+ STYLES LOGIC\r\n    const createStyles = () => {\r\n        const list = [];\r\n        \r\n        \/\/ 1. VARSITY OUTLINE (Double Struck)\r\n        list.push({ name: \"Varsity Outline\", cat: \"Outline\", fn: t => convert(t, 'double') });\r\n        list.push({ name: \"Team Outline spaced\", cat: \"Outline\", fn: t => convert(t.split('').join(' '), 'double') });\r\n        list.push({ name: \"Varsity Bracketed\", cat: \"Outline\", fn: t => `\u3010${convert(t, 'double')}\u3011` });\r\n        list.push({ name: \"Double Struck x2\", cat: \"Outline\", fn: t => convert(t, 'double') + \" \" + convert(t, 'double') });\r\n        \r\n        \/\/ 2. BLOCK BOLD (Jersey Standard)\r\n        list.push({ name: \"Jersey Bold\", cat: \"Block\", fn: t => convert(t, 'boldSans') });\r\n        list.push({ name: \"Pro Serif Bold\", cat: \"Block\", fn: t => convert(t, 'bold') });\r\n        list.push({ name: \"Heavy Italic\", cat: \"Block\", fn: t => convert(t, 'italicBold') });\r\n        list.push({ name: \"Wide Jersey\", cat: \"Block\", fn: t => convert(t.split('').join(' '), 'boldSans') });\r\n        \r\n        \/\/ 3. NUMBERS & SYMBOLS\r\n        list.push({ name: \"Circled Number\", cat: \"Num\", fn: t => convert(t, 'circled') });\r\n        list.push({ name: \"Black Ball Number\", cat: \"Num\", fn: t => convert(t, 'circledBlack') });\r\n        list.push({ name: \"Squared Plate\", cat: \"Num\", fn: t => convert(t, 'squared') });\r\n        list.push({ name: \"Black Box\", cat: \"Num\", fn: t => convert(t, 'squaredBlack') });\r\n        \r\n        \/\/ 4. DECORATED STYLES (100+ variations via loops)\r\n        \r\n        const decorators = [\r\n            { l: \"\ud83c\udfc0 \", r: \" \ud83c\udfc0\", n: \"Basketball\" },\r\n            { l: \"\ud83c\udfc8 \", r: \" \ud83c\udfc8\", n: \"Football\" },\r\n            { l: \"\u26bd \", r: \" \u26bd\", n: \"Soccer\" },\r\n            { l: \"\u26be \", r: \" \u26be\", n: \"Baseball\" },\r\n            { l: \"\ud83c\udfc6 \", r: \" \ud83c\udfc6\", n: \"Trophy\" },\r\n            { l: \"\ud83e\udd47 \", r: \" \ud83e\udd47\", n: \"Medal\" },\r\n            { l: \"\u26a1 \", r: \" \u26a1\", n: \"Power\" },\r\n            { l: \"\ud83d\udd25 \", r: \" \ud83d\udd25\", n: \"Heat\" },\r\n            { l: \"\u2b50 \", r: \" \u2b50\", n: \"Star\" },\r\n            { l: \"\ud83d\udc51 \", r: \" \ud83d\udc51\", n: \"King\" },\r\n            { l: \"\ud83d\udee1\ufe0f \", r: \" \ud83d\udee1\ufe0f\", n: \"Defense\" },\r\n            { l: \"\u2694\ufe0f \", r: \" \u2694\ufe0f\", n: \"Offense\" },\r\n            { l: \"\ud83e\udd81 \", r: \" \ud83e\udd81\", n: \"Lions\" },\r\n            { l: \"\ud83e\udd85 \", r: \" \ud83e\udd85\", n: \"Eagles\" },\r\n            { l: \"\ud83d\udc2f \", r: \" \ud83d\udc2f\", n: \"Tigers\" },\r\n            { l: \"\ud83e\udd88 \", r: \" \ud83e\udd88\", n: \"Sharks\" },\r\n            { l: \"\u2620\ufe0f \", r: \" \u2620\ufe0f\", n: \"Pirates\" },\r\n            { l: \"\u2693 \", r: \" \u2693\", n: \"Mariners\" },\r\n            { l: \"\u2708\ufe0f \", r: \" \u2708\ufe0f\", n: \"Jets\" },\r\n            { l: \"\ud83d\ude80 \", r: \" \ud83d\ude80\", n: \"Rockets\" }\r\n        ];\r\n\r\n        \/\/ Combine Decorators with Main Fonts\r\n        decorators.forEach(dec => {\r\n            \/\/ Outline + Decorator\r\n            list.push({ \r\n                name: `${dec.n} League`, \r\n                cat: \"Outline\", \r\n                fn: t => `${dec.l}${convert(t, 'double')}${dec.r}` \r\n            });\r\n            \/\/ Bold + Decorator\r\n            list.push({ \r\n                name: `${dec.n} Varsity`, \r\n                cat: \"Block\", \r\n                fn: t => `${dec.l}${convert(t, 'boldSans')}${dec.r}` \r\n            });\r\n             \/\/ Mono + Decorator\r\n             list.push({ \r\n                name: `${dec.n} Scoreboard`, \r\n                cat: \"Block\", \r\n                fn: t => `${dec.l}${convert(t, 'mono')}${dec.r}` \r\n            });\r\n        });\r\n\r\n        \/\/ 5. MIXED & ADVANCED PATTERNS\r\n        list.push({ name: \"Small Caps Team\", cat: \"Block\", fn: t => convert(t, 'smallCaps') });\r\n        list.push({ name: \"Fraktur Blackletter\", cat: \"Block\", fn: t => convert(t, 'fraktur') });\r\n        list.push({ name: \"Script Jersey\", cat: \"Block\", fn: t => convert(t, 'script') });\r\n        \r\n        \/\/ Borders\r\n        list.push({ name: \"Heavy Brackets\", cat: \"Outline\", fn: t => `\u300e ${convert(t, 'boldSans')} \u300f` });\r\n        list.push({ name: \"Star Border\", cat: \"Outline\", fn: t => `\u2605 ${convert(t, 'double')} \u2605` });\r\n        list.push({ name: \"Lineup Card\", cat: \"Block\", fn: t => `| ${convert(t, 'mono')} |` });\r\n        list.push({ name: \"Double Dash\", cat: \"Block\", fn: t => `\/\/ ${convert(t, 'italicBold')} \/\/` });\r\n        list.push({ name: \"Arrow Point\", cat: \"Block\", fn: t => `>> ${convert(t, 'bold')} <<` });\r\n        \r\n        \/\/ Spaced Variations\r\n        list.push({ name: \"S P A C E D  Bold\", cat: \"Block\", fn: t => convert(t.split('').join('  '), 'boldSans') });\r\n        list.push({ name: \"S.P.A.C.E.D  Dots\", cat: \"Block\", fn: t => convert(t.split('').join('.'), 'boldSans') });\r\n        list.push({ name: \"Dash-Separated\", cat: \"Block\", fn: t => convert(t.split('').join('-'), 'mono') });\r\n        \r\n        \/\/ Pseudo-Visuals\r\n        list.push({ name: \"Underlined\", cat: \"Block\", fn: t => convert(t, 'bold') + '\\n' + '\u203e'.repeat(t.length) });\r\n        list.push({ name: \"Top & Bottom Line\", cat: \"Block\", fn: t => '\u2501'.repeat(t.length) + '\\n' + convert(t, 'double') + '\\n' + '\u2501'.repeat(t.length) });\r\n\r\n        \/\/ Generate more fillers to reach 100+ if needed using simple joiners\r\n        for(let i=1; i<=10; i++) {\r\n            list.push({ name: `Jersey Kit ${i}`, cat: \"Block\", fn: t => `[${i}] ${convert(t, 'boldSans')}` });\r\n            list.push({ name: `Roster #${i}`, cat: \"Num\", fn: t => `${convert(t, 'mono')} #${i}` });\r\n        }\r\n\r\n        return list;\r\n    };\r\n\r\n    const STYLES = createStyles();\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 btnBlock = document.getElementById('pgBtnBlock');\r\n    const btnOutline = document.getElementById('pgBtnOutline');\r\n    const btnNum = document.getElementById('pgBtnNum');\r\n    const actionBtns = document.querySelectorAll('.pg-action-btn');\r\n\r\n    let visibleLimit = 20; \r\n    let currentFilter = 'All Leagues'; \/\/ Using Name as ID for simplicity\r\n\r\n    const render = () => {\r\n        resultList.innerHTML = '';\r\n        const inputText = inputEl.value || \"VARSITY\"; \r\n        \r\n        let filtered = STYLES;\r\n        if(currentFilter === 'Block') filtered = STYLES.filter(s => s.cat === 'Block');\r\n        if(currentFilter === 'Outline') filtered = STYLES.filter(s => s.cat === 'Outline');\r\n        if(currentFilter === 'Num') filtered = STYLES.filter(s => s.cat === 'Num');\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 convertedText = style.fn(inputText);\r\n            \r\n            const card = document.createElement('div');\r\n            \/\/ Randomly assign span-2 for asymmetric grid look, but consistent per index\r\n            const isWide = (i % 7 === 0 || i % 11 === 0) ? 'pg-span-2' : '';\r\n            card.className = `pg-result-card ${isWide}`;\r\n            \r\n            \/\/ Generate font awesome icon class based on style name for flavor\r\n            let iconClass = \"fa-trophy\"; \/\/ Default\r\n            if(style.name.includes(\"Football\")) iconClass = \"fa-football\";\r\n            if(style.name.includes(\"Basketball\")) iconClass = \"fa-basketball\";\r\n            if(style.name.includes(\"Star\")) iconClass = \"fa-star\";\r\n            \r\n            \/\/ Custom card inner HTML\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-solid fa-clipboard\"><\/i> COPY<\/div>\r\n                <\/div>\r\n                <div class=\"pg-card-preview\">${convertedText.replace(\/\\n\/g, '<br\/>')}<\/div>\r\n            `;\r\n            \r\n            \/\/ Add specific icon styling via JS to the pseudo element is hard, so we just let the CSS default (trophy) handle it\r\n            \/\/ or we could inject a specific icon div. Let's keep the CSS pseudo element for performance\/cleanliness.\r\n            \r\n            card.addEventListener('click', () => copyToClipboard(convertedText));\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 && navigator.clipboard.writeText) {\r\n            navigator.clipboard.writeText(text)\r\n                .then(() => showToast())\r\n                .catch(err => fallbackCopyText(text));\r\n        } else {\r\n            fallbackCopyText(text);\r\n        }\r\n    };\r\n\r\n    const fallbackCopyText = (text) => {\r\n        const textArea = document.createElement(\"textarea\");\r\n        textArea.value = text;\r\n        textArea.style.position = \"fixed\";\r\n        textArea.style.left = \"-9999px\";\r\n        document.body.appendChild(textArea);\r\n        textArea.focus();\r\n        textArea.select();\r\n        try {\r\n            document.execCommand('copy');\r\n            showToast();\r\n        } catch (err) {\r\n            console.error('Fallback copy failed', err);\r\n        }\r\n        document.body.removeChild(textArea);\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 preset = btn.dataset.preset;\r\n            inputEl.value = preset;\r\n            render();\r\n        });\r\n    });\r\n\r\n    const setFilter = (cat, btn) => {\r\n        currentFilter = cat;\r\n        [btnAll, btnBlock, btnOutline, btnNum].forEach(b => b.classList.remove('active'));\r\n        btn.classList.add('active');\r\n        visibleLimit = 20; \r\n        render();\r\n    };\r\n\r\n    btnAll.addEventListener('click', () => setFilter('All Leagues', btnAll));\r\n    btnBlock.addEventListener('click', () => setFilter('Block', btnBlock));\r\n    btnOutline.addEventListener('click', () => setFilter('Outline', btnOutline));\r\n    btnNum.addEventListener('click', () => setFilter('Num', btnNum));\r\n\r\n    loadMoreBtn.addEventListener('click', () => {\r\n        visibleLimit += 20;\r\n        render();\r\n    });\r\n\r\n    \/\/ Initial Render\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-7077","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages\/7077","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=7077"}],"version-history":[{"count":4,"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages\/7077\/revisions"}],"predecessor-version":[{"id":7086,"href":"https:\/\/themeton.com\/wp-json\/wp\/v2\/pages\/7077\/revisions\/7086"}],"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=7077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}