/* One vector language: connected paths, quiet depth and Calab's blue/aqua. */
:root{--vector-paper:#fff;--vector-line:#c5d7ee}
.designed-relationship .relationship-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.designed-relationship .people-art-photo{position:absolute;left:-4%;top:-3.2%;width:108%;height:108%;max-width:none;transform:none!important;transition:none}
.designed-relationship .collaboration-note{animation:none!important}
.home-visual-pass .clarity-intro h2>span{background:linear-gradient(105deg,#0059ff,#00ffd4);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.azure-home-brand.official-badge{margin-bottom:27px}
.azure-home-brand.official-badge img{width:220px;height:auto;object-fit:contain;filter:none}
.azure-home-brand>span{border:0;padding:0;color:#bccde7;font-size:14px}
.azure-home-visual.azure-proof-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:29px;min-height:410px;background:#17202d55}
.azure-proof-panel .partner-badge{width:215px;height:auto;object-fit:contain;filter:none}
.azure-proof-panel p{font-size:12px;color:#bdcce2;line-height:1.6;text-align:center;margin:24px 0 9px}
.marketplace-badge-link{display:block;width:min(340px,100%)}
.marketplace-badge-link img{display:block;width:100%;height:auto;object-fit:contain;filter:none}
.marketplace-badge-link:focus-visible{outline:2px solid #0059ff;outline-offset:5px}
.visual-cta.tail-next{background:#020f5a}
.visual-cta-shade{background:radial-gradient(ellipse at 84% 47%,#0059ff55,transparent 51%),linear-gradient(110deg,#020f5a,#081b3d)}
.visual-cta-mark{width:350px;height:350px;opacity:.52;right:9%;transform:translateY(-50%)}
.visual-cta:after{display:none;content:none}
@media(max-width:900px){.visual-cta-mark{width:250px;height:250px;right:4%;opacity:.4}}
@media(max-width:600px){.visual-cta-mark{width:275px;height:275px;top:42%;right:-95px;opacity:.19}.azure-home-visual.azure-proof-panel{padding:25px 21px;min-height:380px}.azure-proof-panel .partner-badge{width:205px}}
.sector-panel-copy{display:flex;flex-direction:column;justify-content:flex-end;min-height:100%;padding-bottom:40px}
@media(max-width:600px){.azure-home-brand.official-badge img{width:205px}.sector-panel-copy{padding-bottom:31px}}
html[data-theme=dark]{--vector-paper:#213149;--vector-line:#4c678c}
.calab-vector{display:block;width:100%;height:100%;overflow:visible;stroke:none}
.vector-paper{fill:var(--vector-paper)}
.vector-card-art{display:flex;align-items:center;justify-content:center;position:relative;background:radial-gradient(ellipse at 60% 40%,#e5f6ff,#f3f6fb 78%)}
.vector-card-art .calab-vector{width:94%;height:94%;position:relative}
html[data-theme=dark] .vector-card-art{background:radial-gradient(ellipse at 60% 40%,#143450,#172232 78%)}
.card-motion-active .vector-trace{stroke-dasharray:900;animation:vector-draw 2.3s cubic-bezier(.16,1,.3,1) both}
.card-motion-active .vector-sheet,.card-motion-active .vector-module{animation:vector-arrive 1.6s cubic-bezier(.16,1,.3,1) both;transform-box:fill-box;transform-origin:center}
.card-motion-active .vector-sheet:nth-child(2),.card-motion-active .vector-module:nth-child(2){animation-delay:.13s}.card-motion-active .vector-sheet:nth-child(3),.card-motion-active .vector-module:nth-child(3){animation-delay:.26s}
.card-motion-active .vector-core{animation:vector-arrive 1.6s cubic-bezier(.16,1,.3,1) both;transform-box:fill-box;transform-origin:center}
.card-motion-active .vector-lens{animation:vector-search 1.7s cubic-bezier(.16,1,.3,1) both;transform-box:fill-box;transform-origin:center}
@keyframes vector-draw{from{stroke-dashoffset:900;opacity:.3}to{stroke-dashoffset:0;opacity:1}}
@keyframes vector-arrive{from{translate:0 12px;opacity:.2}to{translate:0 0;opacity:1}}
@keyframes vector-search{from{translate:-12px 8px;rotate:-5deg}to{translate:0 0;rotate:0deg}}
/* Cards share clear baselines; the illustration carries each delivery phase. */
.visual-factory-cards{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:24px}
.visual-delivery-card{height:100%;display:flex;flex-direction:column;background:var(--visual-paper)}
.visual-delivery-card:nth-child(2),.visual-delivery-card:nth-child(3){margin-top:0}
.visual-delivery-photo.vector-card-art{height:270px;flex-shrink:0;background:radial-gradient(ellipse at 55% 42%,#eaf5ff,#f4f7fb 80%)}
html[data-theme=dark] .visual-delivery-photo.vector-card-art{background:radial-gradient(ellipse at 55% 42%,#153453,#172232 80%)}
.visual-delivery-photo .calab-vector{width:90%;height:90%;margin-top:10px}
.visual-delivery-copy{flex:1;min-height:164px;padding:26px 25px 30px}
.visual-delivery-copy h3{font-size:28px;max-width:100%;min-height:0;padding-right:26px}
.visual-delivery-copy p{font-size:14px;max-width:310px;margin-top:13px}
.visual-photo-label{left:19px;top:17px;background:var(--visual-paper);border:1px solid var(--visual-line);color:var(--visual-ink);font-size:10px}
.azure-home-visual.vector-azure{padding:22px 27px 20px}.vector-azure .azure-tenant-label{margin-bottom:0}.vector-azure .calab-vector{height:285px}.vector-azure .azure-vector-key{display:flex;justify-content:center;gap:20px;color:#bccce4;font-size:10px;line-height:1.5}.vector-azure .azure-home-caption{margin-top:15px}
.vector-azure{--vector-paper:#1d304c;--vector-line:#4b668b}
/* Equal editorial cards, with concise display titles and a shared image ratio. */
.insights-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}
.insights-grid .insight-story.visual-customer-card,.insights-grid .insight-story.visual-insight-card{display:flex;flex-direction:column;height:100%;grid-row:auto}
.insights-grid .insight-photo,.insights-grid .insight-feature .insight-photo{height:260px;flex:0 0 auto}
.insights-grid .insight-story .insight-copy{display:flex;flex-direction:column;flex:1;min-height:155px;padding-top:18px}
.insights-grid .insight-story h3,.insights-grid .insight-feature h3{font-size:28px;line-height:1.25;min-height:70px;font-weight:400}
.insights-grid .insight-rule{margin-top:auto;translate:0 22px}.insights-grid{padding-bottom:22px}
@media(max-width:1100px){.visual-delivery-photo.vector-card-art{height:245px}.visual-delivery-copy h3{font-size:25px;min-height:62px}.visual-delivery-copy{padding:24px 22px}.insights-grid .insight-photo,.insights-grid .insight-feature .insight-photo{height:230px}.insights-grid .insight-story h3,.insights-grid .insight-feature h3{font-size:26px}.vector-azure .calab-vector{height:260px}}
@media(max-width:900px){.visual-factory-cards{gap:17px}.visual-delivery-photo.vector-card-art{height:207px}.visual-delivery-copy{padding:23px 19px}.visual-delivery-copy h3{font-size:23px;min-height:58px;padding-right:0}.visual-delivery-copy p{font-size:13px}.visual-photo-label{font-size:8px;left:13px;top:14px;padding:6px 9px}.visual-card-arrow{position:static;margin-top:18px}.insights-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.insights-grid .insight-photo,.insights-grid .insight-feature .insight-photo{height:190px}.insights-grid .insight-story h3,.insights-grid .insight-feature h3{font-size:23px;min-height:86px}.vector-azure .calab-vector{height:238px}.vector-azure .azure-vector-key{gap:12px;font-size:8px}}
@media(max-width:600px){.visual-factory-cards{grid-template-columns:1fr;gap:22px}.visual-delivery-photo.vector-card-art{height:245px}.visual-delivery-copy{padding:24px 25px 28px;min-height:0}.visual-delivery-copy h3{font-size:28px;min-height:0;padding-right:33px}.visual-delivery-copy p{font-size:15px;max-width:280px}.visual-photo-label{font-size:10px;padding:7px 12px;left:18px;top:17px}.visual-card-arrow{position:absolute;right:24px;top:29px;margin:0}.insights-grid{grid-template-columns:1fr;gap:34px;padding-bottom:0}.insights-grid .insight-photo,.insights-grid .insight-feature .insight-photo{height:240px}.insights-grid .insight-story h3,.insights-grid .insight-feature h3{font-size:28px;min-height:0}.insights-grid .insight-story .insight-copy{min-height:0}.insights-grid .insight-rule{margin-top:23px;translate:0 0}.vector-azure .calab-vector{height:255px}.vector-azure .azure-vector-key{gap:17px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.calab-vector *{animation:none!important;transition:none!important}}

/* Continuous delivery illustrations: closed loops with no hover restart. */
.visual-delivery-card[data-delivery-motion] .vector-sheet{animation:delivery-paper-float 5.6s ease-in-out infinite}
.visual-delivery-card[data-delivery-motion] .vector-sheet:nth-child(2){animation-delay:-2.8s}
.visual-delivery-card[data-delivery-motion] .vector-lens{animation:delivery-scan 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.visual-delivery-card[data-delivery-motion] .vector-build .vector-module,
.visual-delivery-card[data-delivery-motion] .vector-build .vector-core{animation:delivery-module-float 4.8s ease-in-out infinite}
.visual-delivery-card[data-delivery-motion] .vector-build .vector-module:nth-child(2){animation-delay:-1.2s}
.visual-delivery-card[data-delivery-motion] .vector-build .vector-module:nth-child(3){animation-delay:-2.4s}
.visual-delivery-card[data-delivery-motion] .vector-build .vector-core{animation-delay:-3.6s}
.visual-delivery-card[data-delivery-motion] .vector-build .vector-trace{stroke-dasharray:9 13;animation:delivery-path-flow 2s linear infinite}
.visual-delivery-card[data-delivery-motion] .vector-deploy-stack{animation:delivery-stack-float 5s ease-in-out infinite}
.visual-delivery-card[data-delivery-motion] .vector-deploy-orbit{transform-box:view-box;transform-origin:184px 136px;animation:delivery-orbit-flow 14s linear infinite}
.visual-delivery-card[data-delivery-motion] .calab-vector *{animation-play-state:paused}
.visual-delivery-card.delivery-motion-running .calab-vector *{animation-play-state:running}
@keyframes delivery-paper-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes delivery-scan{0%,100%{translate:-10px 4px;rotate:-4deg}35%{translate:12px -7px;rotate:3deg}70%{translate:4px 7px;rotate:1deg}}
@keyframes delivery-module-float{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes delivery-path-flow{from{stroke-dashoffset:0}to{stroke-dashoffset:-44}}
@keyframes delivery-stack-float{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes delivery-orbit-flow{from{rotate:0deg}to{rotate:360deg}}
html[data-access-motion=true] .visual-delivery-card[data-delivery-motion] .calab-vector *{animation:none!important}
