.blog-card {
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.blog-card:hover {
    border-color: #9caf7d;
    box-shadow: 0 8px 24px rgba(24, 33, 31, 0.045);
}

.blog-card-cover,
.blog-author-cover {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--dpt-brand-soft);
}

.blog-card-cover {
    aspect-ratio: 16 / 10;
}

.blog-card-cover img,
.blog-author-cover img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.blog-cover-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    min-height: 11rem;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--dpt-brand);
    background-color: var(--dpt-brand-soft);
}

.blog-author-cover {
    min-height: 11rem;
    aspect-ratio: 16 / 9;
}

.blog-card-title,
.blog-related-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.blog-article-title {
    overflow-wrap: anywhere;
    font-size: clamp(2rem, 3.5vw, 3.3rem);
    line-height: 1.12;
    letter-spacing: -0.04em;
    text-wrap: balance;
}

.blog-content {
    min-width: 0;
    color: #4f5b62;
    font-family: "IBM Plex Sans", system-ui, sans-serif;
    font-size: 1rem;
    line-height: 1.85;
    overflow-wrap: anywhere;
}

.blog-content > :first-child {
    margin-top: 0;
}

.blog-content > :last-child {
    margin-bottom: 0;
}

.blog-content h1,
.blog-content h2,
.blog-content h3,
.blog-content h4 {
    color: var(--dpt-ink);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.025em;
    scroll-margin-top: 6rem;
}

.blog-content h1,
.blog-content h2 {
    margin: 2.5rem 0 1rem;
    font-size: 1.65rem;
}

.blog-content h3 {
    margin: 2rem 0 0.75rem;
    font-size: 1.2rem;
}

.blog-content h4 {
    margin: 1.5rem 0 0.75rem;
    font-size: 1.05rem;
}

.blog-content p,
.blog-content ul,
.blog-content ol {
    margin: 1rem 0;
}

.blog-content ul,
.blog-content ol {
    padding-left: 1.4rem;
}

.blog-content ul {
    list-style: square;
}

.blog-content ol {
    list-style: decimal;
}

.blog-content li + li {
    margin-top: 0.45rem;
}

.blog-content a {
    color: var(--dpt-brand);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: #a1b57b;
    text-underline-offset: 3px;
}

.blog-content a:hover {
    color: var(--dpt-brand-strong);
}

.blog-content strong {
    color: var(--dpt-ink);
}

.blog-content code {
    border: 1px solid var(--dpt-line);
    padding: 0.15rem 0.4rem;
    color: var(--dpt-brand-strong);
    background: var(--dpt-brand-soft);
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 0.9em;
}

.blog-content pre {
    max-width: 100%;
    margin: 1.5rem 0;
    overflow-x: auto;
    border: 1px solid #36414c;
    padding: 1.15rem;
    color: #e8eee9;
    background: var(--dpt-ink);
    overflow-wrap: normal;
}

.blog-content pre code {
    border: 0;
    padding: 0;
    color: inherit;
    background: transparent;
}

.blog-content blockquote {
    margin: 1.5rem 0;
    border-left: 3px solid var(--dpt-brand);
    padding: 1rem 1.25rem;
    color: #4f5b62;
    background: var(--dpt-brand-soft);
}

.blog-content figure {
    margin: 2rem 0;
}

.blog-content img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 1.5rem auto;
    border: 1px solid var(--dpt-line);
}

.blog-content figcaption {
    margin-top: -0.75rem;
    color: #64748b;
    font-size: 0.875rem;
    line-height: 1.6;
    text-align: center;
}

.blog-content .blog-callout {
    margin: 1.5rem 0;
    border: 1px solid #d5e0c7;
    padding: 1rem 1.25rem;
    background: var(--dpt-brand-soft);
}

.blog-content table {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 1.5rem 0;
    overflow-x: auto;
    border-collapse: collapse;
    font-size: 0.94rem;
}

.blog-content th,
.blog-content td {
    border: 1px solid var(--dpt-line);
    padding: 0.8rem;
    text-align: left;
    vertical-align: top;
}

.blog-content th {
    color: var(--dpt-ink);
    background: var(--dpt-brand-soft);
    font-weight: 700;
}

.blog-content .article-table-wrap {
    width: 100%;
    margin: 1.5rem 0;
    overflow-x: auto;
}

.blog-content .article-table-wrap table {
    display: table;
    min-width: 46rem;
    margin: 0;
}

.blog-content .article-video,
.blog-content .youtube-embed {
    margin: 1.75rem 0;
    overflow: hidden;
    border: 1px solid var(--dpt-line);
    background: var(--dpt-ink);
}

