/* ============================================================
   BLOOMBRIDGE GROUP — institutional design system
   ============================================================ */

:root{
  /* Ink + paper */
  --ink:        #08090b;
  --ink-2:      #0e1013;
  --graphite:   #14171b;
  --carbon:     #1b1e23;
  --slate:      #2a2e34;
  --paper:      #f4f0e7;
  --paper-2:    #ede8dc;
  --ivory:      #e3ddcd;
  --bone:       #cfc8b6;
  /* Accents */
  --emerald:    #1d3a2e;
  --emerald-2:  #2a5240;
  --emerald-light:#7a9c8c;
  --gold:       #b5985a;
  --gold-soft:  #d6c191;
  --platinum:   #b6b0a3;
  --olive:      #4a4f3b;
  /* Text */
  --text-on-ink:#e7e3d7;
  --muted-ink:  #8d8d83;
  --hair-ink:   rgba(232,228,214,.12);
  --hair-paper: rgba(15,15,15,.12);
  --text-on-paper:#15161a;
  --muted-paper:#5d5e57;

  /* Type */
  --sans: 'Inter Tight', system-ui, -apple-system, sans-serif;
  --serif:'Instrument Serif', 'Times New Roman', serif;
  --mono: 'JetBrains Mono', ui-monospace, Menlo, monospace;

  /* Rhythm */
  --pad-x: clamp(24px, 4vw, 64px);
  --maxw: 1440px;
  --rail-h: 30px;
  --nav-h: 64px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--paper);color:var(--text-on-paper);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
html{scroll-behavior:smooth}
body{overflow-x:hidden;font-feature-settings:"ss01","cv11"}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}

::selection{background:var(--emerald);color:var(--paper)}

/* small caps utility */
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:400}
.serif{font-family:var(--serif);font-style:italic;font-weight:400}

/* hairlines */
.hair{height:1px;background:var(--hair-paper);width:100%}
.hair-ink{background:var(--hair-ink)}

/* ============================================================
   TOP STATUS RAIL
   ============================================================ */
.rail{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--rail-h);
  background:var(--ink);
  color:var(--text-on-ink);
  border-bottom:1px solid var(--hair-ink);
}
.rail-inner{
  max-width:var(--maxw);margin:0 auto;height:100%;
  padding:0 var(--pad-x);
  display:flex;align-items:center;justify-content:space-between;
}
.rail-l,.rail-r{display:flex;align-items:center;gap:14px;white-space:nowrap;min-width:0}
.rail-mono{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--muted-ink);text-transform:uppercase}
.rail-sep{color:var(--muted-ink);opacity:.4}
.rail-clock .t{color:var(--text-on-ink);font-weight:500;margin-left:6px;letter-spacing:.14em}
.rail-l .rail-mono:first-of-type{color:var(--text-on-ink);font-weight:500}
.rail-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 3px rgba(181,152,90,.18);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.7}50%{opacity:1}}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;top:var(--rail-h);left:0;right:0;z-index:99;
  height:var(--nav-h);
  background:rgba(8,9,11,.72);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom:1px solid var(--hair-ink);
  color:var(--text-on-ink);
  transition:background .4s ease, border-color .4s ease;
}
.nav.light{
  background:rgba(244,240,231,.78);
  color:var(--text-on-paper);
  border-bottom-color:var(--hair-paper);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;height:100%;
  padding:0 var(--pad-x);
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px;
}
.brand{display:flex;align-items:baseline;gap:10px;color:inherit}
.brand svg{align-self:center}
.brand-word{font-weight:600;letter-spacing:.18em;font-size:13px}
.brand-sub{font-family:var(--mono);font-size:10px;letter-spacing:.28em;color:var(--gold)}

.nav-links{display:flex;justify-content:center;gap:38px}
.nav-links a{
  font-size:12.5px;letter-spacing:.04em;
  opacity:.78;
  transition:opacity .25s, color .25s;
  position:relative;padding:6px 0;
}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.nav-links a:hover{opacity:1}
.nav-links a:hover::after{transform:scaleX(1)}

.nav-actions{display:flex;align-items:center;gap:18px}
.locale{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  padding:6px 0;color:inherit;
  display:flex;align-items:center;gap:2px;
}
.locale-btn{
  background:none;border:0;padding:6px 4px;
  font:inherit;color:inherit;cursor:pointer;
  opacity:.4;letter-spacing:.18em;text-transform:uppercase;
  transition:opacity .25s ease, color .25s ease;
}
.locale-btn:hover{opacity:.85}
.locale-btn.active{opacity:1;color:var(--gold-soft)}
.nav.light .locale-btn.active{color:var(--gold)}
.locale-sep{opacity:.3;pointer-events:none;user-select:none}

/* Mobile menu locale row — buttons, no separators, gold active marker */
.mobile-menu-locales{
  display:flex;justify-content:center;gap:14px;
}
.mobile-menu-locales .locale-btn{font-size:10.5px;letter-spacing:.22em;color:var(--muted-ink)}
.mobile-menu-locales .locale-btn.active{color:var(--gold);opacity:1}
.btn-ghost{
  display:inline-flex;align-items:center;gap:10px;
  font-size:12px;letter-spacing:.06em;
  padding:10px 16px;
  border:1px solid currentColor;border-radius:1px;
  transition:background .3s ease, color .3s ease, transform .3s ease;
  opacity:.95;
}
.btn-ghost .arrow{transition:transform .3s ease}
/* Hover invert. NOTE: `background: currentColor` next to `color: var(--ink)`
   in the same rule resolves currentColor to the *new* color (ink) — bg + text
   would both go ink and the label disappears. Use explicit paper / ink fills
   instead so the contrast is always inverted vs the section behind. */
.btn-ghost:hover{background:var(--paper);color:var(--ink)}
/* When the ghost lives on a paper-coloured surface (nav.light over the
   ecosystem section), invert the other way: ink fill, paper text. */
.nav.light .btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-ghost:hover .arrow{transform:translateX(4px)}

/* ============================================================
   MOBILE NAV — hamburger + slide-out panel
   Hidden on desktop, shown at <= 900px.
   ============================================================ */
.nav-toggle{
  display:none;
  width:44px;height:44px;
  background:transparent;border:0;cursor:pointer;
  padding:0;align-items:center;justify-content:center;
  color:inherit;
}
.nav-toggle-bars{position:relative;width:22px;height:14px;display:block}
.nav-toggle-bars > span{
  position:absolute;left:0;right:0;height:1.6px;background:currentColor;
  transition:transform .35s cubic-bezier(.2,.7,.2,1), opacity .25s ease, top .35s cubic-bezier(.2,.7,.2,1);
  transform-origin:center;
}
.nav-toggle-bars > span:nth-child(1){top:0}
.nav-toggle-bars > span:nth-child(2){top:50%;margin-top:-.8px}
.nav-toggle-bars > span:nth-child(3){top:auto;bottom:0}
.mobile-menu-open .nav-toggle-bars > span:nth-child(1){top:50%;margin-top:-.8px;transform:rotate(45deg)}
.mobile-menu-open .nav-toggle-bars > span:nth-child(2){opacity:0}
.mobile-menu-open .nav-toggle-bars > span:nth-child(3){top:50%;bottom:auto;margin-top:-.8px;transform:rotate(-45deg)}

/* The menu container itself — fixed overlay above everything */
.mobile-menu{
  position:fixed;inset:0;z-index:200;
  pointer-events:none;
  visibility:hidden;
}
.mobile-menu-backdrop{
  position:absolute;inset:0;
  background:rgba(8,9,11,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  opacity:0;
  transition:opacity .35s ease;
}
.mobile-menu-panel{
  position:absolute;top:0;right:0;bottom:0;
  width:min(420px, 92vw);
  background:var(--ink);color:var(--text-on-ink);
  border-left:1px solid var(--hair-ink);
  box-shadow:0 0 60px -8px rgba(0,0,0,.5);
  transform:translateX(100%);
  transition:transform .42s cubic-bezier(.22,.65,.3,1);
  display:flex;flex-direction:column;
  overflow-y:auto;
  padding:0;
}

/* OPEN state — applied to body */
.mobile-menu-open .mobile-menu{pointer-events:auto;visibility:visible}
.mobile-menu-open .mobile-menu-backdrop{opacity:1}
.mobile-menu-open .mobile-menu-panel{transform:translateX(0)}
.mobile-menu-open{overflow:hidden}  /* lock body scroll */

/* Panel head */
.mobile-menu-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:22px 24px;
  border-bottom:1px solid var(--hair-ink);
  background:rgba(0,0,0,.25);
}
.mobile-menu-head .brand{color:var(--text-on-ink)}
.mobile-menu-head .brand-sub{color:var(--gold)}
.mobile-menu-close{
  width:44px;height:44px;border:0;background:transparent;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  color:var(--muted-ink);transition:color .25s, transform .25s;
}
.mobile-menu-close:hover{color:var(--gold);transform:rotate(90deg)}

/* Primary nav links */
.mobile-menu-nav{
  display:flex;flex-direction:column;
  padding:8px 0;
}
.mobile-menu-nav a{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
  padding:18px 24px;
  font-size:22px;font-weight:300;letter-spacing:-.012em;
  color:var(--text-on-ink);text-decoration:none;
  border-bottom:1px solid var(--hair-ink);
  position:relative;
  transition:background .3s ease, color .3s ease, padding-left .3s ease;
}
.mobile-menu-nav a::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:0;
  background:var(--gold);
  transition:width .3s cubic-bezier(.2,.7,.2,1);
}
.mobile-menu-nav a:hover,
.mobile-menu-nav a:active,
.mobile-menu-nav a:focus-visible{
  background:rgba(181,152,90,.06);
  padding-left:30px;
  color:var(--gold-soft);
  outline:none;
}
.mobile-menu-nav a:hover::before,
.mobile-menu-nav a:focus-visible::before{width:3px}
.mm-num{color:var(--gold);font-size:11px;letter-spacing:.22em}
.mm-label{font-family:var(--sans)}
.mm-arrow{color:var(--muted-ink);font-size:18px;transition:transform .3s ease, color .3s ease}
.mobile-menu-nav a:hover .mm-arrow,
.mobile-menu-nav a:focus-visible .mm-arrow{transform:translateX(4px);color:var(--gold-soft)}

/* Secondary section — Institutional sub-links */
.mobile-menu-sub{
  display:flex;flex-direction:column;
  padding:24px 24px 16px;
  gap:12px;
  border-bottom:1px solid var(--hair-ink);
}
.mobile-menu-sub .mono.dim{color:var(--gold);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:4px}
.mobile-menu-sub a{
  color:var(--text-on-ink);opacity:.85;
  font-size:14px;letter-spacing:.01em;
  padding:8px 0;
  text-decoration:none;
  transition:opacity .25s, color .25s, padding-left .25s;
  position:relative;
}
.mobile-menu-sub a:hover,
.mobile-menu-sub a:active,
.mobile-menu-sub a:focus-visible{
  opacity:1;color:var(--gold-soft);padding-left:12px;outline:none;
}
.mobile-menu-sub a::before{
  content:"";position:absolute;left:0;top:50%;width:0;height:1px;background:var(--gold);
  transition:width .25s ease;
}
.mobile-menu-sub a:hover::before,
.mobile-menu-sub a:focus-visible::before{width:8px}

/* Foot — primary CTA + locale + brand line */
.mobile-menu-foot{
  margin-top:auto;
  padding:28px 24px 32px;
  display:flex;flex-direction:column;gap:20px;
  background:rgba(0,0,0,.25);
  border-top:1px solid var(--hair-ink);
}
.mobile-menu-foot .btn-primary{
  width:100%;
  justify-content:center;
  font-size:13px;
  padding:18px 22px;
  letter-spacing:.08em;
}
.mobile-menu-locales{
  display:flex;justify-content:center;gap:18px;
  font-size:10.5px;letter-spacing:.22em;color:var(--muted-ink);
}
.mobile-menu-locales .active{color:var(--gold);font-weight:500}
.mobile-menu-meta{
  display:flex;flex-direction:column;gap:6px;text-align:center;
  font-size:9.5px;letter-spacing:.2em;color:var(--muted-ink);
}
.mobile-menu-meta .dim{opacity:.7;letter-spacing:.04em;font-family:var(--sans);text-transform:none;font-size:11px}

