@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){.reveal{animation:linear both reveal;animation-timeline:view();animation-range:entry cover 22%}.reveal-stagger>*{animation:linear both reveal;animation-timeline:view();animation-range:entry cover 20%}}}@keyframes reveal{0%{opacity:0;transform:translateY(28px)scale(.985)}to{opacity:1;transform:none}}.bento-card{isolation:isolate;position:relative}.bento-card:before{content:"";z-index:-1;border-radius:inherit;opacity:0;transition:opacity var(--duration-slow) var(--ease-out-soft);background:radial-gradient(120% 80% at 100% 0,#3366ff1a,#0000 55%);position:absolute;inset:0}.bento-card:hover:before{opacity:1}.fx-push{animation:fx-push 6s var(--ease-out-soft) infinite}@keyframes fx-push{0%,6%{opacity:0;transform:translateY(-24px)scale(.96)}14%,78%{opacity:1;transform:none}90%,to{opacity:0;transform:translateY(-12px)}}.fx-tap{animation:6s ease-in-out infinite fx-tap}@keyframes fx-tap{0%,44%{box-shadow:none;transform:none}50%{transform:scale(.94);box-shadow:0 0 0 6px #3366ff2e}56%,to{box-shadow:none;transform:none}}.fx-done{animation:6s ease-out infinite fx-done}@keyframes fx-done{0%,54%{opacity:0;transform:translateY(6px)}62%,80%{opacity:1;transform:none}92%,to{opacity:0}}.fx-bubble{animation:fx-bubble 7s var(--ease-out-soft) infinite both}.fx-bubble-2{animation-delay:.9s}.fx-bubble-3{animation-delay:1.8s}@keyframes fx-bubble{0%{opacity:0;transform:translateY(10px)scale(.97)}10%,85%{opacity:1;transform:none}95%,to{opacity:0}}.fx-dot{animation:1.2s ease-in-out infinite fx-dot}.fx-dot:nth-child(2){animation-delay:.15s}.fx-dot:nth-child(3){animation-delay:.3s}@keyframes fx-dot{0%,60%,to{opacity:.45;transform:none}30%{opacity:1;transform:translateY(-3px)}}.fx-wire{stroke-dasharray:6 8;animation:1.4s linear infinite fx-wire}@keyframes fx-wire{to{stroke-dashoffset:-28px}}.fx-packet{offset-path:path("M 10 10 L 150 10");animation:fx-packet 2.2s var(--ease-in-out-soft) infinite}@keyframes fx-packet{0%{offset-distance:0%}to{offset-distance:100%}}.fx-check{animation:2.2s ease-out infinite fx-check}@keyframes fx-check{0%,70%{opacity:.25;transform:scale(.6)}85%,to{opacity:1;transform:none}}.fx-spin{transform-origin:50%;animation:9s linear infinite fx-spin}@keyframes fx-spin{to{transform:rotate(360deg)}}.fx-join{animation:fx-join 5s var(--ease-out-soft) infinite both}.fx-join-2{animation-delay:.5s}.fx-join-3{animation-delay:1s}@keyframes fx-join{0%{opacity:0;transform:translate(-10px)scale(.8)}12%,88%{opacity:1;transform:none}to{opacity:0}}.fx-type{white-space:nowrap;vertical-align:bottom;width:3.3ch;animation:5s steps(4,end) infinite fx-type;display:inline-block;overflow:hidden}@keyframes fx-type{0%,8%{width:0}40%,92%{width:3.3ch}to{width:0}}.fx-caret{animation:1s step-end infinite fx-caret}@keyframes fx-caret{50%{opacity:0}}.fx-result{animation:5s ease-out infinite both fx-result}.fx-result-2{animation-delay:.2s}@keyframes fx-result{0%,36%{opacity:0;transform:translateY(4px)}46%,92%{opacity:1;transform:none}to{opacity:0}}.fx-shackle{animation:fx-shackle 4s var(--ease-out-soft) infinite}@keyframes fx-shackle{0%,30%{transform:translateY(-3px)}42%,to{transform:none}}.fx-select{animation:fx-select 6s var(--ease-in-out-soft) infinite}@keyframes fx-select{0%,40%{transform:translateY(0)}50%,90%{transform:translateY(44px)}to{transform:translateY(0)}}.fx-float{animation:5s ease-in-out infinite fx-float}@keyframes fx-float{50%{transform:translateY(-6px)}}.fx-drift{animation:16s ease-in-out infinite alternate fx-drift}@keyframes fx-drift{to{transform:translate(-40%,30%)scale(1.15)}}@media (prefers-reduced-motion:reduce){.fx-push,.fx-tap,.fx-done,.fx-bubble,.fx-dot,.fx-wire,.fx-packet,.fx-check,.fx-spin,.fx-join,.fx-type,.fx-caret,.fx-result,.fx-shackle,.fx-select,.fx-float,.fx-drift{animation:none}}
