
    *, *::before, *::after { box-sizing: border-box; }
    [hidden] { display: none !important; }
    html, body { margin: 0; padding: 0; overflow-x: hidden; }
    /* The shared event-updates injector is intentionally removed from public
       vendor Pages. Keep its brief pre-removal insertion out of document flow. */
    body.wknd-public-entry #wknd-event-updates { display: none !important; }
    body {
      font-family: var(--wknd-public-sans);
      background: #F2F0FA;
      color: #111827;
      min-height: 100vh;
      -webkit-font-smoothing: antialiased;
      max-width: 100vw;
    }

    /* ── Top brand bar ────────────────────────────────────────── */
    .topbar {
      position: sticky; top: 0; z-index: 100;
      background: rgba(255,255,255,.92);
      backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
      border-bottom: 1px solid rgba(0,0,0,.06);
      padding: 13px 20px;
      display: flex; align-items: center; justify-content: space-between;
    }
    .topbar-brand {
      font-weight: 900; font-size: 15px; letter-spacing: 0.14em;
      text-transform: uppercase; color: #7C3AED;
      text-decoration: none;
    }
    .topbar-share {
      display: flex; align-items: center; gap: 8px;
      font-size: 13px; color: #6B7280; cursor: pointer;
      background: #F3F4F6; border: 1px solid #E5E7EB;
      border-radius: 8px; padding: 7px 12px; min-height: 44px;
      transition: background 0.15s; user-select: none;
    }
    .topbar-share:hover { background: #E5E7EB; }
    .svp-visitor-auth { display: flex; align-items: center; gap: 6px; margin-left: auto; margin-right: 8px; }
    .svp-visitor-auth a {
      min-height: 44px; display: inline-flex; align-items: center; padding: 0 10px;
      border-radius: 10px; color: #6D28D9; background: #F5F3FF; border: 1px solid #DDD6FE;
      text-decoration: none; font-size: 12px; font-weight: 800; white-space: nowrap;
    }
    .svp-visitor-auth a:last-child { color: #fff; background: #7C3AED; border-color: #7C3AED; }

    /* ── Owner preview bar ────────────────────────────────────── */
    #svp-owner-bar {
      display: none;
      align-items: center; gap: 10px;
      background: #1E1B2E; color: #C4B5FD;
      padding: 10px 16px; font-size: 13px; line-height: 1.3;
      position: fixed; top: 0; left: 0; right: 0; z-index: 300;
      box-shadow: 0 2px 8px rgba(0,0,0,.25);
    }
    @media (max-width: 767px) {
      #svp-owner-bar.svp-ob-active { box-sizing: border-box; min-height: 116px; }
    }
    @media (min-width: 768px) {
      #svp-owner-bar.svp-ob-active { box-sizing: border-box; min-height: 77px; }
    }
    #svp-owner-bar.svp-ob-active { display: flex; }
    .svp-ob-eye { font-size: 15px; flex-shrink: 0; }
    .svp-ob-msg { flex: 1; color: #E9D5FF; font-weight: 500; }
    .svp-ob-msg em { color: #fff; font-style: normal; font-weight: 700; }
    .svp-ob-hub {
      color: #A78BFA; text-decoration: none; font-weight: 600;
      font-size: 12.5px; white-space: nowrap; padding: 4px 2px;
      flex-shrink: 0;
    }
    .svp-ob-edit {
      background: #7C3AED; color: #fff; border: none;
      border-radius: 8px; padding: 6px 14px; font-size: 12px; font-weight: 700;
      cursor: pointer; white-space: nowrap; flex-shrink: 0;
    }
    .svp-ob-edit:hover { background: #6D28D9; }
    #svp-ob-edit[hidden] { display: none !important; }
    .svp-ob-contextual #svp-ob-edit { display:inline-flex; align-items:center; justify-content:center; }
    body.wknd-owner-full-profile .wknd-owner-context-controls {
      display:flex; flex-wrap:wrap; align-items:center; gap:6px;
    }
    body.wknd-owner-full-profile .wknd-owner-context-control {
      box-sizing:border-box; width:44px; min-width:44px; height:44px; min-height:44px;
      padding:0; border:1px solid transparent; border-radius:9px;
      background:transparent; color:#56377a; font-family:inherit;
      font-size:12px; font-weight:700; line-height:1.2;
      cursor:pointer; box-shadow:none;
    }
    body.wknd-owner-full-profile .wknd-owner-context-control:hover {
      background:#f4edf7; border-color:transparent;
    }
    body.wknd-owner-full-profile .wknd-owner-context-control:focus-visible {
      outline:2px solid #7c3aed; outline-offset:2px;
    }
    body.wknd-owner-full-profile .wknd-owner-context-controls--hero {
      position:absolute; z-index:20; top:12px; right:12px; bottom:auto;
    }
    body.wknd-owner-full-profile .fsvp-sec-hd {
      flex-wrap:wrap;
    }
    body.wknd-owner-full-profile .wknd-owner-context-controls--section {
      margin-left:auto; justify-content:flex-end;
    }
    body.wknd-owner-full-profile .wknd-owner-context-controls--social {
      margin-top:6px; justify-content:flex-start;
    }
    body.wknd-owner-full-profile .wknd-owner-context-empty {
      max-width:600px; margin:10px 20px 18px; color:#736a7c;
      font-size:13px; line-height:1.5;
    }
    @media(max-width:480px) {
      body.wknd-owner-full-profile .wknd-owner-context-controls--hero {
        top:8px; right:8px; bottom:auto;
      }
      body.wknd-owner-full-profile .wknd-owner-context-control {
        width:44px; min-width:44px; height:44px; min-height:44px; padding:0; font-size:11px;
      }
    }
    .svp-ob-account {
      min-height: 44px; display: inline-flex; align-items: center; justify-content: center;
      background: transparent; color: #E9D5FF; border: 1px solid rgba(233,213,255,.35);
      border-radius: 8px; padding: 0 12px; font-size: 12px; font-weight: 800;
      cursor: pointer; white-space: nowrap; flex-shrink: 0;
      margin-top: -11px; margin-bottom: -11px;
    }
    .svp-ob-account:hover { background: rgba(233,213,255,.12); }
    #svp-owner-account-backdrop { display:none; position:fixed; inset:0; z-index:450; background:rgba(15,23,42,.5); }
    #svp-owner-account-menu {
      display:none; position:fixed; right:16px; top:58px; z-index:451; width:min(320px,calc(100vw - 32px));
      background:#fff; border:1px solid #E5E7EB; border-radius:16px; padding:8px;
      box-shadow:0 18px 50px rgba(15,23,42,.22);
    }
    body.svp-owner-mode #svp-owner-account-menu { top:100px; }
    .svp-account-title { padding:10px 12px 8px; color:#111827; font-size:15px; font-weight:850; }
    .svp-account-row {
      min-height:44px; width:100%; display:flex; align-items:center; gap:10px; padding:0 12px;
      border:0; border-radius:10px; color:#374151; background:transparent; text-decoration:none;
      font:inherit; font-size:14px; font-weight:700; text-align:left; cursor:pointer;
    }
    .svp-account-row:hover { background:#F9FAFB; }
    .svp-account-row--danger { color:#BE123C; }
    .svp-account-error { min-height:18px; padding:4px 12px 8px; color:#B91C1C; font-size:12px; }
    /* Secondary social-hint link inside owner bar */
    .svp-ob-socials {
      display: none; align-items: center; gap: 4px;
      color: #C4B5FD; font-size: 13px; font-weight: 700;
      text-decoration: none; white-space: nowrap; flex-shrink: 0;
      border: 1px solid rgba(196,181,253,.35);
      border-radius: 6px; padding: 4px 8px;
      transition: background .15s, border-color .15s;
    }
    .svp-ob-socials:hover { background: rgba(196,181,253,.12); border-color: rgba(196,181,253,.6); }
    /* On narrow viewports, hide the descriptive copy but preserve both
       owner destinations as compact, reachable actions. */
    @media (max-width: 480px) {
      .topbar { gap: 8px; padding: 8px 12px; flex-wrap: wrap; }
      .topbar-share { justify-content: center; }
      .svp-visitor-auth { gap: 5px; margin-right: 0; flex-wrap: wrap; }
      .svp-visitor-auth a { padding-inline: 8px; }
      #svp-owner-bar.svp-ob-active {
        box-sizing: border-box;
        flex-wrap: wrap;
        gap: 6px;
        padding: 8px 10px;
      }
      #svp-owner-bar.svp-ob-has-hint .svp-ob-msg { display: none; }
      #svp-owner-bar .svp-ob-socials,
      #svp-owner-bar .svp-ob-hub,
      #svp-owner-bar .svp-ob-edit,
      #svp-owner-bar .svp-ob-account {
        box-sizing: border-box;
        min-height: 44px;
        margin-top: 0;
        margin-bottom: 0;
      }
      #svp-owner-bar .svp-ob-socials,
      #svp-owner-bar .svp-ob-hub { white-space: normal; }
      #svp-owner-bar .svp-ob-edit,
      #svp-owner-bar .svp-ob-account { padding-right: 10px; padding-left: 10px; }
    }
    /* Push page content down to the measured fixed-bar height. */
    body.svp-owner-mode { padding-top: var(--svp-owner-bar-height, 42px); }
    body.svp-owner-mode .topbar { top: var(--svp-owner-bar-height, 42px); }
    /* Hide visitor-only sections in owner mode */
    /* Owner previews retain shopper sections; native actions remain disabled. */
    body.svp-owner-mode #no-events-notify-btn { display: none !important; }

    /* ── Owner calendar management bar ──────────────────────────── */
    #svp-cal-bar {
      display: none;
      flex-direction: column; gap: 12px;
      background: #F5F3FF; border: 1.5px solid #DDD6FE;
      border-radius: 16px; padding: 16px;
      margin: 0 16px 8px;
    }
    #svp-cal-bar.svp-cal-bar--active { display: flex; }
    .svp-cal-bar-title {
      font-size: 18px; font-weight: 700; color: #1F2937;
      display: flex; align-items: center; gap: 6px;
    }
    .svp-cal-bar-sub { font-size: 15px; color: #6B7280; }
    .svp-cal-row { display: flex; align-items: center; gap: 8px; }
    .svp-cal-feed-input {
      flex: 1; font-size: 13px; color: #6B7280;
      border: 1px solid #E5E7EB; border-radius: 8px;
      padding: 8px 10px; background: #fff; font-family: monospace;
      overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
      min-width: 0;
    }
    .svp-cal-copy-btn {
      background: #7C3AED; color: #fff; border: none;
      border-radius: 8px; padding: 8px 14px; font-size: 12px; font-weight: 700;
      cursor: pointer; white-space: nowrap; flex-shrink: 0;
    }
    .svp-cal-copy-btn:hover { background: #6D28D9; }
    .svp-cal-divider { height: 1px; background: #DDD6FE; }
    .svp-cal-connect-label {
      font-size: 13px; font-weight: 600; color: #374151;
    }
    .svp-cal-connect-input {
      flex: 1; font-size: 12px; color: #374151;
      border: 1px solid #D1D5DB; border-radius: 8px;
      padding: 8px 10px; background: #fff; min-width: 0;
    }
    .svp-cal-connect-input:focus { outline: none; border-color: #7C3AED; }
    .svp-cal-save-btn {
      background: #059669; color: #fff; border: none;
      border-radius: 8px; padding: 8px 14px; font-size: 12px; font-weight: 700;
      cursor: pointer; white-space: nowrap; flex-shrink: 0;
    }
    .svp-cal-save-btn:hover { background: #047857; }
    .svp-cal-save-btn:disabled { background: #9CA3AF; cursor: default; }
    .svp-cal-status { font-size: 12px; color: #6B7280; min-height: 16px; }
    .svp-cal-status--ok  { color: #059669; font-weight: 600; }
    .svp-cal-status--err { color: #DC2626; }
    /* Blocked weekend row state (personal iCal) */
    .cal-weekend-row--blocked { background: #F9FAFB; }
    .cal-weekend-row--blocked .cal-weekend-dot { background: #9CA3AF; }
    .cal-weekend-row--blocked .cal-weekend-dates { color: #6B7280; }
    .cal-weekend-row--blocked .cal-weekend-status {
      color: #9CA3AF; font-size: 12px; font-weight: 500;
    }
    /* Open-weekends rows: hidden by default; revealed by organizer toggle */
    .cal-open-rows-wrap { display: none; }
    .cal-open-rows-wrap--visible { display: block; }
    /* Organizer availability toggle button */
    .cal-avail-toggle {
      display: flex; align-items: center; gap: 10px;
      width: 100%; text-align: left; border: none;
      background: #F5F3FF; border-radius: 10px;
      padding: 11px 14px; margin-top: 10px;
      font-size: 13px; font-weight: 600; color: #7C3AED;
      cursor: pointer; transition: background .15s;
    }
    .cal-avail-toggle:hover { background: #EDE9FE; }
    .cal-avail-toggle--open { background: #EDE9FE; }
    .cal-avail-dot {
      width: 8px; height: 8px; border-radius: 50%;
      background: #7C3AED; flex-shrink: 0;
    }

    /* ── Hero section ─────────────────────────────────────────── */
    .hero { padding: 32px 20px 24px; max-width: 640px; margin: 0 auto; }
    .hero-top { display: flex; align-items: flex-start; gap: 18px; margin-bottom: 18px; }
    .hero-avatar {
      width: 84px; height: 84px; border-radius: 22px;
      object-fit: cover; flex-shrink: 0;
      background: #F3F4F6; border: 2px solid rgba(124,58,237,.2);
    }
    .hero-avatar-placeholder {
      width: 84px; height: 84px; border-radius: 22px; flex-shrink: 0;
      background: linear-gradient(135deg, #EDE9FE, #FAF5FF);
      display: flex; align-items: center; justify-content: center;
      font-size: 32px; border: 2px solid rgba(124,58,237,.15);
    }
    .hero-info { flex: 1; min-width: 0; }
    .hero-name {
      font-size: 26px; font-weight: 900; line-height: 1.1;
      letter-spacing: -0.02em; margin: 0 0 8px; color: #111827;
      word-break: break-word;
    }
    .hero-badges { display: flex; flex-wrap: wrap; gap: 6px; }
    .badge {
      font-size: 13px; font-weight: 700; letter-spacing: 0.04em;
      padding: 4px 10px; border-radius: 20px;
      display: inline-flex; align-items: center; gap: 4px;
    }
    .badge--cat {
      background: rgba(124,58,237,.1); color: #7C3AED;
      border: 1px solid rgba(124,58,237,.2);
    }
    .badge--trust {
      background: rgba(16,185,129,.1); color: #059669;
      border: 1px solid rgba(16,185,129,.2);
    }
    .badge--ig {
      background: rgba(236,72,153,.08); color: #BE185D;
      border: 1px solid rgba(236,72,153,.15);
      text-decoration: none;
    }
    .follower-row {
      display: flex; align-items: center; gap: 10px;
      margin-top: 14px; font-size: 13.5px; color: #6B7280;
    }
    .follower-count { font-size: 16px; font-weight: 800; color: #374151; }
    .follow-count-label { color: #9CA3AF; }

    /* ── Bio ─────────────────────────────────────────────────── */
    .bio-section { padding: 0 20px 24px; max-width: 640px; margin: 0 auto; }
    .bio-text {
      font-size: 15px; color: #374151; line-height: 1.65;
      margin: 0; white-space: pre-wrap; word-break: break-word;
    }
    .bio-more {
      color: #7C3AED; font-weight: 700; cursor: pointer;
      font-size: 14px; background: none; border: none; padding: 0;
      margin-top: 4px; display: block;
    }

    /* ── Photo gallery ───────────────────────────────────────── */
    .photos-section { padding: 0 0 28px; max-width: 640px; margin: 0 auto; }
    .section-label {
      font-size: 12px; font-weight: 800; letter-spacing: 0.18em;
      text-transform: uppercase; color: #9CA3AF;
      padding: 0 20px; margin-bottom: 12px;
    }
    .photo-strip {
      display: flex; gap: 10px;
      overflow-x: auto; padding: 0 20px 6px;
      scroll-snap-type: x mandatory;
      scrollbar-width: none; -ms-overflow-style: none;
      /* 82% stop corrects for the 16px negative-margin bleed on each side */
      -webkit-mask-image: linear-gradient(to right, #000 82%, transparent 100%);
      mask-image: linear-gradient(to right, #000 82%, transparent 100%);
    }
    .photo-strip::-webkit-scrollbar { display: none; }
    .photo-strip-item {
      flex-shrink: 0; width: 220px; height: 220px;
      border-radius: 16px; overflow: hidden;
      scroll-snap-align: start;
      background: #F3F4F6; border: 1.5px solid #E5E7EB;
      position: relative;
    }
    .photo-strip-item img {
      width: 100%; height: 100%; object-fit: cover;
      display: block; transition: transform 0.3s;
    }
    .photo-strip-item:hover img { transform: scale(1.04); }
    .photo-del-btn {
      display: none; position: absolute; top: 6px; right: 6px;
      width: 26px; height: 26px; border-radius: 50%;
      background: rgba(0,0,0,.55); border: none; color: #fff;
      font-size: 13px; cursor: pointer; align-items: center;
      justify-content: center; line-height: 1;
    }
    .photo-strip-item:hover .photo-del-btn,
    .photo-strip-item:focus-within .photo-del-btn { display: flex; }
    .photo-upload-item {
      flex-shrink: 0; width: 110px; height: 110px;
      border-radius: 14px; border: 2px dashed #D1D5DB;
      display: flex; flex-direction: column; align-items: center;
      justify-content: center; gap: 4px; cursor: pointer;
      background: #FAFAFA; color: #9CA3AF; font-size: 13px;
      font-weight: 600; transition: border-color .2s;
      scroll-snap-align: start;
    }
    .photo-upload-item:hover { border-color: #7C3AED; color: #7C3AED; }
    .photo-strip-sm { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 20px; }
    .photo-grid-item {
      width: calc(33.3% - 6px); aspect-ratio: 1;
      border-radius: 12px; overflow: hidden;
      background: #F3F4F6; position: relative;
    }
    .photo-grid-item img { width: 100%; height: 100%; object-fit: cover; display: block; }

    /* ── As Seen At — past event flyer strip ── */
    .as-seen-section { padding: 0 0 24px; max-width: 640px; margin: 0 auto; }
    .as-seen-scroll {
      display: flex; gap: 10px; overflow-x: auto;
      padding: 0 20px 6px; scrollbar-width: none; -ms-overflow-style: none;
      scroll-snap-type: x mandatory;
      /* 82% stop corrects for the 16px negative-margin bleed on each side */
      -webkit-mask-image: linear-gradient(to right, #000 82%, transparent 100%);
      mask-image: linear-gradient(to right, #000 82%, transparent 100%);
    }
    .as-seen-scroll::-webkit-scrollbar { display: none; }
    .as-seen-card {
      flex-shrink: 0; width: 140px; height: 190px;
      border-radius: 14px; overflow: hidden; position: relative;
      background: linear-gradient(135deg,#7C3AED,#EC4899);
      scroll-snap-align: start; box-shadow: 0 4px 16px rgba(0,0,0,.1);
    }
    .as-seen-card img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .as-seen-card-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to top,rgba(0,0,0,.72) 0%,transparent 50%);
      padding: 10px; display: flex; flex-direction: column; justify-content: flex-end;
    }
    .as-seen-card-name { font-size: 18px; font-weight: 800; color: #fff; line-height: 1.2; }
    .as-seen-card-meta { font-size: 12px; color: rgba(255,255,255,.75); margin-top: 2px; }

    /* ── Pay Me ──────────────────────────────────────────────── */
    .payme-section { padding: 0 20px 28px; max-width: 640px; margin: 0 auto; }
    .payme-methods { display: flex; flex-direction: column; gap: 10px; }
    .payme-method {
      display: flex; align-items: center; gap: 14px;
      background: #fff;
      border: 1.5px solid #E5E7EB;
      border-radius: 14px; padding: 14px 16px;
      text-decoration: none; color: #111827;
      transition: border-color 0.15s, background 0.15s;
      cursor: pointer;
      box-shadow: 0 1px 4px rgba(0,0,0,.04);
    }
    .payme-method:hover { background: #FAFAFA; border-color: #D1D5DB; }
    .payme-method--preferred {
      border-color: rgba(234,179,8,.4);
      background: rgba(254,252,232,.6);
    }
    .payme-method--preferred:hover { background: rgba(254,249,195,.8); }
    .payme-ico  { font-size: 22px; line-height: 1; flex-shrink: 0; }
    .payme-info { flex: 1; min-width: 0; }
    .payme-provider { font-size: 15px; font-weight: 700; color: #111827; }
    .payme-handle   { font-size: 12.5px; color: #6B7280; margin-top: 2px; word-break: break-all; }
    .payme-badge {
      font-size: 13px; font-weight: 800; letter-spacing: 0.06em;
      color: #92400E; background: rgba(234,179,8,.12);
      border: 1px solid rgba(234,179,8,.28);
      border-radius: 999px; padding: 3px 8px; flex-shrink: 0;
    }
    .payme-arrow { font-size: 16px; color: #9CA3AF; flex-shrink: 0; }

    /* ── Upcoming events ─────────────────────────────────────── */
    .events-section { padding: 0 20px 28px; max-width: 640px; margin: 0 auto; }
    .event-pill {
      background: #fff;
      border: 1.5px solid #E5E7EB;
      border-radius: 14px; padding: 14px 16px;
      margin-bottom: 10px;
      display: flex; flex-direction: column; gap: 4px;
      box-shadow: 0 1px 4px rgba(0,0,0,.04);
    }
    .event-pill-name { font-size: 18px; font-weight: 700; color: #111827; }
    .event-pill-meta { font-size: 13px; color: #6B7280; }
    .event-pill-date { color: #7C3AED; font-weight: 600; }

    /* ── Past Events stat strip ──────────────────────────────── */
    .past-section { padding: 0 20px 28px; max-width: 640px; margin: 0 auto; }
    .past-stats { display: flex; gap: 12px; }
    .past-stat {
      flex: 1; background: #fff;
      border: 1.5px solid #E5E7EB;
      border-radius: 14px; padding: 18px 12px;
      text-align: center;
      box-shadow: 0 1px 6px rgba(0,0,0,.05);
    }
    .past-stat-num {
      font-size: 26px; font-weight: 900; color: #111827;
      line-height: 1; margin-bottom: 5px;
    }
    .past-stat-label {
      font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
      text-transform: uppercase; color: #9CA3AF;
    }
    .past-stat--star .past-stat-num { color: #F59E0B; }
    .past-events-list { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
    .past-event-pill {
      background: #fff;
      border: 1.5px solid #E5E7EB;
      border-radius: 12px; padding: 12px 14px;
    }
    .past-event-pill-name { font-size: 18px; font-weight: 700; color: #111827; }
    .past-event-pill-meta { font-size: 13px; color: #6B7280; margin-top: 3px; }

    /* ── Follow form ─────────────────────────────────────────── */
    .follow-section {
      padding: 0 20px 32px; max-width: 640px; margin: 0 auto;
    }
    .follow-card {
      background: linear-gradient(135deg, #FAF5FF, #FDF4FF);
      border: 1.5px solid rgba(124,58,237,.18);
      border-radius: 20px; padding: 24px 22px;
    }
    .follow-card-title { font-size: 18px; font-weight: 800; color: #111827; margin: 0 0 6px; }
    .follow-card-sub   { font-size: 15px; color: #6B7280; line-height: 1.5; margin: 0 0 20px; }
    .follow-toggle {
      display: flex; background: #F3F4F6;
      border-radius: 10px; padding: 3px; margin-bottom: 14px;
    }
    .follow-toggle-btn {
      flex: 1; padding: 9px; font-size: 13px; font-weight: 700;
      border: 0; border-radius: 8px; cursor: pointer; color: #6B7280;
      background: transparent; transition: background 0.15s, color 0.15s;
    }
    .follow-toggle-btn.active { background: rgba(124,58,237,.12); color: #7C3AED; }
    .follow-input-wrap { position: relative; margin-bottom: 14px; }
    .follow-input {
      width: 100%; padding: 14px 16px; font-size: 16px;
      background: #fff; border: 1.5px solid #E5E7EB;
      border-radius: 12px; color: #111827; outline: none;
      transition: border-color 0.15s;
    }
    .follow-input::placeholder { color: #9CA3AF; }
    .follow-input:focus { border-color: #7C3AED; }
    .follow-btn {
      width: 100%; padding: 15px; border: 0; border-radius: 12px;
      background: var(--purple, #7C3AED);
      color: #fff; font-size: 16px; font-weight: 700; cursor: pointer;
      letter-spacing: 0.01em;
      box-shadow: 0 8px 20px rgba(124,58,237,.28);
      transition: transform 0.12s, filter 0.12s;
    }
    .follow-btn:hover:not(:disabled) { transform: translateY(-1px); filter: brightness(1.06); }
    .follow-btn:disabled { background: #E5E7EB; color: #9CA3AF; cursor: not-allowed; box-shadow: none; }
    .follow-success {
      text-align: center; padding: 20px 0 8px;
    }
    .follow-success-ico   { font-size: 40px; line-height: 1; margin-bottom: 10px; }
    .follow-success-title { font-size: 18px; font-weight: 800; color: #7C3AED; margin: 0 0 6px; }
    .follow-success-body  { font-size: 15px; color: #6B7280; line-height: 1.5; margin: 0 0 18px; }
    /* Dismiss / "Got it" button */
    .follow-success-dismiss {
      display: inline-block; margin-top: 4px;
      padding: 11px 28px; border: 0; border-radius: 10px;
      background: rgba(124,58,237,.1); color: #7C3AED;
      font-size: 14px; font-weight: 700; cursor: pointer;
      transition: background 0.15s;
    }
    .follow-success-dismiss:hover { background: rgba(124,58,237,.18); }
    /* Animated checkmark ring */
    @keyframes _fsv-pop { 0%{transform:scale(.6);opacity:0} 70%{transform:scale(1.12)} 100%{transform:scale(1);opacity:1} }
    .follow-success-check {
      width: 64px; height: 64px; border-radius: 50%;
      background: var(--purple, #7C3AED);
      display: flex; align-items: center; justify-content: center;
      margin: 0 auto 14px; font-size: 28px; color: #fff;
      animation: _fsv-pop 0.35s ease both;
      box-shadow: 0 6px 20px rgba(124,58,237,.3);
    }
    .follow-err {
      font-size: 13px; color: #F43F5E; margin-top: 10px;
      background: rgba(244,63,94,.06); border: 1px solid rgba(244,63,94,.18);
      border-radius: 8px; padding: 8px 12px; display: none;
    }
    .follow-err.show { display: block; }

    /* ── Share / QR ──────────────────────────────────────────── */
    .share-section {
      padding: 0 20px 40px; max-width: 640px; margin: 0 auto;
      text-align: center;
    }
    .share-card {
      background: #fff;
      border: 1.5px solid #E5E7EB;
      border-radius: 18px; padding: 22px 20px;
      box-shadow: 0 2px 12px rgba(0,0,0,.05);
    }
    .share-card-eyebrow { font-size: 13px; font-weight: 700; color: #9CA3AF; margin: 0 0 16px; text-transform: uppercase; letter-spacing: 0.08em; }
    .qr-img {
      width: 140px; height: 140px; border-radius: 12px;
      background: #fff; padding: 6px; margin: 0 auto 18px; display: block;
      border: 2px solid #F3F4F6;
    }
    .share-url {
      font-size: 13px; color: #7C3AED; font-family: monospace;
      background: rgba(124,58,237,.06); border: 1px solid rgba(124,58,237,.15);
      border-radius: 8px; padding: 9px 14px; margin-bottom: 14px;
      word-break: break-all;
    }
    .copy-btn {
      padding: 10px 22px; border: 1.5px solid rgba(124,58,237,.3);
      border-radius: 10px; background: rgba(124,58,237,.07);
      color: #7C3AED; font-size: 14px; font-weight: 700; cursor: pointer;
      transition: background 0.15s;
    }
    .copy-btn:hover { background: rgba(124,58,237,.13); }

    /* ── Social proof strip ──────────────────────────────────────── */
    .proof-strip {
      display: flex; align-items: center; gap: 0;
      padding: 12px 20px 4px; max-width: 640px; margin: 0 auto;
      overflow-x: auto; scrollbar-width: none;
      -webkit-mask-image: linear-gradient(to right, #000 78%, transparent 100%);
      mask-image: linear-gradient(to right, #000 78%, transparent 100%);
    }
    .proof-strip::-webkit-scrollbar { display: none; }
    .proof-stat {
      flex-shrink: 0; display: flex; align-items: baseline; gap: 4px;
      padding-right: 16px; margin-right: 16px;
      border-right: 1px solid #E5E7EB;
    }
    .proof-stat:last-child { border-right: none; padding-right: 0; margin-right: 0; }
    .proof-num {
      font-size: 18px; font-weight: 900; color: #111827; letter-spacing: -0.02em;
    }
    .proof-num--gold { color: #F59E0B; }
    .proof-label { font-size: 12px; color: #9CA3AF; white-space: nowrap; }

    /* ── Stats strip / Highlights rail — replaced by proof-strip ── */
    .stats-strip { display: none; }
    .highlights-rail { display: none; }

    /* ── Scroll-edge fade: left fade revealed when scrolled (wknd-scroll-fade.js) ── */
    .wknd-rl {
      -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 78%, transparent 100%) !important;
      mask-image: linear-gradient(to right, transparent 0%, #000 10%, #000 78%, transparent 100%) !important;
    }

    /* ── Availability banner ────────────────────────────────────── */
    .avail-row {
      margin: 6px 20px 4px; padding: 11px 16px;
      background: rgba(16,185,129,.06);
      border: 1px solid rgba(16,185,129,.18);
      border-radius: 12px; display: flex; align-items: center; gap: 10px;
      max-width: 600px;
    }
    .avail-dot {
      width: 7px; height: 7px; border-radius: 50%;
      background: #10B981; flex-shrink: 0;
      animation: avail-blink 1.8s ease-in-out infinite;
    }
    @keyframes avail-blink { 0%,100%{opacity:1} 50%{opacity:.3} }
    .avail-text { font-size: 15px; color: #374151; line-height: 1.4; }
    .avail-text strong { color: #059669; font-weight: 700; }

    /* ── Organizer CTA card ─────────────────────────────────────── */
    .org-cta-card {
      margin: 12px 20px 4px; padding: 18px 18px 16px;
      background: linear-gradient(135deg, rgba(249,115,22,.08), rgba(124,58,237,.06));
      border: 1.5px solid rgba(249,115,22,.25); border-radius: 18px;
    }
    .org-cta-eyebrow {
      display: flex; align-items: center; gap: 7px;
      font-size: 12px; font-weight: 900; letter-spacing: 0.16em;
      text-transform: uppercase; color: #F97316; margin-bottom: 8px;
    }
    .org-cta-pulse { width: 6px; height: 6px; border-radius: 50%; background: #F97316; animation: avail-blink 1.6s infinite; }
    .org-cta-title { font-size: 18px; font-weight: 800; color: #111827; margin: 0 0 4px; }
    .org-cta-sub { font-size: 15px; color: #6B7280; line-height: 1.45; margin: 0 0 16px; }
    .org-cta-btn {
      width: 100%; padding: 14px; border: none; border-radius: 12px; cursor: pointer;
      background: linear-gradient(135deg, #F97316, #EC4899); color: #fff;
      font-size: 15px; font-weight: 700; font-family: inherit;
      box-shadow: 0 6px 18px -4px rgba(249,115,22,.35); transition: filter .08s;
    }
    .org-cta-btn:active { filter: brightness(.95); }

    /* ══ CATCH THEM LIVE section ════════════════════════════════════ */
    .catch-live-section {
      margin: 22px 0 0;
      border-top: 1px solid #E5E7EB;
      background: #fff;
      padding-bottom: 28px;
    }
    .catch-live-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 22px 20px 16px; max-width: 640px; margin: 0 auto;
    }
    .catch-live-left { display: flex; align-items: center; gap: 10px; }
    .catch-live-ico { font-size: 22px; line-height: 1; }
    .catch-live-title {
      font-size: 18px; font-weight: 900; color: #111827; letter-spacing: -0.01em;
    }
    .catch-live-badge {
      font-size: 13px; font-weight: 700; padding: 3px 10px; border-radius: 20px;
      background: rgba(124,58,237,.1); color: #7C3AED; border: 1px solid rgba(124,58,237,.2);
    }

    /* ── Ticket-stub event cards ─────────────────────────────────── */
    .cal-events-list {
      padding: 0 20px; display: flex; flex-direction: column; gap: 10px;
      max-width: 640px; margin: 0 auto;
    }
    .cal-event {
      display: flex; align-items: stretch;
      background: #fff;
      border: 1.5px solid #E5E7EB; border-radius: 16px; overflow: hidden;
      box-shadow: 0 1px 6px rgba(0,0,0,.05);
    }
    .cal-date-block {
      flex-shrink: 0; width: 64px; text-align: center;
      padding: 14px 6px 12px;
      background: rgba(124,58,237,.08); border-right: 1px solid rgba(124,58,237,.12);
      display: flex; flex-direction: column; align-items: center; justify-content: center;
    }
    .cal-date-block--soon {
      background: rgba(245,158,11,.08); border-right-color: rgba(245,158,11,.15);
    }
    .cal-month {
      font-size: 12px; font-weight: 900; text-transform: uppercase;
      letter-spacing: 0.14em; color: #7C3AED; margin-bottom: 2px;
    }
    .cal-date-block--soon .cal-month { color: #F59E0B; }
    .cal-day { font-size: 28px; font-weight: 900; color: #111827; line-height: 1; }
    .cal-dow {
      font-size: 12px; font-weight: 700; color: #9CA3AF;
      text-transform: uppercase; letter-spacing: 0.08em; margin-top: 3px;
    }
    .cal-info {
      flex: 1; min-width: 0; padding: 12px 14px;
      display: flex; flex-direction: column; justify-content: center;
    }
    .cal-next-badge {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 12px; font-weight: 900; letter-spacing: 0.12em;
      text-transform: uppercase; color: #7C3AED; margin-bottom: 4px;
    }
    .cal-name-row { display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0 0 3px; }
    .cal-name { font-size: 18px; font-weight: 800; color: #111827; flex:1;min-width:0; }
    .cal-add-link { font-size:12px;font-weight:600;color:#7C3AED;text-decoration:none;white-space:nowrap;flex-shrink:0; }
    .cal-add-link:hover { text-decoration:underline; }
    .cal-loc  { font-size: 12px; color: #6B7280; }
    .cal-status {
      display: inline-flex; align-items: center; gap: 4px;
      font-size: 12px; font-weight: 700; padding: 3px 8px;
      border-radius: 20px; margin-top: 7px; align-self: flex-start;
    }
    .cal-status--open { background: rgba(16,185,129,.1); color: #059669; border: 1px solid rgba(16,185,129,.2); }
    .cal-status--soon { background: rgba(245,158,11,.1); color: #D97706; border: 1px solid rgba(245,158,11,.2); }
    .cal-status--full { background: #F3F4F6; color: #9CA3AF; border: 1px solid #E5E7EB; }

    /* ── No-events empty state ──────────────────────────────────── */
    .no-events-state {
      margin: 0 20px; padding: 32px 22px; text-align: center;
      max-width: 600px; margin: 0 auto;
      background: #fff;
      border: 1.5px dashed #D1D5DB; border-radius: 18px;
    }
    .no-events-ico { font-size: 40px; margin-bottom: 12px; line-height: 1; display: block; }
    .no-events-title {
      font-size: 15px; font-weight: 700; color: #374151; margin: 0 0 8px;
    }
    .no-events-sub {
      font-size: 15px; color: #6B7280; line-height: 1.55; margin: 0 0 20px;
    }
    .no-events-notify-btn {
      display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
      padding: 12px 22px; border: 1.5px solid rgba(124,58,237,.3); border-radius: 12px;
      background: rgba(124,58,237,.07); color: #7C3AED;
      font-size: 14px; font-weight: 700; font-family: inherit; transition: background .12s;
    }
    .no-events-notify-btn:active { background: rgba(124,58,237,.14); }

    /* ══ THE BOOTH specialty section ════════════════════════════════ */
    .booth-section {
      padding: 0 20px; max-width: 640px; margin: 24px auto 0;
    }
    .booth-section-label {
      display: flex; align-items: center; gap: 10px;
      font-size: 12px; font-weight: 900; letter-spacing: 0.18em;
      text-transform: uppercase; color: #9CA3AF; margin-bottom: 14px;
    }
    .booth-section-label::after { content: ''; flex: 1; height: 1px; background: #E5E7EB; }
    .booth-category-card {
      display: flex; align-items: center; gap: 14px; padding: 14px 16px; margin-bottom: 10px;
      background: #fff; border: 1.5px solid #E5E7EB; border-radius: 14px;
      box-shadow: 0 1px 4px rgba(0,0,0,.04);
    }
    .booth-cat-ico {
      font-size: 26px; width: 50px; height: 50px; flex-shrink: 0; border-radius: 14px;
      background: #F3F4F6; display: flex; align-items: center; justify-content: center;
    }
    .booth-cat-name { font-size: 18px; font-weight: 800; color: #111827; margin: 0 0 3px; }
    .booth-cat-sub { font-size: 15px; color: #6B7280; }
    .specialty-list { display: flex; flex-direction: column; }
    .specialty-item {
      display: flex; align-items: center; gap: 12px;
      padding: 10px 0; border-bottom: 1px solid #F3F4F6;
    }
    .specialty-item:last-child { border-bottom: none; }
    .specialty-ico {
      width: 34px; height: 34px; border-radius: 9px; flex-shrink: 0;
      background: #F9FAFB; border: 1px solid #E5E7EB;
      display: flex; align-items: center; justify-content: center; font-size: 16px;
    }
    .specialty-name { font-size: 18px; font-weight: 600; color: #374151; }

    /* ── Track record bar ───────────────────────────────────────── */
    .track-bar {
      display: flex; align-items: center; gap: 12px; padding: 15px 18px; margin-top: 12px;
      background: rgba(245,158,11,.05); border: 1px solid rgba(245,158,11,.18); border-radius: 14px;
    }
    .track-bar-ico { font-size: 22px; flex-shrink: 0; }
    .track-bar-text { flex: 1; }
    .track-bar-title { font-size: 18px; font-weight: 800; color: #111827; }
    .track-bar-sub { font-size: 15px; color: #6B7280; margin-top: 1px; }
    .track-bar-stars { color: #F59E0B; font-size: 13px; font-weight: 700; }

    /* ── Entrance animations ────────────────────────────────────── */
    /* Sections are fully visible by default; animation is progressive enhancement only */
    .svp-section-anim {
      opacity: 1; transform: translateY(0);
      transition: opacity 0.4s ease, transform 0.4s ease;
    }
    .svp-section-anim.animate-in {
      opacity: 0; transform: translateY(16px);
    }
    .svp-section-anim.animate-in.visible { opacity: 1; transform: translateY(0); }

    /* ── Sticky organizer bar ───────────────────────────────────── */
    .sticky-org-bar {
      display: none; position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
      padding: 12px 20px;
      padding-bottom: max(env(safe-area-inset-bottom, 0px), 12px);
      background: rgba(255,255,255,.96); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
      border-top: 1px solid #E5E7EB; align-items: center; gap: 14px;
      box-shadow: 0 -4px 24px rgba(0,0,0,.08);
    }
    .sticky-org-bar.show { display: flex; }
    .sticky-org-info { flex: 1; min-width: 0; }
    .sticky-org-name { font-size: 18px; font-weight: 800; color: #111827; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .sticky-org-sub { font-size: 15px; color: #9CA3AF; }
    .sticky-org-btn {
      flex-shrink: 0; padding: 11px 20px; border: none; border-radius: 10px; cursor: pointer;
      background: linear-gradient(135deg, #F97316, #EC4899); color: #fff;
      font-size: 14px; font-weight: 700; font-family: inherit; white-space: nowrap;
      box-shadow: 0 4px 12px rgba(249,115,22,.3);
    }

    /* ══ NEVER MISS THEM follow card ════════════════════════════════ */
    .follow-card {
      background: linear-gradient(145deg, #FAF5FF, #FDF4FF);
      border: 1.5px solid rgba(124,58,237,.18); border-radius: 22px;
      padding: 28px 22px; overflow: hidden; position: relative;
    }
    .follow-card::before {
      content: ''; position: absolute; top: -40px; right: -30px; width: 140px; height: 140px;
      border-radius: 50%; background: radial-gradient(circle, rgba(124,58,237,0.08) 0%, transparent 70%);
      pointer-events: none;
    }
    .follow-card-eyebrow {
      font-size: 12px; font-weight: 900; letter-spacing: 0.18em;
      text-transform: uppercase; color: #7C3AED; margin-bottom: 8px;
    }
    .follow-count-row { display: flex; align-items: center; margin-bottom: 16px; }
    .follow-avatar-ph {
      width: 28px; height: 28px; border-radius: 50%;
      border: 2px solid #FAF5FF; background: linear-gradient(135deg, #EDE9FE, #FAF5FF);
      display: flex; align-items: center; justify-content: center;
      font-size: 12px; margin-right: -7px; flex-shrink: 0;
    }
    .follow-count-text { margin-left: 18px; font-size: 13px; color: #6B7280; white-space: nowrap; }
    .follow-count-num { color: #374151; font-weight: 700; }
    .follow-count-bubble { display: none; }
    .follow-avatars { display: none; }

    /* ── Hero Carousel ──────────────────────────────────────────── */
    .hero-carousel {
      position: relative; width: 100%; overflow: hidden;
      height: 300px; background: linear-gradient(160deg, #7C3AED 0%, #C026D3 55%, #F97316 100%); flex-shrink: 0;
    }
    .hero-carousel-inner {
      display: flex; height: 100%;
      transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
    }
    .hero-carousel-slide { flex-shrink: 0; width: 100%; height: 100%; }
    .hero-carousel-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .hero-carousel-dots {
      position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);
      display: flex; gap: 5px; z-index: 2;
    }
    .hero-carousel-dot {
      height: 5px; width: 5px; border-radius: 3px; flex-shrink: 0;
      background: rgba(255,255,255,0.5); transition: width 0.3s, background 0.3s; cursor: pointer;
    }
    .hero-carousel-dot.active { width: 18px; background: #fff; }
    .hero-carousel-gradient {
      position: absolute; bottom: 0; left: 0; right: 0; height: 180px;
      background: linear-gradient(to top, rgba(242,240,250,1) 0%, rgba(242,240,250,0.4) 55%, transparent 100%);
      pointer-events: none; z-index: 1;
    }
    .hero-gradient-fallback {
      width: 100%; height: 100%;
      background: linear-gradient(160deg, #7C3AED 0%, #C026D3 55%, #F97316 100%);
      display: flex; align-items: center; justify-content: center;
    }
    .hero-gradient-ico { font-size: 60px; opacity: 0.4; }
    .seen-at-badge {
      position: absolute; top: 14px; left: 14px; z-index: 3;
      display: flex; align-items: center; gap: 6px;
      background: rgba(255,255,255,.85); backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border: 1px solid rgba(0,0,0,.08); border-radius: 20px;
      padding: 6px 14px; font-size: 12px; font-weight: 700; color: #374151;
    }

    /* ── Hero photos pill — "📸 N photos" in bottom-right corner ── */
    .svp-hero-photos-pill {
      position: absolute; bottom: 14px; right: 14px; z-index: 4;
      background: rgba(0,0,0,.55); backdrop-filter: blur(10px);
      -webkit-backdrop-filter: blur(10px);
      border: none; color: #fff; font-size: 12px; font-weight: 700;
      padding: 6px 14px; border-radius: 20px; cursor: pointer;
      display: flex; align-items: center; gap: 5px;
      transition: background .15s; letter-spacing: .01em;
    }
    .svp-hero-photos-pill:active { background: rgba(0,0,0,.78); }

    /* ── Featured hero photo — full-width cinematic opener ── */
    .svp-photo-featured {
      position: relative; overflow: hidden; cursor: pointer;
      background: #111; margin: 0; display: block;
    }
    .svp-photo-featured img {
      width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block;
      transition: transform .3s ease;
    }
    .svp-photo-featured:active img { transform: scale(1.02); }
    .svp-photo-featured-badge {
      position: absolute; bottom: 12px; right: 12px;
      background: rgba(0,0,0,.6); backdrop-filter: blur(8px);
      -webkit-backdrop-filter: blur(8px);
      color: #fff; font-size: 12px; font-weight: 700;
      padding: 5px 13px; border-radius: 16px;
      pointer-events: none; letter-spacing: .01em;
    }

    /* ── Pair row — two portrait shots side-by-side ── */
    .svp-photo-pair {
      display: flex; gap: 3px; margin: 3px 0 0;
    }
    .svp-photo-pair .svp-showcase-cell {
      flex: 1; margin-bottom: 0; border-radius: 0;
    }
    .svp-photo-pair .svp-showcase-cell img {
      width: 100%; aspect-ratio: 1/1; object-fit: cover; object-position: center top; display: block;
    }

    /* ── Identity block ─────────────────────────────────────────── */
    .identity-block { padding: 0 20px; max-width: 640px; margin: 0 auto; }
    .identity-top {
      display: flex; align-items: flex-end; gap: 14px;
      margin-top: -28px; margin-bottom: 6px; position: relative; z-index: 3;
    }
    .identity-avatar-img {
      width: 72px; height: 72px; border-radius: 18px; object-fit: cover;
      flex-shrink: 0; border: 3px solid #F2F0FA; background: #F3F4F6;
    }
    .identity-avatar-ph {
      width: 72px; height: 72px; border-radius: 18px; flex-shrink: 0;
      border: 3px solid #F2F0FA;
      background: linear-gradient(135deg, #EDE9FE, #FAF5FF);
      display: flex; align-items: center; justify-content: center; font-size: 26px;
    }
    .identity-name-wrap { padding-bottom: 4px; min-width: 0; }
    .identity-name {
      font-size: 22px; font-weight: 900; color: #111827;
      letter-spacing: -0.02em; margin: 0 0 2px; line-height: 1.15; word-break: break-word;
    }
    .identity-sub { font-size: 15px; color: #6B7280; margin: 0; }
    .identity-sub strong { color: #374151; font-weight: 700; }
    .identity-location {
      font-size: 12.5px; color: #9CA3AF; margin: 4px 0 0;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
      max-width: 100%;
    }

    /* ── Chip row ───────────────────────────────────────────────── */
    .chip-row {
      display: flex; gap: 6px; overflow-x: auto;
      padding: 12px 20px 6px; max-width: 640px; margin: 0 auto;
      scrollbar-width: none; -ms-overflow-style: none;
      -webkit-mask-image: linear-gradient(to right, #000 78%, transparent 100%);
      mask-image: linear-gradient(to right, #000 78%, transparent 100%);
    }
    .chip-row::-webkit-scrollbar { display: none; }
    .chip {
      font-size: 13px; font-weight: 700; padding: 5px 12px;
      border-radius: 20px; white-space: nowrap; flex-shrink: 0;
      display: inline-flex; align-items: center; gap: 4px;
    }
    .chip--trust {
      background: rgba(16,185,129,.1); color: #059669;
      border: 1px solid rgba(16,185,129,.2);
    }
    .chip--cat {
      background: rgba(124,58,237,.1); color: #7C3AED;
      border: 1px solid rgba(124,58,237,.2);
    }
    .chip--ig {
      background: rgba(236,72,153,.08); color: #BE185D;
      border: 1px solid rgba(236,72,153,.15); text-decoration: none;
    }
    .chip--phone {
      background: rgba(16,185,129,.08); color: #059669;
      border: 1px solid rgba(16,185,129,.2);
    }
    .chip--web {
      background: rgba(14,165,233,.08); color: #0369A1;
      border: 1px solid rgba(14,165,233,.18); text-decoration: none;
    }
    .chip--web:hover { text-decoration: underline; }

    /* ── Action row ─────────────────────────────────────────────── */
    .action-row {
      display: flex; gap: 9px; padding: 10px 20px 4px;
      max-width: 640px; margin: 0 auto;
    }
    .action-btn {
      flex: 1; padding: 13px 10px; border-radius: 13px;
      font-size: 14.5px; font-weight: 700; border: none; cursor: pointer;
      font-family: inherit; transition: filter 0.12s, transform 0.08s;
      display: flex; align-items: center; justify-content: center; gap: 5px;
    }
    .action-btn:active { transform: scale(0.97); }
    .action-btn--follow {
      background: var(--purple, #7C3AED); color: #fff;
      box-shadow: 0 6px 16px -4px rgba(124,58,237,.4);
    }
    .action-btn--invite {
      background: linear-gradient(135deg, #F97316, #EC4899); color: #fff;
      box-shadow: 0 6px 16px -4px rgba(249,115,22,.38);
    }
    .action-btn--share {
      background: #F3F4F6; color: #6B7280;
      border: 1.5px solid #E5E7EB;
      flex: 0 0 auto; padding: 13px 18px;
    }

    /* ── Events: 2-up grid ──────────────────────────────────────── */
    .section-header {
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 20px 10px;
    }
    .section-header .section-label { padding: 0; margin: 0; }
    .events-grid {
      display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
      padding: 0 20px; max-width: 640px; margin: 0 auto;
    }
    .event-card {
      border-radius: 14px; overflow: hidden;
      background: #fff; border: 1.5px solid #E5E7EB;
      box-shadow: 0 1px 6px rgba(0,0,0,.05);
    }
    .event-card-img-wrap {
      aspect-ratio: 4/3; overflow: hidden;
      background: linear-gradient(135deg, #F3F4F6, #E5E7EB);
      display: flex; align-items: center; justify-content: center; font-size: 22px;
    }
    .event-card-img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .event-card-body { padding: 10px 11px 12px; }
    .event-card-date {
      font-size: 12px; font-weight: 700; color: #7C3AED;
      text-transform: uppercase; letter-spacing: 0.07em; margin-bottom: 3px;
    }
    .event-card-name { font-size: 18px; font-weight: 700; color: #111827; line-height: 1.3; }
    .event-card-loc { font-size: 12px; color: #6B7280; margin-top: 3px; }
    .events-overflow { margin-top: 10px; }

    /* ── Past events: thumbnail rows ───────────────────────────── */
    .past-row {
      display: flex; align-items: center; gap: 12px; padding: 10px 0;
      border-bottom: 1px solid #F3F4F6;
    }
    .past-row:last-child { border-bottom: none; }
    .past-row-thumb {
      width: 46px; height: 46px; border-radius: 10px;
      background: #F3F4F6;
      display: flex; align-items: center; justify-content: center;
      font-size: 20px; flex-shrink: 0; overflow: hidden;
    }
    .past-row-thumb img { width: 100%; height: 100%; object-fit: cover; }
    .past-row-info { flex: 1; min-width: 0; }
    .past-row-name {
      font-size: 18px; font-weight: 700; color: #111827;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .past-row-meta { font-size: 15px; color: #6B7280; margin-top: 2px; }
    .past-count-chip {
      font-size: 13px; font-weight: 800; color: #7C3AED;
      background: rgba(124,58,237,.08); border: 1px solid rgba(124,58,237,.18);
      border-radius: 20px; padding: 2px 10px; flex-shrink: 0;
    }

    /* ── FEATURED REVIEW STRIP ── */
    #featured-review-strip {
      padding: 0 20px 8px; max-width: 640px; margin: 0 auto; width: 100%; box-sizing: border-box;
    }
    .fr-inner {
      background: #FFFBEB; border: 1.5px solid #FDE68A; border-radius: 16px; padding: 16px 18px 14px;
    }
    .fr-top-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
    .fr-stars { display:flex; gap:2px; }
    .fr-star { font-size:15px; color:#F59E0B; }
    .fr-view-all { font-size:12px; font-weight:600; color:#7C3AED; text-decoration:none; }
    .fr-view-all:hover { text-decoration:underline; }
    .fr-quote { font-size:15px; font-weight:500; color:#1F2937; line-height:1.55; margin:0 0 12px; font-style:italic; }
    .fr-reviewer { display:flex; align-items:center; gap:8px; }
    .fr-avi {
      width:28px; height:28px; border-radius:50%; background:#D97706; color:#fff;
      display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:800; flex-shrink:0;
    }
    .fr-reviewer-info { display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
    .fr-name { font-size:18px; font-weight:700; color:#374151; }
    .fr-badge { font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:1px 6px; border-radius:8px; }
    .fr-badge--org { background:rgba(16,185,129,.12); color:#059669; }
    .fr-badge--att { background:#F3F4F6; color:#9CA3AF; }
    .fr-date { font-size:12px; color:#9CA3AF; }

    /* ── PRODUCT ROWS (Figma-style editorial list) ── */
    .fsvp-prod-row {
      display:flex; align-items:center; gap:14px; padding:12px 20px;
      border-bottom:1px solid #F3F4F6;
    }
    #fsvp-products-list .fsvp-prod-row:last-child { border-bottom:none; }
    .fsvp-prod-thumb {
      width:64px; height:64px; border-radius:12px; flex-shrink:0;
      background:#F3F4F6; overflow:hidden;
      display:flex; align-items:center; justify-content:center; font-size:22px;
    }
    .fsvp-prod-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
    .fsvp-prod-info { flex:1; min-width:0; }
    .fsvp-prod-name {
      font-size:18px; font-weight:700; color:#111827; margin:0 0 3px;
      white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }
    .fsvp-prod-desc {
      font-size:15px; color:#6B7280; margin:0;
      display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    }
    .fsvp-prod-price { font-size:15px; font-weight:700; color:#7C3AED; white-space:nowrap; flex-shrink:0; }

    /* ── Featured Items — horizontal card strip ── */
    .fsvp-prod-strip {
      display: flex; gap: 12px; overflow-x: auto;
      padding: 0 20px 4px; scroll-snap-type: x mandatory;
      -webkit-overflow-scrolling: touch; scrollbar-width: none;
    }
    .fsvp-prod-strip::-webkit-scrollbar { display: none; }
    .fsvp-prod-card {
      flex: 0 0 150px; scroll-snap-align: start;
      border-radius: 14px; overflow: hidden;
      border: 1.5px solid #F3F4F6; background: #fff;
      cursor: pointer;
      transition: transform .15s, box-shadow .15s;
      -webkit-tap-highlight-color: transparent;
    }
    .fsvp-prod-card:active { transform: scale(.97); }
    .fsvp-prod-card-img {
      width: 150px; height: 150px; object-fit: cover; display: block;
    }
    .fsvp-prod-card-img-ph {
      width: 150px; height: 150px;
      display: flex; align-items: center; justify-content: center;
      font-size: 38px; background: #F9FAFB;
    }
    .fsvp-prod-card-body { padding: 10px 12px 13px; }
    .fsvp-prod-card-name {
      font-size: 18px; font-weight: 700; color: #111827;
      margin: 0 0 5px; line-height: 1.35;
      display: -webkit-box; -webkit-line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
    }
    .fsvp-prod-card-desc {
      font-size: 15px; color: #6B7280; margin: 0 0 6px;
      display: -webkit-box; -webkit-line-clamp: 2;
      -webkit-box-orient: vertical; overflow: hidden;
    }
    .fsvp-prod-card-price {
      font-size: 18px; font-weight: 800; color: #7C3AED;
    }

    /* ── EVENT PHOTO CARDS ── */
    #events-grid.ev-photo-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:0 20px; }
    .ev-photo-card { border-radius:14px; overflow:hidden; background:#1F2937; display:block; text-decoration:none; }
    button.ev-photo-card {
      appearance:none; -webkit-appearance:none; width:100%; padding:0; border:0;
      color:inherit; font:inherit; text-align:left; cursor:pointer;
    }
    button.ev-photo-card:focus-visible {
      outline:3px solid #7C3AED; outline-offset:-3px; position:relative; z-index:1;
    }
    .ev-photo-card-shell {
      display:block; overflow:hidden; border-radius:14px; background:#fff;
    }
    .ev-photo-card-actions {
      padding:0 11px 12px; background:#fff; overflow:hidden;
    }
    .ev-photo-wrap { aspect-ratio:3/4; position:relative; overflow:hidden; }
    .ev-photo-wrap img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .3s; }
    .ev-photo-card:hover .ev-photo-wrap img { transform:scale(1.04); }
    .ev-sample-label {
      display:inline-flex; align-items:center; gap:4px; margin-bottom:6px;
      color:#6D28D9; font-size:11px; font-weight:800; letter-spacing:.04em;
      text-transform:uppercase;
    }
    .ev-photo-gradient {
      position:absolute; inset:0;
      background:linear-gradient(to top, rgba(0,0,0,.65) 35%, transparent 100%);
    }
    .ev-date-chip {
      position:absolute; bottom:9px; left:9px;
      background:rgba(0,0,0,.52); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
      border-radius:8px; padding:4px 8px; color:#fff; line-height:1.2;
    }
    .ev-date-chip-month { display:block; font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; opacity:.85; }
    .ev-date-chip-day   { display:block; font-size:17px; font-weight:900; }
    .ev-status-dot {
      position:absolute; top:9px; right:9px; width:8px; height:8px; border-radius:50%;
      background:#10B981; box-shadow:0 0 0 2px rgba(255,255,255,.4);
    }
    .ev-status-dot--soon { background:#F59E0B; }
    .ev-status-dot--full { background:#EF4444; }
    .ev-card-footer { padding:10px 11px 12px; background:#fff; overflow:hidden; }
    .ev-card-name { font-size:18px; font-weight:700; color:#111827; line-height:1.3; margin:0 0 2px; }
    .ev-card-loc  { font-size:12px; color:#6B7280; margin:0; }
    .ev-card-save { float:right; font-size:12px; font-weight:600; color:#7C3AED; text-decoration:none; margin:1px 0 0 4px; }
    .ev-card-save:hover { text-decoration:underline; }
    /* ── Org-follow row on event cards ── */
    .ev-org-row {
      display: flex; align-items: center; justify-content: space-between;
      margin-top: 5px; gap: 6px;
    }
    .ev-org-name {
      font-size: 12px; color: #9CA3AF; flex: 1; min-width: 0;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .ev-org-follow-btn {
      font-size: 12px; font-weight: 700; letter-spacing: 0.04em;
      color: #7C3AED; background: rgba(124,58,237,.08);
      border: 1px solid rgba(124,58,237,.2); border-radius: 6px;
      padding: 3px 8px; cursor: pointer; flex-shrink: 0;
      white-space: nowrap; transition: background .15s;
    }
    .ev-org-follow-btn:hover { background: rgba(124,58,237,.15); }
    .ev-org-follow-btn--done {
      color: #059669; background: rgba(5,150,105,.08);
      border-color: rgba(5,150,105,.2); cursor: default;
    }
    /* ── Organizer follow mini sheet ── */
    #svp-org-follow-overlay {
      display: none; position: fixed; inset: 0; z-index: 500;
      background: rgba(0,0,0,.4); align-items: flex-end;
    }
    #svp-org-follow-overlay.svp-ofo--open { display: flex; }
    .svp-ofo-sheet {
      background: #fff; border-radius: 20px 20px 0 0;
      padding: 24px 20px 40px; width: 100%; max-width: 560px; margin: 0 auto;
      box-shadow: 0 -4px 24px rgba(0,0,0,.12);
    }
    .svp-ofo-handle {
      width: 36px; height: 4px; background: #E5E7EB;
      border-radius: 2px; margin: 0 auto 18px;
    }
    .svp-ofo-title {
      font-size: 18px; font-weight: 800; color: #111827; margin: 0 0 4px;
    }
    .svp-ofo-sub {
      font-size: 15px; color: #6B7280; margin: 0 0 18px; line-height: 1.5;
    }
    .svp-ofo-toggle {
      display: flex; background: #F3F4F6; border-radius: 10px;
      padding: 3px; margin-bottom: 14px;
    }
    .svp-ofo-toggle-btn {
      flex: 1; padding: 9px; font-size: 13px; font-weight: 700;
      border: 0; border-radius: 8px; cursor: pointer; color: #6B7280;
      background: transparent; transition: background .15s, color .15s;
    }
    .svp-ofo-toggle-btn.active { background: rgba(124,58,237,.12); color: #7C3AED; }
    .svp-ofo-input {
      width: 100%; padding: 13px 15px; font-size: 16px;
      border: 1.5px solid #E5E7EB; border-radius: 12px;
      color: #111827; outline: none; box-sizing: border-box; margin-bottom: 12px;
    }
    .svp-ofo-input:focus { border-color: #7C3AED; }
    .svp-ofo-input-label {
      display:block; margin:0 0 6px; font-size:13px; font-weight:700; color:#374151;
    }
    .svp-ofo-submit {
      width: 100%; padding: 14px; border: 0; border-radius: 12px;
      background: var(--purple, #7C3AED);
      color: #fff; font-size: 15px; font-weight: 700; cursor: pointer;
      box-shadow: 0 6px 18px rgba(124,58,237,.25);
    }
    .svp-ofo-submit:disabled { background: #E5E7EB; color: #9CA3AF; cursor: not-allowed; box-shadow: none; }
    .svp-ofo-err { font-size: 12.5px; color: #F43F5E; margin-top: 10px; min-height: 16px; }
    .svp-ofo-success { text-align: center; padding: 12px 0 8px; }
    .svp-ofo-success-ico   { font-size: 36px; margin-bottom: 8px; }
    .svp-ofo-success-title { font-size: 18px; font-weight: 800; color: #7C3AED; margin: 0 0 4px; }
    .svp-ofo-success-body  { font-size: 15px; color: #6B7280; margin: 0; line-height: 1.5; }

    /* ── REVIEWS SECTION ── */
    .svp-rv-card { padding:16px 20px; border-bottom:1px solid #F3F4F6; }
    #reviews-list .svp-rv-card:last-child { border-bottom:none; }
    .svp-rv-stars { display:flex; gap:2px; font-size:13px; color:#F59E0B; margin-bottom:8px; }
    .svp-rv-text  { font-size:15px; color:#374151; line-height:1.55; margin:0 0 10px; font-style:italic; }
    .svp-rv-meta  { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
    .svp-rv-avi   {
      width:24px; height:24px; border-radius:50%;
      background:#7C3AED; color:#fff;
      display:flex; align-items:center; justify-content:center;
      font-size:12px; font-weight:800; flex-shrink:0;
    }
    .svp-rv-name        { font-size:18px; font-weight:700; color:#374151; }
    .svp-rv-badge       { font-size:13px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:1px 6px; border-radius:8px; }
    .svp-rv-badge--org  { background:rgba(16,185,129,.12); color:#059669; }
    .svp-rv-badge--att  { background:#F3F4F6; color:#9CA3AF; }
    .svp-rv-date        { font-size:12px; color:#9CA3AF; }
    .fsvp-reviews-agg   { font-size:12px; color:#9CA3AF; font-weight:600; }

    /* ── PRODUCT LIGHTBOX ── */
    #prod-lightbox {
      position:fixed; inset:0; z-index:9999;
      display:flex; align-items:center; justify-content:center;
    }
    #prod-lightbox-bg {
      position:absolute; inset:0;
      background:rgba(0,0,0,.88); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    }
    #prod-lightbox-img {
      position:relative; z-index:1; display:block;
      max-width:90vw; max-height:85vh;
      border-radius:14px; box-shadow:0 24px 64px rgba(0,0,0,.5);
      object-fit:contain;
    }
    #prod-lightbox-close {
      position:absolute; top:16px; right:16px; z-index:2;
      background:rgba(255,255,255,.15); border:none; color:#fff;
      width:38px; height:38px; border-radius:50%;
      font-size:16px; cursor:pointer; line-height:1;
      display:flex; align-items:center; justify-content:center;
    }
    #prod-lightbox-close:hover { background:rgba(255,255,255,.28); }
    .fsvp-prod-thumb { cursor:zoom-in; }

    /* ── Not Found ───────────────────────────────────────────── */
    .not-found {
      display: flex; flex-direction: column; align-items: center;
      justify-content: center; min-height: 70vh;
      text-align: center; padding: 40px 24px;
    }
    .nf-ico   { font-size: 56px; line-height: 1; margin-bottom: 16px; }
    .nf-title { font-size: 22px; font-weight: 800; color: #111827; margin: 0 0 10px; }
    .nf-body  { font-size: 15px; color: #6B7280; line-height: 1.6; margin: 0 0 24px; }
    .nf-link  {
      padding: 13px 28px; border-radius: 12px;
      background: var(--purple, #7C3AED);
      color: #fff; font-size: 15px; font-weight: 700; text-decoration: none;
      box-shadow: 0 6px 18px rgba(124,58,237,.28);
    }

    /* ── Footer ──────────────────────────────────────────────── */
    /* ── Claim banner ──────────────────────────────────────── */
    .claim-banner {
      position: fixed; bottom: 0; left: 0; right: 0;
      background: rgba(255,255,255,.96);
      border-top: 1px solid #E5E7EB;
      display: flex; align-items: center; justify-content: space-between;
      padding: 14px 20px 20px; z-index: 900; gap: 12px;
      backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
      box-shadow: 0 -4px 24px rgba(0,0,0,.08);
    }
    .claim-banner-text { color: #6B7280; font-size: 15px; margin: 0; line-height: 1.4; }
    .claim-banner-btn {
      background: var(--purple, #7C3AED); color: #fff;
      font-size: 13px; font-weight: 800;
      border: none; border-radius: 20px; padding: 9px 20px; cursor: pointer;
      white-space: nowrap; flex-shrink: 0; letter-spacing: 0.02em;
      transition: filter 0.12s; box-shadow: 0 4px 12px rgba(124,58,237,.3);
    }
    .claim-banner-btn:hover { filter: brightness(1.08); }

    /* ── Claim overlay + modal ──────────────────────────────── */
    .claim-overlay {
      position: fixed; inset: 0; background: rgba(0,0,0,0.4); z-index: 1000;
    }
    .claim-modal {
      position: fixed; left: 50%; transform: translateX(-50%);
      bottom: 0; width: 100%; max-width: 520px;
      background: #fff; border-radius: 24px 24px 0 0;
      padding: 28px 24px 44px; z-index: 1001;
      border-top: 1px solid #F3F4F6;
      box-shadow: 0 -20px 60px rgba(0,0,0,.15);
    }
    .claim-drag { width: 36px; height: 4px; background: #E5E7EB; border-radius: 2px; margin: 0 auto 20px; }
    .claim-modal-title { font-size: 20px; font-weight: 800; color: #111827; margin: 0 0 8px; }
    .claim-modal-sub { font-size: 15px; color: #6B7280; margin: 0 0 22px; line-height: 1.55; }
    .claim-input {
      display: block; width: 100%; box-sizing: border-box;
      background: #F9FAFB; border: 1.5px solid #E5E7EB;
      border-radius: 12px; padding: 14px 16px; color: #111827; font-size: 16px;
      margin-bottom: 12px; outline: none; transition: border-color 0.14s;
      font-family: inherit;
    }
    .claim-input:focus { border-color: #7C3AED; background: #fff; }
    .claim-input--otp {
      text-align: center; letter-spacing: 8px; font-size: 24px;
      font-weight: 700; padding: 16px;
    }
    .claim-input--ta { resize: vertical; min-height: 80px; }
    .edit-label {
      display: block; font-size: 12px; font-weight: 700; letter-spacing: 0.08em;
      text-transform: uppercase; color: #6B7280; margin-bottom: 16px;
    }
    .edit-label .claim-input { margin-top: 6px; }
    .ig-preview-row { display:flex; align-items:center; gap:10px; margin-top:8px; min-height:36px; }
    .ig-preview-avatar { width:38px; height:38px; border-radius:50%; object-fit:cover; border:2px solid #F3F4F6; display:none; flex-shrink:0; }
    .ig-preview-status { font-size:12px; color:#6B7280; line-height:1.3; }
    .ig-preview-status.ok  { color:#059669; }
    .ig-preview-status.err { color:#F43F5E; }
    .claim-submit-btn {
      display: block; width: 100%;
      background: var(--purple, #7C3AED);
      color: #fff; font-weight: 800; font-size: 15px;
      border: none; border-radius: 14px; padding: 16px;
      cursor: pointer; margin-bottom: 10px; transition: filter 0.12s;
      letter-spacing: 0.02em; box-shadow: 0 6px 16px rgba(124,58,237,.3);
    }
    .claim-submit-btn:hover:not(:disabled) { filter: brightness(1.07); }
    .claim-submit-btn:disabled { background: #E5E7EB; color: #9CA3AF; cursor: not-allowed; box-shadow: none; }
    .claim-text-btn {
      display: block; width: 100%; background: none; border: none;
      color: #6B7280; font-size: 13px; padding: 10px; cursor: pointer;
      text-align: center; font-family: inherit;
    }
    .claim-text-btn:hover { color: #374151; }
    .claim-error {
      color: #F43F5E; font-size: 13px; margin: -6px 0 12px; padding: 9px 12px;
      background: rgba(244,63,94,.06); border-radius: 8px;
      border: 1px solid rgba(244,63,94,.18);
    }
    /* ── Social onboarding steps ─────────────────────────────── */
    .soc-step-indicator {
      font-size: 12px; font-weight: 800; letter-spacing: .1em;
      text-transform: uppercase; color: #9CA3AF; margin-bottom: 16px;
    }
    .soc-photo-strip {
      display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px;
      scrollbar-width: none; -ms-overflow-style: none;
    }
    .soc-photo-strip::-webkit-scrollbar { display: none; }
    .soc-photo-strip img {
      width: 76px; height: 76px; border-radius: 10px;
      object-fit: cover; flex-shrink: 0; border: 1.5px solid #E5E7EB;
    }
    .soc-ig-status-msg {
      font-size: 13px; color: #059669; margin: 8px 0 0; font-weight: 600;
    }
    .svp-footer {
      text-align: center; padding: 0 20px max(60px, env(safe-area-inset-bottom));
      font-size: 12px; color: #9CA3AF;
    }
    .svp-footer a { color: #6B7280; text-decoration: none; }

    /* ══ SHOP PREVIEW ═══════════════════════════════════════════ */
    .shop-section { padding: 0 20px 28px; max-width: 640px; margin: 0 auto; }
    .shop-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
    .shop-eyebrow { font-size:13px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:#9CA3AF; }
    .shop-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
    .shop-card {
      background:#fff; border:1.5px solid #E5E7EB;
      border-radius:14px; overflow:hidden; transition:border-color 0.15s;
      box-shadow: 0 1px 6px rgba(0,0,0,.05);
    }
    .shop-card:hover { border-color:#C4B5FD; }
    .shop-card-photo {
      width:100%; aspect-ratio:1/1; object-fit:cover;
      background:#F3F4F6;
    }
    .shop-card-ph {
      width:100%; aspect-ratio:1/1; background:#F9FAFB;
      display:flex; align-items:center; justify-content:center;
      font-size:36px; color:#D1D5DB;
    }
    .shop-card-body { padding:10px 12px 14px; }
    .shop-card-name { font-size:18px; font-weight:700; color:#111827; margin:0 0 4px; }
    .shop-card-price { font-size:14px; font-weight:800; color:#7C3AED; margin:0; }
    .shop-card-desc { font-size:15px; color:#6B7280; margin:5px 0 0; line-height:1.4; }
    /* edit products in claim modal */
    .edit-products-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
    .edit-product-card { background:#F9FAFB; border:1.5px solid #E5E7EB; border-radius:10px; padding:10px 12px; position:relative; }
    .edit-product-label { font-size:12px; font-weight:700; letter-spacing:0.07em; text-transform:uppercase; color:#9CA3AF; margin-bottom:6px; }
    .edit-product-card .claim-input { margin-bottom:6px; font-size:16px; padding:9px 12px; }
    .edit-product-card .claim-input:last-child { margin-bottom:0; }

    /* ══ RATINGS & REVIEWS ══════════════════════════════════════ */
    .ratings-section { padding: 0 20px 28px; max-width: 640px; margin: 0 auto; }
    .ratings-summary-row { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
    .ratings-big-num { font-size:48px; font-weight:900; color:#111827; line-height:1; }
    .ratings-right { flex:1; }
    .ratings-stars-row { display:flex; gap:3px; margin-bottom:6px; }
    .rating-star { font-size:20px; color:#F59E0B; }
    .rating-star.empty { color:#E5E7EB; }
    .ratings-total { font-size:12px; color:#9CA3AF; }
    .review-list { display:flex; flex-direction:column; gap:10px; }
    .review-card {
      background:#fff; border:1.5px solid #E5E7EB;
      border-radius:12px; padding:13px 15px;
    }
    .review-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:5px; }
    .review-stars { display:flex; gap:2px; }
    .review-star { font-size:13px; color:#F59E0B; }
    .review-star.empty { color:#E5E7EB; }
    .review-meta { display:flex; align-items:center; gap:6px; }
    .review-badge {
      font-size:12px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase;
      padding:2px 7px; border-radius:10px;
    }
    .review-badge--organizer { background:rgba(16,185,129,.1); color:#059669; }
    .review-badge--public { background:#F3F4F6; color:#9CA3AF; }
    .review-date { font-size:12px; color:#9CA3AF; }
    .review-text { font-size:15px; color:#374151; line-height:1.5; margin:0; }
    .rate-cta-btn {
      display:block; width:100%;
      background:#F9FAFB; border:1.5px solid #E5E7EB;
      border-radius:12px; padding:13px; color:#6B7280;
      font-size:13px; font-weight:600; cursor:pointer; margin-top:12px;
      font-family:inherit; transition:border-color 0.14s, color 0.14s;
    }
    .rate-cta-btn:hover { border-color:#C4B5FD; color:#7C3AED; }
    /* Rate modal */
    .rate-overlay {
      position:fixed; inset:0; background:rgba(0,0,0,0.4); z-index:1000;
    }
    .rate-modal {
      position:fixed; left:50%; transform:translateX(-50%);
      bottom:0; width:100%; max-width:520px;
      background:#fff; border-radius:24px 24px 0 0;
      padding:28px 24px 44px; z-index:1001;
      border-top:1px solid #F3F4F6;
      box-shadow:0 -20px 60px rgba(0,0,0,.15);
    }
    .rate-drag { width:36px; height:4px; background:#E5E7EB; border-radius:2px; margin:0 auto 20px; }
    .rate-title { font-size:20px; font-weight:800; color:#111827; margin:0 0 6px; }
    .rate-sub { font-size:15px; color:#6B7280; margin:0 0 20px; line-height:1.5; }
    .rate-stars-row { display:flex; gap:10px; justify-content:center; margin-bottom:18px; }
    .rate-star-btn {
      font-size:36px; color:#E5E7EB; cursor:pointer;
      transition:color 0.1s, transform 0.1s; line-height:1;
      border:none; background:none; padding:2px;
    }
    .rate-star-btn.active { color:#F59E0B; transform:scale(1.12); }
    .rate-text { display:block; width:100%; box-sizing:border-box; background:#F9FAFB; border:1.5px solid #E5E7EB; border-radius:12px; padding:13px 15px; color:#111827; font-size:16px; font-family:inherit; resize:vertical; min-height:72px; outline:none; transition:border-color 0.14s; margin-bottom:14px; }
    .rate-text:focus { border-color:#7C3AED; background:#fff; }
    .rate-submit { display:block; width:100%; background:var(--purple, #7C3AED); color:#fff; font-weight:800; font-size:15px; border:none; border-radius:14px; padding:15px; cursor:pointer; font-family:inherit; margin-bottom:8px; box-shadow:0 4px 12px rgba(124,58,237,.3); }
    .rate-submit:disabled { background:#E5E7EB; color:#9CA3AF; cursor:not-allowed; box-shadow:none; }
    .rate-cancel { display:block; width:100%; background:none; border:none; color:#6B7280; font-size:13px; padding:10px; cursor:pointer; font-family:inherit; }
    .rate-err { color:#F43F5E; font-size:13px; margin:0 0 10px; padding:9px 12px; background:rgba(244,63,94,.06); border-radius:8px; border:1px solid rgba(244,63,94,.18); }

    /* ══ SIMILAR VENDORS ════════════════════════════════════════ */
    .similar-section { padding: 0 20px 28px; max-width: 640px; margin: 0 auto; }
    .similar-eyebrow { font-size:13px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:#9CA3AF; margin-bottom:14px; }
    .similar-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
    .similar-card {
      display:flex; flex-direction:column; align-items:center; text-align:center;
      background:#fff; border:1.5px solid #E5E7EB;
      border-radius:14px; padding:16px 12px; cursor:pointer;
      text-decoration:none; transition:border-color 0.14s;
      box-shadow:0 1px 4px rgba(0,0,0,.04);
    }
    .similar-card:hover { border-color:#C4B5FD; }
    .similar-avatar {
      width:52px; height:52px; border-radius:50%; object-fit:cover;
      background:#F3F4F6; margin-bottom:9px;
      font-size:22px; display:flex; align-items:center; justify-content:center;
    }
    .similar-name { font-size:18px; font-weight:700; color:#111827; margin:0 0 3px; }
    .similar-cat { font-size:12px; color:#6B7280; margin:0; }
    /* ══ QUICK PAY — vendor-only, always hidden until auth ═══ */
    .pay-section { padding: 0 20px 28px; max-width: 640px; margin: 0 auto; display: none !important; }

    /* ── Section TOC FAB ──────────────────────────────────── */
    #svp-toc-fab {
      position: fixed; bottom: 92px; left: 50%; transform: translateX(-50%);
      background: rgba(17,24,39,0.88); color: #fff;
      border-radius: 100px; padding: 11px 20px 11px 16px;
      display: flex; align-items: center; gap: 9px;
      font-size: 14px; font-weight: 700; letter-spacing: 0.01em;
      box-shadow: 0 4px 24px rgba(0,0,0,0.30), 0 1px 4px rgba(0,0,0,0.18);
      cursor: pointer; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
      z-index: 180; user-select: none; border: none; font-family: inherit;
      white-space: nowrap; transition: opacity 0.2s, box-shadow 0.2s;
    }
    #svp-toc-fab:active { opacity: 0.85; }
    #svp-toc-fab .toc-fab-icon { font-size: 15px; opacity: 0.85; }
    #svp-toc-fab .toc-fab-label { flex: 1; min-width: 0; }
    #svp-toc-fab .toc-fab-cur { font-size: 12px; color: rgba(255,255,255,0.6); font-weight: 500; display: block; }
    #svp-toc-fab .toc-fab-menu { font-size: 15px; opacity: 0.55; margin-left: 4px; }
    @keyframes toc-fab-pop { from { opacity:0; transform:translateX(-50%) translateY(14px) scale(0.88); } to { opacity:1; transform:translateX(-50%) translateY(0) scale(1); } }
    #svp-toc-fab.toc-entering { animation: toc-fab-pop 0.32s cubic-bezier(0.34,1.56,0.64,1) forwards; }

    /* TOC Sheet */
    #svp-toc-overlay { position:fixed;inset:0;background:rgba(0,0,0,0.42);z-index:350;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px); }
    #svp-toc-sheet {
      position:fixed;bottom:0;left:0;right:0;max-width:520px;margin:0 auto;
      background:#fff;border-radius:24px 24px 0 0;z-index:351;
      overflow:hidden;
      box-shadow:0 -8px 40px rgba(0,0,0,0.16);
      transform:translateY(100%);transition:transform 0.32s cubic-bezier(0.32,0.72,0,1);
      max-height:88dvh;display:flex;flex-direction:column;
    }
    #svp-toc-sheet.toc-open { transform:translateY(0); }
    .toc-sheet-handle { width:40px;height:4px;background:#E5E7EB;border-radius:2px;margin:14px auto 0;flex-shrink:0; }
    .toc-sheet-hdr { padding:12px 24px 6px;flex-shrink:0; }
    .toc-sheet-eyebrow { font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9CA3AF; }
    .toc-sheet-vendor { font-size:18px;font-weight:800;color:#111827;margin-top:2px; }
    #svp-toc-list { overflow-y:auto;-webkit-overflow-scrolling:touch;padding:8px 0 40px; }
    .toc-row {
      display:flex;align-items:center;gap:14px;padding:13px 24px;
      cursor:pointer;transition:background 0.1s;
    }
    .toc-row:active { background:#F9FAFB; }
    .toc-row.toc-row-active { background:rgba(124,58,237,.06); }
    .toc-row-icon { font-size:22px;flex-shrink:0;width:36px;text-align:center;line-height:1; }
    .toc-row-body { flex:1;min-width:0; }
    .toc-row-label { font-size:16px;font-weight:700;color:#111827;line-height:1.2; }
    .toc-row-hint { font-size:12px;color:#9CA3AF;margin-top:2px; }
    .toc-row.toc-row-active .toc-row-label { color:#7C3AED; }
    .toc-row-dot { width:8px;height:8px;border-radius:50%;background:#7C3AED;flex-shrink:0;margin-right:4px; }
    .pay-card { background: linear-gradient(145deg, #FAF5FF 0%, #FDF4FF 100%); border: 1.5px solid rgba(124,58,237,.2); border-radius: 22px; padding: 20px; box-shadow: 0 4px 24px rgba(124,58,237,.08), 0 0 0 1px rgba(124,58,237,.05) inset; }
    .pay-card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
    .pay-card-label { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #7C3AED; }
    .pay-card-name { font-size: 18px; font-weight: 700; color: #111827; margin-top: 3px; }
    .pay-qr-icon-btn { background: rgba(124,58,237,.1); border: 1px solid rgba(124,58,237,.25); border-radius: 11px; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-size: 19px; color: #7C3AED; flex-shrink: 0; transition: background 0.18s; }
    .pay-qr-icon-btn:hover, .pay-qr-icon-btn:active { background: rgba(124,58,237,.18); }
    .pay-methods { display: flex; flex-direction: column; gap: 9px; }
    a.pay-method-row, button.pay-method-row { display: flex; align-items: center; gap: 13px; background: #fff; border: 1.5px solid #E5E7EB; border-radius: 14px; padding: 13px 15px; text-decoration: none; cursor: pointer; color: inherit; width: 100%; text-align: left; transition: background 0.15s, border-color 0.15s; }
    a.pay-method-row:hover, button.pay-method-row:hover { background: #FAFAFA; border-color: #D1D5DB; }
    .pay-ico { width: 40px; height: 40px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 16px; color: #fff; flex-shrink: 0; letter-spacing: -0.5px; }
    .pay-info { flex: 1; min-width: 0; }
    .pay-provider { font-size: 14px; font-weight: 600; color: #111827; }
    .pay-handle { font-size: 12px; color: #9CA3AF; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .pay-arrow { font-size: 16px; color: #9CA3AF; flex-shrink: 0; }
    .pay-show-qr-btn { margin-top: 15px; width: 100%; background: rgba(124,58,237,.08); border: 1.5px solid rgba(124,58,237,.22); border-radius: 14px; color: #7C3AED; font-size: 14px; font-weight: 600; padding: 14px; cursor: pointer; transition: background 0.15s; letter-spacing: 0.2px; }
    .pay-show-qr-btn:hover, .pay-show-qr-btn:active { background: rgba(124,58,237,.14); }
    /* ── QR Full-Screen Modal ── */
    .qr-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.5); z-index: 9998; backdrop-filter: blur(4px); }
    .qr-fs-modal { position: fixed; inset: 0; z-index: 9999; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; }
    .qr-fs-inner { background: #fff; border-radius: 28px; padding: 32px 28px 24px; display: flex; flex-direction: column; align-items: center; gap: 14px; box-shadow: 0 24px 72px rgba(0,0,0,.25); max-width: 320px; width: 100%; position: relative; }
    .qr-close-btn { position: absolute; top: 14px; right: 14px; background: #F3F4F6; border: none; border-radius: 50%; width: 32px; height: 32px; font-size: 14px; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #374151; }
    .qr-modal-eyebrow { font-size: 12px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase; color: #9CA3AF; }
    .qr-modal-vendor { font-size: 19px; font-weight: 800; color: #111827; text-align: center; line-height: 1.2; }
    .qr-canvas-wrap { border-radius: 14px; padding: 10px; background: #fff; box-shadow: 0 0 0 1px rgba(0,0,0,0.06), 0 4px 16px rgba(0,0,0,0.1); }
    .qr-canvas-wrap canvas { display: block; border-radius: 6px; }
    .qr-scan-hint { font-size: 12px; color: #6B7280; text-align: center; margin: 0; }
    .qr-share-btn { background: var(--purple, #7C3AED); color: #fff; border: none; border-radius: 14px; padding: 14px 28px; font-size: 14px; font-weight: 700; cursor: pointer; transition: filter 0.15s; width: 100%; letter-spacing: 0.2px; box-shadow: 0 4px 12px rgba(124,58,237,.3); }
    .qr-share-btn:hover { filter: brightness(1.07); }

    /* ── Stats bar ───────────────────────────────────────────── */
    .svp-stats-bar {
      display: flex; align-items: stretch;
      padding: 0 24px 12px; max-width: 640px; margin: 0 auto;
    }
    .svp-stat { flex: 1; text-align: center; padding: 4px 0; }
    .svp-stat-num {
      font-size: 26px; font-weight: 900; color: #111827;
      letter-spacing: -0.04em; line-height: 1;
    }
    .svp-stat-num--purple { color: #7C3AED; }
    .svp-stat-label { font-size: 12px; color: #9CA3AF; margin-top: 3px; font-weight: 600; letter-spacing: 0.03em; }
    .svp-stat-div { width: 1px; background: #E5E7EB; margin: 4px 8px; align-self: stretch; }

    /* ── Stats bar — id-targeted (HTML uses id="svp-stats-bar", not class) ── */
    #svp-stats-bar {
      gap: 0;
      justify-content: stretch;
      align-items: stretch;
      padding: 10px 20px 14px;
      max-width: 640px;
      margin: 0 auto;
      border-top: 1px solid #F3F4F6;
      border-bottom: 1px solid #F3F4F6;
    }
    #svp-stats-bar > div {
      flex: 1 1 0;
      min-width: 0;
      text-align: center;
      padding: 6px 4px;
      border-right: 1px solid #E5E7EB;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 3px;
    }
    #svp-stats-bar > div:last-child { border-right: none; }
    #svp-stats-bar > div > div:first-child {
      font-size: 20px; font-weight: 900; color: #111827;
      letter-spacing: -0.03em; line-height: 1; min-height: 1.1em;
    }
    .sstat-label {
      font-size: 12px; color: #9CA3AF; font-weight: 600;
      letter-spacing: 0.04em; text-transform: uppercase;
      line-height: 1.2; white-space: nowrap;
    }
    @media (max-width: 360px) {
      #svp-stats-bar > div > div:first-child { font-size: 16px; }
      .sstat-label { font-size: 12px; letter-spacing: 0.02em; }
    }

    /* ── Photo mosaic ────────────────────────────────────────── */
    /* ══ BENTO PORTFOLIO GRID ════════════════════════════════════ */
    /* ── Portfolio — Instagram-style grid + featured video hero ─── */

    /* Featured video hero — full-width cinematic strip above grid */
    .svp-feat-video-wrap {
      position: relative; margin: 0 0 2px;
      background: #111; overflow: hidden;
      aspect-ratio: 16 / 9; cursor: pointer;
    }
    .svp-feat-video-wrap video {
      width: 100%; height: 100%; object-fit: cover; display: block;
    }
    .svp-feat-video-badge {
      position: absolute; bottom: 14px; left: 14px;
      background: rgba(0,0,0,.62); backdrop-filter: blur(6px);
      -webkit-backdrop-filter: blur(6px);
      color: #fff; font-size: 12px; font-weight: 700;
      padding: 5px 12px; border-radius: 20px;
      display: flex; align-items: center; gap: 6px;
      pointer-events: none;
    }
    .svp-feat-video-tap {
      position: absolute; inset: 0;
      display: flex; align-items: center; justify-content: center;
    }
    .svp-feat-video-tap-ic {
      width: 44px; height: 44px; border-radius: 50%;
      background: rgba(255,255,255,.18); backdrop-filter: blur(4px);
      display: flex; align-items: center; justify-content: center;
      transition: transform .15s, background .15s; pointer-events: none;
    }
    .svp-feat-video-wrap:active .svp-feat-video-tap-ic {
      transform: scale(.92); background: rgba(255,255,255,.3);
    }

    /* Masonry grid — 2-col below featured shot, items 3+ */
    .svp-showcase-grid {
      columns: 2;
      column-gap: 3px;
      padding: 0;
      margin-top: 3px;
    }
    .svp-showcase-cell {
      break-inside: avoid;
      margin-bottom: 3px;
      display: block;
      overflow: hidden;
      position: relative;
      cursor: pointer;
      background: #F3F4F6;
      border-radius: 0;
      transition: opacity .12s;
    }
    /* Tall cell — forces portrait crop for rhythm */
    .svp-showcase-cell--tall img { aspect-ratio: 2/3 !important; object-fit: cover; }
    /* Square cell */
    .svp-showcase-cell--sq img  { aspect-ratio: 1/1 !important; object-fit: cover; }
    .svp-showcase-cell img {
      width: 100%; height: auto; display: block;
    }
    .svp-showcase-cell video {
      width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block;
      pointer-events: none;
    }
    .svp-showcase-cell:active { opacity: .82; }

    /* ▶ Video play badge — grid cell */
    .svp-cell-play {
      position: absolute; top: 50%; left: 50%; z-index: 2;
      width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.94);
      border-radius: 50%; color: #fff; background: rgba(24,18,34,.72);
      display: grid; place-items: center; transform: translate(-50%,-50%);
      pointer-events: none;
    }
    .svp-cell-play svg { display: block; }

    /* Delete button (owner only) */
    .svp-cell-del {
      position: absolute; top: 6px; right: 6px; z-index: 5;
      width: 26px; height: 26px; border-radius: 50%;
      background: rgba(0,0,0,.58); border: none;
      color: #fff; font-size: 14px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
    }

    /* Gallery count pill in section header */
    .svp-gallery-count {
      font-size: 12px; font-weight: 600; color: #9CA3AF;
      background: #F3F4F6; border-radius: 10px;
      padding: 2px 8px; margin-left: 6px;
    }

    /* ── Showcase subtitle row ── */
    .svp-gallery-sub {
      font-size: 12px; color: #9CA3AF; font-weight: 500;
      margin: 0 0 10px; letter-spacing: 0.01em;
    }

    /* ── Platform source badge on each cell ── */
    .svp-cell-src {
      position: absolute; top: 6px; left: 6px; z-index: 5;
      font-size: 12px; font-weight: 700; letter-spacing: 0.02em;
      padding: 2px 7px; border-radius: 20px;
      display: flex; align-items: center; gap: 3px;
      pointer-events: none; line-height: 1.4;
    }
    .svp-cell-src svg { width:14px; height:14px; display:block; flex:none; }
    .svp-cell-src--ig   { background: rgba(193,53,132,.82); color: #fff; }
    .svp-cell-src--booth  { background: rgba(0,0,0,.52); color: #fff; }
    .svp-cell-src--tiktok { background: rgba(1,1,1,.82); color: #fff; }
    .svp-media-note {
      position:absolute; left:8px; right:8px; bottom:8px; z-index:4;
      padding:6px 8px; border-radius:8px; color:#fff; font-size:11px;
      line-height:1.25; background:rgba(17,24,39,.72); backdrop-filter:blur(4px);
      pointer-events:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    }

    /* TikTok cell inner */
    .svp-tiktok-cell-inner {
      position: absolute; inset: 0;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 6px; pointer-events: none;
    }
    .svp-tiktok-cell-lbl {
      font-size: 12px; font-weight: 700; color: rgba(255,255,255,.75);
      letter-spacing: 0.05em; text-transform: uppercase;
    }

    /* ── Load-more button ── */
    .svp-load-more-btn {
      width: 100%; margin-top: 3px;
      padding: 13px 0; border: 1.5px solid #E5E7EB; border-radius: 12px;
      background: #fff; color: #374151; font-size: 14px; font-weight: 600;
      cursor: pointer; letter-spacing: 0.01em;
      transition: background .15s, border-color .15s;
    }
    .svp-load-more-btn:hover { background: #F9FAFB; border-color: #D1D5DB; }

    /* ── Platform footer row ── */
    .svp-gallery-footer {
      display: flex; flex-wrap: wrap; gap: 8px;
      margin-top: 10px; padding-top: 10px;
      border-top: 1px solid #F3F4F6;
    }
    .svp-gallery-plat-link {
      display: flex; align-items: center; gap: 6px;
      padding: 7px 14px; border-radius: 20px;
      border: 1.5px solid #E5E7EB; background: #fff;
      font-size: 13px; font-weight: 600; color: #374151;
      text-decoration: none; cursor: pointer;
      transition: background .15s, border-color .15s;
    }
    .svp-gallery-plat-link:hover { background: #F9FAFB; border-color: #C084FC; color: #7C3AED; }
    .svp-gallery-plat-link svg { flex-shrink: 0; }

  /* ── Responsive public portfolio ──────────────────────────────
     Keep organizer facts paired in two columns on desktop, while the
     existing native media/product renderers become keyboard-scrollable
     swipe rails on phones. These rules style existing nodes only. */
  #vp-organizers,
  #vp-organizers .vp-organizer-columns,
  #vp-organizers .vp-organizer-column,
  #photos-section,
  #shop-section,
  #vp-highlight-carousel,
  #vp-curated-carousel,
  #fsvp-products-list { min-width:0; max-width:100%; }
  #vp-organizers .vp-organizer-columns {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    align-items:start;
  }
  #vp-organizers .vp-organizer-column { min-width:0; }
  @media (min-width:768px) {
    #vp-organizers .vp-organizer-columns {
      grid-template-columns:repeat(2,minmax(0,1fr));
      align-items:start;
    }
  }
  @media (max-width:767px) {
    #vp-highlight-carousel,
    #vp-curated-carousel,
    #shop-section .fsvp-prod-strip,
    #shop-section #fsvp-products-list:has(> .eco-offer-card),
    #shop-section #fsvp-products-list:has(> .fsvp-prod-card) {
      display:flex!important;
      flex-flow:row nowrap!important;
      gap:10px;
      width:100%;
      max-width:100%;
      min-width:0;
      overflow-x:auto!important;
      overflow-y:hidden;
      overscroll-behavior-x:contain;
      -webkit-overflow-scrolling:touch;
      scroll-snap-type:x mandatory;
      scroll-padding-inline:2px;
      padding:2px 2px 10px!important;
      margin:0!important;
      scrollbar-width:auto;
      scrollbar-color:#9b83b4 #eee7f2;
    }
    #vp-highlight-carousel::-webkit-scrollbar,
    #vp-curated-carousel::-webkit-scrollbar,
    #shop-section .fsvp-prod-strip::-webkit-scrollbar,
    #shop-section #fsvp-products-list:has(> .eco-offer-card)::-webkit-scrollbar,
    #shop-section #fsvp-products-list:has(> .fsvp-prod-card)::-webkit-scrollbar {
      height:7px;
    }
    #vp-highlight-carousel::-webkit-scrollbar-track,
    #vp-curated-carousel::-webkit-scrollbar-track,
    #shop-section .fsvp-prod-strip::-webkit-scrollbar-track,
    #shop-section #fsvp-products-list:has(> .eco-offer-card)::-webkit-scrollbar-track,
    #shop-section #fsvp-products-list:has(> .fsvp-prod-card)::-webkit-scrollbar-track {
      background:#eee7f2;
      border-radius:99px;
    }
    #vp-highlight-carousel::-webkit-scrollbar-thumb,
    #vp-curated-carousel::-webkit-scrollbar-thumb,
    #shop-section .fsvp-prod-strip::-webkit-scrollbar-thumb,
    #shop-section #fsvp-products-list:has(> .eco-offer-card)::-webkit-scrollbar-thumb,
    #shop-section #fsvp-products-list:has(> .fsvp-prod-card)::-webkit-scrollbar-thumb {
      background:#9b83b4;
      border-radius:99px;
    }
    #vp-highlight-carousel:focus-visible,
    #vp-curated-carousel:focus-visible,
    #shop-section .fsvp-prod-strip:focus-visible,
    #shop-section #fsvp-products-list:focus-visible {
      outline:2px solid #7c3aed;
      outline-offset:2px;
    }
    #vp-highlight-carousel > .svp-photo-featured,
    #vp-highlight-carousel > .svp-feat-video-wrap,
    #vp-highlight-carousel > .svp-photo-pair > .svp-showcase-cell,
    #vp-highlight-carousel > .svp-showcase-grid > .svp-showcase-cell,
    #vp-curated-carousel .eco-curated-item,
    #shop-section .fsvp-prod-card,
    #shop-section .eco-offer-card {
      flex:0 0 76%;
      width:76%;
      min-width:0;
      max-width:260px;
      margin:0;
      scroll-snap-align:start;
    }
    #vp-highlight-carousel > .svp-photo-pair,
    #vp-highlight-carousel > .svp-showcase-grid,
    #vp-curated-carousel .eco-curated-gallery { display:contents!important; }
    #vp-highlight-carousel img,
    #vp-highlight-carousel video,
    #vp-curated-carousel img,
    #vp-curated-carousel video {
      max-width:100%;
    }
    #shop-section .fsvp-prod-card-img,
    #shop-section .fsvp-prod-card-img-ph { max-width:100%; }
  }
    /* ── Lightbox ── */
    .blx-overlay {
      position: fixed; inset: 0; z-index: 100000;
      background: rgba(0,0,0,.94);
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      touch-action: pan-y;
    }
    .blx-close {
      position: absolute; top: 16px; right: 16px;
      width: 40px; height: 40px; border-radius: 50%;
      background: rgba(255,255,255,.12); border: none;
      color: #fff; font-size: 22px; cursor: pointer;
      display: flex; align-items: center; justify-content: center; z-index: 2;
    }
    .blx-counter {
      position: absolute; top: 20px; left: 50%; transform: translateX(-50%);
      color: rgba(255,255,255,.7); font-size: 13px; font-weight: 600; z-index: 2;
    }
    .blx-media-wrap {
      position: relative;
      width: 100%; max-width: 600px; max-height: 80vh;
      display: flex; align-items: center; justify-content: center;
    }
    .blx-media-wrap img,
    .blx-media-wrap video {
      max-width: 100%; max-height: 80vh;
      object-fit: contain; border-radius: 8px;
      touch-action: pinch-zoom; cursor: zoom-in;
    }
    .blx-video-play {
      position: absolute; top: 50%; left: 50%; z-index: 2;
      display: grid; place-items: center; width: 44px; height: 44px;
      padding: 0; border: 1px solid rgba(255,255,255,.94); border-radius: 50%;
      color: #fff; background: rgba(24,18,34,.78);
      transform: translate(-50%,-50%); cursor: pointer;
    }
    .blx-video-play svg { display: block; }
    .blx-video-play[hidden] { display: none !important; }
    .blx-prev, .blx-next {
      position: absolute; top: 50%; transform: translateY(-50%);
      width: 44px; height: 44px; border-radius: 50%;
      background: rgba(255,255,255,.12); border: none;
      color: #fff; font-size: 20px; cursor: pointer;
      display: flex; align-items: center; justify-content: center;
    }
    .blx-prev { left: 12px; }
    .blx-next { right: 12px; }
    .blx-dots {
      position: absolute; bottom: 20px; left: 50%; transform: translateX(-50%);
      display: flex; gap: 6px;
    }
    .blx-dot {
      width: 6px; height: 6px; border-radius: 50%;
      background: rgba(255,255,255,.35); transition: background .15s;
    }
    .blx-dot.active { background: #fff; }

    /* legacy mosaic — kept for compat but not used by new renderer */
    .photo-mosaic { display:none!important; }
    .photo-strip--sm { display:none!important; }

    /* ── Photo empty-state nudge ─────────────────────────────── */
    .photo-empty {
      margin: 0 20px; border-radius: 18px;
      display: flex; flex-direction: column; align-items: center;
      text-align: center; gap: 0;
    }
    .photo-empty--owner {
      background: linear-gradient(145deg, #F5F3FF, #FDF4FF);
      border: 2px dashed #C4B5FD;
      padding: 36px 24px;
      cursor: pointer;
      transition: background .18s, border-color .18s;
    }
    .photo-empty--owner:hover { background: #EDE9FE; border-color: #7C3AED; }
    .photo-empty--owner:active { background: #DDD6FE; }
    .photo-empty-icon {
      font-size: 44px; line-height: 1; margin-bottom: 14px;
    }
    .photo-empty-title {
      font-size: 18px; font-weight: 800; color: #111827; margin-bottom: 6px;
    }
    .photo-empty-sub {
      font-size: 15px; color: #6B7280; line-height: 1.5; max-width: 260px; margin-bottom: 20px;
    }
    .photo-empty-cta {
      display: inline-flex; align-items: center; gap: 7px;
      padding: 12px 24px; border-radius: 12px;
      background: var(--purple, #7C3AED);
      color: #fff; font-size: 14px; font-weight: 800;
      border: none; cursor: pointer; font-family: inherit;
      box-shadow: 0 4px 14px rgba(124,58,237,.35);
      transition: filter .15s;
    }
    .photo-empty-cta:hover { filter: brightness(1.08); }
    .photo-empty--visitor {
      padding: 24px 16px;
      background: #F9F8FF; border: 1.5px solid #EDE9FE;
    }
    .photo-empty--visitor .photo-empty-icon { font-size: 28px; margin-bottom: 8px; }
    .photo-empty--visitor .photo-empty-title { font-size: 18px; color: #6B7280; font-weight: 600; }

    /* ── Photo strip (secondary strip) ──────────────────────── */
    .photo-strip--sm .photo-strip-item { width: 120px; height: 120px; }

    /* ── Bio section — editorial ─────────────────────────────── */
    .bio-section { padding: 0 20px 20px; max-width: 640px; margin: 0 auto; }
    .bio-text {
      font-size: 15.5px; color: #374151; line-height: 1.7;
      margin: 0; white-space: pre-wrap; word-break: break-word;
      font-weight: 400;
    }
    .bio-text::first-line { font-size: 17px; font-weight: 600; color: #111827; }
    /* ── Floating booking / follow bar ── */
    .svp-float-bar {
      position: fixed; bottom: 0; left: 0; right: 0; max-width: 640px; margin: 0 auto;
      z-index: 900;
      background: rgba(255,255,255,.97); backdrop-filter: blur(20px) saturate(180%);
      -webkit-backdrop-filter: blur(20px) saturate(180%);
      border-top: 1px solid rgba(0,0,0,.07);
      padding: 11px 16px calc(11px + env(safe-area-inset-bottom,0px));
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
      box-shadow: 0 -4px 24px rgba(0,0,0,.08);
      transform: translateY(100%); transition: transform .32s cubic-bezier(.4,0,.2,1);
    }
    .svp-float-bar.visible { transform: translateY(0); }
    .svp-float-left { flex: 1; min-width: 0; }
    .svp-float-name {
      display: block; font-size: 13px; font-weight: 800; color: #111827;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .svp-float-sub { display: block; font-size: 15px; color: #6B7280; margin-top: 1px; }
    .svp-float-cta {
      flex-shrink: 0; padding: 11px 20px; border-radius: 12px;
      background: var(--purple, #7C3AED);
      color: #fff; font-size: 13px; font-weight: 800; border: none; cursor: pointer;
      white-space: nowrap; box-shadow: 0 3px 12px rgba(124,58,237,.35);
      transition: filter .15s; font-family: inherit; letter-spacing: .01em;
    }
    .svp-float-cta:active { filter: brightness(.9); }
    .svp-float-cta--follow {
      background: linear-gradient(135deg, #F97316, #EC4899);
      box-shadow: 0 3px 12px rgba(249,115,22,.3);
    }

    /* ── Rating badge in identity block ── */
    .identity-rating {
      display: inline-flex; align-items: center; gap: 3px;
      font-size: 12px; font-weight: 700; color: #D97706;
      background: #FFFBEB; border: 1px solid #FDE68A; border-radius: 6px;
      padding: 2px 8px; margin-top: 5px;
    }

    /* ── What we offer — product chips ── */
    .offers-section { padding: 0 20px 20px; max-width: 640px; margin: 0 auto; }
    .offers-label {
      font-size: 12px; font-weight: 700; color: #9CA3AF;
      text-transform: uppercase; letter-spacing: .07em; margin-bottom: 10px;
    }
    .offers-chips { display: flex; flex-wrap: wrap; gap: 8px; }
    .offers-chip {
      display: inline-flex; align-items: center; gap: 4px;
      padding: 5px 12px; border-radius: 100px;
      background: #F5F3FF; border: 1.5px solid #DDD6FE;
      font-size: 12px; font-weight: 600; color: #5B21B6;
    }

    /* Pad main so float bar never covers last content */
    #svp-main {
      padding: 0 0 100px;
      background: #FFFFFF;
      display: flex;
      flex-direction: column;
      gap: 0;
      box-sizing: border-box;
    }
    #svp-main[hidden] { display: none !important; }

    /* ════════════════════════════════════════════════
       FIGMA SVP REDESIGN — fsvp-* classes
       ════════════════════════════════════════════════ */

    /* ── Hero card ─────────────────────────────────── */
    .fsvp-card-wrap { padding: 14px 16px 0; }
    .fsvp-card-wrap .hero-carousel {
      height: auto !important;
      min-height: 220px;
      max-height: 400px;
      aspect-ratio: 4/3;
      border-radius: 20px !important;
      overflow: hidden;
      box-shadow: 0 8px 32px rgba(0,0,0,.18);
      background: #EDE9FE;
    }
    .fsvp-card-wrap .hero-carousel-inner { height: 100%; }
    .fsvp-card-wrap .hero-carousel-slide { height: 100%; }
    .fsvp-card-wrap .hero-carousel-slide img { width:100%;height:100%;object-fit:cover; }
    .fsvp-card-wrap .hero-gradient-fallback {
      background:linear-gradient(135deg,#7C3AED,#C026D3);
      display:flex;align-items:center;justify-content:center;font-size:72px;
      height: 100%; width: 100%;
    }
    .fsvp-card-wrap .hero-carousel-gradient { display:none; }
    .fsvp-card-wrap .hero-carousel-dots {
      position:absolute;bottom:60px;left:50%;transform:translateX(-50%);z-index:10;
    }
    .fsvp-card-wrap .seen-at-badge {
      position:absolute;top:12px;right:12px;left:auto;z-index:10;
      background:rgba(255,255,255,.88);backdrop-filter:blur(8px);
      border-radius:100px;padding:4px 10px;font-size:12px;font-weight:700;color:#7C3AED;
    }

    /* ── 1. HERO OVERLAY (name fused to photo) ──────── */
    /* Inspired by: Spotify Artist, Airbnb listing, Luma event header */
    .fsvp-hero-overlay {
      position:absolute;bottom:0;left:0;right:0;z-index:5;
      background:linear-gradient(to top,
        rgba(8,4,22,.82) 0%,
        rgba(8,4,22,.45) 55%,
        transparent 100%);
      padding:56px 16px 18px;
      display:flex;align-items:flex-end;gap:12px;
      pointer-events:none; /* let clicks pass through to the carousel slides */
    }
    .fsvp-hero-logo {
      flex-shrink:0;width:54px;height:54px;border-radius:15px;overflow:hidden;
      border:2px solid rgba(255,255,255,.25);
      box-shadow:0 3px 14px rgba(0,0,0,.35);
      background:linear-gradient(135deg,#7C3AED,#4F46E5);
      display:flex;align-items:center;justify-content:center;font-size:26px;
      transition:transform .2s;
    }
    .fsvp-hero-text { flex:1;min-width:0; }
    .fsvp-vendor-name {
      font-size:28px;font-weight:900;color:#fff;
      margin:0 0 4px;letter-spacing:-0.035em;line-height:1.1;
      text-shadow:0 2px 10px rgba(0,0,0,.4);
    }
    .fsvp-vendor-sub {
      font-size:15px;color:rgba(255,255,255,.78);margin:0;line-height:1.4;
      text-shadow:0 1px 6px rgba(0,0,0,.4);
    }

    /* ── 2. IDENTITY block (chips → proof → CTAs → meta) */
    .fsvp-identity { padding: 16px 16px 0; }

    /* ── Chips ──────────────────────────────────────── */
    .fsvp-chips-row { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px; }
    .chip-row.fsvp-chips-row { padding:0;margin-top:0;margin-bottom:12px; }
    .chip-row.fsvp-chips-row .chip {
      font-size:12px;font-weight:600;color:#4B5563;
      background:rgba(79,70,229,.08);border:1px solid rgba(79,70,229,.18);
      border-radius:100px;padding:5px 12px;white-space:nowrap;background-image:none;
      transition:background .15s;
    }
    .chip-row.fsvp-chips-row .chip:active { background:rgba(79,70,229,.15); }

    /* ── 3. AVATAR-STACK social proof ───────────────── */
    /* Inspired by: Luma, RA, Partiful guest lists */
    .fsvp-social-proof {
      display:flex;align-items:center;gap:10px;
      margin-bottom:14px;font-size:13px;color:#374151;font-weight:500;
    }
    .fsvp-avatar-stack {
      display:flex;align-items:center;flex-direction:row-reverse;
    }
    .fsvp-avatar-mini {
      width:24px;height:24px;border-radius:50%;flex-shrink:0;
      border:2px solid #F2F0FA;
      display:flex;align-items:center;justify-content:center;
      font-size:12px;font-weight:800;color:#fff;
      margin-left:-7px;position:relative;
    }
    .fsvp-avatar-mini:last-child { margin-left:0; }

    /* ── 4. CTA HIERARCHY ───────────────────────────── */
    /* Rule: one dominant primary, secondary pair below */
    /* Inspired by: Linear, Vercel, Superhuman button grammar */
    .fsvp-btn-row { display:flex;flex-direction:column;gap:8px;margin-bottom:14px; }
    .fsvp-action-btn {
      padding:0;border-radius:13px;font-size:15px;font-weight:800;
      font-family:inherit;cursor:pointer;border:none;text-align:center;
      transition:transform .12s cubic-bezier(.34,1.56,.64,1),filter .12s;
      position:relative;overflow:hidden;
    }
    .fsvp-action-btn:active { transform:scale(.96);filter:brightness(.88); }
    .fsvp-action-btn--full {
      width:100%;padding:15px 24px;
      background:linear-gradient(135deg,#4F46E5 0%,#7C3AED 100%);
      color:#fff;letter-spacing:.01em;
      box-shadow:0 4px 18px rgba(79,70,229,.38);
    }
    .fsvp-action-btn--full::after {
      content:'';position:absolute;inset:0;
      background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.18),transparent 70%);
      pointer-events:none;
    }
    .fsvp-btn-pair {
      display:grid;grid-template-columns:1fr 1fr;gap:8px;
    }
    .fsvp-action-btn--ghost {
      padding:12px 0;
      background:#fff;color:#374151;
      border:1.5px solid #E5E7EB;letter-spacing:.005em;font-size:14px;
      box-shadow:0 1px 4px rgba(0,0,0,.06);
    }
    /* keep old class names working for compat JS */
    .fsvp-action-btn--primary { background:linear-gradient(135deg,#4F46E5,#7C3AED);color:#fff; }
    .fsvp-action-btn--outline { background:#fff;color:#374151;border:1.5px solid #E5E7EB; }

    /* ── Meta rows — suppressed; ident-strip replaces ── */
    .fsvp-meta { display:none!important; }
    .fsvp-sep { margin:0 1px;color:#D1D5DB; }
    .fsvp-link { color:#4F46E5;font-weight:600;cursor:pointer; }
    .fsvp-link:hover { text-decoration:underline; }

    /* ── 5. ENTRY ANIMATION ─────────────────────────── */
    /* Staggered slide-up-fade: Linear / Vercel / Apple style */
    @keyframes fsvpUp {
      from { opacity:0; transform:translateY(14px); }
      to   { opacity:1; transform:translateY(0); }
    }
    .fsvp-identity > * {
      animation:fsvpUp .45s cubic-bezier(.22,.68,0,1.2) both;
    }
    .fsvp-identity > *:nth-child(1) { animation-delay:.05s; }
    .fsvp-identity > *:nth-child(2) { animation-delay:.12s; }
    .fsvp-identity > *:nth-child(3) { animation-delay:.19s; }
    .fsvp-identity > *:nth-child(4) { animation-delay:.26s; }
    .fsvp-identity > *:nth-child(5) { animation-delay:.33s; }
    .fsvp-hero-overlay {
      animation:fsvpUp .4s cubic-bezier(.22,.68,0,1.2) .08s both;
    }

    /* ── 6. SCROLL-REVEAL ───────────────────────────── */
    /* fsvp-reveal: always visible; fsvp-visible adds the entrance animation
       only for sections that scroll into view (progressive enhancement). */
    @keyframes fsvpRevealIn {
      from { opacity:0; transform:translateY(20px); }
      to   { opacity:1; transform:translateY(0); }
    }
    .fsvp-reveal { opacity:1; }
    .fsvp-reveal.fsvp-visible {
      animation: fsvpRevealIn 0.5s cubic-bezier(.22,.68,0,1.2) both;
    }

    /* ── Payments accepted inline pills ─────────────── */
    .fsvp-pays-row { display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0 4px; }
    .fsvp-pays-label { font-size:12px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#9CA3AF;margin-right:2px;flex-shrink:0; }
    .fsvp-pay-pill {
      display:inline-flex;align-items:center;gap:4px;
      padding:4px 11px 4px 9px;border-radius:20px;
      font-size:12px;font-weight:600;border:1px solid transparent;white-space:nowrap;
    }
    .fsvp-pay-pill--venmo   { background:#E8F4FF;color:#0074DE;border-color:#BFD9F5; }
    .fsvp-pay-pill--cashapp { background:#E6FCE8;color:#00863A;border-color:#B0EFC0; }
    .fsvp-pay-pill--zelle   { background:#F3EAFF;color:#6D1ED4;border-color:#D4B8F8; }
    .fsvp-pay-pill--paypal  { background:#E6EDFF;color:#003087;border-color:#B8CAF5; }
    .fsvp-pay-pill--square  { background:#F3F3F3;color:#111827;border-color:#E5E5E5; }
    .fsvp-pay-pill--cash    { background:#FFFBEB;color:#92400E;border-color:#FDE68A; }
    .fsvp-pay-pill--other   { background:#F3F4F6;color:#4B5563;border-color:#E5E7EB; }

    /* ── Identity strip — Resy-style inline facts (first thing under hero) ── */
    .fsvp-ident-strip {
      display:flex;flex-wrap:wrap;align-items:center;
      padding:16px 0 14px;gap:0;
      font-size:15px;color:#374151;line-height:1.6;
      border-bottom:1.5px solid #EEECF8;margin-bottom:14px;
    }
    /* Mobile refinements — tighter type on narrow viewports */
    @media (max-width: 390px) {
      .fsvp-ident-strip { font-size:13px; padding:12px 0 10px; }
      .fsvp-ident-cat   { font-size:13.5px; }
      .fsvp-ident-sep   { margin:0 6px; }
      .fsvp-hero-content-name { font-size:26px; }
      .fsvp-body        { padding:0 14px; }
    }
    .fsvp-bio-teaser { font-size:15px;color:#4B5563;line-height:1.6;margin:0 0 14px;padding:0; }
    .fsvp-ident-sep { margin:0 9px;color:#D1D5DB;font-weight:300;font-size:16px; }
    .fsvp-ident-cat { font-weight:700;color:#111827;font-size:15px; }
    .fsvp-ident-rating { color:#92400E;font-weight:800;font-size:15.5px; }
    .fsvp-ident-star { color:#F59E0B;margin-right:3px;font-size:16px; }
    .fsvp-ident-city { color:#4B5563; }
    .fsvp-ident-verified { color:#059669;font-weight:700; }
    .fsvp-ident-price  { background:#FFF7ED;color:#C2410C;font-weight:600;font-size:13px;padding:2px 7px;border-radius:99px;border:1px solid #FED7AA;white-space:nowrap; }
    .fsvp-ident-loc    { background:#F3F4F6;color:#374151;font-weight:600;font-size:13px;padding:2px 8px;border-radius:99px;border:1px solid #E5E7EB;white-space:nowrap; }
    .fsvp-ident-cat-pill { background:#F3E8FF;color:#6D28D9;font-weight:600;font-size:13px;padding:2px 8px;border-radius:99px;border:1px solid #DDD6FE;white-space:nowrap;text-decoration:none; }
    .fsvp-ident-booked { background:#EFF6FF;color:#1D4ED8;font-weight:600;font-size:13px;padding:2px 7px;border-radius:99px;border:1px solid #BFDBFE;white-space:nowrap; }
    /* ── Availability status pill ── */
    .fsvp-ident-wknd-booked { background:#F3E8FF;color:#7C3AED;font-weight:700;font-size:13px;padding:2px 8px;border-radius:99px;border:1px solid #DDD6FE;white-space:nowrap; }
    .fsvp-avail-pill { display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:99px;font-size:13px;font-weight:700;margin:6px 0 2px; }
    .fsvp-avail-pill--open        { background:#D1FAE5;color:#065F46;border:1px solid #6EE7B7; }
    .fsvp-avail-pill--busy        { background:#FEF3C7;color:#92400E;border:1px solid #FCD34D; }
    .fsvp-avail-pill--unavailable { background:#FEE2E2;color:#991B1B;border:1px solid #FCA5A5; }
    .fsvp-avail-dot { width:7px;height:7px;border-radius:50%;flex-shrink:0; }
    .fsvp-avail-pill--open        .fsvp-avail-dot { background:#059669; }
    .fsvp-avail-pill--busy        .fsvp-avail-dot { background:#D97706; }
    .fsvp-avail-pill--unavailable .fsvp-avail-dot { background:#DC2626; }
    /* ── Saved-by organizers ── */
    .fsvp-saved-by { font-size:12px;color:#7C3AED;font-weight:600;margin:4px 0 2px;display:flex;align-items:center;gap:4px; }
    .cal-loc-link { color:inherit;text-decoration:none; }
    .cal-loc-link:hover { text-decoration:underline; }
    /* compat stubs — hidden */
    .fsvp-kstat-row, .fsvp-kstat-chip { display:none!important; }

    /* ── Book button — elevated ghost (not pure outline) ─────── */
    .fsvp-action-btn--book {
      background:#F5F3FF;color:#5B21B6;
      border:1.5px solid #DDD6FE;font-weight:700;
    }
    .fsvp-action-btn--book:active { filter:brightness(.95); }

    /* ── Calendar legend ─────────────────────────────────────── */
    .fsvp-cal-legend {
      display:flex;align-items:center;gap:6px;
      font-size:13px;color:#6B7280;margin-top:10px;flex-wrap:wrap;
    }
    .fsvp-cal-legend-dot {
      display:inline-block;width:8px;height:8px;border-radius:50%;
      background:#4F46E5;flex-shrink:0;
    }
    .fsvp-cal-legend-dot--today { background:#F59E0B; }

    /* ── Signature Pieces — horizontal swipe row ────────────── */
    .fsvp-spot-scroll {
      display:flex;flex-direction:row;gap:14px;
      overflow-x:auto;overflow-y:visible;
      scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;
      scrollbar-width:none;padding:4px 16px 20px;
      margin:0 -16px;
      /* Task #32 — right-edge fade accounting for the 16px margin bleed.
         The element is ~32px wider than its container (margin:0 -16px), so
         the standard 78% stop lands ~9px inside the visible right boundary.
         Shifting to 82% puts the fade onset at the true visible right edge. */
      -webkit-mask-image: linear-gradient(to right, #000 82%, transparent 100%);
      mask-image:         linear-gradient(to right, #000 82%, transparent 100%);
    }
    .fsvp-spot-scroll::-webkit-scrollbar { display:none; }
    /* Task #32 — bidirectional override when wknd-scroll-fade.js toggles
       .wknd-rl (scrollLeft > 0). The global .wknd-rl rule uses a 10% left-
       fade stop which lands ~9px into the first visible card on this rail
       (the element bleeds 16px left of the container). Cap the left stop at
       4% so the fade stays entirely within the invisible padding bleed. */
    .fsvp-spot-scroll.wknd-rl {
      -webkit-mask-image: linear-gradient(to right, transparent 0%, #000 4%, #000 82%, transparent 100%) !important;
      mask-image:         linear-gradient(to right, transparent 0%, #000 4%, #000 82%, transparent 100%) !important;
    }
    .fsvp-spot-card {
      flex-shrink:0;
      width:72vw;max-width:260px;
      border-radius:20px;overflow:hidden;background:#fff;
      box-shadow:0 4px 24px rgba(79,70,229,.13),0 1px 4px rgba(0,0,0,.06);
      scroll-snap-align:start;
    }
    .fsvp-spot-img-wrap {
      position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;
      background:#F5F3FF;
    }
    .fsvp-spot-img { width:100%;height:100%;object-fit:cover;display:block; }
    .fsvp-spot-placeholder {
      width:100%;aspect-ratio:4/5;display:flex;align-items:center;
      justify-content:center;font-size:48px;background:#F5F3FF;
    }
    .fsvp-spot-price-badge {
      position:absolute;bottom:10px;right:10px;
      background:rgba(255,255,255,.90);
      backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
      color:#1E1B4B;font-size:14px;font-weight:800;
      padding:4px 11px;border-radius:16px;letter-spacing:-.02em;
      box-shadow:0 1px 8px rgba(0,0,0,.13);
    }
    .fsvp-spot-body { padding:12px 14px 16px; }
    .fsvp-spot-name {
      font-size:15px;font-weight:800;color:#111827;letter-spacing:-.03em;
      line-height:1.2;margin:0 0 5px;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    .fsvp-spot-body-price {
      font-size:14px;font-weight:700;color:#4F46E5;margin:0 0 5px;
      letter-spacing:-.01em;
    }
    .fsvp-spot-desc {
      font-size:15px;color:#6B7280;line-height:1.5;margin:0;
      display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
      overflow:hidden;
    }

    /* ── Track Record stat cards ────────────────────── */
    .fsvp-stat-cards {
      display:flex;gap:10px;padding:4px 0 8px;
    }
    .fsvp-stat-card {
      flex:1;background:#F9FAFB;border:1.5px solid #E5E7EB;border-radius:14px;
      padding:16px 10px 14px;text-align:center;
    }
    .fsvp-stat-num {
      font-size:24px;font-weight:800;color:#111827;letter-spacing:-0.02em;line-height:1;
    }
    .fsvp-stat-label {
      font-size:12px;font-weight:700;color:#9CA3AF;margin-top:5px;
      text-transform:uppercase;letter-spacing:0.07em;
    }
    .fsvp-stat-good { color:#059669; }
    .fsvp-stat-star { color:#F59E0B; }

    /* ── Similar vendor category tag ────────────────── */
    .fsvp-similar-tag {
      display:inline-block;background:#EDE9FE;color:#6D28D9;
      font-size:13px;font-weight:600;padding:2px 8px;border-radius:20px;
      margin-top:4px;white-space:nowrap;
    }

    /* ── 7. EDITORIAL SECTION SYSTEM ────────────────── */
    /* Clean borderless sections — content breathes, no dashboard cards */
    .fsvp-sec {
      background: transparent;
      border-radius: 0;
      padding: 24px 20px;
      border: none;
      border-bottom: 1px solid #F3F4F6;
      margin-top: 0;
      box-shadow: none;
      overflow: visible;
    }
    .fsvp-sec:last-of-type { border-bottom: none; }

    /* ── Weekend availability calendar ──────────────────────────────── */
    .cal-month-block { margin-bottom: 18px; }
    .cal-month-label {
      font-size: 12px; font-weight: 800; letter-spacing: 0.16em;
      text-transform: uppercase; color: #9CA3AF; margin-bottom: 8px;
    }
    .cal-weekend-row {
      display: flex; align-items: center; gap: 10px;
      padding: 10px 13px; border-radius: 11px;
      border: 1.5px solid #F3F4F6; background: #FAFAFA;
      margin-bottom: 7px;
    }
    .cal-weekend-row--booked {
      border-color: rgba(124,58,237,.22);
      background: rgba(124,58,237,.05);
    }
    .cal-weekend-dot {
      width: 7px; height: 7px; border-radius: 50%;
      background: #D1D5DB; flex-shrink: 0;
    }
    .cal-weekend-row--booked .cal-weekend-dot { background: #7C3AED; }
    .cal-weekend-dates {
      font-size: 13px; font-weight: 700; color: #6B7280;
      min-width: 72px; flex-shrink: 0;
    }
    .cal-weekend-row--booked .cal-weekend-dates { color: #7C3AED; }
    .cal-weekend-status {
      flex: 1; font-size: 13px; color: #9CA3AF;
      white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    }
    .cal-weekend-row--booked .cal-weekend-status {
      color: #5B21B6; font-weight: 600;
    }
    .cal-open-chip {
      font-size: 13px; font-weight: 700; letter-spacing: 0.06em;
      color: #059669; background: rgba(16,185,129,.1);
      border: 1px solid rgba(16,185,129,.2);
      border-radius: 20px; padding: 2px 8px; flex-shrink: 0;
    }

    /* Follow: transparent container, follow-card is the visual */
    #follow-section    { background:transparent;border:none;box-shadow:none;padding:20px 20px;border-radius:0; }
    /* Edge-to-edge scroll sections */
    #photos-section  { padding-left:0; padding-right:0; }
    #similar-section { padding-left:0; padding-right:0; }
    #photos-section .fsvp-sec-hd,
    #similar-section .fsvp-sec-hd { padding-left:20px; padding-right:20px; }

    /* Section header — understated uppercase label */
    .fsvp-sec-hd {
      display: flex; align-items: center; justify-content: space-between;
      padding: 0 0 14px;
      margin-bottom: 0;
      gap: 10px;
    }
    .fsvp-sec-hd-left { display: flex; align-items: center; gap: 8px; }
    .fsvp-sec-icon { display: inline; font-style: normal; }
    .fsvp-sec-num  { display: none; }
    .fsvp-sec-title {
      font-size: 12px; font-weight: 700; letter-spacing: 0.08em;
      text-transform: uppercase; color: #374151;
    }
    .fsvp-see-all {
      font-size: 12px; font-weight: 600; color: #6D28D9; cursor: pointer;
      flex-shrink: 0; letter-spacing: 0.02em;
    }
    /* Message-only row: expand to fill the full pair width */
    .fsvp-btn-pair--single { display: flex; }
    .fsvp-btn-pair--single .fsvp-action-btn--book { flex: 1; }

    /* Vending Resume divider — subtle break between profile and history */
    .fsvp-resume-divider {
      display: flex; align-items: center; gap: 10px;
      padding: 4px 20px;
      font-size: 12px; font-weight: 700; letter-spacing: .12em;
      text-transform: uppercase; color: #D1D5DB;
    }
    .fsvp-resume-divider::before,
    .fsvp-resume-divider::after { content:''; flex:1; height:1px; background:#F3F4F6; }
    .fsvp-resume-divider-ico { font-size:12px; opacity:0.5; }
    .fsvp-resume-divider-label { white-space:nowrap; }

    /* Report link — small, centered in the flex column */
    .fsvp-report { text-align:center; padding:4px 0 0; }
    .fsvp-report-btn {
      background:none; border:none; color:#D1D5DB; font-size:12px;
      cursor:pointer; padding:6px 12px; font-family:inherit;
    }
    .fsvp-report-btn:hover { color:#9CA3AF; }
    .fsvp-compat {
      font-size:13px;color:#F97316;font-weight:600;
      display:flex;align-items:center;gap:3px;
    }
    .fsvp-social-links { display:flex;gap:6px;flex-wrap:wrap; }
    .fsvp-soc-btn {
      display:inline-flex;align-items:center;gap:5px;
      padding:5px 11px;border-radius:99px;
      font-size:12px;font-weight:600;letter-spacing:.01em;
      cursor:pointer;text-decoration:none;
      border:1.5px solid transparent;
      transition:opacity .15s,transform .1s;
      white-space:nowrap;
    }
    .fsvp-soc-btn:active { transform:scale(.96); }
    .fsvp-soc-btn--ig  { background:#fdf2f8;border-color:#f0abca;color:#9d174d; }
    .fsvp-soc-btn--ig:hover  { background:#fce7f3; }
    .fsvp-soc-btn--tt  { background:#f0f0f0;border-color:#d1d5db;color:#111; }
    .fsvp-soc-btn--tt:hover  { background:#e5e7eb; }
    .fsvp-soc-btn--fb  { background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8; }
    .fsvp-soc-btn--fb:hover  { background:#dbeafe; }

    /* About */
    .fsvp-about-sub { font-size:15px;font-weight:600;color:#374151;margin:0 0 8px; }
    .fsvp-bio-text {
      font-size:15px;color:#374151;line-height:1.65;margin:0;
      white-space:pre-wrap;word-break:break-word;
    }
    .fsvp-read-more {
      background:none;border:none;padding:6px 0 0;
      font-size:13.5px;font-weight:600;color:#4F46E5;
      cursor:pointer;font-family:inherit;
    }

    /* Keyword pills — About section */
    .fsvp-kw-pills { display:flex;flex-wrap:wrap;gap:6px;margin-top:14px; }
    .fsvp-kw-pill {
      font-size:12px;font-weight:600;color:#4F46E5;
      background:#EEF2FF;border:1px solid #C7D2FE;
      border-radius:100px;padding:4px 11px;letter-spacing:0.01em;
    }

    /* Proof bar — compact trust signals above section 01 */
    .fsvp-proof-bar {
      display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0;
      padding:10px 20px 14px;font-size:13px;font-weight:500;color:#6B7280;
    }
    .fsvp-proof-atom { white-space:nowrap; }
    .fsvp-proof-sep { margin:0 8px;color:#D1D5DB; }
    .fsvp-rate-link {
      display:block;text-align:center;font-size:12px;font-weight:600;
      color:#9CA3AF;padding:0 0 16px;cursor:pointer;
      background:none;border:none;font-family:inherit;width:100%;
    }
    .fsvp-rate-link:hover { color:#7C3AED; }

    /* ── Rating modal ─────────────────────────────────────────── */
    .rate-overlay {
      position:fixed;inset:0;z-index:99999;
      background:rgba(0,0,0,.55);backdrop-filter:blur(4px);
      display:flex;align-items:flex-end;justify-content:center;
      padding-bottom:env(safe-area-inset-bottom,0);
    }
    .rate-card {
      background:#fff;border-radius:24px 24px 0 0;width:100%;max-width:520px;
      padding:28px 24px 36px;
      animation:rateSlideUp .28s cubic-bezier(.32,1,.48,1) both;
    }
    @keyframes rateSlideUp { from { transform:translateY(100%); } to { transform:translateY(0); } }
    .rate-hd {
      display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;
    }
    .rate-title { font-size:18px;font-weight:700;color:#111827; }
    .rate-close {
      width:32px;height:32px;border-radius:50%;background:#F3F4F6;border:none;
      font-size:18px;color:#6B7280;cursor:pointer;display:flex;align-items:center;justify-content:center;
    }
    .rate-stars-row {
      display:flex;gap:10px;justify-content:center;margin-bottom:8px;
    }
    .rate-star {
      font-size:40px;cursor:pointer;line-height:1;
      color:#E5E7EB;transition:color .12s,transform .12s;user-select:none;
    }
    .rate-star.lit { color:#F59E0B; }
    .rate-star:hover { transform:scale(1.15); }
    .rate-star-label {
      text-align:center;font-size:13px;font-weight:600;color:#7C3AED;
      min-height:20px;margin-bottom:16px;
    }
    .rate-textarea {
      width:100%;box-sizing:border-box;border:1.5px solid #E5E7EB;border-radius:12px;
      padding:12px 14px;font-size:16px;font-family:inherit;color:#111827;
      resize:none;height:88px;outline:none;transition:border-color .15s;
    }
    .rate-textarea:focus { border-color:#7C3AED; }
    .rate-char-count { text-align:right;font-size:12px;color:#9CA3AF;margin:4px 2px 16px; }
    .rate-input {
      width:100%;box-sizing:border-box;border:1.5px solid #E5E7EB;border-radius:12px;
      padding:13px 14px;font-size:16px;font-family:inherit;color:#111827;
      outline:none;transition:border-color .15s;
    }
    .rate-input:focus { border-color:#7C3AED; }
    .rate-otp-row { display:flex;gap:8px;margin-top:12px; }
    .rate-otp-input {
      flex:1;border:1.5px solid #E5E7EB;border-radius:12px;
      padding:13px 14px;font-size:18px;letter-spacing:.3em;font-family:inherit;color:#111827;
      outline:none;text-align:center;transition:border-color .15s;
    }
    .rate-otp-input:focus { border-color:#7C3AED; }
    .rate-resend {
      background:none;border:none;font-family:inherit;font-size:13px;
      font-weight:600;color:#7C3AED;cursor:pointer;padding:6px 0 0;
    }
    .rate-btn {
      width:100%;padding:15px;border:none;border-radius:14px;
      background:linear-gradient(135deg,#4F46E5,#7C3AED);color:#fff;
      font-size:16px;font-weight:700;font-family:inherit;cursor:pointer;
      transition:opacity .15s;margin-top:18px;
    }
    .rate-btn:disabled { opacity:.55;cursor:default; }
    .rate-sub { font-size:15px;color:#6B7280;margin:10px 0 0;text-align:center;line-height:1.5; }
    .rate-err { font-size:13px;color:#EF4444;margin:10px 0 0;text-align:center;min-height:20px; }
    .rate-done { text-align:center;padding:10px 0 4px; }
    .rate-done-ico { font-size:56px;margin-bottom:8px; }
    .rate-done-title { font-size:18px;font-weight:700;color:#111827;margin-bottom:6px; }
    .rate-done-sub { font-size:15px;color:#6B7280;line-height:1.5; }

    /* Tags (reliability, requirements) */
    .fsvp-tag-row { display:flex;flex-wrap:wrap;gap:8px; }
    .fsvp-tag {
      font-size:13px;color:#374151;font-weight:500;
      padding:5px 13px;border-radius:100px;
      background:#F3F4F6;border:1px solid #E5E7EB;
    }

    /* Availability calendar */
    .fsvp-avail-sub { font-size:15px;font-weight:600;color:#374151;margin-bottom:13px; }
    .fsvp-calendar {
      background:#fff;border-radius:16px;padding:16px;
      border:1px solid #E9E7F6;
    }
    .fsvp-cal-nav {
      display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;
    }
    .fsvp-cal-month { font-size:15px;font-weight:700;color:#111827; }
    .fsvp-cal-arrow {
      width:30px;height:30px;border-radius:50%;
      background:#F3F4F6;border:none;cursor:pointer;
      display:flex;align-items:center;justify-content:center;
      font-size:14px;color:#374151;font-family:inherit;
    }
    .fsvp-cal-arrow:hover { background:#E5E7EB; }
    .fsvp-cal-grid {
      display:grid;grid-template-columns:repeat(7,1fr);gap:3px;
    }
    .fsvp-cal-dow {
      text-align:center;font-size:12px;font-weight:600;color:#9CA3AF;
      padding:3px 0;text-transform:uppercase;letter-spacing:.04em;
    }
    .fsvp-cal-day {
      aspect-ratio:1;display:flex;align-items:center;justify-content:center;
      font-size:12.5px;color:#374151;border-radius:50%;font-weight:500;
    }
    .fsvp-cal-day--event { background:#4F46E5;color:#fff;font-weight:700; }
    .fsvp-cal-day--today { border:2px solid #4F46E5;font-weight:700; }
    .fsvp-cal-day--dim { color:#D1D5DB; }

    /* ── Availability event list ─────────────────────────────── */
    .fsvp-avail-list { display:flex;flex-direction:column;gap:10px; }
    .fsvp-avail-card {
      display:flex;align-items:center;gap:14px;
      background:#F9F8FF;border-radius:16px;padding:14px 16px;
    }
    .fsvp-avail-date {
      flex-shrink:0;text-align:center;min-width:46px;
      background:#4F46E5;color:#fff;border-radius:12px;padding:8px 10px;
    }
    .fsvp-avail-month {
      font-size:12px;font-weight:700;letter-spacing:.09em;
      text-transform:uppercase;opacity:.85;
    }
    .fsvp-avail-day { font-size:24px;font-weight:900;line-height:1.05; }
    .fsvp-avail-info { flex:1;min-width:0; }
    .fsvp-avail-name {
      font-size:14px;font-weight:700;color:#111827;
      margin:0 0 2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    .fsvp-avail-loc {
      font-size:12px;color:#6B7280;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    .fsvp-avail-badge {
      display:inline-block;margin-top:4px;
      font-size:12px;font-weight:700;padding:2px 8px;border-radius:8px;
    }
    .fsvp-avail-badge--open { background:rgba(16,185,129,.1);color:#059669; }
    .fsvp-avail-badge--full { background:#F3F4F6;color:#9CA3AF; }
    .fsvp-avail-badge--soon { background:rgba(245,158,11,.1);color:#D97706; }
    .fsvp-avail-empty {
      text-align:center;padding:24px 16px;color:#9CA3AF;font-size:14px;
      background:#F9F8FF;border-radius:16px;
    }
    .fsvp-avail-empty-ico { font-size:30px;margin-bottom:8px; }
    .fsvp-avail-empty-txt { font-weight:600;color:#6B7280; }

    /* Item list */
    .fsvp-item-list { display:flex;flex-direction:column; }
    .fsvp-item {
      display:flex;align-items:center;gap:13px;
      padding:11px 0;border-bottom:1px solid #F3F4F6;
    }
    .fsvp-item:last-child { border-bottom:none; }
    .fsvp-item-thumb {
      width:52px;height:52px;border-radius:10px;overflow:hidden;flex-shrink:0;
      background:#F3F4F6;
    }
    .fsvp-item-thumb img { width:100%;height:100%;object-fit:cover;display:block; }
    .fsvp-item-thumb--placeholder {
      display:flex;align-items:center;justify-content:center;font-size:20px;
      width:52px;height:52px;border-radius:10px;flex-shrink:0;
      background:linear-gradient(135deg,#EDE9FE,#F5F3FF);
    }
    .fsvp-item-info { flex:1;min-width:0; }
    .fsvp-item-name {
      font-size:14px;font-weight:600;color:#111827;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px;
    }
    .fsvp-item-sub { font-size:15px;color:#9CA3AF; }
    .fsvp-item-price {
      font-size:14px;font-weight:700;color:#111827;flex-shrink:0;
    }

    /* Similar vendors */
    .fsvp-similar-scroll {
      display:flex;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;
      padding:0 2px 7px;scroll-snap-type:x mandatory;
      scrollbar-width:thin;scrollbar-color:#C4B5FD transparent;
    }
    .fsvp-similar-scroll::-webkit-scrollbar { height:5px; }
    .fsvp-similar-scroll::-webkit-scrollbar-thumb { background:#C4B5FD;border-radius:999px; }
    .fsvp-similar-card { flex-shrink:0;width:130px;scroll-snap-align:start;cursor:pointer; }
    .fsvp-similar-hint { margin:8px 2px 0;font-size:12px;color:#6B7280;font-weight:600; }
    .fsvp-similar-photo {
      width:130px;height:160px;border-radius:16px;overflow:hidden;margin-bottom:7px;
      background:linear-gradient(135deg,#EDE9FE,#F5F3FF);
    }
    .fsvp-similar-photo img { width:100%;height:100%;object-fit:cover;display:block; }
    .fsvp-similar-name {
      font-size:18px;font-weight:700;color:#111827;margin-bottom:2px;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    .fsvp-similar-cats { font-size:12px;color:#9CA3AF; }

    /* Report — see section card system block above for full styles */

    /* No events */
    .fsvp-no-events { padding:18px 0;text-align:center; }
    .fsvp-no-ev-ico { font-size:30px;margin-bottom:10px; }
    .fsvp-no-ev-title { font-size:18px;font-weight:700;color:#374151;margin-bottom:6px; }
    .fsvp-no-ev-sub { font-size:15px;color:#6B7280;margin-bottom:14px;line-height:1.5; }
    .fsvp-notify-btn {
      padding:10px 20px;border-radius:100px;
      background:#4F46E5;color:#fff;font-size:13px;font-weight:700;
      border:none;cursor:pointer;font-family:inherit;
    }

    /* Badge on events header */
    .fsvp-ev-badge {
      font-size:13px;font-weight:700;color:#7C3AED;
      background:rgba(124,58,237,.1);border-radius:100px;padding:3px 10px;
    }

    /* Add photo button (new style) */
    .fsvp-add-btn {
      background:rgba(124,58,237,.08);border:1.5px solid rgba(124,58,237,.25);
      border-radius:8px;color:#7C3AED;font-size:12px;font-weight:700;
      padding:5px 12px;cursor:pointer;font-family:inherit;
    }
    /* Sync IG button — sits beside Add in the portfolio header */
    .fsvp-sync-btn {
      background:#F5F3FF;border:1.5px solid #C4B5FD;
      border-radius:8px;color:#7C3AED;font-size:12px;font-weight:700;
      padding:5px 12px;cursor:pointer;font-family:inherit;white-space:nowrap;
      transition:background .15s,border-color .15s;
    }
    .fsvp-sync-btn:hover { background:#EDE9FE;border-color:#7C3AED; }
    .fsvp-sync-btn:disabled { opacity:.5;cursor:not-allowed; }
    /* Two-button row inside empty state */
    .photo-empty-actions {
      display:flex;gap:10px;flex-wrap:wrap;justify-content:center;
    }
    .photo-empty-cta--secondary {
      display:inline-flex;align-items:center;gap:7px;
      padding:12px 22px;border-radius:12px;
      background:#fff;color:#7C3AED;border:2px solid #C4B5FD;
      font-size:14px;font-weight:800;cursor:pointer;font-family:inherit;
      transition:background .15s,border-color .15s;
      box-shadow:0 2px 8px rgba(124,58,237,.12);
    }
    .photo-empty-cta--secondary:hover { background:#EDE9FE;border-color:#7C3AED; }
    .photo-empty-cta--secondary:disabled { opacity:.5;cursor:not-allowed; }

    /* ── "Suggest an Event" tip sheet ──────────────── */
    .fsvp-tip-trigger {
      display:inline-flex;align-items:center;gap:5px;
      font-size:13px;font-weight:600;color:#7C3AED;
      background:none;border:none;cursor:pointer;padding:0;
      font-family:inherit;text-decoration:none;
    }
    .fsvp-tip-trigger:active { opacity:.65; }
    .fsvp-tip-sheet {
      position:fixed;inset:0;z-index:9998;display:flex;align-items:flex-end;
      background:rgba(17,24,39,.42);backdrop-filter:blur(5px);
      transition:opacity .22s;opacity:0;pointer-events:none;
    }
    .fsvp-tip-sheet.open { opacity:1;pointer-events:all; }
    .fsvp-tip-inner {
      width:100%;max-width:640px;margin:0 auto;
      background:#fff;border-radius:24px 24px 0 0;
      padding:20px 20px calc(28px + env(safe-area-inset-bottom,0px));
      transform:translateY(100%);transition:transform .3s cubic-bezier(.22,.61,.36,1);
      max-height:92vh;overflow-y:auto;
    }
    .fsvp-tip-sheet.open .fsvp-tip-inner { transform:translateY(0); }
    .fsvp-tip-pill { width:36px;height:4px;background:#E5E7EB;border-radius:2px;margin:0 auto 18px;cursor:grab; }
    .fsvp-tip-hd { display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px; }
    .fsvp-tip-title { font-size:19px;font-weight:800;color:#111827;letter-spacing:-.025em;line-height:1.2; }
    .fsvp-tip-close { background:rgba(0,0,0,.06);border:none;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
    .fsvp-tip-sub { font-size:15px;color:#6B7280;margin-bottom:20px;line-height:1.5; }
    .fsvp-tip-label { font-size:13px;font-weight:700;color:#374151;margin-bottom:5px;display:block;letter-spacing:.02em;text-transform:uppercase; }
    .fsvp-tip-input {
      width:100%;box-sizing:border-box;border:1.5px solid #E9EAF0;border-radius:12px;
      font-size:16px;font-family:inherit;padding:11px 14px;outline:none;
      background:#FAFAFE;margin-bottom:12px;color:#111827;
      transition:border-color .15s,box-shadow .15s;
    }
    .fsvp-tip-input:focus { border-color:#7C3AED;background:#fff;box-shadow:0 0 0 3px rgba(124,58,237,.1); }
    .fsvp-tip-submit {
      width:100%;padding:14px;border:none;border-radius:14px;cursor:pointer;
      background:linear-gradient(135deg,#4F46E5,#7C3AED);color:#fff;
      font-size:15px;font-weight:700;font-family:inherit;letter-spacing:-.01em;
      margin-top:4px;transition:opacity .15s,transform .12s;
    }
    .fsvp-tip-submit:active { opacity:.87;transform:scale(.98); }
    .fsvp-tip-submit:disabled { opacity:.5;cursor:default; }
    .fsvp-tip-success { text-align:center;padding:28px 0 8px;display:none; }
    .fsvp-tip-suc-ico { font-size:44px;margin-bottom:12px; }
    .fsvp-tip-suc-title { font-size:18px;font-weight:800;color:#111827;margin-bottom:8px;letter-spacing:-.02em; }
    .fsvp-tip-suc-sub { font-size:15px;color:#6B7280;line-height:1.55; }

    /* ── Float bar redesign ─────────────────────────── */
    .svp-float-bar {
      position:fixed;bottom:0;left:0;right:0;max-width:640px;margin:0 auto;
      z-index:900;
      background:rgba(255,255,255,.97);backdrop-filter:blur(20px) saturate(180%);
      -webkit-backdrop-filter:blur(20px) saturate(180%);
      border-top:1px solid rgba(0,0,0,.06);
      padding:12px 20px calc(14px + env(safe-area-inset-bottom,0px));
      display:flex;align-items:center;
      box-shadow:0 -4px 24px rgba(0,0,0,.07);
      transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);
    }
    .svp-float-bar.visible { transform:translateY(0); }
    .fsvp-float-pill {
      width:100%;padding:13px 16px;border-radius:14px;
      background:linear-gradient(135deg,#4F46E5,#7C3AED);
      color:#fff;font-size:15px;font-weight:700;border:none;cursor:pointer;
      font-family:inherit;letter-spacing:.01em;
      box-shadow:0 4px 16px rgba(79,70,229,.28);
      transition:filter .15s, transform .1s;
      display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
      min-height:52px;
    }
    .fsvp-float-pill:active { filter:brightness(.92); transform:scale(.99); }
    .svp-float-follow-name {
      font-size:12px;font-weight:500;opacity:.78;letter-spacing:0;
      max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
      display:block;
    }
    /* org mode: green tint */
    .fsvp-float-pill.org-mode {
      background:linear-gradient(135deg,#059669,#0D9488);
      box-shadow:0 4px 16px rgba(5,150,105,.28);
    }

    /* Override old float bar pieces (no longer used) */
    .svp-float-left, .svp-float-name, .svp-float-sub { display:none!important; }

    /* ── Always-on hidden fix ── */
    [hidden] { display:none!important; }
    /* The internal dev persona switcher is not a public SVP control. */
    #wknd-ps { display:none!important; }

    /* ══ SVP REDESIGN — proof nums · next appear · bio pull · share sheet ══ */

    /* Proof nums: 3 bold stats in a card row */
    .svp-proof-nums {
      display:flex;border:1.5px solid #E5E7EB;border-radius:14px;
      overflow:hidden;margin:12px 0 10px;background:#fff;
      box-shadow:0 1px 6px rgba(0,0,0,.04);
    }
    .svp-proof-nums > div {
      flex:1;text-align:center;padding:12px 6px;
      border-right:1.5px solid #F3F4F6;
      display:flex;flex-direction:column;align-items:center;gap:1px;
    }
    .svp-proof-nums > .svp-pn-cell:last-child { border-right:none; }
    /* legacy plain-div fallback */
    .svp-proof-nums > div:last-child { border-right:none; }
    /* clickable stat cell */
    .svp-pn-cell {
      text-decoration:none;color:inherit;cursor:pointer;
      display:flex;flex-direction:column;align-items:center;gap:1px;
      flex:1;padding:4px 0;
      border-right:1.5px solid #F3F4F6;
      transition:opacity .15s;
      -webkit-tap-highlight-color:transparent;
    }
    .svp-pn-cell:last-child { border-right:none; }
    .svp-pn-cell:active { opacity:.65; }
    .svp-pn-num {
      font-size:20px;font-weight:900;color:#111827;line-height:1.1;
      letter-spacing:-.02em;
    }
    .svp-pn-num--gold  { color:#D97706; }
    .svp-pn-num--green { color:#059669; }
    .svp-pn-num--purple{ color:#7C3AED; }
    .svp-pn-lbl {
      font-size:12px;font-weight:700;letter-spacing:.05em;
      text-transform:uppercase;color:#9CA3AF;
    }

    /* ── Total Reach bar — aggregated social following ──────────── */
    .svp-reach-row {
      display:flex;align-items:stretch;gap:0;
      margin:12px 0 0;
      border:1.5px solid #F3F4F6;border-radius:16px;overflow:hidden;
      background:#FAFAFA;
    }
    /* Each platform cell */
    .svp-reach-plat {
      flex:1;display:flex;flex-direction:column;align-items:center;
      justify-content:center;gap:2px;padding:8px 4px;
      border-right:1.5px solid #F3F4F6;
      background:#fff;
      position:relative;
    }
    .svp-reach-plat:last-child { border-right:none; }
    .svp-reach-plat-ico {
      width:20px;height:20px;border-radius:6px;
      display:flex;align-items:center;justify-content:center;
      font-size:12px;font-weight:900;
      flex-shrink:0;
    }
    .svp-reach-plat-ico--ig  { background:linear-gradient(135deg,#F58529,#DD2A7B,#8134AF);color:#fff; }
    .svp-reach-plat-ico--tt  { background:#000;color:#fff; }
    .svp-reach-plat-ico--fb  { background:#1877F2;color:#fff;font-family:serif;font-size:13px; }
    .svp-reach-plat-cnt {
      font-size:13px;font-weight:900;color:#111827;letter-spacing:-.02em;line-height:1;
    }
    .svp-reach-plat-lbl {
      font-size:12px;font-weight:700;letter-spacing:.06em;
      text-transform:uppercase;color:#9CA3AF;
    }
    /* Total reach summary cell */
    .svp-reach-total-cell {
      flex:1.3;display:flex;flex-direction:column;align-items:center;
      justify-content:center;gap:2px;padding:8px 6px;
      background:linear-gradient(135deg,rgba(124,58,237,.06),rgba(236,72,153,.04));
      border-left:1.5px solid rgba(124,58,237,.12);
    }
    .svp-reach-total-num {
      font-size:15px;font-weight:900;color:#7C3AED;letter-spacing:-.025em;line-height:1;
    }
    .svp-reach-total-lbl {
      font-size:12px;font-weight:700;letter-spacing:.06em;
      text-transform:uppercase;color:#A78BFA;
    }
    /* Hidden compat stubs */
    .svp-reach-lbl { display:none; }
    .svp-reach-sep { display:none; }
    .svp-reach-total { display:none; }
    /* Owner-only connect-socials prompt */
    .svp-reach-connect {
      display:flex;align-items:center;gap:10px;
      margin:12px 0 0;padding:12px 16px;
      border:1.5px dashed rgba(124,58,237,.25);border-radius:16px;
      background:rgba(124,58,237,.04);
      text-decoration:none;
      transition:background .15s,border-color .15s;
    }
    .svp-reach-connect:hover { background:rgba(124,58,237,.08);border-color:rgba(124,58,237,.4); }
    .svp-reach-connect-ico {
      font-size:20px;flex-shrink:0;
      width:36px;height:36px;border-radius:10px;
      background:rgba(124,58,237,.08);
      display:flex;align-items:center;justify-content:center;
    }
    .svp-reach-connect-body { flex:1;min-width:0; }
    .svp-reach-connect-title {
      font-size:13px;font-weight:700;color:#7C3AED;line-height:1.3;
    }
    .svp-reach-connect-sub {
      font-size:13px;color:#9CA3AF;margin-top:2px;line-height:1.35;
    }
    .svp-reach-connect-arrow { font-size:14px;color:#A78BFA;flex-shrink:0; }

    /* Next appearance chip — calendar-hero card */
    .svp-next-appear {
      display:flex;align-items:stretch;gap:0;
      border:1.5px solid rgba(124,58,237,.18);border-radius:16px;
      overflow:hidden;margin:14px 0 0;text-decoration:none;cursor:pointer;
      background:#fff;box-shadow:0 2px 12px rgba(124,58,237,.1);
    }
    /* Left: date block */
    .svp-na-date-block {
      flex-shrink:0;width:64px;
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      padding:14px 6px;gap:2px;
      background:linear-gradient(135deg,#7C3AED,#C026D3);
    }
    .svp-na-month {
      font-size:12px;font-weight:900;letter-spacing:.14em;
      text-transform:uppercase;color:rgba(255,255,255,.85);
    }
    .svp-na-day   { font-size:26px;font-weight:900;color:#fff;line-height:1; }
    .svp-na-dow   { font-size:12px;font-weight:700;letter-spacing:.1em;
                    text-transform:uppercase;color:rgba(255,255,255,.75); }
    /* Right: body */
    .svp-na-body { flex:1;min-width:0;padding:12px 14px;display:flex;flex-direction:column;justify-content:center;gap:3px; }
    .svp-na-label {
      font-size:12px;font-weight:800;letter-spacing:.1em;
      text-transform:uppercase;color:#7C3AED;display:flex;align-items:center;gap:5px;
    }
    .svp-na-dot {
      width:6px;height:6px;border-radius:50%;background:#7C3AED;flex-shrink:0;
      animation:svpNaPulse 2s ease-in-out infinite;
    }
    @keyframes svpNaPulse {
      0%,100% { box-shadow:0 0 0 0 rgba(124,58,237,.4); }
      50%      { box-shadow:0 0 0 4px rgba(124,58,237,.08); }
    }
    .svp-na-name  { font-size:18px;font-weight:800;color:#111827;
                    line-height:1.25;
                    white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
    .svp-na-date  { font-size:12px;color:#6B7280;line-height:1.3; }
    .svp-na-arrow { font-size:18px;color:#C4B5FD;flex-shrink:0;padding:0 14px 0 6px;display:flex;align-items:center; }

    /* Broadcasting CTA — owner-only card */
    .svp-broadcast-cta {
      display:none;
      margin:16px 0 0;
      border:1.5px solid rgba(124,58,237,.2);border-radius:16px;
      background:linear-gradient(135deg,rgba(124,58,237,.05),rgba(236,72,153,.04));
      overflow:hidden;
    }
    .svp-broadcast-cta.svp-broadcast-visible { display:block; }
    .svp-broadcast-inner { padding:16px 18px; }
    .svp-broadcast-eyebrow {
      display:flex;align-items:center;gap:6px;
      font-size:12px;font-weight:900;letter-spacing:.14em;
      text-transform:uppercase;color:#7C3AED;margin-bottom:8px;
    }
    .svp-broadcast-dot {
      width:6px;height:6px;border-radius:50%;background:#7C3AED;
      animation:svpNaPulse 1.8s ease-in-out infinite;
    }
    .svp-broadcast-title {
      font-size:18px;font-weight:800;color:#111827;margin:0 0 3px;line-height:1.3;
    }
    .svp-broadcast-sub {
      font-size:15px;color:#6B7280;margin:0 0 14px;line-height:1.45;
    }
    .svp-broadcast-btn {
      width:100%;padding:13px;border:none;border-radius:12px;
      background:var(--purple, #7C3AED);color:#fff;
      font-size:14px;font-weight:800;font-family:inherit;cursor:pointer;
      letter-spacing:.01em;box-shadow:0 4px 14px rgba(124,58,237,.28);
      transition:filter .1s;
    }
    .svp-broadcast-btn:active { filter:brightness(.93); }
    /* Audience size chip — shown above the broadcast title for owners */
    .svp-broadcast-audience {
      font-size:12.5px;font-weight:600;color:#6B7280;
      margin:0 0 10px;letter-spacing:.01em;
    }
    .svp-broadcast-audience-num {
      font-size:18px;font-weight:900;color:#7C3AED;
      letter-spacing:-.02em;
    }

    /* Bio pull-quote above fold */
    .svp-bio-pull {
      font-size:15px;font-weight:500;color:#374151;line-height:1.6;
      margin:0 0 14px;padding:11px 14px;
      background:#FAFAFA;border-radius:11px;
      border-left:3px solid #7C3AED;font-style:italic;
    }

    /* Follow button with subtitle */
    .svp-cta-wrap  { display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none; }
    .svp-cta-main  { font-size:15px;font-weight:800;letter-spacing:.01em; }
    .svp-cta-sub   { font-size:15px;font-weight:500;opacity:.82;letter-spacing:.005em; }

    /* Float bar two-pill layout */
    .svp-float-2pill { display:flex;gap:10px;width:100%; }
    .svp-float-2pill .fsvp-float-pill { flex:1.4; }
    .svp-float-book-pill {
      flex:1;padding:13px 10px;border-radius:14px;
      background:#fff;color:#374151;
      border:1.5px solid #E5E7EB;
      font-size:14px;font-weight:700;font-family:inherit;cursor:pointer;
      box-shadow:0 1px 6px rgba(0,0,0,.07);
      transition:filter .15s, transform .1s;
      white-space:nowrap;
      display:flex;align-items:center;justify-content:center;
      min-height:52px;
    }
    .svp-float-book-pill:active { filter:brightness(.96); transform:scale(.99); }

    /* Custom share sheet */
    .svp-share-sheet {
      position:fixed;inset:0;z-index:1100;
      display:flex;flex-direction:column;justify-content:flex-end;
    }
    .svp-share-overlay {
      position:absolute;inset:0;background:rgba(0,0,0,.5);
      backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
    }
    .svp-share-inner {
      position:relative;background:#fff;border-radius:24px 24px 0 0;
      padding:8px 20px calc(28px + env(safe-area-inset-bottom,0px));
      max-width:640px;width:100%;margin:0 auto;
      animation:svpShareIn .3s cubic-bezier(.34,1.2,.64,1) forwards;
    }
    @keyframes svpShareIn {
      from { transform:translateY(100%); }
      to   { transform:translateY(0); }
    }
    .svp-share-handle {
      width:36px;height:4px;background:#E5E7EB;border-radius:99px;
      margin:12px auto 18px;
    }
    .svp-share-title {
      font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
      color:#9CA3AF;text-align:center;margin-bottom:16px;
    }
    .svp-share-card {
      display:flex;align-items:center;gap:14px;
      background:linear-gradient(135deg,#4F46E5 0%,#7C3AED 55%,#C026D3 100%);
      border-radius:16px;padding:16px 18px;margin-bottom:20px;
      box-shadow:0 8px 28px rgba(79,70,229,.32);
    }
    .svp-sc-photo {
      width:56px;height:56px;border-radius:11px;
      background:rgba(255,255,255,.2);flex-shrink:0;overflow:hidden;
    }
    .svp-sc-photo img { width:100%;height:100%;object-fit:cover; }
    .svp-sc-body { flex:1;min-width:0; }
    .svp-sc-name  { font-size:18px;font-weight:900;color:#fff;
                    margin-bottom:3px;line-height:1.2; }
    .svp-sc-stats { font-size:12px;color:rgba(255,255,255,.85);margin-bottom:5px; }
    .svp-sc-badge { display:inline-block;background:rgba(255,255,255,.2);
                    border-radius:99px;padding:2px 9px;
                    font-size:12px;font-weight:700;letter-spacing:.06em;
                    text-transform:uppercase;color:#fff; }
    .svp-share-actions {
      display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:14px;
    }
    .svp-share-act {
      background:#F9FAFB;border:1.5px solid #F3F4F6;border-radius:13px;
      padding:14px 8px 12px;font-family:inherit;cursor:pointer;
      text-align:center;transition:background .12s;
      display:flex;flex-direction:column;align-items:center;gap:5px;
    }
    .svp-share-act:active { background:#F3F4F6; }
    .svp-share-act-ico { font-size:22px;line-height:1; }
    .svp-share-act-lbl { font-size:12px;font-weight:700;color:#374151; }
    .svp-share-dismiss {
      width:100%;background:none;border:1.5px solid #E5E7EB;border-radius:13px;
      padding:13px;font-size:14px;font-weight:700;color:#6B7280;
      cursor:pointer;font-family:inherit;transition:background .12s;
    }
    .svp-share-dismiss:active { background:#F9FAFB; }
    /* Featured review strip — make it more prominent */
    #featured-review-strip {
      padding:14px 16px 16px;margin:0 16px 12px;
      background:linear-gradient(135deg,rgba(124,58,237,.04),rgba(236,72,153,.03));
      border:1.5px solid rgba(124,58,237,.14);border-radius:16px;
    }

    /* ── Clickable category chip & keyword pills ── */
    .fsvp-ident-cat--link { text-decoration:none;color:inherit;border-radius:6px;padding:2px 5px;margin:-2px -5px;transition:background .15s; }
    .fsvp-ident-cat--link:hover { background:rgba(0,0,0,.07); }
    a.fsvp-kw-pill { text-decoration:none;cursor:pointer; }
    a.fsvp-kw-pill:hover { background:#E5E7EB; }

    /* Resume divider — see section card system block above for full styles */

    /* ── Pay at the Booth section ── */
    #pay-booth-methods { display:flex;flex-direction:column; }
    .pay-booth-btn {
      display:flex;align-items:center;gap:12px;
      padding:13px 0;
      border:none;border-bottom:1px solid #F3F4F6;
      border-radius:0;background:none;
      text-decoration:none;color:#111827;cursor:pointer;
      width:100%;text-align:left;
      transition:opacity .15s;
    }
    .pay-booth-btn:last-of-type { border-bottom:none; }
    .pay-booth-btn:active { opacity:.65; }
    .pay-booth-ico { width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0; }
    .pay-booth-name { font-size:18px;font-weight:700;flex-shrink:0; }
    .pay-booth-handle { font-size:13px;color:#9CA3AF;font-family:monospace;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-left:6px; }
    .pay-booth-pref-badge { font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#7C3AED;background:rgba(124,58,237,.08);border-radius:4px;padding:2px 6px;flex-shrink:0; }
    .pay-booth-arrow { font-size:14px;color:#C4B5FD;flex-shrink:0;margin-left:6px; }
    .pay-booth-qr-btn { width:100%;margin-top:16px;padding:11px;background:none;border:1.5px dashed #D1D5DB;border-radius:10px;color:#6B7280;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,color .15s;font-family:inherit; }
    .pay-booth-qr-btn:hover { background:#F9FAFB;color:#374151; }
    #pay-booth-qr-wrap { margin-top:12px;background:#F9FAFB;border-radius:14px;padding:18px;text-align:center; }

    /* ── DM thread modal (inquire-overlay / inquire-modal) ── */
    #inquire-overlay { position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:900;backdrop-filter:blur(4px); }
    #inquire-modal { position:fixed;bottom:0;left:0;right:0;max-width:520px;margin:0 auto;background:#fff;border-radius:24px 24px 0 0;z-index:901;display:flex;flex-direction:column;max-height:92dvh;overflow:hidden;box-shadow:0 -8px 32px rgba(0,0,0,.12);transform:none;padding:0; }
    .dm-drag-pill { width:36px;height:4px;background:#E5E7EB;border-radius:2px;margin:12px auto 0;flex-shrink:0; }
    .dm-intro-hd { display:flex;align-items:center;gap:12px;padding:14px 20px 0;flex-shrink:0; }
    .dm-intro-hd-close,.dm-thread-hd-close { width:30px;height:30px;border-radius:50%;background:#F3F4F6;border:none;cursor:pointer;font-size:16px;color:#374151;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
    .dm-intro-hd-close { margin-left:auto; }
    .dm-avatar { width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#7C3AED,#C026D3);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;flex-shrink:0;overflow:hidden; }
    .dm-avatar-img { width:100%;height:100%;object-fit:cover; }
    .dm-intro-vendor-name { font-size:18px;font-weight:800;color:#111827; }
    .dm-intro-tagline { font-size:12px;color:#6B7280;margin-top:1px; }
    .dm-intro-form { padding:14px 20px 20px;overflow-y:auto;flex:1; }
    .dm-field { width:100%;background:#F9FAFB;border:1.5px solid #E5E7EB;border-radius:12px;padding:12px 14px;font-size:16px;color:#111827;outline:none;font-family:inherit;margin-bottom:10px;transition:border-color .15s;display:block; }
    .dm-field:focus { border-color:rgba(124,58,237,.5); }
    .dm-field-ta { resize:none;min-height:72px; }
    .dm-send-btn { width:100%;padding:14px;background:var(--purple, #7C3AED);border:none;border-radius:14px;color:#fff;font-size:15px;font-weight:800;cursor:pointer;margin-top:4px; }
    .dm-send-btn:disabled { opacity:.5;cursor:not-allowed; }
    .dm-err { color:#F43F5E;font-size:13px;margin-top:6px; }
    .dm-thread-hd { display:flex;align-items:center;gap:12px;padding:14px 20px 10px;border-bottom:1px solid #F3F4F6;flex-shrink:0; }
    .dm-thread-hd-close { margin-left:auto; }
    .dm-thread-messages { flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px; }
    .dm-spinner { text-align:center;padding:24px;color:#9CA3AF;font-size:13px; }
    .dm-bubble { max-width:80%; }
    .dm-bubble--mine { align-self:flex-end; }
    .dm-bubble--theirs { align-self:flex-start; }
    .dm-bubble-sender { font-size:12px;color:#9CA3AF;margin-bottom:3px;font-weight:600; }
    .dm-bubble-text { padding:10px 14px;border-radius:18px;font-size:15px;line-height:1.45;word-break:break-word; }
    .dm-bubble--mine .dm-bubble-text { background:linear-gradient(135deg,#7C3AED,#C026D3);color:#fff;border-bottom-right-radius:4px; }
    .dm-bubble--theirs .dm-bubble-text { background:#F3F4F6;color:#111827;border-bottom-left-radius:4px; }
    .dm-reply-bar { display:flex;align-items:flex-end;gap:10px;padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom,12px));border-top:1px solid #F3F4F6;flex-shrink:0;background:#fff; }
    .dm-reply-input { flex:1;background:#F3F4F6;border:none;border-radius:20px;padding:10px 16px;font-size:16px;color:#111827;outline:none;font-family:inherit;resize:none;line-height:1.4;max-height:100px;overflow-y:auto; }
    .dm-reply-send { width:36px;height:36px;border-radius:50%;background:var(--purple, #7C3AED);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;flex-shrink:0; }
    .dm-reply-send:active { opacity:.8; }

  /* ── Event Peek Sheet ──────────────────────────────────────────── */
  .wknd-epk-overlay{position:fixed;inset:0;z-index:99990;background:rgba(0,0,0,.48);display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity .22s;pointer-events:none;}
  .wknd-epk-overlay.wknd-epk--open{opacity:1;pointer-events:auto;}
  .wknd-epk-sheet{width:100%;max-width:480px;background:#fff;border-radius:24px 24px 0 0;overflow:hidden;transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-height:88vh;display:flex;flex-direction:column;}
  .wknd-epk--open .wknd-epk-sheet{transform:translateY(0);}
  .wknd-epk-hero{height:200px;flex-shrink:0;position:relative;overflow:hidden;background:linear-gradient(135deg,#7c3aed,#ec4899);}
  .wknd-epk-hero img{width:100%;height:100%;object-fit:cover;display:block;}
  .wknd-epk-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.65) 0%,rgba(0,0,0,.05) 55%);}
  .wknd-epk-close-btn{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:rgba(0,0,0,.45);border:none;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;}
  .wknd-epk-body{padding:20px 20px 36px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .wknd-epk-pills{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
  .wknd-epk-pill{display:inline-flex;align-items:center;gap:4px;background:#f5f3ff;color:#7c3aed;font-size:13px;font-weight:700;padding:5px 11px;border-radius:20px;}
  .wknd-epk-name{font-size:20px;font-weight:800;color:#111827;line-height:1.25;margin:0 0 5px;}
  .wknd-epk-host{font-size:13px;color:#6b7280;margin:0 0 12px;}
  .wknd-epk-fee{display:inline-flex;align-items:center;gap:5px;background:#f0fdf4;border:1.5px solid #bbf7d0;color:#15803d;font-size:13px;font-weight:700;padding:5px 12px;border-radius:20px;margin-bottom:16px;}
  .wknd-epk-acts{display:flex;gap:10px;margin-top:4px;}
  .wknd-epk-pri{flex:1;padding:14px 0;border:none;border-radius:12px;background:#7c3aed;color:#fff;font-family:inherit;font-size:15px;font-weight:800;cursor:pointer;transition:opacity .15s;}
  .wknd-epk-pri:active{opacity:.8;}
  .wknd-epk-sec{flex:1;padding:14px 0;border:1.5px solid #e5e7eb;border-radius:12px;background:#fff;color:#374151;font-family:inherit;font-size:15px;font-weight:700;cursor:pointer;text-decoration:none;display:flex;align-items:center;justify-content:center;transition:background .15s;}
  .wknd-epk-sec:active{background:#f9fafb;}

  /* ══════════════════════════════════════════════════════════════════
     VISUAL SYSTEM — Direction C: Bold & Focused
     Photo-first hero · clean white below · one accent color
     ══════════════════════════════════════════════════════════════════ */

  /* ── 0. Page canvas — landing-page lavender ── */
  body { background:#F2F0FA !important; }
  .topbar { padding:12px 16px !important; }

  /* ── 1. Layout — no gaps, sections divided by content rhythm ── */
  #svp-main {
    display:flex !important; flex-direction:column;
    gap:0; padding:0 0 calc(96px + env(safe-area-inset-bottom,0px));
    width:100%; max-width:100%; margin:0 auto;
    background:#fff !important;
  }
  @media (min-width:761px) {
    #svp-main {
      max-width:760px;
      margin:20px auto 32px;
      border-radius:24px;
      overflow:hidden;
      box-shadow:0 8px 28px rgba(76,29,149,.10);
    }
  }

  /* ── 2. Hero — full bleed, no padding, taller ── */
  .fsvp-card-wrap {
    padding:0 !important;
    margin:0 !important;
    border-radius:0 !important;
    overflow:visible !important;
    box-shadow:none !important;
    border:none !important;
  }
  .fsvp-card-wrap .hero-carousel {
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
    aspect-ratio:unset !important;
    border-radius:0 !important;
  }
  /* Stronger gradient — photo fades dark at bottom for legible white text */
  .fsvp-hero-overlay {
    background:linear-gradient(to top,
      rgba(0,0,0,.88) 0%,
      rgba(0,0,0,.55) 45%,
      rgba(0,0,0,.08) 80%,
      transparent 100%) !important;
    padding:60px 20px 22px !important;
    pointer-events:none !important;
  }
  .fsvp-vendor-name {
    font-size:30px !important;
    font-weight:900 !important;
    letter-spacing:-0.03em !important;
  }
  .fsvp-vendor-sub {
    font-size:14px !important;
    color:rgba(255,255,255,.75) !important;
  }

  /* ── 3. Identity — clean white, no box, no border ── */
  .fsvp-identity {
    background:#fff !important;
    border-radius:0 !important;
    border:none !important;
    box-shadow:none !important;
    padding:16px 20px 0 !important;
    overflow:visible !important;
  }
  .fsvp-ident-strip {
    font-size:13.5px !important;
    color:#6B7280 !important;
    padding:0 0 14px !important;
    margin:0 !important;
    background:none !important;
    border:none !important;
    border-bottom:1px solid #F3F4F6 !important;
  }

  /* ── 4. Proof nums — clean inline stats, thin dividers, no box ── */
  .svp-proof-nums {
    display:flex !important;
    background:transparent !important;
    border:none !important;
    border-radius:0 !important;
    box-shadow:none !important;
    padding:16px 0 !important;
    margin:0 !important;
    border-bottom:1px solid #F3F4F6 !important;
  }
  .svp-proof-nums > div {
    flex:1 !important;
    padding:0 !important;
    border-right:1px solid #F3F4F6 !important;
    display:flex; flex-direction:column; align-items:center; gap:3px;
  }
  .svp-proof-nums > div:last-child { border-right:none !important; }
  .svp-pn-num {
    font-size:20px !important; font-weight:900 !important;
    color:#111 !important; letter-spacing:-0.02em !important;
  }
  .svp-pn-num--gold  { color:#D97706 !important; }
  .svp-pn-num--green { color:#059669 !important; }
  .svp-pn-lbl {
    font-size:12px !important; font-weight:600 !important;
    letter-spacing:.05em !important; text-transform:uppercase !important;
    color:#9CA3AF !important;
  }

  /* ── 5. Next appear — calendar-hero card (Direction C) ── */
  .svp-next-appear {
    margin:14px 0 0 !important;
    border-radius:14px !important;
    box-shadow:0 2px 12px rgba(124,58,237,.1) !important;
  }
  .svp-na-date-block {
    border-radius:0 !important;
  }
  .svp-na-label { color:#7C3AED !important; }
  .svp-na-dot   { background:#7C3AED !important; }
  .svp-na-name  { color:#111 !important; font-size:18px !important; }
  .svp-na-arrow { color:#C4B5FD !important; }

  /* ── 6. Bio pull — plain italic, subtle left mark ── */
  .svp-bio-pull {
    border-left:2px solid #E5E7EB !important;
    background:transparent !important;
    color:#4B5563 !important;
    padding:6px 14px !important;
    border-radius:0 !important;
    margin:14px 0 0 !important;
    font-size:15px !important; font-style:italic !important; line-height:1.65 !important;
  }

  /* ── 7. CTAs — prominent purple follow, plain ghost book ── */
  .fsvp-btn-row { padding:14px 0 16px !important; }
  .fsvp-action-btn--full   { padding:15px 20px !important; border-radius:14px !important; }
  .fsvp-action-btn--primary { font-size:15px !important; }
  .svp-cta-main { font-size:15px !important; }
  .fsvp-btn-pair { gap:8px !important; margin-top:8px !important; }
  .fsvp-action-btn--ghost {
    padding:13px 14px !important; border-radius:12px !important;
    font-size:14px !important; border:1.5px solid #E5E7EB !important;
  }

  /* ── 8. Sections — no colored boxes, just thin dividers + padding ── */
  .fsvp-sec {
    background:#fff !important;
    border-radius:0 !important;
    border:none !important;
    border-top:1px solid #F3F4F6 !important;
    padding:20px 20px !important;
    box-shadow:none !important;
    overflow:visible !important;
    margin:0 !important;
  }

  /* ── 9. Section headers — plain bold text, no pill/badge/band ── */
  .fsvp-sec-hd {
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:8px !important;
    margin:0 0 14px !important;
    padding:0 !important;
    border:none !important;
    background:none !important;
  }
  .fsvp-sec-hd-left {
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
    background:none !important;
    border-radius:0 !important;
    padding:0 !important;
  }
  /* Hide section emoji icons — let title carry the section */
  .fsvp-sec-icon { display:none !important; }
  .fsvp-sec-title {
    font-size:16px !important;
    font-weight:700 !important;
    letter-spacing:-0.01em !important;
    text-transform:none !important;
    color:#111 !important;
  }

  /* Edge-to-edge photo/scroll sections — restore their own side padding */
  #photos-section,
  #similar-section {
    padding-left:0 !important; padding-right:0 !important;
  }
  #photos-section .fsvp-sec-hd,
  #similar-section .fsvp-sec-hd {
    padding-left:20px !important; padding-right:20px !important;
  }

  /* Follow section — transparent shell, vivid card inside */
  #follow-section {
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
    padding:20px 20px !important;
  }

  /* ── 10. Featured review — restrained amber tint ── */
  #featured-review-strip {
    background:#FFFBEB !important;
    border:1px solid #FDE68A !important;
    border-radius:12px !important;
    overflow:hidden !important;
    padding:14px 18px !important;
    margin:0 0 4px !important;
    box-shadow:none !important;
    border-left:none !important;
  }
  .fr-quote {
    font-size:14.5px !important; font-style:italic !important;
    color:#374151 !important; line-height:1.6 !important;
    margin:6px 0 !important;
  }
  .fr-stars { color:#F59E0B; font-size:14px; letter-spacing:1px; }

  /* ── 11. Follow card — the ONE vivid element on the page ── */
  .follow-card {
    background:linear-gradient(145deg,#4338CA 0%,#7C3AED 50%,#A21CAF 100%) !important;
    border-radius:18px !important;
    border:none !important;
    padding:24px 22px !important;
    box-shadow:0 12px 40px rgba(79,70,229,.3) !important;
  }
  .follow-card::before { display:none !important; }
  .follow-card-eyebrow {
    font-size:12px !important; font-weight:800 !important; letter-spacing:.1em !important;
    text-transform:uppercase !important; color:rgba(255,255,255,.6) !important;
    margin-bottom:10px !important;
  }
  .follow-card-title {
    color:#fff !important; font-size:22px !important;
    font-weight:900 !important; margin-bottom:8px !important; line-height:1.15 !important;
  }
  .follow-card-sub   { color:rgba(255,255,255,.8) !important; font-size:15px !important; line-height:1.5 !important; }
  .follow-card-sub strong { color:#fff !important; }
  .follow-toggle {
    background:rgba(0,0,0,.2) !important; border-radius:10px !important;
    padding:3px !important; border:1px solid rgba(255,255,255,.12) !important;
  }
  .follow-toggle-btn { color:rgba(255,255,255,.65) !important; font-size:13px !important; font-weight:600 !important; }
  .follow-toggle-btn.active { background:#fff !important; color:#7C3AED !important; box-shadow:0 1px 4px rgba(0,0,0,.15) !important; }
  .follow-input {
    background:rgba(255,255,255,.96) !important; border:none !important;
    color:#111827 !important; font-size:16px !important;
    border-radius:12px !important; padding:13px 16px !important;
  }
  .follow-input::placeholder { color:#9CA3AF !important; }
  .follow-btn {
    background:#fff !important; color:#7C3AED !important;
    font-size:15px !important; font-weight:800 !important;
    box-shadow:0 4px 20px rgba(0,0,0,.18) !important;
    border-radius:12px !important; padding:15px !important; border:none !important;
  }
  .follow-err { color:rgba(255,180,180,.9) !important; }

  /* ── 12. Event list rows ── */
  .fsvp-item {
    padding:12px 0 !important;
    border-bottom:1px solid #F3F4F6 !important;
    display:flex; align-items:center; gap:14px;
    margin:0 !important;
  }
  .fsvp-item:last-child { border-bottom:none !important; }
  .fsvp-item-thumb {
    width:48px !important; height:48px !important; border-radius:10px !important;
    flex-shrink:0; overflow:hidden; border:none !important;
  }
  .fsvp-item-thumb--placeholder {
    background:#F3F4F6 !important; font-size:18px !important;
  }
  .fsvp-item-name { font-size:18px !important; font-weight:600 !important; color:#111 !important; line-height:1.3; }
  .fsvp-item-sub  { font-size:15px !important; color:#9CA3AF !important; margin-top:2px; }

  /* ── 13. Stat cards ── */
  .fsvp-stat-card {
    background:#F9FAFB !important;
    border:1px solid #F3F4F6 !important;
    border-radius:10px !important;
  }

  /* ── 14. Review cards ── */
  .svp-rv-card {
    border-bottom:1px solid #F3F4F6 !important;
    padding:14px 0 !important;
  }
  .svp-rv-card:last-child { border-bottom:none !important; }

  /* ── 15. Keyword & tag pills — light, neutral ── */
  .fsvp-kw-pill {
    background:#F3F4F6 !important; color:#374151 !important;
    border:none !important; font-weight:500 !important;
  }
  .fsvp-tag {
    background:#F3F4F6 !important; color:#374151 !important;
    border:none !important; font-weight:500 !important;
  }

  /* ── 16. Empty states ── */
  .fsvp-no-events { padding:20px 0 !important; text-align:center; }
  .fsvp-notify-btn {
    background:#7C3AED !important;
    color:#fff !important; border:none !important;
    border-radius:12px !important; padding:12px 24px !important;
    font-size:14px !important; font-weight:700 !important; cursor:pointer !important;
  }

  /* ── 17. Float bar — frosted glass ── */
  #fsvp-float-bar {
    background:rgba(255,255,255,.95) !important;
    backdrop-filter:blur(20px) !important; -webkit-backdrop-filter:blur(20px) !important;
    border-top:1px solid #E5E7EB !important;
    box-shadow:0 -2px 16px rgba(0,0,0,.08) !important;
  }
  .fsvp-float-pill {
    border-radius:14px !important; padding:13px 16px !important;
    font-size:15px !important; font-weight:800 !important;
    display:flex !important; flex-direction:column !important;
    align-items:center !important; justify-content:center !important;
    min-height:52px !important;
  }
  .svp-float-book-pill {
    border:1.5px solid #E5E7EB !important;
    border-radius:14px !important; padding:13px 10px !important;
    font-size:14px !important;
    display:flex !important; align-items:center !important; justify-content:center !important;
    min-height:52px !important;
  }

  /* ── 18. Payments pills ── */
  .fsvp-pay-pill {
    background:#F0FDF4 !important; color:#065F46 !important;
    border:1px solid #D1FAE5 !important; border-radius:99px !important;
    font-size:12px !important; font-weight:600 !important; padding:4px 12px !important;
  }

  /* ── 19. Similar vendor scroll chips ── */
  .fsvp-sim-card {
    border-radius:12px !important; overflow:hidden !important;
    border:1px solid #F3F4F6 !important;
    box-shadow:0 1px 4px rgba(0,0,0,.05) !important;
  }

  /* ── 20. Misc ── */
  #fsvp-avail-chip {
    margin:0 0 12px !important; padding:5px 13px !important;
    border-radius:99px !important; font-size:12px !important; font-weight:700 !important;
  }
  /* Suppress redundant social-proof noise below the CTAs */
  .fsvp-saved-by   { display:none !important; }
  .fsvp-social-proof { display:none !important; }
  /* Suppress redundant pay pills row (consolidated into Pay button) */
  .fsvp-pays-row   { display:none !important; }
  /* The payment destination is the public /pay/{slug} hub. */
  #pay-booth-section { display:none !important; }
    .svp-event-context {
      margin: 12px 16px 0; padding: 13px 14px; border: 1px solid #DDD6FE;
      border-radius: 14px; background: #F5F3FF; color: #4C1D95;
      display: flex; align-items: center; justify-content: space-between; gap: 12px;
    }
    .svp-event-context-copy { min-width: 0; }
    .svp-event-context-kicker { font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
    .svp-event-context-name { margin-top: 2px; font-size: 15px; font-weight: 800; color: #111827; }
    .svp-event-context-meta { margin-top: 2px; font-size: 12px; color: #6B7280; }
    .svp-event-context-pay {
      flex: 0 0 auto; border: 0; border-radius: 10px; padding: 10px 12px;
      background: #7C3AED; color: #fff; text-decoration: none; font-size: 13px; font-weight: 800;
    }
  /* Suppress legacy pay surfaces */
  #pay-section     { display:none !important; }
  #payme-section   { display:none !important; }

  .fsvp-resume-divider { display:none !important; }

  /* ── Suppress: "What you'll find" (redundant with About header) ── */
  .fsvp-about-sub   { display:none !important; }
  /* ── Suppress: bio teaser above follow section (redundant with svp-bio-pull) ── */
  #fsvp-bio-teaser  { display:none !important; }

  /* ── TYPOGRAPHY SYSTEM — best-in-class mobile scale ─────────── */
  /* Vendor name on hero: large, confident */
  .fsvp-vendor-name { font-size:28px !important; font-weight:800 !important; letter-spacing:-0.02em !important; line-height:1.1 !important; }
  /* Hero subtitle: specialty / category */
  .fsvp-vendor-sub  { font-size:15px !important; font-weight:500 !important; opacity:0.85 !important; }
  /* Identity strip: category · price */
  .fsvp-ident-strip { font-size:15px !important; }
  .fsvp-ident-cat, .fsvp-ident-cat--link { font-size:15px !important; }
  .fsvp-ident-price { font-size:15px !important; }
  /* Proof nums: hero stats */
  .svp-pn-num       { font-size:22px !important; font-weight:800 !important; letter-spacing:-0.01em !important; }
  .svp-pn-lbl       { font-size:12px !important; font-weight:600 !important; letter-spacing:0.03em !important; text-transform:uppercase !important; }
  /* Bio pull-quote */
  .svp-bio-pull     { font-size:16px !important; line-height:1.65 !important; color:#374151 !important; }
  /* Full bio text in About */
  .fsvp-bio-text    { font-size:16px !important; line-height:1.7 !important; color:#374151 !important; }
  /* Keyword pills */
  .fsvp-kw-pill     { font-size:13px !important; padding:6px 14px !important; }
  .fsvp-kw-pills    { padding-top:10px !important; gap:6px !important; }
  /* Section titles */
  .fsvp-sec-title   { font-size:18px !important; font-weight:700 !important; letter-spacing:-0.01em !important; }
  /* CTA buttons: tall, readable */
  .fsvp-action-btn  { font-size:16px !important; min-height:52px !important; }
  .svp-cta-main     { font-size:16px !important; font-weight:700 !important; }
  .svp-cta-sub      { font-size:15px !important; }
  /* Track Record stat cards */
  .fsvp-stat-num    { font-size:22px !important; font-weight:800 !important; }
  .fsvp-stat-label  { font-size:12px !important; font-weight:600 !important; text-transform:uppercase !important; letter-spacing:0.04em !important; }
  /* Follow section */
  .follow-card-title { font-size:20px !important; font-weight:800 !important; }
  .follow-card-sub   { font-size:15px !important; line-height:1.6 !important; }
  .follow-btn        { font-size:16px !important; min-height:52px !important; }
  .follow-input      { font-size:16px !important; min-height:52px !important; }
  /* Reach bar sizing */
  .svp-reach-plat-cnt { font-size:18px !important; font-weight:900 !important; }
  .svp-reach-plat-lbl { font-size:12px !important; }
  .svp-reach-total-num { font-size:21px !important; font-weight:900 !important; }
  .svp-reach-total-lbl { font-size:12px !important; }
  /* Next appear — calendar-hero sizing */
  .svp-next-appear  { font-size:14px !important; }
  .svp-na-month     { font-size:12px !important; }
  .svp-na-day       { font-size:28px !important; font-weight:900 !important; }
  .svp-na-dow       { font-size:12px !important; }
  .svp-na-label     { font-size:12px !important; }
  .svp-na-name      { font-size:18px !important; font-weight:800 !important; }
  .svp-na-date      { font-size:12px !important; }
  /* Broadcast CTA sizing */
  .svp-broadcast-title { font-size:18px !important; }
  .svp-broadcast-sub   { font-size:15px !important; }
  .svp-broadcast-btn   { font-size:14px !important; min-height:46px !important; }
  /* Tag row */
  .fsvp-tag-row     { padding-top:8px !important; }
  /* Share card */
  .share-card       { border-radius:12px !important; border:1px solid #F3F4F6 !important; box-shadow:none !important; }

  /* ── 21. Pay at the Booth — full-width ghost CTA + inline panel ── */
  .fsvp-pay-cta {
    width:100% !important;
    padding:13px 20px !important;
    border-radius:12px !important;
    font-size:14.5px !important;
    font-weight:600 !important;
    border:1.5px solid #E5E7EB !important;
    color:#374151 !important;
    justify-content:center !important;
    margin-top:0 !important;
  }
  .pay-inline-panel {
    border:1px solid #F3F4F6;
    border-radius:14px;
    overflow:hidden;
    margin-top:10px;
    background:#fff;
  }
  .pay-inline-btn {
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid #F3F4F6;
    text-decoration:none;
    color:inherit;
    cursor:pointer;
    background:#fff;
    width:100%;
    border:none;
    border-bottom:1px solid #F3F4F6;
    font-family:inherit;
    transition:background .12s;
  }
  .pay-inline-btn:last-of-type { border-bottom:none; }
  .pay-inline-btn:active { background:#F9FAFB; }
  .pay-inline-ico {
    width:34px; height:34px; border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    font-size:17px; flex-shrink:0; color:#fff;
  }
  .pay-inline-name {
    font-size:14.5px; font-weight:700; color:#111; flex-shrink:0;
  }
  .pay-inline-handle {
    font-size:13px; color:#9CA3AF; font-family:monospace;
    flex:1; min-width:0; overflow:hidden;
    text-overflow:ellipsis; white-space:nowrap; margin-left:4px;
  }
  .pay-inline-pref {
    font-size:12px; font-weight:700; letter-spacing:.05em;
    text-transform:uppercase; color:#7C3AED;
    background:rgba(124,58,237,.08); border-radius:4px;
    padding:2px 6px; flex-shrink:0;
  }
  .pay-inline-arrow { font-size:15px; color:#9CA3AF; flex-shrink:0; margin-left:4px; }
  .pay-inline-qr-btn {
    width:100%; padding:11px 16px;
    background:none; border:none; border-top:1px solid #F3F4F6;
    color:#6B7280; font-size:13px; font-weight:600;
    cursor:pointer; font-family:inherit; text-align:center;
    transition:background .12s;
  }
  .pay-inline-qr-btn:hover { background:#F9FAFB; }
  #pay-inline-qr-wrap {
    padding:16px; text-align:center;
    border-top:1px solid #F3F4F6;
  }

  /* ── Booking Request bottom sheet ─────────────────────────────── */
  #bkreq-overlay {
    position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:900;
    display:flex;align-items:flex-end;justify-content:center;
  }
  #bkreq-sheet {
    background:#fff;border-radius:24px 24px 0 0;
    width:100%;max-width:540px;padding:24px 22px 40px;
    max-height:92dvh;overflow-y:auto;
    box-shadow:0 -8px 40px rgba(0,0,0,.18);
    animation:bkreq-slide-up .22s ease;
  }
  @keyframes bkreq-slide-up { from{transform:translateY(100%)} to{transform:translateY(0)} }
  .bkreq-handle {
    width:38px;height:4px;border-radius:2px;background:#E5E7EB;
    margin:0 auto 18px;
  }
  .bkreq-title {
    font-size:19px;font-weight:900;color:#111827;margin:0 0 4px;
    letter-spacing:-.02em;
  }
  .bkreq-sub {
    font-size:15px;color:#6B7280;margin:0 0 20px;line-height:1.5;
  }
  .bkreq-row { display:flex;gap:10px;margin-bottom:12px; }
  .bkreq-field {
    display:flex;flex-direction:column;gap:4px;flex:1;
  }
  .bkreq-label {
    font-size:13px;font-weight:700;color:#6B7280;letter-spacing:.04em;text-transform:uppercase;
  }
  .bkreq-input {
    width:100%;padding:13px 14px;font-size:15px;
    background:#F9FAFB;border:1.5px solid #E5E7EB;
    border-radius:12px;color:#111827;outline:none;
    transition:border-color .15s;font-family:inherit;
    box-sizing:border-box;
  }
  .bkreq-input:focus { border-color:#7C3AED;background:#fff; }
  .bkreq-input::placeholder { color:#9CA3AF; }
  .bkreq-submit {
    width:100%;padding:15px;border:none;border-radius:13px;
    background:var(--purple, #7C3AED);
    color:#fff;font-size:16px;font-weight:700;cursor:pointer;
    font-family:inherit;margin-top:6px;
    box-shadow:0 6px 18px -4px rgba(124,58,237,.35);
    transition:filter .1s;
  }
  .bkreq-submit:hover:not(:disabled){filter:brightness(1.06);}
  .bkreq-submit:disabled{background:#E5E7EB;color:#9CA3AF;cursor:not-allowed;box-shadow:none;}
  /* ── Booking sheet: integrated calendar date-picker step ── */
  #bkreq-cal-step { padding:0 0 4px; }
  .bkreq-cal-sub  { font-size:15px;color:#6B7280;margin:2px 0 10px;line-height:1.45; }
  #bkreq-cal-rows .cal-weekend-row  { padding:11px 6px; }
  #bkreq-cal-rows .bkreq-cal-open-row { cursor:pointer;border-radius:10px;padding:11px 8px;transition:background .12s; }
  #bkreq-cal-rows .bkreq-cal-open-row:active { background:rgba(124,58,237,.08); }
  @media(hover:hover){#bkreq-cal-rows .bkreq-cal-open-row:hover{background:rgba(124,58,237,.06);}}
  .bkreq-cal-chev  { font-size:20px;color:#7C3AED;margin-left:auto;flex-shrink:0;line-height:1; }
  .bkreq-skip-btn  { display:block;width:100%;background:none;border:none;color:#7C3AED;font-size:13px;font-weight:600;text-align:center;padding:14px 0 6px;cursor:pointer; }
  .bkreq-skip-btn:hover { text-decoration:underline; }
  .bkreq-err {
    font-size:13px;color:#EF4444;background:rgba(239,68,68,.06);
    border:1px solid rgba(239,68,68,.2);border-radius:8px;
    padding:9px 12px;margin-bottom:12px;
  }
  .bkreq-success {
    text-align:center;padding:18px 0 6px;
  }
  .bkreq-success-ico { font-size:44px;line-height:1;margin-bottom:10px; }
  .bkreq-success-title { font-size:18px;font-weight:800;color:#7C3AED;margin:0 0 6px; }
  .bkreq-success-body  { font-size:15px;color:#6B7280;line-height:1.5;margin:0; }
  /* Avail card "book" button */
  .fsvp-avail-book-btn {
    margin-top:8px;padding:8px 14px;border:none;border-radius:9px;
    background:var(--purple, #7C3AED);
    color:#fff;font-size:12.5px;font-weight:700;cursor:pointer;
    font-family:inherit;transition:filter .1s;display:inline-block;
  }
  .fsvp-avail-book-btn:hover{filter:brightness(1.08);}
  /* Owner booking-requests panel */
  #svp-booking-requests {
    margin:0 0 24px;padding:18px 20px;max-width:640px;margin-left:auto;margin-right:auto;
    background:#F9F8FF;border:1.5px solid rgba(124,58,237,.15);border-radius:18px;
  }
  .bkreq-list-title {
    font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    color:#7C3AED;margin:0 0 14px;display:flex;align-items:center;gap:6px;
  }
  .bkreq-card {
    background:#fff;border:1.5px solid #E5E7EB;border-radius:13px;
    padding:14px 15px;margin-bottom:9px;
  }
  .bkreq-card:last-child{margin-bottom:0;}
  .bkreq-card-name { font-size:18px;font-weight:700;color:#111827; }
  .bkreq-card-meta { font-size:15px;color:#6B7280;margin-top:3px;line-height:1.5; }
  .bkreq-card-msg  { font-size:13px;color:#374151;margin-top:6px;font-style:italic; }
  .bkreq-empty     { font-size:15px;color:#9CA3AF;text-align:center;padding:10px 0; }

  /* ═══════════════════════════════════════════════════════════════
     DESIGN SYSTEM ALIGNMENT
     Overrides hardcoded values with CSS variables from
     /static/wknd-design-system.css so this page stays in sync
     with the platform design language as tokens evolve.
     ═══════════════════════════════════════════════════════════════ */

  /* ── Section headers → .wknd-section-title pattern ──────────── */
  /* Design system: font-size 14px, weight 800, color var(--dark) */
  .fsvp-sec-title {
    font-size: 14px !important;
    font-weight: 800 !important;
    color: var(--dark, #0F0A1E) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }
  /* "See all" links → .wknd-section-link */
  .fsvp-see-all {
    font-size: 13px !important;
    font-weight: 700 !important;
    color: var(--purple, #7C3AED) !important;
  }

  /* ── Category chip → .wknd-chip (purple-lt bg, purple text) ── */
  .fsvp-ident-cat-pill {
    background: var(--purple-lt, #EDE9FE) !important;
    color: var(--purple, #7C3AED) !important;
    border: none !important;
    border-radius: var(--radius-pill, 999px) !important;
    padding: 4px 12px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }
  /* chip-row category variants */
  .chip--cat {
    background: var(--purple-lt, #EDE9FE) !important;
    color: var(--purple, #7C3AED) !important;
    border: none !important;
  }

  /* ── Pricing chip → soft purple, consistent with wknd-chip-muted ── */
  .fsvp-ident-price {
    background: var(--purple-xlt, #F5F3FF) !important;
    color: var(--purple, #7C3AED) !important;
    border: 1px solid var(--purple-lt, #EDE9FE) !important;
    border-radius: var(--radius-pill, 999px) !important;
    padding: 4px 12px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
  }

  /* ── Primary CTA → .wknd-btn-primary (solid purple, no gradient) ── */
  /* Replaces the indigo-to-purple gradient with a clean solid purple  */
  .fsvp-action-btn--full,
  .fsvp-action-btn--primary {
    background: var(--purple, #7C3AED) !important;
    color: #fff !important;
    box-shadow: var(--shadow-raise, 0 8px 24px rgba(124,58,237,.13)) !important;
  }
  .fsvp-action-btn--full::after { display: none !important; }
  .fsvp-action-btn--full:hover,
  .fsvp-action-btn--primary:hover {
    background: var(--purple-dk, #6D28D9) !important;
  }

  /* Float bar primary pill */
  .fsvp-float-pill {
    background: var(--purple, #7C3AED) !important;
    box-shadow: none !important;
  }
  .fsvp-float-pill.org-mode { /* keep teal for organizer mode */
    background: linear-gradient(135deg,#059669,#0D9488) !important;
  }

  /* Float bar secondary "Book" ghost → .wknd-btn-ghost */
  .svp-float-book-pill {
    color: var(--purple, #7C3AED) !important;
    border: 1.5px solid rgba(124,58,237,.22) !important;
    background: var(--bg-card, #fff) !important;
  }

  /* Inquire / DM send */
  .dm-send-btn {
    background: var(--purple, #7C3AED) !important;
    border-radius: var(--radius-sm, 12px) !important;
  }

  /* Booking request submit */
  .bkreq-submit {
    background: var(--purple, #7C3AED) !important;
    box-shadow: none !important;
  }

  /* Rating submit */
  .rate-btn {
    background: var(--purple, #7C3AED) !important;
  }

  /* Claim / modal primary submit buttons */
  .claim-submit-btn {
    background: var(--purple, #7C3AED) !important;
    box-shadow: none !important;
  }

  /* Broadcast CTA */
  .svp-broadcast-btn { background: var(--purple, #7C3AED) !important; }

  /* No-events notify button */
  .fsvp-notify-btn {
    background: var(--purple, #7C3AED) !important;
    border-radius: var(--radius-sm, 12px) !important;
  }

  /* ── Review cards → .wknd-card tokens ──────────────────────── */
  .review-card {
    background: var(--bg-card, #fff) !important;
    border: 1.5px solid var(--border, rgba(124,58,237,.09)) !important;
    border-radius: var(--radius-sm, 12px) !important;
    box-shadow: var(--shadow-card, 0 1px 3px rgba(0,0,0,.05),0 4px 16px rgba(124,58,237,.07)) !important;
  }

  /* ── Section dividers → design system border token ──────────── */
  .fsvp-sec {
    border-top-color: var(--border, rgba(124,58,237,.08)) !important;
  }
  .svp-proof-nums {
    border-bottom-color: var(--border, rgba(124,58,237,.08)) !important;
  }

  /* ── Follow card → radius via design token ──────────────────── */
  .follow-card {
    border-radius: var(--radius-lg, 20px) !important;
  }
  .follow-btn, .follow-input {
    border-radius: var(--radius-sm, 12px) !important;
  }

  /* ── Featured review strip stays amber but uses consistent radius ── */
  #featured-review-strip {
    border-radius: var(--radius-sm, 12px) !important;
  }

  /* ── Identity strip border → design token ─────────────────── */
  .fsvp-ident-strip {
    border-bottom-color: var(--border-soft, rgba(0,0,0,.06)) !important;
  }
  @media(max-width:767px){
      body.wknd-public-entry #svp-main .fsvp-card-wrap .vp-mobile-identity { flex-wrap:wrap!important; }
    .fsvp-card-wrap .hero-carousel{height:196px!important;min-height:160px!important;max-height:210px!important;aspect-ratio:auto!important}
  }

  