html {
    font-size: clamp(15px, calc(14.2px + 0.1vw), 16px);
}

body {
    font-size: clamp(15px, calc(14.2px + 0.1vw), 16px);
}

.publication-home {
    --home-navy: #071b31;
    --home-blue: #0a3f70;
    --home-blue-light: #eaf2f8;
    --home-green: #0c825c;
    --home-green-light: #eaf7f1;
    --home-gold: #bb7412;
    --home-red: #a33b2c;
    --home-paper: #fffefd;
    --home-wash: #f3f6f8;
    --home-rule: #c9d6e2;
    --home-muted: #50677e;
    color: var(--home-navy);
    padding: 0 0 3rem;
}

.publication-home *,
.publication-home *::before,
.publication-home *::after {
    box-sizing: border-box;
}

.publication-home a {
    color: inherit;
    text-decoration-color: rgb(7 27 49 / 0.3);
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

.publication-home a:hover {
    color: var(--home-blue);
    text-decoration-color: currentColor;
}

.publication-home a:focus-visible,
.publication-home button:focus-visible {
    outline: 3px solid #f0aa24;
    outline-offset: 3px;
}

.publication-home img {
    display: block;
    max-width: 100%;
}

.publication-home p,
.publication-home li {
    text-wrap: pretty;
}

.publication-home__masthead {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    overflow: clip;
    border-top: 0;
    border-bottom: 1px solid var(--home-rule);
    background:
        linear-gradient(105deg, rgb(255 255 255 / 0.98), rgb(248 251 253 / 0.96)),
        var(--home-paper);
}

.publication-home__frame {
    width: min(calc(100% - 2rem), 1600px);
    margin-right: auto;
    margin-left: auto;
}

.publication-home__edition {
    border-bottom: 1px solid var(--home-rule);
    background: var(--home-navy);
    color: #fff;
}

.publication-home__edition-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 1.25rem;
    align-items: center;
    min-height: 2.25rem;
    padding: 0.38rem 0;
    font-family: "IBM Plex Sans", sans-serif;
    font-size: 0.68rem;
    font-weight: 650;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.publication-home__edition-inner p {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    margin: 0;
}

.publication-home__edition-inner > :nth-child(2) {
    color: #c7d7e5;
}

.publication-home__edition a {
    color: #fff;
}

.publication-home__edition-mark {
    width: 0.56rem;
    height: 0.56rem;
    border-radius: 50%;
    background: #46d5a1;
    box-shadow: 0 0 0 0.2rem rgb(70 213 161 / 0.18);
}

.publication-home__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.75fr) minmax(18rem, 0.55fr);
    gap: 0;
    min-height: 15rem;
    border-right: 1px solid var(--home-rule);
    border-left: 1px solid var(--home-rule);
}

.publication-home__hero-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.55rem, 2.75vw, 3rem) clamp(1.25rem, 3.35vw, 3.8rem);
    background:
        radial-gradient(circle at 94% 14%, rgb(12 130 92 / 0.12), transparent 17rem),
        linear-gradient(120deg, #fff 25%, #f5f9fb 100%);
}

