@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_38c99671-module__5Dhsuq__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_38c99671-module__5Dhsuq__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-primary:#fff;--bg-secondary:#fafafa;--bg-tertiary:#f5f5f5;--text-primary:#0a0a0a;--text-secondary:#666;--text-tertiary:#999;--text-muted:#999;--text-white:#fff;--text-link:#0070f3;--text-link-dark:#3291ff;--accent:#0070f3;--accent-hover:#0060df;--accent-light:#e6f0ff;--bg-body:#fff;--bg-section:#fafafa;--bg-card:#fff;--bg-card-dark:#0a0a0a;--bg-sidebar:#fff;--bg-hover:#f5f5f5;--bg-tag:#f5f5f5;--bg-subtle:#fafafa;--apple-blue:#0070f3;--apple-blue-hover:#0060df;--link-blue:#0070f3;--bright-blue:#3291ff;--black:#000;--near-black:#0a0a0a;--dark-surface-1:#111;--dark-surface-2:#1a1a1a;--dark-surface-3:#222;--dark-surface-4:#2a2a2a;--success:#0ea371;--warning:#f5a623;--danger:#e5484d;--vip-gold:#c9a032;--border:#eaeaea;--border-light:#f0f0f0;--border-hover:#999;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 30px #0000001f;--shadow-xl:0 20px 50px #00000026;--shadow-card:0 2px 8px #00000014;--shadow-sm-up:0 -1px 3px #0000000a, 0 1px 6px #0000000f;--shadow-card-hover:0 12px 28px #0000001a, 0 4px 10px #0000000f;--shadow-float:0 16px 40px #0000001f, 0 8px 20px #00000014;--shadow-elevated:0 2px 8px #0000000f, 0 8px 24px #00000014;--shadow-glow-primary:0 0 40px #3b82f626, 0 0 80px #8b5cf61a;--color-like:#ff2d55;--color-active-blue:#0071e3;--color-notification-red:#ef4444;--theme-surface:#fff;--theme-surface-secondary:#fafafa;--theme-on-surface:#0a0a0a;--theme-on-surface-secondary:#666;--theme-accent:#0070f3;--theme-accent-hover:#0060df;--gradient-primary-start:#3b82f6;--gradient-primary-end:#8b5cf6;--gradient-secondary-start:#10b981;--gradient-secondary-end:#3b82f6;--gradient-accent-start:#f59e0b;--gradient-accent-end:#ef4444;--gradient-coral-start:#ff6b6b;--gradient-coral-end:#ee5a6f;--bg-layer-1:#fff;--bg-layer-2:#fafafa;--bg-layer-3:#f5f5f5;--bg-layer-4:#eee;--bg-gradient-linear:linear-gradient(135deg, #fafafa 0%, #f5f5f5 100%);--bg-gradient-radial:radial-gradient(circle at center, #fff 0%, #fafafa 100%);--text-heading:#1f2937;--text-subheading:#4b5563;--text-body:#6b7280;--text-muted-custom:#9ca3af;--text-dark:#111827;--text-medium:#374151;--text-light:#6b7280;--badge-blue-gradient:linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);--badge-green-gradient:linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);--badge-purple-gradient:linear-gradient(135deg, #e9d5ff 0%, #d8b4fe 100%);--badge-orange-gradient:linear-gradient(135deg, #fed7aa 0%, #fdba74 100%);--badge-pink-gradient:linear-gradient(135deg, #fecdd3 0%, #fda4af 100%)}
:root{--font-display:700;--font-heading:-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--ls-tight:-.04em;--ls-heading:-.03em;--ls-body:-.011em;--ls-caption:.01em;--theme-font-heading:var(--font-heading);--theme-font-body:var(--font-body);--theme-font-accent:var(--font-body);--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--text-5xl:3rem;--text-6xl:3.75rem;--text-7xl:4.5rem;--text-article-content:1.0625rem;--leading-none:1;--leading-tight:1.2;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.75;--leading-loose:2;--font-thin:100;--font-extra-light:200;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extra-bold:800;--font-black:900;--heading-h1-clamp:clamp(2.5rem, 5vw, 3.75rem);--heading-h2-clamp:clamp(2rem, 4vw, 2.75rem);--heading-h3-clamp:clamp(1.5rem, 3vw, 2rem)}
:root{--header-height:64px;--sidebar-width:260px;--container-width:1200px;--content-gap:32px;--cover-aspect-ratio:16 / 9;--theme-border-width:1px;--space-1:8px;--space-2:12px;--space-3:16px;--space-4:20px;--space-5:24px;--space-6:32px;--space-7:40px;--space-8:48px;--space-9:64px;--space-10:80px;--space-11:96px;--space-12:128px;--container-max-sm:640px;--container-max-md:768px;--container-max-lg:1024px;--container-max-xl:1200px;--container-max-2xl:1400px;--container-content-optimal:750px;--card-min-width:280px}
:root{--radius-xs:4px;--radius-sm:6px;--radius:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-2xl:28px;--radius-pill:980px;--theme-radius-card:12px;--theme-radius-button:8px;--theme-radius-input:8px}
:root{--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.3s;--duration-slower:.4s;--ease-default:cubic-bezier(.25, .46, .45, .94);--ease-spring:cubic-bezier(.32, .72, 0, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-bounce:cubic-bezier(.68, -.55, .265, 1.55);--theme-ease-default:cubic-bezier(.4, 0, .2, 1);--theme-duration-default:.2s;--theme-border-style:solid;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out-expo:cubic-bezier(.44, .04, .56, .96);--ease-elastic:cubic-bezier(.68, -.6, .32, 1.6)}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}a,button,[role=button],input[type=submit],label[for]{touch-action:manipulation}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 16px)}body{font-family:var(--font-body);background:var(--bg-body);color:var(--text-primary);letter-spacing:var(--ls-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;font-optical-sizing:auto;text-rendering:optimizelegibility;font-size:16px;line-height:1.7}a:active,button:active:not(:disabled),[role=button]:active{opacity:.82;transition-duration:60ms}h1,h2,h3,h4,h5,h6{line-height:1.25}::selection{color:var(--text-primary);background:#0070f329}a{color:inherit;text-decoration:none;transition:color .2s}a:hover{color:var(--text-link)}img{max-width:100%;height:auto}ul,ol{list-style:none}button{cursor:pointer;font:inherit;background:0 0;border:none}button:disabled,button[aria-disabled=true]{cursor:not-allowed;opacity:.5}input,textarea,select{font:inherit;background:0 0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:focus:not(:focus-visible),#main-content:focus,#main-content:focus-visible{outline:none}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:translate(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}25%{transform:translateY(-8px)}50%{transform:translateY(0)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-6px)}to{transform:translateY(0)}}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes underlineExpand{0%{width:0}to{width:100%}}.animate-fade-in{animation:fadeIn var(--duration-slow) var(--ease-default)}.animate-fade-in-up{animation:fadeInUp var(--duration-slower) var(--ease-smooth)}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-spring)}.animate-slide-right{animation:slideInRight var(--duration-slower) var(--ease-smooth)}.animate-shimmer{background:linear-gradient(90deg,#f0f0f0 0%,#e0e0e0 50%,#f0f0f0 100%) 0 0/1000px 100%;animation:2s ease-in-out infinite shimmer}.animate-pulse{animation:2s cubic-bezier(.4,0,.6,1) infinite pulse}.animate-bounce{animation:.6s ease-out bounce}.animate-float{animation:3s ease-in-out infinite float}.animate-sparkle{animation:1.5s ease-in-out infinite sparkle}.animate-spin{animation:1s linear infinite spin}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.m-8{margin:var(--space-8)}.m-12{margin:var(--space-12)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.p-12{padding:var(--space-12)}.container-max-content{max-width:var(--container-content-optimal)}.container-responsive{max-width:var(--container-max-xl)}.grid-min-card{grid-template-columns:repeat(auto-fill, minmax(var(--card-min-width), 1fr))}
.v-btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;padding:10px 24px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex;position:relative;overflow:hidden}.v-btn:before{content:"";pointer-events:none;will-change:width, height, opacity;background:#fff6;border-radius:50%;width:0;height:0;transition:width .6s ease-out,height .6s ease-out,opacity .3s ease-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.v-btn:active:before{opacity:0;width:300px;height:300px}.v-btn--primary{background:linear-gradient(135deg, var(--gradient-primary-start) 0%, var(--gradient-primary-end) 100%);color:var(--bg-primary);box-shadow:0 2px 8px #3b82f640}.v-btn--primary:hover{opacity:.95;color:var(--bg-primary);transform:translateY(-1px);box-shadow:0 4px 16px #3b82f659,0 2px 8px #3b82f633}.v-btn--primary:active{transform:translateY(0);box-shadow:0 2px 8px #3b82f633}.v-btn--outline{color:var(--text-primary);border:1px solid var(--border);background:0 0}.v-btn--outline:hover{border-color:var(--border-hover);background:var(--bg-secondary);color:var(--text-primary)}
.v-tags{flex-wrap:wrap;gap:8px;display:flex}.v-tag{border-radius:var(--radius-pill);color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border);align-items:center;padding:6px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.v-tag:before{content:"";opacity:0;pointer-events:none;background:linear-gradient(135deg,#3b82f614 0%,#8b5cf614 100%);transition:opacity .2s;position:absolute;inset:0}.v-tag:hover:before{opacity:1}.v-tag:hover{color:var(--text-primary);background:linear-gradient(135deg,#f0f7ff 0%,#faf5ff 100%);border-color:#3b82f64d;transform:translateY(-1px);box-shadow:0 4px 12px #3b82f626}
.article-card{border-bottom:1px solid var(--border);transition:all .3s var(--ease-smooth);align-items:flex-start;gap:20px;padding:20px 0;text-decoration:none;display:flex}.article-card:hover{color:var(--text-primary);transform:translateY(-2px)}.article-card:hover .article-card__title{color:var(--accent)}.article-card:hover .article-card__arrow{opacity:1;transform:translate(4px)}.article-card:active{opacity:.72;transition-duration:60ms}.article-card:first-child{padding-top:0}.article-card:last-child{border-bottom:none}.article-card__date{text-align:center;flex-shrink:0;width:48px}.article-card__month{color:var(--text-tertiary);text-transform:uppercase;font-size:12px;font-weight:500;display:block}.article-card__day{color:var(--text-primary);letter-spacing:-.02em;font-size:20px;font-weight:700;display:block}.article-card__body{flex:1;min-width:0}.article-card__cat{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:600;display:block}.article-card__title{letter-spacing:-.02em;color:var(--text-primary);font-size:16px;font-weight:600;line-height:1.4;transition:color .15s}.article-card__desc{color:var(--text-secondary);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:4px;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.article-card__arrow{color:var(--text-tertiary);opacity:0;flex-shrink:0;margin-top:4px;font-size:16px;transition:all .15s}.article-card__image-wrapper{width:160px;box-shadow:var(--shadow-card);transition:all .3s var(--ease-smooth);border-radius:8px;flex-shrink:0;overflow:hidden}.article-card:hover .article-card__image-wrapper{box-shadow:var(--shadow-card-hover);transform:scale(1.02)}.article-card__image{object-fit:cover;width:100%;height:100px;transition:transform .4s var(--ease-out-expo);display:block}.article-card:hover .article-card__image{transform:scale(1.05)}@media (max-width:640px){.article-card__date{width:40px}.article-card__day{font-size:18px}.article-card__arrow{display:none}}
.v-featured-card{transition:all .4s var(--ease-smooth);background:linear-gradient(135deg,#fff 0%,#fafafa 100%);border:1px solid #0000000f;border-radius:16px;flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000a,0 1px 4px #00000005}.v-featured-card:before{content:"";background:linear-gradient(90deg, var(--gradient-primary-start) 0%, var(--gradient-primary-end) 100%);opacity:0;transform-origin:0;height:3px;transition:all .35s var(--ease-smooth);pointer-events:none;z-index:1;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.v-featured-card:hover{box-shadow:var(--shadow-card-hover), 0 4px 16px #0000000a;color:var(--text-primary);border-color:#6366f140;transform:translateY(-8px)}.v-featured-card:hover:before{opacity:1;transform:scaleX(1)}.v-featured-card:active{transition-duration:.12s;transform:translateY(-6px)scale(.995);box-shadow:0 4px 16px #0000000f}.v-featured-card__cover{width:100%;aspect-ratio:var(--cover-aspect-ratio);background:var(--bg-tertiary);position:relative;overflow:hidden}.v-featured-card:hover .v-featured-card__cover img{transform:scale(1.05)}.v-featured-card__cover img{object-fit:cover;width:100%;height:100%;transition:transform .4s var(--ease-out-expo)}.v-featured-card__placeholder{width:100%;height:100%;color:var(--text-tertiary);background:linear-gradient(135deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);justify-content:center;align-items:center;font-size:2rem;font-weight:700;display:flex}.v-featured-card__body{padding:16px 20px}.v-featured-card__cat{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:12px;font-weight:500;display:block}.v-featured-card__title{letter-spacing:-.02em;color:var(--text-primary);font-size:16px;font-weight:600;line-height:1.4}.v-featured-card--large .v-featured-card__title{font-size:18px}.v-featured-card__desc{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:6px;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}
.code-block-wrapper{background:var(--code-block-bg,#1d1d1f);border:1px solid #ffffff0f;border-radius:12px;margin:1.2em 0;position:relative;overflow:hidden}.code-block-header{background:#ffffff0a;border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.code-block-lang{color:#ffffff73;letter-spacing:.02em;background:#ffffff0f;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:500}.code-copy-btn{color:#fff9;cursor:pointer;background:#ffffff14;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.code-copy-btn:hover,.code-copy-btn:focus-visible{color:#ffffffe6;background:#ffffff24}.code-copy-btn.is-copied{color:var(--success,#34c759);background:#34c7591f}.code-block-wrapper>pre{border-radius:0;margin:0}
.ripple-btn,.ripple-link{will-change:transform;cursor:pointer;position:relative;overflow:hidden}.ripple-btn:before,.ripple-link:before{content:"";pointer-events:none;background:#fff6;border-radius:50%;width:0;height:0;transition:width .6s ease-out,height .6s ease-out,opacity .3s ease-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ripple-btn:active:before,.ripple-link:active:before{opacity:0;width:300px;height:300px}.dark-mode .ripple-btn:before,.dark-mode .ripple-link:before{background:#00000026}@media (prefers-reduced-motion:reduce){.ripple-btn:before,.ripple-link:before{transition:none}.ripple-btn:active:before,.ripple-link:active:before{display:none}}
@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes skeleton-wave{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes skeleton-fade{0%,to{opacity:1}50%{opacity:.3}}.animate-loading{background-color:#e5e7ebcc;position:relative;overflow:hidden}.dark .animate-loading{background-color:#374147cc}.animate-loading:after{content:"";background-image:linear-gradient(90deg,#fff0 0,#fff3 20%,#fff6 60%,#fff0);animation:2s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.dark .animate-loading:after{background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 20%,#ffffff1a 60%,#fff0)}
@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse-gentle{0%,to{opacity:1}50%{opacity:.7}}@keyframes progress-indeterminate{0%{transform:translate(-100%)scaleX(.2)}50%{transform:translate(50%)scaleX(.6)}to{transform:translate(150%)scaleX(.2)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-shimmer{background:linear-gradient(90deg,#e5e7eb00 0%,#e5e7eb66 50%,#e5e7eb00 100%) 0 0/200% 100%;animation:2s infinite shimmer}.dark .animate-shimmer{background:linear-gradient(90deg,#37414700 0%,#37414766 50%,#37414700 100%)}@keyframes zoom-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes zoom-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes button-press{0%{transform:scale(1)}50%{transform:scale(.97)}to{transform:scale(1)}}.button-press-animation{animation:.15s ease-in-out button-press}.card-hover-scale{transition:all .3s cubic-bezier(.4,0,.2,1)}.card-hover-scale:hover{transform:translateY(-4px)scale(1.02);box-shadow:0 12px 24px -8px #00000026,0 4px 8px -4px #0000001a}.scroll-smooth{scroll-behavior:smooth}@keyframes bounce-subtle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.bounce-subtle{animation:2s ease-in-out infinite bounce-subtle}@keyframes spin-small{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin-small{animation:1s linear infinite spin-small}@keyframes breathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.98)}}.breathing{animation:3s ease-in-out infinite breathe}@keyframes typing{0%{width:0}to{width:100%}}.typewriter{white-space:nowrap;border-right:2px solid;animation:3s steps(40,end) typing,.75s step-end infinite blink-caret;overflow:hidden}@keyframes blink-caret{0%,to{border-color:#0000}50%{border-color:currentColor}}@keyframes blur-enter{0%{opacity:0;filter:blur(8px)}to{opacity:1;filter:blur()}}.blur-enter{animation:.5s ease-out blur-enter}.gradient-fade-top{background:linear-gradient(#fff0 0%,#fff 100%)}.gradient-fade-bottom{background:linear-gradient(#fff 0%,#fff0 100%)}.dark .gradient-fade-top,.dark .gradient-fade-bottom{background:linear-gradient(#11182700 0%,#111827 100%)}.tooltip-default{position:relative}.tooltip-default:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;opacity:0;pointer-events:none;z-index:1000;background:#000000e6;border-radius:4px;padding:6px 12px;font-size:12px;line-height:1.5;transition:all .2s ease-out;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(-4px)}.tooltip-default:hover:after{opacity:1;transform:translate(-50%)translateY(0)}.progress-indicator{background:#e5e7eb;height:3px;overflow:hidden}.progress-indicator-bar{background:#6366f1;height:100%;transition:width .3s ease-out}.skeleton-pulse{background-image:linear-gradient(90deg,#fff0 0,#e5e7ebcc 50%,#fff0 100%);background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-pulse}@keyframes skeleton-pulse{0%{background-position:-200% 0}to{background-position:200% 0}}.no-flash{animation:none!important}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.delay-600{animation-delay:.6s}.gpu-accelerated{will-change:transform, opacity;backface-visibility:hidden;perspective:1000px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
