.classic-home .wrap{width:100%;max-width:1600px}.classic-home .hero,.classic-home .sec{scroll-snap-align:start;scroll-margin-top:82px}.classic-home .hero-scene .person{filter:drop-shadow(0 22px 28px rgba(30,57,120,.13))}.classic-home .hero-scene .p-mid{filter:drop-shadow(0 28px 34px rgba(30,57,120,.18))}.classic-home .hero-scene:after{content:"";position:absolute;z-index:0;left:8%;right:3%;bottom:6%;height:24%;border-radius:50%;background:radial-gradient(ellipse,rgba(73,113,232,.16),transparent 68%);filter:blur(18px);pointer-events:none}.classic-home .lab-table{background:linear-gradient(90deg,#274fc1,#5a82ff 48%,#274fc1);box-shadow:0 10px 28px rgba(53,96,212,.28)}
.classic-home .sec:before{content:"";position:absolute;inset:7% 2.5%;z-index:0;border:1px solid rgba(120,151,226,.13);border-radius:48px;pointer-events:none}.classic-home #proc{background:linear-gradient(135deg,#fff 0%,#f4f7ff 100%)}.classic-home #apps{background:linear-gradient(135deg,#f3f6ff 0%,#fbf8ff 54%,#fff9ef 100%)}.classic-home #fac{background:linear-gradient(135deg,#fff 0%,#f4fbf7 100%)}.classic-home .left-col{position:relative}.classic-home .left-col:before{content:"";position:absolute;left:-22px;top:4px;width:5px;height:72px;border-radius:10px;background:linear-gradient(#4a7dff,#8a6cff,#f8709a)}
@media(min-width:1025px){html.home-stage-ready{scroll-snap-type:y proximity}.classic-home .wrap{max-width:none;padding-inline:clamp(56px,6.2vw,132px)}.classic-home .nav-in{height:82px}.classic-home .loumo-logo{width:clamp(176px,11.5vw,214px)}.classic-home .menu{gap:clamp(24px,2.1vw,44px)}.classic-home .menu a{font-size:clamp(14px,.93vw,17px)}.classic-home .hero{display:flex;min-height:100vh;padding:82px 0 0}.classic-home .hero-in{width:100%;min-height:calc(100vh - 82px);grid-template-columns:minmax(340px,.68fr) minmax(720px,1.62fr);align-items:center;gap:clamp(34px,4vw,84px)}.classic-home .hero-title{font-size:clamp(68px,5.4vw,98px);line-height:1.04;margin-bottom:25px}.classic-home .hero-sub{font-size:clamp(17px,1.15vw,21px)}.classic-home .hero-tags{font-size:clamp(15px,1vw,18px);margin-bottom:34px}.classic-home .btn{padding:13px 28px;font-size:15px}.classic-home .hero-scene{height:min(78vh,820px);min-height:620px}.classic-home .hero-scene .p-mid{width:clamp(430px,34vw,640px);top:auto;bottom:5%;animation:hero-mid-enter 1.25s cubic-bezier(.16,1,.3,1) .16s both}.classic-home .hero-scene .p-left{width:clamp(300px,23vw,430px);bottom:5%;left:-2%;animation:hero-left-enter 1.18s cubic-bezier(.16,1,.3,1) .28s both}.classic-home .hero-scene .p-right{width:clamp(330px,24vw,455px);bottom:5%;right:-2%;animation:hero-right-enter 1.18s cubic-bezier(.16,1,.3,1) .38s both}.classic-home .rays{width:106px;height:66px;top:1%;animation:rays-arrive .8s ease-out 1.25s both}.classic-home .magnifier{width:clamp(145px,12vw,220px);height:auto;top:3%;right:2%;animation:magnifier-arrive .9s cubic-bezier(.16,1,.3,1) 1.05s both}.classic-home .lab-table{z-index:7;height:26px;bottom:8%;left:-5%;right:-4%;border-radius:7px}.classic-home .lab-items{z-index:8;gap:26px;bottom:11%;left:35%;transform:scale(1.45)}.classic-home .bushes{height:clamp(78px,8vh,118px)}html.home-stage-ready .classic-home .hero-in>.fade:first-child>*{opacity:0}html.home-stage-ready .classic-home .hero-in>.fade:first-child.on .hero-title{animation:hero-copy-in .82s cubic-bezier(.16,1,.3,1) .34s both}html.home-stage-ready .classic-home .hero-in>.fade:first-child.on .hero-sub{animation:hero-copy-in .78s cubic-bezier(.16,1,.3,1) .52s both}html.home-stage-ready .classic-home .hero-in>.fade:first-child.on .hero-tags{animation:hero-copy-in .78s cubic-bezier(.16,1,.3,1) .68s both}html.home-stage-ready .classic-home .hero-in>.fade:first-child.on .btn{animation:hero-copy-in .78s cubic-bezier(.16,1,.3,1) .82s both}.classic-home .sec{display:flex;align-items:center;min-height:100vh;padding:clamp(84px,9vh,126px) 0}.classic-home .sec>.wrap{width:100%}.classic-home .feat-in,.classic-home .proc-in,.classic-home .apps-in,.classic-home .ct-in,.classic-home .fac-in{width:100%;grid-template-columns:minmax(280px,360px) 1fr;align-items:center;gap:clamp(48px,5.4vw,96px)}.classic-home .left-col{width:auto;padding:clamp(28px,2.4vw,46px);border:1px solid rgba(121,151,225,.22);border-radius:32px;background:rgba(255,255,255,.66);box-shadow:0 24px 70px rgba(48,77,142,.09);backdrop-filter:blur(12px)}.classic-home .left-col:before{left:0;top:38px}.classic-home .snum{font-size:15px}.classic-home .stitle{font-size:clamp(40px,3vw,58px)}.classic-home .sdesc{max-width:320px;font-size:15px}.classic-home .feat-grid{gap:clamp(18px,2vw,34px)}.classic-home .feat-card{min-height:clamp(410px,52vh,560px);padding:24px 22px;border:1px solid rgba(121,151,225,.18);border-radius:28px;background:rgba(255,255,255,.72);box-shadow:0 22px 58px rgba(48,77,142,.1);display:flex;flex-direction:column;justify-content:center}.classic-home .feat-person{height:clamp(260px,32vh,390px)}.classic-home .feat-person img{height:clamp(300px,37vh,440px)}.classic-home .feat-info{padding:10px 8px}.classic-home .feat-name{font-size:18px}.classic-home .feat-txt{font-size:13px}.classic-home .proc-line{border:1px solid rgba(121,151,225,.2);border-radius:32px;padding:38px 28px;box-shadow:0 24px 66px rgba(48,77,142,.1)}.classic-home .steps{margin-bottom:38px}.classic-home .step-ic{width:70px;height:70px;box-shadow:0 12px 32px rgba(74,125,255,.12)}.classic-home .step-lb{font-size:15px}.classic-home .apps-grid{gap:clamp(18px,1.7vw,30px)}.classic-home .app-card{min-height:260px;padding:42px 18px 30px;border:1px solid rgba(121,151,225,.15);border-radius:28px;box-shadow:0 18px 50px rgba(48,77,142,.08);display:flex;flex-direction:column;justify-content:center}.classic-home .app-ic{height:76px}.classic-home .app-ic svg{transform:scale(1.18)}.classic-home .app-name{font-size:17px}.classic-home .app-txt{font-size:13px}.classic-home .fac-illus{padding:34px;border:1px solid rgba(121,151,225,.18);border-radius:36px;background:rgba(255,255,255,.74);box-shadow:0 24px 70px rgba(48,77,142,.1)}.classic-home .fac-illus>svg{height:min(43vh,430px)}.classic-home .ct-grid{border:1px solid rgba(121,151,225,.18);border-radius:30px;gap:18px;padding:42px 30px;box-shadow:0 24px 70px rgba(48,77,142,.11)}.classic-home .ct-card{min-height:108px;padding:18px}.classic-home .ct-ic{width:48px;height:48px}.classic-home .ct-lb{font-size:15px}.classic-home .ct-vl{font-size:13px}}
@keyframes hero-mid-enter{from{opacity:0;transform:translate(-50%,-115%)}to{opacity:1;transform:translate(-50%,0)}}@keyframes hero-left-enter{from{opacity:0;transform:translateX(-85vw)}to{opacity:1;transform:translateX(0)}}@keyframes hero-right-enter{from{opacity:0;transform:translateX(85vw)}to{opacity:1;transform:translateX(0)}}@keyframes hero-copy-in{from{opacity:0;filter:blur(9px);transform:translate3d(-70px,24px,0)}to{opacity:1;filter:blur(0);transform:none}}@keyframes rays-arrive{from{opacity:0;transform:translate(-50%,-24px) scale(.4)}to{opacity:1;transform:translate(-50%,0) scale(1)}}@keyframes magnifier-arrive{from{opacity:0;transform:translate(70px,-50px) scale(.65) rotate(18deg)}to{opacity:1;transform:none}}
@media(min-width:1025px){.classic-home .hero-scene.hero-motion-active .p-left{transform-origin:52% 55%;animation:hero-side-nod-left 4.7s ease-in-out infinite alternate}.classic-home .hero-scene.hero-motion-active .p-mid{transform-origin:50% 53%;animation:hero-center-nod-hand 4.1s ease-in-out infinite alternate}.classic-home .hero-scene.hero-motion-active .p-right{transform-origin:48% 55%;animation:hero-side-nod-right 5s ease-in-out infinite alternate}}
.classic-home .hero-scene.hero-motion-active .p-right{animation:none!important;transform:none!important}
.classic-home .hero-scene .rays{z-index:10!important;top:4%!important;overflow:visible!important}
@keyframes hero-side-nod-left{0%{transform:translate3d(0,1px,0) rotate(-.45deg)}50%{transform:translate3d(1px,-7px,0) rotate(.9deg)}100%{transform:translate3d(-1px,-2px,0) rotate(-.15deg)}}
@keyframes hero-side-nod-right{0%{transform:translate3d(0,0,0) rotate(.4deg)}52%{transform:translate3d(-1px,-8px,0) rotate(-.95deg)}100%{transform:translate3d(1px,-2px,0) rotate(.12deg)}}
@keyframes hero-center-nod-hand{0%{transform:translateX(-50%) translateY(1px) rotate(-.7deg)}48%{transform:translateX(-50%) translateY(-10px) rotate(1.65deg)}100%{transform:translateX(-50%) translateY(-2px) rotate(-.25deg)}}
@media(max-width:1024px){.classic-home .hero{min-height:100svh}.classic-home .hero-in{min-height:calc(100svh - 98px)}.classic-home .sec{min-height:auto}.classic-home .hero-scene .person{filter:drop-shadow(0 14px 18px rgba(30,57,120,.12))}.classic-home .sec:before{inset:3% 10px;border-radius:28px}.classic-home .left-col:before{display:none}}
@media(prefers-reduced-motion:reduce){html.home-stage-ready{scroll-snap-type:none}.classic-home .hero-scene .p-mid,.classic-home .hero-scene .p-left,.classic-home .hero-scene .p-right,.classic-home .rays,.classic-home .magnifier,html.home-stage-ready .classic-home .hero-in>.fade:first-child.on>*{animation:none;opacity:1;filter:none}}

/* Homepage polish: grounded characters, richer scene ornaments and interactive application fan. */
.motion-cursor-glow{display:none!important}
.classic-home .sec>.wrap{z-index:3}
.classic-home .bushes{animation:none!important;transform:none!important}
.classic-home .hero>.dot{animation:hero-dot-drift 4.8s ease-in-out infinite alternate!important}
.classic-home .hero>svg:not(.bushes){animation:hero-shape-drift 9s ease-in-out infinite alternate}
.classic-home .home-decor-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.classic-home .decor-chip{position:absolute;color:#4265c8;font-style:normal;font-size:10px;font-weight:900;letter-spacing:.14em;line-height:1;white-space:nowrap;padding:10px 14px;border:1px solid rgba(88,120,211,.22);border-radius:999px;background:rgba(255,255,255,.74);box-shadow:0 12px 35px rgba(43,71,139,.08);backdrop-filter:blur(10px);animation:decor-chip-float 6s ease-in-out infinite alternate}
.classic-home .decor-chip:before{content:attr(data-en)}
html[lang^="zh"] .classic-home .decor-chip:before{content:attr(data-zh)}
.classic-home .decor-orb{position:absolute;border-radius:50%;background:linear-gradient(145deg,rgba(94,126,255,.58),rgba(139,94,235,.18));box-shadow:0 0 0 8px rgba(88,121,226,.055);animation:decor-orb-float 5.6s ease-in-out infinite alternate}
.classic-home .decor-orbit{position:absolute;width:190px;height:190px;border:1px dashed rgba(88,120,211,.22);border-radius:50%;animation:decor-orbit-spin 18s linear infinite}
.classic-home .decor-orbit:before,.classic-home .decor-orbit:after{content:"";position:absolute;border-radius:50%;background:#ffca6c;box-shadow:0 0 0 7px rgba(255,202,108,.12)}
.classic-home .decor-orbit:before{width:12px;height:12px;left:13px;top:25px}.classic-home .decor-orbit:after{width:8px;height:8px;right:16px;bottom:31px;background:#6fc5a0}
.classic-home .decor-proc .chip-1{left:39%;top:13%}.classic-home .decor-proc .chip-2{right:6%;top:22%;animation-delay:-2s}.classic-home .decor-proc .chip-3{right:13%;bottom:11%;animation-delay:-4s}.classic-home .decor-proc .decor-orbit{right:-55px;top:13%}.classic-home .decor-proc .orb-1{width:14px;height:14px;left:4%;bottom:13%}.classic-home .decor-proc .orb-2{width:8px;height:8px;left:34%;top:19%}.classic-home .decor-proc .orb-3{width:18px;height:18px;right:31%;bottom:8%;animation-delay:-1.5s}.classic-home .decor-proc .orb-4{width:7px;height:7px;right:3%;bottom:34%;animation-delay:-3s}.classic-home .decor-proc .orb-5{width:10px;height:10px;left:25%;bottom:6%;animation-delay:-4.2s}
.classic-home .decor-apps .chip-1{left:37%;top:10%}.classic-home .decor-apps .chip-2{right:6%;bottom:11%;animation-delay:-2.8s}.classic-home .decor-apps .decor-orbit{left:-62px;bottom:8%}.classic-home .decor-apps .orb-1{width:10px;height:10px;left:6%;top:15%}.classic-home .decor-apps .orb-2{width:18px;height:18px;right:4%;top:17%;animation-delay:-1.3s}.classic-home .decor-apps .orb-3{width:7px;height:7px;right:31%;top:10%;animation-delay:-3.4s}.classic-home .decor-apps .orb-4{width:13px;height:13px;left:27%;bottom:11%;animation-delay:-4s}.classic-home .decor-apps .orb-5{width:6px;height:6px;right:18%;bottom:5%}
.classic-home .decor-fac .chip-1{left:35%;top:12%}.classic-home .decor-fac .chip-2{right:5%;top:16%;animation-delay:-2s}.classic-home .decor-fac .chip-3{right:9%;bottom:10%;animation-delay:-4s}.classic-home .decor-fac .decor-orbit{right:-48px;bottom:12%}.classic-home .decor-fac .orb-1{width:16px;height:16px;left:3%;top:23%;background:linear-gradient(145deg,#76c8a4,rgba(118,200,164,.18))}.classic-home .decor-fac .orb-2{width:8px;height:8px;left:31%;bottom:12%;animation-delay:-2s}.classic-home .decor-fac .orb-3{width:13px;height:13px;right:25%;top:8%;animation-delay:-3.7s}.classic-home .decor-fac .orb-4{width:7px;height:7px;right:4%;top:40%}.classic-home .decor-fac .orb-5{width:10px;height:10px;left:17%;bottom:8%;animation-delay:-4.5s}
.classic-home .copy-zh{display:none}.classic-home .copy-en{display:block}html[lang^="zh"] .classic-home .copy-en{display:none}html[lang^="zh"] .classic-home .copy-zh{display:block}

@media(min-width:1025px){
  /* The source SVGs contain large transparent margins below the artwork. Offset each
     image by its own margin so the visible figures share the tabletop baseline. */
  .classic-home .hero-scene .p-left{bottom:calc(8% + 14px - clamp(91px,6.95vw,130px))}
  .classic-home .hero-scene .p-mid{bottom:calc(8% + 14px - clamp(141px,11.13vw,209px))}
  .classic-home .hero-scene .p-right{bottom:calc(8% + 14px - clamp(115px,8.39vw,159px))}
  .classic-home .rays{top:8%;animation:rays-arrive .8s ease-out 1.25s both,rays-breathe 2.6s ease-in-out 2.1s infinite alternate}
  .classic-home .magnifier{animation:magnifier-arrive .9s cubic-bezier(.16,1,.3,1) 1.05s both,magnifier-drift 6.5s ease-in-out 2s infinite alternate}
  .classic-home .apps-grid.fan-ready{display:block;position:relative;min-height:430px;isolation:isolate;perspective:1200px}
  .classic-home .apps-grid.fan-ready:before{content:"";position:absolute;left:62%;top:50%;width:min(38vw,590px);height:min(38vw,590px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(112,139,255,.15),rgba(255,255,255,0) 66%);border:1px dashed rgba(91,121,220,.18);animation:fan-halo 7s ease-in-out infinite alternate}
  .classic-home .apps-grid.fan-ready .app-card{position:absolute;left:62%;top:50%;z-index:2;width:clamp(176px,17%,245px);min-height:300px;margin:0;opacity:1;pointer-events:none;transition:left .85s cubic-bezier(.16,1,.3,1),top .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1),box-shadow .35s,filter .6s;box-shadow:0 25px 55px rgba(36,58,119,.15);filter:saturate(.95)}
  .classic-home .apps-grid.fan-ready .app-card:nth-child(1){transform:translate(-55%,-51%) rotate(-8deg);z-index:2}
  .classic-home .apps-grid.fan-ready .app-card:nth-child(2){transform:translate(-53%,-51%) rotate(-4deg);z-index:3}
  .classic-home .apps-grid.fan-ready .app-card:nth-child(3){transform:translate(-50%,-51%);z-index:6}
  .classic-home .apps-grid.fan-ready .app-card:nth-child(4){transform:translate(-47%,-51%) rotate(4deg);z-index:4}
  .classic-home .apps-grid.fan-ready .app-card:nth-child(5){transform:translate(-45%,-51%) rotate(8deg);z-index:2}
  .classic-home .apps-grid.fan-ready.fan-open .app-card{top:48%;pointer-events:auto;filter:none;box-shadow:0 22px 54px rgba(36,58,119,.12)}
  .classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(1){left:9%;transform:translate(-50%,-50%) rotate(-4deg)}
  .classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(2){left:29.5%;transform:translate(-50%,-50%) rotate(-1.5deg)}
  .classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(3){left:62%;transform:translate(-50%,-50%)}
  .classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(4){left:70.5%;transform:translate(-50%,-50%) rotate(1.5deg)}
  .classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(5){left:91%;transform:translate(-50%,-50%) rotate(4deg)}
  .classic-home .apps-grid.fan-ready.fan-open .app-card:hover{z-index:20;transform:translate(-50%,-57%) rotate(0deg) scale(1.035)}
  .classic-home .app-fan-trigger{position:absolute;z-index:15;left:62%;top:50%;width:142px;height:142px;transform:translate(-50%,-50%);border:0;border-radius:50%;color:#fff;background:linear-gradient(145deg,#315edc,#7c63ee);cursor:pointer;box-shadow:0 24px 60px rgba(58,80,186,.34),inset 0 1px 1px rgba(255,255,255,.5);transition:top .72s cubic-bezier(.16,1,.3,1),transform .35s,box-shadow .35s}
  .classic-home .app-fan-trigger:hover{transform:translate(-50%,-50%) scale(1.06);box-shadow:0 29px 72px rgba(58,80,186,.43),inset 0 1px 1px rgba(255,255,255,.5)}
  .classic-home .fan-core{position:absolute;left:62%;top:32px;width:44px;height:20px;transform:translateX(-50%)}
  .classic-home .fan-core i{position:absolute;top:5px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 18px rgba(255,255,255,.68);animation:fan-dot 1.4s ease-in-out infinite alternate}
  .classic-home .fan-core i:nth-child(1){left:0}.classic-home .fan-core i:nth-child(2){left:17px;animation-delay:.18s}.classic-home .fan-core i:nth-child(3){right:0;animation-delay:.36s}
  .classic-home .fan-label{position:absolute;left:12px;right:12px;top:64px;display:grid;place-items:center;text-align:center;line-height:1}.classic-home .fan-label b{display:block;max-width:100%;font-size:13px;line-height:1.15;letter-spacing:.06em;white-space:nowrap}.classic-home .fan-label small{display:none!important}.classic-home .fan-label-close{display:none}
  .classic-home .apps-grid.fan-open .app-fan-trigger{top:94%;width:116px;height:116px}.classic-home .apps-grid.fan-open .fan-core{top:24px;transform:translateX(-50%) rotate(180deg)}.classic-home .apps-grid.fan-open .fan-label{left:10px;right:10px;top:56px}.classic-home .apps-grid.fan-open .fan-label-open{display:none}.classic-home .apps-grid.fan-open .fan-label-close{display:grid}
}

@media(max-width:1024px){
  .classic-home .app-fan-trigger{display:none}
  .classic-home .home-decor-layer{opacity:.62}
  .classic-home .decor-chip{display:none}
  .classic-home .decor-orbit{transform:scale(.65)}
  .classic-home .apps-grid.fan-ready{display:grid;min-height:0}
  .classic-home .apps-grid.fan-ready .app-card{position:relative;left:auto;top:auto;width:auto;opacity:1;transform:none!important;pointer-events:auto}
}

@keyframes hero-dot-drift{0%{transform:translate3d(-8px,-13px,0) scale(.92)}100%{transform:translate3d(26px,24px,0) scale(1.14)}}
@keyframes hero-shape-drift{0%{transform:translate3d(0,-7px,0) rotate(-1deg)}100%{transform:translate3d(-28px,31px,0) rotate(3deg)}}
@keyframes rays-breathe{0%{transform:translate(-50%,0) scale(.94);filter:drop-shadow(0 0 0 rgba(80,112,230,0))}100%{transform:translate(-50%,-9px) scale(1.08);filter:drop-shadow(0 8px 10px rgba(80,112,230,.2))}}
@keyframes magnifier-drift{0%{transform:translate3d(0,0,0) rotate(-2deg)}100%{transform:translate3d(-28px,30px,0) rotate(7deg)}}
@keyframes decor-chip-float{0%{transform:translate3d(-4px,-8px,0) rotate(-1deg)}100%{transform:translate3d(18px,17px,0) rotate(2deg)}}
@keyframes decor-orb-float{0%{transform:translate3d(-9px,-14px,0) scale(.86)}100%{transform:translate3d(24px,23px,0) scale(1.14)}}
@keyframes decor-orbit-spin{to{transform:rotate(360deg)}}
@keyframes fan-halo{0%{transform:translate(-50%,-50%) scale(.92) rotate(0deg)}100%{transform:translate(-50%,-50%) scale(1.08) rotate(10deg)}}
@keyframes fan-dot{from{transform:translateY(-3px);opacity:.55}to{transform:translateY(4px);opacity:1}}

@media(prefers-reduced-motion:reduce){.classic-home .hero>.dot,.classic-home .hero>svg:not(.bushes),.classic-home .decor-chip,.classic-home .decor-orb,.classic-home .decor-orbit,.classic-home .apps-grid.fan-ready:before,.classic-home .fan-core i{animation:none!important}}

/* English copy needs more horizontal room than the Chinese source text. These
   homepage-only rules keep headings and labels inside their intended panels. */
html[lang=en] .classic-home{font-family:Inter,"Segoe UI",Arial,sans-serif}
html[lang=en] .classic-home .hero-title,html[lang=en] .classic-home .stitle,html[lang=en] .classic-home .sdesc,html[lang=en] .classic-home .feat-name,html[lang=en] .classic-home .feat-txt,html[lang=en] .classic-home .step-lb,html[lang=en] .classic-home .app-name,html[lang=en] .classic-home .app-txt,html[lang=en] .classic-home .ct-vl{word-break:normal;overflow-wrap:break-word;hyphens:auto}
html[lang=en] .classic-home .hero-title .t2{display:block;width:min-content;max-width:none;font-size:1em;line-height:1.02;letter-spacing:-.055em}
html[lang=en] .classic-home .hero-title-extra{display:none}
html[lang^=zh] .classic-home .hero-title{line-height:.98;letter-spacing:-.025em}
html[lang^=zh] .classic-home .hero-title .t2{display:block;line-height:1.02}
html[lang^=zh] .classic-home .hero-title-extra{display:inline}
html[lang=en] .classic-home .hero-title .star-deco{left:3.4em;top:-.08em}
html[lang=en] .classic-home .hero-sub{max-width:410px;line-height:1.45}
html[lang=en] .classic-home .hero-tags{flex-wrap:wrap;line-height:1.35}
html[lang=en] .classic-home .stitle{font-size:clamp(31px,2.25vw,43px);line-height:1.14;letter-spacing:-.035em}
html[lang=en] .classic-home .sdesc{line-height:1.65}
html[lang=en] .classic-home .btn{max-width:100%;text-align:left;line-height:1.25}
html[lang=en] .classic-home .feat-info{min-width:0}
html[lang=en] .classic-home .feat-info>div:last-child{min-width:0}
html[lang=en] .classic-home .feat-name{font-size:16px;line-height:1.25}
html[lang=en] .classic-home .feat-txt{font-size:12px;line-height:1.5}
html[lang=en] .classic-home .step-lb{max-width:118px;min-height:38px;text-align:center;font-size:12px;line-height:1.25}
html[lang=en] .classic-home .app-name{min-height:44px;padding-inline:3px;font-size:14px;line-height:1.22}
html[lang=en] .classic-home .app-txt{font-size:11.5px;line-height:1.48}
html[lang=en] .classic-home .ct-card{min-width:0}
html[lang=en] .classic-home .ct-card>div:last-child{min-width:0}
html[lang=en] .classic-home .ct-vl{font-size:11.5px}

@media(min-width:1025px){
  html[lang=en] .classic-home .menu{gap:clamp(12px,1.1vw,22px)}
  html[lang=en] .classic-home .menu a{font-size:clamp(11px,.76vw,14px);white-space:nowrap}
  html[lang=en] .classic-home .hero-in{grid-template-columns:minmax(340px,.68fr) minmax(720px,1.62fr);gap:clamp(34px,4vw,84px)}
  html[lang=en] .classic-home .hero-title{font-size:clamp(68px,5.4vw,98px);line-height:.98}
  html[lang=en] .classic-home .feat-in,html[lang=en] .classic-home .proc-in,html[lang=en] .classic-home .apps-in,html[lang=en] .classic-home .fac-in,html[lang=en] .classic-home .ct-in{grid-template-columns:minmax(320px,390px) minmax(0,1fr);gap:clamp(38px,4vw,72px)}
  html[lang=en] .classic-home .left-col{min-width:0;padding:clamp(25px,2vw,38px)}
  html[lang=en] .classic-home .app-card{padding-inline:14px}
}

@media(max-width:1024px){
  html[lang=en] .classic-home .hero-title{font-size:clamp(54px,8.6vw,82px)}
  html[lang=en] .classic-home .hero-title .t2{font-size:1em}
  html[lang=en] .classic-home .stitle{font-size:clamp(30px,6vw,42px)}
}

@media(max-width:640px){
  html[lang=en] .classic-home .hero-title{font-size:clamp(45px,12vw,58px)}
  html[lang=en] .classic-home .hero-title .t2{font-size:1em}
  html[lang=en] .classic-home .hero-sub{font-size:14px}
  html[lang=en] .classic-home .hero-tags{font-size:12px;gap:6px}
  html[lang=en] .classic-home .stitle{font-size:30px}
  html[lang=en] .classic-home .app-name{min-height:0}
}

/* Supplied artwork replacements and a fuller first-screen circle composition. */
.classic-home .feat-person img[data-loumo-new-art="true"]{width:122%;max-width:none;height:auto;max-height:100%;object-fit:contain;transform:none!important;filter:drop-shadow(0 20px 22px rgba(34,55,111,.12))}
.classic-home .factory-cartoon-art{display:block;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 22px 28px rgba(45,70,126,.12))}
.classic-home .process-line-art{display:block;width:100%;height:min(43vh,430px);object-fit:contain;object-position:center;border-radius:22px;background:#fff;filter:drop-shadow(0 20px 30px rgba(35,58,108,.12))}
.classic-home .legacy-process-illustration,.classic-home .legacy-factory-illustration{display:none!important}
.classic-home .hero-circle-decor{position:absolute;inset:74px 0 0;z-index:1;pointer-events:none;overflow:hidden}
.classic-home .hero-ring{position:absolute;display:block;border-radius:50%;will-change:transform;animation:hero-ring-drift 7s ease-in-out infinite alternate}
.classic-home .hero-ring:after{content:"";position:absolute;inset:22%;border:1px solid rgba(79,115,220,.18);border-radius:50%}
.classic-home .hero-ring.ring-a{width:112px;height:112px;left:3.5%;top:12%;border:2px solid rgba(74,125,255,.2);background:rgba(232,239,255,.3)}
.classic-home .hero-ring.ring-b{width:54px;height:54px;left:27%;top:8%;border:9px solid rgba(248,180,196,.36);animation-delay:-1.8s}
.classic-home .hero-ring.ring-c{width:78px;height:78px;right:31%;top:8%;border:2px dashed rgba(74,125,255,.3);animation-duration:9s}
.classic-home .hero-ring.ring-d{width:34px;height:34px;right:6%;top:46%;background:linear-gradient(145deg,rgba(255,217,61,.5),rgba(255,203,138,.18));box-shadow:0 0 0 11px rgba(255,217,61,.08);animation-delay:-3.5s}
.classic-home .hero-ring.ring-e{width:86px;height:86px;left:18%;bottom:14%;border:16px solid rgba(168,216,185,.3);animation-duration:8.5s;animation-delay:-2.4s}
.classic-home .hero-ring.ring-f{width:42px;height:42px;right:18%;bottom:16%;border:2px solid rgba(248,112,154,.3);background:rgba(248,180,196,.12);animation-delay:-5s}
@keyframes hero-ring-drift{0%{transform:translate3d(-7px,-10px,0) rotate(-4deg) scale(.94)}100%{transform:translate3d(20px,20px,0) rotate(8deg) scale(1.08)}}
@media(max-width:1024px){.classic-home .hero-circle-decor{inset:74px 0 0;opacity:.72}.classic-home .hero-ring.ring-a{left:-4%}.classic-home .hero-ring.ring-c{right:10%}.classic-home .hero-ring.ring-f{right:4%}}
@media(max-width:640px){.classic-home .hero-ring.ring-a,.classic-home .hero-ring.ring-c{display:none}.classic-home .hero-ring.ring-b{left:73%;top:8%}.classic-home .hero-ring.ring-e{left:-8%;bottom:23%}.classic-home .feat-person img[data-loumo-new-art="true"]{width:112%}}
@media(prefers-reduced-motion:reduce){.classic-home .hero-ring{animation:none!important}}

/* Keep the carefully composed desktop layout on phones and small screens. */
.classic-home{min-width:1280px}

@media(min-width:1025px){
  html[lang=en] .classic-home .hero-scene .p-left{left:-2%}
  html[lang=en] .classic-home .hero-scene .p-right{right:-2%}
}

@media(max-width:1024px){
  .classic-home .wrap{width:1280px;max-width:none;padding-inline:60px}
  .classic-home .nav-in{height:82px}
  .classic-home .menu{display:flex;gap:24px}
  .classic-home .menu a{font-size:14px;white-space:nowrap}
  .classic-home.menu-open .menu{position:static;border:0;background:transparent;box-shadow:none;padding:0;display:flex}
  .classic-home .hero{display:flex;min-height:900px;padding:82px 0 0}
  .classic-home .hero-in{width:1280px;min-height:818px;grid-template-columns:360px 820px;align-items:center;gap:40px}
  .classic-home .hero-title{font-size:76px;line-height:1.04}
  .classic-home .hero-sub{font-size:18px}
  .classic-home .hero-tags{font-size:16px}
  .classic-home .hero-scene{display:block;height:700px;min-height:620px;padding-bottom:0}
  .classic-home .hero-scene .person{position:absolute;filter:drop-shadow(0 22px 28px rgba(30,57,120,.13))}
  .classic-home .hero-scene .p-mid{order:initial;width:520px!important;left:62%;top:auto;bottom:calc(8% + 14px - 170px);transform:translateX(-50%)!important}
  .classic-home .hero-scene .p-left{order:initial;width:350px!important;left:-3%;bottom:calc(8% + 14px - 106px);transform:none!important}
  .classic-home .hero-scene .p-right{order:initial;width:370px!important;right:-3%;bottom:calc(8% + 14px - 129px);transform:none!important}
  html[lang=en] .classic-home .hero-scene .p-left{left:-3%}
  html[lang=en] .classic-home .hero-scene .p-right{right:-3%}
  .classic-home .rays{display:block;width:106px;height:66px;top:8%}
  .classic-home .magnifier{width:180px;height:auto;top:3%;right:2%}
  .classic-home .lab-table{z-index:7;height:26px;bottom:8%;left:-5%;right:-4%}
  .classic-home .lab-items{z-index:8;gap:26px;bottom:11%;left:35%;transform:scale(1.35)}
  .classic-home .sec{display:flex;align-items:center;min-height:900px;padding:100px 0}
  .classic-home .feat-in,.classic-home .proc-in,.classic-home .apps-in,.classic-home .fac-in,.classic-home .ct-in{grid-template-columns:300px 1fr;align-items:center;gap:58px}
  .classic-home .left-col{width:auto;max-width:none;padding:34px}
  .classic-home .feat-grid{grid-template-columns:repeat(3,1fr)}
  .classic-home .feat-card{min-height:470px}
  .classic-home .feat-person{height:310px}
  .classic-home .apps-grid,.classic-home .apps-grid.fan-ready{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;min-height:0}
  .classic-home .apps-grid.fan-ready .app-card{position:relative;left:auto;top:auto;width:auto;min-height:280px;opacity:1;transform:none!important;pointer-events:auto}
  .classic-home .app-fan-trigger{display:none}
  .classic-home .ct-grid{grid-template-columns:repeat(4,1fr)}
  .classic-home .ct-card{border-right:1px solid #e2e9f8}
  .classic-home .ct-card:last-child{border-right:none}
}

/* Scroll-drawn science river: starts at Superior Performance and links each homepage station. */
.classic-home{position:relative}
.classic-home .science-river-layer{position:absolute;left:0;z-index:2;pointer-events:none;overflow:hidden;contain:layout paint}
.classic-home .science-river-icons-layer{position:absolute;left:0;z-index:4;pointer-events:none;overflow:visible;contain:layout}
.classic-home .science-river-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;transition:opacity .2s ease}
.classic-home .science-river-icon{position:absolute;width:var(--icon-size,190px);height:auto;opacity:0;transform:translate(-50%,-50%) scale(.16) rotate(var(--icon-tilt,0deg));filter:drop-shadow(0 18px 24px rgba(45,73,151,.16));transition:opacity .42s ease,transform .78s cubic-bezier(.17,1.55,.38,1);will-change:transform,opacity}
.classic-home .science-river-icon.is-grown{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--icon-tilt,0deg));animation:river-icon-float 5s ease-in-out .9s infinite alternate}
.classic-home .river-stage>.wrap{position:relative;z-index:6;transition:opacity .78s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .78s ease;opacity:.30;transform:translateY(34px) scale(.99);filter:blur(3px)}
.classic-home .river-stage.river-revealed>.wrap{opacity:1;transform:none;filter:none}
@keyframes river-icon-float{0%{transform:translate(-50%,-50%) translateY(-5px) rotate(var(--icon-tilt,0deg))}100%{transform:translate(-50%,-50%) translateY(13px) rotate(calc(var(--icon-tilt,0deg) + 4deg))}}

@media(prefers-reduced-motion:reduce){
  .classic-home .science-river-icon,.classic-home .river-stage>.wrap{transition:none!important;animation:none!important}
}

/* Homepage narrative layout: three character stations follow the river, then
   manufacturing content gathers on the right while the river passes left. */
@media(min-width:1px){
  .classic-home #feat{min-height:2300px;padding:90px 0 100px}
  .classic-home #feat .feat-in{display:block!important;position:relative;min-height:2110px}
  .classic-home #feat .left-col{display:none!important}
  .classic-home #feat .feat-grid{position:relative;display:block!important;height:2110px;margin:0!important}
  .classic-home #feat .feat-card{position:absolute;z-index:4;display:grid;width:850px;min-height:520px;padding:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;grid-template-columns:430px 1fr;grid-template-rows:395px auto;column-gap:22px;align-items:center}
  .classic-home #feat .feat-card:nth-child(1){left:5%;top:14%;grid-template-areas:"person story" "info story"}
  .classic-home #feat .feat-card:nth-child(2){right:4%;top:37%;grid-template-areas:"story person" "story info"}
  .classic-home #feat .feat-card:nth-child(3){left:10%;top:68%;grid-template-areas:"person story" "info story"}
  .classic-home #feat .feat-person{grid-area:person;height:395px;overflow:visible;align-self:end}
  .classic-home #feat .feat-person img,.classic-home #feat .feat-person img[data-loumo-new-art="true"]{width:auto;max-width:none;height:464px;max-height:none}
  .classic-home #feat .feat-story{grid-area:story;position:relative;padding:30px 32px;border:1px solid rgba(121,151,225,.22);border-radius:26px;background:rgba(255,255,255,.94);box-shadow:0 25px 65px rgba(35,61,132,.15);backdrop-filter:blur(14px);font-size:16px;line-height:1.9;color:#4c5872}
  .classic-home #feat .feat-story:after{content:"";position:absolute;top:50%;width:22px;height:22px;background:rgba(255,255,255,.94);transform:translateY(-50%) rotate(45deg)}
  .classic-home #feat .feat-card:nth-child(odd) .feat-story:after{left:-11px;border-left:1px solid rgba(121,151,225,.18);border-bottom:1px solid rgba(121,151,225,.18)}
  .classic-home #feat .feat-card:nth-child(even) .feat-story:after{right:-11px;border-right:1px solid rgba(121,151,225,.18);border-top:1px solid rgba(121,151,225,.18)}
  .classic-home #feat .feat-story-mark{display:block;margin-bottom:12px;color:#4a7dff;font-size:13px;font-weight:900;letter-spacing:.18em}
  .classic-home #feat .feat-story p{margin:0}
  .classic-home #feat .feat-info{grid-area:info;margin-top:-2px;padding:14px 18px;border:1px solid rgba(121,151,225,.18);border-radius:20px;background:rgba(255,255,255,.9);box-shadow:0 18px 48px rgba(35,61,132,.12)}
  .classic-home #feat .feat-card:after{content:"";position:absolute;width:260px;height:28px;bottom:73px;border-radius:50%;background:rgba(31,67,161,.17);filter:blur(13px);z-index:-1}
  .classic-home #feat .feat-card:nth-child(odd):after{left:22px}.classic-home #feat .feat-card:nth-child(even):after{right:22px}
  .classic-home #feat .feat-person,.classic-home #feat .feat-story,.classic-home #feat .feat-info{transition:opacity .7s ease,transform .95s cubic-bezier(.16,1,.3,1)}
  .classic-home #feat .feat-card:not(.on) .feat-person{opacity:0;transform:translateY(96px) scale(.78)}
  .classic-home #feat .feat-card:not(.on) .feat-story{opacity:0;transform:scale(.5) translateY(24px)}
  .classic-home #feat .feat-card:not(.on) .feat-info{opacity:0;transform:translateY(30px)}
  .classic-home #feat .feat-card.on .feat-person{opacity:1;transform:none}
  .classic-home #feat .feat-card.on .feat-story{opacity:1;transform:none;transition-delay:.22s}
  .classic-home #feat .feat-card.on .feat-info{opacity:1;transform:none;transition-delay:.38s}
  .classic-home #feat .feat-card:nth-child(odd) .feat-story{transform-origin:left center}.classic-home #feat .feat-card:nth-child(even) .feat-story{transform-origin:right center}

  .classic-home #proc{min-height:1260px;margin-top:-420px;padding:125px 0}
  .classic-home #proc .proc-in{display:grid!important;grid-template-columns:minmax(250px,1fr) minmax(760px,930px);grid-template-rows:auto auto;align-items:start;column-gap:52px;row-gap:28px}
  .classic-home #proc .proc-in>.fade:not(.left-col){grid-column:2;grid-row:2;min-width:0}
  .classic-home #proc .left-col{grid-column:2;grid-row:1;justify-self:end;width:100%;padding:32px 38px}
  .classic-home #proc .left-col .sdesc{max-width:520px}
  .classic-home #proc .steps{margin-bottom:26px}
  .classic-home #proc .proc-line{padding:30px 25px;background:#fff0b7;backdrop-filter:blur(12px)}
  .classic-home #proc .process-line-art{height:min(39vh,390px)}
}

.classic-home #proc .process-float-icons{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}
.classic-home #proc .proc-float{position:absolute;width:132px;height:auto;filter:drop-shadow(0 18px 24px rgba(45,73,151,.16));animation:proc-icon-bob 4.8s ease-in-out infinite alternate}
.classic-home #proc .proc-float-1{left:7%;top:19%;width:150px;transform:rotate(-8deg)}
.classic-home #proc .proc-float-2{left:12%;top:53%;width:118px;animation-delay:-1.8s}
.classic-home #proc .proc-float-3{left:38%;bottom:5%;width:126px;animation-delay:-3.1s}
@keyframes proc-icon-bob{0%{translate:0 -7px;rotate:-2deg}100%{translate:14px 15px;rotate:5deg}}

/* Keep the application fan interactive in the fixed 1280px composition even
   when the browser viewport itself is narrower than the composition. */
.classic-home .apps-grid.fan-ready{display:block!important;position:relative;min-height:430px!important;isolation:isolate;perspective:1200px}
.classic-home .apps-grid.fan-ready:before{content:"";position:absolute;left:62%;top:50%;width:min(38vw,590px);height:min(38vw,590px);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(112,139,255,.15),rgba(255,255,255,0) 66%);border:1px dashed rgba(91,121,220,.18);animation:fan-halo 7s ease-in-out infinite alternate}
.classic-home .apps-grid.fan-ready .app-card{position:absolute!important;left:62%;top:50%;z-index:2;width:clamp(176px,17%,245px)!important;min-height:300px!important;margin:0;border:6px solid #355eaa!important;opacity:1;pointer-events:none;transition:left .85s cubic-bezier(.16,1,.3,1),top .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1),box-shadow .35s,filter .6s;box-shadow:0 25px 55px rgba(36,58,119,.15);filter:saturate(.95)}
.classic-home .apps-grid.fan-ready .app-card:nth-child(1){border-color:#345ca8!important}.classic-home .apps-grid.fan-ready .app-card:nth-child(2){border-color:#9b7732!important}.classic-home .apps-grid.fan-ready .app-card:nth-child(3){border-color:#566fb0!important}.classic-home .apps-grid.fan-ready .app-card:nth-child(4){border-color:#315aa8!important}.classic-home .apps-grid.fan-ready .app-card:nth-child(5){border-color:#43815f!important}
.classic-home .apps-grid.fan-ready .app-card{transform-style:preserve-3d;backface-visibility:hidden;transform-origin:center bottom}
.classic-home .apps-grid .app-ic img{display:block;width:112px;height:86px;margin:0 auto;object-fit:contain;filter:drop-shadow(0 10px 13px rgba(41,68,139,.12))}.classic-home .apps-grid .app-ic svg{display:none!important}
.classic-home .apps-grid.fan-ready .app-card:nth-child(1){transform:translate(-55%,-51%) rotate(-8deg) rotateY(-62deg)!important;z-index:2}.classic-home .apps-grid.fan-ready .app-card:nth-child(2){transform:translate(-53%,-51%) rotate(-4deg) rotateY(-38deg)!important;z-index:3}.classic-home .apps-grid.fan-ready .app-card:nth-child(3){transform:translate(-50%,-51%) rotateY(0deg)!important;z-index:6}.classic-home .apps-grid.fan-ready .app-card:nth-child(4){transform:translate(-47%,-51%) rotate(4deg) rotateY(38deg)!important;z-index:4}.classic-home .apps-grid.fan-ready .app-card:nth-child(5){transform:translate(-45%,-51%) rotate(8deg) rotateY(62deg)!important;z-index:2}
.classic-home .apps-grid.fan-ready.fan-open .app-card{top:48%;pointer-events:auto;filter:none;box-shadow:0 22px 54px rgba(36,58,119,.12)}
.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(1){left:9%;transform:translate(-50%,-50%) rotate(-4deg) rotateY(0deg)!important}.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(2){left:29.5%;transform:translate(-50%,-50%) rotate(-1.5deg) rotateY(0deg)!important}.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(3){left:62%;transform:translate(-50%,-50%) rotateY(0deg)!important}.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(4){left:70.5%;transform:translate(-50%,-50%) rotate(1.5deg) rotateY(0deg)!important}.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(5){left:91%;transform:translate(-50%,-50%) rotate(4deg) rotateY(0deg)!important}
.classic-home .apps-grid.fan-ready.fan-open .app-card:hover{z-index:20;transform:translate(-50%,-57%) rotate(0deg) scale(1.035)!important}
.classic-home #apps{position:relative;min-height:1250px;padding-bottom:340px}
.classic-home .application-pill-marquee{position:absolute;z-index:6;left:0;right:0;bottom:48px;display:grid;gap:14px;overflow:hidden;pointer-events:none;perspective:900px}
.classic-home .application-pill-row{width:100%;overflow:hidden;padding:4px 0}
.classic-home .application-pill-track{display:flex;width:max-content;gap:16px;will-change:transform;animation:application-pill-scroll 34s linear infinite}
.classic-home .application-pill-row:nth-child(2) .application-pill-track{animation-direction:reverse;animation-duration:39s}.classic-home .application-pill-row:nth-child(3) .application-pill-track{animation-duration:31s}
.classic-home .application-pill-track span{position:relative;display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:clamp(210px,17vw,290px);height:68px;padding:0 25px 0 52px;border:3px solid rgba(81,126,222,.38);border-radius:999px;color:#173b7a;background:rgba(210,228,255,.91);box-shadow:0 13px 28px rgba(39,72,148,.11),inset 0 1px 0 rgba(255,255,255,.92);font-size:13px;font-weight:900;letter-spacing:.055em;white-space:nowrap;animation:application-pill-flip 4.6s ease-in-out calc(var(--pill-index)*-.21s) infinite}
.classic-home .application-pill-track span:before{content:"✦";position:absolute;left:17px;top:50%;display:grid;place-items:center;width:26px;height:26px;border-radius:9px;color:#fff;background:#668fe8;box-shadow:0 6px 12px rgba(54,87,164,.18);font-size:14px;line-height:1;transform:translateY(-50%) rotate(-5deg)}
.classic-home .application-pill-track span:nth-child(5n+2):before{content:"◆";background:#f09db8;transform:translateY(-50%) rotate(7deg)}.classic-home .application-pill-track span:nth-child(5n+3):before{content:"●";background:#8bc9a6}.classic-home .application-pill-track span:nth-child(5n+4):before{content:"✚";background:#f0be59;transform:translateY(-50%) rotate(-7deg)}.classic-home .application-pill-track span:nth-child(5n):before{content:"↗";background:#8979d9;transform:translateY(-50%) rotate(4deg)}
@keyframes application-pill-scroll{to{transform:translateX(calc(-50% - 8px))}}
@keyframes application-pill-flip{0%,80%,100%{transform:rotateX(0) translateY(0)}88%{transform:rotateX(-11deg) translateY(-3px)}94%{transform:rotateX(7deg) translateY(1px)}}
.classic-home .app-fan-trigger{display:block!important;position:absolute;z-index:15;left:62%;top:50%;width:142px;height:142px;transform:translate(-50%,-50%);border:0;border-radius:50%;color:#fff;background:linear-gradient(145deg,#315edc,#7c63ee);cursor:pointer;box-shadow:0 24px 60px rgba(58,80,186,.34),inset 0 1px 1px rgba(255,255,255,.5);transition:top .72s cubic-bezier(.16,1,.3,1),transform .35s,box-shadow .35s}
.classic-home .app-fan-trigger:hover{transform:translate(-50%,-50%) scale(1.06);box-shadow:0 29px 72px rgba(58,80,186,.43),inset 0 1px 1px rgba(255,255,255,.5)}
.classic-home .app-fan-trigger .fan-core{position:absolute;left:62%;top:32px;width:44px;height:20px;transform:translateX(-50%)}
.classic-home .app-fan-trigger .fan-core i{position:absolute;top:5px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 18px rgba(255,255,255,.68);animation:fan-dot 1.4s ease-in-out infinite alternate}
.classic-home .app-fan-trigger .fan-core i:nth-child(1){left:0}.classic-home .app-fan-trigger .fan-core i:nth-child(2){left:17px;animation-delay:.18s}.classic-home .app-fan-trigger .fan-core i:nth-child(3){right:0;animation-delay:.36s}
.classic-home .app-fan-trigger .fan-label{position:absolute;left:12px;right:12px;top:64px;display:grid;place-items:center;text-align:center;line-height:1}.classic-home .app-fan-trigger .fan-label b{display:block;max-width:100%;font-size:13px;line-height:1.15;letter-spacing:.06em;white-space:nowrap}.classic-home .app-fan-trigger .fan-label small{display:none!important}.classic-home .app-fan-trigger .fan-label-close{display:none}
.classic-home .apps-grid.fan-open .app-fan-trigger{top:94%;width:116px;height:116px}.classic-home .apps-grid.fan-open .fan-core{top:24px;transform:translateX(-50%) rotate(180deg)}.classic-home .apps-grid.fan-open .fan-label{left:10px;right:10px;top:56px}.classic-home .apps-grid.fan-open .fan-label-open{display:none}.classic-home .apps-grid.fan-open .fan-label-close{display:grid}

/* Merge factory strength and cooperation contact into one closing stage. */
.classic-home .contact-merged-away{display:none!important}
.classic-home #fac.factory-contact{min-height:1080px;margin:0;padding:90px 0 0;align-items:flex-end!important;overflow:hidden;background:linear-gradient(180deg,#f8fbff 0%,#eef5ff 62%,#e6efff 100%)}
.classic-home #fac.factory-contact .fac-in{display:block!important;position:relative;min-height:990px}
.classic-home #fac.factory-contact .factory-contact-copy{position:relative;z-index:6;width:min(760px,68%);margin:0 auto;padding:42px 52px;text-align:center;background:rgba(255,255,255,.9)}
.classic-home #fac.factory-contact .factory-contact-copy:before{left:62%;top:0;width:92px;height:5px;transform:translateX(-50%)}
.classic-home #fac.factory-contact .factory-kicker{margin-bottom:13px;color:#4a6ec9;font-size:12px;font-weight:900;letter-spacing:.16em}
.classic-home #fac.factory-contact .factory-contact-copy .sdesc{max-width:650px;margin:18px auto 25px}
.classic-home #fac.factory-contact .factory-contact-btn{display:inline-flex;border-color:#17945c;background:#20a968;color:#fff;text-decoration:none;box-shadow:0 15px 34px rgba(25,148,92,.28)}
.classic-home #fac.factory-contact .factory-contact-btn:hover{border-color:#117a4b;background:#168b56;box-shadow:0 19px 42px rgba(19,132,80,.36);transform:translateY(-3px)}
.classic-home #fac.factory-contact .fac-illus{position:absolute;z-index:4;left:-4%;right:-4%;bottom:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;transform:translateY(190px) scale(.94);opacity:0;transition:transform 1.1s cubic-bezier(.16,1,.3,1),opacity .75s ease}
.classic-home #fac.factory-contact .fac-illus.on{transform:translateY(0) scale(1);opacity:1}
.classic-home #fac.factory-contact .factory-cartoon-art{display:block;width:108%;max-width:none;margin-left:-4%;transform:translateY(19%);filter:drop-shadow(0 -16px 34px rgba(41,70,132,.16))}
.classic-home .contact-merged-away+.footer{margin-top:0}

/* Real material stations continue the blue path below precision manufacturing. */
.classic-home #materials{min-height:1800px;padding:100px 0;background:linear-gradient(180deg,#f6f9ff 0%,#fff 52%,#f5f8ff 100%)}
.classic-home #materials:before{inset:4% 2.5%}
.classic-home #materials .material-showcase-in{position:relative;display:flex;min-height:1600px;flex-direction:column;justify-content:space-around;gap:80px}
.classic-home #materials .material-story{position:relative;z-index:5;display:grid;width:min(1040px,82%);grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);align-items:center;gap:34px}
.classic-home #materials .material-story.image-left{align-self:flex-start;margin-left:3%;grid-template-areas:"photo copy"}
.classic-home #materials .material-story.image-right{align-self:flex-end;margin-right:3%;grid-template-areas:"copy photo"}
.classic-home #materials .material-photo{grid-area:photo;position:relative;padding:12px;border:1px solid rgba(126,155,224,.24);border-radius:32px;background:rgba(255,255,255,.86);box-shadow:0 28px 72px rgba(35,61,132,.17);transform:rotate(-1.5deg)}
.classic-home #materials .image-right .material-photo{transform:rotate(1.5deg)}
.classic-home #materials .material-photo:after{content:"";position:absolute;left:12%;right:12%;bottom:-17px;height:30px;border-radius:50%;background:rgba(31,67,161,.18);filter:blur(14px);z-index:-1}
.classic-home #materials .material-photo img{display:block;width:100%;height:330px;border-radius:23px;object-fit:cover}
.classic-home #materials .material-photo-bubbles{position:absolute;inset:-94px;z-index:2;pointer-events:none}.classic-home #materials .material-photo-bubbles i{position:absolute;display:block;border-radius:50%;border:3px solid rgba(255,255,255,.80);animation:material-bubble-drift 4.8s ease-in-out infinite alternate}.classic-home #materials .material-photo-bubbles i:nth-child(1){left:1%;top:5%;width:54px;height:54px;background:rgba(247,177,201,.62)}.classic-home #materials .material-photo-bubbles i:nth-child(2){right:1%;top:12%;width:34px;height:34px;background:rgba(255,226,125,.70);animation-delay:-1.4s}.classic-home #materials .material-photo-bubbles i:nth-child(3){left:4%;bottom:4%;width:28px;height:28px;background:rgba(165,222,187,.68);animation-delay:-2.7s}.classic-home #materials .material-photo-bubbles i:nth-child(4){right:5%;bottom:2%;width:46px;height:46px;background:rgba(151,190,255,.63);animation-delay:-3.5s}
.classic-home #materials .material-story:nth-child(2) .material-photo-bubbles i:nth-child(1),.classic-home #materials .material-story:nth-child(3) .material-photo-bubbles i:nth-child(4){width:38px;height:38px}.classic-home #materials .material-story:nth-child(2) .material-photo-bubbles i:nth-child(3){width:52px;height:52px}
.classic-home #materials .material-photo-lab-icon{position:absolute;z-index:4;top:-35px;display:block;width:98px;height:98px;filter:drop-shadow(0 14px 14px rgba(37,65,135,.17));animation:material-lab-icon-float 4.8s ease-in-out infinite alternate}.classic-home #materials .material-photo-lab-icon-1{right:-42px}.classic-home #materials .material-photo-lab-icon-2{left:-42px}.classic-home #materials .material-photo-lab-icon img{display:block;width:100%;height:100%;object-fit:contain;border-radius:0;background:transparent}
@keyframes material-lab-icon-float{0%{transform:translateY(-4px) rotate(-2deg)}100%{transform:translateY(8px) rotate(3deg)}}
.classic-home #materials .material-copy{grid-area:copy;position:relative;padding:34px 36px;border:1px solid rgba(121,151,225,.22);border-radius:28px;background:rgba(255,255,255,.94);box-shadow:0 24px 64px rgba(35,61,132,.14);backdrop-filter:blur(14px)}
.classic-home #materials .material-index{display:block;margin-bottom:14px;color:#4a7dff;font-size:11px;font-weight:900;letter-spacing:.18em}
.classic-home #materials .material-copy h3{margin:0 0 16px;color:#101a37;font-size:clamp(28px,2.1vw,39px);line-height:1.08;letter-spacing:-.035em}
.classic-home #materials .material-copy p{margin:0;color:#56627b;font-size:15px;line-height:1.82}
html[lang=en] .classic-home #materials .material-copy h3{font-size:clamp(24px,1.75vw,32px);line-height:1.12}
.classic-home #materials .material-photo,.classic-home #materials .material-copy{transition:opacity .72s ease,transform .95s cubic-bezier(.16,1,.3,1)}
.classic-home #materials .material-story:not(.on) .material-photo{opacity:0;transform:translateY(90px) scale(.62) rotate(-8deg)}
.classic-home #materials .material-story.image-right:not(.on) .material-photo{transform:translateY(90px) scale(.62) rotate(8deg)}
.classic-home #materials .material-story:not(.on) .material-copy{opacity:0;transform:translateX(82px)}
.classic-home #materials .material-story.image-right:not(.on) .material-copy{transform:translateX(-82px)}
.classic-home #materials .material-story.on .material-photo{opacity:1;transform:rotate(-1.5deg)}
.classic-home #materials .material-story.image-right.on .material-photo{transform:rotate(1.5deg)}
.classic-home #materials .material-story.on .material-copy{opacity:1;transform:none;transition-delay:.24s}
.classic-home #materials .material-story:nth-child(2) .material-photo{transition-delay:.08s}.classic-home #materials .material-story:nth-child(3) .material-photo{transition-delay:.12s}

/* Smooth river ornaments: small clouds, bubbles and ribbons sit on the blue path. */
.classic-home .science-river-motifs-layer{position:absolute;left:0;z-index:3;pointer-events:none;overflow:visible;contain:layout}
.classic-home .science-river-motif{position:absolute;display:block;opacity:0;transform:translate(-50%,-50%) scale(.25) rotate(var(--motif-tilt,0deg));transition:opacity .4s ease,transform .72s cubic-bezier(.17,1.55,.38,1);will-change:transform,opacity}
.classic-home .science-river-motif.is-grown{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(var(--motif-tilt,0deg));animation:river-motif-drift 4.8s ease-in-out var(--motif-delay,0s) infinite alternate}
.classic-home .motif-cloud{width:90px;height:48px;border-radius:46% 54% 42% 45%;background:rgba(255,255,255,.88);clip-path:path("M 10 43 C 4 43 0 38 0 31 C 0 23 7 17 16 17 C 20 7 30 1 42 1 C 55 1 66 8 70 19 C 81 19 90 27 90 36 C 90 43 84 48 76 48 L 12 48 Z");filter:drop-shadow(0 9px 9px rgba(33,66,149,.14))}
.classic-home .motif-bubble{width:30px;height:30px;border:3px solid rgba(255,255,255,.78);border-radius:50%;box-shadow:34px -15px 0 -7px rgba(255,219,120,.8),-26px 23px 0 -10px rgba(255,164,184,.82),0 8px 20px rgba(27,64,149,.13)}
.classic-home .motif-bubble:after{content:"";position:absolute;left:6px;top:5px;width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.9)}
.classic-home .motif-cloud-blue{width:124px;height:66px;border-radius:50%;background:rgba(207,225,255,.91);clip-path:path("M 12 58 C 4 58 0 51 0 42 C 0 31 9 23 21 23 C 27 9 40 2 56 2 C 73 2 87 12 92 26 C 108 26 124 37 124 50 C 124 60 115 66 104 66 L 15 66 Z");filter:drop-shadow(0 12px 14px rgba(44,80,166,.15))}
.classic-home .motif-bubble-yellow,.classic-home .motif-bubble-green,.classic-home .motif-bubble-pink{width:66px;height:66px;border-radius:50%;border:3px solid rgba(255,255,255,.74);box-shadow:0 13px 25px rgba(37,66,141,.12)}
.classic-home .motif-bubble-yellow{background:rgba(255,226,125,.72)}.classic-home .motif-bubble-green{background:rgba(165,222,187,.70)}.classic-home .motif-bubble-pink{background:rgba(247,177,201,.68)}
.classic-home .motif-bubble-yellow:before,.classic-home .motif-bubble-green:before,.classic-home .motif-bubble-pink:before{content:"";position:absolute;width:25px;height:25px;right:-27px;top:-14px;border-radius:50%;background:inherit;border:2px solid rgba(255,255,255,.64)}
.classic-home .motif-bubble-yellow:after,.classic-home .motif-bubble-green:after,.classic-home .motif-bubble-pink:after{content:"";position:absolute;width:16px;height:16px;left:-19px;bottom:-9px;border-radius:50%;background:inherit;border:2px solid rgba(255,255,255,.68)}
.classic-home .science-river-motif:nth-child(3n+1){scale:.88}.classic-home .science-river-motif:nth-child(4n+2){scale:1.12}
.classic-home .science-river-roll{position:absolute;z-index:8;width:var(--roll-width,760px);opacity:0;transform:translate(-50%,-43%) scale(.66);transform-origin:center 62%;filter:drop-shadow(0 25px 24px rgba(35,67,145,.18));transition:opacity .38s ease,transform .9s cubic-bezier(.16,1,.3,1);will-change:opacity,transform}
.classic-home .science-river-roll-image{display:block;width:100%;height:auto;transform:scaleX(1.05);transform-origin:center}
.classic-home .science-river-roll.is-active{opacity:1;transform:translate(-50%,-43%) scale(1);animation:river-roll-breathe 5.2s ease-in-out .85s infinite alternate}
@keyframes river-motif-drift{0%{transform:translate(-50%,-50%) translateY(-6px) rotate(var(--motif-tilt,0deg))}100%{transform:translate(-50%,-50%) translateY(10px) rotate(calc(var(--motif-tilt,0deg) + 5deg))}}
@keyframes river-roll-breathe{0%{transform:translate(-50%,-43%) translateY(-3px)}100%{transform:translate(-50%,-43%) translateY(5px)}}

/* Performance characters are true cutouts with decorative motion behind them. */
.classic-home #feat .feat-person{position:relative;isolation:isolate}
.classic-home #feat .feat-person>img{position:relative;z-index:2}
.classic-home #feat .feat-person>svg{z-index:4}
.classic-home #feat .feat-person:before,.classic-home #feat .feat-person:after{display:none}
.classic-home #feat .feat-card:before{display:none}
.classic-home #feat .feat-bubbles{position:absolute;inset:-120px -150px;z-index:0;pointer-events:none}
.classic-home #feat .feat-bubbles i{position:absolute;display:block;border-radius:50%;opacity:.72;animation:feat-bubble-float 5.4s ease-in-out infinite alternate}
.classic-home #feat .feat-bubbles i:nth-child(1){width:98px;height:98px;background:rgba(255,202,105,.28)}
.classic-home #feat .feat-bubbles i:nth-child(2){width:46px;height:46px;border:4px solid rgba(151,190,255,.42);animation-duration:4.4s;animation-delay:-1.3s}
.classic-home #feat .feat-bubbles i:nth-child(3){width:68px;height:68px;background:rgba(245,160,191,.23);animation-duration:6.2s;animation-delay:-2.6s}
.classic-home #feat .feat-card:nth-child(1) .feat-bubbles i:nth-child(1){left:1%;top:2%}
.classic-home #feat .feat-card:nth-child(1) .feat-bubbles i:nth-child(2){left:18%;bottom:0}
.classic-home #feat .feat-card:nth-child(1) .feat-bubbles i:nth-child(3){right:4%;top:0}
.classic-home #feat .feat-card:nth-child(2) .feat-bubbles i:nth-child(1){right:0;top:0;background:rgba(146,214,181,.25)}
.classic-home #feat .feat-card:nth-child(2) .feat-bubbles i:nth-child(2){right:17%;bottom:-1%;border-color:rgba(255,202,105,.45)}
.classic-home #feat .feat-card:nth-child(2) .feat-bubbles i:nth-child(3){left:2%;bottom:3%;background:rgba(151,190,255,.25)}
.classic-home #feat .feat-card:nth-child(3) .feat-bubbles i:nth-child(1){left:-1%;top:12%;background:rgba(151,190,255,.26)}
.classic-home #feat .feat-card:nth-child(3) .feat-bubbles i:nth-child(2){left:21%;bottom:-14%;border-color:rgba(146,214,181,.44)}
.classic-home #feat .feat-card:nth-child(3) .feat-bubbles i:nth-child(3){right:2%;top:0;background:rgba(255,202,105,.26)}
@keyframes feat-halo-drift{to{transform:translate3d(8px,-12px,0) scale(1.035)}}
@keyframes feat-orbit-drift{to{transform:translate3d(-10px,13px,0) rotate(8deg)}}
@keyframes feat-card-specks{to{transform:translate3d(12px,-10px,0) rotate(5deg)}}
@keyframes feat-bubble-float{0%{transform:translate3d(-7px,7px,0) scale(.96)}100%{transform:translate3d(14px,-13px,0) scale(1.05)}}

/* Explicit entrance sequence: character first, speech bubble second, label last. */
.classic-home #feat .feat-card.fade{opacity:1!important;transform:none!important}
.classic-home #feat .feat-card.feat-sequence-ready:not(.feat-sequence-on) .feat-person{opacity:0;transform:translateY(96px) scale(.76);transition:none}
.classic-home #feat .feat-card.feat-sequence-ready:not(.feat-sequence-on) .feat-story{opacity:0;transform:translateY(28px) scale(.42);transition:none}
.classic-home #feat .feat-card.feat-sequence-ready:not(.feat-sequence-on) .feat-info{opacity:0;transform:translateY(30px);transition:none}
.classic-home #feat .feat-card.feat-sequence-ready.feat-sequence-on .feat-person,.classic-home #feat .feat-card.feat-sequence-ready.feat-sequence-on .feat-story,.classic-home #feat .feat-card.feat-sequence-ready.feat-sequence-on .feat-info{opacity:1;transform:none}
.classic-home #feat .feat-card.feat-sequence-ready.feat-sequence-on .feat-person{animation:feat-person-pop .9s cubic-bezier(.16,1,.3,1) both}.classic-home #feat .feat-card.feat-sequence-ready.feat-sequence-on .feat-story{animation:feat-speech-pop .78s cubic-bezier(.18,1.45,.32,1) .30s both}.classic-home #feat .feat-card.feat-sequence-ready.feat-sequence-on .feat-info{animation:feat-label-rise .62s cubic-bezier(.16,1,.3,1) .56s both}
@keyframes feat-person-pop{0%{opacity:0;transform:translateY(92px) scale(.76)}65%{opacity:1;transform:translateY(-8px) scale(1.025)}100%{opacity:1;transform:none}}
@keyframes feat-speech-pop{0%{opacity:0;transform:scale(.42) translateY(30px)}72%{opacity:1;transform:scale(1.035) translateY(-4px)}100%{opacity:1;transform:none}}
@keyframes feat-label-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

/* Application cards visibly flip open on first arrival and every re-open. */
.classic-home .apps-grid.fan-ready:not(.fan-primed) .app-card{transition:none!important}
.classic-home .apps-grid.fan-ready.fan-primed .app-card{transition:left 1.02s cubic-bezier(.16,1,.3,1),top 1.02s cubic-bezier(.16,1,.3,1),transform 1.02s cubic-bezier(.16,1,.3,1),box-shadow .4s,filter .65s!important}
.classic-home .apps-grid.fan-ready.fan-primed.fan-open .app-card:nth-child(1){transition-delay:0s!important}
.classic-home .apps-grid.fan-ready.fan-primed.fan-open .app-card:nth-child(2){transition-delay:.07s!important}
.classic-home .apps-grid.fan-ready.fan-primed.fan-open .app-card:nth-child(3){transition-delay:.14s!important}
.classic-home .apps-grid.fan-ready.fan-primed.fan-open .app-card:nth-child(4){transition-delay:.21s!important}
.classic-home .apps-grid.fan-ready.fan-primed.fan-open .app-card:nth-child(5){transition-delay:.28s!important}
.classic-home .apps-grid.fan-ready.fan-open .app-card>*{animation:fan-content-flip .78s cubic-bezier(.16,1,.3,1) both}
.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(2)>*{animation-delay:.07s}.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(3)>*{animation-delay:.14s}.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(4)>*{animation-delay:.21s}.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(5)>*{animation-delay:.28s}
@keyframes fan-content-flip{0%{opacity:.12;transform:perspective(700px) rotateY(88deg) scale(.88)}100%{opacity:1;transform:perspective(700px) rotateY(0) scale(1)}}

/* Factory remains safe by default, then rises from below when its stage arrives. */
.classic-home #fac.factory-contact .fac-illus.fade{transition:none}
.classic-home #fac.factory-contact .fac-illus.factory-rise-ready:not(.factory-rise-on){opacity:0;transform:translateY(430px) scale(.88)}
.classic-home #fac.factory-contact .fac-illus.factory-rise-on{opacity:1;transform:none;animation:factory-rise-pop 1.42s cubic-bezier(.16,1,.3,1) both}
@keyframes factory-rise-pop{0%{opacity:0;transform:translateY(240px) scale(.91)}68%{opacity:1;transform:translateY(-13px) scale(1.012)}100%{opacity:1;transform:none}}

/* Five manufacturing checkpoints ride down the left edge of the ribbon. */
.classic-home #proc{position:relative}
.classic-home #proc .river-process-steps{position:absolute!important;inset:0!important;z-index:7!important;display:block!important;margin:0!important;padding:0!important;pointer-events:none}
.classic-home #proc .river-process-step{position:absolute!important;display:flex!important;flex-direction:row-reverse;align-items:center;gap:17px;width:max-content!important;margin:0!important;opacity:0;transform:translate(-100%,-50%) scale(.28) rotate(-8deg);transform-origin:right center;transition:opacity .35s ease,transform .78s cubic-bezier(.17,1.55,.38,1)}
.classic-home #proc .river-process-step{transform:translate(-100%,calc(-50% - 115px)) scale(.48) rotate(-58deg);transition:opacity .34s ease,transform .9s cubic-bezier(.17,1.42,.38,1)}
.classic-home #proc .river-process-step.process-step-on{opacity:1;transform:translate(-100%,-50%) scale(1) rotate(0deg)}
.classic-home #proc .river-process-step .step-arrow{display:none!important}
.classic-home #proc .river-process-step>div{position:relative;z-index:1;display:grid;place-items:center;width:136px!important;height:136px!important;min-width:136px;border:9px solid #8facf1;border-radius:50%;background:#fff0b7;box-shadow:0 24px 48px rgba(67,105,196,.19),inset 0 0 0 4px rgba(255,255,255,.74)}
.classic-home #proc .river-process-step>div img,.classic-home #proc .river-process-step>div svg{width:70px!important;height:70px!important;object-fit:contain}
.classic-home #proc .river-process-step>div svg{stroke:#4779e8!important}
.classic-home #proc .river-process-step>span{position:relative;z-index:2;display:block;min-width:118px;padding:13px 18px;border:1px solid rgba(65,103,199,.11);border-radius:15px;color:#1a306a;background:rgba(244,248,255,.97);box-shadow:0 12px 28px rgba(31,54,113,.10);font-size:15.5px;font-weight:850;text-align:right;white-space:nowrap}
.classic-home #proc .river-process-step>span.process-step-copy{width:292px;min-width:292px;padding:16px 20px;text-align:left;white-space:normal}.classic-home #proc .process-step-copy b{display:block;margin-bottom:7px;color:#173b7a;font-size:15px;line-height:1.15;letter-spacing:.035em}.classic-home #proc .process-step-copy small{display:block;color:#56627b;font-size:12px;font-weight:600;line-height:1.55}
.classic-home #proc .river-process-step:nth-child(2)>span{background:rgba(255,249,222,.97)}
.classic-home #proc .river-process-step:nth-child(3)>span{background:rgba(238,249,241,.97)}
.classic-home #proc .river-process-step:nth-child(4)>span{background:rgba(255,240,246,.97)}
.classic-home #proc .river-process-step:nth-child(5)>span{background:rgba(245,241,255,.97)}

/* Pastel supporting panels keep the white speech bubbles visually distinct. */
.classic-home #feat .feat-card:nth-child(1) .feat-info{background:rgba(238,245,255,.94)}
.classic-home #feat .feat-card:nth-child(2) .feat-info{background:rgba(255,248,220,.94)}
.classic-home #feat .feat-card:nth-child(3) .feat-info{background:rgba(239,249,242,.94)}
.classic-home #proc .left-col{background:rgba(238,245,255,.86)}
.classic-home #proc .proc-line{background:#fff0b7}
.classic-home #proc .process-card-title{position:relative;z-index:6;margin:0 0 16px 8px;color:#172858;font-size:clamp(30px,2.25vw,43px);font-weight:900;line-height:1.08;letter-spacing:-.035em}
.classic-home #proc .process-line-visual{position:relative;width:100%;overflow:hidden;border-radius:22px;background:#fff}
.classic-home #proc .process-stage-labels{position:absolute;z-index:4;inset:0;pointer-events:none}
.classic-home #proc .process-stage-labels span{position:absolute;left:var(--stage-x);top:5.5%;width:clamp(66px,7.4vw,118px);opacity:0;transform:translateX(-50%) translateY(18px) scale(.72);transform-origin:center;color:#173b7a;font-family:"Microsoft YaHei","Noto Sans SC",Arial,sans-serif;font-size:clamp(8px,1.08vw,19px);font-weight:900;line-height:1.18;letter-spacing:0;text-align:center;white-space:normal;word-break:keep-all;overflow-wrap:normal;text-shadow:0 1px 0 rgba(255,255,255,.9);will-change:opacity,transform}
html[lang="zh-tw"] .classic-home #proc .process-stage-labels span{width:clamp(66px,7vw,104px);font-size:clamp(8px,.96vw,16px);line-height:1.22}
html[lang="vi"] .classic-home #proc .process-stage-labels span,html[lang="th"] .classic-home #proc .process-stage-labels span{width:clamp(76px,8vw,124px);font-size:clamp(8px,.88vw,15px);line-height:1.24}
.classic-home #proc .process-stage-labels span:after{content:"";position:absolute;left:62%;top:calc(100% + 8px);width:2px;height:clamp(18px,3vw,45px);transform:translateX(-50%) scaleY(0);transform-origin:top;border-radius:999px;background:#2d68d8;box-shadow:0 0 0 4px rgba(83,132,231,.12);opacity:0}
.classic-home #proc .process-stage-labels span:before{content:"";position:absolute;left:62%;top:calc(100% + 7px + clamp(18px,3vw,45px));width:8px;height:8px;transform:translateX(-50%) scale(0);border:2px solid #2d68d8;border-radius:50%;background:#fff;opacity:0}
.classic-home #proc .process-stage-labels span:nth-child(1){--stage-delay:.55s}.classic-home #proc .process-stage-labels span:nth-child(2){--stage-delay:.73s}.classic-home #proc .process-stage-labels span:nth-child(3){--stage-delay:.91s}.classic-home #proc .process-stage-labels span:nth-child(4){--stage-delay:1.09s}.classic-home #proc .process-stage-labels span:nth-child(5){--stage-delay:1.27s}.classic-home #proc .process-stage-labels span:nth-child(6){--stage-delay:1.45s}.classic-home #proc .process-stage-labels span:nth-child(7){--stage-delay:1.63s}
.classic-home #proc .proc-in>.fade.on:not(.left-col) .process-stage-labels span{animation:process-stage-label-pop .62s cubic-bezier(.18,1.45,.32,1) var(--stage-delay) both}
.classic-home #proc .proc-in>.fade.on:not(.left-col) .process-stage-labels span:after{animation:process-stage-line-grow .38s ease-out calc(var(--stage-delay) + .12s) both}
.classic-home #proc .proc-in>.fade.on:not(.left-col) .process-stage-labels span:before{animation:process-stage-dot-pop .36s cubic-bezier(.18,1.55,.32,1) calc(var(--stage-delay) + .40s) both}
@keyframes process-stage-label-pop{0%{opacity:0;transform:translateX(-50%) translateY(18px) scale(.72)}68%{opacity:1;transform:translateX(-50%) translateY(-3px) scale(1.06)}100%{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}
@keyframes process-stage-line-grow{0%{opacity:0;transform:translateX(-50%) scaleY(0)}100%{opacity:1;transform:translateX(-50%) scaleY(1)}}
@keyframes process-stage-dot-pop{0%{opacity:0;transform:translateX(-50%) scale(0)}70%{opacity:1;transform:translateX(-50%) scale(1.28)}100%{opacity:1;transform:translateX(-50%) scale(1)}}
@media(prefers-reduced-motion:reduce){.classic-home #proc .process-stage-labels span{opacity:1;transform:translateX(-50%);animation:none!important}.classic-home #proc .process-stage-labels span:after{opacity:1;transform:translateX(-50%) scaleY(1);animation:none!important}.classic-home #proc .process-stage-labels span:before{opacity:1;transform:translateX(-50%) scale(1);animation:none!important}}
.classic-home #materials .material-story:nth-child(1) .material-copy{background:rgba(239,245,255,.95)}
.classic-home #materials .material-story:nth-child(2) .material-copy{background:rgba(255,247,225,.95)}
.classic-home #materials .material-story:nth-child(3) .material-copy{background:rgba(239,249,242,.95)}
.classic-home #materials .material-story:nth-child(4) .material-copy{background:rgba(255,239,246,.95)}
.classic-home #fac.factory-contact .factory-contact-copy{background:rgba(239,246,255,.94)}
html[lang^="en"] .classic-home #proc .river-process-step>span{width:190px;white-space:normal;line-height:1.25}

/* The homepage hamburger opens a real, keyboard-friendly navigation drawer. */
.classic-home .home-drawer-backdrop{position:fixed;z-index:240;inset:0;border:0;background:rgba(16,29,66,.34);opacity:0;visibility:hidden;cursor:pointer;transition:opacity .3s,visibility .3s}
.classic-home .home-menu-drawer{position:fixed;z-index:250;top:0;right:0;width:min(450px,88vw);height:100vh;padding:34px 34px 30px;background:rgba(255,255,255,.98);box-shadow:-28px 0 80px rgba(25,45,101,.22);transform:translateX(108%);transition:transform .48s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column}
.classic-home.home-drawer-open .home-drawer-backdrop{opacity:1;visibility:visible}.classic-home.home-drawer-open .home-menu-drawer{transform:translateX(0)}
.classic-home .home-menu-drawer-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid #e2e9f8}.classic-home .home-menu-drawer-head small{display:block;color:#6e7f9f;font-size:10px;letter-spacing:.16em}.classic-home .home-menu-drawer-head strong{display:block;margin-top:5px;color:#172858;font-size:25px}.classic-home .home-menu-drawer-head button{display:grid;place-items:center;width:46px;height:46px;border:0;border-radius:50%;color:#fff;background:#4779e8;font-size:28px;cursor:pointer}
.classic-home .home-menu-drawer nav{display:grid;margin-top:18px}.classic-home .home-menu-drawer nav a{display:grid;grid-template-columns:42px 1fr auto;align-items:center;padding:17px 4px;border-bottom:1px solid #edf1f8;color:#1b2b58;transition:color .22s,transform .22s}.classic-home .home-menu-drawer nav a:hover{color:#4779e8;transform:translateX(5px)}.classic-home .home-menu-drawer nav small{color:#8ca4dc;font-size:10px}.classic-home .home-menu-drawer nav b{font-size:18px}.classic-home .home-menu-drawer nav span{color:#4779e8;font-size:19px}
.classic-home .home-menu-drawer-foot{margin-top:auto;padding:22px;border-radius:22px;background:#eef3ff}.classic-home .home-menu-drawer-foot p{margin:0 0 14px;color:#5d6d8c;font-size:13px}.classic-home .home-menu-drawer-foot a{display:inline-flex;padding:10px 16px;border-radius:999px;color:#fff;background:#4779e8;font-size:13px;font-weight:800}
.classic-home #proc .river-process-step:nth-child(2){transition-delay:.05s}.classic-home #proc .river-process-step:nth-child(3){transition-delay:.10s}.classic-home #proc .river-process-step:nth-child(4){transition-delay:.15s}.classic-home #proc .river-process-step:nth-child(5){transition-delay:.20s}

/* Soft bubbles fill the white air around the five sequential checkpoints. */
.classic-home #proc .process-space-bubbles{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}
.classic-home #proc .process-space-bubbles i{position:absolute;display:block;border:3px solid rgba(255,255,255,.78);border-radius:50%;box-shadow:0 16px 30px rgba(46,76,151,.10);animation:process-bubble-float 5.4s ease-in-out infinite alternate}
.classic-home #proc .process-space-bubbles i:nth-child(1){left:2.5%;top:12%;width:82px;height:82px;background:rgba(157,190,255,.30)}
.classic-home #proc .process-space-bubbles i:nth-child(2){left:29%;top:7%;width:42px;height:42px;background:rgba(255,222,129,.34);animation-delay:-1.1s}
.classic-home #proc .process-space-bubbles i:nth-child(3){right:2.5%;top:20%;width:64px;height:64px;background:rgba(247,177,201,.28);animation-delay:-2.2s}
.classic-home #proc .process-space-bubbles i:nth-child(4){left:3%;top:47%;width:38px;height:38px;background:rgba(165,222,187,.32);animation-delay:-3.4s}
.classic-home #proc .process-space-bubbles i:nth-child(5){right:3%;top:55%;width:88px;height:88px;background:rgba(164,194,255,.26);animation-delay:-4.1s}
.classic-home #proc .process-space-bubbles i:nth-child(6){left:25%;bottom:8%;width:58px;height:58px;background:rgba(255,226,125,.28);animation-delay:-2.8s}
.classic-home #proc .process-space-bubbles i:nth-child(7){right:8%;bottom:4%;width:34px;height:34px;background:rgba(165,222,187,.31);animation-delay:-.7s}
@keyframes process-bubble-float{0%{transform:translate3d(0,-9px,0) scale(.94)}100%{transform:translate3d(13px,13px,0) scale(1.06)}}

/* The precision line powers on from a bright point like a television screen. */
.classic-home #proc .proc-in>.fade:not(.left-col) .process-line-art{opacity:0;transform-origin:center;transform:scaleX(.025) scaleY(.018);filter:brightness(2.8) saturate(.65)}
.classic-home #proc .proc-in>.fade.on:not(.left-col) .process-line-art{animation:precision-tv-open 1.05s cubic-bezier(.16,1,.3,1) .18s both}
@keyframes precision-tv-open{0%{opacity:0;transform:scaleX(.015) scaleY(.012);filter:brightness(4) saturate(.4)}26%{opacity:1;transform:scaleX(.82) scaleY(.025);filter:brightness(3.3) saturate(.55)}48%{opacity:1;transform:scaleX(1.035) scaleY(.09);filter:brightness(2.2) saturate(.8)}76%{opacity:1;transform:scaleX(1.018) scaleY(1.035);filter:brightness(1.12) saturate(.96)}100%{opacity:1;transform:scale(1);filter:none}}

/* Small pastel rolls fall from both sides of the large blue roll as soon as it appears. */
.classic-home .science-roll-cascade{position:absolute;inset:0;z-index:2;overflow:visible;pointer-events:none}
.classic-home .science-roll-cascade .foam-roll-drop{position:absolute;width:150px;height:auto;opacity:0;transform:translate3d(var(--fall-x,0),-520px,0) scale(.42) rotate(var(--roll-rotate,-18deg));transform-origin:center;will-change:transform,opacity}
.classic-home .science-roll-cascade.is-active .foam-roll-drop{animation:foam-roll-drop 1.72s cubic-bezier(.16,1,.3,1) var(--roll-delay,0s) both,foam-roll-float 5.2s ease-in-out calc(var(--roll-delay,0s) + 1.75s) infinite alternate}
.classic-home .science-roll-cascade .roll-red{filter:hue-rotate(104deg) saturate(.48) brightness(1.28) drop-shadow(0 17px 18px rgba(38,63,122,.10))}.classic-home .science-roll-cascade .roll-yellow{filter:hue-rotate(188deg) saturate(.40) brightness(1.40) drop-shadow(0 17px 18px rgba(38,63,122,.10))}.classic-home .science-roll-cascade .roll-green{filter:hue-rotate(252deg) saturate(.38) brightness(1.34) drop-shadow(0 17px 18px rgba(38,63,122,.10))}
.classic-home .science-roll-cascade .roll-drop-1{width:132px;--roll-delay:.08s;--roll-rotate:-21deg;--fall-x:18px}.classic-home .science-roll-cascade .roll-drop-2{width:176px;--roll-delay:.72s;--roll-rotate:16deg;--fall-x:-26px}.classic-home .science-roll-cascade .roll-drop-3{width:116px;--roll-delay:.29s;--roll-rotate:-13deg;--fall-x:34px}.classic-home .science-roll-cascade .roll-drop-4{width:151px;--roll-delay:1.13s;--roll-rotate:22deg;--fall-x:-18px}.classic-home .science-roll-cascade .roll-drop-5{width:184px;--roll-delay:.46s;--roll-rotate:-17deg;--fall-x:29px}.classic-home .science-roll-cascade .roll-drop-6{width:124px;--roll-delay:1.62s;--roll-rotate:12deg;--fall-x:-38px}.classic-home .science-roll-cascade .roll-drop-7{width:160px;--roll-delay:.93s;--roll-rotate:-10deg;--fall-x:21px}.classic-home .science-roll-cascade .roll-drop-8{width:140px;--roll-delay:1.36s;--roll-rotate:18deg;--fall-x:-31px}.classic-home .science-roll-cascade .roll-drop-9{width:118px;--roll-delay:1.98s;--roll-rotate:-24deg;--fall-x:42px}.classic-home .science-roll-cascade .roll-drop-10{width:168px;--roll-delay:.58s;--roll-rotate:9deg;--fall-x:-23px}
.classic-home .science-roll-cascade .roll-drop-11{width:126px;--roll-delay:1.18s;--roll-rotate:-16deg;--fall-x:29px}.classic-home .science-roll-cascade .roll-drop-12{width:154px;--roll-delay:1.76s;--roll-rotate:14deg;--fall-x:-27px}
.classic-home #feat .compat-roll-fallback{z-index:1;inset:0}.classic-home #feat .compat-roll-fallback .foam-roll-drop{z-index:1}
.classic-home #feat .compat-roll-fallback .roll-drop-1{left:3%;top:4%}.classic-home #feat .compat-roll-fallback .roll-drop-2{right:4%;top:9%}.classic-home #feat .compat-roll-fallback .roll-drop-3{left:9%;top:19%}.classic-home #feat .compat-roll-fallback .roll-drop-4{right:10%;top:27%}.classic-home #feat .compat-roll-fallback .roll-drop-5{left:2%;top:36%}.classic-home #feat .compat-roll-fallback .roll-drop-6{right:3%;top:43%}.classic-home #feat .compat-roll-fallback .roll-drop-7{left:13%;top:53%}.classic-home #feat .compat-roll-fallback .roll-drop-8{right:12%;top:61%}.classic-home #feat .compat-roll-fallback .roll-drop-9{left:4%;top:69%}.classic-home #feat .compat-roll-fallback .roll-drop-10{right:4%;top:77%}.classic-home #feat .compat-roll-fallback .roll-drop-11{left:15%;top:85%}.classic-home #feat .compat-roll-fallback .roll-drop-12{right:14%;top:91%}
@keyframes foam-roll-drop{0%{opacity:0;transform:translate3d(var(--fall-x,0),-520px,0) scale(.38) rotate(calc(var(--roll-rotate) - 78deg))}62%{opacity:1;transform:translate3d(0,34px,0) scaleX(.75) scaleY(1.03) rotate(calc(var(--roll-rotate) + 12deg))}82%{transform:translate3d(0,-13px,0) scaleX(.76) rotate(calc(var(--roll-rotate) - 4deg))}100%{opacity:.95;transform:translate3d(0,0,0) scaleX(.76) rotate(var(--roll-rotate))}}
@keyframes foam-roll-float{0%{opacity:.92;transform:translate3d(-6px,-8px,0) scaleX(.76) rotate(var(--roll-rotate))}100%{opacity:1;transform:translate3d(12px,14px,0) scaleX(.76) rotate(calc(var(--roll-rotate) + 5deg))}}

/* Full-screen repeated LOUMO wall with continuous horizontal photo travel. */
.classic-home .loumo-motion-showcase{position:relative;z-index:5;min-height:1080px;overflow:hidden;background:transparent;isolation:isolate}
.classic-home .loumo-motion-sticky{position:sticky;top:0;height:100vh;min-height:760px;overflow:hidden;background:transparent}
.classic-home .loumo-motion-sticky:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 28%,rgba(182,202,255,.13),transparent 25%),radial-gradient(circle at 84% 72%,rgba(125,157,238,.12),transparent 28%);pointer-events:none}
.classic-home .loumo-motion-word-wall{position:absolute;z-index:1;left:-20%;top:9%;width:140%;display:grid;gap:18px;color:#7193ef;font:1000 190px/.88 Arial Black,Impact,sans-serif;font-size:clamp(138px,12.3vw,220px);letter-spacing:-.045em;word-spacing:.04em;white-space:nowrap;text-shadow:13px 15px 0 #173b7a,0 24px 50px rgba(24,55,116,.18);will-change:transform}
.classic-home .loumo-motion-word-wall>div{overflow:visible}.classic-home .loumo-motion-word-wall span{display:block;width:max-content;will-change:transform}
.classic-home .loumo-motion-word-wall>div:nth-child(even){color:#86a3f1}.classic-home .loumo-motion-word-wall>div:nth-child(3){color:#5f83e3}
.classic-home .loumo-motion-kicker{position:absolute;z-index:5;left:62%;top:8%;width:max-content;max-width:78%;margin:0;padding:12px 20px;border:2px solid #173b7a;color:#173b7a;background:rgba(255,255,255,.66);font-size:13px;font-weight:900;letter-spacing:.16em;opacity:0;transform:translate(-50%,34px);transition:opacity .55s,transform .75s cubic-bezier(.16,1,.3,1)}
.classic-home .loumo-motion-showcase.is-active .loumo-motion-kicker{opacity:1;transform:translate(-50%,0)}
.classic-home .loumo-motion-gallery{position:absolute;z-index:4;left:4vw;top:51%;display:flex;width:max-content;gap:clamp(55px,7vw,128px);pointer-events:none;will-change:transform,opacity;animation:loumo-gallery-loop 21s linear infinite;animation-play-state:paused;transition:opacity .38s ease}
.classic-home .loumo-motion-showcase.is-active .loumo-motion-gallery{animation-play-state:running}
.classic-home .loumo-fallback-generated .loumo-motion-word-wall span{animation:fallback-word-drift 8s ease-in-out infinite alternate}.classic-home .loumo-fallback-generated .loumo-motion-word-wall>div:nth-child(even) span{animation-direction:alternate-reverse}
@keyframes fallback-word-drift{from{transform:translate3d(-90px,0,0)}to{transform:translate3d(90px,0,0)}}
.classic-home .loumo-motion-gallery figure{position:relative;flex:0 0 auto;width:305px;height:400px;margin:0;border:12px solid #173b7a;border-radius:8px;background:#173b7a;box-shadow:18px 24px 0 rgba(20,57,119,.30),0 28px 56px rgba(31,67,143,.25);overflow:hidden;will-change:transform}
.classic-home .loumo-motion-gallery figure:nth-child(4n+1){transform:translateY(-50%) rotate(-7deg)}.classic-home .loumo-motion-gallery figure:nth-child(4n+2){width:320px;height:418px;transform:translateY(-54%) rotate(4deg)}.classic-home .loumo-motion-gallery figure:nth-child(4n+3){width:298px;height:392px;transform:translateY(-46%) rotate(-3deg)}.classic-home .loumo-motion-gallery figure:nth-child(4n){width:315px;height:410px;transform:translateY(-52%) rotate(6deg)}
.classic-home .loumo-motion-gallery img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.05)}
.classic-home .loumo-loop-section{position:relative;z-index:8;min-height:1150px;overflow:visible;background:transparent;isolation:isolate}
.classic-home .loumo-loop-story{position:absolute;z-index:5;inset:0;opacity:0;transform:translateY(70px);pointer-events:none;transition:opacity .55s ease,transform .9s cubic-bezier(.16,1,.3,1)}
.classic-home .loumo-loop-section.is-loop .loumo-loop-story{opacity:1;transform:none}
.classic-home .loumo-loop-orbit{position:absolute;z-index:8;right:5%;top:4%;width:590px;width:min(42vw,590px);height:590px;aspect-ratio:1;border:96px solid #4779e8;border-width:clamp(78px,6.2vw,106px);border-radius:50%;box-shadow:inset 0 0 0 18px rgba(27,65,151,.14),0 26px 54px rgba(26,59,132,.17);transform:rotate(-10deg) scale(.72);opacity:0}
.classic-home .loumo-loop-orbit:before{content:"";position:absolute;right:-11%;top:-2%;width:0;height:0;border-top:42px solid transparent;border-bottom:42px solid transparent;border-left:76px solid #4779e8;transform:rotate(33deg);transform-origin:center}
.classic-home .loumo-loop-section.is-loop .loumo-loop-orbit{animation:loumo-loop-ring-in 1.05s cubic-bezier(.16,1,.3,1) both}
.classic-home .loumo-loop-card{position:absolute;left:62%;top:50%;box-sizing:border-box;width:360px;width:min(62%,360px);padding:28px 20px;border:3px solid #173b7a;border-radius:28px;background:rgba(255,255,255,.94);box-shadow:18px 20px 0 #173b7a;transform:translate(-50%,-50%) scale(.38);opacity:0;overflow:hidden;text-align:center;color:#173b7a}
.classic-home .loumo-loop-card b{display:block;max-width:100%;margin:0 auto 14px;font:1000 clamp(28px,2.7vw,45px)/.94 Arial Black,Impact,sans-serif;letter-spacing:-.04em;overflow-wrap:anywhere}.classic-home .loumo-loop-card span{display:block;font-size:13px;font-weight:850;line-height:1.4;letter-spacing:.055em}
.classic-home .loumo-loop-section.is-loop .loumo-loop-card{animation:loumo-loop-card-pop .72s cubic-bezier(.18,1.5,.32,1) .18s both}
.classic-home .loumo-loop-person{position:absolute;z-index:6;left:calc(4% + 420px);left:calc(4% + clamp(396px,27.6vw,444px));bottom:3%;width:370px;width:clamp(330px,23vw,370px);height:auto;opacity:0;transform:translate3d(-120px,80px,0) rotate(-2deg)}
.classic-home .loumo-loop-section.is-loop .loumo-loop-person{animation:loumo-loop-person-in .95s cubic-bezier(.16,1,.3,1) .08s both}
.classic-home .loumo-loop-custom-copy{position:absolute;z-index:10;left:5.5%;top:39.2%;box-sizing:border-box;width:min(23vw,365px);padding:26px 22px 28px 27px;border-left:9px solid #4779e8;border-radius:0 30px 30px 0;color:#173b7a;background:linear-gradient(100deg,rgba(224,235,255,.98),rgba(255,255,255,.72));box-shadow:18px 22px 0 rgba(23,59,122,.13),0 26px 58px rgba(34,66,139,.16),inset 0 1px 0 rgba(255,255,255,.85);opacity:0;transform:translate3d(-90px,34px,0) scale(.72);transform-origin:left center}
.classic-home .loumo-loop-custom-copy:after{content:"";position:absolute;right:21px;bottom:18px;width:48px;height:13px;border-radius:999px;background:#83a3f1;box-shadow:18px -20px 0 -3px #f0bd57,-13px -32px 0 -4px #8bc9a6}
.classic-home .loumo-loop-custom-copy i{display:block;margin-bottom:15px;color:#6d8ddd;font:900 11px/1.15 Arial,sans-serif;letter-spacing:.19em}
.classic-home .loumo-loop-custom-copy span{display:none;max-width:100%;font-family:Arial Black,"Microsoft YaHei","Noto Sans KR","Noto Sans JP",sans-serif;overflow-wrap:anywhere}
html[lang^="zh"] .classic-home .loumo-loop-custom-copy [data-loop-lang="zh"],html[lang="en"] .classic-home .loumo-loop-custom-copy [data-loop-lang="en"],html[lang="ko"] .classic-home .loumo-loop-custom-copy [data-loop-lang="ko"],html[lang="de"] .classic-home .loumo-loop-custom-copy [data-loop-lang="de"],html[lang="vi"] .classic-home .loumo-loop-custom-copy [data-loop-lang="vi"],html[lang="ja"] .classic-home .loumo-loop-custom-copy [data-loop-lang="ja"],html[lang="th"] .classic-home .loumo-loop-custom-copy [data-loop-lang="th"]{display:block}
.classic-home .loumo-loop-custom-copy span b,.classic-home .loumo-loop-custom-copy span small{display:block;max-width:100%}
.classic-home .loumo-loop-custom-copy span b{font-size:clamp(29px,2.35vw,44px);font-weight:1000;line-height:1.05;letter-spacing:-.04em;text-shadow:0 5px 16px rgba(38,81,172,.16)}
.classic-home .loumo-loop-custom-copy span b+b{margin-top:10px}
.classic-home .loumo-loop-custom-copy span small{margin-top:8px;color:#4264a6;font-size:clamp(17px,1.28vw,23px);font-weight:850;line-height:1.22;letter-spacing:.055em;text-shadow:0 3px 12px rgba(50,91,176,.12)}
.classic-home .loumo-loop-custom-copy span small:first-of-type{margin-top:21px}
html[lang="en"] .classic-home .loumo-loop-custom-copy span b,html[lang="de"] .classic-home .loumo-loop-custom-copy span b{font-size:clamp(21px,1.72vw,29px);letter-spacing:-.015em}html[lang="en"] .classic-home .loumo-loop-custom-copy span small,html[lang="de"] .classic-home .loumo-loop-custom-copy span small{font-size:clamp(14px,1.05vw,19px);letter-spacing:.025em}
html[lang="vi"] .classic-home .loumo-loop-custom-copy span b,html[lang="th"] .classic-home .loumo-loop-custom-copy span b{font-size:clamp(17px,1.4vw,24px);line-height:1.1;letter-spacing:-.01em}html[lang="vi"] .classic-home .loumo-loop-custom-copy span small,html[lang="th"] .classic-home .loumo-loop-custom-copy span small{font-size:clamp(12px,.92vw,17px);line-height:1.28;letter-spacing:.01em}
html[lang="ko"] .classic-home .loumo-loop-custom-copy span b,html[lang="ja"] .classic-home .loumo-loop-custom-copy span b{font-size:clamp(24px,1.95vw,34px);line-height:1.08}html[lang="ko"] .classic-home .loumo-loop-custom-copy span small,html[lang="ja"] .classic-home .loumo-loop-custom-copy span small{font-size:clamp(15px,1.18vw,21px)}
.classic-home .loumo-loop-section.is-loop .loumo-loop-custom-copy{animation:loumo-custom-copy-pop .88s cubic-bezier(.18,1.45,.32,1) .34s both}
.classic-home .loumo-loop-photo-frame{position:absolute;z-index:5;left:60%;right:auto;bottom:7%;width:820px;width:min(64vw,820px);margin:0 0 0 -410px;padding:14px;border:7px solid #173b7a;border-radius:30px;background:#fff;box-shadow:20px 24px 0 rgba(23,59,122,.27),0 34px 76px rgba(31,67,143,.20);overflow:hidden;opacity:0;transform-origin:center;transform:scaleX(.012) scaleY(.01);filter:brightness(3.4) saturate(.55)}
.classic-home .loumo-loop-photo-frame img{display:block;width:100%;height:min(44vw,570px);border-radius:17px;object-fit:cover}
.classic-home .loumo-loop-section.is-loop .loumo-loop-photo-frame{animation:loumo-photo-tv-open 1.12s cubic-bezier(.16,1,.3,1) .18s both}
.classic-home .loumo-loop-dash-rings{position:absolute;z-index:2;left:34%;top:20%;width:300px;height:300px;pointer-events:none;opacity:0}
.classic-home .loumo-loop-dash-rings i{position:absolute;inset:0;border:4px dashed rgba(72,121,232,.64);border-radius:50%;animation:loop-dash-spin 12s linear infinite}
.classic-home .loumo-loop-dash-rings i:nth-child(2){inset:42px;border-width:3px;border-color:rgba(121,158,241,.54);animation-direction:reverse;animation-duration:9s}.classic-home .loumo-loop-dash-rings i:nth-child(3){inset:88px;border-width:3px;border-style:dotted;border-color:rgba(73,112,207,.48);animation-duration:7s}
.classic-home .loumo-loop-section.is-loop .loumo-loop-dash-rings{animation:loop-rings-pop .82s cubic-bezier(.18,1.45,.32,1) .16s both}
.classic-home .loumo-loop-dash-rings-small{left:37%;top:auto;bottom:-1%;width:150px;height:150px;z-index:20}
.classic-home .loumo-loop-dash-rings-small i{border-width:3px}.classic-home .loumo-loop-dash-rings-small i:nth-child(2){inset:23px;border-width:2px}.classic-home .loumo-loop-dash-rings-small i:nth-child(3){inset:47px;border-width:2px}
.classic-home .loumo-loop-section.is-loop .loumo-loop-dash-rings-small{animation-delay:.34s}
.classic-home .loumo-motion-index{display:none!important}
.classic-home .loumo-motion-index span{display:grid;place-items:center;width:43px;height:43px;border:2px solid #173b7a;border-radius:50%;background:rgba(255,255,255,.62)}
@keyframes loumo-gallery-loop{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-50% - 3.5vw),0,0)}}
@keyframes material-bubble-drift{from{transform:translate3d(0,0,0) scale(.94)}to{transform:translate3d(8px,-10px,0) scale(1.05)}}
@keyframes loumo-loop-ring-in{0%{opacity:0;transform:rotate(-24deg) scale(.36)}72%{opacity:1;transform:rotate(-8deg) scale(1.04)}100%{opacity:1;transform:rotate(-10deg) scale(1)}}
@keyframes loumo-loop-card-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.35)}72%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes loumo-loop-person-in{0%{opacity:0;transform:translate3d(-120px,80px,0) rotate(-5deg)}100%{opacity:1;transform:translate3d(0,0,0) rotate(0)}}
@keyframes loumo-custom-copy-pop{0%{opacity:0;transform:translate3d(-90px,34px,0) scale(.72)}70%{opacity:1;transform:translate3d(8px,-4px,0) scale(1.035)}100%{opacity:1;transform:none}}
@keyframes loumo-photo-tv-open{0%{opacity:0;transform:scaleX(.012) scaleY(.01);filter:brightness(4) saturate(.35)}24%{opacity:1;transform:scaleX(.82) scaleY(.022);filter:brightness(3.5) saturate(.55)}48%{opacity:1;transform:scaleX(1.035) scaleY(.08);filter:brightness(2.2) saturate(.78)}76%{opacity:1;transform:scaleX(1.015) scaleY(1.035);filter:brightness(1.1) saturate(.96)}100%{opacity:1;transform:scale(1);filter:none}}
@keyframes loop-rings-pop{0%{opacity:0;transform:scale(.25) rotate(-22deg)}72%{opacity:1;transform:scale(1.06) rotate(4deg)}100%{opacity:.9;transform:scale(1)}}
@keyframes loop-dash-spin{to{transform:rotate(360deg)}}

/* Reinforce picture and copy arrivals across the homepage. */
.classic-home #materials .material-story.on .material-photo{animation:home-picture-arrive .96s cubic-bezier(.16,1,.3,1) both}
.classic-home #materials .material-story.image-right.on .material-photo{animation-name:home-picture-arrive-right}
.classic-home #materials .material-story.on .material-copy{animation:home-copy-arrive .82s cubic-bezier(.18,1.28,.32,1) .18s both}
.classic-home #proc .left-col.on,.classic-home #apps .left-col.on,.classic-home #fac .factory-contact-copy.on{animation:home-copy-arrive .82s cubic-bezier(.18,1.28,.32,1) both}
.classic-home #feat .feat-card.feat-sequence-on .feat-story:before{content:"";position:absolute;z-index:2;right:20px;top:17px;width:7px;height:7px;border-radius:50%;background:#5f86e5;box-shadow:12px 0 0 #86a4ef,24px 0 0 #b3c7f6;animation:chat-dot-pulse .82s ease-in-out .54s 3 alternate}
@keyframes home-picture-arrive{0%{opacity:0;transform:translateY(90px) scale(.60) rotate(-7deg);filter:brightness(1.65) blur(7px)}68%{opacity:1;transform:translateY(-9px) scale(1.025) rotate(1deg);filter:brightness(1.03) blur(0)}100%{opacity:1;transform:rotate(-1.5deg);filter:none}}
@keyframes home-picture-arrive-right{0%{opacity:0;transform:translateY(90px) scale(.60) rotate(7deg);filter:brightness(1.65) blur(7px)}68%{opacity:1;transform:translateY(-9px) scale(1.025) rotate(-1deg);filter:brightness(1.03) blur(0)}100%{opacity:1;transform:rotate(1.5deg);filter:none}}
@keyframes home-copy-arrive{0%{opacity:0;transform:translateY(38px) scale(.78);filter:blur(5px)}72%{opacity:1;transform:translateY(-5px) scale(1.035);filter:blur(0)}100%{opacity:1;transform:none;filter:none}}
@keyframes chat-dot-pulse{from{opacity:.32;transform:translateY(2px)}to{opacity:1;transform:translateY(-2px)}}

/* Pale blue clouds stay on side margins and never cover the main content. */
.classic-home{position:relative;isolation:isolate}
.classic-home .home-side-clouds{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}
.classic-home .home-side-clouds i{position:absolute;display:block;width:126px;height:42px;border-radius:999px;background:rgba(196,220,255,.40);filter:drop-shadow(0 10px 15px rgba(61,100,187,.08));animation:side-cloud-drift 7.6s ease-in-out infinite alternate}
.classic-home .home-side-clouds i:before,.classic-home .home-side-clouds i:after{content:"";position:absolute;bottom:7px;border-radius:50%;background:inherit}.classic-home .home-side-clouds i:before{left:25px;width:54px;height:54px}.classic-home .home-side-clouds i:after{right:19px;width:42px;height:42px}
.classic-home .home-side-clouds i:nth-child(1){left:-37px;top:6%;transform:scale(.82)}.classic-home .home-side-clouds i:nth-child(2){right:-28px;top:13%;transform:scale(1.08);animation-delay:-1.3s}.classic-home .home-side-clouds i:nth-child(3){left:-48px;top:22%;transform:scale(1.2);animation-delay:-2.5s}.classic-home .home-side-clouds i:nth-child(4){right:-45px;top:30%;transform:scale(.72);animation-delay:-4.2s}.classic-home .home-side-clouds i:nth-child(5){left:-24px;top:39%;transform:scale(.9);animation-delay:-3.1s}.classic-home .home-side-clouds i:nth-child(6){right:-38px;top:47%;transform:scale(1.16);animation-delay:-5.3s}.classic-home .home-side-clouds i:nth-child(7){left:-51px;top:56%;transform:scale(.76);animation-delay:-.8s}.classic-home .home-side-clouds i:nth-child(8){right:-21px;top:64%;transform:scale(.96);animation-delay:-2s}.classic-home .home-side-clouds i:nth-child(9){left:-35px;top:72%;transform:scale(1.15);animation-delay:-4.8s}.classic-home .home-side-clouds i:nth-child(10){right:-49px;top:80%;transform:scale(.78);animation-delay:-3.7s}.classic-home .home-side-clouds i:nth-child(11){left:-18px;top:88%;transform:scale(.98);animation-delay:-1.7s}.classic-home .home-side-clouds i:nth-child(12){right:-31px;top:95%;transform:scale(1.12);animation-delay:-5.8s}
@keyframes side-cloud-drift{0%{margin-left:-8px;translate:0 -7px}100%{margin-left:12px;translate:0 11px}}

@media(prefers-reduced-motion:reduce){
  .classic-home .science-roll-cascade .foam-roll-drop{opacity:1!important;animation:none!important;transform:scaleX(.76)!important}
  .classic-home .loumo-motion-word-wall,.classic-home .loumo-motion-word-wall span,.classic-home .loumo-motion-gallery{transform:none!important}
  .classic-home .application-pill-track,.classic-home .application-pill-track span,.classic-home .home-side-clouds i,.classic-home .process-space-bubbles i,.classic-home .loumo-loop-dash-rings i{animation:none!important}
}

/* The footer stays above the continuing ribbon while the factory image masks it. */
.classic-home .footer{position:relative;z-index:9}

@media(prefers-reduced-motion:reduce){
  .classic-home .science-river-motif,.classic-home .science-river-roll,.classic-home #feat .feat-person:before,.classic-home #feat .feat-person:after,.classic-home #feat .feat-card:before{animation:none!important}
  .classic-home #feat .feat-card.feat-sequence-ready .feat-person,.classic-home #feat .feat-card.feat-sequence-ready .feat-story,.classic-home #feat .feat-card.feat-sequence-ready .feat-info{opacity:1!important;transform:none!important;animation:none!important}
}

/* Every left/right foam-roll pair starts together, then the pairs cascade downward. */
.classic-home .science-roll-cascade .roll-drop-1,
.classic-home .science-roll-cascade .roll-drop-2{--roll-delay:.12s}
.classic-home .science-roll-cascade .roll-drop-3,
.classic-home .science-roll-cascade .roll-drop-4{--roll-delay:.42s}
.classic-home .science-roll-cascade .roll-drop-5,
.classic-home .science-roll-cascade .roll-drop-6{--roll-delay:.72s}
.classic-home .science-roll-cascade .roll-drop-7,
.classic-home .science-roll-cascade .roll-drop-8{--roll-delay:1.02s}
.classic-home .science-roll-cascade .roll-drop-9,
.classic-home .science-roll-cascade .roll-drop-10{--roll-delay:1.32s}
.classic-home .science-roll-cascade .roll-drop-11,
.classic-home .science-roll-cascade .roll-drop-12{--roll-delay:1.62s}
/* 首页顶部导航：产品中心 / 应用领域悬停弹窗 */
@media (min-width:1025px){
  .classic-home .menu>li{
    position:relative;
    display:flex;
    height:82px;
    align-items:center;
  }
  .classic-home .menu>li.home-nav-dropdown{
    position:relative;
  }
  .classic-home .menu>li.home-nav-dropdown>a{
    display:flex;
    align-items:center;
    gap:5px;
    white-space:nowrap;
  }
  .classic-home .home-nav-caret{
    display:inline-block;
    margin-top:-3px;
    color:#4b7cff;
    font-size:15px;
    line-height:1;
    transition:transform .24s ease;
  }
  .classic-home .home-nav-popup{
    position:absolute;
    z-index:320;
    top:70px;
    left:62%;
    width:520px;
    padding:17px 18px 18px;
    border:1px solid rgba(91,128,226,.22);
    border-radius:18px;
    background:rgba(255,255,255,.97);
    box-shadow:0 20px 48px rgba(39,70,139,.16),0 5px 14px rgba(64,99,183,.08);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate(-50%,12px) scale(.98);
    transform-origin:50% 0;
    transition:opacity .22s ease,transform .22s ease,visibility .22s ease;
  }
  .classic-home .home-nav-popup::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:-14px;
    height:14px;
  }
  .classic-home .home-nav-popup::after{
    content:"";
    position:absolute;
    top:-7px;
    left:62%;
    width:14px;
    height:14px;
    border-left:1px solid rgba(91,128,226,.18);
    border-top:1px solid rgba(91,128,226,.18);
    background:#fff;
    transform:translateX(-50%) rotate(45deg);
  }
  .classic-home .home-nav-dropdown:hover>.home-nav-popup,
  .classic-home .home-nav-dropdown:focus-within>.home-nav-popup{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translate(-50%,0) scale(1);
  }
  .classic-home .home-nav-dropdown:hover>.home-nav-caret,
  .classic-home .home-nav-dropdown:focus-within>.home-nav-caret,
  .classic-home .home-nav-dropdown:hover>a .home-nav-caret,
  .classic-home .home-nav-dropdown:focus-within>a .home-nav-caret{
    transform:rotate(180deg);
  }
  .classic-home .home-nav-popup strong{
    position:relative;
    z-index:1;
    display:block;
    margin:0 0 11px 3px;
    color:#183d8c;
    font-size:13px;
    font-weight:800;
    letter-spacing:.04em;
  }
  .classic-home .home-nav-popup-grid{
    position:relative;
    z-index:1;
    display:grid;
    gap:7px;
  }
  .classic-home .home-product-popup .home-nav-popup-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .classic-home .home-application-popup{width:500px}
  .classic-home .home-application-popup .home-nav-popup-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .classic-home .home-nav-popup-grid>a{
    display:flex;
    min-width:0;
    min-height:36px;
    padding:7px 10px;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(93,132,225,.12);
    border-radius:10px;
    background:#f5f8ff;
    color:#273b69;
    font-size:12px;
    font-weight:700;
    line-height:1.3;
    text-align:center;
    transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease;
  }
  .classic-home .home-nav-popup-grid>a:hover,
  .classic-home .home-nav-popup-grid>a:focus-visible{
    color:#fff;
    background:#4779ef;
    box-shadow:0 7px 16px rgba(71,121,239,.22);
    transform:translateY(-2px);
  }
}
@media (max-width:1024px){
  .classic-home .home-nav-popup,
  .classic-home .home-nav-caret{display:none!important}
}

/* Layered closing factory scene: completed building base, walking workers and a delivery truck. */
.classic-home #fac.factory-contact .factory-scene-layers{position:relative;width:108%;aspect-ratio:2169/725;margin-left:-4%;transform:translateY(19%);overflow:visible;isolation:isolate;filter:drop-shadow(0 -16px 34px rgba(41,70,132,.16))}
.classic-home #fac.factory-contact .factory-base-layer,.classic-home #fac.factory-contact .factory-worker-part{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none;user-select:none}
.classic-home #fac.factory-contact .factory-base-layer{z-index:1}
.classic-home #fac.factory-contact .factory-workers-motion{position:absolute;z-index:3;inset:0;pointer-events:none}
.classic-home #fac.factory-contact .factory-worker{position:absolute;inset:0;will-change:transform;transform-origin:var(--worker-origin-x) var(--worker-origin-y);transform:translate3d(var(--worker-shift),var(--worker-ground),0) scale(var(--worker-scale))}
.classic-home #fac.factory-contact .factory-worker-part{will-change:transform}
.classic-home #fac.factory-contact .worker-one{--worker-shift:17%;--worker-ground:8px;--worker-scale:.42;--worker-travel:46px;--worker-origin-x:22%;--worker-origin-y:72%}.classic-home #fac.factory-contact .worker-one .worker-body{clip-path:inset(25% 71% 38% 16%)}.classic-home #fac.factory-contact .worker-one .worker-leg-a{clip-path:inset(59% 77% 3% 17.5%);transform-origin:21.5% 60%}.classic-home #fac.factory-contact .worker-one .worker-leg-b{clip-path:inset(59% 70.5% 3% 22.2%);transform-origin:23.8% 60%}
.classic-home #fac.factory-contact .worker-two{--worker-shift:5%;--worker-ground:20px;--worker-scale:.52;--worker-travel:34px;--worker-origin-x:43%;--worker-origin-y:72%}.classic-home #fac.factory-contact .worker-two .worker-body{clip-path:inset(31% 52% 38% 38%)}.classic-home #fac.factory-contact .worker-two .worker-leg-a{clip-path:inset(61% 57% 6% 39%);transform-origin:42% 61%}.classic-home #fac.factory-contact .worker-two .worker-leg-b{clip-path:inset(61% 52.5% 6% 43.3%);transform-origin:44.5% 61%}
.classic-home #fac.factory-contact .worker-three{--worker-shift:-2%;--worker-ground:20px;--worker-scale:.52;--worker-travel:30px;--worker-origin-x:58%;--worker-origin-y:72%}.classic-home #fac.factory-contact .worker-three .worker-body{clip-path:inset(31% 38% 38% 52%)}.classic-home #fac.factory-contact .worker-three .worker-leg-a{clip-path:inset(61% 42% 6% 53%);transform-origin:56% 61%}.classic-home #fac.factory-contact .worker-three .worker-leg-b{clip-path:inset(61% 37.5% 6% 57.3%);transform-origin:58.5% 61%}
.classic-home #fac.factory-contact .worker-four{--worker-shift:-12%;--worker-ground:4px;--worker-scale:.40;--worker-travel:28px;--worker-origin-x:76%;--worker-origin-y:74%}.classic-home #fac.factory-contact .worker-four .worker-body{clip-path:inset(24% 17% 40% 68%)}.classic-home #fac.factory-contact .worker-four .worker-leg-a{clip-path:inset(59% 25% 2% 69%);transform-origin:73% 59%}.classic-home #fac.factory-contact .worker-four .worker-leg-b{clip-path:inset(59% 17.5% 2% 75.2%);transform-origin:76.5% 59%}
.classic-home #fac.factory-contact .factory-rise-on .factory-worker{animation:factory-worker-track 4.6s cubic-bezier(.22,.72,.26,1) 1.1s both}
.classic-home #fac.factory-contact .factory-rise-on .worker-two{animation-delay:1.35s;animation-duration:4.8s}
.classic-home #fac.factory-contact .factory-rise-on .worker-three{animation-delay:1.55s;animation-duration:5s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four{animation-delay:1.25s;animation-duration:4.7s}
.classic-home #fac.factory-contact .factory-rise-on .worker-leg-a{animation:factory-worker-leg-a 4.6s ease-in-out 1.1s both}
.classic-home #fac.factory-contact .factory-rise-on .worker-leg-b{animation:factory-worker-leg-b 4.6s ease-in-out 1.1s both}
.classic-home #fac.factory-contact .factory-rise-on .worker-two .worker-leg{animation-delay:1.35s;animation-duration:4.8s}.classic-home #fac.factory-contact .factory-rise-on .worker-three .worker-leg{animation-delay:1.55s;animation-duration:5s}.classic-home #fac.factory-contact .factory-rise-on .worker-four .worker-leg{animation-delay:1.25s;animation-duration:4.7s}
.classic-home #fac.factory-contact .factory-truck-motion{position:absolute;z-index:4;left:17%;bottom:15%;width:15%;will-change:transform;pointer-events:none}
.classic-home #fac.factory-contact .factory-truck-layer{position:relative;z-index:1;display:block;width:100%;height:auto;-webkit-user-drag:none;user-select:none;filter:drop-shadow(0 9px 9px rgba(28,50,98,.18))}
.classic-home #fac.factory-contact .truck-wheel{position:absolute;z-index:2;bottom:10.5%;width:10.2%;aspect-ratio:1;border:0;border-radius:50%;background:conic-gradient(from 0deg,#dce8f7 0 12%,#738bad 12% 25%,#dce8f7 25% 37%,#738bad 37% 50%,#dce8f7 50% 62%,#738bad 62% 75%,#dce8f7 75% 87%,#738bad 87% 100%);box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 5px #34455f;transform:rotate(0)}
.classic-home #fac.factory-contact .wheel-rear{left:22.6%}.classic-home #fac.factory-contact .wheel-front{left:64.2%}
.classic-home #fac.factory-contact .factory-rise-on .factory-truck-motion{animation:factory-truck-deliver 8.8s cubic-bezier(.2,.72,.22,1) 1.15s both}
.classic-home #fac.factory-contact .factory-rise-on .truck-wheel{animation:factory-truck-wheel-spin 6.9s linear 1.15s both}
@keyframes factory-worker-track{0%{transform:translate3d(var(--worker-shift),var(--worker-ground),0) scale(var(--worker-scale))}88%,100%{transform:translate3d(calc(var(--worker-shift) + var(--worker-travel)),var(--worker-ground),0) scale(var(--worker-scale))}}
@keyframes factory-worker-leg-a{0%,100%{transform:rotate(0)}14%{transform:rotate(4deg)}28%{transform:rotate(-4deg)}42%{transform:rotate(4deg)}56%{transform:rotate(-4deg)}70%{transform:rotate(4deg)}84%{transform:rotate(-3deg)}}
@keyframes factory-worker-leg-b{0%,100%{transform:rotate(0)}14%{transform:rotate(-4deg)}28%{transform:rotate(4deg)}42%{transform:rotate(-4deg)}56%{transform:rotate(4deg)}70%{transform:rotate(-4deg)}84%{transform:rotate(3deg)}}
@keyframes factory-truck-deliver{0%,8%{transform:translate3d(0,0,0)}78%,100%{transform:translate3d(145%,0,0)}}
@keyframes factory-truck-wheel-spin{0%,8%{transform:rotate(0)}100%{transform:rotate(1440deg)}}
@media(prefers-reduced-motion:reduce){.classic-home #fac.factory-contact .factory-worker,.classic-home #fac.factory-contact .factory-worker-part,.classic-home #fac.factory-contact .factory-truck-motion,.classic-home #fac.factory-contact .truck-wheel{animation:none!important}.classic-home #fac.factory-contact .factory-worker{transform:translate3d(calc(var(--worker-shift) + var(--worker-travel)),var(--worker-ground),0) scale(var(--worker-scale))!important}.classic-home #fac.factory-contact .factory-truck-motion{transform:translate3d(145%,0,0)!important}}

/* Clean two-frame worker sprites: complete hands/feet, no body clipping or waist twisting. */
.classic-home #fac.factory-contact .factory-worker{
  inset:auto;
  width:auto;
  aspect-ratio:4/3;
  opacity:0;
  transform:none;
  transform-origin:50% 100%;
  overflow:hidden;
}
.classic-home #fac.factory-contact .factory-worker-sprite{
  position:absolute;
  inset:0;
  display:block;
  background-repeat:no-repeat;
  background-size:200% 100%;
  background-position:0 0;
  pointer-events:none;
  will-change:background-position;
}
.classic-home #fac.factory-contact .worker-one{left:25%;bottom:12%;height:43%;--worker-travel:42px}
.classic-home #fac.factory-contact .worker-two{left:42%;bottom:12%;height:34%;--worker-travel:35px}
.classic-home #fac.factory-contact .worker-three{left:53%;bottom:12%;height:34%;--worker-travel:31px}
.classic-home #fac.factory-contact .worker-four{left:65%;bottom:12%;height:43%;--worker-travel:28px}
.classic-home #fac.factory-contact .worker-one .factory-worker-sprite{background-image:url("assets/illustrations/factory-worker-1-walk.png")}
.classic-home #fac.factory-contact .worker-two .factory-worker-sprite{background-image:url("assets/illustrations/factory-worker-2-walk.png")}
.classic-home #fac.factory-contact .worker-three .factory-worker-sprite{background-image:url("assets/illustrations/factory-worker-3-walk.png")}
.classic-home #fac.factory-contact .worker-four .factory-worker-sprite{background-image:url("assets/illustrations/factory-worker-4-walk.png")}
.classic-home #fac.factory-contact .factory-rise-on .factory-worker{
  animation:factory-worker-clean-track 4.9s cubic-bezier(.22,.72,.26,1) 1.15s both;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-two{animation-delay:1.32s;animation-duration:5s}
.classic-home #fac.factory-contact .factory-rise-on .worker-three{animation-delay:1.48s;animation-duration:5.1s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four{animation-delay:1.24s;animation-duration:4.85s}
.classic-home #fac.factory-contact .factory-rise-on .factory-worker-sprite{
  animation:factory-worker-frame 4.9s steps(1,end) 1.15s both;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-two .factory-worker-sprite{animation-delay:1.32s;animation-duration:5s}
.classic-home #fac.factory-contact .factory-rise-on .worker-three .factory-worker-sprite{animation-delay:1.48s;animation-duration:5.1s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four .factory-worker-sprite{animation-delay:1.24s;animation-duration:4.85s}
/* Wheel overlays use the original bitmap's tyre centres, so the old tyres are fully covered. */
.classic-home #fac.factory-contact .truck-wheel{bottom:15.9%}
.classic-home #fac.factory-contact .wheel-rear{left:20.35%}
.classic-home #fac.factory-contact .wheel-front{left:61.55%}
@keyframes factory-worker-clean-track{
  0%{opacity:0;transform:translate3d(-18px,0,0)}
  10%{opacity:1}
  86%,100%{opacity:1;transform:translate3d(var(--worker-travel),0,0)}
}
@keyframes factory-worker-frame{
  0%,11%{background-position:0 0}
  12%,23%{background-position:100% 0}
  24%,35%{background-position:0 0}
  36%,47%{background-position:100% 0}
  48%,59%{background-position:0 0}
  60%,71%{background-position:100% 0}
  72%,83%{background-position:0 0}
  84%,92%{background-position:100% 0}
  93%,100%{background-position:0 0}
}
@media(prefers-reduced-motion:reduce){
  .classic-home #fac.factory-contact .factory-worker{opacity:1!important;animation:none!important;transform:translate3d(var(--worker-travel),0,0)!important}
  .classic-home #fac.factory-contact .factory-worker-sprite{animation:none!important;background-position:0 0!important}
}

/* Restore the original worker artwork; use tight limb masks so only the feet alternate. */
.classic-home #fac.factory-contact .factory-worker{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  opacity:1;
  overflow:visible;
  will-change:transform;
  transform-origin:var(--worker-origin-x) var(--worker-origin-y);
  transform:translate3d(var(--worker-shift),var(--worker-ground),0) scale(var(--worker-scale));
}
.classic-home #fac.factory-contact .factory-worker-part{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
  will-change:transform;
}
.classic-home #fac.factory-contact .worker-one{--worker-shift:17%;--worker-ground:-3px;--worker-scale:.42;--worker-travel:46px;--worker-origin-x:22%;--worker-origin-y:72%}
.classic-home #fac.factory-contact .worker-two{--worker-shift:5%;--worker-ground:8px;--worker-scale:.52;--worker-travel:34px;--worker-origin-x:43%;--worker-origin-y:72%}
.classic-home #fac.factory-contact .worker-three{--worker-shift:-2%;--worker-ground:8px;--worker-scale:.52;--worker-travel:30px;--worker-origin-x:58%;--worker-origin-y:72%}
.classic-home #fac.factory-contact .worker-four{--worker-shift:-12%;--worker-ground:-5px;--worker-scale:.40;--worker-travel:28px;--worker-origin-x:76%;--worker-origin-y:74%}

.classic-home #fac.factory-contact .worker-one .worker-body{clip-path:polygon(16% 25%,29% 25%,29% 61%,16% 61%)}
.classic-home #fac.factory-contact .worker-one .worker-leg-a{clip-path:polygon(20.2% 56.5%,22.25% 56.5%,22.1% 64%,20.2% 78.4%,17.75% 80.2%,17.2% 76.6%,19.35% 63%);transform-origin:21.2% 58%}
.classic-home #fac.factory-contact .worker-one .worker-leg-b{clip-path:polygon(21.8% 56.5%,23.55% 56.5%,24.3% 63%,25.25% 76.8%,23.05% 79.4%,22.35% 76.2%,21.5% 63%);transform-origin:22.6% 58%}

.classic-home #fac.factory-contact .worker-two .worker-body{clip-path:polygon(38% 31%,48.5% 31%,48.5% 61.5%,38% 61.5%)}
.classic-home #fac.factory-contact .worker-two .worker-leg-a{clip-path:polygon(41.0% 57%,42.75% 57%,42.4% 64%,41.35% 71.7%,39.85% 73.4%,39.45% 70.8%,40.7% 63%);transform-origin:41.8% 58.7%}
.classic-home #fac.factory-contact .worker-two .worker-leg-b{clip-path:polygon(42.3% 57%,44.1% 57%,44.55% 63.5%,45.15% 70.8%,43.65% 73.4%,43.1% 71%,42.0% 63%);transform-origin:43.1% 58.7%}

.classic-home #fac.factory-contact .worker-three .worker-body{clip-path:polygon(52% 31%,62.5% 31%,62.5% 61.5%,52% 61.5%)}
.classic-home #fac.factory-contact .worker-three .worker-leg-a{clip-path:polygon(55.2% 57%,56.9% 57%,56.6% 64%,55.5% 71.6%,54.0% 73.3%,53.6% 70.7%,54.9% 63%);transform-origin:56% 58.7%}
.classic-home #fac.factory-contact .worker-three .worker-leg-b{clip-path:polygon(56.5% 57%,58.35% 57%,58.8% 63.5%,59.35% 70.8%,57.85% 73.3%,57.3% 71%,56.25% 63%);transform-origin:57.35% 58.7%}

.classic-home #fac.factory-contact .worker-four .worker-body{clip-path:polygon(68% 24%,83% 24%,83% 61%,68% 61%)}
.classic-home #fac.factory-contact .worker-four .worker-leg-a{clip-path:polygon(72.4% 56%,74.3% 56%,74.0% 64%,72.5% 80%,70.3% 82.8%,69.8% 79.4%,71.8% 63%);transform-origin:73.3% 58%}
.classic-home #fac.factory-contact .worker-four .worker-leg-b{clip-path:polygon(73.8% 56%,76.0% 56%,76.7% 64%,78.0% 79.6%,75.8% 82.7%,75.0% 79.2%,73.5% 63%);transform-origin:74.9% 58%}

.classic-home #fac.factory-contact .factory-rise-on .factory-worker{animation:factory-worker-original-track 4.7s cubic-bezier(.22,.72,.26,1) 1.1s both}
.classic-home #fac.factory-contact .factory-rise-on .worker-two{animation-delay:1.32s;animation-duration:4.9s}
.classic-home #fac.factory-contact .factory-rise-on .worker-three{animation-delay:1.48s;animation-duration:5s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four{animation-delay:1.23s;animation-duration:4.8s}
.classic-home #fac.factory-contact .factory-rise-on .worker-leg-a{animation:factory-worker-clean-leg-a 4.7s steps(1,end) 1.1s both}
.classic-home #fac.factory-contact .factory-rise-on .worker-leg-b{animation:factory-worker-clean-leg-b 4.7s steps(1,end) 1.1s both}
.classic-home #fac.factory-contact .factory-rise-on .worker-two .worker-leg{animation-delay:1.32s;animation-duration:4.9s}
.classic-home #fac.factory-contact .factory-rise-on .worker-three .worker-leg{animation-delay:1.48s;animation-duration:5s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four .worker-leg{animation-delay:1.23s;animation-duration:4.8s}
.classic-home #fac.factory-contact .truck-wheel{bottom:14.7%}
@keyframes factory-worker-original-track{0%{opacity:0;transform:translate3d(var(--worker-shift),var(--worker-ground),0) scale(var(--worker-scale))}10%{opacity:1}88%,100%{opacity:1;transform:translate3d(calc(var(--worker-shift) + var(--worker-travel)),var(--worker-ground),0) scale(var(--worker-scale))}}
@keyframes factory-worker-clean-leg-a{0%,11%,24%,35%,48%,59%,72%,83%,93%,100%{transform:rotate(-2.8deg)}12%,23%,36%,47%,60%,71%,84%,92%{transform:rotate(2.8deg)}}
@keyframes factory-worker-clean-leg-b{0%,11%,24%,35%,48%,59%,72%,83%,93%,100%{transform:rotate(2.8deg)}12%,23%,36%,47%,60%,71%,84%,92%{transform:rotate(-2.8deg)}}
@media(prefers-reduced-motion:reduce){.classic-home #fac.factory-contact .factory-worker{opacity:1!important;animation:none!important;transform:translate3d(calc(var(--worker-shift) + var(--worker-travel)),var(--worker-ground),0) scale(var(--worker-scale))!important}.classic-home #fac.factory-contact .worker-leg{animation:none!important;transform:none!important}}

/* Keep the previous-version silhouettes intact; only apply a very small alternating step. */
.classic-home #fac.factory-contact .worker-one .worker-body{clip-path:inset(25% 71% 38% 16%)}
.classic-home #fac.factory-contact .worker-one .worker-leg-a{clip-path:inset(57% 77% 3% 17.5%);transform-origin:21.5% 59%}
.classic-home #fac.factory-contact .worker-one .worker-leg-b{clip-path:inset(57% 70.5% 3% 22.2%);transform-origin:23.8% 59%}
.classic-home #fac.factory-contact .worker-two .worker-body{clip-path:inset(31% 52% 38% 38%)}
.classic-home #fac.factory-contact .worker-two .worker-leg-a{clip-path:inset(58% 57% 6% 39%);transform-origin:42% 59%}
.classic-home #fac.factory-contact .worker-two .worker-leg-b{clip-path:inset(58% 52.5% 6% 43.3%);transform-origin:44.5% 59%}
.classic-home #fac.factory-contact .worker-three .worker-body{clip-path:inset(31% 37% 38% 52%)}
.classic-home #fac.factory-contact .worker-three .worker-leg-a{clip-path:inset(58% 42% 6% 53%);transform-origin:56% 59%}
.classic-home #fac.factory-contact .worker-three .worker-leg-b{clip-path:inset(58% 37% 6% 57.3%);transform-origin:58.5% 59%}
.classic-home #fac.factory-contact .worker-four .worker-body{clip-path:inset(24% 16% 40% 68%)}
.classic-home #fac.factory-contact .worker-four .worker-leg-a{clip-path:inset(57% 25% 2% 69%);transform-origin:73% 58%}
.classic-home #fac.factory-contact .worker-four .worker-leg-b{clip-path:inset(57% 17% 2% 75.2%);transform-origin:76.5% 58%}
@keyframes factory-worker-clean-leg-a{0%,11%,24%,35%,48%,59%,72%,83%,93%,100%{transform:translateX(-1px) rotate(-2.1deg)}12%,23%,36%,47%,60%,71%,84%,92%{transform:translateX(1px) rotate(2.1deg)}}
@keyframes factory-worker-clean-leg-b{0%,11%,24%,35%,48%,59%,72%,83%,93%,100%{transform:translateX(1px) rotate(2.1deg)}12%,23%,36%,47%,60%,71%,84%,92%{transform:translateX(-1px) rotate(-2.1deg)}}

/* Final factory motion: everyone stands on the ground; only the first worker walks. */
.classic-home #fac.factory-contact .worker-one{--worker-ground:19px}
.classic-home #fac.factory-contact .worker-two{--worker-ground:27px}
.classic-home #fac.factory-contact .worker-three{--worker-ground:27px}
.classic-home #fac.factory-contact .worker-four{--worker-ground:17px}
.classic-home #fac.factory-contact .factory-rise-on .worker-two,
.classic-home #fac.factory-contact .factory-rise-on .worker-three,
.classic-home #fac.factory-contact .factory-rise-on .worker-four{
  animation:factory-worker-still-in .72s cubic-bezier(.18,1.25,.32,1) 1.25s both;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-three{animation-delay:1.38s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four{animation-delay:1.5s}
.classic-home #fac.factory-contact .factory-rise-on .truck-wheel{
  animation:factory-truck-wheel-synced 8.8s linear 1.15s both;
}
@keyframes factory-worker-still-in{
  0%{opacity:0;transform:translate3d(var(--worker-shift),calc(var(--worker-ground) + 12px),0) scale(var(--worker-scale))}
  100%{opacity:1;transform:translate3d(var(--worker-shift),var(--worker-ground),0) scale(var(--worker-scale))}
}
@keyframes factory-truck-wheel-synced{
  0%,8%{transform:rotate(0)}
  78%{transform:rotate(1440deg)}
  78.01%,100%{transform:rotate(1440deg)}
}

/* Four workers walk toward the centre with alternating feet; keep every figure grounded. */
.classic-home #fac.factory-contact .worker-one{
  --worker-ground:20px;
  --worker-travel:44px;
  --worker-step-1:6px;--worker-step-2:13px;--worker-step-3:20px;--worker-step-4:27px;--worker-step-5:33px;--worker-step-6:40px;
}
.classic-home #fac.factory-contact .worker-two{
  --worker-ground:38px;
  --worker-travel:28px;
  --worker-step-1:4px;--worker-step-2:8px;--worker-step-3:13px;--worker-step-4:17px;--worker-step-5:21px;--worker-step-6:25px;
}
.classic-home #fac.factory-contact .worker-three{
  --worker-ground:38px;
  --worker-travel:-28px;
  --worker-step-1:-4px;--worker-step-2:-8px;--worker-step-3:-13px;--worker-step-4:-17px;--worker-step-5:-21px;--worker-step-6:-25px;
}
.classic-home #fac.factory-contact .worker-four{
  --worker-ground:19px;
  --worker-travel:-42px;
  --worker-step-1:-6px;--worker-step-2:-12px;--worker-step-3:-19px;--worker-step-4:-26px;--worker-step-5:-32px;--worker-step-6:-38px;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-one,
.classic-home #fac.factory-contact .factory-rise-on .worker-two,
.classic-home #fac.factory-contact .factory-rise-on .worker-three,
.classic-home #fac.factory-contact .factory-rise-on .worker-four{
  animation:factory-worker-step-to-centre 5.6s cubic-bezier(.34,.02,.24,1) 1.12s both;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-two{animation-delay:1.24s}
.classic-home #fac.factory-contact .factory-rise-on .worker-three{animation-delay:1.34s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four{animation-delay:1.18s}
.classic-home #fac.factory-contact .factory-rise-on .worker-one .worker-leg-a,
.classic-home #fac.factory-contact .factory-rise-on .worker-two .worker-leg-a,
.classic-home #fac.factory-contact .factory-rise-on .worker-three .worker-leg-a,
.classic-home #fac.factory-contact .factory-rise-on .worker-four .worker-leg-a{
  animation:factory-worker-clean-leg-a 5.6s steps(1,end) 1.12s both!important;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-one .worker-leg-b,
.classic-home #fac.factory-contact .factory-rise-on .worker-two .worker-leg-b,
.classic-home #fac.factory-contact .factory-rise-on .worker-three .worker-leg-b,
.classic-home #fac.factory-contact .factory-rise-on .worker-four .worker-leg-b{
  animation:factory-worker-clean-leg-b 5.6s steps(1,end) 1.12s both!important;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-two .worker-leg{animation-delay:1.24s!important}
.classic-home #fac.factory-contact .factory-rise-on .worker-three .worker-leg{animation-delay:1.34s!important}
.classic-home #fac.factory-contact .factory-rise-on .worker-four .worker-leg{animation-delay:1.18s!important}
@keyframes factory-worker-step-to-centre{
  0%{opacity:0;transform:translate3d(var(--worker-shift),var(--worker-ground),0) scale(var(--worker-scale))}
  7%{opacity:1}
  16%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-1)),var(--worker-ground),0) scale(var(--worker-scale))}
  28%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-2)),var(--worker-ground),0) scale(var(--worker-scale))}
  40%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-3)),var(--worker-ground),0) scale(var(--worker-scale))}
  52%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-4)),var(--worker-ground),0) scale(var(--worker-scale))}
  64%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-5)),var(--worker-ground),0) scale(var(--worker-scale))}
  76%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-6)),var(--worker-ground),0) scale(var(--worker-scale))}
  88%,100%{opacity:1;transform:translate3d(calc(var(--worker-shift) + var(--worker-travel)),var(--worker-ground),0) scale(var(--worker-scale))}
}