/* Reduce motion preference */
@media (prefers-reduced-motion: reduce){
  .mobile-menu-panel{transition:none}
  .mobile-menu-backdrop{transition:none}
  .nav-toggle-bars > span{transition:none}
}

/* ============================================================
   SECTION BASE
   ============================================================ */
main{padding-top:calc(var(--rail-h) + var(--nav-h))}
section{
  position:relative;
  padding:clamp(80px,11vw,160px) 0;
}
.section-inner{
  max-width:var(--maxw);margin:0 auto;
  padding:0 var(--pad-x);
}
.section-tag{
  display:flex;align-items:center;gap:14px;
  margin-bottom:48px;
}
.section-tag .num{font-family:var(--mono);font-size:11px;letter-spacing:.22em;opacity:.55}
.section-tag .line{flex:1;height:1px;background:currentColor;opacity:.18;max-width:80px}
.section-tag .label{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase}

/* shared scroll reveal */
.r{opacity:0;transform:translateY(22px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1), transform 1.1s cubic-bezier(.2,.7,.2,1)}
.r.in{opacity:1;transform:none}
.r.d1{transition-delay:.06s} .r.d2{transition-delay:.14s} .r.d3{transition-delay:.22s}
.r.d4{transition-delay:.30s} .r.d5{transition-delay:.38s} .r.d6{transition-delay:.46s}

/* dark section base */
.dark{background:var(--ink);color:var(--text-on-ink)}
.dark .hair{background:var(--hair-ink)}
.dark .muted{color:var(--muted-ink)}
.muted{color:var(--muted-paper)}

/* large display heads */
h1,h2,h3,h4{font-weight:400;letter-spacing:-.015em;line-height:1.02;font-family:var(--sans)}
h1{font-size:clamp(48px,7.6vw,124px);letter-spacing:-.025em;line-height:.96;font-weight:300}
h2{font-size:clamp(36px,4.8vw,76px);letter-spacing:-.022em;line-height:1.02;font-weight:300}
h3{font-size:clamp(22px,2vw,30px);letter-spacing:-.012em;line-height:1.12;font-weight:400}
p{line-height:1.55;color:var(--muted-paper);font-size:16px;max-width:60ch}
.dark p{color:var(--muted-ink)}
.lede{font-size:clamp(18px,1.5vw,22px);line-height:1.45;color:var(--text-on-paper);max-width:54ch;font-weight:300}
.dark .lede{color:var(--text-on-ink)}


/* ============================================================
   HERO — restrained, single focal point, no ambient motion clutter
   ============================================================ */
.hero{
  /* Fit exactly the visible viewport below the fixed rail + nav */
  min-height:calc(100vh - var(--rail-h) - var(--nav-h));
  min-height:calc(100svh - var(--rail-h) - var(--nav-h));
  padding:0;
  overflow:hidden;
  display:flex;flex-direction:column;
}
.hero-bg{position:absolute;inset:0;overflow:hidden;pointer-events:none}
/* Hero background image — flower-of-life pattern sits behind the grid + ink fade.
   The source PNGs are intentionally dark; we lift them with a brightness/contrast
   filter and full opacity so the pattern reads on dimmer laptop and mobile
   displays where the unfiltered version disappears into the ink ground. */
.hero-bg-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center bottom;
  opacity:1;
  filter:brightness(1.95) contrast(1.18);
  z-index:0;
}
.hero-bg::after{
  content:"";position:absolute;inset:0;
  /* Same absolute-pixel top fade as .page-hero so home + every division page
     share identical fade-to-black behaviour at the top regardless of image
     content or viewport height. Bottom fade is percentage-based so it adapts
     to the (taller) home hero. */
  background:
    linear-gradient(to bottom,
      var(--ink) 0,
      rgba(8,9,11,.95) 50px,
      rgba(8,9,11,.78) 120px,
      rgba(8,9,11,.48) 200px,
      rgba(8,9,11,.18) 300px,
      transparent 380px),
    linear-gradient(to top, var(--ink) 0%, transparent 30%),
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(45,94,71,.08) 0%, transparent 70%);
  z-index:1;
}
.hero-grid{opacity:.35} /* let the pattern be the dominant texture */
.hero-grid{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(232,228,214,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(232,228,214,.04) 1px, transparent 1px);
  background-size:120px 120px;
  mask-image:radial-gradient(ellipse 70% 65% at 50% 50%, #000 30%, transparent 95%);
  -webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 50%, #000 30%, transparent 95%);
  animation:gridDrift 60s linear infinite;
}
@keyframes gridDrift{from{transform:translate(0,0)}to{transform:translate(120px,120px)}}

.hero-inner{
  position:relative;z-index:2;
  /* main already pads past the fixed rail+nav; hero-inner now uses flex:1
     to fill remaining space above the ticker and centers its grid content */
  flex:1;
  padding-top:24px;
  padding-bottom:24px;
  width:100%;
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:80px;
  align-items:center;
  align-content:center;
}
.hero-text{display:flex;flex-direction:column}
.hero-pretitle{display:flex;align-items:center;gap:14px;margin-bottom:28px;color:var(--muted-ink);flex-wrap:wrap}
.hp-sep{width:4px;height:4px;background:var(--gold);opacity:.6;transform:rotate(45deg);flex-shrink:0}

.hero-h{
  color:var(--text-on-ink);
  font-weight:200;
  letter-spacing:-.03em;
  margin-bottom:28px;
}
.hero-h .brand-mark{
  display:block;
  font-family:var(--sans);
  font-weight:500;
  font-size:clamp(13px,1vw,16px);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold-soft);
  margin-bottom:20px;
}
.hero-h .hero-h-2{
  display:block;
  font-size:clamp(40px,4.6vw,72px);
  line-height:1.04;
  max-width:20ch;
  font-weight:200;
}
.hero-h .serif{color:var(--gold-soft);font-weight:400;font-style:italic;letter-spacing:-.01em}
.hero-h .gold{color:var(--gold-soft)}

.hero-lede{margin-bottom:32px}
.hero-lede p.lede{color:var(--text-on-ink);opacity:.86;max-width:48ch;font-size:clamp(15px,1.1vw,17px);line-height:1.5}

.hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.hero-actions .btn-primary{font-size:14px;padding:18px 28px;letter-spacing:.08em}
.hero-actions .link-tertiary{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;
  color:var(--muted-ink);text-transform:uppercase;
  margin-left:6px;padding:6px 0;
  border-bottom:1px solid transparent;transition:color .3s,border-color .3s;
}
.hero-actions .link-tertiary:hover{color:var(--gold-soft);border-bottom-color:var(--gold-soft)}

/* Right-column anchor — single dominant focal point */
.hero-anchor{
  display:flex;flex-direction:column;justify-content:center;
  border-left:1px solid var(--hair-ink);
  padding-left:48px;
  position:relative;
}
.hero-anchor::before{
  content:"";position:absolute;left:-1px;top:0;width:1px;height:72px;
  background:var(--gold);
}
.anchor-cap{
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;
  color:var(--gold);margin-bottom:18px;text-transform:uppercase;
}
.anchor-num{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(96px,11vw,160px);
  line-height:.9;letter-spacing:-.04em;
  color:var(--gold-soft);
  margin-bottom:10px;
  font-feature-settings:"tnum";
}
.anchor-num .unit{
  font-family:var(--sans);font-style:normal;
  font-size:.32em;font-weight:300;letter-spacing:-.01em;
  color:var(--text-on-ink);opacity:.78;margin-left:8px;vertical-align:.7em;
}
.anchor-label{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--muted-ink);line-height:1.7;
}
.anchor-stack{
  margin-top:22px;padding-top:18px;border-top:1px solid var(--hair-ink);
  display:flex;flex-direction:column;gap:11px;
}
.anchor-stack-row{
  display:flex;justify-content:space-between;align-items:baseline;gap:18px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;color:var(--muted-ink);
}
.anchor-stack-row .v{color:var(--text-on-ink);opacity:.92}

.btn-primary{
  display:inline-flex;align-items:center;gap:14px;
  font-size:12.5px;letter-spacing:.06em;
  padding:14px 22px;
  background:var(--gold);color:var(--ink);
  border:1px solid var(--gold);
  transition:background .3s, transform .3s;
}
.btn-primary:hover{background:var(--gold-soft);transform:translateY(-1px)}

/* hero ticker — monochrome, attributed, no fake price arrows */
.hero-ticker{
  position:relative;z-index:2;
  border-top:1px solid var(--hair-ink);border-bottom:1px solid var(--hair-ink);
  background:rgba(0,0,0,.35);
  overflow:hidden;
  height:38px;flex-shrink:0;display:flex;align-items:center;
}
.ticker-label{
  position:relative;z-index:2;
  flex-shrink:0;padding:0 24px;
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;
  color:var(--gold);border-right:1px solid var(--hair-ink);
  height:100%;display:flex;align-items:center;
  background:#070809;
}
.ticker-viewport{
  flex:1;min-width:0;height:100%;
  overflow:hidden;display:flex;align-items:center;
}
.ticker-track{
  display:flex;gap:40px;white-space:nowrap;
  animation:tick 90s linear infinite;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--muted-ink);
  padding-left:32px;
}
.ticker-track b{color:var(--text-on-ink);font-weight:500;margin-right:8px}
.ticker-track i{font-style:normal;margin-left:8px;color:var(--platinum);opacity:.85}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.scroll-cue{
  position:absolute;bottom:60px;right:var(--pad-x);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:14px;
  color:var(--muted-ink);
  writing-mode:vertical-rl;transform:rotate(180deg);
}
.scroll-cue .mono{letter-spacing:.3em;opacity:.6}
.scroll-cue .cue-line{
  width:1px;height:60px;background:var(--gold);transform:rotate(180deg);
  position:relative;overflow:hidden;
}
.scroll-cue .cue-line::after{
  content:"";position:absolute;top:-60px;left:0;width:1px;height:60px;
  background:var(--ink);animation:cue 2.4s ease-in-out infinite;
}
@keyframes cue{from{top:-60px}to{top:60px}}

@media (max-width: 1000px){
  .hero-inner{grid-template-columns:1fr;gap:32px}
  .hero-anchor{border-left:0;padding-left:0;border-top:1px solid var(--hair-ink);padding-top:24px}
  .hero-anchor::before{left:0;top:-1px;width:72px;height:1px}
  .anchor-num{font-size:clamp(80px,16vw,130px)}
}
/* Short laptops — scale hero content down so it still fits the viewport */
@media (min-width: 1001px) and (max-height: 760px){
  .hero-h .hero-h-2{font-size:clamp(36px,3.8vw,56px)}
  .hero-h{margin-bottom:20px}
  .hero-pretitle{margin-bottom:18px}
  .hero-lede{margin-bottom:24px}
  .hero-h .brand-mark{margin-bottom:14px}
  .anchor-num{font-size:clamp(80px,9vw,120px);margin-bottom:8px}
  .anchor-stack{margin-top:16px;padding-top:14px;gap:9px}
  .anchor-cap{margin-bottom:14px}
}
@media (max-width: 1100px){
  .rail-clock-extra{display:none}
}
@media (max-width: 900px){
  /* Switch to flex on mobile so the hamburger pins to the right edge
     rather than sitting in an empty 1fr middle column. */
  .nav-inner{display:flex;justify-content:space-between;align-items:center;gap:12px}
  .nav-links{display:none}
  .nav-actions .locale{display:none}      /* locale lives inside the mobile menu now */
  .nav-actions .btn-counterparty{display:none} /* CTA promoted into the menu */
  .nav-actions{margin-left:auto;gap:6px}
  .nav-toggle{display:inline-flex;margin-right:-10px} /* nudge into the optical right edge */
  .scroll-cue{display:none}
  .rail-compliance{display:none}
}
@media (max-width: 600px){
  .nav-inner{padding:0 18px;gap:16px}
  .brand-word{font-size:12px;letter-spacing:.16em}
  .brand-sub{font-size:9px;letter-spacing:.24em}
  /* Hide the ticker label on small phones — it's wider than 375 px and forces page overflow. */
  .ticker-label{display:none}
}

