
body{margin:0;font-family:"Public Sans",system-ui,sans-serif}
:root{--e-out:cubic-bezier(0.23,1,0.32,1);--e-io:cubic-bezier(0.77,0,0.175,1);--e-drawer:cubic-bezier(0.32,0.72,0,1);--e-sway:cubic-bezier(0.45,0,0.55,1)}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes land{from{transform:var(--from)}to{transform:var(--rest)}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes breathe{0%,100%{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@keyframes sway{0%,100%{transform:rotateY(-4deg) rotateX(2deg)}50%{transform:rotateY(4deg) rotateX(-2deg) translateZ(10px)}}
@keyframes turn{0%,100%{transform:rotateY(-14deg)}50%{transform:rotateY(14deg)}}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes floaty{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes pulse{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes spin{from{transform:translateZ(var(--tz,0px)) rotate(0deg)}to{transform:translateZ(var(--tz,0px)) rotate(360deg)}}
@keyframes marq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes dash{to{stroke-dashoffset:-1000}}
@keyframes sheen{from{transform:translateX(-130%) skewX(-12deg)}to{transform:translateX(260%) skewX(-12deg)}}
@keyframes grain{0%{transform:translate(0,0)}17%{transform:translate(-37px,19px)}33%{transform:translate(23px,-41px)}50%{transform:translate(-17px,33px)}67%{transform:translate(41px,11px)}83%{transform:translate(-29px,-23px)}100%{transform:translate(0,0)}}
@keyframes ping{from{transform:scale(.55);opacity:.9}to{transform:scale(2.3);opacity:0}}

/* ---- reveal: each block animates when it comes into view; only once the page's
   own script has armed the page, so without the script everything simply shows ---- */
.rv-up{transition:opacity 800ms var(--e-out),transform 1100ms var(--e-out)}
.rv-armed .rv-up:not(.in){opacity:0;transform:translateY(42px)}
.rv-armed .rv-up:not(.in),.rv-armed .rv-up:not(.in) *{animation-play-state:paused!important}
.rv-line{transform-origin:left center;transition:transform 900ms var(--e-out)}
.rv-armed .rv-line:not(.in){transform:scaleX(0)}
.rh{transition:opacity 700ms var(--e-out),transform 900ms var(--e-out)}
.rv-armed .rh:not(.in):not(.split){opacity:0;transform:translateY(30px)}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.12em;margin-bottom:-.12em}
.w>span{display:inline-block;transition:transform 1000ms var(--e-out);transition-delay:calc(var(--bd,0ms) + var(--wi,0) * 38ms)}
.rv-armed .rh:not(.in) .w>span{transform:translateY(115%)}
.rv-img{transition:opacity 900ms var(--e-out),transform 1200ms var(--e-out)}
.rv-armed .rv-img:not(.in){opacity:0;transform:translateY(46px) scale(.97)}
.rv-armed .rv-img:not(.in),.rv-armed .rv-img:not(.in) *{animation-play-state:paused!important}
.ph-par img{transition:transform 1600ms var(--e-out),scale 700ms var(--e-out)}
.rv-armed .rv-img:not(.in) .ph-par img{transform:scale(1.14)}
.ph-tag{transition:opacity 600ms var(--e-out),transform 800ms var(--e-out)}
.rv-armed .ph-tag:not(.in){opacity:0;transform:translateX(-16px)}
.ph-sheen{position:absolute;top:0;bottom:0;left:0;width:42%;pointer-events:none;background:linear-gradient(100deg,transparent,rgba(var(--r255_255_255,255,255,255),.22),transparent);transform:translateX(-130%) skewX(-12deg)}
.rv-img.in .ph-sheen{animation:sheen 1600ms var(--e-io) 700ms both}
.tl-card{transition:transform 360ms var(--e-out),box-shadow 360ms var(--e-out)}
.lift{transition:transform 360ms var(--e-out)}
.tl-obj{animation:floaty 6.5s var(--e-sway) infinite;transition:scale 500ms var(--e-out)}
.pc-img img{transition:scale 600ms var(--e-out)}
.site-card{transition:transform 420ms var(--e-out)}
.rv.idle *{animation-play-state:paused!important}
/* the tilt layer is a flat box at z=0; where a rotated panel dips behind it, it must not swallow clicks */
.s3-tilt{will-change:transform;pointer-events:none}
.s3-tilt > *{pointer-events:auto}
.s3-rig{transition:transform 460ms cubic-bezier(0.23,1,0.32,1)}
.ft-spark{position:absolute;left:0;bottom:-1px;width:180px;height:3px;border-radius:3px;pointer-events:none;
  background:linear-gradient(90deg,rgba(var(--r143_168_255,143,168,255),0),rgba(var(--r143_168_255,143,168,255),.7) 70%,var(--cFFFFFF,#FFFFFF));
  animation:ftspark 7s cubic-bezier(0.45,0,0.55,1) infinite;will-change:transform}
@keyframes ftspark{0%{transform:translate3d(-200px,0,0);opacity:0}8%{opacity:1}62%{opacity:1}70%,100%{transform:translate3d(min(1500px,100vw),0,0);opacity:0}}
.ft-float{animation:ftfloat 8s cubic-bezier(0.45,0,0.55,1) infinite}
@keyframes ftfloat{0%,100%{transform:translate3d(0,0,0) rotateY(0deg)}50%{transform:translate3d(0,-10px,0) rotateY(3deg)}}
.ft-chip{animation:ftbob 4.2s cubic-bezier(0.45,0,0.55,1) infinite}
@keyframes ftbob{0%,100%{transform:translateZ(0)}50%{transform:translateZ(7px)}}
@keyframes ftglow{0%,100%{opacity:.55}50%{opacity:1}}
.ft-sheen{position:absolute;top:-30%;bottom:-30%;left:0;width:40%;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(var(--r255_255_255,255,255,255),.85),transparent);animation:ftsheen 6.5s cubic-bezier(0.45,0,0.55,1) infinite}
@keyframes ftsheen{0%,55%{transform:translateX(-140%) skewX(-18deg)}85%,100%{transform:translateX(330%) skewX(-18deg)}}
.ft-cur{position:absolute;border-radius:3px;pointer-events:none;opacity:0;animation:ftcurv 2.6s linear infinite}
.ft-cur.dn,.ft-cur.up{width:3px;height:26px;margin-top:-13px}
.ft-cur.rt,.ft-cur.lt{height:3px;width:26px;margin-left:-13px;animation-name:ftcurh}
.ft-cur.dn{background:linear-gradient(180deg,rgba(var(--r214_224_255,214,224,255),0),var(--cEEF2FF,#EEF2FF))}
.ft-cur.up{background:linear-gradient(0deg,rgba(var(--r214_224_255,214,224,255),0),var(--cEEF2FF,#EEF2FF))}
.ft-cur.rt{background:linear-gradient(90deg,rgba(var(--r214_224_255,214,224,255),0),var(--cEEF2FF,#EEF2FF))}
.ft-cur.lt{background:linear-gradient(270deg,rgba(var(--r214_224_255,214,224,255),0),var(--cEEF2FF,#EEF2FF))}
@keyframes ftcurv{0%{transform:translateY(0);opacity:0}15%,80%{opacity:1}100%{transform:translateY(var(--d));opacity:0}}
@keyframes ftcurh{0%{transform:translateX(0);opacity:0}15%,80%{opacity:1}100%{transform:translateX(var(--d));opacity:0}}
.ft-word{position:relative;margin:64px 0 30px;display:flex;justify-content:space-between;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  font-size:clamp(64px,13.4vw,210px);line-height:.8;letter-spacing:-0.04em;user-select:none;pointer-events:none;
  color:transparent;-webkit-text-stroke:1px rgba(var(--r143_168_255,143,168,255),.34);
  background:linear-gradient(180deg,rgba(59,43,255,calc(.34*var(--ga,1))),rgba(59,43,255,calc(0*var(--ga,1))) 78%);-webkit-background-clip:text;background-clip:text}
.ft-word span{display:inline-block;transition:transform 1100ms cubic-bezier(0.23,1,0.32,1),opacity 800ms cubic-bezier(0.23,1,0.32,1);
  transition-delay:calc(var(--i) * 60ms)}
.rv-armed .ft-word:not(.in) span{transform:translateY(46%);opacity:0}
.rv-armed .ft-word.rv-up:not(.in){transform:none;opacity:1}
.ft-top{transition:transform 160ms ease-out,background-color 200ms ease,border-color 200ms ease}
.ft-top:active{transform:scale(.94)}
@media (hover:hover) and (pointer:fine){.ft-top:hover{background:rgba(var(--r143_168_255,143,168,255),.14);border-color:var(--cAFC2FF,#AFC2FF)}
  .ft-lnk{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size 300ms cubic-bezier(0.23,1,0.32,1),color 200ms ease}
  .ft-lnk:hover{background-size:100% 1px;color:var(--cECEDF6,#ECEDF6)}}
@media (prefers-reduced-motion:reduce){.ft-float,.ft-chip,.ft-sheen,.ft-cur,.ft-spark{animation:none!important}}
.btn{transition:transform 160ms ease-out, background-color 200ms ease, border-color 200ms ease}
.btn:active{transform:scale(.97)}
.lnk{transition:color 200ms ease}
/* running text */
.mq{position:relative;overflow:hidden}
.mq-track{display:flex;width:max-content;animation:marq var(--mq,42s) linear infinite}
/* moving grain over every page */
.hm-grain{position:fixed;inset:-120px;z-index:70;pointer-events:none;opacity:.075;animation:grain 1.1s steps(1) infinite;
  background-image:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (hover:hover) and (pointer:fine){
  .s3:hover .s3-rig{transform:var(--hov)!important}
  .lnk:hover{color:var(--cAFC2FF,#AFC2FF)}
  .ph:hover img{scale:1.05}
  .tl:hover .tl-card{transform:translateY(-6px);box-shadow:0 0 0 1px rgba(var(--sr255_255_255,255,255,255),calc(.9*var(--sa,1))) inset,0 36px 54px -28px rgba(var(--sr14_16_32,14,16,32),calc(.5*var(--sa,1)))}
  .tl:hover .tl-obj{scale:1.06}
  .pc:hover .pc-img img{scale:1.07}
  .mq:hover .mq-track{animation-play-state:paused}
  .site-ph:hover{z-index:3}
  .site-ph:hover .site-card{transform:translateY(-8px)}
  .lift:hover{transform:translateY(-6px)}
  .sec-car:hover h3{color:var(--cAFC2FF,#AFC2FF)}
  .sec-car:hover .sec-cta{color:var(--cECEDF6,#ECEDF6)}
}
/* reduced motion: fewer and gentler — things still fade in, nothing travels */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important}
  .rv-up,.rh,.w>span,.rv-line,.ph-tag,.rv-img{transition-property:opacity!important;transition-duration:500ms!important}
  .rv-armed .rv-up:not(.in),.rv-armed .rh:not(.in),.rv-armed .ph-tag:not(.in),.rv-armed .rv-img:not(.in),
  .rv-armed .rh:not(.in) .w>span,.rv-armed .rv-line:not(.in),.rv-armed .rv-img:not(.in) .ph-par img{transform:none!important}
  .hm-grain{display:none}
}

/* ------------------------------------------------------------ page shell */
html{-webkit-text-size-adjust:100%;background:#080A1C}
body{overflow-x:hidden;background:transparent!important}
#hm-bg,#hm-bg-fx{position:fixed;inset:0;width:100%;height:100%;z-index:-1;display:block;pointer-events:none}
/* the slow wandering light over the board: a compositor-only drift */
.hm-glow{position:fixed;z-index:-1;left:50%;top:40%;width:110vmax;height:110vmax;margin:-55vmax 0 0 -55vmax;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(59,43,255,.17),rgba(59,43,255,.06) 55%,rgba(59,43,255,0));
  animation:glowdrift 38s cubic-bezier(0.45,0,0.55,1) infinite alternate;will-change:transform}
@keyframes glowdrift{0%{transform:translate3d(14vw,-10vh,0)}50%{transform:translate3d(-12vw,6vh,0)}100%{transform:translate3d(8vw,14vh,0)}}
/* grain holds still: a moving full-screen layer costs a frame budget for little */
.hm-grain{animation:none!important;inset:0!important}
.hm-page{position:relative;z-index:0}
/* full bleed: backgrounds run edge to edge, content keeps a 1328px measure */
:root{--g:max(56px, calc(50vw - 664px))}
.hm-page{width:100%!important;overflow-x:clip}
@media (min-width:1101px){
  .hm-page section,.hm-page footer,.hm-page .r-pad{padding-left:var(--g)!important;padding-right:var(--g)!important}
  .hm-page .r-mar{margin-left:var(--g)!important;margin-right:var(--g)!important}
  .hm-nav{padding-left:var(--g)!important;padding-right:var(--g)!important;
    background:linear-gradient(90deg,#EAF1FD 0,#DCE8FB calc(var(--g) + 150px),#9DB9EA calc(var(--g) + 215px),#4E72CC calc(var(--g) + 275px),
      #22418C calc(var(--g) + 330px),#13295E calc(var(--g) + 400px),#0B1638 calc(var(--g) + 660px),#080A1C 100%)!important}
  .r-hero{width:100%!important}
  .r-hero-text,.r-hero-phase{left:var(--g)!important}
  .r-hero-board{right:calc(var(--g) - 116px)!important}
}

/* ------------------------------------------------------------ page curtain */
#hm-curtain{position:fixed;inset:0;z-index:95;pointer-events:none;display:flex;visibility:hidden}
html.leaving #hm-curtain,html.entering #hm-curtain{visibility:visible}
#hm-curtain i{flex:1;background:linear-gradient(180deg,#1A1FB8 0%,#0D0F5E 55%,#080A1C 100%);transform:translateY(101%);transition:transform 380ms var(--e-io)}
#hm-curtain i:nth-child(2){transition-delay:40ms}
#hm-curtain i:nth-child(3){transition-delay:80ms}
#hm-curtain b{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);text-align:center;font-weight:500;
  font-family:'Martian Mono',monospace;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:#AFC2FF;opacity:0}
html.leaving #hm-curtain{pointer-events:auto}
html.leaving #hm-curtain i{transform:translateY(0)}
html.leaving #hm-curtain b{opacity:1;transition:opacity 200ms 200ms}
html.entering #hm-curtain i{transform:translateY(0);animation:cUp 620ms var(--e-drawer) 80ms forwards}
html.entering #hm-curtain i:nth-child(2){animation-delay:140ms}
html.entering #hm-curtain i:nth-child(3){animation-delay:200ms}
@keyframes cUp{from{transform:translateY(0)}to{transform:translateY(-101%)}}

/* ------------------------------------------------------------ progress, chapter, ring */
#hm-prog{position:fixed;left:0;right:0;top:0;height:2px;z-index:90;transform:scaleX(0);transform-origin:left center;
  background:linear-gradient(90deg,#3B2BFF,var(--c8FA8FF,#8FA8FF));box-shadow:0 0 12px rgba(var(--sr59_43_255,59,43,255),calc(.6*var(--sa,1)))}
#hm-ch{position:fixed;left:calc(var(--g,56px) / 2 - 9px);bottom:40px;z-index:45;display:flex;align-items:center;gap:12px;pointer-events:none;
  writing-mode:vertical-rl;transform:rotate(180deg) translateY(-12px);
  font-family:'Martian Mono',monospace;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--cA9B8E6,#A9B8E6);
  opacity:0;transition:opacity 420ms var(--e-out),transform 520ms var(--e-out)}
#hm-ch.on{opacity:1;transform:rotate(180deg)}
#hm-ch-n{color:var(--c8FA8FF,#8FA8FF)}
#hm-ch i{display:block;width:1px;height:46px;background:rgba(var(--r143_168_255,143,168,255),.3);overflow:hidden}
#hm-ch i b{display:block;width:100%;height:100%;background:var(--c8FA8FF,#8FA8FF);transform:scaleY(0);transform-origin:center bottom}
#hm-ch.swap #hm-ch-t,#hm-ch.swap #hm-ch-n{animation:chIn 420ms var(--e-out)}
#hm-ch.swap2 #hm-ch-t,#hm-ch.swap2 #hm-ch-n{animation:chIn2 420ms var(--e-out)}
@keyframes chIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes chIn2{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
#hm-ch-t,#hm-ch-n{display:inline-block}
#hm-ring,#hm-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:92;opacity:0;transition:opacity 260ms ease}
#hm-ring{width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:1.5px solid rgba(var(--r175_194_255,175,194,255),.85);will-change:transform}
#hm-ring::after{content:"";position:absolute;inset:-1.5px;border-radius:50%;background:rgba(var(--r143_168_255,143,168,255),.14);transform:scale(.4);opacity:0;transition:transform 320ms var(--e-out),opacity 320ms var(--e-out)}
#hm-ring.big::after{transform:scale(1.5);opacity:1}
#hm-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--cECEDF6,#ECEDF6);box-shadow:0 0 10px rgba(var(--sr143_168_255,143,168,255),calc(.9*var(--sa,1)))}
body.ring-on #hm-ring,body.ring-on #hm-dot{opacity:1}
@media (max-width:1100px),(hover:none){#hm-ch,#hm-ring,#hm-dot{display:none}}
@media (prefers-reduced-motion:reduce){
  #hm-curtain i{transition:none!important;animation:none!important;transform:translateY(101%)!important}
  html.leaving body{opacity:0;transition:opacity 160ms ease}
  #hm-ring,#hm-dot{display:none}
}
.hm-skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;border-radius:2px;background:var(--cECEDF6,#ECEDF6);color:var(--c080A1C,#080A1C);font-weight:600;text-decoration:none;transition:top 160ms var(--e-out)}
.hm-skip:focus{top:12px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--c8FA8FF,#8FA8FF);outline-offset:3px}
.rv.idle *,.s3.idle *,.mq.idle *,[data-spot].idle *{animation-play-state:paused!important}

/* ------------------------------------------------------------ language toggle */
.hm-lang{background:transparent;border:1px solid rgba(var(--r169_184_230,169,184,230),.35);border-radius:2px;height:34px;padding:0 10px;cursor:pointer;font-family:'Martian Mono',monospace;font-size:10px;letter-spacing:.14em;color:var(--cA9B8E6,#A9B8E6);white-space:nowrap;transition:border-color 200ms ease,transform 160ms ease-out}
.hm-lang:active{transform:scale(.97)}
.hm-lang [data-l]{opacity:.55;transition:opacity 200ms ease}
.hm-lang [data-l].on{opacity:1;color:var(--cECEDF6,#ECEDF6)}
@media (hover:hover) and (pointer:fine){.hm-lang:hover{border-color:rgba(var(--r169_184_230,169,184,230),.8)}}

/* ------------------------------------------------------------ map loaded on request */
#hm-map{position:relative;height:0;margin-top:0;overflow:hidden;border-radius:4px;opacity:0;transform:translateY(16px);
  transition:height 520ms var(--e-drawer),margin-top 520ms var(--e-drawer),opacity 420ms var(--e-out),transform 520ms var(--e-out);
  box-shadow:0 0 0 1px rgba(var(--sr143_168_255,143,168,255),calc(.35*var(--sa,1)))}
#hm-map.on{height:440px;margin-top:48px;opacity:1;transform:none}
#hm-map iframe{display:block;width:100%;height:440px;border:0;filter:saturate(.9)}

/* ------------------------------------------------------------ navigation */
.hm-burger{display:none;position:relative;z-index:61;width:46px;height:46px;margin-left:auto;border:1px solid rgba(var(--r169_184_230,169,184,230),.45);border-radius:2px;background:transparent;color:var(--cECEDF6,#ECEDF6);cursor:pointer;place-items:center;transition:transform 160ms ease-out,color 200ms ease,border-color 200ms ease}
.hm-burger:active{transform:scale(.97)}
.hm-burger i{position:absolute;left:13px;right:13px;height:1.6px;background:currentColor;transition:transform 320ms var(--e-drawer),opacity 200ms ease}
.hm-burger i:nth-child(1){top:16px}.hm-burger i:nth-child(2){top:22px}.hm-burger i:nth-child(3){top:28px}
html.nav-open .hm-burger i:nth-child(1){transform:translateY(6px) rotate(45deg)}
html.nav-open .hm-burger i:nth-child(2){opacity:0}
html.nav-open .hm-burger i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.hm-drawer-foot{display:none}

@media (max-width:1240px){
  .hm-nav .hm-links{margin-left:48px!important;gap:18px!important}
  .hm-nav{background:linear-gradient(90deg,#EAF1FD 0%,#DCE8FB 16%,#9DB9EA 22%,#4E72CC 27%,#22418C 32%,#13295E 38%,#0B1638 55%,#080A1C 100%)!important}
}
@media (max-width:1100px){
  .hm-nav{padding:0 20px!important;gap:12px!important;height:72px!important;
    background:linear-gradient(90deg,#EAF1FD 0%,#DCE8FB 26%,#9DB9EA 36%,#4E72CC 46%,#22418C 56%,#13295E 68%,#080A1C 100%)!important}
  .hm-nav > img{position:relative;z-index:61;width:128px!important}
  .hm-burger{display:grid}
  .hm-nav .hm-quote,.hm-nav > .hm-lang{display:none!important}
  /* the menu: a floating glass sheet under the bar, the page dimmed behind it */
  .hm-nav .hm-links{position:fixed;top:80px;left:12px;right:12px;z-index:60;margin:0!important;padding:14px 10px 12px;display:flex;flex-direction:column;
    gap:2px!important;max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);overflow-y:auto;overscroll-behavior:contain;
    border-radius:18px;background:rgba(12,16,44,.965);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);
    box-shadow:0 0 0 1px rgba(143,168,255,.18) inset,0 34px 70px -24px rgba(0,0,0,.75);counter-reset:hmnav;
    opacity:0;transform:translateY(-10px) scale(.975);transform-origin:top right;visibility:hidden;
    transition:opacity 260ms var(--e-out),transform 420ms var(--e-drawer),visibility 0s linear 420ms}
  html.nav-open .hm-nav .hm-links{opacity:1;transform:none;visibility:visible;transition:opacity 260ms var(--e-out),transform 420ms var(--e-drawer),visibility 0s}
  .hm-nav .hm-links::before{content:"MENU";display:block;padding:2px 14px 10px;font:500 10px 'Martian Mono',monospace;letter-spacing:.2em;color:#6D76A0}
  .hm-nav .hm-links > a{position:relative;display:flex!important;align-items:center;gap:14px;padding:12px 14px!important;border-radius:11px;
    font-family:'Bricolage Grotesque',sans-serif!important;font-size:19px!important;font-weight:600!important;letter-spacing:-.01em;line-height:1.2;
    color:#ECEDF6!important;text-decoration:none;opacity:0;transform:translateY(-6px);
    transition:opacity 280ms var(--e-out),transform 380ms var(--e-out),background-color 200ms ease}
  .hm-nav .hm-links > a::before{counter-increment:hmnav;content:counter(hmnav,decimal-leading-zero);flex:none;width:22px;
    font:500 10px 'Martian Mono',monospace;letter-spacing:.08em;color:#6D76A0}
  .hm-nav .hm-links > a::after{content:"";margin-left:auto;width:16px;height:16px;flex:none;background:currentColor;opacity:.35;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
    transition:opacity 200ms ease,transform 260ms var(--e-out)}
  .hm-nav .hm-links > a + a{background-image:linear-gradient(rgba(143,168,255,.09),rgba(143,168,255,.09));background-repeat:no-repeat;background-position:14px 0;background-size:calc(100% - 28px) 1px}
  .hm-nav .hm-links > a:active{background:rgba(143,168,255,.1)}
  html.nav-open .hm-nav .hm-links > a{opacity:1;transform:none}
  .hm-nav .hm-links > a[aria-current]{color:#AFC2FF!important;background:rgba(59,43,255,.2)}
  .hm-nav .hm-links > a[aria-current] + a{background-image:none}
  .hm-nav .hm-links > a[aria-current]::before{color:#8FA8FF}
  .hm-nav .hm-links > a[aria-current]::after{opacity:1;transform:none;
    -webkit-mask:none;mask:none;width:7px;height:7px;border-radius:50%;background:#8FA8FF;box-shadow:0 0 0 4px rgba(143,168,255,.18)}
  html.nav-open .hm-nav .hm-links > a:nth-child(2){transition-delay:25ms}html.nav-open .hm-nav .hm-links > a:nth-child(3){transition-delay:50ms}
  html.nav-open .hm-nav .hm-links > a:nth-child(4){transition-delay:75ms}html.nav-open .hm-nav .hm-links > a:nth-child(5){transition-delay:100ms}
  html.nav-open .hm-nav .hm-links > a:nth-child(6){transition-delay:125ms}html.nav-open .hm-nav .hm-links > a:nth-child(7){transition-delay:150ms}
  html.nav-open .hm-nav .hm-links > a:nth-child(8){transition-delay:175ms}
  .hm-drawer-foot{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 4px 2px;padding-top:14px;border-top:1px solid rgba(143,168,255,.12);
    opacity:0;transition:opacity 300ms var(--e-out) 120ms}
  html.nav-open .hm-drawer-foot{opacity:1}
  .hm-drawer-foot .btn{flex:1 1 auto;justify-content:center;height:46px;padding:0 18px;display:inline-flex;align-items:center;gap:10px;border-radius:10px;
    background:#120AB3;color:#FFFFFF!important;font-size:14.5px;font-weight:600;text-decoration:none;box-shadow:0 14px 30px -14px rgba(18,10,179,.9)}
  .hm-drawer-foot .hm-lang{height:46px;border-radius:10px;padding:0 14px;color:#A9B8E6;border-color:rgba(169,184,230,.3)}
  .hm-drawer-foot .hm-lang [data-l].on{color:#ECEDF6}
  .hm-drawer-mail{flex-basis:100%;display:block;padding:10px 4px 2px;font:500 10px 'Martian Mono',monospace;letter-spacing:.14em;color:#6D76A0;text-decoration:none}
  /* the page behind: dimmed and softened; a tap there closes the menu */
  .hm-page > .hm-nav::after{content:"";position:fixed;left:0;right:0;top:72px;bottom:0;z-index:59;pointer-events:none;opacity:0;
    background:rgba(4,6,20,.52);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:opacity 320ms var(--e-out)}
  html.nav-open .hm-page > .hm-nav::after{opacity:1;pointer-events:auto}
  /* light theme */
  html[data-theme="light"] .hm-nav .hm-links{background:rgba(255,255,255,.975);box-shadow:0 0 0 1px rgba(14,18,51,.07) inset,0 34px 70px -26px rgba(14,18,51,.4)}
  html[data-theme="light"] .hm-nav .hm-links::before,html[data-theme="light"] .hm-nav .hm-links > a::before{color:#8A90AB}
  html[data-theme="light"] .hm-nav .hm-links > a{color:#10143A!important}
  html[data-theme="light"] .hm-nav .hm-links > a + a{background-image:linear-gradient(rgba(14,18,51,.07),rgba(14,18,51,.07))}
  html[data-theme="light"] .hm-nav .hm-links > a:active{background:rgba(18,10,179,.05)}
  html[data-theme="light"] .hm-nav .hm-links > a[aria-current]{color:#120AB3!important;background:rgba(18,10,179,.07)}
  html[data-theme="light"] .hm-nav .hm-links > a[aria-current]::before{color:#120AB3}
  html[data-theme="light"] .hm-nav .hm-links > a[aria-current]::after{background:#120AB3;box-shadow:0 0 0 4px rgba(18,10,179,.12)}
  html[data-theme="light"] .hm-drawer-foot{border-top-color:rgba(14,18,51,.08)}
  html[data-theme="light"] .hm-drawer-foot .hm-lang{color:#4A5070;border-color:#D3D8E8}
  html[data-theme="light"] .hm-drawer-foot .hm-lang [data-l].on{color:#0E1020}
  html[data-theme="light"] .hm-drawer-mail{color:#8A90AB}
  html[data-theme="light"] .hm-page > .hm-nav::after{background:rgba(14,18,51,.3)}
  html.nav-open{overflow:hidden}
}
@media (min-width:640px) and (max-width:1100px){
  .hm-nav .hm-links{left:auto;right:20px;width:380px}
}

/* ------------------------------------------------------------ layout below desktop */
@media (max-width:1100px){
  .hm-page section{padding-left:32px!important;padding-right:32px!important}
  .hm-page footer{padding-left:32px!important;padding-right:32px!important}
  .hm-page [style*="grid-template-columns: repeat(4"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .hm-page [style*="grid-template-columns: repeat(5"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .hm-page [style*="grid-template-columns: repeat(3"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .r-st{flex-direction:column!important;align-items:stretch!important;gap:44px!important}
  .r-st > *{max-width:100%!important}
  .r-fw{width:auto!important;max-width:100%!important;flex-shrink:1!important}
  .r-ctr{display:flex!important;justify-content:center!important}
  .hm-page h1{font-size:58px!important}
  .hm-page h2{font-size:46px!important;max-width:100%!important}
  .r-row-wrap{flex-wrap:wrap!important}
}
@media (max-width:560px){
  .hm-page [style*="grid-template-columns: repeat(2"]{grid-template-columns:minmax(0,1fr)!important}
}
@media (max-width:760px){
  .hm-page section{padding:60px 20px!important}
  .hm-page footer{padding:0 20px 32px!important}
  .hm-page .ft-base{flex-direction:column;gap:10px}
  .hm-page [style*="grid-template-columns: repeat(3"]{grid-template-columns:minmax(0,1fr)!important}
  .hm-page [style*="grid-template-columns: repeat(5"]{grid-template-columns:minmax(0,1fr)!important}
  .hm-page [style*="grid-template-columns: 1fr 1fr"]{grid-template-columns:minmax(0,1fr)!important}
  .hm-page .r-grid-1{grid-template-columns:minmax(0,1fr)!important}
  .hm-page h1{font-size:42px!important;line-height:.95!important}
  .hm-page h2{font-size:34px!important;line-height:.98!important}
  .hm-page h3[style*="font-size: 40px"]{font-size:28px!important}
  .hm-page blockquote{font-size:24px!important}
  .hm-page p{max-width:100%!important}
  .r-btns{flex-wrap:wrap}
  .r-btns > a,.r-btns > button{flex:1 1 auto;justify-content:center}
  .r-hide-m{display:none!important}
  .r-tabs{flex-wrap:wrap}
  .r-tabs button{flex:1 1 auto}
}

/* ------------------------------------------------------------ home hero */
@media (max-width:1100px){
  .r-hero{height:auto!important;padding:120px 32px 60px;display:flex;flex-direction:column;gap:20px}
  .r-hero-text{position:relative!important;left:auto!important;top:auto!important;width:auto!important;max-width:620px}
  .r-hero-board{position:relative!important;right:auto!important;top:auto!important;width:820px!important;height:620px!important;align-self:center;margin:-40px 0 -60px}
  .r-hero-phase{position:relative!important;left:auto!important;bottom:auto!important;width:auto!important;max-width:540px}
}
@media (max-width:760px){
  .r-hero{padding:100px 20px 48px}
  .r-hero-text h1{font-size:52px!important}
  .r-hero-stats{flex-wrap:wrap}
  .r-hero-stats > div{flex-basis:40%!important;border-left:0!important;padding-left:0!important}
}

/* ------------------------------------------------------------ quality staircase */
@media (max-width:1100px){
  .r-stair{height:auto!important;display:flex;flex-direction:column-reverse;gap:10px}
  .r-stair-scene{position:relative!important;left:auto!important;top:auto!important;align-self:center}
  .r-stair-text{position:relative!important;right:auto!important;top:auto!important;width:auto!important}
}
@media (max-width:760px){
  .r-stair-text > div:first-child{font-size:42px!important}
}

/* ------------------------------------------------------------ process board */
@media (max-width:1100px){
  .r-flat{transform:none!important}
  .r-flat > .stage{--z:0px!important}
}
@media (max-width:760px){
  .hm-page .r-proc-grid{grid-template-columns:minmax(0,1fr)!important}
}

/* ------------------------------------------------------------ lighter motion on small screens */
@media (max-width:760px){
  .hm-page [style*="animation: sway 16s"]{animation:none!important}
}

/* ------------------------------------------------------------ flat photos and cards scale with their column */
@media (max-width:1100px){
  .hm-page .ph{max-width:100%;height:auto!important}
  .hm-page .tl{width:100%!important;max-width:100%}
  .hm-page .tl-card{height:auto!important}
  .hm-page .tl-card img[style*="left:"]{left:6%!important;top:6%!important;width:88%!important;height:88%!important}
}

/* ------------------------------------------------------------ about: the site collage stacks below desktop */
@media (max-width:1100px){
  .site-row{flex-direction:column!important;gap:48px!important}
  .site-row > div:first-child{max-width:100%!important;padding-top:0!important}
  .site-collage{width:100%!important;height:auto!important;display:grid;grid-template-columns:1.4fr 1fr;gap:24px;align-items:start}
  .site-ph{position:relative!important;left:auto!important;top:auto!important;width:auto!important}
  .site-ph .ph{width:100%!important}
}
@media (max-width:760px){
  .site-collage{grid-template-columns:minmax(0,1fr)}
}
@keyframes spin2{to{transform:rotate(360deg)}}

/* ------------------------------------------------------------ scroll-linked motion on the compositor
   sections clip without becoming scroll containers, so the photos can take
   their drift straight from the page scroll */
@supports (overflow:clip){.hm-page section{overflow:clip!important}}
@supports (animation-timeline: view()){
  html.sda #hm-prog{animation:hmprog linear both;animation-timeline:scroll(root block)}
  html.sda .ph{view-timeline:--ph block}
  html.sda .ph-par{animation:hmpar linear both;animation-timeline:--ph}
}
@keyframes hmprog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes hmpar{from{transform:translate3d(0,5%,0)}to{transform:translate3d(0,-5%,0)}}

/* ------------------------------------------------------------ rhythm: one even gap between sections
   (sections are transparent now, so their old 120–150px paddings read as empty bands) */
@media (min-width:761px){
  .hm-page > section.rv{padding-top:88px!important;padding-bottom:88px!important}
}
@media (min-width:761px) and (max-width:1100px){
  .hm-page > section.rv{padding-top:72px!important;padding-bottom:72px!important}
}

/* ------------------------------------------------------------ the header stays while the page scrolls */
.hm-page > .hm-nav{position:fixed!important;top:0;left:0;right:0;width:auto!important;z-index:80!important;
  transition:box-shadow 320ms ease}
html.nav-scrolled .hm-page > .hm-nav{box-shadow:0 18px 40px -22px rgba(0,0,0,.95),0 1px 0 rgba(143,168,255,.18)}
.hm-nav-space{height:84px}
@media (max-width:1100px){.hm-nav-space{height:72px}}

/* ------------------------------------------------------------ footer: the chip on its board */
@media (max-width:1100px){
  .hm-page .ft-main{grid-template-columns:minmax(0,1fr)!important;gap:24px!important;padding-top:40px!important}
  .hm-page .ft-stage{margin:0 auto}
}
@media (max-width:760px){
  .hm-page .ft-stage{transform:scale(.74);transform-origin:top center;margin:0 0 -88px calc(50% - 230px)}
  .hm-page .ft-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}
  .hm-page .ft-h{font-size:34px!important}
  .hm-page .ft-base{flex-direction:column;align-items:flex-start;gap:10px}
  .hm-page .ft-word{margin:44px 0 22px;font-size:12.2vw}
}

/* ------------------------------------------------------------ contact: the WebGL site model */
.hm-map3d{background:url(map-still.webp) center/100% 100% no-repeat;border-radius:6px}
.hm-map3d.gl-on{background:none}
.hm-map3d canvas:active{cursor:grabbing}
@media (max-width:1100px){
  .hm-page .hm-map3d{width:100%!important;max-width:660px;height:auto!important;aspect-ratio:660/560}
}
/* the first block of a long list doesn't need its own top rule and padding */
.hm-page > section.rv > div > div[style*="padding: 80px 0 30px"]:first-child{padding-top:8px!important;border-top:0!important}

/* ------------------------------------------------------------ the concept models (car, SMT machine) */
.hm-page .vw-sec{scroll-margin-top:84px}
@media (max-width:1240px){
  .hm-page .vw{height:640px}
  .hm-page .vw-panel{width:290px}
  .hm-page .vw-text{font-size:12.5px}
}
@media (max-width:900px){
  .hm-page .vw-top{flex-direction:column;align-items:flex-start!important;gap:10px!important}
  .hm-page .vw-note{text-align:left!important}
  .hm-page .vw{height:auto}
  .hm-page .vw canvas{position:relative;height:440px}
  .hm-page .vw-dots,.hm-page .vw-lead{bottom:auto;height:440px}
  .hm-page .vw-lead{display:none}
  .hm-page .vw-load{top:210px}
  .hm-page .vw-panel{position:static;transform:none;width:auto;margin:0 14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .hm-page .vw-item{padding:10px 12px}
  .hm-page .vw-item.act{grid-column:1 / -1}
  .hm-page .vw-foot{position:static;padding:14px 14px 18px}
}
@media (max-width:560px){
  .hm-page .vw canvas{height:360px}
  .hm-page .vw-dots,.hm-page .vw-lead{height:360px}
  .hm-page .vw-load{top:170px}
  .hm-page .vw-panel{grid-template-columns:minmax(0,1fr)}
  .hm-page .vw-hint{display:none}
}
/* ------------------------------------------------------------ Capabilities hero: the whole SMT line on the page background */
.hm-page .hl-sec{padding-top:0!important;padding-bottom:0!important}
.hm-page .vw.vw-hero{height:clamp(660px,calc(100vh - 88px),880px)}
@media (max-width:1240px){.hm-page .vw.vw-hero{height:clamp(600px,calc(100vh - 80px),780px)}}
/* below desktop the words go above the line and the list below it, so the line keeps the full width */
@media (max-width:1100px){
  .hm-page .hl-copy{position:static;width:auto;max-width:640px;padding:44px 0 8px}
  .hm-page .vw.vw-hero{height:auto}
  .hm-page .vw-hero canvas{position:relative;inset:auto;margin:0 -32px;width:calc(100% + 64px);height:clamp(300px,54vw,540px)}
  .hm-page .vw-hero .vw-dots,.hm-page .vw-hero .vw-lead{bottom:auto;height:clamp(300px,54vw,540px)}
  .hm-page .vw-hero .vw-lead{display:none}
  .hm-page .vw-hero .vw-load{top:40%}
  .hm-page .vw-hero .vw-panel{position:static;transform:none;width:auto;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .hm-page .vw-hero .vw-item{padding:10px 12px}
  .hm-page .vw-hero .vw-item.act{grid-column:1 / -1}
  .hm-page .vw-hero .vw-foot{position:static;padding:14px 0 6px}
  .hm-page .hl-note{position:static;padding:6px 0 0}
}
@media (max-width:760px){
  .hm-page .hl-copy{padding-top:24px}
  .hm-page .vw-hero canvas{margin:0 -20px;width:calc(100% + 40px);height:clamp(250px,70vw,380px)}
  .hm-page .vw-hero .vw-dots{height:clamp(250px,70vw,380px)}
  .hm-page .vw-hero .vw-panel{grid-template-columns:minmax(0,1fr)}
}
/* the hero's words keep a soft dark pool behind them when the model comes close */
.hm-page .hl-copy::before{content:"";position:absolute;left:-90px;top:-50px;right:-120px;bottom:-60px;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,rgba(var(--r8_10_28,8,10,28),.72),rgba(var(--r8_10_28,8,10,28),.4) 60%,rgba(var(--r8_10_28,8,10,28),0))}
@media (max-width:1100px){.hm-page .hl-copy::before{display:none}}
/* the car's two lists (outside / inside) below desktop: the shown one spans the grid */
@media (max-width:1100px){
  .hm-page .vw-hero .vw-set{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .hm-page .vw-hero .vw-set[data-mode=in],.hm-page .vw.inside .vw-set[data-mode=out]{display:none}
  .hm-page .vw.inside .vw-set[data-mode=in]{display:grid}
  .hm-page .vw-hero .vw-cap{grid-column:1 / -1}
}
@media (max-width:760px){.hm-page .vw-hero .vw-set{grid-template-columns:minmax(0,1fr)}}
/* ------------------------------------------------------------ product spotlight below desktop: a square stage, not a tall one */
@media (max-width:1100px){
  .hm-page .spot-stage{flex:0 0 auto!important;width:min(100%,560px)!important;height:auto!important;aspect-ratio:1 / 1;align-self:center}
  .hm-page .spot-stage .spot-slide > div:first-child{width:78%!important;margin-left:-39%!important;bottom:18px!important}
  .hm-page .spot-stage .spot-slide > div:nth-child(2){left:6%!important;right:6%!important;top:4%!important;bottom:11%!important}
}
/* ------------------------------------------------------------ desktop scale: the site is drawn at 80% on laptop and desktop screens
   (the layout was designed for that density); viewport-based sizes are divided by the same factor */
@media (min-width:1280px){
  html{zoom:.8}
  :root{--g:max(56px, calc(62.5vw - 664px))}
  .hm-page .vw.vw-hero{height:clamp(660px,calc(125vh - 88px),880px)}
}
/* the hero's opening words line up with the page's content column, not the window edge */
@media (min-width:1101px){.hm-page .hl-copy{left:var(--g)}}
/* ------------------------------------------------------------ the live staircase on Quality */
@media (max-width:1100px){
  .hm-page .st3d{position:relative!important;left:auto!important;top:auto!important;width:calc(100% + 64px)!important;height:auto!important;aspect-ratio:930 / 600;margin:0 -32px;align-self:stretch}
}
@media (max-width:760px){.hm-page .st3d{width:calc(100% + 40px)!important;margin:0 -20px}}
/* ------------------------------------------------------------ Capabilities: photo and live model stacked below desktop */
@media (max-width:1100px){
  .hm-page .svc-vis{width:100%!important;max-width:640px;height:auto!important;display:flex;flex-direction:column;gap:14px;align-self:center}
  .hm-page .svc-vis > div{position:relative!important;left:auto!important;right:auto!important;top:auto!important;width:100%!important;height:auto!important}
  .hm-page .svc-vis figure{width:100%!important;height:auto!important}
  .hm-page .svc-vis > div:last-child{aspect-ratio:420 / 292}
}

/* ------------------------------------------------------------ header between tablet and the zoomed desktop
   (1101–1279px): the full menu, the theme and language switches and the
   quote button share a narrow bar — tighter gutters and gaps keep them all on it */
@media (min-width:1101px) and (max-width:1279px){
  .hm-page > .hm-nav{padding-left:26px!important;padding-right:26px!important;gap:14px!important}
  .hm-page > .hm-nav img{width:118px!important}
  .hm-nav .hm-links{margin-left:22px!important;gap:12px!important}
  .hm-nav > .hm-theme i{width:22px}
  /* the light patch behind the logo ends before the first menu item */
  html:not([data-theme="light"]) .hm-page > .hm-nav{background:linear-gradient(90deg,#EAF1FD 0,#DCE8FB 124px,#9DB9EA 146px,#4E72CC 158px,
    #22418C 168px,#13295E 182px,#0B1638 290px,#080A1C 100%)!important}
  .hm-nav .hm-links > a{font-size:13.5px!important}
  .hm-nav > .hm-theme{margin-right:-6px}
  .hm-nav .hm-quote{padding:0 15px!important;font-size:13.5px!important}
}

.hm-page [style*="width: 1440px"]{width:100%!important}
.r-vig{left:50%!important;right:auto!important;width:380px!important;margin-left:-190px!important}
@media (max-width:1100px){.ab-band{flex-direction:column;align-items:flex-start!important;gap:26px!important;padding:32px 26px!important}}
.hm-page [id]{scroll-margin-top:96px}

/* ------------------------------------------------------------ light / dark switch */
.hm-theme{display:inline-flex;align-items:center;gap:2px;height:34px;padding:0 3px;flex-shrink:0;border:1px solid rgba(169,184,230,.35);
  border-radius:2px;background:transparent;color:#A9B8E6;cursor:pointer;transition:border-color 200ms ease}
.hm-theme i{display:grid;place-items:center;width:27px;height:26px;border-radius:1px;transition:background-color 220ms ease,color 220ms ease}
.hm-theme svg{width:14px;height:14px;display:block}
.hm-theme i.dk{background:rgba(143,168,255,.18);color:#ECEDF6}
.hm-theme:hover{border-color:rgba(169,184,230,.8)}
.hm-theme:active i{transform:scale(.94)}
html[data-theme="light"] .hm-theme{border-color:#D3D8E8;color:#7A819E}
html[data-theme="light"] .hm-theme:hover{border-color:#9DA5C4}
html[data-theme="light"] .hm-theme i.dk{background:transparent;color:#7A819E}
html[data-theme="light"] .hm-theme i.lt{background:#120AB3;color:#FFFFFF}
@media (min-width:1280px){.hm-nav > .hm-theme{margin-right:-24px}}
@media (max-width:1100px){.hm-nav > .hm-theme{position:relative;z-index:61;height:40px;margin-left:auto}.hm-nav > .hm-theme i{width:32px;height:32px}
  .hm-nav > .hm-theme + .hm-lang + .hm-quote + .hm-burger,.hm-nav > .hm-theme ~ .hm-burger{margin-left:0}
}

/* ------------------------------------------------------------ light theme: the page shell
   paper-white ground with the circuit printed faintly on it (painted once, it
   never moves); the drifting light and the running current are left out */
html[data-theme="light"]{background:#F4F6FB;color-scheme:light;--sa:.38;--ga:.4}
html[data-theme="light"] #hm-bg-fx,html[data-theme="light"] .hm-glow{display:none}
html[data-theme="light"] .hm-grain{opacity:.045;mix-blend-mode:multiply}
html.theme-swap,html.theme-swap *,html.theme-swap *::before,html.theme-swap *::after{transition:none!important}
::view-transition-old(root),::view-transition-new(root){animation-duration:380ms;animation-timing-function:cubic-bezier(0.23,1,0.32,1)}
html[data-theme="light"] .hm-page > .hm-nav{background:rgba(250,251,254,.88)!important;box-shadow:0 1px 0 rgba(14,18,51,.07)}
/* (a backdrop filter would trap the fixed phone drawer inside the bar, so only on desktop) */
@media (min-width:1101px){html[data-theme="light"] .hm-page > .hm-nav{-webkit-backdrop-filter:saturate(1.3) blur(14px);backdrop-filter:saturate(1.3) blur(14px)}}
html[data-theme="light"].nav-scrolled .hm-page > .hm-nav{box-shadow:0 14px 34px -24px rgba(14,18,51,.35),0 1px 0 rgba(14,18,51,.08)}
html[data-theme="light"] #hm-curtain i{background:linear-gradient(180deg,#FFFFFF 0%,#EEF1F8 55%,#E2E7F3 100%)}
html[data-theme="light"] #hm-curtain b{color:#120AB3}
@media (max-width:1100px){html[data-theme="light"] .hm-page > .hm-nav{background:rgba(250,251,254,.94)!important}}

html[data-theme="light"]{--c05060F:#F8F9FF;--c080A1C:#F6F7FD;--c0A0D22:#F5F6FC;--c0A0D24:#F5F6FC;--c0B0F2E:#F3F4FA;--c0B1638:#EEF1F6;--c13295E:#DBE0EA;--c141936:#EDEFF4;--c161C44:#E8EBF5;--c1A1F42:#E6E9F3;--c1E2552:#E0E2EC;--c222A5C:#DBDEE8;--c2C3466:#D0D6EB;--c3B4580:#B4B9CE;--c4F5782:#999EB2;--c6D76A0:#7B819D;--c8793C2:#676E88;--c8FA8FF:#3546C0;--c9DB9EA:#0B4BBE;--c9FB0E0:#4E5770;--cA9B6DE:#4A526A;--cA9B8E6:#474F68;--cAFC2FF:#3342BC;--cC9D0E6:#2F3752;--cC9D3F5:#2B324E;--cCDD1E4:#303450;--cD6DEF8:#202741;--cD9A441:#976C0E;--cDCE8FB:#112038;--cEAF1FD:#0B1830;--cECEDF6:#151832;--cEEF2FF:#10162F;--cFFFFFF:#0A0C25;--r12_16_44:243,244,250;--r143_168_255:53,70,192;--r169_184_230:71,79,104;--r175_194_255:51,66,188;--r18_24_66:234,238,248;--r214_224_255:30,37,63;--r22_28_72:231,234,244;--r22_30_78:229,232,242;--r255_255_255:10,12,37;--r5_6_15:248,249,255;--r8_10_28:246,247,253;--sr0_0_0:14,18,51;--sr143_168_255:53,70,192;--sr14_16_32:14,18,51;--sr175_194_255:51,66,188;--sr255_255_255:10,12,37;--sr4_6_20:14,18,51;--sr59_43_255:59,43,255;--sr8_10_28:14,18,51}

/* ---------------------------------------------------------------- language picker (EN ID JA ZH KO DE) */
.hm-langsel{position:relative;flex-shrink:0}
.hm-langsel .hm-lang{display:inline-flex;align-items:center;gap:7px;padding:0 10px 0 9px}
.hm-lang .hm-globe{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.1}
.hm-lang .hm-caret{width:9px;height:6px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:transform 220ms var(--e-out)}
.hm-langsel.open .hm-caret{transform:rotate(180deg)}
.hm-lang [data-lang-cur]{min-width:2ch;color:var(--cECEDF6,#ECEDF6)}
.hm-lang-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:70;min-width:212px;padding:6px;box-sizing:border-box;
  background:#FFFFFF;border:1px solid #D9DDEA;border-radius:8px;box-shadow:0 22px 44px -20px rgba(14,18,51,.38),0 2px 6px rgba(14,18,51,.06);
  opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top right;
  transition:opacity 160ms ease,transform 220ms var(--e-out),visibility 0s linear 220ms}
.hm-langsel.open .hm-lang-menu{opacity:1;visibility:visible;transform:none;transition:opacity 160ms ease,transform 220ms var(--e-out),visibility 0s}
.hm-lang-menu button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;height:38px;padding:0 12px;box-sizing:border-box;
  border:0;border-radius:5px;background:transparent;color:#2A3050;font:500 14px/1 'Public Sans',sans-serif;text-align:left;cursor:pointer;
  transition:background-color 160ms ease,color 160ms ease}
.hm-lang-menu button b{font:500 10px/1 'Martian Mono',monospace;letter-spacing:.12em;color:#8A90AA}
.hm-lang-menu button.on{color:#120AB3;background:rgba(18,10,179,.065);font-weight:600}
.hm-lang-menu button.on b{color:#120AB3}
.hm-lang-menu button:focus-visible{outline:2px solid #120AB3;outline-offset:-2px}
@media (hover:hover) and (pointer:fine){
  .hm-lang-menu button:hover{background:rgba(14,18,51,.05)}
  .hm-lang-menu button.on:hover{background:rgba(18,10,179,.09)}
}
.hm-lang-chips{display:none}
@media (max-width:1100px){
  .hm-nav > .hm-langsel{display:none!important}
  .hm-lang-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;flex-basis:100%;margin-bottom:4px}
  .hm-lang-chips button{height:42px;padding:0 6px;border-radius:10px;border:1px solid #D3D8E8;background:transparent;color:#4A5070;
    font:500 13.5px/1 'Public Sans',sans-serif;cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 160ms ease-out}
  .hm-lang-chips button:active{transform:scale(.97)}
  .hm-lang-chips button.on{border-color:#120AB3;color:#120AB3;background:rgba(18,10,179,.06);font-weight:600}
  html:lang(ja) .hm-nav .hm-links::before{content:"\30E1\30CB\30E5\30FC"}
  html:lang(zh-Hans) .hm-nav .hm-links::before{content:"\83DC\5355"}
  html:lang(ko) .hm-nav .hm-links::before{content:"\BA54\B274"}
  html:lang(de) .hm-nav .hm-links::before{content:"MEN\DC"}
}
@media (prefers-reduced-motion:reduce){.hm-lang-menu{transform:none;transition:opacity 120ms ease,visibility 0s linear 120ms}.hm-langsel.open .hm-lang-menu{transition:opacity 120ms ease,visibility 0s}}
/* line breaking per script: Korean wraps between words, German may hyphenate */
html:lang(ko) body{word-break:keep-all;overflow-wrap:break-word}
html:lang(de) [data-en]{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}
