/* Layout: 12-col grid, 24px gutter, 8px steps; light and dark themes from one token set; each direction swaps the accent */
:root{
  --bg:#FAFBFD;
  --bg-2:#EEF3F8;
  --surface:#FFFFFF;
  --fg:#0A0D14;
  --fg-2:#3A4352;
  --fg-3:#667386;
  --line:#DFE6EE;
  --line-2:#C3CEDB;
  --core:#0A0D14;
  --header:rgba(250,251,253,.86);
  --grid:rgba(0,110,194,.06);
  --glow:.45;
  --show-dark:none;
  --show-light:block;
  --tint-a:rgba(167,125,255,.12);
  --tint-b:rgba(82,210,228,.2);
  --robo-bg:#F7FBFF;
  --robo-bg-2:#E8F2FC;
  --robo-surface:#FFFFFF;
  --lab-bg:#F7FCFD;
  --lab-bg-2:#E6F5F8;
  --edu:#6E45D9;
  --lab:#006EC2;
  --robo:#006EC2;
  --edu-fill:#A77DFF;
  --lab-fill:#52D2E4;
  --robo-fill:#006EC2;
  --font-sans:"PP Neue Montreal","Onest","Helvetica Neue",Arial,sans-serif;
  --font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --gutter:24px;
  --max:1360px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0A0A0A;--bg-2:#161616;--surface:#161616;--fg:#FFFFFF;--fg-2:#BDBDBD;--fg-3:#9E9E9E;--line:rgba(255,255,255,.12);--line-2:rgba(255,255,255,.24);--core:#FFFFFF;--header:rgba(10,10,10,.86);--grid:rgba(255,255,255,.05);--glow:.6;--show-dark:block;--show-light:none;--robo-bg:#00071C;--robo-bg-2:#06122E;--robo-surface:#06122E;--lab-bg:#0A0A0A;--lab-bg-2:#161616;--tint-a:rgba(167,125,255,.1);--tint-b:rgba(82,210,228,.07);--edu:#A77DFF;--lab:#52D2E4;--robo:#52D2E4;color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0A0A0A;--bg-2:#161616;--surface:#161616;--fg:#FFFFFF;--fg-2:#BDBDBD;--fg-3:#9E9E9E;--line:rgba(255,255,255,.12);--line-2:rgba(255,255,255,.24);--core:#FFFFFF;--header:rgba(10,10,10,.86);--grid:rgba(255,255,255,.05);--glow:.6;--show-dark:block;--show-light:none;--robo-bg:#00071C;--robo-bg-2:#06122E;--robo-surface:#06122E;--lab-bg:#0A0A0A;--lab-bg-2:#161616;--tint-a:rgba(167,125,255,.1);--tint-b:rgba(82,210,228,.07);--edu:#A77DFF;--lab:#52D2E4;--robo:#52D2E4;color-scheme:dark;
}
body{--acc:var(--edu);--acc-fill:var(--edu-fill);--acc-on:#0A0A0A}
body.lab{--acc:var(--lab);--acc-fill:var(--lab-fill);--acc-on:#0A0A0A;--bg:var(--lab-bg);--bg-2:var(--lab-bg-2);--tint-a:rgba(82,210,228,.2);--tint-b:rgba(0,110,194,.12)}
body.robo{--acc:var(--robo);--acc-fill:var(--robo-fill);--acc-on:#FFFFFF;--bg:var(--robo-bg);--bg-2:var(--robo-bg-2);--surface:var(--robo-surface);--tint-a:rgba(0,110,194,.2);--tint-b:rgba(82,210,228,.12)}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--bg)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
p{margin:0}
h1,h2,h3{margin:0;font-weight:400;letter-spacing:-.035em;line-height:1.03;text-wrap:balance}
:focus-visible{outline:2px solid var(--acc-fill);outline-offset:3px}

.band{padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));padding-block:112px;background:var(--bg)}
.band.alt{background:var(--bg-2)}
.wrap{max-width:var(--max);margin-inline:auto}
.h1{font-size:clamp(44px,6.6vw,100px)}
.h2{font-size:clamp(34px,4.4vw,64px)}
.h3{font-size:clamp(22px,1.9vw,28px);letter-spacing:-.02em;line-height:1.15}
.dim{color:var(--fg-3)}
.lead{font-size:clamp(19px,1.5vw,22px);line-height:1.45;max-width:40ch;color:var(--fg-2)}
.acc{color:var(--acc)}

/* buttons */
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:12px;min-height:56px;padding:0 28px;font:500 17px/1 var(--font-sans);border:1px solid var(--fg);background:transparent;color:var(--fg);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn .arr{transition:transform .2s}
.btn:hover .arr{transform:translateX(4px)}
.btn.primary{background:var(--acc-fill);border-color:var(--acc-fill);color:var(--acc-on)}
.btn.primary:hover{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.btn.ghost:hover{background:var(--fg);color:var(--bg)}
.row-btns{display:flex;gap:16px;flex-wrap:wrap}
.link{display:inline-flex;align-items:center;gap:10px;font-weight:500;border-bottom:1px solid var(--line-2);padding-bottom:4px;transition:border-color .2s,color .2s}
.link:hover{border-color:var(--acc);color:var(--acc)}

/* header */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:var(--header);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:76px}
.logo{flex:none;display:block}
.logo img{height:38px;width:auto}
.logo .l-dark{display:var(--show-dark)}
.logo .l-light{display:var(--show-light)}
.nav{display:flex;gap:24px}
.nav a{white-space:nowrap;font-size:16px;color:var(--fg-2);padding-block:8px;border-bottom:2px solid transparent;transition:color .2s}
.nav a:hover{color:var(--fg)}
.nav a[aria-current="page"]{color:var(--fg);border-bottom-color:var(--acc-fill)}
.tools{display:flex;align-items:center;gap:12px}
.lang{display:flex;font-family:var(--font-mono);font-size:14px}
.lang span{padding:6px 8px;color:var(--fg-3)}
.lang [aria-current]{color:var(--fg);background:var(--bg-2)}
.icon-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line-2);color:var(--fg);cursor:pointer;transition:border-color .2s}
.icon-btn:hover{border-color:var(--fg)}
.icon-btn svg{width:20px;height:20px}
.theme .sun{display:var(--show-dark)}
.theme .moon{display:var(--show-light)}
.top .btn{min-height:44px;padding:0 20px;font-size:15px}
.burger{display:none}
.top .drawer{display:grid;height:auto;gap:4px;padding-block:16px 24px;border-top:1px solid var(--line)}
.drawer a{font-size:24px;letter-spacing:-.02em;padding-block:8px}

/* back bar */
.crumbs{padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));border-bottom:1px solid var(--line);background:var(--bg)}
.crumbs .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;flex-wrap:wrap}
.back{display:inline-flex;align-items:center;gap:12px;font-weight:500;font-size:17px}
.back i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line-2);transition:border-color .2s,transform .2s}
.back:hover i{border-color:var(--fg);transform:translateX(-3px)}
.path{font-size:16px;color:var(--fg-3)}
.path b{font-weight:500;color:var(--fg)}

/* hero */
.hero{position:relative;overflow:hidden;padding-block:96px 112px}
.hero .wrap{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter)}
.hero .kicker{grid-column:1/-1;font-size:18px;color:var(--acc);font-weight:500;margin-bottom:24px}
.hero h1{grid-column:1/11;position:relative;z-index:2}
.hero .sub{grid-column:1/6;margin-top:56px;display:grid;gap:32px;align-content:start;position:relative;z-index:2}
.hero .stage{grid-column:7/-1;position:relative;min-height:340px;margin-top:24px}
.hero .fig{position:absolute;left:calc(30% + 36px);top:52px;z-index:2}
.hero .fig .n{font-size:clamp(64px,7.6vw,120px);letter-spacing:-.05em;line-height:.9}
.hero .fig .n em{font-style:normal;color:var(--acc)}
.hero .fig .t{font-size:18px;margin-top:8px;color:var(--fg-2)}
.hero .shot{grid-column:7/-1;margin-top:40px;background:#FFFFFF;position:relative;overflow:hidden;border:1px solid var(--line)}
.hero .shot img{width:100%;height:auto}
.hero .shot span{position:absolute;left:20px;bottom:16px;font-size:15px;color:#555}

/* glowing lines */
.ln{position:absolute;border-radius:2px}
.ln.h{height:4px}.ln.v{width:4px}
.ln.core{background:var(--core);box-shadow:0 0 6px color-mix(in srgb,var(--core) 50%,transparent),0 0 22px color-mix(in srgb,var(--acc-fill) 60%,transparent)}
.ln.fl{background:linear-gradient(90deg,transparent,var(--acc-fill) 35%,var(--core) 90%)}
.ln.fr{background:linear-gradient(270deg,transparent,var(--acc-fill) 35%,var(--core) 90%)}
.ln.ft{background:linear-gradient(180deg,transparent,var(--acc-fill) 40%,var(--core) 92%)}
.ln.fb{background:linear-gradient(0deg,transparent,var(--acc-fill) 40%,var(--core) 92%)}
.ln.fl,.ln.fr,.ln.ft,.ln.fb{box-shadow:0 0 18px color-mix(in srgb,var(--acc-fill) 50%,transparent)}
.halo{position:absolute;border-radius:50%;background:radial-gradient(closest-side,var(--acc-fill),transparent);opacity:var(--glow);filter:blur(28px);pointer-events:none}
.spark{position:absolute;width:96px;height:4px;border-radius:4px;background:radial-gradient(closest-side,#fff,var(--acc-fill) 45%,transparent);animation:run 6s cubic-bezier(.6,0,.4,1) infinite}
@keyframes run{0%{transform:translateX(-120px);opacity:0}10%,60%{opacity:1}75%,100%{transform:translateX(560px);opacity:0}}

/* section head */
.head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:end;margin-bottom:56px}
.head h2{grid-column:1/8}
.head .side{grid-column:9/-1;display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.head .side.end{align-items:flex-end;text-align:right}

/* direction cards (compact) */
.dirs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.dc{--c:var(--edu);--cf:var(--edu-fill);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:14px;padding:28px;min-height:280px;background:var(--surface);border:1px solid var(--line);isolation:isolate;transition:border-color .25s,transform .25s}
.dc.lab{--c:var(--lab);--cf:var(--lab-fill)}
.dc.robo{--c:var(--robo);--cf:var(--robo-fill)}
.dc::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--cf),transparent 85%)}
.dc::after{content:"";position:absolute;right:-90px;bottom:-110px;width:260px;height:260px;border-radius:50%;background:radial-gradient(closest-side,var(--cf),transparent 70%);opacity:calc(var(--glow) * .55);filter:blur(24px);z-index:-1;transition:opacity .4s}
.dc:hover{border-color:var(--cf);transform:translateY(-3px)}
.dc:hover::after{opacity:var(--glow)}
.dc .mark{display:flex;align-items:center;justify-content:space-between}
.dc .mark svg{width:40px;height:40px;color:var(--c)}
.dc .mark span{font-size:15px;color:var(--fg-3)}
.dc h3{font-size:clamp(26px,2.2vw,32px);letter-spacing:-.03em;line-height:1.05}
.dc .who{font-size:16px;color:var(--c);font-weight:500}
.dc p{font-size:16px;color:var(--fg-2)}
.dc .go{margin-top:auto;padding-top:12px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);font-size:16px;font-weight:500}
.dc .go i{font-style:normal;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--cf);color:#0A0A0A;transition:transform .2s}
.dc.robo .go i{color:#fff}
.dc:hover .go i{transform:translateX(4px)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stat{position:relative;overflow:hidden;padding:32px;min-height:200px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid color-mix(in srgb,var(--acc-fill) 45%,transparent);background:var(--surface);isolation:isolate}
.stat::after{content:"";position:absolute;right:-90px;top:-70px;width:280px;height:340px;background:radial-gradient(closest-side,var(--acc-fill),transparent 75%);opacity:var(--glow);filter:blur(18px);transform:rotate(-18deg);z-index:-1}
.stat .n{font-size:clamp(60px,6.4vw,96px);letter-spacing:-.05em;line-height:.9}
.stat .n em{font-style:normal;color:var(--acc)}
.stat .t{font-size:18px;color:var(--fg-2)}

/* project carousel */
.rail-ctl{display:flex;gap:8px}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 48px)/3.2);gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:8px}
.rail::-webkit-scrollbar{display:none}
.pc{scroll-snap-align:start;display:flex;flex-direction:column;gap:14px;min-width:0}
.pc .where{font-size:15px;color:var(--fg-3)}
.pc p{font-size:16px;color:var(--fg-2)}
.pc .tag{align-self:flex-start;font-size:14px;padding:4px 10px;border:1px solid var(--line-2);color:var(--fg-2)}
.pc .tag.edu{border-color:color-mix(in srgb,var(--edu) 55%,transparent);color:var(--edu)}
.pc .tag.lab{border-color:color-mix(in srgb,var(--lab) 55%,transparent);color:var(--lab)}
.pc.more{justify-content:center;align-items:flex-start;padding:32px;border:1px dashed var(--line-2);background:transparent}
.pc.more .h3{max-width:14ch}
.photo{position:relative;width:100%;max-width:100%;aspect-ratio:4/3;background:linear-gradient(var(--grid) 1px,transparent 1px) 0 0/32px 32px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0/32px 32px,var(--bg-2);border:1px solid var(--line);display:flex;align-items:flex-end;padding:16px;overflow:hidden}
.photo span{font-size:15px;color:var(--fg-3)}
.photo.white{background:#FFFFFF;padding:0;align-items:center;justify-content:center}
.photo.white img{width:100%;height:100%;object-fit:cover}

/* audience list */
.who-list{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter)}
.who-list h2{grid-column:1/6}
.who-list ul{grid-column:7/-1;list-style:none;margin:0;padding:0;border-top:1px solid var(--fg)}
.who-list li{display:flex;justify-content:space-between;gap:24px;padding-block:22px;border-bottom:1px solid var(--line);font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em}
.who-list li span{font-size:16px;color:var(--fg-3);letter-spacing:0;text-align:right}

/* cards grid */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}
.cards.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.card-c{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px;display:flex;flex-direction:column;gap:14px;min-height:240px;background:var(--surface);transition:background .25s}
.card-c .tag{font-size:15px;color:var(--acc);font-weight:500}
.card-c h3{margin-top:auto}
.card-c p{color:var(--fg-2);font-size:16px}
.card-c:hover{background:var(--bg)}

/* brands */
.brands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.brand{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;padding:28px;background:var(--surface);border:1px solid var(--line);transition:border-color .25s}
.brand:hover{border-color:var(--acc-fill)}
.brand .info{display:flex;flex-direction:column;gap:14px}
.brand .name{font-size:clamp(26px,2.4vw,36px);letter-spacing:-.03em;line-height:1}
.brand p{color:var(--fg-2);font-size:16px}
.badge{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;font-size:15px;color:var(--acc);border:1px solid color-mix(in srgb,var(--acc) 50%,transparent);padding:6px 12px}
.badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--acc-fill);box-shadow:0 0 10px var(--acc-fill)}

/* models */
.models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.model{display:flex;flex-direction:column;gap:16px;padding:24px;border:1px solid var(--line);background:var(--surface)}
.model .kind{font-size:16px;color:var(--acc);font-weight:500}
.model .name{font-size:clamp(34px,3.2vw,48px);letter-spacing:-.04em;line-height:1}
.model p{color:var(--fg-2);font-size:16px}
.model dl{margin:auto 0 0;border-top:1px solid var(--line)}
.model dl div{display:flex;justify-content:space-between;gap:16px;padding-block:12px;border-bottom:1px solid var(--line);font-size:15px}
.model dt{color:var(--fg-3)}
.model dd{margin:0;text-align:right}
.note{margin-top:28px;font-size:16px;color:var(--fg-3);max-width:70ch}

/* clients */
.clients{display:flex;flex-wrap:wrap;gap:16px 48px;align-items:center}
.clients b{font-weight:500;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.02em;color:var(--fg-2)}

/* CTA */
.cta{position:relative;overflow:hidden}
.cta .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);position:relative;z-index:1}
.cta h2{grid-column:1/9}
.cta .side{grid-column:1/7;margin-top:40px;display:grid;gap:28px}
.cta .contacts{grid-column:8/-1;margin-top:40px;align-self:end;border-top:1px solid var(--fg)}
.cta .contacts div{display:flex;justify-content:space-between;gap:16px;padding-block:18px;border-bottom:1px solid var(--line)}
.cta .contacts span{color:var(--fg-3);font-size:16px}
.cta .contacts a,.cta .contacts b{font-weight:400;font-size:19px;text-align:right;overflow-wrap:anywhere}
.cta .contacts a:hover{color:var(--acc)}
.cta small{font-size:15px;color:var(--fg-3);max-width:44ch}

/* footer */
footer.band{padding-block:72px 40px;border-top:1px solid var(--line)}
.foot{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter)}
.foot .brandcol{grid-column:span 4;display:grid;gap:16px;align-content:start}
.foot .brandcol p{color:var(--fg-3);font-size:16px;max-width:30ch}
.foot .col{grid-column:span 2;display:grid;gap:10px;align-content:start;font-size:16px}
.foot .col b{font-weight:500;margin-bottom:6px}
.foot .col a,.foot .col span{color:var(--fg-2)}
.foot .col a:hover{color:var(--fg)}
.foot .bottom{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid var(--line);color:var(--fg-3);font-size:15px}

/* responsive */
@media (max-width:1360px){
  .lang{display:none}
}
@media (max-width:1200px){
  .nav,.lang{display:none}
  .burger{display:inline-flex}
  .hero h1,.hero .sub,.hero .stage,.hero .shot{grid-column:1/-1}
  .hero .stage{min-height:300px}
  .head h2,.head .side{grid-column:1/-1}
  .head .side.end{align-items:flex-start;text-align:left}
  .dirs{grid-template-columns:minmax(0,1fr)}
  .dc{min-height:0}
  .rail{grid-auto-columns:calc((100% - 24px)/2.2)}
  .cards,.cards.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .who-list h2,.who-list ul{grid-column:1/-1}
  .brands,.models{grid-template-columns:minmax(0,1fr)}
  .cta h2,.cta .side,.cta .contacts{grid-column:1/-1}
  .foot .brandcol{grid-column:1/-1}
  .foot .col{grid-column:span 3}
}
@media (max-width:640px){
  :root{--gutter:16px}
  body{font-size:17px}
  .band{padding-block:80px}
  .hero{padding-block:56px 80px}
  .top .btn{display:none}
  .hero .stage{min-height:260px}
  .hero .fig{left:calc(30% + 20px);top:36px}
  .stats,.cards,.cards.four{grid-template-columns:minmax(0,1fr)}
  .stat{min-height:160px}
  .rail{grid-auto-columns:82%}
  .brand{grid-template-columns:minmax(0,1fr);padding:22px}
  .who-list li{flex-direction:column;gap:4px}
  .who-list li span{text-align:left}
  .foot .col{grid-column:span 6}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .spark{display:none}
}