/* Guard against any element pushing the document wider than the viewport */
html,body{overflow-x:hidden;max-width:100%}

/* Phone-specific hero polish — keep the anchor and headline proportionate. */
@media (max-width: 600px){
  .hero-h .hero-h-2{font-size:clamp(34px,9vw,50px);line-height:1.05}
  .hero-h .brand-mark{font-size:11px;margin-bottom:16px;letter-spacing:.2em}
  .hero-pretitle{font-size:9.5px;gap:10px;margin-bottom:22px}
  .hero-lede{margin-bottom:28px}
  .hero-lede p.lede{font-size:14.5px;line-height:1.5;max-width:none}
  .hero-actions{gap:10px}
  .hero-actions .btn-primary{font-size:12.5px;padding:14px 20px;width:100%;justify-content:center}
  .hero-actions .btn-ghost{font-size:12px;padding:12px 18px;width:100%;justify-content:center}
  .hero-actions .link-tertiary{margin-left:0;margin-top:4px}
  .anchor-num{font-size:clamp(60px,15vw,92px);margin-bottom:8px}
  .anchor-cap{margin-bottom:12px;font-size:9.5px}
  .anchor-label{font-size:9.5px;line-height:1.55}
  .anchor-stack{margin-top:18px;padding-top:14px;gap:9px}
  .anchor-stack-row{font-size:9.5px;gap:12px}

  /* General mobile section padding pulls in */
  section{padding:clamp(64px,12vw,90px) 0}
  .section-tag{margin-bottom:32px}
  .section-tag .num,.section-tag .label{font-size:9.5px}

  /* Insights browse-all CTA gets quieter padding */
  .ins-all-cta{padding:22px 22px}
  .ins-all-cta-title{font-size:17px;line-height:1.3}
}


/* ============================================================
   ECOSYSTEM
   ============================================================ */
.ecosystem{background:var(--paper);color:var(--text-on-paper)}
.eco-head{max-width:1100px;margin-bottom:80px}
.eco-head h2 .serif{color:var(--emerald)}
.emerald{color:var(--emerald)}

.kpi-strip{
  display:grid;grid-template-columns:repeat(6,1fr);
  border-top:1px solid var(--hair-paper);
  border-bottom:1px solid var(--hair-paper);
  margin-bottom:100px;
}
.kpi{
  padding:32px 24px;
  border-right:1px solid var(--hair-paper);
}
.kpi:last-child{border-right:0}
.kpi .mono{display:block;color:var(--muted-paper);margin-bottom:14px;font-size:10px}
.kpi-v{font-size:clamp(34px,3.4vw,52px);font-weight:300;letter-spacing:-.02em;line-height:1;color:var(--ink)}

.eco-panels{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:1px solid var(--hair-paper);border-left:1px solid var(--hair-paper);
}
.eco-panel{
  position:relative;
  padding:48px 40px 64px;
  border-right:1px solid var(--hair-paper);
  border-bottom:1px solid var(--hair-paper);
  background:var(--paper);
  min-height:380px;
  display:flex;flex-direction:column;
  transition:background .5s ease, color .5s ease, transform .5s ease;
  cursor:pointer;overflow:hidden;
}
.eco-panel::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(135deg, rgba(29,58,46,.95) 0%, rgba(8,9,11,.98) 100%);
  opacity:0;transition:opacity .55s ease;
  z-index:0;
}
.eco-panel:hover{color:var(--text-on-ink)}
.eco-panel:hover::before{opacity:1}
.eco-panel:hover .ep-cat,.eco-panel:hover .ep-num{color:var(--gold)}
.eco-panel:hover .ep-body{color:var(--text-on-ink);opacity:.86}
.eco-panel:hover .ep-brands li{color:var(--muted-ink)}
.eco-panel:hover .ep-spark{color:var(--gold-soft);opacity:.7}

.eco-panel > *{position:relative;z-index:1}
.ep-num{
  font-size:11px;letter-spacing:.22em;color:var(--gold);
  margin-bottom:24px;
}
.ep-cat{
  font-size:10.5px;color:var(--muted-paper);margin-bottom:16px;
  transition:color .4s;
}
.ep-title{
  font-size:24px;font-weight:400;letter-spacing:-.015em;line-height:1.15;
  margin-bottom:18px;color:inherit;max-width:14ch;
}
.ep-body{
  font-size:14.5px;line-height:1.55;color:var(--muted-paper);
  margin-bottom:auto;max-width:34ch;transition:color .4s;
}
.ep-body em{font-family:var(--serif);font-style:italic;color:var(--emerald);font-size:1.05em}
.eco-panel:hover .ep-body em{color:var(--gold-soft)}
.ep-brands{margin-top:24px;display:flex;flex-direction:column;gap:8px}
.ep-brands li{
  font-size:10.5px;letter-spacing:.16em;color:var(--muted-paper);
  position:relative;padding-left:14px;transition:color .4s;
}
.ep-brands li::before{
  content:"";position:absolute;left:0;top:50%;width:6px;height:1px;background:currentColor;opacity:.6;
}
.ep-spark{
  position:absolute;right:32px;top:40px;width:80px;height:40px;
  color:var(--ivory);opacity:.5;transition:opacity .4s, color .4s;
  z-index:0;
}
.ep-spark svg{width:100%;height:100%}

@media (max-width: 1100px){
  .kpi-strip{grid-template-columns:repeat(3,1fr)}
  .kpi:nth-child(3){border-right:0}
  .kpi:nth-child(n+4){border-top:1px solid var(--hair-paper)}
  .eco-panels{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 700px){
  .kpi-strip{grid-template-columns:repeat(2,1fr)}
  .kpi:nth-child(3){border-right:1px solid var(--hair-paper)}
  .kpi:nth-child(2n){border-right:0}
  .eco-panels{grid-template-columns:1fr}
}

/* ---- Operating-brand carousel — infinite right-to-left scroll ---- */
.brand-carousel{
  margin-top:80px;
  padding:48px 0 12px;
  border-top:1px solid var(--hair-paper);
}
.brand-carousel-head{
  display:flex;align-items:center;gap:20px;
  margin-bottom:40px;
}
.brand-carousel-head .mono{
  color:var(--muted-paper);
  font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  white-space:nowrap;
}
.brand-carousel-rule{
  flex:1;height:1px;background:var(--hair-paper);
}
.brand-carousel-mask{
  position:relative;overflow:hidden;
  /* Edge fade so logos appear/disappear cleanly, no hard cuts */
  mask-image:linear-gradient(90deg, transparent 0, #000 96px, #000 calc(100% - 96px), transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 96px, #000 calc(100% - 96px), transparent 100%);
}
.brand-carousel-track{
  display:flex;align-items:center;
  width:max-content;
  list-style:none;padding:0;margin:0;
  animation:brandScroll 80s linear infinite;
}
.brand-carousel-track li{
  flex-shrink:0;
  height:80px;             /* uniform row height — image inside controls its own visual size */
  margin-right:64px;
  position:relative;
  display:flex;align-items:center;justify-content:center;
}
.brand-carousel-track img{
  /* Default tier: wide wordmarks (Cortis, MetaFlora, BLT, BlockBridge,
     RWA, FloraSeal). Their visual presence comes from width, so a
     50 px height is correct and avoids upscaling Cortis from its
     31 px native source. */
  height:50px;width:auto;max-width:220px;
  object-fit:contain;display:block;
  transition:opacity .35s ease, transform .35s ease;
}

/* Icon-dominant tier: square / tall logos whose visual presence comes
   from their mark, not from horizontal real estate. Bumped to 72 px so
   they read at parity with the wordmarks. Matched on the filename suffix
   so both the .logo-gray and .logo-color variants are sized identically. */
.brand-carousel-track img[src$="bloombridge.png"],
.brand-carousel-track img[src$="goldbridge.png"],
.brand-carousel-track img[src$="tradebridge.png"],
.brand-carousel-track img[src$="kalahari.png"],
.brand-carousel-track img[src$="kalahari-dark.png"],
.brand-carousel-track img[src$="global-agritech.png"],
.brand-carousel-track img[src$="flora-token.png"],
.brand-carousel-track img[src$="floraxm.png"],
.brand-carousel-track img[src$="bloombridge-space.png"],
.brand-carousel-track img[src$="elysium.png"],
.brand-carousel-track img[src$="darkhorse.png"],
.brand-carousel-track img[src$="africore.svg"],
.brand-carousel-track img[src$="metamarkets.png"],
.brand-carousel-track img[src$="mac.png"]{
  height:72px;
}

/* Grayscale-only carousel — hover gives a subtle scale-up for interactivity. */
.brand-carousel-track li:hover img.logo-gray{
  transform:scale(1.06);
}
@keyframes brandScroll{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.brand-carousel:hover .brand-carousel-track{animation-play-state:paused}
@media (prefers-reduced-motion: reduce){
  .brand-carousel-track{animation:none}
}
@media (max-width: 700px){
  .brand-carousel{margin-top:56px;padding-top:36px}
  .brand-carousel-head{gap:14px;margin-bottom:28px}
  .brand-carousel-track li{height:60px;margin-right:44px}
  .brand-carousel-track img{height:38px;max-width:160px}
  .brand-carousel-track img[src$="bloombridge.png"],
  .brand-carousel-track img[src$="goldbridge.png"],
  .brand-carousel-track img[src$="tradebridge.png"],
  .brand-carousel-track img[src$="kalahari.png"],
  .brand-carousel-track img[src$="kalahari-dark.png"],
  .brand-carousel-track img[src$="global-agritech.png"],
  .brand-carousel-track img[src$="flora-token.png"],
  .brand-carousel-track img[src$="floraxm.png"],
  .brand-carousel-track img[src$="bloombridge-space.png"],
  .brand-carousel-track img[src$="elysium.png"],
  .brand-carousel-track img[src$="darkhorse.png"],
  .brand-carousel-track img[src$="africore.svg"],
  .brand-carousel-track img[src$="metamarkets.png"],
  .brand-carousel-track img[src$="mac.png"]{height:54px}
  .brand-carousel-track{animation-duration:60s}
}


/* ============================================================
   GLOBAL OPERATIONS
   ============================================================ */
.operations{background:var(--ink);color:var(--text-on-ink);position:relative;overflow:hidden}
.ops-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(45,82,64,.18) 0%, transparent 70%),
    radial-gradient(ellipse 60% 50% at 50% 100%, rgba(181,152,90,.10) 0%, transparent 70%);
}
.ops-inner{position:relative;z-index:1}
.ops-head{max-width:1100px;margin-bottom:64px}
.ops-head h2 .serif{color:var(--gold-soft)}

.map-wrap{
  position:relative;
  aspect-ratio: 2 / 1;
  border:1px solid var(--hair-ink);
  background:#0c0e11;
  margin-bottom:80px;
  overflow:hidden;
}
.map-bracket{
  position:absolute;font-family:var(--mono);font-size:14px;color:var(--gold);opacity:.7;
}
.map-bracket-tl{top:8px;left:8px}
.map-bracket-tr{top:8px;right:8px}
.map-bracket-bl{bottom:8px;left:8px}
.map-bracket-br{bottom:8px;right:8px}

.map-dots{
  position:absolute;inset:0;
  color:#3a4147; /* dot color */
}
.map-dots svg{width:100%;height:100%}

.map-arcs{
  position:absolute;inset:0;width:100%;height:100%;
}
.arc{
  stroke-dasharray: 1;
  stroke-dashoffset: 0;
}
.arcs path{
  stroke-dasharray:1000; stroke-dashoffset:1000;
  animation: arcDraw 3.2s cubic-bezier(.5,.05,.25,1) forwards;
  opacity:0;
}
.r.in .arcs path{opacity:1}
.r.in .arcs path.a1{animation-delay:.2s}
.r.in .arcs path.a2{animation-delay:.5s}
.r.in .arcs path.a3{animation-delay:.8s}
.r.in .arcs path.a4{animation-delay:1.1s}
.r.in .arcs path.a5{animation-delay:1.4s}
.r.in .arcs path.a6{animation-delay:1.7s}
.r.in .arcs path.a7{animation-delay:2.0s}
@keyframes arcDraw{
  from{stroke-dashoffset:1000;opacity:0}
  20%{opacity:1}
  to{stroke-dashoffset:0;opacity:1}
}

/* node markers */
.nodes .dot{fill:var(--gold)}
.nodes .ring{fill:none;stroke:var(--gold);stroke-width:1;opacity:.35;transform-box:fill-box;transform-origin:center;animation:nodePulse 3s ease-out infinite}
.nodes .small .dot{fill:var(--emerald-light);opacity:.6}
@keyframes nodePulse{
  0%{transform:scale(.5);opacity:.6}
  100%{transform:scale(3);opacity:0}
}

.map-labels{position:absolute;inset:0;pointer-events:none}
.ml{
  position:absolute;
  transform:translate(14px,-50%);
  font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
  color:var(--text-on-ink);opacity:.78;
  white-space:nowrap;
  text-shadow:0 0 8px rgba(0,0,0,.8);
}
.ml i{color:var(--gold);font-style:normal;opacity:.9}

.map-legend{
  position:absolute;left:24px;bottom:24px;
  display:flex;flex-direction:column;gap:10px;
  font-size:9.5px;letter-spacing:.18em;color:var(--muted-ink);
}
.map-legend > div{display:flex;align-items:center;gap:10px}
.leg{width:18px;height:1px;display:inline-block}
.leg.gold{background:var(--gold-soft)}
.leg.em{background:var(--emerald-light)}
.map-coords{
  position:absolute;right:24px;bottom:24px;
  font-size:9.5px;letter-spacing:.18em;color:var(--muted-ink);
}

/* corridor table */
.corridors{
  border-top:1px solid var(--hair-ink);
  border-bottom:1px solid var(--hair-ink);
  margin-bottom:64px;
}
.corridors-head, .corridor-row{
  display:grid;
  grid-template-columns: 1.4fr 1fr 2fr .6fr;
  align-items:center;gap:24px;
  padding:22px 4px;
  border-bottom:1px solid var(--hair-ink);
}
.corridors-head{
  color:var(--muted-ink);font-size:10px;letter-spacing:.22em;
  border-bottom-color:rgba(181,152,90,.3);
}
.corridor-row{border-bottom:1px solid var(--hair-ink);transition:background .3s}
.corridor-row:last-child{border-bottom:0}
.corridor-row:hover{background:rgba(232,228,214,.025)}
.cr-route b{font-weight:500;color:var(--text-on-ink)}
.cr-route i{font-style:normal;color:var(--gold);margin:0 8px}
.cr-flow{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--text-on-ink);opacity:.85}
.cr-purpose{color:var(--muted-ink);font-size:14px;line-height:1.4}
.cr-status{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--muted-ink);display:flex;align-items:center;gap:8px;justify-content:flex-end}
.dot-status{width:6px;height:6px;border-radius:50%;background:var(--gold)}
.dot-status.active{background:#85b39a;box-shadow:0 0 0 3px rgba(133,179,154,.18)}
.dot-status.pending{background:var(--gold);box-shadow:0 0 0 3px rgba(181,152,90,.18)}

/* compliance pill row */
.ops-compliance{display:flex;flex-wrap:wrap;gap:12px}
.oc-pill{
  display:inline-flex;align-items:center;gap:14px;
  padding:14px 22px;
  border:1px solid var(--hair-ink);
  color:var(--muted-ink);font-size:10.5px;letter-spacing:.18em;
}
.oc-pill .oc-k{color:var(--gold);font-weight:500}

@media (max-width: 1000px){
  .corridors-head, .corridor-row{grid-template-columns:1fr 1fr;gap:8px 20px}
  .cr-purpose{grid-column:1 / -1;font-size:13px}
  .corridors-head span:nth-child(3){display:none}
  .ml{font-size:9px}
  .map-legend, .map-coords{display:none}
}


/* ============================================================
   STRATEGIC DIVISIONS
   ============================================================ */
.divisions{background:var(--paper)}
.div-head{max-width:1100px;margin-bottom:120px}

.div-block{
  display:grid;grid-template-columns:1fr 1fr;
  gap:80px;align-items:center;
  margin-bottom:140px;
}
.div-block.reverse{direction:rtl}
.div-block.reverse > *{direction:ltr}
.db-image{
  position:relative;
  aspect-ratio: 4 / 5;
}
.db-img{
  position:absolute;inset:0;
  background:var(--ink);
  overflow:hidden;
  transition:transform .8s cubic-bezier(.2,.7,.2,1);
}
.db-img:hover{transform:scale(1.02)}
.db-img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,.6) 100%);
}
.db-img-label{
  position:absolute;left:20px;bottom:20px;z-index:2;
  color:var(--text-on-ink);opacity:.9;font-size:10px;letter-spacing:.2em;
}