/* Precise leg-only layers: the waist and torso stay fixed while each full leg alternates. */
.classic-home #fac.factory-contact .worker-leg{
  --leg-blue:#0645be;
  --leg-start:57%;
  --shoe-start:75%;
  background:linear-gradient(to bottom,transparent 0 var(--leg-start),var(--leg-blue) var(--leg-start) var(--shoe-start),#061a43 var(--shoe-start) 100%);
}
.classic-home #fac.factory-contact .worker-two .worker-leg,
.classic-home #fac.factory-contact .worker-three .worker-leg{--leg-start:57.2%;--shoe-start:71.5%;--leg-blue:#0643b9}
.classic-home #fac.factory-contact .worker-four .worker-leg{--leg-start:58.4%;--shoe-start:79.4%;--leg-blue:#0750c8}
.classic-home #fac.factory-contact .worker-one .worker-leg-a{
  clip-path:polygon(19.75% 56.8%,21.35% 56.8%,21.25% 63.5%,20.55% 69.5%,19.35% 76.6%,20.35% 79.3%,18.2% 79.1%,17.85% 76.0%,19.05% 69.1%);
  transform-origin:20.65% 58.2%;
}
.classic-home #fac.factory-contact .worker-one .worker-leg-b{
  clip-path:polygon(21.25% 56.8%,22.75% 56.8%,22.95% 64.0%,23.25% 70.8%,23.35% 76.2%,25.15% 76.1%,25.25% 78.9%,23.55% 79.4%,22.55% 77.4%,22.05% 70.2%);
  transform-origin:21.95% 58.2%;
}
.classic-home #fac.factory-contact .worker-two .worker-leg-a{
  clip-path:polygon(41.05% 57.2%,42.35% 57.2%,42.25% 63.2%,41.65% 67.8%,40.2% 71.7%,41.85% 73.5%,40.25% 73.7%,39.95% 71.5%,40.7% 66.7%);
  transform-origin:41.75% 58.5%;
}
.classic-home #fac.factory-contact .worker-two .worker-leg-b{
  clip-path:polygon(42.25% 57.2%,43.45% 57.2%,43.65% 63.4%,44.15% 67.8%,44.45% 71.6%,45.05% 71.4%,45.05% 73.2%,43.8% 73.8%,43.05% 71.4%,42.75% 66.4%);
  transform-origin:42.85% 58.5%;
}
.classic-home #fac.factory-contact .worker-three .worker-leg-a{
  clip-path:polygon(55.8% 57.4%,57.05% 57.4%,56.85% 63.2%,56.15% 67.8%,54.65% 71.5%,56.15% 73.3%,54.55% 73.5%,54.15% 71.3%,55.0% 66.6%);
  transform-origin:56.45% 58.7%;
}
.classic-home #fac.factory-contact .worker-three .worker-leg-b{
  clip-path:polygon(56.95% 57.4%,58.15% 57.4%,58.35% 63.3%,58.85% 67.6%,59.1% 71.4%,59.75% 71.2%,59.7% 73.1%,58.45% 73.6%,57.75% 71.2%,57.45% 66.5%);
  transform-origin:57.55% 58.7%;
}
.classic-home #fac.factory-contact .worker-four .worker-leg-a{
  clip-path:polygon(72.2% 58.4%,74.05% 58.4%,73.7% 65.0%,72.6% 71.5%,71.0% 79.7%,72.7% 82.2%,70.55% 82.4%,69.85% 79.8%,71.15% 71.0%);
  transform-origin:73.1% 59.4%;
}
.classic-home #fac.factory-contact .worker-four .worker-leg-b{
  clip-path:polygon(73.85% 58.4%,75.55% 58.4%,75.95% 65.0%,76.75% 71.6%,77.75% 79.4%,79.2% 79.3%,79.15% 82.0%,77.0% 82.6%,75.95% 80.0%,75.0% 71.0%);
  transform-origin:74.7% 59.4%;
}
@keyframes factory-worker-clean-leg-a{
  0%,10%{transform:rotate(0)}
  11%,22%{transform:rotate(-3.4deg)}
  23%,34%{transform:rotate(3.4deg)}
  35%,46%{transform:rotate(-3.4deg)}
  47%,58%{transform:rotate(3.4deg)}
  59%,70%{transform:rotate(-3.4deg)}
  71%,82%{transform:rotate(3.4deg)}
  83%,92%{transform:rotate(-2.6deg)}
  93%,100%{transform:rotate(0)}
}
@keyframes factory-worker-clean-leg-b{
  0%,10%{transform:rotate(0)}
  11%,22%{transform:rotate(3.4deg)}
  23%,34%{transform:rotate(-3.4deg)}
  35%,46%{transform:rotate(3.4deg)}
  47%,58%{transform:rotate(-3.4deg)}
  59%,70%{transform:rotate(3.4deg)}
  71%,82%{transform:rotate(-3.4deg)}
  83%,92%{transform:rotate(2.6deg)}
  93%,100%{transform:rotate(0)}
}