/* tinted hero ground */
.hero{background:radial-gradient(60% 70% at 92% 8%,var(--tint-a),transparent 70%),radial-gradient(50% 60% at 0% 100%,var(--tint-b),transparent 70%),var(--bg)}

/* home hero */
.hero.home{padding-block:72px 96px}
.hero.home .wrap{align-items:center}
.hero.home .copy{grid-column:1/7;display:flex;flex-direction:column;gap:32px;position:relative;z-index:2}
.hero.home h1{font-size:clamp(40px,5vw,78px)}
.hero.home .lead{max-width:34ch}
.kpis{margin:16px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:28px;position:relative}
.kpis::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,var(--core),var(--acc-fill) 45%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--acc-fill) 45%,transparent)}
.kpis div{display:grid;gap:8px;align-content:start}
.kpis dt{font-size:clamp(44px,4.6vw,72px);letter-spacing:-.05em;line-height:.9}
.kpis dt em{font-style:normal;color:var(--acc)}
.kpis dd{margin:0;font-size:16px;line-height:1.35;color:var(--fg-2);max-width:18ch}
.mosaic{grid-column:7/-1;position:relative;display:grid;grid-template-columns:1.05fr 1fr;grid-template-rows:1fr 1fr;gap:14px;height:clamp(460px,46vw,640px)}
.mosaic figure{margin:0;position:relative;overflow:hidden;background:var(--bg-2);z-index:1}
.mosaic .m1{grid-row:1/3}
.mosaic img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.mosaic figure:hover img{transform:scale(1.04)}
.mosaic figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 16px 14px;font-size:15px;color:#fff;background:linear-gradient(0deg,rgba(10,10,10,.72),transparent)}
.mosaic .mv{left:calc(51.2% - 2px);top:-48px;height:calc(100% + 96px);z-index:2;background:linear-gradient(180deg,transparent,var(--core) 18%,var(--core) 82%,transparent)}
.mosaic .mh{left:calc(51.2% - 2px);top:calc(50% - 2px);width:calc(48.8% + 72px);z-index:2}
.mosaic .mh2{right:calc(48.8% + 2px);top:calc(50% - 2px);width:72px;z-index:0}

/* photos with images */
.photo.img{padding:0;background:var(--bg-2)}
.photo.img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.pc:hover .photo.img img{transform:scale(1.04)}

/* contact tiles */
.cta .wrap{align-items:start}
.cta-copy{grid-column:1/6;display:grid;gap:24px;align-content:start}
.tiles{grid-column:7/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tile{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;column-gap:16px;row-gap:2px;align-items:center;padding:22px 56px 22px 22px;background:var(--surface);border:1px solid var(--line);transition:border-color .2s,transform .2s,background .2s}
.tile .ic{grid-row:1/3;width:44px;height:44px;padding:11px;background:var(--bg-2);color:var(--acc)}
.tile .k{font-size:15px;color:var(--fg-3)}
.tile .v{font-size:18px;font-weight:500;overflow-wrap:anywhere;line-height:1.25}
.tile .s{grid-column:2;font-size:15px;color:inherit;opacity:.8}
.tile i{position:absolute;right:20px;top:50%;transform:translateY(-50%);font-style:normal;font-size:20px;transition:transform .2s}
.tile:hover{border-color:var(--acc-fill);transform:translateY(-2px)}
.tile:hover i{transform:translate(4px,-50%)}
.tile.wa{grid-column:1/-1;padding-block:28px;background:var(--acc-fill);border-color:var(--acc-fill);color:var(--acc-on)}
.tile.wa .ic{background:rgba(255,255,255,.28);color:var(--acc-on)}
.tile.wa .k{color:inherit;opacity:.75}
.tile.wa .v{font-size:clamp(24px,2.2vw,32px);letter-spacing:-.02em}
.tile.wa:hover{border-color:var(--fg)}
.tile:last-child:nth-child(even){grid-column:1/-1}

/* footer */
.foot .brandcol{grid-column:span 3}
.foot .brandcol .btn{justify-self:start;margin-top:8px}
.foot .col{grid-column:span 2}
.foot .col a{transition:color .2s}
.foot .brands-col{grid-column:span 3;gap:14px}
.foot .brands-col a{display:grid;gap:2px}
.foot .brands-col a span{color:var(--fg);font-weight:500}
.foot .brands-col a small{font-size:15px;color:var(--fg-3)}
.foot .brands-col a:hover span{color:var(--acc)}
.foot .bottom a:hover{color:var(--fg)}

@media (max-width:1200px){
  .hero.home .copy,.mosaic{grid-column:1/-1}
  .mosaic{height:clamp(360px,70vw,560px);margin-top:24px}
  .cta-copy,.tiles{grid-column:1/-1}
  .tiles{margin-top:24px}
  .foot .brandcol,.foot .brands-col{grid-column:span 6}
  .foot .col{grid-column:span 4}
}
@media (max-width:640px){
  .kpis{grid-template-columns:minmax(0,1fr);gap:16px}
  .kpis div{grid-template-columns:120px minmax(0,1fr);align-items:baseline}
  .kpis dd{max-width:none}
  .mosaic{grid-template-columns:minmax(0,1fr) minmax(0,1fr);height:420px}
  .mosaic .mh,.mosaic .mh2{display:none}
  .tiles{grid-template-columns:minmax(0,1fr)}
  .tile:last-child:nth-child(even){grid-column:auto}
  .foot .brandcol,.foot .brands-col,.foot .col{grid-column:1/-1}
}
.cta .cta-copy h2,.cta .cta-copy .lead{grid-column:auto}

/* home hero: line figure built on a grid, lines are the cells' own edges */
.hero.home .copy{grid-column:1/7}
.figure{grid-column:7/-1;position:relative;container-type:inline-size;display:grid;grid-template-columns:14fr 20fr 41fr 25fr;grid-template-rows:clamp(48px,12cqw,96px) auto auto;align-self:center}
.figure .halo{grid-column:1/-1;grid-row:3;align-self:start;justify-self:center;width:80%;height:40%;min-height:120px;margin-top:-40px;position:relative}
.figure .cell{margin:0;display:grid;gap:10px;align-content:start;position:relative;z-index:2;min-width:0}
.figure dt{font-size:clamp(48px,17cqw,128px);letter-spacing:-.05em;line-height:.9}
.figure dt em{font-style:normal;color:var(--acc)}
.figure dd{margin:0;font-size:clamp(14px,2.6cqw,17px);line-height:1.35;color:var(--fg-2)}
.figure .c1{grid-column:3/5;grid-row:2;padding:clamp(18px,4cqw,32px) 0 clamp(22px,5cqw,40px) clamp(18px,4.5cqw,36px)}
.figure .c2{grid-column:2/4;grid-row:3;padding:clamp(18px,4.5cqw,36px) 16px clamp(56px,16cqw,120px) clamp(18px,4.5cqw,36px)}
.figure .c3{grid-column:4/5;grid-row:3;padding:clamp(18px,4.5cqw,36px) 0 0 clamp(14px,3.5cqw,28px)}
.figure .c2 dt,.figure .c3 dt{font-size:clamp(38px,11cqw,84px)}
.figure .c1::before,.figure .c2::before,.figure .c3::before{content:"";position:absolute;left:-2px;top:0;bottom:0;width:4px;border-radius:2px}
.figure .c1::before{background:var(--core);box-shadow:0 0 6px color-mix(in srgb,var(--core) 50%,transparent),0 0 22px color-mix(in srgb,var(--acc-fill) 60%,transparent)}
.figure .c1::after{content:"";position:absolute;left:0;top:-2px;height:4px;width:80%;border-radius:2px;background:linear-gradient(90deg,var(--core),var(--acc-fill) 55%,transparent);box-shadow:0 0 18px color-mix(in srgb,var(--acc-fill) 45%,transparent)}
.figure .c2::before{background:linear-gradient(180deg,var(--core),var(--core) 25%,var(--acc-fill) 60%,transparent);box-shadow:0 0 18px color-mix(in srgb,var(--acc-fill) 45%,transparent)}
.figure .c3::before{width:3px;background:linear-gradient(180deg,var(--acc-fill),color-mix(in srgb,var(--acc-fill) 30%,transparent) 60%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--acc-fill) 35%,transparent)}
.figure .f-up{grid-column:3;grid-row:1;justify-self:start;width:4px;margin-left:-2px;border-radius:2px;background:linear-gradient(180deg,transparent,var(--acc-fill) 45%,var(--core));box-shadow:0 0 18px color-mix(in srgb,var(--acc-fill) 45%,transparent)}
.figure .f-h{grid-column:1/-1;grid-row:3;align-self:start;height:4px;margin-top:-2px;margin-inline:-4% -2%;position:relative;z-index:3;border-radius:2px;background:linear-gradient(90deg,transparent,var(--acc-fill) 9%,var(--core) 17%,var(--core) 70%,var(--acc-fill) 84%,transparent);box-shadow:0 0 6px color-mix(in srgb,var(--core) 40%,transparent),0 0 22px color-mix(in srgb,var(--acc-fill) 55%,transparent)}
.figure .f-h .spark{top:0;left:0}
.strip{grid-column:1/-1;margin-top:64px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.strip figure{margin:0;position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--bg-2)}
.strip img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.strip figure:hover img{transform:scale(1.05)}
.strip figcaption{position:absolute;left:0;right:0;bottom:0;padding:36px 14px 12px;font-size:15px;color:#fff;background:linear-gradient(0deg,rgba(10,10,10,.7),transparent)}

/* direction icons */
.dc .mark .ico{display:inline-flex;width:68px;height:68px;align-items:center;justify-content:center;color:var(--c);background:linear-gradient(135deg,color-mix(in srgb,var(--cf) 18%,transparent),transparent 70%);border:1px solid color-mix(in srgb,var(--cf) 40%,transparent);box-shadow:inset 0 0 18px color-mix(in srgb,var(--cf) 14%,transparent);transition:box-shadow .3s}
.dc .mark .ico svg{width:44px;height:44px;color:var(--c)}
.dc:hover .mark .ico{box-shadow:inset 0 0 24px color-mix(in srgb,var(--cf) 30%,transparent),0 0 22px color-mix(in srgb,var(--cf) 35%,transparent)}

@media (max-width:1200px){
  .hero.home .copy,.figure{grid-column:1/-1}
  .figure{margin-top:24px;max-width:720px}
  .strip{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .strip{margin-top:40px}
}
.dc .mark .ico{width:76px;height:76px}.dc .mark .ico svg{width:56px;height:56px}
@media (max-width:640px){
  .figure{grid-template-columns:5fr 13fr 40fr 42fr}
  .figure .c2{padding-right:8px}
}

/* ---- softer look: rounded shapes, gentle section blends ---- */
:root{--r-s:12px;--r-m:20px;--r-l:28px;--ease:cubic-bezier(.22,.61,.36,1)}
.btn{border-radius:999px;transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),transform .35s var(--ease)}
.btn:hover{transform:translateY(-1px)}
.icon-btn{border-radius:999px}
.top .btn{border-radius:999px}
.lang span{border-radius:999px}
.dc,.stat,.card-c,.brand,.model,.tile,.photo,.strip figure,.mosaic figure,.hero .shot{border-radius:var(--r-m)}
.photo,.strip figure{overflow:hidden}
.dc .mark .ico{border-radius:var(--r-s)}
.dc .go i,.back i{border-radius:999px}
.tile .ic{border-radius:var(--r-s)}
.cards{border:0;gap:12px}
.card-c{border:1px solid var(--line)}
.badge,.pc .tag{border-radius:999px}
.dc,.tile,.card-c,.brand,.model,.pc .photo img,.strip img{transition-duration:.5s;transition-timing-function:var(--ease)}
.dc:hover,.tile:hover{transform:translateY(-4px);box-shadow:0 18px 40px -24px color-mix(in srgb,var(--acc-fill) 60%,transparent)}
.band.alt{background:linear-gradient(180deg,var(--bg) 0,var(--bg-2) 140px,var(--bg-2) calc(100% - 140px),var(--bg) 100%)}
.cta{border-top:0!important}
footer.band{border-top:0;background:linear-gradient(180deg,var(--bg),var(--bg-2))}
.crumbs{border-bottom:0}

/* project cards as links */
a.pc{color:inherit}
.pc .photo{transition:box-shadow .5s var(--ease)}
a.pc:hover .photo{box-shadow:0 20px 40px -24px color-mix(in srgb,var(--acc-fill) 70%,transparent)}
.pc-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:auto}
.pc .ext{font-size:15px;font-weight:500;color:var(--acc);transition:transform .35s var(--ease)}
a.pc:hover .ext{transform:translateX(4px)}
.pc.more{border-radius:var(--r-m)}

/* roadmap: 3 columns x 2 rows, nodes on a soft glowing line */
.road{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px 24px}
.ms{position:relative;display:grid;gap:20px;align-content:start}
.ms::before{content:"";position:absolute;left:28px;right:-24px;top:27px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--acc-fill),color-mix(in srgb,var(--acc-fill) 25%,transparent));opacity:.8}
.ms:nth-child(3n)::before{right:0;background:linear-gradient(90deg,var(--acc-fill),transparent)}
.ms:last-child::before{display:none}
.ms .node{position:relative;z-index:1;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:2px solid color-mix(in srgb,var(--acc-fill) 55%,transparent);font-family:var(--font-mono);font-size:16px;color:var(--fg);box-shadow:0 0 0 6px var(--bg-2)}
.ms:last-child .node{background:var(--acc-fill);border-color:var(--acc-fill);color:var(--acc-on);box-shadow:0 0 0 6px var(--bg-2),0 0 28px var(--acc-fill)}
.ms .card{padding:24px;border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line);display:grid;gap:10px;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.ms .card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--acc-fill) 60%,transparent);box-shadow:0 18px 40px -24px color-mix(in srgb,var(--acc-fill) 60%,transparent)}
.ms h3{font-size:clamp(22px,1.8vw,26px);letter-spacing:-.02em;line-height:1.15}
.ms p{font-size:16px;color:var(--fg-2)}
.ms .res{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding:12px 14px;border-radius:var(--r-s);background:color-mix(in srgb,var(--acc-fill) 10%,transparent);font-size:16px;font-weight:500;color:var(--fg)}
.ms .res b{font-size:14px;font-weight:500;color:var(--acc)}