/* Division image backgrounds — real photography sourced from Unsplash
   (free commercial license). All ::after gradients on .db-img base
   handle bottom label readability. */
.db-img-1{background:var(--ink) url('/assets/divisions/cali-organics.jpg') center/cover no-repeat}
.db-img-2{background:var(--ink) url('/assets/divisions/bloombridge-digital.jpg') center/cover no-repeat}
.db-img-3{background:var(--ink) url('/assets/divisions/bloombridge-pharma.jpg') center/cover no-repeat}
.db-img-4{background:var(--ink) url('/assets/divisions/bloombridge-trade.jpg') center/cover no-repeat}
.db-img-5{background:var(--ink) url('/assets/divisions/bloombridge-land-space.jpg') center/cover no-repeat}

.db-content{padding:24px 0}
.db-cat{color:var(--gold);margin-bottom:24px;display:block}
.db-title{font-size:clamp(34px,3.4vw,52px);line-height:1.05;letter-spacing:-.02em;font-weight:300;margin-bottom:24px}
.db-sub{color:var(--muted-paper);font-family:var(--serif);font-style:italic;font-weight:400;font-size:.75em}
.db-content p{margin-bottom:36px;max-width:48ch}

.db-metrics{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:24px;
  border-top:1px solid var(--hair-paper);
  padding-top:24px;margin-bottom:36px;
}
.dm-v{font-size:28px;font-weight:300;letter-spacing:-.02em;color:var(--ink);display:block;margin-bottom:6px;font-feature-settings:"tnum"}
.db-metrics .mono{color:var(--muted-paper);font-size:9.5px;letter-spacing:.18em;display:block}

.db-link{
  display:inline-flex;align-items:center;gap:14px;
  font-size:12px;letter-spacing:.06em;
  padding:14px 22px;
  border:1px solid var(--ink);color:var(--ink);
  transition:background .3s, color .3s;
}
.db-link:hover{background:var(--ink);color:var(--paper)}
.db-link .arrow{transition:transform .3s}
.db-link:hover .arrow{transform:translateX(4px)}

@media (max-width: 900px){
  .div-block{grid-template-columns:1fr;gap:40px;margin-bottom:80px}
  .div-block.reverse{direction:ltr}
  .db-image{aspect-ratio: 5 / 4}
  .db-metrics{gap:14px}
  .dm-v{font-size:22px}
}


/* ============================================================
   TECHNOLOGY
   ============================================================ */
.technology{background:#08090b;color:var(--text-on-ink);position:relative;overflow:hidden}
.tech-bg{position:absolute;inset:0;pointer-events:none;background:
  radial-gradient(ellipse 60% 50% at 80% 20%, rgba(45,82,64,.18) 0%, transparent 70%),
  radial-gradient(ellipse 70% 60% at 10% 90%, rgba(181,152,90,.10) 0%, transparent 70%);
}
.tech-grid-overlay{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(232,228,214,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(232,228,214,.025) 1px, transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse 80% 80% at 50% 50%, #000 30%, transparent 95%);
  -webkit-mask-image:radial-gradient(ellipse 80% 80% at 50% 50%, #000 30%, transparent 95%);
}
.tech-inner{position:relative;z-index:1}
.tech-head{max-width:1100px;margin-bottom:80px}
.tech-head .gold{color:var(--gold-soft)}

.tech-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:20px;
  margin-bottom:60px;
}
.t-card{
  position:relative;
  background:rgba(20,23,27,.6);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border:1px solid var(--hair-ink);
  padding:32px 28px;
  display:flex;flex-direction:column;
  min-height:480px;
  overflow:hidden;
  transition:border-color .4s, transform .4s;
}
.t-card:hover{border-color:rgba(181,152,90,.4);transform:translateY(-2px)}
.t-card::before{
  content:"";position:absolute;top:0;left:0;width:40px;height:1px;background:var(--gold);
}
.t-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:16px}
.t-id{display:flex;gap:14px;align-items:flex-start}
.t-glyph{font-size:22px;color:var(--gold);line-height:1;margin-top:2px}
.t-name{font-size:22px;font-weight:400;letter-spacing:-.01em;margin-top:4px}
.t-tag{
  padding:4px 10px;border:1px solid var(--hair-ink);
  font-size:9px;color:var(--gold);letter-spacing:.18em;
  white-space:nowrap;
}
.t-body{font-size:14px;line-height:1.55;color:var(--muted-ink);margin-bottom:28px;flex-shrink:0}
.t-readout{
  display:flex;flex-direction:column;
  border-top:1px solid var(--hair-ink);
  margin-bottom:24px;
}
.tr-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:10px 0;
  border-bottom:1px solid var(--hair-ink);
  font-size:11px;
}
.tr-row:last-child{border-bottom:0}
.tr-row .dim{color:var(--muted-ink);letter-spacing:.18em}
.tr-v{font-family:var(--mono);color:var(--gold-soft);letter-spacing:.1em;font-size:11px}

.t-viz{
  margin-top:auto;
  height:120px;
  border-top:1px solid var(--hair-ink);
  padding-top:16px;
}
.t-viz svg{width:100%;height:100%}

/* use cases */
.tech-use{
  border-top:1px solid var(--hair-ink);border-bottom:1px solid var(--hair-ink);
  padding:32px 0;
  display:grid;grid-template-columns:auto 1fr;gap:48px;
  align-items:center;
  margin-bottom:64px;
}
.tu-head{color:var(--gold);letter-spacing:.22em;white-space:nowrap}
.tu-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:18px 32px;
  font-size:13px;color:var(--text-on-ink);
}
.tu-grid span{position:relative;padding-left:18px;opacity:.85}
.tu-grid span::before{
  content:"";position:absolute;left:0;top:50%;width:10px;height:1px;background:var(--gold);
}

/* terminal */
.tech-terminal{
  background:#06080a;
  border:1px solid var(--hair-ink);
  font-family:var(--mono);
  position:relative;overflow:hidden;
}
.term-head{
  display:flex;align-items:center;gap:18px;
  padding:14px 20px;
  border-bottom:1px solid var(--hair-ink);
  font-size:10px;letter-spacing:.18em;color:var(--muted-ink);
  background:rgba(20,23,27,.5);
}
.term-dots{display:flex;gap:6px}
.term-dots span{width:8px;height:8px;border-radius:50%;background:var(--carbon)}
.term-dots span:first-child{background:#c08772}
.term-dots span:nth-child(2){background:var(--gold)}
.term-dots span:last-child{background:#85b39a}
.term-body{padding:28px 32px;font-size:12.5px;line-height:1.8;color:var(--text-on-ink)}
.term-line{display:block}
.term-line.dim{color:var(--muted-ink)}
.term-prompt{color:var(--gold);margin-right:8px}
.term-cmd{color:var(--gold-soft)}
.term-key{display:inline-block;width:18ch;color:var(--emerald-light)}
.term-blink{animation:blink 1.1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}

@media (max-width: 1000px){
  .tech-grid{grid-template-columns:1fr;gap:16px}
  .t-card{min-height:auto}
  .tech-use{grid-template-columns:1fr;gap:24px}
  .tu-grid{grid-template-columns:1fr 1fr}
  .term-body{padding:18px;font-size:11px}
  .term-key{width:14ch}
}


/* ============================================================
   LEADERSHIP
   ============================================================ */
.leadership{background:var(--paper-2)}
.lead-head{max-width:1100px;margin-bottom:80px}
.lead-head h2 .serif{color:var(--emerald)}

.people-grid{
  display:grid;grid-template-columns:repeat(2,1fr);
  gap:48px 64px;
  margin-bottom:120px;
}
.person{display:grid;grid-template-columns:140px 1fr;gap:28px;align-items:start}
.p-portrait{
  aspect-ratio:4/5;
  background:var(--ink);
  position:relative;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-soft);
  font-family:var(--serif);font-style:italic;
  font-size:46px;letter-spacing:-.02em;
}
.p-portrait::after{
  content:attr(data-init);position:relative;z-index:1;opacity:.85;
}
.p-portrait::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 30%, rgba(181,152,90,.18) 0%, transparent 70%),
    linear-gradient(180deg, #1a1d22 0%, #08090b 100%);
}
.p-meta .dim{color:var(--muted-paper);margin-bottom:10px;display:block}
.p-name{font-size:28px;letter-spacing:-.015em;font-weight:400;line-height:1.05;margin-bottom:10px}
.p-tags{color:var(--gold);font-size:10px;letter-spacing:.16em;margin-bottom:16px}
.p-body{font-size:14px;line-height:1.55;color:var(--muted-paper);max-width:50ch}

