*,*:before,*:after{box-sizing:border-box}html{overflow-y:scroll;scroll-behavior:smooth}body{margin:0;padding:0;overflow-x:hidden}.navbar[data-v-cf4df0ac]{position:fixed;top:0;left:0;right:0;z-index:var(--z-index-sticky);background-color:var(--color-background);border-bottom:1px solid var(--color-border);transition:all var(--transition-base)}.navbar--transparent[data-v-cf4df0ac]{background-color:transparent;border-bottom-color:transparent}.navbar--scrolled[data-v-cf4df0ac]{background-color:var(--color-background);border-bottom-color:var(--color-border);box-shadow:var(--shadow-md)}.navbar__container[data-v-cf4df0ac]{max-width:var(--container-xl);margin:0 auto;padding:var(--spacing-md) var(--spacing-lg);display:flex;align-items:center;justify-content:space-between}.navbar__brand[data-v-cf4df0ac]{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.navbar__brand[data-v-cf4df0ac]:hover{color:var(--color-primary-light)}.navbar__brand-text[data-v-cf4df0ac]{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.navbar__links[data-v-cf4df0ac]{display:flex;align-items:center;gap:var(--spacing-xl)}.navbar__link[data-v-cf4df0ac]{position:relative;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-decoration:none;padding:var(--spacing-sm) var(--spacing-md);transition:color var(--transition-fast)}.navbar__link[data-v-cf4df0ac]:hover{color:var(--color-text-primary)}.navbar__link.router-link-active[data-v-cf4df0ac]{color:var(--color-primary)}.navbar__link.router-link-active[data-v-cf4df0ac]:after{content:"";position:absolute;bottom:0;left:var(--spacing-md);right:var(--spacing-md);height:2px;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary));border-radius:var(--radius-full)}.navbar__actions[data-v-cf4df0ac]{display:flex;align-items:center;gap:var(--spacing-md)}.navbar__theme-toggle[data-v-cf4df0ac]{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background-color:var(--color-surface);color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.navbar__theme-toggle[data-v-cf4df0ac]:hover{background-color:var(--color-surface-elevated);transform:scale(1.05)}.navbar__theme-toggle[data-v-cf4df0ac]:active{transform:scale(.95)}.navbar__icon[data-v-cf4df0ac]{width:20px;height:20px}.navbar__mobile-toggle[data-v-cf4df0ac]{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background-color:transparent;cursor:pointer;padding:0}.navbar__hamburger[data-v-cf4df0ac]{position:relative;width:24px;height:18px;display:flex;flex-direction:column;justify-content:space-between}.navbar__hamburger span[data-v-cf4df0ac]{display:block;width:100%;height:2px;background-color:var(--color-text-primary);border-radius:var(--radius-full);transition:all var(--transition-base)}.navbar__hamburger--open span[data-v-cf4df0ac]:nth-child(1){transform:translateY(8px) rotate(45deg)}.navbar__hamburger--open span[data-v-cf4df0ac]:nth-child(2){opacity:0}.navbar__hamburger--open span[data-v-cf4df0ac]:nth-child(3){transform:translateY(-8px) rotate(-45deg)}@media(max-width:768px){.navbar__mobile-toggle[data-v-cf4df0ac]{display:flex}.navbar__links[data-v-cf4df0ac]{position:fixed;inset:73px 0 0;flex-direction:column;align-items:stretch;gap:0;background-color:var(--color-background);padding:var(--spacing-lg);transform:translate(100%);transition:transform var(--transition-base);overflow-y:auto}.navbar__links--open[data-v-cf4df0ac]{transform:translate(0)}.navbar__link[data-v-cf4df0ac]{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);text-align:center;font-size:var(--font-size-lg)}.navbar__link.router-link-active[data-v-cf4df0ac]:after{display:none}.navbar__link.router-link-active[data-v-cf4df0ac]{background-color:var(--color-surface)}}@media(max-width:480px){.navbar__container[data-v-cf4df0ac]{padding:var(--spacing-md)}.navbar__brand[data-v-cf4df0ac]{font-size:var(--font-size-lg)}}#app{min-height:100vh;background-color:var(--color-background);color:var(--color-text-primary);transition:background-color var(--transition-base),color var(--transition-base)}.main-content{padding-top:73px;min-height:100vh}.fade-enter-active,.fade-leave-active{transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}.fade-enter-from{opacity:0;transform:translateY(10px)}.fade-leave-to{opacity:0;transform:translateY(-10px)}.slide-enter-active,.slide-leave-active{transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1)}.slide-enter-from{opacity:0;transform:translate(30px)}.slide-leave-to{opacity:0;transform:translate(-30px)}.scale-enter-active,.scale-leave-active{transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}.scale-enter-from{opacity:0;transform:scale(.95)}.scale-leave-to{opacity:0;transform:scale(1.05)}.fade-enter-active,.slide-enter-active,.scale-enter-active{position:relative}.fade-leave-active,.slide-leave-active,.scale-leave-active{position:absolute;width:100%}.home-view[data-v-a387b291]{min-height:calc(100vh - 73px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl);position:relative;overflow:hidden}.hero-section[data-v-a387b291]{text-align:center;max-width:900px;width:100%;z-index:1}.welcome-block[data-v-a387b291]{margin-bottom:var(--spacing-xl);animation:fadeInUp-a387b291 .8s ease-out}.hero-title[data-v-a387b291]{font-size:clamp(2.5rem,6vw,4rem);font-weight:700;margin-bottom:var(--spacing-md);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}.hero-subtitle[data-v-a387b291]{font-size:clamp(1.1rem,2.5vw,1.75rem);color:var(--color-text-secondary);margin-bottom:0;font-weight:500}.intro-block[data-v-a387b291]{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--color-surface);border-radius:var(--border-radius-lg);box-shadow:0 4px 12px #0000001a;animation:fadeInUp-a387b291 .8s ease-out .2s backwards}.intro-text[data-v-a387b291]{font-size:clamp(1rem,2vw,1.25rem);color:var(--color-text-primary);margin-bottom:var(--spacing-md);line-height:1.6}.intro-text strong[data-v-a387b291]{color:var(--color-primary);font-weight:600}.intro-description[data-v-a387b291]{font-size:clamp(.95rem,1.8vw,1.1rem);color:var(--color-text-secondary);line-height:1.8;text-align:left;max-width:700px;margin:0 auto}.cta-section[data-v-a387b291]{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap;animation:fadeInUp-a387b291 .8s ease-out .4s backwards}.cta-button[data-v-a387b291]{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-xl);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;text-decoration:none;border-radius:var(--border-radius-md);font-weight:600;font-size:1.1rem;transition:transform var(--transition-base),box-shadow var(--transition-base);box-shadow:0 4px 12px #00000026}.cta-button[data-v-a387b291]:hover{transform:translateY(-3px);box-shadow:0 8px 24px #00000040}.cta-button[data-v-a387b291]:active{transform:translateY(-1px)}.cta-icon[data-v-a387b291]{font-size:1.3rem;animation:bounce-a387b291 2s infinite}.cta-button-secondary[data-v-a387b291]{display:inline-flex;align-items:center;padding:var(--spacing-md) var(--spacing-xl);background:transparent;color:var(--color-primary);text-decoration:none;border:2px solid var(--color-primary);border-radius:var(--border-radius-md);font-weight:600;font-size:1.1rem;transition:all var(--transition-base)}.cta-button-secondary[data-v-a387b291]:hover{background:var(--color-primary);color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #00000026}@keyframes fadeInUp-a387b291{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce-a387b291{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@media(max-width:768px){.home-view[data-v-a387b291]{padding:var(--spacing-lg) var(--spacing-md)}.intro-block[data-v-a387b291]{padding:var(--spacing-md)}.intro-description[data-v-a387b291]{text-align:center}.cta-section[data-v-a387b291]{flex-direction:column;align-items:stretch}.cta-button[data-v-a387b291],.cta-button-secondary[data-v-a387b291]{width:100%;justify-content:center}}@media(max-width:480px){.hero-title[data-v-a387b291]{font-size:2rem}.hero-subtitle[data-v-a387b291],.intro-text[data-v-a387b291]{font-size:1rem}.intro-description[data-v-a387b291]{font-size:.9rem}}.project-card[data-v-c83d07c8]{background:var(--card-bg, #ffffff);border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;flex-direction:column;height:100%;position:relative;transform-style:preserve-3d}.project-card[data-v-c83d07c8]:hover{box-shadow:0 12px 24px #00000026}.project-card__shine[data-v-c83d07c8]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;border-radius:12px;transition:opacity .3s ease-out}.project-card__image-wrapper[data-v-c83d07c8]{position:relative;width:100%;padding-top:66.67%;overflow:hidden;background:var(--image-bg, #f5f5f5);z-index:2}.project-card__image[data-v-c83d07c8]{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.project-card:hover .project-card__image[data-v-c83d07c8]{transform:scale(1.05)}.project-card__overlay[data-v-c83d07c8]{position:absolute;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.project-card:hover .project-card__overlay[data-v-c83d07c8]{opacity:1}.project-card__view-details[data-v-c83d07c8]{color:#fff;font-size:1.125rem;font-weight:600;padding:.75rem 1.5rem;border:2px solid #ffffff;border-radius:8px;transition:background-color .3s ease,color .3s ease}.project-card:hover .project-card__view-details[data-v-c83d07c8]{background-color:#fff;color:var(--primary-color, #3b82f6)}.project-card__content[data-v-c83d07c8]{padding:1.5rem;display:flex;flex-direction:column;flex:1;position:relative;z-index:2}.project-card__title[data-v-c83d07c8]{font-size:1.5rem;font-weight:700;color:var(--text-primary, #1f2937);margin:0 0 .75rem;line-height:1.3}.project-card__description[data-v-c83d07c8]{font-size:.9375rem;color:var(--text-secondary, #6b7280);line-height:1.6;margin:0 0 1rem;flex:1}.project-card__tags[data-v-c83d07c8]{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.project-card__tag[data-v-c83d07c8]{display:inline-block;padding:.375rem .75rem;background:var(--tag-bg, #e5e7eb);color:var(--tag-text, #374151);font-size:.8125rem;font-weight:500;border-radius:6px;transition:background-color .2s ease,color .2s ease}.project-card__tag[data-v-c83d07c8]:hover{background:var(--tag-hover-bg, #d1d5db)}.project-card__links[data-v-c83d07c8]{display:flex;gap:.75rem;margin-top:auto}.project-card__link[data-v-c83d07c8]{display:inline-flex;align-items:center;gap:.375rem;padding:.625rem 1rem;font-size:.875rem;font-weight:600;text-decoration:none;border-radius:6px;transition:background-color .2s ease,color .2s ease,transform .2s ease}.project-card__link-icon[data-v-c83d07c8]{width:1rem;height:1rem}.project-card__link--demo[data-v-c83d07c8]{background:var(--primary-color, #3b82f6);color:#fff}.project-card__link--demo[data-v-c83d07c8]:hover{background:var(--primary-hover, #2563eb);transform:translateY(-2px)}.project-card__link--github[data-v-c83d07c8]{background:var(--github-bg, #24292e);color:#fff}.project-card__link--github[data-v-c83d07c8]:hover{background:var(--github-hover, #1a1e22);transform:translateY(-2px)}.project-card__link--gitee[data-v-c83d07c8]{background:#c71d23;color:#fff}.project-card__link--gitee[data-v-c83d07c8]:hover{background:#a01419;transform:translateY(-2px)}@media(max-width:768px){.project-card__content[data-v-c83d07c8]{padding:1.25rem}.project-card__title[data-v-c83d07c8]{font-size:1.25rem}.project-card__description[data-v-c83d07c8]{font-size:.875rem}.project-card__tag[data-v-c83d07c8]{font-size:.75rem;padding:.3125rem .625rem}.project-card__link[data-v-c83d07c8]{font-size:.8125rem;padding:.5rem .875rem}}@media(prefers-color-scheme:dark){.project-card[data-v-c83d07c8]{--card-bg: #1f2937;--text-primary: #f9fafb;--text-secondary: #d1d5db;--tag-bg: #374151;--tag-text: #e5e7eb;--tag-hover-bg: #4b5563;--image-bg: #374151}}.dark{--card-bg: #1f2937;--text-primary: #f9fafb;--text-secondary: #d1d5db;--tag-bg: #374151;--tag-text: #e5e7eb;--tag-hover-bg: #4b5563;--image-bg: #374151}.project-grid[data-v-3a3374a9]{display:grid;gap:2rem;width:100%;grid-template-columns:repeat(3,1fr)}.project-grid__item[data-v-3a3374a9]{width:100%;height:100%}@media(max-width:1024px){.project-grid[data-v-3a3374a9]{grid-template-columns:repeat(2,1fr);gap:1.5rem}}@media(max-width:768px){.project-grid[data-v-3a3374a9]{grid-template-columns:1fr;gap:1.25rem}}@media(max-width:480px){.project-grid[data-v-3a3374a9]{gap:1rem}}.scroll-reveal[data-v-6e796d38]{transition-property:opacity,transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.scroll-reveal-hidden[data-v-6e796d38]{opacity:0}.scroll-reveal-visible[data-v-6e796d38]{opacity:1}.scroll-reveal-fade-up.scroll-reveal-hidden[data-v-6e796d38]{transform:translateY(30px)}.scroll-reveal-fade-up.scroll-reveal-visible[data-v-6e796d38]{transform:translateY(0)}.scroll-reveal-fade-in.scroll-reveal-hidden[data-v-6e796d38]{opacity:0}.scroll-reveal-fade-in.scroll-reveal-visible[data-v-6e796d38]{opacity:1}.scroll-reveal-slide-left.scroll-reveal-hidden[data-v-6e796d38]{transform:translate(50px)}.scroll-reveal-slide-left.scroll-reveal-visible[data-v-6e796d38]{transform:translate(0)}.scroll-reveal-slide-right.scroll-reveal-hidden[data-v-6e796d38]{transform:translate(-50px)}.scroll-reveal-slide-right.scroll-reveal-visible[data-v-6e796d38]{transform:translate(0)}.scroll-reveal-fade-down.scroll-reveal-hidden[data-v-6e796d38]{transform:translateY(-30px)}.scroll-reveal-fade-down.scroll-reveal-visible[data-v-6e796d38]{transform:translateY(0)}.scroll-reveal-zoom-in.scroll-reveal-hidden[data-v-6e796d38]{transform:scale(.9)}.scroll-reveal-zoom-in.scroll-reveal-visible[data-v-6e796d38]{transform:scale(1)}.projects-view[data-v-5c304ff4]{min-height:calc(100vh - 73px);padding:var(--spacing-xl)}.container[data-v-5c304ff4]{max-width:1200px;margin:0 auto}.page-title[data-v-5c304ff4]{font-size:clamp(2rem,4vw,3rem);font-weight:700;margin-bottom:var(--spacing-sm);text-align:center}.page-subtitle[data-v-5c304ff4]{font-size:clamp(1rem,2vw,1.25rem);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--spacing-xl)}.project-detail-view[data-v-be99af9c]{min-height:calc(100vh - 73px);padding:var(--spacing-xl)}.container[data-v-be99af9c]{max-width:900px;margin:0 auto}.project-detail[data-v-be99af9c]{animation:fadeIn-be99af9c .5s ease-in}.project-title[data-v-be99af9c]{font-size:clamp(2rem,4vw,3rem);font-weight:700;margin-bottom:var(--spacing-lg)}.project-images[data-v-be99af9c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.image-wrapper[data-v-be99af9c]{position:relative;width:100%;overflow:hidden;border-radius:var(--border-radius-lg);background-color:var(--color-surface);box-shadow:0 4px 6px #0000001a;transition:transform var(--transition-base),box-shadow var(--transition-base);cursor:pointer}.image-wrapper[data-v-be99af9c]:hover{transform:translateY(-4px);box-shadow:0 8px 16px #00000026}.image-wrapper:hover .image-overlay[data-v-be99af9c]{opacity:1}.image-wrapper img[data-v-be99af9c]{width:100%;height:auto;display:block;object-fit:cover}.image-overlay[data-v-be99af9c]{position:absolute;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.zoom-icon[data-v-be99af9c]{width:48px;height:48px;color:#fff}.project-description[data-v-be99af9c]{font-size:1.125rem;line-height:1.8;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.project-meta[data-v-be99af9c]{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);margin-bottom:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-md);border-left:4px solid var(--color-primary)}.meta-item[data-v-be99af9c]{display:flex;align-items:center;gap:var(--spacing-xs)}.meta-label[data-v-be99af9c]{font-weight:600;color:var(--color-text)}.meta-value[data-v-be99af9c]{color:var(--color-text-secondary)}.project-tags[data-v-be99af9c]{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.tag[data-v-be99af9c]{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-surface);border-radius:var(--border-radius-full);font-size:.875rem;color:var(--color-primary);border:1px solid var(--color-border);transition:all var(--transition-base)}.tag[data-v-be99af9c]:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-2px)}.project-links[data-v-be99af9c]{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);flex-wrap:wrap}.project-link[data-v-be99af9c]{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:#fff;text-decoration:none;border-radius:var(--border-radius-md);font-weight:600;transition:transform var(--transition-base),box-shadow var(--transition-base)}.project-link[data-v-be99af9c]:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.project-link--github[data-v-be99af9c]{background:linear-gradient(135deg,#24292e,#1a1e22)}.project-link--gitee[data-v-be99af9c]{background:linear-gradient(135deg,#c71d23,#a01419)}.back-link[data-v-be99af9c]{display:inline-block;color:var(--color-primary);text-decoration:none;font-weight:600;transition:color var(--transition-base)}.back-link[data-v-be99af9c]:hover{color:var(--color-secondary)}.not-found[data-v-be99af9c]{text-align:center;padding:var(--spacing-xl)}.not-found h2[data-v-be99af9c]{font-size:2rem;margin-bottom:var(--spacing-md)}.not-found p[data-v-be99af9c]{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}@keyframes fadeIn-be99af9c{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.image-preview-modal[data-v-be99af9c]{position:fixed;inset:0;background:#000000f2;z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn-be99af9c .3s ease}.preview-content[data-v-be99af9c]{max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md)}.preview-content img[data-v-be99af9c]{max-width:100%;max-height:85vh;object-fit:contain;border-radius:var(--border-radius-md);box-shadow:0 8px 32px #00000080}.preview-close[data-v-be99af9c]{position:absolute;top:var(--spacing-lg);right:var(--spacing-lg);width:48px;height:48px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s ease,transform .2s ease;z-index:10001}.preview-close[data-v-be99af9c]:hover{background:#fff3;transform:scale(1.1)}.preview-close svg[data-v-be99af9c]{width:24px;height:24px}.preview-nav[data-v-be99af9c]{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;background:#ffffff1a;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .3s ease,transform .2s ease;z-index:10001}.preview-nav[data-v-be99af9c]:hover{background:#fff3;transform:translateY(-50%) scale(1.1)}.preview-nav svg[data-v-be99af9c]{width:24px;height:24px}.preview-prev[data-v-be99af9c]{left:var(--spacing-lg)}.preview-next[data-v-be99af9c]{right:var(--spacing-lg)}.preview-counter[data-v-be99af9c]{color:#fff;font-size:1rem;font-weight:500;padding:var(--spacing-sm) var(--spacing-md);background:#00000080;border-radius:var(--border-radius-md)}@media(max-width:768px){.project-detail-view[data-v-be99af9c]{padding:var(--spacing-md)}.project-title[data-v-be99af9c]{font-size:1.75rem}.project-images[data-v-be99af9c]{grid-template-columns:1fr}.project-meta[data-v-be99af9c]{flex-direction:column;gap:var(--spacing-sm)}.project-links[data-v-be99af9c]{flex-direction:column}.project-link[data-v-be99af9c]{text-align:center}.preview-nav[data-v-be99af9c]{width:40px;height:40px}.preview-close[data-v-be99af9c]{width:40px;height:40px;top:var(--spacing-md);right:var(--spacing-md)}.preview-prev[data-v-be99af9c]{left:var(--spacing-md)}.preview-next[data-v-be99af9c]{right:var(--spacing-md)}}.profile-section[data-v-430e7bf7]{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;text-align:center}.avatar-container[data-v-430e7bf7]{position:relative;width:200px;height:200px;border-radius:50%;overflow:hidden;box-shadow:0 8px 24px #00000026;transition:transform .3s ease,box-shadow .3s ease}.avatar-container[data-v-430e7bf7]:hover{transform:scale(1.05);box-shadow:0 12px 32px #0003}.avatar[data-v-430e7bf7]{width:100%;height:100%;object-fit:cover;display:block}.profile-info[data-v-430e7bf7]{max-width:800px}.profile-name[data-v-430e7bf7]{font-size:2.5rem;font-weight:700;margin:0 0 .5rem;color:var(--color-text-primary, #1a1a1a);line-height:1.2}.profile-title[data-v-430e7bf7]{font-size:1.5rem;font-weight:500;margin:0 0 1.5rem;color:var(--color-primary, #3b82f6);line-height:1.3}.profile-bio[data-v-430e7bf7]{font-size:1.125rem;line-height:1.8;color:var(--color-text-secondary, #4a5568);margin:0;text-align:justify;text-justify:inter-word}@media(max-width:1024px){.profile-section[data-v-430e7bf7]{padding:1.5rem}.avatar-container[data-v-430e7bf7]{width:160px;height:160px}.profile-name[data-v-430e7bf7]{font-size:2rem}.profile-title[data-v-430e7bf7]{font-size:1.25rem}.profile-bio[data-v-430e7bf7]{font-size:1rem}}@media(max-width:768px){.profile-section[data-v-430e7bf7]{padding:1rem;gap:1.5rem}.avatar-container[data-v-430e7bf7]{width:120px;height:120px}.profile-name[data-v-430e7bf7]{font-size:1.75rem}.profile-title[data-v-430e7bf7]{font-size:1.125rem}.profile-bio[data-v-430e7bf7]{font-size:.9375rem;text-align:left}}@media(prefers-color-scheme:dark){.profile-name[data-v-430e7bf7]{color:var(--color-text-primary, #f7fafc)}.profile-bio[data-v-430e7bf7]{color:var(--color-text-secondary, #cbd5e0)}}.dark{color:var(--color-text-secondary, #cbd5e0)}.skills-section[data-v-585d6023]{padding:2rem 0}.section-title[data-v-585d6023]{font-size:2rem;font-weight:700;margin-bottom:2rem;text-align:center;color:var(--color-text-primary, #1a1a1a);position:relative}.section-title[data-v-585d6023]:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:60px;height:4px;background:linear-gradient(90deg,var(--color-primary, #3b82f6),var(--color-secondary, #8b5cf6));border-radius:2px}.skills-grid[data-v-585d6023]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.skill-category[data-v-585d6023]{padding:1.5rem;background:var(--color-surface, #ffffff);border-radius:12px;box-shadow:0 2px 8px #00000014;transition:transform .3s ease,box-shadow .3s ease;border:1px solid var(--color-border, #e2e8f0)}.skill-category[data-v-585d6023]:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.category-title[data-v-585d6023]{font-size:1.25rem;font-weight:600;margin:0 0 1rem;color:var(--color-primary, #3b82f6);display:flex;align-items:center;gap:.5rem}.category-title[data-v-585d6023]:before{content:"▸";font-size:1.5rem;line-height:1}.skill-tags[data-v-585d6023]{display:flex;flex-wrap:wrap;gap:.5rem}.skill-tag[data-v-585d6023]{display:inline-block;padding:.5rem 1rem;background:var(--color-background, #f7fafc);border:1px solid var(--color-border, #e2e8f0);border-radius:20px;font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #4a5568);transition:all .2s ease;cursor:default;-webkit-user-select:none;user-select:none}.skill-tag[data-v-585d6023]:hover{background:var(--color-primary, #3b82f6);color:var(--color-background, #ffffff);border-color:var(--color-primary, #3b82f6);transform:scale(1.05);box-shadow:0 2px 8px #3b82f64d}@media(max-width:1024px){.skills-grid[data-v-585d6023]{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}.skill-category[data-v-585d6023]{padding:1.25rem}.section-title[data-v-585d6023]{font-size:1.75rem}}@media(max-width:768px){.skills-section[data-v-585d6023]{padding:1.5rem 0}.skills-grid[data-v-585d6023]{grid-template-columns:1fr;gap:1rem}.skill-category[data-v-585d6023]{padding:1rem}.section-title[data-v-585d6023]{font-size:1.5rem;margin-bottom:1.5rem}.category-title[data-v-585d6023]{font-size:1.125rem}.skill-tag[data-v-585d6023]{padding:.375rem .75rem;font-size:.8125rem}}@media(max-width:480px){.section-title[data-v-585d6023]{font-size:1.25rem}.skill-tags[data-v-585d6023]{gap:.375rem}.skill-tag[data-v-585d6023]{padding:.3rem .6rem;font-size:.75rem}}@media(prefers-color-scheme:dark){.section-title[data-v-585d6023]{color:var(--color-text-primary, #f7fafc)}.skill-category[data-v-585d6023]{background:var(--color-surface, #2d3748);border-color:var(--color-border, #4a5568)}.skill-tag[data-v-585d6023]{background:var(--color-background, #1a202c);color:var(--color-text-secondary, #cbd5e0);border-color:var(--color-border, #4a5568)}}.dark{color:var(--color-text-primary, #f7fafc)}.dark{background:var(--color-surface, #2d3748);border-color:var(--color-border, #4a5568)}.dark{background:var(--color-background, #1a202c);color:var(--color-text-secondary, #cbd5e0);border-color:var(--color-border, #4a5568)}.dark{background:var(--color-primary, #3b82f6);color:var(--color-background, #ffffff);border-color:var(--color-primary, #3b82f6)}.contact-section[data-v-60324b5f]{padding:2rem 0}.section-title[data-v-60324b5f]{font-size:2rem;font-weight:700;margin-bottom:2rem;text-align:center;color:var(--color-text-primary, #1a1a1a);position:relative}.section-title[data-v-60324b5f]:after{content:"";position:absolute;bottom:-.5rem;left:50%;transform:translate(-50%);width:60px;height:4px;background:linear-gradient(90deg,var(--color-primary, #3b82f6),var(--color-secondary, #8b5cf6));border-radius:2px}.contact-content[data-v-60324b5f]{display:flex;flex-direction:column;align-items:center;gap:2rem;max-width:600px;margin:0 auto}.contact-item[data-v-60324b5f]{display:flex;align-items:center;gap:1rem;padding:1.5rem 2rem;background:var(--color-surface, #ffffff);border-radius:12px;box-shadow:0 2px 8px #00000014;border:1px solid var(--color-border, #e2e8f0);transition:all .3s ease;width:100%}.contact-item[data-v-60324b5f]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f}.contact-icon[data-v-60324b5f]{font-size:2rem;line-height:1;flex-shrink:0}.contact-details[data-v-60324b5f]{display:flex;flex-direction:column;gap:.25rem;flex:1}.contact-label[data-v-60324b5f]{font-size:.875rem;font-weight:600;color:var(--color-text-secondary, #4a5568);text-transform:uppercase;letter-spacing:.05em}.contact-link[data-v-60324b5f]{font-size:1.125rem;font-weight:500;color:var(--color-primary, #3b82f6);text-decoration:none;transition:color .2s ease;word-break:break-all}.contact-link[data-v-60324b5f]:hover{color:var(--color-secondary, #8b5cf6);text-decoration:underline}.social-links[data-v-60324b5f]{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;width:100%}.social-link[data-v-60324b5f]{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;background:var(--color-surface, #ffffff);border:2px solid var(--color-border, #e2e8f0);border-radius:12px;color:var(--color-text-primary, #1a1a1a);text-decoration:none;font-weight:600;font-size:1rem;transition:all .3s ease;flex:1;min-width:150px;justify-content:center}.social-link[data-v-60324b5f]:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.social-icon[data-v-60324b5f]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.social-text[data-v-60324b5f]{font-size:1rem;font-weight:600}.gitee-link[data-v-60324b5f]{border-color:#c71d23}.gitee-link[data-v-60324b5f]:hover{background:#c71d23;color:#fff;border-color:#c71d23}@media(max-width:768px){.section-title[data-v-60324b5f]{font-size:1.75rem}.contact-content[data-v-60324b5f]{max-width:100%;padding:0 1rem}.contact-item[data-v-60324b5f]{padding:1.25rem 1.5rem}.social-links[data-v-60324b5f]{flex-direction:column;width:100%}.social-link[data-v-60324b5f]{width:100%;min-width:unset}}@media(max-width:480px){.section-title[data-v-60324b5f]{font-size:1.5rem}.contact-item[data-v-60324b5f]{padding:1rem;gap:.75rem}.contact-icon[data-v-60324b5f]{font-size:1.5rem}.contact-link[data-v-60324b5f]{font-size:1rem}.social-link[data-v-60324b5f]{padding:.875rem 1.25rem;font-size:.9375rem}}.about-view[data-v-c8e02648]{min-height:calc(100vh - 73px);padding:var(--spacing-xl)}.container[data-v-c8e02648]{max-width:1200px;margin:0 auto}.page-title[data-v-c8e02648]{font-size:clamp(2rem,4vw,3rem);font-weight:700;margin-bottom:var(--spacing-xl);text-align:center;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.experience-section[data-v-c8e02648]{margin-bottom:var(--spacing-2xl)}.section-title[data-v-c8e02648]{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;margin-bottom:var(--spacing-lg);color:var(--color-text-primary);text-align:center}.experience-list[data-v-c8e02648]{display:flex;flex-direction:column;gap:var(--spacing-lg)}.experience-item[data-v-c8e02648]{padding:var(--spacing-lg);background:var(--color-surface);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);border-left:4px solid var(--color-primary);transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;will-change:transform}.experience-item[data-v-c8e02648]:hover{transform:translate(4px);box-shadow:var(--shadow-md)}.experience-header[data-v-c8e02648]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--spacing-xs);flex-wrap:wrap;gap:var(--spacing-sm)}.experience-title[data-v-c8e02648]{font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.experience-period[data-v-c8e02648]{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.experience-company[data-v-c8e02648]{font-size:1rem;color:var(--color-primary);font-weight:500;margin-bottom:var(--spacing-sm)}.experience-description[data-v-c8e02648]{font-size:.9375rem;line-height:1.6;color:var(--color-text-secondary)}@media(max-width:768px){.about-view[data-v-c8e02648]{padding:var(--spacing-md)}.experience-header[data-v-c8e02648]{flex-direction:column;align-items:flex-start}}@media(max-width:480px){.page-title[data-v-c8e02648]{font-size:1.75rem}}:root{--color-primary: #10b981;--color-primary-light: #34d399;--color-primary-dark: #059669;--color-secondary: #14b8a6;--color-secondary-light: #2dd4bf;--color-secondary-dark: #0d9488;--color-background: #ffffff;--color-surface: #f9fafb;--color-surface-elevated: #ffffff;--color-text-primary: #111827;--color-text-secondary: #6b7280;--color-text-tertiary: #9ca3af;--color-border: #e5e7eb;--color-divider: #f3f4f6;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--color-overlay: rgba(0, 0, 0, .5);--color-overlay-light: rgba(0, 0, 0, .1);--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "Fira Code", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--line-height-loose: 2;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--spacing-5xl: 8rem;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070}[data-theme=dark]{--color-background: #0f172a;--color-surface: #1e293b;--color-surface-elevated: #334155;--color-text-primary: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-tertiary: #94a3b8;--color-border: #334155;--color-divider: #1e293b;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 10px 10px -5px rgba(0, 0, 0, .3);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .5);--color-overlay: rgba(0, 0, 0, .7);--color-overlay-light: rgba(0, 0, 0, .3)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,dl,dd,ol,ul,figure,hr{margin:0;padding:0}ol,ul{list-style:none}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:var(--line-height-normal);font-family:var(--font-family-base);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-background);overflow-x:hidden}img,picture,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer;padding:0}a{color:inherit;text-decoration:none}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary)}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-3xl)}h4{font-size:var(--font-size-2xl)}h5{font-size:var(--font-size-xl)}h6{font-size:var(--font-size-lg)}p{line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}a{transition:color var(--transition-fast)}a:hover{color:var(--color-primary)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}code,pre{font-family:var(--font-family-mono);font-size:var(--font-size-sm)}::selection{background-color:var(--color-primary);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-surface)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--spacing-md);padding-right:var(--spacing-md)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}:root{--breakpoint-xs: 0px;--breakpoint-sm: 640px;--breakpoint-md: 768px;--breakpoint-lg: 1024px;--breakpoint-xl: 1280px;--breakpoint-2xl: 1536px}@media(min-width:640px){.container{max-width:var(--container-sm);padding-left:var(--spacing-lg);padding-right:var(--spacing-lg)}}@media(min-width:768px){.container{max-width:var(--container-md)}}@media(min-width:1024px){.container{max-width:var(--container-lg);padding-left:var(--spacing-xl);padding-right:var(--spacing-xl)}}@media(min-width:1280px){.container{max-width:var(--container-xl)}}@media(min-width:1536px){.container{max-width:var(--container-2xl)}}:root{--font-size-display: var(--font-size-4xl);--font-size-heading-1: var(--font-size-3xl);--font-size-heading-2: var(--font-size-2xl);--font-size-heading-3: var(--font-size-xl)}@media(min-width:768px){:root{--font-size-display: var(--font-size-5xl);--font-size-heading-1: var(--font-size-4xl);--font-size-heading-2: var(--font-size-3xl);--font-size-heading-3: var(--font-size-2xl)}h1{font-size:var(--font-size-heading-1)}h2{font-size:var(--font-size-heading-2)}h3{font-size:var(--font-size-heading-3)}}@media(min-width:1024px){:root{--font-size-display: var(--font-size-6xl);--font-size-heading-1: var(--font-size-5xl);--font-size-heading-2: var(--font-size-4xl);--font-size-heading-3: var(--font-size-3xl)}h1{font-size:var(--font-size-heading-1)}h2{font-size:var(--font-size-heading-2)}h3{font-size:var(--font-size-heading-3)}}:root{--section-padding-y: var(--spacing-3xl);--section-padding-x: var(--spacing-md);--card-padding: var(--spacing-lg);--grid-gap: var(--spacing-lg)}@media(min-width:768px){:root{--section-padding-y: var(--spacing-4xl);--section-padding-x: var(--spacing-xl);--card-padding: var(--spacing-xl);--grid-gap: var(--spacing-xl)}}@media(min-width:1024px){:root{--section-padding-y: var(--spacing-5xl);--section-padding-x: var(--spacing-2xl);--card-padding: var(--spacing-2xl);--grid-gap: var(--spacing-2xl)}}.grid-responsive{display:grid;gap:var(--grid-gap);grid-template-columns:1fr}@media(min-width:768px){.grid-responsive,.grid-responsive-2{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.grid-responsive{grid-template-columns:repeat(3,1fr)}.grid-responsive-2{grid-template-columns:repeat(2,1fr)}.grid-responsive-4{grid-template-columns:repeat(4,1fr)}}.hidden-mobile{display:none}@media(min-width:768px){.hidden-mobile{display:block}}.hidden-tablet-up{display:block}@media(min-width:768px){.hidden-tablet-up{display:none}}.hidden-desktop-up{display:block}@media(min-width:1024px){.hidden-desktop-up{display:none}}.show-mobile-only{display:block}@media(min-width:768px){.show-mobile-only{display:none}}@media(max-width:767px){button,a,input[type=button],input[type=submit]{min-height:44px;min-width:44px}}.text-center-mobile{text-align:center}@media(min-width:768px){.text-center-mobile{text-align:left}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideInDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.9)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes rotateIn{0%{opacity:0;transform:rotate(-180deg) scale(.5)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-10px)}20%,40%,60%,80%{transform:translate(10px)}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes glow{0%,to{box-shadow:0 0 5px var(--color-primary),0 0 10px var(--color-primary),0 0 15px var(--color-primary)}50%{box-shadow:0 0 10px var(--color-primary),0 0 20px var(--color-primary),0 0 30px var(--color-primary)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes typing{0%{width:0}to{width:100%}}@keyframes blink{0%,to{border-color:transparent}50%{border-color:var(--color-text-primary)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-fade-in-up{animation:fadeInUp var(--transition-slow) ease-out}.animate-fade-in-down{animation:fadeInDown var(--transition-slow) ease-out}.animate-fade-in-left{animation:fadeInLeft var(--transition-slow) ease-out}.animate-fade-in-right{animation:fadeInRight var(--transition-slow) ease-out}.animate-scale-in{animation:scaleIn var(--transition-base) ease-out}.animate-bounce-in{animation:bounceIn .6s ease-out}.animate-rotate-in{animation:rotateIn .5s ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-rotate{animation:rotate 2s linear infinite}.animate-gradient{background-size:200% 200%;animation:gradientShift 3s ease infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.animation-delay-100{animation-delay:.1s}.animation-delay-200{animation-delay:.2s}.animation-delay-300{animation-delay:.3s}.animation-delay-400{animation-delay:.4s}.animation-delay-500{animation-delay:.5s}.animation-delay-1000{animation-delay:1s}.transition-all{transition:all var(--transition-base)}.transition-colors{transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.transition-transform{transition:transform var(--transition-base)}.transition-opacity{transition:opacity var(--transition-base)}.hover-lift{transition:transform var(--transition-base),box-shadow var(--transition-base)}.hover-lift:hover{transform:translateY(-5px);box-shadow:var(--shadow-xl)}.hover-scale{transition:transform var(--transition-base)}.hover-scale:hover{transform:scale(1.05)}.hover-rotate{transition:transform var(--transition-base)}.hover-rotate:hover{transform:rotate(5deg)}.hover-glow{transition:box-shadow var(--transition-base)}.hover-glow:hover{box-shadow:0 0 20px var(--color-primary)}.transform-3d{transform-style:preserve-3d;perspective:1000px}.hover-flip{transition:transform var(--transition-slow);transform-style:preserve-3d}.hover-flip:hover{transform:rotateY(180deg)}.hover-tilt{transition:transform var(--transition-base)}.hover-tilt:hover{transform:perspective(1000px) rotateX(10deg) rotateY(10deg)}.page-enter-active,.page-leave-active{transition:opacity var(--transition-base),transform var(--transition-base)}.page-enter-from{opacity:0;transform:translateY(20px)}.page-leave-to{opacity:0;transform:translateY(-20px)}.slide-enter-active,.slide-leave-active{transition:transform var(--transition-base),opacity var(--transition-base)}.slide-enter-from{transform:translate(100%);opacity:0}.slide-leave-to{transform:translate(-100%);opacity:0}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-base)}.fade-enter-from,.fade-leave-to{opacity:0}.scale-enter-active,.scale-leave-active{transition:transform var(--transition-base),opacity var(--transition-base)}.scale-enter-from{transform:scale(.9);opacity:0}.scale-leave-to{transform:scale(1.1);opacity:0}
