/* ═══ PSW PREMIUM UPGRADE: navy/gold glass + gradient-border cards ═══ */

/* --- 1. Gradient-border premium cards (the 2026 standard) --- */
.reference-card,
.case-card,
.founder-card,
.insight-row{
  position:relative;
  border:1px solid var(--line);
  border-radius:18px;
  background:
    linear-gradient(165deg, rgba(18,42,64,.72), rgba(10,31,51,.55));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:
    0 1px 0 rgba(220,184,119,.08) inset,
    0 18px 40px -24px rgba(0,0,0,.7);
  transition:transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s, border-color .45s;
  overflow:hidden;
  isolation:isolate;
}
/* animated conic gradient ring on hover */
.reference-card:before,
.case-card:before,
.founder-card:before{
  content:'';
  position:absolute; inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:conic-gradient(from var(--ring-angle,0deg),
    transparent 0%, rgba(220,184,119,.85) 12%,
    transparent 30%, transparent 62%,
    rgba(200,159,93,.5) 74%, transparent 90%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite:exclude;
  opacity:0;
  transition:opacity .45s;
  z-index:1;
  pointer-events:none;
  animation:ring-spin 4.5s linear infinite;
  animation-play-state:paused;
}
@property --ring-angle{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
@keyframes ring-spin{ to{ --ring-angle:360deg; } }
.reference-card:hover:before,
.case-card:hover:before,
.founder-card:hover:before{ opacity:1; animation-play-state:running; }

.reference-card:hover,
.case-card:hover,
.founder-card:hover{
  transform:translateY(-6px);
  box-shadow:
    0 24px 60px -28px rgba(0,0,0,.85),
    0 0 0 1px rgba(220,184,119,.18),
    0 0 44px -14px rgba(200,159,93,.35);
}

/* --- 2. Card media treatment --- */
.card-media{
  position:relative;
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  border-radius:12px;
  margin:14px 14px 0;
  background:#0a1f33;
}
.card-media img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .8s cubic-bezier(.22,1,.36,1), filter .8s;
}
.reference-card:hover .card-media img{
  transform:scale(1.06);
  filter:saturate(1.12) brightness(1.05);
}
.card-media:after{ /* gold gloss sweep */
  content:'';
  position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 30%, rgba(220,184,119,.12) 48%, transparent 62%);
  transform:translateX(-120%);
  transition:transform .9s ease;
}
.reference-card:hover .card-media:after,
.case-card:hover .card-media:after{ transform:translateX(120%); }

/* --- 3. Tag chips: gold-foil pill --- */
.tag{
  display:inline-flex; align-items:center; gap:7px;
  font-size:11px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-bright);
  padding:6px 14px;
  border-radius:999px;
  border:1px solid rgba(200,159,93,.35);
  background:linear-gradient(120deg, rgba(200,159,93,.12), rgba(200,159,93,.04));
}
.tag:before{
  content:'';
  width:5px; height:5px; border-radius:50%;
  background:var(--gold-bright);
  box-shadow:0 0 8px rgba(220,184,119,.9);
}

/* --- 4. Section kickers: indexed rule line --- */
.kicker{
  display:flex; align-items:center; gap:12px;
}
.kicker:after{
  content:'';
  flex:0 0 56px; height:1px;
  background:linear-gradient(90deg, var(--gold), transparent);
}

/* --- 5. Premium buttons --- */
.button{
  position:relative;
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 28px;
  border-radius:999px;
  font-weight:500; letter-spacing:.04em;
  color:#011425;
  background:linear-gradient(120deg, #dcb877, #c89f5d 55%, #b0884a);
  box-shadow:0 10px 30px -12px rgba(200,159,93,.55);
  transition:transform .35s, box-shadow .35s, filter .35s;
  overflow:hidden;
}
.button:after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(115deg, transparent 35%, rgba(255,255,255,.35) 50%, transparent 65%);
  transform:translateX(-130%);
  transition:transform .7s ease;
}
.button:hover{ transform:translateY(-2px); filter:brightness(1.06); box-shadow:0 16px 40px -14px rgba(200,159,93,.7); }
.button:hover:after{ transform:translateX(130%); }
.button.ghost{
  color:var(--gold-bright);
  background:transparent;
  border:1px solid rgba(200,159,93,.45);
  box-shadow:none;
}
.button.ghost:hover{ background:rgba(200,159,93,.08); }

