/* ════════════════════════════════════════════════════════════════════
   § 3  RESET
════════════════════════════════════════════════════════════════════ */
:where(#medical-profile) *,
:where(#medical-profile) *::before,
:where(#medical-profile) *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
#medical-profile { max-width:100%; }


/* ════════════════════════════════════════════════════════════════════
   § 4  BODY / NOISE TEXTURE
════════════════════════════════════════════════════════════════════ */
#medical-profile {
  font-family: var(--fb);
  background: var(--surface);
  color: var(--ink);
  overflow-x: hidden;
  max-width: 100vw;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Subtle film-grain overlay — purely decorative */
#medical-profile::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.025'/%3E%3C/svg%3E");
  opacity: .4;
}


/* ════════════════════════════════════════════════════════════════════
   § 5  HERO
   Cinematic role-adaptive header. Background, orbs, grid and avatar
   are all driven by CSS custom properties set from $roleThemes.
════════════════════════════════════════════════════════════════════ */
.dp-hero {
  background: var(--hero-bg);
  position: relative;
  overflow: hidden;
  max-width: 100%;
}
.dp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    var(--hero-accent),
    radial-gradient(ellipse at 10% 85%, rgba(255,255,255,.03) 0%, transparent 50%);
}

/* Faint perspective grid */
.hero-grid {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.012) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.012) 1px, transparent 1px);
  background-size: 52px 52px;
}

/* Floating ambient orbs */
.hero-orb {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  animation: orbFloat 11s ease-in-out infinite;
}
.o1 { width:420px; height:420px; top:-160px; right:-80px;  filter:blur(100px); background:rgba(255,255,255,.04); }
.o2 { width:260px; height:260px; bottom:-100px; left:4%;   filter:blur(80px);  background:rgba(255,255,255,.035); animation-delay:5s; }
.o3 { width:180px; height:180px; top:38%; left:44%;        filter:blur(70px);  background:rgba(255,255,255,.025); animation-delay:9s; }

.hero-inner { position: relative; z-index: 2; max-width: 100%; }

/* Breadcrumb */
.hero-bc {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
  padding: 1.25rem 0 0;
  font-size: .72rem;
  font-weight: 700;
  color: rgba(255,255,255,.28);
  max-width: 100%;
  overflow: hidden;
  word-break: break-word;
}
.hero-bc a   { color: rgba(255,255,255,.28); text-decoration: none; transition: color .2s; }
.hero-bc a:hover { color: var(--gold); }
.hero-bc sep { color: rgba(255,255,255,.16); font-size: .85rem; }
.hero-bc span[aria-current="page"] {
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Role tag pill */
.hero-role-tag {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 30px;
  padding: .3rem 1rem;
  margin: .9rem 0;
  font-size: .7rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: var(--gold);
  max-width: 100%;
  white-space: normal;
  word-break: break-word;
}
.tag-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 8px var(--accent);
  animation: blink 1.5s ease-in-out infinite;
}

/* Hero 2-column layout */
.hero-grid-lay {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2.5rem;
  align-items: flex-start;
  padding: 1.5rem 0 2.25rem;
  max-width: 100%;
}
@media (max-width: 991px) {
  .hero-grid-lay {
    gap: 1.5rem;
  }
}
@media (max-width: 767px) {
  .hero-grid-lay {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 1.25rem;
    padding: 1.25rem 0 1.75rem;
  }
}

/* Avatar column */
.hero-av-col {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hero-av-ring {
  width: 152px;
  height: 152px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(145deg, var(--gold) 0%, var(--accent) 100%);
  padding: 4px;
  position: relative;
  box-shadow:
    0 0 0 8px rgba(255,255,255,.06),
    0 0 0 18px rgba(255,255,255,.025),
    var(--sh-hero);
  animation: ringPulse 5s ease-in-out infinite;
}
.hero-av-ring.incomplete {
  background: linear-gradient(145deg, #FBBF24 0%, #F59E0B 100%);
}
.hero-av-inner {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
  background: rgba(0,0,0,.25);
}
.hero-av-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Verification pin */
.hero-verify-pin {
  width: 50px;
  height: 50px;
  position: absolute;
  bottom: -2px;
  right: -2px;
  filter: drop-shadow(0 3px 10px rgba(0,0,0,.5));
}

/* Role ribbon */
.hero-role-ribbon {
  margin-top: .9rem;
  background: rgba(255,255,255,.09);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 30px;
  padding: .3rem .9rem;
  font-size: .7rem;
  font-weight: 900;
  color: var(--gold);
  white-space: nowrap;
  letter-spacing: .4px;
  text-align: center;
}

/* Completion hint (owner only) */
.hero-completion-hint {
  margin-top: .55rem;
  font-size: .68rem;
  font-weight: 800;
  color: rgba(255,255,255,.45);
  text-align: center;
}

/* Info column */
@media (max-width: 767px) {
  .hero-info-col {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}

/* Live viewer counter */
.hero-live {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  margin-bottom: .7rem;
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  padding: .25rem .8rem;
  font-size: .72rem;
  font-weight: 700;
  color: rgba(255,255,255,.55);
}
.live-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ok);
  box-shadow: 0 0 7px var(--ok);
  animation: blink 1.6s ease-in-out infinite;
}

/* H1 */
.hero-name {
  font-family: var(--fh);
  font-weight: 900;
  line-height: 1.05;
  font-size: clamp(1.9rem, 4.8vw, 3.2rem);
  color: var(--white);
  margin-bottom: .45rem;
  text-shadow: 0 2px 28px rgba(0,0,0,.4);
}
.hero-name em { color: var(--gold); font-style: italic; }

/* Specialization pill */
.hero-spec-pill {
  display: inline-block;
  background: rgba(255,255,255,.11);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 30px;
  padding: .38rem 1.1rem;
  font-size: .88rem;
  font-weight: 700;
  color: rgba(255,255,255,.9);
  margin-bottom: .65rem;
}

/* Sub line */
.hero-sub {
  font-size: .82rem;
  color: rgba(255,255,255,.48);
  font-weight: 600;
  margin-bottom: .9rem;
}
.hero-sub strong { color: rgba(255,255,255,.75); }
/* ════════════════════════════════════════════════════════════════════
   § 14-B  CREATOR CHAMPION TRUST SHIELDS  v3  —  sc2-  prefix
   Full replacement of old § 14-B. Paste after § 14 in _theme.blade.php.

   THEME:  Light luxury — white card base, warm cream tints, gold
           headline accents, platform brand colours confined to shield
           body only. Clean, editorial, high-trust.

   INLINE STYLES used in blade (data-driven only — not structural):
   • --sc2-delay    stagger animation delay ms
   • --sc2-c1/c2   platform gradient stops (top/bottom)
   • --sc2-c3      platform mid-tone (sparkles, hover tint)
   • --sc2-glow    rgba box-shadow glow
   • --sc2-at      readable accent text colour for captions

   SHIELD SHAPES (clip-path polygons — unique per platform):
   .sc2-shape-yt   YouTube:   6-point pentagon heater
   .sc2-shape-ig   Instagram: true hexagon
   .sc2-shape-li   LinkedIn:  angular 5-point house
   .sc2-shape-fb   Facebook:  7-point crown shield

   KEYFRAMES (all sc2- prefixed, zero collision):
   sc2FadeUp  sc2Shimmer  sc2Pulse  sc2Spark
   sc2GemFlash  sc2ShieldFloat  sc2ModalFade

   GRID VARIANTS:
   .sc2-grid--1  single centred card (max 360px)
   .sc2-grid--2  2-col responsive
   .sc2-grid--3  3-col → 2-col on ≤640px → 1-col on ≤400px
   .sc2-grid--4  4-col → 2-col on ≤768px → 2-col on ≤480px

   THEME VARIABLES USED:
   --card, --border, --head, --muted, --gold, --accent
   --r1, --r2, --rs, --rx, --sh-md, --sh-lg
   --fh, --fb, --ease, --gap
════════════════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════════════════════════════
   WRAPPER — white card, light luxury feel
══════════════════════════════════════════════════════════════════ */
.sc2-wrap {
  background: var(--card);
  border-radius: var(--r2);
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
  overflow: hidden;
  position: relative;
  transition: box-shadow .3s var(--ease);
}
.sc2-wrap:hover { box-shadow: var(--sh-lg); }


/* ══════════════════════════════════════════════════════════════════
   DECORATIVE LIGHT FIELD (CSS only — zero images, zero HTTP)
   Soft diagonal rays + floating dots for a "trophy cabinet lit
   from above" atmosphere.
══════════════════════════════════════════════════════════════════ */
.sc2-lightfield {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 0;
}
.sc2-lf-ray {
  position: absolute;
  width: 1px;
  background: linear-gradient(to bottom, transparent, rgba(251,191,36,.12), transparent);
  top: 0; bottom: 0;
}
.sc2-lfr1 { left: 22%; transform: rotate(-12deg) scaleY(1.4); opacity: .7; }
.sc2-lfr2 { left: 55%; transform: rotate(8deg)  scaleY(1.4); opacity: .5; }
.sc2-lfr3 { right: 18%;transform: rotate(-6deg) scaleY(1.4); opacity: .4; }

.sc2-lf-dot {
  position: absolute;
  border-radius: 50%;
  animation: sc2Pulse 6s ease-in-out infinite;
}
.sc2-lfd1 {
  width: 220px; height: 220px;
  background: radial-gradient(circle, rgba(251,191,36,.07) 0%, transparent 65%);
  top: -60px; right: -40px;
}
.sc2-lfd2 {
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(59,130,246,.05) 0%, transparent 65%);
  bottom: -50px; left: -30px;
  animation-delay: 3s;
}


/* ══════════════════════════════════════════════════════════════════
   HEADER
══════════════════════════════════════════════════════════════════ */
.sc2-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .85rem;
  padding: 1.35rem 1.5rem 1.1rem;
  border-bottom: 1px solid var(--border);
  position: relative;
  z-index: 1;
  background: linear-gradient(to right, rgba(251,191,36,.04) 0%, transparent 60%);
}
.sc2-hd-left {
  display: flex;
  align-items: center;
  gap: .85rem;
  flex: 1;
  min-width: 0;
}

/* Camera badge circle */
.sc2-hd-badge {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--gold), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  flex-shrink: 0;
  box-shadow: 0 4px 14px rgba(251,191,36,.35);
  animation: sc2Pulse 5s ease-in-out infinite;
}

.sc2-hd-title {
  font-family: var(--fh);
  font-size: 1rem;
  font-weight: 900;
  color: var(--head);
  letter-spacing: .01em;
  line-height: 1.1;
  margin: 0;
}
.sc2-hd-sub {
  font-size: .65rem;
  color: var(--muted);
  font-weight: 600;
  margin: .12rem 0 0;
  line-height: 1.4;
}

/* Header right — verified + total reach */
.sc2-hd-right {
  display: flex;
  align-items: center;
  gap: .85rem;
  flex-shrink: 0;
}

/* Verified creator pill */
.sc2-verified-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .38rem .85rem;
  border-radius: 20px;
  background: linear-gradient(135deg, #FFFBEB, #FEF3C7);
  border: 1.5px solid rgba(251,191,36,.45);
  font-size: .62rem;
  font-weight: 800;
  color: #92400E;
  letter-spacing: .04em;
  white-space: nowrap;
  box-shadow: 0 2px 10px rgba(251,191,36,.18);
}

/* Total reach stat */
.sc2-total-reach {
  display: flex;
  align-items: baseline;
  gap: .38rem;
  background: linear-gradient(135deg, #F8FAFC, #F1F5F9);
  border: 1px solid var(--border);
  border-radius: var(--rs);
  padding: .45rem .9rem;
}
.sc2-tr-num {
  font-family: var(--fh);
  font-size: 1.15rem;
  font-weight: 900;
  color: var(--head);
  line-height: 1;
}
.sc2-tr-lbl {
  font-size: .55rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--muted);
  line-height: 1.3;
}


/* ══════════════════════════════════════════════════════════════════
   EYEBROW DIVIDER STRIP
══════════════════════════════════════════════════════════════════ */
.sc2-eyebrow-strip {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .7rem 1.5rem;
  border-bottom: 1px solid var(--border);
  position: relative;
  z-index: 1;
}
.sc2-es-line {
  flex: 1;
  height: 1px;
}
.sc2-es-l { background: linear-gradient(to right, transparent, rgba(251,191,36,.35)); }
.sc2-es-r { background: linear-gradient(to left,  transparent, rgba(251,191,36,.35)); }
.sc2-es-text {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .6rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: rgba(251,191,36,.7);
  white-space: nowrap;
}


/* ══════════════════════════════════════════════════════════════════
   SHIELD GRID
══════════════════════════════════════════════════════════════════ */
.sc2-grid {
  display: grid;
  gap: 0;
  position: relative;
  z-index: 1;
  /* CSS grid-lines via box-shadow on cards — no gap needed */
}
/* 4 platforms (default) */
.sc2-grid--4 { grid-template-columns: repeat(4, 1fr); }
.sc2-grid--3 { grid-template-columns: repeat(3, 1fr); }
.sc2-grid--2 { grid-template-columns: repeat(2, 1fr); }
.sc2-grid--1 { grid-template-columns: 1fr; max-width: 320px; margin: 0 auto; }

@media (max-width: 768px) {
  .sc2-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .sc2-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .sc2-grid--4,
  .sc2-grid--3,
  .sc2-grid--2 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 360px) {
  .sc2-grid--4,
  .sc2-grid--3,
  .sc2-grid--2 { grid-template-columns: 1fr; }
}


/* ══════════════════════════════════════════════════════════════════
   SHIELD CARD — single unit
══════════════════════════════════════════════════════════════════ */
.sc2-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 2rem 1rem 1.5rem;
  gap: 1.1rem;
  position: relative;
  background: var(--card);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  cursor: default;
  transition: background .3s var(--ease), box-shadow .3s var(--ease);
  animation: sc2FadeUp .55s var(--ease) both;
  animation-delay: var(--sc2-delay, 0ms);
  overflow: hidden;
}
/* Remove right border from last in each row */
.sc2-grid--4 .sc2-card:nth-child(4n),
.sc2-grid--3 .sc2-card:nth-child(3n),
.sc2-grid--2 .sc2-card:nth-child(2n),
.sc2-grid--1 .sc2-card { border-right: none; }

/* Remove bottom border from last row */
.sc2-grid--4 .sc2-card:nth-last-child(-n+4),
.sc2-grid--3 .sc2-card:nth-last-child(-n+3),
.sc2-grid--2 .sc2-card:nth-last-child(-n+2),
.sc2-grid--1 .sc2-card:last-child { border-bottom: none; }

/* Hover: subtle platform tint wash */
.sc2-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 0%,
    color-mix(in srgb, var(--sc2-c1) 8%, transparent) 0%,
    transparent 65%
  );
  opacity: 0;
  transition: opacity .4s var(--ease);
  pointer-events: none;
  z-index: 0;
}
/* colour-mix fallback — use rgba custom prop */
@supports not (color: color-mix(in srgb, red, transparent)) {
  .sc2-card::before {
    background: radial-gradient(ellipse at 50% 0%, var(--sc2-glow) 0%, transparent 65%);
  }
}
.sc2-card:hover::before { opacity: 1; }
.sc2-card:hover { background: #FAFBFC; }


/* ══════════════════════════════════════════════════════════════════
   TROPHY ASSEMBLY
   .sc2-trophy wraps aura + shield + sparkles + plinth
══════════════════════════════════════════════════════════════════ */
.sc2-trophy {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  z-index: 1;
}

/* Aura pulse rings */
.sc2-aura {
  position: absolute;
  inset: -12px;
  border-radius: 50%;
  background: radial-gradient(circle, var(--sc2-glow) 0%, transparent 68%);
  opacity: 0;
  transition: opacity .45s var(--ease);
  pointer-events: none;
  animation: sc2Pulse 4s ease-in-out infinite;
}
.sc2-aura2 {
  inset: -24px;
  opacity: 0;
  animation-delay: 1.2s;
}
.sc2-card:hover .sc2-aura  { opacity: .65; }
.sc2-card:hover .sc2-aura2 { opacity: .3; }


/* ══════════════════════════════════════════════════════════════════
   SHIELD BODIES — unique clip-path per platform

   Each .sc2-shield:
   ─ Clip-path defines shape identity
   ─ Platform gradient as background
   ─ Crystal facet layers (positioned spans inside)
   ─ Icon + count floating inside
   ─ Hover: lift + glow drop-shadow + shimmer
══════════════════════════════════════════════════════════════════ */
.sc2-shield {
  position: relative;
  width: 110px;
  height: 130px;
  background: linear-gradient(155deg, var(--sc2-c3) 0%, var(--sc2-c1) 30%, var(--sc2-c2) 75%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex-shrink: 0;
  transition: transform .4s var(--ease), filter .4s var(--ease);
}
.sc2-card:hover .sc2-shield {
  transform: translateY(-6px) scale(1.06);
  filter: drop-shadow(0 8px 26px var(--sc2-glow))
          drop-shadow(0 2px 8px rgba(0,0,0,.12));
}

/* ── Shape: YouTube — Pentagon heater (6-point) ── */
.sc2-shape-yt {
  clip-path: polygon(
    50%  0%,
    97% 16%,
    97% 62%,
    50% 100%,
    3%  62%,
    3%  16%
  );
}

/* ── Shape: Instagram — True hexagon ── */
.sc2-shape-ig {
  clip-path: polygon(
    50%  0%,
    100% 25%,
    100% 75%,
    50%  100%,
    0%   75%,
    0%   25%
  );
}

/* ── Shape: LinkedIn — Angular 5-point house ── */
.sc2-shape-li {
  clip-path: polygon(
    50%  0%,
    100% 38%,
    82%  100%,
    18%  100%,
    0%   38%
  );
}

/* ── Shape: Facebook — 7-point crown shield ── */
.sc2-shape-fb {
  clip-path: polygon(
    0%   28%,
    18%  0%,
    50%  16%,
    82%  0%,
    100% 28%,
    100% 78%,
    50%  100%,
    0%   78%
  );
}

/* Crystal facet layers inside shield */
.sc2-face { position: absolute; pointer-events: none; }
.sc2-face-tl {
  top: 0; left: 0; width: 52%; height: 44%;
  background: linear-gradient(140deg, rgba(255,255,255,.32) 0%, transparent 65%);
}
.sc2-face-tr {
  top: 0; right: 0; width: 36%; height: 32%;
  background: linear-gradient(225deg, rgba(255,255,255,.18) 0%, transparent 65%);
}
.sc2-face-bot {
  bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(0deg, rgba(0,0,0,.28) 0%, transparent);
}
/* Reflex highlight line */
.sc2-face-ref {
  position: absolute;
  top: 24%; left: 12%; right: 12%; height: 1.5px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.55), transparent);
  animation: sc2GemFlash 4s ease-in-out infinite;
}

