:root {
  /* Cardano-aligned typography. Chivo for display / headings (Cardano
     marketing heritage); Inter for body / UI (de-facto Web3 reading
     face). Both loaded via Google Fonts in the page <head>. */
  --font-display:'Chivo','Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --accent:#E52321;
  --infared:#E52321;--dawn:#EC641D;--black:#1a1a1a;--white:#fff;
  /* Official Cardano palette (cardano.org/brand-assets) — Blue, Black, White, Paper */
  --cardano-blue:#0033AD;--cardano-blue-soft:rgba(0,51,173,.12);--cardano-blue-glow:rgba(0,51,173,.45);
  /* Cardano-family secondary blue used for h3 / hover states / accents.
     Lighter, brighter than --cardano-blue so it pairs cleanly without
     leaving the brand family. */
  --cardano-blue-2:#1F5BC6;--cardano-blue-2-soft:rgba(31,91,198,.10);
  /* Soft underline tone for body links — the same blue but at low alpha
     so paragraphs of links don't feel like a wall of underlines. */
  --cardano-link-line:rgba(0,51,173,.28);
  --cardano-black:#000000;--cardano-paper:#f8f8f5;
  --cardano-red:#ff5553;--cardano-green:#3b7982;
  --electric-blue:#16E9D8;--acid-green:#06FF89;--volt-yellow:#F2FF58;
  --cobalt-pulse:#2C4FFA;--ultraviolet:#A700FF;
  --bg:#ffffff;--bg-warm:#faf9f7;--bg-panel:#f5f4f2;--bg-code:#f0efed;
  --text-primary:#1a1a1a;--text-body:#3a3a3a;--text-secondary:#6b6b6b;--text-muted:#999;
  --border:#e2e0dc;--border-light:#eceae6;
}
/* Dark theme overrides */
[data-theme=dark]{
  --bg:#0a0a0c;--bg-warm:#111113;--bg-panel:#1a1a1d;--bg-code:#242428;
  --text-primary:#e4e4e7;--text-body:#a1a1aa;--text-secondary:#71717a;--text-muted:#52525b;
  --border:#27272a;--border-light:#1f1f23;--black:#e4e4e7;--white:#0a0a0c;
}
[data-theme=dark] body{background:var(--bg-warm);color:var(--text-body)}
[data-theme=dark] .nav-pages{background:var(--bg);border-bottom-color:var(--border)}
[data-theme=dark] .nav-tab:hover{background:rgba(255,255,255,.06)}
[data-theme=dark] .nav-tab.active{background:rgba(229,35,33,.12);color:var(--text-primary)}
[data-theme=dark] .nav-col+.nav-col{border-left-color:var(--border)}
[data-theme=dark] .nav-col-title{color:var(--infared)}
[data-theme=dark] .nav-pdf-badge{background:rgba(229,35,33,.15)}
[data-theme=dark] .content{background:var(--bg);border-color:var(--border-light)}
/* Dark-mode heading background washes were retired with the unified
   bar-on-the-left vocabulary — the bar carries the visual weight; an
   added background tint competed with the H1 motif. */
