body:has(.mb-visual) { word-break:keep-all; overflow-wrap:break-word }
body:has(.mb-visual) .reading { max-width:none }
body:has(.mb-visual) p { max-width:none }
body:has(.mb-visual) .reading section { margin:68px 0 }
body:has(.mb-visual) .chart { margin:32px 0; max-width:none }
body:has(.mb-visual) .chart > .close-visual { margin:0 0 18px }
body:has(.mb-visual) .reading table { word-break:normal }
.mb-visual .mb-hero { min-height:590px }
.mb-visual .mb-copy h1 { font-size:clamp(32px,3.5vw,46px); line-height:1.3 }
.mb-visual .mb-copy { padding:60px 42px 42px }
.mb-visual .mb-lead { font-size:17px }
.close-visual { background:#101521; border:1px solid #273342; border-radius:3px; padding:30px 34px; font-variant-numeric:tabular-nums; word-break:normal; overflow-wrap:normal }
.cv-unit { font-size:12px; letter-spacing:.05em; color:#aebdd0; margin:0 0 30px }
.cv-bar { display:grid; grid-template-columns:130px minmax(0,1fr) 96px; align-items:center; gap:24px; margin:23px 0 }
.cv-bar > span { font-size:15px }
.cv-bar > b { color:var(--accent); font-size:23px; text-align:right; font-weight:550 }
.cv-track { background:#25313d; height:12px; position:relative }
.cv-track i { display:block; height:100%; background:var(--accent) }
.cv-axis { display:flex; justify-content:space-between; color:#acb7c9; font-size:12px; margin-top:24px }
.cv-2 .cv-axis { margin-left:154px; margin-right:120px }
.cv-rate { height:220px; position:relative; background:repeating-linear-gradient(to top,#2d354333 0 1px,transparent 1px 25%); margin-top:45px }
.cv-rate svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible }
.cv-rate path { fill:none; stroke:var(--accent); stroke-width:2.5; vector-effect:non-scaling-stroke }
.cv-point { position:absolute; transform:translate(-50%,-50%); text-align:center }
.cv-point b { position:absolute; bottom:20px; left:50%; transform:translateX(-50%); font-size:28px; font-weight:550; white-space:nowrap }
.cv-point i { display:block; width:10px; height:10px; background:var(--accent); border-radius:50% }
.cv-dates { display:flex; justify-content:space-between; padding:16px 6% 0; color:#acb7c9; font-size:14px }
.cv-revenue { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px }
.cv-column-track { height:250px; display:flex; align-items:end; border-bottom:1px solid #566273 }
.cv-column-bar { position:relative; width:100%; background:#05ea97b3; min-height:1px }
.cv-column-bar b { position:absolute; bottom:100%; left:0; padding-bottom:10px; font-size:clamp(19px,2.5vw,29px); font-weight:550 }
.cv-column h3 { font-size:15px; margin:18px 0 4px; font-weight:500 }
.cv-column p { font-size:12px; color:#aebdd0; margin:0 }
.cv-forecast .cv-column-bar { background:repeating-linear-gradient(135deg,transparent 0 8px,#05ea9744 8px 10px); border:1px dashed var(--accent) }
.cv-ism { display:grid; gap:29px }
.cv-ism h3 { display:flex; justify-content:space-between; margin:0 0 14px; font-size:18px; font-weight:500 }
.cv-ism h3 b { font-weight:500; color:#c8d5e3 }
.cv-pair { display:grid; grid-template-columns:90px minmax(0,1fr) 52px; gap:18px; align-items:center; margin-top:10px; font-size:14px }
.cv-pair b { text-align:right; font-size:19px; font-weight:500 }
.cv-pair .cv-track i { background:#899bb0 }
.cv-current .cv-track i { background:var(--accent) }
.cv-current.cv-cost .cv-track i { background:#ff98ae }
@media(max-width:800px) { .mb-visual .mb-hero { min-height:0 } .mb-visual .mb-copy { padding:30px 24px } }
@media(max-width:640px) {
 body:has(.mb-visual) .wrap { padding-left:16px; padding-right:16px }
 .mb-visual .mb-market { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px }
 .mb-visual .mb-market > div { padding:0; border:0 } .mb-visual .mb-market strong { font-size:25px }
 .mb-visual .mb-watch > div { grid-template-columns:1fr } .mb-visual .mb-copy { padding:26px 18px }
 .close-visual { padding:24px 16px } .cv-bar { grid-template-columns:95px minmax(0,1fr) 72px; gap:10px; margin:25px 0 }
 .cv-bar > span { font-size:12px } .cv-bar > b { font-size:18px } .cv-2 .cv-axis { margin-left:105px; margin-right:82px }
 .cv-rate { height:150px } .cv-point b { font-size:20px } .cv-revenue { gap:14px }
 .cv-column-track { height:190px } .cv-column h3 { font-size:12px } .cv-column p { font-size:11px }
 .cv-pair { grid-template-columns:70px minmax(0,1fr) 42px; gap:10px; font-size:12px } .cv-pair b { font-size:17px }
 body:has(.mb-visual) .reading section { margin:52px 0 }
}