/* Shimmer sweep on hover */
.sc2-sweep {
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg,
    transparent 25%,
    rgba(255,255,255,.22) 50%,
    transparent 75%
  );
  background-size: 200% 100%;
  opacity: 0;
  transition: opacity .3s;
}
.sc2-card:hover .sc2-sweep {
  opacity: 1;
  animation: sc2Shimmer 1.2s linear infinite;
}

/* Platform icon */
.sc2-sh-icon {
  position: relative;
  z-index: 3;
  width: 36px; height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.4));
  flex-shrink: 0;
}
.sc2-sh-icon svg { width: 100%; height: 100%; }

/* Count inside shield */
.sc2-sh-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-top: 4px;
  position: relative;
  z-index: 3;
}
.sc2-sh-num {
  font-family: var(--fh);
  font-size: 1.05rem;
  font-weight: 900;
  color: rgba(255,255,255,.95);
  line-height: 1;
  text-shadow: 0 1px 4px rgba(0,0,0,.4);
  letter-spacing: -.01em;
}
.sc2-sh-lbl {
  font-size: .46rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.65);
  margin-top: 2px;
}

/* CSS sparkle particles */
.sc2-sp {
  position: absolute;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--sc2-c1);
  box-shadow: 0 0 8px var(--sc2-c1);
  opacity: 0;
  pointer-events: none;
}
.sc2-card:hover .sc2-sp { animation: sc2Spark .9s ease-in-out infinite; }
.sc2-sp1 { top: 8%;  left: 18%; animation-delay: 0s;   }
.sc2-sp2 { top: 6%;  right:15%; animation-delay: .22s; }
.sc2-sp3 { bottom:22%; left:22%;animation-delay: .44s; }
.sc2-sp4 { bottom:20%; right:20%;animation-delay:.65s; }

/* Plinth (trophy base) */
.sc2-plinth {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  margin-top: 2px;
}
.sc2-plinth-stem {
  width: 10px;
  height: 18px;
  background: linear-gradient(to bottom,
    rgba(var(--sc2-c1-raw, 150,150,150), .3),
    rgba(0,0,0,.1)
  );
  /* Fallback using solid colour when CSS vars aren't rgba-extractable */
  background: linear-gradient(to bottom, var(--sc2-glow), rgba(0,0,0,.08));
  border-radius: 0 0 2px 2px;
}
.sc2-plinth-base {
  width: 44px;
  height: 8px;
  border-radius: 4px;
  background: linear-gradient(135deg, #F3F4F6, #E5E7EB);
  border: 1px solid rgba(0,0,0,.08);
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}


/* ══════════════════════════════════════════════════════════════════
   CARD INFO — text below shield
══════════════════════════════════════════════════════════════════ */
.sc2-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .38rem;
  text-align: center;
  width: 100%;
  position: relative;
  z-index: 1;
}

/* Champion title */
.sc2-champion {
  display: flex;
  align-items: center;
  gap: .32rem;
  font-family: var(--fh);
  font-size: .78rem;
  font-weight: 900;
  color: var(--sc2-at, var(--head));
  letter-spacing: .01em;
  line-height: 1.2;
}
.sc2-champion-star { flex-shrink: 0; }

/* Sub-title */
.sc2-sub-title {
  font-size: .6rem;
  font-weight: 700;
  color: var(--muted);
  letter-spacing: .02em;
}

/* Large count stat */
.sc2-stat-block {
  display: flex;
  align-items: baseline;
  gap: .35rem;
  padding: .35rem .85rem;
  border-radius: var(--rs);
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--sc2-c1) 8%, white) 0%,
    white 100%
  );
  border: 1.5px solid;
  border-color: color-mix(in srgb, var(--sc2-c1) 22%, transparent);
  margin-top: .1rem;
}
/* Fallback for browsers without color-mix */
@supports not (color: color-mix(in srgb, red, white)) {
  .sc2-stat-block {
    background: #F8FAFC;
    border-color: rgba(0,0,0,.1);
  }
}
.sc2-stat-num {
  font-family: var(--fh);
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--sc2-at, var(--head));
  line-height: 1;
  letter-spacing: -.02em;
}
.sc2-stat-lbl {
  font-size: .6rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
}

/* Platform chip */
.sc2-platform-chip {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .2rem .6rem;
  border-radius: 20px;
  background: #F1F5F9;
  border: 1px solid var(--border);
  font-size: .58rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
}
.sc2-platform-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--sc2-c1);
  flex-shrink: 0;
  box-shadow: 0 0 5px var(--sc2-glow);
}

/* CTA button */
.sc2-cta {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem 1.1rem;
  border-radius: var(--rs);
  background: linear-gradient(135deg, var(--sc2-c1), var(--sc2-c2));
  color: #fff;
  font-family: var(--fb);
  font-size: .72rem;
  font-weight: 800;
  text-decoration: none;
  transition: all .25s var(--ease);
  box-shadow: 0 3px 12px var(--sc2-glow);
  margin-top: .15rem;
}
.sc2-cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px var(--sc2-glow);
  filter: brightness(1.08);
  color: #fff;
}
.sc2-cta:active { transform: none; }

/* Not linked placeholder */
.sc2-not-linked {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .62rem;
  font-weight: 700;
  color: var(--muted);
  padding: .38rem .8rem;
  border-radius: var(--rs);
  border: 1px dashed var(--border);
  background: #F8FAFC;
  margin-top: .15rem;
}


/* ══════════════════════════════════════════════════════════════════
   FOOTER
══════════════════════════════════════════════════════════════════ */
.sc2-footer {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .9rem 1.5rem;
  border-top: 1px solid var(--border);
  background: linear-gradient(to right, #FFFBEB 0%, #FAFAFA 100%);
  position: relative;
  z-index: 1;
}
.sc2-footer-tooth { flex-shrink: 0; }
.sc2-footer-text {
  font-size: .68rem;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.55;
  flex: 1;
}
.sc2-footer-pill {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  padding: .15rem .55rem;
  border-radius: 20px;
  background: linear-gradient(135deg, #FEF3C7, #FDE68A);
  border: 1px solid rgba(251,191,36,.4);
  font-size: .58rem;
  font-weight: 800;
  color: #92400E;
  letter-spacing: .04em;
  margin-left: .3rem;
}


/* ══════════════════════════════════════════════════════════════════
   KEYFRAMES (all sc2- prefixed)
══════════════════════════════════════════════════════════════════ */
@keyframes sc2FadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: none; }
}
@keyframes sc2Shimmer {
  0%   { background-position: 200% center; }
  100% { background-position: -200% center; }
}
@keyframes sc2Pulse {
  0%,100% { opacity: .75; transform: scale(1);    }
  50%     { opacity: 1;   transform: scale(1.06); }
}
@keyframes sc2Spark {
  0%   { opacity: 0;   transform: translate(0, 0)       scale(1);   }
  25%  { opacity: 1;   transform: translate(-5px, -10px) scale(1.4); }
  75%  { opacity: .6;  transform: translate(4px, -20px)  scale(.8);  }
  100% { opacity: 0;   transform: translate(-2px, -28px) scale(.4);  }
}
@keyframes sc2GemFlash {
  0%,100% { opacity: 0; }
  40%,60% { opacity: 1; }
}
@keyframes sc2ShieldFloat {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-5px); }
}

/* ════════════════════════════════════════════════════════════════════
   § 6  HERO CHIPS
   All hchip variants in one place.
   hc-pay and hc-consult are NEW — added for _hero.blade.php pay level
   and consultation chips. No duplicates below.
════════════════════════════════════════════════════════════════════ */
.hero-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .44rem;
}
@media (max-width: 767px) {
  .hero-chips { justify-content: center; }
}

/* Base chip */
.hchip {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 20px;
  padding: .26rem .75rem;
  color: rgba(255,255,255,.72);
  font-size: .73rem;
  font-weight: 700;
  transition: background .22s;
}
.hchip:hover { background: rgba(255,255,255,.14); }

/* Variants */
.hc-gold    { color: var(--gold);   border-color: rgba(255,255,255,.2); }
.hc-accent  { color: var(--accent); border-color: rgba(255,255,255,.15); }
.hc-ok      { color: #6EE7B7; border-color: rgba(110,231,183,.25); background: rgba(110,231,183,.07); }
.hc-warn    { color: #FBBF24; border-color: rgba(251,191,36,.3);   background: rgba(251,191,36,.08); }
.hc-locked  { color: #F87171; border-color: rgba(248,113,113,.3);  background: rgba(248,113,113,.07); }

/* Pay level chip — shown when looking_for_work + expected_pay exists */
.hc-pay {
  color: var(--gold);
  border-color: rgba(255,225,100,.25);
  background: rgba(255,225,100,.08);
}

/* Online consultation chip */
.hc-consult {
  color: #6EE7B7;
  border-color: rgba(110,231,183,.25);
  background: rgba(16,185,129,.07);
}


/* ════════════════════════════════════════════════════════════════════
   § 7  TICKER / TRUST MARQUEE
════════════════════════════════════════════════════════════════════ */
.ticker-bar {
  background: rgba(255,255,255,.025);
  border-top: 1px solid rgba(255,255,255,.06);
  padding: .6rem 0;
  overflow: hidden;
  margin-top: 1.75rem;
}
.ticker-inner {
  display: flex;
  gap: 3rem;
  white-space: nowrap;
  animation: tickerScroll 26s linear infinite;
}
.ti {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  color: rgba(255,255,255,.3);
  font-size: .72rem;
  font-weight: 700;
}
.ti strong { color: var(--gold); }

@media (max-width: 767px) {
  .ticker-bar { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .ticker-inner {
    animation: none;
    transform: none;
  }
}


/* ════════════════════════════════════════════════════════════════════
   § 8  PAGE LAYOUT
════════════════════════════════════════════════════════════════════ */
.dp-page {
  padding: 2rem 0 6rem;
}
@media (min-width: 992px) {
  .dp-page { padding: 2.5rem 0 4rem; }
}
.dp-sticky { position: sticky; top: 1.5rem; }
.dp-s      { margin-bottom: var(--gap); }

/* Section divider */
.dp-divider {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin: 1.5rem 0;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .8px;
}
.dp-divider::before,
.dp-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border), transparent);
}


/* ════════════════════════════════════════════════════════════════════
   § 9  BASE CARD
   All partial cards extend .dp-card.
   .dp-card-hd-title and .dp-card-hd-sub are EXPLICIT CLASS versions
   of the old element selectors (.dp-card-hd h3 / small) — both work.
════════════════════════════════════════════════════════════════════ */
.dp-card {
  background: var(--card);
  border-radius: var(--r2);
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: box-shadow .3s var(--ease);
}
.dp-card:hover { box-shadow: var(--sh-lg); }

.dp-card-hd {
  padding: 1.2rem 1.5rem;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: .85rem;
}
.dp-card-hd-ic {
  width: 40px;
  height: 40px;
  border-radius: var(--rs);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  flex-shrink: 0;
}
/* Element selectors (backward compat) */
.dp-card-hd h2,
.dp-card-hd h3 {
  font-family: var(--fh);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ink);
  margin: 0;
  line-height: 1.25;
}
.dp-card-hd small { color: var(--muted); font-size: .72rem; display: block; margin-top: .1rem; }

/* Explicit class versions (used by new partials) */
.dp-card-hd-title {
  font-family: var(--fh);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ink);
  margin: 0;
  line-height: 1.25;
}
.dp-card-hd-sub {
  color: var(--muted);
  font-size: .72rem;
  display: block;
  margin-top: .1rem;
}

.dp-card-bd { padding: 1.5rem; }
@media (max-width: 767px) { .dp-card-bd { padding: 1.15rem; } }

/* ── LUXURY GOLDEN THEME VARIABLES ── */
.lux-vault {
    --bg-base: #0a0a0c;
    --bg-surface: #121215;
    --bg-card: #17171c;
    --gold-main: #D4AF37;
    --gold-light: #F9F1D8;
    --gold-dark: #997A15;
    --text-main: #FDFCF0;
    --text-muted: #94A3B8;
    --border-subtle: rgba(212, 175, 55, 0.18);
    --border-glow: rgba(212, 175, 55, 0.35);
    
    /* Tier Accents */
    --t-bronze: #CD7F32;
    --t-iron: #94A3B8;
    --t-silver: #E2E8F0;
    --t-gold: #F59E0B;
    --t-emerald: #10B981;
    --t-diamond: #38BDF8;

    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: var(--text-main);
    background: linear-gradient(180deg, #0e0e12 0%, #070709 100%);
    border-radius: 16px;
    padding: clamp(1rem, 2.5vw, 1.4rem);
    border: 1px solid var(--border-subtle);
    position: relative;
    overflow: hidden;
    box-shadow: 0 12px 30px rgba(0,0,0,0.45);
}

/* Background ambient glow */
.lux-vault::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle at 50% 0%, rgba(212, 175, 55, 0.04), transparent 60%);
    pointer-events: none;
}

/* ── HEADER ── */
.lux-hd {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.9rem;
    flex-wrap: wrap;
    position: relative;
    z-index: 2;
}
.lux-eyebrow {
    font-size: 0.58rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--gold-main);
    font-weight: 700;
    margin-bottom: 0.2rem;
}
.lux-title {
    font-family: 'Playfair Display', 'Didot', 'Georgia', serif;
    font-size: clamp(1.15rem, 2.6vw, 1.45rem);
    font-weight: 600;
    color: var(--gold-light);
    margin-bottom: 0.15rem;
    letter-spacing: 0.01em;
}
.lux-sub {
    font-size: 0.74rem;
    color: var(--text-muted);
}
.lux-sub strong { color: var(--gold-light); }

.lux-rank-badge {
    padding: 0.3rem 0.9rem;
    border-radius: 50px;
    font-size: 0.58rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border: 1px solid;
    background: rgba(212, 175, 55, 0.05);
    backdrop-filter: blur(10px);
}
.lux-rank-badge.unranked { border-color: #333; color: #777; background: transparent; }
.lux-rank-badge.bronze { border-color: var(--t-bronze); color: var(--t-bronze); }
.lux-rank-badge.iron { border-color: var(--t-iron); color: var(--t-iron); }
.lux-rank-badge.silver { border-color: var(--t-silver); color: var(--t-silver); }
.lux-rank-badge.gold { border-color: var(--t-gold); color: var(--t-gold); }
.lux-rank-badge.diamond { border-color: var(--t-diamond); color: var(--t-diamond); }
.lux-rank-badge.legendary { 
    border-color: var(--gold-main); 
    color: var(--bg-base); 
    background: linear-gradient(135deg, var(--gold-light), var(--gold-main));
    box-shadow: 0 0 12px rgba(212, 175, 55, 0.35);
}

/* ── PROGRESS BAR ── */
.lux-progress-wrap { margin-bottom: 0.9rem; position: relative; z-index: 2; }
.lux-progress-meta {
    display: flex;
    justify-content: space-between;
    font-size: 0.56rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--text-muted);
    margin-bottom: 0.35rem;
}
.lux-progress-meta span:last-child { color: var(--gold-main); }
.lux-track {
    height: 3px;
    background: #1e1e24;
    border-radius: 3px;
    overflow: hidden;
}
.lux-fill {
    height: 100%;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--gold-dark), var(--gold-light), var(--gold-main));
    background-size: 200% 100%;
    animation: luxShimmer 3s infinite linear;
    transition: width 1s cubic-bezier(0.4, 0, 0.2, 1);
}
@keyframes luxShimmer { to { background-position: 200% 0; } }

/* ── GRID & COMPACT SHIELDS ── */
.lux-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 0.55rem;
    margin-bottom: 0.9rem;
    position: relative;
    z-index: 2;
}
@media(max-width: 1080px) { .lux-grid { grid-template-columns: repeat(3, 1fr); gap: 0.55rem; } }
@media(max-width: 580px) { .lux-grid { grid-template-columns: repeat(2, 1fr); gap: 0.45rem; } }

.lux-card {
    height: 134px;
    perspective: 1000px;
    cursor: pointer;
    outline: none;
    position: relative;
    --tier-color: var(--text-muted);
}
.lux-card[data-t="bronze"] { --tier-color: var(--t-bronze); }
.lux-card[data-t="iron"] { --tier-color: var(--t-iron); }
.lux-card[data-t="silver"] { --tier-color: var(--t-silver); }
.lux-card[data-t="gold"] { --tier-color: var(--t-gold); }
.lux-card[data-t="emerald"] { --tier-color: var(--t-emerald); }
.lux-card[data-t="diamond"] { --tier-color: var(--t-diamond); }

