<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta name="description"
    content="Meem Academy is a learning platform for AI, architecture visualization, design workflows, and creative technology courses.">
  <meta name="robots" content="index, follow" />
  <link rel="canonical" href="https://meemacademy.com/" />
  <link rel="icon" type="image/png" sizes="1920x1920" href="https://meemacademy.com/assets/logo.png" />
  <link rel="apple-touch-icon" href="https://meemacademy.com/assets/logo.png" />
  <title>Meem Academy | AI, Architecture &amp; Design Learning Platform</title>
  <script type="application/ld+json">
    {
      "@context": "https://schema.org",
      "@graph": [
        {
          "@type": "Organization",
          "@id": "https://meemacademy.com/#organization",
          "name": "Meem Academy",
          "url": "https://meemacademy.com/",
          "logo": "https://meemacademy.com/assets/logo.png"
        },
        {
          "@type": "WebSite",
          "@id": "https://meemacademy.com/#website",
          "name": "Meem Academy",
          "url": "https://meemacademy.com/",
          "publisher": {
            "@id": "https://meemacademy.com/#organization"
          }
        }
      ]
    }
  </script>
  <link rel="preconnect" href="https://fonts.googleapis.com" />
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  <link
    href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Manrope:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700&family=Sora:wght@400;500;600;700;800&display=block"
    rel="stylesheet" />
  <style>
    :root {
      --bg: #0f0d14;
      --bg-soft: #13121b;
      --panel: rgba(17, 16, 25, 0.78);
      --panel-strong: rgba(15, 14, 22, 0.9);
      --card: rgba(255, 255, 255, 0.045);
      --card-soft: rgba(255, 255, 255, 0.025);
      --line: rgba(255, 255, 255, 0.08);
      --line-strong: rgba(255, 255, 255, 0.14);
      --text: #ede8f5;
      --text-soft: #c4bdd4;
      --text-dim: #8a7e9e;
      --accent: #7b6fa3;
      --accent-2: #5a628f;
      --glow: rgba(123, 111, 163, 0.12);
      --shadow: 0 26px 80px rgba(0, 0, 0, 0.34);
      --radius-xl: 32px;
      --radius-lg: 24px;
      --radius-md: 18px;
      --content-width: 100%;
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      height: 100%;
    }

    body {
      margin: 0;
      min-height: 100vh;
      font-family: "Plus Jakarta Sans", sans-serif;
      color: var(--text);
      background:
        radial-gradient(circle at top center, rgba(90, 98, 143, 0.06), transparent 24%),
        radial-gradient(circle at 20% 0%, rgba(123, 111, 163, 0.06), transparent 28%),
        linear-gradient(180deg, #0f0d14 0%, #111018 52%, #0f0d14 100%);
      overflow-x: hidden;
    }

    body::before,
    body::after {
      display: none;
    }


    .cursor,
    .cursor-ring {
      position: fixed;
      will-change: transform;
      top: 0;
      left: 0;
      pointer-events: none;
      border-radius: 999px;
      transform: translate(-50%, -50%);
      z-index: 9999;
    }

    .cursor {
      width: 10px;
      height: 10px;
      background: linear-gradient(135deg, #ffffff, var(--accent));
      box-shadow: 0 0 24px rgba(123, 111, 163, 0.5);
      transition: width 180ms ease, height 180ms ease, opacity 180ms ease;
    }

    .cursor-ring {
      width: 42px;
      height: 42px;
      border: 1px solid rgba(164, 144, 194, 0.24);
      background: radial-gradient(circle, rgba(123, 111, 163, 0.1), transparent 65%);
      transition: width 220ms ease, height 220ms ease, border-color 220ms ease, background 220ms ease;
    }

    .cursor-ring.active {
      width: 66px;
      height: 66px;
      border-color: rgba(123, 111, 163, 0.38);
      background: radial-gradient(circle, rgba(123, 111, 163, 0.14), transparent 70%);
    }

    .scroll-controls {
      display: none;
    }

    .scroll-button {
      width: 48px;
      height: 48px;
      border: 1px solid var(--line);
      border-radius: 16px;
      background: rgba(18, 17, 26, 0.84);
      color: var(--text);
      font-family: "Sora", sans-serif;
      font-size: 1.1rem;
      line-height: 1;
      display: grid;
      place-items: center;
      box-shadow: 0 16px 30px rgba(7, 6, 12, 0.3);
      backdrop-filter: blur(16px);
      transition: transform 180ms ease, border-color 180ms ease, background 180ms ease;
    }

    .scroll-button:hover,
    .scroll-button:focus-visible {
      transform: translateY(-2px);
      border-color: var(--line-strong);
      background: rgba(33, 28, 46, 0.96);
      outline: none;
    }

    .shell {
      width: 100%;
      margin: 0 auto;
      padding: 12px 12px 40px;
    }



    .topbar {
      position: sticky;
      top: 16px;
      z-index: 40;
      padding: 16px 18px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: rgba(15, 14, 22, 0.56);
      backdrop-filter: blur(22px);
      box-shadow: var(--shadow);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
    }

    .brand {
      display: flex;
      align-items: center;
      gap: 14px;
      min-width: 0;
      color: inherit;
      text-decoration: none;
    }

    .brand-mark {
      width: 42px;
      height: 42px;
      border-radius: 16px;
      object-fit: cover;
      display: block;
      box-shadow: 0 16px 34px rgba(106, 121, 201, 0.18);
    }

    .brand-copy {
      min-width: 0;
    }

    .brand-kicker {
      font-size: 0.72rem;
      letter-spacing: 0.16em;
      color: var(--text-dim);
    }

    .brand-title {
      font-family: "Sora", sans-serif;
      font-size: 0.98rem;
      font-weight: 700;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .tabbar {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: flex-end;
    }

    .tab {
      position: relative;
      border: 1px solid transparent;
      background: rgba(255, 255, 255, 0.01);
      color: var(--text-soft);
      font-family: "Sora", sans-serif;
      font-size: 0.93rem;
      font-weight: 600;
      padding: 12px 18px;
      border-radius: 999px;
      overflow: hidden;
      transition: transform 180ms ease, background 180ms ease, color 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
    }

    .tab::before {
      content: "";
      position: absolute;
      inset: 1px;
      border-radius: inherit;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.02));
      opacity: 0;
      transition: opacity 180ms ease;
    }

    .tab:hover,
    .tab:focus-visible {
      transform: translateY(-1px);
      border-color: var(--line);
      color: var(--text);
      box-shadow: 0 10px 24px rgba(0, 0, 0, 0.16);
      outline: none;
    }

    .tab:hover::before,
    .tab:focus-visible::before {
      opacity: 1;
    }

    .tab.active {
      background: rgba(255, 255, 255, 0.08);
      border-color: rgba(255, 255, 255, 0.14);
      color: white;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 10px 30px rgba(0, 0, 0, 0.18);
    }

    .tab.active::before {
      opacity: 1;
    }

    .showcase-mobile-bar {
      display: none;
    }

    .hero-frame,
    .section-shell {
      position: relative;
      margin-top: 16px;
      border-radius: 38px;
      border: 1px solid var(--line);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.02));
      backdrop-filter: blur(24px);
      box-shadow: var(--shadow);
      overflow: clip;
    }


    .hero-frame::before,
    .section-shell::before {
      display: none;
    }

    .hero {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      gap: 28px;
      padding: 38px;
      align-items: stretch;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      padding: 9px 14px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: rgba(255, 255, 255, 0.04);
      color: var(--accent);
      font-size: 0.74rem;
      text-transform: uppercase;
      letter-spacing: 0.18em;
      font-weight: 700;
    }

    h1,
    h2,
    h3,
    h4 {
      margin: 0;
      font-family: "Sora", sans-serif;
      line-height: 1.02;
    }

    h1 {
      margin-top: 18px;
      font-size: clamp(3rem, 5vw, 5.4rem);
      max-width: 10ch;
      letter-spacing: -0.05em;
    }

    .hero-copy p,
    .section-copy,
    .body-copy,
    li,
    .register-note {
      color: var(--text-soft);
      line-height: 1.75;
      font-size: 1rem;
    }

    .hero-copy p {
      max-width: 62ch;
      margin: 18px 0 0;
    }

    .hero-meta {
      margin-top: 24px;
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }

    .pill {
      padding: 12px 16px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-soft);
      font-size: 0.92rem;
      font-weight: 600;
    }

    .hero-art {
      display: grid;
      gap: 16px;
      align-content: end;
    }

    .visual-card,
    .floating-card,
    .stats-grid .stat-card,
    .overview-grid .content-card,
    .notes-grid .note-card,
    .register-card,
    .session-card {
      border-radius: 28px;
      border: 1px solid var(--line);
      position: relative;
      overflow: hidden;
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025));
      box-shadow: 0 18px 44px rgba(0, 0, 0, 0.24);
      backdrop-filter: blur(22px);
    }

    .visual-card::before,
    .floating-card::before,
    .stats-grid .stat-card::before,
    .overview-grid .content-card::before,
    .notes-grid .note-card::before,
    .register-card::before,
    .session-card::before {
      content: "";
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(70, 80, 140, 0.035), transparent 18%);
      pointer-events: none;
    }

    .visual-card {
      position: relative;
      min-height: 290px;
      overflow: hidden;
      background:
        radial-gradient(circle at center, rgba(138, 126, 168, 0.06), transparent 42%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.025));
    }

    .visual-card .orbit-ring {
      position: absolute;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      pointer-events: none;
    }

    .visual-card .orbit-ring.outer {
      inset: 60px 58px 58px;
    }

    .visual-card .orbit-ring.inner {
      inset: 94px 120px 92px;
      border-color: rgba(255, 255, 255, 0.05);
    }

    .visual-card .signal-node {
      position: absolute;
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(255, 255, 255, 0.85), rgba(138, 126, 168, 0.45));
      box-shadow: 0 0 18px rgba(138, 126, 168, 0.28);
      opacity: 0.88;
      animation: pulseFloat 4.2s ease-in-out infinite;
    }

    .visual-card .signal-a {
      top: 22%;
      left: 21%;
    }

    .visual-card .signal-b {
      top: 31%;
      right: 23%;
      animation-delay: 0.8s;
    }

    .visual-card .signal-c {
      bottom: 24%;
      left: 31%;
      animation-delay: 1.6s;
    }

    .visual-card::after {
      content: "";
      position: absolute;
      border-radius: 50%;
      border: 1px solid rgba(205, 196, 227, 0.16);
    }

    .visual-card::after {
      inset: 58px;
      border-color: rgba(255, 255, 255, 0.1);
    }

    .visual-center {
      position: absolute;
      inset: 50% auto auto 50%;
      transform: translate(-50%, -50%);
      width: 108px;
      height: 108px;
      border-radius: 32px;
      display: grid;
      place-items: center;
      text-align: center;
      font-family: "Sora", sans-serif;
      font-size: 1rem;
      font-weight: 700;
      background: linear-gradient(145deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.08));
      box-shadow: 0 18px 50px rgba(0, 0, 0, 0.22);
      backdrop-filter: blur(18px);
      z-index: 2;
    }

    .visual-center::before {
      content: "";
      position: absolute;
      inset: -18px;
      border-radius: 42px;
      border: 1px solid rgba(255, 255, 255, 0.06);
      opacity: 0.7;
    }

    .orbit-label {
      position: absolute;
      padding: 10px 14px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: rgba(14, 13, 21, 0.44);
      backdrop-filter: blur(16px);
      font-size: 0.8rem;
      color: var(--text-soft);
      z-index: 2;
    }

    .label-a {
      top: 14%;
      left: 10%;
    }

    .label-b {
      top: 14%;
      right: 9%;
    }

    .label-c {
      bottom: 20%;
      left: 8%;
    }

    .label-d {
      bottom: 11%;
      right: 10%;
    }

    .tool-chip {
      position: absolute;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 8px 12px 8px 8px;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, 0.1);
      background: rgba(11, 11, 18, 0.42);
      color: var(--text);
      font-size: 0.76rem;
      font-weight: 600;
      letter-spacing: 0.01em;
      backdrop-filter: blur(18px);
      box-shadow: 0 10px 30px rgba(0, 0, 0, 0.16);
      z-index: 2;
      animation: pulseFloat 5.2s ease-in-out infinite;
    }

    .tool-chip i {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: linear-gradient(145deg, rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.04));
      color: var(--accent);
      font-style: normal;
      font-size: 0.7rem;
      font-weight: 800;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12);
    }

    .tool-chip small {
      display: block;
      color: var(--text-dim);
      font-size: 0.62rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .tool-e {
      top: 30px;
      left: 32%;
    }

    .tool-f {
      top: 34px;
      right: 30%;
      animation-delay: 0.8s;
    }

    .tool-g {
      top: 46%;
      left: 26px;
      animation-delay: 1.6s;
    }

    .tool-h {
      top: 46%;
      right: 18px;
      animation-delay: 2.2s;
    }

    .tool-i {
      bottom: 26px;
      left: 25%;
      animation-delay: 1.2s;
    }

    .tool-j {
      bottom: 22px;
      right: 23%;
      animation-delay: 2.8s;
    }

    .floating-card {
      padding: 22px;
    }

    .floating-card h3,
    .content-card h3,
    .session-card h3,
    .note-card h3,
    .register-card h3 {
      font-size: 1.32rem;
      margin-bottom: 12px;
    }

    .section-shell {
      padding: 34px;
    }

    .panel-credit {
      margin-top: 26px;
      text-align: center;
      font-size: 0.78rem;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: rgba(243, 238, 252, 0.34);
    }

    .section-header {
      display: flex;
      justify-content: space-between;
      align-items: end;
      gap: 18px;
      margin-bottom: 24px;
    }

    .section-header h2 {
      margin-top: 14px;
      font-size: clamp(2rem, 4vw, 3rem);
      letter-spacing: -0.04em;
      max-width: 12ch;
    }

    .panel {
      display: none;
      animation: panelIn 420ms cubic-bezier(0.22, 1, 0.36, 1);
    }

    .panel.active {
      display: block;
    }

    .overview-grid {
      display: grid;
      grid-template-columns: 1.03fr 0.97fr;
      gap: 18px;
    }

    .content-card {
      padding: 24px;
    }

    .stack-list,
    .plain-list {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      gap: 14px;
    }

    .stack-list li {
      padding: 16px 18px;
      border-radius: 18px;
      border: 1px solid var(--line);
      background: rgba(138, 126, 168, 0.06);
    }

    .plain-list li {
      position: relative;
      padding-left: 20px;
    }

    .plain-list li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 11px;
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: linear-gradient(135deg, var(--accent), var(--accent-2));
      box-shadow: 0 0 16px rgba(138, 126, 168, 0.3);
    }

    .stats-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
      margin-top: 18px;
    }

    .stat-card {
      padding: 20px;
    }

    .stat-number {
      font-family: "Sora", sans-serif;
      font-size: 2.3rem;
      font-weight: 800;
      letter-spacing: -0.04em;
      color: white;
    }

    .stat-label {
      margin-top: 10px;
      color: var(--text-soft);
      line-height: 1.6;
    }

    .sessions-layout {
      display: grid;
      gap: 18px;
    }

    .session-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
    }

    .session-card {
      isolation: isolate;
      min-height: 248px;
      padding: 22px;
      transition: transform 240ms ease, border-color 240ms ease, box-shadow 240ms ease, background 240ms ease;
    }

    .session-card::after {
      content: "";
      position: absolute;
      inset: auto 18px 18px auto;
      width: 88px;
      height: 88px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(185, 173, 255, 0.12), transparent 72%);
      opacity: 0;
      transform: scale(0.85);
      transition: opacity 240ms ease, transform 240ms ease;
      pointer-events: none;
      z-index: 0;
    }

    .session-card:hover {
      transform: translateY(-6px);
      border-color: var(--line-strong);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.035));
      box-shadow: 0 24px 54px rgba(0, 0, 0, 0.28);
    }

    .session-card:hover::after {
      opacity: 1;
      transform: scale(1);
    }

    .session-index {
      position: relative;
      z-index: 1;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 18px;
      padding: 6px 8px 6px 14px;
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.04);
      color: var(--text-dim);
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      backdrop-filter: blur(18px);
    }

    .session-index span {
      line-height: 1;
    }

    .session-index strong {
      min-width: 42px;
      padding: 7px 10px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.08);
      color: var(--text);
      font-size: 0.92rem;
      letter-spacing: -0.02em;
      text-align: center;
    }

    .session-card ul {
      list-style: none;
      padding: 0;
      margin: 0;
      display: grid;
      gap: 10px;
    }

    .session-card li {
      position: relative;
      padding-left: 18px;
      font-size: 0.95rem;
    }

    .session-card li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 10px;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--text-soft);
      opacity: 0.9;
    }

    .task {
      margin-top: 14px;
      padding: 11px 12px;
      border-radius: 14px;
      border: 1px solid var(--line);
      background: rgba(255, 255, 255, 0.05);
      backdrop-filter: blur(14px);
      color: var(--text);
      font-size: 0.86rem;
      font-weight: 700;
      line-height: 1.5;
    }

    .notes-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 18px;
    }

    .note-card,
    .register-card {
      padding: 24px;
    }

    .register-layout {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 18px;
      width: 100%;
      align-items: stretch;
    }

    .register-layout>* {
      width: 100%;
      justify-self: stretch;
    }

    .register-preview {
      width: 100%;
      min-height: 360px;
      background:
        radial-gradient(circle at 20% 20%, rgba(185, 173, 255, 0.1), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.03));
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .register-preview .mini-badge {
      display: inline-flex;
      align-self: flex-start;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: rgba(255, 255, 255, 0.045);
      color: var(--accent);
      font-size: 0.75rem;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      font-weight: 700;
    }

    .pricing-block {
      display: grid;
      gap: 16px;
    }

    .pricing-heading {
      display: grid;
      gap: 10px;
    }

    .pricing-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .pricing-pill {
      display: inline-flex;
      align-items: center;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: rgba(255, 255, 255, 0.05);
      color: var(--text);
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .pricing-stack {
      display: grid;
      gap: 6px;
    }

    .price-current {
      font-size: clamp(2.5rem, 4.5vw, 4rem);
      font-weight: 700;
      letter-spacing: -0.04em;
      line-height: 1;
    }

    .price-original {
      color: var(--text-soft);
      font-size: 1.08rem;
      text-decoration: line-through;
      text-decoration-thickness: 1.5px;
      text-decoration-color: rgba(244, 238, 255, 0.55);
    }

    .pricing-footnote {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 12px 14px;
      border-radius: 16px;
      border: 1px solid rgba(255, 255, 255, 0.10);
      background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
      color: var(--text);
      font-size: 0.95rem;
      line-height: 1.7;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
    }

    .pricing-footnote::before {
      content: "";
      width: 8px;
      height: 8px;
      border-radius: 50%;
      flex: 0 0 auto;
      background: var(--accent);
      box-shadow: 0 0 16px rgba(138, 126, 168, 0.35);
    }

    .register-layout--enroll {
      grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
      align-items: stretch;
    }

    .register-spotlight {
      position: relative;
      overflow: hidden;
      min-height: 100%;
      background:
        radial-gradient(circle at top left, rgba(138, 126, 168, 0.16), transparent 34%),
        radial-gradient(circle at 78% 16%, rgba(138, 126, 168, 0.15), transparent 28%),
        linear-gradient(160deg, rgba(16, 13, 24, 0.96), rgba(9, 8, 15, 0.98));
      border-color: rgba(255, 255, 255, 0.12);
    }

    .register-spotlight::after {
      content: "";
      position: absolute;
      inset: auto -60px -80px auto;
      width: 220px;
      height: 220px;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(138, 126, 168, 0.22), transparent 68%);
      pointer-events: none;
      filter: blur(10px);
    }

    .register-spotlight .pricing-block,
    .enroll-sidebar {
      position: relative;
      z-index: 1;
    }

    .register-spotlight h3 {
      max-width: 9ch;
      margin-bottom: 0;
      font-size: clamp(2.2rem, 4vw, 3.5rem);
      line-height: 0.95;
      letter-spacing: -0.05em;
    }

    .enroll-summary {
      max-width: 50ch;
      color: rgba(237, 232, 245, 0.84);
      font-size: 1.02rem;
      line-height: 1.8;
    }

    .enroll-facts-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px;
    }

    .enroll-fact {
      padding: 14px 16px;
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 20px;
      background: rgba(255, 255, 255, 0.035);
    }

    .enroll-fact-label {
      display: block;
      margin-bottom: 6px;
      color: rgba(196, 189, 212, 0.72);
      font-size: 0.74rem;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }

    .enroll-fact-value {
      color: var(--text);
      font-family: "Sora", sans-serif;
      font-size: 1rem;
      font-weight: 700;
      line-height: 1.5;
    }

    .enroll-highlight {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: -2px;
      color: rgba(196, 189, 212, 0.92);
      font-size: 0.96rem;
      font-weight: 700;
      line-height: 1.7;
    }

    .enroll-highlight span::after {
      content: "•";
      margin-left: 10px;
      color: rgba(255, 255, 255, 0.28);
    }

    .enroll-highlight span:last-child::after {
      content: none;
      margin: 0;
    }

    .enroll-sidebar {
      display: grid;
      gap: 18px;
      background: linear-gradient(180deg, rgba(16, 13, 24, 0.96), rgba(9, 8, 15, 0.98));
    }

    .enroll-price-card {
      display: grid;
      gap: 16px;
      padding: 20px;
      border: 1px solid rgba(255, 255, 255, 0.09);
      border-radius: 24px;
      background: rgba(255, 255, 255, 0.025);
    }

    .enroll-price-head {
      display: flex;
      justify-content: space-between;
      align-items: start;
      gap: 14px;
    }

    .enroll-price-head p,
    .enroll-cta-copy,
    .enroll-whatsapp-note,
    .step-hint,
    .enroll-form-error,
    .enroll-submit-note {
      margin: 0;
      color: rgba(196, 189, 212, 0.78);
      line-height: 1.7;
    }

    .enroll-price-head p {
      font-size: 0.95rem;
    }

    .enroll-price-stack {
      display: grid;
      gap: 6px;
    }

    .enroll-cta-card {
      display: grid;
      gap: 14px;
      padding: 18px 20px;
      border: 1px solid rgba(138, 126, 168, 0.14);
      border-radius: 24px;
      background: linear-gradient(180deg, rgba(138, 126, 168, 0.1), rgba(255, 255, 255, 0.02));
    }

    .enroll-cta-card .button-row {
      justify-content: stretch;
    }

    .enroll-cta-card .button-row .button {
      flex: 1 1 0;
    }

    .enroll-whatsapp-note {
      font-size: 0.92rem;
    }

    .button.secondary-link {
      text-decoration: none;
      text-align: center;
    }

    .enroll-modal {
      position: fixed;
      inset: 0;
      z-index: 80;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    .enroll-modal[hidden] {
      display: none;
    }

    .enroll-modal-backdrop {
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 20% 20%, rgba(138, 126, 168, 0.14), transparent 24%),
        radial-gradient(circle at 80% 80%, rgba(138, 126, 168, 0.12), transparent 28%),
        rgba(4, 4, 9, 0.82);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
    }

    .enroll-modal-dialog {
      position: relative;
      width: min(100%, 920px);
      max-height: min(90vh, 860px);
      overflow: auto;
      padding: 34px;
      border-radius: 30px;
      border: 1px solid rgba(164, 144, 194, 0.2);
      background: linear-gradient(180deg, rgba(20, 18, 16, 0.98), rgba(12, 11, 14, 0.98));
      box-shadow: 0 32px 80px rgba(0, 0, 0, 0.48);
    }

    .enroll-modal-close {
      position: absolute;
      top: 24px;
      right: 24px;
      width: 46px;
      height: 46px;
      border-radius: 50%;
      border: 1px solid rgba(255, 255, 255, 0.1);
      background: rgba(255, 255, 255, 0.03);
      color: rgba(241, 234, 224, 0.86);
      font-size: 1.5rem;
      line-height: 1;
    }

    .enroll-modal-close:hover,
    .enroll-modal-close:focus-visible {
      background: rgba(255, 255, 255, 0.08);
      outline: none;
    }

    .enroll-modal-shell {
      display: grid;
      gap: 28px;
    }

    .enroll-progress-meta {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      margin-right: 56px;
      color: rgba(237, 232, 245, 0.86);
      font-size: 0.98rem;
      font-weight: 600;
    }

    .enroll-progress-track {
      position: relative;
      width: 100%;
      height: 8px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(138, 126, 168, 0.22);
    }

    .enroll-progress-bar {
      position: absolute;
      inset: 0 auto 0 0;
      width: 0;
      border-radius: inherit;
      background: linear-gradient(90deg, rgba(138, 126, 168, 1), rgba(74, 78, 143, 1));
      transition: width 220ms ease;
    }

    .enroll-modal-step {
      display: none;
      gap: 18px;
    }

    .enroll-modal-step.active {
      display: grid;
    }

    .enroll-modal-step h3 {
      margin: 0;
      font-size: clamp(2.2rem, 4vw, 3.2rem);
      line-height: 0.98;
      letter-spacing: -0.045em;
    }

    .enroll-modal-step-copy {
      display: grid;
      gap: 10px;
      max-width: 58ch;
    }

    .enroll-modal-step-copy p {
      margin: 0;
      color: rgba(196, 189, 212, 0.82);
      font-size: 1.06rem;
      line-height: 1.8;
    }

    .enroll-form-control {
      width: 100%;
      min-height: 64px;
      border: 1px solid rgba(138, 126, 168, 0.42);
      border-radius: 18px;
      background: rgba(255, 255, 255, 0.05);
      color: var(--text);
      padding: 18px 20px;
      font: inherit;
      font-size: 1.08rem;
      line-height: 1.6;
      transition: border-color 180ms ease, box-shadow 180ms ease, background 180ms ease;
    }

    .enroll-form-control::placeholder {
      color: rgba(196, 189, 212, 0.58);
    }

    .enroll-form-control:focus {
      outline: none;
      border-color: rgba(138, 126, 168, 0.9);
      box-shadow: 0 0 0 4px rgba(138, 126, 168, 0.14);
      background: rgba(255, 255, 255, 0.08);
    }

    textarea.enroll-form-control {
      min-height: 180px;
      resize: vertical;
    }

    .step-hint {
      font-size: 0.92rem;
    }

    .step-hint kbd {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 28px;
      padding: 2px 8px;
      border-radius: 8px;
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.08);
      color: rgba(237, 232, 245, 0.92);
      font: inherit;
      font-size: 0.88rem;
      font-weight: 700;
    }

    .enroll-form-error {
      min-height: 1.6em;
      color: #ffb6a0;
      font-size: 0.94rem;
    }

    .enroll-modal-actions {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 14px;
      margin-top: 4px;
    }

    .enroll-modal-actions-end {
      display: flex;
      justify-content: flex-end;
      gap: 12px;
      margin-left: auto;
    }

    .button.modal-ghost {
      border-color: rgba(138, 126, 168, 0.26);
      background: transparent;
      color: rgba(237, 232, 245, 0.92);
      box-shadow: none;
    }

    .button.modal-ghost[disabled] {
      opacity: 0.45;
      cursor: not-allowed;
      transform: none;
    }

    .button.modal-primary {
      min-width: 164px;
      border-color: rgba(164, 144, 194, 0.28);
      background: linear-gradient(135deg, rgba(90, 98, 143, 0.62), rgba(138, 126, 168, 0.54));
      color: #f6f2fb;
      box-shadow: none;
    }

    .button.modal-primary:hover,
    .button.modal-primary:focus-visible {
      background: linear-gradient(135deg, rgba(90, 98, 143, 0.76), rgba(138, 126, 168, 0.68));
    }

    .enroll-submit-note {
      min-height: 1.6em;
      font-size: 0.92rem;
      text-align: right;
    }

    .enroll-modal-success {
      display: none;
      gap: 14px;
      padding: 26px;
      border: 1px solid rgba(164, 144, 194, 0.18);
      border-radius: 24px;
      background: linear-gradient(180deg, rgba(138, 126, 168, 0.09), rgba(255, 255, 255, 0.02));
    }

    .enroll-modal-success.active {
      display: grid;
    }

    .enroll-modal-success h3,
    .enroll-modal-success p {
      margin: 0;
    }

    body.modal-open {
      overflow: hidden;
    }

    .pricing-includes {
      display: grid;
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .pricing-includes li {
      position: relative;
      padding-left: 18px;
      font-size: 0.96rem;
    }

    .pricing-includes li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 11px;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--accent);
      opacity: 0.9;
    }

    .register-panel {
      display: grid;
      gap: 16px;
    }

    .field {
      display: grid;
      gap: 8px;
    }

    .field label {
      color: var(--text-soft);
      font-size: 0.9rem;
      font-weight: 600;
    }

    .field input,
    .field textarea {
      width: 100%;
      border: 1px solid var(--line);
      background: rgba(12, 11, 18, 0.5);
      backdrop-filter: blur(12px);
      color: var(--text);
      border-radius: 16px;
      padding: 14px 16px;
      font: inherit;
      transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
    }

    .field textarea {
      min-height: 118px;
      resize: vertical;
    }

    .field input:focus,
    .field textarea:focus {
      outline: none;
      border-color: rgba(138, 126, 168, 0.34);
      box-shadow: 0 0 0 4px rgba(138, 126, 168, 0.07);
      transform: translateY(-1px);
    }

    .button-row {
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
      justify-content: center;
    }

    .button {
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 13px 18px;
      background: rgba(255, 255, 255, 0.045);
      color: var(--text);
      font-family: "Sora", sans-serif;
      font-weight: 600;
      transition: transform 180ms ease, background 180ms ease, box-shadow 180ms ease;
    }

    .button.primary {
      background: linear-gradient(135deg, rgba(90, 98, 143, 0.28), rgba(138, 126, 168, 0.22));
      border-color: rgba(255, 255, 255, 0.10);
      color: white;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 14px 34px rgba(0, 0, 0, 0.18);
    }

    .button:hover,
    .button:focus-visible {
      transform: translateY(-2px);
      outline: none;
    }

    .fade-up {
      opacity: 0;
      transform: translateY(20px);
      animation: rise 720ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
    }

    .delay-1 {
      animation-delay: 80ms;
    }

    .delay-2 {
      animation-delay: 160ms;
    }

    .delay-3 {
      animation-delay: 240ms;
    }

    .delay-4 {
      animation-delay: 320ms;
    }

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

    @keyframes panelIn {
      from {
        opacity: 0;
        transform: translateY(12px);
      }

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

    @keyframes glassEnter {
      from {
        opacity: 0;
        transform: translateY(22px) scale(0.985);
        filter: blur(8px);
      }

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

    @keyframes pulseFloat {

      0%,
      100% {
        transform: translateY(0px);
      }

      50% {
        transform: translateY(-6px);
      }
    }

    .panel.active.panel-enter .section-header,
    .panel.active.panel-enter .overview-grid>*,
    .panel.active.panel-enter .stats-grid>*,
    .panel.active.panel-enter .notes-grid>*,
    .panel.active.panel-enter .session-grid>*,
    .panel.active.panel-enter .register-layout>*,
    .panel.active.panel-enter .showcase-stage>*,
    .panel.active.panel-enter .showcase-frame>* {
      animation: glassEnter 620ms cubic-bezier(0.22, 1, 0.36, 1) both;
      animation-delay: calc(var(--stagger-index, 0) * 65ms);
    }

    @media (max-width: 1080px) {

      .hero,
      .overview-grid,
      .register-layout,
      .notes-grid,
      .stats-grid,
      .session-grid {
        grid-template-columns: 1fr;
      }

      /* Showcase tablet adaptations */
      .showcase-command-layout {
        grid-template-columns: 1fr;
        gap: 18px;
      }

      .showcase-nav {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        scrollbar-width: none;
        padding: 0 4px 10px;
        gap: 6px;
        mask-image: linear-gradient(90deg, transparent 0%, black 5%, black 95%, transparent 100%);
        -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 5%, black 95%, transparent 100%);
        scroll-snap-type: x mandatory;
      }

      .showcase-nav::-webkit-scrollbar {
        display: none;
      }

      .showcase-link {
        flex: 0 0 auto;
        padding: 8px 14px;
        border: 1px solid var(--line);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.04);
        font-size: 0.82rem;
        transform: none !important;
        filter: none !important;
        opacity: 1 !important;
        scroll-snap-align: start;
        white-space: nowrap;
        transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
      }

      .showcase-link.active {
        background: rgba(123, 111, 163, 0.18);
        border-color: rgba(123, 111, 163, 0.42);
        color: #fff;
      }

      .showcase-scene {
        grid-template-columns: 1fr;
      }

      /* Multi-angle mobile: stack columns vertically */
      .showcase-scene[data-scene="multi-angles"] {
        grid-template-columns: 1fr;
        gap: 16px;
      }

      .showcase-scene[data-scene="multi-angles"] .showcase-middle-visual {
        transform: none !important;
      }

      /* Constrain fixed-width images to fit mobile viewport */
      .showcase-scene img[style*="width: 440px"],
      .showcase-scene img[style*="width: 380px"] {
        width: 100% !important;
        max-width: 100% !important;
      }

      .showcase-gallery-container {
        width: 100% !important;
        height: auto !important;
        aspect-ratio: 3/4;
      }

      .showcase-frame {
        min-height: auto;
        overflow: visible;
      }
    }

    @media (max-width: 820px) {
      .topbar {
        border-radius: 28px;
        align-items: flex-start;
        flex-direction: column;
      }

      .tabbar {
        justify-content: flex-start;
      }

      .hero,
      .section-shell {
        padding: 24px;
      }

      .shell {
        padding: 8px 8px 32px;
      }

      h1 {
        max-width: none;
      }

      .enroll-progress-meta {
        margin-right: 0;
      }

      .enroll-modal-dialog {
        padding: 26px 22px;
        border-radius: 26px;
      }

      .enroll-modal-step h3 {
        font-size: clamp(2rem, 7vw, 2.8rem);
      }


      .showcase-pin {
        position: static;
      }

      .showcase-frame {
        padding: 18px 16px 14px;
        border-radius: 24px;
        min-height: unset;
        height: auto;
        grid-template-rows: auto auto;
      }

      .showcase-scenes {
        min-height: auto;
        height: auto;
      }

      .showcase-scene {
        position: static;
        display: none;
        gap: 18px;
        opacity: 1;
        transform: none;
        filter: none;
        pointer-events: none;
      }

      .showcase-scene.active {
        display: grid;
        pointer-events: auto;
      }

      .showcase-copy-block .body-copy {
        max-width: none;
      }

      .showcase-scene-head h3 {
        font-size: clamp(2rem, 9vw, 3rem);
      }

      .showcase-visual-column {
        min-height: 220px;
      }

      /* Enroll mobile adaptations */
      .enroll-cta-card .button-row {
        flex-direction: column;
      }

      .enroll-cta-card .button-row .button {
        width: 100%;
        justify-content: center;
        min-height: 52px;
      }

      .enroll-price-card,
      .enroll-cta-card {
        padding: 18px 16px;
      }


      .enroll-modal-actions,
      .enroll-modal-actions-end {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
      }

      .enroll-modal-actions-end {
        margin-left: 0;
      }

      .enroll-modal-actions .button,
      .enroll-modal-actions-end .button {
        width: 100%;
      }
    }

    /* Luxury editorial redesign */
    :root {
      --bg: #0b0910;
      --bg-soft: #0e0d16;
      --panel: rgba(14, 13, 20, 0.92);
      --panel-strong: rgba(11, 10, 16, 0.97);
      --card: rgba(237, 232, 245, 0.035);
      --card-soft: rgba(237, 232, 245, 0.02);
      --card-dark: rgba(10, 8, 15, 0.85);
      --line: rgba(164, 144, 194, 0.12);
      --line-strong: rgba(164, 144, 194, 0.22);
      --line-glass: rgba(255, 255, 255, 0.15);
      --text: #ede8f5;
      --text-soft: #c4bdd4;
      --text-dim: #7a6e92;
      --accent: #8a7ea8;
      --accent-2: #4a4e8f;
      --glow: rgba(138, 126, 168, 0.12);
      --shadow: 0 28px 90px rgba(0, 0, 0, 0.38);
      --glass-blur: 24px;
      --glass-border: 1px solid var(--line-glass);
      --radius-xl: 34px;
      --radius-lg: 26px;
      --radius-md: 18px;
      --space-1: 12px;
      --space-2: 16px;
      --space-3: 22px;
      --space-4: 32px;
      --space-5: 44px;
    }

    html {
      cursor: none !important;
    }

    body {
      font-family: "Manrope", sans-serif;
      background:
        radial-gradient(circle at top right, rgba(138, 126, 168, 0.06), transparent 24%),
        radial-gradient(circle at 12% 0%, rgba(74, 78, 143, 0.09), transparent 28%),
        linear-gradient(180deg, #0b0910 0%, #0e0d15 48%, #0b0910 100%);
      cursor: none !important;
    }

    a,
    button {
      cursor: none !important;
    }

    input,
    textarea,
    select {
      cursor: none !important;
    }

    * {
      cursor: none !important;
    }

    .cursor,
    .cursor-ring {
      position: fixed;
      will-change: transform;
      top: 0;
      left: 0;
      pointer-events: none;
      border-radius: 999px;
      transform: translate(-50%, -50%);
      z-index: 9999;
      will-change: transform;
    }

    .cursor {
      width: 8px;
      height: 8px;
      background: #ffffff;
      box-shadow: 0 0 12px rgba(255, 255, 255, 0.6);
      transition: width 150ms ease, height 150ms ease, opacity 150ms ease;
    }

    .cursor-ring {
      width: 36px;
      height: 36px;
      border: 1.5px solid rgba(255, 255, 255, 0.4);
      transition: width 180ms ease, height 180ms ease, border-color 180ms ease, background 180ms ease;
    }

    .cursor-ring.active {
      width: 56px;
      height: 56px;
      border-color: rgba(138, 126, 168, 0.6);
      background: rgba(138, 126, 168, 0.08);
    }

    a:hover~.cursor,
    button:hover~.cursor,
    .tab:hover~.cursor {
      width: 12px;
      height: 12px;
    }

    .scroll-controls {
      right: 22px;
      bottom: 22px;
      gap: 12px;
    }

    .scroll-button {
      width: 52px;
      height: 52px;
      border-radius: 18px;
      border: var(--glass-border);
      background: rgba(14, 13, 20, 0.82);
      color: var(--text-soft);
      font-family: "Cormorant Garamond", serif;
      font-size: 1.35rem;
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
      transition:
        transform 180ms ease,
        border-color 180ms ease,
        background 180ms ease,
        box-shadow 180ms ease;
    }

    .scroll-button:hover,
    .scroll-button:focus-visible {
      transform: translateY(-2px);
      border-color: rgba(255, 255, 255, 0.2);
      background: rgba(16, 15, 24, 0.92);
      color: var(--text);
      box-shadow:
        0 12px 32px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    .shell {
      max-width: none;
      padding: 8px 8px 56px;
    }

    .topbar {
      top: 18px;
      padding: 18px 24px;
      border-radius: 30px;
      border: var(--glass-border);
      background: rgba(14, 13, 20, 0.78);
      backdrop-filter: blur(28px);
      -webkit-backdrop-filter: blur(28px);
      box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    .brand {
      gap: 16px;
    }

    .brand-mark {
      width: 48px;
      height: 48px;
      border-radius: 14px;
      border: 1px solid rgba(138, 126, 168, 0.10);
      box-shadow: none;
    }

    .brand-copy {
      display: grid;
      gap: 3px;
    }

    .brand-kicker {
      color: var(--text-dim);
      font-size: 0.66rem;
      font-weight: 700;
      letter-spacing: 0.22em;
      text-transform: uppercase;
    }

    .brand-title {
      font-family: "Cormorant Garamond", serif;
      font-size: 1.7rem;
      font-weight: 600;
      color: var(--text);
      letter-spacing: -0.02em;
    }

    .tabbar {
      gap: 16px;
    }

    .tab {
      padding: 8px 0 12px;
      border: 0;
      border-radius: 0;
      background: transparent;
      color: var(--text-dim);
      font-family: "Manrope", sans-serif;
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      box-shadow: none;
      opacity: 0.88;
      transition:
        transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 220ms ease,
        background 220ms ease,
        color 220ms ease,
        box-shadow 220ms ease,
        opacity 220ms ease;
      position: relative;
    }

    .tab::before {
      content: "";
      position: absolute;
      inset: auto 0 0;
      height: 2px;
      border-radius: 999px;
      background: linear-gradient(90deg, transparent, var(--accent), transparent);
      opacity: 0;
      transition: opacity 220ms ease;
    }

    .tab:hover,
    .tab:focus-visible {
      transform: none;
      border-color: transparent;
      color: var(--text-soft);
      box-shadow: none;
    }

    .tab.active {
      background: transparent;
      border-color: transparent;
      color: var(--text);
      box-shadow: none;
    }

    .tab.active::before,
    .tab:hover::before,
    .tab:focus-visible::before {
      opacity: 1;
    }

    .tab:hover,
    .tab:focus-visible,
    .tab.active {
      opacity: 1;
    }

    .hero-frame,
    .section-shell {
      margin-top: var(--space-2);
      border-radius: 28px;
      border: var(--glass-border);
      background: linear-gradient(135deg, rgba(12, 10, 18, 0.82), rgba(8, 6, 14, 0.88));
      backdrop-filter: blur(26px);
      -webkit-backdrop-filter: blur(26px);
      box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.35),
        inset 0 1px 0 rgba(255, 255, 255, 0.07);
    }

    .hero {
      grid-template-columns: 1.1fr 0.9fr;
      gap: var(--space-3);
      padding: 40px 36px;
      align-items: stretch;
    }

    .hero--cinematic {
      position: relative;
      display: flex;
      align-items: flex-end;
      min-height: 680px;
      padding: 40px;
      overflow: hidden;
      isolation: isolate;
      background: #0d0b12;
    }

    .hero-video {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: cover;
      z-index: -3;
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      z-index: -2;
      background:
        linear-gradient(90deg, rgba(7, 6, 11, 0.88) 0%, rgba(7, 6, 11, 0.72) 34%, rgba(7, 6, 11, 0.34) 58%, rgba(7, 6, 11, 0.2) 100%),
        linear-gradient(180deg, rgba(7, 6, 11, 0.28) 0%, rgba(7, 6, 11, 0.56) 100%);
    }

    .hero-content {
      display: grid;
      gap: 18px;
      width: min(640px, 100%);
      padding: 8px 4px;
    }

    .hero-kicker {
      display: inline-flex;
      align-items: center;
      gap: 12px;
      color: rgba(232, 225, 245, 0.72);
      font-size: 0.86rem;
      font-weight: 700;
      letter-spacing: 0.22em;
      text-transform: uppercase;
    }

    .hero-kicker::before {
      content: "";
      width: 96px;
      height: 1px;
      background: linear-gradient(90deg, rgba(255, 123, 29, 0), rgba(255, 123, 29, 0.95));
    }

    .hero-title {
      margin: 0;
      max-width: 11ch;
      font-family: "Sora", sans-serif;
      font-size: clamp(2.9rem, 6vw, 5.4rem);
      font-weight: 800;
      line-height: 0.95;
      letter-spacing: -0.045em;
      text-transform: uppercase;
      text-wrap: balance;
    }

    .hero-subtitle {
      margin: 0;
      max-width: 38ch;
      color: rgba(232, 225, 245, 0.7);
      font-size: 0.98rem;
      font-weight: 700;
      letter-spacing: 0.18em;
      line-height: 1.5;
      text-transform: uppercase;
    }

    .hero-description {
      margin: 0;
      max-width: 52ch;
      color: rgba(237, 232, 245, 0.86);
      font-size: 1.06rem;
      line-height: 1.75;
    }

    .hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 6px;
    }

    .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 8px;
    }

    .hero-button {
      min-width: 164px;
      border-color: rgba(255, 123, 29, 0.88);
      background: #ff7b1d;
      color: #f8f3eb;
      box-shadow: none;
    }

    .hero-button:hover,
    .hero-button:focus-visible {
      background: #ff8a35;
      border-color: #ff8a35;
    }

    .eyebrow,
    .mini-kicker {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 0;
      border: 0;
      background: transparent;
      color: var(--accent);
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.24em;
      text-transform: uppercase;
    }

    .eyebrow::before,
    .mini-kicker::before {
      content: "";
      width: 38px;
      height: 1px;
      background: linear-gradient(90deg, rgba(138, 126, 168, 0), rgba(138, 126, 168, 0.7));
    }

    h1,
    h2,
    h3,
    h4 {
      font-family: "Cormorant Garamond", serif;
      font-weight: 600;
      line-height: 0.96;
      text-wrap: balance;
    }

    h1 {
      margin-top: 14px;
      max-width: 11ch;
      font-size: clamp(4.25rem, 6.3vw, 6.8rem);
      letter-spacing: -0.055em;
    }

    .hero-copy p,
    .section-copy,
    .body-copy,
    li,
    .register-note {
      color: var(--text-soft);
      font-size: 1rem;
      line-height: 1.9;
      text-wrap: pretty;
    }

    .hero-copy {
      position: relative;
      display: grid;
      align-content: start;
      padding-left: 0;
    }

    .hero-copy p {
      max-width: 58ch;
      margin-top: 16px;
    }

    .hero-copy p+p {
      color: rgba(138, 126, 168, 0.6);
    }

    .hero-meta {
      margin-top: 26px;
      gap: 8px;
    }

    .pill {
      padding: 10px 14px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: var(--card-soft);
      color: var(--text-soft);
      font-size: 0.78rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .hero-art {
      gap: 18px;
    }

    .visual-card,
    .floating-card,
    .stats-grid .stat-card,
    .overview-grid .content-card,
    .notes-grid .note-card,
    .register-card,
    .session-card {
      border-radius: 28px;
      border: var(--glass-border);
      background: linear-gradient(135deg, var(--card-dark), rgba(12, 10, 20, 0.92));
      box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.3),
        0 2px 8px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
      backdrop-filter: blur(var(--glass-blur));
      -webkit-backdrop-filter: blur(var(--glass-blur));
    }

    .visual-card::before,
    .floating-card::before,
    .stats-grid .stat-card::before,
    .overview-grid .content-card::before,
    .notes-grid .note-card::before,
    .register-card::before,
    .session-card::before {
      content: "";
      position: absolute;
      inset: 0;
      border-radius: inherit;
      background: linear-gradient(135deg, rgba(255, 255, 255, 0.03), transparent 50%);
      pointer-events: none;
    }

    .visual-card {
      min-height: 420px;
      background:
        linear-gradient(145deg, rgba(14, 13, 24, 0.96), rgba(9, 8, 18, 0.9));
    }

    .visual-card::before {
      display: none;
    }

    .visual-card .orbit-ring,
    .visual-card .signal-node,
    .visual-card .orbit-label,
    .visual-card .tool-chip {
      display: none;
    }

    .visual-card::after {
      inset: 24px;
      border-radius: 26px;
      border: 1px solid var(--line);
      background: none;
      opacity: 1;
      transform: none;
    }

    .editorial-sweep,
    .editorial-column,
    .editorial-marble {
      position: absolute;
      pointer-events: none;
    }

    .editorial-sweep,
    .editorial-column,
    .editorial-marble {
      display: none;
    }

    .editorial-caption,
    .editorial-stat {
      position: absolute;
      padding: 12px 14px;
      border-radius: 18px;
      border: 1px solid var(--line);
      background: rgba(14, 13, 13, 0.88);
      color: var(--text-soft);
      font-size: 0.8rem;
      line-height: 1.6;
    }

    .caption-top,
    .caption-bottom {
      display: none;
    }

    .editorial-stat {
      right: 28px;
      top: 38%;
      display: grid;
      gap: 4px;
      min-width: 190px;
    }

    .editorial-stat span {
      color: var(--text-dim);
      font-size: 0.72rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }

    .editorial-stat strong {
      font-family: "Cormorant Garamond", serif;
      font-size: 1.35rem;
      font-weight: 600;
      color: var(--text);
    }

    .visual-center {
      width: 196px;
      height: 196px;
      border-radius: 50%;
      font-family: "Cormorant Garamond", serif;
      font-size: 1.8rem;
      font-weight: 600;
      line-height: 1.05;
      color: var(--text);
      letter-spacing: -0.03em;
      background: linear-gradient(145deg, rgba(243, 238, 252, 0.09), rgba(243, 238, 252, 0.025));
      box-shadow: 0 18px 50px rgba(0, 0, 0, 0.32);
      animation: centerBreath 9s ease-in-out infinite;
    }

    .visual-center::before {
      inset: -16px;
      border-color: rgba(138, 126, 168, 0.10);
    }

    .floating-card {
      padding: 22px;
      background: linear-gradient(135deg, var(--card-dark), rgba(10, 8, 18, 0.94));
      border: var(--glass-border);
      backdrop-filter: blur(22px);
      -webkit-backdrop-filter: blur(22px);
      box-shadow:
        0 6px 28px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
      transition:
        transform 240ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 240ms ease,
        background 240ms ease,
        box-shadow 240ms ease,
        opacity 240ms ease;
    }

    .floating-card:hover {
      transform: translateY(-4px);
      border-color: rgba(255, 255, 255, 0.2);
      box-shadow:
        0 12px 40px rgba(0, 0, 0, 0.35),
        0 4px 12px rgba(138, 126, 168, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
    }

    .floating-card h3,
    .content-card h3,
    .session-card h3,
    .note-card h3,
    .register-card h3 {
      margin-top: 14px;
      margin-bottom: 12px;
      font-size: 2rem;
      line-height: 0.98;
    }

    .section-shell {
      padding: 44px 32px 32px;
    }

    .section-shell::before {
      display: none;
    }

    .panel-credit {
      margin-top: 0;
      color: rgba(138, 126, 168, 0.4);
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.22em;
      align-self: end;
    }

    .section-header {
      display: grid;
      grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr) auto;
      align-items: start;
      gap: 22px;
      margin-bottom: 32px;
    }

    .section-header h2 {
      margin-top: 14px;
      max-width: 11ch;
      font-size: clamp(2.6rem, 4vw, 4rem);
      line-height: 0.96;
      letter-spacing: -0.04em;
    }

    .section-copy {
      max-width: 30ch;
      padding-top: 12px;
      color: rgba(138, 126, 168, 0.7);
      font-size: 0.98rem;
    }

    .subsection-head {
      margin-top: 44px;
      margin-bottom: 22px;
      max-width: 34rem;
    }

    .subsection-head h3 {
      margin-top: 10px;
      font-size: clamp(1.5rem, 2vw, 2rem);
      line-height: 1.02;
    }

    .section-shell,
    .content-card,
    .note-card,
    .stat-card,
    .session-card,
    .register-card,
    .floating-card {
      contain: layout;
    }

    .section-meta {
      flex: 0 0 auto;
      padding-top: 12px;
      color: var(--text-dim);
      font-size: 0.74rem;
      font-weight: 700;
      letter-spacing: 0.22em;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .content-card,
    .note-card,
    .register-card,
    .stat-card,
    .floating-card,
    .session-card {
      text-wrap: pretty;
    }

    .overview-grid,
    .stats-grid,
    .notes-grid,
    .register-layout,
    .session-grid {
      display: grid;
      gap: 22px;
    }

    .overview-grid {
      grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
      align-items: start;
    }

    .content-card,
    .note-card,
    .register-card {
      padding: 22px;
      background: linear-gradient(135deg, var(--card-dark), rgba(11, 9, 18, 0.94));
      border: var(--glass-border);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      box-shadow:
        0 4px 24px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    }

    .stack-list li {
      padding: 14px 16px;
      border-radius: 18px;
      border: 1px solid var(--line);
      background: rgba(138, 126, 168, 0.04);
      line-height: 1.8;
    }

    .plain-list li,
    .session-card li,
    .pricing-includes li,
    .showcase-list li,
    .detail-list li {
      padding-left: 18px;
    }

    .plain-list li::before,
    .session-card li::before,
    .pricing-includes li::before,
    .showcase-list li::before,
    .detail-list li::before {
      width: 6px;
      height: 6px;
      top: 11px;
      background: rgba(138, 126, 168, 0.32);
      box-shadow: none;
    }

    .stats-grid,
    .notes-grid,
    .instructors-grid {
      margin-top: 22px;
    }

    .stats-grid {
      grid-template-columns: 1.2fr 0.8fr 0.8fr;
    }

    .notes-grid {
      grid-template-columns: 1.15fr 0.85fr 0.85fr;
    }

    .instructors-grid {
      display: flex;
      gap: 22px;
      padding: 22px;
      background: linear-gradient(135deg, var(--card-dark), rgba(11, 9, 18, 0.94));
      border: var(--glass-border);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      box-shadow:
        0 4px 24px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
    }

    .instructor-card {
      flex: 1;
      display: flex;
      flex-direction: column;
      gap: 18px;
      padding: 0;
      background: transparent;
      border: none;
      box-shadow: none;
    }

    .stat-card {
      padding: 22px 20px;
      min-height: 160px;
      background: linear-gradient(135deg, var(--card-dark), rgba(11, 9, 18, 0.92));
      border: var(--glass-border);
      backdrop-filter: blur(22px);
      -webkit-backdrop-filter: blur(22px);
      box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.06);
      transition:
        transform 240ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 240ms ease,
        background 240ms ease,
        box-shadow 240ms ease,
        opacity 240ms ease;
    }

    .stat-card:hover {
      transform: translateY(-3px);
      border-color: rgba(255, 255, 255, 0.18);
      box-shadow:
        0 8px 32px rgba(0, 0, 0, 0.32),
        0 2px 8px rgba(138, 126, 168, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    .stat-number {
      font-family: "Cormorant Garamond", serif;
      font-size: 3.6rem;
      font-weight: 600;
      color: var(--text);
    }

    .stat-label {
      margin-top: 14px;
      color: var(--text-soft);
      line-height: 1.75;
      max-width: 26ch;
    }

    .session-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .session-card {
      display: flex;
      flex-direction: column;
      min-height: auto;
      padding: 22px 20px 20px;
      background: linear-gradient(135deg, var(--card-dark), rgba(10, 8, 17, 0.93));
      border: var(--glass-border);
      backdrop-filter: blur(20px);
      -webkit-backdrop-filter: blur(20px);
      box-shadow:
        0 4px 20px rgba(0, 0, 0, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
      transition:
        transform 240ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 240ms ease,
        background 240ms ease,
        box-shadow 240ms ease,
        opacity 240ms ease;
    }

    .session-card:nth-child(-n+3) {
      background: linear-gradient(135deg, rgba(14, 12, 22, 0.88), rgba(9, 7, 16, 0.92));
    }

    .session-card::after {
      background: radial-gradient(circle, rgba(138, 126, 168, 0.1), transparent 72%);
    }

    .session-card:hover {
      transform: translateY(-4px);
      border-color: rgba(255, 255, 255, 0.18);
      background: linear-gradient(135deg, rgba(138, 126, 168, 0.08), rgba(12, 10, 20, 0.92));
      box-shadow:
        0 10px 36px rgba(0, 0, 0, 0.32),
        0 2px 10px rgba(138, 126, 168, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    .content-card,
    .note-card,
    .register-card,
    .instructor-card {
      transition:
        transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 220ms ease,
        background 220ms ease,
        box-shadow 220ms ease,
        opacity 220ms ease;
    }

    .content-card:hover,
    .note-card:hover,
    .register-card:hover,
    .stat-card:hover,
    .floating-card:hover {
      transform: translateY(-1px);
    }

    .instructor-photo {
      width: 100%;
      aspect-ratio: 1 / 1;
      overflow: hidden;
      border-radius: 12px;
      background: rgba(138, 126, 168, 0.04);
    }

    .instructor-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 300ms ease;
    }

    .instructor-card:hover .instructor-photo img {
      transform: scale(1.03);
    }

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

    .instructor-card h3 {
      margin: 0;
      font-size: clamp(1.4rem, 2vw, 1.7rem);
      line-height: 1.1;
      letter-spacing: -0.02em;
    }

    .instructor-role {
      color: rgba(138, 126, 168, 0.7);
      font-size: 0.9rem;
      font-weight: 500;
    }

    .instructor-bio {
      margin: 0;
      color: var(--text-soft);
      line-height: 1.7;
      font-size: 0.95rem;
    }

    .session-index {
      display: grid;
      gap: 4px;
      margin-bottom: 14px;
      padding: 0;
      border: 0;
      border-radius: 0;
      background: transparent;
      backdrop-filter: none;
      color: var(--text-dim);
    }

    .session-index span {
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.24em;
      text-transform: uppercase;
    }

    .session-index strong {
      min-width: 0;
      padding: 0;
      border-radius: 0;
      background: transparent;
      color: var(--text);
      font-family: "Cormorant Garamond", serif;
      font-size: 2.5rem;
      font-weight: 600;
      text-align: left;
    }

    .session-card h3 {
      font-size: 2rem;
      max-width: 12ch;
    }

    .session-card ul {
      gap: 10px;
      margin-top: 4px;
    }

    .session-card li {
      line-height: 1.78;
    }

    .task {
      margin-top: auto;
      padding: 10px 12px;
      border-radius: 16px;
      border: 1px solid var(--line);
      background: var(--card);
      color: var(--text);
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      line-height: 1.65;
      text-transform: uppercase;
    }

    .register-layout {
      grid-template-columns: minmax(0, 1fr);
    }

    .register-preview {
      min-height: 300px;
      background:
        radial-gradient(circle at 20% 18%, rgba(138, 126, 168, 0.08), transparent 26%),
        linear-gradient(180deg, rgba(237, 232, 245, 0.05), rgba(237, 232, 245, 0.018));
      justify-content: flex-start;
      gap: 18px;
    }

    .register-preview .mini-badge {
      padding: 8px 12px;
      border: 1px solid rgba(138, 126, 168, 0.12);
      background: var(--card-soft);
      color: var(--text-soft);
      font-size: 0.72rem;
      letter-spacing: 0.18em;
    }

    .pricing-heading {
      gap: 8px;
    }

    .pricing-meta,
    .button-row {
      gap: 10px;
    }

    .pricing-pill {
      border: 1px solid var(--line);
      background: var(--card);
      color: var(--text-soft);
      font-size: 0.76rem;
      letter-spacing: 0.12em;
    }

    .price-current {
      font-family: "Cormorant Garamond", serif;
      font-size: clamp(3.1rem, 5vw, 4.6rem);
      font-weight: 600;
      line-height: 0.92;
      color: var(--text);
    }

    .price-original {
      color: rgba(138, 126, 168, 0.5);
    }

    .pricing-footnote {
      border-color: var(--line);
      background: var(--card);
      box-shadow: none;
    }

    .pricing-footnote::before {
      background: var(--accent);
      box-shadow: none;
    }

    .register-panel {
      gap: 18px;
      background: linear-gradient(180deg, rgba(14, 13, 25, 0.97), rgba(8, 8, 17, 0.95));
    }

    .register-panel-intro {
      display: grid;
      gap: 10px;
      padding-bottom: 16px;
      border-bottom: 1px solid rgba(138, 126, 168, 0.12);
    }

    .register-panel .body-copy {
      max-width: 50ch;
      color: rgba(230, 228, 239, 0.78);
    }

    .showcase-list,
    .detail-list {
      list-style: none;
      padding: 0;
      margin: 4px 0 0;
      display: grid;
      gap: 12px;
    }

    .showcase-stage {
      position: relative;
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 0;
      align-items: start;
    }

    .showcase-pin {
      position: sticky;
      top: 108px;
    }

    .showcase-frame {
      display: grid;
      grid-template-rows: auto minmax(0, 1fr);
      gap: 14px;
      min-height: 720px;
      padding: 22px 28px 18px;
      border-radius: 38px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background:
        radial-gradient(circle at 20% 16%, rgba(115, 93, 162, 0.16), transparent 28%),
        radial-gradient(circle at 84% 18%, rgba(86, 102, 166, 0.1), transparent 28%),
        linear-gradient(180deg, rgba(17, 15, 26, 0.98), rgba(9, 8, 15, 0.98));
      box-shadow:
        0 28px 80px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
      color: var(--text);
      overflow: hidden;
    }

    .showcase-frame-head {
      display: grid;
      gap: 6px;
      max-width: 58ch;
    }

    .showcase-rail-label,
    .showcase-kicker,
    .showcase-placeholder-label,
    .showcase-number,
    .showcase-step-index {
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.22em;
      text-transform: uppercase;
    }

    .showcase-rail-label,
    .showcase-kicker,
    .showcase-number,
    .showcase-step-index {
      color: rgba(123, 111, 163, 0.9);
    }

    .showcase-frame-head p,
    .showcase-placeholder-copy,
    .showcase-caption,
    .showcase-step-label {
      margin: 0;
      color: rgba(196, 189, 212, 0.72);
      line-height: 1.7;
      font-size: 0.95rem;
    }

    .showcase-command-layout {
      display: grid;
      grid-template-columns: 160px minmax(0, 1fr);
      gap: 24px;
      align-items: stretch;
    }

    .showcase-nav {
      position: relative;
      display: grid;
      align-content: start;
      gap: 2px;
      padding: 110px 6px 110px 0;
      overflow-y: auto;
      scrollbar-width: none;
      overscroll-behavior: contain;
      scroll-snap-type: y mandatory;
      mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.38) 0%, black 18%, black 82%, rgba(0, 0, 0, 0.38) 100%);
      -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.38) 0%, black 18%, black 82%, rgba(0, 0, 0, 0.38) 100%);
    }

    .showcase-nav::-webkit-scrollbar {
      display: none;
    }


    .showcase-scroll-indicator {
      position: sticky;
      top: 18px;
      z-index: 2;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      align-self: start;
      margin: 0 0 36px;
      padding: 12px 16px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      border-radius: 999px;
      background: rgba(15, 14, 22, 0.92);
      box-shadow: 0 14px 30px rgba(0, 0, 0, 0.2);
      color: rgba(237, 232, 245, 0.72);
      pointer-events: none;
    }

    .showcase-scroll-indicator svg {
      width: 20px;
      height: 20px;
      opacity: 0.8;
      animation: showcaseScrollPulse 1.8s ease-in-out infinite;
    }

    .showcase-scroll-indicator span {
      font-size: 0.76rem;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      white-space: nowrap;
    }



    .showcase-link {
      position: relative;
      z-index: 3;
      display: block;
      padding: 4px 6px;
      border-radius: 8px;
      border: 0;
      color: rgba(237, 232, 245, 0.46);
      text-decoration: none;
      font-family: "Cormorant Garamond", serif;
      font-size: 1.22rem;
      font-weight: 600;
      line-height: 1.15;
      background: transparent;
      scroll-snap-align: center;
      transition:
        transform 420ms cubic-bezier(0.2, 1.15, 0.3, 1),
        color 180ms ease,
        background 180ms ease,
        opacity 320ms ease,
        filter 320ms ease;
      transform: translateX(var(--roller-x, 0px)) scale(var(--roller-scale, 1));
      transform-origin: left center;
      opacity: var(--roller-opacity, 0.58);
      filter: blur(var(--roller-blur, 0px));
    }

    .showcase-link:hover,
    .showcase-link:focus-visible {
      transform: translateX(2px);
      color: rgba(237, 232, 245, 0.78);
      outline: none;
    }

    .showcase-link.active {
      color: #ffffff;
      background: transparent;
      border: 0;
      box-shadow: none;
      opacity: 1;
    }

    .showcase-scenes {
      position: relative;
      min-height: 500px;
      padding-bottom: 6px;
    }

    .showcase-scene {
      position: absolute;
      inset: 0;
      display: grid;
      grid-template-columns: minmax(0, 0.9fr) minmax(320px, 0.96fr);
      gap: 22px;
      align-items: stretch;
      opacity: 0;
      transform: translateY(18px) scale(0.985);
      filter: blur(8px);
      pointer-events: none;
      transition:
        opacity 280ms ease,
        transform 380ms cubic-bezier(0.22, 1, 0.36, 1),
        filter 280ms ease;
    }

    .showcase-scene[data-scene="mood-board"],
    .showcase-scene[data-scene="3d-integration"],
    .showcase-scene[data-scene="training-lora"],
    .showcase-scene[data-scene="all-in-one-click"] {
      grid-template-columns: minmax(0, 0.65fr) minmax(320px, 1.25fr);
    }

    .showcase-scene[data-scene="space-perception"] {
      grid-template-columns: minmax(0, 0.96fr) minmax(360px, 430px);
      gap: 36px;
      align-items: end;
    }

    .showcase-scene[data-scene="space-perception"] .showcase-copy-block {
      display: grid;
      grid-template-rows: auto 1fr;
      align-content: stretch;
      gap: 42px;
      min-height: 100%;
      padding-top: 92px;
    }

    .showcase-scene[data-scene="space-perception"] .showcase-scene-head {
      align-self: start;
      max-width: 940px;
    }

    .showcase-scene[data-scene="space-perception"] .showcase-space-reference-row {
      display: grid;
      gap: 14px;
      width: min(100%, 556px);
      margin: 0;
      align-self: end;
      justify-self: start;
    }

    .showcase-scene[data-scene="space-perception"] .showcase-space-reference-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 36px;
      align-items: end;
    }

    .showcase-scene[data-scene="space-perception"] .showcase-space-reference-grid img {
      width: 100%;
      max-width: 260px;
      max-height: 390px;
      justify-self: center;
    }
    
    .showcase-scene[data-scene="add-people"] {
      grid-template-columns: minmax(0, 0.58fr) minmax(420px, 1.32fr);
    }

    .showcase-scene[data-scene="app-integration"] {
      grid-template-columns: minmax(0, 0.58fr) minmax(420px, 1.32fr);
    }

    .showcase-scene[data-scene="multi-angles"] {
      grid-template-columns: repeat(3, auto);
      gap: 40px;
      justify-content: center;
      align-items: center;
    }

    .showcase-scene.active {
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: blur(0);
      pointer-events: auto;
    }

    .showcase-copy-block {
      display: grid;
      align-content: start;
      gap: 12px;
      min-height: 0;
      padding-top: 18px;
    }

    .showcase-scene-head {
      display: flex;
      align-items: start;
      justify-content: space-between;
      gap: 18px;
      padding-bottom: 0;
      border-bottom: 0;
    }

    .showcase-scene-head h3 {
      position: relative;
      margin: 8px 0 0;
      padding-left: 34px;
      font-family: "Cormorant Garamond", serif;
      font-size: clamp(3.1rem, 6.2vw, 4.5rem);
      font-weight: 600;
      line-height: 0.9;
      letter-spacing: -0.05em;
      color: #f3edf7;
      text-transform: lowercase;
    }

    .showcase-scene-head h3::before {
      content: "/";
      position: absolute;
      left: 0;
      top: 0.06em;
      color: rgba(123, 111, 163, 0.9);
      font-size: 0.92em;
      font-weight: 500;
    }

    .showcase-number {
      flex: 0 0 auto;
      padding-top: 8px;
    }

    .showcase-copy-block .body-copy {
      margin: 0;
      max-width: 35ch;
      color: rgba(228, 222, 238, 0.82);
      font-size: 0.94rem;
    }

    .showcase-copy-block .detail-list {
      gap: 10px;
    }

    .showcase-copy-block .detail-list li {
      color: rgba(219, 212, 231, 0.86);
      font-size: 0.9rem;
      line-height: 1.5;
    }

    .showcase-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 4px;
    }

    .showcase-tag {
      display: inline-flex;
      align-items: center;
      min-height: 34px;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: rgba(255, 255, 255, 0.06);
      color: rgba(237, 232, 245, 0.72);
      font-size: 0.72rem;
      font-weight: 700;
      letter-spacing: 0.08em;
      text-transform: uppercase;
    }

    .showcase-visual-column {
      display: grid;
      align-content: start;
      gap: 12px;
      padding-top: 8px;
    }

    .animation-reference-strip {
      display: grid;
      grid-template-columns: 1.1fr 0.9fr;
      grid-template-rows: repeat(2, minmax(0, 190px));
      gap: 16px;
      margin-top: 26px;
      max-width: 640px;
    }

    .animation-reference-strip img {
      width: 100%;
      height: 100%;
      min-height: 0;
      border-radius: 16px;
      object-fit: cover;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: rgba(255, 255, 255, 0.03);
      box-shadow: 0 18px 42px rgba(0, 0, 0, 0.22);
    }

    .animation-reference-strip img:nth-child(2) {
      grid-row: span 2;
    }

    .animation-video-card {
      position: relative;
      width: 100%;
      aspect-ratio: 1.42;
      min-height: 520px;
      border-radius: 28px;
      overflow: hidden;
      border: 1px solid rgba(255, 255, 255, 0.1);
      background:
        radial-gradient(circle at 18% 12%, rgba(123, 111, 163, 0.2), transparent 32%),
        #08070d;
      box-shadow: 0 28px 70px rgba(0, 0, 0, 0.34);
    }

    .animation-video-card video {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .animation-video-card::after {
      content: "Motion output";
      position: absolute;
      left: 18px;
      bottom: 18px;
      padding: 8px 12px;
      border-radius: 999px;
      border: 1px solid rgba(255, 255, 255, 0.12);
      background: rgba(9, 8, 14, 0.62);
      color: rgba(237, 232, 245, 0.82);
      font-size: 0.68rem;
      font-weight: 800;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      backdrop-filter: blur(14px);
    }

    .style-reference-card {
      display: grid;
      gap: 10px;
      margin-top: 18px;
      width: min(100%, 430px);
    }

    .style-reference-card img {
      width: 100%;
      aspect-ratio: 1 / 1.08;
      border-radius: 18px;
      object-fit: cover;
      border: 1px solid rgba(255, 255, 255, 0.09);
      background: rgba(255, 255, 255, 0.03);
      box-shadow: 0 22px 48px rgba(0, 0, 0, 0.26);
    }

    .style-reference-label {
      color: rgba(237, 232, 245, 0.68);
      font-size: 0.74rem;
      font-weight: 800;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }

    .style-transfer-slider {
      justify-self: center;
      width: min(100%, 390px);
      aspect-ratio: 0.556;
      min-height: 0;
      border-radius: 28px;
      background: #08070d;
    }

    .style-transfer-slider img {
      object-fit: contain !important;
      background: #08070d;
    }

    .showcase-placeholder {
      position: relative;
      display: grid;
      align-content: end;
      min-height: 360px;
      padding: 22px;
      border-radius: 24px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      overflow: hidden;
      background:
        radial-gradient(circle at 18% 18%, rgba(129, 110, 170, 0.14), transparent 30%),
        radial-gradient(circle at 82% 14%, rgba(115, 121, 183, 0.08), transparent 26%),
        linear-gradient(160deg, rgba(26, 23, 36, 0.96), rgba(15, 13, 23, 0.94));
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
    }

    .showcase-placeholder::before,
    .showcase-placeholder::after {
      content: "";
      position: absolute;
      pointer-events: none;
    }

    .showcase-placeholder::before {
      inset: 18px;
      border-radius: 20px;
      border: 1px solid rgba(255, 255, 255, 0.06);
    }

    .showcase-placeholder::after {
      top: -16px;
      right: 35%;
      width: 2px;
      height: calc(100% + 32px);
      background: linear-gradient(180deg, transparent, rgba(123, 111, 163, 0.92) 14%, rgba(123, 111, 163, 0.92) 86%, transparent);
      transform: rotate(8deg);
      transform-origin: center;
      opacity: 0.9;
    }

    .showcase-placeholder .showcase-placeholder-copy::before {
      content: "";
      position: absolute;
      left: 16px;
      top: -138px;
      width: min(66%, 276px);
      height: 206px;
      border-radius: 14px;
      border: 1px solid rgba(255, 255, 255, 0.06);
      background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.02));
      box-shadow: 0 14px 26px rgba(0, 0, 0, 0.14);
    }

    .showcase-placeholder .showcase-placeholder-copy::after {
      content: "";
      position: absolute;
      left: 38px;
      top: -112px;
      width: min(50%, 212px);
      height: 128px;
      border-radius: 10px;
      border: 1px solid rgba(255, 255, 255, 0.05);
      background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.015));
      box-shadow: 0 10px 18px rgba(0, 0, 0, 0.12);
    }

    .showcase-placeholder-lines {
      position: absolute;
      inset: 90px 46px auto auto;
      width: min(48%, 220px);
      display: grid;
      gap: 10px;
      opacity: 0.52;
    }

    .showcase-placeholder-lines span {
      display: block;
      height: 9px;
      border-radius: 999px;
      background: linear-gradient(90deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.03));
    }

    .showcase-placeholder-lines span:nth-child(2) {
      width: 82%;
    }

    .showcase-placeholder-lines span:nth-child(3) {
      width: 64%;
    }

    .showcase-placeholder-copy {
      position: relative;
      z-index: 1;
      display: grid;
      gap: 10px;
      max-width: 28ch;
      color: rgba(215, 208, 228, 0.72);
    }

    .showcase-placeholder-copy strong {
      display: block;
      font-family: "Sora", sans-serif;
      font-size: 1.24rem;
      line-height: 1.08;
      color: #f3edf7;
    }

    .showcase-placeholder-label {
      color: rgba(215, 208, 228, 0.56);
    }

    .showcase-caption {
      padding-left: 4px;
      font-size: 0.82rem;
      color: rgba(196, 189, 212, 0.6);
      line-height: 1.55;
    }

    .showcase-steps {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      height: 100%;
      overflow-y: auto;
      overscroll-behavior: contain;
      scrollbar-width: none;
      width: 1px;
      opacity: 0;
      pointer-events: auto;
    }

    .showcase-steps::-webkit-scrollbar {
      display: none;
    }

    .showcase-step {
      min-height: 72%;
      scroll-margin-top: 0;
      display: block;
      padding: 0;
      border: 0;
      background: transparent;
    }

    .showcase-step-inner {
      display: none;
    }

    .showcase-step-label {
      font-size: 0.84rem;
    }

    .exhibit-stack,
    .enroll-facts {
      display: grid;
      gap: 10px;
    }

    .exhibit-card,
    .fact-row {
      padding: 14px 0;
      border-radius: 0;
      border: 1px solid rgba(138, 126, 168, 0.13);
      border-left: 0;
      border-right: 0;
      background: transparent;
      box-shadow: none;
    }

    .exhibit-card strong,
    .fact-row strong {
      display: block;
      margin-bottom: 10px;
      color: rgba(237, 232, 245, 0.96);
      font-size: 0.82rem;
      letter-spacing: 0.18em;
      text-transform: uppercase;
    }

    .contact-note {
      padding-top: 6px;
      border: 0;
      border-top: 1px solid rgba(138, 126, 168, 0.12);
      border-radius: 0;
      background: transparent;
      color: rgba(216, 208, 231, 0.7);
      line-height: 1.75;
    }

    .register-panel .button-row {
      padding-top: 4px;
    }

    .register-panel .button {
      min-height: 50px;
    }

    .register-panel .button.primary {
      background: rgba(138, 126, 168, 0.16);
    }

    .register-panel .button:not(.primary) {
      background: rgba(255, 255, 255, 0.02);
    }

    .register-panel .button:hover,
    .register-panel .button:focus-visible {
      background: rgba(255, 255, 255, 0.06);
    }

    .register-panel .button.primary:hover,
    .register-panel .button.primary:focus-visible {
      background: rgba(138, 126, 168, 0.22);
    }

    .button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 1px solid var(--line);
      border-radius: 999px;
      padding: 14px 20px;
      background: var(--card);
      color: var(--text);
      font-family: "Manrope", sans-serif;
      font-size: 0.8rem;
      font-weight: 700;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      transition:
        transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
        border-color 220ms ease,
        background 220ms ease,
        color 220ms ease,
        box-shadow 220ms ease,
        opacity 220ms ease;
    }

    .register-note,
    .contact-note,
    .exhibit-card,
    .fact-row {
      text-wrap: pretty;
    }

    .button.primary {
      background: rgba(138, 126, 168, 0.10);
      border-color: var(--line-strong);
      box-shadow: none;
    }

    .button.primary::after {
      display: none;
    }

    .button:hover,
    .button:focus-visible {
      transform: translateY(-1px);
      border-color: var(--line-strong);
      background: var(--card-soft);
    }

    .button.primary:hover,
    .button.primary:focus-visible {
      background: rgba(138, 126, 168, 0.14);
    }

    #panel-overview .section-shell {
      background: rgba(9, 8, 16, 0.94);
    }

    #panel-sessions .section-shell {
      background: rgba(10, 9, 17, 0.94);
    }

    #panel-showcase .section-shell {
      background: rgba(9, 8, 16, 0.95);
    }

    #panel-register .section-shell {
      background: rgba(11, 9, 17, 0.95);
    }

    #panel-showcase .section-header {
      gap: 16px;
      margin-bottom: 14px;
    }

    #panel-showcase .section-header h2 {
      font-size: clamp(1.8rem, 2.6vw, 2.7rem);
      max-width: 14ch;
    }

    #panel-showcase .section-copy {
      max-width: 38ch;
      padding-top: 2px;
    }

    .fade-up {
      transform: translateY(14px);
      animation-duration: 640ms;
    }

    .panel {
      display: none;
      opacity: 0;
      content-visibility: auto;
      contain-intrinsic-size: 1200px;
    }

    .panel.active {
      display: block;
      opacity: 1;
    }

    .panel.panel-enter {
      animation: panelIn 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
    }

    .fade-up {
      opacity: 0;
      transform: translateY(12px);
      animation: rise 900ms cubic-bezier(0.19, 1, 0.22, 1) forwards;
    }

    .delay-1 {
      animation-delay: 120ms;
    }

    .delay-2 {
      animation-delay: 220ms;
    }

    .delay-3 {
      animation-delay: 320ms;
    }

    .delay-4 {
      animation-delay: 420ms;
    }

    @keyframes rise {
      from {
        opacity: 0;
        transform: translateY(12px);
      }

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

    @keyframes panelIn {
      from {
        opacity: 0;
        transform: translateY(10px);
      }

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

    @keyframes glassEnter {
      from {
        opacity: 0;
        transform: translateY(16px);
      }

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

    @keyframes pulseFloat {

      0%,
      100% {
        transform: translateY(0px);
      }

      50% {
        transform: translateY(-3px);
      }
    }

    @keyframes showcaseScrollPulse {

      0%,
      100% {
        transform: translateY(0);
        opacity: 0.7;
      }

      50% {
        transform: translateY(4px);
        opacity: 1;
      }
    }

    @keyframes sweepDrift {
      from {
        transform: translate3d(0, 0, 0) scale(1);
        opacity: 0.72;
      }

      to {
        transform: translate3d(-8px, 10px, 0) scale(1.035);
        opacity: 0.9;
      }
    }

    @keyframes marbleDrift {
      from {
        transform: rotate(12deg) translate3d(0, 0, 0);
      }

      to {
        transform: rotate(9deg) translate3d(-6px, -8px, 0);
      }
    }

    @keyframes centerBreath {

      0%,
      100% {
        transform: translate(-50%, -50%) scale(1);
      }

      50% {
        transform: translate(-50%, -50%) scale(1.018);
      }
    }

    @media (max-width: 1200px) {
      .shell {
        padding: 14px 14px 44px;
      }

      .hero {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
        padding: clamp(34px, 4vw, 48px);
      }

      .hero--cinematic {
        min-height: 620px;
        padding: 34px;
      }

      .section-shell {
        padding: clamp(28px, 4vw, 36px);
      }

      .section-header {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
        gap: 18px 24px;
      }

      .section-copy {
        max-width: 44ch;
      }

      .overview-grid,
      .register-layout,
      .showcase-stage {
        grid-template-columns: 1fr;
      }

      .showcase-pin {
        position: static;
      }

      .showcase-frame-head p {
        max-width: 50ch;
      }

      .showcase-frame {
        min-height: 760px;
        height: clamp(760px, 86vh, 920px);
      }

      .showcase-step {
        min-height: 34vh;
      }

      .stats-grid,
      .notes-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

    @media (max-width: 960px) {

      html,
      body,
      a,
      button,
      input,
      textarea,
      select,
      * {
        cursor: auto !important;
      }

      .cursor,
      .cursor-ring {
        display: none !important;
      }

      .hero--cinematic {
        min-height: 560px;
        padding: 28px 24px;
      }

      .hero-overlay {
        background:
          linear-gradient(180deg, rgba(7, 6, 11, 0.26) 0%, rgba(7, 6, 11, 0.58) 54%, rgba(7, 6, 11, 0.9) 100%),
          linear-gradient(90deg, rgba(7, 6, 11, 0.74) 0%, rgba(7, 6, 11, 0.3) 100%);
      }

      .hero-content {
        width: min(100%, 560px);
      }

      .hero-kicker::before {
        width: 56px;
      }

      .hero-title {
        max-width: 12ch;
        font-size: clamp(2.6rem, 7.2vw, 4.4rem);
      }

      .hero-subtitle {
        font-size: 0.8rem;
        letter-spacing: 0.14em;
      }

      .hero-description {
        font-size: 0.98rem;
      }

      .topbar {
        padding: 16px 18px;
        border-radius: 24px;
        align-items: flex-start;
        flex-direction: column;
      }

      .tabbar {
        width: 100%;
        flex-wrap: nowrap;
        gap: 18px;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
      }

      .tabbar::-webkit-scrollbar {
        display: none;
      }

      .tab {
        flex: 0 0 auto;
        min-height: 44px;
        padding: 10px 0 12px;
      }

      h1 {
        font-size: clamp(3.4rem, 10vw, 5.1rem);
        max-width: 9ch;
      }

      .section-header {
        grid-template-columns: 1fr;
        align-items: start;
      }

      .section-header h2 {
        max-width: 13ch;
      }

      .hero-copy p,
      .section-copy,
      .body-copy,
      li,
      .register-note {
        font-size: 0.96rem;
        line-height: 1.78;
      }

      .visual-card {
        min-height: 340px;
      }

      .editorial-stat {
        top: auto;
        right: 20px;
        left: 20px;
        bottom: 20px;
        min-width: 0;
      }

      .session-grid,
      .stats-grid,
      .notes-grid,
      .instructors-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .showcase-frame {
        height: auto;
        min-height: auto;
        overflow: visible;
      }

      .showcase-command-layout,
      .showcase-scene {
        grid-template-columns: 1fr;
      }

      .showcase-nav {
        grid-template-columns: 1fr;
        padding-top: 0;
        padding-bottom: 16px;
        max-height: 260px;
        mask-image: none;
        -webkit-mask-image: none;
      }

      .showcase-nav::before {
        display: none;
      }

      .showcase-scenes {
        min-height: auto;
      }

      .showcase-scene,
      .showcase-scene[data-scene="mood-board"],
      .showcase-scene[data-scene="3d-integration"],
      .showcase-scene[data-scene="add-people"],
      .showcase-scene[data-scene="multi-angles"] {
        position: relative;
        display: none;
        opacity: 1;
        transform: none;
        filter: none;
        grid-template-columns: 1fr;
      }

      .showcase-scene.active {
        display: grid;
      }

      .showcase-scene-head {
        flex-direction: column;
      }

      .showcase-step {
        min-height: 28vh;
        scroll-margin-top: 112px;
      }

      .instructors-grid {
        display: grid;
        flex-direction: row;
      }

      .session-card,
      .session-card:nth-child(3n + 1),
      .session-card:nth-child(5),
      .session-card:nth-child(10) {
        grid-column: span 1;
      }

      .topbar,
      .hero-frame,
      .section-shell,
      .visual-card,
      .floating-card,
      .content-card,
      .note-card,
      .register-card,
      .stat-card,
      .session-card,
      .scroll-button,
      .field input,
      .field textarea,
      .orbit-label,
      .tool-chip,
      .task,
      .session-index {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
      }

      .fade-up,
      .reveal,
      .reveal-left,
      .reveal-right,
      .reveal-scale,
      .panel,
      .panel.panel-enter,
      .panel.active.panel-enter .section-header,
      .panel.active.panel-enter .overview-grid>*,
      .panel.active.panel-enter .stats-grid>*,
      .panel.active.panel-enter .notes-grid>*,
      .panel.active.panel-enter .session-grid>*,
      .panel.active.panel-enter .register-layout>*,
      .panel.active.panel-enter .showcase-stage>*,
      .panel.active.panel-enter .showcase-frame>*,
      .visual-center,
      .tool-chip,
      .visual-card .signal-node {
        animation: none !important;
        transition: none !important;
      }

      .fade-up,
      .reveal,
      .reveal-left,
      .reveal-right,
      .reveal-scale {
        opacity: 1;
        transform: none;
      }
    }

    @media (max-width: 680px) {
      body.showcase-mobile-active .showcase-mobile-bar {
        display: block;
        position: sticky;
        top: var(--showcase-mobile-sticky-top, 88px);
        z-index: 34;
        margin: -2px 8px 10px;
      }

      .showcase-mobile-card {
        position: relative;
        padding: 12px 12px 10px;
        border-radius: 0 0 20px 20px;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-top: 0;
        background:
          linear-gradient(180deg, rgba(24, 21, 35, 0.98), rgba(14, 12, 22, 0.98));
        box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
      }

      .showcase-mobile-card::before {
        content: "";
        position: absolute;
        inset: 0 14px auto;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(123, 111, 163, 0.36), transparent);
      }

      .showcase-mobile-label {
        margin-bottom: 10px;
        padding-inline: 2px;
        color: rgba(196, 189, 212, 0.64);
        font-size: 0.62rem;
        font-weight: 800;
        letter-spacing: 0.18em;
        text-transform: uppercase;
      }

      .showcase-mobile-nav {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0 2px 4px;
        scrollbar-width: none;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
      }

      .showcase-mobile-nav::-webkit-scrollbar {
        display: none;
      }

      .showcase-mobile-link {
        flex: 0 0 auto;
        min-height: 42px;
        display: inline-flex;
        align-items: center;
        padding: 9px 14px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.045);
        color: rgba(237, 232, 245, 0.72);
        text-decoration: none;
        font-family: "Sora", sans-serif;
        font-size: 0.74rem;
        font-weight: 600;
        letter-spacing: 0.02em;
        white-space: nowrap;
        scroll-snap-align: start;
        transition: background 180ms ease, border-color 180ms ease, color 180ms ease;
      }

      .showcase-mobile-link.active {
        border-color: rgba(164, 144, 194, 0.4);
        background: rgba(123, 111, 163, 0.2);
        color: #f7f2ff;
      }

      .hero--cinematic {
        min-height: 500px;
        padding: 22px 18px;
        align-items: end;
      }

      .hero-content {
        gap: 14px;
      }

      .hero-kicker {
        font-size: 0.72rem;
        letter-spacing: 0.16em;
      }

      .hero-kicker::before {
        width: 34px;
      }

      .hero-title {
        max-width: none;
        font-size: clamp(2.2rem, 11vw, 3.5rem);
      }

      .hero-subtitle {
        max-width: 30ch;
        font-size: 0.72rem;
        letter-spacing: 0.12em;
      }

      .hero-description {
        font-size: 0.94rem;
        line-height: 1.7;
      }

      .hero-actions {
        display: grid;
        grid-template-columns: 1fr;
      }

      .hero-button {
        width: 100%;
      }

      .shell {
        padding: 8px 8px 28px;
      }

      .showcase-frame {
        padding: 20px 18px;
      }

      #panel-showcase .section-shell {
        padding: 16px 10px 18px;
        border-radius: 24px;
      }

      #panel-showcase .section-header {
        margin-bottom: 14px;
      }

      #panel-showcase .section-header h2 {
        max-width: 11ch;
      }

      .showcase-command-layout {
        gap: 14px;
      }

      .showcase-nav {
        display: none;
      }

      .showcase-link {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        padding: 10px 14px;
        border: 1px solid rgba(255, 255, 255, 0.1);
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.045);
        color: rgba(237, 232, 245, 0.72);
        font-family: "Sora", sans-serif;
        font-size: 0.76rem;
        letter-spacing: 0.02em;
        white-space: nowrap;
        transform: none !important;
        filter: none !important;
        opacity: 1 !important;
      }

      .showcase-link.active {
        border-color: rgba(164, 144, 194, 0.4);
        background: rgba(123, 111, 163, 0.2);
        color: #f7f2ff;
      }

      .showcase-scene-head h3 {
        font-size: clamp(3rem, 14vw, 4.2rem);
      }

      .showcase-scenes {
        min-height: auto;
      }

      .showcase-placeholder {
        min-height: 280px;
        padding: 18px;
      }

      .showcase-scene,
      .showcase-scene[data-scene="mood-board"],
      .showcase-scene[data-scene="3d-integration"],
      .showcase-scene[data-scene="add-people"],
      .showcase-scene[data-scene="app-integration"],
      .showcase-scene[data-scene="multi-angles"],
      .showcase-scene[data-scene="space-perception"],
      .showcase-scene[data-scene="style-transfer"],
      .showcase-scene[data-scene="animation"],
      .showcase-scene[data-scene="training-lora"],
      .showcase-scene[data-scene="all-in-one-click"],
      .showcase-scene[data-scene="vibe-coding"] {
        grid-template-columns: 1fr !important;
        gap: 18px;
        align-items: start;
      }

      .showcase-copy-block,
      .showcase-scene[data-scene="space-perception"] .showcase-copy-block {
        gap: 14px;
        min-height: 0;
        padding-top: 0;
      }

      .showcase-scene-head {
        gap: 10px;
      }

      .showcase-scene-head h3 {
        max-width: 11ch;
        padding-left: 24px;
        font-size: clamp(2.35rem, 12vw, 3.6rem);
        line-height: 0.94;
      }

      .showcase-number {
        align-self: start;
        padding-top: 8px;
      }

      .showcase-visual-column {
        width: 100%;
        min-width: 0;
        min-height: 0;
        padding-top: 0;
      }

      .showcase-scene img,
      .showcase-scene video {
        max-width: 100%;
      }

      .showcase-scene [style*="width: 100%"],
      .showcase-slider-container,
      .showcase-video-container,
      .animation-video-card {
        max-width: 100%;
        border-radius: 18px !important;
      }

      .showcase-scene [style*="aspect-ratio: 1.6"],
      .showcase-scene [style*="aspect-ratio: 1.855"] {
        width: 100% !important;
        min-height: 0 !important;
      }

      .showcase-scene[data-scene="multi-angles"] .showcase-middle-visual {
        display: none;
      }

      .showcase-scene[data-scene="space-perception"] .showcase-space-reference-row {
        width: 100%;
        gap: 10px;
      }

      .showcase-scene[data-scene="space-perception"] .showcase-space-reference-grid {
        gap: 10px;
      }

      .showcase-scene[data-scene="space-perception"] .showcase-space-reference-grid img {
        max-width: none;
        max-height: none;
      }

      .animation-reference-strip {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        max-width: none;
      }

      .animation-reference-strip img,
      .animation-reference-strip img:nth-child(2) {
        grid-row: auto;
        min-height: 220px;
      }

      .animation-video-card {
        aspect-ratio: 16 / 9;
        min-height: 300px;
      }

      .style-reference-card {
        width: 100%;
      }

      .style-reference-card img {
        aspect-ratio: 1.25;
      }

      .style-transfer-slider {
        width: min(100%, 360px);
        aspect-ratio: 0.556;
        min-height: 0;
      }

      .showcase-step {
        min-height: 22vh;
      }

      .topbar {
        top: 10px;
        gap: 12px;
        padding: 14px 14px 12px;
        border-radius: 20px;
        z-index: 35;
      }

      .brand-mark {
        width: 42px;
        height: 42px;
      }

      .brand-title {
        font-size: 1.35rem;
      }

      .hero,
      .section-shell {
        padding: 20px 16px;
      }

      h1 {
        font-size: clamp(2.7rem, 13vw, 3.9rem);
        max-width: 10ch;
      }

      .floating-card,
      .content-card,
      .note-card,
      .register-card,
      .session-card {
        padding: 18px 16px;
        border-radius: 22px;
      }

      .visual-card {
        min-height: 280px;
      }

      .visual-center {
        width: 148px;
        height: 148px;
        font-size: 1.45rem;
      }

      .stat-card,
      .session-card,
      .register-preview {
        min-height: auto;
      }

      .session-card h3,
      .floating-card h3,
      .content-card h3,
      .note-card h3,
      .register-card h3 {
        font-size: 1.7rem;
      }

      .stats-grid,
      .notes-grid,
      .session-grid,
      .register-layout,
      .overview-grid {
        grid-template-columns: 1fr;
      }

      .enroll-facts-grid {
        grid-template-columns: 1fr;
      }

      .instructors-grid {
        display: flex;
        flex-direction: column;
      }

      .button-row {
        display: grid;
        grid-template-columns: 1fr;
      }

      .button {
        width: 100%;
        min-height: 48px;
        padding: 14px 18px;
      }

      .enroll-modal {
        padding: 12px;
      }

      .enroll-modal-dialog {
        max-height: 94vh;
        padding: 22px 18px;
      }

      .enroll-modal-close {
        top: 16px;
        right: 16px;
      }

      .enroll-modal-step h3 {
        font-size: clamp(1.9rem, 9vw, 2.4rem);
      }

      .enroll-form-control {
        min-height: 58px;
        padding: 16px 18px;
        font-size: 1rem;
      }

      textarea.enroll-form-control {
        min-height: 150px;
      }

      .scroll-controls {
        right: 12px;
        bottom: 12px;
      }

      .scroll-button {
        width: 46px;
        height: 46px;
      }
    }

    @media (max-width: 430px) {
      body.showcase-mobile-active .showcase-mobile-bar {
        margin-inline: 8px;
      }

      .showcase-mobile-card {
        padding: 10px 10px 8px;
        border-radius: 0 0 18px 18px;
      }

      .showcase-mobile-label {
        margin-bottom: 8px;
        font-size: 0.58rem;
      }

      .showcase-mobile-nav {
        gap: 6px;
      }

      .showcase-mobile-link {
        min-height: 40px;
        padding: 8px 12px;
        font-size: 0.7rem;
      }

      #panel-showcase .section-shell {
        padding-inline: 8px;
      }

      .showcase-frame {
        padding: 16px 12px;
        border-radius: 20px;
      }

      .showcase-nav {
        gap: 6px;
        padding-bottom: 12px;
      }

      .showcase-link {
        min-height: 44px;
        padding: 9px 12px;
        font-size: 0.72rem;
      }

      .showcase-scene-head h3 {
        max-width: 10ch;
        padding-left: 20px;
        font-size: clamp(2.05rem, 13vw, 3rem);
      }

      .showcase-caption {
        font-size: 0.78rem;
      }

      .style-transfer-slider {
        width: min(100%, 300px);
      }

      .animation-reference-strip img,
      .animation-reference-strip img:nth-child(2) {
        min-height: 160px;
      }

      .animation-video-card {
        min-height: 220px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        animation: none !important;
        transition: none !important;
      }
    }

    /* Scroll reveal animations */
    .reveal {
      opacity: 0;
      transform: translateY(40px);
      transition:
        opacity 700ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
    }

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

    .reveal-left {
      opacity: 0;
      transform: translateX(-50px);
      transition:
        opacity 700ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
    }

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

    .reveal-right {
      opacity: 0;
      transform: translateX(50px);
      transition:
        opacity 700ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
    }

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

    .reveal-scale {
      opacity: 0;
      transform: scale(0.92);
      transition:
        opacity 700ms cubic-bezier(0.22, 1, 0.36, 1),
        transform 700ms cubic-bezier(0.22, 1, 0.36, 1);
    }

    .reveal-scale.visible {
      opacity: 1;
      transform: scale(1);
    }

    .reveal-delay-1 {
      transition-delay: 80ms;
    }

    .reveal-delay-2 {
      transition-delay: 160ms;
    }

    .reveal-delay-3 {
      transition-delay: 240ms;
    }

    .reveal-delay-4 {
      transition-delay: 320ms;
    }
  </style>