/* Closing factory: keep the blue ribbon under the building stable. */
.classic-home .science-river-canvas{
  transition:none!important;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  transform:none!important;
  will-change:auto!important;
}
.classic-home #fac.factory-contact,
.classic-home #fac.factory-contact .factory-scene-layers,
.classic-home #fac.factory-contact .factory-base-layer,
.classic-home #fac.factory-contact + .footer{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.classic-home #fac.factory-contact .factory-base-layer,
.classic-home .footer{
  animation:none!important;
  transition:none!important;
  opacity:1!important;
}
.classic-home #fac.factory-contact .factory-scene-layers{
  filter:none!important;
}
.classic-home #fac.factory-contact .factory-base-layer{
  filter:drop-shadow(0 -16px 34px rgba(41,70,132,.16));
  transform:translateZ(0);
  will-change:auto!important;
}
.classic-home #fac.factory-contact .fac-illus.factory-rise-done{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
  transition:none!important;
}
.classic-home #fac.factory-contact .factory-rise-on .factory-worker{
  animation:factory-worker-step-walk var(--worker-walk-time,5.9s) steps(1,end) var(--worker-arrive-delay,1.08s) both!important;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-one{--worker-arrive-delay:1.08s;--worker-walk-time:5.7s}
.classic-home #fac.factory-contact .factory-rise-on .worker-two{--worker-arrive-delay:1.34s;--worker-walk-time:6.15s}
.classic-home #fac.factory-contact .factory-rise-on .worker-three{--worker-arrive-delay:1.18s;--worker-walk-time:5.85s}
.classic-home #fac.factory-contact .factory-rise-on .worker-four{--worker-arrive-delay:1.52s;--worker-walk-time:6.3s}
.classic-home #fac.factory-contact .factory-rise-on .factory-worker .worker-body{
  animation:none!important;
  transform:none!important;
}
.classic-home #fac.factory-contact .factory-rise-on .factory-worker .worker-leg-a{
  animation:factory-worker-chopstick-a var(--worker-walk-time,5.9s) steps(1,end) var(--worker-arrive-delay,1.08s) both!important;
}
.classic-home #fac.factory-contact .factory-rise-on .factory-worker .worker-leg-b{
  animation:factory-worker-chopstick-b var(--worker-walk-time,5.9s) steps(1,end) var(--worker-arrive-delay,1.08s) both!important;
}
@keyframes factory-worker-step-walk{
  0%{opacity:0;transform:translate3d(var(--worker-shift),calc(var(--worker-ground) + 3px),0) scale(var(--worker-scale))}
  7%,13%{opacity:1;transform:translate3d(var(--worker-shift),var(--worker-ground),0) scale(var(--worker-scale))}
  14%,25%{opacity:1;transform:translate3d(calc(var(--worker-shift) + var(--worker-step-1)),var(--worker-ground),0) scale(var(--worker-scale))}
  26%,37%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-2)),var(--worker-ground),0) scale(var(--worker-scale))}
  38%,49%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-3)),var(--worker-ground),0) scale(var(--worker-scale))}
  50%,61%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-4)),var(--worker-ground),0) scale(var(--worker-scale))}
  62%,73%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-5)),var(--worker-ground),0) scale(var(--worker-scale))}
  74%,85%{transform:translate3d(calc(var(--worker-shift) + var(--worker-step-6)),var(--worker-ground),0) scale(var(--worker-scale))}
  86%,100%{opacity:1;transform:translate3d(calc(var(--worker-shift) + var(--worker-travel)),var(--worker-ground),0) scale(var(--worker-scale))}
}
/* Both legs hinge from the hip like two chopsticks: open, close, then swap. */
@keyframes factory-worker-chopstick-a{
  0%,7%,13%,25%,37%,49%,61%,73%,85%,100%{transform:rotate(0)}
  8%,12%,26%,36%,50%,60%,74%,84%{transform:rotate(-3.1deg)}
  14%,24%,38%,48%,62%,72%{transform:rotate(3.1deg)}
}
@keyframes factory-worker-chopstick-b{
  0%,7%,13%,25%,37%,49%,61%,73%,85%,100%{transform:rotate(0)}
  8%,12%,26%,36%,50%,60%,74%,84%{transform:rotate(3.1deg)}
  14%,24%,38%,48%,62%,72%{transform:rotate(-3.1deg)}
}