.lux-card.locked { opacity: 0.88; }
.lux-card.locked .lux-face-front {
    border-color: rgba(239, 68, 68, 0.24);
    background: linear-gradient(180deg, #140808, #0b0404);
}
.lux-card.locked:hover .lux-face-front {
    border-color: rgba(239, 68, 68, 0.65);
    box-shadow: 0 6px 18px -6px rgba(239, 68, 68, 0.45);
}
.lux-card.locked .lux-status-dot {
    background: #EF4444;
    box-shadow: 0 0 8px rgba(239, 68, 68, 0.85);
}
.lux-card.locked .lux-face-back {
    border-color: rgba(239, 68, 68, 0.45);
    background: linear-gradient(180deg, #170707, #0e0404);
}
.lux-card.locked .lux-back-status { color: #EF4444; }

.lux-flip {
    position: relative;
    width: 100%;
    height: 100%;
    transform-style: preserve-3d;
    transition: transform 0.55s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.lux-card:hover .lux-flip, 
.lux-card:focus-within .lux-flip {
    transform: rotateY(180deg);
}

.lux-face {
    position: absolute;
    inset: 0;
    border-radius: 11px;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    box-sizing: border-box;
}

/* CARD FRONT */
.lux-face-front {
    background: var(--bg-surface);
    border: 1px solid rgba(255,255,255,0.06);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    padding: 0.45rem 0.4rem 0.5rem;
    transition: all 0.22s ease;
}
.lux-card:not(.locked) .lux-face-front {
    background: linear-gradient(180deg, #16161a 0%, #0d0d10 100%);
    border-color: rgba(255, 255, 255, 0.08);
}
.lux-card:not(.locked):hover .lux-face-front {
    border-color: var(--tier-color);
    box-shadow: 0 8px 20px -8px var(--tier-color);
    transform: translateY(-2px);
}

.lux-card-top {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    line-height: 1;
    padding: 0 0.15rem;
}
.lux-seq {
    font-size: 0.58rem;
    font-family: monospace, sans-serif;
    color: var(--tier-color);
    opacity: 0.6;
    font-weight: 700;
}
.lux-status-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #374151;
}
.lux-card:not(.locked) .lux-status-dot {
    background: var(--tier-color);
    box-shadow: 0 0 6px var(--tier-color);
}

.lux-sym-wrap {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.035);
    border: 1px solid rgba(255, 255, 255, 0.07);
    margin: 0.15rem auto;
    transition: all 0.22s ease;
}
.lux-card:not(.locked) .lux-sym-wrap {
    background: radial-gradient(circle, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.01) 70%);
    border-color: rgba(255,255,255,0.12);
}
.lux-card:not(.locked):hover .lux-sym-wrap {
    border-color: var(--tier-color);
    box-shadow: 0 0 10px rgba(255,255,255,0.12);
    transform: scale(1.06);
}
.lux-emoji {
    font-size: 1.25rem;
    line-height: 1;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
}
.lux-card-title {
    font-size: 0.72rem;
    font-weight: 700;
    color: #F8FAFC;
    text-align: center;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    margin: 0;
}
.lux-card-sub {
    font-size: 0.53rem;
    font-weight: 600;
    color: #94A3B8;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    margin-top: 0.1rem;
}

/* CARD BACK */
.lux-face-back {
    transform: rotateY(180deg);
    background: #141418;
    border: 1px solid var(--tier-color);
    padding: 0.45rem 0.45rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.lux-back-hd {
    display: flex;
    justify-content: space-between;
    align-items: center;
    line-height: 1;
    margin-bottom: 0.2rem;
}
.lux-back-tier {
    font-size: 0.46rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--tier-color);
}
.lux-back-seq {
    font-size: 0.48rem;
    font-family: monospace, sans-serif;
    color: var(--tier-color);
    opacity: 0.5;
    font-weight: 700;
}
.lux-back-title {
    font-size: 0.68rem;
    font-weight: 700;
    color: #FFF;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 0.25rem;
}
.lux-back-desc {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    margin-bottom: auto;
}
.lux-back-line {
    font-size: 0.51rem;
    line-height: 1.2;
    color: #CBD5E1;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.lux-back-line .lux-k {
    font-weight: 800;
    color: #94A3B8;
    text-transform: uppercase;
    font-size: 0.46rem;
    margin-right: 2px;
}
.lux-back-ft {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 0.2rem;
    padding-top: 0.2rem;
    border-top: 1px solid rgba(255,255,255,0.06);
    line-height: 1;
}
.lux-back-status {
    font-size: 0.5rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}
.lux-back-status.earned { color: var(--gold-main); }
.lux-back-status.locked { color: #EF4444; }

.lux-btn-claim {
    font-size: 0.48rem;
    font-weight: 700;
    padding: 2px 5px;
    border-radius: 3px;
    background: rgba(239, 68, 68, 0.18);
    border: 1px solid rgba(239, 68, 68, 0.4);
    color: #FCA5A5;
    text-decoration: none;
    transition: all 0.2s;
}
.lux-btn-claim:hover {
    background: #EF4444;
    color: #FFF;
}

/* ── PIPS TRACKER ── */
.lux-pips-wrap {
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 8px;
    padding: 0.5rem 0.8rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-bottom: 0.6rem;
    position: relative;
    z-index: 2;
}
.lux-pips { display: flex; gap: 0.35rem; }
.lux-pip {
    width: 18px;
    height: 3px;
    border-radius: 2px;
    background: #27272a;
}
.lux-pip.earned[data-t="bronze"] { background: var(--t-bronze); box-shadow: 0 0 6px var(--t-bronze); }
.lux-pip.earned[data-t="iron"] { background: var(--t-iron); box-shadow: 0 0 6px var(--t-iron); }
.lux-pip.earned[data-t="silver"] { background: var(--t-silver); box-shadow: 0 0 6px var(--t-silver); }
.lux-pip.earned[data-t="gold"] { background: var(--t-gold); box-shadow: 0 0 6px var(--t-gold); }
.lux-pip.earned[data-t="emerald"] { background: var(--t-emerald); box-shadow: 0 0 6px var(--t-emerald); }
.lux-pip.earned[data-t="diamond"] { background: var(--t-diamond); box-shadow: 0 0 6px var(--t-diamond); }
.lux-pips-text { font-size: 0.7rem; color: var(--text-muted); }
.lux-pips-text strong { color: var(--gold-light); }

/* ── LEGENDARY SEAL ── */
.lux-seal {
    border-radius: 16px;
    border: 1px solid var(--border-glow);
    background: linear-gradient(180deg, rgba(212,175,55,0.08), rgba(0,0,0,0.5));
    padding: clamp(2rem, 5vw, 4rem) 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    animation: sealReveal 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) both;
    position: relative;
    z-index: 2;
}
@keyframes sealReveal { 
    from { opacity: 0; transform: scale(0.95) translateY(20px); } 
    to { opacity: 1; transform: none; } 
}
.lux-crown {
    font-size: clamp(3rem, 8vw, 4.5rem);
    filter: drop-shadow(0 10px 20px rgba(212,175,55,0.4));
    margin-bottom: 1rem;
    animation: crownFloat 4s ease-in-out infinite;
}
@keyframes crownFloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }
.lux-seal-eyebrow {
    font-size: 0.65rem;
    font-weight: 800;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--gold-main);
}
.lux-seal-title {
    font-family: var(--serif);
    font-size: clamp(1.8rem, 5vw, 2.8rem);
    color: var(--gold-light);
    margin: 0.2rem 0 1rem;
    line-height: 1.1;
}
.lux-seal-name {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text-main);
    margin-bottom: 0.5rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--border-subtle);
    width: 60%;
    max-width: 300px;
}
.lux-seal-name em { color: var(--gold-main); font-style: normal; font-family: var(--serif); font-size: 1.1em;}
.lux-seal-desc {
    font-size: 0.85rem;
    color: var(--text-muted);
    max-width: 500px;
    line-height: 1.6;
    margin-bottom: 2rem;
}
.lux-seal-desc strong { color: var(--gold-light); font-weight: 600; }
.lux-perks {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    width: 100%;
    max-width: 600px;
}
@media(max-width: 600px) { .lux-perks { grid-template-columns: 1fr; } }
.lux-perks li {
    display: flex;
    gap: 0.6rem;
    text-align: left;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border-subtle);
    padding: 0.85rem 1rem;
    border-radius: 10px;
    font-size: 0.75rem;
    color: #CCC;
    align-items: flex-start;
}
.lux-perks li strong { color: var(--gold-main); display: block; font-size: 0.8rem; margin-bottom: 0.1rem;}
.lux-perks-icon { color: var(--gold-main); font-size: 1rem; margin-top: -0.1rem; }

/* ── FOOTER ── */
.lux-ft {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.6rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--border-subtle);
    position: relative;
    z-index: 2;
}
.lux-ft-text { font-size: 0.7rem; color: var(--text-muted); }
.lux-ft-text strong { color: var(--gold-light); }
.lux-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: transparent;
    border: 1px solid var(--gold-main);
    color: var(--gold-main);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    padding: 0.5rem 1.25rem;
    border-radius: 50px;
    text-transform: uppercase;
    text-decoration: none;
    transition: all 0.3s ease;
}
.lux-btn:hover {
    background: var(--gold-main);
    color: var(--bg-base);
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.3);
}
/* ════════════════════════════════════════════════════════════════════
   § 11  BIO CARD  —  bio2-  prefix
   Replace the old § 11 block in _theme.blade.php with this.
   Old .bio-card, .bio-hd, .btt* classes are still present for any
   other partial that references them. bio2- is the NEW system.
   Depends on: --head, --tag, --accent, --gold, --goldDk,
               --card, --card-tint, --card-bd, --border,
               --r1, --r2, --rs, --rx, --sh-md, --sh-lg,
               --fh, --fb, --muted, --ok, --ease, barShimmer keyframe
════════════════════════════════════════════════════════════════════ */

/* ── Outer card ──────────────────────────────────────────────────── */
.bio2-card {
  position: relative;
  border-radius: var(--r2);
  overflow: hidden;
  background: var(--card-tint);
  border: 1.5px solid var(--card-bd);
  box-shadow: var(--sh-md);
  transition: box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.bio2-card:hover {
  box-shadow: var(--sh-lg);
  border-color: var(--accent);
}

/* ── Animated top rail (replaces flat accent bar) ────────────────── */
.bio2-rail {
  position: relative;
  height: 4px;
  background: linear-gradient(90deg,
    transparent 0%,
    var(--card-bd) 15%,
    var(--card-bd) 85%,
    transparent 100%
  );
  overflow: hidden;
}
.bio2-rail-pulse {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent     0%,
    var(--gold)    30%,
    var(--accent)  50%,
    var(--gold)    70%,
    transparent   100%
  );
  background-size: 200% 100%;
  animation: barShimmer 3s linear infinite;
}

/* ── Header ──────────────────────────────────────────────────────── */
.bio2-hd {
  display: flex;
  align-items: flex-start;
  gap: 1.1rem;
  padding: 1.35rem 1.5rem 0;
  position: relative;
}

/* Glyph tile */
.bio2-glyph {
  position: relative;
  width: 58px;
  height: 58px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.bio2-glyph-char {
  position: relative;
  z-index: 1;
  font-size: 1.75rem;
  line-height: 1;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.25));
}
.bio2-glyph-ring {
  position: absolute;
  inset: 0;
  border-radius: var(--r1);
  background: linear-gradient(145deg, var(--head), var(--tag));
  opacity: .18;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
  border: 1.5px solid var(--card-bd);
  transition: opacity .3s;
}
.bio2-card:hover .bio2-glyph-ring { opacity: .28; }

/* Identity stack */
.bio2-ident {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .3rem;
  padding-top: .1rem;
}

/* Role pill */
.bio2-role-pill {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  background: rgba(255,255,255,.06);
  border: 1px solid var(--card-bd);
  border-radius: 30px;
  padding: .2rem .75rem;
  font-size: .65rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .55px;
  color: var(--tag);
  align-self: flex-start;
}
.bio2-role-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 6px var(--accent);
  animation: blink 2s ease-in-out infinite;
  flex-shrink: 0;
}

/* Name */
.bio2-name {
  font-family: var(--fh);
  font-weight: 900;
  font-size: clamp(1.1rem, 2.8vw, 1.45rem);
  color: var(--head);
  line-height: 1.1;
  margin: 0;
  letter-spacing: -.02em;
}
.bio2-name-prefix {
  color: var(--tag);
  font-weight: 700;
  font-style: italic;
}

/* Spec line */
.bio2-spec {
  font-size: .82rem;
  font-weight: 700;
  color: var(--muted);
  margin: 0;
  letter-spacing: .01em;
}

/* Verification corner mark */
.bio2-verify-corner {
  position: absolute;
  top: 1.15rem;
  right: 1.25rem;
  opacity: .85;
  transition: opacity .2s, transform .2s;
}
.bio2-card:hover .bio2-verify-corner {
  opacity: 1;
  transform: scale(1.08);
}

/* ── Bio body ────────────────────────────────────────────────────── */
.bio2-body {
  padding: 1.2rem 1.5rem;
  position: relative;
}

/* Decorative opening quote mark */
.bio2-quote-mark {
  position: absolute;
  top: .4rem;
  left: 1.1rem;
  font-family: var(--fh);
  font-size: 5rem;
  line-height: 1;
  color: var(--head);
  opacity: .06;
  pointer-events: none;
  user-select: none;
  font-style: italic;
}

/* Bio text */
.bio2-text {
  font-size: .9rem;
  font-weight: 500;
  color: var(--ink2);
  line-height: 1.8;
  margin: 0;
  padding: .65rem 0 .65rem 1.1rem;
  border-left: 3px solid var(--accent);
  font-style: italic;
  position: relative;
}

/* Absent bio (public viewer) */
.bio2-text-absent {
  font-size: .82rem;
  color: var(--muted);
  font-style: italic;
  opacity: .65;
  margin: 0;
  padding: .5rem 0;
}

/* Owner empty state */
.bio2-empty {
  display: flex;
  align-items: center;
  gap: .9rem;
  flex-wrap: wrap;
  padding: .95rem 1.1rem;
  border-radius: var(--r1);
  border: 1.5px dashed var(--card-bd);
  background: rgba(255,255,255,.025);
}
.bio2-empty-ic   { font-size: 1.4rem; flex-shrink: 0; }
.bio2-empty-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.bio2-empty-body strong {
  font-size: .84rem;
  font-weight: 800;
  color: var(--head);
}
.bio2-empty-body span {
  font-size: .75rem;
  color: var(--muted);
  line-height: 1.55;
}
.bio2-empty-cta {
  font-size: .74rem;
  font-weight: 900;
  padding: .48rem 1rem;
  border-radius: var(--rs);
  background: linear-gradient(135deg, var(--head), var(--tag));
  color: var(--gold);
  text-decoration: none;
  flex-shrink: 0;
  transition: opacity .2s, transform .2s;
  white-space: nowrap;
}
.bio2-empty-cta:hover { opacity: .85; transform: translateY(-1px); color: var(--gold); }

/* ── Ribbon chips ────────────────────────────────────────────────── */
.bio2-ribbon {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  padding: 0 1.5rem 1.2rem;
}

.bio2-chip {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  padding: .28rem .82rem;
  border-radius: 30px;
  font-size: .73rem;
  font-weight: 700;
  border: 1.5px solid var(--card-bd);
  background: var(--card-tint);
  color: var(--head);
  transition: border-color .2s, background .2s, transform .2s;
  cursor: default;
}
.bio2-chip:hover { transform: translateY(-1px); }

.bio2-chip-ic { font-size: .85rem; line-height: 1; flex-shrink: 0; }

/* Chip variants */
.bio2-chip--hire {
  background: rgba(16,185,129,.07);
  border-color: rgba(16,185,129,.28);
  color: #065F46;
}
.bio2-chip--hire:hover { border-color: rgba(16,185,129,.5); }

.bio2-chip--consult {
  background: rgba(129,140,248,.07);
  border-color: rgba(129,140,248,.3);
  color: #3730A3;
}
.bio2-chip--consult:hover { border-color: rgba(129,140,248,.55); }

.bio2-chip--reg {
  background: rgba(59,130,246,.06);
  border-color: rgba(59,130,246,.22);
  color: #1E40AF;
}

.bio2-chip--exp {
  background: rgba(245,158,11,.06);
  border-color: rgba(245,158,11,.22);
  color: #92400E;
}

.bio2-chip--idle {
  opacity: .5;
  background: transparent;
}

/* ── Trust footer ────────────────────────────────────────────────── */
.bio2-trust {
  border-top: 1.5px solid var(--card-bd);
  padding: .85rem 1.5rem;
  display: flex;
  align-items: center;
  gap: .85rem;
  flex-wrap: wrap;
  background: rgba(255,255,255,.025);
}

.bio2-trust-label {
  font-size: .6rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .7px;
  color: var(--muted);
  white-space: nowrap;
  flex-shrink: 0;
  opacity: .65;
}

.bio2-badge-row {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}

.bio2-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .3rem .82rem;
  border-radius: var(--rx);
  font-size: .72rem;
  font-weight: 700;
  border: 1.5px solid transparent;
  transition: all .22s var(--ease);
  cursor: default;
}
.bio2-badge:hover { transform: translateY(-2px); box-shadow: var(--sh-xs); }

.bio2-badge-svg {
  flex-shrink: 0;
  display: block;
}

