/* Conceptual diagrams share the deck typography and scale with its stage. */
.concept-visual { margin:0; width:100%; max-height:34cqw; padding:2.1cqw 2.2cqw; color:#1d1d1f; background:#edf3fb; display:flex; flex-direction:column; justify-content:center; direction:rtl; }
.concept-visual * { box-sizing:border-box; }
.cv-overline { font-size:.85cqw; color:var(--blue-text); letter-spacing:.045em; margin-bottom:1.6cqw; }
.cv-caption { font-size:.77cqw; line-height:1.6; color:#5a626f; margin-top:1.5cqw; padding-top:1cqw; border-top:1px solid #cad8eb; }
.concept-visual em { font-style:normal; color:var(--blue-text); }
.cv-network-source { display:grid; justify-items:center; text-align:center; gap:.45cqw; }
.cv-source-logo { display:block; width:9cqw; height:auto; margin-bottom:.5cqw; }
.cv-network-source strong { font-size:2.1cqw; font-weight:500; }
.cv-network-source>span:last-child { font-size:.95cqw; color:#5a626f; }
.cv-network-trunk { height:2.5cqw; width:1px; background:#86a9d5; margin:1cqw auto 0; }
.cv-network-branches { display:grid; grid-template-columns:repeat(3,1fr); gap:1.7cqw; padding-top:1.65cqw; position:relative; }
.cv-network-branches::before { content:''; height:1px; background:#86a9d5; position:absolute; top:0; right:15%; left:15%; }
.cv-endpoint { text-align:center; position:relative; }
.cv-endpoint::before { content:''; width:1px; height:1.65cqw; background:#86a9d5; position:absolute; top:-1.65cqw; right:50%; }
.cv-mini-screen { height:5.8cqw; border:.17cqw solid #436c9d; display:grid; place-items:center; background:#ffffff; font-size:1.25cqw; }
.cv-endpoint i { display:block; width:38%; height:.7cqw; margin:auto; border-bottom:.15cqw solid #436c9d; background:linear-gradient(90deg,transparent 43%,#436c9d 43%,#436c9d 57%,transparent 57%); }
.cv-media-line { display:grid; grid-template-columns:1fr 1.5fr 2.1cqw; direction:ltr; align-items:center; gap:1.2cqw; padding:1.45cqw 0; border-bottom:1px solid #cad8eb; }
.cv-media-line b { font-size:2.35cqw; line-height:1; font-weight:400; letter-spacing:-.05em; }
.cv-media-line>span { font-size:1.05cqw; direction:rtl; text-align:right; }
.cv-media-line i { color:var(--blue-text); font-style:normal; font-size:1.7cqw; text-align:center; }
.cv-format-photo { width:1.8cqw; height:1.6cqw; border:.14cqw solid #0071e3; background:linear-gradient(135deg,transparent 50%,#c6ddf8 50%); }
.cv-media-result { display:flex; align-items:center; justify-content:space-between; font-size:1.8cqw; margin-top:1.3cqw; }
.cv-media-result span { color:var(--blue-text); }
.cv-release-intro,.cv-roles-heading { font-size:2.75cqw; line-height:1.2; letter-spacing:-.04em; }
.cv-timeline { display:grid; grid-template-columns:1fr 1fr 1fr; margin-top:3.2cqw; position:relative; }
.cv-timeline::before { content:''; position:absolute; top:.4cqw; height:1px; background:#86a9d5; left:14%; right:14%; }
.cv-milestone { display:flex; flex-direction:column; align-items:center; text-align:center; position:relative; gap:.6cqw; }
.cv-dot { display:block; width:.9cqw; height:.9cqw; border:1px solid #0071e3; border-radius:50%; background:#edf3fb; margin-bottom:.7cqw; }
.is-current .cv-dot { background:#0071e3; box-shadow:0 0 0 .5cqw #0071e312; }
.cv-milestone strong { font-size:1.15cqw; font-weight:500; }
.cv-milestone small { font-size:.85cqw; color:#5a626f; }
.cv-day-head { display:flex; justify-content:space-between; font-size:.95cqw; color:#5a626f; border-bottom:1px solid #cad8eb; padding-bottom:1.1cqw; }
.cv-day-grid { background:repeating-linear-gradient(90deg,transparent 0,transparent calc(33.333% - 1px),#d3dfee calc(33.333% - 1px),#d3dfee 33.333%); padding:1.3cqw 0 .3cqw; }
.cv-time-row { display:flex; width:100%; margin-bottom:1.2cqw; }
.cv-time-band { display:block; padding:.75cqw 1cqw; font-size:1cqw; line-height:1.5; }
.cv-band-base { width:100%; background:#dce6f3; border-right:3px solid #86a9d5; }
.cv-band-family { width:54%; margin-right:23%; background:#b3d3fc; color:#174f87; }
.cv-band-evening { width:38%; margin-right:auto; background:#005dbb; color:white; }
.cv-day-repeat { display:flex; align-items:center; gap:1cqw; margin-top:.6cqw; }
.cv-day-repeat>span { font-size:2.1cqw; color:var(--blue-text); }
.cv-day-repeat strong { font-size:1.08cqw; font-weight:400; }
.cv-rule-row { display:grid; grid-template-columns:1fr 1.5fr; gap:.3cqw 1cqw; border-top:1px solid #cad8eb; padding:1cqw 0 .3cqw; align-items:center; }
.cv-rule-row b { font-size:1.75cqw; font-weight:400; grid-row:1/3; }
.cv-rule-row>span { font-size:1.15cqw; }
.cv-rule-row small { font-size:.85cqw; color:#5a626f; }
.cv-rule-tag { justify-self:start; padding:.3cqw .8cqw; background:#dceaff; border-radius:2cqw; color:#174f87; }
.cv-rule-link { font-size:1.5cqw; line-height:1.4; color:var(--blue-text); margin:.15cqw 0 .3cqw; }
.cv-rule-priority { border-top:2px solid #0071e3; }
.cv-role-list { margin:1.6cqw 0 0; }
.cv-role-list>div { display:grid; grid-template-columns:1fr 1.5fr; gap:1.3cqw; padding:.9cqw 0; border-bottom:1px solid #cad8eb; position:relative; }
.cv-role-list dt { font-size:1.14cqw; color:#174f87; }
.cv-role-list dd { font-size:1cqw; margin:0; color:#5a626f; }
.cv-campaign-heading { border-bottom:1px solid #a5bfdf; padding-bottom:2cqw; }
.cv-campaign-heading span { display:block; font-size:1.4cqw; color:var(--blue-text); }
.cv-campaign-heading strong { font-weight:400; font-size:3cqw; line-height:1.3; letter-spacing:-.04em; }
.cv-campaign-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:1.6cqw; padding-top:2.1cqw; }
.cv-campaign-pillars>div { display:flex; flex-direction:column; min-width:0; }
.cv-pillar-word { font-size:2.3cqw; font-weight:300; color:var(--blue-text); margin-bottom:1.4cqw; }
.cv-campaign-pillars b { font-size:1.08cqw; font-weight:500; margin-bottom:.35cqw; }
.cv-campaign-pillars small { font-size:.85cqw; color:#5a626f; }
.cv-connection-sources,.cv-connection-targets { display:grid; grid-template-columns:1fr 1fr; gap:2cqw; }
.cv-connection-sources>div,.cv-connection-targets>div { display:flex; flex-direction:column; gap:.5cqw; border-top:1px solid #cad8eb; padding-top:.8cqw; }
.cv-connection-sources b,.cv-connection-targets b { font-size:1.3cqw; font-weight:500; }
.cv-connection-sources b { text-align:right; }
.cv-connection-sources span,.cv-connection-targets span { font-size:.9cqw; color:#5a626f; }
.cv-connection-arrow { font-size:1.9cqw; line-height:1.2; text-align:center; color:var(--blue-text); margin:.8cqw 0; }
.cv-platform { background:#fff; padding:1.1cqw .8cqw; border:1px solid #cad8eb; border-radius:.7cqw; text-align:center; font-size:1.4cqw; }
.cv-platform img { display:block; width:10.5cqw; height:auto; margin:auto; }
@media screen and (max-width:760px) {
  .visual:has(>.concept-visual) { height:auto; max-height:none; }
  .concept-visual { max-height:none; padding:22px 20px; }
  .cv-overline { font-size:10px; margin-bottom:20px; }
  .cv-caption { font-size:10px; margin-top:20px; padding-top:12px; }
  .cv-network-source { gap:7px; }
  .cv-source-logo { width:108px; margin-bottom:6px; }
  .cv-network-source strong { font-size:25px; }
  .cv-network-source>span:last-child { font-size:11px; }
  .cv-network-trunk { height:28px; margin-top:14px; }
  .cv-network-branches { gap:14px; padding-top:21px; }
  .cv-endpoint::before { height:21px; top:-21px; }
  .cv-mini-screen { height:61px; border-width:2px; font-size:14px; }
  .cv-endpoint i { height:10px; border-bottom-width:2px; }
  .cv-media-line { gap:10px; grid-template-columns:1fr 1.2fr 19px; padding:19px 0; }
  .cv-media-line b { font-size:24px; }
  .cv-media-line>span { font-size:11px; }
  .cv-media-line i { font-size:20px; }
  .cv-format-photo { width:19px; height:17px; border-width:2px; }
  .cv-media-result { font-size:22px; margin-top:18px; }
  .cv-release-intro,.cv-roles-heading { font-size:31px; }
  .cv-timeline { margin-top:38px; }
  .cv-timeline::before { top:5px; }
  .cv-milestone { gap:8px; }
  .cv-dot { width:11px; height:11px; margin-bottom:8px; }
  .is-current .cv-dot { box-shadow:0 0 0 6px #0071e312; }
  .cv-milestone strong { font-size:12px; }
  .cv-milestone small { font-size:9px; }
  .cv-day-head { font-size:10px; padding-bottom:15px; }
  .cv-day-grid { padding:18px 0 5px; }
  .cv-time-row { margin-bottom:15px; }
  .cv-time-band { padding:10px 9px; font-size:11px; }
  .cv-day-repeat { gap:10px; margin-top:10px; }
  .cv-day-repeat>span { font-size:25px; }
  .cv-day-repeat strong { font-size:12px; }
  .cv-rule-row { gap:5px 12px; padding:13px 0 5px; }
  .cv-rule-row b { font-size:21px; }
  .cv-rule-row>span { font-size:13px; }
  .cv-rule-row small { font-size:10px; }
  .cv-rule-tag { padding:5px 10px; border-radius:24px; }
  .cv-rule-link { font-size:20px; margin:3px 0 5px; }
  .cv-role-list { margin-top:20px; }
  .cv-role-list>div { padding:13px 0; gap:12px; }
  .cv-role-list dt { font-size:12px; }
  .cv-role-list dd { font-size:11px; }
  .cv-campaign-heading { padding-bottom:22px; }
  .cv-campaign-heading span { font-size:15px; }
  .cv-campaign-heading strong { font-size:34px; }
  .cv-campaign-pillars { gap:14px; padding-top:22px; }
  .cv-pillar-word { font-size:27px; margin-bottom:17px; }
  .cv-campaign-pillars b { font-size:12px; margin-bottom:5px; }
  .cv-campaign-pillars small { font-size:10px; }
  .cv-connection-sources,.cv-connection-targets { gap:22px; }
  .cv-connection-sources>div,.cv-connection-targets>div { gap:6px; padding-top:12px; }
  .cv-connection-sources b,.cv-connection-targets b { font-size:14px; }
  .cv-connection-sources span,.cv-connection-targets span { font-size:10px; }
  .cv-connection-arrow { font-size:25px; margin:10px 0; }
  .cv-platform { padding:16px 10px; border-radius:8px; font-size:17px; }
  .cv-platform img { width:126px; }
}
