@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;height:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100vh;line-height:1.6;font-family:var(--font-family-base);background-color:var(--color-bg-primary);color:var(--color-text-primary);-webkit-backface-visibility:hidden;backface-visibility:hidden;height:100%;margin:0;padding:0;overflow-x:hidden}[class*=card],[class*=btn],[class*=project],[style*=transition],[style*=transform]{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}img,picture,video{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0)}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul,ol{list-style:none}:root{--color-bg-primary:#fff;--color-bg-secondary:#f8fafc;--color-bg-tertiary:#f1f5f9;--color-primary:#2563eb;--color-primary-dark:#1e40af;--color-primary-light:#3b82f6;--color-accent:#60a5fa;--color-accent-light:#93c5fd;--color-text-primary:#0f172a;--color-text-secondary:#475569;--color-text-tertiary:#64748b;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--color-border-light:#f1f5f9;--color-border-dark:#cbd5e1;--color-success:#10b981;--color-error:#ef4444;--color-warning:#f59e0b;--color-info:#3b82f6;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-32:8rem;--font-family-base:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;--font-size-xs:clamp(.75rem, .7rem + .25vw, .875rem);--font-size-sm:clamp(.875rem, .825rem + .25vw, 1rem);--font-size-base:clamp(1rem, .95rem + .25vw, 1.125rem);--font-size-lg:clamp(1.125rem, 1.05rem + .375vw, 1.375rem);--font-size-xl:clamp(1.25rem, 1.15rem + .5vw, 1.625rem);--font-size-2xl:clamp(1.5rem, 1.35rem + .75vw, 2rem);--font-size-3xl:clamp(1.875rem, 1.65rem + 1.125vw, 2.625rem);--font-size-4xl:clamp(2.25rem, 1.95rem + 1.5vw, 3.25rem);--font-size-5xl:clamp(3rem, 2.5rem + 2.5vw, 4.5rem);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.2;--line-height-snug:1.4;--line-height-base:1.6;--line-height-relaxed:1.8;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.35s cubic-bezier(.4, 0, .2, 1);--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040;--z-base:0;--z-dropdown:1000;--z-sticky:1100;--z-fixed:1200;--z-modal:1300;--z-popover:1400;--z-tooltip:1500;--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--container-2xl:1536px}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-base);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin-bottom:var(--space-4)}h1{font-size:var(--font-size-5xl);letter-spacing:-.02em}h2{font-size:var(--font-size-4xl);letter-spacing:-.01em}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{color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);margin-bottom:var(--space-4);max-width:70ch}a{transition:color var(--transition-fast)}a:hover{color:var(--color-primary)}.container{width:100%;max-width:var(--container-xl);padding-inline:var(--space-6);margin-inline:auto}@media (width>=768px){.container{padding-inline:var(--space-8)}}@media (width>=1024px){.container{padding-inline:var(--space-12)}}.section-padding{padding-block:var(--space-16)}@media (width>=768px){.section-padding{padding-block:var(--space-20)}}@media (width>=1024px){.section-padding{padding-block:var(--space-24)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-to-main{background:var(--color-primary);color:#fff;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);z-index:var(--z-tooltip);text-decoration:none;position:absolute;top:-40px;left:0}.skip-to-main:focus{top:var(--space-4)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}::selection{background-color:var(--color-primary);color:#fff}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:high){:root{--color-text-primary:#000;--color-text-secondary:#1a1a1a;--color-border:#000}}.card{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-dark)}.card-elevated{background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card-elevated:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-base);cursor:pointer;white-space:nowrap;border:none;line-height:1.5;text-decoration:none;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background-color:var(--color-bg-primary);color:var(--color-primary);border:1px solid var(--color-border-dark)}.btn-secondary:hover{background-color:var(--color-bg-secondary);border-color:var(--color-primary)}.btn-ghost{color:var(--color-primary);background-color:#0000}.btn-ghost:hover{background-color:var(--color-bg-secondary)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-lg)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);line-height:1.5;display:inline-flex}.badge-primary{color:var(--color-primary);background-color:#dbeafe}.badge-success{color:var(--color-success);background-color:#d1fae5}.badge-warning{color:var(--color-warning);background-color:#fef3c7}.badge-error{color:var(--color-error);background-color:#fee2e2}.pattern-dots{background-image:radial-gradient(circle,#2563eb0d 1px,#0000 1px);background-size:24px 24px}.pattern-grid{background-image:linear-gradient(#0f172a0a 1px,#0000 1px),linear-gradient(90deg,#0f172a0a 1px,#0000 1px);background-size:32px 32px}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-muted{color:var(--color-text-muted)}.text-blue{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.bg-white{background-color:var(--color-bg-primary)}.bg-gray-50{background-color:var(--color-bg-secondary)}.bg-gray-100{background-color:var(--color-bg-tertiary)}.bg-blue{background-color:var(--color-primary);color:#fff}.bg-blue-light{color:var(--color-primary);background-color:#dbeafe}.border{border:1px solid var(--color-border)}.border-light{border:1px solid var(--color-border-light)}.border-dark{border:1px solid var(--color-border-dark)}.border-primary{border:1px solid var(--color-primary)}.border-t{border-top:1px solid var(--color-border)}.border-b{border-bottom:1px solid var(--color-border)}.border-l{border-left:1px solid var(--color-border)}.border-r{border-right:1px solid var(--color-border)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-md);border:2px solid var(--color-bg-secondary)}::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}