.blog-content .article-video video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    background: var(--dpt-ink);
}

.blog-content .youtube-embed {
    position: relative;
    padding-top: 56.25%;
}

.blog-content .youtube-embed iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.blog-content .references {
    margin-top: 3rem;
    border-top: 1px solid var(--dpt-line);
    padding-top: 0.75rem;
}

.blog-content .references li {
    overflow-wrap: anywhere;
}

@media (min-width: 640px) {
    .blog-author-cover {
        aspect-ratio: auto;
    }
}

/* Research journal: graphite featured note, compact source-oriented reading list. */
.journal-total{font:400 45px/1 'IBM Plex Mono',monospace!important;letter-spacing:-2px!important;color:#cae879!important}
.journal-total>span{display:block;font:400 10px/1.7 'IBM Plex Mono',monospace;letter-spacing:0;color:#aebbc7;margin-top:11px}
.journal-library{padding-block:35px 60px}
.journal-library-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:23px}
.journal-library-heading>span{font:400 9px 'IBM Plex Mono',monospace;color:#6c7a71}
.journal-feature{display:grid;grid-template-columns:1.05fr 1fr;min-width:0;overflow:hidden;border:1px solid #3b4751;border-radius:6px;margin-bottom:27px;background:#242c35}
.journal-feature-cover{display:block;overflow:hidden;min-height:345px;border-right:1px solid #3b4751;background:#1b242c}
.journal-feature-cover>img{width:100%;height:100%;object-fit:cover;display:block}
.journal-feature-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;width:100%;height:100%;color:#cae879}
.journal-feature-placeholder>i{font-size:65px;font-weight:300}
.journal-feature-placeholder>span{font:400 9px 'IBM Plex Mono',monospace;letter-spacing:2px;color:#8f9eab}
.journal-feature-copy{padding:36px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.journal-feature-copy>.eyebrow{font-size:9px;color:#bcd19b}
.journal-feature-copy h2{font-size:30px;line-height:1.25;letter-spacing:-.8px;font-weight:500;color:#f1f4f6;margin:21px 0 16px}
.journal-feature-copy h2 a:hover{color:#d0e8a6}
.journal-feature-excerpt{font-size:13px;line-height:1.85;color:#acbdca;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:23px}
.journal-feature-meta{display:flex;align-items:center;flex-wrap:wrap;gap:13px 22px;margin-top:auto;padding-top:16px;border-top:1px solid #44503f;width:100%;font-size:10px;color:#aebcc7}
.journal-feature-meta>a{display:flex;align-items:center;gap:8px;color:#d4dfca}
.journal-feature-meta img{height:22px;width:22px;object-fit:cover;border:1px solid #566447;border-radius:50%}
.journal-read-link{display:flex;align-items:center;justify-content:space-between;gap:40px;color:#cae879;margin-top:24px;font-size:12px;font-weight:500}
.journal-row{display:grid;grid-template-columns:28px 160px minmax(0,1fr) 28px;gap:25px;padding:28px 0;border-bottom:1px solid #cfd9ca;align-items:center;min-width:0}
.journal-row-index{font:400 11px 'IBM Plex Mono',monospace;color:#718762;align-self:start;padding-top:4px}
.journal-row-cover{display:block;aspect-ratio:16/10;overflow:hidden;border:1px solid #cad6c3;border-radius:4px;background:#242c35}
.journal-row-cover img{display:block;width:100%;height:100%;object-fit:cover}
.journal-row-cover>span{display:grid;place-items:center;width:100%;height:100%;font-size:25px;color:#cae879}
.journal-row-copy{min-width:0}
.journal-meta{display:flex;flex-wrap:wrap;gap:10px 20px;font:400 9px/1.6 'IBM Plex Mono',monospace;color:#6d7b73}
.journal-meta>span:first-child{color:#59743e}
.journal-row h2{font-size:22px;line-height:1.35;letter-spacing:-.5px;font-weight:500;margin:11px 0 9px;color:#202831}
.journal-row h2 a:hover{color:#506d31}
.journal-row-copy>p:last-child{font-size:12px;line-height:1.9;color:#627079;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.journal-row-open{display:grid;place-items:center;color:#5c763e;font-size:12px;width:28px;height:28px}
.journal-pagination{display:flex;justify-content:center;gap:20px;align-items:center;margin-top:35px;font:400 11px 'IBM Plex Mono',monospace;color:#66785a}
.journal-empty{padding:48px;border:1px solid #3b4751;border-radius:6px}
.journal-empty h2{font-size:30px;font-weight:500;letter-spacing:-.7px;margin-top:18px}
.journal-empty p{font-size:13px;line-height:1.8;color:#a8b9c6;margin-top:15px}
.journal-empty a{display:inline-flex;align-items:center;gap:25px;color:#cae879;font-size:12px;margin-top:25px}
.journal-method-note{display:flex;align-items:center;gap:20px;padding:29px 0 0;margin-top:35px;border-top:1px solid #cfd9ca}
.journal-method-note>i{font-size:23px;color:#688347}
.journal-method-note>div{flex:1}
.journal-method-note h2{font-size:16px;font-weight:500;margin-bottom:7px}
.journal-method-note p{font-size:12px;line-height:1.8;color:#627079}
.journal-method-note>a{display:flex;align-items:center;gap:15px;font-size:11px;font-weight:500;color:#49682c;white-space:nowrap}
.author-heading{display:flex;align-items:flex-start;gap:28px;min-width:0}
.author-heading>img{width:85px;height:85px;object-fit:cover;border-radius:50%;border:1px solid #62724e;flex-shrink:0}
.author-heading>div{min-width:0}
.author-heading h1{font-size:46px;margin-top:12px;overflow-wrap:anywhere}
.author-heading .eyebrow{font-size:9px;color:#b0c39a}
.author-heading .inner-intro{font-size:13px;line-height:1.9;margin-top:20px}
.article-masthead .inner-header-grid{grid-template-columns:minmax(0,1fr) 220px;gap:55px}
.article-masthead h1{font-size:clamp(32px,3.6vw,48px);line-height:1.15;letter-spacing:-1.4px}
.article-masthead .inner-intro{font-size:14px;line-height:1.9}
.article-meta{display:flex;align-items:center;flex-wrap:wrap;gap:18px 25px;margin-top:25px;font-size:11px;color:#a8b9c6}
.article-meta>span{display:flex;align-items:center;gap:8px}
.article-meta i{font-size:10px;color:#b2c594}
.article-workbench{display:grid;grid-template-columns:250px minmax(0,1fr);gap:40px;padding-block:45px 65px;align-items:start}
.article-research-rail{position:sticky;top:100px;border:1px solid #3b4751;border-radius:5px;padding:23px 20px;background:#242c35;min-width:0}
.article-author{display:flex;align-items:center;gap:12px;min-width:0;border-top:1px solid #42513e;padding-top:20px}
.article-author img{width:40px;height:40px;flex-shrink:0;border-radius:50%;border:1px solid #61714e;object-fit:cover}
.article-author small{display:block;font:400 7px/1.6 'IBM Plex Mono',monospace;letter-spacing:.6px;color:#a4b7c4}
.article-author strong{display:block;font-size:13px;font-weight:500;line-height:1.5;margin-top:5px;color:#e3eadb;overflow-wrap:anywhere}
.article-research-rail>p:not(.rail-label){font-size:11px;line-height:1.95;color:#a8bac7;margin-top:18px}
.article-rail-link{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#cae879;font-size:10px;line-height:1.7;margin-top:18px}
.article-review{display:flex;align-items:center;gap:11px;border-top:1px solid #3c4a56;padding-top:19px;margin-top:21px;color:#aebecb;font-size:10px;line-height:1.8}
.article-review>i{color:#cae879}.article-review strong{font-weight:500;color:#dce5d1}
.article-rail-method{border-top:1px solid #3c4a56;margin-top:23px;padding-top:23px}
.article-rail-method>i{font-size:20px;color:#cae879}
.article-rail-method h2{font-size:16px;line-height:1.5;font-weight:500;color:#ebf1e5;margin:15px 0 10px}
.article-rail-method p{font-size:11px;line-height:1.9;color:#a8bac7}
.article-rail-method a{display:flex;align-items:center;gap:13px;font-size:10px;line-height:1.7;color:#cae879;margin-top:17px}
.article-body-column{min-width:0}
.article-paper{background:#fff;border:1px solid #d4ddd0;border-radius:5px;padding:34px 40px;min-width:0}
.article-paper .blog-content{font-size:15px;line-height:1.95}
.article-paper .blog-content h2{font-weight:500;letter-spacing:-.5px}
.article-paper .blog-content h3{font-weight:500;letter-spacing:-.3px}
.article-paper .blog-content pre{border-radius:4px;background:#202831}
.article-paper .blog-content blockquote,.article-paper .blog-content .blog-callout{background:#eaf1df;border-color:#91aa67}
.article-paper .blog-content th{background:#242c35;color:#d3e2bf;font-weight:500;font-size:12px}
.article-feedback{display:flex;align-items:center;gap:25px;padding:25px 28px;border:1px solid #3b4751;border-radius:5px;background:#242c35;margin-top:25px}
.article-feedback>div{flex:1;min-width:0}.article-feedback .eyebrow{font-size:8px;color:#b5c99d}
.article-feedback h2{font-size:21px;letter-spacing:-.4px;font-weight:500;color:#edf2f5;margin-top:10px}
.article-feedback p:not(.eyebrow){font-size:11px;line-height:1.8;color:#afbfcc;margin-top:8px}
.article-feedback button{font-size:11px;flex-shrink:0}
.article-related{margin-top:34px}.article-related>a{display:grid;grid-template-columns:100px minmax(0,1fr) 20px;gap:20px;align-items:center;border-top:1px solid #d1dacb;padding:19px 0;margin-top:17px}
.article-related>a>span{font:400 9px 'IBM Plex Mono',monospace;color:#738568}
.article-related h2{font-size:17px;line-height:1.5;font-weight:500}.article-related i{font-size:11px;color:#5b773e}
@media(max-width:1050px){.journal-feature-copy{padding:28px}.journal-feature-copy h2{font-size:26px}.journal-feature-cover{min-height:330px}.article-masthead .inner-header-grid{grid-template-columns:minmax(0,1fr) 180px;gap:32px}.article-workbench{grid-template-columns:210px minmax(0,1fr);gap:25px}.article-research-rail{padding:22px 17px}.article-paper{padding:28px}.article-feedback{align-items:flex-start;flex-direction:column;gap:18px}.journal-row{grid-template-columns:25px 130px minmax(0,1fr) 22px;gap:20px}.author-header-grid{gap:30px!important}.author-heading{gap:20px}.author-heading h1{font-size:39px}.author-heading>img{width:66px;height:66px}}
@media(max-width:767px){.journal-total{font-size:34px!important}.journal-total>span{font-size:9px;display:inline-block;margin:0 0 0 15px;letter-spacing:0}.journal-library{padding-block:25px 40px}.journal-library-heading{margin-bottom:19px}.journal-library-heading>span{font-size:8px}.journal-feature{grid-template-columns:1fr;margin-bottom:16px}.journal-feature-cover{min-height:0;aspect-ratio:16/10;border-right:0;border-bottom:1px solid #3b4751}.journal-feature-copy{padding:25px 22px}.journal-feature-copy h2{font-size:26px;line-height:1.3;margin-top:18px}.journal-feature-excerpt{font-size:12px;line-height:1.9;-webkit-line-clamp:5}.journal-feature-meta{font-size:9px}.journal-read-link{font-size:11px}.journal-row{grid-template-columns:20px minmax(0,1fr) 22px;gap:14px;padding:22px 0}.journal-row-cover{display:none}.journal-row-index{font-size:10px}.journal-row h2{font-size:20px;line-height:1.4}.journal-meta{font-size:8px;gap:8px 13px}.journal-row-copy>p:last-child{font-size:11px}.journal-row-open{font-size:10px;width:22px}.journal-method-note{flex-wrap:wrap;gap:15px;margin-top:26px;padding-top:24px}.journal-method-note h2{font-size:15px}.journal-method-note p{font-size:11px}.journal-method-note>a{margin-left:39px;font-size:10px}.journal-method-note>i{font-size:21px}.journal-empty{padding:30px 24px}.journal-empty h2{font-size:26px}.journal-empty p{font-size:12px}.author-heading{display:block}.author-heading>img{width:64px;height:64px;margin-bottom:24px}.author-heading h1{font-size:37px}.author-heading .inner-intro{font-size:12px}.article-masthead .inner-header-grid{grid-template-columns:1fr;gap:25px}.article-masthead h1{font-size:33px;letter-spacing:-1px}.article-masthead .inner-intro{font-size:13px}.article-meta{font-size:10px;gap:14px 19px}.article-masthead .inner-context>strong{font-size:14px}.article-workbench{grid-template-columns:1fr;gap:25px;padding-block:28px 40px}.article-research-rail{position:static;padding:22px}.article-research-rail .article-rail-method{display:none}.article-research-rail>p:not(.rail-label){font-size:11px}.article-paper{padding:23px 18px}.article-paper .blog-content{font-size:14px;line-height:1.95}.article-feedback{padding:23px 20px;margin-top:20px}.article-feedback h2{font-size:20px}.article-related>a{grid-template-columns:minmax(0,1fr) 20px;gap:10px}.article-related>a>span{grid-column:1/-1}.article-related h2{font-size:16px}}
