/* The real model replaces the prior video, with its poster as a loading fallback. */
.robot-scene,.ai-hero .robot-scene,.ai-layout .robot-scene{animation:none;perspective:none;aspect-ratio:1214/1295}
.robot-rig{transform:none!important;transition:none;aspect-ratio:1214/1295}
.robot-rig>.robot-poster{opacity:1;clip-path:none}
.robot-rig>.robot-screen{transform:none;left:7.015%;top:5.466%;width:78.228%;height:40.416%;clip-path:polygon(0.000% 0.000%,100.000% 0.946%,99.918% 99.848%,0.249% 100.000%);border-radius:2.5%}
.robot-live-copy .screen-welcome{font-size:12.5cqi}
.robot-scene:not([data-phase='0']) .robot-live-copy .screen-welcome{font-size:5.42cqi}
.robot-live-copy .screen-subtitle{font-size:3cqi}
.robot-3d-layer{position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:0}
.robot-3d-canvas{display:block;width:100%;height:100%;outline:none}
.robot-webgl-ready .robot-3d-layer{opacity:1}
.robot-webgl-ready .robot-rig{opacity:0;pointer-events:none}
.robot-scene.is-zooming{z-index:3}
.robot-scene.is-zooming .robot-rig{transform-origin:46.130% 25.674%;transform:translate3d(var(--zoom-x,0px),var(--zoom-y,0px),0) scale(var(--robot-zoom,1))!important}
.robot-scene.robot-webgl-ready.is-zooming .robot-rig{transform:none!important}
.ai-screen-content{z-index:4}
@media(prefers-reduced-motion:reduce){.robot-scene{animation:none}.robot-3d-layer{transition:none}}

.robot-rig>.robot-screen{transform:none;left:7.015%;top:5.466%;width:78.228%;height:40.416%;clip-path:polygon(0.000% 0.000%,100.000% 0.946%,99.918% 99.848%,0.249% 100.000%);border-radius:2.5%}