/* logos */
.logos-band .head{margin-bottom:40px}
.marquee{display:flex;overflow:hidden;gap:16px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track{list-style:none;margin:0;padding:8px 0;display:flex;gap:16px;flex:none;animation:marq 60s linear infinite}
.marquee:hover .track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(calc(-100% - 16px))}}
.chip{flex:none;width:184px;height:96px;display:flex;align-items:center;justify-content:center;padding:18px 24px;border-radius:var(--r-m);background:#FFFFFF;border:1px solid var(--line)}
.chip img{max-width:100%;max-height:56px;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .5s var(--ease),opacity .5s var(--ease)}
.chip:hover img{filter:none;opacity:1}

/* contact tiles */
.tile.full{grid-column:1/-1}
.tile .v{overflow-wrap:normal;word-break:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media (max-width:1200px){
  .road{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ms:nth-child(3n)::before{right:-24px;background:linear-gradient(90deg,var(--acc-fill),color-mix(in srgb,var(--acc-fill) 25%,transparent))}
  .ms:nth-child(2n)::before{right:0;background:linear-gradient(90deg,var(--acc-fill),transparent)}
}
@media (max-width:640px){
  .road{grid-template-columns:minmax(0,1fr);gap:16px}
  .ms{grid-template-columns:56px minmax(0,1fr);gap:16px}
  .ms::before,.ms:nth-child(n)::before{left:27px;right:auto;top:56px;bottom:-16px;width:2px;height:auto;background:linear-gradient(180deg,var(--acc-fill),color-mix(in srgb,var(--acc-fill) 25%,transparent))}
  .chip{width:150px;height:84px}
  .tile .v{white-space:normal;overflow-wrap:anywhere}
}
@media (prefers-reduced-motion:reduce){.track{animation:none}.marquee{overflow-x:auto}}

/* ---- one continuous page: no section edges, no clipped glows ---- */
body{background:
  radial-gradient(1100px 760px at 88% -6%,var(--tint-a),transparent 70%),
  radial-gradient(900px 700px at -8% 22%,var(--tint-b),transparent 70%),
  var(--bg);background-repeat:no-repeat}
.band,.band.alt,.hero,footer.band,.crumbs{background:transparent}
.hero,.cta{overflow:visible}
.halo,.figure .halo{display:none}
.dc::after,.stat::after{display:none}
.dc{overflow:visible}
.band{padding-block:96px}
.hero.home{padding-bottom:64px}
.f-h{overflow:hidden}

/* direction icons: filled rounded tile */
.dc .mark .ico{width:64px;height:64px;border:0;border-radius:18px;background:linear-gradient(140deg,var(--cf),color-mix(in srgb,var(--cf) 55%,#fff));color:#0A0A0A;box-shadow:0 10px 24px -14px var(--cf)}
.dc.robo .mark .ico{color:#fff;background:linear-gradient(140deg,var(--cf),color-mix(in srgb,var(--cf) 60%,#52D2E4))}
.dc .mark .ico svg{width:32px;height:32px;color:inherit}
.dc:hover .mark .ico{box-shadow:0 14px 30px -12px var(--cf)}
.dc::before{border-radius:var(--r-m) var(--r-m) 0 0}

/* project cards */
.photo.img{position:relative}
.go-ic{position:absolute;right:14px;top:14px;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.92);color:#0A0A0A;font-size:18px;opacity:0;transform:translateY(-4px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
a.pc:hover .go-ic,a.pc:focus-visible .go-ic{opacity:1;transform:none}
.pc .where{font-size:15px}

/* roadmap without result boxes */
.ms .card{gap:12px}
.ms p{font-size:16px;line-height:1.55}

/* logo wall aligned to the grid */
.logo-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.logo-grid li{height:112px;display:flex;align-items:center;justify-content:center;padding:20px 24px;border-radius:var(--r-m);background:#FFFFFF;border:1px solid var(--line);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.logo-grid img{max-width:100%;max-height:60px;object-fit:contain;filter:grayscale(1);opacity:.7;transition:filter .5s var(--ease),opacity .5s var(--ease)}
.logo-grid li:hover{transform:translateY(-3px);box-shadow:0 16px 32px -22px rgba(10,13,20,.45)}
.logo-grid li:hover img{filter:none;opacity:1}
@media (max-width:1200px){.logo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:640px){.logo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.logo-grid li{height:80px;padding:12px}.logo-grid img{max-height:44px}.band{padding-block:72px}}

/* WhatsApp CTA */
.wa-cta{grid-column:1/-1;position:relative;overflow:hidden;display:flex;align-items:center;gap:20px;padding:22px 22px 22px 22px;border-radius:var(--r-l);color:#0A0A0A;background:linear-gradient(120deg,var(--acc-fill),color-mix(in srgb,var(--acc-fill) 55%,#52D2E4));isolation:isolate;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
body.robo .wa-cta{color:#fff}
.wa-cta::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 140% at 100% 0%,rgba(255,255,255,.35),transparent 55%);z-index:-1}
.wa-ic{flex:none;width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.9);color:#0A0A0A}
.wa-ic .ic{width:28px;height:28px;padding:0;background:none;color:inherit}
.wa-t{display:grid;gap:2px;flex:1;min-width:0}
.wa-t b{font-weight:500;font-size:clamp(26px,2.6vw,36px);letter-spacing:-.03em;line-height:1}
.wa-t span{font-size:17px;opacity:.75}
.wa-go{flex:none;width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#0A0A0A;color:#fff;font-size:22px;transition:transform .5s var(--ease)}
.wa-cta:hover{transform:translateY(-3px);box-shadow:0 24px 50px -26px var(--acc-fill)}
.wa-cta:hover .wa-go{transform:translateX(4px)}
.tile.static{cursor:default;padding-right:22px}
.tile.static:hover{transform:none;box-shadow:none;border-color:var(--line)}

/* 300+ card in the projects rail */
.pc.more{display:flex;flex-direction:column;justify-content:space-between;gap:16px;padding:28px;border:1px solid var(--line);background:linear-gradient(160deg,color-mix(in srgb,var(--acc-fill) 18%,var(--surface)),var(--surface) 60%);color:inherit;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.pc.more:hover{transform:translateY(-4px);box-shadow:0 20px 44px -26px var(--acc-fill)}
.more-n{font-size:clamp(64px,6vw,96px);letter-spacing:-.05em;line-height:.9}
.more-n em{font-style:normal;color:var(--acc)}
.more-t{font-size:20px;line-height:1.3;letter-spacing:-.01em;max-width:18ch}
.more-logos{display:flex}
.more-logos img{width:52px;height:52px;border-radius:50%;object-fit:contain;padding:8px;background:#fff;border:2px solid var(--surface);margin-left:-10px}
.more-logos img:first-child{margin-left:0}
.more-cities{font-size:15px;color:var(--fg-3);line-height:1.5}
.more-go{display:flex;align-items:center;justify-content:space-between;font-weight:500;padding-top:14px;border-top:1px solid var(--line)}
.more-go i{font-style:normal;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--acc-fill);color:var(--acc-on)}

/* Kerneu Class page */
.hero.cls .wrap{align-items:center}
.hero.cls .copy{grid-column:1/6;display:flex;flex-direction:column;gap:28px;position:relative;z-index:2}
.hero.cls .kicker{margin:0}
.hero.cls h1{font-size:clamp(44px,5.6vw,88px)}
.aud{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.aud li{font-size:15px;padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);color:var(--fg-2)}
.duo{grid-column:7/-1;position:relative;display:grid;grid-template-columns:1fr .62fr;grid-template-rows:1fr .7fr;gap:14px;height:clamp(420px,42vw,600px)}
.duo figure{margin:0;overflow:hidden;border-radius:var(--r-l);z-index:1}
.duo img{width:100%;height:100%;object-fit:cover}
.duo .d1{grid-column:1/3;grid-row:1}
.duo .d2{grid-column:2;grid-row:2}
.duo .dl1{left:calc(61.7% - 23px);top:calc(58.8% + 7px);height:calc(41.2% + 40px);z-index:0}
.duo .dl2{left:-40px;top:calc(58.8% + 5px);width:calc(61.7% + 20px);z-index:0}
.sc-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.sc{margin:0;position:relative;overflow:hidden;border-radius:var(--r-l);aspect-ratio:3/4;background:var(--bg-2)}
.sc img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.sc::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,8,14,.85),rgba(6,8,14,.15) 50%,transparent 70%)}
.sc figcaption{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:22px;display:grid;gap:6px;color:#fff}
.sc b{font-weight:500;font-size:clamp(22px,1.9vw,28px);letter-spacing:-.02em;line-height:1.1}
.sc figcaption span{font-size:16px;opacity:.8}
.sc:hover img{transform:scale(1.05)}
.lego{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center}
.lego-ph{grid-column:1/7;margin:0;border-radius:var(--r-l);overflow:hidden;background:#EAF3F7}
.lego-ph img{width:100%;height:auto}
.lego-tx{grid-column:8/-1;display:flex;flex-direction:column;gap:24px;align-items:flex-start}
@media (max-width:1200px){
  .hero.cls .copy,.duo{grid-column:1/-1}
  .duo{margin-top:24px}
  .sc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .lego-ph,.lego-tx{grid-column:1/-1}
}
@media (max-width:640px){
  .duo{height:420px}
  .duo .dl1,.duo .dl2{display:none}
  .sc{aspect-ratio:4/5}
  .wa-cta{padding:18px;gap:14px}
  .wa-ic{width:48px;height:48px}
  .wa-go{width:44px;height:44px}
}
.duo .d-stat{grid-column:1;grid-row:2;border-radius:var(--r-l);padding:24px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;background:linear-gradient(150deg,color-mix(in srgb,var(--acc-fill) 30%,var(--surface)),var(--surface) 70%);border:1px solid var(--line)}
.duo .d-stat b{font-weight:400;font-size:clamp(56px,5vw,88px);letter-spacing:-.05em;line-height:.9;color:var(--acc)}
.duo .d-stat span{font-size:17px;color:var(--fg-2);max-width:20ch}

/* WhatsApp CTA: calm ink card, brand purple only as accent */
.wa-cta,body.robo .wa-cta{color:#fff;background:#12101C;border:1px solid rgba(167,125,255,.35)}
.wa-cta::after{background:radial-gradient(60% 140% at 0% 50%,rgba(167,125,255,.28),transparent 70%)}
body.lab .wa-cta{border-color:rgba(82,210,228,.35)}
body.lab .wa-cta::after{background:radial-gradient(60% 140% at 0% 50%,rgba(82,210,228,.22),transparent 70%)}
body.robo .wa-cta{background:#06122E;border-color:rgba(0,110,194,.5)}
body.robo .wa-cta::after{background:radial-gradient(60% 140% at 0% 50%,rgba(0,110,194,.35),transparent 70%)}
.wa-ic{background:var(--acc-fill);color:var(--acc-on)}
.wa-t span{opacity:.6}
.wa-go{background:#fff;color:#0A0A0A}
.wa-cta:hover{border-color:var(--acc-fill);box-shadow:0 24px 50px -28px var(--acc-fill)}

/* partners */
.pstats{display:flex;gap:32px;flex-wrap:wrap}
.pstats div{display:grid;gap:4px}
.pstats b{font-weight:400;font-size:clamp(36px,3.4vw,52px);letter-spacing:-.04em;line-height:1}
.pstats b em{font-style:normal;color:var(--acc)}
.pstats span{font-size:15px;color:var(--fg-3);max-width:14ch}
.logo-grid li{height:104px}
.clients-all{margin-top:24px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.clients-all summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:22px 24px;font-size:19px;font-weight:500}
.clients-all summary::-webkit-details-marker{display:none}
.clients-all summary i{font-style:normal;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--acc-fill);color:var(--acc-on);font-size:22px;transition:transform .4s var(--ease)}
.clients-all[open] summary i{transform:rotate(45deg)}
.cgrid{columns:4 220px;column-gap:32px;padding:0 24px 24px}
.cg{break-inside:avoid;margin-bottom:24px}
.cg b{display:flex;align-items:center;gap:8px;font-weight:500;font-size:17px;margin-bottom:8px}
.cg b span{font-size:13px;font-family:var(--font-mono);padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--acc-fill) 18%,transparent);color:var(--acc)}
.cg ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cg li{font-size:15px;color:var(--fg-2);line-height:1.35}

/* logos: full colour at rest, brand purple on hover */
.logo-grid img{filter:none;opacity:1}
.logo-grid li{transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease)}
.logo-grid li:hover{border-color:#A77DFF;box-shadow:0 16px 34px -20px rgba(167,125,255,.8)}
.logo-grid li:hover img{filter:url(#logo-purple);opacity:1}

/* WhatsApp mark: white glyph on WhatsApp green */
.wa-ic{background:#25D366;color:#fff;box-shadow:0 8px 20px -10px rgba(37,211,102,.8)}
.wa-ic .ic{width:30px;height:30px}
.tile .ic[viewBox="0 0 24 24"]{stroke-width:1.8}

/* direction cards with photos */
.dc{padding:0;overflow:hidden;gap:0}
.dc::before{display:none}
.dc-ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-2)}
.dc-ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.dc:hover .dc-ph img{transform:scale(1.05)}
.dc-chip{position:absolute;left:16px;top:16px;font-size:14px;padding:6px 12px;border-radius:999px;background:rgba(10,10,10,.6);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.dc h3,.dc .who,.dc p{padding-inline:24px}
.dc h3{padding-top:22px}
.dc .who{padding-top:8px}
.dc p{padding-top:8px}
.dc .go{margin:20px 24px 24px;padding-top:16px}

/* brands block on Class */
.brand2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.b2{display:grid;grid-template-rows:auto 1fr;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.b2 figure{margin:0;aspect-ratio:16/9;overflow:hidden;background:#EAF3F7}
.b2 figure img{width:100%;height:100%;object-fit:cover}
.b2 figure.contain{background:#fff}
.b2 figure.contain img{object-fit:contain;padding:16px}
.b2-tx{padding:24px;display:grid;gap:10px;align-content:start}
.b2-tx p{color:var(--fg-2)}

/* robots: quadrupeds + humanoids */
.robo2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.r2{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--surface);display:grid}
.r2 figure{margin:0;aspect-ratio:16/10;overflow:hidden;background:var(--bg-2)}
.r2 figure img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.r2:hover figure img{transform:scale(1.04)}
.r2-tx{padding:24px;display:grid;gap:8px}
.r2-k{font-size:15px;font-weight:500;color:var(--acc)}
.r2-tx h3{font-size:clamp(28px,2.6vw,40px);letter-spacing:-.03em}
.r2-tx p{color:var(--fg-2)}

/* development list */
.dev{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dev article{padding:24px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface);display:grid;gap:12px;align-content:start}
.dev-n{font-family:var(--font-mono);font-size:15px;color:var(--acc)}
.dev p{color:var(--fg-2);font-size:16px}
.sc-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.duo .white{background:#fff}
.duo .white img{object-fit:contain}
@media (max-width:1200px){.dev{grid-template-columns:repeat(2,minmax(0,1fr))}.sc-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.brand2,.robo2,.dev,.sc-grid.three{grid-template-columns:minmax(0,1fr)}}

/* positioning line on home */
.hero .kicker.pos{margin-bottom:20px}

/* request form (replaces WhatsApp/call tiles) */
.cta-contacts{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:14px;color:var(--fg-2);font-size:18px}
.cta-contacts a{border-bottom:1px solid var(--line-2)}
.cta-contacts a:hover{color:var(--acc);border-color:var(--acc)}
.req{grid-column:7/-1;display:grid;gap:14px;padding:28px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line)}
.req-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.req label{display:grid;gap:6px;font-size:14px;color:var(--fg-3)}
.req input,.req select,.req textarea{font:inherit;font-size:17px;color:var(--fg);background:var(--bg);border:1px solid var(--line-2);border-radius:var(--r-s);padding:12px 14px;width:100%;min-width:0;transition:border-color .2s}
.req textarea{resize:vertical;min-height:110px}
.req input:focus,.req select:focus,.req textarea:focus{outline:none;border-color:var(--acc-fill);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc-fill) 25%,transparent)}
.req [aria-invalid="true"]{border-color:#E5484D}
.req .btn{justify-self:start;border:0;cursor:pointer;font:inherit}
.req .btn[disabled]{opacity:.6;cursor:progress}
.req .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.req-note{font-size:16px;min-height:1.2em}
.req-note.ok{color:var(--acc)}
.req-note.err{color:#E5484D}
.req-fine{font-size:14px;line-height:1.45;color:var(--fg-3)}
@media (max-width:1200px){.req{grid-column:1/-1;margin-top:24px}}
@media (max-width:640px){.req{padding:20px}.req-row{grid-template-columns:minmax(0,1fr)}}

/* customers map */
.cmap-h{margin-top:56px;margin-bottom:20px}
.cmap{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:24px;align-items:start}
.cmap-stage{position:relative;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden}
.cmap-svg{position:absolute;inset:0;width:100%;height:100%}
.cmap-svg .grat path{stroke:var(--line);stroke-width:1;fill:none}
.cmap-svg .kz{fill:color-mix(in srgb,var(--acc-fill) 14%,transparent);stroke:color-mix(in srgb,var(--acc-fill) 70%,transparent);stroke-width:2;stroke-linejoin:round}
.cmap-cap{position:absolute;left:16px;bottom:12px;font-size:12px;color:var(--fg-3)}
.pin{position:absolute;transform:translate(-50%,-50%);padding:0;border:0;background:none;cursor:pointer;color:var(--fg);font:inherit;display:flex;align-items:center;justify-content:center}
.pin i{display:block;width:var(--s);height:var(--s);border-radius:50%;background:var(--acc-fill);box-shadow:0 0 0 4px color-mix(in srgb,var(--acc-fill) 25%,transparent);transition:transform .3s var(--ease),box-shadow .3s}
.pin span{position:absolute;white-space:nowrap;font-size:13px;line-height:1;padding:4px 7px;border-radius:999px;background:var(--surface);border:1px solid var(--line);pointer-events:none}
.pin span b{font-weight:500;color:var(--acc)}
.pin.r span{left:calc(100% + 6px)}
.pin.l span{right:calc(100% + 6px)}
.pin.b span{top:calc(100% + 6px)}
.pin:hover i,.pin[aria-pressed="true"] i{transform:scale(1.25);box-shadow:0 0 0 6px color-mix(in srgb,var(--acc-fill) 35%,transparent)}
.pin[aria-pressed="true"] span{border-color:var(--acc-fill)}
.cmap-panel{display:grid;gap:16px;padding:24px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface)}
.cmap-k{font-size:15px;color:var(--fg-3)}
.cchips{display:flex;flex-wrap:wrap;gap:6px}
.cchip{font:inherit;font-size:14px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-2);background:none;color:var(--fg-2);cursor:pointer}
.cchip b{font-weight:500;color:var(--acc)}
.cchip[aria-pressed="true"]{background:var(--acc-fill);border-color:var(--acc-fill);color:var(--acc-on)}
.cchip[aria-pressed="true"] b{color:inherit}
.clist h3{font-size:clamp(22px,1.9vw,28px);letter-spacing:-.02em;margin-bottom:12px}
.clist h3 span{font-size:15px;color:var(--fg-3);letter-spacing:0;margin-left:6px}
.clist ul{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:8px}
.clist li{padding:7px 12px;border-radius:10px;background:color-mix(in srgb,var(--fg) 5%,transparent);border:1px solid var(--line);font-size:14px;line-height:1.3;color:var(--fg-2)}
.clist:not(.all) li:nth-child(n+9){display:none}
.cl-more{margin-top:14px;font:inherit;font-size:15px;font-weight:500;padding:0;border:0;background:none;color:var(--acc);cursor:pointer}
.cl-more:hover{text-decoration:underline}
.clist.all .cl-o,.clist:not(.all) .cl-c{display:none}
@media (max-width:1200px){.cmap{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.pin:not(.big) span{display:none}.pin span{font-size:11px}}

/* trust block */
.trust{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.tr{display:grid;grid-template-rows:auto 1fr;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface);overflow:hidden;transition:transform .5s var(--ease),border-color .3s}
a.tr:hover{transform:translateY(-3px);border-color:var(--acc-fill)}
.tr figure{margin:0;height:180px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.tr.cert figure img{height:100%;width:100%;object-fit:contain;padding:10px}
.tr .logo-f img{max-height:64px;max-width:70%;object-fit:contain}
.tr>div{padding:16px 18px;display:grid;gap:4px}
.tr b{font-weight:500;font-size:18px}
.tr span{font-size:14px;color:var(--fg-3)}
@media (max-width:1200px){.trust{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.trust{grid-template-columns:repeat(2,minmax(0,1fr))}.tr figure{height:130px}}

/* image labels on renders and illustrations */
.sc-tag{position:absolute;top:14px;left:14px;z-index:2;font-size:12px;padding:5px 10px;border-radius:999px;background:rgba(6,8,14,.6);color:#fff;backdrop-filter:blur(6px)}

/* brands with expandable details */
.brand2.three{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.b2 figure.rev{display:flex;align-items:center;justify-content:center}
details.more{border-top:1px solid var(--line);margin-top:6px}
details.more summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:14px 0 4px;font-weight:500;color:var(--acc)}
details.more summary::-webkit-details-marker{display:none}
details.more summary i{font-style:normal;font-size:22px;transition:transform .3s var(--ease)}
details.more[open] summary i{transform:rotate(45deg)}
details.more dl{margin:10px 0 0;display:grid;gap:12px}
details.more dt{font-size:15px;font-weight:500;color:var(--acc)}
details.more dd{margin:2px 0 0;color:var(--fg-2);font-size:16px}
@media (max-width:1200px){.brand2.three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.brand2.three{grid-template-columns:minmax(0,1fr)}}

/* Kerneu cases, audiences, research */
.kcases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.kc{border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.kc figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.kc figure img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.kc:hover figure img{transform:scale(1.04)}
.kc-tx{padding:22px;display:grid;gap:8px}
.kc-n{font-family:var(--font-mono);font-size:14px;color:var(--acc)}
.kc-tx p{color:var(--fg-2);font-size:16px}
.kc-tx .kc-k{font-size:14px;color:var(--fg-3)}
.aud2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.aud2 article{padding:28px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);display:grid;gap:12px;align-content:start}
.aud2 ul,.r2.txt ul,.sector ul{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:10px;color:var(--fg-2);font-size:16px}
.aud2 li,.r2.txt li,.sector li{position:relative;padding-left:20px}
.aud2 li::before,.r2.txt li::before,.sector li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:50%;background:var(--acc-fill)}
.nv{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.nv figure{margin:0;min-height:320px}
.nv figure img{width:100%;height:100%;object-fit:cover}
.nv-tx{padding:clamp(24px,3vw,44px);display:grid;gap:14px;align-content:center}
.nv-tx p{color:var(--fg-2)}
.papers{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.paper{padding:24px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface);display:grid;gap:10px;align-content:start;transition:border-color .3s,transform .5s var(--ease)}
.paper:hover{border-color:var(--acc-fill);transform:translateY(-3px)}
.pp-k{font-size:15px;font-weight:500;color:var(--acc)}
.paper p{color:var(--fg-2);font-size:16px}
.pp-go{color:var(--acc);font-size:15px}
@media (max-width:1200px){.kcases,.papers{grid-template-columns:repeat(2,minmax(0,1fr))}.nv{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.kcases,.papers,.aud2{grid-template-columns:minmax(0,1fr)}}

/* robotics: sectors, platforms, models */
.sectors{display:grid;gap:16px}
.sector{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.sector:nth-child(even) figure{order:2}
.sector figure{margin:0;min-height:300px;background:var(--bg-2)}
.sector figure img{width:100%;height:100%;object-fit:cover}
.sector figure.white,.r2 figure.white{background:#fff}
.sector figure.white img,.r2 figure.white img{object-fit:contain;padding:20px}
.sector-tx{padding:clamp(24px,3vw,40px);display:grid;gap:12px;align-content:center}
.sector-tx>p{color:var(--fg-2)}
a.r2 .link{margin-top:4px;color:var(--acc)}
a.r2:hover{border-color:var(--acc-fill)}
.mgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.r2.txt{align-content:center;background:linear-gradient(150deg,color-mix(in srgb,var(--acc-fill) 22%,var(--surface)),var(--surface) 70%)}
a.d-stat{color:inherit}
.duo figure.white a{display:block;height:100%}
.duo figure.white img{object-fit:contain;padding:16px}
.case{max-width:900px;display:grid;gap:18px}
.bizlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bizlist li{padding:22px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface);display:grid;gap:6px}
.bizlist b{font-weight:500;font-size:19px}
.bizlist span{color:var(--fg-2);font-size:16px}
@media (max-width:1200px){.mgrid,.bizlist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.sector,.mgrid,.bizlist{grid-template-columns:minmax(0,1fr)}.sector:nth-child(even) figure{order:0}.sector figure{min-height:220px}}
.pin.lo span{top:55%}
@media (max-width:640px){.pin span,.cmap-cap{display:none}.pin i{width:calc(var(--s)*.55);height:calc(var(--s)*.55);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc-fill) 25%,transparent)}}

.icon-btn{font:inherit}
.tr .photo-f img{width:100%;height:100%;object-fit:contain;padding:8px}

/* 3D view of a class: switch angles, slow camera drift on the active one */
.tour{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}
.tour-stage{position:relative;aspect-ratio:16/9;border-radius:var(--r-l);overflow:hidden;background:var(--bg);border:1px solid var(--line);touch-action:pan-y}
.tour-v{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .9s var(--ease)}
.tour-v.on{opacity:1}
.tour-v img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.tour-v.on img{animation:tour-drift 12s var(--ease) both}
@keyframes tour-drift{from{transform:scale(1.04) translate(-1.5%,0)}to{transform:scale(1.14) translate(1.5%,-1%)}}
.tour-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;background:rgba(6,8,14,.55);color:#fff;border-color:rgba(255,255,255,.25)}
.tour-nav.prev{left:14px}
.tour-nav.next{right:14px}
.tour-tabs{display:grid;gap:10px;align-content:start}
.tour-t{font:inherit;color:var(--fg);text-align:left;cursor:pointer;display:grid;gap:4px;padding:16px 18px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface);transition:border-color .3s}
.tour-t b{font-weight:500;font-size:19px}
.tour-t span:last-child{font-size:15px;color:var(--fg-2)}
.tour-t[aria-pressed="true"]{border-color:var(--acc-fill);box-shadow:inset 3px 0 0 var(--acc-fill)}
@media (max-width:1200px){.tour{grid-template-columns:minmax(0,1fr)}.tour-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.tour-tabs{grid-template-columns:minmax(0,1fr)}.tour-t span:last-child{display:none}}
@media (prefers-reduced-motion:reduce){.tour-v.on img{animation:none}}

.lab-shots{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.lab-shots figure{margin:0;position:relative;border-radius:var(--r-l);overflow:hidden;aspect-ratio:16/10}
.lab-shots img{width:100%;height:100%;object-fit:cover}
.lab-shots figcaption{position:absolute;left:16px;bottom:16px;font-size:15px;padding:6px 12px;border-radius:999px;background:rgba(6,8,14,.6);color:#fff}
@media (max-width:640px){.lab-shots{grid-template-columns:minmax(0,1fr)}}

/* language switch: links in header, drawer and footer */
.lang a{padding:6px 8px;color:var(--fg-3);border-radius:999px;text-decoration:none}
.lang a:hover{color:var(--fg)}
.lang [aria-current]{border-radius:999px}
.drawer .lang.dl{display:flex;margin-top:12px;padding-top:16px;border-top:1px solid var(--line)}
.drawer .lang.dl a,.drawer .lang.dl span{font-size:16px;padding:8px 12px;letter-spacing:0}
.foot .lang.fl{display:flex}
.foot .lang.fl a,.foot .lang.fl span{font-size:14px}
@media (min-width:1201px){.drawer .lang.dl{display:none}}
/* long hero titles (direction pages, all languages) */
.hero h1.h1.long{font-size:clamp(32px,4vw,58px);line-height:1.06;overflow-wrap:break-word}
@media (max-width:560px){.row-btns .btn{white-space:normal;text-align:center;justify-content:center;max-width:100%;line-height:1.25;padding-block:12px}}

/* OrionStar models */
.om-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px}
.om-nav a{padding:10px 16px;border-radius:999px;border:1px solid var(--line);color:var(--fg-2);font-size:15px;text-decoration:none}
.om-nav a:hover{color:var(--fg);border-color:var(--fg-3)}
.om-group,.b2,[id]{scroll-margin-top:96px}
.om-group+.om-group{margin-top:56px}
.om-h{margin-bottom:20px}
.om-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.om{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.om figure{margin:0;background:#fff;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center}
.om figure img{width:100%;height:100%;object-fit:contain;padding:16px}
.om-tx{padding:22px;display:grid;gap:10px;align-content:start}
.om-tx h4{margin:0}
.om-tx p{color:var(--fg-2);font-size:16px}
.om-tx .om-who{color:var(--fg)}
.om-sp{margin:6px 0 0;display:grid;gap:0;border-top:1px solid var(--line)}
.om-sp div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px}
.om-sp dt{color:var(--fg-3)}
.om-sp dd{margin:0}
.om-foot{margin-top:24px;color:var(--fg-2);font-size:16px;max-width:760px}
.duo figure{position:relative}
@media (max-width:1200px){.om-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.om-grid{grid-template-columns:minmax(0,1fr)}.om-sp div{grid-template-columns:minmax(0,1fr);gap:2px}}

/* virtual rooms: hub cards and "view in 3D" buttons on room cards */
.vr-hero .lead{max-width:60ch;margin-top:18px}
.vr-how{list-style:none;margin:32px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.vr-how li{display:flex;align-items:center;gap:12px;padding:12px 18px;border:1px solid var(--line);background:var(--surface);font-size:16px}
.vr-how b{font-family:"JetBrains Mono",monospace;font-weight:500;color:var(--acc)}
.vc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.vc{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);overflow:hidden;transition:border-color .25s,transform .25s}
.vc:hover{border-color:var(--acc);transform:translateY(-3px)}
.vc figure{margin:0;position:relative;aspect-ratio:16/10;background:var(--bg-2);overflow:hidden}
.vc img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.vc:hover img{transform:scale(1.04)}
.vc-tx{display:flex;flex-direction:column;gap:10px;padding:22px;flex:1}
.vc-tx p{font-size:16px;color:var(--fg-2)}
.vc-var{font-size:14px;color:var(--fg-3)}
.vc .go{margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:10px;border-top:1px solid var(--line);font-size:16px;font-weight:500}
.vc .go svg{width:22px;height:22px;color:var(--acc)}
.vc .go i{margin-left:auto;font-style:normal;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--acc-fill,var(--acc));color:var(--acc-on,#0A0A0A);transition:transform .2s}
.vc:hover .go i{transform:translateX(4px)}
.vr-notes{max-width:860px}
.vr-notes ul{margin:16px 0 0;padding-left:20px;display:grid;gap:10px;color:var(--fg-2);font-size:16px}
.vr-notes a{text-decoration:underline;text-underline-offset:3px}
.sc-3d{justify-self:start;margin-top:8px;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;font-size:15px;font-weight:500;color:#fff;background:rgba(6,8,14,.55);border:1px solid rgba(255,255,255,.35);backdrop-filter:blur(6px);transition:background .2s,border-color .2s}
.sc-3d svg{width:18px;height:18px}
.sc-3d:hover,.sc-3d:focus-visible{background:rgba(6,8,14,.8);border-color:#fff}
.tour-3d{margin-top:20px}
.vc-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.vc-grid.four .vc-tx{padding:18px}
@media (max-width:1200px){.vc-grid,.vc-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.vc-grid,.vc-grid.four{grid-template-columns:minmax(0,1fr)}.vc-tx{padding:18px}}
.vr-promo{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.vr-promo-ph{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;border:1px solid var(--line);background:var(--bg-2)}
.vr-promo-ph img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease)}
.vr-promo-ph:hover img{transform:scale(1.04)}
.vr-promo-tx{display:grid;gap:18px;justify-items:start}
@media (max-width:860px){.vr-promo{grid-template-columns:minmax(0,1fr)}}

/* brands: one card format — logo, name, status, certificate link */
.trust .tr{position:relative;display:flex;flex-direction:column}
.tr-logo{height:120px;background:#fff;display:flex;align-items:center;justify-content:center;padding:20px}
.tr-logo img{max-height:52px;max-width:78%;object-fit:contain}
.tr-logo .wm{font-family:"Onest",sans-serif;font-weight:600;font-size:26px;letter-spacing:.06em;color:#111}
.tr-logo .wm.rev{letter-spacing:-.01em;font-size:24px}
.tr-tx{padding:16px 18px;display:flex;flex-direction:column;gap:6px;flex:1}
.tr-tx h3{font-weight:500;font-size:18px;margin:0}
.tr-main{color:inherit}
.tr-main::after{content:"";position:absolute;inset:0;border-radius:inherit}
.tr-tx p{font-size:14px;color:var(--fg-2)}
.tr-cert{position:relative;z-index:1;align-self:flex-start;font-size:14px;color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.tr-go{margin-top:auto;padding-top:10px;font-size:14px;font-weight:500;color:var(--fg)}
.trust .tr:hover{transform:translateY(-3px);border-color:var(--acc-fill)}
.tr-main:focus-visible{outline:none}
.trust .tr:has(.tr-main:focus-visible){outline:2px solid var(--acc-fill);outline-offset:3px}
/* e-mail with copy button */
.mailrow{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.copy{font:inherit;font-size:13px;padding:3px 10px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--fg-2);cursor:pointer}
.copy:hover{color:var(--fg);border-color:var(--fg-3)}
/* project cards open a case dialog */
.pc{color:inherit;cursor:pointer}
.pc .photo.logo{background:#fff;display:flex;align-items:center;justify-content:center}
.pc .photo.logo img{width:auto;max-width:60%;max-height:45%;object-fit:contain}
.pc-more{margin-top:auto;font-size:15px;font-weight:500;color:var(--acc)}
.case-d{width:min(760px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);color:var(--fg);overflow:auto}
.case-d::backdrop{background:rgba(6,8,14,.6)}
.case-d figure{margin:0;aspect-ratio:16/9;background:var(--bg-2)}
.case-d figure img{width:100%;height:100%;object-fit:cover}
.case-d figure.logo{background:#fff;display:flex;align-items:center;justify-content:center}
.case-d figure.logo img{width:auto;max-width:50%;max-height:40%;object-fit:contain}
.case-x{position:absolute;top:12px;right:12px;z-index:1;font-size:22px;background:var(--surface)}
.case-tx{padding:24px;display:grid;gap:10px}
.case-tx .where{font-size:15px;color:var(--fg-3)}
.case-k{font-size:14px;font-weight:500;color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em;margin-top:6px}
.case-tx p{color:var(--fg-2);font-size:17px}
.case-foot{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:10px}
/* model cards: quote button, version tables */
.om-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.om-kp{min-height:42px!important;padding:0 16px!important;font-size:15px!important}
.um-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.um figure{position:relative;aspect-ratio:16/10;background:var(--bg-2)}
.um figure img{object-fit:cover;padding:0}
.um figure.white{background:#fff}
.um figure.white img{object-fit:contain;padding:16px}
.um-dev{margin-top:4px}
.vt-wrap{overflow-x:auto;margin-top:6px}
.vt{width:100%;border-collapse:collapse;font-size:14px}
.vt caption{text-align:left;font-size:14px;color:var(--fg-3);padding-bottom:8px}
.vt th,.vt td{padding:8px 10px 8px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.vt thead th{font-weight:500;color:var(--fg)}
.vt tbody th{font-weight:400;color:var(--fg-3);width:38%}
/* robotics: two brands on the first screen */
.duo .d-stat.brands2{gap:14px;justify-content:center}
.d-stat.brands2 a{display:grid;gap:2px;color:inherit}
.duo .d-stat.brands2 b{font-size:clamp(28px,2.6vw,40px);line-height:1}
.duo .d-stat.brands2 span{font-size:15px}
.duo figure.white{background:#fff}
.duo figure.white img{object-fit:contain}
.sector-case{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:15px;color:var(--fg-2)}
@media (max-width:860px){.um-grid{grid-template-columns:minmax(0,1fr)}}

:root{--c-edu:#6E45D9;--c-exh:#007C88;--c-robo:#006EC2;--c-furn:#A8520E;--f-edu:#A77DFF;--f-exh:#52D2E4;--f-robo:#006EC2;--f-furn:#E8833A}
:root[data-theme="dark"]{--c-edu:#A77DFF;--c-exh:#52D2E4;--c-robo:#69B4FF;--c-furn:#F2A366}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--c-edu:#A77DFF;--c-exh:#52D2E4;--c-robo:#69B4FF;--c-furn:#F2A366}}
body.exh{--acc:var(--c-exh);--acc-fill:var(--f-exh);--acc-on:#0A0A0A}
body.furn{--acc:var(--c-furn);--acc-fill:var(--f-furn);--acc-on:#0A0A0A}
.kicker{font-size:18px;font-weight:500;color:var(--acc)}

.nav{align-items:center;gap:28px}
.nav-dd{position:relative}
.nav-dd-b{font:inherit;font-size:16px;color:var(--fg-2);background:none;border:0;border-bottom:2px solid transparent;padding:8px 0;cursor:pointer;display:inline-flex;align-items:center;gap:8px;transition:color .2s}
.nav-dd-b:hover,.nav-dd-b[aria-expanded="true"]{color:var(--fg)}
.nav-dd-b i{width:7px;height:7px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .25s var(--ease)}
.nav-dd-b[aria-expanded="true"] i{transform:translateY(1px) rotate(225deg)}
.nav-dd[data-current] .nav-dd-b{color:var(--fg);border-bottom-color:var(--acc-fill)}
.nav-dd-p{position:absolute;top:calc(100% + 16px);left:-24px;width:600px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:0 24px 60px -30px rgba(0,0,0,.45);z-index:60}
.nav .nav-dd-p a{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:4px;padding:14px 16px;border-radius:var(--r-m);border:0;white-space:normal;color:var(--fg)}
.nav .nav-dd-p a:hover,.nav .nav-dd-p a[aria-current="page"]{background:var(--bg-2)}
.dd-n{grid-row:span 2;font-style:normal;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--acc)}
.nav-dd-p b{font-weight:500;font-size:15px;line-height:1.3}
.nav-dd-p span{font-size:14px;line-height:1.35;color:var(--fg-3)}
.drawer .dr-k{font-size:15px;color:var(--fg-3);margin-top:4px}
.drawer .dr-sol{display:grid;gap:2px;padding-bottom:12px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.drawer .dr-sol a{font-size:19px;line-height:1.3;letter-spacing:-.01em;padding-block:8px}
.drawer .dr-sol a[aria-current="page"]{color:var(--acc)}
.drawer .btn{justify-self:start;margin-top:12px;font-size:16px;letter-spacing:0;padding-block:0}

.hx{padding-block:64px 88px}
.hx .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center}
.hx-copy{grid-column:1/7;display:grid;gap:28px;align-content:center}
.hx h1{font-size:clamp(42px,5vw,80px);line-height:1.02;letter-spacing:-.04em;max-width:13ch}
.hx .lead{max-width:46ch}
.hx .row-btns{margin-top:12px}
.hx-ph{grid-column:7/-1;margin:0}
.hx-ph img{width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;border-radius:var(--r-l)}
.hx-ph figcaption,.dh-ph figcaption,.fh-ph figcaption{margin-top:12px;font-size:15px;color:var(--fg-3)}

.exh-art{display:block;width:100%;height:100%;color:var(--c)}
.exh-art .ea{fill:none;stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.exh-art .ea2{opacity:.5}
.dg-n{font-family:var(--font-mono);font-size:14px;color:var(--c,var(--acc))}

.vp-band{padding-block:24px 72px}
.vp{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:center;padding:20px 48px 20px 20px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line)}
.vp-ph{position:relative;display:block;border-radius:var(--r-m);overflow:hidden}
.vp-ph img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;transition:transform .9s var(--ease)}
.vp-ph:hover img{transform:scale(1.03)}
.vp-tx{display:grid;gap:20px;justify-items:start}
.vp .h2{font-size:clamp(30px,3.2vw,48px)}


.sub-h{font-size:clamp(22px,1.9vw,28px);letter-spacing:-.02em;line-height:1.2;margin:0 0 20px}
.st+.sub-h{margin-top:72px}
.st{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.st-c{display:grid;grid-template-columns:220px minmax(0,1fr);border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden}
.st-logo{display:flex;align-items:center;justify-content:center;padding:28px;background:#fff}
.st-logo.dk{background:#2E3440}
.st-logo img{max-width:100%;max-height:56px;object-fit:contain}
.st-tx{padding:28px;display:flex;flex-direction:column;gap:10px}
.st-tx h3{font-size:20px;font-weight:500;letter-spacing:-.01em;line-height:1.3}
.st-tx p{font-size:15px;color:var(--fg-3)}
.st-btns{margin-top:auto;padding-top:10px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.st-btns .btn{min-height:46px;padding:0 20px;font-size:15px}
.bf{display:flex;flex-wrap:wrap;gap:8px}
.bf-b{font:inherit;font-size:15px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:none;color:var(--fg-2);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.bf-b:hover{color:var(--fg);border-color:var(--fg-3)}
.bf-b[aria-pressed="true"]{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.bg-wm{font-family:"Onest",sans-serif;font-weight:600;font-size:24px;letter-spacing:.01em;color:#111}
.bg-note{margin-top:16px;font-size:15px;color:var(--fg-3);max-width:80ch}

.logo-grid .lg-a{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.logo-grid li:has(.lg-a){cursor:pointer}
.logo-grid li:has(.lg-a:focus-visible){outline:2px solid var(--acc-fill);outline-offset:3px}
.logo-grid .lg-a:focus-visible{outline:none}

#geo .cmap{margin-top:0}
.cl-k{font-size:15px;color:var(--fg-3);margin:18px 0 8px}
.cl-p{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.cl-p a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--acc-fill);color:var(--fg);font-size:15px;transition:background .2s}
.cl-p a:hover{background:color-mix(in srgb,var(--acc-fill) 18%,transparent)}

.cat{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.cat-c{display:flex;flex-direction:column;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden}
.cat-cv{display:flex;align-items:center;justify-content:center;height:280px;padding:20px;background:var(--bg-2)}
.cat-cv img{max-height:100%;max-width:100%;object-fit:contain;border-radius:6px;box-shadow:0 12px 30px -16px rgba(0,0,0,.5)}
.cat-tx{flex:1;display:flex;flex-direction:column;gap:12px;padding:24px}
.cat-tx h3{font-size:22px;font-weight:500;letter-spacing:-.015em}
.cat-tx>p{font-size:16px;color:var(--fg-2)}
.cat-m{display:flex;flex-wrap:wrap;gap:8px 24px;margin:4px 0 0}
.cat-m div{display:grid;gap:2px}
.cat-m dt{font-size:13px;color:var(--fg-3)}
.cat-m dd{margin:0;font-size:15px}
.cat-b{margin-top:auto;padding-top:12px;display:flex;flex-wrap:wrap;gap:10px}
.cat-b .btn,.cat-rq .btn{min-height:46px;padding:0 20px;font-size:15px}
.cat-rq{list-style:none;margin:0;padding:0;display:grid;gap:20px}
.cat-rq li{display:grid;gap:8px;justify-items:start;padding-top:20px;border-top:1px solid var(--line)}
.cat-rq li:first-child{padding-top:0;border-top:0}
.cat-rq b{font-weight:500;font-size:17px}
.cat-rq span{font-size:15px;color:var(--fg-2)}

.cta-att{font-size:15px;color:var(--fg-3);max-width:44ch}

.foot .col.sol{grid-column:span 3}
.foot .col a{line-height:1.35}

.dh,.fh{padding-block:56px 88px}
.dh .wrap,.fh .wrap{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center}
.dh-copy,.fh-copy{grid-column:1/7;display:grid;gap:24px;align-content:center}
.dh-copy .lead,.fh-copy .lead{max-width:48ch}
.dh-copy .aud{margin:0}
.dh-ph,.fh-ph{grid-column:7/-1;margin:0;position:relative}
.dh-ph img,.fh-ph img{width:100%;height:auto;aspect-ratio:5/4;object-fit:cover;border-radius:var(--r-l)}
.dh-ph.art{aspect-ratio:5/4;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);padding:24px;color:var(--acc)}
.dh-ph.art .exh-art{color:var(--acc)}
.dh h1.h1.long,.fh h1.h1.long{font-size:clamp(34px,4.4vw,64px);line-height:1.04;overflow-wrap:break-word;hyphens:manual}

.sbs{display:grid;gap:88px}
.sb{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center;scroll-margin-top:96px}
.sb-m{grid-column:1/8;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px}
.sb-tx{grid-column:9/-1;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.sb:nth-child(even) .sb-m{grid-column:6/-1;grid-row:1}
.sb:nth-child(even) .sb-tx{grid-column:1/5;grid-row:1}
.sb-m figure{position:relative;margin:0;border-radius:var(--r-m);overflow:hidden;background:var(--bg-2)}
.sb-m .m1{aspect-ratio:4/3}
.sb-m img{width:100%;height:100%;object-fit:cover}
.sb-tx h3{font-size:clamp(26px,2.3vw,36px);line-height:1.1;letter-spacing:-.03em}
.sb-tx>p{font-size:17px;color:var(--fg-2)}
.sb-tx .sb-br{font-size:15px;color:var(--fg-3)}
.sb-tx .sb-br b{font-weight:500;color:var(--fg-2)}
.sb-3d{display:flex;flex-wrap:wrap;gap:8px}
.sb-3d .sc-3d,.stem .sc-3d{margin:0;color:var(--fg);background:transparent;border:1px solid var(--line-2);border-radius:999px;backdrop-filter:none;min-height:44px}
.sb-3d .sc-3d:hover,.stem .sc-3d:hover,.sb-3d .sc-3d:focus-visible{background:var(--bg-2);border-color:var(--fg-3)}
.sb-b{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:8px}
.stem{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px;align-items:center;padding:24px 48px 24px 24px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line)}
.stem figure{position:relative;margin:0;border-radius:var(--r-m);overflow:hidden}
.stem figure img{width:100%;aspect-ratio:16/10;object-fit:cover}
.stem-tx{display:grid;gap:18px;justify-items:start}
.stem-l{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.stem-l a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;background:var(--bg-2);font-size:15px}
.stem-l a:hover{color:var(--acc)}
.rr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.rr figure{margin:0;border-radius:var(--r-l);overflow:hidden;background:var(--bg-2)}
.rr figure img{width:100%;aspect-ratio:16/10;object-fit:cover}
.rr>div{display:grid;gap:20px;justify-items:start}

.ex2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ex-c{padding:36px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);display:grid;gap:14px;align-content:start;border-top:4px solid var(--acc-fill)}
.ex-c p{font-size:17px;color:var(--fg-2)}
.ex-ph{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ex-ph figure,.fp figure{margin:0}
.ex-ph img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-m)}
.ex-ph figcaption,.fp-c span,.fp-c figcaption{display:block;margin-top:12px;font-size:15px;color:var(--fg-2)}
.dev .link{font-size:15px}

.fx{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.fx-c{display:flex;flex-direction:column;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden;scroll-margin-top:96px}
.fx-c figure{margin:0;aspect-ratio:4/3;background:#EEF0F3;overflow:hidden}
.fx-c figure img{width:100%;height:100%;object-fit:cover}
.fx-tx{flex:1;display:flex;flex-direction:column;gap:8px;padding:22px 24px 24px}
.fx-tx h3{font-size:21px;font-weight:500;letter-spacing:-.015em;line-height:1.25}
.fx-dim{font-family:var(--font-mono);font-size:14px;color:var(--fg-2)}
.fx-b{margin-top:auto;padding-top:14px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px}
.fx-b .btn{min-height:46px;padding:0 20px;font-size:15px}
.fx-gal{margin:0;display:grid;gap:4px;background:var(--bg-2)}
.fx-gal.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.fx-gal img{width:100%;aspect-ratio:4/3;object-fit:cover}
.case-d .fx-gal{aspect-ratio:auto}
.fx-dl{display:grid;gap:10px;margin:6px 0 0}
.fx-dl div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;padding-top:10px;border-top:1px solid var(--line)}
.fx-dl dt{font-size:15px;color:var(--fg-3)}
.fx-dl dd{margin:0;font-size:16px}
.fx-src{font-size:14px;color:var(--fg-3)}
.fp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.fp-c{display:block;position:relative;color:inherit}
.fp-c img,.fp-c figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-m)}
.fp-c figure{margin:0}
.proc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;counter-reset:none}
.proc li{position:relative;padding:28px 24px;border-radius:var(--r-m);background:var(--surface);border:1px solid var(--line);display:grid;gap:10px;align-content:start}
.proc li p{font-size:16px;color:var(--fg-2)}
.proc li:not(:last-child)::after{content:"→";position:absolute;right:-14px;top:28px;width:28px;height:28px;border-radius:50%;background:var(--acc-fill);color:#0A0A0A;display:flex;align-items:center;justify-content:center;font-size:14px;z-index:1}
.fpdf{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px;align-items:center;padding:32px;border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line)}
.fpdf img{width:100%;border-radius:8px;box-shadow:0 16px 36px -18px rgba(0,0,0,.5)}
.fpdf>div{display:grid;gap:20px;justify-items:start}

.pg-h{padding-block:64px 24px}
.pg-h .wrap{display:grid;gap:24px}
.pg-h .lead{max-width:60ch}
.ab-g{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:48px}
.ab-g>div{display:grid;gap:24px}
.ab-f{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.ab-f div{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:baseline;gap:16px;padding-block:18px;border-bottom:1px solid var(--line)}
.ab-f dt{font-size:clamp(36px,3.4vw,52px);letter-spacing:-.04em;line-height:1}
.ab-f dd{margin:0;font-size:16px;color:var(--fg-2)}
.ab-d{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ab-d a{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:16px;padding-block:24px;border-bottom:1px solid var(--line);color:inherit;transition:color .2s}
.ab-d b{font-weight:400;font-size:clamp(22px,2.2vw,32px);letter-spacing:-.02em;line-height:1.15}
.ab-d i{font-style:normal;font-size:22px;transition:transform .3s var(--ease)}
.ab-d a:hover{color:var(--acc)}
.ab-d a:hover i{transform:translateX(4px)}
.ab-more{margin-top:28px;display:flex;flex-wrap:wrap;gap:16px 32px}

.rb2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.rb-c{display:flex;flex-direction:column;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden}
.rb-c figure{position:relative;margin:0;aspect-ratio:16/10;background:var(--bg-2)}
.rb-c figure.white{background:#fff}
.rb-c figure img{width:100%;height:100%;object-fit:contain;padding:20px}
.rb-tx{display:flex;flex-direction:column;gap:14px;padding:28px 32px 32px;flex:1}
.rb-tx p{font-size:17px;color:var(--fg-2)}
.rb-tx .row-btns{margin-top:auto;padding-top:8px}
.redir main{min-height:60vh;display:grid;place-items:center}
.redir .lang{display:none}

@media (max-width:1200px){
  .hx-copy,.hx-ph,.dh-copy,.dh-ph,.fh-copy,.fh-ph{grid-column:1/-1}
  .hx-ph,.dh-ph,.fh-ph{margin-top:16px}
  .hx h1{max-width:16ch}
  .st{grid-template-columns:minmax(0,1fr)}
  .cat,.fx,.fp{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sb-m,.sb-tx,.sb:nth-child(even) .sb-m,.sb:nth-child(even) .sb-tx{grid-column:1/-1;grid-row:auto}
  .vp,.stem,.rr{grid-template-columns:minmax(0,1fr);padding:20px;gap:28px}
  .proc{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proc li::after{display:none}
  .ab-g{grid-template-columns:minmax(0,1fr)}
  .foot .col.sol{grid-column:span 6}
}
@media (max-width:860px){
  .ex2,.ex-ph,.rb2{grid-template-columns:minmax(0,1fr)}
  .st-c{grid-template-columns:minmax(0,1fr)}
  .st-logo{padding:24px;min-height:110px}
}
@media (max-width:640px){
  .hx{padding-block:32px 64px}
  .hx h1{font-size:clamp(36px,10vw,48px)}
  .cat,.fx,.fp,.proc{grid-template-columns:minmax(0,1fr)}
  .sbs{gap:64px}
  .sb-m{grid-template-columns:minmax(0,1fr)}
  .sb-m .m2{display:none}
  .fpdf{grid-template-columns:minmax(0,1fr);padding:20px;gap:24px}
  .fpdf img{max-width:200px}
  .fx-dl div{grid-template-columns:minmax(0,1fr);gap:2px}
  .cchips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .cchip{min-height:44px;text-align:left;display:flex;justify-content:space-between;align-items:center}
  .ab-d a{grid-template-columns:40px minmax(0,1fr) auto}
  .foot .col.sol{grid-column:1/-1}
  .vp-band{padding-block:8px 56px}
}
.home2 .band{padding-block:64px}
.home2 .hx{padding-block:48px 64px}
.home2 .head{margin-bottom:36px}
.home2 .h2{font-size:clamp(30px,3.4vw,50px)}
.home2 .hx h1{font-size:clamp(38px,4.2vw,66px)}
.home2 .hx-ph img{aspect-ratio:4/3}
.home2 .vp-band{padding-block:16px 56px}
.home2 .vp{grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:40px;padding:14px 40px 14px 14px}
.home2 .vp .h2{font-size:clamp(32px,3.4vw,49px)}
.kpi{grid-column:1/-1;position:relative;margin:28px 0 0;padding-top:28px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter)}
.kpi-ln{position:absolute;left:0;right:0;top:0;height:2px;border-radius:2px;overflow:hidden;background:linear-gradient(90deg,var(--acc-fill),var(--core) 30%,var(--core) 60%,var(--acc-fill) 85%,transparent);box-shadow:0 0 6px color-mix(in srgb,var(--core) 40%,transparent),0 0 18px color-mix(in srgb,var(--acc-fill) 55%,transparent)}
.kpi-ln .spark{top:-1px}
.kpi div{display:flex;align-items:baseline;gap:14px;min-width:0}
.kpi dt{flex:none;font-size:clamp(32px,3vw,46px);font-weight:500;line-height:1;letter-spacing:-.04em;white-space:nowrap}
.kpi dd{margin:0;font-size:16px;line-height:1.35;color:var(--fg-2)}
.lgrid{--k:1;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 16px}
.bgrid{margin-top:24px}
.lgrid li{display:flex;min-width:0}
.lg-c{position:relative;flex:1;display:flex;align-items:center;justify-content:center;height:96px;padding:12px;border-radius:var(--r-m);color:var(--fg)}
.lg-i{flex:none;display:block;width:calc(var(--w) * 1px * var(--k));height:calc(var(--h) * 1px * var(--k));overflow:hidden;opacity:.78;transition:opacity .3s var(--ease)}
.lg-i img{display:block;width:100%;max-width:none;height:auto}
.lg-i.sil img{filter:brightness(0)}
.lg-i.tone img{filter:grayscale(1) contrast(1.1);mix-blend-mode:multiply}
:root[data-theme="dark"] .lg-i.sil img{filter:brightness(0) invert(1)}
:root[data-theme="dark"] .lg-i.tone img{filter:grayscale(1) invert(1) brightness(1.15);mix-blend-mode:screen}
.lg-a{transition:background-color .3s var(--ease)}
.lg-a:hover{background:var(--surface)}
.lg-a:hover .lg-i{opacity:1}
.lg-a:focus-visible{outline:2px solid var(--acc-fill);outline-offset:-2px}
.lgrid .bg-wm{font-weight:600;font-size:22px;letter-spacing:.01em;color:var(--fg);opacity:.78}
@media (prefers-reduced-motion:reduce){.kpi-ln .spark{display:none}}
.geo-cn{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.geo-cn li{padding:8px 16px;border:1px solid var(--line-2);border-radius:999px;font-size:15px}
.cat-nav{list-style:none;margin:24px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.cat-nav a{display:inline-flex;min-height:40px;align-items:center;padding:0 16px;border:1px solid var(--line-2);border-radius:999px;font-size:15px;color:var(--fg)}
.cat-nav a:hover{border-color:var(--acc)}
.cat-dir{padding-block:56px}
.cat-dir+.cat-dir{border-top:1px solid var(--line)}
.cat-h{display:flex;gap:14px;align-items:baseline;font-size:clamp(22px,2.2vw,30px);font-weight:500;letter-spacing:-.02em}
.cat-h .dg-n{color:var(--c-edu,var(--acc))}
.cat-dir.exh .dg-n{color:var(--c-exh,var(--acc))}.cat-dir.robo .dg-n{color:var(--c-robo,var(--acc))}.cat-dir.furn .dg-n{color:var(--c-furn,var(--acc))}
.cat-cv.ph{padding:0}
.cat-cv.ph img{width:100%;height:100%;object-fit:cover;border-radius:0;box-shadow:none}
.cat-na{margin:4px 0 0;font-size:14px;color:var(--fg-3)}
.art-empty{display:grid;gap:14px;justify-items:start;max-width:720px;padding:40px;border:1px dashed var(--line-2);border-radius:var(--r-l)}
.art-empty p{margin:0;color:var(--fg-2)}
.art-band{padding-top:24px}
.art-g{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.art-c{display:grid;gap:12px;color:var(--fg)}
.art-c img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-m)}
.art-c p{margin:0;color:var(--fg-2)}
.fp.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:1200px){
  .lgrid{--k:.95;grid-template-columns:repeat(4,minmax(0,1fr))}
  .kpi div{flex-direction:column;gap:6px}
  .art-g{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .home2 .band{padding-block:44px}
  .home2 .hx{padding-block:28px 48px}
  .home2 .head{margin-bottom:24px}
  .home2 .vp{grid-template-columns:1fr;gap:20px;padding:12px 12px 24px}
  .kpi{grid-template-columns:1fr;gap:12px;padding-top:20px;margin-top:20px}
  .kpi div{flex-direction:row;align-items:baseline;gap:12px}
  .kpi dt{font-size:34px;min-width:4.2ch}
  .kpi dd{font-size:15px}
  .lgrid{--k:.82;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
  .lg-c{height:84px;padding:8px}
  .cat-dir{padding-block:40px}
  .cat-dir .head .side{margin-top:4px}
  .art-empty{padding:24px}
  .geo-cn{gap:6px}
  .geo-cn li{padding:6px 12px;font-size:14px}
  .art-g,.fp.two{grid-template-columns:1fr}
}
.pj-c .cat-cv.ph{height:220px}
.pj-w{font-size:14px;color:var(--fg-3)}
.cat-tx h3 a{color:inherit}
.cat-tx h3 a:hover{color:var(--acc)}
.ar-c .cat-cv.ph{height:220px}
.ar-c .cat-m dd{font-size:14px}
.pt-p{margin-top:32px;padding:24px 24px 28px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface)}
.pt-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:8px}
.pt-h .h3{font-size:22px;font-weight:500;letter-spacing:-.015em}
.art{padding-top:40px}
.art-w{display:grid;gap:32px;max-width:820px}
.art-hd{display:grid;gap:18px}
.art-hd .h1.long{font-size:clamp(32px,4vw,54px);line-height:1.06}
.art-cv{margin:0}
.art-cv img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:var(--r-l)}
.art-b{display:grid;gap:16px;font-size:18px;line-height:1.6}
.art-b h2{margin-top:24px;font-size:clamp(24px,2.4vw,32px);letter-spacing:-.02em;line-height:1.2}
.art-b h3{margin-top:8px;font-size:20px;font-weight:500;letter-spacing:-.01em}
.art-b p,.art-b ul,.art-b ol{margin:0;color:var(--fg-2)}
.art-b ul,.art-b ol{padding-left:1.3em;display:grid;gap:8px}
.art-b b{color:var(--fg);font-weight:500}
.note{display:grid;gap:12px;padding:24px 28px;border-radius:var(--r-l);border:1px solid var(--line);border-left:3px solid var(--acc);background:var(--surface)}
.note-k{font-family:var(--font-mono);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--acc)!important}
.art-t{width:100%;border-collapse:collapse;font-size:15px;line-height:1.4}
.art-t th,.art-t td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.art-t th{font-weight:500;color:var(--fg)}
.art-t td{color:var(--fg-2)}
.art-ft{display:grid;gap:14px;padding-top:24px;border-top:1px solid var(--line)}
.art-src{margin:0;padding-left:1.2em;display:grid;gap:6px;font-size:15px}
.art-src a{color:var(--fg-2);text-decoration:underline;text-underline-offset:3px}
.art-src a:hover{color:var(--acc)}
.art-rel{margin:0;font-size:16px}
@media (max-width:1200px){
}
@media (max-width:860px){
}
@media (max-width:640px){
  .bp,.pt-p{padding:16px 14px 10px}
  .pj-c .cat-cv.ph{height:150px}
  .ar-c .cat-cv.ph{height:170px}
  .art-b{font-size:16px}
  .note{padding:18px}
  .art-t{display:block;overflow-x:auto}
}
.home2 .hero.home .lead{max-width:44ch}
.pj-c .cat-cv.ph{height:180px}
.pj-c .cat-tx{gap:8px;padding:18px 20px 20px}
.pj-c .cat-tx h3{font-size:19px}
.pj-c .cat-tx>p{font-size:15px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.home2 .cat{gap:16px}

.dks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.dk{--c:var(--c-edu);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:12px;min-height:250px;padding:24px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface);color:inherit;transition:border-color .4s var(--ease),transform .4s var(--ease),box-shadow .4s var(--ease)}
.dk.exh{--c:var(--c-exh)}
.dk.robo{--c:var(--c-robo)}
.dk.furn{--c:var(--c-furn)}
.dk::before{content:"";position:absolute;z-index:1;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--c),transparent 85%)}
.dk::after{content:"";position:absolute;right:-80px;bottom:-100px;width:220px;height:220px;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--c) 45%,transparent),transparent);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}
.dk:hover{border-color:var(--c);transform:translateY(-3px);box-shadow:0 18px 40px -26px color-mix(in srgb,var(--c) 70%,transparent)}
.dk:hover::after{opacity:var(--glow,.6)}
.dk-ph{margin:-24px -24px 4px;aspect-ratio:16/10;overflow:hidden;background:var(--surface-2,var(--line))}
.dk-ph img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease)}
.dk:hover .dk-ph img{transform:scale(1.05)}
.dk-m{display:flex;align-items:center;justify-content:space-between}
.dk-i{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:14px;background:linear-gradient(140deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff));color:#0A0A0A}
.dk-i svg{width:26px;height:26px}
.dk-n{font-family:var(--font-mono);font-size:14px;color:var(--fg-3)}
.dk h3{font-size:20px;font-weight:500;letter-spacing:-.015em;line-height:1.2}
.dk p{margin:0;font-size:15px;line-height:1.45;color:var(--fg-2)}
.dk-go{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:500}
.dk-go i{font-style:normal;width:32px;height:32px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--c);color:#0A0A0A;transition:transform .3s var(--ease)}
.dk:hover .dk-go i{transform:translateX(4px)}
.home2 #projects .rail{grid-auto-columns:calc((100% - 72px)/4)}
.mq-w{position:relative;display:grid;gap:8px}
.mq{--k:1;gap:24px}
.mq .bg-wm{font-weight:600;font-size:22px;letter-spacing:.01em;color:var(--fg);opacity:.78}
.mq .track{gap:24px;padding:4px 0;animation-duration:110s}
.mq.rev .track{animation-direction:reverse;animation-duration:125s}
.mq li{flex:none;display:flex}
.mq .lg-c{width:176px;height:84px;flex:none}
.mq:focus-within .track{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.mq .track{animation:none}.mq .track[aria-hidden]{display:none}.mq{overflow-x:auto}}
@media (max-width:1200px){
  .dks{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home2 #projects .rail{grid-auto-columns:calc((100% - 24px)/2.2)}
}
@media (max-width:640px){
  .dks{grid-template-columns:1fr;gap:12px}
  .dk{min-height:0;padding:20px}
  .home2 #projects .rail{grid-auto-columns:82%;gap:16px}
  .mq{--k:.8}
  .mq .lg-c{width:140px;height:72px}
}

.home2 .cta .wrap{align-items:center}
.req label{font-size:15px}
.req input,.req select,.req textarea{font-size:16px}
.dk-ph{position:relative}
.dk-b{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px 6px 9px;border-radius:999px;background:var(--acc-fill);color:var(--acc-on,#fff);font-size:13px;font-weight:500;line-height:1;box-shadow:0 6px 18px -8px rgba(0,0,0,.6)}
.dk-b svg{width:16px;height:16px}
.home2 .dk h3,.home2 .st-tx h3,.home2 #projects .pc .h3,.home2 .cat-tx h3{font-size:22px;font-weight:500;letter-spacing:-.015em;line-height:1.2}
.home2 .dk p,.home2 #projects .pc p,.home2 .cat-tx p{font-size:16px;line-height:1.5}
.home2 .st{gap:16px}
.home2 .st+.sub-h{margin-top:56px}
.home2 .pt-p{padding:28px}
.home2 .pt-h{margin-bottom:20px}
.home2 .pt-h .h3{font-size:clamp(22px,1.9vw,28px);font-weight:400;letter-spacing:-.02em;line-height:1.2}
.home2 .pc.more{padding:24px}
.home2 .cmap-panel{padding:28px}
.home2 .dk{gap:14px;padding-bottom:20px;background:linear-gradient(180deg,var(--surface) 55%,color-mix(in srgb,var(--c) 10%,var(--surface)))}
.home2 .dk h3{font-size:clamp(22px,1.8vw,26px);line-height:1.15;letter-spacing:-.02em;margin-top:4px}
.home2 .dk h3::after{content:"";display:block;width:40px;height:3px;margin-top:12px;border-radius:3px;background:var(--c);transition:width .4s var(--ease)}
.home2 .dk:hover h3::after{width:72px}
.home2 .dk p{color:var(--fg-2)}
.home2 .dk-go{color:var(--fg);font-size:16px}
.home2 .dk-ph{aspect-ratio:4/3}
.home2 .dk-ph::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(0deg,color-mix(in srgb,var(--surface) 70%,transparent),transparent);pointer-events:none}
.home2 .band.vp-band{padding-block:0}
.home2 #projects .pc p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:3em}
.mq.drag{cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.mq.drag.grabbing{cursor:grabbing}
.mq.drag .track{animation:none!important;will-change:transform}
.mq.drag img{-webkit-user-drag:none;pointer-events:none}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.home2 .band{padding-block:clamp(44px,5vw,64px)}
.home2 .band.vp-band{padding-block:0}
.home2 .st+.sub-h{margin-top:clamp(40px,4.5vw,56px)}
@media (min-width:641px) and (max-width:1200px){
  .home2 .st{grid-template-columns:repeat(2,minmax(0,1fr))}
  .home2 .st-c{grid-template-columns:minmax(0,1fr)}
  .home2 .st-logo{padding:24px;min-height:120px}
  .home2 .st-tx{padding:24px}
}
@media (max-width:640px){
  .home2 .st-tx{padding:20px}
  .home2 .pt-p,.home2 .cmap-panel{padding:20px}
}
@media (min-width:641px) and (max-width:1200px){
  .home2 .vp{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:14px 32px 14px 14px}
  .home2 .vp .h2{font-size:clamp(28px,3.6vw,40px)}
}
@media (min-width:641px) and (max-width:900px){
  .home2 .vp{grid-template-columns:minmax(0,1fr);gap:24px;padding:14px 14px 28px}
  .home2 .vp-tx{padding-inline:14px}
}
.cat.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.cat.two{grid-template-columns:minmax(0,1fr)}}
.pc.more .more-go{align-self:stretch;gap:16px}
@media (min-width:1201px){
  .cmap{align-items:stretch}
  .home2 .cmap-panel{height:0;min-height:100%;overflow-y:auto;align-content:start;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
}
@media (max-width:640px){.top .drawer .btn{display:inline-flex}}
.foot.f2 .brandcol{grid-column:span 3}
.foot.f2 .brandcol p{max-width:34ch}
.foot.f2 .brandcol .f-geo{color:var(--fg);font-weight:500;font-size:16px}
.foot.f2 .col.sol{grid-column:span 3}
.foot.f2 .col{grid-column:span 2}
.foot.f2 .f-copy{grid-column:1/-1;margin:40px 0 0;padding-top:24px;border-top:1px solid var(--line);color:var(--fg-3);font-size:15px}
@media (max-width:1200px){
  .foot.f2 .brandcol{grid-column:1/-1}
  .foot.f2 .col,.foot.f2 .col.sol{grid-column:span 3}
}
@media (max-width:860px){
  .foot.f2 .col,.foot.f2 .col.sol{grid-column:span 6}
}
@media (max-width:480px){
  .foot.f2 .col,.foot.f2 .col.sol{grid-column:1/-1}
  .foot.f2 .f-copy{margin-top:24px}
}
.foot.f2{row-gap:32px}
.ft{padding-block:clamp(48px,5vw,72px) 32px;border-top:1px solid var(--line);background:var(--bg-2)}
.ft-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px 48px;flex-wrap:wrap;padding-bottom:clamp(32px,3.5vw,48px);border-bottom:1px solid var(--line)}
.ft-brand{display:grid;gap:16px;max-width:520px}
.ft-brand p{color:var(--fg-2);font-size:17px;line-height:1.5}
.ft-cta{flex:none}
.ft-cols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:32px var(--gutter);padding-block:clamp(32px,3.5vw,48px)}
.ft-col{display:grid;gap:12px;align-content:start;font-size:16px;line-height:1.35}
.ft-col b{font-weight:500;color:var(--fg);margin-bottom:4px}
.ft-col a,.ft-col span{color:var(--fg-2)}
.ft-col a{transition:color .2s}
.ft-col a:hover{color:var(--fg)}
.ft-col .mailrow{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.ft-bot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;padding-top:24px;border-top:1px solid var(--line);color:var(--fg-3);font-size:14px}
@media (max-width:1024px){.ft-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .ft-top{align-items:flex-start;flex-direction:column}
  .ft-brand p{font-size:16px}
}
@media (max-width:480px){.ft-cols{grid-template-columns:minmax(0,1fr);gap:28px}}
.ft{padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px));padding-bottom:max(32px,env(safe-area-inset-bottom,0px))}
.ft{padding-top:40px;padding-bottom:max(20px,env(safe-area-inset-bottom,0px))}
.ft-cols{grid-template-columns:minmax(0,1.5fr) minmax(0,1.25fr) minmax(0,.9fr) minmax(0,1fr) minmax(0,1.15fr);gap:24px var(--gutter);padding-block:0 32px}
.ft-brand{gap:14px;align-content:start;justify-items:start}
.ft-brand p{font-size:15px;line-height:1.45;color:var(--fg-3);max-width:34ch}
.ft-brand .ft-cta{min-height:42px;padding:0 18px;font-size:15px;margin-top:4px}
.ft-col{gap:8px;font-size:15px}
.ft-col b{font-size:15px;margin-bottom:2px}
.ft-bot{padding-top:18px;font-size:13px}
@media (max-width:1200px){
  .ft-cols{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ft-brand{grid-column:1/-1;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px 32px}
  .ft-brand p{max-width:none}
  .ft-brand .ft-cta{margin-top:0}
}
@media (max-width:860px){
  .ft-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ft-brand{grid-template-columns:minmax(0,1fr);align-items:start}
}
@media (max-width:480px){.ft-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}.ft-col{font-size:14px}}
@media (max-width:1200px){.ft-brand{max-width:none}}
@media (max-width:860px){.ft-brand p{max-width:44ch}}
.ft-col a{overflow-wrap:anywhere}
@media (max-width:480px){.ft-cols>.ft-col:nth-child(2),.ft-cols>.ft-col:nth-child(5){grid-column:1/-1}}
.ft-cols{padding-bottom:0}
.edu .band{padding-block:clamp(44px,5vw,64px)}
.edu .band.dh{padding-block:clamp(28px,4vw,48px) clamp(44px,5vw,64px)}
.edu .head{margin-bottom:clamp(24px,2.6vw,36px)}
.edu .h2{font-size:clamp(30px,3.4vw,50px)}
.edu .kb-f{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.edu .kb-f button{font:inherit;font-size:15px;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line-2);background:transparent;color:var(--fg-2);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.edu .kb-f button:hover{color:var(--fg);border-color:var(--fg-3)}
.edu .kb-f button[aria-pressed="true"]{background:var(--acc-fill);border-color:var(--acc-fill);color:var(--acc-on)}
.edu .kb-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.edu .kb-g.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.edu .kb{display:flex;flex-direction:column;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden;color:inherit;transition:transform .4s var(--ease),border-color .3s}
.edu .kb[hidden]{display:none}
.edu .kb:hover{transform:translateY(-3px);border-color:var(--line-2)}
.edu .kb-ph{margin:0;aspect-ratio:4/3;overflow:hidden;background:var(--bg-2)}
.edu .kb-ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.edu .kb-ph.contain{background:#fff}
.edu .kb-ph.contain img{object-fit:contain;padding:16px}
.edu .kb:hover .kb-ph img{transform:scale(1.04)}
.edu .kb-tx{flex:1;display:flex;flex-direction:column;gap:10px;padding:22px 24px 20px}
.edu .kb-s{font-size:13px;color:var(--acc);letter-spacing:.01em}
.edu .kb-tx h3{font-size:22px;font-weight:500;letter-spacing:-.015em;line-height:1.2}
.edu .kb-tx p{font-size:16px;line-height:1.5;color:var(--fg-2)}
.edu .kb-go{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:16px;font-weight:500}
.edu .kb-go i{font-style:normal;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--acc-fill);color:var(--acc-on);transition:transform .3s var(--ease)}
.edu .kb:hover .kb-go i,.edu .kcase:hover .kb-go i{transform:translateX(3px)}
.edu .sp{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:center}
.edu .sp-ph{margin:0;border-radius:var(--r-l);overflow:hidden}
.edu .sp-ph img{width:100%;aspect-ratio:16/10;object-fit:cover}
.edu .sp-tx{display:grid;gap:20px}
.edu .sp-l{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.edu .sp-l li{display:grid;gap:6px;padding:18px 20px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface)}
.edu .sp-l b{font-weight:500;font-size:18px}
.edu .sp-l b::before{content:"";display:block;width:28px;height:3px;border-radius:3px;background:var(--acc-fill);margin-bottom:12px}
.edu .sp-l span{font-size:15px;line-height:1.45;color:var(--fg-2)}
.edu .kp{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.edu .kp .pc p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:3em}
.edu .vp{grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:40px;padding:14px 40px 14px 14px}
.edu .vp .h2{font-size:clamp(30px,3.2vw,46px)}
.edu .bn{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.edu .bn article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 18px;align-items:start;padding:28px;border-radius:var(--r-l);border:1px solid var(--line);background:linear-gradient(160deg,color-mix(in srgb,var(--acc-fill) 14%,var(--surface)),var(--surface) 65%)}
.edu .bn-i{grid-row:span 2;width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--acc-fill);color:var(--acc-on)}
.edu .bn-i svg{width:24px;height:24px}
.edu .bn h3{font-size:22px;font-weight:500;letter-spacing:-.015em}
.edu .bn p{font-size:16px;color:var(--fg-2)}
.edu .stp{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.edu .stp li{display:grid;gap:10px;align-content:start;padding:24px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface)}
.edu .stp h3{font-size:20px;font-weight:500}
.edu .stp p{font-size:16px;color:var(--fg-2);line-height:1.5}
.edu .kw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:24px 48px;align-items:start}
.edu .kw .head{margin-bottom:0;display:grid;gap:16px}
.edu .kq{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.edu .kq li{position:relative;padding:16px 18px 16px 46px;border-radius:var(--r-m);border:1px solid var(--line);background:var(--surface);font-size:16px;line-height:1.45}
.edu .kq li::before{content:"";position:absolute;left:18px;top:20px;width:14px;height:14px;border-radius:50%;background:var(--acc-fill);box-shadow:0 0 0 4px color-mix(in srgb,var(--acc-fill) 22%,transparent)}
.edu .kn{margin-top:16px;font-size:14px;color:var(--fg-3)}
.edu .kpgs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:48px}
.edu .kpg{display:flex;flex-direction:column;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden}
.edu .kpg figure{margin:0;aspect-ratio:4/3;background:#fff;overflow:hidden}
.edu .kpg img{width:100%;height:100%;object-fit:cover}
.edu .kpg>div{padding:22px 24px;display:grid;gap:10px}
.edu .kpg h3{font-size:22px;font-weight:500;letter-spacing:-.015em}
.edu .kpg p{font-size:16px;color:var(--fg-2);line-height:1.5}
.edu .kpg .kn{margin-top:0}
.edu .dev.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.edu .kgal-b,.edu .kno-b{padding-block:0}
.edu .kgal{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.edu .kgal figure{margin:0}
.edu .kgal img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--r-m);background:#fff}
.edu .kgal figcaption{margin-top:10px;font-size:15px;color:var(--fg-3)}
.edu .kfxs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.edu .kfx{display:flex;flex-direction:column;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden}
.edu .kfx figure{margin:0;aspect-ratio:4/3;overflow:hidden}
.edu .kfx img{width:100%;height:100%;object-fit:cover}
.edu .kfx>div{padding:20px 22px;display:grid;gap:8px}
.edu .kfx h3{font-size:19px;font-weight:500;line-height:1.25}
.edu .kfx .kd{font-family:var(--font-mono);font-size:14px;color:var(--acc)}
.edu .kfx p{font-size:15px;color:var(--fg-2);line-height:1.5}
.edu .kno{display:grid;gap:12px;justify-items:start;padding:24px 28px;border-radius:var(--r-l);border:1px solid color-mix(in srgb,var(--acc-fill) 40%,var(--line));background:color-mix(in srgb,var(--acc-fill) 8%,var(--surface))}
.edu .kno p{font-size:16px;color:var(--fg-2);line-height:1.5;max-width:90ch}
.edu .kcase{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);overflow:hidden;color:inherit}
.edu .kcase figure{margin:0;min-height:320px}
.edu .kcase img{width:100%;height:100%;object-fit:cover}
.edu .kcase>div{display:flex;flex-direction:column;gap:12px;padding:32px}
.edu .kcase .where{font-size:15px;color:var(--fg-3)}
.edu .kcase h3{font-size:clamp(24px,2.2vw,32px);font-weight:500;letter-spacing:-.02em}
.edu .kcase p{font-size:17px;color:var(--fg-2)}
.edu .kh.contain{background:#fff;border-radius:var(--r-l)}
.edu .kh.contain img{object-fit:contain;padding:24px}
.cabp .dh-ph img{aspect-ratio:4/3;object-fit:cover;width:100%}
@media (max-width:1200px){
  .edu .kb-g,.edu .kb-g.four,.edu .kpgs,.edu .kfxs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .edu .kp{grid-template-columns:repeat(2,minmax(0,1fr))}
  .edu .sp,.edu .kw{grid-template-columns:minmax(0,1fr);gap:28px}
  .edu .stp,.edu .dev.three{grid-template-columns:repeat(2,minmax(0,1fr))}
  .edu .vp{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;padding:14px 32px 14px 14px}
}
@media (max-width:900px){
  .edu .vp{grid-template-columns:minmax(0,1fr);gap:24px;padding:14px 14px 28px}
  .edu .vp-tx{padding-inline:14px}
  .edu .kcase{grid-template-columns:minmax(0,1fr)}
  .edu .kcase figure{min-height:0;aspect-ratio:16/10}
}
@media (max-width:640px){
  .edu .kb-g,.edu .kb-g.four,.edu .kpgs,.edu .kfxs,.edu .kp,.edu .bn,.edu .stp,.edu .dev.three,.edu .kq,.edu .sp-l{grid-template-columns:minmax(0,1fr)}
  .edu .kb-f{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);scrollbar-width:none}
  .edu .kb-f button{flex:none}
  .edu .bn article,.edu .kcase>div{padding:22px}
  .edu .kb-tx{padding:20px}
}
.ed2 .ed-aud{font-size:16px;line-height:1.6;color:var(--fg);font-weight:500;max-width:52ch}
.ed2 .dts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.ed2 .dt{position:relative;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.ed2 .dt-ph{position:relative;margin:0;aspect-ratio:16/10;overflow:hidden}
.ed2 .dt-ph img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.ed2 .dt:hover .dt-ph img{transform:scale(1.04)}
.ed2 .dt-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,10,.86) 0%,rgba(8,8,10,.35) 45%,transparent 70%);pointer-events:none}
.ed2 .dt-ph figcaption{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:28px 32px;display:grid;gap:10px;color:#fff}
.ed2 .dt-n{font-family:var(--font-mono);font-size:15px;color:var(--acc)}
.ed2 .dt-ph h3{font-size:clamp(24px,2.3vw,34px);font-weight:500;letter-spacing:-.02em;line-height:1.12;max-width:20ch}
.ed2 .dt-l summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 32px;font-size:16px;font-weight:500}
.ed2 .dt-l summary::-webkit-details-marker{display:none}
.ed2 .dt-l summary i{width:36px;height:36px;border-radius:50%;background:var(--acc-fill);position:relative;flex:none;transition:transform .3s var(--ease)}
.ed2 .dt-l summary i::before,.ed2 .dt-l summary i::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:2px;margin:-1px 0 0 -7px;background:var(--acc-on);border-radius:2px}
.ed2 .dt-l summary i::after{transform:rotate(90deg);transition:transform .3s var(--ease)}
.ed2 .dt-l[open] summary i::after{transform:rotate(0)}
.ed2 .dt-l ul{list-style:none;margin:0;padding:0 32px 24px;display:grid;gap:0}
.ed2 .dt-l li a{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line);font-size:16px;color:var(--fg-2);transition:color .2s}
.ed2 .dt-l li a::after{content:"→";color:var(--acc)}
.ed2 .dt-l li a:hover{color:var(--fg)}
.ed2 .ed-wide{margin:0 0 20px;border-radius:var(--r-l);overflow:hidden}
.ed2 .ed-wide img{width:100%;aspect-ratio:21/9;object-fit:cover}
.ed2 .ed-pil{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ed2 .ed-pil li{display:grid;gap:12px;align-content:start;padding:28px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface)}
.ed2 .ed-pil h3{font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.2}
.ed2 .ed-pil p{font-size:16px;line-height:1.55;color:var(--fg-2)}
.ed2 .pjs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ed2 .pj{position:relative;display:block;border-radius:var(--r-l);overflow:hidden;aspect-ratio:3/4;color:#fff}
.ed2 .pj figure{position:absolute;inset:0;margin:0}
.ed2 .pj img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.ed2 .pj:hover img{transform:scale(1.05)}
.ed2 .pj::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,10,.88) 0%,rgba(8,8,10,.3) 45%,transparent 65%)}
.ed2 .pj-tx{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:24px;display:grid;gap:8px}
.ed2 .pj h3{font-size:22px;font-weight:500;letter-spacing:-.015em;line-height:1.2}
.ed2 .pj p{font-size:15px;line-height:1.45;color:rgba(255,255,255,.78)}
.ed2 .pj-go{position:absolute;top:16px;right:16px;z-index:1;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);font-size:22px;transition:background .3s}
.ed2 .pj:hover .pj-go{background:var(--acc-fill);color:var(--acc-on)}
.ed2 .dt-ph{display:block}
.ed2 .dt-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:28px 32px;display:grid;gap:10px;color:#fff}
.ed2 .dt-go{display:inline-flex;align-items:center;gap:8px;font-size:15px;color:rgba(255,255,255,.8);transition:color .2s}
.ed2 .dt-go i{font-style:normal;color:var(--acc);transition:transform .3s var(--ease)}
.ed2 .dt-ph:hover .dt-go{color:#fff}
.ed2 .dt-ph:hover .dt-go i{transform:translateX(4px)}
.ed2 .ed-sl{display:grid;border-radius:var(--r-l);overflow:hidden}
.ed2 .ed-sl img{grid-area:1/1;width:100%;height:auto;aspect-ratio:16/11;object-fit:cover;border-radius:0}
.ed2 .ed-sl img+img{opacity:0;animation:edsl 24s infinite}
.ed2 .ed-sl img:nth-child(2){animation-delay:6s}
.ed2 .ed-sl img:nth-child(3){animation-delay:12s}
.ed2 .ed-sl img:nth-child(4){animation-delay:18s}
@keyframes edsl{0%{opacity:0}4%{opacity:1}25%{opacity:1}29%{opacity:0}100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.ed2 .ed-sl img{animation:none}.ed2 .ed-sl img:not(:first-child){display:none}}
.ed2 .ed-bns{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ed2 .ed-bns li{display:grid;gap:14px;align-content:start;padding:32px;border-radius:var(--r-l);border:1px solid color-mix(in srgb,var(--acc-fill) 30%,var(--line));background:linear-gradient(160deg,color-mix(in srgb,var(--acc-fill) 16%,var(--surface)),var(--surface) 65%)}
.ed2 .ed-bns .bn-i{width:56px;height:56px;border-radius:16px;margin-bottom:6px}
.ed2 .ed-bns .bn-i svg{width:28px;height:28px}
.ed2 .ed-bns h3{font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.2}
.ed2 .ed-bns p{font-size:16px;line-height:1.55;color:var(--fg-2)}
.ed2 .ed-fine{margin-top:24px;font-size:16px;line-height:1.55;font-weight:500;color:var(--fg);max-width:80ch}
.ed2 .ed-st{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ed2 .ed-st li{display:grid;gap:12px;align-content:start;padding:28px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface)}
.ed2 .ed-st li::before{content:"";height:3px;border-radius:3px;order:1;background:linear-gradient(90deg,var(--acc-fill),color-mix(in srgb,var(--acc-fill) 15%,transparent))}
.ed2 .ed-st .st-n{order:0;font-family:var(--font-mono);font-size:15px;color:var(--acc)}
.ed2 .ed-st h3{order:2;font-size:24px;font-weight:500;letter-spacing:-.015em;line-height:1.2;margin-top:6px}
.ed2 .ed-st p{order:3;font-size:16px;line-height:1.55;color:var(--fg-2)}
.dirp .kc-nav{position:sticky;top:calc(env(safe-area-inset-top,0px) + var(--top-h,65px));z-index:40;background:var(--header);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.dirp .kc-nav .wrap{display:flex;gap:8px;overflow-x:auto;padding-block:12px;scrollbar-width:none}
.dirp .kc-nav .wrap::-webkit-scrollbar{display:none}
.dirp .kc-nav a{flex:none;padding:9px 16px;border-radius:999px;border:1px solid var(--line);font-size:14px;color:var(--fg-2);white-space:nowrap;transition:color .2s,border-color .2s,background .2s}
.dirp .kc-nav a:hover{color:var(--fg);border-color:var(--acc-fill)}
.dirp .kc{scroll-margin-top:calc(var(--top-h,65px) + 64px)}
.dirp .kc+.kc{border-top:1px solid var(--line)}
.dirp .kc .wrap{display:grid;gap:32px}
.dirp .kc-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center}
.dirp .kc-ph{grid-column:1/7;margin:0;border-radius:var(--r-l);overflow:hidden;background:var(--surface)}
.dirp .kc-ph img{width:100%;aspect-ratio:16/11;object-fit:cover}
.dirp .kc-ph.contain img{object-fit:contain;padding:24px}
.dirp .kc-tx{grid-column:8/-1;display:grid;gap:18px;align-content:center}
.dirp .kc-n{font-family:var(--font-mono);font-size:15px;color:var(--acc)}
.dirp .kc-tx .h2{font-size:clamp(28px,3vw,44px)}
.dirp .kc-cols{display:grid;gap:20px;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.dirp .kc-cols.n1{grid-template-columns:minmax(0,1fr)}
.dirp .kc-cols.n3{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr)}
.dirp .kc-col{display:grid;gap:16px;align-content:start;padding:28px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface)}
.dirp .kc-col h3,.dirp .kc-h{font-size:20px;font-weight:500;letter-spacing:-.01em}
.dirp .kc-col .kq{grid-template-columns:minmax(0,1fr);gap:0}
.dirp .kc-col .kq li{padding:11px 0 11px 26px;border:0;border-top:1px solid var(--line);border-radius:0;background:none;font-size:15px;color:var(--fg-2)}
.dirp .kc-col .kq li:first-child{border-top:0}
.dirp .kc-col .kq li::before{left:2px;top:18px;width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb,var(--acc-fill) 22%,transparent)}
.dirp .kc-cols.n1 .kq{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
.dirp .kc-cols.n1 .kq li:nth-child(2){border-top:0}
.dirp .kc-lv{list-style:none;margin:0;padding:0;display:grid}
.dirp .kc-lv li{display:grid;gap:4px;padding:11px 0;border-top:1px solid var(--line)}
.dirp .kc-lv li:first-child{border-top:0;padding-top:0}
.dirp .kc-lv b{font-weight:500;font-size:15px}
.dirp .kc-lv span{font-size:14px;line-height:1.5;color:var(--fg-3)}
.dirp .kc-h{margin-bottom:-12px}
.dirp .kc-h .dim{color:var(--fg-3)}
.dirp .kc-z{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:15px;color:var(--fg-3)}
.dirp .kc-z a{padding:8px 14px;border-radius:999px;border:1px solid var(--line);color:var(--fg-2)}
.dirp .kc-z a:hover{color:var(--fg);border-color:var(--acc-fill)}
.dirp .kc-no{display:grid;gap:12px;padding:20px 24px;border-radius:var(--r-m);border-left:3px solid var(--acc-fill);background:color-mix(in srgb,var(--acc-fill) 7%,var(--surface))}
.dirp .kc-no p{font-size:15px;line-height:1.55;color:var(--fg-2);max-width:90ch}
.dirp .kc-lk{display:flex;flex-wrap:wrap;gap:12px 28px}
.dirp .dt-os{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.dirp .dt-o{position:relative;display:block;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/3;color:#fff}
.dirp .dt-o img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.dirp .dt-o:hover img{transform:scale(1.04)}
.dirp .dt-o::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,8,10,.86),rgba(8,8,10,.2) 55%,transparent)}
.dirp .dt-o span{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:22px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;font-size:20px;font-weight:500;letter-spacing:-.01em;line-height:1.2}
.dirp .dt-o i{font-style:normal;color:var(--acc)}
@media (max-width:1200px){
  .ed2 .pjs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed2 .pj{aspect-ratio:4/3}
  .ed2 .ed-pil{grid-template-columns:minmax(0,1fr)}
  .dirp .kc-cols.n3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dirp .kc-cols.n3 .kc-col:first-child{grid-column:1/-1}
}
@media (max-width:1000px){
  .ed2 .ed-bns,.ed2 .ed-st{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ed2 .ed-bns li:last-child{grid-column:1/-1}
  .dirp .kc-ph,.dirp .kc-tx{grid-column:1/-1}
  .dirp .dt-os{grid-template-columns:minmax(0,1fr)}
  .dirp .dt-o{aspect-ratio:21/9}
}
@media (max-width:860px){
  .ed2 .dts{grid-template-columns:minmax(0,1fr)}
  .dirp .kc-cols,.dirp .kc-cols.n3{grid-template-columns:minmax(0,1fr)}
  .dirp .kc-cols.n1 .kq{grid-template-columns:minmax(0,1fr)}
  .dirp .kc-cols.n1 .kq li:nth-child(2){border-top:1px solid var(--line)}
}
@media (max-width:640px){
  .ed2 .dt-cap{padding:20px}
  .ed2 .dt-l summary{padding:16px 20px}
  .ed2 .dt-l ul{padding:0 20px 20px}
  .ed2 .ed-wide img{aspect-ratio:4/3}
  .ed2 .ed-pil li,.ed2 .ed-bns li,.ed2 .ed-st li,.dirp .kc-col{padding:22px}
  .ed2 .pjs,.ed2 .ed-bns,.ed2 .ed-st{grid-template-columns:minmax(0,1fr)}
  .dirp .dt-o{aspect-ratio:4/3}
  .dirp .kc .wrap{gap:24px}
}
.home2 .st-logo.dk{background:#2E3440}
@media (max-width:900px){html:is([lang=kk],[lang=en]) body .vp{grid-template-columns:minmax(0,1fr)}html:is([lang=kk],[lang=en]) body .vp-tx{min-width:0}html:is([lang=kk],[lang=en]) body .vp-tx .btn{white-space:normal;max-width:100%}}
html[lang=kk] :is(.h1,.h2,.h3,h3){overflow-wrap:break-word}
@media (min-width:1201px) and (max-width:1360px){.top .lang{display:flex;font-size:13px}.top .lang a,.top .lang span{padding:5px 6px}}
.vr-hub .vr-steps{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:none}
.vr-hub .vr-steps li{display:grid;align-content:start;gap:10px;padding:24px;border:1px solid var(--line);background:var(--surface)}
.vr-hub .vs-n{font-family:"JetBrains Mono",monospace;font-size:14px;color:var(--acc)}
.vr-hub .vr-steps h3{font-size:20px;font-weight:600;line-height:1.25}
.vr-hub .vr-steps p{font-size:16px;color:var(--fg-2)}
.vr-hub .vr-side{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.vr-hub .vr-rail{grid-auto-columns:calc((100% - 48px)/3)}
.vr-hub .vr-rail .vc{scroll-snap-align:start;min-width:0}
.vr-hub .vr-rail .vc:hover{transform:none}
.vr-hub .vr-nt{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.vr-hub .vr-nt li{display:grid;align-content:start;gap:10px;padding:24px 0 0;border-top:2px solid var(--acc)}
.vr-hub .vr-nt h3{font-size:18px;font-weight:600;line-height:1.3}
.vr-hub .vr-nt p{font-size:16px;color:var(--fg-2)}
.vr-hub .vr-nt a{text-decoration:underline;text-underline-offset:3px}
@media (max-width:1200px){.vr-hub .vr-rail{grid-auto-columns:calc((100% - 24px)/2.2)}.vr-hub .vr-nt{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
@media (max-width:860px){.vr-hub .vr-steps{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.vr-hub .vr-rail{grid-auto-columns:86%}.vr-hub .vr-nt{grid-template-columns:minmax(0,1fr)}.vr-hub .vr-steps li{padding:20px}}
.vr-hub .band.vr-hero{padding-block:clamp(28px,4vw,48px) clamp(56px,6vw,80px)}
.vr-hub .vr-hero h1.h1.long{font-size:clamp(34px,4.4vw,64px);line-height:1.04;overflow-wrap:break-word;max-width:16ch}
.vr-hub .vr-hero .lead{max-width:62ch;margin-top:20px}
.vr-hub .vr-steps{margin-top:clamp(32px,4vw,48px)}
.vr-hub .vr-steps h3,.vr-hub .vr-nt h3{font-size:clamp(19px,1.5vw,22px);letter-spacing:-.01em}
.vr-hub #school-rooms .head .side,.vr-hub #uni-labs .head .side{align-self:end}
.vr-hub .vr-side{width:100%}
@media (max-width:1200px){.vr-hub #school-rooms .head,.vr-hub #uni-labs .head{row-gap:20px}}
.vr-hub .vr-hd{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(24px,4vw,64px);align-items:center}
.vr-hub .vr-hd-tx{min-width:0}
.vr-hub .vr-hd-ph{position:relative;display:block;isolation:isolate}
.vr-hub .vr-hd-ph::before{content:"";position:absolute;inset:12% 8% 4%;z-index:-1;background:radial-gradient(closest-side,color-mix(in srgb,var(--acc) 22%,transparent),transparent);filter:blur(24px)}
.vr-hub .vr-hd-ph img{display:block;width:100%;height:auto;transition:transform .9s var(--ease)}
.vr-hub .vr-hd-ph:hover img{transform:translateY(-6px)}
@media (max-width:960px){.vr-hub .vr-hd{grid-template-columns:minmax(0,1fr)}.vr-hub .vr-hd-ph{max-width:640px;width:100%;justify-self:center}}
@media (prefers-reduced-motion:reduce){.vr-hub .vr-hd-ph img{transition:none}.vr-hub .vr-hd-ph:hover img{transform:none}}
.band.cat-all{padding-top:32px}
.cat-all .cat-tx h3{font-size:clamp(20px,1.6vw,24px)}
@media (max-width:640px){.band.cat-all{padding-top:16px}}
@media (min-width:1201px){.cat-all .cat-c:last-child:nth-child(3n+1){grid-column:1/-1;flex-direction:row}.cat-all .cat-c:last-child:nth-child(3n+1) .cat-cv{flex:none;width:calc((100% - 48px)/3);height:auto;min-height:280px}.cat-all .cat-c:last-child:nth-child(3n+1) .cat-tx{justify-content:center;max-width:640px;padding:32px 40px}.cat-all .cat-c:last-child:nth-child(3n+1) .cat-b{margin-top:8px}}
@media (min-width:641px) and (max-width:1200px){.cat-all .cat-c:last-child:nth-child(2n+1){grid-column:1/-1;flex-direction:row}.cat-all .cat-c:last-child:nth-child(2n+1) .cat-cv{flex:none;width:calc((100% - 24px)/2);height:auto;min-height:280px}.cat-all .cat-c:last-child:nth-child(2n+1) .cat-tx{justify-content:center}.cat-all .cat-c:last-child:nth-child(2n+1) .cat-b{margin-top:8px}}
@media (min-width:641px){.cat-all .cat-c:last-child:is(:nth-child(odd)) .cat-cv img{max-height:240px;width:auto}}
.ar-k{font-family:"JetBrains Mono",monospace;font-size:13px;letter-spacing:.02em;color:var(--acc)}
.art-cv figcaption{margin-top:10px;font-size:14px;color:var(--fg-3)}
.art-cv.fit img{aspect-ratio:auto;object-fit:contain;max-height:440px;background:#fff}
.art-b a{color:var(--fg);text-decoration:underline;text-decoration-color:var(--acc);text-underline-offset:3px}
.art-b a:hover{color:var(--acc)}
.art-b strong{color:var(--fg);font-weight:500}
@media (min-width:641px){.cat-all .cat.two .cat-c:last-child:nth-child(odd){grid-column:1/-1;flex-direction:row}.cat-all .cat.two .cat-c:last-child:nth-child(odd) .cat-cv{flex:none;width:calc((100% - 24px)/2);height:auto;min-height:320px}.cat-all .cat.two .cat-c:last-child:nth-child(odd) .cat-tx{justify-content:center;padding:32px 40px}.cat-all .cat.two .cat-c:last-child:nth-child(odd) .cat-b{margin-top:8px}}
@media (min-width:641px) and (max-width:860px){.cat-all .cat.two .cat-c:last-child:nth-child(odd) .cat-tx{padding:24px}}
@media (min-width:1201px){.art-band .ar-g .ar-c:first-child{grid-column:1/-1;flex-direction:row}.art-band .ar-g .ar-c:first-child .cat-cv.ph{flex:none;width:calc((100% - 48px)/3*2 + 24px);height:auto;min-height:380px}.art-band .ar-g .ar-c:first-child .cat-tx{justify-content:center;padding:40px}.art-band .ar-g .ar-c:first-child h3{font-size:clamp(26px,2.2vw,34px);line-height:1.15}.art-band .ar-g .ar-c:first-child .cat-b{margin-top:12px}}
.art-tags{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.art-tags li{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border:1px solid var(--line-2);border-radius:999px;font-size:14px;color:var(--fg-2)}
body.ul-hub{--acc:#0A0A0A;--acc-fill:#006EC2;--acc-on:#FFFFFF;--bg:#FAFAFA;--bg-2:#F2F2F2;--surface:#FFFFFF;--fg:#0A0A0A;--fg-2:#404040;--fg-3:#6E6E6E;--line:#E4E4E4;--line-2:#CCCCCC;--header:rgba(250,250,250,.86);--grid:rgba(10,10,10,.05);--tint-a:rgba(10,10,10,.05);--tint-b:rgba(10,10,10,.03)}
:root[data-theme="dark"] body.ul-hub{--bg:#0A0A0A;--bg-2:#141414;--surface:#161616;--fg:#FFFFFF;--fg-2:#C4C4C4;--fg-3:#9E9E9E;--line:rgba(255,255,255,.12);--line-2:rgba(255,255,255,.24);--header:rgba(10,10,10,.86);--grid:rgba(255,255,255,.05);--acc:#D9D9D9;--acc-fill:#006EC2;--acc-on:#FFFFFF;--tint-a:rgba(255,255,255,.06);--tint-b:rgba(255,255,255,.03)}
:root[data-theme="dark"] body.ul-hub .wa-cta{background:#141414}
.ul-hub .crumbs .back{display:none}
body.ul-hub:not(.os-hub){--acc-fill:#0A0A0A;--acc-on:#FFFFFF}
:root[data-theme="dark"] body.ul-hub:not(.os-hub){--acc-fill:#FFFFFF;--acc-on:#0A0A0A}
body.ul-hub:not(.os-hub) .btn.primary:hover{background:#3A3A3A;border-color:#3A3A3A;color:#FFFFFF}
:root[data-theme="dark"] body.ul-hub:not(.os-hub) .btn.primary:hover{background:#D9D9D9;border-color:#D9D9D9;color:#0A0A0A}
body.ul-hub:not(.os-hub) .kb-dark .btn.primary{background:#FFFFFF;border-color:#FFFFFF;color:#0A0A0A}
body.ul-hub:not(.os-hub) .kb-dark .btn.primary:hover{background:#D9D9D9;border-color:#D9D9D9;color:#0A0A0A}
body.ul-hub:not(.os-hub) .kq a,body.ul-hub:not(.os-hub) .kc-act details a{text-decoration:underline;text-underline-offset:3px}
.ul-hub .logo.co{display:inline-flex;align-items:center;gap:14px;color:var(--fg);text-decoration:none}
.ul-hub .co-x{font-size:20px;line-height:1;font-weight:300;color:var(--fg-3)}
.ul-hub .logo.co a{display:flex;align-items:center;color:inherit;text-decoration:none;border-radius:6px;transition:opacity .3s}
.ul-hub .logo.co a:hover{opacity:.72}
.ul-hub .logo.co a:focus-visible{outline:2px solid var(--acc-fill);outline-offset:4px}
.ul-hub .co-u{display:block;height:32px;width:auto;flex:none}
@media (max-width:480px){.ul-hub .logo.co{gap:9px}.ul-hub .logo.co img{height:32px}.ul-hub .co-u{height:23px}.ul-hub .co-x{font-size:17px}}
@media (max-width:380px){.ul-hub .logo.co{gap:7px}.ul-hub .logo.co img{height:29px}.ul-hub .co-u{height:20px}}
@media (max-width:340px){.ul-hub .logo.co{gap:5px}.ul-hub .logo.co img{height:24px}.ul-hub .co-u{height:16px}.ul-hub .co-x{font-size:14px}}
.ul-hub main>.band{padding-block:48px}
.ul-hub main>.band.kalt{background:var(--bg-2)}
.ul-hub main>.kb-band{padding-block:20px 32px}
.ul-hub main h2{font-size:clamp(30px,2.7vw,40px);line-height:1.1;letter-spacing:-.02em}
.ul-hub main h3{font-size:20px;line-height:1.25;letter-spacing:-.01em;font-weight:500}
.ul-hub .kh{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;margin-bottom:24px}
.ul-hub .kn{font-size:14px;color:var(--fg-3)}

.ul-hub .kb{position:relative;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:clamp(400px,33vw,480px);border-radius:var(--r-l);overflow:hidden;isolation:isolate}
.ul-hub .kb-dark{background:#151B2E;color:#fff}
.ul-hub .kb-light{background:#D3E0FB;color:#0A0A0A}
.ul-hub .kb-tx{display:grid;gap:16px;width:min(49%,660px);padding:40px clamp(28px,3.6vw,56px);position:relative;z-index:1}
.ul-hub .kb-tx h1{font-size:clamp(40px,4.3vw,62px);line-height:1.02;letter-spacing:-.03em;font-weight:500}
.ul-hub .kb-tx p{font-size:18px;line-height:1.45;max-width:34ch;opacity:.82}
.ul-hub .kb-btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.ul-hub .kb-btns .btn{min-height:50px;padding:0 22px;font-size:16px}
.ul-hub .kb-dark .btn.ghost{color:#fff;border-color:rgba(255,255,255,.55)}
.ul-hub .kb-dark .btn.ghost:hover{background:#fff;color:#0A0A0A}
.ul-hub .kb-light .btn.ghost{color:#0A0A0A;border-color:rgba(10,10,10,.45)}
.ul-hub .kb-light .btn.ghost:hover{background:#0A0A0A;color:#fff}
.ul-hub .kb-ph{margin:0;position:absolute;inset:0;z-index:0}
.ul-hub .kb-ph picture{display:block;height:100%}
.ul-hub .kb-ph img{display:block;width:100%;height:100%;object-fit:cover;object-position:100% 50%}

.ul-hub .kf{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.ul-hub .kf input{position:absolute;opacity:0;pointer-events:none}
.ul-hub .kf label{cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--line-2);color:var(--fg-2);font-size:15px;transition:border-color .3s,color .3s,background .3s}
.ul-hub .kf label span{font-size:13px;color:var(--fg-3)}
.ul-hub .kf label:hover{color:var(--fg);border-color:var(--fg-3)}
.ul-hub .kf input:checked+label{background:var(--fg);border-color:var(--fg);color:var(--bg)}
.ul-hub .kf input:checked+label span{color:inherit;opacity:.6}
.ul-hub .kf input:focus-visible+label{outline:2px solid var(--acc-fill);outline-offset:2px}
.ul-hub #models:has(#kf-pop:checked) .kc-card:not([data-pop]),
.ul-hub #models:has(#kf-hum:checked) .kc-card:not([data-t="hum"]),
.ul-hub #models:has(#kf-quad:checked) .kc-card:not([data-t="quad"]),
.ul-hub #models:has(#kf-wheel:checked) .kc-card:not([data-t="wheel"]),
.ul-hub #models:has(#kf-greet:checked) .kc-card:not([data-t="greet"]),
.ul-hub #models:has(#kf-deliv:checked) .kc-card:not([data-t="deliv"]),
.ul-hub #models:has(#kf-carry:checked) .kc-card:not([data-t="carry"]),
.ul-hub #models:has(#kf-clean:checked) .kc-card:not([data-t="clean"]){display:none}

.ul-hub .kg{--cols:4;--gap:20px;display:flex;flex-wrap:wrap;justify-content:center;gap:32px var(--gap)}
.ul-hub .kc-card{flex:0 0 calc((100% - (var(--cols) - 1) * var(--gap)) / var(--cols));min-width:0;display:flex;flex-direction:column;gap:10px}
.ul-hub .kc-card figure{margin:0 0 6px;aspect-ratio:4/3;overflow:hidden;border-radius:var(--r-l);background:var(--surface)}
.ul-hub .kc-card figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ul-hub .kc-card:hover figure img{transform:scale(1.03)}
.ul-hub .kc-cut figure{aspect-ratio:1/1;background:linear-gradient(180deg,var(--bg-2),var(--surface))}
.ul-hub .kc-cut figure img{object-fit:contain;padding:6% 8% 0;object-position:50% 100%}
.ul-hub .kc-card h3{font-size:clamp(24px,1.95vw,27px);letter-spacing:-.02em}
.ul-hub .kc-p{font-size:16px;line-height:1.45;color:var(--fg-2)}
@media (min-width:561px){.ul-hub .kc-p{min-height:calc(1.45em*3)}}
.ul-hub .kc-card dl{margin:4px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding-top:12px;border-top:1px solid var(--line)}
.ul-hub .kc-card dl div{display:grid;gap:2px;min-width:0;align-content:start}
.ul-hub .kc-card dt{font-size:14px;color:var(--fg-3)}
.ul-hub .kc-card dd{margin:0;font-size:16px;font-weight:500;line-height:1.3}
.ul-hub .kc-act{margin-top:auto;padding-top:8px;display:grid;gap:4px}
.ul-hub .kc-act .btn{min-height:46px;padding:0 18px;font-size:15px;justify-content:center;width:100%}
.ul-hub .kc-act summary{list-style:none;cursor:pointer;text-align:center;padding:10px 0;font-size:15px;color:var(--fg-2)}
.ul-hub .kc-act summary::-webkit-details-marker{display:none}
.ul-hub .kc-act summary:hover,.ul-hub .kc-act details[open] summary{color:var(--fg)}
.ul-hub .kc-act details div{display:grid;gap:8px;padding-bottom:8px;font-size:15px;line-height:1.45;color:var(--fg-2)}
.ul-hub .kc-act details a{color:var(--acc-fill)}

.ul-hub .kcmp{margin-top:40px;border-block:1px solid var(--line)}
.ul-hub .kcmp>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;font-size:20px;font-weight:500}
.ul-hub .kcmp>summary::-webkit-details-marker{display:none}
.ul-hub .kcmp>summary i,.ul-hub .kq summary i{flex:none;font-style:normal;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line-2);font-size:20px;transition:transform .4s var(--ease),background .3s}
.ul-hub .kcmp[open]>summary i,.ul-hub .kq[open] summary i{transform:rotate(45deg);background:var(--acc-fill);border-color:var(--acc-fill);color:var(--acc-on)}
.ul-hub .kcmp .kn{padding-bottom:20px}
.ul-hub .kt-w{overflow-x:auto;margin-bottom:20px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.ul-hub .kt{width:100%;min-width:720px;border-collapse:collapse;font-size:15px}
.ul-hub .kt caption{text-align:left;padding:16px 18px 6px;font-weight:500;font-size:18px}
.ul-hub .kt th,.ul-hub .kt td{text-align:left;padding:12px 18px;border-top:1px solid var(--line);vertical-align:top}
.ul-hub .kt thead th{font-weight:400;font-size:14px;color:var(--fg-3);white-space:nowrap}
.ul-hub .kt tbody th{font-weight:500;white-space:nowrap}
.ul-hub .kt td{color:var(--fg-2)}

.ul-hub .kcs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.ul-hub .kcs article{display:grid;gap:10px;align-content:start}
.ul-hub .kcs figure{margin:0 0 4px;aspect-ratio:4/5;overflow:hidden;border-radius:var(--r-l)}
.ul-hub .kcs figure img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ul-hub .kcs article:hover figure img{transform:scale(1.03)}
.ul-hub .kcs p,.ul-hub .ku p,.ul-hub .ksc p{font-size:16px;line-height:1.45;color:var(--fg-2)}

.ul-hub .ku{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ul-hub .ku li{display:grid;gap:8px;align-content:start;padding:20px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}
.ul-hub .ku .ku-m{font-size:15px;color:var(--fg)}

.ul-hub .kdev{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 56px}
.ul-hub .ksdk,.ul-hub .kpp{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.ul-hub .ksdk li,.ul-hub .kpp li{border-bottom:1px solid var(--line)}
.ul-hub .ksdk a{display:grid;grid-template-columns:72px minmax(0,1fr) 20px;gap:16px;align-items:center;padding:16px 0;color:inherit;text-decoration:none}
.ul-hub .ksdk b{font-weight:500;font-size:17px}
.ul-hub .ksdk span{font-size:16px;color:var(--fg-2)}
.ul-hub .ksdk i{font-style:normal;color:var(--acc-fill)}
.ul-hub .kpp a{display:grid;gap:4px;padding:14px 0;color:inherit;text-decoration:none}
.ul-hub .kpp span{font-size:14px;color:var(--fg-3)}
.ul-hub .kpp b{font-weight:500;font-size:17px}
.ul-hub .kpp p{font-size:15px;color:var(--fg-2)}
.ul-hub .ksdk a:hover b,.ul-hub .kpp a:hover b{color:var(--acc-fill)}

.ul-hub .ksup{display:grid;grid-template-columns:400px minmax(0,1fr);gap:24px 48px;align-items:start}
.ul-hub .ksup-cert{display:block;width:100%}
.ul-hub .ksup-cert img{display:block;width:100%;height:auto;border-radius:var(--r-m);border:1px solid var(--line);background:#fff}
.os-hub .ksup{grid-template-columns:260px minmax(0,1fr)}
.ul-hub .ksup-tx{display:grid;gap:16px}
.ul-hub .ksup-tx>p{font-size:17px;line-height:1.5;color:var(--fg-2);max-width:60ch}
.ul-hub .kst{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ul-hub .kst li{display:grid;gap:4px;padding-left:14px;border-left:2px solid var(--acc-fill)}
.ul-hub .kst b{font-weight:500;font-size:17px}
.ul-hub .kst span{font-size:15px;line-height:1.4;color:var(--fg-2)}
.ul-hub .kcase{padding:clamp(24px,3.4vw,48px);border-radius:var(--r-l);background:var(--surface);border:1px solid var(--line);display:grid;gap:12px;max-width:920px}
.ul-hub .kcase span{font-size:15px;color:var(--acc-fill);font-weight:500}
.ul-hub .kcase p{font-size:18px;line-height:1.5;color:var(--fg-2);max-width:60ch}

.ul-hub .ksc{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ul-hub .ksc a{height:100%;display:grid;gap:8px;align-content:start;padding:20px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);color:inherit;text-decoration:none;transition:border-color .3s}
.ul-hub .ksc a:hover{border-color:var(--acc-fill)}
.ul-hub .ksc span{margin-top:4px;font-size:15px;font-weight:500;color:var(--acc-fill)}

.ul-hub .kfaq>*{max-width:920px}
.ul-hub .kq{border-bottom:1px solid var(--line)}
.ul-hub .kq:first-of-type{border-top:1px solid var(--line)}
.ul-hub .kq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;font-size:18px;font-weight:500}
.ul-hub .kq summary::-webkit-details-marker{display:none}
.ul-hub .kq p{padding:0 50px 18px 0;font-size:16px;line-height:1.5;color:var(--fg-2)}
.ul-hub .kq a{color:var(--acc-fill)}

@media (max-width:1100px){.ul-hub .kg{--cols:3}.ul-hub .kcs{grid-template-columns:repeat(2,minmax(0,1fr))}.ul-hub .ksc{grid-template-columns:repeat(2,minmax(0,1fr))}.ul-hub .kst{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1279px){.ul-hub .kb{min-height:0}.ul-hub .kb-tx{width:auto;max-width:620px;padding:32px 28px 0}.ul-hub .kb-ph{position:static;margin-top:-8px}.ul-hub .kb-ph img{height:auto;max-height:460px;object-fit:cover;object-position:50% 0;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 14%);mask-image:linear-gradient(180deg,transparent 0,#000 14%)}.os-hub .kb-ph img{object-position:50% 100%}}
@media (max-width:860px){.ul-hub .kb-tx{padding:28px 24px 0}.ul-hub .kg{--cols:2}.ul-hub .ku,.ul-hub .kdev,.ul-hub .ksup,.os-hub .ksup{grid-template-columns:minmax(0,1fr)}.ul-hub .ksup-cert{max-width:360px}.os-hub .ksup-cert{max-width:260px}}
@media (max-width:560px){.ul-hub main>.band{padding-block:32px}.ul-hub .kf{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gutter)*-1);padding-inline:var(--gutter);scrollbar-width:none}.ul-hub .kf::-webkit-scrollbar{display:none}.ul-hub .kf label{flex:none;white-space:nowrap}.ul-hub main>.kb-band{padding-block:12px 24px}.ul-hub .kh{margin-bottom:18px}.ul-hub .kg{--cols:1;row-gap:28px}.ul-hub .kcs,.ul-hub .ksc,.ul-hub .kst{grid-template-columns:minmax(0,1fr)}.ul-hub .kcs figure{aspect-ratio:4/3}.ul-hub .kc-cut figure{aspect-ratio:5/4}.ul-hub .kb-tx p{font-size:17px}.ul-hub .kq p{padding-right:0}.ul-hub .ksdk a{grid-template-columns:60px minmax(0,1fr) 16px}}
