/* ASTREON Vision story and proposed software concepts. Uses the site's existing type scale. */
.vision-software-page .product-hero-copy .product-name{max-width:22ch}
.vision-software-page .product-intro{max-width:66ch}
.vision-story-section{padding:clamp(76px,8vw,126px) 0;background:radial-gradient(circle at 88% 6%,rgba(18,100,217,.2),transparent 34%),linear-gradient(180deg,#06182d,#081e37);border-block:1px solid #29445f}
.vision-story-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(230px,.7fr);gap:32px;align-items:end;margin-bottom:36px}
.vision-story-heading h2{max-width:720px;margin:12px 0 0;font-size:clamp(2rem,4.5vw,4.25rem);line-height:1.08;letter-spacing:-.045em}
.vision-story-heading>p{max-width:390px;margin:0 0 4px;color:#bbcee2;font-size:1.05rem;line-height:1.7}
.vision-story-showcase{overflow:hidden;border:1px solid #4b729e;border-radius:28px;background:#081729;box-shadow:0 30px 80px #020c1999,0 0 0 1px #b4d8ff0f inset}
.vision-story-photo{position:relative;height:clamp(220px,31vw,385px);overflow:hidden;background:#0b2947;isolation:isolate;animation:vision-photo-enter .8s both}
.vision-story-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(2,10,22,.28),transparent 55%),linear-gradient(90deg,rgba(2,10,22,.22),transparent 48%);pointer-events:none}
.vision-story-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.015);animation:vision-photo-drift 7s ease-out both}
.vision-story-scan{position:absolute;z-index:2;top:0;bottom:0;left:-10%;width:2px;background:#a4dcff;box-shadow:0 0 16px 4px #399deba3,16px 0 65px 15px #4fb5ff36;animation:vision-scan 6.5s linear both;pointer-events:none}
.vision-story-focus{position:absolute;z-index:2;width:50px;height:50px;border:1px solid #86d6ffb0;box-shadow:0 0 16px #148bff80,inset 0 0 14px #148bff4d;animation:vision-focus 2.8s ease-in-out infinite alternate;pointer-events:none}
.vision-story-focus:before,.vision-story-focus:after{content:"";position:absolute;background:#86d6ff}
.vision-story-focus:before{left:50%;top:-8px;width:1px;height:calc(100% + 16px)}
.vision-story-focus:after{top:50%;left:-8px;height:1px;width:calc(100% + 16px)}
.vision-story-focus-one{top:26%;left:22%}
.vision-story-focus-two{bottom:22%;right:18%;animation-delay:.8s}
.vision-story-image-label{position:absolute;z-index:3;left:26px;top:24px;padding:9px 12px;border:1px solid #91cbff99;border-radius:4px;background:#06182dbf;color:#eaf6ff;font-size:.72rem;font-weight:700;letter-spacing:.16em}
.vision-story-copy{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);column-gap:44px;align-items:center;padding:30px 40px 36px;min-height:160px}
.vision-story-kicker{grid-column:1/-1;color:#8cc5ff;font-size:.75rem;font-weight:700;letter-spacing:.16em;margin-bottom:12px}
.vision-story-copy h3{margin:0;color:#f1f7ff;font-size:clamp(1.55rem,3vw,2.65rem);line-height:1.14;letter-spacing:-.035em}
.vision-story-copy p{margin:0;color:#bdd0e4;font-size:1.02rem;line-height:1.62}
.vision-story-controls{display:flex;align-items:center;gap:22px;padding:0 40px 25px}
.vision-story-count{white-space:nowrap;color:#e5f4ff;font-size:.88rem;font-weight:700;letter-spacing:.12em}
.vision-story-count i{font-style:normal;color:#7194b8;margin:0 5px}
.vision-story-progress{height:3px;flex:1;overflow:hidden;border-radius:20px;background:#355274}
.vision-story-progress span{display:block;width:100%;height:100%;background:#71bbff;transform-origin:left;animation:vision-progress 6.5s linear both}
.vision-story-progress span.is-paused{animation-play-state:paused}
.vision-story-buttons{display:flex;gap:9px}
.vision-story-buttons button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #6084a9;border-radius:50%;background:#103354;color:#f0f8ff;font:inherit;font-size:1.3rem;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.vision-story-buttons button:hover,.vision-story-buttons button:focus-visible{background:#1264d9;border-color:#8cc5ff;transform:translateY(-2px)}
.vision-story-dots{display:flex;justify-content:center;gap:10px;padding:0 28px 28px}
.vision-story-dots button{width:9px;height:9px;border:0;border-radius:100px;background:#5b7591;cursor:pointer;transition:width .25s,background .25s}
.vision-story-dots button[aria-current="true"]{width:32px;background:#8cc5ff}
.vision-story-dots button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.vision-story-disclaimer{margin:22px 0 0;color:#95aac0;font-size:.85rem}
.vision-software-section{padding:clamp(78px,9vw,136px) 0;background:radial-gradient(circle at 12% 90%,#10436b80,transparent 36%),#04111f;border-bottom:1px solid #29445f}
.vision-software-layout{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);align-items:center;gap:clamp(36px,6vw,100px)}
.vision-software-intro h2{margin:14px 0 22px;font-size:clamp(2.1rem,4.5vw,4.2rem);line-height:1.1;letter-spacing:-.045em}
.vision-software-intro>p:not(.section-label){max-width:580px;color:#c5d5e6;font-size:1.06rem;line-height:1.72;margin-bottom:28px}
.vision-software-concept{position:relative;padding:22px;border:1px solid #557baa;border-radius:23px;background:linear-gradient(145deg,#112f50,#0b2038);box-shadow:0 24px 60px #020b1799,0 0 0 1px #8fc8ff1a inset}
.vision-software-concept-top{display:flex;justify-content:space-between;gap:20px;padding:4px 7px 18px;color:#98c4ed;font-size:.7rem;font-weight:700;letter-spacing:.13em}
.vision-software-concept-top span:last-child{color:#79ddc5}
.vision-software-concept-flow{position:relative;display:grid;gap:12px}
.vision-software-concept-flow:before{content:"";position:absolute;left:24px;top:40px;bottom:40px;width:2px;background:linear-gradient(#6cbaff,#6cbaff55)}
.vision-software-concept-flow article{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 12px;gap:17px;align-items:center;padding:18px 19px;border:1px solid #547ca366;border-radius:13px;background:#0b243f;min-height:104px;transition:transform .25s,border-color .25s}
.vision-software-concept-flow article:hover{transform:translateX(4px);border-color:#80c2ff}
.vision-software-concept-number{display:grid;place-items:center;z-index:1;width:48px;height:48px;border:1px solid #85beed;border-radius:50%;background:#0b355b;color:#c4e4ff;font-size:.79rem;font-weight:800}
.vision-software-concept-flow h3{margin:0 0 5px;font-size:1.1rem;color:#f0f8ff}
.vision-software-concept-flow p{margin:0;font-size:.85rem;line-height:1.5;color:#b9cee1}
.vision-software-concept-pulse{width:8px;height:8px;border-radius:50%;background:#7ce5c7;box-shadow:0 0 0 5px #7ce5c727,0 0 16px #7ce5c7;animation:vision-pulse 2.2s ease-in-out infinite}
.vision-software-concept-flow article:nth-child(2) .vision-software-concept-pulse{animation-delay:.45s}
.vision-software-concept-flow article:nth-child(3) .vision-software-concept-pulse{animation-delay:.9s}
@keyframes vision-photo-enter{from{opacity:.4;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}
@keyframes vision-photo-drift{from{transform:scale(1.04)}to{transform:scale(1.015)}}
@keyframes vision-scan{from{left:-10%;opacity:0}8%{opacity:1}90%{opacity:.75}to{left:108%;opacity:0}}
@keyframes vision-focus{from{opacity:.45;transform:scale(.96)}to{opacity:1;transform:scale(1.03)}}
@keyframes vision-progress{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes vision-pulse{50%{box-shadow:0 0 0 9px #7ce5c712,0 0 24px #7ce5c7}}
@media(max-width:800px){.vision-story-heading,.vision-software-layout{grid-template-columns:1fr}.vision-story-heading>p{max-width:680px}.vision-story-copy{grid-template-columns:1fr;gap:10px}.vision-story-copy h3,.vision-story-copy p{grid-column:1}.vision-software-layout{gap:38px}}
@media(max-width:560px){.vision-story-photo{height:230px}.vision-story-focus{width:32px;height:32px}.vision-story-image-label{left:14px;top:14px;font-size:.58rem}.vision-story-copy{padding:25px 23px}.vision-story-controls{padding:0 23px 22px;gap:12px}.vision-story-buttons button{width:39px;height:39px}.vision-software-concept{padding:14px}.vision-software-concept-top{font-size:.57rem}.vision-software-concept-flow article{grid-template-columns:38px minmax(0,1fr) 8px;gap:12px;padding:14px 12px}.vision-software-concept-number{width:38px;height:38px}.vision-software-concept-flow:before{left:19px}}
@media(prefers-reduced-motion:reduce){.vision-story-photo,.vision-story-photo img,.vision-story-scan,.vision-story-focus,.vision-story-progress span,.vision-software-concept-pulse{animation:none!important}.vision-story-scan{display:none}.vision-story-progress span{transform:scaleX(1)}}