.robot-scene[data-phase='1'] .robot-live-copy .screen-welcome{font-size:12.5cqi}
.robot-face{display:none;position:absolute;inset:0;place-items:center}
.robot-face svg{width:80%;height:80%;fill:none;stroke:#b7cbff;stroke-width:2.5;overflow:visible}
.robot-face path{fill:none;stroke:#b7cbff;stroke-width:2.5;stroke-linecap:round}
.robot-face-wink{opacity:0}
.robot-scene[data-screen-state=face] .robot-face{display:grid}
.robot-scene[data-screen-state=face] .robot-live-copy{visibility:hidden}
.robot-scene[data-screen-state=face] .robot-face-eye{animation:robot-wink-eye 5s linear}
.robot-scene[data-screen-state=face] .robot-face-wink{animation:robot-wink-line 5s linear}
.robot-scene[data-screen-state=prompt] .robot-live-copy{align-items:flex-end;padding:14% 8%}
.robot-scene[data-screen-state=prompt] .screen-welcome{background:#2663f7;border-radius:3cqi 3cqi .5cqi 3cqi;padding:5cqi;max-width:88%;font-size:4.8cqi;line-height:1.4}
.robot-scene[data-screen-state=prompt] .screen-subtitle{order:-1;margin-bottom:2cqi}
.robot-scene[data-screen-state=success] .robot-live-copy{height:100%;width:100%;background:linear-gradient(125deg,#2663f7,#7525dc 68%,#ae28dc);margin:0;padding:8%;border-radius:0;align-items:center;text-align:center}
.robot-scene[data-screen-state=success] .screen-welcome:before{content:'✓';display:block;font-size:9cqi;margin-bottom:2cqi}
.robot-scene[data-screen-state=success] .robot-process{display:none}
.robot-scene[data-screen-state=success]:not(.robot-webgl-ready) .robot-rig{animation:robot-poster-cheer 1.8s ease-out}
@keyframes robot-wink-eye{0%,46%,64%,100%{opacity:1}47%,63%{opacity:0}}
@keyframes robot-wink-line{0%,46%,64%,100%{opacity:0}47%,63%{opacity:1}}
@keyframes robot-poster-cheer{0%,100%{translate:0 0}18%{translate:-4px -7px}32%{translate:4px -3px}46%{translate:-3px -5px}60%{translate:2px -2px}}
@media(prefers-reduced-motion:reduce){.robot-face-eye,.robot-face-wink,.robot-rig{animation:none!important}}

.robot-confetti{display:none;position:absolute;inset:0;overflow:hidden;pointer-events:none}
.robot-scene[data-screen-state=success] .robot-confetti{display:block}
.robot-confetti i{position:absolute;left:var(--confetti-x);top:-8%;width:.35cqi;height:.65cqi;background:var(--confetti-color);opacity:0;animation:robot-fine-confetti var(--confetti-speed) linear var(--confetti-delay) both}
@keyframes robot-fine-confetti{0%{opacity:0;translate:0 0;rotate:var(--confetti-angle)}10%,80%{opacity:.9}100%{opacity:0;translate:3cqi 55cqi;rotate:calc(var(--confetti-angle) + 480deg)}}
@media(prefers-reduced-motion:reduce){.robot-confetti{display:none!important}}

.robot-scene[data-phase='1'] .robot-live-copy{align-items:center;text-align:center}
.robot-scene[data-phase='1'] .robot-live-copy .screen-welcome{display:flex;justify-content:center;font-size:17.5cqi;line-height:1.2}
.robot-greeting-letter{display:inline-block;animation:robot-letter-arrive .42s cubic-bezier(.16,1,.3,1) var(--letter-delay) both}
@keyframes robot-letter-arrive{from{opacity:0;translate:0 3cqi;scale:.94}to{opacity:1;translate:0 0;scale:1}}
.robot-scene:not(.robot-webgl-ready) .robot-rig{translate:var(--flight-x,0px) var(--flight-y,0px);transition:translate .8s cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:reduce){.robot-greeting-letter{animation:none}.robot-rig{translate:none!important;transition:none!important}}

.robot-screen,.robot-live-copy .screen-welcome,.robot-live-copy .screen-subtitle,.robot-process p{font-family:Montserrat,Arial,sans-serif}

.robot-neon-glow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.robot-face-smile{stroke-dasharray:1;stroke-dashoffset:1}
.robot-scene[data-screen-state=face] .robot-face-smile{animation:robot-smile-draw .8s ease-in-out 2.35s both}
@keyframes robot-smile-draw{to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:reduce){.robot-face-smile{animation:none!important}}

/* Quick mechanical expressions, with chamfered segmented outlines. */
.robot-face svg{filter:drop-shadow(0 0 3px #477bff55)}
.robot-face-eye-left{transform-origin:110px 48px}
.robot-face-eye{transform-origin:190px 48px}
.robot-scene[data-screen-state=face] .robot-face-eye-left{animation:robot-eye-blink 3s linear both}
.robot-scene[data-screen-state=face] .robot-face-eye{animation:robot-eye-wink 3s linear both}
.robot-scene[data-screen-state=face] .robot-face-smile{animation:robot-smile-draw .28s ease-out 1.42s both;stroke-linejoin:round;stroke-linecap:square}
@keyframes robot-eye-blink{0%,28.3%,34.7%,100%{transform:scaleY(1)}31.3%{transform:scaleY(.04)}}
@keyframes robot-eye-wink{0%,28.3%,34.7%,45%,59.3%,100%{opacity:1;transform:scaleY(1)}31.3%,47.7%,53%{opacity:1;transform:scaleY(.04)}}
@media(prefers-reduced-motion:reduce){.robot-face-eye-left,.robot-face-eye{animation:none!important}}

.robot-scene[data-screen-state=prompt] .robot-live-copy .screen-welcome{position:relative;width:fit-content;max-width:88%;font-size:4.8cqi;padding:5cqi;border-radius:3cqi 3cqi .5cqi 3cqi}
.robot-scene[data-screen-state=prompt] .screen-welcome:before{content:'';position:absolute;right:0;bottom:-1.7cqi;width:2.4cqi;height:2cqi;background:#2663f7;clip-path:polygon(0 0,100% 0,100% 100%)}
.robot-tech-mesh{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.64;mix-blend-mode:screen;mask-image:linear-gradient(90deg,#000 0%,#0009 40%,#0002 78%,transparent 100%);transition:opacity .45s}
.ai-hero .robot-tech-mesh{mask-image:linear-gradient(90deg,transparent 0%,#0002 22%,#0009 60%,#000 100%)}
.robot-gradient-section:has(.robot-scene.is-zooming) .robot-tech-mesh{opacity:0}
.robot-scene:not(.robot-webgl-ready):not(.is-zooming) .robot-rig{scale:.93;transform-origin:50% 100%}
@media(max-width:1100px),(max-aspect-ratio:4/3){.robot-tech-mesh,.ai-hero .robot-tech-mesh{mask-image:linear-gradient(180deg,transparent 0%,#0005 36%,#000 65%,#0008 100%);opacity:.5}}
@media(prefers-reduced-motion:reduce){.robot-tech-mesh{transition:none}}
