/* =========================================================
   Built by Stephen — Design Tokens (v2025.09)
   Single source of truth for colors, type, spacing, effects.
   Load this first, then layer bbs-themes.css for theme bindings.
   ========================================================= */

/* Brand fonts (@font-face declarations) live in the canonical
   typography manifest at the project root. Importing it from
   here so every page that loads bbs-tokens.css gets Poppins. */
@import url('../colors_and_type.css');

:root {
  /* ---------- Brand anchors ---------- */
  --bbs-jadeite:            #3bc3a6;   /* Jadeite — logo heart, static accents */
  --bbs-electric-jadeite:   #04ffb2;   /* Neon glow, hover, highlights */

  /* ---------- Typography ---------- */
  --bbs-font-body: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --bbs-font-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  --bbs-weight-thin:       200;
  --bbs-weight-light:      300;
  --bbs-weight-regular:    400;
  --bbs-weight-medium:     500;
  --bbs-weight-semibold:   600;
  --bbs-weight-bold:       700;

  /* Semantic weight ladder — USE THESE, not the numeric aliases.
     The ladder leans light for large display and gets firmer for UI chrome,
     so the system reads quiet + authored, never shouty.
     If you change these, every page updates — that's the point. */
  --bbs-weight-display:     var(--bbs-weight-light);      /* hero/3xl — airy */
  --bbs-weight-title:       var(--bbs-weight-regular);    /* 2xl page headings */
  --bbs-weight-heading:     var(--bbs-weight-medium);     /* xl section headings */
  --bbs-weight-subheading:  var(--bbs-weight-medium);     /* lg, card titles */
  --bbs-weight-body:        var(--bbs-weight-light);      /* default reading weight */
  --bbs-weight-emphasis:    var(--bbs-weight-medium);     /* buttons, chips, badges, labels */
  --bbs-weight-strong:      var(--bbs-weight-semibold);   /* reserved: rare CTAs, numeric callouts */

  /* Modular type scale (1.250 — major third). Capped sensibly. */
  --bbs-fs-2xs:   0.72rem;   /* 11.5px */
  --bbs-fs-xs:    0.78rem;   /* 12.5px */
  --bbs-fs-sm:    0.875rem;  /* 14px   */
  --bbs-fs-base:  1rem;      /* 16px   */
  --bbs-fs-md:    1.125rem;  /* 18px   */
  --bbs-fs-lg:    1.333rem;  /* ~21px  */
  --bbs-fs-xl:    1.777rem;  /* ~28px  */
  --bbs-fs-2xl:   2.369rem;  /* ~38px  */
  --bbs-fs-3xl:   3.157rem;  /* ~50px  */
  --bbs-fs-display: clamp(2.8rem, 4vw + 1rem, 4.2rem);

  --bbs-lh-tight: 1.15;
  --bbs-lh-snug:  1.35;
  --bbs-lh-body:  1.55;
  --bbs-lh-loose: 1.75;

  --bbs-tracking-tight:  -0.02em;
  --bbs-tracking-normal: 0;
  --bbs-tracking-wide:   0.08em;
  --bbs-tracking-caps:   0.18em;

  /* ---------- Spacing (8pt grid) ---------- */
  --bbs-space-1:   2px;
  --bbs-space-2:   4px;
  --bbs-space-3:   8px;
  --bbs-space-4:   12px;
  --bbs-space-5:   16px;
  --bbs-space-6:   24px;
  --bbs-space-7:   32px;
  --bbs-space-8:   48px;
  --bbs-space-9:   64px;
  --bbs-space-10:  96px;

  /* ---------- Radii ---------- */
  --bbs-radius-xs:   6px;
  --bbs-radius-sm:   10px;
  --bbs-radius-md:   14px;
  --bbs-radius-lg:   20px;
  --bbs-radius-xl:   28px;
  --bbs-radius-2xl:  36px;
  --bbs-radius-pill: 999px;

  /* ---------- Blur / glass ---------- */
  --bbs-blur-soft:   16px;
  --bbs-blur-strong: 32px;

  /* ---------- Transitions ---------- */
  --bbs-ease:           cubic-bezier(0.23, 1, 0.32, 1);
  --bbs-transition-fast: 0.35s var(--bbs-ease);
  --bbs-transition-base: 0.6s  var(--bbs-ease);

  /* ---------- Focus ring ---------- */
  --bbs-focus-ring: 0 0 0 3px rgba(4, 255, 178, 0.55);

  /* ---------- Status colors (universal, not themed) ----------
     Warning + danger stay constant across synthwave/vaporwave so
     "amber = caution, red = stop" reads the same everywhere.
     Success/info derive from the theme's jadeite + primary. */
  --bbs-status-warning: #ffb454;   /* amber — caution */
  --bbs-status-danger:  #ff5a7a;   /* coral red — stop */
  --bbs-status-info:    #7ab5ff;   /* soft blue — informational */

  /* =========================================================
     SYNTHWAVE (dark) — the operating-system-ON brain
     Named palette. See JADEITE-MANIFESTO.md for why.
     ========================================================= */
  --neon-kiss:       #ff0080;   /* hot pink, no apology — primary CTA */
  --bejeweled:       #ff00a0;   /* magenta — shimmer back to life, state changes */
  --anti-hero-cyan:  #00ffff;   /* electric cyan — accent, used sparingly */
  --karma:           #8000ff;   /* purple — karma is a cat purring in your lap */
  --neon-yellow:     #ffff00;   /* highlight — reserved */
  --electric-blue:   #0080ff;   /* support — reserved */
  --neon-green:      #00ff80;   /* success — reserved */
  --midnight-rain:   #120227;   /* deep indigo — bg anchor */
  /* plus --bbs-electric-jadeite as the glow wildcard */

  --synthwave-bg:
    radial-gradient(circle at 18% 22%, rgba(255, 0, 128, 0.35), transparent 55%),
    radial-gradient(circle at 78% 18%, rgba(0, 255, 255, 0.22), transparent 58%),
    linear-gradient(135deg, #120227 0%, #0b1d3d 48%, #021b2f 100%);
  --synthwave-overlay:
    linear-gradient(120deg, rgba(4, 255, 178, 0.08), transparent 40%, rgba(255, 0, 128, 0.12) 75%);
  --synthwave-grid-color: rgba(4, 255, 178, 0.18);

  --synthwave-surface:        rgba(10, 9, 38, 0.82);
  --synthwave-surface-soft:   rgba(255, 255, 255, 0.03);
  --synthwave-surface-hover:  rgba(255, 0, 128, 0.10);
  --synthwave-border:         rgba(4, 255, 178, 0.40);
  --synthwave-border-soft:    rgba(255, 0, 128, 0.35);

  /* Named text roles on dark — never pure white, never flat */
  --glass-clear:       #ffffff;                         /* near-white primary text, slightly warmed */
  --lavender-haze:     rgba(224, 224, 255, 0.85);       /* secondary text — thinking at 2am */
  --console-whisper:   rgba(224, 224, 255, 0.60);       /* muted UI text — idle terminal glow */

  --synthwave-glow-card:
    0 0 30px rgba(255, 0, 128, 0.45),
    0 0 60px rgba(4, 255, 178, 0.32),
    0 0 90px rgba(0, 255, 255, 0.24);
  --synthwave-glow-cta:
    0 0 20px rgba(255, 0, 128, 0.50),
    0 0 40px rgba(255, 0, 128, 0.30),
    0 0 60px rgba(255, 0, 128, 0.10);

  /* =========================================================
     VAPORWAVE (light) — the glass-clear, soft-morning brain
     Named palette. See JADEITE-MANIFESTO.md for why.
     ========================================================= */
  --snow-on-the-beach: #ffe2ee;   /* cream-pink — quiet, tender, unprecedented */
  --anti-hero:         #9ac1ff;   /* powder blue — self-aware morning */
  --labyrinth:         #d4a5ff;   /* lavender — the slow-reveal color */
  --sunwash:           #ffb5a5;   /* peach — warm highlight, morning light */
  --soft-pink:         #ff9ac1;   /* primary CTA on light */
  --mint-green:        #c1ff9a;   /* highlight — reserved */
  --light-mint:        #a5ffb5;   /* success — reserved */
  /* plus --bbs-jadeite as the static anchor */

  --vaporwave-bg:
    radial-gradient(circle at 18% 82%, rgba(255, 206, 173, 0.35), transparent 55%),
    radial-gradient(circle at 70% 20%, rgba(154, 193, 255, 0.28), transparent 60%),
    linear-gradient(135deg, #ffe2ee 0%, #e4efff 50%, #d8ffe8 100%);
  --vaporwave-overlay:
    linear-gradient(160deg, rgba(255, 154, 193, 0.18), transparent 55%, rgba(59, 195, 166, 0.12) 90%);
  --vaporwave-grid-color: rgba(154, 193, 255, 0.18);

  --vaporwave-surface:        rgba(255, 255, 255, 0.78);
  --vaporwave-surface-soft:   rgba(255, 255, 255, 0.40);
  --vaporwave-surface-hover:  rgba(255, 154, 193, 0.15);
  --vaporwave-border:         rgba(255, 154, 193, 0.35);
  --vaporwave-border-soft:    rgba(154, 193, 255, 0.28);

  /* Named text roles on light — never flat black */
  --ink-well:            #2d1b3d;                       /* primary text — deep plum-ink */
  --ink-well-secondary:  rgba(90, 74, 106, 0.85);       /* secondary text */
  --ink-well-muted:      rgba(90, 74, 106, 0.55);       /* muted UI text */

  --vaporwave-shadow-card:
    0 16px 40px rgba(255, 154, 193, 0.35),
    0 8px 30px rgba(154, 193, 255, 0.25);
  --vaporwave-shadow-cta:
    0 8px 25px rgba(255, 154, 193, 0.30),
    0 4px 15px rgba(154, 193, 255, 0.20);

  /* Jadeite-tinted off-white — used for display lockup names
     so they sit in the brand even when they're "light." */
  --mint-bright:  #eafff7;
}

/* =========================================================
   Theme bindings. Apply .theme-synthwave or .theme-vaporwave
   to <body> (or any scope) to swap semantic tokens.
   ========================================================= */
.theme-synthwave {
  --bbs-bg:              var(--synthwave-bg);
  --bbs-bg-overlay:      var(--synthwave-overlay);
  --bbs-grid-color:      var(--synthwave-grid-color);

  --bbs-surface:         var(--synthwave-surface);
  --bbs-surface-soft:    var(--synthwave-surface-soft);
  --bbs-surface-hover:   var(--synthwave-surface-hover);
  --bbs-border:          var(--synthwave-border);
  --bbs-border-soft:     var(--synthwave-border-soft);

  --bbs-text:            var(--glass-clear);
  --bbs-text-secondary:  var(--lavender-haze);
  --bbs-text-muted:      var(--console-whisper);

  /* Lockup text — split-weight signature treatment.
     Byline is the quiet half, name is the authored half.
     Never pure white; always tinted toward the jadeite anchor. */
  --bbs-lockup-byline:   rgba(224, 224, 255, 0.55);
  --bbs-lockup-name:     #eafff7;

  --bbs-primary:         var(--neon-kiss);
  --bbs-primary-ink:     #050112;
  --bbs-accent:          var(--anti-hero-cyan);
  --bbs-glow:            var(--bbs-electric-jadeite);
  --bbs-heart:           var(--bbs-electric-jadeite);
  --bbs-jadeite-text:    var(--bbs-jadeite);         /* #3bc3a6 on dark — ~4.5:1 contrast, passes AA */
  --bbs-primary-text:    var(--bbs-primary);         /* neon-kiss #ff0080 on dark — readable */

  --bbs-shadow-card:     var(--synthwave-glow-card);
  --bbs-shadow-cta:      var(--synthwave-glow-cta);
}

.theme-vaporwave {
  --bbs-bg:              var(--vaporwave-bg);
  --bbs-bg-overlay:      var(--vaporwave-overlay);
  --bbs-grid-color:      var(--vaporwave-grid-color);

  --bbs-surface:         var(--vaporwave-surface);
  --bbs-surface-soft:    var(--vaporwave-surface-soft);
  --bbs-surface-hover:   var(--vaporwave-surface-hover);
  --bbs-border:          var(--vaporwave-border);
  --bbs-border-soft:     var(--vaporwave-border-soft);

  --bbs-text:            var(--ink-well);
  --bbs-text-secondary:  var(--ink-well-secondary);
  --bbs-text-muted:      var(--ink-well-muted);

  /* Lockup text — byline muted, name in the deep plum-ink anchor.
     Never flat black; the ink itself is already the brand color. */
  --bbs-lockup-byline:   rgba(90, 74, 106, 0.62);
  --bbs-lockup-name:     #2d1b3d;

  --bbs-primary:         var(--soft-pink);
  --bbs-primary-ink:     var(--ink-well);
  --bbs-accent:          var(--anti-hero);
  --bbs-glow:            var(--bbs-jadeite);
  --bbs-heart:           var(--bbs-jadeite);
  --bbs-jadeite-text:    #0e7060;                    /* darkened jadeite — ~5.5:1 on light, passes AA */
  --bbs-primary-text:    #b5005b;                    /* deep berry-pink — ~5.6:1 on light, passes AA */

  --bbs-shadow-card:     var(--vaporwave-shadow-card);
  --bbs-shadow-cta:      var(--vaporwave-shadow-cta);
}

/* =========================================================
   Base resets + typography primitives scoped to .bbs
   Include class="bbs" on <body> (or a container) to inherit.
   ========================================================= */
.bbs, .bbs * { box-sizing: border-box; }

.bbs {
  font-family: var(--bbs-font-body);
  font-weight: var(--bbs-weight-light);
  font-size:   var(--bbs-fs-base);
  line-height: var(--bbs-lh-body);
  color: var(--bbs-text);
  background: var(--bbs-bg);
  background-attachment: fixed;
  transition: background var(--bbs-transition-base), color var(--bbs-transition-fast);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.bbs ::selection {
  background: var(--bbs-glow);
  color: var(--bbs-primary-ink);
}

.bbs :focus-visible {
  outline: none;
  box-shadow: var(--bbs-focus-ring);
  border-radius: var(--bbs-radius-sm);
}

@media (prefers-reduced-motion: reduce) {
  .bbs, .bbs * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}


/* =========================================================
   Neon heart — drop-in replacement for 💚 emoji
   Usage:   <span class="bbs-heart"></span>
            <span class="bbs-heart bbs-heart--lg"></span>  (bigger + stronger glow)
   Inherits color from --bbs-heart via background-color.
   ========================================================= */
.bbs-heart {
  --_bbs-heart-size: 1em;
  display: inline-block;
  width: var(--_bbs-heart-size);
  height: var(--_bbs-heart-size);
  vertical-align: -0.08em;
  background-color: var(--bbs-heart);
  -webkit-mask: url("data:image/svg+xml;charset=utf-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Csvg%20width%3D%22729%22%20height%3D%22729%22%20version%3D%221.1%22%20viewBox%3D%22203%20208%20729%20729%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%3Cdefs%3E%0A%20%20%3CclipPath%20id%3D%22f%22%3E%0A%20%20%20%3Cpath%20d%3D%22m249%20253h637v664h-637z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22e%22%3E%0A%20%20%20%3Cpath%20d%3D%22m137.22%20332.82%20729.96-195.59%20195.59%20729.96-729.96%20195.59z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22d%22%3E%0A%20%20%20%3Cpath%20d%3D%22m722%20227h163v130h-163z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22c%22%3E%0A%20%20%20%3Cpath%20d%3D%22m137.22%20332.82%20729.96-195.59%20195.59%20729.96-729.96%20195.59z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22b%22%3E%0A%20%20%20%3Cpath%20d%3D%22m290%20708h217v174h-217z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22a%22%3E%0A%20%20%20%3Cpath%20d%3D%22m137.22%20332.82%20729.96-195.59%20195.59%20729.96-729.96%20195.59z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%3C%2Fdefs%3E%0A%20%3Cg%20clip-path%3D%22url(%23f)%22%3E%0A%20%20%3Cg%20clip-path%3D%22url(%23e)%22%3E%0A%20%20%20%3Cpath%20d%3D%22m364.75%20708.49-1.5469-1.2188c-116.33-91.992-137.96-214.72-90.289-295.96%2047.672-81.246%20177.26-115.97%20276.28-5.5625l0.007812-0.003906c23.215-110.25%20103.57-156.78%20176.77-152.38%206.2891%2072.766-27.852%20139.65-84.508%20159.4%2065.895-12.547%20136.88%2039.988%20162.44%20120.22-16.133-73.781%2010.535-146.54%2061.895-176.68%2025.809%2057.309%2028.602%20133.6-4.7578%20217.58-41.48%20104.45-109.48%20239.78-174.9%20342.91l-0.007812%200.003906c-57.555-30.113-120.31-67.75-179.7-106.87%2013.238-64.527%2059.441-120.98%20123.74-143.61-91.23%2017.09-184.76-36.906-215.57-124.47%2011.422%2061-8.9219%20123.02-49.836%20166.64zm367.79-454.6c20.82%202.1367%2040.895%208.4062%2058.707%2018.531%2029.996%2017.031%2054.719%2043.539%2071.328%2077.055-51.469-1.0352-102.66-38.699-130.04-95.586z%22%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%0A%20%20%3C%2Fg%3E%0A%20%3C%2Fg%3E%0A%20%3Cg%20clip-path%3D%22url(%23d)%22%3E%0A%20%20%3Cg%20clip-path%3D%22url(%23c)%22%3E%0A%20%20%20%3Cpath%20d%3D%22m862.57%20349.48c7.3164%200.14453%2014.629-0.44531%2021.887-1.8281-6.5352%202.2734-12.758%205.1797-18.668%208.6484-1.0352-2.3125-2.1133-4.582-3.2188-6.8203zm-136.6-96.121c-0.74219-8.5859-2.0469-17.25-3.9414-25.926%202.9297%209.207%206.4609%2018.039%2010.508%2026.461-2.1797-0.22266-4.3633-0.39453-6.5664-0.53125z%22%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%0A%20%20%3C%2Fg%3E%0A%20%3C%2Fg%3E%0A%20%3Cg%20clip-path%3D%22url(%23b)%22%3E%0A%20%20%3Cg%20clip-path%3D%22url(%23a)%22%3E%0A%20%20%20%3Cpath%20d%3D%22m364.75%20708.49c40.953%2032.301%2090.047%2067.426%20141.67%20101.43-4.7852%2023.344-5.2656%2047.734-0.72266%2071.969-30.812-87.555-124.35-141.55-215.58-124.46%2029.012-10.207%2054.348-27.309%2074.629-48.938z%22%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%0A%20%20%3C%2Fg%3E%0A%20%3C%2Fg%3E%0A%3C%2Fsvg%3E") center / contain no-repeat;
          mask: url("data:image/svg+xml;charset=utf-8,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Csvg%20width%3D%22729%22%20height%3D%22729%22%20version%3D%221.1%22%20viewBox%3D%22203%20208%20729%20729%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%3Cdefs%3E%0A%20%20%3CclipPath%20id%3D%22f%22%3E%0A%20%20%20%3Cpath%20d%3D%22m249%20253h637v664h-637z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22e%22%3E%0A%20%20%20%3Cpath%20d%3D%22m137.22%20332.82%20729.96-195.59%20195.59%20729.96-729.96%20195.59z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22d%22%3E%0A%20%20%20%3Cpath%20d%3D%22m722%20227h163v130h-163z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22c%22%3E%0A%20%20%20%3Cpath%20d%3D%22m137.22%20332.82%20729.96-195.59%20195.59%20729.96-729.96%20195.59z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22b%22%3E%0A%20%20%20%3Cpath%20d%3D%22m290%20708h217v174h-217z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%20%3CclipPath%20id%3D%22a%22%3E%0A%20%20%20%3Cpath%20d%3D%22m137.22%20332.82%20729.96-195.59%20195.59%20729.96-729.96%20195.59z%22%3E%3C%2Fpath%3E%0A%20%20%3C%2FclipPath%3E%0A%20%3C%2Fdefs%3E%0A%20%3Cg%20clip-path%3D%22url(%23f)%22%3E%0A%20%20%3Cg%20clip-path%3D%22url(%23e)%22%3E%0A%20%20%20%3Cpath%20d%3D%22m364.75%20708.49-1.5469-1.2188c-116.33-91.992-137.96-214.72-90.289-295.96%2047.672-81.246%20177.26-115.97%20276.28-5.5625l0.007812-0.003906c23.215-110.25%20103.57-156.78%20176.77-152.38%206.2891%2072.766-27.852%20139.65-84.508%20159.4%2065.895-12.547%20136.88%2039.988%20162.44%20120.22-16.133-73.781%2010.535-146.54%2061.895-176.68%2025.809%2057.309%2028.602%20133.6-4.7578%20217.58-41.48%20104.45-109.48%20239.78-174.9%20342.91l-0.007812%200.003906c-57.555-30.113-120.31-67.75-179.7-106.87%2013.238-64.527%2059.441-120.98%20123.74-143.61-91.23%2017.09-184.76-36.906-215.57-124.47%2011.422%2061-8.9219%20123.02-49.836%20166.64zm367.79-454.6c20.82%202.1367%2040.895%208.4062%2058.707%2018.531%2029.996%2017.031%2054.719%2043.539%2071.328%2077.055-51.469-1.0352-102.66-38.699-130.04-95.586z%22%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%0A%20%20%3C%2Fg%3E%0A%20%3C%2Fg%3E%0A%20%3Cg%20clip-path%3D%22url(%23d)%22%3E%0A%20%20%3Cg%20clip-path%3D%22url(%23c)%22%3E%0A%20%20%20%3Cpath%20d%3D%22m862.57%20349.48c7.3164%200.14453%2014.629-0.44531%2021.887-1.8281-6.5352%202.2734-12.758%205.1797-18.668%208.6484-1.0352-2.3125-2.1133-4.582-3.2188-6.8203zm-136.6-96.121c-0.74219-8.5859-2.0469-17.25-3.9414-25.926%202.9297%209.207%206.4609%2018.039%2010.508%2026.461-2.1797-0.22266-4.3633-0.39453-6.5664-0.53125z%22%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%0A%20%20%3C%2Fg%3E%0A%20%3C%2Fg%3E%0A%20%3Cg%20clip-path%3D%22url(%23b)%22%3E%0A%20%20%3Cg%20clip-path%3D%22url(%23a)%22%3E%0A%20%20%20%3Cpath%20d%3D%22m364.75%20708.49c40.953%2032.301%2090.047%2067.426%20141.67%20101.43-4.7852%2023.344-5.2656%2047.734-0.72266%2071.969-30.812-87.555-124.35-141.55-215.58-124.46%2029.012-10.207%2054.348-27.309%2074.629-48.938z%22%20fill%3D%22currentColor%22%20fill-rule%3D%22evenodd%22%3E%3C%2Fpath%3E%0A%20%20%3C%2Fg%3E%0A%20%3C%2Fg%3E%0A%3C%2Fsvg%3E") center / contain no-repeat;
  filter: drop-shadow(0 0 6px var(--bbs-heart));
  transition: filter var(--bbs-transition-fast), background-color var(--bbs-transition-fast);
}
.bbs-heart--lg  { --_bbs-heart-size: 0.95em; filter: drop-shadow(0 0 10px var(--bbs-heart)); vertical-align: -0.12em; }
.bbs-heart--xl  { --_bbs-heart-size: 1.05em; filter: drop-shadow(0 0 14px var(--bbs-heart)); vertical-align: -0.15em; }
.bbs-heart--hero{ --_bbs-heart-size: 0.9em;  filter: drop-shadow(0 0 20px var(--bbs-heart)) drop-shadow(0 0 5px var(--bbs-heart)); vertical-align: -0.1em; }
/* For true display specimens — heart at its own scale, standalone (not inline with text) */
.bbs-heart--display { --_bbs-heart-size: 3em; filter: drop-shadow(0 0 32px var(--bbs-heart)) drop-shadow(0 0 8px var(--bbs-heart)); vertical-align: middle; }



/* =========================================================
   Signature lockup — outlined wordmarks + neon heart
   The wordmarks are stroke-thin outlined paths (wordmark-*.svg),
   tinted via CSS mask so they inherit --bbs-text or --bbs-heart.

   Usage:
     <a class="bbs-signature bbs-signature--jade" href="https://builtbystephen.me">
       <span class="bbs-heart"></span>
     </a>

   Sizing: set font-size on the link; height is 1.5em by default.
   ========================================================= */
.bbs-signature {
  --bbs-signature-height: 1.5em;
  --bbs-signature-gap: 0.5em;
  /* Split-weight lockup: byline is quieter, name is the authored anchor.
     Override --bbs-signature-color for a solid treatment. */
  --bbs-signature-color: var(--bbs-text);
  --bbs-signature-byline-color: var(--bbs-lockup-byline);
  --bbs-signature-name-color:   var(--bbs-lockup-name);
  display: inline-flex;
  align-items: center;
  gap: var(--bbs-signature-gap);
  height: var(--bbs-signature-height);
  text-decoration: none;
  color: inherit;
  vertical-align: middle;
  line-height: 1;
  transition: opacity var(--bbs-transition-fast);
}
.bbs-signature:hover { opacity: 0.85; }

.bbs-signature::before,
.bbs-signature::after {
  content: '';
  display: block;
  height: 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-size: contain;
          mask-size: contain;
  -webkit-mask-position: center;
          mask-position: center;
  transition: background-color var(--bbs-transition-fast), filter var(--bbs-transition-fast);
  flex-shrink: 0;
}

.bbs-signature::before {
  width: calc(var(--bbs-signature-height) * 3.4);   /* 221/65 */
  background-color: var(--bbs-signature-byline-color);
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%22221%22%20height%3D%2265%22%20viewBox%3D%220%200%20221%2065%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill%3D%22%23000%22%20id%3D%22built%20by%22%20d%3D%22M2.9405%2022.4C4.00717%2019.584%205.8205%2017.28%208.3805%2015.488C10.9405%2013.696%2014.0338%2012.8%2017.6605%2012.8C20.9032%2012.8%2023.7832%2013.5253%2026.3005%2014.976C28.8605%2016.4267%2030.8445%2018.496%2032.2525%2021.184C33.7032%2023.872%2034.4285%2027.008%2034.4285%2030.592C34.4285%2034.176%2033.7032%2037.3333%2032.2525%2040.064C30.8445%2042.752%2028.8605%2044.8427%2026.3005%2046.336C23.7832%2047.7867%2020.9032%2048.512%2017.6605%2048.512C14.0338%2048.512%2010.9192%2047.616%208.3165%2045.824C5.7565%2044.032%203.9645%2041.728%202.9405%2038.912V48H0.0605001V0.639999H2.9405V22.4ZM31.4845%2030.592C31.4845%2027.4347%2030.8872%2024.704%2029.6925%2022.4C28.4978%2020.096%2026.8125%2018.3467%2024.6365%2017.152C22.5032%2015.9147%2020.0285%2015.296%2017.2125%2015.296C14.5245%2015.296%2012.0925%2015.936%209.9165%2017.216C7.7405%2018.4533%206.03383%2020.2453%204.7965%2022.592C3.55917%2024.896%202.9405%2027.5627%202.9405%2030.592C2.9405%2033.664%203.55917%2036.3733%204.7965%2038.72C6.03383%2041.024%207.7405%2042.816%209.9165%2044.096C12.0925%2045.3333%2014.5245%2045.952%2017.2125%2045.952C20.0285%2045.952%2022.5032%2045.3333%2024.6365%2044.096C26.8125%2042.8587%2028.4978%2041.088%2029.6925%2038.784C30.8872%2036.48%2031.4845%2033.7493%2031.4845%2030.592ZM72.499%2013.248V48H69.619V40.448C68.6377%2043.0933%2066.995%2045.12%2064.691%2046.528C62.4297%2047.8933%2059.827%2048.576%2056.883%2048.576C52.7443%2048.576%2049.3523%2047.3173%2046.707%2044.8C44.1043%2042.24%2042.803%2038.464%2042.803%2033.472V13.248H45.619V33.28C45.619%2037.4187%2046.6643%2040.5973%2048.755%2042.816C50.8457%2044.992%2053.683%2046.08%2057.267%2046.08C61.0217%2046.08%2064.0083%2044.8853%2066.227%2042.496C68.4883%2040.1067%2069.619%2036.5653%2069.619%2031.872V13.248H72.499ZM84.47%205.504C83.7873%205.504%2083.2113%205.29066%2082.742%204.864C82.2727%204.39466%2082.038%203.776%2082.038%203.008C82.038%202.28267%2082.2727%201.68533%2082.742%201.216C83.2113%200.746665%2083.7873%200.511997%2084.47%200.511997C85.1527%200.511997%2085.7287%200.746665%2086.198%201.216C86.6673%201.68533%2086.902%202.28267%2086.902%203.008C86.902%203.776%2086.6673%204.39466%2086.198%204.864C85.7287%205.29066%2085.1527%205.504%2084.47%205.504ZM85.878%2013.248V48H82.998V13.248H85.878ZM99.3155%200.639999V48H96.4355V0.639999H99.3155ZM114.161%2015.744V38.72C114.161%2041.28%20114.63%2043.0507%20115.569%2044.032C116.508%2044.9707%20118.172%2045.44%20120.561%2045.44H124.465V48H120.113C117.084%2048%20114.844%2047.296%20113.393%2045.888C111.985%2044.4373%20111.281%2042.048%20111.281%2038.72V15.744H106.033V13.248H111.281V4.416H114.161V13.248H124.465V15.744H114.161ZM153.691%2022.4C154.757%2019.584%20156.571%2017.28%20159.131%2015.488C161.691%2013.696%20164.784%2012.8%20168.411%2012.8C171.653%2012.8%20174.533%2013.5253%20177.051%2014.976C179.611%2016.4267%20181.595%2018.496%20183.003%2021.184C184.453%2023.872%20185.179%2027.008%20185.179%2030.592C185.179%2034.176%20184.453%2037.3333%20183.003%2040.064C181.595%2042.752%20179.611%2044.8427%20177.051%2046.336C174.533%2047.7867%20171.653%2048.512%20168.411%2048.512C164.784%2048.512%20161.669%2047.616%20159.067%2045.824C156.507%2044.032%20154.715%2041.728%20153.691%2038.912V48H150.811V0.639999H153.691V22.4ZM182.235%2030.592C182.235%2027.4347%20181.637%2024.704%20180.443%2022.4C179.248%2020.096%20177.563%2018.3467%20175.387%2017.152C173.253%2015.9147%20170.779%2015.296%20167.963%2015.296C165.275%2015.296%20162.843%2015.936%20160.667%2017.216C158.491%2018.4533%20156.784%2020.2453%20155.547%2022.592C154.309%2024.896%20153.691%2027.5627%20153.691%2030.592C153.691%2033.664%20154.309%2036.3733%20155.547%2038.72C156.784%2041.024%20158.491%2042.816%20160.667%2044.096C162.843%2045.3333%20165.275%2045.952%20167.963%2045.952C170.779%2045.952%20173.253%2045.3333%20175.387%2044.096C177.563%2042.8587%20179.248%2041.088%20180.443%2038.784C181.637%2036.48%20182.235%2033.7493%20182.235%2030.592ZM192.913%2013.248L205.841%2044.416L218.001%2013.248H221.009L200.785%2064.32H197.649L204.241%2047.936L189.713%2013.248H192.913Z%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E");
          mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%22221%22%20height%3D%2265%22%20viewBox%3D%220%200%20221%2065%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20fill%3D%22%23000%22%20id%3D%22built%20by%22%20d%3D%22M2.9405%2022.4C4.00717%2019.584%205.8205%2017.28%208.3805%2015.488C10.9405%2013.696%2014.0338%2012.8%2017.6605%2012.8C20.9032%2012.8%2023.7832%2013.5253%2026.3005%2014.976C28.8605%2016.4267%2030.8445%2018.496%2032.2525%2021.184C33.7032%2023.872%2034.4285%2027.008%2034.4285%2030.592C34.4285%2034.176%2033.7032%2037.3333%2032.2525%2040.064C30.8445%2042.752%2028.8605%2044.8427%2026.3005%2046.336C23.7832%2047.7867%2020.9032%2048.512%2017.6605%2048.512C14.0338%2048.512%2010.9192%2047.616%208.3165%2045.824C5.7565%2044.032%203.9645%2041.728%202.9405%2038.912V48H0.0605001V0.639999H2.9405V22.4ZM31.4845%2030.592C31.4845%2027.4347%2030.8872%2024.704%2029.6925%2022.4C28.4978%2020.096%2026.8125%2018.3467%2024.6365%2017.152C22.5032%2015.9147%2020.0285%2015.296%2017.2125%2015.296C14.5245%2015.296%2012.0925%2015.936%209.9165%2017.216C7.7405%2018.4533%206.03383%2020.2453%204.7965%2022.592C3.55917%2024.896%202.9405%2027.5627%202.9405%2030.592C2.9405%2033.664%203.55917%2036.3733%204.7965%2038.72C6.03383%2041.024%207.7405%2042.816%209.9165%2044.096C12.0925%2045.3333%2014.5245%2045.952%2017.2125%2045.952C20.0285%2045.952%2022.5032%2045.3333%2024.6365%2044.096C26.8125%2042.8587%2028.4978%2041.088%2029.6925%2038.784C30.8872%2036.48%2031.4845%2033.7493%2031.4845%2030.592ZM72.499%2013.248V48H69.619V40.448C68.6377%2043.0933%2066.995%2045.12%2064.691%2046.528C62.4297%2047.8933%2059.827%2048.576%2056.883%2048.576C52.7443%2048.576%2049.3523%2047.3173%2046.707%2044.8C44.1043%2042.24%2042.803%2038.464%2042.803%2033.472V13.248H45.619V33.28C45.619%2037.4187%2046.6643%2040.5973%2048.755%2042.816C50.8457%2044.992%2053.683%2046.08%2057.267%2046.08C61.0217%2046.08%2064.0083%2044.8853%2066.227%2042.496C68.4883%2040.1067%2069.619%2036.5653%2069.619%2031.872V13.248H72.499ZM84.47%205.504C83.7873%205.504%2083.2113%205.29066%2082.742%204.864C82.2727%204.39466%2082.038%203.776%2082.038%203.008C82.038%202.28267%2082.2727%201.68533%2082.742%201.216C83.2113%200.746665%2083.7873%200.511997%2084.47%200.511997C85.1527%200.511997%2085.7287%200.746665%2086.198%201.216C86.6673%201.68533%2086.902%202.28267%2086.902%203.008C86.902%203.776%2086.6673%204.39466%2086.198%204.864C85.7287%205.29066%2085.1527%205.504%2084.47%205.504ZM85.878%2013.248V48H82.998V13.248H85.878ZM99.3155%200.639999V48H96.4355V0.639999H99.3155ZM114.161%2015.744V38.72C114.161%2041.28%20114.63%2043.0507%20115.569%2044.032C116.508%2044.9707%20118.172%2045.44%20120.561%2045.44H124.465V48H120.113C117.084%2048%20114.844%2047.296%20113.393%2045.888C111.985%2044.4373%20111.281%2042.048%20111.281%2038.72V15.744H106.033V13.248H111.281V4.416H114.161V13.248H124.465V15.744H114.161ZM153.691%2022.4C154.757%2019.584%20156.571%2017.28%20159.131%2015.488C161.691%2013.696%20164.784%2012.8%20168.411%2012.8C171.653%2012.8%20174.533%2013.5253%20177.051%2014.976C179.611%2016.4267%20181.595%2018.496%20183.003%2021.184C184.453%2023.872%20185.179%2027.008%20185.179%2030.592C185.179%2034.176%20184.453%2037.3333%20183.003%2040.064C181.595%2042.752%20179.611%2044.8427%20177.051%2046.336C174.533%2047.7867%20171.653%2048.512%20168.411%2048.512C164.784%2048.512%20161.669%2047.616%20159.067%2045.824C156.507%2044.032%20154.715%2041.728%20153.691%2038.912V48H150.811V0.639999H153.691V22.4ZM182.235%2030.592C182.235%2027.4347%20181.637%2024.704%20180.443%2022.4C179.248%2020.096%20177.563%2018.3467%20175.387%2017.152C173.253%2015.9147%20170.779%2015.296%20167.963%2015.296C165.275%2015.296%20162.843%2015.936%20160.667%2017.216C158.491%2018.4533%20156.784%2020.2453%20155.547%2022.592C154.309%2024.896%20153.691%2027.5627%20153.691%2030.592C153.691%2033.664%20154.309%2036.3733%20155.547%2038.72C156.784%2041.024%20158.491%2042.816%20160.667%2044.096C162.843%2045.3333%20165.275%2045.952%20167.963%2045.952C170.779%2045.952%20173.253%2045.3333%20175.387%2044.096C177.563%2042.8587%20179.248%2041.088%20180.443%2038.784C181.637%2036.48%20182.235%2033.7493%20182.235%2030.592ZM192.913%2013.248L205.841%2044.416L218.001%2013.248H221.009L200.785%2064.32H197.649L204.241%2047.936L189.713%2013.248H192.913Z%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E");
}

.bbs-signature::after {
  width: calc(var(--bbs-signature-height) * 3.877); /* 252/65 */
  background-color: var(--bbs-signature-name-color);
  -webkit-mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%22252%22%20height%3D%2265%22%20viewBox%3D%220%200%20252%2065%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20id%3D%22stephen%22%20d%3D%22M14.399%2048.512C10.4737%2048.512%207.231%2047.5733%204.671%2045.696C2.15367%2043.8187%200.745667%2041.3013%200.447%2038.144H5.055C5.26833%2040.192%206.18567%2041.8347%207.807%2043.072C9.471%2044.3093%2011.6897%2044.928%2014.463%2044.928C16.895%2044.928%2018.7937%2044.352%2020.159%2043.2C21.567%2042.0053%2022.271%2040.512%2022.271%2038.72C22.271%2037.5253%2021.887%2036.544%2021.119%2035.776C20.351%2035.008%2019.3697%2034.4107%2018.175%2033.984C17.023%2033.5147%2015.4443%2033.024%2013.439%2032.512C10.8363%2031.8293%208.74567%2031.168%207.167%2030.528C5.58833%2029.8453%204.223%2028.8427%203.071%2027.52C1.96167%2026.1973%201.407%2024.4267%201.407%2022.208C1.407%2020.4587%201.89767%2018.8587%202.879%2017.408C3.903%2015.9147%205.33233%2014.7413%207.167%2013.888C9.04433%2012.992%2011.1777%2012.544%2013.567%2012.544C17.3217%2012.544%2020.351%2013.504%2022.655%2015.424C24.959%2017.3013%2026.1963%2019.904%2026.367%2023.232H21.887C21.759%2021.1413%2020.9483%2019.4347%2019.455%2018.112C18.0043%2016.7893%2015.999%2016.128%2013.439%2016.128C11.135%2016.128%209.279%2016.6827%207.871%2017.792C6.50567%2018.9013%205.823%2020.288%205.823%2021.952C5.823%2023.3173%206.22833%2024.448%207.039%2025.344C7.89233%2026.1973%208.93767%2026.88%2010.175%2027.392C11.4123%2027.8613%2013.0763%2028.3947%2015.167%2028.992C17.599%2029.632%2019.583%2030.272%2021.119%2030.912C22.655%2031.552%2023.935%2032.4907%2024.959%2033.728C26.0257%2034.9653%2026.559%2036.608%2026.559%2038.656C26.559%2040.5333%2026.047%2042.2187%2025.023%2043.712C24.0417%2045.2053%2022.6337%2046.3787%2020.799%2047.232C18.9643%2048.0853%2016.831%2048.512%2014.399%2048.512ZM40.944%2016.832V38.528C40.944%2040.6613%2041.3493%2042.1333%2042.16%2042.944C42.9707%2043.7547%2044.4%2044.16%2046.448%2044.16H50.544V48H45.744C42.5867%2048%2040.24%2047.2747%2038.704%2045.824C37.168%2044.3307%2036.4%2041.8987%2036.4%2038.528V16.832H31.536V13.056H36.4V4.288H40.944V13.056H50.544V16.832H40.944ZM89.5485%2028.672C89.5485%2030.1653%2089.5058%2031.3173%2089.4205%2032.128H60.4285C60.5138%2034.7733%2061.1325%2037.056%2062.2845%2038.976C63.4792%2040.8533%2065.0152%2042.2827%2066.8925%2043.264C68.7698%2044.2453%2070.8178%2044.736%2073.0365%2044.736C75.9378%2044.736%2078.3698%2044.032%2080.3325%2042.624C82.3378%2041.216%2083.6605%2039.3173%2084.3005%2036.928H89.0365C88.1832%2040.3413%2086.3485%2043.136%2083.5325%2045.312C80.7592%2047.4453%2077.2605%2048.512%2073.0365%2048.512C69.7512%2048.512%2066.8072%2047.7867%2064.2045%2046.336C61.6018%2044.8427%2059.5538%2042.752%2058.0605%2040.064C56.6098%2037.3333%2055.8845%2034.1547%2055.8845%2030.528C55.8845%2026.9013%2056.6098%2023.7227%2058.0605%2020.992C59.5112%2018.2613%2061.5378%2016.1707%2064.1405%2014.72C66.7432%2013.2693%2069.7085%2012.544%2073.0365%2012.544C76.3645%2012.544%2079.2658%2013.2693%2081.7405%2014.72C84.2578%2016.128%2086.1778%2018.0693%2087.5005%2020.544C88.8658%2023.0187%2089.5485%2025.728%2089.5485%2028.672ZM85.0045%2028.8C85.0472%2026.1547%2084.5138%2023.8933%2083.4045%2022.016C82.3378%2020.1387%2080.8658%2018.7307%2078.9885%2017.792C77.1112%2016.8533%2075.0632%2016.384%2072.8445%2016.384C70.6685%2016.384%2068.6632%2016.8533%2066.8285%2017.792C64.9938%2018.7307%2063.5005%2020.1387%2062.3485%2022.016C61.1965%2023.8933%2060.5565%2026.1547%2060.4285%2028.8H85.0045ZM102.161%2020.736C103.27%2018.3893%20105.02%2016.448%20107.409%2014.912C109.841%2013.3333%20112.721%2012.544%20116.049%2012.544C119.206%2012.544%20122.044%2013.2907%20124.561%2014.784C127.121%2016.2347%20129.105%2018.3253%20130.513%2021.056C131.964%2023.744%20132.689%2026.88%20132.689%2030.464C132.689%2034.048%20131.964%2037.2053%20130.513%2039.936C129.105%2042.6667%20127.121%2044.7787%20124.561%2046.272C122.044%2047.7653%20119.206%2048.512%20116.049%2048.512C112.764%2048.512%20109.905%2047.744%20107.473%2046.208C105.041%2044.6293%20103.27%2042.6667%20102.161%2040.32V64.512H97.745V13.056H102.161V20.736ZM128.145%2030.464C128.145%2027.5627%20127.569%2025.0667%20126.417%2022.976C125.308%2020.8427%20123.772%2019.2213%20121.809%2018.112C119.846%2017.0027%20117.628%2016.448%20115.153%2016.448C112.764%2016.448%20110.566%2017.024%20108.561%2018.176C106.598%2019.328%20105.041%2020.9707%20103.889%2023.104C102.737%2025.2373%20102.161%2027.712%20102.161%2030.528C102.161%2033.344%20102.737%2035.8187%20103.889%2037.952C105.041%2040.0853%20106.598%2041.728%20108.561%2042.88C110.566%2044.032%20112.764%2044.608%20115.153%2044.608C117.628%2044.608%20119.846%2044.0533%20121.809%2042.944C123.772%2041.792%20125.308%2040.1493%20126.417%2038.016C127.569%2035.84%20128.145%2033.3227%20128.145%2030.464ZM157.573%2012.416C160.218%2012.416%20162.586%2012.9707%20164.677%2014.08C166.81%2015.1893%20168.474%2016.896%20169.669%2019.2C170.906%2021.4613%20171.525%2024.2347%20171.525%2027.52V48H167.109V28.032C167.109%2024.2347%20166.149%2021.3333%20164.229%2019.328C162.351%2017.3227%20159.77%2016.32%20156.485%2016.32C153.114%2016.32%20150.426%2017.3867%20148.421%2019.52C146.415%2021.6533%20145.413%2024.7893%20145.413%2028.928V48H140.933V0.639999H145.413V19.008C146.522%2016.9173%20148.143%2015.296%20150.277%2014.144C152.453%2012.992%20154.885%2012.416%20157.573%2012.416ZM213.049%2028.672C213.049%2030.1653%20213.006%2031.3173%20212.921%2032.128H183.929C184.014%2034.7733%20184.633%2037.056%20185.785%2038.976C186.979%2040.8533%20188.515%2042.2827%20190.393%2043.264C192.27%2044.2453%20194.318%2044.736%20196.537%2044.736C199.438%2044.736%20201.87%2044.032%20203.833%2042.624C205.838%2041.216%20207.161%2039.3173%20207.801%2036.928H212.537C211.683%2040.3413%20209.849%2043.136%20207.033%2045.312C204.259%2047.4453%20200.761%2048.512%20196.537%2048.512C193.251%2048.512%20190.307%2047.7867%20187.705%2046.336C185.102%2044.8427%20183.054%2042.752%20181.561%2040.064C180.11%2037.3333%20179.385%2034.1547%20179.385%2030.528C179.385%2026.9013%20180.11%2023.7227%20181.561%2020.992C183.011%2018.2613%20185.038%2016.1707%20187.641%2014.72C190.243%2013.2693%20193.209%2012.544%20196.537%2012.544C199.865%2012.544%20202.766%2013.2693%20205.241%2014.72C207.758%2016.128%20209.678%2018.0693%20211.001%2020.544C212.366%2023.0187%20213.049%2025.728%20213.049%2028.672ZM208.505%2028.8C208.547%2026.1547%20208.014%2023.8933%20206.905%2022.016C205.838%2020.1387%20204.366%2018.7307%20202.489%2017.792C200.611%2016.8533%20198.563%2016.384%20196.345%2016.384C194.169%2016.384%20192.163%2016.8533%20190.329%2017.792C188.494%2018.7307%20187.001%2020.1387%20185.849%2022.016C184.697%2023.8933%20184.057%2026.1547%20183.929%2028.8H208.505ZM237.629%2012.416C241.81%2012.416%20245.224%2013.7173%20247.869%2016.32C250.514%2018.88%20251.837%2022.6133%20251.837%2027.52V48H247.421V28.032C247.421%2024.2347%20246.461%2021.3333%20244.541%2019.328C242.664%2017.3227%20240.082%2016.32%20236.797%2016.32C233.426%2016.32%20230.738%2017.3867%20228.733%2019.52C226.728%2021.6533%20225.725%2024.7893%20225.725%2028.928V48H221.245V13.056H225.725V19.008C226.834%2016.8747%20228.434%2015.2533%20230.525%2014.144C232.616%2012.992%20234.984%2012.416%20237.629%2012.416Z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E");
          mask-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%22252%22%20height%3D%2265%22%20viewBox%3D%220%200%20252%2065%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%3Cpath%20id%3D%22stephen%22%20d%3D%22M14.399%2048.512C10.4737%2048.512%207.231%2047.5733%204.671%2045.696C2.15367%2043.8187%200.745667%2041.3013%200.447%2038.144H5.055C5.26833%2040.192%206.18567%2041.8347%207.807%2043.072C9.471%2044.3093%2011.6897%2044.928%2014.463%2044.928C16.895%2044.928%2018.7937%2044.352%2020.159%2043.2C21.567%2042.0053%2022.271%2040.512%2022.271%2038.72C22.271%2037.5253%2021.887%2036.544%2021.119%2035.776C20.351%2035.008%2019.3697%2034.4107%2018.175%2033.984C17.023%2033.5147%2015.4443%2033.024%2013.439%2032.512C10.8363%2031.8293%208.74567%2031.168%207.167%2030.528C5.58833%2029.8453%204.223%2028.8427%203.071%2027.52C1.96167%2026.1973%201.407%2024.4267%201.407%2022.208C1.407%2020.4587%201.89767%2018.8587%202.879%2017.408C3.903%2015.9147%205.33233%2014.7413%207.167%2013.888C9.04433%2012.992%2011.1777%2012.544%2013.567%2012.544C17.3217%2012.544%2020.351%2013.504%2022.655%2015.424C24.959%2017.3013%2026.1963%2019.904%2026.367%2023.232H21.887C21.759%2021.1413%2020.9483%2019.4347%2019.455%2018.112C18.0043%2016.7893%2015.999%2016.128%2013.439%2016.128C11.135%2016.128%209.279%2016.6827%207.871%2017.792C6.50567%2018.9013%205.823%2020.288%205.823%2021.952C5.823%2023.3173%206.22833%2024.448%207.039%2025.344C7.89233%2026.1973%208.93767%2026.88%2010.175%2027.392C11.4123%2027.8613%2013.0763%2028.3947%2015.167%2028.992C17.599%2029.632%2019.583%2030.272%2021.119%2030.912C22.655%2031.552%2023.935%2032.4907%2024.959%2033.728C26.0257%2034.9653%2026.559%2036.608%2026.559%2038.656C26.559%2040.5333%2026.047%2042.2187%2025.023%2043.712C24.0417%2045.2053%2022.6337%2046.3787%2020.799%2047.232C18.9643%2048.0853%2016.831%2048.512%2014.399%2048.512ZM40.944%2016.832V38.528C40.944%2040.6613%2041.3493%2042.1333%2042.16%2042.944C42.9707%2043.7547%2044.4%2044.16%2046.448%2044.16H50.544V48H45.744C42.5867%2048%2040.24%2047.2747%2038.704%2045.824C37.168%2044.3307%2036.4%2041.8987%2036.4%2038.528V16.832H31.536V13.056H36.4V4.288H40.944V13.056H50.544V16.832H40.944ZM89.5485%2028.672C89.5485%2030.1653%2089.5058%2031.3173%2089.4205%2032.128H60.4285C60.5138%2034.7733%2061.1325%2037.056%2062.2845%2038.976C63.4792%2040.8533%2065.0152%2042.2827%2066.8925%2043.264C68.7698%2044.2453%2070.8178%2044.736%2073.0365%2044.736C75.9378%2044.736%2078.3698%2044.032%2080.3325%2042.624C82.3378%2041.216%2083.6605%2039.3173%2084.3005%2036.928H89.0365C88.1832%2040.3413%2086.3485%2043.136%2083.5325%2045.312C80.7592%2047.4453%2077.2605%2048.512%2073.0365%2048.512C69.7512%2048.512%2066.8072%2047.7867%2064.2045%2046.336C61.6018%2044.8427%2059.5538%2042.752%2058.0605%2040.064C56.6098%2037.3333%2055.8845%2034.1547%2055.8845%2030.528C55.8845%2026.9013%2056.6098%2023.7227%2058.0605%2020.992C59.5112%2018.2613%2061.5378%2016.1707%2064.1405%2014.72C66.7432%2013.2693%2069.7085%2012.544%2073.0365%2012.544C76.3645%2012.544%2079.2658%2013.2693%2081.7405%2014.72C84.2578%2016.128%2086.1778%2018.0693%2087.5005%2020.544C88.8658%2023.0187%2089.5485%2025.728%2089.5485%2028.672ZM85.0045%2028.8C85.0472%2026.1547%2084.5138%2023.8933%2083.4045%2022.016C82.3378%2020.1387%2080.8658%2018.7307%2078.9885%2017.792C77.1112%2016.8533%2075.0632%2016.384%2072.8445%2016.384C70.6685%2016.384%2068.6632%2016.8533%2066.8285%2017.792C64.9938%2018.7307%2063.5005%2020.1387%2062.3485%2022.016C61.1965%2023.8933%2060.5565%2026.1547%2060.4285%2028.8H85.0045ZM102.161%2020.736C103.27%2018.3893%20105.02%2016.448%20107.409%2014.912C109.841%2013.3333%20112.721%2012.544%20116.049%2012.544C119.206%2012.544%20122.044%2013.2907%20124.561%2014.784C127.121%2016.2347%20129.105%2018.3253%20130.513%2021.056C131.964%2023.744%20132.689%2026.88%20132.689%2030.464C132.689%2034.048%20131.964%2037.2053%20130.513%2039.936C129.105%2042.6667%20127.121%2044.7787%20124.561%2046.272C122.044%2047.7653%20119.206%2048.512%20116.049%2048.512C112.764%2048.512%20109.905%2047.744%20107.473%2046.208C105.041%2044.6293%20103.27%2042.6667%20102.161%2040.32V64.512H97.745V13.056H102.161V20.736ZM128.145%2030.464C128.145%2027.5627%20127.569%2025.0667%20126.417%2022.976C125.308%2020.8427%20123.772%2019.2213%20121.809%2018.112C119.846%2017.0027%20117.628%2016.448%20115.153%2016.448C112.764%2016.448%20110.566%2017.024%20108.561%2018.176C106.598%2019.328%20105.041%2020.9707%20103.889%2023.104C102.737%2025.2373%20102.161%2027.712%20102.161%2030.528C102.161%2033.344%20102.737%2035.8187%20103.889%2037.952C105.041%2040.0853%20106.598%2041.728%20108.561%2042.88C110.566%2044.032%20112.764%2044.608%20115.153%2044.608C117.628%2044.608%20119.846%2044.0533%20121.809%2042.944C123.772%2041.792%20125.308%2040.1493%20126.417%2038.016C127.569%2035.84%20128.145%2033.3227%20128.145%2030.464ZM157.573%2012.416C160.218%2012.416%20162.586%2012.9707%20164.677%2014.08C166.81%2015.1893%20168.474%2016.896%20169.669%2019.2C170.906%2021.4613%20171.525%2024.2347%20171.525%2027.52V48H167.109V28.032C167.109%2024.2347%20166.149%2021.3333%20164.229%2019.328C162.351%2017.3227%20159.77%2016.32%20156.485%2016.32C153.114%2016.32%20150.426%2017.3867%20148.421%2019.52C146.415%2021.6533%20145.413%2024.7893%20145.413%2028.928V48H140.933V0.639999H145.413V19.008C146.522%2016.9173%20148.143%2015.296%20150.277%2014.144C152.453%2012.992%20154.885%2012.416%20157.573%2012.416ZM213.049%2028.672C213.049%2030.1653%20213.006%2031.3173%20212.921%2032.128H183.929C184.014%2034.7733%20184.633%2037.056%20185.785%2038.976C186.979%2040.8533%20188.515%2042.2827%20190.393%2043.264C192.27%2044.2453%20194.318%2044.736%20196.537%2044.736C199.438%2044.736%20201.87%2044.032%20203.833%2042.624C205.838%2041.216%20207.161%2039.3173%20207.801%2036.928H212.537C211.683%2040.3413%20209.849%2043.136%20207.033%2045.312C204.259%2047.4453%20200.761%2048.512%20196.537%2048.512C193.251%2048.512%20190.307%2047.7867%20187.705%2046.336C185.102%2044.8427%20183.054%2042.752%20181.561%2040.064C180.11%2037.3333%20179.385%2034.1547%20179.385%2030.528C179.385%2026.9013%20180.11%2023.7227%20181.561%2020.992C183.011%2018.2613%20185.038%2016.1707%20187.641%2014.72C190.243%2013.2693%20193.209%2012.544%20196.537%2012.544C199.865%2012.544%20202.766%2013.2693%20205.241%2014.72C207.758%2016.128%20209.678%2018.0693%20211.001%2020.544C212.366%2023.0187%20213.049%2025.728%20213.049%2028.672ZM208.505%2028.8C208.547%2026.1547%20208.014%2023.8933%20206.905%2022.016C205.838%2020.1387%20204.366%2018.7307%20202.489%2017.792C200.611%2016.8533%20198.563%2016.384%20196.345%2016.384C194.169%2016.384%20192.163%2016.8533%20190.329%2017.792C188.494%2018.7307%20187.001%2020.1387%20185.849%2022.016C184.697%2023.8933%20184.057%2026.1547%20183.929%2028.8H208.505ZM237.629%2012.416C241.81%2012.416%20245.224%2013.7173%20247.869%2016.32C250.514%2018.88%20251.837%2022.6133%20251.837%2027.52V48H247.421V28.032C247.421%2024.2347%20246.461%2021.3333%20244.541%2019.328C242.664%2017.3227%20240.082%2016.32%20236.797%2016.32C233.426%2016.32%20230.738%2017.3867%20228.733%2019.52C226.728%2021.6533%20225.725%2024.7893%20225.725%2028.928V48H221.245V13.056H225.725V19.008C226.834%2016.8747%20228.434%2015.2533%20230.525%2014.144C232.616%2012.992%20234.984%2012.416%20237.629%2012.416Z%22%20fill%3D%22%23000%22%3E%3C%2Fpath%3E%0A%3C%2Fsvg%3E");
}

.bbs-signature .bbs-heart {
  --_bbs-heart-size: calc(var(--bbs-signature-height) * 0.95);
  flex-shrink: 0;
}

/* Fully-jadeite variant — wordmarks AND heart match --bbs-heart with a soft glow.
   Overrides the split-weight default. Use for hero moments. */
.bbs-signature--jade {
  --bbs-signature-byline-color: var(--bbs-heart);
  --bbs-signature-name-color:   var(--bbs-heart);
}
.bbs-signature--jade::before,
.bbs-signature--jade::after {
  filter: drop-shadow(0 0 6px var(--bbs-heart));
}

/* Solid variant — both halves use --bbs-signature-color.
   Use for monochrome contexts (print, footers, inverted surfaces). */
.bbs-signature--solid {
  --bbs-signature-byline-color: var(--bbs-signature-color);
  --bbs-signature-name-color:   var(--bbs-signature-color);
}

/* Size helpers — set via em on signature-height */
.bbs-signature--sm { --bbs-signature-height: 1em;   --bbs-signature-gap: 0.4em; }
.bbs-signature--md { --bbs-signature-height: 1.5em; --bbs-signature-gap: 0.5em; }
.bbs-signature--lg { --bbs-signature-height: 2em;   --bbs-signature-gap: 0.6em; }
.bbs-signature--xl { --bbs-signature-height: 2.6em; --bbs-signature-gap: 0.7em; }
