    /* ── Design tokens ──────────────────────────────────── */
    :root {
      /* Single sans + single mono stack sitewide */
      --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI',
        Roboto, 'Helvetica Neue', Arial, sans-serif;
      --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Monaco,
        Consolas, 'Liberation Mono', 'Courier New', monospace;
      --bg: #f1f5f9;
      --card: #ffffff;
      --ink: #0f172a;
      --ink-2: #1e293b;
      --muted: #64748b;
      --line: #e2e8f0;
      --accent: #4f46e5;
      --accent-lt: #818cf8;
      --accent-bg: #eef2ff;
      --success: #059669;
      --warn: #d97706;
      --sh-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);
      --sh: 0 4px 20px rgba(15, 23, 42, .08);
      --sh-lg: 0 12px 40px rgba(15, 23, 42, .13);
      --r: 14px;
      --r-sm: 8px;
      --cpu-c: #3b82f6;
      --cpu-bg: #eff6ff;
      --gpu-c: #8b5cf6;
      --gpu-bg: #f5f3ff;
      --mem-c: #10b981;
      --mem-bg: #ecfdf5;
      --sto-c: #f59e0b;
      --sto-bg: #fffbeb;
      --gen-c: #6b7280;
      --gen-bg: #f9fafb;
    }

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

    html {
      font-family: var(--font-sans);
    }

    button,
    input,
    select,
    textarea {
      font-family: inherit;
    }

    body {
      font-family: var(--font-sans);
      font-size: 14px;
      line-height: 1.6;
      color: var(--ink);
      background: var(--bg);
      min-height: 100vh;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
      text-rendering: optimizeLegibility;
    }

    /* ── Loader ─────────────────────────────────────────── */
    #loader {
      position: fixed;
      inset: 0;
      background: linear-gradient(135deg, #0f172a 0%, #1e1b4b 100%);
      z-index: 999;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 16px;
    }

    .spinner {
      width: 44px;
      height: 44px;
      border: 3px solid rgba(99, 102, 241, .3);
      border-top-color: #818cf8;
      border-radius: 50%;
      animation: spin .7s linear infinite;
    }

    @keyframes spin {
      to {
        transform: rotate(360deg);
      }
    }

    #loader strong {
      color: #818cf8;
      font-size: 18px;
      font-weight: 900;
      letter-spacing: -.02em;
    }

    #loader p {
      color: #64748b;
      font-size: 13px;
    }

    /* ── Toast ───────────────────────────────────────────── */
    #toastShelf {
      position: fixed;
      bottom: 24px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 9999;
      display: flex;
      flex-direction: column;
      gap: 8px;
      align-items: center;
      pointer-events: none;
    }

    .toast {
      background: var(--ink);
      color: #fff;
      padding: 10px 20px;
      border-radius: 999px;
      font-size: 13px;
      font-weight: 600;
      box-shadow: var(--sh-lg);
      opacity: 0;
      transform: translateY(12px);
      transition: opacity .22s, transform .22s;
      pointer-events: none;
    }

    .toast.show {
      opacity: 1;
      transform: translateY(0);
    }

    /* ── Desktop hint banner (mobile only) ─────────────────── */
    .dhb {
      position: fixed;
      bottom: 20px;
      left: 50%;
      transform: translateX(-50%) translateY(12px);
      z-index: 9998;
      display: flex;
      align-items: center;
      gap: 14px;
      max-width: 92vw;
      width: max-content;
      padding: 14px 16px 14px 14px;
      border-radius: 18px;
      background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
      border: 1px solid rgba(99, 102, 241, .35);
      box-shadow: 0 8px 32px rgba(0, 0, 0, .45), inset 0 1px 0 rgba(255, 255, 255, .05);
      opacity: 0;
      pointer-events: none;
      transition: opacity .28s ease, transform .28s ease;
    }

    .dhb.dhb-visible {
      opacity: 1;
      transform: translateX(-50%) translateY(0);
      pointer-events: auto;
    }

    .dhb-icon {
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(99, 102, 241, .2);
      color: #a5b4fc;
    }

    .dhb-copy {
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .dhb-title {
      font-size: 13px;
      font-weight: 700;
      color: #f1f5f9;
      letter-spacing: -.01em;
      white-space: nowrap;
    }

    .dhb-sub {
      font-size: 12px;
      color: #94a3b8;
      line-height: 1.45;
      max-width: 240px;
    }

    .dhb-close {
      flex-shrink: 0;
      margin-left: 4px;
      width: 28px;
      height: 28px;
      border-radius: 8px;
      border: 1px solid rgba(148, 163, 184, .2);
      background: rgba(148, 163, 184, .08);
      color: #94a3b8;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: background .15s, color .15s;
    }

    .dhb-close:hover {
      background: rgba(239, 68, 68, .15);
      border-color: rgba(239, 68, 68, .3);
      color: #fca5a5;
    }

    /* ── App ─────────────────────────────────────────────── */
    #app {
      opacity: 0;
    }

    .site-nav {
      position: sticky;
      top: 0;
      z-index: 80;
      background: linear-gradient(135deg, #080d1a 0%, #0f172a 50%, #160d33 100%);
      backdrop-filter: blur(24px);
      -webkit-backdrop-filter: blur(24px);
      border-bottom: 1px solid rgba(99, 102, 241, .2);
      padding: 0 32px;
      height: 62px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      box-shadow: 0 4px 32px rgba(0, 0, 0, .4), 0 1px 0 rgba(165, 180, 252, .08);
    }

    /* Thin rainbow accent line across the very top */
    .site-nav::before {
      content: '';
      position: absolute;
      top: 0; left: 0; right: 0;
      height: 2px;
      background: linear-gradient(90deg,
        transparent 0%,
        #6366f1 15%,
        #818cf8 35%,
        #a78bfa 55%,
        #818cf8 75%,
        #6366f1 90%,
        transparent 100%);
      opacity: .7;
    }

    .nav-brand {
      font-size: 16px;
      font-weight: 900;
      letter-spacing: -.03em;
      color: #fff;
      display: flex;
      align-items: center;
      gap: 10px;
      flex-shrink: 0;
      text-decoration: none;
    }

    .nav-brand-logo {
      width: 34px;
      height: 34px;
      border-radius: 10px;
      background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 16px;
      box-shadow: 0 0 0 1px rgba(165,180,252,.25), 0 4px 16px rgba(99, 102, 241, .5);
      transition: box-shadow .2s ease, transform .2s ease;
    }

    .nav-brand:hover .nav-brand-logo {
      box-shadow: 0 0 0 1px rgba(165,180,252,.4), 0 6px 22px rgba(99, 102, 241, .65);
      transform: translateY(-1px);
    }

    .nav-brand em {
      font-style: normal;
      background: linear-gradient(135deg, #a5b4fc 0%, #c4b5fd 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    /* Vertical separator between brand and nav-steps */
    .nav-brand-sep {
      width: 1px;
      height: 24px;
      background: rgba(255, 255, 255, .1);
      flex-shrink: 0;
      margin: 0 4px;
    }

    .nav-actions {
      display: flex;
      gap: 10px;
      align-items: center;
      flex-shrink: 0;
    }

    .nav-chip {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .04em;
      color: #64748b;
      background: rgba(255, 255, 255, .04);
      border: 1px solid rgba(255, 255, 255, .08);
      border-radius: 999px;
      padding: 4px 12px;
    }

    .nav-chip.warn {
      color: #f59e0b;
      background: rgba(245, 158, 11, .08);
      border-color: rgba(245, 158, 11, .2);
    }

    @media (max-width: 768px) {
      .site-nav {
        padding: 0 18px;
      }
    }

    /* Hide the "Not official AWS" chip on small screens */
    @media (max-width: 860px) {
      .nav-chip.hide-sm {
        display: none;
      }

      .nav-brand-sep {
        display: none;
      }
    }

    @media (max-width: 600px) {
      .nav-brand span.text {
        display: none;
      }
    }

    /* ── Hero ────────────────────────────────────────────── */
    .hero-section {
      background: linear-gradient(145deg, #080d1e 0%, #0f172a 35%, #1e1b4b 65%, #2e1d6a 100%);
      padding: 80px 0 72px;
      position: relative;
      overflow: hidden;
    }

    .hero-section::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%234f46e5' fill-opacity='0.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
    }

    .hero-section::after {
      content: '';
      position: absolute;
      bottom: -80px;
      left: -60px;
      width: 500px;
      height: 500px;
      pointer-events: none;
      background: radial-gradient(circle, rgba(16, 185, 129, .1) 0%, transparent 65%);
    }

    .hero-glow {
      position: absolute;
      top: -100px;
      right: -100px;
      width: 700px;
      height: 700px;
      pointer-events: none;
      background: radial-gradient(circle, rgba(99, 102, 241, .28) 0%, rgba(139, 92, 246, .12) 40%, transparent 65%);
    }

    .hero-inner {
      max-width: 1400px;
      margin: 0 auto;
      padding: 0 32px;
      position: relative;
      z-index: 1;
    }

    .hero-badge {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      background: rgba(99, 102, 241, .18);
      border: 1px solid rgba(165, 180, 252, .4);
      color: #a5b4fc;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .09em;
      text-transform: uppercase;
      padding: 5px 14px;
      border-radius: 999px;
      margin-bottom: 22px;
      backdrop-filter: blur(8px);
      box-shadow: 0 2px 12px rgba(99, 102, 241, .15), inset 0 1px 0 rgba(255, 255, 255, .08);
    }

    .hero-dot {
      width: 6px;
      height: 6px;
      background: #34d399;
      border-radius: 50%;
      animation: pulse 2s infinite;
    }

    @keyframes pulse {

      0%,
      100% {
        opacity: 1;
        transform: scale(1)
      }

      50% {
        opacity: .55;
        transform: scale(1.35)
      }
    }

    .hero-title {
      font-size: clamp(28px, 4.5vw, 52px);
      font-weight: 900;
      letter-spacing: -.04em;
      line-height: 1.1;
      color: #fff;
      margin-bottom: 18px;
    }

    .hero-title em {
      font-style: normal;
      background: linear-gradient(90deg, #818cf8 0%, #a78bfa 50%, #34d399 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .hero-desc {
      font-size: 16px;
      color: #cbd5e1;
      line-height: 1.8;
      max-width: 720px;
      margin-bottom: 38px;
    }

    @media (min-width: 1200px) {
      .hero-desc {
        font-size: 18px;
        line-height: 1.85;
      }
    }

    .hero-bottom {
      display: flex;
      flex-wrap: wrap;
      gap: 28px;
      align-items: center;
    }

    .hero-stats {
      display: flex;
      gap: 32px;
      flex-wrap: wrap;
    }

    .hero-stat-val {
      font-size: 32px;
      font-weight: 900;
      letter-spacing: -.03em;
      line-height: 1;
      font-variant-numeric: tabular-nums;
      background: linear-gradient(135deg, #fff 0%, #e2e8f0 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .hero-stat-lbl {
      font-size: 11px;
      font-weight: 700;
      color: #94a3b8;
      text-transform: uppercase;
      letter-spacing: .07em;
      margin-top: 4px;
    }


    #region optgroup {
      font-weight: 700;
      font-size: 11px;
      letter-spacing: .04em;
    }

    #region optgroup option {
      font-weight: 400;
      font-size: 13px;
      padding-left: 8px;
    }

    /* #region:focus — handled by shared dropdown rule above */

    @media (max-width: 700px) {
      .hero-section {
        padding: 48px 0 48px;
      }

      .hero-bottom {
        gap: 20px;
      }

      .hero-vdivider {
        display: none;
      }
    }

    /* ── Funnel wrapper ──────────────────────────────────── */
    .funnel-wrap {
      max-width: 1400px;
      margin: 0 auto;
      padding: 0 32px 80px;
    }

    @media (max-width: 600px) {
      .hero-inner,
      .funnel-wrap {
        padding-left: 18px;
        padding-right: 18px;
      }
    }

    /* ── Funnel step ─────────────────────────────────────── */
    .funnel-step {
      padding-top: 64px;
      scroll-margin-top: 70px;
    }

    .step-hdr {
      display: flex;
      gap: 18px;
      align-items: flex-start;
      margin-bottom: 28px;
    }

    .step-num {
      flex-shrink: 0;
      width: 46px;
      height: 46px;
      border-radius: 14px;
      background: linear-gradient(145deg, #4f46e5 0%, #6d28d9 100%);
      color: #fff;
      font-size: 15px;
      font-weight: 900;
      letter-spacing: -0.02em;
      display: flex;
      align-items: center;
      justify-content: center;
      box-shadow: 0 6px 20px rgba(79, 70, 229, .38), 0 2px 6px rgba(79, 70, 229, .2), inset 0 1px 0 rgba(255, 255, 255, .15);
    }

    .step-title {
      font-size: 24px;
      font-weight: 800;
      letter-spacing: -0.035em;
      color: var(--ink);
      margin-bottom: 5px;
      background: linear-gradient(135deg, var(--ink) 0%, #334155 100%);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }

    .step-desc {
      font-size: 15px;
      color: #475569;
      line-height: 1.75;
      max-width: 700px;
    }

    /* ── Family cards ────────────────────────────────────── */
    /* ── "All Families" highlight card ─────────────────────── */
    .family-all-card-wrap {
      margin-bottom: 16px;
    }

    .family-all-card {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      padding: 18px 28px;
      background: linear-gradient(135deg, #4f46e5 0%, #3b82f6 100%);
      border: 1.5px solid rgba(79, 70, 229, .35);
      border-radius: var(--r);
      cursor: pointer;
      transition: all .25s cubic-bezier(.4, 0, .2, 1);
      box-shadow: 0 4px 16px rgba(79, 70, 229, .18);
      position: relative;
      overflow: hidden;
    }

    .family-all-card::before {
      content: '';
      position: absolute;
      inset: 0;
      background: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23fff' fill-opacity='0.04'%3E%3Cpath d='M20 20v-8h-2v8h-8v2h8v8h2v-8h8v-2h-8z'/%3E%3C/g%3E%3C/svg%3E");
      pointer-events: none;
    }

    .family-all-card .fac-icon,
    .family-all-card .fac-name,
    .family-all-card .fac-desc,
    .family-all-card .fac-count,
    .family-all-card .fac-cta {
      color: #fff !important;
    }

    .family-all-card .fac-desc {
      opacity: .75;
    }

    .family-all-card .fac-count {
      background: rgba(255,255,255,.15) !important;
      border-color: rgba(255,255,255,.2) !important;
    }

    .family-all-card:hover {
      box-shadow: 0 8px 28px rgba(79, 70, 229, .30);
    }

    .family-all-card.fac-active {
      box-shadow: 0 0 0 3px rgba(79, 70, 229, .3), 0 8px 28px rgba(79, 70, 229, .25);
    }

    .fac-left {
      display: flex;
      align-items: center;
      gap: 14px;
    }

    .fac-icon {
      font-size: 24px;
      flex-shrink: 0;
    }

    .fac-name {
      font-size: 15px;
      font-weight: 800;
      color: var(--ink);
      letter-spacing: -.02em;
    }

    .fac-desc {
      font-size: 12px;
      color: var(--muted);
      margin-top: 2px;
      line-height: 1.4;
    }

    .fac-right {
      display: flex;
      align-items: center;
      gap: 14px;
      flex-shrink: 0;
    }

    .fac-count {
      font-size: 13px;
      font-weight: 700;
      color: var(--accent);
      background: rgba(79, 70, 229, .08);
      padding: 4px 12px;
      border-radius: 999px;
    }

    .fac-cta {
      font-size: 12px;
      font-weight: 700;
      color: var(--accent);
    }

    .fac-active .fac-cta {
      color: var(--success);
    }

    @media (max-width: 600px) {
      .family-all-card {
        flex-direction: column;
        align-items: flex-start;
        padding: 14px 16px;
      }
      .fac-right {
        width: 100%;
        justify-content: space-between;
      }
    }

    /* ── Family cards grid (5 cards, no "All") ─────────────── */
    .family-cards-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 12px;
    }

    @media (max-width: 1100px) {
      .family-cards-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media (max-width: 600px) {
      .family-cards-grid {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    /* ── Power rank badge ───────────────────────────────────── */
    .fc-power-badge {
      position: absolute;
      top: 8px;
      right: 10px;
      font-size: 10px;
      font-weight: 700;
      color: var(--muted);
      background: rgba(0, 0, 0, .04);
      padding: 2px 8px;
      border-radius: 999px;
      letter-spacing: .03em;
    }

    /* Card shell */
    .family-card {
      background: #fff;
      border: 2px solid var(--line);
      border-radius: 14px;
      padding: 15px 14px 12px;
      cursor: pointer;
      transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
      box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
      position: relative;
      overflow: hidden;
      min-width: 0;
      display: flex;
      flex-direction: column;
    }

    /* Top colour bar */
    .family-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: var(--fam-color, var(--accent));
      transform: scaleX(0);
      transform-origin: left;
      transition: transform .25s ease;
    }

    .family-card:hover {
      border-color: var(--fam-color, var(--accent));
      box-shadow: 0 8px 24px rgba(0, 0, 0, .1);
    }

    .family-card:hover::before,
    .family-card.fc-active::before {
      transform: scaleX(1);
    }

    .family-card.fc-active {
      border-color: var(--fam-color, var(--accent));
      background: var(--fam-bg, var(--accent-bg));
    }

    /* Header row: icon + name + badge */
    .fc-hdr {
      display: flex;
      align-items: flex-start;
      gap: 9px;
      margin-bottom: 10px;
    }

    .fc-icon {
      font-size: 22px;
      line-height: 1;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .fc-hdr-text {
      flex: 1;
      min-width: 0;
    }

    .fc-name {
      font-size: 13px;
      font-weight: 800;
      color: var(--ink);
      line-height: 1.25;
      margin-bottom: 4px;
      white-space: normal;
    }

    .fc-tag-badge {
      display: inline-block;
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .04em;
      padding: 1px 7px;
      border-radius: 999px;
      background: var(--fam-color, var(--accent));
      color: #fff;
    }

    /* Description — unclamped, grows to show full content */
    .fc-desc {
      font-size: 12px;
      color: #475569;
      line-height: 1.65;
      margin-bottom: 9px;
    }

    /* Architecture Pills (CPU Vendor, ISA, Accelerators) */
    .fc-arch-flex {
      display: flex;
      flex-wrap: wrap;
      gap: 4px;
      margin-bottom: 8px;
    }

    .fc-arch-pill {
      font-size: 9px;
      font-weight: 700;
      letter-spacing: .03em;
      padding: 2px 5px;
      border-radius: 4px;
      background: #f1f5f9;
      color: #64748b;
      border: 1px solid #e2e8f0;
    }

    /* Use-case tags */
    .fc-uses {
      display: flex;
      flex-wrap: wrap;
      gap: 3px;
      margin-bottom: 9px;
    }

    .fc-use {
      font-size: 10px;
      padding: 2px 6px;
      border-radius: 999px;
      font-weight: 600;
      white-space: nowrap;
      background: var(--fam-bg, var(--accent-bg));
      color: var(--fam-color, var(--accent));
      border: 1px solid rgba(0, 0, 0, .07);
    }

    /* Footer row: examples left, count+cta right */
    .fc-footer {
      margin-top: auto;
      padding-top: 8px;
      border-top: 1px solid rgba(0, 0, 0, .06);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 6px;
    }

    .fc-examples {
      font-size: 10px;
      color: var(--muted);
      flex: 1;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .fc-examples b {
      color: var(--fam-color, var(--accent));
      font-weight: 700;
    }

    .fc-count {
      font-size: 10px;
      font-weight: 700;
      color: var(--muted);
      white-space: nowrap;
      flex-shrink: 0;
    }

    .fc-cta {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: var(--fam-color, var(--accent));
      opacity: 0;
      transition: opacity .15s;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .family-card:hover .fc-cta,
    .family-card.fc-active .fc-cta {
      opacity: 1;
    }

    .family-card.fc-active .fc-cta::before {
      content: '✓ ';
    }

    /* Dimmed state for unselected cards during multi-select */
    .family-card.fc-dimmed {
      opacity: .45;
      filter: grayscale(.4);
      transform: scale(.97);
    }

    .family-card.fc-dimmed:hover {
      opacity: .75;
      filter: grayscale(0);
    }

    /* Check badge on selected cards */
    .fc-check {
      position: absolute;
      top: 8px;
      right: 8px;
      width: 22px;
      height: 22px;
      display: flex;
      align-items: center;
      justify-content: center;
      background: var(--fam-color, var(--accent));
      color: #fff;
      border-radius: 50%;
      font-size: 11px;
      font-weight: 700;
      line-height: 1;
      z-index: 2;
      box-shadow: 0 2px 6px rgba(0,0,0,.15);
    }

    /* Selection summary */
    .fc-sel-summary-wrap {
      min-height: 0;
    }

    .fc-sel-summary {
      text-align: center;
      font-size: 12px;
      font-weight: 600;
      color: var(--accent);
      padding: 8px 0 4px;
      letter-spacing: .01em;
    }

    .fc-sel-summary a {
      color: var(--muted);
      text-decoration: underline;
      font-weight: 500;
      margin-left: 4px;
    }

    .fc-sel-summary a:hover {
      color: var(--ink);
    }

    /* ── Chart card ──────────────────────────────────────── */

    /* ── Charts-2: vertical stack, full width per card ──── */
    .charts-2 {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }

    /* ── Radar card: header + split body ─────────────────── */
    #radarCard .chart-hd {
      border-bottom: 1px solid var(--line);
      background: linear-gradient(135deg, #fafbff 0%, #eef2ff 100%);
    }

    .radar-split {
      display: flex;
      flex-direction: row;
      min-height: 350px;
    }

    .radar-explainer {
      width: 220px;
      flex-shrink: 0;
      padding: 16px;
      border-right: 1px solid var(--line);
      background: linear-gradient(180deg, #fafbff 0%, #f1f5f9 100%);
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .radar-legend-panel {
      width: 230px;
      flex-shrink: 0;
      padding: 16px;
      border-left: 1px solid var(--line);
      background: linear-gradient(180deg, #fafbff 0%, #f1f5f9 100%);
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .radar-chart-wrap {
      flex: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 16px;
      background: #fafbff;
      min-height: 350px;
    }

    .radar-chart-wrap .chart-body {
      width: 100%;
      height: 100%;
      max-width: 480px;
      max-height: 480px;
      aspect-ratio: 1 / 1;
    }

    /* Explainer content */
    .re-section {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .re-heading {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: var(--muted);
    }

    .re-text {
      font-size: 12px;
      color: #475569;
      line-height: 1.5;
      margin: 0;
    }

    .re-legend-row {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 12px;
      color: #334155;
      line-height: 1.4;
    }

    .re-legend-swatch {
      flex-shrink: 0;
      width: 24px;
      height: 4px;
      border-radius: 2px;
    }

    .re-solid {
      background: #4f46e5;
    }

    .re-dashed {
      background: repeating-linear-gradient(
        90deg, #4f46e5 0px, #4f46e5 4px, transparent 4px, transparent 8px
      );
    }

    .re-axes {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 4px;
    }

    .re-axis-badge {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 11px;
      font-weight: 500;
      color: #334155;
      background: rgba(255,255,255,0.7);
      border: 1px solid rgba(0,0,0,0.06);
      padding: 3px 8px;
      border-radius: 99px;
    }

    .re-axis-dot {
      flex-shrink: 0;
      width: 7px;
      height: 7px;
      border-radius: 50%;
    }

    .re-tip {
      font-size: 12px;
      color: #4f46e5;
      background: rgba(99, 102, 241, .06);
      border: 1px solid rgba(99, 102, 241, .2);
      border-radius: 10px;
      padding: 8px 12px;
      line-height: 1.6;
    }

    .re-tip:empty {
      display: none;
    }
    
    /* ── Radar custom legend ─────────────────────────────────── */
    .re-legend-list {
      display: flex;
      flex-direction: column;
      gap: 4px;
      margin-top: 6px;
    }

    .re-legend-item {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 5px 8px;
      border-radius: 8px;
      cursor: pointer;
      border: 1px solid transparent;
      transition: background .15s, border-color .15s, opacity .15s;
      font-size: 12px;
    }

    .re-legend-item:hover {
      background: #f1f5f9;
      border-color: #e2e8f0;
    }

    .re-legend-item-hidden {
      opacity: .4;
    }

    .re-legend-item-hidden:hover {
      opacity: .7;
    }

    .re-legend-color {
      width: 14px;
      height: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: opacity .15s;
    }

    .re-legend-name {
      font-weight: 700;
      color: var(--ink);
      flex: 1;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .re-legend-tag {
      font-size: 10px;
      font-weight: 600;
      color: #94a3b8;
      white-space: nowrap;
    }

    /* ── Radar page controls ────────────────────────────────── */
    .re-page-controls {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-top: 10px;
      padding: 8px 0;
      border-top: 1px solid var(--line);
    }

    .re-page-btn {
      font-size: 12px;
      font-weight: 700;
      padding: 4px 10px;
      border-radius: 6px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--ink);
      cursor: pointer;
      transition: background .15s, border-color .15s;
    }

    .re-page-btn:hover:not(:disabled) {
      background: #f1f5f9;
      border-color: #94a3b8;
    }

    .re-page-btn:disabled {
      opacity: .35;
      cursor: default;
    }

    .re-page-info {
      font-size: 12px;
      color: #64748b;
      flex: 1;
      text-align: center;
    }

    /* ── Radar responsive: column layout on tablet/mobile ──── */
    @media (max-width: 900px) {
      #radarCard .chart-hd {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
      }

      #radarCard .chart-sub {
        width: 100%;
      }

      .radar-split {
        flex-direction: column;
        height: auto;
        min-height: 0;
      }

      .radar-explainer {
        width: 100%;
        min-width: 0;
        max-height: none;
        border-right: none;
        border-bottom: 1px solid var(--line);
        padding: 12px 14px;
        gap: 8px;
      }

      .radar-legend-panel {
        width: 100%;
        min-width: 0;
        max-height: none;
        border-left: none;
        border-top: 1px solid var(--line);
        padding: 12px 14px;
        gap: 6px;
      }

      .radar-chart-wrap {
        border-top: none;
        min-width: 0;
        min-height: 300px;
        padding: 8px 10px;
      }

      .re-section {
        gap: 4px;
      }

      .re-axes {
        gap: 4px;
        margin-top: 2px;
      }

      .re-legend-list {
        gap: 2px;
        margin-top: 4px;
      }
    }

    .chart-card {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: 0 2px 12px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .04);
      overflow: visible;
      transition: box-shadow 0.2s ease;
    }

    .chart-card:hover {
      box-shadow: 0 6px 24px rgba(15, 23, 42, .09), 0 2px 6px rgba(15, 23, 42, .05);
    }

    .chart-hd {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 12px;
      padding: 14px 18px 12px;
      border-bottom: 1px solid var(--line);
    }

    .chart-title {
      font-size: 14px;
      font-weight: 700;
      color: var(--ink);
      letter-spacing: -0.01em;
      line-height: 1.3;
    }

    .chart-sub {
      font-size: 13px;
      color: #475569;
      margin-top: 3px;
      line-height: 1.5;
    }

    .chart-scroll-outer {
      overflow-x: auto;
      overflow-y: hidden;
    }

    .chart-body {
      padding: 4px;
      position: relative;
      overflow: visible;
    }

    /* ── Controls card (inline) ──────────────────────────── */
    .controls-card {
      background: #fff;
      border: 1px solid rgba(226, 232, 240, .8);
      border-radius: 16px;
      box-shadow: 0 4px 24px rgba(15, 23, 42, .08), 0 1px 4px rgba(15, 23, 42, .05);
      overflow: hidden;
      margin-bottom: 16px;
    }

    .controls-top {
      position: relative;
      overflow: hidden;
      padding: 14px 18px;
      border-bottom: 1px solid #dbe4f0;
      background: linear-gradient(120deg, #f9fbff 0%, #f1f5ff 62%, #eef6ff 100%);
      display: grid;
      grid-template-columns: minmax(220px, 1fr) auto;
      gap: 12px 16px;
      align-items: end;
    }

    .controls-top::after {
      content: '';
      position: absolute;
      right: -50px;
      top: -50px;
      width: 220px;
      height: 220px;
      border-radius: 50%;
      pointer-events: none;
      background: radial-gradient(circle, rgba(59, 130, 246, .1) 0%, transparent 70%);
    }

    .controls-top-head {
      display: flex;
      flex-direction: column;
      gap: 4px;
      position: relative;
      z-index: 1;
    }

    .controls-head-title {
      font-size: 16px;
      font-weight: 800;
      letter-spacing: -.02em;
      color: #334155;
      line-height: 1.2;
    }

    .controls-head-sub {
      font-size: 13px;
      line-height: 1.5;
      color: #64748b;
      max-width: 44ch;
    }

    .controls-toolbar {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      align-items: center;
      gap: 10px 12px;
      position: relative;
      z-index: 1;
    }

    .controls-category-wrap {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 4px 6px 4px 12px;
      border-radius: 999px;
      border: 1px solid #dbe4f0;
      background: rgba(255, 255, 255, .82);
      backdrop-filter: blur(4px);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .6), 0 1px 3px rgba(15, 23, 42, .05);
    }

    .controls-mini-lbl {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .09em;
      color: #64748b;
      white-space: nowrap;
    }

    .controls-presets-wrap {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      gap: 8px;
      min-width: 0;
    }

    .controls-category-wrap #category {
      min-width: 128px;
      border-radius: 999px;
      border-color: #cbd5e1;
      padding-top: 6px;
      padding-bottom: 6px;
      background-color: #fff;
      box-shadow: none;
    }

    .controls-presets {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 8px;
      min-width: 0;
    }

    .controls-body {
      padding: 18px 20px;
    }

    /* Preset row */
    .preset-btn {
      border: 1px solid var(--line);
      background: #fff;
      color: var(--ink-2);
      padding: 7px 14px;
      border-radius: 999px;
      font-size: 13px;
      font-weight: 700;
      min-height: 36px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 6px;
      cursor: pointer;
      transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 1px 3px rgba(15, 23, 42, .06);
      letter-spacing: 0;
      font-family: inherit;
      white-space: nowrap;
    }

    .preset-btn:hover {
      background: var(--accent-bg);
      color: var(--accent);
      border-color: #a5b4fc;
      transform: translateY(-1px);
      box-shadow: 0 4px 12px rgba(79, 70, 229, .18);
    }

    .preset-btn:active {
      transform: scale(.96);
    }

    .preset-btn.active {
      background: linear-gradient(135deg, var(--accent) 0%, #6d28d9 100%);
      border-color: transparent;
      box-shadow: 0 4px 14px rgba(79, 70, 229, .35);
      transform: translateY(-1px);
      color: #fff;
    }

    @media (max-width: 980px) {
      .controls-top {
        grid-template-columns: 1fr;
      }

      .controls-toolbar {
        grid-template-columns: 1fr;
        align-items: stretch;
      }

      .controls-presets-wrap {
        justify-content: flex-start;
      }
    }

    /* ── Styled Dropdowns (category, metric, region) ──────── */
    #category,
    #metric,
    #region {
      appearance: none;
      -webkit-appearance: none;
      width: auto;
      padding: 7px 32px 7px 12px;
      font-size: 13px;
      font-weight: 600;
      border: 1.5px solid var(--line);
      border-radius: 10px;
      background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") no-repeat right 10px center;
      background-size: 12px;
      color: var(--ink);
      cursor: pointer;
      font-family: inherit;
      letter-spacing: -.01em;
      transition: border-color 0.18s, box-shadow 0.18s, background-color 0.18s;
    }

    #category:hover,
    #metric:hover,
    #region:hover {
      border-color: #a5b4fc;
      background-color: #fafafe;
    }

    #category:focus,
    #metric:focus,
    #region:focus {
      outline: none;
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(79, 70, 229, .12);
      background-color: #fff;
    }

    #category option,
    #metric option,
    #region option {
      font-weight: 500;
      padding: 6px 8px;
    }

    /* Sliders grid */
    /* ── Priority Cards Grid ────────────────────────────── */
    .prio-label {
      font-size: 13px;
      color: #64748b;
      margin-bottom: 16px;
      font-weight: 500;
      font-style: italic;
    }

    .prio-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 12px;
    }

    @media (max-width: 640px) {
      .prio-grid {
        grid-template-columns: 1fr;
      }
    }

    .prio-card {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      padding: 16px;
      border-radius: 14px;
      border: 1px solid var(--line);
      border-left: 4px solid var(--prio-accent, var(--accent));
      background: #fff;
      box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
      transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .prio-card:hover {
      box-shadow: 0 8px 24px rgba(0, 0, 0, .1);
      border-color: var(--prio-accent, var(--accent));
    }

    .prio-card-full {
      grid-column: 1 / -1;
    }

    .prio-card-icon {
      width: 44px;
      height: 44px;
      border-radius: 12px;
      background: var(--prio-bg, var(--accent-bg));
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      flex-shrink: 0;
      box-shadow: 0 2px 8px rgba(0, 0, 0, .06);
    }

    .prio-card-body {
      flex: 1;
      min-width: 0;
    }

    .prio-card-hd {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 2px;
    }

    .prio-card-name {
      font-size: 14px;
      font-weight: 800;
      color: var(--ink);
      letter-spacing: -0.01em;
    }

    .prio-card-desc {
      font-size: 13px;
      color: #475569;
      margin-bottom: 8px;
      line-height: 1.55;
    }

    /* ── Segmented Level Bar ────────────────────────────── */
    .seg-bar {
      display: flex;
      gap: 4px;
      margin-top: 4px;
    }

    .seg {
      flex: 1;
      padding: 6px 0;
      font-size: 11px;
      font-weight: 700;
      font-family: inherit;
      border: 1.5px solid #cbd5e1;
      border-radius: 8px;
      background: #f8fafc;
      color: #64748b;
      cursor: pointer;
      transition: all .2s cubic-bezier(.4, 0, .2, 1);
      text-align: center;
      letter-spacing: .01em;
    }

    .seg:hover {
      border-color: var(--prio-accent, var(--accent));
      background: var(--prio-bg, #f0f4ff);
      color: var(--prio-accent, var(--accent));
      transform: translateY(-1px);
    }

    .seg.seg-active {
      background: var(--prio-accent, var(--accent));
      color: #fff;
      border-color: var(--prio-accent, var(--accent));
      box-shadow: 0 2px 8px color-mix(in srgb, var(--prio-accent, var(--accent)) 35%, transparent);
    }

    .seg:first-child {
      border-radius: 8px 4px 4px 8px;
    }

    .seg:last-child {
      border-radius: 4px 8px 8px 4px;
    }

    /* Weight bar */
    .wbar-wrap {
      grid-column: 1 / -1;
      margin-top: 10px;
    }

    .wbar-hd {
      display: flex;
      justify-content: space-between;
      font-size: 11px;
      font-weight: 600;
      color: var(--muted);
      margin-bottom: 6px;
    }

    #weightBar {
      height: 12px;
      border-radius: 999px;
      overflow: hidden;
      background: var(--line);
      display: flex;
      box-shadow: inset 0 0 0 1px rgba(148, 163, 184, .12);
    }

    .wb-seg {
      height: 100%;
      transition: width .3s cubic-bezier(.4, 0, .2, 1);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 10px;
      font-weight: 700;
      color: rgba(255,255,255,.9);
      white-space: nowrap;
      overflow: hidden;
      letter-spacing: .01em;
    }

    .wbar-legend {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
      gap: 8px;
      margin-top: 10px;
    }

    .wbar-chip {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      min-width: 0;
      padding: 6px 10px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #fff;
      box-shadow: 0 1px 3px rgba(15, 23, 42, .04);
      font-size: 11px;
      font-weight: 700;
      color: #334155;
    }

    .wbar-key {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      min-width: 0;
    }

    .wbar-dot {
      width: 8px;
      height: 8px;
      border-radius: 50%;
      flex-shrink: 0;
      box-shadow: 0 0 0 3px rgba(255, 255, 255, .7);
    }

    .wbar-val {
      flex-shrink: 0;
      color: #64748b;
      font-variant-numeric: tabular-nums;
    }

    @media (max-width: 640px) {
      #weightBar {
        height: 10px;
      }

      .wb-seg {
        font-size: 0;
      }

      .wbar-legend {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .wbar-chip {
        padding: 6px 8px;
        border-radius: 12px;
        font-size: 10px;
      }

      .wbar-val {
        font-size: 10px;
      }
    }

    #chart {
      width: 100%;
    }

    /* Bar chart header */
    .bar-hd {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 14px 18px 12px;
      border-bottom: 1px solid var(--line);
      flex-wrap: wrap;
    }

    .bar-hd-r {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .bar-hd-r label {
      margin: 0;
      font-size: 11px;
      color: var(--muted);
      white-space: nowrap;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .06em;
    }

    /* ── Spec chart context line ─────────────────────────── */
    .spec-chart-context {
      font-size: 12px;
      color: #64748b;
      margin-top: 5px;
      line-height: 1.6;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 4px;
      min-height: 0;
    }

    .spec-chart-context:empty { display: none; }

    .scc-chip {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      border: 1px solid;
      border-radius: 999px;
      padding: 1px 8px;
      font-size: 11px;
      font-weight: 600;
    }

    /* ── Spec chart mode toggle ──────────────────────────── */
    .spec-mode-bar {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 10px 16px 8px;
      border-bottom: 1px solid var(--line);
      background: #fff;
      flex-wrap: wrap;
    }

    .spec-mode-lbl {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: var(--muted);
      flex-shrink: 0;
    }

    .spec-mode-btn {
      font-size: 12px;
      font-weight: 600;
      padding: 4px 14px;
      border-radius: 999px;
      border: 1.5px solid var(--line);
      background: #fff;
      color: var(--muted);
      cursor: pointer;
      transition: all 0.18s;
      font-family: inherit;
    }

    .spec-mode-btn.active {
      background: var(--accent);
      color: #fff;
      border-color: transparent;
      box-shadow: 0 2px 8px rgba(79, 70, 229, .3);
    }

    .spec-mode-btn:hover:not(.active) {
      border-color: var(--accent);
      color: var(--accent);
    }

    .spec-mode-hint {
      font-size: 12px;
      color: #94a3b8;
      margin-left: 2px;
    }

    /* ── Instance picker ─────────────────────────────────── */
    .instance-picker {
      padding: 10px 14px 10px;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(90deg, #fafbff 0%, #f5f7ff 100%);
    }

    .ip-search-row {
      display: flex;
      gap: 8px;
      align-items: center;
      position: relative;
    }

    .ip-search {
      flex: 1;
      padding: 7px 12px;
      border: 1.5px solid var(--line);
      border-radius: 8px;
      font-size: 13px;
      color: var(--ink);
      background: #fff;
      font-family: inherit;
      transition: border-color 0.15s, box-shadow 0.15s;
    }

    .ip-search:focus {
      outline: none;
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(79, 70, 229, .1);
    }

    .ip-clear-btn {
      font-size: 11px;
      padding: 6px 12px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--muted);
      cursor: pointer;
      font-family: inherit;
      white-space: nowrap;
      transition: all 0.15s;
      flex-shrink: 0;
    }

    .ip-clear-btn:hover {
      border-color: #ef4444;
      color: #ef4444;
    }

    .ip-suggestions {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: 10px;
      box-shadow: 0 6px 24px rgba(15, 23, 42, .12);
      margin-top: 4px;
      overflow: hidden;
      max-height: 220px;
      overflow-y: auto;
      position: relative;
      z-index: 20;
    }

    .ip-sug-item {
      padding: 8px 14px;
      cursor: pointer;
      display: flex;
      align-items: center;
      gap: 12px;
      transition: background 0.1s;
      border-bottom: 1px solid #f1f5f9;
    }

    .ip-sug-item:last-child { border-bottom: none; }

    .ip-sug-item:hover {
      background: #f0f4ff;
    }

    .ip-sug-type {
      font-size: 13px;
      font-weight: 700;
      min-width: 110px;
      font-variant-numeric: tabular-nums;
    }

    .ip-sug-meta {
      font-size: 12px;
      color: var(--muted);
    }

    .ip-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      margin-top: 8px;
      min-height: 26px;
      align-items: center;
    }

    .ip-empty-hint {
      font-size: 12px;
      color: #94a3b8;
      font-style: italic;
    }

    .ip-tag {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      border: 1px solid;
      border-radius: 999px;
      padding: 3px 4px 3px 10px;
      font-size: 12px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }

    .ip-tag-rm {
      background: none;
      border: none;
      cursor: pointer;
      color: inherit;
      font-size: 16px;
      padding: 0 3px;
      line-height: 1;
      opacity: 0.55;
      font-family: inherit;
      border-radius: 50%;
      transition: opacity 0.1s, background 0.1s;
    }

    .ip-tag-rm:hover {
      opacity: 1;
      background: rgba(0, 0, 0, .08);
    }

    /* ── Family filter pills ─────────────────────────────── */
    .family-filter-bar {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      align-items: center;
      padding: 10px 16px 12px;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(90deg, #fafbff 0%, #f5f7ff 100%);
    }

    .family-filter-lbl {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .07em;
      color: var(--muted);
      margin-right: 2px;
      flex-shrink: 0;
    }

    .family-pill {
      font-size: 12px;
      font-weight: 700;
      padding: 4px 12px;
      border-radius: 999px;
      border: 1px solid var(--line);
      background: #fff;
      color: var(--muted);
      cursor: pointer;
      transition: all 0.18s cubic-bezier(0.4, 0, 0.2, 1);
      box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
      user-select: none;
      font-family: inherit;
    }

    .family-pill:hover:not(.active) {
      border-color: var(--pill-color, var(--accent));
      color: var(--pill-color, var(--accent));
      background: var(--accent-bg);
      transform: translateY(-1px);
      box-shadow: 0 3px 10px rgba(0, 0, 0, .08);
    }

    .family-pill.active {
      background: var(--pill-color, var(--accent));
      color: #fff;
      border-color: var(--pill-color, var(--accent));
      box-shadow: 0 3px 12px rgba(0, 0, 0, .18);
      transform: translateY(-1px);
    }

    .family-pill.pill-all.active {
      background: var(--ink);
      border-color: var(--ink);
    }

    /* None / clear pill */
    .family-pill.pill-none {
      border-style: dashed;
      margin-left: 4px;
    }

    .family-pill.pill-none:hover:not(.active) {
      border-color: #ef4444;
      color: #ef4444;
      background: #fef2f2;
      border-style: solid;
    }

    .family-pill.pill-none.active {
      background: #64748b;
      color: #fff;
      border-color: #64748b;
      border-style: solid;
    }

    /* ── KPI strip ───────────────────────────────────────── */
    .kpi-strip {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
      margin-bottom: 14px;
    }

    @media (max-width: 900px) {
      .kpi-strip {
        grid-template-columns: repeat(2, 1fr);
      }
    }

    .kpi {
      background: #fff;
      border: 1px solid rgba(226, 232, 240, .9);
      border-radius: 14px;
      padding: 16px 18px;
      box-shadow: 0 2px 10px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .04);
      position: relative;
      overflow: hidden;
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .kpi:hover {
      box-shadow: 0 6px 20px rgba(15, 23, 42, .09);
      transform: translateY(-2px);
    }

    .kpi::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      border-radius: var(--r-sm) var(--r-sm) 0 0;
    }

    .kpi:nth-child(1)::before {
      background: var(--accent);
    }

    .kpi:nth-child(2)::before {
      background: var(--success);
    }

    .kpi:nth-child(3)::before {
      background: #f59e0b;
    }

    .kpi:nth-child(4)::before {
      background: #8b5cf6;
    }

    .kpi-lbl {
      font-size: 11px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: var(--muted);
      margin-bottom: 5px;
    }

    .kpi-val {
      font-size: 21px;
      font-weight: 900;
      color: var(--ink);
      letter-spacing: -.02em;
      line-height: 1;
    }

    .kpi-sub {
      font-size: 11px;
      color: var(--muted);
      margin-top: 3px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    /* ── Rec hero ────────────────────────────────────────── */
    .rec-hero {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--sh-lg);
      overflow: hidden;
      margin-bottom: 14px;
    }

    .rec-hero-accent {
      height: 4px;
      transition: background .35s;
    }

    .rec-hero.error-state .rec-hero-accent {
      background: #ef4444 !important;
    }

    .rec-eyebrow {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .1em;
      text-transform: uppercase;
      color: var(--muted);
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 10px;
    }

    .copy-rec-btn {
      background: var(--accent-bg);
      border: 1px solid #c7d2fe;
      color: var(--accent);
      padding: 4px 11px;
      border-radius: var(--r-sm);
      font-size: 11px;
      font-weight: 700;
      cursor: pointer;
      white-space: nowrap;
      transition: background .15s;
      font-family: inherit;
    }

    .copy-rec-btn:hover {
      background: #e0e7ff;
      transform: scale(1.02);
    }

    /* ── Compare panel ───────────────────────────────────── */
    .cmp-panel {
      background: #fff;
      border: 1px solid var(--line);
      border-radius: var(--r);
      box-shadow: var(--sh);
      overflow: hidden;
      display: none;
      margin-bottom: 14px;
    }

    .cmp-panel.visible {
      display: block;
    }

    .cmp-hd {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      padding: 12px 16px;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(90deg, #f0f4ff 0%, #eef2ff 100%);
    }

    .cmp-title {
      font-size: 13px;
      font-weight: 700;
      color: var(--ink);
    }

    .cmp-sub {
      font-size: 11px;
      color: var(--muted);
      margin-top: 2px;
    }

    .cmp-close {
      width: 26px;
      height: 26px;
      border-radius: 6px;
      border: 1px solid var(--line);
      background: #fff;
      cursor: pointer;
      font-size: 14px;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--muted);
      transition: all .15s;
      flex-shrink: 0;
      font-family: inherit;
    }

    .cmp-close:hover {
      background: #fee2e2;
      color: #dc2626;
      border-color: #fca5a5;
    }

    .cmp-body {
      display: grid;
      grid-template-columns: 200px 1fr;
    }

    .cmp-specs {
      padding: 14px 16px;
      border-right: 1px solid var(--line);
      display: flex;
      flex-direction: column;
      gap: 10px;
    }

    .cmp-spec-lbl {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: var(--muted);
      margin-bottom: 2px;
    }

    .cmp-spec-val {
      font-size: 15px;
      font-weight: 800;
      color: var(--ink);
    }

    .cmp-spec-sub {
      font-size: 11px;
      color: var(--muted);
      margin-top: 1px;
    }

    @media (max-width: 768px) {
      .cmp-body {
        grid-template-columns: 1fr;
      }

      .cmp-specs {
        border-right: none;
        border-bottom: 1px solid var(--line);
        flex-direction: row;
        flex-wrap: wrap;
        gap: 10px 20px;
      }
    }

    /* ── Family Highlights ────────────────────────────────── */
    .fh-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 12px;
    }

    .fh-card {
      border: 1px solid var(--line);
      border-radius: 10px;
      padding: 14px;
      background: var(--card);
    }

    .fh-card-hdr {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-bottom: 12px;
      padding-bottom: 10px;
      border-bottom: 2px solid var(--line);
    }

    .fh-card-icon {
      font-size: 18px;
    }

    .fh-card-name {
      font-size: 12px;
      font-weight: 800;
      letter-spacing: -.02em;
      color: var(--ink);
    }

    .fh-card-count {
      font-size: 10px;
      color: var(--muted);
      margin-left: auto;
      font-weight: 600;
    }

    .fh-row {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      padding: 7px 0;
    }

    .fh-row+.fh-row {
      border-top: 1px solid rgba(0, 0, 0, .04);
    }

    .fh-row-badge {
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .04em;
      padding: 2px 6px;
      border-radius: 4px;
      white-space: nowrap;
      flex-shrink: 0;
      margin-top: 1px;
    }

    .fh-row-badge.cheapest {
      background: #ecfdf5;
      color: #065f46;
    }

    .fh-row-badge.powerful {
      background: #eff6ff;
      color: #1e40af;
    }

    .fh-row-badge.value {
      background: #fef3c7;
      color: #92400e;
    }

    .fh-row-info {
      flex: 1;
      min-width: 0;
    }

    .fh-row-name {
      font-size: 12px;
      font-weight: 700;
      color: var(--ink);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }

    .fh-row-stat {
      font-size: 10px;
      color: var(--muted);
      margin-top: 2px;
    }

    @media (max-width: 900px) {
      .fh-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media (max-width: 600px) {
      .fh-grid {
        grid-template-columns: 1fr 1fr;
      }
    }

    /* ── Table ───────────────────────────────────────────── */
    .table-toolbar {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 10px 16px;
      border-bottom: 1px solid var(--line);
    }

    .table-search {
      flex: 1;
      border: 1px solid var(--line);
      border-radius: var(--r-sm);
      padding: 7px 12px 7px 32px;
      font-size: 12px;
      color: var(--ink);
      background: #f8fafc url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2394a3b8' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E") no-repeat 10px center;
      transition: border-color .15s;
      font-family: inherit;
    }

    .table-search:focus {
      outline: none;
      border-color: var(--accent);
      background-color: #fff;
    }

    .table-count {
      font-size: 11px;
      color: var(--muted);
      white-space: nowrap;
    }

    .table-wrap {
      max-height: 420px;
      overflow: auto;
    }

    table {
      width: 100%;
      border-collapse: collapse;
      font-size: 12px;
    }

    thead th {
      background: #f8fafc;
      color: var(--muted);
      font-size: 11px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .05em;
      border-bottom: 1px solid var(--line);
      padding: 9px 10px;
      text-align: left;
      position: sticky;
      top: 0;
      z-index: 2;
    }

    td {
      border-bottom: 1px solid #f1f5f9;
      padding: 8px 10px;
      color: var(--ink-2);
    }

    tbody tr {
      transition: background .12s;
    }

    tbody tr:hover {
      background: #f1f5f9;
    }

    tbody tr.rank-1 td {
      background: #fefce8;
    }

    tbody tr.rank-1:hover td {
      background: #fef9c3;
    }

    .cat-pill {
      font-size: 11px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 999px;
      display: inline-block;
      white-space: nowrap;
    }

    .score-cell {
      display: flex;
      align-items: center;
      gap: 6px;
    }

    .score-bar {
      height: 4px;
      border-radius: 999px;
      flex-shrink: 0;
      transition: width .35s ease;
    }

    .score-num {
      font-size: 11px;
      font-weight: 800;
    }

    /* ── Calculator ──────────────────────────────────────── */
    .calc-grid {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 10px;
      margin-bottom: 14px;
    }

    @media (max-width: 700px) {
      .calc-grid {
        grid-template-columns: 1fr 1fr;
      }
    }

    .calc-input-wrap label {
      font-size: 11px;
      font-weight: 600;
      color: var(--ink-2);
      display: block;
      margin-bottom: 4px;
    }

    .calc-inp {
      width: 100%;
      border: 1px solid var(--line);
      border-radius: var(--r-sm);
      padding: 8px 10px;
      font-size: 13px;
      color: var(--ink);
      transition: border-color .15s;
      font-family: inherit;
    }

    .calc-inp:focus {
      outline: none;
      border-color: var(--accent);
    }


    .cr-item {
      text-align: center;
    }

    .cr-lbl {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .05em;
      color: var(--muted);
      margin-bottom: 4px;
    }

    .cr-val {
      font-size: 20px;
      font-weight: 900;
      color: var(--accent);
      transition: color .2s;
    }

    .cr-val.dark {
      color: var(--ink);
    }

    /* ── Billing Toggle ───────────────────────────────────── */
    .billing-toggle-row {
      display: flex;
      align-items: center;
      gap: 12px;
      margin-bottom: 16px;
      flex-wrap: wrap;
    }

    .tco-freshness-badge {
      font-size: 11px;
      font-weight: 600;
      color: #92400e;
      background: #fef3c7;
      border: 1px solid #fcd34d;
      padding: 3px 9px;
      border-radius: 999px;
      cursor: default;
      margin-left: auto;
    }

    .billing-toggle-label {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .05em;
      color: var(--muted);
      white-space: nowrap;
    }

    .billing-toggle {
      display: flex;
      border: 1px solid var(--line);
      border-radius: var(--r-sm);
      overflow: hidden;
    }

    .billing-btn {
      padding: 7px 14px;
      font-size: 12px;
      font-weight: 600;
      font-family: inherit;
      border: none;
      background: #fff;
      color: var(--ink-2);
      cursor: pointer;
      transition: background .15s, color .15s;
      border-right: 1px solid var(--line);
      display: flex;
      align-items: center;
      gap: 5px;
      line-height: 1.3;
    }

    .billing-btn:last-child {
      border-right: none;
    }

    .billing-btn:hover {
      background: var(--accent-bg);
    }

    .billing-btn.active {
      background: var(--accent);
      color: #fff;
    }

    .billing-btn.active .billing-badge {
      background: rgba(255, 255, 255, .25);
      color: #fff;
    }

    .billing-badge {
      font-size: 9px;
      font-weight: 800;
      padding: 1px 5px;
      border-radius: 10px;
      background: #dcfce7;
      color: #15803d;
      white-space: nowrap;
    }

    /* ── EBS select ───────────────────────────────────────── */
    .calc-select {
      appearance: none;
      -webkit-appearance: none;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748b' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right 10px center;
      padding-right: 28px;
      cursor: pointer;
    }

    /* ── Effective rate line ──────────────────────────────── */
    .calc-rate-line {
      font-size: 12px;
      color: var(--muted);
      margin-bottom: 12px;
      padding: 7px 12px;
      background: var(--accent-bg);
      border-radius: var(--r-sm);
      border-left: 3px solid var(--accent);
    }

    /* ── TCO Result ───────────────────────────────────────── */
    .tco-result {
      padding: 14px;
      border-radius: var(--r-sm);
      background: var(--accent-bg);
      border: 1px solid #c7d2fe;
    }

    .tco-row {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 10px;
      margin-bottom: 10px;
    }

    @media (max-width: 720px) {
      .tco-row {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media (max-width: 420px) {
      .tco-row {
        grid-template-columns: 1fr 1fr;
      }
    }

    .tco-total .cr-lbl {
      color: var(--accent);
    }

    /* ── TCO Breakdown Bar ────────────────────────────────── */
    .tco-bar-wrap {
      margin-top: 8px;
      margin-bottom: 6px;
    }

    .tco-bar {
      height: 7px;
      border-radius: 4px;
      overflow: hidden;
      display: flex;
      background: var(--line);
      margin-bottom: 6px;
    }

    .tco-bar-seg {
      height: 100%;
      transition: width .4s ease;
    }

    .seg-compute {
      background: var(--accent);
    }

    .seg-storage {
      background: #10b981;
    }

    .seg-transfer {
      background: #f59e0b;
    }

    .tco-bar-legend {
      display: flex;
      gap: 14px;
      font-size: 11px;
      color: var(--muted);
      font-weight: 600;
      flex-wrap: wrap;
    }

    .tbl-dot {
      display: inline-block;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      margin-right: 3px;
      vertical-align: middle;
    }

    /* ── Savings Badge ────────────────────────────────────── */
    .savings-badge {
      margin-top: 10px;
      padding: 8px 12px;
      border-radius: var(--r-sm);
      background: #dcfce7;
      border: 1px solid #86efac;
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 13px;
      color: #15803d;
      font-weight: 600;
    }

    .savings-icon {
      font-size: 15px;
    }

    .savings-pct {
      margin-left: auto;
      font-size: 13px;
      font-weight: 800;
      color: #15803d;
    }

    @media (max-width: 600px) {
      .billing-btn {
        padding: 7px 10px;
        font-size: 11px;
      }

      .billing-badge {
        display: none;
      }
    }

    /* ── Shared utilities ────────────────────────────────── */
    .sec-title {
      font-size: 11px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .08em;
      color: var(--muted);
    }

    label {
      display: block;
      font-size: 12px;
      font-weight: 600;
      color: var(--ink-2);
      margin-bottom: 5px;
    }

    /* ── Inline help / write-ups ───────────────────────────── */
    .howto-card .howto-body {
      padding: 16px 18px 18px;
    }

    .howto-steps {
      margin: 0;
      padding-left: 18px;
      display: grid;
      gap: 8px;
      color: var(--ink-2);
      font-size: 13px;
      line-height: 1.6;
    }

    .howto-steps li strong {
      color: var(--ink);
      font-weight: 800;
    }

    .help-callout {
      background: linear-gradient(90deg, #fbfcff 0%, #f5f7ff 100%);
      border: 1px solid rgba(99, 102, 241, .14);
      border-left: 3px solid rgba(99, 102, 241, .5);
      border-radius: 14px;
      padding: 16px 20px;
      margin: 10px 0 12px;
      box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
    }

    .help-callout-title {
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .09em;
      text-transform: uppercase;
      color: #6366f1;
      margin-bottom: 6px;
    }

    .help-callout-text {
      font-size: 13px;
      color: #475569;
      line-height: 1.65;
    }

    .help-list {
      margin: 8px 0 0;
      padding-left: 18px;
      display: grid;
      gap: 8px;
      font-size: 13px;
      color: #475569;
      line-height: 1.6;
    }

    .decision-handoff {
      margin-top: 14px;
    }

    .decision-handoff .chart-action-btn {
      margin-top: 10px;
    }

    .help-kbd {
      display: inline-block;
      font-size: 11px;
      font-weight: 800;
      padding: 1px 7px;
      border-radius: 999px;
      background: rgba(99, 102, 241, .12);
      border: 1px solid rgba(99, 102, 241, .22);
      color: #4338ca;
      white-space: nowrap;
    }

    @media (max-width: 600px) {
      .howto-card .howto-body {
        padding: 14px 14px 16px;
      }

      .howto-steps {
        font-size: 13px;
      }

      .help-callout {
        padding: 12px 12px;
      }

      .controls-top {
        padding: 12px 14px;
        gap: 10px;
      }

      .controls-head-sub {
        font-size: 12px;
      }

      .controls-toolbar {
        width: 100%;
        gap: 8px;
      }

      .controls-category-wrap {
        width: 100%;
        justify-content: space-between;
        border-radius: 12px;
      }

      .controls-category-wrap #category {
        flex: 1;
        min-width: 0;
      }

      .controls-presets-wrap {
        width: 100%;
        align-items: flex-start;
        flex-direction: column;
      }

      .controls-presets {
        width: 100%;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
      }

      .controls-presets .preset-btn {
        width: 100%;
        justify-content: center;
      }

      .help-callout-text,
      .help-list {
        font-size: 13px;
      }
    }

    kbd {
      display: inline-block;
      font-size: 10px;
      font-family: inherit;
      background: rgba(0, 0, 0, .07);
      border: 1px solid rgba(0, 0, 0, .12);
      border-radius: 4px;
      padding: 1px 4px;
    }

    /* ── Nav step jumps ──────────────────────────────────── */
    .nav-steps {
      display: flex;
      gap: 1px;
      align-items: center;
      margin: 0 auto;
      background: rgba(255, 255, 255, .045);
      border: 1px solid rgba(255, 255, 255, .09);
      border-radius: 14px;
      padding: 4px;
      box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 2px 12px rgba(0,0,0,.2);
    }

    .nav-step-btn {
      position: relative;
      display: flex;
      align-items: center;
      gap: 6px;
      height: 34px;
      border-radius: 10px;
      padding: 0 10px 0 5px;
      border: 1px solid transparent;
      background: transparent;
      color: #475569;
      cursor: pointer;
      transition: background .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
      font-family: inherit;
      white-space: nowrap;
    }

    .step-icon {
      width: 26px;
      height: 26px;
      border-radius: 7px;
      background: transparent;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      transition: background .18s ease, color .18s ease, box-shadow .18s ease;
      color: #475569;
    }

    .step-icon svg {
      width: 13px;
      height: 13px;
    }

    .nav-divider {
      width: 1px;
      height: 20px;
      background: linear-gradient(180deg, transparent, rgba(165,180,252,.18), transparent);
      margin: 0 3px;
      flex-shrink: 0;
    }

    .step-lbl {
      font-size: 11px;
      font-weight: 700;
      letter-spacing: -.01em;
      white-space: nowrap;
      color: inherit;
    }

    /* Hover */
    .nav-step-btn:hover {
      background: rgba(99, 102, 241, .12);
      border-color: rgba(165, 180, 252, .15);
      color: #c7d2fe;
    }

    .nav-step-btn:hover .step-icon {
      background: rgba(99, 102, 241, .2);
      color: #a5b4fc;
    }

    /* Active / current section */
    .nav-step-btn.ns-active {
      background: rgba(99, 102, 241, .22);
      border-color: rgba(165, 180, 252, .28);
      color: #fff;
      box-shadow: 0 2px 14px rgba(99, 102, 241, .25), inset 0 1px 0 rgba(255,255,255,.08);
    }

    .nav-step-btn.ns-active .step-icon {
      background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
      color: #fff;
      box-shadow: 0 3px 12px rgba(99, 102, 241, .55);
    }

    /* Active top-highlight bar */
    .nav-step-btn.ns-active::after {
      content: '';
      position: absolute;
      top: 0;
      left: 22%;
      right: 22%;
      height: 2px;
      border-radius: 0 0 4px 4px;
      background: linear-gradient(90deg, #818cf8, #c4b5fd, #818cf8);
      box-shadow: 0 2px 8px rgba(129,140,248,.5);
    }

    /* Hide text labels on narrower desktops */
    @media (max-width: 1300px) {
      .step-lbl {
        display: none;
      }

      .nav-step-btn {
        padding: 0 5px;
      }
    }

    @media (max-width: 720px) {
      .nav-steps {
        display: none;
      }
    }

    /* ═══════════════════════════════════════════════════════
       COMPREHENSIVE MOBILE STYLES
    ═══════════════════════════════════════════════════════ */

    /* Small phones (≤480px) */
    @media (max-width: 480px) {

      /* Hero */
      .hero-section {
        padding: 40px 16px 36px;
      }

      .hero-title {
        font-size: clamp(22px, 8vw, 34px);
        letter-spacing: -.02em;
      }

      .hero-desc {
        font-size: 14px;
        margin-bottom: 24px;
      }

      .hero-stats {
        gap: 18px;
      }

      .hero-stat-val {
        font-size: 24px;
      }

      /* Steps */
      .funnel-step {
        padding-top: 40px;
        scroll-margin-top: 60px;
      }

      .step-hdr {
        gap: 12px;
        margin-bottom: 18px;
      }

      .step-title {
        font-size: 18px;
      }

      .step-desc {
        font-size: 13px;
      }

      .step-num {
        width: 34px;
        height: 34px;
        font-size: 12px;
        border-radius: 10px;
      }

      /* Family cards */
      .family-cards-grid {
        grid-template-columns: 1fr 1fr;
      }

      /* Controls */
      .controls-body {
        padding: 14px 14px;
      }

      /* Chart bodies - shorter on mobile */
      #chart5 {
        height: 240px !important;
      }

      #chart {
        height: 260px !important;
      }

      #chart2 {
        height: 300px !important;
      }

      #chart3 {
        height: 100% !important;
        min-height: 280px;
        max-width: 100%;
      }

      #chart4 {
        height: 280px !important;
      }

      #chart6 {
        height: 260px !important;
      }

      #chartParallel {
        height: 350px !important;
      }

      .radar-chart-wrap {
        min-height: 300px;
        padding: 8px;
      }

      .radar-chart-wrap .chart-body {
        aspect-ratio: auto;
        max-width: 100%;
      }

      /* Radar panels: compact on small phones */
      .radar-explainer,
      .radar-legend-panel {
        padding: 10px 12px;
      }

      .re-axis-badge {
        font-size: 10px;
        padding: 2px 7px;
      }

      .re-legend-item {
        padding: 4px 6px;
        font-size: 11px;
      }

      .re-legend-tag {
        font-size: 9px;
      }

      /* Family highlights - 2 cols */
      .fh-grid {
        grid-template-columns: 1fr 1fr;
        gap: 8px;
      }

      .fh-card {
        padding: 10px;
      }

      .fh-row-badge {
        font-size: 8px;
      }

      /* KPI strip */
      .kpi-strip {
        grid-template-columns: 1fr 1fr;
      }

      /* Table */
      .table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
      }

      .table-toolbar {
        flex-wrap: wrap;
        gap: 8px;
      }

      .table-toolbar input {
        font-size: 13px;
        min-width: 0;
      }

      /* Footer */
      .footer-grid {
        grid-template-columns: 1fr;
        gap: 24px;
      }

      .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
      }

      .footer-disclaimer {
        width: 100%;
        justify-content: flex-start;
      }

      /* Compare panel */
      .cmp-body {
        grid-template-columns: 1fr;
      }

      /* Navbar */
      .site-nav {
        padding: 0 14px;
        height: 52px;
      }

      .nav-actions {
        gap: 8px;
      }
    }

    /* Mid-size phones (481px–600px) */
    @media (min-width: 481px) and (max-width: 600px) {
      .hero-title {
        font-size: clamp(26px, 6vw, 38px);
      }

      .hero-desc {
        font-size: 15px;
      }

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

      #chart5 {
        height: 260px !important;
      }

      #chart3 {
        height: 100% !important;
        min-height: 320px;
      }

      .radar-chart-wrap {
        min-height: 320px;
      }

      .radar-chart-wrap .chart-body {
        aspect-ratio: auto;
        max-width: 100%;
      }

      .footer-grid {
        grid-template-columns: 1fr 1fr;
      }

      .footer-bottom {
        flex-wrap: wrap;
      }
    }

    /* All phones (≤600px) generic */
    @media (max-width: 600px) {

      /* Prevent horizontal overflow */
      body {
        overflow-x: hidden;
      }

      .funnel-wrap {
        padding: 0 18px 50px;
      }

      /* Table scrollable */
      .table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
      }

      #table {
        min-width: 560px;
      }

      /* Ensure charts don't overflow */
      .chart-card {
        overflow: hidden;
      }



      /* Navbar chips hidden */
      .nav-chip.hide-sm {
        display: none;
      }

      .nav-brand span.text {
        display: none;
      }
    }

    /* ══════════════════════════════════════════════════════
       FOOTER — 2-column variant + tech-stack pills
    ══════════════════════════════════════════════════════ */

    /* New 2-col footer (Brand | Links+Shortcuts) */
    .footer-grid-2col {
      grid-template-columns: 1.6fr 1fr;
    }

    /* Balanced 3-col footer (hero | support | support) */
    .footer-grid.footer-grid-3col {
      grid-template-columns: minmax(0, 1.6fr) minmax(280px, .8fr) minmax(280px, .8fr);
      gap: 24px;
    }

    @media (max-width: 820px) {
      .footer-grid-2col {
        grid-template-columns: 1fr;
        gap: 32px;
      }

      .footer-grid.footer-grid-3col {
        grid-template-columns: 1fr;
        gap: 28px;
      }
    }

    /* ══════════════════════════════════════════════════════
       MOBILE POLISH — targeted fixes
    ══════════════════════════════════════════════════════ */

    /* Family highlights: go single-column on tight phones */
    @media (max-width: 480px) {
      .fh-grid {
        grid-template-columns: 1fr;
      }
    }

    /* Family cards: single column on mobile */
    @media (max-width: 540px) {
      .family-cards-grid {
        grid-template-columns: 1fr;
      }
    }

    /* Inputs: prevent iOS Safari auto-zoom (needs font-size ≥16px) */
    @media (max-width: 600px) {

      input[type="search"],
      input[type="text"],
      input[type="number"],
      select {
        font-size: 16px !important;
      }
    }

    /* Table: hide less-important columns on mobile to keep Score visible */
    @media (max-width: 600px) {

      /* Hide Region (col 4), GPU (col 7), Net (col 8) */
      #table thead tr th:nth-child(4),
      #table thead tr th:nth-child(7),
      #table thead tr th:nth-child(8),
      #table tbody tr td:nth-child(4),
      #table tbody tr td:nth-child(7),
      #table tbody tr td:nth-child(8) {
        display: none;
      }

      #table {
        min-width: 0;
      }
    }

    /* Step controls body: tighter on mobile */
    @media (max-width: 480px) {
      .controls-body {
        padding: 12px;
        gap: 10px;
      }
    }

    /* Back to top: move away from edge on mobile */
    @media (max-width: 480px) {
      #backToTop {
        bottom: 18px;
        right: 16px;
        width: 38px;
        height: 38px;
        font-size: 17px;
      }
    }

    /* ── Back to top ─────────────────────────────────────── */
    #backToTop {
      position: fixed;
      bottom: 28px;
      right: 24px;
      z-index: 900;
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: var(--accent);
      color: #fff;
      border: none;
      font-size: 20px;
      cursor: pointer;
      box-shadow: 0 6px 24px rgba(79, 70, 229, .4), 0 2px 8px rgba(79, 70, 229, .25);
      display: flex;
      align-items: center;
      justify-content: center;
      opacity: 0;
      pointer-events: none;
      transform: translateY(10px);
      transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
      font-family: inherit;
    }

    #backToTop.btt-visible {
      opacity: 1;
      pointer-events: all;
      transform: translateY(0);
    }

    #backToTop:hover {
      background: #4338ca;
      transform: translateY(-3px) scale(1.08);
      box-shadow: 0 10px 32px rgba(79, 70, 229, .5);
    }

    /* ── Load more btn ───────────────────────────────────── */
    .load-more-btn {
      display: block;
      width: 100%;
      padding: 11px;
      font-size: 12px;
      font-weight: 700;
      color: var(--accent);
      background: var(--accent-bg);
      border: none;
      border-top: 1px solid #c7d2fe;
      cursor: pointer;
      transition: background .15s;
      font-family: inherit;
      letter-spacing: .02em;
    }

    .load-more-btn:hover {
      background: #e0e7ff;
    }

    /* ── Animations ──────────────────────────────────────── */
    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(16px);
      }

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

    .fade-up {
      animation: fadeUp .4s ease both;
    }

    .fade-up-1 {
      animation: fadeUp .4s .06s ease both;
    }

    .fade-up-2 {
      animation: fadeUp .4s .14s ease both;
    }

    .fade-up-3 {
      animation: fadeUp .4s .22s ease both;
    }

    /* ── Site Footer ─────────────────────────────────── */
    .site-footer {
      background: linear-gradient(180deg, #0b1220 0%, #0d1526 40%, #111827 100%);
      border-top: 1px solid rgba(99, 102, 241, .15);
      padding: 24px 20px 0;
      position: relative;
      overflow: hidden;
    }

    .site-footer::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%234f46e5' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
    }

    .footer-glow {
      position: absolute;
      top: -120px;
      right: -80px;
      width: 320px;
      height: 320px;
      pointer-events: none;
      background: radial-gradient(circle, rgba(79, 70, 229, .12) 0%, transparent 70%);
    }

    .footer-glow-left {
      top: auto;
      right: auto;
      bottom: -100px;
      left: -80px;
      width: 280px;
      height: 280px;
      background: radial-gradient(circle, rgba(37, 99, 235, .08) 0%, transparent 70%);
    }

    .footer-inner {
      max-width: 1120px;
      margin: 0 auto;
      position: relative;
      z-index: 1;
    }

    .footer-shell {
      background: linear-gradient(180deg, rgba(15, 23, 42, .55) 0%, rgba(15, 23, 42, .40) 100%);
      border: 1px solid rgba(148, 163, 184, .10);
      border-radius: 16px;
      padding: 16px 22px;
      box-shadow: 0 12px 30px rgba(2, 6, 23, .2), inset 0 1px 0 rgba(255, 255, 255, .04);
      backdrop-filter: blur(12px);
    }

    .footer-main {
      display: grid;
      grid-template-columns: 1.2fr 1fr;
      gap: 12px 32px;
      align-items: center;
    }

    .footer-brand-block {
      display: grid;
      gap: 6px;
      min-width: 0;
    }

    .footer-brand {
      font-size: clamp(20px, 2.2vw, 24px);
      font-weight: 900;
      letter-spacing: -.02em;
      color: rgba(255, 255, 255, .6);
      line-height: 1.1;
    }

    .footer-brand em {
      font-style: normal;
      color: #a5b4fc;
    }

    .footer-tagline {
      font-size: 13px;
      color: #94a3b8;
      line-height: 1.65;
      max-width: 42ch;
      margin: 0;
    }

