diff --git a/components/buttons.css b/components/buttons.css index e8f3b55d..fd867240 100644 --- a/components/buttons.css +++ b/components/buttons.css @@ -209,20 +209,63 @@ display: inline-flex; } +/* Base button overrides within groups */ .ease-btn-group .ease-btn { border-radius: 0; } -.ease-btn-group .ease-btn:first-child { - border-radius: var(--ease-radius-md) 0 0 var(--ease-radius-md); +/* Use negative margin equal to border width to overlay borders symmetrically */ +.ease-btn-group .ease-btn:not(:last-child) { + margin-right: -2px; /* standard overlaying */ } -.ease-btn-group .ease-btn:last-child { - border-radius: 0 var(--ease-radius-md) var(--ease-radius-md) 0; +/* Ensure border edges display correctly on interactions */ +.ease-btn-group .ease-btn:hover, +.ease-btn-group .ease-btn:focus-visible, +.ease-btn-group .ease-btn:active { + z-index: 1; } -.ease-btn-group .ease-btn:not(:last-child) { - border-right-width: 1px; +/* ── Boundary Corners — Respect modifier classes! ── */ + +/* Pill-shaped */ +.ease-btn-group .ease-btn-pill:first-child { + border-radius: var(--ease-radius-full) 0 0 var(--ease-radius-full); +} +.ease-btn-group .ease-btn-pill:last-child { + border-radius: 0 var(--ease-radius-full) var(--ease-radius-full) 0; +} + +/* Large size */ +.ease-btn-group .ease-btn-lg:first-child { + border-radius: var(--ease-radius-lg) 0 0 var(--ease-radius-lg); +} +.ease-btn-group .ease-btn-lg:last-child { + border-radius: 0 var(--ease-radius-lg) var(--ease-radius-lg) 0; +} + +/* Extra-Large size */ +.ease-btn-group .ease-btn-xl:first-child { + border-radius: var(--ease-radius-lg) 0 0 var(--ease-radius-lg); +} +.ease-btn-group .ease-btn-xl:last-child { + border-radius: 0 var(--ease-radius-lg) var(--ease-radius-lg) 0; +} + +/* Small size */ +.ease-btn-group .ease-btn-sm:first-child { + border-radius: var(--ease-radius-sm) 0 0 var(--ease-radius-sm); +} +.ease-btn-group .ease-btn-sm:last-child { + border-radius: 0 var(--ease-radius-sm) var(--ease-radius-sm) 0; +} + +/* Default / Medium fallback boundary corners */ +.ease-btn-group .ease-btn:first-child:not(.ease-btn-pill):not(.ease-btn-lg):not(.ease-btn-xl):not(.ease-btn-sm) { + border-radius: var(--ease-radius-md) 0 0 var(--ease-radius-md); +} +.ease-btn-group .ease-btn:last-child:not(.ease-btn-pill):not(.ease-btn-lg):not(.ease-btn-xl):not(.ease-btn-sm) { + border-radius: 0 var(--ease-radius-md) var(--ease-radius-md) 0; } /* ── Accessibility: Reduced Motion ───────────────────────── */ diff --git a/easemotion.min.css b/easemotion.min.css index cd2cea4c..9337c957 100644 --- a/easemotion.min.css +++ b/easemotion.min.css @@ -1 +1 @@ -@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');:root{--ease-speed-fast:150ms;--ease-speed-medium:300ms;--ease-speed-slow:600ms;--ease-ease:cubic-bezier(0.4,0,0.2,1);--ease-ease-out:cubic-bezier(0,0,0.2,1);--ease-ease-bounce:cubic-bezier(0.34,1.56,0.64,1);--ease-color-primary:#6c63ff;--ease-color-primary-light:#a09af8;--ease-color-primary-dark:#4b44cc;--ease-color-success:#22c55e;--ease-color-success-light:#86efac;--ease-color-success-dark:#15803d;--ease-color-danger:#ef4444;--ease-color-danger-light:#fca5a5;--ease-color-danger-dark:#b91c1c;--ease-color-warning:#f59e0b;--ease-color-warning-light:#fcd34d;--ease-color-warning-dark:#b45309;--ease-color-neutral-50:#f8fafc;--ease-color-neutral-100:#f1f5f9;--ease-color-neutral-200:#e2e8f0;--ease-color-neutral-300:#cbd5e1;--ease-color-neutral-400:#94a3b8;--ease-color-neutral-500:#64748b;--ease-color-neutral-600:#475569;--ease-color-neutral-700:#334155;--ease-color-neutral-800:#1e293b;--ease-color-neutral-900:#0f172a;--ease-color-bg:var(--ease-color-neutral-50);--ease-color-surface:#ffffff;--ease-color-text:var(--ease-color-neutral-800);--ease-color-muted:var(--ease-color-neutral-500);--ease-space-1:0.25rem;--ease-space-2:0.5rem;--ease-space-3:0.75rem;--ease-space-4:1rem;--ease-space-5:1.25rem;--ease-space-6:1.5rem;--ease-space-8:2rem;--ease-space-10:2.5rem;--ease-space-12:3rem;--ease-space-16:4rem;--ease-radius-sm:0.25rem;--ease-radius-md:0.5rem;--ease-radius-lg:1rem;--ease-radius-xl:1.5rem;--ease-radius-full:9999px;--ease-shadow-sm:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.05);--ease-shadow-md:0 4px 6px -1px rgba(0,0,0,0.10),0 2px 4px -1px rgba(0,0,0,0.06);--ease-shadow-lg:0 10px 15px -3px rgba(0,0,0,0.10),0 4px 6px -2px rgba(0,0,0,0.05);--ease-shadow-xl:0 20px 25px -5px rgba(0,0,0,0.10),0 10px 10px -5px rgba(0,0,0,0.04);--ease-glow-primary:0 0 16px rgba(108,99,255,0.45);--ease-glow-success:0 0 16px rgba(34,197,94,0.45);--ease-glow-danger:0 0 16px rgba(239,68,68,0.45);--ease-font-sans:'Inter',system-ui,-apple-system,sans-serif;--ease-font-mono:'JetBrains Mono','Fira Code',monospace;--ease-text-xs:0.75rem;--ease-text-sm:0.875rem;--ease-text-base:1rem;--ease-text-lg:1.125rem;--ease-text-xl:1.25rem;--ease-text-2xl:1.5rem;--ease-text-3xl:1.875rem;--ease-text-4xl:2.25rem;--ease-leading-tight:1.25;--ease-leading-normal:1.6;--ease-leading-loose:1.9;--ease-z-base:0;--ease-z-raised:10;--ease-z-overlay:100;--ease-z-modal:1000;--ease-z-toast:9999}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--ease-font-sans);font-size:var(--ease-text-base);line-height:var(--ease-leading-normal);color:var(--ease-color-text);background-color:var(--ease-color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:var(--ease-leading-tight);color:var(--ease-color-neutral-900)}h1{font-size:var(--ease-text-4xl)}h2{font-size:var(--ease-text-3xl)}h3{font-size:var(--ease-text-2xl)}h4{font-size:var(--ease-text-xl)}h5{font-size:var(--ease-text-lg)}h6{font-size:var(--ease-text-base)}p{margin-bottom:var(--ease-space-4);color:var(--ease-color-neutral-700)}a{color:var(--ease-color-primary);text-decoration:none;transition:color var(--ease-speed-fast) var(--ease-ease)}a:hover{color:var(--ease-color-primary-dark);text-decoration:underline}ul,ol{padding-left:var(--ease-space-6)}li{margin-bottom:var(--ease-space-1)}img,video,svg{display:block;max-width:100%}code,kbd,samp,pre{font-family:var(--ease-font-mono);font-size:var(--ease-text-sm)}code{background-color:var(--ease-color-neutral-100);color:var(--ease-color-primary-dark);padding:0.1em 0.4em;border-radius:var(--ease-radius-sm)}pre{background-color:var(--ease-color-neutral-900);color:var(--ease-color-neutral-50);padding:var(--ease-space-6);border-radius:var(--ease-radius-md);overflow-x:auto;line-height:var(--ease-leading-loose)}input,textarea,select,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none}hr{border:none;border-top:1px solid var(--ease-color-neutral-200);margin:var(--ease-space-8) 0}:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--ease-color-primary);outline-offset:3px;border-radius:var(--ease-radius-sm)}::selection{background-color:var(--ease-color-primary);color:#ffffff}@keyframes ease-kf-fade-in{from{opacity:0}to{opacity:1}}@keyframes ease-kf-fade-out{from{opacity:1}to{opacity:0}}@keyframes ease-kf-slide-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-down{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-in-left{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-right{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-from-top{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-in-from-bottom{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-in-from-left{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-from-right{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-from-top-left{from{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-slide-in-from-top-right{from{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-slide-in-from-bottom-left{from{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-slide-in-from-bottom-right{from{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-bounce{0%,100%{transform:translateY(0);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:translateY(-20px);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes ease-kf-squish-border{0%{border-radius:12px;transform:scaleX(1)}50%{border-radius:24px;transform:scaleX(0.88)}100%{border-radius:6px;transform:scaleX(1)}}@keyframes ease-kf-pulse{0%,100%{opacity:1}50%{opacity:0.45}}@keyframes ease-kf-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes ease-kf-ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ease-kf-shake{0%,100%{transform:translateX(0)}10%,50%,90%{transform:translateX(-6px)}30%,70%{transform:translateX(6px)}}@keyframes ease-kf-zoom-in{from{opacity:0;transform:scale(0.85)}to{opacity:1;transform:scale(1)}}@keyframes ease-kf-flip{from{transform:perspective(400px) rotateY(90deg);opacity:0}to{transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes ease-kf-shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}@keyframes ease-kf-pulse-fade{0%,100%{opacity:1}50%{opacity:0.45}}@keyframes ease-kf-typewriter-loop{0%{width:0}40%{width:var(--ease-typewriter-length,12ch)}60%{width:var(--ease-typewriter-length,12ch)}100%{width:0}}@keyframes ease-kf-cursor-blink{0%,49%{border-right-color:currentColor}50%,100%{border-right-color:transparent}}@keyframes ease-kf-blur-to-focus{from{filter:blur(12px);opacity:0}to{filter:blur(0px);opacity:1}}@keyframes ease-kf-contract-bg-exit{from{transform:scale(1);opacity:1}to{transform:scale(0.85);opacity:0}}@keyframes ease-kf-contract-image-entrance{from{opacity:0;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}@keyframes ease-kf-bounce-text{0%,100%{transform:translateY(0) scale(1)}30%{transform:translateY(-6px) scale(1.08)}60%{transform:translateY(2px) scale(0.98)}}@keyframes ease-kf-shake-card-exit{0%{transform:translateX(0) rotate(0deg);opacity:1}20%{transform:translateX(-8px) rotate(-2deg)}40%{transform:translateX(8px) rotate(2deg)}60%{transform:translateX(-6px) rotate(-1deg)}80%{transform:translateX(6px) rotate(1deg)}100%{transform:translateX(0) rotate(0deg);opacity:0}}@keyframes ease-kf-bounce-button-exit{0%{transform:scale(1);opacity:1}20%{transform:scale(1.15)}40%{transform:scale(0.90)}60%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(0);opacity:0}}@keyframes ease-kf-expand-border-exit{0%{opacity:1;transform:scale(1);border-width:2px}100%{opacity:0;transform:scale(1.15);border-width:6px}}@keyframes ease-kf-fade-icon-exit{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.75)}}@keyframes ease-kf-scale-text-exit{from{transform:scale(1);opacity:1}to{transform:scale(0.6);opacity:0}}@keyframes ease-kf-glow-shadow-exit{from{box-shadow:0 0 12px 4px rgba(99,102,241,0.6);opacity:1}to{box-shadow:0 0 0px 0px rgba(99,102,241,0);opacity:0}}@keyframes ease-kf-pulse-border-emphasis{0%,100%{box-shadow:0 0 0 0px rgba(99,102,241,0.6);border-color:rgba(99,102,241,1)}50%{box-shadow:0 0 0 6px rgba(99,102,241,0);border-color:rgba(99,102,241,0.4)}}@keyframes ease-kf-squish-button{0%{transform:scale(1)}35%{transform:scaleX(1.12) scaleY(0.88)}70%{transform:scaleX(0.96) scaleY(1.06)}100%{transform:scale(1)}}@keyframes ease-kf-shimmer-sweep{0%{background-position:-200% center}100%{background-position:200% center}}@keyframes ease-kf-gradient-rotation{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes ease-kf-contract-shadow-emphasis{0%{box-shadow:0 8px 24px rgba(0,0,0,0.3);transform:scale(1)}50%{box-shadow:0 2px 6px rgba(0,0,0,0.15);transform:scale(0.96)}100%{box-shadow:0 8px 24px rgba(0,0,0,0.3);transform:scale(1)}}@keyframes ease-kf-rotate-image-exit{from{transform:rotate(0deg) scale(1);opacity:1}to{transform:rotate(90deg) scale(0.75)}}@keyframes ease-kf-slide-image-exit{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@keyframes ease-kf-morph-card{from{border-radius:8px}to{border-radius:50%}}@keyframes ease-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes ease-zoom-in{from{transform:scale(0)}to{transform:scale(1)}}@keyframes ease-zoom-out{from{transform:scale(1.5)}to{transform:scale(1)}}@keyframes ease-bounce-in{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.1)}70%{transform:scale(0.95)}100%{transform:scale(1)}}.ease-zoom-in{animation:ease-kf-zoom-in var(--ease-speed-medium) var(--ease-ease-bounce) both}.ease-zoom-out{animation:ease-zoom-out 0.6s ease-out forwards}.ease-float{animation:ease-float 3s ease-in-out infinite}.ease-bounce-in{animation:ease-bounce-in 0.8s ease-out forwards}.ease-shake-card-exit{animation:ease-kf-shake-card-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-bounce-button-exit{animation:ease-kf-bounce-button-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-fade-icon-exit{animation:ease-kf-fade-icon-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-scale-text-exit{animation:ease-kf-scale-text-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-glow-shadow-exit{animation:ease-kf-glow-shadow-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-pulse-border-emphasis{animation:ease-kf-pulse-border-emphasis 1.5s var(--ease-ease) infinite}.ease-slide-image-exit{animation:ease-kf-slide-image-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-hover-bounce-text{display:inline-block}.ease-hover-bounce-text:hover{animation:ease-kf-bounce-text var(--ease-speed-medium) var(--ease-ease-bounce)}.ease-squish-button:hover,.ease-squish-button:focus-visible,.ease-squish-button:active{animation:ease-kf-squish-button var(--ease-speed-medium) var(--ease-ease) both}.ease-shimmer-sweep{background:linear-gradient( 120deg,transparent 30%,rgba(255,255,255,0.15) 50%,transparent 70% );background-size:200% auto;animation:ease-kf-shimmer-sweep var(--ease-speed-slow) var(--ease-ease) infinite}.ease-gradient-rotation{background:linear-gradient(270deg,var(--ease-color-primary),var(--ease-color-secondary,#8b5cf6),var(--ease-color-primary) );background-size:200% 200%;animation:ease-kf-gradient-rotation 3s var(--ease-ease) infinite}.ease-contract-shadow-emphasis{animation:ease-kf-contract-shadow-emphasis var(--ease-speed-medium) var(--ease-ease) both}.ease-rotate-image-exit{animation:ease-kf-rotate-image-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-expand-border-exit{animation:ease-kf-expand-border-exit var(--ease-speed-medium) var(--ease-ease) forwards}.ease-skeleton-shimmer{background:var(--ease-color-neutral-100);background-image:linear-gradient( 90deg,var(--ease-color-neutral-100) 0px,var(--ease-color-neutral-200) 40px,var(--ease-color-neutral-100) 80px );background-size:1000px 100%;animation:ease-kf-shimmer 2s infinite linear forwards}.ease-skeleton-pulse{background-color:var(--ease-color-neutral-200);animation:ease-kf-pulse-fade 1.5s var(--ease-ease) infinite}.ease-skeleton-block{border-radius:var(--ease-radius-md);display:block}.ease-fade-in{animation:ease-kf-fade-in var(--ease-speed-medium) var(--ease-ease) both}.ease-fade-out{animation:ease-kf-fade-out var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-up:not(.ease-slide-down){animation:ease-kf-slide-up var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-down:not(.ease-slide-up){animation:ease-kf-slide-down var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-left{animation:ease-kf-slide-in-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-right{animation:ease-kf-slide-in-right var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-top{animation:ease-kf-slide-in-from-top var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-bottom{animation:ease-kf-slide-in-from-bottom var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-left{animation:ease-kf-slide-in-from-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-right{animation:ease-kf-slide-in-from-right var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-top-left{animation:ease-kf-slide-in-from-top-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-top-right{animation:ease-kf-slide-in-from-top-right var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-bottom-left{animation:ease-kf-slide-in-from-bottom-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-bottom-right{animation:ease-kf-slide-in-from-bottom-right var(--ease-speed-medium) var(--ease-ease) both}.ease-flip{animation:ease-kf-flip var(--ease-speed-medium) var(--ease-ease) both}.ease-blur-to-focus{animation:ease-kf-blur-to-focus var(--ease-speed-medium) var(--ease-ease) both}.ease-contract-bg-exit{animation:ease-kf-contract-bg-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-contract-image-entrance{animation:ease-kf-contract-image-entrance var(--ease-speed-medium) var(--ease-ease) both}.ease-bounce{animation:ease-kf-bounce 1s infinite}.ease-rotate{animation:ease-kf-rotate 1.2s linear infinite}.ease-pulse{animation:ease-kf-pulse 2s var(--ease-ease) infinite}.ease-ping{animation:ease-kf-ping 1s cubic-bezier(0,0,0.2,1) infinite}.ease-shake{animation:ease-kf-shake 0.5s var(--ease-ease) both}.ease-typewriter-loop{--ease-typewriter-length:12ch;--ease-typewriter-duration:6s;display:inline-block;overflow:hidden;white-space:nowrap;width:0;max-width:fit-content;border-right:2px solid currentColor;--ease-typewriter-steps:12;animation:ease-kf-typewriter-loop var(--ease-typewriter-duration) steps(var(--ease-typewriter-steps),end) infinite,ease-kf-cursor-blink 0.8s step-end infinite;will-change:width}.ease-hover-grow{transition:transform var(--ease-speed-medium) var(--ease-ease-bounce);will-change:transform}.ease-hover-grow:hover{transform:scale(1.06)}.ease-hover-lift-shadow{transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease);will-change:transform,box-shadow}.ease-hover-lift-shadow:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.15),0 4px 12px rgba(0,0,0,0.1)}.ease-hover-shrink{transition:transform var(--ease-speed-fast) var(--ease-ease);will-change:transform}.ease-hover-shrink:hover{transform:scale(0.95)}.ease-hover-glow{transition:box-shadow var(--ease-speed-medium) var(--ease-ease)}.ease-hover-glow:hover{box-shadow:var(--ease-glow-primary)}.ease-hover-lift{transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease)}.ease-hover-lift:hover{transform:translateY(-4px);box-shadow:var(--ease-shadow-xl)}.ease-hover-underline{position:relative}.ease-hover-underline::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background-color:var(--ease-color-primary);transition:width var(--ease-speed-medium) var(--ease-ease)}.ease-hover-underline:hover::after{width:100%}.ease-card-lift{transition:transform var(--ease-speed-medium) var(--ease-ease-out),box-shadow var(--ease-speed-medium) var(--ease-ease-out);will-change:transform,box-shadow}.ease-card-lift:hover{transform:translateY(-8px);box-shadow:var(--ease-shadow-xl)}.ease-hover-shimmer{position:relative;overflow:hidden}.ease-hover-shimmer::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient( 120deg,transparent 0%,rgba(255,255,255,0.08) 50%,transparent 100% );transition:left var(--ease-speed-slow) var(--ease-ease);pointer-events:none}.ease-hover-shimmer:hover::before{left:150%}.ease-hover-squish-border{display:inline-block;transition:border-radius var(--ease-speed-medium) var(--ease-ease),transform var(--ease-speed-medium) var(--ease-ease)}.ease-hover-squish-border:hover{animation:ease-kf-squish-border var(--ease-speed-medium) var(--ease-ease-bounce)}.ease-hover-morph-card{border-radius:0;transition:border-radius var(--ease-speed-medium) var(--ease-ease),transform var(--ease-speed-medium) var(--ease-ease);will-change:border-radius,transform}.ease-hover-morph-card:hover{border-radius:50%;transform:scale(1.08)}.ease-delay-75{animation-delay:75ms}.ease-delay-100{animation-delay:100ms}.ease-delay-150{animation-delay:150ms}.ease-delay-200{animation-delay:200ms}.ease-delay-300{animation-delay:300ms}.ease-delay-500{animation-delay:500ms}.ease-delay-700{animation-delay:700ms}.ease-duration-fast{animation-duration:var(--ease-speed-fast)}.ease-duration-medium{animation-duration:var(--ease-speed-medium)}.ease-duration-slow{animation-duration:var(--ease-speed-slow)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}.ease-block{display:block}.ease-inline{display:inline}.ease-inline-block{display:inline-block}.ease-hidden{display:none}.ease-flex{display:flex}.ease-inline-flex{display:inline-flex}.ease-center{display:flex;align-items:center;justify-content:center}.ease-flex-col{flex-direction:column}.ease-flex-row{flex-direction:row}.ease-flex-wrap{flex-wrap:wrap}.ease-flex-nowrap{flex-wrap:nowrap}.ease-items-start{align-items:flex-start}.ease-items-center{align-items:center}.ease-items-end{align-items:flex-end}.ease-items-stretch{align-items:stretch}.ease-justify-start{justify-content:flex-start}.ease-justify-center{justify-content:center}.ease-justify-end{justify-content:flex-end}.ease-justify-between{justify-content:space-between}.ease-justify-around{justify-content:space-around}.ease-justify-evenly{justify-content:space-evenly}.ease-flex-1{flex:1 1 0%}.ease-flex-auto{flex:1 1 auto}.ease-flex-none{flex:none}.ease-grow{flex-grow:1}.ease-shrink{flex-shrink:1}.ease-grid{display:grid}.ease-inline-grid{display:inline-grid}.ease-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.ease-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ease-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ease-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ease-grid-auto{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ease-col-span-2{grid-column:span 2 / span 2}.ease-col-span-3{grid-column:span 3 / span 3}.ease-col-full{grid-column:1 / -1}.ease-gap-1{gap:var(--ease-space-1)}.ease-gap-2{gap:var(--ease-space-2)}.ease-gap-3{gap:var(--ease-space-3)}.ease-gap{gap:var(--ease-space-4)}.ease-gap-4{gap:var(--ease-space-4)}.ease-gap-6{gap:var(--ease-space-6)}.ease-gap-8{gap:var(--ease-space-8)}.ease-gap-10{gap:var(--ease-space-10)}.ease-padding{padding:var(--ease-space-4)}.ease-padding-1{padding:var(--ease-space-1)}.ease-padding-2{padding:var(--ease-space-2)}.ease-padding-3{padding:var(--ease-space-3)}.ease-padding-4{padding:var(--ease-space-4)}.ease-padding-6{padding:var(--ease-space-6)}.ease-padding-8{padding:var(--ease-space-8)}.ease-padding-10{padding:var(--ease-space-10)}.ease-padding-12{padding:var(--ease-space-12)}.ease-pt-4{padding-top:var(--ease-space-4)}.ease-pr-4{padding-right:var(--ease-space-4)}.ease-pb-4{padding-bottom:var(--ease-space-4)}.ease-pl-4{padding-left:var(--ease-space-4)}.ease-px-4{padding-left:var(--ease-space-4);padding-right:var(--ease-space-4)}.ease-py-4{padding-top:var(--ease-space-4);padding-bottom:var(--ease-space-4)}.ease-px-8{padding-left:var(--ease-space-8);padding-right:var(--ease-space-8)}.ease-py-8{padding-top:var(--ease-space-8);padding-bottom:var(--ease-space-8)}.ease-margin{margin:var(--ease-space-4)}.ease-margin-1{margin:var(--ease-space-1)}.ease-margin-2{margin:var(--ease-space-2)}.ease-margin-3{margin:var(--ease-space-3)}.ease-margin-4{margin:var(--ease-space-4)}.ease-margin-6{margin:var(--ease-space-6)}.ease-margin-8{margin:var(--ease-space-8)}.ease-margin-auto{margin:auto}.ease-mx-auto{margin-left:auto;margin-right:auto}.ease-my-4{margin-top:var(--ease-space-4);margin-bottom:var(--ease-space-4)}.ease-my-8{margin-top:var(--ease-space-8);margin-bottom:var(--ease-space-8)}.ease-mt-4{margin-top:var(--ease-space-4)}.ease-mr-4{margin-right:var(--ease-space-4)}.ease-mb-4{margin-bottom:var(--ease-space-4)}.ease-ml-4{margin-left:var(--ease-space-4)}.ease-w-full{width:100%}.ease-w-screen{width:100vw}.ease-w-auto{width:auto}.ease-h-full{height:100%}.ease-h-screen{height:100vh}.ease-h-auto{height:auto}.ease-container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:var(--ease-space-6);padding-right:var(--ease-space-6)}.ease-relative{position:relative}.ease-absolute{position:absolute}.ease-fixed{position:fixed}.ease-sticky{position:sticky;top:0}.ease-overflow-hidden{overflow:hidden}.ease-overflow-auto{overflow:auto}.ease-overflow-scroll{overflow:scroll}.ease-overflow-x-auto{overflow-x:auto}.ease-overflow-y-auto{overflow-y:auto}.ease-text-xs{font-size:var(--ease-text-xs)}.ease-text-sm{font-size:var(--ease-text-sm)}.ease-text-base{font-size:var(--ease-text-base)}.ease-text-lg{font-size:var(--ease-text-lg)}.ease-text-xl{font-size:var(--ease-text-xl)}.ease-text-2xl{font-size:var(--ease-text-2xl)}.ease-text-3xl{font-size:var(--ease-text-3xl)}.ease-text-4xl{font-size:var(--ease-text-4xl)}.ease-text-left{text-align:left}.ease-text-center{text-align:center}.ease-text-right{text-align:right}.ease-font-light{font-weight:300}.ease-font-regular{font-weight:400}.ease-font-medium{font-weight:500}.ease-font-semibold{font-weight:600}.ease-font-bold{font-weight:700}.ease-uppercase{text-transform:uppercase}.ease-lowercase{text-transform:lowercase}.ease-capitalize{text-transform:capitalize}.ease-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ease-text-primary{color:var(--ease-color-primary)}.ease-text-success{color:var(--ease-color-success)}.ease-text-danger{color:var(--ease-color-danger)}.ease-text-warning{color:var(--ease-color-warning)}.ease-text-muted{color:var(--ease-color-muted)}.ease-text-white{color:#ffffff}.ease-bg-primary{background-color:var(--ease-color-primary)}.ease-bg-success{background-color:var(--ease-color-success)}.ease-bg-danger{background-color:var(--ease-color-danger)}.ease-bg-warning{background-color:var(--ease-color-warning)}.ease-bg-white{background-color:#ffffff}.ease-bg-surface{background-color:var(--ease-color-surface)}.ease-bg-neutral{background-color:var(--ease-color-neutral-100)}.ease-bg-center{background-position:center}.ease-bg-top{background-position:top}.ease-bg-bottom{background-position:bottom}.ease-bg-left{background-position:left}.ease-bg-right{background-position:right}.ease-border{border:1px solid var(--ease-color-neutral-200)}.ease-border-2{border:2px solid var(--ease-color-neutral-200)}.ease-border-primary{border-color:var(--ease-color-primary)}.ease-rounded-sm{border-radius:var(--ease-radius-sm)}.ease-rounded{border-radius:var(--ease-radius-md)}.ease-rounded-lg{border-radius:var(--ease-radius-lg)}.ease-rounded-xl{border-radius:var(--ease-radius-xl)}.ease-rounded-full{border-radius:var(--ease-radius-full)}.ease-shadow-sm{box-shadow:var(--ease-shadow-sm)}.ease-shadow{box-shadow:var(--ease-shadow-md)}.ease-shadow-lg{box-shadow:var(--ease-shadow-lg)}.ease-shadow-xl{box-shadow:var(--ease-shadow-xl)}.ease-shadow-none{box-shadow:none}.ease-opacity-0{opacity:0}.ease-opacity-25{opacity:0.25}.ease-opacity-50{opacity:0.50}.ease-opacity-75{opacity:0.75}.ease-opacity-100{opacity:1}.ease-cursor-pointer{cursor:pointer}.ease-cursor-default{cursor:default}.ease-cursor-not-allowed{cursor:not-allowed}@media (max-width:768px){.ease-sm-hidden{display:none}.ease-sm-full{width:100%}.ease-sm-flex-col{flex-direction:column}.ease-sm-grid-cols-1{grid-template-columns:1fr}.ease-sm-text-center{text-align:center}}@media (min-width:769px) and (max-width:1024px){.ease-md-hidden{display:none}.ease-md-block{display:block}.ease-md-flex{display:flex}.ease-md-full{width:100%}.ease-md-w-auto{width:auto}.ease-md-flex-col{flex-direction:column}.ease-md-flex-row{flex-direction:row}.ease-md-grid-cols-1{grid-template-columns:1fr}.ease-md-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ease-md-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ease-md-text-left{text-align:left}.ease-md-text-center{text-align:center}.ease-md-text-right{text-align:right}.ease-md-gap-4{gap:var(--ease-space-4)}.ease-md-gap-6{gap:var(--ease-space-6)}.ease-md-gap-8{gap:var(--ease-space-8)}.ease-md-padding-4{padding:var(--ease-space-4)}.ease-md-padding-6{padding:var(--ease-space-6)}.ease-md-padding-8{padding:var(--ease-space-8)}.ease-md-px-4{padding-left:var(--ease-space-4);padding-right:var(--ease-space-4)}.ease-md-py-4{padding-top:var(--ease-space-4);padding-bottom:var(--ease-space-4)}.ease-md-px-8{padding-left:var(--ease-space-8);padding-right:var(--ease-space-8)}.ease-md-py-8{padding-top:var(--ease-space-8);padding-bottom:var(--ease-space-8)}.ease-md-text-sm{font-size:var(--ease-text-sm)}.ease-md-text-base{font-size:var(--ease-text-base)}.ease-md-text-lg{font-size:var(--ease-text-lg)}.ease-md-text-xl{font-size:var(--ease-text-xl)}.ease-md-text-2xl{font-size:var(--ease-text-2xl)}}.ease-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ease-space-2);padding:var(--ease-space-3) var(--ease-space-6);font-family:var(--ease-font-sans);font-size:var(--ease-text-sm);font-weight:600;letter-spacing:0.02em;line-height:1;white-space:nowrap;border:2px solid transparent;border-radius:var(--ease-radius-md);cursor:pointer;user-select:none;text-decoration:none;transition:background-color var(--ease-speed-fast) var(--ease-ease),color var(--ease-speed-fast) var(--ease-ease),border-color var(--ease-speed-fast) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease),transform var(--ease-speed-fast) var(--ease-ease-bounce)}.ease-btn:active{transform:scale(0.97)}.ease-btn:focus-visible{outline:2px solid var(--ease-color-primary);outline-offset:3px}.ease-btn-primary{background-color:var(--ease-color-primary);color:#ffffff;border-color:var(--ease-color-primary)}.ease-btn-primary:hover{background-color:var(--ease-color-primary-dark);border-color:var(--ease-color-primary-dark);box-shadow:var(--ease-glow-primary)}.ease-btn-success{background-color:var(--ease-color-success);color:#ffffff;border-color:var(--ease-color-success)}.ease-btn-success:hover{background-color:var(--ease-color-success-dark);border-color:var(--ease-color-success-dark);box-shadow:var(--ease-glow-success)}.ease-btn-danger{background-color:var(--ease-color-danger);color:#ffffff;border-color:var(--ease-color-danger)}.ease-btn-danger:hover{background-color:var(--ease-color-danger-dark);border-color:var(--ease-color-danger-dark);box-shadow:var(--ease-glow-danger)}.ease-btn-outline{background-color:transparent;color:var(--ease-color-primary);border-color:var(--ease-color-primary)}.ease-btn-outline:hover{background-color:var(--ease-color-primary);color:#ffffff}.ease-btn-ghost{background-color:transparent;color:var(--ease-color-neutral-700);border-color:transparent}.ease-btn-ghost:hover{background-color:var(--ease-color-neutral-100);color:var(--ease-color-neutral-900)}.ease-btn-link{background:none;border:none;color:var(--ease-color-primary);padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:3px}.ease-btn-link:hover{color:var(--ease-color-primary-dark);text-decoration:none}.ease-btn-sm{padding:var(--ease-space-2) var(--ease-space-4);font-size:var(--ease-text-xs);border-radius:var(--ease-radius-sm)}.ease-btn-lg{padding:var(--ease-space-4) var(--ease-space-8);font-size:var(--ease-text-base);border-radius:var(--ease-radius-lg)}.ease-btn-xl{padding:var(--ease-space-5) var(--ease-space-10);font-size:var(--ease-text-lg);border-radius:var(--ease-radius-lg)}.ease-btn-block{width:100%}.ease-btn-pill{border-radius:var(--ease-radius-full)}.ease-btn-icon{padding:var(--ease-space-3);border-radius:var(--ease-radius-md)}.ease-btn:disabled,.ease-btn[disabled],.ease-btn-disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.ease-btn-loading{pointer-events:none;position:relative}.ease-btn-loading::after{content:'';display:inline-block;width:0.85em;height:0.85em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ease-kf-rotate 0.7s linear infinite;margin-left:var(--ease-space-2)}.ease-btn-hover{transition:transform var(--ease-speed-medium) var(--ease-ease-bounce),box-shadow var(--ease-speed-medium) var(--ease-ease),background-color var(--ease-speed-fast) var(--ease-ease),border-color var(--ease-speed-fast) var(--ease-ease)}.ease-btn-hover:hover{transform:translateY(-3px);box-shadow:var(--ease-shadow-lg),var(--ease-glow-primary)}.ease-btn-group{display:inline-flex}.ease-btn-group .ease-btn{border-radius:0}.ease-btn-group .ease-btn:first-child{border-radius:var(--ease-radius-md) 0 0 var(--ease-radius-md)}.ease-btn-group .ease-btn:last-child{border-radius:0 var(--ease-radius-md) var(--ease-radius-md) 0}.ease-btn-group .ease-btn:not(:last-child){border-right-width:1px}@media (prefers-reduced-motion:reduce){.ease-btn,.ease-btn-hover,.ease-btn-loading::after{transition:none !important;animation:none !important}.ease-btn:active,.ease-btn-hover:hover{transform:none !important}}.ease-card{background-color:var(--ease-color-surface);border:1px solid var(--ease-color-neutral-200);border-radius:var(--ease-radius-lg);padding:var(--ease-space-6);overflow:hidden;position:relative}.ease-card-header{padding-bottom:var(--ease-space-4);margin-bottom:var(--ease-space-4);border-bottom:1px solid var(--ease-color-neutral-100)}.ease-card-body{flex:1}.ease-card-footer{padding-top:var(--ease-space-4);margin-top:var(--ease-space-4);border-top:1px solid var(--ease-color-neutral-100);display:flex;align-items:center;gap:var(--ease-space-3)}.ease-card-title{font-size:var(--ease-text-2xl);font-weight:700;color:var(--ease-color-neutral-900);margin-bottom:var(--ease-space-1);line-height:var(--ease-leading-tight)}.ease-card-subtitle{font-size:var(--ease-text-sm);color:var(--ease-color-muted);font-weight:400}.ease-card-body p:last-child{margin-bottom:0}.ease-card-shadow{box-shadow:var(--ease-shadow-lg);border-color:transparent}.ease-card-hover{cursor:pointer;transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease),border-color var(--ease-speed-medium) var(--ease-ease);will-change:transform,box-shadow}.ease-card-hover:hover{transform:translateY(-6px);box-shadow:var(--ease-shadow-xl);border-color:var(--ease-color-primary-light)}.ease-card-glow{transition:box-shadow var(--ease-speed-medium) var(--ease-ease),border-color var(--ease-speed-medium) var(--ease-ease)}.ease-card-glow:hover{box-shadow:var(--ease-glow-primary),var(--ease-shadow-lg);border-color:var(--ease-color-primary-light)}.ease-card-flat{border-color:transparent;background-color:var(--ease-color-neutral-100)}.ease-card-outlined{background-color:transparent;border:2px solid var(--ease-color-neutral-200)}.ease-card-glass{background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#ffffff}.ease-card-accent{border-left:4px solid var(--ease-color-primary)}.ease-card-accent-success{border-left:4px solid var(--ease-color-success)}.ease-card-accent-danger{border-left:4px solid var(--ease-color-danger)}.ease-card-accent-warning{border-left:4px solid var(--ease-color-warning)}.ease-card-image{padding:0}.ease-card-image .ease-card-img{width:100%;height:200px;object-fit:cover;display:block;border-radius:var(--ease-radius-lg) var(--ease-radius-lg) 0 0}.ease-card-image .ease-card-body{padding:var(--ease-space-6)}.ease-card-compact{padding:var(--ease-space-4)}.ease-card-horizontal{display:flex;flex-direction:row;gap:var(--ease-space-4);align-items:flex-start;padding:var(--ease-space-4)}.ease-card-info{background-color:rgba(108,99,255,0.06);border-color:var(--ease-color-primary-light);color:var(--ease-color-primary-dark)}.ease-card-success-bg{background-color:rgba(34,197,94,0.06);border-color:var(--ease-color-success-light)}.ease-card-danger-bg{background-color:rgba(239,68,68,0.06);border-color:var(--ease-color-danger-light)}.ease-card-stat{text-align:center;padding:var(--ease-space-8)}.ease-card-stat .ease-stat-value{font-size:var(--ease-text-4xl);font-weight:700;color:var(--ease-color-primary);line-height:1;margin-bottom:var(--ease-space-2)}.ease-card-stat .ease-stat-label{font-size:var(--ease-text-sm);color:var(--ease-color-muted);font-weight:500;text-transform:uppercase;letter-spacing:0.08em} +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');:root{--ease-speed-fast:150ms;--ease-speed-medium:300ms;--ease-speed-slow:600ms;--ease-ease:cubic-bezier(0.4,0,0.2,1);--ease-ease-out:cubic-bezier(0,0,0.2,1);--ease-ease-bounce:cubic-bezier(0.34,1.56,0.64,1);--ease-animation-iterations:infinite;--ease-color-primary:#6c63ff;--ease-color-primary-light:#a09af8;--ease-color-primary-dark:#4b44cc;--ease-color-success:#22c55e;--ease-color-success-light:#86efac;--ease-color-success-dark:#15803d;--ease-color-danger:#ef4444;--ease-color-danger-light:#fca5a5;--ease-color-danger-dark:#b91c1c;--ease-color-warning:#f59e0b;--ease-color-warning-light:#fcd34d;--ease-color-warning-dark:#b45309;--ease-color-info:#3b82f6;--ease-color-info-light:#93c5fd;--ease-color-info-dark:#1d4ed8;--ease-color-neutral-50:#f8fafc;--ease-color-neutral-100:#f1f5f9;--ease-color-neutral-200:#e2e8f0;--ease-color-neutral-300:#cbd5e1;--ease-color-neutral-400:#94a3b8;--ease-color-neutral-500:#64748b;--ease-color-neutral-600:#475569;--ease-color-neutral-700:#334155;--ease-color-neutral-800:#1e293b;--ease-color-neutral-900:#0f172a;--ease-color-bg:var(--ease-color-neutral-50);--ease-color-surface:#ffffff;--ease-color-text:var(--ease-color-neutral-800);--ease-color-muted:var(--ease-color-neutral-500);--ease-space-1:0.25rem;--ease-space-2:0.5rem;--ease-space-3:0.75rem;--ease-space-4:1rem;--ease-space-5:1.25rem;--ease-space-6:1.5rem;--ease-space-8:2rem;--ease-space-10:2.5rem;--ease-space-12:3rem;--ease-space-16:4rem;--ease-radius-xl:2rem;--ease-glow-primary:0 0 16px rgba(108,99,255,0.45);--ease-glow-success:0 0 16px rgba(34,197,94,0.45);--ease-glow-danger:0 0 16px rgba(239,68,68,0.45);--ease-radius-sm:0.25rem;--ease-radius-md:0.5rem;--ease-radius-lg:1rem;--ease-radius-xl:1.5rem;--ease-radius-full:9999px;--ease-shadow-sm:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.05);--ease-shadow-md:0 4px 6px -1px rgba(0,0,0,0.10),0 2px 4px -1px rgba(0,0,0,0.06);--ease-shadow-lg:0 10px 15px -3px rgba(0,0,0,0.10),0 4px 6px -2px rgba(0,0,0,0.05);--ease-shadow-xl:0 20px 25px -5px rgba(0,0,0,0.10),0 10px 10px -5px rgba(0,0,0,0.04);--ease-glow-primary:0 0 16px rgba(108,99,255,0.45);--ease-glow-success:0 0 16px rgba(34,197,94,0.45);--ease-glow-danger:0 0 16px rgba(239,68,68,0.45);--ease-glow-info:0 0 16px rgba(59,130,246,0.45);--ease-font-sans:'Inter',system-ui,-apple-system,sans-serif;--ease-font-mono:'JetBrains Mono','Fira Code',monospace;--ease-text-xs:0.75rem;--ease-text-sm:0.875rem;--ease-text-base:1rem;--ease-text-lg:1.125rem;--ease-text-xl:1.25rem;--ease-text-2xl:1.5rem;--ease-text-3xl:1.875rem;--ease-text-4xl:2.25rem;--ease-leading-tight:1.25;--ease-leading-normal:1.6;--ease-leading-loose:1.9;--ease-z-base:0;--ease-z-raised:10;--ease-z-overlay:100;--ease-z-modal:1000;--ease-z-toast:9999}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--ease-font-sans);font-size:var(--ease-text-base);line-height:var(--ease-leading-normal);color:var(--ease-color-text);background-color:var(--ease-color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:var(--ease-leading-tight);color:var(--ease-color-neutral-900)}h1{font-size:var(--ease-text-4xl)}h2{font-size:var(--ease-text-3xl)}h3{font-size:var(--ease-text-2xl)}h4{font-size:var(--ease-text-xl)}h5{font-size:var(--ease-text-lg)}h6{font-size:var(--ease-text-base)}p{margin-bottom:var(--ease-space-4);color:var(--ease-color-neutral-700)}a{color:var(--ease-color-primary);text-decoration:none;transition:color var(--ease-speed-fast) var(--ease-ease)}a:hover{color:var(--ease-color-primary-dark);text-decoration:underline}ul,ol{padding-left:var(--ease-space-6)}li{margin-bottom:var(--ease-space-1)}img,video,svg{display:block;max-width:100%}code,kbd,samp,pre{font-family:var(--ease-font-mono);font-size:var(--ease-text-sm)}code{background-color:var(--ease-color-neutral-100);color:var(--ease-color-primary-dark);padding:0.1em 0.4em;border-radius:var(--ease-radius-sm)}pre{background-color:var(--ease-color-neutral-900);color:var(--ease-color-neutral-50);padding:var(--ease-space-6);border-radius:var(--ease-radius-md);overflow-x:auto;line-height:var(--ease-leading-loose)}input,textarea,select,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border:none;background:none}hr{border:none;border-top:1px solid var(--ease-color-neutral-200);margin:var(--ease-space-8) 0}:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--ease-color-primary);outline-offset:3px;border-radius:var(--ease-radius-sm)}::selection{background-color:var(--ease-color-primary);color:#ffffff}@keyframes ease-kf-fade-in{from{opacity:0}to{opacity:1}}@keyframes ease-kf-fade-out{from{opacity:1}to{opacity:0}}@keyframes ease-kf-slide-up{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-down{from{opacity:0;transform:translateY(-24px)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-left{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-right{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-left{from{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-right{from{opacity:0;transform:translateX(32px)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-from-top{from{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-in-from-bottom{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes ease-kf-slide-in-from-left{from{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-from-right{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes ease-kf-slide-in-from-top-left{from{opacity:0;transform:translate(-100%,-100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-slide-in-from-top-right{from{opacity:0;transform:translate(100%,-100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-slide-in-from-bottom-left{from{opacity:0;transform:translate(-100%,100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-slide-in-from-bottom-right{from{opacity:0;transform:translate(100%,100%)}to{opacity:1;transform:translate(0,0)}}@keyframes ease-kf-bounce{0%,100%{transform:translateY(0);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:translateY(-20px);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes ease-kf-squish-border{0%{border-radius:12px;transform:scaleX(1)}50%{border-radius:24px;transform:scaleX(0.88)}100%{border-radius:6px;transform:scaleX(1)}}@keyframes ease-kf-pulse{0%,100%{opacity:1}50%{opacity:0.45}}@keyframes ease-kf-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes ease-kf-ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ease-kf-shake{0%,100%{transform:translateX(0)}10%,50%,90%{transform:translateX(-6px)}30%,70%{transform:translateX(6px)}}@keyframes ease-kf-zoom-in{from{opacity:0;transform:scale(0.85)}to{opacity:1;transform:scale(1)}}@keyframes ease-kf-flip{from{transform:perspective(400px) rotateY(90deg);opacity:0}to{transform:perspective(400px) rotateY(0deg);opacity:1}}@keyframes ease-kf-shimmer{0%{background-position:-1000px 0}100%{background-position:1000px 0}}@keyframes ease-kf-pulse-fade{0%,100%{opacity:1}50%{opacity:0.45}}@keyframes ease-kf-typewriter-loop{0%{width:0}40%{width:var(--ease-typewriter-length,12ch)}60%{width:var(--ease-typewriter-length,12ch)}100%{width:0}}@keyframes ease-kf-cursor-blink{0%,49%{border-right-color:currentColor}50%,100%{border-right-color:transparent}}@keyframes ease-kf-blur-to-focus{from{filter:blur(12px);opacity:0}to{filter:blur(0px);opacity:1}}@keyframes ease-kf-contract-bg-exit{from{transform:scale(1);opacity:1}to{transform:scale(0.85);opacity:0}}@keyframes ease-kf-contract-image-entrance{from{opacity:0;transform:scale(1.25)}to{opacity:1;transform:scale(1)}}@keyframes ease-kf-bounce-text{0%,100%{transform:translateY(0) scale(1)}30%{transform:translateY(-6px) scale(1.08)}60%{transform:translateY(2px) scale(0.98)}}@keyframes ease-kf-shake-card-exit{0%{transform:translateX(0) rotate(0deg);opacity:1}20%{transform:translateX(-8px) rotate(-2deg)}40%{transform:translateX(8px) rotate(2deg)}60%{transform:translateX(-6px) rotate(-1deg)}80%{transform:translateX(6px) rotate(1deg)}100%{transform:translateX(0) rotate(0deg);opacity:0}}@keyframes ease-kf-bounce-button-exit{0%{transform:scale(1);opacity:1}20%{transform:scale(1.15)}40%{transform:scale(0.90)}60%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(0);opacity:0}}@keyframes ease-kf-expand-border-exit{0%{opacity:1;transform:scale(1);border-width:2px}100%{opacity:0;transform:scale(1.15);border-width:6px}}@keyframes ease-kf-fade-icon-exit{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.75)}}@keyframes ease-kf-scale-text-exit{from{transform:scale(1);opacity:1}to{transform:scale(0.6);opacity:0}}@keyframes ease-kf-glow-shadow-exit{from{box-shadow:0 0 12px 4px rgba(99,102,241,0.6);opacity:1}to{box-shadow:0 0 0px 0px rgba(99,102,241,0);opacity:0}}@keyframes ease-kf-pulse-border-emphasis{0%,100%{box-shadow:0 0 0 0px rgba(99,102,241,0.6);border-color:rgba(99,102,241,1)}50%{box-shadow:0 0 0 6px rgba(99,102,241,0);border-color:rgba(99,102,241,0.4)}}@keyframes ease-kf-squish-button{0%{transform:scale(1)}35%{transform:scaleX(1.12) scaleY(0.88)}70%{transform:scaleX(0.96) scaleY(1.06)}100%{transform:scale(1)}}@keyframes ease-kf-shimmer-sweep{0%{background-position:-200% center}100%{background-position:200% center}}@keyframes ease-kf-gradient-rotation{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}@keyframes ease-kf-contract-shadow-emphasis{0%{box-shadow:0 8px 24px rgba(0,0,0,0.3);transform:scale(1)}50%{box-shadow:0 2px 6px rgba(0,0,0,0.15);transform:scale(0.96)}100%{box-shadow:0 8px 24px rgba(0,0,0,0.3);transform:scale(1)}}@keyframes ease-kf-rotate-image-exit{from{transform:rotate(0deg) scale(1);opacity:1}to{transform:rotate(90deg) scale(0.75);opacity:0}}@keyframes ease-kf-slide-image-exit{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@keyframes ease-kf-morph-card{from{border-radius:8px}to{border-radius:50%}}@keyframes ease-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes ease-zoom-in{from{transform:scale(0)}to{transform:scale(1)}}@keyframes ease-zoom-out{from{transform:scale(1.5)}to{transform:scale(1)}}@keyframes ease-bounce-in{@keyframes ease-kf-shimmer-sweep{0%{opacity:0;transform:scale(0.3)}50%{opacity:1;transform:scale(1.1)}70%{transform:scale(0.95)}100%{background-position:200% center}}.ease-zoom-in{animation:ease-kf-zoom-in var(--ease-speed-medium) var(--ease-ease-bounce) both}.ease-zoom-out{animation:ease-zoom-out 0.6s ease-out forwards}.ease-float{animation:ease-float 3s ease-in-out infinite}.ease-bounce-in{animation:ease-bounce-in 0.8s ease-out forwards}.ease-shake-card-exit{animation:ease-kf-shake-card-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-bounce-button-exit{animation:ease-kf-bounce-button-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-fade-icon-exit{animation:ease-kf-fade-icon-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-scale-text-exit{animation:ease-kf-scale-text-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-glow-shadow-exit{animation:ease-kf-glow-shadow-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-pulse-border-emphasis{animation:ease-kf-pulse-border-emphasis 1.5s var(--ease-ease);animation-iteration-count:var(--ease-animation-iterations)}.ease-slide-image-exit{animation:ease-kf-slide-image-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-hover-bounce-text{display:inline-block}.ease-hover-bounce-text:hover{animation:ease-kf-bounce-text var(--ease-speed-medium) var(--ease-ease-bounce)}.ease-squish-button:hover,.ease-squish-button:focus-visible,.ease-squish-button:active{animation:ease-kf-squish-button var(--ease-speed-medium) var(--ease-ease) both}.ease-shimmer-sweep{background:linear-gradient( 120deg,transparent 30%,rgba(255,255,255,0.15) 50%,transparent 70% );background-size:200% auto;animation:ease-kf-shimmer-sweep var(--ease-speed-slow) var(--ease-ease);animation-iteration-count:var(--ease-animation-iterations)}.ease-squish-button:hover,.ease-squish-button:focus-visible,.ease-squish-button:active{animation:ease-kf-squish-button var(--ease-speed-medium) var(--ease-ease) both}.ease-gradient-rotation{background:linear-gradient(270deg,var(--ease-color-primary),var(--ease-color-secondary,#8b5cf6),var(--ease-color-primary) );background-size:200% 200%;animation:ease-kf-gradient-rotation 3s var(--ease-ease);animation-iteration-count:var(--ease-animation-iterations)}.ease-contract-shadow-emphasis{animation:ease-kf-contract-shadow-emphasis var(--ease-speed-medium) var(--ease-ease) both}.ease-rotate-image-exit{animation:ease-kf-rotate-image-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-skeleton-shimmer{background:var(--ease-color-neutral-100);background-image:linear-gradient( 90deg,var(--ease-color-neutral-100) 0px,var(--ease-color-neutral-200) 40px,var(--ease-color-neutral-100) 80px );background-size:1000px 100%;animation:ease-kf-shimmer 2s linear forwards;animation-iteration-count:var(--ease-animation-iterations)}.ease-skeleton-pulse{background-color:var(--ease-color-neutral-200);animation:ease-kf-pulse-fade 1.5s var(--ease-ease);animation-iteration-count:var(--ease-animation-iterations)}.ease-skeleton-block{border-radius:var(--ease-radius-md);display:block}.ease-fade-in{animation:ease-kf-fade-in var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-up:not(.ease-slide-down){animation:ease-kf-slide-up var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-down:not(.ease-slide-up){animation:ease-kf-slide-down var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-left:not(.ease-slide-right){animation:ease-kf-slide-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-right:not(.ease-slide-left){animation:ease-kf-slide-right var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-left{animation:ease-kf-slide-in-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-right{animation:ease-kf-slide-in-right var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-top{animation:ease-kf-slide-in-from-top var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-bottom{animation:ease-kf-slide-in-from-bottom var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-left{animation:ease-kf-slide-in-from-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-right{animation:ease-kf-slide-in-from-right var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-top-left{animation:ease-kf-slide-in-from-top-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-top-right{animation:ease-kf-slide-in-from-top-right var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-bottom-left{animation:ease-kf-slide-in-from-bottom-left var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-in-from-bottom-right{animation:ease-kf-slide-in-from-bottom-right var(--ease-speed-medium) var(--ease-ease) both}.ease-flip{animation:ease-kf-flip var(--ease-speed-medium) var(--ease-ease) both}.ease-blur-to-focus{animation:ease-kf-blur-to-focus var(--ease-speed-medium) var(--ease-ease) both}.ease-contract-image-entrance{animation:ease-kf-contract-image-entrance var(--ease-speed-medium) var(--ease-ease) both}.ease-bounce-in{animation:ease-bounce-in 0.8s ease-out forwards}.ease-fade-out{animation:ease-kf-fade-out var(--ease-speed-medium) var(--ease-ease) both}.ease-shake-card-exit{animation:ease-kf-shake-card-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-bounce-button-exit{animation:ease-kf-bounce-button-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-fade-icon-exit{animation:ease-kf-fade-icon-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-scale-text-exit{animation:ease-kf-scale-text-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-glow-shadow-exit{animation:ease-kf-glow-shadow-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-slide-image-exit{animation:ease-kf-slide-image-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-rotate-image-exit{animation:ease-kf-rotate-image-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-expand-border-exit{animation:ease-kf-expand-border-exit var(--ease-speed-medium) var(--ease-ease) forwards}.ease-contract-bg-exit{animation:ease-kf-contract-bg-exit var(--ease-speed-medium) var(--ease-ease) both}.ease-zoom-out{animation:ease-zoom-out 0.6s ease-out forwards}.ease-skeleton-pulse{background-color:var(--ease-color-neutral-200);animation:ease-kf-pulse-fade 1.5s var(--ease-ease) infinite}.ease-bounce{animation:ease-kf-bounce 1s;animation-iteration-count:var(--ease-animation-iterations)}.ease-rotate{animation:ease-kf-rotate 1.2s linear;animation-iteration-count:var(--ease-animation-iterations)}.ease-pulse{animation:ease-kf-pulse 2s var(--ease-ease);animation-iteration-count:var(--ease-animation-iterations)}.ease-ping{animation:ease-kf-ping 1s cubic-bezier(0,0,0.2,1);animation-iteration-count:var(--ease-animation-iterations)}.ease-shake{animation:ease-kf-shake 0.5s var(--ease-ease) both}.ease-typewriter-loop{--ease-typewriter-length:12ch;--ease-typewriter-duration:6s;display:inline-block;overflow:hidden;white-space:nowrap;width:0;max-width:fit-content;border-right:2px solid currentColor;--ease-typewriter-steps:12;animation:ease-kf-typewriter-loop var(--ease-typewriter-duration) steps(var(--ease-typewriter-steps),end),ease-kf-cursor-blink 0.8s step-end;animation-iteration-count:var(--ease-animation-iterations);will-change:width}.ease-pulse-border-emphasis{animation:ease-kf-pulse-border-emphasis 1.5s var(--ease-ease) infinite}.ease-shimmer-sweep{background:linear-gradient( 120deg,transparent 30%,rgba(255,255,255,0.15) 50%,transparent 70% );background-size:200% auto;animation:ease-kf-shimmer-sweep var(--ease-speed-slow) var(--ease-ease) infinite}.ease-gradient-rotation{background:linear-gradient(270deg,var(--ease-color-primary),var(--ease-color-secondary,#8b5cf6),var(--ease-color-primary) );background-size:200% 200%;animation:ease-kf-gradient-rotation 3s var(--ease-ease) infinite}.ease-float{animation:ease-float 3s ease-in-out infinite}.ease-hover-grow{transition:transform var(--ease-speed-medium) var(--ease-ease-bounce);will-change:transform}.ease-hover-grow:hover{transform:scale(1.06)}.ease-hover-lift-shadow{transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease);will-change:transform,box-shadow}.ease-hover-lift-shadow:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(0,0,0,0.15),0 4px 12px rgba(0,0,0,0.1)}.ease-hover-shrink{transition:transform var(--ease-speed-fast) var(--ease-ease);will-change:transform}.ease-hover-shrink:hover{transform:scale(0.95)}.ease-hover-glow{transition:box-shadow var(--ease-speed-medium) var(--ease-ease)}.ease-hover-glow:hover{box-shadow:var(--ease-glow-primary)}.ease-hover-lift{transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease)}.ease-hover-lift:hover{transform:translateY(-4px);box-shadow:var(--ease-shadow-xl)}.ease-hover-underline{position:relative}.ease-hover-underline::after{content:'';position:absolute;left:0;bottom:-2px;width:0;height:2px;background-color:var(--ease-color-primary);transition:width var(--ease-speed-medium) var(--ease-ease)}.ease-hover-underline:hover::after{width:100%}.ease-card-lift{transition:transform var(--ease-speed-medium) var(--ease-ease-out),box-shadow var(--ease-speed-medium) var(--ease-ease-out);will-change:transform,box-shadow}.ease-card-lift:hover{transform:translateY(-8px);box-shadow:var(--ease-shadow-xl)}.ease-hover-shimmer{position:relative;overflow:hidden}.ease-hover-shimmer::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient( 120deg,transparent 0%,rgba(255,255,255,0.08) 50%,transparent 100% );transition:left var(--ease-speed-slow) var(--ease-ease);pointer-events:none}.ease-hover-shimmer:hover::before{left:150%}.ease-hover-squish-border{display:inline-block;transition:border-radius var(--ease-speed-medium) var(--ease-ease),transform var(--ease-speed-medium) var(--ease-ease)}.ease-hover-squish-border:hover{animation:ease-kf-squish-border var(--ease-speed-medium) var(--ease-ease-bounce)}.ease-hover-morph-card{border-radius:0;transition:border-radius var(--ease-speed-medium) var(--ease-ease),transform var(--ease-speed-medium) var(--ease-ease);will-change:border-radius,transform}.ease-hover-morph-card:hover{border-radius:50%;transform:scale(1.08)}.ease-hover-bounce-text{display:inline-block}.ease-hover-bounce-text:hover{animation:ease-kf-bounce-text var(--ease-speed-medium) var(--ease-ease-bounce)}.ease-squish-button:hover,.ease-squish-button:focus-visible,.ease-squish-button:active{animation:ease-kf-squish-button var(--ease-speed-medium) var(--ease-ease) both}.ease-contract-shadow-emphasis{animation:ease-kf-contract-shadow-emphasis var(--ease-speed-medium) var(--ease-ease) both}.ease-delay-75{animation-delay:75ms}.ease-delay-100{animation-delay:100ms}.ease-delay-150{animation-delay:150ms}.ease-delay-200{animation-delay:200ms}.ease-delay-300{animation-delay:300ms}.ease-delay-400{animation-delay:400ms}.ease-delay-500{animation-delay:500ms}.ease-delay-600{animation-delay:600ms}.ease-delay-700{animation-delay:700ms}.ease-delay-800{animation-delay:800ms}.ease-delay-1000{animation-delay:1000ms}.ease-duration-fast{animation-duration:var(--ease-speed-fast)}.ease-duration-medium{animation-duration:var(--ease-speed-medium)}.ease-duration-slow{animation-duration:var(--ease-speed-slow)}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}.ease-block{display:block}.ease-inline{display:inline}.ease-inline-block{display:inline-block}.ease-hidden{display:none}.ease-flex{display:flex}.ease-inline-flex{display:inline-flex}.ease-center{display:flex;align-items:center;justify-content:center}.ease-flex-col{flex-direction:column}.ease-flex-row{flex-direction:row}.ease-flex-wrap{flex-wrap:wrap}.ease-flex-nowrap{flex-wrap:nowrap}.ease-items-start{align-items:flex-start}.ease-items-center{align-items:center}.ease-items-end{align-items:flex-end}.ease-items-stretch{align-items:stretch}.ease-justify-start{justify-content:flex-start}.ease-justify-center{justify-content:center}.ease-justify-end{justify-content:flex-end}.ease-justify-between{justify-content:space-between}.ease-justify-around{justify-content:space-around}.ease-justify-evenly{justify-content:space-evenly}.ease-flex-1{flex:1 1 0%}.ease-flex-auto{flex:1 1 auto}.ease-flex-none{flex:none}.ease-grow{flex-grow:1}.ease-shrink{flex-shrink:1}.ease-grid{display:grid}.ease-inline-grid{display:inline-grid}.ease-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.ease-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ease-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ease-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ease-grid-auto{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ease-col-span-2{grid-column:span 2 / span 2}.ease-col-span-3{grid-column:span 3 / span 3}.ease-col-full{grid-column:1 / -1}.ease-gap-1{gap:var(--ease-space-1)}.ease-gap-2{gap:var(--ease-space-2)}.ease-gap-3{gap:var(--ease-space-3)}.ease-gap{gap:var(--ease-space-4)}.ease-gap-4{gap:var(--ease-space-4)}.ease-gap-6{gap:var(--ease-space-6)}.ease-gap-8{gap:var(--ease-space-8)}.ease-gap-10{gap:var(--ease-space-10)}.ease-padding{padding:var(--ease-space-4)}.ease-padding-1{padding:var(--ease-space-1)}.ease-padding-2{padding:var(--ease-space-2)}.ease-padding-3{padding:var(--ease-space-3)}.ease-padding-4{padding:var(--ease-space-4)}.ease-padding-6{padding:var(--ease-space-6)}.ease-padding-8{padding:var(--ease-space-8)}.ease-padding-10{padding:var(--ease-space-10)}.ease-padding-12{padding:var(--ease-space-12)}.ease-pt-4{padding-top:var(--ease-space-4)}.ease-pr-4{padding-right:var(--ease-space-4)}.ease-pb-4{padding-bottom:var(--ease-space-4)}.ease-pl-4{padding-left:var(--ease-space-4)}.ease-px-4{padding-left:var(--ease-space-4);padding-right:var(--ease-space-4)}.ease-py-4{padding-top:var(--ease-space-4);padding-bottom:var(--ease-space-4)}.ease-px-8{padding-left:var(--ease-space-8);padding-right:var(--ease-space-8)}.ease-py-8{padding-top:var(--ease-space-8);padding-bottom:var(--ease-space-8)}.ease-margin{margin:var(--ease-space-4)}.ease-margin-1{margin:var(--ease-space-1)}.ease-margin-2{margin:var(--ease-space-2)}.ease-margin-3{margin:var(--ease-space-3)}.ease-margin-4{margin:var(--ease-space-4)}.ease-margin-6{margin:var(--ease-space-6)}.ease-margin-8{margin:var(--ease-space-8)}.ease-margin-auto{margin:auto}.ease-mx-auto{margin-left:auto;margin-right:auto}.ease-my-4{margin-top:var(--ease-space-4);margin-bottom:var(--ease-space-4)}.ease-my-8{margin-top:var(--ease-space-8);margin-bottom:var(--ease-space-8)}.ease-mt-4{margin-top:var(--ease-space-4)}.ease-mr-4{margin-right:var(--ease-space-4)}.ease-mb-4{margin-bottom:var(--ease-space-4)}.ease-ml-4{margin-left:var(--ease-space-4)}.ease-w-full{width:100%}.ease-w-screen{width:100vw}.ease-w-auto{width:auto}.ease-h-full{height:100%}.ease-h-screen{height:100vh}.ease-h-auto{height:auto}.ease-container{width:100%;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:var(--ease-space-6);padding-right:var(--ease-space-6)}.ease-relative{position:relative}.ease-absolute{position:absolute}.ease-fixed{position:fixed}.ease-sticky{position:sticky;top:0}.ease-overflow-hidden{overflow:hidden}.ease-overflow-auto{overflow:auto}.ease-overflow-scroll{overflow:scroll}.ease-overflow-x-auto{overflow-x:auto}.ease-overflow-y-auto{overflow-y:auto}.ease-text-xs{font-size:var(--ease-text-xs)}.ease-text-sm{font-size:var(--ease-text-sm)}.ease-text-base{font-size:var(--ease-text-base)}.ease-text-lg{font-size:var(--ease-text-lg)}.ease-text-xl{font-size:var(--ease-text-xl)}.ease-text-2xl{font-size:var(--ease-text-2xl)}.ease-text-3xl{font-size:var(--ease-text-3xl)}.ease-text-4xl{font-size:var(--ease-text-4xl)}.ease-text-left{text-align:left}.ease-text-center{text-align:center}.ease-text-right{text-align:right}.ease-font-light{font-weight:300}.ease-font-regular{font-weight:400}.ease-font-medium{font-weight:500}.ease-font-semibold{font-weight:600}.ease-font-bold{font-weight:700}.ease-uppercase{text-transform:uppercase}.ease-lowercase{text-transform:lowercase}.ease-capitalize{text-transform:capitalize}.ease-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ease-text-primary{color:var(--ease-color-primary)}.ease-text-success{color:var(--ease-color-success)}.ease-text-danger{color:var(--ease-color-danger)}.ease-text-warning{color:var(--ease-color-warning)}.ease-text-muted{color:var(--ease-color-muted)}.ease-text-white{color:#ffffff}.ease-bg-primary{background-color:var(--ease-color-primary)}.ease-bg-success{background-color:var(--ease-color-success)}.ease-bg-danger{background-color:var(--ease-color-danger)}.ease-bg-warning{background-color:var(--ease-color-warning)}.ease-bg-white{background-color:#ffffff}.ease-bg-surface{background-color:var(--ease-color-surface)}.ease-bg-neutral{background-color:var(--ease-color-neutral-100)}.ease-bg-center{background-position:center}.ease-bg-top{background-position:top}.ease-bg-bottom{background-position:bottom}.ease-bg-left{background-position:left}.ease-bg-right{background-position:right}.ease-border{border:1px solid var(--ease-color-neutral-200)}.ease-border-2{border:2px solid var(--ease-color-neutral-200)}.ease-border-primary{border-color:var(--ease-color-primary)}.ease-rounded-sm{border-radius:var(--ease-radius-sm)}.ease-rounded{border-radius:var(--ease-radius-md)}.ease-rounded-lg{border-radius:var(--ease-radius-lg)}.ease-rounded-xl{border-radius:var(--ease-radius-xl)}.ease-rounded-full{border-radius:var(--ease-radius-full)}.ease-shadow-sm{box-shadow:var(--ease-shadow-sm)}.ease-shadow{box-shadow:var(--ease-shadow-md)}.ease-shadow-lg{box-shadow:var(--ease-shadow-lg)}.ease-shadow-xl{box-shadow:var(--ease-shadow-xl)}.ease-shadow-none{box-shadow:none}.ease-opacity-0{opacity:0}.ease-opacity-25{opacity:0.25}.ease-opacity-50{opacity:0.50}.ease-opacity-75{opacity:0.75}.ease-opacity-100{opacity:1}.ease-cursor-pointer{cursor:pointer}.ease-cursor-default{cursor:default}.ease-cursor-not-allowed{cursor:not-allowed}@media (max-width:768px){.ease-sm-hidden{display:none}.ease-sm-full{width:100%}.ease-sm-flex-col{flex-direction:column}.ease-sm-grid-cols-1{grid-template-columns:1fr}.ease-sm-text-center{text-align:center}}@media (min-width:769px) and (max-width:1024px){.ease-md-hidden{display:none}.ease-md-block{display:block}.ease-md-flex{display:flex}.ease-md-full{width:100%}.ease-md-w-auto{width:auto}.ease-md-flex-col{flex-direction:column}.ease-md-flex-row{flex-direction:row}.ease-md-grid-cols-1{grid-template-columns:1fr}.ease-md-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ease-md-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ease-md-text-left{text-align:left}.ease-md-text-center{text-align:center}.ease-md-text-right{text-align:right}.ease-md-gap-4{gap:var(--ease-space-4)}.ease-md-gap-6{gap:var(--ease-space-6)}.ease-md-gap-8{gap:var(--ease-space-8)}.ease-md-padding-4{padding:var(--ease-space-4)}.ease-md-padding-6{padding:var(--ease-space-6)}.ease-md-padding-8{padding:var(--ease-space-8)}.ease-md-px-4{padding-left:var(--ease-space-4);padding-right:var(--ease-space-4)}.ease-md-py-4{padding-top:var(--ease-space-4);padding-bottom:var(--ease-space-4)}.ease-md-px-8{padding-left:var(--ease-space-8);padding-right:var(--ease-space-8)}.ease-md-py-8{padding-top:var(--ease-space-8);padding-bottom:var(--ease-space-8)}.ease-md-text-sm{font-size:var(--ease-text-sm)}.ease-md-text-base{font-size:var(--ease-text-base)}.ease-md-text-lg{font-size:var(--ease-text-lg)}.ease-md-text-xl{font-size:var(--ease-text-xl)}.ease-md-text-2xl{font-size:var(--ease-text-2xl)}}.ease-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ease-space-2);padding:var(--ease-space-3) var(--ease-space-6);font-family:var(--ease-font-sans);font-size:var(--ease-text-sm);font-weight:600;letter-spacing:0.02em;line-height:1;white-space:nowrap;border:2px solid transparent;border-radius:var(--ease-radius-md);cursor:pointer;user-select:none;text-decoration:none;transition:background-color var(--ease-speed-fast) var(--ease-ease),color var(--ease-speed-fast) var(--ease-ease),border-color var(--ease-speed-fast) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease),transform var(--ease-speed-fast) var(--ease-ease-bounce)}.ease-btn:active{transform:scale(0.97)}.ease-btn:focus-visible{outline:2px solid var(--ease-color-primary);outline-offset:3px}.ease-btn-primary{background-color:var(--ease-color-primary);color:#ffffff;border-color:var(--ease-color-primary)}.ease-btn-primary:hover{background-color:var(--ease-color-primary-dark);border-color:var(--ease-color-primary-dark);box-shadow:var(--ease-glow-primary)}.ease-btn-success{background-color:var(--ease-color-success);color:#ffffff;border-color:var(--ease-color-success)}.ease-btn-success:hover{background-color:var(--ease-color-success-dark);border-color:var(--ease-color-success-dark);box-shadow:var(--ease-glow-success)}.ease-btn-danger{background-color:var(--ease-color-danger);color:#ffffff;border-color:var(--ease-color-danger)}.ease-btn-danger:hover{background-color:var(--ease-color-danger-dark);border-color:var(--ease-color-danger-dark);box-shadow:var(--ease-glow-danger)}.ease-btn-outline{background-color:transparent;color:var(--ease-color-primary);border-color:var(--ease-color-primary)}.ease-btn-outline:hover{background-color:var(--ease-color-primary);color:#ffffff}.ease-btn-ghost{background-color:transparent;color:var(--ease-color-neutral-700);border-color:transparent}.ease-btn-ghost:hover{background-color:var(--ease-color-neutral-100);color:var(--ease-color-neutral-900)}.ease-btn-link{background:none;border:none;color:var(--ease-color-primary);padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:3px}.ease-btn-link:hover{color:var(--ease-color-primary-dark);text-decoration:none}.ease-btn-sm{padding:var(--ease-space-2) var(--ease-space-4);font-size:var(--ease-text-xs);border-radius:var(--ease-radius-sm)}.ease-btn-lg{padding:var(--ease-space-4) var(--ease-space-8);font-size:var(--ease-text-base);border-radius:var(--ease-radius-lg)}.ease-btn-xl{padding:var(--ease-space-5) var(--ease-space-10);font-size:var(--ease-text-lg);border-radius:var(--ease-radius-lg)}.ease-btn-block{width:100%}.ease-btn-pill{border-radius:var(--ease-radius-full)}.ease-btn-icon{padding:var(--ease-space-3);border-radius:var(--ease-radius-md)}.ease-btn:disabled,.ease-btn[disabled],.ease-btn-disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.ease-btn-loading{pointer-events:none;position:relative}.ease-btn-loading::after{content:'';display:inline-block;width:0.85em;height:0.85em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:ease-kf-rotate 0.7s linear infinite;margin-left:var(--ease-space-2)}.ease-btn-hover{transition:transform var(--ease-speed-medium) var(--ease-ease-bounce),box-shadow var(--ease-speed-medium) var(--ease-ease),background-color var(--ease-speed-fast) var(--ease-ease),border-color var(--ease-speed-fast) var(--ease-ease)}.ease-btn-hover:hover{transform:translateY(-3px);box-shadow:var(--ease-shadow-lg),var(--ease-glow-primary)}.ease-btn-group{display:inline-flex}.ease-btn-group .ease-btn{border-radius:0}.ease-btn-group .ease-btn:not(:last-child){margin-right:-2px}.ease-btn-group .ease-btn:hover,.ease-btn-group .ease-btn:focus-visible,.ease-btn-group .ease-btn:active{z-index:1}.ease-btn-group .ease-btn-pill:first-child{border-radius:var(--ease-radius-full) 0 0 var(--ease-radius-full)}.ease-btn-group .ease-btn-pill:last-child{border-radius:0 var(--ease-radius-full) var(--ease-radius-full) 0}.ease-btn-group .ease-btn-lg:first-child{border-radius:var(--ease-radius-lg) 0 0 var(--ease-radius-lg)}.ease-btn-group .ease-btn-lg:last-child{border-radius:0 var(--ease-radius-lg) var(--ease-radius-lg) 0}.ease-btn-group .ease-btn-xl:first-child{border-radius:var(--ease-radius-lg) 0 0 var(--ease-radius-lg)}.ease-btn-group .ease-btn-xl:last-child{border-radius:0 var(--ease-radius-lg) var(--ease-radius-lg) 0}.ease-btn-group .ease-btn-sm:first-child{border-radius:var(--ease-radius-sm) 0 0 var(--ease-radius-sm)}.ease-btn-group .ease-btn-sm:last-child{border-radius:0 var(--ease-radius-sm) var(--ease-radius-sm) 0}.ease-btn-group .ease-btn:first-child:not(.ease-btn-pill):not(.ease-btn-lg):not(.ease-btn-xl):not(.ease-btn-sm){border-radius:var(--ease-radius-md) 0 0 var(--ease-radius-md)}.ease-btn-group .ease-btn:last-child:not(.ease-btn-pill):not(.ease-btn-lg):not(.ease-btn-xl):not(.ease-btn-sm){border-radius:0 var(--ease-radius-md) var(--ease-radius-md) 0}@media (prefers-reduced-motion:reduce){.ease-btn,.ease-btn-hover,.ease-btn-loading::after{transition:none !important;animation:none !important}.ease-btn:active,.ease-btn-hover:hover{transform:none !important}}.ease-card{background-color:var(--ease-color-surface);border:1px solid var(--ease-color-neutral-200);border-radius:var(--ease-radius-lg);padding:var(--ease-space-6);overflow:hidden;position:relative}.ease-card-header{padding-bottom:var(--ease-space-4);margin-bottom:var(--ease-space-4);border-bottom:1px solid var(--ease-color-neutral-100)}.ease-card-body{flex:1}.ease-card-footer{padding-top:var(--ease-space-4);margin-top:var(--ease-space-4);border-top:1px solid var(--ease-color-neutral-100);display:flex;align-items:center;gap:var(--ease-space-3)}.ease-card-title{font-size:var(--ease-text-2xl);font-weight:700;color:var(--ease-color-neutral-900);margin-bottom:var(--ease-space-1);line-height:var(--ease-leading-tight)}.ease-card-subtitle{font-size:var(--ease-text-sm);color:var(--ease-color-muted);font-weight:400}.ease-card-body p:last-child{margin-bottom:0}.ease-card-shadow{box-shadow:var(--ease-shadow-lg);border-color:transparent}.ease-card-hover{cursor:pointer;transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease),border-color var(--ease-speed-medium) var(--ease-ease);will-change:transform,box-shadow}.ease-card-hover:hover{transform:translateY(-6px);box-shadow:var(--ease-shadow-xl);border-color:var(--ease-color-primary-light)}.ease-card-glow{transition:box-shadow var(--ease-speed-medium) var(--ease-ease),border-color var(--ease-speed-medium) var(--ease-ease)}.ease-card-glow:hover{box-shadow:var(--ease-glow-primary),var(--ease-shadow-lg);border-color:var(--ease-color-primary-light)}.ease-card-flat{border-color:transparent;background-color:var(--ease-color-neutral-100)}.ease-card-outlined{background-color:transparent;border:2px solid var(--ease-color-neutral-200)}.ease-card-glass{background:rgba(255,255,255,0.12);border:1px solid rgba(255,255,255,0.2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#ffffff}.ease-card-accent{border-left:4px solid var(--ease-color-primary)}.ease-card-accent-success{border-left:4px solid var(--ease-color-success)}.ease-card-accent-danger{border-left:4px solid var(--ease-color-danger)}.ease-card-accent-warning{border-left:4px solid var(--ease-color-warning)}.ease-card-image{padding:0}.ease-card-image .ease-card-img{width:100%;height:200px;object-fit:cover;display:block;border-radius:var(--ease-radius-lg) var(--ease-radius-lg) 0 0}.ease-card-image .ease-card-body{padding:var(--ease-space-6)}.ease-card-compact{padding:var(--ease-space-4)}.ease-card-horizontal{display:flex;flex-direction:row;gap:var(--ease-space-4);align-items:flex-start;padding:var(--ease-space-4)}.ease-card-info{background-color:rgba(108,99,255,0.06);border-color:var(--ease-color-primary-light);color:var(--ease-color-primary-dark)}.ease-card-success-bg{background-color:rgba(34,197,94,0.06);border-color:var(--ease-color-success-light)}.ease-card-danger-bg{background-color:rgba(239,68,68,0.06);border-color:var(--ease-color-danger-light)}.ease-card-stat{text-align:center;padding:var(--ease-space-8)}.ease-card-stat .ease-stat-value{font-size:var(--ease-text-4xl);font-weight:700;color:var(--ease-color-primary);line-height:1;margin-bottom:var(--ease-space-2)}.ease-card-stat .ease-stat-label{font-size:var(--ease-text-sm);color:var(--ease-color-muted);font-weight:500;text-transform:uppercase;letter-spacing:0.08em} diff --git a/examples/demo.html b/examples/demo.html index 3df4b4ed..2848903e 100644 --- a/examples/demo.html +++ b/examples/demo.html @@ -323,11 +323,36 @@
- A pure CSS 3D depth interaction. Hover over any corner of a card - to see perspective, rotation, and layered translateZ in action — - no JavaScript, no libraries. -
-- A component system built for scale — tokens, patterns, - and documentation in one place. -
- - - - - -- A zero-dependency graph database written in Rust, - optimised for edge environments. -
- - - - - -Hover over a card corner to tilt
- -- A premium, slide-in toast component supporting themed color accents, stacking spacing, and pure CSS auto-dismiss animations. -
-- Click the buttons below to spawn styled alerts. They will slide in from the top-right corner and auto-dismiss after 3 seconds. -
- -- Trigger multiple toasts to verify vertical stacking. When a toast is dismissed, the lower items slide up automatically. -
- - - - -- To manage mounting and cleanup of toasts in standard web applications, developers can use a simple helper like the one below: -
- -
-function showToast(message, type = 'info') {
- // Find or create container
- let container = document.querySelector('.ease-toast-container');
- if (!container) {
- container = document.createElement('div');
- container.className = 'ease-toast-container';
- document.body.appendChild(container);
- }
-
- // Create toast element
- const toast = document.createElement('div');
- toast.className = `ease-toast ease-toast-${type}`;
- toast.innerHTML = `<span>\${message}</span>`;
-
- // Mount
- container.appendChild(toast);
-
- // Auto-remove element from DOM after the exit animation completes (3.7s)
- setTimeout(() => {
- toast.remove();
- }, 3700);
-}
-