/* Use the original raster artwork for every isolated body, leg and shoe. */
.classic-home #fac.factory-contact .factory-worker .worker-body,
.classic-home #fac.factory-contact .factory-worker .worker-leg{
  clip-path:none!important;
  background:none!important;
}
.classic-home #fac.factory-contact .worker-one .worker-leg-a{transform-origin:20.2% 57.5%}
.classic-home #fac.factory-contact .worker-one .worker-leg-b{transform-origin:22.0% 57.5%}
.classic-home #fac.factory-contact .worker-two .worker-leg-a{transform-origin:43.9% 62.8%}
.classic-home #fac.factory-contact .worker-two .worker-leg-b{transform-origin:45.4% 62.8%}
.classic-home #fac.factory-contact .worker-three .worker-leg-a{transform-origin:59.8% 62.8%}
.classic-home #fac.factory-contact .worker-three .worker-leg-b{transform-origin:61.2% 62.8%}
.classic-home #fac.factory-contact .worker-four .worker-leg-a{transform-origin:78.0% 66.3%}
.classic-home #fac.factory-contact .worker-four .worker-leg-b{transform-origin:79.8% 66.3%}

/* Final factory-layer polish: decoded once before reveal, original shoes intact. */
.classic-home #fac.factory-contact .factory-base-layer,
.classic-home #fac.factory-contact .factory-worker-part,
.classic-home #fac.factory-contact .factory-truck-layer{
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
  image-rendering:auto;
}
.classic-home #fac.factory-contact .factory-worker .worker-body{z-index:2}
.classic-home #fac.factory-contact .factory-worker .worker-leg{z-index:1}
.classic-home #fac.factory-contact .fac-illus.factory-rise-ready{visibility:visible}
.classic-home #fac.factory-contact .factory-base-layer{opacity:1!important}

