{"id":6,"date":"2026-04-25T14:21:46","date_gmt":"2026-04-25T14:21:46","guid":{"rendered":"https:\/\/thesafejoker.com\/?page_id=6"},"modified":"2026-05-09T14:07:18","modified_gmt":"2026-05-09T14:07:18","slug":"home-page","status":"publish","type":"page","link":"https:\/\/thesafejoker.com\/th\/","title":{"rendered":"Home Page"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1248px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Orbitron:wght@400;600;700;900&family=Rajdhani:wght@300;400;500;600;700&family=Dancing+Script:wght@700&display=swap\" rel=\"stylesheet\">\n\n<!-- MOBILE BLOCK -->\n<style>\n\/* Assicura che i padding non aumentino la larghezza degli elementi *\/\n*, *::before, *::after {\n  box-sizing: border-box;\n}\nhtml, body, #tsj-root, #tsj {\n  overflow-x: hidden !important;\n  max-width: 100vw !important;\n}\n\/* Blocca rigorosamente lo scroll orizzontale *\/\nhtml, body {\n  width: 100%;\n  max-width: 100%;\n  overflow-x: hidden;\n  margin: 0;\n  padding: 0;\n}\n#tsj-mobile-block {\n  display:none;\n  position:fixed; inset:0; z-index:99999;\n  background:#050510;\n  flex-direction:column; align-items:center; justify-content:center;\n  padding:40px 32px; text-align:center;\n  \/* Scanlines *\/\n  background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.06) 2px,rgba(0,0,0,.06) 4px);\n}\n\/* Mostra solo su mobile *\/\n\/*@media(max-width:1024px){\n  #tsj-mobile-block { display:flex; }\n  #tsj-root-wrap { display:none!important; }\n}*\/\n\/* Glow sfondo *\/\n#tsj-mobile-block::before {\n  content:''; position:absolute; top:40%; left:50%;\n  transform:translate(-50%,-50%);\n  width:400px; height:400px; border-radius:50%;\n  background:radial-gradient(circle,rgba(255,26,46,.1),rgba(0,212,255,.07),transparent 70%);\n  pointer-events:none; animation:mbPulse 4s ease-in-out infinite;\n}\n@keyframes mbPulse {\n  0%,100%{transform:translate(-50%,-50%) scale(1)}\n  50%{transform:translate(-50%,-50%) scale(1.1)}\n}\n\/* Logo *\/\n.mb-logo {\n  font-family:'Orbitron',monospace;\n  font-size:18px; font-weight:900; letter-spacing:4px;\n  background:linear-gradient(90deg,#ff1a2e,#00d4ff);\n  -webkit-background-clip:text; -webkit-text-fill-color:transparent;\n  margin-bottom:32px; position:relative; z-index:1;\n}\n\/* Icona desktop *\/\n.mb-icon {\n  width:72px; height:72px; margin:0 auto 28px;\n  border-radius:16px;\n  border:1.5px solid rgba(0,212,255,.3);\n  background:rgba(0,212,255,.05);\n  display:flex; align-items:center; justify-content:center;\n  box-shadow:0 0 24px rgba(0,212,255,.15);\n  position:relative; z-index:1;\n  animation:mbFloat 3s ease-in-out infinite;\n}\n@keyframes mbFloat {\n  0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)}\n}\n\/* Titolo *\/\n.mb-title {\n  font-family:'Orbitron',monospace;\n  font-size:clamp(13px,4vw,16px); font-weight:700;\n  letter-spacing:1.5px; text-transform:uppercase;\n  color:rgba(255,255,255,.9);\n  margin-bottom:16px; line-height:1.5;\n  position:relative; z-index:1;\n}\n.mb-title .r { color:#ff1a2e; text-shadow:0 0 10px rgba(255,26,46,.5); }\n\/* Testo *\/\n.mb-text {\n  font-family:'Rajdhani',sans-serif;\n  font-size:clamp(14px,4vw,17px); font-weight:500;\n  color:rgba(255,255,255,.45); line-height:1.75;\n  max-width:360px; margin:0 auto 32px;\n  position:relative; z-index:1;\n}\n\/* Divider *\/\n.mb-div {\n  width:120px; height:1.5px; margin:0 auto 28px;\n  background:linear-gradient(90deg,transparent,#ff1a2e,#00d4ff,transparent);\n  box-shadow:0 0 10px rgba(0,212,255,.3);\n  position:relative; z-index:1;\n}\n\/* Tag *\/\n.mb-tag {\n  font-family:'Orbitron',monospace;\n  font-size:9px; letter-spacing:3px; font-weight:700;\n  color:rgba(0,212,255,.4); text-transform:uppercase;\n  position:relative; z-index:1;\n}\n\/* \u2500\u2500 MODAL CYBER PLAYER \u2500\u2500 *\/\n.tsj-modal-wrap {\n  position:fixed; inset:0; z-index:99000;\n  display:flex; align-items:center; justify-content:center;\n  background:rgba(2,2,14,.97);\n  backdrop-filter:blur(28px);\n  opacity:0; pointer-events:none;\n  transition:opacity .3s ease;\n}\n.tsj-modal-wrap::before {\n  content:''; position:absolute; inset:0; pointer-events:none;\n  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,212,255,.018) 2px,rgba(0,212,255,.018) 4px);\n}\n.tsj-modal-wrap::after {\n  content:''; position:absolute; inset:0; pointer-events:none;\n  background:radial-gradient(ellipse at 50% 40%,rgba(0,212,255,.07) 0%,rgba(255,26,46,.04) 40%,transparent 70%);\n}\n.tsj-modal-wrap.open { opacity:1; pointer-events:auto; }\n.tsj-modal-box {\n  position:relative; z-index:1;\n  display:flex; flex-direction:column; align-items:center;\n  transform:scale(.88) translateY(24px);\n  transition:transform .4s cubic-bezier(.34,1.56,.64,1);\n  padding:0 20px; width:100%; max-width:820px;\n}\n.tsj-modal-body {\n  display:flex; gap:20px; align-items:stretch; width:100%;\n}\n.tsj-modal-desc-panel {\n  flex:1; min-width:180px;\n  background:rgba(5,5,20,.92);\n  border:1px solid rgba(0,212,255,.18);\n  border-radius:12px; padding:22px 18px;\n  display:flex; flex-direction:column; gap:16px;\n  box-shadow:0 0 20px rgba(0,212,255,.06);\n}\n.tsj-modal-desc-title {\n  font-family:'Orbitron',monospace; font-size:8px;\n  letter-spacing:3px; font-weight:700;\n  color:rgba(0,212,255,.45); text-transform:uppercase;\n}\n.tsj-modal-desc-txt {\n  font-family:'Rajdhani',sans-serif; font-size:15px;\n  font-weight:500; color:rgba(255,255,255,.6);\n  line-height:1.75; flex:1;\n}\n.tsj-modal-tiktok-btn {\n display:inline-flex; align-items:center; justify-content:center; gap:8px;\n  padding:10px 16px; border-radius:8px;\n  border:1.5px solid rgba(255,26,46,.4);\n  background:rgba(255,26,46,.07);\n  color:#ff1a2e; font-family:'Orbitron',monospace;\n  font-size:9px; font-weight:700; letter-spacing:2px;\n  text-transform:uppercase; text-decoration:none;\n  transition:all .25s; cursor:pointer; white-space:nowrap;\n  align-self:center; width:100%;\n}\n.tsj-modal-tiktok-btn:hover {\n  background:rgba(255,26,46,.18);\n  box-shadow:0 0 18px rgba(255,26,46,.35);\n}\n.tsj-modal-wrap.open .tsj-modal-box { transform:scale(1) translateY(0); }\n.tsj-modal-hdr {\n  display:flex; align-items:center; gap:14px;\n  width:100%; margin-bottom:14px; padding:0 4px;\n}\n.tsj-modal-flag { font-size:32px; line-height:1; flex-shrink:0; }\n.tsj-modal-info { flex:1; min-width:0; }\n.tsj-modal-country {\n  font-family:'Orbitron',monospace;\n  font-size:14px; font-weight:900; letter-spacing:3px;\n  color:#fff; text-transform:uppercase; line-height:1.2;\n  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;\n}\n.tsj-modal-tag {\n  font-family:'Orbitron',monospace;\n  font-size:7px; letter-spacing:2.5px; font-weight:700;\n  color:rgba(0,212,255,.45); margin-top:5px; text-transform:uppercase;\n}\n.tsj-modal-close {\n  width:42px; height:42px; border-radius:9px; flex-shrink:0;\n  border:1.5px solid rgba(255,26,46,.45);\n  background:rgba(255,26,46,.08);\n  color:#ff1a2e; font-size:17px; font-weight:700;\n  display:flex; align-items:center; justify-content:center;\n  cursor:pointer; transition:all .25s;\n  box-shadow:0 0 14px rgba(255,26,46,.2), inset 0 0 8px rgba(255,26,46,.05);\n}\n.tsj-modal-close:hover {\n  background:rgba(255,26,46,.25);\n  box-shadow:0 0 28px rgba(255,26,46,.55);\n  transform:scale(1.08) rotate(90deg);\n}\n.tsj-modal-vid-wrap {\n  position:relative;\n  height:min(80vh,620px);\n  width:calc(min(80vh,620px) * 9 \/ 16);\n  flex-shrink:0;\n  border-radius:14px; overflow:hidden;\n  border:2px solid rgba(0,212,255,.5);\n  box-shadow:\n    0 0 0 1px rgba(0,212,255,.1),\n    0 0 40px rgba(0,212,255,.4),\n    0 0 80px rgba(255,26,46,.18),\n    0 0 140px rgba(0,212,255,.1);\n  animation:modalGlow 3s ease-in-out infinite;\n  background:#ffffff;\n  border:2px solid rgba(0,212,255,.5) !important;\n  box-shadow: 0 0 40px rgba(0,212,255,.4), 0 0 80px rgba(255,26,46,.18), inset 0 0 0 6px rgba(255,255,255,.9) !important; \n}\n@keyframes modalGlow {\n  0%,100%{ border-color:rgba(0,212,255,.5); box-shadow:0 0 0 1px rgba(0,212,255,.1),0 0 40px rgba(0,212,255,.4),0 0 80px rgba(255,26,46,.18); }\n  50%{ border-color:rgba(0,212,255,.8); box-shadow:0 0 0 1px rgba(0,212,255,.2),0 0 60px rgba(0,212,255,.6),0 0 110px rgba(255,26,46,.28); }\n}\n.tsj-modal-vid-wrap iframe {\n    position:absolute; inset:0; width:100%; height:100%; border:none;\n}\n\/* Angoli cyber *\/\n.tsj-mc { position:absolute; width:24px; height:24px; z-index:3; pointer-events:none; }\n.tsj-mc.tl { top:-1px; left:-1px; border-top:2.5px solid #00d4ff; border-left:2.5px solid #00d4ff; border-radius:3px 0 0 0; box-shadow:-3px -3px 8px rgba(0,212,255,.3); }\n.tsj-mc.tr { top:-1px; right:-1px; border-top:2.5px solid #ff1a2e; border-right:2.5px solid #ff1a2e; border-radius:0 3px 0 0; box-shadow:3px -3px 8px rgba(255,26,46,.3); }\n.tsj-mc.bl { bottom:-1px; left:-1px; border-bottom:2.5px solid #ff1a2e; border-left:2.5px solid #ff1a2e; border-radius:0 0 0 3px; box-shadow:-3px 3px 8px rgba(255,26,46,.3); }\n.tsj-mc.br { bottom:-1px; right:-1px; border-bottom:2.5px solid #00d4ff; border-right:2.5px solid #00d4ff; border-radius:0 0 3px 0; box-shadow:3px 3px 8px rgba(0,212,255,.3); }\n\/* Schermata Coming Soon *\/\n.tsj-modal-soon {\n  position:absolute; inset:0;\n  display:flex; flex-direction:column;\n  align-items:center; justify-content:center;\n  background:linear-gradient(145deg,#06061a,#0a0a24);\n  gap:10px;\n}\n.tsj-modal-soon-flag { font-size:52px; }\n.tsj-modal-soon-lbl {\n  font-family:'Orbitron',monospace; font-size:9px;\n  letter-spacing:4px; font-weight:700;\n  color:rgba(0,212,255,.4); text-transform:uppercase;\n}\n.tsj-modal-soon-name {\n  font-family:'Orbitron',monospace; font-size:18px;\n  font-weight:900; letter-spacing:2px; color:#fff; text-transform:uppercase;\n}\n.tsj-modal-soon-pulse {\n  width:8px; height:8px; border-radius:50%;\n  background:#00d4ff; margin-top:6px;\n  box-shadow:0 0 14px #00d4ff, 0 0 28px rgba(0,212,255,.4);\n  animation:orbitDotPulse 2s ease-in-out infinite;\n}\n\/* Badge card *\/\n\/* Badge card *\/\n.tsj-vcard-live {\n  position:absolute; top:10px; left:10px; z-index:5;\n  font-family:'Orbitron',monospace; font-size:7px;\n  font-weight:800; letter-spacing:2px; color:#ff1a2e;\n  background:rgba(0,0,0,.75); border:1px solid rgba(255,26,46,.5);\n  border-radius:6px; padding:0 12px !important; text-transform:uppercase;\n  box-shadow:0 0 8px rgba(255,26,46,.3);\n  animation:liveFlash 2s ease-in-out infinite;\n  height:24px!important; display:flex!important; align-items:center!important;\n}\n.tsj-vcard-soon {\n  position:absolute; top:10px; left:10px; z-index:5;\n  font-family:'Orbitron',monospace; font-size:7px;\n  font-weight:700; letter-spacing:2px; color:rgba(255,255,255,.6);\n  background:rgba(0,0,0,.75); border:1px solid rgba(255,255,255,.25);\n  border-radius:6px; padding:0 12px !important; text-transform:uppercase;\n  height:24px!important; display:flex!important; align-items:center!important;\n}\n@keyframes liveFlash { 0%,100%{opacity:1} 50%{opacity:.55} }\n\n.tsj-modal-endscreen {\n  position:absolute; inset:0; z-index:10;\n  background:linear-gradient(160deg,#02020e 0%,#060618 50%,#03030f 100%);\n  display:flex; flex-direction:column;\n  align-items:center; justify-content:center;\n  gap:0; padding:28px 20px; text-align:center;\n  border-radius:12px;\n  animation:esIn .5s cubic-bezier(.34,1.56,.64,1) forwards;\n}\n@keyframes esIn {\n  from{ opacity:0; transform:scale(.92); }\n  to{ opacity:1; transform:scale(1); }\n}\n.tsj-modal-endscreen::before {\n  content:''; position:absolute; inset:0; border-radius:12px;\n  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,212,255,.015) 2px,rgba(0,212,255,.015) 4px);\n  pointer-events:none; z-index:0;\n}\n.tsj-modal-endscreen::after {\n  content:''; position:absolute; inset:0; border-radius:12px;\n  background:radial-gradient(ellipse at 50% 40%,rgba(0,212,255,.06) 0%,rgba(255,26,46,.04) 50%,transparent 75%);\n  pointer-events:none; z-index:0;\n}\n.tsj-modal-endscreen-logo {\n  position:relative; z-index:1;\n  width:70px; height:70px; margin-bottom:18px;\n  animation:esPeacePulse 2.5s ease-in-out infinite;\n}\n@keyframes esPeacePulse {\n  0%,100%{ filter:drop-shadow(0 0 8px rgba(0,212,255,.5)) drop-shadow(0 0 20px rgba(255,26,46,.2)); }\n  50%{ filter:drop-shadow(0 0 16px rgba(0,212,255,.8)) drop-shadow(0 0 40px rgba(255,26,46,.4)); }\n}\n.tsj-modal-endscreen-divtop {\n  position:relative; z-index:1;\n  width:80px; height:1.5px; margin-bottom:14px;\n  background:linear-gradient(90deg,transparent,#ff1a2e,#00d4ff,transparent);\n  box-shadow:0 0 10px rgba(0,212,255,.4);\n}\n.tsj-modal-endscreen-title {\n  position:relative; z-index:1;\n  font-family:'Orbitron',monospace;\n  font-size:15px; font-weight:900; letter-spacing:3px;\n  color:#ffffff; text-transform:uppercase;\n  text-shadow:0 0 14px rgba(0,212,255,.5), 0 0 30px rgba(0,212,255,.2);\n  margin-bottom:12px; line-height:1.3;\n}\n.tsj-modal-endscreen-desc {\n  position:relative; z-index:1;\n  font-family:'Rajdhani',sans-serif;\n  font-size:13px; font-weight:500;\n  color:rgba(255,255,255,.5);\n  line-height:1.7; max-width:220px;\n  margin-bottom:20px;\n}\n.tsj-modal-endscreen-div {\n  position:relative; z-index:1;\n  display:flex; align-items:center; gap:8px;\n  margin-bottom:20px; width:80%;\n}\n.tsj-modal-endscreen-div::before,\n.tsj-modal-endscreen-div::after {\n  content:''; flex:1; height:1px;\n  background:linear-gradient(90deg,transparent,rgba(0,212,255,.3));\n}\n.tsj-modal-endscreen-div::after {\n  background:linear-gradient(270deg,transparent,rgba(0,212,255,.3));\n}\n.tsj-modal-endscreen-dot {\n  width:6px; height:6px; border-radius:50%;\n  background:linear-gradient(135deg,#ff1a2e,#00d4ff);\n  box-shadow:0 0 8px rgba(0,212,255,.6);\n}\n.tsj-modal-endscreen-btns {\n  position:relative; z-index:1;\n  display:flex; gap:10px; align-items:center; flex-wrap:wrap;\n  justify-content:center;\n}\n.tsj-modal-endscreen-replay {\n  display:inline-flex !important; align-items:center !important; gap:8px !important;\n  padding:10px 20px !important; border-radius:8px !important;\n  border:1.5px solid rgba(0,212,255,.45) !important;\n  background:rgba(0,212,255,.08) !important;\n  color:#00d4ff !important; font-family:'Orbitron',monospace !important;\n  font-size:9px !important; font-weight:700 !important; letter-spacing:2px !important;\n  cursor:pointer !important; transition:all .25s !important;\n  text-transform:uppercase !important;\n  box-shadow:0 0 12px rgba(0,212,255,.15) !important;\n}\n.tsj-modal-endscreen-replay:hover {\n  background:rgba(0,212,255,.2) !important;\n  box-shadow:0 0 24px rgba(0,212,255,.4) !important;\n  transform:translateY(-2px) !important;\n}\n.tsj-modal-endscreen-tktk {\n  display:inline-flex !important; align-items:center !important; gap:8px !important;\n  padding:10px 20px !important; border-radius:8px !important;\n  border:1.5px solid rgba(255,26,46,.4) !important;\n  background:rgba(255,26,46,.07) !important;\n  color:#ff1a2e !important; font-family:'Orbitron',monospace !important;\n  font-size:9px !important; font-weight:700 !important; letter-spacing:2px !important;\n  cursor:pointer !important; transition:all .25s !important;\n  text-transform:uppercase !important; text-decoration:none !important;\n  box-shadow:0 0 12px rgba(255,26,46,.12) !important;\n}\n.tsj-modal-endscreen-tktk:hover {\n  background:rgba(255,26,46,.18) !important;\n  box-shadow:0 0 24px rgba(255,26,46,.35) !important;\n  transform:translateY(-2px) !important;\n}\n.tsj-modal-endscreen-tag {\n  position:relative; z-index:1;\n  font-family:'Orbitron',monospace;\n  font-size:7px; letter-spacing:3px;\n  color:rgba(255,255,255,.18); text-transform:uppercase;\n  margin-top:16px;\n}\n@media(max-width: 1024px) {\n  \/* Modifica SOLO il contenitore delle targhette IN THAILANDESE *\/\n  :lang(th) #tsj .tsj-pills {\n    flex-wrap: nowrap !important; \n    gap: 8px !important; \n    word-spacing: 4px !important;\n  }\n\n  \/* Ingrandisce SOLO le targhette IN THAILANDESE, riducendo i bordi per farle entrare *\/\n  :lang(th) #tsj .tsj-pill {\n    font-size: 11px !important; \n    padding: 10px 8px !important; \n    white-space: nowrap !important;\n    letter-spacing: 0px !important;\n  }\n\n  \/* Adatta l'icona SOLO IN THAILANDESE *\/\n  :lang(th) #tsj .tsj-pill svg {\n    width: 12px !important;\n    height: 12px !important;\n    \n  }\n  :lang(th) #tsj .tsj-pill svg {\n    transform: translateY(-0.8px) !important;\n  }\n}\n\/* TRUCCO ANTI-FLASH PER I FILTRI *\/\n.t-th { display: none; }\n:lang(th) .t-en { display: none !important; }\n:lang(th) .t-th { display: inline-block !important; }\n<\/style>\n\n<div id=\"tsj-mobile-block\">\n  <div class=\"mb-logo\">THESAFEJOKER<\/div>\n  <div class=\"mb-icon\">\n    <svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\">\n      <rect x=\"3\" y=\"6\" width=\"30\" height=\"20\" rx=\"3\" stroke=\"#00d4ff\" stroke-width=\"1.8\"\/>\n      <line x1=\"18\" y1=\"26\" x2=\"18\" y2=\"32\" stroke=\"#00d4ff\" stroke-width=\"1.8\"\/>\n      <line x1=\"10\" y1=\"32\" x2=\"26\" y2=\"32\" stroke=\"#00d4ff\" stroke-width=\"1.8\"\/>\n      <rect x=\"7\" y=\"10\" width=\"22\" height=\"12\" rx=\"1.5\" stroke=\"rgba(0,212,255,.35)\" stroke-width=\"1\"\/>\n      <circle cx=\"18\" cy=\"16\" r=\"2.5\" fill=\"rgba(0,212,255,.4)\"\/>\n    <\/svg>\n  <\/div>\n  <div class=\"mb-title\">\n    Sorry \u2014 <span class=\"r\">Desktop Only<\/span>\n  <\/div>\n  <p class=\"mb-text\">\n    This site is currently viewable in its full technical perfection only on <strong style=\"color:#fff\">Desktop<\/strong>.<br>\n    Please visit from a desktop computer to experience the full version.\n  <\/p>\n  <div class=\"mb-div\"><\/div>\n  <div class=\"mb-tag\">\u25c6 Peace & Love \u2022 World Tour \u25c6<\/div>\n<\/div>\n\n<style>\n\/* ============================================================\n   AVADA OVERRIDE \u2014 full width + remove all whitespace\n   ============================================================ *\/\n.fusion-page-title-bar,\n.fusion-page-title-wrapper { display:none!important; }\n\n.post-content,\n.fusion-post-content,\n.entry-content,\n.fusion-content-widget-area,\n.fusion-page-content-wrapper,\n.fusion-builder-layout-column,\n.fusion-layout-column,\n.fusion-column-wrapper,\n.fusion-builder-row,\n.fusion-builder-row-inner { padding:0!important; margin:0!important;}\n\n.fusion-fullwidth { padding:0!important; margin:0!important; }\n\n#tsj-root {\n  width:100vw!important;\n  max-width:100vw!important;\n  margin-left:calc(50% - 50vw)!important;\n  margin-right:calc(50% - 50vw)!important;\n  margin-bottom:calc(-50vh)!important; \/* kill Avada bottom gap *\/\n  padding:0!important;\n  overflow-x:hidden!important;\n  background:#050510;\n}\n\n\/* ============================================================\n   AVADA HEADING COLOR KILL \u2014 forza colori su h1\/h2\/h3\/p\/span\n   ============================================================ *\/\n#tsj h1,#tsj h2,#tsj h3,#tsj h4,\n#tsj .tsj-h1,#tsj .tsj-h2,#tsj .tsj-join-h {\n  color:#ffffff!important;\n  -webkit-text-fill-color:#ffffff!important;\n}\n#tsj .tsj-h1 .r {\n  color:#ff1a2e!important;\n  -webkit-text-fill-color:#ff1a2e!important;\n  text-shadow:0 0 10px #ff1a2e,0 0 32px rgba(255,26,46,.5)!important;\n}\n#tsj .tsj-h2 .r {\n  color:#ff1a2e!important;\n  -webkit-text-fill-color:#ff1a2e!important;\n  text-shadow:0 0 10px #ff1a2e,0 0 32px rgba(255,26,46,.5)!important;\n}\n#tsj .tsj-h2 .b,#tsj .tsj-join-h .b {\n  color:#00d4ff!important;\n  -webkit-text-fill-color:#00d4ff!important;\n  text-shadow:0 0 10px #00d4ff,0 0 32px rgba(0,212,255,.5)!important;\n}\n\/* gradient text (h1sub) needs transparent fill *\/\n#tsj .tsj-h1sub {\n  color:transparent!important;\n  -webkit-text-fill-color:transparent!important;\n}\n\/* Pills \u2014 Avada resetta padding su * quindi forziamo con !important *\/\n#tsj .tsj-pill {\n  padding-top:9px!important;\n  padding-bottom:9px!important;\n  padding-left:22px!important;\n  padding-right:22px!important;\n  gap:8px!important;\n}\n\/* Buttons *\/\n#tsj .tsj-btn {\n  padding-top:13px!important;\n  padding-bottom:13px!important;\n  padding-left:26px!important;\n  padding-right:26px!important;\n  color:#ffffff!important;\n  -webkit-text-fill-color:#ffffff!important;\n}\n\/* Next stop card *\/\n#tsj .tsj-nextstop {\n  padding:22px 26px!important;\n}\n#tsj .tsj-ns-country {\n  font-size:19px!important;\n  color:#ffffff!important;\n  -webkit-text-fill-color:#ffffff!important;\n  gap:12px!important;\n  align-items:center!important;\n}\n\/* Feature labels *\/\n#tsj .tsj-feat-lbl {\n  color:rgba(255,255,255,.5)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.5)!important;\n}\n\/* Section labels *\/\n#tsj .tsj-sec-lbl {\n  color:#00d4ff!important;\n  -webkit-text-fill-color:#00d4ff!important;\n}\n\n\/* ============================================================\n   VARIABLES & RESET\n   ============================================================ *\/\n#tsj {\n  --red:   #ff1a2e;\n  --blue:  #00d4ff;\n  --rd:    rgba(255,26,46,.15);\n  --bd:    rgba(0,212,255,.15);\n  --rg:    0 0 10px #ff1a2e, 0 0 32px rgba(255,26,46,.45);\n  --bg:    0 0 10px #00d4ff, 0 0 32px rgba(0,212,255,.45);\n  --dark:  #050510;\n  --dark2: #080820;\n  --surf:  rgba(8,8,28,.8);\n  --br:    rgba(0,212,255,.18);\n  --brr:   rgba(255,26,46,.18);\n  font-family:'Rajdhani',sans-serif;\n  color:#fff;\n  background:var(--dark);\n  overflow-x:hidden;\n}\n#tsj *, #tsj *::before, #tsj *::after {\n  box-sizing:border-box; margin:0; padding:0;\n}\n#tsj a { text-decoration:none; color:inherit; }\n\n\/* scanlines *\/\n#tsj::before {\n  content:''; position:fixed; inset:0; z-index:9000; pointer-events:none;\n  background:repeating-linear-gradient(0deg,\n    transparent 0,transparent 2px,rgba(0,0,0,.04) 2px,rgba(0,0,0,.04) 4px);\n}\n\n\/* ============================================================\n   HEADER\n   ============================================================ *\/\n.tsj-hdr {\n  position:fixed; top:0px; left:0; right:0; z-index:600;\n  height:78px;                           \/* fisso: 68 + 5top + 5bottom *\/\n  display:flex; align-items:center; justify-content:space-between;\n  padding:5px 48px!important;            \/* 5px respiro verticale interno *\/\n  background:rgba(5,5,16,.93);\n  backdrop-filter:blur(18px);\n  border-bottom:1px solid rgba(0,212,255,.14);\n  box-sizing:border-box!important;\n  transition:none;                       \/* no transizione \u2014 evita salti *\/\n}\n\/* Quando scrolli: mantiene stessa altezza, solo opacity border cambia leggermente *\/\n.tsj-hdr.scrolled {\n  background:rgba(5,5,16,.97);\n  border-bottom-color:rgba(0,212,255,.2);\n}\n.tsj-logo { display:flex; align-items:center; gap:14px; }\n.tsj-logo-ring {\n  width:46px; height:46px; border-radius:50%;\n  border:2px solid var(--red); background:#08081e;\n  display:flex; align-items:center; justify-content:center;\n  box-shadow:var(--rg); flex-shrink:0;\n}\n.tsj-logo-ring svg { width:30px; height:30px; }\n.tsj-logo-name {\n  font-family:'Orbitron',monospace;\n  font-size:14.5px; font-weight:800; letter-spacing:2px;\n  background:linear-gradient(90deg,var(--red),var(--blue));\n  -webkit-background-clip:text; -webkit-text-fill-color:transparent;\n}\n.tsj-logo-sub {\n  font-size:9px; letter-spacing:2.5px; font-weight:500;\n  color:rgba(255,255,255,.32); text-transform:uppercase; margin-top:2px;\n}\n.tsj-nav {\n  display:flex; gap:32px;\n  position:absolute; left:50%; transform:translateX(-50%);\n}\n.tsj-nav a {\n  font-family:'Rajdhani',sans-serif;\n  font-size:12px; font-weight:700; letter-spacing:2.5px;\n  color:rgba(255,255,255,.58)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.58)!important;\n  text-transform:uppercase;\n  transition:color .2s; position:relative;\n  padding-bottom:6px;\n}\n.tsj-nav a::after {\n  content:'';\n  position:absolute; bottom:0; left:0; right:0;\n  height:2.5px; border-radius:2px;\n  background:#ff1a2e;\n  box-shadow:0 0 8px #ff1a2e, 0 0 18px rgba(255,26,46,.5);\n  transform:scaleX(0);\n  transition:transform .25s ease;\n}\n\/* hover \u2192 appare la linea *\/\n.tsj-nav a:hover {\n  color:#fff!important;\n  -webkit-text-fill-color:#fff!important;\n}\n.tsj-nav a:hover::after { transform:scaleX(1); }\n\/* active \u2192 linea sempre visibile *\/\n.tsj-nav a.on {\n  color:#fff!important;\n  -webkit-text-fill-color:#fff!important;\n}\n.tsj-nav a.on::after { transform:scaleX(1); }\n.tsj-follow {\n  display:flex; align-items:center; gap:10px;\n  padding:10px 26px 10px 22px!important;\n  border-radius:10px!important;          \/* meno arrotondato *\/\n  background: linear-gradient(#050510,#050510) padding-box,\n              linear-gradient(90deg,#ff1a2e,#00d4ff) border-box;\n  border:1.8px solid transparent!important;\n  color:#fff!important; -webkit-text-fill-color:#fff!important;\n  cursor:pointer; font-family:'Orbitron',monospace!important;\n  font-size:11.5px!important; font-weight:700!important; letter-spacing:2.5px!important;\n  text-transform:uppercase!important; transition:all .3s!important;\n  text-decoration:none!important;\n  box-shadow:\n    0 0 14px rgba(255,26,46,.35),\n    0 0 28px rgba(0,212,255,.2),\n    inset 0 0 12px rgba(255,26,46,.05)!important;\n}\n.tsj-follow .fheart {\n  color:#ff1a2e!important;\n  -webkit-text-fill-color:#ff1a2e!important;\n  font-size:15px!important;\n  filter:drop-shadow(0 0 5px rgba(255,26,46,.9))!important;\n  transition:transform .2s!important;\n}\n.tsj-follow:hover {\n  background: linear-gradient(rgba(255,26,46,.07),rgba(0,212,255,.04)) padding-box,\n              linear-gradient(90deg,#ff1a2e,#00d4ff) border-box!important;\n  box-shadow:\n    0 0 20px rgba(255,26,46,.55),\n    0 0 40px rgba(0,212,255,.3),\n    inset 0 0 18px rgba(255,26,46,.08)!important;\n  transform:translateY(-1px)!important;\n}\n.tsj-follow:hover .fheart { transform:scale(1.2)!important; }\n\n\/* ============================================================\n   HERO\n   ============================================================ *\/\n.tsj-hero {\n  position:relative; min-height:100vh; overflow:hidden;\n  display:flex; align-items:center;\n  padding-top:78px;                      \/* altezza header fissa *\/\n}\n#tsj-cv { position:absolute; inset:0; width:100%; height:100%; z-index:0; }\n.tsj-hero-atm {\n  position:absolute; inset:0; z-index:1; pointer-events:none;\n  background:\n    radial-gradient(ellipse 65% 85% at 72% 58%, rgba(0,28,65,.5) 0%,transparent 70%),\n    radial-gradient(ellipse 45% 55% at 25% 75%, rgba(55,0,16,.32) 0%,transparent 60%),\n    linear-gradient(180deg,#050510 0%,#080820 50%,#050510 100%);\n}\n\n\/* \u2500\u2500 Character placeholder \u2500\u2500 *\/\n.tsj-char-zone {\n  position:absolute; right:4%; bottom:0;\n  width:50%; height:94%; z-index:8;\n  display:flex; align-items:center; justify-content:center;\n}\n.tsj-char-placeholder {\n  width:340px; height:520px;\n  border:2px dashed rgba(0,212,255,.35);\n  border-radius:12px;\n  background:rgba(0,212,255,.03);\n  display:flex; flex-direction:column;\n  align-items:center; justify-content:center;\n  gap:16px;\n  box-shadow:0 0 30px rgba(0,212,255,.08);\n}\n.tsj-char-placeholder-icon {\n  font-size:48px; opacity:.3;\n}\n.tsj-char-placeholder-txt {\n  font-family:'Orbitron',monospace;\n  font-size:10px; letter-spacing:2px; font-weight:600;\n  color:rgba(0,212,255,.5); text-align:center;\n  line-height:1.7; padding:0 20px;\n  text-transform:uppercase;\n}\n\n\/* Glows *\/\n.tsj-cgr {\n  position:absolute; bottom:-80px; left:35%;\n  width:440px; height:260px;\n  background:radial-gradient(ellipse,rgba(255,26,46,.16) 0%,transparent 70%);\n  z-index:7; pointer-events:none;\n}\n.tsj-cgb {\n  position:absolute; top:15%; right:2%;\n  width:300px; height:400px;\n  background:radial-gradient(ellipse,rgba(0,212,255,.12) 0%,transparent 70%);\n  z-index:7; pointer-events:none;\n}\n\n\/* SafeWorld portal \u2014 neon door identical to mockup *\/\n.tsj-portal {\n  position:absolute; right:3%; top:9%; z-index:15;\n  display:flex; flex-direction:column; align-items:center; gap:0;\n}\n\/* The \"SAFEWORLD\" label sits ABOVE the door *\/\n.tsj-portal-lbl {\n  font-family:'Orbitron',monospace!important;\n  font-size:10px; letter-spacing:3px; font-weight:700;\n  color:#ff1a2e!important;\n  -webkit-text-fill-color:#ff1a2e!important;\n  text-shadow:0 0 10px #ff1a2e,0 0 30px rgba(255,26,46,.6);\n  text-transform:uppercase; margin-bottom:6px;\n  text-align:right; align-self:flex-end;\n}\n.tsj-portal-door {\n  width:110px; height:155px;\n  position:relative;\n  border:none;\n  animation:pDoor 3s ease-in-out infinite;\n}\n\/* Left neon edge *\/\n.tsj-portal-door::before {\n  content:'';\n  position:absolute; top:0; left:0;\n  width:3.5px; height:100%;\n  background:linear-gradient(180deg,\n    rgba(255,26,46,0) 0%,\n    #ff1a2e 15%,\n    #ff1a2e 85%,\n    rgba(255,26,46,0) 100%);\n  box-shadow:0 0 12px #ff1a2e, -4px 0 20px rgba(255,26,46,.5);\n  border-radius:2px;\n}\n\/* Right neon edge *\/\n.tsj-portal-door::after {\n  content:'';\n  position:absolute; top:0; right:0;\n  width:3.5px; height:100%;\n  background:linear-gradient(180deg,\n    rgba(0,212,255,0) 0%,\n    #00d4ff 15%,\n    #00d4ff 85%,\n    rgba(0,212,255,0) 100%);\n  box-shadow:0 0 12px #00d4ff, 4px 0 20px rgba(0,212,255,.5);\n  border-radius:2px;\n}\n\/* Top bar *\/\n.tsj-portal-door .pd-top {\n  position:absolute; top:0; left:0; right:0;\n  height:3.5px;\n  background:linear-gradient(90deg, #ff1a2e, #00d4ff);\n  box-shadow:0 0 12px rgba(255,26,46,.6), 0 -4px 16px rgba(0,212,255,.3);\n  border-radius:2px;\n}\n\/* Interior glow *\/\n.tsj-portal-door .pd-interior {\n  position:absolute; inset:4px;\n  background:radial-gradient(ellipse at 50% 30%,\n    rgba(255,26,46,.06) 0%,\n    rgba(0,212,255,.03) 50%,\n    transparent 80%);\n  border-radius:2px;\n}\n\/* Inner frame *\/\n.tsj-portal-door .pd-frame {\n  position:absolute; inset:10px;\n  border:1px solid rgba(255,26,46,.25);\n  border-radius:3px;\n}\n\/* Lightning crack effect *\/\n.tsj-portal-door .pd-crack {\n  position:absolute; top:10%; left:60%;\n  width:1px; height:70%;\n  background:linear-gradient(180deg,\n    transparent 0%,\n    rgba(255,26,46,.4) 30%,\n    rgba(0,212,255,.3) 70%,\n    transparent 100%);\n  transform:rotate(8deg);\n  filter:blur(.5px);\n}\n@keyframes pDoor {\n  0%,100%{ filter:brightness(1); }\n  50%{ filter:brightness(1.3); }\n}\n\n\/* Hero text \u2014 scende ancora di pi\u00f9 *\/\n.tsj-hero-txt {\n  position:relative; z-index:20;\n  padding:120px 64px 90px 64px!important;\n  max-width:620px;\n  animation:hFade .85s ease forwards;\n}\n@keyframes hFade { from{opacity:0;transform:translateY(26px)} to{opacity:1;transform:translateY(0)} }\n\n.tsj-eyebrow {\n  font-family:'Orbitron',monospace!important;\n  font-size:10px!important; letter-spacing:4px!important; font-weight:600!important;\n  color:#00d4ff!important; text-shadow:var(--bg)!important;\n  text-transform:uppercase!important;\n  margin-bottom:20px!important;\n  display:flex!important; align-items:center!important; gap:10px!important;\n}\n.tsj-eyebrow::before {\n  content:''!important; width:22px!important; height:1.5px!important;\n  background:#00d4ff!important; box-shadow:var(--bg)!important;\n}\n.tsj-h1 {\n  font-family:'Orbitron',monospace!important;\n  font-size:clamp(38px,5.6vw,68px)!important;\n  font-weight:900!important; line-height:.95!important; letter-spacing:1.5px!important;\n  text-transform:uppercase!important;\n  color:#ffffff!important; -webkit-text-fill-color:#ffffff!important;\n  margin-bottom:10px!important;\n}\n.tsj-h1 .r {\n  color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important;\n  text-shadow:0 0 10px #ff1a2e,0 0 32px rgba(255,26,46,.5)!important;\n}\n\n\/* \"Spreading Peace & Love\" \u2014 Dancing Script cursive come nell'originale *\/\n.tsj-h1sub {\n  font-family:'Dancing Script',cursive!important;\n  font-size:clamp(28px,3.8vw,46px)!important; font-weight:700!important;\n  font-style:normal!important; line-height:1.1!important;\n  margin-bottom:12px!important;\n  background:linear-gradient(90deg,#ff1a2e 0%,#ff6b35 40%,#00d4ff 100%)!important;\n  -webkit-background-clip:text!important; -webkit-text-fill-color:transparent!important;\n  color:transparent!important;\n  text-shadow:none!important;\n}\n.tsj-countries {\n  font-size:clamp(17px,2.3vw,25px)!important; font-weight:600!important;\n  color:rgba(255,255,255,.84)!important; -webkit-text-fill-color:rgba(255,255,255,.84)!important;\n  letter-spacing:1px!important; margin-bottom:32px!important;\n}\n.tsj-countries span {\n  font-family:'Orbitron',monospace!important;\n  font-size:1.5em!important; font-weight:900!important;\n  color:#ffffff!important; -webkit-text-fill-color:#ffffff!important;\n  letter-spacing:0!important;\n}\n\n\/* \u2500\u2500 PILLS \u2500\u2500 *\/\n.tsj-pills {\n  display:flex!important; gap:12px!important; flex-wrap:wrap!important;\n  margin-bottom:26px!important;\n}\n.tsj-pill {\n  display:inline-flex!important; align-items:center!important; gap:8px!important;\n  padding-top:9px!important; padding-bottom:9px!important;\n  padding-left:22px!important; padding-right:22px!important;\n  border-radius:50px!important;\n  font-family:'Rajdhani',sans-serif!important;\n  font-size:12px!important; font-weight:700!important;\n  letter-spacing:2px!important; text-transform:uppercase!important;\n  transition:all .2s!important; cursor:default!important;\n  white-space:nowrap!important;\n}\n.tsj-pill.pr { border:1.5px solid #ff1a2e!important; color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important; background:rgba(255,26,46,.12)!important; }\n.tsj-pill.pb { border:1.5px solid #00d4ff!important; color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important; background:rgba(0,212,255,.12)!important; }\n.tsj-pill.pw { border:1.5px solid rgba(255,255,255,.28)!important; color:rgba(255,255,255,.8)!important; -webkit-text-fill-color:rgba(255,255,255,.8)!important; background:rgba(255,255,255,.05)!important; }\n\n\/* \u2500\u2500 CTA BUTTONS \u2014 cyber glow \u2500\u2500 *\/\n.tsj-ctas { display:flex!important; gap:14px!important; flex-wrap:wrap!important; margin-bottom:26px!important; }\n.tsj-btn {\n  display:inline-flex!important; align-items:center!important; gap:10px!important;\n  padding-top:13px!important; padding-bottom:13px!important;\n  padding-left:26px!important; padding-right:26px!important;\n  border-radius:8px!important;\n  font-family:'Rajdhani',sans-serif!important;\n  font-size:13.5px!important; font-weight:700!important; letter-spacing:2px!important;\n  text-transform:uppercase!important; cursor:pointer!important;\n  transition:all .28s!important; text-decoration:none!important;\n  white-space:nowrap!important;\n  color:#ffffff!important; -webkit-text-fill-color:#ffffff!important;\n}\n.tsj-btn-r {\n  border:1.8px solid #ff1a2e!important; background:transparent!important;\n  box-shadow:0 0 12px rgba(255,26,46,.3), inset 0 0 8px rgba(255,26,46,.05)!important;\n}\n.tsj-btn-r:hover { background:rgba(255,26,46,.15)!important; box-shadow:0 0 22px #ff1a2e,0 0 45px rgba(255,26,46,.3)!important; transform:translateY(-2px)!important; }\n.tsj-btn-b {\n  border:1.8px solid #00d4ff!important; background:transparent!important;\n  box-shadow:0 0 12px rgba(0,212,255,.3), inset 0 0 8px rgba(0,212,255,.05)!important;\n}\n.tsj-btn-b:hover { background:rgba(0,212,255,.12)!important; box-shadow:0 0 22px #00d4ff,0 0 45px rgba(0,212,255,.3)!important; transform:translateY(-2px)!important; }\n\n\/* \u2500\u2500 TAGLINE \u2500\u2500 *\/\n.tsj-tagline {\n  font-size:13.5px!important; color:rgba(255,255,255,.4)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.4)!important;\n  letter-spacing:1.5px!important; font-style:italic!important;\n  margin-top:0!important;\n  margin-bottom:20px!important;          \/* spazio uniforme sotto tagline *\/\n  display:flex!important; align-items:center!important; gap:14px!important;\n  width:100%!important;\n}\n.tsj-tagline::before, .tsj-tagline::after {\n  content:''!important; flex:1!important; height:1px!important;\n  background:rgba(255,255,255,.2)!important;\n  min-width:20px!important;\n}\n\n\/* \u2500\u2500 DIVIDER \u262e \u2665 \u2014 centrato ORIZZONTALMENTE e VERTICALMENTE tra tagline e icone \u2500\u2500 *\/\n.tsj-divider-icons {\n  display:flex!important;\n  align-items:center!important;\n  justify-content:center!important;      \/* centro orizzontale *\/\n  gap:14px!important;\n  width:100%!important;\n  max-width:none!important;\n  margin-top:0!important;\n  margin-bottom:28px!important;          \/* stesso spazio sopra e sotto *\/\n  padding:8px 0!important;              \/* padding verticale uguale *\/\n}\n.tsj-div-line {\n  width:72px!important; flex:none!important; height:1.5px!important;\n  background:linear-gradient(90deg,transparent,rgba(255,26,46,.6))!important;\n  border-radius:1px!important;\n}\n.tsj-div-line.b {\n  width:72px!important;\n  background:linear-gradient(270deg,transparent,rgba(0,212,255,.6))!important;\n}\n.tsj-div-ico {\n  display:inline-flex!important; align-items:center!important;\n  justify-content:center!important;\n  width:24px!important; height:24px!important;\n  font-size:16px!important; line-height:1!important;\n}\n.tsj-div-ico.r {\n  color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important;\n  filter:drop-shadow(0 0 6px rgba(255,26,46,.8))!important;\n}\n.tsj-div-ico.b {\n  color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important;\n  filter:drop-shadow(0 0 6px rgba(0,212,255,.8))!important;\n}\n\n\/* \u2500\u2500 FEATURE ICONS \u2014 centrate orizzontalmente come tagline e divider \u2500\u2500 *\/\n.tsj-feats {\n  display:flex!important; gap:36px!important; flex-wrap:wrap!important;\n  align-items:flex-start!important;\n  justify-content:center!important;\n  width:100%!important;\n}\n.tsj-feat {\n  display:flex; flex-direction:column;\n  align-items:center; gap:7px; cursor:default;\n  transition:transform .2s;\n}\n.tsj-feat:hover { transform:translateY(-3px); }\n.tsj-feat-ico {\n  line-height:0;\n  filter:drop-shadow(0 0 8px rgba(0,212,255,.6));\n  transition:filter .25s;\n}\n.tsj-feat-ico svg { display:block; }\n.tsj-feat:hover .tsj-feat-ico { filter:drop-shadow(0 0 16px rgba(0,212,255,.9)); }\n.tsj-feat-num {\n  font-family:'Orbitron',monospace!important;\n  font-size:16px!important; font-weight:900!important;\n  color:#ffffff!important;\n  -webkit-text-fill-color:#ffffff!important;\n  line-height:1;\n}\n.tsj-feat-lbl {\n  font-family:'Orbitron',monospace!important;\n  font-size:9px!important; letter-spacing:1.5px!important; font-weight:700!important;\n  color:rgba(255,255,255,.45)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.45)!important;\n  text-align:center!important;\n  text-transform:uppercase!important; line-height:1.35!important;\n  white-space:nowrap!important;\n}\n\n\/* \u2500\u2500 NEXT STOP CARD \u2500\u2500 *\/\n.tsj-nextstop {\n  position:absolute; bottom:44px; right:44px; z-index:25;\n  background:rgba(5,5,18,.93);\n  border:1px solid rgba(0,212,255,.22);\n  border-radius:14px;\n  padding:26px 30px!important;     \/* respiro generoso *\/\n  min-width:230px;\n  backdrop-filter:blur(16px);\n  box-shadow:0 8px 40px rgba(0,0,0,.6);\n  animation:floatNS 3.5s ease-in-out infinite;\n}\n@keyframes floatNS {\n  0%,100%{transform:translateY(0)} 50%{transform:translateY(-7px)}\n}\n.tsj-ns-lbl {\n  font-family:'Orbitron',monospace!important;\n  font-size:8.5px!important; letter-spacing:3.5px!important; font-weight:700!important;\n  color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important;\n  text-shadow:var(--bg); text-transform:uppercase!important;\n  margin-bottom:12px!important;\n}\n.tsj-ns-div {\n  height:1.5px; border-radius:1px;\n  background:linear-gradient(90deg,var(--red),var(--blue));\n  margin-bottom:14px!important;\n}\n.tsj-ns-country {\n  display:flex!important; align-items:center!important; gap:12px!important;\n  font-family:'Orbitron',monospace!important;\n  font-size:20px!important; font-weight:800!important;\n  color:#ffffff!important; -webkit-text-fill-color:#ffffff!important;\n  margin-bottom:12px!important; letter-spacing:1px!important;\n}\n.tsj-ns-quote {\n  font-size:13px!important; color:rgba(255,255,255,.45)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.45)!important;\n  font-style:italic!important; line-height:1.6!important;\n}\n.tsj-ns-quote .h { color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important; }\n\n\/* Scroll indicator *\/\n.tsj-scroll {\n  position:absolute; bottom:22px; left:50%; transform:translateX(-50%);\n  z-index:20; display:flex; flex-direction:column; align-items:center; gap:5px;\n  opacity:.42; animation:scBounce 2.2s ease-in-out infinite;\n}\n@keyframes scBounce {\n  0%,100%{transform:translateX(-50%) translateY(0)}\n  50%{transform:translateX(-50%) translateY(9px)}\n}\n.tsj-scroll span { font-size:9px; letter-spacing:4px; color:#fff; text-transform:uppercase; }\n.tsj-scroll-arr { color:var(--blue); font-size:16px; }\n\n\/* ============================================================\n   TICKER\n   ============================================================ *\/\n.tsj-ticker-track {\n  display:flex; align-items:center;\n  padding:16px 0; white-space:nowrap;\n  width:max-content;\n  animation:tickRun 32s linear infinite;\n}\n@keyframes tickRun { from{transform:translateX(0)} to{transform:translateX(-50%)} }\n.tsj-ti {\n  display:inline-flex; align-items:center; gap:16px;\n  padding:0 48px;                    \/* pi\u00f9 spazio tra le voci *\/\n  font-family:'Orbitron',monospace;\n  font-size:11px; font-weight:600; letter-spacing:2px;\n  color:rgba(255,255,255,.72);\n  position:relative;\n}\n\n.tsj-dot { width: 6px !important; \n    height: 6px !important; \n    border-radius: 50% !important;\n    display: inline-block !important;\n    vertical-align: middle !important;\n  \n    \n    \/* Questo mette lo STESSO spazio (20px) a destra e a sinistra *\/\n    margin-left: 20px !important; \n  margin-right: 8px !important;\n    \n    \/* Impedisce al pallino di rimpicciolirsi se il testo \u00e8 troppo lungo *\/\n    flex-shrink: 0 !important;}\n.tsj-dot.r { background:var(--red); box-shadow:var(--rg); }\n.tsj-dot.b { background:var(--blue); box-shadow:var(--bg); }\n\n\/* ============================================================\n   SECTIONS \u2014 layout commons\n   ============================================================ *\/\n.tsj-sec {\n  position:relative; overflow:hidden;\n  padding:100px 72px!important;          \/* padding forzato \u2014 Avada non lo cancella *\/\n}\n.tsj-sec-inner { max-width:90%;\n  margin:0 auto;\n}\n.tsj-sec-lbl {\n  font-family:'Orbitron',monospace!important;\n  font-size:9.5px!important; letter-spacing:4px!important; font-weight:700!important;\n  color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important;\n  text-shadow:var(--bg); text-transform:uppercase!important;\n  margin-bottom:16px!important;\n  display:flex!important; align-items:center!important; gap:10px!important;\n}\n.tsj-sec-lbl::before {\n  content:''!important; width:22px!important; height:1.5px!important;\n  background:#00d4ff!important; box-shadow:var(--bg)!important;\n}\n.tsj-h2 {\n  font-family:'Orbitron',monospace!important;\n  font-size:clamp(28px,3.8vw,50px)!important;\n  font-weight:900!important; line-height:1.05!important; letter-spacing:2px!important;\n  text-transform:uppercase!important; color:#ffffff!important;\n  -webkit-text-fill-color:#ffffff!important;\n  margin-bottom:24px!important;\n}\n.tsj-h2 .r { color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important; text-shadow:var(--rg)!important; }\n.tsj-h2 .b { color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important; text-shadow:var(--bg)!important; }\n.tsj-body {\n  font-size:16px!important; line-height:1.82!important;\n  color:rgba(255,255,255,.58)!important; max-width:640px!important;\n  margin-bottom:36px!important;\n}\n\n\/* ============================================================\n   TICKER \u2014 separato visivamente dai blocchi sopra e sotto\n   ============================================================ *\/\n.tsj-ticker-wrap {\n  overflow:hidden;\n  max-width:100vw!important;\n  border-top:2px solid rgba(255,26,46,.3)!important;\n  border-bottom:2px solid rgba(0,212,255,.2)!important;\n  background:linear-gradient(90deg,rgba(255,26,46,.1),rgba(0,212,255,.1))!important;\n  margin:0!important;\n  \/* ombra sopra e sotto per stacco visivo *\/\n  box-shadow:0 -6px 28px rgba(255,26,46,.08), 0 6px 28px rgba(0,212,255,.08)!important;\n}\n\n\/* ============================================================\n   WORLD TOUR\n   ============================================================ *\/\n.tsj-tour { background:var(--dark2); }\n\/* Mappa \u2014 stesso margine a destra come a sinistra (72px) *\/\n.tsj-tour {\n  background:var(--dark2);\n  padding-right:0!important;\n}\n.tsj-tour .tsj-sec-inner {\n  width:100%;\n  max-width:none;\n}\n.tsj-tour-grid {\n  display:grid;\n  grid-template-columns:1fr 1fr;\n  gap:48px;\n  align-items:stretch;\n  \/* sfonda Avada verso destra, poi rientra di 72px \u2014 uguale al padding sx *\/\n  margin-right:calc(50% - 50vw)!important;\n  padding-right:72px!important;\n}\n.tsj-map-vis {\n  position:relative;\n  height:100%;\n  min-height:520px;\n}\n.tsj-stats-grid {\n  display:grid; grid-template-columns:1fr 1fr;\n  gap:16px; margin-bottom:28px;\n}\n.tsj-stat {\n  background:var(--surf);\n  border:1px solid rgba(0,212,255,.14);\n  border-radius:12px;\n  padding:32px 28px!important;           \/* pi\u00f9 respiro interno *\/\n  text-align:center; position:relative; overflow:hidden;\n  transition:all .3s;\n}\n.tsj-stat::before {\n  content:''; position:absolute; top:0; left:0; right:0;\n  height:2px; background:linear-gradient(90deg,var(--red),var(--blue));\n}\n.tsj-stat:hover {\n  border-color:var(--blue); transform:translateY(-3px);\n  box-shadow:0 10px 36px rgba(0,0,0,.4), 0 0 20px rgba(0,212,255,.08);\n}\n.tsj-stat-n {\n  font-family:'Orbitron',monospace!important;\n  font-size:38px!important; font-weight:900!important; line-height:1!important;\n  background:linear-gradient(135deg,var(--red),var(--blue));\n  -webkit-background-clip:text; -webkit-text-fill-color:transparent;\n  margin-bottom:8px!important;\n}\n.tsj-stat-d {\n  font-size:10px!important; letter-spacing:2px!important; font-weight:700!important;\n  color:rgba(255,255,255,.38)!important; -webkit-text-fill-color:rgba(255,255,255,.38)!important;\n  text-transform:uppercase!important; margin-top:0!important;\n}\n\n.tsj-prog-wrap { margin-top:4px; }\n.tsj-prog-lbl {\n  display:flex; justify-content:space-between;\n  font-size:10px; letter-spacing:2px; font-weight:700;\n  color:rgba(255,255,255,.38); text-transform:uppercase;\n  margin-bottom:10px;\n}\n.tsj-prog-bar { height:5px; background:rgba(255,255,255,.07); border-radius:3px; overflow:hidden; }\n.tsj-prog-fill {\n  height:100%; width:0;\n  background:linear-gradient(90deg,var(--red),var(--blue));\n  border-radius:3px; transition:width 1.6s ease;\n  box-shadow:0 0 10px rgba(0,212,255,.45);\n}\n#tsj-map-cv {\n  position:absolute; inset:0;\n  width:100%; height:100%;\n  border:1px solid rgba(0,212,255,.18);\n  border-radius:16px;\n  background:rgba(0,4,16,.6);\n  box-shadow:0 0 30px rgba(0,212,255,.06), inset 0 0 40px rgba(0,0,0,.4);\n  display:block;\n}\n\n\/* ============================================================\n   MISSION\n   ============================================================ *\/\n.tsj-mission {\n  background:var(--dark);\n  padding:100px 0 100px 72px!important;\n}\n.tsj-mission .tsj-sec-inner {\n  width:100%!important;\n  max-width:none!important;            \/* rimuove il limite 1200px *\/\n}\n.tsj-mission-grid {\n  display:grid; grid-template-columns:1fr 1fr;\n  gap:72px; align-items:stretch;\n  width:100%!important;\n  padding-right:72px!important;\n}\n\n.tsj-vals { display:flex; flex-direction:column; gap:16px; }\n.tsj-val {\n  display:flex; align-items:center; gap:20px;  \/* center \u2014 non flex-start *\/\n  padding:22px 24px!important;\n  background:var(--surf);\n  border:1px solid rgba(255,255,255,.07);\n  border-radius:14px; transition:all .3s;\n  position:relative; overflow:hidden;\n}\n.tsj-val::before {\n  content:''; position:absolute; left:0; top:0; bottom:0;\n  width:3px; border-radius:3px 0 0 3px;\n  background:linear-gradient(180deg,var(--red),var(--blue));\n  opacity:0; transition:opacity .3s;\n}\n.tsj-val:hover { border-color:rgba(0,212,255,.3); transform:translateX(4px); }\n.tsj-val:hover::before { opacity:1; }\n\n\/* Icona \u2014 pi\u00f9 grande, neon, SVG-ready *\/\n.tsj-val-ico {\n  width:56px; height:56px; flex-shrink:0; border-radius:14px;\n  display:flex; align-items:center; justify-content:center;\n  font-size:26px; position:relative;\n  transition:all .3s;\n}\n.tsj-val-ico.b {\n  background:linear-gradient(135deg,rgba(0,212,255,.2),rgba(0,212,255,.05));\n  border:1px solid rgba(0,212,255,.3);\n  box-shadow:0 0 16px rgba(0,212,255,.15), inset 0 0 12px rgba(0,212,255,.05);\n}\n.tsj-val-ico.r {\n  background:linear-gradient(135deg,rgba(255,26,46,.2),rgba(255,26,46,.05));\n  border:1px solid rgba(255,26,46,.3);\n  box-shadow:0 0 16px rgba(255,26,46,.15), inset 0 0 12px rgba(255,26,46,.05);\n}\n.tsj-val:hover .tsj-val-ico.b { box-shadow:0 0 28px rgba(0,212,255,.35); }\n.tsj-val:hover .tsj-val-ico.r { box-shadow:0 0 28px rgba(255,26,46,.35); }\n\n.tsj-val-content { flex:1; }\n.tsj-val-title {\n  font-family:'Orbitron',monospace!important;\n  font-size:12px!important; font-weight:800!important; letter-spacing:2.5px!important;\n  text-transform:uppercase!important; margin-bottom:7px!important;\n}\n.tsj-val-title.b { color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important; text-shadow:0 0 8px rgba(0,212,255,.4)!important; }\n.tsj-val-title.r { color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important; text-shadow:0 0 8px rgba(255,26,46,.4)!important; }\n.tsj-val-body { font-size:13.5px; color:rgba(255,255,255,.5); line-height:1.65; }\n\n\/* \u2500\u2500 QUOTE BLOCK \u2014 padding, no grey squares, cyber fill below \u2500\u2500 *\/\n.tsj-quote {\n  position:relative; overflow:hidden;\n  background:var(--surf);\n  border:1px solid rgba(0,212,255,.2);\n  border-radius:16px;\n  padding:48px 44px 40px!important;\n  text-align:center;\n  display:flex; flex-direction:column;\n}\n\/* Decorazione superiore \u2014 icona peace SVG invece dei 2 quadratini *\/\n.tsj-quote-icon {\n  margin:0 auto 24px;\n  width:52px; height:52px;\n  display:flex; align-items:center; justify-content:center;\n  position:relative; z-index:1;\n   align-self:center;\n}\n\/* Il vecchio .tsj-quote-mark (i 2 quadratini grigi) \u2014 nascosto *\/\n.tsj-quote-mark { display:none!important; }\n\n.tsj-quote-txt {\n  font-family:'Rajdhani',sans-serif!important;\n  font-size:clamp(17px,2.2vw,22px)!important; font-weight:600!important;\n  font-style:italic!important; line-height:1.7!important; color:#fff!important;\n  -webkit-text-fill-color:#fff!important;\n  position:relative; z-index:1; margin-bottom:28px!important;\n}\n.tsj-quote-txt .r { color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important; }\n.tsj-quote-txt .b { color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important; }\n\n\/* Divider migliorato \u2014 neon con punti *\/\n.tsj-quote-div {\n  display:flex; align-items:center; gap:10px;\n  margin:0 auto 20px!important; width:auto!important; height:auto!important;\n  background:none!important;\n}\n.tsj-quote-div::before, .tsj-quote-div::after {\n  content:''; flex:1; height:1px; max-width:60px;\n  background:linear-gradient(90deg,transparent,rgba(255,26,46,.6));\n}\n.tsj-quote-div::after { background:linear-gradient(270deg,transparent,rgba(0,212,255,.6)); }\n.tsj-quote-div-dot {\n  width:8px; height:8px; border-radius:50%;\n  background:linear-gradient(135deg,var(--red),var(--blue));\n  box-shadow:0 0 8px rgba(255,26,46,.5), 0 0 16px rgba(0,212,255,.3);\n}\n\n.tsj-quote-attr {\n  font-family:'Orbitron',monospace!important; font-size:9px!important;\n  letter-spacing:3px!important; color:rgba(255,255,255,.28)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.28)!important;\n  text-transform:uppercase!important; margin-bottom:36px!important;\n}\n\n\/* Flags orbit CSS *\/\n#tsj-flags-cv { display:none; }\n.tsj-flags-orbit {\n  flex:1; min-height:240px;\n  position:relative; margin-top:16px;\n  display:flex; align-items:center; justify-content:center;\n}.tsj-orbit-center {\n  position:absolute;\n  display:flex; flex-direction:column; align-items:center; gap:6px;\n  z-index:5;\n}\n.tsj-orbit-dot {\n  width:10px; height:10px; border-radius:50%;\n  background:#fff;\n  box-shadow:0 0 14px #00d4ff, 0 0 28px rgba(0,212,255,.4);\n  animation:orbitDotPulse 2s ease-in-out infinite;\n  display:block;\n}\n@keyframes orbitDotPulse {\n  0%,100%{ box-shadow:0 0 14px #00d4ff,0 0 28px rgba(0,212,255,.4); }\n  50%{ box-shadow:0 0 22px #00d4ff,0 0 50px rgba(0,212,255,.6); }\n}\n.tsj-orbit-label {\n  font-family:'Orbitron',monospace;\n  font-size:8px; letter-spacing:2px; font-weight:700;\n  color:rgba(255,255,255,.25);\n}\n\/* Anelli ellittici di sfondo *\/\n.tsj-orbit-ring {\n  position:absolute; border-radius:50%;\n  border:1px dashed rgba(0,212,255,.15);\n  pointer-events:none;\n}\n\/* Ogni flag chip *\/\n.tsj-flag-chip {\n  position:absolute;\n  display:inline-flex; align-items:center; justify-content:center;\n  font-size:26px; line-height:1;\n  width:44px; height:44px; border-radius:50%;\n  background:rgba(5,5,20,.85);\n  border:1.5px solid rgba(0,212,255,.25);\n  box-shadow:0 0 10px rgba(0,212,255,.12);\n  cursor:default;\n  transition:transform .2s, box-shadow .2s, border-color .2s;\n  transform-origin:center center;\n}\n.tsj-flag-chip:hover {\n  border-color:#00d4ff;\n  box-shadow:0 0 20px rgba(0,212,255,.5), 0 0 40px rgba(0,212,255,.2);\n  transform:scale(1.25) !important;\n  z-index:10;\n}\n  \n\/* Flags orbit canvas \u2014 riempie il resto *\/\n#tsj-flags-cv {\n  width:100%;\n  flex:1;                     \/* occupa tutto lo spazio rimasto *\/\n  min-height:180px;\n  display:block; border-radius:8px;\n  background:transparent;\n  margin-top:12px;\n}\n\n\/* ============================================================\n   VIDEOS\n   ============================================================ *\/\n.tsj-vids {\n  background:var(--dark2);\n  \/* Breakout full-width come le altre sezioni *\/\n  overflow:hidden!important;\n width:100%!important;\nmax-width:100%!important;\nmargin-left:0!important;\nmargin-right:0!important;\n  padding-left:0!important;\n  padding-right:0!important;\n}\n.tsj-vids .tsj-sec-inner {\n   max-width:100%;\n  margin:0 auto!important;\n  padding:0 72px!important;         \/* padding simmetrico uguale da entrambi i lati *\/\n}\n.tsj-vids-hdr {\n  display:flex; justify-content:space-between; align-items:flex-end;\n  margin-bottom:0!important; gap:20px; flex-wrap:wrap;\n  max-width:none; margin-left:0!important; margin-right:0!important;\n}\n\n.tsj-loadmore {\n  text-align:center;\n  margin-top:48px!important;\n  padding-top:8px!important;\n  max-width:none; margin-left:0!important; margin-right:0!important;\n}\n\n\/* Filtri \u2014 staccati dal titolo con margin-top *\/\n.tsj-filter {\n  display:flex; gap:10px; flex-wrap:wrap;\n  align-self:flex-end;\n  margin-bottom:0;\n}\n\n\/* Titolo + filtri row \u2192 griglia: grande spazio *\/\n.tsj-vgrid {\n  display:grid; grid-template-columns:repeat(5,1fr);\n  gap:16px;\n  margin-top:56px!important;\n  max-width:none;\n  margin-left:auto!important;\n  margin-right:auto!important;\n}\n\n\/* Filter buttons \u2014 cyber style *\/\n.tsj-fbtn {\n  padding:9px 22px!important;\n  border-radius:8px!important;\n  border:1px solid rgba(255,255,255,.18)!important;\n  background:rgba(255,255,255,.03)!important;\n  color:rgba(255,255,255,.5)!important;\n  font-family:'Orbitron',monospace!important;\n  font-size:10px!important; font-weight:700!important; letter-spacing:2px!important;\n  text-transform:uppercase!important; cursor:pointer!important;\n  transition:all .28s!important;\n  position:relative; overflow:hidden;\n}\n\/* Glow sottolineatura cyber sui filtri *\/\n.tsj-fbtn::after {\n  content:'';\n  position:absolute; bottom:0; left:15%; right:15%;\n  height:1.5px; border-radius:1px;\n  background:linear-gradient(90deg,var(--red),var(--blue));\n  opacity:0; transition:opacity .25s;\n}\n.tsj-fbtn:hover::after, .tsj-fbtn.on::after { opacity:1; }\n.tsj-fbtn.on {\n  border-color:rgba(0,212,255,.5)!important;\n  color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important;\n  background:rgba(0,212,255,.07)!important;\n  box-shadow:0 0 14px rgba(0,212,255,.2), inset 0 0 8px rgba(0,212,255,.04)!important;\n}\n.tsj-fbtn:hover {\n  border-color:rgba(0,212,255,.4)!important;\n  color:rgba(0,212,255,.8)!important; -webkit-text-fill-color:rgba(0,212,255,.8)!important;\n  background:rgba(0,212,255,.05)!important;\n  box-shadow:0 0 10px rgba(0,212,255,.15)!important;\n}\n\n\/* Video card \u2014 glow cyber fisso *\/\n.tsj-vcard {\n  position:relative; border-radius:10px; overflow:hidden;\n  background:#07071e;\n  border:1px solid rgba(0,212,255,.18);\n  aspect-ratio:9\/16; cursor:pointer; transition:all .32s;\n  box-shadow:\n    0 0 0 1px rgba(0,212,255,.06),\n    0 0 14px rgba(0,212,255,.1),\n    0 0 28px rgba(255,26,46,.04),\n    0 6px 24px rgba(0,0,0,.5);\n}\n.tsj-vcard::after {\n  content:'';\n  position:absolute; left:0; top:15%; bottom:15%;\n  width:2px; border-radius:0 1px 1px 0;\n  background:linear-gradient(180deg,\n    transparent 0%, rgba(0,212,255,.6) 30%,\n    rgba(255,26,46,.4) 70%, transparent 100%);\n  box-shadow:0 0 8px rgba(0,212,255,.4);\n  z-index:4; pointer-events:none;\n  opacity:.7; transition:opacity .3s;\n}\n.tsj-vcard::before {\n  content:''; position:absolute; inset:0; z-index:1;\n  background:linear-gradient(0deg,rgba(5,5,16,.88) 0%,transparent 55%);\n  transition:opacity .3s;\n}\n.tsj-vcard:hover {\n  transform:translateY(-6px) scale(1.03);\n  border-color:rgba(0,212,255,.5);\n  box-shadow:\n    0 0 20px rgba(0,212,255,.3),\n    0 0 50px rgba(0,212,255,.12),\n    0 0 80px rgba(255,26,46,.06),\n    0 16px 40px rgba(0,0,0,.6);\n}\n.tsj-vcard:hover::after { opacity:1; }\n.tsj-vcard:hover::before { opacity:.5; }\n\n.tsj-vph {\n  position:absolute; inset:0; z-index:2;\n  display:flex; flex-direction:column;\n  align-items:center; justify-content:center; gap:10px;\n  background:linear-gradient(145deg,#08081e,#0c0c26);\n}\n\n\/* Play button \u2014 cyber con doppio anello pulsante *\/\n.tsj-vph-play {\n  width:56px; height:56px; border-radius:50%;\n  border:none; position:relative;\n  display:flex; align-items:center; justify-content:center;\n  font-size:20px; color:#fff;\n  background:radial-gradient(circle, rgba(0,212,255,.15) 0%, rgba(0,212,255,.04) 100%);\n  transition:all .3s;\n  cursor:pointer;\n}\n\/* Anello esterno rotante *\/\n.tsj-vph-play::before {\n  content:'';\n  position:absolute; inset:-5px; border-radius:50%;\n  border:1.5px solid transparent;\n  border-top-color:#00d4ff;\n  border-right-color:rgba(0,212,255,.3);\n  animation:playRingSpin 3s linear infinite;\n  box-shadow:0 0 10px rgba(0,212,255,.25);\n}\n\/* Anello interno fisso *\/\n.tsj-vph-play::after {\n  content:'';\n  position:absolute; inset:0; border-radius:50%;\n  border:1.5px solid rgba(0,212,255,.25);\n  box-shadow:0 0 14px rgba(0,212,255,.15), inset 0 0 10px rgba(0,212,255,.07);\n}\n@keyframes playRingSpin {\n  from { transform:rotate(0deg); }\n  to   { transform:rotate(360deg); }\n}\n\/* Icona play \u2014 triangolo SVG cyber *\/\n.tsj-vph-play-icon {\n  position:relative; z-index:1;\n  width:0; height:0;\n  border-style:solid;\n  border-width:8px 0 8px 14px;\n  border-color:transparent transparent transparent #00d4ff;\n  filter:drop-shadow(0 0 6px rgba(0,212,255,.8));\n  margin-left:3px;\n}\n.tsj-vcard:hover .tsj-vph-play {\n  background:radial-gradient(circle, rgba(0,212,255,.25) 0%, rgba(0,212,255,.08) 100%);\n  transform:scale(1.15);\n}\n.tsj-vcard:hover .tsj-vph-play::before {\n  animation-duration:1s;\n  border-top-color:#fff;\n  border-right-color:#00d4ff;\n  box-shadow:0 0 20px rgba(0,212,255,.5);\n}\n\n.tsj-vnum {\n  position:absolute; top:10px; right:10px; z-index:3;\n  font-family:'Orbitron',monospace; font-size:9px; font-weight:700;\n  background:rgba(0,0,0,.72);\n  border:1px solid rgba(0,212,255,.22);\n  padding:0 12px !important; border-radius:6px; color:var(--blue);\n  height:24px!important; display:flex!important; align-items:center!important;\n}\n.tsj-vinfo {\n  position:absolute; bottom:0; left:0; right:0; z-index:3;\n  padding:14px 10px; text-align:center;\n}\n.tsj-vcountry {\n  font-family:'Orbitron',monospace;\n  font-size:10px; font-weight:700; letter-spacing:1px;\n  color:var(--blue); margin-bottom:3px;\n  text-shadow:0 0 8px rgba(0,212,255,.45);\n}\n.tsj-vtitle { font-size:11.5px; font-weight:600; color:rgba(255,255,255,.65); }\n\n.tsj-load-btn {\n  display:inline-flex; align-items:center; gap:10px;\n  padding:14px 44px!important;\n  border-radius:8px;\n  border:1.5px solid var(--blue); background:transparent;\n  color:var(--blue); font-family:'Rajdhani',sans-serif;\n  font-size:13px; font-weight:700; letter-spacing:2.5px;\n  text-transform:uppercase; cursor:pointer; transition:all .25s;\n  box-shadow:0 0 12px rgba(0,212,255,.12);\n}\n\/* Colore quando ci passi sopra o lo tieni premuto (leggermente pi\u00f9 scuro) *\/\n.tsj-load-btn:hover, .tsj-load-btn:active {\n  background: #00b8e6 !important; \n  color: #050510 !important;\n  box-shadow: 0 0 20px rgba(0,212,255,0.4) !important;\n  transform: translateY(-2px);\n}\n\n\/* FIX: Appena smetti di premere, torna trasparente e NON resta bianco\/blu *\/\n.tsj-load-btn:focus {\n  background: transparent !important;\n  color: var(--blue) !important;\n  outline: none !important;\n}\n\n\/* ============================================================\n   JOIN THE MOVEMENT \u2014 redesign completo\n   ============================================================ *\/\n.tsj-join {\n  background:var(--dark);\n  text-align:center;\n  position:relative; overflow:hidden;\n  \/* breakout full width come le altre sezioni *\/\n  width:100%!important;\nmax-width:100%!important;\nmargin-left:0!important;\nmargin-right:0!important;\n  padding-left:0!important;\n  padding-right:0!important;\n}\n.tsj-join::before {\n  content:''; position:absolute; top:50%; left:50%;\n  transform:translate(-50%,-50%);\n  width:900px; height:900px; border-radius:50%;\n  background:radial-gradient(circle,\n    rgba(255,26,46,.07) 0%, rgba(0,212,255,.05) 40%, transparent 70%);\n  animation:joinG 4s ease-in-out infinite; pointer-events:none;\n}\n.tsj-join::after {\n  content:''; position:absolute; top:50%; left:50%;\n  transform:translate(-50%,-50%);\n  width:450px; height:450px; border-radius:50%;\n  background:radial-gradient(circle, rgba(0,212,255,.05), transparent 70%);\n  animation:joinG 4s ease-in-out infinite reverse; pointer-events:none;\n}\n@keyframes joinG {\n  0%,100%{transform:translate(-50%,-50%) scale(1)}\n  50%{transform:translate(-50%,-50%) scale(1.1)}\n}\n\/* Container: occupa tutto, solo padding laterale *\/\n.tsj-join .tsj-sec { padding:0!important; }\n.tsj-join-inner {\n  position:relative; z-index:1;\n  width:100%!important;\n  max-width:none!important;\n  margin:0!important;\n  background:rgba(8,8,28,.65);\n  border-top:1px solid rgba(0,212,255,.15);\n  border-bottom:1px solid rgba(255,26,46,.1);\n  border-left:none; border-right:none;\n  border-radius:0;\n  padding:72px 100px!important;          \/* padding laterale ampio *\/\n  backdrop-filter:blur(14px);\n  box-shadow:inset 0 0 80px rgba(0,0,0,.3);\n}\n.tsj-join-inner::before {\n  content:''; position:absolute; top:0; left:0; right:0;\n  height:1.5px;\n  background:linear-gradient(90deg, transparent 0%, var(--red) 30%, var(--blue) 70%, transparent 100%);\n  box-shadow:0 0 16px rgba(0,212,255,.4);\n}\n\n\/* Testo centrato con margin auto *\/\n.tsj-join-sub {\n  font-size:16.5px!important; color:rgba(255,255,255,.5)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.5)!important;\n  line-height:1.8!important;\n  margin:0 auto 40px!important;          \/* centrato *\/\n  max-width:560px!important;\n  text-align:center!important;\n  display:block!important;\n}\n\n\/* Social buttons \u2014 cyber anche senza hover *\/\n.tsj-social-btn {\n  display:inline-flex; align-items:center; gap:12px;\n  padding:14px 28px!important;\n  border-radius:10px;\n  border:1px solid rgba(0,212,255,.2)!important;\n  background:rgba(0,212,255,.03)!important;\n  color:#fff!important; -webkit-text-fill-color:#fff!important;\n  font-family:'Orbitron',monospace!important;\n  font-size:11px!important; font-weight:700!important; letter-spacing:2px!important;\n  text-decoration:none!important; transition:all .3s!important;\n  position:relative; overflow:hidden; cursor:pointer;\n  \/* Glow cyber fisso anche senza hover *\/\n  box-shadow:\n    0 0 10px rgba(0,212,255,.08),\n    inset 0 0 8px rgba(0,212,255,.04)!important;\n}\n\/* Linea neon bottom sempre visibile *\/\n.tsj-social-btn::before {\n  content:''; position:absolute; bottom:0; left:10%; right:10%;\n  height:1px; border-radius:1px;\n  background:linear-gradient(90deg,transparent,rgba(0,212,255,.35),transparent);\n  transform:scaleX(1);     \/* sempre visibile *\/\n  transition:all .3s;\n}\n.tsj-social-btn.ttk::before {\n  background:linear-gradient(90deg,transparent,rgba(255,26,46,.35),transparent);\n}\n.tsj-social-btn:hover::before {\n  height:2px;\n  background:linear-gradient(90deg,transparent,var(--blue),transparent);\n  box-shadow:0 0 8px rgba(0,212,255,.5);\n}\n.tsj-social-btn.ttk:hover::before {\n  background:linear-gradient(90deg,transparent,var(--red),transparent);\n  box-shadow:0 0 8px rgba(255,26,46,.5);\n}\n.tsj-social-btn:hover {\n  border-color:rgba(0,212,255,.5)!important;\n  background:rgba(0,212,255,.08)!important;\n  transform:translateY(-4px)!important;\n  box-shadow:0 0 24px rgba(0,212,255,.25), 0 8px 24px rgba(0,0,0,.4)!important;\n}\n.tsj-social-btn.ttk {\n  border-color:rgba(255,26,46,.2)!important;\n  background:rgba(255,26,46,.03)!important;\n  box-shadow:0 0 10px rgba(255,26,46,.08), inset 0 0 8px rgba(255,26,46,.04)!important;\n}\n.tsj-social-btn.ttk:hover {\n  border-color:rgba(255,26,46,.5)!important;\n  background:rgba(255,26,46,.08)!important;\n  box-shadow:0 0 24px rgba(255,26,46,.25), 0 8px 24px rgba(0,0,0,.4)!important;\n}\n\n\/* KPI \u2014 padding generoso + cyber *\/\n.tsj-kpi {\n  display:grid; grid-template-columns:repeat(3,1fr);\n  overflow:hidden; border-radius:14px;\n  background:linear-gradient(90deg,var(--red),var(--blue)); gap:1.5px;\n  margin-top:0;\n  box-shadow:0 0 30px rgba(0,212,255,.1), 0 0 60px rgba(255,26,46,.05);\n}\n.tsj-kpi-cell {\n  background:rgba(6,6,22,.95);\n  padding:36px 20px!important;       \/* pi\u00f9 respiro *\/\n  text-align:center; position:relative; overflow:hidden;\n}\n\/* Piccolo glow angolo cyber *\/\n.tsj-kpi-cell::after {\n  content:''; position:absolute; top:0; left:0;\n  width:40px; height:40px;\n  background:radial-gradient(ellipse at 0 0, rgba(0,212,255,.08), transparent 70%);\n}\n.tsj-kpi-n {\n  font-family:'Orbitron',monospace!important;\n  font-size:40px!important; font-weight:900!important;\n  line-height:1!important;\n  background:linear-gradient(135deg,#ffffff,rgba(255,255,255,.75));\n  -webkit-background-clip:text!important; -webkit-text-fill-color:transparent!important;\n  text-shadow:none!important;\n  filter:drop-shadow(0 0 8px rgba(255,255,255,.2));\n}\n.tsj-kpi-l {\n  font-size:9px!important; letter-spacing:3px!important; font-weight:700!important;\n  color:rgba(255,255,255,.3)!important; -webkit-text-fill-color:rgba(255,255,255,.3)!important;\n  text-transform:uppercase!important; margin-top:10px!important; display:block!important;\n}\n\n.tsj-join-pre {\n  font-family:'Orbitron',monospace!important;\n  font-size:9px!important; letter-spacing:5px!important;\n  color:var(--red)!important; -webkit-text-fill-color:var(--red)!important;\n  text-shadow:var(--rg)!important; text-transform:uppercase!important;\n  margin-bottom:20px!important;\n}\n.tsj-join-h {\n  font-family:'Orbitron',monospace!important;\n  font-size:clamp(28px,4.5vw,52px)!important; font-weight:900!important;\n  line-height:1.05!important; letter-spacing:2px!important;\n  text-transform:uppercase!important;\n  color:#fff!important; -webkit-text-fill-color:#fff!important;\n  margin-bottom:20px!important;\n}\n.tsj-join-h .b { color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important; text-shadow:var(--bg)!important; }\n\n\/* SOCIAL BUTTONS \u2014 custom SVG icons cyber *\/\n.tsj-social-row {\n  display:flex; justify-content:center; gap:16px; flex-wrap:wrap;\n  margin-bottom:48px!important;\n}\n  \n\/* Icone social SVG *\/\n.tsj-sico { display:flex; align-items:center; justify-content:center; flex-shrink:0; }\n\n\/* ============================================================\n   SAFEWORLD\n   ============================================================ *\/\n.tsj-sw {\n  background:var(--dark2);\n  padding-left:0!important;\n  padding-right:0!important;\n}\n.tsj-sw .tsj-sec-inner {\n  width:100%!important;\n  max-width:none!important;\n}\n.tsj-sw-grid {\n  display:grid; grid-template-columns:1fr 1fr;\n  gap:64px; align-items:stretch;\n  padding-left:clamp(24px, 5vw, 72px)!important;\n  padding-right:clamp(24px, 5vw, 72px)!important;       \/* colonne stessa altezza *\/\n}\n.tsj-sw-vals { display:flex; flex-direction:column; gap:14px; margin-top:28px; }\n\n\/* Card destra SafeWorld \u2014 senza portale *\/\n.tsj-sw-card {\n  background:var(--surf);\n  border:1px solid rgba(0,212,255,.15);\n  border-radius:16px;\n  padding:48px 44px 36px!important;   \/* padding generoso su tutti i lati *\/\n  text-align:center;\n  position:relative; overflow:hidden;\n  display:flex; flex-direction:column;\n  height:100%;\n  align-items:center;                 \/* centra tutto orizzontalmente *\/\n}\n.tsj-sw-card::before {\n  content:''; position:absolute; inset:0;\n  background:radial-gradient(ellipse at 50% 0%, rgba(0,212,255,.06), transparent 60%);\n  pointer-events:none;\n}\n\/* Linea top neon *\/\n.tsj-sw-card::after {\n  content:''; position:absolute; top:0; left:10%; right:10%;\n  height:1.5px;\n  background:linear-gradient(90deg,transparent,var(--blue),var(--red),transparent);\n  box-shadow:0 0 10px rgba(0,212,255,.3);\n}\n.tsj-sw-title {\n  font-family:'Orbitron',monospace!important;\n  font-size:20px!important; font-weight:900!important; letter-spacing:2px!important;\n  color:#fff!important; -webkit-text-fill-color:#fff!important;\n  text-transform:uppercase!important;\n  margin-top:8px!important;            \/* respiro dal bordo superiore *\/\n  margin-bottom:18px!important;\n  position:relative; z-index:1;\n  text-align:center!important;\n}\n.tsj-sw-body {\n  font-size:15px!important; color:rgba(255,255,255,.5)!important;\n  line-height:1.75!important;\n  margin-bottom:28px!important;\n  position:relative; z-index:1;\n  text-align:center!important;         \/* centrato *\/\n  max-width:340px!important;\n  margin-left:auto!important; margin-right:auto!important;\n}\n\/* Bottone cyber SafeWorld *\/\n.tsj-sw-btn {\n  display:inline-flex; align-items:center; justify-content:center; gap:10px;\n  padding:13px 36px!important;         \/* padding giusto \u2014 non troppo largo *\/\n  width:auto!important;                \/* larghezza automatica al contenuto *\/\n  align-self:center;                   \/* centrato nella colonna flex *\/\n  border-radius:8px;\n  font-family:'Orbitron',monospace;\n  font-size:11px; font-weight:700; letter-spacing:2px;\n  text-transform:uppercase; cursor:pointer;\n  text-decoration:none; transition:all .3s;\n  color:#fff!important; -webkit-text-fill-color:#fff!important;\n  position:relative; overflow:hidden;\n  background:linear-gradient(135deg, rgba(0,212,255,.15), rgba(255,26,46,.08));\n  border:1.5px solid rgba(0,212,255,.4);\n  box-shadow:\n    0 0 16px rgba(0,212,255,.2),\n    0 0 32px rgba(255,26,46,.08),\n    inset 0 0 12px rgba(0,212,255,.06);\n  white-space:nowrap;\n}\n.tsj-sw-btn::before {\n  content:''; position:absolute; inset:0;\n  background:linear-gradient(90deg, transparent 0%, rgba(0,212,255,.12) 50%, transparent 100%);\n  transform:translateX(-100%);\n  transition:transform .6s;\n}\n.tsj-sw-btn:hover::before { transform:translateX(100%); }\n.tsj-sw-btn:hover {\n  border-color:var(--blue);\n  box-shadow:0 0 28px rgba(0,212,255,.4), 0 0 60px rgba(255,26,46,.1);\n  transform:translateY(-3px);\n}\n\n\/* Canvas particelle \u2014 pace symbol *\/\n#tsj-peace-cv {\n  flex:1; min-height:220px;\n  width:100%; display:block;\n  margin-top:28px; border-radius:10px;\n  position:relative; z-index:1;\n}\n\n\/* ============================================================\n   FOOTER\n   ============================================================ *\/\n.tsj-footer {\n  background:#02020a;\n  border-top:1px solid rgba(0,212,255,.12);\n  width:100%!important;\nmax-width:100%!important;\nmargin-left:0!important;\nmargin-right:0!important;\n  padding:64px 10vw 0!important;\n  box-sizing:border-box!important;\n}\n\n.tsj-ft-top {\n  display: grid;\n  grid-template-columns: repeat(3, 1fr); \/* Tre colonne identiche *\/\n  gap: 8vw;\n  padding-bottom: 52px !important;\n  \n  \/* Centramento del contenitore *\/\n  width: 90% !important;\n  max-width: 1200px !important;\n  margin: 0 auto !important; \n\n  \/* Centramento del contenuto interno *\/\n  justify-items: center; \/* Centra gli elementi orizzontalmente nella cella *\/\n  align-items: start;    \/* Allinea in alto (puoi usare 'center' se vuoi) *\/\n}\n\n.tsj-ft-divider { display:none!important; }\n\n\/* Bottom \u2014 padding tra socials e divider e credits *\/\n.tsj-ft-bot {\n  display:flex; flex-direction:column; align-items:center; gap:0; padding:0;\n}\n\n.tsj-ft-brand .name {\n  font-family:'Orbitron',monospace;\n  font-size:15px; font-weight:900; letter-spacing:3px;\n  background:linear-gradient(90deg,var(--red),var(--blue));\n  -webkit-background-clip:text; -webkit-text-fill-color:transparent;\n  margin-bottom:16px!important; display:block;\n  filter:drop-shadow(0 0 8px rgba(255,26,46,.3));\n}\n.tsj-ft-brand .sub {\n  font-size:9px; letter-spacing:2.5px;\n  color:rgba(255,255,255,.22); text-transform:uppercase; line-height:1.8;\n}\n\n\/* Divisore verticale \u2014 centrato tra i menu *\/\n.tsj-ft-divider {\n  flex:1;                          \/* occupa spazio uguale tra colonne *\/\n  max-width:1px;\n  align-self:stretch;\n  background:linear-gradient(180deg,\n    transparent 0%,\n    rgba(0,212,255,.25) 25%,\n    rgba(0,212,255,.2)  75%,\n    transparent 100%);\n  margin:0 56px;                   \/* distanza uniforme da entrambi i lati *\/\n  flex-shrink:0;\n}\n\n\/* Colonne menu *\/\n.tsj-ft-col { flex:1; }\n\/* \u2500\u2500 h4 titolo menu \u2500\u2500 *\/\n.tsj-ft-col h4 {\n  font-family:'Orbitron',monospace!important;\n  font-size:8.5px!important; letter-spacing:3px!important; font-weight:800!important;\n  color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important;\n  text-transform:uppercase!important;\n  display:block!important;\n  margin:0 0 10px 0!important;\n  padding:0!important; border:none!important;\n}\n.tsj-ft-col h4::after { content:none!important; display:none!important; }\n.tsj-ft-col h4.r { color:#ff1a2e!important; -webkit-text-fill-color:#ff1a2e!important; }\n\n\/* Separatore reale HTML *\/\n.tsj-ft-sep {\n  display:block!important;\n  width:36px!important; height:1.5px!important;\n  margin:0 0 20px 0!important;\n  background:linear-gradient(90deg,#ff1a2e,#00d4ff)!important;\n  box-shadow:0 0 6px rgba(0,212,255,.4)!important;\n  border-radius:1px!important;\n  opacity:1!important; visibility:visible!important;\n}\n\/* Entrambi i separatori menu stesso stile *\/\n.tsj-ft-sep.r { background:linear-gradient(90deg,#ff1a2e,#00d4ff)!important; }\n\n\/* Contatti \u2014 separatore leggermente pi\u00f9 corto del bordo colonna *\/\n.tsj-ft-contact {\n  margin-top:20px!important;\n  padding-top:16px!important;\n  border-top:none!important;\n  display:flex!important; flex-direction:column!important; gap:8px!important;\n  position:relative!important;\n}\n.tsj-ft-contact::before {\n  content:''!important; display:block!important;\n  width:65%!important; height:1px!important;\n  position:absolute!important; top:0; left:0;\n  background:rgba(255,255,255,.12)!important;\n  border-radius:1px!important;\n}\n\n\n.tsj-footer .tsj-ft-contact a {\n  font-size:11.5px!important;\n  color:rgba(255,255,255,.35)!important; -webkit-text-fill-color:rgba(255,255,255,.35)!important;\n  letter-spacing:.4px!important; text-decoration:none!important;\n  cursor:pointer!important; pointer-events:auto!important;\n  display:block!important; position:relative!important; z-index:100!important;\n  transition:color .2s!important;\n}\n.tsj-footer .tsj-ft-contact a:hover {\n  color:rgba(0,212,255,.9)!important; -webkit-text-fill-color:rgba(0,212,255,.9)!important;\n}\n\n\/* \u2500\u2500 SOCIALS centrati sotto \u2500\u2500 *\/\n.tsj-ft-socials-center {\n  display:flex; flex-direction:column; align-items:center;\n  padding:36px 0 40px;\n  border-top:1px solid rgba(255,255,255,.06);\n  gap:20px;\n}\n.tsj-ft-socials-center h4 {\n  font-family:'Orbitron',monospace!important;\n  font-size:8.5px!important; letter-spacing:3px!important; font-weight:800!important;\n  color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important;\n  text-transform:uppercase!important; margin:0!important;\n}\n.tsj-ft-socials {\n  display:flex; gap:14px; flex-wrap:wrap; justify-content:center;\n}\n.tsj-ft-s {\n  width:46px; height:46px; border-radius:12px;\n  background:rgba(0,212,255,.04);\n  border:1px solid rgba(0,212,255,.2);\n  display:flex; align-items:center; justify-content:center;\n  cursor:pointer; transition:all .28s;\n  text-decoration:none;\n  box-shadow:0 0 10px rgba(0,212,255,.07), inset 0 0 6px rgba(0,212,255,.03);\n  position:relative; overflow:hidden;\n}\n.tsj-ft-s::before {\n  content:''; position:absolute; inset:0;\n  background:linear-gradient(135deg,rgba(0,212,255,.1),transparent);\n  opacity:0; transition:opacity .25s;\n}\n.tsj-ft-s:hover::before { opacity:1; }\n.tsj-ft-s:hover {\n  border-color:var(--blue);\n  box-shadow:0 0 22px rgba(0,212,255,.32), inset 0 0 12px rgba(0,212,255,.07);\n  transform:translateY(-4px);\n}\n.tsj-ft-s.ttk {\n  border-color:rgba(255,26,46,.22); background:rgba(255,26,46,.04);\n  box-shadow:0 0 10px rgba(255,26,46,.07);\n}\n.tsj-ft-s.ttk::before { background:linear-gradient(135deg,rgba(255,26,46,.12),transparent); }\n.tsj-ft-s.ttk:hover { border-color:var(--red); box-shadow:0 0 22px rgba(255,26,46,.32); }\n\n\/* Divider neon con punto centrale *\/\n.tsj-ft-divider-full {\n  width:100%; height:1px;\n  background:linear-gradient(90deg,\n    transparent 0%,\n    rgba(255,26,46,.5) 25%,\n    rgba(0,212,255,.7) 50%,\n    rgba(255,26,46,.5) 75%,\n    transparent 100%);\n  box-shadow:0 0 14px rgba(0,212,255,.2);\n  position:relative; margin-bottom:0;\n}\n.tsj-ft-divider-full::after {\n  content:''; position:absolute; top:-4px; left:50%; transform:translateX(-50%);\n  width:9px; height:9px; border-radius:50%;\n  background:linear-gradient(135deg,var(--red),var(--blue));\n  box-shadow:0 0 12px rgba(0,212,255,.7), 0 0 24px rgba(255,26,46,.4);\n}\n\n\/* Vals row *\/\n.tsj-ft-vals {\n  font-family:'Orbitron',monospace!important;\n  font-size:9px!important; letter-spacing:2.5px!important; font-weight:700!important;\n  color:rgba(255,255,255,.2)!important; -webkit-text-fill-color:rgba(255,255,255,.2)!important;\n  padding:20px 0 0!important;\n  margin-bottom:0!important;\n}\n.tsj-ft-vals .r { color:var(--red)!important; -webkit-text-fill-color:var(--red)!important; }\n.tsj-ft-vals .b { color:var(--blue)!important; -webkit-text-fill-color:var(--blue)!important; }\n\n.tsj-ft-credits {\n  display:flex; align-items:center; gap:8px; flex-wrap:wrap;\n  justify-content:center;\n  font-size:11px; color:rgba(255,255,255,.22);\n  -webkit-text-fill-color:rgba(255,255,255,.22);\n  padding:16px 0 32px!important;\n  letter-spacing:.3px;\n  cursor:default!important;\n}\n.tsj-ft-copy-txt {\n  cursor:default!important;\n  color:rgba(255,255,255,.22)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.22)!important;\n}\n.tsj-ft-credits .sep {\n  color:rgba(255,255,255,.12)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.12)!important;\n  cursor:default!important;\n}\n\n\/* Sabriel Agency \u2014 cyber scanline *\/\n.tsj-ft-agency {\n  font-family:'Orbitron',monospace!important;\n  font-size:10px!important; font-weight:700!important; letter-spacing:2px!important;\n  color:rgba(0,212,255,.55)!important;\n  -webkit-text-fill-color:rgba(0,212,255,.55)!important;\n  text-decoration:none!important; transition:all .35s!important;\n  position:relative;\n  overflow:hidden!important;          \/* BLOCCA ::before fuori dal link *\/\n  padding:3px 10px!important;\n  border:1px solid rgba(0,212,255,.18)!important;\n  border-radius:4px!important;\n  background:rgba(0,212,255,.03)!important;\n  margin-left:4px!important;\n  cursor:pointer!important;\n  pointer-events:auto!important;\n  display:inline-block!important;\n}\n.tsj-ft-agency::before {\n  content:''; position:absolute; top:0; left:-100%; width:100%; height:100%;\n  background:linear-gradient(90deg,transparent,rgba(0,212,255,.14),transparent);\n  transition:left .5s ease; border-radius:4px;\n}\n.tsj-ft-agency:hover::before { left:100%; }\n.tsj-ft-agency:hover {\n  color:#00d4ff!important; -webkit-text-fill-color:#00d4ff!important;\n  border-color:rgba(0,212,255,.5)!important;\n  box-shadow:0 0 14px rgba(0,212,255,.28)!important;\n  text-shadow:0 0 10px rgba(0,212,255,.6)!important;\n}\n\n@media(max-width:900px){\n  .tsj-ft-top { flex-wrap:wrap; }\n  .tsj-ft-divider { display:none; }\n  .tsj-ft-brand { flex:0 0 100%; margin-bottom:24px; }\n  .tsj-ft-col { flex:0 0 40%; }\n}\n\n\/* ============================================================\n   RESPONSIVE\n   ============================================================ *\/\n@media(max-width:1100px) {\n  .tsj-tour-grid,.tsj-mission-grid,.tsj-sw-grid { grid-template-columns:1fr; }\n  .tsj-char-zone { opacity:.25; pointer-events:none; }\n  .tsj-hero-txt { max-width:100%; }\n  .tsj-ft-top { grid-template-columns:1fr 1fr; }\n  .tsj-vgrid { grid-template-columns:repeat(3,1fr); }\n}\n\n\/* Nascondi elementi mobile su desktop *\/\n.tsj-mob-overlay { display:none; }\n.tsj-ham { display:none; }\n\n\/* ============================================================\n   MOBILE HEADER + MENU\n   ============================================================ *\/\n@media(max-width:1024px) {\n  \n\/* FOOTER mobile *\/\n  .tsj-ft-col + .tsj-ft-col {\n    position:relative!important;\n  }\n  .tsj-ft-col + .tsj-ft-col::before {\n    content:''!important;\n    position:absolute!important;\n    left:0!important;\n    top:8%!important;\n    bottom:8%!important;\n    width:1px!important;\n    background:rgba(255,255,255,.12)!important;\n  }\n  .tsj-ft-socials-center {\n    border-top:none!important;\n  }\n  .tsj-footer {\n    padding:48px 20px 0!important;\n  }\n  .tsj-ft-top {\n    grid-template-columns:1fr 1fr!important;\n    grid-template-rows:auto auto!important;\n    gap:36px 0!important;\n    width:100%!important;\n    text-align:center!important;\n    justify-items:center!important;\n  }\n  .tsj-ft-brand {\n    grid-column:1 \/ -1!important;\n    text-align:center!important;\n  }\n  .tsj-ft-brand .name {\n    font-size:22px!important;\n    letter-spacing:4px!important;\n  }\n  .tsj-ft-brand .sub {\n    font-size:12px!important;\n    letter-spacing:2px!important;\n    margin-top:8px!important;\n  }\n  .tsj-ft-contact {\n    align-items:center!important;\n    margin-top:16px!important;\n  }\n  .tsj-ft-contact::before {\n    left:50%!important;\n    transform:translateX(-50%)!important;\n    width:80%!important;\n  }\n  .tsj-ft-contact-name {\n    font-size:15px!important;\n  }\n  .tsj-footer .tsj-ft-contact a {\n    font-size:13px!important;\n  }\n  .tsj-ft-col {\n    text-align:center!important;\n    padding:0 12px!important;\n    position:relative!important;\n    width:100%!important;\n  }\n  .tsj-ft-col h4 {\n    font-size:11px!important;\n    letter-spacing:2px!important;\n    text-align:center!important;\n  }\n  .tsj-ft-sep {\n    margin:0 auto 20px!important;\n  }\n  .tsj-ft-col a {\n    font-size:15px!important;\n    text-align:center!important;\n    padding-left:0!important;\n  }\n  .tsj-ft-col a:hover {\n    padding-left:0!important;\n  }\n  \n  \/* Credits centrati *\/\n  .tsj-ft-vals {\n    text-align:center!important;\n    padding:20px 20px 0!important;\n  }\n  .tsj-ft-credits {\n    flex-direction:column!important;\n    align-items:center!important;\n    gap:6px!important;\n    text-align:center!important;\n  }\n  .tsj-ft-credits .sep { display:none!important; }\n  \/* Footer brand sub bianco *\/\n  .tsj-ft-brand .sub {\n    color:rgba(255,255,255,.6)!important;\n    -webkit-text-fill-color:rgba(255,255,255,.6)!important;\n    font-size:11px!important;\n  }\n  \/* Email e phone pi\u00f9 visibili *\/\n  .tsj-footer .tsj-ft-contact a {\n    color:rgba(255,255,255,.55)!important;\n    -webkit-text-fill-color:rgba(255,255,255,.55)!important;\n    font-size:12px!important;\n  }\n  \n \/* MISSION mobile - FIX CENTRATURA E FULL-WIDTH BANDIERE *\/\n  .tsj-mission {\n    padding: 60px 0 !important;\n  }\n  .tsj-mission .tsj-sec-inner {\n    padding: 0 !important;\n    width: 100% !important;\n    max-width: 100% !important;\n  }\n  .tsj-mission-grid {\n    gap: 32px !important;\n    padding-right: 0 !important;\n    padding-left: 0 !important;\n  }\n  \n  \/* Centratura del testo superiore \"Who is TheSafeJoker\" *\/\n  .tsj-mission-grid > div:first-child {\n    padding: 0 20px !important;\n  }\n  .tsj-mission-grid > div:first-child .tsj-sec-lbl {\n    justify-content: center !important;\n  }\n  .tsj-mission-grid > div:first-child .tsj-h2, \n  .tsj-mission-grid > div:first-child .tsj-body {\n    text-align: center !important;\n    margin-left: auto !important;\n    margin-right: auto !important;\n  }\n\n  \/* Card Bandiere Full-Width (Senza bordi laterali) *\/\n  .tsj-quote {\n    padding: 40px 15px 18px !important; \/* Abbasso drasticamente il padding inferiore *\/\n    border-radius: 0 !important;\n    border-left: none !important;\n    border-right: none !important;\n    width: 100% !important;\n  }\n\n  \/* Fix Bandiere tagliate: rimpicciolisce l'orbita *\/\n  .tsj-flags-orbit {\n    transform: scale(0.72);\n    transform-origin: center center;\n    margin-top: -10px !important;\n    margin-bottom: -30px !important; \/* <--- Questo margine negativo \"mangia\" lo spazio fantasma! *\/\n  }\n\n  \/* SAFEWORLD mobile - FIX LARGHEZZA SCHIACCIATA E FULL WIDTH *\/\n  .tsj-sw {\n    padding: 60px 0 !important;\n  }\n  .tsj-sw .tsj-sec-inner {\n    padding: 0 !important;\n  }\n  .tsj-sw-grid {\n    gap: 32px !important;\n    padding-left: 0 !important;\n    padding-right: 0 !important;\n  }\n  .tsj-sw-grid > div:first-child {\n    padding: 0 20px !important;\n  }\n  .tsj-sw-card {\n    padding: 40px 20px !important;\n    border-radius: 0 !important;\n    border-left: none !important;\n    border-right: none !important;\n    width: 100% !important;\n  }\n  .tsj-tour .tsj-sec-inner > div:first-child {\n    text-align: center !important;\n  }\n  .tsj-tour .tsj-sec-lbl {\n    justify-content: center !important;\n  }\n  .tsj-prog-lbl {\n    text-align: left !important;\n  }\n  .tsj-tour {\n    padding: 60px 20px !important;\n  }\n  \/* Rimuovo il doppio padding che schiacciava il testo a destra *\/\n  .tsj-tour .tsj-sec-inner {\n    padding: 0 !important; \n    width: 100% !important;\n  }\n  .tsj-tour-grid {\n    grid-template-columns: 1fr !important;\n    gap: 32px !important;\n    margin: 0 !important;\n    padding: 0 !important;\n  }\n  .tsj-tour-grid > div:first-child {\n    padding: 0 20px !important;\n  }\n  .tsj-tour-grid > div:first-child .tsj-body {\n    text-align: center !important;\n  }\n  \/* Calcolo perfetto per la mappa a tutto schermo senza farla sbordare *\/\n  .tsj-map-vis {\n    min-height: 320px !important;\n    width: calc(100% + 40px) !important;\n    margin-left: -20px !important;\n    border-radius: 0 !important;\n  }\n  #tsj-map-cv {\n    border-radius:0!important;\n    border-left:none!important;\n    border-right:none!important;\n  }\n  .tsj-stats-grid {\n    grid-template-columns:1fr 1fr!important;\n    gap:12px!important;\n  }\n  .tsj-stat {\n    padding:20px 14px!important;\n  }\n  .tsj-stat-n {\n    font-size:28px!important;\n  }\n  .tsj-h2 {\n    font-size:clamp(24px,7vw,36px)!important;\n  }\n  .tsj-pills {\n    background:rgba(0,0,0,.35)!important;\n    padding:10px 12px!important;\n    border-radius:50px!important;\n    backdrop-filter:blur(4px)!important;\n  }\n  .tsj-tagline {\n   background:rgba(0,0,0,.55)!important;\n    padding:14px 12px!important;\n    border-radius:12px!important;\n    backdrop-filter:blur(4px)!important;\n    color:rgba(255,255,255,.9)!important;\n    -webkit-text-fill-color:rgba(255,255,255,.9)!important;\n  }\n  .tsj-feats {\n    background:rgba(0,0,0,.35)!important;\n    padding:14px 12px!important;\n    border-radius:12px!important;\n    backdrop-filter:blur(4px)!important;\n  }\n  .tsj-hero > div[style*=\"gradient\"] {\n    background:linear-gradient(to right, rgba(0,0,0,.75) 0%, rgba(0,0,0,.5) 50%, rgba(0,0,0,.2) 100%)!important;\n  }\n  .tsj-feats {\n    flex-wrap:nowrap!important;\n    gap:8px!important;\n    justify-content:center!important;\n    padding:0 12px!important;\n  }\n  .tsj-scroll {\n    bottom:8px!important;\n  }\n  .tsj-feats {\n     margin-top:24px!important;\n    margin-bottom:40px!important;\n  }\n  .tsj-feat {\n    flex:1!important;\n    align-items:center!important;\n  }\n  .tsj-feat-lbl {\n    font-size:7px!important;\n    white-space:nowrap!important;\n  }\n  .tsj-feat-ico svg {\n    width:24px!important;\n    height:24px!important;\n  }\n  .tsj-feat-num {\n    font-size:12px!important;\n  }\n  .tsj-hdr {\n    padding:0 16px!important;\n    height:64px!important;\n    justify-content:space-between!important;\n  }\n  .tsj-nav { display:none!important; }\n  \/* Hero mobile \u2014 fix padding e centratura *\/\n  .tsj-hero-txt {\n    padding:100px 20px 40px 20px!important;\n    max-width:100%!important;\n    text-align:center!important;\n  }\n  .tsj-h1 {\n    font-size:clamp(26px,8.5vw,40px)!important;\n    line-height:1.05!important;\n  }\n  .tsj-eyebrow {\n    justify-content:center!important;\n  }\n  .tsj-eyebrow::before { display:none!important; }\n  .tsj-h1sub {\n    font-size:clamp(22px,7vw,32px)!important;\n  }\n  .tsj-countries {\n    font-size:16px!important;\n    justify-content:center!important;\n  }\n  .tsj-pills {\n    flex-wrap:nowrap!important;\n    gap:6px!important;\n    justify-content:center!important;\n  }\n  .tsj-pill {\n    font-size:10px!important;\n    padding:7px 10px!important;\n    gap:4px!important;\n  }\n  .tsj-ctas {\n    flex-direction:column!important;\n    align-items:center!important;\n    gap:10px!important;\n  }\n  .tsj-btn {\n    width:100%!important;\n    justify-content:center!important;\n    font-size:12px!important;\n    padding:12px 20px!important;\n  }\n  .tsj-tagline {\n    font-size:11px!important;\n    justify-content:center!important;\n  }\n  .tsj-feats {\n    justify-content:center!important;\n    gap:20px!important;\n  }\n  .tsj-nextstop {\n    display:none!important;\n  }\n .tsj-pills { flex-wrap:nowrap!important; gap:6px!important; }\n.tsj-pill { font-size:10px!important; padding-left:12px!important; padding-right:12px!important; padding-top:7px!important; padding-bottom:7px!important; gap:5px!important; }\n  .tsj-hero-vid-desktop { display:none!important; }\n.tsj-hero-vid-mobile { display:block!important; }\n  .tsj-logo {\n    position:absolute!important;\n    left:50%!important;\n    transform:translateX(-50%)!important;\n    gap:0!important;\n    z-index:0!important;\n  }\n  .tsj-logo-name,\n  .tsj-logo-sub { display:none!important; }\n  .tsj-logo-ring {\n    width:44px!important; height:44px!important;\n  }\n  .tsj-follow {\n    width:44px!important;\n    height:44px!important;\n    padding:0!important;\n    justify-content:center!important;\n    gap:0!important;\n    font-size:0!important;\n    letter-spacing:0!important;\n    border-radius:10px!important;\n  }\n  .tsj-follow .fheart {\n    font-size:20px!important;\n  }\n\n  \/* Hamburger *\/\n  .tsj-ham {\n    display:flex!important;\n    flex-direction:column!important;\n    justify-content:center!important;\n    gap:5px!important;\n    width:44px!important; height:44px!important;\n    padding:8px!important;\n    background:rgba(0,212,255,.06)!important;\n    border:1.5px solid rgba(0,212,255,.35)!important;\n    border-radius:8px!important;\n    cursor:pointer!important;\n    flex-shrink:0!important;\n    transition:all .3s!important;\n    box-shadow:0 0 10px rgba(0,212,255,.15), inset 0 0 8px rgba(0,212,255,.04)!important;\n    z-index:601!important;\n    position:relative!important;\n  }\n  .tsj-ham span {\n    display:block!important; height:2px!important;\n    border-radius:2px!important;\n    background:linear-gradient(90deg,#ff1a2e,#00d4ff)!important;\n    box-shadow:0 0 8px rgba(0,212,255,.5)!important;\n    transition:all .35s cubic-bezier(.77,0,.175,1)!important;\n  }\n  .tsj-ham span:nth-child(1){ width:100%!important; }\n  .tsj-ham span:nth-child(2){ width:70%!important; margin-left:auto!important; }\n  .tsj-ham span:nth-child(3){ width:85%!important; }\n  .tsj-ham.open span:nth-child(1){ transform:translateY(7px) rotate(45deg)!important; width:100%!important; }\n  .tsj-ham.open span:nth-child(2){ opacity:0!important; transform:scaleX(0)!important; }\n  .tsj-ham.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg)!important; width:100%!important; }\n  .tsj-ham:hover {\n    border-color:rgba(0,212,255,.8)!important;\n    box-shadow:0 0 20px rgba(0,212,255,.4)!important;\n  }\n\n  \/* Mobile menu overlay *\/\n  body.tsj-menu-open {\n    overflow:hidden!important;\n    height:100dvh!important;\n    touch-action:none!important;\n  }\n  .tsj-mob-overlay {\n    position:fixed!important; inset:0!important; z-index:9999!important;\n    display:flex!important; flex-direction:column!important;\n    align-items:center!important; justify-content:space-between!important;\n    padding:16px 20px env(safe-area-inset-bottom,20px)!important;\n    height:100dvh!important; overflow:hidden!important;\n    opacity:0; pointer-events:none!important;\n    transition:opacity .4s ease!important;\n  }\n  .tsj-mob-header {\n    display:flex!important; align-items:center!important;\n    justify-content:space-between!important;\n    width:100%!important; position:relative!important; z-index:2!important;\n  }\n  .tsj-mob-overlay.open {\n    opacity:1!important; pointer-events:auto!important;\n  }\n  .tsj-mob-bg {\n    position:absolute!important; inset:0!important;\n    background:rgba(3,3,14,.97)!important;\n    backdrop-filter:blur(28px)!important;\n  }\n  .tsj-mob-bg::before {\n    content:''!important; position:absolute!important; inset:0!important;\n    background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,212,255,.02) 2px,rgba(0,212,255,.02) 4px)!important;\n  }\n  .tsj-mob-bg::after {\n    content:''!important; position:absolute!important;\n    top:50%!important; left:50%!important;\n    transform:translate(-50%,-50%)!important;\n    width:500px!important; height:500px!important; border-radius:50%!important;\n    background:radial-gradient(circle,rgba(255,26,46,.08) 0%,rgba(0,212,255,.06) 40%,transparent 70%)!important;\n    animation:joinG 4s ease-in-out infinite!important;\n  }\n  \/* Scan line cyber *\/\n  .tsj-mob-overlay.open::before {\n    content:''!important;\n    position:absolute!important; inset:0!important; z-index:3!important;\n    background:linear-gradient(180deg,\n      transparent 0%,\n      rgba(0,212,255,.06) 50%,\n      transparent 100%)!important;\n    background-size:100% 8px!important;\n    animation:scanLine .8s linear forwards!important;\n    pointer-events:none!important;\n  }\n  @keyframes scanLine {\n    from{ transform:translateY(-100%); opacity:1; }\n    to{ transform:translateY(100%); opacity:0; }\n  }\n  \/* Glitch sulle voci *\/\n  .tsj-mob-overlay.open .tsj-mob-nav a {\n    animation:mobNavIn .45s ease forwards, glitchIn .3s ease forwards!important;\n  }\n  @keyframes glitchIn {\n    0%{ clip-path:inset(50% 0 50% 0); filter:blur(4px); }\n    40%{ clip-path:inset(0% 0 0% 0); filter:blur(2px); }\n    60%{ transform:translateX(4px); filter:blur(0); }\n    80%{ transform:translateX(-2px); }\n    100%{ transform:translateX(0); clip-path:none; filter:none; }\n  }\n   @keyframes mpOpen {\n    0%{ opacity:0; transform:scale(0); }\n    30%{ opacity:1; transform:scale(2); }\n    70%{ opacity:.6; transform:scale(1.2); }\n    100%{ opacity:0; transform:scale(0.5); }\n  }\n  @keyframes mpClose {\n    0%{ opacity:1; transform:translate(0,0) scale(1); }\n    60%{ opacity:.7; transform:translate(var(--tx),var(--ty)) scale(1.5); }\n    100%{ opacity:0; transform:translate(calc(var(--tx)*1.8),calc(var(--ty)*1.8)) scale(0); }\n  }\n  .tsj-mob-close {\n    position:relative!important;\n    width:38px!important; height:38px!important; border-radius:8px!important;\n    border:1.5px solid rgba(255,26,46,.4)!important;\n    background:rgba(255,26,46,.08)!important;\n    color:#ff1a2e!important; font-size:18px!important;\n    display:flex!important; align-items:center!important; justify-content:center!important;\n    cursor:pointer!important; z-index:2!important; flex-shrink:0!important;\n    box-shadow:0 0 12px rgba(255,26,46,.2)!important;\n  }\n  .tsj-mob-logo-txt {\n    font-family:'Orbitron',monospace!important;\n    font-size:16px!important; font-weight:900!important; letter-spacing:2px!important;\n    background:linear-gradient(90deg,#ff1a2e,#00d4ff)!important;\n    -webkit-background-clip:text!important; -webkit-text-fill-color:transparent!important;\n    margin:0!important; position:relative!important; z-index:2!important;\n    text-transform:uppercase!important;\n  }\n  .tsj-mob-nav {\n    display:flex!important; flex-direction:column!important;\n    align-items:center!important; gap:2px!important;\n    position:relative!important; z-index:2!important;\n    margin-bottom:0!important;\n  }\n  .tsj-mob-nav a {\n    font-family:'Orbitron',monospace!important;\n    font-size:16px!important; font-weight:700!important; letter-spacing:2px!important;\n    color:rgba(255,255,255,.65)!important;\n    -webkit-text-fill-color:rgba(255,255,255,.65)!important;\n    text-transform:uppercase!important; text-decoration:none!important;\n    padding:10px 40px!important; border-radius:8px!important;\n    border:1px solid transparent!important;\n    transition:all .3s!important;\n    position:relative!important; opacity:0!important;\n  }\n  .tsj-mob-nav a::before {\n    content:''!important; position:absolute!important;\n    left:0!important; top:50%!important; transform:translateY(-50%)!important;\n    width:0!important; height:1.5px!important;\n    background:linear-gradient(90deg,#ff1a2e,#00d4ff)!important;\n    transition:width .3s ease!important;\n  }\n  .tsj-mob-nav a:hover {\n    color:#fff!important; -webkit-text-fill-color:#fff!important;\n    border-color:rgba(0,212,255,.2)!important;\n    background:rgba(0,212,255,.05)!important;\n    padding-left:52px!important;\n  }\n  .tsj-mob-nav a:hover::before { width:24px!important; }\n  .tsj-mob-overlay.open .tsj-mob-nav a {\n    animation:mobNavIn .45s ease forwards!important;\n  }\n  .tsj-mob-nav a:nth-child(1){ animation-delay:.06s!important; }\n  .tsj-mob-nav a:nth-child(2){ animation-delay:.12s!important; }\n  .tsj-mob-nav a:nth-child(3){ animation-delay:.18s!important; }\n  .tsj-mob-nav a:nth-child(4){ animation-delay:.24s!important; }\n  .tsj-mob-nav a:nth-child(5){ animation-delay:.30s!important; }\n  .tsj-mob-nav a:nth-child(6){ animation-delay:.36s!important; }\n  @keyframes mobNavIn {\n    from{ opacity:0; transform:translateX(-28px); }\n    to{ opacity:1; transform:translateX(0); }\n  }\n  .tsj-mob-nav a { opacity:1!important; }\n .tsj-mob-socials {\n    display:flex!important; gap:20px!important; flex-wrap:wrap!important;\n    justify-content:center!important;\n    position:relative!important; z-index:2!important;\n    margin-bottom:-30px!important;\n  }\n  .tsj-mob-socials a {\n    font-family:'Orbitron',monospace!important;\n    font-size:8px!important;\n    letter-spacing:0px!important;\n    flex:1!important;\n    text-align:center!important;\n    padding:8px 6px!important;\n    color:#00d4ff!important;\n    -webkit-text-fill-color:#00d4ff!important;\n    text-decoration:none!important;\n    text-transform:uppercase!important;\n    border:1px solid rgba(0,212,255,.3)!important;\n    border-radius:6px!important;\n    background:rgba(0,212,255,.06)!important;\n    box-shadow:0 0 10px rgba(0,212,255,.2)!important;\n  }\n  .tsj-mob-socials a:first-child {\n    color:#ff1a2e!important;\n    -webkit-text-fill-color:#ff1a2e!important;\n    border-color:rgba(255,26,46,.3)!important;\n    background:rgba(255,26,46,.06)!important;\n    box-shadow:0 0 10px rgba(255,26,46,.2)!important;\n  }\n  .tsj-mob-tag {\n    font-family:'Orbitron',monospace!important;\n    font-size:9px!important; letter-spacing:2px!important;\n    color:rgba(255,255,255,.5)!important;\n    -webkit-text-fill-color:rgba(255,255,255,.5)!important;\n    position:relative!important; z-index:2!important;\n    text-transform:uppercase!important;\n    display:flex!important; align-items:center!important; gap:10px!important;\n    margin-bottom:25px!important;\n  }\n  .tsj-mob-tag-ico {\n    display:inline-flex!important;\n    filter:drop-shadow(0 0 5px rgba(255,26,46,.8))!important;\n  }\n  .tsj-mob-tag-ico.b {\n    filter:drop-shadow(0 0 5px rgba(0,212,255,.8))!important;\n  }\n  .tsj-mob-overlay .tsj-mob-logo-txt,\n  .tsj-mob-overlay .tsj-mob-nav,\n  .tsj-mob-overlay .tsj-mob-socials,\n  .tsj-mob-overlay .tsj-mob-tag,\n  .tsj-mob-overlay .tsj-mob-close {\n    opacity:0!important;\n    transition:opacity .3s ease!important;\n  }\n  .tsj-mob-overlay.open .tsj-mob-logo-txt,\n  .tsj-mob-overlay.open .tsj-mob-nav,\n  .tsj-mob-overlay.open .tsj-mob-socials,\n  .tsj-mob-overlay.open .tsj-mob-tag,\n  .tsj-mob-overlay.open .tsj-mob-close {\n    opacity:1!important;\n  }\n}\n@media(max-width:768px) {\n  .tsj-hdr { padding:0 20px; }\n  .tsj-nav { display:none; }\n  .tsj-sec, .tsj-footer { padding:64px 22px; }\n  .tsj-hero-txt { padding:0 22px 80px; }\n  .tsj-vgrid { grid-template-columns:repeat(2,1fr); }\n  .tsj-ft-top { grid-template-columns:1fr; }\n  .tsj-kpi { grid-template-columns:1fr; }\n  .tsj-nextstop { right:16px; bottom:72px; min-width:188px; }\n  \/* ========================================================\n     FIX SEZIONE VIDEO (2 Colonne, Centratura e Bottone)\n     ======================================================== *\/\n  .tsj-vids {\n    padding: 60px 0 !important;\n  }\n  .tsj-vids .tsj-sec-inner {\n    padding: 0 20px !important;\n  }\n  \n  \/* Centra il titolo e i filtri *\/\n  .tsj-vids-hdr {\n    flex-direction: column !important;\n    align-items: center !important;\n    text-align: center !important;\n    gap: 24px !important;\n  }\n  .tsj-vids-hdr > div:first-child {\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n  }\n  .tsj-vids-hdr .tsj-sec-lbl {\n    justify-content: center !important;\n  }\n  .tsj-vids-hdr .tsj-h2 {\n    text-align: center !important;\n  }\n  .tsj-filter {\n    align-self: center !important;\n    justify-content: center !important;\n  }\n  \n  \/* Griglia a 2 colonne (Forza l'override del desktop) *\/\n  .tsj-vgrid {\n    grid-template-columns: repeat(2, 1fr) !important;\n    gap: 12px !important;\n    margin-top: 36px !important;\n  }\n\n  \/* Fix Pulsante \"Load More\" su una sola riga *\/\n  .tsj-load-btn {\n    white-space: nowrap !important; \/* Vieta al testo di andare a capo *\/\n    padding: 14px 20px !important;  \/* Riduco il padding laterale per farlo entrare *\/\n    font-size: 12px !important;\n  }\n}\n\/* ========================================================\n   FIX SEZIONE VIDEO MOBILE (2 Colonne e testi)\n   ======================================================== *\/\n@media(max-width:1024px) {\n\n   \/* SAFEWORLD testo centrato *\/\n  .tsj-sw-grid > div:first-child .tsj-sec-lbl {\n    justify-content:center!important;\n  }\n  .tsj-sw-grid > div:first-child .tsj-h2,\n  .tsj-sw-grid > div:first-child .tsj-body {\n    text-align:center!important;\n  }\n  \/* JOIN THE MOVEMENT mobile *\/\n  .tsj-join-inner {\n    padding:48px 20px!important;\n  }\n  .tsj-social-row {\n    flex-direction:column!important;\n    align-items:center!important;\n    gap:12px!important;\n  }\n  .tsj-social-btn {\n    width:100%!important;\n    max-width:320px!important;\n    justify-content:center!important;\n  }\n  .tsj-kpi {\n    grid-template-columns:repeat(3,1fr)!important;\n    width:100%!important;\n    border-radius:12px!important;\n  }\n  .tsj-kpi-cell {\n    padding:24px 10px!important;\n  }\n  .tsj-kpi-n {\n    font-size:28px!important;\n  }\n  .tsj-kpi-l {\n    font-size:7px!important;\n    letter-spacing:1.5px!important;\n  }\n  .tsj-vids { padding: 60px 0 !important; }\n  .tsj-vids .tsj-sec-inner { padding: 0 10px !important; }\n  .tsj-vids-hdr { flex-direction: column !important; align-items: center !important; text-align: center !important; gap: 24px !important; }\n  .tsj-vids-hdr > div:first-child { display: flex; flex-direction: column; align-items: center; }\n  .tsj-vids-hdr .tsj-sec-lbl { justify-content: center !important; }\n  .tsj-vids-hdr .tsj-h2 { text-align: center !important; }\n  .tsj-filter { align-self: center !important; justify-content: center !important; }\n  .tsj-vgrid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; margin-top: 36px !important; }\n  .tsj-fbtn, .tsj-fbtn-more { padding: 0 12px !important;\n    height: 28px !important;\n    display: inline-flex; \/* TOLTO !IMPORTANT PER FAR FUNZIONARE IL JS *\/\n    align-items: center !important;\n    justify-content: center !important;\n    font-size: 9px !important;\n    letter-spacing: 1px !important;\n    margin: 4px; \/* TOLTO !IMPORTANT *\/\n    line-height: 1 !important; }\n  .tsj-load-btn { white-space: nowrap !important; padding: 14px 20px !important; font-size: 12px !important; }\n}\n\n\/* Stile globale bottone See More filtri (Sia Desktop che Mobile) *\/\n.tsj-fbtn-more {\n  padding:9px 22px!important; border-radius:8px!important;\n  border:1px dashed rgba(0,212,255,.4)!important; background:transparent!important;\n  color:rgba(0,212,255,.8)!important; font-family:'Orbitron',monospace!important;\n  font-size:10px!important; font-weight:700!important; letter-spacing:2px!important;\n  text-transform:uppercase!important; cursor:pointer!important; transition:all .28s!important;\n}\n.tsj-fbtn-more:hover { background:rgba(0,212,255,.05)!important; box-shadow:0 0 10px rgba(0,212,255,.15)!important; }\n\/* Footer menu links \u2014 cyber style globale *\/\n.tsj-ft-col a {\n   display:block!important;\n  color:rgba(255,255,255,.6)!important;\n  -webkit-text-fill-color:rgba(255,255,255,.6)!important;\n  font-family:'Orbitron',monospace!important;\n  font-size:11px!important;\n  letter-spacing:1.5px!important;\n  font-weight:600!important;\n  margin-bottom:13px!important;\n  text-decoration:none!important;\n  cursor:pointer!important;\n  pointer-events:auto!important;\n  position:relative!important;\n  z-index:10!important;\n  transition:color .2s, text-shadow .2s!important;\n}\n.tsj-ft-col a:hover {\n  color:#00d4ff!important;\n  -webkit-text-fill-color:#00d4ff!important;\n  text-shadow:0 0 8px rgba(0,212,255,.6)!important;\n}\n\/* Mark Welnetz cyber *\/\n.tsj-ft-contact-name {\n  font-family:'Orbitron',monospace!important;\n  font-size:13px!important;\n  font-weight:800!important;\n  letter-spacing:2px!important;\n  color:#00d4ff!important;\n  -webkit-text-fill-color:#00d4ff!important;\n  text-shadow:0 0 10px rgba(0,212,255,.5)!important;\n  text-transform:uppercase!important;\n  cursor:default!important;\n  margin-bottom:4px!important;\n}\n\n\/* ========================================================\n   FIX DEFINITIVO SPAZIATURE DESKTOP E FOOTER (> 1024px)\n   ======================================================== *\/\n@media(min-width: 1025px) {\n  \/* 1. Abbassiamo il padding a 60px per unire il layout ed eliminare i \"buchi neri\" *\/\n  .tsj-sec, \n  .tsj-tour, \n  .tsj-mission, \n  .tsj-vids, \n  .tsj-sw {\n    padding: 60px 72px !important; \/* 60px sopra\/sotto, 72px ai lati *\/\n    margin: 0 !important;\n  }\n\n  \/* 2. FIX JOIN NOW: La linea neon si attacca ai video, il testo respira simmetricamente *\/\n  .tsj-join {\n    padding: 0 !important;\n    margin: 0 !important;\n  }\n  .tsj-join-inner {\n    padding: 60px 100px !important; \/* Stesso ritmo verticale delle altre sezioni *\/\n    margin: 0 !important;\n  }\n\n  \/* 3. FIX FOOTER DESKTOP: Compattiamo i blocchi che fluttuavano troppo *\/\n  .tsj-footer {\n    padding: 60px 10vw 0 !important; \n  }\n  \n  \/* Avvicina le colonne \"Navigate\" e \"Follow\" alla riga dei social *\/\n  .tsj-ft-top {\n    padding-bottom: 30px !important; \n    margin-bottom: 0 !important;\n  }\n  \n  \/* Compatta la striscia centrale \"FOLLOW US ON SOCIAL\" *\/\n  .tsj-ft-socials-center {\n    padding: 30px 0 30px !important; \n  }\n  \n  \/* Avvicina i testi \"PEACE LOVE CREATIVITY\" alla linea neon separatrice *\/\n  .tsj-ft-vals {\n    padding-top: 24px !important; \n  }\n  \n  \/* Stringe i credits finali in fondo alla pagina *\/\n  .tsj-ft-credits {\n    padding: 16px 0 24px !important; \n  }\n  .tsj-mission-grid {\n    padding-right: 5px !important;\n  }\n}\n@media(max-width:1024px) {\n  \/* 1. Forza esattamente lo stesso spazio (60px) sopra e sotto per TUTTE le sezioni *\/\n  .tsj-sec, \n  .tsj-tour, \n  .tsj-mission, \n  .tsj-vids, \n  .tsj-join, \n  .tsj-sw {\n    padding: 60px 0 !important;\n    margin: 0 !important;\n  }\n  .tsj-sw {\n    padding-top: 60px !important;\n    padding-bottom: 0 !important; \/* Rimuove lo spazio sotto SafeWorld *\/\n    margin: 0 !important;\n  }\n  \n  .tsj-footer {\n    padding: 0 20px 24px !important; \/* Rimuove lo spazio sopra il Footer (era 60px) *\/\n    border-top: none !important; \/* Opzionale: rimuove la riga sottile se crea disturbo *\/\n  }\n  \n  \/* Sistema il box interno di Join The Movement per non creare doppi spazi *\/\n  \/* FIX: Attacca la sezione Join ai Video per usare la linea come divisore centrato *\/\n  .tsj-join {\n    padding-top: 0 !important; \/* Uccide il buco nero sopra la linea neon *\/\n  }\n  \n  \/* Sistema il box interno: crea esattamente 60px di spazio SOTTO la linea, \n     per bilanciare i 60px che ci sono SOPRA (dalla sezione video) *\/\n  .tsj-join-inner {\n    padding-top: 60px !important;\n    padding-bottom: 60px !important;\n    padding-left: 20px !important;\n    padding-right: 20px !important;\n    margin: 0 !important;\n  }\n\n  \/* 2. FIX FOOTER: Elimina i buchi vuoti enormi *\/\n  .tsj-footer {\n    padding: 60px 20px 24px !important; \/* Stesso respiro in cima come le sezioni *\/\n  }\n  \n  \/* Riduco il buco vuoto sotto i menu (Home, Mission... e TikTok, Instagram...) *\/\n  .tsj-ft-top {\n    padding-bottom: 24px !important; \n    gap: 40px 0 !important;\n  }\n  \n  \/* Avvicina la sezione \"FOLLOW US ON SOCIAL\" ai menu sopra *\/\n  .tsj-ft-socials-center {\n    padding: 24px 0 36px !important;\n    border-top: 1px solid rgba(255,255,255,0.06) !important;\n    gap: 16px !important; \n  }\n  \n  \/* Avvicina i testi finali (PEACE LOVE...) alla linea neon centrale *\/\n  .tsj-ft-vals {\n    padding: 24px 10px 0 !important;\n  }\n  \n  \/* Stringe e compatta i credits in fondo (Copyright e Agenzia) *\/\n  .tsj-ft-credits {\n    padding: 16px 0 24px !important;\n    gap: 10px !important;\n  }\n}\n\/* ========================================================\n   FIX SPAZIATURA DESKTOP \"JOIN THE MOVEMENT\"\n   ======================================================== *\/\n.tsj-join {\n  padding-top: 0 !important;    \/* Rimuove il buco nero sopra la linea neon su desktop *\/\n  padding-bottom: 0 !important; \/* Rimuove il buco nero sotto la sezione *\/\n}\n.tsj-join-inner {\n  padding-top: 100px !important;    \/* Ricrea lo spazio corretto SOTTO la linea *\/\n  padding-bottom: 100px !important; \/* Ricrea lo spazio prima del footer *\/\n}\n\/* ========================================================\n   FIX: CENTRATURA LINEA NEON E ATTACCO FOOTER (MOBILE)\n   ======================================================== *\/\n@media(max-width: 1024px) {\n  \n  \/* 2. Uccide i buchi neri e attacca la palla di SafeWorld direttamente al Footer *\/\n  .tsj-sw {\n    padding-bottom: 0 !important; \n  }\n  .tsj-footer {\n    padding-top: 35px !important; \n    border-top: none !important; \/* Togliamo la vecchia riga del footer per unire tutto fluidamente *\/\n  }\n}\n\/* ========================================================\n   FIX: COMPATTAZIONE EQUA \"JOIN THE MOVEMENT\" (MOBILE)\n   ======================================================== *\/\n@media (max-width: 1024px) {\n  \/* 1. Riduciamo il buco nero SOPRA la linea neon (fine sezione video) *\/\n  .tsj-vids {\n    padding-bottom: 50px !important; \n  }\n  \n  \/* 2. Azzeriamo i doppi bordi invisibili del contenitore Join *\/\n  .tsj-join {\n    padding-top: 0 !important;\n    padding-bottom: 0 !important;\n  }\n  \n  \/* 3. Diamo lo spazio interno EQUO e perfetto: 45px sopra e 45px sotto *\/\n  .tsj-join-inner {\n    padding-top: 40px !important;    \/* Dalla linea neon gi\u00f9 al testo *\/\n    padding-bottom: 50px !important; \/* Dalle stats gi\u00f9 alla fine del blocco *\/\n  }\n  \n  \/* 4. Riduciamo il buco nero SOTTO il contenitore (inizio SafeWorld) *\/\n  .tsj-sw {\n    padding-top: 40px !important; \n  }\n}\n@media(max-width:375px) {\n  .tsj-feat-lbl {\n    white-space:normal!important;\n    font-size:6px!important;\n    line-height:1.2!important;\n  }\n  .tsj-feats {\n    gap:3px!important;\n  }\n}\n.tsj-vph-overlay {\n  position:absolute; inset:0; z-index:1;\n  background:linear-gradient(180deg,\n    rgba(5,5,16,.85) 0%,\n    rgba(5,5,16,.45) 15%,\n    rgba(5,5,16,.15) 80%,\n    rgba(5,5,16,.75) 100%);\n}\n.tsj-vph .tsj-vph-play { position:relative; z-index:2; }\n\n@media(max-width:768px) {\n  .tsj-modal-wrap {\n    align-items:flex-start!important;\n    overflow-y:auto!important;\n    padding:16px 0 env(safe-area-inset-bottom,24px)!important;\n  }\n  .tsj-modal-body {\n    flex-direction:column!important;\n    align-items:center!important;\n  }\n  .tsj-modal-vid-wrap {\n    height:min(80vh,620px)!important;\n    width:calc(min(80vh,620px) * 9 \/ 16)!important;\n    flex-shrink:0!important;\n  }\n  .tsj-modal-desc-panel {\n    width:100%!important;\n    min-width:0!important;\n    margin-bottom:env(safe-area-inset-bottom,32px)!important;\n    padding-bottom:32px!important;\n    margin-bottom:20px!important;\n    \n  }\n  .tsj-modal-box {\n    padding-top:8px!important;\n    padding-bottom:env(safe-area-inset-bottom,16px)!important;\n  }\n}\n.tsj-modal-vid-wrap::before {\n  content:'';\n  position:absolute;\n  inset:0;\n  border:6px solid #ffffff;\n  border-radius:12px;\n  z-index:10;\n  pointer-events:none;\n}\n:lang(th) .tsj-vcard-live,\n:lang(th) .tsj-vcard-soon {\n  font-size:7px!important;\n  letter-spacing:0.5px!important;\n  padding:4px 8px!important;\n}\n:lang(th) .tsj-vcountry {\n  font-size:8px!important;\n}\n:lang(th) .tsj-vtitle {\n  font-size:9px!important;\n}\n\n<\/style>\n\n<!-- ============================================================\n     HTML\n     ============================================================ -->\n<div id=\"tsj-root\">\n<div id=\"tsj\">\n\n  <!-- particle canvas -->\n  <canvas id=\"tsj-cv\"><\/canvas>\n\n  <!-- \u2500\u2500 HEADER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <header class=\"tsj-hdr\">\n  <!-- Hamburger SX -->\n  <button class=\"tsj-ham\" id=\"tsj-ham\" aria-label=\"Menu\">\n    <span><\/span><span><\/span><span><\/span>\n  <\/button>\n\n  <!-- Logo CENTRO \u2014 solo faccina -->\n  <a href=\"\/\" class=\"tsj-logo\" style=\"text-decoration:none;\">\n    <div class=\"tsj-logo-ring\">\n      <svg viewBox=\"0 0 44 44\" fill=\"none\">\n        <line x1=\"8\"  y1=\"12\" x2=\"14\" y2=\"18\" stroke=\"#ff1a2e\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n        <line x1=\"14\" y1=\"12\" x2=\"8\"  y2=\"18\" stroke=\"#ff1a2e\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n        <line x1=\"30\" y1=\"12\" x2=\"36\" y2=\"18\" stroke=\"#00d4ff\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n        <line x1=\"36\" y1=\"12\" x2=\"30\" y2=\"18\" stroke=\"#00d4ff\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n        <path d=\"M9 28 Q22 37 35 28\" stroke=\"white\" stroke-width=\"1.8\" fill=\"none\" stroke-linecap=\"round\"\/>\n        <line x1=\"13\" y1=\"29.5\" x2=\"13\" y2=\"32.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n        <line x1=\"19\" y1=\"31.5\" x2=\"19\" y2=\"34.5\" stroke=\"white\"   stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n        <line x1=\"25\" y1=\"32\"   x2=\"25\" y2=\"35\"   stroke=\"white\"   stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n        <line x1=\"31\" y1=\"29.5\" x2=\"31\" y2=\"32.5\" stroke=\"#00d4ff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n      <\/svg>\n    <\/div>\n   <div style=\"display:flex;flex-direction:column;gap:2px;\">\n    <div class=\"tsj-logo-name\">THESAFEJOKER<\/div>\n    <div class=\"tsj-logo-sub\">Peace & Love \u2022 World Tour<\/div>\n<\/div>\n <\/a>\n\n  <!-- Nav desktop \u2014 nascosta su mobile -->\n  <nav class=\"tsj-nav\">\n    <a href=\"#home\" class=\"on\">Home<\/a>\n    <a href=\"#mission\">Mission<\/a>\n    <a href=\"#tour\">World Tour<\/a>\n    <a href=\"#story\">Story<\/a>\n    <a href=\"#community\">Community<\/a>\n<a href=\"#\" id=\"tsj-lang-switch\" class=\"tsj-lang-btn\">\ud83c\uddf9\ud83c\udded TH<\/a>\n  <\/nav>\n\n  <!-- Follow DX -->\n  <a href=\"https:\/\/www.tiktok.com\/@thesafejoker\" target=\"_blank\" class=\"tsj-follow\">\n    Follow\n    <span class=\"fheart\" aria-hidden=\"true\">\u2665<\/span>\n  <\/a>\n<\/header>\n\n<!-- MOBILE MENU OVERLAY -->\n<div class=\"tsj-mob-overlay\" id=\"tsj-mob-overlay\">\n  <div class=\"tsj-mob-bg\"><\/div>\n  <div class=\"tsj-mob-header\">\n    <div class=\"tsj-mob-logo-txt\">THESAFEJOKER<\/div>\n    <button class=\"tsj-mob-close\" id=\"tsj-mob-close\">\u2715<\/button>\n  <\/div>\n  <nav class=\"tsj-mob-nav\">\n<a href=\"#home\">Home<\/a>\n    <a href=\"#mission\">Mission<\/a>\n    <a href=\"#tour\">World Tour<\/a>\n    <a href=\"#story\">SafeWorld<\/a>\n    <a href=\"#videos\">Videos<\/a>\n    <a href=\"#community\">Community<\/a>\n    <a href=\"#\" id=\"tsj-lang-switch-mob\">\ud83c\uddf9\ud83c\udded Thai<\/a>\n  <\/nav>\n  <div class=\"tsj-mob-socials\">\n    <a href=\"https:\/\/www.tiktok.com\/@thesafejoker\" target=\"_blank\">TikTok<\/a>\n    <a href=\"https:\/\/www.instagram.com\/thesafejoker\" target=\"_blank\">Instagram<\/a>\n    <a href=\"https:\/\/www.youtube.com\/@thesafejoker\" target=\"_blank\">YouTube<\/a>\n    <a href=\"https:\/\/www.facebook.com\/profile.php?id=61569767572291\" target=\"_blank\">Facebook<\/a>\n  <\/div>\n  <div class=\"tsj-mob-tag\">\n  <span class=\"tsj-mob-tag-ico\">\n    <svg width=\"14\" height=\"14\" viewBox=\"0 0 18 18\" fill=\"none\">\n      <circle cx=\"9\" cy=\"9\" r=\"7.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n      <line x1=\"9\" y1=\"1.5\" x2=\"9\" y2=\"16.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n      <line x1=\"9\" y1=\"9\" x2=\"3\" y2=\"14\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n      <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"14\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n    <\/svg>\n  <\/span>\n  Peace\n  <span class=\"tsj-mob-tag-ico b\">\n    <svg width=\"14\" height=\"14\" viewBox=\"0 0 18 18\" fill=\"none\">\n      <path d=\"M9 15.5 C9 15.5 1.5 10.5 1.5 5.8 C1.5 3.5 3.3 2 5.3 2 C7 2 8.2 3 9 4.2 C9.8 3 11 2 12.7 2 C14.7 2 16.5 3.5 16.5 5.8 C16.5 10.5 9 15.5 9 15.5Z\" stroke=\"#00d4ff\" stroke-width=\"1.5\" fill=\"rgba(0,212,255,.15)\"\/>\n    <\/svg>\n  <\/span>\n  Love\n  <span class=\"tsj-mob-tag-ico b\">\n    <svg width=\"14\" height=\"14\" viewBox=\"0 0 18 18\" fill=\"none\">\n      <polygon points=\"9,1 11,6.5 17,6.5 12.5,10 14,15.5 9,12 4,15.5 5.5,10 1,6.5 7,6.5\" stroke=\"#00d4ff\" stroke-width=\"1.2\" fill=\"rgba(0,212,255,.12)\"\/>\n    <\/svg>\n  <\/span>\n  Creativity\n<\/div>\n<\/div>\n\n  <!-- \u2500\u2500 HERO \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section class=\"tsj-hero\" id=\"home\">\n    <div class=\"tsj-hero-atm\"><\/div>\n<video autoplay muted loop playsinline class=\"tsj-hero-vid-desktop\" style=\"position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2;\">\n  <source src=\"https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/04\/The-Safe-Joker-Hero-Video.mp4\" type=\"video\/mp4\">\n<\/video>\n<video autoplay muted loop playsinline class=\"tsj-hero-vid-mobile\" style=\"position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; display:none;\">\n  <source src=\"https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/04\/Video-Hero-TheSafeJoker-Mobile.mp4\" type=\"video\/mp4\">\n<\/video>\n<div style=\"position:absolute; inset:0; background: linear-gradient(to right, rgba(0,0,0,1) 0%, rgba(0,0,0,0.8) 35%, rgba(0,0,0,0.3) 100%); z-index:3;\"><\/div>\n    <!-- Character placeholder -->\n   \n    <div class=\"tsj-cgr\"><\/div>\n    <div class=\"tsj-cgb\"><\/div>\n\n    <!-- Portal rimosso \u2014 immagine con portale arriver\u00e0 dal cliente -->\n\n    <!-- Hero text -->\n    <div class=\"tsj-hero-txt\">\n      <div class=\"tsj-eyebrow\">Digital World Tour \u2014 Live Now<\/div>\n      <h1 class=\"tsj-h1\">THE<span class=\"r\">SAFE<\/span>JOKER<br>WORLD TOUR<\/h1>\n      <div class=\"tsj-h1sub\">Spreading Peace & Love<\/div>\n      <div class=\"tsj-countries\">across <span>195<\/span> countries<\/div>\n\n      <div class=\"tsj-pills\">\n        <div class=\"tsj-pill pr\"><svg width=\"13\" height=\"13\" viewBox=\"0 0 18 18\" fill=\"none\"><circle cx=\"9\" cy=\"9\" r=\"7.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/><line x1=\"9\" y1=\"1.5\" x2=\"9\" y2=\"16.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/><line x1=\"9\" y1=\"9\" x2=\"3\" y2=\"14\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"14\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/><\/svg> Peace<\/div>\n        <div class=\"tsj-pill pb\">\u2665 Love<\/div>\n        <div class=\"tsj-pill pw\">\u2726 Creativity<\/div>\n      <\/div>\n\n      <div class=\"tsj-ctas\">\n        <a href=\"https:\/\/www.tiktok.com\/@thesafejoker\" target=\"_blank\" class=\"tsj-btn tsj-btn-r\">\n          <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"currentColor\"><path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.77 0 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.34 6.34 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.77 1.52V6.78a4.85 4.85 0 01-1-.09z\"\/><\/svg>\n          Follow on TikTok\n        <\/a>\n        <a href=\"#community\" class=\"tsj-btn tsj-btn-b\">\u2665 Join the Movement<\/a>\n      <\/div>\n\n      <div class=\"tsj-tagline\">One movement. One world. One message.<\/div>\n\n      <!-- Divider: \u262e \u2665 con linee \u2014 identici all'originale -->\n      <div class=\"tsj-divider-icons\">\n        <div class=\"tsj-div-line\"><\/div>\n        <!-- Peace symbol SVG -->\n        <span class=\"tsj-div-ico r\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n            <circle cx=\"9\" cy=\"9\" r=\"7.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n            <line x1=\"9\" y1=\"1.5\" x2=\"9\" y2=\"16.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n            <line x1=\"9\" y1=\"9\" x2=\"3\" y2=\"14\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n            <line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"14\" stroke=\"#ff1a2e\" stroke-width=\"1.5\"\/>\n          <\/svg>\n        <\/span>\n        <!-- Heart SVG -->\n        <span class=\"tsj-div-ico b\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\n            <path d=\"M9 15.5 C9 15.5 1.5 10.5 1.5 5.8 C1.5 3.5 3.3 2 5.3 2 C7 2 8.2 3 9 4.2 C9.8 3 11 2 12.7 2 C14.7 2 16.5 3.5 16.5 5.8 C16.5 10.5 9 15.5 9 15.5Z\" stroke=\"#00d4ff\" stroke-width=\"1.5\" fill=\"rgba(0,212,255,.15)\"\/>\n          <\/svg>\n        <\/span>\n        <div class=\"tsj-div-line b\"><\/div>\n      <\/div>\n\n      <div class=\"tsj-feats\">\n        <!-- Globe -->\n        <div class=\"tsj-feat\">\n          <div class=\"tsj-feat-ico\">\n            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n              <circle cx=\"16\" cy=\"16\" r=\"13\" stroke=\"#00d4ff\" stroke-width=\"1.5\"\/>\n              <ellipse cx=\"16\" cy=\"16\" rx=\"5.5\" ry=\"13\" stroke=\"#00d4ff\" stroke-width=\"1.5\"\/>\n              <line x1=\"3\" y1=\"16\" x2=\"29\" y2=\"16\" stroke=\"#00d4ff\" stroke-width=\"1.5\"\/>\n              <line x1=\"5\" y1=\"10\" x2=\"27\" y2=\"10\" stroke=\"#00d4ff\" stroke-width=\"1\"\/>\n              <line x1=\"5\" y1=\"22\" x2=\"27\" y2=\"22\" stroke=\"#00d4ff\" stroke-width=\"1\"\/>\n            <\/svg>\n          <\/div>\n          <div class=\"tsj-feat-num\">195<\/div>\n          <div class=\"tsj-feat-lbl\">Countries<\/div>\n        <\/div>\n        <!-- Camera\/Photo -->\n        <div class=\"tsj-feat\">\n          <div class=\"tsj-feat-ico\">\n            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n              <rect x=\"3\" y=\"9\" width=\"26\" height=\"18\" rx=\"3\" stroke=\"#00d4ff\" stroke-width=\"1.5\"\/>\n              <circle cx=\"16\" cy=\"18\" r=\"5\" stroke=\"#00d4ff\" stroke-width=\"1.5\"\/>\n              <circle cx=\"16\" cy=\"18\" r=\"2\" fill=\"#00d4ff\" opacity=\".4\"\/>\n              <path d=\"M11 9 L13.5 5 H18.5 L21 9\" stroke=\"#00d4ff\" stroke-width=\"1.5\" fill=\"none\"\/>\n              <rect x=\"23\" y=\"13\" width=\"3\" height=\"2\" rx=\"0.5\" fill=\"#00d4ff\" opacity=\".5\"\/>\n            <\/svg>\n          <\/div>\n          <div class=\"tsj-feat-lbl\">Storytelling<\/div>\n        <\/div>\n        <!-- Heart -->\n        <div class=\"tsj-feat\">\n          <div class=\"tsj-feat-ico\">\n            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n              <path d=\"M16 27 C16 27 4 19 4 11.5 C4 8 6.7 5 10 5 C12.4 5 14.5 6.4 16 8.2 C17.5 6.4 19.6 5 22 5 C25.3 5 28 8 28 11.5 C28 19 16 27 16 27Z\" stroke=\"#ff1a2e\" stroke-width=\"1.5\" fill=\"rgba(255,26,46,.15)\"\/>\n            <\/svg>\n          <\/div>\n          <div class=\"tsj-feat-lbl\">Community<\/div>\n        <\/div>\n        <!-- Pin \/ Movement -->\n        <div class=\"tsj-feat\">\n          <div class=\"tsj-feat-ico\">\n            <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n              <path d=\"M16 3 C11.6 3 8 6.6 8 11 C8 17 16 29 16 29 C16 29 24 17 24 11 C24 6.6 20.4 3 16 3Z\" stroke=\"#00d4ff\" stroke-width=\"1.5\" fill=\"rgba(0,212,255,.1)\"\/>\n              <circle cx=\"16\" cy=\"11\" r=\"3.5\" stroke=\"#00d4ff\" stroke-width=\"1.5\"\/>\n            <\/svg>\n          <\/div>\n          <div class=\"tsj-feat-lbl\">Global Movement<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <!-- \u2605 Next Stop \u2014 per cambiare paese: modifica il nome e l'SVG della bandiera -->\n    <div class=\"tsj-nextstop\">\n      <div class=\"tsj-ns-lbl\">Next Stop<\/div>\n      <div class=\"tsj-ns-div\"><\/div>\n      <div class=\"tsj-ns-country\">\n        <!-- Bandiera Italia come SVG inline \u2014 sempre visibile in WordPress -->\n        <svg width=\"30\" height=\"20\" viewBox=\"0 0 30 20\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"flex-shrink:0;border-radius:2px;box-shadow:0 0 0 1px rgba(255,255,255,.15)\">\n          <rect width=\"10\" height=\"20\" fill=\"#009246\"\/>\n          <rect x=\"10\" width=\"10\" height=\"20\" fill=\"#ffffff\"\/>\n          <rect x=\"20\" width=\"10\" height=\"20\" fill=\"#ce2b37\"\/>\n        <\/svg>\n        <span style=\"color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;font-size:19px!important;font-weight:800!important;letter-spacing:1px\">Italy<\/span>\n      <\/div>\n      <div class=\"tsj-ns-quote\">\n        \"We don't just travel.<br>We connect hearts.\" <span class=\"h\" style=\"color:#ff1a2e!important\">\u2665<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"tsj-scroll\">\n      <span>Scroll<\/span>\n      <div class=\"tsj-scroll-arr\">\u2193<\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500 TICKER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <div class=\"tsj-ticker-wrap\">\n    <div class=\"tsj-ticker-track\" id=\"tsj-ticker\"><\/div>\n  <\/div>\n\n  <!-- \u2500\u2500 WORLD TOUR \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section class=\"tsj-sec tsj-tour\" id=\"tour\">\n    <div class=\"tsj-sec-inner\">\n      <div class=\"tsj-tour-grid\">\n        <div>\n          <div class=\"tsj-sec-lbl\">The Mission<\/div>\n          <h2 class=\"tsj-h2\">One Digital<br><span class=\"r\">World<\/span> <span class=\"b\">Tour<\/span><\/h2>\n          <p class=\"tsj-body\">TheSafeJoker is on a digital journey across 195 countries \u2014 creating 975 images and 975 videos carrying a message of <strong style=\"color:#fff\">peace, love and creativity<\/strong> to every corner of the world. Not a project. A global movement.<\/p>\n          <div class=\"tsj-stats-grid\">\n            <div class=\"tsj-stat\"><div class=\"tsj-stat-n\">195<\/div><div class=\"tsj-stat-d\">Countries in the Tour<\/div><\/div>\n            <div class=\"tsj-stat\"><div class=\"tsj-stat-n\">975<\/div><div class=\"tsj-stat-d\">Videos Created<\/div><\/div>\n            <div class=\"tsj-stat\"><div class=\"tsj-stat-n\">975<\/div><div class=\"tsj-stat-d\">Unique Images<\/div><\/div>\n            <div class=\"tsj-stat\"><div class=\"tsj-stat-n\">\u221e<\/div><div class=\"tsj-stat-d\">Hearts Connected<\/div><\/div>\n          <\/div>\n          <div class=\"tsj-prog-wrap\">\n            <div class=\"tsj-prog-lbl\"><span>Tour Progress<\/span><span id=\"tsj-pct\">0%<\/span><\/div>\n            <div class=\"tsj-prog-bar\"><div class=\"tsj-prog-fill\" id=\"tsj-pfill\"><\/div><\/div>\n          <\/div>\n        <\/div>\n        <div class=\"tsj-map-vis\">\n          <canvas id=\"tsj-map-cv\"><\/canvas>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500 MISSION \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section class=\"tsj-sec tsj-mission\" id=\"mission\">\n    <div class=\"tsj-sec-inner\">\n      <div class=\"tsj-mission-grid\">\n        <div>\n          <div class=\"tsj-sec-lbl\">Who is TheSafeJoker<\/div>\n          <h2 class=\"tsj-h2\">Peace. Love.<br><span class=\"b\">Creativity<\/span>.<\/h2>\n          <p class=\"tsj-body\">TheSafeJoker is not just a character \u2014 it's a universe, a vision, an invitation to see the world through different eyes. X eyes, stitched mouth, but a heart open to the entire planet.<\/p>\n          <div class=\"tsj-vals\">\n            <div class=\"tsj-val\">\n              <div class=\"tsj-val-ico b\">\n                <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\">\n                  <circle cx=\"14\" cy=\"14\" r=\"11\" stroke=\"#00d4ff\" stroke-width=\"2\"\/>\n                  <line x1=\"14\" y1=\"3\" x2=\"14\" y2=\"25\" stroke=\"#00d4ff\" stroke-width=\"2\"\/>\n                  <line x1=\"14\" y1=\"14\" x2=\"6\" y2=\"21\" stroke=\"#00d4ff\" stroke-width=\"2\"\/>\n                  <line x1=\"14\" y1=\"14\" x2=\"22\" y2=\"21\" stroke=\"#00d4ff\" stroke-width=\"2\"\/>\n                <\/svg>\n              <\/div>\n              <div class=\"tsj-val-content\">\n                <div class=\"tsj-val-title b\">Peace<\/div>\n                <div class=\"tsj-val-body\">A universal message that crosses borders, languages and cultures. Peace is not asked \u2014 it spreads.<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"tsj-val\">\n              <div class=\"tsj-val-ico r\">\n                <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\">\n                  <path d=\"M14 24 C14 24 3 16.5 3 9.5 C3 6 5.5 3.5 8.5 3.5 C11 3.5 13 5 14 6.8 C15 5 17 3.5 19.5 3.5 C22.5 3.5 25 6 25 9.5 C25 16.5 14 24 14 24Z\" stroke=\"#ff1a2e\" stroke-width=\"2\" fill=\"rgba(255,26,46,.15)\"\/>\n                <\/svg>\n              <\/div>\n              <div class=\"tsj-val-content\">\n                <div class=\"tsj-val-title r\">Love<\/div>\n                <div class=\"tsj-val-body\">Every video, every image, every country visited carries the same heart. We connect people.<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"tsj-val\">\n              <div class=\"tsj-val-ico b\">\n                <svg width=\"28\" height=\"28\" viewBox=\"0 0 28 28\" fill=\"none\">\n                  <polygon points=\"14,3 17,11 25,11 19,16 21,24 14,19 7,24 9,16 3,11 11,11\" stroke=\"#00d4ff\" stroke-width=\"1.8\" fill=\"rgba(0,212,255,.12)\"\/>\n                <\/svg>\n              <\/div>\n              <div class=\"tsj-val-content\">\n                <div class=\"tsj-val-title b\">Creativity<\/div>\n                <div class=\"tsj-val-body\">Art as a global language. TheSafeJoker creates everything solo \u2014 every image, every video, every world.<\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"tsj-quote\">\n          <!-- Icona al posto dei 2 quadratini grigi -->\n          <div class=\"tsj-quote-icon\">\n            <svg width=\"36\" height=\"36\" viewBox=\"0 0 52 52\" fill=\"none\">\n              <circle cx=\"26\" cy=\"26\" r=\"22\" stroke=\"url(#qGrad2)\" stroke-width=\"2\"\/>\n              <line x1=\"26\" y1=\"4\" x2=\"26\" y2=\"48\" stroke=\"url(#qGrad2)\" stroke-width=\"2\"\/>\n              <line x1=\"26\" y1=\"26\" x2=\"12\" y2=\"41\" stroke=\"url(#qGrad2)\" stroke-width=\"2\"\/>\n              <line x1=\"26\" y1=\"26\" x2=\"40\" y2=\"41\" stroke=\"url(#qGrad2)\" stroke-width=\"2\"\/>\n              <defs>\n                <linearGradient id=\"qGrad2\" x1=\"0\" y1=\"0\" x2=\"52\" y2=\"52\">\n                  <stop offset=\"0%\" stop-color=\"#ff1a2e\"\/>\n                  <stop offset=\"100%\" stop-color=\"#00d4ff\"\/>\n                <\/linearGradient>\n              <\/defs>\n            <\/svg>\n          <\/div>\n\n          <p class=\"tsj-quote-txt\">It's not just about traveling.<br>It's about <span class=\"r\">connecting hearts<\/span>,<br>creating <span class=\"b\">invisible bridges<\/span><br>across 195 different worlds.<\/p>\n\n          <!-- Divider migliorato -->\n          <div class=\"tsj-quote-div\">\n            <div class=\"tsj-quote-div-dot\"><\/div>\n          <\/div>\n\n          <div class=\"tsj-quote-attr\">TheSafeJoker \u2014 World Tour 2026<\/div>\n\n          <!-- Bandiere orbitanti \u2014 HTML reale con emoji visibili -->\n          <div class=\"tsj-flags-orbit\" id=\"tsj-flags-orbit\">\n            <div class=\"tsj-orbit-center\">\n              <span class=\"tsj-orbit-dot\"><\/span>\n              <span class=\"tsj-orbit-label\">195 COUNTRIES<\/span>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500 VIDEOS \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section class=\"tsj-sec tsj-vids\" id=\"videos\">\n    <div class=\"tsj-sec-inner\">\n      <div class=\"tsj-vids-hdr\">\n        <div>\n          <div class=\"tsj-sec-lbl\">The Tour in Video<\/div>\n          <h2 class=\"tsj-h2\">The <span class=\"b\">Playlist<\/span> of the<br><span class=\"r\">World Tour<\/span><\/h2>\n        <\/div>\n        <div class=\"tsj-filter notranslate\" id=\"tsj-filter-container\" translate=\"no\">\n          <button class=\"tsj-fbtn\" data-filter=\"intro\"><span class=\"t-en\">Intro<\/span><span class=\"t-th\">\u0e1a\u0e17\u0e19\u0e33<\/span><\/button>\n          <button class=\"tsj-fbtn on\" data-filter=\"all\"><span class=\"t-en\">All<\/span><span class=\"t-th\">\u0e17\u0e31\u0e49\u0e07\u0e2b\u0e21\u0e14<\/span><\/button>\n          <button class=\"tsj-fbtn\" data-filter=\"europe\"><span class=\"t-en\">Europe<\/span><span class=\"t-th\">\u0e22\u0e38\u0e42\u0e23\u0e1b<\/span><\/button>\n          <button class=\"tsj-fbtn\" data-filter=\"asia\"><span class=\"t-en\">Asia<\/span><span class=\"t-th\">\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22<\/span><\/button>\n          <button class=\"tsj-fbtn\" data-filter=\"americas\"><span class=\"t-en\">Americas<\/span><span class=\"t-th\">\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32<\/span><\/button>\n          <button class=\"tsj-fbtn\" data-filter=\"africa\"><span class=\"t-en\">Africa<\/span><span class=\"t-th\">\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32<\/span><\/button>\n          <button class=\"tsj-fbtn\" data-filter=\"oceania\"><span class=\"t-en\">Oceania<\/span><span class=\"t-th\">\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e40\u0e19\u0e35\u0e22<\/span><\/button>\n          <button class=\"tsj-fbtn-more\" id=\"tsj-filter-more\">\n            <span class=\"t-en\">\n              <span class=\"m-more\">+ SEE MORE<\/span><span class=\"m-less\" style=\"display:none;\">- SEE LESS<\/span>\n            <\/span>\n            <span class=\"t-th\">\n              <span class=\"m-more\">+ \u0e14\u0e39\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21<\/span><span class=\"m-less\" style=\"display:none;\">- \u0e14\u0e39\u0e19\u0e49\u0e2d\u0e22\u0e25\u0e07<\/span>\n            <\/span>\n          <\/button>\n        <\/div>\n      <\/div>\n      <div class=\"tsj-vgrid\" id=\"tsj-vgrid\"><\/div>\n      <div class=\"tsj-loadmore notranslate\" translate=\"no\">\n        <button class=\"tsj-load-btn\" id=\"tsj-load-btn\">\n          <span class=\"tsj-btn-more\">\n            <span class=\"t-en\">\u2193 LOAD MORE VIDEOS<\/span><span class=\"t-th\">\u2193 \u0e42\u0e2b\u0e25\u0e14\u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21<\/span>\n          <\/span>\n          <span class=\"tsj-btn-less\" style=\"display:none;\">\n            <span class=\"t-en\">\u2191 SHOW LESS<\/span><span class=\"t-th\">\u2191 \u0e41\u0e2a\u0e14\u0e07\u0e19\u0e49\u0e2d\u0e22\u0e25\u0e07<\/span>\n          <\/span>\n        <\/button>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500 JOIN \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section class=\"tsj-sec tsj-join\" id=\"community\">\n    <div class=\"tsj-join-inner\">\n      <div class=\"tsj-join-pre\">\u25c6 Join Now \u25c6<\/div>\n      <h2 class=\"tsj-join-h\">Become Part of<br>the <span class=\"b\">Movement<\/span><\/h2>\n      <p class=\"tsj-join-sub\">More than 195 countries. More than 975 stories.<br>One message: <strong style=\"color:#fff\">Peace & Love.<\/strong><br>Follow us and become part of something global.<\/p>\n      <div class=\"tsj-social-row\">\n\n        <!-- TikTok \u2014 nota musicale + onde -->\n        <a href=\"https:\/\/www.tiktok.com\/@thesafejoker\" target=\"_blank\" class=\"tsj-social-btn ttk\">\n          <span class=\"tsj-sico\">\n            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\">\n              <path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.77 0 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.34 6.34 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.77 1.52V6.78a4.85 4.85 0 01-1-.09z\" fill=\"#ff1a2e\"\/>\n              <!-- onde cyber -->\n              <path d=\"M2 19 Q4 17 6 19 Q8 21 10 19\" stroke=\"#ff1a2e\" stroke-width=\".8\" fill=\"none\" opacity=\".5\"\/>\n            <\/svg>\n          <\/span>\n          TikTok\n        <\/a>\n\n        <!-- Instagram \u2014 obiettivo fotografico cyber -->\n        <a href=\"https:\/\/www.instagram.com\/thesafejoker\" target=\"_blank\" class=\"tsj-social-btn\">\n          <span class=\"tsj-sico\">\n            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\">\n              <rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5.5\" stroke=\"url(#igG)\" stroke-width=\"1.8\"\/>\n              <circle cx=\"12\" cy=\"12\" r=\"4.5\" stroke=\"url(#igG)\" stroke-width=\"1.8\"\/>\n              <circle cx=\"17.5\" cy=\"6.5\" r=\"1.2\" fill=\"url(#igG)\"\/>\n              <!-- croce cyber interna -->\n              <line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"15\" stroke=\"url(#igG)\" stroke-width=\".6\" opacity=\".4\"\/>\n              <line x1=\"9\" y1=\"12\" x2=\"15\" y2=\"12\" stroke=\"url(#igG)\" stroke-width=\".6\" opacity=\".4\"\/>\n              <defs>\n                <linearGradient id=\"igG\" x1=\"2\" y1=\"2\" x2=\"22\" y2=\"22\">\n                  <stop offset=\"0%\" stop-color=\"#00d4ff\"\/>\n                  <stop offset=\"100%\" stop-color=\"#ff1a2e\"\/>\n                <\/linearGradient>\n              <\/defs>\n            <\/svg>\n          <\/span>\n          Instagram\n        <\/a>\n\n        <!-- Facebook \u2014 f stilizzata cyber con circuito -->\n        <a href=\"https:\/\/www.facebook.com\/profile.php?id=61569767572291\" target=\"_blank\" class=\"tsj-social-btn\">\n          <span class=\"tsj-sico\">\n            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\">\n              <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#00d4ff\" stroke-width=\"1.8\"\/>\n              <!-- F stilizzata -->\n              <path d=\"M13 7h-2a2 2 0 00-2 2v2H7v3h2v6h3v-6h2l.5-3H12V9a.5.5 0 01.5-.5H13V7z\" fill=\"#00d4ff\"\/>\n              <!-- punto cyber -->\n              <circle cx=\"7.5\" cy=\"7.5\" r=\"1\" fill=\"rgba(0,212,255,.4)\"\/>\n              <circle cx=\"16.5\" cy=\"16.5\" r=\"1\" fill=\"rgba(0,212,255,.4)\"\/>\n            <\/svg>\n          <\/span>\n          Facebook\n        <\/a>\n\n        <!-- YouTube \u2014 play in cerchio con raggio cyber -->\n        <a href=\"https:\/\/www.youtube.com\/@thesafejoker\" target=\"_blank\" class=\"tsj-social-btn\">\n          <span class=\"tsj-sico\">\n            <svg width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\">\n              <!-- schermo arrotondato -->\n              <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"4\" stroke=\"url(#ytG)\" stroke-width=\"1.8\"\/>\n              <!-- play triangle -->\n              <path d=\"M10 9l6 3-6 3V9z\" fill=\"url(#ytG)\"\/>\n              <!-- linee laterali cyber -->\n              <line x1=\"2\" y1=\"9\" x2=\"0\" y2=\"9\" stroke=\"url(#ytG)\" stroke-width=\"1.2\" opacity=\".4\"\/>\n              <line x1=\"22\" y1=\"15\" x2=\"24\" y2=\"15\" stroke=\"url(#ytG)\" stroke-width=\"1.2\" opacity=\".4\"\/>\n              <defs>\n                <linearGradient id=\"ytG\" x1=\"2\" y1=\"5\" x2=\"22\" y2=\"19\">\n                  <stop offset=\"0%\" stop-color=\"#ff1a2e\"\/>\n                  <stop offset=\"100%\" stop-color=\"#00d4ff\"\/>\n                <\/linearGradient>\n              <\/defs>\n            <\/svg>\n          <\/span>\n          YouTube\n        <\/a>\n\n      <\/div>\n      <div class=\"tsj-kpi\">\n        <div class=\"tsj-kpi-cell\"><div class=\"tsj-kpi-n\">195<\/div><div class=\"tsj-kpi-l\">Countries<\/div><\/div>\n        <div class=\"tsj-kpi-cell\"><div class=\"tsj-kpi-n\">975<\/div><div class=\"tsj-kpi-l\">Videos<\/div><\/div>\n        <div class=\"tsj-kpi-cell\"><div class=\"tsj-kpi-n\">1<\/div><div class=\"tsj-kpi-l\">Movement<\/div><\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500 SAFEWORLD \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <section class=\"tsj-sec tsj-sw\" id=\"story\">\n    <div class=\"tsj-sec-inner\">\n      <div class=\"tsj-sw-grid\">\n        <div>\n          <div class=\"tsj-sec-lbl\">The World of TheSafeJoker<\/div>\n          <h2 class=\"tsj-h2\">Enter the<br><span class=\"r\">SafeWorld<\/span><\/h2>\n          <p class=\"tsj-body\">TheSafeJoker is not just a social profile. It's a complete universe \u2014 with its character, story and values. Every video is a chapter. Every country is a world.<\/p>\n          <div class=\"tsj-sw-vals\">\n            <div class=\"tsj-val\">\n              <div class=\"tsj-val-ico b\">\ud83c\udfad<\/div>\n              <div>\n                <div class=\"tsj-val-title b\">The Character<\/div>\n                <div class=\"tsj-val-body\">Mascot, hero, icon. TheSafeJoker carries a message to every corner of the planet \u2014 silent but powerful.<\/div>\n              <\/div>\n            <\/div>\n            <div class=\"tsj-val\">\n              <div class=\"tsj-val-ico r\">\ud83c\udf10<\/div>\n              <div>\n                <div class=\"tsj-val-title r\">The Journey<\/div>\n                <div class=\"tsj-val-body\">195 digital destinations. 195 stories. A one-of-a-kind world tour \u2014 created entirely from scratch.<\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"tsj-sw-card\">\n          <div class=\"tsj-sw-title\">SafeWorld Universe<\/div>\n          <p class=\"tsj-sw-body\">A portal to a world where peace and love are not just words \u2014 but a way of living, creating and connecting. Are you ready to enter??<\/p>\n          <a href=\"#community\" class=\"tsj-sw-btn\">\n            \u2665 Enter the SafeWorld\n          <\/a>\n          <!-- Particelle che formano il simbolo della pace -->\n          <canvas id=\"tsj-peace-cv\"><\/canvas>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- \u2500\u2500 FOOTER \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 -->\n  <footer class=\"tsj-footer\">\n\n    <!-- Top: brand | divider | navigate | divider | follow -->\n    <div class=\"tsj-ft-top\">\n      <div class=\"tsj-ft-brand\">\n        <div class=\"name\">THESAFEJOKER<\/div>\n        <div class=\"sub\">Peace \u2022 Love<br>Creativity \u2022 Connection<\/div>\n        <div class=\"tsj-ft-contact notranslate\" translate=\"no\">\n          <div class=\"tsj-ft-contact-name\">Mark Welnetz<\/div>\n          <a href=\"mailto:mark.welnetz@thesafejoker.com\">\n            <span class=\"t-en\">Email<\/span><span class=\"t-th\">\u0e2d\u0e35\u0e40\u0e21\u0e25<\/span> \u2022 mark.welnetz@thesafejoker.com\n          <\/a>\n          <a href=\"tel:+6699 8620233\">\n            <span class=\"t-en\">Phone<\/span><span class=\"t-th\">\u0e42\u0e17\u0e23\u0e28\u0e31\u0e1e\u0e17\u0e4c<\/span> \u2022 +66 99 862 0233\n          <\/a>\n        <\/div>\n      <\/div>\n      <div class=\"tsj-ft-col\">\n        <h4>Navigate<\/h4>\n        <div class=\"tsj-ft-sep\"><\/div>\n        <a href=\"#home\">Home<\/a>\n        <a href=\"#mission\">Mission<\/a>\n        <a href=\"#tour\">World Tour<\/a>\n        <a href=\"#story\">SafeWorld<\/a>\n        <a href=\"#community\">Community<\/a>\n      <\/div>\n      <div class=\"tsj-ft-col\">\n        <h4 class=\"r\">Follow<\/h4>\n        <div class=\"tsj-ft-sep r\"><\/div>\n        <a href=\"https:\/\/www.tiktok.com\/@thesafejoker\" target=\"_blank\">TikTok<\/a>\n        <a href=\"https:\/\/www.instagram.com\/thesafejoker\" target=\"_blank\">Instagram<\/a>\n        <a href=\"https:\/\/www.facebook.com\/profile.php?id=61569767572291\" target=\"_blank\">Facebook<\/a>\n        <a href=\"https:\/\/www.youtube.com\/@thesafejoker\" target=\"_blank\">YouTube<\/a>\n      <\/div>\n    <\/div>\n\n    <!-- Socials centrati sotto -->\n    <div class=\"tsj-ft-socials-center\">\n      <h4>Follow us on Social<\/h4>\n      <div class=\"tsj-ft-socials\">\n        <a href=\"https:\/\/www.tiktok.com\/@thesafejoker\" target=\"_blank\" class=\"tsj-ft-s ttk\" title=\"TikTok\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"#ff1a2e\">\n            <path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.77 0 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.34 6.34 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.77 1.52V6.78a4.85 4.85 0 01-1-.09z\"\/>\n          <\/svg>\n        <\/a>\n        <a href=\"https:\/\/www.instagram.com\/thesafejoker\" target=\"_blank\" class=\"tsj-ft-s\" title=\"Instagram\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\">\n            <rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5.5\" stroke=\"#00d4ff\" stroke-width=\"1.8\"\/>\n            <circle cx=\"12\" cy=\"12\" r=\"4.5\" stroke=\"#00d4ff\" stroke-width=\"1.6\"\/>\n            <circle cx=\"17.5\" cy=\"6.5\" r=\"1.3\" fill=\"#00d4ff\"\/>\n          <\/svg>\n        <\/a>\n        <a href=\"https:\/\/www.youtube.com\/@thesafejoker\" target=\"_blank\" class=\"tsj-ft-s\" title=\"YouTube\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\">\n            <rect x=\"2\" y=\"5\" width=\"20\" height=\"14\" rx=\"4\" stroke=\"#00d4ff\" stroke-width=\"1.8\"\/>\n            <path d=\"M10 9.5l5.5 2.5-5.5 2.5V9.5z\" fill=\"#00d4ff\"\/>\n          <\/svg>\n        <\/a>\n        <a href=\"https:\/\/www.facebook.com\/profile.php?id=61569767572291\" target=\"_blank\" class=\"tsj-ft-s\" title=\"Facebook\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\">\n            <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"#00d4ff\" stroke-width=\"1.8\"\/>\n            <path d=\"M15 8h-1.5A1.5 1.5 0 0012 9.5V11h3l-.5 3H12v6h-3v-6H7v-3h2V9.5A4.5 4.5 0 0113.5 5H15v3z\" fill=\"#00d4ff\"\/>\n          <\/svg>\n        <\/a>\n      <\/div>\n    <\/div>\n\n    <!-- Bottom -->\n    <div class=\"tsj-ft-bot\">\n      <div class=\"tsj-ft-divider-full\"><\/div>\n      <div class=\"tsj-ft-vals\">\n        THESAFEJOKER \u2014 <span class=\"r\">PEACE<\/span> \u2022 <span class=\"b\">LOVE<\/span> \u2022 CREATIVITY \u2022 CONNECTION\n      <\/div>\n      <div class=\"tsj-ft-credits\" onmousemove=\"(function(e,d){var a=d.querySelector('.tsj-ft-agency');if(a){var r=a.getBoundingClientRect();d.style.cursor=(e.clientX>=r.left&&e.clientX<=r.right&&e.clientY>=r.top&&e.clientY<=r.bottom)?'pointer':'default';}})(event,this)\" onmouseleave=\"this.style.cursor='default'\">\n        <span class=\"tsj-ft-copy-txt\">\u00a9 2025\u20132026 TheSafeJoker. All rights reserved.<\/span>\n        <span class=\"sep\">|<\/span>\n        <span class=\"tsj-ft-copy-txt\">Website created by<\/span>\n        <a href=\"https:\/\/sabrielagency.com\" target=\"_blank\" class=\"tsj-ft-agency\">Sabriel Agency<\/a>\n      <\/div>\n    <\/div>\n\n  <\/footer>\n\n<\/div>\n<\/div>\n\n<!-- ============================================================\n     JAVASCRIPT\n     ============================================================ -->\n<script>\n(function(){\nconst isTH=location.pathname.startsWith('\/th');\n\/* \u2500\u2500 HERO CANVAS \u2500\u2500 *\/\nconst cv=document.getElementById('tsj-cv'), ctx=cv.getContext('2d');\nlet W,H;\nfunction rz(){ const p=cv.parentElement; W=cv.width=p?p.offsetWidth:innerWidth; H=cv.height=p?p.offsetHeight:innerHeight; }\nwindow.addEventListener('resize',rz); rz();\n\nconst cities=[[48.8,2.3],[51.5,-0.1],[40.7,-74],[35.7,139.7],[-23.5,-46.6],[55.7,37.6],[1.3,103.8],[19.1,72.9],[-33.9,151.2],[25.2,55.3],[31.2,121.5],[37.6,-122.4],[30,31.2],[-1.3,36.8],[52.5,13.4],[41.9,12.5],[40.4,-3.7],[48.2,16.4],[50.4,30.5],[45.5,-73.6],[-34.6,-58.4],[4.2,-74.1],[14.7,-17.4],[33.9,-6.9],[23.7,90.4],[13.5,2.1],[6.4,2.4],[-26.2,28]];\nfunction ll(lat,lng){ return [(lng+180)\/360*W,(90-lat)\/180*H]; }\n\nfunction np(){ return {x:Math.random()*W,y:Math.random()*H,r:Math.random()*1.3+.4,vx:(Math.random()-.5)*.28,vy:(Math.random()-.5)*.28,a:Math.random()*.65+.15,c:Math.random()>.5?'#00d4ff':'#ff1a2e'}; }\nconst pts=Array.from({length:140},np);\n\nfunction draw(){\n  ctx.clearRect(0,0,W,H);\n  pts.forEach(p=>{\n    p.x+=p.vx; p.y+=p.vy;\n    if(p.x<0||p.x>W||p.y<0||p.y>H) Object.assign(p,np());\n    ctx.beginPath(); ctx.arc(p.x,p.y,p.r,0,Math.PI*2);\n    ctx.globalAlpha=p.a; ctx.fillStyle=p.c; ctx.fill();\n  });\n  ctx.globalAlpha=1;\n  for(let i=0;i<pts.length;i++) for(let j=i+1;j<pts.length;j++){\n    const d=Math.hypot(pts[i].x-pts[j].x,pts[i].y-pts[j].y);\n    if(d<86){ ctx.beginPath(); ctx.moveTo(pts[i].x,pts[i].y); ctx.lineTo(pts[j].x,pts[j].y); ctx.strokeStyle=`rgba(0,212,255,${(1-d\/86)*.05})`; ctx.lineWidth=.5; ctx.stroke(); }\n  }\n  const t=Date.now()\/1000;\n  cities.forEach(([lat,lng],i)=>{\n    const [x,y]=ll(lat,lng); const p=Math.sin(t*2+i*.7)*.5+.5; const ir=i%3===0;\n    ctx.beginPath(); ctx.arc(x,y,5+p*4,0,Math.PI*2);\n    ctx.strokeStyle=ir?`rgba(255,26,46,${p*.2})`:`rgba(0,212,255,${p*.2})`; ctx.lineWidth=1; ctx.stroke();\n    ctx.beginPath(); ctx.arc(x,y,2.2,0,Math.PI*2);\n    ctx.fillStyle=ir?'#ff1a2e':'#00d4ff'; ctx.globalAlpha=.7+p*.3; ctx.fill(); ctx.globalAlpha=1;\n  });\n  for(let i=0;i<cities.length-1;i+=4){\n    const [x1,y1]=ll(cities[i][0],cities[i][1]),[x2,y2]=ll(cities[i+1][0],cities[i+1][1]);\n    ctx.beginPath(); ctx.moveTo(x1,y1); ctx.quadraticCurveTo((x1+x2)\/2,Math.min(y1,y2)-36,x2,y2);\n    ctx.strokeStyle='rgba(0,212,255,0.06)'; ctx.lineWidth=.7; ctx.stroke();\n  }\n  requestAnimationFrame(draw);\n}\ndraw();\n\n\/* \u2500\u2500 MINI MAP \u2014 cyber: un paese alla volta, fade elegante \u2500\u2500 *\/\nconst mc=document.getElementById('tsj-map-cv');\nif(mc){\n  const mx=mc.getContext('2d');\n  let MW = 300, MH = 300;\n\n  \/\/ FIX: Adatta il canvas agli schermi ad alta risoluzione (High-DPI) senza errori\n  function rmz(){\n    const dpr = window.devicePixelRatio || 1;\n    const parent = mc.parentElement;\n    \n    \/\/ Legge le dimensioni reali, se non ci riesce usa un default di sicurezza\n    MW = parent ? parent.offsetWidth : mc.offsetWidth;\n    MH = parent ? parent.offsetHeight : mc.offsetHeight;\n    if(MW === 0) MW = 300;\n    if(MH === 0) MH = 300;\n\n    mc.width = MW * dpr;\n    mc.height = MH * dpr;\n    mx.setTransform(dpr, 0, 0, dpr, 0, 0);\n  }\n  window.addEventListener('resize',rmz); \n  \/\/ Usa un piccolo ritardo per far caricare il CSS prima di calcolare\n  setTimeout(rmz, 50);\n\n  \/* Citt\u00e0 con bandiera e nome completo in italiano *\/\n  \/* 1. Rinominiamo il tuo vecchio array in cityDataRaw (dati grezzi) *\/\n  const cityDataRaw = [\n    [51.5,-0.1,'\ud83c\uddec\ud83c\udde7','LONDON'],   [48.8,2.3,'\ud83c\uddeb\ud83c\uddf7','PARIS'],\n    [52.5,13.4,'\ud83c\udde9\ud83c\uddea','BERLIN'],  [41.9,12.5,'\ud83c\uddee\ud83c\uddf9','ROME'],\n    [40.4,-3.7,'\ud83c\uddea\ud83c\uddf8','MADRID'],   [55.7,37.6,'\ud83c\uddf7\ud83c\uddfa','MOSCOW'],\n    [50.4,30.5,'\ud83c\uddfa\ud83c\udde6','KYIV'],     [48.2,16.4,'\ud83c\udde6\ud83c\uddf9','VIENNA'],\n    [40.7,-74,'\ud83c\uddfa\ud83c\uddf8','NEW YORK'],  [37.6,-122.4,'\ud83c\uddfa\ud83c\uddf8','SAN FRANCISCO'],\n    [45.5,-73.6,'\ud83c\udde8\ud83c\udde6','MONTR\u00c9AL'],[-23.5,-46.6,'\ud83c\udde7\ud83c\uddf7','S\u00c3O PAULO'],\n    [-34.6,-58.4,'\ud83c\udde6\ud83c\uddf7','BUENOS AIRES'],[4.2,-74.1,'\ud83c\udde8\ud83c\uddf4','BOGOT\u00c0'],\n    [30,31.2,'\ud83c\uddea\ud83c\uddec','CAIRO'],   [-1.3,36.8,'\ud83c\uddf0\ud83c\uddea','NAIROBI'],\n    [-26.2,28,'\ud83c\uddff\ud83c\udde6','JOHANNESBURG'],[14.7,-17.4,'\ud83c\uddf8\ud83c\uddf3','DAKAR'],\n    [25.2,55.3,'\ud83c\udde6\ud83c\uddea','DUBAI'],    [19.1,72.9,'\ud83c\uddee\ud83c\uddf3','MUMBAI'],\n    [23.7,90.4,'\ud83c\udde7\ud83c\udde9','DHAKA'],    [35.7,139.7,'\ud83c\uddef\ud83c\uddf5','TOKYO'],\n    [31.2,121.5,'\ud83c\udde8\ud83c\uddf3','SHANGHAI'],[1.3,103.8,'\ud83c\uddf8\ud83c\uddec','SINGAPORE'],\n    [-33.9,151.2,'\ud83c\udde6\ud83c\uddfa','SYDNEY']\n  ];\n\n  \/* 2. Creiamo il dizionario delle traduzioni per la mappa *\/\n  const thCityNames = {\n    'LONDON': '\u0e25\u0e2d\u0e19\u0e14\u0e2d\u0e19', 'PARIS': '\u0e1b\u0e32\u0e23\u0e35\u0e2a', 'BERLIN': '\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e19', 'ROME': '\u0e42\u0e23\u0e21',\n    'MADRID': '\u0e21\u0e32\u0e14\u0e23\u0e34\u0e14', 'MOSCOW': '\u0e21\u0e2d\u0e2a\u0e42\u0e01', 'KYIV': '\u0e40\u0e04\u0e35\u0e22\u0e1f', 'VIENNA': '\u0e40\u0e27\u0e35\u0e22\u0e19\u0e19\u0e32',\n    'NEW YORK': '\u0e19\u0e34\u0e27\u0e22\u0e2d\u0e23\u0e4c\u0e01', 'SAN FRANCISCO': '\u0e0b\u0e32\u0e19\u0e1f\u0e23\u0e32\u0e19\u0e0b\u0e34\u0e2a\u0e42\u0e01', 'MONTR\u00c9AL': '\u0e21\u0e2d\u0e19\u0e17\u0e23\u0e35\u0e2d\u0e2d\u0e25',\n    'S\u00c3O PAULO': '\u0e40\u0e0b\u0e32\u0e40\u0e1b\u0e32\u0e42\u0e25', 'BUENOS AIRES': '\u0e1a\u0e31\u0e27\u0e42\u0e19\u0e2a\u0e44\u0e2d\u0e40\u0e23\u0e2a', 'BOGOT\u00c0': '\u0e42\u0e1a\u0e42\u0e01\u0e15\u0e32',\n    'CAIRO': '\u0e44\u0e04\u0e42\u0e23', 'NAIROBI': '\u0e44\u0e19\u0e42\u0e23\u0e1a\u0e35', 'JOHANNESBURG': '\u0e42\u0e08\u0e2e\u0e31\u0e19\u0e40\u0e19\u0e2a\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01',\n    'DAKAR': '\u0e14\u0e32\u0e01\u0e32\u0e23\u0e4c', 'DUBAI': '\u0e14\u0e39\u0e44\u0e1a', 'MUMBAI': '\u0e21\u0e38\u0e21\u0e44\u0e1a', 'DHAKA': '\u0e18\u0e32\u0e01\u0e32',\n    'TOKYO': '\u0e42\u0e15\u0e40\u0e01\u0e35\u0e22\u0e27', 'SHANGHAI': '\u0e40\u0e0b\u0e35\u0e48\u0e22\u0e07\u0e44\u0e2e\u0e49', 'SINGAPORE': '\u0e2a\u0e34\u0e07\u0e04\u0e42\u0e1b\u0e23\u0e4c', 'SYDNEY': '\u0e0b\u0e34\u0e14\u0e19\u0e35\u0e22\u0e4c'\n  };\n\n  \/* 3. Javascript controlla la lingua e genera l'array finale in automatico! *\/\n  const cityData = cityDataRaw.map(function(city) {\n      let lat = city[0];\n      let lng = city[1];\n      let flag = city[2];\n      let name = city[3];\n      \n      \/\/ Se \u00e8 thai e la parola \u00e8 nel dizionario, stampala in thai, senn\u00f2 lasciala originale\n      if (isTH && thCityNames[name]) {\n          return [lat, lng, flag, thCityNames[name]];\n      } else {\n          return [lat, lng, flag, name];\n      }\n  });\n\n  \/* Stato etichetta attiva \u2014 UN paese alla volta *\/\n  let lbl={idx:-1, opa:0, phase:'out', timer:0}; \/\/ phase: 'in'|'hold'|'out'\n  let lastCity=-1;\n  const HOLD_TIME=2800;  \/\/ ms label visibile\n  const FADE_SPD=0.04;   \/\/ velocit\u00e0 fade (pi\u00f9 basso = pi\u00f9 lenta)\n\n  function mDraw(){\n    const t=Date.now();\n    const ts=t\/1000;\n    mx.clearRect(0,0,MW,MH);\n\n    \/* Sfondo gradiente radiale *\/\n    const bg=mx.createRadialGradient(MW*.55,MH*.4,0,MW*.55,MH*.4,MW*.7);\n    bg.addColorStop(0,'rgba(0,18,45,.55)');\n    bg.addColorStop(1,'rgba(0,4,14,.9)');\n    mx.fillStyle=bg; mx.fillRect(0,0,MW,MH);\n\n    \/* Griglia lat\/lng *\/\n    [[...Array(5)].map((_,i)=>-60+i*30),[...Array(13)].map((_,i)=>-180+i*30)].forEach((arr,isLng)=>{\n      arr.forEach(v=>{\n        const coord=isLng?(v+180)\/360*MW:(90-v)\/180*MH;\n        mx.beginPath();\n        if(isLng){mx.moveTo(coord,0);mx.lineTo(coord,MH);}\n        else{mx.moveTo(0,coord);mx.lineTo(MW,coord);}\n        mx.strokeStyle=`rgba(0,212,255,${isLng?.05:.07})`;mx.lineWidth=.8;mx.stroke();\n      });\n    });\n\n    \/* Posizione dot viaggiante \u2014 lento (0.022 = ~45s per giro) *\/\n    const SPD=0.022;\n    const pg=(ts*SPD)%1;\n    const N=cityData.length;\n    const ti=Math.floor(pg*N), ti2=(ti+1)%N;\n    const f=(pg*N)%1;\n    const [la1,ln1]=cityData[ti],[la2,ln2]=cityData[ti2];\n    const tx=((ln1+180)\/360*MW)*(1-f)+((ln2+180)\/360*MW)*f;\n    const ty=((90-la1)\/180*MH)*(1-f)+((90-la2)\/180*MH)*f;\n\n    \/* Rileva arrivo in nuova citt\u00e0 *\/\n    if(ti!==lastCity){\n      lastCity=ti;\n      \/* inizia fade-in del nuovo paese *\/\n      lbl={idx:ti, opa:0, phase:'in', timer:t};\n    }\n    \/* Gestisci ciclo fade: in \u2192 hold \u2192 out *\/\n    if(lbl.phase==='in'){\n      lbl.opa=Math.min(1,lbl.opa+FADE_SPD);\n      if(lbl.opa>=1){lbl.phase='hold';lbl.timer=t;}\n    } else if(lbl.phase==='hold'){\n      if(t-lbl.timer>HOLD_TIME) lbl.phase='out';\n    } else if(lbl.phase==='out'){\n      lbl.opa=Math.max(0,lbl.opa-FADE_SPD*.6);\n    }\n\n    \/* Arco tratteggiato tra citt\u00e0 corrente e prossima *\/\n    const [pX,pY]=[(ln1+180)\/360*MW,(90-la1)\/180*MH];\n    const [nX,nY]=[(ln2+180)\/360*MW,(90-la2)\/180*MH];\n    const cpX=(pX+nX)\/2, cpY=Math.min(pY,nY)-MH*.12;\n    mx.beginPath();mx.moveTo(pX,pY);\n    mx.quadraticCurveTo(cpX,cpY,nX,nY);\n    mx.strokeStyle=`rgba(0,212,255,${.12+f*.14})`;\n    mx.lineWidth=1.4;mx.setLineDash([5,8]);mx.stroke();mx.setLineDash([]);\n\n    \/* Connessioni sottili tra coppie lontane *\/\n    for(let i=0;i<cityData.length-3;i+=4){\n      const [a1,b1]=cityData[i],[a2,b2]=cityData[i+3];\n      mx.beginPath();\n      mx.moveTo((b1+180)\/360*MW,(90-a1)\/180*MH);\n      mx.lineTo((b2+180)\/360*MW,(90-a2)\/180*MH);\n      mx.strokeStyle='rgba(255,26,46,.04)';mx.lineWidth=.5;mx.stroke();\n    }\n\n    \/* Dot delle citt\u00e0 *\/\n    cityData.forEach(([la,ln],i)=>{\n      const cx=(ln+180)\/360*MW, cy=(90-la)\/180*MH;\n      const pulse=Math.sin(ts*2.5+i*1.1)*.5+.5;\n      const isActive=(i===lbl.idx && lbl.opa>0.1);\n      const col=i%3===0?'#ff1a2e':'#00d4ff';\n      const colA=i%3===0?'rgba(255,26,46,':'rgba(0,212,255,';\n\n      \/* Anello esterno pulsante *\/\n      mx.beginPath();mx.arc(cx,cy,isActive?12+pulse*6:6+pulse*4,0,Math.PI*2);\n      mx.strokeStyle=`${colA}${isActive?.28:.14})`;mx.lineWidth=1.2;mx.stroke();\n      \/* Dot centrale *\/\n      mx.beginPath();mx.arc(cx,cy,isActive?4:2.5,0,Math.PI*2);\n      mx.fillStyle=col;\n      mx.shadowColor=col;mx.shadowBlur=isActive?18+pulse*10:8+pulse*4;\n      mx.globalAlpha=.7+pulse*.3;mx.fill();\n      mx.globalAlpha=1;mx.shadowBlur=0;\n    });\n\n    \/* Dot viaggiante *\/\n    mx.beginPath();mx.arc(tx,ty,8,0,Math.PI*2);\n    mx.fillStyle='#fff';mx.shadowColor='#00d4ff';mx.shadowBlur=24;mx.fill();\n    mx.beginPath();mx.arc(tx,ty,14,0,Math.PI*2);\n    mx.strokeStyle='rgba(0,212,255,.4)';mx.lineWidth=1.8;mx.stroke();\n    mx.beginPath();mx.arc(tx,ty,22,0,Math.PI*2);\n    mx.strokeStyle='rgba(0,212,255,.14)';mx.lineWidth=1;mx.stroke();\n    mx.shadowBlur=0;\n\n    \/* Etichetta paese \u2014 UN paese alla volta con fade elegante *\/\n    if(lbl.idx>=0 && lbl.opa>0.02){\n      const [la,ln,flag,name]=cityData[lbl.idx];\n      const cx=(ln+180)\/360*MW, cy=(90-la)\/180*MH;\n\n      mx.globalAlpha=lbl.opa;\n\n      \/* Font flag *\/\n      mx.font='18px sans-serif';\n      const flagW=mx.measureText(flag).width;\n      \/* Font name *\/\n      mx.font='bold 13px Orbitron, monospace';\n      const nameW=mx.measureText(name).width;\n      const totalW=flagW+8+nameW;\n\n      \/* Posizione: sopra la citt\u00e0, centrata *\/\n      let lx=cx-totalW\/2-12, ly=cy-28;\n      \/* Evita uscita dai bordi *\/\n      lx=Math.max(32,Math.min(MW-totalW-48,lx));\n      ly=Math.max(28,ly);\n\n      \/* Background pill cyber *\/\n      const bx=lx-8,by=ly-18,bw=totalW+32,bh=28;\n      mx.fillStyle='rgba(0,8,24,.92)';\n      mx.beginPath();\n      mx.roundRect(bx,by,bw,bh,7);mx.fill();\n      \/* Bordo neon *\/\n      const grad=mx.createLinearGradient(bx,0,bx+bw,0);\n      grad.addColorStop(0,'#ff1a2e');grad.addColorStop(1,'#00d4ff');\n      mx.strokeStyle=grad;mx.lineWidth=1.5;mx.stroke();\n      \/* Glow *\/\n      mx.shadowColor='#00d4ff';mx.shadowBlur=12;mx.stroke();mx.shadowBlur=0;\n\n      \/* Testo bandiera *\/\n      mx.font='16px sans-serif';\n      mx.fillStyle='#fff';\n      mx.fillText(flag,lx+6,ly-1);\n      \/* Separatore *\/\n      mx.fillStyle='rgba(0,212,255,.6)';\n      mx.fillRect(lx+flagW+10,by+6,1,bh-12);\n      \/* Nome paese *\/\n      mx.font='bold 12px Orbitron, monospace';\n      mx.fillStyle='#ffffff';\n      mx.shadowColor='#00d4ff';mx.shadowBlur=6;\n      mx.fillText(name,lx+flagW+18,ly-1);\n      mx.shadowBlur=0;\n\n      \/* Linea da etichetta al dot *\/\n      mx.beginPath();mx.moveTo(cx,cy);mx.lineTo(cx,ly+bh\/2-4);\n      mx.strokeStyle=`rgba(0,212,255,${lbl.opa*.4})`;mx.lineWidth=1;\n      mx.setLineDash([3,5]);mx.stroke();mx.setLineDash([]);\n\n      mx.globalAlpha=1;\n    }\n\n    requestAnimationFrame(mDraw);\n  }\n  mDraw();\n}\n\n\/* \u2500\u2500 TICKER \u2500\u2500 *\/\nconst items=isTH?[\n  {i:'\ud83c\udf0d',t:'195 \u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28'},{i:'\u2665',t:'\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01'},\n  {i:'\ud83c\udfa5',t:'975 \u0e27\u0e34\u0e14\u0e35\u0e42\u0e2d'},{i:'\u2726',t:'\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e1a\u0e27\u0e19\u0e01\u0e32\u0e23'},\n  {i:'\ud83c\udf10',t:'\u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c'},{i:'\u262e',t:'\u0e42\u0e25\u0e01\u0e40\u0e14\u0e35\u0e22\u0e27'},\n  {i:'\u2728',t:'975 \u0e20\u0e32\u0e1e'},{i:'\ud83d\udc99',t:'\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21'},\n  {i:'\ud83c\uddee\ud83c\uddf9',t:'\u0e15\u0e48\u0e2d\u0e44\u0e1b: \u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35'},{i:'\ud83d\udd25',t:'\u0e01\u0e32\u0e23\u0e1b\u0e0f\u0e34\u0e27\u0e31\u0e15\u0e34\u0e14\u0e34\u0e08\u0e34\u0e17\u0e31\u0e25'},\n  {i:'\u2665',t:'\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07\u0e2b\u0e31\u0e27\u0e43\u0e08'}\n]:[\n  {i:'\ud83c\udf0d',t:'195 Countries'},{i:'\u2665',t:'Peace & Love'},\n  {i:'\ud83c\udfa5',t:'975 Videos'},{i:'\u2726',t:'One Movement'},\n  {i:'\ud83c\udf10',t:'World Tour'},{i:'\u262e',t:'One World'},\n  {i:'\u2728',t:'975 Images'},{i:'\ud83d\udc99',t:'One Message'},\n  {i:'\ud83c\uddee\ud83c\uddf9',t:'Next: Italy'},{i:'\ud83d\udd25',t:'Digital Revolution'},\n  {i:'\u2665',t:'Connect Hearts'}\n];\nconst track=document.getElementById('tsj-ticker');\nif(track){ [...items,...items].forEach((item,idx)=>{\n  const el=document.createElement('span');\n  el.className='tsj-ti';\n  const dot=document.createElement('span');\n  dot.className='tsj-dot '+(idx%2?'b':'r');\n  const ico=document.createElement('span');\n  ico.style.cssText='display:inline-block;width:20px;text-align:center;flex-shrink:0';\nif(item.i==='\u262e'){ico.innerHTML='<svg width=\"11\" height=\"11\" viewBox=\"0 0 18 18\" fill=\"none\" style=\"vertical-align:middle\"><circle cx=\"9\" cy=\"9\" r=\"7.5\" stroke=\"rgba(255,255,255,.72)\" stroke-width=\"1.5\"\/><line x1=\"9\" y1=\"1.5\" x2=\"9\" y2=\"16.5\" stroke=\"rgba(255,255,255,.72)\" stroke-width=\"1.5\"\/><line x1=\"9\" y1=\"9\" x2=\"3\" y2=\"14\" stroke=\"rgba(255,255,255,.72)\" stroke-width=\"1.5\"\/><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"14\" stroke=\"rgba(255,255,255,.72)\" stroke-width=\"1.5\"\/><\/svg>';}else{ico.textContent=item.i;}\n  const txt=document.createElement('span');\n  txt.style.marginLeft='8px';\n  txt.textContent=item.t;\n  el.appendChild(dot);\n  el.appendChild(ico);\n  el.appendChild(txt);\n  track.appendChild(el);\n}); }\n\n\/* \u2500\u2500 PROGRESS \u2500\u2500 *\/\nlet pd=false;\nnew IntersectionObserver(([e])=>{ if(e.isIntersecting&&!pd){ pd=true; const f=document.getElementById('tsj-pfill'),p=document.getElementById('tsj-pct'),target=38; let c=0; const s=()=>{ if(c<target){ c=Math.min(c+.55,target); if(f)f.style.width=c+'%'; if(p)p.textContent=Math.round(c)+'%'; requestAnimationFrame(s); } }; s(); } },{threshold:.3}).observe(document.querySelector('.tsj-tour')||document.body);\n\n\/* \u2500\u2500 VIDEO GRID & FILTERS SMART LOGIC \u2500\u2500 *\/\nconst vidsRaw=[\n  {c:'World Tour \ud83c\udf0d',t:'TheSafeJoker World Tour',r:'intro',id:'7620699588923575584',\n   desc:'TheSafeJoker World Tour \u2014 spreading Peace & Love across 195 countries. Where should he go next?',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/giro-del-mondo-thumb.png',dur:23},\n  {c:'Bali, Indonesia \ud83c\uddee\ud83c\udde9',t:'TheSafeJoker in Bali, Indonesia',r:'asia',id:'7636732397630836001',\n   desc:'TheSafeJoker brings Peace & Love to Bali, Indonesia \u2014 join the movement across the world. Where should he go next?',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/bali-indonesia-thumb.png',dur:15},\n  {c:'Switzerland \ud83c\udde8\ud83c\udded',t:'TheSafeJoker in Switzerland',r:'europe',id:'7635968225745833249',\n   desc:'TheSafeJoker brings Peace & Love to Switzerland \u2014 join the movement across the world. Where should he go next?',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/svizzera-thumb.png',dur:20},\n  {c:'Philippines \ud83c\uddf5\ud83c\udded',t:'TheSafeJoker in Philippines',r:'asia',id:'7635210165104413985',\n   desc:'TheSafeJoker brings Peace & Love to Philippines \u2014 join the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/filippine-thumb.png',dur:18},\n  {c:'Albania \ud83c\udde6\ud83c\uddf1',t:'TheSafeJoker in Albania',r:'europe',id:'7621104264911359265',\n   desc:'TheSafeJoker brings Peace & Love to Albania \u2014 peace, love, connection.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/albania-thumb.png',dur:20},\n  {c:'Belarus \ud83c\udde7\ud83c\uddfe',t:'TheSafeJoker in Belarus',r:'europe',id:'7622207368427834656',\n   desc:\"TheSafeJoker brings Peace & Love to Belarus \u2014 peace doesn't need a language, only the courage to show it.\",\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/bielorussia-thumb.png',dur:16},\n  {c:'Belgium \ud83c\udde7\ud83c\uddea',t:'TheSafeJoker in Belgium',r:'europe',id:'7622255002546916641',\n   desc:'TheSafeJoker brings Peace & Love to Belgium \u2014 from rain to light. Peace & Love everywhere.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/belgio-thumb-1.png',dur:24},\n  {c:'Bosnia \ud83c\udde7\ud83c\udde6',t:'TheSafeJoker in Bosnia',r:'europe',id:'7622543743526178081',\n   desc:'TheSafeJoker brings Peace & Love to Bosnia \u2014 no rush, just flow. Become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/bosnia-thumb.png',dur:23},\n  {c:'Denmark \ud83c\udde9\ud83c\uddf0',t:'TheSafeJoker in Denmark',r:'europe',id:'7623027786529262880',\n   desc:'TheSafeJoker brings Peace & Love to Denmark \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/danimarka-thumb.png',dur:20},\n  {c:'Bulgaria \ud83c\udde7\ud83c\uddec',t:'TheSafeJoker in Bulgaria',r:'europe',id:'7623094731790126369',\n   desc:'TheSafeJoker brings Peace & Love to Bulgaria \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/bulgaria-thumb.png',dur:20},\n  {c:'Germany \ud83c\udde9\ud83c\uddea',t:'TheSafeJoker in Germany',r:'europe',id:'7623366561201392928',\n   desc:'TheSafeJoker brings Peace & Love to Germany \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/germania-thumb.png',dur:19},\n  {c:'Estonia \ud83c\uddea\ud83c\uddea',t:'TheSafeJoker in Estonia',r:'europe',id:'7624128754800921889',\n   desc:'TheSafeJoker brings Peace & Love to Estonia \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/estonia-thumb.png',dur:21},\n  {c:'Iraq \ud83c\uddee\ud83c\uddf6',t:'TheSafeJoker in Iraq',r:'asia',id:'7624507617397837088',\n   desc:'TheSafeJoker brings Peace & Love to Iraq \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/iraq-thumb.png',dur:22},\n  {c:'Malaysia \ud83c\uddf2\ud83c\uddfe',t:'TheSafeJoker in Malaysia',r:'asia',id:'7625198938693340449',\n   desc:'TheSafeJoker brings Peace & Love to Malaysia \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/malesia-thumb.png',dur:23},\n  {c:'Argentina \ud83c\udde6\ud83c\uddf7',t:'TheSafeJoker in Argentina',r:'americas',id:'7625374983069502752',\n   desc:'TheSafeJoker brings Peace & Love to Argentina \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/argentina-thumb.png',dur:21},\n  {c:'Japan \ud83c\uddef\ud83c\uddf5',t:'TheSafeJoker in Japan',r:'asia',id:'7625504927812554017',\n   desc:'TheSafeJoker brings Peace & Love to Japan \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/giappone-thumb.png',dur:20},\n  {c:'Kurdistan \u2600\ufe0f',t:'TheSafeJoker in Kurdistan',r:'asia',id:'7626347813873421601',\n   desc:'TheSafeJoker brings Peace & Love to Kurdistan \u2014 RIP Alan. Become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/kurdistan-thumb.png',dur:27},\n  {c:'Brazil \ud83c\udde7\ud83c\uddf7',t:'TheSafeJoker in Brazil',r:'americas',id:'7626779547542900000',\n   desc:'TheSafeJoker brings Peace & Love to Brazil \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/brasile-thumb.png',dur:24},\n  {c:'South Korea \ud83c\uddf0\ud83c\uddf7',t:'TheSafeJoker in South Korea',r:'asia',id:'7627382776609688865',\n   desc:'TheSafeJoker brings Peace & Love to South Korea \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/south-korea-thumb.png',dur:31},\n  {c:'Turkey \ud83c\uddf9\ud83c\uddf7',t:'TheSafeJoker in Turkey',r:'asia',id:'7627872063335845152',\n   desc:'TheSafeJoker brings Peace & Love to Turkey \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/turchia-thumb.png',dur:27},\n  {c:'Canada \ud83c\udde8\ud83c\udde6',t:'TheSafeJoker in Canada',r:'americas',id:'7627992112184806689',\n   desc:'TheSafeJoker brings Peace & Love to Canada \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/canada-thumb.png',dur:24},\n  {c:'Egypt \ud83c\uddea\ud83c\uddec',t:'TheSafeJoker in Egypt',r:'africa',id:'7628490418174381344',\n   desc:'TheSafeJoker brings Peace & Love to Egypt \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/egitto-thumb.png',dur:24},\n  {c:'France \ud83c\uddeb\ud83c\uddf7',t:'TheSafeJoker in France',r:'europe',id:'7629053692754300193',\n   desc:'TheSafeJoker brings Peace & Love to France \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/francia-thumb.png',dur:24},\n  {c:'Australia \ud83c\udde6\ud83c\uddfa',t:'TheSafeJoker in Australia',r:'oceania',id:'7629285524779420961',\n   desc:'TheSafeJoker brings Peace & Love to Australia \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/australia-thumb.png',dur:25},\n  {c:'Italy \ud83c\uddee\ud83c\uddf9',t:'TheSafeJoker in Italy',r:'europe',id:'7629717199036370209',\n   desc:'TheSafeJoker brings Peace & Love to Italy \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/italia-thumb.png',dur:35},\n  {c:'Costa Rica \ud83c\udde8\ud83c\uddf7',t:'TheSafeJoker in Costa Rica',r:'americas',id:'7630172313295605024',\n   desc:'TheSafeJoker brings Peace & Love to Costa Rica \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/costa-rica-thumb.png',dur:21},\n  {c:'China \ud83c\udde8\ud83c\uddf3',t:'TheSafeJoker in China',r:'asia',id:'7630433650718330144',\n   desc:'TheSafeJoker brings Peace & Love to China \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/china-thumb.png',dur:23},\n  {c:'Dubai \ud83c\udde6\ud83c\uddea',t:'TheSafeJoker in Dubai',r:'asia',id:'7630849841253387552',\n   desc:'TheSafeJoker brings Peace & Love to Dubai \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/dubai-thumb.png',dur:23},\n  {c:'England \ud83c\uddec\ud83c\udde7',t:'TheSafeJoker in England',r:'europe',id:'7631326320466627872',\n   desc:'TheSafeJoker brings Peace & Love to England \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/england-thumb.png',dur:23},\n  {c:'Mexico \ud83c\uddf2\ud83c\uddfd',t:'TheSafeJoker in Mexico',r:'americas',id:'7631667417135058209',\n   desc:'TheSafeJoker brings Peace & Love to Mexico \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/mexico-thumb.png',dur:28},\n  {c:'Greece \ud83c\uddec\ud83c\uddf7',t:'TheSafeJoker in Greece',r:'europe',id:'7632327293834169632',\n   desc:'TheSafeJoker brings Peace & Love to Greece \u2014 become part of the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/greece-thumb.png',dur:25},\n  {c:'Cyprus \ud83c\udde8\ud83c\uddfe',t:'TheSafeJoker in Cyprus',r:'europe',id:'7633268843435052320',\n   desc:'TheSafeJoker brings Peace & Love to Cyprus \u2014 joining the movement across the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/cyprus\ud83c\udde8\ud83c\uddfe-thumb.png',dur:25},\n  {c:'Spain \ud83c\uddea\ud83c\uddf8',t:'TheSafeJoker in Spain',r:'europe',id:'7634162585465572640',\n   desc:'TheSafeJoker brings Peace & Love to Spain \u2014 waving the flag high, spreading the message across every corner of the world.',\n   thumb:'https:\/\/thesafejoker.com\/wp-content\/uploads\/2026\/05\/spain-thumb.png',dur:22},\n];\n\n\/* Traduzione Dinamica Video e Descrizioni *\/\nconst thCountryNames = {\n    'Spain \ud83c\uddea\ud83c\uddf8': '\u0e2a\u0e40\u0e1b\u0e19 \ud83c\uddea\ud83c\uddf8', 'Cyprus \ud83c\udde8\ud83c\uddfe': '\u0e44\u0e0b\u0e1b\u0e23\u0e31\u0e2a \ud83c\udde8\ud83c\uddfe', 'Greece \ud83c\uddec\ud83c\uddf7': '\u0e01\u0e23\u0e35\u0e0b \ud83c\uddec\ud83c\uddf7', 'Mexico \ud83c\uddf2\ud83c\uddfd': '\u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01 \ud83c\uddf2\ud83c\uddfd',\n    'England \ud83c\uddec\ud83c\udde7': '\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 \ud83c\uddec\ud83c\udde7', 'Dubai \ud83c\udde6\ud83c\uddea': '\u0e14\u0e39\u0e44\u0e1a \ud83c\udde6\ud83c\uddea', 'China \ud83c\udde8\ud83c\uddf3': '\u0e08\u0e35\u0e19 \ud83c\udde8\ud83c\uddf3', 'Costa Rica \ud83c\udde8\ud83c\uddf7': '\u0e04\u0e2d\u0e2a\u0e15\u0e32\u0e23\u0e34\u0e01\u0e32 \ud83c\udde8\ud83c\uddf7',\n    'Italy \ud83c\uddee\ud83c\uddf9': '\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35 \ud83c\uddee\ud83c\uddf9', 'Australia \ud83c\udde6\ud83c\uddfa': '\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22 \ud83c\udde6\ud83c\uddfa', 'France \ud83c\uddeb\ud83c\uddf7': '\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a \ud83c\uddeb\ud83c\uddf7', 'Egypt \ud83c\uddea\ud83c\uddec': '\u0e2d\u0e35\u0e22\u0e34\u0e1b\u0e15\u0e4c \ud83c\uddea\ud83c\uddec',\n    'Canada \ud83c\udde8\ud83c\udde6': '\u0e41\u0e04\u0e19\u0e32\u0e14\u0e32 \ud83c\udde8\ud83c\udde6', 'Turkey \ud83c\uddf9\ud83c\uddf7': '\u0e15\u0e38\u0e23\u0e01\u0e35 \ud83c\uddf9\ud83c\uddf7', 'South Korea \ud83c\uddf0\ud83c\uddf7': '\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e43\u0e15\u0e49 \ud83c\uddf0\ud83c\uddf7', 'Brazil \ud83c\udde7\ud83c\uddf7': '\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25 \ud83c\udde7\ud83c\uddf7',\n    'Kurdistan \u2600\ufe0f': '\u0e40\u0e04\u0e2d\u0e23\u0e4c\u0e14\u0e34\u0e2a\u0e16\u0e32\u0e19 \u2600\ufe0f', 'Japan \ud83c\uddef\ud83c\uddf5': '\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19 \ud83c\uddef\ud83c\uddf5', 'Argentina \ud83c\udde6\ud83c\uddf7': '\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32 \ud83c\udde6\ud83c\uddf7', 'Malaysia \ud83c\uddf2\ud83c\uddfe': '\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22 \ud83c\uddf2\ud83c\uddfe',\n    'Iraq \ud83c\uddee\ud83c\uddf6': '\u0e2d\u0e34\u0e23\u0e31\u0e01 \ud83c\uddee\ud83c\uddf6', 'Estonia \ud83c\uddea\ud83c\uddea': '\u0e40\u0e2d\u0e2a\u0e42\u0e15\u0e40\u0e19\u0e35\u0e22 \ud83c\uddea\ud83c\uddea', 'Germany \ud83c\udde9\ud83c\uddea': '\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e19\u0e35 \ud83c\udde9\ud83c\uddea', 'Bulgaria \ud83c\udde7\ud83c\uddec': '\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22 \ud83c\udde7\ud83c\uddec',\n    'Denmark \ud83c\udde9\ud83c\uddf0': '\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01 \ud83c\udde9\ud83c\uddf0', 'Bosnia \ud83c\udde7\ud83c\udde6': '\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22 \ud83c\udde7\ud83c\udde6', 'Belgium \ud83c\udde7\ud83c\uddea': '\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21 \ud83c\udde7\ud83c\uddea', 'Belarus \ud83c\udde7\ud83c\uddfe': '\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a \ud83c\udde7\ud83c\uddfe',\n    'Albania \ud83c\udde6\ud83c\uddf1': '\u0e41\u0e2d\u0e25\u0e40\u0e1a\u0e40\u0e19\u0e35\u0e22 \ud83c\udde6\ud83c\uddf1', 'World Tour \ud83c\udf0d': '\u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c \ud83c\udf0d', 'Philippines \ud83c\uddf5\ud83c\udded': '\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19\u0e2a\u0e4c \ud83c\uddf5\ud83c\udded',\n    'Switzerland \ud83c\udde8\ud83c\udded': '\u0e2a\u0e27\u0e34\u0e15\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c \ud83c\udde8\ud83c\udded',\n  'Bali, Indonesia \ud83c\uddee\ud83c\udde9': '\u0e1a\u0e32\u0e2b\u0e25\u0e35 \u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22 \ud83c\uddee\ud83c\udde9',\n};\n\nconst vids = vidsRaw.map(v => {\n    if (!isTH) return v; \n    \n    let thDesc = v.desc;\n  if (v.c === 'Bali, Indonesia \ud83c\uddee\ud83c\udde9') thDesc = 'TheSafeJoker \u0e19\u0e33\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e21\u0e32\u0e2a\u0e39\u0e48\u0e1a\u0e32\u0e2b\u0e25\u0e35 \u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22 \u2014 \u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01 \u0e40\u0e02\u0e32\u0e04\u0e27\u0e23\u0e08\u0e30\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e44\u0e2b\u0e19\u0e15\u0e48\u0e2d?';\n  if (v.c === 'Switzerland \ud83c\udde8\ud83c\udded') thDesc = 'TheSafeJoker \u0e19\u0e33\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e21\u0e32\u0e2a\u0e39\u0e48\u0e2a\u0e27\u0e34\u0e15\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c \u2014 \u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01 \u0e40\u0e02\u0e32\u0e04\u0e27\u0e23\u0e08\u0e30\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e44\u0e2b\u0e19\u0e15\u0e48\u0e2d?';\n    if (v.c === 'Spain \ud83c\uddea\ud83c\uddf8') thDesc = 'TheSafeJoker \u0e19\u0e33\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e21\u0e32\u0e2a\u0e39\u0e48\u0e2a\u0e40\u0e1b\u0e19 \u2014 \u0e42\u0e1a\u0e01\u0e18\u0e07\u0e43\u0e2b\u0e49\u0e2a\u0e39\u0e07\u0e02\u0e36\u0e49\u0e19 \u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e02\u0e49\u0e2d\u0e04\u0e27\u0e32\u0e21\u0e44\u0e1b\u0e17\u0e38\u0e01\u0e21\u0e38\u0e21\u0e42\u0e25\u0e01';\n    if (v.c === 'Kurdistan \u2600\ufe0f') thDesc = 'TheSafeJoker \u0e19\u0e33\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e21\u0e32\u0e2a\u0e39\u0e48\u0e40\u0e04\u0e2d\u0e23\u0e4c\u0e14\u0e34\u0e2a\u0e16\u0e32\u0e19 \u2014 \u0e2b\u0e25\u0e31\u0e1a\u0e43\u0e2b\u0e49\u0e2a\u0e1a\u0e32\u0e22 \u0e2d\u0e32\u0e25\u0e31\u0e19 \u0e23\u0e48\u0e27\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01';\n    if (v.c === 'Bosnia \ud83c\udde7\ud83c\udde6') thDesc = 'TheSafeJoker \u0e19\u0e33\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e21\u0e32\u0e2a\u0e39\u0e48\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22 \u2014 \u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e23\u0e35\u0e1a \u0e41\u0e04\u0e48\u0e1b\u0e25\u0e48\u0e2d\u0e22\u0e44\u0e1b\u0e15\u0e32\u0e21\u0e01\u0e23\u0e30\u0e41\u0e2a \u0e23\u0e48\u0e27\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01';\n    if (v.c === 'Belarus \ud83c\udde7\ud83c\uddfe') thDesc = 'TheSafeJoker \u0e19\u0e33\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e21\u0e32\u0e2a\u0e39\u0e48\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a \u2014 \u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e20\u0e32\u0e29\u0e32 \u0e21\u0e35\u0e40\u0e1e\u0e35\u0e22\u0e07\u0e04\u0e27\u0e32\u0e21\u0e01\u0e25\u0e49\u0e32\u0e2b\u0e32\u0e0d\u0e17\u0e35\u0e48\u0e08\u0e30\u0e41\u0e2a\u0e14\u0e07\u0e2d\u0e2d\u0e01\u0e21\u0e32';\n    if (v.c === 'World Tour \ud83c\udf0d') thDesc = 'TheSafeJoker \u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c \u2014 \u0e40\u0e1c\u0e22\u0e41\u0e1e\u0e23\u0e48\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e44\u0e1b\u0e17\u0e31\u0e48\u0e27 195 \u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28 \u0e40\u0e02\u0e32\u0e04\u0e27\u0e23\u0e08\u0e30\u0e44\u0e1b\u0e17\u0e35\u0e48\u0e44\u0e2b\u0e19\u0e15\u0e48\u0e2d?';\n    \n    if (thDesc === v.desc) {\n      thDesc = thDesc.replace('TheSafeJoker brings Peace & Love to', 'TheSafeJoker \u0e19\u0e33\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e21\u0e32\u0e2a\u0e39\u0e48');\n      thDesc = thDesc.replace('become part of the movement across the world.', '\u0e23\u0e48\u0e27\u0e21\u0e40\u0e1b\u0e47\u0e19\u0e2a\u0e48\u0e27\u0e19\u0e2b\u0e19\u0e36\u0e48\u0e07\u0e02\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01');\n      thDesc = thDesc.replace('joining the movement across the world.', '\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01');\n      thDesc = thDesc.replace('join the movement across the world.', '\u0e40\u0e02\u0e49\u0e32\u0e23\u0e48\u0e27\u0e21\u0e01\u0e32\u0e23\u0e40\u0e04\u0e25\u0e37\u0e48\u0e2d\u0e19\u0e44\u0e2b\u0e27\u0e17\u0e31\u0e48\u0e27\u0e42\u0e25\u0e01');\n      thDesc = thDesc.replace('Peace & Love everywhere.', '\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e17\u0e38\u0e01\u0e17\u0e35\u0e48');\n      thDesc = thDesc.replace('from rain to light.', '\u0e08\u0e32\u0e01\u0e2a\u0e32\u0e22\u0e1d\u0e19\u0e2a\u0e39\u0e48\u0e41\u0e2a\u0e07\u0e2a\u0e27\u0e48\u0e32\u0e07');\n      thDesc = thDesc.replace('peace, love, connection.', '\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e \u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01 \u0e01\u0e32\u0e23\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e42\u0e22\u0e07');\n    }\n\n    return {\n        ...v,\n        c: thCountryNames[v.c] || v.c,\n        t: v.t.replace('TheSafeJoker in', 'TheSafeJoker \u0e43\u0e19'),\n        desc: thDesc\n    };\n});\n\nconst grid=document.getElementById('tsj-vgrid');\n\nconst loadBtn=document.querySelector('.tsj-load-btn');\nlet currentFilter = 'all';\nlet vidsExpanded = false;\n\n\/\/ 1. Creazione delle card video\nif(grid) {\n  vids.forEach((v,i)=>{\n    const card=document.createElement('div');\n    card.className='tsj-vcard'; card.dataset.region=v.r;\n  const thumbBg=v.thumb?`background:url('${v.thumb}') center\/cover no-repeat;`:'';\n    card.innerHTML=`<div class=\"tsj-vph\" style=\"${thumbBg}\"><div class=\"tsj-vph-overlay\"><\/div><div class=\"tsj-vph-play\"><div class=\"tsj-vph-play-icon\"><\/div><\/div><\/div><div class=\"tsj-vnum\">#${String(i+1).padStart(3,'0')}<\/div><div class=\"tsj-vinfo\"><div class=\"tsj-vcountry\">${v.c}<\/div><div class=\"tsj-vtitle\">${v.t}<\/div><\/div>${v.id?`<div class=\"tsj-vcard-live\">\u25cf ${isTH?'\u0e2a\u0e14':'LIVE'}<\/div>`:`<div class=\"tsj-vcard-soon\">\u25cc ${isTH?'\u0e40\u0e23\u0e47\u0e27\u0e46 \u0e19\u0e35\u0e49':'SOON'}<\/div>`}`;\n    card.style.cursor='pointer';\n    card.addEventListener('click',()=>window.tsjOpenModal(v));\n    grid.appendChild(card);\n  });\n}\n\n\/\/ 2. Logica Mostra\/Nascondi Video (ANTI-SCATTO DEFINITIVO)\nlet lastW = window.innerWidth;\n\nfunction updateVideos() {\n   if(!grid) return;\n   const limit = window.innerWidth <= 1024 ? 6 : 15;\n   const cards = Array.from(grid.querySelectorAll('.tsj-vcard'));\n   const visibleCards = cards.filter(c => currentFilter === 'all' || c.dataset.region === currentFilter);\n   \n   cards.forEach(c => {\n      const shouldShow = (currentFilter === 'all' || c.dataset.region === currentFilter) && (vidsExpanded || visibleCards.indexOf(c) < limit);\n      const tgt = shouldShow ? '' : 'none';\n      if(c.style.display !== tgt) c.style.display = tgt; \n   });\n   \n   if(loadBtn) {\n     if(visibleCards.length > limit) {\n        if(loadBtn.style.display !== 'inline-flex') loadBtn.style.display = 'inline-flex';\n        \n        \/\/ Niente pi\u00f9 testo riscritto! Ora accendiamo e spegniamo i blocchi gi\u00e0 tradotti\n        const spanMore = loadBtn.querySelector('.tsj-btn-more');\n        const spanLess = loadBtn.querySelector('.tsj-btn-less');\n        if(spanMore) spanMore.style.display = vidsExpanded ? 'none' : 'inline-block';\n        if(spanLess) spanLess.style.display = vidsExpanded ? 'inline-block' : 'none';\n        \n     } else {\n        if(loadBtn.style.display !== 'none') loadBtn.style.display = 'none'; \n     }\n   }\n}\nupdateVideos();\n\n\/\/ 3. Logica Filtri \"See More\" (ANTI-FLASH)\nconst filterContainer = document.getElementById('tsj-filter-container');\nconst filterMoreBtn = document.getElementById('tsj-filter-more');\nlet filtersExpanded = false;\n\nfunction updateFilters() {\n   if(!filterContainer || !filterMoreBtn) return;\n   const limit = window.innerWidth <= 1024 ? 4 : 8; \n   const filterBtns = Array.from(filterContainer.querySelectorAll('.tsj-fbtn'));\n   \n   if(filterBtns.length > limit) {\n      if(filterMoreBtn.style.display !== 'inline-flex') filterMoreBtn.style.display = 'inline-flex';\n      filterBtns.forEach((btn, index) => {\n         const tgt = (filtersExpanded || index < limit) ? 'inline-flex' : 'none';\n         if(btn.style.display !== tgt) btn.style.display = tgt;\n      });\n      \n      document.querySelectorAll('.m-more').forEach(el => { const t = filtersExpanded ? 'none' : 'inline-block'; if(el.style.display !== t) el.style.display = t; });\n      document.querySelectorAll('.m-less').forEach(el => { const t = filtersExpanded ? 'inline-block' : 'none'; if(el.style.display !== t) el.style.display = t; });\n   } else {\n      if(filterMoreBtn.style.display !== 'none') filterMoreBtn.style.display = 'none';\n      filterBtns.forEach(btn => { if(btn.style.display !== 'inline-flex') btn.style.display = 'inline-flex'; });\n   }\n}\n\nif(filterMoreBtn) {\n   filterMoreBtn.addEventListener('click', () => {\n      filtersExpanded = !filtersExpanded;\n      updateFilters();\n   });\n}\nupdateFilters();\n\n\/\/ Resize Event: SI ATTIVA SOLO SE GIRI IL TELEFONO, IGNORA LO SCROLL!\nwindow.addEventListener('resize', () => {\n   if(window.innerWidth !== lastW) {\n      lastW = window.innerWidth;\n      updateVideos();\n      updateFilters();\n   }\n});\n\n\/\/ 4. Click sui filtri\ndocument.querySelectorAll('.tsj-fbtn').forEach(b => {\n  b.addEventListener('click', function() {\n    document.querySelectorAll('.tsj-fbtn').forEach(x => x.classList.remove('on')); \n    this.classList.add('on');\n    currentFilter = this.getAttribute('data-filter'); \n    vidsExpanded = false; \n    updateVideos();\n  });\n});\n\nif(loadBtn) {\n   loadBtn.addEventListener('click', () => {\n      vidsExpanded = !vidsExpanded;\n      updateVideos();\n      if(!vidsExpanded){\n        const cards=Array.from(grid.querySelectorAll('.tsj-vcard')).filter(c=>c.style.display!=='none');\n        const last=cards[cards.length-1];\n        if(last) last.scrollIntoView({behavior:'smooth',block:'center'});\n      }\n   });\n}\n\/* \u2500\u2500 SCROLL ANIM \u2500\u2500 *\/\nconst obs=new IntersectionObserver(es=>es.forEach(e=>{ if(e.isIntersecting){ e.target.style.opacity='1'; e.target.style.transform='translateY(0)'; } }),{threshold:.1});\ndocument.querySelectorAll('.tsj-stat,.tsj-val,.tsj-vcard,.tsj-quote,.tsj-sw-card').forEach(el=>{ el.style.cssText+='opacity:0;transform:translateY(20px);transition:opacity .5s ease,transform .5s ease;'; obs.observe(el); });\n\n\/* \u2500\u2500 HTML FLAGS ORBIT \u2014 emoji reali visibili \u2500\u2500 *\/\n(function(){\n  const container=document.getElementById('tsj-flags-orbit');\n  if(!container) return;\n\n  const flags=[\n    '\ud83c\uddee\ud83c\uddf9','\ud83c\udde9\ud83c\uddea','\ud83c\uddeb\ud83c\uddf7','\ud83c\uddec\ud83c\udde7','\ud83c\uddef\ud83c\uddf5','\ud83c\uddfa\ud83c\uddf8','\ud83c\udde7\ud83c\uddf7','\ud83c\uddf0\ud83c\uddea',\n    '\ud83c\udde6\ud83c\uddfa','\ud83c\uddf8\ud83c\uddec','\ud83c\uddee\ud83c\uddf3','\ud83c\udde8\ud83c\uddf3','\ud83c\uddf2\ud83c\uddfd','\ud83c\udde6\ud83c\uddea','\ud83c\uddff\ud83c\udde6','\ud83c\udde8\ud83c\udde6',\n    '\ud83c\uddea\ud83c\uddf8','\ud83c\uddf7\ud83c\uddfa','\ud83c\uddf9\ud83c\udded','\ud83c\uddf3\ud83c\uddec'\n  ];\n\n  \/* 3 orbite con raggi diversi *\/\n  const orbits=[\n    {count:6,  rx:110, ry:38, spd:0.28},\n    {count:7,  rx:168, ry:56, spd:-0.18},\n    {count:7,  rx:218, ry:72, spd:0.13},\n  ];\n\n  \/* Anelli decorativi *\/\n  orbits.forEach(o=>{\n    const ring=document.createElement('div');\n    ring.className='tsj-orbit-ring';\n    ring.style.cssText=`width:${o.rx*2}px;height:${o.ry*2}px;left:50%;top:50%;margin-left:-${o.rx}px;margin-top:-${o.ry}px;`;\n    container.appendChild(ring);\n  });\n\n  \/* Crea i chip bandiera *\/\n  const chips=[];\n  let fi=0;\n  orbits.forEach(o=>{\n    for(let i=0;i<o.count;i++){\n      const chip=document.createElement('div');\n      chip.className='tsj-flag-chip';\n      chip.textContent=flags[fi%flags.length];\n      chip.title=flags[fi%flags.length];\n      container.appendChild(chip);\n      chips.push({\n        el:chip,\n        angle:(i\/o.count)*Math.PI*2,\n        rx:o.rx, ry:o.ry, spd:o.spd\n      });\n      fi++;\n    }\n  });\n\n  \/* Animazione RAF \u2014 aggiorna solo left\/top *\/\n  let last=performance.now();\n  function loop(now){\n    const dt=(now-last)\/1000; last=now;\n    const cx=container.offsetWidth\/2;\n    const cy=container.offsetHeight\/2;\n    chips.forEach(c=>{\n      c.angle+=c.spd*dt;\n      const x=cx+Math.cos(c.angle)*c.rx - 22;\n      const y=cy+Math.sin(c.angle)*c.ry - 22;\n      c.el.style.left=x+'px';\n      c.el.style.top=y+'px';\n      \/* Profondit\u00e0: scalo in base alla posizione verticale *\/\n      const depth=(Math.sin(c.angle)+1)\/2;\n      const sc=0.75+depth*0.45;\n      c.el.style.transform=`scale(${sc})`;\n      c.el.style.opacity=0.55+depth*0.45;\n      c.el.style.zIndex=Math.round(depth*9);\n    });\n    requestAnimationFrame(loop);\n  }\n  requestAnimationFrame(loop);\n  })();\n  \/* \u2500\u2500 MOBILE HAMBURGER \u2500\u2500 *\/\n(function(){\n  const ham=document.getElementById('tsj-ham');\n  const overlay=document.getElementById('tsj-mob-overlay');\n  const close=document.getElementById('tsj-mob-close');\n  const links=document.querySelectorAll('.tsj-mob-nav a');\n  if(!ham||!overlay) return;\n  function openMenu(){\n    ham.classList.add('open');\n    document.body.classList.add('tsj-menu-open');\n    document.body.style.position='fixed';\n    document.body.style.width='100%';\n    document.body.style.top=`-${window.scrollY}px`;\n    \/* Prima mostra overlay trasparente per il canvas *\/\n    overlay.style.setProperty('opacity','1','important');\noverlay.style.pointerEvents='auto';\n    runMenuCanvas('open', function(){\n      \/* Dopo l'animazione mostra il menu vero *\/\n      overlay.classList.add('open');\n      overlay.style.background='';\n    });\n  }\n  function closeMenu(){\n    \/* 1 \u2014 nascondi subito il contenuto *\/\n    overlay.classList.remove('open');\n    ham.classList.remove('open');\n    const scrollY=parseInt(document.body.style.top||'0')*-1;\n    document.body.classList.remove('tsj-menu-open');\n    document.body.style.position='';\n    document.body.style.width='';\n    document.body.style.top='';\n    window.scrollTo(0,scrollY);\n    \/* 2 \u2014 particelle esplodono verso l'esterno *\/\n    setTimeout(()=>{\n      runMenuCanvas('close', function(){\n        \/* 3 \u2014 fine animazione: nascondi overlay *\/\n        overlay.style.setProperty('opacity','0','important');\n        overlay.style.pointerEvents='none';\n      });\n    },30);\n  }\n  ham.addEventListener('click',openMenu);\n  if(close) close.addEventListener('click',closeMenu);\n  links.forEach(a=>a.addEventListener('click',e=>{\n    closeMenu();\n    const t=document.querySelector(a.getAttribute('href'));\n    if(t){ e.preventDefault(); setTimeout(()=>{const top=t.getBoundingClientRect().top+window.scrollY-65;window.scrollTo({top,behavior:'smooth'});},300); }\n  }));\n  document.addEventListener('keydown',e=>{ if(e.key==='Escape') closeMenu(); });\n\n function runMenuCanvas(mode, callback){\n    let cv=overlay.querySelector('.tsj-mcv');\n    if(!cv){\n      cv=document.createElement('canvas');\n      cv.className='tsj-mcv';\n      cv.style.cssText='position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;';\n      overlay.appendChild(cv);\n    }\n    cv.width=window.innerWidth;\n    cv.height=window.innerHeight;\n    const ctx=cv.getContext('2d');\n    const W=cv.width, H=cv.height;\n    const cx=W\/2, cy=H\/2;\n    const N=180;\n    const pts=[];\n    for(let i=0;i<N;i++){\n      if(mode==='open'){\n        pts.push({\n          x:cx+(Math.random()-.5)*W*1.2,\n          y:cy+(Math.random()-.5)*H*1.2,\n          tx:cx+(Math.random()-.5)*W*.9,\n          ty:cy+(Math.random()-.5)*H*.9,\n          r:Math.random()*3+1,\n          c:i%3===0?'#ff1a2e':i%3===1?'#00d4ff':'rgba(255,255,255,.9)'\n        });\n      } else {\n        pts.push({\n          x:cx+(Math.random()-.5)*W*.9,\n          y:cy+(Math.random()-.5)*H*.9,\n          tx:cx+(Math.random()-.5)*W*1.2,\n          ty:cy+(Math.random()-.5)*H*1.2,\n          r:Math.random()*3+1,\n          c:i%3===0?'#ff1a2e':i%3===1?'#00d4ff':'rgba(255,255,255,.9)'\n        });\n      }\n    }\n    let prog=0;\n    function anim(){\n      ctx.clearRect(0,0,W,H);\n      prog=Math.min(prog+.028,1);\n      const ease=prog<.5?2*prog*prog:1-Math.pow(-2*prog+2,2)\/2;\n      pts.forEach((p,i)=>{\n        const delay=i\/N*.4;\n        const localEase=Math.max(0,Math.min(1,(prog-delay)\/(1-delay)));\n        const le=localEase<.5?2*localEase*localEase:1-Math.pow(-2*localEase+2,2)\/2;\n        const x=p.x+(p.tx-p.x)*le;\n        const y=p.y+(p.ty-p.y)*le;\n        ctx.beginPath();\n        ctx.arc(x,y,p.r,0,Math.PI*2);\n        ctx.fillStyle=p.c;\n        ctx.shadowColor=p.c;\n        ctx.shadowBlur=p.r*5;\n        ctx.globalAlpha=mode==='open'?1-ease:ease;\n        ctx.fill();\n        ctx.shadowBlur=0;\n      });\n      ctx.globalAlpha=1;\n      if(prog<1) requestAnimationFrame(anim);\n      else { cv.remove(); if(callback) callback(); }\n    }\n    requestAnimationFrame(anim);\n  }\n})();\ndocument.querySelectorAll('#tsj a[href^=\"#\"]').forEach(a=>a.addEventListener('click',e=>{ const t=document.querySelector(a.getAttribute('href')); if(t){e.preventDefault();const top=t.getBoundingClientRect().top+window.scrollY-65;window.scrollTo({top,behavior:'smooth'});} }));\n\n\/* \u2500\u2500 PEACE PARTICLE SYMBOL \u2500\u2500 *\/\n(function(){\n  const pc=document.getElementById('tsj-peace-cv');\n  if(!pc) return;\n  const ctx=pc.getContext('2d');\n  function rsz(){ pc.width=pc.offsetWidth; pc.height=pc.offsetHeight||240; }\n  window.addEventListener('resize',()=>{ rsz(); init(pc.width,pc.height); });\n  rsz();\n  const N=200;\n  function peaceTargets(W,H){\n    const pts=[]; const cx=W\/2,cy=H\/2,R=Math.min(W,H)*.36;\n    for(let i=0;i<80;i++){ const a=i\/80*Math.PI*2; pts.push([cx+Math.cos(a)*R,cy+Math.sin(a)*R]); }\n    for(let i=0;i<40;i++){ const t=i\/39; pts.push([cx,cy-R+t*R*2]); }\n    for(let i=0;i<40;i++){ const t=i\/39; pts.push([cx-Math.cos(Math.PI\/6)*R*t,cy+Math.sin(Math.PI\/6)*R*t]); }\n    for(let i=0;i<40;i++){ const t=i\/39; pts.push([cx+Math.cos(Math.PI\/6)*R*t,cy+Math.sin(Math.PI\/6)*R*t]); }\n    return pts;\n  }\n  let targets=[],particles=[],mode='peace',modeTimer=0;\n  function init(W,H){\n    targets=peaceTargets(W,H);\n    particles=Array.from({length:N},(_,i)=>{\n      const t=targets[i%targets.length];\n      return {x:Math.random()*W,y:Math.random()*H,tx:t[0],ty:t[1],vx:0,vy:0,\n        r:Math.random()*1.8+.8,c:i%3===0?'#ff1a2e':i%3===1?'#00d4ff':'rgba(255,255,255,.8)',\n        a:Math.random()*.7+.3,phase:Math.random()*Math.PI*2};\n    });\n  }\n  function loop(){\n    const W=pc.width,H=pc.height,t=Date.now()\/1000;\n    ctx.clearRect(0,0,W,H);\n    modeTimer++;\n    if(modeTimer>300&&mode==='peace'){ mode='scatter'; modeTimer=0;\n      particles.forEach(p=>{p.tx=Math.random()*W;p.ty=Math.random()*H;}); }\n    if(modeTimer>130&&mode==='scatter'){ mode='peace'; modeTimer=0;\n      targets=peaceTargets(W,H);\n      particles.forEach((p,i)=>{const t2=targets[i%targets.length];p.tx=t2[0];p.ty=t2[1];}); }\n    particles.forEach(p=>{\n      const f=mode==='scatter'?.05:.07;\n      p.vx+=(p.tx-p.x)*f*.12+Math.sin(t*2+p.phase)*.25;\n      p.vy+=(p.ty-p.y)*f*.12+Math.cos(t*1.7+p.phase)*.25;\n      p.vx*=.87;p.vy*=.87;p.x+=p.vx;p.y+=p.vy;\n      ctx.beginPath();ctx.arc(p.x,p.y,p.r,0,Math.PI*2);\n      ctx.fillStyle=p.c;\n      ctx.globalAlpha=p.a*(.55+Math.sin(t*3+p.phase)*.45);\n      ctx.shadowColor=p.c;ctx.shadowBlur=mode==='scatter'?3:10;\n      ctx.fill();ctx.shadowBlur=0;ctx.globalAlpha=1;\n    });\n    for(let i=0;i<particles.length;i+=2)for(let j=i+1;j<particles.length;j+=2){\n      const dx=particles[i].x-particles[j].x,dy=particles[i].y-particles[j].y,d=Math.hypot(dx,dy);\n      if(d<26){ctx.beginPath();ctx.moveTo(particles[i].x,particles[i].y);ctx.lineTo(particles[j].x,particles[j].y);\n        ctx.strokeStyle=`rgba(0,212,255,${(1-d\/26)*.14})`;ctx.lineWidth=.5;ctx.stroke();}\n    }\n    ctx.font='bold 9px Orbitron,monospace';ctx.textAlign='center';ctx.textBaseline='middle';\n    ctx.fillStyle='rgba(255,255,255,.12)';ctx.fillText('SAFE WORLD',W\/2,H\/2);\n    requestAnimationFrame(loop);\n  }\n  init(pc.width||320,pc.height||240);loop();\n})();\n\n\/* \u2500\u2500 HEADER SCROLL SHRINK \u2500\u2500 *\/\nconst hdr=document.querySelector('.tsj-hdr');\nif(hdr){\n  window.addEventListener('scroll',()=>{\n    if(window.scrollY>80){ hdr.classList.add('scrolled'); }\n    else { hdr.classList.remove('scrolled'); }\n  },{passive:true});\n}\n\n\/* \u2500\u2500 CURSOR FIX: credits area \u2014 solo agency \u00e8 pointer \u2500\u2500 *\/\n(function(){\n  const credits=document.querySelector('.tsj-ft-credits');\n  const agency=document.querySelector('.tsj-ft-agency');\n  if(!credits||!agency) return;\n  credits.addEventListener('mousemove',function(e){\n    const rect=agency.getBoundingClientRect();\n    const onLink=e.clientX>=rect.left&&e.clientX<=rect.right&&e.clientY>=rect.top&&e.clientY<=rect.bottom;\n    credits.style.cursor=onLink?'pointer':'default';\n  });\n  credits.addEventListener('mouseleave',function(){\n    credits.style.cursor='default';\n  });\n})();\n\/* \u2500\u2500 MODAL CYBER PLAYER \u2500\u2500 *\/\n(function(){\n  const modal=document.createElement('div');\n  modal.className='tsj-modal-wrap'; modal.id='tsj-modal';\n  modal.innerHTML=`<div class=\"tsj-modal-box\">\n    <div class=\"tsj-modal-hdr\">\n      <span class=\"tsj-modal-flag\" id=\"tsjmf\">\ud83c\udf0d<\/span>\n      <div class=\"tsj-modal-info\">\n        <div class=\"tsj-modal-country\" id=\"tsjmc\">WORLD TOUR<\/div>\n        <div class=\"tsj-modal-tag\">\u25c6 THESAFEJOKER WORLD TOUR 2026<\/div>\n      <\/div>\n      <button class=\"tsj-modal-close\" id=\"tsjmx\">\u2715<\/button>\n    <\/div>\n    <div class=\"tsj-modal-body\">\n      <div class=\"tsj-modal-vid-wrap\" id=\"tsjmv\">\n        <div class=\"tsj-mc tl\"><\/div><div class=\"tsj-mc tr\"><\/div>\n        <div class=\"tsj-mc bl\"><\/div><div class=\"tsj-mc br\"><\/div>\n        <div id=\"tsjmi\"><\/div>\n      <\/div>\n      <div class=\"tsj-modal-desc-panel\" id=\"tsjmdesc\">\n        <div class=\"tsj-modal-desc-title\">\u25c6 About this stop<\/div>\n        <div class=\"tsj-modal-desc-txt\" id=\"tsjmdtxt\">\u2014<\/div>\n        <a class=\"tsj-modal-tiktok-btn\" id=\"tsjmtk\" href=\"#\" target=\"_blank\">\n          <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"#ff1a2e\"><path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.77 0 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.34 6.34 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.77 1.52V6.78a4.85 4.85 0 01-1-.09z\"\/><\/svg>\n          Watch on TikTok\n        <\/a>\n      <\/div>\n    <\/div>\n  <\/div>`;\n  document.body.appendChild(modal);\n\n  function xFlag(s){ const m=s.match(\/[\\uD83C][\\uDDE6-\\uDDFF][\\uD83C][\\uDDE6-\\uDDFF]\/); return m?m[0]:'\ud83c\udf0d'; }\nfunction xName(s){ return s.replace(\/[\\uD83C][\\uDDE6-\\uDDFF][\\uD83C][\\uDDE6-\\uDDFF]\/g,'').replace(\/\u2600\ufe0f\/g,'').trim(); }\nfunction emojiToCode(e){ try{ const c=[...e]; if(c.length<2)return null; const a=c[0].codePointAt(0)-0x1F1E6+65,b=c[1].codePointAt(0)-0x1F1E6+65; return(a>=65&&a<=90&&b>=65&&b<=90)?String.fromCharCode(a,b).toLowerCase():null; }catch(ex){return null;} }\nfunction xFlagImg(s,h){ const e=xFlag(s); if(e==='\ud83c\udf0d') return '<span style=\"font-size:'+(h||24)+'px\">\ud83c\udf0d<\/span>'; const code=emojiToCode(e); if(!code) return '<span style=\"font-size:'+(h||24)+'px\">'+e+'<\/span>'; return '<img decoding=\"async\" src=\"https:\/\/flagcdn.com\/w640\/'+code+'.png\" alt=\"'+code.toUpperCase()+'\" style=\"height:'+(h||24)+'px;width:auto;border-radius:3px;box-shadow:0 0 0 1px rgba(255,255,255,.2);vertical-align:middle;\">'; }\n\n  let currentVid=null;\n  let endTimer=null;\n\n  function showEndScreen(){\n    if(!currentVid||!currentVid.id) return;\n    const wrap=document.getElementById('tsjmv');\n    if(!wrap||wrap.querySelector('.tsj-modal-endscreen')) return;\n    document.getElementById('tsjmi').innerHTML='';\n    const flag=xFlagImg(currentVid.c,28);\nconst name=xName(currentVid.c).toUpperCase();\n    \n    \/\/ Traduzione del testo nel caso manchi la descrizione\n    const desc=currentVid.desc||(isTH?'\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01 \u2014 \u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c 2026':'Peace & Love \u2014 World Tour 2026.');\n    const vidId=currentVid.id;\n    const es=document.createElement('div');\n    es.className='tsj-modal-endscreen';\n    \n    \/\/ Testi dinamici per Replay, TikTok e Tagline Finale\n    es.innerHTML=`\n      <div class=\"tsj-modal-endscreen-logo\">\n        <svg width=\"70\" height=\"70\" viewBox=\"0 0 44 44\" fill=\"none\">\n          <circle cx=\"22\" cy=\"22\" r=\"21\" stroke=\"#ff1a2e\" stroke-width=\"1.5\" fill=\"#08081e\"\/>\n          <line x1=\"8\"  y1=\"12\" x2=\"14\" y2=\"18\" stroke=\"#ff1a2e\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n          <line x1=\"14\" y1=\"12\" x2=\"8\"  y2=\"18\" stroke=\"#ff1a2e\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n          <line x1=\"30\" y1=\"12\" x2=\"36\" y2=\"18\" stroke=\"#00d4ff\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n          <line x1=\"36\" y1=\"12\" x2=\"30\" y2=\"18\" stroke=\"#00d4ff\" stroke-width=\"2.8\" stroke-linecap=\"round\"\/>\n          <path d=\"M9 28 Q22 37 35 28\" stroke=\"white\" stroke-width=\"1.8\" fill=\"none\" stroke-linecap=\"round\"\/>\n          <line x1=\"13\" y1=\"29.5\" x2=\"13\" y2=\"32.5\" stroke=\"#ff1a2e\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n          <line x1=\"19\" y1=\"31.5\" x2=\"19\" y2=\"34.5\" stroke=\"white\"   stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n          <line x1=\"25\" y1=\"32\"   x2=\"25\" y2=\"35\"   stroke=\"white\"   stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n          <line x1=\"31\" y1=\"29.5\" x2=\"31\" y2=\"32.5\" stroke=\"#00d4ff\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"tsj-modal-endscreen-divtop\"><\/div>\n      <div class=\"tsj-modal-endscreen-title\"><span style=\"margin-right: 10px;\">${flag}<\/span>${name}<\/div>\n      <div class=\"tsj-modal-endscreen-desc\">${desc}<\/div>\n      <div class=\"tsj-modal-endscreen-div\"><div class=\"tsj-modal-endscreen-dot\"><\/div><\/div>\n      <div class=\"tsj-modal-endscreen-btns\">\n        <button class=\"tsj-modal-endscreen-replay\" id=\"tsjreplay\">\u21bb ${isTH ? '\u0e40\u0e25\u0e48\u0e19\u0e0b\u0e49\u0e33' : 'Replay'}<\/button>\n        <a class=\"tsj-modal-endscreen-tktk\" href=\"https:\/\/www.tiktok.com\/@thesafejoker\/video\/${vidId}\" target=\"_blank\">\n          <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"#ff1a2e\"><path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.77 0 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.34 6.34 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.77 1.52V6.78a4.85 4.85 0 01-1-.09z\"\/><\/svg>\n          ${isTH ? '\u0e14\u0e39\u0e1a\u0e19 TikTok' : 'TikTok'}\n        <\/a>\n      <\/div>\n      <div class=\"tsj-modal-endscreen-tag\">\u25c6 ${isTH ? 'THESAFEJOKER \u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c 2026' : 'TheSafeJoker World Tour 2026'} \u25c6<\/div>\n    `;\n    wrap.appendChild(es);\n    document.getElementById('tsjreplay').addEventListener('click',function(){\n      es.remove();\n      clearTimeout(endTimer);\n      document.getElementById('tsjmi').innerHTML=`<iframe src=\"https:\/\/www.tiktok.com\/embed\/v2\/${vidId}?autoplay=1\" allow=\"autoplay;fullscreen\" style=\"position:absolute;inset:0;width:100%;height:100%;border:none;\"><\/iframe>`;\n      if(currentVid.dur) endTimer=setTimeout(showEndScreen, currentVid.dur*1000);\n    });\n  }\n\n  window.tsjOpenModal=function(vid){\n    document.getElementById('tsjmf').innerHTML='\ud83c\udf0d';\ndocument.getElementById('tsjmc').textContent=xName(vid.c).toUpperCase();\n    const mi=document.getElementById('tsjmi');\n    const dt=document.getElementById('tsjmdtxt');\n    const tk=document.getElementById('tsjmtk');\n    mi.innerHTML='';\n    currentVid=vid;\n    clearTimeout(endTimer);\n\n    \/* Traduzioni scritte fisse del pop-up (Modal) *\/\n    const modalTitleEl = document.querySelector('.tsj-modal-desc-title');\n    const modalTagEl = document.querySelector('.tsj-modal-tag');\n    if (isTH) {\n      if (modalTagEl) modalTagEl.textContent = '\u25c6 THESAFEJOKER \u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c 2026';\n      if (modalTitleEl) modalTitleEl.textContent = '\u25c6 \u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e08\u0e38\u0e14\u0e19\u0e35\u0e49';\n      if (tk) tk.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"#ff1a2e\"><path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.77 0 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.34 6.34 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.77 1.52V6.78a4.85 4.85 0 01-1-.09z\"\/><\/svg> \u0e14\u0e39\u0e1a\u0e19 TikTok`;\n    } else {\n      if (modalTagEl) modalTagEl.textContent = '\u25c6 THESAFEJOKER WORLD TOUR 2026';\n      if (modalTitleEl) modalTitleEl.textContent = '\u25c6 About this stop';\n      if (tk) tk.innerHTML = `<svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"#ff1a2e\"><path d=\"M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-5.77 0 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.34 6.34 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.77 1.52V6.78a4.85 4.85 0 01-1-.09z\"\/><\/svg> Watch on TikTok`;\n    }\n\n    if(vid.id){\n      mi.innerHTML=`<iframe src=\"https:\/\/www.tiktok.com\/embed\/v2\/${vid.id}?autoplay=1\" allow=\"autoplay;fullscreen\" style=\"position:absolute;inset:0;width:100%;height:100%;border:none;\"><\/iframe>`;\n      if(dt) dt.textContent=vid.desc||(isTH?'\u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01 \u2014 \u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c 2026':'Peace & Love \u2014 World Tour 2026.');\n      if(tk){ tk.href=`https:\/\/www.tiktok.com\/@thesafejoker\/video\/${vid.id}`; tk.style.display='inline-flex'; }\n      if(vid.dur) endTimer=setTimeout(showEndScreen, vid.dur*1000);\n      setTimeout(function(){ document.getElementById('tsjmf').innerHTML=xFlagImg(vid.c,32); },100);\n    } else {\n      mi.innerHTML=`<div class=\"tsj-modal-soon\">\n        <div class=\"tsj-modal-soon-flag\">${xFlag(vid.c)}<\/div>\n        <div class=\"tsj-modal-soon-lbl\">${isTH ? '\u0e40\u0e23\u0e47\u0e27\u0e46 \u0e19\u0e35\u0e49' : 'Coming Soon'}<\/div>\n        <div class=\"tsj-modal-soon-name\">${xName(vid.c)}<\/div>\n        <div class=\"tsj-modal-soon-pulse\"><\/div>\n      <\/div>`;\n      if(dt) dt.textContent = isTH ? '\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e19\u0e35\u0e49\u0e40\u0e1b\u0e47\u0e19\u0e08\u0e38\u0e14\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e43\u0e19\u0e40\u0e27\u0e34\u0e25\u0e14\u0e4c\u0e17\u0e31\u0e27\u0e23\u0e4c \u0e42\u0e1b\u0e23\u0e14\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21 \u2014 \u0e2a\u0e31\u0e19\u0e15\u0e34\u0e20\u0e32\u0e1e\u0e41\u0e25\u0e30\u0e04\u0e27\u0e32\u0e21\u0e23\u0e31\u0e01\u0e01\u0e33\u0e25\u0e31\u0e07\u0e08\u0e30\u0e21\u0e32' : 'This country is next on the World Tour. Stay tuned \u2014 Peace & Love is coming.';\n      if(tk) tk.style.display='none';\n    }\n    modal.classList.add('open');\n    const scrollY=window.scrollY;\n    document.body.style.overflow='hidden';\n    document.body.style.position='fixed';\n    document.body.style.width='100%';\n    document.body.style.top=`-${scrollY}px`;\n  };\n\n  function closeM(){\n    modal.classList.remove('open');\n    const scrollY=parseInt(document.body.style.top||'0')*-1;\n    document.body.style.overflow='';\n    document.body.style.position='';\n    document.body.style.width='';\n    document.body.style.top='';\n    window.scrollTo(0,scrollY);\n    clearTimeout(endTimer);\n    currentVid=null;\n    setTimeout(()=>{\n      document.getElementById('tsjmi').innerHTML='';\n      const es=document.querySelector('.tsj-modal-endscreen');\n      if(es) es.remove();\n    },320);\n  }\n  document.getElementById('tsjmx').addEventListener('click',closeM);\n  modal.addEventListener('click',e=>{ if(e.target===modal)closeM(); });\n  document.addEventListener('keydown',e=>{ if(e.key==='Escape')closeM(); });\n})();\n  \/* \u2500\u2500 LANGUAGE SWITCHER \u2500\u2500 *\/\n(function(){\n  const isThai=location.pathname.startsWith('\/th');\n  const switchUrl=isThai?'\/':'\/th\/';\n  const flagLabel=isThai?'\ud83c\uddec\ud83c\udde7 EN':'\ud83c\uddf9\ud83c\udded TH';\n  const flagLabelMob=isThai?'\ud83c\uddec\ud83c\udde7 English':'\ud83c\uddf9\ud83c\udded Thai';\n  const d=document.getElementById('tsj-lang-switch');\n  const m=document.getElementById('tsj-lang-switch-mob');\n  if(d){\n  d.href=switchUrl;\n  d.innerHTML=isThai\n    ?'<span style=\"margin-right:4px\">\ud83c\uddec\ud83c\udde7<\/span>EN'\n    :'<span style=\"margin-right:4px\">\ud83c\uddf9\ud83c\udded<\/span>TH';\n}\nif(m){\n  m.href=switchUrl;\n  m.innerHTML=isThai\n    ?'<span style=\"margin-right:6px\">\ud83c\uddec\ud83c\udde7<\/span>English'\n    :'<span style=\"margin-right:6px\">\ud83c\uddf9\ud83c\udded<\/span>Thai';\n}\n  if(isThai){\n    document.querySelectorAll('.tsj-ft-col h4').forEach(h=>{\n      if(h.textContent.trim()==='Navigate') h.textContent='\u0e19\u0e33\u0e17\u0e32\u0e07';\n      if(h.textContent.trim()==='Follow') h.textContent='\u0e15\u0e34\u0e14\u0e15\u0e32\u0e21';\n    });\n  }\n})();\n})();\n<\/script><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"blank.php","meta":{"footnotes":""},"class_list":["post-6","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/pages\/6","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/comments?post=6"}],"version-history":[{"count":52,"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/pages\/6\/revisions"}],"predecessor-version":[{"id":830,"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/pages\/6\/revisions\/830"}],"wp:attachment":[{"href":"https:\/\/thesafejoker.com\/th\/wp-json\/wp\/v2\/media?parent=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}