/* quote */
.quote{
  border-top:1px solid var(--hair-paper);
  border-bottom:1px solid var(--hair-paper);
  padding:80px 0;
  margin-bottom:120px;
  text-align:center;
}
.quote blockquote{
  font-size:clamp(28px,3vw,46px);
  line-height:1.25;letter-spacing:-.01em;font-weight:400;
  color:var(--ink);
  max-width:24ch;margin:0 auto 32px;
}
.quote figcaption{color:var(--muted-paper);font-size:11px;letter-spacing:.18em}

/* advisory */
.adv-head{margin-bottom:32px}
.adv-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;
  border-top:1px solid var(--hair-paper);
  border-left:1px solid var(--hair-paper);
}
.adv{
  padding:28px 24px;
  border-right:1px solid var(--hair-paper);
  border-bottom:1px solid var(--hair-paper);
  background:var(--paper-2);
  transition:background .35s;
}
.adv:hover{background:var(--paper)}
.adv-name{font-size:18px;font-weight:400;letter-spacing:-.01em;margin-bottom:8px;color:var(--ink)}
.adv-role{color:var(--muted-paper);font-size:9.5px;letter-spacing:.18em}

/* ============================================================
   INSIGHTS
   ============================================================ */
.insights{background:var(--paper)}
.ins-head{margin-bottom:80px;max-width:900px}

.ins-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:32px;
}
.ins-card.feature{grid-column:span 3}
.ins-card{
  display:flex;flex-direction:column;
  border-top:1px solid var(--ink);
  padding-top:24px;
  cursor:pointer;
  /* When the article card is rendered as <a> it should still look like the card,
     not a default underlined link. */
  text-decoration:none;color:inherit;
  transition:transform .35s cubic-bezier(.2,.7,.2,1);
}
.ins-card:hover{transform:translateY(-2px)}
.ins-card:hover .ins-title{color:var(--ink)}
.ins-read{color:var(--gold) !important;font-weight:500;letter-spacing:.22em;margin-left:auto;transition:transform .3s ease}
.ins-card:hover .ins-read{transform:translateX(3px)}
.ins-card.feature{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:end}
.ins-img{
  aspect-ratio:16/9;
  background:var(--ink);overflow:hidden;position:relative;
  margin-bottom:24px;
  transition:transform .6s;
}
.ins-card:hover .ins-img{transform:scale(1.02)}
.ins-card.feature .ins-img{margin-bottom:0;aspect-ratio:16/10}
/* Insights card images — four real photos sourced from Unsplash
   (free commercial license). */
.ins-img-1{background:var(--ink) url('/assets/insights/documented-corridors.jpg') center/cover no-repeat}
.ins-img-2{background:var(--ink) url('/assets/insights/florachain-settlement.jpg') center/cover no-repeat}
.ins-img-3{background:var(--ink) url('/assets/insights/sadc-cannabis.jpg') center/cover no-repeat}
.ins-img-4{background:var(--ink) url('/assets/insights/california-to-kalahari.jpg') center/cover no-repeat}

.ins-body{display:flex;flex-direction:column;gap:14px}
.ins-cat{color:var(--gold);letter-spacing:.18em}
.ins-title{font-size:22px;font-weight:400;letter-spacing:-.01em;line-height:1.2;color:var(--ink);max-width:30ch}
.ins-card.feature .ins-title{font-size:clamp(30px,2.4vw,40px);max-width:22ch}
.ins-meta{color:var(--muted-paper);font-size:10px;letter-spacing:.18em;display:flex;align-items:center;gap:10px;margin-top:4px;flex-wrap:wrap}
.dot-sep{width:3px;height:3px;background:currentColor;border-radius:50%;opacity:.5;display:inline-block}

/* Browse-all CTA panel below the home-page insights grid — links to the
   institutional /insights index (which carries the paid Bridge Capital
   reports). */
.ins-all-cta{
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:32px;
  margin-top:64px;padding:36px 40px;
  background:var(--ink);color:var(--text-on-ink);
  border-left:3px solid var(--gold);
  text-decoration:none;
  transition:transform .4s cubic-bezier(.2,.7,.2,1), background .4s ease;
}
.ins-all-cta:hover{transform:translateX(4px);background:#0e1216}
.ins-all-cta-l{display:flex;flex-direction:column;gap:10px;min-width:0}
.ins-all-cta .mono{color:var(--gold);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase}
.ins-all-cta-title{font-size:clamp(20px,2vw,28px);font-weight:300;letter-spacing:-.015em;line-height:1.25;color:var(--text-on-ink);max-width:48ch}
.ins-all-cta-title .serif{font-style:italic;font-weight:400;color:var(--gold-soft)}
.ins-all-cta-arrow{color:var(--gold);display:flex;align-items:center;transition:transform .35s ease;flex-shrink:0}
.ins-all-cta:hover .ins-all-cta-arrow{transform:translateX(6px)}
@media (max-width: 700px){
  .ins-all-cta{padding:24px 22px;grid-template-columns:1fr;gap:18px}
  .ins-all-cta-arrow svg{width:20px;height:12px}
}

@media (max-width: 1000px){
  .people-grid{grid-template-columns:1fr;gap:36px}
  .adv-grid{grid-template-columns:repeat(2,1fr)}
  .ins-grid{grid-template-columns:1fr}
  .ins-card.feature{grid-column:span 1;grid-template-columns:1fr;gap:24px}
}
@media (max-width: 600px){
  .person{grid-template-columns:1fr}
  .p-portrait{width:120px}
  .adv-grid{grid-template-columns:1fr}
}


/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--ink);color:var(--text-on-ink);position:relative;overflow:hidden}
.footer-bg-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center top;
  opacity:.92;
  filter:brightness(1.85) contrast(1.15);
  z-index:0;
  pointer-events:none;
}
.footer::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:
    /* Soft top + bottom fade so the section above transitions cleanly into the
       pattern and the legal/copyright row at the bottom sits on solid ink. */
    linear-gradient(to bottom, rgba(8,9,11,.55) 0%, rgba(8,9,11,.04) 25%, rgba(8,9,11,.04) 75%, rgba(8,9,11,.55) 100%),
    radial-gradient(ellipse 60% 50% at 30% 0%, rgba(45,82,64,.15) 0%, transparent 70%),
    radial-gradient(ellipse 50% 40% at 80% 100%, rgba(181,152,90,.10) 0%, transparent 70%);
  pointer-events:none;
}
.footer-top, .footer-mid, .footer-bottom{position:relative;z-index:2}
.footer-top{padding:120px 0;border-bottom:1px solid var(--hair-ink)}
.ft-cta{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:end}
.ft-cta-l .dim{display:block;margin-bottom:36px;color:var(--muted-ink)}
.ft-h{font-size:clamp(40px,5.4vw,80px);line-height:.98;letter-spacing:-.025em;font-weight:200}
.ft-h .gold{color:var(--gold-soft)}
.ft-cta-r p{color:var(--text-on-ink);opacity:.78;margin-bottom:36px;max-width:46ch;font-size:15px}
.ft-cta-actions{display:flex;gap:14px;flex-wrap:wrap}

.footer-mid{padding:100px 0;border-bottom:1px solid var(--hair-ink)}
.ft-grid{display:grid;grid-template-columns:1.6fr repeat(4, 1fr);gap:56px}
.ft-brand .brand{color:var(--text-on-ink);margin-bottom:28px}
.ft-brand .brand-sub{color:var(--gold)}
.ft-tag{color:var(--muted-ink);font-size:14px;line-height:1.6;max-width:44ch;margin-bottom:40px}
.ft-locales .dim{display:block;color:var(--muted-ink);margin-bottom:14px;font-size:10px;letter-spacing:.2em}
.ft-locales-row{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;letter-spacing:.18em;color:var(--text-on-ink);opacity:.7}

.ft-col-h{color:var(--gold);font-size:10px;letter-spacing:.22em;margin-bottom:24px}
.ft-col ul{display:flex;flex-direction:column;gap:11px}
.ft-col a{
  font-size:13.5px;color:var(--text-on-ink);opacity:.7;
  transition:opacity .25s, color .25s;display:inline-flex;align-items:center;gap:8px;
}
.ft-col a:hover{opacity:1;color:var(--gold-soft)}
.ft-col a::before{
  content:"";width:0;height:1px;background:currentColor;transition:width .3s;
}
.ft-col a:hover::before{width:12px}

.footer-bottom{padding:32px 0 48px}
.ft-bot-grid{
  display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;
  margin-bottom:24px;
  padding-bottom:24px;
  border-bottom:1px solid var(--hair-ink);
}
.ft-doc, .ft-legal{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:10px;letter-spacing:.18em;color:var(--muted-ink)}
.ft-doc b{color:var(--gold);margin-right:6px;font-weight:500}
.ft-legal a{color:var(--muted-ink);transition:color .25s}
.ft-legal a:hover{color:var(--text-on-ink)}
.ft-confidential{font-size:10px;letter-spacing:.22em;color:var(--muted-ink);text-align:center;opacity:.7}

@media (max-width: 1100px){
  .ft-grid{grid-template-columns:1fr 1fr 1fr;gap:48px}
  .ft-brand{grid-column:span 3}
}
@media (max-width: 700px){
  .ft-cta{grid-template-columns:1fr;gap:36px}
  .ft-grid{grid-template-columns:1fr 1fr}
  .ft-brand{grid-column:span 2}
  .ft-bot-grid{flex-direction:column;align-items:flex-start;gap:14px}
}

/* External-link marker in footer columns */
.ft-col a .ext{
  font-size:9px;color:var(--gold);margin-left:6px;opacity:.6;
  transition:opacity .25s, transform .25s;display:inline-block;
}
.ft-col a:hover .ext{opacity:1;transform:translate(2px,-2px)}

/* ============================================================
   PAGE TEMPLATE — shared layout for all non-home pages
   ============================================================ */
.page-hero{
  position:relative;
  padding:calc(var(--rail-h) + var(--nav-h) + 80px) 0 80px;
  background:var(--paper);
  color:var(--text-on-paper);
  overflow:hidden;
  border-bottom:1px solid var(--hair-paper);
}
.page-hero.dark{background:var(--ink);color:var(--text-on-ink);border-bottom-color:var(--hair-ink)}
.page-hero.dark .lede{color:var(--text-on-ink)}

/* Optional pattern image behind the page-hero. Used by division pages
   (cali, pharma, land-space, trade, digital, etc.). Lifted with a
   brightness/contrast filter so the pattern reads on laptop, tablet,
   and mobile displays where the unfiltered version disappears. */
.page-hero-bg-img{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center bottom;
  opacity:1;
  filter:brightness(1.55) contrast(1.12);
  z-index:0;
  pointer-events:none;
}
/* Cali source PNG is darker than the others — lift it to match the
   perceived brightness of pharma / land-space / trade / digital. */