/* Fast jumps to the closing sections must not expose one blank frame while
   IntersectionObserver catches up. Keep the section shell, factory base and
   contact copy painted; the truck and workers retain their child animations. */
.classic-home #fac.factory-contact .fac-illus.factory-rise-ready,
.classic-home #fac.factory-contact .fac-illus.factory-rise-ready:not(.factory-rise-on),
.classic-home #fac.factory-contact .fac-illus.factory-rise-on{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}
.classic-home #fac.factory-contact .fac-illus.factory-rise-on{animation:none!important}
.classic-home #ct .fade,
.classic-home #ct .fade.on{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}
.classic-home #fac.factory-contact .factory-contact-copy,
.classic-home #fac.factory-contact .factory-contact-copy.on{
  opacity:1!important;
  transform:none!important;
  filter:none!important;
  transition:none!important;
  animation:none!important;
}
@keyframes factory-worker-clean-leg-a{
  0%,10%{transform:rotate(0)}
  11%,22%{transform:rotate(-2.5deg)}
  23%,34%{transform:rotate(2.5deg)}
  35%,46%{transform:rotate(-2.5deg)}
  47%,58%{transform:rotate(2.5deg)}
  59%,70%{transform:rotate(-2.5deg)}
  71%,82%{transform:rotate(2.5deg)}
  83%,92%{transform:rotate(-2deg)}
  93%,100%{transform:rotate(0)}
}
@keyframes factory-worker-clean-leg-b{
  0%,10%{transform:rotate(0)}
  11%,22%{transform:rotate(2.5deg)}
  23%,34%{transform:rotate(-2.5deg)}
  35%,46%{transform:rotate(2.5deg)}
  47%,58%{transform:rotate(-2.5deg)}
  59%,70%{transform:rotate(2.5deg)}
  71%,82%{transform:rotate(-2.5deg)}
  83%,92%{transform:rotate(2deg)}
  93%,100%{transform:rotate(0)}
}

