Qwen Qwen3.8 Max (0902) – Business
via Alibaba · Generated
- AIMAC Debt 6.02
- Cost $0.24
- Total Violations 68
- HTML Size 70 KB
- Em Dashes 45
Screenshot
View Live Page
Accessibility Issues Found
68 Serious
-
color-contrast serious 68 instances
Elements must meet minimum color contrast ratio thresholds
Example HTML
<span class="up">▲ 0.62%</span>
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Meridian Ledger — Business Intelligence & Growth Advisory</title>
<meta name="description" content="Meridian Ledger: daily market intelligence, field-tested playbooks and partner-led advisory for mid-market operators. Signal over noise.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=IBM+Plex+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<style>
/* ============ TOKENS & BASE ============ */
:root{
--ink:#10151B; --ink-2:#0B0F14; --ink-3:#141B22;
--paper:#F4EFE3; --paper-2:#EBE4D2; --card:#FBF8F0;
--brass:#B98A2F; --brass-d:#8F6A20; --green:#1E7A4F; --red:#B23B3B;
--line:rgba(16,21,27,.15); --line-s:rgba(16,21,27,.34);
--line-inv:rgba(244,239,227,.14); --line-inv-s:rgba(244,239,227,.32);
--serif:'Fraunces',Georgia,serif; --sans:'Archivo',system-ui,sans-serif; --mono:'IBM Plex Mono',ui-monospace,monospace;
--ease:cubic-bezier(.19,.66,.15,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:0;color:inherit}
::selection{background:var(--brass);color:var(--ink)}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(1.1rem,4vw,2.5rem)}
section{scroll-margin-top:92px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.7rem 1rem;z-index:2000;font-family:var(--mono);font-size:.75rem}
.skip:focus{left:0}
/* film grain */
.grain{position:fixed;inset:0;z-index:990;pointer-events:none;opacity:.05;mix-blend-mode:multiply;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* scroll progress */
.progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--brass);z-index:1200}
/* type helpers */
.eyebrow{font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-d)}
.dark .eyebrow{color:var(--brass)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;border-top:1px solid var(--line-s);padding-top:1.4rem;margin-bottom:2.6rem;flex-wrap:wrap}
.dark .sec-head{border-top-color:var(--line-inv-s)}
.sec-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,3.6vw,3rem);line-height:1.08;letter-spacing:-.01em;max-width:16ch}
.sec-head .idx{font-family:var(--mono);font-size:.8rem;color:var(--brass-d)}
.sec-head .lede{max-width:44ch;font-size:.95rem;color:rgba(16,21,27,.72)}
.dark .sec-head .lede{color:rgba(244,239,227,.66)}
/* reveal on scroll */
.rv{opacity:0;transform:translateY(26px);transition:opacity .75s ease,transform .75s var(--ease);transition-delay:calc(var(--d,0)*95ms)}
.rv.in{opacity:1;transform:none}
.fx{animation:fadeUp .8s var(--ease) both;animation-delay:var(--d,0s)}
@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.65rem;padding:.95rem 1.55rem;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font-family:var(--sans);font-weight:600;font-size:.76rem;letter-spacing:.13em;text-transform:uppercase;transition:background .3s,border-color .3s,color .3s,transform .3s}
.btn .ar{transition:transform .3s var(--ease);font-family:var(--mono)}
.btn:hover{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.btn:hover .ar{transform:translateX(4px)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.dark .btn{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.dark .btn:hover{background:var(--paper);border-color:var(--paper)}
.dark .btn-ghost{background:transparent;color:var(--paper);border-color:var(--line-inv-s)}
.dark .btn-ghost:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
/* chips / meta */
.chip{display:inline-block;font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;padding:.32rem .6rem;border:1px solid var(--line-s)}
.dark .chip{border-color:var(--line-inv-s)}
.meta{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(16,21,27,.55)}
.dark .meta{color:rgba(244,239,227,.5)}
.up{color:var(--green)} .down{color:var(--red)}
.dark .up{color:#5FBE8E}.dark .down{color:#E08585}
/* ============ TICKER ============ */
.ticker{background:var(--ink-2);color:var(--paper);border-bottom:2px solid var(--brass);overflow:hidden;font-family:var(--mono)}
.ticker-track{display:flex;width:max-content;gap:3.2rem;padding:.55rem 0;animation:tick 46s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
.tk{display:flex;gap:.55rem;font-size:.7rem;letter-spacing:.05em;white-space:nowrap}
.tk b{color:rgba(244,239,227,.55);font-weight:500}
.tk .v{font-weight:600}
/* ============ MASTHEAD ============ */
.masthead{position:sticky;top:0;z-index:1100;background:var(--paper);border-bottom:1px solid var(--line-s);transition:box-shadow .3s,padding .3s}
.masthead.scrolled{box-shadow:0 10px 30px -18px rgba(16,21,27,.45)}
.masthead .wrap{display:flex;align-items:center;gap:2rem;padding-top:.9rem;padding-bottom:.9rem}
.brand{display:flex;align-items:center;gap:.85rem;flex-shrink:0}
.brand img{width:46px;height:46px;border:1px solid var(--ink)}
.brand-name{font-family:var(--serif);font-weight:600;font-size:1.35rem;line-height:1.05;letter-spacing:.01em}
.brand-tag{font-family:var(--mono);font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:var(--brass-d);margin-top:.25rem}
.main-nav{display:flex;gap:1.7rem;margin-left:auto}
.main-nav a{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;position:relative;padding:.3rem 0}
.main-nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease)}
.main-nav a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{flex-shrink:0}
.burger{display:none;flex-direction:column;gap:5px;padding:.6rem;margin-left:auto}
.burger span{width:24px;height:2px;background:var(--ink);transition:transform .3s,opacity .3s}
body.nav-open .burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .burger span:nth-child(2){opacity:0}
body.nav-open .burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
/* ============ HERO ============ */
.hero{padding:clamp(3rem,6vw,5.5rem) 0 clamp(3rem,5vw,4.5rem);position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.hero .eyebrow{display:inline-block;border:1px solid var(--line-s);padding:.45rem .8rem;margin-bottom:1.6rem}
.hl{font-family:var(--serif);font-weight:600;font-size:clamp(2.6rem,5.6vw,4.6rem);line-height:1.02;letter-spacing:-.02em}
.hl .line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hl .line span{display:block;transform:translateY(118%);animation:rise 1s var(--ease) forwards;animation-delay:var(--d)}
.hl em{font-style:italic;color:var(--brass-d);font-weight:500}
@keyframes rise{to{transform:translateY(0)}}
.hero-deck{margin-top:1.7rem;max-width:56ch;font-size:1.05rem;color:rgba(16,21,27,.78)}
.hero-ctas{display:flex;gap:1rem;margin-top:2.1rem;flex-wrap:wrap}
.hero-meta{display:flex;gap:1.6rem;margin-top:2.4rem;padding-top:1.2rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(16,21,27,.55);flex-wrap:wrap}
.hero-fig{position:relative}
.kb{overflow:hidden;border:1px solid var(--line-s)}
.kb img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);animation:kenburns 20s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.09) translate(1.6%,-1.4%)}}
.hero-fig .kb{aspect-ratio:4/5}
.stamp{position:absolute;top:-14px;right:18px;background:var(--paper);border:1px solid var(--ink);font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;padding:.4rem .7rem;transform:rotate(3deg)}
.signal-card{position:absolute;left:-2.2rem;bottom:2rem;background:var(--card);border:1px solid var(--line-s);border-left:4px solid var(--brass);padding:1.1rem 1.3rem;max-width:270px;box-shadow:0 24px 44px -26px rgba(16,21,27,.5)}
.signal-card .lbl{font-family:var(--mono);font-size:.6rem;letter-spacing:.22em;color:var(--brass-d);text-transform:uppercase}
.signal-card .val{font-family:var(--serif);font-size:2rem;font-weight:600;line-height:1.1;margin:.35rem 0 .2rem}
.signal-card .delta{font-family:var(--mono);font-size:.7rem}
.clients{margin-top:clamp(2.6rem,5vw,4rem);padding-top:1.4rem;border-top:1px solid var(--line)}
.clients .lbl{font-family:var(--mono);font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(16,21,27,.45);margin-bottom:.9rem}
.clients-row{display:flex;gap:2.4rem;flex-wrap:wrap;font-family:var(--serif);font-weight:600;font-size:.95rem;letter-spacing:.06em;color:rgba(16,21,27,.4)}
.clients-row span:hover{color:var(--brass-d)}
/* ============ STATS BAND ============ */
.dark{background:var(--ink);color:var(--paper)}
.stats{border-top:3px solid var(--brass);border-bottom:1px solid var(--line-inv)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr);}
.stat{padding:2.6rem 2rem;border-left:1px solid var(--line-inv)}
.stat:first-child{border-left:0}
.stat .n{font-family:var(--serif);font-weight:600;font-size:clamp(2.2rem,3.6vw,3.4rem);line-height:1;color:var(--paper)}
.stat .n b{color:var(--brass);font-weight:600}
.stat .l{font-family:var(--mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,239,227,.55);margin-top:.7rem}
/* ============ BRIEFING / BLOG ============ */
.briefing{padding:clamp(3.5rem,7vw,6rem) 0}
.brief-grid{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:clamp(2rem,4vw,3.5rem);align-items:start}
.lead-story .kb{aspect-ratio:16/9;margin-bottom:1.5rem}
.lead-story .kb img{transition:transform .8s var(--ease)}
.lead-story:hover .kb img{transform:scale(1.04)}
.story-tags{display:flex;gap:1rem;align-items:center;margin-bottom:.9rem}
.lead-story h3{font-family:var(--serif);font-weight:600;font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.15;letter-spacing:-.01em}
.lead-story h3 a{background-image:linear-gradient(var(--brass),var(--brass));background-repeat:no-repeat;background-size:0 2px;background-position:0 100%;transition:background-size .4s var(--ease)}
.lead-story h3 a:hover{background-size:100% 2px}
.lead-story p{margin-top:.9rem;max-width:64ch;color:rgba(16,21,27,.75)}
.read-link{display:inline-flex;gap:.5rem;margin-top:1.1rem;font-family:var(--mono);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-d)}
.read-link span{transition:transform .3s var(--ease)}
.read-link:hover span{transform:translateX(5px)}
.sub-stories{margin-top:2.6rem;border-top:1px solid var(--line-s)}
.sub-story{display:grid;grid-template-columns:96px 1fr auto;gap:1.4rem;align-items:center;padding:1.35rem 0;border-bottom:1px solid var(--line);transition:background .3s,padding .3s}
.sub-story:hover{background:var(--card);padding-left:.8rem;padding-right:.8rem}
.sub-story img{width:96px;height:96px;object-fit:cover;filter:grayscale(1);border:1px solid var(--line)}
.sub-story h4{font-family:var(--serif);font-weight:600;font-size:1.12rem;line-height:1.3}
.sub-story p{font-size:.86rem;color:rgba(16,21,27,.68);margin-top:.35rem;max-width:60ch}
.sub-story .go{font-family:var(--mono);font-size:1.1rem;color:var(--brass-d);transition:transform .3s var(--ease)}
.sub-story:hover .go{transform:translateX(5px)}
/* sidebar */
.sidebar{display:flex;flex-direction:column;gap:1.6rem;position:sticky;top:100px}
.side-block{border:1px solid var(--line-s);background:var(--card);padding:1.5rem}
.side-block h5{font-family:var(--mono);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-d);margin-bottom:1.1rem;display:flex;align-items:center;gap:.6rem}
.side-block h5::after{content:"";flex:1;height:1px;background:var(--line)}
.webinar{display:grid;grid-template-columns:52px 1fr;gap:.9rem;padding:.85rem 0;border-bottom:1px dashed var(--line)}
.webinar:last-child{border-bottom:0;padding-bottom:0}
.w-date{font-family:var(--mono);font-size:.62rem;text-align:center;border:1px solid var(--line-s);padding:.4rem .2rem;line-height:1.5;height:fit-content}
.w-date b{display:block;font-size:.95rem;color:var(--brass-d)}
.webinar h6{font-size:.92rem;font-weight:600;line-height:1.35}
.webinar .reg{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;color:var(--brass-d);text-transform:uppercase}
.webinar .reg:hover{text-decoration:underline}
.tip{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tip h5{color:var(--brass)}
.tip h5::after{background:var(--line-inv)}
.tip blockquote{font-family:var(--serif);font-style:italic;font-size:1.05rem;line-height:1.5}
.tip cite{display:block;margin-top:.9rem;font-family:var(--mono);font-style:normal;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,239,227,.6)}
.tip cite b{color:var(--brass)}
.resource img{width:118px;float:right;margin:0 0 .8rem 1rem;border:1px solid var(--line-s)}
.resource p{font-size:.88rem;color:rgba(16,21,27,.75)}
.resource .btn{margin-top:1rem;width:100%;justify-content:center}
/* ============ SERVICES (sticky two-column) ============ */
.services{background:var(--paper-2);padding:clamp(3.5rem,7vw,6rem) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.svc-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,5vw,5rem)}
.svc-left{position:sticky;top:110px;align-self:start}
.svc-left h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.1;letter-spacing:-.01em;margin:1rem 0 1.2rem}
.svc-left p{color:rgba(16,21,27,.75);max-width:46ch}
.svc-principles{margin:1.6rem 0 1.9rem;display:flex;flex-direction:column;gap:.55rem}
.svc-principles li{list-style:none;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;display:flex;gap:.7rem;align-items:center}
.svc-principles li::before{content:"—";color:var(--brass-d)}
.svc-item{border-top:1px solid var(--line-s);padding:2.1rem 0;display:grid;grid-template-columns:86px 1fr;gap:1.4rem;transition:transform .4s var(--ease)}
.svc-item:last-child{border-bottom:1px solid var(--line-s)}
.svc-item:hover{transform:translateX(10px)}
.svc-num{font-family:var(--serif);font-style:italic;font-size:2.2rem;font-weight:500;color:var(--line-s);transition:color .4s}
.svc-item:hover .svc-num{color:var(--brass)}
.svc-item h3{font-family:var(--serif);font-weight:600;font-size:1.45rem;margin-bottom:.6rem}
.svc-item p{font-size:.94rem;color:rgba(16,21,27,.74);max-width:58ch}
.svc-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.svc-chips span{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--line-s);padding:.3rem .55rem;background:var(--card)}
/* ============ CASE STUDIES (dark) ============ */
.cases{padding:clamp(3.5rem,7vw,6rem) 0}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.case-card{background:var(--ink-3);border:1px solid var(--line-inv);display:flex;flex-direction:column;transition:transform .45s var(--ease),border-color .45s}
.case-card:hover{transform:translateY(-8px);border-color:var(--brass)}
.case-img{overflow:hidden;aspect-ratio:4/3;border-bottom:1px solid var(--line-inv)}
.case-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.06);transition:transform .9s var(--ease)}
.case-card:hover .case-img img{transform:scale(1.07)}
.case-body{padding:1.6rem;display:flex;flex-direction:column;flex:1}
.case-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.case-card h3{font-family:var(--serif);font-weight:600;font-size:1.28rem;line-height:1.25;margin-bottom:.8rem}
.case-card>p,.case-body>p{font-size:.88rem;color:rgba(244,239,227,.68);flex:1}
.kpis{display:flex;gap:1.4rem;margin:1.4rem 0 1.2rem;padding-top:1.2rem;border-top:1px dashed var(--line-inv)}
.kpi .v{font-family:var(--serif);font-weight:600;font-size:1.35rem;color:var(--brass)}
.kpi .l{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,239,227,.5);margin-top:.2rem}
.case-foot{margin-top:auto}
.cases-more{margin-top:2.6rem;text-align:center}
/* ============ PORTFOLIO ============ */
.portfolio{padding:clamp(3.5rem,7vw,6rem) 0}
.pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.pf-tile{position:relative;overflow:hidden;border:1px solid var(--line-s);aspect-ratio:4/3}
.pf-tile img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .9s var(--ease),filter .6s}
.pf-tile:hover img{transform:scale(1.07);filter:grayscale(.2)}
.pf-tile::after{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.pf-tile:hover::after{transform:scaleX(1)}
.pf-cap{position:absolute;inset:auto 0 0 0;padding:2.4rem 1.3rem 1.2rem;background:linear-gradient(transparent,rgba(11,15,20,.92));color:var(--paper)}
.pf-cap .no{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;color:var(--brass)}
.pf-cap h3{font-family:var(--serif);font-weight:600;font-size:1.3rem;margin:.2rem 0}
.pf-cap p{font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:rgba(244,239,227,.65);text-transform:uppercase}
/* ============ ROI LAB ============ */
.roi{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.roi-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);border:1px solid var(--line-s);background:var(--card);box-shadow:0 30px 60px -40px rgba(16,21,27,.4)}
.roi-controls{padding:clamp(1.6rem,3vw,2.6rem);border-right:1px solid var(--line)}
.ctrl{margin-bottom:2rem}
.ctrl-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.9rem}
.ctrl-head label{font-weight:600;font-size:.92rem}
.bubble{font-family:var(--mono);font-size:.8rem;font-weight:600;background:var(--ink);color:var(--brass);padding:.28rem .6rem}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(to right,var(--brass) var(--p,50%),rgba(16,21,27,.18) var(--p,50%));outline-offset:6px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;background:var(--paper);border:2px solid var(--ink);border-radius:50%;cursor:grab;transition:transform .2s}
input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;background:var(--paper);border:2px solid var(--ink);border-radius:50%;cursor:grab}
input[type=range]::-moz-range-progress{background:var(--brass);height:4px}
.ctrl-scale{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.6rem;color:rgba(16,21,27,.5);margin-top:.5rem;letter-spacing:.08em}
.roi-note{font-size:.78rem;color:rgba(16,21,27,.6);border-top:1px dashed var(--line);padding-top:1.1rem}
.roi-results{background:var(--ink);color:var(--paper);padding:clamp(1.6rem,3vw,2.6rem);display:flex;flex-direction:column}
.roi-results .lbl{font-family:var(--mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,239,227,.5)}
.big-num{font-family:var(--serif);font-weight:600;font-size:clamp(2.6rem,4.5vw,3.9rem);color:var(--brass);line-height:1.05;margin:.4rem 0 .2rem;font-variant-numeric:tabular-nums}
.roi-sub{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.6rem 0;padding:1.2rem 0;border-top:1px solid var(--line-inv);border-bottom:1px solid var(--line-inv)}
.roi-sub div .v{font-family:var(--serif);font-size:1.5rem;font-weight:600}
.roi-sub div .l{font-family:var(--mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(244,239,227,.5);margin-top:.25rem}
.bar-row{margin-bottom:1rem}
.bar-row .bl{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:rgba(244,239,227,.65);margin-bottom:.4rem;text-transform:uppercase}
.bar{height:14px;background:rgba(244,239,227,.08);position:relative;overflow:hidden}
.bar i{position:absolute;inset:0 auto 0 0;background:var(--brass);transition:width .8s var(--ease)}
.bar i.base{background:rgba(244,239,227,.35)}
.roi-ctas{margin-top:auto;display:flex;gap:.9rem;flex-wrap:wrap;padding-top:1.4rem}
/* ============ TESTIMONIALS ============ */
.voices{padding:clamp(3.5rem,7vw,6rem) 0}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;align-items:start}
.t-card{background:var(--card);border:1px solid var(--line-s);padding:2rem 1.8rem;position:relative;transition:transform .5s var(--ease),box-shadow .5s;box-shadow:0 18px 38px -30px rgba(16,21,27,.5)}
.t-card::before{content:"“";position:absolute;top:-1.4rem;left:1.2rem;font-family:var(--serif);font-size:4.4rem;color:var(--brass);line-height:1}
.t1{transform:rotate(-1.7deg)} .t2{transform:rotate(1.3deg) translateY(1.4rem)} .t3{transform:rotate(-.9deg)}
.t-card:hover{transform:rotate(0) translateY(-6px);box-shadow:0 30px 50px -30px rgba(16,21,27,.55);z-index:2}
.t-card blockquote{font-family:var(--serif);font-size:1.08rem;line-height:1.55;font-style:italic}
.t-who{display:flex;align-items:center;gap:.9rem;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--line)}
.t-who img{width:46px;height:46px;border-radius:50%;border:1px solid var(--line-s);filter:grayscale(1)}
.t-who b{display:block;font-size:.9rem}
.t-who span{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(16,21,27,.55)}
/* ============ FAQ ============ */
.faq{padding:clamp(3.5rem,7vw,6rem) 0;background:var(--paper-2);border-top:1px solid var(--line)}
.faq-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,5vw,5rem);align-items:start}
.faq-left{position:sticky;top:110px}
.faq-left h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,3.2vw,2.8rem);line-height:1.1;margin:1rem 0 1.1rem}
.faq-left p{color:rgba(16,21,27,.72);max-width:40ch}
.acc-item{border-top:1px solid var(--line-s)}
.acc-item:last-child{border-bottom:1px solid var(--line-s)}
.acc-btn{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.4rem .2rem;text-align:left;transition:padding .3s}
.acc-btn:hover{padding-left:.8rem}
.acc-btn h3{font-family:var(--serif);font-weight:600;font-size:1.2rem}
.acc-ico{position:relative;width:14px;height:14px;flex-shrink:0}
.acc-ico::before,.acc-ico::after{content:"";position:absolute;background:var(--brass-d);transition:transform .4s var(--ease)}
.acc-ico::before{left:0;top:6px;width:14px;height:2px}
.acc-ico::after{left:6px;top:0;width:2px;height:14px}
.acc-item.open .acc-ico::after{transform:rotate(90deg) scaleY(0)}
.acc-item.open .acc-ico::before{transform:rotate(180deg)}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease)}
.acc-item.open .acc-body{grid-template-rows:1fr}
.acc-body>div{overflow:hidden}
.acc-body p{padding:0 .2rem 1.5rem;max-width:62ch;color:rgba(16,21,27,.74);font-size:.94rem}
/* ============ CONSULT / NEWSLETTER ============ */
.consult{padding:clamp(4rem,8vw,7rem) 0;border-top:3px solid var(--brass)}
.consult-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2.5rem,5vw,5rem);align-items:center}
.consult h2{font-family:var(--serif);font-weight:600;font-size:clamp(2.3rem,4.5vw,3.8rem);line-height:1.05;letter-spacing:-.015em}
.consult h2 em{font-style:italic;color:var(--brass)}
.consult p{margin:1.4rem 0 2rem;max-width:52ch;color:rgba(244,239,227,.72)}
.news-card{background:var(--ink-3);border:1px solid var(--line-inv);border-top:4px solid var(--brass);padding:2rem 1.9rem}
.news-card h3{font-family:var(--serif);font-weight:600;font-size:1.5rem;margin:.6rem 0 .5rem}
.news-card>p{font-size:.9rem;color:rgba(244,239,227,.65);margin:0 0 1.5rem}
.news-form{display:flex;gap:.7rem;flex-wrap:wrap}
.news-form input{flex:1;min-width:200px;background:transparent;border:0;border-bottom:1px solid var(--line-inv-s);color:var(--paper);font-family:var(--mono);font-size:.85rem;padding:.7rem .2rem;transition:border-color .3s}
.news-form input:focus{outline:none;border-bottom-color:var(--brass)}
.news-form input::placeholder{color:rgba(244,239,227,.35)}
.news-fine{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;color:rgba(244,239,227,.4);margin-top:1rem;text-transform:uppercase}
.news-success{display:none;font-family:var(--mono);font-size:.8rem;color:#5FBE8E;border:1px dashed var(--line-inv-s);padding:1.1rem;line-height:1.7}
.shake{animation:shake .4s}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
/* ============ FOOTER ============ */
footer{background:var(--ink-2);color:var(--paper);border-top:1px solid var(--line-inv)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:2.5rem;padding:4rem 0 3rem}
.foot-brand p{font-size:.88rem;color:rgba(244,239,227,.6);margin:1.1rem 0 1.4rem;max-width:34ch}
.socials{display:flex;gap:.8rem}
.socials a{width:38px;height:38px;border:1px solid var(--line-inv);display:grid;place-items:center;transition:background .3s,border-color .3s}
.socials a:hover{background:var(--brass);border-color:var(--brass)}
.socials svg{width:16px;height:16px;fill:var(--paper);transition:fill .3s}
.socials a:hover svg{fill:var(--ink)}
.foot-col h5{font-family:var(--mono);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin-bottom:1.1rem}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:.6rem}
.foot-col a,.foot-col li{font-size:.86rem;color:rgba(244,239,227,.66)}
.foot-col a:hover{color:var(--brass)}
.foot-col address{font-style:normal;font-size:.86rem;color:rgba(244,239,227,.66);line-height:1.8}
.foot-bottom{border-top:1px solid var(--line-inv);padding:1.4rem 0;display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em;color:rgba(244,239,227,.45)}
.foot-bottom nav{display:flex;gap:1.4rem}
.foot-bottom nav a:hover{color:var(--brass)}
.foot-disc{padding:0 0 1.6rem;font-family:var(--mono);font-size:.6rem;color:rgba(244,239,227,.3);max-width:90ch}
/* ============ RESPONSIVE ============ */
@media(max-width:1080px){
.hero-grid{grid-template-columns:1fr;gap:3rem}
.hero-fig{max-width:560px}
.signal-card{left:1rem}
.brief-grid,.svc-grid,.faq-grid,.consult-grid{grid-template-columns:1fr}
.sidebar{position:static;flex-direction:row;flex-wrap:wrap}
.side-block{flex:1 1 300px}
.case-grid,.t-grid{grid-template-columns:1fr 1fr}
.pf-grid{grid-template-columns:1fr 1fr}
.roi-panel{grid-template-columns:1fr}
.roi-controls{border-right:0;border-bottom:1px solid var(--line)}
.stats .wrap{grid-template-columns:repeat(2,1fr)}
.stat{border-left:0;border-top:1px solid var(--line-inv)}
.stat:nth-child(odd){border-left:1px solid var(--line-inv)}
.stat:nth-child(-n+2){border-top:0}
}
@media(max-width:768px){
.main-nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line-s);flex-direction:column;gap:0;padding:.6rem 1.4rem 1.2rem;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .35s,transform .35s var(--ease)}
.main-nav a{padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.8rem}
body.nav-open .main-nav{opacity:1;transform:none;pointer-events:auto}
.burger{display:flex}
.nav-cta{display:none}
.case-grid,.t-grid,.pf-grid{grid-template-columns:1fr}
.t2{transform:rotate(1deg)}
.sub-story{grid-template-columns:72px 1fr}
.sub-story img{width:72px;height:72px}
.sub-story .go{display:none}
.roi-sub{grid-template-columns:1fr 1fr}
}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}.stamp{display:none}}
/* ============ REDUCED MOTION ============ */
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
.ticker-track{animation:none}
.ticker{overflow-x:auto}
.rv{opacity:1;transform:none}
.hl .line span{transform:none;animation:none}
.kb img{animation:none}
}
</style>
</head>
<body>
<a class="skip" href="#main">Skip to content</a>
<div class="progress" aria-hidden="true"></div>
<!-- ══════════ MARKET TICKER ══════════ -->
<div class="ticker" aria-label="Illustrative market ticker">
<div class="ticker-track" id="tickerTrack">
<span class="tk"><b>MLX-500</b><span class="v">4,812.66</span><span class="up">▲ 0.62%</span></span>
<span class="tk"><b>US 10Y</b><span class="v">4.21%</span><span class="down">▼ 0.03</span></span>
<span class="tk"><b>BRENT</b><span class="v">82.14</span><span class="up">▲ 1.02%</span></span>
<span class="tk"><b>GOLD</b><span class="v">2,388.40</span><span class="up">▲ 0.28%</span></span>
<span class="tk"><b>USD/EUR</b><span class="v">0.918</span><span class="down">▼ 0.11%</span></span>
<span class="tk"><b>PRIME RATE</b><span class="v">8.50%</span><span>— 0.00</span></span>
<span class="tk"><b>VIX</b><span class="v">13.86</span><span class="down">▼ 2.41%</span></span>
<span class="tk"><b>MID-MKT CAPEX INTENT</b><span class="v">68.4</span><span class="up">▲ 1.2</span></span>
<span class="tk"><b>CEO CONFIDENCE</b><span class="v">61.7</span><span class="up">▲ 0.8</span></span>
<span class="tk"><b>FREIGHT INDEX</b><span class="v">1,204</span><span class="down">▼ 0.6%</span></span>
</div>
</div>
<!-- ══════════ MASTHEAD ══════════ -->
<header class="masthead" id="top">
<div class="wrap">
<a class="brand" href="#top" aria-label="Meridian Ledger home">
<img src="https://placehold.co/72x72/10151B/B98A2F?text=ML&font=lora" alt="Meridian Ledger monogram logo" width="46" height="46">
<span>
<span class="brand-name">Meridian Ledger</span>
<span class="brand-tag">Signal over noise · Est. 2017</span>
</span>
</a>
<nav class="main-nav" id="mainNav" aria-label="Primary">
<a href="#blog">Blog</a>
<a href="#services">Services</a>
<a href="#cases">Case Studies</a>
<a href="#portfolio">Portfolio</a>
<a href="#roi">ROI Lab</a>
<a href="#resources">Resources</a>
<a href="#faq">FAQ</a>
</nav>
<a class="btn nav-cta" href="#consult">Schedule Consultation <span class="ar">→</span></a>
<button class="burger" id="burger" aria-label="Toggle menu" aria-expanded="false" aria-controls="mainNav">
<span></span><span></span><span></span>
</button>
</div>
</header>
<main id="main">
<!-- ══════════ FRONT PAGE / HERO ══════════ -->
<section class="hero">
<div class="wrap">
<div class="hero-grid">
<div>
<span class="eyebrow" data-scramble>The Operator's Briefing — Vol. 08</span>
<h1 class="hl">
<span class="line"><span style="--d:.05s">Advisory that</span></span>
<span class="line"><span style="--d:.18s">answers to the</span></span>
<span class="line"><span style="--d:.31s"><em>balance sheet.</em></span></span>
</h1>
<p class="hero-deck fx" style="--d:.5s">Meridian Ledger pairs daily market intelligence with a partner-led advisory bench. We help mid-market operators turn performance metrics into compounding advantage — no transformation theater, no 200-slide decks. Just ROI optimization you can audit, quarter after quarter.</p>
<div class="hero-ctas fx" style="--d:.65s">
<a class="btn" href="#consult">Schedule Consultation <span class="ar">→</span></a>
<a class="btn btn-ghost" href="#resources">Download Q4 Outlook <span class="ar">↓</span></a>
</div>
<div class="hero-meta fx" style="--d:.8s">
<span>Boston · London · Singapore</span>
<span id="edition-date">—</span>
<span>214 mandates delivered</span>
</div>
</div>
<figure class="hero-fig fx" style="--d:.35s">
<span class="stamp">№ 08 — BOSTON EDITION</span>
<div class="kb"><img src="https://picsum.photos/seed/financial-district-dawn/880/1100?grayscale" alt="Financial district towers at dawn"></div>
<div class="signal-card">
<span class="lbl">This Week's Signal</span>
<div class="val">68.4</div>
<div class="delta">Mid-market capex intent <span class="up">▲ 1.2 pts</span> vs. prior</div>
</div>
</figure>
</div>
<div class="clients fx" style="--d:.9s">
<div class="lbl">Selected advisory clients</div>
<div class="clients-row">
<span>HARBOR & PINE</span><span>NOVABRIGHT</span><span>FIELDSTONE INDUSTRIAL</span><span>CALDERA CAPITAL</span><span>OTTOLINE RETAIL</span><span>VEXEL ENERGY</span>
</div>
</div>
</div>
</section>
<!-- ══════════ STATS BAND ══════════ -->
<section class="stats dark" aria-label="Firm performance metrics">
<div class="wrap">
<div class="stat rv"><div class="n"><span data-count="214">0</span></div><div class="l">Advisory mandates delivered</div></div>
<div class="stat rv" style="--d:1"><div class="n"><span data-count="3.4" data-decimals="1">0</span><b>×</b></div><div class="l">Median first-year ROI</div></div>
<div class="stat rv" style="--d:2"><div class="n"><span data-count="92">0</span><b>%</b></div><div class="l">Client retention, five-year</div></div>
<div class="stat rv" style="--d:3"><div class="n"><b>$</b><span data-count="1.8" data-decimals="1">0</span>B</div><div class="l">Enterprise value advised</div></div>
</div>
</section>
<!-- ══════════ THE BRIEFING / BLOG + SIDEBAR ══════════ -->
<section class="briefing" id="blog">
<div class="wrap">
<div class="sec-head rv">
<div>
<div class="idx">(01) — NEWS & ANALYSIS</div>
<h2>The Briefing</h2>
</div>
<p class="lede">Market intelligence written for people who run businesses, not portfolios of opinions. Every claim sourced, every number dated.</p>
</div>
<div class="brief-grid">
<div>
<article class="lead-story rv">
<a href="#blog" class="kb"><img src="https://picsum.photos/seed/capex-shift-boardroom/1200/750?grayscale" alt="Executives reviewing capital plans in a boardroom"></a>
<div class="story-tags"><span class="chip">Strategy</span><span class="meta">Oct 06 · 8 min read · by E. Marsh</span></div>
<h3><a href="#blog">The Quiet Recalibration: mid-market capex shifts from expansion to efficiency</a></h3>
<p>For the first time since 2021, a majority of the mid-market CFOs we survey are routing new capital toward utilization and throughput rather than net-new capacity. The firms doing it deliberately — with driver-based models behind every line item — are quietly widening the gap on competitors still paying 2021 prices for 2023 equipment. Our FP&A practice breaks down where the payback actually lives.</p>
<a class="read-link" href="#blog">Read the analysis <span>→</span></a>
</article>
<div class="sub-stories">
<article class="sub-story rv">
<img src="https://picsum.photos/seed/rate-curve-desk/200/200?grayscale" alt="Treasury desk charts">
<div>
<div class="meta" style="margin-bottom:.35rem">Finance · 6 min</div>
<h4>The refinancing window CFOs shouldn't sleep on</h4>
<p>With the curve repricing faster than loan covenants adjust, a disciplined 90-day treasury review now carries seven-figure upside for most $100M-revenue companies.</p>
</div>
<span class="go">→</span>
</article>
<article class="sub-story rv" style="--d:1">
<img src="https://picsum.photos/seed/ops-scorecard/200/200?grayscale" alt="Operations scorecard on screen">
<div>
<div class="meta" style="margin-bottom:.35rem">Operations · 7 min</div>
<h4>Digital transformation without the theater: a scorecard that survives contact with ops</h4>
<p>Five performance metrics — adoption, cycle time, exception rate, cost per transaction, realized savings — and not one of them is "percentage of employees trained."</p>
</div>
<span class="go">→</span>
</article>
<article class="sub-story rv" style="--d:2">
<img src="https://picsum.photos/seed/family-factory-floor/200/200?grayscale" alt="Family-owned manufacturing floor">
<div>
<div class="meta" style="margin-bottom:.35rem">Governance · 5 min</div>
<h4>The succession problem hiding in family-held manufacturing</h4>
<p>Sixty-one percent of family-held industrial firms we audit have no documented transition plan. Here is the 12-month runway framework our governance practice actually uses.</p>
</div>
<span class="go">→</span>
</article>
</div>
</div>
<!-- SIDEBAR -->
<aside class="sidebar" id="resources" aria-label="Resources">
<div class="side-block rv">
<h5>Upcoming Webinars</h5>
<div class="webinar">
<div class="w-date"><b>14</b>OCT</div>
<div><h6>Q4 Capital Planning Roundtable</h6><span class="meta">45 min · FP&A practice</span><br><a class="reg" href="#consult">Register →</a></div>
</div>
<div class="webinar">
<div class="w-date"><b>21</b>OCT</div>
<div><h6>ROI Measurement That Survives an Audit</h6><span class="meta">60 min · Advisory bench</span><br><a class="reg" href="#consult">Register →</a></div>
</div>
<div class="webinar">
<div class="w-date"><b>04</b>NOV</div>
<div><h6>AI in the Back Office: Build vs. Buy</h6><span class="meta">45 min · Digital practice</span><br><a class="reg" href="#consult">Register →</a></div>
</div>
</div>
<div class="side-block tip rv" style="--d:1">
<h5>Expert Tip</h5>
<blockquote>"Tie every transformation dollar to a named P&L owner and a named metric. If a project can't survive that sentence, it isn't a project — it's a mood."</blockquote>
<cite><b>Elena Marsh</b> — Managing Partner, Meridian Ledger</cite>
</div>
<div class="side-block resource rv" style="--d:2">
<h5>Featured Resource</h5>
<img src="https://placehold.co/236x308/10151B/B98A2F?text=2025%0AEFFICIENCY%0AINDEX&font=lora" alt="Cover of the 2025 Mid-Market Efficiency Index whitepaper">
<p><strong>The 2025 Mid-Market Efficiency Index.</strong> Benchmarks drawn from 214 engagements across six sectors — cost-to-serve, revenue per FTE, and realized savings by function.</p>
<a class="btn" href="#consult">Download Whitepaper <span class="ar">↓</span></a>
</div>
</aside>
</div>
</div>
</section>
<!-- ══════════ SERVICES (STICKY) ══════════ -->
<section class="services" id="services">
<div class="wrap svc-grid">
<div class="svc-left rv">
<div class="eyebrow">(02) — Advisory Services</div>
<h2>Four practices. One standard: it shows up in the numbers.</h2>
<p>We take a limited slate of mandates each quarter so every engagement is staffed by partners, not pyramids. Scope is fixed per phase, models are built for your auditors to open, and the performance metrics we'll be judged on are agreed before kickoff — in writing.</p>
<ul class="svc-principles">
<li>Partner-led staffing, end to end</li>
<li>Fixed-fee phases, milestone gated</li>
<li>Audit-ready models & baseline honesty</li>
</ul>
<a class="btn" href="#consult">Schedule Consultation <span class="ar">→</span></a>
</div>
<div>
<div class="svc-item rv">
<div class="svc-num">01</div>
<div>
<h3>Growth & Market Strategy</h3>
<p>Where should the next dollar of capital work hardest? We size addressable markets with primary evidence, pressure-test pricing against real elasticity, and hand you a three-year growth case your board can interrogate line by line — then stay through the first two quarters of execution.</p>
<div class="svc-chips"><span>Market sizing</span><span>Pricing architecture</span><span>3-year growth case</span><span>Board-ready model</span></div>
</div>
</div>
<div class="svc-item rv" style="--d:1">
<div class="svc-num">02</div>
<div>
<h3>FP&A & Performance Metrics</h3>
<p>Most dashboards die of disbelief. We rebuild the planning stack around driver-based models and rolling forecasts, define a KPI tree the whole executive team reads the same way, and install a monthly operating review where every variance has a name and an owner.</p>
<div class="svc-chips"><span>Rolling forecasts</span><span>KPI tree</span><span>Unit economics</span><span>Operating cadence</span></div>
</div>
</div>
<div class="svc-item rv" style="--d:2">
<div class="svc-num">03</div>
<div>
<h3>Digital Transformation & Operations</h3>
<p>Transformation without the theater. We sequence automation where payback measures in quarters, not initiatives; instrument the processes that actually move margin; and tie adoption to the P&L so the change survives its first budget cycle — and its second.</p>
<div class="svc-chips"><span>Process mining</span><span>Automation roadmap</span><span>Adoption scorecards</span><span>Change management</span></div>
</div>
</div>
<div class="svc-item rv" style="--d:3">
<div class="svc-num">04</div>
<div>
<h3>M&A & Capital Advisory</h3>
<p>From target screening to day-100, we keep deals honest: commercial diligence grounded in operating data, synergy cases that survive integration, and capital structures sized to the business you'll actually run — not the one in the vendor deck.</p>
<div class="svc-chips"><span>Commercial diligence</span><span>Synergy modeling</span><span>Capital structure</span><span>Day-100 plan</span></div>
</div>
</div>
</div>
</div>
</section>
<!-- ══════════ CASE STUDIES ══════════ -->
<section class="cases dark" id="cases">
<div class="wrap">
<div class="sec-head rv">
<div>
<div class="idx">(03) — CLIENT SUCCESS</div>
<h2>Growth stories, audited.</h2>
</div>
<p class="lede">We publish what moved, by how much, and over what horizon. Every figure below comes from client-reported performance metrics verified at close-out.</p>
</div>
<div class="case-grid">
<article class="case-card rv">
<div class="case-img"><img src="https://picsum.photos/seed/logistics-network-yard/800/600?grayscale" alt="Container yard at a logistics hub"></div>
<div class="case-body">
<div class="case-top"><span class="chip">Logistics</span><span class="meta">Harbor & Pine</span></div>
<h3>A 14-node distribution network, redesigned around service-level economics</h3>
<p>Harbor & Pine was absorbing double-digit freight inflation while service eroded. We rebuilt the network model around cost-to-serve per delivery window, consolidated three nodes, and re-cut carrier contracts against measured — not assumed — lane economics.</p>
<div class="kpis">
<div class="kpi"><div class="v">−23%</div><div class="l">Cost to serve</div></div>
<div class="kpi"><div class="v">3.8×</div><div class="l">First-year ROI</div></div>
<div class="kpi"><div class="v">97.4%</div><div class="l">OTIF</div></div>
</div>
<div class="case-foot"><a class="read-link" href="#consult" style="color:var(--brass)">Read the case study <span>→</span></a></div>
</div>
</article>
<article class="case-card rv" style="--d:1">
<div class="case-img"><img src="https://picsum.photos/seed/health-clinic-network/800/600?grayscale" alt="Clinic reception corridor"></div>
<div class="case-body">
<div class="case-top"><span class="chip">Healthcare</span><span class="meta">Novabright</span></div>
<h3>Re-architecting pricing for a 40-clinic group — without spooking patients</h3>
<p>Novabright's schedule of 11,000 price points had drifted for a decade. We ran elasticity tests across 60 core services, staged the change over two quarters, and instrumented performance metrics so finance could watch margin move in real time.</p>
<div class="kpis">
<div class="kpi"><div class="v">+11.2<span style="font-size:.7em">pts</span></div><div class="l">Gross margin</div></div>
<div class="kpi"><div class="v">6 wk</div><div class="l">Payback</div></div>
<div class="kpi"><div class="v">+9</div><div class="l">Patient NPS</div></div>
</div>
<div class="case-foot"><a class="read-link" href="#consult" style="color:var(--brass)">Read the case study <span>→</span></a></div>
</div>
</article>
<article class="case-card rv" style="--d:2">
<div class="case-img"><img src="https://picsum.photos/seed/factory-control-room/800/600?grayscale" alt="Factory control room with monitors"></div>
<div class="case-body">
<div class="case-top"><span class="chip">Manufacturing</span><span class="meta">Fieldstone</span></div>
<h3>Digital transformation the plant floor actually adopted</h3>
<p>Fieldstone didn't need another dashboard vendor; it needed cycle-time discipline. We sequenced automation where payback measured in quarters, trained 340 operators in waves, and tied the adoption scorecard to the monthly operating review.</p>
<div class="kpis">
<div class="kpi"><div class="v">+18%</div><div class="l">OEE</div></div>
<div class="kpi"><div class="v">−31%</div><div class="l">Unplanned downtime</div></div>
<div class="kpi"><div class="v">$4.6M</div><div class="l">Annualized savings</div></div>
</div>
<div class="case-foot"><a class="read-link" href="#consult" style="color:var(--brass)">Read the case study <span>→</span></a></div>
</div>
</article>
</div>
<div class="cases-more rv"><a class="btn btn-ghost" href="#portfolio">Browse all 214 engagements <span class="ar">→</span></a></div>
</div>
</section>
<!-- ══════════ PORTFOLIO ══════════ -->
<section class="portfolio" id="portfolio">
<div class="wrap">
<div class="sec-head rv">
<div>
<div class="idx">(04) — PORTFOLIO</div>
<h2>Where we've done the work.</h2>
</div>
<p class="lede">214 mandates across six sectors. The sector changes; the discipline doesn't — baseline honestly, intervene where payback is fastest, measure relentlessly.</p>
</div>
<div class="pf-grid">
<figure class="pf-tile rv"><img src="https://picsum.photos/seed/portfolio-fintech-floor/900/700?grayscale" alt="Fintech trading floor"><figcaption class="pf-cap"><span class="no">P.01</span><h3>Fintech</h3><p>38 mandates · payments, lending, infrastructure</p></figcaption></figure>
<figure class="pf-tile rv" style="--d:1"><img src="https://picsum.photos/seed/portfolio-assembly-line/900/700?grayscale" alt="Automated assembly line"><figcaption class="pf-cap"><span class="no">P.02</span><h3>Manufacturing</h3><p>52 mandates · industrial, CPG supply</p></figcaption></figure>
<figure class="pf-tile rv" style="--d:2"><img src="https://picsum.photos/seed/portfolio-health-lab/900/700?grayscale" alt="Healthcare laboratory"><figcaption class="pf-cap"><span class="no">P.03</span><h3>Healthcare</h3><p>31 mandates · provider groups, services</p></figcaption></figure>
<figure class="pf-tile rv"><img src="https://picsum.photos/seed/portfolio-retail-store/900/700?grayscale" alt="Retail storefront interior"><figcaption class="pf-cap"><span class="no">P.04</span><h3>Retail & CPG</h3><p>29 mandates · omnichannel, pricing</p></figcaption></figure>
<figure class="pf-tile rv" style="--d:1"><img src="https://picsum.photos/seed/portfolio-energy-grid/900/700?grayscale" alt="Energy transmission infrastructure"><figcaption class="pf-cap"><span class="no">P.05</span><h3>Energy & Utilities</h3><p>24 mandates · regulated, renewables</p></figcaption></figure>
<figure class="pf-tile rv" style="--d:2"><img src="https://picsum.photos/seed/portfolio-port-cranes/900/700?grayscale" alt="Port cranes over containers"><figcaption class="pf-cap"><span class="no">P.06</span><h3>Logistics & Supply Chain</h3><p>40 mandates · network, freight, 3PL</p></figcaption></figure>
</div>
</div>
</section>
<!-- ══════════ ROI LAB (INTERACTIVE) ══════════ -->
<section class="roi" id="roi">
<div class="wrap">
<div class="sec-head rv">
<div>
<div class="idx">(05) — THE ROI LAB</div>
<h2>Model your upside in ninety seconds.</h2>
</div>
<p class="lede">Our advisory is sold on a number, so here is the number. Adjust the levers to your reality — the model uses the same conservative assumptions we bring to a diagnostic.</p>
</div>
<div class="roi-panel rv">
<div class="roi-controls">
<div class="ctrl">
<div class="ctrl-head"><label for="r-rev">Annual revenue</label><output class="bubble" id="b-rev">$48M</output></div>
<input type="range" id="r-rev" min="2" max="250" step="2" value="48" aria-label="Annual revenue in millions">
<div class="ctrl-scale"><span>$2M</span><span>$250M</span></div>
</div>
<div class="ctrl">
<div class="ctrl-head"><label for="r-up">Achievable efficiency uplift</label><output class="bubble" id="b-up">8%</output></div>
<input type="range" id="r-up" min="2" max="20" step="0.5" value="8" aria-label="Efficiency uplift percentage">
<div class="ctrl-scale"><span>2% conservative</span><span>20% aggressive</span></div>
</div>
<div class="ctrl">
<div class="ctrl-head"><label for="r-mg">Operating margin</label><output class="bubble" id="b-mg">14%</output></div>
<input type="range" id="r-mg" min="5" max="35" step="1" value="14" aria-label="Operating margin percentage">
<div class="ctrl-scale"><span>5%</span><span>35%</span></div>
</div>
<p class="roi-note">Model assumes steady-state adoption over a six-month engagement (typical fee: $96,000, fixed). Illustrative only — your diagnostic baseline is built from your actuals, not a slider.</p>
</div>
<div class="roi-results" aria-live="polite">
<span class="lbl">Projected annual EBITDA lift</span>
<div class="big-num" id="o-lift">$0</div>
<div class="roi-sub">
<div><div class="v" id="o-three">$0</div><div class="l">3-year cumulative</div></div>
<div><div class="v" id="o-roi">0×</div><div class="l">ROI multiple</div></div>
<div><div class="v" id="o-pay">—</div><div class="l">Fee payback</div></div>
</div>
<div class="bar-row">
<div class="bl"><span>Current annual EBITDA</span><span id="bl-cur">$0</span></div>
<div class="bar"><i class="base" id="bar-cur" style="width:0%"></i></div>
</div>
<div class="bar-row">
<div class="bl"><span>Projected, post-uplift</span><span id="bl-proj">$0</span></div>
<div class="bar"><i id="bar-proj" style="width:0%"></i></div>
</div>
<div class="roi-ctas">
<a class="btn" href="#consult">Schedule Consultation <span class="ar">→</span></a>
<a class="btn btn-ghost" href="#resources">Download Methodology</a>
</div>
</div>
</div>
</div>
</section>
<!-- ══════════ TESTIMONIALS ══════════ -->
<section class="voices" id="voices">
<div class="wrap">
<div class="sec-head rv">
<div>
<div class="idx">(06) — CLIENT VOICES</div>
<h2>What operators say once the deck is closed.</h2>
</div>
<p class="lede">Unedited, on the record, and tied to engagements you can read above.</p>
</div>
<div class="t-grid">
<article class="t-card t1 rv">
<blockquote>They didn't hand us a deck and leave. They sat in our ops review for two quarters until the cost-to-serve model was ours, not theirs. Twenty-three percent of our logistics cost walked out the door with them still in the room.</blockquote>
<div class="t-who">
<img src="https://i.pravatar.cc/96?u=diane-okafor" alt="Portrait of Diane Okafor">
<div><b>Diane Okafor</b><span>CFO, Harbor & Pine Logistics</span></div>
</div>
</article>
<article class="t-card t2 rv" style="--d:1">
<blockquote>The ROI case was modeled and stress-tested before we signed — not invented after to justify the invoice. When the board asked how we measured success, the answer was already in the engagement letter.</blockquote>
<div class="t-who">
<img src="https://i.pravatar.cc/96?u=marcus-feld" alt="Portrait of Marcus Feld">
<div><b>Marcus Feld</b><span>CEO, Fieldstone Industrial</span></div>
</div>
</article>
<article class="t-card t3 rv" style="--d:2">
<blockquote>For the first time, "performance metrics" means the same thing in finance, ops, and the boardroom. Our monthly operating review went from a recitation to an argument — the productive kind.</blockquote>
<div class="t-who">
<img src="https://i.pravatar.cc/96?u=priya-raghavan" alt="Portrait of Priya Raghavan">
<div><b>Priya Raghavan</b><span>COO, Novabright Health</span></div>
</div>
</article>
</div>
</div>
</section>
<!-- ══════════ FAQ ══════════ -->
<section class="faq" id="faq">
<div class="wrap faq-grid">
<div class="faq-left rv">
<div class="eyebrow">(07) — Fair Questions</div>
<h2>Straight answers, before you ever get on a call.</h2>
<p>If yours isn't here, bring it to the consultation — candor about fit is part of the service.</p>
<div style="margin-top:1.6rem"><a class="btn" href="#consult">Ask Us Directly <span class="ar">→</span></a></div>
</div>
<div class="rv">
<div class="acc-item open">
<button class="acc-btn" aria-expanded="true"><h3>How does an engagement typically begin?</h3><span class="acc-ico"></span></button>
<div class="acc-body"><div><p>With a two- to three-week diagnostic sprint: your actuals, our benchmarks, and a partner on-site. You receive a baseline you can audit and a business case with three scenarios — including the one where you do nothing. Roughly a third of diagnostics end with us recommending we don't proceed, and we say so.</p></div></div>
</div>
<div class="acc-item">
<button class="acc-btn" aria-expanded="false"><h3>How do you price your work?</h3><span class="acc-ico"></span></button>
<div class="acc-body"><div><p>Fixed fees per phase, gated by milestones agreed in the letter of engagement. For mandates with measurable performance metrics — and most have them — we offer an optional success-fee structure where a portion of our fee is at risk against the modeled outcome.</p></div></div>
</div>
<div class="acc-item">
<button class="acc-btn" aria-expanded="false"><h3>Do you only work with mid-market companies?</h3><span class="acc-ico"></span></button>
<div class="acc-body"><div><p>Our sweet spot is $20M to $2B in revenue, where partner attention still changes outcomes materially. We take a small number of earlier-stage mandates each year when unit economics are clean, and we decline work where scale would force leverage-pyramid staffing.</p></div></div>
</div>
<div class="acc-item">
<button class="acc-btn" aria-expanded="false"><h3>How do you handle confidentiality?</h3><span class="acc-ico"></span></button>
<div class="acc-body"><div><p>A mutual NDA is standard before any data exchange. Working environments are SOC 2-aligned, access is role-scoped, and every benchmark we cite in deliverables is anonymized. We will never name you as a client without written permission — several of the stories above are published precisely because we were allowed to.</p></div></div>
</div>
<div class="acc-item">
<button class="acc-btn" aria-expanded="false"><h3>How are you different from the large consultancies?</h3><span class="acc-ico"></span></button>
<div class="acc-body"><div><p>Staffing, mostly. The partner who scopes your mandate is the partner in your operating review — there is no bait-and-switch to a junior delivery team. Our models are built to be opened by your auditors, our fees don't fund a pyramid, and our publication record means our reputation depends on the numbers holding.</p></div></div>
</div>
</div>
</div>
</section>
<!-- ══════════ CONSULT + NEWSLETTER ══════════ -->
<section class="consult dark" id="consult">
<div class="wrap consult-grid">
<div class="rv">
<div class="eyebrow">Schedule a Consultation</div>
<h2>Bring us the <em>hard problem.</em></h2>
<p>Every engagement starts with a 45-minute working session — your numbers on the table, our partners in the room, and a candid read on whether the math supports the ambition. If it doesn't, we'll say so, and you'll keep the analysis.</p>
<div style="display:flex;gap:1rem;flex-wrap:wrap">
<a class="btn" href="mailto:hello@meridianledger.com?subject=Consultation%20Request">Book the Working Session <span class="ar">→</span></a>
<a class="btn btn-ghost" href="#roi">Run the Model First</a>
</div>
</div>
<div class="news-card rv" style="--d:1">
<div class="eyebrow">The Monday Briefing</div>
<h3>One page. Five signals. Before your first meeting.</h3>
<p>Join 28,000 operators, CFOs, and founders who read Meridian Ledger before the market opens. Editorial first, advisory second — never the other way around.</p>
<form class="news-form" id="newsForm" novalidate>
<input type="email" id="newsEmail" placeholder="you@company.com" aria-label="Email address" required>
<button class="btn" type="submit">Subscribe <span class="ar">→</span></button>
</form>
<div class="news-success" id="newsSuccess" role="status">✓ You're on the list.<br>The first brief lands Monday, 06:00 ET. Unsubscribe anytime.</div>
<div class="news-fine">No noise · No list-selling · 4,800-word cap, always</div>
</div>
</div>
</section>
</main>
<!-- ══════════ FOOTER ══════════ -->
<footer>
<div class="wrap">
<div class="foot-grid">
<div class="foot-brand">
<a class="brand" href="#top" aria-label="Meridian Ledger home">
<img src="https://placehold.co/72x72/B98A2F/10151B?text=ML&font=lora" alt="Meridian Ledger monogram logo" width="46" height="46">
<span>
<span class="brand-name" style="color:var(--paper)">Meridian Ledger</span>
<span class="brand-tag">Signal over noise · Est. 2017</span>
</span>
</a>
<p>Business news, corporate resources, finance, and professional advice — delivered with the rigor of an audit and the pace of a newsroom.</p>
<div class="socials">
<a href="#top" aria-label="LinkedIn"><svg viewBox="0 0 24 24"><path d="M20.45 20.45h-3.55v-5.57c0-1.33-.03-3.04-1.85-3.04-1.86 0-2.14 1.45-2.14 2.94v5.67H9.36V9h3.41v1.56h.05c.48-.9 1.64-1.85 3.37-1.85 3.6 0 4.27 2.37 4.27 5.46v6.28zM5.34 7.43a2.06 2.06 0 1 1 0-4.12 2.06 2.06 0 0 1 0 4.12zM7.12 20.45H3.55V9h3.57v11.45zM22.22 0H1.77C.79 0 0 .77 0 1.72v20.55C0 23.23.79 24 1.77 24h20.45c.98 0 1.78-.77 1.78-1.73V1.72C24 .77 23.2 0 22.22 0z"/></svg></a>
<a href="#top" aria-label="X (Twitter)"><svg viewBox="0 0 24 24"><path d="M18.9 1.15h3.68l-8.04 9.19L24 22.85h-7.41l-5.8-7.58-6.64 7.58H.47l8.6-9.83L0 1.15h7.59l5.24 6.93 6.07-6.93zm-1.29 19.5h2.04L6.49 3.24H4.3l13.31 17.41z"/></svg></a>
<a href="#top" aria-label="YouTube"><svg viewBox="0 0 24 24"><path d="M23.5 6.19a3.02 3.02 0 0 0-2.12-2.14C19.5 3.55 12 3.55 12 3.55s-7.5 0-9.38.5A3.02 3.02 0 0 0 .5 6.19C0 8.07 0 12 0 12s0 3.93.5 5.81a3.02 3.02 0 0 0 2.12 2.14c1.88.5 9.38.5 9.38.5s7.5 0 9.38-.5a3.02 3.02 0 0 0 2.12-2.14C24 15.93 24 12 24 12s0-3.93-.5-5.81zM9.55 15.57V8.43L15.82 12l-6.27 3.57z"/></svg></a>
</div>
</div>
<div class="foot-col">
<h5>Practice</h5>
<ul>
<li><a href="#services">Growth & Market Strategy</a></li>
<li><a href="#services">FP&A & Performance Metrics</a></li>
<li><a href="#services">Digital Transformation</a></li>
<li><a href="#services">M&A & Capital Advisory</a></li>
</ul>
</div>
<div class="foot-col">
<h5>Firm</h5>
<ul>
<li><a href="#cases">Case Studies</a></li>
<li><a href="#portfolio">Portfolio</a></li>
<li><a href="#blog">The Briefing</a></li>
<li><a href="#resources">Whitepapers & Webinars</a></li>
<li><a href="#faq">FAQ</a></li>
</ul>
</div>
<div class="foot-col">
<h5>Offices & Contact</h5>
<address>
440 Federal Street, Suite 1200<br>Boston, MA 02110 — HQ<br>
London · 8 Lothbury, EC2R 7HH<br>
Singapore · 12 Marina View<br><br>
<a href="mailto:hello@meridianledger.com">hello@meridianledger.com</a><br>
<a href="tel:+16175550148">+1 (617) 555-0148</a>
</address>
</div>
</div>
<div class="foot-bottom">
<span>© <span class="year">2025</span> Meridian Ledger Advisory Group LLC. All rights reserved.</span>
<nav aria-label="Legal"><a href="#top">Privacy Policy</a><a href="#top">Terms of Service</a><a href="#top">Disclosures</a></nav>
</div>
<p class="foot-disc">Market data displayed in the ticker is illustrative and does not constitute investment advice. Meridian Ledger Advisory Group is a fictional entity created for demonstration purposes; figures, clients, and quotations are editorial inventions.</p>
</div>
</footer>
<div class="grain" aria-hidden="true"></div>
<script>
(function(){
"use strict";
const RM = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
/* ---------- date & year ---------- */
const d = new Date();
const dateEl = document.getElementById('edition-date');
if(dateEl){ dateEl.textContent = d.toLocaleDateString('en-US',{weekday:'long',month:'long',day:'numeric',year:'numeric'}); }
document.querySelectorAll('.year').forEach(y => y.textContent = d.getFullYear());
/* ---------- ticker: duplicate for seamless loop ---------- */
const track = document.getElementById('tickerTrack');
track.innerHTML += track.innerHTML;
track.setAttribute('aria-hidden','false');
/* ---------- header state + progress bar ---------- */
const masthead = document.querySelector('.masthead');
const progress = document.querySelector('.progress');
function onScroll(){
masthead.classList.toggle('scrolled', window.scrollY > 8);
const h = document.documentElement.scrollHeight - window.innerHeight;
progress.style.width = (h > 0 ? (window.scrollY / h) * 100 : 0) + '%';
}
window.addEventListener('scroll', onScroll, {passive:true}); onScroll();
/* ---------- mobile nav ---------- */
const burger = document.getElementById('burger');
burger.addEventListener('click', () => {
const open = document.body.classList.toggle('nav-open');
burger.setAttribute('aria-expanded', open);
});
document.querySelectorAll('.main-nav a').forEach(a => a.addEventListener('click', () => {
document.body.classList.remove('nav-open');
burger.setAttribute('aria-expanded','false');
}));
/* ---------- scramble decode ---------- */
function scramble(el){
const original = el.textContent;
const chars = 'ABCDEFGHKMNPQRSTUVWXYZ0123456789$%#&';
const dur = 1200, start = performance.now();
(function frame(now){
const p = Math.min(1,(now-start)/dur);
const keep = Math.floor(p * original.length);
let out = '';
for(let i=0;i<original.length;i++){
const c = original[i];
out += (i < keep || ' —·\''.includes(c)) ? c : chars[(Math.random()*chars.length)|0];
}
el.textContent = out;
if(p < 1) requestAnimationFrame(frame); else el.textContent = original;
})(start);
}
/* ---------- count up ---------- */
function countUp(el){
const target = parseFloat(el.dataset.count);
const dec = parseInt(el.dataset.decimals || 0, 10);
if(RM){ el.textContent = target.toFixed(dec); return; }
const dur = 1700, start = performance.now();
const ease = t => 1 - Math.pow(1 - t, 3);
(function frame(now){
const p = Math.min(1,(now-start)/dur);
el.textContent = (target * ease(p)).toFixed(dec);
if(p < 1) requestAnimationFrame(frame);
})(start);
}
/* ---------- reveal observer ---------- */
const io = new IntersectionObserver(entries => {
entries.forEach(e => {
if(!e.isIntersecting) return;
const el = e.target;
el.classList.add('in');
if(!RM && el.hasAttribute('data-scramble')) scramble(el);
el.querySelectorAll('[data-count]').forEach(countUp);
if(el.hasAttribute('data-count')) countUp(el);
io.unobserve(el);
});
}, {threshold:.18, rootMargin:'0px 0px -6% 0px'});
document.querySelectorAll('.rv,[data-scramble]').forEach(el => io.observe(el));
/* ---------- ROI LAB ---------- */
const rRev = document.getElementById('r-rev'),
rUp = document.getElementById('r-up'),
rMg = document.getElementById('r-mg'),
bRev = document.getElementById('b-rev'),
bUp = document.getElementById('b-up'),
bMg = document.getElementById('b-mg'),
oLift = document.getElementById('o-lift'),
oThree = document.getElementById('o-three'),
oRoi = document.getElementById('o-roi'),
oPay = document.getElementById('o-pay'),
blCur = document.getElementById('bl-cur'),
blProj = document.getElementById('bl-proj'),
barCur = document.getElementById('bar-cur'),
barProj = document.getElementById('bar-proj');
const FEE = 96000;
let disp = {lift:0, three:0, roi:0, pay:52}, target = {lift:0, three:0, roi:0, pay:52}, raf = null;
function fmt(n){
if(n >= 1e9) return '$' + (n/1e9).toFixed(2) + 'B';
if(n >= 1e6) return '$' + (n/1e6).toFixed(2) + 'M';
if(n >= 1e3) return '$' + Math.round(n/1e3) + 'K';
return '$' + Math.round(n);
}
function paintRange(inp){
const p = ((inp.value - inp.min) / (inp.max - inp.min)) * 100;
inp.style.setProperty('--p', p + '%');
}
function render(){
oLift.textContent = fmt(disp.lift);
oThree.textContent = fmt(disp.three);
oRoi.textContent = disp.roi.toFixed(1) + '×';
oPay.textContent = Math.max(1, Math.round(disp.pay)) + ' wks';
}
function tick(){
let done = true;
for(const k in target){
disp[k] += (target[k] - disp[k]) * 0.18;
if(Math.abs(target[k] - disp[k]) > Math.max(0.01, target[k]*0.002)) done = false;
else disp[k] = target[k];
}
render();
if(!done){ raf = requestAnimationFrame(tick); } else { raf = null; }
}
function compute(){
const revE = +rRev.value * 1e6, up = +rUp.value, mg = +rMg.value;
bRev.textContent = '$' + rRev.value + 'M';
bUp.textContent = rUp.value + '%';
bMg.textContent = mg + '%';
[rRev, rUp, rMg].forEach(paintRange);
const lift = revE * (up/100) * (mg/100);
const cur = revE * (mg/100);
const proj = cur + lift;
target = { lift, three: lift * 2.85, roi: lift / FEE, pay: FEE / (lift/52) };
blCur.textContent = fmt(cur); blProj.textContent = fmt(proj);
barCur.style.width = Math.min(100, (cur/proj)*100) + '%';
barProj.style.width = '100%';
if(RM){ disp = {...target}; render(); }
else if(!raf){ raf = requestAnimationFrame(tick); }
}
[rRev, rUp, rMg].forEach(inp => inp.addEventListener('input', compute));
compute();
/* ---------- FAQ accordion ---------- */
document.querySelectorAll('.acc-item').forEach(item => {
const btn = item.querySelector('.acc-btn');
btn.addEventListener('click', () => {
const isOpen = item.classList.contains('open');
document.querySelectorAll('.acc-item.open').forEach(o => {
o.classList.remove('open');
o.querySelector('.acc-btn').setAttribute('aria-expanded','false');
});
if(!isOpen){ item.classList.add('open'); btn.setAttribute('aria-expanded','true'); }
});
});
/* ---------- newsletter ---------- */
const form = document.getElementById('newsForm');
if(form){
form.addEventListener('submit', e => {
e.preventDefault();
const email = document.getElementById('newsEmail');
if(!email.value || !email.value.includes('@')){
form.classList.remove('shake'); void form.offsetWidth; form.classList.add('shake');
email.focus(); return;
}
form.style.display = 'none';
document.getElementById('newsSuccess').style.display = 'block';
});
}
})();
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T10:00:29.712Z",
"url": "https://benchmark.aimac.invalid/70367d5f7ed91418f2d1962a641fbf8a386fb8ea3445a273f3fe94938ec10c0a.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "select-name",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "td-headers-attr",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
"help": "Table cells that use the headers attribute must only refer to cells in the same table",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
"nodes": []
},
{
"id": "th-has-data-cells",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
"help": "Table headers in a data table must refer to data cells",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-allowed-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attributes are used correctly for the defined role"
}
],
"none": [
{
"id": "aria-unsupported-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute is supported"
}
],
"impact": null,
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
]
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-conditional-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"none": [],
"impact": null,
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
]
},
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body>",
"target": [
"body"
]
}
]
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "focusable-modal-open",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements while a modal is open"
},
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
}
],
"none": [],
"impact": null,
"html": "<div class=\"progress\" aria-hidden=\"true\" style=\"width: 0%;\"></div>",
"target": [
".progress"
]
}
]
},
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "ARIA attribute is allowed"
}
],
"impact": null,
"html": "<div class=\"ticker-track\" id=\"tickerTrack\" aria-hidden=\"false\">",
"target": [
"#tickerTrack"
]
}
]
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "aria-valid-attr-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute values are valid"
},
{
"id": "aria-errormessage",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-errormessage exists and references elements visible to screen readers that use a supported aria-errormessage technique"
},
{
"id": "aria-level",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-level values are valid"
}
],
"none": [],
"impact": null,
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
]
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-valid-attr",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "ARIA attribute name is valid"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<span style=\"--d:.05s\">Advisory that</span>",
"target": [
".line:nth-child(1) > span"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button class=\"acc-btn\" aria-expanded=\"true\"><h3>How does an engagement typically begin?</h3><span class=\"acc-ico\"></span></button>",
"target": [
".open > .acc-btn"
]
}
]
},
{
"id": "bypass",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag241",
"section508",
"section508.22.o",
"TTv5",
"TT9.a",
"EN-301-549",
"EN-9.2.4.1"
],
"description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
"help": "Page must have means to bypass repeated blocks",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "internal-link-present",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Valid skip link found"
},
{
"id": "header-present",
"data": null,
"relatedNodes": [
{
"html": "<h1 class=\"hl\">\n <span class=\"line\"><span style=\"--d:.05s\">Advisory that</span></span>\n <span class=\"line\"><span style=\"--d:.18s\">answers to the</span></span>\n <span class=\"line\"><span style=\"--d:.31s\"><em>balance sheet.</em></span></span>\n </h1>",
"target": [
"h1"
]
},
{
"html": "<h2>The Briefing</h2>",
"target": [
"#blog > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3><a href=\"#blog\">The Quiet Recalibration: mid-market capex shifts from expansion to efficiency</a></h3>",
"target": [
".lead-story > h3"
]
},
{
"html": "<h4>The refinancing window CFOs shouldn't sleep on</h4>",
"target": [
".sub-story:nth-child(1) > div > h4"
]
},
{
"html": "<h4>Digital transformation without the theater: a scorecard that survives contact with ops</h4>",
"target": [
".sub-story:nth-child(2) > div > h4"
]
},
{
"html": "<h4>The succession problem hiding in family-held manufacturing</h4>",
"target": [
".sub-story:nth-child(3) > div > h4"
]
},
{
"html": "<h5>Upcoming Webinars</h5>",
"target": [
".side-block.rv:nth-child(1) > h5"
]
},
{
"html": "<h6>Q4 Capital Planning Roundtable</h6>",
"target": [
".webinar:nth-child(2) > div:nth-child(2) > h6"
]
},
{
"html": "<h6>ROI Measurement That Survives an Audit</h6>",
"target": [
".webinar:nth-child(3) > div:nth-child(2) > h6"
]
},
{
"html": "<h6>AI in the Back Office: Build vs. Buy</h6>",
"target": [
".webinar:nth-child(4) > div:nth-child(2) > h6"
]
},
{
"html": "<h5>Expert Tip</h5>",
"target": [
".tip > h5"
]
},
{
"html": "<h5>Featured Resource</h5>",
"target": [
".resource > h5"
]
},
{
"html": "<h2>Four practices. One standard: it shows up in the numbers.</h2>",
"target": [
".svc-left > h2"
]
},
{
"html": "<h3>Growth & Market Strategy</h3>",
"target": [
".svc-item.rv:nth-child(1) > div:nth-child(2) > h3"
]
},
{
"html": "<h3>FP&A & Performance Metrics</h3>",
"target": [
".svc-item.rv:nth-child(2) > div:nth-child(2) > h3"
]
},
{
"html": "<h3>Digital Transformation & Operations</h3>",
"target": [
".svc-item.rv:nth-child(3) > div:nth-child(2) > h3"
]
},
{
"html": "<h3>M&A & Capital Advisory</h3>",
"target": [
".svc-item.rv:nth-child(4) > div:nth-child(2) > h3"
]
},
{
"html": "<h2>Growth stories, audited.</h2>",
"target": [
"#cases > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>A 14-node distribution network, redesigned around service-level economics</h3>",
"target": [
".case-card:nth-child(1) > .case-body > h3"
]
},
{
"html": "<h3>Re-architecting pricing for a 40-clinic group \u2014 without spooking patients</h3>",
"target": [
".case-card:nth-child(2) > .case-body > h3"
]
},
{
"html": "<h3>Digital transformation the plant floor actually adopted</h3>",
"target": [
".case-card:nth-child(3) > .case-body > h3"
]
},
{
"html": "<h2>Where we've done the work.</h2>",
"target": [
"#portfolio > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h3>Fintech</h3>",
"target": [
".pf-tile:nth-child(1) > figcaption > h3"
]
},
{
"html": "<h3>Manufacturing</h3>",
"target": [
".pf-tile:nth-child(2) > figcaption > h3"
]
},
{
"html": "<h3>Healthcare</h3>",
"target": [
".pf-tile:nth-child(3) > figcaption > h3"
]
},
{
"html": "<h3>Retail & CPG</h3>",
"target": [
".pf-tile:nth-child(4) > figcaption > h3"
]
},
{
"html": "<h3>Energy & Utilities</h3>",
"target": [
".pf-tile:nth-child(5) > figcaption > h3"
]
},
{
"html": "<h3>Logistics & Supply Chain</h3>",
"target": [
".pf-tile:nth-child(6) > figcaption > h3"
]
},
{
"html": "<h2>Model your upside in ninety seconds.</h2>",
"target": [
"#roi > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h2>What operators say once the deck is closed.</h2>",
"target": [
"#voices > .wrap > .sec-head.rv > div > h2"
]
},
{
"html": "<h2>Straight answers, before you ever get on a call.</h2>",
"target": [
".faq-left > h2"
]
},
{
"html": "<h3>How does an engagement typically begin?</h3>",
"target": [
".open > .acc-btn > h3"
]
},
{
"html": "<h3>How do you price your work?</h3>",
"target": [
".acc-item:nth-child(2) > .acc-btn > h3"
]
},
{
"html": "<h3>Do you only work with mid-market companies?</h3>",
"target": [
".acc-item:nth-child(3) > .acc-btn > h3"
]
},
{
"html": "<h3>How do you handle confidentiality?</h3>",
"target": [
".acc-item:nth-child(4) > .acc-btn > h3"
]
},
{
"html": "<h3>How are you different from the large consultancies?</h3>",
"target": [
".acc-item:nth-child(5) > .acc-btn > h3"
]
},
{
"html": "<h2>Bring us the <em>hard problem.</em></h2>",
"target": [
".consult-grid > .rv:nth-child(1) > h2"
]
},
{
"html": "<h3>One page. Five signals. Before your first meeting.</h3>",
"target": [
".news-card > h3"
]
},
{
"html": "<h5>Practice</h5>",
"target": [
".foot-col:nth-child(2) > h5"
]
},
{
"html": "<h5>Firm</h5>",
"target": [
".foot-col:nth-child(3) > h5"
]
},
{
"html": "<h5>Offices & Contact</h5>",
"target": [
".foot-col:nth-child(4) > h5"
]
}
],
"impact": "serious",
"message": "Page has a heading"
},
{
"id": "landmark",
"data": null,
"relatedNodes": [
{
"html": "<main id=\"main\">",
"target": [
"#main"
]
}
],
"impact": "serious",
"message": "Page has a landmark region"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#f4efe3",
"bgColor": "#0b0f14",
"contrastRatio": 16.75,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has sufficient color contrast of 16.75"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<span class=\"v\">4,812.66</span>",
"target": [
".tk:nth-child(1) > .v"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "duplicate-id-aria",
"data": "mainNav",
"relatedNodes": [],
"impact": "critical",
"message": "Document has no elements referenced with ARIA or labels that share the same id attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<nav class=\"main-nav\" id=\"mainNav\" aria-label=\"Primary\">",
"target": [
"#mainNav"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"r-rev\">Annual revenue</label>",
"target": [
"label[for=\"r-rev\"]"
]
}
],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<input type=\"range\" id=\"r-rev\" min=\"2\" max=\"250\" step=\"2\" value=\"48\" aria-label=\"Annual revenue in millions\" style=\"--p: 18.548387096774192%;\">",
"target": [
"#r-rev"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://placehold.co/72x72/10151B/B98A2F?text=ML&font=lora\" alt=\"Meridian Ledger monogram logo\" width=\"46\" height=\"46\">",
"target": [
".wrap > .brand[aria-label=\"Meridian Ledger home\"][href$=\"#top\"] > img[alt=\"Meridian Ledger monogram logo\"][width=\"46\"][height=\"46\"]"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "explicit-label",
"data": null,
"relatedNodes": [
{
"html": "<label for=\"r-rev\">Annual revenue</label>",
"target": [
"label[for=\"r-rev\"]"
]
}
],
"impact": "critical",
"message": "Element has an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute exists and is not empty"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input type=\"range\" id=\"r-rev\" min=\"2\" max=\"250\" step=\"2\" value=\"48\" aria-label=\"Annual revenue in millions\" style=\"--p: 18.548387096774192%;\">",
"target": [
"#r-rev"
]
}
]
},
{
"id": "link-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a class=\"skip\" href=\"#main\">Skip to content</a>",
"target": [
".skip"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul class=\"svc-principles\">\n <li>Partner-led staffing, end to end</li>\n <li>Fixed-fee phases, milestone gated</li>\n <li>Audit-ready models & baseline honesty</li>\n </ul>",
"target": [
".svc-principles"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li>Partner-led staffing, end to end</li>",
"target": [
".svc-principles > li:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://placehold.co/72x72/10151B/B98A2F?text=ML&font=lora\" alt=\"Meridian Ledger monogram logo\" width=\"46\" height=\"46\">",
"target": [
".wrap > .brand[aria-label=\"Meridian Ledger home\"][href$=\"#top\"] > img[alt=\"Meridian Ledger monogram logo\"][width=\"46\"][height=\"46\"]"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-size",
"data": {
"minSize": 24,
"width": 140,
"height": 42.2
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (140px by 42.2px, should be at least 24px by 24px)"
},
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a class=\"skip\" href=\"#main\">Skip to content</a>",
"target": [
".skip"
]
}
]
}
],
"incomplete": [
{
"id": "aria-prohibited-attr",
"impact": "serious",
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "aria-prohibited-attr",
"data": {
"role": null,
"nodeName": "div",
"messageKey": "noRoleSingular",
"prohibited": [
"aria-label"
]
},
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute is not well supported on a div with no valid role attribute."
}
],
"impact": "serious",
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
],
"failureSummary": "Fix all of the following:\n aria-label attribute is not well supported on a div with no valid role attribute."
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"messageKey": "nonBmp"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element content contains only non-text characters"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"ar\">\u2192</span>",
"target": [
".nav-cta > .ar"
],
"failureSummary": "Fix any of the following:\n Element content contains only non-text characters"
}
]
}
],
"violations": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#1e7a4f",
"bgColor": "#0b0f14",
"contrastRatio": 3.61,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"up\">\u25b2 0.62%</span>",
"target": [
".tk:nth-child(1) > .up"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#b23b3b",
"bgColor": "#0b0f14",
"contrastRatio": 3.27,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"down\">\u25bc 0.03</span>",
"target": [
".tk:nth-child(2) > .down"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#1e7a4f",
"bgColor": "#0b0f14",
"contrastRatio": 3.61,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"up\">\u25b2 1.02%</span>",
"target": [
".tk:nth-child(3) > .up"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#1e7a4f",
"bgColor": "#0b0f14",
"contrastRatio": 3.61,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"up\">\u25b2 0.28%</span>",
"target": [
".tk:nth-child(4) > .up"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#b23b3b",
"bgColor": "#0b0f14",
"contrastRatio": 3.27,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"down\">\u25bc 0.11%</span>",
"target": [
".tk:nth-child(5) > .down"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#b23b3b",
"bgColor": "#0b0f14",
"contrastRatio": 3.27,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"down\">\u25bc 2.41%</span>",
"target": [
".tk:nth-child(7) > .down"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "7.0pt (9.28px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<header class=\"masthead\" id=\"top\">",
"target": [
"#top"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"brand-tag\">Signal over noise \u00b7 Est. 2017</span>",
"target": [
".wrap > .brand[aria-label=\"Meridian Ledger home\"][href$=\"#top\"] > span > .brand-tag"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "8.6pt (11.52px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow in\" data-scramble=\"\">The Operator's Briefing \u2014 Vol. 08</span>",
"target": [
".in"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#777775",
"bgColor": "#f4efe3",
"contrastRatio": 3.91,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>Boston \u00b7 London \u00b7 Singapore</span>",
"target": [
".hero-meta > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#777775",
"bgColor": "#f4efe3",
"contrastRatio": 3.91,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span id=\"edition-date\">Thursday, November 12, 2026</span>",
"target": [
"#edition-date"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#777775",
"bgColor": "#f4efe3",
"contrastRatio": 3.91,
"fontSize": "7.9pt (10.56px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>214 mandates delivered</span>",
"target": [
".hero-meta > span:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 7.9pt (10.56px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8d8d89",
"bgColor": "#f4efe3",
"contrastRatio": 2.9,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.9 (foreground color: #8d8d89, background color: #f4efe3, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"lbl\">Selected advisory clients</div>",
"target": [
".clients > .lbl"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.9 (foreground color: #8d8d89, background color: #f4efe3, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999893",
"bgColor": "#f4efe3",
"contrastRatio": 2.51,
"fontSize": "11.4pt (15.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>HARBOR & PINE</span>",
"target": [
".clients-row > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999893",
"bgColor": "#f4efe3",
"contrastRatio": 2.51,
"fontSize": "11.4pt (15.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>NOVABRIGHT</span>",
"target": [
".clients-row > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999893",
"bgColor": "#f4efe3",
"contrastRatio": 2.51,
"fontSize": "11.4pt (15.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>FIELDSTONE INDUSTRIAL</span>",
"target": [
".clients-row > span:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999893",
"bgColor": "#f4efe3",
"contrastRatio": 2.51,
"fontSize": "11.4pt (15.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>CALDERA CAPITAL</span>",
"target": [
".clients-row > span:nth-child(4)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999893",
"bgColor": "#f4efe3",
"contrastRatio": 2.51,
"fontSize": "11.4pt (15.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>OTTOLINE RETAIL</span>",
"target": [
".clients-row > span:nth-child(5)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#999893",
"bgColor": "#f4efe3",
"contrastRatio": 2.51,
"fontSize": "11.4pt (15.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>VEXEL ENERGY</span>",
"target": [
".clients-row > span:nth-child(6)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.51 (foreground color: #999893, background color: #f4efe3, font size: 11.4pt (15.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#0b0f14",
"contrastRatio": 3.88,
"fontSize": "7.0pt (9.28px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer>",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.88 (foreground color: #8f6a20, background color: #0b0f14, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"brand-tag\">Signal over noise \u00b7 Est. 2017</span>",
"target": [
".foot-brand > .brand[aria-label=\"Meridian Ledger home\"][href$=\"#top\"] > span > .brand-tag"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.88 (foreground color: #8f6a20, background color: #0b0f14, font size: 7.0pt (9.28px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#747471",
"bgColor": "#0b0f14",
"contrastRatio": 4.09,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer>",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>\u00a9 <span class=\"year\">2026</span> Meridian Ledger Advisory Group LLC. All rights reserved.</span>",
"target": [
".foot-bottom > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#747471",
"bgColor": "#0b0f14",
"contrastRatio": 4.09,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer>",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"year\">2026</span>",
"target": [
".year"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#747471",
"bgColor": "#0b0f14",
"contrastRatio": 4.09,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer>",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#top\">Privacy Policy</a>",
"target": [
"nav[aria-label=\"Legal\"] > a[href$=\"#top\"]:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#747471",
"bgColor": "#0b0f14",
"contrastRatio": 4.09,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer>",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#top\">Terms of Service</a>",
"target": [
"nav[aria-label=\"Legal\"] > a[href$=\"#top\"]:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#747471",
"bgColor": "#0b0f14",
"contrastRatio": 4.09,
"fontSize": "7.7pt (10.24px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer>",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a href=\"#top\">Disclosures</a>",
"target": [
"nav[aria-label=\"Legal\"] > a[href$=\"#top\"]:nth-child(3)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.09 (foreground color: #747471, background color: #0b0f14, font size: 7.7pt (10.24px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#515252",
"bgColor": "#0b0f14",
"contrastRatio": 2.45,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<footer>",
"target": [
"footer"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.45 (foreground color: #515252, background color: #0b0f14, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<p class=\"foot-disc\">Market data displayed in the ticker is illustrative and does not constitute investment advice. Meridian Ledger Advisory Group is a fictional entity created for demonstration purposes; figures, clients, and quotations are editorial inventions.</p>",
"target": [
".foot-disc"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.45 (foreground color: #515252, background color: #0b0f14, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "8.6pt (11.52px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"eyebrow in\" data-scramble=\"\">The Operator's Briefing \u2014 Vol. 08</span>",
"target": [
"span[data-scramble=\"\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(01) \u2014 NEWS & ANALYSIS</div>",
"target": [
".sec-head.in.rv > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#777775",
"bgColor": "#f4efe3",
"contrastRatio": 3.91,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"meta\">Oct 06 \u00b7 8 min read \u00b7 by E. Marsh</span>",
"target": [
".story-tags > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "8.6pt (11.52px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<a class=\"read-link\" href=\"#blog\">Read the analysis <span>\u2192</span></a>",
"target": [
".read-link[href$=\"#blog\"]"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7b7b",
"bgColor": "#fbf8f0",
"contrastRatio": 4,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-block rv in\">",
"target": [
".side-block.in.rv"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"meta\">45 min \u00b7 FP&A practice</span>",
"target": [
".webinar:nth-child(2) > div:nth-child(2) > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7b7b",
"bgColor": "#fbf8f0",
"contrastRatio": 4,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-block rv in\">",
"target": [
".side-block.in.rv"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"meta\">60 min \u00b7 Advisory bench</span>",
"target": [
".webinar:nth-child(3) > div:nth-child(2) > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7b7b",
"bgColor": "#fbf8f0",
"contrastRatio": 4,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"side-block rv in\">",
"target": [
".side-block.in.rv"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"meta\">45 min \u00b7 Digital practice</span>",
"target": [
".webinar:nth-child(4) > div:nth-child(2) > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#777775",
"bgColor": "#f4efe3",
"contrastRatio": 3.91,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"meta\" style=\"margin-bottom:.35rem\">Finance \u00b7 6 min</div>",
"target": [
".sub-story:nth-child(1) > div > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#777775",
"bgColor": "#f4efe3",
"contrastRatio": 3.91,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"meta\" style=\"margin-bottom:.35rem\">Operations \u00b7 7 min</div>",
"target": [
".sub-story:nth-child(2) > div > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#777775",
"bgColor": "#f4efe3",
"contrastRatio": 3.91,
"fontSize": "8.2pt (10.88px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"meta\" style=\"margin-bottom:.35rem\">Governance \u00b7 5 min</div>",
"target": [
".sub-story:nth-child(3) > div > .meta"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.91 (foreground color: #777775, background color: #f4efe3, font size: 8.2pt (10.88px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#1e7a4f",
"bgColor": "#0b0f14",
"contrastRatio": 3.61,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"up\">\u25b2 1.2</span>",
"target": [
".tk:nth-child(8) > .up"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#ebe4d2",
"contrastRatio": 3.89,
"fontSize": "8.6pt (11.52px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"eyebrow\">(02) \u2014 Advisory Services</div>",
"target": [
".svc-left > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">01</div>",
"target": [
".svc-item.in.rv:nth-child(1) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">02</div>",
"target": [
".svc-item.in.rv:nth-child(2) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">03</div>",
"target": [
".svc-item.in.rv:nth-child(3) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">04</div>",
"target": [
".svc-item.in.rv:nth-child(4) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(01) \u2014 NEWS & ANALYSIS</div>",
"target": [
"#blog > .wrap > .sec-head.in.rv > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#10151b",
"contrastRatio": 3.71,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"cases dark\" id=\"cases\">",
"target": [
"#cases"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.71 (foreground color: #8f6a20, background color: #10151b, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(03) \u2014 CLIENT SUCCESS</div>",
"target": [
"#cases > .wrap > .sec-head.in.rv > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.71 (foreground color: #8f6a20, background color: #10151b, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(04) \u2014 PORTFOLIO</div>",
"target": [
"#portfolio > .wrap > .sec-head.in.rv > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#1e7a4f",
"bgColor": "#0b0f14",
"contrastRatio": 3.61,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"up\">\u25b2 0.8</span>",
"target": [
".tk:nth-child(9) > .up"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.61 (foreground color: #1e7a4f, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#ebe4d2",
"contrastRatio": 3.89,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"roi\" id=\"roi\">",
"target": [
"#roi"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(05) \u2014 THE ROI LAB</div>",
"target": [
"#roi > .wrap > .sec-head.in.rv > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868786",
"bgColor": "#fbf8f0",
"contrastRatio": 3.39,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"roi-panel rv in\">",
"target": [
".roi-panel"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>$2M</span>",
"target": [
".ctrl:nth-child(1) > .ctrl-scale > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868786",
"bgColor": "#fbf8f0",
"contrastRatio": 3.39,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"roi-panel rv in\">",
"target": [
".roi-panel"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>$250M</span>",
"target": [
".ctrl:nth-child(1) > .ctrl-scale > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868786",
"bgColor": "#fbf8f0",
"contrastRatio": 3.39,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"roi-panel rv in\">",
"target": [
".roi-panel"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>2% conservative</span>",
"target": [
".ctrl:nth-child(2) > .ctrl-scale > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868786",
"bgColor": "#fbf8f0",
"contrastRatio": 3.39,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"roi-panel rv in\">",
"target": [
".roi-panel"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>20% aggressive</span>",
"target": [
".ctrl:nth-child(2) > .ctrl-scale > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868786",
"bgColor": "#fbf8f0",
"contrastRatio": 3.39,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"roi-panel rv in\">",
"target": [
".roi-panel"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>5%</span>",
"target": [
".ctrl:nth-child(3) > .ctrl-scale > span:nth-child(1)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#868786",
"bgColor": "#fbf8f0",
"contrastRatio": 3.39,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"roi-panel rv in\">",
"target": [
".roi-panel"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>35%</span>",
"target": [
".ctrl:nth-child(3) > .ctrl-scale > span:nth-child(2)"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.39 (foreground color: #868786, background color: #fbf8f0, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(06) \u2014 CLIENT VOICES</div>",
"target": [
"#voices > .wrap > .sec-head.in.rv > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7b7b",
"bgColor": "#fbf8f0",
"contrastRatio": 4,
"fontSize": "7.4pt (9.92px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"t-card t1 rv in\">",
"target": [
".t1"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>CFO, Harbor & Pine Logistics</span>",
"target": [
".t1 > .t-who > div > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7b7b",
"bgColor": "#fbf8f0",
"contrastRatio": 4,
"fontSize": "7.4pt (9.92px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"t-card t2 rv in\" style=\"--d:1\">",
"target": [
".t2"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>CEO, Fieldstone Industrial</span>",
"target": [
".t2 > .t-who > div > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#7a7b7b",
"bgColor": "#fbf8f0",
"contrastRatio": 4,
"fontSize": "7.4pt (9.92px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<article class=\"t-card t3 rv in\" style=\"--d:2\">",
"target": [
".t3"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span>COO, Novabright Health</span>",
"target": [
".t3 > .t-who > div > span"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4 (foreground color: #7a7b7b, background color: #fbf8f0, font size: 7.4pt (9.92px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#ebe4d2",
"contrastRatio": 3.89,
"fontSize": "8.6pt (11.52px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"faq\" id=\"faq\">",
"target": [
"#faq"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"eyebrow\">(07) \u2014 Fair Questions</div>",
"target": [
".faq-left > .eyebrow"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 8.6pt (11.52px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(01) \u2014 NEWS & ANALYSIS</div>",
"target": [
"#blog > .wrap > .sec-head.rv.in > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">01</div>",
"target": [
".svc-item.rv.in:nth-child(1) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">02</div>",
"target": [
".svc-item.rv.in:nth-child(2) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">03</div>",
"target": [
".svc-item.rv.in:nth-child(3) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#a19e94",
"bgColor": "#ebe4d2",
"contrastRatio": 2.11,
"fontSize": "26.4pt (35.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "3:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"services\" id=\"services\">",
"target": [
"#services"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"svc-num\">04</div>",
"target": [
".svc-item.rv.in:nth-child(4) > .svc-num"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 2.11 (foreground color: #a19e94, background color: #ebe4d2, font size: 26.4pt (35.2px), font weight: normal). Expected contrast ratio of 3:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#10151b",
"contrastRatio": 3.71,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"cases dark\" id=\"cases\">",
"target": [
"#cases"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.71 (foreground color: #8f6a20, background color: #10151b, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(03) \u2014 CLIENT SUCCESS</div>",
"target": [
"#cases > .wrap > .sec-head.rv.in > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.71 (foreground color: #8f6a20, background color: #10151b, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(04) \u2014 PORTFOLIO</div>",
"target": [
"#portfolio > .wrap > .sec-head.rv.in > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#ebe4d2",
"contrastRatio": 3.89,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<section class=\"roi\" id=\"roi\">",
"target": [
"#roi"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(05) \u2014 THE ROI LAB</div>",
"target": [
"#roi > .wrap > .sec-head.rv.in > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.89 (foreground color: #8f6a20, background color: #ebe4d2, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#8f6a20",
"bgColor": "#f4efe3",
"contrastRatio": 4.3,
"fontSize": "9.6pt (12.8px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<body>",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"idx\">(06) \u2014 CLIENT VOICES</div>",
"target": [
"#voices > .wrap > .sec-head.rv.in > div > .idx"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 4.3 (foreground color: #8f6a20, background color: #f4efe3, font size: 9.6pt (12.8px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#6e706f",
"bgColor": "#141b22",
"contrastRatio": 3.48,
"fontSize": "7.2pt (9.6px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"news-card rv in\" style=\"--d:1\">",
"target": [
".news-card"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.48 (foreground color: #6e706f, background color: #141b22, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<div class=\"news-fine\">No noise \u00b7 No list-selling \u00b7 4,800-word cap, always</div>",
"target": [
".news-fine"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.48 (foreground color: #6e706f, background color: #141b22, font size: 7.2pt (9.6px), font weight: normal). Expected contrast ratio of 4.5:1"
},
{
"any": [
{
"id": "color-contrast",
"data": {
"fgColor": "#b23b3b",
"bgColor": "#0b0f14",
"contrastRatio": 3.27,
"fontSize": "8.4pt (11.2px)",
"fontWeight": "normal",
"messageKey": null,
"expectedContrastRatio": "4.5:1",
"shadowColor": null
},
"relatedNodes": [
{
"html": "<div class=\"ticker\" aria-label=\"Illustrative market ticker\">",
"target": [
".ticker"
]
}
],
"impact": "serious",
"message": "Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"down\">\u25bc 0.6%</span>",
"target": [
".tk:nth-child(10) > .down"
],
"failureSummary": "Fix any of the following:\n Element has insufficient color contrast of 3.27 (foreground color: #b23b3b, background color: #0b0f14, font size: 8.4pt (11.2px), font weight: normal). Expected contrast ratio of 4.5:1"
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 9709
},
{
"y": 576,
"height": 9709
},
{
"y": 1152,
"height": 9709
},
{
"y": 1728,
"height": 9709
},
{
"y": 2304,
"height": 9709
},
{
"y": 2880,
"height": 9709
},
{
"y": 3456,
"height": 9709
},
{
"y": 4032,
"height": 9709
},
{
"y": 4608,
"height": 9709
},
{
"y": 5184,
"height": 9709
},
{
"y": 5760,
"height": 9709
},
{
"y": 6336,
"height": 9709
},
{
"y": 6912,
"height": 9709
},
{
"y": 7488,
"height": 9709
},
{
"y": 8064,
"height": 9709
},
{
"y": 8640,
"height": 9709
},
{
"y": 8989,
"height": 9709
}
],
"scans": 18,
"max_states": 512,
"settle_ms": 5000,
"page_timeout_seconds": 150,
"layout_stability": "consecutive 100ms size samples within one CSS pixel",
"animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
"interactive_states": "not exercised",
"horizontal_scroll": "not exercised"
}
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Business" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.
**Client & Category:**
- Industry: "Business"
- Description: Business news, corporate resources, finance, and professional advice.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Business" category.
2. **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3. **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.
**Content & Structure Requirements (Deliver a COMPLETE page):**
- **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
- **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Case Studies", "Blog", "Portfolio".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Business" category. Consider themes similar to: "Client Success", "Consulting Services", "Growth Stories".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "ROI optimization", "performance metrics", "digital transformation".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "Learn More", "Download Whitepaper", "Schedule Consultation".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Business" sector. Ideas similar but not limited to: "assessment quiz".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "expert tips", "upcoming webinars", "featured resources".
- **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
- **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.