:root{--ease-out:cubic-bezier(.2,.7,.2,1);--ease-in:cubic-bezier(.55,0,.75,.2);--ease-io:cubic-bezier(.65,0,.35,1);--spring:cubic-bezier(.34,1.56,.64,1);--ok:152 69% 40%;--bad:0 78% 58%}@supports (animation-timing-function:linear(0, 1)){:root{--spring:linear(0,.013 0.6%,.05 1.2%,.2 2.5%,.442 4%,.682 5.6%,.896 7.3%,1.035 9%,1.105 10.7%,1.122 12.4%,1.101 14.3%,1.052 16.6%,1.011 19%,.99 21.5%,.987 24.6%,.997 30.5%,1.002 37.9%,1)}}.dark{--ok:152 62% 52%}.skel{z-index:0;pointer-events:none;background:hsl(var(--muted));opacity:0;transition:opacity .35s;position:absolute;inset:0;overflow:hidden}.skel:after{content:"";background:linear-gradient(100deg,transparent 25%,hsl(var(--foreground)/.07)50%,transparent 75%);position:absolute;inset:0;transform:translate(-100%)}.skel[data-state=loading]{opacity:1;transition:none}.skel[data-state=loading]:after{animation:1.25s cubic-bezier(.4,0,.2,1) infinite skel-sweep}.skel-dark{background:#ffffff0a}.skel-dark:after{background:linear-gradient(100deg,#0000 25%,#ffffff17 50%,#0000 75%)}@keyframes skel-sweep{to{transform:translate(100%)}}img[data-develop]{animation:img-develop .55s var(--ease-out)both}@keyframes img-develop{0%{opacity:.2;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}.section-skel{min-height:70vh;animation:.3s .15s both section-skel-in}.section-skel .bar,.section-skel .block{background:hsl(var(--muted)/.7);border-radius:.75rem;position:relative;overflow:hidden}.section-skel .bar:after,.section-skel .block:after{content:"";background:linear-gradient(100deg,transparent 25%,hsl(var(--foreground)/.06)50%,transparent 75%);animation:1.25s cubic-bezier(.4,0,.2,1) infinite skel-sweep;animation-delay:calc(var(--i,0)*90ms);position:absolute;inset:0;transform:translate(-100%)}@keyframes section-skel-in{0%{opacity:0}}.g-tray,.g-arrow,.g-person,.g-plus,.g-tick,.g-nodes,.g-link,.g-node,.g-plane,.g-back,.g-front{transform-box:fill-box;transform-origin:50%}.glyph .g-tick{stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .3s var(--ease-io)}.mo-drop .g-arrow{animation:.64s both g-drop}@keyframes g-drop{0%{opacity:1;animation-timing-function:cubic-bezier(.55,0,1,.45);transform:none}30%{opacity:0;transform:translateY(8px)}31%{opacity:0;animation-timing-function:cubic-bezier(.34,1.56,.64,1);transform:translateY(-11px)}to{opacity:1;transform:none}}.mo-drop .g-tray{transform-origin:bottom;animation:.64s both g-tray}@keyframes g-tray{0%,27%{transform:none}40%{animation-timing-function:cubic-bezier(.34,1.56,.64,1);transform:scale(1.08,.72)}to{transform:none}}.mo-launch .g-arrow{animation:.6s both g-launch}@keyframes g-launch{0%{opacity:1;animation-timing-function:cubic-bezier(.55,0,1,.45);transform:none}34%{opacity:0;transform:translateY(-10px)}35%{opacity:0;animation-timing-function:cubic-bezier(.34,1.56,.64,1);transform:translateY(10px)}to{opacity:1;transform:none}}[data-phase=done] .glyph,[data-phase=done] .phase-label{color:hsl(var(--ok))}[data-phase=fail] .glyph,[data-phase=fail] .phase-label{color:hsl(var(--bad))}[data-phase=fail] .glyph{animation:.38s cubic-bezier(.36,.07,.19,.97) both g-shake}@keyframes g-shake{20%,60%{transform:translate(-2.5px)}40%,80%{transform:translate(2.5px)}}.phase-label{display:inline-block}[data-phase=done] .phase-label,[data-phase=fail] .phase-label{animation:label-in .32s var(--ease-out)both}@keyframes label-in{0%{opacity:0;transform:translateY(5px)}}.g-plus{transition:transform .24s var(--ease-out),opacity .2s ease}[data-phase=done] .g-plus{opacity:0;transform:rotate(90deg)scale(0)}[data-phase=done] .g-tick{stroke-dashoffset:0;transition-delay:.16s}[data-phase=done] .g-person{animation:g-nod .42s var(--ease-out).12s}@keyframes g-nod{40%{transform:translateY(1.5px)}}[data-phase=wait] .glyph{opacity:.5;transition:opacity .2s}.g-front,.g-back{transition:transform .26s var(--ease-out),opacity .22s ease}[data-phase=done] .g-front{opacity:0;transition-timing-function:var(--ease-in);transform:translate(3px,-6px)rotate(10deg)}[data-phase=done] .g-back{opacity:0;transition-delay:80ms}[data-phase=done] .glyph .g-tick{stroke-dashoffset:0;transition-delay:.18s}.g-node,.g-link{transition:transform .3s var(--spring),opacity .2s ease}:is([data-phase=fold],[data-phase=wait],[data-phase=fly],[data-phase=done]) .g-node-a{transform:translate(-12px,7px)scale(.3)}:is([data-phase=fold],[data-phase=wait],[data-phase=fly],[data-phase=done]) .g-node-c{transform:translate(-12px,-7px)scale(.3)}:is([data-phase=fold],[data-phase=wait],[data-phase=fly],[data-phase=done]) .g-node{opacity:0;transition:transform .18s var(--ease-in),opacity .14s ease 60ms}:is([data-phase=fold],[data-phase=wait],[data-phase=fly],[data-phase=done]) .g-link{opacity:0;transition-duration:.14s;transform:scale(0)}.g-plane{opacity:0;transition:transform .2s var(--ease-in),opacity .15s ease;transform:scale(.3)rotate(-30deg)}:is([data-phase=fold],[data-phase=wait]) .g-plane{opacity:1;transition:transform .34s var(--spring).1s,opacity .12s ease .1s;transform:none}[data-phase=wait] .g-plane{animation:.9s ease-in-out .45s infinite alternate g-hover}@keyframes g-hover{0%{transform:translateY(.8px)rotate(-3deg)}to{transform:translateY(-1.2px)rotate(2deg)}}[data-phase=fly] .g-plane{opacity:1;animation:g-fly .42s var(--ease-in)forwards}@keyframes g-fly{0%{opacity:1;transform:none}25%{opacity:1;transform:translate(-1.5px,1px)rotate(-6deg)}to{opacity:0;transform:translate(18px,-16px)rotate(-10deg)scale(.6)}}[data-phase=done] .g-plane{transition:none}[data-phase=done] .glyph .g-tick{stroke-dashoffset:0}.share-menu{transform-origin:0 0;animation:menu-unfold .26s var(--ease-out)both}.share-menu>:is(a,button){animation:menu-item-in .28s var(--ease-out)both;animation-delay:calc(60ms + var(--i,0)*35ms)}.share-menu[data-closing]{animation:menu-fold .16s var(--ease-in)forwards}.share-menu[data-closing]>:is(a,button){animation:none}@keyframes menu-unfold{0%{clip-path:inset(0 0 100% round 12px);transform:translateY(-4px)}to{clip-path:inset(0 round 12px);transform:none}}@keyframes menu-fold{to{clip-path:inset(0 0 100% round 12px);opacity:.4;transform:translateY(-4px)}}@keyframes menu-item-in{0%{opacity:0;transform:translateY(-5px)}}.askai-bubble{z-index:70;pointer-events:none;width:34px;height:34px;position:fixed}.askai-bubble-in{background:hsl(var(--primary));width:100%;height:100%;color:hsl(var(--primary-foreground));box-shadow:0 8px 22px -8px hsl(var(--primary)/.7);border-radius:9999px;justify-content:center;align-items:center;display:flex}html.theme-vt::view-transition-old(root){mix-blend-mode:normal;animation:none}html.theme-vt::view-transition-new(root){mix-blend-mode:normal;animation:none}html.theme-vt .theme-ico{animation:theme-turn .6s var(--spring)80ms both}@keyframes theme-turn{0%{opacity:0;transform:rotate(-110deg)scale(.3)}}.lang-pill{transition:transform .34s var(--spring)}.js [data-reveal-group]:not([data-in]) .rv-side{transform:translateX(var(--from-x,-24px))}.rv-pop{transition-timing-function:var(--spring),var(--spring);transition-duration:.5s,.7s}.js [data-reveal-group]:not([data-in]) .rv-pop{transform:translateY(10px)scale(.82)}.rv-pin{transition-timing-function:ease,var(--spring);transition-duration:.3s,.6s}.js [data-reveal-group]:not([data-in]) .rv-pin{transform:scale(0)}.rv-follow{transition:opacity .45s var(--ease-out),translate .5s var(--spring);transition-delay:calc(var(--i,0)*70ms + var(--after,0s))}.js [data-reveal-group]:not([data-in]) .rv-follow{opacity:0;translate:var(--follow-from,-8px 0)}@supports (animation-timeline:view()){.xp-line{transform-origin:top;animation:linear both xp-line;animation-timeline:view();animation-range:entry cover 55%}}@keyframes xp-line{0%{scale:1 0}to{scale:1}}.xp-dot{position:relative}.xp-dot:after{content:"";opacity:0;pointer-events:none;border:2px solid;border-radius:9999px;position:absolute;inset:-4px}.js [data-reveal-group][data-in] .xp-dot:after{animation:pin-ring .75s var(--ease-out).5s}@keyframes pin-ring{0%{opacity:.55;transform:scale(.6)}to{opacity:0;transform:scale(2.2)}}.ach-line{transition:transform 1.1s var(--ease-io).15s}.js [data-reveal-group]:not([data-in]) .ach-line-x{transform:scaleX(0)}.js [data-reveal-group]:not([data-in]) .ach-line-y{transform:scaleY(0)}.ach-burst{opacity:0;pointer-events:none;border:2px solid #facc15cc;border-radius:9999px;position:absolute;inset:-6px}.js [data-reveal-group][data-in] .ach-burst{animation:pin-ring .9s var(--ease-out);animation-delay:calc(var(--i,0)*70ms + .55s)}.rise-in{animation:rise-in .32s var(--ease-out)both}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}.dot-pop{animation:dot-pop .36s var(--spring)both}@keyframes dot-pop{0%{transform:scale(0)}}.reel-pop{animation:reel-pop .5s var(--spring)both;animation-delay:calc(.15s + var(--i,0)*.15s)}@keyframes reel-pop{0%{opacity:0;transform:translateY(8px)scale(.6)}}.medal-in{animation:medal-in .6s var(--spring).2s both}@keyframes medal-in{0%{opacity:0;transform:translateY(10px)rotate(-3deg)}}.medal-swing{transform-origin:50% 0;animation:1.3s ease-out .45s both medal-swing}@keyframes medal-swing{0%{transform:rotate(-14deg)}30%{transform:rotate(9deg)}55%{transform:rotate(-5deg)}78%{transform:rotate(2deg)}to{transform:none}}.chip-bg{transform-origin:0}.yt-ring{border:3px solid #ffffff40;border-top-color:#fff;border-radius:9999px;animation:.8s linear infinite yt-spin;position:absolute;inset:-6px}@keyframes yt-spin{to{transform:rotate(360deg)}}.yt-cover{transition:opacity .35s}.yt-cover[data-gone]{opacity:0;pointer-events:none}.yt-press{animation:yt-press .3s var(--spring)both}@keyframes yt-press{40%{transform:translate(-50%,-50%)scale(.86)}to{transform:translate(-50%,-50%)scale(1)}}.lb-chrome{animation:lb-chrome-in .3s var(--ease-out).2s both}@keyframes lb-chrome-in{0%{opacity:0;translate:0 6px}}.lb-slide{animation:lb-slide .34s var(--ease-out)both}@keyframes lb-slide{0%{opacity:.25;transform:translateX(calc(var(--dir,1)*36px))}}::view-transition-old(root){animation:vt-out .2s var(--ease-in)both}::view-transition-new(root){animation:vt-in .36s var(--ease-out)50ms both}@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}@keyframes vt-in{0%{opacity:0;transform:translateY(12px)}}.vt-proj{view-transition-class:proj}.vt-svc{view-transition-class:svc}::view-transition-group(*.proj){animation-duration:.48s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-group(*.svc){animation-duration:.48s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}::view-transition-group(*.proj){border-radius:1rem;overflow:clip}::view-transition-old(*.proj){-o-object-fit:cover;object-fit:cover;height:100%;animation-duration:.48s}::view-transition-new(*.proj){-o-object-fit:cover;object-fit:cover;height:100%;animation-duration:.48s}@media (prefers-reduced-motion:reduce){.skel[data-state=loading]:after,.section-skel .bar:after,.section-skel .block:after,img[data-develop],.section-skel,.mo-drop :is(.g-arrow,.g-tray),.mo-launch .g-arrow,[data-phase] .glyph,[data-phase] .phase-label,[data-phase] .g-person,[data-phase] .g-plane,.share-menu,.share-menu>:is(a,button),html.theme-vt .theme-ico,.xp-line,.xp-dot:after,.ach-burst,.rise-in,.dot-pop,.reel-pop,.medal-in,.medal-swing,.yt-press,.lb-chrome,.lb-slide{animation:none!important}::view-transition-old(root){animation:none!important}::view-transition-new(root){animation:none!important}.glyph :is(g,path,line,circle,rect),.lang-pill,.rv-side,.rv-pop,.rv-pin,.rv-follow,.ach-line,.yt-cover{transition:none!important}.yt-ring{border-color:#fff9;animation:none}.js [data-reveal-group]:not([data-in]) :is(.rv-side,.rv-pop,.rv-pin,.ach-line-x,.ach-line-y){opacity:1;transform:none}.js [data-reveal-group]:not([data-in]) .rv-follow{opacity:1;translate:none}}.js:not(.app) [data-reveal-group]:not([data-in]) :is(.rv-follow,.ach-line-x,.ach-line-y){animation:.6s 8s forwards rv-fallback}@keyframes rv-fallback{to{opacity:1;transform:translate(0,0)}}@media print{.rv-follow,.ach-line,.rv-side,.rv-pop,.rv-pin{opacity:1!important;transform:translate(0,0)!important}.skel{display:none}}