.publication-home__kicker,
.section-heading__kicker {
    margin: 0 0 0.55rem;
    color: var(--home-green);
    font: 700 0.76rem/1.25 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.publication-home__headline {
    max-width: 15ch;
    margin: 0;
    color: var(--home-navy);
    font: 750 clamp(2.85rem, 4.8vw, 5.3rem) / 0.9 "Source Serif 4", Georgia, serif;
    letter-spacing: -0.058em;
    text-wrap: balance;
}

.publication-home__lede {
    max-width: 58rem;
    margin: 0.9rem 0 0;
    color: #294964;
    font: 520 clamp(0.95rem, 1.1vw, 1.12rem) / 1.45 "IBM Plex Sans", sans-serif;
}

.publication-home__purpose {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.5rem 1rem;
    align-items: start;
    max-width: 67rem;
    margin-top: 0.85rem;
    padding: 0.48rem 0 0.05rem 0.85rem;
    border-left: 3px solid var(--home-green);
    color: #294964;
    font-family: "IBM Plex Sans", sans-serif;
}

.publication-home__purpose strong {
    color: var(--home-navy);
    font-size: clamp(0.72rem, 0.68rem + 0.15vw, 0.82rem);
    line-height: 1.4;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.publication-home__purpose p {
    margin: 0;
    font-size: clamp(0.82rem, 0.77rem + 0.18vw, 0.94rem);
    font-weight: 520;
    line-height: 1.45;
}

.publication-home__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.65rem;
    margin-top: 1rem;
}

.publication-home__button {
    display: inline-flex;
    gap: 0.65rem;
    align-items: center;
    justify-content: center;
    min-height: 2.5rem;
    padding: 0.55rem 0.9rem;
    border: 1px solid var(--home-blue);
    background: #fff;
    color: var(--home-blue) !important;
    font: 700 0.82rem/1 "IBM Plex Sans", sans-serif;
    text-decoration: none !important;
}

.publication-home__button--primary {
    background: var(--home-blue);
    color: #fff !important;
}

.publication-home__button:hover {
    box-shadow: inset 0 -3px 0 var(--home-green);
}

.publication-home__sidebar {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto auto;
    min-width: 0;
    border-left: 1px solid var(--home-rule);
    background: #f7fafc;
}

.publication-home__sentiment {
    --sentiment-color: #9b6c13;
    --sentiment-bg: #fff8e8;
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(6.5rem, 8vw, 8.25rem);
    gap: clamp(0.75rem, 1.2vw, 1.25rem);
    align-items: center;
    min-width: 0;
    padding: clamp(1rem, 1.7vw, 1.6rem);
    border-bottom: 1px solid var(--home-rule);
    background:
        radial-gradient(circle at 88% 20%, rgb(255 255 255 / 0.8), transparent 9rem),
        var(--sentiment-bg);
    color: var(--home-navy) !important;
    text-decoration: none !important;
}

.publication-home__sentiment--positive {
    --sentiment-color: var(--home-green);
    --sentiment-bg: #eaf7f1;
}

.publication-home__sentiment--negative {
    --sentiment-color: var(--home-red);
    --sentiment-bg: #fff0ed;
}

.publication-home__sentiment-copy {
    min-width: 0;
    font-family: "IBM Plex Sans", sans-serif;
}

.publication-home__sentiment-copy > span {
    display: block;
    color: var(--home-muted);
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.publication-home__sentiment-copy > strong {
    display: block;
    margin-top: 0.32rem;
    color: var(--sentiment-color);
    font: 750 clamp(1.08rem, 1.25vw, 1.35rem) / 1.05 "Source Serif 4", Georgia, serif;
}

.publication-home__sentiment-copy p {
    margin: 0.48rem 0 0;
    color: #294964;
    font-size: 0.76rem;
    font-weight: 520;
    line-height: 1.42;
}

.publication-home__sentiment-copy small {
    display: inline-flex;
    gap: 0.32rem;
    align-items: center;
    margin-top: 0.58rem;
    color: var(--home-blue);
    font-size: 0.64rem;
    font-weight: 750;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.publication-home__sentiment:hover .publication-home__sentiment-copy small {
    color: var(--sentiment-color);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.publication-home__sentiment-gauge {
    display: grid;
    grid-template-rows: 1fr auto 1fr;
    place-items: center;
    width: 100%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: conic-gradient(var(--sentiment-color) calc(var(--sentiment-score) * 1%), rgb(255 255 255 / 0.82) 0);
    color: var(--sentiment-color);
    isolation: isolate;
}

.publication-home__sentiment-gauge::before {
    grid-area: 1 / 1 / 4 / 2;
    width: calc(100% - 0.72rem);
    aspect-ratio: 1;
    border: 1px solid rgb(7 27 49 / 0.08);
    border-radius: 50%;
    background: rgb(255 255 255 / 0.92);
    box-shadow: 0 0.7rem 2rem rgb(7 27 49 / 0.08);
    content: "";
    z-index: -1;
}

.publication-home__sentiment-gauge strong {
    grid-area: 2 / 1;
    align-self: end;
    font: 750 clamp(1.65rem, 2.15vw, 2.45rem) / 0.9 "Source Serif 4", Georgia, serif;
    letter-spacing: -0.045em;
}

.publication-home__sentiment-gauge small {
    grid-area: 3 / 1;
    align-self: start;
    margin-top: 0.2rem;
    color: var(--home-muted);
    font: 700 0.58rem/1 "IBM Plex Sans", sans-serif;
}

.publication-home__sentiment-groups {
    padding: 0.8rem clamp(0.85rem, 1.25vw, 1.15rem) 0.9rem;
    border-bottom: 1px solid var(--home-rule);
    background: #fff;
}

.publication-home__sentiment-groups h2 {
    margin: 0 0 0.45rem;
    color: var(--home-muted);
    font: 750 0.64rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.publication-home__sentiment-groups > div {
    display: grid;
    gap: 0.38rem;
}

.publication-home__sentiment-group {
    --sentiment-color: #9b6c13;
    --sentiment-bg: #fff8e8;
    display: grid;
    grid-template-columns: 5.25rem minmax(0, 1fr);
    min-width: 0;
    border: 1px solid var(--home-rule);
    border-left: 3px solid var(--sentiment-color);
    background: var(--sentiment-bg);
}

.publication-home__sentiment-group--positive {
    --sentiment-color: var(--home-green);
    --sentiment-bg: #eff9f4;
}

.publication-home__sentiment-group--negative {
    --sentiment-color: var(--home-red);
    --sentiment-bg: #fff3f1;
}

.publication-home__sentiment-group-kind {
    display: flex;
    gap: 0.2rem;
    align-items: center;
    padding: 0.5rem;
    border-right: 1px solid var(--home-rule);
    color: var(--home-blue) !important;
    font-size: 0.62rem;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none !important;
    text-transform: uppercase;
}

.publication-home__sentiment-group-kind:hover,
.publication-home__sentiment-group-kind:focus-visible {
    color: var(--sentiment-color) !important;
    text-decoration: underline !important;
    text-underline-offset: 0.18em;
}

.publication-home__sentiment-group-reading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 2.8rem;
    gap: 0.55rem;
    align-items: center;
    min-width: 0;
    padding: 0.38rem 0.45rem 0.38rem 0.6rem;
    color: var(--home-navy) !important;
    text-decoration: none !important;
}

.publication-home__sentiment-group-reading > span:first-child {
    min-width: 0;
}

.publication-home__sentiment-group-reading > span > strong,
.publication-home__sentiment-group-reading > span > small {
    display: block;
}

.publication-home__sentiment-group-reading > span > strong {
    overflow: hidden;
    font: 750 0.78rem/1.1 "Source Serif 4", Georgia, serif;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.publication-home__sentiment-group-reading > span > small {
    margin-top: 0.16rem;
    color: var(--home-muted);
    font: 650 0.58rem/1.2 "IBM Plex Sans", sans-serif;
}

.publication-home__sentiment-group-reading:hover > span > strong,
.publication-home__sentiment-group-reading:focus-visible > span > strong {
    color: var(--sentiment-color);
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.publication-home__sentiment-mini-gauge {
    display: grid !important;
    place-items: center;
    width: 2.8rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: conic-gradient(var(--sentiment-color) calc(var(--sentiment-score) * 1%), #dce6ed 0);
    isolation: isolate;
}

.publication-home__sentiment-mini-gauge::before {
    grid-area: 1 / 1;
    width: calc(100% - 0.38rem);
    aspect-ratio: 1;
    border-radius: 50%;
    background: #fff;
    content: "";
    z-index: -1;
}

.publication-home__sentiment-mini-gauge strong {
    grid-area: 1 / 1;
    color: var(--sentiment-color);
    font: 750 0.78rem/1 "Source Serif 4", Georgia, serif;
}

.publication-home__dateline {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    background: #f7fafc;
}

.publication-home__dateline div {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 6.75rem;
    padding: clamp(0.75rem, 1.15vw, 1.1rem);
    border-right: 1px solid var(--home-rule);
}

.publication-home__dateline div:last-child {
    border-right: 0;
}

.publication-home__dateline dt {
    color: var(--home-muted);
    font: 700 0.7rem/1.3 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.publication-home__dateline dd {
    margin: 0.32rem 0 0;
    color: var(--home-navy);
    font: 700 clamp(0.88rem, 1vw, 1.08rem) / 1.08 "Source Serif 4", Georgia, serif;
}

.publication-home__index {
    display: grid;
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    border-right: 1px solid var(--home-rule);
    border-left: 1px solid var(--home-rule);
}

.publication-home__index a {
    min-width: 0;
    padding: 0.68rem 0.95rem;
    border-right: 1px solid var(--home-rule);
    color: var(--home-navy);
    font: 700 0.75rem/1 "IBM Plex Sans", sans-serif;
    text-align: center;
    text-decoration: none;
}

.publication-home__index a:hover {
    background: var(--home-blue-light);
}

.publication-home__tape {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-right: auto;
    margin-left: auto;
    border-right: 1px solid var(--home-rule);
    border-left: 1px solid var(--home-rule);
    background: #fff;
}

.publication-home__tape div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    min-height: 7.6rem;
    padding: 0.78rem clamp(0.75rem, 1.5vw, 1.4rem);
    border-right: 1px solid var(--home-rule);
}

.publication-home__tape div:last-child {
    border: 0;
}

.publication-home__tape dt,
.publication-home__tape small {
    color: var(--home-muted);
    font: 650 0.66rem/1.3 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.075em;
    text-transform: uppercase;
}

.publication-home__tape dd {
    margin: 0.2rem 0 0.1rem;
    color: var(--home-navy);
    font: 750 1.45rem/1 "Source Serif 4", Georgia, serif;
}

.publication-home__tape dt a,
.publication-home__tape dd a {
    color: inherit;
    text-decoration: none;
}

.publication-home__tape-source {
    display: inline-flex;
    gap: 0.32rem;
    align-items: center;
    margin-top: auto;
    padding-top: 0.45rem;
    color: var(--home-blue) !important;
    font: 700 0.64rem/1.2 "IBM Plex Sans", sans-serif;
    text-decoration: none !important;
}

.publication-home__tape div:hover .publication-home__tape-source,
.publication-home__tape div:focus-within .publication-home__tape-source {
    color: var(--home-green) !important;
    text-decoration: underline !important;
}

.publication-home__body {
    display: grid;
    gap: clamp(2.75rem, 5vw, 5.75rem);
    padding-top: clamp(2rem, 4vw, 4rem);
}

.publication-home__body > section,
.publication-home__body > aside {
    scroll-margin-top: 7rem;
}

.section-heading {
    display: grid;
    grid-template-columns: minmax(16rem, 1fr) minmax(20rem, 0.75fr) auto;
    gap: 1.5rem;
    align-items: end;
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
}

.section-heading--ruled {
    border-bottom: 3px double #9db1c3;
}

.section-heading h2 {
    margin: 0;
    color: var(--home-navy);
    font: 750 clamp(2rem, 3vw, 3.5rem) / 0.98 "Source Serif 4", Georgia, serif;
    letter-spacing: -0.045em;
}

.section-heading > p {
    margin: 0;
    color: var(--home-muted);
    font: 500 0.88rem/1.45 "IBM Plex Sans", sans-serif;
    text-align: right;
}

.section-heading > a {
    color: var(--home-blue);
    font: 700 0.76rem/1.2 "IBM Plex Sans", sans-serif;
    white-space: nowrap;
}

.front-page__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(22rem, 0.72fr);
    gap: 1rem;
}

.radar-lead {
    min-width: 0;
    padding: clamp(1.25rem, 2.6vw, 2.5rem);
    border: 1px solid var(--home-rule);
    border-top: 5px solid var(--home-green);
    background:
        radial-gradient(circle at 95% 8%, rgb(12 130 92 / 0.09), transparent 20rem),
        #fff;
}

.radar-lead--negative {
    border-top-color: var(--home-red);
}

.radar-lead__topline,
.radar-lead__headline-row,
.market-brief__head,
.signal-card__topline,
.editorial-shelf__subhead {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
}

.radar-lead__topline {
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--home-rule);
}

.radar-lead__topline p,
.radar-lead__context,
.lead-story__kicker,
.desk-story__body > p,
.research-story__body > p:first-child {
    margin: 0;
    color: var(--home-green);
    font: 700 0.68rem/1.3 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.115em;
    text-transform: uppercase;
}

.radar-lead__topline p:last-child {
    color: var(--home-muted);
}

.radar-lead__headline-row {
    align-items: flex-start;
    margin-top: 1.35rem;
}

.radar-lead__headline-row h3 {
    max-width: 15ch;
    margin: 0.28rem 0 0;
    font: 750 clamp(2.7rem, 5vw, 5.6rem) / 0.88 "Source Serif 4", Georgia, serif;
    letter-spacing: -0.06em;
}

.radar-lead__move {
    flex: 0 0 auto;
    min-width: 8rem;
    padding-left: 1rem;
    border-left: 1px solid var(--home-rule);
    text-align: right;
}

.radar-lead__move strong,
.radar-lead__move span {
    display: block;
}

.radar-lead__move strong {
    color: var(--home-green);
    font: 750 clamp(2.1rem, 3vw, 3.3rem) / 1 "Source Serif 4", Georgia, serif;
}

.radar-lead--negative .radar-lead__move strong {
    color: var(--home-red);
}

.radar-lead__move span {
    margin-top: 0.3rem;
    color: var(--home-muted);
    font: 700 0.65rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.radar-lead__summary {
    max-width: 70rem;
    margin: 1.4rem 0;
    color: #284660;
    font: 560 clamp(1rem, 1.35vw, 1.2rem) / 1.55 "IBM Plex Sans", sans-serif;
}

.radar-lead__scorecard {
    display: grid;
    grid-template-columns: minmax(14rem, 0.6fr) minmax(18rem, 1fr);
    gap: 1.5rem;
    padding: 1rem;
    border: 1px solid var(--home-rule);
    background: var(--home-wash);
}

.radar-lead__score {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.8rem;
    align-items: center;
}

.radar-lead__score-ring {
    display: grid;
    grid-template-columns: auto auto;
    align-content: center;
    justify-content: center;
    width: 5.4rem;
    height: 5.4rem;
    border-radius: 50%;
    background:
        radial-gradient(circle at center, #f3f6f8 58%, transparent 60%),
        conic-gradient(var(--home-green) var(--score), #d8e2e9 0);
}

.radar-lead__score-ring strong {
    font: 750 1.65rem/1 "Source Serif 4", Georgia, serif;
}

.radar-lead__score-ring small {
    align-self: end;
    margin-bottom: 0.1rem;
    color: var(--home-muted);
    font: 600 0.65rem/1 "IBM Plex Sans", sans-serif;
}

.radar-lead__score p {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    font-family: "IBM Plex Sans", sans-serif;
}

.radar-lead__score p strong {
    font-size: 0.87rem;
}

.radar-lead__score p span {
    color: var(--home-muted);
    font-size: 0.72rem;
    text-transform: uppercase;
}

.radar-lead__drivers {
    display: grid;
    gap: 0.62rem;
}

.measure-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.2rem 0.75rem;
    align-items: end;
    color: var(--home-muted);
    font: 650 0.72rem/1.25 "IBM Plex Sans", sans-serif;
}

.measure-row strong {
    color: var(--home-navy);
}

.measure-row__track,
.market-brief__bar,
.signal-card__rank > div {
    grid-column: 1 / -1;
    height: 0.34rem;
    overflow: hidden;
    background: #dce5ec;
}

.measure-row__track span,
.market-brief__bar span,
.signal-card__rank > div span {
    display: block;
    width: var(--measure);
    height: 100%;
    background: linear-gradient(90deg, var(--home-blue), var(--home-green));
}

.radar-lead__metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 1rem 0 0;
    border: 1px solid var(--home-rule);
}

.radar-lead__metrics div {
    min-width: 0;
    padding: 0.75rem;
    border-right: 1px solid var(--home-rule);
}

.radar-lead__metrics div:last-child {
    border: 0;
}

.radar-lead__metrics dt {
    color: var(--home-muted);
    font: 700 0.62rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.radar-lead__metrics dd {
    margin: 0.28rem 0 0;
    font: 750 1.1rem/1.1 "Source Serif 4", Georgia, serif;
}

.radar-lead__comparison {
    display: grid;
    gap: 0.55rem;
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid var(--home-rule);
    background: #fff;
    color: var(--home-muted);
    font: 650 0.67rem/1.25 "IBM Plex Sans", sans-serif;
}

.radar-lead__comparison > div:not(.radar-lead__comparison-track) {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.radar-lead__comparison strong {
    color: var(--home-green);
}

.radar-lead__comparison-track {
    position: relative;
    height: 0.65rem;
    margin: 0.15rem 0;
    background: linear-gradient(90deg, #e8eef3, #dce6ed);
}

.radar-lead__comparison-median,
.radar-lead__comparison-current {
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
}

.radar-lead__comparison-median {
    left: var(--median);
    width: 2px;
    height: 1.35rem;
    background: #73899c;
}

.radar-lead__comparison-current {
    left: var(--current);
    width: 0.9rem;
    height: 0.9rem;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--home-green);
    box-shadow: 0 0 0 1px var(--home-green);
}

.radar-lead__watch {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 0.75rem;
    margin-top: 1rem;
    padding: 0.8rem 0;
    border-top: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    color: #334f68;
    font: 500 0.78rem/1.45 "IBM Plex Sans", sans-serif;
}

.radar-lead__watch strong {
    color: var(--home-navy);
}

.radar-lead__watch p {
    margin: 0;
}

.radar-lead__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem 1.1rem;
    margin-top: 1rem;
    font: 700 0.76rem/1.3 "IBM Plex Sans", sans-serif;
}

.radar-lead__links a:first-child {
    color: var(--home-blue);
}

.front-page__right-rail {
    display: grid;
    gap: 1rem;
    min-width: 0;
}

.lead-story {
    border: 1px solid var(--home-rule);
    background: #fff;
}

.lead-story__image {
    display: block;
    overflow: hidden;
    border-bottom: 1px solid var(--home-rule);
    background: var(--home-wash);
    aspect-ratio: 16 / 8.8;
}

.lead-story__image img,
.desk-story__visual img,
.research-story__visual img,
.editorial-shelf__blog article img,
.podcast-feature img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 180ms ease;
}

.lead-story:hover img,
.desk-story:hover img,
.research-story:hover img,
.editorial-shelf__blog article:hover img,
.podcast-feature:hover img {
    transform: scale(1.018);
}

.lead-story__body {
    padding: 1rem 1.1rem 1.15rem;
}

.lead-story__body h3,
.desk-story h3,
.research-story h3 {
    margin: 0.5rem 0 0;
    font-family: "Source Serif 4", Georgia, serif;
    font-weight: 750;
    letter-spacing: -0.035em;
}

.lead-story__body h3 {
    font-size: clamp(1.55rem, 2.3vw, 2.4rem);
    line-height: 0.98;
}

.lead-story__body h3 a,
.desk-story h3 a,
.research-story h3 a,
.editorial-shelf h4 a {
    text-decoration: none;
}

.lead-story__body > p:not(.lead-story__kicker) {
    margin: 0.75rem 0;
    color: var(--home-muted);
    font: 500 0.83rem/1.48 "IBM Plex Sans", sans-serif;
}

.lead-story__body time,
.desk-story time,
.research-story__body time,
.editorial-shelf time {
    color: var(--home-muted);
    font: 650 0.68rem/1.3 "IBM Plex Sans", sans-serif;
    text-transform: uppercase;
}

.front-page__briefs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid var(--home-rule);
    background: #fff;
}

.market-brief {
    min-width: 0;
    padding: 0.85rem;
    border-right: 1px solid var(--home-rule);
    border-top: 3px solid var(--home-green);
}

.market-brief:last-child {
    border-right: 0;
}

.market-brief--negative {
    border-top-color: var(--home-red);
}

.market-brief__head p,
.market-brief__head strong {
    margin: 0;
    color: var(--home-muted);
    font: 700 0.62rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.market-brief__head strong {
    color: var(--home-green);
    font-size: 0.82rem;
}

.market-brief h3 {
    margin: 0.55rem 0;
    font: 750 1rem/1.05 "Source Serif 4", Georgia, serif;
}

.market-brief h3 a {
    text-decoration: none;
}

.market-brief > p {
    display: -webkit-box;
    overflow: hidden;
    margin: 0;
    color: var(--home-muted);
    font: 500 0.68rem/1.4 "IBM Plex Sans", sans-serif;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.market-brief__bar {
    margin-top: 0.7rem;
}

.market-brief small {
    display: block;
    margin-top: 0.45rem;
    color: var(--home-muted);
    font: 650 0.59rem/1.25 "IBM Plex Sans", sans-serif;
    text-transform: uppercase;
}

.signal-board,
.research-directory {
    padding: clamp(1.25rem, 2.6vw, 2.75rem);
    background: var(--home-navy);
    color: #fff;
}

.section-heading--dark {
    grid-template-columns: minmax(16rem, 1fr) minmax(20rem, 0.8fr) auto;
    border-bottom: 1px solid #31506d;
}

.section-heading--dark h2,
.section-heading--dark > a {
    color: #fff;
}

.section-heading--dark .section-heading__kicker {
    color: #55d6a7;
}

.section-heading--dark > p {
    color: #b9cad9;
}

.signal-board__grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    border-top: 1px solid #31506d;
    border-left: 1px solid #31506d;
}

.signal-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 23rem;
    padding: 1rem;
    border-right: 1px solid #31506d;
    border-bottom: 1px solid #31506d;
    background: linear-gradient(160deg, rgb(255 255 255 / 0.045), transparent 65%);
}

.signal-card__topline {
    color: #9fb6c9;
    font: 650 0.58rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.signal-card h3 {
    margin: 0.8rem 0 1.2rem;
    color: #fff;
    font: 750 1.35rem/1 "Source Serif 4", Georgia, serif;
}

.signal-card__name {
    min-height: 3.1rem;
    margin: 0;
    color: #dce7ef;
    font: 650 0.8rem/1.35 "IBM Plex Sans", sans-serif;
}

.signal-card__value {
    display: grid;
    gap: 0.15rem;
    margin: 0.8rem 0;
}

.signal-card__value strong {
    color: #55d6a7;
    font: 750 2rem/1 "Source Serif 4", Georgia, serif;
}

.signal-card--negative .signal-card__value strong {
    color: #ff8e7d;
}

.signal-card__value span {
    color: #9fb6c9;
    font: 650 0.58rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.signal-card__rank {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.3rem 0.6rem;
    color: #b9cad9;
    font: 650 0.65rem/1.2 "IBM Plex Sans", sans-serif;
}

.signal-card__rank strong {
    color: #fff;
}

.signal-card__rank > div {
    background: #29465f;
}

.signal-card__rank > div span {
    background: #55d6a7;
}

.signal-card__reason {
    display: -webkit-box;
    overflow: hidden;
    margin: 1rem 0;
    color: #b9cad9;
    font: 500 0.71rem/1.45 "IBM Plex Sans", sans-serif;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 5;
}

.signal-card > a {
    margin-top: auto;
    color: #fff;
    font: 700 0.7rem/1.3 "IBM Plex Sans", sans-serif;
}

.signal-card__links {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 0.85rem;
    margin-top: auto;
    padding-top: 0.75rem;
    border-top: 1px solid #31506d;
}

.signal-card__links a {
    color: #fff;
    font: 700 0.69rem/1.3 "IBM Plex Sans", sans-serif;
}

.signal-card__links a:last-child {
    color: #ffb7aa;
}

.owned-indexes__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--home-rule);
    border-left: 1px solid var(--home-rule);
}

.owned-index {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 27rem;
    padding: clamp(1rem, 1.8vw, 1.5rem);
    border-top: 4px solid var(--home-green);
    border-right: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    background:
        linear-gradient(155deg, rgb(12 130 92 / 0.055), transparent 42%),
        #fff;
}

.owned-index--down {
    border-top-color: var(--home-red);
    background:
        linear-gradient(155deg, rgb(163 59 44 / 0.055), transparent 42%),
        #fff;
}

.owned-index__topline {
    display: flex;
    gap: 1rem;
    align-items: center;
    justify-content: space-between;
    color: var(--home-muted);
    font: 700 clamp(0.65rem, 0.62rem + 0.1vw, 0.72rem) / 1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.owned-index__topline p {
    margin: 0;
    color: var(--home-green);
}

.owned-index--down .owned-index__topline p {
    color: var(--home-red);
}

.owned-index h3 {
    min-height: 3.2rem;
    margin: 0.55rem 0 0.85rem;
    font: 750 clamp(1.35rem, 1.5vw, 1.7rem) / 1.02 "Source Serif 4", Georgia, serif;
    letter-spacing: -0.025em;
}

.owned-index h3 a {
    text-decoration: none;
}

.owned-index__chart {
    display: grid;
    min-height: 6.7rem;
    place-items: center;
    margin: 0 -0.2rem;
    border-top: 1px solid #dce6ee;
    border-bottom: 1px solid #dce6ee;
    background:
        linear-gradient(to bottom, transparent 49%, #e3ebf1 50%, transparent 51%),
        linear-gradient(180deg, #f8fbfd, #eef5f8);
}

.owned-index__chart svg {
    width: 100%;
    height: 6.4rem;
}

.owned-index__chart svg line {
    stroke: #d8e3eb;
    stroke-width: 1;
}

.owned-index__chart svg polygon {
    fill: rgb(12 130 92 / 0.1);
}

.owned-index__chart svg polyline {
    fill: none;
    stroke: var(--home-green);
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.5;
    vector-effect: non-scaling-stroke;
}

.owned-index--down .owned-index__chart svg polygon {
    fill: rgb(163 59 44 / 0.08);
}

.owned-index--down .owned-index__chart svg polyline {
    stroke: var(--home-red);
}

.owned-index__chart > p {
    max-width: 16rem;
    margin: 0;
    padding: 1rem;
    color: var(--home-muted);
    font: 550 0.72rem/1.4 "IBM Plex Sans", sans-serif;
    text-align: center;
}

.owned-index__figures {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    border-bottom: 1px solid var(--home-rule);
}

.owned-index__figures div {
    min-width: 0;
    padding: 0.75rem 0.7rem 0.7rem 0;
}

.owned-index__figures div + div {
    padding-left: 0.7rem;
    border-left: 1px solid var(--home-rule);
}

.owned-index__figures dt {
    color: var(--home-muted);
    font: 700 0.62rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.owned-index__figures dd {
    margin: 0.28rem 0 0;
    font: 750 clamp(1.25rem, 1.5vw, 1.65rem) / 1 "Source Serif 4", Georgia, serif;
}

.owned-index__figures div:last-child dd {
    color: var(--home-green);
}

.owned-index--down .owned-index__figures div:last-child dd {
    color: var(--home-red);
}

.owned-index__context {
    margin: 0.75rem 0 0;
    color: var(--home-blue);
    font: 700 0.7rem/1.35 "IBM Plex Sans", sans-serif;
}

.owned-index__description {
    margin: 0.4rem 0 0;
    color: var(--home-muted);
    font: 500 clamp(0.72rem, 0.69rem + 0.1vw, 0.79rem) / 1.45 "IBM Plex Sans", sans-serif;
}

.owned-index__link {
    margin-top: auto;
    padding-top: 0.9rem;
    color: var(--home-blue) !important;
    font: 700 0.72rem/1.3 "IBM Plex Sans", sans-serif;
}

.weekly-crosschecks {
    display: grid;
    grid-template-columns: minmax(15rem, 0.72fr) minmax(0, 2.5fr);
    border: 1px solid var(--home-rule);
    border-top: 0;
    background: var(--home-wash);
}

.weekly-crosschecks > div {
    padding: 1.2rem 1.35rem;
    border-right: 1px solid var(--home-rule);
}

.weekly-crosschecks > div p {
    margin: 0;
    color: var(--home-green);
    font: 700 0.65rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.weekly-crosschecks h3 {
    margin: 0.4rem 0 0;
    font: 750 clamp(1.3rem, 1.7vw, 1.8rem) / 1.03 "Source Serif 4", Georgia, serif;
}

.weekly-crosschecks nav {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.weekly-crosschecks nav a {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.35rem 0.6rem;
    min-width: 0;
    padding: 1.1rem;
    border-right: 1px solid var(--home-rule);
    text-decoration: none;
}

.weekly-crosschecks nav a:last-child {
    border-right: 0;
}

.weekly-crosschecks nav strong {
    font: 700 0.75rem/1.25 "IBM Plex Sans", sans-serif;
}

.weekly-crosschecks nav span {
    grid-column: 1;
    color: var(--home-muted);
    font: 500 0.67rem/1.38 "IBM Plex Sans", sans-serif;
}

.weekly-crosschecks nav i {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    color: var(--home-green);
    font-style: normal;
}

.featured-labs {
    padding: clamp(1.25rem, 2.6vw, 2.75rem);
    background:
        radial-gradient(circle at 88% 6%, rgb(12 130 92 / 0.2), transparent 26rem),
        var(--home-navy);
    color: #fff;
}

.featured-labs__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid #31506d;
    border-left: 1px solid #31506d;
}

.featured-lab {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 22rem;
    padding: clamp(1rem, 1.6vw, 1.35rem);
    border-top: 4px solid #55d6a7;
    border-right: 1px solid #31506d;
    border-bottom: 1px solid #31506d;
    background: rgb(255 255 255 / 0.035);
}

.featured-lab--gold { border-top-color: #e6aa4e; }
.featured-lab--blue { border-top-color: #62aee7; }
.featured-lab--violet { border-top-color: #ad92ef; }

.featured-lab__topline {
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    color: #9fb6c9;
    font: 700 0.62rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.featured-lab__topline span:first-child {
    color: #55d6a7;
}

.featured-lab--gold .featured-lab__topline span:first-child { color: #e6aa4e; }
.featured-lab--blue .featured-lab__topline span:first-child { color: #62aee7; }
.featured-lab--violet .featured-lab__topline span:first-child { color: #c1acf2; }

.featured-lab h3 {
    min-height: 3.7rem;
    margin: 1rem 0 0.6rem;
    color: #fff;
    font: 750 clamp(1.45rem, 1.75vw, 1.85rem) / 1 "Source Serif 4", Georgia, serif;
    letter-spacing: -0.025em;
}

.featured-lab h3 a {
    color: #fff;
    text-decoration: none;
}

.featured-lab > p {
    margin: 0;
    color: #bfd0dd;
    font: 500 clamp(0.72rem, 0.69rem + 0.1vw, 0.79rem) / 1.48 "IBM Plex Sans", sans-serif;
}

.featured-lab ol {
    display: grid;
    gap: 0;
    margin: 1.2rem 0;
    padding: 0;
    border-top: 1px solid #31506d;
    list-style: none;
}

.featured-lab li {
    display: grid;
    grid-template-columns: 0.8rem minmax(0, 1fr);
    gap: 0.45rem;
    align-items: center;
    padding: 0.55rem 0;
    border-bottom: 1px solid #31506d;
    color: #e3edf3;
    font: 600 0.68rem/1.3 "IBM Plex Sans", sans-serif;
}

.featured-lab li span {
    position: relative;
    width: 0.7rem;
    height: 0.7rem;
    border: 1px solid #55d6a7;
    border-radius: 50%;
}

.featured-lab li span::after {
    position: absolute;
    inset: 0.19rem;
    border-radius: 50%;
    background: #55d6a7;
    content: "";
}

.featured-lab > a {
    margin-top: auto;
    color: #fff;
    font: 700 0.72rem/1.3 "IBM Plex Sans", sans-serif;
}

.featured-labs__more {
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem 1rem;
    align-items: center;
    padding: 1rem 0 0;
    color: #b9cad9;
    font: 600 0.68rem/1.3 "IBM Plex Sans", sans-serif;
}

.featured-labs__more span {
    color: #55d6a7;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.featured-labs__more a {
    color: #fff;
    font-weight: 700;
}

.live-desk__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--home-rule);
    border-left: 1px solid var(--home-rule);
}

.desk-story {
    min-width: 0;
    border-right: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    background: #fff;
}

.desk-story__visual {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    border-bottom: 1px solid var(--home-rule);
    background: var(--home-wash);
}

.desk-story__body {
    padding: 0.9rem 1rem 1.1rem;
}

.desk-story h3 {
    min-height: 4.2rem;
    font-size: clamp(1.25rem, 1.55vw, 1.65rem);
    line-height: 1.03;
}

.desk-story time {
    display: block;
    margin-top: 0.8rem;
}

.research-front__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid var(--home-rule);
    border-left: 1px solid var(--home-rule);
}

.research-story {
    display: grid;
    min-width: 0;
    border-right: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    background: #fff;
}

.research-story--lead {
    grid-column: span 2;
    grid-row: span 2;
}

.research-story__visual {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 8.5;
    border-bottom: 1px solid var(--home-rule);
    background: var(--home-wash);
}

.research-story--lead .research-story__visual {
    aspect-ratio: 16 / 8.2;
}

.research-story__body {
    padding: 1rem;
}

.research-story h3 {
    font-size: clamp(1.2rem, 1.55vw, 1.65rem);
    line-height: 1.02;
}

.research-story--lead h3 {
    font-size: clamp(1.8rem, 3vw, 3.5rem);
    line-height: 0.94;
}

.research-story__body > p:not(:first-child) {
    display: -webkit-box;
    overflow: hidden;
    margin: 0.75rem 0;
    color: var(--home-muted);
    font: 500 0.78rem/1.45 "IBM Plex Sans", sans-serif;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.research-story__body > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.85rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--home-rule);
}

.research-story__body > div span {
    color: var(--home-blue);
    font: 750 0.7rem/1.3 "IBM Plex Sans", sans-serif;
}

.opportunity-tools__layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(20rem, 0.55fr);
    gap: 1rem;
}

.opportunity-tools__presets {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--home-rule);
    border-left: 1px solid var(--home-rule);
}

.opportunity-tools__presets > a {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.2rem 0.8rem;
    min-height: 8.5rem;
    padding: 1rem;
    border-right: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    background: #fff;
    text-decoration: none;
}

.opportunity-tools__presets > a > span {
    grid-row: span 2;
    color: var(--home-green);
    font: 700 0.68rem/1.3 "IBM Plex Sans", sans-serif;
}

.opportunity-tools__presets > a strong {
    font: 750 1.25rem/1.05 "Source Serif 4", Georgia, serif;
}

.opportunity-tools__presets > a small {
    grid-column: 2 / 3;
    color: var(--home-muted);
    font: 500 0.73rem/1.4 "IBM Plex Sans", sans-serif;
}

.opportunity-tools__presets > a i {
    grid-column: 3;
    grid-row: 1 / span 2;
    align-self: center;
    color: var(--home-blue);
    font-style: normal;
}

.opportunity-tools__presets > a:hover {
    background: var(--home-blue-light);
}

.opportunity-tools__rail {
    display: grid;
    border: 1px solid var(--home-rule);
    background: var(--home-wash);
}

.opportunity-tools__rail a {
    display: grid;
    gap: 0.2rem;
    padding: 0.85rem 1rem;
    border-bottom: 1px solid var(--home-rule);
    text-decoration: none;
}

.opportunity-tools__rail a:last-child {
    border: 0;
}

.opportunity-tools__rail span,
.opportunity-tools__rail em {
    color: var(--home-green);
    font: 700 0.61rem/1.3 "IBM Plex Sans", sans-serif;
    font-style: normal;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.opportunity-tools__rail strong {
    font: 750 1.12rem/1.1 "Source Serif 4", Georgia, serif;
}

.opportunity-tools__rail small {
    color: var(--home-muted);
    font: 500 0.7rem/1.35 "IBM Plex Sans", sans-serif;
}

.opportunity-tools__rail em {
    margin-top: 0.15rem;
    color: var(--home-blue);
}

.opportunity-tools__rail .opportunity-tools__cash {
    background: var(--home-green-light);
}

.editorial-shelf__grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(30rem, 1.15fr) minmax(19rem, 0.72fr);
    gap: 1rem;
}

.editorial-shelf__grid > div {
    min-width: 0;
    border: 1px solid var(--home-rule);
    background: #fff;
}

.editorial-shelf__subhead {
    padding: 0.8rem 1rem;
    border-bottom: 2px solid var(--home-navy);
}

.editorial-shelf__subhead h3 {
    margin: 0;
    font: 750 1.35rem/1 "Source Serif 4", Georgia, serif;
}

.editorial-shelf__subhead a {
    font: 700 0.67rem/1.2 "IBM Plex Sans", sans-serif;
}

.editorial-shelf__blog article {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    min-height: 9rem;
    border-bottom: 1px solid var(--home-rule);
}

.editorial-shelf__blog article.editorial-story--with-image {
    grid-template-columns: minmax(9rem, 0.72fr) 1fr;
}

.editorial-shelf__blog article:last-child {
    border: 0;
}

.editorial-shelf__blog article > a {
    display: block;
    overflow: hidden;
    min-height: 9rem;
    border-right: 1px solid var(--home-rule);
    background: var(--home-wash);
}

.editorial-shelf__blog article > div {
    padding: 0.85rem;
}

.editorial-shelf__blog article p,
.framework-feature__copy > p:first-child {
    margin: 0;
    color: var(--home-green);
    font: 700 0.61rem/1.25 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.editorial-shelf h4 {
    margin: 0.4rem 0;
    font: 750 1.05rem/1.05 "Source Serif 4", Georgia, serif;
}

.framework-feature {
    display: grid;
    grid-template-columns: minmax(9.5rem, 0.72fr) minmax(0, 1fr);
    min-height: 100%;
    background:
        radial-gradient(circle at 100% 0, rgb(85 214 167 / 0.17), transparent 15rem),
        var(--home-navy);
    color: #fff;
}

.framework-feature__cover {
    display: flex;
    align-self: stretch;
    align-items: flex-start;
    justify-content: center;
    overflow: hidden;
    border-right: 1px solid #31506d;
    background:
        linear-gradient(180deg, #092944, #031222),
        #031222;
}

.framework-feature__cover img {
    width: 100%;
    height: auto;
    min-height: 0;
    object-fit: contain;
    object-position: center top;
    transition: transform 180ms ease;
}

.framework-feature:hover .framework-feature__cover img {
    transform: scale(1.018);
}

.framework-feature__copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 1.1rem;
}

.framework-feature__copy h4 {
    margin: 0.55rem 0 0.7rem;
    font-size: clamp(1.45rem, 1.7vw, 2rem);
    line-height: 0.98;
}

.framework-feature__copy h4 a {
    color: #fff;
}

.framework-feature__copy > p:not(:first-child) {
    margin: 0;
    color: #c1d1de;
    font: 500 0.78rem/1.5 "IBM Plex Sans", sans-serif;
}

.framework-feature__copy ul {
    display: grid;
    gap: 0.45rem;
    margin: 1rem 0;
    padding: 0;
    color: #e0eaf1;
    font: 600 0.72rem/1.4 "IBM Plex Sans", sans-serif;
    list-style: none;
}

.framework-feature__copy li {
    display: grid;
    grid-template-columns: 0.65rem minmax(0, 1fr);
    gap: 0.45rem;
}

.framework-feature__copy li::before {
    color: #55d6a7;
    content: "•";
}

.framework-feature__copy > a {
    margin-top: auto;
    color: #55d6a7;
    font: 750 0.74rem/1.3 "IBM Plex Sans", sans-serif;
}

.editorial-shelf__wisdom figure {
    display: grid;
    gap: 0.8rem;
    margin: 0;
    padding: 0.9rem;
}

.editorial-shelf__wisdom figure button {
    display: block;
    overflow: hidden;
    width: 100%;
    padding: 0;
    border: 0;
    background: #071b31;
    cursor: zoom-in;
}

.editorial-shelf__wisdom figure button img {
    width: 100%;
    height: auto;
    max-height: 34rem;
    object-fit: contain;
}

.editorial-shelf__wisdom-visual {
    position: relative;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 20rem;
    padding: 1.25rem;
    background:
        radial-gradient(circle at 83% 16%, rgb(85 214 167 / 0.3), transparent 9rem),
        linear-gradient(145deg, #0b2a48, #061525 72%);
    color: #fff;
}

.editorial-shelf__wisdom-visual > span {
    position: absolute;
    top: -2.7rem;
    left: 0.8rem;
    color: rgb(85 214 167 / 0.2);
    font: 750 10rem/1 "Source Serif 4", Georgia, serif;
}

.editorial-shelf__wisdom-visual p {
    position: relative;
    margin: 0;
    font: 680 clamp(1.35rem, 1.7vw, 1.8rem) / 1.17 "Source Serif 4", Georgia, serif;
}

.editorial-shelf__wisdom-visual small {
    position: relative;
    margin-top: 1.2rem;
    color: #55d6a7;
    font: 700 0.63rem/1.2 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.editorial-shelf__wisdom blockquote {
    margin: 0;
    font: 650 1.05rem/1.3 "Source Serif 4", Georgia, serif;
}

.editorial-shelf__wisdom figcaption {
    display: grid;
    gap: 0.1rem;
    color: var(--home-muted);
    font: 600 0.7rem/1.3 "IBM Plex Sans", sans-serif;
}

.editorial-shelf__wisdom figcaption strong {
    color: var(--home-navy);
}

.editorial-shelf__wisdom figcaption small {
    margin-top: 0.25rem;
    color: var(--home-green);
    font-size: 0.59rem;
    font-weight: 750;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.wisdom-lightbox {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgb(2 13 25 / 0.9);
}

.wisdom-lightbox[hidden] {
    display: none;
}

.wisdom-lightbox > div {
    position: relative;
    width: min(92vw, 52rem);
    max-height: 92vh;
    overflow: auto;
    padding: 1rem;
    background: #fff;
}

.wisdom-lightbox h3 {
    margin: 0 0 0.75rem;
    font: 750 1.35rem/1 "Source Serif 4", Georgia, serif;
}

.wisdom-lightbox button {
    float: right;
    padding: 0.45rem 0.65rem;
    border: 1px solid var(--home-navy);
    background: #fff;
    color: var(--home-navy);
    font: 700 0.7rem/1 "IBM Plex Sans", sans-serif;
}

.wisdom-lightbox img {
    width: 100%;
    height: auto;
}

.publication-home--locked {
    overflow: hidden;
}

.research-directory__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid #31506d;
    border-left: 1px solid #31506d;
}

.research-directory__grid > section {
    min-width: 0;
    padding: 1.1rem;
    border-right: 1px solid #31506d;
    border-bottom: 1px solid #31506d;
}

.research-directory__grid > section > p:first-child {
    margin: 0;
    color: #55d6a7;
    font: 700 0.65rem/1.2 "IBM Plex Sans", sans-serif;
}

.research-directory__grid h3 {
    margin: 0.45rem 0;
    color: #fff;
    font: 750 1.65rem/1 "Source Serif 4", Georgia, serif;
}

.research-directory__grid > section > p:not(:first-child) {
    min-height: 4.6rem;
    margin: 0;
    color: #b9cad9;
    font: 500 clamp(0.78rem, 0.25vw + 0.68rem, 0.9rem)/1.48 "IBM Plex Sans", sans-serif;
}

.research-directory__grid ul {
    display: grid;
    gap: 0;
    margin: 1rem 0 0;
    padding: 0;
    border-top: 1px solid #31506d;
    list-style: none;
}

.research-directory__grid li {
    min-width: 0;
    border-bottom: 1px solid #31506d;
}

.research-directory__grid li a {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 0.18rem 0.7rem;
    padding: 0.62rem 0;
    color: #fff;
    text-decoration: none;
}

.research-directory__grid li a strong {
    font: 700 clamp(0.79rem, 0.2vw + 0.72rem, 0.91rem)/1.3 "IBM Plex Sans", sans-serif;
}

.research-directory__grid li a span {
    grid-column: 1;
    color: #9fb6c9;
    font: 500 clamp(0.69rem, 0.16vw + 0.64rem, 0.79rem)/1.42 "IBM Plex Sans", sans-serif;
}

.research-directory__grid li a i {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    color: #55d6a7;
    font-style: normal;
}

.research-directory__grid li a:hover strong {
    color: #55d6a7;
}

.research-directory__subroutes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin-top: 0.9rem;
}

.research-directory__subroutes a {
    padding: 0.4rem 0.55rem;
    border: 1px solid #31506d;
    color: #d8e5ee;
    font: 650 0.6rem/1 "IBM Plex Sans", sans-serif;
    text-decoration: none;
}

.publication-home__closing {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid var(--home-rule);
    background: #fff;
}

.publication-home__closing > * {
    min-width: 0;
    padding: clamp(1.25rem, 3vw, 2.5rem);
}

.publication-home__closing > * + * {
    border-left: 1px solid var(--home-rule);
}

.publication-home__closing > * > p:first-child {
    margin: 0;
    color: var(--home-green);
    font: 700 0.68rem/1.3 "IBM Plex Sans", sans-serif;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.publication-home__closing h2 {
    margin: 0.55rem 0;
    font: 750 clamp(1.7rem, 2.5vw, 2.8rem) / 0.98 "Source Serif 4", Georgia, serif;
    letter-spacing: -0.035em;
}

.publication-home__closing > * > p:not(:first-child) {
    color: var(--home-muted);
    font: 500 0.8rem/1.5 "IBM Plex Sans", sans-serif;
}

.publication-home__closing a {
    color: var(--home-blue);
    font: 700 0.75rem/1.3 "IBM Plex Sans", sans-serif;
}

.publication-home__notice {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-top: 1px solid var(--home-rule);
    border-bottom: 1px solid var(--home-rule);
    color: var(--home-muted);
    font: 500 0.72rem/1.45 "IBM Plex Sans", sans-serif;
}

.publication-home__notice p {
    max-width: 70rem;
    margin: 0;
}

.publication-home__notice nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
}

.publication-home__notice a {
    font-weight: 700;
    white-space: nowrap;
}

.publication-home__empty {
    margin: 0;
    padding: 1rem;
    color: var(--home-muted);
    font: 500 0.78rem/1.45 "IBM Plex Sans", sans-serif;
}

@media (max-width: 1320px) {
    .signal-board__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .signal-card {
        min-height: 20rem;
    }

    .research-directory__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1100px) {
    .publication-home__hero {
        grid-template-columns: minmax(0, 1.3fr) minmax(17rem, 0.7fr);
    }

    .publication-home__headline {
        font-size: clamp(2.8rem, 6.2vw, 4.7rem);
    }

    .publication-home__index {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .publication-home__index a:nth-child(-n + 4) {
        border-bottom: 1px solid var(--home-rule);
    }

    .front-page__grid,
    .opportunity-tools__layout {
        grid-template-columns: 1fr;
    }

    .owned-indexes__grid,
    .featured-labs__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .owned-index,
    .featured-lab {
        min-height: 23rem;
    }

    .weekly-crosschecks {
        grid-template-columns: 1fr;
    }

    .weekly-crosschecks > div {
        border-right: 0;
        border-bottom: 1px solid var(--home-rule);
    }

    .front-page__right-rail {
        grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.95fr);
        align-items: stretch;
    }

    .front-page__briefs {
        grid-template-columns: 1fr;
    }

    .market-brief {
        border-right: 0;
        border-bottom: 1px solid var(--home-rule);
    }

    .market-brief:last-child {
        border-bottom: 0;
    }

    .live-desk__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .research-front__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .research-story--lead {
        grid-column: span 2;
        grid-row: auto;
    }

    .editorial-shelf__grid {
        grid-template-columns: 1fr 1fr;
    }

    .editorial-shelf__blog {
        grid-column: span 2;
    }
}

@media (max-width: 820px) {
    .publication-home {
        padding-bottom: 2rem;
    }

    .publication-home__edition-inner {
        grid-template-columns: 1fr auto;
    }

    .publication-home__edition-inner > :nth-child(2) {
        display: none;
    }

    .publication-home__hero {
        grid-template-columns: 1fr;
        min-height: 0;
    }

    .publication-home__hero-copy {
        padding: 1.8rem 1.25rem;
    }

    .publication-home__purpose {
        grid-template-columns: 1fr;
    }

    .publication-home__sidebar {
        border-top: 1px solid var(--home-rule);
        border-left: 0;
    }

    .publication-home__dateline div {
        min-height: 5.75rem;
    }

    .publication-home__sentiment-groups > div {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .publication-home__sentiment-group {
        grid-template-columns: 1fr;
    }

    .publication-home__sentiment-group-kind {
        justify-content: space-between;
        border-right: 0;
        border-bottom: 1px solid var(--home-rule);
    }

    .publication-home__tape {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .publication-home__tape div:nth-child(-n + 2) {
        border-bottom: 1px solid var(--home-rule);
    }

    .publication-home__tape div:nth-child(even) {
        border-right: 0;
    }

    .section-heading,
    .section-heading--dark {
        grid-template-columns: 1fr;
        gap: 0.65rem;
        align-items: start;
    }

    .section-heading > p {
        max-width: 55rem;
        text-align: left;
    }

    .radar-lead__scorecard {
        grid-template-columns: 1fr;
    }

    .front-page__right-rail {
        grid-template-columns: 1fr;
    }

    .signal-board__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .weekly-crosschecks nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .weekly-crosschecks nav a:nth-child(2) {
        border-right: 0;
    }

    .weekly-crosschecks nav a:nth-child(-n + 2) {
        border-bottom: 1px solid var(--home-rule);
    }

    .editorial-shelf__grid {
        grid-template-columns: 1fr;
    }

    .editorial-shelf__blog {
        grid-column: auto;
    }

    .publication-home__notice {
        display: grid;
        gap: 0.8rem;
    }

    .publication-home__notice nav {
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .publication-home__frame {
        width: min(calc(100% - 1rem), 1600px);
    }
}

@media (max-width: 600px) {
    .publication-home__edition-inner {
        gap: 0.7rem;
        font-size: 0.68rem;
    }

    .publication-home__headline {
        max-width: 11ch;
        font-size: clamp(2.55rem, 12vw, 3.55rem);
        line-height: 0.92;
    }

    .publication-home__lede {
        font-size: 0.95rem;
    }

    .publication-home__actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .framework-feature {
        grid-template-columns: minmax(8.5rem, 0.62fr) minmax(0, 1fr);
    }

    .publication-home__index {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .publication-home__index a {
        border-bottom: 1px solid var(--home-rule);
    }

    .publication-home__index a:nth-last-child(-n + 2) {
        border-bottom: 0;
    }

    .publication-home__button {
        width: 100%;
    }

    .publication-home__dateline div {
        min-height: 5.8rem;
        padding: 0.75rem;
    }

    .publication-home__dateline dd {
        font-size: 0.9rem;
    }

    .publication-home__sentiment {
        grid-template-columns: minmax(0, 1fr) 7.25rem;
        padding: 1rem;
    }

    .publication-home__sentiment-groups > div {
        grid-template-columns: 1fr;
    }

    .publication-home__sentiment-group {
        grid-template-columns: 5.25rem minmax(0, 1fr);
    }

    .publication-home__sentiment-group-kind {
        justify-content: flex-start;
        border-right: 1px solid var(--home-rule);
        border-bottom: 0;
    }

    .publication-home__body {
        gap: 2.75rem;
    }

    .section-heading h2 {
        font-size: 2.25rem;
    }

    .radar-lead {
        padding: 1rem;
    }

    .radar-lead__headline-row {
        display: grid;
    }

    .radar-lead__headline-row h3 {
        font-size: 3rem;
    }

    .radar-lead__move {
        padding: 0.75rem 0 0;
        border-top: 1px solid var(--home-rule);
        border-left: 0;
        text-align: left;
    }

    .radar-lead__metrics {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .radar-lead__metrics div:nth-child(2) {
        border-right: 0;
    }

    .radar-lead__metrics div:nth-child(-n + 2) {
        border-bottom: 1px solid var(--home-rule);
    }

    .radar-lead__watch {
        grid-template-columns: 1fr;
    }

    .signal-board,
    .research-directory,
    .featured-labs {
        padding: 1rem;
    }

    .signal-board__grid,
    .owned-indexes__grid,
    .featured-labs__grid,
    .live-desk__grid,
    .research-front__grid,
    .opportunity-tools__presets,
    .research-directory__grid,
    .publication-home__closing {
        grid-template-columns: 1fr;
    }

    .owned-index,
    .featured-lab {
        min-height: 0;
    }

    .owned-index h3,
    .featured-lab h3 {
        min-height: 0;
    }

    .weekly-crosschecks nav {
        grid-template-columns: 1fr;
    }

    .weekly-crosschecks nav a,
    .weekly-crosschecks nav a:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid var(--home-rule);
    }

    .weekly-crosschecks nav a:last-child {
        border-bottom: 0;
    }

    .signal-card {
        min-height: 18rem;
    }

    .research-story--lead,
    .editorial-shelf__blog {
        grid-column: auto;
    }

    .research-story--lead h3 {
        font-size: 2.25rem;
    }

    .opportunity-tools__presets > a {
        min-height: 7.5rem;
    }

    .editorial-shelf__blog article.editorial-story--with-image {
        grid-template-columns: 7.5rem minmax(0, 1fr);
    }

    .editorial-shelf__blog article > a {
        min-height: 8rem;
    }

    .research-directory__grid > section > p:not(:first-child) {
        min-height: 0;
    }

    .publication-home__closing > * + * {
        border-top: 1px solid var(--home-rule);
        border-left: 0;
    }

    .signal-card__topline,
    .signal-card__value span,
    .featured-lab__topline {
        font-size: 0.66rem;
    }
}

@media (max-width: 430px) {
    .framework-feature {
        grid-template-columns: 1fr;
    }

    .framework-feature__cover {
        border-right: 0;
        border-bottom: 1px solid #31506d;
    }

    .framework-feature__cover img {
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: 31rem;
        object-fit: contain;
    }
}

@media (prefers-reduced-motion: reduce) {
    .publication-home *,
    .publication-home *::before,
    .publication-home *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .publication-home__actions,
    .publication-home__index,
    .publication-home__notice nav,
    .wisdom-lightbox {
        display: none !important;
    }

    .publication-home,
    .signal-board,
    .research-directory,
    .featured-labs {
        color: #000;
        background: #fff;
    }
}
