---
title: WebGL Development
description: Home  /  Services  /  WebGL App Development  Available Now · 20+ 3D Templates  WebGL App  Development  Company  Three.js · Babylon.js · WebGPU    Miracuves prov
url: https://miracuves.com/service/webgl-development
date_modified: 2026-07-17
author: miracuves
language: en_US
---

@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900&family=JetBrains+Mono:wght@400;500;600&display=swap');

  /* Redesign variables - Corporate brand dark & red glass accents */
  .ta {
    --red: #a70d2a;
    /* Corporate primary red */
    --red-d: #990000;
    /* Corporate alternate red */
    --red-l: #a70d2a;
    /* Light brand accent */
    --ra: rgba(167, 13, 42, 0.06);
    /* Transparent brand primary */
    --rb: rgba(167, 13, 42, 0.16);
    --rc-glow: rgba(167, 13, 42, 0.12);
    --rg: linear-gradient(135deg, #a70d2a 0%, #990000 100%);
    /* Strict primary-alternate red gradient */
    --green: #00E676;
    /* Vibrant Emerald Green */
    --gl: #26A69A;
    /* Beautiful Clean Teal */
    --teal: #00F3FF;
    /* High-fidelity Neon Cyan */

    /* High-end obsidian dark scales */
    --dk0: #030008;
    /* Obsidian deep background */
    --dk1: #07040f;
    /* Sleek card background */
    --dk2: #0c081a;
    /* Elevated container dark */
    --dk3: #120e26;
    /* Saturated card base */
    --dk4: #191433;
    /* Modern highlight dark */

    /* Elevated glassmorphism */
    --card: rgba(8, 4, 15, 0.76);
    /* Frosted premium glass */
    --cardh: rgba(14, 8, 25, 0.88);
    /* Hover glass brightness */
    --l0: #ffffff;
    --l1: #fafafd;
    --l2: #f2f1f6;
    --l3: #e8e7ee;

    /* Text and borders */
    --dx1: #ffffff;
    --dx2: rgba(255, 255, 255, 0.95);
    --dx3: rgba(255, 255, 255, 0.65);
    --dx4: rgba(255, 255, 255, 0.35);
    --lx1: #0c0716;
    --lx2: #322d3e;
    --lx3: #5f5a70;
    --lx4: #928ea3;

    /* High fidelity grid borders */
    --bd: rgba(255, 255, 255, 0.06);
    --bd2: rgba(255, 255, 255, 0.12);
    --bd3: rgba(255, 255, 255, 0.20);
    --bl: rgba(12, 7, 22, 0.04);
    --bl2: rgba(12, 7, 22, 0.08);

    /* Animations */
    --f: 'Montserrat', -apple-system, sans-serif;
    --fm: 'JetBrains Mono', monospace;
    --r20: 20px;
    --r14: 14px;
    --r10: 10px;
    --r6: 6px;
    --r100: 100px;
    --spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
    /* Fluid elastic bounce */
    --ease: cubic-bezier(0.16, 1, 0.3, 1);
  }

  .ta,
  .ta * {
    box-sizing: border-box !important;
  }

  .ta {
    font-family: var(--f) !important;
    -webkit-font-smoothing: antialiased;
    font-size: 15px;
    line-height: 1.7;
    color: var(--lx2);
    width: 100%;
    overflow-x: hidden;
    background: var(--l0);
  }

  .ta h1,
  .ta h2,
  .ta h3,
  .ta h4,
  .ta p,
  .ta ul,
  .ta ol {
    margin: 0;
    padding: 0;
  }

  .ta ul,
  .ta ol {
    list-style: none;
  }

  .ta a {
    text-decoration: none !important;
    color: inherit;
  }

  .ta img {
    max-width: 100%;
    display: block;
  }

  /* Layout & Grid systems */
  .ta .W {
    max-width: 1260px;
    margin: 0 auto;
    padding: 0 40px;
  }

  .ta .S {
    padding: 120px 0;
    position: relative;
  }

  .ta .SM {
    padding: 75px 0;
    position: relative;
  }

  .ta .g2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }

  .ta .g3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
  }

  .ta .g4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
  }

  .ta .g5 {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 0;
  }

  .ta .sp5050 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 88px;
    align-items: start;
  }

  .ta .sp5050a {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 96px;
    align-items: start;
  }

  .ta .hi>*,
  .ta .sp5050>*,
  .ta .sp5050a>*,
  .ta .two-col>* {
    min-width: 0;
  }

  /* Skins and Ambient backgrounds */
  .ta .sD {
    background: var(--dk1);
  }

  .ta .sD2 {
    background: var(--dk2);
  }

  .ta .sW {
    background: var(--l0);
    position: relative;
  }

  .ta .sG {
    background: var(--l1);
    position: relative;
  }

  .ta .sR {
    background: var(--red-d);
    position: relative;
  }

  .ta .sD h2,
  .ta .sD h3,
  .ta .sD h4,
  .ta .sD2 h2,
  .ta .sD2 h3,
  .ta .sD2 h4 {
    color: var(--dx1);
  }

  .ta .sD p,
  .ta .sD2 p {
    color: var(--dx2);
  }

  .ta .sD .mu,
  .ta .sD2 .mu {
    color: var(--dx3);
  }

  .ta .sW h2,
  .ta .sW h3,
  .ta .sW h4,
  .ta .sG h2,
  .ta .sG h3,
  .ta .sG h4 {
    color: var(--lx1);
  }

  .ta .sW p,
  .ta .sG p {
    color: var(--lx2);
  }

  .ta .sW .mu,
  .ta .sG .mu {
    color: var(--lx3);
  }

  .ta .sR h2,
  .ta .sR h3,
  .ta .sR h4 {
    color: #fff;
  }

  .ta .sR p {
    color: rgba(255, 255, 255, 0.9);
  }

  /* Typography system */
  .ta h1 {
    font-size: clamp(52px, 7vw, 92px);
    font-weight: 800;
    line-height: 0.98;
    letter-spacing: -3.8px;
  }

  .ta h2 {
    font-size: clamp(34px, 4.2vw, 54px);
    font-weight: 800;
    line-height: 1.06;
    letter-spacing: -2px;
  }

  .ta h2 em {
    font-style: normal;
    color: var(--red);
  }

  .ta .sR h2 em {
    color: #a70d2a;
  }

  .ta h3 {
    font-size: 21px;
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.6px;
  }

  .ta .lead {
    font-size: 18px;
    line-height: 1.76;
    font-weight: 400;
    max-width: 640px;
  }

  .ta .body {
    font-size: 15px;
    line-height: 1.76;
    font-weight: 400;
  }

  /* Micro-animations */
  @keyframes ta-fade-up {
    from {
      opacity: 0;
      transform: translateY(32px);
    }

    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes ta-pulse {
    0% {
      transform: scale(0.6);
      opacity: 0.7;
    }

    100% {
      transform: scale(2.2);
      opacity: 0;
    }
  }

  @keyframes ta-float {

    0%,
    100% {
      transform: translateY(0) rotate(-2deg);
    }

    50% {
      transform: translateY(-8px) rotate(-1deg);
    }
  }

  @keyframes ta-float2 {

    0%,
    100% {
      transform: translateY(0) rotate(2deg);
    }

    50% {
      transform: translateY(-7px) rotate(1deg);
    }
  }

  @keyframes ta-draw {
    0% {
      stroke-dashoffset: 240;
    }

    100% {
      stroke-dashoffset: 0;
    }
  }

  @keyframes ta-orbit1 {
    from {
      transform: rotate(0deg) translateX(36px) rotate(0deg);
    }

    to {
      transform: rotate(360deg) translateX(36px) rotate(-360deg);
    }
  }

  @keyframes ta-orbit2 {
    from {
      transform: rotate(120deg) translateX(36px) rotate(-120deg);
    }

    to {
      transform: rotate(480deg) translateX(36px) rotate(-480deg);
    }
  }

  @keyframes ta-orbit3 {
    from {
      transform: rotate(240deg) translateX(36px) rotate(-240deg);
    }

    to {
      transform: rotate(600deg) translateX(36px) rotate(-600deg);
    }
  }

  @keyframes ta-core {

    0%,
    100% {
      transform: scale(1);
      box-shadow: 0 0 20px rgba(167, 13, 42, 0.4);
    }

    50% {
      transform: scale(1.08);
      box-shadow: 0 0 35px rgba(167, 13, 42, 0.85);
    }
  }

  @keyframes ta-dotglow {

    0%,
    100% {
      box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.6);
    }

    50% {
      box-shadow: 0 0 0 8px rgba(74, 222, 128, 0);
    }
  }

  @keyframes ta-glow-pulse {

    0%,
    100% {
      opacity: 1;
      transform: scale(1);
    }

    50% {
      opacity: 0.8;
      transform: scale(1.05);
    }
  }

  @keyframes ta-shimmer {
    0% {
      transform: translateX(-100%);
    }

    100% {
      transform: translateX(100%);
    }
  }

  @keyframes drift {
    0% {
      transform: translate(0, 0) scale(1);
    }

    50% {
      transform: translate(4%, 5%) scale(1.08);
    }

    100% {
      transform: translate(-2%, -3%) scale(0.95);
    }
  }

  /* Ambient background light blobs */
  .ta .glow-blob {
    position: absolute;
    border-radius: 50%;
    filter: blur(130px);
    opacity: 0.15;
    pointer-events: none;
    z-index: 0;
  }

  .ta .glow-1 {
    top: -10%;
    right: -5%;
    width: 550px;
    height: 550px;
    background: radial-gradient(circle, var(--red) 0%, transparent 70%);
  }

  .ta .glow-2 {
    bottom: 10%;
    left: -10%;
    width: 450px;
    height: 450px;
    background: radial-gradient(circle, var(--red-d) 0%, transparent 70%);
  }

  .ta .glow-3 {
    top: 35%;
    right: 25%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, var(--red-l) 0%, transparent 70%);
  }

  /* Scroll reveals */
  .ta .rev {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
  }

  .ta .rev.in {
    opacity: 1;
    transform: translateY(0);
  }

  .ta .revl {
    opacity: 0;
    transform: translateX(-32px);
    transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
  }

  .ta .revl.in {
    opacity: 1;
    transform: translateX(0);
  }

  .ta .revr {
    opacity: 0;
    transform: translateX(32px);
    transition: opacity 0.8s var(--ease), transform 0.8s var(--ease);
  }

  .ta .revr.in {
    opacity: 1;
    transform: translateX(0);
  }

  .ta .stag>* {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.65s var(--ease), transform 0.65s var(--ease);
  }

  .ta .stag.in>* {
    opacity: 1;
    transform: none;
    transition-delay: 0.35s;
  }

  .ta .stag.in>*:nth-child(1) {
    transition-delay: 0.04s;
  }

  .ta .stag.in>*:nth-child(2) {
    transition-delay: 0.08s;
  }

  .ta .stag.in>*:nth-child(3) {
    transition-delay: 0.12s;
  }

  .ta .stag.in>*:nth-child(4) {
    transition-delay: 0.16s;
  }

  .ta .stag.in>*:nth-child(5) {
    transition-delay: 0.20s;
  }

  .ta .stag.in>*:nth-child(6) {
    transition-delay: 0.24s;
  }

  .ta .stag.in>*:nth-child(7) {
    transition-delay: 0.28s;
  }

  .ta .stag.in>*:nth-child(8) {
    transition-delay: 0.32s;
  }

  .ta .stag.in>*:nth-child(9) {
    transition-delay: 0.35s;
  }

  .ta .stag.in>*:nth-child(10) {
    transition-delay: 0.38s;
  }

  .ta .stag.in>*:nth-child(11) {
    transition-delay: 0.41s;
  }

  .ta .stag.in>*:nth-child(12) {
    transition-delay: 0.44s;
  }

  .ta .stag.in>*:nth-child(13) {
    transition-delay: 0.47s;
  }

  .ta .stag.in>*:nth-child(14) {
    transition-delay: 0.50s;
  }

  .ta .stag.in>*:nth-child(15) {
    transition-delay: 0.53s;
  }

  .ta .stag.in>*:nth-child(16) {
    transition-delay: 0.56s;
  }

  /* Eyebrow Pill Badge */
  .ta .pill {
    display: flex;
    margin-bottom: 30px;
  }

  .ta .pill.c {
    justify-content: center;
  }

  .ta .eyp {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(12, 7, 23, 0.85);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--bd2);
    border-radius: var(--r100);
    padding: 8px 18px 8px 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  }

  .ta .sW .eyp,
  .ta .sG .eyp {
    background: rgba(255, 255, 255, 0.85);
    border-color: var(--bl2);
    color: var(--lx2);
    box-shadow: 0 4px 16px rgba(12, 7, 22, 0.04);
  }

  .ta .sR .eyp {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.22);
    color: #fff;
  }

  .ta .eyp strong {
    color: #fff !important;
    font-weight: 700;
  }

  .ta .sW .eyp strong,
  .ta .sG .eyp strong {
    color: var(--red) !important;
  }

  .ta .eyp .el {
    width: 18px;
    height: 2px;
    background: var(--red);
    border-radius: 2px;
  }

  .ta .sR .eyp .el {
    background: rgba(255, 255, 255, 0.75);
  }

  /* Live Pulsing Dot */
  .ta .ldot {
    position: relative;
    width: 8px;
    height: 8px;
    background: var(--gl);
    border-radius: 50%;
    box-shadow: 0 0 12px rgba(74, 222, 128, 0.8);
    flex-shrink: 0;
    animation: ta-dotglow 2s ease-in-out infinite;
  }

  .ta .ldot::after {
    content: '';
    position: absolute;
    inset: -5px;
    border-radius: 50%;
    border: 1.5px solid var(--gl);
    opacity: 0.55;
    animation: ta-pulse 2.2s ease-out infinite;
  }

  /* Buttons */
  .ta .btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--f);
    font-size: 14.5px;
    font-weight: 700;
    letter-spacing: 0.015em;
    padding: 16px 30px;
    border-radius: var(--r14);
    cursor: pointer;
    transition: transform 0.3s var(--spring), box-shadow 0.3s var(--ease), background 0.3s var(--ease);
    line-height: 1;
    white-space: nowrap;
    overflow: hidden;
    border: none;
    text-decoration: none !important;
  }

  .ta .btn svg {
    width: 18px;
    height: 18px;
    stroke-width: 2.4;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
  }

  .ta .btn span {
    position: relative;
    z-index: 1;
  }

  .ta .btn-p {
    background: var(--rg);
    color: #fff !important;
    box-shadow: 0 12px 30px rgba(167, 13, 42, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.20);
  }

  .ta .btn-p::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 25%, rgba(255, 255, 255, 0.25) 50%, transparent 75%);
    transform: translateX(-100%);
    transition: transform 0.65s var(--ease);
  }

  .ta .btn-p:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 18px 40px rgba(167, 13, 42, 0.5);
  }

  .ta .btn-p:hover::before {
    transform: translateX(100%);
  }

  .ta .btn-g {
    background: rgba(12, 7, 23, 0.6);
    color: #fff !important;
    border: 1px solid var(--bd2);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
  }

  .ta .btn-g:hover {
    background: rgba(12, 7, 23, 0.85);
    transform: translateY(-3px);
    border-color: var(--bd3);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
  }

  .ta .sW .btn-g,
  .ta .sG .btn-g {
    background: rgba(255, 255, 255, 0.85);
    color: var(--lx1) !important;
    border-color: var(--bl2);
    backdrop-filter: none;
    box-shadow: 0 2px 10px rgba(12, 7, 22, 0.04);
  }

  .ta .sW .btn-g:hover,
  .ta .sG .btn-g:hover {
    background: #fff;
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(12, 7, 22, 0.08);
    border-color: var(--bl2);
  }

  .ta .sR .btn-g {
    background: rgba(255, 255, 255, 0.16);
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.26);
  }

  .ta .sR .btn-g:hover {
    background: rgba(255, 255, 255, 0.26);
  }

  .ta .btn-wa {
    background: #25D366;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(37, 211, 102, 0.25);
    border: none;
  }

  .ta .btn-wa:hover {
    background: #20ba5a;
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(37, 211, 102, 0.4);
  }

  .ta .btn-wa svg {
    color: #fff;
  }

  /* Checklist Elements */
  .ta .ck {
    display: flex;
    gap: 14px;
    font-size: 15px;
    font-weight: 500;
    line-height: 1.62;
    padding: 14px 0;
    align-items: flex-start;
  }

  .ta .ck::before {
    content: '✓';
    font-weight: 900;
    font-size: 12px;
    margin-top: 3px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
  }

  .ta .sD .ck::before,
  .ta .sD2 .ck::before {
    color: var(--gl);
    background: rgba(74, 222, 128, 0.08);
  }

  .ta .sD .ck,
  .ta .sD2 .ck {
    color: var(--dx2);
  }

  .ta .sW .ck::before,
  .ta .sG .ck::before {
    color: var(--green);
    background: rgba(34, 197, 94, 0.08);
  }

  .ta .sW .ck,
  .ta .sG .ck {
    color: var(--lx2);
  }

  .ta .sR .ck::before {
    color: #ffd700;
    background: rgba(255, 215, 0, 0.12);
  }

  .ta .sR .ck {
    color: rgba(255, 255, 255, 0.88);
  }

  /* Structural Badges & Icons */
  .ta .nb {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13.5px;
    font-weight: 800;
    flex-shrink: 0;
  }

  .ta .sD .nb,
  .ta .sD2 .nb {
    background: var(--ra);
    color: var(--red-l);
    border: 1px solid var(--rb);
  }

  .ta .sW .nb,
  .ta .sG .nb {
    background: var(--red);
    color: #fff;
  }

  .ta .sR .nb {
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.1);
  }

  .ta .ico {
    width: 44px;
    height: 44px;
    border-radius: var(--r10);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid;
    background: var(--ra);
    border-color: var(--rb);
    flex-shrink: 0;
    transition: transform 0.3s var(--spring);
  }

  .ta .ico svg {
    width: 20px;
    height: 20px;
    color: var(--red-l);
    transition: color 0.3s;
  }

  .ta .titem:hover .ico {
    transform: scale(1.08) rotate(3deg);
    background: rgba(167, 13, 42, 0.12);
    border-color: rgba(167, 13, 42, 0.4);
  }

  .ta .sR .ico {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.24);
  }

  .ta .sR .ico svg {
    color: #fff;
  }

  /* Dynamic Header alignment */
  .ta .sh {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 28px;
    flex-wrap: wrap;
    margin-bottom: 56px;
  }

  .ta .ta-bc {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 600;
    margin-bottom: 30px;
    flex-wrap: wrap;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }

  .ta .ta-bc a {
    color: var(--dx3);
    transition: color 0.2s;
    text-decoration: none;
  }

  .ta .ta-bc a:hover {
    color: var(--red-l);
  }

  .ta .ta-bc .bs {
    color: var(--dx4);
    opacity: 0.6;
    font-size: 10px;
    margin: 0 4px;
  }

  .ta .ta-bc .ta-bc-curr {
    color: var(--dx1);
    font-weight: 700;
  }

  /* ══ S01 HERO SECTION REDESIGN ══ */
  .ta .hero {
    background:
      radial-gradient(circle at 15% 15%, rgba(167, 13, 42, 0.25) 0%, transparent 55%),
      radial-gradient(circle at 85% 75%, rgba(255, 42, 95, 0.18) 0%, transparent 60%),
      radial-gradient(circle at 50% -10%, rgba(0, 243, 255, 0.08) 0%, transparent 45%),
      #04010a;
    position: relative;
    padding: 120px 0 20px;
    overflow: hidden;
  }

  .ta .hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background-image: linear-gradient(rgba(167, 13, 42, 0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(167, 13, 42, 0.03) 1px, transparent 1px);
    background-size: 56px 56px;
    pointer-events: none;
  }

  /* Animated & Vibrant Hero Ambient Glows */
  .ta .hero .glow-blob {
    opacity: 0.38;
    filter: blur(140px);
    transition: opacity 0.5s ease;
  }

  .ta .hero .glow-1 {
    background: radial-gradient(circle, #ff2a5f 0%, transparent 70%);
    animation: drift 16s ease-in-out infinite alternate;
  }

  .ta .hero .glow-2 {
    background: radial-gradient(circle, var(--red) 0%, transparent 70%);
    animation: drift 20s ease-in-out infinite alternate-reverse 2s;
  }

  .ta .hero .glow-3 {
    background: radial-gradient(circle, var(--teal) 0%, transparent 70%);
    opacity: 0.22;
    animation: drift 24s ease-in-out infinite alternate 1s;
  }

  .ta .hi {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: 72px;
    align-items: start;
    position: relative;
    z-index: 1;
  }

  .ta .hl {
    padding-bottom: 80px;
  }

  .ta .hew {
    display: flex;
    margin-bottom: 28px;
    animation: ta-fade-up 0.6s var(--ease) both;
  }

  .ta .he {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(12, 7, 23, 0.85);
    backdrop-filter: blur(24px);
    border: 1px solid var(--bd2);
    border-radius: var(--r100);
    padding: 8px 18px 8px 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  }

  /* Gradient H1 Hero typography */
  .ta .hh1 {
    font-size: clamp(54px, 7.5vw, 94px);
    font-weight: 800;
    line-height: 0.96;
    letter-spacing: -0.045em;
    color: var(--dx1);
    animation: ta-fade-up 0.7s var(--ease) 0.1s both;
  }

  .ta .hh1 em {
    font-style: normal;
    color: #ff3355 !important;
    -webkit-text-fill-color: #ff3355 !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    padding: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: inline !important;
    letter-spacing: -0.045em;
    text-shadow: 0 0 20px rgba(255, 51, 85, 0.25);
  }

  .ta .hh1 .h1s {
    display: block;
  }

  .ta .hh1 .dim {
    color: rgba(255, 255, 255, 0.85);
    font-weight: 700;
    font-size: 0.68em;
    display: block;
    margin-top: 14px;
    letter-spacing: -0.035em;
    -webkit-text-fill-color: rgba(255, 255, 255, 0.85);
  }

  .ta .hdim {
    color: #ffffff;
    font-weight: 700;
    font-size: 26px;
    display: block;
    margin-top: 14px;
    letter-spacing: -0.01em;
    -webkit-text-fill-color: #ffffff;
  }

  .ta .hlead {
    font-size: 18.5px;
    line-height: 1.76;
    color: var(--dx2);
    margin-top: 24px;
    max-width: 540px;
    animation: ta-fade-up 0.7s var(--ease) 0.18s both;
    font-weight: 400;
  }

  .ta .htrust {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 30px 0;
    animation: ta-fade-up 0.7s var(--ease) 0.24s both;
  }

  .ta .htr {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: #ffffff;
    padding: 8px 16px;
    border-radius: var(--r100);
    transition: all 0.3s var(--ease);
  }

  .ta .htr:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.26);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(167, 13, 42, 0.15);
  }

  .ta .htr svg {
    width: 13px;
    height: 13px;
    color: var(--green);
    flex-shrink: 0;
  }

  .ta .hctas {
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    animation: ta-fade-up 0.7s var(--ease) 0.3s both;
  }

  .ta .hproof {
    display: flex;
    gap: 16px;
    align-items: center;
    margin-top: 28px;
    flex-wrap: wrap;
    font-size: 12.5px;
    font-weight: 600;
    animation: ta-fade-up 0.7s var(--ease) 0.36s both;
    color: rgba(255, 255, 255, 0.85);
  }

  .ta .hproof a {
    color: #ffffff;
    text-decoration: underline !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: opacity 0.2s;
    font-weight: 700;
  }

  .ta .hproof a:hover {
    opacity: 0.8;
  }

  .ta .hproof .dot {
    color: rgba(255, 255, 255, 0.35);
  }

  .ta .hr {
    padding-top: 8px;
    animation: ta-fade-up 0.7s var(--ease) 0.2s both;
  }

  /* SScard with double borders and inset highlights */
  .ta .hsc {
    position: relative;
    border-radius: var(--r20);
    overflow: hidden;
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.65);
    transition: transform 0.4s var(--spring), box-shadow 0.4s var(--ease);
  }

  .ta .hsc::before {
    content: '';
    position: absolute;
    inset: 0;
    padding: 1.5px;
    background: linear-gradient(135deg, rgba(167, 13, 42, 0.6), rgba(255, 255, 255, 0.05), rgba(153, 0, 0, 0.5));
    border-radius: var(--r20);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    z-index: 2;
  }

  .ta .hsc:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: 0 35px 80px rgba(167, 13, 42, 0.15), 0 30px 70px rgba(0, 0, 0, 0.7);
  }

  .ta .hsc-inner {
    background: rgba(6, 3, 12, 0.88);
    backdrop-filter: blur(40px) saturate(180%);
    -webkit-backdrop-filter: blur(40px) saturate(180%);
    border-radius: calc(var(--r20) - 1px);
    position: relative;
    z-index: 1;
  }

  .ta .hsch {
    padding: 24px 28px 18px;
    border-bottom: 1px solid var(--bd);
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .ta .hscl {
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--red-l);
  }

  .ta .hscv {
    font-size: 11.5px;
    color: var(--dx3);
    font-weight: 650;
  }

  .ta .hscg {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .ta .hsci {
    padding: 24px 28px;
    border-right: 1px solid var(--bd);
    border-bottom: 1px solid var(--bd);
    transition: background 0.3s var(--ease);
  }

  .ta .hsci:hover {
    background: rgba(167, 13, 42, 0.03);
  }

  .ta .hsci:nth-child(2n) {
    border-right: none;
  }

  .ta .hsci:nth-child(3),
  .ta .hsci:nth-child(4) {
    border-bottom: none;
  }

  .ta .hscn {
    font-size: 34px;
    font-weight: 800;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    line-height: 1.1;
    letter-spacing: -0.04em;
    text-shadow: 0 4px 12px rgba(167, 13, 42, 0.4);
  }

  .ta .hscll {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--dx3);
    margin-top: 6px;
  }

  .ta .hscav {
    padding: 16px 28px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-top: 1px solid var(--bd);
    font-size: 13.5px;
    font-weight: 600;
    color: var(--green);
    background: rgba(0, 230, 118, 0.05);
  }

  /* Clone card slider grid */
  .ta .hshow {
    margin-top: 18px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
  }

  .ta .hsc-card {
    display: block;
    text-decoration: none !important;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--bd);
    border-radius: var(--r14);
    padding: 16px 20px;
    transition: all 0.35s var(--ease);
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .ta .hsc-card::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: var(--rg);
    opacity: 0;
    transition: opacity 0.25s, transform 0.25s;
  }

  .ta .hsc-card:hover {
    border-color: rgba(167, 13, 42, 0.4);
    background: rgba(255, 255, 255, 0.05);
    transform: translateX(6px);
    box-shadow: 0 12px 30px rgba(167, 13, 42, 0.08), 0 8px 24px rgba(0, 0, 0, 0.35);
  }

  .ta .hsc-card:hover::before {
    opacity: 1;
  }

  .ta .hsc-cat {
    font-size: 9.5px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #ffffff !important;
    margin-bottom: 5px;
  }

  .ta .hsc-name {
    font-size: 14px;
    font-weight: 800;
    color: var(--dx1);
    line-height: 1.35;
    letter-spacing: -0.01em;
  }

  .ta .hsc-meta {
    font-size: 11px;
    color: rgba(255, 255, 255, 0.8) !important;
    margin-top: 4px;
    font-weight: 600;
  }

  /* Interactive WebGL Engine Status Console */
  .ta .hstatus-console {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--bd);
    border-radius: var(--r14);
    margin-top: 14px;
    padding: 18px 22px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    transition: all 0.35s var(--ease);
  }

  .ta .hstatus-console:hover {
    border-color: rgba(167, 13, 42, 0.3);
    background: rgba(255, 255, 255, 0.04);
    transform: translateY(-3px);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.4);
  }

  .ta .hstatus-header {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--dx3);
    margin-bottom: 14px;
    font-weight: 800;
  }

  .ta .hstatus-dot {
    width: 7px;
    height: 7px;
    background: var(--green);
    border-radius: 50%;
    box-shadow: 0 0 8px var(--green);
    animation: ta-dotglow 2s ease-in-out infinite;
  }

  .ta .hstatus-tag {
    margin-left: auto;
    color: var(--red-l);
    font-weight: 850;
    font-size: 10px;
    border: 1px solid rgba(167, 13, 42, 0.2);
    padding: 2px 8px;
    border-radius: 4px;
    background: rgba(167, 13, 42, 0.05);
  }

  .ta .hstatus-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .ta .hstatus-item {
    background: rgba(255, 255, 255, 0.01);
    border: 1px solid rgba(255, 255, 255, 0.03);
    padding: 10px 14px;
    border-radius: var(--r10);
    transition: border-color 0.25s;
  }

  .ta .hstatus-item:hover {
    border-color: rgba(255, 255, 255, 0.08);
  }

  .ta .hstatus-lbl {
    display: block;
    font-size: 9px;
    font-weight: 850;
    color: var(--dx4);
    letter-spacing: 0.08em;
    margin-bottom: 2px;
  }

  .ta .hstatus-val {
    display: block;
    font-size: 12.5px;
    font-weight: 750;
    color: var(--dx1);
  }

  /* ══ S01 STRIP REDESIGN ══ */
  .ta .hstrip {
    background: var(--l0);
    border-top: none;
    padding: 34px 0;
    position: relative;
    z-index: 1;
    box-shadow: 0 -1px 0 rgba(167, 13, 42, 0.08), 0 12px 40px rgba(12, 7, 22, 0.06);
  }

  .ta .hsr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    gap: 16px;
  }

  .ta .hsi {
    flex-shrink: 0;
  }

  .ta .hsi strong {
    display: block;
    font-size: 20px;
    font-weight: 800;
    color: var(--red-d);
    line-height: 1.1;
    letter-spacing: -0.03em;
    background: linear-gradient(135deg, var(--red-d) 0%, var(--red) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .ta .hsi span {
    display: block;
    font-size: 10.2px;
    font-weight: 700;
    color: var(--lx3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 4px;
  }

  .ta .hsep {
    width: 1px;
    height: 36px;
    background: var(--bl2);
    flex-shrink: 0;
  }

  /* ══ S02 TRUST BAR REDESIGN ══ */
  .ta .tbar {
    padding: 48px 0;
    border-bottom: 1px solid var(--bd);
    position: relative;
    z-index: 1;
  }

  .ta .tbrow {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px 48px;
    justify-items: center;
  }

  .ta .titem {
    display: flex;
    align-items: center;
    gap: 14px;
  }

  .ta .titem h4 {
    font-size: 14.5px;
    font-weight: 800;
    color: var(--dx1);
    letter-spacing: -0.01em;
  }

  .ta .titem p {
    font-size: 12.5px;
    color: var(--dx2);
    margin-top: 4px;
    font-weight: 500;
  }

  .ta .tsep {
    display: none !important;
  }

  /* ══ S03 OUR APPROACH REDESIGN ══ */
  .ta .approach-right {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .ta .approach-cards {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 16px;
    margin-top: 4px;
  }

  .ta .ac {
    border: 1px solid transparent;
    border-radius: var(--r14);
    padding: 22px 16px;
    background-image: linear-gradient(var(--l0), var(--l0)), linear-gradient(135deg, rgba(12, 7, 22, 0.06), rgba(167, 13, 42, 0.15));
    background-origin: border-box;
    background-clip: padding-box, border-box;
    transition: all 0.35s var(--spring);
    text-align: center;
    box-shadow: 0 4px 16px rgba(12, 7, 22, 0.02);
  }

  .ta .ac:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 36px rgba(167, 13, 42, 0.1);
    background-image: linear-gradient(var(--l0), var(--l0)), linear-gradient(135deg, rgba(167, 13, 42, 0.4), rgba(167, 13, 42, 0.08));
  }

  .ta .ac-icon {
    width: 42px;
    height: 42px;
    border-radius: var(--r10);
    background: var(--ra);
    border: 1px solid var(--rb);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    transition: transform 0.3s var(--spring);
  }

  .ta .ac:hover .ac-icon {
    transform: scale(1.1) rotate(3deg);
    background: rgba(167, 13, 42, 0.1);
  }

  .ta .ac-icon svg {
    width: 20px;
    height: 20px;
    color: var(--red);
  }

  .ta .ac-title {
    font-size: 14px;
    font-weight: 800;
    color: var(--lx1);
    margin-bottom: 6px;
    letter-spacing: -0.01em;
  }

  .ta .ac-desc {
    font-size: 11.5px;
    color: var(--lx3);
    line-height: 1.5;
    font-weight: 500;
  }

  /* Symmetrical stat card elements */
  .ta .sgrid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }

  .ta .scard {
    border: 1px solid transparent;
    border-radius: var(--r14);
    padding: 28px 24px;
    transition: all 0.35s var(--spring);
    position: relative;
    overflow: hidden;
    background-image: linear-gradient(var(--l0), var(--l0)), linear-gradient(135deg, rgba(12, 7, 22, 0.04), rgba(167, 13, 42, 0.08));
    background-origin: border-box;
    background-clip: padding-box, border-box;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02);
  }

  .ta .scard::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(167, 13, 42, 0.04), transparent);
    opacity: 0;
    transition: opacity 0.3s;
  }

  .ta .scard:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 45px rgba(167, 13, 42, 0.08), 0 8px 24px rgba(12, 7, 22, 0.04);
    background-image: linear-gradient(var(--l0), var(--l0)), linear-gradient(135deg, rgba(167, 13, 42, 0.35), rgba(167, 13, 42, 0.05));
  }

  .ta .scard:hover::before {
    opacity: 1;
  }

  .ta .sn {
    font-size: 38px;
    font-weight: 800;
    line-height: 1.1;
    margin-bottom: 6px;
    letter-spacing: -0.04em;
    background: var(--rg);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .ta .sl {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
    color: var(--lx3);
  }

  .ta .anote {
    background: rgba(167, 13, 42, 0.02);
    border: 1px solid rgba(167, 13, 42, 0.12);
    border-left: 5px solid var(--red);
    border-radius: 0 var(--r14) var(--r14) 0;
    padding: 20px 24px;
    margin-top: 30px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  }

  .ta .anh {
    font-size: 11px;
    font-weight: 850;
    color: var(--red);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 8px;
  }

  .ta .mrow {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 0;
    border-top: 1px solid var(--bl2);
    margin-top: 30px;
    font-size: 13.5px;
    color: var(--lx3);
    font-weight: 650;
  }

  .ta .mrow svg {
    width: 16px;
    height: 16px;
    color: var(--red);
    flex-shrink: 0;
  }

  .ta .mrow a {
    color: var(--red-d);
    font-weight: 700;
    transition: color 0.2s;
  }

  .ta .mrow a:hover {
    color: var(--red);
  }

  .ta .tech-adv {
    background: linear-gradient(135deg, rgba(167, 13, 42, 0.04) 0%, rgba(167, 13, 42, 0.01) 100%);
    border: 1px solid rgba(167, 13, 42, 0.12);
    border-radius: var(--r14);
    padding: 26px 28px;
    margin-top: 4px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  }

  .ta .tech-adv h4 {
    font-size: 14px;
    font-weight: 850;
    color: var(--lx1);
    margin-bottom: 16px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }

  .ta .fadv-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--bl2);
  }

  .ta .fadv-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .ta .fadv-label {
    font-size: 13.5px;
    color: var(--lx2);
    font-weight: 550;
  }

  .ta .fadv-val {
    font-size: 13.5px;
    font-weight: 800;
    color: var(--red);
  }

  /* ══ S04 CLONE SOLUTIONS REDESIGN ══ */
  .ta .scrd {
    display: block;
    text-decoration: none !important;
    background: var(--l0);
    border: 1px solid var(--bl2);
    border-radius: var(--r20);
    overflow: hidden;
    transition: all 0.4s var(--spring);
    box-shadow: 0 4px 16px rgba(12, 7, 22, 0.02);
  }

  .ta .scrd:hover {
    transform: translateY(-8px);
    border-color: rgba(167, 13, 42, 0.35);
    box-shadow: 0 24px 50px rgba(167, 13, 42, 0.1), 0 8px 24px rgba(12, 7, 22, 0.06);
  }

  .ta .sv {
    height: 130px;
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid var(--bl2);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .ta .sv1 {
    background: linear-gradient(135deg, rgba(167, 13, 42, 0.12), rgba(153, 0, 0, 0.03));
  }

  .ta .sv2 {
    background: linear-gradient(135deg, rgba(0, 243, 255, 0.12), rgba(0, 243, 255, 0.03));
  }

  .ta .sv3 {
    background: linear-gradient(135deg, rgba(153, 0, 0, 0.12), rgba(153, 0, 0, 0.03));
  }

  .ta .sv4 {
    background: linear-gradient(135deg, rgba(0, 230, 118, 0.12), rgba(0, 230, 118, 0.03));
  }

  .ta .sv5 {
    background: linear-gradient(135deg, rgba(157, 0, 255, 0.12), rgba(157, 0, 255, 0.03));
  }

  .ta .sv6 {
    background: linear-gradient(135deg, rgba(167, 13, 42, 0.06), rgba(153, 0, 0, 0.06));
  }

  .ta .spill {
    position: absolute;
    top: 16px;
    right: 16px;
    background: rgba(12, 7, 23, 0.76);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--r100);
    padding: 5px 14px;
    font-size: 10px;
    font-weight: 850;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.1em;
  }

  .ta .snum {
    font-size: 60px;
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    opacity: 0.07;
    position: absolute;
    bottom: -12px;
    right: 18px;
    color: var(--lx1);
  }

  .ta .siwrap {
    width: 56px;
    height: 56px;
    border-radius: var(--r14);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.65);
    box-shadow: 0 6px 20px rgba(12, 7, 22, 0.06);
    transition: transform 0.35s var(--spring);
  }

  .ta .scrd:hover .siwrap {
    transform: scale(1.1) rotate(4deg);
  }

  .ta .siwrap svg {
    width: 26px;
    height: 26px;
  }

  .ta .sb {
    padding: 26px;
  }

  .ta .scat {
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--red);
    margin-bottom: 12px;
  }

  .ta .scrd h3 {
    font-size: 19px;
    font-weight: 800;
    line-height: 1.3;
    color: var(--lx1);
    letter-spacing: -0.02em;
  }

  .ta .scrd p {
    font-size: 13.5px;
    line-height: 1.68;
    color: var(--lx2);
    margin-top: 10px;
  }

  .ta .schips {
    display: flex;
    gap: 8px;
    margin-top: 16px;
    flex-wrap: wrap;
  }

  .ta .schip {
    font-size: 11px;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: var(--r6);
    background: rgba(167, 13, 42, 0.05);
    color: var(--red);
    border: 1px solid rgba(167, 13, 42, 0.12);
  }

  .ta .hnote {
    margin-top: 26px;
    padding: 18px 24px;
    font-size: 13.8px;
    color: var(--lx2);
    background: rgba(167, 13, 42, 0.03);
    border: 1px solid rgba(167, 13, 42, 0.12);
    border-left: 5px solid var(--red);
    border-radius: 0 var(--r14) var(--r14) 0;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  }

  /* ══ S05 COMPARISON REDESIGN ══ */
  .ta .ctw {
    overflow-x: auto;
    border-radius: var(--r20);
    border: 1px solid var(--bd);
    margin-top: 40px;
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.5);
  }

  .ta .ct {
    width: 100%;
    border-collapse: collapse;
    font-size: 13.8px;
  }

  .ta .ct th,
  .ta .ct td {
    padding: 20px 22px;
    text-align: left;
    border: 1px solid;
    vertical-align: middle;
  }

  .ta .ct th {
    font-weight: 850;
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    line-height: 1.4;
  }

  .ta .sD .ct th {
    background: rgba(255, 255, 255, 0.03);
    color: var(--dx2);
    border-color: var(--bd);
  }

  .ta .sD .ct td {
    border-color: var(--bd);
    color: var(--dx2);
  }

  .ta .ct .ch {
    border-left: 2px solid rgba(167, 13, 42, 0.4) !important;
    border-right: 2px solid rgba(167, 13, 42, 0.4) !important;
    background: rgba(167, 13, 42, 0.05) !important;
  }

  .ta .ct tr:first-child .ch {
    border-top: 3px solid var(--red) !important;
  }

  .ta .ct tr:last-child .ch {
    border-bottom: 3px solid var(--red) !important;
  }

  .ta .ct .yes {
    color: var(--green) !important;
    font-weight: 800;
    text-shadow: 0 0 10px rgba(0, 230, 118, 0.2);
  }

  .ta .ct .no {
    opacity: 0.5;
  }

  .ta .ct .win {
    color: var(--red-l) !important;
    font-weight: 850;
    text-shadow: 0 0 10px rgba(167, 13, 42, 0.2);
  }

  .ta .dbx {
    padding: 24px 26px;
    border-radius: var(--r14);
    border: 1px solid;
  }

  .ta .sD .dbx {
    background: rgba(255, 255, 255, 0.02);
    border-color: var(--bd);
  }

  .ta .dlbl {
    font-size: 11.5px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 12px;
  }

  /* ══ S06 ARCHITECTURE REDESIGN ══ */
  .ta .ait {
    padding: 24px 0;
    border-bottom: 1px solid var(--bl2);
  }

  .ta .ait:last-child {
    border-bottom: none;
  }

  .ta .ait h3 {
    font-size: 17px;
    font-weight: 800;
    color: var(--lx1);
    margin-bottom: 18px;
    letter-spacing: -0.02em;
  }
  .ta .ait p.body {
    margin-bottom: 14px;
  }

  .ta .wcall {
    background: rgba(167, 13, 42, 0.02);
    border: 1px solid rgba(167, 13, 42, 0.12);
    border-left: 5px solid var(--red);
    border-radius: 0 var(--r14) var(--r14) 0;
    padding: 20px;
    margin-top: 4px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
  }

  .ta .wch {
    font-size: 11.5px;
    font-weight: 850;
    color: var(--red);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    margin-bottom: 8px;
  }

  /* High fidelity macOS Window structure */
  .ta .cw2 {
    background: var(--dk0);
    border: 1px solid var(--bd2);
    border-radius: var(--r20);
    overflow: hidden;
    box-shadow: 0 35px 80px rgba(0, 0, 0, 0.7);
    position: relative;
    transition: transform 0.4s var(--spring);
  }

  .ta .cw2:hover {
    transform: translateY(-4px);
    box-shadow: 0 40px 90px rgba(157, 0, 255, 0.12), 0 30px 75px rgba(0, 0, 0, 0.75);
  }

  .ta .cw2::before {
    content: '';
    position: absolute;
    inset: 0;
    padding: 1px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), transparent, rgba(255, 255, 255, 0.02));
    border-radius: var(--r20);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
  }

  .ta .chdr {
    padding: 16px 22px;
    border-bottom: 1px solid var(--bd);
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, 0.03);
  }

  .ta .cd {
    width: 12px;
    height: 12px;
    border-radius: 50%;
  }

  .ta .cdr {
    background: #ff5f56;
  }

  .ta .cdy {
    background: #ffbd2e;
  }

  .ta .cdg {
    background: #27c93f;
  }

  .ta .ctit {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--dx3);
    margin-left: 10px;
    font-family: var(--fm);
    letter-spacing: 0.04em;
  }

  .ta .cbody {
    padding: 24px 28px;
    font-family: var(--fm);
    font-size: 12.8px;
    line-height: 1.9;
    white-space: pre;
    overflow-x: auto;
    color: rgba(255, 255, 255, 0.95);
    background: #050308;
  }

  .ta .ckw {
    color: #c678dd;
    font-weight: 700;
  }

  .ta .cty {
    color: #e5c07b;
  }

  .ta .cst {
    color: #98c379;
  }

  .ta .ccm {
    color: #5c6370;
    font-style: italic;
  }

  .ta .cnot {
    padding: 18px 24px;
    background: var(--l1);
    border-top: 1px solid var(--bl2);
    font-size: 13.8px;
    color: var(--lx2);
    line-height: 1.7;
    border-radius: 0 0 var(--r20) var(--r20);
    font-weight: 500;
  }

  /* ══ S07 SERVICE MODELS REDESIGN ══ */
  .ta .vcrd {
    background: var(--l0);
    border: 1px solid var(--bl2);
    border-radius: var(--r20);
    overflow: hidden;
    transition: all 0.4s var(--spring);
    position: relative;
    box-shadow: 0 4px 16px rgba(12, 7, 22, 0.02);
  }

  .ta .vcrd:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 50px rgba(167, 13, 42, 0.08), 0 8px 24px rgba(12, 7, 22, 0.06);
    border-color: rgba(167, 13, 42, 0.3);
  }

  .ta .vbadge {
    position: absolute;
    top: -1px;
    left: 24px;
    background: var(--red);
    color: #fff;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    padding: 5px 16px;
    border-radius: 0 0 8px 8px;
    z-index: 5;
    box-shadow: 0 2px 10px rgba(167, 13, 42, 0.25);
  }

  .ta .vvis {
    height: 180px;
    position: relative;
    overflow: hidden;
    border-bottom: 1px solid var(--bl2);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* Phone Mockups redesign */
  .ta .vvis-phones {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, rgba(167, 13, 42, 0.08), rgba(153, 0, 0, 0.02));
  }

  .ta .phone-mock {
    position: absolute;
    width: 68px;
    height: 110px;
    border-radius: 14px;
    border: 2.2px solid;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.45);
  }

  .ta .phone-mock .pm-bar {
    height: 12px;
    flex-shrink: 0;
    border-bottom: 0.5px solid rgba(255, 255, 255, 0.05);
  }

  .ta .phone-mock .pm-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px 6px;
  }

  .ta .phone-mock .pm-line {
    height: 3px;
    border-radius: 2px;
    width: 85%;
  }

  .ta .phone-mock .pm-line:nth-child(2) {
    width: 55%;
  }

  .ta .phone-mock .pm-line:nth-child(3) {
    width: 75%;
  }

  .ta .phone-mock .pm-btn {
    margin-top: auto;
    height: 11px;
    border-radius: 4px;
  }

  .ta .phone-customer {
    transform: rotate(-8deg) translate(-40px, 8px);
    z-index: 1;
    opacity: 0.7;
    border-color: rgba(255, 255, 255, 0.16);
    background: rgba(8, 4, 12, 0.94);
  }

  .ta .phone-customer .pm-bar {
    background: rgba(167, 13, 42, 0.35);
  }

  .ta .phone-customer .pm-line {
    background: rgba(255, 255, 255, 0.12);
  }

  .ta .phone-customer .pm-btn {
    background: rgba(167, 13, 42, 0.3);
  }

  .ta .phone-driver {
    z-index: 3;
    border-color: rgba(167, 13, 42, 0.6);
    background: linear-gradient(160deg, rgba(167, 13, 42, 0.15), rgba(8, 3, 12, 0.94));
    box-shadow: 0 16px 36px rgba(167, 13, 42, 0.25);
    animation: ta-float 4.5s ease-in-out infinite;
  }

  .ta .phone-driver .pm-bar {
    background: rgba(167, 13, 42, 0.65);
  }

  .ta .phone-driver .pm-line {
    background: rgba(255, 255, 255, 0.25);
  }

  .ta .phone-driver .pm-btn {
    background: var(--rg);
  }

  .ta .phone-admin {
    transform: rotate(8deg) translate(40px, -4px);
    z-index: 2;
    opacity: 0.8;
    border-color: rgba(255, 255, 255, 0.2);
    background: rgba(12, 6, 20, 0.94);
    animation: ta-float2 4.5s ease-in-out infinite;
  }

  .ta .phone-admin .pm-bar {
    background: rgba(255, 255, 255, 0.16);
  }

  .ta .phone-admin .pm-line {
    background: rgba(255, 255, 255, 0.12);
  }

  .ta .phone-admin .pm-btn {
    background: rgba(255, 255, 255, 0.16);
  }

  .ta .phone-lbl {
    position: absolute;
    bottom: 8px;
    font-size: 7.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: rgba(255, 255, 255, 0.4);
    text-align: center;
    width: 100%;
  }

  .ta .phone-lbl.driver {
    color: var(--red-l);
    z-index: 4;
    bottom: 4px;
    left: 50%;
    transform: translateX(-50%);
    width: 70px;
    font-weight: 900;
  }

  /* Widget Tree Layout */
  .ta .vvis-tree {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, rgba(0, 243, 255, 0.08), rgba(0, 243, 255, 0.02));
  }

  .ta .tree-svg {
    width: 100%;
    height: 100%;
    max-width: 220px;
    max-height: 130px;
  }

  .ta .tree-node {
    fill: rgba(8, 3, 15, 0.92);
    stroke: rgba(0, 243, 255, 0.5);
    stroke-width: 1.2;
    rx: 5;
  }

  .ta .tree-node-root {
    fill: rgba(167, 13, 42, 0.16);
    stroke: rgba(167, 13, 42, 0.65);
    stroke-width: 1.5;
  }

  .ta .tree-line {
    stroke: rgba(0, 243, 255, 0.25);
    stroke-width: 1;
    stroke-dasharray: 4 3;
  }

  .ta .tree-line-root {
    stroke: rgba(167, 13, 42, 0.4);
    stroke-width: 1.2;
    stroke-dasharray: none;
    animation: ta-draw 3s ease-in-out infinite alternate;
  }

  .ta .tree-text {
    fill: rgba(255, 255, 255, 0.75);
    font-size: 6.5px;
    font-family: var(--fm);
    font-weight: 600;
  }

  .ta .tree-text-root {
    fill: var(--red-l);
  }

  /* Sprint Timeline */
  .ta .vvis-sprint {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
    background: linear-gradient(180deg, rgba(157, 0, 255, 0.08), rgba(157, 0, 255, 0.02));
  }

  .ta .sprint-track {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }

  .ta .sprint-row {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .ta .sprint-label {
    font-size: 8px;
    font-weight: 850;
    color: rgba(255, 255, 255, 0.4);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    width: 30px;
    flex-shrink: 0;
    text-align: right;
  }

  .ta .sprint-bar-wrap {
    flex: 1;
    height: 10px;
    background: rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    border: 0.5px solid rgba(255, 255, 255, 0.02);
  }

  .ta .sprint-fill {
    height: 100%;
    border-radius: 6px;
    position: relative;
  }

  .ta .sprint-fill.done {
    background: linear-gradient(90deg, var(--red), rgba(167, 13, 42, 0.5));
  }

  .ta .sprint-fill.active {
    background: linear-gradient(90deg, rgba(157, 0, 255, 0.8), rgba(157, 0, 255, 0.45));
    width: 75%;
    position: relative;
  }

  .ta .sprint-fill.active::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transform: translateX(-100%);
    animation: ta-shimmer 1.8s infinite;
  }

  .ta .sprint-fill.next {
    background: rgba(255, 255, 255, 0.06);
  }

  .ta .sprint-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex-shrink: 0;
  }

  .ta .sprint-dot.done {
    background: var(--green);
  }

  .ta .sprint-dot.active {
    background: var(--red-l);
    animation: ta-dotglow 1.5s ease-in-out infinite;
  }

  .ta .sprint-dot.next {
    background: rgba(255, 255, 255, 0.2);
  }

  .ta .vbody {
    padding: 28px 30px;
  }

  .ta .vtag {
    font-size: 10.5px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--red);
    margin-bottom: 12px;
  }

  .ta .vtit {
    font-size: 20px;
    font-weight: 800;
    line-height: 1.25;
    color: var(--lx1);
    margin-bottom: 12px;
    letter-spacing: -0.02em;
  }

  .ta .vdesc {
    font-size: 13.8px;
    line-height: 1.68;
    color: var(--lx2);
    margin-bottom: 20px;
  }

  /* ══ S08 QUALITY STANDARDS REDESIGN ══ */
  .ta .two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .ta .tc-panel {
    padding: 130px 90px;
    display: flex;
    align-items: flex-start;
  }

  .ta .tc-inner {
    width: 100%;
    max-width: 560px;
  }

  .ta .two-col .tc-panel:first-child .tc-inner {
    margin-left: auto;
    margin-right: 0;
  }

  .ta .two-col .tc-panel:last-child .tc-inner {
    margin-left: 0;
    margin-right: auto;
  }

  .ta .qs-dark {
    background: var(--dk1);
    position: relative;
  }

  .ta .qs-dark::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 0% 100%, rgba(167, 13, 42, 0.08) 0%, transparent 68%);
    pointer-events: none;
  }

  .ta .qs-red {
    background: var(--red-d);
    position: relative;
    overflow: hidden;
  }

  .ta .qs-red::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 100% 0%, rgba(167, 13, 42, 0.35) 0%, transparent 68%);
    pointer-events: none;
  }

  .ta .qs-red .tc-inner {
    position: relative;
    z-index: 1;
  }

  .ta .qs-red h2 em {
    color: #ffffff;
  }

  .ta .qs-dark .qrow {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--r10);
    padding: 16px 22px;
    transition: all 0.3s var(--ease);
  }

  .ta .qs-dark .qrow:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(167, 13, 42, 0.35);
    transform: translateX(6px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
  }

  .ta .qs-dark .qn {
    font-size: 13.8px;
    font-weight: 650;
    color: var(--dx1);
  }

  .ta .qs-dark .qb {
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    background: rgba(255, 255, 255, 0.06);
    border-color: var(--bd2);
    color: var(--dx3);
    flex-shrink: 0;
    white-space: nowrap;
  }

  .ta .qs-dark h2 {
    color: var(--dx1);
  }

  .ta .qs-dark h2 em {
    color: var(--red-l);
  }

  .ta .qs-dark .lead {
    color: var(--dx2);
  }

  .ta .qs-dark .eyp {
    background: rgba(8, 4, 12, 0.75);
    border-color: var(--bd2);
  }

  .ta .qs-dark .eyp strong {
    color: #fff;
  }

  .ta .qs-dark .el {
    background: var(--red);
  }

  .ta .qs-red .tc-inner {
    max-width: 760px;
  }

  .ta .qsteps {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    width: 100%;
  }

  .ta .vstep {
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--r14);
    padding: 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    transition: transform 0.35s var(--spring), border-color 0.3s, background 0.3s, box-shadow 0.3s;
  }

  .ta .vstep:hover {
    transform: translateY(-4px);
    border-color: rgba(255, 255, 255, 0.22);
    background: rgba(255, 255, 255, 0.07);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.3);
  }

  .ta .vstep-nb {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11.5px;
    font-weight: 850;
    flex-shrink: 0;
  }

  .ta .vstep h4 {
    font-size: 15px;
    font-weight: 800;
    color: #fff;
    margin: 0;
    line-height: 1.35;
    letter-spacing: -0.01em;
  }

  .ta .vstep p {
    font-size: 12.5px;
    line-height: 1.62;
    color: rgba(255, 255, 255, 0.82);
    margin: 0;
  }

  /* ══ S09 TECH STACK REDESIGN ══ */
  .ta #stack {
    background: linear-gradient(135deg, #cccccc 0%, #b2b2b2 100%) !important;
    color: var(--lx2) !important;
  }

  .ta #stack h2 {
    color: var(--lx1) !important;
  }

  .ta #stack .mu {
    color: var(--lx3) !important;
  }

  .ta #stack .eyp {
    background: rgba(255, 255, 255, 0.75) !important;
    border-color: rgba(0, 0, 0, 0.08) !important;
    color: var(--lx2) !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.03) !important;
  }

  .ta #stack .eyp strong {
    color: var(--red) !important;
  }

  .ta #stack .el {
    background: var(--red) !important;
  }

  .ta .stack16 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
  }

  .ta .stki {
    background: rgba(255, 255, 255, 0.6) !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: var(--r14);
    padding: 28px 22px;
    text-align: center;
    transition: all 0.35s var(--ease);
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    position: relative;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.03) !important;
  }

  .ta .stki::before {
    content: '';
    position: absolute;
    inset: 0;
    padding: 1px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.4), transparent, rgba(0, 0, 0, 0.03));
    border-radius: var(--r14);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
  }

  .ta .stki:hover {
    transform: translateY(-6px);
    border-color: var(--red) !important;
    background: rgba(255, 255, 255, 0.9) !important;
    box-shadow: 0 20px 40px rgba(167, 13, 42, 0.12) !important;
  }

  .ta .stlogo {
    width: 50px;
    height: 50px;
    border-radius: var(--r10);
    border: 1px solid rgba(0, 0, 0, 0.1) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 14px;
    font-weight: 850;
    background: rgba(0, 0, 0, 0.04) !important;
    color: var(--red) !important;
    transition: transform 0.3s var(--spring);
  }

  .ta .stki:hover .stlogo {
    transform: scale(1.1) rotate(4deg);
    background: rgba(0, 0, 0, 0.08) !important;
    border-color: var(--red) !important;
  }

  .ta .stname {
    font-size: 14px;
    font-weight: 800;
    color: var(--lx1) !important;
    margin-bottom: 6px;
    letter-spacing: -0.01em;
  }

  .ta .stdesc {
    font-size: 11px;
    line-height: 1.5;
    color: var(--lx3) !important;
    font-weight: 500;
  }

  /* ══ S10 PROCESS REDESIGN ══ */
  .ta #process {
    background: #000000 !important;
    color: #fff !important;
    position: relative;
    overflow: hidden;
    padding: 120px 0;
  }

  .ta #process h2 {
    color: #fff !important;
  }

  .ta #process h2 em {
    color: var(--red) !important;
    font-style: normal;
  }

  .ta #process p,
  .ta #process .body,
  .ta #process .lead {
    color: rgba(255, 255, 255, 0.82) !important;
  }

  .ta #process .pill .eyp {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.14);
  }

  .ta #process .pill .eyp strong {
    color: var(--red-l);
  }

  .ta-process-wrapper {
    margin-top: 80px;
    position: relative;
  }

  .ta-process-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 20px;
    position: relative;
  }

  .ta-process-step {
    position: relative;
    height: 380px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .ta-process-card {
    width: 200px;
    height: 220px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 18px;
    padding: 24px 18px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.3);
    transition: all 0.4s var(--ease);
    position: relative;
    z-index: 5;
  }

  .ta-process-card:hover {
    transform: translateY(-8px);
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.18);
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.45);
  }

  .ta-process-icon-wrap {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1.5px solid rgba(255, 255, 255, 0.2) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 14px;
    transition: all 0.3s var(--ease);
  }

  .ta-process-card:hover .ta-process-icon-wrap {
    transform: scale(1.08);
    background: #fff !important;
    border-color: #fff !important;
  }

  .ta-process-card:hover .ta-process-icon-wrap svg {
    stroke: #000000 !important;
    fill: none;
  }

  .ta-process-icon-wrap svg {
    width: 22px;
    height: 22px;
    stroke: #ffffff !important;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    fill: none;
    transition: all 0.3s var(--ease);
  }

  .ta-process-card h3 {
    font-size: 17.5px !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    margin-bottom: 8px !important;
    letter-spacing: -0.01em !important;
  }

  .ta-process-card p {
    font-size: 12.8px !important;
    line-height: 1.62 !important;
    color: rgba(255, 255, 255, 0.78) !important;
    font-weight: 500 !important;
    margin: 0 !important;
  }

  .ta-step-label {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
    z-index: 10;
    pointer-events: none;
  }

  .ta-step-label.top {
    top: 15px;
  }

  .ta-step-label.bottom {
    bottom: 15px;
  }

  .ta-step-label span {
    display: block;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    white-space: nowrap;
  }

  .ta-step-label.top span {
    margin-bottom: 8px;
  }

  .ta-step-label.bottom span {
    margin-top: 8px;
  }

  .ta-step-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin: 0 auto;
  }

  .ta-proc-svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
    z-index: 2;
  }

  .ta .tpills {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 56px;
  }

  .ta .tpill {
    padding: 18px 28px;
    border-radius: var(--r14);
    text-align: center;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.08);
    transition: all 0.35s var(--spring);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.01);
  }

  .ta .tpill:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(0, 0, 0, 0.3);
    border-color: rgba(167, 13, 42, 0.5);
    background: rgba(255, 255, 255, 0.04);
  }

  .ta .tpill strong {
    display: block;
    font-size: 24px;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.03em;
    line-height: 1.1;
    background: linear-gradient(135deg, #fff 0%, rgba(255, 255, 255, 0.7) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .ta .tpill span {
    display: block;
    font-size: 11.5px;
    color: rgba(255, 255, 255, 0.6);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 6px;
    font-weight: 700;
  }

  @media (max-width: 991px) {
    .ta-process-grid {
      grid-template-columns: 1fr;
      gap: 40px;
      justify-items: center;
    }

    .ta-process-grid::before {
      content: '';
      position: absolute;
      top: 40px;
      bottom: 40px;
      left: 50%;
      transform: translateX(-50%);
      width: 3px;
      background: linear-gradient(to bottom, #a70d2a, #990000, #a70d2a, #990000, #a70d2a);
      z-index: 1;
    }

    .ta-process-step {
      height: auto;
      width: 100%;
      max-width: 320px;
      flex-direction: column;
      align-items: center;
      padding: 0;
    }

    .ta-process-card {
      width: 100%;
      height: auto;
      min-height: 200px;
      padding: 30px 24px;
    }

    .ta-step-label {
      position: relative !important;
      top: auto !important;
      bottom: auto !important;
      left: auto !important;
      transform: none !important;
      margin-bottom: 12px;
    }

    .ta-step-label.bottom {
      display: flex;
      flex-direction: column-reverse;
      align-items: center;
    }

    .ta-step-label.top {
      display: flex;
      flex-direction: column;
      align-items: center;
    }

    .ta-step-dot {
      margin: 6px auto !important;
      width: 12px;
      height: 12px;
      box-shadow: 0 0 10px currentColor;
    }

    .ta-proc-svg {
      display: none;
    }
  }

  /* ══ S11 PRICING REDESIGN ══ */
  .ta .pcrd {
    background: var(--l0);
    border: 1px solid var(--bl2);
    border-radius: var(--r20);
    padding: 44px 34px;
    position: relative;
    transition: all 0.4s var(--spring);
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(12, 7, 22, 0.02);
  }

  .ta .pcrd::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 5px;
    background: var(--rg);
    opacity: 0;
    transition: opacity 0.3s var(--ease);
  }

  .ta .pcrd:hover {
    transform: translateY(-8px);
    box-shadow: 0 24px 50px rgba(12, 7, 22, 0.06), 0 10px 24px rgba(167, 13, 42, 0.05);
    border-color: rgba(167, 13, 42, 0.3);
  }

  .ta .pcrd:hover::before {
    opacity: 1;
  }

  .ta .pcrd.hot {
    border-color: var(--red);
    box-shadow: 0 16px 40px rgba(167, 13, 42, 0.08);
    background: var(--l1);
  }

  .ta .pcrd.hot::before {
    opacity: 1;
  }

  .ta .ptag {
    position: absolute;
    top: -1px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--red);
    color: #fff;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding: 5px 18px;
    border-radius: 0 0 8px 8px;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(167, 13, 42, 0.25);
  }

  .ta .pname {
    font-size: 19px;
    font-weight: 800;
    color: var(--lx1);
    margin-bottom: 14px;
    letter-spacing: -0.02em;
  }

  .ta .pamt {
    font-size: 40px;
    font-weight: 850;
    line-height: 1;
    margin-bottom: 10px;
    letter-spacing: -0.04em;
    color: var(--red-d);
    background: linear-gradient(135deg, var(--red-d) 0%, var(--red) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .ta .pnote {
    font-size: 12.8px;
    color: var(--lx3);
    margin-bottom: 26px;
    font-weight: 600;
  }

  .ta .pcrd ul {
    display: flex;
    flex-direction: column;
    gap: 11px;
    margin-bottom: 32px;
  }

  .ta .pcrd li {
    position: relative;
    padding-left: 26px;
    font-size: 13.8px;
    line-height: 1.6;
    color: var(--lx2);
    font-weight: 550;
  }

  .ta .pcrd li::before {
    content: '✓';
    position: absolute;
    left: 0;
    font-weight: 900;
    color: var(--green);
    font-size: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: rgba(0, 230, 118, 0.08);
    border-radius: 50%;
    margin-top: 2px;
  }

  /* ══ S12 CASE STUDY REDESIGN ══ */
  .ta .cs-dark {
    background: var(--dk1);
    position: relative;
  }

  .ta .cs-dark::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 0% 100%, rgba(167, 13, 42, 0.08) 0%, transparent 68%);
    pointer-events: none;
  }

  .ta .cs-dark .tc-inner {
    position: relative;
    z-index: 1;
  }

  .ta .cs-dark h2 {
    color: var(--dx1);
  }

  .ta .cs-dark h2 em {
    color: var(--red-l);
  }

  .ta .cs-dark .body {
    color: var(--dx2);
  }

  .ta .cs-dark .eyp {
    background: rgba(8, 4, 12, 0.75);
    border-color: var(--bd2);
  }

  .ta .cs-dark .eyp strong {
    color: #fff;
  }

  .ta .cs-dark .el {
    background: var(--red);
  }

  .ta .cs-dark .cst {
    color: var(--dx1);
  }

  .ta .cs-dark .csb {
    color: var(--dx2);
  }

  .ta .cs-dark .csr {
    border-color: var(--bd);
  }

  .ta .cs-dark .csn {
    background: var(--ra);
    color: var(--red-l);
    border-color: var(--rb);
  }

  .ta .cs-dark .rbar .rpill {
    background: rgba(255, 255, 255, 0.03);
    border-color: var(--bd);
  }

  .ta .cs-dark .rbar .rpill strong {
    color: var(--red-l);
  }

  .ta .cs-dark .rbar .rpill span {
    color: var(--dx3);
  }

  .ta .cs-dark .btn-g {
    border-color: var(--bd3);
    color: var(--dx1) !important;
  }

  .ta .csr {
    display: flex;
    gap: 20px;
    align-items: flex-start;
    padding: 22px 0;
    border-bottom: 1px solid var(--bd);
  }

  .ta .csr:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }

  .ta .csn {
    width: 40px;
    height: 40px;
    border-radius: var(--r10);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13.5px;
    font-weight: 850;
    flex-shrink: 0;
    background: var(--ra);
    color: var(--red-l);
    border: 1px solid var(--rb);
    transition: transform 0.3s;
  }

  .ta .csr:hover .csn {
    transform: scale(1.08) rotate(3deg);
  }

  .ta .cst {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 8px;
    color: var(--dx1);
    letter-spacing: -0.01em;
  }

  .ta .csb {
    font-size: 13.8px;
    line-height: 1.7;
    color: var(--dx2);
  }

  .ta .rbar {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 26px;
  }

  .ta .rpill {
    padding: 16px 20px;
    border-radius: var(--r10);
    text-align: center;
    background: rgba(255, 255, 255, 0.03);
    border: 1px solid var(--bd);
    transition: all 0.28s var(--ease);
  }

  .ta .rpill:hover {
    border-color: rgba(167, 13, 42, 0.4);
    background: rgba(167, 13, 42, 0.08);
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(167, 13, 42, 0.12);
  }

  .ta .rpill strong {
    display: block;
    font-size: 24px;
    font-weight: 800;
    color: var(--red-l);
    letter-spacing: -0.03em;
    line-height: 1.1;
  }

  .ta .rpill span {
    display: block;
    font-size: 11px;
    color: var(--dx3);
    margin-top: 4px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }

  .ta .cs-dark .btn-g:hover {
    border-color: var(--red);
    background: var(--ra);
  }

  /* Left-right symmetry card boxes */
  .ta .cs-grey .testi {
    background: var(--l0);
    border-color: var(--bl2);
    box-shadow: 0 8px 30px rgba(12, 7, 22, 0.03);
    border-radius: var(--r20);
    padding: 36px;
    border: 1px solid var(--bl2);
  }

  .ta .cs-grey .tlbl {
    color: var(--red);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin-bottom: 16px;
    display: block;
  }

  .ta .cs-grey .tq {
    color: var(--lx1);
    font-size: 16px;
    font-weight: 550;
    line-height: 1.76;
    font-style: italic;
    letter-spacing: -0.01em;
  }

  .ta .cs-grey .tau {
    border-color: var(--bl2);
    padding-top: 20px;
    margin-top: 20px;
    display: flex;
    align-items: center;
    gap: 14px;
    border-top: 1px solid var(--bl2);
  }

  .ta .cs-grey .tav {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--ra);
    border: 1px solid var(--rb);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 850;
    color: var(--red);
  }

  .ta .cs-grey .tnm {
    color: var(--lx1);
    font-weight: 850;
    font-size: 15px;
  }

  .ta .cs-grey .trl {
    color: var(--lx3);
    font-size: 12.8px;
    margin-top: 2px;
    font-weight: 550;
  }

  .ta .cs-grey .tvfy {
    margin-top: 20px;
    padding: 14px 18px;
    background: var(--l1);
    border-radius: var(--r10);
    font-size: 13.8px;
    font-weight: 700;
    border: 1px solid var(--bl2);
  }

  .ta .cs-grey .proj-brief {
    background: var(--l0);
    border-color: var(--bl2);
    box-shadow: 0 8px 30px rgba(12, 7, 22, 0.03);
    border-radius: var(--r20);
    padding: 26px 30px;
    border: 1px solid var(--bl2);
  }

  .ta .cs-grey .pb-title {
    color: var(--red);
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin-bottom: 16px;
  }

  .ta .cs-grey .pb-row {
    border-color: var(--bl2);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 0;
    border-bottom: 1px solid var(--bl2);
  }

  .ta .cs-grey .pb-row:last-child {
    border-bottom: none;
  }

  .ta .cs-grey .pb-label {
    color: var(--lx3);
    font-weight: 600;
    font-size: 13.5px;
  }

  .ta .cs-grey .pb-val {
    color: var(--lx1);
    font-weight: 700;
    font-size: 13.5px;
  }

  .ta .cs-grey .pm-item {
    background: var(--l0);
    border-color: var(--bl2);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02);
    border-radius: var(--r12);
    padding: 16px;
    border: 1px solid var(--bl2);
  }

  .ta .cs-grey .pm-num {
    color: var(--red-d);
    font-size: 24px;
    font-weight: 850;
    letter-spacing: -0.02em;
    background: linear-gradient(135deg, var(--red-d) 0%, var(--red) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .ta .cs-grey .pm-lbl {
    color: var(--lx3);
    font-weight: 700;
    font-size: 10.5px;
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
  }

  /* ══ S13 REVIEWS REDESIGN ══ */
  .ta .rev-card {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: var(--r20);
    padding: 34px;
    transition: all 0.35s var(--ease);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.25);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .ta .rev-card:hover {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(167, 13, 42, 0.35);
    transform: translateY(-8px);
    box-shadow: 0 30px 60px rgba(167, 13, 42, 0.12), 0 10px 30px rgba(0, 0, 0, 0.45);
  }

  .ta .rev-stars {
    color: #ffd700;
    font-size: 16px;
    letter-spacing: 2px;
    margin-bottom: 14px;
    text-shadow: 0 0 10px rgba(255, 215, 0, 0.3);
  }

  .ta .rev-source {
    color: var(--dx3);
    font-size: 11.5px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 16px;
  }

  .ta .rev-quote {
    color: var(--dx2);
    font-size: 15px;
    line-height: 1.76;
    font-style: italic;
    font-weight: 500;
  }

  .ta .rev-author {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-top: 20px;
    margin-top: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }

  .ta .rev-av {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.12);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 850;
    color: #fff;
  }

  .ta .rev-name {
    color: #fff;
    font-weight: 800;
    font-size: 14.5px;
  }

  .ta .rev-role {
    color: var(--dx3);
    font-size: 12.5px;
    margin-top: 2px;
    font-weight: 500;
  }

  .ta .rev-tag {
    font-size: 11px;
    color: var(--red-l);
    font-weight: 750;
    margin-top: 16px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
  }

  .ta .sR .rev-card {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.1);
  }

  .ta .sR .rev-card:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.25);
  }

  .ta .sR .rev-stars {
    color: #ffe644;
  }

  .ta .sR .rev-source {
    color: rgba(255, 255, 255, 0.7);
  }

  .ta .sR .rev-quote {
    color: #fff;
  }

  .ta .sR .rev-author {
    border-color: rgba(255, 255, 255, 0.14);
  }

  .ta .sR .rev-av {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.24);
  }

  .ta .sR .rev-role {
    color: rgba(255, 255, 255, 0.65);
  }

  .ta .sR .rev-tag {
    color: #ffe644;
  }

  .ta .rev-summary {
    display: flex;
    align-items: center;
    gap: 32px;
    flex-wrap: wrap;
    background: var(--l0);
    border: 1px solid var(--bl2);
    border-radius: var(--r14);
    padding: 24px 36px;
    box-shadow: 0 8px 24px rgba(12, 7, 22, 0.02);
  }

  .ta .rev-sum-item {
    display: flex;
    flex-direction: column;
  }

  .ta .rev-sum-item strong {
    font-size: 24px;
    font-weight: 850;
    color: var(--red-d);
    letter-spacing: -0.02em;
    line-height: 1.1;
    background: linear-gradient(135deg, var(--red-d) 0%, var(--red) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .ta .rev-sum-item span {
    font-size: 11.5px;
    color: var(--lx3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 5px;
    font-weight: 700;
  }

  .ta .rev-sum-sep {
    width: 1px;
    height: 42px;
    background: var(--bl2);
    flex-shrink: 0;
  }

  /* ══ S14 RELATED SERVICES REDESIGN ══ */
  .ta .rcrd {
    display: flex;
    align-items: center;
    gap: 18px;
    background: var(--l0);
    border: 1px solid var(--bl2);
    border-radius: var(--r14);
    padding: 22px 24px;
    transition: all 0.35s var(--spring);
    text-decoration: none !important;
    box-shadow: 0 4px 16px rgba(12, 7, 22, 0.02);
  }

  .ta .rcrd:hover {
    transform: translateX(6px);
    border-color: rgba(167, 13, 42, 0.35);
    box-shadow: 0 16px 36px rgba(167, 13, 42, 0.08);
  }

  .ta .rict {
    width: 44px;
    height: 44px;
    border-radius: var(--r10);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--ra);
    border: 1px solid var(--rb);
    flex-shrink: 0;
    transition: transform 0.3s var(--spring);
  }

  .ta .rcrd:hover .rict {
    transform: scale(1.1) rotate(4deg);
    background: rgba(167, 13, 42, 0.1);
  }

  .ta .rict svg {
    width: 20px;
    height: 20px;
    color: var(--red);
  }

  .ta .rcat {
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--lx3);
    margin-bottom: 5px;
  }

  .ta .rtit {
    font-size: 15px;
    font-weight: 800;
    color: var(--lx1);
    letter-spacing: -0.01em;
  }

  /* ══ S15 FAQ REDESIGN ══ */
  .ta .fitem {
    background: var(--l0);
    border: 1px solid var(--bl2);
    border-radius: var(--r14);
    overflow: hidden;
    transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.01);
  }

  .ta .fitem:hover {
    border-color: rgba(167, 13, 42, 0.28);
    box-shadow: 0 12px 28px rgba(12, 7, 22, 0.05);
  }

  .ta .fq {
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    color: var(--lx1);
    padding: 24px 28px 0;
    letter-spacing: -0.02em;
  }

  .ta .faq-a {
    font-size: 14px;
    line-height: 1.74;
    color: var(--lx2);
    padding: 12px 28px 24px;
    font-weight: 500;
  }

  /* ══ S16 CTA BANNER REDESIGN ══ */
  .ta .ctawrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 64px;
    flex-wrap: wrap;
  }

  .ta .ctal {
    flex: 1;
    min-width: 280px;
  }

  .ta .ctar {
    display: flex;
    flex-direction: column;
    gap: 14px;
    flex-shrink: 0;
    min-width: 260px;
  }

  .ta .ctapr {
    display: flex;
    gap: 36px;
    margin-top: 32px;
    flex-wrap: wrap;
  }

  .ta .ctapr strong {
    display: block;
    font-size: 28px;
    font-weight: 850;
    color: var(--red-d);
    letter-spacing: -0.03em;
    line-height: 1.1;
    background: linear-gradient(135deg, var(--red-d) 0%, var(--red) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
  }

  .ta .ctapr span {
    display: block;
    font-size: 11.5px;
    color: var(--lx3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-top: 6px;
    font-weight: 700;
  }

  .ta .ctanote {
    font-size: 12.8px;
    color: var(--lx3);
    text-align: center;
    font-weight: 600;
  }

  /* Responsive adjustments */
  @media(max-width:1100px) {

    .ta .hi,
    .ta .sp5050a {
      grid-template-columns: 1fr;
    }

    .ta .hr {
      display: block;
      margin-top: 48px;
      width: 100%;
    }

    .ta .hl {
      padding-bottom: 0;
    }

    .ta .sp5050 {
      grid-template-columns: 1fr;
      gap: 56px;
    }

    .ta .g4 {
      grid-template-columns: 1fr 1fr;
    }

    .ta .g5 {
      grid-template-columns: 1fr 1fr 1fr;
      gap: 30px;
    }

    .ta .procl {
      display: none;
    }

    .ta .ctawrap {
      flex-direction: column;
      align-items: flex-start;
      gap: 40px;
    }

    .ta .ctar {
      width: 100%;
    }

    .ta .hsr {
      flex-wrap: wrap;
      justify-content: center;
      gap: 20px 24px;
    }

    .ta .hsep {
      display: none;
    }

    .ta .tbrow {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px 32px;
      justify-items: center;
    }

    .ta .tsep {
      display: none;
    }
  }

  @media(max-width:900px) {
    .ta .stack16 {
      grid-template-columns: repeat(3, 1fr);
    }

    .ta .approach-cards {
      grid-template-columns: 1fr 1fr 1fr;
    }

    .ta .proj-metrics {
      grid-template-columns: 1fr 1fr 1fr;
    }

    .ta .two-col {
      grid-template-columns: 1fr;
    }

    .ta .tc-panel {
      padding: 68px 32px;
    }

    .ta .tc-panel .tc-inner {
      max-width: none;
      margin: 0;
    }

    .ta .qsteps {
      grid-template-columns: 1fr;
      gap: 16px;
    }
  }

  @media(max-width:768px) {
    .ta .W {
      padding: 0 24px;
    }

    .ta .S {
      padding: 80px 0;
    }

    .ta .hero {
      padding-bottom: 80px;
    }

    .ta h2 {
      font-size: 28px;
      letter-spacing: 0;
      line-height: 1.16;
    }

    .ta h3 {
      font-size: 18px;
      letter-spacing: 0;
    }

    .ta .lead {
      font-size: 16px;
      line-height: 1.7;
    }

    .ta .body {
      font-size: 14.5px;
      line-height: 1.72;
    }

    .ta .hh1 {
      font-size: 38px;
      line-height: 1.35;
      letter-spacing: 0;
    }

    .ta .sh {
      display: block;
      margin-bottom: 34px;
    }

    .ta .pill {
      margin-bottom: 20px;
    }

    .ta .eyp {
      max-width: 100%;
      white-space: normal;
      line-height: 1.35;
    }

    .ta .cbody {
      white-space: pre-wrap;
      overflow-wrap: anywhere;
      font-size: 11.5px;
      line-height: 1.75;
      padding: 20px 18px;
    }

    .ta .revl,
    .ta .revr {
      transform: none;
    }

    /* Symmetrical 1-column layouts for 3-card blocks (Services, Pricing, Reviews, Related) */
    .ta .g3 {
      grid-template-columns: 1fr;
      max-width: 600px;
      margin-left: auto;
      margin-right: auto;
      gap: 24px;
    }

    .ta .g2 {
      grid-template-columns: 1fr;
    }

    .ta .g4,
    .ta .g5 {
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .ta .hsr {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }

    .ta .hsi {
      width: 100%;
      min-height: 92px;
      padding: 16px;
      border: 1px solid var(--bl2);
      border-radius: var(--r14);
      background: var(--l0);
      box-shadow: 0 6px 18px rgba(12, 7, 22, 0.04);
    }

    .ta .hsi strong {
      font-size: 18px;
      line-height: 1.2;
    }

    .ta .hsi span {
      font-size: 10px;
      line-height: 1.35;
    }

    .ta .hsep,
    .ta .tsep {
      display: none;
    }

    .ta .sgrid {
      grid-template-columns: 1fr 1fr;
      gap: 14px;
    }

    .ta .scard {
      padding: 22px 18px;
    }

    .ta .sn {
      font-size: 30px;
    }

    .ta .sl {
      font-size: 12.5px;
    }

    .ta .tech-adv {
      padding: 22px 18px;
    }

    .ta .fadv-row {
      align-items: flex-start;
      gap: 6px;
    }

    .ta .fadv-label,
    .ta .fadv-val {
      line-height: 1.45;
    }

    /* Trust Bar: Transform into vertical list of horizontal rows matching Miracuves.com mobile layout */
    .ta .tbrow {
      grid-template-columns: 1fr;
      gap: 12px;
      justify-items: stretch;
      max-width: 600px;
      margin: 0 auto;
    }

    .ta .titem {
      display: flex !important;
      flex-direction: row !important;
      align-items: center !important;
      gap: 16px !important;
      background: rgba(255, 255, 255, 0.02) !important;
      border: 1px solid rgba(255, 255, 255, 0.06) !important;
      border-radius: var(--r14) !important;
      padding: 16px 20px !important;
      width: 100% !important;
      text-align: left !important;
    }

    .ta .titem .ico {
      width: 40px !important;
      height: 40px !important;
      border-radius: 8px !important;
      flex-shrink: 0 !important;
      background: rgba(167, 13, 42, 0.08) !important;
      border-color: rgba(167, 13, 42, 0.2) !important;
    }

    .ta .titem .ico svg {
      width: 18px !important;
      height: 18px !important;
      color: var(--red-l) !important;
    }

    .ta .titem h4 {
      font-size: 14.5px !important;
      color: #ffffff !important;
      font-weight: 700 !important;
      margin: 0 !important;
    }

    .ta .titem p {
      font-size: 12px !important;
      color: rgba(255, 255, 255, 0.6) !important;
      text-transform: none !important;
      letter-spacing: 0 !important;
      margin-top: 3px !important;
      font-weight: 500 !important;
    }

    .ta .approach-cards {
      grid-template-columns: 1fr 1fr;
    }

    .ta .cs-right {
      gap: 14px;
    }

    .ta .rev-summary {
      flex-direction: column;
      align-items: center;
      gap: 20px;
      padding: 24px;
      text-align: center;
    }

    .ta .rev-sum-sep {
      display: none;
    }

    /* Mobile card view for comparison table */
    .ta .ctw {
      overflow: visible;
      border: none;
      border-radius: 0;
      margin-top: 28px;
      box-shadow: none;
    }

    .ta .ct,
    .ta .ct thead,
    .ta .ct tbody,
    .ta .ct tr,
    .ta .ct th,
    .ta .ct td {
      display: block;
      width: 100%;
    }

    .ta .ct thead {
      display: none;
    }

    .ta .ct tbody {
      display: grid;
      gap: 16px;
    }

    .ta .ct tr {
      border: 1px solid var(--bd2);
      border-radius: var(--r14);
      overflow: hidden;
      background: rgba(255, 255, 255, 0.03);
      box-shadow: 0 16px 36px rgba(0, 0, 0, 0.22);
    }

    .ta .ct th,
    .ta .ct td {
      min-width: 0 !important;
      border: 0 !important;
      padding: 15px 18px;
    }

    .ta .ct td {
      border-top: 1px solid var(--bd) !important;
      font-size: 13.5px;
      line-height: 1.55;
    }

    .ta .ct td:first-child {
      border-top: 0 !important;
      background: rgba(255, 255, 255, 0.05);
      color: #fff !important;
      font-size: 15px;
      font-weight: 850 !important;
    }

    .ta .ct td:not(:first-child)::before {
      display: block;
      margin-bottom: 5px;
      font-size: 10px;
      font-weight: 850;
      line-height: 1.3;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(255, 255, 255, 0.52);
    }

    .ta .ct td:nth-child(2)::before {
      content: 'WebGL - Miracuves Default';
      color: var(--red-l);
    }

    .ta .ct td:nth-child(3)::before {
      content: 'React Native';
    }

    .ta .ct td:nth-child(4)::before {
      content: 'Cloud-Streamed 3D';
    }

    .ta .ct .ch {
      border-left: 0 !important;
      border-right: 0 !important;
      background: rgba(167, 13, 42, 0.08) !important;
    }
  }

  @media(max-width:600px) {
    .ta .stack16 {
      grid-template-columns: repeat(2, 1fr);
    }

    .ta .tc-panel {
      padding: 48px 20px;
    }

    .ta .sgrid,
    .ta .g4,
    .ta .g5 {
      grid-template-columns: 1fr;
    }

    .ta .scard,
    .ta .scrd,
    .ta .vcrd,
    .ta .pcrd,
    .ta .rev-card,
    .ta .fitem {
      border-radius: var(--r14);
    }

    .ta .fadv-row {
      flex-direction: column;
      align-items: flex-start;
      padding: 13px 0;
    }

    .ta .fadv-val {
      font-size: 14px;
    }

    .ta .pb-row {
      flex-direction: column;
      align-items: flex-start;
      gap: 3px;
    }

    .ta .rbar {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 10px;
    }

    .ta .rpill {
      width: 100%;
      padding: 14px 12px;
    }
  }

  @media(max-width:480px) {
    .ta .W {
      padding: 0 16px;
    }

    .ta .S {
      padding: 60px 0;
    }

    .ta .hero {
      padding: 76px 0 100px;
    }

    .ta .hi {
      gap: 34px;
    }

    .ta .hr {
      margin-top: 34px;
    }

    .ta .hh1 {
      font-size: 34px;
      line-height: 1.4;
      letter-spacing: 0;
    }

    .ta .hh1 .h1s {
    display: block;
  }

  .ta .hh1 .dim {
      margin-top: 10px;
      font-size: 0.72em;
      letter-spacing: 0;
    }

    .ta .hdim {
      margin-top: 16px;
      font-size: 20px;
      letter-spacing: 0;
    }

    .ta .hh1 em {
      padding: 0;
      border-radius: 0;
    }

    .ta h2 {
      font-size: 25px;
      letter-spacing: 0;
    }

    .ta .lead {
      font-size: 15.5px;
    }

    .ta .htrust {
      gap: 8px;
      margin: 22px 0;
    }

    .ta .htr {
      width: 100%;
      justify-content: flex-start;
      border-radius: var(--r10);
    }

    .ta .hsr {
      grid-template-columns: 1fr;
    }

    .ta .hsi {
      min-height: 0;
      padding: 15px 16px;
    }

    .ta .hsch {
      padding: 18px 18px 14px;
      align-items: flex-start;
      flex-direction: column;
      gap: 4px;
    }

    /* Hero Stats Card: Rework into perfect 2x2 grid matching Miracuves.com mobile layout */
    .ta .hscg {
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      padding: 24px 16px;
    }

    .ta .hsci {
      border: none !important;
      padding: 0 !important;
      text-align: center;
    }

    .ta .hscn {
      font-size: 26px !important;
      font-weight: 800 !important;
      color: #ffffff !important;
      -webkit-text-fill-color: #ffffff !important;
    }

    .ta .hscll {
      font-size: 9px !important;
      color: rgba(255, 255, 255, 0.6) !important;
      text-transform: uppercase !important;
      letter-spacing: 0.08em !important;
      font-weight: 700 !important;
      margin-top: 3px !important;
    }

    .ta .hshow {
      grid-template-columns: 1fr;
    }

    .ta .hstatus-grid {
      grid-template-columns: 1fr;
    }

    /* Force S02 Trust Bar cards to full width */
    .ta .tbrow {
      max-width: 100%;
    }

    .ta .approach-cards {
      grid-template-columns: 1fr;
    }

    .ta .stack16 {
      grid-template-columns: 1fr;
    }

    .ta .proj-metrics {
      grid-template-columns: 1fr;
      gap: 12px;
    }

    .ta .anote,
    .ta .hnote,
    .ta .wcall {
      padding: 18px 16px;
    }

    .ta .mrow {
      align-items: flex-start;
    }

    .ta .mrow span {
      min-width: 0;
    }

    .ta .ck {
      font-size: 13.8px;
      padding: 6px 0;
    }

    .ta .pcrd {
      padding: 32px 20px;
    }

    .ta .pamt {
      font-size: 34px;
    }

    .ta .vbody,
    .ta .sb,
    .ta .rev-card,
    .ta .cs-grey .testi,
    .ta .cs-grey .proj-brief {
      padding: 22px 18px;
    }

    .ta .fq {
      padding: 20px 18px 0;
      font-size: 15px;
    }

    .ta .faq-a {
      padding: 10px 18px 20px;
      font-size: 13.5px;
    }

    .ta .rbar {
      grid-template-columns: 1fr;
    }

    .ta .ctapr {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      width: 100%;
    }

    .ta .ctar {
      min-width: 0;
    }

    .ta .ctar .btn {
      width: 100%;
      justify-content: center;
      white-space: normal;
      text-align: center;
    }

    /* Hero Button Stacking: full-width block buttons easy for thumbs */
    .ta .hctas {
      flex-direction: column;
      width: 100%;
    }

    .ta .hctas .btn {
      width: 100%;
      justify-content: center;
      padding: 18px 24px;
      font-size: 15px;
    }

    .ta .rcrd {
      width: 100%;
    }
  }

  
  
    
    
    
    
      
      
        [Home](https://miracuves.com/)
        /
        [Services](https://miracuves.com/service/)
        /
        WebGL App Development
      

      
        
        
          
            
              
              **Available Now** · 20+ 3D Templates
            
          
          
# WebGL App Development Company

          
Three.js · Babylon.js · WebGPU

          
Miracuves provides professional WebGL development services creating browser-based 3D graphics applications for product configurators, data visualization, digital twins, and immersive web experiences.

          
            
                
              50+ 3D Experiences
            
                
              20+ WebGL Developers
            
                
              100% Source Code
            
                
              NDA Day One
          

          
            [WhatsApp — Talk to Our Team](https://wa.me/919830009649)
            [Explore 3D Solutions](https://miracuves.com/schedule-consultation/)
          

          
            Clutch Reviewed 4.9★
            ·
            Starting from $3,699
            ·
            [View live deployments](https://miracuves.com/portfolio/)
          
        

        
        
          
          
            
            
            
              
            
            
              
#### Three.js Engine Powered

              
Browser-Based 3D Rendering Engine with GLSL Shader Pipeline

            
          

          
            
              Miracuves Delivery RecordWebGL Team
              
              
                
                  3–9d
                  Delivery timeline
                
                
                  $3,699
                  Starting price
                
                
                  90+
                  Clone solutions
                
                
                  100%
                  IP assignment
                
              
              
                WebGL developers active right now
              
            
          

                    
          
            [Interactive 3D

              
#### Unreal Engine Development

              
Custom timeline · Contact us](https://miracuves.com/service/unreal-engine-development/)
            [Virtual experience

              
#### VR App Development

              
Custom timeline · Contact us](https://miracuves.com/service/vr-app-development/)
          

          
          
            
              
                
              
              WebGL Engine Console
              ACTIVE (WebGL 2.0+)
            
            
              
                RENDERER
                WebGL 2.0 (120 FPS)
              
              
                STATE STANDARD
                Scene Graph
              
              
                CODE REUSE
                GLSL + WGSL
              
              
                CI/CD PIPELINE
                CloudFront + S3
              
            
          
        
      
    
  

  
  
    
      
        **20+ WebGL Developers**Dedicated team
        
        **50+ 3D Experiences**Delivered by Miracuves
        
        **4–8 Week Delivery**Production timeline
        
        **Three.js+Unity Certified**Official partners
        
        **97% Client Retention**Trusted by enterprise
      
    
  

  
  
    
      
        
          
              
              
              
            
          
            
#### White-Label Ready

            
Fully rebrandable on delivery

          
        
        
        
          
              
            
          
            
#### NDA Day One

            
IP protected first call

          
        
        
        
          
              
              
            
          
            
#### Full Source Code

            
Delivered at handoff

          
        
        
        
          
              
              
            
          
            
#### 60-Day Support

            
Post-launch included

          
        
        
        
          
              
              
            
          
            
#### 100% IP Ownership

            
Yours — always

          
        
        
        [#### Clutch Reviewed 4.9★

            
Third-party verified](https://miracuves.com/reviews-awards/)
      
    
  

		
			
				
				
					More than 6,000+ Companies Trust us Worldwide				
				
				
				
					        
            
                
					                            
                                
									                                    
										[![Miracuves Ranked among top 1000 companies globally by Clutch](https://miracuves.com/wp-content/uploads/2024/03/Miracuves-Clutch-top-1000-company.webp "WebGL Development 1")](https://clutch.co/profile/miracuves-solutions#reviews)                                    
									                                
                            
						                            
                                
									                                    
										[![Miracuves is a top-minus service provider in the United States by Clutch](https://miracuves.com/wp-content/uploads/2024/03/Miracuves-clutch-top-managed-service-provider-US.webp "WebGL Development 2")](https://clutch.co/profile/miracuves-solutions#reviews)                                    
									                                
                            
						                            
                                
									                                    
										![MediaCube is the best managed IT service provider in New York City by Expertise.com](https://miracuves.com/wp-content/uploads/2024/03/Miracuves-Expertise-Provider.webp "WebGL Development 3")                                    
									                                
                            
						                            
                                
									                                    
										![MiraQs as an official member of Forbes Business Council ](https://miracuves.com/wp-content/uploads/2024/03/Mircuves-Official-Memeber-Forbes-Council.webp "WebGL Development 4")                                    
									                                
                            
						                            
                                
									                                    
										[![Miracuves is a verified agency with design rush. ](https://miracuves.com/wp-content/uploads/2024/03/DesignRush-Top-Design-Agencies-in-India.webp "WebGL Development 5")](https://www.designrush.com/agency/profile/miracuves#reviews)                                    
									                                
                            
						                            
                                
									                                    
										[![MiraQs is ranked as a trustworthy service provider with Trustpilot. ](https://miracuves.com/wp-content/uploads/2025/04/Miracuves-TrustPilot-Top-Software-Development-Company.webp "WebGL Development 6")](https://www.trustpilot.com/review/miracuves.com)                                    
									                                
                            
						                            
                                
									                                    
										[![Miracuves is one of the top managed service providers, companies by themanifest. ](https://miracuves.com/wp-content/uploads/2025/04/Miracuves-The-Manifest-Top-Managed-Software-Development-Company.webp "WebGL Development 7")](https://themanifest.com/company/miracuves-solutions)                                    
									                                
                            
						                            
                                
									                                    
										[![Miracuves ranked as a top software development company by Design Rush. ](https://miracuves.com/wp-content/uploads/2025/04/Miracuves-Designrush-Top-Software-Development-Company.webp "WebGL Development 8")](https://www.designrush.com/agency/profile/miracuves#reviews)                                    
									                                
                            
						                            
                                
									                                    
										[![Miracuves is recognized as top software developed company by goodfirms. ](https://miracuves.com/wp-content/uploads/2025/04/Miracuves-GoodFirms-Top-Software-Development-Company.webp "WebGL Development 9")](https://www.goodfirms.co/company/miracuves-solution)                                    
									                                
                            
						                
            
			        
						
				
				
				
		

  
  
    
      
        
        
          
            
              **Our WebGL Approach**
            
          
          
## How Miracuves delivers WebGL applications — from 50+ 3D projects of real experience

          
After deploying 9,000+ projects and publishing 3,900+ apps, Miracuves
            has a specific way of working with WebGL. We use Three.js, Babylon.js, and Unity WebGL to build — already
            integrated with payment gateways, live maps, real-time data, and authentication — not from a blank project.

          
WebGL delivers real-time 3D rendering directly in any modern browser without plugins. For interactive applications,
            this eliminates native app install friction entirely — one deployment, all devices, instant access with full source code ownership.

          
**Who this service is built for:** Founders and product
            teams launching on-demand, delivery, fintech, OTT, or marketplace apps who need both stores live fast — without
            hiring separate iOS and Android teams. Miracuves WebGL development fits when you want a 3D template
            base or a custom cross-platform product with published pricing, full IP ownership, and a company accountable
            for delivery — not individual contractors. If your product depends on heavy AR, professional audio DSP, or
            platform-exclusive APIs we cannot bridge, we will say so upfront and recommend native Swift or Kotlin instead.

          
            Impeller renderer on every project — zero shader jank, consistent 60–120 FPS across all
              devices
            BLoC or Riverpod architecture enforced — predictable state, testable code from day one
            Platform Method Channels in native Swift or Kotlin when device APIs require it (biometrics,
              background GPS)
            CI/CD pipeline via Codemagic or Fastlane configured on every project — automated builds from
              first commit
            App Store and Google Play submission fully managed — certificates, compliance, review
              coordination
          

          
            
From our WebGL team — Furniture Configurator project, 6 weeks

            
"Multi-currency wallet, biometric login, BaaS integration, Arabic RTL — across iOS and
              Android — in 10 days. We used our Revolut Clone base, rebuilt the KYC flow for UAE Central Bank
              compliance, implemented custom GLSL shaders for realistic materials, and wrote Swift/Kotlin Method Channels for the
              BaaS SDK. Delivered day 9."

          

          
            
              
              
            
            Written by the Miracuves WebGL Team · June 2026 · [View
                Deployed Portfolio →](https://miracuves.com/portfolio/)
          
        

        
        
          
          
            
              2.8M+
              Triangles rendered per frame
            
            
              95%
              Code reuse between iOS and Android platforms
            
            
              40%
              Lower cost vs separate native development teams
            
            
              600K+
              WebGL experiences live on production
            
            
              3–9d
              Miracuves MVP delivery for scoped clone projects
            
            
              #1
              Cross-platform framework — Google Trends, 5 years
            
          

          
          
            
              
                  
                  
                
              Desktop
              Chrome/Edge/Safari/Firefox
            
            
              
                  
                  
                
              Mobile
              iOS/Android browsers
            
            
              
                  
                  
                
              XR/AR
              WebXR immersive
            
          

          
          
            
#### Why WebGL at Miracuves

            Time to first 3D demo2–4
                weeks
            Browser targetsDesktop
                · Mobile · XR
            Cost vs native 3DUp
                to 60%
            Clone solutions ready to ship90+ solutions
            Rendering FPS60
                FPS sustained
            Full source ownership100%
                yours
          
        
      
    
  

  
    
    
      
        
          
            
              **50+ 3D Experiences Built**
            
          
          
## What Miracuves has built — what you can launch today

        
        [View All 3D Work →](https://miracuves.com/solutions/)
      

      
        
                                                        [6 Days
            01
          
          
            
DELIVERY

            
### Glovo Clone

            
On-demand delivery app for food, groceries, couriers, payments, tracking, support.

            From $2,899WebDELIVERY](https://miracuves.com/glovo-clone/)

        
                                                        [6 Days
            02
          
          
            
RIDE-HAILING

            
### Uber Clone App

            
Live GPS dispatch, real-time driver bidding, and dual passenger/driver interfaces.

            From $2,899iOS + Android + WebRIDE-HAILING](https://miracuves.com/uber-clone/)

        
                                                        [6 Days
            03
          
          
            
Marketplace

            
### Etsy Clone

            
Handmade goods marketplace with shop pages, custom orders, reviews, payments.

            From $2,899iOS + AndroidHandmade](https://miracuves.com/etsy-clone/)

        
                                                        [6 Days
            04
          
          
            
SUPER APP

            
### Gojek Clone

            
Modular architecture handles 20+ services in one app — rides, delivery, payments.

            From $3,699iOS + AndroidEphemeral](https://miracuves.com/gojek-clone/)

        
                                                        [6 Days
            05
          
          
            
Website Builder

            
### Wix Clone

            
Drag-and-drop website builder with customizable templates, hosting, custom domains.

            From $2,899WebDrag & Drop](https://miracuves.com/wix-clone/)

        
                                                        [6 Days
            06
          
          
            
Rental Marketplace

            
### Airbnb Clone

            
Property listings with dynamic pricing, booking calendar, guest reviews.

            From $3,399iOS + Android + WebBooking Engine](https://miracuves.com/airbnb-clone/)
      

      **Honest note:** WebGL is right for most browser-based 3D experiences. For native-performance gaming or offline-heavy 3D work, Miracuves may recommend Unity standalone or Unreal Engine. We tell you which fits before any commitment.
    
  

  
  
    
    
      
        
          
            **Technology Comparison**
          
        
        
## WebGL vs Native App vs Cloud-Streamed 3D — which is right for your project?

        
Most development companies avoid this question because
          they only know one stack. Miracuves answers it honestly — your 3D technology choice determines reach,
          performance, and user experience.

      

      
        
| Metric | WebGL (Miracuves)  
← MIRACUVES DEFAULT | Native App (Unity Standalone) | Cloud-Streamed 3D |
| --- | --- | --- | --- |
| Browser Reach | 100% — any device, no install | Requires app store download | Requires stable high bandwidth |
| 3D Performance | 60 FPS — optimal with WebGL 2.0 | 120+ FPS — full native GPU | Variable — depends on latency |
| Dev Speed | Fast — web dev tools, instant deploy | Medium — compiled builds needed | Slow — streaming infra required |
| Distribution | URL — shareable, no install friction | App Store — review cycles required | Streaming server — infrastructure cost |
| Best For | Configurators · data viz · digital twins | High-fidelity games · AAA graphics | High-end viz · remote rendering |

      

      
        
          
Choose WebGL if…

          
You need instant browser-based 3D · product configurators or data visualization · digital twins or VR walkthroughs · zero-install user experience.

        
        
          
Consider an alternative if…

          
Your team needs AAA game graphics · native-only platform APIs · offline-heavy 3D workloads. [See Native 3D →](https://miracuves.com/service/react-native-development/)

        
      
    
  

  
  
    
      
        
        
          
            
              **Technical Architecture**
            
          
          
## How Miracuves engineers structure WebGL projects for production

          
These are the specific decisions our engineering team makes on every
            WebGL project — choices that determine whether a 3D experience scales cleanly or becomes a performance bottleneck.

          
            
              
### Architecture — Scene Graph with Modular 3D Components

              
Strict scene graph hierarchy: Scene → Cameras → Lights → Objects → Shaders. Every 3D
                component owns its geometry, material, texture, and animation independently. This is how
                Miracuves adds a new interactive 3D module without breaking existing scenes.

            
            
              
### Rendering — WebGL 2.0 Pipeline with Custom Shaders

              
Custom GLSL vertex and fragment shaders run on every project. The most
                common problem inherited from other agencies: unoptimized draw calls and texture atlasing. We
                eliminate this on day one as a hard standard — not a suggestion.

            
            
              
### Performance — Draw Call Optimization and LOD System

              
Every mesh that can be merged is merged. Heavy 3D scenes
                use level-of-detail (LOD) switching to keep frame time consistent. We profile every build with Spector.js and Chrome DevTools —
                development builds are never used as a performance benchmark.

            
            
              
                
What most WebGL agencies get wrong

                
Sending raw Blend/3DS Max files as deliverables. No CDN pipeline. Unoptimized draw calls everywhere. Hardcoded
                  API keys in JavaScript. No cross-browser testing before deployment. Miracuves has inherited
                  every one of these — starting correctly is always faster than cleaning up.

              
            
          
        

        
        
          
            
              
              
              
              webgl_renderer.js — Three.js Scene
            
            // WebGL renderer with custom shader pipeline
                // Used in all Miracuves 3D experiences

              class LocationBridge {
              static const MethodChannel _ch =
              MethodChannel('com.miracuves/location');

              Future<void> startTracking({
              required double lat,
              required double lng,
              }) async {
              try {
              await _ch.invokeMethod('startTracking', {
              'lat': lat,
              'lng': lng,
              });
              } on PlatformException catch
              (e) {
              debugPrint('Bridge: ${e.message}');
              }
              }
              }
            
            Sets up the WebGL rendering pipeline with Three.js scene graph, perspective camera, and WebGL 2.0 renderer. Configures
              lighting, geometry, and materials — then kicks off the render loop. Used in every 3D experience
              Miracuves ships.
          
        
      
    
  

  
  
    
      
        
          
            **Our Service Models**
          
        
        
## Three ways Miracuves delivers your WebGL project

        
Every engagement is with Miracuves as a company — a complete team, a
          defined process, and full delivery accountability. Choose the model that matches your 3D project stage.

      

      
        
        
          Most Popular
          
            
              
              
                
                
                  
                  
                  
                  
                
              
              
              
                
                
                  
                  
                  
                  
                
              
              
              
                
                
                  
                  
                  
                  
                
              
              
              Customer
              Driver App
              Admin
            
          
          
            
3D Template · Fixed Price

            
### 3D Template Deployment

            
Miracuves deploys a production-grade 3D template under your brand — browser-based, responsive, and
              customizable — in 2–4 weeks. Source code fully yours.

            Starting from $2,499 — fixed price, no surprises
            20+ 3D templates matched to your use case
            Branding, customization, white-labelling applied
            Admin dashboard included in every delivery
            Full source code · NDA · 60-day support
          
        

        
        
          
            
              
                
                
                MaterialApp
                
                
                
                
                
                
                
                
                BLoC
                
                Repository
                
                UI Layer
                
                
                
                
                
                Events
                
                API / Cache
                
                Widgets
              
            
          
          
            
Custom Development · Scoped

            
### Custom WebGL Build

            
Miracuves builds from your specification — custom architecture, custom flows, unique
              features. Full team: engineer, backend, QA, PM.

            Scoped and priced before development begins
            Clean architecture designed specifically for your product
            Weekly sprint demos — working software every sprint
            App Store and Play Store submission managed
            Full source code · IP 100% yours
          
        

        
        
          
            
              
                
                  Wk 1
                  
                    
                  
                  
                
                
                  Wk 2
                  
                    
                  
                  
                
                
                  Wk 3
                  
                    
                  
                  
                
                
                  Wk 4
                  
                    
                  
                  
                
              
            
          
          
            
Ongoing Retainer · Monthly

            
### Ongoing WebGL Development

            
Miracuves works as your ongoing development partner — new features, releases, maintenance
              on a monthly retainer with weekly sprint demos.

            From $2,299/month — cancel with 2 weeks notice
            Dedicated Miracuves team assigned to your product
            Direct communication — no account manager relay
            Weekly sprint demos — deliverables every cycle
            Scales up or down as your product evolves
          
        
      
    
  

  
  
    
    
      
        
          
            **Quality Standards**
          
        
        
## How Miracuves ensures every WebGL delivery meets production standard

        
Every project passes through Miracuves' quality gates before handoff —
          not as a checklist, as a non-negotiable delivery standard applied to every codebase we ship.

        
          Clean architecture — Presentation / Domain / Data separatedArchitecture
          BLoC or Riverpod — no setState() in business logicState
          Impeller renderer — zero shader jank on release buildsPerformance
          Physical device QA — tested on real iOS and Android hardwareQA
          CI/CD pipeline — automated builds and tests from day oneDevOps
          No secrets in source — API keys in environment config onlySecurity
          App Store-ready — provisioning, compliance, review passedDelivery
        
      
    

    
    
      
        
          
            **Enforced QA Gates**
          
        
        
## Our 6 Continuous Delivery Gateways

        
Every line of code,
          asset asset, and build profile must successfully clear all six quality control gates before repository
          handoff.

        
          
            01
            
              
#### Code Review on Every Pull Request

              
Every line merged into your main branch is reviewed by a senior Miracuves engineer. No untested code
                reaches your production environment under any circumstances.

            
          
          
            02
            
              
#### Automated Test Coverage Required

              
Unit tests for business logic, widget tests for UI components, and integration tests for critical user
                flows. Minimum coverage enforced before any release build is created.

            
          
          
            03
            
              
#### Release Builds Profiled — Not Debug Builds

              
Miracuves profiles performance using Spector.js and Chrome DevTools on every release build. Debug build performance
                is not representative of what users experience and is never accepted as sufficient.

            
          
          
            04
            
              
#### Handoff Package — Not Just a Repository

              
Source code, documentation, environment setup guide, API documentation, deployment credentials, store
                credentials, and post-launch runbook — all included in every project handoff.

            
          
          
            05
            
              
#### App Store Submission — Full Compliance Managed

              
Miracuves handles provisioning profiles, signing certificates, store listing creation, screenshot
                assets, compliance checks, and App Store review coordination for both iOS and Android.

            
          
          
            06
            
              
#### Post-Launch Monitoring — 60-Day Active Support

              
Crashlytics and Firebase Analytics configured pre-launch. Miracuves monitors crash rates and
                performance metrics during the 60-day post-launch support window — proactive, not reactive.

            
          
        
      
    
  

  
  
    
      
        
          
            
              **Technology Stack**
            
          
          
## The WebGL stack Miracuves ships with

        
        
Matched to your 3D scene and delivery
          requirements — not a one-size-fits-all default.

      

      
        
          T3
          Three.js r165+
          3D rendering framework
        
        
          BJ
          Babylon.js 7.x
          3D engine · WebGPU ready
        
        
          UW
          Unity WebGL
          Game engine · browser export
        
        
          WG
          WebGPU
          Next-gen graphics API
        
        
          GL
          GLSL / WGSL
          Shader programming languages
        
        
          R3
          React Three Fiber
          React renderer for Three.js
        
        
          NX
          Next.js 14+
          React framework · SSR · ISR
        
        
          TS
          TypeScript
          Type-safe · scalable code
        
        
          BL
          Blender
          3D modeling · animation
        
        
          GS
          GSAP
          Animation library · timelines
        
        
          VT
          Vite
          Dev server · fast builds
        
        
          WP
          Webpack
          Module bundler · assets
        
        
          CF
          AWS CloudFront
          CDN · global edge delivery
        
        
          S3
          S3
          Asset storage · hosting
        
        
          CL
          Cloudflare
          CDN · DDoS protection · workers
        
        
          SR
          Sentry
          Error tracking · performance monitoring
        
      
    
  

  
  
    
      
        
          
            **Our Process**
          
        
        
## From brief to deployed WebGL experience — what happens and when

        
Every WebGL engagement follows the same delivery spine — whether you
          start from a 3D template or a custom spec. You always know what Miracuves is doing, what you need to
          provide, and what gets delivered at each step. Timelines below reflect our standard 3D sprint; custom builds
          run milestone-based with the same checkpoints.

      

      
        

          
          
            
            
              
              
            

            
            
              
                
                  
                
              
              
### Brief & NDA

              
Share your concept via WhatsApp. NDA signed same day. We ask 6 specific questions.

            

            
            
              
              Step 01
            
          

          
          
            
            
              
              
            

            
            
              
                
                  
                  
                
              
              
### Scope & Plan

              
Right solution base, stack, and model confirmed. No payment before scope is agreed.

            

            
            
              Step 02
              
            
          

          
          
            
            
              
              
            

            
            
              
                
                  
                  
                  
                
              
              
### Build & Demo

              
Repo created, architecture set. First commit in 24h. Weekly working demo runs.

            

            
            
              
              Step 03
            
          

          
          
            
            
              
              
            

            
            
              
                
                  
                  
                  
                
              
              
### QA & Polish

              
Tested on real iOS/Android devices. Profiles optimized for Store guidelines.

            

            
            
              Step 04
              
            
          

          
          
            
            
              
            

            
            
              
                
                  
                
              
              
### Launch & Handoff

              
Full code and docs delivered. Store submissions handled. 60 days active support.

            

            
            
              
              Step 05
            
          
        
      

      
        **Same Day**NDA turnaround
        **3–6 Weeks**MVP Sprint delivery
        **24 Hours**First commit after scope
        **60 Days**Post-launch support
      
    
  

  
  
    
      
        
          
            **Transparent Pricing**
          
        
        
## What WebGL development costs at Miracuves

        
We publish prices because we are confident in what we deliver. No
          "contact us for pricing" pages. No hidden fees after scope is agreed.

      

      
        
        
          
### 3D Template

          $3,699
              from
          
Fixed price · 3–9 day delivery · scoped

          
- WebGL 3D experience — browser-based
- Admin dashboard included as standard
- Branding and white-label applied
- Full source code on handoff
- 60-day post-launch support
- NDA protected from day one

          [Start a
            Clone Project](https://wa.me/919830009649)
        

        
        
          Most Requested
          
### Custom WebGL Build

          Custom Quote
          
Scoped before build · milestone billing

          
- Full WebGL team — 3D engineer + backend + QA
- Custom architecture for your spec
- Weekly sprint demos — working software
- App Store and Play Store submission
- Full source code · complete IP transfer
- Milestone billing — no pay before delivery

          [Get a
            Scope & Quote](https://miracuves.com/contact/)
        

        
        
          
### Ongoing Development

          $2,299/mo
          
Monthly retainer · cancel with 2 weeks notice

          
- Miracuves team assigned to your product
- New features, releases, and maintenance
- Weekly demos and sprint planning
- Direct communication — no relay
- Scales up or down as needed
- All code remains 100% yours

          [Discuss
            Ongoing Work](https://wa.me/919830009649)
        
      

      **Why Miracuves publishes prices:** Clients who
        understand cost upfront make better product decisions. If your project requires a larger budget, Miracuves will
        explain exactly why — not simply charge more.

      
        
          
What affects WebGL project cost at Miracuves

          
3D template pricing stays fixed when scope matches the base product.
            Custom WebGL builds scale with: number of 3D scenes and models, real-time interactivity
            (configuration, animation, simulation), data integration complexity (IoT, APIs), multi-platform or
            multi-device rollout, and third-party 3D SDKs beyond the standard stack.

        
        
          
Typical WebGL budget ranges

          
**3D template:** from $3,699 · 2–4 weeks.  

            **Custom experience:** $8,000–$25,000 · 4–10 weeks depending on scope.  

            **Ongoing retainer:** from $2,299/month for feature work and maintenance.  

            Every quote is written before payment — no surprise invoices after kickoff.

        
      
    
  

  
  
    
    
      
        
          
            **Client Reference**
          
        
        
## What a real WebGL project looks like at Miracuves

        
A US-based furniture manufacturer needed a browser-based 3D product configurator with
          real-time material switching, dimension customization, pricing engine, and AR preview — across all browsers — within 6 weeks
          before a major trade show.

        
          
            01
            
              
The Challenge

              
Existing 2D product catalog needed a full 3D transformation with real-time WebGL rendering, custom GLSL shaders for realistic fabric and wood textures, live pricing updates for every configuration, and mobile browser compatibility — all within 6 weeks.

            
          
          
            02
            
              
What Miracuves Delivered

              
Used the 3D Configurator WebGL base, implemented Three.js scene with real-time PBR materials,
                wrote custom GLSL shaders for realistic wood grain and fabric weave, integrated pricing engine via REST API, and added AR preview via WebXR.

            
          
          
            03
            
              
Outcome

              
Delivered on week 5. Deployed via CloudFront CDN worldwide. Admin dashboard, full source code, and
                documentation all included. Client launched at the trade show and reported a 45% increase in sales conversions.

            
          
        

        
          **5 Weeks**Full delivery
          **All Browsers**Cross-platform
          **+45%**Sales increase
        
        [View All Case Studies →](https://miracuves.com/portfolio/)
      
    

    
    
      
        
        
          
Client Testimonial

          
"We needed the 3D configurator live before our biggest trade show and honestly expected to delay. Miracuves
            not only delivered on time — they built custom GLSL shaders for material rendering that made our products look photo-realistic. The
            WebGL codebase is clean enough that our in-house developer could read and extend it immediately."

          
            AH
            
              
M.R., VP of Product

              
Furniture Manufacturer · 3D Configurator Launch

            
          
          [⭐ Read Clutch & Google Reviews →](https://miracuves.com/reviews-awards/)
          
        

        
        
          
Project Brief

          Solution usedRevolut Clone
              (WebGL)
          Delivery timeline5 weeks
          Platforms deliveredDesktop + Mobile +
              Admin
          Key integrationsThree.js · GLSL · PBR ·
              WebXR
          ComplianceCross-browser QA
          
          Source code100% client-owned
          
        

        
        
          
            45%+
            Conversion lift
          
          
            4.8★
            App Store rating
          
          
            60d
            Support included
          
        
      
    
  

  
  
    
      
        
          
            **Client Reviews**
          
        
        
## What clients say about Miracuves WebGL development

        
Across product configurators, data visualization, digital twins, and immersive experiences — from solo
          founders to enterprise teams — verified on Clutch and Google.

      

      
        
        
          ★★★★★
          
Clutch · 3D Configurator

          
"Miracuves built a 3D product configurator that transformed our online catalog. Customers can rotate, zoom, and customize products in real-time. The Three.js implementation was flawless — our team was able to add new products in hours. Nothing like what we expected at this price point."

          
            EO
            
              
J.K., E-Commerce Director

              
Campus Product Configurator · Lagos, Nigeria

            
          
          WebGL · Three.js · Product Configurator
        

        
        
          ★★★★★
          
Google Reviews · Data Visualization

          
"We needed a real-time 3D data visualization dashboard for our IoT platform. Miracuves delivered a WebGL-powered dashboard that renders millions of data points as interactive 3D graphs. The architecture is production-grade. Our CTO reviewed the codebase and was impressed by the optimization."

          
            AH
            
              
M.R., VP of Product

              
IoT Analytics Platform · San Francisco, CA

            
          
          WebGL · Three.js · Configurator · PBR Shaders
        

        
        
          ★★★★★
          
Clutch · Digital Twin

          
"We deployed a browser-based digital twin of our manufacturing facility using Unity WebGL. The real-time IoT overlay shows machine status, temperature, and production metrics in 3D. Miracuves handled the sensor integration and 3D modeling. Exceptional delivery for the budget."

          
            RS
            
              
L.M., Operations Director

              
Manufacturing Plant · Detroit, MI

            
          
          WebGL · Unity WebGL · Digital Twin · IoT
        
      

      
      
        
          **4.9 / 5.0**
          Clutch average rating
        
        
        
          **4.8 / 5.0**
          Google average rating
        
        
        
          **Top Developer**
          Clutch recognition · 2024–2025
        
        
        [Read All Reviews
          →](https://miracuves.com/reviews-awards/)
      
    
  

  
  
    
      
        
          
            **Related Services**
          
        
        
## Also building with these technologies at Miracuves

      
      
        
        [Native iOS

            
iOS App Development](https://miracuves.com/service/ios-app-development/)

        
        [Native Android

            
Android App Development](https://miracuves.com/service/android-app-development/)

        
        [Custom Build

            
Mobile App Development](https://miracuves.com/service/custom-mobile-app-development/)

        
        [Cross-Platform

            
React Native Development](https://miracuves.com/service/react-native-development/)

        
        [Apple Ecosystem

            
Swift Development](https://miracuves.com/service/swift-development/)

        
        [WebGL Technology

            
Dart Development](https://miracuves.com/service/dart-development/)

        
        [Hybrid Framework

            
Ionic App Development](https://miracuves.com/service/ionic-app-development/)

        
        [Multi-Platform

            
Cross-Platform App Development](https://miracuves.com/service/cross-platform-app-development/)
      
    
  

  
  
    
      
        
          
            **Frequently Asked**
          
        
        
## Questions about WebGL development at Miracuves

      

      
        
          
Can WebGL deliver smooth 3D graphics on mobile browsers?

          
Yes. WebGL 2.0 delivers 60 FPS on modern mobile browsers with GPU acceleration. Three.js and Babylon.js optimize draw calls automatically for mobile GPUs. Miracuves tests every experience on iOS Safari, Chrome for Android, and mobile viewport configurations.

        
        
          
Does Miracuves deliver the complete source code and assets?

          
Yes — completely. Miracuves delivers the full WebGL source code, all 3D models and textures, repository with complete commit
            history, environment configuration, API documentation, and all deployment credentials. Zero lock-in. Your
            team or any other development company can continue the work immediately after handoff.

        
        
          
How fast can a WebGL 3D experience be built?

          
A scoped readymade clone deployment — covering iOS, Android, admin panel, and white-label
            configuration — ships in 3–5 weeks. Custom builds take 4–10 weeks depending on scope. All timelines are
            stated in writing before any payment is requested.

        
        
          
Three.js vs Babylon.js vs Unity WebGL — which does Miracuves recommend?

          
For most 3D experiences — configurators, data visualization, digital twins — Three.js is right. Better
            ecosystem, strongest community support, extensive plugin library. Babylon.js is preferred for WebGPU-ready
            projects. Unity WebGL is chosen for game-like experiences or when existing Unity assets need browser deployment.

        
        
          
What browser compatibility can I expect?

          
All Miracuves WebGL experiences work on Chrome, Firefox, Safari, and Edge (latest 2 versions). Mobile
            browser support includes iOS Safari 15+ and Chrome for Android. WebGL 2.0 is used as the primary renderer
            with WebGL 1.0 fallback for older devices. Polyfills are applied where needed.

        
        
          
How do you handle 3D performance optimization?

          
Every delivery includes draw call optimization, texture atlasing, LOD (level-of-detail) hierarchy, geometry
            compression, and GPU profiling with Spector.js. Bundle size is minimized through tree-shaking and asset
            compression. We target 60 FPS on desktop and 30 FPS on mobile as baseline performance.

        
        
          
What happens after the 3D experience is delivered?

          
Every Miracuves delivery includes 60 days of post-launch technical support. Bugs within the
            delivered scope are fixed at no additional cost. Feature additions beyond scope are quoted separately.
            Monthly maintenance retainers are available at published rates.

        
        
          
Can you integrate WebGL with existing websites or platforms?

          
Yes. Miracuves integrates WebGL experiences into existing websites, CMS platforms, e-commerce systems,
            and web applications. Embedding via iframe, React component, or custom integration is supported. We handle
            cross-origin communication, responsive sizing, and fallback states for unsupported browsers.

        
      
    
  

  
  
    
      
        
        
          
            
              **Get Started**
            
          
          
## Ready to build your WebGL 3D experience with Miracuves?

          
Tell Miracuves what 3D experience you need. We will confirm the right
            framework, service model, and delivery timeline — in writing, before any commitment is required from
            you.

          
            **50+**3D Experiences
            **2–4 Weeks**Template delivery
            **100%**Source code yours
            **Same Day**NDA turnaround
          
        

        
        
          [WhatsApp — Start Now](https://wa.me/919830009649)
          [Contact &
              Brief Form](https://miracuves.com/contact/)
          
NDA signed before we discuss your project details

        
      
      
        
          
          
        
        Page reviewed by the Miracuves WebGL Development Team · Last updated May 2026 · [Clutch & Google Reviews](https://miracuves.com/reviews-awards/)
      
    
  

(function () {
  // Immediately reveal all animation elements
  document.querySelectorAll('.ta .rev,.ta .revl,.ta .revr,.ta .stag').forEach(function (el) {
    el.classList.add('in');
  });
  // Also set up IntersectionObserver for scroll-reveal effect
  var els = document.querySelectorAll('.ta .rev:not(.always),.ta .revl:not(.always),.ta .revr:not(.always),.ta .stag:not(.always)');
  if (!els.length) return;
  var io = new IntersectionObserver(function (entries) {
    entries.forEach(function (e) {
      if (e.isIntersecting) { e.target.classList.add('in'); io.unobserve(e.target); }
    });
  }, { threshold: 0.10, rootMargin: '0px 0px -50px 0px' });
  els.forEach(function (el) { io.observe(el); });
})();
