.cv{--green:#026b78;--green-deep:#014952;--green-ink:#06343a;--yellow:#ffdc00;--ink:#14181a;--ink-soft:#3a4145;--paper:#fff;--paper-2:#f6f8f8;--paper-3:#eef2f2;--accent:#026b78;--accent-deep:color-mix(in oklab,var(--accent),#000 24%);--accent-ink:color-mix(in oklab,var(--accent),#000 66%);--heading:color-mix(in oklab,var(--accent),#000 20%);--shadow-sm:0 2px 8px rgba(6,52,58,.06);--shadow-md:0 14px 40px -18px rgba(6,52,58,.28);--shadow-lg:0 40px 90px -40px rgba(6,52,58,.45);--ease:cubic-bezier(.22,.61,.36,1);--maxw:1280px;--gutter:clamp(20px,5vw,64px);--cv-blue:#06c;--cv-blue-deep:#0353a8;--cv-blue-soft:#eef4fc;--cv-navy:#0b2e57;--cv-ink:#16263c;--cv-steel:#858a8e;--cv-steel-2:#b6bbc0;--cv-steel-3:#e6eaee;--cv-line:#e3e7ec;--cv-paper-2:#f5f8fb;color:var(--ink)}.cv *,.cv :before,.cv :after{box-sizing:border-box}.cv img{max-width:100%;display:block}.cv a{color:inherit;text-decoration:none}.cv button{font:inherit;cursor:pointer}.cv .wrap{max-width:var(--maxw);padding-inline:var(--gutter);margin-left:auto;margin-right:auto}.cv .cvcrumb{letter-spacing:.1em;text-transform:uppercase;color:var(--cv-steel);flex-wrap:wrap;align-items:center;gap:9px;padding-top:26px;font-size:.74rem;font-weight:700;display:flex}.cv .cvcrumb a:hover{color:var(--cv-blue)}.cv .cvcrumb .here{color:var(--cv-ink)}.cv .cvtopcrumb{border-bottom:1px solid var(--cv-line);background:#fff}.cv .cvtopcrumb .cvcrumb{padding:13px 0}.cv .cvhero{background:var(--cv-navy);align-items:stretch;min-height:max(420px,min(50vw,580px));display:flex;position:relative;overflow:hidden}.cv .cvhero__bg{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.cv .cvhero__scrim{background:linear-gradient(90deg,rgba(11,46,87,.88) 0%,rgba(11,46,87,.6) 40%,rgba(11,46,87,.12) 72%,rgba(11,46,87,.34) 100%);position:absolute;top:0;bottom:0;left:0;right:0}.cv .cvhero__in{z-index:2;color:#fff;flex-direction:column;align-items:flex-start;width:100%;padding:0 0 max(38px,min(6vw,76px));display:flex;position:relative}.cv .cvhero__logo{width:auto;height:max(96px,min(9vw,132px));margin-bottom:max(20px,min(3vw,30px))}.cv .cvhero h1{letter-spacing:-.035em;max-width:21ch;font-size:max(2rem,min(3.8vw,3.3rem));font-weight:700;line-height:1.05}.cv .cvhero p{color:rgba(255,255,255,.9);max-width:52ch;margin-top:16px;font-size:max(1rem,min(1.25vw,1.16rem));line-height:1.55}.cv .cvhero__cta{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.cv .cvhero__crumb{margin-bottom:auto;padding-top:92px}.cv .cvhero__crumb .cvcrumb{color:rgba(255,255,255,.72);padding-top:0}.cv .cvhero__crumb .cvcrumb a:hover,.cv .cvhero__crumb .cvcrumb .here{color:#fff}@media (min-width:768px){.cv .cvhero__crumb{padding-top:112px}}@media (min-width:1024px){.cv .cvhero__crumb{padding-top:132px}}.cv .cvbtn{cursor:pointer;white-space:nowrap;transition:transform .15s var(--ease),background .2s,filter .2s;border:0;border-radius:999px;align-items:center;gap:9px;padding:13px 24px;font-size:.92rem;font-weight:700;display:inline-flex}.cv .cvbtn--y{background:var(--yellow);color:var(--cv-ink)}.cv .cvbtn--y:hover{background:#f2cf00;transform:translateY(-1px)}.cv .cvbtn--ghost{color:#fff;background:0 0;border:1px solid rgba(255,255,255,.55)}.cv .cvbtn--ghost:hover{background:rgba(255,255,255,.12)}.cv .cvbtn--blue{background:var(--cv-blue);color:#fff}.cv .cvbtn--blue:hover{background:var(--cv-blue-deep);transform:translateY(-1px)}.cv .cvbtn--outline{color:var(--cv-blue);border:1px solid var(--cv-blue);background:#fff}.cv .cvbtn--outline:hover{background:var(--cv-blue-soft);transform:translateY(-1px)}.cv .cvcertbar{border-top:3px solid var(--yellow);border-bottom:1px solid var(--cv-line);background:#fff}.cv .cvcertbar__in{grid-template-columns:repeat(4,1fr);display:grid}.cv .cvcertbar .cell{align-items:center;gap:13px;padding:22px 4px;display:flex}.cv .cvcertbar .cell+.cell{border-left:1px solid var(--cv-line);padding-left:max(16px,min(2vw,30px))}.cv .cvcertbar svg{width:28px;height:28px;color:var(--cv-blue);flex:none}.cv .cvcertbar .v{color:var(--cv-ink);letter-spacing:-.01em;font-size:1rem;font-weight:800;line-height:1.12}.cv .cvcertbar .k{color:var(--cv-steel);margin-top:2px;font-size:.78rem;font-weight:600}@media (max-width:860px){.cv .cvcertbar__in{grid-template-columns:1fr 1fr}.cv .cvcertbar .cell:nth-child(3){border-left:0;padding-left:4px}.cv .cvcertbar .cell{border-top:1px solid var(--cv-line)}.cv .cvcertbar .cell:nth-child(-n+2){border-top:0}}@media (max-width:520px){.cv .cvcertbar__in{grid-template-columns:1fr}.cv .cvcertbar .cell+.cell{border-left:0;padding-left:4px}}.cv .cvsec{padding:max(48px,min(6vw,84px)) 0}.cv .cvsec--alt{background:var(--cv-paper-2);border-block:1px solid var(--cv-line)}.cv .cvsec__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:max(26px,min(3.5vw,42px));display:flex}.cv .cvsec__head .lhs{max-width:58ch}.cv .cveyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--cv-steel);font-size:.74rem;font-weight:700}.cv .cveyebrow b{color:var(--cv-blue)}.cv .cvsec__head h2{letter-spacing:-.03em;color:var(--cv-ink);margin-top:11px;font-size:max(1.7rem,min(3vw,2.4rem));font-weight:700;line-height:1.06}.cv .cvsec__head h2 .b{color:var(--cv-blue)}.cv .cvsec__head h2 .y{box-shadow:inset 0 -.12em 0 var(--yellow)}.cv .cvsec__head p{color:var(--ink-soft);margin-top:13px;font-size:1.02rem;line-height:1.55}.cv .cvviewall{color:var(--cv-ink);white-space:nowrap;align-items:center;gap:9px;font-size:.94rem;font-weight:700;display:inline-flex}.cv .cvviewall .arrow{transition:transform .2s var(--ease)}.cv .cvviewall:hover{color:var(--cv-blue)}.cv .cvviewall:hover .arrow{transform:translate(5px)}.cv .cvfilters{flex-wrap:wrap;gap:9px;margin-bottom:max(20px,min(2.6vw,30px));display:flex}.cv .cvchip{cursor:pointer;white-space:nowrap;border:1px solid var(--cv-line);color:var(--ink-soft);transition:all .16s var(--ease);background:#fff;border-radius:999px;padding:9px 17px;font-size:.85rem;font-weight:700}.cv .cvchip:hover{border-color:var(--cv-blue);color:var(--cv-blue)}.cv .cvchip.is-on{background:var(--cv-blue);border-color:var(--cv-blue);color:#fff}.cv .cvprods{grid-template-columns:repeat(3,1fr);gap:max(16px,min(1.8vw,22px));display:grid}.cv .cvpcard{cursor:pointer;border:1px solid var(--cv-line);transition:box-shadow .25s var(--ease),transform .2s var(--ease),border-color .2s;background:#fff;border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.cv .cvpcard:hover{box-shadow:var(--shadow-md);border-color:transparent;transform:translateY(-4px)}.cv .cvpcard__art{aspect-ratio:16/10;background:var(--cv-steel-3);position:relative;overflow:hidden}.cv .cvpcard__photo{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}.cv .cvpcard:hover .cvpcard__photo{transform:scale(1.05)}.cv .cvpcard__cat{z-index:2;letter-spacing:.08em;text-transform:uppercase;color:var(--cv-blue);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:rgba(255,255,255,.94);border-radius:6px;padding:5px 10px;font-size:.64rem;font-weight:700;position:absolute;top:12px;left:12px}.cv .cvpcard__badge{z-index:2;letter-spacing:.04em;background:var(--yellow);color:var(--cv-ink);border-radius:6px;padding:5px 9px;font-size:.62rem;font-weight:800;position:absolute;top:12px;right:12px}.cv .cvpcard__badge.is-new{background:var(--cv-blue);color:#fff}.cv .cvpcard__info{border-top:1px solid var(--cv-line);flex-direction:column;flex:1;padding:18px;display:flex}.cv .cvpcard h3{color:var(--cv-ink);letter-spacing:-.015em;font-size:1.08rem;font-weight:700;line-height:1.2;transition:color .2s}.cv .cvpcard:hover h3{color:var(--cv-blue)}.cv .cvpcard p{color:var(--ink-soft);margin-top:7px;font-size:.89rem;line-height:1.5}.cv .cvpcard__feats{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.cv .cvpcard__feats span{letter-spacing:.03em;color:var(--cv-steel);white-space:nowrap;border:1px solid var(--cv-line);border-radius:5px;padding:3px 8px;font-size:.68rem;font-weight:700}.cv .cvpcard__foot{justify-content:space-between;align-items:center;margin-top:auto;padding-top:15px;display:flex}.cv .cvpcard__foot .vd{color:var(--cv-ink);white-space:nowrap;font-size:.85rem;font-weight:700}.cv .cvpcard__foot .circ{background:var(--cv-blue);color:#fff;width:33px;height:33px;transition:transform .2s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.cv .cvpcard:hover .cvpcard__foot .circ{transform:translate(3px)}.cv .cvfeat{grid-template-columns:1.25fr .9fr;align-items:center;gap:max(24px,min(3.5vw,56px));margin-bottom:max(26px,min(3.4vw,44px));display:grid}.cv .cvfeat__media{aspect-ratio:16/10;background:var(--cv-steel-3);box-shadow:var(--shadow-md);border-radius:18px;display:block;position:relative;overflow:hidden}.cv .cvfeat__media img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease)}.cv .cvfeat:hover .cvfeat__media img{transform:scale(1.04)}.cv .cvfeat__media .cvproj__tag{z-index:2}.cv .cvfeat__body h3{letter-spacing:-.03em;color:var(--cv-ink);margin-top:11px;font-size:max(1.6rem,min(2.6vw,2.2rem));font-weight:700}.cv .cvfeat__body .loc{color:var(--cv-steel);margin-top:7px;font-size:1rem}.cv .cvfeat__body .loc b{color:var(--cv-ink)}.cv .cvfeat__body p{color:var(--ink-soft);max-width:46ch;margin-top:15px;font-size:1.04rem;line-height:1.6}.cv .cvfeat__award{color:var(--cv-ink);background:var(--yellow);border-radius:999px;align-items:center;gap:9px;margin-top:16px;padding:7px 14px;font-size:.82rem;font-weight:700;display:inline-flex}.cv .cvfeat__body .cvviewall{color:var(--cv-blue);margin-top:20px}.cv .cvprojects{grid-template-columns:repeat(3,1fr);gap:max(18px,min(2.2vw,28px));display:grid}.cv .cvproj{cursor:pointer}.cv .cvproj__media{aspect-ratio:4/3;background:var(--cv-steel-3);border-radius:16px;position:relative;overflow:hidden}.cv .cvproj__media img{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease)}.cv .cvproj:hover .cvproj__media img{transform:scale(1.05)}.cv .cvproj__tag{z-index:2;letter-spacing:.07em;text-transform:uppercase;background:var(--cv-blue);color:#fff;border-radius:6px;padding:5px 11px;font-size:.66rem;font-weight:700;position:absolute;top:13px;left:13px}.cv .cvproj h3{color:var(--cv-ink);letter-spacing:-.02em;margin-top:15px;font-size:1.18rem;font-weight:700;transition:color .2s}.cv .cvproj:hover h3{color:var(--cv-blue)}.cv .cvproj .loc{color:var(--cv-steel);margin-top:5px;font-size:.92rem;font-weight:600}.cv .cvproj .loc b{color:var(--cv-ink);font-weight:700}.cv .cvfab{background:var(--cv-blue-soft);color:var(--cv-ink);border-top:1px solid var(--cv-line)}.cv .cvfab__in{grid-template-columns:1.2fr .8fr;align-items:center;gap:max(28px,min(5vw,68px));padding:max(48px,min(6vw,82px)) 0;display:grid}.cv .cvfab__eyebrow{color:var(--cv-blue);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}.cv .cvfab h2{letter-spacing:-.03em;max-width:18ch;color:var(--cv-ink);margin-top:13px;font-size:max(1.8rem,min(3.2vw,2.6rem));font-weight:700;line-height:1.06}.cv .cvfab h2 .b{color:var(--cv-blue)}.cv .cvfab p{max-width:46ch;color:var(--ink-soft);margin-top:15px;font-size:1.04rem;line-height:1.55}.cv .cvfab__cta{flex-wrap:wrap;gap:13px;margin-top:26px;display:flex}.cv .cvfab__card{border:1px solid var(--cv-line);text-align:center;box-shadow:var(--shadow-md);background:#fff;border-radius:18px;padding:max(28px,min(3vw,40px))}.cv .cvfab__card img{width:auto;height:58px;margin:0 auto}.cv .cvfab__card .lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--cv-steel);margin-top:20px;font-size:.74rem;font-weight:700}.cv .cvfab__card .num{color:var(--cv-blue);letter-spacing:-.02em;margin-top:4px;font-size:1.5rem;font-weight:800}@media (max-width:1000px){.cv .cvprods,.cv .cvprojects{grid-template-columns:repeat(2,1fr)}.cv .cvfeat,.cv .cvfab__in{grid-template-columns:1fr}.cv .cvfab__card{max-width:340px}}@media (max-width:600px){.cv .cvprods,.cv .cvprojects{grid-template-columns:1fr}}.cv .cvd-wrap{padding:8px 0 max(48px,min(6vw,84px))}.cv .cvd-back{color:var(--cv-steel);align-items:center;gap:8px;margin-top:18px;font-size:.9rem;font-weight:700;display:inline-flex}.cv .cvd-back:hover{color:var(--cv-blue)}.cv .cvd-hero{grid-template-columns:1.05fr .95fr;align-items:start;gap:max(28px,min(4vw,56px));margin-top:max(20px,min(3vw,34px));display:grid}.cv .cvd-gallery__main{aspect-ratio:4/3;background:var(--cv-steel-3);box-shadow:var(--shadow-md);border-radius:18px;position:relative;overflow:hidden}.cv .cvd-gallery__main img{object-fit:cover;width:100%;height:100%}.cv .cvd-gallery__badge{letter-spacing:.05em;background:var(--yellow);color:var(--cv-ink);border-radius:6px;padding:6px 11px;font-size:.66rem;font-weight:800;position:absolute;top:14px;left:14px}.cv .cvd-thumbs{gap:12px;margin-top:14px;display:flex}.cv .cvd-thumb{aspect-ratio:4/3;background:var(--cv-steel-3);cursor:pointer;transition:border-color .18s var(--ease);border:2px solid transparent;border-radius:11px;flex:1;padding:0;overflow:hidden}.cv .cvd-thumb img{object-fit:cover;width:100%;height:100%}.cv .cvd-thumb.is-on{border-color:var(--cv-blue)}.cv .cvd-info{padding-top:4px}.cv .cvd-info .cat{letter-spacing:.16em;text-transform:uppercase;color:var(--cv-blue);font-size:.74rem;font-weight:700}.cv .cvd-info h1{letter-spacing:-.035em;color:var(--cv-ink);margin-top:10px;font-size:max(1.9rem,min(3.2vw,2.8rem));font-weight:700;line-height:1.07}.cv .cvd-info .lede{color:var(--ink-soft);max-width:46ch;margin-top:16px;font-size:1.1rem;line-height:1.6}.cv .cvd-chips{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.cv .cvd-chips span{letter-spacing:.02em;color:var(--cv-ink);background:var(--cv-paper-2);border:1px solid var(--cv-line);border-radius:999px;padding:7px 13px;font-size:.74rem;font-weight:700}.cv .cvd-cta{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.cv .cvd-section{border-top:1px solid var(--cv-line);padding:max(40px,min(5vw,68px)) 0}.cv .cvd-section h2{letter-spacing:-.03em;color:var(--cv-ink);font-size:max(1.4rem,min(2.4vw,1.9rem));font-weight:700}.cv .cvd-section h2 .b{color:var(--cv-blue)}.cv .cvd-section h2 .y{box-shadow:inset 0 -.12em 0 var(--yellow)}.cv .cvd-cols{grid-template-columns:1.1fr .9fr;align-items:start;gap:max(28px,min(4vw,60px));margin-top:24px;display:grid}.cv .cvd-prose p{color:var(--ink-soft);font-size:1.06rem;line-height:1.65}.cv .cvd-prose p+p{margin-top:14px}.cv .cvd-specs{border:1px solid var(--cv-line);background:#fff;border-radius:16px;overflow:hidden}.cv .cvd-specs .row{grid-template-columns:.85fr 1.15fr;gap:14px;padding:15px 18px;display:grid}.cv .cvd-specs .row+.row{border-top:1px solid var(--cv-line)}.cv .cvd-specs .k{letter-spacing:.1em;text-transform:uppercase;color:var(--cv-steel);align-self:center;font-size:.74rem;font-weight:700}.cv .cvd-specs .v{color:var(--cv-ink);font-size:.96rem;font-weight:600;line-height:1.4}.cv .cvd-tests{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px;display:grid}.cv .cvd-test{background:var(--cv-paper-2);border:1px solid var(--cv-line);border-radius:14px;padding:20px 18px}.cv .cvd-test svg{width:30px;height:30px;color:var(--cv-blue)}.cv .cvd-test .t{color:var(--cv-ink);margin-top:12px;font-size:.98rem;font-weight:700}.cv .cvd-test .d{color:var(--ink-soft);margin-top:5px;font-size:.85rem;line-height:1.45}.cv .cvd-related{background:var(--cv-paper-2);border-top:1px solid var(--cv-line);padding:max(44px,min(5vw,72px)) 0}.cv .cvd-related .cvsec__head{margin-bottom:max(22px,min(3vw,34px))}.cv .cvd-pmeta{flex-wrap:wrap;gap:10px 26px;margin-top:18px;display:flex}.cv .cvd-pmeta .item .k{letter-spacing:.12em;text-transform:uppercase;color:var(--cv-steel);font-size:.72rem;font-weight:700}.cv .cvd-pmeta .item .v{color:var(--cv-ink);margin-top:3px;font-size:1.05rem;font-weight:700}.cv .cvd-award{color:var(--cv-ink);background:var(--yellow);border-radius:999px;align-items:center;gap:9px;margin-top:18px;padding:8px 15px;font-size:.84rem;font-weight:700;display:inline-flex}.cv .cvd-systems{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.cv .cvd-systems a{color:var(--cv-ink);border:1px solid var(--cv-line);transition:all .16s var(--ease);background:#fff;border-radius:999px;align-items:center;gap:8px;padding:9px 15px;font-size:.9rem;font-weight:700;display:inline-flex}.cv .cvd-systems a:hover{border-color:var(--cv-blue);transform:translateY(-1px)}.cv .cvd-systems a .arrow{color:var(--cv-blue)}@media (max-width:1000px){.cv .cvd-hero,.cv .cvd-cols{grid-template-columns:1fr}.cv .cvd-tests{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.cv .cvd-tests{grid-template-columns:1fr}.cv .cvd-thumbs{flex-wrap:wrap}.cv .cvd-thumb{flex:40%}}
