:root {
      --bg-obsidian: #05070e;
      --bg-card: rgba(13, 18, 33, 0.78);
      --gold-100: #fff8e6;
      --gold-200: #f6e1b3;
      --gold-400: #d8ad56;
      --gold-600: #9d7123;
      --emerald: #10b981;
      --text-main: #f8fafc;
      --text-sub: #9ca8be;
      --border-gold: rgba(216, 173, 86, 0.34);
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
      -webkit-tap-highlight-color: transparent;
    }

    html {
      scroll-behavior: smooth;
      background-color: #030408;
    }

    body {
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", "PingFang TC", "Noto Sans CJK TC", sans-serif;
      background-color: #030408;
      color: var(--text-main);
      line-height: 1.55;
      display: flex;
      justify-content: center;
      min-height: 100vh;
      overflow-x: hidden;
    }

    /* 手機端最大寬度 640px 主視口容器 */
    .mobile-shell {
      width: 100%;
      max-width: 640px;
      background: linear-gradient(180deg, #060913 0%, #090e1d 45%, #05070e 100%);
      min-height: 100vh;
      position: relative;
      padding-bottom: 92px;
      box-shadow: 0 0 60px rgba(0, 0, 0, 0.9);
      border-left: 1px solid rgba(216, 173, 86, 0.14);
      border-right: 1px solid rgba(216, 173, 86, 0.14);
      overflow: hidden;
    }

    /* 動態背景層 1：流金星塵 + 實時脈衝金融K線畫布 */
    #luxuryCanvas {
      position: fixed;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 100%;
      max-width: 640px;
      height: 100vh;
      pointer-events: none;
      z-index: 0;
    }

    /* 動態背景層 2：極光呼吸光暈球體 */
    .ambient-orb {
      position: fixed;
      border-radius: 50%;
      filter: blur(75px);
      pointer-events: none;
      z-index: 0;
      opacity: 0.42;
    }

    .orb-gold {
      width: 280px;
      height: 280px;
      background: radial-gradient(circle, rgba(216, 173, 86, 0.55), transparent 70%);
      top: -60px;
      right: calc(50% - 310px);
      animation: floatOrb1 11s ease-in-out infinite alternate;
    }

    .orb-blue {
      width: 310px;
      height: 310px;
      background: radial-gradient(circle, rgba(30, 64, 175, 0.48), transparent 70%);
      bottom: 8%;
      left: calc(50% - 310px);
      animation: floatOrb2 14s ease-in-out infinite alternate;
    }

    .orb-emerald {
      width: 200px;
      height: 200px;
      background: radial-gradient(circle, rgba(16, 185, 129, 0.25), transparent 70%);
      top: 46%;
      right: calc(50% - 260px);
      animation: floatOrb1 16s ease-in-out infinite alternate-reverse;
    }

    @keyframes floatOrb1 {
      0% { transform: translate(0, 0) scale(1); }
      100% { transform: translate(-28px, 45px) scale(1.16); }
    }

    @keyframes floatOrb2 {
      0% { transform: translate(0, 0) scale(1); }
      100% { transform: translate(32px, -38px) scale(1.14); }
    }

    /* 動態背景層 3：奢華細格紋與垂直流光線 */
    .grid-lines {
      position: fixed;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 100%;
      max-width: 640px;
      height: 100vh;
      background-image:
        linear-gradient(to right, rgba(216, 173, 86, 0.04) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(216, 173, 86, 0.04) 1px, transparent 1px);
      background-size: 40px 40px;
      pointer-events: none;
      z-index: 0;
    }

    .light-beam {
      position: fixed;
      top: -120px;
      width: 1px;
      height: 140px;
      background: linear-gradient(180deg, transparent, rgba(246, 225, 179, 0.7), transparent);
      pointer-events: none;
      z-index: 0;
      animation: beamDrop 6s linear infinite;
    }

    .beam-1 { left: calc(50% - 200px); animation-delay: 0s; }
    .beam-2 { left: calc(50% + 40px); animation-delay: 2.3s; }
    .beam-3 { left: calc(50% + 220px); animation-delay: 4.1s; }

    @keyframes beamDrop {
      0% { transform: translateY(-140px); opacity: 0; }
      20% { opacity: 0.85; }
      80% { opacity: 0.85; }
      100% { transform: translateY(110vh); opacity: 0; }
    }

    /* 滾動進場動畫 */
    .reveal {
      opacity: 0;
      transform: translateY(22px);
      transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1), transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
    }

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

    /* 頂部私人銀行導覽欄 */
    .top-bar {
      position: sticky;
      top: 0;
      z-index: 40;
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 13px 18px;
      background: rgba(6, 9, 19, 0.84);
      backdrop-filter: blur(16px);
      border-bottom: 1px solid rgba(216, 173, 86, 0.22);
    }

    .brand-logo {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .crest-badge {
      width: 34px;
      height: 34px;
      border-radius: 10px;
      background: linear-gradient(135deg, var(--gold-200), var(--gold-400), var(--gold-600));
      color: #0b0802;
      font-family: Georgia, "Times New Roman", serif;
      font-weight: 800;
      font-size: 15px;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 0 18px rgba(216, 173, 86, 0.45);
      animation: pulseGlow 3s ease-in-out infinite;
    }

    @keyframes pulseGlow {
      0%, 100% { box-shadow: 0 0 12px rgba(216, 173, 86, 0.35); }
      50% { box-shadow: 0 0 24px rgba(216, 173, 86, 0.75); }
    }

    .brand-info .en {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 1.2px;
      color: var(--gold-200);
      display: block;
      line-height: 1.1;
    }

    .brand-info .zh {
      font-size: 10px;
      color: var(--text-sub);
      letter-spacing: 0.5px;
    }

    .nav-cta {
      padding: 7px 14px;
      border-radius: 999px;
      border: 1px solid var(--gold-400);
      background: rgba(216, 173, 86, 0.14);
      color: var(--gold-100);
      font-size: 12px;
      font-weight: 700;
      text-decoration: none;
      transition: all 0.2s;
    }

    .nav-cta:active {
      transform: scale(0.96);
    }

    /* 頂部即時清算動態跑馬燈 */
    .live-ticker {
      position: relative;
      z-index: 2;
      background: rgba(216, 173, 86, 0.08);
      border-bottom: 1px solid rgba(216, 173, 86, 0.16);
      padding: 7px 0;
      overflow: hidden;
      white-space: nowrap;
      font-size: 11px;
      color: var(--gold-200);
    }

    .ticker-track {
      display: inline-block;
      padding-left: 100%;
      animation: marqueeScroll 24s linear infinite;
    }

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

    .content-wrap {
      position: relative;
      z-index: 2;
      padding: 20px 18px 0;
    }

    /* 首屏高定標題區 */
    .hero-eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      padding: 5px 12px;
      border-radius: 999px;
      border: 1px solid var(--border-gold);
      background: rgba(216, 173, 86, 0.1);
      color: var(--gold-200);
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.6px;
      margin-bottom: 14px;
    }

    .hero-title {
      font-size: 29px;
      font-weight: 900;
      line-height: 1.28;
      margin-bottom: 12px;
      letter-spacing: -0.3px;
    }

    .gold-foil {
      background: linear-gradient(120deg, #fff8e6 0%, #f3d594 35%, #d4a243 70%, #fff4d2 100%);
      background-size: 200% auto;
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      animation: foilShine 4s linear infinite;
    }

    @keyframes foilShine {
      to { background-position: 200% center; }
    }

    .hero-desc {
      font-size: 14px;
      color: var(--text-sub);
      margin-bottom: 20px;
      line-height: 1.65;
    }

    /* 首屏核心：A+ 黑金實體尊榮卡（含 3D 浮動 + 掃光 + 完整背景素材） */
    .vip-card {
      position: relative;
      border-radius: 20px;
      padding: 22px 20px;
      margin-bottom: 22px;
      background:
        linear-gradient(145deg, rgba(16, 22, 42, 0.92) 0%, rgba(8, 11, 20, 0.96) 100%),
        none;
      border: 1.5px solid rgba(216, 173, 86, 0.62);
      box-shadow: 0 22px 45px rgba(0, 0, 0, 0.78), inset 0 1px 0 rgba(255, 248, 230, 0.25);
      overflow: hidden;
      animation: cardHoverFloat 5s ease-in-out infinite;
    }

    @keyframes cardHoverFloat {
      0%, 100% { transform: translateY(0px); }
      50% { transform: translateY(-5px); }
    }

    .vip-card::after {
      content: "";
      position: absolute;
      top: 0;
      left: -130%;
      width: 65%;
      height: 100%;
      background: linear-gradient(90deg, transparent, rgba(255, 248, 230, 0.22), transparent);
      transform: skewX(-24deg);
      animation: cardShimmer 4.8s ease-in-out infinite;
      pointer-events: none;
    }

    @keyframes cardShimmer {
      0% { left: -130%; }
      45%, 100% { left: 165%; }
    }

    .vip-card-top {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 18px;
    }

    .vip-tier {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 13px;
      font-weight: 800;
      letter-spacing: 2px;
      color: var(--gold-200);
    }

    .emv-chip {
      width: 38px;
      height: 27px;
      border-radius: 6px;
      background: linear-gradient(135deg, #f6e1b3, #b98932);
      border: 1px solid rgba(255, 255, 255, 0.4);
      position: relative;
      overflow: hidden;
    }

    .emv-chip::before {
      content: "";
      position: absolute;
      inset: 5px;
      border: 1px solid rgba(0, 0, 0, 0.35);
      border-radius: 3px;
    }

    .vip-rate-row {
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      margin-bottom: 14px;
    }

    .vip-rate-label {
      font-size: 12px;
      color: var(--text-sub);
    }

    .vip-rate-num {
      font-size: 42px;
      font-weight: 900;
      line-height: 1;
      color: var(--gold-100);
      text-shadow: 0 4px 20px rgba(216, 173, 86, 0.5);
    }

    .vip-rate-num span {
      font-size: 18px;
      color: var(--gold-400);
      margin-left: 4px;
    }

    .vip-card-footer {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding-top: 12px;
      border-top: 1px solid rgba(216, 173, 86, 0.22);
      font-size: 11px;
      color: var(--gold-200);
    }

    /* 雙重核心數據指標膠囊 */
    .kpi-pair {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 22px;
    }

    .kpi-item {
      background: var(--bg-card);
      border: 1px solid var(--border-gold);
      border-radius: 16px;
      padding: 15px 14px;
      backdrop-filter: blur(10px);
    }

    .kpi-item .num {
      font-size: 20px;
      font-weight: 800;
      color: var(--gold-200);
      margin-bottom: 3px;
    }

    .kpi-item .lbl {
      font-size: 12px;
      color: var(--text-sub);
    }

    /* 國際金融實景橫幅素材（帶懸停視差放大與即時報價浮層） */
    .visual-banner {
      position: relative;
      border-radius: 18px;
      overflow: hidden;
      height: 176px;
      margin-bottom: 24px;
      border: 1px solid var(--border-gold);
      box-shadow: 0 12px 30px rgba(0, 0, 0, 0.55);
    }

    .visual-banner img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: brightness(0.68) contrast(1.08);
      transition: transform 6s ease;
      animation: slowZoom 12s ease-in-out infinite alternate;
    }

    @keyframes slowZoom {
      0% { transform: scale(1); }
      100% { transform: scale(1.08); }
    }

    .visual-banner-overlay {
      position: absolute;
      inset: 0;
      background: linear-gradient(180deg, rgba(5, 7, 14, 0.15) 0%, rgba(5, 7, 14, 0.92) 100%);
      padding: 16px;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
    }

    .live-pill {
      align-self: flex-start;
      display: inline-flex;
      align-items: center;
      gap: 6px;
      background: rgba(5, 7, 14, 0.78);
      border: 1px solid rgba(16, 185, 129, 0.45);
      color: #6ee7b7;
      font-size: 11px;
      font-weight: 700;
      padding: 4px 10px;
      border-radius: 999px;
      backdrop-filter: blur(8px);
    }

    .pulse-dot {
      width: 7px;
      height: 7px;
      border-radius: 50%;
      background: var(--emerald);
      box-shadow: 0 0 8px var(--emerald);
      animation: dotPing 1.6s infinite;
    }

    @keyframes dotPing {
      0%, 100% { opacity: 1; transform: scale(1); }
      50% { opacity: 0.4; transform: scale(1.35); }
    }

    /* 互動式 50% 歷史手續費返現清算試算器 */
    .calc-panel {
      background: var(--bg-card);
      border: 1px solid var(--border-gold);
      border-radius: 20px;
      padding: 22px 18px;
      margin-bottom: 24px;
      backdrop-filter: blur(12px);
    }

    .section-tag {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 11px;
      letter-spacing: 1.5px;
      color: var(--gold-400);
      font-weight: 700;
      margin-bottom: 4px;
      display: block;
    }

    .section-heading {
      font-size: 20px;
      font-weight: 800;
      margin-bottom: 8px;
    }

    .slider-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 13px;
      color: var(--text-sub);
      margin: 14px 0 8px;
    }

    .slider-val {
      font-size: 17px;
      font-weight: 800;
      color: var(--gold-200);
    }

    input[type="range"] {
      width: 100%;
      accent-color: var(--gold-400);
      height: 6px;
      cursor: pointer;
    }

    .rebate-output {
      margin-top: 16px;
      padding: 16px;
      border-radius: 14px;
      background: linear-gradient(135deg, rgba(216, 173, 86, 0.16), rgba(16, 185, 129, 0.1));
      border: 1px solid rgba(216, 173, 86, 0.35);
      display: flex;
      justify-content: space-between;
      align-items: center;
    }

    .rebate-output .big-usd {
      font-size: 28px;
      font-weight: 900;
      color: var(--gold-100);
    }

    /* 完善圖文素材卡片組（黃金貴金屬 + 機構清算 + 跨平台終端） */
    .media-cards {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
      margin-bottom: 24px;
    }

    .media-card {
      background: var(--bg-card);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 16px;
      overflow: hidden;
      transition: transform 0.25s, border-color 0.25s;
    }

    .media-card:hover {
      transform: translateY(-3px);
      border-color: var(--border-gold);
    }

    .media-thumb {
      height: 98px;
      position: relative;
      overflow: hidden;
    }

    .media-thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: brightness(0.82);
    }

    .media-badge {
      position: absolute;
      bottom: 8px;
      left: 8px;
      background: rgba(5, 7, 14, 0.85);
      border: 1px solid var(--border-gold);
      color: var(--gold-200);
      font-size: 10px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 6px;
    }

    .media-body {
      padding: 12px;
    }

    .media-body h4 {
      font-size: 13px;
      font-weight: 800;
      color: #fff;
      margin-bottom: 4px;
    }

    .media-body p {
      font-size: 11px;
      color: var(--text-sub);
      line-height: 1.5;
    }

    /* 四項一級代理直屬特權清單 */
    .perk-list {
      background: var(--bg-card);
      border: 1px solid rgba(255, 255, 255, 0.1);
      border-radius: 20px;
      padding: 20px 18px;
      margin-bottom: 24px;
    }

    .perk-row {
      display: flex;
      gap: 13px;
      padding: 12px 0;
      border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }

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

    .perk-icon {
      width: 38px;
      height: 38px;
      border-radius: 12px;
      background: rgba(216, 173, 86, 0.14);
      border: 1px solid var(--border-gold);
      color: var(--gold-200);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 15px;
      flex-shrink: 0;
    }

    .perk-text h5 {
      font-size: 14px;
      font-weight: 800;
      margin-bottom: 2px;
    }

    .perk-text p {
      font-size: 12px;
      color: var(--text-sub);
    }

    /* 頁面下方專屬 A+ 帳戶升級申請表單 */
    .form-section {
      background: linear-gradient(170deg, rgba(17, 24, 45, 0.96) 0%, rgba(8, 12, 24, 0.98) 100%);
      border: 1.5px solid var(--gold-400);
      border-radius: 22px;
      padding: 24px 18px;
      margin-bottom: 24px;
      box-shadow: 0 20px 50px rgba(0, 0, 0, 0.75);
      position: relative;
    }

    .form-header-img {
      height: 86px;
      border-radius: 12px;
      overflow: hidden;
      margin-bottom: 16px;
      position: relative;
      border: 1px solid rgba(216, 173, 86, 0.3);
    }

    .form-header-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      filter: brightness(0.55);
    }

    .form-header-caption {
      position: absolute;
      inset: 0;
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 0 14px;
      background: linear-gradient(90deg, rgba(5, 7, 14, 0.85), rgba(5, 7, 14, 0.25));
    }

    .field-group {
      margin-bottom: 14px;
    }

    .field-group label {
      display: flex;
      align-items: center;
      gap: 6px;
      font-size: 13px;
      font-weight: 700;
      color: var(--gold-200);
      margin-bottom: 6px;
    }

    .input-box {
      width: 100%;
      height: 46px;
      padding: 0 14px;
      border-radius: 12px;
      border: 1px solid rgba(216, 173, 86, 0.28);
      background: rgba(4, 6, 12, 0.85);
      color: #fff;
      font-size: 15px; /* 防止 iOS 自動縮放 */
      outline: none;
      transition: border-color 0.2s, box-shadow 0.2s;
    }

    .input-box:focus {
      border-color: var(--gold-400);
      box-shadow: 0 0 0 3px rgba(216, 173, 86, 0.16);
    }

    .submit-btn {
      width: 100%;
      height: 50px;
      margin-top: 6px;
      border: none;
      border-radius: 14px;
      background: linear-gradient(135deg, #fff1cc 0%, #e5b85c 50%, #b58225 100%);
      color: #120c02;
      font-size: 16px;
      font-weight: 900;
      cursor: pointer;
      box-shadow: 0 10px 25px rgba(216, 173, 86, 0.42);
      transition: transform 0.18s;
      position: relative;
      overflow: hidden;
    }

    .submit-btn:active {
      transform: scale(0.98);
    }

    .security-note {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      font-size: 11px;
      color: var(--text-sub);
      margin-top: 12px;
      text-align: center;
    }

    /* 底部風險披露 */
    .footer-disclaimer {
      font-size: 11px;
      color: #6b768c;
      line-height: 1.65;
      padding: 14px 4px 20px;
      border-top: 1px solid rgba(255, 255, 255, 0.08);
    }

    /* 手機端底部固定懸浮快捷欄 */
    .sticky-bottom-bar {
      position: fixed;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 100%;
      max-width: 640px;
      z-index: 45;
      background: rgba(6, 9, 19, 0.92);
      backdrop-filter: blur(16px);
      border-top: 1px solid var(--border-gold);
      padding: 10px 18px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
    }

    .sticky-info .t1 {
      font-size: 12px;
      font-weight: 800;
      color: var(--gold-200);
    }

    .sticky-info .t2 {
      font-size: 11px;
      color: var(--text-sub);
    }

    .sticky-cta {
      padding: 11px 20px;
      border-radius: 12px;
      background: linear-gradient(135deg, var(--gold-200), var(--gold-400));
      color: #120c02;
      font-size: 13px;
      font-weight: 900;
      text-decoration: none;
      white-space: nowrap;
      box-shadow: 0 4px 16px rgba(216, 173, 86, 0.35);
    }

    /* 手機端 Bottom Sheet 提交確認抽屜 */
    .sheet-backdrop {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.78);
      z-index: 90;
      align-items: flex-end;
      justify-content: center;
    }

    .bottom-sheet {
      width: 100%;
      max-width: 640px;
      background: #0d1326;
      border-top: 1.5px solid var(--gold-400);
      border-radius: 24px 24px 0 0;
      padding: 24px 20px 32px;
      animation: slideUpSheet 0.3s ease-out;
    }

    @keyframes slideUpSheet {
      from { transform: translateY(100%); }
      to { transform: translateY(0); }
    }

    .summary-card {
      background: rgba(5, 7, 14, 0.8);
      border: 1px solid rgba(216, 173, 86, 0.25);
      border-radius: 14px;
      padding: 14px;
      margin: 14px 0 18px;
      font-size: 13px;
    }

    .summary-row {
      display: flex;
      justify-content: space-between;
      padding: 6px 0;
      border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
    }

    .summary-row:last-child {
      border-bottom: none;
    }

.img-placeholder {
  width: 100%;
  height: 100%;
  min-height: 120px;
  background: linear-gradient(135deg, #12182a 0%, #1a2438 50%, #0d1424 100%);
}
.visual-banner .img-placeholder { min-height: 176px; position: absolute; inset: 0; }
.visual-banner { position: relative; }
.media-thumb { position: relative; height: 100px; overflow: hidden; }
.media-thumb .img-placeholder { min-height: 100px; }
.form-header-img { position: relative; height: 120px; overflow: hidden; }
.form-header-img .img-placeholder { min-height: 120px; }
.vip-card {
  background: linear-gradient(145deg, rgba(16, 22, 42, 0.96) 0%, rgba(8, 11, 20, 0.98) 100%) !important;
}
