.gr-host{position:relative;display:inline-block;width:96px;aspect-ratio:120 / 130;line-height:0;-webkit-tap-highlight-color:transparent;user-select:none;touch-action:manipulation}.gr-host svg{width:100%;height:100%;overflow:visible;cursor:pointer}.gr *{transform-box:view-box}.gr .ink{fill:#20301f}.gr .stroke{fill:none;stroke:#20301f;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.gr-tilt{transform-origin:60px 120px;transform:rotate(var(--tilt, 0deg));transition:transform .5s cubic-bezier(.3,1.4,.5,1)}.gr-bob{transform-origin:60px 120px;animation:gr-breathe 3.4s ease-in-out infinite}.gr-brow{transform-box:fill-box;transform-origin:center;transition:transform .3s}.gr-look{transform:translate(var(--lx, 0px),var(--ly, 0px));transition:transform .18s ease-out}.gr-blink{transform-box:fill-box;transform-origin:center;animation:gr-blink 5.2s infinite}.gr-eye.r .gr-blink{animation-delay:.03s}.gr-face .arc,.gr-face .shut,.gr-mouth>*,.gr-brows,.gr-bloom,.gr-tear{opacity:0;transition:opacity .15s}.gr-mouth .smile{opacity:1}.gr-cheek{fill:#ff8fa3;opacity:.5;transition:opacity .3s,transform .3s;transform-box:fill-box;transform-origin:center}.gr-leaf,.gr-arm{transition:transform .45s cubic-bezier(.3,1.5,.5,1)}.gr-shadow{fill:#1e281e24;transform-box:fill-box;transform-origin:center;animation:gr-shadow 3.4s ease-in-out infinite}@keyframes gr-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.015,1.03)}}@keyframes gr-shadow{0%,to{transform:scale(1)}50%{transform:scale(.96)}}@keyframes gr-blink{0%,93%,to{transform:scaleY(1)}95%{transform:scaleY(.08)}}@keyframes gr-sway-l{0%,to{transform:rotate(0)}50%{transform:rotate(-7deg)}}@keyframes gr-sway-r{0%,to{transform:rotate(0)}50%{transform:rotate(6deg)}}.gr .gr-leaf.l{animation:gr-sway-l 4.2s ease-in-out infinite}.gr .gr-leaf.r{animation:gr-sway-r 3.8s ease-in-out infinite}.gr-extra{opacity:0;transform:scale(.2);transition:opacity .4s,transform .6s cubic-bezier(.3,1.6,.5,1)}.gr[data-grow="1"] .gr-extra.g1,.gr[data-grow="2"] .gr-extra.g1,.gr[data-grow="3"] .gr-extra.g1,.gr[data-grow="2"] .gr-extra.g2,.gr[data-grow="3"] .gr-extra.g2,.gr[data-grow="3"] .gr-extra.g3{opacity:1;transform:scale(1)}.gr[data-mood=happy] .gr-mouth .smile{opacity:0}.gr[data-mood=happy] .gr-mouth .grin{opacity:1}.gr[data-mood=happy] .gr-cheek{opacity:.75;transform:scale(1.15)}.gr[data-mood=happy] .gr-bob{animation:gr-hop 1.1s ease-in-out infinite}@keyframes gr-hop{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-3px) scale(.99,1.02)}55%{transform:translateY(0) scale(1.03,.97)}}.gr[data-mood=cheer] .gr-eye .open,.gr[data-mood=love] .gr-eye .open{opacity:0}.gr[data-mood=cheer] .gr-eye .arc,.gr[data-mood=love] .gr-eye .arc{opacity:1}.gr[data-mood=cheer] .gr-mouth .smile,.gr[data-mood=love] .gr-mouth .smile{opacity:0}.gr[data-mood=cheer] .gr-mouth .grin,.gr[data-mood=love] .gr-mouth .grin{opacity:1}.gr[data-mood=cheer] .gr-cheek,.gr[data-mood=love] .gr-cheek{opacity:.85;transform:scale(1.25)}.gr[data-mood=cheer] .gr-bob{animation:gr-jump .7s cubic-bezier(.3,.7,.4,1) 3}.gr[data-mood=cheer] .gr-arm.l{transform:rotate(-120deg)}.gr[data-mood=cheer] .gr-arm.r{transform:rotate(120deg)}.gr[data-mood=cheer] .gr-bloom,.gr[data-mood=love] .gr-bloom{opacity:1}.gr[data-mood=cheer] .gr-leaf.l{transform:rotate(-16deg);animation:none}.gr[data-mood=cheer] .gr-leaf.r{transform:rotate(16deg);animation:none}@keyframes gr-jump{0%{transform:translateY(0) scale(1)}18%{transform:translateY(0) scale(1.12,.86)}45%{transform:translateY(-16px) scale(.94,1.08)}72%{transform:translateY(0) scale(1.08,.92)}to{transform:translateY(0) scale(1)}}.gr[data-mood=love] .gr-bob{animation:gr-sway 1.6s ease-in-out infinite}@keyframes gr-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.gr[data-mood=sad] .gr-mouth .smile{opacity:0}.gr[data-mood=sad] .gr-mouth .sad,.gr[data-mood=sad] .gr-brows{opacity:1}.gr[data-mood=sad] .gr-brow.l{transform:rotate(-16deg)}.gr[data-mood=sad] .gr-brow.r{transform:rotate(16deg)}.gr[data-mood=sad] .gr-tear{opacity:.9;animation:gr-tear 1.6s ease-in infinite}.gr[data-mood=sad] .gr-bob{animation:none;transform:translateY(2px) scale(1.02,.97);transition:transform .5s}.gr[data-mood=sad] .gr-leaf.l{transform:rotate(-38deg);animation:none}.gr[data-mood=sad] .gr-leaf.r{transform:rotate(40deg);animation:none}.gr[data-mood=sad] .gr-arm.l{transform:rotate(18deg)}.gr[data-mood=sad] .gr-arm.r{transform:rotate(-18deg)}.gr[data-mood=sad] .gr-cheek{opacity:.2}@keyframes gr-tear{0%{transform:translateY(0);opacity:.9}to{transform:translateY(9px);opacity:0}}.gr[data-mood=encourage] .gr-mouth .smile{opacity:1}.gr[data-mood=encourage] .gr-arm.r{transform:rotate(80deg)}.gr[data-mood=encourage] .gr-bob{animation:gr-nod .9s ease-in-out 2}@keyframes gr-nod{0%,to{transform:translateY(0)}50%{transform:translateY(2px) rotate(2deg)}}.gr[data-mood=thinking] .gr-mouth .smile{opacity:0}.gr[data-mood=thinking] .gr-mouth .flat,.gr[data-mood=thinking] .gr-brows{opacity:1}.gr[data-mood=thinking] .gr-brow.r{transform:translateY(-2px) rotate(-10deg)}.gr[data-mood=thinking] .gr-look{transform:translate(2.5px,-3px)}.gr[data-mood=thinking] .gr-arm.r{transform:rotate(95deg)}.gr[data-mood=thinking] .gr-bob{animation:gr-ponder 2.4s ease-in-out infinite}@keyframes gr-ponder{0%,to{transform:rotate(0)}50%{transform:rotate(-3deg)}}.gr[data-mood=talking] .gr-mouth .smile{opacity:0}.gr[data-mood=talking] .gr-mouth .talk{opacity:1;animation:gr-talk .26s ease-in-out infinite alternate}.gr[data-mood=talking] .gr-bob{animation:gr-chatter .52s ease-in-out infinite alternate}.gr .gr-mouth .talk{transform-box:fill-box;transform-origin:center}@keyframes gr-talk{0%{transform:scaleY(.35)}to{transform:scaleY(1.1)}}@keyframes gr-chatter{0%{transform:translateY(0)}to{transform:translateY(-1.2px) rotate(.8deg)}}.gr[data-mood=surprised] .gr-mouth .smile{opacity:0}.gr[data-mood=surprised] .gr-mouth .o,.gr[data-mood=surprised] .gr-brows{opacity:1}.gr[data-mood=surprised] .gr-brow{transform:translateY(-3px)}.gr[data-mood=surprised] .gr-blink{animation:none;transform:scale(1.12)}.gr[data-mood=surprised] .gr-bob{animation:gr-pop .4s cubic-bezier(.3,1.8,.5,1)}.gr[data-mood=surprised] .gr-leaf.l{transform:rotate(14deg);animation:none}.gr[data-mood=surprised] .gr-leaf.r{transform:rotate(-14deg);animation:none}@keyframes gr-pop{0%{transform:scale(.92,1.06)}60%{transform:scale(1.06,.95)}to{transform:scale(1)}}.gr[data-mood=curious] .gr-blink{transform:scale(1.1)}.gr[data-mood=curious] .gr-leaf.l{transform:rotate(8deg);animation:none}.gr[data-mood=curious] .gr-leaf.r{transform:rotate(-8deg);animation:none}.gr[data-mood=wave] .gr-mouth .smile{opacity:0}.gr[data-mood=wave] .gr-mouth .grin{opacity:1}.gr[data-mood=wave] .gr-arm.r{animation:gr-wave .42s ease-in-out 5 alternate;transform:rotate(110deg)}@keyframes gr-wave{0%{transform:rotate(85deg)}to{transform:rotate(135deg)}}.gr[data-mood=sleepy] .gr-blink{animation:none;transform:scaleY(.4) translateY(3px)}.gr[data-mood=sleepy] .gr-bob{animation:gr-breathe 5s ease-in-out infinite}.gr[data-mood=sleepy] .gr-leaf.l{transform:rotate(-22deg);animation:none}.gr[data-mood=sleepy] .gr-leaf.r{transform:rotate(24deg);animation:none}.gr[data-mood=sleep] .gr-eye .open{opacity:0}.gr[data-mood=sleep] .gr-eye .shut{opacity:1}.gr[data-mood=sleep] .gr-mouth .smile{opacity:0}.gr[data-mood=sleep] .gr-mouth .snore{opacity:1;animation:gr-talk 2.2s ease-in-out infinite alternate}.gr[data-mood=sleep] .gr-bob{animation:gr-sleep 4.4s ease-in-out infinite}.gr[data-mood=sleep] .gr-leaf.l{transform:rotate(-44deg);animation:none}.gr[data-mood=sleep] .gr-leaf.r{transform:rotate(46deg);animation:none}.gr[data-mood=sleep] .gr-look{transform:translateY(2px)}@keyframes gr-sleep{0%,to{transform:scale(1) translateY(1px)}50%{transform:scale(1.03,1.05) translateY(1px)}}.gr[data-mood=giggle] .gr-eye .open{opacity:0}.gr[data-mood=giggle] .gr-eye .arc{opacity:1}.gr[data-mood=giggle] .gr-mouth .smile{opacity:0}.gr[data-mood=giggle] .gr-mouth .grin{opacity:1}.gr[data-mood=giggle] .gr-bob{animation:gr-wiggle .12s linear 6 alternate}.gr[data-mood=giggle] .gr-cheek{opacity:.9}@keyframes gr-wiggle{0%{transform:rotate(-4deg) scale(1.02,.98)}to{transform:rotate(4deg) scale(.98,1.02)}}.gr[data-mood=spin] .gr-bob{animation:gr-spin .8s cubic-bezier(.4,0,.2,1)}@keyframes gr-spin{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}.gr[data-mood=spin] .gr-bob{transform-box:fill-box;transform-origin:center}.gr-fx{position:absolute;inset:0;pointer-events:none;overflow:visible}.gr-p{position:absolute;left:50%;top:35%;width:18%;aspect-ratio:1;line-height:0;animation:gr-float var(--d, 1.4s) cubic-bezier(.2,.7,.3,1) forwards}.gr-p svg{width:100%;height:100%}@keyframes gr-float{0%{transform:translate(-50%) scale(.3) rotate(0);opacity:0}15%{opacity:1}to{transform:translate(calc(-50% + var(--x, 0px)),var(--y, -90px)) scale(var(--s, 1)) rotate(var(--r, 40deg));opacity:0}}.gr-say{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%,6px) scale(.9);transform-origin:bottom center;width:max-content;max-width:min(240px,70vw);padding:7px 11px;border-radius:12px;background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:0 6px 20px #1a1d211f;font:500 13px/1.4 ui-sans-serif,system-ui,sans-serif;opacity:0;transition:opacity .2s,transform .25s cubic-bezier(.3,1.5,.5,1);pointer-events:none;z-index:5;white-space:normal}.gr-say:after{content:"";position:absolute;left:50%;top:100%;width:10px;height:10px;background:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transform:translate(-50%,-5px) rotate(45deg)}.gr-say.on{opacity:1;transform:translate(-50%) scale(1)}.gr-host[data-say=side] .gr-say{bottom:auto;top:50%;left:calc(100% + 8px);transform:translate(6px,-50%) scale(.9);transform-origin:left center}.gr-host[data-say=side] .gr-say.on{transform:translateY(-50%) scale(1)}.gr-host[data-say=side] .gr-say:after{left:0;top:50%;transform:translate(-5px,-50%) rotate(135deg)}@media (prefers-reduced-motion: reduce){.gr *,.gr-p,.gr-say{animation:none!important;transition:none!important}}.gr[data-mood=shy] .gr-eye .open{opacity:0}.gr[data-mood=shy] .gr-eye .shut{opacity:1}.gr[data-mood=shy] .gr-arm.l{transform:rotate(-166deg)}.gr[data-mood=shy] .gr-arm.r{transform:rotate(166deg)}.gr[data-mood=shy] .gr-cheek{opacity:.95;transform:scale(1.3)}.gr[data-mood=shy] .gr-mouth .smile{opacity:1}.gr[data-mood=shy] .gr-bob{animation:gr-nod 1.6s ease-in-out infinite}.gr[data-mood=proud] .gr-mouth .smile{opacity:0}.gr[data-mood=proud] .gr-mouth .grin{opacity:1}.gr[data-mood=proud] .gr-arm.l{transform:rotate(40deg)}.gr[data-mood=proud] .gr-arm.r{transform:rotate(-40deg)}.gr[data-mood=proud] .gr-bob{animation:gr-pop .5s cubic-bezier(.3,1.8,.5,1);transform:scale(1.03)}.gr-hide{position:absolute;top:-4px;right:-6px;z-index:6;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid var(--line, #e5e2dc);background:var(--surface, #fff);color:var(--ink-soft, #5b6670);font:600 12px/1 system-ui,sans-serif;cursor:pointer;opacity:0;transition:opacity .2s;line-height:0}.gr-dock:hover .gr-hide,.gr-dock:focus-within .gr-hide{opacity:1}@media (hover: none){.gr-hide{opacity:.75}}.gr-show{display:none;align-items:center;gap:4px;padding:5px 9px;border-radius:999px;cursor:pointer;border:1px solid #cfe4c3;background:#f3fbee;color:#3f7a2b;font:600 12px/1 system-ui,sans-serif}.gr-dock.is-hidden .gr-host,.gr-dock.is-hidden .gr-hide{display:none}.gr-dock.is-hidden .gr-show{display:inline-flex}.gr-dock.corner{position:fixed;right:18px;bottom:16px;z-index:40;transition:transform .45s cubic-bezier(.3,1.3,.5,1),opacity .3s}.gr-dock.corner .gr-host{width:66px}.gr-dock.corner.is-tucked{transform:translate(62%) rotate(-8deg)}.gr-dock.corner .gr-say{left:auto;right:0;transform:translateY(6px) scale(.9);transform-origin:bottom right}.gr-dock.corner .gr-say.on{transform:translate(0) scale(1)}.gr-dock.corner .gr-say:after{left:auto;right:22px;transform:translateY(-5px) rotate(45deg)}body.tutor-on .gr-dock.corner{display:none}@media (max-width: 620px){.gr-dock.corner{right:10px;bottom:10px}.gr-dock.corner .gr-host{width:54px}}.gr-dock.marrow{position:relative;align-self:flex-end;margin:-30px 4px -6px 10px}.gr-dock.marrow .gr-host{width:50px}.gr-dock.marrow .gr-say{bottom:calc(100% + 2px)}.gr-dock.marrow .gr-show{margin-bottom:6px}@media (max-width: 620px){.gr-dock.marrow .gr-host{width:42px}.gr-dock.marrow{margin-left:4px}}.gr-host.login{display:block;width:84px;margin:0 auto 2px}@media (max-width: 620px){.gr-host.login{width:70px}}.gr-host.home{width:84px;margin:0 0 8px}.gr-host.home .gr-say{color:#1a1d21}@media (max-width: 620px){.gr-host.home{width:70px}}.headline-score .gr-host.score{width:88px;margin-left:auto;align-self:flex-end}@media (max-width: 620px){.headline-score .gr-host.score{width:64px}}.gr-host.tutor{width:46px;flex:0 0 46px;margin:-4px 10px -6px -4px}.gr-host.empty{display:block;width:64px;margin:0 0 6px}.gr-dock.marrow .gr-say{left:0;transform:translateY(6px) scale(.9);transform-origin:bottom left}.gr-dock.marrow .gr-say.on{transform:translate(0) scale(1)}.gr-dock.marrow .gr-say:after{left:20px}.gr-host[data-say=left] .gr-say{bottom:auto;top:28%;left:auto;right:calc(100% + 8px);transform:translate(-6px,-50%) scale(.9);transform-origin:right center}.gr-host[data-say=left] .gr-say.on{transform:translateY(-50%) scale(1)}.gr-host[data-say=left] .gr-say:after{left:auto;right:-10px;top:50%;transform:translate(-5px,-50%) rotate(-45deg)}
