 :root {
            --brand: #49007F;
            --brand-2: #7D33B9;
            --muted: #6b7280;
            --card: #ffffff;
            --accent: #f3f9ff;
            --radius: 14px;
            --shadow: 0 8px 30px rgba(12, 15, 29, 0.06);
            --max-width: 1100px;
            --container-padding: 20px;
            font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
        }

        * {
            box-sizing: border-box;
        }

        html,
        body {
            height: 100%;
            margin: 0;
            font-size: 16px;
            line-height: 1.45;
        }

        body {
            background: #49007F;
            background-size: 400% 400%;
            animation: gradientBG 20s ease infinite;
            color: #0b1220;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
            position: relative;
            overflow-x: hidden;
        }

        @keyframes gradientBG {
            0% {
                background-position: 0% 50%;
            }

            50% {
                background-position: 100% 50%;
            }

            100% {
                background-position: 0% 50%;
            }
        }

        canvas#bgCanvas {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: -1;
        }

        .wrap {
            max-width: var(--max-width);
            margin: 32px auto;
            padding: var(--container-padding);
        }

        header.breadcrumbs {
            display: flex;
            align-items: center;
            gap: 16px;
            margin-bottom: 18px;
        }

        .crumbs {
            font-size: 13px;
            color: #fff;
        }

        .crumbs a {
            color: #fff;
            text-decoration: none;
        }

        .course-title {
            display: flex;
            align-items: flex-start;
            gap: 18px;
        }

        .hero {
            position: relative;
            background: #fff;
            padding: 22px;
            border-radius: 12px;
            display: flex;
            gap: 20px;
            align-items: center;
            box-shadow: var(--shadow);
            overflow: hidden;
            will-change: transform;
            margin-top: 4rem;
        }

        .hero-left {
            flex: 1;
            transform: translateX(-30px);
            opacity: 0;
            transition: all 1s ease;
        }

        .hero-left.visible {
            transform: translateX(0);
            opacity: 1;
        }

        .hero-left .badge {
            transition: transform 0.4s ease;
        }

        .badge {
            display: inline-block;
            padding: 8px 12px;
            background: linear-gradient(90deg, var(--brand), var(--brand-2));
            color: #fff;
            border-radius: 999px;
            font-weight: 600;
            font-size: 13px;
            will-change: transform;
        }

        h1 {
            font-size: 24px;
            margin: 8px 0;
            transition: transform 0.3s ease;
        }

        .meta {
            color: var(--muted);
            font-size: 14px;
        }

        .hero-right {
            width: 320px;
            min-width: 220px;
            transform: translateX(30px);
            opacity: 0;
            transition: all 1s ease;
        }

        .hero-right.visible {
            transform: translateX(0);
            opacity: 1;
        }

        .card {
            background: var(--brand);
            color: #fff;
            border-radius: 12px;
            padding: 16px;
            box-shadow: var(--shadow);
        }

        .tags {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
            margin-top: 12px;
            transition: transform 0.3s ease;
        }

        .tag {
            background: #f2f7ff;
            color: var(--brand-2);
            padding: 6px 10px;
            border-radius: 999px;
            font-size: 13px;
            will-change: transform;
        }

        .hero-description {
            margin-top: 16px;
            color: var(--muted);
            font-size: 15px;
        }

        .tag-container {
            margin-top: 12px;
            display: flex;
            gap: 12px;
            align-items: center;
            flex-wrap: wrap;
        }

        .price {
            font-size: 22px;
            font-weight: 700;
        }

        .cta {
            display: flex;
            gap: 10px;
            margin-top: 12px;
        }

        .btn {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 12px 14px;
            border-radius: 10px;
            border: 0;
            cursor: pointer;
            font-weight: 700;
        }

        .btn-primary {
            background: var(--brand);
            color: #fff;
        }

        .btn-ghost {
            border: 1px solid var(--brand-2);
            color: var(--brand-2);
        }

        .list {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        .list .row {
            display: flex;
            gap: 12px;
            align-items: center;
        }

        hr.separator {
            margin: 14px 0;
            border: none;
            border-top: 1px solid #f1f6ff;
        }

        .card-info-row {
            display: flex;
            justify-content: space-between;
        }

        .card-info-column {
            text-align: right;
        }

        .card-info-small {
            font-size: 12px;
            color: var(--muted);
        }

        .card-info-medium {
            font-size: 13px;
            color: var(--muted);
        }

        .card-info-strong {
            font-weight: 700;
        }

        .grid {
            display: grid;
            grid-template-columns: 1fr 360px;
            gap: 20px;
            margin-top: 20px;
        }

        .section {
            border-radius: 12px;
            padding: 18px;
            box-shadow: var(--shadow);
            margin-bottom: 20px;
            opacity: 0;
            transform: translateY(20px);
            transition: all 0.8s ease;
            will-change: transform, opacity;
        }

        .section.visible {
            background: #fff;
            color: #49007F;
            opacity: 1;
            transform: translateY(0);
        }

        .section h2,
        .section h3 {
            margin: 0 0 10px 0;
            font-size: 18px;
        }

        .section p {
            color: #fff;
            margin: 0 0 12px 0;
        }

        .accordion {
            border-radius: 10px;
            overflow: hidden;
        }

        .accordion .item {
            border-top: 1px solid #eef2ff;
            padding: 14px 12px;
            display: flex;
            justify-content: space-between;
            align-items: center;
            cursor: pointer;
            opacity: 0;
            transform: translateY(20px);
            transition: all 0.6s ease;
        }

        .accordion .item.visible {
            opacity: 1;
            transform: translateY(0);
        }

        .accordion .item:first-child {
            border-top: 0;
        }

        .accordion .item .left {
            display: flex;
            gap: 12px;
            align-items: center;
        }

        .module-num {
            width: 36px;
            height: 36px;
            border-radius: 10px;
            background: linear-gradient(180deg, #f6f0ff, var(--accent));
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            color: var(--brand-2);
            transition: transform 0.3s ease;
        }

        .accordion .content {
            padding: 12px 12px 20px 60px;
            color: var(--muted);
            display: none;
        }

        .accordion .item:hover {
            background: #fbfdff;
        }

        .topics-column {
            flex: 1;
            min-width: 180px;
        }

        .topics-column h3 {
            margin: 0;
            font-size: 15px;
        }

        .topics-column ul {
            margin-top: 10px;
            color: var(--muted);
        }

        .teacher {
            display: flex;
            gap: 12px;
            align-items: center;
        }

        .avatar {
            width: 56px;
            height: 56px;
            border-radius: 10px;
            background: linear-gradient(135deg, #f6f0ff, #fff);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 700;
            color: var(--brand-2);
            transition: transform 0.3s ease;
        }

        .teacher-info {
            margin-top: 8px;
            color: var(--muted);
            font-size: 14px;
        }

        .teacher-info-strong {
            font-weight: 700;
        }

        .teacher-info-small {
            font-size: 13px;
            color: var(--muted);
        }

        .faq .q {
            padding: 12px;
            background: #fbfbff;
            border-radius: 10px;
            margin-bottom: 8px;
            cursor: pointer;
            opacity: 0;
            transform: translateY(20px);
            transition: all 0.6s ease;
        }

        .faq .q.visible {
            opacity: 1;
            transform: translateY(0);
        }

        .faq .a {
            padding: 12px;
            margin-bottom: 12px;
            color: var(--muted);
            display: none;
        }

        /* footer {
            margin-top: 22px;
            color: var(--muted);
            font-size: 13px;
        } */

        .pill {
            display: inline-block;
            padding: 6px 10px;
            border-radius: 999px;
            background: linear-gradient(90deg, #fff, #f5fbff);
            font-weight: 600;
        }

        .item-hover {
            transition: transform .22s ease, box-shadow .22s ease;
        }

        .item-hover:hover {
            transform: translateY(-8px) scale(1.02);
            box-shadow: 0 22px 45px rgba(12, 15, 29, 0.1);
        }

        .section.primary {
            background: #7D33B9;
            color: #fff;
        }

        .section.primary .tag {
            background: rgba(255, 255, 255, 0.2);
            color: #fff;
        }

        .section.primary .module-num {
            background: rgba(255, 255, 255, 0.2);
            color: #fff;
        }

        .section.primary .avatar {
            background: rgba(255, 255, 255, 0.2);
            color: #fff;
        }

        .section.primary .faq .q {
            background: rgba(255, 255, 255, 0.2);
            color: #fff;
        }

        .section.primary .faq .a {
            color: #fff;
        }

        .section.primary ul,
        .section.primary ol {
            color: #fff;
        }

        .certificates img {
            width: 100%;
            border-radius: 12px;
            margin-top: 12px;
            box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
        }

        /* ==================== MOBILE RESPONSIVE ==================== */
        @media (max-width: 980px) {

            /* Hero */
            .hero {
                flex-direction: column;
                gap: 16px;
                padding: 16px;
            }

            .hero-left,
            .hero-right {
                width: 100%;
                transform: translateX(0);
                opacity: 1;
            }

            .hero-left {
                order: 1;
            }

            .hero-right {
                order: 2;
            }

            /* Grid stacking */
            main.grid {
                display: flex;
                flex-direction: column;
            }

            /* Section reorder mobile */
            /* Syllabus first */
            .grid>div>.section.alt:nth-of-type(2) {
                order: 1;
            }

            /* Projects after syllabus */
            .grid>div>.section.primary:nth-of-type(2) {
                order: 2;
            }

            /* Why choose */
            .grid>aside .section.alt.card-alt {
                order: 3;
            }

            /* Batch Info */
            .grid>aside .section.primary {
                order: 4;
            }

            /* Instructor */
            .grid>div>.section.alt.item-hover:nth-of-type(3) {
                order: 5;
            }

            /* Certificates */
            .grid>aside .certificates {
                order: 6;
            }

            /* Student Reviews */
            .grid>aside .section.alt.item-hover:nth-of-type(4) {
                order: 7;
            }

            /* FAQ */
            .grid>div>.section.primary.item-hover:nth-of-type(3) {
                order: 8;
            }
        }