:root{--primary-50:#f0f9ff;--primary-100:#e0f2fe;--primary-200:#bae6fd;--primary-300:#7dd3fc;--primary-400:#38bdf8;--primary-500:#0ea5e9;--primary-600:#0284c7;--primary-700:#0369a1;--primary-800:#075985;--primary-900:#0c4a6e;--primary-950:#082f49;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--green-50:#f0fdf4;--green-100:#dcfce7;--green-500:#22c55e;--green-600:#16a34a;--emerald-50:#ecfdf5;--emerald-500:#10b981;--purple-50:#faf5ff;--purple-500:#a855f7;--purple-600:#9333ea;--pink-500:#ec4899;--yellow-500:#eab308;--blue-500:#3b82f6;--blue-600:#2563eb;--cyan-500:#06b6d4;--orange-500:#f97316;--red-500:#ef4444;--red-600:#dc2626;--indigo-500:#6366f1;--slate-500:#64748b;--radius:.75rem;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-2xl:0 25px 50px -12px #00000040}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{color:var(--gray-900);-webkit-font-smoothing:antialiased;background:#fff;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}::selection{background:var(--primary-500);color:#fff}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-400);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--gray-500)}.container{max-width:80rem;margin:0 auto;padding:0 1rem}@media (width>=640px){.container{padding:0 1.5rem}}@media (width>=1024px){.container{padding:0 2rem}}.section-padding{padding:5rem 0}@media (width>=768px){.section-padding{padding:7rem 0}}@media (width>=1024px){.section-padding{padding:8rem 0}}.grid-2,.grid-3{gap:1.5rem;display:grid}@media (width>=768px){.grid-2,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.grid-3{grid-template-columns:repeat(3,1fr)}}.text-center{text-align:center}.text-gradient{background:linear-gradient(to right, var(--primary-400), var(--purple-500), var(--pink-500));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.section-title{margin-bottom:1rem;font-size:2.25rem;font-weight:700}@media (width>=768px){.section-title{font-size:3rem}}.section-subtitle{color:var(--gray-600);max-width:42rem;margin:0 auto}.nav{z-index:50;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--gray-200);background:#fffc;position:fixed;top:0;left:0;right:0}.nav-inner{justify-content:space-between;align-items:center;height:4rem;display:flex}.nav-logo{align-items:center;gap:.5rem;display:flex}.nav-logo img{object-fit:cover;border-radius:.5rem;width:2.5rem;height:2.5rem;transition:transform .2s}.nav-logo:hover img{transform:scale(1.1)}.nav-logo span{color:var(--gray-900);font-size:1.25rem;font-weight:700}.nav-desktop{align-items:center;gap:2rem;display:none}@media (width>=768px){.nav-desktop{display:flex}}.nav-links{align-items:center;gap:1.5rem;display:flex}.nav-links a{color:var(--gray-700);font-weight:500;transition:color .2s;position:relative}.nav-links a:after{content:"";background:var(--primary-500);width:0;height:2px;transition:width .3s;position:absolute;bottom:0;left:0}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-links a:hover,.nav-links a.active{color:var(--primary-600)}.icon-btn{border:1px solid var(--gray-200);width:2.5rem;height:2.5rem;color:var(--gray-600);cursor:pointer;background:#fff;border-radius:.5rem;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.icon-btn:hover{background:var(--gray-100);color:var(--primary-600);border-color:var(--primary-500)}.mobile-menu-btn{color:var(--gray-700);cursor:pointer;background:0 0;border:none;padding:.5rem;display:flex}@media (width>=768px){.mobile-menu-btn{display:none}}.mobile-menu{z-index:40;background:#fff;transition:transform .3s;position:fixed;inset:0;transform:translate(100%)}.mobile-menu.open{transform:translate(0)}@media (width>=768px){.mobile-menu{display:none!important}}.mobile-menu-header{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:1rem;display:flex}.mobile-menu-header img{object-fit:cover;border-radius:.5rem;width:2.5rem;height:2.5rem}.mobile-menu-close{color:var(--gray-700);cursor:pointer;background:0 0;border:none;padding:.5rem}.mobile-nav-links{padding:1rem}.mobile-nav-links a{color:var(--gray-700);border-radius:.5rem;padding:.75rem 1rem;transition:background .2s;display:block}.mobile-nav-links a:hover{background:var(--gray-100)}.mobile-menu-bottom{justify-content:center;gap:1rem;display:flex;position:absolute;bottom:1rem;left:1rem;right:1rem}.btn{cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex}.btn-primary{background:var(--primary-600);color:#fff;box-shadow:var(--shadow-lg)}.btn-primary:hover{background:var(--primary-700);box-shadow:var(--shadow-2xl)}.btn-secondary{background:var(--gray-100);color:var(--gray-700);border:2px solid var(--gray-200)}.btn-secondary:hover{background:var(--gray-50)}.btn-outline{color:var(--primary-600);border:2px solid var(--primary-600);background:0 0}.btn-outline:hover{background:#0ea5e91a}.btn-md{padding:.75rem 1.5rem;font-size:1rem}.btn-lg{padding:1rem 2rem;font-size:1.125rem}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.btn-block{width:100%}.card{border:1px solid var(--gray-200);border-radius:var(--radius);background:#fff;overflow:hidden}.card-hover{transition:transform .3s,box-shadow .3s}.card-hover:hover{box-shadow:var(--shadow-2xl);transform:scale(1.05)}.card-body{padding:1.5rem}.hero{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-bg{background:linear-gradient(to bottom right, var(--primary-50), #fff, var(--purple-50));position:absolute;inset:0}.hero-content{z-index:10;text-align:center;position:relative}.hero-badge{background:var(--primary-100);color:var(--primary-700);border-radius:9999px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;display:inline-block}.hero-name{margin:1.5rem 0;font-size:3rem;font-weight:700;line-height:1.1}@media (width>=768px){.hero-name{font-size:3.75rem}}@media (width>=1024px){.hero-name{font-size:4.5rem}}.hero-name .name{font-size:3.75rem}@media (width>=768px){.hero-name .name{font-size:4.5rem}}@media (width>=1024px){.hero-name .name{font-size:6rem}}.hero-title{color:var(--gray-600);max-width:42rem;margin-bottom:2rem;margin-left:auto;margin-right:auto;font-size:1.25rem}@media (width>=768px){.hero-title{font-size:1.5rem}}.hero-motto{margin-bottom:2.5rem}.hero-motto p{color:var(--gray-700);justify-content:center;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:1.125rem;display:flex}.hero-cta{flex-direction:column;justify-content:center;gap:1rem;display:flex}@media (width>=640px){.hero-cta{flex-direction:row}}.project-card a{display:block}.project-card-inner{align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.project-card-inner img{border-radius:.5rem;width:3rem;height:3rem}.project-card-inner h4{color:var(--gray-900);font-size:1.125rem;font-weight:700;transition:color .2s}.project-card:hover h4{color:var(--primary-600)}.project-card-inner p{color:var(--gray-600);font-size:.875rem}.project-visit{color:var(--primary-600);align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;display:flex}.section-heading{color:var(--gray-900);align-items:center;gap:.5rem;margin-bottom:2rem;font-size:1.5rem;font-weight:700;display:flex}.skills-section{background:var(--gray-50)}.skill-category-header{align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.skill-icon{color:#fff;border-radius:.5rem;justify-content:center;align-items:center;padding:.75rem;display:flex}.skill-icon.frontend{background:linear-gradient(to bottom right, var(--blue-500), var(--cyan-500))}.skill-icon.backend{background:linear-gradient(to bottom right, var(--green-500), var(--emerald-500))}.skill-icon.mobile{background:linear-gradient(to bottom right, var(--purple-500), var(--pink-500))}.skill-icon.devtools{background:linear-gradient(to bottom right, var(--orange-500), var(--red-500))}.skill-icon.cloud{background:linear-gradient(to bottom right, var(--indigo-500), var(--purple-500))}.skill-icon.os{background:linear-gradient(to bottom right, var(--gray-500), var(--slate-500))}.skill-category-header h3{color:var(--gray-900);font-size:1.25rem;font-weight:700}.skill-item{margin-bottom:1rem}.skill-item:last-child{margin-bottom:0}.skill-info{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.skill-info .name{color:var(--gray-700);font-size:.875rem;font-weight:500}.skill-info .level{color:var(--gray-500);font-size:.875rem}.skill-track{background:var(--gray-200);border-radius:9999px;height:.5rem;position:relative;overflow:hidden}.skill-bar{transform-origin:0;border-radius:9999px;animation:1.5s ease-out forwards fillBar;position:absolute;inset:0;transform:scaleX(0)}@keyframes fillBar{to{transform:scaleX(1)}}.skill-bar.frontend{background:linear-gradient(to right, var(--blue-500), var(--cyan-500))}.skill-bar.backend{background:linear-gradient(to right, var(--green-500), var(--emerald-500))}.skill-bar.mobile{background:linear-gradient(to right, var(--purple-500), var(--pink-500))}.skill-bar.devtools{background:linear-gradient(to right, var(--orange-500), var(--red-500))}.skill-bar.cloud{background:linear-gradient(to right, var(--indigo-500), var(--purple-500))}.skill-bar.os{background:linear-gradient(to right, var(--gray-500), var(--slate-500))}.tag-cloud{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.tag{border:1px solid var(--gray-200);color:var(--gray-700);cursor:default;background:#fff;border-radius:9999px;padding:.5rem 1rem;font-size:.875rem;transition:all .2s}.tag:hover{border-color:var(--primary-500);color:var(--primary-600)}.form-group{margin-bottom:1rem}.form-group label{color:var(--gray-700);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-input,.form-textarea{background:var(--gray-50);border:1px solid var(--gray-300);border-radius:.5rem;outline:none;width:100%;padding:.5rem 1rem;font-family:inherit;font-size:1rem;transition:all .2s}.form-input:focus,.form-textarea:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #0ea5e933}.form-input.error,.form-textarea.error{border-color:var(--red-500)}.form-input.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px #ef444433}.form-textarea{resize:none}.social-grid{grid-template-columns:repeat(2,1fr);gap:1rem;display:grid}.social-link{background:var(--gray-50);border-radius:.5rem;align-items:center;gap:.75rem;padding:.75rem;transition:background .2s;display:flex}.social-link:hover{background:var(--gray-100)}.social-link span{font-weight:500}.availability-card{background:linear-gradient(to right, var(--green-50), var(--emerald-50));border-color:var(--green-500);padding:1.5rem}.availability-dot{position:relative}.availability-dot .dot,.availability-dot .ping{background:var(--green-500);border-radius:9999px;width:.75rem;height:.75rem}.availability-dot .ping{animation:1s cubic-bezier(0,.5,.5,1) infinite ping;position:absolute;inset:0}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}.legal-section{border-top:1px solid var(--gray-200);margin-top:4rem;padding-top:2rem}.legal-buttons{flex-direction:column;justify-content:center;gap:1rem;display:flex}@media (width>=640px){.legal-buttons{flex-direction:row}}.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40;opacity:0;visibility:hidden;background:#00000080;transition:all .3s;position:fixed;inset:0}.drawer-overlay.open{opacity:1;visibility:visible}.drawer{z-index:50;box-shadow:var(--shadow-2xl);background:#fff;transition:transform .3s ease-in-out;position:fixed}.drawer-header{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.drawer-header h2{color:var(--gray-900);font-size:1.25rem;font-weight:700}.drawer-close{cursor:pointer;color:var(--gray-500);background:0 0;border:none;border-radius:.5rem;padding:.5rem;transition:background .2s}.drawer-close:hover{background:var(--gray-100)}.drawer-body{max-height:calc(100vh - 80px);padding:1.5rem;overflow-y:auto}.drawer-section{margin-bottom:1.5rem}.drawer-section h3{color:var(--gray-900);align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:1.125rem;font-weight:700;display:flex}.drawer-section p{color:var(--gray-700);line-height:1.7}.drawer-callout{background:var(--primary-50);border-left:4px solid var(--primary-500);border-radius:.5rem;padding:1rem}.drawer-date{color:var(--gray-500);text-align:center;border-top:1px solid var(--gray-200);padding-top:1rem;font-size:.875rem}@media (width<=768px){.drawer{border-radius:1rem 1rem 0 0;width:100%;max-height:90vh;bottom:0;left:0;right:0;transform:translateY(100%)}.drawer.open{transform:translateY(0)}}@media (width>=769px){.drawer{width:100%;max-width:42rem;height:100%;top:0;bottom:0;right:0;transform:translate(100%)}.drawer.open{transform:translate(0)}}.footer{background:var(--gray-50);border-top:1px solid var(--gray-200);padding:3rem 0}.footer-brand img{object-fit:cover;border-radius:.5rem;width:2.5rem;height:2.5rem}.footer-brand{align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.footer-brand span{color:var(--gray-900);font-size:1.25rem;font-weight:700}.footer-social{gap:.75rem;display:flex}.footer-social a{border:1px solid var(--gray-200);width:2.5rem;height:2.5rem;color:var(--gray-600);background:#fff;border-radius:.5rem;justify-content:center;align-items:center;transition:all .2s;display:flex}.footer-social a:hover{color:var(--primary-600);border-color:var(--primary-500)}.footer-bottom{border-top:1px solid var(--gray-200);margin-top:2rem;padding-top:2rem}.footer-bottom p{color:var(--gray-600);font-size:.875rem}.animate-fade-in{animation:.5s ease-out fadeIn}.animate-slide-up{animation:.5s ease-out both slideUp}.animate-slide-down{animation:.5s ease-out both slideDown}.animate-scale-in{animation:.3s ease-out both scaleIn}.delay-200{animation-delay:.2s}.delay-400{animation-delay:.4s}.delay-600{animation-delay:.6s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.hidden{display:none!important}
