/* ================================================================
   DataHints DS — Author Card Component
   Requires: tokens.css
   ================================================================ */

  /* ── Avatar ── */
  .author-avatar {
    flex-shrink: 0;
    border-radius: var(--r-pill);
    overflow: hidden;
    display: flex; align-items: center; justify-content: center;
  }
  .author-avatar img {
    display: block; width: 100%; height: 100%;
    object-fit: cover; border-radius: var(--r-pill);
  }

  /* Initials fallback */
  .author-avatar-init {
    display: flex; align-items: center; justify-content: center;
    width: 100%; height: 100%;
    background: var(--accent-sub);
    color: var(--accent-text);
    font-family: var(--font-mono); font-weight: 600;
    border-radius: var(--r-pill);
    user-select: none;
  }

  /* Body slot — prevents flex child from overflowing its container */
  .author-body { min-width: 0; }

  .author-name {
    font-family: var(--font-sans); font-weight: 600;
    color: var(--fg-heading); margin: 0; line-height: 1.3;
  }
  .author-role {
    font-family: var(--font-mono); font-size: 0.6875rem;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--fg-3); margin: var(--sp-1) 0 0; line-height: 1.3;
  }
  .author-bio {
    font-family: var(--font-sans); line-height: 1.6;
    color: var(--fg-2); margin: var(--sp-3) 0 0;
  }

  /* Tags */
  .author-tags {
    display: flex; flex-wrap: wrap; gap: var(--sp-2);
    margin-top: var(--sp-4);
  }
  .author-tag {
    display: inline-flex; align-items: center;
    background: var(--accent-sub);
    color: var(--accent-text);
    border-radius: var(--r-xs);
    padding: 2px var(--sp-2);
    font-family: var(--font-mono); font-size: 0.6875rem;
    font-weight: 500; text-transform: uppercase; letter-spacing: 0.08em;
    line-height: 1.6;
  }

  /* Social links */
  .author-links {
    display: flex; align-items: center; gap: var(--sp-1);
    margin-top: var(--sp-3);
  }
  .author-link {
    display: flex; align-items: center; justify-content: center;
    border-radius: var(--r-xs);
    color: var(--fg-3); text-decoration: none;
    transition: color var(--ease-fast), background var(--ease-fast);
  }
  .author-link:hover { color: var(--fg); background: var(--bg-card-h); }
  .author-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  .author-link svg { display: block; }

  /* Article meta row */
  .author-meta {
    display: flex; align-items: center; flex-wrap: wrap;
    gap: var(--sp-2);
    font-family: var(--font-mono); font-size: 0.75rem;
    color: var(--fg-3); margin-bottom: var(--sp-4);
  }
  .author-meta-sep { opacity: 0.5; }

  /* ────────────────────────────────────────────────────────────
     VARIANT: MINI
  ──────────────────────────────────────────────────────────── */

  .author-card-mini {
    display: inline-flex;
    align-items: center;
    gap: var(--sp-2);
  }

  .author-card-mini .author-avatar {
    width: 24px; height: 24px;
  }
  .author-card-mini .author-avatar-init { font-size: 0.625rem; }

  .author-card-mini .author-name {
    font-family: var(--font-mono); font-size: 0.8125rem; font-weight: 500;
    color: var(--fg);
  }
  /* hide unsupported slots */
  .author-card-mini .author-role,
  .author-card-mini .author-bio,
  .author-card-mini .author-tags,
  .author-card-mini .author-links { display: none; }

  /* ────────────────────────────────────────────────────────────
     VARIANT: INLINE
  ──────────────────────────────────────────────────────────── */

  .author-card-inline {
    display: flex;
    align-items: flex-start;
    gap: var(--sp-4);
  }

  .author-card-inline .author-avatar {
    width: 48px; height: 48px;
  }
  .author-card-inline .author-avatar-init { font-size: 1.0625rem; }

  .author-card-inline .author-name { font-size: 0.9375rem; }
  .author-card-inline .author-bio  { font-size: 0.875rem; }

  .author-card-inline .author-link {
    width: 28px; height: 28px;
  }
  .author-card-inline .author-link svg { width: 16px; height: 16px; }

  /* Divider modifier — article footer placement */
  .author-card-divider {
    border-top: 1px solid var(--border-s);
    padding-top: var(--sp-6);
    margin-top: var(--sp-6);
  }

  /* ────────────────────────────────────────────────────────────
     VARIANT: PANEL
  ──────────────────────────────────────────────────────────── */

  .author-card-panel {
    display: flex;
    flex-direction: column;
    gap: var(--sp-4);
    background: var(--bg-card);
    border: 1px solid var(--border-s);
    border-radius: var(--r-md);
    padding: var(--sp-6);
  }

  .author-card-panel .author-avatar {
    width: 72px; height: 72px;
  }
  .author-card-panel .author-avatar-init { font-size: 1.5rem; }

  .author-card-panel .author-name {
    font-size: 1.125rem; /* dh-h4 level */
  }
  .author-card-panel .author-bio  { font-size: 0.9375rem; }

  .author-card-panel .author-link {
    width: 32px; height: 32px;
  }
  .author-card-panel .author-link svg { width: 18px; height: 18px; }
