/* Content-led editorial system shared by all three visual directions. */
:root{--editorial-ink:#2e444c;--editorial-soft:#f2f6f5;--editorial-rule:#dfe8e6;--editorial-sage:#46786c;--editorial-amber:#9a7540}
.blog-c[data-content-kind]:not([data-content-kind=directory]) .blog-header{background:#eff4f2;color:#3b575b;border-bottom:1px solid #dce6e2}
.blog-c[data-content-kind]:not([data-content-kind=directory]) .blog-header:before{background:linear-gradient(120deg,#f4f7f4,#e9f0ed);opacity:1}
.blog-c[data-content-kind]:not([data-content-kind=directory]) .blog-cover h1{color:#2e484d;font-size:clamp(29px,3.1vw,43px);max-width:940px;line-height:1.5;letter-spacing:-.035em}
.blog-c[data-content-kind]:not([data-content-kind=directory]) .cover-tag{color:#739087;letter-spacing:.18em}
.blog-c[data-content-kind]:not([data-content-kind=directory]) .cover-meta{color:#80978f}
.blog-c[data-content-kind]:not([data-content-kind=directory]) .blog-cover{padding:36px 28px 57px}
.blog-c[data-content-kind=engineering] .blog-header:before{background:linear-gradient(120deg,#f2f5f8,#eaf0f4)}
.blog-c[data-content-kind=data-report] .blog-header:before{background:linear-gradient(120deg,#f5f3ef,#eceee9)}
.blog-c[data-content-kind=research-roadmap] .blog-main{max-width:1220px;grid-template-columns:minmax(0,900px) 200px;gap:52px}
.reading-tools{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:17px;margin-bottom:13px;border-bottom:1px solid var(--editorial-rule);font-size:11px}
.reading-tools>div{display:flex;align-items:center;gap:15px}.profile-label{font-size:11px;font-weight:600;color:#48756c;letter-spacing:.1em}.reading-estimate{color:#96a39d;font-family:Georgia,serif;font-style:italic}.reading-tools button,.viz-controls button{font:inherit;font-size:11px;line-height:1.6;border:1px solid #d6e1dd;background:#fff;color:#607b72;border-radius:5px;padding:6px 10px;cursor:pointer}.reading-tools button:hover,.viz-controls button:hover{background:#eff5f2}.reading-tools button[aria-pressed=true]{background:#e8f0ec;color:#315f51}
.reading-sequence{font-size:11px;letter-spacing:.12em;color:#8da097;margin:0 0 25px}.post-intro{font-size:16px;line-height:2;color:#65786f;border-bottom:0;padding-bottom:5px;margin-bottom:30px}.article-body{overflow-wrap:anywhere}.semantic-content>h2{padding-top:7px;position:relative}.semantic-content>h2:before{content:"";display:block;width:24px;height:2px;background:#8caaa0;margin-bottom:17px}.semantic-hypothesis{border:1px solid #dce8e1!important;background:#f2f7f3;padding:24px 27px!important;border-radius:3px;line-height:2!important;margin:30px 0!important}.semantic-caution{border-left:2px solid #b49b74;padding:13px 21px;background:#f9f6f0;font-size:14px;color:#7b6c54}.semantic-fact{font-size:14px;line-height:1.95!important}.semantic-fact strong:first-child{color:#58796c;font-weight:600}
.research-directions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:28px 0 42px;counter-reset:direction}.research-direction{min-width:0;padding:24px 25px 26px;border:1px solid #dfe7e3;border-top:2px solid #9bb5a9;background:#fff;border-radius:3px;position:relative}.research-direction:nth-child(even){background:#f8faf8}.article-body .research-direction h3{font-size:19px;line-height:1.65;margin:10px 0 20px;letter-spacing:-.02em;font-weight:600;color:#3c5750}.research-direction p{font-size:13px;line-height:1.95;margin:12px 0}.research-direction p:last-child{margin-bottom:0}.direction-status{font-size:10px;color:#8b795c;line-height:1.7;display:inline-block;background:#f5f1e9;padding:3px 8px;border-radius:3px;margin:0 0 4px}.research-direction code{font-size:11px!important;overflow-wrap:anywhere}.semantic-steps{list-style:none;counter-reset:steps;padding-left:0!important}.semantic-steps>li{position:relative;padding:0 0 25px 43px;counter-increment:steps;border-left:1px solid #dce6e0;margin-left:13px}.semantic-steps>li:before{content:counter(steps,decimal-leading-zero);position:absolute;left:-14px;top:0;width:28px;height:28px;display:grid;place-items:center;border:1px solid #dbe5de;background:#f7faf8;color:#7a9686;border-radius:50%;font:11px Georgia,serif}.semantic-steps>li:last-child{border-left-color:transparent}.semantic-table{border-collapse:separate;border-spacing:0;width:100%;margin:0;font-size:13px}.semantic-table thead th{background:#eef3f1;color:#526e62;font-size:11px;letter-spacing:.03em;text-align:left;font-weight:600}.semantic-table td{vertical-align:top;border-bottom:1px solid #e4ebe7}.semantic-table tr:last-child td{border-bottom:0}.semantic-table tbody tr:hover{background:#f5f8f5}.semantic-comparison td:first-child{font-weight:550;color:#4b6c5b;min-width:100px}.table-scroll{border:1px solid #e0e7e2;border-radius:5px}
.semantic-data,.report-figure[data-viz]{margin:25px 0!important;border:1px solid #dfe7e2;padding:17px 18px 19px;background:#fcfdfb;border-radius:6px;min-width:0;max-width:100%;box-sizing:border-box}.semantic-data>figcaption{font-size:13px;font-weight:600;color:#4e6d5e;margin-bottom:8px}.viz-controls{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 14px}.viz-controls button{font-family:inherit;font-size:10px}.viz-controls button[aria-pressed=true]{background:#e7efe7;border-color:#bdcfc0}.viz-live{font-size:11px;color:#6f8675;line-height:1.8;display:block;min-height:22px;margin:10px 0 3px;overflow-wrap:anywhere}.viz-scroll{overflow:auto;max-height:540px;max-width:100%;scrollbar-width:thin}.interactive-chart{display:block;width:100%;min-width:580px;overflow:visible}.viz-data-point{cursor:crosshair;transition:opacity .18s}.viz-data-point:focus{outline:none;stroke:#b68e54;stroke-width:2px}.viz-data-point:hover{opacity:1!important}.viz-caption{color:#9aa99c;font-size:10px;margin:9px 0 0}.semantic-data[data-ready=true]>.table-scroll[hidden]{display:none}.reading-progress{position:fixed;inset:0 auto auto 0;height:2px;width:100%;background:#7f9e8b;transform:scaleX(0);transform-origin:left;z-index:60;pointer-events:none}.side-index a.current-section{color:#4c7965;border-left:2px solid #809f89}.semantic-content pre{position:relative}.code-copy{font:10px system-ui;float:right;padding:4px 8px;border:1px solid #cfddd5;border-radius:4px;background:#fff;color:#6a8272;cursor:pointer}.code-copy:focus-visible,.viz-controls button:focus-visible,.reading-tools button:focus-visible{outline:3px solid #93b5a1;outline-offset:3px}
@media(min-width:1100px){.blog-a[data-content-kind=research-roadmap] .blog-main,.blog-b[data-content-kind=research-roadmap] .blog-main{max-width:1250px;grid-template-columns:minmax(0,920px) 210px;gap:40px}}
@media(max-width:1100px){.blog-c[data-content-kind=research-roadmap] .blog-main{grid-template-columns:minmax(0,1fr) 190px;gap:30px}.research-directions{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.blog-c[data-content-kind=research-roadmap] .blog-main{display:block}.blog-c[data-content-kind]:not([data-content-kind=directory]) .blog-cover{padding:27px 23px 36px}.blog-c[data-content-kind]:not([data-content-kind=directory]) .blog-cover h1{font-size:28px}.reading-tools{gap:8px;font-size:10px}.reading-tools>div{gap:10px;flex-wrap:wrap}.reading-estimate{font-size:10px}.reading-sequence{font-size:10px;letter-spacing:.06em}.post-intro{font-size:14px;line-height:1.95}.research-directions{gap:17px;margin-top:23px}.research-direction{padding:20px}.article-body .research-direction h3{font-size:18px}.semantic-hypothesis{padding:19px 20px!important;font-size:14px}.semantic-data,.report-figure[data-viz]{padding:13px 10px}.semantic-content>h2{font-size:23px}.semantic-table{font-size:12px}.semantic-steps>li{padding-left:30px}.semantic-fact{font-size:13px}}
@media(prefers-reduced-motion:reduce){.viz-data-point{transition:none!important}}

.semantic-evidence{border-left:2px solid #9fb4aa;padding-left:20px;font-variant-numeric:tabular-nums}.semantic-prose-group p{margin-bottom:.85em}.semantic-content [data-block-kind=definition] strong{font-weight:600}

.design-inspection [data-block-kind]{outline:1px dashed #9bb7a8;outline-offset:5px;position:relative}.design-inspection p[data-block-kind]:before{content:attr(data-design-label);display:block;font:10px/1.5 system-ui;color:#70947e;margin-bottom:7px;letter-spacing:.08em}
