/* GENERATED by brand/nico/build.py from moods.py: do not edit by hand. */

.nico{display:block;width:100%;height:auto;overflow:visible}
.nico *{animation-duration:3s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}
.float{transform-origin:100px 188px;animation-name:breathe}
.slump{transform-origin:100px 188px;transition:transform .45s cubic-bezier(.3,1.4,.5,1)}
.shadow{transform-box:fill-box;transform-origin:center;animation-name:shadow}
.tail{transform-origin:150px 168px;animation-name:wag}
.blink{transform-box:fill-box;transform-origin:center;animation-name:blink}
.head{transform-origin:100px 186px}
.ear-l{transform-origin:62px 66px}.ear-r{transform-origin:138px 66px}
.ear{transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.ear-l .etuft{transform-origin:46px 24px}.ear-r .etuft{transform-origin:154px 24px}
.specs{transform-origin:100px 97px}.mic{transform-origin:31px 117px}
.lids{transform-origin:100px 85px;transition:transform .3s,opacity .25s}
.look{transition:transform .3s}
.dots circle{animation-name:dot;animation-duration:1.5s}.dots .d2{animation-delay:.2s}.dots .d3{animation-delay:.4s}
.waves path{stroke-dasharray:60;animation-name:wave;animation-duration:1.5s;animation-timing-function:ease-out}.waves .w2{animation-delay:.3s}
.talk{transform-box:fill-box;transform-origin:center;animation-name:talk;animation-duration:.375s;animation-direction:alternate}
/* hello: hop + ear wiggle greeting */
.s-hello .float{animation-name:greet}
.s-hello .ear-l{animation-name:wigL}.s-hello .ear-r{animation-name:wigR}
.s-hello .shadow{animation-name:greetShadow}
/* idle: bored, waiting by a silent phone; a fly goes by */
.s-idle .slump{transform:translate(-3px,4px) rotate(-8deg)}
.s-idle .ear-l{transform:rotate(-17deg)}.s-idle .ear-r{transform:rotate(15deg)}
.s-idle .float{animation-name:sigh}
.s-idle .look{animation-name:followFly}
.s-idle .lids{animation-name:lidsFly}
.s-idle .tail{animation-name:lazyFlick}
.s-idle .brow-l{transform:translateY(2px) rotate(4deg);transform-box:fill-box;transform-origin:center}.s-idle .brow-r{transform:translateY(2px) rotate(-4deg);transform-box:fill-box;transform-origin:center}
.fly{animation-name:flyBy;animation-timing-function:linear}.wings{animation-name:buzz;animation-duration:.1s}
.puff{animation-name:puff}
.dring{opacity:0}
/* perk up: a message arrives */
.s-idle.perk .slump{transform:none}
.s-idle.perk .ear-l,.s-idle.perk .ear-r{transform:none}
.s-idle.perk .lids{transform:scaleY(0);opacity:0}
.s-idle.perk .look{animation:none;transform:translate(-3px,0)}
.s-idle.perk .brow-l,.s-idle.perk .brow-r{transform:translateY(-4px)}
.s-idle.perk .fly,.s-idle.perk .puff{animation:none;opacity:0}
.s-idle.perk .dring{animation:ringBlink .3s infinite}
.s-idle.perk .dhand{animation:handRattle .12s infinite;transform-origin:19px 162px}
.s-idle.perk .float{animation:none}
/* listening: one ear swivels like a radar */
.s-listening .head{transform:rotate(4deg)} .s-listening .brow-r{transform:translateY(-4px)} .s-listening .look{transform:translate(3px,1px)}
.s-listening .ear-r{animation-name:radar}
/* thinking: glasses slide down the nose, wiggle back up */
.s-thinking .head{transform:rotate(-4deg)} .s-thinking .look{transform:translate(3px,-3px)} .s-thinking .brow-l{transform:translateY(-3px) rotate(-6deg);transform-box:fill-box;transform-origin:center}
.s-thinking .specs{animation-name:specSlide}.s-thinking .float{animation-name:noseWiggle}
/* talking: mic bobs, eyebrows dance */
.s-talking .mic,.s-call .mic{animation-name:micBob;animation-duration:.75s;animation-direction:alternate}
.s-talking .brow-l{animation-name:browUp;animation-duration:.75s;animation-direction:alternate}
.s-talking .brow-r{animation-name:browUp;animation-duration:.75s;animation-direction:alternate;animation-delay:-.375s}
.s-talking .ear-l{animation-name:earFlickL;animation-duration:1.5s}
/* happy: bouncing with squash and stretch, sparkles */
.s-happy .float{animation-name:bounce;animation-duration:.75s;animation-timing-function:linear}
.s-happy .shadow{animation-name:bounceShadow;animation-duration:.75s;animation-timing-function:linear}
.s-happy .tail{animation-duration:.75s}
.sp1,.sp2,.sp3{transform-box:fill-box;transform-origin:center;animation-name:spark;animation-duration:1.5s}.sp2{animation-delay:-.5s}.sp3{animation-delay:-1s}
/* texting: tail wags with every sent bubble */
.s-texting .look,.s-laptop .look{transform:translate(1px,3px)}
.tap-l,.tap-r{transform-box:fill-box;transform-origin:center;animation-name:tap;animation-duration:.25s;animation-direction:alternate}
.tap-r{animation-delay:-.125s}
.bub1{transform-box:fill-box;transform-origin:0 100%;animation-name:pop1}
.bub2{transform-box:fill-box;transform-origin:0 100%;animation-name:pop2}
.scr rect{animation-name:scr}
.s-texting .tail{animation-name:wagSend}
/* laptop: typing speeds up, ear tufts flutter */
.s-laptop .tap-l,.s-laptop .tap-r{animation-name:tapBurst;animation-duration:3s;animation-direction:normal;animation-timing-function:linear}
.s-laptop .tap-r{animation-delay:-.09s}
.s-laptop .etuft{animation-name:flutter;animation-timing-function:linear}
.s-laptop .ear-r .etuft{animation-delay:-.04s}
.glow{animation-name:glow;animation-duration:1.5s}
.edge{animation-name:edge;animation-duration:1.5s}
.keys rect{opacity:0;animation-name:key;animation-duration:.75s;animation-timing-function:ease-out}.keys .k2{animation-delay:-.25s}.keys .k3{animation-delay:-.5s}
/* call: whole body rattles like an old phone, then happy talk */
.s-call .float{animation-name:rattle;animation-timing-function:linear}
.s-call .rlines{animation-name:ringLines}
.s-call .waves{animation-name:secondPart}
.s-call .e-open,.s-call .m-o{animation-name:firstPart}
.s-call .e-happy,.s-call .m-talk{animation-name:secondPart}
.s-call .brow-l,.s-call .brow-r{animation-name:browsUp}
.s-call .ear-l{animation-name:earsUpL}.s-call .ear-r{animation-name:earsUpR}
/* night: sleepy, then the coffee smell wakes him up */
.s-night .float{filter:brightness(.92) saturate(.92);animation-name:breatheSlow}
.s-night .k-sleepy{animation-name:sleepyPart}.s-night .k-normal{animation-name:sniffPart}
.s-night .k-sleepy .look{transform:translate(-3px,3px)}.s-night .k-normal .look{transform:translate(-4px,2px)}
.s-night .brow-l,.s-night .brow-r{animation-name:sniffBrow}
.s-night .ear-l{animation-name:sniffEarL}.s-night .ear-r{animation-name:sniffEarR}
.steam path{stroke-dasharray:34;animation-name:steam;animation-timing-function:linear}.steam .s2{animation-delay:-1.1s}
.ledglow{animation-name:led;animation-duration:1.5s}
.st1,.st2,.st3{animation-name:twinkle}.st2{animation-delay:-1s}.st3{animation-delay:-2s}
/* needs you: hops next to the ringing phone, tail points at it */
.s-needs .slump{transform:rotate(4deg)}
.s-needs .float{animation-name:hop2}
.s-needs .tail{animation-name:tailPoint}
.s-needs .ear-r{animation-name:earPoint}
.s-needs .brow-l,.s-needs .brow-r{transform:translateY(-5px)}
.mrings path{stroke-dasharray:40;animation-name:wave;animation-duration:.75s;animation-timing-function:ease-out}.mrings .w2{animation-delay:.2s}
.mscr{animation-name:flash;animation-duration:.75s}
.mphone{transform-origin:200px 186px;animation-name:buzzPhone;animation-duration:.75s}
.badge{transform-box:fill-box;transform-origin:center;animation-name:badge;animation-duration:.75s}
@keyframes breathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.025,.975)}}
@keyframes shadow{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes wag{0%,100%{transform:rotate(0)}50%{transform:rotate(8deg)}}
@keyframes blink{0%,60%,66%,100%{transform:scaleY(1)}63%{transform:scaleY(.08)}}
@keyframes dot{0%,100%{transform:translateY(0);opacity:.45}40%{transform:translateY(-3px);opacity:1}}
@keyframes wave{from{stroke-dashoffset:60;opacity:1}to{stroke-dashoffset:0;opacity:0}}
@keyframes talk{from{transform:scaleY(.3)}to{transform:scaleY(1)}}
@keyframes greet{0%,4%{transform:none}10%{transform:scale(1.07,.92)}18%{transform:translateY(-11px) scale(.95,1.06)}26%{transform:translateY(-12px)}33%{transform:scale(1.06,.93)}39%{transform:translateY(-5px)}44%,100%{transform:none}}
@keyframes greetShadow{0%,10%,33%,100%{transform:scale(1)}22%{transform:scale(.75)}39%{transform:scale(.92)}}
@keyframes wigL{0%,40%,76%,100%{transform:none}46%,58%,70%{transform:rotate(-12deg)}52%,64%{transform:rotate(6deg)}}
@keyframes wigR{0%,40%,76%,100%{transform:none}46%,58%,70%{transform:rotate(12deg)}52%,64%{transform:rotate(-6deg)}}
@keyframes sigh{0%,100%{transform:none}34%{transform:scale(.985,1.025)}52%{transform:scale(1.035,.955)}70%{transform:scale(1.01,.99)}}
@keyframes followFly{0%,34%,88%,100%{transform:translate(-4px,4px)}44%{transform:translate(-3px,-1px)}54%{transform:translate(0,-2px)}64%{transform:translate(3px,-2px)}74%{transform:translate(4px,0)}}
@keyframes lidsFly{0%,36%,86%,100%{transform:none}46%,74%{transform:scaleY(.55)}}
@keyframes lazyFlick{0%,72%,100%{transform:rotate(0)}79%{transform:rotate(15deg)}84%{transform:rotate(-3deg)}89%{transform:rotate(0)}}
@keyframes flyBy{0%,36%{transform:translate(4px,34px);opacity:0}40%{transform:translate(10px,30px);opacity:1}48%{transform:translate(52px,16px)}56%{transform:translate(90px,26px)}64%{transform:translate(130px,12px)}72%{transform:translate(170px,22px);opacity:1}78%,100%{transform:translate(204px,10px);opacity:0}}
@keyframes buzz{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.4)}}
@keyframes puff{0%,48%{transform:translate(86px,133px) scale(.3);opacity:0}54%{opacity:.9}72%{transform:translate(70px,128px) scale(1);opacity:0}100%{transform:translate(70px,128px);opacity:0}}
@keyframes ringBlink{0%,100%{opacity:1}50%{opacity:.2}}
@keyframes handRattle{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-2.5px) rotate(-4deg)}75%{transform:translateY(-2.5px) rotate(4deg)}}
@keyframes radar{0%,100%{transform:rotate(0)}20%{transform:rotate(-18deg)}45%{transform:rotate(10deg)}70%{transform:rotate(-12deg)}85%{transform:rotate(4deg)}}
@keyframes specSlide{0%,26%{transform:none}40%,56%{transform:translateY(6px)}62%{transform:translateY(3px) rotate(-5deg)}68%{transform:translateY(1px) rotate(5deg)}74%{transform:rotate(-2deg)}80%,100%{transform:none}}
@keyframes noseWiggle{0%,58%,82%,100%{transform:none}62%{transform:rotate(-2deg) scale(1.01,.99)}68%{transform:rotate(2deg)}74%{transform:rotate(-1.5deg)}}
@keyframes micBob{from{transform:rotate(0)}to{transform:rotate(-7deg) translateY(1px)}}
@keyframes browUp{from{transform:translateY(0)}to{transform:translateY(-4px)}}
@keyframes earFlickL{0%,70%,100%{transform:none}80%{transform:rotate(-9deg)}90%{transform:rotate(3deg)}}
@keyframes bounce{0%{transform:translateY(0) scale(1.08,.9)}14%{transform:translateY(-7px) scale(.94,1.07)}50%{transform:translateY(-17px) scale(1,1)}86%{transform:translateY(-7px) scale(.95,1.06)}100%{transform:translateY(0) scale(1.08,.9)}}
@keyframes bounceShadow{0%,100%{transform:scale(1.08);opacity:.15}50%{transform:scale(.68);opacity:.06}}
@keyframes spark{0%,100%{transform:scale(.2) rotate(0);opacity:0}30%{transform:scale(1.1) rotate(20deg);opacity:1}60%{transform:scale(.8) rotate(45deg);opacity:.8}80%{transform:scale(.2) rotate(60deg);opacity:0}}
@keyframes tap{from{transform:translateY(0)}to{transform:translateY(-3px)}}
@keyframes pop1{0%,8%{transform:scale(.3) translateY(8px);opacity:0}18%,45%{transform:none;opacity:1}55%,100%{transform:translateY(-6px);opacity:0}}
@keyframes pop2{0%,40%{transform:scale(.3) translateY(8px);opacity:0}52%,82%{transform:none;opacity:1}92%,100%{transform:translateY(-6px);opacity:0}}
@keyframes wagSend{0%,12%,38%,46%,72%,100%{transform:rotate(0)}18%,52%{transform:rotate(18deg)}24%,58%{transform:rotate(-4deg)}30%,64%{transform:rotate(12deg)}}
@keyframes scr{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes glow{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes edge{0%,100%{opacity:.6}50%{opacity:1}}
@keyframes key{0%{transform:translateY(0);opacity:0}25%{opacity:1}100%{transform:translateY(-7px);opacity:0}}
@keyframes ringLines{0%,15%,19%,33%{opacity:1}16%,18%,35%,100%{opacity:0}}
@keyframes firstPart{0%,36%{opacity:1}39%,100%{opacity:0}}
@keyframes secondPart{0%,36%{opacity:0}39%,96%{opacity:1}100%{opacity:0}}
@keyframes browsUp{0%,36%{transform:translateY(-5px)}42%,100%{transform:none}}
@keyframes earsUpL{0%,36%{transform:rotate(6deg)}42%,100%{transform:none}}
@keyframes earsUpR{0%,36%{transform:rotate(-6deg)}42%,100%{transform:none}}
@keyframes breatheSlow{0%,100%{transform:scale(1,1)}50%{transform:scale(1.015,.985)}}
@keyframes sleepyPart{0%,54%,82%,100%{opacity:1}57%,79%{opacity:0}}
@keyframes sniffPart{0%,54%,82%,100%{opacity:0}57%,79%{opacity:1}}
@keyframes sniffBrow{0%,54%,82%,100%{transform:translateY(2px)}58%,78%{transform:translateY(-5px)}}
@keyframes sniffEarL{0%,54%,82%,100%{transform:rotate(-10deg)}58%,78%{transform:none}}
@keyframes sniffEarR{0%,54%,82%,100%{transform:rotate(10deg)}58%,78%{transform:none}}
@keyframes steam{0%{stroke-dashoffset:34;opacity:0}20%{opacity:.9}100%{stroke-dashoffset:-34;opacity:0}}
@keyframes led{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes twinkle{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes hop2{0%,8%,26%,44%,100%{transform:none}4%,22%{transform:scale(1.05,.94)}15%{transform:translateY(-12px) scale(.96,1.05)}33%{transform:translateY(-9px)}}
@keyframes tailPoint{0%,100%{transform:rotate(22deg)}25%,75%{transform:rotate(30deg)}50%{transform:rotate(20deg)}}
@keyframes earPoint{0%,100%{transform:rotate(14deg)}50%{transform:rotate(22deg)}}
@keyframes flash{0%,100%{fill:#E9F7F1}50%{fill:#FFD9CC}}
@keyframes buzzPhone{0%,50%,100%{transform:none}10%,30%{transform:rotate(-5deg)}20%,40%{transform:rotate(5deg)}}
@keyframes badge{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
@keyframes rattle{0%{transform:none}1%{transform:translateY(-2px) rotate(3.2deg)}2%{transform:translateY(-2px) rotate(-3.2deg)}3%{transform:translateY(-2px) rotate(3.2deg)}4%{transform:translateY(-2px) rotate(-3.2deg)}5%{transform:translateY(-2px) rotate(3.2deg)}6%{transform:translateY(-2px) rotate(-3.2deg)}7%{transform:translateY(-2px) rotate(3.2deg)}8%{transform:translateY(-2px) rotate(-3.2deg)}9%{transform:translateY(-2px) rotate(3.2deg)}10%{transform:translateY(-2px) rotate(-3.2deg)}11%{transform:translateY(-2px) rotate(3.2deg)}12%{transform:translateY(-2px) rotate(-3.2deg)}13%{transform:translateY(-2px) rotate(3.2deg)}14%{transform:translateY(-2px) rotate(-3.2deg)}15%{transform:none}19%{transform:translateY(-2px) rotate(3.2deg)}20%{transform:translateY(-2px) rotate(-3.2deg)}21%{transform:translateY(-2px) rotate(3.2deg)}22%{transform:translateY(-2px) rotate(-3.2deg)}23%{transform:translateY(-2px) rotate(3.2deg)}24%{transform:translateY(-2px) rotate(-3.2deg)}25%{transform:translateY(-2px) rotate(3.2deg)}26%{transform:translateY(-2px) rotate(-3.2deg)}27%{transform:translateY(-2px) rotate(3.2deg)}28%{transform:translateY(-2px) rotate(-3.2deg)}29%{transform:translateY(-2px) rotate(3.2deg)}30%{transform:translateY(-2px) rotate(-3.2deg)}31%{transform:translateY(-2px) rotate(3.2deg)}32%{transform:translateY(-2px) rotate(-3.2deg)}33%{transform:none}36%{transform:translateY(0)}40%{transform:translateY(-4px) scale(.98,1.03)}44%{transform:none}100%{transform:none}}
@keyframes tapBurst{0%{transform:translateY(0)}3%{transform:translateY(-3.5px)}6%{transform:translateY(0)}9%{transform:translateY(-3.5px)}12%{transform:translateY(0)}15%{transform:translateY(-3.5px)}18%{transform:translateY(0)}21%{transform:translateY(-3.5px)}24%{transform:translateY(0)}27%{transform:translateY(-3.5px)}30%{transform:translateY(0)}33%{transform:translateY(-3.5px)}36%{transform:translateY(0)}39%{transform:translateY(-3.5px)}42%{transform:translateY(0)}45%{transform:translateY(-3.5px)}48%{transform:translateY(0)}50%{transform:translateY(-4px)}51.25%{transform:translateY(0)}52.5%{transform:translateY(-4px)}53.75%{transform:translateY(0)}55%{transform:translateY(-4px)}56.25%{transform:translateY(0)}57.5%{transform:translateY(-4px)}58.75%{transform:translateY(0)}60%{transform:translateY(-4px)}61.25%{transform:translateY(0)}62.5%{transform:translateY(-4px)}63.75%{transform:translateY(0)}65%{transform:translateY(-4px)}66.25%{transform:translateY(0)}67.5%{transform:translateY(-4px)}68.75%{transform:translateY(0)}70%{transform:translateY(-4px)}71.25%{transform:translateY(0)}72.5%{transform:translateY(-4px)}73.75%{transform:translateY(0)}75%{transform:translateY(-4px)}76.25%{transform:translateY(0)}77.5%{transform:translateY(-4px)}78.75%{transform:translateY(0)}80%{transform:translateY(-4px)}81.25%{transform:translateY(0)}82.5%{transform:translateY(-4px)}83.75%{transform:translateY(0)}85%{transform:translateY(-4px)}86.25%{transform:translateY(0)}87.5%{transform:translateY(-4px)}88.75%{transform:translateY(0)}90%{transform:translateY(0)}100%{transform:translateY(0)}}
@keyframes flutter{0%{transform:none}50%{transform:none}51.5%{transform:rotate(14deg)}53%{transform:rotate(-6deg)}54.5%{transform:rotate(14deg)}56%{transform:rotate(-6deg)}57.5%{transform:rotate(14deg)}59%{transform:rotate(-6deg)}60.5%{transform:rotate(14deg)}62%{transform:rotate(-6deg)}63.5%{transform:rotate(14deg)}65%{transform:rotate(-6deg)}66.5%{transform:rotate(14deg)}68%{transform:rotate(-6deg)}69.5%{transform:rotate(14deg)}71%{transform:rotate(-6deg)}72.5%{transform:rotate(14deg)}74%{transform:rotate(-6deg)}75.5%{transform:rotate(14deg)}77%{transform:rotate(-6deg)}78.5%{transform:rotate(14deg)}80%{transform:rotate(-6deg)}81.5%{transform:rotate(14deg)}83%{transform:rotate(-6deg)}84.5%{transform:rotate(14deg)}86%{transform:rotate(-6deg)}87.5%{transform:rotate(14deg)}89%{transform:rotate(-6deg)}91%{transform:none}100%{transform:none}}
@media (prefers-reduced-motion:reduce){.nico *{animation:none!important;transition:none!important}}

/* off screen or paused: everything holds still (public/js/nico.js sets .is-off) */
.nico.is-off, .nico.is-off *{animation-play-state:paused!important}
