From 3e46f297d35236be488ac4209535ffbb5fbc0123 Mon Sep 17 00:00:00 2001 From: codedbydollys10 Date: Thu, 4 Jun 2026 18:15:54 +0530 Subject: [PATCH 1/5] feat: add glass navbar component --- README.md | 33 ++++++++++++++ components/navbar.css | 100 ++++++++++++++++++++++++++++++++++++++++++ easemotion.css | 1 + easemotion.min.css | 2 +- examples/demo.html | 80 +++++++++++++++++++++++++++++++++ 5 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 components/navbar.css diff --git a/README.md b/README.md index b752dbfd..3e72ef6f 100644 --- a/README.md +++ b/README.md @@ -314,6 +314,39 @@ Applies a quick squish animation during hover, focus, and active interactions.
Highlighted card
``` +### Navigation + +```html + +``` + +```html + +``` + +```html + +``` + ### Build a Hero Section in 5 Lines ```html diff --git a/components/navbar.css b/components/navbar.css new file mode 100644 index 00000000..9ec29154 --- /dev/null +++ b/components/navbar.css @@ -0,0 +1,100 @@ +/* ============================================================ + EaseMotion CSS — navbar.css + Reusable glass navbar component styles + ============================================================ */ + +.ease-navbar-glass { + display: flex; + align-items: center; + justify-content: space-between; + flex-wrap: wrap; + gap: var(--ease-space-4); + padding: var(--ease-space-4) var(--ease-space-6); + min-height: 4rem; + width: 100%; + background: rgba(255, 255, 255, 0.18); + border: 1px solid rgba(255, 255, 255, 0.24); + border-radius: var(--ease-radius-xl); + box-shadow: var(--ease-shadow-md); + color: var(--ease-color-neutral-900); + backdrop-filter: blur(var(--ease-navbar-glass-blur, 16px)); + -webkit-backdrop-filter: blur(var(--ease-navbar-glass-blur, 16px)); + transition: + background-color var(--ease-speed-medium) var(--ease-ease), + border-color var(--ease-speed-medium) var(--ease-ease), + box-shadow var(--ease-speed-medium) var(--ease-ease); +} + +.ease-navbar-glass > * { + z-index: 1; +} + +.ease-navbar-glass a, +.ease-navbar-glass button { + color: inherit; +} + +.ease-navbar-glass .ease-navbar-brand { + font-weight: 700; + letter-spacing: -0.02em; +} + +.ease-navbar-glass .ease-navbar-menu { + display: flex; + flex-wrap: wrap; + gap: var(--ease-space-4); + align-items: center; + justify-content: flex-end; +} + +.ease-navbar-glass .ease-navbar-item { + text-decoration: none; + color: rgba(15, 23, 42, 0.92); + font-size: var(--ease-text-sm); + font-weight: 500; + transition: color var(--ease-speed-fast) var(--ease-ease); +} + +.ease-navbar-glass .ease-navbar-item:hover, +.ease-navbar-glass .ease-navbar-item:focus-visible { + color: var(--ease-color-neutral-900); + outline: none; +} + +.ease-navbar-glass-sticky { + position: sticky; + top: 0; + z-index: var(--ease-z-overlay); +} + +.ease-navbar-glass-blur { + --ease-navbar-glass-blur: 24px; + background: rgba(255, 255, 255, 0.14); + border-color: rgba(255, 255, 255, 0.2); + box-shadow: var(--ease-shadow-xl); +} + +@supports not (backdrop-filter: blur(0)) { + .ease-navbar-glass, + .ease-navbar-glass-blur { + background: rgba(255, 255, 255, 0.92); + border-color: rgba(15, 23, 42, 0.12); + } +} + +@media (max-width: 640px) { + .ease-navbar-glass { + justify-content: space-between; + padding: var(--ease-space-4); + } + + .ease-navbar-glass .ease-navbar-menu { + width: 100%; + justify-content: flex-start; + } + + .ease-navbar-glass .ease-navbar-item { + flex: 1 1 120px; + min-width: 120px; + } +} diff --git a/easemotion.css b/easemotion.css index 4c3a15f2..d3e9c080 100644 --- a/easemotion.css +++ b/easemotion.css @@ -21,3 +21,4 @@ /* ── Components (tree-shakeable in future versions) ──────── */ @import "./components/buttons.css"; @import "./components/cards.css"; +@import "./components/navbar.css"; diff --git a/easemotion.min.css b/easemotion.min.css index 0c80c287..b6abbf3c 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{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-slide-image-exit{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@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-shimmer-sweep{0%{background-position:-200% center}100%{background-position:200% center}}@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-zoom-in 0.6s ease-out forwards}.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-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-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-zoom-in{animation:ease-kf-zoom-in var(--ease-speed-medium) var(--ease-ease-bounce) 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-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-slide-image-exit{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@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-shimmer-sweep{0%{background-position:-200% center}100%{background-position:200% center}}@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-zoom-in 0.6s ease-out forwards}.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-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-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-zoom-in{animation:ease-kf-zoom-in var(--ease-speed-medium) var(--ease-ease-bounce) 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}.ease-navbar-glass{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ease-space-4);padding:var(--ease-space-4) var(--ease-space-6);min-height:4rem;width:100%;background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.24);border-radius:var(--ease-radius-xl);box-shadow:var(--ease-shadow-md);color:var(--ease-color-neutral-900);backdrop-filter:blur(var(--ease-navbar-glass-blur,16px));-webkit-backdrop-filter:blur(var(--ease-navbar-glass-blur,16px));transition:background-color var(--ease-speed-medium) var(--ease-ease),border-color var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease)}.ease-navbar-glass>*{z-index:1}.ease-navbar-glass a,.ease-navbar-glass button{color:inherit}.ease-navbar-glass .ease-navbar-brand{font-weight:700;letter-spacing:-0.02em}.ease-navbar-glass .ease-navbar-menu{display:flex;flex-wrap:wrap;gap:var(--ease-space-4);align-items:center;justify-content:flex-end}.ease-navbar-glass .ease-navbar-item{text-decoration:none;color:rgba(15,23,42,0.92);font-size:var(--ease-text-sm);font-weight:500;transition:color var(--ease-speed-fast) var(--ease-ease)}.ease-navbar-glass .ease-navbar-item:hover,.ease-navbar-glass .ease-navbar-item:focus-visible{color:var(--ease-color-neutral-900);outline:none}.ease-navbar-glass-sticky{position:sticky;top:0;z-index:var(--ease-z-overlay)}.ease-navbar-glass-blur{--ease-navbar-glass-blur:24px;background:rgba(255,255,255,0.14);border-color:rgba(255,255,255,0.2);box-shadow:var(--ease-shadow-xl)}@supports not (backdrop-filter:blur(0)){.ease-navbar-glass,.ease-navbar-glass-blur{background:rgba(255,255,255,0.92);border-color:rgba(15,23,42,0.12)}}@media (max-width:640px){.ease-navbar-glass{justify-content:space-between;padding:var(--ease-space-4)}.ease-navbar-glass .ease-navbar-menu{width:100%;justify-content:flex-start}.ease-navbar-glass .ease-navbar-item{flex:1 1 120px;min-width:120px}} diff --git a/examples/demo.html b/examples/demo.html index 3df4b4ed..8b9d5ef1 100644 --- a/examples/demo.html +++ b/examples/demo.html @@ -13,6 +13,7 @@ + @@ -452,6 +474,64 @@

