body{margin:0;background:#F6F5F2;color:#111111;font-family:'Geist',system-ui,sans-serif;-webkit-font-smoothing:antialiased}
a{color:#111111}a:hover{color:#2D45E0}
*{box-sizing:border-box}
.display{font-family:'Jost',sans-serif}
.nav-links{display:flex}
.lang a{padding:4px 9px;border-radius:999px;color:#6E6A63;text-decoration:none}
.lang a[aria-current="page"]{background:#111111;color:#FFFFFF}
@media (max-width:900px){.nav-links{display:none}.hero-float{display:none}}
@media (max-width:560px){.nav-cta{display:none !important}}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";float:right;font-weight:300;font-size:22px;line-height:1;color:#6E6A63}
details[open] summary::after{content:"−"}

/* job picker */
.job-tab{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid #DCD8D0;background:#FFFFFF;color:#3A3834;font-family:inherit;font-size:14px;cursor:pointer;transition:all .2s}
.job-tab[aria-selected="true"]{border-color:#111111;background:#111111;color:#FFFFFF;font-weight:500}
.job-tab .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:9px;vertical-align:-1px}
.job-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.job-panel[hidden]{display:none}

/* robot eyes */
@keyframes blinkEye{0%,91%,100%{transform:scaleY(1)}94%{transform:scaleY(.08)}97%{transform:scaleY(1)}}
.eye{transform-box:fill-box;transform-origin:center;animation:blinkEye 5.2s infinite}
@keyframes lookScan{0%,16%{transform:translate(0,0)}22%,40%{transform:translate(-8px,0)}46%,64%{transform:translate(8px,0)}70%,100%{transform:translate(0,0)}}
@keyframes lookAround{0%,18%{transform:translate(0,0)}24%,38%{transform:translate(6px,-6px)}44%,58%{transform:translate(-7px,2px)}64%,80%{transform:translate(0,6px)}86%,100%{transform:translate(0,0)}}
@keyframes lookWalk{0%{transform:translate(-8px,-7px)}25%{transform:translate(-8px,-2px)}50%{transform:translate(-8px,3px)}75%{transform:translate(-8px,7px)}100%{transform:translate(-8px,-7px)}}
@keyframes lookPass{0%,33%{transform:translate(-8px,0)}39%,100%{transform:translate(8px,0)}}
.look-scan{animation:lookScan 7s cubic-bezier(.6,0,.3,1) infinite}
.look-around{animation:lookAround 9s cubic-bezier(.6,0,.3,1) infinite}
.look-walk{animation:lookWalk 8s steps(1,end) infinite}
.look-pass{animation:lookPass 9s cubic-bezier(.6,0,.3,1) infinite}
.tracking{animation:none !important;transition:transform .25s ease-out}

/* ambient */
@keyframes drift{from{background-position:0 0}to{background-position:280px 140px}}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.rise{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.d1{animation-delay:.25s}.d2{animation-delay:.55s}.d3{animation-delay:.85s}.d4{animation-delay:1.15s}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}
.live{animation:blink 1.6s ease-in-out infinite}
@keyframes bar{0%{width:8%}60%{width:86%}100%{width:8%}}
@keyframes dots{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.typing span{display:inline-block;width:5px;height:5px;border-radius:50%;background:#8A867E;animation:dots 1.2s infinite}
.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}

/* voice wave */
@keyframes pulse{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.wave span{display:block;width:3px;border-radius:2px;transform-origin:center;animation:pulse 1.2s ease-in-out infinite}
.wave span:nth-child(2n){animation-delay:.15s}.wave span:nth-child(3n){animation-delay:.3s}.wave span:nth-child(5n){animation-delay:.45s}

/* tickers */
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee{animation:marquee 48s linear infinite}
@keyframes rollUp{from{transform:translateY(0)}to{transform:translateY(-50%)}}
.roll{animation:rollUp 26s linear infinite}

/* call transcript, 16s loop */
@keyframes t1{0%,2%{opacity:0;transform:translateY(8px)}6%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes t2{0%,15%{opacity:0;transform:translateY(8px)}19%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes t3{0%,28%{opacity:0;transform:translateY(8px)}32%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes t4{0%,43%{opacity:0;transform:translateY(8px)}47%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes t5{0%,56%{opacity:0;transform:translateY(8px)}60%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes t6{0%,70%{opacity:0;transform:scale(.97)}74%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
.t1{animation:t1 16s infinite}.t2{animation:t2 16s infinite}.t3{animation:t3 16s infinite}.t4{animation:t4 16s infinite}.t5{animation:t5 16s infinite}.t6{animation:t6 16s infinite}

/* teammate chat, 10s loop */
@keyframes c1{0%,4%{opacity:0;transform:translateY(8px)}9%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes c2{0%,16%{opacity:0}20%,36%{opacity:1}40%,100%{opacity:0}}
@keyframes c3{0%,38%{opacity:0;transform:translateY(8px)}43%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
@keyframes c4{0%,60%{opacity:0;transform:translateY(8px)}65%,90%{opacity:1;transform:none}96%,100%{opacity:0}}
.c1{animation:c1 10s infinite}.c2{animation:c2 10s infinite}.c3{animation:c3 10s infinite}.c4{animation:c4 10s infinite}

/* computer scene, 8s loop */
@keyframes cursor{0%{left:82%;top:88%}22%{left:46%;top:40%}50%{left:46%;top:40%}68%{left:30%;top:66%}72%{left:30%;top:66%;transform:scale(.85)}76%{transform:scale(1)}100%{left:30%;top:66%}}
@keyframes typein{0%,24%{width:0}46%,100%{width:15ch}}
@keyframes press{0%,69%{background:#111111}71%,74%{background:#55575D}76%,100%{background:#111111}}
@keyframes signed{0%,76%{opacity:0;transform:translateY(4px)}80%,96%{opacity:1;transform:none}100%{opacity:0}}
.cursor{animation:cursor 8s cubic-bezier(.4,0,.2,1) infinite}
.typein{animation:typein 8s steps(15) infinite}
.press{animation:press 8s infinite}
.signed{animation:signed 8s infinite}

/* teach scene */
@keyframes walk{0%{top:0}25%{top:44px}50%{top:88px}75%{top:132px}100%{top:0}}
.walk{animation:walk 8s steps(1,end) infinite}
@keyframes recbar{from{width:0}to{width:100%}}
.recbar{animation:recbar 8s linear infinite}

/* hand-off scene, 9s loop */
@keyframes hop{0%{left:12%;opacity:0}4%{opacity:1}30%{left:50%}36%{left:50%}63%{left:88%;opacity:1}70%,100%{left:88%;opacity:0}}
@keyframes lab1{0%,30%{opacity:1}34%,96%{opacity:0}100%{opacity:1}}
@keyframes lab2{0%,31%{opacity:0}35%,63%{opacity:1}67%,100%{opacity:0}}
@keyframes lab3{0%,64%{opacity:0}68%,95%{opacity:1}99%,100%{opacity:0}}
.hop{animation:hop 9s cubic-bezier(.45,0,.25,1) infinite}
.lab1{animation:lab1 9s infinite}.lab2{animation:lab2 9s infinite}.lab3{animation:lab3 9s infinite}

@keyframes scan{0%,100%{top:6%}50%{top:90%}}
.scan{animation:scan 3.2s ease-in-out infinite}

@supports (animation-timeline: view()){
.reveal{animation:rise linear both;animation-timeline:view();animation-range:entry 0% cover 22%}
}
@media (prefers-reduced-motion: reduce){
*,*::before,*::after{animation:none !important;transition:none !important}
}
