.friday-machine{width:100%;height:100%;display:block;overflow:visible;contain:layout style}
.friday-machine .f-arm-left{transform-origin:95px 157px}.friday-machine .f-arm-right{transform-origin:267px 158px}
.friday-machine .f-chassis{transform-origin:182px 150px}.friday-machine .f-float{transform-origin:180px 170px}.friday-machine .f-eye{transform-box:fill-box;transform-origin:center}
.friday-machine .f-brow-left{transform-origin:140px 105px}.friday-machine .f-brow-right{transform-origin:218px 104px}
.friday-machine .f-mouth{transform-origin:182px 172px}.friday-machine .f-mouth-line,.friday-machine .f-mouth-open,.friday-machine .f-mouth-round,.friday-machine .f-projection{opacity:0}
.friday-machine .f-pupil,.friday-machine .f-brows,.friday-machine .f-arm,.friday-machine .f-float{transition:transform var(--f-reveal,360ms) var(--f-ease,ease-out)}
[data-expression="curious"] .f-brow-right{transform:translateY(-5px) rotate(-8deg)}
[data-expression="smiling"] .f-eyes{transform:translateY(1px)}
[data-expression="serious"] .f-mouth-smile,[data-pose="serious"] .f-mouth-smile{opacity:0}
[data-expression="serious"] .f-mouth-line,[data-pose="serious"] .f-mouth-line{opacity:1}
[data-expression="surprised"] .f-mouth-smile,[data-state="surprised"] .f-mouth-smile{opacity:0}
[data-expression="surprised"] .f-mouth-round,[data-state="surprised"] .f-mouth-round{opacity:1}
[data-state="surprised"] .f-brows{transform:translateY(-6px)}
[data-gaze="content"] .f-pupil,[data-state="looking"] .f-pupil{transform:translateX(-4px)}
[data-state="pointing"] .f-arm-left,[data-pose="point-left"] .f-arm-left{transform:rotate(34deg)}
[data-state="pointing"] .f-arm-right{transform:rotate(8deg)}
[data-state="pointing"] .f-float{transform:rotate(-3deg)}
[data-state="thinking"] .f-arm-right,[data-pose="think"] .f-arm-right{transform:rotate(-40deg)}
[data-state="thinking"] .f-brow-left{transform:rotate(-12deg)}
[data-state="thinking"] .f-pupil{transform:translate(0,-4px)}
[data-state="thinking"] .f-mouth-smile{opacity:0}[data-state="thinking"] .f-mouth-line{opacity:1}
[data-state="presenting"] .f-arm-left{transform:rotate(14deg)}
[data-state="projecting"] .f-projection{opacity:1;animation:f-project 350ms ease-out 1}
[data-state="projecting"] .f-arm-right{transform:rotate(-20deg)}
[data-state="happy-reaction"] .f-float,[data-state="smiling"] .f-float{transform:rotate(4deg)}
[data-state="happy-reaction"] .f-brow-right{transform:translateY(-4px)}
[data-state="speaking"] .f-mouth-smile{opacity:0}
[data-state="speaking"] .f-mouth-open{opacity:1;animation:f-speak 280ms steps(2,end) infinite alternate}
[data-state="blinking"] .f-eye,.friday-machine.is-blinking .f-eye{animation:f-blink 160ms ease-in-out 1}
[data-state="appearing"] .f-float{animation:f-arrive 420ms var(--f-ease,ease-out) 1}
[data-state="greeting"] .f-arm-left{animation:f-wave 700ms ease-in-out 1}
[data-state="minimizing"] .f-float,[data-state="closing"] .f-float{animation:f-dock 180ms ease-in 1 both}
[data-state="resting"] .f-float{transform:none}
@keyframes f-arrive{0%{opacity:0;transform:translateY(14px) scale(.9,1.05)}65%{opacity:1;transform:translateY(-3px) scale(1.03,.98)}100%{transform:none}}
@keyframes f-wave{0%,100%{transform:rotate(0)}30%,70%{transform:rotate(55deg)}50%{transform:rotate(35deg)}}
@keyframes f-speak{0%{transform:scale(.8,.45)}50%{transform:scale(1,.85)}100%{transform:scale(.85,1)}}
@keyframes f-blink{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.06)}}
@keyframes f-project{from{opacity:0;transform:translate(-5px,5px)}to{opacity:1;transform:none}}
@keyframes f-dock{to{opacity:0;transform:translateY(9px) scale(.85)}}
@media(prefers-reduced-motion:reduce){.friday-machine *{animation:none!important;transition:none!important}.friday-machine .f-mouth-open{transform:none!important}}
.reduced-motion .friday-machine *{animation:none!important;transition:none!important}
[data-pose=serious] .f-arm-left{transform:rotate(-20deg)}
[data-pose=serious] .f-arm-right{transform:rotate(20deg)}
/* Rest is a settled pose. A single pointing arm is reserved for actual teaching events. */
[data-state=resting] .f-arm-left{transform:rotate(-18deg)}
[data-state=resting] .f-arm-right{transform:rotate(18deg)}
[data-state=pointing] .f-arm-right{transform:rotate(18deg)}
[data-state=happy-reaction] .f-brow-left{transform:translateY(-3px) rotate(-6deg)}
[data-state=thinking] .f-brow-right{transform:translateY(3px) rotate(9deg)}
[data-state=speaking] .f-indicator{fill:#ed9b67}
[data-expression=curious] .f-brow-left{transform:translateY(2px)}
[data-state=speaking][data-gesture=pointing] .f-arm-left{transform:rotate(34deg)}
[data-state=speaking][data-gesture=pointing] .f-arm-right{transform:rotate(18deg)}
