@salesmind-ai/design-system 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -7,7 +7,7 @@ export { CTASection, FeatureSection, HeroSection, StatsSection } from './chunk-P
7
7
  export { LocaleDropdown, MDXOutboundLink, NavbarV2, NavbarV2Actions, NavbarV2Brand, NavbarV2Tab, NavbarV2TabMenu, NavbarV2Tabs, SiteFooter } from './chunk-6BUS7RMS.js';
8
8
  export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from './chunk-XU3OMQ7V.js';
9
9
  export { CursorSpotlight, SpotlightCard } from './chunk-WB6XDNU7.js';
10
- export { PlatformBadge, SocialProofCard, SocialProofCarousel, SocialProofFeatured, SocialProofGrid, SocialProofLogos, StarRating, VideoLightbox } from './chunk-RY257SWH.js';
10
+ export { PlatformBadge, SocialProofCard, SocialProofCarousel, SocialProofFeatured, SocialProofGrid, SocialProofLogos, StarRating, VideoLightbox } from './chunk-PW56UU3S.js';
11
11
  export { ArchitectureDiagram, AuroraVoid, BeforeAfterBlock, BookingEmbed, CaseStudyCard, ComparisonTable, CompetitorDiff, ComplianceGrid, EcosystemDiagram, EnterpriseSignaling, EvolutionTimeline, GridOverlay, GuaranteeHighlight, HeroComposition, ICPFilter, IntelligenceBlock, IntentCTA, KPIPanel, MarketingHero, MarketingSection, ObjectionFAQ, PartnerValueProp, PricingCard, ProblemAgitation, ROICalculator, SegmentSwitch, StickyActionBar, ValueAnchor, Vignette } from './chunk-REEHJV7M.js';
12
12
  export { Badge } from './chunk-HTLWFOLC.js';
13
13
  import { Button } from './chunk-KJHPOB3J.js';
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var chunkYL4FGGHF_cjs = require('../chunk-YL4FGGHF.cjs');
4
+ var chunkSR4QRXRR_cjs = require('../chunk-SR4QRXRR.cjs');
5
5
  var chunkDP74LUXG_cjs = require('../chunk-DP74LUXG.cjs');
6
6
  require('../chunk-QXUA5PQ3.cjs');
7
7
  require('../chunk-LJADZITX.cjs');
@@ -10,35 +10,35 @@ require('../chunk-LJADZITX.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "PlatformBadge", {
12
12
  enumerable: true,
13
- get: function () { return chunkYL4FGGHF_cjs.PlatformBadge; }
13
+ get: function () { return chunkSR4QRXRR_cjs.PlatformBadge; }
14
14
  });
15
15
  Object.defineProperty(exports, "SocialProofCard", {
16
16
  enumerable: true,
17
- get: function () { return chunkYL4FGGHF_cjs.SocialProofCard; }
17
+ get: function () { return chunkSR4QRXRR_cjs.SocialProofCard; }
18
18
  });
19
19
  Object.defineProperty(exports, "SocialProofCarousel", {
20
20
  enumerable: true,
21
- get: function () { return chunkYL4FGGHF_cjs.SocialProofCarousel; }
21
+ get: function () { return chunkSR4QRXRR_cjs.SocialProofCarousel; }
22
22
  });
23
23
  Object.defineProperty(exports, "SocialProofFeatured", {
24
24
  enumerable: true,
25
- get: function () { return chunkYL4FGGHF_cjs.SocialProofFeatured; }
25
+ get: function () { return chunkSR4QRXRR_cjs.SocialProofFeatured; }
26
26
  });
27
27
  Object.defineProperty(exports, "SocialProofGrid", {
28
28
  enumerable: true,
29
- get: function () { return chunkYL4FGGHF_cjs.SocialProofGrid; }
29
+ get: function () { return chunkSR4QRXRR_cjs.SocialProofGrid; }
30
30
  });
31
31
  Object.defineProperty(exports, "SocialProofLogos", {
32
32
  enumerable: true,
33
- get: function () { return chunkYL4FGGHF_cjs.SocialProofLogos; }
33
+ get: function () { return chunkSR4QRXRR_cjs.SocialProofLogos; }
34
34
  });
35
35
  Object.defineProperty(exports, "StarRating", {
36
36
  enumerable: true,
37
- get: function () { return chunkYL4FGGHF_cjs.StarRating; }
37
+ get: function () { return chunkSR4QRXRR_cjs.StarRating; }
38
38
  });
39
39
  Object.defineProperty(exports, "VideoLightbox", {
40
40
  enumerable: true,
41
- get: function () { return chunkYL4FGGHF_cjs.VideoLightbox; }
41
+ get: function () { return chunkSR4QRXRR_cjs.VideoLightbox; }
42
42
  });
43
43
  Object.defineProperty(exports, "MetricCounter", {
44
44
  enumerable: true,
@@ -285,6 +285,97 @@
285
285
  }
286
286
  }
287
287
 
288
+ /* src/components/SocialProofCard/SocialProofCard-v2.css */
289
+ .ds-social-proof-card__trust-header {
290
+ display: flex;
291
+ align-items: center;
292
+ justify-content: space-between;
293
+ gap: var(--space-2);
294
+ flex-wrap: wrap;
295
+ }
296
+ .ds-social-proof-card__trust-platforms,
297
+ .ds-social-proof-card__trust-stars {
298
+ display: flex;
299
+ align-items: center;
300
+ gap: var(--space-2);
301
+ flex-wrap: wrap;
302
+ }
303
+ .ds-social-proof-card__verified {
304
+ display: inline-flex;
305
+ align-items: center;
306
+ gap: var(--space-1);
307
+ padding: var(--space-0-5) var(--space-2);
308
+ border-radius: var(--radius-pill);
309
+ background: var(--brand-pink-a-10, rgba(var(--brand-pink-rgb, 255, 0, 90), 0.1));
310
+ color: rgb(var(--accent-rgb));
311
+ font-size: var(--font-size-xs);
312
+ font-weight: var(--font-weight-semibold);
313
+ line-height: var(--line-height-normal);
314
+ border: var(--space-px) solid var(--rim-light-bottom);
315
+ }
316
+ .ds-social-proof-card__verified-icon {
317
+ flex-shrink: 0;
318
+ }
319
+ .ds-social-proof-card__workspace-proof {
320
+ display: flex;
321
+ align-items: center;
322
+ gap: var(--space-2);
323
+ padding: var(--space-2) var(--space-3);
324
+ margin-top: var(--space-1);
325
+ border-radius: var(--radius-badge);
326
+ background: var(--glass-white-alpha-10);
327
+ color: var(--text-tertiary);
328
+ font-size: var(--font-size-xs);
329
+ line-height: var(--line-height-normal);
330
+ }
331
+ .ds-social-proof-card__workspace-icon {
332
+ flex-shrink: 0;
333
+ opacity: 0.6;
334
+ }
335
+ .ds-social-proof-card__avatar--initials {
336
+ display: flex;
337
+ align-items: center;
338
+ justify-content: center;
339
+ width: var(--space-10);
340
+ height: var(--space-10);
341
+ border-radius: var(--radius-pill);
342
+ background: var(--glass-base);
343
+ border: var(--space-px) solid var(--rim-light-bottom);
344
+ color: var(--text-tertiary);
345
+ font-size: var(--font-size-sm);
346
+ font-weight: var(--font-weight-semibold);
347
+ letter-spacing: var(--letter-spacing-wide);
348
+ }
349
+ .ds-social-proof-card__micrometa {
350
+ color: var(--text-tertiary);
351
+ font-size: var(--font-size-xs);
352
+ margin-top: var(--space-0-5);
353
+ }
354
+ .ds-social-proof-card__review-link {
355
+ display: inline-block;
356
+ margin-top: var(--space-1);
357
+ font-size: var(--font-size-xs);
358
+ color: var(--text-tertiary);
359
+ text-decoration: none;
360
+ transition: color var(--transition-glass);
361
+ }
362
+ .ds-social-proof-card__review-link:hover {
363
+ color: var(--text-secondary);
364
+ text-decoration: underline;
365
+ text-underline-offset: var(--space-0-5);
366
+ }
367
+ .ds-social-proof-card__company-logo {
368
+ width: var(--space-6);
369
+ height: var(--space-6);
370
+ border-radius: var(--radius-xs);
371
+ object-fit: contain;
372
+ flex-shrink: 0;
373
+ margin-left: auto;
374
+ }
375
+ .ds-social-proof-card--verified {
376
+ --ds-social-proof-card-verified-state: 1;
377
+ }
378
+
288
379
  /* src/components/SocialProofCarousel/SocialProofCarousel.css */
