/* Continuous scene backgrounds, with typography on a separate readable plane. */
.service-panorama{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.panorama-motion{position:absolute;inset:-1.5%;}
.panorama-motion>img{display:block;width:100%;height:100%;object-fit:cover;max-width:none}
.service-panorama:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0c0e10d9 0%,#0c0e10b0 30%,#0c0e1060 45%,transparent 65%);pointer-events:none}
.world-brand .world-grid,.world-ai .world-grid{display:none}
.world-brand .service-hero-layout,.world-ai .service-hero-layout{min-height:680px}
.world-brand .service-visual,.world-ai .service-visual{height:550px}
.world-brand .brand-specimen{bottom:0}
.world-ai .ai-process{bottom:0}
.world-brand .service-breadcrumbs,.world-ai .service-breadcrumbs{position:relative;z-index:3}


/* The software object moves independently from its floor and lighting. */
.world-apps .service-stage{background:radial-gradient(ellipse at 78% 70%,#59121a52,transparent 45%),radial-gradient(ellipse at 68% 20%,#323b4350,transparent 52%),#0f1115}
.world-apps .service-visual{height:580px}
.software-machine{position:absolute;inset:-28px -20px 35px -20px;pointer-events:none}
/* The large bitmap stays on one compositor layer. No animated SVG descendants. */
.machine-object,.machine-lights{position:absolute;inset:0;will-change:transform;backface-visibility:hidden}
.machine-object>img{display:block;width:100%;height:100%;object-fit:contain}
.machine-lights{pointer-events:none}
.machine-floor{position:absolute;inset:auto 8% 45px;height:70px;transform:rotate(-5deg);background:radial-gradient(ellipse,#ec16335c,transparent 68%);animation:machine-shadow 7s ease-in-out infinite}
.machine-core{position:absolute;left:51%;top:46%;width:15%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#fff7dd99,#ff4e293d 30%,transparent 70%);animation:machine-energy 5s ease-in-out infinite;will-change:transform,opacity}
.machine-pulse{position:absolute;left:53%;top:25%;height:46%;width:6px;transform:translateX(-50%)}
.machine-pulse:nth-child(2){left:39%;top:45%;height:28%;transform:rotate(-68deg);transform-origin:top}
.machine-pulse:nth-child(3){left:65%;top:37%;height:28%;transform:rotate(70deg);transform-origin:top}
.machine-pulse:after{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,#fff7df 0 1%,#ff543c 2%,transparent 9%);animation:machine-packet 4s linear infinite;animation-delay:calc(var(--pulse)*-1.3s);will-change:transform,opacity}
@keyframes machine-packet{0%{transform:translate3d(0,-48%,0);opacity:0}12%,82%{opacity:.85}100%{transform:translate3d(0,48%,0);opacity:0}}
.world-apps .world-chips{left:0;bottom:0;z-index:2}

@keyframes machine-shadow{0%,100%{transform:scaleX(.95);opacity:.9}50%{transform:scaleX(1.13);opacity:.45}}
@keyframes machine-energy{0%,100%{opacity:.2;transform:scale(.7)}50%{opacity:.85;transform:scale(1.4)}}

/* Traced light follows the image's existing holograms; the people remain still. */
.learn-composition figure{position:relative;border-radius:12px;box-shadow:0 20px 65px #0004}
.learning-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.learning-halo{transform-box:fill-box;transform-origin:center;animation:learn-halo 12s ease-in-out infinite;animation-delay:calc(var(--phase)*-8s)}
.learning-ring{transform-box:fill-box;transform-origin:center;animation:learn-ring 18s linear infinite;opacity:.65}
.learning-transfer{stroke-dasharray:10 45;animation:learn-transfer 2s linear infinite}
.learning-step,.learning-step:nth-of-type(2),.learning-step:nth-of-type(3){margin-left:0;border-color:#ffffff28;background:#181b20;overflow:hidden;animation:learn-step 12s ease-in-out infinite;animation-delay:calc(var(--phase)*-8s)}
.learning-step:before{display:none}
.learning-step:after{content:'';position:absolute;bottom:0;left:0;width:100%;height:3px;background:#ee0822;transform-origin:left;animation:learn-progress 12s linear infinite;animation-delay:calc(var(--phase)*-8s)}
.learning-step>span,.learning-step:last-child>span{background:#383d45;animation:learn-number 12s ease-in-out infinite;animation-delay:calc(var(--phase)*-8s)}
.learning-step>svg{animation:learn-arrow 12s ease-in-out infinite;animation-delay:calc(var(--phase)*-8s)}
@keyframes learn-halo{0%,28%,100%{opacity:.85;transform:scale(1)}15%{opacity:.2;transform:scale(1.18)}34%,94%{opacity:0;transform:scale(1.25)}}
@keyframes learn-ring{to{transform:rotate(360deg)}}
@keyframes learn-transfer{to{stroke-dashoffset:-55}}
@keyframes learn-step{0%,28%,100%{border-color:#ec0b25;background:#35191f;transform:translateX(0)}35%,94%{border-color:#ffffff28;background:#181b20;transform:translateX(8px)}}
@keyframes learn-progress{0%{transform:scaleX(0);opacity:1}30%{transform:scaleX(1);opacity:1}34%,99%{transform:scaleX(1);opacity:0}100%{transform:scaleX(0);opacity:0}}
@keyframes learn-number{0%,28%,100%{background:#d80019}35%,94%{background:#383d45}}
@keyframes learn-arrow{0%,28%,100%{opacity:1;transform:translateX(0)}35%,94%{opacity:.15;transform:translateX(-10px)}}

/* Kinetic editorial direction: oversized words, real imagery, multiple formats. */
.world-content .service-visual{height:auto;min-height:570px}
.world-content .world-grid{opacity:.4}
.editorial-world{position:relative;padding:22px 0 0;isolation:isolate;max-width:650px;width:100%;margin-inline:auto}
.editorial-world:before{content:'';position:absolute;inset:5% -10% 0;background:radial-gradient(ellipse at 70% 45%,#c6001c33,transparent 70%);z-index:-1}
.editorial-topline{display:flex;align-items:center;gap:20px;justify-content:space-between;font-size:12px;color:#bfc2c9;margin-bottom:25px}
.editorial-topline i{width:44px;height:3px;background:#e6001c;position:relative}
.editorial-topline i:after{content:'';position:absolute;inset:-4px 0;background:#e6001c;opacity:.3;animation:machine-energy 4s infinite}
.editorial-wordmark{position:relative;display:grid;z-index:2;margin:0 0 20px;overflow:hidden;padding-bottom:4px}
.editorial-wordmark>span{grid-area:1/1;font-family:var(--font-sans);font-size:clamp(55px,5vw,82px);font-weight:700;line-height:1.1;letter-spacing:-.04em;white-space:nowrap;color:#f7f4ed;animation:editorial-image 12s ease-in-out infinite;animation-delay:calc(var(--phase)*-8s)}
.editorial-wordmark>span:nth-child(2){color:#ee0824}
.editorial-wordmark>span:nth-child(3){color:#f7f4ed}
.editorial-gallery{position:relative;display:grid;width:100%;aspect-ratio:1.85;background:#191c21;overflow:hidden;border-radius:2px;border:1px solid #ffffff22}
.editorial-view{grid-area:1/1;position:relative;opacity:0;animation:editorial-image 12s ease-in-out infinite;animation-delay:calc(var(--phase)*-8s)}
.editorial-view>img{display:block;width:100%;height:100%;object-fit:cover;animation:editorial-camera 12s ease-in-out infinite;animation-delay:calc(var(--phase)*-8s)}
.editorial-view-index{position:absolute;right:24px;bottom:26px;padding:9px 13px;border:1px solid #ffffff40;border-radius:6px;background:#101215ee;color:#fff;font:500 12px var(--font-sans);line-height:1.4}
.editorial-caption{display:flex;justify-content:space-between;align-items:end;gap:25px;padding:25px 0;border-bottom:1px solid #ffffff30}
.editorial-caption>b{font-size:clamp(24px,2.5vw,36px);line-height:1.13;letter-spacing:-.04em;font-weight:650}
.editorial-caption>span{font-size:12px;line-height:1.7;color:#b6bbc4;flex:none}
.editorial-channels{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px;gap:12px}
.editorial-channels span{padding:10px 0 10px 12px;border-left:2px solid #e00922;font-size:12px;color:#d7d8dc;animation:editorial-channel 12s ease-in-out infinite}
.editorial-channels span:nth-child(2){animation-delay:-8s}.editorial-channels span:nth-child(3){animation-delay:-16s}
@keyframes editorial-word{0%,27%,100%{opacity:1;transform:translateY(0)}33%,94%{opacity:0;transform:translateY(110%)}97%{opacity:0;transform:translateY(-110%)}}
@keyframes editorial-image{0%,27%,100%{opacity:1}33%,94%{opacity:0}}
@keyframes editorial-camera{0%,100%{transform:scale(1.02)}30%{transform:scale(1.08)}94%{transform:scale(1.02)}}
@keyframes editorial-channel{0%,27%,100%{color:#fff;background:#b8001b22}33%,94%{color:#999da6;background:transparent}}

@media(max-width:1100px){.world-brand .service-hero-layout,.world-ai .service-hero-layout{min-height:620px}.world-brand .service-visual,.world-ai .service-visual{height:500px}.world-apps .service-visual{height:480px}.software-machine{inset:-10px -15px 40px -15px}.world-content .service-visual{min-height:470px}.editorial-wordmark>span{font-size:6.3vw}.editorial-caption>b{font-size:28px}.editorial-caption>span{font-size:10px}}
@media(max-width:850px){
 .world-brand .service-hero-layout,.world-ai .service-hero-layout{min-height:0;padding-bottom:30px;gap:20px}
 .service-panorama{--scene-height:540px;top:auto;bottom:0;height:var(--scene-height)}
 .panorama-motion{top:0;bottom:0;right:auto;width:calc(var(--scene-height)*2.334);left:calc((100% - var(--scene-height)*2.334)*.78);animation:none}
 .panorama-motion>img{object-position:center}
 .service-panorama:after{background:linear-gradient(180deg,#101113 0%,#101113cc 8%,transparent 30%),linear-gradient(90deg,#10111355,transparent 45%)}
 .world-ai .ai-flow{width:100%;max-width:none;left:0;height:100%}
 .world-brand .service-visual,.world-ai .service-visual{height:400px;max-width:100%}
 .world-apps .service-visual{height:550px;max-width:580px}
 .world-content .service-visual{min-height:0;max-width:580px}
 .editorial-wordmark>span{font-size:clamp(60px,12vw,100px)}
 .editorial-caption>b{font-size:32px}.editorial-caption>span{font-size:12px}
}
@media(max-width:600px){
 .service-panorama{--scene-height:420px}.world-brand .service-visual,.world-ai .service-visual{height:300px}
 .world-apps .service-visual{height:390px}.software-machine{inset:0 -10px 37px}
 .machine-floor{bottom:35px}.world-apps .world-chips span{font-size:13px;padding:11px}
 .world-ai .ai-process{font-size:12px;padding:17px 10px}
 .world-brand .brand-specimen{bottom:0}.brand-specimen small{font-size:11px}
 .learning-step,.learning-step:nth-of-type(2),.learning-step:nth-of-type(3){margin-left:0;margin-right:8px;font-size:13px;min-height:64px}
 .editorial-world{padding-top:8px}.editorial-topline{font-size:11px;margin-bottom:20px}
 .editorial-wordmark{margin-bottom:16px}.editorial-wordmark>span{font-size:13vw}.editorial-view-index{right:18px;bottom:22px}
 .editorial-gallery{aspect-ratio:1.45}.editorial-caption{padding-block:20px;gap:15px}
 .editorial-caption>b{font-size:25px}.editorial-caption>span{font-size:10px}.editorial-channels{gap:8px}.editorial-channels span{font-size:11px}
}
@media(max-width:380px){.world-apps .service-visual{height:330px}.editorial-caption>b{font-size:22px}.editorial-caption>span{font-size:9px}.world-ai .ai-process{font-size:10px;padding-inline:8px}}

@keyframes learn-step-soft{0%,28%,100%{border-color:#ec0b25;background:#35191f}35%,94%{border-color:#ffffff28;background:#181b20}}
@media(prefers-reduced-motion:reduce){
 .panorama-motion,.editorial-view>img,.learning-ring,.learning-transfer,.editorial-topline i:after{animation:none}
 .machine-object,.machine-lights{}.machine-floor{animation-duration:12s}.machine-core{animation-duration:8s}.machine-pulse:after{animation-duration:8s}
 .learning-halo{animation-name:editorial-image;transform:none}.world-learn .learning-step{animation-name:learn-step-soft}.learning-step:after{display:none}
 .editorial-wordmark>span{animation-name:editorial-image;transform:none}
 .machine-lights{opacity:.65}.ai-flow{opacity:.45}
}