Hover Card

+ +
- - - - - - -
- -
- - - -
+
+
+
+
+ +
+ Your Content Here
- -
-
-``` - -### Key Rules - -| Class | Role | -|---|---| -| `.em-tilt-wrapper` | Sets `perspective` — the vanishing point container | -| `.em-tilt-card` | Outer shell; `transform-style: preserve-3d` | -| `.em-tilt-quadrant--{tl,tr,bl,br}` | Invisible hover triggers, each covers 50 × 50% of card | -| `.em-tilt-transform` | Receives the `rotateX/Y` transforms via the `~` selector | -| `.em-tilt-shimmer` | Shimmer overlay — changes gradient origin per quadrant | -| `.em-tilt-card-inner` | Visual border/radius container | - ---- - -## How the CSS Trick Works - -The core mechanism relies on the CSS **general sibling combinator** (`~`): - -```css -/* When the top-left quadrant is hovered, rotate the sibling transform wrapper */ -.em-tilt-quadrant--tl:hover ~ .em-tilt-transform { - transform: rotateX(10deg) rotateY(-10deg) translateZ(8px); -} -``` - -Because the quadrants sit *before* `.em-tilt-transform` in the DOM and are both children of `.em-tilt-card`, the combinator reaches `.em-tilt-transform` reliably. The quadrants are `position: absolute` with `z-index: 10` so they sit above the content and capture hover events even when the user's cursor is over text or images inside the card. - -The `perspective` is set on `.em-tilt-wrapper` (the *parent*), not on the card itself. This keeps the vanishing point stable as the card rotates — if perspective were set on the rotating element, the horizon would shift with the rotation, making the effect look wrong. - ---- - -## Customization - -All design tokens live in `:root` at the top of `style.css`: - -```css -:root { - /* Tilt angle — increase for more drama */ - /* Modify the rotateX / rotateY values in the quadrant rules */ - - /* Perspective depth — lower = more extreme foreshortening */ - /* Change the value on .em-tilt-wrapper { perspective: 900px; } */ - - /* Easing and duration */ - --ease-tilt: cubic-bezier(0.22, 1, 0.36, 1); - --duration-tilt: 0.5s; - - /* Accent color */ - --color-accent: #c29a54; - --color-accent-light: #e0bc7a; - - /* Surface colors */ - --color-bg: #0d0f14; - --color-surface: #13161e; -} -``` - -### Adjusting Tilt Intensity - -Find the four quadrant rules and edit the rotation values: - -```css -/* Default: 10deg — try 6deg (subtle) or 14deg (dramatic) */ -.em-tilt-quadrant--tl:hover ~ .em-tilt-transform { - transform: rotateX(10deg) rotateY(-10deg) translateZ(8px); -} -``` - -### Adjusting Perspective - -```css -.em-tilt-wrapper { - perspective: 900px; /* 600px = dramatic, 1200px = gentle */ -} -``` - -### Using on a Light Background - -Override the surface and text tokens: - -```css -:root { - --color-bg: #f5f4f0; - --color-surface: #ffffff; - --color-surface-mid: #f0eeea; - --color-border: rgba(0, 0, 0, 0.08); - --color-text-primary: #1a1a1a; - --color-text-muted: #666; -} -``` - ---- - -## Browser Support - -| Browser | Version | Notes | -|---|---|---| -| Chrome / Edge | 80+ | Full support | -| Firefox | 72+ | Full support | -| Safari | 14+ | Full support (`preserve-3d` requires no `overflow: hidden` on parent — handled) | -| iOS Safari | 14+ | Tilt disabled on touch (by design) | -| Samsung Internet | 12+ | Full support | - -> **Note on Safari:** `transform-style: preserve-3d` does not work through elements with `overflow: hidden`. The structure here wraps overflow on `.em-tilt-card-inner` (a *child* of the transform element, not a parent), so the 3D context is preserved correctly. - ---- - -## Why This Effect Is Useful - -Flat interfaces have a depth problem: every element competes equally for attention. A tilt interaction solves this without animation loops, scroll triggers, or JavaScript overhead — it activates *on demand* at the cost of a hover. - -**Portfolio sites** benefit because a tilt signals interactivity and premium craft without requiring a full-page animation. The card feels weighty, physical, designed. - -**Product showcases and feature cards** benefit because the Z-lift draws the eye precisely when the user is deciding whether to click. It converts passive scanning into active consideration. - -**Design systems** benefit because the effect is self-contained: drop the four classes in, tune two CSS variables, done. No runtime dependencies to audit, no bundle size impact, no accessibility concerns from motion (the effect can be suppressed with a single `prefers-reduced-motion` media query addition if needed). - ---- - -## Preview Description - -Two portfolio project cards sit centered on a dark editorial background with a faint grid texture. Each card contains a decorative image band, a category badge, a project title in a serif display face, a description, a row of monospaced tech tags, a stat cluster, an avatar group, and a "View Project" link. - -Moving the cursor to the top-left corner of a card tilts it upward and to the left — as if the card is turning to face you. The top-right corner produces the opposite rotation. The card border picks up a warm amber glow and a soft directional shimmer confirms the light-source direction. Releasing the hover eases the card back to flat with a gentle overshoot, courtesy of the spring cubic-bezier curve. - -On viewport widths below 480px the effect is removed and the card displays as a standard flat element, ensuring the layout remains usable on touch devices. - ---- - -## License - -Submitted under the same license as the EaseMotion CSS repository. \ No newline at end of file + \ No newline at end of file From 65a4bb752cff42a3c840eff8bc858eba11d9c374 Mon Sep 17 00:00:00 2001 From: codedbydollys10 Date: Thu, 4 Jun 2026 18:32:04 +0530 Subject: [PATCH 3/5] Rebuild minified CSS bundle --- easemotion.min.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easemotion.min.css b/easemotion.min.css index 7ff5e9d2..07da363a 100644 --- a/easemotion.min.css +++ b/easemotion.min.css @@ -1 +1 @@ -: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-secondary:#8b5cf6;--ease-color-secondary-light:#a78bfa;--ease-color-secondary-dark:#7c3aed;--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-secondary:#8b5cf6;--ease-color-secondary-light:#a78bfa;--ease-color-secondary-dark:#7c3aed;--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-600);--ease-glass-bg:color-mix(in srgb,var(--ease-color-surface) 12%,transparent);--ease-glass-border:color-mix(in srgb,var(--ease-color-surface) 20%,transparent);--ease-color-primary-alpha:color-mix(in srgb,var(--ease-color-primary) 6%,transparent);--ease-color-success-alpha:color-mix(in srgb,var(--ease-color-success) 6%,transparent);--ease-color-danger-alpha:color-mix(in srgb,var(--ease-color-danger) 6%,transparent);--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-secondary:0 0 16px rgba(139,92,246,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-container-max:1200px;--ease-z-base:0;--ease-z-raised:10;--ease-z-overlay:100;--ease-z-modal:1000;--ease-z-toast:9999}@media (prefers-color-scheme:dark){:root{--ease-color-bg:#0b1121;--ease-color-surface:#141e33;--ease-color-text:#e2e8f0;--ease-color-muted:#94a3b8;--ease-shadow-sm:0 1px 3px rgba(0,0,0,0.30),0 1px 2px rgba(0,0,0,0.20);--ease-shadow-md:0 4px 6px -1px rgba(0,0,0,0.35),0 2px 4px -1px rgba(0,0,0,0.25);--ease-shadow-lg:0 10px 15px -3px rgba(0,0,0,0.40),0 4px 6px -2px rgba(0,0,0,0.25);--ease-shadow-xl:0 20px 25px -5px rgba(0,0,0,0.45),0 10px 10px -5px rgba(0,0,0,0.30);--ease-glow-primary:0 0 16px rgba(108,99,255,0.45);--ease-glow-secondary:0 0 16px rgba(139,92,246,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)}}*,*::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);overflow-x:hidden;-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)}@media (hover:hover) and (pointer:fine){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}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@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-slide-image-exit{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@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-bounce-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15);opacity:1}70%{transform:scale(0.92)}85%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}@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-bounce-in{animation:ease-kf-bounce-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-zoom-in{animation:ease-kf-zoom-in var(--ease-speed-medium) var(--ease-ease-bounce) both}.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-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-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),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{perspective:1000px;backface-visibility:hidden;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}:root{--ease-animation-iterations:infinite}.ease-bounce{animation:ease-kf-bounce 1s var(--ease-animation-iterations,infinite)}.ease-rotate{animation:ease-kf-rotate 1.2s linear var(--ease-animation-iterations,infinite)}.ease-pulse{animation:ease-kf-pulse 2s var(--ease-ease) var(--ease-animation-iterations,infinite)}.ease-ping{animation:ease-kf-ping 1s cubic-bezier(0,0,0.2,1) var(--ease-animation-iterations,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;transition-delay:75ms}.ease-delay-100{animation-delay:100ms;transition-delay:100ms}.ease-delay-150{animation-delay:150ms;transition-delay:150ms}.ease-delay-200{animation-delay:200ms;transition-delay:200ms}.ease-delay-300{animation-delay:300ms;transition-delay:300ms}.ease-delay-400{animation-delay:400ms;transition-delay:400ms}.ease-delay-500{animation-delay:500ms;transition-delay:500ms}.ease-delay-600{animation-delay:600ms;transition-delay:600ms}.ease-delay-700{animation-delay:700ms;transition-delay:700ms}.ease-delay-800{animation-delay:800ms;transition-delay:800ms}.ease-delay-1000{animation-delay:1000ms;transition-delay:1000ms}.ease-duration-fast{animation-duration:var(--ease-speed-fast);transition-duration:var(--ease-speed-fast)}.ease-duration-medium{animation-duration:var(--ease-speed-medium);transition-duration:var(--ease-speed-medium)}.ease-duration-slow{animation-duration:var(--ease-speed-slow);transition-duration:var(--ease-speed-slow)}@media (prefers-reduced-motion:reduce){[class*="ease-"]{animation-duration:0.01ms !important;animation-iteration-count:1 !important}[class*="ease-hover-"],[class*="ease-card-"],.ease-btn-hover{transition:none !important;transform:none !important}}.ease-block{display:block}.ease-inline{display:inline}.ease-inline-block{display:inline-block}.ease-hidden{display:none}.ease-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.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-flex-wrap-reverse{flex-wrap:wrap-reverse}.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-self-start{align-self:flex-start}.ease-self-center{align-self:center}.ease-self-end{align-self:flex-end}.ease-self-stretch{align-self: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-place-start{place-items:start}.ease-place-center{place-items:center}.ease-place-end{place-items:end}.ease-grid-auto{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ease-col-span-1{grid-column:span 1 / span 1}.ease-col-span-2{grid-column:span 2 / span 2}.ease-col-span-3{grid-column:span 3 / span 3}.ease-col-span-4{grid-column:span 4 / span 4}.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;height:100dvh}.ease-h-auto{height:auto}.ease-container{width:100%;max-width:var(--ease-container-max);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-container{padding-left:var(--ease-space-4);padding-right:var(--ease-space-4)}.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 (max-width:480px){.ease-grid-auto,.ease-grid-cols-2,.ease-grid-cols-3,.ease-grid-cols-4{grid-template-columns:minmax(0,1fr)}}@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{--ease-btn-glow:var(--ease-glow-primary);background-color:var(--ease-color-primary);color:#ffffff;border-color:var(--ease-color-primary)}@media (hover:hover) and (pointer:fine){.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{--ease-btn-glow:var(--ease-glow-success);background-color:var(--ease-color-success);color:#ffffff;border-color:var(--ease-color-success)}@media (hover:hover) and (pointer:fine){.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{--ease-btn-glow:var(--ease-glow-danger);background-color:var(--ease-color-danger);color:#ffffff;border-color:var(--ease-color-danger)}@media (hover:hover) and (pointer:fine){.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{--ease-btn-glow:var(--ease-glow-primary);background-color:transparent;color:var(--ease-color-primary);border-color:var(--ease-color-primary)}@media (hover:hover) and (pointer:fine){.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}@media (hover:hover) and (pointer:fine){.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}@media (hover:hover) and (pointer:fine){.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)}@media (hover:hover) and (pointer:fine){.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 (max-width:480px){.ease-btn{max-width:100%;white-space:normal;text-align:center}.ease-btn-group{display:flex;flex-wrap:wrap}}@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;max-width:100%;overflow-wrap:break-word}.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}@media (hover:hover) and (pointer:fine){.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)}@media (hover:hover) and (pointer:fine){.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:var(--ease-glass-bg);border:1px solid var(--ease-glass-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--ease-color-text)}.ease-card-neumorphic{background-color:var(--ease-color-bg);border-color:transparent;box-shadow:8px 8px 20px rgba(15,23,42,0.12),-8px -8px 20px rgba(255,255,255,0.78);transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease);will-change:transform,box-shadow}.ease-card-neumorphic:hover{transform:translateY(-4px);box-shadow:12px 12px 26px rgba(15,23,42,0.14),-10px -10px 24px rgba(255,255,255,0.86)}@media (prefers-color-scheme:dark){.ease-card-neumorphic{background-color:var(--ease-color-surface);box-shadow:8px 8px 20px rgba(0,0,0,0.32),-8px -8px 20px rgba(255,255,255,0.04)}.ease-card-neumorphic:hover{box-shadow:12px 12px 26px rgba(0,0,0,0.36),-10px -10px 24px rgba(255,255,255,0.055)}}.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:color-mix(in srgb,var(--ease-color-primary) 6%,transparent);border-color:var(--ease-color-primary-light);color:var(--ease-color-primary-dark)}.ease-card-success-bg{background-color:color-mix(in srgb,var(--ease-color-success) 6%,transparent);border-color:var(--ease-color-success-light)}.ease-card-danger-bg{background-color:color-mix(in srgb,var(--ease-color-danger) 6%,transparent);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}@media (prefers-reduced-motion:reduce){.ease-card-hover{transition:none !important;transform:none !important}.ease-card-glow{transition:none !important}}@media (max-width:640px){.ease-card{padding:var(--ease-space-4)}.ease-card-title{font-size:var(--ease-text-xl)}.ease-card-footer{flex-wrap:wrap}.ease-card-horizontal{flex-direction:column}.ease-card-image .ease-card-img{height:160px}.ease-card-image .ease-card-body,.ease-card-stat{padding:var(--ease-space-4)}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;animation-delay:0s !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}} +: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-secondary:#8b5cf6;--ease-color-secondary-light:#a78bfa;--ease-color-secondary-dark:#7c3aed;--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-secondary:#8b5cf6;--ease-color-secondary-light:#a78bfa;--ease-color-secondary-dark:#7c3aed;--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-600);--ease-glass-bg:color-mix(in srgb,var(--ease-color-surface) 12%,transparent);--ease-glass-border:color-mix(in srgb,var(--ease-color-surface) 20%,transparent);--ease-color-primary-alpha:color-mix(in srgb,var(--ease-color-primary) 6%,transparent);--ease-color-success-alpha:color-mix(in srgb,var(--ease-color-success) 6%,transparent);--ease-color-danger-alpha:color-mix(in srgb,var(--ease-color-danger) 6%,transparent);--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-secondary:0 0 16px rgba(139,92,246,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-container-max:1200px;--ease-z-base:0;--ease-z-raised:10;--ease-z-overlay:100;--ease-z-modal:1000;--ease-z-toast:9999}@media (prefers-color-scheme:dark){:root{--ease-color-bg:#0b1121;--ease-color-surface:#141e33;--ease-color-text:#e2e8f0;--ease-color-muted:#94a3b8;--ease-shadow-sm:0 1px 3px rgba(0,0,0,0.30),0 1px 2px rgba(0,0,0,0.20);--ease-shadow-md:0 4px 6px -1px rgba(0,0,0,0.35),0 2px 4px -1px rgba(0,0,0,0.25);--ease-shadow-lg:0 10px 15px -3px rgba(0,0,0,0.40),0 4px 6px -2px rgba(0,0,0,0.25);--ease-shadow-xl:0 20px 25px -5px rgba(0,0,0,0.45),0 10px 10px -5px rgba(0,0,0,0.30);--ease-glow-primary:0 0 16px rgba(108,99,255,0.45);--ease-glow-secondary:0 0 16px rgba(139,92,246,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)}}*,*::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);overflow-x:hidden;-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)}@media (hover:hover) and (pointer:fine){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}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@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-slide-image-exit{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}@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-bounce-in{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15);opacity:1}70%{transform:scale(0.92)}85%{transform:scale(1.05)}100%{transform:scale(1);opacity:1}}@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-bounce-in{animation:ease-kf-bounce-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-zoom-in{animation:ease-kf-zoom-in var(--ease-speed-medium) var(--ease-ease-bounce) both}.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-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-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),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{perspective:1000px;backface-visibility:hidden;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}:root{--ease-animation-iterations:infinite}.ease-bounce{animation:ease-kf-bounce 1s var(--ease-animation-iterations,infinite)}.ease-rotate{animation:ease-kf-rotate 1.2s linear var(--ease-animation-iterations,infinite)}.ease-pulse{animation:ease-kf-pulse 2s var(--ease-ease) var(--ease-animation-iterations,infinite)}.ease-ping{animation:ease-kf-ping 1s cubic-bezier(0,0,0.2,1) var(--ease-animation-iterations,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;transition-delay:75ms}.ease-delay-100{animation-delay:100ms;transition-delay:100ms}.ease-delay-150{animation-delay:150ms;transition-delay:150ms}.ease-delay-200{animation-delay:200ms;transition-delay:200ms}.ease-delay-300{animation-delay:300ms;transition-delay:300ms}.ease-delay-400{animation-delay:400ms;transition-delay:400ms}.ease-delay-500{animation-delay:500ms;transition-delay:500ms}.ease-delay-600{animation-delay:600ms;transition-delay:600ms}.ease-delay-700{animation-delay:700ms;transition-delay:700ms}.ease-delay-800{animation-delay:800ms;transition-delay:800ms}.ease-delay-1000{animation-delay:1000ms;transition-delay:1000ms}.ease-duration-fast{animation-duration:var(--ease-speed-fast);transition-duration:var(--ease-speed-fast)}.ease-duration-medium{animation-duration:var(--ease-speed-medium);transition-duration:var(--ease-speed-medium)}.ease-duration-slow{animation-duration:var(--ease-speed-slow);transition-duration:var(--ease-speed-slow)}@media (prefers-reduced-motion:reduce){[class*="ease-"]{animation-duration:0.01ms !important;animation-iteration-count:1 !important}[class*="ease-hover-"],[class*="ease-card-"],.ease-btn-hover{transition:none !important;transform:none !important}}.ease-block{display:block}.ease-inline{display:inline}.ease-inline-block{display:inline-block}.ease-hidden{display:none}.ease-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap}.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-flex-wrap-reverse{flex-wrap:wrap-reverse}.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-self-start{align-self:flex-start}.ease-self-center{align-self:center}.ease-self-end{align-self:flex-end}.ease-self-stretch{align-self: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-place-start{place-items:start}.ease-place-center{place-items:center}.ease-place-end{place-items:end}.ease-grid-auto{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ease-col-span-1{grid-column:span 1 / span 1}.ease-col-span-2{grid-column:span 2 / span 2}.ease-col-span-3{grid-column:span 3 / span 3}.ease-col-span-4{grid-column:span 4 / span 4}.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;height:100dvh}.ease-h-auto{height:auto}.ease-container{width:100%;max-width:var(--ease-container-max);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-container{padding-left:var(--ease-space-4);padding-right:var(--ease-space-4)}.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 (max-width:480px){.ease-grid-auto,.ease-grid-cols-2,.ease-grid-cols-3,.ease-grid-cols-4{grid-template-columns:minmax(0,1fr)}}@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{--ease-btn-glow:var(--ease-glow-primary);background-color:var(--ease-color-primary);color:#ffffff;border-color:var(--ease-color-primary)}@media (hover:hover) and (pointer:fine){.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{--ease-btn-glow:var(--ease-glow-success);background-color:var(--ease-color-success);color:#ffffff;border-color:var(--ease-color-success)}@media (hover:hover) and (pointer:fine){.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{--ease-btn-glow:var(--ease-glow-danger);background-color:var(--ease-color-danger);color:#ffffff;border-color:var(--ease-color-danger)}@media (hover:hover) and (pointer:fine){.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{--ease-btn-glow:var(--ease-glow-primary);background-color:transparent;color:var(--ease-color-primary);border-color:var(--ease-color-primary)}@media (hover:hover) and (pointer:fine){.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}@media (hover:hover) and (pointer:fine){.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}@media (hover:hover) and (pointer:fine){.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)}@media (hover:hover) and (pointer:fine){.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 (max-width:480px){.ease-btn{max-width:100%;white-space:normal;text-align:center}.ease-btn-group{display:flex;flex-wrap:wrap}}@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;max-width:100%;overflow-wrap:break-word}.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}@media (hover:hover) and (pointer:fine){.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)}@media (hover:hover) and (pointer:fine){.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:var(--ease-glass-bg);border:1px solid var(--ease-glass-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:var(--ease-color-text)}.ease-card-neumorphic{background-color:var(--ease-color-bg);border-color:transparent;box-shadow:8px 8px 20px rgba(15,23,42,0.12),-8px -8px 20px rgba(255,255,255,0.78);transition:transform var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease);will-change:transform,box-shadow}.ease-card-neumorphic:hover{transform:translateY(-4px);box-shadow:12px 12px 26px rgba(15,23,42,0.14),-10px -10px 24px rgba(255,255,255,0.86)}@media (prefers-color-scheme:dark){.ease-card-neumorphic{background-color:var(--ease-color-surface);box-shadow:8px 8px 20px rgba(0,0,0,0.32),-8px -8px 20px rgba(255,255,255,0.04)}.ease-card-neumorphic:hover{box-shadow:12px 12px 26px rgba(0,0,0,0.36),-10px -10px 24px rgba(255,255,255,0.055)}}.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:color-mix(in srgb,var(--ease-color-primary) 6%,transparent);border-color:var(--ease-color-primary-light);color:var(--ease-color-primary-dark)}.ease-card-success-bg{background-color:color-mix(in srgb,var(--ease-color-success) 6%,transparent);border-color:var(--ease-color-success-light)}.ease-card-danger-bg{background-color:color-mix(in srgb,var(--ease-color-danger) 6%,transparent);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}@media (prefers-reduced-motion:reduce){.ease-card-hover{transition:none !important;transform:none !important}.ease-card-glow{transition:none !important}}@media (max-width:640px){.ease-card{padding:var(--ease-space-4)}.ease-card-title{font-size:var(--ease-text-xl)}.ease-card-footer{flex-wrap:wrap}.ease-card-horizontal{flex-direction:column}.ease-card-image .ease-card-img{height:160px}.ease-card-image .ease-card-body,.ease-card-stat{padding:var(--ease-space-4)}}.ease-navbar-glass{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--ease-space-4);padding:var(--ease-space-4) var(--ease-space-6);min-height:4rem;width:100%;background:rgba(255,255,255,0.18);border:1px solid rgba(255,255,255,0.24);border-radius:var(--ease-radius-xl);box-shadow:var(--ease-shadow-md);color:var(--ease-color-neutral-900);backdrop-filter:blur(var(--ease-navbar-glass-blur,16px));-webkit-backdrop-filter:blur(var(--ease-navbar-glass-blur,16px));transition:background-color var(--ease-speed-medium) var(--ease-ease),border-color var(--ease-speed-medium) var(--ease-ease),box-shadow var(--ease-speed-medium) var(--ease-ease)}.ease-navbar-glass>*{z-index:1}.ease-navbar-glass a,.ease-navbar-glass button{color:inherit}.ease-navbar-glass .ease-navbar-brand{font-weight:700;letter-spacing:-0.02em}.ease-navbar-glass .ease-navbar-menu{display:flex;flex-wrap:wrap;gap:var(--ease-space-4);align-items:center;justify-content:flex-end}.ease-navbar-glass .ease-navbar-item{text-decoration:none;color:rgba(15,23,42,0.92);font-size:var(--ease-text-sm);font-weight:500;transition:color var(--ease-speed-fast) var(--ease-ease)}.ease-navbar-glass .ease-navbar-item:hover,.ease-navbar-glass .ease-navbar-item:focus-visible{color:var(--ease-color-neutral-900);outline:none}.ease-navbar-glass-sticky{position:sticky;top:0;z-index:var(--ease-z-overlay)}.ease-navbar-glass-blur{--ease-navbar-glass-blur:24px;background:rgba(255,255,255,0.14);border-color:rgba(255,255,255,0.2);box-shadow:var(--ease-shadow-xl)}@supports not (backdrop-filter:blur(0)){.ease-navbar-glass,.ease-navbar-glass-blur{background:rgba(255,255,255,0.92);border-color:rgba(15,23,42,0.12)}}@media (max-width:640px){.ease-navbar-glass{justify-content:space-between;padding:var(--ease-space-4)}.ease-navbar-glass .ease-navbar-menu{width:100%;justify-content:flex-start}.ease-navbar-glass .ease-navbar-item{flex:1 1 120px;min-width:120px}}@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;animation-delay:0s !important;transition-duration:0.01ms !important;scroll-behavior:auto !important}} From de341554e053c666cc0e365defeafec3650a38a0 Mon Sep 17 00:00:00 2001 From: codedbydollys10 Date: Thu, 4 Jun 2026 18:54:19 +0530 Subject: [PATCH 4/5] fix(examples): close .demo-mobile-frame CSS block to fix rcurly error --- examples/demo.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/examples/demo.html b/examples/demo.html index c414abb3..a1f7e8ec 100644 --- a/examples/demo.html +++ b/examples/demo.html @@ -410,6 +410,8 @@ .demo-mobile-frame { max-width: 420px; margin-top: var(--ease-space-6); + } + @media (max-width: 640px) { .demo-nav { padding: var(--ease-space-3) 0; @@ -1227,4 +1229,4 @@

Flexible Layouts

- + From d1916cb36c566a0232b2ad8b4e486431328a63fa Mon Sep 17 00:00:00 2001 From: codedbydollys10 Date: Thu, 4 Jun 2026 19:40:17 +0530 Subject: [PATCH 5/5] fixed the demo.html with ci lint failure --- examples/demo.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/demo.html b/examples/demo.html index a1f7e8ec..d4401ea8 100644 --- a/examples/demo.html +++ b/examples/demo.html @@ -550,7 +550,7 @@

Buttons Matrix

// 2. Sizing Scale(small to extra large)
-
+
ease-btn-sm
@@ -630,7 +630,7 @@

Buttons Matrix

--> -
// Pill · Disabled · Loading