// SKEight — shared visual primitives // Brand mark: an original octagonal SK monogram. Eight sides for "eight". // Two interior strokes form a stylised SK + an axial cross. function SKMark({ size = 26, color = "currentColor" }) { const r = size / 2; // octagon points const pts = []; for (let i = 0; i < 8; i++) { const a = (Math.PI / 4) * i + Math.PI / 8; pts.push([r + r * Math.cos(a) * 0.95, r + r * Math.sin(a) * 0.95]); } const poly = pts.map(p => p.join(",")).join(" "); return ( ); } // A small SVG icon for App Store apple function AppleGlyph({ size = 22, color = "currentColor" }) { return ( ); } // Decorative "bagua-inspired" eight-radial mark for hero (original, not the actual bagua) function EightMark({ size = 200, color = "currentColor", opacity = 0.5 }) { const r = size / 2; const strokes = []; for (let i = 0; i < 8; i++) { const a = (Math.PI / 4) * i; const x1 = r + Math.cos(a) * r * 0.32; const y1 = r + Math.sin(a) * r * 0.32; const x2 = r + Math.cos(a) * r * 0.88; const y2 = r + Math.sin(a) * r * 0.88; strokes.push( ); } return ( ); } // Footer + nav for static sub-pages can be rendered via this function SiteNav({ active }) { const links = [ { href: "index.html#features", label: "Features" }, { href: "features.html", label: "Method", id: "features" }, { href: "support.html", label: "Support", id: "support" }, { href: "privacy.html", label: "Privacy", id: "privacy" }, ]; return ( ); } function SiteFooter() { return ( ); } Object.assign(window, { SKMark, AppleGlyph, EightMark, SiteNav, SiteFooter });