/* 修复 worker-two/three/four 腿部分裂：隐藏未对齐的抬腿小图，仅保留完整双腿站姿 */
.classic-home #fac.factory-contact .factory-worker .worker-two .worker-leg-a,
.classic-home #fac.factory-contact .factory-worker .worker-three .worker-leg-a,
.classic-home #fac.factory-contact .factory-worker .worker-four .worker-leg-a{
  display:none!important;
}
.classic-home #fac.factory-contact .factory-rise-on .worker-two .worker-leg-b,
.classic-home #fac.factory-contact .factory-rise-on .worker-three .worker-leg-b,
.classic-home #fac.factory-contact .factory-rise-on .worker-four .worker-leg-b{
  animation:none!important;
}
.classic-home #fac.factory-contact .worker-two .worker-leg-b{transform:translateX(-0.18%)}
.classic-home #fac.factory-contact .worker-three .worker-leg-b{transform:translateX(-0.18%)}
.classic-home #fac.factory-contact .worker-four .worker-leg-b{transform:translateX(-0.78%)}

/* 修复 worker-2/3/4 手重影：裁掉腿图上半部分自带的手臂，只保留腿 */
.classic-home #fac.factory-contact .worker-two .worker-leg-b,
.classic-home #fac.factory-contact .worker-three .worker-leg-b{
  clip-path:inset(66% 0 0 0);
}
.classic-home #fac.factory-contact .worker-four .worker-leg-b{
  clip-path:inset(74% 0 0 0);
}