.footer-links {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 8px 24px;
      align-content: center;
      justify-items: start;
    }

    .footer-col {
      display: grid;
      gap: 2px;
      min-width: 0;
    }

    .footer-col-title {
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: .12em;
      font-weight: 800;
      color: rgba(226, 232, 240, .5);
      margin-bottom: 4px;
    }

    .footer-link {
      color: #94a3b8;
      text-decoration: none;
      font-size: 13px;
      font-weight: 600;
      line-height: 1.25;
      display: inline-flex;
      align-items: center;
      gap: 8px;
      padding: 7px 10px;
      border-radius: 10px;
      border: 1px solid transparent;
      background: transparent;
      transition: border-color .18s, background .18s, color .18s, transform .18s;
    }

    .footer-link svg {
      flex-shrink: 0;
      opacity: .55;
      transition: opacity .18s;
    }

    .footer-link:hover {
      transform: translateY(-1px);
      color: #fff;
      background: rgba(255, 255, 255, .06);
      border-color: rgba(129, 140, 248, .20);
    }

    .footer-link:hover svg {
      opacity: 1;
    }

    .footer-link:focus-visible {
      outline: 2px solid rgba(129, 140, 248, .7);
      outline-offset: 2px;
    }

    .footer-link-strong {
      color: #e0e7ff;
      background: linear-gradient(135deg, rgba(79, 70, 229, .18) 0%, rgba(37, 99, 235, .10) 100%);
      border-color: rgba(165, 180, 252, .14);
    }

    .footer-link-strong svg {
      opacity: .8;
    }

    .footer-bottom-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 4px 16px;
      margin-top: 12px;
      border-top: 1px solid rgba(255, 255, 255, .06);
      gap: 12px;
    }

    .footer-bottom-left {
      display: flex;
      align-items: center;
      gap: 16px;
      flex-wrap: wrap;
    }

    .footer-copy {
      font-size: 12px;
      color: #64748b;
      line-height: 1.5;
    }

    .footer-copy a {
      color: #94a3b8;
      text-decoration: none;
      transition: color .15s;
    }

    .footer-copy a:hover {
      color: #818cf8;
    }

    .footer-disclaimer {
      font-size: 11px;
      color: #64748b;
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-weight: 500;
    }

    .footer-disclaimer svg {
      color: #f59e0b;
      opacity: .6;
    }

    .footer-bottom-right {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-shrink: 0;
    }

    .footer-share-btn {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      font-weight: 700;
      color: #a5b4fc;
      background: rgba(99, 102, 241, .12);
      border: 1px solid rgba(165, 180, 252, .2);
      border-radius: 10px;
      padding: 7px 14px;
      cursor: pointer;
      font-family: inherit;
      white-space: nowrap;
      transition: background .18s, border-color .18s, color .18s, transform .15s;
    }

    .footer-share-btn:hover {
      background: rgba(99, 102, 241, .22);
      border-color: rgba(165, 180, 252, .35);
      color: #c7d2fe;
      transform: translateY(-1px);
    }

    .footer-back-to-top {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 12px;
      font-weight: 600;
      color: #94a3b8;
      text-decoration: none;
      padding: 8px 14px;
      border-radius: 10px;
      border: 1px solid rgba(255, 255, 255, .08);
      background: rgba(255, 255, 255, .03);
      transition: all .2s;
      white-space: nowrap;
      flex-shrink: 0;
    }

    .footer-back-to-top:hover {
      color: #fff;
      border-color: rgba(129, 140, 248, .25);
      background: rgba(79, 70, 229, .12);
      transform: translateY(-1px);
    }

    @media (max-width: 760px) {
      .site-footer {
        padding: 20px 14px 0;
      }

      .footer-shell {
        padding: 14px 16px;
      }

      .footer-main {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .footer-links {
        grid-template-columns: 1fr 1fr;
      }

      .footer-bottom-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        padding: 14px 4px 18px;
      }

      .footer-bottom-left {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
      }

      .footer-bottom-right {
        align-self: flex-start;
      }

      .footer-back-to-top {
        align-self: flex-start;
      }
    }

    /* ── NLG Explainability Panel ──────────────────────────── */
    .nlg-panel {
      background: linear-gradient(135deg, #eef2ff 0%, #faf5ff 100%);
      border: 1px solid rgba(99, 102, 241, .2);
      border-radius: var(--r);
      padding: 18px 22px;
      margin-top: 16px;
      position: relative;
      overflow: hidden;
    }

    .nlg-panel::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
      background: linear-gradient(90deg, #6366f1, #8b5cf6, #a855f7);
    }

    .nlg-hdr {
      display: flex;
      align-items: center;
      gap: 8px;
      margin-bottom: 10px;
    }

    .nlg-icon {
      width: 28px;
      height: 28px;
      border-radius: 8px;
      background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 14px;
      flex-shrink: 0;
    }

    .nlg-title {
      font-size: 12px;
      font-weight: 800;
      color: var(--ink);
      text-transform: uppercase;
      letter-spacing: .06em;
    }

    .nlg-text {
      font-size: 14px;
      line-height: 1.7;
      color: var(--ink-2);
      font-weight: 500;
    }

    .nlg-text strong {
      color: var(--accent);
      font-weight: 700;
    }

    /* ── Step 04 filter bridge ──────────────────────────────── */
    .step04-family-bridge {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
      margin-top: 8px;
      padding: 6px 10px;
      background: #f0f4ff;
      border: 1px solid #c7d2fe;
      border-radius: 8px;
      font-size: 12px;
    }

    .step04-bridge-lbl {
      font-size: 11px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: #6366f1;
    }

    .step04-fam-chip {
      font-size: 12px;
      font-weight: 600;
      padding: 2px 8px;
      border-radius: 999px;
      border: 1px solid;
    }

    .step04-bridge-clear {
      margin-left: auto;
      font-size: 11px;
      font-weight: 600;
      color: #94a3b8;
      background: none;
      border: none;
      cursor: pointer;
      padding: 2px 4px;
      border-radius: 4px;
      transition: color .15s;
    }

    .step04-bridge-clear:hover { color: #ef4444; }

    /* ── Parallel coordinates drag hint ─────────────────────── */
    .pc-drag-hint {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      background: rgba(15, 23, 42, .82);
      color: #e2e8f0;
      font-size: 13px;
      font-weight: 600;
      padding: 10px 18px;
      border-radius: 999px;
      pointer-events: none;
      display: flex;
      align-items: center;
      gap: 8px;
      backdrop-filter: blur(6px);
      box-shadow: 0 4px 20px rgba(0,0,0,.25);
      transition: opacity .4s, transform .4s;
      z-index: 10;
    }

    .pc-drag-hint-icon {
      font-size: 18px;
      animation: pc-bounce 1.2s ease-in-out infinite;
    }

    @keyframes pc-bounce {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-4px); }
    }

    .pc-drag-hint-gone {
      opacity: 0;
      transform: translate(-50%, -50%) scale(.9);
    }

    /* ── pc-guide highlight ──────────────────────────────────── */
    .pc-guide-item-highlight {
      background: #f0f4ff;
      border: 1px solid #c7d2fe;
      border-radius: 8px;
      padding: 6px 10px;
    }

    /* ── Runners-up empty state ──────────────────────────────── */
    /* ── Top Picks Grid ──────────────────────────────────── */
    .top-picks-grid {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      gap: 0;
      border-top: 1px solid var(--line);
    }

    .top-pick-card {
      padding: 16px 14px 14px;
      position: relative;
      cursor: pointer;
      transition: background .2s, box-shadow .2s;
      border-right: 1px solid var(--line);
      display: flex;
      flex-direction: column;
    }

    .top-pick-card:last-child {
      border-right: none;
    }

    .top-pick-card:hover {
      background: #f8fafc;
      box-shadow: inset 0 0 0 1px var(--accent-bg);
    }

    .top-pick-best {
      background: linear-gradient(168deg, #fafbff 0%, #eef2ff 100%);
    }

    .top-pick-badge {
      position: absolute;
      top: 10px;
      right: 10px;
      font-size: 8px;
      font-weight: 800;
      color: #fff;
      padding: 2px 7px;
      border-radius: 5px;
      text-transform: uppercase;
      letter-spacing: .04em;
    }

    .top-pick-rank {
      font-size: 10px;
      font-weight: 800;
      margin-bottom: 2px;
      opacity: .7;
    }

    .top-pick-name {
      font-size: 15px;
      font-weight: 900;
      color: var(--ink);
      letter-spacing: -.03em;
      margin-bottom: 4px;
      line-height: 1.1;
    }

    .top-pick-cat {
      display: inline-block;
      font-size: 9px;
      font-weight: 700;
      padding: 2px 7px;
      border-radius: 999px;
      border: 1px solid;
      margin-bottom: 10px;
      width: fit-content;
    }

    .top-pick-specs {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 6px 8px;
      margin-bottom: 10px;
    }

    .top-pick-spec {
      display: flex;
      flex-direction: column;
    }

    .top-pick-spec-val {
      font-size: 12px;
      font-weight: 800;
      color: var(--ink);
      letter-spacing: -.02em;
      line-height: 1;
    }

    .top-pick-spec-lbl {
      font-size: 8px;
      font-weight: 600;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: .03em;
      margin-top: 1px;
    }

    .top-pick-score-row {
      display: flex;
      align-items: center;
      gap: 6px;
      margin-top: auto;
    }

    .tp-bar-wrap {
      flex: 1;
      height: 7px;
      border-radius: 4px;
      background: #f1f5f9;
      overflow: hidden;
      display: flex;
    }

    .tp-seg {
      height: 100%;
      transition: width .5s cubic-bezier(.4, 0, .2, 1);
    }

    .tp-seg:first-child { border-radius: 4px 0 0 4px; }
    .tp-seg:last-child  { border-radius: 0 4px 4px 0; }

    .top-pick-score-val {
      font-size: 12px;
      font-weight: 800;
      color: var(--ink);
      min-width: 36px;
      text-align: right;
      letter-spacing: -.02em;
    }

    .tp-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 6px 14px;
      padding: 10px 20px 12px;
      border-top: 1px solid var(--line);
      background: #fafbfc;
    }

    .tp-legend-item {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      font-size: 10px;
      font-weight: 600;
      color: var(--muted);
    }

    .tp-legend-dot {
      display: inline-block;
      width: 8px;
      height: 8px;
      border-radius: 2px;
    }

    @media (max-width: 1100px) {
      .top-picks-grid {
        grid-template-columns: repeat(3, 1fr);
      }
      .top-pick-card:nth-child(3) {
        border-right: none;
      }
      .top-pick-card:nth-child(n+4) {
        border-top: 1px solid var(--line);
      }
    }

    @media (max-width: 768px) {
      .top-picks-grid {
        grid-template-columns: 1fr 1fr;
      }
      .top-pick-card {
        border-right: 1px solid var(--line);
      }
      .top-pick-card:nth-child(even) {
        border-right: none;
      }
      .top-pick-card:nth-child(n+3) {
        border-top: 1px solid var(--line);
      }
      .top-pick-specs {
        grid-template-columns: repeat(3, 1fr);
      }
    }

    @media (max-width: 480px) {
      .top-picks-grid {
        grid-template-columns: 1fr;
      }
      .top-pick-card {
        border-right: none;
        border-bottom: 1px solid var(--line);
      }
      .top-pick-card:last-child {
        border-bottom: none;
      }
    }

    /* ── Parallel Coordinates (card) ──────────────────────── */
    .parallel-coord-card {
      margin-top: 14px;
      overflow: hidden;
    }

    .parallel-coord-card .chart-body {
      background: linear-gradient(180deg, #fafbff 0%, #fff 30%, #fff 70%, #fafbff 100%);
    }

    /* ── Scoring Pipeline ─────────────────────────────────── */
    .scoring-pipeline {
      display: flex;
      align-items: stretch;
      justify-content: center;
      margin-bottom: 24px;
      padding: 24px 16px;
      background: linear-gradient(135deg, var(--bg) 0%, var(--accent-bg) 50%, var(--mem-bg) 100%);
      border: 1px solid var(--line);
      border-radius: var(--r);
      overflow-x: auto;
      list-style: none;
    }

    .pipeline-step {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      padding: 16px 20px;
      border-radius: var(--r);
      background: var(--card);
      border: 1px solid var(--line);
      box-shadow: var(--sh-sm);
      min-width: 140px;
      max-width: 180px;
      flex: 1;
    }

    .pipeline-step-num {
      width: 28px;
      height: 28px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 13px;
      font-weight: 800;
      color: #fff;
      margin-bottom: 8px;
    }

    .ps-filter .pipeline-step-num { background: linear-gradient(135deg, #6366f1, var(--accent)); }
    .ps-normalize .pipeline-step-num { background: linear-gradient(135deg, #10b981, var(--success)); }
    .ps-blend .pipeline-step-num { background: linear-gradient(135deg, #f59e0b, var(--warn)); }
    .ps-score .pipeline-step-num { background: linear-gradient(135deg, #ef4444, #dc2626); }

    .pipeline-step-label {
      font-size: 14px;
      font-weight: 800;
      color: var(--ink);
      letter-spacing: -.02em;
      margin-bottom: 4px;
    }

    .pipeline-step-detail {
      font-size: 12px;
      color: var(--muted);
      line-height: 1.5;
    }

    .pipeline-arrow {
      display: flex;
      align-items: center;
      padding: 0 6px;
      color: #94a3b8;
      flex-shrink: 0;
      margin-top: 24px;
    }

    @media (max-width: 700px) {
      .scoring-pipeline {
        display: grid;
        grid-template-columns: 1fr auto 1fr;
        justify-items: center;
        align-items: stretch;
        gap: 0;
        padding: 16px 12px;
      }

      .pipeline-step {
        min-width: auto;
        max-width: none;
        width: 100%;
      }

      /* Row 1: Filter -> arrow -> Normalize */
      .ps-filter    { grid-column: 1; grid-row: 1; }
      .ps-normalize { grid-column: 3; grid-row: 1; }

      /* Row 2: Blend -> arrow -> Score & Rank */
      .ps-blend { grid-column: 1; grid-row: 3; }
      .ps-score { grid-column: 3; grid-row: 3; }

      .pipeline-arrow {
        margin-top: 0;
        align-self: center;
      }

      /* 1st arrow: between Filter and Normalize (row 1) */
      .scoring-pipeline li:nth-child(2) {
        grid-column: 2; grid-row: 1;
      }

      /* 2nd arrow: connecting row 1 to row 2 (points down) */
      .scoring-pipeline li:nth-child(4) {
        grid-column: 1 / -1;
        grid-row: 2;
        transform: rotate(90deg);
        padding: 6px 0;
        justify-self: center;
      }

      /* 3rd arrow: between Blend and Score (row 2) */
      .scoring-pipeline li:nth-child(6) {
        grid-column: 2; grid-row: 3;
      }
    }

    /* ── Why Rank / Limitations Callouts ──────────────────── */
    .method-callout {
      display: flex;
      gap: 16px;
      margin-top: 20px;
      padding: 20px 24px;
      border-radius: var(--r);
      border: 1px solid var(--line);
    }

    .method-callout-why {
      background: linear-gradient(135deg, var(--cpu-bg) 0%, var(--mem-bg) 100%);
      border-color: rgba(59, 130, 246, .18);
    }

    .method-callout-limits {
      background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
      border-color: rgba(245, 158, 11, .22);
    }

    .method-callout-icon {
      flex-shrink: 0;
      width: 40px;
      height: 40px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .method-callout-why .method-callout-icon {
      background: rgba(59, 130, 246, .12);
      color: #2563eb;
    }

    .method-callout-limits .method-callout-icon {
      background: rgba(245, 158, 11, .15);
      color: var(--warn);
    }

    .method-callout-body {
      flex: 1;
      min-width: 0;
    }

    .method-callout-title {
      font-size: 15px;
      font-weight: 800;
      color: var(--ink);
      letter-spacing: -.02em;
      margin: 0 0 8px;
    }

    .method-callout-text {
      font-size: 13px;
      color: var(--ink-2);
      line-height: 1.7;
    }

    /* ── Normalization Comparison Visual ──────────────────── */
    .norm-comparison {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      margin-top: 16px;
    }

    .norm-compare-col {
      padding: 14px;
      border-radius: var(--r-sm);
      border: 1px solid var(--line);
    }

    .norm-bad {
      background: rgba(239, 68, 68, .04);
      border-color: rgba(239, 68, 68, .15);
    }

    .norm-good {
      background: rgba(16, 185, 129, .04);
      border-color: rgba(16, 185, 129, .15);
    }

    .norm-compare-label {
      font-size: 12px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .08em;
      margin-bottom: 10px;
    }

    .norm-bad .norm-compare-label { color: #b91c1c; }
    .norm-good .norm-compare-label { color: var(--success); }

    .norm-compare-bar-group {
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .norm-compare-row {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .norm-inst {
      font-size: 11px;
      font-weight: 600;
      color: var(--ink-2);
      min-width: 62px;
      font-family: var(--font-mono);
    }

    .norm-bar-track {
      flex: 1;
      height: 8px;
      background: rgba(148, 163, 184, .12);
      border-radius: 4px;
      overflow: hidden;
    }

    .norm-bad .norm-bar {
      height: 100%;
      border-radius: 4px;
      background: linear-gradient(90deg, #fca5a5, #ef4444);
    }

    .norm-good .norm-bar {
      height: 100%;
      border-radius: 4px;
      background: linear-gradient(90deg, #6ee7b7, #10b981);
    }

    .norm-val {
      font-size: 11px;
      font-weight: 700;
      color: var(--muted);
      min-width: 28px;
      text-align: right;
      font-family: var(--font-mono);
    }

    .norm-verdict {
      margin-top: 10px;
      font-size: 12px;
      font-weight: 700;
      text-align: center;
      padding: 5px 8px;
      border-radius: 6px;
    }

    .norm-bad .norm-verdict {
      color: #991b1b;
      background: rgba(239, 68, 68, .08);
    }

    .norm-good .norm-verdict {
      color: #065f46;
      background: rgba(16, 185, 129, .08);
    }

    /* ── Limitations List ─────────────────────────────────── */
    .method-limits-list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .method-limits-list li {
      font-size: 13px;
      color: var(--ink-2);
      line-height: 1.6;
      padding-left: 18px;
      position: relative;
    }

    .method-limits-list li::before {
      content: '';
      position: absolute;
      left: 0;
      top: 8px;
      width: 6px;
      height: 6px;
      border-radius: 50%;
      background: var(--warn);
    }

    @media (max-width: 600px) {
      .norm-comparison {
        grid-template-columns: 1fr;
      }

      .method-callout {
        flex-direction: column;
        gap: 12px;
      }

      .norm-inst {
        min-width: 52px;
        font-size: 10px;
      }
    }

    /* ── Methodology Section ──────────────────────────────── */
    .methodology-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr));
      gap: 16px;
      align-items: stretch;
    }

    @media (min-width: 1100px) {
      .methodology-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      /* WSM + Normalization share the top row; Price & GPU spans full width below */
      .method-card.mc-weights {
        grid-column: 1 / -1;
      }
    }

    .method-card {
      background: var(--card);
      border: 1px solid var(--line);
      border-radius: var(--r);
      padding: 24px;
      box-shadow: var(--sh-sm);
      position: relative;
      overflow: hidden;
      transition: transform .2s ease, box-shadow .2s ease;
      will-change: transform;
      display: flex;
      flex-direction: column;
    }

    .method-card:hover {
      transform: translateY(-3px);
      box-shadow: var(--sh);
    }

    .method-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 3px;
    }

    .method-card.mc-scoring::before {
      background: linear-gradient(90deg, #3b82f6, #6366f1);
    }

    .method-card.mc-normalize::before {
      background: linear-gradient(90deg, #10b981, #059669);
    }

    .method-card.mc-weights::before {
      background: linear-gradient(90deg, #f59e0b, #8b5cf6);
    }

    /* mc-weights: 3-column formula grid on wide screens */
    .method-card.mc-weights .method-formula {
      grid-template-columns: repeat(3, 1fr);
    }

    /* GPU tier grid */
    .gpu-tier-grid {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
      margin-top: 6px;
    }

    .gpu-tier-item {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px 9px;
      border-radius: 7px;
      background: rgba(139, 92, 246, .08);
      border: 1px solid rgba(139, 92, 246, .16);
      font-family: var(--font-sans);
      font-size: 11px;
      font-weight: 600;
      color: #475569;
      white-space: nowrap;
    }

    .gpu-tier-num {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 17px;
      height: 17px;
      border-radius: 5px;
      background: linear-gradient(135deg, #8b5cf6, #6d28d9);
      color: #fff;
      font-size: 10px;
      font-weight: 800;
      flex-shrink: 0;
    }

    /* Icon + title on one row (fixes stacked emoji / heading layout) */
    .method-card-head {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 12px;
    }

    .method-card-head .method-icon {
      margin-bottom: 0;
      flex-shrink: 0;
    }

    .method-card-head .method-name {
      margin-bottom: 0;
      line-height: 1.3;
      flex: 1;
      min-width: 0;
    }

    .method-icon {
      width: 44px;
      height: 44px;
      border-radius: 12px;
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 22px;
      margin-bottom: 14px;
    }

    .method-card-head + .method-text {
      margin-top: 0;
    }

    .method-card.mc-scoring .method-icon {
      background: var(--cpu-bg);
    }

    .method-card.mc-normalize .method-icon {
      background: var(--mem-bg);
    }

    .method-card.mc-weights .method-icon {
      background: #fffbeb;
    }

    h3.method-name {
      margin: 0;
    }

    .method-name {
      font-size: 16px;
      font-weight: 800;
      color: var(--ink);
      letter-spacing: -.02em;
      margin-bottom: 8px;
    }

    .method-text {
      font-size: 13px;
      color: var(--ink-2);
      line-height: 1.7;
      flex: 1;
    }

    .method-formula {
      background: linear-gradient(180deg, #f8fbff 0%, var(--bg) 100%);
      border: 1px solid var(--line);
      border-radius: var(--r);
      padding: 14px;
      margin-top: 14px;
      display: grid;
      gap: 12px;
      font-family: var(--font-mono);
      font-size: 13px;
      color: var(--ink-2);
      line-height: 1.7;
      overflow: hidden;
      letter-spacing: 0;
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .7);
    }

    .method-formula-group {
      display: grid;
      gap: 6px;
    }

    .method-formula-kicker {
      font-family: var(--font-sans);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--accent);
    }

    .method-formula-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
    }

    .formula-chip {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      min-height: 28px;
      padding: 5px 10px;
      border-radius: 999px;
      border: 1px solid rgba(99, 102, 241, .16);
      background: rgba(99, 102, 241, .08);
      color: #312e81;
      font-size: 12px;
      font-weight: 700;
      white-space: normal;
    }

    .method-formula var {
      font-style: italic;
      color: var(--ink);
    }

    .formula-expr {
      display: block;
      padding: 9px 12px;
      border-radius: 10px;
      border: 1px solid rgba(148, 163, 184, .22);
      background: rgba(255, 255, 255, .92);
      color: var(--ink);
      font-weight: 600;
      white-space: normal;
      word-break: break-word;
      overflow-wrap: anywhere;
    }

    .formula-expr-main {
      font-size: 13px;
      font-weight: 700;
      background: linear-gradient(180deg, var(--accent-bg) 0%, var(--card) 100%);
      border-color: rgba(99, 102, 241, .18);
    }

    .formula-expr-compact {
      font-size: 12px;
    }

    .method-formula-note {
      padding-top: 2px;
      font-family: var(--font-sans);
      font-size: 12px;
      line-height: 1.55;
      color: var(--ink-2);
    }

    .method-formula sub,
    .method-formula sup {
      font-size: 10px;
      line-height: 0;
    }

    @media (max-width: 1180px) {
      .methodology-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .method-card.mc-weights {
        grid-column: 1 / -1;
      }

      /* 2-col formula on tablet */
      .method-card.mc-weights .method-formula {
        grid-template-columns: 1fr 1fr;
      }

      /* GPU group spans full width since it has the tier grid */
      .method-card.mc-weights .method-formula-gpu-group {
        grid-column: 1 / -1;
      }
    }

    @media (max-width: 760px) {
      .methodology-grid {
        grid-template-columns: 1fr;
      }

      .method-card.mc-weights {
        grid-column: auto;
      }

      .method-card.mc-weights .method-formula {
        grid-template-columns: 1fr;
      }

      .method-card.mc-weights .method-formula-gpu-group {
        grid-column: auto;
      }
    }

    /* ── References Table ─────────────────────────────────── */
    .ref-table {
      border: 1px solid var(--line);
      border-radius: 14px;
      overflow: hidden;
      background: var(--card);
    }

    .ref-section-hdr {
      padding: 7px 16px;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .8px;
      text-transform: uppercase;
      color: var(--accent);
      background: #f8faff;
      border-bottom: 1px solid var(--line);
      border-top: 1px solid var(--line);
    }

    .ref-section-hdr:first-child {
      border-top: none;
    }

    .ref-row {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 10px 16px;
      border-bottom: 1px solid var(--line);
      text-decoration: none;
      color: inherit;
      transition: background .12s;
    }

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

    .ref-row:hover {
      background: #f0f4ff;
    }

    .ref-tag {
      font-size: 10px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 4px;
      white-space: nowrap;
      flex-shrink: 0;
      letter-spacing: .2px;
      min-width: 52px;
      text-align: center;
    }

    .rt-data {
      background: #e0f2fe;
      color: #0369a1;
    }

    .rt-pricing {
      background: #dcfce7;
      color: #166534;
    }

    .rt-arch {
      background: #fae8ff;
      color: #7e22ce;
    }

    .rt-method {
      background: #fff7ed;
      color: #c2410c;
    }

    .ref-name {
      font-size: 13px;
      font-weight: 700;
      color: var(--ink);
      white-space: nowrap;
      flex-shrink: 0;
      min-width: 190px;
    }

    .ref-desc {
      font-size: 12px;
      color: var(--muted);
      flex: 1;
      line-height: 1.4;
    }

    .ref-arrow {
      color: var(--accent);
      font-size: 14px;
      flex-shrink: 0;
      opacity: .45;
      transition: opacity .12s, transform .12s;
    }

    .ref-row:hover .ref-arrow {
      opacity: 1;
      transform: translate(2px, -2px);
    }

    @media (max-width: 600px) {
      .ref-name {
        min-width: unset;
      }

      .ref-desc {
        display: none;
      }
    }

    /* ── Scroll Reveal ──────────────────────────────────── */
    .scroll-reveal {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity .6s cubic-bezier(.4, 0, .2, 1), transform .6s cubic-bezier(.4, 0, .2, 1);
    }

    .scroll-reveal.revealed {
      opacity: 1;
      transform: translateY(0);
    }

    /* ── Chart card header gradient ─────────────────────── */
    .chart-hd {
      background: linear-gradient(135deg, #fafbff 0%, #f0f4ff 100%);
    }

    /* ── Enhanced chart card hover ──────────────────────── */
    .chart-card {
      transition: transform .25s cubic-bezier(.4, 0, .2, 1), box-shadow .25s;
    }

    .chart-card:hover {
      transform: translateY(-2px);
      box-shadow: 0 8px 30px rgba(15, 23, 42, .12);
    }

    /* ── Architecture Reference Table ─────────────────────── */
    .arch-filter-bar {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      padding: 14px 16px;
      border-bottom: 1px solid var(--line);
      flex-wrap: wrap;
    }

    .arch-filter-left {
      display: flex;
      align-items: center;
      gap: 10px;
      flex: 1;
      min-width: 0;
    }

    /* Active-category badge shown next to the search box */
    .arch-active-filter {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px 10px;
      border-radius: 20px;
      font-size: 12px;
      font-weight: 600;
      white-space: nowrap;
      border: 1.5px solid transparent;
    }

    /* Count footer inside the table card */
    .arch-count-bar {
      padding: 8px 16px;
      font-size: 11px;
      color: var(--muted);
      border-top: 1px solid var(--line);
      text-align: right;
      letter-spacing: .3px;
    }

    .arch-search-inp {
      flex: 1;
      min-width: 200px;
      padding: 7px 12px;
      border: 1.5px solid var(--line);
      border-radius: 8px;
      font-size: 13px;
      color: var(--ink);
      background: var(--card);
      outline: none;
      transition: border-color .15s, box-shadow .15s;
    }

    .arch-search-inp:focus {
      border-color: var(--accent);
      box-shadow: 0 0 0 3px rgba(99, 102, 241, .12);
    }

    .arch-legend {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-wrap: wrap;
    }

    /* ── Vendor badge ── */
    .avb {
      display: inline-flex;
      align-items: center;
      padding: 2px 8px;
      border-radius: 4px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: .3px;
      white-space: nowrap;
      line-height: 1.6;
    }

    .avb.intel {
      background: #dbeafe;
      color: #1d4ed8;
    }

    .avb.amd {
      background: #fee2e2;
      color: #b91c1c;
    }

    .avb.aws {
      background: #fff7ed;
      color: #c2410c;
      border: 1px solid #fed7aa;
    }

    /* ── ISA badge ── */
    .isab {
      display: inline-flex;
      align-items: center;
      padding: 2px 7px;
      border-radius: 4px;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: .2px;
      white-space: nowrap;
      line-height: 1.6;
    }

    .isab.x86 {
      background: #f1f5f9;
      color: #475569;
      border: 1px solid #e2e8f0;
    }

    .isab.arm {
      background: #f0fdf4;
      color: #166534;
      border: 1px solid #bbf7d0;
    }

    /* ── Accelerator badge ── */
    .accel-badge {
      display: inline-flex;
      align-items: center;
      padding: 2px 7px;
      border-radius: 4px;
      font-size: 11px;
      font-weight: 600;
      background: #faf5ff;
      color: #7c3aed;
      border: 1px solid #ddd6fe;
      white-space: nowrap;
      line-height: 1.6;
    }

    .arch-dash {
      color: var(--muted);
    }

    /* ── Category separator row ── */
    .arch-cat-row td {
      background: #f8faff;
      color: var(--accent);
      font-size: 11px;
      font-weight: 800;
      letter-spacing: .8px;
      text-transform: uppercase;
      padding: 6px 14px;
      border-top: 2px solid var(--line);
    }

    /* ── Table cells ── */
    .arch-fam {
      font-family: var(--font-mono);
      font-size: 13px;
      font-weight: 700;
      color: var(--accent);
      background: #eef2ff;
      padding: 2px 6px;
      border-radius: 4px;
      display: inline-block;
    }

    .arch-cat-cell {
      font-size: 12px;
      color: var(--muted);
    }

    .arch-proc {
      font-size: 12px;
      color: #334155;
    }

    .arch-hyp {
      font-size: 12px;
      color: #475569;
      white-space: nowrap;
    }

    .arch-yr {
      font-size: 12px;
      color: var(--muted);
      font-weight: 600;
      white-space: nowrap;
    }

    /* ══════════════════════════════════════════════════════
       MOBILE OVERRIDES — placed at end to win the cascade
    ══════════════════════════════════════════════════════ */

    @media (max-width: 600px) {

      /* Arch table: hide legend (ISA/vendor badges) — they're still
         visible as inline badges inside every table row */
      .arch-legend {
        display: none;
      }

      /* Search input: no enforced min-width + ≥16px stops iOS auto-zoom */
      .arch-search-inp {
        min-width: 0;
        font-size: 16px;
      }

      /* Filter bar: tighter padding, allow wrapping */
      .arch-filter-bar {
        padding: 10px 12px;
        gap: 8px;
      }

      /* Table: wrap inside a scrollable box */
      .arch-table-wrap,
      #archTable {
        font-size: 12px;
      }

      /* Prevent iOS auto-zoom on any input/select */
      input,
      select,
      textarea {
        font-size: 16px !important;
      }
    }


    /* ── Mobile Nav ─────────────────────────────────────────── */
    .hide-md {
      display: none;
    }

    .icon-close {
      display: none;
    }

    .mobile-nav-toggle {
      background: transparent;
      border: none;
      border-radius: 10px;
      color: #94a3b8;
      cursor: pointer;
      display: none;
      padding: 8px;
      transition: background .18s ease, color .18s ease;
      flex-shrink: 0;
    }

    .mobile-nav-toggle:hover,
    .mobile-nav-toggle:focus-visible {
      background: rgba(99, 102, 241, .18);
      color: #c7d2fe;
    }

    .mobile-nav-toggle[aria-expanded="true"] {
      background: rgba(99, 102, 241, .22);
      color: #a5b4fc;
    }

    .mobile-nav-toggle[aria-expanded="true"] .icon-hamburger {
      display: none;
    }

    .mobile-nav-toggle[aria-expanded="true"] .icon-close {
      display: block;
    }

    .nav-phase-label {
      display: none;
    }

    /* ── Mobile backdrop ──────────────────────────── */
    .mobile-nav-backdrop {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(2, 6, 23, .55);
      backdrop-filter: blur(2px);
      -webkit-backdrop-filter: blur(2px);
      z-index: 115;
      animation: backdropFadeIn .22s ease forwards;
    }

    .mobile-nav-backdrop.active {
      display: block;
    }

    @keyframes backdropFadeIn {
      from { opacity: 0; }
      to   { opacity: 1; }
    }

    /* ── ≤900px: hamburger menu ─────────────────── */
    @media (max-width: 900px) {
      .hide-md {
        display: block;
      }

      .mobile-nav-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-right: 4px;
      }

      .site-nav {
        padding-left: 12px;
        gap: 8px;
        justify-content: flex-start;
      }

      .nav-actions {
        margin-left: auto;
        min-width: 0;
        flex: 1 1 auto;
        justify-content: flex-end;
      }

      /* Dropdown panel */
      .nav-steps {
        display: none;
        position: absolute;
        top: calc(100% + 10px);
        left: 12px;
        right: 12px;
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
        background: linear-gradient(160deg, #0f172a 0%, #1e1b4b 100%);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        padding: 10px 10px 12px;
        border: 1px solid rgba(165, 180, 252, .18);
        border-radius: 20px;
        box-shadow: 0 24px 56px rgba(2, 6, 23, .6), 0 0 0 1px rgba(99, 102, 241, .08);
        max-height: min(72vh, 540px);
        overflow-y: auto;
        overscroll-behavior: contain;
        z-index: 120;
        scroll-behavior: smooth;
      }

      .nav-steps.mobile-open {
        display: flex;
        animation: navSlideDown .22s cubic-bezier(.16,1,.3,1) forwards;
      }

      @keyframes navSlideDown {
        from { opacity: 0; transform: translateY(-10px) scale(.97); }
        to   { opacity: 1; transform: translateY(0)     scale(1); }
      }

      /* Phase group labels */
      .nav-phase-label {
        display: block;
        font-size: 10px;
        font-weight: 800;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: rgba(148, 163, 184, .55);
        padding: 10px 10px 4px;
        margin-top: 4px;
      }

      .nav-phase-label:first-child {
        margin-top: 0;
        padding-top: 4px;
      }

      .nav-divider {
        display: none;
      }

      /* Step buttons */
      .nav-step-btn {
        justify-content: flex-start;
        width: 100%;
        min-height: 44px;
        padding: 8px 12px;
        border-radius: 12px;
        background: transparent;
        border: 1px solid transparent;
        color: #94a3b8;
        gap: 12px;
      }

      .nav-step-btn:hover,
      .nav-step-btn:focus-visible {
        background: rgba(99, 102, 241, .12);
        border-color: rgba(165, 180, 252, .2);
        color: #e2e8f0;
      }

      .nav-step-btn.ns-active {
        background: rgba(99, 102, 241, .18);
        border-color: rgba(165, 180, 252, .3);
        color: #fff;
      }

      .nav-step-btn .step-icon {
        width: 30px;
        height: 30px;
        border-radius: 9px;
        background: rgba(255, 255, 255, .06);
        color: #64748b;
        flex-shrink: 0;
      }

      .nav-step-btn:hover .step-icon,
      .nav-step-btn:focus-visible .step-icon {
        background: rgba(99, 102, 241, .22);
        color: #a5b4fc;
      }

      .nav-step-btn.ns-active .step-icon {
        background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
        color: #fff;
        box-shadow: 0 4px 12px rgba(99, 102, 241, .4);
      }

      .step-lbl {
        display: inline-block !important;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: -.01em;
        color: inherit;
      }
    }

    /* ── ≤520px: very small phones ──────────────── */
    @media (max-width: 520px) {
      .site-nav {
        padding: 0 10px;
        gap: 6px;
        height: 52px;
      }

      .nav-brand span.text {
        display: none;
      }

      .mobile-nav-toggle {
        margin-right: 0;
        padding: 7px;
      }

      .nav-actions {
        gap: 6px;
      }

      .nav-steps {
        left: 8px;
        right: 8px;
        top: calc(100% + 8px);
      }
    }

    /* ═══════════════════════════════════════════════════
   CHART ACTION BUTTONS (zoom-reset, clear-filters)
════════════════════════════════════════════════════ */
    .chart-action-btn {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 5px 13px;
      border: 1.5px solid var(--line);
      border-radius: 999px;
      background: var(--card);
      color: var(--muted);
      font-size: 11px;
      font-weight: 600;
      font-family: var(--font-sans);
      letter-spacing: 0.01em;
      cursor: pointer;
      transition: all 0.18s ease;
      white-space: nowrap;
      line-height: 1;
    }

    .chart-action-btn:hover {
      border-color: var(--accent);
      color: var(--accent);
      background: var(--accent-bg);
      box-shadow: 0 2px 8px rgba(79, 70, 229, .12);
    }

    .chart-action-btn:active {
      transform: scale(0.96);
    }

    /* ═══════════════════════════════════════════════════
   PARALLEL COORDINATES — GUIDE + LEGEND + HINT
════════════════════════════════════════════════════ */

    /* How-to-read guide */
    .pc-guide {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
      gap: 0;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(135deg, #fafbff 0%, #f0f4ff 100%);
    }

    .pc-guide-item {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      padding: 10px 16px;
      font-size: 12px;
      line-height: 1.5;
      color: #475569;
      border-right: 1px solid var(--line);
    }

    .pc-guide-item:last-child {
      border-right: none;
    }

    .pc-guide-icon {
      flex-shrink: 0;
      width: 22px;
      height: 22px;
      display: flex;
      align-items: center;
      justify-content: center;
      border-radius: 6px;
      background: var(--accent);
      color: #fff;
      font-size: 11px;
      font-weight: 700;
    }

    .pc-guide-item strong {
      color: #1e293b;
    }

    @media (max-width: 768px) {
      .pc-guide {
        grid-template-columns: 1fr 1fr;
      }
      .pc-guide-item {
        border-right: none;
        border-bottom: 1px solid var(--line);
        padding: 8px 14px;
      }
      .pc-guide-item:nth-last-child(-n+2) {
        border-bottom: none;
      }
    }

    @media (max-width: 480px) {
      .pc-guide {
        grid-template-columns: 1fr;
      }
      .pc-guide-item:last-child {
        border-bottom: none;
      }
    }

    /* Filter hint bar */
    .parcoords-hint {
      display: flex;
      align-items: center;
      gap: 8px;
      padding: 9px 16px;
      font-size: 12px;
      font-weight: 500;
      color: var(--muted);
      background: linear-gradient(90deg, #eef2ff 0%, #f8faff 100%);
      border-left: 3px solid var(--accent);
      border-bottom: 1px solid var(--line);
    }

    .parcoords-hint span {
      line-height: 1.4;
    }

    .parcoords-hint em {
      font-style: italic;
      color: #6366f1;
    }

    /* Legend (above chart) */
    .parcoords-legend-wrap {
      display: flex;
      flex-wrap: wrap;
      gap: 6px;
      padding: 10px 16px;
      border-bottom: 1px solid var(--line);
      background: #fafbfc;
    }

    /* Summary stats row */
    .pc-summary-stats {
      display: flex;
      flex-wrap: wrap;
      gap: 0;
      border-top: 1px solid var(--line);
      background: linear-gradient(90deg, #f8fafc 0%, #fafbff 100%);
    }

    .pc-stat-cell {
      flex: 1;
      min-width: 120px;
      padding: 8px 14px;
      border-right: 1px solid var(--line);
    }

    .pc-stat-cell:last-child {
      border-right: none;
    }

    .pc-stat-label {
      font-size: 10px;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: .06em;
      color: var(--muted);
      margin-bottom: 2px;
    }

    .pc-stat-vals {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: 12px;
      font-weight: 600;
      font-variant-numeric: tabular-nums;
    }

    .pc-stat-lo {
      color: #10b981;
    }

    .pc-stat-arrow {
      color: #cbd5e1;
      font-size: 10px;
    }

    .pc-stat-hi {
      color: #ef4444;
    }

    .pc-stat-avg {
      color: #94a3b8;
      font-size: 11px;
      font-weight: 500;
      margin-left: 4px;
      padding-left: 6px;
      border-left: 1px solid #e2e8f0;
    }

    .parcoords-legend-chip {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      padding: 4px 10px 4px 7px;
      border-radius: 999px;
      background: var(--chip-bg, #eef2ff);
      border: 1.5px solid var(--chip-c, #4f46e5);
      box-shadow: 0 1px 4px rgba(0, 0, 0, .05);
      cursor: default;
      transition: transform 0.14s ease, box-shadow 0.14s ease;
    }

    .parcoords-legend-chip:hover {
      transform: translateY(-1px);
      box-shadow: 0 3px 10px rgba(0, 0, 0, .1);
    }

    .parcoords-legend-dot {
      display: inline-block;
      width: 8px;
      height: 8px;
      border-radius: 50%;
      flex-shrink: 0;
    }

    .parcoords-legend-fam {
      font-size: 11px;
      font-weight: 700;
      font-family: var(--font-mono);
      color: var(--chip-c, #4f46e5);
      letter-spacing: 0.01em;
    }

    .parcoords-legend-cnt {
      font-size: 10px;
      font-weight: 600;
      background: var(--chip-c, #4f46e5);
      color: #fff;
      border-radius: 999px;
      padding: 0 5px;
      line-height: 16px;
      min-width: 16px;
      text-align: center;
    }

    /* ═══════════════════════════════════════════════════
   INSTANCE COMPARISON BAR — CATEGORY LEGEND
════════════════════════════════════════════════════ */
    .bar-cat-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      padding: 8px 16px 14px;
      border-top: 1px solid var(--line);
    }

    .bar-cat-chip {
      display: inline-flex;
      align-items: center;
      gap: 5px;
      font-size: 12px;
      font-weight: 600;
      color: var(--ink-2);
      letter-spacing: 0.01em;
    }

    .bar-cat-dot {
      display: inline-block;
      width: 11px;
      height: 11px;
      border-radius: 3px;
      flex-shrink: 0;
      box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08);
    }

    /* ═══════════════════════════════════════════════════
   PARALLEL COORDINATES — INTERACTIVE CONTROLS
════════════════════════════════════════════════════ */

    .pc-controls {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 12px 24px;
      padding: 12px 16px;
      border-bottom: 1px solid var(--line);
      background: linear-gradient(90deg, #fafbff 0%, #f8fafc 100%);
    }

    .pc-ctrl-group {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

    .pc-ctrl-lbl {
      font-size: 12px;
      font-weight: 700;
      color: var(--muted);
      text-transform: uppercase;
      letter-spacing: 0.06em;
      white-space: nowrap;
    }

    .pc-axes-pills {
      display: flex;
      flex-wrap: wrap;
      gap: 5px;
    }

    .pc-axis-pill {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 3px 10px;
      font-size: 12px;
      font-weight: 600;
      border-radius: 999px;
      border: 1.5px solid var(--line);
      background: var(--card);
      color: var(--muted);
      cursor: pointer;
      transition: background 0.14s, border-color 0.14s, color 0.14s;
      user-select: none;
    }

    .pc-axis-pill.active {
      background: #eef2ff;
      border-color: var(--accent);
      color: var(--accent);
    }

    .pc-axis-pill:hover:not(.active) {
      border-color: #a5b4fc;
      color: #6366f1;
      background: #f5f3ff;
    }

    .pc-color-btn {
      padding: 3px 12px;
      font-size: 12px;
      font-weight: 600;
      border-radius: 999px;
      border: 1.5px solid var(--line);
      background: var(--card);
      color: var(--muted);
      cursor: pointer;
      transition: background 0.14s, border-color 0.14s, color 0.14s;
    }

    .pc-color-btn.active {
      background: #eef2ff;
      border-color: var(--accent);
      color: var(--accent);
    }

    .pc-color-btn:hover:not(.active) {
      border-color: #a5b4fc;
      color: #6366f1;
    }

    .pc-filtered-list {
      display: none;
      flex-wrap: wrap;
      gap: 6px;
      padding: 10px 16px 12px;
      border-top: 1px solid var(--line);
      background: #f8fafc;
    }

    .pc-result-chip {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 4px 10px 4px 8px;
      border-radius: 8px;
      border: 1.5px solid;
      font-size: 12px;
      line-height: 1.4;
    }

    .pc-result-price {
      font-size: 11px;
      font-weight: 800;
      font-family: var(--font-mono);
      border-radius: 4px;
      padding: 1px 6px;
    }

    .pc-result-type {
      font-family: var(--font-mono);
      font-size: 12px;
      font-weight: 700;
    }

    .pc-result-meta {
      font-size: 11px;
      opacity: 0.7;
      white-space: nowrap;
    }

    .pc-result-best {
      border-width: 2px;
      box-shadow: 0 2px 8px rgba(0,0,0,.08);
    }

    .pc-result-badge {
      font-size: 9px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .06em;
      background: #10b981;
      color: #fff;
      padding: 1px 6px;
      border-radius: 4px;
      line-height: 1.6;
    }

    .pc-clear-inline {
      display: inline-flex;
      align-items: center;
      padding: 3px 10px;
      font-size: 12px;
      font-weight: 600;
      border-radius: 999px;
      border: 1.5px dashed var(--line);
      background: transparent;
      color: var(--muted);
      cursor: pointer;
      transition: border-color 0.14s, color 0.14s;
    }

    .pc-clear-inline:hover {
      border-color: #f87171;
      color: #ef4444;
    }

    /* ═══════════════════════════════════════════════════
   VISUAL POLISH — CHART CARDS, HEADERS, TYPOGRAPHY
════════════════════════════════════════════════════ */


    /* Plotly modebar — clean floating pill, global override */

    /* Container placement */
    .modebar-container {
      top: 8px !important;
      right: 10px !important;
    }

    /* Bar background */
    .modebar {
      background: rgba(255, 255, 255, 0.96) !important;
      border-radius: 10px !important;
      box-shadow: 0 2px 10px rgba(15, 23, 42, .10), 0 1px 3px rgba(15, 23, 42, .06) !important;
      border: 1px solid #e2e8f0 !important;
      padding: 3px 5px !important;
      backdrop-filter: blur(8px) !important;
    }

    /* Each button */
    .modebar-btn {
      padding: 4px 5px !important;
      border-radius: 6px !important;
      transition: background 0.15s, color 0.15s !important;
      background: transparent !important;
    }

    .modebar-btn:hover {
      background: #eef2ff !important;
    }

    /* SVG icon colour — default muted, hover/active = accent */
    .modebar-btn svg path,
    .modebar-btn svg rect,
    .modebar-btn svg line,
    .modebar-btn svg polygon {
      fill: #94a3b8 !important;
      stroke: none !important;
    }

    .modebar-btn:hover svg path,
    .modebar-btn:hover svg rect,
    .modebar-btn:hover svg line,
    .modebar-btn:hover svg polygon {
      fill: #4f46e5 !important;
    }

    .modebar-btn.active svg path,
    .modebar-btn.active svg rect,
    .modebar-btn.active svg line,
    .modebar-btn.active svg polygon {
      fill: #4f46e5 !important;
    }

    /* Group dividers */
    .modebar-group {
      border-right: none !important;
      padding: 0 !important;
      background: transparent !important;
    }

    /* Legend wraps — subtle bg */
    .parcoords-legend-wrap {
      background: #fafbfc;
      border-radius: 0 0 var(--r) var(--r);
    }

    .bar-cat-legend {
      background: #fafbfc;
      border-radius: 0 0 var(--r) var(--r);
    }

    /* ═══════════════════════════════════════════════════════════
   COMPREHENSIVE CSS IMPROVISATION
   Upgrades: body bg, hero, step headers, controls, cards,
   preset buttons, KPIs, table, rec card, scrollbar, focus
════════════════════════════════════════════════════════════ */

    /* ── Body / page background ────────────────────────────── */
    /* Subtle grid texture on page bg */
    #app>*:not(.hero-section):not(.site-nav) {
      position: relative;
    }

    /* ── Custom scrollbar ───────────────────────────────────── */
    ::-webkit-scrollbar {
      width: 7px;
      height: 7px;
    }

    ::-webkit-scrollbar-track {
      background: transparent;
    }

    ::-webkit-scrollbar-thumb {
      background: #cbd5e1;
      border-radius: 999px;
      border: 2px solid transparent;
      background-clip: content-box;
    }

    ::-webkit-scrollbar-thumb:hover {
      background: #94a3b8;
      background-clip: content-box;
      border: 2px solid transparent;
    }

    /* ── Tabular numbers — prevent layout shift during animated counters ── */
    .kpi-val,
    .hero-stat-val,
    .top-pick-spec-val,
    .top-pick-score-val,
    .score-num,
    #tableCount,
    #weightTotal,
    td {
      font-variant-numeric: tabular-nums;
    }

    /* ── Focus rings ────────────────────────────────────────── */
    :focus-visible {
      outline: 2.5px solid var(--accent);
      outline-offset: 2px;
      border-radius: 4px;
    }

    /* ── Section divider lines ──────────────────────────────── */
    .funnel-step+.funnel-step {
      border-top: 1px solid rgba(226, 232, 240, .6);
      padding-top: 60px;
      margin-top: 8px;
    }

    /* Phase divider resets the section border */
    .phase-divider+.funnel-step {
      border-top: none;
    }

    /* Chart card spacing within sections */
    .funnel-step .chart-card+.chart-card {
      margin-top: 20px;
    }

    /* ═══════════════════════════════════════════════════════════
   PARALLEL COORDINATES — HOVER TOOLTIP CARD
════════════════════════════════════════════════════════════ */
    .parcoords-tooltip {
      position: absolute;
      z-index: 60;
      pointer-events: none;
      background: #fff;
      border: 1.5px solid #e2e8f0;
      border-radius: 14px;
      box-shadow: 0 8px 32px rgba(15, 23, 42, .14), 0 2px 8px rgba(15, 23, 42, .08);
      min-width: 210px;
      max-width: 240px;
      overflow: hidden;
      opacity: 0;
      transform: translateY(6px) scale(0.97);
      transition: opacity 0.14s ease, transform 0.14s ease;
    }

    .parcoords-tooltip.pct-visible {
      opacity: 1;
      transform: translateY(0) scale(1);
    }

    .pct-header {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
      padding: 10px 13px 9px;
      border-bottom: 1px solid #f1f5f9;
      background: linear-gradient(90deg, #fafbff 0%, #fff 100%);
    }

    .pct-name {
      font-size: 13px;
      font-weight: 800;
      font-family: var(--font-mono);
      letter-spacing: -0.01em;
      color: #0f172a;
    }

    .pct-cat {
      font-size: 10px;
      font-weight: 700;
      padding: 2px 8px;
      border-radius: 999px;
      white-space: nowrap;
      letter-spacing: 0.02em;
      flex-shrink: 0;
    }

    .pct-body {
      padding: 8px 13px 11px;
      display: flex;
      flex-direction: column;
      gap: 5px;
    }

    .pct-row {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 12px;
    }

    .pct-row span {
      color: #64748b;
      font-weight: 500;
    }

    .pct-row strong {
      color: #0f172a;
      font-weight: 700;
      font-variant-numeric: tabular-nums;
    }

    .pct-score-row {
      display: flex;
      align-items: center;
      gap: 7px;
      font-size: 12px;
      margin-top: 3px;
      padding-top: 6px;
      border-top: 1px solid #f1f5f9;
    }

    .pct-score-row>span {
      color: #64748b;
      font-weight: 500;
      flex-shrink: 0;
    }

    .pct-score-row>strong {
      color: #0f172a;
      font-weight: 800;
      flex-shrink: 0;
      font-variant-numeric: tabular-nums;
      min-width: 38px;
      text-align: right;
    }

    .pct-score-bar-wrap {
      flex: 1;
      height: 5px;
      background: #e2e8f0;
      border-radius: 999px;
      overflow: hidden;
    }

    .pct-score-bar {
      height: 100%;
      border-radius: 999px;
    }

    .pct-price-badge {
      display: flex;
      align-items: baseline;
      gap: 2px;
      font-size: 13px;
      font-weight: 800;
      font-family: var(--font-mono);
      color: #10b981;
      padding: 5px 13px 6px;
      border-top: 1px solid #f1f5f9;
      background: #f0fdf4;
    }

    .pct-price-badge span {
      font-size: 10px;
      font-weight: 600;
      color: #6ee7b7;
    }

    /* ── Phase Dividers ───────────────────────────────── */
    .phase-divider {
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 40px 0 8px;
      margin-bottom: 8px;
    }

    .phase-label {
      font-size: 10px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .12em;
      color: #fff;
      background: linear-gradient(135deg, var(--accent) 0%, #7c3aed 100%);
      padding: 4px 12px;
      border-radius: 999px;
      flex-shrink: 0;
    }

    .phase-title {
      font-size: 18px;
      font-weight: 800;
      color: var(--ink);
      letter-spacing: -.03em;
    }

    .phase-sub {
      font-size: 13px;
      color: var(--muted);
      font-weight: 500;
    }

    .phase-divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(90deg, var(--line) 0%, transparent 100%);
    }

    /* ── Nav Region Select (AWS-style) ──────────────── */
    .nav-region-select {
      position: relative;
      display: inline-flex;
      align-items: center;
      gap: 10px;
      min-width: 220px;
      padding: 7px 14px 7px 10px;
      white-space: nowrap;
      overflow: hidden;
      border-radius: 14px;
      background: linear-gradient(135deg, rgba(79, 70, 229, .18) 0%, rgba(30, 41, 59, .92) 100%);
      border: 1px solid rgba(129, 140, 248, .28);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05), 0 10px 22px rgba(15, 23, 42, .22);
      transition: border-color .18s ease, box-shadow .18s ease, background .18s ease, transform .18s ease;
    }

    .nav-region-icon {
      width: 32px;
      height: 32px;
      border-radius: 10px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #c7d2fe;
      background: rgba(99, 102, 241, .18);
      flex-shrink: 0;
      transition: background .18s ease, color .18s ease;
    }

    .nav-region-copy {
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 2px;
    }

    .nav-region-kicker {
      font-size: 10px;
      font-weight: 700;
      letter-spacing: .12em;
      text-transform: uppercase;
      color: rgba(196, 181, 253, .78);
    }

    .nav-region-current {
      min-width: 0;
      display: flex;
      align-items: center;
      gap: 8px;
      color: #fff;
      font-size: 13px;
      font-weight: 700;
      letter-spacing: -.01em;
    }

    #navRegionLabel {
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }

    .nav-region-code {
      flex-shrink: 0;
      padding: 2px 7px;
      border-radius: 999px;
      border: 1px solid rgba(129, 140, 248, .24);
      background: rgba(30, 41, 59, .68);
      color: #ddd6fe;
      font-size: 10px;
      font-weight: 800;
      letter-spacing: .04em;
    }

    .nav-region-caret {
      margin-left: auto;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #a5b4fc;
      flex-shrink: 0;
      transition: color .18s ease;
    }

    .nav-region-select #region {
      position: absolute;
      inset: 0;
      width: 100%;
      margin: 0;
      padding: 0;
      border: none;
      border-radius: inherit;
      background: none;
      box-shadow: none;
      outline: none;
      appearance: none;
      -webkit-appearance: none;
      opacity: 0;
      cursor: pointer;
      color: transparent;
      z-index: 1;
    }

    .nav-region-select #region:hover,
    .nav-region-select #region:focus {
      border: none;
      background: none;
      box-shadow: none;
      outline: none;
    }

    .nav-region-select #region option,
    .nav-region-select #region optgroup {
      background: #0f172a;
      color: #e2e8f0;
    }

    .nav-region-select #region optgroup {
      font-weight: 700;
      font-size: 11px;
      color: #cbd5e1;
    }

    .nav-region-select:hover,
    .nav-region-select:focus-within {
      background: linear-gradient(135deg, rgba(79, 70, 229, .24) 0%, rgba(30, 41, 59, .96) 100%);
      border-color: rgba(165, 180, 252, .55);
      box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 14px 28px rgba(15, 23, 42, .28);
    }

    .nav-region-select:hover .nav-region-icon,
    .nav-region-select:focus-within .nav-region-icon {
      background: rgba(99, 102, 241, .26);
      color: #e0e7ff;
    }

    .nav-region-select:hover .nav-region-caret,
    .nav-region-select:focus-within .nav-region-caret {
      color: #e0e7ff;
    }

    @media (max-width: 1100px) {
      .nav-region-select {
        min-width: 196px;
      }

      .nav-region-code {
        display: none;
      }
    }

    @media (max-width: 600px) {
      .nav-region-select {
        flex: 1 1 auto;
        min-width: 0;
        max-width: none;
        padding: 6px 10px 6px 8px;
        gap: 8px;
      }

      .nav-region-copy {
        flex: 1 1 auto;
      }

      .nav-region-icon {
        width: 28px;
        height: 28px;
        border-radius: 9px;
      }

      .nav-region-kicker {
        display: none;
      }

      .nav-region-current {
        font-size: 12px;
      }

      .nav-region-caret {
        margin-left: 0;
      }
    }

    @media (max-width: 480px) {
      .nav-region-select {
        max-width: none;
      }
    }

    /* ── Region Selector (full, in step-region) ──────── */
    .region-selector-full {
      max-width: 520px;
    }

    .region-selector-hd {
      display: flex;
      align-items: center;
      gap: 8px;
      font-size: 14px;
      font-weight: 700;
      color: var(--ink);
      margin-bottom: 12px;
    }

    .region-selector-hd svg {
      color: var(--accent);
    }

    .region-select-full select {
      width: 100%;
      font-size: 14px;
      padding: 10px 14px;
      border-radius: var(--r-sm);
      border: 1.5px solid var(--line);
      background: var(--card);
      color: var(--ink);
      font-family: inherit;
      font-weight: 600;
      cursor: pointer;
      transition: border-color .2s;
    }

    .region-select-full select:focus {
      border-color: var(--accent);
      outline: none;
      box-shadow: 0 0 0 3px rgba(79, 70, 229, .12);
    }
/* ── Floating Compare Action Bar ─────────────────────────────────────────── */
.compare-action-bar {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translate(-50%, 120%);
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: 8px 8px 8px 24px;
  display: flex;
  align-items: center;
  gap: 20px;
  box-shadow: 0 20px 40px -8px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255,255,255,0.05) inset;
  z-index: 1000;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s;
  opacity: 0;
  pointer-events: none;
}
.compare-action-bar.cab-visible {
  transform: translate(-50%, 0);
  opacity: 1;
  pointer-events: auto;
}
.cab-inner {
  display: flex;
  align-items: center;
  gap: 24px;
}
.cab-count {
  color: #f8fafc;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -0.01em;
  white-space: nowrap;
}
.cab-actions {
  display: flex;
  gap: 8px;
}
.cab-btn {
  border: none;
  background: none;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-radius: 999px;
  padding: 8px 16px;
  transition: all 0.2s ease;
  white-space: nowrap;
}
.cab-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}
.cab-btn-clear {
  color: #cbd5e1;
}
.cab-btn-clear:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
}
.cab-btn-primary {
  background: #4f46e5;
  color: #fff;
  box-shadow: 0 2px 8px rgba(79, 70, 229, 0.4);
}
.cab-btn-primary:hover:not(:disabled) {
  background: #4338ca;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.5);
}

/* ── Table Checkboxes ─────────────────────────────────────────── */
.compare-checkbox-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}
.compare-checkbox {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  border: 2px solid #cbd5e1;
  border-radius: 4px;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  background: #fff;
}
.compare-checkbox:checked {
  background: #4f46e5;
  border-color: #4f46e5;
}
.compare-checkbox:checked::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 1px;
  width: 4px;
  height: 10px;
  border: solid white;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.compare-checkbox:hover:not(:checked) {
  border-color: #94a3b8;
}
tr.row-selected {
  background-color: #eff6ff !important;
}
tr.row-selected td {
  border-top-color: #bfdbfe;
  border-bottom-color: #bfdbfe;
}

/* ── Multi-Compare Grid adjustments ─────────────────────────────────────────── */
.cmp-specs.cmp-multi {
  display: block;
}
.cmp-multi-wrap::-webkit-scrollbar {
  height: 6px;
}
.cmp-multi-wrap::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 4px;
}
.cmp-multi-wrap::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
.cmp-multi-wrap::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* ── Hero snapshot badge ────────────────────────────────── */
.hero-snapshot-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 600;
  color: #94a3b8;
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px;
  padding: 5px 12px;
  letter-spacing: .02em;
}

/* ── Reduced motion ─────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .spinner,
  .hero-dot {
    animation: none;
  }

  .scroll-reveal,
  .fade-up-1,
  .fade-up-2,
  .fade-up-3 {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  * {
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
