{"id":11,"date":"2026-06-10T21:02:35","date_gmt":"2026-06-10T21:02:35","guid":{"rendered":"https:\/\/dev.websitick.com\/?page_id=11"},"modified":"2026-06-10T21:50:56","modified_gmt":"2026-06-10T21:50:56","slug":"home","status":"publish","type":"page","link":"https:\/\/dev.websitick.com\/","title":{"rendered":"Home"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"11\" class=\"elementor elementor-11\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ded8a6e e-con-full e-flex e-con e-parent\" data-id=\"ded8a6e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-f76ea6c elementor-widget elementor-widget-html\" data-id=\"f76ea6c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div id=\"l101f-widget\" class=\"l101f-widget\">\r\n  <style>\r\n    #l101f-widget,\r\n    #l101f-widget *{\r\n      box-sizing:border-box;\r\n    }\r\n    #l101f-widget{\r\n      --bg:#f5f2ff;\r\n      --card:#ffffff;\r\n      --ink:#20123a;\r\n      --muted:#6b5c82;\r\n      --line:#e7ddff;\r\n      --line-strong:#cdb9ff;\r\n      --brand:#6a2cff;\r\n      --brand-2:#b900ff;\r\n      --brand-3:#ff4ecb;\r\n      --brand-4:#00d2ff;\r\n      --soft:#faf7ff;\r\n      --success:#16a34a;\r\n      width:100%;\r\n      color:var(--ink);\r\n      font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Arial, sans-serif;\r\n      line-height:1.55;\r\n      background:\r\n        radial-gradient(circle at top left, rgba(255,78,203,.18), transparent 28%),\r\n        radial-gradient(circle at top right, rgba(0,210,255,.16), transparent 30%),\r\n        linear-gradient(180deg, #ffffff 0%, var(--bg) 46%, #ffffff 100%);\r\n      border-radius:28px;\r\n      overflow:hidden;\r\n      border:1px solid rgba(106,44,255,.10);\r\n    }\r\n    #l101f-widget button,\r\n    #l101f-widget textarea,\r\n    #l101f-widget input{\r\n      font:inherit;\r\n    }\r\n    #l101f-widget button{\r\n      cursor:pointer;\r\n    }\r\n    #l101f-widget .l101f-shell{\r\n      max-width:1180px;\r\n      margin:0 auto;\r\n      padding:24px 16px 42px;\r\n    }\r\n    #l101f-widget .l101f-hero{\r\n      position:relative;\r\n      overflow:hidden;\r\n      border-radius:30px;\r\n      padding:34px 22px;\r\n      background:\r\n        linear-gradient(135deg, rgba(85,25,255,.98), rgba(185,0,255,.96) 53%, rgba(255,78,203,.94));\r\n      color:#fff;\r\n      box-shadow:0 24px 70px rgba(80,34,170,.28);\r\n    }\r\n    #l101f-widget .l101f-hero:before{\r\n      content:\"\";\r\n      position:absolute;\r\n      inset:-1px;\r\n      background:\r\n        radial-gradient(circle at 12% 22%, rgba(255,255,255,.25), transparent 20%),\r\n        radial-gradient(circle at 82% 15%, rgba(0,210,255,.26), transparent 21%),\r\n        radial-gradient(circle at 78% 82%, rgba(255,255,255,.16), transparent 24%);\r\n      pointer-events:none;\r\n    }\r\n    #l101f-widget .l101f-hero-inner{\r\n      position:relative;\r\n      z-index:2;\r\n      display:grid;\r\n      grid-template-columns:1.15fr .85fr;\r\n      gap:22px;\r\n      align-items:center;\r\n    }\r\n    #l101f-widget .l101f-eyebrow{\r\n      display:inline-flex;\r\n      gap:8px;\r\n      align-items:center;\r\n      width:max-content;\r\n      max-width:100%;\r\n      padding:8px 12px;\r\n      border:1px solid rgba(255,255,255,.24);\r\n      border-radius:999px;\r\n      background:rgba(255,255,255,.13);\r\n      backdrop-filter:blur(14px);\r\n      font-size:13px;\r\n      font-weight:800;\r\n      letter-spacing:.2px;\r\n    }\r\n    #l101f-widget .l101f-hero h1{\r\n      margin:18px 0 12px;\r\n      max-width:770px;\r\n      font-size:clamp(31px, 5.4vw, 62px);\r\n      line-height:1.02;\r\n      letter-spacing:-1.8px;\r\n      color:#fff;\r\n    }\r\n    #l101f-widget .l101f-hero p{\r\n      max-width:710px;\r\n      margin:0;\r\n      font-size:clamp(15px, 2vw, 18px);\r\n      color:rgba(255,255,255,.9);\r\n    }\r\n    #l101f-widget .l101f-mini-preview{\r\n      position:relative;\r\n      min-height:260px;\r\n      border-radius:26px;\r\n      background:rgba(255,255,255,.12);\r\n      border:1px solid rgba(255,255,255,.22);\r\n      backdrop-filter:blur(18px);\r\n      box-shadow:inset 0 1px 0 rgba(255,255,255,.18);\r\n      padding:18px;\r\n    }\r\n    #l101f-widget .l101f-phone{\r\n      width:min(250px, 74%);\r\n      min-height:230px;\r\n      margin:0 auto;\r\n      border-radius:26px;\r\n      background:#14101f;\r\n      padding:10px;\r\n      box-shadow:0 24px 46px rgba(0,0,0,.25);\r\n      transform:rotate(2deg);\r\n    }\r\n    #l101f-widget .l101f-phone-screen{\r\n      height:100%;\r\n      min-height:210px;\r\n      border-radius:20px;\r\n      background:linear-gradient(180deg, #fff, #f6f0ff);\r\n      color:var(--ink);\r\n      overflow:hidden;\r\n      padding:13px;\r\n    }\r\n    #l101f-widget .l101f-phone-bar{\r\n      height:8px;\r\n      width:58%;\r\n      margin:0 auto 14px;\r\n      border-radius:999px;\r\n      background:#ded1ff;\r\n    }\r\n    #l101f-widget .l101f-phone-row{\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:space-between;\r\n      gap:8px;\r\n      padding:9px 0;\r\n      border-bottom:1px solid #eee7ff;\r\n      font-size:12px;\r\n      color:#5a4a75;\r\n    }\r\n    #l101f-widget .l101f-phone-row strong{\r\n      color:var(--brand);\r\n      font-size:13px;\r\n    }\r\n    #l101f-widget .l101f-stats{\r\n      display:grid;\r\n      grid-template-columns:repeat(3, minmax(0,1fr));\r\n      gap:12px;\r\n      margin-top:22px;\r\n    }\r\n    #l101f-widget .l101f-stat{\r\n      padding:13px 14px;\r\n      border-radius:18px;\r\n      background:rgba(255,255,255,.13);\r\n      border:1px solid rgba(255,255,255,.18);\r\n      min-width:0;\r\n    }\r\n    #l101f-widget .l101f-stat b{\r\n      display:block;\r\n      color:#fff;\r\n      font-size:20px;\r\n      line-height:1;\r\n    }\r\n    #l101f-widget .l101f-stat span{\r\n      display:block;\r\n      margin-top:5px;\r\n      color:rgba(255,255,255,.78);\r\n      font-size:12px;\r\n    }\r\n    #l101f-widget .l101f-tool{\r\n      margin-top:-26px;\r\n      position:relative;\r\n      z-index:4;\r\n      display:grid;\r\n      grid-template-columns:360px 1fr;\r\n      gap:18px;\r\n      align-items:start;\r\n    }\r\n    #l101f-widget .l101f-panel{\r\n      background:rgba(255,255,255,.92);\r\n      border:1px solid rgba(106,44,255,.14);\r\n      border-radius:24px;\r\n      box-shadow:0 18px 48px rgba(52,26,120,.12);\r\n    }\r\n    #l101f-widget .l101f-input-card{\r\n      position:sticky;\r\n      top:16px;\r\n      overflow:hidden;\r\n    }\r\n    #l101f-widget .l101f-input-top{\r\n      padding:18px 18px 12px;\r\n      border-bottom:1px solid var(--line);\r\n      background:linear-gradient(180deg, #fff, #fbf8ff);\r\n    }\r\n    #l101f-widget .l101f-label-row{\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:space-between;\r\n      gap:12px;\r\n      margin-bottom:10px;\r\n    }\r\n    #l101f-widget .l101f-label{\r\n      display:block;\r\n      margin:0;\r\n      font-weight:900;\r\n      letter-spacing:-.2px;\r\n      color:var(--ink);\r\n      font-size:17px;\r\n    }\r\n    #l101f-widget .l101f-counter{\r\n      white-space:nowrap;\r\n      font-size:12px;\r\n      color:var(--brand);\r\n      font-weight:800;\r\n      background:#f0e8ff;\r\n      border:1px solid #decfff;\r\n      border-radius:999px;\r\n      padding:5px 8px;\r\n    }\r\n    #l101f-widget .l101f-textarea-wrap{\r\n      position:relative;\r\n    }\r\n    #l101f-widget textarea{\r\n      width:100%;\r\n      min-height:150px;\r\n      resize:vertical;\r\n      border:2px solid var(--line);\r\n      background:#fff;\r\n      color:var(--ink);\r\n      border-radius:18px;\r\n      padding:15px 16px;\r\n      outline:none;\r\n      transition:border .18s ease, box-shadow .18s ease;\r\n    }\r\n    #l101f-widget textarea:focus{\r\n      border-color:var(--brand);\r\n      box-shadow:0 0 0 5px rgba(106,44,255,.10);\r\n    }\r\n    #l101f-widget .l101f-actions{\r\n      display:grid;\r\n      grid-template-columns:1fr 1fr;\r\n      gap:10px;\r\n      margin-top:12px;\r\n    }\r\n    #l101f-widget .l101f-btn{\r\n      border:0;\r\n      border-radius:15px;\r\n      min-height:44px;\r\n      padding:10px 14px;\r\n      font-weight:900;\r\n      color:#fff;\r\n      background:linear-gradient(135deg, var(--brand), var(--brand-2));\r\n      box-shadow:0 12px 28px rgba(106,44,255,.22);\r\n      transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;\r\n    }\r\n    #l101f-widget .l101f-btn:hover{\r\n      transform:translateY(-1px);\r\n      filter:saturate(1.05);\r\n      box-shadow:0 16px 34px rgba(106,44,255,.28);\r\n    }\r\n    #l101f-widget .l101f-btn.secondary{\r\n      color:var(--brand);\r\n      background:#f4edff;\r\n      border:1px solid #ddceff;\r\n      box-shadow:none;\r\n    }\r\n    #l101f-widget .l101f-presets{\r\n      padding:14px 18px 18px;\r\n    }\r\n    #l101f-widget .l101f-small-title{\r\n      margin:0 0 10px;\r\n      font-size:13px;\r\n      color:var(--muted);\r\n      font-weight:900;\r\n      text-transform:uppercase;\r\n      letter-spacing:.5px;\r\n    }\r\n    #l101f-widget .l101f-chip-row{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:8px;\r\n    }\r\n    #l101f-widget .l101f-chip,\r\n    #l101f-widget .l101f-symbol{\r\n      border:1px solid var(--line);\r\n      background:#fff;\r\n      color:var(--brand);\r\n      border-radius:999px;\r\n      padding:8px 11px;\r\n      font-size:13px;\r\n      font-weight:850;\r\n      transition:background .18s ease, transform .18s ease, border .18s ease;\r\n    }\r\n    #l101f-widget .l101f-chip:hover,\r\n    #l101f-widget .l101f-symbol:hover{\r\n      background:#f1e9ff;\r\n      border-color:var(--line-strong);\r\n      transform:translateY(-1px);\r\n    }\r\n    #l101f-widget .l101f-symbol-bank{\r\n      padding:0 18px 18px;\r\n    }\r\n    #l101f-widget .l101f-results-panel{\r\n      overflow:hidden;\r\n    }\r\n    #l101f-widget .l101f-toolbar{\r\n      padding:16px;\r\n      border-bottom:1px solid var(--line);\r\n      background:rgba(255,255,255,.88);\r\n      backdrop-filter:blur(16px);\r\n    }\r\n    #l101f-widget .l101f-search-grid{\r\n      display:grid;\r\n      grid-template-columns:1fr auto;\r\n      gap:12px;\r\n      align-items:center;\r\n    }\r\n    #l101f-widget .l101f-search{\r\n      width:100%;\r\n      border:2px solid var(--line);\r\n      border-radius:16px;\r\n      min-height:46px;\r\n      padding:0 14px;\r\n      color:var(--ink);\r\n      background:#fff;\r\n      outline:none;\r\n      transition:border .18s ease, box-shadow .18s ease;\r\n    }\r\n    #l101f-widget .l101f-search:focus{\r\n      border-color:var(--brand);\r\n      box-shadow:0 0 0 5px rgba(106,44,255,.09);\r\n    }\r\n    #l101f-widget .l101f-total{\r\n      white-space:nowrap;\r\n      color:var(--brand);\r\n      background:#f2ebff;\r\n      border:1px solid #e0d4ff;\r\n      border-radius:999px;\r\n      padding:10px 13px;\r\n      font-weight:900;\r\n      font-size:13px;\r\n    }\r\n    #l101f-widget .l101f-tabs{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:8px;\r\n      margin-top:12px;\r\n    }\r\n    #l101f-widget .l101f-tab{\r\n      border:1px solid var(--line);\r\n      background:#fff;\r\n      color:#493068;\r\n      border-radius:999px;\r\n      padding:9px 12px;\r\n      font-size:13px;\r\n      font-weight:850;\r\n      transition:all .18s ease;\r\n    }\r\n    #l101f-widget .l101f-tab.is-active{\r\n      border-color:transparent;\r\n      color:#fff;\r\n      background:linear-gradient(135deg, var(--brand), var(--brand-2));\r\n      box-shadow:0 10px 24px rgba(106,44,255,.18);\r\n    }\r\n    #l101f-widget .l101f-results{\r\n      padding:16px;\r\n      display:grid;\r\n      grid-template-columns:1fr;\r\n      gap:12px;\r\n      min-height:260px;\r\n      background:linear-gradient(180deg, #fff, #fcfaff);\r\n    }\r\n    #l101f-widget .l101f-card{\r\n      border:1px solid var(--line);\r\n      background:#fff;\r\n      border-radius:20px;\r\n      padding:14px;\r\n      box-shadow:0 10px 30px rgba(37,20,82,.06);\r\n      transition:border .18s ease, transform .18s ease, box-shadow .18s ease;\r\n      min-width:0;\r\n    }\r\n    #l101f-widget .l101f-card:hover{\r\n      border-color:#c9b3ff;\r\n      transform:translateY(-1px);\r\n      box-shadow:0 16px 42px rgba(48,20,110,.10);\r\n    }\r\n    #l101f-widget .l101f-card-head{\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:space-between;\r\n      gap:12px;\r\n      margin-bottom:10px;\r\n    }\r\n    #l101f-widget .l101f-style-name{\r\n      min-width:0;\r\n      margin:0;\r\n      font-size:14px;\r\n      font-weight:950;\r\n      color:var(--ink);\r\n      letter-spacing:-.15px;\r\n    }\r\n    #l101f-widget .l101f-badge{\r\n      flex:0 0 auto;\r\n      border-radius:999px;\r\n      padding:5px 8px;\r\n      background:#f4edff;\r\n      color:var(--brand);\r\n      border:1px solid #e2d6ff;\r\n      font-size:11px;\r\n      font-weight:900;\r\n    }\r\n    #l101f-widget .l101f-output-row{\r\n      display:grid;\r\n      grid-template-columns:1fr auto;\r\n      gap:10px;\r\n      align-items:center;\r\n    }\r\n    #l101f-widget .l101f-output{\r\n      min-width:0;\r\n      overflow-wrap:anywhere;\r\n      word-break:break-word;\r\n      border-radius:16px;\r\n      border:1px dashed #d9c9ff;\r\n      background:linear-gradient(180deg, #fbf8ff, #fff);\r\n      padding:12px 13px;\r\n      color:#211038;\r\n      font-size:18px;\r\n      line-height:1.45;\r\n    }\r\n    #l101f-widget .l101f-copy{\r\n      border:0;\r\n      min-height:42px;\r\n      border-radius:14px;\r\n      padding:10px 14px;\r\n      color:#fff;\r\n      background:linear-gradient(135deg, var(--brand), var(--brand-2));\r\n      font-weight:950;\r\n      box-shadow:0 10px 22px rgba(106,44,255,.20);\r\n      white-space:nowrap;\r\n    }\r\n    #l101f-widget .l101f-copy.is-copied{\r\n      background:linear-gradient(135deg, #16a34a, #22c55e);\r\n      box-shadow:0 10px 22px rgba(22,163,74,.16);\r\n    }\r\n    #l101f-widget .l101f-load-wrap{\r\n      padding:0 16px 18px;\r\n      background:#fcfaff;\r\n      text-align:center;\r\n    }\r\n    #l101f-widget .l101f-load{\r\n      width:min(360px, 100%);\r\n    }\r\n    #l101f-widget .l101f-empty{\r\n      padding:40px 18px;\r\n      border:1px dashed #cdb9ff;\r\n      border-radius:20px;\r\n      text-align:center;\r\n      color:var(--muted);\r\n      background:#fbf8ff;\r\n    }\r\n\r\n    #l101f-widget .l101f-directory{\r\n      margin-top:22px;\r\n      background:#fff;\r\n      border:1px solid var(--line);\r\n      border-radius:28px;\r\n      overflow:hidden;\r\n      box-shadow:0 22px 60px rgba(52,26,120,.09);\r\n    }\r\n    #l101f-widget .l101f-directory-hero{\r\n      padding:26px 24px 20px;\r\n      background:\r\n        radial-gradient(circle at top left, rgba(255,78,203,.12), transparent 34%),\r\n        radial-gradient(circle at top right, rgba(0,210,255,.13), transparent 32%),\r\n        linear-gradient(135deg, #ffffff 0%, #faf6ff 48%, #f3fbff 100%);\r\n      border-bottom:1px solid var(--line);\r\n    }\r\n    #l101f-widget .l101f-directory-kicker{\r\n      display:inline-flex;\r\n      align-items:center;\r\n      gap:8px;\r\n      color:var(--brand);\r\n      background:#f3ecff;\r\n      border:1px solid #e1d3ff;\r\n      border-radius:999px;\r\n      padding:7px 11px;\r\n      font-size:13px;\r\n      font-weight:950;\r\n      margin-bottom:12px;\r\n    }\r\n    #l101f-widget .l101f-directory h2{\r\n      margin:0;\r\n      font-size:clamp(26px, 3.4vw, 42px);\r\n      line-height:1.08;\r\n      letter-spacing:-1px;\r\n      color:var(--ink);\r\n    }\r\n    #l101f-widget .l101f-directory-lead{\r\n      margin:12px 0 0;\r\n      max-width:760px;\r\n      color:var(--muted);\r\n      font-size:16px;\r\n    }\r\n    #l101f-widget .l101f-directory-controls{\r\n      padding:16px 18px;\r\n      background:rgba(255,255,255,.92);\r\n      border-bottom:1px solid var(--line);\r\n    }\r\n    #l101f-widget .l101f-tool-search-row{\r\n      display:grid;\r\n      grid-template-columns:1fr auto;\r\n      gap:12px;\r\n      align-items:center;\r\n      margin-bottom:12px;\r\n    }\r\n    #l101f-widget .l101f-tool-tabs{\r\n      display:flex;\r\n      flex-wrap:wrap;\r\n      gap:8px;\r\n    }\r\n    #l101f-widget .l101f-tools-grid{\r\n      padding:18px;\r\n      display:grid;\r\n      grid-template-columns:repeat(3, minmax(0, 1fr));\r\n      gap:14px;\r\n      background:linear-gradient(180deg, #fff, #fcfaff);\r\n    }\r\n    #l101f-widget .l101f-tool-card{\r\n      position:relative;\r\n      display:grid;\r\n      grid-template-columns:auto 1fr;\r\n      gap:12px;\r\n      min-height:118px;\r\n      padding:15px;\r\n      border:1px solid var(--line);\r\n      border-radius:22px;\r\n      background:#fff;\r\n      color:inherit;\r\n      text-decoration:none;\r\n      overflow:hidden;\r\n      box-shadow:0 12px 32px rgba(52,26,120,.065);\r\n      transition:transform .18s ease, border .18s ease, box-shadow .18s ease;\r\n    }\r\n    #l101f-widget .l101f-tool-card:before{\r\n      content:\"\";\r\n      position:absolute;\r\n      inset:0;\r\n      background:linear-gradient(135deg, rgba(106,44,255,.08), rgba(255,78,203,.05), rgba(0,210,255,.06));\r\n      opacity:0;\r\n      transition:opacity .18s ease;\r\n    }\r\n    #l101f-widget .l101f-tool-card:hover{\r\n      transform:translateY(-2px);\r\n      border-color:#c8b2ff;\r\n      box-shadow:0 18px 44px rgba(52,26,120,.12);\r\n    }\r\n    #l101f-widget .l101f-tool-card:hover:before{\r\n      opacity:1;\r\n    }\r\n    #l101f-widget .l101f-tool-icon{\r\n      position:relative;\r\n      width:46px;\r\n      height:46px;\r\n      border-radius:16px;\r\n      display:flex;\r\n      align-items:center;\r\n      justify-content:center;\r\n      font-size:22px;\r\n      font-weight:950;\r\n      color:#fff;\r\n      background:linear-gradient(135deg, var(--brand), var(--brand-2));\r\n      box-shadow:0 12px 24px rgba(106,44,255,.18);\r\n      flex:0 0 auto;\r\n    }\r\n    #l101f-widget .l101f-tool-body{\r\n      position:relative;\r\n      min-width:0;\r\n    }\r\n    #l101f-widget .l101f-tool-body h3{\r\n      margin:0 0 6px;\r\n      color:var(--ink);\r\n      font-size:16px;\r\n      line-height:1.22;\r\n      letter-spacing:-.25px;\r\n    }\r\n    #l101f-widget .l101f-tool-body p{\r\n      margin:0;\r\n      color:var(--muted);\r\n      font-size:13.5px;\r\n      line-height:1.42;\r\n    }\r\n    #l101f-widget .l101f-tool-meta{\r\n      display:inline-flex;\r\n      margin-top:10px;\r\n      border-radius:999px;\r\n      padding:4px 8px;\r\n      background:#f4edff;\r\n      color:var(--brand);\r\n      border:1px solid #e2d6ff;\r\n      font-size:11px;\r\n      font-weight:950;\r\n    }\r\n\r\n    #l101f-widget .l101f-sections{\r\n      margin-top:22px;\r\n      display:grid;\r\n      gap:18px;\r\n    }\r\n    #l101f-widget .l101f-content-card{\r\n      background:#fff;\r\n      border:1px solid var(--line);\r\n      border-radius:26px;\r\n      padding:24px;\r\n      box-shadow:0 18px 48px rgba(52,26,120,.08);\r\n    }\r\n    #l101f-widget .l101f-content-card h2{\r\n      margin:0 0 12px;\r\n      font-size:clamp(24px, 3vw, 36px);\r\n      line-height:1.12;\r\n      color:var(--ink);\r\n      letter-spacing:-.8px;\r\n    }\r\n    #l101f-widget .l101f-content-card p{\r\n      margin:0 0 12px;\r\n      color:var(--muted);\r\n    }\r\n    #l101f-widget .l101f-feature-grid{\r\n      display:grid;\r\n      grid-template-columns:repeat(3, minmax(0,1fr));\r\n      gap:12px;\r\n      margin-top:16px;\r\n    }\r\n    #l101f-widget .l101f-feature{\r\n      border:1px solid var(--line);\r\n      background:var(--soft);\r\n      border-radius:18px;\r\n      padding:16px;\r\n    }\r\n    #l101f-widget .l101f-feature b{\r\n      display:block;\r\n      margin-bottom:6px;\r\n      color:var(--ink);\r\n      font-size:15px;\r\n    }\r\n    #l101f-widget .l101f-feature span{\r\n      color:var(--muted);\r\n      font-size:14px;\r\n    }\r\n    #l101f-widget .l101f-faq details{\r\n      border:1px solid var(--line);\r\n      border-radius:18px;\r\n      background:#fff;\r\n      padding:14px 16px;\r\n      margin-top:10px;\r\n    }\r\n    #l101f-widget .l101f-faq summary{\r\n      cursor:pointer;\r\n      font-weight:950;\r\n      color:var(--ink);\r\n    }\r\n    #l101f-widget .l101f-faq details p{\r\n      margin:10px 0 0;\r\n    }\r\n    #l101f-widget .l101f-toast{\r\n      position:fixed;\r\n      left:50%;\r\n      bottom:22px;\r\n      z-index:99999;\r\n      transform:translateX(-50%) translateY(20px);\r\n      opacity:0;\r\n      pointer-events:none;\r\n      background:#190c2c;\r\n      color:#fff;\r\n      border-radius:999px;\r\n      padding:12px 18px;\r\n      box-shadow:0 18px 42px rgba(0,0,0,.22);\r\n      font-weight:900;\r\n      transition:opacity .18s ease, transform .18s ease;\r\n    }\r\n    #l101f-widget .l101f-toast.show{\r\n      opacity:1;\r\n      transform:translateX(-50%) translateY(0);\r\n    }\r\n    @media (max-width: 980px){\r\n      #l101f-widget .l101f-hero-inner,\r\n      #l101f-widget .l101f-tool{\r\n        grid-template-columns:1fr;\r\n      }\r\n      #l101f-widget .l101f-input-card{\r\n        position:relative;\r\n        top:auto;\r\n      }\r\n      #l101f-widget .l101f-mini-preview{\r\n        display:none;\r\n      }\r\n    }\r\n    @media (max-width: 720px){\r\n      #l101f-widget .l101f-shell{\r\n        padding:14px 10px 30px;\r\n      }\r\n      #l101f-widget .l101f-hero{\r\n        padding:26px 16px;\r\n        border-radius:24px;\r\n      }\r\n      #l101f-widget .l101f-stats,\r\n      #l101f-widget .l101f-feature-grid{\r\n        grid-template-columns:1fr;\r\n      }\r\n      #l101f-widget .l101f-search-grid,\r\n      #l101f-widget .l101f-output-row{\r\n        grid-template-columns:1fr;\r\n      }\r\n      #l101f-widget .l101f-copy{\r\n        width:100%;\r\n      }\r\n      #l101f-widget .l101f-actions{\r\n        grid-template-columns:1fr;\r\n      }\r\n      #l101f-widget .l101f-content-card{\r\n        padding:18px;\r\n      }\r\n      #l101f-widget .l101f-total{\r\n        text-align:center;\r\n      }\r\n    }\r\n\r\n    @media (max-width: 980px){\r\n      #l101f-widget .l101f-tools-grid{\r\n        grid-template-columns:repeat(2, minmax(0, 1fr));\r\n      }\r\n    }\r\n    @media (max-width: 720px){\r\n      #l101f-widget .l101f-directory-hero{\r\n        padding:22px 16px 18px;\r\n      }\r\n      #l101f-widget .l101f-directory-controls,\r\n      #l101f-widget .l101f-tools-grid{\r\n        padding:14px;\r\n      }\r\n      #l101f-widget .l101f-tool-search-row{\r\n        grid-template-columns:1fr;\r\n      }\r\n      #l101f-widget .l101f-tools-grid{\r\n        grid-template-columns:1fr;\r\n      }\r\n      #l101f-widget .l101f-tool-card{\r\n        min-height:auto;\r\n      }\r\n    }\r\n\r\n  <\/style>\r\n\r\n  <div class=\"l101f-shell\">\r\n    <section class=\"l101f-hero\" aria-label=\"Generador de letras bonitas\">\r\n      <div class=\"l101f-hero-inner\">\r\n        <div>\r\n          <div class=\"l101f-eyebrow\">\u2726 Herramienta gratis para copiar y pegar<\/div>\r\n          <h1>Generador de letras bonitas y fuentes para redes sociales<\/h1>\r\n          <p>Escribe tu texto una sola vez y convierte tus palabras en cientos de estilos decorativos para Instagram, TikTok, WhatsApp, nombres gamer, biograf\u00edas, t\u00edtulos y mensajes.<\/p>\r\n          <div class=\"l101f-stats\" aria-label=\"Caracter\u00edsticas principales\">\r\n            <div class=\"l101f-stat\"><b>200+<\/b><span>estilos disponibles<\/span><\/div>\r\n            <div class=\"l101f-stat\"><b>1 clic<\/b><span>para copiar<\/span><\/div>\r\n            <div class=\"l101f-stat\"><b>100%<\/b><span>sin plugins<\/span><\/div>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"l101f-mini-preview\" aria-hidden=\"true\">\r\n          <div class=\"l101f-phone\">\r\n            <div class=\"l101f-phone-screen\">\r\n              <div class=\"l101f-phone-bar\"><\/div>\r\n              <div class=\"l101f-phone-row\"><strong>\ud835\udcdb\ud835\udcee\ud835\udcfd\ud835\udcfb\ud835\udcea\ud835\udcfc<\/strong><span>Copiar<\/span><\/div>\r\n              <div class=\"l101f-phone-row\"><strong>\u2726 Texto bonito \u2726<\/strong><span>Copiar<\/span><\/div>\r\n              <div class=\"l101f-phone-row\"><strong>\ud835\udd3d\ud835\udd66\ud835\udd56\ud835\udd5f\ud835\udd65\ud835\udd56\ud835\udd64<\/strong><span>Copiar<\/span><\/div>\r\n              <div class=\"l101f-phone-row\"><strong>\u2661 Instagram \u2661<\/strong><span>Copiar<\/span><\/div>\r\n              <div class=\"l101f-phone-row\"><strong>\ua9c1 Gamer \ua9c2<\/strong><span>Copiar<\/span><\/div>\r\n            <\/div>\r\n          <\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/section>\r\n\r\n    <main class=\"l101f-tool\">\r\n      <aside class=\"l101f-panel l101f-input-card\">\r\n        <div class=\"l101f-input-top\">\r\n          <div class=\"l101f-label-row\">\r\n            <label class=\"l101f-label\" for=\"l101f-input\">Escribe tu texto<\/label>\r\n            <span class=\"l101f-counter\" id=\"l101f-count\">0 caracteres<\/span>\r\n          <\/div>\r\n          <div class=\"l101f-textarea-wrap\">\r\n            <textarea id=\"l101f-input\" maxlength=\"500\" placeholder=\"Escribe aqu\u00ed tu nombre, frase, bio o mensaje...\" spellcheck=\"false\"><\/textarea>\r\n          <\/div>\r\n          <div class=\"l101f-actions\">\r\n            <button class=\"l101f-btn\" type=\"button\" id=\"l101f-copy-first\">Copiar primer estilo<\/button>\r\n            <button class=\"l101f-btn secondary\" type=\"button\" id=\"l101f-clear\">Limpiar texto<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"l101f-presets\">\r\n          <p class=\"l101f-small-title\">Ejemplos r\u00e1pidos<\/p>\r\n          <div class=\"l101f-chip-row\" id=\"l101f-presets\">\r\n            <button class=\"l101f-chip\" type=\"button\" data-text=\"Letras Bonitas\">Letras Bonitas<\/button>\r\n            <button class=\"l101f-chip\" type=\"button\" data-text=\"Mi Bio de Instagram\">Bio Instagram<\/button>\r\n            <button class=\"l101f-chip\" type=\"button\" data-text=\"Nombre Gamer\">Nombre Gamer<\/button>\r\n            <button class=\"l101f-chip\" type=\"button\" data-text=\"Hola Mundo\">Hola Mundo<\/button>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"l101f-symbol-bank\">\r\n          <p class=\"l101f-small-title\">S\u00edmbolos r\u00e1pidos<\/p>\r\n          <div class=\"l101f-chip-row\" id=\"l101f-symbols\" aria-label=\"Insertar s\u00edmbolos\">\r\n            <button class=\"l101f-symbol\" type=\"button\">\u2661<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u2726<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u2605<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u2740<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u263e<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u26a1<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\ua9c1<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\ua9c2<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u30c4<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u5f61<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u10e6<\/button>\r\n            <button class=\"l101f-symbol\" type=\"button\">\u273f<\/button>\r\n          <\/div>\r\n        <\/div>\r\n      <\/aside>\r\n\r\n      <section class=\"l101f-panel l101f-results-panel\" aria-label=\"Resultados de letras bonitas\">\r\n        <div class=\"l101f-toolbar\">\r\n          <div class=\"l101f-search-grid\">\r\n            <input class=\"l101f-search\" id=\"l101f-search\" type=\"search\" placeholder=\"Buscar estilo: instagram, amor, gamer, elegante...\" autocomplete=\"off\">\r\n            <div class=\"l101f-total\" id=\"l101f-total\">Cargando estilos...<\/div>\r\n          <\/div>\r\n          <div class=\"l101f-tabs\" id=\"l101f-tabs\" aria-label=\"Categor\u00edas de estilos\"><\/div>\r\n        <\/div>\r\n        <div class=\"l101f-results\" id=\"l101f-results\"><\/div>\r\n        <div class=\"l101f-load-wrap\">\r\n          <button class=\"l101f-btn l101f-load\" id=\"l101f-load\" type=\"button\">Mostrar m\u00e1s estilos<\/button>\r\n        <\/div>\r\n      <\/section>\r\n    <\/main>\r\n\r\n\r\n    <section class=\"l101f-directory\" id=\"herramientas-letras\" aria-label=\"Todas las herramientas de letras\">\r\n      <div class=\"l101f-directory-hero\">\r\n        <div class=\"l101f-directory-kicker\">\ud83d\udee0\ufe0f Colecci\u00f3n completa<\/div>\r\n        <h2>Todas las herramientas de letras<\/h2>\r\n        <p class=\"l101f-directory-lead\">Explora nuestra colecci\u00f3n completa de convertidores, estilos, alfabetos, s\u00edmbolos y recursos para redes sociales. Usa las pesta\u00f1as o el buscador para encontrar la herramienta correcta.<\/p>\r\n      <\/div>\r\n      <div class=\"l101f-directory-controls\">\r\n        <div class=\"l101f-tool-search-row\">\r\n          <input class=\"l101f-search\" id=\"l101f-tool-search\" type=\"search\" placeholder=\"Buscar herramienta: Instagram, g\u00f3ticas, tatuajes, imprimir...\" autocomplete=\"off\">\r\n          <div class=\"l101f-total\" id=\"l101f-tool-total\">Cargando herramientas...<\/div>\r\n        <\/div>\r\n        <div class=\"l101f-tool-tabs\" id=\"l101f-tool-tabs\" aria-label=\"Categor\u00edas de herramientas\"><\/div>\r\n      <\/div>\r\n      <div class=\"l101f-tools-grid\" id=\"l101f-tools-grid\"><\/div>\r\n    <\/section>\r\n\r\n    <section class=\"l101f-sections\">\r\n      <article class=\"l101f-content-card\">\r\n        <h2>Letras bonitas para copiar y pegar<\/h2>\r\n        <p>Este generador convierte texto normal en fuentes Unicode y decoraciones visuales que puedes usar directamente en redes sociales. No necesitas instalar nada: escribe, elige un estilo y pulsa copiar.<\/p>\r\n        <p>Funciona muy bien para biograf\u00edas de Instagram, nombres de usuario, estados de WhatsApp, t\u00edtulos de TikTok, perfiles gaming, mensajes rom\u00e1nticos y frases aesthetic.<\/p>\r\n        <div class=\"l101f-feature-grid\">\r\n          <div class=\"l101f-feature\"><b>Vista previa instant\u00e1nea<\/b><span>Los resultados cambian mientras escribes, sin recargar la p\u00e1gina.<\/span><\/div>\r\n          <div class=\"l101f-feature\"><b>M\u00e1s de 200 estilos<\/b><span>Incluye letras elegantes, kawaii, raras, gamer, de amor y con s\u00edmbolos.<\/span><\/div>\r\n          <div class=\"l101f-feature\"><b>Compatible con m\u00f3viles<\/b><span>Dise\u00f1o adaptable para Elementor, WordPress, tablets y celulares.<\/span><\/div>\r\n        <\/div>\r\n      <\/article>\r\n\r\n      <article class=\"l101f-content-card l101f-faq\">\r\n        <h2>Preguntas frecuentes<\/h2>\r\n        <details open>\r\n          <summary>\u00bfC\u00f3mo uso este generador de letras?<\/summary>\r\n          <p>Escribe tu texto en el cuadro principal, revisa los estilos generados y pulsa el bot\u00f3n \u201cCopiar\u201d en el dise\u00f1o que m\u00e1s te guste.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>\u00bfEstas letras funcionan en Instagram y TikTok?<\/summary>\r\n          <p>S\u00ed. La mayor\u00eda de estilos usan caracteres Unicode, por eso suelen funcionar en Instagram, TikTok, WhatsApp, Facebook, Discord y muchas otras plataformas.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>\u00bfPor qu\u00e9 algunas letras se ven diferentes en mi dispositivo?<\/summary>\r\n          <p>Cada sistema puede mostrar ciertos caracteres Unicode con peque\u00f1as diferencias. Aun as\u00ed, el texto copiado conserva el mismo car\u00e1cter especial.<\/p>\r\n        <\/details>\r\n        <details>\r\n          <summary>\u00bfPuedo usarlo en Elementor?<\/summary>\r\n          <p>S\u00ed. Este archivo est\u00e1 hecho para pegarse en un widget HTML de Elementor. Todo el CSS y JavaScript est\u00e1 incluido en el mismo bloque.<\/p>\r\n        <\/details>\r\n      <\/article>\r\n    <\/section>\r\n  <\/div>\r\n  <div class=\"l101f-toast\" id=\"l101f-toast\" role=\"status\" aria-live=\"polite\">Copiado al portapapeles<\/div>\r\n\r\n  <script>\r\n    (function(){\r\n      var root = document.getElementById('l101f-widget');\r\n      if(!root) return;\r\n\r\n      var input = root.querySelector('#l101f-input');\r\n      var resultsEl = root.querySelector('#l101f-results');\r\n      var tabsEl = root.querySelector('#l101f-tabs');\r\n      var searchEl = root.querySelector('#l101f-search');\r\n      var loadBtn = root.querySelector('#l101f-load');\r\n      var totalEl = root.querySelector('#l101f-total');\r\n      var countEl = root.querySelector('#l101f-count');\r\n      var toast = root.querySelector('#l101f-toast');\r\n      var copyFirstBtn = root.querySelector('#l101f-copy-first');\r\n      var clearBtn = root.querySelector('#l101f-clear');\r\n      var activeCategory = 'Todos';\r\n      var visibleLimit = 48;\r\n      var lastFiltered = [];\r\n      var toastTimer = null;\r\n\r\n      var lower = 'abcdefghijklmnopqrstuvwxyz';\r\n      var upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';\r\n      var digits = '0123456789';\r\n\r\n      function byCode(start, count){\r\n        var out = '';\r\n        for(var i = 0; i < count; i++) out += String.fromCodePoint(start + i);\r\n        return out;\r\n      }\r\n\r\n      function makeMap(lo, up, di){\r\n        var map = {};\r\n        Array.from(lo || '').forEach(function(ch, i){ if(lower[i]) map[lower[i]] = ch; });\r\n        Array.from(up || '').forEach(function(ch, i){ if(upper[i]) map[upper[i]] = ch; });\r\n        Array.from(di || '').forEach(function(ch, i){ if(digits[i]) map[digits[i]] = ch; });\r\n        return map;\r\n      }\r\n\r\n      var maps = {\r\n        bold: makeMap(byCode(0x1D41A,26), byCode(0x1D400,26), byCode(0x1D7CE,10)),\r\n        italic: makeMap(byCode(0x1D44E,26), byCode(0x1D434,26), digits),\r\n        boldItalic: makeMap(byCode(0x1D482,26), byCode(0x1D468,26), digits),\r\n        script: makeMap('\ud835\udcb6\ud835\udcb7\ud835\udcb8\ud835\udcb9\u212f\ud835\udcbb\u210a\ud835\udcbd\ud835\udcbe\ud835\udcbf\ud835\udcc0\ud835\udcc1\ud835\udcc2\ud835\udcc3\u2134\ud835\udcc5\ud835\udcc6\ud835\udcc7\ud835\udcc8\ud835\udcc9\ud835\udcca\ud835\udccb\ud835\udccc\ud835\udccd\ud835\udcce\ud835\udccf', '\ud835\udc9c\u212c\ud835\udc9e\ud835\udc9f\u2130\u2131\ud835\udca2\u210b\u2110\ud835\udca5\ud835\udca6\u2112\u2133\ud835\udca9\ud835\udcaa\ud835\udcab\ud835\udcac\u211b\ud835\udcae\ud835\udcaf\ud835\udcb0\ud835\udcb1\ud835\udcb2\ud835\udcb3\ud835\udcb4\ud835\udcb5', digits),\r\n        boldScript: makeMap('\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\udce9', digits),\r\n        fraktur: makeMap('\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\u2128', digits),\r\n        boldFraktur: makeMap('\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\udd85', digits),\r\n        double: makeMap('\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        sans: makeMap(byCode(0x1D5BA,26), byCode(0x1D5A0,26), byCode(0x1D7E2,10)),\r\n        sansBold: makeMap(byCode(0x1D5EE,26), byCode(0x1D5D4,26), byCode(0x1D7EC,10)),\r\n        sansItalic: makeMap(byCode(0x1D622,26), byCode(0x1D608,26), digits),\r\n        sansBoldItalic: makeMap(byCode(0x1D656,26), byCode(0x1D63C,26), digits),\r\n        mono: makeMap(byCode(0x1D68A,26), byCode(0x1D670,26), byCode(0x1D7F6,10)),\r\n        full: makeMap(byCode(0xFF41,26), byCode(0xFF21,26), byCode(0xFF10,10)),\r\n        circled: makeMap(byCode(0x24D0,26), byCode(0x24B6,26), '\u24ea\u2460\u2461\u2462\u2463\u2464\u2465\u2466\u2467\u2468'),\r\n        negativeCircled: makeMap('\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', digits),\r\n        squared: makeMap('\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\udd49', digits),\r\n        negativeSquared: makeMap('\ud83c\udd70\ud83c\udd71\ud83c\udd72\ud83c\udd73\ud83c\udd74\ud83c\udd75\ud83c\udd76\ud83c\udd77\ud83c\udd78\ud83c\udd79\ud83c\udd7a\ud83c\udd7b\ud83c\udd7c\ud83c\udd7d\ud83c\udd7e\ud83c\udd7f\ud83c\udd80\ud83c\udd81\ud83c\udd82\ud83c\udd83\ud83c\udd84\ud83c\udd85\ud83c\udd86\ud83c\udd87\ud83c\udd88\ud83c\udd89', '\ud83c\udd70\ud83c\udd71\ud83c\udd72\ud83c\udd73\ud83c\udd74\ud83c\udd75\ud83c\udd76\ud83c\udd77\ud83c\udd78\ud83c\udd79\ud83c\udd7a\ud83c\udd7b\ud83c\udd7c\ud83c\udd7d\ud83c\udd7e\ud83c\udd7f\ud83c\udd80\ud83c\udd81\ud83c\udd82\ud83c\udd83\ud83c\udd84\ud83c\udd85\ud83c\udd86\ud83c\udd87\ud83c\udd88\ud83c\udd89', digits),\r\n        smallCaps: makeMap('\u1d00\u0299\u1d04\u1d05\u1d07\ua730\u0262\u029c\u026a\u1d0a\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\u01eb\u0280\ua731\u1d1b\u1d1c\u1d20\u1d21x\u028f\u1d22', '\u1d00\u0299\u1d04\u1d05\u1d07\ua730\u0262\u029c\u026a\u1d0a\u1d0b\u029f\u1d0d\u0274\u1d0f\u1d18\u01eb\u0280\ua731\u1d1b\u1d1c\u1d20\u1d21x\u028f\u1d22', digits),\r\n        super: makeMap('\u1d43\u1d47\u1d9c\u1d48\u1d49\u1da0\u1d4d\u02b0\u2071\u02b2\u1d4f\u02e1\u1d50\u207f\u1d52\u1d56\u146b\u02b3\u02e2\u1d57\u1d58\u1d5b\u02b7\u02e3\u02b8\u1dbb', '\u1d2c\u1d2e\u1d9c\u1d30\u1d31\u1da0\u1d33\u1d34\u1d35\u1d36\u1d37\u1d38\u1d39\u1d3a\u1d3c\u1d3e\u146b\u1d3f\u02e2\u1d40\u1d41\u2c7d\u1d42\u02e3\u02b8\u1dbb', '\u2070\u00b9\u00b2\u00b3\u2074\u2075\u2076\u2077\u2078\u2079'),\r\n        sub: makeMap('\u2090\u1d66\ua700\u146f\u2091\u0562\u2089\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u0ae7\u1d63\u209b\u209c\u1d64\u1d65w\u2093\u1d67\u2082', '\u2090\u1d66\ua700\u146f\u2091\u0562\u2089\u2095\u1d62\u2c7c\u2096\u2097\u2098\u2099\u2092\u209a\u0ae7\u1d63\u209b\u209c\u1d64\u1d65w\u2093\u1d67\u2082', '\u2080\u2081\u2082\u2083\u2084\u2085\u2086\u2087\u2088\u2089')\r\n      };\r\n\r\n      function convert(text, mapName){\r\n        var map = maps[mapName];\r\n        if(!map) return text;\r\n        return Array.from(text).map(function(ch){ return map[ch] || ch; }).join('');\r\n      }\r\n\r\n      function addCombining(text, mark){\r\n        return Array.from(text).map(function(ch){ return ch === ' ' ? ' ' : ch + mark; }).join('');\r\n      }\r\n\r\n      function spaced(text){ return Array.from(text).join(' '); }\r\n      function wideSpaced(text){ return Array.from(text).join('  '); }\r\n      function dotted(text){ return Array.from(text).join('\u00b7'); }\r\n      function starBetween(text){ return Array.from(text).join('\u2726'); }\r\n      function waveBetween(text){ return Array.from(text).join('\u3030'); }\r\n      function bracketEach(text){ return Array.from(text).map(function(ch){ return ch === ' ' ? ' ' : '[' + ch + ']'; }).join(''); }\r\n      function slashEach(text){ return Array.from(text).map(function(ch){ return ch === ' ' ? ' ' : '\/' + ch; }).join(''); }\r\n      function upperText(text){ return text.toUpperCase(); }\r\n      function lowerText(text){ return text.toLowerCase(); }\r\n      function alternating(text){\r\n        var on = true;\r\n        return Array.from(text).map(function(ch){\r\n          if(\/[a-zA-Z]\/.test(ch)){\r\n            var out = on ? ch.toUpperCase() : ch.toLowerCase();\r\n            on = !on;\r\n            return out;\r\n          }\r\n          return ch;\r\n        }).join('');\r\n      }\r\n      function titleCase(text){\r\n        return text.toLowerCase().replace(\/\\b\\w\/g, function(ch){ return ch.toUpperCase(); });\r\n      }\r\n\r\n      var flipMap = {\r\n        a:'\u0250', b:'q', c:'\u0254', d:'p', e:'\u01dd', f:'\u025f', g:'\u0183', h:'\u0265', i:'\u1d09', j:'\u027e', k:'\u029e', l:'\u0283', m:'\u026f', n:'u', o:'o', p:'d', q:'b', r:'\u0279', s:'s', t:'\u0287', u:'n', v:'\u028c', w:'\u028d', x:'x', y:'\u028e', z:'z',\r\n        A:'\u2200', B:'\ud801\udc12', C:'\u0186', D:'\u15e1', E:'\u018e', F:'\u2132', G:'\u05e4', H:'H', I:'I', J:'\u017f', K:'\u22ca', L:'\u02e5', M:'W', N:'N', O:'O', P:'\u0500', Q:'\u038c', R:'\u1d1a', S:'S', T:'\u22a5', U:'\u2229', V:'\u039b', W:'M', X:'X', Y:'\u2144', Z:'Z',\r\n        '0':'0', '1':'\u0196', '2':'\u1105', '3':'\u0190', '4':'\u3123', '5':'\u03db', '6':'9', '7':'\u3125', '8':'8', '9':'6', '.':'\u02d9', ',':'\\'', '\\'':',', '\"':',,', '?':'\u00bf', '!':'\u00a1', '(' : ')', ')' : '(', '[':']', ']':'[', '{':'}', '}':'{', '<':'>', '>':'<', '&':'\u214b', '_':'\u203e'\r\n      };\r\n      function flipped(text){\r\n        return Array.from(text).reverse().map(function(ch){ return flipMap[ch] || ch; }).join('');\r\n      }\r\n      function reversed(text){ return Array.from(text).reverse().join(''); }\r\n\r\n      var fontPacks = [\r\n        {id:'normal', name:'Normal limpio', short:'Normal', category:'B\u00e1sicas', fn:function(t){return t;}},\r\n        {id:'bold', name:'Negrita fuerte', short:'Negrita', category:'Elegante', fn:function(t){return convert(t,'bold');}},\r\n        {id:'italic', name:'Cursiva suave', short:'Cursiva', category:'Elegante', fn:function(t){return convert(t,'italic');}},\r\n        {id:'boldItalic', name:'Negrita cursiva', short:'Negrita cursiva', category:'Elegante', fn:function(t){return convert(t,'boldItalic');}},\r\n        {id:'script', name:'Script elegante', short:'Script', category:'Elegante', fn:function(t){return convert(t,'script');}},\r\n        {id:'boldScript', name:'Script premium', short:'Script premium', category:'Elegante', fn:function(t){return convert(t,'boldScript');}},\r\n        {id:'fraktur', name:'G\u00f3tico cl\u00e1sico', short:'G\u00f3tico', category:'Raras', fn:function(t){return convert(t,'fraktur');}},\r\n        {id:'boldFraktur', name:'G\u00f3tico fuerte', short:'G\u00f3tico fuerte', category:'Raras', fn:function(t){return convert(t,'boldFraktur');}},\r\n        {id:'double', name:'Doble l\u00ednea', short:'Doble l\u00ednea', category:'Elegante', fn:function(t){return convert(t,'double');}},\r\n        {id:'sans', name:'Sans moderno', short:'Sans', category:'B\u00e1sicas', fn:function(t){return convert(t,'sans');}},\r\n        {id:'sansBold', name:'Sans negrita', short:'Sans bold', category:'B\u00e1sicas', fn:function(t){return convert(t,'sansBold');}},\r\n        {id:'sansItalic', name:'Sans cursiva', short:'Sans cursiva', category:'B\u00e1sicas', fn:function(t){return convert(t,'sansItalic');}},\r\n        {id:'sansBoldItalic', name:'Sans negrita cursiva', short:'Sans BI', category:'B\u00e1sicas', fn:function(t){return convert(t,'sansBoldItalic');}},\r\n        {id:'mono', name:'Monoespaciada', short:'Mono', category:'Gaming', fn:function(t){return convert(t,'mono');}},\r\n        {id:'full', name:'Ancha japonesa', short:'Ancha', category:'Aesthetic', fn:function(t){return convert(t,'full');}},\r\n        {id:'circled', name:'Letras circulares', short:'Circular', category:'Raras', fn:function(t){return convert(t,'circled');}},\r\n        {id:'negativeCircled', name:'C\u00edrculo oscuro', short:'C\u00edrculo oscuro', category:'Raras', fn:function(t){return convert(t,'negativeCircled');}},\r\n        {id:'squared', name:'Cuadrada clara', short:'Cuadrada', category:'Gaming', fn:function(t){return convert(t,'squared');}},\r\n        {id:'negativeSquared', name:'Cuadrada oscura', short:'Bloque', category:'Gaming', fn:function(t){return convert(t,'negativeSquared');}},\r\n        {id:'smallCaps', name:'Versalitas', short:'Versalitas', category:'Elegante', fn:function(t){return convert(t,'smallCaps');}},\r\n        {id:'super', name:'Super\u00edndice', short:'Super\u00edndice', category:'Raras', fn:function(t){return convert(t,'super');}},\r\n        {id:'sub', name:'Sub\u00edndice', short:'Sub\u00edndice', category:'Raras', fn:function(t){return convert(t,'sub');}},\r\n        {id:'spaced', name:'Espaciado limpio', short:'Espaciado', category:'Aesthetic', fn:spaced},\r\n        {id:'dotted', name:'Puntos entre letras', short:'Puntos', category:'Aesthetic', fn:dotted},\r\n        {id:'starsBetween', name:'Estrellas entre letras', short:'Estrellas', category:'S\u00edmbolos', fn:starBetween},\r\n        {id:'wavesBetween', name:'Ondas entre letras', short:'Ondas', category:'Aesthetic', fn:waveBetween},\r\n        {id:'underline', name:'Subrayado Unicode', short:'Subrayado', category:'B\u00e1sicas', fn:function(t){return addCombining(t,'\\u0332');}},\r\n        {id:'strike', name:'Tachado Unicode', short:'Tachado', category:'Raras', fn:function(t){return addCombining(t,'\\u0336');}},\r\n        {id:'overline', name:'L\u00ednea superior', short:'Overline', category:'Raras', fn:function(t){return addCombining(t,'\\u0305');}},\r\n        {id:'doubleUnderline', name:'Doble subrayado', short:'Doble l\u00ednea', category:'Raras', fn:function(t){return addCombining(t,'\\u0333');}},\r\n        {id:'slashOverlay', name:'Barra diagonal', short:'Diagonal', category:'Raras', fn:function(t){return addCombining(t,'\\u0338');}},\r\n        {id:'upper', name:'May\u00fasculas', short:'May\u00fasculas', category:'B\u00e1sicas', fn:upperText},\r\n        {id:'lower', name:'Min\u00fasculas', short:'Min\u00fasculas', category:'B\u00e1sicas', fn:lowerText},\r\n        {id:'alternating', name:'May\u00fasculas alternadas', short:'Alternadas', category:'Aesthetic', fn:alternating},\r\n        {id:'title', name:'Tipo t\u00edtulo', short:'T\u00edtulo', category:'B\u00e1sicas', fn:titleCase},\r\n        {id:'reverse', name:'Texto invertido', short:'Invertido', category:'Raras', fn:reversed},\r\n        {id:'flip', name:'Boca abajo', short:'Boca abajo', category:'Raras', fn:flipped},\r\n        {id:'bracketEach', name:'Cada letra en corchetes', short:'Corchetes', category:'S\u00edmbolos', fn:bracketEach},\r\n        {id:'slashEach', name:'Barra antes de cada letra', short:'Barras', category:'S\u00edmbolos', fn:slashEach},\r\n        {id:'wideSpace', name:'Espaciado amplio', short:'Amplio', category:'Aesthetic', fn:wideSpaced}\r\n      ];\r\n\r\n      var decorators = [\r\n        {name:'Estrellas suaves', category:'Instagram', pre:'\u2726 ', post:' \u2726'},\r\n        {name:'Estrella brillante', category:'Instagram', pre:'\u2605 ', post:' \u2605'},\r\n        {name:'Mini estrellas', category:'Aesthetic', pre:'\u22c6 ', post:' \u22c6'},\r\n        {name:'Marco m\u00e1gico', category:'Gaming', pre:'\ua9c1 ', post:' \ua9c2'},\r\n        {name:'Alas m\u00edsticas', category:'Gaming', pre:'\ud80c\udda9 ', post:' \ud80c\uddaa'},\r\n        {name:'Corazones simples', category:'Amor', pre:'\u2661 ', post:' \u2661'},\r\n        {name:'Coraz\u00f3n fuerte', category:'Amor', pre:'\u2764 ', post:' \u2764'},\r\n        {name:'Flecha de amor', category:'Amor', pre:'\u2765 ', post:' \u2765'},\r\n        {name:'Flores suaves', category:'Kawaii', pre:'\u273f ', post:' \u273f'},\r\n        {name:'Flor aesthetic', category:'Kawaii', pre:'\u2740 ', post:' \u2740'},\r\n        {name:'Nube cute', category:'Kawaii', pre:'\u2601 ', post:' \u2601'},\r\n        {name:'Luna elegante', category:'Elegante', pre:'\u263e ', post:' \u263d'},\r\n        {name:'Brillo fino', category:'Elegante', pre:'\u27e1 ', post:' \u27e1'},\r\n        {name:'Comillas japonesas', category:'Aesthetic', pre:'\u300e', post:'\u300f'},\r\n        {name:'Marco japon\u00e9s', category:'Aesthetic', pre:'\u3010', post:'\u3011'},\r\n        {name:'Doble \u00e1ngulo', category:'Elegante', pre:'\u300a', post:'\u300b'},\r\n        {name:'Cute brackets', category:'Kawaii', pre:'\ua4b0 ', post:' \ua4b1'},\r\n        {name:'Rayo gamer', category:'Gaming', pre:'\u26a1 ', post:' \u26a1'},\r\n        {name:'Barras gamer', category:'Gaming', pre:'\u2591\u2592\u2593 ', post:' \u2593\u2592\u2591'},\r\n        {name:'L\u00ednea premium', category:'Elegante', pre:'\u2501\u2501\u2501 ', post:' \u2501\u2501\u2501'},\r\n        {name:'Flecha delicada', category:'Instagram', pre:'\u27b3 ', post:' \u0f04'},\r\n        {name:'Marco cl\u00e1sico', category:'Raras', pre:'\u0f3a ', post:' \u0f3b'},\r\n        {name:'Marco tibetano', category:'Raras', pre:'\u0f04 ', post:' \u0fd0'},\r\n        {name:'Runas laterales', category:'Raras', pre:'\u169b ', post:' \u169c'},\r\n        {name:'Brillo editorial', category:'Elegante', pre:'\u2727\uff65\uff9f: ', post:' :\uff65\uff9f\u2727'},\r\n        {name:'Sue\u00f1o cute', category:'Kawaii', pre:'\ufe35\u203f ', post:' \u203f\ufe35'},\r\n        {name:'Olas suaves', category:'Aesthetic', pre:'\u301c ', post:' \u301c'},\r\n        {name:'Diamantes', category:'Elegante', pre:'\u25c7 ', post:' \u25c7'},\r\n        {name:'Diamantes negros', category:'Gaming', pre:'\u25c6 ', post:' \u25c6'},\r\n        {name:'Corona simple', category:'Instagram', pre:'\u265b ', post:' \u265b'},\r\n        {name:'Corona cute', category:'Kawaii', pre:'\u2655 ', post:' \u2655'},\r\n        {name:'Chispas', category:'Aesthetic', pre:'\u2729 ', post:' \u2729'},\r\n        {name:'Fuego gamer', category:'Gaming', pre:'\ud83d\udd25 ', post:' \ud83d\udd25'},\r\n        {name:'Rosa amor', category:'Amor', pre:'\ud83c\udf39 ', post:' \ud83c\udf39'},\r\n        {name:'Mariposa', category:'Kawaii', pre:'\ud83e\udd8b ', post:' \ud83e\udd8b'},\r\n        {name:'Perlas', category:'Elegante', pre:'\u2022\u00b7.\u00b7\u00b4\u00af`\u00b7.\u00b7\u2022 ', post:' \u2022\u00b7.\u00b7\u00b4\u00af`\u00b7.\u00b7\u2022'},\r\n        {name:'Aesthetic completo', category:'Aesthetic', pre:'\u22c6\uff61\u00b0\u2729 ', post:' \u2729\u00b0\uff61\u22c6'},\r\n        {name:'Marco cute', category:'Kawaii', pre:'\u0b68\u0b67 ', post:' \u0b68\u0b67'},\r\n        {name:'Se\u00f1al gamer', category:'Gaming', pre:'\u2abb ', post:' \u2abc'},\r\n        {name:'Luz ne\u00f3n', category:'Instagram', pre:'\u273a ', post:' \u273a'}\r\n      ];\r\n\r\n      var styleItems = [];\r\n      fontPacks.forEach(function(pack){\r\n        styleItems.push({\r\n          name: pack.name,\r\n          category: pack.category,\r\n          badge: 'Fuente',\r\n          keywords: pack.name + ' ' + pack.short + ' letras fuente unicode copiar pegar',\r\n          fn: pack.fn\r\n        });\r\n      });\r\n\r\n      var comboFonts = fontPacks.slice(0, 24);\r\n      decorators.forEach(function(dec){\r\n        comboFonts.forEach(function(pack){\r\n          styleItems.push({\r\n            name: dec.name + ' \u00b7 ' + pack.short,\r\n            category: dec.category,\r\n            badge: dec.category,\r\n            keywords: dec.name + ' ' + pack.name + ' ' + dec.category + ' instagram tiktok whatsapp gamer amor kawaii aesthetic',\r\n            fn:function(t){ return dec.pre + pack.fn(t) + dec.post; }\r\n          });\r\n        });\r\n      });\r\n\r\n      var categories = ['Todos','Instagram','Aesthetic','Elegante','Amor','Kawaii','Gaming','Raras','B\u00e1sicas','S\u00edmbolos'];\r\n\r\n      function cleanInput(){\r\n        var value = input.value.trim();\r\n        return value || 'Letras Bonitas';\r\n      }\r\n\r\n      function filterStyles(){\r\n        var query = (searchEl.value || '').toLowerCase().trim();\r\n        return styleItems.filter(function(item){\r\n          var categoryOk = activeCategory === 'Todos' || item.category === activeCategory;\r\n          var queryOk = !query || (item.name + ' ' + item.category + ' ' + item.keywords).toLowerCase().indexOf(query) !== -1;\r\n          return categoryOk && queryOk;\r\n        });\r\n      }\r\n\r\n      function updateCount(){\r\n        var len = input.value.length;\r\n        countEl.textContent = len + (len === 1 ? ' car\u00e1cter' : ' caracteres');\r\n      }\r\n\r\n      function makeCard(item, text, index){\r\n        var card = document.createElement('article');\r\n        card.className = 'l101f-card';\r\n\r\n        var head = document.createElement('div');\r\n        head.className = 'l101f-card-head';\r\n\r\n        var title = document.createElement('h3');\r\n        title.className = 'l101f-style-name';\r\n        title.textContent = (index + 1) + '. ' + item.name;\r\n\r\n        var badge = document.createElement('span');\r\n        badge.className = 'l101f-badge';\r\n        badge.textContent = item.badge || item.category;\r\n\r\n        head.appendChild(title);\r\n        head.appendChild(badge);\r\n\r\n        var row = document.createElement('div');\r\n        row.className = 'l101f-output-row';\r\n\r\n        var output = document.createElement('div');\r\n        output.className = 'l101f-output';\r\n        var transformed = item.fn(text);\r\n        output.textContent = transformed;\r\n\r\n        var copy = document.createElement('button');\r\n        copy.className = 'l101f-copy';\r\n        copy.type = 'button';\r\n        copy.textContent = 'Copiar';\r\n        copy.addEventListener('click', function(){\r\n          copyText(transformed, copy);\r\n        });\r\n\r\n        row.appendChild(output);\r\n        row.appendChild(copy);\r\n        card.appendChild(head);\r\n        card.appendChild(row);\r\n        return card;\r\n      }\r\n\r\n      function renderTabs(){\r\n        tabsEl.innerHTML = '';\r\n        categories.forEach(function(cat){\r\n          var btn = document.createElement('button');\r\n          btn.className = 'l101f-tab' + (cat === activeCategory ? ' is-active' : '');\r\n          btn.type = 'button';\r\n          btn.textContent = cat;\r\n          btn.addEventListener('click', function(){\r\n            activeCategory = cat;\r\n            visibleLimit = 48;\r\n            render();\r\n          });\r\n          tabsEl.appendChild(btn);\r\n        });\r\n      }\r\n\r\n      function render(){\r\n        updateCount();\r\n        renderTabs();\r\n        var text = cleanInput();\r\n        lastFiltered = filterStyles();\r\n        resultsEl.innerHTML = '';\r\n        totalEl.textContent = lastFiltered.length + ' estilos encontrados';\r\n\r\n        if(!lastFiltered.length){\r\n          var empty = document.createElement('div');\r\n          empty.className = 'l101f-empty';\r\n          empty.textContent = 'No encontramos estilos con esa b\u00fasqueda. Prueba con \u201camor\u201d, \u201cgamer\u201d, \u201cinstagram\u201d o \u201celegante\u201d.';\r\n          resultsEl.appendChild(empty);\r\n          loadBtn.style.display = 'none';\r\n          return;\r\n        }\r\n\r\n        lastFiltered.slice(0, visibleLimit).forEach(function(item, index){\r\n          resultsEl.appendChild(makeCard(item, text, index));\r\n        });\r\n\r\n        loadBtn.style.display = lastFiltered.length > visibleLimit ? 'inline-block' : 'none';\r\n        loadBtn.textContent = 'Mostrar m\u00e1s estilos (' + Math.max(lastFiltered.length - visibleLimit, 0) + ' restantes)';\r\n      }\r\n\r\n      function showToast(message){\r\n        toast.textContent = message;\r\n        toast.classList.add('show');\r\n        clearTimeout(toastTimer);\r\n        toastTimer = setTimeout(function(){ toast.classList.remove('show'); }, 1500);\r\n      }\r\n\r\n      function copyText(text, button){\r\n        function done(){\r\n          if(button){\r\n            var original = button.textContent;\r\n            button.textContent = 'Copiado';\r\n            button.classList.add('is-copied');\r\n            setTimeout(function(){\r\n              button.textContent = original;\r\n              button.classList.remove('is-copied');\r\n            }, 1200);\r\n          }\r\n          showToast('Texto copiado correctamente');\r\n        }\r\n        if(navigator.clipboard && window.isSecureContext){\r\n          navigator.clipboard.writeText(text).then(done).catch(function(){ fallbackCopy(text); done(); });\r\n        }else{\r\n          fallbackCopy(text);\r\n          done();\r\n        }\r\n      }\r\n\r\n      function fallbackCopy(text){\r\n        var area = document.createElement('textarea');\r\n        area.value = text;\r\n        area.setAttribute('readonly', '');\r\n        area.style.position = 'fixed';\r\n        area.style.left = '-9999px';\r\n        document.body.appendChild(area);\r\n        area.select();\r\n        try{ document.execCommand('copy'); }catch(e){}\r\n        document.body.removeChild(area);\r\n      }\r\n\r\n      function insertAtCursor(symbol){\r\n        var start = input.selectionStart || 0;\r\n        var end = input.selectionEnd || 0;\r\n        var value = input.value;\r\n        input.value = value.slice(0, start) + symbol + value.slice(end);\r\n        var next = start + symbol.length;\r\n        input.focus();\r\n        input.setSelectionRange(next, next);\r\n        render();\r\n      }\r\n\r\n\r\n      function initToolsDirectory(){\r\n        var toolTabsEl = root.querySelector('#l101f-tool-tabs');\r\n        var toolGridEl = root.querySelector('#l101f-tools-grid');\r\n        var toolSearchEl = root.querySelector('#l101f-tool-search');\r\n        var toolTotalEl = root.querySelector('#l101f-tool-total');\r\n        if(!toolTabsEl || !toolGridEl || !toolSearchEl || !toolTotalEl) return;\r\n\r\n        var toolActive = 'Todos';\r\n        var toolCategories = [\r\n          {key:'Todos', label:'\ud83d\udd0d Todos'},\r\n          {key:'Herramientas', label:'\u2699\ufe0f Herramientas'},\r\n          {key:'Estilos', label:'\u2728 Estilos'},\r\n          {key:'Redes sociales', label:'\ud83d\udcf1 Redes sociales'},\r\n          {key:'Cultural', label:'\ud83c\udf0d Cultural'},\r\n          {key:'Especial', label:'\ud83c\udfaf Especial'},\r\n          {key:'Imprimir', label:'\ud83d\udda8\ufe0f Imprimir'}\r\n        ];\r\n\r\n        var toolItems = [\r\n          {icon:'\ud83d\udd04', title:'Convertidor de letras', desc:'Convierte tu texto en m\u00e1s de 15 estilos diferentes al instante.', cat:'Herramientas', url:'\/convertidor-de-letras\/'},\r\n          {icon:'C', title:'Letras cursivas', desc:'Fuentes cursivas elegantes listas para copiar y pegar.', cat:'Estilos', url:'\/letras-cursivas\/'},\r\n          {icon:'G', title:'Letras g\u00f3ticas', desc:'Fuentes g\u00f3ticas y medievales para textos con car\u00e1cter.', cat:'Estilos', url:'\/letras-goticas\/'},\r\n          {icon:'\u2728', title:'Letras aesthetic', desc:'Estilos aesthetic modernos para perfiles y publicaciones.', cat:'Estilos', url:'\/letras-aesthetic\/'},\r\n          {icon:'\ud83c\udfa8', title:'Letras graffiti', desc:'Dise\u00f1os urbanos y estilos de graffiti para nombres y t\u00edtulos.', cat:'Estilos', url:'\/letras-graffiti\/'},\r\n          {icon:'\ud83c\udfaf', title:'Letras 3D', desc:'Letras con efecto tridimensional para destacar tu texto.', cat:'Estilos', url:'\/letras-3d\/'},\r\n          {icon:'\ud83e\udee7', title:'Letras bubble', desc:'Letras redondeadas tipo burbuja para dise\u00f1os divertidos.', cat:'Estilos', url:'\/letras-bubble\/'},\r\n          {icon:'B', title:'Letras en negrita', desc:'Texto en negrita para resaltar nombres, frases y mensajes.', cat:'Estilos', url:'\/letras-negritas\/'},\r\n          {icon:'\ud83d\udd20', title:'Sopa de letras', desc:'Crea y juega sopas de letras personalizadas.', cat:'Herramientas', url:'\/sopa-de-letras\/'},\r\n          {icon:'\ud83d\udcf8', title:'Fuentes para Instagram', desc:'Fuentes especiales para biograf\u00edas, captions y publicaciones.', cat:'Redes sociales', url:'\/fuentes-para-instagram\/'},\r\n          {icon:'\ud83d\udd8b\ufe0f', title:'Letras para tatuajes', desc:'Estilos de lettering pensados para ideas de tatuajes.', cat:'Especial', url:'\/letras-para-tatuajes\/'},\r\n          {icon:'\ud83d\udcdd', title:'Letras para t\u00edtulos', desc:'Fuentes elegantes para encabezados, portadas y frases destacadas.', cat:'Estilos', url:'\/letras-para-titulos\/'},\r\n          {icon:'\ud83d\udd24', title:'Tipos de fuentes', desc:'Cat\u00e1logo completo de tipos de fuentes y estilos de letras.', cat:'Herramientas', url:'\/tipos-de-fuentes\/'},\r\n          {icon:'\ud83d\udd25', title:'Letras cool', desc:'Letras originales y llamativas para textos diferentes.', cat:'Estilos', url:'\/letras-cool\/'},\r\n          {icon:'\ud83d\udc51', title:'Letras elegantes', desc:'Fuentes sofisticadas para nombres, invitaciones y biograf\u00edas.', cat:'Estilos', url:'\/letras-elegantes\/'},\r\n          {icon:'\ud83c\udf11', title:'Letras con sombra', desc:'Letras con efecto de sombra para dar profundidad visual.', cat:'Estilos', url:'\/letras-con-sombra\/'},\r\n          {icon:'\ud83c\udfae', title:'Letras para Free Fire', desc:'Nombres, nicknames y estilos especiales para Free Fire.', cat:'Redes sociales', url:'\/letras-para-free-fire\/'},\r\n          {icon:'\ud83d\udcac', title:'Fuentes para Facebook', desc:'Fuentes especiales para publicaciones, comentarios y perfiles.', cat:'Redes sociales', url:'\/fuentes-para-facebook\/'},\r\n          {icon:'\u270f\ufe0f', title:'Letras chola', desc:'Estilo chola y de barrio para dise\u00f1os con identidad urbana.', cat:'Estilos', url:'\/letras-chola\/'},\r\n          {icon:'\ud83c\udf39', title:'Letras chicanas', desc:'Letras estilo chicano y lowrider para dise\u00f1os decorativos.', cat:'Estilos', url:'\/letras-chicanas\/'},\r\n          {icon:'\ud83c\udde8\ud83c\uddf3', title:'Caracteres chinos', desc:'Caracteres chinos populares junto con su significado.', cat:'Cultural', url:'\/caracteres-chinos\/'},\r\n          {icon:'\ud83c\uddef\ud83c\uddf5', title:'Letras japonesas', desc:'Hiragana, Katakana y Kanji para aprender y copiar.', cat:'Cultural', url:'\/letras-japonesas\/'},\r\n          {icon:'\u03a9', title:'Letras griegas', desc:'Alfabeto griego completo con nombres y pronunciaci\u00f3n.', cat:'Cultural', url:'\/letras-griegas\/'},\r\n          {icon:'IV', title:'Letras romanas', desc:'N\u00fameros romanos, letras cl\u00e1sicas y conversiones b\u00e1sicas.', cat:'Cultural', url:'\/letras-romanas\/'},\r\n          {icon:'\ud83d\udccb', title:'Letras para copiar y pegar', desc:'Colecci\u00f3n de letras especiales listas para usar.', cat:'Herramientas', url:'\/letras-para-copiar-y-pegar\/'},\r\n          {icon:'\ud83d\udd21', title:'Alfabeto', desc:'El alfabeto espa\u00f1ol completo con estilos y ejemplos.', cat:'Herramientas', url:'\/alfabeto\/'},\r\n          {icon:'\ud83d\udd22', title:'N\u00fameros a letras', desc:'Convierte n\u00fameros en palabras en espa\u00f1ol de forma r\u00e1pida.', cat:'Herramientas', url:'\/numeros-a-letras\/'},\r\n          {icon:'\u270d\ufe0f', title:'Letras manuscritas', desc:'Estilos de escritura a mano y caligraf\u00eda decorativa.', cat:'Estilos', url:'\/letras-manuscritas\/'},\r\n          {icon:'\ud83d\udca7', title:'Letras Triple Wash', desc:'Estilo Triple Wash para lettering decorativo y creativo.', cat:'Estilos', url:'\/letras-triple-wash\/'},\r\n          {icon:'\ud83d\udda8\ufe0f', title:'Plantillas de letras', desc:'Plantillas imprimibles de letras y patrones para manualidades.', cat:'Imprimir', url:'\/plantillas-de-letras\/'},\r\n          {icon:'\ud83c\udfa8', title:'Letras para colorear', desc:'Letras grandes listas para colorear e imprimir.', cat:'Imprimir', url:'\/letras-para-colorear\/'},\r\n          {icon:'\ud83e\uddf5', title:'Letras de punto de cruz', desc:'Patrones de letras para bordado y punto de cruz.', cat:'Imprimir', url:'\/letras-punto-de-cruz\/'},\r\n          {icon:'\ud83c\udf82', title:'Letras de feliz cumplea\u00f1os', desc:'Dise\u00f1os especiales para felicitaciones de cumplea\u00f1os.', cat:'Especial', url:'\/letras-feliz-cumpleanos\/'},\r\n          {icon:'\ud83c\udf84', title:'Letras navide\u00f1as', desc:'Fuentes y letras con estilo de Navidad.', cat:'Especial', url:'\/letras-navidenas\/'},\r\n          {icon:'\ud83d\udce3', title:'Letras para carteles', desc:'Letras grandes y llamativas para posters, anuncios y se\u00f1ales.', cat:'Especial', url:'\/letras-para-carteles\/'},\r\n          {icon:'\ud83d\udd0d', title:'Letra peque\u00f1a', desc:'Texto diminuto y caracteres peque\u00f1os para usos especiales.', cat:'Especial', url:'\/letra-pequena\/'},\r\n          {icon:'\ud83d\udd2d', title:'Letras grandes', desc:'Letras gigantes tipo ASCII art\u00edstico para mensajes grandes.', cat:'Especial', url:'\/letras-grandes\/'},\r\n          {icon:'\ud83d\udc7b', title:'Letras invisibles', desc:'Caracteres invisibles, espacios especiales y texto oculto.', cat:'Especial', url:'\/letras-invisibles\/'},\r\n          {icon:'\u2753', title:'\u00bfCu\u00e1ntas letras tiene el alfabeto?', desc:'Aprende cu\u00e1ntas letras tiene el alfabeto espa\u00f1ol y c\u00f3mo se usa.', cat:'Herramientas', url:'\/cuantas-letras-tiene-el-alfabeto\/'},\r\n          {icon:'\ud83d\udd8c\ufe0f', title:'Lettering', desc:'Gu\u00eda sobre el arte del lettering y la caligraf\u00eda moderna.', cat:'Herramientas', url:'\/lettering\/'},\r\n          {icon:'\ud83d\udda8\ufe0f', title:'Letras para imprimir', desc:'Letras, alfabetos y recursos listos para imprimir.', cat:'Imprimir', url:'\/letras-para-imprimir\/'}\r\n        ];\r\n\r\n        function normalizeToolText(value){\r\n          return String(value || '').toLowerCase().normalize('NFD').replace(\/[\\u0300-\\u036f]\/g, '');\r\n        }\r\n\r\n        function renderToolTabs(){\r\n          toolTabsEl.innerHTML = '';\r\n          toolCategories.forEach(function(item){\r\n            var btn = document.createElement('button');\r\n            btn.type = 'button';\r\n            btn.className = 'l101f-tab' + (item.key === toolActive ? ' is-active' : '');\r\n            btn.textContent = item.label;\r\n            btn.addEventListener('click', function(){\r\n              toolActive = item.key;\r\n              renderTools();\r\n            });\r\n            toolTabsEl.appendChild(btn);\r\n          });\r\n        }\r\n\r\n        function renderTools(){\r\n          var q = normalizeToolText(toolSearchEl.value);\r\n          var filtered = toolItems.filter(function(item){\r\n            var matchesCat = toolActive === 'Todos' || item.cat === toolActive;\r\n            var haystack = normalizeToolText(item.title + ' ' + item.desc + ' ' + item.cat + ' ' + item.url);\r\n            return matchesCat && (!q || haystack.indexOf(q) !== -1);\r\n          });\r\n\r\n          renderToolTabs();\r\n          toolGridEl.innerHTML = '';\r\n          toolTotalEl.textContent = filtered.length + ' herramientas';\r\n\r\n          if(!filtered.length){\r\n            var empty = document.createElement('div');\r\n            empty.className = 'l101f-empty';\r\n            empty.style.gridColumn = '1 \/ -1';\r\n            empty.textContent = 'No encontramos herramientas con esa b\u00fasqueda. Prueba con \u201cInstagram\u201d, \u201cg\u00f3ticas\u201d, \u201ctatuajes\u201d o \u201cimprimir\u201d.';\r\n            toolGridEl.appendChild(empty);\r\n            return;\r\n          }\r\n\r\n          filtered.forEach(function(item){\r\n            var a = document.createElement('a');\r\n            a.className = 'l101f-tool-card';\r\n            a.href = item.url;\r\n            a.setAttribute('aria-label', item.title);\r\n\r\n            var icon = document.createElement('span');\r\n            icon.className = 'l101f-tool-icon';\r\n            icon.textContent = item.icon;\r\n\r\n            var body = document.createElement('span');\r\n            body.className = 'l101f-tool-body';\r\n            var title = document.createElement('h3');\r\n            title.textContent = item.title;\r\n            var desc = document.createElement('p');\r\n            desc.textContent = item.desc;\r\n            var meta = document.createElement('span');\r\n            meta.className = 'l101f-tool-meta';\r\n            meta.textContent = item.cat;\r\n\r\n            body.appendChild(title);\r\n            body.appendChild(desc);\r\n            body.appendChild(meta);\r\n            a.appendChild(icon);\r\n            a.appendChild(body);\r\n            toolGridEl.appendChild(a);\r\n          });\r\n        }\r\n\r\n        toolSearchEl.addEventListener('input', renderTools);\r\n        renderTools();\r\n      }\r\n\r\n      input.addEventListener('input', render);\r\n      searchEl.addEventListener('input', function(){ visibleLimit = 48; render(); });\r\n      loadBtn.addEventListener('click', function(){ visibleLimit += 48; render(); });\r\n      clearBtn.addEventListener('click', function(){ input.value = ''; input.focus(); render(); });\r\n      copyFirstBtn.addEventListener('click', function(){\r\n        var first = filterStyles()[0];\r\n        if(first) copyText(first.fn(cleanInput()), copyFirstBtn);\r\n      });\r\n\r\n      root.querySelectorAll('#l101f-presets .l101f-chip').forEach(function(btn){\r\n        btn.addEventListener('click', function(){\r\n          input.value = btn.getAttribute('data-text') || '';\r\n          input.focus();\r\n          render();\r\n        });\r\n      });\r\n\r\n      root.querySelectorAll('#l101f-symbols .l101f-symbol').forEach(function(btn){\r\n        btn.addEventListener('click', function(){ insertAtCursor(btn.textContent); });\r\n      });\r\n\r\n      initToolsDirectory();\r\n\r\n      input.value = 'Letras Bonitas';\r\n      render();\r\n    })();\r\n  <\/script>\r\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u2726 Herramienta gratis para copiar y pegar Generador de letras bonitas y fuentes para redes sociales Escribe tu texto una sola vez y convierte tus palabras en cientos de estilos decorativos para Instagram, TikTok, WhatsApp, nombres gamer, biograf\u00edas, t\u00edtulos y mensajes. 200+estilos disponibles 1 clicpara copiar 100%sin plugins \ud835\udcdb\ud835\udcee\ud835\udcfd\ud835\udcfb\ud835\udcea\ud835\udcfcCopiar \u2726 Texto bonito \u2726Copiar \ud835\udd3d\ud835\udd66\ud835\udd56\ud835\udd5f\ud835\udd65\ud835\udd56\ud835\udd64Copiar \u2661 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-11","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/pages\/11","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/comments?post=11"}],"version-history":[{"count":13,"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/pages\/11\/revisions"}],"predecessor-version":[{"id":54,"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/pages\/11\/revisions\/54"}],"wp:attachment":[{"href":"https:\/\/dev.websitick.com\/index.php\/wp-json\/wp\/v2\/media?parent=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}