<!-- SS · part 7 -->
der:1px solid var(--g) !important;color:var(--g2) !important;border-radius:10px !important;padding:9px 12px !important;font-size:13px !important;margin:8px 0 !important}
#sp .sp-test code{color:#fff !important;background:#000 !important;padding:1px 5px !important;border-radius:4px !important}
#sp .sp-note{background:#160a0c !important;border:1px solid var(--rd) !important;border-radius:10px !important;padding:9px 12px !important;font-size:14px !important;margin:6px 0 12px !important}
#sp .sp-lic{margin:14px 0 !important;color:#ccc !important;font-size:13px !important}
#sp .sp-lic summary{cursor:pointer !important;color:var(--g2) !important;font-weight:700 !important}
#sp .sp-back{display:inline-block !important;margin-top:8px !important;font-size:14px !important}
#sp .sp-box{background:#0b0b0c !important;border:1px solid #2a1a1c !important;border-radius:12px !important;padding:18px !important;margin:10px 0 !important}
#sp .sp-store-h{margin-bottom:12px !important}
#sp .sp-grid{display:grid !important;grid-template-columns:repeat(auto-fill,minmax(200px,1fr)) !important;gap:16px !important;margin-top:14px !important}
#sp .sp-card-s{display:flex !important;flex-direction:column !important;gap:4px !important;text-decoration:none !important;color:#fff !important;background:#0b0b0c !important;border:1px solid #2a1a1c !important;border-radius:12px !important;padding:10px !important;transition:transform .12s,border-color .12s !important}
#sp .sp-card-s:hover{transform:translateY(-3px) !important;border-color:var(--g) !important}
#sp .sp-card-s img{width:100% !important;aspect-ratio:1 !important;height:auto !important;object-fit:cover !important;border-radius:8px !important;border:1px solid var(--rd) !important;background:#111 !important}
#sp .sp-cs-t{font-weight:800 !important;color:var(--g) !important;font-size:16px !important}
#sp .sp-cs-a{color:var(--mu) !important;font-size:13px !important}
#sp .sp-cs-p{color:#fff !important;font-weight:800 !important}
#sp .sp-dl{text-align:center !important}
#sp .sp-dl-art{width:160px !important;height:160px !important;border-radius:10px !important;border:2px solid var(--g) !important;margin:10px auto !important;display:block !important}
#sp .sp-dl-btns{display:flex !important;flex-wrap:wrap !important;gap:12px !important;justify-content:center !important;margin:14px 0 !important}
#sp .sp-stats{display:grid !important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr)) !important;gap:10px !important}
#sp .sp-stats div{background:#060606 !important;border:1px solid var(--rd) !important;border-radius:10px !important;padding:10px !important}
#sp .sp-stats b{display:block !important;font-size:22px !important;color:var(--g) !important}
#sp .sp-stats span{font-size:11px !important;color:var(--mu) !important}
#sp .sp-ok{color:#7be38a !important;font-weight:700 !important}
#sp .sp-no{color:var(--g2) !important;font-weight:700 !important}
#sp .sp-tw{overflow-x:auto !important}
#sp .sp-t{width:100% !important;border-collapse:collapse !important;font-size:13px !important;min-width:640px !important}
#sp .sp-t th{text-align:left !important;color:var(--g2) !important;border-bottom:1px solid var(--rd) !important;padding:6px !important;font-size:11px !important;letter-spacing:.08em !important;text-transform:uppercase !important}
#sp .sp-t td{border-bottom:1px solid #1d1012 !important;padding:6px !important;vertical-align:top !important}
#sp .sp-st-pending td{color:#777 !important}
#sp .sp-st-refunded td{color:#d77 !important}
@media (max-width:760px){#sp{padding:14px !important;border-radius:0 !important;margin:0 -4px 20px !important}
#sp .sp-song{grid-template-columns:1fr !important;gap:16px !important}
#sp .sp-art{max-width:420px !important}}
#sp .fx-ff{display:flex !important;flex-wrap:wrap !important;gap:4px !important}
#sp .fx-ff select,#sp .fx-ff input,#sp form.sp-box select{background:#0a0a0a !important;color:#fff !important;border:1px solid #3a2326 !important;border-radius:6px !important;padding:4px !important;font-size:12px !important}
#sp .fx-ff button{background:#e3122c !important;color:#fff !important;border:0 !important;border-radius:6px !important;padding:4px 10px !important;font-weight:700 !important;cursor:pointer !important}

===== FILE: public/ss/song.js =====
/* Epistles song page preview player (30-second clip only). */
(function () {
  'use strict';
  function fmt(t) { t = Math.max(0, Math.floor(t || 0)); return Math.floor(t / 60) + ':' + ('0' + (t % 60)).slice(-2); }
  Array.prototype.forEach.call(document.querySelectorAll('.sp-player'), function (p) {
    var a = new Audio(); a.preload = 'none'; a.src = p.getAttribute('data-src');
    var btn = p.querySelector('.sp-play'), fill = p.querySelector('.sp-fill'), time = p.querySelector('.sp-time'), bar = p.querySelector('.sp-bar');
    function dur() { return isFinite(a.duration) && a.duration > 0 ? Math.min(a.duration, 30) : 30; }
    function ui() { fill.style.width = (100 * a.currentTime / du