/* Differline connection motif. Actual public captures remain labelled as such. */
:root{--vision-ink:#102735;--vision-night:#0b202c;--vision-mint:#82e8cf;--vision-paper:#f6f7f2;--vision-muted:#53656b}
.vision-hero{position:relative;overflow:hidden;margin:0;background:var(--vision-night);color:#e9f4ef;isolation:isolate}
.vision-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 85% 0,rgba(117,224,200,.13),transparent 58%),linear-gradient(90deg,transparent 49.9%,rgba(202,237,226,.035) 50%,transparent 50.1%);background-size:auto,92px 100%}
.vision-hero-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,5vw,88px);align-items:center;padding-block:86px 70px}
.vision-hero-inner>*{min-width:0}
.vision-hero .eyebrow{color:#a9cec8;font-size:.7rem;letter-spacing:.16em}
.vision-hero .eyebrow:after{display:none}
.vision-hero h1{color:#f3f5eb;font-size:clamp(3.3rem,5.9vw,6.6rem);font-weight:650;line-height:1.04;letter-spacing:-.065em;margin-bottom:25px;max-width:820px}
.vision-hero h1 em{color:var(--vision-mint);font-style:normal}
.vision-hero .lead{font-size:clamp(1rem,1.3vw,1.15rem);max-width:480px;color:#bbcfcf;line-height:1.7}
.vision-hero .button{background:var(--vision-mint);color:var(--vision-night);border-radius:100px;box-shadow:none;min-height:54px}
.vision-secondary{display:inline-flex;gap:20px;align-items:center;min-height:54px;color:#e6f3ec;font-weight:650;border-bottom:1px solid #486368;padding-inline:2px}
.vision-disciplines{font-size:.76rem;color:#a9cec8;margin-top:30px}
.vision-product{position:relative;padding-top:14px}
.vision-screen{margin:0;overflow:hidden;border-radius:15px;background:#eef5f0;border:1px solid #49646a;box-shadow:0 28px 80px #0004;transform:rotate(-2deg);transition:transform .4s ease}
.vision-screen:hover{transform:rotate(0)}
.vision-screen-bar{display:flex;align-items:center;gap:16px;justify-content:space-between;background:#dfe9e2;color:#243e42;padding:11px 14px;font-size:.67rem;line-height:1.3}
.vision-screen-dots{font-size:.48rem;letter-spacing:2px;color:#677f80;white-space:nowrap}
.vision-screen-bar>a{font-weight:750;text-decoration:underline;text-underline-offset:3px}
.vision-screen img{width:100%;height:auto;object-fit:cover}
.vision-screen figcaption{font-size:.64rem;padding:8px 14px;color:#536568}
.vision-path{position:relative;margin:34px 4px 0}
.vision-path>p{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#accac7}
.vision-path ol{display:grid;grid-template-columns:repeat(4,1fr);padding:0;margin:0;list-style:none;gap:10px;font-size:.72rem}
.vision-path li{display:flex;align-items:center;gap:10px;padding-block:8px}
.vision-path li span{color:var(--vision-mint);font-size:.63rem}
.vision-path svg{height:30px;width:100%;display:block;overflow:visible}
.vision-path path{stroke:#537776;stroke-width:1;fill:none}
.vision-path circle{fill:var(--vision-mint);animation:vision-travel 7s ease-in-out infinite}
.vision-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #36535b;padding-block:22px;color:#b2cac7;font-size:.7rem}
.vision-footer>span:last-child{font-size:.6rem;letter-spacing:.2em;white-space:nowrap}
.vision-b{background:var(--vision-paper);color:var(--vision-ink)}
.vision-b:before{background:radial-gradient(ellipse at 15% 40%,#bdeade55,transparent 50%)}
.vision-b .vision-hero-inner{display:block;padding-block:65px 32px}
.vision-b .vision-copy{max-width:1000px;margin-inline:auto;text-align:center}
.vision-b h1{max-width:none;font-size:clamp(3.7rem,8vw,8rem);color:var(--vision-ink)}
.vision-b h1 em{color:#287c72}
.vision-b .lead{margin-inline:auto;max-width:580px;color:var(--vision-muted)}
.vision-b .eyebrow,.vision-b .vision-disciplines{color:#486f6a}
.vision-b .actions{justify-content:center}
.vision-b .vision-secondary{color:var(--vision-ink)}
.vision-b .vision-product{display:grid;grid-template-columns:1.4fr .6fr;gap:45px;align-items:center;max-width:950px;margin:45px auto 0}
.vision-b .vision-screen{transform:none;box-shadow:0 18px 40px #0d353012}
.vision-b .vision-path{margin:0}.vision-b .vision-path>p{color:#416e68}.vision-b .vision-path ol{grid-template-columns:1fr}.vision-b .vision-path li{border-bottom:1px solid #b9ccc3;padding:14px 0;font-size:.85rem}.vision-b .vision-path li span{color:#287c72}
.vision-b .vision-path svg{display:none}.vision-b .vision-footer{border-color:#cad9d0;color:#526d67}
.vision-work{padding-block:80px}
.vision-work h2{font-size:clamp(2.3rem,4vw,4.2rem);color:var(--vision-ink)}
.vision-work h2 span{color:#347d74}
.vision-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.vision-work-grid .work-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.35fr 1fr;align-items:center;background:var(--vision-paper);border-color:#d5ded5}
.vision-work-grid .work-card:first-child .case-visual{border-radius:20px;overflow:hidden;margin:24px}
.vision-work-grid .work-card:first-child h3{font-size:clamp(1.5rem,2.7vw,2.6rem)}
.vision-work-grid .work-card{border-radius:22px;overflow:hidden;box-shadow:none}
.vision-work-grid .work-card-copy{padding:30px}
@keyframes vision-travel{0%,100%{transform:translateX(0)}50%{transform:translateX(560px)}}
@media(max-width:1000px){.vision-hero-inner{gap:32px;padding-block:65px}.vision-footer>span:last-child{display:none}}
@media(max-width:760px){.vision-hero-inner{grid-template-columns:1fr;padding-block:46px 35px;gap:35px}.vision-hero h1{font-size:clamp(2.65rem,10vw,4rem)}.vision-hero .lead{font-size:1rem}.vision-screen{transform:none}.vision-path{margin-top:20px}.vision-path ol{gap:4px;font-size:.63rem}.vision-path li{display:block}.vision-path li span{display:block;margin-bottom:5px}.vision-footer{padding-block:18px;font-size:.65rem}.vision-b .vision-product{display:block;margin-top:32px}.vision-b .vision-path{margin-top:24px}.vision-b .vision-path ol{grid-template-columns:repeat(4,1fr)}.vision-b .vision-path li{font-size:.63rem}.vision-work{padding-block:48px}.vision-work-grid{grid-template-columns:1fr}.vision-work-grid .work-card:first-child{display:block}.vision-work-grid .work-card:first-child .case-visual{margin:0;border-radius:0}.vision-work-grid .work-card-copy{padding:22px}}
@media(prefers-reduced-motion:reduce){.vision-path circle{animation:none}.vision-screen,.vision-screen:hover{transform:none;transition:none}}
:root{--ink:#102735;--navy:#0b202c;--navy-2:#173841;--teal:#82e8cf;--teal-dark:#287c72;--muted:#53656b;--line:#d9e3dd;--pale:#f1f7f2;--radius:18px}
body{background:#fff;color:var(--vision-ink)}
.button{border-radius:100px;box-shadow:none;background:var(--vision-mint);color:var(--vision-night);transition:background .2s,transform .2s,box-shadow .2s}
.button:hover{box-shadow:0 8px 20px #123b3014}
.button-outline{border-color:#aabdb6;background:#fff}
:focus-visible{outline:3px solid #287c72;outline-offset:5px}
.vision-hero :focus-visible{outline-color:#82e8cf}
.site-header{border-bottom-color:#d9e3dd}.site-header .button{border-radius:100px}
.menu-toggle{min-width:52px;min-height:44px}
.subhero h1{letter-spacing:-.06em;max-width:1050px}
.work-card,.service-card,.tool-card,.contact-form,.detail-grid article{border-color:#d9e3dd;border-radius:20px}
.work-filters button{min-height:44px}.work-filters button[aria-pressed="true"]{background:#173841;color:#fff}
.demo-shell{margin:60px 0 80px;padding:clamp(22px,4vw,48px);border:1px solid #d4dfd6;border-radius:26px;background:#f6f7f2;scroll-margin-top:110px}
.demo-heading{max-width:800px}.demo-heading h2{font-size:clamp(2rem,3.4vw,3.7rem)}
.demo-heading>.eyebrow{font-size:.65rem;letter-spacing:.12em}.demo-heading>.eyebrow:after{display:none}
.demo-disclosure{padding:13px 18px;border-left:3px solid #287c72;font-size:.78rem;color:#445e59;background:#eaf1e9;margin:24px 0 32px}
.demo-controls,.demo-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:24px}
.demo-controls label,.demo-fields label{display:block;min-width:0;color:#344f50;font-size:.8rem;font-weight:650}
.demo-controls select,.demo-fields input,.demo-fields textarea{display:block;background:#fff;color:#102735;border:1px solid #9fb6aa;padding:12px 14px;width:100%;min-height:48px;border-radius:10px;font:inherit;margin-top:8px}
.demo-fields textarea{min-height:100px;resize:vertical}.demo-fields .full{grid-column:1/-1}
.demo-supplier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.demo-supplier-grid article{padding:24px;background:white;border:1px solid #d5dfd5;border-radius:16px}.demo-supplier-grid h3{font-size:1.15rem}.demo-supplier-grid p{font-size:.8rem}
.demo-shortlist{display:flex;gap:10px;align-items:center;min-height:44px;cursor:pointer;font-size:.8rem}
.demo-shortlist input,.demo-approval input{width:20px;height:20px;accent-color:#287c72;flex:0 0 20px}
.demo-compare{margin-top:30px}.demo-compare h3{font-size:1.3rem}.demo-table-scroll{overflow-x:auto;border:1px solid #c7d7ce;border-radius:12px;background:#fff}
.demo-compare table{width:100%;border-collapse:collapse;font-size:.8rem}.demo-compare th,.demo-compare td{padding:14px 16px;text-align:left;white-space:nowrap;border-bottom:1px solid #d9e4dc}.demo-compare th{background:#e9f2eb}
.demo-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));list-style:none;padding:0;gap:10px;margin:0 0 35px}.demo-progress li{padding:14px 12px;border-top:2px solid #c7d6cd;font-size:.72rem;color:#53665c}.demo-progress li span{display:block;font-size:.62rem;margin-bottom:6px}.demo-progress li[aria-current]{border-color:#287c72;color:#123c32;background:#e8f2e8}
.demo-paper{max-width:560px;background:#fff;border:1px solid #d1dcd3;border-radius:12px;padding:32px;margin-bottom:24px;box-shadow:0 12px 25px #17382b08}.demo-paper>span{font-size:.62rem;letter-spacing:.18em;color:#53685e}.demo-paper h3{margin-top:25px}.demo-paper p{font-size:.84rem}.demo-paper>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #e1e9e2;font-size:.85rem}.demo-paper-note{color:#79600b;padding-top:12px}
.demo-stage h3{font-size:1.5rem}.demo-extracted,.demo-mapping{max-width:650px;background:#fff;border:1px solid #cadbd0;border-radius:12px;overflow:hidden}.demo-extracted>div,.demo-mapping>div,.demo-car-summary>div{display:flex;justify-content:space-between;gap:20px;padding:13px 18px;border-bottom:1px solid #e0e8e0;font-size:.85rem}.demo-mapping dt,.demo-mapping dd,.demo-car-summary dt,.demo-car-summary dd{margin:0;overflow-wrap:anywhere}.demo-mapping dd{font-family:ui-monospace,monospace}.demo-mapping>div{flex-wrap:wrap}.demo-alert{padding:15px;border-left:3px solid #9b6e05;background:#fff2ce;font-size:.83rem}
.demo-approval{display:flex;gap:12px;align-items:flex-start;margin:25px 0;min-height:44px;font-size:.85rem;font-weight:600}.demo-approval input{margin:0}
.demo-output{padding:24px;background:#122b32;color:#d8ece1;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:.74rem;line-height:1.7;max-height:400px;overflow:auto}
.demo-car-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.demo-car-grid .demo-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-car-summary{background:#fff;border:1px solid #cadbd0;border-radius:12px;overflow:hidden}.demo-car-summary>div{display:block}.demo-car-summary dt{font-weight:750;margin-bottom:5px}.demo-car-package{margin-top:30px}
.demo-end{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #d3dfd5;margin-top:32px;padding-top:24px;flex-wrap:wrap}.demo-reset{background:none;border:none;min-height:44px;padding:8px;font:inherit;font-size:.8rem;text-decoration:underline;cursor:pointer;color:#344f50}
.demo-status{min-height:25px;margin:16px 0 0;font-size:.85rem;color:#1e5842}.demo-status.error{color:#8a301e;font-weight:650}
.demo-jump{display:flex;gap:15px;flex-wrap:wrap}.demo-jump a{padding:12px 20px;border:1px solid #bdcfc3;border-radius:100px;font-weight:650;font-size:.85rem;min-height:44px}
.vision-demo-intro{margin-block:40px 80px}.vision-demo-intro .demo-shell{margin:0}
@media(max-width:760px){.demo-controls{grid-template-columns:1fr}.demo-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.demo-supplier-grid,.demo-car-grid{grid-template-columns:1fr}.demo-progress{gap:4px}.demo-progress li{padding:8px 4px;font-size:.6rem;overflow-wrap:anywhere}.demo-shell{border-radius:18px;margin:36px 0 48px}.demo-paper{padding:20px}.demo-paper>div{font-size:.73rem;gap:12px}.demo-end .button{width:100%;font-size:.8rem;padding-inline:18px}.demo-output{padding:18px}.demo-extracted>div{flex-wrap:wrap}.demo-jump{gap:8px}}
@media(max-width:370px){.demo-fields,.demo-car-grid .demo-fields{grid-template-columns:1fr}.vision-hero .actions{gap:12px}.vision-hero .button{padding-inline:22px;font-size:.85rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.button:hover{transform:none}}