</head>

<body>
  <div class="cursor" aria-hidden="true"></div>
  <div class="cursor-ring" aria-hidden="true"></div>

  <div class="scroll-controls" aria-label="Page navigation">
    <button class="scroll-button" id="scroll-up" type="button" aria-label="Scroll to top">↑</button>
    <button class="scroll-button" id="scroll-down" type="button" aria-label="Scroll to bottom">↓</button>
  </div>

  <div class="shell">
    <nav class="topbar fade-up">
      <a class="brand" href="https://meemacademy.com/" aria-label="Meem Academy homepage">
        <img class="brand-mark" src="assets/logo.webp" alt="Meem Academy logo" width="48" height="48" decoding="async"
          fetchpriority="high" />
        <div class="brand-copy">
          <div class="brand-kicker">Meem Academy</div>
          <div class="brand-title">Generative AI course</div>
        </div>
      </a>

      <div class="tabbar" role="tablist" aria-label="Course sections">
        <button id="overview-tab" class="tab active" role="tab" aria-selected="true" aria-controls="panel-overview"
          data-panel="overview">Overview</button>
        <button id="sessions-tab" class="tab" role="tab" aria-selected="false" aria-controls="panel-sessions"
          data-panel="sessions">Sessions</button>
        <button id="showcase-tab" class="tab" role="tab" aria-selected="false" aria-controls="panel-showcase"
          data-panel="showcase">Showcase</button>
        <button id="register-tab" class="tab" role="tab" aria-selected="false" aria-controls="panel-register"
          data-panel="register">Enroll</button>
      </div>
    </nav>

    <div class="showcase-mobile-bar" aria-label="Showcase examples">
      <div class="showcase-mobile-card">
        <div class="showcase-mobile-label">Showcase examples</div>
        <nav class="showcase-mobile-nav" aria-label="Showcase examples keywords">
          <a class="showcase-mobile-link active" href="#showcase-step-multi-angles"
            data-showcase-scene="multi-angles">Multi angles</a>
          <a class="showcase-mobile-link" href="#showcase-step-mood-board"
            data-showcase-scene="mood-board">Mood board</a>
          <a class="showcase-mobile-link" href="#showcase-step-space-perception"
            data-showcase-scene="space-perception">Space Perception</a>
          <a class="showcase-mobile-link" href="#showcase-step-add-people"
            data-showcase-scene="add-people">Add people</a>
          <a class="showcase-mobile-link" href="#showcase-step-3d-integration"
            data-showcase-scene="3d-integration">3d integration</a>
          <a class="showcase-mobile-link" href="#showcase-step-style-transfer"
            data-showcase-scene="style-transfer">Style transfer</a>
          <a class="showcase-mobile-link" href="#showcase-step-animation"
            data-showcase-scene="animation">Animation</a>
          <a class="showcase-mobile-link" href="#showcase-step-training-lora"
            data-showcase-scene="training-lora">Training Lora</a>
          <a class="showcase-mobile-link" href="#showcase-step-app-integration"
            data-showcase-scene="app-integration">App integration</a>
          <a class="showcase-mobile-link" href="#showcase-step-all-in-one-click"
            data-showcase-scene="all-in-one-click">All in one click</a>
          <a class="showcase-mobile-link" href="#showcase-step-vibe-coding"
            data-showcase-scene="vibe-coding">vibe coding</a>
        </nav>
      </div>
    </div>

    <main>
      <section id="panel-overview" class="panel active" role="tabpanel" aria-labelledby="overview-tab">
        <header class="hero-frame fade-up delay-1">
          <div class="hero hero--cinematic">
            <video class="hero-video" autoplay muted loop playsinline preload="metadata" aria-hidden="true">
              <source src="assets/Home animation.webm" type="video/webm" />
            </video>
            <div class="hero-overlay" aria-hidden="true"></div>

            <div class="hero-content">
              <div class="hero-kicker reveal reveal-left">Generative AI Course</div>
              <h1 class="hero-title reveal reveal-left reveal-delay-1">For creatives who want authorship over AI, not
                just output.</h1>
              <p class="hero-description reveal reveal-left reveal-delay-2">
                A 12-week studio for designers, architects, visualizers, and artists building real command of image
                generation, 3D workflows, motion, automation, and AI-assisted web creation.
              </p>
              <div class="hero-meta reveal reveal-left reveal-delay-3">
                <div class="pill">12 Weeks</div>
                <div class="pill">36 Guided Hours</div>
              </div>
              <div class="hero-actions reveal reveal-left reveal-delay-4">
                <button class="button hero-button" type="button" data-panel-target="register">Enroll</button>
              </div>
            </div>
          </div>
        </header>

        <div class="section-shell fade-up delay-2">
          <div class="section-header">
            <div>
              <div class="eyebrow">Overview</div>
              <h2>Who it is for, and what it unlocks.</h2>
            </div>
            <div class="section-meta">Overview / 01</div>
          </div>

          <div class="overview-grid">
            <article class="content-card reveal reveal-left">
              <h3>Audience</h3>
              <ul class="stack-list">
                <li>People who tried ComfyUI and felt lost or overwhelmed.</li>
                <li>Total beginners to node-based systems who want a clear mental model.</li>
                <li>Creatives moving beyond drag-and-drop AI tools into reusable pipelines.</li>
                <li>Artists, makers, and automation-focused teams exploring reproducible image and video generation.
                </li>
                <li>Architects, interior designers, landscape architects, graphic designers, 3D artists, product
                  designers, freelancers, and studios.</li>
              </ul>
            </article>

            <article class="content-card reveal reveal-right reveal-delay-1">
              <h3>Objectives</h3>
              <ul class="plain-list">
                <li>Transform sketches and 3D massing into high-fidelity renders.</li>
                <li>Build reusable custom AI workflows for repeated design tasks.</li>
                <li>Rapidly iterate across styles, materials, mood, and lighting.</li>
                <li>Animate architectural spaces and create cinematic motion outputs.</li>
                <li>From builder to expert mastering complex ComfyUI pipelines and automation systems.</li>
                <li>Combine ComfyUI with Krita, plugins, and zero-code web or app development flows.</li>
              </ul>
            </article>
          </div>

          <div class="stats-grid">
            <article class="stat-card reveal reveal-left">
              <div class="stat-number">12</div>
              <div class="stat-label">Weekly sessions in a structured progression.</div>
            </article>
            <article class="stat-card reveal reveal-delay-1">
              <div class="stat-number">36h</div>
              <div class="stat-label">Total guided instruction across the course.</div>
            </article>
            <article class="stat-card reveal reveal-right reveal-delay-2">
              <div class="stat-number">1</div>
              <div class="stat-label">Final project pipeline connecting concepts to delivery.</div>
            </article>
          </div>

          <div class="subsection-head fade-up delay-2">
            <div class="eyebrow">Instructors</div>
            <h3>Learn from practitioners building real AI workflows.</h3>
          </div>

          <div class="instructors-grid">
            <article class="instructor-card reveal reveal-left">
              <div class="instructor-photo">
                <img src="assets/Mostafa Mohamed.webp" alt="Portrait of Mostafa Mohamed" />
              </div>
              <div class="instructor-body">
                <h3>Mostafa Mohamed</h3>
                <div class="instructor-role">AI Specialist, 3D Visualizer</div>
                <p class="instructor-bio">
                  Mostafa Mohamed is an AI Workflow Specialist focused on building systems, design, and visual
                  production workflows for companies, with full-time experience at Stylus. He brings 2 years of hands-on
                  work with ComfyUI, open and closed generative AI tools, and has contributed to projects with DSC,
                  Emaar Masr, and Any Design Studio. He was also one of the former founders of Any More, an AI lab.
                </p>
              </div>
            </article>

            <article class="instructor-card reveal reveal-right reveal-delay-1">
              <div class="instructor-photo">
                <img src="assets/Mariam adel.webp" alt="Portrait of Mariam Adel" />
              </div>
              <div class="instructor-body">
                <h3>Mariam Adel</h3>
                <div class="instructor-role">AI Workflow Specialist, Design Architect</div>
                <p class="instructor-bio">
                  Mariam Adel is an AI Systems and Workflow Specialist focused on developing AI-driven systems and
                  design production workflows. She has professional experience as an AI Specialist at Emaar Misr and
                  brings 3 years of hands-on expertise with ComfyUI, as well as local and closed-source generative AI
                  tools. She combines practical industry experience with academic involvement, having previously served
                  as a Teaching Assistant at Ain Shams University. Additionally, she has worked as a Project Design
                  Coordinator at Diaa Consult.
                </p>
              </div>
            </article>
          </div>

          <div class="subsection-head">
            <div class="eyebrow">Notes</div>
            <h3>Format, pace, and studio expectations.</h3>
          </div>

          <div class="notes-grid">
            <article class="note-card reveal reveal-left">
              <h3>Duration</h3>
              <div class="body-copy">12 weeks, 1 day per week, 3 hours per session.</div>
            </article>
            <article class="note-card reveal reveal-delay-1">
              <h3>Total Time</h3>
              <div class="body-copy">36 guided hours across a progressive hands-on curriculum.</div>
            </article>
            <article class="note-card reveal reveal-right reveal-delay-2">
              <h3>Course Note</h3>
              <div class="body-copy">Topics and duration may be modified by the instructor based on participant
                knowledge and skill level.</div>
            </article>
          </div>

          <div class="panel-credit">Powered by MeeM Studio</div>
        </div>
      </section>

      <section id="panel-sessions" class="panel" role="tabpanel" aria-labelledby="sessions-tab">
        <div class="section-shell">
          <div class="section-header">
            <div>
              <div class="eyebrow">Sessions</div>
              <h2>Twelve sessions from first principles to finished systems.</h2>
            </div>
            <div class="section-meta">Sessions / 02</div>
          </div>

          <div class="sessions-layout">
            <div class="session-grid">
              <article class="session-card reveal reveal-left">
                <div class="session-index"><span>Session</span><strong>01</strong></div>
                <h3>AI Foundations &amp; ComfyUI setup</h3>
                <ul>
                  <li>AI terminology and useful websites</li>
                  <li>What is ComfyUI?</li>
                  <li>Download and install ComfyUI</li>
                </ul>
              </article>
              <article class="session-card reveal reveal-delay-1">
                <div class="session-index"><span>Session</span><strong>02</strong></div>
                <h3>Comfy interface &amp; Basic Workflows</h3>
                <ul>
                  <li>Interface overview</li>
                  <li>Simple text-to-image workflow</li>
                  <li>Image-to-image workflow</li>
                </ul>
              </article>
              <article class="session-card reveal reveal-right">
                <div class="session-index"><span>Session</span><strong>03</strong></div>
                <h3>Prompting & Models</h3>
                <ul>
                  <li>Prompting instructions</li>
                  <li>Ollama, Florence, Qwen VL, AI Studio</li>
                  <li>Model types: SDXL, Flux, Qwen Image, Z-Image</li>
                </ul>
              </article>
              <article class="session-card reveal reveal-left">
                <div class="session-index"><span>Session</span><strong>04</strong></div>
                <h3>ControlNet & LoRA Workflows</h3>
                <ul>
                  <li>Overview of ControlNet and IP Adapter</li>
                  <li>Using LoRAs</li>
                  <li>LoRA training</li>
                </ul>
                <div class="task">Task: Train your own LoRA</div>
              </article>
              <article class="session-card reveal reveal-right">
                <div class="session-index"><span>Session</span><strong>05</strong></div>
                <h3>Inpainting &amp; Design Iteration</h3>
                <ul>
                  <li>Inpainting workflows</li>
                  <li>Image editing models</li>
                  <li>Differences between normal and edit-specific inpainting</li>
                </ul>
                <div class="task">Task: Update materials, context, people, objects, and atmosphere</div>
              </article>
              <article class="session-card reveal reveal-delay-1">
                <div class="session-index"><span>Session</span><strong>06</strong></div>
                <h3>Enhancement Pipeline</h3>
                <ul>
                  <li>Segmentation and autodetection</li>
                  <li>Enhancing full images and selected parts</li>
                  <li>Upscaling</li>
                </ul>
                <div class="task">Task: Execute a full image enhancement pipeline</div>
              </article>
              <article class="session-card reveal reveal-left">
                <div class="session-index"><span>Session</span><strong>07</strong></div>
                <h3>Krita Integration</h3>
                <ul>
                  <li>Photo manipulation in Photoshop</li>
                  <li>Intro to Krita and AI plugins</li>
                  <li>Generate, upscale, and organize presets</li>
                  <li>Insert ComfyUI workflows and custom parameters in Krita</li>
                </ul>
                <div class="task">Task: Deploy a custom ComfyUI workflow within Krita</div>
              </article>
              <article class="session-card reveal reveal-delay-1">
                <div class="session-index"><span>Session</span><strong>08</strong></div>
                <h3>3D Generation</h3>
                <ul>
                  <li>3D generation in Hunyuan</li>
                  <li>Trellis with textures</li>
                  <li>3D models to segments</li>
                  <li>Advanced 3D workflows</li>
                </ul>
                <div class="task">Task: Construct a textured 3D asset from a 2D design</div>
              </article>
              <article class="session-card reveal reveal-right">
                <div class="session-index"><span>Session</span><strong>09</strong></div>
                <h3>AI Video Generation</h3>
                <ul>
                  <li>Intro to local AI video generation</li>
                  <li>Online video pipeline</li>
                </ul>
                <div class="task">Task: Generate a professional cinematic animation</div>
              </article>
              <article class="session-card reveal reveal-left">
                <div class="session-index"><span>Session</span><strong>10</strong></div>
                <h3>LLMs, MCP &amp; Automation</h3>
                <ul>
                  <li>Anything LLM</li>
                  <li>MCP</li>
                  <li>Use ComfyUI as one tool among many</li>
                  <li>Website and app workflows with AI tools</li>
                  <li>Final project setup</li>
                </ul>
                <div class="task">Task: The final project</div>
              </article>
              <article class="session-card reveal reveal-delay-1">
                <div class="session-index"><span>Session</span><strong>11</strong></div>
                <h3>Vibe Coding, Websites &amp; AI Agents</h3>
                <ul>
                  <li>Intro to vibe coding</li>
                  <li>Skills and AI agents</li>
                  <li>Building websites and apps with AI coding tools</li>
                  <li>UI tools: OpenCode, Claude, VS Code, Antigravity, Codex</li>
                  <li>Project follow up</li>
                </ul>
                <div class="task">Task: Develop and launch a custom web application</div>
              </article>
              <article class="session-card reveal reveal-right">
                <div class="session-index"><span>Session</span><strong>12</strong></div>
                <h3>Arch Viz &amp; Interior AI</h3>
                <ul>
                  <li>AI in architectural visualization techniques</li>
                  <li>AI in interior design techniques</li>
                  <li>Final project follow up</li>
                </ul>
                <div class="task">Task: Finalize the project</div>
              </article>
            </div>
          </div>

          <div class="panel-credit">Powered by MeeM Studio</div>
        </div>
      </section>

      <section id="panel-showcase" class="panel" role="tabpanel" aria-labelledby="showcase-tab">
        <div class="section-shell">
          <div class="section-header">
            <div>
              <div class="eyebrow">Showcase</div>
              <h2>Scroll through the outcomes this course is built to produce.</h2>
            </div>
            <div class="section-meta">Showcase / 11</div>
          </div>

          <div class="showcase-stage">
            <div class="showcase-pin">
              <div class="showcase-frame reveal reveal-left">

                <div class="showcase-command-layout">
                  <nav class="showcase-nav" aria-label="Showcase capabilities">
                    <div class="showcase-scroll-indicator" aria-hidden="true">
                      <span>Scroll</span>
                      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7"
                        stroke-linecap="round" stroke-linejoin="round">
                        <path d="M12 4v12"></path>
                        <path d="m7 12 5 5 5-5"></path>
                      </svg>
                    </div>
                    <a class="showcase-link active" href="#showcase-step-multi-angles"
                      data-showcase-scene="multi-angles">Multi angles</a>
                    <a class="showcase-link" href="#showcase-step-mood-board" data-showcase-scene="mood-board">Mood
                      board</a>
                    <a class="showcase-link" href="#showcase-step-space-perception"
                      data-showcase-scene="space-perception">Space Perception</a>
                    <a class="showcase-link" href="#showcase-step-add-people" data-showcase-scene="add-people">Add
                      people</a>
                    <a class="showcase-link" href="#showcase-step-3d-integration"
                      data-showcase-scene="3d-integration">3d integration</a>

                    <a class="showcase-link" href="#showcase-step-style-transfer"
                      data-showcase-scene="style-transfer">Style transfer</a>
                    <a class="showcase-link" href="#showcase-step-animation"
                      data-showcase-scene="animation">Animation</a>
                    <a class="showcase-link" href="#showcase-step-training-lora"
                      data-showcase-scene="training-lora">Training Lora</a>
                    <a class="showcase-link" href="#showcase-step-app-integration"
                      data-showcase-scene="app-integration">App integration</a>
                    <a class="showcase-link" href="#showcase-step-all-in-one-click"
                      data-showcase-scene="all-in-one-click">All in one click</a>
                    <a class="showcase-link" href="#showcase-step-vibe-coding" data-showcase-scene="vibe-coding">vibe
                      coding</a>
                  </nav>

                  <div class="showcase-scenes">
                    <article class="showcase-scene active" data-scene="multi-angles">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Multi angles</div>
                            <h3>One scene, many camera decisions.</h3>
                          </div>
                          <div class="showcase-number">01</div>
                        </div>
                        <div class="showcase-input-01" style="margin-top: 8px;">
                          <div style="font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.4; margin-bottom: 12px; font-weight: 600;">Reference Layout</div>
                          <img src="assets/Showcase/Multi angle/Input.webp" alt="Multi angles base"
                            style="width: 440px; height: auto; border-radius: 12px; object-fit: contain; object-position: bottom; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); display: block;">
                        </div>
                      </div>
                      <div class="showcase-middle-visual" style="transform: translate(-80px, 40px);">
                        <img src="assets/Showcase/Multi angle/Middle-3D.webp" alt="Environment Perspective"
                          style="width: 380px; height: auto; border-radius: 12px; object-fit: cover; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); display: block;">
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-gallery-container"
                          style="position: relative; width: 540px; height: 720px; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); background: #0a090f;">
                          <img src="assets/Showcase/Multi angle/Animated_GIF.webp" alt="Animated multi-angle interior study"
                            style="display: block; width: 100%; height: 100%; object-fit: cover; object-position: center;">
                        </div>
                        <div class="showcase-caption">Suggested future content: one project presented from four curated
                          viewpoints.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="mood-board">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Mood board</div>
                            <h3>design Preview before modeling.</h3>
                          </div>
                          <div class="showcase-number">02</div>
                        </div>
                        <div class="showcase-input-02" style="margin-top: 16px;">
                          <img src="assets/Showcase/Mood board/Input-02.webp" alt="Mood board"
                            style="width: 100%; height: auto; aspect-ratio: 1.79; border-radius: 12px; object-fit: cover; border: 1px solid rgba(255,255,255,0.05);">
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-slider-container"
                          style="position: relative; width: 100%; height: auto; aspect-ratio: 1.79; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); cursor: ew-resize;"
                          onmousemove="updateSlider(event, this)" ontouchmove="updateSlider(event, this)">
                          <img src="assets/Showcase/Mood board/Output.webp" alt="After"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;">
                          <img class="slider-image-before" src="assets/Showcase/Mood board/Input-01.webp" alt="Before"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(0 50% 0 0);">
                          <div class="showcase-slider-handle"
                            style="position: absolute; top: 0; left: 50%; width: 2px; height: 100%; background: #fff; transform: translateX(-50%); pointer-events: none;">
                            <div
                              style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 32px; height: 32px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #1a1724; box-shadow: 0 2px 10px rgba(0,0,0,0.2);">
                              <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                style="margin-left: -1px;">
                                <polyline points="15 18 9 12 15 6"></polyline>
                                <polyline points="9 18 15 12 9 6"
                                  transform="translate(6,0) scale(-1, 1) translate(-6,0)"></polyline>
                              </svg>
                            </div>
                          </div>
                        </div>
                        <div class="showcase-caption">Iterate the interior space design based on the mood board,
                          enabling a rapid and visually coherent design preview.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="space-perception">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Space Perception</div>
                            <h3>Make scale and depth feel believable.</h3>
                          </div>
                          <div class="showcase-number">03</div>
                        </div>
                        <div class="showcase-space-reference-row">
                          <div
                            style="font-size: 11px; text-transform: uppercase; letter-spacing: 0.1em; opacity: 0.4; margin-bottom: 12px; font-weight: 600;">
                            Reference layout</div>
                          <div class="showcase-space-reference-grid">
                            <img src="assets/Showcase/space perception/00.webp" alt="Space perception reference"
                              style="height: auto; aspect-ratio: 2 / 3; border-radius: 12px; object-fit: contain; object-position: center bottom; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); display: block;">
                            <img src="assets/Showcase/space perception/01.webp" alt="Space perception interior study"
                              style="height: auto; aspect-ratio: 2 / 3; border-radius: 12px; object-fit: contain; object-position: center bottom; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.05); display: block;">
                          </div>
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div
                          style="position: relative; width: min(100%, 430px); height: auto; aspect-ratio: 2 / 3; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); background: #0a090f;">
                          <img src="assets/Showcase/space perception/animated_GIF.webp" alt="Space perception animated study"
                            style="display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom;">
                        </div>
                        <div class="showcase-caption" style="width: min(100%, 430px);">Authentic human experience, understood in seconds.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="add-people">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Add people</div>
                            <h3>Inject life without breaking the scene.</h3>
                          </div>
                          <div class="showcase-number">04</div>
                        </div>
                        <p class="body-copy">Context figures added with believable scale, gesture, and lighting so the
                          environment feels inhabited and readable.</p>
                        <ul class="detail-list">
                          <li>Occupancy and circulation cues.</li>
                          <li>Stronger understanding of function and scale.</li>
                          <li>Designed as communication, not decoration.</li>
                        </ul>
                        <div class="showcase-tags"><span class="showcase-tag">Human context</span><span
                            class="showcase-tag">Scene life</span><span class="showcase-tag">Scale</span></div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-slider-container"
                          style="position: relative; width: 100%; height: auto; aspect-ratio: 1.855; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); cursor: ew-resize;"
                          onmousemove="updateSlider(event, this)" ontouchmove="updateSlider(event, this)">
                          <img src="assets/Showcase/Add people/New/output.webp" alt="Add people after"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;">
                          <img class="slider-image-before" src="assets/Showcase/Add people/New/input.webp"
                            alt="Add people before"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(0 50% 0 0);">
                          <div class="showcase-slider-handle"
                            style="position: absolute; top: 0; left: 50%; width: 2px; height: 100%; background: #fff; transform: translateX(-50%); pointer-events: none;">
                            <div
                              style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 32px; height: 32px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #1a1724; box-shadow: 0 2px 10px rgba(0,0,0,0.2);">
                              <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                style="margin-left: -1px;">
                                <polyline points="15 18 9 12 15 6"></polyline>
                                <polyline points="9 18 15 12 9 6"
                                  transform="translate(6,0) scale(-1, 1) translate(-6,0)"></polyline>
                              </svg>
                            </div>
                          </div>
                        </div>
                        <div class="showcase-caption">Compare the empty base scene with the populated result to show how
                          believable figures improve scale, use, and atmosphere.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="3d-integration">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">3D integration</div>
                            <h3>Blend generated imagery with structured 3D format.</h3>
                          </div>
                          <div class="showcase-number">05</div>
                        </div>
                        <div class="showcase-input-05" style="margin-top: 16px;">
                          <img src="assets/Showcase/3D integration/process.webp" alt="3D Process"
                            style="width: 100%; height: auto; aspect-ratio: 1.6; border-radius: 12px; object-fit: cover; border: 1px solid rgba(255,255,255,0.05);">
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-slider-container"
                          style="position: relative; width: 100%; height: auto; aspect-ratio: 1.6; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); cursor: ew-resize;"
                          onmousemove="updateSlider(event, this)" ontouchmove="updateSlider(event, this)">
                          <img src="assets/Showcase/3D integration/Final image.webp" alt="Final Render"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;">
                          <img class="slider-image-before" src="assets/Showcase/3D integration/Raw image.webp"
                            alt="Raw Scene"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(0 50% 0 0);">
                          <div class="showcase-slider-handle"
                            style="position: absolute; top: 0; left: 50%; width: 2px; height: 100%; background: #fff; transform: translateX(-50%); pointer-events: none;">
                            <div
                              style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 32px; height: 32px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #1a1724; box-shadow: 0 2px 10px rgba(0,0,0,0.2);">
                              <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                style="margin-left: -1px;">
                                <polyline points="15 18 9 12 15 6"></polyline>
                                <polyline points="9 18 15 12 9 6"
                                  transform="translate(6,0) scale(-1, 1) translate(-6,0)"></polyline>
                              </svg>
                            </div>
                          </div>
                        </div>
                        <div class="showcase-caption">Control your 3d object and add it with precise scale and orientation as you want without need to 3D software</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="style-transfer">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Style transfer</div>
                            <h3>Hold the structure, shift the visual language.</h3>
                          </div>
                          <div class="showcase-number">06</div>
                        </div>
                        <div class="style-reference-card">
                          <img src="assets/Showcase/Style transfer/final/Reference image.webp" alt="Warm coastal reference mood">
                          <div class="style-reference-label">Reference mood</div>
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-slider-container style-transfer-slider"
                          style="position: relative; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); cursor: ew-resize;"
                          onmousemove="updateSlider(event, this)" ontouchmove="updateSlider(event, this)">
                          <img src="assets/Showcase/Style transfer/final/Output image.webp" alt="Style transfer after"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;">
                          <img class="slider-image-before" src="assets/Showcase/Style transfer/final/input image.webp"
                            alt="Style transfer before"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(0 50% 0 0);">
                          <div class="showcase-slider-handle"
                            style="position: absolute; top: 0; left: 50%; width: 2px; height: 100%; background: #fff; transform: translateX(-50%); pointer-events: none;">
                            <div
                              style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 32px; height: 32px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #1a1724; box-shadow: 0 2px 10px rgba(0,0,0,0.2);">
                              <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                style="margin-left: -1px;">
                                <polyline points="15 18 9 12 15 6"></polyline>
                                <polyline points="9 18 15 12 9 6"
                                  transform="translate(6,0) scale(-1, 1) translate(-6,0)"></polyline>
                              </svg>
                            </div>
                          </div>
                        </div>
                        <div class="showcase-caption">Drag to compare the original structure with the warmer reference-driven
                          style transfer.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="animation">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Animation</div>
                            <h3>Turn still concepts into motion stories.</h3>
                          </div>
                          <div class="showcase-number">07</div>
                        </div>
                        <div class="animation-reference-strip" aria-label="Animation source frames">
                          <img src="assets/Showcase/animation/4249c30f9947e3ab0687a0a7653d2b91.webp"
                            alt="Cinematic eye close-up reference frame">
                          <img src="assets/Showcase/animation/Gemini_Generated_Image_kpu2mzkpu2mzkpu2.webp"
                            alt="Fisheye architectural motion reference frame">
                          <img src="assets/Showcase/animation/honda-cx400-cafe-racer-5.webp"
                            alt="Motorcycle product motion reference frame">
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="animation-video-card">
                          <video autoplay loop muted playsinline preload="metadata" aria-label="Generated animation motion sample">
                            <source src="assets/Showcase/animation/Animation video.webm" type="video/webm">
                          </video>
                        </div>
                        <div class="showcase-caption">Source frames become a finished motion sample with camera energy,
                          atmosphere, and product-ready pacing.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="training-lora">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Training Lora</div>
                            <h3>Train a visual behavior, not just a single image.</h3>
                          </div>
                          <div class="showcase-number">08</div>
                        </div>
                        <div class="showcase-input-lora" style="margin-top: 16px;">
                          <img src="assets/Showcase/Training lora/Training process-02.webp" alt="Training Process"
                            style="width: 100%; height: auto; aspect-ratio: 1.77; border-radius: 12px; object-fit: cover; border: 1px solid rgba(255,255,255,0.05);">
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-slider-container"
                          style="position: relative; width: 100%; height: auto; aspect-ratio: 1.77; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); cursor: ew-resize;"
                          onmousemove="updateSlider(event, this)" ontouchmove="updateSlider(event, this)">
                          <img src="assets/Showcase/Training lora/Final image using my style.webp" alt="Final Lora Output"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover;">
                          <img class="slider-image-before" src="assets/Showcase/Training lora/Input image.webp"
                            alt="Input Image"
                            style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; clip-path: inset(0 50% 0 0);">
                          <div class="showcase-slider-handle"
                            style="position: absolute; top: 0; left: 50%; width: 2px; height: 100%; background: #fff; transform: translateX(-50%); pointer-events: none;">
                            <div
                              style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 32px; height: 32px; background: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #1a1724; box-shadow: 0 2px 10px rgba(0,0,0,0.2);">
                              <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor"
                                stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
                                style="margin-left: -1px;">
                                <polyline points="15 18 9 12 15 6"></polyline>
                                <polyline points="9 18 15 12 9 6"
                                  transform="translate(6,0) scale(-1, 1) translate(-6,0)"></polyline>
                              </svg>
                            </div>
                          </div>
                        </div>
                        <div class="showcase-caption">Custom LoRA training presented as a reusable system for repeating a style,
                          identity, material logic, or project-specific direction.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="live-sketch">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">Live sketch</div>
                            <h3>Move from rough lines to developed imagery fast.</h3>
                          </div>
                          <div class="showcase-number">09</div>
                        </div>
                        <p class="body-copy">Sketch-to-image workflows where hand-drawn intent survives the jump into
                          rendered atmosphere, materials, and composition.</p>
                        <ul class="detail-list">
                          <li>Fast ideation without losing authorship.</li>
                          <li>AI as amplification of the designer’s linework.</li>
                          <li>Good fit for live workshop moments.</li>
                        </ul>
                        <div class="showcase-tags"><span class="showcase-tag">Sketch to image</span><span
                            class="showcase-tag">Fast iteration</span><span class="showcase-tag">Authorship</span></div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-placeholder">
                          <div class="showcase-placeholder-lines"><span></span><span></span><span></span></div>
                          <div class="showcase-placeholder-copy">
                            <div class="showcase-placeholder-label">Live ideation</div><strong>Concept sketch expanded
                              into a cinematic design frame.</strong>
                            <div>Best future use: rough sketch on one side, refined output on the other.</div>
                          </div>
                        </div>
                        <div class="showcase-caption">Suggested future content: a live sketch progression from linework
                          to polished render.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="app-integration">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">App integration</div>
                            <h3>Bring AI editing directly into creative tools.</h3>
                          </div>
                          <div class="showcase-number">10</div>
                        </div>
                        <p class="body-copy">Connect generation, masking, and edit controls inside a familiar production
                          workspace so experimentation stays close to the final artwork.</p>
                        <div class="showcase-tags"><span class="showcase-tag">Krita</span><span
                            class="showcase-tag">Workflow bridge</span><span class="showcase-tag">AI editing</span></div>
                      </div>
                      <div class="showcase-visual-column">
                        <div
                          style="position: relative; width: 100%; height: auto; aspect-ratio: 1.855; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); background: #0a090f;">
                          <img src="assets/Showcase/app integration/Screenshot 2026-04-25 014107.webp"
                            alt="Krita AI image generation app integration workflow"
                            style="display: block; width: 100%; height: 100%; object-fit: cover; object-position: center;">
                        </div>
                        <div class="showcase-caption">A production app workflow where AI-assisted edits, layer control,
                          and visual iteration happen in one workspace.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="all-in-one-click">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">All in one click</div>
                            <h3>Bundle the workflow into a single repeatable action.</h3>
                          </div>
                          <div class="showcase-number">11</div>
                        </div>
                        <div class="showcase-input-10" style="margin-top: 16px;">
                          <img src="assets/Showcase/All in one click/Input image.webp" alt="All in one click input"
                            style="width: 100%; height: auto; aspect-ratio: 1.6; border-radius: 12px; object-fit: cover; border: 1px solid rgba(255,255,255,0.05);">
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div
                          style="position: relative; width: 100%; height: auto; aspect-ratio: 1.6; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08);">
                          <img src="assets/Showcase/All in one click/Output.webp" alt="All in one click output"
                            style="display: block; width: 100%; height: 100%; object-fit: cover;">
                        </div>
                        <div class="showcase-caption">A one-click workflow that turns the source image into a polished final output in a single streamlined step.</div>
                      </div>
                    </article>

                    <article class="showcase-scene" data-scene="vibe-coding">
                      <div class="showcase-copy-block">
                        <div class="showcase-scene-head">
                          <div>
                            <div class="showcase-kicker">vibe coding</div>
                            <h3>Translate the visual thinking into a working product.</h3>
                          </div>
                          <div class="showcase-number">12</div>
                        </div>
                        <div class="showcase-input-vibe" style="margin-top: 16px;">
                          <img src="assets/Showcase/Vibe coding/Input.webp" alt="Vibe Coding Input"
                            style="width: 100%; height: auto; aspect-ratio: 1.6; border-radius: 12px; object-fit: cover; border: 1px solid rgba(255,255,255,0.05);">
                        </div>
                      </div>
                      <div class="showcase-visual-column">
                        <div class="showcase-video-container"
                          style="position: relative; width: 100%; height: auto; aspect-ratio: 1.6; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.08); background: #000;">
                          <video autoplay loop muted playsinline
                            style="width: 100%; height: 100%; object-fit: cover;">
                            <source src="assets/Showcase/Vibe coding/Output.webm" type="video/webm">
                            <source src="assets/Showcase/Vibe coding/Output.mp4" type="video/mp4">
                            Your browser does not support the video tag.
                          </video>
                        </div>
                        <div class="showcase-caption">With zero coding knoweldge you can build your website, app, script or any coding needs using just description.</div>
                      </div>
                    </article>
                  </div>
                </div>
              </div>
            </div>

            <div class="showcase-steps" aria-label="Scroll steps for showcase narrative">
              <div id="showcase-step-multi-angles" class="showcase-step active" data-showcase-scene="multi-angles">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">01</div>
                  <div class="showcase-step-label">Multi angles</div>
                </div>
              </div>
              <div id="showcase-step-mood-board" class="showcase-step" data-showcase-scene="mood-board">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">02</div>
                  <div class="showcase-step-label">Mood board</div>
                </div>
              </div>
              <div id="showcase-step-space-perception" class="showcase-step" data-showcase-scene="space-perception">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">03</div>
                  <div class="showcase-step-label">Space Perception</div>
                </div>
              </div>
              <div id="showcase-step-add-people" class="showcase-step" data-showcase-scene="add-people">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">04</div>
                  <div class="showcase-step-label">Add people</div>
                </div>
              </div>
              <div id="showcase-step-3d-integration" class="showcase-step" data-showcase-scene="3d-integration">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">05</div>
                  <div class="showcase-step-label">3d integration</div>
                </div>
              </div>
              <div id="showcase-step-restore-details" class="showcase-step" data-showcase-scene="restore-details">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">06</div>
                  <div class="showcase-step-label">Restore details</div>
                </div>
              </div>
              <div id="showcase-step-refine-people" class="showcase-step" data-showcase-scene="refine-people">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">07</div>
                  <div class="showcase-step-label">Refine people</div>
                </div>
              </div>
              <div id="showcase-step-style-transfer" class="showcase-step" data-showcase-scene="style-transfer">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">08</div>
                  <div class="showcase-step-label">Style transfer</div>
                </div>
              </div>
              <div id="showcase-step-animation" class="showcase-step" data-showcase-scene="animation">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">09</div>
                  <div class="showcase-step-label">Animation</div>
                </div>
              </div>
              <div id="showcase-step-training-lora" class="showcase-step" data-showcase-scene="training-lora">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">10</div>
                  <div class="showcase-step-label">Training Lora</div>
                </div>
              </div>
              <div id="showcase-step-app-integration" class="showcase-step" data-showcase-scene="app-integration">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">11</div>
                  <div class="showcase-step-label">App integration</div>
                </div>
              </div>
              <div id="showcase-step-all-in-one-click" class="showcase-step" data-showcase-scene="all-in-one-click">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">12</div>
                  <div class="showcase-step-label">All in one click</div>
                </div>
              </div>
              <div id="showcase-step-vibe-coding" class="showcase-step" data-showcase-scene="vibe-coding">
                <div class="showcase-step-inner">
                  <div class="showcase-step-index">13</div>
                  <div class="showcase-step-label">vibe coding</div>
                </div>
              </div>
            </div>
          </div>

          <div class="panel-credit">Powered by MeeM Studio</div>
        </div>
      </section>

      <section id="panel-register" class="panel" role="tabpanel" aria-labelledby="register-tab">
        <div class="section-shell">
          <div class="section-header">
            <div>
              <div class="eyebrow">Enroll</div>
              <h2>Reserve your seat.</h2>
            </div>
            <div class="section-meta">Register / 04</div>
          </div>

          <div class="register-layout register-layout--enroll">
            <article class="register-card register-preview register-spotlight reveal reveal-left">
              <div class="mini-badge">Early Bird</div>
              <div class="pricing-block">
                <div class="pricing-heading">
                  <h3>Take your seat before the first 10 spots are gone.</h3>
                  <div class="pricing-meta">
                    <div class="pricing-pill">15% Off</div>
                    <div class="pricing-pill">First 10 Seats</div>
                  </div>
                </div>
                <div class="enroll-summary reveal reveal-delay-1">
                  Join a hands-on cohort built for designers, architects, visualizers, and artists who want guided
                  practice, repeatable systems, and outcomes worth shipping.
                </div>
                <div class="enroll-facts-grid reveal reveal-delay-2">
                  <div class="enroll-fact">
                    <span class="enroll-fact-label">Round Date</span>
                    <span class="enroll-fact-value">May 10, 2026</span>
                  </div>
                  <div class="enroll-fact">
                    <span class="enroll-fact-label">Duration</span>
                    <span class="enroll-fact-value">12 weeks</span>
                  </div>
                  <div class="enroll-fact">
                    <span class="enroll-fact-label">Guided Time</span>
                    <span class="enroll-fact-value">36 guided hours</span>
                  </div>
                  <div class="enroll-fact">
                    <span class="enroll-fact-label">Course Language</span>
                    <span class="enroll-fact-value">Arabic</span>
                  </div>
                </div>
                <div class="enroll-highlight reveal reveal-delay-3">
                  <span>Practical workflow training</span>
                  <span>Real-world project outcomes</span>
                  <span>Serious cohort only</span>
                </div>
              </div>
            </article>

            <article class="register-card enroll-sidebar reveal reveal-right reveal-delay-1">
              <div class="enroll-price-card">
                <div class="enroll-price-head">
                  <div>
                    <div class="mini-kicker">Seat Reservation</div>
                    <h3>Secure the early cohort rate.</h3>
                  </div>
                  <p>Standard pricing returns after the first 10 seats are filled.</p>
                </div>
                <div class="pricing-stack enroll-price-stack">
                  <div class="price-current reveal-scale">6,799 EGP</div>
                  <div class="price-original">7,999 EGP</div>
                </div>
                <ul class="pricing-includes">
                  <li>12 guided sessions across foundations, workflows, prompting, and production.</li>
                  <li>Hands-on coverage of ComfyUI, ControlNet, LoRA workflows, inpainting, and enhancement pipelines.
                  </li>
                  <li>Practical learning path focused on real creative and architectural AI outputs.</li>
                </ul>
                <div class="pricing-footnote">Early enrollment pricing is reserved for the first ten participants.</div>
              </div>
              <div class="enroll-cta-card">
                <div class="enroll-cta-copy">Complete a short guided application and we will contact you on email or
                  WhatsApp to confirm the next step.</div>
                <div class="button-row">
                  <button class="button primary" type="button" data-open-enroll-modal>Reserve Your Seat</button>
                  <a class="button secondary-link" href="https://wa.me/201152700250" target="_blank"
                    rel="noreferrer">Contact us</a>
                </div>
                <div class="enroll-whatsapp-note">Questions before applying? Message us directly on WhatsApp.</div>
              </div>
            </article>
          </div>

          <div class="panel-credit">Powered by MeeM Studio</div>
        </div>
      </section>
    </main>
  </div>

  <div class="enroll-modal" id="enroll-modal" hidden>
    <div class="enroll-modal-backdrop" data-close-enroll-modal></div>
    <div class="enroll-modal-dialog" role="dialog" aria-modal="true" aria-labelledby="enroll-modal-title">
      <button class="enroll-modal-close" type="button" aria-label="Close application"
        data-close-enroll-modal>&times;</button>
      <form class="enroll-modal-shell" id="enroll-form" novalidate>
        <div>
          <div class="enroll-progress-meta">
            <div id="enroll-progress-step">Step 1 of 6</div>
            <div id="enroll-progress-percent">17%</div>
          </div>
          <div class="enroll-progress-track" aria-hidden="true">
            <div class="enroll-progress-bar" id="enroll-progress-bar"></div>
          </div>
        </div>

        <div class="enroll-modal-step active" data-step="0" data-field="fullName">
          <div class="enroll-modal-step-copy">
            <h3 id="enroll-modal-title">What's your full name?</h3>
            <p>We'd love to know what to call you.</p>
          </div>
          <input class="enroll-form-control" type="text" name="fullName" placeholder="Enter your full name"
            autocomplete="name" />
          <div class="step-hint">Press <kbd>Enter</kbd> to continue</div>
        </div>

        <div class="enroll-modal-step" data-step="1" data-field="roleTitle">
          <div class="enroll-modal-step-copy">
            <h3>What's your current role or title?</h3>
            <p>Help us understand your professional background.</p>
          </div>
          <input class="enroll-form-control" type="text" name="roleTitle"
            placeholder="e.g., Designer, Architect, Freelancer" autocomplete="organization-title" />
          <div class="step-hint">Press <kbd>Enter</kbd> to continue</div>
        </div>

        <div class="enroll-modal-step" data-step="2" data-field="email">
          <div class="enroll-modal-step-copy">
            <h3>What's your email address?</h3>
            <p>We'll use this to send you course updates and next steps.</p>
          </div>
          <input class="enroll-form-control" type="email" name="email" placeholder="name@example.com"
            autocomplete="email" inputmode="email" />
          <div class="step-hint">Press <kbd>Enter</kbd> to continue</div>
        </div>

        <div class="enroll-modal-step" data-step="3" data-field="phoneWhatsApp">
          <div class="enroll-modal-step-copy">
            <h3>What's your phone or WhatsApp number?</h3>
            <p>We'll use it only if we need to confirm your seat quickly.</p>
          </div>
          <input class="enroll-form-control" type="tel" name="phoneWhatsApp" placeholder="e.g., 01152700250"
            autocomplete="tel" inputmode="tel" />
          <div class="step-hint">Press <kbd>Enter</kbd> to continue</div>
        </div>

        <div class="enroll-modal-step" data-step="4" data-field="learningGoals">
          <div class="enroll-modal-step-copy">
            <h3>What do you hope to learn from this course?</h3>
            <p>Tell us about the skills, workflows, or projects you want to build.</p>
          </div>
          <textarea class="enroll-form-control" name="learningGoals"
            placeholder="What specific skills or projects are you looking to develop?"></textarea>
          <div class="step-hint">Use a few clear sentences so we can understand your goals.</div>
        </div>

        <div class="enroll-modal-step" data-step="5" data-field="heardAboutUs">
          <div class="enroll-modal-step-copy">
            <h3>How did you hear about us?</h3>
            <p>Help us understand what brought you here.</p>
          </div>
          <input class="enroll-form-control" type="text" name="heardAboutUs"
            placeholder="Social media, referral, website, etc." autocomplete="off" />
          <div class="step-hint">Press <kbd>Enter</kbd> to review and submit</div>
        </div>

        <div class="enroll-form-error" id="enroll-form-error" aria-live="polite"></div>

        <div class="enroll-modal-actions">
          <button class="button modal-ghost" type="button" id="enroll-prev-button">Previous</button>
          <div class="enroll-modal-actions-end">
            <div class="enroll-submit-note" id="enroll-submit-note"></div>
            <button class="button modal-primary" type="button" id="enroll-next-button">Continue</button>
          </div>
        </div>

        <div class="enroll-modal-success" id="enroll-modal-success" aria-live="polite">
          <div class="mini-kicker">Seat Request Received</div>
          <h3>You're on our radar.</h3>
          <p>Your seat request has been received. We'll contact you soon on email or WhatsApp.</p>
          <button class="button modal-primary" type="button" data-close-enroll-modal>Close</button>
        </div>
      </form>
    </div>
  </div>

  <script>
    // Custom cursor - skip setup entirely on touch devices.
    const isTouchDevice = 'ontouchstart' in window || navigator.maxTouchPoints > 0;

    if (isTouchDevice) {
      document.documentElement.classList.add('touch-device');
    } else {
      const cursor = document.querySelector('.cursor');
      const cursorRing = document.querySelector('.cursor-ring');

      if (cursor && cursorRing) {
        let mouseX = 0, mouseY = 0;
        let ringX = 0, ringY = 0;

        // Smooth cursor animation loop
        function animateCursor() {
          // Smooth follow with lerp
          ringX += (mouseX - ringX) * 0.15;
          ringY += (mouseY - ringY) * 0.15;

          cursor.style.left = mouseX + 'px';
          cursor.style.top = mouseY + 'px';
          cursorRing.style.left = ringX + 'px';
          cursorRing.style.top = ringY + 'px';

          requestAnimationFrame(animateCursor);
        }

        document.addEventListener('mousemove', (e) => {
          mouseX = e.clientX;
          mouseY = e.clientY;
        });

        // Start animation
        animateCursor();

        // Cursor interaction states
        const interactiveElements = document.querySelectorAll('a, button, .tab, .session-card, .content-card, .note-card, .stat-card, .register-card, .floating-card, .scroll-button, .showcase-link, .showcase-step');

        interactiveElements.forEach(el => {
          el.addEventListener('mouseenter', () => cursorRing.classList.add('active'));
          el.addEventListener('mouseleave', () => cursorRing.classList.remove('active'));
        });
      }
    }

    // Scroll reveal with IntersectionObserver
    const revealElements = document.querySelectorAll('.reveal, .reveal-left, .reveal-right, .reveal-scale');
    const revealObserverOptions = isTouchDevice
      ? { threshold: 0.22, rootMargin: '0px 0px -20px 0px' }
      : { threshold: 0.14, rootMargin: '0px 0px -40px 0px' };

    const observer = new IntersectionObserver((entries) => {
      entries.forEach(entry => {
        if (entry.isIntersecting) {
          entry.target.classList.add('visible');
        }
      });
    }, revealObserverOptions);

    revealElements.forEach(el => observer.observe(el));

    // Tab switching
    const tabs = Array.from(document.querySelectorAll('.tab'));
    const panels = Array.from(document.querySelectorAll('.panel'));
    const topbar = document.querySelector('.topbar');
    let currentPanel = document.querySelector('.panel.active');

    function syncShowcaseMobileStickyOffset() {
      if (!topbar) {
        return;
      }

      const topbarTop = Number.parseFloat(window.getComputedStyle(topbar).top) || 0;
      const stickyOffset = Math.round(topbarTop + topbar.getBoundingClientRect().height - 2);
      document.documentElement.style.setProperty('--showcase-mobile-sticky-top', `${stickyOffset}px`);
    }

    syncShowcaseMobileStickyOffset();
    window.addEventListener('resize', syncShowcaseMobileStickyOffset, { passive: true });

    if ('ResizeObserver' in window && topbar) {
      new ResizeObserver(syncShowcaseMobileStickyOffset).observe(topbar);
    }

    if (currentPanel) {
      document.body.classList.toggle('showcase-mobile-active', currentPanel.id === 'panel-showcase');
    }

    panels.forEach((panel) => {
      panel.addEventListener('animationend', (event) => {
        if (event.animationName === 'panelIn') {
          panel.classList.remove('panel-enter');
        }
      });
    });

    function activatePanel(panelName) {
      const nextPanel = document.getElementById(`panel-${panelName}`);
      if (!nextPanel || nextPanel === currentPanel) {
        return;
      }

      // Scroll lock removed — showcase page scrolls normally like other tabs

      tabs.forEach((tab) => {
        const isActive = tab.dataset.panel === panelName;
        tab.classList.toggle('active', isActive);
        tab.setAttribute('aria-selected', String(isActive));
      });

      if (currentPanel) {
        currentPanel.classList.remove('active', 'panel-enter');
      }

      nextPanel.classList.remove('panel-enter');
      nextPanel.classList.add('active');
      document.body.classList.toggle('showcase-mobile-active', panelName === 'showcase');

      window.requestAnimationFrame(() => {
        nextPanel.classList.add('active');
        nextPanel.classList.add('panel-enter');
        currentPanel = nextPanel;
      });
    }

    tabs.forEach((tab) => {
      tab.addEventListener('click', () => activatePanel(tab.dataset.panel));
    });

    const showcaseNavs = Array.from(document.querySelectorAll('.showcase-nav, .showcase-mobile-nav'));
    const showcaseLinks = Array.from(document.querySelectorAll('[data-showcase-scene]'));
    const showcaseDesktopLinks = Array.from(document.querySelectorAll('.showcase-link[data-showcase-scene]'));
    const showcaseScenes = Array.from(document.querySelectorAll('.showcase-scene'));
    const showcaseSteps = Array.from(document.querySelectorAll('.showcase-step'));
    const showcaseStepsContainer = document.querySelector('.showcase-steps');
    const showcaseSceneOrder = showcaseDesktopLinks.map((link) => link.dataset.showcaseScene);
    const showcaseStepByScene = new Map(showcaseSteps.map((step) => [step.dataset.showcaseScene, step]));
    const showcaseLinksByScene = new Map();
    showcaseLinks.forEach((link) => {
      const sceneName = link.dataset.showcaseScene;
      const sceneLinks = showcaseLinksByScene.get(sceneName) || [];
      sceneLinks.push(link);
      showcaseLinksByScene.set(sceneName, sceneLinks);
    });
    let activeShowcaseScene = showcaseLinks[0] ? showcaseLinks[0].dataset.showcaseScene : null;
    let showcaseWheelLocked = false;

    function updateShowcaseRoller(sceneName) {
      const activeIndex = showcaseDesktopLinks.findIndex((link) => link.dataset.showcaseScene === sceneName);
      if (activeIndex < 0) {
        return;
      }

      showcaseDesktopLinks.forEach((link, index) => {
        const distance = index - activeIndex;
        const distanceAbs = Math.abs(distance);
        const limitedDistance = Math.min(distanceAbs, 6);
        const translateX = index === activeIndex ? 0 : Math.min(8 + limitedDistance * 5, 28);
        const scale = index === activeIndex ? 1.06 : Math.max(0.82, 1 - limitedDistance * 0.05);
        const opacity = index === activeIndex ? 1 : Math.max(0.28, 0.62 - limitedDistance * 0.07);
        const blur = index === activeIndex ? 0 : Math.min(0.25 + limitedDistance * 0.22, 1.5);

        link.style.setProperty('--roller-x', `${translateX}px`);
        link.style.setProperty('--roller-scale', String(scale));
        link.style.setProperty('--roller-opacity', String(opacity));
        link.style.setProperty('--roller-blur', `${blur}px`);
      });
    }

    function setActiveShowcaseScene(sceneName, behavior = 'auto') {
      activeShowcaseScene = sceneName;

      showcaseLinks.forEach((link) => {
        link.classList.toggle('active', link.dataset.showcaseScene === sceneName);
      });

      showcaseScenes.forEach((scene) => {
        scene.classList.toggle('active', scene.dataset.scene === sceneName);
      });

      showcaseSteps.forEach((step) => {
        step.classList.toggle('active', step.dataset.showcaseScene === sceneName);
      });

      const activeStep = showcaseStepByScene.get(sceneName);
      const activeLinks = showcaseLinksByScene.get(sceneName) || [];
      const activeShowcasePanel = document.getElementById('panel-showcase');
      if (activeStep && activeShowcasePanel && activeShowcasePanel.classList.contains('active')) {
        history.replaceState(null, '', `#${activeStep.id}`);
      }

      updateShowcaseRoller(sceneName);

      activeLinks.forEach((activeLink) => {
        activeLink.scrollIntoView({
          behavior,
          block: 'nearest',
          inline: 'center'
        });
      });
    }

    function scrollToShowcaseStep(stepId, behavior = 'auto') {
      const targetStep = document.getElementById(stepId);
      if (!targetStep || !showcaseStepsContainer) {
        return;
      }

      showcaseStepsContainer.scrollTo({ top: targetStep.offsetTop, behavior });
    }

    function activateShowcaseScene(sceneName, behavior = 'auto') {
      if (!sceneName) {
        return;
      }

      const targetStep = showcaseStepByScene.get(sceneName);
      setActiveShowcaseScene(sceneName, behavior);

      if (targetStep) {
        scrollToShowcaseStep(targetStep.id, behavior);
      }
    }

    function moveShowcaseScene(delta) {
      if (!activeShowcaseScene || !showcaseSceneOrder.length) {
        return;
      }

      const currentIndex = showcaseSceneOrder.indexOf(activeShowcaseScene);
      if (currentIndex < 0) {
        return;
      }

      const nextIndex = Math.max(0, Math.min(showcaseSceneOrder.length - 1, currentIndex + delta));
      if (nextIndex === currentIndex) {
        return;
      }

      activateShowcaseScene(showcaseSceneOrder[nextIndex]);
    }

    if (showcaseSceneOrder.length) {
      activateShowcaseScene(showcaseSceneOrder[0]);
    }

    showcaseNavs.forEach((showcaseNav) => {
      showcaseNav.addEventListener('wheel', (event) => {
        if (Math.abs(event.deltaY) < 6) {
          return;
        }

        event.preventDefault();

        if (showcaseWheelLocked) {
          return;
        }

        showcaseWheelLocked = true;
        moveShowcaseScene(event.deltaY > 0 ? 1 : -1);

        window.setTimeout(() => {
          showcaseWheelLocked = false;
        }, 240);
      }, { passive: false });
    });

    showcaseLinks.forEach((link) => {
      link.addEventListener('click', (event) => {
        event.preventDefault();
        activatePanel('showcase');
        activateShowcaseScene(link.dataset.showcaseScene);
      });
    });

    document.querySelectorAll('[data-panel-target]').forEach((element) => {
      element.addEventListener('click', () => activatePanel(element.dataset.panelTarget));
    });

    const enrollEndpoint = '/api/enroll';
    const enrollModal = document.getElementById('enroll-modal');
    const enrollForm = document.getElementById('enroll-form');
    const enrollSteps = Array.from(document.querySelectorAll('.enroll-modal-step'));
    const enrollSuccess = document.getElementById('enroll-modal-success');
    const enrollError = document.getElementById('enroll-form-error');
    const enrollSubmitNote = document.getElementById('enroll-submit-note');
    const enrollProgressStep = document.getElementById('enroll-progress-step');
    const enrollProgressPercent = document.getElementById('enroll-progress-percent');
    const enrollProgressBar = document.getElementById('enroll-progress-bar');
    const enrollPrevButton = document.getElementById('enroll-prev-button');
    const enrollNextButton = document.getElementById('enroll-next-button');
    const enrollFormControls = Array.from(document.querySelectorAll('.enroll-form-control'));
    const modalActionElements = [enrollPrevButton, enrollNextButton].filter(Boolean);
    const totalEnrollSteps = enrollSteps.length;
    const enrollQueueStorageKey = 'meem-academy-enroll-queue-v1';
    const enrollSubmissionFailureMessage = "We can't receive your info now, please contact us for qwestions.";
    let currentEnrollStep = 0;
    let isSubmittingEnrollForm = false;
    let isFlushingEnrollQueue = false;

    function normalizeEnrollPayload(payload = {}) {
      return {
        fullName: String(payload.fullName || '').trim(),
        roleTitle: String(payload.roleTitle || '').trim(),
        email: String(payload.email || '').trim(),
        phoneWhatsApp: String(payload.phoneWhatsApp || '').trim(),
        learningGoals: String(payload.learningGoals || '').trim(),
        heardAboutUs: String(payload.heardAboutUs || '').trim(),
        cohort: String(payload.cohort || '').trim(),
        sourcePage: String(payload.sourcePage || window.location.href).trim()
      };
    }

    function getEnrollPayloadKey(payload) {
      const normalized = normalizeEnrollPayload(payload);
      return [normalized.fullName, normalized.email, normalized.phoneWhatsApp, normalized.cohort]
        .map((value) => value.toLowerCase())
        .join('|');
    }

    function readQueuedEnrollRequests() {
      try {
        const raw = window.localStorage.getItem(enrollQueueStorageKey);
        if (!raw) {
          return [];
        }

        const parsed = JSON.parse(raw);
        return Array.isArray(parsed) ? parsed : [];
      } catch (error) {
        console.warn('Failed to read queued enrollments:', error);
        return [];
      }
    }

    function writeQueuedEnrollRequests(queue) {
      try {
        if (!queue.length) {
          window.localStorage.removeItem(enrollQueueStorageKey);
          return;
        }

        window.localStorage.setItem(enrollQueueStorageKey, JSON.stringify(queue));
      } catch (error) {
        console.warn('Failed to persist queued enrollments:', error);
      }
    }

    function queueEnrollPayload(payload) {
      const normalized = normalizeEnrollPayload(payload);
      const payloadKey = getEnrollPayloadKey(normalized);
      const queue = readQueuedEnrollRequests();

      if (queue.some((item) => item.payloadKey === payloadKey)) {
        return;
      }

      queue.push({ payload: normalized, payloadKey, queuedAt: Date.now() });
      writeQueuedEnrollRequests(queue);
    }

    function removeQueuedEnrollPayload(payloadKey) {
      const queue = readQueuedEnrollRequests().filter((item) => item.payloadKey !== payloadKey);
      writeQueuedEnrollRequests(queue);
    }

    async function sendEnrollPayload(payload, timeoutMs = 15000) {
      const controller = new AbortController();
      const timeoutId = window.setTimeout(() => controller.abort(), timeoutMs);

      try {
        const response = await fetch(enrollEndpoint, {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json'
          },
          body: JSON.stringify(normalizeEnrollPayload(payload)),
          signal: controller.signal
        });

        let result = null;
        try {
          result = await response.json();
        } catch (parseError) {
          result = null;
        }

        if (!response.ok || !result || result.success !== true) {
          throw new Error(result && result.error ? result.error : 'Enrollment sync failed.');
        }

        return result;
      } finally {
        window.clearTimeout(timeoutId);
      }
    }

    async function flushQueuedEnrollRequests() {
      if (isFlushingEnrollQueue || !navigator.onLine) {
        return;
      }

      const queue = readQueuedEnrollRequests();
      if (!queue.length) {
        return;
      }

      isFlushingEnrollQueue = true;

      try {
        for (const item of queue) {
          try {
            await sendEnrollPayload(item.payload, 15000);
            removeQueuedEnrollPayload(item.payloadKey);
          } catch (error) {
            console.warn('Queued enrollment sync failed:', error);
            break;
          }
        }
      } finally {
        isFlushingEnrollQueue = false;
      }
    }

    function setEnrollStatus(message = '') {
      if (enrollSubmitNote) {
        enrollSubmitNote.textContent = message;
      }
    }

    function setEnrollError(message = '') {
      if (enrollError) {
        enrollError.textContent = message;
      }
    }

    function getEnrollField(stepIndex = currentEnrollStep) {
      const step = enrollSteps[stepIndex];
      const fieldName = step ? step.dataset.field : null;
      return fieldName ? enrollForm.elements[fieldName] : null;
    }

    function validateEnrollField(field) {
      if (!field) {
        return '';
      }

      const value = field.value.trim();
      if (!value) {
        return 'Please complete this step before continuing.';
      }

      if (field.name === 'email') {
        const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
        if (!emailPattern.test(value)) {
          return 'Please enter a valid email address.';
        }
      }

      if (field.name === 'phoneWhatsApp') {
        const digits = value.replace(/\D/g, '');
        if (digits.length < 10) {
          return 'Please enter a valid phone or WhatsApp number.';
        }
      }

      return '';
    }

    function focusEnrollField(stepIndex = currentEnrollStep) {
      const field = getEnrollField(stepIndex);
      if (field) {
        window.requestAnimationFrame(() => field.focus());
      }
    }

    function updateEnrollModalStep() {
      enrollSteps.forEach((step, index) => {
        step.classList.toggle('active', index === currentEnrollStep);
      });

      const progress = Math.round(((currentEnrollStep + 1) / totalEnrollSteps) * 100);
      if (enrollProgressStep) {
        enrollProgressStep.textContent = `Step ${currentEnrollStep + 1} of ${totalEnrollSteps}`;
      }
      if (enrollProgressPercent) {
        enrollProgressPercent.textContent = `${progress}%`;
      }
      if (enrollProgressBar) {
        enrollProgressBar.style.width = `${progress}%`;
      }

      if (enrollPrevButton) {
        enrollPrevButton.disabled = currentEnrollStep === 0 || isSubmittingEnrollForm;
      }

      if (enrollNextButton) {
        enrollNextButton.textContent = currentEnrollStep === totalEnrollSteps - 1 ? 'Submit Request' : 'Continue';
        enrollNextButton.disabled = isSubmittingEnrollForm;
      }

      setEnrollError('');
      setEnrollStatus('');
      focusEnrollField();
    }

    function resetEnrollModal() {
      currentEnrollStep = 0;
      isSubmittingEnrollForm = false;
      enrollForm.reset();
      enrollSteps.forEach((step) => step.hidden = false);
      modalActionElements.forEach((element) => { element.hidden = false; });
      if (enrollSuccess) {
        enrollSuccess.classList.remove('active');
      }
      updateEnrollModalStep();
    }

    function openEnrollModal() {
      if (!enrollModal) {
        return;
      }

      resetEnrollModal();
      enrollModal.hidden = false;
      document.body.classList.add('modal-open');
    }

    function closeEnrollModal() {
      if (!enrollModal) {
        return;
      }

      enrollModal.hidden = true;
      document.body.classList.remove('modal-open');
      setEnrollError('');
      setEnrollStatus('');
    }

    function showEnrollSuccess() {
      enrollSteps.forEach((step) => step.hidden = true);
      modalActionElements.forEach((element) => { element.hidden = true; });
      setEnrollError('');
      setEnrollStatus('');
      if (enrollSuccess) {
        enrollSuccess.classList.add('active');
      }
    }

    async function submitEnrollForm() {
      if (isSubmittingEnrollForm) {
        return;
      }

      const payload = normalizeEnrollPayload({
        fullName: enrollForm.elements.fullName.value.trim(),
        roleTitle: enrollForm.elements.roleTitle.value.trim(),
        email: enrollForm.elements.email.value.trim(),
        phoneWhatsApp: enrollForm.elements.phoneWhatsApp.value.trim(),
        learningGoals: enrollForm.elements.learningGoals.value.trim(),
        heardAboutUs: enrollForm.elements.heardAboutUs.value.trim(),
        cohort: 'May 10',
        sourcePage: window.location.href
      });

      isSubmittingEnrollForm = true;
      updateEnrollModalStep();
      setEnrollStatus('Submitting your seat request...');

      let submissionSucceeded = false;
      let failureMessage = '';

      try {
        await sendEnrollPayload(payload, 15000);
        submissionSucceeded = true;
        showEnrollSuccess();
      } catch (error) {
        queueEnrollPayload(payload);
        failureMessage = enrollSubmissionFailureMessage;
        console.error('Enrollment submission failed:', error);
      } finally {
        isSubmittingEnrollForm = false;
        setEnrollStatus('');
        if (!submissionSucceeded) {
          updateEnrollModalStep();
          setEnrollError(failureMessage);
        }
      }
    }

    function goToNextEnrollStep() {
      const field = getEnrollField();
      const validationMessage = validateEnrollField(field);

      if (validationMessage) {
        setEnrollError(validationMessage);
        focusEnrollField();
        return;
      }

      if (currentEnrollStep === totalEnrollSteps - 1) {
        submitEnrollForm();
        return;
      }

      currentEnrollStep += 1;
      updateEnrollModalStep();
    }

    function goToPreviousEnrollStep() {
      if (currentEnrollStep === 0 || isSubmittingEnrollForm) {
        return;
      }

      currentEnrollStep -= 1;
      updateEnrollModalStep();
    }

    document.querySelectorAll('[data-open-enroll-modal]').forEach((button) => {
      button.addEventListener('click', openEnrollModal);
    });

    document.querySelectorAll('[data-close-enroll-modal]').forEach((button) => {
      button.addEventListener('click', closeEnrollModal);
    });

    if (enrollPrevButton) {
      enrollPrevButton.addEventListener('click', goToPreviousEnrollStep);
    }

    if (enrollNextButton) {
      enrollNextButton.addEventListener('click', goToNextEnrollStep);
    }

    enrollFormControls.forEach((field) => {
      field.addEventListener('input', () => {
        if (field === getEnrollField()) {
          setEnrollError('');
        }
      });

      if (field.tagName !== 'TEXTAREA') {
        field.addEventListener('keydown', (event) => {
          if (event.key === 'Enter') {
            event.preventDefault();
            goToNextEnrollStep();
          }
        });
      }
    });

    document.addEventListener('keydown', (event) => {
      if (event.key === 'Escape' && enrollModal && !enrollModal.hidden) {
        closeEnrollModal();
      }
    });

    window.addEventListener('online', () => {
      flushQueuedEnrollRequests();
    });

    document.addEventListener('visibilitychange', () => {
      if (document.visibilityState === 'visible') {
        flushQueuedEnrollRequests();
      }
    });

    updateEnrollModalStep();
    flushQueuedEnrollRequests();

    const defaultPanelName = 'overview';
    const defaultPanel = document.getElementById(`panel-${defaultPanelName}`);

    tabs.forEach((tab) => {
      const isActive = tab.dataset.panel === defaultPanelName;
      tab.classList.toggle('active', isActive);
      tab.setAttribute('aria-selected', String(isActive));
    });

    panels.forEach((panel) => {
      const isActive = panel === defaultPanel;
      panel.classList.toggle('active', isActive);
      panel.classList.remove('panel-enter');
    });

    currentPanel = defaultPanel;

    document.getElementById('scroll-up').addEventListener('click', () => {
      window.scrollTo({ top: 0, behavior: 'smooth' });
    });

    document.getElementById('scroll-down').addEventListener('click', () => {
      window.scrollTo({ top: document.documentElement.scrollHeight, behavior: 'smooth' });
    });

    function updateSlider(event, container) {
      if (event.cancelable) event.preventDefault();
      const rect = container.getBoundingClientRect();
      let x;
      if (event.touches && event.touches.length > 0) {
        x = event.touches[0].clientX - rect.left;
      } else {
        x = event.clientX - rect.left;
      }
      const percent = Math.max(0, Math.min(100, (x / rect.width) * 100));
      container.querySelector('.slider-image-before').style.clipPath = `inset(0 ${100 - percent}% 0 0)`;
      container.querySelector('.showcase-slider-handle').style.left = `${percent}%`;
    }

  </script>
</body>

</html>