.page-hero-bg-img[src*="cali.png"]{filter:brightness(1.95) contrast(1.18)}
/* Fade overlay — applied to every dark page-hero. Top fade uses absolute
   pixel stops so it's identical across pages and viewports regardless of
   source-image content or hero height. The rail + nav take 94px (30 + 64),
   the page-hero padding adds 80px above the headline, so the fade hugs
   that header zone and decays into the body where the pattern reads. */
.page-hero.dark::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    /* Top fade — solid ink through the rail/nav, decaying through the
       headline breathing-room, transparent by the body */
    linear-gradient(to bottom,
      var(--ink) 0,
      rgba(8,9,11,.95) 50px,
      rgba(8,9,11,.78) 120px,
      rgba(8,9,11,.48) 200px,
      rgba(8,9,11,.18) 300px,
      transparent 380px),
    /* Bottom fade — percentage so it adapts to hero height */
    linear-gradient(to top, var(--ink) 0%, transparent 30%),
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(45,94,71,.06) 0%, transparent 70%);
}

.page-hero-inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x);position:relative;z-index:2}
.page-crumb{
  display:flex;align-items:center;gap:12px;margin-bottom:32px;
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--muted-paper);
  text-transform:uppercase;
}
.page-hero.dark .page-crumb{color:var(--muted-ink)}
.page-crumb a{color:inherit;opacity:.7;transition:opacity .25s}
.page-crumb a:hover{opacity:1;color:var(--gold)}
.page-crumb .sep{opacity:.4}
.page-crumb .num{color:var(--gold);font-weight:500}

.page-cat{
  font-family:var(--mono);font-size:11px;letter-spacing:.22em;
  color:var(--gold);margin-bottom:24px;text-transform:uppercase;
}
.page-hero h1{
  font-size:clamp(40px,5.8vw,84px);
  font-weight:200;
  letter-spacing:-.022em;
  line-height:1;
  margin-bottom:36px;
  max-width:18ch;
}
.page-hero .lede{
  max-width:62ch;margin-bottom:0;
  font-size:clamp(17px,1.4vw,21px);font-weight:300;line-height:1.5;
  color:var(--text-on-paper);opacity:.9;
}
.page-hero h1 .serif{color:var(--gold);font-style:italic;font-weight:400}
.page-hero.dark h1 .serif{color:var(--gold-soft)}

.page-body{padding:100px 0;background:var(--paper);color:var(--text-on-paper)}
.page-body.dark{background:var(--ink);color:var(--text-on-ink)}
.page-body-inner{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad-x)}
.page-body-inner.narrow{max-width:920px}

.page-section{margin-bottom:80px}
.page-section:last-child{margin-bottom:0}
.page-section h2{
  font-size:clamp(28px,3vw,46px);
  font-weight:300;
  margin-bottom:28px;
  letter-spacing:-.018em;line-height:1.05;
  max-width:24ch;
}
.page-section h3{
  font-size:clamp(20px,1.8vw,26px);font-weight:400;
  letter-spacing:-.012em;margin-bottom:16px;line-height:1.2;
}
.page-section h2 .serif,.page-section h3 .serif{color:var(--gold);font-style:italic}
.page-section p{margin-bottom:18px;font-size:16px;line-height:1.65;max-width:70ch}
.page-section p:last-child{margin-bottom:0}
.page-section ul{margin:24px 0 24px 0;list-style:none;padding:0}
.page-section ul li{
  font-size:15px;line-height:1.6;margin-bottom:12px;
  position:relative;padding-left:20px;color:var(--muted-paper);
  max-width:70ch;
}
.page-section ul li::before{
  content:"";position:absolute;left:0;top:.75em;
  width:10px;height:1px;background:var(--gold);
}
.page-section ul li strong{color:var(--text-on-paper);font-weight:500}

.page-body.dark .page-section p,.page-body.dark .page-section ul li{color:var(--muted-ink)}
.page-body.dark .page-section ul li strong{color:var(--text-on-ink)}

.page-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin:32px 0}
.page-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:32px 0}
.page-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin:32px 0}
@media (max-width:900px){
  .page-grid-2,.page-grid-3,.page-grid-4{grid-template-columns:1fr;gap:32px}
}

.fact-strip{
  display:grid;grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--hair-paper);
  border-bottom:1px solid var(--hair-paper);
  margin:48px 0;
}
.page-body.dark .fact-strip{border-color:var(--hair-ink)}
.fact{padding:28px 20px;border-right:1px solid var(--hair-paper)}
.page-body.dark .fact{border-color:var(--hair-ink)}
.fact:last-child{border-right:0}
.fact-v{
  font-size:clamp(28px,2.6vw,40px);font-weight:300;letter-spacing:-.02em;
  line-height:1;margin-bottom:10px;color:var(--ink);
}
.page-body.dark .fact-v{color:var(--text-on-ink)}
.fact-k{font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;color:var(--muted-paper);line-height:1.5}
.page-body.dark .fact-k{color:var(--muted-ink)}
@media (max-width:900px){
  .fact-strip{grid-template-columns:repeat(2,1fr)}
  .fact:nth-child(2n){border-right:0}
}

.callout{
  border-left:2px solid var(--gold);
  padding:24px 32px;
  background:var(--paper-2);
  margin:32px 0;
  font-size:17px;line-height:1.5;
  font-family:var(--serif);font-style:italic;
  color:var(--ink);
}
.page-body.dark .callout{background:rgba(20,23,27,.5);color:var(--text-on-ink)}

.spec-table{
  width:100%;
  border-top:1px solid var(--hair-paper);
  margin:32px 0;
}
.spec-row{
  display:grid;grid-template-columns:1fr 2fr;gap:32px;
  padding:18px 4px;border-bottom:1px solid var(--hair-paper);
  font-size:14px;
}
.page-body.dark .spec-table,.page-body.dark .spec-row{border-color:var(--hair-ink)}
.spec-k{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;
  color:var(--muted-paper);text-transform:uppercase;
}
.page-body.dark .spec-k{color:var(--muted-ink)}
.spec-v{color:var(--text-on-paper);line-height:1.5}
.page-body.dark .spec-v{color:var(--text-on-ink)}

.cta-strip{
  margin-top:80px;padding:64px 48px;
  background:var(--ink);color:var(--text-on-ink);
  display:grid;grid-template-columns:1.5fr auto;gap:48px;align-items:center;
}
.cta-strip h3{font-size:clamp(24px,2.4vw,36px);font-weight:300;letter-spacing:-.015em;margin-bottom:12px;color:var(--text-on-ink)}
.cta-strip p{color:var(--muted-ink);margin-bottom:0;max-width:48ch;font-size:15px}
.cta-strip .cta-actions{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
@media (max-width:800px){.cta-strip{grid-template-columns:1fr;padding:40px 28px;gap:32px}}

.next-pager{
  margin-top:80px;
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  border-top:1px solid var(--hair-paper);
}
.page-body.dark .next-pager{border-color:var(--hair-ink)}
.next-pager a{
  padding:32px 24px;
  display:flex;flex-direction:column;gap:8px;
  border-right:1px solid var(--hair-paper);
  transition:background .3s, color .3s;
}
.page-body.dark .next-pager a{border-color:var(--hair-ink)}
.next-pager a:last-child{border-right:0;text-align:right;align-items:flex-end}
.next-pager a:hover{background:var(--paper-2)}
.page-body.dark .next-pager a:hover{background:rgba(20,23,27,.5)}
.np-tag{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--muted-paper);text-transform:uppercase}
.page-body.dark .np-tag{color:var(--muted-ink)}
.np-title{font-size:20px;font-weight:400;letter-spacing:-.01em;color:var(--ink)}
.page-body.dark .np-title{color:var(--text-on-ink)}
@media (max-width:700px){.next-pager{grid-template-columns:1fr}.next-pager a{border-right:0;border-bottom:1px solid var(--hair-paper)}.next-pager a:last-child{text-align:left;align-items:flex-start;border-bottom:0}}

/* Editorial article (long-form insights) */
.article{max-width:780px;margin:0 auto;padding:80px 0}
.article p{font-size:17px;line-height:1.7;margin-bottom:22px;color:var(--text-on-paper);max-width:none}
.article h2{font-size:30px;font-weight:400;margin:48px 0 20px;letter-spacing:-.015em;max-width:none}
.article h3{font-size:22px;font-weight:500;margin:36px 0 14px;letter-spacing:-.01em}
.article blockquote{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:24px;line-height:1.4;color:var(--ink);
  margin:36px 0;padding-left:32px;border-left:2px solid var(--gold);
}
.article ul{margin:20px 0 20px 0}
.article hr{border:0;border-top:1px solid var(--hair-paper);margin:48px 0}
.article .figure{
  margin:36px -40px;
  padding:32px;background:var(--paper-2);
  font-size:14px;line-height:1.5;color:var(--muted-paper);
}
.article .figure-cap{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--gold);margin-bottom:14px}
@media (max-width:800px){.article .figure{margin-left:0;margin-right:0}}

.article-meta{
  display:flex;align-items:center;gap:14px;margin-bottom:24px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--muted-paper);text-transform:uppercase;
}
.article-meta .reading{margin-left:auto}

/* Insights index card grid */
.ins-index-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:32px;
  margin:48px 0;
}
@media (max-width:1000px){.ins-index-grid{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.ins-index-grid{grid-template-columns:1fr}}

/* Legal page typography (denser, document-like) */
.legal-body{max-width:780px;margin:0 auto}
.legal-body p,.legal-body li{font-size:14.5px;line-height:1.6;color:var(--text-on-paper)}
.legal-body h2{font-size:22px;font-weight:500;margin:40px 0 14px;letter-spacing:-.01em}
.legal-body h3{font-size:16px;font-weight:500;margin:24px 0 8px;letter-spacing:0;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-paper)}
.legal-body ol{margin:14px 0 14px 24px;padding:0}
.legal-body ol li{margin-bottom:10px;list-style:decimal}

/* Ecosystem map nodes (institutional map page) */
.eco-map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair-paper);border:1px solid var(--hair-paper)}
.eco-map-cell{background:var(--paper);padding:28px 24px;min-height:160px;display:flex;flex-direction:column;justify-content:space-between}
.eco-map-cell .cell-cap{font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--gold);margin-bottom:8px}
.eco-map-cell h4{font-size:18px;font-weight:400;letter-spacing:-.01em;margin-bottom:8px}
.eco-map-cell p{font-size:13px;color:var(--muted-paper);line-height:1.5;margin:0}
.eco-map-cell a{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--gold);margin-top:14px;text-transform:uppercase}
.eco-map-cell a:hover{text-decoration:underline}
@media (max-width:900px){.eco-map-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.eco-map-grid{grid-template-columns:1fr}}

/* ============================================================
   BRIDGE CAPITAL REPORTS — paid PDF previews + purchase modal
   ============================================================ */