[data-theme=dark] .content a{color:#f06050}
[data-theme=dark] .content img{border-color:var(--border);filter:brightness(.92)}
[data-theme=dark] .content code{background:var(--bg-code);color:#e87461}
[data-theme=dark] .content pre{background:var(--bg-panel);border-color:var(--border)}
[data-theme=dark] .content blockquote{background:var(--bg-panel);border-left-color:var(--accent)}
[data-theme=dark] .content tr:hover td{background:var(--bg-panel)}
[data-theme=dark] .toc-nav{background:var(--bg-panel);border-color:var(--border)}
[data-theme=dark] .obs-card{background:var(--bg);border-color:var(--border)}
[data-theme=dark] .obs-card-header{background:var(--bg-panel)}
[data-theme=dark] .obs-card-header:hover{background:var(--bg-code)}
[data-theme=dark] .obs-finding{background:var(--bg-panel)}
[data-theme=dark] .obs-finding:hover{background:var(--bg-code)}
[data-theme=dark] .table-wrap{border-color:var(--border)}
[data-theme=dark] .back-top{background:var(--bg-panel);border-color:var(--border);color:var(--text-muted)}
[data-theme=dark] .lightbox-overlay{background:rgba(0,0,0,.92)}
/* Dark synth cards */
[data-theme=dark] .synth-card{border-color:var(--border)}
[data-theme=dark] .synth-card:hover{border-color:#3a3a3a}
[data-theme=dark] .synth-card-head:hover{background:var(--bg-panel)}
[data-theme=dark] .synth-f{background:var(--bg-panel)}
[data-theme=dark] .synth-f:hover{background:var(--bg-code)}
[data-theme=dark] .synth-stats{background:var(--bg-panel);border-color:var(--border)}
[data-theme=dark] .synth-scope{background:var(--bg-panel)}
[data-theme=dark] .synth-fref{background:var(--bg-code)}

html{scroll-behavior:smooth;scroll-padding-top:150px}

/* Anchor-target visual cue — header lands clear of the sticky nav and flashes prominently */
.content :target{scroll-margin-top:150px}
.content h1:target,.content h2:target,.content h3:target,.content h4:target,.content h5:target,.content h6:target,
.ev-card:target,.sro-card:target,.sro-finding:target{
  animation:target-flash 3.6s ease-out;
  position:relative
}
@keyframes target-flash{
  0%      {background-color:rgba(242,255,88,.70); box-shadow:inset 10px 0 0 var(--infared), 0 0 0 3px var(--infared), 0 0 18px rgba(229,35,33,.35)}
  18%     {background-color:rgba(242,255,88,.60); box-shadow:inset 10px 0 0 var(--infared), 0 0 0 3px var(--infared), 0 0 18px rgba(229,35,33,.35)}
  40%     {background-color:rgba(229,35,33,.30);  box-shadow:inset 10px 0 0 var(--infared), 0 0 0 2px rgba(229,35,33,.45), 0 0 8px rgba(229,35,33,.18)}
  100%    {background-color:transparent;           box-shadow:inset 10px 0 0 transparent,    0 0 0 0 transparent,            0 0 0 transparent}
}
[data-theme=dark] .content h1:target,[data-theme=dark] .content h2:target,[data-theme=dark] .content h3:target,[data-theme=dark] .content h4:target,[data-theme=dark] .content h5:target,[data-theme=dark] .content h6:target,
[data-theme=dark] .ev-card:target,[data-theme=dark] .sro-card:target,[data-theme=dark] .sro-finding:target{
  animation:target-flash-dark 3.6s ease-out
}
@keyframes target-flash-dark{
  0%      {background-color:rgba(242,255,88,.30); box-shadow:inset 10px 0 0 #FF7A78, 0 0 0 3px #FF7A78, 0 0 18px rgba(255,122,120,.45)}
  18%     {background-color:rgba(242,255,88,.22); box-shadow:inset 10px 0 0 #FF7A78, 0 0 0 3px #FF7A78, 0 0 18px rgba(255,122,120,.45)}
  40%     {background-color:rgba(229,35,33,.32);  box-shadow:inset 10px 0 0 #FF7A78, 0 0 0 2px rgba(255,122,120,.55), 0 0 8px rgba(255,122,120,.25)}
  100%    {background-color:transparent;           box-shadow:inset 10px 0 0 transparent, 0 0 0 0 transparent,        0 0 0 transparent}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .content h1:target,.content h2:target,.content h3:target,.content h4:target,.content h5:target,.content h6:target,
  .ev-card:target,.sro-card:target,.sro-finding:target{
    animation:none;background-color:rgba(229,35,33,.18);box-shadow:inset 8px 0 0 var(--infared), 0 0 0 2px rgba(229,35,33,.45)
  }
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font-body);background:var(--bg-warm);color:var(--text-body);line-height:1.78;-webkit-font-smoothing:antialiased}

/* ── NAV ── */
/* ── Site header: two bars ── */
.site-nav{position:sticky;top:0;z-index:100;display:flex;flex-direction:column}

/* Bar 1: brand identity */
.nav-brand{background:linear-gradient(90deg,var(--cardano-blue) 0%,var(--cardano-blue) 18%,rgba(0,51,173,.85) 26%,rgba(0,51,173,.55) 38%,rgba(0,51,173,.22) 55%,rgba(0,51,173,.06) 72%,#fff 92%),var(--bg);padding:8px 28px 8px;display:flex;align-items:center;min-height:48px;gap:14px;border-bottom:0}
.nav-brand-home{display:flex;align-items:center;gap:10px;text-decoration:none}
.nav-brand-logo{height:18px;width:auto;opacity:.7;flex-shrink:0}
.nav-brand-org{font:300 10px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:2.5px;text-transform:uppercase;color:rgba(255,255,255,.4)}
.nav-brand-title{font:600 19px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#fff;letter-spacing:.2px}
.nav-brand-sep{color:rgba(255,255,255,.28);font:300 14px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0 2px}
.nav-brand-subtitle{font:300 10px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:1.6px;text-transform:uppercase;color:rgba(255,255,255,.55)}
@media (max-width:900px){.nav-brand-sep,.nav-brand-subtitle{display:none}}

/* Brand bar right: dropdowns + theme toggle */
.nav-brand-right{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}
/* Hero build-info badge — same chrome as the CARDANO BUSINESS UNIT
   chip used to be (green dot prefix, green border, dark translucent
   fill). Date in CAPS / wide tracking like the original CBU label;
   author in Title Case (proper noun, not a label). */
.hero-division-sep{color:rgba(255,255,255,.7);padding:0 2px;
  letter-spacing:0;font-weight:300}
/* Author chip — same CBU label treatment as the date (UPPERCASE,
   wide tracking) but rendered as a link to the author's profile. */
.hero-division-author{font-size:10px;font-weight:400;letter-spacing:2.8px;
  text-transform:uppercase;color:#ffffff;
  text-decoration:none;border-bottom:1px solid rgba(6,255,137,.0);
  transition:color .15s,border-color .15s}
/* Epoch chip — analysis cutoff (e.g. "Through epoch 623"). Same CBU
   label treatment as the date. */
.hero-division-epoch{font-size:10px;font-weight:400;letter-spacing:2.8px;
  text-transform:uppercase;color:#ffffff}
.hero-division-epoch-date{font-size:10px;font-weight:400;letter-spacing:2.8px;
  text-transform:uppercase;color:#ffffff}
/* Data-cutoff badge — sibling of .hero-division. Cool-tinted edge
   (Electric Blue) to mark it as analysis-window metadata distinct
   from the build/author chip. */
.hero-data-cutoff{display:flex;align-items:center;gap:10px;
  padding:6px 14px 6px 14px;
  border:1px solid rgba(22,233,216,.45);
  border-radius:2px;
  background:rgba(0,0,0,.35);
  backdrop-filter:blur(2px);
  color:#ffffff}

/* ── Hero byline ────────────────────────────────────────────
   Editorial-style metadata line under the hero subtitle. No
   boxes, no backdrop blur, no borders — pure typography with
   small line-art icons and a vertical hairline between
   segments. Reads as part of the document, not as a UI panel. */
.hero-byline{display:inline-flex;flex-wrap:wrap;
  align-items:center;
  gap:0;
  margin-top:22px;
  padding:0;
  background:none;
  border:none;
  position:relative;z-index:2;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.hero-byline-seg{display:inline-flex;align-items:center;gap:9px;
  padding:0 22px;
  border-right:1px solid rgba(255,255,255,.18);
  color:rgba(255,255,255,.78);
  font-size:13px;
  font-weight:500;
  letter-spacing:.01em;
  white-space:nowrap}
.hero-byline-seg:first-child{padding-left:0}
.hero-byline-seg:last-child{border-right:none;padding-right:0}
.hero-byline-seg .hero-meta-icon{flex-shrink:0;
  color:rgba(255,255,255,.45);
  display:block}
.hero-byline-value{color:rgba(255,255,255,.92)}
.hero-byline-sub{color:rgba(255,255,255,.55);font-weight:400}
.hero-byline-author{color:#ffffff;text-decoration:none;
  font-weight:500;
  border-bottom:1px solid rgba(255,255,255,0);
  transition:border-color .15s,color .15s}
a.hero-byline-author:hover,
a.hero-byline-author:focus-visible{
  color:#ffffff;border-bottom-color:rgba(6,255,137,.7);outline:none}
.hero-meta-cell{display:flex;flex-direction:row;align-items:center;
  gap:14px;
  padding:11px 22px;
  border-bottom:1px solid rgba(255,255,255,.16);
  min-width:0}
.hero-meta-cell:last-child{border-bottom:none}
.hero-meta-icon{flex-shrink:0;
  color:rgba(255,255,255,.55);
  display:block}
.hero-meta-text{display:flex;flex-direction:column;gap:4px;min-width:0}
.hero-meta-label{font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:9px;font-weight:500;letter-spacing:2.4px;
  text-transform:uppercase;
  color:rgba(255,255,255,.55)}
.hero-meta-value{font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:13px;font-weight:500;letter-spacing:.01em;
  color:#ffffff;
  white-space:nowrap}
.hero-meta-sub{color:rgba(255,255,255,.62);font-weight:400}
.hero-meta-author-link{color:#ffffff;text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,0);
  transition:border-color .15s,color .15s}
.hero-meta-author-link:hover,
.hero-meta-author-link:focus-visible{
  color:#ffffff;border-bottom-color:rgba(6,255,137,.7);outline:none}
a.hero-division-author:hover,a.hero-division-author:focus-visible{
  color:#fff;border-bottom-color:rgba(6,255,137,.6);outline:none}
.theme-toggle{background:rgba(255,255,255,.85);border:1px solid rgba(0,51,173,.4);border-radius:4px;cursor:pointer;padding:5px 8px;color:var(--cardano-blue);font-size:14px;line-height:1;transition:color .15s,border-color .15s,background .15s;display:flex;align-items:center}
.theme-toggle:hover{background:#fff;border-color:var(--cardano-blue);color:#001a6b}
.theme-toggle:hover{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.3)}
.pdf-export{background:rgba(255,255,255,.85);border:1px solid rgba(0,51,173,.4);border-radius:4px;cursor:pointer;padding:5px 9px;color:var(--cardano-blue);font:700 10.5px/1 'Chivo',-apple-system,sans-serif;letter-spacing:1.2px;transition:color .15s,border-color .15s,background .15s}
.pdf-export:hover{background:#fff;border-color:var(--cardano-blue);color:#001a6b}
.pdf-export:hover{color:var(--infared);border-color:var(--infared);background:rgba(229,35,33,.08)}
.nav-dd-wrap{position:relative}
.nav-dd-btn{background:none;border:1px solid rgba(255,255,255,.15);border-radius:4px;cursor:pointer;font:400 11px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.5px;color:rgba(255,255,255,.5);padding:6px 12px;transition:color .15s,border-color .15s;white-space:nowrap}
.nav-dd-btn:hover{color:rgba(255,255,255,.8);border-color:rgba(255,255,255,.3)}
.nav-dd-wrap.open .nav-dd-btn{color:#fff;border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.08)}
.nav-dd-panel{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#1a1a1a;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.4);padding:8px 0;min-width:340px;z-index:200}
.nav-dd-wrap.open .nav-dd-panel{display:block}
.nav-dd-item{display:block;padding:10px 16px;text-decoration:none;transition:background .1s}
.nav-dd-item:hover{background:rgba(255,255,255,.06)}
.nav-dd-title{display:block;font:500 13px/1.35 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:rgba(255,255,255,.85);border-bottom:none}
.nav-dd-meta{display:block;font:400 11px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:rgba(255,255,255,.35);margin-top:3px}

/* Bar 2: three-column navigation */
.nav-pages{background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:stretch;padding:0 24px;overflow-x:auto;white-space:nowrap;position:relative;gap:38px}
/* Single reading-direction rail across the navbar — replaces the per-gap
   arrows. Dashed hairline that runs from Welcome (destination) on the
   left to Design Support (origin) on the right. Anchored by JS so the
   right edge sits flush with the rightmost button rather than running
   into the empty space past it. The arrowhead stays on the LEFT end
   (Welcome) — that's the reading-direction destination. */
.nav-flow-rail{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);
               height:11px;display:flex;align-items:center;
               pointer-events:none;z-index:0;
               /* Hidden until the JS positioner runs — otherwise the
                  unpositioned rail flashes across the full navbar width
                  on initial paint, leaving stray dashes left of Welcome. */
               opacity:0;transition:opacity .15s ease}
.nav-flow-rail.positioned{opacity:1;
               /* Very subtle dark drop-shadow only — gives the dashes
                  just enough definition against the gradient without
                  feeling glowy or heavy. */
               filter:drop-shadow(0 1px 1px rgba(0,0,0,0.12))}
.nav-flow-rail-line{flex:1;display:block;height:1px;
                     margin-left:6px;margin-right:0;order:2;
                     border:0;
                     background:repeating-linear-gradient(to right,
                       currentColor 0 4px,
                       transparent 4px 8px);
                     color:rgba(255,255,255,0.7)}
/* Arrowhead suppressed — the chevron-shaped buttons themselves convey
   the right→left reading direction; an extra arrowhead at the rail
   start is redundant. Also fixes a brief flash on page load before the
   JS rail positioner runs. */
.nav-flow-rail-head{display:none}
/* Two-stop colour transition — left half white-ish, right half dark-ish.
   Implemented as an overlay so the dashes themselves blend smoothly. */
.nav-flow-rail-line::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;
                            transform:translateY(-50%);pointer-events:none}
[data-theme=dark] .nav-flow-rail-line{color:rgba(255,255,255,0.55)}
[data-theme=dark] .nav-flow-rail-head{color:rgba(255,255,255,0.7)}
/* Lift every nav child above the rail so the buttons render on top. */
.nav-pages > .nav-zone,
.nav-pages > .nav-tab-implementation,
.nav-pages > .nav-tab-roadmap{position:relative;z-index:1}

/* ── Chevron-shaped buttons ─────────────────────────────────────────────
   Each button gets a V-notch on its right edge, so the silhouette itself
   points left — the reading-direction is encoded in the shape, no extra
   arrow needed. Apply via clip-path so the button's existing background
   / border / colour rules keep working unchanged. */
:root{--nav-chev-cut:8px}
/* Unified typography across every chevron button — same Inter weight,
   tracking, case, and line-height. Stops the per-class differences
   (some had .4 letter-spacing, some .2, some uppercase) from making
   the row look inconsistent. */
.nav-tab-implementation,
.nav-tab-roadmap,
.nav-tab-problems-big,
.nav-tab-spec-big,
.nav-dd-btn-light,
.nav-dd-btn-solution{
  font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important;
  letter-spacing:.2px !important;
  text-transform:none !important;
}

/* All chevron buttons get an SVG background that draws the silhouette +
   a stroke along every edge (including the V-points). clip-path-based
   chevrons couldn't do this — clip-path just hides pixels, it doesn't
   stroke the polygon outline. Vector strokes (vector-effect:
   non-scaling-stroke) keep the dash pattern / line weight uniform
   regardless of button width.
   The drop-shadow filter follows the visible alpha (the SVG fill), so
   the shadow now wraps the chevron outline rather than a rectangle. */
.nav-tab-implementation,
.nav-tab-roadmap,
.nav-tab-problems-big,
.nav-tab-spec-big,
.nav-dd-btn-light{
  clip-path:none !important;
  background-color:transparent !important;
  background-repeat:no-repeat !important;
  background-size:100% 100% !important;
  background-position:center !important;
  border:0 !important;
  /* Disable the rectangular box-shadow inherited from sibling rules —
     it draws around the underlying <button> rectangle, which leaks out
     above/below the chevron V-cuts. The chevron silhouette uses
     filter:drop-shadow() instead, which follows the SVG shape. */
  box-shadow:none !important;
  padding:18px calc(22px + var(--nav-chev-cut)) !important;
  justify-content:center !important;
  text-align:center !important;
  /* Two-layer shadow that adapts to the gradient navbar background:
     - white glow shows up against the deep-blue left zone (otherwise
       a dark shadow vanishes there);
     - dark shadow shows up against the white right zone.
     Each layer is effectively invisible against its own background
     colour, so only the relevant one reads at any given button. */
  filter:drop-shadow(0 0 5px rgba(255,255,255,0.28))
         drop-shadow(0 2px 4px rgba(0,0,0,0.13))
         drop-shadow(0 1px 1px rgba(0,0,0,0.08));
}
/* Same neutralisation on hover/open — the sibling rules at l.1618 and
   l.1631 re-apply a heavier box-shadow that would leak outside the chevron. */
.nav-dd-btn-light:hover,
.nav-dd-wrap-light.open > .nav-dd-btn-light{
  box-shadow:none !important;
}
/* White-plate dropdown chevrons (the right-side buttons + Existing CIPs
   trigger). Light-grey 1px stroke around the full silhouette. */
.nav-dd-btn-light,
.nav-tab-problems-big{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L93 20 L99 39 L7 39 L1 20 Z' fill='%23ffffff' stroke='%23cfcfcf' stroke-width='1' vector-effect='non-scaling-stroke'/></svg>") !important;
  color:var(--text-secondary) !important;
}
.nav-dd-btn-light:hover,
.nav-tab-problems-big:hover{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L93 20 L99 39 L7 39 L1 20 Z' fill='%23fafafa' stroke='%23999999' stroke-width='1' vector-effect='non-scaling-stroke'/></svg>") !important;
  color:var(--text-primary) !important;
}
.nav-dd-wrap-light.open > .nav-dd-btn-light{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L93 20 L99 39 L7 39 L1 20 Z' fill='%23fff5f5' stroke='%23E52321' stroke-width='1.2' vector-effect='non-scaling-stroke'/></svg>") !important;
  color:var(--infared) !important;
}
/* Existing CIPs trigger — same white-plate recipe but with the original
   text colour (var(--text-primary)) + cardano-blue active state. */
.nav-dd-btn-solution{color:var(--text-primary) !important}
.nav-dd-wrap-light.open > .nav-dd-btn-solution{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L93 20 L99 39 L7 39 L1 20 Z' fill='%23eaf0fc' stroke='%230033ad' stroke-width='1.2' vector-effect='non-scaling-stroke'/></svg>") !important;
  color:var(--cardano-blue) !important;
}
/* V2 Roadmap — middle chevron, both V's. */
.nav-tab-roadmap{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L93 20 L99 39 L7 39 L1 20 Z' fill='%23ffffff' stroke='%23cfcfcf' stroke-width='1' vector-effect='non-scaling-stroke'/></svg>") !important;
  color:var(--text-primary) !important;
  filter:drop-shadow(0 0 7px rgba(255,255,255,0.38))
         drop-shadow(0 2px 4px rgba(0,0,0,0.12)) !important;
}

/* Welcome — leftmost extremity: FLAT left, V-cut right.
   Reads as the destination flag of the chain. */
.nav-tab-implementation{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M1 1 L99 1 L93 20 L99 39 L1 39 Z' fill='%23ffffff' stroke='%23cfcfcf' stroke-width='1' vector-effect='non-scaling-stroke'/></svg>") !important;
  color:var(--text-primary) !important;
  /* No chevron padding on the flat left edge. */
  padding-left:22px !important;
  filter:drop-shadow(0 0 7px rgba(255,255,255,0.38))
         drop-shadow(0 2px 4px rgba(0,0,0,0.12)) !important;
}

/* Constitution — rightmost extremity: V-point left, FLAT right.
   Reads as the origin flag of the chain (the governance ceiling). */
.nav-dd-btn-constitution{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L99 39 L7 39 L1 20 Z' fill='%23ffffff' stroke='%23cfcfcf' stroke-width='1' vector-effect='non-scaling-stroke'/></svg>") !important;
  /* No chevron padding on the flat right edge. */
  padding-right:22px !important;
}
.nav-dd-btn-constitution:hover{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L99 39 L7 39 L1 20 Z' fill='%23fafafa' stroke='%23999999' stroke-width='1' vector-effect='non-scaling-stroke'/></svg>") !important;
}
.nav-dd-wrap-light.open > .nav-dd-btn-constitution{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L99 39 L7 39 L1 20 Z' fill='%23fff5f5' stroke='%23E52321' stroke-width='1.2' vector-effect='non-scaling-stroke'/></svg>") !important;
}
/* V2 Spec — solid Cardano-blue chevron with a SOLID white border. */
.nav-tab-spec-big{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 40' preserveAspectRatio='none'><path d='M7 1 L99 1 L93 20 L99 39 L7 39 L1 20 Z' fill='%230033ad' stroke='%23ffffff' stroke-width='1.4' vector-effect='non-scaling-stroke'/></svg>") !important;
  color:#fff !important;
  filter:drop-shadow(0 3px 8px rgba(0,51,173,0.50))
         drop-shadow(0 1px 1px rgba(0,0,0,0.18)) !important;
}
/* Move the eyebrow badges OUT of the clipped button onto the wrap
   parent so they are not subject to the chevron clip-path. The
   wraps already have position:relative. The .nav-zone parent is
   used for the standalone tabs (no wrap div). */
.nav-dd-wrap-light:has(.nav-dd-ref-new),
.nav-zone-output,        /* spec / roadmap zones */
.nav-zone-problems,      /* induced problems */
.nav-zone-implementation /* welcome */
{position:relative;overflow:visible}
.nav-dd-wrap-light:has(.nav-dd-ref-new)::before,
.nav-dd-wrap-light:has(.nav-dd-btn-solution)::before,    /* Existing CIPs trigger */
.nav-zone-output:has(.nav-tab-roadmap)::before,           /* V2 Roadmap */
.nav-zone:has(.nav-tab-spec-big)::before,
.nav-zone:has(.nav-tab-problems-big)::before{
  content:"NEW";position:absolute;top:-12px;left:8px;z-index:5;
  font:700 8.5px/1 'Inter',-apple-system,sans-serif;letter-spacing:.14em;
  background:#fff;color:#0a8a80;padding:3px 6px;border-radius:3px;
  border:1px solid rgba(22,233,216,.55);
  box-shadow:0 1px 2px rgba(22,233,216,.18);pointer-events:none}
[data-theme=dark] .nav-dd-wrap-light:has(.nav-dd-ref-new)::before,
[data-theme=dark] .nav-dd-wrap-light:has(.nav-dd-btn-solution)::before,
[data-theme=dark] .nav-zone-output:has(.nav-tab-roadmap)::before,
[data-theme=dark] .nav-zone:has(.nav-tab-spec-big)::before,
[data-theme=dark] .nav-zone:has(.nav-tab-problems-big)::before{
  background:#1a1a1a;color:#16E9D8;border-color:rgba(22,233,216,.45)}
/* Right-side eyebrows (EVALUATION / IDEATION / PROPOSAL) — same trick
   on the wrap or zone, anchored top-right. */
.nav-dd-wrap-light:has(.nav-dd-btn-solution)::after{content:"EVALUATION";
  position:absolute;top:-12px;right:8px;z-index:5;
  font:700 8.5px/1 'Inter',-apple-system,sans-serif;letter-spacing:.14em;
  background:#fff;color:var(--cardano-blue);padding:3px 6px;border-radius:3px;
  border:1px solid var(--cardano-blue);pointer-events:none}
.nav-zone-output:has(.nav-tab-roadmap)::after{content:"IDEATION";
  position:absolute;top:-12px;right:8px;z-index:5;
  font:700 8.5px/1 'Inter',-apple-system,sans-serif;letter-spacing:.14em;
  background:#fff;color:var(--cardano-blue);padding:3px 6px;border-radius:3px;
  border:1px solid var(--cardano-blue);pointer-events:none}
.nav-zone-output:has(.nav-tab-roadmap){position:relative}
.nav-zone:has(.nav-tab-spec-big)::after{content:"PROPOSAL";
  position:absolute;top:-12px;right:8px;z-index:5;
  font:700 8.5px/1 'Inter',-apple-system,sans-serif;letter-spacing:.14em;
  background:#fff;color:var(--cardano-blue);padding:3px 6px;border-radius:3px;
  border:1px solid var(--cardano-blue);pointer-events:none}
/* Hide the original (button-attached) eyebrow pills — they are
   replaced by the wrap-attached versions above. */
.nav-dd-wrap-light:has(.nav-dd-ref-new) > .nav-dd-btn-light::before,
.nav-tab-spec-big::before,
.nav-dd-btn-solution::before,
.nav-tab-problems-big::before,
.nav-dd-btn-solution::after,
.nav-tab-roadmap::after,
.nav-tab-spec-big::after{display:none !important}
/* Keep the rail too — it threads through the chevron buttons,
   reinforcing the right→left flow as one continuous gesture. */
.nav-pages a{text-decoration:none;transition:color .15s,background .15s}

/* Columns */
.nav-col{display:flex;flex-direction:column;padding:8px 0 10px 20px;min-width:0}
.nav-col+.nav-col{border-left:1px solid var(--border)}
.nav-col-main{flex:1}

/* Column title */
.nav-col-title{font:700 9px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:1.8px;text-transform:uppercase;color:var(--infared);padding:2px 14px 6px 0;flex-shrink:0}
.nav-col-title-link{text-decoration:none;cursor:pointer;transition:color .15s}
.nav-col-title-link:hover{color:var(--dawn)}
.nav-col-title-link.active{color:var(--dawn);border-bottom:none}

/* Column links row */
.nav-col-links{display:flex;align-items:center;gap:0;white-space:nowrap}
.nav-col-links-wrap{flex-wrap:wrap;gap:0}

/* Nav tabs */
.nav-tab{display:flex;align-items:center;gap:5px;padding:4px 10px;font:500 12px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.3px;text-transform:uppercase;color:var(--text-muted);border-radius:4px}
.nav-tab:hover{color:var(--text-primary);background:rgba(0,0,0,.04)}
.nav-tab.active{color:var(--text-primary);font-weight:600;background:rgba(229,35,33,.06)}

/* PDF links */
.nav-pdf{font-size:11px;color:var(--text-muted);opacity:.8}
.nav-pdf:hover{opacity:1}
.nav-pdf-badge{display:inline-block;font:600 8px/1 -apple-system,sans-serif;letter-spacing:.5px;text-transform:uppercase;color:var(--infared);background:rgba(229,35,33,.08);border-radius:3px;padding:2px 4px;margin-left:4px;vertical-align:middle}
.nav-pdf-meta{font:400 10px/1 -apple-system,sans-serif;color:var(--text-muted);opacity:.6;margin-left:4px}

/* Flow separator */
.nav-flow-sep{width:1px;align-self:center;height:16px;background:var(--border);margin:0 6px;flex-shrink:0}

/* Colored dots */
.nav-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}

/* Flow arrows */
.nav-arrow{font-size:11px;color:var(--dawn);opacity:.5;display:flex;align-items:center;padding:0 1px;flex-shrink:0}

/* ── HERO — Cardano-blue bandeau using official cardano.org banner asset ── */
.hero{position:relative;overflow:hidden;padding:44px 40px 64px;background:var(--cardano-blue);border-bottom:1px solid rgba(255,255,255,.12);isolation:isolate}
/* Layer 1 (z=0): cardano.org banner asset — positioned right, sized to contain so the design stays visible */
.hero::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url('cardano/hero-header-fluid-blue.png') right center / auto 100% no-repeat;
  opacity:1}
/* Layer 2 (z=0): narrow left vignette only — cover ~25 % so the right-side banner stays visible */
.hero::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(90deg, var(--cardano-blue) 0%, rgba(0,51,173,.65) 18%, transparent 38%)}
/* Per-page banner variants — set data-banner on the .hero element to swap the asset.
   All variants below are tested visible on the Cardano blue background. */
.hero[data-banner="braid"]::before{background-image:url('cardano/hero-header-braid-blue.svg')}
.hero[data-banner="braid-red"]::before{background-image:url('cardano/hero-header-braid-red-blue.svg')}
.hero[data-banner="dots"]::before{background-image:url('cardano/hero-header-dots.webp')}
.hero[data-banner="overlap"]::before{background-image:url('cardano/hero-header-overlap.png')}
.hero[data-banner="zoom"]::before{background-image:url('cardano/hero-header-zoom.png')}
.hero[data-banner="zoom-full"]::before{background-image:url('cardano/hero-header-zoom-full.png')}
.hero[data-banner="ada"]::before{background-image:url('cardano/hero-header-ada.webp')}
.hero[data-banner="fluid-red"]::before{background-image:url('cardano/hero-header-fluid-red.svg')}
.hero-schema{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.9}
.hero-topbar{position:relative;z-index:2;max-width:1400px;margin:0 auto 32px;display:flex;align-items:center;justify-content:space-between;gap:24px}
/* Build-info badge sits AT THE BOTTOM-RIGHT of the hero, after the
   eyebrow + h1 + sub block. justify-content:flex-end pins the chip to
   the right edge of the 1400px column. */
.hero-bottombar{position:relative;z-index:2;max-width:1400px;margin:28px auto 0;display:flex;align-items:center;justify-content:flex-end;gap:24px}
.hero-full-logo{height:26px;width:auto;display:block;flex-shrink:0;filter:drop-shadow(0 0 12px rgba(229,35,33,.15))}
/* Cardano wordmark — primary brand for the report. White on the dark
   hero, paired with the small IO Group attribution badge on the right. */
.hero-cardano-mark{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;
  filter:drop-shadow(0 0 14px rgba(255,255,255,.15))}
.hero-cardano-symbol{width:30px;height:30px;color:#fff;flex-shrink:0}
.hero-cardano-text{font:600 22px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.18em;text-transform:uppercase;color:#fff}
.hero-division{display:flex;align-items:center;gap:10px;padding:6px 14px 6px 12px;border:1px solid rgba(6,255,137,.35);border-radius:2px;background:rgba(0,0,0,.35);backdrop-filter:blur(2px)}
/* IOG attribution lock-up: small 'by' word + the full butterfly+wordmark
   logo. Sits inside .hero-division so the 'by' anchors it as authorial
   credit rather than as a competing brand mark. */
.hero-by{font:300 10px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.15em;text-transform:lowercase;color:rgba(255,255,255,.55);
  font-style:italic;flex-shrink:0}
.hero-iog-logo{height:18px;width:auto;display:block;flex-shrink:0;
  filter:drop-shadow(0 0 6px rgba(255,255,255,.10))}
.hero-division-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#06FF89;box-shadow:0 0 10px rgba(6,255,137,.8),0 0 3px #06FF89;flex-shrink:0}
.hero-division-label{font-size:10px;font-weight:400;letter-spacing:2.8px;text-transform:uppercase;color:#ffffff}
.hero-inner{position:relative;z-index:2;max-width:1400px;margin:0 auto;padding-top:20px}
.hero-eyebrow{font-size:16px;font-weight:400;letter-spacing:3.6px;text-transform:uppercase;color:rgba(255,255,255,.78);margin-bottom:26px;padding-left:14px;border-left:2px solid var(--infared)}
/* When the eyebrow text is empty (zone-landing pages where the H1 is
   self-introducing), collapse the whole element so the red rule above
   the h1 doesn't render either. */
.hero-eyebrow:empty{display:none}
.hero h1{font-family:var(--font-display);font-size:50px;font-weight:600;line-height:1.08;color:#fff;margin:0 0 18px;max-width:980px;letter-spacing:-.8px}
.hero .sub{font-size:20px;font-weight:300;line-height:1.35;color:rgba(255,255,255,.72);max-width:880px}
.hero-bottom-rule{position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,transparent 0%,var(--infared) 8%,var(--dawn) 50%,var(--infared) 92%,transparent 100%);z-index:3}

/* Footer — IOG corporate lock-up */
/* Site footer — 4-column grid (brand · spec nav · repo · authorship)
   over a Cardano-blue base, separated from the bottom strip by a thin
   white-alpha rule. Stacks on narrow viewports. */
.site-footer{background:var(--cardano-blue);color:rgba(255,255,255,.78);font-family:'Chivo','Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding:42px 40px 22px;border-top:1px solid rgba(255,255,255,.10)}
.site-footer .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:48px;max-width:1400px;margin:0 auto;align-items:start}
.site-footer .footer-col{display:flex;flex-direction:column;gap:14px}
/* Brand column */
.site-footer .footer-cardano-mark{display:inline-flex;align-items:center;gap:10px;color:#fff;text-decoration:none;transition:color .15s}
.site-footer .footer-cardano-mark:hover{color:rgba(255,255,255,.85)}
.site-footer .footer-cardano-symbol{width:24px;height:24px;color:currentColor;flex-shrink:0}
.site-footer .footer-cardano-label{font-size:14px;font-weight:500;letter-spacing:.3px}
.site-footer .footer-tagline{font-size:13px;font-weight:300;line-height:1.5;color:rgba(255,255,255,.62);margin:0;max-width:320px}
.site-footer .footer-network-link{font-size:11px;font-weight:300;letter-spacing:1.6px;text-transform:uppercase;color:rgba(255,255,255,.55);text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:color .15s}
.site-footer .footer-network-link:hover{color:rgba(255,255,255,.95)}
/* Heading + link list shared across nav/repo cols */
.site-footer .footer-heading{font:300 11px/1 'Chivo',-apple-system,sans-serif;letter-spacing:2.4px;text-transform:uppercase;color:rgba(255,255,255,.5);margin:0 0 4px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.12)}
.site-footer .footer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:9px}
.site-footer .footer-links a{color:rgba(255,255,255,.78);font-size:13px;font-weight:300;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:color .15s,border-color .15s;border-bottom:1px solid transparent;padding-bottom:1px}
.site-footer .footer-links a:hover{color:#fff;border-bottom-color:rgba(6,255,137,.5)}
.site-footer .footer-ext{font-size:9px;opacity:.55;display:inline-block;transform:translateY(-1px)}
/* Authorship column */
.site-footer .footer-iog{display:inline-block;text-decoration:none}
.site-footer .footer-iog-mark{height:18px;width:auto;opacity:.85;display:block}
.site-footer .footer-iog-mark:hover{opacity:1}
.site-footer .footer-iog-org{font:300 11px/1.4 'Chivo',-apple-system,sans-serif;letter-spacing:1.8px;text-transform:uppercase;color:rgba(255,255,255,.7);display:inline-flex;align-items:center;gap:7px}
.site-footer .footer-iog-org .cbu-dot{width:6px;height:6px;border-radius:50%;background:#06FF89;box-shadow:0 0 6px rgba(6,255,137,.6);flex-shrink:0}
.site-footer .footer-meta{display:flex;flex-direction:column;gap:5px;margin-top:6px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08)}
.site-footer .footer-meta-row{display:flex;gap:10px;font-size:11px;line-height:1.4;align-items:baseline}
.site-footer .footer-meta-key{color:rgba(255,255,255,.45);font-weight:300;letter-spacing:1.4px;text-transform:uppercase;font-size:10px;flex:0 0 56px}
.site-footer .footer-meta-val{color:rgba(255,255,255,.85);font-weight:300}
.site-footer .footer-meta-val a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.18);transition:border-color .15s,color .15s;display:inline-flex;align-items:center;gap:3px}
.site-footer .footer-meta-val a:hover{color:#fff;border-bottom-color:rgba(6,255,137,.5)}
/* Bottom rule + strip */
.site-footer .footer-rule{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18) 20%,rgba(255,255,255,.18) 80%,transparent);max-width:1400px;margin:38px auto 18px}
.site-footer .footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;max-width:1400px;margin:0 auto;font:300 10px/1.4 'Chivo',-apple-system,sans-serif;letter-spacing:1.4px;text-transform:uppercase;color:rgba(255,255,255,.45)}
.site-footer .footer-copy{flex:1}
.site-footer .footer-tag{flex-shrink:0}
@media (max-width:980px){
  .site-footer{padding:32px 24px 18px}
  .site-footer .footer-grid{grid-template-columns:1fr 1fr;gap:32px}
  .site-footer .footer-col-brand{grid-column:1 / -1}
  .site-footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px}
}
@media (max-width:560px){
  .site-footer .footer-grid{grid-template-columns:1fr;gap:28px}
}

/* ── CBU BRANDING — Cardano Business Unit dot (Engineering / Acid Green) ── */
.cbu-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 8px rgba(255,255,255,.7),0 0 2px rgba(255,255,255,.9);vertical-align:middle;margin-right:6px;flex-shrink:0}

/* Cardano logomark in the brand bar — Cardano is the primary identity */
.cardano-mark{height:32px;width:auto;flex-shrink:0;margin-right:12px;filter:drop-shadow(0 0 6px rgba(125,160,255,.18))}
.nav-brand-title-cardano{font:600 19px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#fff;letter-spacing:.6px;flex-shrink:0}

/* IOG / CBU attribution — secondary, after a vertical divider */
.nav-brand-attribution{display:inline-flex;align-items:center;gap:8px;color:rgba(255,255,255,.55);flex-shrink:0;font:300 10px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:1.4px;text-transform:uppercase}
.nav-brand-attribution-prefix{opacity:.6;font-style:italic;text-transform:none;letter-spacing:.3px;font-size:10px}
.nav-brand-attribution-sep{opacity:.4;color:rgba(255,255,255,.4);font-size:11px}
.nav-brand-attribution .nav-brand-wordmark{height:13px;opacity:.75}
.nav-brand-attribution .nav-brand-org{font-weight:300;font-size:9.5px;letter-spacing:1.8px;color:rgba(255,255,255,.55)}

/* Subtle Ouroboros mark — inline SVG-friendly ring used as a decorative anchor in the footer */
.ouroboros{display:inline-block;width:14px;height:14px;border:1.5px solid #fff;border-radius:50%;border-right-color:transparent;border-bottom-color:rgba(255,255,255,.5);box-shadow:0 0 6px rgba(255,255,255,.35);vertical-align:middle;flex-shrink:0;animation:ouroboros-rotate 12s linear infinite}
@keyframes ouroboros-rotate{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.ouroboros{animation:none}}

/* ── NAV brand upgrade with IOG word marque ── */
.nav-brand-wordmark{height:14px;width:auto;opacity:.85;flex-shrink:0}
.nav-brand-sep-vr{display:inline-block;width:1px;height:14px;background:rgba(255,255,255,.18);margin:0 10px;flex-shrink:0}

/* ── CONTENT ── */
.content{max-width:1400px;margin:0 auto;padding:40px 56px 100px;min-height:80vh;
  border-left:1px solid var(--border-light);border-right:1px solid var(--border-light);
  /* Subtle IOG wash: warm infared glow at top + soft dawn at bottom, no grid */
  background-color:var(--bg);
  background-image:
    radial-gradient(ellipse 1100px 350px at 50% 0%, rgba(229,35,33,.035), transparent 75%),
    radial-gradient(ellipse 900px 400px at 50% 100%, rgba(236,100,29,.025), transparent 75%);
  background-repeat:no-repeat}
[data-theme=dark] .content{background-image:
  radial-gradient(ellipse 1100px 350px at 50% 0%, rgba(229,35,33,.07), transparent 75%),
  radial-gradient(ellipse 900px 400px at 50% 100%, rgba(236,100,29,.05), transparent 75%)}
/* Heading hierarchy — iog.io-inspired, Barlow for display.
   H1: typography only (page title). H2 (§X): infared title + infared rule (full).
   H3 (§X.X): dawn title + dawn rule (half length). H4+: plain small labels. */
.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{font-family:'Chivo','Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
/* Unified heading vocabulary: every level uses the same left-edge
   accent the H1 chapter heading introduced. Size, weight, opacity
   and bar thickness step down with depth — but the structural
   "vertical accent + title" motif is constant, so the hierarchy
   reads as one continuous scale rather than a switch between
   competing styles. No trailing horizontal rules; no chevron. */
.content h1{font-size:34px;font-weight:500;color:var(--cardano-blue);margin:0 0 28px;padding:0 0 0 18px;border:none;background:none;letter-spacing:-.8px;line-height:1.15;position:relative;border-left:3px solid var(--cardano-blue)}
[data-theme=dark] .content h1{color:#6E97FF;border-left-color:#6E97FF}
.content h1:first-child{margin-top:0}
.content h2{font-size:24px;font-weight:500;color:var(--cardano-blue);margin:56px 0 22px;padding:0 0 0 16px;border:none;background:none;letter-spacing:-.4px;line-height:1.2;position:relative;border-left:3px solid var(--cardano-blue);opacity:.92}
[data-theme=dark] .content h2{color:#6E97FF;border-left-color:#6E97FF}
.content h3{font-size:19px;font-weight:500;color:var(--cardano-blue);margin:40px 0 14px;padding:0 0 0 14px;border:none;background:none;letter-spacing:-.2px;line-height:1.25;position:relative;border-left:2px solid var(--cardano-blue);opacity:.78}
[data-theme=dark] .content h3{color:#6E97FF;border-left-color:#6E97FF}
.content h4{font-size:16px;font-weight:600;color:var(--cardano-blue);margin:32px 0 12px;padding:0 0 0 12px;border:none;background:none;letter-spacing:-.1px;line-height:1.3;position:relative;border-left:2px solid var(--cardano-blue);opacity:.65}
[data-theme=dark] .content h4{color:#6E97FF;border-left-color:#6E97FF}
.content h5{font-size:12.5px;font-weight:700;color:var(--cardano-blue);margin:24px 0 10px;padding:0 0 0 10px;border:none;background:none;text-transform:uppercase;letter-spacing:1.2px;line-height:1.3;position:relative;border-left:2px solid var(--cardano-blue);opacity:.55}
[data-theme=dark] .content h5{color:#6E97FF;border-left-color:#6E97FF}
.content h6{font-size:13px;font-weight:600;color:var(--cardano-blue);margin:20px 0 10px;padding:0 0 0 10px;border:none;background:none;font-style:italic;line-height:1.35;position:relative;border-left:1px solid var(--cardano-blue);opacity:.5}
[data-theme=dark] .content h6{color:#6E97FF;border-left-color:#6E97FF}
.content p{margin:0 0 14px;font-size:15px;color:var(--text-body)}
.content p strong{color:var(--text-primary);font-weight:600}
.content a{color:var(--cardano-blue);text-decoration:none;border-bottom:1px solid var(--cardano-link-line)}
.content a:hover{border-bottom-color:var(--cardano-blue);color:#001a6b}
[data-theme=dark] .content a{color:#6E97FF;border-bottom-color:rgba(110,151,255,.30)}
[data-theme=dark] .content a:hover{color:#A8C0F7;border-bottom-color:#6E97FF}

/* Lists */
.content ul,.content ol{margin:0 0 14px 20px;font-size:15px;color:var(--text-body)}
.content li{margin-bottom:6px}
.content li strong{color:var(--text-primary);font-weight:600}

/* Tables — base style for all .content tables. Numbers always use
   tabular-nums so column-by-column scanning works; right-aligned
   numeric cells already get that direction from the MD ``:---:`` row. */
.content table{width:100%;border-collapse:collapse;margin:20px 0;
  font-size:12.5px;table-layout:auto;
  font-variant-numeric:tabular-nums}
.content thead{position:sticky;top:0}
.content th{
  background:var(--bg-panel);color:var(--text-primary);
  font:600 10.5px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-transform:uppercase;letter-spacing:.06em;
  text-align:left;padding:9px 10px 7px;
  border:1px solid var(--border);border-bottom:2px solid var(--border);
  vertical-align:bottom}
.content th[style*="text-align: right"]{text-align:right}
.content td{padding:6px 10px;border:1px solid var(--border);
  color:var(--text-body);vertical-align:top;
  font-variant-numeric:tabular-nums}
.content th,.content td{word-break:normal;overflow-wrap:break-word}
.content tr:hover td{background:var(--bg-warm)}

/* Grouped data tables — Operator type / Pool tier / Entity archetype
   tables. The styling is intentionally subtle: bold from the MD
   already differentiates group rows, so we only add a thin top rule
   to anchor each block + a small left indent on ↳ children. No panel
   fills, no colour changes, no uppercase totals — readability stays
   identical to a plain markdown table. */
.content tbody.data-table-grouped tr.row-group td{
  border-top:1px solid var(--border-strong, var(--text-muted))}
.content tbody.data-table-grouped tr.row-group:first-child td{
  border-top:1px solid var(--border)}

/* Sub-rows: small left indent on the first cell so the ``↳`` arrow
   reads as a real nesting cue. Text colour and size unchanged — the
   eye should be able to scan numbers across a sub-row exactly the
   same way as across its parent. */
.content tbody.data-table-grouped tr.row-sub td:first-child{
  padding-left:22px}

/* Total row: a slightly heavier top border so the take-away is
   visible without colouring or recasing the row. */
.content tbody.data-table-grouped tr.row-total td{
  border-top:2px solid var(--text-muted)}
[data-theme=dark] .content tbody.data-table-grouped tr.row-total td{
  border-top-color:var(--text-muted)}

/* ── Evidence base cards (V2 spec) — §3.x.x.x and §4.x.x.x ── */
/* Evidence cards (Evidence base under each problem statement). The
   left-column LABEL acts as the brand stamp; using the Cardano-blue
   family pulls it into the same tonal world as the page H2/H3 above
   it. The card chrome stays neutral so the text reads. A 3px Cardano-
   blue inset on hover ties the interaction to the same anchor-bar
   motif used by H1 and the active TOC item. */
.ev-list{display:flex;flex-direction:column;gap:8px;margin:18px 0 28px}
.ev-card{display:grid;grid-template-columns:160px 1fr;gap:18px;padding:14px 18px;border:1px solid var(--border);border-radius:8px;background:var(--bg);transition:border-color .15s,box-shadow .15s}
.ev-card:hover{border-color:var(--cardano-blue-2);box-shadow:inset 3px 0 0 var(--cardano-blue),0 1px 3px var(--cardano-blue-soft)}
[data-theme=dark] .ev-card{border-color:#2a2a2a}
[data-theme=dark] .ev-card:hover{border-color:#6E97FF;box-shadow:inset 3px 0 0 #6E97FF,0 1px 3px rgba(0,0,0,.2)}
.ev-label{font:600 11px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:1.4px;color:var(--cardano-blue);align-self:start;padding-top:3px}
[data-theme=dark] .ev-label{color:#8FB1FF}
.ev-content{min-width:0}
.ev-body{font:400 13.5px/1.55 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-body);margin:0}
.ev-body strong{color:var(--text-primary);font-weight:700}
.ev-sources{margin:8px 0 0;font:italic 400 11.5px/1.4 'Inter',-apple-system,sans-serif;color:var(--text-muted)}
.ev-sources a{color:var(--text-muted);text-decoration:underline;text-decoration-color:var(--cardano-link-line);text-underline-offset:2px;transition:color .15s,text-decoration-color .15s}
.ev-sources a:hover{color:var(--cardano-blue);text-decoration-color:var(--cardano-blue)}
[data-theme=dark] .ev-sources a:hover{color:#8FB1FF;text-decoration-color:#8FB1FF}
@media (max-width:640px){.ev-card{grid-template-columns:160px 1fr;gap:6px}.ev-label{padding-top:0}}

/* Blockquotes */
.content blockquote{border-left:3px solid var(--accent);padding:12px 18px;margin:16px 0;background:var(--bg-panel);border-radius:0 6px 6px 0}
.content blockquote p{margin:0;font-size:14px;color:var(--text-body)}
.content blockquote strong{color:var(--text-primary)}

/* Finding callout — a blockquote whose first paragraph opens with a
   .finding-ref anchor (rendered from \`**Finding CEN.O1.F1 — …**\`).
   Lifted into a mini Pro-card layout so prose-embedded references
   echo the §1 Mainnet Observations rows visually. */
.content blockquote:has(> p.finding-callout-meta),
.content blockquote.finding-callout-group,
.content blockquote:has(> p:first-child > strong > a.finding-ref){
  border:1px solid rgba(229,35,33,.18);
  border-left:4px solid var(--infared);
  background:linear-gradient(90deg,
    rgba(229,35,33,.055) 0%,
    rgba(229,35,33,.018) 60%,
    transparent 100%);
  padding:14px 22px 18px;margin:24px 0;
  border-radius:0 10px 10px 0;
  box-shadow:0 1px 2px rgba(0,0,0,.04)}
.content blockquote:has(> p.finding-callout-meta) > p,
.content blockquote.finding-callout-group .finding-callout-segment > p,
.content blockquote:has(> p:first-child > strong > a.finding-ref) > p{
  font:400 15px/1.65 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#1a1a1a;letter-spacing:-.005em}
.content blockquote:has(> p.finding-callout-meta) > p strong,
.content blockquote.finding-callout-group .finding-callout-segment > p strong,
.content blockquote:has(> p:first-child > strong > a.finding-ref) > p strong{
  font-weight:600;color:#000}

/* Grouped callouts — single breadcrumb at top, internal divider between
   each finding. Each finding sits in its own segment so deep-links to
   ``#finding-…`` still land precisely on the right Finding. */
.content blockquote.finding-callout-group .finding-callout-segment{
  padding:2px 0}
.content blockquote.finding-callout-group .finding-callout-segment > p{
  margin:6px 0}
.content blockquote.finding-callout-group .finding-callout-segment > p:first-child{
  margin-top:0}
.content blockquote.finding-callout-group .finding-callout-segment > p:last-child{
  margin-bottom:0}
.content blockquote.finding-callout-group hr.finding-callout-divider{
  border:0;height:1px;
  margin:14px -22px;
  background:linear-gradient(90deg,
    transparent 0%,rgba(229,35,33,.16) 12%,
    rgba(229,35,33,.16) 88%,transparent 100%)}
[data-theme=dark] .content blockquote.finding-callout-group hr.finding-callout-divider{
  background:linear-gradient(90deg,
    transparent 0%,rgba(255,111,110,.22) 12%,
    rgba(255,111,110,.22) 88%,transparent 100%)}
/* Anchor target indicator — when a deep link lands on a specific
   finding inside a grouped callout, briefly outline its segment so
   readers know which one. */
.content blockquote.finding-callout-group .finding-callout-segment:target{
  background:rgba(229,35,33,.05);
  border-radius:4px;
  margin:0 -8px;padding:2px 8px}
[data-theme=dark]
  .content blockquote.finding-callout-group .finding-callout-segment:target{
  background:rgba(255,111,110,.08)}

/* Visually separate consecutive Finding callouts (e.g. POL.O6.F1
   followed by POL.O6.F2) so they don't read as one block. */
.content blockquote:has(> p.finding-callout-meta) +
  blockquote:has(> p.finding-callout-meta),
.content blockquote:has(> p:first-child > strong > a.finding-ref) +
  blockquote:has(> p:first-child > strong > a.finding-ref),
.content blockquote:has(> p.finding-callout-meta) +
  blockquote:has(> p:first-child > strong > a.finding-ref),
.content blockquote:has(> p:first-child > strong > a.finding-ref) +
  blockquote:has(> p.finding-callout-meta){
  margin-top:36px;
  position:relative}
.content blockquote:has(> p.finding-callout-meta) +
  blockquote:has(> p.finding-callout-meta)::before,
.content blockquote:has(> p:first-child > strong > a.finding-ref) +
  blockquote:has(> p:first-child > strong > a.finding-ref)::before,
.content blockquote:has(> p.finding-callout-meta) +
  blockquote:has(> p:first-child > strong > a.finding-ref)::before,
.content blockquote:has(> p:first-child > strong > a.finding-ref) +
  blockquote:has(> p.finding-callout-meta)::before{
  content:"";position:absolute;left:24px;right:24px;top:-19px;
  height:1px;background:linear-gradient(90deg,
    transparent 0%,rgba(229,35,33,.22) 20%,
    rgba(229,35,33,.22) 80%,transparent 100%);
  pointer-events:none}

/* Breadcrumb back to the parent observation, prepended above the
   callout body. Reads as: FROM  Observation #N  OPE.O1  — title */
.content blockquote > p.finding-callout-meta{
  display:flex;align-items:center;flex-wrap:wrap;
  gap:6px;
  font:500 11px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",'Inter',sans-serif !important;
  color:var(--text-muted) !important;
  margin:-2px 0 12px !important;
  padding-bottom:9px;
  border-bottom:1px dashed rgba(0,51,173,.18);
  letter-spacing:0}
[data-theme=dark] .content blockquote > p.finding-callout-meta{
  border-bottom-color:rgba(96,135,233,.22)}
.finding-callout-meta-prefix{
  font-weight:600;color:var(--text-muted);text-transform:uppercase;
  letter-spacing:.10em;font-size:10px}
.finding-callout-meta-obs-num{
  font:700 10px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:var(--text-muted)}
/* OPE.O1 chip — same Cardano-blue shape as the Pro card .sro-badge,
   shrunk to inline-meta size so it sits next to "Observation #N"
   without dominating. */
.finding-callout-meta-link{
  display:inline-flex;align-items:center;
  padding:3px 8px;border-radius:4px;
  background:var(--cardano-blue);color:#fff !important;
  font:600 10.5px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.06em;text-decoration:none;
  border:0;border-bottom:0;
  box-shadow:0 1px 2px rgba(0,51,173,.20);
  transition:background .15s,box-shadow .15s,transform .12s}
.finding-callout-meta-link:hover{
  background:var(--cardano-blue-2,#1F5BC6);
  box-shadow:0 1px 4px rgba(0,51,173,.32);
  transform:translateY(-1px)}
[data-theme=dark] .finding-callout-meta-link{
  background:var(--cardano-blue-2,#1F5BC6);
  box-shadow:0 1px 2px rgba(31,91,198,.28)}
.finding-callout-meta-title{
  font-style:italic;font-weight:400;color:var(--text-body);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:12px;letter-spacing:0}

/* "FINDING #N" sits inside a single rounded chip so it reads as one
   compound tag — small-caps label on the left, accent ``#N`` ref on
   the right, separated by a faint vertical rule. The whole frame
   stays inline so it flows with the prose. */
.finding-callout-tag{
  display:inline-flex;align-items:center;gap:6px;
  padding:3px 8px;
  border:1px solid rgba(60,60,67,.18);
  border-radius:4px;
  background:rgba(60,60,67,.03);
  vertical-align:0;
  white-space:nowrap;
  margin-right:2px;
  line-height:1}
[data-theme=dark] .finding-callout-tag{
  border-color:rgba(220,220,225,.22);
  background:rgba(220,220,225,.04)}

/* The "Finding" label inside the chip — small caps, dark grey,
   sentence weight. Line-height set to 1 so the small-cap glyphs
   sit on the chip's vertical centerline without inherited body
   line-height pushing them down. */
.finding-callout-tag > .finding-callout-label{
  font:600 10.5px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-transform:uppercase;
  letter-spacing:.10em;
  color:#3a3a3f;
  margin:0;
  display:inline-flex;align-items:center;
  vertical-align:0}
[data-theme=dark] .finding-callout-tag > .finding-callout-label{color:#B8B8BD}

/* Faint divider between the label and the #N ref inside the chip. */
.finding-callout-tag > .finding-callout-label::after{
  content:"";display:inline-block;
  width:1px;height:10px;
  background:rgba(60,60,67,.22);
  margin-left:7px}
[data-theme=dark] .finding-callout-tag > .finding-callout-label::after{
  background:rgba(220,220,225,.25)}

/* Stand-alone "Finding" label fallback (callouts that didn't match
   the chip wrapper for any reason). */
.finding-callout-label{
  font:600 11px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-transform:uppercase;
  letter-spacing:.10em;
  color:#3a3a3f;
  margin-right:2px;
  vertical-align:1px}
[data-theme=dark] .finding-callout-label{color:#B8B8BD}

/* Replaces the em-dash that separates "Finding #N" from the title.
   A larger right-arrow glyph anchored slightly above baseline so the
   stem reads as a hand-off between the ref and the title. */
.finding-callout-arrow{
  display:inline-block;
  font:600 18px/1 'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  color:rgba(60,60,67,.7);
  margin:0 4px;
  vertical-align:-2px;
  transform:translateY(-1px)}
[data-theme=dark] .finding-callout-arrow{color:rgba(220,220,225,.65)}

/* The opening canonical ref renders as a quiet inline ``#N`` — same
   accent colour as the breadcrumb chip but no border, no background,
   no extra weight. Sits alongside the dark-grey ``FINDING`` label
   inside the chip frame. */
.finding-callout-tag > a.finding-ref{
  display:inline-flex;align-items:center;
  padding:0;
  background:transparent;border:0;border-bottom:0;
  color:var(--infared);
  font:500 12px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.01em;
  text-decoration:none;
  margin:0;
  transition:color .15s,text-decoration-color .15s}
.content blockquote:has(> p:first-child > strong > a.finding-ref)
  > p:first-child > strong > a.finding-ref,
.content blockquote:has(> p.finding-callout-meta)
  > p > strong > a.finding-ref,
.content blockquote.finding-callout-group
  .finding-callout-segment > p:first-child > strong > a.finding-ref{
  display:inline;padding:0 1px;
  background:transparent;border:0;border-bottom:0;
  color:var(--infared);
  font:500 12px/1.4 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.01em;
  text-decoration:none;
  margin:0;
  transition:color .15s,text-decoration-color .15s}
.finding-callout-tag > a.finding-ref:hover,
.content blockquote:has(> p:first-child > strong > a.finding-ref)
  > p:first-child > strong > a.finding-ref:hover,
.content blockquote:has(> p.finding-callout-meta)
  > p > strong > a.finding-ref:hover,
.content blockquote.finding-callout-group
  .finding-callout-segment > p:first-child > strong > a.finding-ref:hover{
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:rgba(229,35,33,.5);
  text-decoration-thickness:1px}
[data-theme=dark] .content blockquote:has(> p.finding-callout-meta),
[data-theme=dark] .content blockquote.finding-callout-group,
[data-theme=dark] .content blockquote:has(> p:first-child > strong > a.finding-ref){
  border-color:rgba(255,111,110,.22);
  border-left-color:#FF6F6E;
  background:linear-gradient(90deg,
    rgba(255,111,110,.08) 0%,rgba(255,111,110,.03) 60%,transparent 100%);
  box-shadow:0 1px 2px rgba(0,0,0,.25)}
[data-theme=dark] .content blockquote:has(> p.finding-callout-meta) > p,
[data-theme=dark] .content blockquote.finding-callout-group .finding-callout-segment > p,
[data-theme=dark] .content blockquote:has(> p:first-child > strong > a.finding-ref) > p{color:#E4E4E7}
[data-theme=dark] .content blockquote:has(> p:first-child > strong > a.finding-ref)
  > p:first-child > strong > a.finding-ref,
[data-theme=dark] .content blockquote:has(> p.finding-callout-meta)
  > p > strong > a.finding-ref,
[data-theme=dark] .content blockquote.finding-callout-group
  .finding-callout-segment > p:first-child > strong > a.finding-ref{
  background:transparent;border:0;color:#FF8786}
[data-theme=dark] .content blockquote:has(> p:first-child > strong > a.finding-ref)
  > p:first-child > strong > a.finding-ref:hover,
[data-theme=dark] .content blockquote:has(> p.finding-callout-meta)
  > p > strong > a.finding-ref:hover,
[data-theme=dark] .content blockquote.finding-callout-group
  .finding-callout-segment > p:first-child > strong > a.finding-ref:hover{
  text-decoration-color:rgba(255,135,134,.6)}
[data-theme=dark] .content blockquote > p.finding-callout-meta{
  color:#FF9D9C !important;
  border-bottom-color:rgba(255,111,110,.22)}
[data-theme=dark] .finding-callout-meta-prefix{color:#C77E7C}
[data-theme=dark] .finding-callout-meta-link{
  color:#FF6F6E;border-bottom-color:rgba(255,111,110,.4)}
[data-theme=dark] .finding-callout-meta-link:hover{
  background:rgba(255,111,110,.12);border-bottom-color:#FF6F6E}
[data-theme=dark] .finding-callout-meta-title{color:#B8B8BD}

/* Code */
.content code{font-family:'SF Mono','Fira Code',monospace;font-size:13px;background:var(--bg-code);padding:2px 6px;border-radius:4px;color:#b33a1a}
.content pre{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:16px 20px;overflow-x:auto;margin:16px 0}
.content pre code{background:none;padding:0;font-size:13px;color:var(--text-body)}

/* Images / figures */
.content img{max-width:100%;height:auto;border-radius:6px;margin:16px 0;display:block;border:1px solid var(--border-light)}

/* Figure block — image + optional caption pulled out of paragraph
   flow into a ``<figure>`` by wrap_md_figures(). The Cardano-blue
   left rail + warm panel background sets the chart visually apart
   from the surrounding prose; the caption sits just under the
   image as a muted italic line, smaller than body copy but readable. */
.content figure.md-figure{
  margin:28px 0;
  padding:18px 20px 14px;
  background:var(--bg-warm);
  border:1px solid var(--border);
  border-left:3px solid var(--cardano-blue);
  border-radius:8px;
  display:flex;flex-direction:column;gap:12px}
.content figure.md-figure img{
  margin:0;
  border-radius:4px;
  border:1px solid var(--border-light);
  background:var(--bg);
  align-self:center;
  max-width:100%}
.content figure.md-figure figcaption{
  font:italic 400 12.5px/1.55 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);
  padding:0 4px;
  letter-spacing:0;
  display:flex;align-items:flex-start;flex-wrap:wrap;gap:0 10px}
/* The leading ``Figure 4.1`` token is lifted into its own label so
   the caption reads as ``[FIGURE 4.1]  pool taxonomy at epoch 618…``.
   Cardano-blue uppercase mono — picks up the figure block's left rail
   colour and matches the eyebrow vocabulary used elsewhere on the
   page so figures register as a structural unit, not floating prose. */
.figcaption-label{
  display:inline-flex;flex-direction:column;align-items:center;
  flex-shrink:0;
  color:#fff;
  background:var(--cardano-blue);
  padding:4px 10px 5px;
  border-radius:3px;
  font-style:normal;
  position:relative;top:1px;
  line-height:1}
/* Tiny upright eyebrow inside the chip — the literal word ``Figure``
   sits above the canonical id so the label reads as a stamp:
       FIGURE
       TRE.4.4
   even though the MD source stores just ``TRE.4.4 — caption``. */
.figcaption-label-kind{
  font:600 8px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  opacity:.78;
  margin-bottom:2px}
.figcaption-label-id{
  font:700 11px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.04em}
.figcaption-body{
  flex:1 1 220px;min-width:0;
  font-style:italic}
[data-theme=dark] .figcaption-label{
  background:#6E97FF;color:#0a0a0a}
.content figure.md-figure figcaption strong,
.content figure.md-figure figcaption em strong{
  font-style:normal;font-weight:600;color:var(--text-body)}
.content figure.md-figure figcaption a{
  color:var(--cardano-blue);
  text-decoration:none;
  border-bottom:1px dotted rgba(0,51,173,.4)}
.content figure.md-figure figcaption a:hover{
  border-bottom-style:solid}
[data-theme=dark] .content figure.md-figure{
  background:var(--bg-panel);
  border-color:#2a2a2a;
  border-left-color:#6E97FF}
[data-theme=dark] .content figure.md-figure figcaption a{
  color:#8FB1FF;border-bottom-color:rgba(143,177,255,.4)}

/* HR */
.content hr{border:none;border-top:1px solid var(--border);margin:32px 0}

/* Emphasis / italic */
.content em{color:var(--text-secondary);font-style:italic}

/* MathJax */
mjx-container{color:var(--text-primary)!important}
mjx-container[display=true]{display:block!important;max-width:100%;margin:20px auto!important;text-align:center}

/* TOC inside content */
.content .toc{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:20px 24px;margin:20px 0}
.content .toc ul{list-style:none;margin:0;padding:0}
.content .toc li{margin:4px 0}
.content .toc a{border-bottom:none;font-size:14px}

/* TOC nav — visual hierarchy per depth level */
.toc-nav{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;padding:20px 28px;margin:20px 0}
.toc-nav ul,.toc-nav ol{list-style:none;padding-left:0;margin:0;counter-reset:toc-item}
/* Level 1: big, bold — section titles */
.toc-nav > ul > li,.toc-nav > ol > li{margin-bottom:8px;counter-increment:toc-item}
.toc-nav > ol > li::marker{color:var(--cardano-blue-2);font-weight:600}
/* Mirror the page heading colour ladder so the reader gets a visual
   echo between TOC depth and the section colour they'll land on. */
.toc-nav > ul > li > a,.toc-nav > ul > li > .toc-num,
.toc-nav > ol > li > a,.toc-nav > ol > li > .toc-num{font-weight:600;font-size:16px;color:var(--cardano-blue-2)}
/* Level 2: bold, slightly smaller */
.toc-nav ul ul,.toc-nav ol ul,.toc-nav ul ol,.toc-nav ol ol{padding-left:20px;margin-top:4px;border-left:2px solid var(--border)}
.toc-nav ul ul > li,.toc-nav ol ul > li,.toc-nav ul ol > li,.toc-nav ol ol > li{margin-bottom:4px}
/* depth 2 → matches H3 colour (#6394E2) */
.toc-nav ul ul > li > a,.toc-nav ul ul > li > .toc-num,
.toc-nav ol ul > li > a,.toc-nav ol ul > li > .toc-num,
.toc-nav ul ol > li > a,.toc-nav ul ol > li > .toc-num,
.toc-nav ol ol > li > a,.toc-nav ol ol > li > .toc-num{font-weight:600;font-size:14.5px;color:#6394E2}
/* Level 3: medium weight, smaller still */
.toc-nav ul ul ul,.toc-nav ol ul ul,.toc-nav ul ol ul,.toc-nav ol ol ul,
.toc-nav ul ul ol,.toc-nav ol ul ol,.toc-nav ul ol ol,.toc-nav ol ol ol{padding-left:18px;border-left-color:var(--border-light)}
.toc-nav ul ul ul > li,.toc-nav ol ol ol > li,
.toc-nav ol ul ul > li,.toc-nav ul ol ul > li,.toc-nav ul ul ol > li{margin-bottom:3px}
/* depth 3+ → matches H4/H5 colour (#88AEEC) */
.toc-nav ul ul ul > li > a,.toc-nav ol ol ol > li > a,
.toc-nav ol ul ul > li > a,.toc-nav ul ol ul > li > a,.toc-nav ul ul ol > li > a{font-weight:500;font-size:13.5px;color:#88AEEC}
/* depth 4 (rare — e.g. 3.1.1.1) → paler still */
.toc-nav ul ul ul ul > li > a,.toc-nav ol ol ol ol > li > a,
.toc-nav ul ul ul ol > li > a,.toc-nav ul ul ol ul > li > a,
.toc-nav ul ol ul ul > li > a,.toc-nav ol ul ul ul > li > a{color:#A4C0F0}
.toc-nav a{border-bottom:none;color:inherit;text-decoration:none}
.toc-nav a:hover{color:var(--cardano-blue);text-decoration:underline;text-decoration-color:var(--cardano-link-line);text-underline-offset:3px}
.toc-nav .toc-num{display:inline-block;min-width:2.2em;font-variant-numeric:tabular-nums}
/* Ordered-list numbering on the outer <ol> */
.toc-nav > ol{list-style:decimal outside;padding-left:2em}
.toc-nav > ol > li{padding-left:6px}

/* ── Observation cards ── */
.obs-cards{display:flex;flex-direction:column;gap:12px;margin:20px 0}
.obs-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg)}
.obs-card-header{display:flex;align-items:center;gap:10px;padding:14px 18px;cursor:pointer;user-select:none;background:var(--bg-panel);transition:background .15s}
.obs-card-header:hover{background:var(--bg-code)}
.obs-card-num{font-weight:700;font-size:13px;color:var(--infared);min-width:28px}
.obs-card-title{flex:1;font-weight:600;font-size:14.5px;color:var(--text-primary);line-height:1.4}
.obs-card-arrow{font-size:14px;color:var(--text-muted);transition:transform .2s}
.obs-card.collapsed .obs-card-arrow{transform:rotate(-90deg)}
.obs-card-count{font-size:11px;color:var(--text-muted);background:var(--bg-warm);border:1px solid var(--border-light);border-radius:10px;padding:1px 8px;white-space:nowrap}
.obs-card-body{padding:0 18px 14px;display:flex;flex-direction:column;gap:8px;padding-top:10px}
.obs-card.collapsed .obs-card-body{display:none}
.obs-finding{display:flex;align-items:baseline;gap:10px;padding:8px 12px;border-radius:6px;background:var(--bg-warm);font-size:13.5px;line-height:1.55}
.obs-finding:hover{background:var(--bg-panel)}
.obs-fid{font-weight:600;font-size:12px;color:var(--text-muted);min-width:36px;flex-shrink:0;font-variant-numeric:tabular-nums}
.obs-ftext{flex:1;color:var(--text-body)}
.obs-ftext strong{color:var(--text-primary)}
.obs-tag{font-size:10.5px;letter-spacing:.3px;text-transform:uppercase;border:1px solid;border-radius:4px;padding:1px 7px;white-space:nowrap;flex-shrink:0;font-weight:500}
.obs-link[data-section]{cursor:pointer}
.obs-link[data-section]:hover{background:var(--bg-panel);box-shadow:inset 3px 0 0 var(--infared)}
.obs-link[data-section] .obs-fid{color:var(--infared)}

/* ── Reading progress bar ── */
.progress-bar{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--infared),var(--dawn));z-index:200;transition:width .1s linear;width:0}

/* ── Collapsible sections ──
   Unified vocabulary: every heading level uses the same vertical-bar
   accent the H1 introduced, and every level folds without a chevron.
   Click affordance: cursor + subtle blue wash from the left.
   Collapsed-state cues: bar becomes dashed; title fades. */
.section-toggle{cursor:pointer;user-select:none}
.section-toggle::before{display:none!important;content:none!important}
.section-toggle:hover{background:linear-gradient(90deg,
  color-mix(in srgb, var(--cardano-blue) 6%, transparent) 0%,
  transparent 55%);border-radius:0 4px 4px 0}
[data-theme=dark] .section-toggle:hover{background:linear-gradient(90deg,
  rgba(110,151,255,.10) 0%,transparent 55%)}
.section-toggle.collapsed{border-left-style:dashed!important}
h1.section-toggle.collapsed,
h2.section-toggle.collapsed,
h3.section-toggle.collapsed,
h4.section-toggle.collapsed,
h5.section-toggle.collapsed,
h6.section-toggle.collapsed{
  /* Multiplier on the inherent per-level opacity so the collapsed
     state still reads as "faded from baseline" regardless of depth. */
  filter:opacity(.7)}
h1.section-toggle.collapsed:hover,
h2.section-toggle.collapsed:hover,
h3.section-toggle.collapsed:hover,
h4.section-toggle.collapsed:hover,
h5.section-toggle.collapsed:hover,
h6.section-toggle.collapsed:hover{filter:opacity(1)}
.section-body{transition:max-height .35s ease, opacity .25s ease;opacity:1}
.section-body.collapsed{max-height:0!important;opacity:0;margin:0;padding:0;overflow:hidden}

/* ── Collapsible TOC sub-lists ── */
.toc-nav li{padding-left:18px;position:relative}
.toc-nav .toc-toggle{cursor:pointer}
.toc-nav .toc-toggle::before{content:'▾';position:absolute;left:0;top:1px;width:16px;font-size:13px;color:var(--text-secondary);transition:transform .2s;text-align:center}
.toc-nav > ul > li.has-children > .toc-toggle::before{font-size:15px}
.toc-nav .toc-toggle.collapsed::before{transform:rotate(-90deg)}
.toc-nav ul.toc-collapsed{display:none}

/* ── Image lightbox ── */
.lightbox-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:500;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;cursor:zoom-out}
.lightbox-overlay.active{opacity:1;pointer-events:auto}
.lightbox-overlay img{max-width:92vw;max-height:90vh;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.5);object-fit:contain}
.content img{cursor:zoom-in;transition:transform .2s, box-shadow .2s}
.content img:hover{box-shadow:0 4px 16px rgba(0,0,0,.1)}

/* ── Table wrapper ── */
.table-wrap{position:relative;overflow:hidden;margin:20px 0;border:1px solid var(--border);border-radius:8px}
.table-wrap table{margin:0;border:none;display:table;width:100%}
.table-wrap th:first-child,.table-wrap td:first-child{border-left:none}
.table-wrap th:last-child,.table-wrap td:last-child{border-right:none}
.table-wrap tr:first-child th{border-top:none}
.table-wrap tr:last-child td{border-bottom:none}

/* ── Observatory / synthesis cards ── */
.synth-stage{margin-bottom:40px}
.synth-stage-title{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 8px;padding:10px 0 10px 28px;border-left:4px solid;position:relative}
.synth-stage-title a.synth-stage-link{color:inherit;text-decoration:none;border-bottom:none}
.synth-stage-title a.synth-stage-link:hover{color:var(--infared)}
.synth-stage-desc{font-size:14px;color:var(--text-secondary);line-height:1.7;max-width:860px;margin-bottom:16px}
.synth-stats{display:flex;gap:20px;padding:14px 20px;background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;margin-bottom:20px;overflow-x:auto;flex-wrap:wrap}
.synth-stat{min-width:80px}
.synth-stat-val{font-size:18px;font-weight:600;color:var(--text-primary)}
.synth-stat-lbl{font-size:9.5px;font-weight:400;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted);margin-top:1px}
.synth-cards{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.synth-group-label{font-size:10.5px;font-weight:400;letter-spacing:1.8px;text-transform:uppercase;color:var(--text-muted);margin:16px 0 6px;padding-left:2px;display:flex;align-items:center;gap:8px}
.synth-group-label:first-child{margin-top:0}
.synth-group-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.synth-card{border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg)}
.synth-card:hover{border-color:#ccc}
.synth-card.open{border-color:var(--border)}
.synth-card-head{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;user-select:none;transition:background .1s}
.synth-card-head:hover{background:var(--bg-panel)}
.synth-card-num{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:12px;font-weight:700}
.synth-card-title{flex:1;font-weight:500;font-size:14px;color:var(--text-primary);line-height:1.4}
.synth-card-count{font-size:11px;color:var(--text-muted);background:var(--bg-panel);border:1px solid var(--border-light);border-radius:10px;padding:1px 7px;white-space:nowrap;flex-shrink:0}
.synth-card-chev{font-size:14px;color:var(--text-muted);transition:transform .2s;flex-shrink:0}
.synth-card.open .synth-card-chev{transform:rotate(180deg)}
.synth-card-body{display:none;padding:0 16px 12px;flex-direction:column;gap:6px;padding-top:6px}
.synth-card.open .synth-card-body{display:flex}
.synth-f{display:flex;align-items:baseline;gap:8px;padding:6px 10px;border-radius:5px;background:var(--bg-warm);font-size:13px;line-height:1.6}
.synth-f:hover{background:var(--bg-panel)}
.synth-fid{font-weight:600;font-size:11.5px;color:var(--text-muted);min-width:34px;flex-shrink:0;font-variant-numeric:tabular-nums}
.synth-ft{flex:1;color:var(--text-body)}
.synth-ft strong{color:var(--text-primary);font-weight:600}
.synth-fref{font-size:10px;font-weight:500;letter-spacing:.3px;white-space:nowrap;padding:2px 6px;border-radius:3px;background:var(--bg-panel);color:var(--text-muted);flex-shrink:0}
.synth-scope{background:var(--bg-panel);border-left:3px solid var(--dawn);padding:12px 16px;border-radius:0 6px 6px 0;font-size:12.5px;color:var(--text-secondary);line-height:1.7}
.synth-scope strong{color:var(--text-primary);font-weight:500}

/* ── Back to top ── */
.back-top{position:fixed;bottom:24px;right:24px;width:40px;height:40px;border-radius:50%;background:var(--bg);border:1px solid var(--border);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .3s;font-size:18px;text-decoration:none;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.back-top.visible{opacity:1}
.back-top:hover{color:var(--infared);border-color:var(--infared)}

/* (legacy minimal footer rule removed — see the 4-column grid above
   under "Site footer".) */

@media(max-width:720px){
  .hero{padding:32px 20px 28px} .content{padding:24px 20px 60px;border:none}
  .content table{font-size:11px} .content th,.content td{padding:6px 7px}
}

/* ── OUTPUT ← INPUT nav (mirrors §1 Foundations diagram) ── */
/* Flow (reading L→R): [V2 SPECIFICATION] ← Documents (Design / Diagnostic / Research) */
.nav-pages{background:linear-gradient(90deg,var(--cardano-blue) 0%,var(--cardano-blue) 18%,rgba(0,51,173,.85) 26%,rgba(0,51,173,.55) 38%,rgba(0,51,173,.22) 55%,rgba(0,51,173,.06) 72%,#fff 92%),var(--bg);border-bottom:0;display:flex;align-items:center;padding:10px 28px;overflow:visible;white-space:nowrap;gap:38px;position:relative;z-index:50}
[data-theme=dark] .nav-pages{background:linear-gradient(90deg,var(--cardano-blue) 0%,var(--cardano-blue) 20%,rgba(0,51,173,.75) 30%,rgba(0,51,173,.40) 50%,rgba(0,51,173,.12) 70%,var(--bg) 92%),var(--bg)}
.nav-zone{display:flex;align-items:center;gap:10px;flex-shrink:0}

/* Reading-direction flow arrow — thin SVG arrow, hairline stroke,
   calm colour. The shape carries the meaning ("read right→left, this
   is built FROM that"); it doesn't have to shout. */
.nav-flow-arrow{display:inline-flex;align-items:center;flex-shrink:0;
                padding:0 8px;color:var(--cardano-blue);opacity:.55;
                user-select:none;transition:opacity .15s}
.nav-flow-arrow:hover{opacity:.85}
.nav-flow-arrow svg{width:26px;height:11px;display:block}
.nav-flow-arrow-light{color:rgba(255,255,255,.7);opacity:1}
.nav-flow-arrow-light:hover{color:#fff}

/* Small zone label above (inline with) each zone's content */
.nav-zone-label{font:700 9px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:1.8px;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}
.nav-zone-label-output{color:var(--infared);opacity:.9}

/* ── Zones 2/3/4 · Mainnet Diagnostic ← Design Support ← Research Papers ── */
/* Three distinct dropdowns, each with a single title; breadcrumb below conveys
   the current location in the hierarchy so the dropdowns stay label-free.    */
.nav-zone-diag,.nav-zone-design,.nav-zone-research{flex:0 0 auto}
.nav-dd-btn-diag,.nav-dd-btn-design,.nav-dd-btn-research,.nav-dd-btn-constitution,.nav-dd-btn-cps{min-width:0}

/* Constitution zone — Cobalt Pulse (governance blue, distinct from V2 red and diag Dawn) */
.nav-zone-constitution{flex:0 0 auto}
/* Constitution rules moved below .nav-dd-btn-light (line ~511) so they win the cascade */
.nav-dd-stratum-badge-constitution{color:#2C4FFA;background:rgba(44,79,250,.12)}
[data-theme=dark] .nav-dd-btn-constitution{color:#7B91FF;border-color:rgba(123,145,255,.35);background:rgba(123,145,255,.05)}
[data-theme=dark] .nav-dd-btn-constitution:hover{background:rgba(123,145,255,.10);border-color:rgba(123,145,255,.55)}
[data-theme=dark] .nav-dd-wrap-light.open .nav-dd-btn-constitution{background:rgba(123,145,255,.14);border-color:rgba(123,145,255,.7);color:#A8B6FF}
[data-theme=dark] .nav-dd-stratum-badge-constitution{color:#7B91FF;background:rgba(123,145,255,.16)}

/* Findings page TOC — Micro/Macro index above the cards list. Two stacked
   groups; each group has a head (label + count), a one-line meta description,
   and a wrapped list of clickable items linking to anchored cards below. */
.findings-toc{display:grid;grid-template-columns:1fr 1fr;gap:18px;
  margin:18px 0 24px;padding:14px 16px;
  background:var(--bg-panel);border:1px solid var(--border);border-radius:8px}
[data-theme=dark] .findings-toc{background:rgba(255,255,255,.02)}
.findings-toc-group{display:flex;flex-direction:column;gap:4px}
.findings-toc-group-head{display:flex;align-items:baseline;gap:8px}
.findings-toc-group-label{font:600 11.5px/1.2 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.5px;color:var(--text-primary);text-transform:uppercase}
.findings-toc-group-count{font:600 10.5px/1 'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  color:var(--text-muted);letter-spacing:.04em}
.findings-toc-group-meta{font:400 10.5px/1.35 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);font-style:italic;margin-bottom:2px}
.findings-toc-group-list{display:flex;flex-direction:column;gap:0}
.findings-toc-item{display:flex;align-items:baseline;gap:8px;
  padding:2px 6px;border-radius:3px;
  text-decoration:none;color:var(--text-secondary);
  transition:background .12s,color .12s}
.findings-toc-item:hover{background:rgba(229,35,33,.06);color:var(--text-primary)}
[data-theme=dark] .findings-toc-item:hover{background:rgba(229,35,33,.1)}
.findings-toc-num{flex:0 0 auto;font:600 9.5px/1.4 'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  color:var(--infared);letter-spacing:.3px;min-width:20px}
.findings-toc-title{font:400 11.5px/1.35 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
@media (max-width:760px){
  .findings-toc{grid-template-columns:1fr;gap:14px;padding:12px 14px}
}

/* Formal-CPS badge inside a finding card banner — Solar Amber, picks up the
   Problem-Statements zone hue. Sits to the right of the card title. */
.finding-card-cps-badge{display:inline-flex;align-items:center;gap:6px;
  margin-left:auto;align-self:center;
  padding:5px 10px;border-radius:4px;
  background:rgba(255,186,54,.18);border:1px solid rgba(255,186,54,.55);
  color:#7a4f00;text-decoration:none;
  font:700 10.5px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.7px;text-transform:uppercase;
  transition:background .15s,border-color .15s,color .15s}
.finding-card-cps-badge:hover{background:rgba(255,186,54,.32);border-color:rgba(255,186,54,.85);color:#5e3d00}
.finding-card-cps-badge-arrow{font-size:13px;letter-spacing:0}
[data-theme=dark] .finding-card-cps-badge{background:rgba(255,210,122,.16);border-color:rgba(255,210,122,.55);color:#FFE0A0}
[data-theme=dark] .finding-card-cps-badge:hover{background:rgba(255,210,122,.26);border-color:rgba(255,210,122,.8);color:#FFEEC0}

/* CPS zone — Solar Amber (problem statement / open question, distinct from V2 red, gov blue, and diag Dawn) */
.nav-zone-cps{flex:0 0 auto}
.nav-dd-btn-cps{color:#946000;border-color:rgba(255,186,54,.45);background:rgba(255,186,54,.06)}
.nav-dd-btn-cps:hover{background:rgba(255,186,54,.14);border-color:rgba(255,186,54,.65);color:#7a4f00}
.nav-dd-wrap-light.open .nav-dd-btn-cps{background:rgba(255,186,54,.18);border-color:rgba(255,186,54,.75);color:#5e3d00}
.nav-dd-btn-cps.active{color:var(--text-primary);font-weight:600}
.nav-dd-wrap-light.open .nav-dd-btn-cps.active{color:var(--text-primary)}
.nav-dd-stratum-badge-cps{color:#946000;background:rgba(255,186,54,.16)}
[data-theme=dark] .nav-dd-btn-cps{color:#FFD27A;border-color:rgba(255,210,122,.35);background:rgba(255,210,122,.05)}
[data-theme=dark] .nav-dd-btn-cps:hover{background:rgba(255,210,122,.10);border-color:rgba(255,210,122,.55)}
[data-theme=dark] .nav-dd-wrap-light.open .nav-dd-btn-cps{background:rgba(255,210,122,.14);border-color:rgba(255,210,122,.7);color:#FFE0A0}
[data-theme=dark] .nav-dd-stratum-badge-cps{color:#FFD27A;background:rgba(255,210,122,.16)}
/* Diagnostic = Dawn accent when the current page lives inside it */
.nav-dd-btn-diag.active{color:var(--text-primary);font-weight:600}
.nav-dd-wrap-light.open .nav-dd-btn-diag.active{color:var(--text-primary)}
/* Design = Infared accent */
.nav-dd-btn-design.active{color:var(--text-primary);font-weight:600}
.nav-dd-wrap-light.open .nav-dd-btn-design.active{color:var(--text-primary)}
/* Panels: diagnostic needs the most vertical space (The Diagnostic + Reward Flow sub-chain + SD-L) */
.nav-dd-panel-diag{left:0;right:auto;min-width:500px;max-width:540px}
.nav-dd-panel-design{left:0;right:auto;min-width:460px;max-width:500px}
.nav-dd-panel-research{left:auto;right:0;min-width:460px;max-width:500px}
.nav-dd-panel-constitution{left:0;right:auto;min-width:480px;max-width:520px}
.nav-dd-panel-cps{left:0;right:auto;min-width:520px;max-width:560px}

/* Group label inside a dropdown panel (e.g., "Reward Flow" above the pipeline sub-items) */
.nav-dd-ref-group-label{display:block;font:700 9.5px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:1.3px;text-transform:uppercase;color:var(--text-muted);padding:10px 10px 4px;margin-top:4px}

/* ── Breadcrumb bar — single source of truth for "where am I" (lives inside .site-nav as its 3rd row) ── */
.nav-breadcrumb{background:var(--bg);border-bottom:1px solid var(--border);padding:7px 20px;font:400 11.5px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-muted);display:flex;align-items:center;flex-wrap:wrap;gap:6px;letter-spacing:.1px}
[data-theme=dark] .nav-breadcrumb{background:var(--bg)}
/* Top-level pages emit an empty breadcrumb — render an invisible
   non-breaking space via ::before so the band has the *exact* same height
   as a populated one (the text reserves the line-box just like real
   crumb items would). Pseudo-element doesn't break the :empty match
   semantics elsewhere. */
.nav-breadcrumb:empty::before{content:"\00a0";visibility:hidden}
.nav-breadcrumb-item{color:var(--text-secondary)}
.nav-breadcrumb-current{color:var(--text-primary);font-weight:600}
.nav-breadcrumb-sep{color:var(--text-muted);opacity:.55;font-size:13px;padding:0 2px}
.nav-breadcrumb-desc-sep{color:var(--text-muted);opacity:.4;font-size:12px;padding:0 2px 0 6px}
.nav-breadcrumb-desc{color:var(--text-muted);font-weight:400;font-style:italic;opacity:.88;letter-spacing:.15px}
.nav-dd-wrap-light{position:relative}
/* Dropdown button — keep the bordered white plate (it's the main
   affordance signal), refine only the details: hairline 1px border,
   slightly more padding rhythm, SVG chevron in place of ▾. */
.nav-dd-btn-light{background:transparent;border:1px solid var(--border);
                  border-radius:6px;cursor:pointer;
                  font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
                  letter-spacing:.2px;color:var(--text-secondary);
                  padding:9px 14px 9px 14px;transition:all .15s;
                  white-space:nowrap;position:relative;
                  display:inline-flex;align-items:center;gap:7px}
.nav-dd-chev{width:9px;height:6px;opacity:.55;transition:transform .18s,opacity .15s;
             display:inline-block;flex-shrink:0;color:currentColor}
.nav-dd-btn-light:hover .nav-dd-chev{opacity:.9}
.nav-dd-wrap-light.open .nav-dd-chev{transform:rotate(180deg);opacity:1}
.nav-dd-btn-solution{text-transform:none;font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.2px;padding:10px 26px;min-width:130px;color:var(--text-primary)}
.nav-dd-wrap-light.open .nav-dd-btn-solution{color:var(--cardano-blue);border-color:var(--cardano-blue);background:rgba(0,51,173,.06)}

/* Eyebrow tags — restore the white-plate pill that anchored the badge
   visually (you confirmed this read better than typographic-only).
   Keep my refinements: Inter typeface, slightly tighter tracking
   (was .6px ≈ wide), 8.5px size. */
.nav-dd-btn-solution::after{content:"EVALUATION";position:absolute;top:-7px;right:-6px;
                             font:700 8.5px/1 'Inter',-apple-system,sans-serif;
                             letter-spacing:.14em;
                             background:#fff;color:var(--cardano-blue);
                             padding:3px 6px;border-radius:3px;
                             border:1px solid var(--cardano-blue);
                             pointer-events:none;
                             box-shadow:0 1px 2px rgba(0,0,0,.06)}
[data-theme=dark] .nav-dd-btn-solution::after{background:#1a1a1a;color:#7B91FF;border-color:#7B91FF}
.nav-dd-btn-light:hover{color:var(--text-primary);border-color:var(--text-muted);background:rgba(0,0,0,.02)}
[data-theme=dark] .nav-dd-btn-light:hover{background:rgba(255,255,255,.04)}
.nav-dd-wrap-light.open .nav-dd-btn-light{color:var(--infared);border-color:rgba(229,35,33,.4);background:rgba(229,35,33,.05)}
.nav-dd-panel-light{display:none;position:absolute;top:calc(100% + 8px);left:0;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 16px 48px rgba(0,0,0,.12);padding:10px 16px;min-width:460px;max-width:500px;z-index:200;white-space:normal}
[data-theme=dark] .nav-dd-panel-light{background:var(--bg-panel);box-shadow:0 16px 48px rgba(0,0,0,.4)}
.nav-dd-wrap-light.open .nav-dd-panel-light{display:block}
.nav-dd-stratum{padding:10px 0}
.nav-dd-stratum+.nav-dd-stratum{border-top:1px solid var(--border-light)}
.nav-dd-stratum-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:6px}
.nav-dd-stratum-badge{display:inline-block;padding:3px 8px;border-radius:4px;font:700 10px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.9px;text-transform:uppercase}
.nav-dd-stratum-badge-design{color:var(--infared);background:rgba(229,35,33,.1)}
.nav-dd-stratum-badge-research{color:#0b8478;background:rgba(22,233,216,.14)}
[data-theme=dark] .nav-dd-stratum-badge-research{color:var(--electric-blue,#16E9D8);background:rgba(22,233,216,.12)}
.nav-dd-stratum-meta{font:400 10.5px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-muted);letter-spacing:.2px}

/* Rich reference row inside the dropdown: title + citation on the left, PDF chip on the right */
.nav-dd-ref{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:8px 10px;margin:2px -6px;border-radius:6px;text-decoration:none;transition:background .12s}
.nav-dd-ref:hover{background-color:rgba(229,35,33,.04)}
[data-theme=dark] .nav-dd-ref:hover{background-color:rgba(229,35,33,.09)}
.nav-dd-ref-title{grid-column:1;grid-row:1;font:500 13px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-primary);letter-spacing:-.1px}
.nav-dd-ref:hover .nav-dd-ref-title{color:var(--infared)}
.nav-dd-ref-cite{grid-column:1;grid-row:2;font:400 11px/1.35 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-muted);margin-top:2px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.nav-dd-ref-tag{display:inline-block;font:600 9.5px/1 -apple-system,sans-serif;letter-spacing:.4px;color:var(--text-secondary);background:var(--bg-panel);border:1px solid var(--border);border-radius:3px;padding:2px 5px}
[data-theme=dark] .nav-dd-ref-tag{background:var(--bg);color:var(--text-body)}
.nav-dd-ref-new{display:inline-block;margin-left:8px;font:700 9px/1 -apple-system,sans-serif;letter-spacing:.7px;color:#0a8a80;background:rgba(22,233,216,.14);border:1px solid rgba(22,233,216,.45);border-radius:3px;padding:2px 5px;text-transform:uppercase;vertical-align:1px}
[data-theme=dark] .nav-dd-ref-new{color:#16E9D8;background:rgba(22,233,216,.1);border-color:rgba(22,233,216,.35)}

/* "NEW" stamp — Electric Blue pill anchored to the top-LEFT,
   shared by every nav button that points to fresh content.
   Same pill recipe as the right-side FUTURE / EVALUATION /
   PROPOSAL eyebrows (white plate / 8px / .6em letter-spaced /
   uppercase / 3px radius / 1px coloured border / soft shadow);
   the Electric Blue accent matches the inner ``.nav-dd-ref-new``
   chips used on individual items inside each panel, so outer
   stamp + inner item badges read as one signal family.

   Applied to:
   - the V2 Specification tab (.nav-tab-spec-big) — the spec
     itself is the V2 proposal, brand new artefact
   - the CIPs dropdown trigger (.nav-dd-btn-solution) — entry
     point to the freshly-evaluated CIP candidates
   - any .nav-dd-wrap-light that contains a .nav-dd-ref-new
     descendant (Mainnet Diagnostic, Design Support, …) via
     the :has() selector. */
.nav-dd-wrap-light:has(.nav-dd-ref-new) > .nav-dd-btn-light,
.nav-tab-spec-big,
.nav-dd-btn-solution{
  position:relative}
/* NEW eyebrow — restore the white-plate pill (more readable than
   typographic-only). Keep my refinements: Inter, tighter tracking,
   slightly larger size. */
.nav-dd-wrap-light:has(.nav-dd-ref-new) > .nav-dd-btn-light::before,
.nav-tab-spec-big::before,
.nav-dd-btn-solution::before{
  content:"NEW";
  position:absolute;
  top:-7px;left:-6px;
  font:700 8.5px/1 'Inter',-apple-system,sans-serif;
  letter-spacing:.14em;
  background:#fff;
  color:#0a8a80;
  padding:3px 6px;
  border-radius:3px;
  border:1px solid rgba(22,233,216,.55);
  box-shadow:0 1px 2px rgba(22,233,216,.18);
  pointer-events:none}
[data-theme=dark] .nav-dd-wrap-light:has(.nav-dd-ref-new) > .nav-dd-btn-light::before,
[data-theme=dark] .nav-tab-spec-big::before,
[data-theme=dark] .nav-dd-btn-solution::before{
  background:#1a1a1a;
  color:#16E9D8;
  border-color:rgba(22,233,216,.45)}
.nav-dd-ref-pdf{grid-column:2;grid-row:1 / span 2;align-self:center;font:700 9.5px/1 -apple-system,sans-serif;letter-spacing:.6px;color:var(--infared);background:rgba(229,35,33,.08);padding:6px 9px;border-radius:4px;text-transform:uppercase}
.nav-dd-ref:hover .nav-dd-ref-pdf{background:var(--infared);color:#fff}

/* Diagnostic stratum badge — Dawn (mainnet observation colour) */
.nav-dd-stratum-badge-diagnostic{color:var(--dawn);background:rgba(236,100,29,.12)}

/* Sub-items (Evidence chain under The Diagnostic) — indented, lighter, stage tag on the right */
.nav-dd-ref-sub{padding-left:22px;position:relative}
.nav-dd-ref-sub::before{content:"";position:absolute;left:12px;top:16px;width:6px;height:1px;background:var(--border)}
/* Items inside the Reward-Flow group get a deeper indent so they read as children of the group label */
.nav-dd-ref-group-label-flow{padding-left:16px}
.nav-dd-ref-flow{padding-left:40px}
.nav-dd-ref-flow::before{left:28px}
.nav-dd-ref-sub .nav-dd-ref-title{font-size:12.5px;font-weight:500}
.nav-dd-ref-stage{display:inline-block;margin-left:8px;font:600 9.5px/1 -apple-system,sans-serif;letter-spacing:.4px;color:var(--text-secondary);background:var(--bg-panel);border:1px solid var(--border);border-radius:3px;padding:2px 5px;text-transform:uppercase;white-space:nowrap}
[data-theme=dark] .nav-dd-ref-stage{background:var(--bg)}

/* Verdict tag colour variants used in Solution Evaluation dropdown */
.nav-dd-ref-stage-nogo{color:#A8120F;background:rgba(229,35,33,.12);border-color:rgba(229,35,33,.45)}
[data-theme=dark] .nav-dd-ref-stage-nogo{color:#FF7A78;background:rgba(229,35,33,.14);border-color:rgba(229,35,33,.5)}
.nav-dd-ref-stage-soon{color:#5a4d00;background:rgba(242,255,88,.32);border-color:rgba(242,255,88,.6)}
[data-theme=dark] .nav-dd-ref-stage-soon{color:#F2FF58;background:rgba(242,255,88,.10);border-color:rgba(242,255,88,.4)}

/* CIP children of each layer's evaluation synthesis are simply
   indented one level deeper than the synthesis row. No tree
   connector — readers infer hierarchy from the indent and the
   ordering alone, which keeps the dropdown calm and avoids fragile
   pseudo-element drawing. The .nav-dd-ref-sub::before bullet is
   re-aligned per level so it sits ~12px before each title rather
   than floating at the menu's left edge. */
.nav-dd-ref-deep{padding-left:56px}
.nav-dd-ref-deep::before{left:44px}
.nav-dd-ref-deeper{padding-left:76px}
.nav-dd-ref-deeper::before{left:64px}

/* Synthesis row title weight — used by both Forward 'Draft in
   preparation' and the per-layer parent rows. */
.nav-dd-ref-synthesis .nav-dd-ref-title{font-weight:600;color:var(--text-primary)}

/* Active / parent-active state on rich-list item */
.nav-dd-ref.active{background-color:rgba(22,233,216,.09);box-shadow:inset 3px 0 0 rgba(22,233,216,.7)}
.nav-dd-ref.active .nav-dd-ref-title{color:var(--text-primary);font-weight:600}
.nav-dd-ref.parent-active{background-color:rgba(22,233,216,.04);box-shadow:inset 3px 0 0 rgba(22,233,216,.35)}
[data-theme=dark] .nav-dd-ref.active{background-color:rgba(22,233,216,.14)}
[data-theme=dark] .nav-dd-ref.parent-active{background-color:rgba(22,233,216,.06)}

/* ── Zone 1 · Output (primary CTA, left-anchored) ── */
.nav-zone-output{flex:0 0 auto;padding-right:4px}
/* V2 Specification — Cardano blue solid CTA. The whole nav points
   at this destination, so it gets the brand colour at full saturation
   instead of a tinted pill. */
.nav-tab-spec-big{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.4px;color:#fff;background:var(--cardano-blue);border:1px solid var(--cardano-blue);border-radius:6px;text-decoration:none;transition:all .15s;white-space:nowrap;box-shadow:0 2px 6px var(--cardano-blue-soft);position:relative}

/* V2 Roadmap — working document proposing directions of exploration
   and concrete milestones, sitting next to the canonical V2
   Specification (which stays as historical reference). Same shape
   language as .nav-tab-spec-big (Cardano blue plate) but with a
   dashed border to read as 'in progress' and a 'DRAFT' eyebrow tag
   instead of PROPOSAL. The pair (V2 Spec | V2 Roadmap) reads as
   'historical reference → active working document' at a glance. */
.nav-tab-roadmap{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.4px;color:#fff;background:var(--cardano-blue);border:1px dashed rgba(255,255,255,.65);border-radius:6px;text-decoration:none;transition:all .15s;white-space:nowrap;box-shadow:0 2px 6px var(--cardano-blue-soft);position:relative}
/* IDEATION eyebrow — white-plate pill (restored for readability). */
.nav-tab-roadmap::after{content:"IDEATION";position:absolute;top:-7px;right:-6px;
                        font:700 8.5px/1 'Inter',-apple-system,sans-serif;
                        letter-spacing:.14em;background:#fff;color:var(--cardano-blue);
                        padding:3px 6px;border-radius:3px;border:1px solid var(--cardano-blue)}
[data-theme=dark] .nav-tab-roadmap::after{background:#1a1a1a;color:#7B91FF;border-color:#7B91FF}
.nav-tab-roadmap:hover{background:#0028a0;border-color:rgba(255,255,255,.85);box-shadow:0 4px 14px var(--cardano-blue-glow)}
.nav-tab-roadmap.active{background:#001f80;border-color:rgba(255,255,255,.95);box-shadow:0 3px 12px var(--cardano-blue-glow)}
[data-theme=dark] .nav-tab-roadmap{background:var(--cardano-blue);border-color:rgba(255,255,255,.55);color:#fff}
[data-theme=dark] .nav-tab-roadmap:hover{background:#1d49c4;border-color:rgba(255,255,255,.75)}
[data-theme=dark] .nav-tab-roadmap.active{background:#0040d3;border-color:rgba(255,255,255,.85)}

/* Induced Problems — standalone tab between Constitution and
   Mainnet Diagnostic, in the gradient-fade zone of .nav-pages.
   Inherits the same neutral chrome as the right-side dropdowns
   (.nav-dd-btn-diag / -design / -research): solid white plate,
   uppercase Inter, subtle shadow. Carries the standard "new"
   eyebrow stamp via ::before, matching the recipe used on the
   light dropdowns that surface fresh content. */
.nav-tab-problems-big{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.2px;color:var(--text-secondary);background:#fff;border:1px solid var(--border);border-radius:6px;text-decoration:none;transition:all .15s;white-space:nowrap;box-shadow:0 1px 3px rgba(0,0,0,.06);position:relative}
.nav-tab-problems-big:hover{color:var(--text-primary);border-color:var(--text-muted);background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.10)}
/* Active state intentionally identical to resting state — the
   page hero / breadcrumb already signal the current page; the
   nav itself stays visually uniform across the four light tabs
   (Constitution / Induced Problems / Mainnet Diagnostic / Design
   Support). */
.nav-tab-problems-big.active{color:var(--text-secondary);background:#fff;border-color:var(--border);box-shadow:0 1px 3px rgba(0,0,0,.06)}
[data-theme=dark] .nav-tab-problems-big{color:#FFB07A;border-color:rgba(255,176,122,.55);background:rgba(20,20,24,.85);box-shadow:inset 0 0 0 999px rgba(236,100,29,.10)}
/* "NEW" eyebrow stamp — same recipe as the other light
   dropdowns that contain fresh content, so the page reads as
   one signal family. */
.nav-tab-problems-big::before{content:"NEW";position:absolute;top:-7px;left:-6px;
                              font:700 8.5px/1 'Inter',-apple-system,sans-serif;
                              letter-spacing:.14em;background:#fff;color:#0a8a80;
                              padding:3px 6px;border-radius:3px;
                              border:1px solid rgba(22,233,216,.55);
                              box-shadow:0 1px 2px rgba(22,233,216,.18);
                              pointer-events:none}
[data-theme=dark] .nav-tab-problems-big::before{background:#1a1a1a;color:#16E9D8;border-color:rgba(22,233,216,.45)}
/* "PROPOSAL" eyebrow tag — same shape language as the "FUTURE"
   stamp on .nav-tab-implementation, anchored to the top-right of
   the V2 Specification tab so the spec reads as 'this is a
   proposal' at a glance. */
.nav-tab-spec-big::after{content:"PROPOSAL";position:absolute;top:-7px;right:-6px;
                          font:700 8.5px/1 'Inter',-apple-system,sans-serif;
                          letter-spacing:.14em;background:#fff;color:var(--cardano-blue);
                          padding:3px 6px;border-radius:3px;border:1px solid var(--cardano-blue)}
[data-theme=dark] .nav-tab-spec-big::after{background:#1a1a1a;color:#7B91FF;border-color:#7B91FF}
.nav-tab-spec-big:hover{background:#0028a0;border-color:#0028a0;box-shadow:0 4px 14px var(--cardano-blue-glow)}
.nav-tab-spec-big.active{background:#001f80;border-color:#001f80;box-shadow:0 3px 12px var(--cardano-blue-glow)}
[data-theme=dark] .nav-tab-spec-big{background:var(--cardano-blue);border-color:var(--cardano-blue);color:#fff}
[data-theme=dark] .nav-tab-spec-big:hover{background:#1d49c4;border-color:#1d49c4}
[data-theme=dark] .nav-tab-spec-big.active{background:#0040d3;border-color:#0040d3}

/* Implementation — far-left teaser of the destination this whole
   pipeline aims at. Cardano blue with a dashed border to signal it is
   the future state, not a clickable target yet. */
.nav-zone-implementation{flex:0 0 auto}
.nav-tab-implementation{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.4px;color:#fff;background:var(--cardano-blue);border:1px dashed rgba(255,255,255,.55);border-radius:6px;cursor:default;transition:all .15s;box-shadow:0 2px 6px var(--cardano-blue-soft);white-space:nowrap;position:relative}
/* No eyebrow badge — Welcome is the entry point, no extra label needed. */
.nav-tab-implementation:hover{background:#0028a0;box-shadow:0 4px 12px var(--cardano-blue-glow)}

/* Resting-state hue tint for each dropdown button — opaque white-base + colored border + tint overlay so they stay readable on the Cardano-blue gradient */
/* All zone dropdown buttons share the same neutral chrome. The
   section's brand colour shows up inside the panel (group label
   badges, accents) — not on the button itself. Only the V2 Spec
   destination keeps its dawn-orange pill since it is the focal
   target of the whole nav. */
.nav-dd-btn-solution,
.nav-dd-btn-diag,
.nav-dd-btn-design,
.nav-dd-btn-research,
.nav-dd-btn-constitution{
  color:var(--text-secondary);
  border:1px solid var(--border);
  background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.06);
  font-weight:500}
.nav-dd-btn-solution:hover,
.nav-dd-btn-diag:hover,
.nav-dd-btn-design:hover,
.nav-dd-btn-research:hover,
.nav-dd-btn-constitution:hover{
  color:var(--text-primary);
  border-color:var(--text-muted);
  background:#fff;
  box-shadow:0 2px 6px rgba(0,0,0,.10)}
.nav-dd-wrap-light.open .nav-dd-btn-solution,
.nav-dd-wrap-light.open .nav-dd-btn-diag,
.nav-dd-wrap-light.open .nav-dd-btn-design,
.nav-dd-wrap-light.open .nav-dd-btn-research,
.nav-dd-wrap-light.open .nav-dd-btn-constitution{
  color:var(--text-primary);
  border-color:var(--text-muted);
  background:#fff;
  box-shadow:0 3px 10px rgba(0,0,0,.12)}
[data-theme=dark] .nav-dd-btn-solution{color:#FF7A78;border-color:rgba(255,122,120,.55);background:rgba(20,20,24,.85);box-shadow:inset 0 0 0 999px rgba(229,35,33,.10)}
[data-theme=dark] .nav-dd-btn-diag{color:#FFB07A;border-color:rgba(255,176,122,.55);background:rgba(20,20,24,.85);box-shadow:inset 0 0 0 999px rgba(236,100,29,.10)}
[data-theme=dark] .nav-dd-btn-design{color:#5BFFAD;border-color:rgba(91,255,173,.55);background:rgba(20,20,24,.85);box-shadow:inset 0 0 0 999px rgba(6,255,137,.10)}
[data-theme=dark] .nav-dd-btn-research{color:#5BE8DC;border-color:rgba(91,232,220,.55);background:rgba(20,20,24,.85);box-shadow:inset 0 0 0 999px rgba(22,233,216,.10)}

/* Responsive: wrap zones below 1100px; stack fully on phone */
@media (max-width:1100px){
  .nav-pages{flex-wrap:wrap;padding:8px 14px}
  .nav-flow-arrow{display:none}
}
@media (max-width:700px){
  .nav-dd-panel-light,.nav-dd-panel-diag,.nav-dd-panel-design,.nav-dd-panel-research,.nav-dd-panel-constitution{position:fixed;left:8px;right:8px;min-width:0;max-width:none;top:auto}
  .nav-evidence-sub{flex-wrap:wrap}
  .nav-breadcrumb{padding:6px 14px;font-size:11px}
}

/* ── Mermaid diagrams ─────────────────────────────────────── */
.mermaid{position:relative;margin:22px 0;padding:18px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;text-align:center;overflow-x:auto}
.mermaid.mm-ready{cursor:zoom-in}
.mermaid svg{max-width:100%;height:auto;display:inline-block}
.mermaid .node rect,.mermaid .node polygon,.mermaid .node circle{stroke:var(--border);fill:var(--bg)}
.mermaid .cluster rect{fill:rgba(229,35,33,.03);stroke:rgba(229,35,33,.25)}
[data-theme=dark] .mermaid{background:var(--bg);border-color:var(--border)}

/* Mermaid expand button (click to zoom) */
.mermaid-expand{position:absolute;top:10px;right:10px;z-index:2;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg);border:1px solid var(--border);border-radius:5px;color:var(--text-secondary);font:500 11px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.4px;text-transform:uppercase;cursor:pointer;opacity:.7;transition:opacity .15s ease,background .15s ease,color .15s ease}
.mermaid:hover .mermaid-expand{opacity:1}
.mermaid-expand:hover{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary);opacity:1}
.mermaid-expand svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}

/* Mermaid zoom overlay */
.mermaid-zoom-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.88);display:none;align-items:center;justify-content:center;opacity:0;transition:opacity .18s ease}
.mermaid-zoom-overlay.active{display:flex;opacity:1}
.mermaid-zoom-stage{position:absolute;inset:0;overflow:hidden;cursor:grab;display:flex;align-items:center;justify-content:center}
.mermaid-zoom-stage.dragging{cursor:grabbing}
.mermaid-zoom-stage>svg{max-width:none;max-height:none;transform-origin:center center;user-select:none;pointer-events:none}
.mermaid-zoom-controls{position:absolute;top:18px;right:18px;display:flex;gap:8px;z-index:2}
.mermaid-zoom-btn{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;font-size:18px;line-height:1;transition:background .15s ease}
.mermaid-zoom-btn:hover{background:rgba(255,255,255,.18)}
.mermaid-zoom-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.mermaid-zoom-hint{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.55);font:400 11px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.5px;text-transform:uppercase;pointer-events:none}

/* ── GitHub-style admonitions ─────────────────────────────── */
.admon{margin:20px 0;padding:14px 18px 16px;border-radius:6px;border-left:4px solid var(--text-muted);background:var(--bg-panel);font-size:14px;line-height:1.65}
.admon-label{font-family:'Chivo',sans-serif;font-weight:600;font-size:11px;letter-spacing:.9px;text-transform:uppercase;margin-bottom:6px;color:var(--text-muted)}
.admon p{margin:.4em 0}
.admon p:last-child{margin-bottom:0}
.admon-note{border-left-color:#2C4FFA}.admon-note .admon-label{color:#2C4FFA}
.admon-tip{border-left-color:#06FF89}.admon-tip .admon-label{color:#058a4a}
.admon-important{border-left-color:var(--infared,#E52321)}.admon-important .admon-label{color:var(--infared,#E52321)}
.admon-warning{border-left-color:#FFBA36}.admon-warning .admon-label{color:#9c6500}
.admon-caution{border-left-color:#FF532C}.admon-caution .admon-label{color:#FF532C}

/* ── TOC floating panel ─────────────────────────────── */
/* Hide the inline TOC block when the floating panel is active */
body.has-toc-panel #table-of-contents,
body.has-toc-panel #table-of-contents + .section-body,
body.has-toc-panel > .content > .toc-nav,
body.has-toc-panel .content > h2#table-of-contents + .section-body{display:none}

/* Floating FAB — fixed, top-right, under the sticky nav */
.toc-fab{position:fixed;top:96px;right:20px;width:44px;height:44px;border-radius:50%;
  background:var(--bg);border:1px solid var(--border);color:var(--text-primary);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.08);z-index:300;
  transition:color .15s,border-color .15s,box-shadow .2s,transform .15s}
.toc-fab:hover{color:var(--cardano-blue);border-color:var(--cardano-blue);box-shadow:0 6px 18px var(--cardano-blue-glow);transform:translateY(-1px)}
.toc-fab svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.toc-fab-label{display:none}

/* Back-to-top FAB — bottom-right twin of the TOC fab. Hidden until
   the reader scrolls past ~320px; fades + slides in once visible.
   Same shape language as .toc-fab so the two read as a coordinated
   pair of floating tools. */
.back-to-top{
  position:fixed;bottom:24px;right:24px;
  width:44px;height:44px;border-radius:50%;
  background:var(--bg);border:1px solid var(--border);
  color:var(--text-primary);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.08);
  z-index:300;
  opacity:0;visibility:hidden;
  transform:translateY(8px);
  transition:opacity .18s,visibility .18s,transform .18s,
    color .15s,border-color .15s,box-shadow .2s}
.back-to-top.visible{
  opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{
  color:var(--cardano-blue);
  border-color:var(--cardano-blue);
  box-shadow:0 6px 18px var(--cardano-blue-glow);
  transform:translateY(-2px)}
.back-to-top svg{width:18px;height:18px}
[data-theme=dark] .back-to-top{
  background:var(--bg-panel);border-color:#2a2a2a}
[data-theme=dark] .back-to-top:hover{
  color:#8FB1FF;border-color:#6E97FF;
  box-shadow:0 6px 18px rgba(110,151,255,.30)}
[data-theme=dark] .toc-fab{background:var(--bg-panel)}

/* Overlay */
.toc-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;
  transition:opacity .2s;z-index:400}
body.toc-open .toc-overlay{opacity:1;pointer-events:auto}
[data-theme=dark] .toc-overlay{background:rgba(0,0,0,.55)}

/* Side panel */
.toc-panel{position:fixed;top:0;right:0;height:100vh;width:760px;max-width:96vw;
  background:var(--bg);border-left:1px solid var(--border);
  box-shadow:-8px 0 32px rgba(0,0,0,.12);z-index:500;
  transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column}
body.toc-open .toc-panel{transform:translateX(0)}

.toc-panel-header{display:flex;align-items:center;justify-content:space-between;
  padding:16px 20px;border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}
.toc-panel-title{font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:1.8px;text-transform:uppercase;color:var(--cardano-blue)}
.toc-panel-close{background:none;border:1px solid var(--border);border-radius:4px;
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--text-muted);transition:color .15s,border-color .15s}
.toc-panel-close:hover{color:var(--cardano-blue);border-color:var(--cardano-blue)}
.toc-panel-close svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round}

.toc-panel-body{flex:1;overflow-y:auto;padding:20px 24px 40px;scrollbar-gutter:stable}
.toc-panel-body::-webkit-scrollbar{width:8px}
.toc-panel-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}
.toc-panel-body::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}

/* Panel-scoped TOC — reuse .toc-nav styling but stripped of the card chrome */
.toc-panel .toc-nav{background:transparent;border:none;padding:0;margin:0}
/* li uses flex so a bare number prefix (e.g. "2.1") stays inline with the link;
   nested ul/ol claim full width and wrap to the row below. */
.toc-panel .toc-nav li{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:6px}
.toc-panel .toc-nav li > ul,
.toc-panel .toc-nav li > ol{flex:0 0 100%;min-width:0}
.toc-panel .toc-nav a{display:inline-block;flex:1 1 auto;min-width:0;padding:3px 4px;border-radius:4px;transition:background .1s,color .1s}
.toc-panel .toc-nav a:hover{background:var(--cardano-blue-soft);color:var(--cardano-blue);text-decoration:none}
.toc-panel .toc-nav a.toc-active{color:var(--cardano-blue);background:var(--cardano-blue-soft);font-weight:700;box-shadow:inset 3px 0 0 var(--cardano-blue)}
[data-theme=dark] .toc-panel .toc-nav a.toc-active{background:rgba(110,151,255,.15);color:#8FB1FF;box-shadow:inset 3px 0 0 #8FB1FF}

/* Responsive: full-width drawer on mobile, FAB moves to bottom-right */
@media (max-width:720px){
  .toc-fab{top:auto;bottom:80px;right:16px}
  .toc-panel{width:100vw;max-width:100vw;border-left:none}
}

/* ──────────────────────────────────────────────────────────────────────
   PRINT STYLESHEET — used by the "PDF" button (window.print) and Ctrl+P.
   Strategy: hide all chrome, expand content full-width, force light theme,
   keep figures/tables from breaking, disable fixed/sticky positioning.
   ────────────────────────────────────────────────────────────────────── */
@media print{
  /* Force light theme for printing — dark-mode backgrounds waste ink */
  :root,html,body,html[data-theme=dark],[data-theme=dark]{
    --bg:#ffffff;--bg-warm:#ffffff;--bg-panel:#f5f5f5;--bg-code:#f5f5f5;
    --text-primary:#000;--text-body:#222;--text-secondary:#333;--text-muted:#666;
    --border:#ccc;--border-light:#e5e5e5;--border-strong:#aaa;
    background:#fff!important;color:#000!important;
  }
  html,body{margin:0!important;padding:0!important;background:#fff!important}
  /* Hide all site chrome */
  .site-nav,.hero,.progress-bar,.back-to-top,.toc-fab,.toc-panel,.toc-overlay,
  .nav-brand-right,.pdf-export,.theme-toggle,.lightbox-overlay{display:none!important}
  /* Content: full-width, no side rules, no gradients */
  .content{max-width:100%!important;width:100%!important;margin:0!important;
    padding:12mm 14mm!important;border:none!important;background:#fff!important;
    background-image:none!important;min-height:0!important}
  /* Typography: darker, denser, with proper page breaks */
  .content h1,.content h2,.content h3,.content h4,.content h5,.content h6{
    color:#000!important;page-break-after:avoid;break-after:avoid-page}
  .content h2{color:var(--infared)!important;border-left-color:var(--infared)!important}
  .content h3{color:var(--dawn)!important;border-left-color:var(--dawn)!important}
  .content p,.content li{orphans:3;widows:3}
  /* Keep tables, figures, and admonitions from splitting badly */
  .content table,.content figure,.obs-card,blockquote{
    page-break-inside:avoid;break-inside:avoid}
  /* Tables: thinner borders, full colour */
  .content th,.content td{border:1px solid #888!important}
  .content thead{position:static!important}
  .content img,.content svg,.mermaid svg{max-width:100%!important;height:auto!important}
  /* Show link URLs after the anchor text so PDF readers see the reference */
  .content a[href^="http"]::after,.content a[href^="mailto:"]::after{
    content:" [" attr(href) "]";font-size:.75em;color:#666;word-break:break-all}
  .content a{color:#000!important;border-bottom:none!important;text-decoration:underline}
  /* Hide JS-added collapse toggles — everything is expanded by beforeprint */
  .section-toggle::before,.toc-toggle::before{display:none!important}
  .section-toggle,.toc-toggle{padding-left:0!important}
  .section-body{max-height:none!important;opacity:1!important}
  /* Enforce printing of backgrounds on the elements that need them */
  .obs-card,.admon,blockquote,code,pre{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  /* A4 default, ~16mm margins on all sides managed by @page */
  @page{size:A4;margin:14mm}
  @page:first{margin-top:10mm}
}

/* ── Observation tier badges + metric highlighting ───────────────────── */
.obs-tier{font-size:10px;letter-spacing:1px;text-transform:uppercase;
  padding:2px 8px;border-radius:3px;font-weight:600;white-space:nowrap;
  font-family:'Chivo',-apple-system,BlinkMacSystemFont,sans-serif;
  border:1px solid transparent}
.obs-tier-mechanism{background:rgba(229,35,33,.1);color:var(--infared);border-color:rgba(229,35,33,.22)}
.obs-tier-concentration{background:rgba(236,100,29,.1);color:var(--dawn);border-color:rgba(236,100,29,.22)}
.obs-tier-structure{background:rgba(236,100,29,.08);color:#c45310;border-color:rgba(236,100,29,.2)}
.obs-tier-demand{background:rgba(22,233,216,.1);color:#0d8a82;border-color:rgba(22,233,216,.3)}
.obs-tier-fees{background:rgba(44,79,250,.08);color:#2c4ffa;border-color:rgba(44,79,250,.2)}
.obs-tier-sustainability{background:rgba(167,0,255,.08);color:#8421a2;border-color:rgba(167,0,255,.2)}
.obs-tier-general{background:var(--bg-panel);color:var(--text-secondary);border-color:var(--border)}
[data-theme=dark] .obs-tier-mechanism{background:rgba(229,35,33,.18);color:#f06050}
[data-theme=dark] .obs-tier-concentration{background:rgba(236,100,29,.18);color:#f29a5e}
[data-theme=dark] .obs-tier-structure{background:rgba(236,100,29,.12);color:#f29a5e}
[data-theme=dark] .obs-tier-demand{background:rgba(22,233,216,.15);color:#5ed9ce}
[data-theme=dark] .obs-tier-fees{background:rgba(44,79,250,.18);color:#6b8af7}
[data-theme=dark] .obs-tier-sustainability{background:rgba(167,0,255,.18);color:#c471e0}
[data-theme=dark] .obs-tier-general{background:var(--bg-panel);color:var(--text-muted)}

/* Metric highlighting — inline chips around named numbers ("950 pools",
   "epoch 300", "1M ADA"). Cardano-blue tint replaces the previous
   IOG-red wash so the highlight reads as part of the brand. */
.metric{background:var(--cardano-blue-soft);
  border-bottom:1px dotted color-mix(in srgb, var(--cardano-blue) 35%, transparent);
  padding:0 3px;color:var(--text-primary);font-variant-numeric:tabular-nums;
  font-weight:500;border-radius:2px}
[data-theme=dark] .metric{background:rgba(110,151,255,.10);
  border-bottom-color:rgba(110,151,255,.40)}

/* ── Observation citation references (overlay-enabled) ───────────────── */
.obs-ref{display:inline;color:var(--infared);text-decoration:none;
  font-weight:500;border-bottom:1px dotted rgba(229,35,33,.45);
  padding:0 1px;cursor:help;transition:background .12s,color .12s}
.obs-ref:hover{background:rgba(229,35,33,.08);color:var(--infared);
  border-bottom-color:var(--infared);border-bottom-style:solid}
[data-theme=dark] .obs-ref{color:#f06050;border-bottom-color:rgba(240,96,80,.4)}
[data-theme=dark] .obs-ref:hover{background:rgba(240,96,80,.15);color:#ff8070;border-bottom-color:#f06050}
.obs-ref-range{font-variant-numeric:tabular-nums}

/* Hover tooltip preview */
.obs-tooltip{position:fixed;z-index:900;max-width:340px;min-width:220px;
  background:var(--bg);border:1px solid var(--border);border-radius:8px;
  box-shadow:0 10px 30px rgba(0,0,0,.15);
  padding:12px 14px;font-family:'Chivo',sans-serif;font-size:13px;
  opacity:0;pointer-events:none;transform:translateY(4px);
  transition:opacity .15s,transform .15s;color:var(--text-body)}
.obs-tooltip.visible{opacity:1;transform:translateY(0)}
.obs-tooltip-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.obs-tooltip-num{font-weight:700;font-size:12px;color:var(--infared)}
.obs-tooltip-section{font-size:10.5px;color:var(--text-muted);letter-spacing:.4px;text-transform:uppercase}
.obs-tooltip-tier{margin-left:auto}
.obs-tooltip-title{font-weight:600;font-size:13.5px;line-height:1.35;color:var(--text-primary);margin-bottom:6px}
.obs-tooltip-summary{font-size:12.5px;line-height:1.5;color:var(--text-body);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.obs-tooltip-hint{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light);
  font-size:10.5px;color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase}
[data-theme=dark] .obs-tooltip{background:var(--bg-panel);border-color:var(--border)}

/* Side panel for full-detail view — same width as the TOC panel
   (760px / 96vw cap) so the source observation gets enough breathing
   room to render the abstract + finding cards comfortably. Header
   carries the red ref + 'SOURCE SUB-REPORT' eyebrow; body uses the
   site's body type stack. */
.obs-panel{position:fixed;top:0;right:0;height:100vh;width:760px;max-width:96vw;
  background:var(--bg);border-left:1px solid var(--border);
  box-shadow:-10px 0 32px rgba(0,0,0,.16);z-index:700;
  transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);
  display:flex;flex-direction:column}
body.obs-panel-open .obs-panel{transform:translateX(0)}
.obs-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;
  pointer-events:none;transition:opacity .2s;z-index:650}
body.obs-panel-open .obs-panel-overlay{opacity:1;pointer-events:auto}
/* Header — Cardano-blue observation chrome (matches the main-page
   .sro-card-pro header: blue ref chip + blue eyebrow). The findings
   section below the abstract stays in the red lane; the convention
   is blue=observation, red=findings. */
.obs-panel-header{display:flex;align-items:center;gap:14px;padding:16px 22px;
  border-bottom:1px solid var(--border);background:var(--bg-panel);flex-shrink:0}
.obs-panel-num{flex-shrink:0;display:inline-flex;align-items:center;
  padding:5px 11px;border-radius:5px;
  background:var(--cardano-blue);color:#fff;
  font:700 12.5px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.04em;min-width:auto}
.obs-panel-section-id{font:600 10.5px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:2.4px;text-transform:uppercase;color:var(--cardano-blue)}
[data-theme=dark] .obs-panel-num{background:#6E97FF;color:#0a0a0c}
[data-theme=dark] .obs-panel-section-id{color:#8FB1FF}
.obs-panel-close{margin-left:auto;background:none;border:1px solid var(--border);
  border-radius:4px;width:30px;height:30px;display:flex;align-items:center;
  justify-content:center;cursor:pointer;color:var(--text-muted);
  transition:color .15s,border-color .15s}
.obs-panel-close:hover{color:var(--cardano-blue);border-color:var(--cardano-blue)}
.obs-panel-close svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round}
.obs-panel-body{flex:1;overflow-y:auto;padding:24px 28px 44px;
  scrollbar-gutter:stable;
  font-family:'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.obs-panel-title{font:600 22px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary);margin-bottom:14px;letter-spacing:-.3px}
.obs-panel-tier-row{display:flex;gap:8px;align-items:center;margin-bottom:18px}
/* Legacy summary block (panels rendered without the new abstract
   path still hit this rule). Same Cardano-blue pattern as the
   abstract since both frame an observation, not a finding. */
.obs-panel-summary{font-size:14.5px;line-height:1.65;color:var(--text-body);
  padding:16px 18px;background:var(--bg-warm);border-radius:8px;
  border-left:3px solid var(--cardano-blue);margin-bottom:22px}
/* Source meta block at the foot of the panel. */
.obs-panel-meta{border-top:1px solid var(--border);padding-top:20px;margin-top:22px}
.obs-panel-meta-label{font:600 10.5px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:2.4px;text-transform:uppercase;color:var(--text-muted);margin-bottom:6px}
.obs-panel-meta-val{font-size:14px;color:var(--text-body);margin-bottom:14px}
.obs-panel-meta-val a{color:var(--cardano-blue);text-decoration:none;
  border-bottom:1px dotted var(--cardano-link-line)}
.obs-panel-meta-val a:hover{color:#001a6b;border-bottom-style:solid;
  border-bottom-color:var(--cardano-blue)}
[data-theme=dark] .obs-panel-meta-val a{color:#6E97FF;
  border-bottom-color:rgba(110,151,255,.30)}
[data-theme=dark] .obs-panel-meta-val a:hover{color:#A8C0F7;
  border-bottom-color:#6E97FF}
/* Primary CTA — Cardano blue. The action is navigational (jump
   to source page) so it lives in the brand's blue lane. */
.obs-panel-cta{display:inline-flex;align-items:center;gap:8px;margin-top:8px;
  padding:11px 18px;background:var(--cardano-blue);color:#fff;
  text-decoration:none;border-radius:5px;
  font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.04em;
  box-shadow:0 1px 4px rgba(0,51,173,.20);
  transition:background .15s,box-shadow .15s,transform .15s}
.obs-panel-cta:hover{background:#001a6b;color:#fff;
  box-shadow:0 2px 10px rgba(0,51,173,.35);transform:translateY(-1px)}
.obs-panel-cta svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}

[data-theme=dark] .obs-panel{background:var(--bg)}
[data-theme=dark] .obs-panel-header{background:var(--bg-panel)}
[data-theme=dark] .obs-panel-summary{background:var(--bg-panel)}
[data-theme=dark] .obs-panel-cta{background:#6E97FF;color:#0a0a0c;
  box-shadow:0 1px 4px rgba(110,151,255,.30)}
[data-theme=dark] .obs-panel-cta:hover{background:#A8C0F7;color:#0a0a0c;
  box-shadow:0 2px 10px rgba(110,151,255,.45)}

@media (max-width:820px){
  .obs-panel{width:100vw;max-width:100vw;border-left:none}
  .obs-tooltip{max-width:calc(100vw - 24px)}
}

/* ==========================================================================
   Findings & Observations synthesis page (findings.html)
   ========================================================================== */

.findings-page{max-width:1180px;margin:0 auto;padding:8px 4px 60px;font-family:'Chivo',sans-serif}
.findings-intro{
  margin:0 0 22px;padding:0;
  background:transparent;border:0;
  font-size:14.5px;line-height:1.65;color:var(--text-body);
  display:flex;flex-direction:column;gap:14px}
.findings-intro p{margin:0}
.findings-intro a{color:var(--infared);text-decoration:none;border-bottom:1px dotted rgba(229,35,33,.4)}
.findings-intro a:hover{border-bottom-style:solid}

/* Lead — the diagnostic question framed as one weighty sentence,
   set in the display face so it carries the page's voice. */
.findings-intro-lead{
  font-family:var(--font-display,'Chivo','Inter',-apple-system,sans-serif);
  font-size:18px;line-height:1.42;font-weight:500;
  color:var(--text-primary);
  letter-spacing:-.2px}
.findings-intro-lead em{
  font-style:italic;font-weight:600;color:var(--cardano-blue)}
.findings-intro-lead strong{font-weight:700;color:var(--infared)}
/* The answer line — same display face but a touch lighter, so the
   question still owns the visual weight. */
.findings-intro-answer{
  font-family:var(--font-display,'Chivo','Inter',-apple-system,sans-serif);
  font-size:16px;line-height:1.5;font-weight:400;
  color:var(--text-primary);
  letter-spacing:-.1px;
  margin-top:-4px}
.findings-intro-answer strong{font-weight:700;color:var(--infared)}

/* How-to — smaller muted prose so it reads as a footer note rather
   than competing with the lead. */
.findings-intro-howto{
  font-size:13px;color:var(--text-muted);line-height:1.6}
[data-theme=dark] .findings-intro-lead em{color:#8FB1FF}

.findings-stats{display:flex;gap:16px;margin:20px 0;flex-wrap:wrap;align-items:center}
.findings-stats-arrow{
  flex-shrink:0;
  font:600 22px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);
  user-select:none;
  padding:0 4px}
@media (max-width:780px){
  .findings-stats-arrow{transform:rotate(90deg);padding:4px 0}
}
.findings-stat{flex:1;min-width:160px;padding:16px 20px;background:var(--bg);
  border:1px solid var(--border);border-radius:10px;display:flex;flex-direction:column;gap:4px}
.findings-stat-num{font-size:28px;font-weight:500;color:var(--infared);letter-spacing:-.8px;line-height:1.1}
.findings-stat-lbl{font-size:11.5px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}

/* CPS lifecycle ribbon — visual rendition of the
   evidence → proto-CPS → V2 spec → CIPs chain.
   Each stage is a chip with a stage number, label, and
   meta sub-label; the current stage carries the Infared
   accent so the reader sees where the page sits in the
   pipeline at a glance. Past stages stay subtle (Cardano
   blue tint), future stages are dashed-outlined to read
   as not-yet-realised. */
.cps-lifecycle{
  display:flex;gap:10px;margin:22px 0 26px;align-items:stretch;
  flex-wrap:wrap}
.cps-stage{
  flex:1;min-width:175px;display:flex;flex-direction:column;
  gap:6px;padding:14px 16px 13px;background:var(--bg);
  border:1px solid var(--border);border-radius:10px;
  text-decoration:none;position:relative;
  transition:border-color .15s,background .15s,transform .15s}
a.cps-stage:hover{transform:translateY(-1px)}
.cps-stage-num{
  font:600 10px/1 'Chivo','Inter',-apple-system,sans-serif;
  letter-spacing:1.6px;color:var(--text-muted);
  text-transform:uppercase}
.cps-stage-label{
  font:600 14.5px/1.25 'Chivo','Inter',-apple-system,sans-serif;
  color:var(--text-primary);letter-spacing:-.2px}
.cps-stage-meta{
  font:400 11.5px/1.35 'Inter',-apple-system,sans-serif;
  color:var(--text-muted);margin-top:auto}
.cps-stage-arrow{
  flex-shrink:0;align-self:center;
  font:600 22px/1 'Inter',-apple-system,sans-serif;
  color:var(--text-muted);opacity:.55;user-select:none;
  padding:0 2px}
/* Past stages — subtle Cardano blue tint, signalling work done. */
.cps-stage-done{
  border-color:var(--cardano-link-line);
  background:linear-gradient(0deg,var(--cardano-blue-soft),var(--cardano-blue-soft)),var(--bg)}
.cps-stage-done .cps-stage-num{color:var(--cardano-blue)}
[data-theme=dark] .cps-stage-done{
  border-color:rgba(143,177,255,.32);
  background:linear-gradient(0deg,rgba(143,177,255,.07),rgba(143,177,255,.07)),var(--bg)}
[data-theme=dark] .cps-stage-done .cps-stage-num{color:#8FB1FF}
/* Current stage — the page you're on. Infared border + a
   small "you are here" pill in the corner. */
.cps-stage-current{
  border:1.5px solid var(--infared);
  background:var(--bg);
  box-shadow:0 1px 0 rgba(229,35,33,.12),0 6px 18px -10px rgba(229,35,33,.35)}
.cps-stage-current .cps-stage-num{color:var(--infared)}
.cps-stage-current::after{
  content:'YOU ARE HERE';position:absolute;top:-8px;right:14px;
  background:var(--infared);color:#fff;
  font:700 8.5px/1 'Chivo','Inter',sans-serif;letter-spacing:1.2px;
  padding:4px 8px;border-radius:3px}
/* Future stages — dashed border so they read as not-yet. */
.cps-stage-future{border-style:dashed;opacity:.78}
.cps-stage-future:hover{opacity:1}
@media (max-width:780px){
  .cps-lifecycle{flex-direction:column}
  .cps-stage-arrow{transform:rotate(90deg);align-self:center;padding:2px 0}
  .cps-stage{min-width:0}
}

.findings-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap;
  margin:18px 0 28px;padding:12px 14px;background:var(--bg);
  border:1px solid var(--border);border-radius:10px;position:sticky;top:58px;z-index:10;
  backdrop-filter:blur(6px)}
.findings-search{flex:1;min-width:220px;padding:9px 14px;font-family:'Chivo',sans-serif;font-size:14px;
  border:1px solid var(--border);border-radius:6px;background:var(--bg-warm);color:var(--text-primary);
  transition:border-color .15s,background .15s}
.findings-search:focus{outline:none;border-color:var(--infared);background:var(--bg)}
.findings-chips{display:flex;gap:6px;flex-wrap:wrap}
.findings-chip{cursor:pointer;border:1px solid var(--border);background:var(--bg);
  color:var(--text-secondary);padding:5px 12px;border-radius:18px;font-size:12px;
  font-family:'Chivo',sans-serif;font-weight:500;letter-spacing:.3px;
  transition:all .15s;display:inline-flex;align-items:center;gap:6px}
.findings-chip:hover{background:var(--bg-panel);color:var(--text-primary)}
.findings-chip.active{background:var(--text-primary);color:var(--bg);border-color:var(--text-primary)}
.findings-chip-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}
.findings-chip-mechanism .findings-chip-dot{background:#E52321}
.findings-chip-concentration .findings-chip-dot{background:#EC641D}
.findings-chip-structure .findings-chip-dot{background:#c45310}
.findings-chip-demand .findings-chip-dot{background:#16E9D8}
.findings-chip-fees .findings-chip-dot{background:#2C4FFA}
.findings-chip-sustainability .findings-chip-dot{background:#A700FF}
.findings-chip-general .findings-chip-dot{background:#888}

.findings-section{margin:42px 0 0}
.findings-section-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  padding-bottom:12px;margin-bottom:22px;border-bottom:2px solid var(--border)}
.findings-section-num{font-size:28px;font-weight:500;color:var(--infared);letter-spacing:-.8px;
  font-family:'Chivo',sans-serif}
.findings-section-title{font-size:22px;font-weight:500;color:var(--text-primary);
  margin:0;letter-spacing:-.3px}
.findings-section-tagline{font-size:13px;color:var(--text-muted);letter-spacing:.2px}
.findings-section-body{display:flex;flex-direction:column;gap:48px}
.findings-list{display:flex;flex-direction:column;gap:64px}

/* Findings group sections — Microeconomics + Macroeconomics blocks
   that wrap their respective card stacks. The h2 inherits the global
   `.content h2` brand pattern (Cardano-blue title with a trailing
   horizontal line via ::after) and the count pill is rendered INSIDE
   the h2 so it sits naturally between the title text and the line.
   The meta line below acts as a brief subtitle for the group. */
.findings-group{display:flex;flex-direction:column;gap:28px;
  scroll-margin-top:96px}
.findings-group-head{display:flex;flex-direction:column;gap:6px;
  margin-bottom:4px}
/* Override the .content h2 default 56px top / 22px bottom margin —
   the section already provides spacing via .findings-list gap. */
.findings-group-title{margin:0!important}
.findings-group-title-text{flex:0 0 auto}
.findings-group-pill{flex:0 0 auto;
  font:600 10.5px/1 'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.6px;text-transform:uppercase;
  color:var(--text-muted);
  padding:5px 9px;border-radius:3px;
  border:1px solid var(--border);background:var(--bg-panel);
  align-self:center;
  /* Pull the pill closer to the title text so the 24px h2 gap
     doesn't read as a disconnect. */
  margin-left:-12px}
.findings-group-meta{
  font:400 14px/1.55 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);margin:0;
  max-width:64ch}
.findings-group-cards{display:flex;flex-direction:column;gap:48px}

/* Banner card head — Cardano-blue plate that mirrors the page hero
   on a per-card scale. Each problem statement opens with its own
   miniature title block so it reads as a self-contained landing
   block when scrolling the synthesis page. */
.finding-card-banner{
  position:relative;overflow:hidden;
  background:var(--cardano-blue);
  padding:22px 26px 24px;
  border-radius:12px 12px 0 0;
  isolation:isolate}
.finding-card-banner::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(140% 90% at 110% 110%,
    rgba(229,35,33,.32) 0%,
    rgba(229,35,33,.10) 32%,
    transparent 58%);
  opacity:.85}
.finding-card-banner > *{position:relative;z-index:1}
.finding-card-banner-eyebrow{
  display:inline-block;
  font:500 10.5px/1.2 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(255,255,255,.82);
  padding-left:10px;
  border-left:2px solid var(--infared);
  margin:0 0 12px}
/* Number + title row inside the banner. The number reads as a
   chapter mark — large, mono, set to the left of the title at 50%
   white opacity so it pins the card to its position without
   stealing focus from the headline. */
.finding-card-banner-row{
  display:flex;align-items:baseline;gap:18px;
  margin:0}
.finding-card-banner-num{
  font:700 30px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  color:rgba(255,255,255,.42);
  letter-spacing:-.02em;
  flex-shrink:0;
  font-variant-numeric:tabular-nums}
.finding-card-banner .finding-card-title{
  font-family:var(--font-display,'Chivo','Inter',-apple-system,sans-serif);
  font-size:32px;font-weight:600;line-height:1.15;
  color:#fff;letter-spacing:-.6px;
  margin:0;
  display:block;
  flex:1 1 auto;
  max-width:920px}
/* Suppress the global h3::after horizontal rule on banner titles —
   the banner has its own visual treatment, the dangling line just
   competed with the headline. */
.finding-card-banner .finding-card-title::after{
  content:none;display:none}

.finding-card-content{
  padding:22px 26px 22px;
  display:flex;flex-direction:column;gap:14px}

.finding-card{background:var(--bg);border:1px solid var(--border);border-radius:12px;
  display:flex;flex-direction:column;
  overflow:hidden;
  transition:border-color .15s,transform .15s,box-shadow .2s;position:relative}
.finding-card:hover{border-color:var(--infared);box-shadow:0 6px 22px rgba(0,0,0,.05)}
.finding-card.hidden{display:none}
.finding-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.finding-card-parent{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--text-muted);font-weight:500}
.finding-card-badge{font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;font-weight:600;
  padding:3px 10px;border-radius:12px;background:rgba(229,35,33,.1);color:var(--infared);
  border:1px solid rgba(229,35,33,.22)}
.finding-card-obs-only .finding-card-badge{background:var(--bg-panel);color:var(--text-muted);border-color:var(--border)}
.finding-card-title{font-size:21px;font-weight:600;line-height:1.3;color:var(--text-primary);
  margin:0 0 14px;letter-spacing:-.4px}
.finding-card-body{font-size:14px;line-height:1.65;color:var(--text-body)}
.finding-card-body p{margin:0 0 10px}
.finding-card-body p:last-child{margin-bottom:0}
.finding-card-body strong{color:var(--text-primary);font-weight:600}
.finding-card-body em{font-style:italic;color:var(--text-primary)}
.finding-card-body .metric{background:rgba(229,35,33,.08);padding:1px 5px;border-radius:3px;
  color:var(--infared);font-weight:600;font-variant-numeric:tabular-nums}
.finding-card-body a{color:var(--infared);text-decoration:none;border-bottom:1px dotted rgba(229,35,33,.4)}
.finding-card-body a:hover{border-bottom-style:solid}

.finding-card-obs{margin-top:6px;padding-top:14px;border-top:1px solid var(--border)}
.finding-card-obs-label{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:8px;font-weight:500}
.finding-card-obs-list{display:flex;flex-wrap:wrap;gap:6px}
.finding-obs-chip{display:inline-flex !important;align-items:center;gap:6px;padding:4px 10px;
  border:1px solid var(--border);border-radius:14px;text-decoration:none !important;font-size:11.5px;
  background:var(--bg-warm);color:var(--text-body) !important;transition:all .12s;max-width:100%;
  cursor:help;border-bottom:1px solid var(--border) !important}
.finding-obs-chip:hover{background:var(--bg);border-color:var(--infared) !important;color:var(--text-primary) !important}
.finding-obs-chip-num{font-weight:700;color:var(--infared);font-size:11px;letter-spacing:.2px}
.finding-obs-chip-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}

/* Section preface — shown only on the first sub-problem card of each
   Problem Induction section, providing the parent's framing in muted
   prose. Sub-cards 2..N omit it so they stay focused on their own
   statement. */
.finding-card-preface{
  font:400 12.5px/1.55 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);
  border-left:2px solid var(--cardano-blue-soft);
  padding:6px 0 6px 12px;
  margin:0 0 12px}
.finding-card-preface p{margin:0 0 6px}
.finding-card-preface p:last-child{margin-bottom:0}
.finding-card-preface .metric{
  background:rgba(0,51,173,.08);color:var(--cardano-blue);
  font-weight:600;padding:0 4px;border-radius:3px}

/* Evidence tree — observations are top-level expandable nodes; the
   canonical sub-report findings (XXX.OY.FZ) sit nested directly
   underneath their parent observation. The hierarchy is preserved
   visually (a single column, indented findings) and operationally
   (the user clicks an obs row to fold its findings). */
.finding-card-evidence{
  margin-top:14px;padding-top:14px;
  border-top:1px solid var(--border)}
.finding-card-evidence-head{
  display:flex;align-items:baseline;gap:8px;
  margin-bottom:10px}
.finding-card-evidence-label{
  font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--text-muted);font-weight:500}
.finding-card-evidence-count{
  font-size:11px;color:var(--text-muted)}
.finding-card-evidence-tree{
  list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column;gap:6px}
.finding-card-onode{
  border:1px solid var(--border);
  border-left:3px solid var(--cardano-blue);
  border-radius:6px;
  background:var(--bg);
  overflow:hidden}
.finding-card-onode-head{
  display:flex;align-items:center;gap:10px;
  width:100%;padding:9px 12px;
  background:transparent;border:0;
  text-align:left;cursor:pointer;
  font:inherit;color:inherit;
  transition:background .12s}
.finding-card-onode-head:hover{
  background:rgba(0,51,173,.04)}
.finding-card-onode-chev{
  display:inline-block;flex-shrink:0;
  font-size:12px;color:var(--cardano-blue);
  transition:transform .15s;
  transform-origin:50% 50%;
  width:10px;text-align:center}
.finding-card-onode.collapsed .finding-card-onode-chev{
  transform:rotate(-90deg)}
.finding-card-onode-num{
  flex-shrink:0;display:inline-flex;align-items:center;
  padding:2px 8px;border-radius:3px;
  background:var(--cardano-blue);color:#fff;
  font:700 10.5px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.04em}
.finding-card-onode-title{
  flex:1 1 auto;min-width:0;
  font:500 13px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finding-card-onode-fcount{
  flex-shrink:0;font-size:10.5px;color:var(--text-muted);
  letter-spacing:.04em;text-transform:lowercase}
.finding-card-onode-body{
  padding:0 12px 12px 36px;
  border-top:1px solid var(--border)}
.finding-card-onode.collapsed .finding-card-onode-body,
.finding-card-onode.collapsed .finding-card-onode-findings,
.finding-card-onode.collapsed .finding-card-onode-summary{
  display:none}
.finding-card-onode-summary{
  margin:6px 12px 12px 36px;
  padding:0 4px 0 0;
  font:400 13px/1.55 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-body)}
.finding-card-onode-summary p{margin:0 0 8px}
.finding-card-onode-summary p:last-child{margin-bottom:0}
.finding-card-onode-summary strong{color:var(--text-primary);font-weight:600}
.finding-card-onode-summary em{color:var(--text-secondary);font-style:italic}
.finding-card-onode-findings{
  list-style:none;margin:0;padding:8px 12px 12px 36px;
  border-top:1px solid var(--border);
  display:flex;flex-direction:column;gap:4px}
.finding-card-onode-empty{
  display:block;font-size:11.5px;color:var(--text-muted);
  font-style:italic;padding:8px 0}

/* Each finding row inside an observation node — Infared accent so the
   evidence chain matches the sub-report callout language. */
.finding-card-fnode{
  display:flex;align-items:flex-start;gap:10px;
  padding:7px 10px;
  border:1px solid transparent;
  border-left:3px solid var(--infared);
  border-radius:0 4px 4px 0;
  background:rgba(229,35,33,.04);
  text-decoration:none !important;
  border-bottom:1px solid transparent !important;
  transition:background .12s,border-color .12s}
.finding-card-fnode:hover{
  background:rgba(229,35,33,.08);
  border-color:rgba(229,35,33,.25) !important;
  border-left-color:var(--infared) !important}
.finding-card-fnode-num{
  flex-shrink:0;
  font:700 11px/1.35 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  color:var(--infared);letter-spacing:0;
  min-width:24px;padding-top:1px}
.finding-card-fnode-body{
  flex:1 1 auto;min-width:0;
  display:flex;flex-direction:column;gap:2px}
.finding-card-fnode-text{
  font:400 12px/1.5 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-body)}
.finding-card-fnode-insight{
  font:italic 400 11px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted)}

[data-theme=dark] .finding-card-onode{
  background:var(--bg);border-color:#2a2a2a;
  border-left-color:#6E97FF}
[data-theme=dark] .finding-card-onode-head:hover{
  background:rgba(110,151,255,.06)}
[data-theme=dark] .finding-card-onode-num{
  background:#6E97FF}
[data-theme=dark] .finding-card-onode-chev{color:#6E97FF}
[data-theme=dark] .finding-card-onode-body{border-top-color:#2a2a2a}
[data-theme=dark] .finding-card-fnode{
  background:rgba(255,111,110,.06);border-left-color:#FF6F6E}
[data-theme=dark] .finding-card-fnode:hover{
  background:rgba(255,111,110,.10)}
[data-theme=dark] .finding-card-fnode-num{color:#FF6F6E}

.finding-card-foot{border-top:1px dashed var(--border);padding-top:10px;margin-top:2px}
.finding-jump{font-size:12.5px;color:var(--infared);text-decoration:none;letter-spacing:.2px;
  border-bottom:1px dotted rgba(229,35,33,.4);transition:border-bottom-style .15s}
.finding-jump:hover{border-bottom-style:solid}

.finding-card-obs-only .obs-cards{margin:0}

.findings-obs-registry{display:none !important}

[data-theme=dark] .finding-card{background:var(--bg);border-color:var(--border)}
[data-theme=dark] .finding-card-badge{background:rgba(229,35,33,.22);color:#f06050;border-color:rgba(229,35,33,.3)}
[data-theme=dark] .finding-obs-chip{background:var(--bg-panel)}
[data-theme=dark] .finding-obs-chip:hover{background:var(--bg-code)}
[data-theme=dark] .findings-chip.active{background:var(--infared);color:var(--white);border-color:var(--infared)}

/* Hero ref-item variant for the dropdown (Findings & Observations entry) */
.nav-dd-ref-hero{background:linear-gradient(90deg,rgba(229,35,33,.06),transparent 70%);
  border-left:3px solid var(--infared);padding-left:13px !important}
.nav-dd-ref-hero .nav-dd-ref-title{color:var(--infared)}

@media (max-width:860px){
  .findings-section-body{grid-template-columns:1fr}
  .findings-controls{position:static;top:auto}
}

/* ── F# finding-ref overlay ──────────────────────────────────────── */

/* Inline citation anchor */
.finding-ref{display:inline;color:var(--cobalt,#2C4FFA);text-decoration:none;
  border-bottom:1px dotted rgba(44,79,250,.5);padding:0 1px;font-weight:500;
  transition:background .15s,color .15s,border-bottom-color .15s;cursor:help}
.finding-ref:hover{background:rgba(44,79,250,.08);color:#1a3ae0;
  border-bottom-color:#1a3ae0}
[data-theme=dark] .finding-ref{color:#7b93ff;border-bottom-color:rgba(123,147,255,.45)}
[data-theme=dark] .finding-ref:hover{background:rgba(123,147,255,.15);color:#9cb0ff;border-bottom-color:#9cb0ff}

/* Hidden registry — DOM-only source for overlay hydration */
.findings-registry{display:none !important}

/* Group-colour hints (F1, F2, F3…): cycle through the secondary palette */
.finding-group-1{color:#2C4FFA}
.finding-group-2{color:#A700FF}
.finding-group-3{color:#EC641D}
.finding-group-4{color:#E52321}
.finding-group-5{color:#16E9D8}
.finding-group-6{color:#06FF89}
.finding-group-7{color:#FFBA36}

/* Hover tooltip */
.finding-tooltip{position:fixed;z-index:900;max-width:360px;min-width:240px;
  padding:12px 14px;background:var(--bg);border:1px solid var(--border);
  border-radius:8px;box-shadow:0 10px 32px rgba(0,0,0,.14);pointer-events:none;
  opacity:0;transform:translateY(6px);transition:opacity .12s,transform .12s;
  font-family:Barlow,system-ui,sans-serif}
.finding-tooltip.visible{opacity:1;transform:translateY(0)}
.finding-tooltip-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.finding-tooltip-id{font-weight:700;font-size:12.5px;letter-spacing:.2px}
.finding-tooltip-src{font-size:10.5px;color:var(--text-muted);letter-spacing:.4px;text-transform:uppercase}
.finding-tooltip-summary{font-size:13px;line-height:1.5;color:var(--text-body)}
.finding-tooltip-summary strong{color:var(--text-primary)}
.finding-tooltip-insight{margin-top:8px;padding:6px 8px;background:var(--bg-warm);
  border-left:2px solid var(--cobalt,#2C4FFA);font-size:11.5px;color:var(--text-body);
  font-style:italic;border-radius:2px}
.finding-tooltip-hint{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-light);
  font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}
[data-theme=dark] .finding-tooltip{background:var(--bg-panel);border-color:var(--border)}

/* Side panel */
.finding-panel{position:fixed;top:0;right:0;height:100vh;width:440px;max-width:94vw;
  background:var(--bg);border-left:1px solid var(--border);z-index:950;
  transform:translateX(100%);transition:transform .26s cubic-bezier(.2,.8,.2,1);
  display:flex;flex-direction:column;box-shadow:-8px 0 36px rgba(0,0,0,.18)}
body.finding-panel-open .finding-panel{transform:translateX(0)}
.finding-panel-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);opacity:0;
  pointer-events:none;z-index:940;transition:opacity .2s}
body.finding-panel-open .finding-panel-overlay{opacity:1;pointer-events:auto}
.finding-panel-header{display:flex;align-items:center;gap:12px;padding:18px 22px;
  border-bottom:1px solid var(--border);background:var(--bg-warm)}
.finding-panel-id{font-weight:700;font-size:15px;min-width:42px}
.finding-panel-src{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted)}
.finding-panel-close{margin-left:auto;background:none;border:1px solid var(--border);
  width:30px;height:30px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;cursor:pointer;color:var(--text-muted);transition:all .15s}
.finding-panel-close:hover{color:var(--infared);border-color:var(--infared)}
.finding-panel-close svg{width:14px;height:14px;stroke:currentColor;stroke-width:2.2;fill:none;stroke-linecap:round}
.finding-panel-body{flex:1;overflow-y:auto;padding:22px 26px 40px;display:flex;flex-direction:column;gap:16px}
.finding-panel-summary{font-size:15px;line-height:1.65;color:var(--text-body)}
.finding-panel-summary strong{color:var(--text-primary);font-weight:600}
.finding-panel-insight-wrap{border-top:1px solid var(--border);padding-top:14px}
.finding-panel-insight-label{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:6px}
.finding-panel-insight{font-size:13.5px;color:var(--text-body);font-style:italic;
  padding:10px 12px;background:var(--bg-warm);border-left:3px solid var(--cobalt,#2C4FFA);border-radius:2px}
.finding-panel-cta{display:inline-flex;align-items:center;gap:8px;margin-top:10px;
  padding:9px 14px;background:var(--cobalt,#2C4FFA);color:var(--white);text-decoration:none;
  border-radius:3px;font-size:13px;font-weight:500;transition:background .15s}
.finding-panel-cta:hover{background:#1a3ae0;color:var(--white)}
.finding-panel-cta svg{width:14px;height:14px;stroke:currentColor;stroke-width:2;fill:none}
[data-theme=dark] .finding-panel{background:var(--bg)}
[data-theme=dark] .finding-panel-header{background:var(--bg-panel)}


/* ── Cross-page synthesis-observation source overlay + compact §X.Y.2 view ── */

/* Single bordered panel containing a 2-column grid of synthesis
   observations. The outer panel carries the border + subtle background;
   items inside are bare flex rows with a hover state. The V2-style
   hover popover on each chip (.obs-ref obs-ref-src) provides abstract,
   finding count, and click-through — no inline duplication. */
/* Panel wrapper carries the border. Inside, a header bar names the source
   sub-report (eyebrow styling + red left accent — same vocabulary as the
   page banner's .hero-eyebrow), and below it sits the borderless 2-col
   grid of OBS rows. */
.synth-obs-panel{margin:24px 0 22px;
  border:1px solid var(--border);border-radius:8px;
  background:var(--bg-panel);overflow:hidden}
[data-theme=dark] .synth-obs-panel{background:rgba(255,255,255,.02)}
.synth-obs-panel-title{display:flex;align-items:center;gap:10px;
  margin:0;padding:11px 16px 11px 14px;
  background:var(--bg);
  border-bottom:1px solid var(--border);
  border-left:3px solid var(--infared)}
.synth-obs-panel-eyebrow{font:500 10.5px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-muted)}
.synth-obs-panel-sep{font:400 11px/1 "Inter",-apple-system,sans-serif;
  color:var(--border);user-select:none}
a.synth-obs-panel-source{display:inline-flex;align-items:center;gap:8px;
  font:600 11.5px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.10em;text-transform:uppercase;
  color:var(--text-primary);text-decoration:none;border-bottom:none;
  transition:color .15s}
a.synth-obs-panel-source:hover{color:var(--cardano-blue);
  text-decoration:none;border-bottom:none}
a.synth-obs-panel-source:hover .synth-obs-panel-arrow{transform:translateX(2px);color:var(--cardano-blue)}
.synth-obs-panel-arrow{font-size:13px;letter-spacing:0;color:var(--text-muted);
  transition:transform .15s,color .15s;display:inline-block}
.synth-obs-compact{list-style:none;margin:0;padding:14px 16px;
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:18px;row-gap:4px;border:0;background:transparent}
.synth-obs-row{border-radius:4px;background:transparent}
/* Row anchor — explicit overrides of the global .obs-ref styling
   (which would otherwise force inline display, red color, dotted border-bottom,
   and a red hover background on the entire row). The whole row is the
   hover target; the popover (V2-style) hydrates from .obs-ref-src. */
a.synth-obs-link.obs-ref,
a.synth-obs-link.obs-ref.obs-ref-src{display:flex;align-items:baseline;gap:10px;
  flex-wrap:nowrap;padding:6px 10px;border-radius:4px;
  text-decoration:none;color:inherit;background:transparent;
  border-bottom:none;cursor:pointer;transition:background .15s}
a.synth-obs-link.obs-ref:hover,
a.synth-obs-link.obs-ref.obs-ref-src:hover{
  background:color-mix(in srgb, var(--cardano-blue) 8%, transparent);
  color:inherit;text-decoration:none;border-bottom:none}
[data-theme=dark] a.synth-obs-link.obs-ref:hover,
[data-theme=dark] a.synth-obs-link.obs-ref.obs-ref-src:hover{
  background:rgba(96,135,233,.12)}
/* Chip — back to the original "ref tag" look (left of title), but kept
   compact so the title still leads visually. */
.synth-obs-canon{display:inline-flex;align-items:center;padding:2px 7px;border-radius:3px;
  background:var(--bg);border:1px solid var(--border);
  font:600 10px/1.4 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.04em;color:var(--cardano-blue);
  flex-shrink:0;transition:background .15s,border-color .15s,color .15s}
.synth-obs-link:hover .synth-obs-canon{background:var(--cardano-blue);
  border-color:var(--cardano-blue);color:#fff}
.synth-obs-title{font:600 13.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.005em;color:var(--text-primary);flex:1 1 auto;min-width:0}
.synth-obs-link:hover .synth-obs-title{color:var(--cardano-blue)}
@media (max-width:760px){
  .synth-obs-compact{grid-template-columns:1fr;column-gap:0;row-gap:2px}
  .synth-obs-panel{padding:18px 14px 12px}
}

/* Cross-page source overlay — the synthesis-observation link shows the source
   sub-report observation's content in the side panel, with a "Jump to source" CTA. */
.obs-ref-src{border-bottom-style:dashed}
.obs-panel-source-xpage{display:flex;align-items:center;gap:6px;
  font:500 11.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);margin-top:2px}
.obs-panel-source-xpage strong{color:var(--text-primary);font-weight:600}

/* Observation abstract — same Cardano-blue rule + gradient pattern
   as \`.sro-card-pro .sro-abstract\` on the main page. Blue is the
   observation chrome lane; red lives in the findings list below. */
.obs-panel-abstract{margin:14px 0 6px;padding:14px 18px;
  border-left:3px solid var(--cardano-blue);
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--cardano-blue) 10%, transparent),
    color-mix(in srgb, var(--cardano-blue) 4%, transparent) 50%,
    transparent 100%);
  font:400 14.5px/1.65 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary);border-radius:0 6px 6px 0;
  letter-spacing:-.005em}
.obs-panel-abstract p{margin:0}
.obs-panel-abstract p + p{margin-top:8px}
.obs-panel-abstract strong{font-weight:700;color:var(--text-primary);
  font-variant-numeric:tabular-nums}

/* Source-panel findings list — hydrated from the bundled findings
   registry. Mirrors the .sro-card-pro finding row layout: red ref
   chip + bigger summary text + small jump arrow. */
.obs-panel-findings-wrap{margin:22px 0 18px}
.obs-panel-findings-head{display:flex;align-items:center;gap:14px;
  margin-bottom:12px}
.obs-panel-findings-label{flex-shrink:0;
  font:600 11px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:2.6px;text-transform:uppercase;color:var(--infared)}
.obs-panel-findings-count{font:500 11px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  color:var(--text-muted);letter-spacing:.04em}
.obs-panel-findings-head::after{content:'';flex:1;height:1px;
  background:color-mix(in srgb, var(--infared) 30%, transparent)}
.obs-panel-findings{list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column}
/* Each finding row mirrors .sro-card-pro .sro-finding — a 2-col
   layout with the badge on the left, body on the right, and the
   nature/insight pill anchored bottom-right of the row. */
.obs-panel-finding{position:relative;
  display:grid;grid-template-columns:96px 1fr;gap:18px;
  padding:16px 16px 52px;
  border-top:1px solid var(--border);background:transparent;
  transition:background .15s}
.obs-panel-finding:first-child{border-top:0}
.obs-panel-finding:hover{background:rgba(229,35,33,.04)}
[data-theme=dark] .obs-panel-finding:hover{background:rgba(255,111,110,.06)}
/* Badge column — clickable when a source href is known. \`#N\`
   prominent in Infared, canonical ref small mono breadcrumb. */
.obs-panel-finding-fid{padding:0;flex-shrink:0;
  align-self:flex-start;margin-top:1px;
  display:inline-flex;flex-direction:column;gap:3px;
  align-items:flex-start;justify-content:center;
  background:transparent;border:0;text-decoration:none;
  color:inherit}
a.obs-panel-finding-fid{cursor:pointer}
.obs-panel-finding-num{
  font:600 14px/1.2 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--infared);letter-spacing:-.005em;
  font-variant-numeric:tabular-nums}
.obs-panel-finding-id{
  font:500 10px/1.2 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  color:var(--text-muted);letter-spacing:.06em;
  padding:0;background:transparent;border:0;border-radius:0}
a.obs-panel-finding-fid:hover .obs-panel-finding-num{color:#a01a18}
a.obs-panel-finding-fid:hover .obs-panel-finding-id{color:var(--text-secondary)}
[data-theme=dark] .obs-panel-finding-num{color:#FF6F6E}
[data-theme=dark] a.obs-panel-finding-fid:hover .obs-panel-finding-num{color:#FF8F8E}
/* Body — evidence/summary text. Same Inter 14.5/1.65 as
   .sro-card-pro .sro-evidence so the rhythm carries from main
   page into the panel. */
.obs-panel-finding-body{min-width:0}
.obs-panel-finding-summary{font:400 14.5px/1.65 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#1a1a1a;letter-spacing:-.005em}
[data-theme=dark] .obs-panel-finding-summary{color:#E4E4E7}
.obs-panel-finding-summary p{margin:0}
.obs-panel-finding-summary p + p{margin-top:6px}
.obs-panel-finding-summary strong{font-weight:700;
  color:#000;font-variant-numeric:tabular-nums}
[data-theme=dark] .obs-panel-finding-summary strong{color:#fff}
/* Insight pill — same GitHub-style category chip as .sro-nature on
   the main page, hue hashed (in JS) from the insight text and
   passed via the inline \`--n-h\` custom property. */
.obs-panel-finding-insight{
  position:absolute;bottom:14px;right:16px;
  font:500 10.5px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.02em;text-transform:none;font-style:normal;
  padding:2px 9px;border-radius:12px;
  background:hsl(var(--n-h,215),65%,94%);
  color:hsl(var(--n-h,215),55%,32%);
  border:1px solid hsl(var(--n-h,215),50%,82%);
  white-space:nowrap;max-width:calc(100% - 80px);
  overflow:hidden;text-overflow:ellipsis}
[data-theme=dark] .obs-panel-finding-insight{
  background:hsl(var(--n-h,215),35%,18%);
  color:hsl(var(--n-h,215),65%,75%);
  border-color:hsl(var(--n-h,215),40%,30%)}
@media (max-width:720px){
  .obs-panel-finding{grid-template-columns:1fr;gap:8px;
    padding:14px 16px}
  .obs-panel-finding-insight{position:static;display:inline-block;
    margin-top:8px;max-width:none}
}
/* Key numbers — bolded at the MD source, tinted and tabular-aligned here so
   they scan as landmarks inside the short finding rows. */
.obs-panel-finding-summary strong,
.obs-panel-summary strong,
.obs-panel-title strong{font-weight:700;color:var(--text-primary);
  font-variant-numeric:tabular-nums}
.obs-panel-finding-insight{margin-top:6px;padding-top:6px;
  border-top:1px dashed var(--border);
  font:400 12px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-secondary);font-style:italic}
.obs-panel-finding-missing{color:var(--text-muted);font-style:italic}
.obs-panel-finding-empty{border-style:dashed;color:var(--text-muted);
  font-style:italic;text-align:center}

/* Sub-report Mainnet Observations — O-grouped finding cards.
   Replaces the flat 4-column MD table with one card per observation.
   The card separates O-level content (header band + abstract) from
   F-level content (numbered finding rows) so the reader can tell the
   structure at a glance. */
.sro-list{list-style:none;padding:0;margin:20px 0 28px;
  display:flex;flex-direction:column;gap:18px}
.sro-card{border:1px solid var(--border);border-radius:10px;
  background:var(--bg);overflow:hidden;
  transition:border-color .15s,box-shadow .15s}
.sro-card:hover{border-color:var(--cardano-blue);
  box-shadow:0 2px 12px rgba(0,51,173,.10)}
.sro-card:target{border-color:var(--cardano-blue);
  box-shadow:0 0 0 3px rgba(0,51,173,.14)}

/* Header band — canonical id on the left, title centred, count on the
   right. Subtle Cardano-blue wash so the O-scope reads as a distinct
   zone from the F-scope finding rows below. */
.sro-head{display:flex;align-items:baseline;gap:12px;
  padding:12px 16px;
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--cardano-blue) 8%, transparent),
    transparent 70%);
  border-bottom:1px solid var(--border)}
.sro-badge{display:inline-flex;align-items:center;flex-shrink:0;
  padding:5px 10px 4px;border-radius:4px;
  background:var(--cardano-blue);color:#fff;
  font:600 11px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.05em;text-decoration:none;
  position:relative;top:1px}
.sro-title{flex:1 1 auto;min-width:0;margin:0;
  font:600 15px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary)}
.sro-title strong{font-weight:700;color:var(--text-primary);
  font-variant-numeric:tabular-nums}
.sro-count{flex-shrink:0;
  font:500 11px/1.2 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.04em;color:var(--cardano-blue);
  padding:3px 8px;border-radius:3px;background:var(--bg-panel);
  border:1px solid color-mix(in srgb, var(--cardano-blue) 30%, var(--border))}

/* Abstract — single editorial lead under the title, matches the
   cross-page overlay's `.obs-panel-abstract` styling so the two read as
   the same artefact. */
.sro-abstract{margin:0;padding:12px 16px 14px;
  border-left:3px solid var(--cardano-blue);
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--cardano-blue) 9%, transparent),
    transparent 60%);
  font:400 13.5px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary)}
.sro-abstract strong{font-weight:700;color:var(--text-primary);
  font-variant-numeric:tabular-nums}

/* Findings list — one row per F#, visually subordinate to the header
   band. Hairline separators; no heavy grid so the reader scans evidence
   first and meta second. */
.sro-findings{list-style:none;margin:0;padding:0;
  display:flex;flex-direction:column}
.sro-finding{display:flex;align-items:flex-start;gap:12px;
  padding:12px 16px;border-top:1px solid var(--border)}
.sro-finding:first-child{border-top:none}
.sro-finding:target{background:color-mix(in srgb, var(--cardano-blue) 6%, transparent)}
.sro-fid{flex-shrink:0;align-self:flex-start;margin-top:2px;
  padding:3px 9px;border-radius:3px;
  background:color-mix(in srgb, var(--cardano-blue) 5%, var(--bg-panel));
  border:1px solid color-mix(in srgb, var(--cardano-blue) 22%, var(--border));
  font:600 10.5px/1.4 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.04em;color:var(--cardano-blue);text-decoration:none}
.sro-body{flex:1 1 auto;min-width:0;
  display:flex;flex-direction:column;gap:6px}
.sro-evidence{font:400 13.5px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary)}
.sro-evidence p{margin:0}
.sro-evidence p + p{margin-top:6px}
.sro-evidence strong{font-weight:700;color:var(--text-primary);
  font-variant-numeric:tabular-nums}
.sro-meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;
  font:400 11.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted)}
.sro-anchor{font-weight:500;color:var(--text-secondary)}
.sro-anchor a{color:inherit;text-decoration:none;
  border-bottom:1px dashed var(--border)}
.sro-anchor a:hover{color:var(--cardano-blue);border-bottom-color:var(--cardano-blue)}
.sro-nature{font-style:italic;color:var(--text-muted)}
.sro-nature::before{content:"· ";color:var(--border);font-style:normal}

/* Per-page Giscus comments block — anchored below the article content,
   above the site footer. Designed to look like an editorial footer note
   rather than a forum widget so it doesn't fight with the report's
   tone. */
.page-feedback{max-width:880px;margin:48px auto 24px;
  padding:28px 28px 8px;
  border-top:1px solid var(--border);
  background:linear-gradient(180deg,
    transparent 0%,
    color-mix(in srgb, var(--infared) 3%, transparent) 100%)}
.page-feedback-heading{margin:0 0 6px;
  font:600 13px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--text-secondary)}
.page-feedback-heading::before{content:"";display:inline-block;
  width:18px;height:1px;background:var(--infared);
  margin-right:8px;vertical-align:middle}
.page-feedback-lede{margin:0 0 18px;
  font:400 13px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted)}
.page-feedback-lede a{color:var(--infared);text-decoration:none;
  border-bottom:1px dashed var(--infared)}
.page-feedback-lede a:hover{border-bottom-style:solid}
.page-feedback .giscus,
.page-feedback .giscus-frame{width:100%;border:none}
.page-feedback .giscus-frame{min-height:200px}

/* L3 — Persistent highlights from localStorage. Yellow-orange tint
   chosen to read as "user-marked" rather than "editorial emphasis"
   (which uses Infrared). */
mark.spo-hl{background:color-mix(in srgb, #FFBA36 35%, transparent);
  color:inherit;padding:0 2px;border-radius:2px;
  box-shadow:inset 0 -2px 0 color-mix(in srgb, #FFBA36 60%, transparent)}

/* L3+L4 — Floating action bar that appears above a text selection.
   Pinned to viewport via fixed positioning, follows the selection's
   bounding rect on scroll. */
.spo-selfab{position:absolute;z-index:1000;
  display:flex;gap:1px;
  background:#1a1a1a;color:#fff;border-radius:6px;
  box-shadow:0 6px 24px rgba(0,0,0,.30);
  font:600 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  user-select:none;overflow:hidden}
.spo-selfab button{display:inline-flex;align-items:center;gap:6px;
  padding:8px 12px;background:transparent;color:#fff;
  border:none;cursor:pointer;
  font:inherit;letter-spacing:.02em}
.spo-selfab button:hover{background:rgba(255,255,255,.10)}
.spo-selfab button + button{border-left:1px solid rgba(255,255,255,.12)}
.spo-selfab button svg{width:12px;height:12px;
  fill:currentColor;stroke:none}
.spo-selfab-flash{background:var(--infared)!important}

/* L5 — Save/Bookmark button alongside the reaction pair. Same pill
   style; 'Saved' state uses Solar Amber tint to differ from the
   Infrared 'Useful' state. */
.spo-bookmark-btn{display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:14px;
  background:var(--bg);border:1px solid var(--border);
  color:var(--text-secondary);cursor:pointer;
  font:600 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.02em;
  transition:color .15s,background .15s,border-color .15s,box-shadow .15s}
.spo-bookmark-btn svg{width:14px;height:14px;
  fill:currentColor;stroke:none}
.spo-bookmark-btn:hover{color:#7d4f00;
  background:color-mix(in srgb, #FFBA36 14%, transparent);
  border-color:#FFBA36;
  box-shadow:0 1px 6px rgba(255,186,54,.25)}
.spo-bookmark-btn.is-active{color:#fff;background:#FFBA36;
  border-color:#FFBA36;font-weight:700;
  box-shadow:0 1px 8px rgba(255,186,54,.40)}

/* L6 — Structured feedback form. Mirrors `.page-feedback` layout so
   form + comments share visual weight in the page footer. */
.page-form{max-width:880px;margin:48px auto 0;padding:28px 28px 20px;
  border-top:1px solid var(--border);
  background:linear-gradient(180deg,
    transparent 0%,
    color-mix(in srgb, var(--infared) 3%, transparent) 100%)}
.page-form-heading{margin:0 0 6px;
  font:600 13px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--text-secondary)}
.page-form-heading::before{content:"";display:inline-block;
  width:18px;height:1px;background:var(--infared);
  margin-right:8px;vertical-align:middle}
.page-form-lede{margin:0 0 18px;
  font:400 13px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted)}
.page-form-form{display:flex;flex-direction:column;gap:14px}
.page-form-label{display:flex;flex-direction:column;gap:6px;
  font:600 12px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-secondary)}
.page-form-label small{font-weight:400;color:var(--text-muted)}
.page-form-form textarea,
.page-form-form input{padding:8px 10px;border:1px solid var(--border);
  border-radius:6px;background:var(--bg);color:var(--text-primary);
  font:400 13.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  resize:vertical}
.page-form-form textarea:focus,
.page-form-form input:focus{outline:none;border-color:var(--infared);
  box-shadow:0 0 0 3px rgba(229,35,33,.12)}
.page-form-submit{align-self:flex-start;
  padding:8px 18px;border-radius:6px;
  background:var(--infared);color:#fff;border:none;cursor:pointer;
  font:600 13px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  transition:background .15s}
.page-form-submit:hover{background:#c01b19}
.page-form-submit:disabled{opacity:.6;cursor:not-allowed}
.page-form-status{margin:0;
  font:400 12.5px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);min-height:1em}
.page-form-status.is-ok{color:#067d4a}
.page-form-status.is-err{color:var(--infared)}

/* L7 — Q&A inline. The "Ask the authors" button sits in the finding's
   meta row; the composer + answers cascade below the row when opened. */
.spo-qa-host{flex:0 0 100%;margin-top:8px;display:flex;flex-direction:column;gap:10px}
.spo-qa-open{align-self:flex-start;
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:14px;
  background:transparent;border:1px dashed var(--border);
  color:var(--text-muted);cursor:pointer;
  font:600 11.5px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.02em;transition:color .15s,border-color .15s,background .15s}
.spo-qa-open svg{width:13px;height:13px;fill:currentColor;stroke:none}
.spo-qa-open:hover{color:var(--infared);border-color:var(--infared);
  background:color-mix(in srgb, var(--infared) 6%, transparent)}
.spo-qa-form{display:flex;flex-direction:column;gap:8px;
  padding:12px 14px;border:1px solid var(--border);border-radius:8px;
  background:var(--bg-panel)}
.spo-qa-form label{display:flex;flex-direction:column;gap:4px;
  font:600 11.5px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-secondary)}
.spo-qa-form small{font-weight:400;color:var(--text-muted)}
.spo-qa-form textarea,
.spo-qa-form input{padding:6px 10px;border:1px solid var(--border);
  border-radius:5px;background:var(--bg);color:var(--text-primary);
  font:400 13px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  resize:vertical}
.spo-qa-actions{display:flex;justify-content:flex-end;gap:8px}
.spo-qa-cancel,.spo-qa-submit{
  padding:6px 14px;border-radius:5px;border:none;cursor:pointer;
  font:600 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.spo-qa-cancel{background:transparent;color:var(--text-muted);
  border:1px solid var(--border)}
.spo-qa-submit{background:var(--infared);color:#fff}
.spo-qa-submit:disabled{opacity:.6;cursor:not-allowed}
.spo-qa-status{margin:0;font:400 12px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted)}
.spo-qa-status.is-ok{color:#067d4a}
.spo-qa-status.is-err{color:var(--infared)}
.spo-qa-answers{padding:10px 14px;border-left:3px solid var(--infared);
  background:color-mix(in srgb, var(--infared) 4%, transparent);
  border-radius:0 6px 6px 0}
.spo-qa-answers h4{margin:0 0 8px;font:700 11px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.06em;text-transform:uppercase;color:var(--infared)}
.spo-qa-answer{padding:6px 0}
.spo-qa-answer + .spo-qa-answer{border-top:1px dashed var(--border);margin-top:6px}
.spo-qa-answer-meta{font:600 11px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted)}
.spo-qa-answer-body{margin-top:4px;font:400 13px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary)}

/* L5 — Bookmarks page (my-bookmarks.html). Card-grouped by source page. */
.bookmarks-page{max-width:880px;margin:24px auto 48px}
.bookmarks-lede{font:400 14px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);margin:0 0 20px}
.bookmarks-empty{padding:40px 20px;border:1px dashed var(--border);
  border-radius:8px;text-align:center;color:var(--text-muted);
  font-style:italic}
.bookmarks-group{margin-bottom:20px;border:1px solid var(--border);
  border-radius:8px;overflow:hidden;background:var(--bg)}
.bookmarks-group h2{margin:0;padding:10px 14px;
  font:600 12px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.05em;text-transform:uppercase;color:var(--text-secondary);
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--infared) 6%, transparent),
    transparent 70%);
  border-bottom:1px solid var(--border)}
.bookmarks-group ul{list-style:none;margin:0;padding:0}
.bookmarks-group li{border-top:1px solid var(--border)}
.bookmarks-group li:first-child{border-top:none}
.bookmarks-group li a{display:flex;gap:12px;align-items:flex-start;
  padding:10px 14px;text-decoration:none;color:inherit;
  transition:background .15s}
.bookmarks-group li a:hover{background:var(--bg-panel)}
.bk-fid{flex-shrink:0;padding:3px 9px;border-radius:3px;
  background:var(--bg-panel);border:1px solid var(--border);
  font:600 10.5px/1.4 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  color:var(--infared);letter-spacing:.04em}
.bk-text{font:400 13.5px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary)}
.bookmarks-actions{display:flex;gap:10px;justify-content:flex-end;
  margin-top:12px}
.bookmarks-clear,.bookmarks-export{padding:7px 14px;border-radius:6px;
  font:600 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;border:1px solid var(--border);
  background:var(--bg);color:var(--text-secondary);transition:all .15s}
.bookmarks-export:hover{border-color:#FFBA36;color:#7d4f00;
  background:color-mix(in srgb, #FFBA36 12%, transparent)}
.bookmarks-clear:hover{border-color:var(--infared);color:var(--infared);
  background:color-mix(in srgb, var(--infared) 8%, transparent)}

/* Responsive */
@media (max-width:720px){
  a.synth-obs-link.obs-ref,
  a.synth-obs-link.obs-ref.obs-ref-src{padding:10px 12px;gap:8px}
  .sro-head{flex-wrap:wrap;gap:8px;padding:10px 12px}
  .sro-title{flex:1 1 100%;order:3}
  .sro-count{order:2}
  .sro-abstract{padding:10px 12px 12px}
  .sro-finding{padding:10px 12px;gap:10px}
  .page-feedback{margin:32px 16px 16px;padding:20px 18px 6px}
  .page-form{margin:32px 16px 0;padding:20px 18px 16px}
  .spo-selfab button{padding:8px 10px}
  .spo-selfab button span{display:none}
  .bookmarks-page{margin:16px}
}

/* sro-card "pro" variant — observation header redesigned to match the
   "Source on GitHub" card pattern: gradient band + dedicated badge zone,
   eyebrow line above the title, refined count chip on the right. The
   abstract panel becomes a tinted bordered box, mirroring the GitHub
   path-row. Applied via .sro-card-pro modifier on the first card only
   (A/B test). */
.sro-card.sro-card-pro{border:1px solid var(--border);border-radius:12px;
  background:var(--bg);overflow:hidden;
  box-shadow:0 1px 3px rgba(0,51,173,.04);
  margin:42px 0;
  transition:border-color .15s,box-shadow .15s;
  position:relative}
/* Visible breathing room between Pro cards and surrounding prose.
   When a card sits next to body paragraphs (CIP-evaluation pages,
   Observatory) the previous tight ``margin:0`` made the card feel
   like a continuation of the paragraph above it. The 42px margin
   gives the card air; a 1px hairline rule above and below the card
   marks the boundary explicitly so the prose doesn't run into it. */
.sro-card.sro-card-pro::before,
.sro-card.sro-card-pro::after{
  content:"";position:absolute;left:14%;right:14%;
  height:1px;background:var(--border);opacity:.7}
.sro-card.sro-card-pro::before{top:-22px}
.sro-card.sro-card-pro::after{bottom:-22px}
/* Suppress the rules when cards stack consecutively (the synthesis
   page's evidence tree, mainnet observation lists) — there the
   cards are siblings and a divider would clutter rather than help. */
.sro-list .sro-card.sro-card-pro,
.finding-card-evidence-tree .sro-card.sro-card-pro{
  margin:0}
.sro-list .sro-card.sro-card-pro::before,
.sro-list .sro-card.sro-card-pro::after,
.finding-card-evidence-tree .sro-card.sro-card-pro::before,
.finding-card-evidence-tree .sro-card.sro-card-pro::after{
  display:none}
.sro-card.sro-card-pro:hover{
  border-color:color-mix(in srgb, var(--cardano-blue) 35%, var(--border));
  box-shadow:0 2px 14px rgba(0,51,173,.08)}
.sro-card.sro-card-pro:target{
  border-color:var(--cardano-blue);
  box-shadow:0 0 0 3px rgba(0,51,173,.14)}

.sro-card-pro .sro-head{display:flex;align-items:center;gap:14px;
  padding:16px 20px 14px;
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--cardano-blue) 10%, transparent) 0%,
    color-mix(in srgb, var(--cardano-blue) 4%, transparent) 50%,
    transparent 100%);
  border-bottom:0}
.sro-card-pro .sro-badge{display:inline-flex;align-items:center;flex-shrink:0;
  padding:6px 12px 5px;border-radius:5px;
  background:var(--cardano-blue);color:#fff;
  font:600 12px/1 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.06em;text-decoration:none;
  box-shadow:0 1px 3px rgba(0,51,173,.25);
  position:relative;top:0}
.sro-card-pro .sro-titles{flex:1 1 auto;min-width:0;display:flex;
  flex-direction:column;gap:3px}
.sro-card-pro .sro-eyebrow{font:600 10px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.sro-card-pro .sro-title{font:600 19px/1.35 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-.005em;
  color:var(--text-primary);margin:0}
.sro-card-pro .sro-count{flex-shrink:0;
  display:inline-flex;align-items:center;
  padding:6px 14px;border-radius:5px;
  background:#fff;
  border:1px solid color-mix(in srgb, var(--infared) 35%, var(--border));
  font:600 12px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.02em;color:var(--infared);
  box-shadow:0 1px 2px rgba(229,35,33,.06)}
[data-theme=dark] .sro-card-pro .sro-count{
  background:color-mix(in srgb, var(--infared) 10%, var(--bg));
  color:#FF6F6E}

/* Abstract + findings — same Cardano-blue rule + gradient on both
   zones so alignment is guaranteed (single colour, single mechanism).
   Pseudo-elements at left:0 of each parent always sit at x=0 of the
   article — no border-left subtleties. */
.sro-card-pro .sro-abstract{position:relative;margin:0;
  padding:14px 20px 16px 23px;
  border-left:0;border-bottom:0;
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--cardano-blue) 10%, transparent) 0%,
    color-mix(in srgb, var(--cardano-blue) 4%, transparent) 50%,
    transparent 100%);
  font:400 13px/1.6 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary)}
.sro-card-pro .sro-abstract::before{content:'';position:absolute;
  left:0;top:0;bottom:0;width:3px;
  background:var(--cardano-blue);pointer-events:none}
.sro-card-pro .sro-abstract strong{font-weight:700;color:var(--text-primary);
  font-variant-numeric:tabular-nums}

/* "Findings" eyebrow — Infared red label introducing the list. */
.sro-findings-label{margin:20px 22px 10px;
  font:600 11px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:2.6px;text-transform:uppercase;color:var(--infared);
  display:flex;align-items:center;gap:12px}
.sro-findings-label::after{content:'';flex:1;height:1px;
  background:color-mix(in srgb, var(--infared) 35%, transparent)}
[data-theme=dark] .sro-findings-label{color:#FF6F6E}
[data-theme=dark] .sro-findings-label::after{
  background:color-mix(in srgb, #FF6F6E 35%, transparent)}

/* Card-level collapse — clicking the observation header
   (.sro-head) folds the FINDINGS list (label + items). The
   abstract paragraph stays visible so the reader keeps the
   one-line summary even when the detail is folded. State
   persists per-card via localStorage. */
.sro-card-pro .sro-head{cursor:pointer;user-select:none;
  -webkit-tap-highlight-color:transparent;
  transition:background .15s}
.sro-card-pro .sro-head:hover{
  background:color-mix(in srgb, var(--cardano-blue) 4%, transparent)}
/* Chevron lives INSIDE the count chip (e.g. '8 findings ▾'), so it
   reads as 'this chip toggles the list'. Rotates to -90deg when
   collapsed. */
.sro-card-pro .sro-count::after{content:'▾';flex-shrink:0;
  font-size:11px;line-height:1;
  margin-left:8px;opacity:.7;
  transition:transform .2s ease,opacity .15s}
.sro-card-pro .sro-head:hover .sro-count::after{opacity:1}
.sro-card-pro.collapsed .sro-count::after{transform:rotate(-90deg)}
/* When the card is collapsed, hide the FINDINGS eyebrow + the list
   only. The abstract paragraph stays visible. */
.sro-card-pro.collapsed > .sro-findings-label,
.sro-card-pro.collapsed > .sro-findings{
  display:none}

/* Synthesis page only — when an observation card sits inside the
   evidence tree of a problem-statement card, fold the abstract too
   when the card is collapsed. The synthesis page is meant to scan
   as a list of observation titles; the abstract belongs to the
   expanded view. Sub-report pages (treasury / pools / operator /
   census / observatory) where the abstract IS the card's primary
   purpose are untouched. */
.findings-page .finding-card-evidence-tree
  .sro-card-pro.collapsed > .sro-abstract{
  display:none}

/* Findings list — clean rows on the card surface. The whole row
   theme switches to Infared red (the evidence belongs to the IOG
   accent lane), distinct from the Cardano-blue observation chrome
   above. No decorative left rail or per-row gradient. */
.sro-card-pro .sro-findings{position:relative;padding:0;border-left:0}
.sro-card-pro .sro-finding{padding:16px 22px 52px;gap:18px;
  border-top:1px solid var(--border);background:transparent;
  transition:background .15s}
.sro-card-pro .sro-finding:first-child{border-top:0}
.sro-card-pro .sro-finding:hover{
  background:rgba(229,35,33,.04)}
.sro-card-pro .sro-finding:target{
  background:rgba(229,35,33,.08)}
[data-theme=dark] .sro-card-pro .sro-finding:hover{background:rgba(255,111,110,.06)}
[data-theme=dark] .sro-card-pro .sro-finding:target{background:rgba(255,111,110,.12)}

/* F# badge — two-line stack and the row's jump-to-source link.
   Clicking #N or CEN.O1.FN navigates to the source section — no
   need for a separate '§3.5 — ...' link in the meta row. The whole
   stack renders inside a single <a>, so the click target is the
   full column. \`#N\` is the prominent ordinal in Infared (the
   row's accent); \`CEN.O1.FN\` is the small mono breadcrumb in
   muted grey for citation. */
a.sro-fid,.sro-card-pro a.sro-fid{padding:0;flex-shrink:0;
  align-self:flex-start;margin-top:1px;
  min-width:96px;
  display:inline-flex;flex-direction:column;gap:3px;
  align-items:flex-start;justify-content:center;
  background:transparent;border:0;border-bottom:0;text-decoration:none;
  cursor:pointer}
.sro-card-pro .sro-fid{padding:0;flex-shrink:0;
  align-self:flex-start;margin-top:1px;
  min-width:96px;
  display:inline-flex;flex-direction:column;gap:3px;
  align-items:flex-start;justify-content:center;
  background:transparent;border:0;text-decoration:none}
.sro-card-pro .sro-fid-label{
  font:600 14px/1.2 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--infared);letter-spacing:-.005em;
  font-variant-numeric:tabular-nums}

/* Inline evidence tables — when a finding row needs a small reference
   table (e.g. ROS-responsive segments in cip-0082 §B.3), the MD
   pipe-table syntax doesn't survive the surrounding ``markdown="1"``
   wrappers reliably, so authors emit the table as raw HTML with this
   class. Tight typography matches the Infared finding lane around it. */
.sro-card-pro .sro-evidence-table{
  width:100%;border-collapse:collapse;margin:10px 0 12px;
  font-size:12.5px;line-height:1.5;
  background:rgba(229,35,33,.025);
  border:1px solid rgba(229,35,33,.18);
  border-radius:6px;
  overflow:hidden}
.sro-card-pro .sro-evidence-table th{
  font:600 10px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  text-transform:uppercase;letter-spacing:.06em;
  text-align:left;padding:8px 10px 6px;
  color:var(--text-muted);
  background:rgba(229,35,33,.06);
  border-bottom:1px solid rgba(229,35,33,.18);
  vertical-align:bottom}
.sro-card-pro .sro-evidence-table td{
  padding:7px 10px;
  border-top:1px solid rgba(229,35,33,.10);
  color:var(--text-body);vertical-align:top}
.sro-card-pro .sro-evidence-table tbody tr:first-child td{
  border-top:0}
.sro-card-pro .sro-evidence-table strong{
  color:var(--text-primary);font-weight:600}
.sro-card-pro .sro-fid-ref{
  font:500 10px/1.2 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  color:var(--text-muted);letter-spacing:.06em}
.sro-card-pro .sro-finding:hover .sro-fid-label{color:#a01a18}
.sro-card-pro .sro-finding:hover .sro-fid-ref{color:var(--text-secondary)}
[data-theme=dark] .sro-card-pro .sro-fid-label{color:#FF6F6E}
[data-theme=dark] .sro-card-pro .sro-finding:hover .sro-fid-label{color:#FF8F8E}

/* Evidence text — body of the row. Sits BELOW the observation
   title in the visual hierarchy (title 19px → evidence 14.5px),
   not above. Numbers/named entities keep tabular-nums for
   vertical alignment when the eye scans down the column. */
.sro-card-pro .sro-evidence{
  font:400 14.5px/1.6 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#1a1a1a;letter-spacing:-.005em}
[data-theme=dark] .sro-card-pro .sro-evidence{color:#E4E4E7}
.sro-card-pro .sro-evidence strong{font-weight:700;
  color:#000;font-variant-numeric:tabular-nums}
[data-theme=dark] .sro-card-pro .sro-evidence strong{color:#fff}
/* Inline metric chips (e.g. '950 pools', '1M ADA') inside the Pro
   row scope — switch to the red accent so they belong to the row's
   theme rather than the global Cardano-blue rule. */
.sro-card-pro .sro-evidence .metric{
  background:rgba(229,35,33,.06);
  border-bottom:1px dotted rgba(229,35,33,.35);color:#1a1a1a}
[data-theme=dark] .sro-card-pro .sro-evidence .metric{
  background:rgba(255,111,110,.10);
  border-bottom-color:rgba(255,111,110,.40);color:#E4E4E7}

/* Nature tag — GitHub-style label, BOTTOM-RIGHT of the finding row.
   Hue comes from the inline \`--n-h\` custom property (hashed from
   the nature text in Python) so 'Structural threshold' always
   renders one colour, 'Concentration — supply side' another, etc.
   The reader learns categories visually after a few rows.
   Row carries 38px of bottom padding so the label has its own
   zone — never overlaps the evidence text, regardless of length. */
.sro-card-pro{position:relative}
.sro-card-pro .sro-finding{position:relative}
.sro-card-pro .sro-nature{
  position:absolute;bottom:12px;right:18px;
  font:500 10.5px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.02em;text-transform:none;font-style:normal;
  padding:2px 9px;border-radius:12px;
  background:hsl(var(--n-h,215),65%,94%);
  color:hsl(var(--n-h,215),55%,32%);
  border:1px solid hsl(var(--n-h,215),50%,82%);
  white-space:nowrap;max-width:280px;overflow:hidden;text-overflow:ellipsis}
.sro-card-pro .sro-nature::before{content:none}
[data-theme=dark] .sro-card-pro .sro-nature{
  background:hsl(var(--n-h,215),35%,18%);
  color:hsl(var(--n-h,215),65%,75%);
  border-color:hsl(var(--n-h,215),40%,30%)}
@media (max-width:720px){
  .sro-card-pro .sro-finding{padding-bottom:16px}
  .sro-card-pro .sro-nature{position:static;display:inline-block;
    margin-top:8px;max-width:none}
}

/* Save (.spo-bookmark-btn) is retired — hide if any cached buttons
   linger from previously rendered pages. */
.spo-bookmark-btn{display:none!important}

@media (max-width:640px){
  .sro-card-pro .sro-head{flex-wrap:wrap;gap:10px;padding:12px 14px}
  .sro-card-pro .sro-titles{flex:1 1 100%;order:1}
  .sro-card-pro .sro-badge{order:0}
  .sro-card-pro .sro-count{order:2;margin-left:auto}
  .sro-card-pro .sro-abstract{margin:12px 14px 0}
  .sro-card-pro .sro-findings{padding:4px 6px 10px}
}

/* "Source on GitHub" — professional end-of-article card.
   Two zones: header band (icon + titles + CTA button) and body
   (clickable repo path + meta). The Reproduction section is stripped
   from the website rendering; this card is the escape hatch for readers
   who actually want shell commands and data deps. */
.page-source{display:block;margin:48px 0 8px;
  border:1px solid var(--border);border-radius:10px;background:var(--bg);
  overflow:hidden;
  box-shadow:0 1px 3px rgba(0,51,173,.04);
  transition:border-color .15s,box-shadow .15s}
.page-source:hover{border-color:color-mix(in srgb, var(--cardano-blue) 35%, var(--border));
  box-shadow:0 2px 12px rgba(0,51,173,.08)}
.page-source-head{display:flex;align-items:center;gap:14px;
  padding:14px 18px;
  background:linear-gradient(90deg,
    color-mix(in srgb, var(--cardano-blue) 8%, transparent),
    color-mix(in srgb, var(--cardano-blue) 3%, transparent) 60%,
    transparent 100%);
  border-bottom:1px solid var(--border)}
.page-source-icon{width:22px;height:22px;flex-shrink:0;
  color:var(--cardano-blue)}
.page-source-titles{flex:1 1 auto;min-width:0;display:flex;
  flex-direction:column;gap:2px}
.page-source-eyebrow{font:600 10px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.page-source-title{font:600 14.5px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary)}
.page-source .page-source-cta{display:inline-flex;align-items:center;gap:8px;
  flex-shrink:0;padding:9px 20px;border-radius:5px;
  background:var(--cardano-blue);color:#fff;text-decoration:none;
  border:0;border-bottom:0;white-space:nowrap;
  font:600 12.5px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.03em;
  box-shadow:0 1px 4px rgba(0,51,173,.25);
  transition:background .15s,box-shadow .15s,transform .15s}
.page-source .page-source-cta:hover{background:#0a1f8e;color:#fff;
  border-bottom:0;
  box-shadow:0 2px 8px rgba(0,51,173,.4);
  transform:translateY(-1px)}
.page-source .page-source-cta span{color:#fff}
.page-source .page-source-cta .page-source-ext{font-size:14px;line-height:1;opacity:.95}
.page-source-body{padding:14px 18px 16px}
.page-source .page-source-path{display:flex;align-items:center;gap:8px;
  padding:8px 12px;border:1px solid var(--border);border-radius:6px;
  background:var(--bg-panel);text-decoration:none;border-bottom:1px solid var(--border);
  transition:border-color .15s,background .15s}
.page-source .page-source-path:hover{border-color:color-mix(in srgb, var(--cardano-blue) 50%, var(--border));
  background:color-mix(in srgb, var(--cardano-blue) 4%, var(--bg-panel))}
.page-source-path-icon{width:14px;height:14px;flex-shrink:0;
  color:var(--text-muted)}
.page-source-path:hover .page-source-path-icon{color:var(--cardano-blue)}
.page-source-repo{font:500 12px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-secondary);flex-shrink:0}
.page-source-sep{color:var(--text-muted);opacity:.5;flex-shrink:0;font-size:13px}
.page-source .page-source-pathtext{font:500 12px/1.4 "JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
  background:transparent;padding:0;border:0;color:var(--text-primary);
  word-break:break-all;min-width:0}
.page-source-meta{margin:10px 0 0;
  font:400 12.5px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted)}
[data-theme=dark] .page-source{background:var(--bg)}
[data-theme=dark] .page-source-head{
  background:linear-gradient(90deg,
    rgba(0,51,173,.18),
    rgba(0,51,173,.06) 60%,
    transparent 100%)}
[data-theme=dark] .page-source-cta{background:#3a5dff;
  box-shadow:0 1px 4px rgba(0,0,0,.4)}
[data-theme=dark] .page-source-cta:hover{background:#5778ff}
@media (max-width:640px){
  .page-source{margin:32px 0 4px}
  .page-source-head{flex-wrap:wrap;gap:10px;padding:12px 14px}
  .page-source-titles{flex:1 1 100%;order:1}
  .page-source-icon{order:0}
  .page-source-cta{order:2;width:100%;justify-content:center;padding:9px 14px}
  .page-source-body{padding:12px 14px 14px}
  .page-source-path{flex-wrap:wrap}
}
@media print{.page-source{display:none}}

/* ── /Cross-page synthesis-observation source overlay + compact §X.Y.2 view ── */
/* ── Candidate cards (solution-evaluation §2 layer listings) ───────── */
.cand-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin:14px 0;
}
.cand-grid > .cand-card{margin:0}
@media (max-width:720px){
  .cand-grid{grid-template-columns:1fr}
}
.cand-card{
  display:block;
  border:1px solid rgba(0,51,173,.18);
  border-radius:8px;
  padding:14px 18px 14px 22px;
  margin:14px 0;
  background:linear-gradient(135deg,
    rgba(0,51,173,.11) 0%,
    rgba(0,51,173,.05) 45%,
    rgba(0,51,173,.01) 100%);
  position:relative;
  transition:border-color .18s,box-shadow .18s,background .18s;
}
.cand-card:hover{
  border-color:rgba(0,51,173,.42);
  box-shadow:0 2px 10px rgba(0,51,173,.12);
  background:linear-gradient(135deg,
    rgba(0,51,173,.16) 0%,
    rgba(0,51,173,.07) 45%,
    rgba(0,51,173,.02) 100%);
}
[data-theme=dark] .cand-card{
  border-color:rgba(31,91,198,.32);
  background:linear-gradient(135deg,
    rgba(31,91,198,.22) 0%,
    rgba(31,91,198,.10) 45%,
    rgba(31,91,198,.03) 100%);
}
[data-theme=dark] .cand-card:hover{
  border-color:rgba(31,91,198,.55);
  background:linear-gradient(135deg,
    rgba(31,91,198,.30) 0%,
    rgba(31,91,198,.14) 45%,
    rgba(31,91,198,.05) 100%);
}
.cand-card::before{
  content:"";
  position:absolute;left:0;top:14px;bottom:14px;width:4px;
  background:linear-gradient(180deg,var(--cardano-blue) 0%,var(--cardano-blue-2) 100%);
  border-radius:2px;
}
.cand-card-title{
  display:block;
  margin:0 0 6px;
  font:600 15px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.15px;
  color:var(--cardano-blue) !important;
  text-decoration:none !important;
}
.cand-card-title:hover{text-decoration:underline !important}
[data-theme=dark] .cand-card-title{color:var(--cardano-blue-2) !important}
.cand-card-body{
  margin:0 0 10px;
  font:400 13.5px/1.55 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-body);
}
.cand-card-body code{
  font-size:12.5px;
  background:var(--bg-code);
  padding:1px 5px;
  border-radius:3px;
}
.cand-card-source{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:0;
  font:400 12px/1.4 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-muted);
}
.cand-card-source-label{
  display:inline-block;
  font:600 9.5px/1 -apple-system,sans-serif;
  letter-spacing:.6px;
  color:var(--text-secondary);
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:3px;
  padding:3px 6px;
  text-transform:uppercase;
}
.cand-card-source a{color:var(--text-secondary) !important;text-decoration:none !important}
.cand-card-source a:hover{color:var(--infared) !important;text-decoration:underline !important}

/* ── Landing-page video placeholder card ─────────────────────────── */
.intro-video-card{margin:28px 0 32px}
.intro-video-card-frame{
  display:flex;
  align-items:center;
  gap:20px;
  padding:24px 28px;
  border:1px solid rgba(0,51,173,.22);
  border-radius:12px;
  background:linear-gradient(135deg,
    rgba(0,51,173,.08) 0%,
    rgba(0,51,173,.03) 50%,
    rgba(0,51,173,.005) 100%);
  position:relative;
}
.intro-video-card-frame::before{
  content:"";
  position:absolute;left:0;top:18px;bottom:18px;width:4px;
  background:linear-gradient(180deg,var(--cardano-blue) 0%,var(--cardano-blue-2) 100%);
  border-radius:2px;
}
[data-theme=dark] .intro-video-card-frame{
  border-color:rgba(31,91,198,.36);
  background:linear-gradient(135deg,
    rgba(31,91,198,.18) 0%,
    rgba(31,91,198,.08) 50%,
    rgba(31,91,198,.02) 100%);
}
.intro-video-card-icon{
  flex:0 0 56px;
  width:56px;height:56px;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:600;
  color:#fff;
  background:linear-gradient(135deg,var(--cardano-blue) 0%,var(--cardano-blue-2) 100%);
  border-radius:50%;
  padding-left:4px;
  box-shadow:0 2px 8px rgba(0,51,173,.20);
}
.intro-video-card-text{flex:1 1 auto;min-width:0}
.intro-video-card-label{
  font:600 15.5px/1.3 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:-.15px;
  color:var(--cardano-blue);
  margin-bottom:4px;
}
[data-theme=dark] .intro-video-card-label{color:var(--cardano-blue-2)}
.intro-video-card-sub{
  font:400 13px/1.55 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-body);
}
@media (max-width:640px){
  .intro-video-card-frame{flex-direction:column;align-items:flex-start;padding:20px}
  .intro-video-card-icon{margin-bottom:4px}
}

/* ── Landing-page package sections — strategic-direction blocks ─── */
.content h3:has(+ blockquote){
  margin-bottom:6px;
}
.content h3 + blockquote{
  margin:0 0 18px;
  padding:8px 14px;
  border-left:3px solid var(--cardano-blue);
  background:rgba(0,51,173,.05);
  border-radius:0 6px 6px 0;
  font-size:12.5px;
  line-height:1.45;
  color:var(--text-secondary);
}
.content h3 + blockquote em,
.content h3 + blockquote i{
  font-style:normal;
  color:var(--text-body);
}
.content h3 + blockquote strong{
  display:inline-block;
  font:600 9.5px/1 -apple-system,sans-serif;
  letter-spacing:.6px;
  color:var(--cardano-blue);
  text-transform:uppercase;
  margin-right:8px;
  vertical-align:1px;
}
[data-theme=dark] .content h3 + blockquote{
  background:rgba(31,91,198,.12);
  border-left-color:var(--cardano-blue-2);
  color:var(--text-body);
}
[data-theme=dark] .content h3 + blockquote strong{color:var(--cardano-blue-2)}

/* ── Inline brand marks in landing-page prose ────────────────────────
   Need higher specificity than `.content img` to override the default
   block / max-width / border / margin / cursor / hover rules above. */
.content img.iog-logo-inline,
.content img.cardano-logo-inline{
  display:inline-block;
  max-width:none;
  width:auto;
  margin:0;
  padding:0;
  border:none;
  border-radius:0;
  box-shadow:none;
  cursor:default;
  transition:none;
}
.content img.iog-logo-inline:hover,
.content img.cardano-logo-inline:hover{box-shadow:none;transform:none}

.content img.iog-logo-inline{
  height:16px;
  vertical-align:-3px;
  margin:0 2px 0 6px;
  filter:invert(1) brightness(0);
  opacity:.85;
}
[data-theme=dark] .content img.iog-logo-inline{filter:none;opacity:1}

.content img.cardano-logo-inline{
  height:18px;
  vertical-align:-4px;
  margin:0 4px 0 2px;
  filter:invert(1) brightness(0);
  opacity:.9;
}
[data-theme=dark] .content img.cardano-logo-inline{filter:none;opacity:1}

/* ── Problem-statements carousel mode — one card at a time ── */
.findings-list--carousel{position:relative;gap:0}
.findings-list--carousel .findings-group-head{display:none}
.findings-list--carousel .findings-group{gap:0;margin:0;padding:0}
.findings-list--carousel .findings-group:not(:has(.finding-card.is-active)){display:none}
.findings-list--carousel .findings-group-cards{display:block;gap:0;margin:0;padding:0}
.findings-list--carousel .finding-card{display:none}
.findings-list--carousel .finding-card.is-active{display:block;margin:0}

.findings-carousel-nav{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  margin:18px 0 10px;padding:10px 14px;
  border-radius:10px;background:rgba(0,0,0,.025);
  border:1px solid rgba(0,0,0,.08);
}
.findings-carousel-nav.findings-carousel-nav-bottom{margin:14px 0 0}

/* ── Per-card "Discuss on GitHub" CTA (top-right of the blue banner) ── */
.finding-card-banner.has-discuss{padding-right:160px}
.finding-card-discuss{
  position:absolute;top:18px;right:20px;z-index:2;
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:8px;
  background:#fff;color:var(--cardano-blue,#0033AD);
  border:1px solid rgba(255,255,255,.95);
  font:600 13px/1.1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.01em;text-decoration:none;
  box-shadow:0 4px 14px rgba(0,0,0,.18);
  transition:background .15s,color .15s,transform .12s,box-shadow .15s;
}
.finding-card-discuss:hover{
  background:#E52321;color:#fff;border-color:#E52321;
  box-shadow:0 6px 18px rgba(229,35,33,.42);
  transform:translateY(-1px);
}
.finding-card-discuss:active{transform:translateY(0)}
.finding-card-discuss-icon{
  width:18px;height:18px;flex-shrink:0;
}
.finding-card-discuss-text{white-space:nowrap}
.finding-card-discuss-arrow{
  font-size:13px;line-height:1;opacity:.85;margin-left:1px;
}
[data-theme=dark] .finding-card-discuss{background:#fff;color:var(--cardano-blue,#0033AD);border-color:#fff}
[data-theme=dark] .finding-card-discuss:hover{background:#E52321;color:#fff;border-color:#E52321}

@media(max-width:640px){
  .finding-card-banner.has-discuss{padding-right:26px;padding-bottom:60px}
  .finding-card-discuss{
    top:auto;bottom:14px;right:18px;
    padding:8px 12px;font-size:12px;
  }
  .finding-card-discuss-icon{width:16px;height:16px}
}
[data-theme=dark] .findings-carousel-nav{background:rgba(255,255,255,.025);border-color:rgba(255,255,255,.08)}
.findings-carousel-meta{
  display:flex;flex-direction:column;align-items:center;gap:3px;
  text-align:center;flex:1 1 auto;min-width:0;
}
.findings-carousel-group{
  font:600 10.5px/1.1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);
}
.findings-carousel-counter{
  font:600 13px/1 'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.04em;color:var(--text-secondary);
}
.findings-carousel-counter strong{color:var(--text-primary);font-size:14px}
.findings-carousel-counter .findings-carousel-counter-id{color:#E52321;margin-right:6px}
.findings-carousel-btn{
  appearance:none;background:transparent;
  border:1px solid rgba(0,0,0,.14);border-radius:6px;
  padding:7px 12px;
  font:600 12px/1 'Inter',-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text-primary);cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;
  transition:background .15s,border-color .15s,color .15s,transform .12s;
  flex:0 0 auto;
}
.findings-carousel-btn:hover:not(:disabled){
  background:rgba(229,35,33,.08);border-color:rgba(229,35,33,.45);color:#E52321;
}
.findings-carousel-btn:active:not(:disabled){transform:translateY(1px)}
.findings-carousel-btn:disabled{opacity:.35;cursor:default}
[data-theme=dark] .findings-carousel-btn{border-color:rgba(255,255,255,.18)}
[data-theme=dark] .findings-carousel-btn:hover:not(:disabled){background:rgba(229,35,33,.16);color:#FF6B6A}
.findings-carousel-arrow{font-size:14px;line-height:1}

.findings-toc-item.is-active{
  background:rgba(229,35,33,.1);color:#E52321;
}
.findings-toc-item.is-active .findings-toc-num{color:#E52321}
[data-theme=dark] .findings-toc-item.is-active{background:rgba(229,35,33,.18);color:#FF6B6A}
[data-theme=dark] .findings-toc-item.is-active .findings-toc-num{color:#FF6B6A}

@media(max-width:640px){
  .findings-carousel-nav{flex-wrap:wrap;gap:8px}
  .findings-carousel-meta{flex-basis:100%;order:-1}
  .findings-carousel-btn{flex:1 1 0}
}

/* ── Inline red-flag emphasis (Infared brand red + flag glyph) ── */
.red-flag{
  color:#E52321;
  font-weight:600;
  white-space:nowrap;
}
.red-flag::before{
  content:"";
  display:inline-block;
  width:0.85em;
  height:0.95em;
  margin-right:0.3em;
  vertical-align:-0.12em;
  background-color:#E52321;
  -webkit-mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 1.5v13a.5.5 0 0 0 1 0V10h7.5a.5.5 0 0 0 .4-.8L9.5 6 12 2.5a.5.5 0 0 0-.4-.8H4V1.5a.5.5 0 0 0-1 0z'/%3E%3C/svg%3E") no-repeat center / contain;
  mask:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 1.5v13a.5.5 0 0 0 1 0V10h7.5a.5.5 0 0 0 .4-.8L9.5 6 12 2.5a.5.5 0 0 0-.4-.8H4V1.5a.5.5 0 0 0-1 0z'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* ── Diagnostic teaser ─ replaces the old intro-video-card placeholder ── */
.diag-teaser{margin:32px 0 40px;}
.diag-teaser-head{text-align:center;margin-bottom:22px;}
.diag-teaser-kicker{
  display:block;font:600 11px/1 'Inter',sans-serif;letter-spacing:2.4px;
  color:var(--text-secondary);text-transform:uppercase;margin-bottom:10px;
}
.diag-teaser-title{
  font:600 26px/1.1 'Inter',sans-serif;letter-spacing:-.5px;
  color:var(--cardano-blue);margin:0 0 8px;
  padding-left:14px;border-left:4px solid var(--cardano-blue);
  display:inline-block;text-align:left;
}
[data-theme=dark] .diag-teaser-title{color:var(--cardano-blue-2);border-left-color:var(--cardano-blue-2);}
.diag-teaser-sub{
  font-size:13.5px;line-height:1.55;color:var(--text-body);
  max-width:720px;margin:8px auto 0;text-align:center;
}
.diag-teaser-section-label{
  font:500 11px/1 'Inter',sans-serif;letter-spacing:2px;
  color:var(--cardano-blue);text-transform:uppercase;
  margin:24px 0 12px;display:flex;align-items:center;gap:12px;
}
[data-theme=dark] .diag-teaser-section-label{color:var(--cardano-blue-2);}
.diag-teaser-section-label::after{
  content:"";flex:1;height:1px;background:rgba(0,51,173,.12);
}
[data-theme=dark] .diag-teaser-section-label::after{background:rgba(31,91,198,.22);}

.diag-teaser-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:18px;
}
@media (max-width:880px){.diag-teaser-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.diag-teaser-grid{grid-template-columns:1fr;}}
.diag-teaser-grid-3{grid-template-columns:repeat(3,1fr);}

.diag-teaser-box{
  background:linear-gradient(180deg,#ffffff 0%,#fcfbf8 100%);
  border:1px solid rgba(0,51,173,.10);border-radius:10px;
  padding:24px 26px 20px;display:flex;flex-direction:column;gap:14px;position:relative;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.diag-teaser-box:hover{
  border-color:rgba(0,51,173,.26);
  box-shadow:0 8px 24px -10px rgba(0,51,173,.18),0 2px 4px rgba(15,23,42,.05);
  transform:translateY(-1px);
}
[data-theme=dark] .diag-teaser-box{
  background:linear-gradient(180deg,rgba(31,91,198,.08) 0%,rgba(31,91,198,.04) 100%);
  border-color:rgba(31,91,198,.22);
  box-shadow:0 1px 2px rgba(0,0,0,.20);
}
[data-theme=dark] .diag-teaser-box:hover{
  border-color:rgba(31,91,198,.46);
  box-shadow:0 8px 24px -10px rgba(31,91,198,.32),0 2px 4px rgba(0,0,0,.24);
}
.diag-teaser-box-title{
  font:500 14px/1.3 'Inter',sans-serif;color:var(--cardano-blue);
  letter-spacing:.4px;text-transform:uppercase;
  margin:0;padding-left:12px;border-left:3px solid var(--cardano-blue);
}
[data-theme=dark] .diag-teaser-box-title{color:var(--cardano-blue-2);border-left-color:var(--cardano-blue-2);}
.diag-teaser-box-kpi{
  font:600 34px/1.05 'Inter',sans-serif;letter-spacing:-1.2px;color:var(--text-primary);
  font-variant-numeric:tabular-nums;
  margin-top:0;
}
.diag-teaser-box-axis{
  font-size:12.5px;line-height:1.45;color:var(--text-secondary);
  margin-top:-6px;letter-spacing:.05px;
}
.diag-teaser-box-body{font-size:13px;line-height:1.55;color:var(--text-body);margin:0;}
.diag-teaser-box-dawn{
  font-size:12.5px;line-height:1.5;color:var(--dawn);
  border-left:2px solid var(--dawn);padding-left:12px;
}
.diag-teaser-box-callout{
  background:linear-gradient(180deg,rgba(229,35,33,.06) 0%,rgba(229,35,33,.03) 100%);
  border:1px solid rgba(229,35,33,.18);
  border-radius:6px;padding:12px 14px;
  display:flex;flex-direction:column;gap:6px;
}
[data-theme=dark] .diag-teaser-box-callout{
  background:linear-gradient(180deg,rgba(229,35,33,.14) 0%,rgba(229,35,33,.06) 100%);
  border-color:rgba(229,35,33,.32);
}
.diag-teaser-box-callout-label{
  font:600 10px/1 'Inter',sans-serif;letter-spacing:1.8px;
  color:var(--infared);text-transform:uppercase;
}
.diag-teaser-box-callout-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  margin-top:2px;
}
.diag-teaser-box-callout-row span:first-child{
  font-size:12px;color:var(--text-primary);
}
.diag-teaser-box-callout-row span:last-child{
  font:600 17px/1 'Inter',sans-serif;color:var(--infared);
  letter-spacing:-.3px;font-variant-numeric:tabular-nums;
}
.diag-teaser-box-callout-note{
  font-size:11px;line-height:1.5;color:var(--text-secondary);
}
.diag-teaser-box-table{
  display:flex;flex-direction:column;
  border-top:1px solid rgba(0,51,173,.10);padding-top:4px;
}
.diag-teaser-box-tr{
  display:flex;align-items:baseline;justify-content:space-between;
  padding:8px 0;border-bottom:1px solid rgba(0,51,173,.05);font-size:12.5px;
}
.diag-teaser-box-tr:last-child{border-bottom:none;}
.diag-teaser-box-tr span:first-child{color:var(--text-secondary);}
.diag-teaser-box-tr span:last-child{
  font:600 13.5px/1 'Inter',sans-serif;color:var(--text-primary);
  letter-spacing:-.2px;font-variant-numeric:tabular-nums;
}
.diag-teaser-box-tr span.red{color:var(--infared);}
.diag-teaser-box-tr span.muted{color:var(--text-secondary);font-weight:500;}
.diag-teaser-box-tr-sub span:first-child{
  padding-left:14px;color:var(--text-secondary);font-size:11.5px;
  position:relative;
}
.diag-teaser-box-tr-sub span:first-child::before{
  content:"↳";position:absolute;left:0;color:rgba(0,51,173,.35);font-size:10px;
}
.diag-teaser-box-tr-sub span:last-child{font-size:12.5px;}
.diag-teaser-box-section-label{
  font:600 10px/1 'Inter',sans-serif;letter-spacing:1.8px;
  color:var(--text-secondary);text-transform:uppercase;
  margin-top:2px;
}
.diag-teaser-box-punch{
  font:400 14px/1.5 'Inter',sans-serif;font-style:italic;color:var(--text-primary);
  margin:auto 0 0;padding:16px 0 2px;
  position:relative;
}
.diag-teaser-box-punch::before{
  content:"";display:block;width:32px;height:2px;
  background:linear-gradient(90deg,var(--cardano-blue) 0%,rgba(0,51,173,0) 100%);
  margin-bottom:12px;
}
[data-theme=dark] .diag-teaser-box-punch::before{
  background:linear-gradient(90deg,var(--cardano-blue-2) 0%,rgba(31,91,198,0) 100%);
}

.diag-teaser-cta{margin-top:28px;text-align:center;}
.diag-teaser-cta a{
  display:inline-block;padding:10px 18px;font-size:13px;font-weight:500;
  color:var(--cardano-blue);border:1px solid var(--cardano-blue);
  border-radius:4px;text-decoration:none;transition:background .15s;
}
.diag-teaser-cta a:hover{background:rgba(0,51,173,.06);}
[data-theme=dark] .diag-teaser-cta a{color:var(--cardano-blue-2);border-color:var(--cardano-blue-2);}
[data-theme=dark] .diag-teaser-cta a:hover{background:rgba(31,91,198,.10);}
