    /* ── Google Fonts: Noto Serif SC for Chinese headings ── */
    @import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@700;900&display=swap');

    /* ── Reset & Base ── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      /* Vibrant orange palette — OKLCH for perceptual uniformity */
      --orange:       oklch(0.66 0.19 44);
      --orange-light: oklch(0.77 0.13 46);
      --orange-bg:    oklch(0.96 0.04 50);
      --dark:         oklch(0.13 0.012 45);
      --gray:         oklch(0.44 0.018 50);
      --light:        oklch(0.96 0.025 50);
      --white:        oklch(0.985 0.010 50);

      /* Legacy aliases — existing code continues to work */
      --gold:       var(--orange);
      --gold-light: var(--orange-light);
      --gold-bg:    var(--orange-bg);

      /* Font stacks */
      /* EB Garamond for Latin display, Noto Serif SC for Chinese headings */
      --font-display: 'EB Garamond', 'Noto Serif SC', 'PingFang SC', 'STSong', 'Microsoft YaHei', serif;
      --font-body:    'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif;
    }
    html { scroll-behavior: smooth; }

    /* ── Focus ── */
    :focus-visible {
      outline: 2px solid var(--orange);
      outline-offset: 3px;
      border-radius: 3px;
    }

    body {
      font-family: var(--font-body);
      color: var(--dark);
      line-height: 1.7;
      background: oklch(0.985 0.010 50);
    }
    h1,h2,h3 { line-height: 1.3; font-family: var(--font-display); }
    h4 { line-height: 1.3; }
    /* Display font for section titles and English headings */
    .section-title,
    .hero-title-en,
    .hero-eyebrow,
    .section-label,
    .contact-en {
      font-family: var(--font-display);
    }
    .section-title { letter-spacing: -0.01em; }

    /* ── Scroll reveal ── */
    .reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity 0.55s ease-out, transform 0.55s ease-out;
    }
    .reveal.visible {
      opacity: 1;
      transform: none;
    }
    .reveal-delay-1 { transition-delay: 0.1s; }
    .reveal-delay-2 { transition-delay: 0.2s; }
    .reveal-delay-3 { transition-delay: 0.3s; }
    .reveal-delay-4 { transition-delay: 0.4s; }
    img { display: block; max-width: 100%; }
    a { text-decoration: none; color: inherit; }

    /* ── Utilities ── */
    .container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
    .section { padding: 80px 0; }
    .section--gold { background: var(--gold); color: var(--white); }
    .section--light {
      background-color: var(--light);
      /* Subtle dot grid — evokes academic/scientific precision */
      background-image: radial-gradient(circle, oklch(0.74 0.022 50 / 0.45) 1px, transparent 1px);
      background-size: 28px 28px;
    }
    .section--gold-bg { background: var(--gold-bg); }
    /* Warm amber dark — Outcomes section */
    .section--amber-dark {
      background-color: oklch(0.18 0.04 42);
      background-image: repeating-linear-gradient(
        135deg,
        transparent,
        transparent 40px,
        oklch(1 0 0 / 0.025) 40px,
        oklch(1 0 0 / 0.025) 41.5px
      );
      color: white;
    }

    .tag {
      display: inline-block;
      background: var(--gold);
      color: var(--white);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 1px;
      padding: 4px 10px;
      border-radius: 2px;
      text-transform: uppercase;
      margin-bottom: 12px;
    }
    .section-label {
      font-size: 11px;
      letter-spacing: 4px;
      color: var(--gold);
      text-transform: uppercase;
      font-weight: 700;
      margin-bottom: 14px;
      display: flex; align-items: center; gap: 12px;
    }
    .section-label::before {
      content: '';
      display: inline-block;
      width: 32px; height: 2px;
      background: var(--gold);
      flex-shrink: 0;
    }
    .section-title {
      font-size: clamp(38px, 5.5vw, 68px);
      font-weight: 800;
      line-height: 1.1;
      letter-spacing: -0.02em;
      margin-bottom: 24px;
    }
    .section-subtitle {
      font-size: 16px;
      color: var(--gray);
      max-width: 640px;
      margin-bottom: 56px;
      line-height: 1.75;
    }
    .divider {
      width: 56px; height: 3px;
      background: var(--gold);
      margin: 20px 0 36px;
    }
    .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
    .grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
    .grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
    @media(max-width:900px){
      .grid-2,.grid-3,.grid-4 { grid-template-columns: 1fr; }
    }
    @media(max-width:600px){
      .section { padding: 56px 0; }
    }

    /* ── Nav ── */
    nav {
      position: fixed; top: 0; left: 0; right: 0; z-index: 100;
      background: rgba(255,255,255,.96);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid #e5e5e5;
    }
    .nav-inner {
      max-width: 1200px; margin: 0 auto; padding: 0 24px;
      display: flex; align-items: center; justify-content: space-between;
      height: 64px;
    }
    .nav-logo {
      display: flex; align-items: center; gap: 10px; text-decoration: none;
    }
    .nav-logo-text {
      font-size: 17px; font-weight: 800; color: var(--dark);
      font-family: var(--font-display); letter-spacing: 0.04em;
      transition: color .15s;
    }
    .nav-logo:hover .nav-logo-text { color: var(--gold); }
    nav.scrolled .nav-logo-text { color: var(--dark); }
    .nav-logo-icon {
      width: 36px; height: 36px;
      background: var(--gold);
      border-radius: 6px;
      display: flex; align-items: center; justify-content: center;
      color: white; font-size: 18px; font-weight: 900;
    }
    .nav-brand { font-size: 18px; font-weight: 800; }
    .nav-brand span { color: var(--gold); }
    .nav-links { display: flex; gap: 26px; font-size: 17px; font-weight: 500; align-items: center; }
    .nav-links a { white-space: nowrap; }
    .nav-links a:hover { color: var(--gold); }
    /* English: compact nav to fit longer text */
    html[lang="en"] .nav-links { gap: 14px; font-size: 13px; }
    html[lang="en"] .nav-cta  { font-size: 13px; padding: 8px 14px; }
    /* Nav dropdown */
    .nav-dropdown { position: relative; display: flex; align-items: center; }
    .nav-dropdown-trigger { display: flex; align-items: center; gap: 3px; cursor: pointer; color: inherit; transition: color .15s; white-space: nowrap; }
    .nav-dropdown-trigger:hover { color: var(--gold); }
    .nav-dropdown-arrow { font-size: 9px; line-height: 1; transition: transform .2s; display: inline-block; }
    .nav-dropdown:hover .nav-dropdown-arrow { transform: rotate(180deg); }
    .nav-dropdown-menu {
      display: none; position: absolute; top: calc(100% + 14px); left: -16px;
      background: white; border: 1px solid rgba(0,0,0,.08);
      border-radius: 10px; padding: 6px 0; min-width: 230px;
      box-shadow: 0 8px 32px rgba(0,0,0,.10); z-index: 200;
    }
    .nav-dropdown-menu::before {
      content: ''; position: absolute; top: -14px; left: 0; right: 0; height: 14px;
    }
    .nav-dropdown:hover .nav-dropdown-menu { display: block; }
    .nav-dropdown-menu a {
      display: block; padding: 10px 18px; font-size: 13px; font-weight: 500;
      color: var(--dark); white-space: nowrap; transition: color .15s, background .15s;
    }
    .nav-dropdown-menu a:hover { color: var(--gold); background: var(--gold-bg); }
    .nav-cta {
      background: var(--gold); color: white;
      padding: 9px 20px; border-radius: 4px;
      font-size: 14px; font-weight: 600;
      white-space: nowrap;
      transition: background .2s;
    }
    .nav-cta:hover { background: #a37210; }
    .lang-toggle {
      display: flex; align-items: center; gap: 0;
      background: none;
      border: 1.5px solid rgba(0,0,0,.18);
      border-radius: 6px;
      padding: 0;
      cursor: pointer;
      font-family: var(--font-body);
      transition: border-color .2s;
      margin-right: 6px;
      overflow: hidden;
    }
    .lang-toggle:hover { border-color: var(--gold); }
    .lang-opt {
      padding: 5px 10px;
      font-size: 12.5px; font-weight: 700; letter-spacing: .03em;
      color: rgba(0,0,0,.3);
      transition: color .2s, background .2s;
      line-height: 1;
    }
    .lang-opt.active {
      color: #fff;
      background: var(--dark);
    }
    .lang-toggle:hover .lang-opt.active { background: var(--gold); }
    .lang-sep {
      font-size: 11px; color: rgba(0,0,0,.18);
      line-height: 1; user-select: none;
    }
    .nav-hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: 36px; height: 36px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 6px 4px;
      border-radius: 4px;
    }
    .nav-hamburger span {
      display: block;
      width: 22px; height: 2px;
      background: var(--dark);
      border-radius: 2px;
      transition: transform 0.22s ease-out, opacity 0.22s ease-out;
    }
    .nav-hamburger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
    .nav-hamburger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
    .nav-hamburger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
    .mobile-nav {
      display: none;
      position: fixed;
      top: 64px; left: 0; right: 0;
      z-index: 99;
      background: rgba(255,255,255,.97);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid #e5e5e5;
      padding: 8px 24px 16px;
      flex-direction: column;
    }
    .mobile-nav.open { display: flex; }
    .mobile-nav a {
      padding: 13px 0;
      font-size: 15px; font-weight: 500;
      border-bottom: 1px solid rgba(0,0,0,.07);
      transition: color .15s;
    }
    .mobile-nav a:last-child { border-bottom: none; }
    .mobile-nav a:hover, .mobile-nav a:focus-visible { color: var(--orange); }
    @media(max-width:768px){
      .nav-links { display: none; }
      .nav-hamburger { display: flex; }
    }

    /* ── Hero ── */
    #hero {
      margin-top: 64px;
      background-color: oklch(0.12 0.04 42);
      background-image:
        linear-gradient(to right, oklch(0.08 0.04 42 / 0.94) 0%, oklch(0.12 0.04 42 / 0.82) 55%, oklch(0.10 0.04 42 / 0.60) 100%),
        url('images/support-research.jpg');
      background-size: cover;
      background-position: center 40%;
      min-height: 95vh;
      display: flex; align-items: center;
      position: relative; overflow: hidden;
    }
    /* Bold orange vertical accent bar */
    #hero::before {
      content: '';
      position: absolute;
      top: 0; right: 0;
      width: clamp(180px, 28vw, 420px);
      height: 100%;
      background: var(--orange);
      clip-path: polygon(18% 0, 100% 0, 100% 100%, 0% 100%);
      opacity: 0.22;
    }
    /* Large watermark text */
    .hero-watermark {
      position: absolute;
      right: -40px; bottom: -60px;
      font-family: var(--font-display);
      font-size: clamp(120px, 18vw, 260px);
      font-weight: 800;
      color: white;
      opacity: 0.055;
      letter-spacing: -0.04em;
      line-height: 1;
      pointer-events: none;
      user-select: none;
      white-space: nowrap;
    }
    .hero-content { position: relative; z-index: 2; padding: 80px 0; }
    .hero-eyebrow {
      font-size: 11px; letter-spacing: 5px; color: var(--gold-light);
      text-transform: uppercase; font-weight: 700; margin-bottom: 28px;
      display: flex; align-items: center; gap: 12px;
    }
    .hero-eyebrow::before {
      content: '';
      display: inline-block;
      width: 40px; height: 1px;
      background: var(--gold);
    }
    .hero-title {
      font-size: clamp(52px, 9vw, 104px);
      font-weight: 900;
      color: var(--white);
      line-height: 1.0;
      letter-spacing: -0.02em;
      margin-bottom: 16px;
    }
    .hero-title span { color: var(--gold-light); }
    .hero-title-en {
      font-size: clamp(13px, 1.8vw, 18px);
      color: rgba(255,255,255,.38);
      font-weight: 400;
      letter-spacing: 3px;
      text-transform: uppercase;
      margin-bottom: 40px;
    }
    .hero-desc {
      font-size: 17px; color: rgba(255,255,255,.65);
      max-width: 520px; margin-bottom: 48px; line-height: 1.85;
    }
    .hero-tagline {
      display: flex; gap: 24px; margin-bottom: 44px;
    }
    .hero-tagline-item {
      display: flex; align-items: center; gap: 8px;
      font-size: 13px; color: rgba(255,255,255,.6);
      letter-spacing: 1px; text-transform: uppercase;
    }
    .hero-tagline-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: var(--gold);
    }
    .hero-btns { display: flex; gap: 16px; flex-wrap: wrap; }
    .btn-primary {
      background: var(--gold); color: white;
      padding: 14px 32px; border-radius: 4px;
      font-size: 15px; font-weight: 700;
      transition: background .2s;
    }
    .btn-primary:hover { background: #a37210; }
    .btn-outline {
      border: 1.5px solid rgba(255,255,255,.4); color: white;
      padding: 14px 32px; border-radius: 4px;
      font-size: 15px; font-weight: 600;
      transition: border-color .2s;
    }
    .btn-outline:hover { border-color: var(--gold); color: var(--gold-light); }
    .hero-stats {
      margin-top: 64px;
      display: flex; gap: 48px; flex-wrap: wrap;
    }
    .hero-stat-num {
      font-size: 42px; font-weight: 900;
      color: var(--gold-light);
    }
    .hero-stat-label {
      font-size: 13px; color: rgba(255,255,255,.6); margin-top: 4px;
    }

    /* ── About ── */
    #about .about-text { font-size: 16px; color: var(--gray); line-height: 1.9; }
    .about-text p { margin-bottom: 18px; }
    .university-logos {
      display: flex; flex-wrap: wrap; gap: 16px;
      align-items: center; margin-top: 32px;
    }
    .uni-badge {
      background: white;
      border: 1.5px solid #e0e0e0;
      border-radius: 6px;
      padding: 10px 18px;
      font-size: 13px; font-weight: 700;
      color: var(--dark);
      white-space: nowrap;
    }
    .mission-cards { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 24px; margin-top: 48px; }
    .mission-card {
      background: var(--white);
      border-radius: 10px;
      padding: 32px 28px;
      box-shadow: 0 2px 16px rgba(0,0,0,.06);
      border: 1px solid oklch(0.90 0.025 50);
      transition: box-shadow 0.25s ease-out, transform 0.25s ease-out;
    }
    .mission-card:hover {
      box-shadow: 0 6px 28px rgba(0,0,0,.10);
      transform: translateY(-2px);
    }
    .mission-card-icon {
      width: 44px; height: 44px;
      background: var(--gold-bg);
      border-radius: 50%;
      display: flex; align-items: center; justify-content: center;
      font-size: 20px; margin-bottom: 18px;
    }
    .mission-card h4 { font-size: 16px; margin-bottom: 10px; }
    .mission-card p { font-size: 14px; color: var(--gray); line-height: 1.7; }
    @media(max-width:900px){ .mission-cards { grid-template-columns: 1fr; } }

    /* ── Mission Manifesto Section ── */
    .section--mission-manifesto {
      background: var(--white);
      padding: 96px 0 80px;
    }
    .mission-split-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 64px;
      align-items: center;
      margin-bottom: 64px;
    }
    .mission-split-photo {
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 4 / 5;
    }
    .mission-split-content { }
    .mission-manifesto-lead {
      font-size: 16px;
      font-weight: 400;
      color: var(--gray);
      line-height: 1.9;
      margin: 0 0 0 0;
    }
    .section--mission-manifesto .mission-cards { margin-top: 0; }
    @media(max-width:900px) {
      .mission-split-layout { grid-template-columns: 1fr; gap: 32px; }
      .mission-split-photo { aspect-ratio: 16/9; }
    }

    /* ── Stats Band ── */
    .stats-band {
      background: var(--dark);
      padding: 0;
      overflow: hidden;
    }
    .stats-inner {
      max-width: 1200px; margin: 0 auto; padding: 0 24px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
    }
    .stat-item {
      color: white;
      padding: 56px 32px;
      position: relative;
    }
    .stat-item::after {
      content: '';
      position: absolute; right: 0; top: 20%; bottom: 20%;
      width: 1px; background: rgba(255,255,255,.08);
    }
    .stat-item:last-child::after { display: none; }
    .stat-num {
      font-family: var(--font-body);
      font-size: clamp(56px, 7vw, 96px);
      font-weight: 800;
      line-height: 1;
      color: white;
      letter-spacing: -0.02em;
      white-space: nowrap;
    }
    .stat-num sup { font-size: .45em; color: var(--gold-light); vertical-align: .2em; }
    .stat-label {
      font-size: 12px;
      color: rgba(255,255,255,.35);
      margin-top: 14px;
      letter-spacing: 1.5px;
      text-transform: uppercase;
    }
    @media(max-width:700px) {
      .stats-inner { grid-template-columns: 1fr 1fr; }
      .stat-item::after { display: none; }
      .stat-item { border-bottom: 1px solid rgba(255,255,255,.06); }
    }

    /* ── Disciplines ── */
    .disc-grid {
      display: grid; grid-template-columns: repeat(5,1fr); gap: 16px;
      margin-top: 40px;
    }
    .disc-card {
      background: white;
      border-radius: 10px;
      padding: 28px 20px;
      text-align: center;
      box-shadow: 0 2px 12px rgba(0,0,0,.07);
      transition: transform .22s ease-out, box-shadow .22s ease-out;
      cursor: pointer;
    }
    .disc-card:hover { transform: translateY(-4px); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
    .disc-card--dark {
      background: oklch(0.22 0.015 50);
      border: 1px solid oklch(0.30 0.018 50);
      box-shadow: none;
    }
    .disc-card--dark .disc-title { color: oklch(0.92 0.015 50); }
    .disc-card--dark .disc-en { color: oklch(0.58 0.025 50); }
    .disc-grid--dark .disc-card { padding: 24px 16px; }
    html[lang="en"] .disc-card--dark .disc-en { font-size: 15px; font-weight: 700; color: white; letter-spacing: 0.3px; }
    .disc-card--dark .disc-num { color: var(--orange); opacity: 0.5; }
    .disc-card--dark:hover {
      background: oklch(0.26 0.018 50);
      border-color: oklch(0.38 0.025 50);
      box-shadow: none;
    }
    .disc-icon { font-size: 32px; margin-bottom: 12px; }
    .disc-title { font-size: 14px; font-weight: 700; margin-bottom: 6px; }
    .disc-en { font-size: 11px; color: var(--gray); letter-spacing: .5px; }
    .disc-num {
      font-family: var(--font-display);
      font-size: 40px;
      font-weight: 800;
      color: var(--gold);
      opacity: 0.3;
      line-height: 1;
      margin-bottom: 10px;
      letter-spacing: -0.02em;
    }
    @media(max-width:900px){ .disc-grid { grid-template-columns: repeat(2,1fr); } }
    @media(max-width:500px){ .disc-grid { grid-template-columns: 1fr; } }

    /* ── Programs ── */
    /* program-tabs removed — all three programs now display inline */

    .program-card {
      background: white;
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,.08);
    }
    .program-card-header {
      background: var(--dark);
      padding: 36px 40px;
      color: white;
    }
    .program-card-header .tag-white {
      display: inline-block;
      background: rgba(255,255,255,.25);
      color: white;
      font-size: 12px; letter-spacing: 1px; text-transform: uppercase;
      padding: 4px 11px; border-radius: 2px; margin-bottom: 12px;
    }
    .program-card-header h3 { font-size: clamp(24px, 3.5vw, 36px); font-weight: 900; margin-bottom: 6px; font-family: var(--font-display); letter-spacing: -0.02em; }
    .program-card-header .en { font-size: 16px; opacity: .8; }
    .program-card-body { padding: 44px; }
    .program-desc { font-size: 17px; color: var(--gray); margin-bottom: 32px; line-height: 1.85; }
    .program-section-title {
      font-size: 18px; letter-spacing: 2px; text-transform: uppercase;
      color: var(--gold); font-weight: 700; margin-bottom: 16px;
    }
    .outcomes-list { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .outcomes-list li {
      display: flex; gap: 10px; align-items: flex-start;
      font-size: 14px; color: var(--dark);
    }
    .outcomes-list .num {
      min-width: 24px; height: 24px;
      background: var(--gold); color: white;
      border-radius: 50%; font-size: 12px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
    }
    @media(max-width:700px){ .outcomes-list { grid-template-columns: 1fr; } }
    .advantages-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
    .adv-item {
      background: var(--gold-bg);
      border-radius: 8px; padding: 24px;
    }
    .adv-item h5 { font-size: 17px; font-weight: 700; color: var(--gold); margin-bottom: 8px; }
    .adv-item p { font-size: 15px; color: var(--gray); line-height: 1.75; }
    @media(max-width:700px){ .advantages-grid { grid-template-columns: 1fr; } }
    .phases {
      display: flex; gap: 16px; margin-top: 20px; flex-wrap: wrap;
    }
    .phase-card {
      flex: 1; min-width: 160px;
      background: var(--gold-bg);
      border-radius: 4px; padding: 20px 18px;
      border: 1px solid oklch(0.88 0.06 46);
    }
    .phase-card h5 { font-size: 13px; font-weight: 700; color: var(--gold); margin-bottom: 8px; }
    .phase-card p { font-size: 13px; color: var(--gray); line-height: 1.6; }

    /* ── Programs sticky layout ── */
    .programs-layout {
      max-width: 1200px;
      margin: 0 auto;
      padding: 80px 24px;
      display: flex;
      gap: 56px;
      align-items: flex-start;
    }
    .programs-sidenav {
      width: 240px;
      flex-shrink: 0;
      position: sticky;
      top: 88px;
    }
    /* ══════════════════════════════════════
       School page components
    ══════════════════════════════════════ */

    /* 合作价值: split layout */
    .school-value-layout {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 72px;
      align-items: center;
    }
    .school-value-photo {
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 4 / 5;
    }
    .school-value-photo img {
      width: 100%; height: 100%;
      object-fit: cover; object-position: center;
      display: block;
    }
    .school-value-list {
      display: flex;
      flex-direction: column;
      gap: 0;
    }
    .school-value-item {
      display: grid;
      grid-template-columns: 48px 1fr;
      gap: 16px;
      align-items: start;
      padding: 22px 0;
      border-bottom: 1px solid oklch(0.90 0.018 50);
    }
    .school-value-item:first-child { border-top: 1px solid oklch(0.90 0.018 50); }
    .school-value-num {
      font-family: var(--font-display);
      font-size: 28px;
      font-weight: 800;
      color: var(--orange);
      opacity: 0.3;
      line-height: 1;
      padding-top: 2px;
    }
    .school-value-title {
      font-size: 18px;
      font-weight: 700;
      color: var(--dark);
      margin-bottom: 4px;
    }
    .school-value-desc {
      font-size: 16px;
      color: var(--gray);
      line-height: 1.7;
    }
    @media(max-width:900px) {
      .school-value-layout { grid-template-columns: 1fr; gap: 40px; }
      .school-value-photo { aspect-ratio: 16/9; }
    }

    /* 合作模式: disc-row style on dark bg */
    .school-mode-list {
      margin-top: 48px;
      border-top: 1px solid oklch(0.22 0.015 45);
    }
    .school-mode-row {
      display: grid;
      grid-template-columns: 56px 1fr auto;
      gap: 0 24px;
      align-items: center;
      padding: 28px 0;
      border-bottom: 1px solid oklch(0.22 0.015 45);
      transition: background .2s ease-out;
    }
    .school-mode-row:hover { background: oklch(0.16 0.016 45); }
    .school-mode-num {
      font-family: var(--font-display);
      font-size: 36px;
      font-weight: 800;
      color: var(--orange);
      opacity: 0.3;
      line-height: 1;
    }
    .school-mode-title {
      font-size: 19px;
      font-weight: 700;
      color: white;
      margin-bottom: 5px;
    }
    .school-mode-desc {
      font-size: 16px;
      color: oklch(0.60 0.025 50);
      line-height: 1.7;
    }
    .school-mode-tag {
      font-size: 12px;
      font-weight: 700;
      letter-spacing: .5px;
      color: var(--orange);
      background: oklch(0.20 0.02 45);
      border: 1px solid oklch(0.30 0.03 45);
      padding: 4px 12px;
      border-radius: 3px;
      white-space: nowrap;
    }

    /* 合作模式: two-column layout */
    .school-mode-layout {
      display: grid;
      grid-template-columns: 1fr 380px;
      gap: 64px;
      align-items: stretch;
    }
    .school-mode-left { }
    .school-mode-photo {
      border-radius: 8px;
      overflow: hidden;
      min-height: 400px;
    }
    .school-mode-photo img {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: cover;
      border-radius: 8px;
    }
    @media(max-width:900px) {
      .school-mode-layout { grid-template-columns: 1fr; }
      .school-mode-photo { min-height: 280px; }
    }

    /* 对学校的价值: 4 metrics */
    .school-metrics {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 0;
      margin-top: 56px;
      border: 1px solid oklch(0.90 0.018 50);
      border-radius: 8px;
      overflow: hidden;
    }
    .school-metric {
      padding: 36px 28px;
      border-right: 1px solid oklch(0.90 0.018 50);
    }
    .school-metric:last-child { border-right: none; }
    .school-metric-icon {
      width: 36px; height: 36px;
      color: var(--orange);
      margin-bottom: 20px;
    }
    .school-metric-icon svg { width: 100%; height: 100%; }
    .school-metric-title {
      font-size: 18px;
      font-weight: 800;
      color: var(--dark);
      margin-bottom: 10px;
      line-height: 1.3;
    }
    .school-metric-desc {
      font-size: 15px;
      color: var(--gray);
      line-height: 1.75;
    }
    @media(max-width:900px) {
      .school-metrics { grid-template-columns: 1fr 1fr; }
      .school-metric:nth-child(2) { border-right: none; }
      .school-metric:nth-child(3) { border-top: 1px solid oklch(0.90 0.018 50); border-right: 1px solid oklch(0.90 0.018 50); }
      .school-metric:nth-child(4) { border-top: 1px solid oklch(0.90 0.018 50); border-right: none; }
    }
    @media(max-width:600px) {
      .school-metrics { grid-template-columns: 1fr; }
      .school-metric { border-right: none; border-top: 1px solid oklch(0.90 0.018 50); }
      .school-metric:first-child { border-top: none; }
    }

    /* 适合对象: photo background section */
    .school-audience-photo-section {
      position: relative;
      padding: 96px 0 80px;
      background-image: url('images/school-handshake.jpg');
      background-size: cover;
      background-position: center 40%;
    }
    .school-audience-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(
        to bottom,
        oklch(0.10 0.02 230 / 0.88) 0%,
        oklch(0.08 0.02 230 / 0.92) 100%
      );
    }
    .school-audience-container {
      position: relative;
      z-index: 1;
    }
    .school-audience-top {
      max-width: 640px;
      margin-bottom: 56px;
    }
    .school-audience-intro {
      font-size: 17px;
      color: oklch(0.78 0.02 220);
      line-height: 1.85;
      margin-top: 20px;
      margin-bottom: 0;
    }
    .school-audience-body {
      display: grid;
      grid-template-columns: 320px 1fr;
      gap: 64px;
      align-items: start;
    }
    .school-audience-types { }
    .school-audience-label {
      font-size: 11px;
      letter-spacing: 3px;
      text-transform: uppercase;
      font-weight: 700;
      color: oklch(0.72 0.06 50);
      margin-bottom: 16px;
    }
    .school-audience-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .school-audience-tags span {
      font-size: 15px;
      font-weight: 600;
      color: white;
      background: oklch(1 0 0 / 0.10);
      border: 1px solid oklch(1 0 0 / 0.22);
      padding: 8px 18px;
      border-radius: 4px;
      backdrop-filter: blur(4px);
    }
    .school-scenario-list {
      display: flex;
      flex-direction: column;
      gap: 0;
      border-top: 1px solid oklch(1 0 0 / 0.15);
    }
    .school-scenario {
      display: grid;
      grid-template-columns: 48px 1fr;
      gap: 20px;
      align-items: start;
      padding: 28px 0;
      border-bottom: 1px solid oklch(1 0 0 / 0.15);
    }
    .school-scenario-num {
      font-family: var(--font-display);
      font-size: 32px;
      font-weight: 800;
      color: var(--orange);
      opacity: 0.5;
      line-height: 1;
      padding-top: 3px;
    }
    .school-scenario-title {
      font-size: 17px;
      font-weight: 700;
      color: white;
      margin-bottom: 8px;
    }
    .school-scenario-desc {
      font-size: 16px;
      color: oklch(0.75 0.02 220);
      line-height: 1.75;
    }
    @media(max-width:900px) {
      .school-audience-body { grid-template-columns: 1fr; gap: 40px; }
    }

    .psn-header {
      font-size: 13px;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: oklch(0.62 0.04 50);
      padding: 0 0 16px 16px;
      font-weight: 700;
      border-left: 2px solid oklch(0.88 0.025 50);
    }
    .psn-item {
      display: block;
      padding: 16px 0 16px 16px;
      text-decoration: none;
      border-left: 2px solid oklch(0.88 0.025 50);
      transition: border-color 0.25s ease;
    }
    .psn-item:hover { border-left-color: oklch(0.78 0.08 44); }
    .psn-item.active { border-left-color: var(--gold); }
    .psn-num {
      display: block;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: 1.5px;
      color: oklch(0.72 0.06 44);
      margin-bottom: 6px;
      transition: color 0.25s ease;
    }
    .psn-item.active .psn-num { color: var(--gold); }
    .psn-tag { display: none; }
    .psn-name {
      display: block;
      font-size: 19px;
      font-weight: 700;
      color: oklch(0.55 0.02 50);
      line-height: 1.4;
      transition: color 0.25s ease;
    }
    .psn-item:hover .psn-name { color: oklch(0.28 0.015 45); }
    .psn-item.active .psn-name { color: var(--dark); }
    .psn-sub {
      display: block;
      font-size: 16px;
      color: oklch(0.68 0.02 50);
      margin-top: 4px;
      transition: color 0.25s ease;
    }
    .psn-item.active .psn-sub { color: oklch(0.55 0.03 50); }
    .psn-dot { display: none; }
    .programs-cards {
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 32px;
    }
    @media(max-width: 960px) {
      .programs-sidenav { display: none; }
      .programs-layout { padding: 48px 16px; gap: 0; }
    }


    /* ── Course Example ── */
    .course-card {
      background: white;
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 4px 24px rgba(0,0,0,.08);
    }
    .course-header {
      background: linear-gradient(135deg, oklch(0.09 0.028 42), oklch(0.20 0.042 44));
      padding: 48px 40px;
      color: white;
      position: relative; overflow: hidden;
    }
    .course-header::after {
      content: 'AI';
      position: absolute; right: 40px; top: 50%; transform: translateY(-50%);
      font-size: 120px; font-weight: 900; opacity: .06; letter-spacing: -4px;
    }
    .course-header .tag-gold {
      display: inline-block;
      background: var(--gold); color: white;
      font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
      padding: 4px 12px; border-radius: 2px; margin-bottom: 16px;
    }
    .course-header h3 { font-size: 28px; font-weight: 800; margin-bottom: 6px; }
    .course-header .en { font-size: 15px; opacity: .7; text-transform: uppercase; letter-spacing: 1px; }
    .course-body { padding: 40px; }
    .course-topics {
      display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 12px;
    }
    .topic-chip {
      background: var(--gold-bg);
      border: 1px solid var(--gold-light);
      color: var(--dark);
      padding: 6px 14px; border-radius: 100px;
      font-size: 13px; font-weight: 600;
    }
    .mentors { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 28px; }
    .mentor-card {
      background: var(--white);
      border-radius: 10px;
      padding: 18px;
      box-shadow: 0 2px 12px rgba(0,0,0,.06);
    }
    .mentor-card-head {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 12px;
    }
    .mentor-card-photo {
      width: 60px; height: 60px;
      border-radius: 6px;
      object-fit: cover;
      object-position: center top;
      flex-shrink: 0;
      background: var(--orange);
    }
    .mentor-name { font-size: 15px; font-weight: 800; color: var(--gold); margin-bottom: 3px; }
    .mentor-affil { font-size: 11px; color: var(--gray); margin-bottom: 0; }
    .mentor-points { list-style: none; }
    .mentor-points li {
      font-size: 13px; color: var(--gray);
      padding: 3px 0; display: flex; gap: 8px; align-items: flex-start;
    }
    .mentor-points li::before { content: '◎'; color: var(--gold); font-size: 10px; margin-top: 3px; }
    .research-steps {
      display: flex; gap: 0; margin: 28px 0; overflow: hidden; border-radius: 8px;
    }
    .rStep {
      flex: 1; background: var(--gold-bg);
      padding: 16px 12px; text-align: center;
      font-size: 13px; font-weight: 600; color: var(--dark);
      border-right: 2px solid white;
      position: relative;
    }
    .rStep:last-child { border-right: none; }
    .rStep .rNum {
      width: 24px; height: 24px; border-radius: 50%;
      background: var(--gold); color: white;
      font-size: 11px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 8px;
    }
    @media(max-width:600px){ .mentors { grid-template-columns: 1fr; } .research-steps { flex-wrap: wrap; } }

    /* ── Outcome rows ── */
    .outcome-rows {
      margin-top: 48px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0 48px;
    }
    .outcome-row {
      display: grid;
      grid-template-columns: 56px 40px 1fr;
      gap: 0 20px;
      align-items: center;
      padding: 28px 0;
      border-bottom: 1px solid oklch(0.90 0.018 50);
      position: relative;
    }
    .outcome-row:nth-child(odd):last-child {
      grid-column: 1 / -1;
      max-width: calc(50% - 24px);
    }
    .outcome-row-num {
      font-family: var(--font-display);
      font-size: 36px;
      font-weight: 800;
      color: var(--orange);
      opacity: 0.25;
      line-height: 1;
      flex-shrink: 0;
    }
    .outcome-row-icon svg {
      width: 28px;
      height: 28px;
      color: var(--gold);
      display: block;
    }
    .outcome-row-title {
      font-size: 20px;
      font-weight: 800;
      color: var(--dark);
      margin-bottom: 6px;
    }
    .outcome-row-desc {
      font-size: 17px;
      color: var(--gray);
      line-height: 1.75;
    }
    @media(max-width:800px) {
      .outcome-rows { grid-template-columns: 1fr; }
      .outcome-row:nth-child(odd):last-child { max-width: 100%; }
    }

    /* ── Path — dark split layout ── */
    .section--path-dark {
      background: var(--dark);
      padding: 96px 0;
    }
    .path-split-layout {
      display: grid;
      grid-template-columns: 300px 1fr;
      gap: 80px;
      align-items: start;
    }
    .path-split-header {
      position: sticky;
      top: 100px;
    }
    .path-steps-col {
      position: relative;
      padding-left: 32px;
    }
    .path-vline {
      position: absolute;
      left: 7px;
      top: 10px;
      bottom: 10px;
      width: 1px;
      background: oklch(0.35 0.025 50);
    }
    .path-vitem {
      display: grid;
      grid-template-columns: 48px 1fr;
      gap: 0 24px;
      align-items: start;
      padding-bottom: 52px;
      position: relative;
    }
    .path-vitem:last-child { padding-bottom: 0; }
    .path-vdot {
      position: absolute;
      left: -28px;
      top: 6px;
      width: 14px;
      height: 14px;
      border-radius: 50%;
      background: var(--orange);
      border: 2px solid var(--dark);
      box-shadow: 0 0 0 3px oklch(0.35 0.025 50);
    }
    .path-vnum {
      font-family: var(--font-display);
      font-size: 52px;
      font-weight: 800;
      color: var(--orange);
      opacity: 0.2;
      line-height: 1;
      padding-top: 2px;
    }
    .path-vtitle {
      font-size: 20px;
      font-weight: 800;
      color: white;
      margin-bottom: 10px;
      line-height: 1.3;
    }
    .path-vdesc {
      font-size: 15px;
      color: oklch(0.68 0.025 50);
      line-height: 1.8;
      margin-bottom: 14px;
    }
    .path-vtags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
    }
    .path-vtags span {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .4px;
      color: var(--orange);
      background: oklch(0.26 0.02 50);
      border: 1px solid oklch(0.34 0.03 50);
      padding: 3px 10px;
      border-radius: 3px;
    }
    @media(max-width:900px) {
      .path-split-layout { grid-template-columns: 1fr; gap: 40px; }
      .path-split-header { position: static; }
    }

    /* ── Path flow (legacy) ── */
    .path-flow {
      display: grid; grid-template-columns: repeat(4, 1fr);
      background: white; border-radius: 16px;
      box-shadow: 0 4px 24px rgba(0,0,0,.08);
      overflow: hidden;
    }
    .path-step {
      padding: 40px 24px; text-align: center;
      border-right: 1px solid oklch(0.92 0.018 50);
      position: relative;
    }
    .path-step:last-child { border-right: none; }
    .path-step::after {
      content: '→';
      position: absolute; right: -13px; top: 50%;
      transform: translateY(-50%);
      color: var(--gold); font-size: 18px; z-index: 1;
    }
    .path-step:last-child::after { display: none; }
    .path-step-num {
      font-size: 10px; letter-spacing: 3px; font-weight: 700;
      color: var(--gold); margin-bottom: 14px; font-family: var(--font-display);
    }
    .path-step-icon { font-size: 30px; margin-bottom: 12px; }
    .path-step-label {
      font-size: 15px; font-weight: 700; color: var(--dark);
      margin-bottom: 8px; line-height: 1.35;
    }
    .path-step-sub { font-size: 12px; color: var(--gray); line-height: 1.65; }
    @media(max-width:800px){
      .path-flow { grid-template-columns: 1fr 1fr; }
      .path-step:nth-child(2) { border-right: none; }
      .path-step:nth-child(2)::after { display: none; }
      .path-step:nth-child(3) { border-top: 1px solid oklch(0.92 0.018 50); }
      .path-step:nth-child(4) { border-top: 1px solid oklch(0.92 0.018 50); }
    }
    @media(max-width:500px){
      .path-flow { grid-template-columns: 1fr; }
      .path-step { border-right: none; border-top: 1px solid oklch(0.92 0.018 50); }
      .path-step:first-child { border-top: none; }
      .path-step::after { display: none; }
    }

    /* ── Outcomes Hero Layout + Scrolling Ticker ── */
    .page-hero-inner {
      display: flex;
      align-items: center;
      gap: 56px;
      position: relative;
      z-index: 2;
    }
    .page-hero-inner .page-hero-content {
      flex: 1;
      min-width: 0;
    }
    .outcomes-ticker {
      width: 480px;
      flex-shrink: 0;
      border: 1px solid oklch(1 0 0 / 0.12);
      border-radius: 10px;
      overflow: hidden;
      background: oklch(1 0 0 / 0.06);
      backdrop-filter: blur(8px);
    }
    .ticker-header {
      background: oklch(1 0 0 / 0.08);
      border-bottom: 1px solid oklch(1 0 0 / 0.10);
      padding: 16px 20px 14px;
    }
    .ticker-title {
      font-size: 28px;
      font-weight: 700;
      letter-spacing: 0.03em;
      color: var(--white);
      font-family: var(--font-display);
    }
    .ticker-subtitle {
      font-size: 17px;
      color: oklch(0.72 0.06 50);
      margin-top: 6px;
      letter-spacing: 0.01em;
    }
    .ticker-cols {
      display: grid;
      grid-template-columns: 66px 66px 1fr;
      padding: 7px 20px;
      background: oklch(1 0 0 / 0.05);
      border-bottom: 1px solid oklch(1 0 0 / 0.10);
    }
    .ticker-cols span {
      font-size: 12px;
      letter-spacing: 0.08em;
      font-weight: 700;
      color: oklch(0.65 0.04 50);
      text-transform: uppercase;
    }
    .ticker-window {
      height: 246px;
      overflow: hidden;
      position: relative;
    }
    .ticker-window::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 44px;
      background: linear-gradient(to bottom, transparent, oklch(0.14 0.035 42 / 0.85));
      pointer-events: none;
      z-index: 1;
    }
    .ticker-track {
      display: flex;
      flex-direction: column;
      will-change: transform;
    }
    .ticker-row {
      display: grid;
      grid-template-columns: 66px 66px 1fr;
      padding: 8px 20px;
      border-bottom: 1px solid oklch(1 0 0 / 0.07);
      font-size: 16px;
      line-height: 1.45;
      min-height: 41px;
      align-items: center;
    }
    .ticker-name {
      font-weight: 700;
      color: var(--white);
      white-space: nowrap;
    }
    .ticker-edu {
      color: var(--orange-light);
      font-weight: 600;
      font-size: 15px;
    }
    .ticker-topic {
      color: oklch(0.72 0.025 50);
      font-size: 16px;
      line-height: 1.45;
    }
    @media (max-width: 960px) {
      .page-hero-inner { flex-direction: column; align-items: flex-start; gap: 32px; }
      .outcomes-ticker { width: 100%; max-width: 460px; }
    }

    /* ── Profile Case Cards ── */
    .profile-case-list {
      display: flex;
      flex-direction: column;
      gap: 0;
      margin-top: 56px;
    }
    .profile-case {
      display: grid;
      grid-template-columns: 220px 1fr 300px;
      gap: 0;
      border-top: 1px solid oklch(0.90 0.018 50);
      padding: 52px 0;
      align-items: start;
    }
    .profile-case:last-child { border-bottom: 1px solid oklch(0.90 0.018 50); }
    .profile-case--alt { background: oklch(0.975 0.012 50); margin: 0 -24px; padding: 52px 24px; }
    .profile-case-left {
      padding-right: 40px;
      display: flex;
      flex-direction: column;
      gap: 20px;
    }
    .profile-case-photo {
      width: 100%;
      aspect-ratio: 3 / 4;
      object-fit: cover;
      object-position: center top;
      border-radius: 6px;
      display: block;
    }
    .profile-case-tag {
      font-size: 10px;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      font-weight: 700;
      color: var(--orange);
      margin-bottom: 6px;
    }
    .profile-case-name {
      font-family: var(--font-display);
      font-size: 28px;
      font-weight: 800;
      color: var(--dark);
      line-height: 1;
      margin-bottom: 4px;
    }
    .profile-case-field {
      font-size: 13px;
      color: var(--gray);
    }
    .profile-case-quote {
      margin: 0;
      padding: 14px 16px;
      border-top: 2px solid var(--orange);
      font-size: 13px;
      font-style: italic;
      color: var(--gray);
      line-height: 1.7;
      background: oklch(0.97 0.015 50);
      border-radius: 0 0 4px 4px;
    }
    .profile-case-mid {
      display: flex;
      flex-direction: column;
      gap: 20px;
      padding: 0 40px;
    }
    .profile-case-outcome-col {
      border-radius: 6px;
      overflow: hidden;
      align-self: stretch;
    }
    .profile-case-outcome {
      width: 100%;
      height: auto;
      display: block;
      object-fit: contain;
    }
    .profile-case-right {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }
    .profile-case-badges {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }
    .profile-case-badges span {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .3px;
      color: var(--dark);
      background: white;
      border: 1px solid oklch(0.86 0.025 50);
      padding: 4px 12px;
      border-radius: 3px;
    }
    .profile-case-desc {
      font-size: 15px;
      color: var(--gray);
      line-height: 1.85;
      margin: 0;
    }
    .profile-case-milestones {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 10px;
    }
    .profile-case-milestones li {
      font-size: 14px;
      color: var(--dark);
      font-weight: 600;
      padding-left: 20px;
      position: relative;
      line-height: 1.55;
    }
    .profile-case-milestones li::before {
      content: '';
      position: absolute;
      left: 0;
      top: 8px;
      width: 8px;
      height: 2px;
      background: var(--orange);
    }
    .profile-case-result-text {
      font-size: 14px;
      color: var(--gray);
      line-height: 1.75;
      padding: 16px 20px;
      background: oklch(0.94 0.022 50);
      border-radius: 4px;
    }
    .profile-case-result-text strong {
      color: var(--dark);
      display: block;
      font-size: 17px;
      font-weight: 800;
      line-height: 1.35;
      margin-top: 4px;
    }
    @media(max-width:1000px) {
      .profile-case { grid-template-columns: 180px 1fr; }
      .profile-case-outcome-col { display: none; }
      .profile-case-mid { padding: 0 28px; }
    }
    @media(max-width:700px) {
      .profile-case { grid-template-columns: 1fr; padding: 36px 0; }
      .profile-case-left { flex-direction: row; flex-wrap: wrap; padding-right: 0; padding-bottom: 20px; gap: 16px; }
      .profile-case-photo { width: 90px; aspect-ratio: 1; border-radius: 50%; }
      .profile-case-mid { padding: 0; }
    }

    /* ── Cases (legacy) ── */
    .case-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 32px; }
    .case-card {
      background: white; border-radius: 12px;
      box-shadow: 0 4px 24px rgba(0,0,0,.08);
      overflow: hidden;
    }
    .case-header {
      background: var(--gold); padding: 28px 30px; color: white;
      display: flex; align-items: center; gap: 20px;
    }
    .case-avatar {
      width: 60px; height: 60px; border-radius: 50%;
      background: rgba(255,255,255,.25);
      display: flex; align-items: center; justify-content: center;
      font-size: 24px; font-weight: 900; color: white; flex-shrink: 0;
    }
    .case-name { font-size: 28px; font-weight: 900; font-family: var(--font-display); letter-spacing: -0.01em; }
    .case-path { font-size: 12px; opacity: .8; margin-top: 2px; }
    .case-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
    .case-badge {
      background: rgba(255,255,255,.2);
      font-size: 11px; padding: 3px 10px; border-radius: 100px;
    }
    .case-body { padding: 28px 30px; }
    .case-body p { font-size: 14px; color: var(--gray); line-height: 1.8; margin-bottom: 20px; }
    .milestones {
      display: flex; gap: 12px; margin-bottom: 20px; flex-wrap: wrap;
    }
    .milestone {
      flex: 1; min-width: 100px;
      background: var(--gold-bg);
      border-radius: 8px; padding: 14px 12px;
      text-align: center;
    }
    .milestone .m-num {
      width: 22px; height: 22px; border-radius: 50%;
      background: var(--gold); color: white;
      font-size: 11px; font-weight: 700;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 8px;
    }
    .milestone p { font-size: 12px; color: var(--dark); font-weight: 600; margin: 0; }
    .result-banner {
      background: var(--dark); color: white;
      border-radius: 8px; padding: 16px 20px;
      font-size: 14px; font-weight: 600;
    }
    .result-banner span { color: var(--gold-light); }
    .case-flow {
      display: flex; gap: 0; margin-top: 20px;
      background: var(--light); border-radius: 8px; overflow: hidden;
    }
    .flow-step {
      flex: 1; padding: 10px 8px;
      text-align: center; font-size: 12px; font-weight: 600;
      border-right: 1px solid white; color: var(--gray);
      position: relative;
    }
    .flow-step:last-child { border-right: none; }
    .flow-step::after {
      content: '→';
      position: absolute; right: -7px; top: 50%;
      transform: translateY(-50%);
      color: var(--gold); font-size: 12px; z-index: 1;
    }
    .flow-step:last-child::after { display: none; }
    @media(max-width:800px){ .case-grid { grid-template-columns: 1fr; } }

    /* ── Contact / Footer ── */
    #contact {
      background-color: oklch(0.15 0.04 42);
      background-image:
        radial-gradient(ellipse 55% 70% at 70% 50%, oklch(0.66 0.19 44 / 0.08), transparent),
        radial-gradient(circle at center, oklch(1 0 0 / 0.05) 1px, transparent 1px);
      background-size: 100% 100%, 28px 28px;
      color: white;
      padding: 80px 0;
    }
    .contact-inner {
      display: grid; grid-template-columns: 1fr 1fr; gap: 64px;
      align-items: start;
    }
    .contact-brand { font-size: 28px; font-weight: 900; margin-bottom: 8px; }
    .contact-brand span { color: var(--gold-light); }
    .contact-en { font-size: 12px; letter-spacing: 3px; color: rgba(255,255,255,.4); text-transform: uppercase; margin-bottom: 24px; }
    .contact-desc { font-size: 14px; color: rgba(255,255,255,.6); line-height: 1.8; margin-bottom: 32px; }
    .contact-info { display: flex; flex-direction: column; gap: 14px; }
    .contact-row {
      display: flex; gap: 12px; align-items: flex-start;
      font-size: 14px; color: rgba(255,255,255,.75);
    }
    .contact-row-icon {
      width: 32px; height: 32px; border-radius: 6px;
      background: rgba(200,148,26,.25);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; font-size: 14px;
    }
    .contact-form { display: flex; flex-direction: column; gap: 14px; }
    .contact-form input, .contact-form textarea {
      background: rgba(255,255,255,.07);
      border: 1px solid rgba(255,255,255,.15);
      border-radius: 6px; padding: 14px 16px;
      color: white; font-size: 14px;
      font-family: inherit;
      transition: border-color .2s;
    }
    .contact-form input:focus, .contact-form textarea:focus {
      outline: none; border-color: var(--gold);
    }
    .contact-form input::placeholder, .contact-form textarea::placeholder { color: rgba(255,255,255,.3); }
    .contact-form textarea { height: 120px; resize: vertical; }
    .contact-form button {
      background: var(--gold); color: white;
      border: none; border-radius: 6px;
      padding: 14px; font-size: 15px; font-weight: 700;
      cursor: pointer; transition: background .2s;
    }
    .contact-form button:hover { background: #a37210; }
    @media(max-width:800px){ .contact-inner { grid-template-columns: 1fr; } }

    footer {
      background: oklch(0.07 0.015 42);
      border-top: 1px solid oklch(0.66 0.19 44 / 0.35);
      color: rgba(255,255,255,.4);
      padding: 24px; text-align: center; font-size: 13px;
    }

    /* program tab keyboard styles removed */

    /* ── Comparison List (problem ✗ vs solution ✓) ── */
    .cmp-list {
      display: flex;
      flex-direction: column;
      gap: 0;
      margin-top: 8px;
    }
    .cmp-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      border-bottom: 1px solid oklch(0.91 0.018 50);
      padding: 24px 0;
    }
    .cmp-row:first-child { padding-top: 8px; }
    .cmp-row:last-child { border-bottom: none; }
    .cmp-cell {
      display: flex;
      gap: 16px;
      align-items: flex-start;
      padding: 0 28px 0 0;
    }
    .cmp-cell:last-child { padding: 0 0 0 28px; border-left: 1px solid oklch(0.91 0.018 50); }
    .cmp-icon {
      width: 40px; height: 40px;
      border-radius: 7px;
      display: flex; align-items: center; justify-content: center;
      font-size: 18px; font-weight: 900;
      flex-shrink: 0;
      margin-top: 2px;
    }
    .cmp-icon--no  { background: oklch(0.55 0.18 25); color: white; }
    .cmp-icon--yes { background: var(--orange); color: white; }
    .cmp-text { display: flex; flex-direction: column; gap: 5px; }
    .cmp-title {
      font-size: 19px; font-weight: 800;
      color: var(--dark); line-height: 1.3;
    }
    .cmp-desc {
      font-size: 18px; color: var(--gray);
      line-height: 1.75;
    }
    @media(max-width:700px){
      .cmp-row { grid-template-columns: 1fr; gap: 16px; }
      .cmp-cell:last-child { padding: 16px 0 0; border-left: none; border-top: 1px solid oklch(0.91 0.018 50); }
    }

    /* ── Comparison Table ── */
    .comparison-wrap { overflow-x: auto; margin-top: 40px; }
    .comparison-table {
      width: 100%; border-collapse: collapse;
      border-radius: 8px; overflow: hidden;
      box-shadow: 0 2px 20px rgba(0,0,0,.07);
      border: 1px solid oklch(0.90 0.018 50);
    }
    .comparison-table thead tr {
      background: var(--dark); color: white;
    }
    .comparison-table th {
      padding: 20px 24px; text-align: left; font-size: 13px;
      font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
    }
    .comparison-table th:first-child { width: 22%; color: rgba(255,255,255,.55); }
    .comparison-table th.col-us {
      color: var(--orange-light);
    }
    .comparison-table th.col-other { color: rgba(255,255,255,.45); }
    .comparison-table tbody tr { border-bottom: 1px solid oklch(0.92 0.018 50); }
    .comparison-table tbody tr:last-child { border-bottom: none; }
    .comparison-table tbody tr:nth-child(odd) { background: white; }
    .comparison-table tbody tr:nth-child(even) { background: oklch(0.975 0.018 50); }
    .comparison-table tbody tr:hover { background: oklch(0.97 0.035 50); }
    .comparison-table td {
      padding: 18px 24px; font-size: 14px; line-height: 1.65;
      vertical-align: top; color: var(--gray);
    }
    .comparison-table td:first-child {
      font-weight: 700; color: var(--dark);
      font-size: 13px; letter-spacing: 0.2px;
    }
    .comparison-table td.col-us { color: oklch(0.28 0.015 45); font-weight: 500; }
    .comparison-table td.col-other { color: oklch(0.68 0.015 50); }
    .check {
      display: inline-block;
      width: 18px; height: 18px;
      background: var(--orange);
      color: white;
      font-size: 11px; font-weight: 900;
      border-radius: 50%;
      text-align: center; line-height: 18px;
      margin-right: 6px;
      flex-shrink: 0;
      vertical-align: middle;
    }
    .cross {
      display: inline-block;
      width: 18px; height: 18px;
      background: oklch(0.88 0.01 50);
      color: oklch(0.65 0.015 50);
      font-size: 11px; font-weight: 900;
      border-radius: 50%;
      text-align: center; line-height: 18px;
      margin-right: 6px;
      flex-shrink: 0;
      vertical-align: middle;
    }

    /* ════════════════════════════════════════════════
       COURSE CATALOG PAGE (catalog.html)
       ════════════════════════════════════════════════ */

    /* ── Page Hero: catalog additions ── */
    body.catalog-page .page-hero::after {
      content: '';
      position: absolute; inset: 0;
      backdrop-filter: blur(4px);
      -webkit-backdrop-filter: blur(4px);
      z-index: 0;
      pointer-events: none;
    }
    body.catalog-page .page-hero-content {
      max-width: 1200px; margin: 0 auto; padding: 0 24px;
    }
    .page-hero-watermark {
      position: absolute; right: -20px; bottom: -40px;
      font-family: var(--font-display);
      font-size: clamp(100px, 15vw, 200px);
      font-weight: 800; color: white; opacity: 0.03;
      letter-spacing: -0.04em; line-height: 1;
      pointer-events: none; user-select: none; white-space: nowrap;
    }
    .page-hero-breadcrumb {
      font-size: 12px; letter-spacing: 2px; color: rgba(255,255,255,.4);
      text-transform: uppercase; margin-bottom: 20px;
      display: flex; align-items: center; gap: 8px;
    }
    .page-hero-breadcrumb a { color: rgba(255,255,255,.4); transition: color .15s; }
    .page-hero-breadcrumb a:hover { color: var(--gold-light); }
    .page-hero-breadcrumb span { color: var(--gold-light); }
    .page-hero h1 em { color: var(--gold-light); font-style: normal; }
    .page-hero-stats { display: flex; gap: 40px; flex-wrap: wrap; }
    .page-hero-stat-num {
      font-family: var(--font-body);
      font-size: 32px; font-weight: 800; color: var(--gold-light);
    }
    .page-hero-stat-label { font-size: 12px; color: rgba(255,255,255,.4); margin-top: 2px; }

    /* ── Domain Filter Nav ── */
    .domain-nav {
      position: sticky; top: 64px; z-index: 80;
      background: rgba(255,255,255,.97); backdrop-filter: blur(8px);
      border-bottom: 1px solid #e8e8e8;
      padding: 0 24px;
    }
    .domain-nav-inner {
      max-width: 1200px; margin: 0 auto;
      display: flex; gap: 0; overflow-x: auto;
      scrollbar-width: none;
    }
    .domain-nav-inner::-webkit-scrollbar { display: none; }
    .domain-pill {
      display: flex; align-items: center; gap: 8px;
      padding: 14px 20px;
      font-size: 19.5px; font-weight: 600; color: var(--gray);
      border-bottom: 2px solid transparent;
      white-space: nowrap; cursor: pointer;
      transition: color .2s, border-color .2s, background .2s, transform .2s;
    }
    .domain-pill:hover {
      color: var(--dark);
      background: rgba(0,0,0,.04);
      transform: translateY(-2px);
      border-bottom-color: rgba(0,0,0,.12);
    }
    .domain-pill.active { color: var(--orange); border-bottom-color: var(--orange); }
    .domain-pill.active:hover { border-bottom-color: var(--orange); }
    html[lang="en"] .domain-pill { font-size: 15px; }
    .domain-pill-dot {
      width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
      transition: transform .22s ease, box-shadow .22s ease;
    }
    .domain-pill:hover .domain-pill-dot {
      transform: scale(1.85);
      box-shadow: 0 0 0 4px rgba(128,128,128,.14);
    }

    /* ── Domain Section ── */
    .domain-section { display: none; }
    .domain-section.active { display: block; padding: 72px 0 80px; }
    .domain-header {
      display: flex; align-items: flex-start; gap: 24px;
      padding: 32px 40px;
      border-radius: 12px;
      margin-bottom: 0;
      position: relative; overflow: hidden;
    }
    .domain-header::after {
      content: attr(data-en);
      position: absolute; right: 32px; top: 50%; transform: translateY(-50%);
      font-family: var(--font-display);
      font-size: 48px; font-weight: 800;
      color: white; opacity: 0.07;
      letter-spacing: -0.02em; white-space: nowrap;
      pointer-events: none;
    }
    .domain-num {
      font-family: var(--font-display);
      font-size: 56px; font-weight: 800;
      color: rgba(255,255,255,.15); line-height: 1; flex-shrink: 0;
    }
    .domain-label {
      font-size: 11px; letter-spacing: 3px; font-weight: 700;
      text-transform: uppercase; color: rgba(255,255,255,.5);
      margin-bottom: 6px;
    }
    .domain-title {
      font-family: var(--font-display);
      font-size: clamp(24px, 3vw, 36px); font-weight: 800;
      color: white; margin-bottom: 8px; line-height: 1.2;
    }
    .domain-desc { font-size: 14px; color: rgba(255,255,255,.65); line-height: 1.7; max-width: 560px; }

    /* ── Course List ── */
    .courses-list { border-top: 1px solid oklch(0.92 0.02 50); margin-top: 32px; }
    .course-entry { padding: 0; border-bottom: none; margin-bottom: 10px; }
    .course-entry-inner {
      display: grid; grid-template-columns: 1fr 320px; gap: 48px; align-items: start;
    }
    .course-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
    .course-num {
      font-family: var(--font-display);
      font-size: 13px; font-weight: 700;
      color: var(--gray); letter-spacing: 1px;
    }
    .course-format-badge {
      display: inline-block;
      font-size: 11px; font-weight: 700; letter-spacing: .8px;
      padding: 3px 10px; border-radius: 3px;
      text-transform: uppercase;
    }
    .badge-research { background: var(--gold-bg); color: oklch(0.38 0.12 44); }
    .badge-immersive { background: oklch(0.92 0.06 210); color: oklch(0.30 0.10 210); }
    .course-title {
      font-size: clamp(22px, 2.8vw, 30px);
      font-weight: 800; color: var(--dark);
      line-height: 1.25; margin-bottom: 16px;
      letter-spacing: -0.01em;
    }
    .course-desc {
      font-size: 15px; color: oklch(0.40 0.018 50);
      line-height: 1.9; margin-bottom: 32px;
      max-width: 66ch;
    }
    .course-section-label {
      font-size: 10px; letter-spacing: 3px; text-transform: uppercase;
      color: var(--orange); font-weight: 700; margin-bottom: 14px;
    }
    .course-topics {
      list-style: none; margin-bottom: 32px;
      display: grid; grid-template-columns: 1fr 1fr; gap: 0;
      counter-reset: topic-counter;
    }
    .course-topics li {
      display: flex; gap: 14px; align-items: flex-start;
      font-size: 13.5px; color: var(--dark);
      padding: 11px 20px 11px 0;
      border-bottom: 1px solid oklch(0.93 0.015 50);
      line-height: 1.55;
      counter-increment: topic-counter;
    }
    .course-topics li:last-child { border-bottom: none; }
    .course-topics li:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .course-topics li::before {
      content: counter(topic-counter, decimal-leading-zero);
      color: var(--orange); font-size: 10px; font-weight: 800;
      font-family: var(--font-display); letter-spacing: 0.5px;
      margin-top: 2px; flex-shrink: 0; min-width: 20px;
    }
    .course-tags { display: flex; flex-wrap: wrap; gap: 6px; }
    .course-tag {
      background: var(--light); border: 1px solid oklch(0.88 0.02 50);
      color: oklch(0.38 0.018 50); padding: 4px 12px;
      border-radius: 100px; font-size: 11.5px; font-weight: 600;
    }

    /* ── Course Highlight Badges ── */
    .course-highlights { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; }
    .ch-badge {
      display: inline-block;
      font-size: 12px; font-weight: 700;
      padding: 4px 11px; border-radius: 4px;
      letter-spacing: 0.2px; white-space: nowrap; line-height: 1.65;
    }
    .ch-school { background: oklch(0.18 0.04 240); color: oklch(0.80 0.08 220); }
    .ch-paper  { background: var(--orange-bg); color: oklch(0.42 0.13 44); border: 1px solid oklch(0.84 0.10 46); }
    .ch-cert   { background: var(--orange); color: #fff; font-weight: 700; }
    .ch-dual   { background: oklch(0.93 0.04 285); color: oklch(0.38 0.12 285); }
    .ch-feature{ background: var(--light); color: var(--gray); border: 1px solid oklch(0.88 0.02 50); }

    /* ── Mentor Sidebar ── */
    .mentor-sidebar { position: sticky; top: 132px; }
    .mentor-sidebar-inner {
      background: transparent; border-radius: 0; padding: 0;
      padding-top: 20px; border-top: 2px solid oklch(0.91 0.02 50);
    }
    .mentor-sidebar-label {
      font-size: 10px; letter-spacing: 3px; text-transform: uppercase;
      color: oklch(0.58 0.018 50); font-weight: 700; margin-bottom: 16px;
    }
    .mentor-sidebar-avatar {
      width: 110px; height: 110px; border-radius: 10px;
      background: var(--orange-bg);
      display: flex; align-items: center; justify-content: center;
      font-family: var(--font-display);
      font-size: 36px; font-weight: 800; color: var(--orange);
      margin-bottom: 14px; overflow: hidden; flex-shrink: 0;
    }
    .mentor-sidebar-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .mentor-sidebar-name { font-size: 16px; font-weight: 800; color: var(--dark); margin-bottom: 3px; }
    .mentor-sidebar-inst { font-size: 12px; color: var(--orange); font-weight: 700; margin-bottom: 16px; line-height: 1.4; }
    .mentor-sidebar-points { list-style: none; }
    .mentor-sidebar-points li {
      font-size: 13px; color: var(--gray);
      padding: 7px 0; border-bottom: 1px solid oklch(0.92 0.015 50);
      display: flex; gap: 10px; align-items: flex-start; line-height: 1.5;
    }
    .mentor-sidebar-points li:last-child { border-bottom: none; }
    .mentor-sidebar-points li::before { content: '—'; color: var(--orange); font-size: 11px; margin-top: 2px; flex-shrink: 0; }
    .mentor-domain-tag {
      display: inline-block; margin-top: 16px;
      background: var(--orange-bg); color: oklch(0.42 0.13 44);
      font-size: 11px; font-weight: 700; letter-spacing: 1px;
      padding: 5px 12px; border-radius: 3px; text-transform: uppercase;
    }
    .mentor-sidebar-inner + .mentor-sidebar-inner {
      margin-top: 28px; border-top: 1px solid oklch(0.91 0.02 50); padding-top: 24px;
    }

    /* ── Course Card (expandable) ── */
    .course-card-header {
      display: grid; grid-template-columns: 1fr auto;
      cursor: pointer; border: 1.5px solid oklch(0.90 0.02 50);
      border-radius: 10px; overflow: hidden;
      transition: border-color .2s, box-shadow .2s; background: white;
    }
    .course-card-header:hover {
      border-color: var(--orange-light); box-shadow: 0 4px 20px rgba(0,0,0,.08);
    }
    .course-entry.expanded .course-card-header {
      border-color: var(--orange); border-bottom-color: oklch(0.88 0.06 46);
      border-radius: 10px 10px 0 0;
    }
    .card-mentor-col {
      display: none; width: 120px; flex-shrink: 0;
      border-right: 1.5px solid oklch(0.90 0.06 48); overflow: hidden;
    }
    .card-avatar {
      flex: 1; width: 100%; min-height: 110px;
      background: var(--orange-light);
      display: flex; align-items: center; justify-content: center;
      font-family: var(--font-display); font-size: 30px; font-weight: 800; color: white; overflow: hidden;
    }
    .card-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .card-mentor-text {
      padding: 10px 12px; background: var(--orange-bg);
      border-top: 1px solid oklch(0.90 0.06 48); text-align: center;
    }
    .card-mentor-name { font-size: 11.5px; font-weight: 700; color: oklch(0.28 0.02 45); line-height: 1.35; word-break: break-word; }
    .card-mentor-inst { font-size: 10px; color: var(--gray); line-height: 1.3; margin-top: 2px; }
    .card-content-col {
      padding: 26px 22px 18px 36px; display: flex; flex-direction: column; gap: 10px; min-width: 0;
    }
    .card-content-col .course-title { margin-bottom: 0; }
    .card-highlights { display: flex; flex-wrap: wrap; gap: 6px; }
    .card-desc-preview {
      font-size: 13px; color: var(--gray); line-height: 1.65;
      display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
    }
    html[lang="en"] .card-desc-preview { -webkit-line-clamp: 3; line-clamp: 3; }
    .course-card-header:hover .course-title { color: var(--orange); transition: color .15s; }
    .card-expand-btn {
      display: flex; flex-direction: column; align-items: center;
      justify-content: center; gap: 12px;
      padding: 0 40px; min-width: 120px;
      border-left: 1.5px solid oklch(0.90 0.02 50); color: var(--gray);
      transition: color .2s, background .2s, border-color .2s;
    }
    .card-expand-btn svg { transition: transform .4s cubic-bezier(0.16,1,0.3,1); }
    .card-expand-btn-label {
      font-size: 20px; font-weight: 700; letter-spacing: 0.8px;
      text-transform: uppercase; opacity: 0.55;
    }
    .course-card-header:hover .card-expand-btn { color: var(--orange); }
    .course-entry.expanded .card-expand-btn {
      color: var(--orange); background: var(--orange-bg); border-left-color: oklch(0.85 0.09 46);
    }
    .course-entry.expanded .card-expand-btn svg { transform: rotate(45deg); }

    /* ── Course Card Drawer ── */
    .course-card-drawer {
      display: grid; grid-template-rows: 0fr;
      border: 1.5px solid transparent;
      border-top: none; border-radius: 0 0 10px 10px;
      transition: grid-template-rows .45s cubic-bezier(0.16,1,0.3,1), border-color .2s;
    }
    .course-entry.expanded .course-card-drawer { grid-template-rows: 1fr; border-color: var(--orange); }
    .course-card-drawer .course-entry-clip { overflow: hidden; min-height: 0; }
    .course-card-drawer .course-entry-clip .course-entry-inner { padding: 36px 28px 44px; }
    .course-card-drawer .course-highlights { display: none; }
    .course-card-drawer .course-meta { display: none; }
    .course-card-drawer .mentor-sidebar { position: static; }
    .course-card-drawer .mentor-sidebar-inner { padding-top: 0; border-top: none; }
    .course-entry-clip { overflow: hidden; min-height: 0; }
    .drawer-sessions-section-label { margin-top: 36px; }
    .drawer-sessions-list {
      list-style: none; margin-bottom: 32px;
      border: 1px solid oklch(0.91 0.02 50); border-radius: 8px; overflow: hidden;
    }
    .drawer-session-item {
      display: flex; gap: 14px; align-items: flex-start;
      padding: 11px 16px; border-bottom: 1px solid oklch(0.93 0.015 50);
    }
    .drawer-session-item:last-child { border-bottom: none; }
    .drawer-session-num {
      font-size: 10px; font-weight: 800; color: var(--orange);
      font-family: var(--font-display); letter-spacing: 0.5px;
      min-width: 22px; flex-shrink: 0; margin-top: 3px;
    }
    .drawer-session-title { font-size: 13.5px; font-weight: 700; color: var(--dark); line-height: 1.4; }
    .drawer-session-sub { font-size: 12px; color: var(--gray); margin-top: 3px; line-height: 1.55; }

    /* ── CTA Band ── */
    .cta-band { background: var(--dark); padding: 72px 0; text-align: center; }
    .cta-band h2 {
      font-family: var(--font-display);
      font-size: clamp(28px, 4vw, 48px); font-weight: 800;
      color: white; margin-bottom: 12px; letter-spacing: -0.02em;
    }
    .cta-band p { font-size: 16px; color: rgba(255,255,255,.55); margin-bottom: 36px; }
    .cta-btn {
      display: inline-block; background: var(--gold); color: white;
      padding: 16px 44px; border-radius: 6px;
      font-size: 16px; font-weight: 700; transition: background .2s;
    }
    .cta-btn:hover { background: #a37210; }

    /* ── Footer links (catalog) ── */
    footer a { color: rgba(255,255,255,.4); transition: color .15s; }
    footer a:hover { color: var(--gold-light); }

    /* ── Catalog responsive ── */
    @media(max-width:900px) {
      .course-entry-inner { grid-template-columns: 1fr; }
      .mentor-sidebar { position: static; margin-top: 32px; }
      .mentor-sidebar-inner { border-top: 1px solid oklch(0.91 0.02 50); }
      .mentor-sidebar-inner + .mentor-sidebar-inner { margin-top: 24px; }
      .domain-header { padding: 24px 28px; }
      .domain-num { font-size: 40px; }
    }
    @media(max-width:700px) {
      .card-mentor-col { display: none; }
      .course-card-header { grid-template-columns: 1fr auto; }
    }
    @media(max-width:680px) {
      .course-topics { grid-template-columns: 1fr; }
      .course-topics li:last-child:nth-child(odd) { grid-column: 1; }
    }
    @media(max-width:600px) {
      body.catalog-page .page-hero { padding: 56px 0 48px; }
      .course-entry { padding: 36px 0; }
      .domain-section.active { padding: 52px 0 0; }
    }

    /* ── Fellowship Flow ── */
    .fellowship-flow {
      display: flex; gap: 0; margin: 32px 0; flex-wrap: wrap;
    }
    .fstep {
      flex: 1; min-width: 160px;
      background: var(--gold-bg);
      padding: 24px 20px;
      position: relative;
      text-align: center;
    }
    .fstep::after {
      content: '→';
      position: absolute; right: -12px; top: 50%;
      transform: translateY(-50%);
      font-size: 20px; color: var(--gold); z-index: 1;
      font-weight: 900;
    }
    .fstep:last-child::after { display: none; }
    .fstep-num {
      width: 32px; height: 32px; border-radius: 50%;
      background: var(--gold); color: white;
      font-size: 13px; font-weight: 800;
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 12px;
    }
    .fstep-title { font-size: 14px; font-weight: 700; color: var(--dark); margin-bottom: 6px; }
    .fstep-desc { font-size: 12px; color: var(--gray); line-height: 1.5; }

    /* ── School Pathway ── */
    .pathway-stages {
      display: grid; grid-template-columns: repeat(5, 1fr); gap: 0;
      margin: 32px 0; border-radius: 10px; overflow: hidden;
    }
    .pstage {
      padding: 20px 16px; text-align: center;
      position: relative;
    }
    .pstage:nth-child(1) { background: oklch(0.94 0.015 45); }
    .pstage:nth-child(2) { background: oklch(0.91 0.025 45); }
    .pstage:nth-child(3) { background: oklch(0.87 0.04 45); }
    .pstage:nth-child(4) { background: oklch(0.82 0.055 45); }
    .pstage:nth-child(5) { background: var(--dark); color: white; }
    .pstage-label {
      font-size: 10px; letter-spacing: 1px; text-transform: uppercase;
      font-weight: 700; margin-bottom: 8px; opacity: .7;
    }
    .pstage-num {
      font-size: 22px; font-weight: 900; color: var(--gold); margin-bottom: 8px;
    }
    .pstage:nth-child(5) .pstage-num { color: var(--gold-light); }
    .pstage-title { font-size: 13px; font-weight: 700; margin-bottom: 6px; }
    .pstage-desc { font-size: 11px; opacity: .7; line-height: 1.5; }
    @media(max-width:700px){ .pathway-stages { grid-template-columns: 1fr 1fr; } }
    @media(max-width:480px){ .pathway-stages { grid-template-columns: 1fr; } }

    /* ── Mentor subsection label ── */
    .mentor-subsection-label {
      display: flex;
      align-items: baseline;
      gap: 16px;
      margin-bottom: 28px;
    }
    .mentor-subsection-en {
      font-family: var(--font-display);
      font-size: clamp(22px, 3vw, 32px);
      font-weight: 600;
      color: white;
      letter-spacing: -0.01em;
    }
    .mentor-subsection-zh {
      font-size: 13px;
      color: rgba(255,255,255,.4);
      letter-spacing: 2px;
    }

    /* ── Full Mentors Section ── */
    #mentors { padding: 80px 0; background: oklch(0.11 0.018 45); }
    .mentor-full-grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 20px;
      margin-top: 40px;
    }
    .mentor-full-card {
      background: oklch(0.16 0.015 45);
      border-radius: 12px;
      border: 1px solid oklch(0.22 0.015 45);
      overflow: hidden;
      display: flex;
      flex-direction: row;
      transition: background .22s ease-out, transform .22s ease-out;
      cursor: default;
    }
    .mentor-full-card:hover {
      background: oklch(0.19 0.018 45);
      transform: translateY(-2px);
    }
    /* Photo column */
    .mentor-photo-side {
      width: 200px;
      flex-shrink: 0;
      background: var(--orange);
      display: flex; align-items: center; justify-content: center;
      font-family: var(--font-display);
      font-size: 40px; font-weight: 800; color: white;
      overflow: hidden;
    }
    .mentor-photo-side img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center top;
      display: block;
    }
    /* Info column */
    .mentor-info-side {
      flex: 1;
      padding: 24px 22px;
      min-width: 0;
    }
    @media(max-width:900px) {
      .mentor-full-grid { grid-template-columns: 1fr; }
      .mentor-photo-side { width: 120px; }
    }
    @media(max-width:500px) {
      .mentor-full-card { flex-direction: column; }
      .mentor-photo-side { width: 100%; height: 160px; }
    }
    .mentor-full-name { font-size: 18px; font-weight: 800; margin-bottom: 4px; color: white; }
    .mentor-full-inst {
      font-size: 12px; color: var(--gold-light); font-weight: 600;
      margin-bottom: 16px; letter-spacing: .3px;
    }
    .mentor-full-points { list-style: none; }
    .mentor-full-points li {
      font-size: 13px; color: rgba(255,255,255,.5); padding: 4px 0;
      display: flex; gap: 8px; align-items: flex-start; line-height: 1.5;
    }
    .mentor-full-points li::before { content: '—'; color: var(--gold); font-size: 11px; margin-top: 2px; flex-shrink: 0; }
    .mentor-domain {
      display: inline-block; margin-top: 16px;
      background: rgba(255,255,255,.06); color: rgba(255,255,255,.7);
      font-size: 11px; font-weight: 700; letter-spacing: 1px;
      padding: 5px 12px; border-radius: 2px;
      text-transform: uppercase;
    }
    @media(max-width:900px){ .mentor-full-grid { grid-template-columns: 1fr 1fr; } }
    @media(max-width:600px){ .mentor-full-grid { grid-template-columns: 1fr; } }

    /* ── Discipline List — editorial style (Mentors page) ── */
    .discipline-list {
      margin-top: 48px;
      border-top: 1px solid oklch(0.87 0.018 50);
    }
    .discipline-item {
      display: flex;
      align-items: center;
      gap: 0;
      padding: 26px 0 26px 8px;
      border-bottom: 1px solid oklch(0.87 0.018 50);
      position: relative;
      transition: background .2s ease-out;
      cursor: default;
    }
    /* Orange left bar that slides in on hover */
    .discipline-item::before {
      content: '';
      position: absolute;
      left: 0; top: 0; bottom: 0;
      width: 3px;
      background: var(--orange);
      transform: scaleY(0);
      transform-origin: center;
      transition: transform .24s cubic-bezier(0.22, 1, 0.36, 1);
    }
    .discipline-item:hover::before { transform: scaleY(1); }
    .discipline-item:hover { background: oklch(0.975 0.016 50); }
    .discipline-item:hover .discipline-num {
      opacity: 1;
      color: var(--orange);
    }
    .discipline-num {
      font-family: var(--font-display);
      font-size: clamp(72px, 8vw, 96px);
      font-weight: 400;
      color: var(--orange);
      opacity: 0.14;
      line-height: 1;
      letter-spacing: -0.04em;
      min-width: clamp(100px, 11vw, 140px);
      transition: opacity .24s ease-out, color .24s ease-out;
      user-select: none;
      flex-shrink: 0;
    }
    .discipline-body { flex: 1; }
    .discipline-icon {
      margin-left: auto;
      padding-left: 32px;
      flex-shrink: 0;
      color: var(--orange);
      opacity: 0.15;
      transition: opacity .24s ease-out;
    }
    .discipline-item:hover .discipline-icon { opacity: 0.55; }
    .discipline-icon svg {
      width: 40px; height: 40px;
      display: block;
      stroke: currentColor;
      fill: none;
      stroke-width: 1.5;
      stroke-linecap: round;
      stroke-linejoin: round;
    }
    @media(max-width:600px) { .discipline-icon { display: none; } }
    .discipline-title {
      font-size: clamp(16px, 2vw, 21px);
      font-weight: 800;
      color: var(--dark);
      margin-bottom: 5px;
      letter-spacing: -0.01em;
    }
    .discipline-en {
      font-family: var(--font-display);
      font-size: 11px;
      color: var(--gray);
      letter-spacing: 3px;
      text-transform: uppercase;
    }
    @media(max-width:600px) {
      .discipline-num { font-size: 56px; min-width: 76px; }
      .discipline-item { padding: 20px 0 20px 6px; }
    }

    /* ── Support Timeline (Mentors page) ── */
    .support-with-image {
      display: grid;
      grid-template-columns: 1fr 360px;
      gap: 56px;
      align-items: stretch;
      margin-top: 48px;
    }
    .support-side-image {
      border-radius: 8px;
      overflow: hidden;
    }
    .support-side-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }
    @media(max-width:900px) {
      .support-with-image { grid-template-columns: 1fr; }
      .support-side-image { aspect-ratio: 16/9; }
    }
    .support-timeline {
      position: relative;
      margin-top: 0;
      max-width: 100%;
    }
    /* The vertical orange thread */
    .support-timeline::before {
      content: '';
      position: absolute;
      left: 19px;
      top: 20px;
      bottom: 20px;
      width: 2px;
      background: linear-gradient(
        to bottom,
        oklch(0.66 0.19 44 / 0.8),
        oklch(0.66 0.19 44 / 0.2)
      );
    }
    .support-titem {
      display: flex;
      align-items: flex-start;
      gap: 28px;
      padding-bottom: 40px;
      position: relative;
    }
    .support-titem:last-child { padding-bottom: 0; }
    .support-node {
      width: 40px; height: 40px;
      border-radius: 50%;
      background: var(--white);
      border: 2px solid var(--orange);
      color: var(--orange);
      font-size: 13px; font-weight: 800;
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0;
      position: relative; z-index: 2;
      transition: background .2s ease-out, color .2s ease-out, box-shadow .2s ease-out;
      font-family: var(--font-display);
    }
    .support-titem:hover .support-node {
      background: var(--orange);
      color: white;
      box-shadow: 0 0 0 7px oklch(0.66 0.19 44 / 0.12);
    }
    .support-content { padding-top: 8px; }
    .support-name-row {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-bottom: 8px;
    }
    .support-icon {
      width: 20px; height: 20px;
      flex-shrink: 0;
      stroke: var(--orange);
      fill: none;
      stroke-width: 1.5;
      stroke-linecap: round;
      stroke-linejoin: round;
      opacity: 0.7;
      transition: opacity .2s ease-out;
    }
    .support-titem:hover .support-icon { opacity: 1; }
    .support-name {
      font-size: 18px;
      font-weight: 800;
      color: var(--dark);
      letter-spacing: -0.01em;
    }
    .support-desc {
      font-size: 14px;
      color: var(--gray);
      line-height: 1.8;
      max-width: 560px;
    }
    @media(max-width:600px) {
      .support-timeline { max-width: 100%; }
      .support-titem { gap: 20px; }
      .support-node { width: 36px; height: 36px; font-size: 12px; }
      .support-timeline::before { left: 17px; }
    }

    /* ── Back to Top ── */
    .back-to-top {
      position: fixed; bottom: 28px; right: 28px; z-index: 200;
      width: 44px; height: 44px; border-radius: 50%;
      background: var(--dark); color: white;
      border: none; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
      box-shadow: 0 4px 16px rgba(0,0,0,.25);
      opacity: 0; transform: translateY(12px);
      transition: opacity .25s ease-out, transform .25s ease-out, background .2s;
      pointer-events: none;
    }
    .back-to-top.visible {
      opacity: 1; transform: none; pointer-events: auto;
    }
    .back-to-top:hover { background: var(--orange); }
    .back-to-top svg { width: 18px; height: 18px; }

    /* ── Nav scrolled shadow ── */
    nav.scrolled {
      box-shadow: 0 2px 20px rgba(0,0,0,.10);
      border-bottom-color: oklch(0.88 0.025 50);
    }
    nav { transition: box-shadow 0.3s ease-out, border-color 0.3s ease-out; }

    /* ── Reduced motion ── */
    @media (prefers-reduced-motion: reduce) {
      *, *::before, *::after {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
      }
      html { scroll-behavior: auto !important; }
      .reveal { opacity: 1 !important; transform: none !important; }
    }

    /* ── Photo Band ── */
    .photo-band {
      position: relative;
      height: 400px;
      overflow: hidden;
    }
    .photo-band--short { height: 280px; }
    .photo-band-img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
      transition: transform 8s ease-out;
    }
    .photo-band:hover .photo-band-img { transform: scale(1.04); }
    .photo-band-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to right,
        oklch(0.10 0.03 42 / 0.78) 0%,
        oklch(0.10 0.03 42 / 0.40) 55%,
        transparent 100%);
      display: flex; align-items: center;
    }
    .photo-band-overlay--right {
      background: linear-gradient(to left,
        oklch(0.10 0.03 42 / 0.78) 0%,
        oklch(0.10 0.03 42 / 0.40) 55%,
        transparent 100%);
      justify-content: flex-end;
    }
    .photo-band-overlay--right .photo-band-text {
      text-align: right;
    }
    .photo-band-text {
      font-family: var(--font-display);
      font-size: clamp(22px, 2.8vw, 40px);
      font-weight: 900;
      color: white;
      line-height: 1.25;
      letter-spacing: -0.02em;
      max-width: 520px;
    }
    @media(max-width:600px){
      .photo-band { height: 240px; }
      .photo-band--short { height: 200px; }
      .photo-band-text { font-size: 20px; }
    }

    /* ── Why intro split layout ── */
    .why-intro {
      display: grid;
      grid-template-columns: 1fr 380px;
      gap: 56px;
      align-items: center;
      margin-bottom: 56px;
    }
    .why-intro-photo {
      border-radius: 8px;
      overflow: hidden;
      aspect-ratio: 4 / 3;
    }
    .why-intro-photo img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
    }
    @media(max-width:960px){
      .why-intro { grid-template-columns: 1fr; }
      .why-intro-photo { display: none; }
    }

    /* ── University Logo Strip (standalone section) ── */
    .section--uni-strip {
      padding: 40px 0 48px;
      background: var(--white);
      border-bottom: 1px solid oklch(0.91 0.020 50);
    }

    /* ── University Logo Strip ── */
    .uni-logo-strip {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      gap: 20px 32px;
      margin-top: 16px;
    }
    .uni-logo-card {
      display: flex;
      align-items: center; justify-content: center;
      padding: 16px 12px;
    }
    .uni-badge-text {
      font-size: 23px; font-weight: 1000;
      color: var(--uni-color, #333);
      text-align: center; line-height: 1.45;
      letter-spacing: 0.01em;
    }
    @media(max-width:1100px){ .uni-logo-strip { grid-template-columns: repeat(4, 1fr); } }
    @media(max-width:700px){ .uni-logo-strip { grid-template-columns: repeat(3, 1fr); } }
    @media(max-width:480px){ .uni-logo-strip { grid-template-columns: repeat(2, 1fr); gap: 12px 16px; } }

    /* ── About layout (full-width + vision below) ── */
    .about-brand-claim {
      display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin-top: 48px;
      counter-reset: claim-counter;
    }
    .brand-claim-item {
      padding: 28px 24px 24px;
      border-radius: 4px;
      background: var(--white);
      border: 1px solid oklch(0.90 0.025 50);
      border-top: 2px solid var(--orange);
      counter-increment: claim-counter;
      position: relative;
    }
    /* Subtle counter watermark */
    .brand-claim-item::before {
      content: "0" counter(claim-counter);
      display: block;
      font-size: 11px; font-weight: 700; letter-spacing: 3px;
      color: var(--orange); text-transform: uppercase;
      margin-bottom: 12px;
      font-family: var(--font-display);
    }
    .brand-claim-item p {
      font-size: 14px; color: var(--gray); line-height: 1.8;
    }
    .brand-claim-item p strong { color: var(--dark); }
    @media(max-width:700px){ .about-brand-claim { grid-template-columns: 1fr; } }

    /* ── Academic Background ── */
    .academic-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 56px;
      align-items: start;
    }
    .about-dual-cards {
      display: grid; grid-template-columns: 1fr 1fr; gap: 28px;
      align-items: stretch; margin-top: 40px;
    }
    .about-light-card {
      background: var(--light);
      border-radius: 4px;
      padding: 36px 32px;
      border: 1px solid oklch(0.88 0.025 50);
      box-sizing: border-box;
    }
    .academic-points-light { list-style: none; margin-top: 20px; }
    .academic-points-light li {
      display: flex; gap: 12px; align-items: flex-start;
      font-size: 14px; color: var(--gray);
      padding: 10px 0;
      border-bottom: 1px solid oklch(0.90 0.02 50);
      line-height: 1.6;
    }
    .academic-points-light li:last-child { border-bottom: none; }
    .academic-points-light li::before {
      content: '◆';
      color: var(--gold); font-size: 10px; margin-top: 4px; flex-shrink: 0;
    }
    @media(max-width:900px){ .about-dual-cards { grid-template-columns: 1fr; } }

    /* ── Academic Split Layout (newspaper pinned-title style) ── */
    .section--academic-split { padding: 96px 0; }
    .academic-split-layout {
      display: grid;
      grid-template-columns: 300px 1fr;
      gap: 72px;
      align-items: stretch;
    }
    .academic-split-header {
      display: flex;
      flex-direction: column;
    }
    .academic-split-photo {
      flex: 1;
      border-radius: 8px;
      overflow: hidden;
      min-height: 200px;
    }
    .academic-split-body {
      display: flex;
      flex-direction: column;
    }
    .section--academic-split .about-dual-cards {
      margin-top: 0;
      flex: 1;
      align-items: stretch;
      gap: 20px;
    }
    .section--academic-split .about-light-card {
      display: flex;
      flex-direction: column;
      padding: 24px 26px;
    }
    .section--academic-split .academic-points-light {
      margin-top: 14px;
    }
    .section--academic-split .academic-points-light li {
      font-size: 15px;
      padding: 7px 0;
    }
    .section--academic-split .about-light-card h3 {
      font-size: 20px;
      margin-bottom: 14px;
    }
    @media(max-width:900px) {
      .academic-split-layout { grid-template-columns: 1fr; gap: 32px; }
      .academic-split-header { position: static; }
      .academic-split-photo { aspect-ratio: 16/9; }
    }

    /* ── Global Network Dark Section ── */
    .section--network-dark {
      background: var(--dark);
      padding: 96px 0 80px;
    }
    .network-dark-split {
      display: grid;
      grid-template-columns: 420px 1fr;
      gap: 72px;
      align-items: start;
    }
    .network-dark-img-col {
      border-radius: 14px;
      overflow: hidden;
      aspect-ratio: 4/5;
    }
    .network-dark-img {
      width: 100%; height: 100%;
      object-fit: cover; display: block;
      opacity: 0.88;
    }
    .network-dark-content-col .section-title { margin-top: 16px; }
    html:not([lang="en"]) .network-dark-desc { font-size: 19.2px; }
    @media(max-width:900px) {
      .network-dark-split { grid-template-columns: 1fr; gap: 40px; }
      .network-dark-img-col { aspect-ratio: 16/9; }
    }

    /* Discipline rows */
    .disc-list {
      margin-top: 48px;
      border-top: 1px solid oklch(0.88 0.02 50);
    }
    .disc-row {
      position: relative;
      height: 110px;
      border-bottom: 1px solid oklch(0.88 0.02 50);
      overflow: hidden;
      transition: background .2s ease-out;
    }
    .disc-row:hover { background: oklch(0.975 0.016 50); }
    .disc-row-text {
      position: relative;
      z-index: 2;
      display: flex;
      align-items: center;
      gap: 28px;
      height: 100%;
      width: 50%;
      padding: 0 8px;
    }
    .disc-row-text .disc-num {
      font-family: var(--font-display);
      font-size: 48px;
      font-weight: 800;
      color: var(--orange);
      opacity: 0.35;
      line-height: 1;
      flex-shrink: 0;
      min-width: 64px;
    }
    .disc-row-text .disc-title {
      font-size: 18px;
      font-weight: 700;
      color: var(--dark);
      margin-bottom: 4px;
    }
    .disc-row-text .disc-en {
      font-size: 12px;
      color: var(--gray);
      letter-spacing: .5px;
    }
    .disc-row-image {
      position: absolute;
      right: 0;
      top: 0;
      bottom: 0;
      width: 65%;
    }
    .disc-row-image img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
    }
    .disc-row-fade {
      position: absolute;
      inset: 0;
      background: linear-gradient(to right,
        oklch(0.96 0.025 50) 0%,
        oklch(0.96 0.025 50) 20%,
        transparent 70%);
      pointer-events: none;
    }
    @media(max-width:900px) {
      .disc-row-image { display: none; }
      .disc-row-text { width: 100%; padding: 20px 0; }
    }

    .academic-highlight-card {
      background: var(--dark);
      border-radius: 12px;
      padding: 36px 32px;
      color: white;
      position: relative; overflow: hidden;
    }
    .academic-highlight-card::before {
      content: 'LAB';
      position: absolute; right: -10px; bottom: -20px;
      font-family: var(--font-display);
      font-size: 90px; font-weight: 800;
      color: white; opacity: 0.04;
      letter-spacing: -2px;
    }
    .academic-points { list-style: none; margin-top: 20px; }
    .academic-points li {
      display: flex; gap: 12px; align-items: flex-start;
      font-size: 14px; color: rgba(255,255,255,.7);
      padding: 10px 0;
      border-bottom: 1px solid rgba(255,255,255,.07);
      line-height: 1.6;
    }
    .academic-points li:last-child { border-bottom: none; }
    .academic-points li::before {
      content: '◆';
      color: var(--gold-light); font-size: 10px; margin-top: 4px; flex-shrink: 0;
    }
    @media(max-width:900px){ .academic-grid { grid-template-columns: 1fr; } }

    /* ── Why NextGen (6-card advantages) ── */
    .advantages-why-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 24px;
      margin-top: 40px;
      counter-reset: adv-counter;
    }
    .advantage-why-card {
      background: var(--white);
      border-radius: 4px;
      padding: 36px 30px 32px;
      border: 1px solid oklch(0.90 0.025 50);
      position: relative;
      overflow: hidden;
      transition: border-color 0.25s ease-out, transform 0.25s ease-out;
      counter-increment: adv-counter;
    }
    /* Decorative large counter watermark */
    .advantage-why-card::before {
      content: "0" counter(adv-counter);
      position: absolute;
      top: 12px; right: 20px;
      font-size: 64px;
      font-weight: 900;
      font-family: var(--font-display);
      color: var(--orange);
      opacity: 0.09;
      line-height: 1;
      letter-spacing: -0.04em;
      pointer-events: none;
      user-select: none;
    }
    /* Top accent line replaces generic shadow */
    .advantage-why-card::after {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: transparent;
      transition: background 0.25s ease-out;
    }
    .advantage-why-card:hover {
      border-color: oklch(0.78 0.09 44);
      transform: translateY(-3px);
    }
    .advantage-why-card:hover::after {
      background: var(--orange);
    }
    /* Hide emoji, show a small orange rule instead */
    .advantage-why-icon {
      width: 28px; height: 3px;
      background: var(--orange);
      border-radius: 2px;
      margin-bottom: 22px;
      font-size: 0; /* hides emoji content */
      overflow: hidden;
    }
    .advantage-why-card h4 {
      font-size: 16px; font-weight: 800;
      color: var(--dark); margin-bottom: 10px;
      font-family: var(--font-body);
    }
    .advantage-why-card p {
      font-size: 14px; color: var(--gray); line-height: 1.75;
    }
    @media(max-width:900px){ .advantages-why-grid { grid-template-columns: 1fr 1fr; } }
    @media(max-width:600px){ .advantages-why-grid { grid-template-columns: 1fr; } }

    /* ── Conversion Outcomes ── */
    .conversion-tags {
      display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px;
    }
    .conversion-tag {
      display: flex; align-items: center; gap: 10px;
      background: rgba(200,148,26,.12);
      border: 1px solid rgba(200,148,26,.30);
      border-radius: 8px;
      padding: 14px 20px;
      color: var(--gold-light);
      font-size: 14px; font-weight: 600;
    }
    .conversion-tag::before {
      content: '✦';
      color: var(--gold-light);
      font-size: 10px; flex-shrink: 0;
    }
    .conversion-flow {
      display: flex; gap: 0; border-radius: 8px; overflow: hidden;
    }
    .conversion-flow-step {
      flex: 1; padding: 18px 14px; text-align: center;
    }
    .conversion-flow-step .cfs-icon { font-size: 22px; margin-bottom: 6px; }
    .conversion-flow-step .cfs-label { font-size: 14px; font-weight: 700; color: white; }
    @media(max-width:600px){ .conversion-flow { flex-wrap: wrap; } .conversion-flow-step { flex: 0 0 50%; } }

    /* ── School Partnership ── */
    #school { background: var(--light); }
    .school-inner {
      display: grid; grid-template-columns: 1fr 1fr; gap: 64px;
      align-items: start;
    }
    .school-value-list { list-style: none; margin: 28px 0; }
    .school-value-list li {
      display: flex; gap: 14px; align-items: flex-start;
      padding: 16px 0;
      border-bottom: 1px solid oklch(0.90 0.02 50);
      font-size: 15px; color: var(--dark); line-height: 1.6;
    }
    .school-value-list li:last-child { border-bottom: none; }
    .school-value-icon {
      width: 32px; height: 32px; border-radius: 6px;
      background: var(--gold-bg);
      display: flex; align-items: center; justify-content: center;
      flex-shrink: 0; font-size: 14px;
    }
    .school-modes {
      display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
      margin-bottom: 28px;
    }
    .school-mode-card {
      background: white;
      border-radius: 4px;
      padding: 22px 20px;
      border: 1px solid oklch(0.90 0.025 50);
      border-top: 2px solid var(--orange);
    }
    .school-mode-card h5 {
      font-size: 14px; font-weight: 800;
      color: var(--dark); margin-bottom: 6px;
    }
    .school-mode-card p {
      font-size: 13px; color: var(--gray); line-height: 1.6;
    }
    .btn-school-cta {
      display: flex; align-items: center; justify-content: center; gap: 8px;
      background: var(--gold); color: white;
      padding: 16px 36px; border-radius: 6px;
      font-size: 15px; font-weight: 700;
      transition: background .2s;
      text-align: center;
    }
    .btn-school-cta:hover { background: #a37210; }
    @media(max-width:900px){
      .school-inner { grid-template-columns: 1fr; }
      .school-modes { grid-template-columns: 1fr; }
    }

    /* ── 全局正文字号放大 (+2px, 标题/副标题保持不变) ── */
    .tag { font-size: 13px; }
    .section-label { font-size: 13px; }
    .nav-brand { font-size: 20px; }
    .nav-links { font-size: 17px; }
    .nav-cta { font-size: 15px; }
    .mobile-nav a { font-size: 17px; }
    .hero-eyebrow { font-size: 13px; }
    .hero-desc { font-size: 19px; }
    .hero-tagline-item { font-size: 15px; }
    .btn-primary, .btn-outline { font-size: 17px; }
    .hero-stat-label { font-size: 15px; }
    #about .about-text { font-size: 18px; }
    .uni-badge { font-size: 15px; }
    .mission-card h4 { font-size: 18px; }
    .mission-card p { font-size: 16px; }
    .stat-label { font-size: 14px; }
    .disc-title { font-size: 16px; }
    .disc-en { font-size: 13px; }
    .program-card-header .tag-white { font-size: 13px; }
    .program-card-header .en { font-size: 17px; }
    .program-section-title { font-size: 20px; }
    .program-desc { font-size: 19px; }
    .outcomes-list li { font-size: 16px; }
    .outcomes-list .num { font-size: 14px; }
    .adv-item h5 { font-size: 19px; }
    .adv-item p { font-size: 17px; }
    .phase-card h5 { font-size: 15px; }
    .phase-card p { font-size: 15px; }
    .course-header .en { font-size: 17px; }
    .topic-chip { font-size: 15px; }
    .mentor-name { font-size: 18px; }
    .mentor-affil { font-size: 14px; }
    .mentor-points li { font-size: 15px; }
    .rStep { font-size: 15px; }
    .case-path { font-size: 14px; }
    .case-badge { font-size: 13px; }
    .case-body p { font-size: 16px; }
    .milestone p { font-size: 14px; }
    .result-banner { font-size: 16px; }
    .flow-step { font-size: 14px; }
    .contact-brand { font-size: 30px; }
    .contact-en { font-size: 14px; }
    .contact-desc { font-size: 16px; }
    .contact-row { font-size: 16px; }
    .contact-form input, .contact-form textarea { font-size: 16px; }
    .contact-form button { font-size: 17px; }
    footer { font-size: 15px; }
    .comparison-table th { font-size: 16px; }
    .comparison-table td { font-size: 16px; }
    .catalog-format { font-size: 13px; }
    .catalog-card-top h4 { font-size: 17px; }
    .catalog-mentor { font-size: 14px; }
    .catalog-majors { font-size: 14px; }
    .catalog-diff { font-size: 15px; }
    .catalog-price { font-size: 17px; }
    .fstep-title { font-size: 16px; }
    .fstep-desc { font-size: 14px; }
    .pstage-label { font-size: 12px; }
    .pstage-title { font-size: 15px; }
    .pstage-desc { font-size: 13px; }
    .mentor-full-name { font-size: 20px; }
    .mentor-full-inst { font-size: 14px; }
    .mentor-full-points li { font-size: 15px; }
    .mentor-domain { font-size: 13px; }
    .uni-logo-name { font-size: 13px; }
    .brand-claim-item p { font-size: 16px; }
    .academic-points li { font-size: 16px; }
    .advantage-why-card h4 { font-size: 18px; }
    .advantage-why-card p { font-size: 16px; }
    .conversion-tag { font-size: 16px; }
    .cfs-label { font-size: 17px; }
    .school-value-list li { font-size: 17px; }
    .school-mode-card h5 { font-size: 16px; }
    .school-mode-card p { font-size: 15px; }
    .btn-school-cta { font-size: 17px; }

    /* ── Nav active link ── */
    .nav-links a.active { color: var(--gold); }
    .mobile-nav a.active { color: var(--orange); }

    /* ── Page Hero (sub-pages) ── */
    .page-hero {
      margin-top: 64px;
      background-color: oklch(0.12 0.04 42);
      background-image: radial-gradient(ellipse 65% 75% at 5% 8%, oklch(0.22 0.07 42 / 0.55), transparent);
      padding: 80px 0 72px;
      position: relative;
      overflow: hidden;
    }
    .page-hero::before {
      content: '';
      position: absolute; top: 0; right: 0;
      width: clamp(180px, 28vw, 420px); height: 100%;
      background: var(--orange);
      clip-path: polygon(18% 0, 100% 0, 100% 100%, 0% 100%);
      opacity: 0.22;
    }
    .page-hero-content { position: relative; z-index: 2; }
    .page-hero-eyebrow {
      font-size: 11px; letter-spacing: 5px; color: var(--gold-light);
      text-transform: uppercase; font-weight: 700; margin-bottom: 20px;
      display: flex; align-items: center; gap: 12px;
    }
    .page-hero-eyebrow::before {
      content: ''; display: inline-block;
      width: 40px; height: 1px; background: var(--gold);
    }
    .page-hero h1 {
      font-size: clamp(36px, 5vw, 68px);
      font-weight: 900; color: var(--white);
      line-height: 1.1; letter-spacing: -0.02em; margin-bottom: 16px;
    }
    .page-hero h1 span { color: var(--gold-light); }
    .page-hero-desc {
      font-size: 17px; color: rgba(255,255,255,.65);
      max-width: 560px; line-height: 1.85;
    }

    /* ── Programs Overview (homepage) ── */
    .prog-overview-grid {
      display: grid; grid-template-columns: repeat(3,1fr); gap: 24px;
      margin-top: 40px;
    }
    .prog-overview-card {
      background: white; border-radius: 12px;
      box-shadow: 0 4px 24px rgba(0,0,0,.08);
      overflow: hidden; display: flex; flex-direction: column;
      transition: box-shadow .22s ease-out, transform .22s ease-out;
      text-decoration: none; color: inherit;
    }
    .prog-overview-card:hover {
      box-shadow: 0 10px 32px rgba(0,0,0,.13);
      transform: translateY(-4px);
    }
    .prog-overview-header {
      background: var(--dark); padding: 28px 28px 22px;
    }
    .prog-overview-header.orange { background: var(--orange); }
    .prog-overview-header.green  { background: oklch(0.20 0.04 155); }
    .prog-overview-num {
      font-family: var(--font-display);
      font-size: 48px; font-weight: 900;
      color: rgba(255,255,255,.18); line-height: 1;
      margin-bottom: 6px;
      letter-spacing: -0.04em;
    }
    .prog-overview-header h3 {
      font-size: 20px; font-weight: 900; color: white;
      line-height: 1.2; margin-bottom: 4px;
    }
    .prog-overview-header .en {
      font-size: 12px; color: rgba(255,255,255,.55);
      letter-spacing: .5px;
    }
    .prog-overview-body {
      padding: 24px 28px; flex: 1; display: flex; flex-direction: column;
    }
    .prog-overview-body p {
      font-size: 14px; color: var(--gray); line-height: 1.75;
      margin-bottom: 20px; flex: 1;
    }
    .prog-overview-tags {
      display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px;
    }
    .prog-overview-tag {
      background: var(--gold-bg);
      border: 1px solid var(--gold-light);
      color: oklch(0.38 0.12 44);
      font-size: 11px; font-weight: 600;
      padding: 3px 10px; border-radius: 100px;
    }
    .prog-overview-link {
      font-size: 14px; font-weight: 700;
      color: var(--gold); display: flex; align-items: center; gap: 6px;
    }
    @media(max-width:900px){ .prog-overview-grid { grid-template-columns: 1fr; } }

    /* ── Outcomes teaser (homepage) ── */
    .outcomes-teaser-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
      margin-top: 32px; align-items: center;
    }
    @media(max-width:800px){ .outcomes-teaser-grid { grid-template-columns: 1fr; } }

    /* ════════════ Growth Story Section ════════════ */
    .growth-section { background: var(--white); }

    /* ── Top split: chart + stat ── */
    .growth-top {
      display: grid;
      grid-template-columns: 380px 1fr;
      gap: 72px;
      align-items: center;
      margin-bottom: 56px;
    }
    .growth-chart-wrap {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 28px;
    }
    .growth-donut-ring {
      position: relative;
      width: 220px;
      height: 220px;
      flex-shrink: 0;
    }
    .growth-donut-ring svg { width: 100%; height: 100%; }
    .growth-donut-center {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      pointer-events: none;
    }
    .growth-donut-center-num {
      font-size: 57px;
      font-weight: 900;
      color: var(--dark);
      font-family: var(--font-display);
      line-height: 1;
    }
    .growth-donut-center-label {
      font-size: 17px;
      color: var(--gray);
      margin-top: 5px;
      line-height: 1.5;
      max-width: 80px;
    }
    .growth-legend {
      display: flex;
      flex-direction: column;
      gap: 10px;
      width: 100%;
    }
    .growth-legend-item {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 20px;
      color: var(--dark);
    }
    .growth-legend-dot {
      width: 12px; height: 12px;
      border-radius: 50%;
      flex-shrink: 0;
    }
    .growth-legend-name { flex: 1; }
    .growth-legend-pct {
      font-weight: 700;
      color: var(--gray);
      font-size: 18px;
    }

    /* ── Right: headline stat + points ── */
    .growth-stat-block { display: flex; flex-direction: column; gap: 28px; }
    .growth-stat-headline {
      display: flex;
      align-items: baseline;
      gap: 16px;
      padding-bottom: 24px;
      border-bottom: 1px solid oklch(0.90 0.018 50);
    }
    .growth-stat-num {
      font-size: clamp(52px, 6vw, 76px);
      font-weight: 900;
      color: var(--orange);
      font-family: var(--font-display);
      line-height: 1;
      letter-spacing: -0.02em;
    }
    .growth-stat-label {
      font-size: 24px;
      font-weight: 600;
      color: var(--dark);
      line-height: 1.55;
    }
    .growth-stat-desc {
      font-size: 22px;
      color: var(--gray);
      line-height: 1.85;
    }
    .growth-points {
      list-style: none;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px 32px;
    }
    .growth-points li {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      font-size: 21px;
      color: var(--dark);
      font-weight: 500;
      line-height: 1.5;
    }
    .growth-points li .gp-icon {
      width: 26px; height: 26px;
      background: var(--orange-bg);
      border: 1.5px solid var(--orange-light);
      border-radius: 50%;
      flex-shrink: 0;
      margin-top: 2px;
      display: flex; align-items: center; justify-content: center;
    }
    .growth-points li .gp-icon svg {
      width: 13px; height: 13px;
      stroke: var(--orange);
    }

    /* ── Bottom dark card ── */
    .growth-bottom {
      background: oklch(0.13 0.012 45);
      border-radius: 16px;
      padding: 44px 52px;
      display: grid;
      grid-template-columns: 1fr 400px;
      gap: 56px;
      align-items: center;
    }
    .growth-globe-wrap {
      display: flex;
      justify-content: center;
      align-items: center;
    }
    #puzzleGlobeWrap svg,
    #puzzleGlobeWrapEn svg {
      width: 100%;
      height: auto;
      max-width: 400px;
      filter: drop-shadow(0 8px 32px rgba(0,0,0,0.45));
    }
    .growth-bottom-label {
      font-size: 17px; letter-spacing: 3px; font-weight: 700;
      color: var(--orange); text-transform: uppercase; margin-bottom: 14px;
    }
    .growth-bottom-title {
      font-size: 33px; font-weight: 800;
      color: var(--white);
      font-family: var(--font-display);
      line-height: 1.3; margin-bottom: 14px;
    }
    .growth-bottom-desc {
      font-size: 20px; color: oklch(0.58 0.025 50);
      line-height: 1.8;
    }
    .growth-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }
    .growth-tag {
      display: flex; align-items: center; gap: 8px;
      padding: 10px 20px;
      border: 1px solid oklch(1 0 0 / 0.13);
      border-radius: 100px;
      color: oklch(0.82 0.02 50);
      font-size: 20px; font-weight: 500;
      background: oklch(1 0 0 / 0.05);
      transition: background .18s, border-color .18s, color .18s;
      cursor: default;
    }
    .growth-tag:hover {
      background: oklch(1 0 0 / 0.10);
      border-color: var(--orange-light);
      color: var(--white);
    }
    .growth-tag svg {
      width: 18px; height: 18px;
      stroke: var(--orange-light); flex-shrink: 0;
    }

    @media (max-width: 960px) {
      .growth-top { grid-template-columns: 1fr; gap: 44px; }
      .growth-chart-wrap { flex-direction: row; align-items: flex-start; }
      .growth-bottom { grid-template-columns: 1fr; gap: 32px; padding: 32px 28px; }
      .growth-globe-wrap { order: -1; }
    }
    @media (max-width: 600px) {
      .growth-chart-wrap { flex-direction: column; align-items: center; }
      .growth-points { grid-template-columns: 1fr; }
    }

    /* ── Left/right illustration split layout ── */
    .illus-split {
      display: grid;
      grid-template-columns: 360px 1fr;
      gap: 52px;
      align-items: center;
      margin: 48px 0;
    }
    .illus-split--img-right {
      grid-template-columns: 1fr 360px;
    }
    .illus-split--img-right .illus-split-img {
      order: 2;
    }
    .illus-split--wide {
      grid-template-columns: 440px 1fr;
    }
    .illus-split--wide.illus-split--img-right {
      grid-template-columns: 1fr 440px;
    }
    .illus-split-img {
      border-radius: 14px;
      overflow: hidden;
      flex-shrink: 0;
    }
    .illus-split-img img {
      width: 100%; display: block;
      object-fit: cover;
    }
    .illus-split-img--portrait img  { aspect-ratio: 3/4; }
    .illus-split-img--landscape img { aspect-ratio: 4/3; }
    .illus-split-img--square img    { aspect-ratio: 1/1; }
    .illus-split-text {
      display: flex; flex-direction: column; gap: 16px;
    }
    @media (max-width: 860px) {
      .illus-split,
      .illus-split--img-right,
      .illus-split--wide,
      .illus-split--wide.illus-split--img-right {
        grid-template-columns: 1fr;
      }
      .illus-split--img-right .illus-split-img { order: 0; }
    }

    /* ── Program strip layout (replaces 3-col grid) ── */
    .prog-strip-list {
      display: flex;
      flex-direction: column;
      gap: 36px;
      margin-top: 48px;
    }
    .prog-strip {
      display: grid;
      grid-template-columns: 420px 1fr;
      border-radius: 16px;
      overflow: hidden;
      box-shadow: 0 4px 28px rgba(0,0,0,.09);
      text-decoration: none;
      color: inherit;
      transition: box-shadow .24s ease-out, transform .24s ease-out;
      min-height: 320px;
    }
    .prog-strip:hover {
      box-shadow: 0 12px 44px rgba(0,0,0,.15);
      transform: translateY(-4px);
    }
    .prog-strip--reverse {
      grid-template-columns: 1fr 420px;
    }
    .prog-strip-img {
      overflow: hidden;
      position: relative;
    }
    .prog-strip-img img {
      width: 100%; height: 100%;
      object-fit: cover;
      display: block;
      transition: transform .45s ease;
    }
    .prog-strip:hover .prog-strip-img img {
      transform: scale(1.05);
    }
    .prog-strip--reverse .prog-strip-img {
      order: 2;
    }
    .prog-strip-content {
      display: flex;
      flex-direction: column;
      background: white;
    }
    .prog-strip-header {
      background: var(--dark);
      padding: 32px 36px 24px;
    }
    .prog-strip-header.orange { background: var(--orange); }
    .prog-strip-header.green  { background: oklch(0.20 0.04 155); }
    .prog-strip-header .prog-overview-num {
      font-size: 52px;
    }
    .prog-strip-header h3 {
      font-size: 21px; font-weight: 900; color: white;
      line-height: 1.2; margin-bottom: 5px;
    }
    .prog-strip-header .en {
      font-size: 12px; color: rgba(255,255,255,.52);
      letter-spacing: .5px;
    }
    .prog-strip-body {
      padding: 28px 36px 32px;
      flex: 1;
      display: flex;
      flex-direction: column;
    }
    .prog-strip-body p {
      font-size: 14px; color: var(--gray); line-height: 1.8;
      margin-bottom: 20px; flex: 1;
    }
    @media (max-width: 960px) {
      .prog-strip,
      .prog-strip--reverse {
        grid-template-columns: 1fr;
        grid-template-rows: 240px auto;
      }
      .prog-strip--reverse .prog-strip-img { order: 0; }
    }
    @media (max-width: 600px) {
      .prog-strip { grid-template-rows: 200px auto; }
      .prog-strip-header { padding: 24px 24px 18px; }
      .prog-strip-body { padding: 20px 24px 24px; }
    }

    /* ── Comparison section with side image ── */
    .cmp-layout {
      display: grid;
      grid-template-columns: 1fr 300px;
      gap: 48px;
      align-items: start;
      margin-top: 40px;
    }
    .cmp-side-img {
      border-radius: 14px;
      overflow: hidden;
      position: sticky;
      top: 96px;
    }
    .cmp-side-img img {
      width: 100%; display: block;
      object-fit: cover;
    }
    @media (max-width: 960px) {
      .cmp-layout { grid-template-columns: 1fr; }
      .cmp-side-img { display: none; }
    }


    /* ── course-feature — editorial course showcase ── */
    .course-feature {
      border-radius: 16px;
      overflow: hidden;
      box-shadow: 0 8px 48px rgba(0,0,0,.14);
      margin-top: 40px;
    }
    .course-feature-header {
      background: var(--dark);
      padding: 36px 48px;
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 32px;
      flex-wrap: wrap;
    }
    .course-feature-chips {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      flex-shrink: 0;
      max-width: 320px;
    }
    .course-feature-body {
      display: grid;
      grid-template-columns: 1fr 1fr;
    }
    .course-feature-img {
      position: relative;
      min-height: 420px;
      overflow: hidden;
    }
    .course-feature-img img {
      width: 100%; height: 100%;
      object-fit: cover;
      object-position: center;
      display: block;
      transition: transform .5s ease;
    }
    .course-feature:hover .course-feature-img img { transform: scale(1.04); }
    .course-feature-steps {
      background: white;
      padding: 40px 44px;
      display: flex;
      flex-direction: column;
      gap: 24px;
    }
    .course-feature-mentors {
      background: oklch(0.97 0.008 60);
      padding: 36px 48px;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      border-top: 1px solid rgba(0,0,0,.06);
    }
    .course-feature-mentors .mentor-card {
      background: white;
      margin: 0;
    }
    @media (max-width: 900px) {
      .course-feature-header { padding: 28px 28px; }
      .course-feature-body { grid-template-columns: 1fr; }
      .course-feature-img { min-height: 260px; }
      .course-feature-steps { padding: 28px 28px; }
      .course-feature-mentors { grid-template-columns: 1fr; padding: 28px 28px; }
    }
    @media (max-width: 600px) {
      .course-feature-chips { max-width: 100%; }
    }

    /* ══════════════════════════════════════════════
       MAGAZINE LAYOUT — program pages (P1 / P2 / P3)
       ══════════════════════════════════════════════ */

    /* Shared: section title with gold left bar */
    .section-bar {
      border-left: 3px solid var(--gold);
      padding-left: 12px;
    }

    /* ── P1: two-column magazine intro ── */
    .mag-intro-2col {
      display: grid;
      grid-template-columns: 1fr 300px;
      gap: 36px;
      align-items: start;
      margin-bottom: 40px;
    }
    .mag-intro-img img {
      width: 100%;
      aspect-ratio: 3/4;
      object-fit: cover;
      border-radius: 6px;
      display: block;
    }
    @media (max-width: 800px) {
      .mag-intro-2col { grid-template-columns: 1fr; }
      .mag-intro-img { order: -1; }
      .mag-intro-img img { aspect-ratio: 16/9; }
    }

    /* ── P1: full-width image divider ── */
    .mag-img-divider {
      width: 100%;
      height: 300px;
      object-fit: cover;
      border-radius: 6px;
      display: block;
      margin: 36px 0 28px;
    }

    /* ── P1: outcomes with portrait side image ── */
    .mag-outcomes-split {
      display: grid;
      grid-template-columns: 1fr 220px;
      gap: 28px;
      align-items: start;
    }
    .mag-outcomes-img img {
      width: 100%;
      aspect-ratio: 3/4;
      object-fit: cover;
      border-radius: 6px;
      display: block;
      position: sticky;
      top: 80px;
    }
    @media (max-width: 800px) {
      .mag-outcomes-split { grid-template-columns: 1fr; }
      .mag-outcomes-img { display: none; }
    }

    /* ── P2: editorial banner (wide, short) ── */
    .mag-editorial-banner {
      width: 100%;
      height: 260px;
      object-fit: cover;
      border-radius: 6px;
      display: block;
      margin: 4px 0 36px;
    }

    /* ── P2: vertical flow timeline with side image ── */
    .mag-vflow-grid {
      display: grid;
      grid-template-columns: 1fr 240px;
      gap: 36px;
      align-items: start;
      margin-bottom: 8px;
    }
    .mag-vflow-steps {
      border-left: 2px solid var(--gold);
      padding-left: 28px;
    }
    .mag-vstep {
      position: relative;
      padding-bottom: 28px;
    }
    .mag-vstep:last-child { padding-bottom: 0; }
    .mag-vstep::before {
      content: '';
      position: absolute;
      left: -35px;
      top: 5px;
      width: 10px;
      height: 10px;
      background: var(--gold);
      border-radius: 50%;
      border: 2px solid white;
      box-shadow: 0 0 0 2px var(--gold);
    }
    .mag-vstep-num {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--gold);
      margin-bottom: 5px;
    }
    .mag-vstep-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--dark);
      margin-bottom: 5px;
    }
    .mag-vstep-desc {
      font-size: 12px;
      color: var(--gray);
      line-height: 1.6;
    }
    .mag-vflow-img img {
      width: 100%;
      aspect-ratio: 3/4;
      object-fit: cover;
      border-radius: 6px;
      display: block;
      position: sticky;
      top: 80px;
    }
    @media (max-width: 800px) {
      .mag-vflow-grid { grid-template-columns: 1fr; }
      .mag-vflow-img { display: none; }
    }
    @media (min-width: 2560px) {
      .mag-vstep-title { font-size: 16px; }
      .mag-vstep-desc { font-size: 14px; }
    }

    /* ── P2: two small images above outcomes ── */
    .mag-duo-imgs {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 24px;
    }
    .mag-duo-imgs img {
      width: 100%;
      height: 180px;
      object-fit: cover;
      border-radius: 6px;
      display: block;
    }
    @media (max-width: 600px) { .mag-duo-imgs { grid-template-columns: 1fr; } }

    /* ── P3: three-image gallery ── */
    .mag-img-trio {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-bottom: 32px;
    }
    .mag-img-trio img {
      width: 100%;
      height: 210px;
      object-fit: cover;
      border-radius: 6px;
      display: block;
    }
    @media (max-width: 700px) {
      .mag-img-trio { grid-template-columns: 1fr 1fr; }
      .mag-img-trio img:last-child { display: none; }
    }

    /* ══════════════════════════════════════════════
       P1 · PHASE TIMELINE (replaces .phases cards)
       ══════════════════════════════════════════════ */
    .phase-timeline {
      margin-top: 20px;
      margin-bottom: 36px;
      border-radius: 6px;
      overflow: hidden;
    }
    .ptime-phases {
      display: grid;
      grid-template-columns: 1fr 48px 1fr;
    }
    .ptime-block {
      padding: 32px 28px;
      position: relative;
      overflow: hidden;
    }
    .ptime-block--1 { background: var(--dark); color: white; }
    .ptime-block--2 { background: var(--gold); color: white; }
    .ptime-bg-num {
      position: absolute;
      bottom: -20px; right: 10px;
      font-family: var(--font-display);
      font-size: 120px;
      font-weight: 900;
      color: rgba(255,255,255,.07);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }
    .ptime-label {
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      opacity: 0.6;
      margin-bottom: 10px;
    }
    .ptime-block h5 {
      font-size: 21px;
      font-weight: 800;
      margin-bottom: 10px;
      font-family: var(--font-display);
      letter-spacing: -0.01em;
    }
    .ptime-block p {
      font-size: 15px;
      line-height: 1.75;
      opacity: 0.88;
    }
    .ptime-connector {
      background: oklch(0.20 0.055 42);
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--gold-light, #d4a84b);
      font-size: 22px;
      font-weight: 300;
    }
    .ptime-meta {
      display: grid;
      grid-template-columns: 1fr 1fr;
    }
    .ptime-meta-item {
      padding: 24px 28px;
      background: var(--gold-bg);
      border-top: 1px solid oklch(0.88 0.06 46);
    }
    .ptime-meta-item + .ptime-meta-item {
      border-left: 1px solid oklch(0.88 0.06 46);
    }
    .ptime-meta-item h5 {
      font-size: 13px;
      font-weight: 700;
      color: var(--gold);
      text-transform: uppercase;
      letter-spacing: 1.5px;
      margin-bottom: 8px;
    }
    .ptime-meta-item p {
      font-size: 15px;
      color: var(--gray);
      line-height: 1.7;
    }
    @media (max-width: 700px) {
      .ptime-phases { grid-template-columns: 1fr; }
      .ptime-connector { height: 28px; width: 100%; }
      .ptime-meta { grid-template-columns: 1fr; }
      .ptime-meta-item + .ptime-meta-item { border-left: none; }
    }

    /* ══════════════════════════════════════════════
       P1 · OUTCOMES BOLD CARDS (replaces outcomes-list)
       ══════════════════════════════════════════════ */
    .outcomes-cards {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 10px;
      margin-top: 4px;
      margin-bottom: 0;
    }
    .oc-card {
      padding: 30px 24px 26px;
      border-radius: 6px;
      position: relative;
      overflow: hidden;
    }
    /* colour rotation: dark / cream / dark-warm */
    .oc-card:nth-child(3n+1) { background: var(--dark); }
    .oc-card:nth-child(3n+2) { background: var(--gold-bg); border: 1px solid oklch(0.88 0.06 46); }
    .oc-card:nth-child(3n)   { background: oklch(0.22 0.045 42); }
    .oc-num {
      display: block;
      font-family: var(--font-display);
      font-size: 54px;
      font-weight: 900;
      line-height: 1;
      margin-bottom: 10px;
    }
    .oc-card:nth-child(3n+1) .oc-num { color: rgba(255,255,255,.10); }
    .oc-card:nth-child(3n+2) .oc-num { color: oklch(0.86 0.065 46); }
    .oc-card:nth-child(3n)   .oc-num { color: rgba(255,255,255,.10); }
    .oc-text {
      font-size: 25px;
      line-height: 1.7;
    }
    .oc-card:nth-child(3n+1) .oc-text { color: rgba(255,255,255,.82); }
    .oc-card:nth-child(3n+2) .oc-text { color: var(--dark); }
    .oc-card:nth-child(3n)   .oc-text { color: rgba(255,255,255,.80); }
    @media (max-width: 700px) {
      .outcomes-cards { grid-template-columns: 1fr 1fr; }
    }
    @media (max-width: 480px) {
      .outcomes-cards { grid-template-columns: 1fr; }
    }

    /* ── short editorial image between outcomes & advantages ── */
    .mag-img-half {
      width: 100%;
      height: 220px;
      object-fit: cover;
      border-radius: 6px;
      display: block;
      margin: 32px 0 0;
    }

    /* ══════════════════════════════════════════════
       POLISH — P1 Phase Timeline
       ══════════════════════════════════════════════ */

    /* Switch from 3-col (connector column) to 2-col flex with clip-path chevron */
    .phase-timeline .ptime-phases {
      display: flex;
      align-items: stretch;
    }
    .phase-timeline .ptime-block--1 {
      flex: 1;
      /* Chevron pointing right: clip dark panel into an arrow shape */
      clip-path: polygon(0 0, calc(100% - 22px) 0, 100% 50%, calc(100% - 22px) 100%, 0 100%);
      padding-right: 52px; /* keep text clear of the pointed tip */
      position: relative;
      z-index: 2;
    }
    .phase-timeline .ptime-block--2 {
      flex: 1;
      margin-left: -22px; /* slide under the chevron tip */
      padding-left: 48px; /* push text past overlap zone */
      z-index: 1;
    }
    /* hide the connector div if it still exists in markup */
    .phase-timeline .ptime-connector { display: none; }
    @media (max-width: 700px) {
      .phase-timeline .ptime-block--1 {
        clip-path: none;
        padding-right: 28px;
        margin-right: 0;
      }
      .phase-timeline .ptime-block--2 {
        margin-left: 0;
        padding-left: 28px;
      }
    }

    /* ══════════════════════════════════════════════
       POLISH — P1 Outcomes cards
       ══════════════════════════════════════════════ */

    /* Replace dark-warm 3rd slot with gold; unify with top accent border */
    .outcomes-cards .oc-card:nth-child(3n) {
      background: var(--gold);
    }
    .outcomes-cards .oc-card:nth-child(3n) .oc-num {
      color: rgba(255,255,255,.18);
    }
    .outcomes-cards .oc-card:nth-child(3n) .oc-text {
      color: rgba(255,255,255,.92);
    }
    /* Thin gold accent strip on top of every card */
    .outcomes-cards .oc-card::before {
      content: '';
      display: block;
      height: 2px;
      background: var(--gold);
      border-radius: 2px 2px 0 0;
      position: absolute;
      top: 0; left: 0; right: 0;
    }
    /* Gold strip on gold cards becomes white */
    .outcomes-cards .oc-card:nth-child(3n)::before {
      background: rgba(255,255,255,.35);
    }
    /* Slightly more visible number */
    .outcomes-cards .oc-card:nth-child(3n+1) .oc-num { color: rgba(255,255,255,.15); }
    .outcomes-cards .oc-card:nth-child(3n+2) .oc-num { color: oklch(0.82 0.07 46); }
    /* Bump text size */
    .outcomes-cards .oc-text { font-size: 13.5px; }

    /* ══════════════════════════════════════════════
       P3 — ASYMMETRIC PHASES GRID
       ══════════════════════════════════════════════ */
    .phases-asym {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0;
      border-radius: 6px;
      overflow: hidden;
      margin-top: 20px;
      margin-bottom: 36px;
      border: 1px solid oklch(0.88 0.06 46);
    }
    .phases-asym-featured {
      background: oklch(0.20 0.04 155);
      padding: 32px 28px;
      position: relative;
      overflow: hidden;
      color: white;
    }
    .phases-asym-featured::after {
      content: '01';
      position: absolute;
      bottom: -22px; right: 8px;
      font-family: var(--font-display);
      font-size: 120px;
      font-weight: 900;
      color: rgba(255,255,255,.07);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }
    .phases-asym-label {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: rgba(255,255,255,.5);
      margin-bottom: 12px;
    }
    .phases-asym-featured h5 {
      font-size: 17px;
      font-weight: 800;
      font-family: var(--font-display);
      color: white;
      margin-bottom: 10px;
      letter-spacing: -0.01em;
    }
    .phases-asym-featured p {
      font-size: 13px;
      line-height: 1.7;
      color: rgba(255,255,255,.78);
    }
    .phases-asym-col {
      display: flex;
      flex-direction: column;
      border-left: 1px solid oklch(0.88 0.06 46);
    }
    .phases-asym-col .phase-card {
      border-radius: 0;
      border: none;
      border-bottom: 1px solid oklch(0.88 0.06 46);
      border-left: 3px solid oklch(0.44 0.10 155);
      flex: 1;
      min-height: 0;
    }
    .phases-asym-col .phase-card:last-child { border-bottom: none; }
    .phases-asym-col .phase-card h5 { color: oklch(0.35 0.10 155); }
    @media (max-width: 700px) {
      .phases-asym { grid-template-columns: 1fr; }
      .phases-asym-col { border-left: none; border-top: 1px solid oklch(0.88 0.06 46); }
      .phases-asym-col .phase-card { border-left: 3px solid oklch(0.44 0.10 155); }
    }

    /* ══════════════════════════════════════════════
       P3 — BENTO PHASES GRID
       ══════════════════════════════════════════════ */
    .phases-bento {
      display: grid;
      grid-template-columns: 2fr 1fr;
      gap: 8px;
      margin-top: 20px;
      margin-bottom: 36px;
    }
    /* ── Item 1: tall green feature (spans 2 rows) ── */
    .pb-item-1 {
      grid-column: 1;
      grid-row: 1 / 3;
      background: oklch(0.20 0.04 155);
      color: white;
      border-radius: 6px;
      padding: 36px 32px;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      min-height: 260px;
    }
    .pb-item-1::before {
      content: '01';
      position: absolute;
      top: -8px; right: 10px;
      font-family: var(--font-display);
      font-size: 160px;
      font-weight: 900;
      color: rgba(255,255,255,.07);
      line-height: 1;
      pointer-events: none;
      user-select: none;
    }
    .pb-item-1-label {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: rgba(255,255,255,.42);
      margin-bottom: 14px;
    }
    .pb-item-1 h5 {
      font-size: 20px;
      font-weight: 800;
      font-family: var(--font-display);
      color: white;
      margin-bottom: 10px;
      letter-spacing: -0.02em;
      line-height: 1.2;
    }
    .pb-item-1 p {
      font-size: 13px;
      line-height: 1.7;
      color: rgba(255,255,255,.70);
    }
    /* ── Items 2 & 3: small right cards ── */
    .pb-item-2,
    .pb-item-3 {
      border-radius: 6px;
      padding: 22px 20px;
      position: relative;
      border-left: 3px solid oklch(0.44 0.10 155);
    }
    .pb-item-2 {
      grid-column: 2;
      grid-row: 1;
      background: var(--gold-bg);
      border: 1px solid oklch(0.88 0.06 46);
      border-left: 3px solid oklch(0.44 0.10 155);
    }
    .pb-item-3 {
      grid-column: 2;
      grid-row: 2;
      background: white;
      border: 1px solid oklch(0.88 0.06 46);
      border-left: 3px solid oklch(0.44 0.10 155);
    }
    .pb-item-num {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2px;
      color: oklch(0.44 0.10 155);
      margin-bottom: 8px;
      text-transform: uppercase;
    }
    .pb-item-2 h5,
    .pb-item-3 h5 {
      font-size: 13px;
      font-weight: 700;
      color: oklch(0.32 0.10 155);
      margin-bottom: 7px;
      line-height: 1.3;
    }
    .pb-item-2 p,
    .pb-item-3 p {
      font-size: 12px;
      color: var(--gray);
      line-height: 1.65;
    }
    /* ── Item 4: full-width bottom strip ── */
    .pb-item-4 {
      grid-column: 1 / -1;
      background: oklch(0.16 0.035 155);
      border-radius: 6px;
      padding: 22px 32px;
      display: grid;
      grid-template-columns: auto 1fr;
      align-items: center;
      gap: 28px;
    }
    .pb-item-4-left {
      display: flex;
      flex-direction: column;
      gap: 5px;
      border-right: 1px solid rgba(255,255,255,.14);
      padding-right: 28px;
      min-width: 0;
    }
    .pb-item-4-num {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: rgba(255,255,255,.38);
    }
    .pb-item-4-left h5 {
      font-size: 15px;
      font-weight: 800;
      color: white;
      font-family: var(--font-display);
      white-space: nowrap;
      letter-spacing: -0.01em;
    }
    .pb-item-4 p {
      font-size: 13px;
      color: rgba(255,255,255,.65);
      line-height: 1.65;
      margin: 0;
    }
    /* responsive */
    @media (max-width: 700px) {
      .phases-bento { grid-template-columns: 1fr; }
      .pb-item-1 { grid-row: auto; min-height: 200px; }
      .pb-item-2 { grid-column: 1; grid-row: auto; }
      .pb-item-3 { grid-column: 1; grid-row: auto; }
      .pb-item-4 { grid-column: 1; grid-template-columns: 1fr; gap: 16px; }
      .pb-item-4-left {
        border-right: none;
        padding-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.14);
        padding-bottom: 14px;
      }
      .pb-item-4-left h5 { white-space: normal; }
    }

    /* ══════════════════════════════════════════════
       NAV — enhanced hover: sliding gold underline
       ══════════════════════════════════════════════ */

    /* Add relative positioning + transition to all nav links */
    .nav-links a {
      position: relative;
      padding-bottom: 3px;
      transition: color .2s ease;
    }
    /* Sliding underline via ::after */
    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0;
      width: 0;
      height: 2px;
      background: var(--gold);
      border-radius: 1px;
      transition: width .25s ease;
    }
    .nav-links a:hover::after,
    .nav-links a.active::after {
      width: 100%;
    }

    /* Same treatment for the dropdown trigger (it's a <span>) */
    .nav-dropdown-trigger {
      position: relative;
      padding-bottom: 3px;
    }
    .nav-dropdown-trigger::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0;
      width: 0;
      height: 2px;
      background: var(--gold);
      border-radius: 1px;
      transition: width .25s ease;
    }
    .nav-dropdown:hover .nav-dropdown-trigger::after,
    .nav-dropdown-trigger.active::after {
      width: 100%;
    }

    /* Dropdown menu items: left-bar slide instead of underline */
    .nav-dropdown-menu a {
      padding-left: 18px;
      border-left: 2px solid transparent;
      transition: color .15s, background .15s, border-color .15s, padding-left .15s;
    }
    .nav-dropdown-menu a:hover {
      border-left-color: var(--gold);
      padding-left: 22px;
    }
