/* Ticker, Stocgle's guide character (ticker.js): two pose images crossfade; the face is drawn on the screen; the bulb and
   thruster glow with the mood. Shared by the stock walkthrough and the research assistant. */
.tk-char{--tk-ease:cubic-bezier(.2,.8,.2,1);--tk-spring:cubic-bezier(.34,1.5,.64,1);--tk-display:'Bricolage Grotesque','Manrope',system-ui,sans-serif;position:fixed;left:0;top:0;width:var(--tk-size);aspect-ratio:326/264;pointer-events:auto;cursor:grab;touch-action:none;transform-origin:50% 100%;will-change:transform;-webkit-tap-highlight-color:transparent}
.tk-char:active{cursor:grabbing}
.tk-char:not(.is-ready),.tk-img:not([src]){visibility:hidden}
.tk-rig{position:absolute;inset:0;transform-origin:50% 78%;will-change:transform}
.tk-flip{position:absolute;inset:0;transform:scaleX(var(--tk-flip,1));transition:transform .14s var(--tk-ease)}
.tk-img{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .1s linear;user-select:none;-webkit-user-drag:none}
.tk-img.is-on{opacity:1}
.tk-face{position:absolute;left:29.437%;top:31.843%;width:39.316%;height:32.191%;overflow:visible;color:#74f5dd;transform:rotate(var(--tk-tilt,0deg));transition:transform .14s,color .45s;filter:drop-shadow(0 0 1.4px currentColor) drop-shadow(0 0 4px rgba(94,242,214,.3))}
.tk-face .tk-eye,.tk-face .tk-mouth{fill:currentColor;stroke:currentColor;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.tk-face .tk-mouth{fill-opacity:.3}
.tk-face .tk-glint{fill:#fff}
.tk-face .tk-hearts{transform-box:fill-box;transform-origin:center;animation:tk-beat .9s ease-in-out infinite}
.tk-face .tk-hearts path{fill:#ff6f91;stroke:#ffc2d1;stroke-width:1}
.tk-face .tk-stars path{fill:#fff6bf;transform-box:fill-box;transform-origin:center;animation:tk-spin 1.8s linear infinite}
.tk-face .tk-blush ellipse{fill:#ff8fab}
.tk-face .tk-tear{fill:#a9d2ff;animation:tk-tear 1.9s ease-in infinite}
.tk-bulb{position:absolute;width:calc(var(--r,3%) * 5.5);aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(255,242,160,.95) 0,rgba(255,214,10,.55) 30%,rgba(255,208,0,0) 68%);mix-blend-mode:screen;opacity:var(--glow,.55);pointer-events:none;transition:opacity .45s,left .12s,top .12s;animation:tk-pulse 2.2s ease-in-out infinite}
.tk-jet{position:absolute;left:50%;top:80%;width:30%;height:24%;border-radius:50%;background:radial-gradient(closest-side,rgba(186,255,240,.95),rgba(46,214,186,.5) 45%,rgba(46,214,186,0));filter:blur(2px);transform-origin:50% 0;opacity:.25;pointer-events:none;mix-blend-mode:screen}
.tk-shadow{position:absolute;left:50%;bottom:-5%;width:50%;height:8%;border-radius:50%;background:radial-gradient(closest-side,rgba(4,36,32,.38),rgba(4,36,32,0));transform:translateX(-50%)}

/* Effects around Ticker. */
.tk-fx{position:absolute;inset:0;pointer-events:none}
.tk-fx>i,.tk-fx>span{position:absolute;display:block;font-style:normal}
.tk-sparkle{left:var(--x);top:var(--y);width:14px;height:14px;background:#ffd84d;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 3px rgba(255,216,77,.9));animation:tk-twinkle 1.7s ease-in-out calc(var(--i) * .28s) infinite both}
.tk-heart{left:var(--x);top:22%;width:15px;height:14px;background:#ff6f91;clip-path:path('M7.5 14C2.2 9.6 0 6.6 0 4 0 1.7 1.7 0 3.9 0 5.4 0 6.8.9 7.5 2.1 8.2.9 9.6 0 11.1 0 13.3 0 15 1.7 15 4 15 6.6 12.8 9.6 7.5 14Z');animation:tk-float 2.4s ease-out calc(var(--i) * .42s) infinite both}
.tk-cloud{left:28%;top:-21%;width:46%;height:17%;border-radius:999px;background:linear-gradient(#b4c2cc,#8e9fac);box-shadow:inset 0 -4px 0 rgba(0,0,0,.08);animation:tk-drift 3s ease-in-out infinite}
.tk-cloud::before,.tk-cloud::after{content:"";position:absolute;border-radius:50%;background:#b4c2cc}
.tk-cloud::before{left:14%;top:-48%;width:42%;aspect-ratio:1}
.tk-cloud::after{left:40%;top:-70%;width:52%;aspect-ratio:1}
.tk-drop{left:var(--x);top:-5%;width:3px;height:10px;border-radius:2px;background:#8fb8e0;animation:tk-rain .95s linear calc(var(--i) * .14s) infinite}
.tk-sweat{left:73%;top:24%;width:10px;height:10px;border-radius:0 50% 50% 50%;background:linear-gradient(135deg,#e8f8ff,#7cc4f0);transform:rotate(45deg);animation:tk-sweat 1.6s ease-in infinite}
.tk-q{left:calc(74% + var(--i) * 12%);top:2%;font:800 22px/1 var(--tk-display);color:#5a46c8;text-shadow:0 2px 0 #fff;animation:tk-q 1.9s ease-in-out calc(var(--i) * .55s) infinite both}
.tk-dots{left:70%;top:-4%;display:flex!important;gap:4px;padding:7px 9px;border-radius:999px;background:#fff;box-shadow:0 6px 16px rgba(4,36,32,.22)}
.tk-dots i{display:block;width:6px;height:6px;border-radius:50%;background:#20b9a5;animation:tk-dot 1.2s ease-in-out infinite}
.tk-dots i:nth-child(2){animation-delay:.15s}.tk-dots i:nth-child(3){animation-delay:.3s}
.tk-bang{left:79%;top:-6%;font:900 30px/1 var(--tk-display);color:#ff7a59;text-shadow:0 2px 0 #fff;animation:tk-bang .55s var(--tk-spring) both,tk-bob 1.6s ease-in-out .55s infinite}
.tk-z{left:calc(68% + var(--i) * 8%);top:calc(10% - var(--i) * 7%);font:800 calc(13px + var(--i) * 4px)/1 var(--tk-display);color:#7aa8ff;animation:tk-z 2.6s ease-in-out calc(var(--i) * .6s) infinite both}
.tk-coin{left:44%;top:-8%;width:19px;height:19px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b0,#ffcf3a 45%,#e0a800);color:#8a5a00;font:800 10px/19px var(--tk-display);text-align:center;animation:tk-juggle 1.15s ease-in-out calc(var(--i) * -.38s) infinite}

@keyframes tk-pulse{50%{filter:brightness(1.25);transform:translate(-50%,-50%) scale(1.15)}}
@keyframes tk-beat{50%{transform:scale(1.12)}}
@keyframes tk-spin{to{transform:rotate(360deg)}}
@keyframes tk-tear{0%{transform:translateY(-3px);opacity:0}25%{opacity:1}100%{transform:translateY(14px);opacity:0}}
@keyframes tk-twinkle{0%,100%{transform:scale(0) rotate(0)}45%{transform:scale(1) rotate(45deg)}70%{transform:scale(.55) rotate(70deg);opacity:.7}}
@keyframes tk-float{0%{transform:translate(0,0) scale(.4);opacity:0}15%{opacity:1}100%{transform:translate(var(--dx),-72px) scale(1.05);opacity:0}}
@keyframes tk-drift{50%{transform:translateX(6px)}}
@keyframes tk-rain{0%{transform:translateY(0);opacity:0}15%{opacity:1}100%{transform:translateY(48px);opacity:0}}
@keyframes tk-sweat{0%{transform:translateY(-4px) rotate(45deg);opacity:0}20%{opacity:1}100%{transform:translateY(22px) rotate(45deg);opacity:0}}
@keyframes tk-q{0%{transform:translateY(8px) scale(.4) rotate(-10deg);opacity:0}30%{transform:translateY(-4px) scale(1) rotate(8deg);opacity:1}100%{transform:translateY(-28px) scale(.9) rotate(-6deg);opacity:0}}
@keyframes tk-dot{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}
@keyframes tk-bang{from{transform:scale(0) rotate(-20deg)}}
@keyframes tk-bob{50%{transform:translateY(-4px) rotate(6deg)}}
@keyframes tk-z{0%{transform:translate(0,6px);opacity:0}30%{opacity:1}100%{transform:translate(16px,-24px);opacity:0}}
@keyframes tk-juggle{0%,100%{transform:translate(-28px,44px)}25%{transform:translate(-12px,-30px) rotate(180deg)}50%{transform:translate(28px,44px) rotate(360deg)}75%{transform:translate(12px,-30px) rotate(540deg)}}

@media (prefers-reduced-motion:reduce){.tk-char *,.tk-char *::before,.tk-char *::after{animation:none!important;transition:none!important}}