/* Badge colour variants */
.bio2-badge--green {
  background: #F0FDF4;
  border-color: #A7F3D0;
  color: #065F46;
}
.bio2-badge--blue {
  background: #EFF6FF;
  border-color: #BFDBFE;
  color: #1E40AF;
}
.bio2-badge--amber {
  background: #FFFBEB;
  border-color: #FDE68A;
  color: #92400E;
}
.bio2-badge--teal {
  background: #F0FDFA;
  border-color: #99F6E4;
  color: #0F766E;
}
.bio2-badge--indigo {
  background: #EEF2FF;
  border-color: #C7D2FE;
  color: #3730A3;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 576px) {
  .bio2-hd         { gap: .85rem; padding: 1.1rem 1.15rem 0; }
  .bio2-body       { padding: 1rem 1.15rem; }
  .bio2-ribbon     { padding: 0 1.15rem 1rem; }
  .bio2-trust      { padding: .75rem 1.15rem; gap: .6rem; }
  .bio2-trust-label{ display: none; }
  .bio2-quote-mark { font-size: 3.5rem; }
  .bio2-name       { font-size: 1.15rem; }
  .bio2-verify-corner { top: .9rem; right: .9rem; }
  .bio2-empty      { flex-direction: column; text-align: center; }
  .bio2-empty-cta  { align-self: center; }
}

@media (max-width: 380px) {
  .bio2-glyph { width: 46px; height: 46px; }
  .bio2-glyph-char { font-size: 1.45rem; }
}


/* ════════════════════════════════════════════════════════════════════
   § 12-B  EXPERIENCE  —  exp2-  prefix
   Add after the old § 12 exp- block in _theme.blade.php.
   Old .exp-blk / .exp-title / .exp-years / .exp-clinic untouched.

   Two states:
     .exp2-card--has    → experienced professional (green accent)
     .exp2-card--fresh  → fresh graduate / entry-level (amber accent)

   ALL accent colors are SEMANTIC (green = active, amber = new) — not
   role-theme colors. Role-theme vars (--head, --tag, --accent, --gold)
   are used for structural elements only.

   Depends on: --head, --tag, --accent, --gold, --card, --card-tint,
               --card-bd, --border, --muted, --r1, --r2, --rs,
               --sh-sm, --sh-md, --fh, --fb, --ease, blink keyframe
════════════════════════════════════════════════════════════════════ */

/* ── Outer card shell ────────────────────────────────────────────── */
.exp2-card {
  display: flex;
  align-items: stretch;
  gap: 0;
  border-radius: var(--r1);
  overflow: hidden;
  box-shadow: var(--sh-sm);
  border: 1.5px solid var(--card-bd);
  background: var(--card-tint);
  transition: box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.exp2-card:hover {
  box-shadow: var(--sh-md);
}

/* ── State-specific card colours ─────────────────────────────────── */
.exp2-card--has {
  border-color: rgba(16,185,129,.22);
  background: linear-gradient(
    135deg,
    rgba(16,185,129,.04) 0%,
    var(--card-tint) 60%
  );
}
.exp2-card--has:hover { border-color: rgba(16,185,129,.45); }

.exp2-card--fresh {
  border-color: rgba(245,158,11,.2);
  background: linear-gradient(
    135deg,
    rgba(245,158,11,.04) 0%,
    var(--card-tint) 60%
  );
}
.exp2-card--fresh:hover { border-color: rgba(245,158,11,.4); }

/* ── Left accent bar ─────────────────────────────────────────────── */
.exp2-accent {
  width: 4px;
  flex-shrink: 0;
  position: relative;
  overflow: hidden;
}
.exp2-accent-line {
  position: absolute;
  inset: 0;
  border-radius: 0;
}
.exp2-card--has   .exp2-accent-line { background: #10B981; }
.exp2-card--fresh .exp2-accent-line { background: #F59E0B; }

/* ── Inner content ───────────────────────────────────────────────── */
.exp2-inner {
  flex: 1;
  min-width: 0;
  padding: 1.1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .65rem;
}

/* ── Top row ─────────────────────────────────────────────────────── */
.exp2-top {
  display: flex;
  flex-direction: column;
  gap: .45rem;
}

/* Label row — icon · label text · status pill */
.exp2-label-row {
  display: flex;
  align-items: center;
  gap: .45rem;
  flex-wrap: wrap;
}
.exp2-ic {
  flex-shrink: 0;
  color: var(--muted);
  display: block;
}
.exp2-card--has   .exp2-ic { color: #10B981; }
.exp2-card--fresh .exp2-ic { color: #F59E0B; }

.exp2-label {
  font-size: .68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .7px;
  color: var(--muted);
}

/* Status pill */
.exp2-status-pill {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  font-size: .62rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .4px;
  padding: .18rem .65rem;
  border-radius: 30px;
}
.exp2-status-pill--active {
  background: rgba(16,185,129,.1);
  border: 1px solid rgba(16,185,129,.28);
  color: #065F46;
}
.exp2-status-pill--fresh {
  background: rgba(245,158,11,.1);
  border: 1px solid rgba(245,158,11,.28);
  color: #92400E;
}
.exp2-status-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #10B981;
  box-shadow: 0 0 5px #10B981;
  animation: blink 1.8s ease-in-out infinite;
}

/* ── Years display ───────────────────────────────────────────────── */
.exp2-years {
  display: flex;
  align-items: baseline;
  gap: .35rem;
  flex-wrap: wrap;
  line-height: 1;
}
.exp2-years-num {
  font-family: var(--fh);
  font-size: 2.2rem;
  font-weight: 900;
  color: var(--head);
  letter-spacing: -.03em;
  line-height: 1;
}
.exp2-years-unit {
  font-family: var(--fh);
  font-size: .88rem;
  font-weight: 700;
  color: var(--tag);
  align-self: flex-end;
  padding-bottom: .18rem;
}
/* Fallback when number can't be split */
.exp2-years-full {
  font-family: var(--fh);
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--head);
}

/* ── Clinic row ──────────────────────────────────────────────────── */
.exp2-clinic-row {
  display: flex;
  align-items: center;
  gap: .38rem;
  flex-wrap: wrap;
}
.exp2-clinic-ic { flex-shrink: 0; color: var(--muted); }
.exp2-clinic-name {
  font-size: .82rem;
  font-weight: 700;
  color: var(--head);
}
.exp2-clinic-sep {
  color: var(--card-bd);
  font-size: .85rem;
}
.exp2-clinic-city {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  font-size: .75rem;
  font-weight: 600;
  color: var(--muted);
}

/* ── Fresh graduate text ─────────────────────────────────────────── */
.exp2-fresh-text {
  font-size: .84rem;
  font-weight: 600;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
  font-style: italic;
  border-left: 2px solid rgba(245,158,11,.3);
  padding-left: .75rem;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 480px) {
  .exp2-inner       { padding: .9rem 1rem; }
  .exp2-years-num   { font-size: 1.75rem; }
  .exp2-label-row   { gap: .35rem; }
}

/* ════════════════════════════════════════════════════════════════════
   § 13-B  WORK HISTORY  —  job2-  prefix
   Add after the old § 13 job- block in _theme.blade.php.
   Old .job-item/.job-name/.job-meta left untouched for backward compat.

   Design language:  Structured editorial — vertical numbered timeline.
   Every value driven by role-theme CSS vars. No hardcoded brand colors
   except the "current" green signal (semantic, not decorative).

   Depends on: --head, --tag, --accent, --gold, --goldDk,
               --card, --card-tint, --card-bd, --border, --muted,
               --r1, --r2, --rs, --rx, --sh-sm, --sh-md, --sh-lg,
               --fh, --fb, --ease, blink keyframe
════════════════════════════════════════════════════════════════════ */

/* ── Outer section ───────────────────────────────────────────────── */
.job2-wrap {
  background: var(--card);
  border-radius: var(--r2);
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
  overflow: hidden;
  transition: box-shadow .3s var(--ease);
}
.job2-wrap:hover { box-shadow: var(--sh-lg); }

/* ── Card header ─────────────────────────────────────────────────── */
.job2-hd {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.5rem;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(135deg, var(--card-tint), var(--card));
}
.job2-hd-left {
  display: flex;
  align-items: center;
  gap: .85rem;
}
.job2-hd-ic {
  width: 40px;
  height: 40px;
  border-radius: var(--rs);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--card-tint), var(--card-bd));
  border: 1.5px solid var(--card-bd);
  color: var(--head);
}
.job2-hd-text    { display: flex; flex-direction: column; gap: .12rem; }
.job2-hd-title {
  font-family: var(--fh);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
  line-height: 1.2;
}
.job2-hd-sub {
  font-size: .72rem;
  color: var(--muted);
  font-weight: 600;
}

/* Position count badge */
.job2-hd-count {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 44px;
  padding: .35rem .55rem;
  border-radius: var(--r1);
  background: linear-gradient(135deg, var(--head), var(--tag));
  border: 1.5px solid var(--card-bd);
  flex-shrink: 0;
}
.job2-count-num {
  font-family: var(--fh);
  font-size: 1.2rem;
  font-weight: 900;
  color: var(--gold);
  line-height: 1;
}
.job2-count-lbl {
  font-size: .52rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: rgba(255,255,255,.4);
  margin-top: .12rem;
}

/* ── Timeline list ───────────────────────────────────────────────── */
.job2-timeline {
  list-style: none;
  padding: 1.35rem 1.5rem 1.1rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* ── Single entry row (spine + card) ─────────────────────────────── */
.job2-entry {
  display: flex;
  gap: 1.1rem;
  align-items: flex-start;
}

/* ── Spine (node circle + connector line) ────────────────────────── */
.job2-spine {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0;
  width: 34px;
}
.job2-node {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(145deg, var(--head), var(--tag));
  border: 2px solid var(--card-bd);
  flex-shrink: 0;
  box-shadow: 0 2px 10px rgba(0,0,0,.12);
  transition: border-color .25s, box-shadow .25s;
}
.job2-entry:hover .job2-node {
  border-color: var(--accent);
  box-shadow: 0 0 0 4px rgba(0,200,255,.08);
}
.job2-node--active {
  border-color: rgba(16,185,129,.45);
  background: linear-gradient(145deg, #064E3B, #065F46);
  box-shadow: 0 0 0 3px rgba(16,185,129,.12);
}
.job2-node-num {
  font-family: var(--fh);
  font-size: .68rem;
  font-weight: 900;
  color: var(--gold);
  line-height: 1;
  position: relative;
  z-index: 1;
}
.job2-node--active .job2-node-num { color: #6EE7B7; }

/* Connecting line between nodes */
.job2-line {
  width: 2px;
  flex: 1;
  min-height: 20px;
  background: linear-gradient(to bottom, var(--card-bd) 0%, transparent 100%);
  margin: 3px 0;
}

/* Current-position entry — subtle left border highlight */
.job2-entry--current > .job2-card {
  border-left: 2px solid rgba(16,185,129,.3);
  padding-left: .85rem;
  margin-left: -.85rem;
}

/* ── Entry card body ─────────────────────────────────────────────── */
.job2-card {
  flex: 1;
  min-width: 0;
  padding-bottom: 1.5rem;
  position: relative;
}
.job2-entry:last-child .job2-card { padding-bottom: 0; }

/* Current pill */
.job2-current-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .62rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: #10B981;
  background: rgba(16,185,129,.09);
  border: 1px solid rgba(16,185,129,.25);
  border-radius: 30px;
  padding: .18rem .65rem;
  margin-bottom: .5rem;
}
.job2-current-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #10B981;
  box-shadow: 0 0 6px #10B981;
  animation: blink 1.6s ease-in-out infinite;
}

/* Clinic name */
.job2-clinic {
  font-family: var(--fh);
  font-size: .96rem;
  font-weight: 800;
  color: var(--head);
  line-height: 1.25;
  margin: 0 0 .28rem;
  transition: color .2s;
}
.job2-entry:hover .job2-clinic { color: var(--accent); }

/* Address */
.job2-address {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  font-size: .74rem;
  font-weight: 600;
  color: var(--muted);
  margin-bottom: .4rem;
}

/* Designation / role */
.job2-role {
  font-size: .8rem;
  font-weight: 700;
  color: var(--tag);
  margin: 0 0 .55rem;
  display: flex;
  align-items: center;
  gap: .35rem;
}
.job2-role::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 2px;
  border-radius: 2px;
  background: var(--tag);
  opacity: .45;
  flex-shrink: 0;
}

/* Meta strip */
.job2-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .4rem;
}
.job2-meta-item {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .7rem;
  font-weight: 700;
  padding: .22rem .6rem;
  border-radius: 30px;
  background: var(--card-tint);
  border: 1px solid var(--card-bd);
  color: var(--muted);
  white-space: nowrap;
  transition: border-color .2s;
}
.job2-entry:hover .job2-meta-item {
  border-color: var(--accent);
}

/* Meta item variants */
.job2-meta-item--date    { color: var(--head); }
.job2-meta-item--tenure  {
  background: linear-gradient(135deg, var(--card-tint), var(--card));
  color: var(--tag);
  font-style: italic;
}
.job2-meta-item--pay {
  color: var(--gold);
  background: rgba(255,225,100,.06);
  border-color: rgba(255,225,100,.2);
}

/* ── Footer ──────────────────────────────────────────────────────── */
.job2-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  padding: .75rem 1.5rem;
  border-top: 1px solid var(--border);
  font-size: .62rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--muted);
  opacity: .65;
  background: linear-gradient(135deg, var(--card-tint), var(--card));
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 576px) {
  .job2-timeline  { padding: 1.1rem 1.1rem .9rem; }
  .job2-hd        { padding: 1rem 1.1rem; }
  .job2-entry     { gap: .75rem; }
  .job2-node      { width: 28px; height: 28px; }
  .job2-node-num  { font-size: .6rem; }
  .job2-spine     { width: 28px; }
  .job2-clinic    { font-size: .88rem; }
  .job2-meta      { gap: .3rem; }
  .job2-meta-item { font-size: .65rem; }
  .job2-hd-count  { display: none; }    /* shown in subtitle on mobile */
  .job2-footer    { padding: .65rem 1.1rem; }
}


/* ════════════════════════════════════════════════════════════════════
   § 14  DISCLAIMER CARD
════════════════════════════════════════════════════════════════════ */
.disc-wrap {
  background: linear-gradient(135deg, #0A2040 0%, #0D1B36 100%);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: var(--r2);
  padding: 1.3rem 1.5rem;
  box-shadow: var(--sh-sm);
}
.disc-hd         { display: flex; align-items: center; gap: .65rem; margin-bottom: .8rem; }
.disc-logo {
  width: 34px;
  height: 34px;
  border-radius: var(--rx);
  flex-shrink: 0;
  background: linear-gradient(135deg, var(--gold), var(--gold-dk));
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  font-weight: 900;
  color: #0A1020;
  font-family: var(--fh);
}
.disc-brand       { font-family: var(--fh); font-weight: 800; font-size: .9rem; color: var(--white); }
.disc-brand small { display: block; font-family: var(--fb); font-size: .68rem; color: rgba(255,255,255,.38); font-weight: 600; }
.disc-list        { list-style: none; }
.disc-list li {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  font-size: .74rem;
  color: rgba(255,255,255,.5);
  font-weight: 600;
  padding: .28rem 0;
  border-bottom: 1px solid rgba(255,255,255,.05);
  line-height: 1.45;
}
.disc-list li:last-child { border-bottom: none; }
.disc-list li::before    { content: '·'; color: var(--gold); font-size: 1.1rem; flex-shrink: 0; line-height: 1; }
.disc-hot   { font-size: .7rem; color: rgba(255,255,255,.28); margin-top: .65rem; font-weight: 700; }
.disc-hot a { color: rgba(255,255,255,.42); text-decoration: none; }
.disc-hot a:hover { color: var(--gold); }


/* ════════════════════════════════════════════════════════════════════
   § 15  SIDEBAR / CTA CARD
════════════════════════════════════════════════════════════════════ */
.cta-card {
  background: var(--hero-bg);
  border-radius: var(--r2);
  overflow: hidden;
  position: relative;
  box-shadow: 0 0 0 2px var(--gold), var(--sh-lg);
}
.cta-card::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: var(--hero-accent);
}
.cta-inner { position: relative; z-index: 1; padding: 1.6rem; }

.cta-av-row { display: flex; align-items: center; gap: .9rem; margin-bottom: 1.1rem; }
.cta-av {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  flex-shrink: 0;
  border: 2px solid var(--gold);
  overflow: hidden;
  background: rgba(255,255,255,.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  box-shadow: 0 4px 14px rgba(0,0,0,.3);
}
.cta-av img      { width: 100%; height: 100%; object-fit: cover; }
.cta-av-name     { font-family: var(--fh); font-weight: 900; font-size: 1rem; color: var(--white); line-height: 1.2; }
.cta-av-deg      { font-size: .7rem; color: rgba(255,255,255,.42); margin-top: .18rem; font-weight: 600; }

.cta-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .45rem;
  margin-bottom: 1.1rem;
}
.cta-stat {
  text-align: center;
  padding: .72rem .3rem;
  background: rgba(255,255,255,.07);
  border-radius: var(--rx);
  border: 1px solid rgba(255,255,255,.08);
}
.cta-stat-val { font-family: var(--fh); font-size: 1rem; font-weight: 900; color: var(--gold); line-height: 1; }
.cta-stat-lbl { font-size: .58rem; color: rgba(255,255,255,.36); font-weight: 700; margin-top: .2rem; text-transform: uppercase; letter-spacing: .4px; }

.cta-divider { height: 1px; background: rgba(255,255,255,.1); margin: 1rem 0; }

/* CTA buttons */
.btn-main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  width: 100%;
  padding: .95rem 1.3rem;
  border: none;
  border-radius: var(--rs);
  cursor: pointer;
  font-family: var(--fb);
  font-weight: 800;
  font-size: .92rem;
  text-decoration: none;
  text-align: center;
  background-image: linear-gradient(100deg, var(--gold) 0%, var(--gold-dk) 40%, var(--accent) 60%, var(--gold) 100%);
  background-size: 200% auto;
  color: var(--ink);
  box-shadow: 0 6px 22px rgba(0,0,0,.22);
  animation: progShimmer 3.5s linear infinite;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.btn-main:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(0,0,0,.3); color: var(--ink); }