/* --- 6. Stat blocks with counters glow --- */
.stat-row strong{
  font-family:var(--serif);
  font-size:clamp(34px,4vw,52px);
  background:linear-gradient(120deg, #f6f4ef 20%, #dcb877 60%, #c89f5d);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 2px 18px rgba(220,184,119,.25));
}

/* --- 7. Section title em: gold italic accent --- */
.section-title em,
h1 em{
  font-style:italic;
  background:linear-gradient(120deg, #dcb877 10%, #f0d9a8 50%, #c89f5d 90%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* --- 8. Process steps: connected timeline --- */
.process{ position:relative; }
.process:before{
  content:'';
  position:absolute; top:24px; left:6%; right:6%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(200,159,93,.4) 20%, rgba(200,159,93,.4) 80%, transparent);
}
.process-step{
  position:relative;
  background:rgba(10,31,51,.5);
  border:1px solid var(--line);
  border-radius:16px;
  backdrop-filter:blur(8px);
  transition:transform .4s, border-color .4s, box-shadow .4s;
}
.process-step:hover{
  transform:translateY(-4px);
  border-color:rgba(200,159,93,.4);
  box-shadow:0 18px 44px -22px rgba(0,0,0,.8);
}
.process-step strong{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:12px;
  font-family:var(--serif); font-size:20px;
  color:#011425;
  background:linear-gradient(135deg, #dcb877, #c89f5d);
  box-shadow:0 8px 22px -8px rgba(200,159,93,.6);
  margin-bottom:14px;
}

/* --- 9. Scroll reveal (JS adds .in on intersection) --- */
.rv{ opacity:0; transform:translateY(26px); transition:opacity .8s cubic-bezier(.22,1,.36,1), transform .8s cubic-bezier(.22,1,.36,1); }
.rv.in{ opacity:1; transform:none; }

/* --- 10. Hero panel: layered glass --- */
.hero-panel{
  position:relative;
  border-radius:22px;
  border:1px solid var(--line);
  background:linear-gradient(160deg, rgba(18,42,64,.6), rgba(1,20,37,.8));
  backdrop-filter:blur(14px);
  box-shadow:0 30px 80px -40px rgba(0,0,0,.9), 0 1px 0 rgba(220,184,119,.1) inset;
}
.hero-panel.photo{ background-size:cover; background-position:center; }
.hero-panel.photo:before{
  content:''; position:absolute; inset:0; border-radius:inherit;
  background:linear-gradient(180deg, rgba(1,20,37,.25), rgba(1,20,37,.82) 78%);
}
.hero-panel .panel-inner{ position:relative; z-index:1; }
.panel-big em{
  background:linear-gradient(120deg,#dcb877,#f0d9a8 50%,#c89f5d);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}

/* --- 11. Detail items: hairline gold left edge --- */
.detail-item{
  border-left:2px solid rgba(200,159,93,.35);
  padding-left:20px;
  transition:border-color .4s, transform .4s;
}
.detail-item:hover{ border-left-color:var(--gold-bright); transform:translateX(4px); }

/* --- 12. Footer: top gold hairline --- */
footer{ border-top:1px solid transparent; position:relative; }
footer:before{
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(200,159,93,.5) 30%, rgba(220,184,119,.5) 50%, rgba(200,159,93,.5) 70%, transparent);
}

@media (prefers-reduced-motion:reduce){
  .reference-card,.case-card,.founder-card,.rv{ transition:none; }
  .rv{ opacity:1; transform:none; }
  .reference-card:before{ animation:none; }
}

/* --- 13. Social icon row: premium circular gold buttons --- */
.social-row.social-icons{ display:flex; gap:10px; align-items:center; }
.social-row.social-icons a{
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%;
  color:var(--steel);
  border:1px solid var(--line);
  background:linear-gradient(150deg, rgba(18,42,64,.55), rgba(10,31,51,.4));
  backdrop-filter:blur(6px);
  transition:transform .35s, color .35s, border-color .35s, box-shadow .35s, background .35s;
}
.social-row.social-icons a svg{ display:block; }
.social-row.social-icons a:hover{
  transform:translateY(-3px);
  color:#011425;
  border-color:transparent;
  background:linear-gradient(135deg, #dcb877, #c89f5d);
  box-shadow:0 10px 26px -10px rgba(200,159,93,.7);
}

/* ═══ 14. PROPERTY INVENTORY CARDS: same premium language ═══ */
/* Homepage interactive index (.property-card) + generated cards share
   the glass panel, gold ring hover, and foil ID chip treatments. */
.property-card{
  position:relative;
  border:1px solid var(--line);
  border-radius:18px;
  background:linear-gradient(165deg, rgba(18,42,64,.72), rgba(10,31,51,.55));
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 1px 0 rgba(220,184,119,.08) inset, 0 18px 40px -24px rgba(0,0,0,.7);
  transition:transform .45s cubic-bezier(.22,1,.36,1), box-shadow .45s, border-color .45s;
  overflow:hidden;
  isolation:isolate;
}
.property-card:before{
  content:'';
  position:absolute; inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:conic-gradient(from var(--ring-angle,0deg),
    transparent 0%, rgba(220,184,119,.85) 12%,
    transparent 30%, transparent 62%,
    rgba(200,159,93,.5) 74%, transparent 90%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite:exclude;
  opacity:0;
  transition:opacity .45s;
  z-index:1;
  pointer-events:none;
  animation:ring-spin 4.5s linear infinite;
  animation-play-state:paused;
}
.property-card:hover:before{ opacity:1; animation-play-state:running; }
.property-card:hover{
  transform:translateY(-6px);
  border-color:rgba(200,159,93,.35);
  box-shadow:
    0 24px 60px -28px rgba(0,0,0,.85),
    0 0 0 1px rgba(220,184,119,.18),
    0 0 44px -14px rgba(200,159,93,.35);
}
.property-card .property-id{
  display:inline-flex; align-items:center; gap:7px;
  font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-bright);
  padding:5px 12px;
  border-radius:999px;
  border:1px solid rgba(200,159,93,.35);
  background:linear-gradient(120deg, rgba(200,159,93,.14), rgba(200,159,93,.04));
}
.property-card .property-id:before{
  content:'';
  width:5px; height:5px; border-radius:50%;
  background:var(--gold-bright);
  box-shadow:0 0 8px rgba(220,184,119,.9);
}
.property-card h3{
  font-family:var(--serif);
  font-size:22px; line-height:1.12; font-weight:500;
  color:var(--ivory);
}
.property-card .property-location{
  color:var(--steel-dim);
  font-size:12px; letter-spacing:.04em;
}
.property-card .property-bottom span{
  font-size:9.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold);
  display:block; margin-bottom:4px;
}
.property-card .property-bottom strong{
  font-weight:400; color:var(--steel); font-size:12.5px;
}
.property-card .property-note{
  margin-top:16px; padding-top:14px;
  border-top:1px solid rgba(200,159,93,.22);
  font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold);
}
.property-card .property-status{
  font-size:9.5px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--steel-dim);
}

/* ═══ 15. INSIGHT ROWS (archive + index lists), ring hover, framed thumbs ═══ */
.insight-row{
  position:relative;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(165deg, rgba(18,42,64,.55), rgba(10,31,51,.4));
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  overflow:hidden;
  isolation:isolate;
  transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s, border-color .4s;
}
.insight-row:before{
  content:'';
  position:absolute; inset:-1px;
  border-radius:inherit;
  padding:1px;
  background:conic-gradient(from var(--ring-angle,0deg),
    transparent 0%, rgba(220,184,119,.8) 14%,
    transparent 32%, transparent 64%,
    rgba(200,159,93,.45) 76%, transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
          mask-composite:exclude;
  opacity:0;
  transition:opacity .4s;
  z-index:1;
  pointer-events:none;
  animation:ring-spin 4.5s linear infinite;
  animation-play-state:paused;
}
.insight-row:hover:before{ opacity:1; animation-play-state:running; }
.insight-row:hover{
  transform:translateY(-4px);
  border-color:rgba(200,159,93,.3);
  box-shadow:0 20px 50px -26px rgba(0,0,0,.85), 0 0 34px -12px rgba(200,159,93,.3);
}
/* article thumbs inside rows (archive JS emits these) */
.insight-row .row-thumb{
  display:block;
  width:120px; aspect-ratio:16/10;
  border-radius:10px;
  overflow:hidden;
  border:1px solid rgba(200,159,93,.22);
  margin-top:2px;
}
.insight-row .row-thumb img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .7s cubic-bezier(.22,1,.36,1), filter .7s;
}
.insight-row:hover .row-thumb img{ transform:scale(1.08); filter:saturate(1.1); }
.insight-row.no-img .row-thumb{ display:none; }
@media(min-width:901px){
  .insight-row.has-media{ grid-template-columns:120px 96px 1fr 26px; }
}
.row-cat{
  display:inline-flex; align-items:center; gap:7px;
  font-size:10px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--gold-bright); margin-bottom:8px;
}
.row-cat:before{
  content:'';
  width:5px; height:5px; border-radius:50%;
  background:var(--gold-bright);
  box-shadow:0 0 8px rgba(220,184,119,.9);
}
.insight-row .arrow{
  transition:transform .35s;
}
.insight-row:hover .arrow{ transform:translate(3px,-3px); }

/* ═══ 16. HOMEPAGE signal + service cards: join the premium system ═══ */
.signal-card,
.service-card{
  position:relative;
  border:1px solid var(--line);
  border-radius:16px;
  background:linear-gradient(165deg, rgba(18,42,64,.6), rgba(10,31,51,.45));
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:transform .4s cubic-bezier(.22,1,.36,1), box-shadow .4s, border-color .4s;
  overflow:hidden;
}
.signal-card:hover,
.service-card:hover{
  transform:translateY(-4px);
  border-color:rgba(200,159,93,.35);
  box-shadow:0 20px 50px -26px rgba(0,0,0,.85), 0 0 34px -12px rgba(200,159,93,.3);
}
.signal-card .signal-arrow{ transition:transform .35s; }
.signal-card:hover .signal-arrow{ transform:translate(3px,-3px); }
.service-card .service-num{ color:var(--gold-bright); }
.service-card ul li:marker{ color:var(--gold); }

/* ═══ 17. CASE-STUDY APPROVED METRICS STRIP ═══ */
/* Renders only when a case carries approved client metrics
   (case-metrics.json). Gold-foil stat band at the card foot. */
.case-metrics{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(110px, 1fr));
  gap:1px;
  background:rgba(200,159,93,.25);
  border:1px solid rgba(200,159,93,.3);
  border-radius:12px;
  overflow:hidden;
  margin-top:18px;
}
.case-metrics>div{
  background:linear-gradient(160deg, rgba(200,159,93,.12), rgba(10,31,51,.4));
  padding:14px 16px;
}
.case-metrics strong{
  display:block;
  font-family:var(--serif);
  font-size:26px; line-height:1;
  background:linear-gradient(120deg, #f6f4ef 15%, #dcb877 60%, #c89f5d);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
}
.case-metrics span{
  display:block; margin-top:6px;
  font-size:9px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--steel-dim);
}

