      /* Canonical D-174 ramp (neutral + one accent + one danger, light + dark)
       * comes from @recued/ui-shared tokens — the single source of truth. It is
       * inlined into every SSR <head> (no FOUC) and linked as tokens.css for the
       * static SPA shell (copied into dist by build.mjs, linked BEFORE this
       * file). Only marketplace-LOCAL surface aliases live here, layered after. */
      :root {
        --bg-card: var(--surface);
        --bg-subtle: var(--surface-sunk);
        --mp-radius-sm: 8px;
        --mp-radius: 14px;
        --mp-radius-lg: 20px;
        --mp-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.04);
        --mp-shadow: 0 16px 48px rgba(15, 23, 42, 0.08);
      }

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

      html, body {
        font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
        color: var(--fg);
        background: var(--bg);
        -webkit-font-smoothing: antialiased;
        line-height: 1.5;
      }

      html { scroll-behavior: smooth; }
      body { min-width: 320px; }

      ::selection { background: var(--accent-weak); color: var(--fg-strong); }

      a { color: var(--accent); text-decoration: none; }
      a:hover { text-decoration: underline; }
      a, button, input, summary { -webkit-tap-highlight-color: transparent; }
      :focus-visible {
        outline: 3px solid var(--accent-weak);
        outline-offset: 3px;
      }

      /* ─── Layout ─── */
      .marketplace {
        max-width: 1180px;
        margin: 0 auto;
        padding: 0 28px 72px;
      }
      #main-content { min-height: 55vh; }
      .mp-skip-link {
        position: fixed;
        z-index: 100;
        top: 10px;
        left: 10px;
        transform: translateY(-160%);
        padding: 8px 12px;
        border-radius: var(--mp-radius-sm);
        background: var(--accent);
        color: var(--on-accent);
        font-size: 13px;
        font-weight: 700;
      }
      .mp-skip-link:focus { transform: translateY(0); }

      /* ─── Header ─── */
      .mp-header {
        position: sticky;
        top: 0;
        z-index: 30;
        display: flex;
        align-items: center;
        gap: 22px;
        min-height: 72px;
        padding: 14px 0;
        border-bottom: 1px solid var(--border);
        margin-bottom: 34px;
        background: color-mix(in srgb, var(--bg) 90%, transparent);
        backdrop-filter: blur(18px) saturate(1.2);
        -webkit-backdrop-filter: blur(18px) saturate(1.2);
      }
      .mp-brand {
        display: inline-flex;
        align-items: center;
        gap: 9px;
        font-size: 19px;
        font-weight: 780;
        color: var(--fg-strong);
        letter-spacing: -0.45px;
        white-space: nowrap;
      }
      .mp-brand::before {
        content: '';
        width: 11px;
        height: 11px;
        border: 3px solid var(--accent);
        border-radius: 4px;
        box-shadow: 4px 4px 0 var(--accent-weak);
      }
      .mp-brand:hover { text-decoration: none; }
      .mp-nav {
        display: flex;
        align-items: center;
        gap: 6px;
        font-size: 13px;
        font-weight: 600;
        flex: 1;
      }
      .mp-nav a {
        padding: 7px 10px;
        border-radius: 999px;
        color: var(--fg-muted);
      }
      .mp-nav a:hover { text-decoration: none; color: var(--fg); background: var(--bg-subtle); }
      .mp-nav a.active { color: var(--accent); background: var(--accent-weak); }
      .mp-header-cta { display: flex; align-items: center; gap: 14px; }
      .header-icon-link {
        display: flex; align-items: center; color: var(--fg-muted);
      }
      .header-icon-link:hover { color: var(--fg); }
      .mp-signin-link, .mp-signup-link { font-size: 13px; font-weight: 500; }
      .mp-signin-link { color: var(--fg-muted); }
      .mp-signin-link:hover { color: var(--accent); text-decoration: none; }
      .mp-signup-link { color: var(--accent); }
      .mp-signup-link:hover { text-decoration: none; opacity: 0.85; }
      .btn-cta-sm {
        display: inline-flex; align-items: center; gap: 6px;
        padding: 8px 15px; border-radius: 999px; font-size: 12px; font-weight: 700;
        background: var(--accent); color: var(--on-accent); text-decoration: none;
        box-shadow: 0 6px 18px var(--accent-weak);
      }
      .btn-cta-sm:hover { transform: translateY(-1px); text-decoration: none; }
      .btn-cta-sm svg { flex-shrink: 0; }
      .mp-mobile-nav { display: none; }

      /* ─── Landing ─── */
      .landing-hero {
        position: relative;
        text-align: center;
        padding: 72px 20px 58px;
        isolation: isolate;
        overflow: clip;
      }
      .landing-hero::before {
        content: '';
        position: absolute;
        z-index: -1;
        inset: 0 5% auto;
        height: 430px;
        border-radius: 50%;
        background: radial-gradient(circle at center, var(--accent-weak), transparent 68%);
        opacity: 0.72;
        filter: blur(28px);
        pointer-events: none;
      }
      .landing-eyebrow,
      .mp-eyebrow {
        color: var(--accent);
        font-size: 11px;
        font-weight: 750;
        letter-spacing: 0.14em;
        text-transform: uppercase;
      }
      .landing-eyebrow {
        margin-bottom: 16px;
      }
      .landing-tagline {
        max-width: 880px;
        margin: 0 auto 20px;
        font-size: clamp(42px, 5.4vw, 68px);
        font-weight: 790;
        letter-spacing: -0.045em;
        line-height: 1.02;
        text-wrap: balance;
      }
      .tagline-accent { color: var(--accent); }
      .tagline-l {
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 13px;
        color: var(--fg-muted);
        letter-spacing: 1px;
        margin-bottom: 18px;
        opacity: 0.7;
      }
      .landing-sub {
        font-size: 18px;
        color: var(--fg-muted);
        max-width: 720px;
        margin: 0 auto 24px;
        line-height: 1.65;
        text-wrap: pretty;
      }
      .landing-proof {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
        margin: 0 auto 34px;
      }
      .landing-proof span {
        padding: 5px 10px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: color-mix(in srgb, var(--surface) 82%, transparent);
        color: var(--fg-muted);
        font-size: 11px;
        font-weight: 600;
        box-shadow: var(--mp-shadow-sm);
      }
      .landing-cta {
        display: flex;
        gap: 12px;
        justify-content: center;
        flex-wrap: wrap;
      }
      .btn-cta {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 11px 24px;
        background: var(--accent);
        color: var(--on-accent);
        border-radius: 999px;
        font-size: 14px;
        font-weight: 700;
        text-decoration: none;
        box-shadow: 0 8px 24px var(--accent-weak);
        transition: transform 0.16s ease, box-shadow 0.16s ease;
      }
      .btn-cta:hover { transform: translateY(-1px); box-shadow: 0 12px 30px var(--accent-weak); text-decoration: none; }
      .btn-cta-secondary {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 44px;
        padding: 11px 24px;
        background: var(--bg-card);
        color: var(--fg);
        border: 1px solid var(--border);
        border-radius: 999px;
        font-size: 14px;
        font-weight: 650;
        text-decoration: none;
        box-shadow: var(--mp-shadow-sm);
        transition: border-color 0.16s ease, color 0.16s ease, transform 0.16s ease;
      }
      .btn-cta-secondary:hover { border-color: var(--accent); color: var(--accent); transform: translateY(-1px); text-decoration: none; }
      /* Apex "what Recued is" hero — the control-plane diagram as the centerpiece. */
      .landing-lead { max-width: 760px; }
      .landing-diagram {
        max-width: 1060px;
        width: 100%;
        margin: 30px auto 0;
      }
      .landing-diagram-link { display: block; border-radius: var(--mp-radius-lg); }
      .landing-diagram img {
        display: block;
        width: 100%;
        height: auto;          /* aspect ratio held by the 1440×980 viewBox */
        box-sizing: border-box;
        background: #ffffff;   /* the SVG is light-only — frame it as a figure in both themes */
        border: 1px solid #e5e7eb;
        border-radius: var(--mp-radius-lg);
        padding: 16px;
        box-shadow: var(--mp-shadow);
        transition: transform 0.2s ease, box-shadow 0.2s ease;
      }
      .landing-diagram-link:hover img { transform: translateY(-2px); box-shadow: 0 22px 60px rgba(15, 23, 42, 0.12); }
      .landing-diagram figcaption {
        max-width: 640px;
        margin: 16px auto 0;
        color: var(--fg-muted);
        font-size: 13px;
        line-height: 1.55;
        text-align: center;
      }
      .landing-diagram-hint {
        display: block;
        margin-top: 5px;
        color: var(--accent);
        font-size: 11px;
        font-weight: 650;
      }
      @media (max-width: 640px) {
        .landing-diagram { margin-top: 28px; }
        .landing-diagram img { padding: 8px; border-radius: 12px; }
      }
      /* /how-recued-works — the annotated control-plane page. */
      .howto-diagram { max-width: 960px; width: 100%; margin: 0 auto; }
      .howto-diagram img {
        display: block;
        width: 100%;
        height: auto;
        box-sizing: border-box;
        background: #ffffff;
        border: 1px solid #e5e7eb;
        border-radius: 16px;
        padding: 14px;
        box-shadow: 0 6px 24px rgba(15, 23, 42, 0.08);
      }
      .howto-steps { max-width: 720px; }
      .howto-steps li { margin-bottom: 12px; line-height: 1.6; }
      .flow-legend {
        list-style: none;
        margin: 10px 0 0;
        padding: 0;
        display: grid;
        gap: 14px;
        max-width: 640px;
      }
      .flow-legend li { display: flex; gap: 14px; align-items: flex-start; }
      .flow-legend p { margin: 0; color: var(--fg-muted); font-size: 15px; line-height: 1.5; }
      .flow-legend strong { color: var(--fg); font-weight: 600; }
      .flow-key {
        flex: none;
        width: 30px;
        margin-top: 10px;
        border-top: 3px solid #999;
        border-radius: 2px;
      }
      .flow-key-local { border-top-color: #15803d; }
      .flow-key-in    { border-top-color: #0e7490; }
      .flow-key-gate  { border-top-color: #ea580c; }
      .flow-key-ai    { border-top-color: #b45309; border-top-style: dashed; }
      .howto-surfaces { max-width: 720px; margin: 10px 0 0; }
      .howto-surfaces > div {
        display: grid;
        grid-template-columns: 150px 1fr;
        gap: 16px;
        padding: 14px 0;
        border-top: 1px solid var(--border);
      }
      .howto-surfaces dt { font-weight: 600; color: var(--fg); }
      .howto-surfaces dd { margin: 0; color: var(--fg-muted); line-height: 1.55; }
      @media (max-width: 560px) {
        .howto-surfaces > div { grid-template-columns: 1fr; gap: 4px; }
      }

      .landing-search-panel {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(260px, 420px);
        gap: 24px;
        align-items: center;
        padding: 26px 28px;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        margin-bottom: 24px;
        box-shadow: var(--mp-shadow-sm);
      }
      .landing-search-panel h2,
      .landing-section h2,
      .landing-note h2,
      .publisher-section h2 {
        font-size: 20px;
        font-weight: 700;
        margin-bottom: 4px;
      }
      .landing-search-panel p,
      .landing-note p {
        font-size: 14px;
        color: var(--fg-muted);
      }
      .landing-search-panel .mp-search {
        width: 100%;
        max-width: none;
        margin: 0;
      }
      .landing-section {
        padding: 44px 0;
        border-top: 1px solid var(--border);
      }
      .landing-section-head {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 16px;
        margin-bottom: 16px;
      }
      .landing-section-head a {
        font-size: 13px;
        font-weight: 500;
      }
      .landing-kind-row {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-bottom: 16px;
      }
      .landing-publisher-strip {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 12px;
      }
      .landing-publisher {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 12px;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        color: var(--fg);
        box-shadow: var(--mp-shadow-sm);
      }
      .landing-publisher:hover {
        border-color: var(--accent);
        text-decoration: none;
      }
      .landing-publisher span {
        display: flex;
        flex-direction: column;
        min-width: 0;
      }
      .landing-publisher strong {
        font-size: 13px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      .landing-publisher em {
        color: var(--fg-muted);
        font-size: 11px;
        font-style: normal;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
      .landing-publish-callout,
      .landing-note {
        padding: 30px;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        box-shadow: var(--mp-shadow-sm);
      }
      .landing-publish-callout h3 {
        font-size: 16px;
        margin-bottom: 6px;
      }
      .landing-publish-callout p {
        color: var(--fg-muted);
        font-size: 13px;
        margin-bottom: 12px;
      }
      .landing-note {
        text-align: center;
        margin-top: 12px;
      }
      .landing-note p {
        max-width: 620px;
        margin: 0 auto 20px;
      }

      /* Pillars */
      .landing-pillars {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 24px;
        padding: 48px 0;
        border-top: 1px solid var(--border);
        border-bottom: 1px solid var(--border);
      }
      .pillar { text-align: center; }
      .pillar-icon { font-size: 32px; margin-bottom: 12px; }
      .pillar h3 { font-size: 16px; font-weight: 700; margin-bottom: 6px; }
      .pillar p { font-size: 13px; color: var(--fg-muted); line-height: 1.6; }

      /* How it works */
      .landing-how {
        padding: 48px 0;
        text-align: center;
      }
      .landing-how h2, .landing-versus h2, .landing-pricing h2, .landing-final h2 {
        font-size: 24px;
        font-weight: 700;
        margin-bottom: 28px;
        letter-spacing: -0.3px;
      }
      .how-steps {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 32px;
        text-align: left;
      }
      .how-step { position: relative; }
      .step-num {
        width: 32px; height: 32px;
        border-radius: 50%;
        background: var(--surface);
        border: 1px solid var(--accent);
        color: var(--accent);
        font-size: 15px;
        font-weight: 700;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 10px;
      }
      .how-step h4 { font-size: 15px; font-weight: 600; margin-bottom: 4px; }
      .how-step p { font-size: 13px; color: var(--fg-muted); line-height: 1.5; }

      /* Comparison */
      .landing-versus {
        padding: 48px 0;
        border-top: 1px solid var(--border);
      }
      .versus-table {
        border: 1px solid var(--border);
        border-radius: 8px;
        overflow: hidden;
      }
      .versus-row {
        display: grid;
        grid-template-columns: 140px 1fr 1fr;
        font-size: 13px;
      }
      .versus-row > div {
        padding: 10px 16px;
        border-bottom: 1px solid var(--border);
      }
      .versus-row:last-child > div { border-bottom: none; }
      .versus-header {
        background: var(--bg-subtle);
        font-weight: 600;
        font-size: 12px;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        color: var(--fg-muted);
      }
      .versus-label { font-weight: 500; color: var(--fg-muted); }
      .versus-win { color: var(--fg); font-weight: 600; }

      /* Pricing */
      .landing-pricing {
        padding: 48px 0;
        text-align: center;
        border-top: 1px solid var(--border);
      }
      .pricing-cards {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
        max-width: 600px;
        margin: 0 auto;
      }
      .pricing-card {
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: 10px;
        padding: 28px 24px;
        text-align: left;
      }
      .pricing-pro { border-color: var(--accent); }
      .pricing-card h3 { font-size: 18px; font-weight: 700; margin-bottom: 4px; }
      .pricing-price {
        font-size: 36px;
        font-weight: 800;
        color: var(--accent);
        margin-bottom: 16px;
      }
      .pricing-price span { font-size: 16px; font-weight: 500; color: var(--fg-muted); }
      .pricing-features {
        list-style: none;
        padding: 0;
        margin: 0 0 20px;
      }
      .pricing-features li {
        padding: 5px 0;
        font-size: 13px;
        color: var(--fg-muted);
      }
      .pricing-features li::before {
        content: '\2713  ';
        color: var(--fg);
        font-weight: 600;
      }

      /* Final CTA */
      .landing-final {
        padding: 48px 0;
        text-align: center;
        border-top: 1px solid var(--border);
      }
      .landing-final p {
        font-size: 15px;
        color: var(--fg-muted);
        max-width: 480px;
        margin: 0 auto 24px;
        line-height: 1.6;
      }

      @media (max-width: 640px) {
        .landing-tagline { font-size: 28px; }
        .landing-pillars, .how-steps { grid-template-columns: 1fr; }
        .pricing-cards { grid-template-columns: 1fr; }
        .versus-row { grid-template-columns: 100px 1fr 1fr; font-size: 12px; }
        .versus-row > div { padding: 8px 10px; }
        .landing-search-panel { grid-template-columns: 1fr; padding: 18px; }
        .landing-section-head { align-items: flex-start; flex-direction: column; }
      }

      /* ─── Hero ─── */
      .mp-hero {
        text-align: center;
        padding: 42px 20px 26px;
      }
      .mp-hero h1 {
        font-size: clamp(34px, 4.5vw, 48px);
        font-weight: 780;
        letter-spacing: -0.04em;
        line-height: 1.05;
        margin: 8px 0 12px;
      }
      .mp-hero p {
        font-size: 16px;
        color: var(--fg-muted);
        max-width: 660px;
        margin: 0 auto;
        line-height: 1.65;
        text-wrap: balance;
      }

      /* ─── Search ─── */
      .mp-search {
        display: flex;
        gap: 8px;
        max-width: 640px;
        margin: 22px auto 30px;
      }
      .mp-search input {
        flex: 1;
        min-width: 0;
        min-height: 46px;
        padding: 11px 16px;
        border: 1px solid var(--border);
        border-radius: 999px;
        font-size: 14px;
        font-family: inherit;
        background: var(--bg-card);
        color: var(--fg);
        box-shadow: var(--mp-shadow-sm);
        transition: border-color 0.16s ease, box-shadow 0.16s ease;
      }
      .mp-search input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 4px var(--accent-weak); }
      .mp-search input::placeholder { color: var(--fg-muted); }

      /* ─── Filters ─── */
      .mp-filter-bar {
        display: flex;
        flex-direction: column;
        gap: 12px;
        margin-bottom: 28px;
        padding: 16px 18px;
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        background: var(--bg-card);
        box-shadow: var(--mp-shadow-sm);
      }
      .mp-filter-group {
        display: grid;
        grid-template-columns: 76px minmax(0, 1fr);
        align-items: center;
        gap: 8px;
        min-width: 0;
      }
      .mp-filter-label {
        font-size: 11px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.3px;
        color: var(--fg-muted);
        min-width: 0;
      }
      .mp-filters {
        display: flex;
        gap: 6px;
        min-width: 0;
        overflow-x: auto;
        padding: 2px 2px 5px;
        scrollbar-width: thin;
        scrollbar-color: var(--border-strong) transparent;
      }
      .mp-filter {
        flex: 0 0 auto;
        padding: 5px 11px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--bg-card);
        color: var(--fg-muted);
        font-size: 11px;
        font-weight: 600;
        cursor: pointer;
        font-family: inherit;
      }
      .mp-filter:hover { border-color: var(--accent); color: var(--accent); }
      .mp-filter.active { background: var(--accent-weak); color: var(--accent); border-color: var(--accent); }
      .mp-sort-group { margin-left: 0; }
      .mp-clear-filters {
        align-self: flex-start;
        background: none;
        border: none;
        color: var(--accent);
        font-size: 11px;
        cursor: pointer;
        font-family: inherit;
        padding: 2px 0;
      }
      .mp-clear-filters:hover { text-decoration: underline; }
      .mp-result-count {
        font-size: 13px;
        font-weight: 600;
        color: var(--fg-muted);
        margin-bottom: 14px;
      }

      /* ─── Grid ─── */
      .mp-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
        gap: 18px;
      }

      /* ─── Card ─── */
      .mp-card {
        position: relative;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 10px;
        overflow: hidden;
        box-shadow: var(--mp-shadow-sm);
        transition: border-color 0.16s ease, transform 0.16s ease, box-shadow 0.16s ease;
      }
      .mp-card::before {
        content: '';
        position: absolute;
        inset: 0 auto 0 0;
        width: 3px;
        background: var(--border);
      }
      .mp-recipe-card::before { background: var(--accent); }
      .mp-pack-card::before { background: var(--border-strong); }
      .mp-card:hover,
      .mp-card:focus-within {
        border-color: var(--border-strong);
        transform: translateY(-2px);
        box-shadow: 0 14px 34px rgba(15, 23, 42, 0.09);
      }
      .mp-card-name {
        font-size: 16px;
        font-weight: 680;
        line-height: 1.3;
        color: var(--fg-strong);
        text-wrap: pretty;
      }
      .mp-card-name:hover { color: var(--accent); text-decoration: none; }
      .mp-card-desc {
        font-size: 13px;
        color: var(--fg-muted);
        line-height: 1.5;
        flex: 1;
        /* Bound long descriptions to ~3 lines + ellipsis so one verbose pack /
           recipe can't blow out the card height. The full text lives on detail. */
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        overflow: hidden;
      }
      .mp-card-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 6px 11px;
        align-items: center;
        font-size: 11px;
        color: var(--fg-muted);
      }
      .mp-publisher-link {
        color: var(--accent);
        font-weight: 600;
      }
      .mp-publisher-link:hover { text-decoration: underline; }
      .mp-card-tags {
        display: flex;
        gap: 4px;
        flex-wrap: wrap;
      }
      .mp-tag {
        font-size: 10px;
        color: var(--fg-muted);
        background: var(--bg-subtle);
        padding: 3px 8px;
        border-radius: 999px;
        border: 1px solid transparent;
        font-family: inherit;
      }
      .mp-tag-clickable {
        cursor: pointer;
      }
      .mp-tag-clickable:hover {
        background: var(--accent-weak);
        color: var(--accent);
      }
      /* Pre-render shell — styles the SEO/first-paint markup emitted by
         scripts/prerender.mjs (article + list pages, and the landing hero)
         so the page is branded before the JS app hydrates over it. Without
         these rules the prerendered HTML flashes unstyled (FOUC). */
      .mp-prerender {
        max-width: 760px;
        margin: 0 auto;
        padding: 32px 20px 64px;
        color: var(--fg);
        line-height: 1.6;
      }
      .mp-prerender h1 { font-size: 28px; font-weight: 700; margin: 12px 0; color: var(--fg-strong); }
      .mp-prerender h2 { font-size: 18px; font-weight: 700; margin: 28px 0 10px; }
      .mp-prerender p { margin: 10px 0; color: var(--fg-muted); }
      .mp-prerender a { color: var(--accent); text-decoration: none; }
      .mp-prerender a:hover { text-decoration: underline; }
      .mp-prerender dl { display: grid; grid-template-columns: auto 1fr; gap: 6px 16px; margin: 16px 0; }
      .mp-prerender dt { color: var(--fg-muted); font-weight: 600; }
      .mp-prerender dd { margin: 0; }
      .mp-prerender code {
        background: var(--surface-sunk); border-radius: 4px;
        padding: 2px 6px; font-size: 13px;
      }
      .mp-prerender ul { padding-left: 20px; margin: 12px 0; }
      .mp-prerender li { margin: 6px 0; }
      .mp-prerender .mp-tag {
        display: inline-block; margin: 2px 4px 2px 0;
      }
      .mp-prerender-cta {
        display: inline-block; margin-top: 16px; padding: 9px 16px;
        background: var(--accent); color: var(--on-accent);
        border-radius: 6px; font-weight: 600;
      }
      .mp-prerender-cta:hover { text-decoration: none; opacity: 0.92; }
      /* D-119 Phase 15 — execution scope badge (recipe + ingredient cards). */
      .mp-scope-badge {
        font-size: 10px;
        padding: 2px 8px;
        border-radius: 10px;
        font-weight: 500;
        white-space: nowrap;
        border: 1px solid transparent;
      }
      .mp-scope-both { background: var(--bg-subtle); color: var(--fg-muted); border-color: var(--border); }
      .mp-scope-device,
      .mp-scope-server { background: var(--bg-subtle); color: var(--fg); border-color: var(--border); }
      .mp-scope-incompatible { background: var(--surface); color: var(--danger); border-color: var(--danger); }
      .mp-card-actions {
        display: flex;
        justify-content: flex-end;
        margin-top: auto;
        padding-top: 10px;
        border-top: 1px solid var(--border);
      }
      .mp-install-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 7px 12px;
        background: var(--accent);
        color: var(--on-accent);
        border: none;
        border-radius: 999px;
        font-size: 12px;
        font-weight: 500;
        cursor: pointer;
        font-family: inherit;
      }
      .mp-install-btn:hover { opacity: 0.92; }
      .mp-card-actions .mp-install-btn {
        padding: 2px 0;
        border-radius: 0;
        background: transparent;
        color: var(--accent);
        font-weight: 700;
      }
      .mp-card-actions .mp-install-btn:hover {
        opacity: 1;
        text-decoration: none;
        transform: translateX(2px);
      }

      /* ─── Detail ─── */
      .mp-detail {
        max-width: 100%;
      }
      .mp-detail-header {
        margin-bottom: 28px;
        padding-bottom: 22px;
        border-bottom: 1px solid var(--border);
      }
      .mp-detail-header h2 {
        max-width: 880px;
        font-size: clamp(28px, 4vw, 40px);
        font-weight: 760;
        letter-spacing: -0.035em;
        line-height: 1.1;
        margin-bottom: 8px;
        text-wrap: balance;
      }
      .mp-detail-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 16px;
        font-size: 12px;
        color: var(--fg-muted);
        margin-top: 8px;
      }
      .mp-detail-meta strong { color: var(--fg); font-weight: 500; }
      .mp-detail-desc {
        font-size: 16px;
        line-height: 1.7;
        color: var(--fg);
        margin-bottom: 28px;
        text-wrap: pretty;
      }
      .mp-detail-section {
        margin-bottom: 30px;
      }
      .mp-detail-section h3 {
        font-size: 11px;
        font-weight: 750;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        color: var(--fg-muted);
        margin-bottom: 12px;
      }
      .mp-disclosure {
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        background: var(--bg-card);
        box-shadow: var(--mp-shadow-sm);
        overflow: hidden;
      }
      .mp-disclosure > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
        min-height: 56px;
        padding: 14px 16px;
        color: var(--fg-strong);
        cursor: pointer;
        font-size: 14px;
        font-weight: 680;
        list-style: none;
      }
      .mp-disclosure > summary::-webkit-details-marker { display: none; }
      .mp-disclosure > summary::after {
        content: '+';
        width: 24px;
        height: 24px;
        margin-left: auto;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: var(--bg-subtle);
        color: var(--fg-muted);
        font-size: 18px;
        font-weight: 400;
      }
      .mp-disclosure[open] > summary::after { content: '−'; }
      .mp-disclosure[open] > summary { border-bottom: 1px solid var(--border); }
      .mp-disclosure-meta {
        margin-left: auto;
        color: var(--fg-muted);
        font-size: 11px;
        font-weight: 550;
      }
      .mp-disclosure-body { padding: 16px; }
      .mp-disclosure-intro {
        margin: 0 0 12px;
        color: var(--fg-muted);
        font-size: 12px;
        line-height: 1.5;
      }
      /* ─── 6c recipe detail: two-column layout + sticky install panel ─── */
      .mp-detail-layout {
        display: grid;
        gap: 38px;
        align-items: start;
      }
      .mp-detail-aside { order: -1; }
      .mp-detail-main { min-width: 0; }
      @media (min-width: 900px) {
        .mp-detail-layout { grid-template-columns: minmax(0, 1fr) 310px; }
        .mp-detail-aside {
          order: 0;
          position: sticky;
          top: 94px;
        }
      }
      .mp-install-panel {
        display: flex;
        flex-direction: column;
        gap: 14px;
        padding: 18px;
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        background: var(--surface);
        box-shadow: var(--mp-shadow-sm);
      }
      .mp-install-cta {
        text-align: center;
        font-size: 14px;
        padding: 11px 16px;
        border-radius: 10px;
      }
      .mp-install-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
      }
      .mp-install-hint {
        font-size: 12px;
        line-height: 1.5;
        color: var(--fg-muted);
        margin: 0;
      }
      .mp-trust-chips { gap: 6px; }
      /* ─── Trust & control ─── */
      .mp-trust-intro {
        font-size: 12px;
        color: var(--fg-muted);
        margin: 0 0 14px;
      }
      .mp-trust-group { margin-bottom: 14px; }
      .mp-trust-group h4 {
        font-size: 11px;
        font-weight: 600;
        color: var(--fg);
        margin: 0 0 6px;
      }
      .mp-trust-note,
      .mp-trust-label {
        font-size: 11px;
        color: var(--fg-muted);
      }
      .mp-trust-label {
        font-weight: 600;
        margin-right: 4px;
      }
      .mp-trust-warn {
        color: var(--danger);
        background: var(--surface);
        border: 1px solid var(--danger);
      }
      .mp-grant { flex-wrap: wrap; }
      .mp-grant-kind {
        font-size: 11px;
        color: var(--fg-muted);
        text-transform: uppercase;
        letter-spacing: 0.3px;
      }
      .mp-grant-name { font-weight: 500; }
      .mp-grant-flags {
        display: inline-flex;
        gap: 4px;
        flex-wrap: wrap;
      }
      .mp-grant-ops {
        flex-basis: 100%;
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        margin-top: 4px;
      }
      /* ─── Pack contents "show all N" (script-free collapsible, R16) ─── */
      .mp-pack-more { margin-top: 6px; }
      .mp-pack-more > summary {
        cursor: pointer;
        font-size: 13px;
        color: var(--accent);
        list-style: none;
      }
      .mp-pack-more > summary::-webkit-details-marker { display: none; }
      .mp-pack-more > summary::before { content: '▸ '; }
      .mp-pack-more[open] > summary::before { content: '▾ '; }
      .mp-pack-more > summary:hover { text-decoration: underline; }
      /* ─── Recipe workflow context (bundled recipe + recipe-only pack) ─── */
      .mp-bundle-overview {
        padding: 20px;
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        background: var(--bg-subtle);
        box-shadow: var(--mp-shadow-sm);
      }
      .mp-bundle-heading {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        margin-bottom: 8px;
      }
      .mp-bundle-pack-name {
        color: var(--fg);
        font-size: 16px;
        font-weight: 650;
      }
      a.mp-bundle-pack-name:hover { color: var(--accent); }
      .mp-bundle-intro,
      .mp-bundle-note {
        color: var(--fg);
        font-size: 13px;
        line-height: 1.5;
        margin: 0 0 8px;
      }
      .mp-bundle-note {
        color: var(--fg-muted);
        font-size: 12px;
        margin-bottom: 12px;
      }
      .mp-bundle-recipe-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
        gap: 10px;
      }
      .mp-bundle-recipe {
        display: flex;
        flex-direction: column;
        gap: 7px;
        min-width: 0;
        padding: 14px;
        border: 1px solid var(--border);
        border-radius: 10px;
        background: var(--bg-card);
        box-shadow: 0 1px 2px rgba(15, 23, 42, 0.03);
      }
      .mp-bundle-recipe-current {
        border-color: var(--accent);
        box-shadow: inset 3px 0 0 var(--accent);
      }
      .mp-bundle-recipe-header {
        display: flex;
        flex-direction: column;
        gap: 6px;
      }
      .mp-bundle-recipe-name {
        color: var(--fg);
        font-size: 13px;
        font-weight: 600;
        line-height: 1.35;
      }
      .mp-bundle-recipe-name:hover { color: var(--accent); }
      .mp-bundle-recipe-desc {
        color: var(--fg-muted);
        display: -webkit-box;
        flex: 1;
        font-size: 12px;
        line-height: 1.45;
        margin: 0;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-clamp: 3;
      }
      .mp-bundle-recipe-unresolved { font-style: italic; }
      .mp-bundle-recipe-meta {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        color: var(--fg-muted);
        font-size: 10px;
      }
      .mp-bundle-current-tag {
        background: var(--accent-weak);
        color: var(--accent);
      }
      .mp-bundle-more { margin-top: 10px; }
      .mp-bundle-more .mp-bundle-recipe-grid { margin-top: 10px; }
      .mp-bundle-pack-link {
        display: inline-block;
        margin-top: 12px;
        color: var(--accent);
        font-size: 12px;
        font-weight: 600;
      }
      .mp-bundle-pack-link:hover { text-decoration: underline; }
      /* ─── About ─── */
      .mp-about-row {
        display: flex;
        gap: 12px;
        align-items: flex-start;
      }
      .mp-avatar {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        background: var(--bg-subtle);
        color: var(--fg);
        font-size: 13px;
        font-weight: 600;
        flex-shrink: 0;
      }
      .mp-about-links {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 8px;
        font-size: 13px;
      }
      .mp-about-bio {
        font-size: 12px;
        color: var(--fg-muted);
        margin: 6px 0 0;
      }
      .mp-dot { color: var(--fg-muted); }
      .mp-fork-lineage p {
        font-size: 13px;
        color: var(--fg);
      }
      .mp-back {
        display: inline-block;
        margin-bottom: 16px;
        font-size: 13px;
        color: var(--fg-muted);
      }
      .mp-back:hover { color: var(--accent); }
      .mp-json-url {
        display: flex;
        align-items: center;
        gap: 8px;
        background: var(--bg-subtle);
        padding: 8px 12px;
        border-radius: 6px;
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 12px;
        word-break: break-all;
      }
      .mp-copy-btn {
        padding: 3px 10px;
        border: 1px solid var(--border);
        border-radius: 4px;
        background: var(--bg-card);
        color: var(--fg-muted);
        font-size: 11px;
        font-family: inherit;
        cursor: pointer;
        white-space: nowrap;
        flex-shrink: 0;
      }
      .mp-copy-btn:hover { border-color: var(--accent); color: var(--accent); }

      /* ─── Readme ─── */
      .mp-readme {
        margin-bottom: 24px;
        padding: 20px 24px;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: 8px;
        font-size: 14px;
        line-height: 1.7;
        color: var(--fg);
      }
      .mp-readme h2 { font-size: 18px; font-weight: 700; margin: 20px 0 8px; }
      .mp-readme h3 { font-size: 15px; font-weight: 600; margin: 16px 0 6px; }
      .mp-readme h4 { font-size: 13px; font-weight: 600; margin: 12px 0 4px; }
      .mp-readme p { margin: 8px 0; }
      .mp-readme ul, .mp-readme ol { margin: 8px 0; padding-left: 24px; }
      .mp-readme li { margin: 4px 0; }
      .mp-readme code {
        background: var(--bg-subtle);
        padding: 1px 5px;
        border-radius: 3px;
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 0.9em;
      }
      .mp-readme pre {
        background: var(--bg-subtle);
        padding: 12px 16px;
        border-radius: 6px;
        overflow-x: auto;
        margin: 12px 0;
        font-size: 12px;
        line-height: 1.5;
      }
      .mp-readme pre code {
        background: none;
        padding: 0;
        font-size: inherit;
      }
      .mp-readme table {
        width: 100%;
        border-collapse: collapse;
        margin: 12px 0;
        font-size: 13px;
      }
      .mp-readme th, .mp-readme td {
        padding: 6px 12px;
        border: 1px solid var(--border);
        text-align: left;
      }
      .mp-readme th {
        background: var(--bg-subtle);
        font-weight: 600;
        font-size: 12px;
      }
      .mp-readme blockquote {
        margin: 12px 0;
        padding: 8px 16px;
        border-left: 3px solid var(--accent);
        color: var(--fg-muted);
        font-size: 13px;
      }
      .mp-readme hr { border: none; border-top: 1px solid var(--border); margin: 20px 0; }
      .mp-readme a { color: var(--accent); }
      .mp-readme strong { font-weight: 600; }

      /* ─── Stars + stats ─── */
      .mp-stars {
        display: inline-flex;
        align-items: center;
        gap: 2px;
        color: var(--fg);
        font-size: 12px;
      }
      .mp-rating-num { font-size: 11px; font-weight: 600; }
      .mp-rating-count { font-size: 10px; color: var(--fg-muted); }
      .mp-stats {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
        padding: 0 0 22px;
        font-size: 13px;
        color: var(--fg-muted);
      }
      .mp-stat {
        padding: 6px 10px;
        border: 1px solid var(--border);
        border-radius: 999px;
        background: var(--bg-card);
      }
      .mp-stat strong { color: var(--fg); font-weight: 750; }

      /* ─── Empty / loading ─── */
      .mp-empty {
        text-align: center;
        padding: 48px 20px;
        color: var(--fg-muted);
        font-size: 14px;
      }
      .mp-empty .btn-cta { margin-top: 16px; }
      .mp-error-detail {
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 12px;
        color: var(--fg-muted);
      }
      .mp-loading {
        text-align: center;
        padding: 48px 20px;
        color: var(--fg-muted);
        font-size: 14px;
      }

      /* ─── Footer ─── */
      .mp-footer {
        margin-top: 72px;
        padding-top: 34px;
        border-top: 1px solid var(--border);
        font-size: 13px;
        color: var(--fg-muted);
      }
      .mp-footer-cols {
        display: grid;
        grid-template-columns: repeat(4, minmax(120px, 1fr));
        gap: 32px;
        margin-bottom: 32px;
      }
      .mp-footer-col { display: flex; flex-direction: column; gap: 8px; min-width: 120px; }
      .mp-footer-col h4 {
        margin: 0 0 4px;
        font-size: 11px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.05em;
        color: var(--fg);
      }
      .mp-footer-col a { color: var(--fg-muted); }
      .mp-footer-col a:hover { color: var(--accent); text-decoration: none; }
      .mp-footer-colophon {
        padding-top: 20px;
        border-top: 1px solid var(--border);
        text-align: center;
        font-size: 11px;
        color: var(--fg-muted);
      }

      /* ─── Shared-shell 404 ─── */
      .mp-notfound {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 16px;
        text-align: center;
        padding: 72px 0 56px;
      }
      .mp-notfound h1 { font-size: 28px; margin: 0; }
      .mp-notfound p { color: var(--fg-muted); max-width: 460px; margin: 0; }

      /* ─── Static-content prose (docs / legal) ─── */
      .mp-prose {
        max-width: 800px;
        margin: 0 auto;
        padding: 8px 0 48px;
        line-height: 1.65;
      }
      .mp-prose h1 { font-size: clamp(34px, 5vw, 48px); line-height: 1.08; margin: 18px 0 28px; letter-spacing: -0.04em; }
      .mp-prose h2 { font-size: 23px; margin: 42px 0 14px; letter-spacing: -0.02em; }
      .mp-prose h3 { font-size: 17px; margin: 28px 0 10px; }
      .mp-prose h4 { font-size: 15px; margin: 22px 0 8px; }
      .mp-prose p { margin: 0 0 14px; }
      .mp-prose ul, .mp-prose ol { margin: 0 0 16px; padding-left: 22px; }
      .mp-prose li { margin: 4px 0; }
      .mp-prose a { color: var(--accent); }
      .mp-prose code {
        font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
        font-size: 0.9em; padding: 1px 5px; border-radius: 4px;
        background: var(--surface-2, rgba(127, 127, 127, 0.12));
      }
      .mp-prose pre {
        background: var(--surface-2, rgba(127, 127, 127, 0.10));
        padding: 14px 16px; border-radius: 8px; overflow-x: auto; margin: 0 0 16px;
      }
      .mp-prose pre code { background: none; padding: 0; }
      .mp-prose blockquote {
        margin: 0 0 16px; padding: 8px 16px;
        border-left: 3px solid var(--border); color: var(--fg-muted);
      }
      .mp-prose hr { border: none; border-top: 1px solid var(--border); margin: 28px 0; }
      .mp-prose table { border-collapse: collapse; width: 100%; margin: 0 0 18px; font-size: 14px; }
      .mp-prose th, .mp-prose td { border: 1px solid var(--border); padding: 8px 10px; text-align: left; vertical-align: top; }
      .mp-prose th { background: var(--surface-2, rgba(127, 127, 127, 0.08)); font-weight: 600; }

      /* ─── Designed funnels (/get-started · /publish · /pricing) ─── */
      .funnel-hero { padding: 32px 0 22px; max-width: 780px; }
      .funnel-hero h1 { font-size: clamp(36px, 5vw, 54px); line-height: 1.05; letter-spacing: -0.04em; margin: 0 0 18px; }
      .funnel-sub { font-size: 16px; line-height: 1.6; color: var(--fg-muted); margin: 0; }
      .funnel-sub code { font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--surface-2, rgba(127, 127, 127, 0.12)); }
      .funnel-section { padding: 36px 0; border-top: 1px solid var(--border); }
      .funnel-section > h2 { font-size: 22px; margin: 0 0 8px; }
      .funnel-lead { color: var(--fg-muted); margin: 0 0 22px; max-width: 640px; }
      .funnel-muted { color: var(--fg-muted); font-size: 13px; }
      .funnel-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
      .funnel-next-links { display: flex; gap: 24px; flex-wrap: wrap; }
      .funnel-next-links a { font-weight: 500; }

      .benefit-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; margin-top: 18px; }
      .benefit {
        background: var(--bg-card); border: 1px solid var(--border);
        border-radius: var(--mp-radius); padding: 22px 24px;
        box-shadow: var(--mp-shadow-sm);
      }
      .benefit h3 { font-size: 16px; margin: 0 0 6px; }
      .benefit p { margin: 0; color: var(--fg-muted); font-size: 14px; line-height: 1.55; }

      .install-tabs input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
      .install-tablist { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin-bottom: 18px; flex-wrap: wrap; }
      .install-tablist label {
        padding: 8px 16px; cursor: pointer; font-size: 14px; font-weight: 500;
        color: var(--fg-muted); border-bottom: 2px solid transparent; margin-bottom: -1px;
      }
      .install-tablist label:hover { color: var(--fg); }
      .install-panel { display: none; }
      .install-panel h3 { font-size: 17px; margin: 0 0 10px; }
      .install-panel p { margin: 0 0 10px; line-height: 1.55; }
      .install-panel pre {
        background: var(--surface-2, rgba(127, 127, 127, 0.10));
        padding: 12px 14px; border-radius: 8px; overflow-x: auto; font-size: 13px; margin: 0 0 10px;
      }
      #im-vps:checked ~ .install-tablist label[for="im-vps"],
      #im-docker:checked ~ .install-tablist label[for="im-docker"],
      #im-binary:checked ~ .install-tablist label[for="im-binary"] {
        color: var(--accent); border-bottom-color: var(--accent);
      }
      #im-vps:checked ~ .install-panels .install-panel[data-for="im-vps"],
      #im-docker:checked ~ .install-panels .install-panel[data-for="im-docker"],
      #im-binary:checked ~ .install-panels .install-panel[data-for="im-binary"] { display: block; }
      .funnel-pair { margin-top: 28px; padding-top: 20px; border-top: 1px dashed var(--border); }
      .funnel-pair h3 { font-size: 16px; margin: 0 0 6px; }
      .funnel-pair p { margin: 0; color: var(--fg-muted); line-height: 1.55; }

      .funnel-pack-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 20px; }
      .funnel-pack-card {
        display: flex; flex-direction: column; gap: 6px;
        background: var(--bg-card); border: 1px solid var(--border);
        border-radius: var(--mp-radius); padding: 20px 22px; color: inherit;
        box-shadow: var(--mp-shadow-sm);
      }
      .funnel-pack-card:hover { border-color: var(--accent); text-decoration: none; }
      .funnel-pack-card h3 { font-size: 15px; margin: 0; }
      .funnel-pack-card p { margin: 0; color: var(--fg-muted); font-size: 13px; line-height: 1.5; flex: 1; }
      .funnel-pack-cta { font-size: 13px; font-weight: 600; color: var(--accent); }

      .funnel-steps { margin: 0; padding-left: 22px; max-width: 640px; }
      .funnel-steps li { margin: 10px 0; line-height: 1.55; }

      .funnel-pricing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
      .funnel-tier-frame { font-size: 13px; color: var(--fg-muted); margin: 0 0 16px; min-height: 34px; }
      .pricing-card .pricing-features li code, .funnel-sub code { white-space: nowrap; }
      .pricing-card > a { display: inline-block; margin-top: 8px; }

      .funnel-faq { display: flex; flex-direction: column; gap: 18px; max-width: 720px; margin-top: 8px; }
      .funnel-faq-item h3 { font-size: 16px; margin: 0 0 6px; }
      .funnel-faq-item p { margin: 0; color: var(--fg-muted); line-height: 1.6; }

      @media (max-width: 720px) {
        .benefit-grid, .funnel-pack-grid, .funnel-pricing-grid { grid-template-columns: 1fr; }
        .funnel-hero h1 { font-size: 28px; }
      }

      /* ─── Publisher pages ─── */
      .publisher-page {
        display: flex;
        flex-direction: column;
        gap: 24px;
      }
      .publisher-header {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 20px;
        align-items: start;
        padding: 24px;
        background: var(--bg-card);
        border: 1px solid var(--border);
        border-radius: var(--mp-radius);
        box-shadow: var(--mp-shadow-sm);
      }
      .publisher-avatar {
        width: 72px;
        height: 72px;
        border-radius: 8px;
        object-fit: cover;
        border: 1px solid var(--border);
      }
      .publisher-avatar-fallback {
        display: flex;
        align-items: center;
        justify-content: center;
        background: var(--bg-subtle);
        color: var(--accent);
        font-size: 22px;
        font-weight: 800;
      }
      .publisher-header-main h1 {
        font-size: 28px;
        line-height: 1.2;
        margin-bottom: 8px;
      }
      .publisher-header-main p {
        color: var(--fg-muted);
        font-size: 14px;
        max-width: 620px;
      }
      .publisher-kicker {
        display: flex;
        align-items: center;
        gap: 8px;
        color: var(--fg-muted);
        font-size: 12px;
        margin-bottom: 4px;
      }
      .publisher-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 14px;
      }
      .publisher-profile-note {
        margin-top: 10px;
        color: var(--fg-muted);
        font-size: 11px;
      }
      .publisher-stats {
        display: flex;
        flex-wrap: wrap;
        gap: 18px;
        padding-bottom: 4px;
        color: var(--fg-muted);
        font-size: 13px;
      }
      .publisher-section {
        padding-top: 12px;
        border-top: 1px solid var(--border);
      }

      /* ─── Publisher tabs-when-long (§12D, script-free radio-tabs) ─── */
      .publisher-tab-radio {
        position: absolute;
        width: 1px; height: 1px;
        opacity: 0;
        pointer-events: none;
      }
      .publisher-tab-labels {
        display: flex;
        gap: 4px;
        border-bottom: 1px solid var(--border);
        margin: 16px 0 12px;
      }
      .publisher-tab-labels label {
        cursor: pointer;
        padding: 8px 16px;
        font-weight: 500;
        color: var(--fg-muted);
        border-bottom: 2px solid transparent;
        margin-bottom: -1px;
      }
      .publisher-tab-labels label:hover { color: var(--fg); }
      .publisher-tab-count { color: var(--fg-muted); font-weight: 400; font-size: 12px; }
      .publisher-tab-panel { display: none; }
      #pub-tab-recipes:checked ~ .publisher-panel-recipes,
      #pub-tab-packs:checked ~ .publisher-panel-packs { display: block; }
      #pub-tab-recipes:checked ~ .publisher-tab-labels label[for="pub-tab-recipes"],
      #pub-tab-packs:checked ~ .publisher-tab-labels label[for="pub-tab-packs"] {
        color: var(--fg);
        border-bottom-color: var(--accent);
      }

      @media (max-width: 640px) {
        .publisher-header { grid-template-columns: 1fr; }
        .publisher-avatar { width: 60px; height: 60px; }
      }

      /* ─── Step Visualizer ─── */
      .viz-pipeline {
        border: 1px solid var(--border);
        border-radius: 10px;
        padding: 16px;
        background: var(--bg-card);
      }
      .viz-phase {
        margin-bottom: 4px;
      }
      .viz-phase-label {
        font-size: 10px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.4px;
        color: var(--fg-muted);
        margin-bottom: 8px;
      }
      .viz-phase-arrow {
        text-align: center;
        color: var(--fg-muted);
        font-size: 10px;
        padding: 2px 0;
      }
      .viz-steps {
        display: flex;
        flex-direction: column;
        gap: 0;
      }
      .viz-connector {
        width: 1px;
        height: 8px;
        background: var(--border);
        margin: 0 auto;
      }
      .viz-step {
        border: 1px solid var(--border);
        border-radius: 6px;
        padding: 8px 12px;
        background: var(--bg);
        font-size: 12px;
      }
      .viz-step.viz-optional {
        border-style: dashed;
      }
      .viz-step-header {
        display: flex;
        align-items: center;
        gap: 8px;
      }
      .viz-icon {
        font-size: 11px;
        flex-shrink: 0;
      }
      .viz-id {
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-weight: 600;
        font-size: 12px;
        color: var(--fg);
      }
      .viz-type-badge {
        font-size: 10px;
        background: var(--bg-subtle);
        padding: 1px 6px;
        border-radius: 8px;
        color: var(--fg-muted);
        white-space: nowrap;
      }
      .viz-desc {
        font-size: 11px;
        color: var(--fg-muted);
        margin-top: 3px;
        line-height: 1.4;
      }
      .viz-refs {
        display: flex;
        align-items: center;
        gap: 4px;
        margin-top: 4px;
        flex-wrap: wrap;
      }
      .viz-ref {
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 10px;
        color: var(--accent);
        background: var(--bg-subtle);
        padding: 1px 5px;
        border-radius: 4px;
      }
      .viz-arrow {
        font-size: 10px;
        color: var(--fg-muted);
      }
      .viz-cond {
        font-size: 10px;
        margin-top: 3px;
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
      }
      .viz-skip { color: var(--fg-muted); }
      .viz-fail { color: var(--danger); }
      .viz-prefetch { border-left: 3px solid var(--accent); }
      .viz-transform { border-left: 3px solid var(--border); }
      .viz-ingredient,
      .viz-guard,
      .viz-ai { border-left: 3px solid var(--border-strong); }
      .viz-outputs {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
      }
      .viz-output {
        display: flex;
        align-items: center;
        gap: 6px;
        padding: 6px 10px;
        border: 1px solid var(--border);
        border-radius: 6px;
        background: var(--bg);
        font-size: 12px;
      }
      .viz-io-list {
        display: flex;
        flex-direction: column;
        gap: 4px;
      }
      .viz-io-item {
        padding: 4px 10px;
        border: 1px solid var(--border);
        border-radius: 4px;
        background: var(--bg);
        font-size: 12px;
      }
      .viz-io-item code {
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 11px;
      }
      .viz-input { border-left: 3px solid var(--accent); }
      .viz-output-item { border-left: 3px solid var(--border-strong); }

      /* ─── Dependency list ─── */
      .dep-list {
        display: flex;
        flex-direction: column;
        gap: 4px;
      }
      .dep-item {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 5px 10px;
        border: 1px solid var(--border);
        border-radius: 8px;
        font-size: 12px;
      }
      .dep-item a {
        font-weight: 500;
      }
      .dep-item code {
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 10px;
        color: var(--fg-muted);
        margin-left: auto;
      }

      /* ─── I/O Table ─── */
      .mp-io-table {
        width: 100%;
        border-collapse: collapse;
        font-size: 12px;
      }
      .mp-io-table th {
        text-align: left;
        font-size: 11px;
        font-weight: 600;
        color: var(--fg-muted);
        padding: 4px 10px;
        border-bottom: 1px solid var(--border);
        background: var(--bg-subtle);
      }
      .mp-io-table td {
        padding: 4px 10px;
        border-bottom: 1px solid var(--border);
      }
      .mp-io-table code {
        font-family: ui-monospace, 'SF Mono', Menlo, monospace;
        font-size: 11px;
        background: var(--bg-subtle);
        padding: 1px 4px;
        border-radius: 3px;
      }

      /* ─── Responsive shell + polish ─── */
      @media (max-width: 980px) {
        .mp-nav { gap: 2px; }
        .mp-nav a { padding-inline: 7px; }
        .mp-header-cta { gap: 10px; }
        .header-icon-link { display: none; }
      }

      @media (max-width: 820px) {
        .marketplace { padding: 0 18px 52px; }
        .mp-header {
          gap: 12px;
          min-height: 64px;
          margin-bottom: 24px;
          padding: 10px 0;
        }
        .mp-nav { display: none; }
        .mp-header-cta { margin-left: auto; }
        .mp-header-cta > :not(.btn-cta-sm) { display: none; }
        .btn-cta-sm { padding: 7px 12px; }
        .mp-mobile-nav {
          position: relative;
          display: block;
        }
        .mp-mobile-nav > summary {
          display: inline-flex;
          align-items: center;
          gap: 7px;
          min-height: 36px;
          padding: 7px 10px;
          border: 1px solid var(--border);
          border-radius: 999px;
          background: var(--bg-card);
          color: var(--fg);
          cursor: pointer;
          font-size: 12px;
          font-weight: 650;
          list-style: none;
        }
        .mp-mobile-nav > summary::-webkit-details-marker { display: none; }
        .mp-mobile-nav-icon,
        .mp-mobile-nav-icon::before,
        .mp-mobile-nav-icon::after {
          display: block;
          width: 13px;
          height: 1.5px;
          border-radius: 2px;
          background: currentColor;
        }
        .mp-mobile-nav-icon { position: relative; }
        .mp-mobile-nav-icon::before,
        .mp-mobile-nav-icon::after { content: ''; position: absolute; left: 0; }
        .mp-mobile-nav-icon::before { top: -4px; }
        .mp-mobile-nav-icon::after { top: 4px; }
        .mp-mobile-nav[open] .mp-mobile-nav-icon { background: transparent; }
        .mp-mobile-nav[open] .mp-mobile-nav-icon::before { top: 0; transform: rotate(45deg); }
        .mp-mobile-nav[open] .mp-mobile-nav-icon::after { top: 0; transform: rotate(-45deg); }
        .mp-mobile-nav-panel {
          position: absolute;
          z-index: 40;
          top: calc(100% + 10px);
          right: 0;
          width: min(300px, calc(100vw - 36px));
          padding: 10px;
          border: 1px solid var(--border);
          border-radius: var(--mp-radius);
          background: var(--surface);
          box-shadow: var(--mp-shadow);
        }
        .mp-mobile-nav-panel nav { display: grid; gap: 2px; }
        .mp-mobile-nav-panel nav a,
        .mp-mobile-nav-actions a {
          padding: 10px 12px;
          border-radius: 8px;
          color: var(--fg);
          font-size: 13px;
          font-weight: 600;
        }
        .mp-mobile-nav-panel nav a:hover,
        .mp-mobile-nav-panel nav a.active {
          background: var(--accent-weak);
          color: var(--accent);
          text-decoration: none;
        }
        .mp-mobile-nav-actions {
          display: grid;
          grid-template-columns: repeat(3, 1fr);
          gap: 2px;
          margin-top: 8px;
          padding-top: 8px;
          border-top: 1px solid var(--border);
          text-align: center;
        }
        .mp-mobile-nav-actions a { color: var(--fg-muted); font-size: 11px; }

        .landing-hero { padding: 48px 0 44px; }
        .landing-hero::before { inset-inline: -10%; height: 330px; }
        .landing-tagline { font-size: clamp(36px, 10vw, 50px); }
        .landing-sub { font-size: 16px; }
        .landing-lead { max-width: 620px; }
        .landing-proof { margin-bottom: 26px; }
        .landing-diagram { margin-top: 24px; }
        .landing-diagram img { padding: 8px; border-radius: 14px; }
        .landing-diagram figcaption { font-size: 12px; }
        .landing-search-panel { grid-template-columns: 1fr; padding: 22px; }
        .landing-search-panel .mp-search { margin-top: 4px; }
        .landing-section { padding: 36px 0; }
        .landing-section-head { flex-direction: row; align-items: baseline; }
        .landing-section-head h2 { font-size: 18px; }
        .landing-section-head a { white-space: nowrap; }

        .mp-hero { padding: 34px 0 22px; }
        .mp-filter-group { grid-template-columns: 1fr; gap: 4px; }
        .mp-filter-label { padding-left: 2px; }
        .mp-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
        .mp-detail-layout { gap: 24px; }
        .mp-detail-aside { order: -1; }
        .mp-detail-header { margin-bottom: 22px; }
        .mp-detail-desc { font-size: 15px; }
        .mp-install-panel { box-shadow: none; }
        .mp-footer-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
      }

      @media (max-width: 520px) {
        .marketplace { padding-inline: 14px; }
        .mp-brand { font-size: 17px; gap: 7px; }
        .mp-brand::before { width: 10px; height: 10px; border-width: 2px; }
        .btn-cta-sm { font-size: 11px; }
        .mp-mobile-nav > summary span:first-child { display: none; }
        .mp-mobile-nav > summary { width: 36px; justify-content: center; padding-inline: 0; }

        .landing-eyebrow { margin-bottom: 12px; }
        .landing-tagline { font-size: 36px; }
        .landing-proof { gap: 6px; }
        .landing-proof span { padding: 4px 8px; font-size: 10px; }
        .landing-cta { display: grid; width: 100%; }
        .landing-cta .btn-cta,
        .landing-cta .btn-cta-secondary { width: 100%; }
        .landing-search-panel { padding: 18px; }
        .landing-section-head { gap: 10px; }
        .landing-section-head h2 { font-size: 17px; }
        .landing-section-head a { font-size: 11px; }
        .landing-note { padding: 24px 18px; }

        .mp-hero h1 { font-size: 36px; }
        .mp-hero p { font-size: 14px; }
        .mp-stats { gap: 6px; }
        .mp-stat { font-size: 11px; padding: 5px 8px; }
        .mp-filter-bar { padding: 14px; }
        .mp-grid { grid-template-columns: 1fr; gap: 14px; }
        .mp-card { padding: 18px; }
        .mp-detail-header h2 { font-size: 30px; }
        .mp-detail-meta { gap: 8px 12px; }
        .mp-detail-section { margin-bottom: 24px; }
        .mp-disclosure > summary { padding: 13px 14px; }
        .mp-disclosure-meta { display: none; }
        .mp-bundle-overview { padding: 16px; }
        .mp-install-actions > * { flex: 1 1 auto; text-align: center; }
        .dep-item { align-items: flex-start; flex-wrap: wrap; }
        .dep-item code { width: 100%; margin-left: 0; overflow-wrap: anywhere; }
        .mp-footer { margin-top: 52px; }
        .mp-footer-cols { gap: 28px 20px; }
        .mp-footer-col { min-width: 0; }
        .mp-footer-colophon { text-align: left; line-height: 1.6; }
      }

      @media (prefers-reduced-motion: reduce) {
        html { scroll-behavior: auto; }
        *, *::before, *::after {
          scroll-behavior: auto !important;
          transition-duration: 0.01ms !important;
          animation-duration: 0.01ms !important;
          animation-iteration-count: 1 !important;
        }
      }
