.kv{--yellow:#ffdc00;--ink:#14181a;--ink-soft:#3a4145;--paper:#fff;--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);--kv-teal:#0cc;--kv-teal-deep:#008b91;--kv-teal-mid:#00a8ac;--kv-teal-soft:#e7f9f9;--kv-navy:#0c373c;--kv-ink:#143438;--kv-steel:#858a8e;--kv-steel-2:#b6bdbd;--kv-steel-3:#e6eeee;--kv-line:#e1ebeb;--kv-paper-2:#f4fafa;color:var(--ink)}.kv *,.kv :before,.kv :after{box-sizing:border-box}.kv img{max-width:100%;display:block}.kv a{color:inherit;text-decoration:none}.kv button{font:inherit;cursor:pointer}.kv .wrap{max-width:var(--maxw);padding-inline:var(--gutter);margin-left:auto;margin-right:auto}.kv .kvcrumb{letter-spacing:.1em;text-transform:uppercase;color:var(--kv-steel);flex-wrap:wrap;align-items:center;gap:9px;padding-top:26px;font-size:.74rem;font-weight:700;display:flex}.kv .kvcrumb a:hover{color:var(--kv-teal-deep)}.kv .kvcrumb .here{color:var(--kv-ink)}.kv .kvtopcrumb{border-bottom:1px solid var(--kv-line);background:#fff}.kv .kvtopcrumb .kvcrumb{padding:13px 0}.kv .kvhero{background:var(--kv-navy);align-items:stretch;min-height:max(420px,min(50vw,580px));display:flex;position:relative;overflow:hidden}.kv .kvhero__bg{object-fit:cover;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.kv .kvhero__scrim{background:linear-gradient(90deg,rgba(12,55,60,.9) 0%,rgba(12,55,60,.62) 40%,rgba(12,55,60,.12) 72%,rgba(12,55,60,.34) 100%);position:absolute;top:0;bottom:0;left:0;right:0}.kv .kvhero__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}.kv .kvhero__logo{width:auto;height:max(96px,min(9vw,132px));margin-bottom:max(20px,min(3vw,30px))}.kv .kvhero h1{letter-spacing:-.035em;max-width:21ch;font-size:max(2rem,min(3.8vw,3.3rem));font-weight:700;line-height:1.05}.kv .kvhero 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}.kv .kvhero__cta{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.kv .kvhero__crumb{margin-bottom:auto;padding-top:92px}.kv .kvhero__crumb .kvcrumb{color:rgba(255,255,255,.72);padding-top:0}.kv .kvhero__crumb .kvcrumb a:hover,.kv .kvhero__crumb .kvcrumb .here{color:#fff}@media (min-width:768px){.kv .kvhero__crumb{padding-top:112px}}@media (min-width:1024px){.kv .kvhero__crumb{padding-top:132px}}.kv .kvbtn{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}.kv .kvbtn--y{background:var(--yellow);color:var(--kv-ink)}.kv .kvbtn--y:hover{background:#f2cf00;transform:translateY(-1px)}.kv .kvbtn--ghost{color:#fff;background:0 0;border:1px solid rgba(255,255,255,.55)}.kv .kvbtn--ghost:hover{background:rgba(255,255,255,.12)}.kv .kvbtn--teal{background:var(--kv-teal-deep);color:#fff}.kv .kvbtn--teal:hover{background:var(--kv-teal-mid);transform:translateY(-1px)}.kv .kvbtn--outline{color:var(--kv-teal-deep);border:1px solid var(--kv-teal-deep);background:#fff}.kv .kvbtn--outline:hover{background:var(--kv-teal-soft);transform:translateY(-1px)}.kv .kvcertbar{border-top:3px solid var(--yellow);border-bottom:1px solid var(--kv-line);background:#fff}.kv .kvcertbar__in{grid-template-columns:repeat(4,1fr);display:grid}.kv .kvcertbar .cell{align-items:center;gap:13px;padding:22px 4px;display:flex}.kv .kvcertbar .cell+.cell{border-left:1px solid var(--kv-line);padding-left:max(16px,min(2vw,30px))}.kv .kvcertbar svg{width:28px;height:28px;color:var(--kv-teal-deep);flex:none}.kv .kvcertbar .v{color:var(--kv-ink);letter-spacing:-.01em;font-size:1rem;font-weight:800;line-height:1.12}.kv .kvcertbar .k{color:var(--kv-steel);margin-top:2px;font-size:.78rem;font-weight:600}@media (max-width:860px){.kv .kvcertbar__in{grid-template-columns:1fr 1fr}.kv .kvcertbar .cell:nth-child(3){border-left:0;padding-left:4px}.kv .kvcertbar .cell{border-top:1px solid var(--kv-line)}.kv .kvcertbar .cell:nth-child(-n+2){border-top:0}}@media (max-width:520px){.kv .kvcertbar__in{grid-template-columns:1fr}.kv .kvcertbar .cell+.cell{border-left:0;padding-left:4px}}.kv .kvsec{padding:max(48px,min(6vw,84px)) 0}.kv .kvsec--alt{background:var(--kv-paper-2);border-block:1px solid var(--kv-line)}.kv .kvsec__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:max(26px,min(3.5vw,42px));display:flex}.kv .kvsec__head .lhs{max-width:58ch}.kv .kveyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--kv-steel);font-size:.74rem;font-weight:700}.kv .kveyebrow b{color:var(--kv-teal-deep)}.kv .kvsec__head h2{letter-spacing:-.03em;color:var(--kv-ink);margin-top:11px;font-size:max(1.7rem,min(3vw,2.4rem));font-weight:700;line-height:1.06}.kv .kvsec__head h2 .b{color:var(--kv-teal-deep)}.kv .kvsec__head h2 .y{box-shadow:inset 0 -.12em 0 var(--yellow)}.kv .kvsec__head p{color:var(--ink-soft);margin-top:13px;font-size:1.02rem;line-height:1.55}.kv .kvviewall{color:var(--kv-ink);white-space:nowrap;align-items:center;gap:9px;font-size:.94rem;font-weight:700;display:inline-flex}.kv .kvviewall .arrow{transition:transform .2s var(--ease)}.kv .kvviewall:hover{color:var(--kv-teal-deep)}.kv .kvviewall:hover .arrow{transform:translate(5px)}.kv .kvfilters{flex-wrap:wrap;gap:9px;margin-bottom:max(20px,min(2.6vw,30px));display:flex}.kv .kvchip{cursor:pointer;white-space:nowrap;border:1px solid var(--kv-line);color:var(--ink-soft);transition:all .16s var(--ease);background:#fff;border-radius:999px;padding:9px 17px;font-size:.85rem;font-weight:700}.kv .kvchip:hover{border-color:var(--kv-teal-deep);color:var(--kv-teal-deep)}.kv .kvchip.is-on{background:var(--kv-teal-deep);border-color:var(--kv-teal-deep);color:#fff}.kv .kvprods{grid-template-columns:repeat(3,1fr);gap:max(16px,min(1.8vw,22px));display:grid}.kv .kvpcard{cursor:pointer;border:1px solid var(--kv-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}.kv .kvpcard:hover{box-shadow:var(--shadow-md);border-color:transparent;transform:translateY(-4px)}.kv .kvpcard__art{aspect-ratio:16/10;background:var(--kv-steel-3);position:relative;overflow:hidden}.kv .kvpcard__photo{object-fit:cover;width:100%;height:100%;transition:transform .6s var(--ease)}.kv .kvpcard:hover .kvpcard__photo{transform:scale(1.05)}.kv .kvpcard__cat{z-index:2;letter-spacing:.08em;text-transform:uppercase;color:var(--kv-teal-deep);-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}.kv .kvpcard__badge{z-index:2;letter-spacing:.04em;background:var(--yellow);color:var(--kv-ink);border-radius:6px;padding:5px 9px;font-size:.62rem;font-weight:800;position:absolute;top:12px;right:12px}.kv .kvpcard__badge.is-new{background:var(--kv-teal);color:var(--kv-ink)}.kv .kvpcard__info{border-top:1px solid var(--kv-line);flex-direction:column;flex:1;padding:18px;display:flex}.kv .kvpcard h3{color:var(--kv-ink);letter-spacing:-.015em;font-size:1.08rem;font-weight:700;line-height:1.2;transition:color .2s}.kv .kvpcard:hover h3{color:var(--kv-teal-deep)}.kv .kvpcard p{color:var(--ink-soft);margin-top:7px;font-size:.89rem;line-height:1.5}.kv .kvpcard__feats{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.kv .kvpcard__feats span{letter-spacing:.03em;color:var(--kv-steel);white-space:nowrap;border:1px solid var(--kv-line);border-radius:5px;padding:3px 8px;font-size:.68rem;font-weight:700}.kv .kvpcard__foot{justify-content:space-between;align-items:center;margin-top:auto;padding-top:15px;display:flex}.kv .kvpcard__foot .vd{color:var(--kv-ink);white-space:nowrap;font-size:.85rem;font-weight:700}.kv .kvpcard__foot .circ{background:var(--kv-teal-deep);color:#fff;width:33px;height:33px;transition:transform .2s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.kv .kvpcard:hover .kvpcard__foot .circ{transform:translate(3px)}.kv .kvfeat{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}.kv .kvfeat__media{aspect-ratio:16/10;background:var(--kv-steel-3);box-shadow:var(--shadow-md);border-radius:18px;display:block;position:relative;overflow:hidden}.kv .kvfeat__media img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease)}.kv .kvfeat:hover .kvfeat__media img{transform:scale(1.04)}.kv .kvfeat__media .kvproj__tag{z-index:2}.kv .kvfeat__body h3{letter-spacing:-.03em;color:var(--kv-ink);margin-top:11px;font-size:max(1.6rem,min(2.6vw,2.2rem));font-weight:700}.kv .kvfeat__body .loc{color:var(--kv-steel);margin-top:7px;font-size:1rem}.kv .kvfeat__body .loc b{color:var(--kv-ink)}.kv .kvfeat__body p{color:var(--ink-soft);max-width:46ch;margin-top:15px;font-size:1.04rem;line-height:1.6}.kv .kvfeat__award{color:var(--kv-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}.kv .kvfeat__body .kvviewall{color:var(--kv-teal-deep);margin-top:20px}.kv .kvprojects{grid-template-columns:repeat(3,1fr);gap:max(18px,min(2.2vw,28px));display:grid}.kv .kvproj{cursor:pointer}.kv .kvproj__media{aspect-ratio:4/3;background:var(--kv-steel-3);border-radius:16px;position:relative;overflow:hidden}.kv .kvproj__media img{object-fit:cover;width:100%;height:100%;transition:transform .7s var(--ease)}.kv .kvproj:hover .kvproj__media img{transform:scale(1.05)}.kv .kvproj__tag{z-index:2;letter-spacing:.07em;text-transform:uppercase;background:var(--kv-teal-deep);color:#fff;border-radius:6px;padding:5px 11px;font-size:.66rem;font-weight:700;position:absolute;top:13px;left:13px}.kv .kvproj h3{color:var(--kv-ink);letter-spacing:-.02em;margin-top:15px;font-size:1.18rem;font-weight:700;transition:color .2s}.kv .kvproj:hover h3{color:var(--kv-teal-deep)}.kv .kvproj .loc{color:var(--kv-steel);margin-top:5px;font-size:.92rem;font-weight:600}.kv .kvproj .loc b{color:var(--kv-ink);font-weight:700}.kv .kvfab{background:var(--kv-teal-soft);color:var(--kv-ink);border-top:1px solid var(--kv-line)}.kv .kvfab__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}.kv .kvfab__eyebrow{color:var(--kv-teal-deep);letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;font-weight:700}.kv .kvfab h2{letter-spacing:-.03em;max-width:18ch;color:var(--kv-ink);margin-top:13px;font-size:max(1.8rem,min(3.2vw,2.6rem));font-weight:700;line-height:1.06}.kv .kvfab h2 .b{color:var(--kv-teal-deep)}.kv .kvfab p{max-width:46ch;color:var(--ink-soft);margin-top:15px;font-size:1.04rem;line-height:1.55}.kv .kvfab__cta{flex-wrap:wrap;gap:13px;margin-top:26px;display:flex}.kv .kvfab__card{border:1px solid var(--kv-line);text-align:center;box-shadow:var(--shadow-md);background:#fff;border-radius:18px;padding:max(28px,min(3vw,40px))}.kv .kvfab__card img{width:auto;height:74px;margin:0 auto}.kv .kvfab__card .lbl{letter-spacing:.12em;text-transform:uppercase;color:var(--kv-steel);margin-top:20px;font-size:.74rem;font-weight:700}.kv .kvfab__card .num{color:var(--kv-teal-deep);letter-spacing:-.02em;margin-top:4px;font-size:1.5rem;font-weight:800}@media (max-width:1000px){.kv .kvprods,.kv .kvprojects{grid-template-columns:repeat(2,1fr)}.kv .kvfeat,.kv .kvfab__in{grid-template-columns:1fr}.kv .kvfab__card{max-width:340px}}@media (max-width:600px){.kv .kvprods,.kv .kvprojects{grid-template-columns:1fr}}.kv .kvd-wrap{padding:8px 0 max(48px,min(6vw,84px))}.kv .kvd-back{color:var(--kv-steel);align-items:center;gap:8px;margin-top:18px;font-size:.9rem;font-weight:700;display:inline-flex}.kv .kvd-back:hover{color:var(--kv-teal-deep)}.kv .kvd-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}.kv .kvd-gallery__main{aspect-ratio:4/3;background:var(--kv-steel-3);box-shadow:var(--shadow-md);border-radius:18px;position:relative;overflow:hidden}.kv .kvd-gallery__main img{object-fit:cover;width:100%;height:100%}.kv .kvd-gallery__badge{letter-spacing:.05em;background:var(--yellow);color:var(--kv-ink);border-radius:6px;padding:6px 11px;font-size:.66rem;font-weight:800;position:absolute;top:14px;left:14px}.kv .kvd-thumbs{gap:12px;margin-top:14px;display:flex}.kv .kvd-thumb{aspect-ratio:4/3;background:var(--kv-steel-3);cursor:pointer;transition:border-color .18s var(--ease);border:2px solid transparent;border-radius:11px;flex:1;padding:0;overflow:hidden}.kv .kvd-thumb img{object-fit:cover;width:100%;height:100%}.kv .kvd-thumb.is-on{border-color:var(--kv-teal-deep)}.kv .kvd-info{padding-top:4px}.kv .kvd-info .cat{letter-spacing:.16em;text-transform:uppercase;color:var(--kv-teal-deep);font-size:.74rem;font-weight:700}.kv .kvd-info h1{letter-spacing:-.035em;color:var(--kv-ink);margin-top:10px;font-size:max(1.9rem,min(3.2vw,2.8rem));font-weight:700;line-height:1.07}.kv .kvd-info .lede{color:var(--ink-soft);max-width:46ch;margin-top:16px;font-size:1.1rem;line-height:1.6}.kv .kvd-chips{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.kv .kvd-chips span{letter-spacing:.02em;color:var(--kv-ink);background:var(--kv-paper-2);border:1px solid var(--kv-line);border-radius:999px;padding:7px 13px;font-size:.74rem;font-weight:700}.kv .kvd-cta{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.kv .kvd-section{border-top:1px solid var(--kv-line);padding:max(40px,min(5vw,68px)) 0}.kv .kvd-section h2{letter-spacing:-.03em;color:var(--kv-ink);font-size:max(1.4rem,min(2.4vw,1.9rem));font-weight:700}.kv .kvd-section h2 .b{color:var(--kv-teal-deep)}.kv .kvd-section h2 .y{box-shadow:inset 0 -.12em 0 var(--yellow)}.kv .kvd-cols{grid-template-columns:1.1fr .9fr;align-items:start;gap:max(28px,min(4vw,60px));margin-top:24px;display:grid}.kv .kvd-prose p{color:var(--ink-soft);font-size:1.06rem;line-height:1.65}.kv .kvd-prose p+p{margin-top:14px}.kv .kvd-specs{border:1px solid var(--kv-line);background:#fff;border-radius:16px;overflow:hidden}.kv .kvd-specs .row{grid-template-columns:.85fr 1.15fr;gap:14px;padding:15px 18px;display:grid}.kv .kvd-specs .row+.row{border-top:1px solid var(--kv-line)}.kv .kvd-specs .k{letter-spacing:.1em;text-transform:uppercase;color:var(--kv-steel);align-self:center;font-size:.74rem;font-weight:700}.kv .kvd-specs .v{color:var(--kv-ink);font-size:.96rem;font-weight:600;line-height:1.4}.kv .kvd-tests{grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px;display:grid}.kv .kvd-test{background:var(--kv-paper-2);border:1px solid var(--kv-line);border-radius:14px;padding:20px 18px}.kv .kvd-test svg{width:30px;height:30px;color:var(--kv-teal-deep)}.kv .kvd-test .t{color:var(--kv-ink);margin-top:12px;font-size:.98rem;font-weight:700}.kv .kvd-test .d{color:var(--ink-soft);margin-top:5px;font-size:.85rem;line-height:1.45}.kv .kvd-related{background:var(--kv-paper-2);border-top:1px solid var(--kv-line);padding:max(44px,min(5vw,72px)) 0}.kv .kvd-related .kvsec__head{margin-bottom:max(22px,min(3vw,34px))}.kv .kvd-pmeta{flex-wrap:wrap;gap:10px 26px;margin-top:18px;display:flex}.kv .kvd-pmeta .item .k{letter-spacing:.12em;text-transform:uppercase;color:var(--kv-steel);font-size:.72rem;font-weight:700}.kv .kvd-pmeta .item .v{color:var(--kv-ink);margin-top:3px;font-size:1.05rem;font-weight:700}.kv .kvd-award{color:var(--kv-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}.kv .kvd-systems{flex-wrap:wrap;gap:10px;margin-top:8px;display:flex}.kv .kvd-systems a{color:var(--kv-ink);border:1px solid var(--kv-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}.kv .kvd-systems a:hover{border-color:var(--kv-teal-deep);transform:translateY(-1px)}.kv .kvd-systems a .arrow{color:var(--kv-teal-deep)}@media (max-width:1000px){.kv .kvd-hero,.kv .kvd-cols{grid-template-columns:1fr}.kv .kvd-tests{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.kv .kvd-tests{grid-template-columns:1fr}.kv .kvd-thumbs{flex-wrap:wrap}.kv .kvd-thumb{flex:40%}}
