{"product_id":"um-t-shirt-designer","title":"UM T-Shirt Designer","description":"\u003cstyle\u003e\n  \/* =========================================================\n     FIVEM-LAB — UM T-SHIRT DESIGNER\n     3D CLOTHING STUDIO \/ MULTI-FRAMEWORK\n     ========================================================= *\/\n\n  .fml-um-tshirt {\n    --gold:#ffd700;\n    --white:#ffffff;\n    --black:#050505;\n    --text:rgba(255,255,255,.92);\n    --muted:rgba(255,255,255,.66);\n    --dim:rgba(255,255,255,.42);\n    --line:rgba(255,255,255,.10);\n    --line-soft:rgba(255,255,255,.055);\n    --gold-line:rgba(255,215,0,.34);\n    --panel:rgba(255,255,255,.022);\n\n    width:100%;\n    max-width:1180px;\n    margin:0 auto;\n    padding:18px 0 88px;\n\n    color:var(--text);\n    background:transparent;\n    font-family:inherit;\n    font-size:16px;\n    line-height:1.7;\n  }\n\n  .fml-um-tshirt,\n  .fml-um-tshirt *,\n  .fml-um-tshirt *::before,\n  .fml-um-tshirt *::after {\n    box-sizing:border-box;\n  }\n\n  .fml-um-tshirt h2,\n  .fml-um-tshirt h3,\n  .fml-um-tshirt p,\n  .fml-um-tshirt dl,\n  .fml-um-tshirt dt,\n  .fml-um-tshirt dd {\n    margin:0;\n  }\n\n  .fml-um-tshirt a {\n    color:inherit;\n  }\n\n  .fml-um-tshirt ::selection {\n    color:#050505;\n    background:var(--gold);\n  }\n\n  .fml-um-tshirt code {\n    padding:2px 6px;\n\n    color:var(--gold);\n    background:rgba(255,215,0,.055);\n\n    border:1px solid rgba(255,215,0,.18);\n    border-radius:3px;\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n  }\n\n\n  \/* =========================================================\n     HERO\n     ========================================================= *\/\n\n  .fml-um-tshirt__hero {\n    position:relative;\n    overflow:hidden;\n\n    display:grid;\n    grid-template-columns:minmax(0,1.03fr) minmax(330px,.72fr);\n    gap:clamp(28px,5vw,64px);\n    align-items:center;\n\n    padding:clamp(36px,5.5vw,72px);\n\n    border:1px solid var(--line);\n    border-top-color:var(--gold-line);\n    border-radius:7px;\n\n    background:\n      radial-gradient(\n        circle at 91% 5%,\n        rgba(255,215,0,.14),\n        transparent 30%\n      ),\n      linear-gradient(\n        135deg,\n        rgba(255,215,0,.034),\n        transparent 48%\n      ),\n      rgba(0,0,0,.18);\n  }\n\n  .fml-um-tshirt__hero::before {\n    content:\"\";\n    position:absolute;\n    top:0;\n    left:0;\n\n    width:min(440px,72%);\n    height:2px;\n\n    background:var(--gold);\n    box-shadow:0 0 24px rgba(255,215,0,.36);\n  }\n\n  .fml-um-tshirt__eyebrow {\n    display:flex;\n    flex-wrap:wrap;\n    gap:8px 16px;\n\n    margin-bottom:24px;\n\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:10px;\n    font-weight:900;\n    letter-spacing:.15em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__eyebrow span + span {\n    color:var(--dim);\n  }\n\n  .fml-um-tshirt__eyebrow span + span::before {\n    content:\"\/\";\n    margin-right:16px;\n    color:var(--gold);\n  }\n\n  .fml-um-tshirt__title {\n    color:var(--white) !important;\n\n    font-size:clamp(42px,5.8vw,74px) !important;\n    font-weight:950 !important;\n    letter-spacing:-.052em;\n    line-height:.95 !important;\n\n    text-wrap:balance;\n  }\n\n  .fml-um-tshirt__lead {\n    max-width:820px;\n    margin-top:27px !important;\n\n    color:var(--muted) !important;\n\n    font-size:clamp(18px,1.9vw,23px);\n    font-weight:600;\n    line-height:1.58;\n  }\n\n  .fml-um-tshirt__lead strong {\n    color:var(--white);\n  }\n\n  .fml-um-tshirt__badges {\n    display:flex;\n    flex-wrap:wrap;\n    gap:10px;\n\n    margin-top:31px;\n  }\n\n  .fml-um-tshirt__badge {\n    display:inline-flex;\n    align-items:center;\n\n    min-height:37px;\n    padding:0 13px;\n\n    color:var(--white);\n    background:rgba(255,255,255,.025);\n\n    border:1px solid var(--line);\n    border-radius:3px;\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:.09em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__badge--gold {\n    color:#050505;\n    background:var(--gold);\n    border-color:var(--gold);\n  }\n\n  .fml-um-tshirt__meta {\n    display:flex;\n    flex-wrap:wrap;\n    gap:10px 25px;\n\n    margin-top:28px;\n    padding-top:22px;\n\n    border-top:1px solid var(--line);\n  }\n\n  .fml-um-tshirt__meta span {\n    position:relative;\n    padding-left:17px;\n\n    color:var(--dim);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:850;\n    letter-spacing:.09em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__meta span::before {\n    content:\"\";\n    position:absolute;\n    top:.7em;\n    left:0;\n\n    width:7px;\n    height:1px;\n    background:var(--gold);\n  }\n\n\n  \/* HERO MEDIA *\/\n\n  .fml-um-tshirt__media {\n    position:relative;\n    overflow:hidden;\n\n    min-height:400px;\n\n    border:1px solid var(--line);\n    border-radius:5px;\n\n    background:#050505;\n  }\n\n  .fml-um-tshirt__media img {\n    display:block;\n\n    width:100%;\n    height:100%;\n    min-height:400px;\n\n    object-fit:cover;\n  }\n\n  .fml-um-tshirt__media::after {\n    content:\"\";\n    position:absolute;\n    inset:0;\n\n    pointer-events:none;\n\n    background:\n      linear-gradient(\n        180deg,\n        transparent 54%,\n        rgba(0,0,0,.82)\n      );\n  }\n\n  .fml-um-tshirt__media-tag {\n    position:absolute;\n    z-index:2;\n    right:15px;\n    bottom:14px;\n    left:15px;\n\n    color:rgba(255,255,255,.72);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:.1em;\n    text-transform:uppercase;\n  }\n\n\n  \/* =========================================================\n     SECTION BASE\n     ========================================================= *\/\n\n  .fml-um-tshirt__section {\n    padding:clamp(54px,7vw,88px) 0;\n    border-bottom:1px solid var(--line);\n  }\n\n  .fml-um-tshirt__head {\n    display:grid;\n    grid-template-columns:minmax(125px,.24fr) minmax(0,1fr);\n    gap:clamp(26px,5vw,68px);\n    align-items:start;\n  }\n\n  .fml-um-tshirt__index {\n    padding-top:7px;\n\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:10px;\n    font-weight:900;\n    letter-spacing:.12em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__kicker {\n    margin-bottom:13px;\n\n    color:var(--dim);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:850;\n    letter-spacing:.14em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__section-title {\n    max-width:950px;\n\n    color:var(--white) !important;\n\n    font-size:clamp(29px,3.9vw,47px) !important;\n    font-weight:950 !important;\n    letter-spacing:-.04em;\n    line-height:1.05 !important;\n\n    text-wrap:balance;\n  }\n\n  .fml-um-tshirt__intro {\n    max-width:900px;\n    margin-top:20px !important;\n\n    color:var(--muted) !important;\n\n    font-size:clamp(16px,1.45vw,19px);\n    line-height:1.74;\n  }\n\n  .fml-um-tshirt__statement {\n    display:grid;\n    grid-template-columns:minmax(0,1fr) auto;\n    gap:30px;\n    align-items:end;\n\n    margin-top:42px;\n    padding-top:27px;\n\n    border-top:1px solid var(--line);\n  }\n\n  .fml-um-tshirt__statement p {\n    max-width:860px;\n\n    color:var(--text) !important;\n\n    font-size:clamp(18px,2vw,23px);\n    font-weight:650;\n    line-height:1.5;\n  }\n\n  .fml-um-tshirt__code-label {\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:10px;\n    font-weight:900;\n    letter-spacing:.12em;\n    white-space:nowrap;\n  }\n\n\n  \/* =========================================================\n     STATS\n     ========================================================= *\/\n\n  .fml-um-tshirt__stats {\n    display:grid;\n    grid-template-columns:repeat(4,minmax(0,1fr));\n    gap:12px;\n\n    margin-top:42px;\n  }\n\n  .fml-um-tshirt__stat {\n    min-width:0;\n    padding:23px;\n\n    border:1px solid var(--line);\n    border-top-color:var(--gold-line);\n    border-radius:4px;\n\n    background:var(--panel);\n  }\n\n  .fml-um-tshirt__stat small {\n    display:block;\n    margin-bottom:17px;\n\n    color:var(--dim);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:8px;\n    font-weight:900;\n    letter-spacing:.1em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__stat strong {\n    display:block;\n\n    color:var(--gold);\n\n    font-size:clamp(23px,2.8vw,36px);\n    font-weight:950;\n    letter-spacing:-.045em;\n    line-height:1;\n  }\n\n  .fml-um-tshirt__stat span {\n    display:block;\n    margin-top:10px;\n\n    color:var(--muted);\n\n    font-size:12px;\n    line-height:1.5;\n  }\n\n\n  \/* =========================================================\n     CARDS\n     ========================================================= *\/\n\n  .fml-um-tshirt__grid {\n    display:grid;\n    grid-template-columns:repeat(2,minmax(0,1fr));\n    gap:14px;\n\n    margin-top:42px;\n  }\n\n  .fml-um-tshirt__card {\n    position:relative;\n    overflow:hidden;\n\n    padding:clamp(24px,3vw,31px);\n\n    border:1px solid var(--line);\n    border-radius:4px;\n\n    background:var(--panel);\n\n    transition:\n      transform .18s ease,\n      border-color .18s ease,\n      background .18s ease;\n  }\n\n  .fml-um-tshirt__card::before {\n    content:\"\";\n    position:absolute;\n    top:0;\n    left:0;\n\n    width:0;\n    height:1px;\n\n    background:var(--gold);\n\n    transition:width .22s ease;\n  }\n\n  .fml-um-tshirt__card:hover {\n    transform:translateY(-2px);\n    border-color:var(--gold-line);\n    background:rgba(255,255,255,.038);\n  }\n\n  .fml-um-tshirt__card:hover::before {\n    width:100%;\n  }\n\n  .fml-um-tshirt__card-top {\n    display:flex;\n    justify-content:space-between;\n    gap:14px;\n\n    margin-bottom:26px;\n  }\n\n  .fml-um-tshirt__number {\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:10px;\n    font-weight:950;\n  }\n\n  .fml-um-tshirt__label {\n    color:var(--dim);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:8px;\n    font-weight:800;\n    letter-spacing:.09em;\n    text-align:right;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__card h3 {\n    margin:0 0 11px !important;\n\n    color:var(--white) !important;\n\n    font-size:clamp(20px,2vw,25px) !important;\n    font-weight:950 !important;\n    letter-spacing:-.03em;\n    line-height:1.15 !important;\n  }\n\n  .fml-um-tshirt__card p {\n    color:var(--muted) !important;\n\n    font-size:14px;\n    line-height:1.7;\n  }\n\n\n  \/* =========================================================\n     DESIGN STUDIO PANEL\n     ========================================================= *\/\n\n  .fml-um-tshirt__studio {\n    display:grid;\n    grid-template-columns:minmax(0,1fr) 270px;\n    gap:16px;\n\n    margin-top:42px;\n  }\n\n  .fml-um-tshirt__studio-main,\n  .fml-um-tshirt__studio-side {\n    padding:clamp(26px,4vw,38px);\n\n    border:1px solid var(--line);\n    border-radius:5px;\n\n    background:var(--panel);\n  }\n\n  .fml-um-tshirt__studio-main {\n    border-color:var(--gold-line);\n\n    background:\n      linear-gradient(\n        130deg,\n        rgba(255,215,0,.055),\n        transparent 55%\n      ),\n      var(--panel);\n  }\n\n  .fml-um-tshirt__studio small {\n    display:block;\n    margin-bottom:11px;\n\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:.11em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__studio h3 {\n    margin:0 0 13px !important;\n\n    color:var(--white) !important;\n\n    font-size:clamp(22px,3vw,32px) !important;\n    font-weight:950 !important;\n    letter-spacing:-.035em;\n    line-height:1.1 !important;\n  }\n\n  .fml-um-tshirt__studio p {\n    color:var(--muted) !important;\n\n    font-size:14px;\n    line-height:1.72;\n  }\n\n  .fml-um-tshirt__studio-side {\n    display:flex;\n    flex-direction:column;\n    justify-content:space-between;\n\n    min-height:230px;\n  }\n\n  .fml-um-tshirt__studio-side strong {\n    color:var(--gold);\n\n    font-size:clamp(28px,4vw,43px);\n    font-weight:950;\n    letter-spacing:-.045em;\n    line-height:1;\n  }\n\n\n  \/* =========================================================\n     TEMPLATES\n     ========================================================= *\/\n\n  .fml-um-tshirt__templates {\n    display:grid;\n    grid-template-columns:repeat(4,minmax(0,1fr));\n    gap:10px;\n\n    margin-top:42px;\n  }\n\n  .fml-um-tshirt__template {\n    padding:22px 18px;\n\n    border:1px solid var(--line);\n    border-top-color:var(--gold-line);\n    border-radius:4px;\n\n    background:var(--panel);\n  }\n\n  .fml-um-tshirt__template small {\n    display:block;\n    margin-bottom:24px;\n\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:900;\n  }\n\n  .fml-um-tshirt__template strong {\n    display:block;\n\n    color:var(--white);\n\n    font-size:17px;\n    font-weight:950;\n  }\n\n  .fml-um-tshirt__template span {\n    display:block;\n    margin-top:7px;\n\n    color:var(--muted);\n\n    font-size:11px;\n    line-height:1.5;\n  }\n\n\n  \/* =========================================================\n     GALLERY\n     ========================================================= *\/\n\n  .fml-um-tshirt__gallery {\n    display:grid;\n    grid-template-columns:1fr;\n    gap:14px;\n\n    margin-top:42px;\n  }\n\n  .fml-um-tshirt__image {\n    overflow:hidden;\n\n    border:1px solid var(--line);\n    border-radius:5px;\n\n    background:#050505;\n  }\n\n  .fml-um-tshirt__image img {\n    display:block;\n\n    width:100%;\n    height:auto;\n\n    transition:transform .3s ease;\n  }\n\n  .fml-um-tshirt__image:hover img {\n    transform:scale(1.01);\n  }\n\n\n  \/* =========================================================\n     WARNING \/ EARLY ACCESS\n     ========================================================= *\/\n\n  .fml-um-tshirt__notice {\n    margin-top:42px;\n    padding:clamp(26px,4vw,38px);\n\n    border:1px solid var(--gold-line);\n    border-left:3px solid var(--gold);\n    border-radius:4px;\n\n    background:\n      linear-gradient(\n        110deg,\n        rgba(255,215,0,.055),\n        transparent 55%\n      ),\n      rgba(255,255,255,.015);\n  }\n\n  .fml-um-tshirt__notice small {\n    display:block;\n    margin-bottom:12px;\n\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:.11em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__notice h3 {\n    margin:0 0 13px !important;\n\n    color:var(--white) !important;\n\n    font-size:clamp(22px,3vw,31px) !important;\n    font-weight:950 !important;\n    letter-spacing:-.035em;\n  }\n\n  .fml-um-tshirt__notice p {\n    max-width:930px;\n\n    color:var(--muted) !important;\n\n    font-size:13px;\n    line-height:1.72;\n  }\n\n\n  \/* =========================================================\n     TECH\n     ========================================================= *\/\n\n  .fml-um-tshirt__terminal {\n    margin-top:42px;\n    overflow:hidden;\n\n    border:1px solid var(--gold-line);\n    border-radius:4px;\n\n    background:\n      linear-gradient(\n        180deg,\n        rgba(255,215,0,.026),\n        transparent 30%\n      ),\n      rgba(0,0,0,.20);\n  }\n\n  .fml-um-tshirt__terminal-head {\n    display:flex;\n    flex-wrap:wrap;\n    justify-content:space-between;\n    gap:10px 24px;\n\n    padding:14px 18px;\n\n    border-bottom:1px solid var(--line);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:.09em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__terminal-head strong {\n    color:var(--gold);\n  }\n\n  .fml-um-tshirt__terminal-head span {\n    color:var(--dim);\n  }\n\n  .fml-um-tshirt__spec-grid {\n    display:grid;\n    grid-template-columns:repeat(2,minmax(0,1fr));\n  }\n\n  .fml-um-tshirt__spec {\n    padding:clamp(23px,3.5vw,32px);\n\n    border-right:1px solid var(--line);\n    border-bottom:1px solid var(--line);\n  }\n\n  .fml-um-tshirt__spec:nth-child(2n) {\n    border-right:0;\n  }\n\n  .fml-um-tshirt__spec:nth-last-child(-n + 2) {\n    border-bottom:0;\n  }\n\n  .fml-um-tshirt__spec dt {\n    margin-bottom:11px;\n\n    color:var(--dim);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:8px;\n    font-weight:900;\n    letter-spacing:.12em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__spec-value {\n    display:block;\n\n    color:var(--white);\n\n    font-size:clamp(19px,2.3vw,28px);\n    font-weight:950;\n    letter-spacing:-.035em;\n    line-height:1.1;\n  }\n\n  .fml-um-tshirt__spec:first-child\n  .fml-um-tshirt__spec-value {\n    color:var(--gold);\n  }\n\n  .fml-um-tshirt__spec-copy {\n    display:block;\n    margin-top:9px;\n\n    color:var(--muted);\n\n    font-size:12px;\n    line-height:1.58;\n  }\n\n\n  \/* =========================================================\n     LINKS\n     ========================================================= *\/\n\n  .fml-um-tshirt__links {\n    display:flex;\n    flex-wrap:wrap;\n    gap:12px;\n\n    margin-top:30px;\n  }\n\n  .fml-um-tshirt__link {\n    display:inline-flex;\n    align-items:center;\n    justify-content:center;\n    gap:10px;\n\n    min-height:46px;\n    padding:0 18px;\n\n    color:var(--white) !important;\n    background:rgba(255,255,255,.025);\n\n    border:1px solid var(--line);\n    border-radius:4px;\n\n    font-size:11px;\n    font-weight:900;\n    letter-spacing:.04em;\n    text-decoration:none !important;\n    text-transform:uppercase;\n\n    transition:\n      transform .18s ease,\n      border-color .18s ease,\n      color .18s ease;\n  }\n\n  .fml-um-tshirt__link:hover {\n    transform:translateY(-2px);\n    color:var(--gold) !important;\n    border-color:var(--gold-line);\n  }\n\n  .fml-um-tshirt__link--gold {\n    color:#050505 !important;\n    background:var(--gold);\n    border-color:var(--gold);\n  }\n\n  .fml-um-tshirt__link--gold:hover {\n    color:#050505 !important;\n  }\n\n\n  \/* =========================================================\n     CLOSING\n     ========================================================= *\/\n\n  .fml-um-tshirt__closing {\n    position:relative;\n    overflow:hidden;\n\n    margin-top:clamp(62px,8vw,100px);\n    padding:clamp(38px,6vw,72px);\n\n    border-top:1px solid var(--gold-line);\n    border-bottom:1px solid var(--line);\n\n    background:\n      radial-gradient(\n        circle at 100% 0,\n        rgba(255,215,0,.12),\n        transparent 34%\n      ),\n      rgba(255,255,255,.012);\n  }\n\n  .fml-um-tshirt__closing-label {\n    margin-bottom:19px;\n\n    color:var(--gold);\n\n    font-family:\n      ui-monospace,\n      SFMono-Regular,\n      Menlo,\n      Monaco,\n      Consolas,\n      monospace;\n\n    font-size:9px;\n    font-weight:900;\n    letter-spacing:.13em;\n    text-transform:uppercase;\n  }\n\n  .fml-um-tshirt__closing h2 {\n    max-width:950px;\n\n    color:var(--white) !important;\n\n    font-size:clamp(31px,4.4vw,52px) !important;\n    font-weight:950 !important;\n    letter-spacing:-.045em;\n    line-height:1.03 !important;\n\n    text-wrap:balance;\n  }\n\n  .fml-um-tshirt__closing p {\n    max-width:890px;\n    margin-top:20px !important;\n\n    color:var(--muted) !important;\n\n    font-size:16px;\n    line-height:1.74;\n  }\n\n  .fml-um-tshirt__final {\n    margin-top:clamp(44px,7vw,72px);\n\n    color:var(--white);\n\n    font-size:clamp(25px,3.7vw,44px);\n    font-weight:950;\n    letter-spacing:-.043em;\n    line-height:1.08;\n    text-align:center;\n\n    text-wrap:balance;\n  }\n\n  .fml-um-tshirt__final em {\n    color:var(--gold);\n    font-style:normal;\n  }\n\n\n  \/* =========================================================\n     RESPONSIVE\n     ========================================================= *\/\n\n  @media (max-width:1000px) {\n    .fml-um-tshirt__hero {\n      grid-template-columns:1fr;\n    }\n\n    .fml-um-tshirt__media,\n    .fml-um-tshirt__media img {\n      min-height:430px;\n    }\n\n    .fml-um-tshirt__stats,\n    .fml-um-tshirt__templates {\n      grid-template-columns:repeat(2,minmax(0,1fr));\n    }\n  }\n\n  @media (max-width:900px) {\n    .fml-um-tshirt__head {\n      grid-template-columns:1fr;\n      gap:15px;\n    }\n\n    .fml-um-tshirt__studio {\n      grid-template-columns:1fr;\n    }\n  }\n\n  @media (max-width:680px) {\n    .fml-um-tshirt {\n      padding-top:8px;\n    }\n\n    .fml-um-tshirt__hero {\n      padding:29px 20px;\n    }\n\n    .fml-um-tshirt__eyebrow {\n      display:grid;\n      gap:5px;\n    }\n\n    .fml-um-tshirt__eyebrow span + span::before {\n      display:none;\n    }\n\n    .fml-um-tshirt__media,\n    .fml-um-tshirt__media img {\n      min-height:270px;\n    }\n\n    .fml-um-tshirt__statement,\n    .fml-um-tshirt__stats,\n    .fml-um-tshirt__grid,\n    .fml-um-tshirt__templates,\n    .fml-um-tshirt__spec-grid {\n      grid-template-columns:1fr;\n    }\n\n    .fml-um-tshirt__code-label {\n      white-space:normal;\n    }\n\n    .fml-um-tshirt__spec {\n      border-right:0;\n      border-bottom:1px solid var(--line);\n    }\n\n    .fml-um-tshirt__spec:nth-last-child(-n + 2) {\n      border-bottom:1px solid var(--line);\n    }\n\n    .fml-um-tshirt__spec:last-child {\n      border-bottom:0;\n    }\n\n    .fml-um-tshirt__links {\n      flex-direction:column;\n    }\n\n    .fml-um-tshirt__link {\n      width:100%;\n    }\n\n    .fml-um-tshirt__closing {\n      padding:36px 21px;\n    }\n  }\n\n  @media (prefers-reduced-motion:reduce) {\n    .fml-um-tshirt *,\n    .fml-um-tshirt *::before,\n    .fml-um-tshirt *::after {\n      transition-duration:.01ms !important;\n      animation-duration:.01ms !important;\n    }\n  }\n\u003c\/style\u003e\n\n\n\u003carticle class=\"fml-um-tshirt\"\u003e\n\n  \u003c!-- =======================================================\n       HERO\n       ======================================================= --\u003e\n\n  \u003cheader class=\"fml-um-tshirt__hero\"\u003e\n\n    \u003cdiv\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__eyebrow\"\u003e\n        \u003cspan\u003eFiveM Clothing Creator\u003c\/span\u003e\n        \u003cspan\u003eUM T-Shirt Designer\u003c\/span\u003e\n      \u003c\/div\u003e\n\n\n      \u003ch2 class=\"fml-um-tshirt__title\"\u003e\n        Design the Shirt. Wear It Five Minutes Later.\n      \u003c\/h2\u003e\n\n\n      \u003cp class=\"fml-um-tshirt__lead\"\u003e\n        Forget uploading a texture, restarting the resource and opening\n        Photoshop because somebody wanted their crew logo two centimeters\n        lower.\n        \u003cstrong\u003eUM T-Shirt Designer puts the whole design studio inside FiveM.\u003c\/strong\u003e\n        Paint directly on the shirt, throw on a logo, add text, change colors,\n        rotate the model and watch the result appear on your character while\n        you're still editing it.\n      \u003c\/p\u003e\n\n\n      \u003cdiv class=\"fml-um-tshirt__badges\"\u003e\n\n        \u003cspan class=\"fml-um-tshirt__badge fml-um-tshirt__badge--gold\"\u003e\n          Live 3D Designer\n        \u003c\/span\u003e\n\n        \u003cspan class=\"fml-um-tshirt__badge\"\u003e\n          22 Kit Templates\n        \u003c\/span\u003e\n\n        \u003cspan class=\"fml-um-tshirt__badge\"\u003e\n          Logos + Text\n        \u003c\/span\u003e\n\n        \u003cspan class=\"fml-um-tshirt__badge\"\u003e\n          ESX \/ QB \/ QBox \/ Standalone\n        \u003c\/span\u003e\n\n      \u003c\/div\u003e\n\n\n      \u003cdiv class=\"fml-um-tshirt__meta\"\u003e\n        \u003cspan\u003e5 character slots\u003c\/span\u003e\n        \u003cspan\u003ereal-time multiplayer sync\u003c\/span\u003e\n        \u003cspan\u003eoxmysql persistence\u003c\/span\u003e\n        \u003cspan\u003emale + female shirts\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__media\"\u003e\n\n      \u003cimg src=\"https:\/\/forum-cfx-re.akamaized.net\/original\/5X\/6\/1\/1\/a\/611adac85080338ce08cada4d5826bfa82964ed6.gif\" alt=\"UM T-Shirt Designer FiveM 3D clothing creator\" loading=\"lazy\" width=\"600\" height=\"337\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__media-tag\"\u003e\n        Draw it · Move it · Wear it\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/header\u003e\n\n\n  \u003c!-- =======================================================\n       WHY\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        00 \/ The Idea\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          Custom clothing without turning every little edit into developer work\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Your players get the fun part. Your staff gets fewer “can you make me this shirt?” tickets.\n        \u003c\/h2\u003e\n\n\n        \u003cp class=\"fml-um-tshirt__intro\"\u003e\n          UM T-Shirt Designer moves clothing creativity out of external tools\n          and directly into gameplay. A player can start with a template,\n          change individual shirt zones, import a logo, write custom text or\n          simply paint over the real shirt model using the built-in brush.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__statement\"\u003e\n\n      \u003cp\u003e\n        Crew merch. Football kits. Business uniforms. Event shirts. Dumb inside\n        jokes printed across somebody's back at 3 AM. Once players can build\n        clothing themselves, they will absolutely find reasons to use it.\n      \u003c\/p\u003e\n\n      \u003cspan class=\"fml-um-tshirt__code-label\"\u003e\n        \/\/ PHOTOSHOP HAS LEFT THE CHAT\n      \u003c\/span\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__stats\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__stat\"\u003e\n        \u003csmall\u003eKit Templates\u003c\/small\u003e\n        \u003cstrong\u003e22\u003c\/strong\u003e\n        \u003cspan\u003eReady-made football-inspired pattern layouts.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__stat\"\u003e\n        \u003csmall\u003eLogos Per Design\u003c\/small\u003e\n        \u003cstrong\u003eUp to 4\u003c\/strong\u003e\n        \u003cspan\u003ePosition and resize external image logos.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__stat\"\u003e\n        \u003csmall\u003eWardrobe Slots\u003c\/small\u003e\n        \u003cstrong\u003e5\u003c\/strong\u003e\n        \u003cspan\u003eFive saved design slots per character by default.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__stat\"\u003e\n        \u003csmall\u003eFramework Mode\u003c\/small\u003e\n        \u003cstrong\u003e4 Ways\u003c\/strong\u003e\n        \u003cspan\u003eQBox, QBCore, ESX or standalone.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       3D STUDIO\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        01 \/ Studio\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          Not a flat PNG editor pretending to be 3D\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          You're painting the actual GTA shirt mesh while looking at it in 3D.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__studio\"\u003e\n\n      \u003carticle class=\"fml-um-tshirt__studio-main\"\u003e\n\n        \u003csmall\u003e\n          \/\/ LIVE 3D VIEWPORT\n        \u003c\/small\u003e\n\n        \u003ch3\u003e\n          Rotate it. Zoom in. Draw directly where you want it.\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          The design studio uses the real shirt mesh inside a 3D viewport.\n          Players can use the brush, rotate the model, zoom closer and see each\n          change reflected on their character in real time. No export step.\n          No guessing how a flat texture will wrap around the body.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003caside class=\"fml-um-tshirt__studio-side\"\u003e\n\n        \u003csmall\u003e\n          Front-end stack\n        \u003c\/small\u003e\n\n        \u003cstrong\u003e3D LIVE\u003c\/strong\u003e\n\n        \u003csmall\u003e\n          Svelte 5 · three.js · Vite\n        \u003c\/small\u003e\n\n      \u003c\/aside\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__grid\"\u003e\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e01\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eBrush · Draw\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003ePaint Straight Onto the Shirt\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Use the built-in brush to draw directly on the garment. What you see\n          in the editor is tied to the shirt itself, so designing feels closer\n          to customizing an object than editing a mystery texture file.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e02\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eRotate · Zoom\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eCheck the Whole Shirt\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Rotate around the model and zoom into smaller details instead of\n          discovering after purchase that the best part of the logo somehow\n          ended up under somebody's armpit.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e03\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eCharacter · Live\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eSee It on the Character Immediately\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Changes appear on the player's character while designing, cutting out\n          the usual loop of edit, save, reload, check, hate it, repeat.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e04\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eMale · Female\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eAddon Shirts Are Detected Automatically\u003c\/h3\u003e\n\n        \u003cp\u003e\n          The system supports separate male and female shirt setups and can\n          automatically detect the addon shirts used for each gender.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       KIT TEMPLATES\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        02 \/ Templates\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          Because not everybody wants to start from a blank white shirt\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Pick a layout, hit it with your colors and you've already got the bones of a proper kit.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__templates\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e01\u003c\/small\u003e\n        \u003cstrong\u003eStripes\u003c\/strong\u003e\n        \u003cspan\u003eClassic vertical and kit-style visual patterns.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e02\u003c\/small\u003e\n        \u003cstrong\u003eSashes\u003c\/strong\u003e\n        \u003cspan\u003eDiagonal layouts for cleaner statement designs.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e03\u003c\/small\u003e\n        \u003cstrong\u003eChevrons\u003c\/strong\u003e\n        \u003cspan\u003eSharper geometric football-inspired setups.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e04\u003c\/small\u003e\n        \u003cstrong\u003eQuarters\u003c\/strong\u003e\n        \u003cspan\u003eSplit-zone designs with separate color control.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e05\u003c\/small\u003e\n        \u003cstrong\u003eCheckers\u003c\/strong\u003e\n        \u003cspan\u003eFor the player who decided subtle was boring.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e06\u003c\/small\u003e\n        \u003cstrong\u003eGradients\u003c\/strong\u003e\n        \u003cspan\u003eSmoother color transitions without building them manually.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e07\u003c\/small\u003e\n        \u003cstrong\u003eZone Colors\u003c\/strong\u003e\n        \u003cspan\u003eIndependent base, sleeve and collar colors.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__template\"\u003e\n        \u003csmall\u003e08\u003c\/small\u003e\n        \u003cstrong\u003e22 Total\u003c\/strong\u003e\n        \u003cspan\u003eA broader library beyond the examples shown here.\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__statement\"\u003e\n\n      \u003cp\u003e\n        Base color, sleeves and collar can be handled independently with palette\n        controls and hex input. Don't want one of the design layers?\n        Turn it off instead of rebuilding the whole shirt.\n      \u003c\/p\u003e\n\n      \u003cspan class=\"fml-um-tshirt__code-label\"\u003e\n        \/\/ START FAST · TWEAK EVERYTHING\n      \u003c\/span\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       LOGOS + TEXT\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        03 \/ Branding\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          This is where server merch starts getting dangerous\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Import logos, write whatever you want and move everything around like actual design objects.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__grid\"\u003e\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e01\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eImage URL · Logo\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eBring Your Own Logo\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Load a logo from an image URL and place it on the shirt as an object.\n          Great for businesses, teams, crews, communities and that one guy who\n          absolutely needs his Discord avatar on a T-shirt.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e02\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eDrag · Resize\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eMove It Until It Looks Right\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Logos can be dragged, resized from the corners and deleted without\n          rebuilding the entire design.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e03\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eUp to 4\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eFour Logos Per Design\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Each shirt can store up to four logo objects, with their placement\n          restored when the design is loaded again.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e04\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eText · Fonts\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eWrite on the Shirt Too\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Add custom text using five built-in fonts, choose the color and size,\n          then move or resize it like any other design object.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e05\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eEdit · Live\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eChanged Your Mind? Edit It.\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Existing text can be updated live, including wording and font,\n          without deleting everything and starting again.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e06\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eBrand · Crew · Event\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eOne Tool, Lots of Merch\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Football shirts, company uniforms, faction clothing, race-team kits,\n          event merch or custom community shirts can all come from the same\n          editor instead of separate clothing packs.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       WARDROBE\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        04 \/ Wardrobe\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          One custom shirt was never going to be enough\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Every character gets a small personal wardrobe of saved designs.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__studio\"\u003e\n\n      \u003carticle class=\"fml-um-tshirt__studio-main\"\u003e\n\n        \u003csmall\u003e\n          \/\/ CHARACTER DESIGN SLOTS\n        \u003c\/small\u003e\n\n        \u003ch3\u003e\n          Save it now. Come back and ruin it creatively later.\n        \u003c\/h3\u003e\n\n        \u003cp\u003e\n          Each character gets five design slots by default. Players can switch\n          between saved shirts, reopen an existing design for editing and\n          choose which one is currently worn. Saved design data is restored on\n          login and character switching.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003caside class=\"fml-um-tshirt__studio-side\"\u003e\n\n        \u003csmall\u003e\n          Default slots\n        \u003c\/small\u003e\n\n        \u003cstrong\u003e5\u003c\/strong\u003e\n\n        \u003csmall\u003e\n          Configurable wardrobe count\n        \u003c\/small\u003e\n\n      \u003c\/aside\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       MULTIPLAYER\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        05 \/ Multiplayer\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          Custom clothing isn't very exciting if only the person wearing it can see it\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Designs sync to nearby players without trying to keep every custom shirt in the city rendered forever.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__grid\"\u003e\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e01\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eNearby · Sync\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eOther Players See the Design\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Custom shirts are synchronized to nearby clients automatically,\n          turning the editor into an actual multiplayer clothing system rather\n          than a local-only visual trick.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e02\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eClosest · Render\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eRender What's Around You\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Clients focus on nearby visible designs instead of trying to hold\n          every custom shirt on the server at once.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e03\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eRelease · Distance\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eWalk Away, Free the Resource\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Designs belonging to players who leave the relevant range can be\n          released client-side instead of hanging around unnecessarily.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e04\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eConfig · Budget\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eControl the Visible-Design Budget\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Sync range and visible-design limits are configurable so server owners\n          can tune the system around their own environment.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__notice\"\u003e\n\n      \u003csmall\u003e\n        \/\/ EARLY ACCESS LIMIT\n      \u003c\/small\u003e\n\n      \u003ch3\u003e\n        Current release: 20 simultaneous visibility channels.\n      \u003c\/h3\u003e\n\n      \u003cp\u003e\n        In the current Early Access build, up to 20 players server-wide can wear\n        custom designs visibly at the same time. This is a simultaneous\n        visibility limit, not a limit on the total number of designs stored\n        across the server. The developer states that the channel count will\n        increase as the included clothing pack expands in future updates.\n      \u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       STORAGE + FRAMEWORKS\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        06 \/ Persistence\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          Spending twenty minutes on a shirt should probably survive a reconnect\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Designs come back with the character instead of disappearing with the session.\n        \u003c\/h2\u003e\n\n\n        \u003cp class=\"fml-um-tshirt__intro\"\u003e\n          Shirt layouts, layers, logos and text objects are stored through\n          \u003ccode\u003eoxmysql\u003c\/code\u003e and restored when the character returns.\n          Database tables are also created and migrated automatically when the\n          resource first starts.\n        \u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__statement\"\u003e\n\n      \u003cp\u003e\n        The framework bridge handles character identity and load\/unload events,\n        with automatic detection available for QBox, QBCore and ESX setups.\n        Prefer standalone? That's supported too.\n      \u003c\/p\u003e\n\n      \u003cspan class=\"fml-um-tshirt__code-label\"\u003e\n        \/\/ DESIGN SAVED · DRIP PRESERVED\n      \u003c\/span\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       CONFIG\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        07 \/ Config\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          The editor looks fancy. The important server settings are still in one place.\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Tune the camera, wardrobe size, sync distance and clothing setup without digging through the whole resource.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__grid\"\u003e\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e01\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eCamera\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eControl the Design View\u003c\/h3\u003e\n\n        \u003cp\u003e\n          FOV, distance, offset and depth-of-field behavior are configurable,\n          letting you tune how the shirt is presented during editing.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e02\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eSlots\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eChange Wardrobe Capacity\u003c\/h3\u003e\n\n        \u003cp\u003e\n          The default five-slot wardrobe count can be adjusted if your server\n          wants more or fewer saved designs per character.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e03\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eSync Range\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eDecide How Far Designs Matter\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Nearby synchronization range and the visible-design budget are\n          configurable from the resource settings.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n\n      \u003carticle class=\"fml-um-tshirt__card\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__card-top\"\u003e\n          \u003cspan class=\"fml-um-tshirt__number\"\u003e04\u003c\/span\u003e\n          \u003cspan class=\"fml-um-tshirt__label\"\u003eLocalization\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003ch3\u003eTranslate the Interface\u003c\/h3\u003e\n\n        \u003cp\u003e\n          Built-in localization uses the \u003ccode\u003eox_lib\u003c\/code\u003e locale system, so\n          the UI can be translated for your own community.\n        \u003c\/p\u003e\n\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       TECHNICAL\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        08 \/ Technical\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          The section you open immediately after saying “okay this is actually cool”\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Multi-framework support, persistent storage and only two listed dependencies.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__terminal\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__terminal-head\"\u003e\n\n        \u003cstrong\u003e\n          \/\/ UM_TSHIRT_DESIGNER\n        \u003c\/strong\u003e\n\n        \u003cspan\u003e\n          FiveM \/ Clothing Creator \/ 3D UI\n        \u003c\/span\u003e\n\n      \u003c\/div\u003e\n\n\n      \u003cdl class=\"fml-um-tshirt__spec-grid\"\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eFrameworks\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              QBox \/ QB \/ ESX \/ Standalone\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              Supports qbx_core, qb-core, ESX and fully standalone operation.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eFramework Detection\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              Auto \/ Manual\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              Framework can be detected automatically or configured manually.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eRequirements\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              ox_lib + oxmysql\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              These are the two listed resource dependencies.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eStorage\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              Persistent\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              Designs, layers, logos and text objects are stored in the\n              database and restored on character load.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eDatabase Setup\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              Automatic\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              Tables and migrations are handled automatically on first start.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eUI Stack\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              Svelte 5 + three.js\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              Built with Vite, Svelte 5, Tailwind and three.js.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eCode Access\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              Editable Files\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              The listing states that only editable files are accessible.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eApprox. Lines\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              ~3,300\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              Approximate line count supplied in the release information.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eSubscription\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              No\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              No recurring subscription is listed.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n\n        \u003cdiv class=\"fml-um-tshirt__spec\"\u003e\n\n          \u003cdt\u003eSupport\u003c\/dt\u003e\n\n          \u003cdd\u003e\n            \u003cspan class=\"fml-um-tshirt__spec-value\"\u003e\n              Yes\n            \u003c\/span\u003e\n\n            \u003cspan class=\"fml-um-tshirt__spec-copy\"\u003e\n              Developer support is listed as available.\n            \u003c\/span\u003e\n          \u003c\/dd\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/dl\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       SHOWCASE + PURCHASE\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__section\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__head\"\u003e\n\n      \u003cdiv class=\"fml-um-tshirt__index\"\u003e\n        09 \/ See It\n      \u003c\/div\u003e\n\n\n      \u003cdiv\u003e\n\n        \u003cdiv class=\"fml-um-tshirt__kicker\"\u003e\n          A 3D shirt designer makes more sense once you watch somebody actually use it\n        \u003c\/div\u003e\n\n\n        \u003ch2 class=\"fml-um-tshirt__section-title\"\u003e\n          Watch the design happen in real time, then decide how long your players are going to spend making shirts instead of roleplaying.\n        \u003c\/h2\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__gallery\"\u003e\n\n      \u003ca class=\"fml-um-tshirt__image\" href=\"https:\/\/www.youtube.com\/watch?v=NON-dbqTabA\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n        \u003cimg src=\"https:\/\/img.youtube.com\/vi\/NON-dbqTabA\/maxresdefault.jpg\" alt=\"UM T-Shirt Designer FiveM showcase\" loading=\"lazy\"\u003e\n      \u003c\/a\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"fml-um-tshirt__links\"\u003e\n\n      \u003ca class=\"fml-um-tshirt__link fml-um-tshirt__link--gold\" href=\"https:\/\/shop.uyuyorumstore.com\/package\/7636061\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n        View on Tebex\n        \u003cspan aria-hidden=\"true\"\u003e↗\u003c\/span\u003e\n      \u003c\/a\u003e\n\n\n      \u003ca class=\"fml-um-tshirt__link\" href=\"https:\/\/www.youtube.com\/watch?v=NON-dbqTabA\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n        Watch Showcase\n        \u003cspan aria-hidden=\"true\"\u003e↗\u003c\/span\u003e\n      \u003c\/a\u003e\n\n\n      \u003ca class=\"fml-um-tshirt__link\" href=\"https:\/\/forum.cfx.re\/t\/um-t-shirt-designer\/5424580\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n        Cfx.re Release\n        \u003cspan aria-hidden=\"true\"\u003e↗\u003c\/span\u003e\n      \u003c\/a\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003c!-- =======================================================\n       CLOSING\n       ======================================================= --\u003e\n\n  \u003csection class=\"fml-um-tshirt__closing\"\u003e\n\n    \u003cdiv class=\"fml-um-tshirt__closing-label\"\u003e\n      UM T-Shirt Designer \/ FiveM Clothing Creator\n    \u003c\/div\u003e\n\n\n    \u003ch2\u003e\n      Stop treating every custom shirt like a development request.\n    \u003c\/h2\u003e\n\n\n    \u003cp\u003e\n      UM T-Shirt Designer gives players a proper in-game creative studio with\n      live 3D editing, 22 kit templates, independent color zones, custom logos,\n      editable text, wardrobe slots, persistent database storage and\n      multiplayer synchronization — all while supporting QBox, QBCore, ESX and\n      standalone servers.\n    \u003c\/p\u003e\n\n  \u003c\/section\u003e\n\n\n  \u003cdiv class=\"fml-um-tshirt__final\"\u003e\n    Give players a blank shirt.\n    \u003cem\u003eThey'll handle the chaos from there.\u003c\/em\u003e\n  \u003c\/div\u003e\n\n\u003c\/article\u003e","brand":"Uyuyorumstore","offers":[{"title":"Default Title","offer_id":45781890859117,"sku":null,"price":18.6,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0683\/2072\/3053\/files\/611adac85080338ce08cada4d5826bfa82964ed6.gif?v=1788609037","url":"https:\/\/fivem-lab.com\/products\/um-t-shirt-designer","provider":"Fivem-Lab","version":"1.0","type":"link"}