.layout{display:flex;flex-direction:column;min-height:100vh}.header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#0a0a0ae6;border-bottom:1px solid var(--color-border);padding:1rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-content{align-items:center;display:flex;justify-content:space-between}.logo{font-size:1.25rem;font-weight:700}.logo,.logo:hover{color:var(--color-text)}.logo-accent{color:var(--color-accent)}.nav{display:flex;gap:2rem}.nav-link{color:var(--color-text-secondary);font-size:.95rem;font-weight:500;transition:color .2s ease}.nav-link.active,.nav-link:hover{color:var(--color-text)}.nav-link.active{color:var(--color-accent)}.main{flex:1 1;padding:3rem 0}.footer{border-top:1px solid var(--color-border);margin-top:auto;padding:2rem 0}.footer-content{align-items:center;display:flex;justify-content:space-between}.footer-links{display:flex;gap:1.5rem}.footer-links a{color:var(--color-text-secondary);font-size:.9rem}.footer-links a:hover{color:var(--color-accent)}@media (max-width:768px){.header-content{flex-direction:column;gap:1rem}.nav{gap:1rem}.footer-content{flex-direction:column;gap:1rem;text-align:center}}.home{max-width:900px}.hero{padding:4rem 0 5rem}.hero-title{font-size:3.5rem;font-weight:700;line-height:1.1;margin-bottom:1rem}.hero-title .highlight{color:var(--color-accent)}.hero-subtitle{color:var(--color-text-secondary);font-size:1.25rem;margin-bottom:2rem;max-width:600px}.hero-cta{display:flex;gap:1rem}.btn{border:none;border-radius:8px;display:inline-block;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .2s ease}.btn-primary{background-color:var(--color-accent);color:#fff}.btn-primary:hover{background-color:var(--color-accent-hover);color:#fff}.btn-secondary{background-color:initial;border:1px solid var(--color-border);color:var(--color-text)}.btn-secondary:hover{border-color:var(--color-text-secondary);color:var(--color-text)}.home-section{margin-bottom:4rem}.home-section h2,.section-header{margin-bottom:1.5rem}.section-header{align-items:center;display:flex;justify-content:space-between}.section-header h2{margin-bottom:0}.view-all{font-size:.95rem}.skills-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.skill-card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem}.skill-card h3{font-size:1.1rem;margin-bottom:.5rem}.skill-card p{font-size:.95rem;margin-bottom:0}@media (max-width:768px){.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.1rem}.hero-cta{flex-direction:column}}.about{max-width:800px}.about h1{margin-bottom:2rem}.about-intro{font-size:1.15rem;margin-bottom:3rem}.about-intro p{color:var(--color-text-secondary)}.about-section{margin-bottom:3rem}.about-section h2{font-size:1.5rem;margin-bottom:1rem}.tech-list{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.tech-category h3{color:var(--color-accent);font-size:1rem;margin-bottom:.75rem}.tech-category ul{list-style:none;padding:0}.tech-category li{color:var(--color-text-secondary);font-size:.95rem;padding:.25rem 0}.highlights{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.highlight-item{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem}.highlight-item h3{color:var(--color-accent);font-size:1.1rem;margin-bottom:.75rem}.highlight-item p{color:var(--color-text-secondary);font-size:.95rem;line-height:1.6;margin-bottom:0}.projects{max-width:900px}.projects h1{margin-bottom:.5rem}.projects-section{margin-bottom:3rem}.projects-section h2{color:var(--color-text-secondary);font-size:1.25rem;margin-bottom:1.5rem}.projects-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.project-card{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:1.5rem;transition:border-color .2s ease}.project-card:hover{border-color:var(--color-accent)}.project-card-link{color:inherit;display:block}.project-card-link:hover{color:inherit}.project-title{color:var(--color-text);font-size:1.2rem;margin-bottom:.5rem}.project-summary{color:var(--color-text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:1rem}.project-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.tag{background-color:var(--color-bg-tertiary);border-radius:9999px;color:var(--color-text-secondary);font-size:.8rem;padding:.25rem .75rem}.project-links{border-top:1px solid var(--color-border);display:flex;gap:1rem;padding-top:1rem}.project-links a{font-size:.9rem}.error,.loading{color:var(--color-text-secondary);padding:2rem;text-align:center}.error{color:#ef4444}.project-detail{max-width:800px}.project-header{border-bottom:1px solid var(--color-border);margin-bottom:2rem;padding-bottom:2rem}.project-header .project-tags,.project-header h1{margin-bottom:1rem}.project-meta{display:flex;gap:1.5rem}.project-meta a{font-size:.95rem}.project-content{line-height:1.7}.blog{max-width:800px}.blog h1{margin-bottom:.5rem}.page-intro{margin-bottom:3rem}.posts-list{display:flex;flex-direction:column;gap:2rem}.post-preview{border-bottom:1px solid var(--color-border);padding-bottom:2rem}.post-preview:last-child{border-bottom:none}.post-title{color:var(--color-text);font-size:1.5rem;margin-bottom:.5rem;transition:color .2s ease}.post-preview a:hover .post-title{color:var(--color-accent)}.post-date{display:block;font-size:.9rem;margin-bottom:.75rem}.post-summary{font-size:1rem;line-height:1.6;margin-bottom:1rem}.post-tags{display:flex;flex-wrap:wrap;gap:.5rem}.blog-post{max-width:800px}.back-link{color:var(--color-text-secondary);display:inline-block;font-size:.95rem;margin-bottom:2rem}.back-link:hover{color:var(--color-accent)}.post-header{border-bottom:1px solid var(--color-border);margin-bottom:2rem;padding-bottom:2rem}.post-header h1{font-size:2.5rem;margin-bottom:1rem}.post-meta{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.post-meta time{font-size:.95rem}.post-meta .post-tags{display:flex;gap:.5rem}.post-content{font-size:1.05rem;line-height:1.8}.error-page{padding:4rem 0;text-align:center}.error-page h1{margin-bottom:1rem}.error-page p{color:var(--color-text-secondary);margin-bottom:2rem}@media (max-width:768px){.post-header h1{font-size:2rem}}.contact{max-width:600px}.contact h1{margin-bottom:.5rem}.page-intro{font-size:1.1rem;margin-bottom:2rem}.contact-form{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-size:.95rem;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group textarea{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text);font-size:1rem;padding:.75rem 1rem;transition:border-color .2s ease;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:var(--color-accent);outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-secondary);opacity:.6}.form-group textarea{min-height:120px;resize:vertical}.status-message{border-radius:8px;font-size:.95rem;margin-bottom:1rem;padding:1rem}.status-message.success{background-color:#22c55e1a;border:1px solid #22c55e4d;color:#22c55e}.status-message.error{background-color:#ef44441a;border:1px solid #ef44444d;color:#ef4444}.contact-form .btn{font-size:1rem;padding:1rem;width:100%}.contact-form .btn:disabled{cursor:not-allowed;opacity:.6}.contact-alt{margin-top:2rem;text-align:center}.not-found{padding:6rem 0;text-align:center}.not-found h1{color:var(--color-accent);font-size:6rem;margin-bottom:.5rem}.not-found p{color:var(--color-text-secondary);font-size:1.5rem;margin-bottom:2rem}:root{--color-bg:#0a0a0a;--color-bg-secondary:#141414;--color-bg-tertiary:#1a1a1a;--color-text:#e5e5e5;--color-text-secondary:#a3a3a3;--color-accent:#3b82f6;--color-accent-hover:#2563eb;--color-border:#262626;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0a0a0a;background-color:var(--color-bg);color:#e5e5e5;color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-sans);line-height:1.6}a{color:#3b82f6;color:var(--color-accent);text-decoration:none;transition:color .2s ease}a:hover{color:#2563eb;color:var(--color-accent-hover)}code,pre{font-family:JetBrains Mono,Fira Code,monospace;font-family:var(--font-mono)}pre{border:1px solid #262626;border:1px solid var(--color-border);border-radius:8px;overflow-x:auto;padding:1rem}code,pre{background-color:#141414;background-color:var(--color-bg-secondary)}code{border-radius:4px;font-size:.9em;padding:.2em .4em}pre code{background:none;padding:0}img{height:auto;max-width:100%}button{cursor:pointer}button,input,textarea{font-family:inherit}.container{margin:0 auto;max-width:1100px;padding:0 1.5rem}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;margin-bottom:.5em}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}p{margin-bottom:1rem}.text-secondary{color:#a3a3a3;color:var(--color-text-secondary)}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin-bottom:1rem;margin-top:2rem}.markdown-content ol,.markdown-content ul{margin-bottom:1rem;padding-left:1.5rem}.markdown-content li{margin-bottom:.5rem}.markdown-content blockquote{border-left:4px solid #3b82f6;border-left:4px solid var(--color-accent);color:#a3a3a3;color:var(--color-text-secondary);margin:1rem 0;padding-left:1rem}.markdown-content table{border-collapse:collapse;margin:1rem 0;width:100%}.markdown-content td,.markdown-content th{border:1px solid #262626;border:1px solid var(--color-border);padding:.75rem;text-align:left}.markdown-content th{background-color:#141414;background-color:var(--color-bg-secondary)}
/*# sourceMappingURL=main.563dcf9b.css.map*/