#app{min-height:100vh;display:flex;flex-direction:column}main{flex:1;position:relative}.loading-container{display:flex;justify-content:center;align-items:center;min-height:400px;width:100%}.loading-spinner{width:40px;height:40px;border:4px solid rgba(59,130,246,.1);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active{transition:all .3s ease-out}.slide-leave-active{transition:all .3s ease-in}.slide-enter-from{transform:translate(30px);opacity:0}.slide-leave-to{transform:translate(-30px);opacity:0}.scale-enter-active,.scale-leave-active{transition:all .3s ease}.scale-enter-from,.scale-leave-to{transform:scale(.95);opacity:0}.page-transition-enter-active,.page-transition-leave-active{transition:all .2s ease}.page-transition-enter-from{opacity:0;transform:translateY(20px)}.page-transition-enter-to{opacity:1;transform:translateY(0)}.route-transition{transition:all .2s ease}:root{--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-light: #60a5fa;--color-primary-lighter: #93c5fd;--color-text: #1f2937;--color-text-light: #6b7280;--color-text-lighter: #9ca3af;--color-bg: #ffffff;--color-bg-light: #f9fafb;--color-bg-lighter: #f3f4f6;--color-bg-dark: #111827;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--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);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2.5rem;--spacing-xl: 4rem;--spacing-2xl: 6rem;--font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-heading: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--font-family-mono: "Fira Code", "Consolas", "Monaco", "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-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--gradient-primary: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--gradient-primary-light: linear-gradient(135deg, #60a5fa 0%, #3b82f6 100%);--gradient-hero: linear-gradient(135deg, rgba(59, 130, 246, .95) 0%, rgba(37, 99, 235, .95) 100%);--gradient-overlay: linear-gradient(135deg, rgba(0, 0, 0, .4) 0%, rgba(0, 0, 0, .2) 100%);--gradient-subtle: linear-gradient(135deg, #f9fafb 0%, #f3f4f6 100%);--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--glass-bg: rgba(255, 255, 255, .8);--glass-border: rgba(255, 255, 255, .3);--glass-blur: blur(12px)}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-dark)}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);margin-bottom:var(--spacing-md);letter-spacing:-.02em}h1{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold)}h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold)}h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold)}p{margin-bottom:var(--spacing-sm);line-height:1.8}.container{max-width:1280px;margin:0 auto;padding:0 var(--spacing-md)}.container-wide{max-width:1536px;margin:0 auto;padding:0 var(--spacing-md)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);text-align:center;text-decoration:none;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.btn:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn:focus{outline:none;ring:2px;ring-color:var(--color-primary-light);ring-offset:2px}.btn-outline{background-color:transparent;border:1.5px solid var(--color-primary);color:var(--color-primary);box-shadow:none}.btn-outline:hover{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-large{padding:1rem 2rem;font-size:var(--font-size-lg);border-radius:var(--radius-xl)}.card{background:var(--color-bg);border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden;transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px);border-color:var(--color-border-light)}.grid{display:grid;gap:var(--spacing-md)}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.section-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);text-align:center;margin-bottom:var(--spacing-sm);color:var(--color-text);letter-spacing:-.01em;line-height:1.3}.section-subtitle{text-align:center;color:var(--color-text-light);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);margin-bottom:var(--spacing-lg);max-width:700px;margin-left:auto;margin-right:auto;line-height:1.6}.divider{height:1px;background:var(--color-border);margin:var(--spacing-lg) 0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.mt-1{margin-top:var(--spacing-sm)}.mt-2{margin-top:var(--spacing-md)}.mt-3{margin-top:var(--spacing-lg)}.mt-4{margin-top:var(--spacing-xl)}.mb-1{margin-bottom:var(--spacing-sm)}.mb-2{margin-bottom:var(--spacing-md)}.mb-3{margin-bottom:var(--spacing-lg)}.mb-4{margin-bottom:var(--spacing-xl)}@media (max-width: 768px){html{font-size:14px}h1{font-size:2rem}h2{font-size:1.75rem}.container{padding:0 var(--spacing-sm)}.section-title{font-size:2rem}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}@media (max-width: 480px){html{font-size:14px}h1{font-size:1.75rem}.btn{padding:.625rem 1.25rem;font-size:.9rem}}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);border-radius:var(--radius-xl)}.glass-strong{background:#ffffffe6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.4);box-shadow:var(--shadow-xl)}.glass-dark{background:#1f2937cc;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow-lg)}.glassmorphism{background:#ffffffb3;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow-md);border-radius:var(--radius-xl)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-50px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes slideRight{0%{opacity:0;transform:translate(-50px)}to{opacity:1;transform:translate(0)}}@keyframes scale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes rotate{0%{opacity:0;transform:rotate(-10deg) scale(.9)}to{opacity:1;transform:rotate(0) scale(1)}}.animate-fade-in{animation:fadeIn .6s ease-out forwards}.animate-slide-up{animation:slideUp .6s ease-out forwards}.animate-slide-down{animation:slideDown .6s ease-out forwards}.animate-slide-left{animation:slideLeft .6s ease-out forwards}.animate-slide-right{animation:slideRight .6s ease-out forwards}.animate-scale{animation:scale .6s ease-out forwards}.animate-rotate{animation:rotate .6s ease-out forwards}.animate-on-scroll{opacity:0}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes glow{0%,to{box-shadow:0 0 20px #3b82f64d}50%{box-shadow:0 0 30px #3b82f680}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.gradient-text{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.shimmer-effect{background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);background-size:200% 100%;animation:shimmer 2s infinite}.glow-effect{animation:glow 2s ease-in-out infinite}.pulse-effect{animation:pulse 2s ease-in-out infinite}.card-3d{transform-style:preserve-3d;transition:transform .3s ease;perspective:1000px}.card-3d:hover{transform:rotateY(5deg) rotateX(-5deg) translateZ(20px)}.card-3d-flip{perspective:1000px;transform-style:preserve-3d}.card-3d-flip:hover{transform:rotateY(180deg)}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);transition:width .6s,height .6s}.ripple:active:after{width:300px;height:300px}.will-change-transform{will-change:transform}.will-change-opacity{will-change:opacity}.will-change-scroll{will-change:scroll-position}.gpu-accelerated{transform:translateZ(0);backface-visibility:hidden;perspective:1000px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
