body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1e293b;background-color:#fff;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2,h3,h4,h5,h6{font-weight:700}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;height:auto;display:block}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}:root{--primary-color:#2563eb;--primary-dark:#1e40af;--primary-light:#3b82f6;--secondary-color:#1e293b;--accent-color:#f97316;--accent-light:#fb923c;--text-primary:#1e293b;--text-secondary:#64748b;--text-light:#f1f5f9;--border-color:#e2e8f0;--background-light:#f8fafc;--background-white:#fff;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--transition:all .3s ease}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background-color:var(--background-white);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.app{flex-direction:column;width:100%;min-height:100vh;display:flex}.header{z-index:1000;background:var(--background-white);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);position:sticky;top:0}.nav-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:1rem 2rem;display:flex}.logo{cursor:pointer;align-items:center;gap:.75rem;text-decoration:none;display:flex}.logo-icon{width:auto;height:40px}.logo-text{color:var(--primary-color);font-size:1.25rem;font-weight:700;display:none}@media (width>=768px){.logo-text{display:inline}}.nav{align-items:center;gap:2rem;display:none}@media (width>=768px){.nav{display:flex}}.nav button{color:var(--text-primary);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem 0;font-size:.95rem;font-weight:500}.nav button:hover{color:var(--primary-color);border-bottom-color:var(--primary-color)}.menu-toggle{cursor:pointer;color:var(--text-primary);background:0 0;border:none;justify-content:center;align-items:center;font-size:1.5rem;display:flex}@media (width>=768px){.menu-toggle{display:none}}.nav.open{background:var(--background-white);border-bottom:1px solid var(--border-color);flex-direction:column;gap:.5rem;padding:1rem;display:flex;position:absolute;top:60px;left:0;right:0}.nav.open button{text-align:left;border:none;width:100%;padding:.75rem}.hero{background:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);color:var(--text-light);text-align:center;flex-grow:1;justify-content:center;align-items:center;min-height:600px;padding:4rem 2rem;display:flex}.hero-content{max-width:800px;margin:0 auto}.hero-logo{width:auto;height:120px;margin-bottom:2rem;animation:.8s ease-out fadeInDown}.hero h1{letter-spacing:-.5px;margin-bottom:1rem;font-size:2.5rem;font-weight:800;animation:.8s ease-out .1s backwards fadeInUp}@media (width>=768px){.hero h1{font-size:3.5rem}}.tagline{color:#ffffffe6;margin-bottom:2rem;font-size:1.25rem;animation:.8s ease-out .2s backwards fadeInUp}.cta-button{cursor:pointer;transition:var(--transition);text-align:center;border:none;border-radius:.5rem;padding:.75rem 2rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-block}.cta-button.primary{background-color:var(--accent-color);color:#fff;animation:.8s ease-out .3s backwards fadeInUp}.cta-button.primary:hover{background-color:var(--accent-light);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.section{padding:4rem 2rem}@media (width>=768px){.section{padding:5rem 2rem}}.container{max-width:1200px;margin:0 auto}.section h2{color:var(--text-primary);margin-bottom:1rem;font-size:2rem;font-weight:800}@media (width>=768px){.section h2{font-size:2.5rem}}.section-subtitle{color:var(--text-secondary);margin-bottom:2rem;font-size:1.1rem}.about{background-color:var(--background-light)}.about-content{align-items:center;gap:2rem;display:grid}.about-text{line-height:1.8}.about-text p{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.05rem}.intro-text{color:var(--primary-color);font-size:1.2rem;font-weight:600}.about-text strong{color:var(--primary-color);font-weight:700}.highlights{margin-top:2rem;list-style:none}.highlights li{color:var(--text-primary);padding:.75rem 0;font-size:1.05rem}.highlights li:before{margin-right:.75rem}.portfolio{background-color:var(--background-white)}.portfolio-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2rem;margin-top:3rem;display:grid}.portfolio-card{border:2px solid var(--border-color);color:inherit;transition:var(--transition);cursor:pointer;background:#fff;border-radius:.75rem;flex-direction:column;gap:1rem;padding:2rem;text-decoration:none;display:flex}.portfolio-card:hover{border-color:var(--primary-color);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-header{justify-content:space-between;align-items:start;gap:1rem;display:flex}.portfolio-card h3{color:var(--primary-color);margin:0;font-size:1.5rem}.external-link{color:var(--primary-color);flex-shrink:0;font-size:1.5rem}.portfolio-card p{color:var(--text-secondary);flex-grow:1;line-height:1.6}.tech-tags{flex-wrap:wrap;gap:.5rem;margin-top:auto;display:flex}.tech-tags span{background-color:var(--background-light);color:var(--primary-color);border-radius:.25rem;padding:.25rem .75rem;font-size:.85rem;font-weight:600}.services{background-color:var(--background-light)}.services-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-top:3rem;display:grid}.service-card{text-align:center;transition:var(--transition);box-shadow:var(--shadow-sm);background:#fff;border-radius:.75rem;padding:2rem}.service-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.service-icon{margin-bottom:1rem;font-size:2.5rem}.service-card h3{color:var(--primary-color);margin-bottom:1rem;font-size:1.25rem}.service-card p{color:var(--text-secondary);line-height:1.6}.contact{background:linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);color:var(--text-light);text-align:center}.contact h2{color:#fff;margin-bottom:1rem}.contact .section-subtitle{color:#ffffffe6}.contact-content{margin-top:2rem}.contact-intro{color:#fffffff2;margin-bottom:2rem;font-size:1.1rem;line-height:1.6}.contact .cta-button{margin-bottom:2rem}.contact-note{color:#fffc;font-size:.95rem}.footer{background-color:var(--secondary-color);color:var(--text-light);margin-top:auto;padding:3rem 2rem 1rem}.footer-content{grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;max-width:1200px;margin:0 auto 2rem;display:grid}.footer-section h4{color:#fff;margin-bottom:1rem;font-size:1.1rem}.footer-section p{color:#ffffffb3;line-height:1.6}.footer-section ul{list-style:none}.footer-section ul li{margin-bottom:.75rem}.footer-section button,.footer-section a{color:#ffffffb3;cursor:pointer;transition:var(--transition);background:0 0;border:none;font-size:.95rem;text-decoration:none}.footer-section button:hover,.footer-section a:hover{color:var(--accent-color)}.footer-bottom{text-align:center;color:#fff9;border-top:1px solid #ffffff1a;max-width:1200px;margin:0 auto;padding-top:2rem;font-size:.9rem}.footer-bottom p{margin:.5rem 0}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.hero h1{font-size:2rem}.tagline{font-size:1rem}.section h2{font-size:1.75rem}.section{padding:3rem 1rem}.portfolio-grid,.services-grid,.footer-content{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