.reports-head{
  display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:14px;
}
.reports-head h2{margin-bottom:0}
.reports-flag{
  color:var(--gold);letter-spacing:.22em;font-size:10px;
  padding:5px 10px;border:1px solid var(--gold);
}
.reports-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:28px;
  margin:36px 0 32px;
}
.report-card{
  display:flex;flex-direction:column;cursor:pointer;
  background:var(--paper);border:1px solid var(--hair-paper);
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s, border-color .35s;
  outline:none;
}
.report-card:hover, .report-card:focus-visible{
  transform:translateY(-3px);
  border-color:var(--gold);
  box-shadow:0 14px 36px -16px rgba(8,9,11,.28);
}
.report-card:focus-visible{outline:1px solid var(--gold);outline-offset:2px}
.report-cover{
  position:relative;overflow:hidden;aspect-ratio:980/1268;background:var(--ink);
}
.report-cover img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s cubic-bezier(.2,.7,.2,1), filter .35s;
}
.report-card:hover .report-cover img,
.report-card:focus-visible .report-cover img{transform:scale(1.03);filter:brightness(.85)}
.report-badge{
  position:absolute;top:12px;right:12px;z-index:2;
  background:var(--gold);color:var(--ink);
  padding:6px 12px;letter-spacing:.18em;font-size:11px;font-weight:500;
  border:1px solid var(--gold);
}
.report-hover{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  padding:14px 16px;color:var(--text-on-ink);letter-spacing:.18em;font-size:9.5px;
  background:linear-gradient(180deg, transparent 0%, rgba(8,9,11,.85) 70%);
  opacity:0;transform:translateY(6px);
  transition:opacity .3s, transform .3s;pointer-events:none;
}
.report-card:hover .report-hover,
.report-card:focus-visible .report-hover{opacity:1;transform:none}
.report-body{padding:20px 18px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.report-cat{color:var(--gold);letter-spacing:.2em;font-size:9.5px}
.report-title{
  font-size:18px;font-weight:400;letter-spacing:-.012em;line-height:1.2;color:var(--ink);
  margin:0;
}
.report-desc{
  font-size:13px;line-height:1.55;color:var(--muted-paper);margin:0;
}
.report-meta{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:9.5px;letter-spacing:.16em;color:var(--muted-paper);margin-top:auto;
}
.reports-disclosure{
  font-size:10px;letter-spacing:.18em;color:var(--muted-paper);
  padding-top:14px;border-top:1px solid var(--hair-paper);
}

@media (max-width:1100px){.reports-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.reports-grid{grid-template-columns:1fr;gap:24px}}

/* Modal --------------------------------------------------- */
.report-modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}
.report-modal[hidden]{display:none}
.report-modal-backdrop{
  position:absolute;inset:0;
  background:rgba(8,9,11,.78);
  backdrop-filter:blur(8px) saturate(120%);
  -webkit-backdrop-filter:blur(8px) saturate(120%);
  animation:rmFade .25s ease-out;
}
@keyframes rmFade{from{opacity:0}to{opacity:1}}
.report-modal-panel{
  position:relative;z-index:1;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0;
  width:min(1080px, 100%);max-height:min(880px, calc(100vh - 48px));
  background:var(--paper);color:var(--text-on-paper);
  border:1px solid rgba(255,255,255,.06);box-shadow:0 30px 80px -20px rgba(0,0,0,.65);
  animation:rmRise .35s cubic-bezier(.2,.7,.2,1);
  overflow:hidden;
}
@keyframes rmRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.report-modal-close{
  position:absolute;top:14px;right:14px;z-index:3;
  width:36px;height:36px;border:1px solid var(--hair-ink);
  background:rgba(8,9,11,.65);color:var(--text-on-ink);
  font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .25s, color .25s, border-color .25s;
}
.report-modal-close:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.report-modal-cover{
  position:relative;background:var(--ink);overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.report-modal-cover img{
  width:100%;height:100%;object-fit:cover;display:block;
}
.rmm-cover-watermark{
  position:absolute;left:14px;bottom:14px;z-index:2;
  padding:6px 10px;background:rgba(8,9,11,.7);color:var(--gold);
  letter-spacing:.22em;font-size:9.5px;
  border:1px solid rgba(181,152,90,.4);
}
.report-modal-meta{
  padding:40px 36px 32px;display:flex;flex-direction:column;overflow:auto;
}
.rmm-cat{color:var(--gold);letter-spacing:.22em;font-size:10px;margin-bottom:16px}
.rmm-title{font-size:clamp(22px,2.2vw,30px);font-weight:400;letter-spacing:-.015em;line-height:1.15;margin:0 0 18px;color:var(--ink)}
.rmm-body{font-size:15px;line-height:1.55;color:var(--text-on-paper);margin:0 0 22px}
.rmm-spec{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:10px;letter-spacing:.18em;color:var(--muted-paper);margin-bottom:24px}
.rmm-divider{height:1px;background:var(--hair-paper);margin:0 0 22px}
.rmm-pricing{display:flex;align-items:baseline;gap:14px;margin-bottom:20px}
.rmm-price{font-family:var(--serif);font-style:italic;font-size:48px;line-height:1;color:var(--ink);font-feature-settings:"tnum"}
.rmm-price-note{color:var(--muted-paper);font-size:10px;letter-spacing:.18em}
.rmm-actions{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.rmm-actions .btn-primary{font-size:13.5px;padding:14px 22px;color:var(--ink);background:var(--gold);border-color:var(--gold)}
.rmm-actions .btn-ghost{font-size:12px;color:var(--ink);border-color:var(--ink)}
.rmm-actions .btn-ghost:hover{background:var(--ink);color:var(--paper)}
.rmm-disclosure{font-size:9.5px;letter-spacing:.16em;color:var(--muted-paper);line-height:1.6}

@media (max-width:820px){
  .report-modal{padding:0}
  .report-modal-panel{
    grid-template-columns:1fr;
    max-height:100vh;width:100%;height:100vh;
    overflow:auto;
  }
  .report-modal-cover{aspect-ratio:980/1268;max-height:50vh}
  .report-modal-meta{padding:28px 24px}
}

/* ---- Season 01 sponsor strip ---- */
.reports-sponsor{
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
  margin-top:28px;padding:20px 24px;
  background:var(--ink);color:var(--text-on-ink);
  border:1px solid var(--hair-ink);
  position:relative;overflow:hidden;
}
.reports-sponsor::before{
  content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:var(--gold);
}
.reports-sponsor-l{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.reports-sponsor-cap{color:var(--gold);letter-spacing:.22em;font-size:10px}
.reports-sponsor-logo{display:inline-flex;align-items:center}
.reports-sponsor-logo img{
  height:56px;width:auto;display:block;
  filter:drop-shadow(0 0 14px rgba(122,156,140,.2));
  transition:transform .35s;
}
.reports-sponsor-logo:hover img{transform:scale(1.04)}
.reports-sponsor-r{color:var(--muted-ink);letter-spacing:.18em;font-size:10px;text-align:right;max-width:32ch;line-height:1.6}
@media (max-width:700px){
  .reports-sponsor{padding:18px 18px;gap:18px}
  .reports-sponsor-logo img{height:48px}
  .reports-sponsor-r{text-align:left}
}

/* ---- Modal view switching: preview <-> checkout ---- */
/* Override the earlier .report-modal-panel grid — the view system owns layout.
   Use flex column on the panel so the active view can flex:1 + min-height:0
   and scroll internally when content overflows. */
.report-modal-panel[data-view]{
  display:flex;flex-direction:column;
  grid-template-columns:none;
}
.rmm-view{display:none;flex:1 1 auto;min-height:0}
.report-modal-panel[data-view="preview"] .rmm-view-preview{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);
}
.report-modal-panel[data-view="checkout"] .rmm-view-checkout{
  display:block;overflow-y:auto;overflow-x:hidden;
}
/* On narrow viewports the preview view stacks like the original modal did */
@media (max-width:820px){
  .report-modal-panel[data-view="preview"] .rmm-view-preview{
    grid-template-columns:1fr;overflow-y:auto;
  }
  .report-modal-panel[data-view="preview"] .report-modal-cover{aspect-ratio:980/1268;max-height:50vh}
}

.rmm-sponsor-pill{
  display:inline-flex;align-items:center;gap:12px;
  padding:10px 14px;margin-bottom:16px;
  background:var(--ink);color:var(--text-on-ink);
  font-size:10px;letter-spacing:.18em;align-self:flex-start;
  border-left:2px solid var(--gold);
}
.rmm-sponsor-pill img{height:22px;width:auto}

/* ---- Checkout container ---- */
.rmm-checkout{padding:36px 40px 32px;display:flex;flex-direction:column;gap:22px;min-height:100%}
.rmm-back{
  align-self:flex-start;background:transparent;border:0;color:var(--muted-paper);
  font-family:var(--mono);font-size:10px;letter-spacing:.22em;cursor:pointer;padding:6px 0;
  text-transform:uppercase;transition:color .25s;
}
.rmm-back:hover{color:var(--ink)}
.rmm-checkout-head{display:flex;flex-direction:column;gap:8px;padding-bottom:18px;border-bottom:1px solid var(--hair-paper)}
.rmm-checkout-head .dim{color:var(--muted-paper)}
.rmm-checkout-title{font-size:clamp(20px,2.2vw,28px);font-weight:400;letter-spacing:-.015em;line-height:1.15;color:var(--ink);margin:0}
.rmm-checkout-sub{display:flex;align-items:baseline;gap:14px;color:var(--muted-paper);letter-spacing:.16em;font-size:10px}
.rmm-checkout-price{font-family:var(--serif);font-style:italic;font-size:28px;line-height:1;color:var(--ink);letter-spacing:-.02em;text-transform:none}

/* path tabs */
.rmm-paths{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair-paper);border:1px solid var(--hair-paper)}
.rmm-path-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 18px;background:var(--paper);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted-paper);cursor:pointer;border:0;transition:background .25s, color .25s;
}
.rmm-path-btn img{filter:invert(1);height:18px}
.rmm-path-btn:hover{color:var(--ink)}
.rmm-path-btn.active{background:var(--ink);color:var(--gold-soft)}
.rmm-path-btn.active img{filter:none}
@media (max-width:600px){.rmm-paths{grid-template-columns:1fr}}

/* steps */
.rmm-path-pane{display:flex;flex-direction:column;gap:24px}
/* `hidden` attribute must override the .rmm-path-pane flex display */
.rmm-path-pane[hidden],
.rmm-success[hidden],
.report-modal[hidden]{display:none !important}
.rmm-step{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;transition:opacity .3s}
.rmm-step-locked{opacity:.42;pointer-events:none}
.rmm-step-n{
  width:30px;height:30px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--gold-soft);
  font-size:11px;letter-spacing:.16em;
}
.rmm-step-body{min-width:0}
.rmm-step-body h4{font-size:16px;font-weight:500;letter-spacing:-.005em;margin:0 0 10px;color:var(--ink)}
.rmm-step-body h4 b{font-weight:600;color:var(--ink)}
.rmm-step-note{font-size:13px;line-height:1.55;color:var(--muted-paper);margin-bottom:14px;max-width:54ch}

