63.6 F
San Diego
Saturday, June 6, 2026
Tang Soo Do Karate Social Media
$0.00

No products in the cart.

TSDK Home

tsdk June 2, 2026 1 min read

/* ── Utility bar ─────────────────────────────────── */ .ts-util-bar { background:#f2f2f2;border-bottom:1px solid #ddd; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-size:12px;color:#444; } .ts-util-inner { max-width:1280px;margin:0 auto;padding:0 20px; display:flex;align-items:center;height:34px;gap:18px; } .ts-util-left { display:flex;align-items:center;gap:14px;flex:1; } .ts-util-right { display:flex;align-items:center;gap:10px; } .ts-util-bar a { color:#444;text-decoration:none; } .ts-util-bar a:hover { color:#c8102e; } .ts-util-social a { display:inline-flex;align-items:center;justify-content:center; width:24px;height:24px;border-radius:50%; color:#555;transition:color .15s; } .ts-util-social a:hover { color:#c8102e; } .ts-util-divider { color:#ccc; } /* ── Logo + Ad banner ────────────────────────────── */ .ts-logo-banner { background:#fff;border-bottom:1px solid #e8e8e8; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; } .ts-lb-inner { max-width:1280px;margin:0 auto;padding:12px 20px; display:flex;align-items:center;gap:20px;justify-content:space-between; } /* Logo block */ .ts-lb-logo { display:flex;flex-direction:column;align-items:center; text-decoration:none;flex-shrink:0;min-width:120px; background:transparent; padding:0; border-radius:0; } .ts-lb-logo-flags { display:flex;align-items:center;gap:6px;margin-bottom:6px; } .ts-lb-logo-flags img { height:32px;border:1px solid #ddd;border-radius:2px; } .ts-lb-logo-emblem { width:auto;height:80px;max-width:240px;object-fit:contain; } .ts-lb-logo-name { display:flex;align-items:center;gap:8px; font-size:13px;font-weight:900;color:#0f1e3c; text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;margin-top:6px; } .ts-lb-logo-name::before,.ts-lb-logo-name::after { display:none; } /* Ad slot */ .ts-lb-ad { flex:1;display:flex;align-items:stretch; background:#111;border-radius:6px;overflow:hidden; min-height:90px; } /* When all slides are image banners, lock to 728×90 */ .ts-lb-ad.ts-ban-img-only { background:transparent;min-height:0;flex:0 0 728px;max-width:728px; } .ts-lb-ad.ts-ban-img-only .ts-lb-banner-slide { height:90px;overflow:hidden; } .ts-lb-ad.ts-ban-img-only .ts-lb-banner-slide img { width:728px;max-width:728px;height:90px;object-fit:cover;display:block; } .ts-lb-ad-left { background:#111;padding:14px 20px;display:flex;flex-direction:column; justify-content:center;flex:1;min-width:0; } .ts-lb-ad-site { font-size:18px;font-weight:900;color:#fff;text-transform:uppercase; letter-spacing:.05em;line-height:1;margin-bottom:6px;display:flex;align-items:center;gap:8px; } .ts-lb-ad-site::after { content:'';display:block;flex:1;height:2px;background:#c8102e;max-width:100px; } .ts-lb-ad-flags { display:flex;gap:4px;margin-top:4px; } .ts-lb-ad-flags img { height:18px;border-radius:1px; } .ts-lb-ad-right { background:#1a1a1a;padding:14px 20px;display:flex;flex-direction:column; justify-content:center;align-items:flex-end;gap:10px;flex-shrink:0;min-width:280px; } .ts-lb-ad-text { font-size:14px;color:#fff;font-weight:700;text-align:right;line-height:1.35; } .ts-lb-ad-text em { font-style:normal;color:#fff;font-weight:900;font-size:16px; } .ts-lb-ad-btn { display:inline-block;border:2px solid #fff;color:#fff; padding:8px 22px;font-size:13px;font-weight:800;text-decoration:none; letter-spacing:.03em;transition:background .15s,color .15s;white-space:nowrap; } .ts-lb-ad-btn:hover { background:#fff;color:#111; } /* image-only ad override */ .ts-lb-ad-img-wrap { display:block;flex:1; } .ts-lb-ad-img-wrap img { width:100%;height:100%;object-fit:cover;display:block; } @media(max-width:700px) { .ts-util-left .ts-util-date { display:none; } /* hide date on mobile, keep weather */ .ts-lb-ad-right { min-width:auto; } .ts-lb-ad-text { font-size:12px; } }
°F | Saturday, June 6, 2026 | Login
// ── Weather widget ───────────────────────────────────────── // Uses wttr.in — one call, no geolocation permission needed, // returns city + temp + condition automatically from visitor IP. (function(){ var ICONS = { 'Sunny':'☀️','Clear':'☀️', 'Partly cloudy':'🌤','Partly Cloudy':'🌤', 'Cloudy':'☁️','Overcast':'☁️', 'Mist':'🌫','Fog':'🌫','Freezing fog':'🌫', 'Blizzard':'🌨','Blowing snow':'🌨', 'Light snow':'🌨','Moderate snow':'🌨','Heavy snow':'❄️', 'Light drizzle':'🌦','Freezing drizzle':'🌦', 'Light rain':'🌧','Moderate rain':'🌧','Heavy rain':'🌧', 'Light sleet':'🌨','Moderate sleet':'🌨', 'Thundery outbreaks possible':'⛈','Patchy rain possible':'🌦', 'Patchy snow possible':'🌨','Patchy light drizzle':'🌦', 'Patchy light rain':'🌦','Light rain shower':'🌦', 'Moderate or heavy rain shower':'🌧', 'Torrential rain shower':'⛈', 'Patchy light snow':'🌨','Light snow showers':'🌨', 'Moderate or heavy snow showers':'❄️', 'Light showers of ice pellets':'🌨', 'Moderate or heavy showers of ice pellets':'🌨', 'Patchy light rain with thunder':'⛈', 'Moderate or heavy rain with thunder':'⛈', 'Patchy light snow with thunder':'⛈', 'Moderate or heavy snow with thunder':'⛈', 'Blowing snow':'❄️','Ice pellets':'🌨', }; fetch('https://wttr.in/?format=j1') .then(function(r){ return r.json(); }) .then(function(d){ var cur = (d.current_condition || [{}])[0]; var area = ((d.nearest_area || [{}])[0].areaName || [{}])[0].value || ''; var temp = Math.round(parseFloat(cur.temp_F || cur.temp_C || 0)); var desc = (cur.weatherDesc || [{}])[0].value || ''; var icon = ICONS[desc] || '🌡'; // Use Fahrenheit; if only Celsius available convert if (!cur.temp_F && cur.temp_C) { temp = Math.round(parseFloat(cur.temp_C) * 9/5 + 32); } var icoEl = document.getElementById('ts-util-icon'); var tmpEl = document.getElementById('ts-util-temp'); var cityEl = document.getElementById('ts-util-city'); if (icoEl) icoEl.textContent = icon; if (tmpEl) tmpEl.textContent = temp; if (cityEl && area) cityEl.textContent = area; }) .catch(function(){ // Silent fail — widget stays as placeholder }); })(); /* ── Reset / base ─────────────────────────────── */ #ts-topnav *, #ts-topnav *::before, #ts-topnav *::after { box-sizing: border-box; } #ts-topnav { position:sticky;top:0;z-index:99999;background:#0f1e3c;box-shadow:0 2px 16px rgba(0,0,0,.4);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;/* needed so absolute mega panels anchor here */overflow:visible; } /* ── Main bar ─────────────────────────────────── */ .ts-tn-bar { max-width:1280px;margin:0 auto;padding:0 20px;display:flex;align-items:center;height:62px; } /* ── Logo ────────────────────────────────────── */ .ts-tn-logo { display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0;margin-right:28px; } .ts-tn-logo img { height:38px;width:auto;display:block; } .ts-tn-logo-text { font-size:15px;font-weight:900;color:#fff;white-space:nowrap;letter-spacing:.03em; } /* ── Nav list (desktop) ───────────────────────── */ .ts-tn-nav { display:flex;align-items:stretch;flex:1;list-style:none;margin:0;padding:0;gap:0; } .ts-tn-nav > li { position:static;display:flex;align-items:stretch; } .ts-tn-nav > li > a, .ts-tn-nav > li > button { display:inline-flex;align-items:center;gap:5px; padding:0 14px;height:62px; font-size:13px;font-weight:700; color:rgba(255,255,255,.82); text-decoration:none;background:none;border:none;cursor:pointer; white-space:nowrap;border-bottom:3px solid transparent; transition:color .15s,border-color .15s,background .15s; } .ts-tn-nav > li > a:hover, .ts-tn-nav > li > button:hover, .ts-tn-nav > li.ts-mega-open > a, .ts-tn-nav > li.ts-mega-open > button { color:#fff; background:rgba(255,255,255,.07); border-bottom-color:#c8102e; } .ts-tn-nav > li > a.ts-active { color:#fff;border-bottom-color:#c8102e; } /* caret */ .ts-tn-caret { width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);display:inline-block;transition:transform .2s; } .ts-mega-open .ts-tn-caret { transform:rotate(-135deg) translateY(-2px); } /* CTA button */ .ts-tn-cta-btn { display:inline-flex;align-items:center; background:#c8102e;color:#fff !important;border:none; padding:9px 20px;border-radius:5px;font-size:13px;font-weight:800; cursor:pointer;text-decoration:none;white-space:nowrap;margin-left:12px;flex-shrink:0; transition:background .15s,transform .15s;box-shadow:0 2px 10px rgba(200,16,46,.35); } .ts-tn-cta-btn:hover { background:#a30d25;transform:translateY(-1px); } /* ── Mega panel — drops BELOW the header bar ─── */ .ts-mega-panel { display:none; position:absolute; /* relative to sticky
*/ left:0;right:0; top:100%; /* flush under the nav bar */ background:#fff; box-shadow:0 12px 40px rgba(0,0,0,.22); border-top:3px solid #c8102e; z-index:99998; animation:tsMegaIn .18s ease; } @keyframes tsMegaIn { from{opacity:0;transform:translateY(-6px)} to{opacity:1;transform:translateY(0)} } .ts-mega-panel.ts-mega-visible { display:block; } .ts-mega-inner { max-width:1280px;margin:0 auto;padding:28px 24px;display:flex;gap:0; } /* columns */ .ts-mega-cols { display:flex;flex:1;gap:8px; } .ts-mega-col { flex:1;padding:0 16px;border-right:1px solid #f0f0f0; } .ts-mega-col:last-child { border-right:none; } .ts-mega-col-heading { font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.1em; color:#999;margin:0 0 14px;padding-bottom:8px;border-bottom:1px solid #f0f0f0; } .ts-mega-col ul { list-style:none;margin:0;padding:0; } .ts-mega-col ul li { margin-bottom:2px; } .ts-mega-col ul li a { display:flex;align-items:flex-start;gap:10px; padding:8px 10px;border-radius:7px;text-decoration:none; transition:background .12s; } .ts-mega-col ul li a:hover { background:#f7f8fa; } .ts-mega-col ul li a .ts-mi-icon { font-size:18px;flex-shrink:0;width:28px;height:28px; display:flex;align-items:center;justify-content:center; background:#f3f4f6;border-radius:6px;margin-top:1px; } .ts-mega-col ul li a .ts-mi-text .ts-mi-label { display:block;font-size:13px;font-weight:700;color:#1a1a1a;line-height:1.3; } .ts-mega-col ul li a .ts-mi-text .ts-mi-desc { display:block;font-size:11px;color:#888;margin-top:2px;line-height:1.4; } /* no-icon items (compact list) */ .ts-mega-col ul li a.ts-mi-compact { padding:7px 10px; } .ts-mega-col ul li a.ts-mi-compact .ts-mi-label { font-size:13px;font-weight:600;color:#333; } /* featured card */ .ts-mega-featured { width:240px;flex-shrink:0;margin-left:16px; background:linear-gradient(135deg,#0f1e3c 0%,#1a3a6e 100%); border-radius:10px;padding:24px 20px;display:flex;flex-direction:column; text-decoration:none;color:#fff;transition:transform .15s,box-shadow .15s; } .ts-mega-featured:hover { transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.2); } .ts-mega-featured.ts-feat-red { background:linear-gradient(135deg,#c8102e 0%,#8b0d20 100%); } .ts-mega-featured-title { font-size:16px;font-weight:800;margin:0 0 8px;line-height:1.25; } .ts-mega-featured-desc { font-size:12px;color:rgba(255,255,255,.72);margin:0 0 auto;line-height:1.5; } .ts-mega-featured-btn { display:inline-block;margin-top:20px;background:rgba(255,255,255,.18); color:#fff;padding:8px 16px;border-radius:5px;font-size:12px;font-weight:700; text-align:center;transition:background .15s; } .ts-mega-featured:hover .ts-mega-featured-btn { background:rgba(255,255,255,.28); } /* overlay — sits below the panel, covers page content */ .ts-mega-overlay { display:none;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:99990; } .ts-mega-overlay.ts-mega-visible { display:block; } /* ── Extra mega content types ────────────────── */ /* Image tile */ .ts-mega-img-tile { display:block;border-radius:8px;overflow:hidden;text-decoration:none; border:1px solid #eee;transition:box-shadow .15s,transform .15s; } .ts-mega-img-tile:hover { box-shadow:0 4px 16px rgba(0,0,0,.12);transform:translateY(-2px); } .ts-mega-img-tile img { width:100%;aspect-ratio:16/9;object-fit:cover;display:block; } .ts-mega-img-tile span { display:block;padding:8px 10px;font-size:12px;font-weight:700;color:#1a1a1a; background:#fff;border-top:1px solid #eee; } /* Map embed */ .ts-mega-map { border-radius:8px;overflow:hidden;border:1px solid #e0e0e0; } .ts-mega-map iframe { display:block;width:100%;height:180px;border:none; } /* Inline mini-form */ .ts-mega-form { background:#f7f8fa;border-radius:8px;padding:18px 16px; } .ts-mega-form h4 { font-size:13px;font-weight:800;color:#1a1a1a;margin:0 0 12px; } .ts-mega-form input,.ts-mega-form select { width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:5px; font-size:13px;margin-bottom:8px;background:#fff;color:#333;outline:none; } .ts-mega-form input:focus,.ts-mega-form select:focus { border-color:#c8102e; } .ts-mega-form button { width:100%;background:#c8102e;color:#fff;border:none;padding:9px; border-radius:5px;font-size:13px;font-weight:800;cursor:pointer;transition:background .15s; } .ts-mega-form button:hover { background:#a30d25; } /* ── Hamburger / mobile ───────────────────────── */ .ts-tn-burger { display:none;flex-direction:column;justify-content:center;gap:5px; background:none;border:none;cursor:pointer;padding:10px;margin-left:auto; } .ts-tn-burger span { display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .22s,opacity .22s; } .ts-tn-burger.ts-open span:nth-child(1) { transform:translateY(7px) rotate(45deg); } .ts-tn-burger.ts-open span:nth-child(2) { opacity:0; } .ts-tn-burger.ts-open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); } /* mobile drawer */ .ts-tn-drawer { display:none;background:#0d1a35; border-top:1px solid rgba(255,255,255,.08); max-height:0;overflow:hidden;transition:max-height .3s ease; } .ts-tn-drawer.ts-open { display:block;max-height:900px; } .ts-tn-drawer > ul { list-style:none;margin:0;padding:0; } .ts-tn-drawer > ul > li > a, .ts-tn-drawer > ul > li > button { display:flex;justify-content:space-between;align-items:center;width:100%; padding:13px 22px;font-size:14px;font-weight:700; color:rgba(255,255,255,.85);text-decoration:none; background:none;border:none;cursor:pointer; border-bottom:1px solid rgba(255,255,255,.06);text-align:left; } .ts-tn-drawer > ul > li > a:hover, .ts-tn-drawer > ul > li > button:hover { background:rgba(255,255,255,.06); } /* mobile sub-panel */ .ts-mob-sub { display:none;background:#0a1428; } .ts-mob-sub.ts-open { display:block; } .ts-mob-sub a { display:flex;align-items:center;gap:10px; padding:10px 22px 10px 32px;font-size:13px;font-weight:600; color:rgba(255,255,255,.7);text-decoration:none; border-bottom:1px solid rgba(255,255,255,.04); } .ts-mob-sub a:hover { color:#fff;background:rgba(255,255,255,.05); } .ts-mob-sub-heading { padding:10px 22px 6px 32px;font-size:10px;font-weight:800; text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.35); } @media (max-width:860px) { .ts-tn-nav, .ts-tn-cta-btn { display:none; } .ts-tn-burger { display:flex; } }
(function(){ var _openIdx = -1, _keepTimer = null; window.tsMegaOpen = function(uid, idx) { clearTimeout(_keepTimer); if (_openIdx === idx) return; tsMegaCloseAll(uid); _openIdx = idx; var panel = document.getElementById(uid + '_panel' + idx); var item = document.getElementById(uid + '_item' + idx); var ov = document.getElementById(uid + '_overlay'); if (panel) panel.classList.add('ts-mega-visible'); if (item) item.classList.add('ts-mega-open'); if (ov) ov.classList.add('ts-mega-visible'); }; window.tsMegaKeep = function(uid, idx) { clearTimeout(_keepTimer); }; window.tsMegaClose = function(uid, idx) { // 500ms grace period — enough time to move mouse from nav to panel _keepTimer = setTimeout(function(){ var panel = document.getElementById(uid + '_panel' + idx); var item = document.getElementById(uid + '_item' + idx); var ov = document.getElementById(uid + '_overlay'); if (panel) panel.classList.remove('ts-mega-visible'); if (item) item.classList.remove('ts-mega-open'); if (ov) ov.classList.remove('ts-mega-visible'); if (_openIdx === idx) _openIdx = -1; }, 500); }; window.tsMegaToggle = function(uid, idx) { if (_openIdx === idx) { tsMegaCloseAll(uid); } else { tsMegaOpen(uid, idx); } }; window.tsMegaCloseAll = function(uid) { clearTimeout(_keepTimer); document.querySelectorAll('#' + uid + ' .ts-mega-panel').forEach(function(p){ p.classList.remove('ts-mega-visible'); }); document.querySelectorAll('#' + uid + ' .ts-mega-open').forEach(function(li){ li.classList.remove('ts-mega-open'); }); var ov = document.getElementById(uid + '_overlay'); if (ov) ov.classList.remove('ts-mega-visible'); _openIdx = -1; }; // Mobile window.tsMobToggle = function(uid) { var d = document.getElementById(uid + '_drawer'); var b = document.getElementById(uid + '_burger'); if (!d) return; d.classList.toggle('ts-open'); if (b) b.classList.toggle('ts-open'); }; window.tsMobSub = function(id) { var el = document.getElementById(id); if (!el) return; el.classList.toggle('ts-open'); }; // Close mega on nav item hover (desktop) document.querySelectorAll('#ts-topnav .ts-tn-nav > li').forEach(function(li){ li.addEventListener('mouseenter', function(){ var btn = li.querySelector('button[onclick*="tsMegaToggle"]'); if (!btn) { tsMegaCloseAll('ts-topnav'); } }); }); // Close on Escape document.addEventListener('keydown', function(e){ if (e.key === 'Escape') tsMegaCloseAll('ts-topnav'); }); })();

Tang Soo Do Karate

Your Martial Arts School Directory & Guide

(function(){ var inp=document.getElementById('ts-hp-search-inp'); var drop=document.getElementById('ts-hp-search-drop'); var wrap=document.getElementById('ts-hp-search-wrap'); if(!inp||!drop)return; var AJAX="https:\/\/www.tangsoodokarate.com\/wp-admin\/admin-ajax.php",NONCE="9dd7af778f",SURL="https:\/\/www.tangsoodokarate.com\/directory\/?s="; var timer,lastQ=''; inp.addEventListener('input',function(){ clearTimeout(timer);var q=inp.value.trim(); if(q.length<2){drop.style.display='none';drop.innerHTML='';return;} if(q===lastQ)return; timer=setTimeout(function(){ lastQ=q;drop.innerHTML='
Searching…
';drop.style.display='block'; fetch(AJAX+'?action=ts_live_search&nonce='+encodeURIComponent(NONCE)+'&q='+encodeURIComponent(q),{credentials:'same-origin'}) .then(function(r){return r.json();}) .then(function(d){ if(!d||!d.success){drop.style.display='none';return;} var res=d.data.results||[],h=''; if(!res.length){h='
No results for '+q+'
';} else{ res.forEach(function(r){ var th=r.thumb?'' :'
'+(r.title||'?').charAt(0).toUpperCase()+'
'; h+='' +th+'' +''+r.title+'' +(r.meta?'📍 '+r.meta+'':'') +'' +''+r.type+'' +''; }); h+=''; } drop.innerHTML=h;drop.style.display='block'; }).catch(function(){drop.style.display='none';}); },220); }); document.addEventListener('click',function(e){if(wrap&&!wrap.contains(e.target))drop.style.display='none';}); })(); Find a School
#tstr_6a23f081178db { background: #0f1e3c; padding: 24px 0 28px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; } #tstr_6a23f081178db .ts-tr-header { max-width: 1280px; margin: 0 auto; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; gap: 16px; flex-wrap: wrap; } #tstr_6a23f081178db .ts-tr-title { color: #fff; font-size: 16px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; margin: 0; } /* Speed control — admin only, hidden for visitors via PHP */ #tstr_6a23f081178db .ts-tr-speed { display: flex; align-items: center; gap: 10px; background: rgba(255,255,255,.07); border-radius: 20px; padding: 5px 14px; border: 1px solid rgba(255,255,255,.12); } #tstr_6a23f081178db .ts-tr-speed label { font-size: 11px; font-weight: 700; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .06em; white-space: nowrap; } #tstr_6a23f081178db .ts-tr-speed input[type=range] { width: 80px; accent-color: #c8102e; cursor: pointer; } #tstr_6a23f081178db .ts-tr-speed .ts-spd-val { font-size: 11px; font-weight: 700; color: #c8102e; min-width: 16px; } /* No side padding — track runs full-bleed, no gap on right */ #tstr_6a23f081178db .ts-tr-outer { display: flex; align-items: center; position: relative; } #tstr_6a23f081178db .ts-tr-arrow { position: absolute; z-index: 10; width: 38px; height: 38px; border-radius: 50%; background: rgba(15,30,60,.75); border: 1px solid rgba(255,255,255,.25); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background .15s; flex-shrink: 0; } #tstr_6a23f081178db .ts-tr-arrow:hover { background: rgba(200,16,46,.85); } #tstr_6a23f081178db .ts-tr-arrow.ts-arrow-prev { left: 10px; } #tstr_6a23f081178db .ts-tr-arrow.ts-arrow-next { right: 10px; } /* Viewport: full width, no side padding, clips scrolling track */ #tstr_6a23f081178db .ts-tr-viewport { overflow: hidden; width: 100%; } @keyframes ts-tr-scroll-tstr_6a23f081178db { 0% { transform: translateX(0); } 100% { transform: translateX(-33.333%); } } #tstr_6a23f081178db .ts-tr-track { display: flex; gap: 0; /* no gap — cards are flush, padding inside each card */ width: max-content; animation: ts-tr-scroll-tstr_6a23f081178db 110s linear infinite; } #tstr_6a23f081178db .ts-tr-track.ts-paused { animation-play-state: paused; } #tstr_6a23f081178db:hover .ts-tr-track { animation-play-state: paused; } #tstr_6a23f081178db .ts-tr-card { transition: transform .15s, box-shadow .15s; margin-right: 3px; /* tiny seam instead of big gap */ } #tstr_6a23f081178db .ts-tr-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(0,0,0,.5); }

Trending Now

(function(){ // Speed levels: 1=very slow … 10=fast var speeds = {1:180,2:140,3:110,4:85,5:65,6:48,7:35,8:24,9:16,10:9}; var LS_KEY = 'ts_trend_speed'; // Restore saved speed from localStorage (function(){ var saved = parseInt(localStorage.getItem(LS_KEY) || '3'); var track = document.getElementById('tstr_6a23f081178db_track'); var spd = document.getElementById('tstr_6a23f081178db_spd'); var lbl = document.getElementById('tstr_6a23f081178db_spdval'); if (track) track.style.animationDuration = (speeds[saved]||110)+'s'; if (spd) spd.value = saved; if (lbl) lbl.textContent = saved; })(); window.tsTrSpeed = function(uid, val) { val = parseInt(val); var track = document.getElementById(uid + '_track'); var lbl = document.getElementById(uid + '_spdval'); if (!track) return; if (lbl) lbl.textContent = val; var dur = speeds[val] || 110; track.style.animationDuration = dur + 's'; // Save to localStorage so it persists try { localStorage.setItem(LS_KEY, val); } catch(e){} }; window.tsTrNudge = function(uid, dir) { var track = document.getElementById(uid + '_track'); if (!track) return; var card = track.querySelector('.ts-tr-card'); var step = card ? (card.offsetWidth + 14) : 234; track.classList.add('ts-paused'); // shift the animation phase var cur = parseFloat(track.dataset.tsDur || 28); var now = performance.now(); var elapsed = ((now % (cur * 1000)) / (cur * 1000)); var pct = elapsed - (dir * (step / track.scrollWidth)); pct = ((pct % 1) + 1) % 1; track.style.animationDelay = -(pct * cur) + 's'; clearTimeout(track._tsRT); track._tsRT = setTimeout(function(){ track.classList.remove('ts-paused'); }, 700); }; })(); #ts-fh-6a23f08119725 { max-width:1280px;margin:0 auto;padding:28px 20px 0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; } /* ── Section header ── */ #ts-fh-6a23f08119725 .ts-fh-header { display:flex;align-items:center;justify-content:space-between;margin-bottom:10px; } #ts-fh-6a23f08119725 .ts-fh-title { font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.08em; color:#1a1a1a;background:#fff;padding:5px 14px 5px 0; border-bottom:3px solid #1a1a1a;display:inline-block; } #ts-fh-6a23f08119725 .ts-fh-controls { display:flex;align-items:center;gap:10px; } #ts-fh-6a23f08119725 .ts-fh-arrow { width:34px;height:34px;border-radius:50%;background:#fff;border:1px solid #ddd; cursor:pointer;display:flex;align-items:center;justify-content:center; transition:background .15s,border-color .15s;flex-shrink:0; } #ts-fh-6a23f08119725 .ts-fh-arrow:hover { background:#0f1e3c;border-color:#0f1e3c; } #ts-fh-6a23f08119725 .ts-fh-arrow:hover svg { stroke:#fff; } #ts-fh-6a23f08119725 .ts-fh-dots { display:flex;gap:5px; } #ts-fh-6a23f08119725 .ts-fh-dot { width:7px;height:7px;border-radius:50%;background:#ddd;cursor:pointer;transition:background .2s,width .2s; } #ts-fh-6a23f08119725 .ts-fh-dot.active { background:#c8102e;width:20px;border-radius:4px; } /* ── Slider viewport ── */ #ts-fh-6a23f08119725 .ts-fh-viewport { position:relative;overflow:hidden;margin-bottom:4px; border-radius:2px; } #ts-fh-6a23f08119725 .ts-fh-track { display:flex; width:300%; } #ts-fh-6a23f08119725 .ts-fh-slide { width:33.333333333333%; display:grid;grid-template-columns:1fr 1fr;gap:4px;flex-shrink:0; } #ts-fh-6a23f08119725 .ts-fh-card { display:block;position:relative;overflow:hidden; text-decoration:none;aspect-ratio:16/9; } #ts-fh-6a23f08119725 .ts-fh-card img { width:100%;height:100%;object-fit:cover;display:block; transition:transform .6s ease; } #ts-fh-6a23f08119725 .ts-fh-card:hover img { transform:scale(1.04); } #ts-fh-6a23f08119725 .ts-fh-card .ts-fh-overlay { position:absolute;inset:0; background:linear-gradient(to top,rgba(0,0,0,.78) 0%,rgba(0,0,0,.18) 55%,transparent 100%); pointer-events:none; } #ts-fh-6a23f08119725 .ts-fh-card .ts-fh-caption { position:absolute;bottom:0;left:0;right:0;padding:18px 20px; } #ts-fh-6a23f08119725 .ts-fh-card .ts-fh-cat { display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase; letter-spacing:.08em;color:#c8102e;margin-bottom:6px; } #ts-fh-6a23f08119725 .ts-fh-card h3 { margin:0;font-size:clamp(13px,1.7vw,21px);font-weight:800;color:#fff; line-height:1.2;text-shadow:0 1px 8px rgba(0,0,0,.5); } /* ── Thumbnail strip ── */ #ts-fh-6a23f08119725 .ts-fh-strip { display:grid;gap:4px;margin-bottom:28px; } #ts-fh-6a23f08119725 .ts-fh-thumb { display:block;position:relative;overflow:hidden; text-decoration:none; height:160px; /* fixed short height — compact like tangsoodokarate.com */ } #ts-fh-6a23f08119725 .ts-fh-thumb img { width:100%;height:100%;object-fit:cover;display:block; transition:transform .5s ease; } #ts-fh-6a23f08119725 .ts-fh-thumb:hover img { transform:scale(1.06); } #ts-fh-6a23f08119725 .ts-fh-thumb .ts-fh-overlay { position:absolute;inset:0; background:linear-gradient(to top,rgba(0,0,0,.85) 0%,rgba(0,0,0,.1) 55%,transparent 100%); } #ts-fh-6a23f08119725 .ts-fh-thumb h4 { position:absolute;bottom:0;left:0;right:0;padding:8px 10px; margin:0;font-size:11px;font-weight:700;color:#fff; line-height:1.3;text-shadow:0 1px 4px rgba(0,0,0,.5); } @media(max-width:600px){ #ts-fh-6a23f08119725 .ts-fh-strip { grid-template-columns:1fr 1fr !important; } #ts-fh-6a23f08119725 .ts-fh-thumb { height:110px; } } /* ══════════════════════════════════════════════ * EFFECT CSS * ══════════════════════════════════════════════ */ #ts-fh-6a23f08119725 .ts-fh-track { transition: transform .55s cubic-bezier(.4,0,.2,1); }
Featured Articles
(function(){ var uid = 'ts-fh-6a23f08119725'; var effect = 'slide'; var total = 3; var cur = 0; var timer = null; var DELAY = 5000; function getSlides() { return document.querySelectorAll('#'+uid+' .ts-fh-slide'); } function getDots() { return document.querySelectorAll('#'+uid+' .ts-fh-dot'); } function buildDots() { var wrap = document.getElementById(uid+'_dots'); if (!wrap) return; wrap.innerHTML = ''; for (var i=0;i<total;i++) { var d = document.createElement('button'); d.className = 'ts-fh-dot' + (i===0?' active':''); d.setAttribute('aria-label','Slide '+(i+1)); (function(idx){ d.onclick = function(){ tsFhSet(uid, idx); }; })(i); wrap.appendChild(d); } } function show(idx) { var slides = getSlides(); var dots = getDots(); slides.forEach(function(s,i){ s.classList.toggle('active', i===idx); }); dots.forEach(function(d,i){ d.classList.toggle('active', i===idx); }); if (effect === 'slide') { var track = document.getElementById(uid+'_track'); if (track) track.style.transform = 'translateX(-'+(idx*(100/total))+'%)'; } cur = idx; } window.tsFhGo = function(u, dir) { if (u !== uid) return; clearTimeout(timer); show((cur + dir + total) % total); autoplay(); }; window.tsFhSet = function(u, idx) { if (u !== uid) return; clearTimeout(timer); show(idx); autoplay(); }; function autoplay() { timer = setTimeout(function(){ tsFhGo(uid, 1); }, DELAY); } // Pause on hover var vp = document.getElementById(uid+'_vp'); if (vp) { vp.addEventListener('mouseenter', function(){ clearTimeout(timer); }); vp.addEventListener('mouseleave', autoplay); } buildDots(); autoplay(); })();

Tang Soo Do Leadership

(function(){ var uid = 'ts-leader-1'; var posts = [{"url":"https:\/\/www.tangsoodokarate.com\/the-ripple-of-kindness\/","thumb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/11\/tsdk-ripple-768x620.jpg","thmb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/11\/tsdk-ripple-150x150.jpg","title":"The Ripple of Kindness"},{"url":"https:\/\/www.tangsoodokarate.com\/grand-master-young-h-kwon-a-legacy-of-excellence-in-traditional-korean-martial-arts\/","thumb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/tsdk-kwon-web-768x768.jpg","thmb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/tsdk-kwon-web-150x150.jpg","title":"Grand Master Young H. Kwon: A Legacy of Excellence in Traditional Korean Martial Arts"},{"url":"https:\/\/www.tangsoodokarate.com\/master-eric-r-king-a-martial-arts-journey-of-perseverance-and-excellence\/","thumb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/tsdk-master-king-1-768x768.jpg","thmb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/tsdk-master-king-1-150x150.jpg","title":"Master Eric R. King: A Martial Arts Journey of Perseverance and Excellence"},{"url":"https:\/\/www.tangsoodokarate.com\/the-inspiring-journey-of-master-clare-marsch-yuk-dan-master-at-allied-gardens-tang-soo-do\/","thumb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/Master-Clare-Marsch-768x768.jpg","thmb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/Master-Clare-Marsch-150x150.jpg","title":"The Inspiring Journey of Master Clare Marsch: Yuk Dan Master at Allied Gardens Tang Soo Do"},{"url":"https:\/\/www.tangsoodokarate.com\/master-kenneth-purnell-a-journey-of-dedication-and-martial-arts-wisdom\/","thumb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/tsdk-master-purnell-768x768.jpg","thmb":"https:\/\/www.tangsoodokarate.com\/wp-content\/uploads\/2024\/05\/tsdk-master-purnell-150x150.jpg","title":"Master Kenneth Purnell: A Journey of Dedication and Martial Arts Wisdom"}]; var perPage = 5; // 1 lead + 4 list var page = 0; var pages = Math.ceil(posts.length / perPage); function render(pg) { page = ((pg % pages) + pages) % pages; var offset = page * perPage; var lead = posts[offset]; var list = posts.slice(offset + 1, offset + perPage); // Lead (left) var limg = document.getElementById(uid + '_lead_img'); var llink = document.getElementById(uid + '_lead_link'); var ltitle= document.getElementById(uid + '_lead_title'); if (limg) { limg.src = lead.thumb; limg.alt = lead.title; } if (llink) llink.href = lead.url; if (ltitle) ltitle.textContent = lead.title; // List (right) var listEl = document.getElementById(uid + '_list'); if (!listEl) return; listEl.innerHTML = ''; list.forEach(function(p) { var row = document.createElement('a'); row.href = p.url; row.style.cssText = 'display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid #f0f0f0;text-decoration:none;color:inherit;'; var imgHtml = p.thmb ? '' : '
'; row.innerHTML = imgHtml + '

' + p.title.replace(//g,'>') + '

'; listEl.appendChild(row); }); } window.tsLeaderNav = window.tsLeaderNav || function(){}; window.tsLeaderNav = function(u, dir) { if (u === uid) render(page + dir); }; render(0); })();

Tang Soo Do History

@media(max-width:600px){ section div[style*="grid-template-columns:340px"]{grid-template-columns:1fr!important;} section div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important;} }

Latest Articles

#ts-podcast-the-martial-paradox-of-tang-soo-do { background: #0f1e3c; padding: 48px 24px; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 320px 1fr; gap: 48px; align-items: center; } /* Left column */ #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-art-wrap { position: relative; cursor: pointer; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 48px rgba(0,0,0,.55); aspect-ratio: 1/1; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-art-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-art-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg,#c8102e,#8b0d20); display: flex; align-items: center; justify-content: center; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-play-overlay { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.25); transition: background .2s; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-art-wrap:hover .sp-play-overlay { background: rgba(0,0,0,.38); } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-play-btn { width: 72px; height: 72px; border-radius: 50%; background: #c8102e; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 24px rgba(200,16,46,.6); transition: transform .15s, background .15s; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-art-wrap:hover .sp-play-btn { transform: scale(1.08); background: #a30d25; } /* Right column */ #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-title { font-size: clamp(22px,3vw,34px); font-weight: 900; color: #fff; margin: 0 0 8px; line-height: 1.15; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-desc { font-size: 14px; color: rgba(255,255,255,.6); margin: 0 0 24px; line-height: 1.6; } /* Progress bar */ #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-prog-row { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-prog-track { flex: 1; height: 4px; background: rgba(255,255,255,.15); border-radius: 2px; cursor: pointer; position: relative; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-prog-fill { height: 100%; background: #c8102e; border-radius: 2px; width: 0%; transition: width .1s linear; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-time { font-size: 11px; color: rgba(255,255,255,.45); flex-shrink: 0; } /* Episode list */ #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-ep { display: flex; align-items: center; gap: 14px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,.07); cursor: pointer; transition: background .12s; border-radius: 6px; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-ep:hover { background: rgba(255,255,255,.05); padding-left: 8px; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-ep.sp-playing { background: rgba(255,255,255,.06); padding-left: 8px; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-ep-num { font-size: 12px; font-weight: 800; color: rgba(255,255,255,.3); width: 28px; flex-shrink: 0; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-ep.sp-playing .sp-ep-num { color: #c8102e; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-ep-title { flex: 1; font-size: 14px; font-weight: 700; color: #fff; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-ep-dur { font-size: 12px; color: rgba(255,255,255,.4); flex-shrink: 0; } /* Now-playing label */ #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-now { font-size: 13px; font-weight: 700; color: rgba(255,255,255,.75); margin-bottom: 8px; min-height: 18px; } /* Share + listen row */ #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-bottom { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 20px; } @media(max-width:680px){ #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-inner { grid-template-columns: 1fr; gap: 28px; } #ts-podcast-the-martial-paradox-of-tang-soo-do .sp-art-wrap { max-width: 260px; margin: 0 auto; } }
The Martial Paradox of Tang Soo Do

🎙 The Martial Paradox of Tang Soo Do

Conversations with masters, champions, and leaders of the Tang Soo Do community.

Select an episode below
0:00
0:00
01 Tang Soo Do Paradox
(function(){ var uid = 'ts-podcast-the-martial-paradox-of-tang-soo-do'; var AJAX = 'https://www.tangsoodokarate.com/wp-admin/admin-ajax.php'; var NONCE = 'd76ba5262e'; var audio = document.getElementById(uid+'_audio'); var icon = document.getElementById(uid+'_icon'); var nowEl = document.getElementById(uid+'_now'); var fill = document.getElementById(uid+'_fill'); var curEl = document.getElementById(uid+'_cur'); var durEl = document.getElementById(uid+'_dur'); var loading = false; var curIdx = -1; var PLAY_SVG = ''; var PAUSE_SVG = ''; var SILENT = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA'; function fmt(s){ s=Math.floor(s||0); return Math.floor(s/60)+':'+(s%60<10?'0':'')+(s%60); } function xorDecode(b64p,b64k){ var p=atob(b64p),k=atob(b64k),o=''; for(var i=0;i<p.length;i++) o+=String.fromCharCode(p.charCodeAt(i)^k.charCodeAt(i)); return o; } function doFetch(idx){ var fd=new FormData(); fd.append('action','ts_pod_token'); fd.append('nonce',NONCE); fd.append('ep',idx); fetch(AJAX,{method:'POST',body:fd,credentials:'same-origin'}) .then(function(r){return r.json();}) .then(function(d){ loading=false; if(!d.success){if(nowEl)nowEl.textContent='Error loading';return;} var url=xorDecode(d.data.p,d.data.k); audio.pause(); audio.src=url; audio.load(); url=null; var p=audio.play(); if(p)p.catch(function(){if(nowEl)nowEl.textContent='Tap ▶ to play';}); }) .catch(function(){loading=false;if(nowEl)nowEl.textContent='Could not load';}); } function loadAndPlay(idx){ if(loading)return; loading=true; audio.src=SILENT; audio.load(); var u=audio.play(); var go=function(){doFetch(idx);}; if(u)u.then(go).catch(go); else go(); } window.spPodPlay=function(uid2,idx){ if(uid2!==uid)return; curIdx=idx; document.querySelectorAll('#'+uid+' .sp-ep').forEach(function(el){el.classList.remove('sp-playing');}); var epEl=document.getElementById(uid+'_ep'+idx); if(epEl){epEl.classList.add('sp-playing'); var t=epEl.querySelector('.sp-ep-title'); if(nowEl&&t)nowEl.textContent=t.textContent;} loadAndPlay(idx); }; window.spPodToggle=function(uid2){ if(uid2!==uid)return; if(!audio.src||audio.src.indexOf('data:audio')===0){ if(curIdx= dropH || window.innerHeight - r.bottom >= r.top) { drop.style.top = (r.bottom+8)+'px'; drop.style.bottom='auto'; } else { drop.style.bottom=(window.innerHeight-r.top+8)+'px'; drop.style.top='auto'; } var re = window.innerWidth - r.right; drop.style.right = Math.max(8,re)+'px'; drop.style.left='auto'; } drop.style.display='block'; } else { origToggle(u, triggerEl); } }; })(); document.addEventListener('click',function(e){ var drop=document.getElementById(shareDropId); if(!drop||drop.style.display!=='block')return; if(!drop.contains(e.target)&&!e.target.closest('[onclick*="'+uid+'_share"]')){drop.style.display='none';} }); // ── Share functions for this splitscreen player ──────────────────── // podcast_share_and_badges() is not called for the splitscreen layout, // so we define the share helpers here, in this closure, capturing podUrl. var podUrl = window.location.href.split('#')[0] + '#' + uid; var podTitle = 'The Martial Paradox of Tang Soo Do'; var podDesc = 'Conversations with masters, champions, and leaders of the Tang Soo Do community.'; function spCopyUrl() { var copied = false; try { var ta = document.createElement('textarea'); ta.value = podUrl; ta.style.cssText = 'position:fixed;top:-9999px;left:-9999px;'; document.body.appendChild(ta); ta.select(); copied = document.execCommand('copy'); document.body.removeChild(ta); } catch(x){} if (!copied && navigator.clipboard && navigator.clipboard.writeText) { navigator.clipboard.writeText(podUrl).catch(function(){}); } var btn = document.getElementById(uid+'_copyBtn'); if (btn) { var prev = btn.textContent; btn.textContent = '✓ Copied!'; setTimeout(function(){ btn.textContent = prev; }, 2500); } } window.tsPodShareNative = function() { if (navigator.share) { navigator.share({title:podTitle, text:podDesc, url:podUrl}).catch(function(){}); } else { spCopyUrl(); } }; window.tsPodShareFb = function(e) { if (e) e.preventDefault(); window.open('https://www.facebook.com/sharer/sharer.php?u=' + encodeURIComponent(podUrl), '_blank', 'width=600,height=400'); }; window.tsPodShareX = function(e) { if (e) e.preventDefault(); window.open('https://twitter.com/intent/tweet?text=' + encodeURIComponent(podTitle) + '&url=' + encodeURIComponent(podUrl), '_blank', 'width=600,height=400'); }; window.tsPodShareWa = function(e) { if (e) e.preventDefault(); window.open('https://wa.me/?text=' + encodeURIComponent(podTitle + ' ' + podUrl), '_blank'); }; // Override tsPodCopy so the copy button in this player's dropdown works // (there is no _urlinput element in the splitscreen dropdown). window.tsPodCopy = function(u) { if (u === uid+'_share') { spCopyUrl(); } }; audio.addEventListener('play', function(){if(icon)icon.innerHTML=PAUSE_SVG;}); audio.addEventListener('pause', function(){if(icon)icon.innerHTML=PLAY_SVG;}); audio.addEventListener('ended', function(){if(icon)icon.innerHTML=PLAY_SVG;}); audio.addEventListener('timeupdate',function(){ if(!audio.duration)return; if(fill)fill.style.width=(audio.currentTime/audio.duration*100)+'%'; if(curEl)curEl.textContent=fmt(audio.currentTime); }); audio.addEventListener('loadedmetadata',function(){if(durEl)durEl.textContent=fmt(audio.duration);}); document.getElementById(uid).addEventListener('contextmenu',function(e){e.preventDefault();}); })();

tsdk
Share: Facebook Twitter LinkedIn

Related Articles