/* Kepler — light pixel pages (header-over-hero, hero, light sections) */
body.khp{background:#F7F8FB!important;color:#0A1020}
html[data-lang="en"] [lang="sv"],html:not([data-lang="en"]) [lang="en"]{display:none!important}
.khp .ks a:not([class]),.khp .kh a:not([class]){color:#2563EB}.khp .ks a:not([class]):hover,.khp .kh a:not([class]):hover{color:#1A43B8}
/* header over hero */
.khtop{position:fixed;top:0;left:0;right:0;z-index:60;transition:background .25s,box-shadow .25s}
.khtop .nav{position:static;background:transparent;border-bottom-color:transparent;transition:color .25s}
.khtop .ubar{background:transparent;max-height:44px;overflow:hidden;transition:max-height .25s,padding .25s,opacity .2s}
.khtop:not(.solid) .ubar,.khtop:not(.solid) .ubar a,.khtop:not(.solid) .ubar .lang{color:#0A1020}
.khtop:not(.solid) .ubar .pill{color:#2563EB}
.khtop:not(.solid) .ubar .sep{background:rgba(10,16,32,.14)}
.khtop:not(.solid) .nav,.khtop:not(.solid) .nav-item>a,.khtop:not(.solid) .nav-burger,.khtop:not(.solid) .nav-logo .klogo{color:#0A1020}
.khtop:not(.solid) .nav .btn-ghost{color:#0A1020;border-color:rgba(10,16,32,.22)}
.khtop:not(.solid) .nav .btn-ghost:hover{border-color:#0A1020;background:rgba(10,16,32,.04)}
.khtop.solid{background:#0A1020;box-shadow:0 1px 0 rgba(255,255,255,.06)}
.khtop.solid .ubar{max-height:0;padding:0;opacity:0}
/* hero */
.kh{position:relative;height:min(100vh,920px);min-height:720px;background:#F7F8FB;overflow:hidden;color:#0A1020;--a:7.5%;--b:13.5%}
.kh.model{height:auto;min-height:0;padding:200px 0 max(230px,17vw)}
.kh .gl{position:absolute;top:0;bottom:0;width:1px;background:#E2E6EF}
.kh .gl.l1{left:var(--a)}.kh .gl.l2{left:var(--b)}.kh .gl.r1{right:var(--a)}.kh .gl.r2{right:var(--b)}
.kh-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 16% 0;text-align:center;z-index:4}
.kh.model .kh-c{position:relative;inset:auto;padding-top:0}
.kh h1{font:500 clamp(46px,6.4vw,112px)/1 "Space Grotesk",sans-serif;letter-spacing:-.05em;margin:0;color:#0A1020;text-wrap:balance}
.kh.model h1{font-size:clamp(44px,5.6vw,96px)}
.kh h1 .flag{display:inline-block;height:.8em;width:auto;vertical-align:-.04em;margin:0 .1em}
.kh h1 .flag svg{height:100%;width:auto;display:block}
.kh h1 em{font-style:normal;color:#2563EB}
.kh-crumb{font:500 11.5px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#475069!important;margin-bottom:26px;display:inline-flex;gap:8px}
.kh-crumb:hover{color:#2563EB!important}
.kh-sub{font-size:clamp(16px,1.3vw,20px);line-height:1.55;color:#475069;max-width:54ch;margin:28px auto 0;text-wrap:pretty}
.kh-tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.kh-ctas{display:flex;gap:12px;justify-content:center;margin-top:36px;flex-wrap:wrap}
.kbtn{display:inline-flex;align-items:center;gap:10px;height:52px;padding:0 24px;border:0;cursor:pointer;font:600 15.5px/1 "Hanken Grotesk",sans-serif;color:#fff!important;background:#2563EB;box-shadow:inset 3px 3px 0 #5A8BFF,inset -3px -3px 0 #1A43B8;transition:transform .12s}
.kbtn:hover{transform:translateY(-2px)}
.kbtn.ghost{background:#fff;color:#0A1020!important;box-shadow:inset 0 0 0 1.5px #0A1020}
.kbtn.ghost .mono{font:500 13px/1 "IBM Plex Mono",monospace;color:#2563EB}
.kh-pill{position:absolute;left:50%;bottom:6%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:10px 18px 10px 10px;background:#fff;border:1px solid #E2E6EF;color:#0A1020!important;font:500 15px/1 "Hanken Grotesk",sans-serif;white-space:nowrap;z-index:5;transition:border-color .15s,transform .15s}
a.kh-pill:hover{border-color:#2563EB;transform:translate(-50%,-2px)}
.kh-pill .km{width:34px;height:34px;background:#0A1020;display:flex;align-items:center;justify-content:center}
.kh-pill .km svg{width:20px;height:20px}
.kh-pill .chev{font:400 14px/1 "Silkscreen",monospace;color:#2563EB}
.kh-pill b{font-family:"IBM Plex Mono",monospace;font-weight:500;font-size:13.5px}
.kh-lang{position:absolute;top:132px;right:calc(var(--a) + 1.5%);display:flex;border:1px solid #E2E6EF;background:#fff;z-index:6}
.kh-lang button{border:0;background:transparent;font:400 11px/1 "Silkscreen",monospace;padding:8px 10px;color:#475069;cursor:pointer}
.kh-lang button.on{background:#0A1020;color:#fff}
.kh .sq{position:absolute;aspect-ratio:1}
.kh .cube{--d:1.6vw;background:var(--f)}
.kh .cube::before{content:"";position:absolute;left:0;bottom:100%;width:calc(100% + var(--d));height:var(--d);background:var(--t);clip-path:polygon(var(--d) 0,100% 0,calc(100% - var(--d)) 100%,0 100%)}
.kh .cube::after{content:"";position:absolute;left:100%;bottom:0;width:var(--d);height:calc(100% + var(--d));background:var(--s);clip-path:polygon(0 var(--d),100% 0,100% calc(100% - var(--d)),0 100%)}
.kh .px{position:absolute}
.kh .px svg{display:block;width:100%;height:auto}
.kh .spin3{position:absolute;aspect-ratio:1;perspective:600px;z-index:3}
.kh .c3{position:absolute;inset:0;transform-style:preserve-3d;animation:khCube 7s linear infinite}
.kh .c3 i{position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(10,16,32,.15)}
.kh .c3 .f1{transform:translateZ(1.75vw);background:#2563EB}
.kh .c3 .f2{transform:rotateY(180deg) translateZ(1.75vw);background:#1A43B8}
.kh .c3 .f3{transform:rotateY(90deg) translateZ(1.75vw);background:#4F83FF}
.kh .c3 .f4{transform:rotateY(-90deg) translateZ(1.75vw);background:#1A43B8}
.kh .c3 .f5{transform:rotateX(90deg) translateZ(1.75vw);background:#8CF0C6}
.kh .c3 .f6{transform:rotateX(-90deg) translateZ(1.75vw);background:#0F2A80}
@keyframes khCube{0%{transform:translateY(0) rotateX(-24deg) rotateY(0)}50%{transform:translateY(-.6vw) rotateX(-24deg) rotateY(180deg)}100%{transform:translateY(0) rotateX(-24deg) rotateY(360deg)}}
.kh .blades{transform-box:view-box;transform-origin:10px 10px;animation:khSpin 3.2s linear infinite}
@keyframes khSpin{to{transform:rotate(360deg)}}
.kh .tw{animation:khTw 2.4s steps(1) infinite}.kh .tw.d2{animation-delay:1.2s}
@keyframes khTw{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.kh .c3{animation:none;transform:rotateX(-24deg) rotateY(35deg)}.kh .blades,.kh .tw{animation:none}}
/* light sections */
.ks{position:relative;padding:112px 0;border-top:1px solid #E2E6EF;background:#F7F8FB}
.ks.white{background:#fff}
.k-eye{display:inline-flex;align-items:center;gap:10px;font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:#475069}
.k-eye b{font:400 11px/1 "Silkscreen",monospace;letter-spacing:.04em;background:#8CF0C6;color:#0A1020;padding:6px 8px}
.ks h2{font:500 clamp(34px,4vw,60px)/1.02 "Space Grotesk",sans-serif;letter-spacing:-.04em;margin:18px 0 0;max-width:20ch;text-wrap:balance;color:#0A1020}
.ks h2 em{font-style:normal;color:#2563EB}
.ks .lede{font-size:18px;line-height:1.6;color:#475069;max-width:58ch;margin:18px 0 0;text-wrap:pretty}
.khead{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;flex-wrap:wrap}
.k3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:56px;border-top:1px solid #E2E6EF}
.k3>div{padding:36px 32px 8px;border-left:1px solid #E2E6EF}
.k3>div:first-child{border-left:0;padding-left:0}
.k3 .ic{width:44px;height:44px}.k3 .ic svg{width:100%;height:100%;display:block}
.k3 .num{font:400 22px/1 "Silkscreen",monospace;color:#2563EB}
.k3 h3{font:600 22px/1.15 "Space Grotesk",sans-serif;letter-spacing:-.02em;margin:24px 0 0;color:#0A1020}
.k3 p{font-size:15.5px;line-height:1.6;color:#475069;margin:10px 0 0}
.ksplit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:64px;align-items:center}
.ksteps{list-style:none;margin:32px 0 0;padding:0;display:flex;flex-direction:column}
.ksteps li{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:16px 0;border-top:1px solid #E2E6EF;font-size:15.5px;color:#0A1020}
.ksteps li span{font:400 14px/1.6 "Silkscreen",monospace;color:#2563EB}
.ksteps code{font:500 13.5px "IBM Plex Mono",monospace;background:#EEF2FB;color:#1A43B8;padding:2px 6px}
.kcode{background:#0A1020;color:#E6ECFA;font:400 13.5px/1.75 "IBM Plex Mono",monospace;box-shadow:inset 3px 3px 0 #26315A,inset -3px -3px 0 #070C1B;min-width:0}
.kcode .kt{display:flex;align-items:center;gap:2px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.kcode .kt button{border:0;background:transparent;color:rgba(255,255,255,.55);font:500 12px/1 "IBM Plex Mono",monospace;padding:8px 12px;cursor:pointer}
.kcode .kt button.on{background:#1B2440;color:#fff}
.kcode .kt .kcopy{margin-left:auto}
.kcode pre{margin:0;padding:24px 26px;overflow-x:auto;white-space:pre;font:inherit}
.kcode .c{color:rgba(255,255,255,.4)}.kcode .s{color:#8CF0C6}.kcode .k{color:#82A8FF}
.kmodels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:52px}
.kmc{display:flex;flex-direction:column;background:#fff;border:1px solid #E2E6EF;padding:26px;color:#0A1020!important;transition:border-color .15s,transform .15s}
.kmc:hover{border-color:#2563EB;transform:translateY(-2px)}
.kmc .top{display:flex;align-items:center;gap:14px}
.kmc .av,.kav{width:44px;height:44px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font:400 14px/1 "Silkscreen",monospace;color:#fff;background:var(--c,#2563EB);box-shadow:inset -3px -3px 0 rgba(0,0,0,.2),inset 3px 3px 0 rgba(255,255,255,.18)}
.kmc .nm b{display:block;font:600 19px/1.15 "Space Grotesk",sans-serif;letter-spacing:-.02em}
.kmc .nm span{display:block;font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#6B7590;margin-top:6px}
.kmc p{font-size:14.5px;line-height:1.55;color:#475069;margin:18px 0 0;flex:1}
.ktags{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.ktag{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.04em;padding:6px 8px;background:#EEF2FB;color:#1A43B8}
.kmc .pr{display:flex;justify-content:space-between;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #E2E6EF;font:500 12.5px/1 "IBM Plex Mono",monospace;color:#475069}
.kmc .pr b{color:#0A1020;font-weight:600}
.kmc .go{margin-top:16px;font-weight:600;font-size:14px;color:#2563EB}
.kpt-wrap{overflow-x:auto;margin-top:44px;border:1px solid #E2E6EF;background:#fff}
table.kpt{width:100%;border-collapse:collapse;font-size:15px;min-width:560px}
.kpt th,.kpt td{padding:16px 22px;text-align:left;border-top:1px solid #E2E6EF;vertical-align:middle}
.kpt thead th{border-top:0;font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#6B7590;font-weight:500}
.kpt td.m{font:600 15.5px "Space Grotesk",sans-serif}.kpt td.m a{color:#0A1020}.kpt td.m a:hover{color:#2563EB}
.kpt td.n{font:500 14px "IBM Plex Mono",monospace}
.kpt th.l{width:38%;font:500 11px/1.4 "IBM Plex Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:#6B7590;border-top:1px solid #E2E6EF}
.kpt tbody tr:first-child th,.kpt tbody tr:first-child td{border-top:0}
.knote{font-size:13px;color:#6B7590;margin-top:14px}
.kup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:48px}
.kup a{display:flex;flex-direction:column;background:#0A1020;color:#fff!important;padding:34px;box-shadow:inset 3px 3px 0 #26315A,inset -3px -3px 0 #070C1B;transition:transform .15s}
.kup a:hover{transform:translateY(-2px)}
.kup .mono{font:500 11px/1 "IBM Plex Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#8CF0C6}
.kup b{font:600 28px/1.1 "Space Grotesk",sans-serif;letter-spacing:-.02em;margin-top:18px}
.kup p{color:rgba(255,255,255,.66);font-size:15px;line-height:1.6;margin:10px 0 22px;flex:1}
.kup .go{font-weight:600;font-size:14px;color:#82A8FF}
.kfaq{max-width:860px;margin:48px 0 0}
.kfaq details{border-top:1px solid #E2E6EF}.kfaq details:last-child{border-bottom:1px solid #E2E6EF}
.kfaq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font:600 18px/1.3 "Space Grotesk",sans-serif;color:#0A1020}
.kfaq summary::-webkit-details-marker{display:none}
.kfaq summary::after{content:"+";font:400 18px/1.3 "Silkscreen",monospace;color:#2563EB}
.kfaq details[open] summary::after{content:"-"}
.kfaq p{margin:0;padding:0 0 24px;font-size:16px;line-height:1.65;color:#475069;max-width:66ch}
.kcta{text-align:center;padding:130px 0}
.kcta h2,.kcta .lede{margin-left:auto;margin-right:auto}
.kcta .kh-ctas{margin-top:36px}
@media(max-width:1024px){.k3{grid-template-columns:1fr}.k3>div{border-left:0;padding-left:0;border-top:1px solid #E2E6EF}.k3>div:first-child{border-top:0}.kmodels{grid-template-columns:1fr 1fr}.ksplit{grid-template-columns:1fr;gap:40px}.ks{padding:88px 0}}
@media(max-width:760px){.kh{--a:4%;--b:16%;min-height:680px}.kh-c{padding:60px 7% 0}.kh-pill{font-size:13px;white-space:normal;width:max-content;max-width:88%}.kh-lang{top:96px}.kmodels,.kup{grid-template-columns:1fr}}

/* Inference uses its own design chrome — hide hdl-core global top bar here. */
body.khp .hdl-top-bar{display:none!important}

/* Native site chrome reskinned to the light inference design (scoped to this page). */
body.khp .chrome{background:transparent}
body.khp .ubar{background:transparent}
body.khp .ubar,body.khp .ubar a,body.khp .ubar .lang{color:#0A1020}
body.khp .ubar .pill{color:#2563EB}
body.khp .ubar .sep{background:rgba(10,16,32,.14)}
body.khp .nav{background:#fff;color:#0A1020;border-bottom:1px solid rgba(10,16,32,.08)}
body.khp .nav .nav-item>a,body.khp .nav-logo .klogo,body.khp .nav-burger{color:#0A1020}
body.khp .nav .btn-ghost{color:#0A1020;border-color:rgba(10,16,32,.22)}
body.khp .nav .btn-ghost:hover{border-color:#0A1020;background:rgba(10,16,32,.04)}

/* Header logo: the white logo image is invisible on the light reskin — darken it (header only). */
body.khp .chrome .nav-logo .klogo--img{filter:brightness(0)}
/* KEPLER CLOUD voxel skyline — kepler-hero.js terrain() mounts an SVG here, on the dark footer. */
.vx-terrain{display:block;background:var(--ink);overflow:hidden;margin:0}
.vx-terrain svg{display:block;width:100%;height:auto}