289
380
  .ds-social-proof-carousel {
290
381
  overflow-x: auto;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/StarRating/StarRating.css","../../src/components/PlatformBadge/PlatformBadge.css","../../src/components/SocialProofCard/SocialProofCard.css","../../src/components/SocialProofCarousel/SocialProofCarousel.css","../../src/components/Card/Card.css","../../src/components/SocialProofFeatured/SocialProofFeatured.css","../../src/components/SocialProofGrid/SocialProofGrid.css","../../src/components/SocialProofLogos/SocialProofLogos.css","../../src/components/VideoLightbox/VideoLightbox.css","../../src/components/MetricCounter/MetricCounter.css"],"sourcesContent":["/* ============================================================================\n STAR RATING — ELITE SOCIAL PROOF\n ============================================================================ */\n\n.ds-star-rating {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.ds-star-rating__stars {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n/* --- Size Variants --- */\n\n.ds-star-rating--sm .ds-star-rating__svg {\n width: 16px;\n height: 16px;\n}\n\n.ds-star-rating--md .ds-star-rating__svg {\n width: 20px;\n height: 20px;\n}\n\n.ds-star-rating--lg .ds-star-rating__svg {\n width: 28px;\n height: 28px;\n}\n\n/* --- Star Element --- */\n\n.ds-star-rating__star {\n position: relative;\n display: inline-flex;\n line-height: 0;\n}\n\n.ds-star-rating__svg {\n display: block;\n}\n\n.ds-star-rating__svg--filled {\n position: absolute;\n inset: 0;\n transition: clip-path 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n transition-delay: var(--star-delay, 0ms);\n}\n\n/* Empty star */\n.ds-star-rating__empty {\n fill: var(--text-tertiary, rgba(255, 255, 255, 0.15));\n}\n\n/* Filled star — amber/gold */\n.ds-star-rating__filled {\n fill: var(--data-yellow, #eab308);\n}\n\n/* --- Entrance Animation --- */\n\n.ds-star-rating__star {\n opacity: 1;\n transform: scale(1);\n}\n\n/* When animate is enabled, stars start hidden */\n.ds-star-rating__star:not(.ds-star-rating__star--visible) {\n opacity: 0;\n transform: scale(0.5);\n}\n\n.ds-star-rating__star--visible {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 0.3s ease-out,\n transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);\n transition-delay: var(--star-delay, 0ms);\n}\n\n/* --- Value Display --- */\n\n.ds-star-rating__value {\n font-family: var(--font-family);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n line-height: 1;\n}\n\n.ds-star-rating--sm .ds-star-rating__value {\n font-size: var(--font-size-sm);\n}\n\n.ds-star-rating--md .ds-star-rating__value {\n font-size: var(--font-size-base);\n}\n\n.ds-star-rating--lg .ds-star-rating__value {\n font-size: var(--font-size-xl);\n}\n\n.ds-star-rating__value-label {\n font-weight: var(--font-weight-normal);\n color: var(--text-secondary);\n margin-left: var(--space-1);\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-star-rating__star,\n .ds-star-rating__star--visible {\n transition: none;\n }\n\n .ds-star-rating__svg--filled {\n transition: none;\n }\n}\n","/* ============================================================================\n PLATFORM BADGE — TRUST SIGNAL\n ============================================================================ */\n\n.ds-platform-badge {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-1) var(--space-2);\n border-radius: var(--radius-badge, 999px);\n background: var(--glass-base, rgba(255, 255, 255, 0.05));\n border: 1px solid var(--rim-light-bottom, rgba(255, 255, 255, 0.06));\n transition:\n background var(--transition-base),\n border-color var(--transition-base),\n box-shadow var(--transition-base);\n white-space: nowrap;\n}\n\n.ds-platform-badge:hover {\n background: var(--glass-base-hover, rgba(255, 255, 255, 0.08));\n border-color: color-mix(in srgb, var(--platform-accent) 30%, transparent);\n box-shadow: 0 0 12px color-mix(in srgb, var(--platform-accent) 15%, transparent);\n}\n\n/* --- Icon --- */\n\n.ds-platform-badge__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n}\n\n/* --- Label --- */\n\n.ds-platform-badge__label {\n font-family: var(--font-family);\n font-weight: var(--font-weight-medium);\n color: var(--text-primary);\n line-height: 1;\n}\n\n/* --- Rating (full variant) --- */\n\n.ds-platform-badge__rating {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n.ds-platform-badge__count {\n font-family: var(--font-family);\n font-size: var(--font-size-xs);\n color: var(--text-secondary);\n line-height: 1;\n}\n\n/* --- Size Variants --- */\n\n.ds-platform-badge--sm {\n padding: var(--space-1) var(--space-2);\n}\n\n.ds-platform-badge--sm .ds-platform-badge__label {\n font-size: var(--font-size-xs);\n}\n\n.ds-platform-badge--md {\n padding: var(--space-2) var(--space-3);\n}\n\n.ds-platform-badge--md .ds-platform-badge__label {\n font-size: var(--font-size-sm);\n}\n\n/* --- Display Mode Variants --- */\n\n.ds-platform-badge--icon-only {\n padding: var(--space-1);\n border-radius: var(--radius-badge, 999px);\n}\n\n.ds-platform-badge--full {\n gap: var(--space-2);\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-platform-badge {\n transition: none;\n }\n}\n",".ds-social-proof-card {\n display: flex;\n flex-direction: column;\n overflow: clip;\n color: var(--text-primary);\n}\n\n.ds-social-proof-card__media {\n aspect-ratio: 16 / 9;\n overflow: clip;\n}\n\n.ds-social-proof-card__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.ds-social-proof-card__body {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--space-4);\n padding: var(--space-5);\n}\n\n.ds-social-proof-card--compact .ds-social-proof-card__body {\n gap: var(--space-3);\n padding: var(--space-4);\n}\n\n.ds-social-proof-card__meta,\n.ds-social-proof-card__badges,\n.ds-social-proof-card__author,\n.ds-social-proof-card__metrics {\n display: flex;\n align-items: center;\n}\n\n.ds-social-proof-card__meta,\n.ds-social-proof-card__badges {\n flex-wrap: wrap;\n gap: var(--space-2);\n}\n\n.ds-social-proof-card__industry,\n.ds-social-proof-card__badge {\n border: var(--border-width-hairline) solid var(--rim-light-bottom);\n border-radius: var(--radius-pill);\n color: var(--text-secondary);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n padding: var(--space-1) var(--space-2);\n}\n\n.ds-social-proof-card__headline {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--font-size-xl);\n font-weight: var(--font-weight-semibold);\n line-height: var(--line-height-tight);\n}\n\n.ds-social-proof-card__quote {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.ds-social-proof-card__quote p {\n margin: 0;\n color: var(--text-secondary);\n font-size: var(--font-size-base);\n line-height: var(--line-height-relaxed);\n}\n\n.ds-social-proof-card--narrative .ds-social-proof-card__quote p,\n.ds-social-proof-card--detailed .ds-social-proof-card__quote p {\n font-size: var(--font-size-lg);\n}\n\n.ds-social-proof-card__metrics {\n gap: var(--space-5);\n}\n\n.ds-social-proof-card__metric {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n.ds-social-proof-card__metric-value {\n color: rgb(var(--accent-rgb));\n font-size: var(--font-size-xl);\n font-weight: var(--font-weight-bold);\n line-height: var(--line-height-tight);\n}\n\n.ds-social-proof-card__metric-label {\n color: var(--text-tertiary);\n font-size: var(--font-size-xs);\n}\n\n.ds-social-proof-card__author {\n gap: var(--space-3);\n margin-top: auto;\n}\n\n.ds-social-proof-card__avatar {\n width: var(--space-10);\n height: var(--space-10);\n flex: 0 0 auto;\n border-radius: var(--radius-pill);\n object-fit: cover;\n}\n\n.ds-social-proof-card__author-copy {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n.ds-social-proof-card__name {\n color: var(--text-primary);\n font-style: normal;\n font-weight: var(--font-weight-semibold);\n}\n\n.ds-social-proof-card__role {\n color: var(--text-tertiary);\n font-size: var(--font-size-sm);\n}\n\n.ds-social-proof-card__cta {\n color: rgb(var(--accent-rgb));\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-semibold);\n}\n\n@media (prefers-contrast: more) {\n .ds-social-proof-card {\n background: var(--hc-surface);\n border-color: var(--hc-border);\n }\n}\n\n@supports not (backdrop-filter: blur(1px)) {\n .ds-social-proof-card {\n background: var(--fallback-surface);\n }\n}\n",".ds-social-proof-carousel {\n overflow-x: auto;\n overflow-y: clip;\n scroll-snap-type: x mandatory;\n scrollbar-width: none;\n}\n\n.ds-social-proof-carousel::-webkit-scrollbar {\n display: none;\n}\n\n.ds-social-proof-carousel--background-default,\n.ds-social-proof-carousel--background-muted,\n.ds-social-proof-carousel--background-dark,\n.ds-social-proof-carousel--background-brand {\n border-radius: var(--radius-panel);\n padding: var(--space-6);\n}\n\n.ds-social-proof-carousel--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-carousel--background-muted,\n.ds-social-proof-carousel--background-dark {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-carousel--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-carousel__track {\n display: grid;\n grid-auto-columns: minmax(min(100%, var(--container-xs)), var(--container-sm));\n grid-auto-flow: column;\n gap: var(--space-5);\n}\n\n.ds-social-proof-carousel__track > * {\n scroll-snap-align: start;\n}\n","/* ============================================================================\n CARD — SIGNATURE GLASS TREATMENT\n ============================================================================ */\n\n/* ==========================================================================\n Root — Glass surface with rim light\n ========================================================================== */\n\n.ds-card {\n position: relative;\n background: var(--glass-base);\n backdrop-filter: var(--glass-backdrop);\n -webkit-backdrop-filter: var(--glass-backdrop);\n border-radius: var(--radius-card);\n\n /* Glass border — transparent border with padding-box clip lets the\n ::before rim-light pseudo-element show through at the card edge. */\n border: 1px solid transparent;\n background-clip: padding-box;\n\n /*\n * overflow: clip — clips content at border-radius corners (needed for the\n * glass surface shape) but does NOT create a scroll container or new BFC.\n * Prefer 'clip' over 'hidden' because:\n * 1. 'hidden' creates a scroll container that traps nested sticky/fixed elements\n * 2. 'clip' respects overflow-clip-margin if we ever need it\n * 3. 'clip' is supported in all modern browsers (Chrome 90+, Firefox 81+, Safari 16+)\n *\n * IMPORTANT: Do NOT add 'padding: 0' here. Consumers use Tailwind utilities\n * (p-5, p-6 etc.) on the Card element. Because DS CSS loads after Tailwind\n * utilities in the cascade (via [locale]/layout.tsx imports), a padding\n * declaration here would override those utilities and cause text clipping\n * at rounded corners.\n */\n overflow: clip;\n\n /* Shadow */\n box-shadow:\n var(--shadow-md),\n var(--glass-shadow-inner);\n}\n\n/* Rim light */\n.ds-card::before {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n padding: var(--space-px);\n background: linear-gradient(180deg, var(--rim-light-hover-top) 0%, var(--rim-light-top) 100%);\n mask:\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n mask-composite: exclude;\n -webkit-mask:\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n pointer-events: none;\n}\n\n/* ==========================================================================\n Header — Groups title + description\n ========================================================================== */\n\n.ds-card__header {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--space-6) var(--space-6) 0;\n}\n\n/* ==========================================================================\n Title\n ========================================================================== */\n\n.ds-card__title {\n margin: 0;\n font-family: var(--font-family);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n line-height: var(--line-height-tight);\n}\n\n/* ==========================================================================\n Description\n ========================================================================== */\n\n.ds-card__description {\n margin: 0;\n font-family: var(--font-family);\n font-size: var(--font-size-sm);\n color: var(--text-secondary);\n line-height: var(--line-height-normal);\n}\n\n/* ==========================================================================\n Content\n ========================================================================== */\n\n.ds-card__content {\n padding: var(--space-6);\n}\n\n/* ==========================================================================\n Footer — Actions row\n ========================================================================== */\n\n.ds-card__footer {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 var(--space-6) var(--space-6);\n gap: var(--space-3);\n}\n\n/* ==========================================================================\n High Contrast Mode\n ========================================================================== */\n\n@media (prefers-contrast: more) {\n .ds-card {\n background: var(--hc-surface);\n border: 1px solid var(--hc-border);\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n\n .ds-card::before {\n display: none;\n }\n}\n\n/* ==========================================================================\n Reduced Motion\n ========================================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-card {\n transition: none;\n }\n}\n\n/* ==========================================================================\n Fallback — No backdrop-filter support\n ========================================================================== */\n\n@supports not (backdrop-filter: blur(1px)) {\n .ds-card {\n background: var(--fallback-surface);\n }\n}\n\n/* ==========================================================================\n Card v2 — Tier modifiers (compose with glass--tier-{N} from glass.css)\n Shadow elevation escalates per tier; blur/background handled by glass.css\n @since v2\n ========================================================================== */\n\n.ds-card--tier-1 {\n box-shadow:\n var(--shadow-md),\n var(--glass-shadow-inner);\n}\n\n.ds-card--tier-2 {\n box-shadow:\n var(--glass-shadow-elevated),\n var(--glass-shadow-inner);\n}\n\n.ds-card--tier-3 {\n box-shadow:\n var(--glass-shadow-elevated),\n var(--glass-shadow-inner),\n var(--shadow-xl);\n}\n\n/* ==========================================================================\n Card v2 — Radius modifiers\n Default radius (--radius-card = 24px) is already set in .ds-card.\n These modifiers override for panel or pill shapes.\n @since v2\n ========================================================================== */\n\n.ds-card--radius-panel {\n border-radius: var(--radius-panel);\n}\n\n.ds-card--radius-pill {\n border-radius: var(--radius-pill);\n}\n\n/* ==========================================================================\n Card v2 — Aurora inner glow (used by LeadNotification)\n Adds a warm pink inner glow to signal active/live state.\n @since v2\n ========================================================================== */\n\n.ds-card--aurora {\n box-shadow:\n var(--shadow-md),\n var(--glass-shadow-inner),\n inset 0 0 40px -10px var(--aurora-pink-low);\n}\n",".ds-social-proof-featured {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n gap: var(--space-6);\n overflow: clip;\n}\n\n.ds-social-proof-featured--cinematic,\n.ds-social-proof-featured--spotlight {\n grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);\n}\n\n.ds-social-proof-featured--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-featured--background-muted {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-featured--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-featured--padding-sm {\n padding: var(--space-5);\n}\n\n.ds-social-proof-featured--padding-md {\n padding: var(--space-7);\n}\n\n.ds-social-proof-featured--padding-lg {\n padding: var(--space-9);\n}\n\n.ds-social-proof-featured__media {\n min-height: 100%;\n overflow: clip;\n border-radius: var(--radius-card);\n}\n\n.ds-social-proof-featured__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.ds-social-proof-featured__content {\n display: flex;\n flex-direction: column;\n gap: var(--space-5);\n}\n\n.ds-social-proof-featured__meta,\n.ds-social-proof-featured__author {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n flex-wrap: wrap;\n}\n\n.ds-social-proof-featured__quote {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.ds-social-proof-featured__quote p {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--font-size-2xl);\n font-weight: var(--font-weight-medium);\n line-height: var(--line-height-snug);\n letter-spacing: var(--letter-spacing-tight);\n}\n\n.ds-social-proof-featured--spotlight .ds-social-proof-featured__quote p {\n font-size: var(--font-size-3xl);\n}\n\n.ds-social-proof-featured__avatar {\n width: var(--space-12);\n height: var(--space-12);\n flex: 0 0 auto;\n border-radius: var(--radius-pill);\n object-fit: cover;\n}\n\n.ds-social-proof-featured__author-copy {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n.ds-social-proof-featured__name {\n color: var(--text-primary);\n font-style: normal;\n font-weight: var(--font-weight-semibold);\n}\n\n.ds-social-proof-featured__role {\n color: var(--text-secondary);\n font-size: var(--font-size-sm);\n}\n\n@media (max-width: 768px) {\n .ds-social-proof-featured--cinematic,\n .ds-social-proof-featured--spotlight {\n grid-template-columns: minmax(0, 1fr);\n }\n}\n",".ds-social-proof-grid {\n display: grid;\n gap: var(--space-5);\n padding: var(--space-1);\n}\n\n.ds-social-proof-grid--background-default,\n.ds-social-proof-grid--background-muted,\n.ds-social-proof-grid--background-dark,\n.ds-social-proof-grid--background-brand {\n border-radius: var(--radius-panel);\n padding: var(--space-6);\n}\n\n.ds-social-proof-grid--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-grid--background-muted,\n.ds-social-proof-grid--background-dark {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-grid--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-grid--columns-1 {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.ds-social-proof-grid--columns-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.ds-social-proof-grid--columns-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.ds-social-proof-grid--columns-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.ds-social-proof-grid--staggered > :nth-child(even) {\n transform: translateY(var(--space-4));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ds-social-proof-grid--staggered > :nth-child(even) {\n transform: none;\n }\n}\n\n@media (max-width: 960px) {\n .ds-social-proof-grid--columns-3,\n .ds-social-proof-grid--columns-4 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (max-width: 640px) {\n .ds-social-proof-grid,\n .ds-social-proof-grid--columns-2,\n .ds-social-proof-grid--columns-3,\n .ds-social-proof-grid--columns-4 {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .ds-social-proof-grid--staggered > :nth-child(even) {\n transform: none;\n }\n}\n",".ds-social-proof-logos {\n display: flex;\n flex-direction: column;\n gap: var(--space-5);\n}\n\n.ds-social-proof-logos--background-default,\n.ds-social-proof-logos--background-muted,\n.ds-social-proof-logos--background-dark,\n.ds-social-proof-logos--background-brand {\n border-radius: var(--radius-panel);\n padding: var(--space-6);\n}\n\n.ds-social-proof-logos--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-logos--background-muted,\n.ds-social-proof-logos--background-dark {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-logos--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-logos__title {\n margin: 0;\n color: var(--text-secondary);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n text-align: center;\n}\n\n.ds-social-proof-logos__viewport {\n overflow: clip;\n}\n\n.ds-social-proof-logos__track {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n gap: var(--space-5);\n}\n\n.ds-social-proof-logos--marquee .ds-social-proof-logos__track {\n width: max-content;\n flex-wrap: nowrap;\n animation: ds-social-proof-logos-marquee var(--duration-slower) linear infinite;\n}\n\n.ds-social-proof-logos--speed-slow .ds-social-proof-logos__track {\n animation-duration: var(--duration-slowest);\n}\n\n.ds-social-proof-logos--speed-fast .ds-social-proof-logos__track {\n animation-duration: var(--duration-slow);\n}\n\n.ds-social-proof-logos__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: var(--space-12);\n border-radius: var(--radius-card);\n color: var(--text-secondary);\n text-decoration: none;\n}\n\n.ds-social-proof-logos__item-content {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.ds-social-proof-logos__image {\n max-width: var(--container-2xs);\n max-height: var(--space-10);\n object-fit: contain;\n}\n\n.ds-social-proof-logos__badge {\n border: var(--border-width-hairline) solid var(--rim-light-bottom);\n border-radius: var(--radius-pill);\n color: var(--text-tertiary);\n font-size: var(--font-size-xs);\n padding: var(--space-1) var(--space-2);\n}\n\n@keyframes ds-social-proof-logos-marquee {\n from {\n transform: translateX(0);\n }\n\n to {\n transform: translateX(-50%);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ds-social-proof-logos--marquee .ds-social-proof-logos__track {\n animation: none;\n }\n}\n","/* ============================================================================\n VIDEO LIGHTBOX — MODAL VIDEO PLAYER\n ============================================================================ */\n\n/* --- Screen Reader Only utility --- */\n.ds-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n/* --- Trigger --- */\n\n.ds-video-lightbox__trigger {\n all: unset;\n cursor: pointer;\n display: block;\n width: 100%;\n}\n\n.ds-video-lightbox__thumbnail-wrap {\n position: relative;\n width: 100%;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-card);\n overflow: hidden;\n background: var(--glass-base-active, rgba(0, 0, 0, 0.3));\n}\n\n.ds-video-lightbox__thumbnail {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__thumbnail {\n transform: scale(1.05);\n}\n\n.ds-video-lightbox__placeholder {\n width: 100%;\n height: 100%;\n background: linear-gradient(135deg,\n var(--glass-base-active, rgba(0, 0, 0, 0.4)) 0%,\n var(--glass-base, rgba(0, 0, 0, 0.2)) 100%\n );\n}\n\n/* --- Play Button Overlay --- */\n\n.ds-video-lightbox__overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, transparent 60%);\n transition: background 0.3s ease;\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__overlay {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.3) 0%, transparent 60%);\n}\n\n.ds-video-lightbox__play-btn {\n transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__play-btn {\n transform: scale(1.1);\n}\n\n.ds-video-lightbox__play-bg {\n /* stylelint-disable-next-line declaration-property-value-disallowed-list -- SVG play button backdrop, no fill token exists */\n fill: rgba(0, 0, 0, 0.6);\n transition: fill 0.3s ease;\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__play-bg {\n fill: var(--brand-pink, #f97316);\n}\n\n/* --- Play Button Pulse Ring --- */\n\n.ds-video-lightbox__play-btn::after {\n content: '';\n position: absolute;\n inset: -8px;\n border-radius: 50%;\n border: 2px solid var(--glass-white-alpha-30);\n animation: ds-lightbox-pulse 2s ease-out infinite;\n}\n\n@keyframes ds-lightbox-pulse {\n 0% {\n transform: scale(0.8);\n opacity: 1;\n }\n 100% {\n transform: scale(1.4);\n opacity: 0;\n }\n}\n\n/* --- Backdrop --- */\n\n.ds-video-lightbox__backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.85);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n z-index: 9998;\n animation: ds-lightbox-fade-in 0.25s ease-out;\n}\n\n/* --- Popup --- */\n\n.ds-video-lightbox__popup {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-6);\n z-index: 9999;\n animation: ds-lightbox-scale-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n/* --- Close Button --- */\n\n.ds-video-lightbox__close {\n all: unset;\n position: absolute;\n top: var(--space-4);\n right: var(--space-4);\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--text-on-dark, white);\n opacity: 0.7;\n cursor: pointer;\n border-radius: 50%;\n background: var(--glass-white-alpha-10);\n transition:\n opacity var(--transition-base),\n background var(--transition-base);\n z-index: 1;\n}\n\n.ds-video-lightbox__close:hover {\n opacity: 1;\n background: var(--glass-white-alpha-20);\n}\n\n.ds-video-lightbox__close:focus-visible {\n outline: 2px solid var(--brand-pink, #f97316);\n outline-offset: 2px;\n}\n\n/* --- Iframe Container --- */\n\n.ds-video-lightbox__iframe-wrap {\n width: 100%;\n max-width: 1200px;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-card, 12px);\n overflow: hidden;\n background: black;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n}\n\n.ds-video-lightbox__iframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n/* --- Animations --- */\n\n@keyframes ds-lightbox-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes ds-lightbox-scale-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-video-lightbox__backdrop,\n .ds-video-lightbox__popup {\n animation: none;\n }\n\n .ds-video-lightbox__thumbnail {\n transition: none;\n }\n\n .ds-video-lightbox__play-btn::after {\n animation: none;\n }\n\n .ds-video-lightbox__play-btn {\n transition: none;\n }\n}\n",".ds-metric-counter {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-family: var(--font-family);\n}\n\n.ds-metric-counter__value-wrapper {\n display: flex;\n align-items: baseline;\n justify-content: center;\n color: var(--text-primary);\n line-height: var(--line-height-display);\n}\n\n.ds-metric-counter__prefix,\n.ds-metric-counter__suffix {\n font-size: var(--font-size-3xl);\n font-weight: var(--font-weight-bold);\n color: rgb(var(--accent-rgb));\n}\n\n.ds-metric-counter__value {\n font-size: var(--font-size-5xl);\n font-weight: var(--font-weight-bold);\n letter-spacing: var(--letter-spacing-display);\n font-variant-numeric: tabular-nums;\n}\n\n.ds-metric-counter__label {\n margin-top: var(--space-2);\n font-size: var(--font-size-base);\n color: var(--text-secondary);\n font-weight: var(--font-weight-medium);\n}\n\n@media (max-width: 640px) {\n .ds-metric-counter__prefix,\n .ds-metric-counter__suffix {\n font-size: var(--font-size-2xl);\n }\n\n .ds-metric-counter__value {\n font-size: var(--font-size-4xl);\n }\n}\n"],"mappings":";AAIA,CAAC;AACC,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACX;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACX;AAIA,CAAC,mBAAmB,CAAC;AACnB,SAAO;AACP,UAAQ;AACV;AAEA,CAAC,mBAAmB,CALC;AAMnB,SAAO;AACP,UAAQ;AACV;AAEA,CAAC,mBAAmB,CAVC;AAWnB,SAAO;AACP,UAAQ;AACV;AAIA,CAAC;AACC,YAAU;AACV,WAAS;AACT,eAAa;AACf;AAEA,CAvBqB;AAwBnB,WAAS;AACX;AAEA,CAAC;AACC,YAAU;AACV,SAAO;AACP,cAAY,UAAU,KAAK,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;AACtD,oBAAkB,IAAI,YAAY,EAAE;AACtC;AAGA,CAAC;AACC,QAAM,IAAI,eAAe,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACjD;AAGA,CAAC;AACC,QAAM,IAAI,aAAa,EAAE;AAC3B;AAIA,CA7BC;AA8BC,WAAS;AACT,aAAW,MAAM;AACnB;AAGA,CAnCC,oBAmCoB,KAAK,CAAC;AACzB,WAAS;AACT,aAAW,MAAM;AACnB;AAEA,CAL2B;AAMzB,WAAS;AACT,aAAW,MAAM;AACjB,cACE,QAAQ,KAAK,QAAQ,EACrB,UAAU,KAAK,aAAa,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAChD,oBAAkB,IAAI,YAAY,EAAE;AACtC;AAIA,CAAC;AACC,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACf;AAEA,CA3EC,mBA2EmB,CAPnB;AAQC,aAAW,IAAI;AACjB;AAEA,CA1EC,mBA0EmB,CAXnB;AAYC,aAAW,IAAI;AACjB;AAEA,CAzEC,mBAyEmB,CAfnB;AAgBC,aAAW,IAAI;AACjB;AAEA,CAAC;AACC,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa,IAAI;AACnB;AAIA,OAAO,CAAC,sBAAsB,EAAE;AAC9B,GA/ED;AAAA,EAgFC,CA7CyB;AA8CvB,gBAAY;AACd;AAEA,GA1ED;AA2EG,gBAAY;AACd;AACF;;;ACtHA,CAAC;AACC,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,WAAS,IAAI,WAAW,IAAI;AAC5B,iBAAe,IAAI,cAAc,EAAE;AACnC,cAAY,IAAI,YAAY,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAClD,UAAQ,IAAI,MAAM,IAAI,kBAAkB,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC9D;AAAA,IACE,WAAW,IAAI,kBAAkB;AAAA,IACjC,aAAa,IAAI,kBAAkB;AAAA,IACnC,WAAW,IAAI;AACjB,eAAa;AACf;AAEA,CAfC,iBAeiB;AAChB,cAAY,IAAI,kBAAkB,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACxD,gBAAc,UAAU,GAAG,IAAI,EAAE,IAAI,mBAAmB,GAAG,EAAE;AAC7D,cAAY,EAAE,EAAE,KAAK,UAAU,GAAG,IAAI,EAAE,IAAI,mBAAmB,GAAG,EAAE;AACtE;AAIA,CAAC;AACC,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,eAAa;AACb,eAAa;AACf;AAIA,CAAC;AACC,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa;AACf;AAIA,CAAC;AACC,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACX;AAEA,CAAC;AACC,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa;AACf;AAIA,CAAC;AACC,WAAS,IAAI,WAAW,IAAI;AAC9B;AAEA,CAJC,sBAIsB,CA5BtB;AA6BC,aAAW,IAAI;AACjB;AAEA,CAAC;AACC,WAAS,IAAI,WAAW,IAAI;AAC9B;AAEA,CAJC,sBAIsB,CApCtB;AAqCC,aAAW,IAAI;AACjB;AAIA,CAAC;AACC,WAAS,IAAI;AACb,iBAAe,IAAI,cAAc,EAAE;AACrC;AAEA,CAAC;AACC,OAAK,IAAI;AACX;AAIA,OAAO,CAAC,sBAAsB,EAAE;AAC9B,GAvFD;AAwFG,gBAAY;AACd;AACF;;;AC9FA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,YAAU;AACV,SAAO,IAAI;AACb;AAEA,CAAC;AACC,gBAAc,GAAG,EAAE;AACnB,YAAU;AACZ;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,cAAY;AACd;AAEA,CAAC;AACC,WAAS;AACT,QAAM;AACN,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI;AACf;AAEA,CAAC,8BAA8B,CAR9B;AASC,OAAK,IAAI;AACT,WAAS,IAAI;AACf;AAEA,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACC,WAAS;AACT,eAAa;AACf;AAEA,CARC;AASD,CARC;AASC,aAAW;AACX,OAAK,IAAI;AACX;AAEA,CAAC;AACD,CAAC;AACC,UAAQ,IAAI,yBAAyB,MAAM,IAAI;AAC/C,iBAAe,IAAI;AACnB,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,WAAS,IAAI,WAAW,IAAI;AAC9B;AAEA,CAAC;AACC,UAAQ;AACR,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACnB;AAEA,CAAC;AACC,UAAQ;AACR,WAAS;AACT,UAAQ;AACV;AAEA,CANC,4BAM4B;AAC3B,UAAQ;AACR,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa,IAAI;AACnB;AAEA,CAAC,gCAAgC,CAbhC,4BAa6D;AAC9D,CAAC,+BAA+B,CAd/B,4BAc4D;AAC3D,aAAW,IAAI;AACjB;AAEA,CA/CC;AAgDC,OAAK,IAAI;AACX;AAEA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACX;AAEA,CAAC;AACC,SAAO,IAAI,IAAI;AACf,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACnB;AAEA,CAAC;AACC,SAAO,IAAI;AACX,aAAW,IAAI;AACjB;AAEA,CAtEC;AAuEC,OAAK,IAAI;AACT,cAAY;AACd;AAEA,CAAC;AACC,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,QAAM,EAAE,EAAE;AACV,iBAAe,IAAI;AACnB,cAAY;AACd;AAEA,CAAC;AACC,WAAS;AACT,aAAW;AACX,kBAAgB;AAChB,OAAK,IAAI;AACX;AAEA,CAAC;AACC,SAAO,IAAI;AACX,cAAY;AACZ,eAAa,IAAI;AACnB;AAEA,CAAC;AACC,SAAO,IAAI;AACX,aAAW,IAAI;AACjB;AAEA,CAAC;AACC,SAAO,IAAI,IAAI;AACf,aAAW,IAAI;AACf,eAAa,IAAI;AACnB;AAEA,OAAO,CAAC,gBAAgB,EAAE;AACxB,GA7ID;AA8IG,gBAAY,IAAI;AAChB,kBAAc,IAAI;AACpB;AACF;AAEA,UAAU,IAAI,CAAC,eAAe,EAAE,KAAK;AACnC,GApJD;AAqJG,gBAAY,IAAI;AAClB;AACF;;;ACvJA,CAAC;AACC,cAAY;AACZ,cAAY;AACZ,oBAAkB,EAAE;AACpB,mBAAiB;AACnB;AAEA,CAPC,wBAOwB;AACvB,WAAS;AACX;AAEA,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACC,iBAAe,IAAI;AACnB,WAAS,IAAI;AACf;AAEA,CARC;AASC,cAAY,IAAI;AAClB;AAEA,CAXC;AAYD,CAXC;AAYC,cAAY,IAAI;AAClB;AAEA,CAdC;AAeC,cAAY,IAAI;AAClB;AAEA,CAAC;AACC,WAAS;AACT,qBAAmB,OAAO,IAAI,IAAI,EAAE,IAAI,gBAAgB,EAAE,IAAI;AAC9D,kBAAgB;AAChB,OAAK,IAAI;AACX;AAEA,CAPC,gCAOgC,EAAE;AACjC,qBAAmB;AACrB;;;ACjCA,CAAC;AACC,YAAU;AACV,cAAY,IAAI;AAChB,mBAAiB,IAAI;AACrB,2BAAyB,IAAI;AAC7B,iBAAe,IAAI;AAInB,UAAQ,IAAI,MAAM;AAClB,mBAAiB;AAgBjB,YAAU;AAGV,cACE,IAAI,YAAY,EAChB,IAAI;AACR;AAGA,CAnCC,OAmCO;AACN,WAAS;AACT,YAAU;AACV,SAAO;AACP,iBAAe;AACf,WAAS,IAAI;AACb;AAAA,IAAY;AAAA,MAAgB,MAAM;AAAA,MAAE,IAAI,uBAAuB,EAAE;AAAA,MAAE,IAAI,iBAAiB;AACxF,QACE,gBAAgB,KAAK,EAAE,GAAG,WAAW,EACrC,gBAAgB,KAAK,EAAE;AACzB,kBAAgB;AAChB,gBACE,gBAAgB,KAAK,EAAE,GAAG,WAAW,EACrC,gBAAgB,KAAK,EAAE;AACzB,0BAAwB;AACxB,kBAAgB;AAClB;AAMA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACT,WAAS,IAAI,WAAW,IAAI,WAAW;AACzC;AAMA,CAAC;AACC,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI;AACX,eAAa,IAAI;AACnB;AAMA,CAAC;AACC,UAAQ;AACR,eAAa,IAAI;AACjB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa,IAAI;AACnB;AAMA,CAAC;AACC,WAAS,IAAI;AACf;AAMA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,WAAS,EAAE,IAAI,WAAW,IAAI;AAC9B,OAAK,IAAI;AACX;AAMA,OAAO,CAAC,gBAAgB,EAAE;AACxB,GAlHD;AAmHG,gBAAY,IAAI;AAChB,YAAQ,IAAI,MAAM,IAAI;AACtB,qBAAiB;AACjB,6BAAyB;AAC3B;AAEA,GAzHD,OAyHS;AACN,aAAS;AACX;AACF;AAMA,OAAO,CAAC,sBAAsB,EAAE;AAC9B,GAnID;AAoIG,gBAAY;AACd;AACF;AAMA,UAAU,IAAI,CAAC,eAAe,EAAE,KAAK;AACnC,GA7ID;AA8IG,gBAAY,IAAI;AAClB;AACF;AAQA,CAAC;AACC,cACE,IAAI,YAAY,EAChB,IAAI;AACR;AAEA,CAAC;AACC,cACE,IAAI,wBAAwB,EAC5B,IAAI;AACR;AAEA,CAAC;AACC;AAAA,IACE,IAAI,wBAAwB;AAAA,IAC5B,IAAI,qBAAqB;AAAA,IACzB,IAAI;AACR;AASA,CAAC;AACC,iBAAe,IAAI;AACrB;AAEA,CAAC;AACC,iBAAe,IAAI;AACrB;AAQA,CAAC;AACC;AAAA,IACE,IAAI,YAAY;AAAA,IAChB,IAAI,qBAAqB;AAAA,IACzB,MAAM,EAAE,EAAE,KAAK,MAAM,IAAI;AAC7B;;;AC7MA,CAAC;AACC,WAAS;AACT,yBAAuB,OAAO,CAAC,EAAE;AACjC,OAAK,IAAI;AACT,YAAU;AACZ;AAEA,CAAC;AACD,CAAC;AACC,yBAAuB,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;AAClD;AAEA,CAAC;AACC,cAAY,IAAI;AAClB;AAEA,CAAC;AACC,cAAY,IAAI;AAClB;AAEA,CAAC;AACC,cAAY,IAAI;AAClB;AAEA,CAAC;AACC,WAAS,IAAI;AACf;AAEA,CAAC;AACC,WAAS,IAAI;AACf;AAEA,CAAC;AACC,WAAS,IAAI;AACf;AAEA,CAAC;AACC,cAAY;AACZ,YAAU;AACV,iBAAe,IAAI;AACrB;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,cAAY;AACd;AAEA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACX;AAEA,CAAC;AACD,CAAC;AACC,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACT,aAAW;AACb;AAEA,CAAC;AACC,UAAQ;AACR,WAAS;AACT,UAAQ;AACV;AAEA,CANC,gCAMgC;AAC/B,UAAQ;AACR,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACtB;AAEA,CArEC,oCAqEoC,CAfpC,gCAeqE;AACpE,aAAW,IAAI;AACjB;AAEA,CAAC;AACC,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,QAAM,EAAE,EAAE;AACV,iBAAe,IAAI;AACnB,cAAY;AACd;AAEA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACX;AAEA,CAAC;AACC,SAAO,IAAI;AACX,cAAY;AACZ,eAAa,IAAI;AACnB;AAEA,CAAC;AACC,SAAO,IAAI;AACX,aAAW,IAAI;AACjB;AAEA,OAAO,CAAC,SAAS,EAAE;AACjB,GApGD;AAAA,EAqGC,CApGD;AAqGG,2BAAuB,OAAO,CAAC,EAAE;AACnC;AACF;;;AC/GA,CAAC;AACC,WAAS;AACT,OAAK,IAAI;AACT,WAAS,IAAI;AACf;AAEA,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACC,iBAAe,IAAI;AACnB,WAAS,IAAI;AACf;AAEA,CARC;AASC,cAAY,IAAI;AAClB;AAEA,CAXC;AAYD,CAXC;AAYC,cAAY,IAAI;AAClB;AAEA,CAdC;AAeC,cAAY,IAAI;AAClB;AAEA,CAAC;AACC,yBAAuB,OAAO,CAAC,EAAE;AACnC;AAEA,CAAC;AACC,yBAAuB,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAC7C;AAEA,CAAC;AACC,yBAAuB,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAC7C;AAEA,CAAC;AACC,yBAAuB,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAC7C;AAEA,CAAC,gCAAgC,EAAE;AACjC,aAAW,WAAW,IAAI;AAC5B;AAEA,OAAO,CAAC,sBAAsB,EAAE;AAC9B,GALD,gCAKkC,EAAE;AACjC,eAAW;AACb;AACF;AAEA,OAAO,CAAC,SAAS,EAAE;AACjB,GAnBD;AAAA,EAoBC,CAhBD;AAiBG,2BAAuB,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE;AAC7C;AACF;AAEA,OAAO,CAAC,SAAS,EAAE;AACjB,GA7DD;AAAA,EA8DC,CA/BD;AAAA,EAgCC,CA5BD;AAAA,EA6BC,CAzBD;AA0BG,2BAAuB,OAAO,CAAC,EAAE;AACnC;AAEA,GAzBD,gCAyBkC,EAAE;AACjC,eAAW;AACb;AACF;;;ACvEA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,OAAK,IAAI;AACX;AAEA,CAAC;AACD,CAAC;AACD,CAAC;AACD,CAAC;AACC,iBAAe,IAAI;AACnB,WAAS,IAAI;AACf;AAEA,CARC;AASC,cAAY,IAAI;AAClB;AAEA,CAXC;AAYD,CAXC;AAYC,cAAY,IAAI;AAClB;AAEA,CAdC;AAeC,cAAY,IAAI;AAClB;AAEA,CAAC;AACC,UAAQ;AACR,SAAO,IAAI;AACX,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,cAAY;AACd;AAEA,CAAC;AACC,YAAU;AACZ;AAEA,CAAC;AACC,WAAS;AACT,aAAW;AACX,eAAa;AACb,mBAAiB;AACjB,OAAK,IAAI;AACX;AAEA,CAAC,+BAA+B,CAR/B;AASC,SAAO;AACP,aAAW;AACX,aAAW,8BAA8B,IAAI,mBAAmB,OAAO;AACzE;AAEA,CAAC,kCAAkC,CAdlC;AAeC,sBAAoB,IAAI;AAC1B;AAEA,CAAC,kCAAkC,CAlBlC;AAmBC,sBAAoB,IAAI;AAC1B;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,cAAY,IAAI;AAChB,iBAAe,IAAI;AACnB,SAAO,IAAI;AACX,mBAAiB;AACnB;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,OAAK,IAAI;AACX;AAEA,CAAC;AACC,aAAW,IAAI;AACf,cAAY,IAAI;AAChB,cAAY;AACd;AAEA,CAAC;AACC,UAAQ,IAAI,yBAAyB,MAAM,IAAI;AAC/C,iBAAe,IAAI;AACnB,SAAO,IAAI;AACX,aAAW,IAAI;AACf,WAAS,IAAI,WAAW,IAAI;AAC9B;AAEA,WAzCa;AA0CX;AACE,eAAW,WAAW;AACxB;AAEA;AACE,eAAW,WAAW;AACxB;AACF;AAEA,OAAO,CAAC,sBAAsB,EAAE;AAC9B,GAvDD,+BAuDiC,CA/DjC;AAgEG,eAAW;AACb;AACF;;;ACpGA,CAAC;AACC,YAAU;AACV,SAAO;AACP,UAAQ;AACR,WAAS;AACT,UAAQ;AACR,YAAU;AACV,aAAW,MAAM;AACjB,eAAa;AACb,UAAQ;AACV;AAIA,CAAC;AACC,OAAK;AACL,UAAQ;AACR,WAAS;AACT,SAAO;AACT;AAEA,CAAC;AACC,YAAU;AACV,SAAO;AACP,gBAAc,GAAG,EAAE;AACnB,iBAAe,IAAI;AACnB,YAAU;AACV,cAAY,IAAI,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACrD;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,cAAY;AACZ,cAAY,UAAU,KAAK,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;AACxD;AAEA,CAvBC,0BAuB0B,OAAO,CAPjC;AAQC,aAAW,MAAM;AACnB;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACR;AAAA,IAAY;AAAA,MAAgB,MAAM;AAAA,MAChC,IAAI,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;AAAA,MAC/C,IAAI,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM;AAE1C;AAIA,CAAC;AACC,YAAU;AACV,SAAO;AACP,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB;AAAA,IAAY;AAAA,MAAgB,GAAG,GAAG;AAAA,MAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;AAAA,MAAE,YAAY;AACvE,cAAY,WAAW,KAAK;AAC9B;AAEA,CAhDC,0BAgD0B,OAAO,CAVjC;AAWC;AAAA,IAAY;AAAA,MAAgB,GAAG,GAAG;AAAA,MAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;AAAA,MAAE,YAAY;AACzE;AAEA,CAAC;AACC,cAAY,UAAU,KAAK,aAAa,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE;AAC5D;AAEA,CAxDC,0BAwD0B,OAAO,CAJjC;AAKC,aAAW,MAAM;AACnB;AAEA,CAAC;AAEC,QAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AACpB,cAAY,KAAK,KAAK;AACxB;AAEA,CAlEC,0BAkE0B,OAAO,CANjC;AAOC,QAAM,IAAI,YAAY,EAAE;AAC1B;AAIA,CApBC,2BAoB2B;AAC1B,WAAS;AACT,YAAU;AACV,SAAO;AACP,iBAAe;AACf,UAAQ,IAAI,MAAM,IAAI;AACtB,aAAW,kBAAkB,GAAG,SAAS;AAC3C;AAEA,WAHa;AAIX;AACE,eAAW,MAAM;AACjB,aAAS;AACX;AACA;AACE,eAAW,MAAM;AACjB,aAAS;AACX;AACF;AAIA,CAAC;AACC,YAAU;AACV,SAAO;AACP,cAAY,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC1B,mBAAiB,KAAK;AACtB,2BAAyB,KAAK;AAC9B,WAAS;AACT,aAAW,oBAAoB,MAAM;AACvC;AAIA,CAAC;AACC,YAAU;AACV,SAAO;AACP,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,WAAS,IAAI;AACb,WAAS;AACT,aAAW,qBAAqB,KAAK,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE;AAClE;AAIA,CAAC;AACC,OAAK;AACL,YAAU;AACV,OAAK,IAAI;AACT,SAAO,IAAI;AACX,SAAO;AACP,UAAQ;AACR,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI,cAAc,EAAE;AAC3B,WAAS;AACT,UAAQ;AACR,iBAAe;AACf,cAAY,IAAI;AAChB,cACE,QAAQ,IAAI,kBAAkB,EAC9B,WAAW,IAAI;AACjB,WAAS;AACX;AAEA,CArBC,wBAqBwB;AACvB,WAAS;AACT,cAAY,IAAI;AAClB;AAEA,CA1BC,wBA0BwB;AACvB,WAAS,IAAI,MAAM,IAAI,YAAY,EAAE;AACrC,kBAAgB;AAClB;AAIA,CAAC;AACC,SAAO;AACP,aAAW;AACX,gBAAc,GAAG,EAAE;AACnB,iBAAe,IAAI,aAAa,EAAE;AAClC,YAAU;AACV,cAAY;AACZ,cAAY,EAAE,KAAK,KAAK,MAAM,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC9C;AAEA,CAAC;AACC,SAAO;AACP,UAAQ;AACR,UAAQ;AACV;AAIA,WArEa;AAsEX;AAAO,aAAS;AAAG;AACnB;AAAK,aAAS;AAAG;AACnB;AAEA,WA7Da;AA8DX;AACE,aAAS;AACT,eAAW,MAAM;AACnB;AACA;AACE,aAAS;AACT,eAAW,MAAM;AACnB;AACF;AAIA,OAAO,CAAC,sBAAsB,EAAE;AAC9B,GA/FD;AAAA,EAgGC,CApFD;AAqFG,eAAW;AACb;AAEA,GAlLD;AAmLG,gBAAY;AACd;AAEA,GAlJD,2BAkJ6B;AAC1B,eAAW;AACb;AAEA,GAtJD;AAuJG,gBAAY;AACd;AACF;;;AChOA,CAAC;AACC,WAAS;AACT,kBAAgB;AAChB,eAAa;AACb,mBAAiB;AACjB,cAAY;AACZ,eAAa,IAAI;AACnB;AAEA,CAAC;AACC,WAAS;AACT,eAAa;AACb,mBAAiB;AACjB,SAAO,IAAI;AACX,eAAa,IAAI;AACnB;AAEA,CAAC;AACD,CAAC;AACC,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,SAAO,IAAI,IAAI;AACjB;AAEA,CAAC;AACC,aAAW,IAAI;AACf,eAAa,IAAI;AACjB,kBAAgB,IAAI;AACpB,wBAAsB;AACxB;AAEA,CAAC;AACC,cAAY,IAAI;AAChB,aAAW,IAAI;AACf,SAAO,IAAI;AACX,eAAa,IAAI;AACnB;AAEA,OAAO,CAAC,SAAS,EAAE;AACjB,GAtBD;AAAA,EAuBC,CAtBD;AAuBG,eAAW,IAAI;AACjB;AAEA,GApBD;AAqBG,eAAW,IAAI;AACjB;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/components/StarRating/StarRating.css","../../src/components/PlatformBadge/PlatformBadge.css","../../src/components/SocialProofCard/SocialProofCard.css","../../src/components/SocialProofCard/SocialProofCard-v2.css","../../src/components/SocialProofCarousel/SocialProofCarousel.css","../../src/components/Card/Card.css","../../src/components/SocialProofFeatured/SocialProofFeatured.css","../../src/components/SocialProofGrid/SocialProofGrid.css","../../src/components/SocialProofLogos/SocialProofLogos.css","../../src/components/VideoLightbox/VideoLightbox.css","../../src/components/MetricCounter/MetricCounter.css"],"sourcesContent":["/* ============================================================================\n STAR RATING — ELITE SOCIAL PROOF\n ============================================================================ */\n\n.ds-star-rating {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.ds-star-rating__stars {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n/* --- Size Variants --- */\n\n.ds-star-rating--sm .ds-star-rating__svg {\n width: 16px;\n height: 16px;\n}\n\n.ds-star-rating--md .ds-star-rating__svg {\n width: 20px;\n height: 20px;\n}\n\n.ds-star-rating--lg .ds-star-rating__svg {\n width: 28px;\n height: 28px;\n}\n\n/* --- Star Element --- */\n\n.ds-star-rating__star {\n position: relative;\n display: inline-flex;\n line-height: 0;\n}\n\n.ds-star-rating__svg {\n display: block;\n}\n\n.ds-star-rating__svg--filled {\n position: absolute;\n inset: 0;\n transition: clip-path 0.4s cubic-bezier(0.16, 1, 0.3, 1);\n transition-delay: var(--star-delay, 0ms);\n}\n\n/* Empty star */\n.ds-star-rating__empty {\n fill: var(--text-tertiary, rgba(255, 255, 255, 0.15));\n}\n\n/* Filled star — amber/gold */\n.ds-star-rating__filled {\n fill: var(--data-yellow, #eab308);\n}\n\n/* --- Entrance Animation --- */\n\n.ds-star-rating__star {\n opacity: 1;\n transform: scale(1);\n}\n\n/* When animate is enabled, stars start hidden */\n.ds-star-rating__star:not(.ds-star-rating__star--visible) {\n opacity: 0;\n transform: scale(0.5);\n}\n\n.ds-star-rating__star--visible {\n opacity: 1;\n transform: scale(1);\n transition:\n opacity 0.3s ease-out,\n transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);\n transition-delay: var(--star-delay, 0ms);\n}\n\n/* --- Value Display --- */\n\n.ds-star-rating__value {\n font-family: var(--font-family);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n line-height: 1;\n}\n\n.ds-star-rating--sm .ds-star-rating__value {\n font-size: var(--font-size-sm);\n}\n\n.ds-star-rating--md .ds-star-rating__value {\n font-size: var(--font-size-base);\n}\n\n.ds-star-rating--lg .ds-star-rating__value {\n font-size: var(--font-size-xl);\n}\n\n.ds-star-rating__value-label {\n font-weight: var(--font-weight-normal);\n color: var(--text-secondary);\n margin-left: var(--space-1);\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-star-rating__star,\n .ds-star-rating__star--visible {\n transition: none;\n }\n\n .ds-star-rating__svg--filled {\n transition: none;\n }\n}\n","/* ============================================================================\n PLATFORM BADGE — TRUST SIGNAL\n ============================================================================ */\n\n.ds-platform-badge {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-1) var(--space-2);\n border-radius: var(--radius-badge, 999px);\n background: var(--glass-base, rgba(255, 255, 255, 0.05));\n border: 1px solid var(--rim-light-bottom, rgba(255, 255, 255, 0.06));\n transition:\n background var(--transition-base),\n border-color var(--transition-base),\n box-shadow var(--transition-base);\n white-space: nowrap;\n}\n\n.ds-platform-badge:hover {\n background: var(--glass-base-hover, rgba(255, 255, 255, 0.08));\n border-color: color-mix(in srgb, var(--platform-accent) 30%, transparent);\n box-shadow: 0 0 12px color-mix(in srgb, var(--platform-accent) 15%, transparent);\n}\n\n/* --- Icon --- */\n\n.ds-platform-badge__icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n line-height: 0;\n}\n\n/* --- Label --- */\n\n.ds-platform-badge__label {\n font-family: var(--font-family);\n font-weight: var(--font-weight-medium);\n color: var(--text-primary);\n line-height: 1;\n}\n\n/* --- Rating (full variant) --- */\n\n.ds-platform-badge__rating {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n}\n\n.ds-platform-badge__count {\n font-family: var(--font-family);\n font-size: var(--font-size-xs);\n color: var(--text-secondary);\n line-height: 1;\n}\n\n/* --- Size Variants --- */\n\n.ds-platform-badge--sm {\n padding: var(--space-1) var(--space-2);\n}\n\n.ds-platform-badge--sm .ds-platform-badge__label {\n font-size: var(--font-size-xs);\n}\n\n.ds-platform-badge--md {\n padding: var(--space-2) var(--space-3);\n}\n\n.ds-platform-badge--md .ds-platform-badge__label {\n font-size: var(--font-size-sm);\n}\n\n/* --- Display Mode Variants --- */\n\n.ds-platform-badge--icon-only {\n padding: var(--space-1);\n border-radius: var(--radius-badge, 999px);\n}\n\n.ds-platform-badge--full {\n gap: var(--space-2);\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-platform-badge {\n transition: none;\n }\n}\n",".ds-social-proof-card {\n display: flex;\n flex-direction: column;\n overflow: clip;\n color: var(--text-primary);\n}\n\n.ds-social-proof-card__media {\n aspect-ratio: 16 / 9;\n overflow: clip;\n}\n\n.ds-social-proof-card__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.ds-social-proof-card__body {\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--space-4);\n padding: var(--space-5);\n}\n\n.ds-social-proof-card--compact .ds-social-proof-card__body {\n gap: var(--space-3);\n padding: var(--space-4);\n}\n\n.ds-social-proof-card__meta,\n.ds-social-proof-card__badges,\n.ds-social-proof-card__author,\n.ds-social-proof-card__metrics {\n display: flex;\n align-items: center;\n}\n\n.ds-social-proof-card__meta,\n.ds-social-proof-card__badges {\n flex-wrap: wrap;\n gap: var(--space-2);\n}\n\n.ds-social-proof-card__industry,\n.ds-social-proof-card__badge {\n border: var(--border-width-hairline) solid var(--rim-light-bottom);\n border-radius: var(--radius-pill);\n color: var(--text-secondary);\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-medium);\n padding: var(--space-1) var(--space-2);\n}\n\n.ds-social-proof-card__headline {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--font-size-xl);\n font-weight: var(--font-weight-semibold);\n line-height: var(--line-height-tight);\n}\n\n.ds-social-proof-card__quote {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.ds-social-proof-card__quote p {\n margin: 0;\n color: var(--text-secondary);\n font-size: var(--font-size-base);\n line-height: var(--line-height-relaxed);\n}\n\n.ds-social-proof-card--narrative .ds-social-proof-card__quote p,\n.ds-social-proof-card--detailed .ds-social-proof-card__quote p {\n font-size: var(--font-size-lg);\n}\n\n.ds-social-proof-card__metrics {\n gap: var(--space-5);\n}\n\n.ds-social-proof-card__metric {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n.ds-social-proof-card__metric-value {\n color: rgb(var(--accent-rgb));\n font-size: var(--font-size-xl);\n font-weight: var(--font-weight-bold);\n line-height: var(--line-height-tight);\n}\n\n.ds-social-proof-card__metric-label {\n color: var(--text-tertiary);\n font-size: var(--font-size-xs);\n}\n\n.ds-social-proof-card__author {\n gap: var(--space-3);\n margin-top: auto;\n}\n\n.ds-social-proof-card__avatar {\n width: var(--space-10);\n height: var(--space-10);\n flex: 0 0 auto;\n border-radius: var(--radius-pill);\n object-fit: cover;\n}\n\n.ds-social-proof-card__author-copy {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n.ds-social-proof-card__name {\n color: var(--text-primary);\n font-style: normal;\n font-weight: var(--font-weight-semibold);\n}\n\n.ds-social-proof-card__role {\n color: var(--text-tertiary);\n font-size: var(--font-size-sm);\n}\n\n.ds-social-proof-card__cta {\n color: rgb(var(--accent-rgb));\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-semibold);\n}\n\n@media (prefers-contrast: more) {\n .ds-social-proof-card {\n background: var(--hc-surface);\n border-color: var(--hc-border);\n }\n}\n\n@supports not (backdrop-filter: blur(1px)) {\n .ds-social-proof-card {\n background: var(--fallback-surface);\n }\n}\n","/* ============================================================================\n SocialProofCard v2 — trust-dense additive extensions\n\n All selectors are additive to the v1 card surface. Existing v1 selectors and\n variants stay intact so published consumers can upgrade without migration.\n ============================================================================ */\n\n.ds-social-proof-card__trust-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-2);\n flex-wrap: wrap;\n}\n\n.ds-social-proof-card__trust-platforms,\n.ds-social-proof-card__trust-stars {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n flex-wrap: wrap;\n}\n\n.ds-social-proof-card__verified {\n display: inline-flex;\n align-items: center;\n gap: var(--space-1);\n padding: var(--space-0-5) var(--space-2);\n border-radius: var(--radius-pill);\n background: var(--brand-pink-a-10, rgba(var(--brand-pink-rgb, 255, 0, 90), 0.1));\n color: rgb(var(--accent-rgb));\n font-size: var(--font-size-xs);\n font-weight: var(--font-weight-semibold);\n line-height: var(--line-height-normal);\n border: var(--space-px) solid var(--rim-light-bottom);\n}\n\n.ds-social-proof-card__verified-icon {\n flex-shrink: 0;\n}\n\n.ds-social-proof-card__workspace-proof {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-2) var(--space-3);\n margin-top: var(--space-1);\n border-radius: var(--radius-badge);\n background: var(--glass-white-alpha-10);\n color: var(--text-tertiary);\n font-size: var(--font-size-xs);\n line-height: var(--line-height-normal);\n}\n\n.ds-social-proof-card__workspace-icon {\n flex-shrink: 0;\n opacity: 0.6;\n}\n\n.ds-social-proof-card__avatar--initials {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--space-10);\n height: var(--space-10);\n border-radius: var(--radius-pill);\n background: var(--glass-base);\n border: var(--space-px) solid var(--rim-light-bottom);\n color: var(--text-tertiary);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-semibold);\n letter-spacing: var(--letter-spacing-wide);\n}\n\n.ds-social-proof-card__micrometa {\n color: var(--text-tertiary);\n font-size: var(--font-size-xs);\n margin-top: var(--space-0-5);\n}\n\n.ds-social-proof-card__review-link {\n display: inline-block;\n margin-top: var(--space-1);\n font-size: var(--font-size-xs);\n color: var(--text-tertiary);\n text-decoration: none;\n transition: color var(--transition-glass);\n}\n\n.ds-social-proof-card__review-link:hover {\n color: var(--text-secondary);\n text-decoration: underline;\n text-underline-offset: var(--space-0-5);\n}\n\n.ds-social-proof-card__company-logo {\n width: var(--space-6);\n height: var(--space-6);\n border-radius: var(--radius-xs);\n object-fit: contain;\n flex-shrink: 0;\n margin-left: auto;\n}\n\n.ds-social-proof-card--verified {\n --ds-social-proof-card-verified-state: 1;\n}\n",".ds-social-proof-carousel {\n overflow-x: auto;\n overflow-y: clip;\n scroll-snap-type: x mandatory;\n scrollbar-width: none;\n}\n\n.ds-social-proof-carousel::-webkit-scrollbar {\n display: none;\n}\n\n.ds-social-proof-carousel--background-default,\n.ds-social-proof-carousel--background-muted,\n.ds-social-proof-carousel--background-dark,\n.ds-social-proof-carousel--background-brand {\n border-radius: var(--radius-panel);\n padding: var(--space-6);\n}\n\n.ds-social-proof-carousel--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-carousel--background-muted,\n.ds-social-proof-carousel--background-dark {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-carousel--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-carousel__track {\n display: grid;\n grid-auto-columns: minmax(min(100%, var(--container-xs)), var(--container-sm));\n grid-auto-flow: column;\n gap: var(--space-5);\n}\n\n.ds-social-proof-carousel__track > * {\n scroll-snap-align: start;\n}\n","/* ============================================================================\n CARD — SIGNATURE GLASS TREATMENT\n ============================================================================ */\n\n/* ==========================================================================\n Root — Glass surface with rim light\n ========================================================================== */\n\n.ds-card {\n position: relative;\n background: var(--glass-base);\n backdrop-filter: var(--glass-backdrop);\n -webkit-backdrop-filter: var(--glass-backdrop);\n border-radius: var(--radius-card);\n\n /* Glass border — transparent border with padding-box clip lets the\n ::before rim-light pseudo-element show through at the card edge. */\n border: 1px solid transparent;\n background-clip: padding-box;\n\n /*\n * overflow: clip — clips content at border-radius corners (needed for the\n * glass surface shape) but does NOT create a scroll container or new BFC.\n * Prefer 'clip' over 'hidden' because:\n * 1. 'hidden' creates a scroll container that traps nested sticky/fixed elements\n * 2. 'clip' respects overflow-clip-margin if we ever need it\n * 3. 'clip' is supported in all modern browsers (Chrome 90+, Firefox 81+, Safari 16+)\n *\n * IMPORTANT: Do NOT add 'padding: 0' here. Consumers use Tailwind utilities\n * (p-5, p-6 etc.) on the Card element. Because DS CSS loads after Tailwind\n * utilities in the cascade (via [locale]/layout.tsx imports), a padding\n * declaration here would override those utilities and cause text clipping\n * at rounded corners.\n */\n overflow: clip;\n\n /* Shadow */\n box-shadow:\n var(--shadow-md),\n var(--glass-shadow-inner);\n}\n\n/* Rim light */\n.ds-card::before {\n content: '';\n position: absolute;\n inset: 0;\n border-radius: inherit;\n padding: var(--space-px);\n background: linear-gradient(180deg, var(--rim-light-hover-top) 0%, var(--rim-light-top) 100%);\n mask:\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n mask-composite: exclude;\n -webkit-mask:\n linear-gradient(#fff 0 0) content-box,\n linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n pointer-events: none;\n}\n\n/* ==========================================================================\n Header — Groups title + description\n ========================================================================== */\n\n.ds-card__header {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--space-6) var(--space-6) 0;\n}\n\n/* ==========================================================================\n Title\n ========================================================================== */\n\n.ds-card__title {\n margin: 0;\n font-family: var(--font-family);\n font-size: var(--font-size-lg);\n font-weight: var(--font-weight-semibold);\n color: var(--text-primary);\n line-height: var(--line-height-tight);\n}\n\n/* ==========================================================================\n Description\n ========================================================================== */\n\n.ds-card__description {\n margin: 0;\n font-family: var(--font-family);\n font-size: var(--font-size-sm);\n color: var(--text-secondary);\n line-height: var(--line-height-normal);\n}\n\n/* ==========================================================================\n Content\n ========================================================================== */\n\n.ds-card__content {\n padding: var(--space-6);\n}\n\n/* ==========================================================================\n Footer — Actions row\n ========================================================================== */\n\n.ds-card__footer {\n display: flex;\n flex-direction: row;\n align-items: center;\n padding: 0 var(--space-6) var(--space-6);\n gap: var(--space-3);\n}\n\n/* ==========================================================================\n High Contrast Mode\n ========================================================================== */\n\n@media (prefers-contrast: more) {\n .ds-card {\n background: var(--hc-surface);\n border: 1px solid var(--hc-border);\n backdrop-filter: none;\n -webkit-backdrop-filter: none;\n }\n\n .ds-card::before {\n display: none;\n }\n}\n\n/* ==========================================================================\n Reduced Motion\n ========================================================================== */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-card {\n transition: none;\n }\n}\n\n/* ==========================================================================\n Fallback — No backdrop-filter support\n ========================================================================== */\n\n@supports not (backdrop-filter: blur(1px)) {\n .ds-card {\n background: var(--fallback-surface);\n }\n}\n\n/* ==========================================================================\n Card v2 — Tier modifiers (compose with glass--tier-{N} from glass.css)\n Shadow elevation escalates per tier; blur/background handled by glass.css\n @since v2\n ========================================================================== */\n\n.ds-card--tier-1 {\n box-shadow:\n var(--shadow-md),\n var(--glass-shadow-inner);\n}\n\n.ds-card--tier-2 {\n box-shadow:\n var(--glass-shadow-elevated),\n var(--glass-shadow-inner);\n}\n\n.ds-card--tier-3 {\n box-shadow:\n var(--glass-shadow-elevated),\n var(--glass-shadow-inner),\n var(--shadow-xl);\n}\n\n/* ==========================================================================\n Card v2 — Radius modifiers\n Default radius (--radius-card = 24px) is already set in .ds-card.\n These modifiers override for panel or pill shapes.\n @since v2\n ========================================================================== */\n\n.ds-card--radius-panel {\n border-radius: var(--radius-panel);\n}\n\n.ds-card--radius-pill {\n border-radius: var(--radius-pill);\n}\n\n/* ==========================================================================\n Card v2 — Aurora inner glow (used by LeadNotification)\n Adds a warm pink inner glow to signal active/live state.\n @since v2\n ========================================================================== */\n\n.ds-card--aurora {\n box-shadow:\n var(--shadow-md),\n var(--glass-shadow-inner),\n inset 0 0 40px -10px var(--aurora-pink-low);\n}\n",".ds-social-proof-featured {\n display: grid;\n grid-template-columns: minmax(0, 1fr);\n gap: var(--space-6);\n overflow: clip;\n}\n\n.ds-social-proof-featured--cinematic,\n.ds-social-proof-featured--spotlight {\n grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);\n}\n\n.ds-social-proof-featured--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-featured--background-muted {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-featured--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-featured--padding-sm {\n padding: var(--space-5);\n}\n\n.ds-social-proof-featured--padding-md {\n padding: var(--space-7);\n}\n\n.ds-social-proof-featured--padding-lg {\n padding: var(--space-9);\n}\n\n.ds-social-proof-featured__media {\n min-height: 100%;\n overflow: clip;\n border-radius: var(--radius-card);\n}\n\n.ds-social-proof-featured__image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n\n.ds-social-proof-featured__content {\n display: flex;\n flex-direction: column;\n gap: var(--space-5);\n}\n\n.ds-social-proof-featured__meta,\n.ds-social-proof-featured__author {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n flex-wrap: wrap;\n}\n\n.ds-social-proof-featured__quote {\n margin: 0;\n padding: 0;\n border: 0;\n}\n\n.ds-social-proof-featured__quote p {\n margin: 0;\n color: var(--text-primary);\n font-size: var(--font-size-2xl);\n font-weight: var(--font-weight-medium);\n line-height: var(--line-height-snug);\n letter-spacing: var(--letter-spacing-tight);\n}\n\n.ds-social-proof-featured--spotlight .ds-social-proof-featured__quote p {\n font-size: var(--font-size-3xl);\n}\n\n.ds-social-proof-featured__avatar {\n width: var(--space-12);\n height: var(--space-12);\n flex: 0 0 auto;\n border-radius: var(--radius-pill);\n object-fit: cover;\n}\n\n.ds-social-proof-featured__author-copy {\n display: flex;\n flex-direction: column;\n gap: var(--space-1);\n}\n\n.ds-social-proof-featured__name {\n color: var(--text-primary);\n font-style: normal;\n font-weight: var(--font-weight-semibold);\n}\n\n.ds-social-proof-featured__role {\n color: var(--text-secondary);\n font-size: var(--font-size-sm);\n}\n\n@media (max-width: 768px) {\n .ds-social-proof-featured--cinematic,\n .ds-social-proof-featured--spotlight {\n grid-template-columns: minmax(0, 1fr);\n }\n}\n",".ds-social-proof-grid {\n display: grid;\n gap: var(--space-5);\n padding: var(--space-1);\n}\n\n.ds-social-proof-grid--background-default,\n.ds-social-proof-grid--background-muted,\n.ds-social-proof-grid--background-dark,\n.ds-social-proof-grid--background-brand {\n border-radius: var(--radius-panel);\n padding: var(--space-6);\n}\n\n.ds-social-proof-grid--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-grid--background-muted,\n.ds-social-proof-grid--background-dark {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-grid--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-grid--columns-1 {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.ds-social-proof-grid--columns-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n\n.ds-social-proof-grid--columns-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n\n.ds-social-proof-grid--columns-4 {\n grid-template-columns: repeat(4, minmax(0, 1fr));\n}\n\n.ds-social-proof-grid--staggered > :nth-child(even) {\n transform: translateY(var(--space-4));\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ds-social-proof-grid--staggered > :nth-child(even) {\n transform: none;\n }\n}\n\n@media (max-width: 960px) {\n .ds-social-proof-grid--columns-3,\n .ds-social-proof-grid--columns-4 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (max-width: 640px) {\n .ds-social-proof-grid,\n .ds-social-proof-grid--columns-2,\n .ds-social-proof-grid--columns-3,\n .ds-social-proof-grid--columns-4 {\n grid-template-columns: minmax(0, 1fr);\n }\n\n .ds-social-proof-grid--staggered > :nth-child(even) {\n transform: none;\n }\n}\n",".ds-social-proof-logos {\n display: flex;\n flex-direction: column;\n gap: var(--space-5);\n}\n\n.ds-social-proof-logos--background-default,\n.ds-social-proof-logos--background-muted,\n.ds-social-proof-logos--background-dark,\n.ds-social-proof-logos--background-brand {\n border-radius: var(--radius-panel);\n padding: var(--space-6);\n}\n\n.ds-social-proof-logos--background-default {\n background: var(--glass-base);\n}\n\n.ds-social-proof-logos--background-muted,\n.ds-social-proof-logos--background-dark {\n background: var(--glass-subtle);\n}\n\n.ds-social-proof-logos--background-brand {\n background: var(--glass-accent);\n}\n\n.ds-social-proof-logos__title {\n margin: 0;\n color: var(--text-secondary);\n font-size: var(--font-size-sm);\n font-weight: var(--font-weight-medium);\n text-align: center;\n}\n\n.ds-social-proof-logos__viewport {\n overflow: clip;\n}\n\n.ds-social-proof-logos__track {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n gap: var(--space-5);\n}\n\n.ds-social-proof-logos--marquee .ds-social-proof-logos__track {\n width: max-content;\n flex-wrap: nowrap;\n animation: ds-social-proof-logos-marquee var(--duration-slower) linear infinite;\n}\n\n.ds-social-proof-logos--speed-slow .ds-social-proof-logos__track {\n animation-duration: var(--duration-slowest);\n}\n\n.ds-social-proof-logos--speed-fast .ds-social-proof-logos__track {\n animation-duration: var(--duration-slow);\n}\n\n.ds-social-proof-logos__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: var(--space-12);\n border-radius: var(--radius-card);\n color: var(--text-secondary);\n text-decoration: none;\n}\n\n.ds-social-proof-logos__item-content {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n}\n\n.ds-social-proof-logos__image {\n max-width: var(--container-2xs);\n max-height: var(--space-10);\n object-fit: contain;\n}\n\n.ds-social-proof-logos__badge {\n border: var(--border-width-hairline) solid var(--rim-light-bottom);\n border-radius: var(--radius-pill);\n color: var(--text-tertiary);\n font-size: var(--font-size-xs);\n padding: var(--space-1) var(--space-2);\n}\n\n@keyframes ds-social-proof-logos-marquee {\n from {\n transform: translateX(0);\n }\n\n to {\n transform: translateX(-50%);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .ds-social-proof-logos--marquee .ds-social-proof-logos__track {\n animation: none;\n }\n}\n","/* ============================================================================\n VIDEO LIGHTBOX — MODAL VIDEO PLAYER\n ============================================================================ */\n\n/* --- Screen Reader Only utility --- */\n.ds-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border: 0;\n}\n\n/* --- Trigger --- */\n\n.ds-video-lightbox__trigger {\n all: unset;\n cursor: pointer;\n display: block;\n width: 100%;\n}\n\n.ds-video-lightbox__thumbnail-wrap {\n position: relative;\n width: 100%;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-card);\n overflow: hidden;\n background: var(--glass-base-active, rgba(0, 0, 0, 0.3));\n}\n\n.ds-video-lightbox__thumbnail {\n width: 100%;\n height: 100%;\n object-fit: cover;\n transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__thumbnail {\n transform: scale(1.05);\n}\n\n.ds-video-lightbox__placeholder {\n width: 100%;\n height: 100%;\n background: linear-gradient(135deg,\n var(--glass-base-active, rgba(0, 0, 0, 0.4)) 0%,\n var(--glass-base, rgba(0, 0, 0, 0.2)) 100%\n );\n}\n\n/* --- Play Button Overlay --- */\n\n.ds-video-lightbox__overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: linear-gradient(to top, rgba(0, 0, 0, 0.5) 0%, transparent 60%);\n transition: background 0.3s ease;\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__overlay {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.3) 0%, transparent 60%);\n}\n\n.ds-video-lightbox__play-btn {\n transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__play-btn {\n transform: scale(1.1);\n}\n\n.ds-video-lightbox__play-bg {\n /* stylelint-disable-next-line declaration-property-value-disallowed-list -- SVG play button backdrop, no fill token exists */\n fill: rgba(0, 0, 0, 0.6);\n transition: fill 0.3s ease;\n}\n\n.ds-video-lightbox__trigger:hover .ds-video-lightbox__play-bg {\n fill: var(--brand-pink, #f97316);\n}\n\n/* --- Play Button Pulse Ring --- */\n\n.ds-video-lightbox__play-btn::after {\n content: '';\n position: absolute;\n inset: -8px;\n border-radius: 50%;\n border: 2px solid var(--glass-white-alpha-30);\n animation: ds-lightbox-pulse 2s ease-out infinite;\n}\n\n@keyframes ds-lightbox-pulse {\n 0% {\n transform: scale(0.8);\n opacity: 1;\n }\n 100% {\n transform: scale(1.4);\n opacity: 0;\n }\n}\n\n/* --- Backdrop --- */\n\n.ds-video-lightbox__backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.85);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n z-index: 9998;\n animation: ds-lightbox-fade-in 0.25s ease-out;\n}\n\n/* --- Popup --- */\n\n.ds-video-lightbox__popup {\n position: fixed;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-6);\n z-index: 9999;\n animation: ds-lightbox-scale-in 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n/* --- Close Button --- */\n\n.ds-video-lightbox__close {\n all: unset;\n position: absolute;\n top: var(--space-4);\n right: var(--space-4);\n width: 44px;\n height: 44px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--text-on-dark, white);\n opacity: 0.7;\n cursor: pointer;\n border-radius: 50%;\n background: var(--glass-white-alpha-10);\n transition:\n opacity var(--transition-base),\n background var(--transition-base);\n z-index: 1;\n}\n\n.ds-video-lightbox__close:hover {\n opacity: 1;\n background: var(--glass-white-alpha-20);\n}\n\n.ds-video-lightbox__close:focus-visible {\n outline: 2px solid var(--brand-pink, #f97316);\n outline-offset: 2px;\n}\n\n/* --- Iframe Container --- */\n\n.ds-video-lightbox__iframe-wrap {\n width: 100%;\n max-width: 1200px;\n aspect-ratio: 16 / 9;\n border-radius: var(--radius-card, 12px);\n overflow: hidden;\n background: black;\n box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5);\n}\n\n.ds-video-lightbox__iframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n/* --- Animations --- */\n\n@keyframes ds-lightbox-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes ds-lightbox-scale-in {\n from {\n opacity: 0;\n transform: scale(0.95);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n\n/* --- Reduced Motion --- */\n\n@media (prefers-reduced-motion: reduce) {\n .ds-video-lightbox__backdrop,\n .ds-video-lightbox__popup {\n animation: none;\n }\n\n .ds-video-lightbox__thumbnail {\n transition: none;\n }\n\n .ds-video-lightbox__play-btn::after {\n animation: none;\n }\n\n .ds-video-lightbox__play-btn {\n transition: none;\n }\n}\n",".ds-metric-counter {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-family: var(--font-family);\n}\n\n.ds-metric-counter__value-wrapper {\n display: flex;\n align-items: baseline;\n justify-content: center;\n color: var(--text-primary);\n line-height: var(--line-height-display);\n}\n\n.ds-metric-counter__prefix,\n.ds-metric-counter__suffix {\n font-size: var(--font-size-3xl);\n font-weight: var(--font-weight-bold);\n color: rgb(var(--accent-rgb));\n}\n\n.ds-metric-counter__value {\n font-size: var(--font-size-5xl);\n font-weight: var(--font-weight-bold);\n letter-spacing: var(--letter-spacing-display);\n font-variant-numeric: tabular-nums;\n}\n\n.ds-metric-counter__label {\n margin-top: var(--space-2);\n font-size: var(--font-size-base);\n color: var(--text-secondary);\n font-weight: var(--font-weight-medium);\n}\n\n@media (max-width: 640px) {\n .ds-metric-counter__prefix,\n .ds-metric-counter__suffix {\n font-size: var(--font-size-2xl);\n }\n\n .ds-metric-counter__value {\n font-size: var(--font-size-4xl);\n }\n}\n"],"mappings":"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","names":[]}
@@ -31,6 +31,10 @@ interface SocialProofAuthor {
31
31
  title?: string;
32
32
  company?: string;
33
33
  avatar?: string;
34
+ /** Secondary brand mark shown after the author name. */
35
+ companyLogo?: string;
36
+ /** Location shown as a micro-label, for example country or city. */
37
+ location?: string;
34
38
  }
35
39
  interface SocialProofMetric {
36
40
  value: React__default.ReactNode;
@@ -54,6 +58,14 @@ interface SocialProofCardProps extends Omit<React__default.HTMLAttributes<HTMLEl
54
58
  headline?: React__default.ReactNode;
55
59
  industry?: React__default.ReactNode;
56
60
  ctaText?: React__default.ReactNode;
61
+ /** Renders a verified-review pill when true. */
62
+ verified?: boolean;
63
+ /** Outbound link to the original review. Requires platform to render. */
64
+ reviewUrl?: string;
65
+ /** Review date label, for example "Jan 2026". */
66
+ reviewDate?: string;
67
+ /** Provenance line sourced from real workspace data. */
68
+ workspaceProof?: string;
57
69
  }
58
70
  declare const SocialProofCard: React__default.ForwardRefExoticComponent<SocialProofCardProps & React__default.RefAttributes<HTMLElement>>;
59
71
 
@@ -31,6 +31,10 @@ interface SocialProofAuthor {
31
31
  title?: string;
32
32
  company?: string;
33
33
  avatar?: string;
34
+ /** Secondary brand mark shown after the author name. */
35
+ companyLogo?: string;
36
+ /** Location shown as a micro-label, for example country or city. */
37
+ location?: string;
34
38
  }
35
39
  interface SocialProofMetric {
36
40
  value: React__default.ReactNode;
@@ -54,6 +58,14 @@ interface SocialProofCardProps extends Omit<React__default.HTMLAttributes<HTMLEl
54
58
  headline?: React__default.ReactNode;
55
59
  industry?: React__default.ReactNode;
56
60
  ctaText?: React__default.ReactNode;
61
+ /** Renders a verified-review pill when true. */
62
+ verified?: boolean;
63
+ /** Outbound link to the original review. Requires platform to render. */
64
+ reviewUrl?: string;
65
+ /** Review date label, for example "Jan 2026". */
66
+ reviewDate?: string;
67
+ /** Provenance line sourced from real workspace data. */
68
+ workspaceProof?: string;
57
69
  }
58
70
  declare const SocialProofCard: React__default.ForwardRefExoticComponent<SocialProofCardProps & React__default.RefAttributes<HTMLElement>>;
59
71
 
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { PlatformBadge, SocialProofCard, SocialProofCarousel, SocialProofFeatured, SocialProofGrid, SocialProofLogos, StarRating, VideoLightbox } from '../chunk-RY257SWH.js';
2
+ export { PlatformBadge, SocialProofCard, SocialProofCarousel, SocialProofFeatured, SocialProofGrid, SocialProofLogos, StarRating, VideoLightbox } from '../chunk-PW56UU3S.js';
3
3
  export { MetricCounter } from '../chunk-YSYR54XR.js';
4
4
  import '../chunk-MLINFRC3.js';
5
5
  import '../chunk-KJ2OXQF4.js';
@@ -557,6 +557,7 @@
557
557
  249,
558
558
  115,
559
559
  22;
560
+ --brand-pink-a-10: rgba(249, 115, 22, 0.1);
560
561
  --brand-pink-bright: #fb923c;
561
562
  --brand-pink-glow: rgba(249, 115, 22, 0.4);
562
563
  --brand-yellow: #8b5cf6;
@@ -639,6 +640,7 @@
639
640
  255,
640
641
  0,
641
642
  90;
643
+ --brand-pink-a-10: rgba(255, 0, 90, 0.1);
642
644
  --brand-pink-bright: #ff3d7f;
643
645
  --brand-pink-glow: rgba(255, 0, 90, 0.4);
644
646
  --brand-yellow: #ffc200;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesmind-ai/design-system",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Salesmind AI Design System",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/StarRating/StarRating.tsx","../src/components/PlatformBadge/PlatformBadge.tsx","../src/components/SocialProofCard/SocialProofCard.tsx","../src/components/SocialProofCarousel/SocialProofCarousel.tsx","../src/components/SocialProofFeatured/SocialProofFeatured.tsx","../src/components/SocialProofGrid/SocialProofGrid.tsx","../src/components/SocialProofLogos/SocialProofLogos.tsx","../src/components/VideoLightbox/VideoLightbox.tsx"],"names":["forwardRef","clsx","jsx","jsxs","useState"],"mappings":"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","sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport './StarRating.css';\n\n/* ============================================================================\n STAR RATING\n ============================================================================\n Animated star display with half-star support, configurable sizes, and\n optional viewport-triggered fill animation. Replaces text-character\n star displays across all social proof surfaces.\n\n Strategic objective: Instant visual trust signal\n ============================================================================ */\n\nexport interface StarRatingProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Rating value (0-5, supports decimals for half-stars) */\n value: number;\n /** Maximum number of stars */\n max?: number;\n /** Star size variant */\n size?: 'sm' | 'md' | 'lg';\n /** Animate stars filling on viewport entry */\n animate?: boolean;\n /** Show numeric value next to stars */\n showValue?: boolean;\n /** Label shown after value (e.g., \"/ 5\") */\n valueLabel?: string;\n}\n\n/**\n * Star rating display with gold-fill, half-star support, and optional\n * entrance animation. Uses inline SVGs with clip-path for precise\n * partial fills.\n *\n * @example\n * ```tsx\n * <StarRating value={4.5} size=\"lg\" animate />\n * <StarRating value={5} size=\"sm\" showValue />\n * ```\n */\nexport const StarRating = forwardRef<HTMLDivElement, StarRatingProps>(\n (\n {\n value,\n max = 5,\n size = 'md',\n animate = false,\n showValue = false,\n valueLabel,\n className,\n ...props\n },\n ref,\n ) => {\n const [visible, setVisible] = useState(!animate);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!animate) return;\n\n // Respect reduced motion\n if (typeof window !== 'undefined') {\n const mq = window.matchMedia('(prefers-reduced-motion: reduce)');\n if (mq.matches) {\n setVisible(true);\n return;\n }\n }\n\n const target = containerRef.current;\n if (!target) return;\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setVisible(true);\n observer.disconnect();\n }\n },\n { threshold: 0.5 },\n );\n\n observer.observe(target);\n return () => observer.disconnect();\n }, [animate]);\n\n const clampedValue = Math.min(Math.max(value, 0), max);\n\n const stars = Array.from({ length: max }, (_, i) => {\n const starIndex = i + 1;\n const fillPercent =\n clampedValue >= starIndex\n ? 100\n : clampedValue > starIndex - 1\n ? (clampedValue - (starIndex - 1)) * 100\n : 0;\n\n return (\n <span\n key={i}\n className={clsx(\n 'ds-star-rating__star',\n visible && 'ds-star-rating__star--visible',\n )}\n style={{\n '--star-fill': `${fillPercent}%`,\n '--star-delay': animate ? `${i * 100}ms` : '0ms',\n } as React.CSSProperties}\n >\n {/* Background (empty) star */}\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"ds-star-rating__svg\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\n className=\"ds-star-rating__empty\"\n />\n </svg>\n {/* Foreground (filled) star with clip */}\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"ds-star-rating__svg ds-star-rating__svg--filled\"\n aria-hidden=\"true\"\n style={{\n clipPath: `inset(0 ${100 - fillPercent}% 0 0)`,\n }}\n >\n <path\n d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\"\n className=\"ds-star-rating__filled\"\n />\n </svg>\n </span>\n );\n });\n\n return (\n <div\n ref={(node) => {\n (containerRef as React.MutableRefObject<HTMLDivElement | null>).current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={clsx('ds-star-rating', `ds-star-rating--${size}`, className)}\n role=\"img\"\n aria-label={`${clampedValue} out of ${max} stars`}\n {...props}\n >\n <span className=\"ds-star-rating__stars\">{stars}</span>\n {showValue && (\n <span className=\"ds-star-rating__value\">\n {clampedValue.toLocaleString(undefined, {\n minimumFractionDigits: clampedValue % 1 !== 0 ? 1 : 0,\n maximumFractionDigits: 1,\n })}\n {valueLabel && (\n <span className=\"ds-star-rating__value-label\">{valueLabel}</span>\n )}\n </span>\n )}\n </div>\n );\n },\n);\n\nStarRating.displayName = 'StarRating';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { StarRating } from '../StarRating/StarRating';\nimport './PlatformBadge.css';\n\n/* ============================================================================\n PLATFORM BADGE\n ============================================================================\n Recognizable review platform icons (Trustpilot, G2, Google, Chrome Web\n Store) with optional rating display. Builds instant trust through visual\n brand recognition.\n\n Strategic objective: Third-party authority signal\n ============================================================================ */\n\nexport type Platform = 'trustpilot' | 'g2' | 'google' | 'chrome-web-store';\n\nexport interface PlatformBadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Review platform */\n platform: Platform;\n /** Display mode */\n variant?: 'icon-only' | 'icon-label' | 'full';\n /** Platform rating (used in 'full' variant) */\n rating?: number;\n /** Number of reviews (used in 'full' variant) */\n count?: number;\n /** Size variant */\n size?: 'sm' | 'md';\n}\n\n/* --------------------------------------------------------------------------\n Platform SVG Icons — inline for zero-latency rendering\n -------------------------------------------------------------------------- */\n\nconst TrustpilotIcon = ({ size }: { size: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M12 2l2.9 8.9H24l-7.35 5.34 2.81 8.64L12 19.56l-7.46 5.32 2.81-8.64L0 10.9h9.1L12 2z\" fill=\"#00B67A\" />\n </svg>\n);\n\nconst G2Icon = ({ size }: { size: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\" fill=\"#FF492C\" />\n <text x=\"50%\" y=\"54%\" dominantBaseline=\"middle\" textAnchor=\"middle\" fill=\"white\" fontWeight=\"bold\" fontSize=\"11\" fontFamily=\"Arial, sans-serif\">G2</text>\n </svg>\n);\n\nconst GoogleIcon = ({ size }: { size: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <path d=\"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92a5.06 5.06 0 01-2.2 3.32v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.1z\" fill=\"#4285F4\"/>\n <path d=\"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z\" fill=\"#34A853\"/>\n <path d=\"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18A10.96 10.96 0 001 12c0 1.77.42 3.45 1.18 4.93l3.66-2.84z\" fill=\"#FBBC05\"/>\n <path d=\"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z\" fill=\"#EA4335\"/>\n </svg>\n);\n\nconst ChromeWebStoreIcon = ({ size }: { size: number }) => (\n <svg width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <circle cx=\"12\" cy=\"12\" r=\"10\" fill=\"#4285F4\" opacity=\"0.1\" stroke=\"#4285F4\" strokeWidth=\"1.5\"/>\n <path d=\"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0 8.5c-1.93 0-3.5-1.57-3.5-3.5S10.07 8.5 12 8.5s3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\" fill=\"#4285F4\"/>\n <path d=\"M7.5 10.5L4 5.5\" stroke=\"#EA4335\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n <path d=\"M16.5 10.5L20 5.5\" stroke=\"#FBBC05\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n <path d=\"M12 17l-3.5 5\" stroke=\"#34A853\" strokeWidth=\"1.5\" strokeLinecap=\"round\"/>\n </svg>\n);\n\nconst PLATFORM_ICONS: Record<Platform, React.FC<{ size: number }>> = {\n trustpilot: TrustpilotIcon,\n g2: G2Icon,\n google: GoogleIcon,\n 'chrome-web-store': ChromeWebStoreIcon,\n};\n\nconst PLATFORM_LABELS: Record<Platform, string> = {\n trustpilot: 'Trustpilot',\n g2: 'G2',\n google: 'Google',\n 'chrome-web-store': 'Chrome Web Store',\n};\n\nconst PLATFORM_COLORS: Record<Platform, string> = {\n trustpilot: '#00B67A',\n g2: '#FF492C',\n google: '#4285F4',\n 'chrome-web-store': '#4285F4',\n};\n\n/**\n * Review platform badge with recognizable brand icon, optional label,\n * and optional rating display.\n *\n * @example\n * ```tsx\n * <PlatformBadge platform=\"trustpilot\" variant=\"icon-only\" />\n * <PlatformBadge platform=\"g2\" variant=\"icon-label\" />\n * <PlatformBadge platform=\"google\" variant=\"full\" rating={4.9} count={42} />\n * ```\n */\nexport const PlatformBadge = forwardRef<HTMLDivElement, PlatformBadgeProps>(\n (\n {\n platform,\n variant = 'icon-label',\n rating,\n count,\n size = 'sm',\n className,\n ...props\n },\n ref,\n ) => {\n const Icon = PLATFORM_ICONS[platform];\n const label = PLATFORM_LABELS[platform];\n const accentColor = PLATFORM_COLORS[platform];\n const iconSize = size === 'sm' ? 18 : 22;\n\n return (\n <div\n ref={ref}\n role=\"img\"\n className={clsx(\n 'ds-platform-badge',\n `ds-platform-badge--${variant}`,\n `ds-platform-badge--${size}`,\n className,\n )}\n style={{ '--platform-accent': accentColor } as React.CSSProperties}\n aria-label={\n variant === 'full' && rating\n ? `${label}: ${rating} stars${count ? ` from ${count} reviews` : ''}`\n : label\n }\n {...props}\n >\n <span className=\"ds-platform-badge__icon\">\n <Icon size={iconSize} />\n </span>\n\n {variant !== 'icon-only' && (\n <span className=\"ds-platform-badge__label\">{label}</span>\n )}\n\n {variant === 'full' && rating != null && (\n <span className=\"ds-platform-badge__rating\">\n <StarRating value={rating} size=\"sm\" />\n {count != null && (\n <span className=\"ds-platform-badge__count\">({count})</span>\n )}\n </span>\n )}\n </div>\n );\n },\n);\n\nPlatformBadge.displayName = 'PlatformBadge';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { PlatformBadge, type Platform } from '../PlatformBadge/PlatformBadge';\nimport { StarRating } from '../StarRating/StarRating';\nimport './SocialProofCard.css';\n\nexport interface SocialProofAuthor {\n name: string;\n title?: string;\n company?: string;\n avatar?: string;\n}\n\nexport interface SocialProofMetric {\n value: React.ReactNode;\n label: React.ReactNode;\n}\n\nexport interface SocialProofMedia {\n src: string;\n type: 'image';\n alt?: string;\n}\n\nexport interface SocialProofCardProps extends Omit<React.HTMLAttributes<HTMLElement>, 'content'> {\n variant?: 'social' | 'compact' | 'standard' | 'detailed' | 'narrative';\n content: React.ReactNode;\n author: SocialProofAuthor;\n starRating?: number;\n platform?: Platform;\n badges?: React.ReactNode[];\n href?: string;\n media?: SocialProofMedia;\n metrics?: SocialProofMetric[];\n headline?: React.ReactNode;\n industry?: React.ReactNode;\n ctaText?: React.ReactNode;\n}\n\nexport const SocialProofCard = forwardRef<HTMLElement, SocialProofCardProps>(\n (\n {\n variant = 'standard',\n content,\n author,\n starRating,\n platform,\n badges,\n href,\n media,\n metrics,\n headline,\n industry,\n ctaText,\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <article\n ref={ref}\n className={clsx(\n 'ds-card',\n variant === 'compact' ? 'ds-card--tier-1' : 'ds-card--tier-2',\n variant === 'compact' ? 'glass--tier-1' : 'glass--tier-2',\n 'ds-social-proof-card',\n `ds-social-proof-card--${variant}`,\n href && 'ds-social-proof-card--linked',\n className,\n )}\n {...props}\n >\n {media?.src && (\n <div className=\"ds-social-proof-card__media\">\n <img\n src={media.src}\n alt={media.alt ?? ''}\n className=\"ds-social-proof-card__image\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n </div>\n )}\n\n <div className=\"ds-social-proof-card__body\">\n <div className=\"ds-social-proof-card__meta\">\n {starRating !== undefined && <StarRating value={starRating} size=\"sm\" />}\n {platform && <PlatformBadge platform={platform} />}\n {industry && <span className=\"ds-social-proof-card__industry\">{industry}</span>}\n </div>\n\n {headline && <h3 className=\"ds-social-proof-card__headline\">{headline}</h3>}\n\n <blockquote className=\"ds-social-proof-card__quote\">\n <p>{content}</p>\n </blockquote>\n\n {metrics && metrics.length > 0 && (\n <div className=\"ds-social-proof-card__metrics\">\n {metrics.map((metric, index) => (\n <div className=\"ds-social-proof-card__metric\" key={index}>\n <span className=\"ds-social-proof-card__metric-value\">{metric.value}</span>\n <span className=\"ds-social-proof-card__metric-label\">{metric.label}</span>\n </div>\n ))}\n </div>\n )}\n\n {badges && badges.length > 0 && (\n <div className=\"ds-social-proof-card__badges\">\n {badges.map((badge, index) => (\n <span className=\"ds-social-proof-card__badge\" key={index}>{badge}</span>\n ))}\n </div>\n )}\n\n <footer className=\"ds-social-proof-card__author\">\n {author.avatar && (\n <img\n src={author.avatar}\n alt=\"\"\n className=\"ds-social-proof-card__avatar\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n )}\n <div className=\"ds-social-proof-card__author-copy\">\n <cite className=\"ds-social-proof-card__name\">{author.name}</cite>\n {(author.title || author.company) && (\n <span className=\"ds-social-proof-card__role\">\n {[author.title, author.company].filter(Boolean).join(' · ')}\n </span>\n )}\n </div>\n </footer>\n\n {href && ctaText && <span className=\"ds-social-proof-card__cta\">{ctaText}</span>}\n </div>\n </article>\n );\n },\n);\n\nSocialProofCard.displayName = 'SocialProofCard';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport './SocialProofCarousel.css';\n\nexport interface SocialProofCarouselProps extends React.HTMLAttributes<HTMLDivElement> {\n background?: 'default' | 'muted' | 'dark' | 'brand' | 'transparent';\n}\n\nexport const SocialProofCarousel = forwardRef<HTMLDivElement, SocialProofCarouselProps>(\n ({ background = 'transparent', className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={clsx(\n 'ds-social-proof-carousel',\n `ds-social-proof-carousel--background-${background}`,\n className,\n )}\n {...props}\n >\n <div className=\"ds-social-proof-carousel__track\">{children}</div>\n </div>\n ),\n);\n\nSocialProofCarousel.displayName = 'SocialProofCarousel';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { Card } from '../Card/Card';\nimport { PlatformBadge, type Platform } from '../PlatformBadge/PlatformBadge';\nimport { StarRating } from '../StarRating/StarRating';\nimport type { SocialProofAuthor } from '../SocialProofCard/SocialProofCard';\nimport './SocialProofFeatured.css';\n\nexport interface SocialProofFeaturedProps extends React.HTMLAttributes<HTMLDivElement> {\n quote: React.ReactNode;\n author: SocialProofAuthor;\n featuredVariant?: 'standard' | 'cinematic' | 'spotlight';\n starRating?: number;\n platform?: Platform;\n mediaSrc?: string;\n background?: 'default' | 'muted' | 'brand' | 'transparent';\n padding?: 'sm' | 'md' | 'lg';\n}\n\nexport const SocialProofFeatured = forwardRef<HTMLDivElement, SocialProofFeaturedProps>(\n (\n {\n quote,\n author,\n featuredVariant = 'standard',\n starRating,\n platform,\n mediaSrc,\n background = 'transparent',\n padding = 'md',\n className,\n ...props\n },\n ref,\n ) => (\n <Card\n ref={ref}\n tier={featuredVariant === 'spotlight' ? 3 : 2}\n radius=\"panel\"\n aurora={featuredVariant === 'spotlight'}\n className={clsx(\n 'ds-social-proof-featured',\n `ds-social-proof-featured--${featuredVariant}`,\n `ds-social-proof-featured--background-${background}`,\n `ds-social-proof-featured--padding-${padding}`,\n className,\n )}\n {...props}\n >\n {mediaSrc && (\n <div className=\"ds-social-proof-featured__media\">\n <img src={mediaSrc} alt=\"\" className=\"ds-social-proof-featured__image\" loading=\"lazy\" decoding=\"async\" />\n </div>\n )}\n\n <div className=\"ds-social-proof-featured__content\">\n <div className=\"ds-social-proof-featured__meta\">\n {starRating !== undefined && <StarRating value={starRating} size=\"md\" />}\n {platform && <PlatformBadge platform={platform} />}\n </div>\n\n <blockquote className=\"ds-social-proof-featured__quote\">\n <p>{quote}</p>\n </blockquote>\n\n <footer className=\"ds-social-proof-featured__author\">\n {author.avatar && (\n <img\n src={author.avatar}\n alt=\"\"\n className=\"ds-social-proof-featured__avatar\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n )}\n <div className=\"ds-social-proof-featured__author-copy\">\n <cite className=\"ds-social-proof-featured__name\">{author.name}</cite>\n {(author.title || author.company) && (\n <span className=\"ds-social-proof-featured__role\">\n {[author.title, author.company].filter(Boolean).join(' · ')}\n </span>\n )}\n </div>\n </footer>\n </div>\n </Card>\n ),\n);\n\nSocialProofFeatured.displayName = 'SocialProofFeatured';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport './SocialProofGrid.css';\n\nexport interface SocialProofGridProps extends React.HTMLAttributes<HTMLDivElement> {\n columns?: 1 | 2 | 3 | 4;\n staggered?: boolean;\n background?: 'default' | 'muted' | 'dark' | 'brand' | 'transparent';\n}\n\nexport const SocialProofGrid = forwardRef<HTMLDivElement, SocialProofGridProps>(\n ({ columns = 3, staggered = false, background = 'transparent', className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={clsx(\n 'ds-social-proof-grid',\n `ds-social-proof-grid--columns-${columns}`,\n `ds-social-proof-grid--background-${background}`,\n staggered && 'ds-social-proof-grid--staggered',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n ),\n);\n\nSocialProofGrid.displayName = 'SocialProofGrid';\n","import React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport { OutboundLink } from '../OutboundLink/OutboundLink';\nimport './SocialProofLogos.css';\n\nexport interface SocialProofLogoItem {\n id: string;\n alt: string;\n src?: string;\n logo?: React.ReactNode;\n href?: string;\n badge?: React.ReactNode;\n}\n\nexport interface SocialProofLogosProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n logos: SocialProofLogoItem[];\n title?: React.ReactNode;\n variant?: 'grid' | 'marquee';\n speed?: 'slow' | 'normal' | 'fast';\n background?: 'default' | 'muted' | 'dark' | 'brand' | 'transparent';\n}\n\nexport const SocialProofLogos = forwardRef<HTMLDivElement, SocialProofLogosProps>(\n ({ logos, title, variant = 'grid', speed = 'normal', background = 'transparent', className, ...props }, ref) => {\n const renderedLogos = logos.map((item) => {\n const content = (\n <span className=\"ds-social-proof-logos__item-content\">\n {item.src ? <img src={item.src} alt={item.alt} className=\"ds-social-proof-logos__image\" loading=\"lazy\" decoding=\"async\" /> : item.logo}\n {item.badge && <span className=\"ds-social-proof-logos__badge\">{item.badge}</span>}\n </span>\n );\n\n return item.href ? (\n <OutboundLink key={item.id} href={item.href} context=\"social-proof-logo\" className=\"ds-social-proof-logos__item\">\n {content}\n </OutboundLink>\n ) : (\n <span key={item.id} className=\"ds-social-proof-logos__item\">\n {content}\n </span>\n );\n });\n\n return (\n <div\n ref={ref}\n className={clsx(\n 'ds-social-proof-logos',\n `ds-social-proof-logos--${variant}`,\n `ds-social-proof-logos--speed-${speed}`,\n `ds-social-proof-logos--background-${background}`,\n className,\n )}\n {...props}\n >\n {title && <p className=\"ds-social-proof-logos__title\">{title}</p>}\n <div className=\"ds-social-proof-logos__viewport\">\n <div className=\"ds-social-proof-logos__track\">\n {renderedLogos}\n {variant === 'marquee' && renderedLogos}\n </div>\n </div>\n </div>\n );\n },\n);\n\nSocialProofLogos.displayName = 'SocialProofLogos';\n","import React, { forwardRef, useState, useCallback } from 'react';\nimport { Dialog as BaseDialog } from '@base-ui/react/dialog';\nimport clsx from 'clsx';\nimport './VideoLightbox.css';\n\n/* ============================================================================\n VIDEO LIGHTBOX\n ============================================================================\n Modal overlay video player built on @base-ui/react Dialog. Opens a lazy\n iframe embed (YouTube/Vimeo/Loom) with backdrop blur, keyboard navigation,\n and focus trap. Designed for inline playback from thumbnail cards without\n navigating away from the current page.\n\n Strategic objective: Engagement — keep users on the Wall of Love\n ============================================================================ */\n\nexport interface VideoLightboxProps {\n /** Video embed URL (YouTube, Vimeo, Loom) */\n videoUrl: string;\n /** Poster image shown as thumbnail trigger */\n thumbnailSrc?: string;\n /** Alt text for thumbnail */\n thumbnailAlt?: string;\n /** Video title for accessibility */\n title?: string;\n /** Custom trigger element (overrides default thumbnail + play button) */\n trigger?: React.ReactNode;\n /** Additional class name for the trigger wrapper */\n className?: string;\n /** Callback when video starts playing */\n onPlay?: () => void;\n}\n\n/* --------------------------------------------------------------------------\n Helpers\n -------------------------------------------------------------------------- */\n\nfunction getEmbedUrl(src: string): string {\n // YouTube\n const ytMatch = src.match(\n /(?:youtube\\.com\\/watch\\?v=|youtu\\.be\\/|youtube\\.com\\/embed\\/)([a-zA-Z0-9_-]+)/,\n );\n if (ytMatch) return `https://www.youtube-nocookie.com/embed/${ytMatch[1]}?autoplay=1&rel=0`;\n\n // Vimeo\n const vimeoMatch = src.match(/(?:vimeo\\.com\\/)(\\d+)/);\n if (vimeoMatch) return `https://player.vimeo.com/video/${vimeoMatch[1]}?autoplay=1`;\n\n // Loom\n const loomMatch = src.match(/(?:loom\\.com\\/share\\/)([a-zA-Z0-9]+)/);\n if (loomMatch) return `https://www.loom.com/embed/${loomMatch[1]}?autoplay=1`;\n\n return src;\n}\n\nconst PlayIcon = () => (\n <svg width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden=\"true\">\n <circle cx=\"32\" cy=\"32\" r=\"32\" className=\"ds-video-lightbox__play-bg\" />\n <path d=\"M26 20v24l20-12L26 20z\" fill=\"white\" />\n </svg>\n);\n\nconst CloseIcon = () => (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n);\n\n/**\n * Modal video player triggered by a thumbnail or custom element.\n * Opens a full-screen overlay with lazy iframe injection.\n *\n * @example\n * ```tsx\n * <VideoLightbox\n * videoUrl=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\n * thumbnailSrc=\"/thumbnails/demo.jpg\"\n * title=\"Customer testimonial\"\n * />\n *\n * <VideoLightbox\n * videoUrl=\"https://vimeo.com/123456789\"\n * trigger={<Button>Watch Video</Button>}\n * />\n * ```\n */\nexport const VideoLightbox = forwardRef<HTMLDivElement, VideoLightboxProps>(\n (\n {\n videoUrl,\n thumbnailSrc,\n thumbnailAlt,\n title = 'Video',\n trigger,\n className,\n onPlay,\n },\n ref,\n ) => {\n const [open, setOpen] = useState(false);\n\n const handleOpen = useCallback(() => {\n setOpen(true);\n onPlay?.();\n }, [onPlay]);\n\n return (\n <div ref={ref} className={clsx('ds-video-lightbox', className)}>\n <BaseDialog.Root open={open} onOpenChange={setOpen}>\n <BaseDialog.Trigger\n className=\"ds-video-lightbox__trigger\"\n onClick={handleOpen}\n >\n {trigger || (\n <div className=\"ds-video-lightbox__thumbnail-wrap\">\n {thumbnailSrc ? (\n <img\n src={thumbnailSrc}\n alt={thumbnailAlt || `Play: ${title}`}\n className=\"ds-video-lightbox__thumbnail\"\n loading=\"lazy\"\n decoding=\"async\"\n />\n ) : (\n <div className=\"ds-video-lightbox__placeholder\" />\n )}\n <div className=\"ds-video-lightbox__overlay\">\n <div className=\"ds-video-lightbox__play-btn\">\n <PlayIcon />\n </div>\n </div>\n </div>\n )}\n </BaseDialog.Trigger>\n\n <BaseDialog.Portal>\n <BaseDialog.Backdrop className=\"ds-video-lightbox__backdrop\" />\n <BaseDialog.Popup className=\"ds-video-lightbox__popup\">\n <BaseDialog.Close className=\"ds-video-lightbox__close\" aria-label=\"Close video\">\n <CloseIcon />\n </BaseDialog.Close>\n <BaseDialog.Title className=\"ds-sr-only\">{title}</BaseDialog.Title>\n <div className=\"ds-video-lightbox__iframe-wrap\">\n {open && (\n <iframe\n src={getEmbedUrl(videoUrl)}\n title={title}\n className=\"ds-video-lightbox__iframe\"\n allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\"\n allowFullScreen\n />\n )}\n </div>\n </BaseDialog.Popup>\n </BaseDialog.Portal>\n </BaseDialog.Root>\n </div>\n );\n },\n);\n\nVideoLightbox.displayName = 'VideoLightbox';\n"]}