{"id":92,"date":"2026-04-12T20:38:55","date_gmt":"2026-04-12T18:38:55","guid":{"rendered":"http:\/\/ocode360.com\/index.php\/home\/"},"modified":"2026-04-13T21:27:04","modified_gmt":"2026-04-13T19:27:04","slug":"home","status":"publish","type":"page","link":"https:\/\/ocode360.com\/","title":{"rendered":"Home"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>oCode360 \u2014 Precision Skills for Analytics Practitioners<\/title>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\" \/>\n  <link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin \/>\n  <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Syne:wght@400;600;700;800&#038;family=DM+Mono:ital,wght@0,300;0,400;1,300&#038;family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;1,9..40,300&#038;display=swap\" rel=\"stylesheet\" \/>\n\n  <style>\n    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }\n\n    :root {\n      --bg:        #ffffff;\n      --surface:   #f6f6fa;\n      --border:    #e0e0ec;\n      --accent:    #00b89e;\n      --accent2:   #ff6b35;\n      --text:      #0a0a1f;\n      --muted:     #6b6b85;\n      --subtle:    #eeeef5;\n    }\n\n    html { scroll-behavior: smooth; }\n\n    body {\n      background: var(--bg);\n      color: var(--text);\n      font-family: 'DM Sans', sans-serif;\n      font-size: 16px;\n      line-height: 1.6;\n      overflow-x: hidden;\n    }\n\n    body::before { content: none; }\n\n    \/* \u2500\u2500 NAV \u2500\u2500 *\/\n    nav {\n      position: fixed;\n      top: 0; left: 0; right: 0;\n      z-index: 100;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      padding: 1.25rem 5%;\n      border-bottom: 1px solid transparent;\n      transition: border-color 0.3s, background 0.3s, backdrop-filter 0.3s;\n    }\n    nav.scrolled {\n      border-color: var(--border);\n      background: #f0f0f4;\n      backdrop-filter: blur(16px);\n    }\n\n    .nav-logo {\n      font-family: 'Syne', sans-serif;\n      font-weight: 800;\n      font-size: 1.2rem;\n      letter-spacing: -0.02em;\n      color: var(--text);\n      text-decoration: none;\n    }\n    .nav-logo span { color: var(--accent); }\n\n    .nav-links { flex: 1; justify-content: center;\n      display: flex;\n      gap: 3.5rem;\n      list-style: none;\n    }\n    .nav-links a {\n      font-family: 'DM Mono', monospace;\n      font-size: 1.05rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: var(--muted);\n      text-decoration: none;\n      transition: color 0.2s;\n      position: relative;\n    }\n    .nav-links a::after {\n      content: '';\n      position: absolute;\n      bottom: -4px; left: 0; right: 0;\n      height: 1px;\n      background: var(--accent);\n      transform: scaleX(0);\n      transition: transform 0.2s;\n    }\n    .nav-links a:hover { color: var(--text); }\n    .nav-links a:hover::after { transform: scaleX(1); }\n\n    .nav-cta {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.85rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: #ffffff;\n      background: var(--accent);\n      border: none;\n      padding: 0.6rem 1.4rem;\n      cursor: pointer;\n      text-decoration: none;\n      transition: opacity 0.2s;\n    }\n    .nav-cta:hover { opacity: 0.85; }\n    \/* \u2500\u2500 NAV ICONS \u2500\u2500 *\/\n    .nav-icons {\n      display: flex;\n      align-items: center;\n      gap: 0.25rem;\n      margin-right: 0.75rem;\n    }\n    .nav-icon {\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      width: 36px;\n      height: 36px;\n      color: var(--muted);\n      text-decoration: none;\n      transition: color 0.2s;\n      position: relative;\n    }\n    .nav-icon:hover { color: var(--accent); }\n    .nav-icon svg { width: 20px; height: 20px; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }\n    .nav-cart-count {\n      position: absolute;\n      top: 2px; right: 2px;\n      background: var(--accent);\n      color: #fff;\n      font-family: 'DM Mono', monospace;\n      font-size: 0.55rem;\n      font-weight: 700;\n      min-width: 16px;\n      height: 16px;\n      border-radius: 8px;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      padding: 0 3px;\n      opacity: 0;\n      transition: opacity 0.2s;\n    }\n    .nav-cart-count.has-items { opacity: 1; }\n\n\n    \/* \u2500\u2500 HERO \u2500\u2500 *\/\n    #home {\n      min-height: 100vh;\n      display: flex;\n      flex-direction: column;\n      justify-content: center;\n      padding: 10rem max(3rem, calc(50% - 560px)) calc(50% - 560px)) 6rem;\n      position: relative;\n      overflow: hidden;\n    }\n\n    .hero-grid-line {\n      position: absolute;\n      top: 0; bottom: 0;\n      width: 1px;\n      background: var(--border);\n      opacity: 0.6;\n    }\n    .hero-grid-line:nth-child(1) { left: 20%; }\n    .hero-grid-line:nth-child(2) { left: 40%; }\n    .hero-grid-line:nth-child(3) { left: 60%; }\n    .hero-grid-line:nth-child(4) { left: 80%; }\n\n    .hero-glow {\n      position: absolute;\n      top: -20%;\n      right: -10%;\n      width: 600px;\n      height: 600px;\n      background: radial-gradient(circle, rgba(0,184,158,0.07) 0%, transparent 65%);\n      pointer-events: none;\n    }\n\n    .hero-eyebrow {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.72rem;\n      letter-spacing: 0.15em;\n      text-transform: uppercase;\n      color: var(--accent);\n      margin-bottom: 1.5rem;\n      display: flex;\n      align-items: center;\n      gap: 0.75rem;\n      opacity: 0;\n      animation: fadeUp 0.6s 0.2s ease forwards;\n    }\n    .hero-eyebrow::before {\n      content: '';\n      display: block;\n      width: 32px;\n      height: 1px;\n      background: var(--accent);\n    }\n\n    .hero-headline {\n      font-family: 'Syne', sans-serif;\n      font-weight: 800;\n      font-size: clamp(2.5rem, 5vw, 4.5rem);\n      line-height: 1.0;\n      letter-spacing: -0.03em;\n      max-width: 900px;\n      margin-bottom: 1.75rem;\n      color: var(--text);\n      opacity: 0;\n      animation: fadeUp 0.6s 0.35s ease forwards;\n    }\n    .hero-headline .accent { color: var(--accent); }\n    .hero-headline .accent2 { color: var(--accent2); }\n\n    .hero-sub {\n      font-size: 1.1rem;\n      color: var(--muted);\n      max-width: 520px;\n      line-height: 1.7;\n      margin-bottom: 2.5rem;\n      opacity: 0;\n      animation: fadeUp 0.6s 0.5s ease forwards;\n    }\n\n    .hero-cta-row {\n      display: flex;\n      gap: 1rem;\n      flex-wrap: wrap;\n      opacity: 0;\n      animation: fadeUp 0.6s 0.65s ease forwards;\n    }\n\n    .btn-primary {\n      display: inline-block;\n      font-family: 'DM Mono', monospace;\n      font-size: 0.75rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: #ffffff;\n      background: var(--accent);\n      padding: 0.9rem 2rem;\n      text-decoration: none;\n      transition: opacity 0.2s;\n    }\n    .btn-primary:hover { opacity: 0.85; }\n\n    .btn-outline {\n      display: inline-block;\n      font-family: 'DM Mono', monospace;\n      font-size: 0.75rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--accent);\n      border: 1px solid var(--accent);\n      padding: 0.9rem 2rem;\n      text-decoration: none;\n      transition: background 0.2s, color 0.2s;\n    }\n    .btn-outline:hover {\n      background: var(--accent);\n      color: #ffffff;\n    }\n\n    .btn-ghost {\n      display: inline-block;\n      font-family: 'DM Mono', monospace;\n      font-size: 0.75rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--muted);\n      border: 1px solid var(--border);\n      padding: 0.9rem 2rem;\n      text-decoration: none;\n      transition: border-color 0.2s, color 0.2s;\n    }\n    .btn-ghost:hover {\n      border-color: var(--text);\n      color: var(--text);\n    }\n\n    .hero-stat-row {\n      display: flex;\n      gap: 3rem;\n      margin-top: 5rem;\n      padding-top: 3rem;\n      border-top: 1px solid var(--border);\n      opacity: 0;\n      animation: fadeUp 0.6s 0.8s ease forwards;\n    }\n    .hero-stat-num {\n      font-family: 'Syne', sans-serif;\n      font-size: 2rem;\n      font-weight: 700;\n      color: var(--text);\n      letter-spacing: -0.03em;\n    }\n    .hero-stat-num span { color: var(--accent); }\n    .hero-stat-label {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.7rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--muted);\n      margin-top: 0.2rem;\n    }\n\n    \/* \u2500\u2500 SECTION SHARED \u2500\u2500 *\/\n    section {\n      padding: 7rem max(3rem, calc(50% - 560px));\n      position: relative;\n    }\n\n    .section-eyebrow {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.72rem;\n      letter-spacing: 0.15em;\n      text-transform: uppercase;\n      color: var(--accent);\n      margin-bottom: 1rem;\n      display: flex;\n      align-items: center;\n      gap: 0.75rem;\n    }\n    .section-eyebrow::before {\n      content: '';\n      display: block;\n      width: 24px;\n      height: 1px;\n      background: var(--accent);\n    }\n\n    .section-title {\n      font-family: 'Syne', sans-serif;\n      font-weight: 700;\n      font-size: clamp(2rem, 3.5vw, 3rem);\n      letter-spacing: -0.03em;\n      line-height: 1.1;\n      margin-bottom: 1.25rem;\n      color: var(--text);\n    }\n\n    \/* \u2500\u2500 OFFERINGS \u2500\u2500 *\/\n    #courses {\n      background: var(--surface);\n      border-top: 1px solid var(--border);\n      border-bottom: 1px solid var(--border);\n    }\n\n    .coming-header {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 4rem;\n      align-items: end;\n      margin-bottom: 4rem;\n    }\n    .coming-desc {\n      color: var(--muted);\n      font-size: 1rem;\n      line-height: 1.75;\n      align-self: start;\n      padding-top: 1rem;\n    }\n\n    .cards-grid {\n      display: grid;\n      grid-template-columns: repeat(3, 1fr);\n      gap: 1.5px;\n      background: var(--border);\n      border: 1px solid var(--border);\n    }\n\n    .card {\n      background: var(--bg);\n      padding: 2.5rem;\n      position: relative;\n      overflow: hidden;\n      transition: background 0.25s;\n    }\n    .card:hover { background: var(--subtle); }\n\n    .card-tag {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.65rem;\n      letter-spacing: 0.15em;\n      text-transform: uppercase;\n      color: var(--accent);\n      margin-bottom: 1.25rem;\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n    }\n    .card-tag::before {\n      content: '';\n      width: 6px; height: 6px;\n      border-radius: 50%;\n      background: var(--accent);\n      display: block;\n    }\n    .card-tag.tools-tag { color: var(--accent2); }\n    .card-tag.tools-tag::before { background: var(--accent2); }\n    .card-tag.coaching-tag { color: #7c5cbf; }\n    .card-tag.coaching-tag::before { background: #7c5cbf; }\n\n    .card-title {\n      font-family: 'Syne', sans-serif;\n      font-size: 1.35rem;\n      font-weight: 700;\n      margin-bottom: 0.75rem;\n      letter-spacing: -0.02em;\n      color: var(--text);\n    }\n\n    .card-body {\n      color: var(--muted);\n      font-size: 0.9rem;\n      line-height: 1.7;\n      margin-bottom: 2rem;\n    }\n\n    .card-status {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.68rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--muted);\n      border: 1px solid var(--border);\n      display: inline-block;\n      padding: 0.35rem 0.75rem;\n    }\n    .card-status.live {\n      color: var(--accent);\n      border-color: var(--accent);\n    }\n\n    .card-link {\n      display: inline-block;\n      font-family: 'DM Mono', monospace;\n      font-size: 0.68rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--accent);\n      text-decoration: none;\n      margin-top: 1rem;\n      transition: opacity 0.2s;\n    }\n    .card-link:hover { opacity: 0.7; }\n    .card-link::after { content: ' \u2192'; }\n\n    .card-corner {\n      position: absolute;\n      bottom: 1.5rem;\n      right: 1.5rem;\n      font-family: 'Syne', sans-serif;\n      font-size: 4rem;\n      font-weight: 800;\n      color: var(--border);\n      line-height: 1;\n      opacity: 0.6;\n    }\n\n    \/* \u2500\u2500 COACHING \u2500\u2500 *\/\n    #coaching {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 6rem;\n      align-items: center;\n    }\n\n    .coaching-visual { position: relative; }\n    .coaching-box {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      padding: 2.5rem;\n    }\n    .coaching-box-label {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.68rem;\n      letter-spacing: 0.12em;\n      text-transform: uppercase;\n      color: var(--muted);\n      margin-bottom: 1.5rem;\n    }\n    .coaching-quote {\n      font-family: 'Syne', sans-serif;\n      font-size: 1.5rem;\n      font-weight: 600;\n      line-height: 1.35;\n      letter-spacing: -0.02em;\n      margin-bottom: 2rem;\n      color: var(--text);\n    }\n    .coaching-quote span { color: var(--accent); }\n\n    .coaching-list {\n      list-style: none;\n      display: flex;\n      flex-direction: column;\n      gap: 0.75rem;\n    }\n    .coaching-list li {\n      font-size: 0.88rem;\n      color: var(--muted);\n      display: flex;\n      align-items: flex-start;\n      gap: 0.75rem;\n    }\n    .coaching-list li::before {\n      content: '\u2192';\n      color: var(--accent);\n      flex-shrink: 0;\n      font-family: 'DM Mono', monospace;\n    }\n\n    .accent-box {\n      position: absolute;\n      top: -1rem;\n      right: -1rem;\n      width: 80px;\n      height: 80px;\n      border: 1px solid var(--accent);\n      opacity: 0.25;\n    }\n\n    .coaching-content .section-title { max-width: 480px; }\n    .coaching-content p {\n      color: var(--muted);\n      font-size: 0.95rem;\n      line-height: 1.75;\n      margin-bottom: 2rem;\n    }\n\n    \/* \u2500\u2500 TOOLS \u2500\u2500 *\/\n    #tools {\n      background: var(--surface);\n      border-top: 1px solid var(--border);\n      border-bottom: 1px solid var(--border);\n    }\n\n    .tools-inner {\n      display: grid;\n      grid-template-columns: 1fr 2fr;\n      gap: 5rem;\n      align-items: start;\n    }\n\n    .tools-list {\n      display: flex;\n      flex-direction: column;\n      gap: 1px;\n      background: var(--border);\n      border: 1px solid var(--border);\n    }\n    .tool-item {\n      background: var(--bg);\n      padding: 1.5rem 2rem;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      transition: background 0.2s;\n      cursor: default;\n    }\n    .tool-item:hover { background: var(--subtle); }\n    .tool-item-name {\n      font-family: 'Syne', sans-serif;\n      font-weight: 600;\n      font-size: 0.95rem;\n      color: var(--text);\n    }\n    .tool-item-type {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.65rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--accent2);\n    }\n    .tool-item-badge {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.6rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      padding: 0.2rem 0.5rem;\n    }\n    .tool-item-badge.live {\n      color: var(--accent);\n      border: 1px solid var(--accent);\n    }\n    .tool-item-badge.soon {\n      color: var(--muted);\n      border: 1px solid var(--border);\n    }\n\n    \/* \u2500\u2500 ABOUT \u2500\u2500 *\/\n    #about {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 6rem;\n      align-items: center;\n    }\n\n    .about-content p {\n      color: var(--muted);\n      font-size: 0.95rem;\n      line-height: 1.8;\n      margin-bottom: 1.25rem;\n    }\n    .about-content p strong { color: var(--text); font-weight: 600; }\n\n    .about-credentials {\n      display: flex;\n      flex-wrap: wrap;\n      gap: 0.5rem;\n      margin-top: 2rem;\n    }\n    .cred {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.68rem;\n      letter-spacing: 0.08em;\n      text-transform: uppercase;\n      color: var(--muted);\n      border: 1px solid var(--border);\n      padding: 0.35rem 0.75rem;\n    }\n\n    .about-visual { position: relative; }\n    .about-frame {\n      background: var(--surface);\n      border: 1px solid var(--border);\n      padding: 3rem;\n      position: relative;\n    }\n    .about-frame::before {\n      content: '';\n      position: absolute;\n      top: -8px; left: -8px; right: 8px; bottom: 8px;\n      border: 1px solid var(--border);\n      z-index: -1;\n    }\n\n    .about-name {\n      font-family: 'Syne', sans-serif;\n      font-size: 1.75rem;\n      font-weight: 800;\n      letter-spacing: -0.03em;\n      margin-bottom: 0.25rem;\n      color: var(--text);\n    }\n    .about-title-role {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.72rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--accent);\n      margin-bottom: 2rem;\n    }\n\n    .about-stats {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1.5rem;\n      margin-top: 2rem;\n      padding-top: 2rem;\n      border-top: 1px solid var(--border);\n    }\n    .about-stat-num {\n      font-family: 'Syne', sans-serif;\n      font-size: 1.75rem;\n      font-weight: 700;\n      letter-spacing: -0.03em;\n      color: var(--text);\n    }\n    .about-stat-num span { color: var(--accent); }\n    .about-stat-label {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.65rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--muted);\n    }\n\n    \/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n    footer {\n      background: var(--surface);\n      border-top: 1px solid var(--border);\n      padding: 3rem max(3rem, calc(50% - 560px));\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n    }\n\n    .footer-logo {\n      font-family: 'Syne', sans-serif;\n      font-weight: 800;\n      font-size: 1rem;\n      letter-spacing: -0.02em;\n      color: var(--text);\n      text-decoration: none;\n    }\n    .footer-logo span { color: var(--accent); }\n\n    .footer-links {\n      display: flex;\n      gap: 2rem;\n      list-style: none;\n    }\n    .footer-links a {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.78rem;\n      letter-spacing: 0.1em;\n      text-transform: uppercase;\n      color: var(--muted);\n      text-decoration: none;\n      transition: color 0.2s;\n    }\n    .footer-links a:hover { color: var(--text); }\n\n    .footer-copy {\n      font-family: 'DM Mono', monospace;\n      font-size: 0.75rem;\n      letter-spacing: 0.08em;\n      color: var(--muted);\n    }\n\n    \/* \u2500\u2500 ANIMATIONS \u2500\u2500 *\/\n    @keyframes fadeUp {\n      from { opacity: 0; transform: translateY(20px); }\n      to   { opacity: 1; transform: translateY(0); }\n    }\n\n    \/* \u2500\u2500 SCROLL REVEAL \u2500\u2500 *\/\n    .reveal {\n      opacity: 0;\n      transform: translateY(24px);\n      transition: opacity 0.6s ease, transform 0.6s ease;\n    }\n    .reveal.visible {\n      opacity: 1;\n      transform: none;\n    }\n\n    \/* \u2500\u2500 RESPONSIVE \u2500\u2500 *\/\n    @media (max-width: 900px) {\n      nav { padding: 1.25rem 5%; }\n      .nav-links { flex: 1; justify-content: center; display: none; }\n\n      section { padding: 5rem max(3rem, calc(50% - 560px)); }\n      #home { padding: 8rem 1.5rem calc(50% - 640px)) 5rem; }\n\n      .coming-header { grid-template-columns: 1fr; gap: 1.5rem; }\n      .cards-grid { grid-template-columns: 1fr; }\n      #coaching { grid-template-columns: 1fr; gap: 3rem; }\n      .tools-inner { grid-template-columns: 1fr; gap: 3rem; }\n      #about { grid-template-columns: 1fr; gap: 3rem; }\n\n      footer { flex-direction: column; gap: 1.5rem; text-align: center; }\n      .footer-links { flex-wrap: wrap; justify-content: center; }\n\n      .hero-stat-row { gap: 2rem; flex-wrap: wrap; }\n      .hero-cta-row { flex-direction: column; }\n      .hero-cta-row a { text-align: center; }\n    }\n  <\/style>\n<\/head>\n<body>\n\n  <!-- NAV -->\n  <nav id=\"nav\">\n    <a href=\"\/\" class=\"nav-logo\">o<span>Code<\/span>360<\/a>\n    <ul class=\"nav-links\">\n      <li><a href=\"\/index.php\/services\/\">Services<\/a><\/li>\n      <li><a href=\"\/index.php\/catalogue\/\">Courses<\/a><\/li>\n      <li><a href=\"\/index.php\/services\/\">Coaching<\/a><\/li>\n      <li><a href=\"\/index.php\/workshops\/\">Workshops<\/a><\/li>\n      <li><a href=\"\/index.php\/resources\/\">Tools<\/a><\/li>\n      <li><a href=\"\/index.php\/resources\/\">Resources<\/a><\/li>\n      <li><a href=\"#about\">About<\/a><\/li>\n    <\/ul>\n    <div class=\"nav-icons\">\n      <a href=\"\/index.php\/wishlist\/\" class=\"nav-icon\" title=\"Wishlist\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"\/><\/svg>\n      <\/a>\n      <a href=\"\/index.php\/cart\/\" class=\"nav-icon\" title=\"Cart\" id=\"nav-cart-link\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"\/><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"\/><path d=\"M16 10a4 4 0 0 1-8 0\"\/><\/svg>\n        <span class=\"nav-cart-count\" id=\"nav-cart-count\"><\/span>\n      <\/a>\n      <a href=\"\/index.php\/my-account\/\" class=\"nav-icon\" title=\"My Account\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"\/><circle cx=\"12\" cy=\"7\" r=\"4\"\/><\/svg>\n      <\/a>\n    <\/div>\n    <a href=\"\/index.php\/book-a-call\/\" class=\"nav-cta\">Book a Call<\/a>\n  <\/nav>\n\n  <!-- HERO -->\n  <section id=\"home\">\n    <div class=\"hero-grid-line\"><\/div>\n    <div class=\"hero-grid-line\"><\/div>\n    <div class=\"hero-grid-line\"><\/div>\n    <div class=\"hero-grid-line\"><\/div>\n    <div class=\"hero-glow\"><\/div>\n\n    <p class=\"hero-eyebrow\">Live Now \u00b7 ocod360.com<\/p>\n\n    <h1 class=\"hero-headline\">\n      Sharper skills for<br>\n      analysts who already<br>\n      <span class=\"accent\">know what<\/span> they&#8217;re<br>\n      <span class=\"accent2\">doing.<\/span>\n    <\/h1>\n\n    <p class=\"hero-sub\">\n      oCode360 is for practitioners \u2014 data analysts, business analysts, BI professionals \u2014 who want to push further. Courses, coaching, and tools built from 20+ years in the field.\n    <\/p>\n\n    <div class=\"hero-cta-row\">\n      <a href=\"\/index.php\/services\/\" class=\"btn-primary\">Explore Services<\/a>\n      <a href=\"\/index.php\/catalogue\/\" class=\"btn-outline\">Visit the Shop<\/a>\n      <a href=\"\/index.php\/book-a-call\/\" class=\"btn-ghost\">Book a Call<\/a>\n    <\/div>\n\n    <div class=\"hero-stat-row\">\n      <div class=\"hero-stat\">\n        <div class=\"hero-stat-num\">20<span>+<\/span><\/div>\n        <div class=\"hero-stat-label\">Years in practice<\/div>\n      <\/div>\n      <div class=\"hero-stat\">\n        <div class=\"hero-stat-num\">6<span>+<\/span><\/div>\n        <div class=\"hero-stat-label\">Industries covered<\/div>\n      <\/div>\n      <div class=\"hero-stat\">\n        <div class=\"hero-stat-num\">3<\/div>\n        <div class=\"hero-stat-label\">Ways to level up<\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- WHAT WE OFFER -->\n  <section id=\"courses\">\n    <div class=\"coming-header reveal\">\n      <div>\n        <p class=\"section-eyebrow\">What we offer<\/p>\n        <h2 class=\"section-title\">Built for where you are,<br>not where you started.<\/h2>\n      <\/div>\n      <p class=\"coming-desc\">\n        Everything in oCode360 assumes you already have baseline skills. No intro padding, no hand-holding. Just focused, practitioner-grade content that respects your time.\n      <\/p>\n    <\/div>\n\n    <div class=\"cards-grid\">\n      <div class=\"card reveal\">\n        <p class=\"card-tag\">Courses<\/p>\n        <h3 class=\"card-title\">Advanced Analytics Curriculum<\/h3>\n        <p class=\"card-body\">Deep-dive courses on data analysis, BI development, requirements engineering, and stakeholder communication \u2014 built around real delivery contexts.<\/p>\n        <span class=\"card-status\">Coming Soon<\/span>\n        <a href=\"\/index.php\/catalogue\/\" class=\"card-link\" style=\"display:block\">Browse the shop<\/a>\n        <div class=\"card-corner\">01<\/div>\n      <\/div>\n      <div class=\"card reveal\" style=\"transition-delay: 0.1s\">\n        <p class=\"card-tag coaching-tag\">Consulting<\/p>\n        <h3 class=\"card-title\">Strategy &amp; Advisory Sessions<\/h3>\n        <p class=\"card-body\">Work directly with Jacko on your specific challenges \u2014 data strategy, architecture reviews, consulting practice building, or career direction.<\/p>\n        <span class=\"card-status live\">Available Now<\/span>\n        <a href=\"\/index.php\/book-a-call\/\" class=\"card-link\" style=\"display:block\">Book a session<\/a>\n        <div class=\"card-corner\">02<\/div>\n      <\/div>\n      <div class=\"card reveal\" style=\"transition-delay: 0.2s\">\n        <p class=\"card-tag tools-tag\">Tools &amp; Resources<\/p>\n        <h3 class=\"card-title\">Templates &amp; Toolkits<\/h3>\n        <p class=\"card-body\">Ready-to-use frameworks, data specification templates, stakeholder interview guides, and BI project accelerators \u2014 fieldtested, not theoretical.<\/p>\n        <span class=\"card-status live\">E-guides Available<\/span>\n        <a href=\"\/index.php\/catalogue\/\" class=\"card-link\" style=\"display:block\">Shop resources<\/a>\n        <div class=\"card-corner\">03<\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- COACHING -->\n  <section id=\"coaching\">\n    <div class=\"coaching-visual reveal\">\n      <div class=\"accent-box\"><\/div>\n      <div class=\"coaching-box\">\n        <p class=\"coaching-box-label\">\/\/ Coaching philosophy<\/p>\n        <p class=\"coaching-quote\">\n          &#8220;Most practitioners already have the <span>raw material<\/span>. The gap is usually clarity, not capability.&#8221;\n        <\/p>\n        <ul class=\"coaching-list\">\n          <li>Diagnose where you&#8217;re actually stuck, not where it feels like you&#8217;re stuck<\/li>\n          <li>Build the consulting confidence to run rooms, not just report into them<\/li>\n          <li>Translate your experience into leverage \u2014 career, income, or practice<\/li>\n          <li>Work through live engagement challenges in real time<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <div class=\"coaching-content reveal\" style=\"transition-delay: 0.15s\">\n      <p class=\"section-eyebrow\">Coaching<\/p>\n      <h2 class=\"section-title\">Targeted coaching for practitioners ready to make a bigger move.<\/h2>\n      <p>This isn&#8217;t generic career coaching. It&#8217;s for analysts who are already delivering but want to expand \u2014 into consulting, leadership, or deeper specialisation.<\/p>\n      <p>Sessions are focused, direct, and grounded in 20+ years of actual delivery across finance, retail, insurance, and more.<\/p>\n      <a href=\"\/index.php\/book-a-call\/\" class=\"btn-outline\">Book a Discovery Call<\/a>\n    <\/div>\n  <\/section>\n\n  <!-- TOOLS -->\n  <section id=\"tools\">\n    <div class=\"tools-inner\">\n      <div class=\"reveal\">\n        <p class=\"section-eyebrow\">Tools<\/p>\n        <h2 class=\"section-title\">Fieldtested.<br>Ready to use.<\/h2>\n        <p style=\"color: var(--muted); font-size: 0.95rem; line-height: 1.75; margin-top: 1.25rem;\">Templates and toolkits built from real engagements. No filler, no fluff \u2014 just the artefacts that actually get used on projects.<\/p>\n        <a href=\"\/index.php\/catalogue\/\" class=\"btn-outline\" style=\"margin-top: 2rem; display: inline-block;\">Browse all resources<\/a>\n      <\/div>\n\n      <div class=\"tools-list reveal\" style=\"transition-delay: 0.1s\">\n        <div class=\"tool-item\">\n          <span class=\"tool-item-name\">CEO Mindset E-Guide<\/span>\n          <span class=\"tool-item-type\">E-Guide<\/span>\n          <span class=\"tool-item-badge live\">Live<\/span>\n        <\/div>\n        <div class=\"tool-item\">\n          <span class=\"tool-item-name\">Data Requirements Specification Template<\/span>\n          <span class=\"tool-item-type\">Template<\/span>\n          <span class=\"tool-item-badge soon\">Soon<\/span>\n        <\/div>\n        <div class=\"tool-item\">\n          <span class=\"tool-item-name\">Stakeholder Interview Framework<\/span>\n          <span class=\"tool-item-type\">Toolkit<\/span>\n          <span class=\"tool-item-badge soon\">Soon<\/span>\n        <\/div>\n        <div class=\"tool-item\">\n          <span class=\"tool-item-name\">BI Project Accelerator Pack<\/span>\n          <span class=\"tool-item-type\">Bundle<\/span>\n          <span class=\"tool-item-badge soon\">Soon<\/span>\n        <\/div>\n        <div class=\"tool-item\">\n          <span class=\"tool-item-name\">Data Discovery Playbook<\/span>\n          <span class=\"tool-item-type\">Guide<\/span>\n          <span class=\"tool-item-badge soon\">Soon<\/span>\n        <\/div>\n        <div class=\"tool-item\">\n          <span class=\"tool-item-name\">Analytics Consulting Starter Kit<\/span>\n          <span class=\"tool-item-type\">Bundle<\/span>\n          <span class=\"tool-item-badge soon\">Soon<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- ABOUT -->\n  <section id=\"about\">\n    <div class=\"about-content reveal\">\n      <p class=\"section-eyebrow\">About<\/p>\n      <h2 class=\"section-title\">20 years of delivery.<br>Now distilled.<\/h2>\n\n      <p>oCode360 is built by <strong>Jacko van Wyk<\/strong> \u2014 MD of JVW Business Solutions, Cape Town. Not a course creator who read some books. Someone who has been on the floor across finance, insurance, retail, manufacturing, and legal for over two decades.<\/p>\n\n      <p>The problems covered in oCode360 are the ones that show up repeatedly across engagements \u2014 data quality, stakeholder misalignment, requirements that drift, pipelines that break trust. The curriculum is built from that pattern recognition, not from a textbook.<\/p>\n\n      <p>This is for practitioners by a practitioner. Everything here has been tested against real deadlines, real stakeholders, and real data.<\/p>\n\n      <div class=\"about-credentials\">\n        <span class=\"cred\">MBA \u2014 Data Analytics<\/span>\n        <span class=\"cred\">Business Analysis<\/span>\n        <span class=\"cred\">Data Engineering<\/span>\n        <span class=\"cred\">BI Development<\/span>\n        <span class=\"cred\">Consulting<\/span>\n        <span class=\"cred\">Cape Town, SA<\/span>\n      <\/div>\n    <\/div>\n\n    <div class=\"about-visual reveal\" style=\"transition-delay: 0.15s\">\n      <div class=\"about-frame\">\n        <div class=\"about-name\">Jacko van Wyk<\/div>\n        <div class=\"about-title-role\">Founder, oCode360 \u00b7 MD, JVW Business Solutions<\/div>\n\n        <ul class=\"coaching-list\">\n          <li>Systems Analyst \u2192 Data Analyst \u2192 BI BA \u2192 Consultant<\/li>\n          <li>Finance, Insurance, Retail, Manufacturing, Legal<\/li>\n          <li>Buying &amp; procurement data, pipeline specification<\/li>\n          <li>Stakeholder alignment and requirements translation<\/li>\n        <\/ul>\n\n        <div class=\"about-stats\">\n          <div>\n            <div class=\"about-stat-num\">20<span>+<\/span><\/div>\n            <div class=\"about-stat-label\">Years experience<\/div>\n          <\/div>\n          <div>\n            <div class=\"about-stat-num\">6<span>+<\/span><\/div>\n            <div class=\"about-stat-label\">Industries<\/div>\n          <\/div>\n          <div>\n            <div class=\"about-stat-num\">SA<\/div>\n            <div class=\"about-stat-label\">Based in Cape Town<\/div>\n          <\/div>\n          <div>\n            <div class=\"about-stat-num\">MBA<\/div>\n            <div class=\"about-stat-label\">Data Analytics<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- FOOTER -->\n  <footer>\n    <a href=\"\/\" class=\"footer-logo\">o<span>Code<\/span>360<\/a>\n    <ul class=\"footer-links\">\n      <li><a href=\"\/index.php\/services\/\">Services<\/a><\/li>\n      <li><a href=\"\/index.php\/catalogue\/\">Shop<\/a><\/li>\n      <li><a href=\"\/index.php\/workshops\/\">Workshops<\/a><\/li>\n      <li><a href=\"\/index.php\/resources\/\">Resources<\/a><\/li>\n      <li><a href=\"\/index.php\/pricing\/\">Pricing<\/a><\/li>\n      <li><a href=\"#about\">About<\/a><\/li>\n    <\/ul>\n    <p class=\"footer-copy\">\u00a9 2026 oCode360 t\/a JVW Business Solutions<\/p>\n  <\/footer>\n\n  <script>\n    \/\/ Nav scroll state\n    const nav = document.getElementById('nav');\n    window.addEventListener('scroll', () => {\n      nav.classList.toggle('scrolled', window.scrollY > 40);\n    });\n\n    \/\/ Scroll reveal\n    const reveals = document.querySelectorAll('.reveal');\n    const observer = new IntersectionObserver((entries) => {\n      entries.forEach(entry => {\n        if (entry.isIntersecting) {\n          entry.target.classList.add('visible');\n          observer.unobserve(entry.target);\n        }\n      });\n    }, { threshold: 0.1 });\n    reveals.forEach(el => observer.observe(el));\n  <\/script>\n  <script>\n    (function() {\n      fetch('\/wp-json\/wc\/store\/v1\/cart', { credentials: 'include' })\n        .then(function(r) { return r.json(); })\n        .then(function(data) {\n          var count = data.items_count || 0;\n          var badge = document.getElementById('nav-cart-count');\n          if (badge && count > 0) {\n            badge.textContent = count;\n            badge.classList.add('has-items');\n          }\n        })\n        .catch(function() {});\n    })();\n  <\/script>\n<\/body>\n<\/html>\n\n","protected":false},"excerpt":{"rendered":"<p>oCode360 \u2014 Precision Skills for Analytics Practitioners oCode360 Services Courses Coaching Workshops Tools Resources About Book a Call Live Now \u00b7 ocod360.com Sharper skills for analysts who already know what they&#8217;re doing. oCode360 is for practitioners \u2014 data analysts, business analysts, BI professionals \u2014 who want to push further. Courses, coaching, and tools built from [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"ocode360-blank","meta":{"footnotes":""},"class_list":["post-92","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/comments?post=92"}],"version-history":[{"count":15,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages\/92\/revisions"}],"predecessor-version":[{"id":229,"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/pages\/92\/revisions\/229"}],"wp:attachment":[{"href":"https:\/\/ocode360.com\/index.php\/wp-json\/wp\/v2\/media?parent=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}