    :root {
      --paper: #eef2f7;
      --ink: #1c1917;
      --muted: #57534e;
      --line: #e2e8f0;
      --accent: #ea580c;
      --accent-soft: #fff7ed;
      --teal: #0f766e;
      --teal-soft: #ccfbf1;
      --shadow: 0 25px 50px -12px rgba(28, 25, 23, 0.12);
      --radius: 1.25rem;
      --navy: #0a1628;
      --navy-bright: #1e3a8a;
    }

    *, *::before, *::after {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: "DM Sans", system-ui, sans-serif;
      color: var(--ink);
      background: var(--paper);
      min-height: 100vh;
      -webkit-font-smoothing: antialiased;
      line-height: 1.5;
    }

    .bg {
      position: fixed;
      inset: 0;
      z-index: -1;
      background:
        radial-gradient(ellipse 90% 60% at 100% 0%, rgba(59, 130, 246, 0.09), transparent 55%),
        radial-gradient(ellipse 70% 50% at 0% 100%, rgba(15, 118, 110, 0.1), transparent 50%),
        linear-gradient(165deg, #f1f5f9 0%, #e8eef5 48%, #e2e8f0 100%);
    }

    .wrap {
      box-sizing: border-box;
      width: 100%;
      max-width: 1080px;
      margin: 0 auto;
      padding: clamp(1rem, 3vw, 2rem);
      min-height: 100vh;
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: stretch;
    }

    .panel {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-template-rows: auto;
      gap: clamp(1.25rem, 3vw, 2rem);
      align-items: start;
      background: #fff;
      border: 1px solid var(--line);
      border-radius: calc(var(--radius) + 4px);
      box-shadow: var(--shadow);
      padding: clamp(1.25rem, 2.5vw, 1.75rem);
      position: relative;
      overflow: hidden;
    }

    /* Desktop: right half — same navy gradient as mobile */
    .panel::before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      width: 50%;
      height: 100%;
      z-index: 0;
      background: linear-gradient(180deg, var(--navy) 0%, var(--navy-bright) 55%, #0f172a 100%);
      border-radius: 0 calc(var(--radius) + 4px) calc(var(--radius) + 4px) 0;
      pointer-events: none;
    }

    /* Desktop: left column = copy-hero (row1) + copy-rest (row2); right column = art spanning both rows */
    .copy-hero {
      grid-column: 1;
      grid-row: 1;
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
    }

    .copy-rest {
      grid-column: 1;
      grid-row: 2;
      position: relative;
      z-index: 1;
      display: flex;
      flex-direction: column;
    }

    .art {
      grid-column: 2;
      grid-row: 1 / span 2;
      align-self: stretch;
      position: relative;
      z-index: 1;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .logo {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
      margin-bottom: 1.75rem;
      font-family: "DM Sans", sans-serif;
      font-weight: 700;
      font-size: 1.15rem;
      letter-spacing: -0.03em;
      color: var(--ink);
    }

    .logo-badge {
      width: 2.25rem;
      height: 2.25rem;
      border-radius: 0.65rem;
      background: linear-gradient(145deg, var(--teal), #0d9488);
      display: grid;
      place-items: center;
      flex-shrink: 0;
      box-shadow: 0 2px 8px rgba(13, 148, 136, 0.35);
    }

    .logo-badge svg {
      width: 15px;
      height: 15px;
      display: block;
    }

    h1 {
      font-size: clamp(1.85rem, 4.5vw, 2.35rem);
      font-weight: 700;
      letter-spacing: 0.02em;
      line-height: 1.25;
      margin-bottom: 0.75rem;
      color: var(--ink);
    }

    h1 em {
      font-style: normal;
      color: var(--accent);
    }

    .subline {
      font-size: 1rem;
      font-weight: 500;
      color: var(--muted);
      margin-bottom: 0.75rem;
      max-width: 28em;
    }

    .lede {
      font-size: 1rem;
      color: var(--muted);
      margin-bottom: 1.75rem;
      max-width: 28em;
    }

    .bullets {
      list-style: none;
      margin-bottom: 1.5rem;
    }

    .bullets li {
      display: flex;
      align-items: flex-start;
      gap: 0.6rem;
      font-size: 0.92rem;
      color: var(--muted);
      margin-bottom: 0.65rem;
    }

    .bullets li::before {
      content: "";
      width: 1.25rem;
      height: 1.25rem;
      margin-top: 0.15rem;
      flex-shrink: 0;
      background: var(--teal-soft);
      border-radius: 0.35rem;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8l2.5 2.5L12 5' stroke='%230f766e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: center;
      background-size: 0.75rem;
    }

    .cta {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0;
      padding: 0;
      border-radius: 999px;
      text-decoration: none;
      font-weight: 600;
      font-size: 0.92rem;
      letter-spacing: 0.03em;
      cursor: pointer;
      align-self: flex-start;
      margin-top: 0;
      margin-bottom: 1.25rem;
      border: none;
      background: transparent;
      box-shadow: none;
    }

    .cta--support:focus-visible {
      outline: 2px solid rgba(255, 255, 255, 0.45);
      outline-offset: 3px;
    }

    /* 桌面：黑底白字 */
    .cta--support {
      gap: 0.65rem;
      padding: 0.5rem 1.2rem 0.5rem 0.5rem;
      background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
      color: #fafafa;
      border: 1px solid rgba(255, 255, 255, 0.1);
      box-shadow:
        0 4px 16px rgba(0, 0, 0, 0.18),
        0 1px 0 rgba(255, 255, 255, 0.06) inset;
    }

    .cta-chip {
      width: 2.5rem;
      height: 2.5rem;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.12);
      display: grid;
      place-items: center;
      flex-shrink: 0;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08);
    }

    .cta-chip svg {
      width: 1.2rem;
      height: 1.2rem;
      stroke: #fff;
    }

    .cta-label {
      padding-right: 0.1rem;
    }

    .art-img {
      width: 100%;
      max-width: min(200px, 55vw);
      height: auto;
      display: block;
      border-radius: 1.25rem;
      filter: drop-shadow(0 14px 28px rgba(28, 25, 23, 0.1));
    }

    /* 全宽深色页脚（参考炭灰底 + 白字） */
    .site-footer {
      background: #212529;
      color: rgba(255, 255, 255, 0.92);
      padding: clamp(2.25rem, 5vw, 3.5rem) clamp(1.25rem, 4vw, 2rem) 2rem;
      margin-top: 0;
    }

    .site-footer__inner {
      max-width: 1080px;
      margin: 0 auto;
    }

    .site-footer__grid {
      display: grid;
      gap: clamp(1.75rem, 4vw, 2.5rem);
      grid-template-columns: 1fr;
    }

    @media (min-width: 768px) {
      .site-footer__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: start;
      }

      .site-footer__span-wide {
        grid-column: 1 / -1;
      }
    }

    .footerheads {
      font-family: "Montserrat", "DM Sans", system-ui, sans-serif;
      font-weight: 700;
      font-size: clamp(1.1rem, 2.5vw, 1.35rem);
      color: #fff;
      margin: 0 0 0.85rem;
      letter-spacing: 0.02em;
    }

    .site-footer p {
      font-size: 0.94rem;
      line-height: 1.65;
      color: rgba(255, 255, 255, 0.88);
      margin: 0 0 0.75rem;
    }

    .site-footer a {
      color: #fff;
      text-decoration: underline;
      text-underline-offset: 0.15em;
    }

    .site-footer a:hover {
      color: #e2e8f0;
    }

    .site-footer__featured {
      display: block;
      width: 100%;
      max-width: 520px;
      height: auto;
      margin-top: 0.5rem;
    }

    .site-footer__social {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 2.75rem;
      height: 2.75rem;
      margin-top: 0.35rem;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.08);
      border: 1px solid rgba(255, 255, 255, 0.18);
      color: #fff;
      text-decoration: none;
      transition: background 0.15s ease, border-color 0.15s ease;
    }

    .site-footer__social:hover {
      background: rgba(255, 255, 255, 0.14);
      border-color: rgba(255, 255, 255, 0.28);
      color: #fff;
    }

    .site-footer__social svg {
      width: 1.35rem;
      height: 1.35rem;
    }

    .site-footer__legal {
      margin-top: clamp(2rem, 4vw, 2.75rem);
      padding-top: 1.75rem;
      border-top: 1px solid rgba(255, 255, 255, 0.12);
      font-size: 0.8rem;
      line-height: 1.65;
      color: rgba(255, 255, 255, 0.75);
      max-width: 52rem;
    }

    .site-footer__legal p + p {
      margin-top: 1rem;
    }

    .site-footer__copy {
      margin-top: 1.75rem;
      text-align: center;
      font-size: 0.75rem;
      color: rgba(255, 255, 255, 0.4);
    }

    /* Desktop: hero / rest 间距由栅格 row-gap 控制，避免与 CTA margin 重复叠加 */
    @media (min-width: 821px) {
      .panel {
        gap: 1.25rem clamp(1.5rem, 3vw, 2.5rem);
      }

      .logo {
        margin-bottom: 1.1rem;
      }

      h1 {
        margin-bottom: 0.5rem;
      }

      .subline {
        margin-bottom: 0.5rem;
      }

      .copy-hero .cta--support {
        margin-bottom: 0.85rem;
      }

      .copy-rest {
        margin-top: 0;
        padding-top: 0;
      }

      .copy-rest .lede {
        margin-top: 0;
        margin-bottom: 1rem;
      }

      .copy-rest .bullets {
        margin-bottom: 0;
      }

      /* 与上方主内容区拉开距离，左右与 .wrap 对齐感一致 */
      .site-footer {
        margin-top: clamp(2.5rem, 5vw, 4rem);
        padding: clamp(2.75rem, 4vw, 3.75rem) clamp(1rem, 3vw, 2rem) clamp(2.25rem, 3vw, 3rem);
      }

      .site-footer__grid {
        gap: clamp(2rem, 3vw, 2.75rem) clamp(1.5rem, 3vw, 2.5rem);
      }

      .site-footer__legal {
        margin-top: clamp(2.25rem, 4vw, 3rem);
        width: 100%;
        max-width: 100%;
      }

      .site-footer__copy {
        margin-top: clamp(1.75rem, 3vw, 2.25rem);
      }
    }

    /* Mobile: hero → art → lede/rest (normal flow) */
    @media (max-width: 820px) {
      body {
        background: var(--navy);
        color: #fff;
      }

      .bg {
        background: linear-gradient(180deg, var(--navy) 0%, var(--navy-bright) 55%, #0f172a 100%);
      }

      .wrap {
        justify-content: center;
        align-items: stretch;
        padding: clamp(1rem, 4vw, 2rem) 0;
        min-height: 100vh;
        min-height: 100dvh;
      }

      .panel {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        background: transparent;
        border: none;
        box-shadow: none;
        border-radius: 0;
        padding: clamp(1.25rem, 5vw, 2rem) 1.25rem 1.5rem;
        gap: 1.35rem;
      }

      .panel::before {
        display: none;
      }

      .copy-hero {
        grid-column: unset;
        grid-row: unset;
        order: 1;
        width: 100%;
        text-align: center;
        align-items: center;
        padding: 0;
      }

      .copy-hero .logo {
        justify-content: center;
        color: #fff;
        margin-bottom: 1rem;
      }

      .copy-hero h1 {
        color: #fff;
        font-size: clamp(1.45rem, 5.5vw, 1.85rem);
      }

      .copy-hero h1 em {
        color: #fde68a;
      }

      .copy-hero .subline {
        color: rgba(255, 255, 255, 0.82);
        margin-left: auto;
        margin-right: auto;
      }

      .copy-rest {
        grid-column: unset;
        grid-row: unset;
        order: 3;
        width: 100%;
        text-align: center;
        align-items: center;
        padding: 0;
        margin-top: 0;
      }

      .copy-rest .lede {
        color: rgba(255, 255, 255, 0.78);
        margin-top: 0;
        margin-bottom: 1rem;
        margin-left: auto;
        margin-right: auto;
      }

      .copy-rest .bullets {
        text-align: left;
        max-width: 20rem;
        margin-left: auto;
        margin-right: auto;
      }

      .copy-rest .bullets li {
        color: rgba(255, 255, 255, 0.75);
      }

      .copy-rest .bullets li::before {
        background: rgba(255, 255, 255, 0.15);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 8l2.5 2.5L12 5' stroke='%2393c5fd' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
      }

      /* 手机：白底深字，与桌面黑底形成对照 */
      .copy-hero .cta--support {
        align-self: center;
        margin-bottom: 1rem;
        background: #fff;
        color: #171717;
        border: 1px solid rgba(15, 23, 42, 0.08);
        box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
      }

      .copy-hero .cta--support:focus-visible {
        outline-color: #93c5fd;
      }

      /* 与桌面相反：浅底 + 深色图标（路径为 currentColor，需设 color） */
      .copy-hero .cta-chip {
        color: #1e293b;
        background: rgba(15, 23, 42, 0.06);
        box-shadow:
          inset 0 1px 0 rgba(255, 255, 255, 0.95),
          0 1px 2px rgba(15, 23, 42, 0.06);
      }

      .copy-hero .cta-chip svg {
        stroke: currentColor;
        color: inherit;
      }

      .art {
        grid-column: unset;
        grid-row: unset;
        order: 2;
        align-self: stretch;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        min-height: 0;
        padding: 0;
        margin-bottom: 0;
      }

      .art-inner {
        position: relative;
        display: inline-block;
        max-width: min(240px, 68vw);
      }

      /* 插画底部：渐变过渡到黑，与上移的 copy-rest 衔接 */
      .art-inner::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: 0;
        height: min(42%, 140px);
        pointer-events: none;
        z-index: 1;
        border-radius: inherit;
        background: linear-gradient(
          to top,
          #0a0a0a 0%,
          rgba(10, 10, 10, 0.82) 28%,
          rgba(0, 0, 0, 0.45) 62%,
          transparent 100%
        );
      }

      .art-img {
        position: relative;
        z-index: 0;
        width: auto;
        max-width: min(240px, 68vw);
        height: auto;
        border-radius: 0;
        filter: none;
        object-fit: contain;
        object-position: top center;
        max-height: min(42vh, 340px);
        display: block;
      }
    }