/* 静态工人合影：替换原来后三个工人，大小与原来一致 */
.classic-home #fac.factory-contact .ws{display:none}
.classic-home #fac.factory-contact .factory-workers-static{
  position:absolute;
  left:62%;
  bottom:-12%;
  height:90%;
  width:auto;
  transform:translateX(-50%);
  z-index:5;
  pointer-events:none;
  clip-path:inset(0 35% 0 0);
}
/* 隐藏原来的 worker-2/3/4，只保留 worker-1 动画 */
.classic-home #fac.factory-contact .worker-two,
.classic-home #fac.factory-contact .worker-three,
.classic-home #fac.factory-contact .worker-four{
  display:none!important;
}

/* 56566 card fan alignment: keep the closed deck and all five open cards on
   one true center line. This replaces the older 62% pivot that made cards 3
   and 4 collide. */
.classic-home .apps-grid.fan-ready:before,
.classic-home .apps-grid.fan-ready .app-card,
.classic-home .app-fan-trigger{
  left:50%!important;
}
.classic-home .app-fan-trigger .fan-core{
  left:50%!important;
}
.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(1){left:10%!important}
.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(2){left:30%!important}
.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(3){left:50%!important}
.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(4){left:70%!important}
.classic-home .apps-grid.fan-ready.fan-open .app-card:nth-child(5){left:90%!important}

/* 手机端工人图保持和电脑端一样的比例 */
@media(max-width:1024px){
  .classic-home #fac.factory-contact .factory-workers-static{
    height:90%;
    bottom:-12%;
    left:62%;
  }
}