.btn-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  width: 100%;
  padding: .85rem 1.3rem;
  margin-top: .6rem;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(12px);
  color: var(--white);
  font-weight: 800;
  font-size: .86rem;
  border: 1.5px solid rgba(255,255,255,.2);
  border-radius: var(--rs);
  cursor: pointer;
  text-decoration: none;
  text-align: center;
  transition: all .3s var(--ease);
}
.btn-sub:hover { background: rgba(255,255,255,.18); color: var(--white); }

.btn-dis {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: .85rem;
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.25);
  border: 1px dashed rgba(255,255,255,.12);
  border-radius: var(--rs);
  font-weight: 700;
  font-size: .84rem;
  cursor: not-allowed;
}


/* ════════════════════════════════════════════════════════════════════
   § 16  SHARE CARD
════════════════════════════════════════════════════════════════════ */
.share-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .55rem;
  margin-bottom: 1rem;
}
.shr {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .7rem .5rem;
  border-radius: var(--rs);
  border: none;
  cursor: pointer;
  font-size: .76rem;
  font-weight: 800;
  transition: all .25s var(--ease);
  text-decoration: none;
}
.shr:hover { transform: translateY(-3px); }
.s-wa { background: linear-gradient(135deg, #25D366, #128C7E); color: var(--white); box-shadow: 0 4px 12px rgba(37,211,102,.22); }
.s-tg { background: linear-gradient(135deg, #0088CC, #005E8B); color: var(--white); box-shadow: 0 4px 12px rgba(0,136,204,.2); }
.s-cp { background: var(--surface); color: var(--ink2); border: 1.5px solid var(--border); }
.s-mx { background: linear-gradient(135deg, #374151, #111827); color: var(--white); }


/* ════════════════════════════════════════════════════════════════════
   § 17  RESPONSIVE STICKY BAR  (< 1200px)
════════════════════════════════════════════════════════════════════ */
.mob-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 999;
  background: var(--hero-bg);
  border-top: 2px solid var(--gold);
  padding: .7rem 0;
  box-shadow: 0 -14px 36px rgba(0,0,0,.45);
}
@media (max-width: 1199.98px) { .mob-bar { display: block; } }
.mob-bar-inner { display: flex; align-items: center; gap: .55rem; justify-content: space-between; }
.mob-bar-info  { flex: 1; min-width: 0; }
.mob-name { color: var(--white); font-weight: 800; font-size: .82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mob-spec { color: rgba(255,255,255,.38); font-size: .67rem; margin-top: .08rem; }
.mob-btns { display: flex; gap: .45rem; flex-shrink: 0; }
.mob-btn {
  padding: .58rem .88rem;
  border-radius: var(--rx);
  border: none;
  cursor: pointer;
  font-size: .74rem;
  font-weight: 800;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  white-space: nowrap;
  transition: all .2s;
}
.mb-contact { background: var(--accent);                                             color: var(--ink); }
.mb-hire    { background: linear-gradient(135deg, var(--gold), var(--gold-dk));      color: var(--ink); }
.mb-app     { background: linear-gradient(135deg, var(--gold), var(--gold-dk));      color: var(--ink); }
.mb-login   { background: rgba(255,255,255,.12); color: var(--white); border: 1px solid rgba(255,255,255,.2); }
.mb-edit    { background: rgba(255,255,255,.12); color: var(--white); border: 1px solid rgba(255,255,255,.2); }


/* ════════════════════════════════════════════════════════════════════
   § 18  MODALS
════════════════════════════════════════════════════════════════════ */
.dp-overlay {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1100;
  background: rgba(8,12,36,.78);
  backdrop-filter: blur(12px);
  align-items: center;
  justify-content: center;
  padding: 1rem;
}
.dp-overlay.open { display: flex; }

.dp-modal {
  background: var(--white);
  border-radius: var(--r3);
  padding: 1.8rem 1.6rem;
  max-width: 430px;
  width: 100%;
  box-shadow: 0 40px 80px rgba(8,12,36,.6);
  animation: modalIn .3s var(--ease) forwards;
  position: relative;
}
.mx {
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--surface);
  border: none;
  font-size: 1rem;
  color: var(--muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .2s;
}
.mx:hover { background: #E5E7EB; color: var(--ink); }

.modal-ico   { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.7rem; margin: 0 auto .9rem; }
.modal-title { font-family: var(--fh); font-weight: 900; font-size: 1.3rem; color: var(--ink); text-align: center; margin-bottom: .28rem; }
.modal-sub   { font-size: .82rem; color: var(--muted); text-align: center; margin-bottom: 1.2rem; }

.auth-gate {
  background: linear-gradient(135deg, #EFF6FF, #DBEAFE);
  border: 1.5px solid #93C5FD;
  border-radius: var(--r1);
  padding: 1.2rem;
  text-align: center;
  margin-bottom: .9rem;
}
.ag-title { font-family: var(--fh); font-weight: 800; font-size: .97rem; color: #1E40AF; margin-bottom: .3rem; }
.ag-sub   { font-size: .79rem; color: #3B82F6; line-height: 1.55; margin-bottom: .9rem; }

.btn-login {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  width: 100%;
  padding: .9rem 1.3rem;
  background: linear-gradient(135deg, #3B82F6, #2563EB);
  color: var(--white);
  font-weight: 900;
  font-size: .9rem;
  border: none;
  border-radius: var(--rs);
  cursor: pointer;
  text-decoration: none;
  transition: all .3s var(--ease);
  box-shadow: 0 5px 18px rgba(59,130,246,.3);
}
.btn-login:hover { transform: translateY(-2px); color: var(--white); }

.mbtn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  width: 100%;
  padding: .9rem 1.3rem;
  margin-bottom: .55rem;
  border-radius: var(--rs);
  border: none;
  cursor: pointer;
  font-size: .9rem;
  font-weight: 800;
  transition: all .25s var(--ease);
  text-decoration: none;
}
.mbtn:hover  { transform: translateY(-2px); }
.m-wa        { background: linear-gradient(135deg, #25D366, #128C7E); color: var(--white); box-shadow: 0 4px 14px rgba(37,211,102,.25); }
.m-report    { background: linear-gradient(135deg, #FBBF24, #F59E0B); color: #78350F; }
.m-cancel    { background: var(--white); color: #374151; border: 1.5px solid #E5E7EB; }

/* Edit card (sidebar) */
.edit-card {
  background: linear-gradient(135deg, #EEF2FF, #E0E7FF);
  border: 1.5px solid #C7D2FE;
  border-radius: var(--r2);
  padding: 1.2rem;
}
.edit-row  { display: flex; align-items: center; gap: .75rem; margin-bottom: .9rem; }
.edit-ic {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  flex-shrink: 0;
  background: linear-gradient(135deg, #6366F1, #7C3AED);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  box-shadow: 0 4px 12px rgba(99,102,241,.3);
}
.edit-title { font-family: var(--fh); font-weight: 800; font-size: .9rem; color: #3730A3; }
.edit-sub   { font-size: .72rem; color: #6366F1; margin-top: .1rem; }
.btn-edit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  width: 100%;
  padding: .82rem 1.3rem;
  background: linear-gradient(135deg, #6366F1, #7C3AED);
  color: var(--white);
  font-weight: 800;
  font-size: .84rem;
  border: none;
  border-radius: var(--rs);
  cursor: pointer;
  text-decoration: none;
  transition: all .3s var(--ease);
  box-shadow: 0 4px 16px rgba(99,102,241,.35);
}
.btn-edit:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(99,102,241,.45); color: var(--white); }


/* ════════════════════════════════════════════════════════════════════
   § 19  KEYFRAMES  — ONE definition each, zero duplicates
════════════════════════════════════════════════════════════════════ */

/* Ambient orbs */
@keyframes orbFloat {
  0%, 100% { transform: translate(0, 0); }
  50%       { transform: translate(16px, -18px); }
}

/* Avatar ring pulse */
@keyframes ringPulse {
  0%, 100% { box-shadow: 0 0 0 8px rgba(255,255,255,.06), 0 0 0 18px rgba(255,255,255,.025), var(--sh-hero); }
  50%       { box-shadow: 0 0 0 12px rgba(255,255,255,.09), 0 0 0 26px rgba(255,255,255,.04), var(--sh-hero); }
}

/* Pulsing dot (live, blink, timeline active dot) */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: .2; }
}

/* Ticker marquee */
@keyframes tickerScroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Gold shimmer (btn-main, CTA button) */
@keyframes progShimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}

/* Gold shimmer variant for cgate unlock button */
@keyframes cgateShimmer {
  0%   { background-position:  200% center; }
  100% { background-position: -200% center; }
}

/* Bio accent bar shimmer */
@keyframes barShimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}

/* Modal entrance */
@keyframes modalIn {
  from { opacity: 0; transform: translateY(18px) scale(.96); }
  to   { opacity: 1; transform: translateY(0)    scale(1);   }
}

/* Card / section fade-up entrance */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0);    }
}

/* cgate lock wobble */
@keyframes cgateLockWobble {
  0%, 100% { transform: rotate(0deg)  translateY(0);   }
  20%       { transform: rotate(-3deg) translateY(-1px); }
  40%       { transform: rotate(3deg)  translateY(1px);  }
  60%       { transform: rotate(-2deg) translateY(0);   }
  80%       { transform: rotate(1deg)  translateY(-1px); }
}

/* Spinner (used by JS contact reveal loading state) */
@keyframes spin {
  to { transform: rotate(360deg); }
}


/* ════════════════════════════════════════════════════════════════════
   § 20  ANIMATION UTILITIES
════════════════════════════════════════════════════════════════════ */
.dp-a  { opacity: 0; animation: fadeUp .5s var(--ease) forwards; }
.dp-d1 { animation-delay: .05s; }
.dp-d2 { animation-delay: .12s; }
.dp-d3 { animation-delay: .20s; }
.dp-d4 { animation-delay: .28s; }


/* ════════════════════════════════════════════════════════════════════
   § 21  PARTIAL — det-   (_details.blade.php)
   Prefix: det-   →  zero conflict with base styles above.
   Source: _details.css.txt (generated with _details.blade.php)
════════════════════════════════════════════════════════════════════ */
.det-wrap { overflow: hidden; }

.det-group           { margin-bottom: 1.75rem; }
.det-group:last-child{ margin-bottom: 0; }
.det-group-hd {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin-bottom: 1rem;
  padding-bottom: .55rem;
  border-bottom: 1px solid var(--border);
}
.det-group-icon  { font-size: 1rem; line-height: 1; }
.det-group-title {
  font-family: var(--fh);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: var(--muted);
  margin: 0;
}

/* ── Identity chip grid (Group A) ───────────────────────────────── */
.det-identity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .75rem;
}
.det-id-chip {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .75rem .9rem;
  border-radius: var(--r1);
  background: var(--card-tint);
  border: 1.5px solid var(--card-bd);
  transition: border-color .2s, box-shadow .2s;
  position: relative;
  overflow: hidden;
}
.det-id-chip::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,.03) 0%, transparent 60%);
  pointer-events: none;
}
.det-id-chip:hover         { border-color: var(--accent); box-shadow: var(--sh-sm); }
.det-id-chip--verified     { border-color: rgba(16,185,129,.3); background: rgba(16,185,129,.06); }
.det-id-chip--warn         { border-color: rgba(245,158,11,.25); background: rgba(245,158,11,.05); }
.det-id-chip-ic            { font-size: 1.25rem; flex-shrink: 0; line-height: 1; }
.det-id-chip-body          { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .18rem; }
.det-id-chip-label         { font-size: .6rem; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: var(--muted); }
.det-id-chip-val           { font-size: .82rem; font-weight: 700; color: var(--head); word-break: break-word; }
.det-id-chip-val--missing  { color: var(--muted); font-style: italic; font-weight: 500; }
.det-id-chip-badge         { font-size: .7rem; font-weight: 900; color: #10B981; flex-shrink: 0; }
.det-id-chip-badge--warn   { color: #F59E0B; }

/* ── Education timeline (Group B) ───────────────────────────────── */
.det-timeline        { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0; }
.det-tl-item         { display: flex; align-items: flex-start; gap: .85rem; }
.det-tl-node-wrap    { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; width: 28px; }
.det-tl-node {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--head), var(--tag));
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--fh);
  font-size: .68rem;
  font-weight: 900;
  color: var(--gold);
  flex-shrink: 0;
  box-shadow: 0 0 0 3px var(--card-bd);
}
.det-tl-line            { width: 2px; flex: 1; min-height: 24px; background: linear-gradient(to bottom, var(--card-bd), transparent); margin: 4px 0; }
.det-tl-body            { flex: 1; padding-bottom: 1.25rem; min-width: 0; }
.det-tl-item:last-child .det-tl-body { padding-bottom: 0; }
.det-tl-degree {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .35rem;
  font-family: var(--fh);
  font-size: .88rem;
  font-weight: 800;
  color: var(--head);
  line-height: 1.3;
  margin-bottom: .25rem;
}
.det-tl-degree-ic    { font-size: .9rem; flex-shrink: 0; }
.det-tl-inst         { font-size: .8rem; font-weight: 600; color: var(--tag); margin-bottom: .35rem; }
.det-tl-meta         { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
.det-tl-year {
  font-size: .68rem; font-weight: 800;
  padding: .2rem .55rem; border-radius: 30px;
  background: var(--card-bd); color: var(--head); white-space: nowrap;
}
.det-tl-field {
  font-size: .68rem; font-weight: 700;
  padding: .2rem .55rem; border-radius: 30px;
  background: linear-gradient(135deg, var(--card-tint), var(--card));
  border: 1px solid var(--card-bd); color: var(--tag);
}
.det-tl-extra  { font-size: .68rem; color: var(--muted); font-style: italic; }

/* ── Practice availability rows (Group C) ───────────────────────── */
.det-avail-row {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .85rem 1rem;
  border-radius: var(--r1);
  border: 1.5px solid var(--card-bd);
  background: var(--card-tint);
  margin-bottom: .65rem;
  transition: border-color .2s;
}
.det-avail-row:last-child      { margin-bottom: 0; }
.det-avail-row--consult        { border-color: rgba(46,204,136,.2); background: rgba(46,204,136,.05); }
.det-avail-row--consult:hover  { border-color: rgba(46,204,136,.4); }
.det-avail-icon  { font-size: 1.3rem; flex-shrink: 0; }
.det-avail-body  { flex: 1; display: flex; flex-direction: column; gap: .18rem; }
.det-avail-label { font-family: var(--fh); font-size: .82rem; font-weight: 800; color: var(--head); }
.det-avail-detail{ font-size: .75rem; color: var(--muted); }
.det-avail-badge {
  font-size: .65rem; font-weight: 900;
  padding: .28rem .75rem; border-radius: 30px;
  flex-shrink: 0; white-space: nowrap;
}
.det-avail-badge--on {
  background: rgba(16,185,129,.15);
  border: 1px solid rgba(16,185,129,.3);
  color: #10B981;
}

/* ── Pay strip ──────────────────────────────────────────────────── */
.det-pay-strip {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: .65rem;
}
.det-pay-item {
  display: flex; align-items: center; gap: .75rem;
  padding: .85rem 1rem; border-radius: var(--r1);
  background: linear-gradient(135deg, rgba(255,225,100,.06), rgba(255,225,100,.02));
  border: 1.5px solid rgba(255,225,100,.18);
  transition: border-color .2s;
}
.det-pay-item:hover          { border-color: var(--gold); }
.det-pay-item--fresher       { background: linear-gradient(135deg, rgba(110,231,183,.06), rgba(110,231,183,.02)); border-color: rgba(110,231,183,.18); }
.det-pay-item--fresher:hover { border-color: #6EE7B7; }
.det-pay-ic   { font-size: 1.2rem; flex-shrink: 0; }
.det-pay-body { display: flex; flex-direction: column; gap: .15rem; }
.det-pay-amount {
  font-family: var(--fh); font-size: 1.1rem;
  font-weight: 900; color: var(--gold); line-height: 1;
}
.det-pay-amount small { font-size: .6em; opacity: .65; margin-left: .1rem; font-weight: 600; }
.det-pay-label { font-size: .63rem; font-weight: 700; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }

/* ── Owner empty state ──────────────────────────────────────────── */
.det-empty {
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
  padding: 1.1rem 1.2rem; border-radius: var(--r1);
  border: 1.5px dashed var(--border); background: rgba(255,255,255,.02);
}
.det-empty-ic          { font-size: 1.5rem; flex-shrink: 0; }
.det-empty-body        { flex: 1; display: flex; flex-direction: column; gap: .25rem; }
.det-empty-body strong { font-size: .85rem; font-weight: 800; color: var(--head); }
.det-empty-body span   { font-size: .75rem; color: var(--muted); }
.det-empty-cta {
  font-size: .75rem; font-weight: 900;
  padding: .5rem 1.1rem; border-radius: var(--rs);
  background: linear-gradient(135deg, var(--head), var(--tag));
  color: var(--gold); text-decoration: none; flex-shrink: 0; transition: opacity .2s;
}
.det-empty-cta:hover { opacity: .85; color: var(--gold); }

/* ── det- Responsive ─────────────────────────────────────────────── */
@media (max-width: 576px) {
  .det-identity-grid { grid-template-columns: 1fr; }
  .det-pay-strip     { grid-template-columns: 1fr; }
  .det-avail-row     { flex-wrap: wrap; }
  .det-tl-degree     { font-size: .82rem; }
}


/* ════════════════════════════════════════════════════════════════════
   § 22  PARTIAL — pub2-   (_publications.blade.php)
   Prefix: pub2-  →  zero conflict with legacy pub- styles (removed).
════════════════════════════════════════════════════════════════════ */
.pub2-wrap    { overflow: hidden; }
.pub2-hd-ic   { background: linear-gradient(135deg, var(--card-tint), var(--card-bd)) !important; }
.pub2-hd-text { flex: 1; }

.pub2-count-badge {
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  min-width: 52px; padding: .4rem .6rem;
  border-radius: var(--r1);
  background: linear-gradient(135deg, var(--head), var(--tag));
  border: 1.5px solid var(--card-bd);
  flex-shrink: 0;
}
.pub2-count-num { font-family: var(--fh); font-size: 1.3rem; font-weight: 900; color: var(--gold); line-height: 1; }
.pub2-count-lbl { font-size: .55rem; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: rgba(255,255,255,.45); margin-top: .15rem; }

/* Scholar index strip */
.pub2-index-strip {
  display: flex; align-items: center; gap: .5rem;
  padding: .45rem 1.2rem;
  background: linear-gradient(90deg, rgba(129,140,248,.08) 0%, rgba(129,140,248,.04) 50%, transparent 100%);
  border-bottom: 1px solid var(--border);
}
.pub2-index-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #818CF8; box-shadow: 0 0 8px #818CF8;
  flex-shrink: 0; animation: blink 2s ease-in-out infinite;
}
.pub2-index-text { font-size: .62rem; font-weight: 700; color: rgba(129,140,248,.75); text-transform: uppercase; letter-spacing: .6px; }

/* List */
.pub2-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .75rem; }

/* Card */
.pub2-card {
  position: relative;
  display: flex; align-items: flex-start; gap: 1rem;
  padding: 1rem 1.1rem; border-radius: var(--r1);
  background: var(--card-tint); border: 1.5px solid var(--card-bd);
  overflow: hidden;
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease), transform .25s var(--ease);
  cursor: default;
}
.pub2-card--linked        { cursor: pointer; }
.pub2-card--linked:hover  { border-color: var(--accent); box-shadow: var(--sh-sm), 0 0 0 1px var(--accent) inset; transform: translateX(4px); }
.pub2-shimmer {
  position: absolute; inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,.03) 50%, transparent 60%);
  background-size: 200% 100%; background-position: 200% 0;
  pointer-events: none; transition: background-position .5s ease;
}
.pub2-card--linked:hover .pub2-shimmer { background-position: -200% 0; }
.pub2-card--linked::before {
  content: ''; position: absolute; left: 0; top: 20%; bottom: 20%;
  width: 3px; border-radius: 0 3px 3px 0;
  background: linear-gradient(to bottom, var(--accent), transparent);
  opacity: 0; transition: opacity .25s;
}
.pub2-card--linked:hover::before { opacity: 1; }

/* Number orb */
.pub2-orb      { position: relative; width: 40px; height: 40px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.pub2-orb-num  { font-family: var(--fh); font-size: .75rem; font-weight: 900; color: var(--gold); position: relative; z-index: 1; line-height: 1; }
.pub2-orb-ring {
  position: absolute; inset: 0; border-radius: 50%;
  background: linear-gradient(135deg, var(--head), var(--tag));
  border: 2px solid var(--card-bd); transition: border-color .25s;
}
.pub2-card--linked:hover .pub2-orb-ring { border-color: var(--accent); box-shadow: 0 0 12px rgba(0,200,255,.18); }

/* Content */
.pub2-body  { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .45rem; }
.pub2-title {
  font-family: var(--fh); font-size: .9rem; font-weight: 800;
  color: var(--head); line-height: 1.45; margin: 0;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.pub2-card:hover .pub2-title { -webkit-line-clamp: unset; }
.pub2-meta       { display: flex; flex-wrap: wrap; gap: .35rem; }
.pub2-meta-tag {
  font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .4px;
  padding: .2rem .55rem; border-radius: 30px; background: var(--card-bd); color: var(--muted); white-space: nowrap;
}
.pub2-meta-tag--role { background: linear-gradient(135deg, var(--card-tint), var(--card)); border: 1px solid var(--card-bd); color: var(--tag); }

/* View link */
.pub2-link {
  display: inline-flex; align-items: center; gap: .35rem;
  font-size: .75rem; font-weight: 900; color: var(--accent);
  text-decoration: none; padding: .3rem .75rem;
  border-radius: var(--rx);
  background: rgba(0,200,255,.07); border: 1px solid rgba(0,200,255,.18);
  align-self: flex-start; transition: all .2s var(--ease);
}
.pub2-link:hover      { background: rgba(0,200,255,.15); border-color: var(--accent); transform: translateY(-1px); }
.pub2-link-icon       { display: flex; align-items: center; opacity: .8; }
.pub2-link-arrow      { opacity: .6; font-size: .8em; transition: transform .2s; }
.pub2-link:hover .pub2-link-arrow { transform: translateX(3px); }
.pub2-no-link         { font-size: .72rem; color: var(--muted); font-style: italic; opacity: .7; }

/* Footer */
.pub2-footer {
  display: flex; align-items: center; justify-content: center; gap: .6rem;
  padding: .7rem 1.2rem; margin-top: .5rem;
  border-top: 1px solid var(--border);
  font-size: .62rem; font-weight: 700; text-transform: uppercase; letter-spacing: .5px;
  color: var(--muted); opacity: .7;
}
.pub2-footer-sep { opacity: .4; }

/* pub2- Responsive */
@media (max-width: 576px) {
  .pub2-count-badge    { display: none; }
  .pub2-card           { padding: .85rem .9rem; gap: .75rem; }
  .pub2-orb            { width: 34px; height: 34px; }
  .pub2-orb-num        { font-size: .68rem; }
  .pub2-title          { font-size: .84rem; }
  .pub2-card--linked:hover { transform: none; }
}
@media (max-width: 360px) { .pub2-index-strip { display: none; } }


/* ════════════════════════════════════════════════════════════════════
   § 23  PARTIAL — cgate-   (_contact_gate.blade.php)
   Prefix: cgate-  →  old cg- styles have been fully removed.
════════════════════════════════════════════════════════════════════ */
.cgate-wrap { border-radius: var(--r2); overflow: hidden; box-shadow: var(--sh-md); background: var(--card); border: 2px solid var(--card-bd); }

/* Header */
.cgate-hd { background: linear-gradient(135deg, var(--head) 0%, var(--tag) 100%); padding: 1.1rem 1.4rem; display: flex; align-items: center; gap: .85rem; }
.cgate-hd-ic {
  width: 42px; height: 42px; border-radius: var(--rs); flex-shrink: 0;
  background: rgba(255,255,255,.12); backdrop-filter: blur(10px);
  display: flex; align-items: center; justify-content: center; font-size: 1.25rem;
  border: 1px solid rgba(255,255,255,.2);
}
.cgate-hd-text  { flex: 1; min-width: 0; }
.cgate-hd-title { font-family: var(--fh); font-weight: 800; font-size: 1rem; color: #fff; line-height: 1.2; }
.cgate-hd-sub   { font-size: .72rem; color: rgba(255,255,255,.5); margin-top: .12rem; }
.cgate-hd-seal {
  display: flex; align-items: center; gap: .3rem;
  font-size: .62rem; font-weight: 800; text-transform: uppercase; letter-spacing: .4px;
  color: #10B981; background: rgba(16,185,129,.1); border: 1px solid rgba(16,185,129,.25);
  padding: .3rem .7rem; border-radius: 30px; flex-shrink: 0; white-space: nowrap;
}

/* Intent cards */
.cgate-intents         { display: flex; flex-direction: column; gap: 0; border-bottom: 1px solid var(--border); }
.cgate-intent {
  display: flex; align-items: center; gap: .85rem;
  padding: .85rem 1.4rem; border-bottom: 1px solid var(--border); transition: background .18s;
}
.cgate-intent:last-child    { border-bottom: none; }
.cgate-intent--hire         { background: rgba(16,185,129,.04); }
.cgate-intent--consult      { background: rgba(129,140,248,.04); }
.cgate-intent--hire:hover   { background: rgba(16,185,129,.08); }
.cgate-intent--consult:hover{ background: rgba(129,140,248,.08); }
.cgate-intent-ic            { font-size: 1.4rem; flex-shrink: 0; }
.cgate-intent-body          { flex: 1; min-width: 0; }
.cgate-intent-title         { font-family: var(--fh); font-size: .85rem; font-weight: 800; color: var(--head); }
.cgate-intent-sub           { font-size: .73rem; color: var(--muted); margin-top: .12rem; }
.cgate-intent-badge         { font-size: .62rem; font-weight: 900; padding: .25rem .7rem; border-radius: 30px; flex-shrink: 0; white-space: nowrap; }
.cgate-intent-badge--hire   { background: rgba(16,185,129,.15); border: 1px solid rgba(16,185,129,.3); color: #10B981; }
.cgate-intent-badge--consult{ background: rgba(129,140,248,.15); border: 1px solid rgba(129,140,248,.3); color: #818CF8; }

/* Owner state */
.cgate-owner { padding: 1.25rem 1.4rem; }
.cgate-owner-notice {
  display: flex; align-items: flex-start; gap: .5rem;
  padding: .65rem .9rem;
  background: rgba(16,185,129,.07); border: 1.5px solid rgba(16,185,129,.2); border-radius: var(--rs);
  font-size: .74rem; font-weight: 700; color: #6EE7B7; margin-bottom: 1rem; line-height: 1.5;
}
.cgate-owner-row {
  display: flex; align-items: center; gap: .75rem;
  padding: .8rem 1rem; background: var(--card-tint);
  border: 1px solid var(--card-bd); border-radius: var(--rs); margin-bottom: .5rem;
}
.cgate-owner-label  { font-size: .7rem; font-weight: 800; color: var(--muted); min-width: 80px; flex-shrink: 0; }
.cgate-owner-val    { flex: 1; font-size: .88rem; color: var(--head); font-weight: 700; word-break: break-all; }
.cgate-owner-action {
  font-size: .7rem; font-weight: 900; color: var(--tag); text-decoration: none;
  padding: .25rem .65rem; border-radius: var(--rx); background: var(--card-bd);
  transition: background .18s; flex-shrink: 0;
}
.cgate-owner-action:hover  { background: var(--tag); color: #fff; }
.cgate-owner-empty         { font-size: .8rem; color: var(--muted); font-weight: 600; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cgate-owner-empty a       { color: var(--tag); font-weight: 800; text-decoration: none; }

/* Unlocked state */
.cgate-unlocked { padding: 1.5rem 1.4rem; text-align: center; }
.cgate-unlocked-status {
  display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(16,185,129,.1); border: 1.5px solid rgba(16,185,129,.25);
  color: #6EE7B7; padding: .4rem 1rem; border-radius: 30px;
  font-size: .75rem; font-weight: 800; margin-bottom: 1.1rem;
}
.cgate-unlocked-dot {
  width: 7px; height: 7px; border-radius: 50%;
  background: #10B981; box-shadow: 0 0 8px #10B981;
  animation: blink 1.4s ease-in-out infinite;
}
.cgate-reveal-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem;
  width: 100%; max-width: 360px; padding: .95rem 1.5rem;
  border-radius: var(--rs); border: none;
  font-family: var(--fh); font-weight: 800; font-size: .92rem;
  cursor: pointer;
  background: linear-gradient(135deg, var(--head), var(--tag)); color: var(--gold);
  box-shadow: var(--sh-md); transition: all .28s var(--ease); letter-spacing: .3px;
}
.cgate-reveal-btn:hover        { transform: translateY(-2px); box-shadow: var(--sh-lg); color: var(--gold); }
.cgate-reveal-btn:active       { transform: translateY(0); }
.cgate-reveal-btn-ic           { display: flex; align-items: center; opacity: .85; }
.cgate-timer                   { font-size: .73rem; color: var(--muted); font-weight: 600; margin-top: .85rem; display: flex; align-items: center; justify-content: center; gap: .35rem; }
.cgate-timer strong            { color: var(--tag); }

/* Revealed contact grid (injected by JS) */
.cgate-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; margin-top: .9rem; max-width: 360px; margin-left: auto; margin-right: auto; }
.cgate-contact-btn  { display: flex; align-items: center; justify-content: center; gap: .45rem; padding: .82rem 1rem; border-radius: var(--rs); border: none; font-size: .82rem; font-weight: 800; cursor: pointer; text-decoration: none; transition: all .22s var(--ease); }
.cgate-contact-btn:hover        { transform: translateY(-2px); }
.cgate-contact-btn--wa          { background: linear-gradient(135deg, #25D366, #128C7E); color: #fff; box-shadow: 0 4px 14px rgba(37,211,102,.25); }
.cgate-contact-btn--em          { background: linear-gradient(135deg, #3B82F6, #2563EB); color: #fff; box-shadow: 0 4px 14px rgba(59,130,246,.2); }
.cgate-contact-btn--na          { background: var(--card-tint); color: var(--muted); border: 1.5px solid var(--border); cursor: not-allowed; opacity: .5; }

/* Locked state */
.cgate-locked       { padding: 2rem 1.4rem; text-align: center; }
.cgate-lock-visual  { margin: 0 auto 1.1rem; }
.cgate-lock-svg     { width: 70px; height: 78px; display: block; margin: 0 auto; filter: drop-shadow(0 6px 18px rgba(200,146,26,.35)); animation: cgateLockWobble 4.5s ease-in-out infinite; }
.cgate-lock-title   { font-family: var(--fh); font-weight: 900; font-size: 1.1rem; color: var(--head); margin: 0 0 .4rem; }
.cgate-lock-sub     { font-size: .82rem; color: var(--muted); line-height: 1.65; max-width: 340px; margin: 0 auto .9rem; }
.cgate-coin-pill {
  display: inline-flex; align-items: center; gap: .5rem;
  background: linear-gradient(135deg, #1A1200, #2A1E00);
  border: 1px solid rgba(255,220,80,.3); color: #FFE17A;
  padding: .5rem 1.2rem; border-radius: 30px; font-size: .84rem; font-weight: 900;
  margin-bottom: 1.2rem; box-shadow: 0 4px 16px rgba(200,146,26,.2);
}
.cgate-preview { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-bottom: 1.2rem; max-width: 360px; margin-left: auto; margin-right: auto; }
.cgate-preview-item { display: flex; align-items: center; gap: .5rem; background: var(--card-tint); border: 1.5px solid var(--card-bd); border-radius: var(--rs); padding: .75rem .9rem; font-size: .78rem; font-weight: 700; color: var(--head); }
.cgate-blur { filter: blur(5px); user-select: none; pointer-events: none; color: var(--muted); font-weight: 800; letter-spacing: 1px; }
.cgate-unlock-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  width: 100%; max-width: 340px; padding: .92rem 2rem;
  border-radius: var(--rs); border: none;
  font-family: var(--fh); font-weight: 900; font-size: .95rem;
  cursor: pointer; text-decoration: none; color: #0C0800;
  background: linear-gradient(100deg, #C8921A 0%, #FFE17A 40%, #C8921A 60%, #FFE17A 100%);
  background-size: 200% auto;
  animation: cgateShimmer 2.5s linear infinite;
  box-shadow: 0 6px 22px rgba(200,146,26,.3);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.cgate-unlock-btn:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(200,146,26,.45); color: #0C0800; }
.cgate-alt-link     { font-size: .74rem; color: var(--muted); margin-top: .8rem; font-weight: 600; }
.cgate-alt-link a   { color: var(--tag); font-weight: 800; text-decoration: none; }
.cgate-alt-link a:hover { text-decoration: underline; }

/* Past unlock history */
.cgate-history     { border-top: 1px solid var(--border); padding: 1rem 1.4rem; }
.cgate-history-hd  { display: flex; align-items: center; gap: .5rem; font-size: .72rem; font-weight: 900; text-transform: uppercase; letter-spacing: .6px; color: var(--muted); margin-bottom: .75rem; }
.cgate-history-count { font-size: .62rem; font-weight: 900; padding: .15rem .5rem; border-radius: 30px; background: var(--card-bd); color: var(--tag); }
.cgate-history-list  { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: .45rem; }
.cgate-history-item {
  display: flex; align-items: center; gap: .75rem;
  padding: .65rem .9rem; border-radius: var(--rs);
  background: var(--card-tint); border: 1px solid var(--card-bd); transition: border-color .18s;
}
.cgate-history-item--active { border-color: rgba(16,185,129,.25); background: rgba(16,185,129,.05); }
.cgate-history-dot          { width: 8px; height: 8px; border-radius: 50%; background: var(--border); flex-shrink: 0; }
.cgate-history-dot--active  { background: #10B981; box-shadow: 0 0 6px #10B981; animation: blink 2s ease-in-out infinite; }
.cgate-history-body         { flex: 1; display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.cgate-history-date         { font-size: .75rem; font-weight: 700; color: var(--head); }
.cgate-history-meta         { font-size: .67rem; color: var(--muted); font-weight: 600; }
.cgate-history-reveal {
  font-size: .68rem; font-weight: 900; padding: .3rem .75rem;
  border-radius: var(--rx); border: 1px solid rgba(16,185,129,.3);
  background: rgba(16,185,129,.1); color: #10B981;
  cursor: pointer; white-space: nowrap; transition: all .18s; flex-shrink: 0;
}
.cgate-history-reveal:hover { background: rgba(16,185,129,.2); border-color: #10B981; }

/* Policy notice */
.cgate-policy               { border-top: 1px solid var(--border); background: var(--card-tint); }
.cgate-policy-summary {
  display: flex; align-items: center; gap: .5rem;
  padding: .85rem 1.4rem; font-size: .72rem; font-weight: 800; color: var(--muted);
  cursor: pointer; list-style: none; user-select: none; transition: color .18s, background .18s;
}
.cgate-policy-summary::-webkit-details-marker { display: none; }
.cgate-policy-summary:hover { color: var(--head); background: rgba(255,255,255,.03); }
.cgate-policy-chevron       { margin-left: auto; font-size: .9rem; transition: transform .25s var(--ease); opacity: .5; }
details[open] .cgate-policy-chevron { transform: rotate(90deg); }
.cgate-policy-body  { padding: .25rem 1.4rem 1.2rem; display: flex; flex-direction: column; gap: .75rem; }
.cgate-policy-block { border-radius: var(--r1); padding: .85rem 1rem; border: 1px solid var(--border); }
.cgate-policy-block--permitted { background: rgba(16,185,129,.04); border-color: rgba(16,185,129,.15); }
.cgate-policy-block--forbidden { background: rgba(239,68,68,.04);   border-color: rgba(239,68,68,.15); }
.cgate-policy-block--legal     { background: rgba(245,158,11,.04);  border-color: rgba(245,158,11,.15); }
.cgate-policy-block-hd { font-size: .7rem; font-weight: 900; text-transform: uppercase; letter-spacing: .5px; color: var(--muted); margin-bottom: .6rem; display: flex; align-items: center; gap: .35rem; }
.cgate-policy-list     { padding-left: 1.1rem; margin: 0; display: flex; flex-direction: column; gap: .35rem; }
.cgate-policy-list li  { font-size: .75rem; color: var(--muted); font-weight: 600; line-height: 1.5; }
.cgate-policy-legal-text { font-size: .74rem; color: var(--muted); line-height: 1.7; margin: 0; }
.cgate-policy-legal-text a { color: var(--tag); font-weight: 700; text-decoration: underline; }
.cgate-policy-report {
  font-size: .72rem; color: var(--muted); font-weight: 600;
  padding: .65rem .9rem; border-radius: var(--rs);
  background: rgba(239,68,68,.05); border: 1px solid rgba(239,68,68,.15);
  display: flex; align-items: flex-start; gap: .45rem; flex-wrap: wrap; line-height: 1.5;
}
.cgate-policy-report a       { color: #EF4444; font-weight: 800; text-decoration: none; white-space: nowrap; }
.cgate-policy-report a:hover { text-decoration: underline; }

/* cgate- Responsive */
@media (max-width: 576px) {
  .cgate-hd               { padding: .9rem 1rem; gap: .65rem; }
  .cgate-hd-seal          { display: none; }
  .cgate-intents .cgate-intent { padding: .75rem 1rem; }
  .cgate-locked           { padding: 1.5rem 1rem; }
  .cgate-preview          { grid-template-columns: 1fr; }
  .cgate-contact-grid     { grid-template-columns: 1fr; }
  .cgate-policy-body      { padding: .25rem 1rem 1rem; }
  .cgate-history          { padding: .9rem 1rem; }
  .cgate-owner            { padding: 1rem; }
  .cgate-unlocked         { padding: 1.2rem 1rem; }
}
@media (max-width: 380px) {
  .cgate-lock-svg  { width: 56px; height: 64px; }
  .cgate-coin-pill { font-size: .76rem; }
}
/* ═══════════════════════════════════════════════
   DENTAL FELLOWSHIP PARTIALS  —  dfl-* namespace
   Active Fellow  /  Completed Fellow
   Zero styles in blade partials.
═══════════════════════════════════════════════ */
#medical-profile{
  --dfl-gold0:#FFF8DC;--dfl-gold1:#F9E97E;--dfl-gold2:#E8C84A;
  --dfl-gold3:#C8962A;--dfl-gold4:#A87020;--dfl-gold5:#7A4E10;
  --dfl-muted:rgba(249,233,126,.38);
  --dfl-b1:rgba(232,200,74,.08);
  --dfl-b2:rgba(232,200,74,.18);
  --dfl-b3:rgba(232,200,74,.34);
  --dfl-grad:linear-gradient(135deg,#F9E97E 0%,#E8C84A 28%,#C8962A 52%,#E8C84A 78%,#F9E97E 100%);
  --dfl-fd:'Cormorant Garamond',Georgia,serif;
  --dfl-fb:'Jost',system-ui,sans-serif;
}

/* ── SHARED BAND SHELL ── */
.dfl-band{
  font-family:var(--dfl-fb);
  border-radius:18px;overflow:hidden;
  border:1px solid var(--dfl-b2);
  position:relative;
  word-break:break-word;overflow-wrap:anywhere;
}

/* shimmer line */
.dfl-line{height:2.5px;display:block;width:100%;}

/* ════════════════════════════════════════════
   ACTIVE FELLOW
════════════════════════════════════════════ */
.dfl-band.dfl-active{
  background:
    radial-gradient(ellipse 160% 80% at 50% -20%, rgba(200,150,42,.12) 0%, transparent 60%),
    radial-gradient(ellipse 100% 100% at 100% 100%, rgba(10,8,20,.9) 0%, rgba(14,10,2,.95) 100%);
  border-color:var(--dfl-b3);
  box-shadow:
    0 20px 60px rgba(0,0,0,.7),
    0 0 0 1px rgba(232,200,74,.12),
    inset 0 1px 0 rgba(249,233,126,.08);
  animation:dfl-breathe 5s ease-in-out infinite;
}
@keyframes dfl-breathe{
  0%,100%{ box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 0 1px rgba(232,200,74,.12),inset 0 1px 0 rgba(249,233,126,.08); }
  50%    { box-shadow:0 20px 60px rgba(0,0,0,.7),0 0 0 1px rgba(232,200,74,.22),0 0 80px rgba(200,150,42,.12),inset 0 1px 0 rgba(249,233,126,.08); }
}
.dfl-active .dfl-line{background:var(--dfl-grad);}

/* active: hero top section */
.dfl-active-hero{
  padding:1.5rem 1.75rem 1.25rem;
  background:radial-gradient(ellipse 140% 120% at 80% 50%,#1E1500 0%,#120D00 45%,#0A080F 100%);
  border-bottom:1px solid var(--dfl-b1);
  display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap;
  position:relative;
}
.dfl-active-hero::after{
  content:'';position:absolute;bottom:0;left:5%;right:5%;
  height:1px;background:linear-gradient(90deg,transparent,rgba(232,200,74,.2),transparent);
}
.dfl-active-shield{flex-shrink:0;align-self:center;}
.dfl-active-title-wrap{flex:1;min-width:0;}
.dfl-active-eyebrow{
  font-size:.6rem;font-weight:800;text-transform:uppercase;
  letter-spacing:2px;color:var(--dfl-gold3);margin-bottom:.3rem;
}
.dfl-active-name{
  font-family:var(--dfl-fd);font-size:1.3rem;font-weight:700;
  color:var(--dfl-gold0);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dfl-active-sub{font-size:.7rem;color:var(--dfl-muted);margin-top:.2rem;}
.dfl-live-pill{
  display:inline-flex;align-items:center;gap:.4rem;
  background:rgba(34,197,94,.10);border:1px solid rgba(34,197,94,.28);
  border-radius:999px;padding:.28rem .9rem;
  font-size:.65rem;font-weight:800;letter-spacing:.6px;text-transform:uppercase;
  color:rgba(74,222,128,.9);flex-shrink:0;align-self:flex-start;
}
.dfl-live-dot{
  width:7px;height:7px;border-radius:50%;background:#4ade80;
  animation:dfl-live 1.6s ease-in-out infinite;
}
@keyframes dfl-live{0%,100%{opacity:1;}50%{opacity:.2;}}

/* active: body */
.dfl-active-body{padding:1.25rem 1.75rem;}

/* stats row */
.dfl-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:.5rem;margin-bottom:1.1rem;}
.dfl-stat{
  background:rgba(200,150,42,.05);border:1px solid var(--dfl-b1);
  border-radius:10px;padding:.65rem .5rem;text-align:center;
}
.dfl-stat-n{
  font-family:var(--dfl-fd);font-size:1.5rem;font-weight:700;line-height:1;
  background:var(--dfl-grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  display:block;
}
.dfl-stat-n.sm{font-size:.95rem;}
.dfl-stat-l{font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:var(--dfl-muted);margin-top:.18rem;display:block;}

/* role info cell */
.dfl-role-cell{
  display:flex;align-items:flex-start;gap:.75rem;
  background:rgba(200,150,42,.04);border:1px solid var(--dfl-b1);
  border-radius:10px;padding:.75rem .9rem;margin-bottom:1rem;
}
.dfl-role-cell-body{min-width:0;}
.dfl-role-lbl{font-size:.58rem;font-weight:800;text-transform:uppercase;letter-spacing:1.5px;color:var(--dfl-gold4);margin-bottom:.22rem;}
.dfl-role-val{font-family:var(--dfl-fd);font-size:1rem;font-weight:700;color:var(--dfl-gold0);line-height:1.3;}
.dfl-role-cat{font-size:.7rem;color:var(--dfl-muted);margin-top:.15rem;}

/* progress */
.dfl-prog-wrap{margin-bottom:1rem;}
.dfl-prog-hdr{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.4rem;}
.dfl-prog-lbl{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--dfl-gold4);}
.dfl-prog-val{font-size:.7rem;font-weight:700;color:var(--dfl-gold2);}
.dfl-track{height:6px;background:rgba(200,150,42,.10);border-radius:999px;overflow:hidden;}
.dfl-fill{height:100%;background:var(--dfl-grad);border-radius:999px;transition:width 1.4s cubic-bezier(.4,0,.2,1);}

/* level chip */
.dfl-chip{
  display:inline-flex;align-items:center;gap:.35rem;
  border-radius:999px;padding:.3rem .9rem;
  font-family:var(--dfl-fd);font-size:.88rem;font-weight:700;
  border:1.5px solid;
}
.dfl-chip.gold  {border-color:rgba(200,150,42,.5);background:rgba(200,150,42,.13);color:#E8C84A;}
.dfl-chip.silver{border-color:rgba(156,163,175,.4);background:rgba(156,163,175,.11);color:#9CA3AF;}
.dfl-chip.bronze{border-color:rgba(168,112,32,.45);background:rgba(168,112,32,.13);color:#A87020;}
.dfl-chip.base  {border-color:rgba(75,85,99,.4);background:rgba(75,85,99,.13);color:#6B7280;}

/* badges */
.dfl-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem;}
.dfl-badge{
  display:inline-flex;align-items:center;gap:.3rem;
  border-radius:999px;padding:.22rem .7rem;
  font-size:.63rem;font-weight:700;white-space:nowrap;
}
.dfl-badge.gold {background:rgba(200,150,42,.12);border:1px solid var(--dfl-b3);color:var(--dfl-gold2);}
.dfl-badge.green{background:rgba(34,197,94,.10);border:1px solid rgba(34,197,94,.26);color:rgba(74,222,128,.85);}
.dfl-badge.blue {background:rgba(59,130,246,.10);border:1px solid rgba(59,130,246,.24);color:rgba(147,197,253,.85);}
.dfl-badge.red  {background:rgba(184,50,24,.10);border:1px solid rgba(184,50,24,.28);color:rgba(252,165,165,.85);}

/* cert/mou strip */
.dfl-strip{
  display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .8rem;
  background:rgba(200,150,42,.04);border:1px solid var(--dfl-b1);
  border-radius:10px;padding:.6rem .85rem;margin-bottom:.85rem;
}
.dfl-strip-lbl{font-size:.56rem;font-weight:700;text-transform:uppercase;letter-spacing:.9px;color:var(--dfl-gold4);}
.dfl-strip-val{font-family:monospace;font-size:.78rem;font-weight:700;color:var(--dfl-gold2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px;}
.dfl-strip-sep{width:1px;height:16px;background:var(--dfl-b2);flex-shrink:0;}
.dfl-strip-li{font-size:.59rem;color:rgba(147,197,253,.65);line-height:1.6;max-width:180px;}
.dfl-strip-li strong{color:rgba(147,197,253,.82);}

/* download buttons */
.dfl-actions{display:flex;flex-wrap:wrap;gap:.45rem;}
.dfl-btn{
  display:inline-flex;align-items:center;gap:.38rem;
  border-radius:9px;padding:.44rem .95rem;
  font-family:var(--dfl-fb);font-weight:800;font-size:.7rem;
  border:none;cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:transform .18s,box-shadow .18s;
}
.dfl-btn:hover{transform:translateY(-2px);}
.dfl-btn.gold{
  background:linear-gradient(110deg,#F9E97E 0%,#C8962A 40%,#F9E97E 70%,#C8962A 100%);
  background-size:250% auto;color:#09070E;
  box-shadow:0 4px 16px rgba(200,150,42,.28);
}
.dfl-btn.gold:hover{box-shadow:0 8px 24px rgba(200,150,42,.4);color:#09070E;}
.dfl-btn.red{
  background:linear-gradient(110deg,#FCA5A5 0%,#B83218 40%,#FCA5A5 70%,#B83218 100%);
  background-size:250% auto;color:#fff;
  box-shadow:0 4px 16px rgba(184,50,24,.28);
}
.dfl-btn.red:hover{box-shadow:0 8px 24px rgba(184,50,24,.4);color:#fff;}

/* LOR tease pill */
.dfl-lor-tease{
  display:inline-flex;align-items:center;gap:.38rem;
  background:rgba(184,50,24,.09);border:1px solid rgba(184,50,24,.26);
  border-radius:999px;padding:.26rem .8rem;
  font-size:.63rem;font-weight:700;color:rgba(252,165,165,.82);
}

/* ════════════════════════════════════════════
   COMPLETED FELLOW  —  Alumni
════════════════════════════════════════════ */
.dfl-band.dfl-alumni{
  background:linear-gradient(160deg,#120F00 0%,#0D0A00 40%,#0A0816 100%);
  border-color:rgba(200,150,42,.22);
  box-shadow:0 16px 50px rgba(0,0,0,.65),inset 0 1px 0 rgba(249,233,126,.06);
}
.dfl-alumni .dfl-line{
  background:linear-gradient(90deg,#C8962A 0%,#F9E97E 30%,#E8C84A 50%,#F9E97E 70%,#C8962A 100%);
  opacity:.7;
}

/* alumni hero */
.dfl-alumni-hero{
  padding:1.5rem 1.75rem;
  background:radial-gradient(ellipse 160% 100% at 30% 50%,#1C1500 0%,#100C00 50%,#080614 100%);
  border-bottom:1px solid rgba(200,150,42,.08);
  display:grid;grid-template-columns:auto 1fr auto;
  gap:1rem;align-items:center;
}
@media(max-width:520px){.dfl-alumni-hero{grid-template-columns:1fr;}}
.dfl-alumni-seal{
  width:56px;height:56px;border-radius:50%;
  background:radial-gradient(circle at 40% 35%,#2A1C00,#1A1200);
  border:1.5px solid rgba(200,150,42,.3);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0 20px rgba(200,150,42,.12),inset 0 1px 0 rgba(249,233,126,.08);
  flex-shrink:0;
}
.dfl-alumni-info{min-width:0;}
.dfl-alumni-eyebrow{
  font-size:.58rem;font-weight:800;text-transform:uppercase;
  letter-spacing:2.2px;color:var(--dfl-gold4);margin-bottom:.3rem;
}
.dfl-alumni-name{
  font-family:var(--dfl-fd);font-size:1.25rem;font-weight:700;
  color:var(--dfl-gold0);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dfl-alumni-sub{font-size:.68rem;color:var(--dfl-muted);margin-top:.18rem;}
.dfl-alumni-pill{
  display:inline-flex;align-items:center;gap:.38rem;
  background:rgba(200,150,42,.10);border:1px solid var(--dfl-b3);
  border-radius:999px;padding:.28rem .9rem;
  font-size:.64rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  color:var(--dfl-gold2);flex-shrink:0;white-space:nowrap;align-self:flex-start;
}

/* alumni body */
.dfl-alumni-body{padding:1.25rem 1.75rem;}

/* parchment cert display */
.dfl-parchment{
  background:linear-gradient(150deg,#1E1600 0%,#2A1C00 50%,#1A1200 100%);
  border:1.5px solid rgba(200,150,42,.35);border-radius:12px;
  padding:1.4rem;text-align:center;position:relative;overflow:hidden;
  margin-bottom:1rem;
}
.dfl-parchment::before{
  content:'';position:absolute;inset:7px;
  border:1px solid rgba(200,150,42,.12);border-radius:8px;pointer-events:none;
}
.dfl-parchment::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 50% at 50% -5%,rgba(200,150,42,.08) 0%,transparent 60%);
  pointer-events:none;
}
.dfl-parch-z{position:relative;z-index:1;}
.dfl-parch-issued{font-size:.56rem;font-weight:800;letter-spacing:2.2px;text-transform:uppercase;color:var(--dfl-muted);margin-bottom:.3rem;}
.dfl-parch-rule{width:50px;height:1.5px;background:var(--dfl-grad);margin:.55rem auto;}
.dfl-parch-name{
  font-family:var(--dfl-fd);font-size:clamp(1.1rem,3vw,1.45rem);font-weight:700;
  color:var(--dfl-gold0);border-bottom:1.5px solid rgba(200,150,42,.4);
  display:inline-block;padding:0 1rem .18rem;margin-bottom:.3rem;
  max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.dfl-parch-role{
  font-size:.6rem;font-weight:700;text-transform:uppercase;
  letter-spacing:1.4px;color:var(--dfl-gold3);margin-bottom:.75rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dfl-parch-body{
  font-family:var(--dfl-fd);font-size:.84rem;font-style:italic;
  color:rgba(255,248,220,.4);line-height:1.75;
  max-width:340px;margin:0 auto .75rem;
}
.dfl-parch-body strong{color:var(--dfl-gold2);font-style:normal;}
.dfl-parch-footer{
  display:flex;justify-content:space-around;flex-wrap:wrap;gap:.4rem;
  border-top:1px solid rgba(200,150,42,.12);padding-top:.7rem;margin-top:.7rem;
}
.dfl-parch-meta-lbl{font-size:.52rem;text-transform:uppercase;letter-spacing:.9px;color:var(--dfl-muted);font-weight:700;}
.dfl-parch-meta-val{font-family:var(--dfl-fd);font-size:.8rem;font-weight:700;color:var(--dfl-gold2);margin-top:.1rem;}
.dfl-cert-id{font-family:monospace;font-size:.58rem;color:rgba(200,150,42,.38);margin-top:.5rem;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;}

/* timeline */
.dfl-tl{
  display:flex;align-items:center;gap:0;
  background:rgba(200,150,42,.04);border:1px solid var(--dfl-b1);
  border-radius:10px;padding:.65rem .9rem;margin-bottom:.85rem;overflow-x:auto;
}
.dfl-tl-node{display:flex;flex-direction:column;align-items:center;text-align:center;flex-shrink:0;min-width:70px;}
.dfl-tl-dot{width:9px;height:9px;border-radius:50%;background:var(--dfl-gold2);border:2px solid var(--dfl-gold3);margin-bottom:.3rem;}
.dfl-tl-lbl{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--dfl-muted);}
.dfl-tl-val{font-family:var(--dfl-fd);font-size:.82rem;font-weight:700;color:var(--dfl-gold0);margin-top:.06rem;}
.dfl-tl-bar{flex:1;height:1.5px;background:linear-gradient(90deg,var(--dfl-gold3),var(--dfl-gold4));min-width:20px;}

/* LOR block (alumni owner) */
.dfl-lor{
  background:rgba(200,150,42,.04);border:1px solid var(--dfl-b1);
  border-radius:10px;padding:1.1rem;margin-bottom:.85rem;
  position:relative;overflow:hidden;
}
.dfl-lor-hdr{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.65rem;padding-bottom:.65rem;border-bottom:1px solid var(--dfl-b1);}
.dfl-lor-ref{text-align:right;font-size:.59rem;color:var(--dfl-muted);line-height:1.55;}
.dfl-lor-ref strong{color:var(--dfl-gold3);display:block;font-size:.65rem;}
.dfl-lor-subject{font-family:var(--dfl-fd);font-size:.92rem;font-weight:700;color:var(--dfl-gold1);margin-bottom:.12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dfl-lor-body{
  font-size:.75rem;color:rgba(255,248,220,.42);line-height:1.82;
  display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden;
  word-break:break-word;
}
.dfl-lor-body.expanded{-webkit-line-clamp:unset;}
.dfl-lor-sig{margin-top:.75rem;padding-top:.6rem;border-top:1px solid var(--dfl-b1);}
.dfl-lor-sig-name{font-family:var(--dfl-fd);font-size:.92rem;font-weight:700;color:var(--dfl-gold0);}
.dfl-lor-sig-role{font-size:.6rem;color:var(--dfl-muted);line-height:1.5;margin-top:.08rem;}
.dfl-expand-btn{display:block;width:100%;text-align:center;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--dfl-gold3);background:none;border:none;cursor:pointer;padding:.38rem 0 0;}

/* LinkedIn note */
.dfl-li-note{
  display:flex;align-items:flex-start;gap:.42rem;
  background:rgba(10,102,194,.08);border:1px solid rgba(10,102,194,.2);
  border-radius:9px;padding:.5rem .7rem;
  font-size:.65rem;color:rgba(255,255,255,.42);line-height:1.6;
  margin-bottom:.85rem;word-break:break-word;
}
.dfl-li-note strong{color:rgba(147,197,253,.78);}

@media(max-width:480px){
  .dfl-active-hero,.dfl-active-body,.dfl-alumni-body{padding-left:1rem;padding-right:1rem;}
  .dfl-alumni-hero{padding:1.1rem 1rem;}
}
@media(prefers-reduced-motion:reduce){
  .dfl-band.dfl-active,.dfl-live-dot{animation:none;}
  .dfl-fill{transition:none;}
}
/* ═══════════════════════════════════════════
   FELLOWSHIP CARD  —  fp-* namespace
   All text truncation / overflow handled here
═══════════════════════════════════════════ */
.fp-root{
  --fp-g0:#FFF8DC;--fp-g1:#F9E97E;--fp-g2:#E8C84A;--fp-g3:#C8962A;--fp-g4:#A87020;
  --fp-ink:#09070E;--fp-ink2:#1A1628;
  --fp-b1:rgba(232,200,74,.10);--fp-b2:rgba(232,200,74,.20);--fp-b3:rgba(232,200,74,.36);
  --fp-grad:linear-gradient(135deg,#F9E97E 0%,#E8C84A 30%,#C8962A 55%,#E8C84A 80%,#F9E97E 100%);
  --fp-btn:linear-gradient(110deg,#F9E97E 0%,#C8962A 40%,#F9E97E 70%,#C8962A 100%);
  --fp-r:12px;--fp-rpill:999px;
  --fp-fd:'Cormorant Garamond',Georgia,serif;
  --fp-fb:'Jost',system-ui,sans-serif;

  font-family:var(--fp-fb);
  background:var(--fp-ink2);
  border:1px solid var(--fp-b2);
  border-radius:20px;
  overflow:hidden;                      /* hard clip — nothing escapes */
  box-shadow:0 16px 48px rgba(0,0,0,.55);
  position:relative;
  word-break:break-word;               /* global overflow guard */
  overflow-wrap:anywhere;
}
.fp-root.fp-active{ border-color:var(--fp-b3); box-shadow:0 16px 48px rgba(0,0,0,.55),0 0 32px rgba(200,150,42,.12); }

/* shimmer line */
.fp-topline{ height:2.5px; background:var(--fp-grad); }
.fp-topline--rare{ background:linear-gradient(90deg,#B83218,#E8452A,#B83218); }

/* ── HEADER ── */
.fp-hd{
  padding:1.25rem 1.5rem;
  background:radial-gradient(ellipse 120% 110% at 80% 50%,#1E1500 0%,#110D00 50%,#0D0A18 100%);
  display:flex; align-items:flex-start; gap:.85rem; flex-wrap:wrap;
  border-bottom:1px solid var(--fp-b1);
}
.fp-hd-logo{ height:28px; width:auto; object-fit:contain; flex-shrink:0; }
.fp-hd-sep{ width:1px; height:24px; background:var(--fp-b2); flex-shrink:0; align-self:center; }
.fp-hd-info{ flex:1; min-width:0; }         /* min-width:0 lets flex child shrink past content */
.fp-hd-title{
  font-family:var(--fp-fd); font-size:1.05rem; font-weight:700;
  color:var(--fp-g0); line-height:1.25;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;  /* single-line cap */
}
.fp-hd-sub{ font-size:.68rem; color:rgba(249,233,126,.42); margin-top:.15rem; }
.fp-status-pill{
  display:inline-flex; align-items:center; gap:.35rem;
  border-radius:var(--fp-rpill); padding:.25rem .75rem;
  font-size:.65rem; font-weight:800; letter-spacing:.5px; text-transform:uppercase;
  flex-shrink:0; align-self:flex-start; white-space:nowrap;
}
.fp-pill-active{ background:rgba(34,197,94,.12); border:1px solid rgba(34,197,94,.3); color:rgba(74,222,128,.9); }
.fp-pill-alumni{ background:rgba(200,150,42,.12); border:1px solid var(--fp-b3); color:var(--fp-g2); }
.fp-pulse{ width:7px; height:7px; border-radius:50%; background:#4ade80; animation:fp-blink 1.4s ease-in-out infinite; }
@keyframes fp-blink{ 0%,100%{opacity:1;} 50%{opacity:.25;} }

/* ── BODY ── */
.fp-body{ padding:1.25rem 1.5rem; }
@media(max-width:480px){ .fp-hd,.fp-body{ padding-left:1rem; padding-right:1rem; } }

/* ── SECTION ── */
.fp-sec{ margin-bottom:1.25rem; }
.fp-sec:last-child{ margin-bottom:0; }
.fp-sec-lbl{
  font-size:.6rem; font-weight:800; text-transform:uppercase;
  letter-spacing:1.8px; color:var(--fp-g4); margin-bottom:.6rem;
}

/* ── INFO GRID ── */
.fp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
@media(max-width:380px){ .fp-grid{ grid-template-columns:1fr; } }
.fp-cell{
  background:rgba(200,150,42,.05); border:1px solid var(--fp-b1);
  border-radius:var(--fp-r); padding:.65rem .85rem;
  min-width:0;                         /* flex/grid overflow guard */
}
.fp-cell--wide{ grid-column:1/-1; }
.fp-cell-lbl{ font-size:.59rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:rgba(249,233,126,.42); margin-bottom:.2rem; }
.fp-cell-val{
  font-family:var(--fp-fd); font-size:.92rem; font-weight:700; color:var(--fp-g0);
  line-height:1.35;
  /* overflow: allow wrap but cap at 4 lines */
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden;
}
.fp-cell-val--sm{
  font-family:var(--fp-fb); font-size:.78rem; font-weight:600;
  color:rgba(255,248,220,.65); line-height:1.45;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden;
}

/* ── BADGES ── */
.fp-badges{ display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1rem; }
.fp-badge{
  display:inline-flex; align-items:center; gap:.3rem;
  border-radius:var(--fp-rpill); padding:.25rem .75rem;
  font-size:.66rem; font-weight:700; white-space:nowrap;
}
.fp-badge--gold{  background:rgba(200,150,42,.14); border:1px solid var(--fp-b3); color:var(--fp-g2); }
.fp-badge--green{ background:rgba(34,197,94,.10);  border:1px solid rgba(34,197,94,.25); color:rgba(74,222,128,.85); }
.fp-badge--blue{  background:rgba(59,130,246,.10); border:1px solid rgba(59,130,246,.25); color:rgba(147,197,253,.85); }

/* ── CREDIT POINTS ── */
.fp-pts{
  background:radial-gradient(ellipse 110% 100% at 50% 0%,#1A1200 0%,#0F0B00 50%,#0D0B16 100%);
  border:1px solid var(--fp-b2); border-radius:var(--fp-r);
  padding:1.1rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap;
}
.fp-pts-num{
  font-family:var(--fp-fd); font-size:2rem; font-weight:700; line-height:1;
  background:var(--fp-grad); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.fp-pts-lbl{ font-size:.6rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; color:rgba(249,233,126,.42); margin-top:.15rem; }
.fp-level{
  display:inline-flex; align-items:center; gap:.35rem;
  padding:.32rem .85rem; border-radius:var(--fp-rpill);
  font-family:var(--fp-fd); font-size:.85rem; font-weight:700; border:1.5px solid;
}

/* ── CERTIFICATE CARD ── */
.fp-cert{
  background:linear-gradient(145deg,#1E1600 0%,#2A1C00 45%,#1A1200 100%);
  border:1.5px solid var(--fp-g3); border-radius:var(--fp-r);
  padding:1.5rem 1.25rem; text-align:center;
  position:relative; overflow:hidden;
}
.fp-cert::before{
  content:''; position:absolute; inset:8px;
  border:1px solid rgba(200,150,42,.15); border-radius:calc(var(--fp-r) - 4px); pointer-events:none;
}
.fp-cert-z{ position:relative; z-index:1; }
.fp-cert-hd{ display:flex; align-items:center; justify-content:center; gap:.75rem; margin-bottom:.5rem; flex-wrap:wrap; }
.fp-cert-logo{ height:28px; width:auto; object-fit:contain; }
.fp-cert-sep{ width:1px; height:22px; background:var(--fp-b2); }
.fp-cert-rule{ width:60px; height:1.5px; background:var(--fp-grad); margin:.6rem auto; }
.fp-cert-issued{ font-size:.56rem; font-weight:800; letter-spacing:2px; text-transform:uppercase; color:rgba(249,233,126,.42); margin-bottom:.3rem; }
.fp-cert-name{
  font-family:var(--fp-fd); font-size:clamp(1.1rem,3vw,1.5rem); font-weight:700;
  color:var(--fp-g0); border-bottom:1.5px solid var(--fp-g3);
  display:inline-block; padding:0 1rem .18rem; margin-bottom:.3rem;
  max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.fp-cert-role{
  font-size:.6rem; font-weight:700; text-transform:uppercase;
  letter-spacing:1.4px; color:var(--fp-g3); margin-bottom:.8rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.fp-cert-body{
  font-family:var(--fp-fd); font-size:.85rem; font-style:italic;
  color:rgba(255,248,220,.45); line-height:1.7;
  max-width:360px; margin:0 auto .8rem;
}
.fp-cert-body strong{ color:var(--fp-g2); font-style:normal; }
.fp-cert-meta{
  display:flex; justify-content:space-around; flex-wrap:wrap; gap:.4rem;
  margin-top:.8rem; padding-top:.75rem; border-top:1px solid rgba(200,150,42,.14);
}
.fp-cert-meta-lbl{ font-size:.52rem; text-transform:uppercase; letter-spacing:.9px; color:rgba(249,233,126,.42); font-weight:700; }
.fp-cert-meta-val{ font-family:var(--fp-fd); font-size:.78rem; font-weight:700; color:var(--fp-g2); margin-top:.1rem; }

/* cert number — owner only, monospace pill */
.fp-cert-id{
  font-family:monospace; font-size:.6rem; color:rgba(200,150,42,.5);
  margin-top:.55rem; letter-spacing:.04em;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}

/* ── ACTIONS ── */
.fp-actions{ display:flex; justify-content:center; gap:.55rem; margin-top:.85rem; flex-wrap:wrap; }
.fp-dl-btn{
  display:inline-flex; align-items:center; gap:.4rem;
  background:var(--fp-btn); background-size:250% auto;
  color:var(--fp-ink); font-family:var(--fp-fb); font-weight:800; font-size:.75rem;
  border:none; border-radius:var(--fp-r); padding:.48rem 1rem;
  cursor:pointer; text-decoration:none;
  box-shadow:0 4px 16px rgba(200,150,42,.25);
  transition:transform .18s,box-shadow .18s;
  white-space:nowrap;
}
.fp-dl-btn:hover{ transform:translateY(-2px); box-shadow:0 8px 24px rgba(200,150,42,.35); color:var(--fp-ink); }

/* linkedin note */
.fp-li-note{
  display:flex; align-items:flex-start; gap:.45rem;
  background:rgba(10,102,194,.09); border:1px solid rgba(10,102,194,.22);
  border-radius:var(--fp-r); padding:.55rem .75rem;
  font-size:.68rem; color:rgba(255,255,255,.45); line-height:1.6;
  margin-top:.65rem; text-align:left;
  word-break:break-word;
}
.fp-li-note strong{ color:rgba(147,197,253,.8); }

/* ── MOU ROW ── */
.fp-mou-row{
  display:flex; align-items:center; gap:.7rem;
  background:rgba(200,150,42,.05); border:1px solid var(--fp-b1);
  border-radius:var(--fp-r); padding:.8rem .95rem; flex-wrap:wrap;
}
.fp-mou-lbl{ font-size:.59rem; font-weight:700; text-transform:uppercase; letter-spacing:.8px; color:var(--fp-g4); }
.fp-mou-num{
  font-family:monospace; font-size:.82rem; font-weight:700; color:var(--fp-g2);
  margin-top:.1rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%;
}

/* ── LOR ── */
.fp-lor{
  background:linear-gradient(145deg,#1A1400 0%,#221800 50%,#1A1200 100%);
  border:1.5px solid var(--fp-b2); border-radius:var(--fp-r);
  padding:1.25rem; position:relative; overflow:hidden;
}
.fp-lor::before{
  content:''; position:absolute; inset:6px;
  border:1px solid rgba(200,150,42,.08); border-radius:calc(var(--fp-r) - 4px); pointer-events:none;
}
.fp-lor-z{ position:relative; z-index:1; }
.fp-lor-hd{
  display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:.6rem;
  margin-bottom:.75rem; padding-bottom:.75rem; border-bottom:1px solid rgba(200,150,42,.10);
}
.fp-lor-logo{ height:22px; width:auto; object-fit:contain; }
.fp-lor-ref{ text-align:right; font-size:.6rem; color:rgba(249,233,126,.42); line-height:1.55; }
.fp-lor-ref strong{ color:var(--fp-g3); display:block; font-size:.66rem; }
.fp-lor-subject{ font-family:var(--fp-fd); font-size:.9rem; font-weight:700; color:var(--fp-g1); margin-bottom:.15rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.fp-lor-body{
  font-size:.76rem; color:rgba(255,248,220,.45); line-height:1.8;
  /* cap long letters at ~10 lines */
  display:-webkit-box; -webkit-line-clamp:10; -webkit-box-orient:vertical; overflow:hidden;
  word-break:break-word;
}
.fp-lor-body.fp-lor-expanded{ -webkit-line-clamp:unset; }
.fp-lor-body strong{ color:var(--fp-g1); }
.fp-lor-body p{ margin-bottom:.5rem; }
.fp-lor-sig{ margin-top:.85rem; padding-top:.65rem; border-top:1px solid rgba(200,150,42,.10); }
.fp-lor-sig-name{ font-family:var(--fp-fd); font-size:.95rem; font-weight:700; color:var(--fp-g0); }
.fp-lor-sig-role{ font-size:.62rem; color:rgba(249,233,126,.42); margin-top:.08rem; line-height:1.5; }
.fp-expand-btn{
  display:block; width:100%; text-align:center;
  font-size:.67rem; font-weight:700; color:var(--fp-g3);
  background:none; border:none; cursor:pointer; padding:.4rem 0 0;
  letter-spacing:.3px; text-transform:uppercase;
}

/* LOR public tease */
.fp-lor-tease{
  background:rgba(184,50,24,.07); border:1px solid rgba(184,50,24,.24);
  border-radius:var(--fp-r); padding:.9rem 1rem;
  display:flex; align-items:center; gap:.75rem;
}
.fp-lor-tease-title{ font-family:var(--fp-fd); font-size:.9rem; font-weight:700; color:var(--fp-g0); }
.fp-lor-tease-sub{ font-size:.7rem; color:rgba(249,233,126,.42); margin-top:.15rem; line-height:1.55; }

/* ── DIVIDER ── */
.fp-divider{ height:1px; background:linear-gradient(90deg,transparent,var(--fp-b2),transparent); margin:1.1rem 0; }
