@property --amb-spin{syntax:"<angle>";inherits:false;initial-value:0deg}.amb{--amb-level:0;--amb-white:oklch(98% .012 90);--amb-tip:oklch(86% .08 215);aspect-ratio:1}:where(.dark) .amb{--amb-tip:var(--amb-white)}.amb-svg{transition:opacity .4s ease-out}.amb-glow{opacity:.55;transition:opacity .5s ease-out}:where(.dark) .amb-glow{opacity:.9}.amb-wing,.amb-feather,.amb-tail{transform-box:view-box}.amb-wing-l{transform-origin:60px 0;transform:scaleX(-1)}.amb-feather{--a:0deg;--f:0;--spread:calc((var(--f) - 2) * 9deg);transform-origin:0 0;transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a));transition:transform .11s ease-out}.amb-heart,.amb-core,.amb-burst{transform-box:fill-box;transform-origin:50%}.amb-heart,.amb-core{transition:transform .11s ease-out,opacity .3s ease-out}.amb-heart{opacity:.8}.amb-tail{opacity:.85}.amb-burst{opacity:0}.amb-spark{--r:40px;--o:0deg;--d:12s;transform-box:view-box;transform-origin:60px 62px;transform:rotate(var(--o)) translateX(var(--r));opacity:.6;animation:amb-orbit var(--d) linear infinite, amb-twinkle 3.1s ease-in-out infinite}.amb[data-state=thinking] .amb-spark{animation-duration:calc(var(--d) / 5), .9s;opacity:1}.amb[data-state=done] .amb-spark{animation:amb-orbit var(--d) linear infinite, amb-scatter .8s ease-out 1}.amb[data-state=idle] .amb-feather{animation:5.5s ease-in-out infinite amb-breathe;animation-delay:calc(var(--f) * .22s)}.amb[data-state=idle] .amb-heart{animation:4s ease-in-out infinite amb-glow}.amb[data-state=connecting] .amb-svg{animation:2.2s ease-in-out infinite amb-fade}.amb[data-state=listening] .amb-feather{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(calc(var(--a) + (var(--f) - 2) * var(--amb-level) * 14deg))}.amb[data-state=listening] .amb-heart{opacity:calc(.6 + var(--amb-level) * .4);transform:scale(calc(1 + var(--amb-level) * .6))}.amb[data-state=thinking] .amb-feather{animation:2.4s linear infinite amb-spin;animation-delay:calc(var(--f) * -.16s)}.amb[data-state=thinking] .amb-heart{animation:1.2s ease-in-out infinite amb-glow}.amb[data-state=thinking] .amb-glow{opacity:1}.amb[data-state=writing] .amb-feather{animation:1.25s ease-in-out infinite amb-flap;animation-delay:calc(var(--f) * 50ms)}.amb[data-state=writing] .amb-heart{opacity:1}.amb[data-state=done] .amb-feather{animation:.9s cubic-bezier(.2,.9,.3,1.1) amb-fan,5.5s ease-in-out .9s infinite amb-breathe;animation-delay:calc(var(--f) * 30ms), calc(.9s + var(--f) * .22s)}.amb[data-state=done] .amb-burst{animation:.9s ease-out forwards amb-burst}.amb[data-state=done] .amb-heart{animation:.9s ease-out amb-glow}.amb[data-state=speaking] .amb-feather{animation:1.15s ease-in-out infinite amb-beat;animation-delay:calc(var(--f) * 40ms)}.amb[data-state=speaking] .amb-heart{animation:1.15s ease-in-out infinite amb-glow}@keyframes amb-breathe{0%,to{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a))}50%{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(calc(var(--a) - 4deg))}}@keyframes amb-spin{0%{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a))}to{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(calc(var(--a) + 360deg))}}@keyframes amb-flap{0%,to{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a))}45%{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(calc(var(--a) - 22deg))}}@keyframes amb-beat{0%,to{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a))}45%{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(calc(var(--a) - 9deg))}}@keyframes amb-fan{0%{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a)) scale(1)}35%{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(calc(var(--a) + var(--spread))) scale(1.12)}to{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a)) scale(1)}}@keyframes amb-glow{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}@keyframes amb-burst{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(1.6)}}@keyframes amb-orbit{0%{transform:rotate(var(--o)) translateX(var(--r))}to{transform:rotate(calc(var(--o) + 360deg)) translateX(var(--r))}}@keyframes amb-twinkle{0%,to{opacity:.25}50%{opacity:.9}}@keyframes amb-scatter{0%{opacity:1}to{opacity:0}}@keyframes amb-fade{0%,to{opacity:.45}50%{opacity:1}}.tutor-card{position:relative}.tutor-card[data-writing=true]:before{content:"";border-radius:inherit;background:conic-gradient(from var(--amb-spin), transparent 0% 52%, var(--brand-sky) 74%, var(--brand-gold) 86%, transparent 100%);pointer-events:none;padding:1px;animation:2.6s linear infinite amb-turn;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.tutor-card[data-writing=true]{animation:.36s ease-out both amb-arrive}.tutor-prose[data-writing=true]>*{animation:.48s ease-out both amb-rise}.tutor-prose[data-writing=true]>:last-child:not(.katex-display):after{content:"";vertical-align:-.15em;background:linear-gradient(180deg, var(--brand-sky), var(--brand-gold));border-radius:2px;width:.45em;height:1em;margin-inline-start:.15em;animation:1s steps(2,jump-none) infinite amb-caret;display:inline-block}.amb-shimmer-text{background:linear-gradient(90deg, var(--muted-foreground) 0%, var(--muted-foreground) 35%, var(--foreground) 47%, var(--brand-gold) 52%, var(--foreground) 57%, var(--muted-foreground) 70%, var(--muted-foreground) 100%);color:#0000;background-size:260% 100%;-webkit-background-clip:text;background-clip:text;animation:2.4s linear infinite amb-shimmer}@keyframes amb-turn{to{--amb-spin:360deg}}@keyframes amb-arrive{0%{opacity:0;transform:translateY(4px)scale(.985)}to{opacity:1;transform:none}}@keyframes amb-rise{0%{opacity:0;filter:blur(3px);transform:translateY(6px)}to{opacity:1;filter:none;transform:none}}@keyframes amb-caret{50%{opacity:0}}@keyframes amb-shimmer{0%{background-position:130% 0}to{background-position:-30% 0}}@media (prefers-reduced-motion:reduce){.amb-svg,.amb-feather,.amb-heart,.amb-core,.amb-spark,.amb-burst,.tutor-card[data-writing=true],.tutor-card[data-writing=true]:before,.tutor-prose[data-writing=true]>*,.tutor-prose[data-writing=true]>:last-child:after,.amb-shimmer-text{transition:none;animation:none}.amb-shimmer-text{color:var(--foreground);background:0 0}.amb[data-state] .amb-feather{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(var(--a))}.amb[data-state=thinking] .amb-feather{transform:translate(var(--amb-sx), var(--amb-sy)) rotate(calc(var(--a) + var(--spread)))}.amb[data-state=writing] .amb-heart,.amb[data-state=speaking] .amb-heart,.amb[data-state=listening] .amb-heart{opacity:1;transform:scale(1.3)}.amb[data-state=done] .amb-burst{opacity:.8;transform:scale(1.1)}}
