/* Luis: empathetic expressions, driven by the conversation state. */
.luis-presence{display:flex;align-items:center;gap:18px;padding:8px 22px;background:linear-gradient(110deg,#eaf2f8,#f6f8fb);border-bottom:1px solid #d8e2ec;flex-shrink:0;min-height:116px}
.luis-portrait{width:100px;height:100px;flex:0 0 100px;background-image:url('assets/luis-expressions-v1.png');background-size:300% 200%;background-repeat:no-repeat;background-position:0 0;transform-origin:50% 85%;animation:luis-presence-breathe 4s ease-in-out infinite;filter:drop-shadow(0 3px 3px #102e5410)}
.luis-presence-name{display:block;color:#102e54;font-size:17px;font-weight:800;margin-bottom:5px}.luis-presence-copy{min-width:0}#luis-expression-status{display:block;font-size:14px;line-height:1.5;color:#344d65}
.luis-presence[data-mood=thinking] .luis-portrait{background-position:50% 0;animation:luis-consider 4s ease-in-out infinite}.luis-presence[data-mood=idea] .luis-portrait{background-position:100% 0;animation:luis-gentle-nod 2.5s ease-in-out 2,luis-presence-breathe 4s ease-in-out infinite}.luis-presence[data-mood=empathy] .luis-portrait{background-position:0 100%}.luis-presence[data-mood=reassuring] .luis-portrait{background-position:50% 100%;animation:luis-gentle-nod 3s ease-in-out 2,luis-presence-breathe 4s ease-in-out infinite}.luis-presence[data-mood=listening] .luis-portrait{background-position:100% 100%}.luis-presence[data-mood=welcome] .luis-portrait{animation:luis-gentle-nod 2.8s ease-in-out 2,luis-presence-breathe 4s ease-in-out infinite}
.luis-thinking-dots{display:none;gap:4px;margin-top:7px}.luis-presence[data-mood=thinking] .luis-thinking-dots{display:flex}.luis-thinking-dots i{width:5px;height:5px;border-radius:50%;background:#346489;animation:luis-dot 1.5s ease-in-out infinite}.luis-thinking-dots i:nth-child(2){animation-delay:.2s}.luis-thinking-dots i:nth-child(3){animation-delay:.4s}
@keyframes luis-presence-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes luis-gentle-nod{0%,70%,100%{transform:rotate(0)}35%{transform:rotate(2deg) translateY(2px)}}@keyframes luis-consider{0%,100%{transform:rotate(0)}50%{transform:rotate(-2deg)}}@keyframes luis-dot{0%,100%{opacity:.35}50%{opacity:1}}
body.motion-paused .luis-portrait,body.motion-paused .luis-thinking-dots i{animation-play-state:paused}
@media(max-width:760px){.luis-presence{padding:6px 18px;gap:13px;min-height:96px}.luis-portrait{width:84px;height:84px;flex-basis:84px}.luis-presence-name{font-size:16px}#luis-expression-status{font-size:13px}}
@media(max-height:600px){.luis-presence{min-height:70px;padding:3px 18px}.luis-portrait{width:64px;height:64px;flex-basis:64px}}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .luis-portrait,body:not(.motion-enabled) .luis-thinking-dots i{animation:none}}

/* The launcher portrait sits above its label, keeping the entire CTA readable. */
.floating-help{min-height:94px;padding:8px 18px 8px 9px;gap:12px}.floating-help .character{width:94px;height:125px;margin-top:-25px}.float-copy strong{font-size:15px}.float-copy>span{font-size:13px}
@media(min-width:761px) and (max-width:1100px){.floating-help .character{width:104px;height:139px}.floating-help{bottom:22px;right:20px}.luis-portrait{width:120px;height:120px;flex-basis:120px}.luis-presence{min-height:136px}}
@media(max-width:760px){
 .mobile-bar{align-items:end;overflow:visible;pointer-events:none;background:linear-gradient(0deg,#102e54 0%,#102e54 72%,#102e5400 100%);padding-top:18px}
 .mobile-bar a,.mobile-bar button{pointer-events:auto;min-height:52px}
 .mobile-bar button{position:relative;overflow:visible;padding:10px 6px;isolation:isolate}
 .mobile-bar button .character{position:absolute;bottom:calc(100% - 20px);left:50%;width:120px;height:160px;max-width:none;flex-shrink:0;margin:0 0 0 -60px;filter:drop-shadow(0 3px 5px #071b3550);pointer-events:none}
 .mobile-bar button>span[data-t]{font-size:14px;line-height:1.4;position:relative;z-index:1}
 .mobile-bar a{font-size:14px}
 .luis-portrait{width:112px;height:112px;flex-basis:112px}.luis-presence{min-height:124px;gap:14px}.luis-presence-name{font-size:18px}#luis-expression-status{font-size:14px}
 #site-footer{padding-bottom:230px}
 .hero-content{padding-bottom:31px}
}
@media(max-width:360px){.mobile-bar button .character{width:108px;height:144px;margin-left:-54px}.mobile-bar button>span[data-t],.mobile-bar a{font-size:13px}.luis-portrait{width:96px;height:96px;flex-basis:96px}.luis-presence{min-height:108px;gap:10px}}
@media(max-width:760px) and (max-height:600px){.mobile-bar button .character{width:76px;height:101px;margin-left:-38px}.hero-content{padding-bottom:31px}.luis-portrait{width:64px;height:64px;flex-basis:64px}.luis-presence{min-height:70px}.luis-presence-name{font-size:15px}#luis-expression-status{font-size:12px}}

@media(max-width:760px){.mobile-bar button .character{clip-path:inset(0 7% 13%)}.mobile-bar button{border-radius:7px}}
@media(max-width:360px){.mobile-bar button .character{bottom:calc(100% - 18px)}}
@media(max-width:760px) and (max-height:600px){.mobile-bar button .character{bottom:calc(100% - 13px)}}

.luis-voice-controls{display:flex;align-items:center;gap:6px;margin-top:6px}.luis-voice-controls button{width:44px;height:40px;min-width:44px;border:1px solid #c6d5e3;border-radius:7px;background:#fff;color:#102e54;font-size:18px;cursor:pointer}.luis-voice-controls button:focus-visible{outline:3px solid #279bbb;outline-offset:2px}#luis-voice-disclosure{font-size:11px;color:#50677b}.luis-speaking .luis-portrait{filter:drop-shadow(0 3px 5px #32658835)}

/* Luis photographic portrait, based on his original character reference. */
.character,body.motion-enabled .character{
 background-image:url('assets/luis-realistic-v1.png');
 background-size:contain;background-position:center bottom;background-repeat:no-repeat;
 clip-path:none;animation:none;
}
.luis-portrait,.luis-presence[data-mood] .luis-portrait,
body.motion-enabled .luis-presence[data-mood] .luis-portrait{
 background-image:url('assets/luis-realistic-v1.png');
 background-size:205% auto;background-position:57% 3%;background-repeat:no-repeat;
 border-radius:50%;background-color:#eaf2f8;animation:none;transform:none;
}
@media(max-width:760px){.mobile-bar button .character{clip-path:none}}

/* Seven photographic outfits, selected locally by the Texas calendar day. */
.character,body.motion-enabled .character{background-image:var(--luis-daily-avatar,url('assets/luis-realistic-v1.png'));animation:luis-presence-breathe 5s ease-in-out infinite}
.luis-portrait,.luis-presence[data-mood] .luis-portrait,body.motion-enabled .luis-presence[data-mood] .luis-portrait{background-image:var(--luis-daily-avatar,url('assets/luis-realistic-v1.png'));background-size:220% auto;background-position:55% 2%;animation:luis-presence-breathe 4s ease-in-out infinite}
.luis-presence[data-mood=thinking] .luis-portrait{animation:luis-consider 4s ease-in-out infinite}
.luis-presence[data-mood=welcome] .luis-portrait,.luis-presence[data-mood=reassuring] .luis-portrait{animation:luis-gentle-nod 3s ease-in-out 2,luis-presence-breathe 5s ease-in-out infinite}
body.motion-paused .character,body.motion-paused .luis-portrait{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){body:not(.motion-enabled) .character,body:not(.motion-enabled) .luis-portrait{animation:none!important}}