/* ══════════════════════════════════════════════════════════════════
   18. TEXT VISIBILITY PATCH: every word clearly readable everywhere
   ══════════════════════════════════════════════════════════════════
   Failures fixed (WCAG-audited):
   · muted tokens sat on ivory/paper at 2.3–2.9:1  → dark equivalents
   · glass cards over LIGHT sections washed out    → opaque light card
   · ghost buttons ivory-on-ivory in light zones   → dark ghost
   · reveal animation could strand text invisible  → CSS failsafe
   -------------------------------------------------------------------- */

/* --- 18a. Light-section muted text: swap to dark equivalents --- */
.light .evidence{ color:#4a5560; }
.light .meta,
.light .founder-card .disclosure{ color:#6b5638; }
.light .panel-small,
.light .panel-index{ color:#5c6771; }
.light .crumb{ color:#a37c3c; }
/* archive filter chips + select labels in light sections */
.light .row-cat{ color:#a37c3c; }
.light .insight-row .date{ color:#a37c3c; }

/* --- 18b. Cards over LIGHT sections: opaque light surface, dark text
   (no translucency → nothing behind can wash them out) --- */
.light .reference-card,
.light .case-card,
.light .founder-card,
.light .insight-row,
.light .property-card,
.light .process-step,
.light .detail-item,
.light .signal-card,
.light .service-card{
  background:#ffffff;
  border:1px solid #e3ddd0;
  box-shadow:0 14px 34px -24px rgba(38,49,61,.35);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.light .reference-card:hover,
.light .case-card:hover,
.light .insight-row:hover,
.light .property-card:hover,
.light .signal-card:hover,
.light .service-card:hover{
  border-color:rgba(163,124,60,.55);
  box-shadow:0 22px 48px -26px rgba(38,49,61,.45), 0 0 30px -12px rgba(163,124,60,.25);
}
/* headings + body inside those cards → dark ink */
.light .reference-card h3,
.light .case-card h3,
.light .insight-row h3,
.light .property-card h3,
.light .signal-card h3,
.light .service-card h3,
.light .founder-card h3{ color:#1d2733; }
.light .founder-card .role,
.light .founder-card ul,
.light .founder-card ul li{ color:#5c6771; }
.light .founder-card .role{ color:#8a6a35; }
.light .founder-card li:before{ color:#a37c3c; }
.light .founder-card .disclosure{ border-top-color:#e3ddd0; }
.light .reference-card p,
.light .case-card p,
.light .insight-row p,
.light .property-card p,
.light .signal-card p,
.light .service-card p,
.light .process-step p{ color:#4a5560; }
.light .property-card .property-location,
.light .property-card .property-bottom strong,
.light .property-card .property-status{ color:#4a5560; }
.light .property-card .property-note{ color:#a37c3c; border-top-color:#e3ddd0; }
.light .property-card .property-bottom span{ color:#a37c3c; }
.light .insight-row .arrow{ color:#a37c3c; }
/* gold-foil tags: dark gold text on light, 4.6:1
   (selectors mirror the dark-card rules so they win on equal-origin cascade) */.light .tag, .light .reference-card .tag, .light .case-card .tag, .light .insight-row .row-cat, .light .property-card .property-id { /* secondary text on white must clear 4.5:1 */
  color:#7a5c28;
  border-color:rgba(163,124,60,.45);
  background:linear-gradient(120deg, rgba(200,159,93,.16), rgba(200,159,93,.06));
}
.light .tag:before,
.light .property-card .property-id:before{ background:#a37c3c; box-shadow:none; }
/* case metric strips inside light cards */
.light .case-metrics>div{ background:linear-gradient(160deg, rgba(200,159,93,.14), #f8f6f1); }
.light .case-metrics span{ color:#5c6771; }
/* card media gloss sweep stays; dim overlay kept for label contrast */
.light .card-media{ background:#efece4; }
/* ring effect references dark palette: disable on light, use border glow instead */
.light .reference-card:before,
.light .case-card:before,
.light .insight-row:before,
.light .property-card:before{ display:none; }

/* --- 18c. Ghost buttons in light sections: dark ghost --- */
.light .button.ghost{ color:#1d2733; border-color:#b8ab8f; }
.light .button.ghost:hover{ color:#8a6a35; border-color:#a37c3c; background:rgba(200,159,93,.1); }


/* --- 18e. Small gold labels on light surfaces → #8a6a35 (≈5:1 on white)
   (the lighter #a37c3c only reaches 3.8:1 at 10px) --- */
.light .kicker,
.light .detail-item span,
.light .process-step strong,
.light .insight-row .date,
.light .insight-row .arrow,
.light .card-cta,
.light .founder-card .role{ color:#8a6a35; }
.light .kicker:before{ background:#8a6a35; }

/* --- 18f. Homepage card fade-in (replaces fragile inline opacity) --- */
.fade-pre{ opacity:0; transform:translateY(14px); transition:opacity .6s ease, transform .6s ease; }
.fade-pre.fade-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .fade-pre{ opacity:1; transform:none; transition:none; } }

/* --- 18e. Muted text on dark glass floors: lift to 6:1+ --- */
.reference-card p,
.case-card p,
.insight-row p{
  color:#a9b8c6;
}
/* tag text on dark: brighten foil */
.reference-card .tag,
.case-card .tag,
.insight-row .row-cat{ color:var(--gold-bright); }

/* --- 18f. PIT-PALETTE RULE ADDED BELOW IN ITS OWN FILE --- */

/* ══════════════════════════════════════════════════════════════════════════
   19. CONTRAST GUARD: dark cards inside a .light section

   `.section.light{color:#26313d}` cascades into the dark cards and earlier
   rules pinned dark ink onto them, so founder names, body copy and list
   items were unreadable. Dark cards now re-assert their own light text.
   ══════════════════════════════════════════════════════════════════════════ */
.founder-card,.case-card,.reference-card,.product-card,.os-card{ color:var(--steel); }
.founder-card h3,.case-card h3,.reference-card h3,.product-card h3,.os-card h3{ color:var(--ivory); }
.founder-card .role,.case-card .tag,.reference-card .tag,.product-card .tag{ color:var(--gold-bright); }
.founder-card p,
.founder-card .copy,
.case-card p,
.reference-card p,
.product-card p,
.os-card p{ color:#c5d0dc; }
.founder-card ul li,
.case-card ul li{ color:#b8c4d0; }
.founder-card li:before{ color:var(--gold-bright); }
.founder-card .disclosure{ color:#a9b8c6; border-top-color:rgba(191,204,218,.2); }
/* NOTE: in a .light section these cards are opaque white (rule 18b), so their
   body copy must stay dark. An earlier light-text override here made founder
   and case-study copy invisible (1.6:1 on white), removed deliberately.
   Dark sections are still covered by the non-.light rules above. */

/* ══════════════════════════════════════════════════════════════════════════
   20. FOUNDER STAT STRIP: derived figures, never hard-coded
   ══════════════════════════════════════════════════════════════════════════ */
.stat-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);margin-top:1px;
}
.stat-cell{ background:var(--navy-2);padding:26px; }
.stat-cell strong{
  display:block;font-family:var(--serif);font-size:clamp(30px,3.4vw,44px);
  line-height:1;letter-spacing:-.02em;color:var(--ivory);
}
.stat-cell span{
  display:block;margin-top:9px;font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--gold);
}
@media(max-width:900px){ .stat-strip{ grid-template-columns:1fr 1fr; } }
@media(max-width:600px){ .stat-strip{ grid-template-columns:1fr; } }

/* ══════════════════════════════════════════════════════════════════════════
   21. CASE-FILE CHROME

   Case cards are now links to a full case file. A reference-free index is
   fine, but the card gains a clear call to action and the sector line.
   ══════════════════════════════════════════════════════════════════════════ */
a.case-card{ text-decoration:none; color:inherit; }
.case-head{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; }
.case-ref{ font-size:9.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--steel-dim); }
.case-card .case-sector{
  font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-bright);margin:12px 0 0;
}
.case-card .card-cta{
  margin-top:auto;padding-top:20px;
  color:var(--gold-bright);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
}
.case-card .card-cta i{ font-style:normal; display:inline-block; transition:transform .25s; }
.case-card:hover .card-cta i{ transform:translateX(5px); }

/* ══════════════════════════════════════════════════════════════════════════
   22. ARTICLE READER NOTE

   Published briefings quote third-party market context. This block makes it
   unambiguous that those figures are not our inventory, our offer, or our
   commercial position: the confidentiality line the whole site runs on.
   ══════════════════════════════════════════════════════════════════════════ */
.article-reader-note{
  margin:44px 0 0;padding:26px 28px;
  border-left:2px solid var(--gold);
  background:linear-gradient(120deg, rgba(200,159,93,.10), rgba(200,159,93,.02));
  font-size:13.5px;line-height:1.8;color:#c5d0dc;
}
.article-reader-note strong{
  display:block;margin-bottom:10px;
  font-family:var(--serif);font-size:17px;font-weight:600;color:var(--ivory);
}
.light .article-reader-note{ background:linear-gradient(120deg, rgba(200,159,93,.14), rgba(200,159,93,.03)); color:#42505e; }
.light .article-reader-note strong{ color:#1d2733; }

/* ══════════════════════════════════════════════════════════════════════════
   23. LEADERSHIP CARDS: portrait-first, equal height, direct contact

   The three founders share one card shape: a 4:5 portrait at the top, then
   name, role, bio and focus points, with the contact row pinned to the card
   baseline so all three CTAs line up across the grid.
   ══════════════════════════════════════════════════════════════════════════ */
.founder-card{ min-height:0; }
.founder-photo{
  /* page.css pins 112x112 on this box; portrait cards need the height released
     so aspect-ratio can govern it. */
  width:100%;height:auto;aspect-ratio:4/5;border-radius:16px;overflow:hidden;
  margin:0 0 22px;position:relative;
  border:1px solid rgba(200,159,93,.34);
  background:linear-gradient(150deg,rgba(200,159,93,.18),rgba(18,42,64,.5));
  box-shadow:0 0 0 1px rgba(200,159,93,.12), 0 28px 60px -32px rgba(200,159,93,.55);
}
.founder-photo:after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 52%,rgba(1,20,37,.62));
}
.founder-photo img{
  width:100%;height:100%;display:block;
  object-fit:cover;object-position:center 20%;
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
}
.founder-card:hover .founder-photo img{ transform:scale(1.045); }
/* The initials placeholder must occupy the identical box, or the grid breaks. */
.founder-card .founder-avatar{
  width:100%;height:auto;aspect-ratio:4/5;border-radius:16px;margin:0 0 22px;
  font-size:60px;font-weight:600;letter-spacing:.06em;color:#0b1a2b;
  background:linear-gradient(135deg,var(--gold),#8f6a33);
  border:1px solid rgba(200,159,93,.34);
}
.founder-actions{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  margin-top:auto;padding-top:22px;
  border-top:1px solid rgba(191,204,218,.18);
}
.founder-actions .button{ font-size:10px;padding:12px 18px; }
.founder-actions .founder-social{
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(191,204,218,.32);color:var(--steel);
  transition:.25s;
}
.founder-actions .founder-social:hover{
  border-color:var(--gold-bright);color:var(--gold-bright);transform:translateY(-2px);
}
.founder-card .disclosure{ margin-top:16px; }

/* ══════════════════════════════════════════════════════════════════════════
   24. CTA BAND: the closing conversion block, safe inside a light section
   ══════════════════════════════════════════════════════════════════════════ */
.cta-band{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:1.5fr auto;gap:clamp(18px,2.4vw,44px);align-items:center;
  padding:clamp(30px,3.6vw,54px);
  background:linear-gradient(135deg,var(--navy-2),var(--navy-3));
  border:1px solid rgba(200,159,93,.28);
}
.cta-band:before{
  content:'';position:absolute;top:-42%;right:-6%;width:400px;height:400px;pointer-events:none;
  background:radial-gradient(circle,rgba(200,159,93,.18),transparent 66%);
}
.cta-band h2{
  margin:0 0 12px;color:var(--ivory);
  font-family:var(--serif);font-size:clamp(26px,2.7vw,40px);font-weight:500;line-height:1.04;
}
.cta-band p{ margin:0;font-size:13.5px;line-height:1.8;color:#c5d0dc;max-width:58ch; }
.cta-actions{ display:flex;flex-wrap:wrap;gap:12px;position:relative;z-index:1; }
@media(max-width:820px){ .cta-band{ grid-template-columns:1fr; } }

/* Archive rows without a matched hero: branded monogram tile instead of a
   broken-image glyph. Kept subtle so the row still reads as a link. */
.row-thumb .row-thumb-fallback{ width:100%; height:100%; object-fit:contain; padding:14px; background:#e9e2d2; opacity:.75; }

/* ═══ Cards that sit on ivory sections render LIGHT ═══
   .service-card and .signal-card live inside ivory sections and their heading/body
   colours are dark by design, but the shared dark-glass gradient above still applied.
   Dark-on-dark measured ~1.03:1: the titles were effectively invisible. They are now
   white premium cards, and the hover state flips them back to navy as designed. */
.service-card, .signal-card {
  background:#ffffff;
  border:1px solid #e3ddd0;
  box-shadow:0 14px 34px -24px rgba(38,49,61,.35);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.service-card:hover, .signal-card:hover {
  background:var(--navy);
  border-color:rgba(200,159,93,.45);
}
.service-card:hover h3, .signal-card:hover h3 { color:var(--ivory); }
.service-card:hover p, .service-card:hover ul, .service-card:hover li,
.signal-card:hover p, .signal-card:hover .signal-date { color:var(--steel-dim); }
.service-card:hover .service-num, .signal-card:hover .signal-arrow { color:var(--gold-bright); }
/* Compact auto-floating client references — 16px gap, continuous marquee. */
.testimonials.section-pad,.section:has(.testimonial-card){padding-top:clamp(2.8rem,4vw,4.5rem);padding-bottom:clamp(2.8rem,4vw,4.5rem)}
.testimonial-rail,.testimonial-grid,.testimonials > div:has(> .testimonial-card),.section.light .wrap > div:has(> .testimonial-card){display:block !important;overflow:hidden;position:relative;margin-top:24px;padding:4px 2px 10px;border-top:1px solid rgba(200,159,93,.28);border-bottom:1px solid rgba(200,159,93,.28);background:linear-gradient(90deg,rgba(200,159,93,.06),transparent 18%,transparent 82%,rgba(200,159,93,.06));scrollbar-width:none}
.testimonial-rail[data-float="1"]{display:block !important;overflow:hidden}
.testimonial-float-track{display:flex;flex-wrap:nowrap;align-items:stretch;gap:16px;width:max-content;animation:testimonial-float 42s linear infinite;will-change:transform}
.testimonial-rail[data-float="1"]:hover .testimonial-float-track{animation-play-state:paused}
.testimonial-float-track .testimonial-card,.testimonial-rail > .testimonial-card{flex:0 0 min(78vw,390px);box-sizing:border-box;padding:22px 24px 18px !important;border-radius:14px;background:#fff !important;color:#202735 !important;border:1px solid #e3ddd0;box-shadow:0 12px 30px -22px rgba(38,49,61,.45);border-left:3px solid var(--gold,#c89f5d)}
.testimonial-float-track .testimonial-card.is-featured{border-left-width:4px}
.testimonial-float-track .quote,.testimonial-rail .quote,.testimonial-card .quote{margin:0;font-size:15px !important;line-height:1.5 !important;color:#202735 !important}
.testimonial-card .quote:before{font-size:34px;margin-bottom:2px}
.testimonial-float-track .who,.testimonial-rail .who,.testimonial-card .who{margin-top:14px !important;display:flex;align-items:center;gap:12px}
.testimonial-float-track .who strong,.testimonial-rail .who strong,.testimonial-card .who strong{display:block;color:#1c2430 !important;font-size:13px !important}
.testimonial-float-track .who span,.testimonial-rail .who span,.testimonial-card .who span{display:block;color:#5a6675 !important;font-size:11px !important}
.testimonial-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--gold,#c89f5d),#8f6a33);display:grid;place-items:center;color:var(--navy,#011425);font-weight:700;font-size:14px;flex:0 0 auto}
.testimonial-float-track img{width:40px;height:40px;object-fit:contain;border-radius:8px;background:#fff}
@keyframes testimonial-float{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:700px){.testimonial-float-track .testimonial-card,.testimonial-rail > .testimonial-card{flex-basis:min(84vw,340px);padding:20px 18px 16px !important}}
@media(prefers-reduced-motion:reduce){.testimonial-float-track{animation:none}.testimonial-rail[data-float="1"]{overflow-x:auto}}
.testimonial-controls{display:none}
.testimonial-track{display:flex;flex-wrap:nowrap;width:100%;transition:transform .65s cubic-bezier(.22,1,.36,1)}
.testimonial-rail > .testimonial-track > article,.testimonial-grid > .testimonial-track > article{flex:0 0 100%;width:100%;box-sizing:border-box;background:#fff !important;color:#202735 !important;padding:22px 24px 18px !important;border-radius:14px}
.testimonial-track > article p,.testimonial-track > article p[style]{color:#202735 !important}
.testimonial-track > article strong,.testimonial-track > article strong[style]{color:#1c2430 !important}
.testimonial-track > article span,.testimonial-track > article span[style]{color:#5a6675 !important}

/* Hero tighten � Cashfree/Pine first viewport */
.hero-tag { display: none !important; }
.hero-proof-band { padding: 1.25rem 0 0.5rem; }
.hero-proof-band .hero-proof {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 1.15rem 1.35rem;
  background: rgba(10, 31, 51, 0.45);
}
.hero-proof-band .hero-proof strong {
  display: block;
  font-family: var(--display, Cormorant Garamond, serif);
  font-size: clamp(1.6rem, 3vw, 2.1rem);
  color: var(--gold, #c89f5d);
  line-height: 1;
}
.hero-proof-band .hero-proof span {
  color: var(--steel, #bfccda);
  font-size: 0.82rem;
  line-height: 1.35;
}
@media (max-width: 700px) {
  .hero-proof-band .hero-proof { grid-template-columns: 1fr; }
}


/* === Visibility failsafe (2026-09-15): never leave copy invisible === */
.rv:not(.in),
.rv-left:not(.in),
.rv-right:not(.in),
.rv-scale:not(.in),
.reveal:not(.in) {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}
.rv-clip:not(.in) {
  clip-path: none !important;
  opacity: 1 !important;
}
.word-reveal:not(.in) .word,
.word-reveal .word {
  opacity: 1 !important;
  transform: none !important;
}
.text-reveal:not(.in) > *,
.text-reveal > * {
  opacity: 1 !important;
  transform: none !important;
}
.fade-pre:not(.fade-in) {
  opacity: 1 !important;
  transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .rv, .rv-left, .rv-right, .rv-scale, .rv-clip, .reveal, .fade-pre,
  .word-reveal .word, .text-reveal > * {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
    transition: none !important;
  }
}


/* === SHIP VISIBILITY LOCK (2026-09-15c) ===
   Never use transparent text-fill without a guaranteed clipped background.
   Solid accent colour wins everywhere. */
h1 em, h2 em, h3 em, .section-title em, .panel-big em, .large-copy em,
.word-reveal em, .hero h1 em, .hero-copy h1 em {
  font-style: italic !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--px-accent, var(--gold, var(--acid, #c89f5d))) !important;
  filter: none !important;
  opacity: 1 !important;
}
.stat-row strong,
.case-metrics strong,
.index-stat strong,
[data-stat] {
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--px-accent, var(--gold, var(--acid, #c89f5d))) !important;
  filter: none !important;
  opacity: 1 !important;
}
/* Light floors: dark-gold accents, never washed ivory */
.light h1 em, .light h2 em, .light h3 em, .light .section-title em,
.section.light h1 em, .section.light h2 em, .section.light h3 em {
  color: #8a6a35 !important;
  -webkit-text-fill-color: #8a6a35 !important;
}
.light .stat-row strong,
.light .case-metrics strong,
.light .index-stat strong {
  color: #8a6a35 !important;
  -webkit-text-fill-color: #8a6a35 !important;
}
/* Dark floors: never inherit near-black ink on accents */
.hero h1 em, .hero-copy h1 em, .hero-detail h1 em,
body.home h1 em, body.home h2 em {
  color: var(--px-accent, var(--gold, var(--acid, #c89f5d))) !important;
  -webkit-text-fill-color: currentColor !important;
}
/* Reveal / fade / tip: never strand copy invisible */
.rv, .rv-left, .rv-right, .rv-scale, .rv-clip, .reveal, .fade-pre,
.word-reveal .word, .text-reveal > * {
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
  clip-path: none !important;
}
.px-tip-rail { opacity: 0; }
.px-tip-rail.is-on { opacity: 1 !important; }
/* Muted labels: lift contrast */
.panel-index, .panel-small, .px-stack-index, .section-kicker, .kicker,
.orbital-core-kicker, .crumb, .meta, .evidence {
  opacity: 1 !important;
}
.panel-small, .px-stack-card p { opacity: 0.92 !important; }