/* ---- MetaMask-direct pay-token buttons ---- */
.rmm-pay-tokens{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.rmm-pay-token{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;
  padding:18px 20px;background:var(--ink);color:var(--text-on-ink);
  border:1px solid var(--hair-ink);cursor:pointer;
  transition:transform .25s cubic-bezier(.2,.7,.2,1), background .25s, border-color .25s, box-shadow .25s;
  text-align:left;font-family:var(--sans);
}
.rmm-pay-token:hover:not(:disabled){
  transform:translateY(-2px);border-color:var(--gold);
  box-shadow:0 14px 30px -16px rgba(0,0,0,.55);
}
.rmm-pay-token:disabled{cursor:not-allowed;opacity:.45}
.rmm-pay-token.rmm-pay-token-active{border-color:var(--gold);background:#0e1216;opacity:1}
.rmm-pay-token-glyph{
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  background:var(--gold);color:var(--ink);
  font-family:var(--serif);font-style:italic;font-size:24px;line-height:1;
}
.rmm-pay-token-info{display:flex;flex-direction:column;gap:4px;min-width:0}
.rmm-pay-token-label{font-size:9.5px;letter-spacing:.22em;color:var(--gold-soft);text-transform:uppercase}
.rmm-pay-token-name{font-size:18px;font-weight:500;letter-spacing:.04em;color:var(--text-on-ink)}
.rmm-pay-token-amount{
  font-family:var(--serif);font-style:italic;font-size:26px;color:var(--gold-soft);
  letter-spacing:-.02em;line-height:1;
}
@media (max-width:560px){.rmm-pay-tokens{grid-template-columns:1fr}}

.rmm-pay-meta{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:9.5px;letter-spacing:.18em;color:var(--muted-paper);
  margin-bottom:14px;
}

/* ---- Status panels (pay + wallet) — dot + message layout ---- */
.rmm-pay-status,
.rmm-wallet-status{
  display:flex;align-items:flex-start;gap:12px;
  padding:14px 16px;background:var(--paper-2);
  border-left:2px solid var(--hair-paper);
  font-family:var(--mono);font-size:11px;letter-spacing:.06em;line-height:1.6;
  color:var(--muted-paper);min-height:1em;
}
.rmm-pay-status-dot,
.rmm-wallet-status-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px;
  background:var(--muted-paper);
}
.rmm-pay-status-msg,
.rmm-wallet-status-msg{flex:1;min-width:0}
.rmm-pay-status-msg a,
.rmm-wallet-status-msg a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.rmm-pay-status[data-state="idle"],
.rmm-wallet-status[data-state="idle"]{
  background:var(--paper);border-left-color:var(--hair-paper);
}
.rmm-pay-status[data-state="pending"],
.rmm-wallet-status[data-state="pending"]{
  border-left-color:var(--gold);color:var(--ink);background:rgba(214,193,145,.08);
}
.rmm-pay-status[data-state="pending"] .rmm-pay-status-dot,
.rmm-wallet-status[data-state="pending"] .rmm-wallet-status-dot{
  background:var(--gold);box-shadow:0 0 0 4px rgba(181,152,90,.18);animation:rmDot 1.4s ease-in-out infinite;
}
.rmm-pay-status[data-state="ok"],
.rmm-wallet-status[data-state="ok"]{
  border-left-color:var(--emerald-light);color:var(--ink);background:rgba(122,156,140,.1);
}
.rmm-pay-status[data-state="ok"] .rmm-pay-status-dot,
.rmm-wallet-status[data-state="ok"] .rmm-wallet-status-dot{background:var(--emerald-light)}
.rmm-pay-status[data-state="fail"],
.rmm-wallet-status[data-state="fail"],
.rmm-pay-status[data-state="error"],
.rmm-wallet-status[data-state="error"]{
  border-left-color:#c08772;color:var(--ink);background:rgba(192,135,114,.08);
}
.rmm-pay-status[data-state="fail"] .rmm-pay-status-dot,
.rmm-wallet-status[data-state="fail"] .rmm-wallet-status-dot,
.rmm-pay-status[data-state="error"] .rmm-pay-status-dot,
.rmm-wallet-status[data-state="error"] .rmm-wallet-status-dot{background:#c08772}
.rmm-pay-status[data-state="warn"],
.rmm-wallet-status[data-state="warn"]{
  border-left-color:var(--gold);color:var(--ink);background:rgba(214,193,145,.1);
}
.rmm-pay-status[data-state="warn"] .rmm-pay-status-dot,
.rmm-wallet-status[data-state="warn"] .rmm-wallet-status-dot{background:var(--gold)}
.rmm-pay-status b,.rmm-wallet-status b{font-weight:600}
@keyframes rmDot{0%,100%{transform:scale(1)}50%{transform:scale(1.25)}}

/* contracts list (holder path) */
.rmm-contracts{display:flex;flex-direction:column;gap:0;margin-bottom:18px;border:1px solid var(--hair-paper)}
.rmm-contract-row{
  display:grid;grid-template-columns:160px 1fr;gap:14px;align-items:center;
  padding:12px 14px;border-bottom:1px solid var(--hair-paper);
  font-size:10px;letter-spacing:.16em;
}
.rmm-contract-row:last-child{border-bottom:0}
.rmm-contract-row .rmm-l{color:var(--gold);letter-spacing:.18em}
.rmm-contract-row code{font-family:var(--mono);font-size:11px;color:var(--ink);overflow:auto;white-space:nowrap;letter-spacing:.04em}

/* ---- Holder-path wallet CTA — large, unmistakable on first view ---- */
.rmm-wallet-check{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.rmm-wallet-cta{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
  padding:20px 24px;background:var(--gold);color:var(--ink);
  border:1px solid var(--gold);cursor:pointer;
  text-align:left;font-family:var(--sans);
  transition:transform .25s cubic-bezier(.2,.7,.2,1), background .25s, box-shadow .25s;
  box-shadow:0 10px 24px -16px rgba(181,152,90,.6);
}
.rmm-wallet-cta:hover{transform:translateY(-2px);background:var(--gold-soft);box-shadow:0 18px 36px -16px rgba(181,152,90,.6)}
.rmm-wallet-cta:disabled{cursor:not-allowed;opacity:.55;transform:none;box-shadow:none}
.rmm-wallet-cta-icon{
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  background:var(--ink);color:var(--gold-soft);
}
.rmm-wallet-cta-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.rmm-wallet-cta-label{font-size:9.5px;letter-spacing:.22em;color:var(--ink);opacity:.7;text-transform:uppercase}
.rmm-wallet-cta-title{font-size:17px;font-weight:500;letter-spacing:-.005em;color:var(--ink)}
.rmm-wallet-cta-arrow{color:var(--ink);display:flex;align-items:center;transition:transform .25s}
.rmm-wallet-cta:hover .rmm-wallet-cta-arrow{transform:translateX(3px)}

/* forms */
.rmm-form{display:flex;flex-direction:column;gap:16px;margin-top:6px}
.rmm-field{display:flex;flex-direction:column;gap:6px}
.rmm-field .rmm-l{color:var(--gold);letter-spacing:.18em;font-size:9.5px}
.rmm-field input{
  font-family:var(--mono);font-size:13px;color:var(--ink);
  padding:12px 14px;background:var(--paper-2);
  border:1px solid var(--hair-paper);outline:none;
  transition:border-color .25s, background .25s;letter-spacing:.04em;
}
.rmm-field input::placeholder{color:var(--muted-paper);opacity:.7}
.rmm-field input:focus{border-color:var(--gold);background:var(--paper)}
.rmm-field .rmm-err{
  color:#a67338;font-size:9.5px;letter-spacing:.14em;display:none;
}
.rmm-field.rmm-field-error input{border-color:#c08772}
.rmm-field.rmm-field-error .rmm-err{display:block}
.rmm-form button[type="submit"]{align-self:flex-start;margin-top:8px}

/* success */
.rmm-success{
  display:flex;flex-direction:column;align-items:flex-start;gap:14px;
  padding:32px 4px;text-align:left;
}
.rmm-success-glyph{
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  background:var(--emerald-light);color:var(--ink);
  font-size:24px;line-height:1;
}
.rmm-success-title{font-size:24px;font-weight:400;letter-spacing:-.015em;color:var(--ink);margin:0}
.rmm-success-body{font-size:15px;line-height:1.55;color:var(--text-on-paper);margin:0;max-width:60ch}
.rmm-success-body b{font-weight:600;color:var(--ink)}
.rmm-success-body a{color:var(--gold);text-decoration:underline;text-underline-offset:2px}
.rmm-success-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.rmm-success-actions .btn-primary{background:var(--gold);color:var(--ink);border-color:var(--gold);font-size:13.5px;padding:14px 22px}
.rmm-success-actions .btn-ghost{color:var(--ink);border-color:var(--ink)}
.rmm-success-actions .btn-ghost:hover{background:var(--ink);color:var(--paper)}

.rmm-checkout-foot{margin-top:auto;padding-top:18px;border-top:1px solid var(--hair-paper);color:var(--muted-paper);font-size:9.5px;letter-spacing:.16em;line-height:1.6}

@media (max-width:600px){
  .rmm-checkout{padding:24px 22px 22px}
  .rmm-network-row,.rmm-contract-row{grid-template-columns:1fr;gap:4px}
  .rmm-addr-code{font-size:10.5px}
}

/* ============================================================
   RTL (Arabic) — minimal adjustments. Most of the layout flips
   automatically because we use logical flex/grid order; this section
   handles the directional pieces that hard-coded translateX or right
   positioning.
   ============================================================ */
[dir="rtl"]{text-align:right}
[dir="rtl"] body{font-family:'Inter Tight','Noto Sans Arabic','Segoe UI',system-ui,sans-serif}

/* Mobile menu slides in from the LEFT in RTL */
[dir="rtl"] .mobile-menu-panel{
  right:auto;left:0;
  border-left:0;
  border-right:1px solid var(--hair-ink);
  transform:translateX(-100%);
}
[dir="rtl"] .mobile-menu-open .mobile-menu-panel{transform:translateX(0)}
[dir="rtl"] .mobile-menu-nav a{grid-template-columns:auto 1fr auto}
[dir="rtl"] .mobile-menu-nav a:hover,
[dir="rtl"] .mobile-menu-nav a:focus-visible{padding-left:24px;padding-right:30px}

/* Flip the carousel scroll direction so logos still appear right→left when
   reading in RTL (i.e., they enter from the LEFT in source order). */
[dir="rtl"] .brand-carousel-track{animation-name:brandScrollRTL}
@keyframes brandScrollRTL{
  from{transform:translateX(-50%)}
  to{transform:translateX(0)}
}

/* Don't flip mono/locale buttons or the brand wordmark — those stay LTR */
[dir="rtl"] .brand,
[dir="rtl"] .locale,
[dir="rtl"] .mobile-menu-locales,
[dir="rtl"] .anchor-num,
[dir="rtl"] .anchor-stack-row,
[dir="rtl"] .mono,
[dir="rtl"] .rail-mono,
[dir="rtl"] .ticker-track,
[dir="rtl"] .ticker-label{direction:ltr;text-align:left}

/* Inline arrows in CTAs should point left in RTL */
[dir="rtl"] .arrow{display:inline-block;transform:scaleX(-1)}
[dir="rtl"] .btn-ghost:hover .arrow{transform:scaleX(-1) translateX(4px)}

/* ============================================================
   FORM SUCCESS MODAL (Counterparty access + future forms)
   ============================================================ */
.form-error{
  background:rgba(192,135,114,.1);
  border-left:2px solid #c08772;
  padding:12px 16px;
  font-size:11px;letter-spacing:.06em;line-height:1.6;
  color:#c08772;
  margin-top:12px;
}
.form-success-modal{
  position:fixed;inset:0;z-index:300;
  display:flex;align-items:center;justify-content:center;
  padding:24px;
}
.form-success-modal[hidden]{display:none!important}
.form-success-backdrop{
  position:absolute;inset:0;
  background:rgba(8,9,11,.78);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  animation:fadeBackdrop .3s ease;
}
.form-success-panel{
  position:relative;
  width:min(560px,100%);
  max-height:90vh;overflow:auto;
  background:var(--ink);color:var(--text-on-ink);
  border:1px solid var(--hair-ink);
  border-left:3px solid var(--gold);
  padding:48px 40px 36px;
  display:flex;flex-direction:column;gap:18px;
  box-shadow:0 32px 80px -16px rgba(0,0,0,.6);
  animation:slideUp .35s cubic-bezier(.2,.7,.2,1);
}
@keyframes fadeBackdrop{from{opacity:0}to{opacity:1}}
@keyframes slideUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.form-success-close{
  position:absolute;top:14px;right:14px;
  width:36px;height:36px;
  background:transparent;border:0;cursor:pointer;
  color:var(--muted-ink);display:flex;align-items:center;justify-content:center;
  transition:color .25s, transform .25s;
}
.form-success-close:hover{color:var(--gold);transform:rotate(90deg)}
.form-success-glyph{
  width:54px;height:54px;
  display:flex;align-items:center;justify-content:center;
  background:var(--gold);color:var(--ink);
  font-size:28px;line-height:1;
  border-radius:50%;
  margin-bottom:4px;
}
.form-success-cap{color:var(--gold);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase}
.form-success-panel h2{
  font-size:clamp(24px,2.6vw,32px);
  font-weight:300;letter-spacing:-.015em;line-height:1.2;
  color:var(--text-on-ink);margin:0;
}
.form-success-panel h2 .serif{font-style:italic;font-weight:400}
.form-success-panel p{
  font-size:14.5px;line-height:1.6;color:var(--muted-ink);
  margin:0;max-width:50ch;
}
.form-success-panel p b{color:var(--text-on-ink);font-weight:500}
.form-success-meta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:9.5px;letter-spacing:.18em;color:var(--muted-ink);
  padding:14px 0;
  border-top:1px solid var(--hair-ink);
  border-bottom:1px solid var(--hair-ink);
}
.form-success-panel .btn-primary{
  align-self:flex-start;
  margin-top:6px;font-size:13px;padding:14px 22px;letter-spacing:.08em;
}
@media (max-width:600px){
  .form-success-panel{padding:36px 24px 28px}
  .form-success-panel .btn-primary{width:100%;justify-content:center}
}


